{"openapi":"3.1.0","info":{"title":"Glagol API","version":"0.1.0","description":"Документация доступна без регистрации и входа. Для обращения к вашим данным\nпередайте `Authorization: Bearer <API_KEY>` или действующий JWT. API-ключ работает\nв пределах владельца и разрешений своей роли. В поле Bearer укажите только значение\nключа, без слова `Bearer`. Ключ не требуется для чтения описаний и схем.\n\nБазовый адрес API указан в разделе сервера и в примерах запросов.\nОн соответствует адресу открытой документации. Используйте ключ этого API.\n\nЗдесь публикуется только согласованный набор операций. Схемы запросов, типов,\nобязательных полей и ответов соответствуют текущей версии backend.\n\n## Ошибки и пустые результаты\n\n`401` означает отсутствие или недействительность авторизации, `403` — запрет\nдоступа. `422` возвращается при ошибке валидации. Другие коды и `detail` зависят\nот метода. Пустая выборка — нормальный результат поиска и не означает ошибку.\nДанные отчётов обрабатываются асинхронно: свежий отчёт может быть ещё неполным.\n\n### Записи в списках: первый запрос\n\n1. Получите списки: `GET /modules/lists`. Сохраните `id` и `owner_id` выбранного списка.\n2. Получите поля: `GET /modules/lists/{list_id}/fields?is_active=true`.\n   `key` используется внутри `custom`, а числовой `id` — для `bulk-update`.\n3. Создайте запись: `POST /modules/lists/{list_id}/items` с обязательными\n   `owner_id` и `list_id` в JSON. UUID новой записи находится в `id` ответа.\n4. Читайте карточку через `GET /modules/lists/items/{item_id}`.\n\nДля изменения названия используйте PATCH с `title`. Для дополнения отдельного\nпользовательского поля используйте `bulk-update` с одним UUID: так остальные\nзначения сохранятся. PATCH с `custom` заменяет весь объект целиком.\nDELETE перемещает запись в отдельный архив и возвращает `archive_id`.\n\nВ примерах используются учебные идентификаторы. Названия пользовательских\nполей и допустимые статусы определяются вашим списком: возьмите их из API.\n\n### Получение отчётов\n\n`report_uid` идентифицирует весь диалог, `report_id` — отдельный сегмент.\nВ большинстве интеграций начинайте со списка диалогов:\n\n```http\nGET /modules/glagol/reports/v2/threads?limit=50\nAuthorization: Bearer <ваш API-ключ>\n```\n\nБез фильтров вернётся первая страница доступных диалогов. Например, чтобы получить\nзавершённые диалоги с последней активностью за 1 октября 2026 года по Москве:\n\n```text\nprimary_status=finished\nlast_activity_from=2026-10-01T00:00:00+03:00\nlast_activity_to=2026-10-02T00:00:00+03:00\n```\n\nЭто значения query-параметров: передавайте их через кодирование HTTP-клиента,\nчтобы `+03:00` и JSON-массивы не исказились в URL.\nФильтрация по началу диалога использует отдельные поля `started_from/started_to`.\n\nСледующую страницу запрашивайте с теми же фильтрами и `limit`, передав\n`pagination.next_cursor` в `cursor`. Если нужна карточка, возьмите `report_uid`\nиз `items` и запросите `/modules/glagol/reports/by-uid/{report_uid}`.\nМассив `segments` в карточке содержит реальные `report_id` её сегментов.\n\n### Трассировка и последнее состояние карты\n\nДля всех шагов конкретного сегмента используйте\n`/modules/glagol/reports/{report_id}/debug/decision-trace` с `order=asc`.\nЧтобы получить только последнее записанное состояние, передайте:\n\n```text\norder=desc\nlimit=1\ninclude_param_snapshot=true\ninclude_task_snapshot=true\nchanged_only=false\n```\n\nПри непустом `items` карта параметров находится в `items[0].param_snapshot`,\nсостояния задач — в `items[0].task_snapshot`. Для активного процесса это текущее\nсостояние; считать его итогом можно после завершения процесса и обработки его\nсобытий. Карточка отчёта помогает проверить завершение и диагностические флаги.\n`processing_status=completed` у шага означает завершение только этого шага.\n\nМаршрут `/by-uid/{report_uid}/debug/decision-trace` объединяет шаги сегментов,\nно каждый snapshot остаётся состоянием своего сегмента. Последний найденный шаг\nможет быть из предыдущего сегмента, если новый пока не содержит трассировки.\nДля итогов всех сегментов запросите каждый `report_id` отдельно.\nЭти методы возвращают состояния параметров и задач; отдельный экспорт всей\nструктуры process-map в эту публикацию не входит.\nНе используйте `parameter_initialization.final_params` как итог диалога:\nэто результат начальной инициализации параметров.\n\nДля ленты технических событий используйте `timeline`, для текста сообщений —\n`messages`. У `timeline` есть курсорная пагинация. У текущего `messages` курсора\nнет: максимум 5000 сообщений, а `next_cursor_id=null` не подтверждает полноту\nпри достижении `limit`.\n"},"servers":[{"url":"https://eoapidev.glagol.ai","description":"Glagol API"}],"tags":[{"name":"Списки · справочники"},{"name":"Списки · записи"},{"name":"Отчёты: списки и фильтры"},{"name":"Отчёты: карточки"},{"name":"Отчёты: сообщения и события"},{"name":"Отчёты: трассировка и карта"}],"paths":{"/modules/lists":{"get":{"tags":["Списки · справочники"],"summary":"Найти нужный список","operationId":"list_lists_modules_lists_get","parameters":[{"name":"q","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Q"},"description":"Поиск без учёта регистра по eid, названию, описанию, папке и тегам."},{"name":"name","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"description":"Часть названия списка; регистр не учитывается."},{"name":"folder","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Folder"},"description":"Точное имя папки. Пустое значение выбирает списки без папки."},{"name":"tags","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Tags"},"description":"Поиск подстроки в строке тегов; регистр не учитывается."},{"name":"is_active","in":"query","required":false,"schema":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Is Active"},"description":"true — активные, false — неактивные; без параметра — оба варианта."},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":500,"minimum":1,"default":100,"title":"Limit"},"description":"Размер страницы: 1–500, по умолчанию 100."},{"name":"offset","in":"query","required":false,"schema":{"type":"integer","minimum":0,"default":0,"title":"Offset"},"description":"Сколько списков пропустить; по умолчанию 0."},{"name":"sort_by","in":"query","required":false,"schema":{"type":"string","default":"updated_at","title":"Sort By"},"description":"Поле сортировки: id, eid, name, folder, tags, icon, is_active, created_at, updated_at. По умолчанию и при неизвестном значении — updated_at."},{"name":"sort_dir","in":"query","required":false,"schema":{"type":"string","default":"desc","title":"Sort Dir"},"description":"asc — по возрастанию, desc — по убыванию. По умолчанию desc."}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/GlagolListOut"},"title":"Response List Lists Modules Lists Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"401":{"description":"Не передан или недействителен Bearer-токен."},"403":{"description":"Недостаточно прав для этой операции или данных."}},"description":"Возвращает массив списков текущего владельца. Начните с этого метода: `id` понадобится в URL записей, `owner_id` — в теле создания, `status_options` — для выбора допустимого статуса.\n\nВсе фильтры необязательные и объединяются условием И. Ответ — массив, без обёртки `items` и без `total`. Для следующей страницы увеличивайте `offset` на `limit`. Если пришло меньше `limit` элементов, достигнут конец текущей выборки.","security":[{"GlagolBearer":[]}]}},"/modules/lists/{list_id}":{"get":{"tags":["Списки · справочники"],"summary":"Получить настройки выбранного списка","operationId":"get_list_modules_lists__list_id__get","parameters":[{"name":"list_id","in":"path","required":true,"schema":{"type":"integer","title":"List Id"},"description":"Числовой id списка из GET /modules/lists. Это не eid списка."}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GlagolListOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"401":{"description":"Не передан или недействителен Bearer-токен."},"403":{"description":"Недостаточно прав для этой операции или данных."}},"description":"Возвращает один список, включая название, `owner_id`, настройки отображения и `status_options`. Для записи используйте значение `status_options[].value`. Опция с `is_archive: true` обозначает статус, который перемещает запись в архив.","security":[{"GlagolBearer":[]}]}},"/modules/lists/{list_id}/fields":{"get":{"tags":["Списки · справочники"],"summary":"Получить поля списка","operationId":"list_fields_modules_lists__list_id__fields_get","parameters":[{"name":"list_id","in":"path","required":true,"schema":{"type":"integer","title":"List Id"},"description":"Числовой id списка из GET /modules/lists. Это не eid списка."},{"name":"q","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Q"},"description":"Поиск без учёта регистра по efid, key, label, tab и group."},{"name":"is_active","in":"query","required":false,"schema":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Is Active"},"description":"true — только активные поля; без параметра — все поля списка."},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":2000,"minimum":1,"default":200,"title":"Limit"},"description":"Размер страницы: 1–2000, по умолчанию 200."},{"name":"offset","in":"query","required":false,"schema":{"type":"integer","minimum":0,"default":0,"title":"Offset"},"description":"Сколько полей пропустить; по умолчанию 0."},{"name":"sort_by","in":"query","required":false,"schema":{"type":"string","default":"group_position","title":"Sort By"},"description":"id, efid, key, label, created_at, updated_at или group_position. По умолчанию и при неизвестном значении — group_position."},{"name":"sort_dir","in":"query","required":false,"schema":{"type":"string","default":"asc","title":"Sort Dir"},"description":"asc — по возрастанию, desc — по убыванию. По умолчанию asc."}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/GlagolEntityFieldOut"},"title":"Response List Fields Modules Lists  List Id  Fields Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"401":{"description":"Не передан или недействителен Bearer-токен."},"403":{"description":"Недостаточно прав для этой операции или данных."}},"description":"Возвращает массив описаний полей. `key` — имя свойства внутри `custom`; `id` — числовой идентификатор для изменения отдельного поля через `bulk-update`. `label` — подпись для человека.\n\nПеред записью данных проверьте `data_type`, `field_type`, `data_values` и настройки конкретного поля. Для `bulk-update` нужно активное поле: удобно запрашивать `is_active=true`. Ответ — массив без `total`; пагинация через `limit` и `offset`.","security":[{"GlagolBearer":[]}]}},"/modules/lists/{list_id}/items":{"get":{"tags":["Списки · записи"],"summary":"Получить записи с фильтрами или без","operationId":"list_items_modules_lists__list_id__items_get","parameters":[{"name":"list_id","in":"path","required":true,"schema":{"type":"integer","title":"List Id"},"description":"Числовой id списка из GET /modules/lists. Это не eid списка."},{"name":"q","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Q"},"description":"Поиск без учёта регистра по title, status и idx_text_1…idx_text_6."},{"name":"status","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Status"},"description":"Точное значение статуса. Пустая строка выбирает записи без статуса."},{"name":"locked","in":"query","required":false,"schema":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Locked"},"description":"Фильтр по значению флага locked; без параметра — оба значения."},{"name":"used","in":"query","required":false,"schema":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Used"},"description":"Фильтр по значению флага used; без параметра — оба значения."},{"name":"responsible_user","in":"query","required":false,"schema":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Responsible User"},"description":"Точный числовой идентификатор ответственного пользователя."},{"name":"responsible_manager","in":"query","required":false,"schema":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Responsible Manager"},"description":"Точный числовой идентификатор ответственного менеджера."},{"name":"responsible_agent","in":"query","required":false,"schema":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Responsible Agent"},"description":"Точный числовой идентификатор ответственного агента."},{"name":"include_deleted","in":"query","required":false,"schema":{"type":"boolean","default":false,"title":"Include Deleted"},"description":"Учитывать deleted_at в текущей таблице записей. По умолчанию false. Не включает записи, перенесённые в отдельный архив."},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":500,"minimum":1,"default":50,"title":"Limit"},"description":"Размер страницы: 1–500, по умолчанию 50."},{"name":"offset","in":"query","required":false,"schema":{"type":"integer","minimum":0,"default":0,"title":"Offset"},"description":"Сколько записей пропустить; по умолчанию 0."},{"name":"sort_by","in":"query","required":false,"schema":{"type":"string","default":"updated_at","title":"Sort By"},"description":"created_at, updated_at, title, status или deleted_at. По умолчанию и при неизвестном значении — updated_at."},{"name":"sort_dir","in":"query","required":false,"schema":{"type":"string","default":"desc","title":"Sort Dir"},"description":"asc — по возрастанию, desc — по убыванию. По умолчанию desc."}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/GlagolEntityItemOut"},"title":"Response List Items Modules Lists  List Id  Items Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"401":{"description":"Не передан или недействителен Bearer-токен."},"403":{"description":"Недостаточно прав для этой операции или данных."}},"description":"Возвращает массив записей выбранного списка. Без фильтров — страницу текущих записей. Все заданные фильтры применяются одновременно.\n\nОтвет — массив без `items` и `total`. По умолчанию возвращается до 50 записей, начиная с последних изменённых. Для обхода используйте `limit` и `offset`; короткая или пустая страница означает конец текущей выборки. Изменения данных во время обхода могут сдвигать страницы.\n\n`q` проверяет название, статус и текстовые индексные слоты; он не выполняет поиск по каждому свойству `custom`. Отдельный архив этим методом не читается.","security":[{"GlagolBearer":[]}]},"post":{"tags":["Списки · записи"],"summary":"Создать запись","operationId":"create_item_modules_lists__list_id__items_post","parameters":[{"name":"list_id","in":"path","required":true,"schema":{"type":"integer","title":"List Id"},"description":"Числовой id списка из GET /modules/lists. Это не eid списка."}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GlagolEntityItemCreate"},"examples":{"minimal":{"summary":"Запись без пользовательских полей; замените числовые ID","value":{"owner_id":123,"list_id":45,"title":"Новая запись","custom":{}}}}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GlagolEntityItemOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"401":{"description":"Не передан или недействителен Bearer-токен."},"403":{"description":"Недостаточно прав для этой операции или данных."}},"description":"Создаёт одну запись и возвращает её карточку с UUID в `id`.\n\n**Особенность текущего контракта:** тело должно содержать `owner_id` и `list_id`. Возьмите их из ответа чтения списка. На сервере владелец определяется авторизацией, а список — URL; значения из тела заменяются ими. Отсутствие этих обязательных полей всё равно приведёт к ошибке валидации.\n\nПользовательские данные передаются в `custom` по реальным ключам `key` из метода получения полей. Непустой `status` должен быть настроен в списке; архивный статус при создании не принимается. Необязательные поля можно не передавать.\n\nЧисла и UUID в примерах учебные. Замените их идентификаторами своего списка, владельца, поля и записи перед отправкой.","security":[{"GlagolBearer":[]}]}},"/modules/lists/items/{item_id}":{"get":{"tags":["Списки · записи"],"summary":"Получить одну запись","operationId":"get_item_modules_lists_items__item_id__get","parameters":[{"name":"item_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Item Id"},"description":"UUID записи: поле id в ответе создания или чтения записи."},{"name":"include_deleted","in":"query","required":false,"schema":{"type":"boolean","default":false,"title":"Include Deleted"},"description":"Учитывать deleted_at в текущей таблице. По умолчанию false. Не переключает чтение на отдельный архив."}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GlagolEntityItemOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"401":{"description":"Не передан или недействителен Bearer-токен."},"403":{"description":"Недостаточно прав для этой операции или данных."}},"description":"Возвращает карточку по UUID в пределах текущего владельца. `custom` содержит значения пользовательских полей; системные поля, статус и время изменения находятся на верхнем уровне. Идентификатор списка передавать не нужно.","security":[{"GlagolBearer":[]}]},"patch":{"tags":["Списки · записи"],"summary":"Изменить запись","operationId":"patch_item_modules_lists_items__item_id__patch","parameters":[{"name":"item_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Item Id"},"description":"UUID записи: поле id в ответе создания или чтения записи."}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GlagolEntityItemUpdate"},"examples":{"rename":{"summary":"Изменить только название","value":{"title":"Обновлённая запись"}},"clear_status":{"summary":"Очистить статус, сохранив остальные данные","value":{"status":null}},"clear_custom":{"summary":"Удалить ВСЕ пользовательские значения","value":{"custom":{}}}}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/GlagolEntityItemOut"},{"$ref":"#/components/schemas/GlagolEntityArchiveOut"}],"title":"Response Patch Item Modules Lists Items  Item Id  Patch"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"401":{"description":"Не передан или недействителен Bearer-токен."},"403":{"description":"Недостаточно прав для этой операции или данных."}},"description":"Изменяет только переданные поля верхнего уровня. Для изменения названия достаточно `title`; пропущенные поля сохраняются.\n\n**`custom` заменяется целиком.** Передача части его свойств удаляет остальные свойства. `custom: {}` и `custom: null` очищают пользовательские данные. Чтобы добавить или изменить одно пользовательское поле с сохранением остальных, используйте `POST /modules/lists/{list_id}/items/bulk-update` с одним UUID в `selection.item_ids`.\n\nОбычный ответ — карточка записи. Если `status` соответствует архивной опции списка, разрешено передать только `status`: запись перемещается в архив и возвращается архивная карточка. Смешивание архивного статуса с другими изменениями даёт 422 `archive_status_patch_mixed_changes_forbidden`.\n\nПеремещение записи в другой список этим методом не поддерживается.","security":[{"GlagolBearer":[]}]},"delete":{"tags":["Списки · записи"],"summary":"Удалить запись из текущего списка","operationId":"soft_delete_item_modules_lists_items__item_id__delete","parameters":[{"name":"item_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Item Id"},"description":"UUID записи: поле id в ответе создания или чтения записи."}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"401":{"description":"Не передан или недействителен Bearer-токен."},"403":{"description":"Недостаточно прав для этой операции или данных."}},"description":"Перемещает запись в отдельный архив. Успешный ответ содержит `ok: true` и `archive_id` — UUID созданной архивной карточки. Сохраните `archive_id`, если он потребуется для дальнейшей работы с архивом. Тело запроса не нужно.\n\nЭто архивирование: запись исчезает из текущего списка, но не уничтожается безвозвратно. `include_deleted=true` у обычного GET не включает отдельный архив.","security":[{"GlagolBearer":[]}]}},"/modules/lists/{list_id}/items/bulk-update":{"post":{"tags":["Списки · записи"],"summary":"Дополнить или изменить отдельные поля записей","operationId":"bulk_update_items_modules_lists__list_id__items_bulk_update_post","parameters":[{"name":"list_id","in":"path","required":true,"schema":{"type":"integer","title":"List Id"},"description":"Числовой id списка из GET /modules/lists. Это не eid списка."}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GlagolEntityItemBulkUpdateRequest"},"examples":{"set_field":{"summary":"Одно поле одной записи; field_id возьмите из GET полей","value":{"selection":{"mode":"ids","item_ids":["00000000-0000-4000-8000-000000000001"]},"changes":[{"target":"field","field_id":123,"value":"Новое значение"}]}},"remove_field":{"summary":"Удалить значение одного поля, сохранив остальные","value":{"selection":{"mode":"ids","item_ids":["00000000-0000-4000-8000-000000000001"]},"changes":[{"target":"field","field_id":123,"value":null}]}}}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GlagolEntityItemBulkUpdateOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"401":{"description":"Не передан или недействителен Bearer-токен."},"403":{"description":"Недостаточно прав для этой операции или данных."}},"description":"Меняет выбранные поля одной или нескольких записей, сохраняя остальные пользовательские данные. Для одной записи используйте `selection.mode: ids` и массив с одним UUID.\n\nВ `changes` укажите `target: field`, числовой `field_id` активного поля выбранного списка и `value`. Метод сам находит соответствующий `custom[key]`. `value: null` удаляет это свойство. Массив или объект в `value` заменяет всё значение выбранного поля; автоматического дописывания элементов массива нет.\n\nТакже поддерживаются `target: title` и `target: status`; для них `field_id` не задаётся. До 20 уникальных изменений за запрос и до 5000 UUID при выборе по ID.\n\nОтвет содержит счётчики, а не карточки. `matched` — найдено, `updated` — изменено, `unchanged` — уже имели эти значения, `skipped_merged` — пропущено объединённых записей, `archived` — перенесено в архив. Если `matched=0`, изменений нет; проверяйте результат. Для чтения результата используйте GET записи.\n\nАрхивный статус допускается только как единственное изменение и перемещает выбранные записи в архив.\n\nЧисла и UUID в примерах учебные. Замените их идентификаторами своего списка, владельца, поля и записи перед отправкой.","security":[{"GlagolBearer":[]}]}},"/modules/glagol/reports/v2/threads":{"get":{"tags":["Отчёты: списки и фильтры"],"summary":"Получить список диалогов","operationId":"list_report_threads_v2_endpoint_modules_glagol_reports_v2_threads_get","parameters":[{"name":"sort","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Sort"},"description":"JSON-массив правил сортировки. Например: [{\"field\":\"last_activity_at\",\"direction\":\"desc\"}]. Доступные поля и ограничения проверяйте через /v2/threads/capabilities."},{"name":"cursor","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Cursor"},"description":"Непрозрачный курсор нужной страницы. Привязан к фильтрам, сортировке, аккаунту и limit."},{"name":"page_direction","in":"query","required":false,"schema":{"enum":["next","prev"],"type":"string","default":"next","title":"Page Direction"},"description":"next — следующая страница; prev — предыдущая с pagination.prev_cursor."},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":200,"minimum":1,"default":50,"title":"Limit"},"description":"Количество диалогов на странице: от 1 до 200, по умолчанию 50."},{"name":"total_mode","in":"query","required":false,"schema":{"enum":["auto","none"],"type":"string","default":"auto","title":"Total Mode"},"description":"auto — попытаться подсчитать размер выборки с ограничением ресурсов; none — не выполнять подсчёт."},{"name":"agent_alias","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Agent Alias"},"description":"Алиас агента либо JSON-массив алиасов. Доступ к каждому агенту проверяется."},{"name":"agent_id","in":"query","required":false,"schema":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Agent Id"},"description":"Числовой ID агента. При одновременной передаче agent_alias ограничения согласуются между собой."},{"name":"project_id","in":"query","required":false,"schema":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Project Id"},"description":"Числовой ID проекта."},{"name":"communication_channel","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Communication Channel"},"description":"Канал общения: call или chat. Одно значение или JSON-массив в строке query-параметра. Для нескольких значений используйте JSON, а не строку через запятую."},{"name":"primary_status","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Primary Status"},"description":"Основной статус отчёта. Одно значение или JSON-массив в строке query-параметра. Для нескольких значений используйте JSON, а не строку через запятую."},{"name":"has_problems","in":"query","required":false,"schema":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Has Problems"},"description":"true — есть хотя бы один диагностический флаг; false — таких флагов нет. Отсутствие параметра не ограничивает выборку."},{"name":"needs_review","in":"query","required":false,"schema":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Needs Review"},"description":"Фильтр по необходимости проверки отчёта."},{"name":"processing_blocked","in":"query","required":false,"schema":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Processing Blocked"},"description":"Фильтр по блокировке обработки отчёта."},{"name":"needs_rebuild","in":"query","required":false,"schema":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Needs Rebuild"},"description":"Фильтр по необходимости пересборки отчёта."},{"name":"has_seq_collision","in":"query","required":false,"schema":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Has Seq Collision"},"description":"Фильтр по наличию коллизий номеров событий."},{"name":"has_late_event","in":"query","required":false,"schema":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Has Late Event"},"description":"Фильтр по наличию поздних событий."},{"name":"has_sequence_gap","in":"query","required":false,"schema":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Has Sequence Gap"},"description":"Фильтр по наличию пропусков последовательности событий."},{"name":"has_conflicts","in":"query","required":false,"schema":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Has Conflicts"},"description":"Фильтр по наличию конфликтов."},{"name":"has_skipped_events","in":"query","required":false,"schema":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Has Skipped Events"},"description":"Фильтр по наличию пропущенных при обработке событий."},{"name":"date_from","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Date From"},"description":"Совместимый вариант last_activity_from. Нижняя граница включается; явный last_activity_from имеет приоритет."},{"name":"date_to","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Date To"},"description":"Совместимый вариант last_activity_to. Верхняя граница не включается; явный last_activity_to имеет приоритет."},{"name":"started_from","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Started From"},"description":"Начало первого сегмента, начиная с указанного момента включительно. Передавайте ISO 8601 с часовым поясом."},{"name":"started_to","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Started To"},"description":"Начало первого сегмента строго раньше указанного момента. Для полного дня укажите начало следующего дня."},{"name":"last_activity_from","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Last Activity From"},"description":"Последняя активность начиная с указанного момента включительно. Передавайте ISO 8601 с часовым поясом."},{"name":"last_activity_to","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Last Activity To"},"description":"Последняя активность строго раньше указанного момента."},{"name":"search","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Search"},"description":"Поиск подстроки без учёта регистра в report_uid, agent_alias и dialog_uri. Для текста сообщений используйте message_search."},{"name":"record_item_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Record Item Id"},"description":"ID записи списка, связанной с диалогом: проверяется наличие в record_item_ids превью отчёта."},{"name":"message_search","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Message Search"},"description":"Поиск по тексту сообщений. В результатах списка совпадения возвращаются в message_search_matches."},{"name":"message_search_mode","in":"query","required":false,"schema":{"type":"string","default":"auto","title":"Message Search Mode"},"description":"Режим поиска сообщений: auto, fts, substring, fuzzy, number или hybrid. По умолчанию auto."},{"name":"message_search_fuzzy_threshold","in":"query","required":false,"schema":{"type":"number","maximum":1.0,"minimum":0.0,"default":0.25,"title":"Message Search Fuzzy Threshold"},"description":"Порог нечёткого поиска от 0 до 1, по умолчанию 0.25."},{"name":"phid","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Phid"},"description":"Фильтр по идентификатору фразы в сообщениях. Одно значение или JSON-массив в строке query-параметра. Для нескольких значений используйте JSON, а не строку через запятую."},{"name":"rule_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Rule Id"},"description":"Фильтр по идентификатору правила. Одно значение или JSON-массив в строке query-параметра. Для нескольких значений используйте JSON, а не строку через запятую."},{"name":"llm_preset_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Llm Preset Id"},"description":"Фильтр по числовому ID LLM-пресета. Одно значение или JSON-массив в строке query-параметра. Для нескольких значений используйте JSON, а не строку через запятую."},{"name":"code_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Code Id"},"description":"Фильтр по идентификатору кода. Одно значение или JSON-массив в строке query-параметра. Для нескольких значений используйте JSON, а не строку через запятую."},{"name":"api_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Api Id"},"description":"Фильтр по числовому ID API-запроса. Одно значение или JSON-массив в строке query-параметра. Для нескольких значений используйте JSON, а не строку через запятую."},{"name":"index_filters","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Index Filters"},"description":"JSON-массив фильтров по заранее настроенным индексируемым параметрам агента. Каждый объект содержит param_key, param_source, value_type, op и, кроме op=exists, value. param_source: show_value или decide_value; decide_value индексируется как text. Для text доступны eq, contains, exists; для number/timestamp — eq, gt, gte, lt, lte, exists; для boolean/json — eq, exists. Нужен agent_id или agent_alias. Не совмещается с index_scopes."},{"name":"index_columns","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Index Columns"},"description":"JSON-массив объектов {param_key, param_source, value_type} для возврата index_values. Параметры должны быть настроены как индексируемые у выбранного агента. Нужен agent_id или agent_alias. Не совмещается с index_scopes."},{"name":"index_scopes","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Index Scopes"},"description":"JSON-массив областей по агентам: {agent_alias, filters, columns, business_fields}. filters и columns используют тот же формат, что index_filters и index_columns. business_fields — boolean. Алиасы не должны повторяться. При наличии filters соответствующий агент должен входить в agent_alias/agent_id выборки. Не совмещается с index_filters или index_columns верхнего уровня."},{"name":"include_business_fields","in":"query","required":false,"schema":{"type":"boolean","default":false,"title":"Include Business Fields"},"description":"Включить business_fields в элементы списка. По умолчанию false."}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GlagolReportThreadListV2Response"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"401":{"description":"Не передан или недействителен Bearer-токен."},"403":{"description":"Недостаточно прав для этой операции или данных."}},"description":"Основной метод для получения отчётов: один элемент на `report_uid`,\nнезависимо от количества сегментов. Все фильтры необязательны: запрос без них\nвозвращает первую страницу диалогов доступного аккаунта.\n\nПо умолчанию: `limit=50`, сортировка `last_activity_at` по убыванию.\nДля следующей страницы передайте `pagination.next_cursor` как `cursor`;\nдля предыдущей — `pagination.prev_cursor` и `page_direction=prev`.\nСохраняйте фильтры, сортировку и `limit`: курсор привязан к запросу.\nПосле изменения условий начните с первой страницы без курсора.\n\nФильтры разных полей применяются совместно. Множественные значения одного\nподдерживаемого поля передаются как JSON-массив, например\n`communication_channel=[\"call\",\"chat\"]` или `primary_status=[\"active\",\"finished\"]`.\nКодируйте такие значения средствами HTTP-клиента.\n\nИнтервалы времени полуоткрытые: нижняя граница включается, верхняя — нет.\n`started_*` ограничивает начало диалога, `last_activity_*` — последнюю активность.\n`date_*` служит совместимым вариантом `last_activity_*`.\n\nНе считайте `total.value` безусловно точным: `total.relation` бывает\n`exact`, `lower_bound` и `unknown`. Отсутствие фильтров не отключает пагинацию.\n","security":[{"GlagolBearer":[]}]}},"/modules/glagol/reports/v2/threads/count":{"get":{"tags":["Отчёты: списки и фильтры"],"summary":"Подсчитать диалоги по фильтрам","operationId":"count_report_threads_v2_endpoint_modules_glagol_reports_v2_threads_count_get","parameters":[{"name":"agent_alias","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Agent Alias"},"description":"Алиас агента либо JSON-массив алиасов. Доступ к каждому агенту проверяется."},{"name":"agent_id","in":"query","required":false,"schema":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Agent Id"},"description":"Числовой ID агента. При одновременной передаче agent_alias ограничения согласуются между собой."},{"name":"project_id","in":"query","required":false,"schema":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Project Id"},"description":"Числовой ID проекта."},{"name":"communication_channel","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Communication Channel"},"description":"Канал общения: call или chat. Одно значение или JSON-массив в строке query-параметра. Для нескольких значений используйте JSON, а не строку через запятую."},{"name":"primary_status","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Primary Status"},"description":"Основной статус отчёта. Одно значение или JSON-массив в строке query-параметра. Для нескольких значений используйте JSON, а не строку через запятую."},{"name":"has_problems","in":"query","required":false,"schema":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Has Problems"},"description":"true — есть хотя бы один диагностический флаг; false — таких флагов нет. Отсутствие параметра не ограничивает выборку."},{"name":"needs_review","in":"query","required":false,"schema":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Needs Review"},"description":"Фильтр по необходимости проверки отчёта."},{"name":"processing_blocked","in":"query","required":false,"schema":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Processing Blocked"},"description":"Фильтр по блокировке обработки отчёта."},{"name":"needs_rebuild","in":"query","required":false,"schema":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Needs Rebuild"},"description":"Фильтр по необходимости пересборки отчёта."},{"name":"has_seq_collision","in":"query","required":false,"schema":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Has Seq Collision"},"description":"Фильтр по наличию коллизий номеров событий."},{"name":"has_late_event","in":"query","required":false,"schema":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Has Late Event"},"description":"Фильтр по наличию поздних событий."},{"name":"has_sequence_gap","in":"query","required":false,"schema":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Has Sequence Gap"},"description":"Фильтр по наличию пропусков последовательности событий."},{"name":"has_conflicts","in":"query","required":false,"schema":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Has Conflicts"},"description":"Фильтр по наличию конфликтов."},{"name":"has_skipped_events","in":"query","required":false,"schema":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Has Skipped Events"},"description":"Фильтр по наличию пропущенных при обработке событий."},{"name":"date_from","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Date From"},"description":"Совместимый вариант last_activity_from. Нижняя граница включается; явный last_activity_from имеет приоритет."},{"name":"date_to","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Date To"},"description":"Совместимый вариант last_activity_to. Верхняя граница не включается; явный last_activity_to имеет приоритет."},{"name":"started_from","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Started From"},"description":"Начало первого сегмента, начиная с указанного момента включительно. Передавайте ISO 8601 с часовым поясом."},{"name":"started_to","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Started To"},"description":"Начало первого сегмента строго раньше указанного момента. Для полного дня укажите начало следующего дня."},{"name":"last_activity_from","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Last Activity From"},"description":"Последняя активность начиная с указанного момента включительно. Передавайте ISO 8601 с часовым поясом."},{"name":"last_activity_to","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Last Activity To"},"description":"Последняя активность строго раньше указанного момента."},{"name":"search","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Search"},"description":"Поиск подстроки без учёта регистра в report_uid, agent_alias и dialog_uri. Для текста сообщений используйте message_search."},{"name":"record_item_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Record Item Id"},"description":"ID записи списка, связанной с диалогом: проверяется наличие в record_item_ids превью отчёта."},{"name":"message_search","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Message Search"},"description":"Поиск по тексту сообщений. В результатах списка совпадения возвращаются в message_search_matches."},{"name":"message_search_mode","in":"query","required":false,"schema":{"type":"string","default":"auto","title":"Message Search Mode"},"description":"Режим поиска сообщений: auto, fts, substring, fuzzy, number или hybrid. По умолчанию auto."},{"name":"message_search_fuzzy_threshold","in":"query","required":false,"schema":{"type":"number","maximum":1.0,"minimum":0.0,"default":0.25,"title":"Message Search Fuzzy Threshold"},"description":"Порог нечёткого поиска от 0 до 1, по умолчанию 0.25."},{"name":"phid","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Phid"},"description":"Фильтр по идентификатору фразы в сообщениях. Одно значение или JSON-массив в строке query-параметра. Для нескольких значений используйте JSON, а не строку через запятую."},{"name":"rule_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Rule Id"},"description":"Фильтр по идентификатору правила. Одно значение или JSON-массив в строке query-параметра. Для нескольких значений используйте JSON, а не строку через запятую."},{"name":"llm_preset_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Llm Preset Id"},"description":"Фильтр по числовому ID LLM-пресета. Одно значение или JSON-массив в строке query-параметра. Для нескольких значений используйте JSON, а не строку через запятую."},{"name":"code_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Code Id"},"description":"Фильтр по идентификатору кода. Одно значение или JSON-массив в строке query-параметра. Для нескольких значений используйте JSON, а не строку через запятую."},{"name":"api_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Api Id"},"description":"Фильтр по числовому ID API-запроса. Одно значение или JSON-массив в строке query-параметра. Для нескольких значений используйте JSON, а не строку через запятую."},{"name":"index_filters","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Index Filters"},"description":"JSON-массив фильтров по заранее настроенным индексируемым параметрам агента. Каждый объект содержит param_key, param_source, value_type, op и, кроме op=exists, value. param_source: show_value или decide_value; decide_value индексируется как text. Для text доступны eq, contains, exists; для number/timestamp — eq, gt, gte, lt, lte, exists; для boolean/json — eq, exists. Нужен agent_id или agent_alias. Не совмещается с index_scopes."},{"name":"index_columns","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Index Columns"},"description":"JSON-массив объектов {param_key, param_source, value_type} для возврата index_values. Параметры должны быть настроены как индексируемые у выбранного агента. Нужен agent_id или agent_alias. Не совмещается с index_scopes."},{"name":"index_scopes","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Index Scopes"},"description":"JSON-массив областей по агентам: {agent_alias, filters, columns, business_fields}. filters и columns используют тот же формат, что index_filters и index_columns. business_fields — boolean. Алиасы не должны повторяться. При наличии filters соответствующий агент должен входить в agent_alias/agent_id выборки. Не совмещается с index_filters или index_columns верхнего уровня."},{"name":"include_business_fields","in":"query","required":false,"schema":{"type":"boolean","default":false,"title":"Include Business Fields"},"description":"Включить business_fields в элементы списка. По умолчанию false."}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GlagolReportThreadCountV2Response"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"401":{"description":"Не передан или недействителен Bearer-токен."},"403":{"description":"Недостаточно прав для этой операции или данных."}},"description":"Использует те же фильтры, что список диалогов, и выполняет отдельный подсчёт. Передавайте те же условия выборки. Проверяйте `total.relation`: даже отдельный подсчёт может вернуть `unknown`, если превышен бюджет выполнения запроса.","security":[{"GlagolBearer":[]}]}},"/modules/glagol/reports/v2/threads/capabilities":{"get":{"tags":["Отчёты: списки и фильтры"],"summary":"Узнать доступную сортировку и ограничения","operationId":"get_report_thread_capabilities_endpoint_modules_glagol_reports_v2_threads_capabilities_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GlagolReportThreadCapabilitiesResponse"}}}},"401":{"description":"Не передан или недействителен Bearer-токен."},"403":{"description":"Недостаточно прав для этой операции или данных."}},"description":"Возвращает текущие возможности списка отчётов. Для пользовательской сортировки выбирайте элементы `supported_sort_fields` с `enabled=true` и `visibility=public`; учитывайте разрешённые направления и ограничения `pagination`. Доступность динамической сортировки определяется `dynamic_sort`. Ответ отражает состояние конкретного контура.","security":[{"GlagolBearer":[]}],"parameters":[]}},"/modules/glagol/reports/v2/threads/changes/check":{"get":{"tags":["Отчёты: списки и фильтры"],"summary":"Проверить изменения выборки","operationId":"check_report_thread_changes_v2_endpoint_modules_glagol_reports_v2_threads_changes_check_get","parameters":[{"name":"change_cursor","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Change Cursor"},"description":"Курсор изменений из ответа списка с теми же фильтрами; отличается от курсора страниц."},{"name":"agent_alias","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Agent Alias"},"description":"Алиас агента либо JSON-массив алиасов. Доступ к каждому агенту проверяется."},{"name":"agent_id","in":"query","required":false,"schema":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Agent Id"},"description":"Числовой ID агента. При одновременной передаче agent_alias ограничения согласуются между собой."},{"name":"project_id","in":"query","required":false,"schema":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Project Id"},"description":"Числовой ID проекта."},{"name":"communication_channel","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Communication Channel"},"description":"Канал общения: call или chat. Одно значение или JSON-массив в строке query-параметра. Для нескольких значений используйте JSON, а не строку через запятую."},{"name":"primary_status","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Primary Status"},"description":"Основной статус отчёта. Одно значение или JSON-массив в строке query-параметра. Для нескольких значений используйте JSON, а не строку через запятую."},{"name":"has_problems","in":"query","required":false,"schema":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Has Problems"},"description":"true — есть хотя бы один диагностический флаг; false — таких флагов нет. Отсутствие параметра не ограничивает выборку."},{"name":"needs_review","in":"query","required":false,"schema":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Needs Review"},"description":"Фильтр по необходимости проверки отчёта."},{"name":"processing_blocked","in":"query","required":false,"schema":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Processing Blocked"},"description":"Фильтр по блокировке обработки отчёта."},{"name":"needs_rebuild","in":"query","required":false,"schema":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Needs Rebuild"},"description":"Фильтр по необходимости пересборки отчёта."},{"name":"has_seq_collision","in":"query","required":false,"schema":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Has Seq Collision"},"description":"Фильтр по наличию коллизий номеров событий."},{"name":"has_late_event","in":"query","required":false,"schema":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Has Late Event"},"description":"Фильтр по наличию поздних событий."},{"name":"has_sequence_gap","in":"query","required":false,"schema":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Has Sequence Gap"},"description":"Фильтр по наличию пропусков последовательности событий."},{"name":"has_conflicts","in":"query","required":false,"schema":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Has Conflicts"},"description":"Фильтр по наличию конфликтов."},{"name":"has_skipped_events","in":"query","required":false,"schema":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Has Skipped Events"},"description":"Фильтр по наличию пропущенных при обработке событий."},{"name":"date_from","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Date From"},"description":"Совместимый вариант last_activity_from. Нижняя граница включается; явный last_activity_from имеет приоритет."},{"name":"date_to","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Date To"},"description":"Совместимый вариант last_activity_to. Верхняя граница не включается; явный last_activity_to имеет приоритет."},{"name":"started_from","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Started From"},"description":"Начало первого сегмента, начиная с указанного момента включительно. Передавайте ISO 8601 с часовым поясом."},{"name":"started_to","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Started To"},"description":"Начало первого сегмента строго раньше указанного момента. Для полного дня укажите начало следующего дня."},{"name":"last_activity_from","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Last Activity From"},"description":"Последняя активность начиная с указанного момента включительно. Передавайте ISO 8601 с часовым поясом."},{"name":"last_activity_to","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Last Activity To"},"description":"Последняя активность строго раньше указанного момента."},{"name":"search","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Search"},"description":"Поиск подстроки без учёта регистра в report_uid, agent_alias и dialog_uri. Для текста сообщений используйте message_search."},{"name":"record_item_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Record Item Id"},"description":"ID записи списка, связанной с диалогом: проверяется наличие в record_item_ids превью отчёта."},{"name":"message_search","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Message Search"},"description":"Поиск по тексту сообщений. В результатах списка совпадения возвращаются в message_search_matches."},{"name":"message_search_mode","in":"query","required":false,"schema":{"type":"string","default":"auto","title":"Message Search Mode"},"description":"Режим поиска сообщений: auto, fts, substring, fuzzy, number или hybrid. По умолчанию auto."},{"name":"message_search_fuzzy_threshold","in":"query","required":false,"schema":{"type":"number","maximum":1.0,"minimum":0.0,"default":0.25,"title":"Message Search Fuzzy Threshold"},"description":"Порог нечёткого поиска от 0 до 1, по умолчанию 0.25."},{"name":"phid","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Phid"},"description":"Фильтр по идентификатору фразы в сообщениях. Одно значение или JSON-массив в строке query-параметра. Для нескольких значений используйте JSON, а не строку через запятую."},{"name":"rule_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Rule Id"},"description":"Фильтр по идентификатору правила. Одно значение или JSON-массив в строке query-параметра. Для нескольких значений используйте JSON, а не строку через запятую."},{"name":"llm_preset_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Llm Preset Id"},"description":"Фильтр по числовому ID LLM-пресета. Одно значение или JSON-массив в строке query-параметра. Для нескольких значений используйте JSON, а не строку через запятую."},{"name":"code_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Code Id"},"description":"Фильтр по идентификатору кода. Одно значение или JSON-массив в строке query-параметра. Для нескольких значений используйте JSON, а не строку через запятую."},{"name":"api_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Api Id"},"description":"Фильтр по числовому ID API-запроса. Одно значение или JSON-массив в строке query-параметра. Для нескольких значений используйте JSON, а не строку через запятую."},{"name":"index_filters","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Index Filters"},"description":"JSON-массив фильтров по заранее настроенным индексируемым параметрам агента. Каждый объект содержит param_key, param_source, value_type, op и, кроме op=exists, value. param_source: show_value или decide_value; decide_value индексируется как text. Для text доступны eq, contains, exists; для number/timestamp — eq, gt, gte, lt, lte, exists; для boolean/json — eq, exists. Нужен agent_id или agent_alias. Не совмещается с index_scopes."},{"name":"index_columns","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Index Columns"},"description":"JSON-массив объектов {param_key, param_source, value_type} для возврата index_values. Параметры должны быть настроены как индексируемые у выбранного агента. Нужен agent_id или agent_alias. Не совмещается с index_scopes."},{"name":"index_scopes","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Index Scopes"},"description":"JSON-массив областей по агентам: {agent_alias, filters, columns, business_fields}. filters и columns используют тот же формат, что index_filters и index_columns. business_fields — boolean. Алиасы не должны повторяться. При наличии filters соответствующий агент должен входить в agent_alias/agent_id выборки. Не совмещается с index_filters или index_columns верхнего уровня."},{"name":"include_business_fields","in":"query","required":false,"schema":{"type":"boolean","default":false,"title":"Include Business Fields"},"description":"Включить business_fields в элементы списка. По умолчанию false."}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GlagolReportThreadChangesCheckV2Response"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"401":{"description":"Не передан или недействителен Bearer-токен."},"403":{"description":"Недостаточно прав для этой операции или данных."}},"description":"Проверяет изменения после `change_cursor`, полученного из списка диалогов.\nПередайте те же фильтры. При `has_changes=true` заново загрузите список и возьмите\nновый `change_cursor` из его ответа.\n\nБез курсора или с неподходящим курсором ответ содержит `rebased=true`:\nсервер создал новую точку отсчёта; `has_changes=false` в таком ответе не доказывает\nотсутствие изменений с предыдущей загрузки.\n\nПроверяются изменившиеся строки, которые **сейчас** соответствуют фильтрам.\nУдаление, архивирование или выход строки из фильтра обнаруживается не во всех\nслучаях. Для полной синхронизации периодически загружайте выборку заново.\n","security":[{"GlagolBearer":[]}]}},"/modules/glagol/reports":{"get":{"tags":["Отчёты: списки и фильтры"],"summary":"Получить список сегментов отчётов","operationId":"list_reports_endpoint_modules_glagol_reports_get","parameters":[{"name":"agent_alias","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Agent Alias"},"description":"Алиас агента либо JSON-массив алиасов. Доступ к каждому агенту проверяется."},{"name":"agent_id","in":"query","required":false,"schema":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Agent Id"},"description":"Числовой ID агента. При одновременной передаче agent_alias ограничения согласуются между собой."},{"name":"project_id","in":"query","required":false,"schema":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Project Id"},"description":"Числовой ID проекта."},{"name":"channel_type","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Channel Type"},"description":"Тип канала, сохранённый в отчёте. Одно значение или JSON-массив в строке query-параметра. Для нескольких значений используйте JSON, а не строку через запятую."},{"name":"communication_channel","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Communication Channel"},"description":"Канал общения: call или chat. Одно значение или JSON-массив в строке query-параметра. Для нескольких значений используйте JSON, а не строку через запятую."},{"name":"status","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Status"},"description":"Статус сегмента отчёта. Одно значение или JSON-массив в строке query-параметра. Для нескольких значений используйте JSON, а не строку через запятую."},{"name":"segment_status","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Segment Status"},"description":"Точное значение segment_status."},{"name":"is_active_segment","in":"query","required":false,"schema":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Is Active Segment"},"description":"true — только активные сегменты; false — только неактивные."},{"name":"needs_review","in":"query","required":false,"schema":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Needs Review"},"description":"Фильтр по необходимости проверки отчёта."},{"name":"processing_blocked","in":"query","required":false,"schema":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Processing Blocked"},"description":"Фильтр по блокировке обработки отчёта."},{"name":"needs_rebuild","in":"query","required":false,"schema":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Needs Rebuild"},"description":"Фильтр по необходимости пересборки отчёта."},{"name":"has_seq_collision","in":"query","required":false,"schema":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Has Seq Collision"},"description":"Фильтр по наличию коллизий номеров событий."},{"name":"report_uid","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Report Uid"},"description":"Ограничить список сегментами одного диалога."},{"name":"search","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Search"}},{"name":"phid","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Phid"},"description":"Фильтр по идентификатору фразы в сообщениях. Одно значение или JSON-массив в строке query-параметра. Для нескольких значений используйте JSON, а не строку через запятую."},{"name":"rule_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Rule Id"},"description":"Фильтр по идентификатору правила. Одно значение или JSON-массив в строке query-параметра. Для нескольких значений используйте JSON, а не строку через запятую."},{"name":"llm_preset_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Llm Preset Id"},"description":"Фильтр по числовому ID LLM-пресета. Одно значение или JSON-массив в строке query-параметра. Для нескольких значений используйте JSON, а не строку через запятую."},{"name":"code_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Code Id"},"description":"Фильтр по идентификатору кода. Одно значение или JSON-массив в строке query-параметра. Для нескольких значений используйте JSON, а не строку через запятую."},{"name":"api_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Api Id"},"description":"Фильтр по числовому ID API-запроса. Одно значение или JSON-массив в строке query-параметра. Для нескольких значений используйте JSON, а не строку через запятую."},{"name":"started_from","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Started From"},"description":"Начало сегмента начиная с указанного момента включительно."},{"name":"started_to","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Started To"},"description":"Начало сегмента строго раньше указанного момента."},{"name":"last_event_received_from","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Last Event Received From"},"description":"Время получения последнего события начиная с указанного момента включительно."},{"name":"last_event_received_to","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Last Event Received To"},"description":"Время получения последнего события строго раньше указанного момента."},{"name":"last_activity_from","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Last Activity From"},"description":"Совместимый фильтр по времени получения последнего события; имеет приоритет над last_event_received_from."},{"name":"last_activity_to","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Last Activity To"},"description":"Совместимый фильтр по времени получения последнего события; имеет приоритет над last_event_received_to."},{"name":"cursor_id","in":"query","required":false,"schema":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Cursor Id"},"description":"Значение next_cursor_id предыдущего ответа."},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":500,"minimum":1,"default":100,"title":"Limit"},"description":"Количество сегментов: от 1 до 500, по умолчанию 100."}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GlagolReportListResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"401":{"description":"Не передан или недействителен Bearer-токен."},"403":{"description":"Недостаточно прав для этой операции или данных."}},"description":"Возвращает отдельные сегменты, каждый со своим числовым `report_id`.\nОдин `report_uid` может встречаться несколько раз. Для списка по одному элементу\nна диалог используйте `/v2/threads`.\n\nВсе фильтры необязательны. Сортировка: время начала по убыванию, затем ID по\nубыванию. Передавайте `next_cursor_id` из ответа как `cursor_id` следующего\nзапроса, сохраняя фильтры. `next_cursor_id=null` означает конец выборки.\nГраницы временных диапазонов: начало включительно, конец не включается.\n","security":[{"GlagolBearer":[]}]}},"/modules/glagol/reports/by-uid/{report_uid}":{"get":{"tags":["Отчёты: карточки"],"summary":"Получить карточку диалога","operationId":"get_report_uid_card_modules_glagol_reports_by_uid__report_uid__get","parameters":[{"name":"report_uid","in":"path","required":true,"schema":{"type":"string","title":"Report Uid"}},{"name":"agent_alias","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Agent Alias"},"description":"Необязательная проверка доступа к агенту. Сам отчёт выбирается по report_id/report_uid в пределах аккаунта."}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GlagolReportThreadCardOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"401":{"description":"Не передан или недействителен Bearer-токен."},"403":{"description":"Недостаточно прав для этой операции или данных."}},"description":"Возвращает карточку всего диалога: статусы, времена, счётчики, диагностические флаги, звонки и массив `segments`. Используйте `segments[].report_id` для чтения отдельного сегмента. Полная трассировка и состояния параметров запрашиваются отдельными методами. Если диалог не найден в аккаунте, возвращается 404.","security":[{"GlagolBearer":[]}]}},"/modules/glagol/reports/{report_id}":{"get":{"tags":["Отчёты: карточки"],"summary":"Получить карточку сегмента","operationId":"get_report_segment_card_endpoint_modules_glagol_reports__report_id__get","parameters":[{"name":"report_id","in":"path","required":true,"schema":{"type":"integer","title":"Report Id"}},{"name":"agent_alias","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Agent Alias"},"description":"Необязательная проверка доступа к агенту. Сам отчёт выбирается по report_id/report_uid в пределах аккаунта."}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GlagolReportSegmentCardOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"401":{"description":"Не передан или недействителен Bearer-токен."},"403":{"description":"Недостаточно прав для этой операции или данных."}},"description":"Возвращает карточку одного сегмента: связь с `report_uid`, статус, время, счётчики, диагностические флаги и сведения об обработке проекции. `is_active_segment` описывает сегмент, а `is_current_version` — версию проекции; эти признаки не взаимозаменяемы. Полная карта параметров в карточку не входит. Если сегмент не найден в аккаунте, возвращается 404.","security":[{"GlagolBearer":[]}]}},"/modules/glagol/reports/by-uid/{report_uid}/messages":{"get":{"tags":["Отчёты: сообщения и события"],"summary":"Получить сообщения диалога","operationId":"get_report_uid_messages_modules_glagol_reports_by_uid__report_uid__messages_get","parameters":[{"name":"report_uid","in":"path","required":true,"schema":{"type":"string","title":"Report Uid"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":5000,"minimum":1,"default":1000,"title":"Limit"},"description":"Максимальное число сообщений: от 1 до 5000, по умолчанию 1000. Курсорная пагинация не поддерживается."},{"name":"agent_alias","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Agent Alias"},"description":"Необязательная проверка доступа к агенту. Сам отчёт выбирается по report_id/report_uid в пределах аккаунта."}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GlagolReportMessageListResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"401":{"description":"Не передан или недействителен Bearer-токен."},"403":{"description":"Недостаточно прав для этой операции или данных."}},"description":"Возвращает сообщения текущих версий сегментов: сначала по номеру сегмента, внутри сегмента — в хронологическом порядке. По умолчанию до 1000 сообщений, максимум 5000. Этот метод не принимает курсор: `next_cursor_id` в текущей реализации всегда null, даже если результат ограничен limit. Если получено ровно limit сообщений, полнота переписки этим ответом не подтверждается. Для многосегментного диалога можно получать сообщения по report_id каждого сегмента, с тем же ограничением на один запрос.","security":[{"GlagolBearer":[]}]}},"/modules/glagol/reports/{report_id}/messages":{"get":{"tags":["Отчёты: сообщения и события"],"summary":"Получить сообщения сегмента","operationId":"get_report_segment_messages_modules_glagol_reports__report_id__messages_get","parameters":[{"name":"report_id","in":"path","required":true,"schema":{"type":"integer","title":"Report Id"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":5000,"minimum":1,"default":1000,"title":"Limit"},"description":"Максимальное число сообщений: от 1 до 5000, по умолчанию 1000. Курсорная пагинация не поддерживается."},{"name":"agent_alias","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Agent Alias"},"description":"Необязательная проверка доступа к агенту. Сам отчёт выбирается по report_id/report_uid в пределах аккаунта."}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GlagolReportMessageListResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"401":{"description":"Не передан или недействителен Bearer-токен."},"403":{"description":"Недостаточно прав для этой операции или данных."}},"description":"Возвращает сообщения текущей версии сегмента в хронологическом порядке. По умолчанию до 1000 сообщений, максимум 5000. Метод не принимает курсор; `next_cursor_id` в текущей реализации всегда null. Если возвращено limit сообщений, ответ может быть неполным — null в этом методе не доказывает, что достигнут конец переписки.","security":[{"GlagolBearer":[]}]}},"/modules/glagol/reports/by-uid/{report_uid}/timeline":{"get":{"tags":["Отчёты: сообщения и события"],"summary":"Получить ленту событий диалога","operationId":"get_report_uid_timeline_modules_glagol_reports_by_uid__report_uid__timeline_get","parameters":[{"name":"report_uid","in":"path","required":true,"schema":{"type":"string","title":"Report Uid"}},{"name":"timeline_type","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Timeline Type"},"description":"Один тип событий: wave_changes, rule_events, phrase_events, llm_runs, code_runs, rag_runs, api_runs, redirect_attempts или api_queue. Без параметра — объединённая лента."},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":5000,"minimum":1,"default":1000,"title":"Limit"},"description":"Количество событий: от 1 до 5000, по умолчанию 1000."},{"name":"cursor","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Cursor"},"description":"Строка next_cursor из предыдущего ответа; передайте её без изменений с теми же фильтрами."},{"name":"agent_alias","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Agent Alias"},"description":"Необязательная проверка доступа к агенту. Сам отчёт выбирается по report_id/report_uid в пределах аккаунта."}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GlagolReportTimelineListResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"401":{"description":"Не передан или недействителен Bearer-токен."},"403":{"description":"Недостаточно прав для этой операции или данных."}},"description":"Объединённая техническая лента всех сегментов диалога. Можно выбрать один `timeline_type`. Данные конкретного типа события находятся в `payload`. Передавайте `next_cursor` как `cursor` до null; `next_cursor_id` — совместимое имя того же значения. Для пошаговой карты параметров используйте decision-trace.","security":[{"GlagolBearer":[]}]}},"/modules/glagol/reports/{report_id}/timeline":{"get":{"tags":["Отчёты: сообщения и события"],"summary":"Получить ленту событий сегмента","operationId":"get_report_segment_timeline_modules_glagol_reports__report_id__timeline_get","parameters":[{"name":"report_id","in":"path","required":true,"schema":{"type":"integer","title":"Report Id"}},{"name":"timeline_type","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Timeline Type"},"description":"Один тип событий: wave_changes, rule_events, phrase_events, llm_runs, code_runs, rag_runs, api_runs, redirect_attempts или api_queue. Без параметра — объединённая лента."},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":5000,"minimum":1,"default":1000,"title":"Limit"},"description":"Количество событий: от 1 до 5000, по умолчанию 1000."},{"name":"cursor","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Cursor"},"description":"Строка next_cursor из предыдущего ответа; передайте её без изменений с теми же фильтрами."},{"name":"agent_alias","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Agent Alias"},"description":"Необязательная проверка доступа к агенту. Сам отчёт выбирается по report_id/report_uid в пределах аккаунта."}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GlagolReportTimelineListResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"401":{"description":"Не передан или недействителен Bearer-токен."},"403":{"description":"Недостаточно прав для этой операции или данных."}},"description":"Технические события одного сегмента: изменения волн, правила, фразы, вызовы LLM, кода, RAG и API, переводы и очередь API. Без `timeline_type` возвращается объединённая лента. Данные события — в `payload`. Для следующей страницы передайте `next_cursor` в `cursor`; null означает конец выборки.","security":[{"GlagolBearer":[]}]}},"/modules/glagol/reports/by-uid/{report_uid}/debug/decision-trace":{"get":{"tags":["Отчёты: трассировка и карта"],"summary":"Получить трассировку и карту диалога","operationId":"get_report_uid_decision_trace_modules_glagol_reports_by_uid__report_uid__debug_decision_trace_get","parameters":[{"name":"report_uid","in":"path","required":true,"schema":{"type":"string","title":"Report Uid"}},{"name":"event_seq_from","in":"query","required":false,"schema":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Event Seq From"},"description":"Нижняя граница event_seq включительно."},{"name":"event_seq_to","in":"query","required":false,"schema":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Event Seq To"},"description":"Верхняя граница event_seq включительно."},{"name":"step_from","in":"query","required":false,"schema":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Step From"},"description":"Нижняя граница step_no включительно."},{"name":"step_to","in":"query","required":false,"schema":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Step To"},"description":"Верхняя граница step_no включительно."},{"name":"include_param_snapshot","in":"query","required":false,"schema":{"type":"boolean","default":false,"title":"Include Param Snapshot"},"description":"Вернуть восстановленное состояние параметров после каждого шага в param_snapshot. По умолчанию false."},{"name":"include_task_snapshot","in":"query","required":false,"schema":{"type":"boolean","default":false,"title":"Include Task Snapshot"},"description":"Вернуть восстановленное состояние задач после каждого шага в task_snapshot. По умолчанию false."},{"name":"include_runs","in":"query","required":false,"schema":{"type":"boolean","default":false,"title":"Include Runs"},"description":"Включить компактные сведения о запусках в runs_compact. По умолчанию возвращается пустой объект."},{"name":"include_messages","in":"query","required":false,"schema":{"type":"boolean","default":false,"title":"Include Messages"},"description":"Включить messages_compact. По умолчанию возвращается пустой массив."},{"name":"changed_only","in":"query","required":false,"schema":{"type":"boolean","default":false,"title":"Changed Only"},"description":"Отключить полные snapshots и checkpoints, оставив изменения и события шагов. Не отбирает только изменившиеся шаги. При true полные состояния равны null даже при include_*_snapshot=true."},{"name":"cursor","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Cursor"},"description":"Непрозрачный next_cursor из предыдущего ответа. Сохраняйте область отчёта, фильтры и order."},{"name":"order","in":"query","required":false,"schema":{"enum":["asc","desc"],"type":"string","default":"asc","title":"Order"},"description":"asc — от начала к концу; desc — от последнего шага. Порядок: номер сегмента, event_seq, step_no, id."},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":500,"minimum":1,"default":100,"title":"Limit"},"description":"Количество шагов: от 1 до 500, по умолчанию 100. Для последнего состояния используйте order=desc и limit=1."},{"name":"agent_alias","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Agent Alias"},"description":"Необязательная проверка доступа к агенту. Сам отчёт выбирается по report_id/report_uid в пределах аккаунта."}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GlagolReportDecisionTraceResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"401":{"description":"Не передан или недействителен Bearer-токен."},"403":{"description":"Недостаточно прав для этой операции или данных."}},"description":"Возвращает шаги принятия решений: выбранные правила,\nизменения параметров, события задач, ошибки и, по запросу, состояния карты диалога.\n\nДля чтения всей трассировки последовательно передавайте `next_cursor` в `cursor`.\n`next_cursor=null` означает конец выборки. `next_cursor_id` — совместимое имя того же курсора.\n\n**Последнее состояние карты:** передайте `order=desc`, `limit=1`,\n`include_param_snapshot=true`, `include_task_snapshot=true`, `changed_only=false`.\nЧитайте `items[0].param_snapshot` и `items[0].task_snapshot`, предварительно проверив,\nчто `items` не пуст. Сервер восстанавливает состояние после шага по контрольным\nснимкам и последующим изменениям; карту не нужно собирать на клиенте.\n\nЭто последнее **записанное** состояние. У активного процесса оно промежуточное;\nпри задержке обработки или диагностических проблемах ещё может измениться.\nПроверяйте завершение процесса и состояние обработки по карточке отчёта.\nПустой массив означает отсутствие записанной трассировки в выбранной области,\nа не подтверждение пустой карты. `null` у snapshot означает, что полный снимок\nне запрашивался либо отключён через `changed_only`.\n\nМетод охватывает все сегменты диалога. При `order=desc&limit=1` возвращается последний записанный шаг из сегментов, где есть трассировка. Снимки принадлежат сегменту этого шага, определяемому `report_id`: это не объединённая карта всех сегментов. Если более новый сегмент ещё не содержит шагов, результат может относиться к предыдущему сегменту.\n","security":[{"GlagolBearer":[]}]}},"/modules/glagol/reports/{report_id}/debug/decision-trace":{"get":{"tags":["Отчёты: трассировка и карта"],"summary":"Получить трассировку и карту сегмента","operationId":"get_report_segment_decision_trace_modules_glagol_reports__report_id__debug_decision_trace_get","parameters":[{"name":"report_id","in":"path","required":true,"schema":{"type":"integer","title":"Report Id"}},{"name":"event_seq_from","in":"query","required":false,"schema":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Event Seq From"},"description":"Нижняя граница event_seq включительно."},{"name":"event_seq_to","in":"query","required":false,"schema":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Event Seq To"},"description":"Верхняя граница event_seq включительно."},{"name":"step_from","in":"query","required":false,"schema":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Step From"},"description":"Нижняя граница step_no включительно."},{"name":"step_to","in":"query","required":false,"schema":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Step To"},"description":"Верхняя граница step_no включительно."},{"name":"include_param_snapshot","in":"query","required":false,"schema":{"type":"boolean","default":false,"title":"Include Param Snapshot"},"description":"Вернуть восстановленное состояние параметров после каждого шага в param_snapshot. По умолчанию false."},{"name":"include_task_snapshot","in":"query","required":false,"schema":{"type":"boolean","default":false,"title":"Include Task Snapshot"},"description":"Вернуть восстановленное состояние задач после каждого шага в task_snapshot. По умолчанию false."},{"name":"include_runs","in":"query","required":false,"schema":{"type":"boolean","default":false,"title":"Include Runs"},"description":"Включить компактные сведения о запусках в runs_compact. По умолчанию возвращается пустой объект."},{"name":"include_messages","in":"query","required":false,"schema":{"type":"boolean","default":false,"title":"Include Messages"},"description":"Включить messages_compact. По умолчанию возвращается пустой массив."},{"name":"changed_only","in":"query","required":false,"schema":{"type":"boolean","default":false,"title":"Changed Only"},"description":"Отключить полные snapshots и checkpoints, оставив изменения и события шагов. Не отбирает только изменившиеся шаги. При true полные состояния равны null даже при include_*_snapshot=true."},{"name":"cursor","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Cursor"},"description":"Непрозрачный next_cursor из предыдущего ответа. Сохраняйте область отчёта, фильтры и order."},{"name":"order","in":"query","required":false,"schema":{"enum":["asc","desc"],"type":"string","default":"asc","title":"Order"},"description":"asc — от начала к концу; desc — от последнего шага. Порядок: номер сегмента, event_seq, step_no, id."},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":500,"minimum":1,"default":100,"title":"Limit"},"description":"Количество шагов: от 1 до 500, по умолчанию 100. Для последнего состояния используйте order=desc и limit=1."},{"name":"agent_alias","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Agent Alias"},"description":"Необязательная проверка доступа к агенту. Сам отчёт выбирается по report_id/report_uid в пределах аккаунта."}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GlagolReportDecisionTraceResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"401":{"description":"Не передан или недействителен Bearer-токен."},"403":{"description":"Недостаточно прав для этой операции или данных."}},"description":"Возвращает шаги принятия решений: выбранные правила,\nизменения параметров, события задач, ошибки и, по запросу, состояния карты диалога.\n\nДля чтения всей трассировки последовательно передавайте `next_cursor` в `cursor`.\n`next_cursor=null` означает конец выборки. `next_cursor_id` — совместимое имя того же курсора.\n\n**Последнее состояние карты:** передайте `order=desc`, `limit=1`,\n`include_param_snapshot=true`, `include_task_snapshot=true`, `changed_only=false`.\nЧитайте `items[0].param_snapshot` и `items[0].task_snapshot`, предварительно проверив,\nчто `items` не пуст. Сервер восстанавливает состояние после шага по контрольным\nснимкам и последующим изменениям; карту не нужно собирать на клиенте.\n\nЭто последнее **записанное** состояние. У активного процесса оно промежуточное;\nпри задержке обработки или диагностических проблемах ещё может измениться.\nПроверяйте завершение процесса и состояние обработки по карточке отчёта.\nПустой массив означает отсутствие записанной трассировки в выбранной области,\nа не подтверждение пустой карты. `null` у snapshot означает, что полный снимок\nне запрашивался либо отключён через `changed_only`.\n\nМетод ограничен одним `report_id`. Для состояния каждого сегмента диалога получите `segments` карточки и запросите последний шаг отдельно для нужных сегментов.\n","security":[{"GlagolBearer":[]}]}}},"components":{"schemas":{"HTTPValidationError":{"properties":{"detail":{"items":{"$ref":"#/components/schemas/ValidationError"},"type":"array","title":"Detail"}},"type":"object","title":"HTTPValidationError"},"ValidationError":{"properties":{"loc":{"items":{"anyOf":[{"type":"string"},{"type":"integer"}]},"type":"array","title":"Location"},"msg":{"type":"string","title":"Message"},"type":{"type":"string","title":"Error Type"}},"type":"object","required":["loc","msg","type"],"title":"ValidationError"},"GlagolReportDecisionTraceResponse":{"properties":{"items":{"items":{"$ref":"#/components/schemas/GlagolReportDecisionTraceStepOut"},"type":"array","title":"Items","description":"Шаги в запрошенном порядке. Пустой массив не подтверждает пустое состояние карты."},"limit":{"type":"integer","title":"Limit"},"next_cursor":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Next Cursor","description":"Курсор следующей страницы трассировки; null означает конец выборки."},"next_cursor_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Next Cursor Id","description":"Совместимое имя next_cursor, содержит ту же строку."}},"type":"object","required":["items","limit"],"title":"GlagolReportDecisionTraceResponse"},"GlagolReportDecisionTraceStepOut":{"properties":{"id":{"type":"integer","title":"Id"},"report_id":{"type":"integer","title":"Report Id","description":"Сегмент, которому принадлежит шаг и его snapshots."},"owner_id":{"type":"integer","title":"Owner Id"},"report_uid":{"type":"string","title":"Report Uid"},"report_segment_no":{"type":"integer","title":"Report Segment No"},"raw_event_id":{"type":"integer","title":"Raw Event Id"},"event_seq":{"type":"integer","title":"Event Seq"},"wave_no":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Wave No"},"circle_id":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Circle Id"},"step_no":{"type":"integer","title":"Step No"},"message_time":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Message Time"},"attempt_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Attempt Id"},"processing_status":{"anyOf":[{"type":"string","enum":["completed","interrupted"]},{"type":"null"}],"title":"Processing Status","description":"Состояние обработки этого шага: completed/interrupted или null. Не означает завершения всего диалога."},"input_utterance_ids":{"items":{"type":"string"},"type":"array","title":"Input Utterance Ids"},"interruption":{"anyOf":[{"$ref":"#/components/schemas/GlagolDecisionTraceInterruption"},{"type":"null"}]},"selection_status":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Selection Status"},"selected_rule_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Selected Rule Id","description":"Правило, выбранное на шаге, если оно зафиксировано."},"matched_rule_ids":{"items":{},"type":"array","title":"Matched Rule Ids"},"ranked_rule_ids":{"items":{},"type":"array","title":"Ranked Rule Ids"},"task_priority_winner_ids":{"items":{},"type":"array","title":"Task Priority Winner Ids"},"rule_priority_winner_ids":{"items":{},"type":"array","title":"Rule Priority Winner Ids"},"param_changes":{"items":{},"type":"array","title":"Param Changes","description":"Изменения параметров на данном шаге; не полная карта."},"param_checkpoint":{"anyOf":[{"type":"object"},{"type":"null"}],"title":"Param Checkpoint","description":"Сохранённая контрольная точка параметров. Может отсутствовать, даже когда param_snapshot восстановлен."},"task_checkpoint":{"anyOf":[{"type":"object"},{"type":"null"}],"title":"Task Checkpoint","description":"Сохранённая контрольная точка задач. Может отсутствовать, даже когда task_snapshot восстановлен."},"param_snapshot":{"anyOf":[{"type":"object"},{"type":"null"}],"title":"Param Snapshot","description":"Восстановленная карта параметров после шага, по ключам параметров. Ячейки содержат decide/show и сохранённые дополнительные сведения. Нужен include_param_snapshot=true и changed_only=false."},"task_snapshot":{"anyOf":[{"type":"object"},{"type":"null"}],"title":"Task Snapshot","description":"Восстановленные состояния задач после шага, по task_id. Нужен include_task_snapshot=true и changed_only=false."},"runs_compact":{"type":"object","title":"Runs Compact","description":"Компактные сведения о запусках при include_runs=true, иначе пустой объект."},"messages_compact":{"items":{},"type":"array","title":"Messages Compact","description":"Компактные сообщения при include_messages=true, иначе пустой массив."},"task_events":{"items":{"$ref":"#/components/schemas/GlagolReportDecisionTraceTaskEventOut"},"type":"array","title":"Task Events","description":"События задач, связанные с шагом."},"active_item_ids":{"items":{"type":"string"},"type":"array","title":"Active Item Ids"},"record_activations":{"items":{"type":"object"},"type":"array","title":"Record Activations"},"list_operations":{"anyOf":[{"type":"object"},{"type":"null"}],"title":"List Operations"},"parameter_initialization":{"anyOf":[{"type":"object"},{"type":"null"}],"title":"Parameter Initialization","description":"Сведения об инициализации параметров. final_params внутри этого объекта относится к инициализации, а не к финалу диалога."},"file_context":{"anyOf":[{"type":"object"},{"type":"null"}],"title":"File Context"},"has_error":{"type":"boolean","title":"Has Error"},"error":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Error"},"report_started_at":{"type":"string","format":"date-time","title":"Report Started At"},"processing_version":{"type":"integer","title":"Processing Version"},"is_current_version":{"type":"boolean","title":"Is Current Version"},"created_at":{"type":"string","format":"date-time","title":"Created At"}},"type":"object","required":["id","report_id","owner_id","report_uid","report_segment_no","raw_event_id","event_seq","step_no","matched_rule_ids","ranked_rule_ids","task_priority_winner_ids","rule_priority_winner_ids","param_changes","runs_compact","messages_compact","task_events","has_error","report_started_at","processing_version","is_current_version","created_at"],"title":"GlagolReportDecisionTraceStepOut","description":"Один записанный шаг принятия решения текущей версии отчёта."},"GlagolReportDecisionTraceTaskEventOut":{"properties":{"id":{"type":"integer","title":"Id"},"report_id":{"type":"integer","title":"Report Id"},"owner_id":{"type":"integer","title":"Owner Id"},"report_uid":{"type":"string","title":"Report Uid"},"report_segment_no":{"type":"integer","title":"Report Segment No"},"raw_event_id":{"type":"integer","title":"Raw Event Id"},"event_seq":{"type":"integer","title":"Event Seq"},"wave_no":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Wave No"},"circle_id":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Circle Id"},"step_no":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Step No"},"task_event_seq":{"type":"integer","title":"Task Event Seq"},"task_id":{"type":"string","title":"Task Id"},"task_title":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Task Title"},"event":{"type":"string","title":"Event"},"condition_kind":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Condition Kind"},"matched_group_index":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Matched Group Index"},"matched_condition":{"anyOf":[{"type":"object"},{"type":"null"}],"title":"Matched Condition"},"matched_params_snapshot":{"type":"object","title":"Matched Params Snapshot"},"before_state":{"type":"object","title":"Before State"},"after_state":{"type":"object","title":"After State"},"progress_before":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Progress Before"},"progress_after":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Progress After"},"source_rule_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Source Rule Id"},"reason":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Reason"},"has_error":{"type":"boolean","title":"Has Error"},"error":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Error"},"event_time":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Event Time"},"report_started_at":{"type":"string","format":"date-time","title":"Report Started At"},"processing_version":{"type":"integer","title":"Processing Version"},"is_current_version":{"type":"boolean","title":"Is Current Version"},"created_at":{"type":"string","format":"date-time","title":"Created At"}},"type":"object","required":["id","report_id","owner_id","report_uid","report_segment_no","raw_event_id","event_seq","task_event_seq","task_id","event","matched_params_snapshot","before_state","after_state","has_error","report_started_at","processing_version","is_current_version","created_at"],"title":"GlagolReportDecisionTraceTaskEventOut"},"GlagolDecisionTraceInterruption":{"properties":{"utterance_id":{"type":"string","maxLength":256,"minLength":1,"title":"Utterance Id"},"text":{"type":"string","title":"Text"},"reason":{"type":"string","maxLength":1024,"title":"Reason"},"mode":{"type":"string","maxLength":64,"minLength":1,"title":"Mode"},"accepted_at":{"type":"string","maxLength":64,"minLength":1,"title":"Accepted At"},"audio_state":{"type":"string","enum":["completed","interrupted","not_started","unknown"],"title":"Audio State"}},"additionalProperties":false,"type":"object","required":["utterance_id","text","reason","mode","accepted_at","audio_state"],"title":"GlagolDecisionTraceInterruption"},"GlagolReportTimelineListResponse":{"properties":{"items":{"items":{"$ref":"#/components/schemas/GlagolReportTimelineItemOut"},"type":"array","title":"Items"},"limit":{"type":"integer","title":"Limit"},"next_cursor":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Next Cursor","description":"Курсор следующей страницы; null означает конец выборки."},"next_cursor_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Next Cursor Id","description":"Совместимое имя next_cursor, содержит ту же строку."}},"type":"object","required":["items","limit"],"title":"GlagolReportTimelineListResponse"},"GlagolReportTimelineItemOut":{"properties":{"timeline_type":{"type":"string","title":"Timeline Type","description":"Тип технического события, определяющий содержимое payload."},"id":{"type":"integer","title":"Id"},"report_id":{"type":"integer","title":"Report Id"},"owner_id":{"type":"integer","title":"Owner Id"},"report_uid":{"type":"string","title":"Report Uid"},"report_segment_no":{"type":"integer","title":"Report Segment No"},"agent_id":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Agent Id"},"project_id":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Project Id"},"raw_event_id":{"type":"integer","title":"Raw Event Id"},"event_seq":{"type":"integer","title":"Event Seq"},"wave_no":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Wave No"},"circle_id":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Circle Id"},"step_no":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Step No"},"event_time":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Event Time"},"report_started_at":{"type":"string","format":"date-time","title":"Report Started At"},"processing_version":{"type":"integer","title":"Processing Version"},"is_current_version":{"type":"boolean","title":"Is Current Version"},"payload":{"type":"object","title":"Payload","description":"Данные соответствующего типа события; набор полей зависит от timeline_type."},"created_at":{"type":"string","format":"date-time","title":"Created At"}},"type":"object","required":["timeline_type","id","report_id","owner_id","report_uid","report_segment_no","raw_event_id","event_seq","report_started_at","processing_version","is_current_version","payload","created_at"],"title":"GlagolReportTimelineItemOut"},"GlagolReportMessageListResponse":{"properties":{"items":{"items":{"$ref":"#/components/schemas/GlagolReportMessageOut"},"type":"array","title":"Items"},"limit":{"type":"integer","title":"Limit","description":"Максимальное число возвращённых сообщений; не размер страницы с поддержкой продолжения."},"next_cursor_id":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Next Cursor Id","description":"В текущей реализации всегда null. Метод не принимает курсор и не гарантирует полноту при достижении limit."}},"type":"object","required":["items","limit"],"title":"GlagolReportMessageListResponse"},"GlagolReportMessageOut":{"properties":{"id":{"type":"integer","title":"Id"},"report_id":{"type":"integer","title":"Report Id"},"owner_id":{"type":"integer","title":"Owner Id"},"report_uid":{"type":"string","title":"Report Uid"},"report_segment_no":{"type":"integer","title":"Report Segment No"},"raw_event_id":{"type":"integer","title":"Raw Event Id"},"event_seq":{"type":"integer","title":"Event Seq"},"message_seq":{"type":"integer","title":"Message Seq"},"message_key":{"type":"string","title":"Message Key"},"role":{"type":"string","title":"Role"},"source":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Source"},"phid":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Phid"},"text":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Text"},"text_norm":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Text Norm"},"meta":{"type":"object","title":"Meta"},"message_time":{"type":"string","format":"date-time","title":"Message Time"},"report_started_at":{"type":"string","format":"date-time","title":"Report Started At"},"wave_no":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Wave No"},"circle_id":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Circle Id"},"step_no":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Step No"},"processing_version":{"type":"integer","title":"Processing Version"},"is_current_version":{"type":"boolean","title":"Is Current Version"},"created_at":{"type":"string","format":"date-time","title":"Created At"},"updated_at":{"type":"string","format":"date-time","title":"Updated At"}},"type":"object","required":["id","report_id","owner_id","report_uid","report_segment_no","raw_event_id","event_seq","message_seq","message_key","role","meta","message_time","report_started_at","processing_version","is_current_version","created_at","updated_at"],"title":"GlagolReportMessageOut"},"GlagolReportSegmentCardOut":{"properties":{"report_id":{"type":"integer","title":"Report Id","description":"Числовой ID этого сегмента."},"owner_id":{"type":"integer","title":"Owner Id"},"report_uid":{"type":"string","title":"Report Uid","description":"Общий идентификатор диалога."},"report_segment_no":{"type":"integer","title":"Report Segment No","description":"Порядковый номер сегмента внутри диалога."},"agent_id":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Agent Id"},"project_id":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Project Id"},"agent_alias":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Agent Alias"},"channel_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Channel Type"},"communication_channels":{"items":{"type":"string"},"type":"array","title":"Communication Channels"},"status":{"type":"string","title":"Status"},"segment_status":{"type":"string","title":"Segment Status"},"is_active_segment":{"type":"boolean","title":"Is Active Segment","description":"Сегмент помечен активным в реестре отчётов."},"started_at":{"type":"string","format":"date-time","title":"Started At"},"ended_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Ended At"},"segment_close_reason":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Segment Close Reason"},"last_event_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Last Event At"},"last_activity_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Last Activity At"},"last_event_received_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Last Event Received At"},"duration_sec":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Duration Sec"},"primary_call_uuid":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Primary Call Uuid"},"phone":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Phone"},"phone_digits":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Phone Digits"},"uri":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Uri"},"dialog_uri":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Dialog Uri"},"call_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Call Type"},"call_started_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Call Started At"},"chat_started_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Chat Started At"},"process_started_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Process Started At"},"process_ended_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Process Ended At"},"post_started_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Post Started At"},"counts":{"$ref":"#/components/schemas/GlagolReportCounts"},"flags":{"$ref":"#/components/schemas/GlagolReportFlags","description":"Диагностические признаки: учитывайте их при интерпретации полноты отчёта."},"processing_blocked_reason":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Processing Blocked Reason"},"rebuild_status":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Rebuild Status"},"raw_first_event_id":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Raw First Event Id"},"raw_last_event_id":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Raw Last Event Id"},"processed_until_event_seq":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Processed Until Event Seq","description":"Номер события, до которого обработана проекция."},"processed_until_raw_event_id":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Processed Until Raw Event Id","description":"ID сырого события, до которого обработана проекция."},"last_event_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Last Event Type"},"processing_version":{"type":"integer","title":"Processing Version","description":"Версия обработанной проекции отчёта."},"is_current_version":{"type":"boolean","title":"Is Current Version","description":"Проекция является текущей версией; это не признак завершения процесса."},"projection_exists":{"type":"boolean","title":"Projection Exists","description":"Для сегмента найдена проекция отчёта."},"created_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Created At"},"updated_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Updated At"},"studio_identity":{"anyOf":[{"$ref":"#/components/schemas/GlagolStudioTechnicalIdentityOut"},{"type":"null"}]}},"type":"object","required":["report_id","owner_id","report_uid","report_segment_no","status","segment_status","is_active_segment","started_at","counts","flags","processing_version","is_current_version","projection_exists"],"title":"GlagolReportSegmentCardOut"},"GlagolStudioTechnicalIdentityOut":{"properties":{"studio":{"type":"boolean","enum":[true],"const":true,"title":"Studio","default":true},"execution_id":{"type":"string","title":"Execution Id"},"consumer_owner_id":{"type":"integer","title":"Consumer Owner Id"},"agent_owner_id":{"type":"integer","title":"Agent Owner Id"},"agent_id":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Agent Id"},"agent_alias":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Agent Alias"},"connection_id":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Connection Id"}},"type":"object","required":["execution_id","consumer_owner_id","agent_owner_id"],"title":"GlagolStudioTechnicalIdentityOut"},"GlagolReportFlags":{"properties":{"has_conflicts":{"type":"boolean","title":"Has Conflicts","default":false},"has_raw_conflicts":{"type":"boolean","title":"Has Raw Conflicts","default":false},"has_rule_conflicts":{"type":"boolean","title":"Has Rule Conflicts","default":false},"needs_rebuild":{"type":"boolean","title":"Needs Rebuild","default":false},"has_late_event":{"type":"boolean","title":"Has Late Event","default":false},"has_sequence_gap":{"type":"boolean","title":"Has Sequence Gap","default":false},"has_skipped_events":{"type":"boolean","title":"Has Skipped Events","default":false},"needs_review":{"type":"boolean","title":"Needs Review","default":false},"has_seq_collision":{"type":"boolean","title":"Has Seq Collision","default":false},"processing_blocked":{"type":"boolean","title":"Processing Blocked","default":false},"processing_blocked_reason":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Processing Blocked Reason"}},"type":"object","title":"GlagolReportFlags"},"GlagolReportCounts":{"properties":{"wave_count":{"type":"integer","title":"Wave Count","default":0},"human_turns_count":{"type":"integer","title":"Human Turns Count","default":0},"agent_turns_count":{"type":"integer","title":"Agent Turns Count","default":0},"llm_count":{"type":"integer","title":"Llm Count","default":0},"code_count":{"type":"integer","title":"Code Count","default":0},"rag_count":{"type":"integer","title":"Rag Count","default":0},"api_count":{"type":"integer","title":"Api Count","default":0},"redirect_attempts_count":{"type":"integer","title":"Redirect Attempts Count","default":0},"error_count":{"type":"integer","title":"Error Count","default":0},"conflict_count":{"type":"integer","title":"Conflict Count","default":0},"raw_conflict_count":{"type":"integer","title":"Raw Conflict Count","default":0},"rule_conflict_count":{"type":"integer","title":"Rule Conflict Count","default":0},"skipped_events_count":{"type":"integer","title":"Skipped Events Count","default":0},"seq_collision_count":{"type":"integer","title":"Seq Collision Count","default":0}},"type":"object","title":"GlagolReportCounts"},"GlagolReportThreadCardOut":{"properties":{"owner_id":{"type":"integer","title":"Owner Id"},"report_uid":{"type":"string","title":"Report Uid"},"status":{"type":"string","title":"Status"},"channel_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Channel Type"},"communication_channels":{"items":{"type":"string"},"type":"array","title":"Communication Channels"},"agent_id":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Agent Id"},"project_id":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Project Id"},"dialog_uri":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Dialog Uri"},"active_report_id":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Active Report Id"},"active_report_segment_no":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Active Report Segment No"},"segment_count":{"type":"integer","title":"Segment Count"},"first_segment_started_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"First Segment Started At"},"last_segment_started_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Last Segment Started At"},"last_message_time":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Last Message Time"},"started_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Started At"},"ended_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Ended At"},"process_started_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Process Started At"},"process_ended_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Process Ended At","description":"Зафиксированное время завершения процесса; может отсутствовать."},"process_duration_sec":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Process Duration Sec"},"calls_count":{"type":"integer","title":"Calls Count","default":0},"calls_duration_sec":{"type":"number","title":"Calls Duration Sec","default":0.0},"calls":{"items":{"$ref":"#/components/schemas/GlagolReportCallOut"},"type":"array","title":"Calls","description":"Сведения о звонках диалога; это не содержимое аудиозаписей."},"counts":{"$ref":"#/components/schemas/GlagolReportCounts"},"flags":{"$ref":"#/components/schemas/GlagolReportFlags","description":"Объединённые диагностические признаки отчёта."},"processing_blocked_reason":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Processing Blocked Reason"},"rebuild_status":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Rebuild Status"},"studio_identity":{"anyOf":[{"$ref":"#/components/schemas/GlagolStudioTechnicalIdentityOut"},{"type":"null"}]},"segments":{"items":{"$ref":"#/components/schemas/GlagolReportSegmentCardOut"},"type":"array","title":"Segments","description":"Карточки сегментов диалога. Используйте report_id нужного сегмента для запросов его трассировки."}},"type":"object","required":["owner_id","report_uid","status","segment_count","calls","counts","flags","segments"],"title":"GlagolReportThreadCardOut"},"GlagolReportCallOut":{"properties":{"call_uuid":{"type":"string","title":"Call Uuid"},"uri":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Uri"},"call_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Call Type"},"started_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Started At"},"ended_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Ended At"},"duration_sec":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Duration Sec"},"recording":{"anyOf":[{"$ref":"#/components/schemas/GlagolReportCallRecordingOut"},{"type":"null"}]}},"type":"object","required":["call_uuid"],"title":"GlagolReportCallOut"},"GlagolReportCallRecordingOut":{"properties":{"recording_id":{"type":"string","title":"Recording Id"},"size_bytes":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Size Bytes"},"duration_ms":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Duration Ms"},"format":{"type":"string","title":"Format","default":"ogg"},"mime_type":{"type":"string","title":"Mime Type","default":"audio/ogg"},"attached_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Attached At"}},"type":"object","required":["recording_id"],"title":"GlagolReportCallRecordingOut"},"GlagolReportListResponse":{"properties":{"items":{"items":{"$ref":"#/components/schemas/GlagolReportSegmentCardOut"},"type":"array","title":"Items"},"limit":{"type":"integer","title":"Limit"},"next_cursor_id":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Next Cursor Id"}},"type":"object","required":["items","limit"],"title":"GlagolReportListResponse"},"GlagolReportThreadChangesCheckV2Response":{"properties":{"schema_version":{"type":"integer","title":"Schema Version"},"has_changes":{"type":"boolean","title":"Has Changes","description":"Найдены изменившиеся строки, которые по-прежнему соответствуют фильтрам. Не гарантирует обнаружение удалений и выхода из фильтра."},"changed_count":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Changed Count"},"changed_count_relation":{"type":"string","enum":["exact","lower_bound","unknown"],"title":"Changed Count Relation","description":"Точность changed_count: exact, lower_bound или unknown."},"rebased":{"type":"boolean","title":"Rebased","default":false,"description":"Сервер создал новую точку отсчёта: сравнение с прежним курсором не выполнено."},"change_cursor":{"type":"string","title":"Change Cursor"},"generated_at":{"type":"string","format":"date-time","title":"Generated At"}},"type":"object","required":["schema_version","has_changes","changed_count_relation","change_cursor","generated_at"],"title":"GlagolReportThreadChangesCheckV2Response"},"GlagolReportThreadCapabilitiesResponse":{"properties":{"schema_version":{"type":"integer","title":"Schema Version"},"revision":{"type":"string","title":"Revision"},"backfill_state":{"type":"string","enum":["not_started","running","ready","failed"],"title":"Backfill State"},"supported_sort_fields":{"items":{"$ref":"#/components/schemas/GlagolReportThreadSortFieldCapability"},"type":"array","title":"Supported Sort Fields"},"dynamic_sort":{"$ref":"#/components/schemas/GlagolReportThreadDynamicSortCapability"},"pagination":{"$ref":"#/components/schemas/GlagolReportThreadPaginationCapability"}},"type":"object","required":["schema_version","revision","backfill_state","supported_sort_fields","dynamic_sort","pagination"],"title":"GlagolReportThreadCapabilitiesResponse"},"GlagolReportThreadPaginationCapability":{"properties":{"max_page_size":{"type":"integer","title":"Max Page Size"},"max_user_sort_fields":{"type":"integer","title":"Max User Sort Fields"}},"type":"object","required":["max_page_size","max_user_sort_fields"],"title":"GlagolReportThreadPaginationCapability"},"GlagolReportThreadDynamicSortCapability":{"properties":{"enabled":{"type":"boolean","title":"Enabled"},"supported_value_types":{"items":{"type":"string","enum":["text","number","boolean","timestamp"]},"type":"array","title":"Supported Value Types"},"max_dynamic_sort_fields":{"type":"integer","title":"Max Dynamic Sort Fields"}},"type":"object","required":["enabled","supported_value_types","max_dynamic_sort_fields"],"title":"GlagolReportThreadDynamicSortCapability"},"GlagolReportThreadSortFieldCapability":{"properties":{"field":{"type":"string","title":"Field"},"directions":{"items":{"type":"string","enum":["asc","desc"]},"type":"array","title":"Directions"},"performance_class":{"type":"string","enum":["A","B"],"title":"Performance Class"},"enabled":{"type":"boolean","title":"Enabled"},"visibility":{"type":"string","enum":["public","internal"],"title":"Visibility"}},"type":"object","required":["field","directions","performance_class","enabled","visibility"],"title":"GlagolReportThreadSortFieldCapability"},"GlagolReportThreadCountV2Response":{"properties":{"schema_version":{"type":"integer","title":"Schema Version"},"total":{"$ref":"#/components/schemas/GlagolReportThreadTotalOut"},"query_fingerprint":{"type":"string","title":"Query Fingerprint"},"generated_at":{"type":"string","format":"date-time","title":"Generated At"}},"type":"object","required":["schema_version","total","query_fingerprint","generated_at"],"title":"GlagolReportThreadCountV2Response"},"GlagolReportThreadTotalOut":{"properties":{"value":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Value","description":"Число результатов или null, если подсчёт недоступен."},"relation":{"type":"string","enum":["exact","lower_bound","unknown"],"title":"Relation","description":"exact — точное число; lower_bound — результатов как минимум value; unknown — число неизвестно."},"cap":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Cap","description":"Порог ограниченного подсчёта, если он применялся."}},"type":"object","required":["relation"],"title":"GlagolReportThreadTotalOut"},"GlagolReportThreadListV2Response":{"properties":{"schema_version":{"type":"integer","title":"Schema Version"},"items":{"items":{"$ref":"#/components/schemas/GlagolReportThreadListItemV2"},"type":"array","title":"Items"},"pagination":{"$ref":"#/components/schemas/GlagolReportThreadPaginationV2Out","description":"Курсоры и признаки наличия следующей/предыдущей страницы."},"total":{"$ref":"#/components/schemas/GlagolReportThreadTotalOut","description":"Размер выборки с указанием точности результата."},"dataset":{"$ref":"#/components/schemas/GlagolReportThreadDatasetOut","description":"Отличает отсутствие отчётов в аккаунте от отсутствия результатов по фильтрам."},"sort":{"items":{"type":"object"},"type":"array","title":"Sort"},"query_fingerprint":{"type":"string","title":"Query Fingerprint","description":"Отпечаток условий выборки, формируемый сервером."},"change_cursor":{"type":"string","title":"Change Cursor","description":"Точка отсчёта для /v2/threads/changes/check; не курсор страниц."},"capabilities_revision":{"type":"string","title":"Capabilities Revision","description":"Ревизия доступных возможностей списка."},"generated_at":{"type":"string","format":"date-time","title":"Generated At","description":"Время формирования ответа, не время последнего события диалога."}},"type":"object","required":["schema_version","items","pagination","total","dataset","sort","query_fingerprint","change_cursor","capabilities_revision","generated_at"],"title":"GlagolReportThreadListV2Response","description":"Страница диалогов. Один элемент items соответствует одному report_uid."},"GlagolReportThreadDatasetOut":{"properties":{"owner_has_any_rollup":{"type":"boolean","title":"Owner Has Any Rollup"},"current_query_has_rows":{"type":"boolean","title":"Current Query Has Rows"}},"type":"object","required":["owner_has_any_rollup","current_query_has_rows"],"title":"GlagolReportThreadDatasetOut"},"GlagolReportThreadPaginationV2Out":{"properties":{"limit":{"type":"integer","title":"Limit"},"next_cursor":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Next Cursor","description":"Курсор следующей страницы; передайте как cursor с page_direction=next."},"prev_cursor":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Prev Cursor","description":"Курсор предыдущей страницы; передайте как cursor с page_direction=prev."},"has_next":{"type":"boolean","title":"Has Next","description":"Есть следующая страница в текущей выборке."},"has_previous":{"type":"boolean","title":"Has Previous","description":"Есть предыдущая страница в текущей выборке."}},"type":"object","required":["limit","has_next","has_previous"],"title":"GlagolReportThreadPaginationV2Out"},"GlagolReportThreadListItemV2":{"properties":{"report_uid":{"type":"string","title":"Report Uid","description":"Идентификатор всего диалога; используется в маршрутах /by-uid/{report_uid}."},"agent_id":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Agent Id"},"project_id":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Project Id"},"agent_alias":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Agent Alias"},"channel_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Channel Type"},"communication_channels":{"items":{"type":"string"},"type":"array","title":"Communication Channels"},"primary_call_uuid":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Primary Call Uuid"},"phone":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Phone"},"phone_digits":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Phone Digits"},"uri":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Uri"},"dialog_uri":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Dialog Uri"},"call_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Call Type"},"duration_sec":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Duration Sec"},"process_started_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Process Started At"},"process_ended_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Process Ended At"},"process_duration_sec":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Process Duration Sec"},"calls_count":{"type":"integer","title":"Calls Count","default":0},"calls_duration_sec":{"type":"number","title":"Calls Duration Sec","default":0.0},"thread_status":{"type":"string","title":"Thread Status"},"primary_status":{"type":"string","title":"Primary Status"},"primary_status_rank":{"type":"integer","title":"Primary Status Rank","default":7},"problem_severity":{"type":"string","title":"Problem Severity","default":"none"},"problem_severity_rank":{"type":"integer","title":"Problem Severity Rank","default":0},"problem_flags_count":{"type":"integer","title":"Problem Flags Count","default":0},"flags":{"$ref":"#/components/schemas/GlagolReportThreadProblemFlags"},"active_report_id":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Active Report Id"},"active_report_segment_no":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Active Report Segment No"},"segment_count":{"type":"integer","title":"Segment Count","description":"Количество сегментов диалога."},"first_segment_started_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"First Segment Started At"},"last_segment_started_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Last Segment Started At"},"last_activity_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Last Activity At"},"last_event_received_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Last Event Received At"},"counts":{"$ref":"#/components/schemas/GlagolReportThreadCounts"},"preview":{"anyOf":[{"$ref":"#/components/schemas/GlagolReportListPreview"},{"type":"null"}]},"index_values":{"items":{"$ref":"#/components/schemas/GlagolReportThreadIndexValueOut"},"type":"array","title":"Index Values","description":"Значения настроенных индексируемых параметров, выбранных через index_columns/index_scopes."},"business_fields":{"type":"object","title":"Business Fields","description":"Бизнес-поля, зависящие от конфигурации агента; запрашиваются через include_business_fields или index_scopes."},"message_search_matches":{"items":{"$ref":"#/components/schemas/GlagolReportSearchItemOut"},"type":"array","title":"Message Search Matches","description":"Совпадения по message_search; это не полная переписка."}},"type":"object","required":["report_uid","thread_status","primary_status","flags","segment_count","counts"],"title":"GlagolReportThreadListItemV2"},"GlagolReportSearchItemOut":{"properties":{"match_type":{"type":"string","title":"Match Type"},"score":{"type":"number","title":"Score"},"message":{"$ref":"#/components/schemas/GlagolReportSearchMessageOut"}},"type":"object","required":["match_type","score","message"],"title":"GlagolReportSearchItemOut"},"GlagolReportSearchMessageOut":{"properties":{"id":{"type":"integer","title":"Id"},"report_id":{"type":"integer","title":"Report Id"},"owner_id":{"type":"integer","title":"Owner Id"},"report_uid":{"type":"string","title":"Report Uid"},"report_segment_no":{"type":"integer","title":"Report Segment No"},"raw_event_id":{"type":"integer","title":"Raw Event Id"},"event_seq":{"type":"integer","title":"Event Seq"},"message_seq":{"type":"integer","title":"Message Seq"},"message_key":{"type":"string","title":"Message Key"},"role":{"type":"string","title":"Role"},"source":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Source"},"phid":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Phid"},"text":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Text"},"text_norm":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Text Norm"},"meta":{"type":"object","title":"Meta"},"message_time":{"type":"string","format":"date-time","title":"Message Time"},"report_started_at":{"type":"string","format":"date-time","title":"Report Started At"},"wave_no":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Wave No"},"circle_id":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Circle Id"},"step_no":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Step No"},"processing_version":{"type":"integer","title":"Processing Version"},"is_current_version":{"type":"boolean","title":"Is Current Version"},"created_at":{"type":"string","format":"date-time","title":"Created At"},"updated_at":{"type":"string","format":"date-time","title":"Updated At"}},"type":"object","required":["id","report_id","owner_id","report_uid","report_segment_no","raw_event_id","event_seq","message_seq","message_key","role","meta","message_time","report_started_at","processing_version","is_current_version","created_at","updated_at"],"title":"GlagolReportSearchMessageOut"},"GlagolReportThreadIndexValueOut":{"properties":{"param_key":{"type":"string","title":"Param Key"},"param_source":{"type":"string","title":"Param Source"},"value_type":{"type":"string","title":"Value Type"},"value":{"title":"Value"}},"type":"object","required":["param_key","param_source","value_type"],"title":"GlagolReportThreadIndexValueOut"},"GlagolReportListPreview":{"properties":{"primary_status":{"type":"string","title":"Primary Status"},"flags":{"$ref":"#/components/schemas/GlagolReportThreadProblemFlags"},"headline":{"type":"string","title":"Headline"},"last_message_text":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Last Message Text"},"last_message_role":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Last Message Role"},"last_message_time":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Last Message Time"},"last_message_text_format":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Last Message Text Format"},"last_message_media":{"items":{"type":"object"},"type":"array","title":"Last Message Media"},"last_message_reply_to":{"anyOf":[{"type":"object"},{"type":"null"}],"title":"Last Message Reply To"},"last_event_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Last Event Type"},"process_termination":{"anyOf":[{"type":"object"},{"type":"null"}],"title":"Process Termination"},"process_end_reason":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Process End Reason"},"process_finished_manually":{"type":"boolean","title":"Process Finished Manually","default":false},"process_finished_by_autotest":{"type":"boolean","title":"Process Finished By Autotest","default":false},"process_terminal_reached":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Process Terminal Reached"},"autotest_scenario_exhausted":{"type":"boolean","title":"Autotest Scenario Exhausted","default":false},"record_item_ids":{"items":{"type":"string"},"type":"array","title":"Record Item Ids"},"last_report_id":{"type":"integer","title":"Last Report Id"},"last_report_segment_no":{"type":"integer","title":"Last Report Segment No"}},"type":"object","required":["primary_status","flags","headline","last_report_id","last_report_segment_no"],"title":"GlagolReportListPreview"},"GlagolReportThreadProblemFlags":{"properties":{"needs_review":{"type":"boolean","title":"Needs Review"},"processing_blocked":{"type":"boolean","title":"Processing Blocked"},"needs_rebuild":{"type":"boolean","title":"Needs Rebuild"},"has_seq_collision":{"type":"boolean","title":"Has Seq Collision"},"has_late_event":{"type":"boolean","title":"Has Late Event"},"has_sequence_gap":{"type":"boolean","title":"Has Sequence Gap"},"has_conflicts":{"type":"boolean","title":"Has Conflicts"},"has_raw_conflicts":{"type":"boolean","title":"Has Raw Conflicts","default":false},"has_rule_conflicts":{"type":"boolean","title":"Has Rule Conflicts","default":false},"has_skipped_events":{"type":"boolean","title":"Has Skipped Events"}},"type":"object","required":["needs_review","processing_blocked","needs_rebuild","has_seq_collision","has_late_event","has_sequence_gap","has_conflicts","has_skipped_events"],"title":"GlagolReportThreadProblemFlags"},"GlagolReportThreadCounts":{"properties":{"human_turns_count":{"type":"integer","title":"Human Turns Count"},"agent_turns_count":{"type":"integer","title":"Agent Turns Count"},"wave_count":{"type":"integer","title":"Wave Count"},"llm_count":{"type":"integer","title":"Llm Count"},"code_count":{"type":"integer","title":"Code Count"},"rag_count":{"type":"integer","title":"Rag Count"},"api_count":{"type":"integer","title":"Api Count"},"redirect_attempts_count":{"type":"integer","title":"Redirect Attempts Count"},"conflict_count":{"type":"integer","title":"Conflict Count"},"raw_conflict_count":{"type":"integer","title":"Raw Conflict Count","default":0},"rule_conflict_count":{"type":"integer","title":"Rule Conflict Count","default":0}},"type":"object","required":["human_turns_count","agent_turns_count","wave_count","llm_count","code_count","rag_count","api_count","redirect_attempts_count","conflict_count"],"title":"GlagolReportThreadCounts"},"GlagolEntityItemBulkUpdateOut":{"properties":{"matched":{"type":"integer","title":"Matched","default":0,"description":"Количество записей, найденных по selection."},"updated":{"type":"integer","title":"Updated","default":0,"description":"Количество записей с фактически изменёнными значениями."},"unchanged":{"type":"integer","title":"Unchanged","default":0,"description":"Количество записей, уже содержавших заданные значения."},"archived":{"type":"integer","title":"Archived","default":0,"description":"Количество записей, перенесённых в архив при установке архивного статуса."},"skipped_merged":{"type":"integer","title":"Skipped Merged","default":0,"description":"Количество пропущенных записей, ранее объединённых с другими."}},"additionalProperties":false,"type":"object","title":"GlagolEntityItemBulkUpdateOut"},"GlagolEntityItemBulkUpdateRequest":{"properties":{"selection":{"$ref":"#/components/schemas/GlagolEntityItemBulkSelection","description":"Для одной записи: mode=ids и массив item_ids с одним UUID."},"changes":{"items":{"$ref":"#/components/schemas/GlagolEntityItemBulkChange"},"type":"array","maxItems":20,"minItems":1,"title":"Changes","description":"От 1 до 20 изменений. Одна и та же цель не должна повторяться."}},"additionalProperties":false,"type":"object","required":["selection","changes"],"title":"GlagolEntityItemBulkUpdateRequest","description":"Выбор записей и перечень отдельных изменений с сохранением остальных полей."},"GlagolEntityItemBulkChange":{"properties":{"target":{"type":"string","enum":["title","status","field"],"title":"Target","description":"field — пользовательское поле; title — название записи; status — статус записи."},"field_id":{"anyOf":[{"type":"integer","minimum":1.0},{"type":"null"}],"title":"Field Id","description":"Обязателен только для target=field. Числовой id активного поля того же списка."},"value":{"title":"Value","description":"Новое полное значение выбранного поля. Для target=field null удаляет свойство из custom, не затрагивая другие поля. Массивы автоматически не дополняются."}},"additionalProperties":false,"type":"object","required":["target"],"title":"GlagolEntityItemBulkChange"},"GlagolEntityItemBulkSelection":{"properties":{"mode":{"type":"string","enum":["ids","filter","kanban_column"],"title":"Mode","description":"ids — перечисленные UUID; filter — записи по фильтрам; kanban_column — колонка канбан."},"item_ids":{"items":{"type":"string","format":"uuid"},"type":"array","maxItems":5000,"title":"Item Ids","description":"При mode=ids обязателен непустой массив UUID, максимум 5000. Дубликаты удаляются."},"excluded_item_ids":{"items":{"type":"string","format":"uuid"},"type":"array","maxItems":5000,"title":"Excluded Item Ids","description":"Исключения для выбора по фильтру или колонке; запрещены при mode=ids."},"search":{"anyOf":[{"type":"string","maxLength":256},{"type":"null"}],"title":"Search"},"statuses":{"items":{"type":"string"},"type":"array","maxItems":50,"title":"Statuses"},"include_deleted":{"type":"boolean","title":"Include Deleted","default":false},"index_filters":{"items":{"$ref":"#/components/schemas/GlagolEntityItemTableIndexFilter"},"type":"array","maxItems":12,"title":"Index Filters"},"group_token":{"anyOf":[{"type":"string","maxLength":4096},{"type":"null"}],"title":"Group Token","description":"Токен колонки: обязателен только при mode=kanban_column, запрещён в остальных режимах."}},"additionalProperties":false,"type":"object","required":["mode"],"title":"GlagolEntityItemBulkSelection","description":"Область изменения. Для явного и предсказуемого выбора используйте mode=ids."},"GlagolEntityItemTableIndexFilter":{"properties":{"field_id":{"type":"integer","minimum":1.0,"title":"Field Id"},"operation":{"type":"string","enum":["eq","contains","gt","gte","lt","lte","exists"],"title":"Operation"},"value":{"anyOf":[{},{"type":"null"}],"title":"Value"}},"additionalProperties":false,"type":"object","required":["field_id","operation"],"title":"GlagolEntityItemTableIndexFilter"},"GlagolEntityArchiveOut":{"properties":{"archive_id":{"type":"string","format":"uuid","title":"Archive Id","description":"UUID архивной карточки; отличается от UUID исходной записи."},"owner_id":{"type":"integer","title":"Owner Id"},"list_id":{"type":"integer","title":"List Id"},"source_item_id":{"type":"string","format":"uuid","title":"Source Item Id","description":"UUID исходной записи, перенесённой в архив."},"title":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Title"},"custom":{"type":"object","title":"Custom"},"status":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Status"},"responsible_user":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Responsible User"},"responsible_manager":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Responsible Manager"},"responsible_agent":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Responsible Agent"},"locked":{"type":"boolean","title":"Locked","default":false},"locked_by":{"anyOf":[{"type":"object"},{"type":"null"}],"title":"Locked By"},"used":{"type":"boolean","title":"Used","default":false},"used_by":{"anyOf":[{"type":"object"},{"type":"null"}],"title":"Used By"},"idx_text_1":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Idx Text 1"},"idx_text_2":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Idx Text 2"},"idx_text_3":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Idx Text 3"},"idx_text_4":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Idx Text 4"},"idx_text_5":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Idx Text 5"},"idx_text_6":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Idx Text 6"},"idx_num_1":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Idx Num 1"},"idx_num_2":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Idx Num 2"},"idx_num_3":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Idx Num 3"},"idx_num_4":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Idx Num 4"},"idx_ts_1":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Idx Ts 1"},"idx_bool_1":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Idx Bool 1"},"original_created_at":{"type":"string","format":"date-time","title":"Original Created At"},"original_updated_at":{"type":"string","format":"date-time","title":"Original Updated At"},"original_deleted_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Original Deleted At"},"archived_at":{"type":"string","format":"date-time","title":"Archived At"},"archive_reason":{"type":"string","enum":["manual","archive_status","legacy_soft_delete"],"title":"Archive Reason","description":"Причина архивирования."},"archive_status":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Archive Status"},"schema_snapshot":{"type":"object","title":"Schema Snapshot","description":"Сохранённое описание структуры на момент архивирования."},"record_snapshot":{"type":"object","title":"Record Snapshot","description":"Сохранённые данные записи на момент архивирования."},"previous_restored_from_archive_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Previous Restored From Archive Id"},"previous_restored_from_item_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Previous Restored From Item Id"},"previous_restored_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Previous Restored At"}},"additionalProperties":false,"type":"object","required":["archive_id","owner_id","list_id","source_item_id","original_created_at","original_updated_at","archived_at","archive_reason"],"title":"GlagolEntityArchiveOut","description":"Архивная карточка; может возвращаться при PATCH с архивным статусом."},"GlagolEntityItemOut":{"properties":{"id":{"type":"string","format":"uuid","title":"Id","description":"UUID записи; используйте как item_id."},"owner_id":{"type":"integer","title":"Owner Id"},"list_id":{"type":"integer","title":"List Id","description":"Числовой идентификатор списка, которому принадлежит запись."},"title":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Title"},"custom":{"type":"object","title":"Custom","description":"Текущие значения пользовательских полей по их key."},"status":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Status"},"responsible_user":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Responsible User"},"responsible_manager":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Responsible Manager"},"responsible_agent":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Responsible Agent"},"locked":{"type":"boolean","title":"Locked"},"locked_by":{"anyOf":[{"type":"object"},{"type":"null"}],"title":"Locked By"},"used":{"type":"boolean","title":"Used"},"used_by":{"anyOf":[{"type":"object"},{"type":"null"}],"title":"Used By"},"idx_text_1":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Idx Text 1"},"idx_text_2":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Idx Text 2"},"idx_text_3":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Idx Text 3"},"idx_text_4":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Idx Text 4"},"idx_text_5":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Idx Text 5"},"idx_text_6":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Idx Text 6"},"idx_num_1":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Idx Num 1"},"idx_num_2":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Idx Num 2"},"idx_num_3":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Idx Num 3"},"idx_num_4":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Idx Num 4"},"idx_ts_1":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Idx Ts 1"},"idx_bool_1":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Idx Bool 1"},"created_at":{"type":"string","format":"date-time","title":"Created At"},"updated_at":{"type":"string","format":"date-time","title":"Updated At"},"deleted_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Deleted At"},"restored_from_archive_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Restored From Archive Id","description":"UUID архива, из которого ранее восстановили эту запись, если применимо."},"restored_from_item_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Restored From Item Id"},"restored_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Restored At"},"merged_into_item_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Merged Into Item Id","description":"UUID записи, в которую объединена эта запись; объединённая запись недоступна для редактирования."},"merged_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Merged At"},"merge_operation_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Merge Operation Id"},"merged_sources_count":{"type":"integer","title":"Merged Sources Count","default":0},"last_merged_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Last Merged At"}},"additionalProperties":false,"type":"object","required":["id","owner_id","list_id","custom","locked","used","created_at","updated_at"],"title":"GlagolEntityItemOut","description":"Карточка записи списка с системными и пользовательскими полями."},"GlagolEntityItemUpdate":{"properties":{"title":{"anyOf":[{"type":"string","maxLength":256},{"type":"null"}],"title":"Title","description":"Новое название; null очищает название. Если ключ пропущен, название сохраняется."},"custom":{"anyOf":[{"type":"object"},{"type":"null"}],"title":"Custom","description":"Полная замена custom, без слияния. Пустой объект или null очищает все значения. Для изменения отдельного поля используйте bulk-update."},"status":{"anyOf":[{"type":"string","maxLength":256},{"type":"null"}],"title":"Status","description":"Допустимый статус списка; null очищает. Архивный статус разрешён только без других полей и меняет тип ответа на архивную карточку."},"responsible_user":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Responsible User"},"responsible_manager":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Responsible Manager"},"responsible_agent":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Responsible Agent"},"locked":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Locked"},"locked_by":{"anyOf":[{"type":"object"},{"type":"null"}],"title":"Locked By"},"used":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Used"},"used_by":{"anyOf":[{"type":"object"},{"type":"null"}],"title":"Used By"},"idx_text_1":{"anyOf":[{"type":"string","maxLength":256},{"type":"null"}],"title":"Idx Text 1"},"idx_text_2":{"anyOf":[{"type":"string","maxLength":256},{"type":"null"}],"title":"Idx Text 2"},"idx_text_3":{"anyOf":[{"type":"string","maxLength":256},{"type":"null"}],"title":"Idx Text 3"},"idx_text_4":{"anyOf":[{"type":"string","maxLength":256},{"type":"null"}],"title":"Idx Text 4"},"idx_text_5":{"anyOf":[{"type":"string","maxLength":256},{"type":"null"}],"title":"Idx Text 5"},"idx_text_6":{"anyOf":[{"type":"string","maxLength":256},{"type":"null"}],"title":"Idx Text 6"},"idx_num_1":{"anyOf":[{"type":"number"},{"type":"string"},{"type":"null"}],"title":"Idx Num 1"},"idx_num_2":{"anyOf":[{"type":"number"},{"type":"string"},{"type":"null"}],"title":"Idx Num 2"},"idx_num_3":{"anyOf":[{"type":"number"},{"type":"string"},{"type":"null"}],"title":"Idx Num 3"},"idx_num_4":{"anyOf":[{"type":"number"},{"type":"string"},{"type":"null"}],"title":"Idx Num 4"},"idx_ts_1":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Idx Ts 1"},"idx_bool_1":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Idx Bool 1"}},"additionalProperties":false,"type":"object","title":"GlagolEntityItemUpdate","description":"Частичное изменение полей верхнего уровня. Переданный custom заменяет весь объект пользовательских значений. Неизвестные ключи запрещены."},"GlagolEntityItemCreate":{"properties":{"owner_id":{"type":"integer","minimum":1.0,"title":"Owner Id","description":"Обязательное положительное число в текущей схеме. Возьмите из GET списка. На сервере заменяется владельцем, определённым авторизацией."},"list_id":{"type":"integer","minimum":1.0,"title":"List Id","description":"Обязательное положительное число в текущей схеме. Передайте id выбранного списка; сервер использует list_id из URL."},"title":{"anyOf":[{"type":"string","maxLength":256},{"type":"null"}],"title":"Title","description":"Название записи; до 256 символов, может отсутствовать или быть null."},"custom":{"type":"object","title":"Custom","description":"Значения пользовательских полей по key из GET fields. По умолчанию пустой объект."},"status":{"anyOf":[{"type":"string","maxLength":256},{"type":"null"}],"title":"Status","description":"Допустимое неархивное status_options[].value выбранного списка; null — без статуса."},"kanban_group_token":{"anyOf":[{"type":"string","maxLength":4096},{"type":"null"}],"title":"Kanban Group Token","description":"Необязательный токен группы канбан; для обычного создания не передавайте."},"responsible_user":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Responsible User"},"responsible_manager":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Responsible Manager"},"responsible_agent":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Responsible Agent"},"locked":{"type":"boolean","title":"Locked","default":false},"locked_by":{"anyOf":[{"type":"object"},{"type":"null"}],"title":"Locked By"},"used":{"type":"boolean","title":"Used","default":false},"used_by":{"anyOf":[{"type":"object"},{"type":"null"}],"title":"Used By"},"idx_text_1":{"anyOf":[{"type":"string","maxLength":256},{"type":"null"}],"title":"Idx Text 1"},"idx_text_2":{"anyOf":[{"type":"string","maxLength":256},{"type":"null"}],"title":"Idx Text 2"},"idx_text_3":{"anyOf":[{"type":"string","maxLength":256},{"type":"null"}],"title":"Idx Text 3"},"idx_text_4":{"anyOf":[{"type":"string","maxLength":256},{"type":"null"}],"title":"Idx Text 4"},"idx_text_5":{"anyOf":[{"type":"string","maxLength":256},{"type":"null"}],"title":"Idx Text 5"},"idx_text_6":{"anyOf":[{"type":"string","maxLength":256},{"type":"null"}],"title":"Idx Text 6"},"idx_num_1":{"anyOf":[{"type":"number"},{"type":"string"},{"type":"null"}],"title":"Idx Num 1"},"idx_num_2":{"anyOf":[{"type":"number"},{"type":"string"},{"type":"null"}],"title":"Idx Num 2"},"idx_num_3":{"anyOf":[{"type":"number"},{"type":"string"},{"type":"null"}],"title":"Idx Num 3"},"idx_num_4":{"anyOf":[{"type":"number"},{"type":"string"},{"type":"null"}],"title":"Idx Num 4"},"idx_ts_1":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Idx Ts 1"},"idx_bool_1":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Idx Bool 1"}},"additionalProperties":false,"type":"object","required":["owner_id","list_id"],"title":"GlagolEntityItemCreate","description":"Тело создания записи. Неизвестные поля верхнего уровня запрещены."},"GlagolEntityFieldOut":{"properties":{"id":{"type":"integer","title":"Id","description":"Числовой field_id для changes[].field_id в bulk-update."},"owner_id":{"type":"integer","title":"Owner Id"},"list_id":{"type":"integer","title":"List Id"},"efid":{"type":"string","title":"Efid"},"key":{"type":"string","title":"Key","description":"Имя свойства в объекте custom записи."},"label":{"type":"string","title":"Label","description":"Подпись поля для отображения человеку."},"data_type":{"type":"string","title":"Data Type","description":"Тип хранимого значения, настроенный для этого поля."},"field_type":{"type":"string","title":"Field Type","description":"Тип представления поля в интерфейсе."},"data_values":{"anyOf":[{"type":"object"},{"type":"null"}],"title":"Data Values","description":"Настройки допустимых значений и источников конкретного поля."},"required":{"type":"boolean","title":"Required"},"default_value":{"anyOf":[{},{"type":"null"}],"title":"Default Value"},"validation":{"anyOf":[{"type":"object"},{"type":"null"}],"title":"Validation"},"ui":{"anyOf":[{"type":"object"},{"type":"null"}],"title":"Ui"},"is_active":{"type":"boolean","title":"Is Active","description":"Для изменения через bulk-update поле должно быть активным."},"tab":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Tab"},"group":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Group"},"group_position":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Group Position"},"width":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Width"},"index_slot_kind":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Index Slot Kind"},"index_slot_no":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Index Slot No"},"created_at":{"type":"string","format":"date-time","title":"Created At"},"updated_at":{"type":"string","format":"date-time","title":"Updated At"}},"additionalProperties":false,"type":"object","required":["id","owner_id","list_id","efid","key","label","data_type","field_type","required","is_active","created_at","updated_at"],"title":"GlagolEntityFieldOut","description":"Описание существующего поля списка; используйте реальные id и key из этого ответа."},"GlagolListOut":{"properties":{"id":{"type":"integer","title":"Id","description":"Числовой list_id для URL методов работы со списком."},"owner_id":{"type":"integer","title":"Owner Id","description":"Владелец списка. Нужен также в теле создания записи текущего API."},"eid":{"type":"string","title":"Eid","description":"Строковый идентификатор списка; не заменяет числовой list_id в опубликованных URL."},"name":{"type":"string","title":"Name"},"title_field_label":{"type":"string","title":"Title Field Label","default":"Название записи"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"folder":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Folder"},"tags":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Tags"},"icon":{"type":"string","title":"Icon","default":"ListTree"},"is_active":{"type":"boolean","title":"Is Active"},"tabs":{"anyOf":[{"type":"object"},{"type":"null"}],"title":"Tabs"},"groups":{"anyOf":[{"type":"object"},{"type":"null"}],"title":"Groups"},"status_options":{"items":{"$ref":"#/components/schemas/GlagolStatusOption"},"type":"array","title":"Status Options","description":"Допустимые статусы. Передавайте value; is_archive означает архивный статус."},"view_mode":{"type":"string","enum":["table","kanban"],"title":"View Mode","default":"table"},"kanban_enabled":{"type":"boolean","title":"Kanban Enabled","default":false},"kanban_group_kind":{"anyOf":[{"type":"string","enum":["status","index_field"]},{"type":"null"}],"title":"Kanban Group Kind"},"kanban_group_field_id":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Kanban Group Field Id"},"created_at":{"type":"string","format":"date-time","title":"Created At"},"updated_at":{"type":"string","format":"date-time","title":"Updated At"}},"additionalProperties":false,"type":"object","required":["id","owner_id","eid","name","is_active","created_at","updated_at"],"title":"GlagolListOut","description":"Настройки списка и идентификаторы для работы с его записями."},"GlagolStatusOption":{"properties":{"value":{"type":"string","maxLength":256,"minLength":1,"title":"Value","description":"Значение для поля status записи."},"color":{"anyOf":[{"type":"string","maxLength":7},{"type":"null"}],"title":"Color"},"display_as_badge":{"type":"boolean","title":"Display As Badge","default":true},"is_archive":{"type":"boolean","title":"Is Archive","default":false,"description":"При true установка этого статуса архивирует текущую запись."}},"additionalProperties":false,"type":"object","required":["value"],"title":"GlagolStatusOption"}},"securitySchemes":{"GlagolBearer":{"type":"http","scheme":"bearer","description":"API-ключ Glagol либо действующий JWT. Введите только токен. Для чтения документации не нужен."}}},"security":[{"GlagolBearer":[]}]}