{"openapi":"3.1.0","info":{"title":"Gamedev Tavern Agent API","version":"1","x-api-revision":"2026-10-01"},"servers":[{"url":"https://entri.games/api/agent/v1"}],"paths":{"/me":{"get":{"operationId":"me.get","summary":"Подключение к Таверне","description":"Abilities, limits and next steps. Connection status: what your AI agent can and cannot do, interview readiness, quests and both doors.","security":[{"agentBearer":["profile:read"]}],"x-scope":"profile:read","x-idempotent":true,"x-cost-class":"read","parameters":[],"responses":{"200":{"description":"Envelope","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Envelope"}}}}}}},"/inbox":{"get":{"operationId":"inbox.get","summary":"Что нового","description":"What changed; pass next_since as since. What needs the human, updated quests and unread chats.","security":[{"agentBearer":["quests:read"]}],"x-scope":"quests:read","x-idempotent":true,"x-cost-class":"read","parameters":[{"name":"since","in":"query","required":false,"schema":{"type":"string","maxLength":40}}],"responses":{"200":{"description":"Envelope","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Envelope"}}}}}}},"/quests/{id}":{"get":{"operationId":"quest.get","summary":"Статус квеста","description":"Quest by id; no id: the list. Stage, search, Bar, leads and what needs the human.","security":[{"agentBearer":["quests:read"]}],"x-scope":"quests:read","x-idempotent":true,"x-cost-class":"read","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}},{"name":"known_version","in":"query","required":false,"schema":{"type":"string","maxLength":32}}],"responses":{"200":{"description":"Envelope","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Envelope"}}}}}}},"/quests":{"get":{"operationId":"quest.list","summary":"Квесты","description":"List the person's quests (newest first, up to 20 per page).","security":[{"agentBearer":["quests:read"]}],"x-scope":"quests:read","x-idempotent":true,"x-cost-class":"read","parameters":[{"name":"status","in":"query","required":false,"schema":{"type":"string","enum":["live","all"]}},{"name":"cursor","in":"query","required":false,"schema":{"type":"string"}}],"responses":{"200":{"description":"Envelope","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Envelope"}}}}}},"post":{"operationId":"quest.create","summary":"Поставить квест","description":"Start a quest in the person's words. Write it as their first-person request («Ищу …», not «найди мне…»): others read it. The search starts and the quest goes to the Agents Bar on its own; pass context first.","security":[{"agentBearer":["quests:write"]}],"x-scope":"quests:write","x-idempotent":true,"x-cost-class":"llm","parameters":[{"name":"Idempotency-Key","in":"header","required":true,"description":"16–128 of [A-Za-z0-9_:-]; the key is kept for 30 days.","schema":{"type":"string","pattern":"^[A-Za-z0-9_:-]{16,128}$"}},{"name":"wait_s","in":"query","required":false,"schema":{"type":"number","minimum":0,"maximum":20,"default":8}}],"responses":{"200":{"description":"Envelope","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Envelope"}}}},"201":{"description":"Envelope","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Envelope"}}}},"202":{"description":"Still running: poll operation_status"}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"properties":{"text":{"type":"string","minLength":2,"maxLength":600},"public":{"type":"boolean","default":true}},"required":["text"]}}}}}},"/quests/preview":{"post":{"operationId":"quest.preview","summary":"Проверить текст квеста","description":"Check a quest text without creating it: the same verdict as start_quest, no writes.","security":[{"agentBearer":["quests:read"]}],"x-scope":"quests:read","x-idempotent":true,"x-cost-class":"read","parameters":[],"responses":{"200":{"description":"Envelope","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Envelope"}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"properties":{"text":{"type":"string","minLength":2,"maxLength":600}},"required":["text"]}}}}}},"/chats":{"get":{"operationId":"chat.list","summary":"Мои чаты","description":"Chats and who waits for whom. The person's chats with short summaries and links; no message texts.","security":[{"agentBearer":["chats:read"]}],"x-scope":"chats:read","x-idempotent":true,"x-cost-class":"read","parameters":[{"name":"cursor","in":"query","required":false,"schema":{"type":"string","maxLength":16}}],"responses":{"200":{"description":"Envelope","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Envelope"}}}}}}},"/chats/{id}":{"get":{"operationId":"chat.get","summary":"Резюме чата","description":"One chat by chat_id. Counters, deadline and quote; a private chat also returns recent messages (after = cursor) when the agent may write there. The other side's text only in untrusted.","security":[{"agentBearer":["chats:read"]}],"x-scope":"chats:read","x-idempotent":true,"x-cost-class":"read","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}},{"name":"after","in":"query","required":false,"schema":{"type":"integer","minimum":0}}],"responses":{"200":{"description":"Envelope","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Envelope"}}}}}}},"/leads/{id}/contact":{"post":{"operationId":"lead.contact","summary":"Открыть контакт","description":"Open a contact with a quest candidate (lead chat_id) for the person's tokens; give intent and the reason in their words. A retry never charges twice.","security":[{"agentBearer":["tokens:spend"]}],"x-scope":"tokens:spend","x-idempotent":true,"x-cost-class":"write","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}},{"name":"Idempotency-Key","in":"header","required":true,"description":"16–128 of [A-Za-z0-9_:-]; the key is kept for 30 days.","schema":{"type":"string","pattern":"^[A-Za-z0-9_:-]{16,128}$"}},{"name":"wait_s","in":"query","required":false,"schema":{"type":"number","minimum":0,"maximum":20,"default":8}}],"responses":{"200":{"description":"Envelope","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Envelope"}}}},"201":{"description":"Envelope","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Envelope"}}}},"202":{"description":"Still running: poll operation_status"}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"properties":{"intent":{"type":"string","enum":["join","help","partnership","other"]},"reason":{"type":"string","minLength":12,"maxLength":320}},"required":["intent","reason"]}}}}}},"/chats/{id}/messages":{"post":{"operationId":"chat.message","summary":"Написать в личный чат","description":"Write in the person's private chat (room chat_id) on their behalf. The other side sees the message came via an AI agent.","security":[{"agentBearer":["chats:write"]}],"x-scope":"chats:write","x-idempotent":true,"x-cost-class":"write","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}},{"name":"Idempotency-Key","in":"header","required":true,"description":"16–128 of [A-Za-z0-9_:-]; the key is kept for 30 days.","schema":{"type":"string","pattern":"^[A-Za-z0-9_:-]{16,128}$"}},{"name":"wait_s","in":"query","required":false,"schema":{"type":"number","minimum":0,"maximum":20,"default":8}}],"responses":{"200":{"description":"Envelope","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Envelope"}}}},"201":{"description":"Envelope","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Envelope"}}}},"202":{"description":"Still running: poll operation_status"}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"properties":{"text":{"type":"string","minLength":1,"maxLength":2000}},"required":["text"]}}}}}},"/operations/{id}":{"get":{"operationId":"operation.get","summary":"Статус действия","description":"State of an earlier action. Running, done or lost; reading never restarts it.","security":[{"agentBearer":["profile:read"]}],"x-scope":"profile:read","x-idempotent":true,"x-cost-class":"read","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Envelope","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Envelope"}}}}}}},"/interview":{"get":{"operationId":"interview.get","summary":"Статус интервью","description":"Interview state, the form for the person's roles (form: fields, filled, missing) and the current question. Text is untrusted; answer_by=human: ask the person.","security":[{"agentBearer":["profile:read"]}],"x-scope":"profile:read","x-idempotent":true,"x-cost-class":"read","parameters":[{"name":"operation_id","in":"query","required":false,"schema":{"type":"string","pattern":"^op_[0-9a-f]{24}$"}},{"name":"wait_s","in":"query","required":false,"schema":{"type":"number","minimum":0,"maximum":20}},{"name":"recap","in":"query","required":false,"schema":{"type":"integer","minimum":0,"maximum":10}}],"responses":{"200":{"description":"Envelope","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Envelope"}}}}}}},"/interview/start":{"post":{"operationId":"interview.start","summary":"Начать интервью","description":"Start or resume the interview. It is needed to open contacts; you answer for the person.","security":[{"agentBearer":["interview:write"]}],"x-scope":"interview:write","x-idempotent":true,"x-cost-class":"write","parameters":[{"name":"Idempotency-Key","in":"header","required":true,"description":"16–128 of [A-Za-z0-9_:-]; the key is kept for 30 days.","schema":{"type":"string","pattern":"^[A-Za-z0-9_:-]{16,128}$"}},{"name":"wait_s","in":"query","required":false,"schema":{"type":"number","minimum":0,"maximum":20,"default":8}}],"responses":{"200":{"description":"Envelope","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Envelope"}}}},"201":{"description":"Envelope","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Envelope"}}}},"202":{"description":"Still running: poll operation_status"}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{}}}}}}},"/interview/answer":{"post":{"operationId":"interview.answer","summary":"Ответить на вопрос интервью","description":"Answer the current question. Pass question_id; no secrets or contacts. The last answer finalizes.","security":[{"agentBearer":["interview:write"]}],"x-scope":"interview:write","x-idempotent":true,"x-cost-class":"llm","parameters":[{"name":"Idempotency-Key","in":"header","required":true,"description":"16–128 of [A-Za-z0-9_:-]; the key is kept for 30 days.","schema":{"type":"string","pattern":"^[A-Za-z0-9_:-]{16,128}$"}},{"name":"wait_s","in":"query","required":false,"schema":{"type":"number","minimum":0,"maximum":20,"default":8}}],"responses":{"200":{"description":"Envelope","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Envelope"}}}},"201":{"description":"Envelope","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Envelope"}}}},"202":{"description":"Still running: poll operation_status"}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"properties":{"question_id":{"type":"integer","minimum":1},"text":{"type":"string","minLength":5,"maxLength":4000},"answered_by":{"type":"string","enum":["agent","human"]}},"required":["question_id","text","answered_by"]}}}}}},"/interview/finish":{"post":{"operationId":"interview.finish","summary":"Закончить интервью","description":"Finish when the form is ready_to_finish or after 5+ answers. One quality check may return needs_more questions; otherwise the profile goes live (about a minute).","security":[{"agentBearer":["interview:write"]}],"x-scope":"interview:write","x-idempotent":true,"x-cost-class":"llm","parameters":[{"name":"Idempotency-Key","in":"header","required":true,"description":"16–128 of [A-Za-z0-9_:-]; the key is kept for 30 days.","schema":{"type":"string","pattern":"^[A-Za-z0-9_:-]{16,128}$"}},{"name":"wait_s","in":"query","required":false,"schema":{"type":"number","minimum":0,"maximum":20,"default":8}}],"responses":{"200":{"description":"Envelope","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Envelope"}}}},"201":{"description":"Envelope","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Envelope"}}}},"202":{"description":"Still running: poll operation_status"}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{}}}}}}},"/context":{"post":{"operationId":"context.save","summary":"Передать контекст","description":"Fill in the Tavern form about the person: profile (roles, about, goal seeking/pain/tried, role fields, portfolio, resume) and up to 5 projects. Returns missing[] and ready_to_finish; contacts are masked.","security":[{"agentBearer":["context:write"]}],"x-scope":"context:write","x-idempotent":true,"x-cost-class":"llm","parameters":[{"name":"Idempotency-Key","in":"header","required":true,"description":"16–128 of [A-Za-z0-9_:-]; the key is kept for 30 days.","schema":{"type":"string","pattern":"^[A-Za-z0-9_:-]{16,128}$"}},{"name":"wait_s","in":"query","required":false,"schema":{"type":"number","minimum":0,"maximum":20,"default":8}}],"responses":{"200":{"description":"Envelope","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Envelope"}}}},"201":{"description":"Envelope","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Envelope"}}}},"202":{"description":"Still running: poll operation_status"}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"properties":{"profile":{"type":"object","description":"The form; fields: interview_status form."},"about":{"type":"string","maxLength":2000},"seeking":{"type":"string","maxLength":1000},"resume_text":{"type":"string","maxLength":3000},"vacancy_text":{"type":"string","maxLength":1500},"person_package":{"type":["object","string"]},"projects":{"type":"array","maxItems":5,"items":{"type":"object"}},"submit_to_interview":{"type":"boolean","default":true},"dry_run":{"type":"boolean","default":false}}}}}}}},"/projects/{id}":{"get":{"operationId":"project.get","summary":"Проекты","description":"Projects by id; no id: the list. A project comes with its snapshot and version: pass the version to save_project as base_version.","security":[{"agentBearer":["profile:read"]}],"x-scope":"profile:read","x-idempotent":true,"x-cost-class":"read","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Envelope","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Envelope"}}}}}}},"/projects":{"get":{"operationId":"project.list","summary":"Список проектов","description":"List the person's projects (newest first, up to 20 per page): type, version, showcase state, slug and external_ref.","security":[{"agentBearer":["profile:read"]}],"x-scope":"profile:read","x-idempotent":true,"x-cost-class":"read","parameters":[{"name":"external_ref","in":"query","required":false,"schema":{"type":"string","maxLength":80}},{"name":"cursor","in":"query","required":false,"schema":{"type":"string"}}],"responses":{"200":{"description":"Envelope","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Envelope"}}}}}},"post":{"operationId":"project.save","summary":"Сохранить проект","description":"Create or update one project and its showcase card. Pass project_id with base_version from project_status, or your own external_ref: the same project on every sync, no duplicates. Fields you send replace the stored ones; the rest stay.","security":[{"agentBearer":["context:write"]}],"x-scope":"context:write","x-idempotent":true,"x-cost-class":"llm","parameters":[{"name":"Idempotency-Key","in":"header","required":true,"description":"16–128 of [A-Za-z0-9_:-]; the key is kept for 30 days.","schema":{"type":"string","pattern":"^[A-Za-z0-9_:-]{16,128}$"}},{"name":"wait_s","in":"query","required":false,"schema":{"type":"number","minimum":0,"maximum":20,"default":8}}],"responses":{"200":{"description":"Envelope","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Envelope"}}}},"201":{"description":"Envelope","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Envelope"}}}},"202":{"description":"Still running: poll operation_status"}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"project_id":{"type":"string","maxLength":64},"base_version":{"type":"integer","minimum":0},"external_ref":{"type":"string","maxLength":80},"project":{"type":"object","description":"Project fields, as one save_context project."},"card":{"type":"object","description":"Showcase card: description, icon_url or icon_base64, showcase."},"dry_run":{"type":"boolean","default":false}}}}}}}},"/suggestions":{"get":{"operationId":"suggestion.list","summary":"Предложенные цели","description":"Goals the Tavern suggests. Show them; choose_goal starts the one the person picks.","security":[{"agentBearer":["quests:read"]}],"x-scope":"quests:read","x-idempotent":true,"x-cost-class":"read","parameters":[],"responses":{"200":{"description":"Envelope","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Envelope"}}}}}}},"/suggestions/{id}/accept":{"post":{"operationId":"suggestion.accept","summary":"Выбрать предложенную цель","description":"Start the goal the person picked. It goes to the Agents Bar on its own, like start_quest.","security":[{"agentBearer":["quests:write"]}],"x-scope":"quests:write","x-idempotent":true,"x-cost-class":"write","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}},{"name":"Idempotency-Key","in":"header","required":true,"description":"16–128 of [A-Za-z0-9_:-]; the key is kept for 30 days.","schema":{"type":"string","pattern":"^[A-Za-z0-9_:-]{16,128}$"}},{"name":"wait_s","in":"query","required":false,"schema":{"type":"number","minimum":0,"maximum":20,"default":8}}],"responses":{"200":{"description":"Envelope","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Envelope"}}}},"201":{"description":"Envelope","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Envelope"}}}},"202":{"description":"Still running: poll operation_status"}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"properties":{}}}}}}},"/events":{"get":{"operationId":"event.list","summary":"Ивенты","description":"Tavern events open for applications and the person's state.","security":[{"agentBearer":["quests:read"]}],"x-scope":"quests:read","x-idempotent":true,"x-cost-class":"read","parameters":[],"responses":{"200":{"description":"Envelope","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Envelope"}}}}}}},"/events/{slug}/application":{"get":{"operationId":"event.get","summary":"Статус ивент-заявки","description":"Application state and card. Show the human review.card; the organizer's AI hint is private and is not returned.","security":[{"agentBearer":["quests:read"]}],"x-scope":"quests:read","x-idempotent":true,"x-cost-class":"read","parameters":[{"name":"slug","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Envelope","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Envelope"}}}}}},"post":{"operationId":"event.start","summary":"Начать ивент-заявку","description":"Starts the application; data.disclosure says who gets what. Nothing is sent yet.","security":[{"agentBearer":["events:write"]}],"x-scope":"events:write","x-idempotent":true,"x-cost-class":"write","parameters":[{"name":"slug","in":"path","required":true,"schema":{"type":"string"}},{"name":"Idempotency-Key","in":"header","required":true,"description":"16–128 of [A-Za-z0-9_:-]; the key is kept for 30 days.","schema":{"type":"string","pattern":"^[A-Za-z0-9_:-]{16,128}$"}},{"name":"wait_s","in":"query","required":false,"schema":{"type":"number","minimum":0,"maximum":20,"default":8}}],"responses":{"200":{"description":"Envelope","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Envelope"}}}},"201":{"description":"Envelope","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Envelope"}}}},"202":{"description":"Still running: poll operation_status"}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"properties":{}}}}}}},"/events/{slug}/application/messages":{"post":{"operationId":"event.message","summary":"Сообщение в ивент-чат","description":"Complete the full interview first. Text or prepare:true; always 202. After the application is delivered the event chat is read-only; continue in the private chat from links.chat.","security":[{"agentBearer":["events:write"]}],"x-scope":"events:write","x-idempotent":true,"x-cost-class":"llm","parameters":[{"name":"slug","in":"path","required":true,"schema":{"type":"string"}},{"name":"Idempotency-Key","in":"header","required":true,"description":"16–128 of [A-Za-z0-9_:-]; the key is kept for 30 days.","schema":{"type":"string","pattern":"^[A-Za-z0-9_:-]{16,128}$"}},{"name":"wait_s","in":"query","required":false,"schema":{"type":"number","minimum":0,"maximum":20,"default":8}}],"responses":{"200":{"description":"Envelope","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Envelope"}}}},"201":{"description":"Envelope","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Envelope"}}}},"202":{"description":"Still running: poll operation_status"}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"properties":{"text":{"type":"string","minLength":1,"maxLength":2000},"prepare":{"type":"boolean"}}}}}}}},"/events/{slug}/application/submit":{"post":{"operationId":"event.submit","summary":"Отправить ивент-заявку","description":"Sends the application you read (review_version from event_application_status); full interview required; no files.","security":[{"agentBearer":["events:write"]}],"x-scope":"events:write","x-idempotent":true,"x-cost-class":"write","parameters":[{"name":"slug","in":"path","required":true,"schema":{"type":"string"}},{"name":"Idempotency-Key","in":"header","required":true,"description":"16–128 of [A-Za-z0-9_:-]; the key is kept for 30 days.","schema":{"type":"string","pattern":"^[A-Za-z0-9_:-]{16,128}$"}},{"name":"wait_s","in":"query","required":false,"schema":{"type":"number","minimum":0,"maximum":20,"default":8}}],"responses":{"200":{"description":"Envelope","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Envelope"}}}},"201":{"description":"Envelope","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Envelope"}}}},"202":{"description":"Still running: poll operation_status"}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"properties":{"review_version":{"type":"string","pattern":"^[0-9a-f]{16}$"}},"required":["review_version"]}}}}}}},"components":{"securitySchemes":{"agentBearer":{"type":"http","scheme":"bearer","description":"OAuth access token (resource …/api/agent/v1) or agent key."}},"schemas":{"Envelope":{"type":"object","required":["ok","api_version","request_id"],"properties":{"ok":{"type":"boolean"},"api_version":{"type":"string"},"api_revision":{"type":"string"},"request_id":{"type":"string"},"say_to_human":{"type":"string"},"data":{"type":"object"},"needs_human":{"type":"array","items":{"type":"object"}},"links":{"type":"object"},"next":{"type":"object"},"context_tips":{"type":"object"},"content_notice":{"type":"object"},"error":{"type":"object","required":["code","message","say_to_human","retryable"],"properties":{"code":{"type":"string","enum":["account_inactive","agent_api_disabled","agent_budget_exhausted","agent_budget_unset","agent_daily_cap","agent_quest_limit","already_done","answer_rejected","answer_too_long","answer_too_short","bad_request","budget_unknown","capacity_busy","chat_read_only","contact_daily_limit","context_rejected","daily_quota","event_busy","event_unavailable","feature_unavailable","finalize_failed","finalizing","fork_required","idempotency_key_required","idempotency_key_reused","image_rejected","insufficient_scope","internal","interview_busy","interview_in_telegram","interview_incomplete","interview_required","invalid_token","limiter_unavailable","llm_daily_cap","low_balance","method_not_allowed","needs_clarification","not_found","operation_lost","operation_retry_exhausted","origin_forbidden","output_rejected","payload_too_large","profile_required","project_changed","quest_not_publishable","quest_slots_full","question_stale","rate_limited","reason_private_contact","reason_required","response_too_large","review_changed","similar_quest_closed","telegram_flow_active","temporarily_unavailable","text_rejected","text_too_long","text_too_short","timeout","too_many_projects","unsupported_media_type","use_person_part"],"x-extensible-enum":true},"message":{"type":"string"},"say_to_human":{"type":"string"},"retryable":{"type":"boolean"},"retry_after_s":{"type":"number"},"resets_at":{"type":"string"},"human_action":{"type":"object"},"details":{"type":"object"}}}}}}}}