{"schema_version":"1.0","service":"Publicasta","type":"article","id":1069,"slug":"cursor_claude_code_extension_supply_chain_response","title":"Инцидент с расширением Claude Code для Cursor показывает, зачем AI-инструментам разработки нужна проверка пакетов","excerpt":"Подменённое расширение Claude Code попало к пользователям Cursor: оно собирало сведения о компьютере и пыталось закрепить SSH-доступ. Инцидент показывает, как проверять расширения, локализовать угрозу, менять учётные данные и безопаснее работать с AI-инструментами.","language":"ru","default_language":"en","canonical_url":"https://publicasta.com/ai_practice/cursor_claude_code_extension_supply_chain_response?lang=ru","image":{"url":"https://publicasta.com/storage/projects/8/pages/1069/2026/11/31a317c3-32d2-40e6-a55b-17e34ce833e8.webp","alt":"Рабочее место разработчика с кодом, проверкой пакетов и телеметрией безопасности в тёмной редакционной технологической сцене."},"publisher":{"id":8,"slug":"ai_practice","name":"AI-практика","url":"https://publicasta.com/ai_practice"},"author":{"name":"Anton R"},"published_at":"2026-11-01T10:11:01+00:00","updated_at":"2026-11-01T10:11:01+00:00","content_markdown":"Ассистент для написания кода — необычно привилегированное программное обеспечение. Он может просматривать репозиторий, запускать инструменты, читать конфигурацию и иногда работать рядом с учётными данными, ценность которых далеко выходит за пределы открытого в редакторе проекта. Поэтому скомпрометированное расширение — это не просто неудачное обновление. Оно может превратиться в канал атаки на рабочую станцию разработчика через цепочку поставок.\n\n ![Рабочее место разработчика с кодом, проверкой пакетов и телеметрией безопасности в тёмной редакционной технологической сцене.](https://publicasta.com/storage/projects/8/pages/1069/2026/11/31a317c3-32d2-40e6-a55b-17e34ce833e8.webp)\n\n Этот риск стал конкретным 29 октября, когда изменённая копия расширения Anthropic Claude Code появилась в VS Code Extension Marketplace для Cursor. По словам Cursor, версии 2.1.312 и 2.1.313 для macOS и Windows были доступны примерно одиннадцать часов. Компания оценила, что пакет могли получить не более 5 000 пользователей. Cursor удалила эти версии, временно отключила маркетплейс на время расследования, отозвала ключи и пересобрала маркетплейс.\n\n Инцидент важен даже для команд, которые никогда не используют Claude Code. Он выявляет слабое место распространённого предположения: расширение с привычным именем издателя, обычным на вид обновлением и полезной AI-функцией безопасно, потому что пришло через маркетплейс редактора. Маркетплейсы упрощают распространение. Но они не отменяют необходимости проверять, что именно распространяется, что пакет может делать и какие меры нужны, если доверие к нему подорвано.\n\n ## Что произошло в маркетплейсе Cursor\n\n В [уведомлении о безопасности](https://prod.cursor.com/blog/claude-code-extension-security-notice) Cursor говорится, что затронутый пакет был вредоносно изменённой версией `Anthropic.claude-code`, а не сборкой, разработанной Anthropic. Пакет находился в маркетплейсе Cursor примерно с 2:27 до 13:35 по тихоокеанскому времени 29 октября 2026 года. Позже Cursor уточнила, что в распространение через маркетплейс для Windows и macOS входили обе версии — 2.1.312 и 2.1.313.\n\n Расширение по-прежнему представлялось интеграцией Claude Code, но добавленный в него код пытался выполнять несколько действий, не имеющих отношения к обычной интеграции с редактором. Cursor сообщила о сборе имени хоста, имени пользователя, операционной системы, архитектуры системы, пути к домашнему каталогу, названий переменных окружения, рабочих каталогов, настроенного адреса электронной почты Git и публичного IP-адреса. Пакет также пытался отправить сведения о компьютере на сервер, контролируемый злоумышленником.\n\n Пакет пытался добавить открытый ключ злоумышленника в файл SSH `authorized_keys`, включить локальную службу SSH и открыть обратный SSH-туннель. Затем он пытался сделать этот туннель постоянным с помощью LaunchAgent в macOS либо механизмов запланированных задач и скриптов запуска в Windows. Фоновые скрипты должны были периодически повторять попытку подключения.\n\n Cursor сообщила, что сервер злоумышленника был отключён при содействии её облачного провайдера. Компания также отметила, что вредоносный код содержал ошибки, из-за которых служба SSH обычно не могла включиться без прав администратора. Это снижает вероятность успешного удалённого входа на многих компьютерах, но не делает инцидент безобидным. Расширение всё равно могло выполняться, собирать сведения о системе, добавлять механизмы закрепления и оставлять компьютер в состоянии, требующем расследования.\n\n В [анализе Microsoft Security](https://www.microsoft.com/en-us/security/blog/2026/10/30/inside-malicious-claude-code-branded-cursor-extension-persistent-ssh-backdoor/) пакет описывается как атака через цепочку поставок, доставленная через экосистему расширений Cursor. Главный практический вывод прост: расширение могло работать как обычно и одновременно выполнять вредоносные действия в фоновом режиме. Нормальная работа видимой функции не доказывает, что пакет чист.\n\n ## Почему знакомого имени издателя оказалось недостаточно\n\n Идентичность пакета создала преимущество для социальной инженерии. Разработчик, который ищет Claude Code в маркетплейсе редактора, ожидает найти пакет, связанный с Anthropic. Пакет с правильным названием, появившийся в ходе обычного обновления, может получить доверие ещё до того, как кто-либо изучит его содержимое.\n\n Для AI-инструментов разработки такое доверие особенно опасно, поскольку они и без того находятся рядом с чувствительными операциями. AI-расширению могут разрешить читать исходный код, просматривать файлы проекта, запускать терминальный процесс, обращаться к локальным сервисам разработки и видеть конфигурацию, необходимую для тестирования или развёртывания программного обеспечения. Даже если ассистент запрашивает подтверждение перед выполнением команды, сам хост расширения остаётся частью доверенной вычислительной базы.\n\n Собственная [документация Cursor по безопасности](https://www.cursor.com/security) дает важный контекст. В ней говорится, что Cursor по умолчанию не проверяет подписи расширений, загруженных из его маркетплейса, а Workspace Trust не защищает от вредоносных расширений. Workspace Trust может помочь ограничить риск, связанный с папками проектов, но не превращает непроверенное расширение в доверенное программное обеспечение.\n\n Эту разницу легко упустить в повседневной работе. Разработчики часто мыслят категориями разрешений проекта: может ли ИИ-ассистент редактировать репозиторий или запускать тест. Маркетплейс расширений ставит другой вопрос: прошел ли код, реализующий работу ассистента, аутентификацию и проверку до того, как получил доступ к процессу редактора и окружению хоста.\n\n Для этих двух вопросов нужны разные меры контроля. Проект может быть доверенным, а расширение — нет. Издатель может быть легитимным, но один из каналов распространения — скомпрометированным. Пакет может быть подлинным в одном магазине и измененным в другом. Этот инцидент напоминает: «официальность» — не единое свойство. Она зависит от издателя, сборки, реестра, пути передачи и момента получения пакета.\n\n ## Что делать пострадавшим пользователям\n\n Любой, кто устанавливал или обновлял `Anthropic.claude-code` из маркетплейса Cursor в затронутый период, должен исходить из того, что машину необходимо проверить. Уведомление Cursor — отправная точка, которой следует доверять в первую очередь: в нем указаны затронутые версии, временные рамки, индикаторы и рекомендации по устранению последствий.\n\n Сначала сохраните достаточно данных для расследования. Если машина используется для доступа к рабочим системам, хостингу исходного кода, облачному администрированию, подписанию или управлению релизами, на время проверки телеметрии конечной точки и сети может быть уместно отключить ее от чувствительных сетей. Не стоит сразу удалять все подозрительные файлы, если организации нужно установить, что именно запускалось и какие данные могли быть раскрыты.\n\n Проверьте, была ли затронутая версия расширения установлена из маркетплейса Cursor в соответствующий период. Чистая версия, установленная через другой официальный канал распространения, — это отдельный случай. Cursor заявил, что не располагает свидетельствами о затронутости других версий расширения или официального дистрибутива Anthropic в рамках этого инцидента. Однако это утверждение не следует превращать в общую гарантию для каждого будущего обновления или любого маркетплейса.\n\n Конкретный индикатор, на который указал Cursor, — несанкционированный SSH-ключ с меткой `svc-telemetry` в файле `authorized_keys`. Командам также следует поискать в телеметрии конечных точек механизмы закрепления и процессы туннелирования, описанные в уведомлении: в частности, неожиданные LaunchAgents в macOS, запланированные задачи или скрипты автозапуска в Windows, а также исходящие соединения с инфраструктурой злоумышленника, зафиксированные среди индикаторов инцидента.\n\n Удалить расширение недостаточно, если его полезная нагрузка успела выполниться. Пакет пытался установить отдельные механизмы закрепления, которые могли продолжить работу после удаления расширения из редактора. Затронутые хосты следует изолировать, удалить несанкционированные ключи и механизмы закрепления, а затем оценить необходимость полной пересборки системы. Если на хосте хранились учетные данные или действующие сессии, после изоляции замените их с отдельного доверенного устройства. Речь идет о токенах систем контроля версий, облачных учетных данных, токенах реестров пакетов, SSH-ключах, материалах для подписи, а также сессиях браузера или редактора, которые могли открывать доступ к корпоративным системам.\n\n Ротацию учетных данных следует определять исходя из возможного раскрытия, а не из того, выводил ли вредоносный код секрет явно. Cursor сообщил, что пакет собирал имена переменных окружения, не описывая масштабную кражу учетных данных, но постоянный бэкдор создает неопределенность относительно того, к чему можно было получить доступ после выполнения кода. Практический вопрос звучит не так: «Заявляла ли полезная нагрузка о краже этого токена?» Нужно спросить: «Мог ли скомпрометированный хост получить доступ к этому токену или использовать его?»\n\n Перед попыткой самостоятельно очистить рабочую машину пользователям следует уведомить работодателя или команду безопасности. Даже небольшие команды без инструментов мониторинга конечных точек могут составить полезную запись: версии редактора и расширения, время установки, операционную систему, активные SSH-ключи, недавние сетевые соединения, места закрепления и учетные данные, доступные учетной записи пользователя. Такая запись помогает понять, оправдана ли полная пересборка, и не дает процедуре очистки уничтожить единственные свидетельства произошедшего.\n\n ## Инцидент связан с распространением, а не только с вредоносным ПО\n\n Было бы ошибкой сводить произошедшее к совету «не устанавливайте расширения в Cursor». Разработчикам нужны расширения, а тот же класс рисков существует в VS Code, продуктах JetBrains, браузерных дополнениях, реестрах пакетов, образах контейнеров, CI-действиях и плагинах AI-агентов. Удаление одной полезной интеграции не решает фундаментальную проблему распространения.\n\n Гораздо полезнее сделать распространение наблюдаемым и обратимым. Организации должны знать, какие расширения одобрены, какие версии установлены, откуда они получены и как их можно централизованно отключить. Разработчику не должно приходиться восстанавливать эту информацию с рабочей станции уже после получения уведомления о безопасности.\n\n Для управляемых команд разумный базовый набор мер включает список разрешённых расширений редактора, фиксацию версий критически важных инструментов, процесс проверки обновлений и проверенный способ отозвать или откатить пакет. Автоматические обновления удобны, но они также сокращают время на проверку. Подходящая политика может зависеть от роли: изолированная среда дизайнера для прототипирования не имеет такой же степени риска, как рабочая станция инженера по выпуску с доступом к облачным ресурсам и ключам подписи.\n\n Происхождение пакета следует проверять там, где это действительно важно. Если расширение доступно в нескольких магазинах, сравните идентификатор издателя, историю версий, примечания к выпуску, хеш пакета, если он указан, и официальные ссылки в документации поставщика. Версия, присутствующая на одном маркетплейсе, но отсутствующая на другом, не обязательно вредоносна, однако это повод остановиться и провести проверку.\n\n Организациям также следует отделять удобство разработки от полномочий в производственной среде. AI-инструмент для написания кода может быть полезен на рабочей станции с краткоживущими учётными данными, ограниченным сетевым доступом и без ключей подписи для продакшена. Но на машине, с которой можно публиковать пакеты, администрировать инфраструктуру или утверждать развёртывания, к тому же расширению должны предъявляться гораздо более строгие требования.\n\n ## Как AI-инструменты разработки меняют границу доверия\n\n Атаке не требовалось взламывать модель Claude или убеждать AI-ассистента писать опасный код. Она была направлена на программное обеспечение вокруг модели. Это важный сдвиг в том, как командам следует оценивать AI-продукты.\n\n В обсуждениях ИИ часто сосредотачиваются на prompt injection, галлюцинациях модели, хранении данных и том, насколько корректен сгенерированный код. Эти вопросы по-прежнему важны, однако AI-ассистент для написания кода также подвержен обычным рискам цепочки поставок ПО. Поверхностями атаки могут стать расширение редактора, клиент командной строки, языковой сервер, плагины, коннекторы MCP, служба обновлений и помощники для работы с учётными данными. Модель может быть самым заметным компонентом, но именно хост расширения получает практически полезный доступ.\n\n Поэтому план контроля должен охватывать и поведенческие вопросы, и целостность программного обеспечения:\n\n - Какие файлы инструмент может читать без запроса?\n- Какие процессы способно запускать расширение?\n- Наследует ли оно от редактора переменные окружения и сетевой доступ?\n- Какие учётные данные обычно присутствуют на машине во время работы?\n- Может ли инструмент устанавливать плагины или вызывать внешние коннекторы?\n- Фиксируются ли версии расширений, ведётся ли их журнал и можно ли их удалить?\n- Может ли скомпрометированный компьютер разработчика получить доступ к производственным системам?\n- Как быстро можно отозвать учётные данные и сессии?\n\n Эти вопросы полезнее, чем попытка выяснить, является ли продукт «безопасным» в абстрактном смысле. Безопасность зависит от сочетания целостности пакета, разрешений на хосте, доступности сети, масштаба полномочий учётных данных и способности команды обнаружить плохое обновление и восстановиться после него.\n\n ## Более безопасный рабочий процесс разработки с ИИ\n\n Практический ответ — не отказываться от AI-инструментов для написания кода, а поместить их в среду, где скомпрометированному инструменту будет что украсть меньше и будет доступно меньше направлений для перемещения.\n\n Начните с отдельного профиля или компьютера для AI-инструментов с высоким уровнем доверия. По возможности не храните на рабочей станции учётные данные для продакшена, используйте краткоживущие токены и не загружайте долгоживущие облачные ключи в окружение редактора. Если инструменту нужен доступ к облаку, предоставьте минимальную роль, достаточную для задачи, и разделите разрешения на чтение, запись, развёртывание и администрирование.\n\n Используйте одноразовую или пригодную для пересоздания среду для незнакомых расширений и интеграций с агентами. Контейнер или виртуальная машина не являются полной границей безопасности, если у них есть доступ к учётным данным, сокетам, смонтированной файловой системе или браузерным сессиям хоста, но при аккуратной настройке они могут уменьшить радиус поражения. Не подключайте к тестовой среде каталог SSH, каталог облачных учётных данных, токены менеджера пакетов или сокеты развёртывания, если этого действительно не требует задача.\n\n Не позволяйте автоматическому контуру агента включать проверку кода и полномочия на развёртывание. Инструмент на базе ИИ может предложить изменение, запустить тесты или подготовить ветку. Но выпуск этого изменения по-прежнему должен требовать независимой проверки и отдельно контролируемого ключа доступа. Это защищает и от вредоносных инструментов, и от обычных ошибок агента, который работает не с тем репозиторием или неправильно понял запрос.\n\n Относитесь к расширениям как к программным зависимостям. Фиксируйте их версии, проверяйте существенные обновления и отдавайте предпочтение официальным каналам выпуска, где публикуются уведомления о безопасности и история версий. Если редактор поддерживает проверку подписей, включите её там, где это приемлемо с операционной точки зрения, и разберитесь, что именно она подтверждает. Подпись может установить, кто подписал пакет, но не доказывает, что подписанный код уместен, не содержит уязвимостей или безопасен для каждой рабочей станции. Это один из элементов цепочки контроля, а не замена всей цепочке.\n\n Наконец, отработайте процедуру реагирования до того, как произойдёт инцидент. Команда должна знать, кто отвечает за политику расширений, кто может отключить интеграцию с маркетплейсом, где хранятся журналы конечных точек, как определить активные ключи SSH и как сменить учётные данные с чистого устройства. Первый час после предупреждения об атаке на цепочку поставок — неподходящее время для выяснения, что единственная учётная запись администратора привязана к машине, которую сейчас расследуют.\n\n ## Что Cursor и поставщики должны разъяснять лучше\n\n В ответе Cursor были приведены сведения, необходимые командам: затронутые версии, период распространения, предпринятые действия, факт того, что одной деинсталляции может быть недостаточно, а также необходимость сменить учётные данные. Такой уровень конкретики должен стать стандартом для маркетплейсов редакторов и поставщиков инструментов на базе ИИ.\n\n Операторы маркетплейсов также могут сделать модель доверия более понятной ещё до установки. Пользователь должен видеть, прошёл ли пакет проверку подписи, когда он был загружен, какая учётная запись издателя его отправила, пересобирался ли пакет и проводил ли маркетплейс независимый анализ на наличие вредоносного ПО. Эти сигналы не предотвратят каждый компромисс, но помогут отличить проверенный артефакт от просто знакомого имени.\n\n Инцидент также поднимает вопрос об автоматических обновлениях. Тихие обновления привлекательны для быстро развивающихся продуктов на базе ИИ, однако критически важному инструменту разработчика могут понадобиться поэтапное развёртывание, поддержка отката и политики, позволяющие организациям отложить обновление, пока они его не проверят. Если пакет может выполнять произвольный код с полномочиями редактора, к процессу его обновления следует относиться так же внимательно, как к обновлению операционной системы или браузера.\n\n Для Anthropic, Cursor и других поставщиков инструментов на базе ИИ полезный долгосрочный показатель — не только скорость удаления скомпрометированного пакета. Важно, могут ли заказчики подтвердить документально, какой артефакт они получили, выполнялся ли он, к чему обращался и как вернуть хост в заведомо исправное состояние. Именно этого стандарта следует требовать корпоративным покупателям при оценке инструментов разработки с агентными возможностями.\n\n ## Практический вывод\n\n Инцидент с Cursor не показал, что помощники по написанию кода на базе ИИ уникальным образом вредоносны. Он показал, что они достаточно ценны, чтобы унаследовать риски любого привилегированного инструмента разработчика, при этом организации нередко внедряют их быстрее, чем обновляют меры контроля цепочки поставок ПО.\n\n Поэтому командам следует оценивать расширение для разработки с ИИ одновременно как помощника и как программную зависимость. Проверяйте путь распространения, ограничивайте доступ инструмента к хосту, используйте узкие и временные учётные данные, регистрируйте установленные компоненты и поддерживайте план восстановления, который не зависит от скомпрометированной машины. В небольших аспектах такие меры делают разработку с поддержкой ИИ менее удобной, зато превращают инцидент на маркетплейсе из экзистенциальной чрезвычайной ситуации в контролируемое операционное событие.","available_translations":[{"language":"ar","title":"حادثة إضافة Claude Code في Cursor تبيّن سبب حاجة أدوات تطوير الذكاء الاصطناعي إلى التحقق من الحزم","html_url":"https://publicasta.com/ai_practice/cursor_claude_code_extension_supply_chain_response?lang=ar","markdown_url":"https://publicasta.com/ai_practice/cursor_claude_code_extension_supply_chain_response.md?lang=ar","json_url":"https://publicasta.com/ai_practice/cursor_claude_code_extension_supply_chain_response.json?lang=ar","api_url":"https://publicasta.com/api/public/v1/channels/ai_practice/articles/cursor_claude_code_extension_supply_chain_response?lang=ar"},{"language":"de","title":"Der Vorfall um die Claude-Code-Erweiterung für Cursor zeigt, warum KI-Entwicklertools eine Paketprüfung brauchen","html_url":"https://publicasta.com/ai_practice/cursor_claude_code_extension_supply_chain_response?lang=de","markdown_url":"https://publicasta.com/ai_practice/cursor_claude_code_extension_supply_chain_response.md?lang=de","json_url":"https://publicasta.com/ai_practice/cursor_claude_code_extension_supply_chain_response.json?lang=de","api_url":"https://publicasta.com/api/public/v1/channels/ai_practice/articles/cursor_claude_code_extension_supply_chain_response?lang=de"},{"language":"en","title":"The Cursor Claude Code Extension Incident Shows Why AI Developer Tools Need Package Verification","html_url":"https://publicasta.com/ai_practice/cursor_claude_code_extension_supply_chain_response?lang=en","markdown_url":"https://publicasta.com/ai_practice/cursor_claude_code_extension_supply_chain_response.md?lang=en","json_url":"https://publicasta.com/ai_practice/cursor_claude_code_extension_supply_chain_response.json?lang=en","api_url":"https://publicasta.com/api/public/v1/channels/ai_practice/articles/cursor_claude_code_extension_supply_chain_response?lang=en"},{"language":"es","title":"El incidente de la extensión Claude Code de Cursor muestra por qué las herramientas de desarrollo con IA necesitan verificación de paquetes","html_url":"https://publicasta.com/ai_practice/cursor_claude_code_extension_supply_chain_response?lang=es","markdown_url":"https://publicasta.com/ai_practice/cursor_claude_code_extension_supply_chain_response.md?lang=es","json_url":"https://publicasta.com/ai_practice/cursor_claude_code_extension_supply_chain_response.json?lang=es","api_url":"https://publicasta.com/api/public/v1/channels/ai_practice/articles/cursor_claude_code_extension_supply_chain_response?lang=es"},{"language":"fr","title":"L’incident de l’extension Claude Code de Cursor montre pourquoi les outils de développement IA doivent vérifier leurs paquets","html_url":"https://publicasta.com/ai_practice/cursor_claude_code_extension_supply_chain_response?lang=fr","markdown_url":"https://publicasta.com/ai_practice/cursor_claude_code_extension_supply_chain_response.md?lang=fr","json_url":"https://publicasta.com/ai_practice/cursor_claude_code_extension_supply_chain_response.json?lang=fr","api_url":"https://publicasta.com/api/public/v1/channels/ai_practice/articles/cursor_claude_code_extension_supply_chain_response?lang=fr"},{"language":"pl","title":"Incydent z rozszerzeniem Claude Code w Cursorze pokazuje, dlaczego narzędzia AI dla programistów wymagają weryfikacji pakietów","html_url":"https://publicasta.com/ai_practice/cursor_claude_code_extension_supply_chain_response?lang=pl","markdown_url":"https://publicasta.com/ai_practice/cursor_claude_code_extension_supply_chain_response.md?lang=pl","json_url":"https://publicasta.com/ai_practice/cursor_claude_code_extension_supply_chain_response.json?lang=pl","api_url":"https://publicasta.com/api/public/v1/channels/ai_practice/articles/cursor_claude_code_extension_supply_chain_response?lang=pl"},{"language":"ru","title":"Инцидент с расширением Claude Code для Cursor показывает, зачем AI-инструментам разработки нужна проверка пакетов","html_url":"https://publicasta.com/ai_practice/cursor_claude_code_extension_supply_chain_response?lang=ru","markdown_url":"https://publicasta.com/ai_practice/cursor_claude_code_extension_supply_chain_response.md?lang=ru","json_url":"https://publicasta.com/ai_practice/cursor_claude_code_extension_supply_chain_response.json?lang=ru","api_url":"https://publicasta.com/api/public/v1/channels/ai_practice/articles/cursor_claude_code_extension_supply_chain_response?lang=ru"},{"language":"zh","title":"Cursor Claude Code 扩展事件揭示 AI 开发者工具为何需要软件包验证","html_url":"https://publicasta.com/ai_practice/cursor_claude_code_extension_supply_chain_response?lang=zh","markdown_url":"https://publicasta.com/ai_practice/cursor_claude_code_extension_supply_chain_response.md?lang=zh","json_url":"https://publicasta.com/ai_practice/cursor_claude_code_extension_supply_chain_response.json?lang=zh","api_url":"https://publicasta.com/api/public/v1/channels/ai_practice/articles/cursor_claude_code_extension_supply_chain_response?lang=zh"}],"_links":{"self":"https://publicasta.com/ai_practice/cursor_claude_code_extension_supply_chain_response.json?lang=ru","api":"https://publicasta.com/api/public/v1/channels/ai_practice/articles/cursor_claude_code_extension_supply_chain_response?lang=ru","html":"https://publicasta.com/ai_practice/cursor_claude_code_extension_supply_chain_response?lang=ru","canonical":"https://publicasta.com/ai_practice/cursor_claude_code_extension_supply_chain_response?lang=ru","markdown":"https://publicasta.com/ai_practice/cursor_claude_code_extension_supply_chain_response.md?lang=ru","json":"https://publicasta.com/ai_practice/cursor_claude_code_extension_supply_chain_response.json?lang=ru","channel":"https://publicasta.com/api/public/v1/channels/ai_practice","channel_articles":"https://publicasta.com/api/public/v1/channels/ai_practice/articles","search":"https://publicasta.com/api/public/v1/search","documentation":"https://publicasta.com/api-docs#reading-publicasta","openapi":"https://publicasta.com/api-docs/openapi.json","llms":"https://publicasta.com/llms.txt"}}