agent-sdk/typescript.md +513 −409
481Объект конфигурации для функции `query()`.481Объект конфигурации для функции `query()`.
482 482
483| Свойство | Тип | По умолчанию | Описание |483| Свойство | Тип | По умолчанию | Описание |
484484| :-------------------------------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :------------------------------------------------------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ || :-------------------------------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :------------------------------------------------------------------ | :----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
485| `abortController` | `AbortController` | `new AbortController()` | Контроллер для отмены операций |485| `abortController` | `AbortController` | `new AbortController()` | Контроллер для отмены операций |
486486| `additionalDirectories` | `string[]` | `[]` | Дополнительные директории, к которым Claude может получить доступ. SDK передаёт каждую запись в Claude Code как `--add-dir`, поэтому с параметром `project` Claude Code также [загружает skills, команды и подагентов директории](/docs/ru/permissions#additional-directories-grant-file-access-not-configuration) || `additionalDirectories` | `string[]` | `[]` | Дополнительные каталоги, к которым Claude может получить доступ. SDK передает каждую запись в Claude Code как `--add-dir`, поэтому с параметром `project` source Claude Code также [загружает навыки, команды и подагентов каталога](/docs/ru/permissions#additional-directories-grant-file-access-not-configuration) |
487487| `agent` | `string` | `undefined` | Имя агента для основного потока. Агент должен быть определён в опции `agents` или в настройках || `agent` | `string` | `undefined` | Имя агента для основного потока. Агент должен быть определен в параметре `agents` или в параметрах |
488| `agents` | `Record<string, [`AgentDefinition`](#agentdefinition)>` | `undefined` | Программно определите подагентов |488| `agents` | `Record<string, [`AgentDefinition`](#agentdefinition)>` | `undefined` | Программно определите подагентов |
489489| `agentProgressSummaries` | `boolean` | `false` | Когда `true`, генерируйте однострочные сводки прогресса для подагентов и пересылайте их на события [`task_progress`](#sdktaskprogressmessage) через поле `summary`. Применяется к подагентам переднего плана и фонового режима || `agentProgressSummaries` | `boolean` | `false` | Когда `true`, генерирует однострочные сводки прогресса для подагентов и пересылает их на события [`task_progress`](#sdktaskprogressmessage) через поле `summary`. Применяется к подагентам переднего плана и фонового режима |
490490| `allowDangerouslySkipPermissions` | `boolean` | `false` | Включите обход разрешений. Требуется при использовании `permissionMode: 'bypassPermissions'` при запуске или позже через `setPermissionMode()`. См. [plan mode](/docs/ru/agent-sdk/permissions#plan-mode-plan) для того, как это взаимодействует с `permissionMode: 'plan'` || `allowDangerouslySkipPermissions` | `boolean` | `false` | Включить обход разрешений. Требуется при использовании `permissionMode: 'bypassPermissions'`, при запуске или позже через `setPermissionMode()`. См. [режим плана](/docs/ru/agent-sdk/permissions#plan-mode-plan) для взаимодействия с `permissionMode: 'plan'` |
491491| `allowedTools` | `string[]` | `[]` | Инструменты для автоматического одобрения без запроса. Это не ограничивает Claude только этими инструментами. Если вы назовёте один из [инструментов отслеживания задач](/docs/ru/agent-sdk/todo-tracking#model-availability) здесь, Claude Code также выбирает сессию. Другие неперечисленные инструменты переходят к `permissionMode` и `canUseTool`. Используйте `disallowedTools` для блокировки инструментов. См. [Разрешения](/docs/ru/agent-sdk/permissions#allow-and-deny-rules) || `allowedTools` | `string[]` | `[]` | Инструменты для автоматического одобрения без запроса. Это не ограничивает Claude только этими инструментами. Если вы назовете один из [инструментов отслеживания задач](/docs/ru/agent-sdk/todo-tracking#model-availability) здесь, Claude Code также включит сеанс. Другие неуказанные инструменты переходят к `permissionMode` и `canUseTool`. Используйте `disallowedTools` для блокировки инструментов. См. [Разрешения](/docs/ru/agent-sdk/permissions#allow-and-deny-rules) |
492492| `betas` | [`SdkBeta`](#sdkbeta)`[]` | `[]` | Включите бета-функции || `betas` | [`SdkBeta`](#sdkbeta)`[]` | `[]` | Включить бета-функции |
493493| `canUseTool` | [`CanUseTool`](#canusetool) | `undefined` | Пользовательская функция разрешения, вызываемая только когда [поток разрешения](/docs/ru/agent-sdk/permissions#how-permissions-are-evaluated) переходит к запросу. Не вызывается для вызовов, автоматически одобренных `allowedTools`, правилами разрешения или `permissionMode`. Правило разрешения не предварительно одобряет [действия, которые ни один режим не одобряет автоматически](/docs/ru/permission-modes#actions-no-mode-auto-approves). См. [`CanUseTool`](#canusetool) для деталей || `canUseTool` | [`CanUseTool`](#canusetool) | `undefined` | Пользовательская функция разрешений, вызываемая только когда [поток разрешений](/docs/ru/agent-sdk/permissions#how-permissions-are-evaluated) переходит к запросу. Не вызывается для вызовов, автоматически одобренных `allowedTools`, правилами разрешения или `permissionMode`. Правило разрешения не предварительно одобряет [действия, которые ни один режим не одобряет автоматически](/docs/ru/permission-modes#actions-no-mode-auto-approves). См. [`CanUseTool`](#canusetool) для деталей |
494494| `continue` | `boolean` | `false` | Продолжите самый последний диалог || `continue` | `boolean` | `false` | Продолжить самый последний разговор |
495495| `cwd` | `string` | `process.cwd()` | Текущая рабочая директория || `cwd` | `string` | `process.cwd()` | Текущий рабочий каталог |
496496| `debug` | `boolean` | `false` | Включите режим отладки для процесса Claude Code || `debug` | `boolean` | `false` | Включить режим отладки для процесса Claude Code |
497497| `debugFile` | `string` | `undefined` | Запишите журналы отладки в определённый путь файла. Неявно включает режим отладки || `debugFile` | `string` | `undefined` | Записать журналы отладки в определенный путь файла. Неявно включает режим отладки |
498498| `disallowedTools` | `string[]` | `[]` | Инструменты для отклонения. Простое имя, такое как `"Bash"`, удаляет инструмент из контекста Claude. Правило с областью видимости, такое как `"Bash(rm *)"`, оставляет инструмент доступным и отклоняет совпадающие вызовы в каждом режиме разрешения, включая `bypassPermissions`, для команды [как написано](/docs/ru/permissions#bash-rule-limits). См. [Разрешения](/docs/ru/agent-sdk/permissions#allow-and-deny-rules) || `disallowedTools` | `string[]` | `[]` | Инструменты для отказа. Простое имя, такое как `"Bash"`, удаляет инструмент из контекста Claude. Правило с областью действия, такое как `"Bash(rm *)"`, оставляет инструмент доступным и отклоняет соответствующие вызовы в каждом режиме разрешений, включая `bypassPermissions`, для команды [как написано](/docs/ru/permissions#bash-rule-limits). См. [Разрешения](/docs/ru/agent-sdk/permissions#allow-and-deny-rules) |
499499| `effort` | `'low' \| 'medium' \| 'high' \| 'xhigh' \| 'max'` | `undefined` | Контролирует, сколько усилий Claude вкладывает в свой ответ. Работает с адаптивным мышлением для направления глубины мышления. См. [adjust the effort level](/docs/ru/model-config#adjust-effort-level) || `effort` | `'low' \| 'medium' \| 'high' \| 'xhigh' \| 'max'` | `undefined` | Контролирует, сколько усилий Claude вкладывает в свой ответ. Работает с адаптивным мышлением для направления глубины мышления. См. [отрегулировать уровень усилий](/docs/ru/model-config#adjust-effort-level) |
500500| `enableFileCheckpointing` | `boolean` | `false` | Включите отслеживание изменений файлов для перемотки. См. [File checkpointing](/docs/ru/agent-sdk/file-checkpointing) || `enableFileCheckpointing` | `boolean` | `false` | Включить отслеживание изменений файлов для перемотки. См. [File checkpointing](/docs/ru/agent-sdk/file-checkpointing) |
501501| `env` | `Record<string, string \| undefined>` | `process.env` | Переменные окружения. Когда установлено, это заменяет окружение подпроцесса вместо объединения с `process.env`, поэтому передайте `{ ...process.env, YOUR_VAR: 'value' }` для сохранения унаследованных переменных, таких как `PATH`. См. [Handle slow or stalled API responses](#handle-slow-or-stalled-api-responses) для примера этого паттерна и [Environment variables](/docs/ru/env-vars) для переменных, которые читает базовый CLI. Установите `CLAUDE_AGENT_SDK_CLIENT_APP` для идентификации вашего приложения в заголовке User-Agent || `env` | `Record<string, string \| undefined>` | `process.env` | Переменные окружения. Когда установлено, это заменяет окружение подпроцесса вместо слияния с `process.env`, поэтому передайте `{ ...process.env, YOUR_VAR: 'value' }` для сохранения унаследованных переменных, таких как `PATH`. См. [Обработка медленных или зависших ответов API](#handle-slow-or-stalled-api-responses) для примера этого паттерна и [Переменные окружения](/docs/ru/env-vars) для переменных, которые читает базовый CLI. Установите `CLAUDE_AGENT_SDK_CLIENT_APP` для идентификации вашего приложения в заголовке User-Agent |
502502| `executable` | `'bun' \| 'deno' \| 'node'` | Автоопределение | Среда выполнения JavaScript для использования || `executable` | `'bun' \| 'deno' \| 'node'` | Автоопределение | Используемая среда выполнения JavaScript |
503| `executableArgs` | `string[]` | `[]` | Аргументы для передачи исполняемому файлу |503| `executableArgs` | `string[]` | `[]` | Аргументы для передачи исполняемому файлу |
504| `extraArgs` | `Record<string, string \| null>` | `{}` | Дополнительные аргументы |504| `extraArgs` | `Record<string, string \| null>` | `{}` | Дополнительные аргументы |
505505| `fallbackModel` | `string` | `undefined` | Модель для использования, если основная не работает || `fallbackModel` | `string` | `undefined` | Модель для использования, если основная модель не работает. Принимает список, разделенный запятыми. Для порядка и ограничения см. [Цепочки резервных моделей](/docs/ru/model-config#fallback-model-chains). Для рекомендаций см. [Выберите модель](/docs/ru/agent-sdk/configuration#choose-a-model) |
506506| `forkSession` | `boolean` | `false` | При возобновлении с `resume` разветвитесь на новый ID сессии вместо продолжения исходной сессии || `forkSession` | `boolean` | `false` | При возобновлении с `resume` разветвить на новый ID сеанса вместо продолжения исходного сеанса |
507507| `forwardSubagentText` | `boolean` | `false` | Пересылайте текст подагента и блоки мышления как сообщения ассистента и пользователя с установленным `parent_tool_use_id`, чтобы потребители могли отобразить вложенный транскрипт. Без этой опции Claude Code выдаёт блоки подагента `tool_use` и `tool_result`, но не текст или мышление. Сообщения от подагентов на каждой глубине вложенности пересылаются на Claude Code v2.1.219 и позже; до v2.1.219 появлялись только сообщения от подагентов глубины 1 || `forwardSubagentText` | `boolean` | `false` | Пересылать текст подагента и блоки мышления как сообщения помощника и пользователя с установленным `parent_tool_use_id`, чтобы потребители могли отобразить вложенную стенограмму. Без этого параметра Claude Code выдает блоки `tool_use` и `tool_result` подагента, но не текст или мышление. Сообщения от подагентов на каждой глубине вложенности пересылаются на Claude Code v2.1.219 и позже; до v2.1.219 появлялись только сообщения от подагентов глубины 1 |
508508| `hooks` | `Partial<Record<`[`HookEvent`](#hookevent)`, `[`HookCallbackMatcher`](#hookcallbackmatcher)`[]>>` | `{}` | Обратные вызовы hooks для событий || `hooks` | `Partial<Record<`[`HookEvent`](#hookevent)`, `[`HookCallbackMatcher`](#hookcallbackmatcher)`[]>>` | `{}` | Обратные вызовы hook для событий |
509509| `includeHookEvents` | `boolean` | `false` | Включите события жизненного цикла hooks в поток сообщений как [`SDKHookStartedMessage`](#sdkhookstartedmessage), [`SDKHookProgressMessage`](#sdkhookprogressmessage) и [`SDKHookResponseMessage`](#sdkhookresponsemessage). События жизненного цикла для hooks `SessionStart` и `Setup` всегда включены и не требуют этой опции. Некоторые события hooks, такие как `Notification`, `SessionEnd`, `PreCompact` и `PostCompact`, никогда не производят `SDKHookStartedMessage`, даже с этой опцией. Для этих событий Claude Code всё ещё выдаёт `SDKHookProgressMessage`, пока hook команды работает более одной секунды, и выдаёт `SDKHookResponseMessage` только когда hook [который работает в фоне](/docs/ru/hooks#run-hooks-in-the-background) завершается || `includeHookEvents` | `boolean` | `false` | Включить события жизненного цикла hook в поток сообщений как [`SDKHookStartedMessage`](#sdkhookstartedmessage), [`SDKHookProgressMessage`](#sdkhookprogressmessage) и [`SDKHookResponseMessage`](#sdkhookresponsemessage). События жизненного цикла для hook `SessionStart` и `Setup` всегда включены и не требуют этого параметра. Некоторые события hook, такие как `Notification`, `SessionEnd`, `PreCompact` и `PostCompact`, никогда не создают `SDKHookStartedMessage`, даже с этим параметром. Для этих событий Claude Code все еще выдает `SDKHookProgressMessage`, пока hook команды работает более одной секунды, и выдает `SDKHookResponseMessage` только когда hook [работающий в фоновом режиме](/docs/ru/hooks#run-hooks-in-the-background) завершается |
510510| `includePartialMessages` | `boolean` | `false` | Включите события частичных сообщений || `includePartialMessages` | `boolean` | `false` | Включить события частичных сообщений |
511511| `loadTimeoutMs` | `number` | `60000` | *Alpha.* Timeout в миллисекундах для каждого вызова `sessionStore.load()` и `sessionStore.listSubkeys()` во время материализации возобновления. Если адаптер не завершится в этом окне, запрос не удаётся вместо зависания. Игнорируется, когда `sessionStore` не установлен || `loadTimeoutMs` | `number` | `60000` | *Alpha.* Тайм-аут в миллисекундах для каждого вызова `sessionStore.load()` и `sessionStore.listSubkeys()` во время материализации возобновления. Если адаптер не разрешится в этом окне, запрос не удается вместо зависания. Игнорируется, когда `sessionStore` не установлен |
512512| `managedSettings` | `Settings` | `undefined` | Настройки уровня политики, которые ваш хост-процесс предоставляет порождённой сессии. На машинах с управляемыми настройками, развёрнутыми администратором, Claude Code игнорирует эти, если только источник управляемых настроек администратора с наивысшим приоритетом не установит `parentSettingsBehavior: 'merge'`, и никогда не объединяет их, пока [`policyHelper`](/docs/ru/settings-reference#policyhelper) предоставляет управляемые настройки. Объединённые значения проходят через фильтр только для ограничения; [Restrict parent settings](/docs/ru/claude-apps-gateway#restrict-parent-settings) охватывает то, что фильтр допускает и блокировки `allowManaged*Only`. Хост, который устанавливает [`CLAUDE_CODE_PROVIDER_MANAGED_BY_HOST`](/docs/ru/env-vars), имеет три ключа, прочитанные прямо из этой полезной нагрузки вместо этого: его [конфигурация модели](/docs/ru/model-config#restrict-model-selection) на Claude Code v2.1.222 или позже, [`modelPricing`](/docs/ru/settings-reference#modelpricing) когда ни один управляемый источник не устанавливает его на v2.1.246 или позже, и его запись `ENABLE_TOOL_SEARCH` env на v2.1.247 или позже || `managedSettings` | `Settings` | `undefined` | Параметры уровня политики, которые ваш хост-процесс предоставляет порожденному сеансу. На машинах с развернутыми администратором управляемыми параметрами Claude Code игнорирует их, если только источник управляемых параметров администратора с наивысшим приоритетом не установит `parentSettingsBehavior: 'merge'`, и никогда не объединяет их, пока [`policyHelper`](/docs/ru/settings-reference#policyhelper) предоставляет управляемые параметры. Объединенные значения проходят через фильтр только для ограничений; [Ограничить параметры родителя](/docs/ru/claude-apps-gateway#restrict-parent-settings) охватывает то, что допускает фильтр и блокировки `allowManaged*Only`. Хост, который устанавливает [`CLAUDE_CODE_PROVIDER_MANAGED_BY_HOST`](/docs/ru/env-vars), имеет три ключа, прочитанные прямо из этого полезного груза: его [конфигурация модели](/docs/ru/model-config#restrict-model-selection) на Claude Code v2.1.222 или позже, [`modelPricing`](/docs/ru/settings-reference#modelpricing) когда ни один управляемый источник не устанавливает его на v2.1.246 или позже, и его запись `ENABLE_TOOL_SEARCH` env на v2.1.247 или позже |
513513| `maxBudgetUsd` | `number` | `undefined` | Остановите запрос, когда оценка стоимости на стороне клиента достигнет этого значения USD. Сравнивается с той же оценкой, что и `total_cost_usd`; см. [Track cost and usage](/docs/ru/agent-sdk/cost-tracking) для предостережений точности || `maxBudgetUsd` | `number` | `undefined` | Остановить запрос, когда оценка стоимости на стороне клиента достигает этого значения в USD. Сравнивается с той же оценкой, что и `total_cost_usd`. Для предостережений точности и поведения сброса см. [Отслеживание стоимости и использования](/docs/ru/agent-sdk/cost-tracking) |
514514| `maxThinkingTokens` | `number` | `undefined` | *Устарело:* Используйте вместо этого `thinking`. Максимальные токены для процесса мышления || `maxThinkingTokens` | `number` | `undefined` | *Устарело:* Используйте `thinking` вместо этого. Максимальные токены для процесса мышления |
515515| `maxTurns` | `number` | `undefined` | Максимальное количество агентских ходов (раунды использования инструмента) || `maxTurns` | `number` | `undefined` | Максимальное количество агентивных ходов (раунды использования инструментов) |
516516| `mcpServers` | `Record<string, [`McpServerConfig`](#mcpserverconfig)>` | `{}` | Конфигурации MCP серверов || `mcpServers` | `Record<string, [`McpServerConfig`](#mcpserverconfig)>` | `{}` | Конфигурации MCP сервера |
517517| `model` | `string` | По умолчанию из CLI | Псевдоним модели Claude или полное имя модели. См. [accepted values and provider-specific IDs](/docs/ru/model-config#available-models) || `model` | `string` | По умолчанию из CLI | Псевдоним модели Claude или полное имя модели. См. [принятые значения и ID, специфичные для поставщика](/docs/ru/model-config#available-models) |
518| `onElicitation` | `(request: ElicitationRequest, options: { signal: AbortSignal }) => Promise<ElicitationResult>` | `undefined` | Обратный вызов для обработки запросов MCP elicitation. Вызывается, когда MCP сервер запрашивает ввод пользователя и ни один hook не обрабатывает его первым. Если не предоставлено, необработанные запросы elicitation автоматически отклоняются |518| `onElicitation` | `(request: ElicitationRequest, options: { signal: AbortSignal }) => Promise<ElicitationResult>` | `undefined` | Обратный вызов для обработки запросов MCP elicitation. Вызывается, когда MCP сервер запрашивает ввод пользователя и ни один hook не обрабатывает его первым. Если не предоставлено, необработанные запросы elicitation автоматически отклоняются |
519519| `outputFormat` | `{ type: 'json_schema', schema: JSONSchema }` | `undefined` | Определите формат вывода для результатов агента. См. [Structured outputs](/docs/ru/agent-sdk/structured-outputs) для деталей || `outputFormat` | `{ type: 'json_schema', schema: JSONSchema }` | `undefined` | Определите формат вывода для результатов агента. См. [Структурированные выходы](/docs/ru/agent-sdk/structured-outputs) для деталей |
520520| `outputStyle` | `string` | `undefined` | Не поле `Options`. Установите `outputStyle` во встроенном объекте [`settings`](/docs/ru/settings) или файле настроек вместо этого. См. [Activate an output style](/docs/ru/agent-sdk/modifying-system-prompts#activate-an-output-style) || `outputStyle` | `string` | `undefined` | Не поле `Options`. Установите `outputStyle` в встроенном объекте [`settings`](/docs/ru/settings) или файле параметров вместо этого. См. [Активировать стиль вывода](/docs/ru/agent-sdk/modifying-system-prompts#activate-an-output-style) |
521521| `pathToClaudeCodeExecutable` | `string` | Автоопределение из встроенного нативного бинарного файла | Путь к исполняемому файлу Claude Code. Требуется только если опциональные зависимости были пропущены при установке или ваша платформа не в поддерживаемом наборе || `pathToClaudeCodeExecutable` | `string` | Автоматически разрешено из встроенного собственного двоичного файла | Путь к исполняемому файлу Claude Code. Требуется только если дополнительные зависимости были пропущены во время установки или ваша платформа не входит в поддерживаемый набор |
522522| `permissionMode` | [`PermissionMode`](#permissionmode) | `'default'` | Режим разрешения для сессии || `permissionMode` | [`PermissionMode`](#permissionmode) | `'default'` | Режим разрешений для сеанса |
523523| `permissionPromptToolName` | `string` | `undefined` | Имя MCP инструмента для запросов разрешения || `permissionPromptToolName` | `string` | `undefined` | Имя инструмента MCP для запросов разрешений |
524524| `permissionPrompts` | `'host' \| 'none'` | `'host'` | Кто отвечает на запросы разрешения: `'host'` маршрутизирует их в ваш обратный вызов [`canUseTool`](#canusetool) или инструмент `permissionPromptToolName`, и `'none'` [отклоняет вызовы, которые иначе запросили бы](/docs/ru/agent-sdk/permissions#how-permissions-are-evaluated). Требует Claude Code v2.1.259 или позже || `permissionPrompts` | `'host' \| 'none'` | `'host'` | Кто отвечает на запросы разрешений: `'host'` маршрутизирует их на ваш обратный вызов [`canUseTool`](#canusetool) или инструмент `permissionPromptToolName`, и `'none'` [отклоняет вызовы, которые иначе запросили бы](/docs/ru/agent-sdk/permissions#how-permissions-are-evaluated). Требует Claude Code v2.1.259 или позже |
525525| `persistSession` | `boolean` | `true` | Когда `false`, отключает сохранение сессии на диск. Сессии не могут быть возобновлены позже || `persistSession` | `boolean` | `true` | Когда `false`, отключает сохранение сеанса на диск. Сеансы не могут быть возобновлены позже |
526526| `planModeInstructions` | `string` | `undefined` | Пользовательские инструкции рабочего процесса для Plan Mode. Когда `permissionMode` это `'plan'`, эта строка заменяет тело рабочего процесса режима плана по умолчанию. CLI по-прежнему оборачивает его с преамбулой принудительного соблюдения только для чтения и нижним колонтитулом протокола ExitPlanMode || `planModeInstructions` | `string` | `undefined` | Пользовательские инструкции рабочего процесса для режима плана. Когда `permissionMode` имеет значение `'plan'`, эта строка заменяет основной текст рабочего процесса режима плана по умолчанию. CLI по-прежнему оборачивает его с преамбулой принудительного применения только для чтения и нижним колонтитулом протокола ExitPlanMode |
527527| `plugins` | [`SdkPluginConfig`](#sdkpluginconfig)`[]` | `[]` | Загружайте пользовательские plugins из локальных путей. См. [Plugins](/docs/ru/agent-sdk/plugins) для деталей || `plugins` | [`SdkPluginConfig`](#sdkpluginconfig)`[]` | `[]` | Загрузить пользовательские плагины из локальных путей. См. [Плагины](/docs/ru/agent-sdk/plugins) для деталей |
528528| `promptSuggestions` | `boolean` | `false` | Включите предложения запросов. После хода Claude Code выдаёт сообщение `prompt_suggestion` с предсказанным следующим пользовательским запросом. Claude Code не генерирует предложение для некоторых ходов, таких как когда ваша учётная запись близка к или находится на пределе использования. См. [When Claude Code skips suggestions](/docs/ru/interactive-mode#when-claude-code-skips-suggestions) || `promptSuggestions` | `boolean` | `false` | Включить предложения подсказок. После хода Claude Code выдает сообщение `prompt_suggestion`, содержащее предсказанную следующую подсказку пользователя. Claude Code не генерирует предложение для некоторых ходов, например, когда ваша учетная запись близка к лимиту использования или находится на нем. См. [Когда Claude Code пропускает предложения](/docs/ru/interactive-mode#when-claude-code-skips-suggestions) |
529529| `resume` | `string` | `undefined` | ID сессии для возобновления || `resume` | `string` | `undefined` | ID сеанса для возобновления |
530530| `resumeDropsTurn` | `string` | `undefined` | С `resumeSessionAt`: UUID запроса хода, который усечённое возобновление намеревается отбросить. Claude Code отказывает в возобновлении, когда отброшенный диапазон содержит что-либо, не относящееся к этому ходу, такое как поглощённые поставленные в очередь сообщения или уведомления задач, и называет флаг `--resume-drops-turn` в сообщении отказа. Только Agent SDK и возобновления режима печати читают пару. Требует Claude Code v2.1.223 или позже || `resumeDropsTurn` | `string` | `undefined` | С `resumeSessionAt`: UUID подсказки хода, который усеченное возобновление намеревается отбросить. Claude Code отказывает в возобновлении, когда отброшенный диапазон содержит что-либо, не относящееся к этому ходу, такое как поглощенные сообщения в очереди или уведомления о задачах, и называет флаг `--resume-drops-turn` в сообщении об отказе. Только Agent SDK и возобновления в режиме печати читают пару. Требует Claude Code v2.1.223 или позже |
531531| `resumeSessionAt` | `string` | `undefined` | Возобновите сессию в определённом UUID сообщения || `resumeSessionAt` | `string` | `undefined` | Возобновить сеанс в определенном UUID сообщения |
532532| `sandbox` | [`SandboxSettings`](#sandboxsettings) | `undefined` | Программно настройте поведение sandbox. См. [Sandbox settings](#sandboxsettings) для деталей || `sandbox` | [`SandboxSettings`](#sandboxsettings) | `undefined` | Программно настройте поведение sandbox. См. [Параметры Sandbox](#sandboxsettings) для деталей |
533533| `sessionId` | `string` | Автогенерируемый | Используйте определённый UUID для сессии вместо автогенерирования || `sessionId` | `string` | Автогенерируемый | Используйте определенный UUID для сеанса вместо автогенерации |
534534| `sessionStore` | [`SessionStore`](/docs/ru/agent-sdk/session-storage#the-sessionstore-interface) | `undefined` | Зеркалируйте транскрипты сессий на внешний бэкенд, чтобы любой хост мог их возобновить. См. [Persist sessions to external storage](/docs/ru/agent-sdk/session-storage) || `sessionStore` | [`SessionStore`](/docs/ru/agent-sdk/session-storage#the-sessionstore-interface) | `undefined` | Зеркалировать стенограммы сеанса во внешний бэкэнд, чтобы другой хост мог их возобновить. См. [Сохранить сеансы во внешнее хранилище](/docs/ru/agent-sdk/session-storage) |
535535| `sessionStoreFlush` | `'batched' \| 'eager'` | `'batched'` | *Alpha.* Режим flush для `sessionStore`. Игнорируется, когда `sessionStore` не установлен || `sessionStoreFlush` | `'batched' \| 'eager'` | `'batched'` | *Alpha.* Режим сброса для `sessionStore`. Игнорируется, когда `sessionStore` не установлен |
536536| `settings` | `string \| Settings` | `undefined` | Встроенный объект [settings](/docs/ru/settings) или путь к файлу настроек. Заполняет слой flag-settings в [порядке приоритета](/docs/ru/settings#settings-precedence). Измените во время выполнения с помощью [`applyFlagSettings()`](#applyflagsettings) || `settings` | `string \| Settings` | `undefined` | Встроенный объект [settings](/docs/ru/settings), путь файла параметров или встроенная строка JSON. Заполняет уровень параметров флага в [порядке приоритета](/docs/ru/settings#settings-precedence). Измените во время выполнения с помощью [`applyFlagSettings()`](#applyflagsettings) |
537537| `settingSources` | [`SettingSource`](#settingsource)`[]` | Значения по умолчанию CLI (все источники) | Контролируйте, какие настройки файловой системы загружать. Передайте `[]` для отключения пользовательских, проектных и локальных настроек. [Endpoint-managed policy](/docs/ru/managed-settings#delivery-mechanisms) загружается независимо; серверные управляемые настройки загружаются, когда сессия аутентифицируется с учётными данными организации на [подходящей конфигурации](/docs/ru/server-managed-settings#platform-availability). См. [Use Claude Code features](/docs/ru/agent-sdk/claude-code-features#what-settingsources-does-not-control) || `settingSources` | [`SettingSource`](#settingsource)`[]` | Значения по умолчанию CLI (все источники) | Контролируйте, какие параметры файловой системы загружать. Передайте `[]` для отключения параметров пользователя, проекта и локальных параметров. [Управляемая политика конечной точки](/docs/ru/managed-settings#delivery-mechanisms) загружается независимо; параметры, управляемые сервером, извлекаются, когда сеанс аутентифицируется с учетными данными организации на [подходящей конфигурации](/docs/ru/server-managed-settings#platform-availability). См. [Использование функций Claude Code](/docs/ru/agent-sdk/claude-code-features#what-settingsources-does-not-control) |
538538| `skills` | `string[] \| 'all'` | `undefined` | Skills доступные для сессии. Передайте `'all'` для включения каждого обнаруженного skill, или список имён skills. Передавайте только точные имена. На Agent SDK v0.3.221 или позже SDK отклоняет неправильно сформированные и имена в форме подстановочных знаков с ошибкой перед запуском процесса Claude Code. Когда установлено, SDK автоматически добавляет инструмент Skill в `allowedTools`. Если вы также передаёте `tools`, включите `'Skill'` в этот список. См. [Skills](/docs/ru/agent-sdk/skills) || `skills` | `string[] \| 'all'` | `undefined` | Навыки, доступные для сеанса. Передайте `'all'` для включения каждого обнаруженного навыка или список имен навыков. Передавайте только точные имена. На Agent SDK v0.3.221 или позже SDK отклоняет неправильно сформированные и имена в форме подстановочных знаков с ошибкой перед запуском процесса Claude Code. Когда установлено, SDK автоматически добавляет инструмент Skill в `allowedTools`. Если вы также передаете `tools`, включите `'Skill'` в этот список. См. [Навыки](/docs/ru/agent-sdk/skills) |
539539| `spawnClaudeCodeProcess` | `(options: SpawnOptions) => SpawnedProcess` | `undefined` | Пользовательская функция для запуска процесса Claude Code. Используйте для запуска Claude Code на ВМ, контейнерах или удалённых окружениях || `spawnClaudeCodeProcess` | `(options: SpawnOptions) => SpawnedProcess` | `undefined` | Пользовательская функция для порождения процесса Claude Code. Используйте для запуска Claude Code на виртуальных машинах, в контейнерах или удаленных окружениях |
540| `stderr` | `(data: string) => void` | `undefined` | Обратный вызов для вывода stderr |540| `stderr` | `(data: string) => void` | `undefined` | Обратный вызов для вывода stderr |
541541| `strictMcpConfig` | `boolean` | `false` | Используйте только серверы, переданные в `mcpServers`, и игнорируйте проект `.mcp.json`, пользовательские настройки, MCP серверы, предоставленные plugins, и [claude.ai connectors](/docs/ru/mcp#use-mcp-servers-from-claude-ai) || `strictMcpConfig` | `boolean` | `false` | Используйте только серверы, переданные в `mcpServers`, и игнорируйте проект `.mcp.json`, параметры пользователя, MCP серверы, предоставленные плагинами, и [соединители claude.ai](/docs/ru/mcp#use-mcp-servers-from-claude-ai) |
542542| `systemPrompt` | `string \| string[] \| { type: 'custom'; prompt: string \| string[]; snapshot?: boolean } \| { type: 'preset'; preset: 'claude_code'; append?: string; excludeDynamicSections?: boolean; snapshot?: boolean }` | `undefined` (минимальный запрос) | Конфигурация системного запроса. Передайте строку для пользовательского запроса или `{ type: 'preset', preset: 'claude_code' }` для использования системного запроса Claude Code. Передайте массив строк с экспортированной константой `SYSTEM_PROMPT_DYNAMIC_BOUNDARY` между статической и частями для каждого запроса для [кэширования статической части пользовательского запроса](/docs/ru/agent-sdk/modifying-system-prompts#cache-the-static-part-of-a-custom-prompt). При использовании формы объекта preset добавьте `append` для расширения его дополнительными инструкциями и установите `excludeDynamicSections: true` для перемещения контекста для каждой сессии в первое пользовательское сообщение для [лучшего переиспользования prompt-cache на разных машинах](/docs/ru/agent-sdk/modifying-system-prompts#improve-prompt-caching-across-users-and-machines). Установите `snapshot: false` для перестроения запроса при каждом запросе вместо [переиспользования запроса, который сессия записала при первом запросе](/docs/ru/agent-sdk/modifying-system-prompts#change-the-prompt-of-an-existing-session). Чтобы установить `snapshot` на пользовательском запросе, передайте форму `{ type: 'custom', prompt }`. Форма `{ type: 'custom' }` и поле `snapshot` требуют TypeScript Agent SDK v0.3.257 или позже || `systemPrompt` | `string \| string[] \| { type: 'custom'; prompt: string \| string[]; snapshot?: boolean } \| { type: 'preset'; preset: 'claude_code'; append?: string; excludeDynamicSections?: boolean; snapshot?: boolean }` | `undefined` (минимальная подсказка) | Конфигурация системной подсказки. Передайте строку для пользовательской подсказки или `{ type: 'preset', preset: 'claude_code' }` для использования системной подсказки Claude Code. Передайте массив строк с экспортированной константой `SYSTEM_PROMPT_DYNAMIC_BOUNDARY` между статической и частями для каждого запроса для [кэширования статической части пользовательской подсказки](/docs/ru/agent-sdk/modifying-system-prompts#cache-the-static-part-of-a-custom-prompt). При использовании формы объекта preset добавьте `append` для расширения его дополнительными инструкциями и установите `excludeDynamicSections: true` для перемещения контекста для каждого сеанса в первое сообщение пользователя для [лучшего повторного использования кэша подсказок на разных машинах](/docs/ru/agent-sdk/modifying-system-prompts#improve-prompt-caching-across-users-and-machines). Установите `snapshot: false` для перестроения подсказки при каждом запросе вместо [повторного использования подсказки, которую сеанс записал при первом запросе](/docs/ru/agent-sdk/modifying-system-prompts#change-the-prompt-of-an-existing-session). Для установки `snapshot` на пользовательской подсказке передайте форму `{ type: 'custom', prompt }`. Форма `{ type: 'custom' }` и поле `snapshot` требуют TypeScript Agent SDK v0.3.257 или позже |
543543| `taskBudget` | `{ total: number }` | `undefined` | *Alpha.* Бюджет задачи на стороне API в токенах. Когда установлено, модели сообщается её оставшийся бюджет токенов, чтобы она могла регулировать использование инструмента и завершить работу до лимита || `taskBudget` | `{ total: number }` | `undefined` | *Alpha.* Бюджет задач на стороне API в токенах. Когда установлено, модели сообщается оставшийся бюджет токенов, чтобы она могла контролировать использование инструментов и завершить работу перед лимитом |
544544| `thinking` | [`ThinkingConfig`](#thinkingconfig) | `{ type: 'adaptive' }` для поддерживаемых моделей | Контролирует поведение мышления/рассуждения Claude. См. [`ThinkingConfig`](#thinkingconfig) для опций || `thinking` | [`ThinkingConfig`](#thinkingconfig) | `{ type: 'adaptive' }` для поддерживаемых моделей | Контролирует поведение мышления/рассуждения Claude. См. [`ThinkingConfig`](#thinkingconfig) для параметров |
545545| `title` | `string` | `undefined` | Отображаемое название для сессии. При возобновлении через `resume` или `continue`, сохранённое название возобновляемой сессии имеет приоритет; используйте [`renameSession()`](#renamesession) для переименования существующей сессии || `title` | `string` | `undefined` | Отображаемое название для сеанса. При возобновлении через `resume` или `continue` сохраненное название возобновленного сеанса имеет приоритет; используйте [`renameSession()`](#renamesession) для переименования существующего сеанса |
546546| `toolAliases` | `Record<string, string>` | `undefined` | Отображайте встроенные имена инструментов на имена MCP инструментов, чтобы Claude вызывал вашу реализацию MCP вместо встроенной. Например, `{ Bash: 'mcp__workspace__bash' }` || `toolAliases` | `Record<string, string>` | `undefined` | Сопоставьте встроенные имена инструментов с именами инструментов MCP, чтобы Claude вызывал вашу реализацию MCP вместо встроенной. Например, `{ Bash: 'mcp__workspace__bash' }` |
547547| `toolConfig` | [`ToolConfig`](#toolconfig) | `undefined` | Конфигурация для встроенного поведения инструмента. См. [`ToolConfig`](#toolconfig) для деталей || `toolConfig` | [`ToolConfig`](#toolconfig) | `undefined` | Конфигурация для поведения встроенного инструмента. См. [`ToolConfig`](#toolconfig) для деталей |
548548| `tools` | `string[] \| { type: 'preset'; preset: 'claude_code' }` | `undefined` | Конфигурация инструмента. Передайте массив имён инструментов или используйте preset для получения встроенных инструментов Claude Code || `tools` | `string[] \| { type: 'preset'; preset: 'claude_code' }` | `undefined` | Конфигурация инструмента. Передайте массив имен инструментов или используйте preset для получения инструментов Claude Code по умолчанию |
549 549
550<h4 id="handle-slow-or-stalled-api-responses">550<h4 id="handle-slow-or-stalled-api-responses">
551551 Handle slow or stalled API responses Обработка медленных или зависших ответов API
552</h4>552</h4>
553 553
554554Подпроцесс CLI читает несколько переменных окружения, которые контролируют timeout API и обнаружение зависания. Передайте их через опцию `env`:Подпроцесс CLI читает несколько переменных окружения, которые контролируют тайм-ауты API и обнаружение зависания. Передайте их через параметр `env`:
555 555
556```typescript theme={null}556```typescript theme={null}
557import { query } from "@anthropic-ai/claude-agent-sdk";557import { query } from "@anthropic-ai/claude-agent-sdk";
569});569});
570```570```
571 571
572572* `API_TIMEOUT_MS`: timeout для каждого запроса на клиенте Anthropic, в миллисекундах. По умолчанию `600000`. Применяется к основному циклу и всем подагентам.* `API_TIMEOUT_MS`: тайм-аут для каждого запроса на клиенте Anthropic в миллисекундах. По умолчанию `600000`. Применяется к основному циклу и всем подагентам.
573573* `CLAUDE_CODE_MAX_RETRIES`: максимальное количество повторных попыток API. По умолчанию `10`, ограничено `15`. Каждая повторная попытка получает своё собственное окно `API_TIMEOUT_MS`, поэтому наихудший случай wall time примерно `API_TIMEOUT_MS × (CLAUDE_CODE_MAX_RETRIES + 1)` плюс backoff. Для автоматических запусков, которым нужно ждать через более длительные сбои, установите [`CLAUDE_CODE_RETRY_WATCHDOG=1`](/docs/ru/errors#tune-retry-behavior): он повторяет ошибки ёмкости бесконечно и, на Claude Code v2.1.199 или позже, повышает значение по умолчанию для других переходящих ошибок до `300` и удаляет ограничение на эту переменную.* `CLAUDE_CODE_MAX_RETRIES`: максимальное количество повторных попыток API. По умолчанию `10`, ограничено `15`. Каждая повторная попытка получает свое собственное окно `API_TIMEOUT_MS`, поэтому наихудшее время стены примерно `API_TIMEOUT_MS × (CLAUDE_CODE_MAX_RETRIES + 1)` плюс backoff. Для автоматических запусков, которым нужно ждать более длительных сбоев, установите [`CLAUDE_CODE_RETRY_WATCHDOG=1`](/docs/ru/errors#tune-retry-behavior): он повторяет переходящие ошибки емкости бесконечно и, на Claude Code v2.1.199 или позже, повышает значение по умолчанию для других переходящих ошибок до `300` и удаляет ограничение на эту переменную.
574574* `CLAUDE_ASYNC_AGENT_STALL_TIMEOUT_MS`: watchdog зависания для подагентов. Пока watchdog потока включен, значение по умолчанию это `CLAUDE_STREAM_IDLE_TIMEOUT_MS` плюс 5 минут, что составляет `600000`, если вы не повысите эту переменную. С отключённым watchdog потока, значение по умолчанию это `600000`. До v2.1.257 значение по умолчанию всегда было `600000`.* `CLAUDE_ASYNC_AGENT_STALL_TIMEOUT_MS`: сторож зависания для подагентов. Пока сторож потока включен, значение по умолчанию — `CLAUDE_STREAM_IDLE_TIMEOUT_MS` плюс 5 минут, что составляет `600000`, если вы не повысите эту переменную. Со сторожем потока выключенным, значение по умолчанию — `600000`. До v2.1.257 значение по умолчанию всегда было `600000`.
575 575
576 Таймер сбрасывается при каждом событии потока. При зависании Claude Code прерывает подагента и сообщает о зависании родителю. Для фонового подагента он также отмечает задачу как неудачную и прикрепляет любой частичный результат.576 Таймер сбрасывается при каждом событии потока. При зависании Claude Code прерывает подагента и сообщает о зависании родителю. Для фонового подагента он также отмечает задачу как неудачную и прикрепляет любой частичный результат.
577577* `CLAUDE_ENABLE_STREAM_WATCHDOG` с `CLAUDE_STREAM_IDLE_TIMEOUT_MS`: watchdog потока, который прерывает запрос, когда заголовки получены, но тело ответа перестаёт потоком передаваться. Watchdog включен по умолчанию для всех поставщиков; установите `CLAUDE_ENABLE_STREAM_WATCHDOG=0` для отключения. `CLAUDE_STREAM_IDLE_TIMEOUT_MS` по умолчанию `300000` и зажимается до этого минимума. После прерывания, [Automatic retries](/docs/ru/errors#automatic-retries) охватывает то, что Claude Code делает, на основе того, как далеко прошёл ответ.* `CLAUDE_ENABLE_STREAM_WATCHDOG` с `CLAUDE_STREAM_IDLE_TIMEOUT_MS`: сторож потока, который прерывает запрос, когда заголовки прибыли, но тело ответа перестает потоковать. Сторож включен по умолчанию для всех поставщиков; установите `CLAUDE_ENABLE_STREAM_WATCHDOG=0` для отключения. `CLAUDE_STREAM_IDLE_TIMEOUT_MS` по умолчанию `300000` и зажимается на этот минимум. После прерывания [Автоматические повторные попытки](/docs/ru/errors#automatic-retries) охватывает то, что Claude Code делает, на основе того, как далеко продвинулся ответ.
578 578
579579 Пока watchdog ждёт ответ, который шлюз позади `ANTHROPIC_BASE_URL` держит открытым с keep-alive пингами, хост, который устанавливает `includePartialMessages`, продолжает получать `ping` [события потока](#sdkpartialassistantmessage), поэтому читайте эти кадры как живость, а не синхронизируйте сессию на молчании. До v2.1.257 кадры останавливались через 5 минут после последнего реального события потока. Пока сторож ждет ответа, который шлюз позади `ANTHROPIC_BASE_URL` держит открытым с ping-пингами keep-alive, хост, который устанавливает `includePartialMessages`, продолжает получать `ping` [события потока](#sdkpartialassistantmessage), поэтому читайте эти кадры как живость, а не тайм-аут сеанса на молчании. До v2.1.257 кадры останавливались через 5 минут после последнего реального события потока.
580 580
581<h3 id="query-object">581<h3 id="query-object">
582582 `Query` object Объект `Query`
583</h3>583</h3>
584 584
585Интерфейс, возвращаемый функцией `query()`.585Интерфейс, возвращаемый функцией `query()`.
628```628```
629 629
630<h4 id="methods">630<h4 id="methods">
631631 Methods Методы
632</h4>632</h4>
633 633
634| Метод | Описание |634| Метод | Описание |
635635| :------------------------------------- | :--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- || :------------------------------------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
636636| `interrupt()` | Прерывает запрос. Доступно только в режиме потока входных данных. Когда CLI объявляет возможность `interrupt_receipt_v1` в [`SDKSystemMessage.capabilities`](#sdksystemmessage), разрешается с помощью [`SDKControlInterruptResponse`](#sdkcontrolinterruptresponse), в котором перечислены сообщения, которые были в ожидании, когда прерывание прибыло. Разрешается `undefined` на CLI до v2.1.205 || `interrupt()` | Прерывает запрос. Доступно только в режиме потокового ввода. Когда CLI объявляет возможность `interrupt_receipt_v1` в [`SDKSystemMessage.capabilities`](#sdksystemmessage), разрешается с помощью [`SDKControlInterruptResponse`](#sdkcontrolinterruptresponse), перечисляющего сообщения, которые были в ожидании при поступлении прерывания. Разрешается `undefined` на CLI до v2.1.205 |
637637| `rewindFiles(userMessageId, options?)` | Восстанавливает файлы в их состояние в указанном пользовательском сообщении. Передайте `{ dryRun: true }` для предпросмотра изменений. Требует `enableFileCheckpointing: true`. См. [File checkpointing](/docs/ru/agent-sdk/file-checkpointing) || `rewindFiles(userMessageId, options?)` | Восстанавливает файлы в их состояние в указанном сообщении пользователя. Передайте `{ dryRun: true }` для предварительного просмотра изменений. Требует `enableFileCheckpointing: true`. См. [File checkpointing](/docs/ru/agent-sdk/file-checkpointing) |
638638| `setPermissionMode()` | Изменяет режим разрешения (доступно только в режиме потока входных данных) || `setPermissionMode()` | Изменяет режим разрешений (доступно только в режиме потокового ввода) |
639639| `setModel()` | Изменяет модель (доступно только в режиме потока входных данных). Передача `undefined` или строки `"default"` сбрасывает на модель сессии по умолчанию || `setModel()` | Изменяет модель (доступно только в режиме потокового ввода). Передача `undefined` или строки `"default"` сбрасывает на [модель Claude Code по умолчанию](/docs/ru/model-config) |
640640| `setMaxThinkingTokens()` | *Устарело:* Используйте вместо этого опцию `thinking`. Изменяет максимальные токены мышления. Передача `null` сбрасывает мышление к значению по умолчанию сессии: переопределение в середине сессии очищается, и мышление остаётся отключённым для сессий, у которых оно отключено || `setMaxThinkingTokens()` | *Устарело:* Используйте параметр `thinking` вместо этого. Изменяет максимальные токены мышления. Передача `null` сбрасывает мышление на значение по умолчанию сеанса: переопределение в середине сеанса очищается, и мышление остается отключенным для сеансов, у которых оно отключено |
641641| `applyFlagSettings(settings)` | Объединяет настройки в слой flag settings сессии во время выполнения (доступно только в режиме потока входных данных). См. [`applyFlagSettings()`](#applyflagsettings) || `applyFlagSettings(settings)` | Объединяет параметры в уровень параметров флага сеанса во время выполнения (доступно только в режиме потокового ввода). См. [`applyFlagSettings()`](#applyflagsettings) |
642642| `updateSettings(source, settings)` | Объединяет настройки в файл локальных настроек проекта, `.claude/settings.local.json`; они вступают в силу при следующем запросе. Принимает только `source: 'localSettings'` и список разрешённых ключей, в настоящее время `outputStyle`, со строковыми значениями; удаление ключа не поддерживается. Отклоняет на удалённых транспортах и в сессиях, чьи [`settingSources`](#options) исключают `local`. Требует TypeScript SDK v0.3.257 или позже, который поставляется с Claude Code v2.1.257 || `updateSettings(source, settings)` | Объединяет параметры в файл локальных параметров проекта, `.claude/settings.local.json`; они вступают в силу при следующем запросе. Принимает только `source: 'localSettings'` и список разрешенных ключей, в настоящее время `outputStyle`, со строковыми значениями; удаление ключа не поддерживается. Отклоняет удаленные транспорты и сеансы, чьи [`settingSources`](#options) исключают `local`. Требует TypeScript SDK v0.3.257 или позже, который поставляется с Claude Code v2.1.257 |
643643| `initializationResult()` | Возвращает полный результат инициализации, включая поддерживаемые команды, модели, информацию об учётной записи и конфигурацию стиля вывода || `initializationResult()` | Возвращает полный результат инициализации, включая поддерживаемые команды, модели, информацию об учетной записи и конфигурацию стиля вывода |
644644| `reinitialize()` | Повторно отправляет запрос управления `initialize` работающему CLI и возвращает свежий результат вместо кэшированного результата первого подключения. Используйте его после разрыва транспорта, такого как переподключение к сессии после отключения, чтобы ожидающие запросы разрешения снова достигли вашего обратного вызова `canUseTool`. Сделайте обратный вызов идемпотентным для каждого ID запроса, потому что запрос, чей ответ был потерян, отправляется снова. Требует Claude Code v2.1.195 или позже || `reinitialize()` | Повторно отправляет запрос управления `initialize` на работающий CLI и возвращает свежий результат вместо кэшированного результата первого подключения. Используйте его после разрыва транспорта, например, переподключение к сеансу после отключения, чтобы ожидающие запросы разрешений снова достигли вашего обратного вызова `canUseTool`. Сделайте обратный вызов идемпотентным для каждого ID запроса, потому что запрос, чей ответ был потерян, отправляется снова. Требует Claude Code v2.1.195 или позже |
645645| `supportedCommands()` | Возвращает доступные команды. Начиная с Agent SDK v0.3.216 список отражает изменения команд в середине сессии; см. [`SDKCommandsChangedMessage`](#sdkcommandschangedmessage) || `supportedCommands()` | Возвращает доступные команды. Из Agent SDK v0.3.216 список отражает изменения команд в середине сеанса; см. [`SDKCommandsChangedMessage`](#sdkcommandschangedmessage) |
646646| `supportedModels()` | Возвращает доступные модели с информацией отображения || `supportedModels()` | Возвращает доступные модели с информацией об отображении |
647| `supportedAgents()` | Возвращает доступные подагентов как [`AgentInfo`](#agentinfo)`[]` |647| `supportedAgents()` | Возвращает доступные подагентов как [`AgentInfo`](#agentinfo)`[]` |
648648| `mcpServerStatus()` | Возвращает статус подключённых MCP серверов || `mcpServerStatus()` | Возвращает статус подключенных MCP серверов |
649649| `getContextUsage(opts?)` | Возвращает [`SDKControlGetContextUsageResponse`](#sdkcontrolgetcontextusageresponse), разбивая использование контекстного окна сессии по категориям, skills и инструментам. С опцией `detail` по умолчанию, это те же данные, которые `/context` показывает в интерактивной сессии. Опция [`detail`](#sdkcontrolgetcontextusageresponse) требует Agent SDK v0.3.257 или позже || `getContextUsage(opts?)` | Возвращает [`SDKControlGetContextUsageResponse`](#sdkcontrolgetcontextusageresponse), разбивая использование контекстного окна сеанса по категориям, навыкам и инструментам. С параметром по умолчанию `detail`, это те же данные, которые `/context` показывает в интерактивном сеансе. Параметр [`detail`](#sdkcontrolgetcontextusageresponse) требует Agent SDK v0.3.257 или позже |
650650| `readFile(path, options?)` | Читает файл из файловой системы сессии. Claude Code разрешает путь против `cwd`; [What `readFile()` can read](#what-readfile-can-read) перечисляет файлы, которые он служит. Передайте `{ maxBytes }` для изменения лимита чтения (по умолчанию 1 МБ, потолок 10 МБ) и `{ encoding: 'base64' }` для двоичных файлов, таких как изображения. Разрешается с [`SDKControlReadFileResponse`](#sdkcontrolreadfileresponse) или `null` при отказе в разрешении, отсутствующем файле или ошибке транспорта. Требует TypeScript SDK v0.2.121 или позже || `readFile(path, options?)` | Читает файл из файловой системы сеанса. Claude Code разрешает путь против `cwd`; [Что `readFile()` может читать](#what-readfile-can-read) перечисляет файлы, которые он обслуживает. Передайте `{ maxBytes }` для изменения ограничения чтения (по умолчанию 1 МБ, потолок 10 МБ) и `{ encoding: 'base64' }` для двоичных файлов, таких как изображения. Разрешается с помощью [`SDKControlReadFileResponse`](#sdkcontrolreadfileresponse) или `null` при отказе в разрешении, отсутствующем файле или ошибке транспорта. Требует TypeScript SDK v0.2.121 или позже |
651651| `reloadSkills()` | Перезагружает skills с диска, поэтому skills, которые вы добавляете или редактируете в середине сессии, становятся доступны работающей сессии. Разрешается с [`SDKControlReloadSkillsResponse`](#sdkcontrolreloadskillsresponse), в котором перечислены skills, доступные после перезагрузки. Требует Agent SDK v0.3.163 или позже || `reloadSkills()` | Перезагружает навыки с диска, поэтому навыки, которые вы добавляете или редактируете в середине сеанса, становятся доступны для работающего сеанса. Разрешается с помощью [`SDKControlReloadSkillsResponse`](#sdkcontrolreloadskillsresponse), перечисляющего доступные навыки после перезагрузки. Требует Agent SDK v0.3.163 или позже |
652652| `accountInfo()` | Возвращает информацию об учётной записи || `accountInfo()` | Возвращает информацию об учетной записи |
653653| `reconnectMcpServer(serverName)` | Переподключитесь к MCP серверу по имени. Если имя также совпадает с записью в файле настроек, таком как `.mcp.json` или `~/.claude.json`, Claude Code переподключает сервер, который вы настроили через [`mcpServers`](#options) или `setMcpServers()`, а не запись файла настроек. Этот порядок разрешения требует Claude Code v2.1.257 или позже || `reconnectMcpServer(serverName)` | Переподключить MCP сервер по имени. Если имя также совпадает с записью в файле параметров, таком как `.mcp.json` или `~/.claude.json`, Claude Code переподключает сервер, который вы настроили через [`mcpServers`](#options) или `setMcpServers()`, а не запись файла параметров. Этот порядок разрешения требует Claude Code v2.1.257 или позже |
654654| `toggleMcpServer(serverName, enabled)` | Включите или отключите MCP сервер по имени, с тем же разрешением имён, что и `reconnectMcpServer()`. Отключение отключает сервер || `toggleMcpServer(serverName, enabled)` | Включить или отключить MCP сервер по имени с тем же разрешением имени, что и `reconnectMcpServer()`. Отключение отключает сервер |
655655| `setMcpServers(servers)` | Динамически замените набор MCP серверов для этой сессии. Разрешается с [`McpSetServersResult`](#mcpsetserversresult), в котором названы серверы, которые были добавлены и удалены, и любые ошибки || `setMcpServers(servers)` | Динамически замените набор MCP серверов для этого сеанса. Разрешается с помощью [`McpSetServersResult`](#mcpsetserversresult), называющего, какие серверы были добавлены и удалены, и любые ошибки |
656656| `streamInput(stream)` | Потоком передавайте входные сообщения к запросу для многооборотных диалогов || `streamInput(stream)` | Потоковые входные сообщения в запрос для многоходовых разговоров |
657657| `stopTask(taskId)` | Остановите выполняющуюся фоновую задачу по ID || `stopTask(taskId)` | Остановить работающую фоновую задачу по ID |
658| `close()` | Закройте запрос и завершите базовый процесс. Принудительно завершает запрос и очищает все ресурсы |658| `close()` | Закройте запрос и завершите базовый процесс. Принудительно завершает запрос и очищает все ресурсы |
659 659
660<h4 id="applyflagsettings">660<h4 id="applyflagsettings">
661 `applyFlagSettings()`661 `applyFlagSettings()`
662</h4>662</h4>
663 663
664664Изменяет [настройки](/docs/ru/settings) на работающей сессии без перезагрузки запроса. Используйте её, когда настройка, у которой нет выделенного setter, должна измениться в середине сессии, например, ужесточение `permissions` после того, как агент прочитает ненадёжный ввод. `setModel()` и `setPermissionMode()` являются выделенными setters для этих двух ключей; `applyFlagSettings()` является общей формой, которая принимает любое подмножество ключей настроек, и передача `model` здесь ведёт себя так же, как `setModel()`.Изменяет [параметры](/docs/ru/settings) на работающем сеансе без перезагрузки запроса. Используйте его, когда параметр, у которого нет выделенного сеттера, должен измениться в середине сеанса, например, ужесточение `permissions` после того, как агент прочитает ненадежный ввод. `setModel()` и `setPermissionMode()` — это выделенные сеттеры для этих двух ключей; `applyFlagSettings()` — это общая форма, которая принимает любое подмножество ключей параметров, и передача `model` здесь ведет себя так же, как `setModel()`.
665 665
666666Только некоторые ключи вступают в силу в середине сессии:Только некоторые ключи вступают в силу в середине сеанса:
667 667
668668* **Применяется на следующем ходу**: `effortLevel`, `ultracode`, `permissions`, `hooks`, `skillOverrides`, `fastMode`, `agent`. Переключение `agent` также применяет переопределение модели этого агента и hooks на следующем ходу. Его системный запрос применяется на следующем ходу или, в сессии, которая [переиспользует записанный системный запрос](/docs/ru/agent-sdk/modifying-system-prompts#change-the-prompt-of-an-existing-session), один раз сессия компактна.* **Применяется при следующем ходе**: `effortLevel`, `ultracode`, `permissions`, `hooks`, `skillOverrides`, `fastMode`, `agent`. Переключение `agent` также применяет переопределение модели и hooks этого агента при следующем ходе. Его системная подсказка применяется при следующем ходе или, в сеансе, который [повторно использует записанную системную подсказку](/docs/ru/agent-sdk/modifying-system-prompts#change-the-prompt-of-an-existing-session), после компактирования сеанса.
669* **Применяется во время текущего хода**: `model`. Если вы переключаете `model` пока Claude работает над ходом, ответ, который Claude уже генерирует, завершается на старой модели, и остаток хода, начиная со следующего вызова Claude Code к модели, использует новую. Подагенты сохраняют свою собственную модель. До v2.1.212 переключение в середине хода ждало следующего хода.669* **Применяется во время текущего хода**: `model`. Если вы переключаете `model` пока Claude работает над ходом, ответ, который Claude уже генерирует, завершается на старой модели, и остаток хода, начиная со следующего вызова Claude Code к модели, использует новую. Подагенты сохраняют свою собственную модель. До v2.1.212 переключение в середине хода ждало следующего хода.
670670* **Нет эффекта в середине сессии**: опции системного запроса. Они разрешаются один раз при запуске, поэтому работающая сессия сохраняет исходное значение, даже если вызов успешен. Чтобы их изменить, запустите новую сессию.* **Нет эффекта в середине сеанса**: параметры системной подсказки. Они разрешаются один раз при запуске, поэтому работающий сеанс сохраняет исходное значение, даже если вызов успешен. Чтобы их изменить, запустите новый сеанс.
671 671
672672`effortLevel` принимает имя [уровня усилий](/docs/ru/model-config#adjust-effort-level). Он также принимает `"ultracode"`, который запускает `xhigh` усилия с [ultracode](/docs/ru/workflows#let-claude-decide-with-ultracode) на. `applyFlagSettings()` объявляет `effortLevel` без этого значения, поэтому передайте эквивалент `{ ultracode: true }` в TypeScript. Значение `ultracode` требует Claude Code v2.1.203 или позже и принимается только `applyFlagSettings()`, а не ключом `effortLevel` в файле настроек.`effortLevel` принимает имя [уровня усилий](/docs/ru/model-config#adjust-effort-level). Он также принимает `"ultracode"`, который запрашивает усилие `xhigh` с включенным [ultracode](/docs/ru/workflows#let-claude-decide-with-ultracode). `applyFlagSettings()` объявляет `effortLevel` без этого значения, поэтому передайте эквивалент `{ ultracode: true }` в TypeScript. Значение `ultracode` требует Claude Code v2.1.203 или позже и принимается только `applyFlagSettings()`, а не ключом `effortLevel` в файле параметров.
673 673
674674Значения записываются в слой flag-settings, тот же слой, который встроенная опция `settings` функции `query()` заполняет при запуске. Это тот же уровень, который [раздел приоритета на странице](#settings-precedence) называет программными опциями.Значения записываются в уровень параметров флага, тот же уровень, который встроенный параметр `settings` функции `query()` заполняет при запуске. Это тот же уровень, который раздел [приоритета на странице](#settings-precedence) называет программными параметрами.
675 675
676676Последовательные вызовы выполняют shallow-merge ключей верхнего уровня. Второй вызов с `{ permissions: {...} }` заменяет весь объект `permissions` из предыдущего вызова, а не выполняет deep-merge в него. Чтобы очистить ключ из слоя flag и вернуться к источникам с более низким приоритетом, передайте `null` для этого ключа. Передача `undefined` не имеет эффекта, потому что сериализация JSON её отбрасывает.Последовательные вызовы выполняют поверхностное слияние ключей верхнего уровня. Второй вызов с `{ permissions: {...} }` заменяет весь объект `permissions` из предыдущего вызова, а не глубоко объединяется в него. Чтобы очистить ключ из уровня флага, передайте `null` для этого ключа. Большинство ключей затем возвращаются к источникам с более низким приоритетом. Очищенный `model` сбрасывается на [модель Claude Code по умолчанию](/docs/ru/model-config), даже когда файл параметров устанавливает `model`. Передача `undefined` не имеет эффекта, потому что сериализация JSON удаляет ее.
677 677
678678Доступно только в режиме потока входных данных, то же ограничение, что и `setModel()` и `setPermissionMode()`.Доступно только в режиме потокового ввода, то же ограничение, что и `setModel()` и `setPermissionMode()`.
679 679
680680Пример ниже переключает активную модель в середине сессии, а затем очищает переопределение, чтобы модель вернулась к тому, что указывают пользовательские или проектные настройки.Пример ниже переключает активную модель в середине сеанса, а затем очищает переопределение, чтобы модель сбросилась на [модель Claude Code по умолчанию](/docs/ru/model-config).
681 681
682```typescript theme={null}682```typescript theme={null}
683import { query } from "@anthropic-ai/claude-agent-sdk";683import { query } from "@anthropic-ai/claude-agent-sdk";
684 684
685const q = query({ prompt: messageStream });685const q = query({ prompt: messageStream });
686 686
687687// Переопределите модель для остальной части сессии// Override the model for the rest of the session
688await q.applyFlagSettings({ model: "claude-opus-4-6" });688await q.applyFlagSettings({ model: "claude-opus-4-6" });
689 689
690690// Позже: очистите переопределение и вернитесь к настройкам с более низким приоритетом// Later: clear the override; the model resets to Claude Code's default
691await q.applyFlagSettings({ model: null });691await q.applyFlagSettings({ model: null });
692```692```
693 693
699 `WarmQuery`699 `WarmQuery`
700</h3>700</h3>
701 701
702702Дескриптор, возвращаемый [`startup()`](#startup). Подпроцесс уже запущен и инициализирован, поэтому вызов `query()` на этом дескрипторе записывает запрос непосредственно в готовый процесс без задержки запуска.Дескриптор, возвращаемый [`startup()`](#startup). Подпроцесс уже порожден и инициализирован, поэтому вызов `query()` на этом дескрипторе записывает подсказку непосредственно в готовый процесс без задержки запуска.
703 703
704```typescript theme={null}704```typescript theme={null}
705interface WarmQuery extends AsyncDisposable {705interface WarmQuery extends AsyncDisposable {
709```709```
710 710
711<h4 id="methods-2">711<h4 id="methods-2">
712712 Methods Методы
713</h4>713</h4>
714 714
715| Метод | Описание |715| Метод | Описание |
716716| :-------------- | :--------------------------------------------------------------------------------------------------------------------------------------------- || :-------------- | :------------------------------------------------------------------------------------------------------------------------------------------------------- |
717717| `query(prompt)` | Отправьте запрос к предварительно разогретому подпроцессу и верните [`Query`](#query-object). Может быть вызван только один раз на `WarmQuery` || `query(prompt)` | Отправьте подсказку на предварительно прогретый подпроцесс и верните [`Query`](#query-object). Может быть вызван только один раз для каждого `WarmQuery` |
718718| `close()` | Закройте подпроцесс без отправки запроса. Используйте это для отказа от тёплого запроса, который больше не нужен || `close()` | Закройте подпроцесс без отправки подсказки. Используйте это для отказа от теплого запроса, который больше не нужен |
719 719
720`WarmQuery` реализует `AsyncDisposable`, поэтому его можно использовать с `await using` для автоматической очистки.720`WarmQuery` реализует `AsyncDisposable`, поэтому его можно использовать с `await using` для автоматической очистки.
721 721
723 `SDKControlInitializeResponse`723 `SDKControlInitializeResponse`
724</h3>724</h3>
725 725
726726Тип возврата `initializationResult()`. Содержит данные инициализации сессии.Тип возврата `initializationResult()`. Содержит данные инициализации сеанса.
727 727
728```typescript theme={null}728```typescript theme={null}
729type SDKControlInitializeResponse = {729type SDKControlInitializeResponse = {
739};739};
740```740```
741 741
742742`hooks_applied` сообщает, зарегистрировал ли Claude Code `hooks`, которые несёт запрос `initialize`. SDK отправляет этот запрос один раз при запуске сессии и снова при каждом вызове [`reinitialize()`](#query-object). Поле требует Agent SDK v0.3.238 или позже.`hooks_applied` сообщает, зарегистрировал ли Claude Code `hooks`, которые несла запрос `initialize`. SDK отправляет этот запрос один раз при запуске сеанса и снова при каждом вызове [`reinitialize()`](#query-object). Поле требует Agent SDK v0.3.238 или позже.
743 743
744744Claude Code опускает поле, когда запрос не несёт hooks. Когда запрос несёт hooks, значение зависит от того, является ли запрос первой инициализацией сессии и, для повторного, как он достиг сессии:Claude Code опускает поле, когда запрос не содержал hooks. Когда запрос содержал hooks, значение зависит от того, является ли запрос первой инициализацией сеанса и, для повторного, как он достиг сеанса:
745 745
746746* `true`: Claude Code зарегистрировал hooks. Первая инициализация сессии возвращает это значение. Так же повторная инициализация, отправленная через stdin CLI. В этом случае hooks в новом запросе заменяют hooks, зарегистрированные ранее.* `true`: Claude Code зарегистрировал hooks. Первая инициализация сеанса возвращает это значение. Повторная инициализация, отправленная через stdin CLI, также возвращает `true`. В этом случае hooks в новом запросе заменяют hooks, зарегистрированные ранее.
747747* `false`: Claude Code игнорировал hooks. Повторная инициализация, отправленная удалённой сессии, возвращает это значение, поэтому второй клиент, который присоединяется к сессии, не может заменить hooks, которые зарегистрировал первый клиент.* `false`: Claude Code игнорировал hooks. Повторная инициализация, отправленная на удаленный сеанс, возвращает это значение, поэтому второй клиент, присоединяющийся к сеансу, не может заменить hooks, которые зарегистрировал первый клиент.
748 748
749749До Agent SDK v0.3.238 ответ никогда не нёс поле, и Claude Code игнорировал `hooks` при каждой повторной инициализации.До Agent SDK v0.3.238 ответ никогда не содержал поле, и Claude Code игнорировал `hooks` при каждой повторной инициализации.
750 750
751751Ответ всегда сообщает `fast_mode_state`, и когда что-то блокирует [fast mode](/docs/ru/fast-mode), `fast_mode_disabled_reason` несёт код причины рядом с ним, поэтому вы можете объяснить заблокированное состояние вместо переопределения доступности. Оба поведения требуют Claude Code v2.1.219 или позже. До v2.1.219 ответ опускал `fast_mode_state`, когда fast mode не был доступен, и никогда не нёс причину. Для кодов причин и их значений см. [`fast_mode_disabled_reason`](#sdkresultmessage) на сообщении результата.Ответ всегда сообщает `fast_mode_state`, и когда что-то блокирует [быстрый режим](/docs/ru/fast-mode), `fast_mode_disabled_reason` несет код причины рядом с ним, поэтому вы можете объяснить заблокированное состояние вместо повторного вывода доступности. Оба поведения требуют Claude Code v2.1.219 или позже. До v2.1.219 ответ опускал `fast_mode_state`, когда быстрый режим был недоступен, и никогда не содержал причину. Для кодов причин и их значений см. [`fast_mode_disabled_reason`](#sdkresultmessage) в сообщении результата.
752 752
753753Обёртка control-response для успешного `initialize` также несёт массив `pending_permission_requests`. Поле находится на самой обёртке response, а не в полезной нагрузке `SDKControlInitializeResponse` выше. Каждая запись является полным сообщением `control_request` с той же формой `{ type: "control_request", request_id, request }`, которую сессия потоком передаёт для запросов разрешения во время работы.Оболочка управления-ответа для успешного `initialize` также содержит массив `pending_permission_requests`. Поле находится на самой оболочке ответа, а не в полезной нагрузке `SDKControlInitializeResponse` выше. Каждая запись — это полное сообщение `control_request` с той же формой `{ type: "control_request", request_id, request }`, которую сеанс потоком для запросов разрешений во время работы.
754 754
755755Массив перечисляет запросы разрешения, которые этот процесс Claude Code выдал и ещё не разрешил. SDK читает массив для вас и отправляет каждую запись в ваш обратный вызов [`canUseTool`](#canusetool), то же переотправление, которое [`reinitialize()`](#query-object) запускает после разрыва транспорта. Обрабатывайте повторяющиеся ID запросов идемпотентно, потому что запись может повторить запрос, который обратный вызов уже получил до отключения соединения.Массив перечисляет запросы разрешений, которые этот процесс Claude Code выдал и еще не разрешил. SDK читает массив для вас и отправляет каждую запись на ваш обратный вызов [`canUseTool`](#canusetool), то же переоформление, которое [`reinitialize()`](#query-object) запускает после разрыва транспорта. Обрабатывайте повторяющиеся ID запросов идемпотентно, потому что запись может повторить запрос, который обратный вызов уже получил перед отключением соединения.
756 756
757757Массив всегда присутствует на успешном ответе `initialize` и пуст, когда этот процесс не имеет неразрешённого запроса разрешения. Требует Claude Code v2.1.268 или позже. Более ранние версии могли опустить поле, поэтому если вы анализируете протокол проводов самостоятельно, рассматривайте отсутствующее поле как более старый CLI, а не как доказательство того, что ничего не ожидает.Массив всегда присутствует в успешном ответе `initialize` и пуст, когда этот процесс не имеет неразрешенного запроса разрешения. Требует Claude Code v2.1.268 или позже. Более ранние версии могли опустить поле, поэтому если вы анализируете протокол проводов самостоятельно, рассматривайте отсутствующее поле как более старый CLI, а не как доказательство того, что ничего не ожидается.
758 758
759<h3 id="sdkcontrolinterruptresponse">759<h3 id="sdkcontrolinterruptresponse">
760 `SDKControlInterruptResponse`760 `SDKControlInterruptResponse`
761</h3>761</h3>
762 762
763763Квитанция прерывания: значение, которое [`interrupt()`](#query-object) разрешается с помощью на CLI, который объявляет возможность `interrupt_receipt_v1` в [`SDKSystemMessage.capabilities`](#sdksystemmessage). Требует Claude Code v2.1.205 или позже. Более ранние CLI отвечают на прерывание с пустой полезной нагрузкой успеха, поэтому `interrupt()` разрешается `undefined`.Квитанция прерывания: значение, которое [`interrupt()`](#query-object) разрешает на CLI, который объявляет возможность `interrupt_receipt_v1` в [`SDKSystemMessage.capabilities`](#sdksystemmessage). Требует Claude Code v2.1.205 или позже. Более ранние CLI отвечают на прерывание с пустой полезной нагрузкой успеха, поэтому `interrupt()` разрешается `undefined`.
764 764
765```typescript theme={null}765```typescript theme={null}
766type SDKControlInterruptResponse = {766type SDKControlInterruptResponse = {
769};769};
770```770```
771 771
772772`still_queued` перечисляет UUID пользовательских сообщений, которые были в ожидании, когда прерывание прибыло: сообщения всё ещё в очереди, плюс любые сообщения Claude Code уже взял из очереди для следующего хода. Один раз первый ход сессии начался, Claude Code обрабатывает перечисленные сообщения после прерывания, если вы их не отмените первым, и может объединить несколько в один ход. Если вы прерываете перед запуском первого хода, Claude Code прерывает этот ход, как только он начинается, и перечисленные сообщения в этом ходе не получают ответ.`still_queued` перечисляет UUID пользовательских сообщений, которые были в ожидании при поступлении прерывания: сообщения все еще в очереди, плюс любые сообщения, которые Claude Code уже вынул из очереди для следующего хода. После того как первый ход сеанса начался, Claude Code обрабатывает перечисленные сообщения после прерывания, если вы их не отмените первыми, и может объединить несколько в один ход. Если вы прерываете перед началом первого хода, Claude Code прерывает этот ход, как только он начинается, и перечисленные сообщения в этом ходе не получают ответ.
773 773
774774Используйте квитанцию, чтобы решить, нужно ли что-то переотправлять. Перечисленное сообщение, которое вы не отмените, входит в диалог, получает ли оно ответ или нет, поэтому переотправка его доставляет его Claude дважды.Используйте квитанцию, чтобы решить, нужно ли что-то переотправлять. Перечисленное сообщение, которое вы не отмените, входит в разговор независимо от того, получит ли оно ответ, поэтому переотправка его доставляет его Claude дважды.
775 775
776Интерпретируйте список с этими предостережениями:776Интерпретируйте список с этими предостережениями:
777 777
778778* Только сообщения, которые были поставлены в очередь с UUID, появляются. Пустой массив не означает, что ничего больше не будет работать.* Появляются только сообщения, которые были поставлены в очередь с UUID. Пустой массив не означает, что ничего больше не будет работать.
779779* Только сообщения основного потока указаны. Сообщения, адресованные подагенту, выходят за рамки.* Перечислены только сообщения основного потока. Сообщения, адресованные подагенту, выходят за рамки.
780780* Список может включать UUID, которые ваш клиент никогда не отправлял, такие как триггеры [scheduled task](/docs/ru/scheduled-tasks). Игнорируйте UUID, которые вы не узнаёте, вместо того чтобы рассматривать их как ошибку.* Список может включать UUID, которые ваш клиент никогда не отправлял, такие как триггеры [запланированной задачи](/docs/ru/scheduled-tasks). Игнорируйте UUID, которые вы не узнаете, вместо того чтобы рассматривать их как ошибку.
781 781
782782Клиент, который управляет протоколом управления CLI напрямую, а не через `interrupt()`, может установить `cancel_queued: true` на запрос управления `interrupt`. Claude Code v2.1.219 и позже объявляет поддержку с возможностью `interrupt_cancel_queued_v1` в [`SDKSystemMessage.capabilities`](#sdksystemmessage); более ранние CLI игнорируют поле и оставляют поставленные в очередь сообщения работать как обычно. Такое прерывание также отменяет каждое сообщение, которое иначе было бы указано под `still_queued`: квитанция перечисляет их под `cancelled` вместо этого, `still_queued` пуст, и ни один из них не работает.Клиент, который управляет протоколом управления CLI напрямую, а не через `interrupt()`, может установить `cancel_queued: true` на запрос управления `interrupt`. Claude Code v2.1.219 и позже объявляет поддержку с возможностью `interrupt_cancel_queued_v1` в [`SDKSystemMessage.capabilities`](#sdksystemmessage); более старые CLI игнорируют поле и оставляют сообщения в очереди для обычного запуска. Такое прерывание также отменяет каждое сообщение, которое иначе было бы перечислено в `still_queued`: квитанция перечисляет их в `cancelled` вместо этого, `still_queued` пуст, и ни один из них не запускается.
783 783
784784Список `cancelled` несёт те же предостережения, что и `still_queued`. Метод `interrupt()` никогда не отправляет `cancel_queued`, поэтому квитанции, которые он разрешает, не несут `cancelled`.Список `cancelled` содержит те же предостережения, что и `still_queued`. Метод `interrupt()` никогда не отправляет `cancel_queued`, поэтому квитанции, которые он разрешает, не содержат `cancelled`.
785 785
786786Квитанция — это снимок, сделанный в момент обработки прерывания, и при чистом прерывании она прибывает до [`SDKResultMessage`](#sdkresultmessage) прерванного хода. Прочитайте квитанцию, а не проверяйте очередь после этого результата: цикл немедленно запускает следующий поставленный в очередь ход, поэтому очередь, которую вы проверяете после результата, уже изменилась.Квитанция — это снимок, сделанный в момент обработки прерывания, и при чистом прерывании она прибывает перед [`SDKResultMessage`](#sdkresultmessage) прерванного хода. Читайте квитанцию, а не проверяйте очередь после этого результата: цикл немедленно запускает следующий ход в очереди, поэтому очередь, которую вы проверяете после результата, уже изменилась.
787 787
788<h3 id="sdkcontrolgetcontextusageresponse">788<h3 id="sdkcontrolgetcontextusageresponse">
789 `SDKControlGetContextUsageResponse`789 `SDKControlGetContextUsageResponse`
790</h3>790</h3>
791 791
792792Тип возврата [`getContextUsage()`](#query-object). С опцией `detail` по умолчанию, это та же полезная нагрузка, которую Claude Code отображает для команды `/context` в интерактивной сессии, поэтому рядом с подсчётом токенов она несёт поля отображения, такие как `color` и `gridRows`, которые Claude Code использует для рисования сетки использования `/context`.Тип возврата [`getContextUsage()`](#query-object). С параметром по умолчанию `detail`, это та же полезная нагрузка, которую Claude Code отображает для команды `/context` в интерактивном сеансе, поэтому наряду с подсчетом токенов она содержит поля отображения, такие как `color` и `gridRows`, которые Claude Code использует для рисования сетки использования `/context`.
793 793
794794Аргумент `detail` метода выбирает, как Claude Code подсчитывает каждую категорию. С опцией по умолчанию, `'full'`, Claude Code подсчитывает каждую категорию с запросами API подсчёта токенов. Передайте `{ detail: 'summary' }` для получения ответа из использования последнего ответа и локальных оценок вместо этого. Никакие запросы подсчёта токенов не выходят, и числа для каждой категории приблизительны. Аргумент `detail` требует Agent SDK v0.3.257 или позже.Аргумент `detail` метода выбирает, как Claude Code подсчитывает каждую категорию. С параметром по умолчанию `'full'`, Claude Code подсчитывает каждую категорию с запросами API подсчета токенов. Передайте `{ detail: 'summary' }` для получения ответа из использования последнего ответа и локальных оценок вместо этого. Никакие запросы подсчета токенов не выходят, и числа для каждой категории приблизительны. Аргумент `detail` требует Agent SDK v0.3.257 или позже.
795 795
796796Когда вы отправляете `/context` как запрос вместо вызова метода, Claude Code прикрепляет полезную нагрузку [`SDKContextUsage`](#sdkcontextusage) к полю `context_usage` сообщения ассистента, которое доставляет результат. Это поле требует Agent SDK v0.3.232 или позже.Когда вы отправляете `/context` как подсказку вместо вызова метода, Claude Code прикрепляет полезную нагрузку [`SDKContextUsage`](#sdkcontextusage) к полю `context_usage` сообщения помощника, которое доставляет результат. Это поле требует Agent SDK v0.3.232 или позже.
797 797
798```typescript theme={null}798```typescript theme={null}
799type SDKControlGetContextUsageResponse = {799type SDKControlGetContextUsageResponse = {
892Читайте атрибуцию токенов из полей коллекции:892Читайте атрибуцию токенов из полей коллекции:
893 893
894* `categories` содержит итоги для каждой категории.894* `categories` содержит итоги для каждой категории.
895895* `mcpTools` и `agents` атрибутируют токены отдельным MCP инструментам и подагентам.* `mcpTools` и `agents` атрибутируют токены отдельным инструментам MCP и подагентам.
896* `memoryFiles` перечисляет каждый загруженный файл памяти с его стоимостью.896* `memoryFiles` перечисляет каждый загруженный файл памяти с его стоимостью.
897897* `skills.skillFrontmatter` атрибутирует токены listing skills каждому включённому skill. Подсчёты для каждого skill измеряют запись listing каждого skill, как Claude Code фактически её отправляет, что может быть короче, чем полный frontmatter skill. Сравните `skills.totalSkills` с `skills.includedSkills`, чтобы увидеть, попал ли каждый обнаруженный skill в listing.* `skills.skillFrontmatter` атрибутирует токены списка навыков каждому включенному навыку. Подсчеты для каждого навыка измеряют запись каждого навыка, как Claude Code фактически отправляет ее, что может быть короче полного frontmatter навыка. Сравните `skills.totalSkills` с `skills.includedSkills`, чтобы увидеть, попал ли каждый обнаруженный навык в список.
898 898
899899`totalTokens` это текущее использование контекста сессии, и `maxTokens` это окно, против которого измеряется использование. Это окно это контекстное окно модели или более низкое окно auto-compaction, когда оно применяется. `rawMaxTokens` несёт то же значение, что и `maxTokens`, и `percentage` это `totalTokens` как округлённый процент этого окна.`totalTokens` — это текущее использование контекста сеанса, а `maxTokens` — это окно, против которого измеряется использование. Это окно — контекстное окно модели или более низкое окно автокомпактирования, когда оно применяется. `rawMaxTokens` содержит то же значение, что и `maxTokens`, и `percentage` — это `totalTokens` как округленный процент этого окна.
900 900
901901Claude Code оставляет опциональные диагностики `deferredBuiltinTools`, `systemTools` и `systemPromptSections` неустановленными, поэтому ожидайте их отсутствия, даже хотя тип их объявляет.Claude Code оставляет дополнительные диагностики `deferredBuiltinTools`, `systemTools` и `systemPromptSections` неустановленными, поэтому ожидайте их отсутствия, даже если тип их объявляет.
902 902
903<h3 id="sdkcontrolreadfileresponse">903<h3 id="sdkcontrolreadfileresponse">
904 `SDKControlReadFileResponse`904 `SDKControlReadFileResponse`
915};915};
916```916```
917 917
918918`contents` содержит текст файла или данные base64, когда вы запросили `encoding: 'base64'`; поле `encoding` ответа установлено на `'base64'` в этом случае. `absPath` это разрешённый абсолютный путь. `truncated` установлено, когда файл был длиннее лимита `maxBytes` и содержимое было обрезано на этом лимите.`contents` содержит текст файла или данные base64, когда вы запросили `encoding: 'base64'`; поле `encoding` ответа установлено на `'base64'` в этом случае. `absPath` — это разрешенный абсолютный путь. `truncated` установлено, когда файл был длиннее ограничения `maxBytes` и содержимое было обрезано на этом пределе.
919 919
920<h4 id="what-readfile-can-read">920<h4 id="what-readfile-can-read">
921921 What `readFile()` can read Что `readFile()` может читать
922</h4>922</h4>
923 923
924924`readFile()` служит более узким набором файлов, чем инструмент Read:`readFile()` обслуживает более узкий набор файлов, чем инструмент Read:
925 925
926926* Обычный файл внутри одной из рабочих директорий сессии, такой как `cwd` и `additionalDirectories`* Обычный файл внутри одного из рабочих каталогов сеанса, таких как `cwd` и `additionalDirectories`
927927* Несколько собственных файлов Claude Code для сессии, такие как результаты инструментов* Несколько собственных файлов Claude Code для сеанса, таких как результаты инструментов
928 928
929929Правила отклонения и запроса Read всё ещё блокируют совпадающий путь, и широкое правило разрешения Read не открывает остаток файловой системы для `readFile()`. Для чего-либо ещё вызов разрешается с `null`.Правила отказа и запроса `Read` по-прежнему блокируют соответствующий путь, и широкое правило разрешения `Read` не открывает остальную часть файловой системы для `readFile()`. Для всего остального вызов разрешается с `null`.
930 930
931<h3 id="sdkcontrolreloadskillsresponse">931<h3 id="sdkcontrolreloadskillsresponse">
932 `SDKControlReloadSkillsResponse`932 `SDKControlReloadSkillsResponse`
940};940};
941```941```
942 942
943943`skills` перечисляет skills, доступные после перезагрузки, в той же форме [`SlashCommand`](#slashcommand), которую возвращает `supportedCommands()`.`skills` перечисляет доступные навыки после перезагрузки в той же форме [`SlashCommand`](#slashcommand), которую возвращает `supportedCommands()`.
944 944
945<h3 id="agentdefinition">945<h3 id="agentdefinition">
946 `AgentDefinition`946 `AgentDefinition`
947</h3>947</h3>
948 948
949949Конфигурация для подагента, определённого программно.Конфигурация для подагента, определенного программно.
950 950
951```typescript theme={null}951```typescript theme={null}
952type AgentDefinition = {952type AgentDefinition = {
968};968};
969```969```
970 970
971971| Поле | Обязательно | Описание || Поле | Требуется | Описание |
972972| :------------------------------------ | :---------- | :----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- || :------------------------------------ | :-------- | :--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
973| `description` | Да | Описание на естественном языке, когда использовать этого агента |973| `description` | Да | Описание на естественном языке, когда использовать этого агента |
974974| `tools` | Нет | Массив разрешённых имён инструментов. Если опущено, наследует каждый [инструмент, доступный подагентам](/docs/ru/sub-agents#available-tools). Для предварительной загрузки Skills в контекст агента используйте поле `skills` вместо указания `'Skill'` здесь || `tools` | Нет | Массив разрешенных имен инструментов. Если опущено, наследует каждый [инструмент, доступный подагентам](/docs/ru/sub-agents#available-tools). Чтобы предварительно загрузить Skills в контекст агента, используйте поле `skills` вместо перечисления `'Skill'` здесь |
975975| `disallowedTools` | Нет | Массив имён инструментов для явного запрещения для этого агента. Также принимаются паттерны уровня MCP сервера: `mcp__server` или `mcp__server__*` удаляет каждый инструмент с этого сервера, и `mcp__*` удаляет каждый MCP инструмент с любого сервера || `disallowedTools` | Нет | Массив имен инструментов для явного запрета для этого агента. Также принимаются шаблоны уровня MCP сервера: `mcp__server` или `mcp__server__*` удаляет каждый инструмент с этого сервера, и `mcp__*` удаляет каждый инструмент MCP с любого сервера |
976976| `prompt` | Да | Системный запрос агента || `prompt` | Да | Системная подсказка агента |
977977| `model` | Нет | Переопределение модели для этого агента. Принимает псевдоним, такой как `'fable'`, `'opus'`, `'sonnet'`, `'haiku'`, `'inherit'`, или полный ID модели. `'inherit'` использует основную модель. Когда вы опускаете это, Claude Code выбирает модель в [порядке модели подагента](/docs/ru/sub-agents#choose-a-model) || `model` | Нет | Переопределение модели для этого агента. Принимает псевдоним, такой как `'fable'`, `'opus'`, `'sonnet'`, `'haiku'`, `'inherit'`, или полный ID модели. `'inherit'` использует основную модель. Когда вы его опускаете, Claude Code выбирает модель в [порядке модели подагента](/docs/ru/sub-agents#choose-a-model) |
978978| `mcpServers` | Нет | Спецификации MCP серверов для этого агента || `mcpServers` | Нет | Спецификации MCP сервера для этого агента |
979979| `skills` | Нет | Массив имён skills для предварительной загрузки в контекст агента || `skills` | Нет | Массив имен навыков для предварительной загрузки в контекст агента |
980980| `initialPrompt` | Нет | Автоматически отправляется как первый пользовательский ход, когда этот агент работает как агент основного потока || `initialPrompt` | Нет | Автоматически отправляется как первый ход пользователя, когда этот агент работает как агент основного потока |
981981| `maxTurns` | Нет | Максимальное количество агентских ходов (раунды API) перед остановкой || `maxTurns` | Нет | Максимальное количество агентивных ходов (раунды API) перед остановкой |
982982| `background` | Нет | Запустите этого агента как неблокирующую фоновую задачу при вызове || `background` | Нет | Запустить этого агента как неблокирующую фоновую задачу при вызове |
983983| `omitClaudeMd` | Нет | Запустите этого агента без пользовательских, проектных и локальных файлов CLAUDE.md, когда он работает как подагент; управляемые файлы политики всё ещё загружаются. Используйте это для агентов, которые берут всё, что им нужно, из запроса инструмента Agent. Игнорируется, когда этот агент работает как агент основного потока. Требует TypeScript Agent SDK v0.3.271 или позже || `omitClaudeMd` | Нет | Запустить этого агента без файлов CLAUDE.md пользователя, проекта и локальных файлов, когда он работает как подагент; управляемые файлы политики по-прежнему загружаются. Используйте его для агентов, которые берут все необходимое из подсказки инструмента Agent. Игнорируется, когда этот агент работает как агент основного потока. Требует TypeScript Agent SDK v0.3.271 или позже |
984| `memory` | Нет | Источник памяти для этого агента: `'user'`, `'project'` или `'local'` |984| `memory` | Нет | Источник памяти для этого агента: `'user'`, `'project'` или `'local'` |
985985| `effort` | Нет | Уровень усилий рассуждения для этого агента. Принимает именованный уровень или целое число || `effort` | Нет | Уровень усилий рассуждения для этого агента. Принимает названный уровень или целое число |
986986| `permissionMode` | Нет | Режим разрешения для выполнения инструмента в этом агенте. [Правила наследования подагента](/docs/ru/agent-sdk/permissions#available-modes) решают, когда оно применяется. См. [`PermissionMode`](#permissionmode) || `permissionMode` | Нет | Режим разрешений для выполнения инструментов в этом агенте. [Правила наследования подагента](/docs/ru/agent-sdk/permissions#available-modes) решают, когда он применяется. См. [`PermissionMode`](#permissionmode) |
987987| `criticalSystemReminder_EXPERIMENTAL` | Нет | Экспериментально: Критическое напоминание, добавленное в системный запрос || `criticalSystemReminder_EXPERIMENTAL` | Нет | Экспериментальный: Критическое напоминание, добавленное в системную подсказку |
988 988
989<h3 id="agentmcpserverspec">989<h3 id="agentmcpserverspec">
990 `AgentMcpServerSpec`990 `AgentMcpServerSpec`
991</h3>991</h3>
992 992
993993Указывает MCP серверы, доступные подагенту. Может быть именем сервера (строка, ссылающаяся на сервер из конфигурации `mcpServers` родителя) или встроенной конфигурацией сервера, записью, отображающей имена серверов на конфигурации.Указывает MCP серверы, доступные подагенту. Может быть именем сервера (строка, ссылающаяся на сервер из конфигурации `mcpServers` родителя) или встроенной записью конфигурации сервера, сопоставляющей имена серверов с конфигурациями.
994 994
995```typescript theme={null}995```typescript theme={null}
996type AgentMcpServerSpec = string | Record<string, McpServerConfigForProcessTransport>;996type AgentMcpServerSpec = string | Record<string, McpServerConfigForProcessTransport>;
997```997```
998 998
999999Где `McpServerConfigForProcessTransport` это `McpStdioServerConfig | McpSSEServerConfig | McpHttpServerConfig | McpSdkServerConfig`.Где `McpServerConfigForProcessTransport` — это `McpStdioServerConfig | McpSSEServerConfig | McpHttpServerConfig | McpSdkServerConfig`.
1000 1000
1001<h3 id="settingsource">1001<h3 id="settingsource">
1002 `SettingSource`1002 `SettingSource`
1003</h3>1003</h3>
1004 1004
10051005Контролирует, какие источники конфигурации на основе файловой системы SDK загружает настройки из.Контролирует, какие источники конфигурации на основе файловой системы SDK загружает параметры из.
1006 1006
1007```typescript theme={null}1007```typescript theme={null}
1008type SettingSource = "user" | "project" | "local";1008type SettingSource = "user" | "project" | "local";
1010 1010
1011| Значение | Описание | Местоположение |1011| Значение | Описание | Местоположение |
1012| :---------- | :---------------------------------------------------------------------------------- | :---------------------------- |1012| :---------- | :---------------------------------------------------------------------------------- | :---------------------------- |
10131013| `'user'` | Глобальные пользовательские настройки | `~/.claude/settings.json` || `'user'` | Глобальные параметры пользователя | `~/.claude/settings.json` |
10141014| `'project'` | Общие настройки проекта (контролируемые версией) | `.claude/settings.json` || `'project'` | Общие параметры проекта (контролируемые версией) | `.claude/settings.json` |
10151015| `'local'` | Локальные настройки проекта, gitignored когда Claude Code сохраняет настройку в неё | `.claude/settings.local.json` || `'local'` | Локальные параметры проекта, gitignored когда Claude Code сохраняет параметр в него | `.claude/settings.local.json` |
1016 1016
1017<h4 id="default-behavior">1017<h4 id="default-behavior">
10181018 Default behavior Поведение по умолчанию
1019</h4>1019</h4>
1020 1020
10211021Когда `settingSources` опущено или `undefined`, `query()` загружает те же настройки файловой системы, что и CLI Claude Code: пользовательские, проектные и локальные. См. [What settingSources does not control](/docs/ru/agent-sdk/claude-code-features#what-settingsources-does-not-control) для входных данных, которые читаются независимо от этой опции, и как их отключить.Когда `settingSources` опущен или `undefined`, `query()` загружает те же параметры файловой системы, что и CLI Claude Code: пользователя, проекта и локальные. См. [Что settingSources не контролирует](/docs/ru/agent-sdk/claude-code-features#what-settingsources-does-not-control) для входов, которые читаются независимо от этого параметра, и как их отключить.
1022 1022
1023<h4 id="why-use-settingsources">1023<h4 id="why-use-settingsources">
10241024 Why use settingSources Почему использовать settingSources
1025</h4>1025</h4>
1026 1026
10271027**Отключите настройки файловой системы:****Отключить параметры файловой системы:**
1028 1028
1029```typescript theme={null}1029```typescript theme={null}
1030import { query } from "@anthropic-ai/claude-agent-sdk";1030import { query } from "@anthropic-ai/claude-agent-sdk";
1031 1031
10321032// Не загружайте пользовательские, проектные или локальные настройки с диска// Do not load user, project, or local settings from disk
1033const result = query({1033const result = query({
1034 prompt: "Analyze this code",1034 prompt: "Analyze this code",
1035 options: { settingSources: [] }1035 options: { settingSources: [] }
1036});1036});
1037```1037```
1038 1038
10391039**Загружайте только определённые источники настроек:****Загрузить только определенные источники параметров:**
1040 1040
1041```typescript theme={null}1041```typescript theme={null}
1042import { query } from "@anthropic-ai/claude-agent-sdk";1042import { query } from "@anthropic-ai/claude-agent-sdk";
1043 1043
10441044// Загружайте только настройки проекта, игнорируйте пользовательские и локальные// Load only project settings, ignore user and local
1045const result = query({1045const result = query({
1046 prompt: "Run CI checks",1046 prompt: "Run CI checks",
1047 options: {1047 options: {
10481048 settingSources: ["project"] // Только .claude/settings.json settingSources: ["project"] // Only .claude/settings.json
1049 }1049 }
1050});1050});
1051```1051```
1052 1052
10531053Для загрузки инструкций проекта CLAUDE.md включите `"project"` в `settingSources`. См. [Modify system prompts](/docs/ru/agent-sdk/modifying-system-prompts#claude-md-files-for-project-level-instructions) для того, как загрузка CLAUDE.md взаимодействует с опциями системного запроса.Чтобы загрузить инструкции проекта CLAUDE.md, включите `"project"` в `settingSources`. См. [Изменить системные подсказки](/docs/ru/agent-sdk/modifying-system-prompts#claude-md-files-for-project-level-instructions) для того, как загрузка CLAUDE.md взаимодействует с параметрами системной подсказки.
1054 1054
1055<h4 id="settings-precedence">1055<h4 id="settings-precedence">
10561056 Settings precedence Приоритет параметров
1057</h4>1057</h4>
1058 1058
10591059Когда загружаются несколько источников, настройки объединяются с этим приоритетом (от высшего к низшему):Когда загружаются несколько источников, параметры объединяются с этим приоритетом (от наивысшего к наименьшему):
1060 1060
106110611. Локальные настройки (`.claude/settings.local.json`)1. Локальные параметры (`.claude/settings.local.json`)
106210622. Настройки проекта (`.claude/settings.json`)2. Параметры проекта (`.claude/settings.json`)
106310633. Пользовательские настройки (`~/.claude/settings.json`)3. Параметры пользователя (`~/.claude/settings.json`)
1064 1064
10651065Программные опции, такие как `agents`, `allowedTools` и `settings`, переопределяют пользовательские, проектные и локальные настройки файловой системы. Управляемые политикой настройки имеют приоритет над программными опциями.Программные параметры, такие как `agents`, `allowedTools` и `settings`, переопределяют параметры файловой системы пользователя, проекта и локальные. Параметры управляемой политики имеют приоритет над программными параметрами.
1066 1066
1067<h3 id="permissionmode">1067<h3 id="permissionmode">
1068 `PermissionMode`1068 `PermissionMode`
1070 1070
1071```typescript theme={null}1071```typescript theme={null}
1072type PermissionMode =1072type PermissionMode =
10731073 | "default" // Стандартное поведение разрешения | "default" // Standard permission behavior
10741074 | "acceptEdits" // Автоматически принимайте редактирования файлов | "acceptEdits" // Auto-accept file edits
10751075 | "bypassPermissions" // Обойдите проверки разрешения; явные правила запроса всё ещё запрашивают | "bypassPermissions" // Bypass permission checks; explicit ask rules still prompt
10761076 | "plan" // Plan Mode - исследуйте без редактирования | "plan" // Planning mode - explore without editing
10771077 | "dontAsk" // Не запрашивайте разрешения, отклоняйте, если не предварительно одобрено | "dontAsk" // Don't prompt for permissions, deny if not pre-approved
10781078 | "auto"; // Классификатор модели одобряет или отклоняет запросы разрешения | "auto"; // Model classifier approves or denies permission prompts
1079```1079```
1080 1080
1081<h3 id="canusetool">1081<h3 id="canusetool">
1082 `CanUseTool`1082 `CanUseTool`
1083</h3>1083</h3>
1084 1084
10851085Тип пользовательской функции разрешения для контроля использования инструмента.Тип пользовательской функции разрешений для управления использованием инструментов.
1086 1086
10871087Функция является заменой SDK для интерактивного запроса разрешения: она вызывается только когда [поток оценки разрешения](/docs/ru/agent-sdk/permissions#how-permissions-are-evaluated) разрешается в запрос. Вызовы инструментов, уже одобренные записью `allowedTools`, правилом настроек разрешения или режимом разрешения, такие как `acceptEdits` или `bypassPermissions`, никогда её не вызывают. Чтобы контролировать каждый вызов инструмента, используйте вместо этого [hook `PreToolUse`](/docs/ru/agent-sdk/hooks).Функция — это замена SDK для интерактивного запроса разрешений: она вызывается только когда [поток оценки разрешений](/docs/ru/agent-sdk/permissions#how-permissions-are-evaluated) разрешается в запрос. Вызовы инструментов, уже одобренные записью `allowedTools`, правилом разрешения параметров или режимом разрешений, таким как `acceptEdits` или `bypassPermissions`, никогда не вызывают его. Чтобы контролировать каждый вызов инструмента, используйте hook [`PreToolUse`](/docs/ru/agent-sdk/hooks) вместо этого.
1088 1088
10891089Правило разрешения не предварительно одобряет [действия, которые ни один режим не одобряет автоматически](/docs/ru/permission-modes#actions-no-mode-auto-approves); см. [How permissions are evaluated](/docs/ru/agent-sdk/permissions#how-permissions-are-evaluated) для того, какие из них достигают обратного вызова и что происходит в режиме `dontAsk` и `auto`.Правило разрешения не предварительно одобряет [действия, которые ни один режим не одобряет автоматически](/docs/ru/permission-modes#actions-no-mode-auto-approves); см. [Как оцениваются разрешения](/docs/ru/agent-sdk/permissions#how-permissions-are-evaluated) для того, какие из них достигают обратного вызова и что происходит в режиме `dontAsk` и `auto`.
1090 1090
1091```typescript theme={null}1091```typescript theme={null}
1092type CanUseTool = (1092type CanUseTool = (
1096 signal: AbortSignal;1096 signal: AbortSignal;
1097 suggestions?: PermissionUpdate[];1097 suggestions?: PermissionUpdate[];
1098 blockedPath?: string;1098 blockedPath?: string;
1099 mcpServer?: { name: string; source: string };
1099 decisionReason?: string;1100 decisionReason?: string;
1100 toolUseID: string;1101 toolUseID: string;
1101 agentID?: string;1102 agentID?: string;
1104) => Promise<PermissionResult | null>;1105) => Promise<PermissionResult | null>;
1105```1106```
1106 1107
11071108| Опция | Тип | Описание || Параметр | Тип | Описание |
11081109| :--------------- | :------------------------------------------ | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- || :--------------- | :------------------------------------------ | :--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
11091110| `signal` | `AbortSignal` | Сигнализируется, если операция должна быть отменена || `signal` | `AbortSignal` | Сигнализируется, если операция должна быть прервана |
11101111| `suggestions` | [`PermissionUpdate`](#permissionupdate)`[]` | Предложенные обновления разрешения, чтобы пользователь не был запрошен снова для этого инструмента. Запросы Bash включают предложение с назначением `localSettings` [destination](#permissionupdatedestination), поэтому возврат его в `updatedPermissions` записывает правило в `.claude/settings.local.json` и сохраняется между сессиями. || `suggestions` | [`PermissionUpdate`](#permissionupdate)`[]` | Предложенные обновления разрешений, чтобы пользователь не был запрошен снова для этого инструмента. Подсказки Bash включают предложение с назначением `localSettings` [destination](#permissionupdatedestination), поэтому возврат его в `updatedPermissions` записывает правило в `.claude/settings.local.json` и сохраняется между сеансами. |
1111| `blockedPath` | `string` | Путь файла, который вызвал запрос разрешения, если применимо |1112| `blockedPath` | `string` | Путь файла, который вызвал запрос разрешения, если применимо |
1113| `mcpServer` | `{ name: string; source: string }` | Для инструмента `mcp__*`, MCP сервер, который его обслуживает, и откуда определение этого сервера пришло, с полями [`McpServerProvenance`](#mcpserverprovenance). Отсутствует для других инструментов. Требует Agent SDK v0.3.274 или позже |
1112| `decisionReason` | `string` | Объясняет, почему был вызван этот запрос разрешения |1114| `decisionReason` | `string` | Объясняет, почему был вызван этот запрос разрешения |
11131115| `toolUseID` | `string` | Уникальный идентификатор для этого конкретного вызова инструмента в сообщении ассистента || `toolUseID` | `string` | Уникальный идентификатор для этого конкретного вызова инструмента в сообщении помощника |
1114| `agentID` | `string` | Если работает в подагенте, ID подагента |1116| `agentID` | `string` | Если работает в подагенте, ID подагента |
11151117| `requestId` | `string` | `request_id` обёртки `control_request`. `control_response`, которую ваше приложение отправляет вне SDK, такую как подписанный HTTP POST, должна повторить это значение, чтобы процесс Claude Code мог сопоставить ответ с запросом || `requestId` | `string` | `request_id` оболочки `control_request`. `control_response`, которую ваше приложение отправляет вне SDK, такую как подписанный HTTP POST, должна повторить это значение, чтобы процесс Claude Code мог сопоставить ответ с запросом |
1116 1118
11171119Обратный вызов обычно разрешает запрос, возвращая [`PermissionResult`](#permissionresult), который SDK записывает обратно через свой транспорт как `control_response`. Возвращайте `null` только когда ваше приложение уже отправило `control_response` для этого запроса через свой собственный канал, повторив `requestId`; SDK затем пропускает запись ответа в свой транспорт. Возврат `null` в любом другом случае оставляет вызов инструмента заблокированным бесконечно, потому что `control_response` никогда не отправляется и запросы разрешения не имеют timeout.Обратный вызов обычно разрешает запрос, возвращая [`PermissionResult`](#permissionresult), который SDK записывает обратно через свой транспорт как `control_response`. Возвращайте `null` только когда ваше приложение уже отправило `control_response` для этого запроса через свой собственный канал, повторив `requestId`; SDK затем пропускает запись ответа на свой транспорт. Возврат `null` в любом другом случае оставляет вызов инструмента заблокированным неопределенно, потому что `control_response` никогда не отправляется и запросы разрешений не имеют тайм-аута.
1118 1120
11191121Опция `requestId` и возвращаемое значение `null` требуют Claude Code v2.1.199 или позже.Параметр `requestId` и возвращаемое значение `null` требуют Claude Code v2.1.199 или позже.
1120 1122
1121<h3 id="permissionresult">1123<h3 id="permissionresult">
1122 `PermissionResult`1124 `PermissionResult`
1144 `ToolConfig`1146 `ToolConfig`
1145</h3>1147</h3>
1146 1148
11471149Конфигурация для встроенного поведения инструмента.Конфигурация для поведения встроенного инструмента.
1148 1150
1149```typescript theme={null}1151```typescript theme={null}
1150type ToolConfig = {1152type ToolConfig = {
1155```1157```
1156 1158
1157| Поле | Тип | Описание |1159| Поле | Тип | Описание |
11581160| :------------------------------ | :--------------------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- || :------------------------------ | :--------------------- | :----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
11591161| `askUserQuestion.previewFormat` | `'markdown' \| 'html'` | Выбирает поле `preview` на опциях [`AskUserQuestion`](/docs/ru/agent-sdk/user-input#question-format) и устанавливает его формат содержимого. Когда не установлено, Claude не выдаёт предпросмотры || `askUserQuestion.previewFormat` | `'markdown' \| 'html'` | Включает поле `preview` на параметрах [`AskUserQuestion`](/docs/ru/agent-sdk/user-input#question-format) и устанавливает его формат содержимого. Когда не установлено, Claude не выдает предпросмотры |
1160 1162
1161<h3 id="mcpserverconfig">1163<h3 id="mcpserverconfig">
1162 `McpServerConfig`1164 `McpServerConfig`
1238 `SdkPluginConfig`1240 `SdkPluginConfig`
1239</h3>1241</h3>
1240 1242
12411243Конфигурация для загрузки plugins в SDK.Конфигурация для загрузки плагинов в SDK.
1242 1244
1243```typescript theme={null}1245```typescript theme={null}
1244type SdkPluginConfig = {1246type SdkPluginConfig = {
1249```1251```
1250 1252
1251| Поле | Тип | Описание |1253| Поле | Тип | Описание |
12521254| :----------------- | :-------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ || :----------------- | :-------- | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
12531255| `type` | `'local'` | Должно быть `'local'` (в настоящее время поддерживаются только локальные plugins) || `type` | `'local'` | Должно быть `'local'` (в настоящее время поддерживаются только локальные плагины) |
12541256| `path` | `string` | Абсолютный или относительный путь к директории plugin || `path` | `string` | Абсолютный или относительный путь к каталогу плагина |
12551257| `skipMcpDiscovery` | `boolean` | Когда `true`, SDK загружает skills, hooks, agents и commands из этого plugin, но не читает его `.mcp.json` или manifest `mcpServers`. Установите это, когда ваше приложение владеет подключениями MCP plugin. || `skipMcpDiscovery` | `boolean` | Когда `true`, SDK загружает навыки, hooks, агентов и команды из этого плагина, но не читает его `.mcp.json` или манифест `mcpServers`. Установите это, когда ваше приложение владеет подключениями MCP плагина. |
1256 1258
1257**Пример:**1259**Пример:**
1258 1260
1263];1265];
1264```1266```
1265 1267
12661268Для полной информации о создании и использовании plugins см. [Plugins](/docs/ru/agent-sdk/plugins).Для полной информации о создании и использовании плагинов см. [Плагины](/docs/ru/agent-sdk/plugins).
1267 1269
1268<h2 id="message-types">1270<h2 id="message-types">
1269 Типы сообщений1271 Типы сообщений
1326 type: "assistant";1328 type: "assistant";
1327 uuid: UUID;1329 uuid: UUID;
1328 session_id: string;1330 session_id: string;
13291331 message: BetaMessage; // Из Anthropic SDK message: BetaMessage; // From Anthropic SDK
1330 parent_tool_use_id: string | null;1332 parent_tool_use_id: string | null;
1331 error?: SDKAssistantMessageError;1333 error?: SDKAssistantMessageError;
1332 aborted?: true;1334 aborted?: true;
1337};1339};
1338```1340```
1339 1341
13401342Поле `message` это [`BetaMessage`](https://platform.claude.com/docs/ru/api/messages/create) из Anthropic SDK. Оно включает поля, такие как `id`, `content`, `model`, `stop_reason` и `usage`.Поле `message` — это [`BetaMessage`](https://platform.claude.com/docs/en/api/messages/create) из Anthropic SDK. Оно включает поля, такие как `id`, `content`, `model`, `stop_reason` и `usage`.
1341 1343
13421344`SDKAssistantMessageError` это один из: `'authentication_failed'`, `'oauth_org_not_allowed'`, `'account_on_hold'`, `'billing_error'`, `'rate_limit'`, `'overloaded'`, `'invalid_request'`, `'model_not_found'`, `'server_error'`, `'max_output_tokens'`, `'cloud_credential_error'` или `'unknown'`. Четыре из этих значений означают больше, чем говорят их названия:`SDKAssistantMessageError` — это одно из следующих значений: `'authentication_failed'`, `'oauth_org_not_allowed'`, `'account_on_hold'`, `'billing_error'`, `'rate_limit'`, `'overloaded'`, `'invalid_request'`, `'model_not_found'`, `'server_error'`, `'max_output_tokens'`, `'cloud_credential_error'` или `'unknown'`. Четыре из этих значений означают больше, чем говорят их названия:
1343 1345
1344* `'model_not_found'`: выбранная модель не существует или недоступна для вашей учётной записи или развёртывания1346* `'model_not_found'`: выбранная модель не существует или недоступна для вашей учётной записи или развёртывания
1345* `'overloaded'`: API вернул 529, потому что сервер работает на полную мощность, в отличие от `'rate_limit'`, который является 429 в отношении вашей квоты1347* `'overloaded'`: API вернул 529, потому что сервер работает на полную мощность, в отличие от `'rate_limit'`, который является 429 в отношении вашей квоты
1346* `'account_on_hold'`: [ваша учётная запись заморожена](/docs/ru/errors#your-account-is-on-hold)1348* `'account_on_hold'`: [ваша учётная запись заморожена](/docs/ru/errors#your-account-is-on-hold)
13471349* `'cloud_credential_error'`: Claude Code не смог получить пригодные учётные данные AWS или Google Cloud на машине, на которой он работает, поэтому запрос не достиг поставщика облачных услуг. Обычная причина — вход в облако, который истёк или никогда не был завершён на этой машине, хотя кратковременно недоступный сервис учётных данных сообщает то же значение. Смотрите [Не удалось загрузить учётные данные AWS или Google Cloud](/docs/ru/errors#could-not-load-aws-or-google-cloud-credentials). Требует TypeScript Agent SDK v0.3.267 или позже, который включает Claude Code v2.1.267* `'cloud_credential_error'`: Claude Code не смог получить пригодные учётные данные AWS или Google Cloud на машине, на которой он работает, поэтому запрос не достиг поставщика облачных услуг. Обычная причина — истёкший или никогда не завершённый вход в облако на этой машине, хотя временно недоступный сервис учётных данных сообщает то же значение. См. [Could not load AWS or Google Cloud credentials](/docs/ru/errors#could-not-load-aws-or-google-cloud-credentials). Требует TypeScript Agent SDK v0.3.267 или позже, который включает Claude Code v2.1.267
1348 1350
13491351`aborted` имеет значение `true`, когда прерывание или отмена усекли сообщение ассистента перед завершением потока: сообщение не имеет `stop_reason` и содержимое может заканчиваться в середине слова. Поле отсутствует на нормально завершённых сообщениях. Требует Agent SDK v0.3.214 или позже.`aborted` имеет значение `true`, когда прерывание или отмена усекли сообщение ассистента до завершения потока: сообщение не имеет `stop_reason` и содержимое может заканчиваться посередине слова. Это поле отсутствует на нормально завершённых сообщениях. Требует Agent SDK v0.3.214 или позже.
1350 1352
13511353Claude Code устанавливает `user_message_uuid` и `user_message_uuids` на первое сообщение ассистента хода при условиях, описанных в [`user_message_uuid`](#user_message_uuid).Claude Code устанавливает `user_message_uuid` и `user_message_uuids` на первое сообщение ассистента в этом ходу при условиях, описанных в [`user_message_uuid`](#user_message_uuid).
1352 1354
13531355`timestamp` это время ISO 8601, когда содержимое сообщения закончило генерироваться на процессе, который его создал. Значение поступает с часов этой машины, поэтому используйте его только для отображения и не упорядочивайте сообщения по нему. Один ход API может создать несколько сообщений ассистента, которые совместно используют `message.id`, каждое со своим собственным `timestamp`. Когда поле отсутствует, вернитесь к времени получения сообщения.`timestamp` — это время ISO 8601, когда содержимое сообщения закончило генерироваться на процессе, который его создал. Значение поступает с часов этой машины, поэтому используйте его только для отображения и не упорядочивайте сообщения по нему. Один ход API может создать несколько сообщений ассистента, которые имеют одинаковый `message.id`, каждое со своим `timestamp`. Когда это поле отсутствует, используйте время получения сообщения.
1354 1356
13551357`context_usage` это структурированная копия отчёта `/context`, типизированная как [`SDKContextUsage`](#sdkcontextusage), и требует Agent SDK v0.3.232 или позже. Когда вы отправляете `/context` как запрос, Claude Code доставляет отчёт как сообщение ассистента, чьё `message.content` содержит таблицу markdown, и прикрепляет `context_usage` к этому же сообщению. Claude Code не устанавливает поле на любое другое сообщение ассистента, и более ранние версии доставляют таблицу `/context` без него, поэтому читайте разбивку из поля, когда оно присутствует, и вернитесь к тексту markdown, когда его нет.`context_usage` — это структурированная копия отчёта `/context`, типизированная как [`SDKContextUsage`](#sdkcontextusage), и требует Agent SDK v0.3.232 или позже. Когда вы отправляете `/context` как подсказку, Claude Code доставляет отчёт как сообщение ассистента, чьё `message.content` содержит таблицу markdown, и прикрепляет `context_usage` к этому же сообщению. Claude Code не устанавливает это поле ни на каком другом сообщении ассистента, и более ранние версии доставляют таблицу `/context` без него, поэтому читайте разбивку из поля, когда оно присутствует, и используйте текст markdown, когда его нет.
1356 1358
1357<h3 id="sdkusermessage">1359<h3 id="sdkusermessage">
1358 `SDKUserMessage`1360 `SDKUserMessage`
1365 type: "user";1367 type: "user";
1366 uuid?: UUID;1368 uuid?: UUID;
1367 session_id?: string;1369 session_id?: string;
13681370 message: MessageParam; // Из Anthropic SDK message: MessageParam; // From Anthropic SDK
1369 parent_tool_use_id: string | null;1371 parent_tool_use_id: string | null;
1370 isSynthetic?: boolean;1372 isSynthetic?: boolean;
1371 shouldQuery?: boolean;1373 shouldQuery?: boolean;
1374};1376};
1375```1377```
1376 1378
13771379Установите `shouldQuery` на `false` для добавления сообщения в транскрипт без запуска хода ассистента. Сообщение удерживается и объединяется в следующее пользовательское сообщение, которое запускает ход. Используйте это для внедрения контекста, такого как вывод команды, которую вы запустили вне полосы, без траты вызова модели на это.Установите `shouldQuery` в `false`, чтобы добавить сообщение в стенограмму без запуска хода ассистента. Сообщение удерживается и объединяется со следующим пользовательским сообщением, которое запускает ход. Используйте это для внедрения контекста, такого как вывод команды, которую вы запустили вне полосы, без затрат вызова модели на это.
1378 1380
13791381На сообщении, которое содержит блок `tool_result`, `tool_use_result` это объект структурированного вывода инструмента, а не текст, отправленный модели. Его форма зависит от инструмента, названного соответствующим блоком `tool_use`, поэтому поле типизировано как `unknown`; встроенные формы перечислены в разделе [Типы вывода инструментов](#tool-output-types).На сообщении, которое содержит блок `tool_result`, `tool_use_result` — это структурированный объект вывода инструмента, а не текст, отправленный модели. Его форма зависит от инструмента, названного соответствующим блоком `tool_use`, поэтому поле типизировано как `unknown`; встроенные формы перечислены в разделе [Tool Output Types](#tool-output-types).
1380 1382
13811383Для инструмента `Agent`, `tool_use_result` это [`AgentOutput`](#agent-2). На результате `completed`, `content` содержит отчёт подагента без ID агента и трейлера использования, которые Claude Code добавляет к тексту `tool_result`, поэтому отображайте из `tool_use_result` вместо анализа этого текста.Для инструмента `Agent` `tool_use_result` — это [`AgentOutput`](#agent-2). На результате `completed` `content` содержит отчёт подагента без ID агента и трейлера использования, который Claude Code добавляет к тексту `tool_result`, поэтому выполняйте рендеринг из `tool_use_result` вместо анализа этого текста.
1382 1384
13831385Для инструмента MCP, чей результат содержит блоки `resource_link`, `tool_use_result` это объект с массивом `resourceLinks` записей [`SDKMcpResourceLink`](#sdkmcpresourcelink). Claude получает каждую ссылку как строку текста в блоке `tool_result`, поэтому читайте `resourceLinks` для отображения файлов, которые вернул сервер, вместо анализа этого текста. Claude Code опускает `resourceLinks`, когда результат не содержит ссылок и на результатах от подагентов, сохраняет максимум 50 ссылок на результат и прекращает добавление ссылок, когда массив достигает 64 КиБ сериализованного JSON. `resourceLinks` требует Agent SDK v0.3.257 или позже.Для инструмента MCP, чей результат содержит блоки `resource_link`, `tool_use_result` — это объект с массивом `resourceLinks` записей [`SDKMcpResourceLink`](#sdkmcpresourcelink). Claude получает каждую ссылку как строку текста в блоке `tool_result`, поэтому читайте `resourceLinks`, чтобы выполнить рендеринг файлов, которые вернул сервер, вместо анализа этого текста. Claude Code опускает `resourceLinks`, когда результат не содержит ссылок и на результатах от подагентов, сохраняет максимум 50 ссылок на результат и прекращает добавление ссылок, когда массив достигает 64 КиБ сериализованного JSON. `resourceLinks` требует Agent SDK v0.3.257 или позже.
1384 1386
1385<h3 id="sdkusermessagereplay">1387<h3 id="sdkusermessagereplay">
1386 `SDKUserMessageReplay`1388 `SDKUserMessageReplay`
1387</h3>1389</h3>
1388 1390
13891391Повторно воспроизведённое пользовательское сообщение с требуемым UUID.Воспроизведённое пользовательское сообщение с обязательным UUID.
1390 1392
1391```typescript theme={null}1393```typescript theme={null}
1392type SDKUserMessageReplay = {1394type SDKUserMessageReplay = {
1402};1404};
1403```1405```
1404 1406
14051407Пользовательский ход, внедрённый извне сеанса, один, чьё [`origin`](#sdkmessageorigin) имеет вид `peer` или `channel`, достигает потока как повтор, был ли он доставлен во время активного хода или запустил новый ход, пока сеанс был неактивен. До v2.1.207 внедрённый ход, доставленный, пока сеанс был неактивен, не производил никакого сообщения в потоке и появлялся только при повторном чтении транскрипта.Пользовательский ход, внедрённый извне сеанса, один, чей [`origin`](#sdkmessageorigin) имеет вид `peer` или `channel`, поступает в поток как воспроизведение, был ли он доставлен во время активного хода или запустил новый ход, пока сеанс был неактивен. До v2.1.207 внедрённый ход, доставленный, пока сеанс был неактивен, не создавал сообщение в потоке и появлялся только при повторном чтении стенограммы.
1406 1408
1407<h3 id="sdkresultmessage">1409<h3 id="sdkresultmessage">
1408 `SDKResultMessage`1410 `SDKResultMessage`
1465 permission_denials: SDKPermissionDenial[];1467 permission_denials: SDKPermissionDenial[];
1466 queued_turn_count?: number;1468 queued_turn_count?: number;
1467 errors: string[];1469 errors: string[];
1470 startup_failure_reason?: SDKStartupFailureReason;
1468 user_message_uuid?: string;1471 user_message_uuid?: string;
1469 user_message_uuids?: string[];1472 user_message_uuids?: string[];
1470 terminal_reason?: TerminalReason;1473 terminal_reason?: TerminalReason;
1474 };1477 };
1475```1478```
1476 1479
14771480Несколько полей в результате содержат диагностические детали помимо `subtype`:Несколько полей в результате содержат диагностические детали, выходящие за рамки `subtype`:
1478 1481
14791482* `api_error_status`: HTTP код состояния ошибки API, которая завершила диалог. Отсутствует или имеет значение `null`, когда ход завершился без ошибки API.* `api_error_status`: код состояния HTTP ошибки API, которая завершила разговор. Отсутствует или `null`, когда ход завершился без ошибки API.
14801483* `ttft_ms`: время до первого токена в миллисекундах, измеренное при поступлении первого полного сообщения ассистента. Присутствует только на успешной ветви.* `ttft_ms`: время до первого токена в миллисекундах, измеренное при поступлении первого полного сообщения ассистента. Присутствует только на ветви успеха.
14811484* `ttft_stream_ms`: время в миллисекундах до первого события потока `message_start`, когда открывается поток ответа. Ниже, чем `ttft_ms`; разница между ними — это время, потраченное на потоковую передачу первого сообщения. Присутствует только на успешной ветви.* `ttft_stream_ms`: время в миллисекундах до первого события потока `message_start`, когда открывается поток ответов. Ниже, чем `ttft_ms`; разница между ними — это время, потраченное на потоковую передачу первого сообщения. Присутствует только на ветви успеха.
14821485* `user_message_uuid`: `uuid` сообщения, которое вы отправили и на которое этот ход ответил. Смотрите [`user_message_uuid`](#user_message_uuid) для того, какие результаты его содержат.* `user_message_uuid`: `uuid` сообщения, которое вы отправили и на которое этот ход ответил. См. [`user_message_uuid`](#user_message_uuid) для того, какие результаты его содержат.
14831486* `user_message_uuids`: `uuid`s каждого сообщения, которое вы отправили и на которое Claude Code ответил в этом ходе. Смотрите [`user_message_uuids`](#user_message_uuids).* `user_message_uuids`: `uuid`s каждого сообщения, которое вы отправили и на которое Claude Code ответил в этом ходу. См. [`user_message_uuids`](#user_message_uuids).
14841487* `request_sent_wall_ms`: эпоха миллисекунд, в которую Claude Code отправил запрос API, для объединения с серверными временными метками. Присутствует только вместе с [`user_message_uuid`](#user_message_uuid), на успешном результате с `is_error` false, чей ход отправил запрос API.* `request_sent_wall_ms`: миллисекунды эпохи, в которые Claude Code отправил запрос API, для объединения с серверными временными метками. Присутствует только вместе с [`user_message_uuid`](#user_message_uuid), на результате успеха с `is_error` false, чей ход отправил запрос API.
14851488* `first_content_frame_ms`: время в миллисекундах до первого события потока `content_block_start` или `content_block_delta`, считая блоки размышлений как содержимое. Присутствует на успешной ветви только, когда `is_error` false. Требует Agent SDK v0.3.260 или позже.* `first_content_frame_ms`: время в миллисекундах до первого события потока `content_block_start` или `content_block_delta`, считая блоки мышления как содержимое. Присутствует только на ветви успеха, когда `is_error` имеет значение false. Требует Agent SDK v0.3.260 или позже.
1486* `first_stream_post_ms`, `first_stream_post_ack_ms`, `first_stream_post_wall_ms`: сроки загрузки первого события потока хода. Claude Code записывает их только в сеансах, которые он потоком передаёт на claude.ai, такие как [облачные сеансы](/docs/ru/claude-code-on-the-web), и результаты, которые выдаёт `query()`, их не содержат. Требует Agent SDK v0.3.260 или позже.1489* `first_stream_post_ms`, `first_stream_post_ack_ms`, `first_stream_post_wall_ms`: сроки загрузки первого события потока хода. Claude Code записывает их только в сеансах, которые он потоком передаёт на claude.ai, такие как [облачные сеансы](/docs/ru/claude-code-on-the-web), и результаты, которые выдаёт `query()`, их не содержат. Требует Agent SDK v0.3.260 или позже.
14871490* `usage`: только основной цикл агента. Исключает вызовы подагента и вспомогательной модели и является за ход в сеансах потокового ввода. Предпочитайте `modelUsage` для учёта токенов/затрат.* `usage`: только основной цикл агента. Исключает вызовы подагента и вспомогательной модели и является за ход в сеансах с потоковым вводом. Предпочитайте `modelUsage` для учёта токенов/затрат.
14881491* `modelUsage`: итоги по моделям для каждого вызова модели, сделанного через конвейер запросов во время этого вызова `query()`, включая основной цикл, подагентов и внутренние вызовы, такие как компактирование и агенты Workflow. Вспомогательные вызовы вне этого конвейера, такие как классификатор разрешений и запросы подсчёта токенов, исключены. В сеансах потокового ввода итоги кумулятивны по ходам, поэтому читайте последний результат, а не суммируйте по результатам. Смотрите [Отслеживание затрат в режиме потокового ввода](/docs/ru/agent-sdk/cost-tracking#track-costs-in-streaming-input-mode) для сбросов и [Восстановление итогов после сбоя сеанса](/docs/ru/agent-sdk/cost-tracking#recover-totals-after-a-session-crash) для обнулённых результатов.* `modelUsage`: итоги по моделям для каждого вызова модели, сделанного через конвейер запросов во время этого вызова `query()`, включая основной цикл, подагентов и внутренние вызовы, такие как компактирование и агентов Workflow. Вспомогательные вызовы вне этого конвейера, такие как классификатор разрешений и запросы подсчёта токенов, исключены. В сеансах с потоковым вводом итоги накапливаются по ходам, поэтому читайте последний результат, а не суммируйте по результатам. См. [Track costs in streaming input mode](/docs/ru/agent-sdk/cost-tracking#track-costs-in-streaming-input-mode) для сбросов и [Recover totals after a session crash](/docs/ru/agent-sdk/cost-tracking#recover-totals-after-a-session-crash) для обнулённых результатов.
14891492* `total_cost_usd`: кумулятивная предполагаемая стоимость в USD для этого вызова `query()`, охватывающая те же вызовы, что и `modelUsage`, и сбрасываемая в тех же точках. Это оценка, а не выписка по счёту. Смотрите [Отслеживание затрат и использования](/docs/ru/agent-sdk/cost-tracking) для оговорок по точности.* `total_cost_usd`: кумулятивная предполагаемая стоимость в USD для этого вызова `query()`, охватывающая те же вызовы, что и `modelUsage`, и сбрасываемая в тех же точках. Это оценка, а не выписка по счёту. См. [Track cost and usage](/docs/ru/agent-sdk/cost-tracking) для предостережений по точности.
14901493* `queued_turn_count`: количество сообщений, которые вы отправили с `origin: { kind: "human" }`, которые всё ещё ожидают, когда Claude Code создал результат. Смотрите [`queued_turn_count`](#queued_turn_count) для того, что говорят вам `0` и отсутствующее поле.* `queued_turn_count`: количество сообщений, которые вы отправили с `origin: { kind: "human" }`, которые всё ещё ожидают, когда Claude Code создал результат. См. [`queued_turn_count`](#queued_turn_count) для того, что говорят вам `0` и отсутствующее поле.
14911494* `terminal_reason`: почему цикл завершился. Один из `"completed"`, `"max_turns"`, `"tool_deferred"`, `"aborted_streaming"`, `"aborted_tools"`, `"hook_stopped"`, `"stop_hook_prevented"`, `"background_requested"`, `"blocking_limit"`, `"rapid_refill_breaker"`, `"prompt_too_long"`, `"image_error"`, `"model_error"`, `"api_error"`, `"malformed_tool_use_exhausted"`, `"budget_exhausted"`, `"structured_output_retry_exhausted"`, `"tool_deferred_unavailable"` или `"turn_setup_failed"`.* `startup_failure_reason`: почему Claude Code отказался запускаться, на результате `error_during_execution`, который он записывает перед выходом при известной ошибке запуска. См. [`startup_failure_reason`](#startup_failure_reason) для значений и того, какие ошибки его содержат. Требует Agent SDK v0.3.274 или позже.
14921495* `fast_mode_state`: один из `"on"`, `"off"` или `"cooldown"`.* `terminal_reason`: почему цикл завершился. Одно из значений: `"completed"`, `"max_turns"`, `"tool_deferred"`, `"aborted_streaming"`, `"aborted_tools"`, `"hook_stopped"`, `"stop_hook_prevented"`, `"background_requested"`, `"blocking_limit"`, `"rapid_refill_breaker"`, `"prompt_too_long"`, `"image_error"`, `"model_error"`, `"api_error"`, `"malformed_tool_use_exhausted"`, `"budget_exhausted"`, `"structured_output_retry_exhausted"`, `"tool_deferred_unavailable"` или `"turn_setup_failed"`.
14931496* `fast_mode_disabled_reason`: почему [быстрый режим](/docs/ru/fast-mode) недоступен прямо сейчас. Отсутствует, когда ничто не блокирует быстрый режим, хотя запрос может всё ещё работать на стандартной скорости. Во время охлаждения после ограничения скорости быстрого режима Claude Code сообщает `fast_mode_state: "cooldown"` без кода причины и повторно включает быстрый режим, когда охлаждение истекает. Требует Claude Code v2.1.219 или позже.* `fast_mode_state`: одно из значений `"on"`, `"off"` или `"cooldown"`.
1497* `fast_mode_disabled_reason`: почему [fast mode](/docs/ru/fast-mode) недоступен прямо сейчас. Отсутствует, когда ничто не блокирует fast mode, хотя запрос может всё ещё работать на стандартной скорости. Во время охлаждения после ограничения скорости fast mode Claude Code сообщает `fast_mode_state: "cooldown"` без кода причины и повторно включает fast mode, когда охлаждение истекает. Требует Claude Code v2.1.219 или позже.
1494 1498
14951499Используйте код причины, чтобы объяснить, почему быстрый режим отключён в вашем собственном пользовательском интерфейсе, вместо повторного вывода доступности. Каждый код называет проверку, которая заблокировала быстрый режим:Используйте код причины, чтобы объяснить, почему fast mode отключён в вашем собственном пользовательском интерфейсе, вместо повторного вывода доступности. Каждый код называет проверку, которая заблокировала fast mode:
1496 1500
1497| Код причины | Значение |1501| Код причины | Значение |
14981502| ---------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------- || ---------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------- |
14991503| `free` | Учётная запись не имеет платной подписки или кредитов использования, которые требует быстрый режим || `free` | Учётная запись не имеет платной подписки или кредитов использования, которые требует fast mode |
15001504| `preference` | Организация отключила быстрый режим || `preference` | Организация отключила fast mode |
1501| `extra_usage_disabled` | Кредиты использования отключены для учётной записи |1505| `extra_usage_disabled` | Кредиты использования отключены для учётной записи |
1502| `network_error` | [Проверка доступности](/docs/ru/fast-mode#use-fast-mode-behind-proxies-and-llm-gateways) не смогла достичь `api.anthropic.com` |1506| `network_error` | [Проверка доступности](/docs/ru/fast-mode#use-fast-mode-behind-proxies-and-llm-gateways) не смогла достичь `api.anthropic.com` |
1503| `unknown` | Claude Code не смог определить доступность |1507| `unknown` | Claude Code не смог определить доступность |
1504| `not_first_party` | Сеанс использует поставщика, отличного от Anthropic API |1508| `not_first_party` | Сеанс использует поставщика, отличного от Anthropic API |
15051509| `disabled_by_env` | [`CLAUDE_CODE_DISABLE_FAST_MODE`](/docs/ru/env-vars) установлена || `disabled_by_env` | [`CLAUDE_CODE_DISABLE_FAST_MODE`](/docs/ru/env-vars) установлен |
15061510| `model_not_allowed` | Модель быстрого режима Opus отсутствует в списке разрешений [`availableModels`](/docs/ru/model-config#restrict-model-selection) организации || `model_not_allowed` | Модель Opus fast mode отсутствует в списке разрешений [`availableModels`](/docs/ru/model-config#restrict-model-selection) организации |
15071511| `sdk_opt_in_required` | Сеанс не согласился на быстрый режим: передайте `fastMode: true` в опции [`settings`](#options) или через [`applyFlagSettings()`](#applyflagsettings) || `sdk_opt_in_required` | Сеанс не согласился на fast mode: передайте `fastMode: true` в опции [`settings`](#options) или через [`applyFlagSettings()`](#applyflagsettings) |
1508| `pending` | Проверка доступности ещё не завершена |1512| `pending` | Проверка доступности ещё не завершена |
1509 1513
15101514Одна и та же пара полей появляется на [`SDKSystemMessage`](#sdksystemmessage) и на [`SDKControlInitializeResponse`](#sdkcontrolinitializeresponse), поэтому вы можете прочитать состояние быстрого режима перед первым ходом.Одна и та же пара полей появляется на [`SDKSystemMessage`](#sdksystemmessage) и на [`SDKControlInitializeResponse`](#sdkcontrolinitializeresponse), поэтому вы можете прочитать состояние fast mode перед первым ходом.
1511 1515
15121516Поле `origin` передаёт [`SDKMessageOrigin`](#sdkmessageorigin) пользовательского сообщения, которое запустило этот результат. Когда SDK внедряет синтетический ход продолжения, такой как для завершённой фоновой задачи, результирующее `SDKResultMessage` содержит `origin: { kind: "task-notification" }`. Подпрограммы, чьи триггеры сработали и сообщения, проверенные сервером, из ваших других сеансов прибывают с этим видом, каждое с `subkind`, описанным в [Подвиды уведомлений о задачах](#task-notification-subkinds). Проверьте `kind`, чтобы различить результаты, которые отвечают на ваш запрос, от внедрённых продолжений перед маршрутизацией или подавлением их.Поле `origin` пересылает [`SDKMessageOrigin`](#sdkmessageorigin) пользовательского сообщения, которое запустило этот результат. Когда SDK внедряет синтетический ход продолжения, такой как для завершённой фоновой задачи, результирующее `SDKResultMessage` содержит `origin: { kind: "task-notification" }`. Подпрограммы, чей триггер сработал и проверенные сервером сообщения из ваших других сеансов поступают с этим видом, каждое с `subkind`, описанным в [Task-notification subkinds](#task-notification-subkinds). Проверьте `kind`, чтобы различить результаты, которые отвечают на вашу подсказку, от внедрённых продолжений перед маршрутизацией или подавлением их.
1513 1517
15141518Поле отсутствует для результатов, выданных перед любым пользовательским ходом, таких как ошибки при запуске.Это поле отсутствует для результатов, выданных перед любым пользовательским ходом, такие как ошибки запуска.
1515 1519
15161520Когда hook `PreToolUse` возвращает `permissionDecision: "defer"`, результат имеет `stop_reason: "tool_deferred"` и `deferred_tool_use` содержит `id`, `name` и `input` ожидающего инструмента. Прочитайте это поле, чтобы отобразить запрос в вашем собственном пользовательском интерфейсе, затем возобновите с тем же `session_id` для продолжения. Смотрите [Отложить вызов инструмента на потом](/docs/ru/hooks#defer-a-tool-call-for-later) для полного цикла.Когда хук `PreToolUse` возвращает `permissionDecision: "defer"`, результат имеет `stop_reason: "tool_deferred"` и `deferred_tool_use` содержит `id`, `name` и `input` ожидающего инструмента. Читайте это поле, чтобы отобразить запрос в вашем собственном пользовательском интерфейсе, затем возобновите с тем же `session_id`, чтобы продолжить. См. [Defer a tool call for later](/docs/ru/hooks#defer-a-tool-call-for-later) для полного цикла.
1517 1521
1518<h4 id="user_message_uuid">1522<h4 id="user_message_uuid">
1519 `user_message_uuid`1523 `user_message_uuid`
1520</h4>1524</h4>
1521 1525
15221526`uuid` [`SDKUserMessage`](#sdkusermessage), на которое отвечает ход, повторённый, чтобы вы могли сопоставить ответ Claude Code с сообщением, которое вы отправили. Claude Code повторяет `uuid` только если вы установили его на сообщение. Поле опционально на `SDKUserMessage`, и строковый запрос, переданный в `query()`, не содержит ни одного.`uuid` [`SDKUserMessage`](#sdkusermessage), на который ход отвечает, повторённый, чтобы вы могли сопоставить ответ Claude Code с сообщением, которое вы отправили. Claude Code повторяет `uuid` только если вы установили его на сообщение. Это поле необязательно на `SDKUserMessage`, и строковая подсказка, переданная в `query()`, не содержит ни одного.
1523 1527
1524Какое из ваших сообщений отвечает ход, зависит от того, как ход начался:1528Какое из ваших сообщений отвечает ход, зависит от того, как ход начался:
1525 1529
1526* **Обычное сообщение, которое вы отправили**, то есть без `isSynthetic: true`: ход отвечает на это сообщение на протяжении всего его выполнения. Когда вы отправляете несколько сообщений близко друг к другу, Claude Code может объединить их в один ход, и поле затем содержит только `uuid` последнего сообщения. Чтобы сопоставить ответ с любым из объединённых сообщений, используйте [`user_message_uuids`](#user_message_uuids).1530* **Обычное сообщение, которое вы отправили**, то есть без `isSynthetic: true`: ход отвечает на это сообщение на протяжении всего его выполнения. Когда вы отправляете несколько сообщений близко друг к другу, Claude Code может объединить их в один ход, и поле затем содержит только `uuid` последнего сообщения. Чтобы сопоставить ответ с любым из объединённых сообщений, используйте [`user_message_uuids`](#user_message_uuids).
15271531* **Сообщение, которое вы отправили с `isSynthetic: true`**: ход сначала отвечает на это сообщение. Если Claude Code подхватит обычное сообщение вашего между вызовами инструментов, ход отвечает на подхваченное сообщение с этого момента. Повторение `uuid` синтетического сообщения требует Agent SDK v0.3.265 или позже; более ранние версии ничего не повторяют на синтетических ходах.* **Сообщение, которое вы отправили с `isSynthetic: true`**: ход сначала отвечает на это сообщение. Если Claude Code подхватит обычное сообщение вашего между вызовами инструментов, ход будет отвечать на подхваченное сообщение с этого момента. Повторение `uuid` синтетического сообщения требует Agent SDK v0.3.265 или позже; более ранние версии ничего не повторяют на синтетических ходах.
15281532* **Запрос, который Claude Code сгенерировал сам**, такой как ход, который продолжает прерванную работу после перезагрузки сеанса: ход сначала не отвечает на ваше сообщение и его кадры не содержат повтора. Если Claude Code подхватит обычное сообщение вашего между вызовами инструментов, ход отвечает на это сообщение с этого момента. Повтор подхвата требует Agent SDK v0.3.265 или позже; более ранние версии ничего не повторяют на этих ходах.* **Подсказка, которую Claude Code сгенерировал сам**, такая как ход, который продолжает прерванную работу после перезагрузки сеанса: ход сначала не отвечает ни на какое ваше сообщение и его кадры не содержат повторения. Если Claude Code подхватит обычное сообщение вашего между вызовами инструментов, ход будет отвечать на это сообщение с этого момента. Повторение подхвата требует Agent SDK v0.3.265 или позже; более ранние версии ничего не повторяют на этих ходах.
1529 1533
1530Claude Code повторяет `uuid` отвеченного сообщения на трёх видах кадра:1534Claude Code повторяет `uuid` отвеченного сообщения на трёх видах кадра:
1531 1535
15321536* **Результат**: каждый результат хода, который ответил на сообщение, которое вы отправили. Каждый такой результат содержит его на Agent SDK v0.3.265 или позже. До v0.3.265 успешный результат хода, который запустило обычное сообщение, не содержал его, когда ход не отправил запрос API или завершился отложенным вызовом инструмента. До v0.3.246 результаты ошибок также не содержали его, и до v0.3.216 каждый результат не содержал.* **Результат**: каждый результат хода, который ответил на сообщение, которое вы отправили. Каждый такой результат содержит его на Agent SDK v0.3.265 или позже. До v0.3.265 результат успеха хода, который запустило обычное сообщение, не содержал его, когда ход не отправил запрос API или завершился отложенным вызовом инструмента. До v0.3.246 результаты ошибок также не содержали его, и до v0.3.216 каждый результат не содержал его.
15331537* **Первый ответ хода**: первое [сообщение ассистента](#sdkassistantmessage), или с `includePartialMessages` первое [событие потока](#sdkpartialassistantmessage), чьё `event.type` не является `ping`, поэтому вы можете привязать ответ перед поступлением результата. Когда ход ничего не потоком передаёт, Claude Code устанавливает его на первое сообщение ассистента вместо этого. Повтор первого ответа требует Agent SDK v0.3.246 или позже. Когда сообщение, на которое отвечает ход, изменяется в середине хода, первый ответ после изменения также содержит поле на Agent SDK v0.3.265 или позже; более ранние версии устанавливают его на один кадр ответа за ход.* **Первый ответ хода**: первое [сообщение ассистента](#sdkassistantmessage) или с `includePartialMessages` первое [событие потока](#sdkpartialassistantmessage), чей `event.type` не является `ping`, чтобы вы могли привязать ответ перед поступлением результата. Когда ход ничего не потоком передаёт, Claude Code устанавливает его на первое сообщение ассистента вместо этого. Повторение первого ответа требует Agent SDK v0.3.246 или позже. Когда сообщение, на которое ход отвечает, изменяется в середине хода, первый ответ после изменения также содержит это поле на Agent SDK v0.3.265 или позже; более ранние версии устанавливают его на один кадр ответа за ход.
15341538* **Каждый кадр [`thinking_tokens`](#sdkthinkingtokensmessage) хода**: чтобы вы могли приписать прогресс размышления сообщению, которое вы отправили, без ожидания первого ответа хода. Требует Agent SDK v0.3.260 или позже.* **Каждый кадр [`thinking_tokens`](#sdkthinkingtokensmessage) хода**: чтобы вы могли отнести прогресс мышления к сообщению, которое вы отправили, без ожидания первого ответа хода. Требует Agent SDK v0.3.260 или позже.
1535 1539
15361540Claude Code опускает поле в этих случаях:Claude Code опускает это поле в этих случаях:
1537 1541
15381542* Кадры ответа, отличные от тех первых ответов* Кадры ответов, отличные от этих первых ответов
1539* Кадры подагента1543* Кадры подагента
15401544* Ходы, которые не отвечают на сообщение с `uuid`: ход ответил на сообщение, которое вы отправили без одного, или Claude Code запустил ход сам и не подхватил обычное сообщение, которое имеет один* Ходы, которые не отвечают ни на какое сообщение с `uuid`: ход ответил на сообщение, которое вы отправили без одного, или Claude Code запустил ход сам и не подхватил обычное сообщение, которое имеет один
15411545* Результаты, которые не отвечают на сообщение, которое вы отправили, такие как обнулённый результат после сбоя рабочего процесса* Результаты, которые не отвечают ни на какое ваше сообщение, такие как обнулённый результат после сбоя рабочего процесса
1542 1546
1543<h4 id="user_message_uuids">1547<h4 id="user_message_uuids">
1544 `user_message_uuids`1548 `user_message_uuids`
1545</h4>1549</h4>
1546 1550
15471551`uuid`s каждого сообщения, которое вы отправили и на которое Claude Code ответил в этом ходе. Когда вы отправляете несколько сообщений близко друг к другу, Claude Code может объединить их в один ход, и `user_message_uuid` затем называет только последнее из них. Чтобы сопоставить ответ с любым из объединённых сообщений, ищите `uuid` этого сообщения где-нибудь в этом списке. Требует Agent SDK v0.3.259 или позже.`uuid`s каждого сообщения, которое вы отправили и на которое Claude Code ответил в этом ходу. Когда вы отправляете несколько сообщений близко друг к другу, Claude Code может объединить их в один ход, и `user_message_uuid` затем называет только последнее из них. Чтобы сопоставить ответ с любым из объединённых сообщений, ищите `uuid` этого сообщения в любом месте этого списка. Требует Agent SDK v0.3.259 или позже.
1548 1552
15491553Claude Code устанавливает список вместе с `user_message_uuid` на каждом кадре ответа, который содержит это поле, и на результате. Для полного набора кадров, которые содержат `user_message_uuid`, и версии, которую требует каждый, смотрите [`user_message_uuid`](#user_message_uuid). Список всегда содержит `user_message_uuid` и содержит максимум 64 записи.Claude Code устанавливает список вместе с `user_message_uuid` на каждом кадре ответа, который содержит это поле, и на результате. Для полного набора кадров, которые содержат `user_message_uuid`, и версии, которую требует каждый, см. [`user_message_uuid`](#user_message_uuid). Список всегда содержит `user_message_uuid` и содержит максимум 64 записи.
1550 1554
1551Когда Claude Code подхватит обычное сообщение, которое вы отправили, пока ход выполнялся, он добавляет `uuid` этого сообщения в список результата.1555Когда Claude Code подхватит обычное сообщение, которое вы отправили, пока ход выполнялся, он добавляет `uuid` этого сообщения в список результата.
1552 1556
15531557Когда первый ответ или результат содержит `user_message_uuid` без списка, он поступил из более ранней версии Claude Code, поэтому вернитесь к одному полю.Когда первый ответ или результат содержит `user_message_uuid` без списка, он поступил из более ранней версии Claude Code, поэтому используйте одно поле.
1554 1558
1555<h4 id="queued_turn_count">1559<h4 id="queued_turn_count">
1556 `queued_turn_count`1560 `queued_turn_count`
1560 1564
1561Что говорят вам `0` и отсутствующее поле:1565Что говорят вам `0` и отсутствующее поле:
1562 1566
15631567* **`0`**: Claude Code не считает сообщения, которые вы отправили без этого `origin`, и не считает уведомления о задачах, поэтому ход может всё ещё следовать.* **`0`**: Claude Code не считает сообщения, которые вы отправили без этого `origin`, и не считает уведомления задач, поэтому ход может всё ещё следовать.
15641568* **Отсутствует**: финальный результат, который Claude Code выдаёт после сбоя или фатальной ошибки при запуске, опускает поле и [может содержать обнулённые итоги](/docs/ru/agent-sdk/cost-tracking#recover-totals-after-a-session-crash).* **Отсутствует**: финальный результат, который Claude Code выдаёт после сбоя или фатальной ошибки запуска, опускает это поле и [может содержать обнулённые итоги](/docs/ru/agent-sdk/cost-tracking#recover-totals-after-a-session-crash).
1569
1570<h4 id="startup_failure_reason">
1571 `startup_failure_reason`
1572</h4>
1573
1574Почему Claude Code отказался запускаться, чтобы ваше приложение могло предложить исправление вместо повтора. Claude Code устанавливает его на результате `error_during_execution`, который он записывает перед выходом при известной ошибке запуска. Этот результат содержит обнулённые итоги, и его массив `errors` содержит тот же текст, что и stderr. Это поле отсутствует на каждом другом результате. Требует Agent SDK v0.3.274 или позже.
1575
1576Установите `CLAUDE_CODE_STARTUP_FAILURE_RESULTS` в `1` в [`env`](#options), чтобы получить этот результат для каждого значения `SDKStartupFailureReason`. Без этой переменной Claude Code записывает результат только для этих ошибок, а остальные заканчиваются выводом stderr, ненулевым выходом и без сообщения результата:
1577
1578* Возобновление, которое Claude Code останавливает, потому что оно [не может вернуть сеанс в его worktree](/docs/ru/worktrees#the-session-resumes-outside-its-worktree), с `worktree_unverified` или `worktree_resume_refused`. Этот раздел говорит, какая ошибка содержит какое значение.
1579* Отказанное [`continue`](#options) разговора, который фоновый сеанс удерживает, с `session_held_by_background`. Для отказанного [`resume`](#options) такого разговора Claude Code записывает результат только когда переменная установлена.
1580
1581```typescript theme={null}
1582type SDKStartupFailureReason =
1583 | "org_pin_api_key_conflict"
1584 | "org_verify_failed"
1585 | "org_pin_mismatch"
1586 | "managed_settings_invalid"
1587 | "remote_settings_required_unavailable"
1588 | "gateway_signin_required"
1589 | "gateway_access_denied"
1590 | "proxy_invalid"
1591 | "temp_dir_unusable"
1592 | "cwd_unavailable"
1593 | "shell_tool_missing"
1594 | "session_held_by_background"
1595 | "worktree_resume_refused"
1596 | "worktree_unverified"
1597 | "cli_version_too_old"
1598 | "bypass_root";
1599```
1600
1601Каждое значение называет один отказ:
1602
1603| Значение | Что остановило сеанс |
1604| :------------------------------------- | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
1605| `org_pin_api_key_conflict` | Управляемые параметры [требуют вход в первую сторону или облачный шлюз](/docs/ru/authentication#restrict-login-to-your-organization), и вместо этого настроены ключ API Anthropic, токен аутентификации или `apiKeyHelper` |
1606| `org_verify_failed` | Организация входа не смогла быть проверена против булавки, например из-за сбоя сети или отозванного токена |
1607| `org_pin_mismatch` | Вход принадлежит организации, которую булавка не разрешает |
1608| `managed_settings_invalid` | Управляемые параметры политики не смогли быть прочитаны, или булавка не называет организацию |
1609| `remote_settings_required_unavailable` | Управляемые параметры, которые требует организация, не смогли быть загружены |
1610| `gateway_signin_required` | [Облачный шлюз](/docs/ru/claude-apps-gateway) завершил этот вход |
1611| `gateway_access_denied` | Запрос управляемых параметров облачному шлюзу вернулся с 403, который [таблица устранения неполадок](/docs/ru/claude-apps-gateway-deploy#troubleshooting) шлюза охватывает |
1612| `proxy_invalid` | Параметр прокси не является полным URL |
1613| `temp_dir_unusable` | Временный каталог для каждого пользователя небезопасен или не смог быть создан |
1614| `cwd_unavailable` | Рабочий каталог был удалён, перемещён или не может быть прочитан |
1615| `shell_tool_missing` | На Windows нет доступного инструмента оболочки: Git Bash отсутствует и PowerShell отсутствует или отключён с `CLAUDE_CODE_USE_POWERSHELL_TOOL` |
1616| `session_held_by_background` | Разговор для возобновления или продолжения работает как [фоновый сеанс](/docs/ru/agent-view) |
1617| `worktree_resume_refused` | Worktree сеанса не прошёл проверки безопасности, или возобновление было запущено изнутри него. `errors` говорит, продолжится ли запуск того же возобновления без worktree |
1618| `worktree_unverified` | Worktree сеанса не смог быть проверен прямо сейчас, и повтор может быть успешным |
1619| `cli_version_too_old` | Эта версия Claude Code ниже минимума, который требует Anthropic |
1620| `bypass_root` | Режим разрешений обхода был запрошен при работе от имени root |
1565 1621
1566<h3 id="sdksystemmessage">1622<h3 id="sdksystemmessage">
1567 `SDKSystemMessage`1623 `SDKSystemMessage`
1584 mcp_servers: {1640 mcp_servers: {
1585 name: string;1641 name: string;
1586 status: string;1642 status: string;
1643 source?: string;
1587 }[];1644 }[];
1588 model: string;1645 model: string;
1589 permissionMode: PermissionMode;1646 permissionMode: PermissionMode;
1599};1656};
1600```1657```
1601 1658
16021659`fast_mode_state` сообщает состояние [быстрого режима](/docs/ru/fast-mode) сеанса. Когда что-то блокирует быстрый режим, `fast_mode_disabled_reason` называет проверку, которая его заблокировала; поле требует Claude Code v2.1.219 или позже. Для кодов причин и их значений смотрите [`fast_mode_disabled_reason`](#sdkresultmessage) на сообщении результата.`fast_mode_state` сообщает состояние [fast mode](/docs/ru/fast-mode) сеанса. Когда что-то блокирует fast mode, `fast_mode_disabled_reason` называет проверку, которая его заблокировала; это поле требует Claude Code v2.1.219 или позже. Для кодов причин и их значений см. [`fast_mode_disabled_reason`](#sdkresultmessage) на сообщении результата.
1603 1660
16041661`terminal_slash_commands` называет записи в `slash_commands`, чей интерфейс привязан к локальному терминалу, такие как `exit`. Вы можете отправлять их как любую другую запись в `slash_commands`; поле существует, чтобы удалённый или мобильный клиент мог скрыть их из своих меню команд. Поле присутствует только, когда не пусто, и требует Agent SDK v0.3.229 или позже.`terminal_slash_commands` называет записи в `slash_commands`, чей интерфейс привязан к локальному терминалу, такие как `exit`. Вы можете отправлять их как любую другую запись в `slash_commands`; это поле существует, чтобы удалённый или мобильный клиент мог скрыть их из своих меню команд. Это поле присутствует только когда оно не пусто, и требует Agent SDK v0.3.229 или позже.
1605 1662
1606*1663*
1607 1664
16081665`effort`: [уровень усилий](/docs/ru/model-config#adjust-effort-level), который Claude Code отправляет на следующий запрос сеанса, или `null`, когда он не отправляет ни один. Claude Code устанавливает поле только на сообщение инициализации, которое отправляет клиентам [Remote Control](/docs/ru/remote-control), и опускает его из сообщения инициализации, которое читает ваше приложение. Требует Agent SDK v0.3.234 или позже.`source` на каждой записи `mcp_servers`: откуда поступило определение сервера, с теми же значениями, что и `source` [`McpServerStatus`](#mcpserverstatus). Требует Agent SDK v0.3.274 или позже.
1609 1666
16101667Массив `capabilities` называет поведения протокола, которые реализует этот CLI, поэтому вы можете обнаруживать функции вместо сравнения строк `claude_code_version`. Это открытый набор: игнорируйте значения, которые вы не распознаёте, и проверяйте конкретную возможность, поведение которой вы используете. Поле требует Claude Code v2.1.205 или позже и отсутствует на более ранних CLI.*
1668
1669`effort`: [уровень усилий](/docs/ru/model-config#adjust-effort-level), который Claude Code отправляет на следующий запрос сеанса, или `null`, когда он не отправляет ни один. Claude Code устанавливает это поле только на сообщение инициализации, которое оно отправляет клиентам [Remote Control](/docs/ru/remote-control), и опускает его из сообщения инициализации, которое читает ваше приложение. Требует Agent SDK v0.3.234 или позже.
1670
1671Массив `capabilities` называет поведения протокола, которые реализует этот CLI, чтобы вы могли обнаруживать функции вместо сравнения строк `claude_code_version`. Это открытый набор: игнорируйте значения, которые вы не узнаёте, и проверяйте конкретную возможность, поведение которой вы используете. Это поле требует Claude Code v2.1.205 или позже и отсутствует на более ранних CLI.
1611 1672
1612| Возможность | Значение |1673| Возможность | Значение |
16131674| ---------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- || ---------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
16141675| `interrupt_receipt_v1` | [`interrupt()`](#query-object) разрешается с помощью [`SDKControlInterruptResponse`](#sdkcontrolinterruptresponse), квитанции, называющей сообщения, которые были в очереди, когда прерывание прибыло || `interrupt_receipt_v1` | [`interrupt()`](#query-object) разрешается с помощью [`SDKControlInterruptResponse`](#sdkcontrolinterruptresponse), квитанции, в которой перечислены сообщения, которые были в ожидании при поступлении прерывания |
16151676| `interrupt_cancel_queued_v1` | Запрос управления `interrupt` соблюдает `cancel_queued: true`, отменяя сообщения, которые квитанция иначе перечислила бы под `still_queued`, и перечисляя их под `cancelled` вместо этого. Смотрите [`SDKControlInterruptResponse`](#sdkcontrolinterruptresponse). Требует Claude Code v2.1.219 или позже || `interrupt_cancel_queued_v1` | Запрос управления `interrupt` соблюдает `cancel_queued: true`, отменяя сообщения, которые квитанция в противном случае перечислила бы в `still_queued`, и перечисляя их в `cancelled` вместо этого. См. [`SDKControlInterruptResponse`](#sdkcontrolinterruptresponse). Требует Claude Code v2.1.219 или позже |
1616 1677
1617<h3 id="sdkpartialassistantmessage">1678<h3 id="sdkpartialassistantmessage">
1618 `SDKPartialAssistantMessage`1679 `SDKPartialAssistantMessage`
1619</h3>1680</h3>
1620 1681
16211682Потоковое частичное сообщение (только когда `includePartialMessages` равен true). Поле `parent_tool_use_id` всегда имеет значение `null`: события потока выдаются только для основного сеанса. Для атрибуции подагента используйте полные сообщения, которые содержат `parent_tool_use_id`, или включите [`forwardSubagentText`](#options) для получения текста и размышлений подагента в виде полных сообщений.Потоковое частичное сообщение (только когда `includePartialMessages` имеет значение true). Поле `parent_tool_use_id` всегда `null`: события потока выдаются только для основного сеанса. Для атрибуции подагента используйте полные сообщения, которые содержат `parent_tool_use_id`, или включите [`forwardSubagentText`](#options), чтобы получать текст и мышление подагента как полные сообщения.
1622 1683
1623```typescript theme={null}1684```typescript theme={null}
1624type SDKPartialAssistantMessage = {1685type SDKPartialAssistantMessage = {
1625 type: "stream_event";1686 type: "stream_event";
16261687 event: BetaRawMessageStreamEvent; // Из Anthropic SDK event: BetaRawMessageStreamEvent; // From Anthropic SDK
1627 parent_tool_use_id: string | null;1688 parent_tool_use_id: string | null;
1628 uuid: UUID;1689 uuid: UUID;
1629 session_id: string;1690 session_id: string;
16301691 ttft_ms?: number; // Время до первого токена в мс, присутствует только на событиях message_start ttft_ms?: number; // Time to first token in ms, present only on message_start events
1631 user_message_uuid?: string;1692 user_message_uuid?: string;
1632 user_message_uuids?: string[];1693 user_message_uuids?: string[];
1633};1694};
1634```1695```
1635 1696
16361697Claude Code устанавливает `user_message_uuid` и `user_message_uuids` на первое событие потока хода, не являющееся ping, и снова, когда сообщение, на которое отвечает ход, изменяется, при условиях в [`user_message_uuid`](#user_message_uuid).Claude Code устанавливает `user_message_uuid` и `user_message_uuids` на первое событие потока без ping хода и снова, когда сообщение, на которое ход отвечает, изменяется, при условиях в [`user_message_uuid`](#user_message_uuid).
1637 1698
1638<h3 id="sdkcompactboundarymessage">1699<h3 id="sdkcompactboundarymessage">
1639 `SDKCompactBoundaryMessage`1700 `SDKCompactBoundaryMessage`
1640</h3>1701</h3>
1641 1702
16421703Сообщение, указывающее границу компактирования диалога.Сообщение, указывающее границу компактирования разговора.
1643 1704
1644```typescript theme={null}1705```typescript theme={null}
1645type SDKCompactBoundaryMessage = {1706type SDKCompactBoundaryMessage = {
1658 `SDKInformationalMessage`1719 `SDKInformationalMessage`
1659</h3>1720</h3>
1660 1721
16611722Универсальный текстовый баннер, выданный циклом. Содержит строки статуса без ошибок, обратную связь hook, такую как причина блокировки hook `UserPromptSubmit`, и вывод команды. На Claude Code v2.1.227 или позже, [`systemMessage`](/docs/ru/hooks#json-output) hook может прибыть как это сообщение, с каждой строкой с префиксом имени hook, такой как `PostToolUse:Bash says:`. Прибывает ли `systemMessage` hook как это сообщение, зависит от события. Каждый [раздел события](/docs/ru/hooks#hook-events) на странице hooks говорит, как выводится вывод. Отобразите `content` как простой текст на заданном `level`.Общий текстовый баннер, выданный циклом. Содержит строки статуса без ошибок, обратную связь хука, такую как причина блокировки хука `UserPromptSubmit`, и вывод команды. На Claude Code v2.1.227 или позже [`systemMessage`](/docs/ru/hooks#json-output) хука может поступить как это сообщение, с каждой строкой с префиксом имени хука, такой как `PostToolUse:Bash says:`. Поступает ли `systemMessage` хука как это сообщение, зависит от события. Каждый [раздел события](/docs/ru/hooks#hook-events) на странице hooks говорит, как выводится вывод. Выполняйте рендеринг `content` как простого текста на заданном `level`.
1662 1723
1663```typescript theme={null}1724```typescript theme={null}
1664type SDKInformationalMessage = {1725type SDKInformationalMessage = {
1677 `SDKWorkerShuttingDownMessage`1738 `SDKWorkerShuttingDownMessage`
1678</h3>1739</h3>
1679 1740
16801741Выданное при корректном завершении работника, чтобы удалённые клиенты могли показать, почему работник исчез, вместо ожидания истечения времени ожидания сердцебиения. `reason` это короткая строка в формате snake\_case, установленная хост-CLI, такая как `"host_exit"` или `"remote_control_disabled"`. Действуйте на основе этого только при потоковой передаче в реальном времени. Возобновленный сеанс воспроизводит прошлые экземпляры этого сообщения, поэтому игнорируйте их в этом случае.Выданное при корректном завершении рабочего процесса, чтобы удалённые клиенты могли показать, почему рабочий процесс вышел, вместо ожидания истечения времени ожидания сердцебиения. `reason` — это короткая строка snake\_case, установленная хостом CLI, такая как `"host_exit"` или `"remote_control_disabled"`. Действуйте на это только при потоковой передаче в реальном времени. Возобновленный сеанс воспроизводит прошлые экземпляры этого сообщения, поэтому игнорируйте их в этом случае.
1681 1742
1682```typescript theme={null}1743```typescript theme={null}
1683type SDKWorkerShuttingDownMessage = {1744type SDKWorkerShuttingDownMessage = {
1693 `SDKPluginInstallMessage`1754 `SDKPluginInstallMessage`
1694</h3>1755</h3>
1695 1756
16961757Событие прогресса установки plugin. Выдаётся, когда установлена [`CLAUDE_CODE_SYNC_PLUGIN_INSTALL`](/docs/ru/env-vars), поэтому ваше приложение Agent SDK может отслеживать установку marketplace plugin перед первым ходом. Статусы `started` и `completed` заключают в скобки общую установку. Статусы `installed` и `failed` сообщают об отдельных marketplaces и включают `name`.Событие прогресса установки плагина. Выданное когда [`CLAUDE_CODE_SYNC_PLUGIN_INSTALL`](/docs/ru/env-vars) установлен, чтобы ваше приложение Agent SDK могло отслеживать установку плагина marketplace перед первым ходом. Статусы `started` и `completed` заключают общую установку. Статусы `installed` и `failed` сообщают об отдельных marketplaces и включают `name`.
1697 1758
1698```typescript theme={null}1759```typescript theme={null}
1699type SDKPluginInstallMessage = {1760type SDKPluginInstallMessage = {
1711 `SDKPermissionDeniedMessage`1772 `SDKPermissionDeniedMessage`
1712</h3>1773</h3>
1713 1774
17141775Событие потока, выданное, когда система разрешений отклоняет вызов инструмента без интерактивного запроса. Используйте его для отображения отклонения в вашем пользовательском интерфейсе по мере его возникновения, а не только наблюдая результат инструмента `is_error`, который следует за ним. Какие отклонения оно сообщает, зависит от того, как запуск обрабатывает запросы разрешений:Событие потока, выданное когда система разрешений отказывает в вызове инструмента без интерактивного приглашения. Используйте его для отображения отказа в вашем пользовательском интерфейсе по мере его возникновения, а не только наблюдая результат инструмента `is_error`, который следует. Какие отказы оно сообщает, зависит от того, как запуск обрабатывает приглашения разрешений:
1715 1776
17161777* **С callback [`canUseTool`](#canusetool) и по умолчанию [`permissionPrompts: 'host'`](#options)**: запросы разрешений идут в ваш callback, и это событие сообщает об отклонениях, которые Claude Code решает самостоятельно без его вызова.* **С обратным вызовом [`canUseTool`](#canusetool) и значением по умолчанию [`permissionPrompts: 'host'`](#options)**: приглашения разрешений идут в ваш обратный вызов, и это событие сообщает об отказах, которые Claude Code решает самостоятельно без его вызова.
17171778* **Ни с чем**: голый запуск `-p` или `query()`, который не устанавливает ни `canUseTool`, ни `permissionPromptToolName`, отклоняет любой вызов инструмента, который бы запросил, и это событие сообщает об этих отклонениях, а также об отклонениях, которые Claude Code решает самостоятельно. До v2.1.223 Claude Code не выдавал это событие в запусках без callback.*
1718* **С инструментом запроса MCP**, установленным с `permissionPromptToolName` или флагом [`--permission-prompt-tool`](/docs/ru/cli-reference#cli-flags), и по умолчанию `permissionPrompts: 'host'`: Claude Code вообще не выдаёт это событие, даже для отклонений правил, которые оно решает самостоятельно.
1719* **С [`permissionPrompts: 'none'`](#options)**: Claude Code отклоняет вызовы, которые бы запросили, даже когда также установлены `canUseTool` или инструмент запроса MCP, и это событие сообщает об этих отклонениях, а также об отклонениях, которые Claude Code решает самостоятельно. Требует Claude Code v2.1.259 или позже.
1720 1779
17211780В каждой конфигурации это событие пропускает любое отклонение, решённое на пути hook `PreToolUse`, независимо от того, отклонил ли hook вызов сам или правило отрицания переопределило решение hook разрешить или спросить. Событие также является лучшим усилием: иногда Claude Code записывает отклонение без выдачи этого события, поэтому `permission_denials` на [сообщении результата](#sdkresultmessage) является авторитетным записью.**Без ни одного**: голый запуск `-p` или `query()`, который не устанавливает ни `canUseTool`, ни `permissionPromptToolName`, отказывает любому вызову инструмента, который бы подсказал, и это событие сообщает об этих отказах, а также об отказах, которые Claude Code решает самостоятельно. До v2.1.223 Claude Code не выдавал это событие в запусках без обратного вызова.
1781
1782* **С инструментом приглашения MCP**, установленным с `permissionPromptToolName` или флагом [`--permission-prompt-tool`](/docs/ru/cli-reference#cli-flags), и значением по умолчанию `permissionPrompts: 'host'`: Claude Code вообще не выдаёт это событие, даже для отказов правила, которые он решает самостоятельно.
1783*
1784
1785**С [`permissionPrompts: 'none'`](#options)**: Claude Code отказывает вызовам, которые бы подсказали, даже когда также установлены `canUseTool` или инструмент приглашения MCP, и это событие сообщает об этих отказах, а также об отказах, которые Claude Code решает самостоятельно. Требует Claude Code v2.1.259 или позже.
1786
1787В каждой конфигурации это событие пропускает любой отказ, решённый на пути хука `PreToolUse`, отказал ли сам хук вызову или правило отрицания переопределило решение хука разрешить или спросить. Это событие также является лучшим усилием: иногда Claude Code записывает отказ без выдачи этого события, поэтому `permission_denials` на [сообщении результата](#sdkresultmessage) является авторитетным записью.
1722 1788
1723```typescript theme={null}1789```typescript theme={null}
1724type SDKPermissionDeniedMessage = {1790type SDKPermissionDeniedMessage = {
1736```1802```
1737 1803
1738| Поле | Тип | Описание |1804| Поле | Тип | Описание |
17391805| ---------------------- | -------- | ------------------------------------------------------------------------------------------------------------------------------------ || ---------------------- | -------- | ----------------------------------------------------------------------------------------------------------------------------------- |
17401806| `tool_name` | `string` | Имя инструмента, который был отклонён || `tool_name` | `string` | Имя инструмента, который был отказан |
17411807| `tool_use_id` | `string` | ID блока `tool_use`, на который отвечает это отклонение || `tool_use_id` | `string` | ID блока `tool_use`, на который этот отказ отвечает |
17421808| `agent_id` | `string` | ID подагента, когда отклонённый вызов возник внутри подагента. Зеркалирует поле на `can_use_tool` для маршрутизации на стороне хоста || `agent_id` | `string` | ID подагента, когда отказанный вызов возник внутри подагента. Зеркалирует поле на `can_use_tool` для маршрутизации на стороне хоста |
17431809| `decision_reason_type` | `string` | Дискриминатор для компонента, который принял решение, такой как `"rule"`, `"mode"`, `"classifier"` или `"asyncAgent"` || `decision_reason_type` | `string` | Дискриминатор для компонента, который решил, такой как `"rule"`, `"mode"`, `"classifier"` или `"asyncAgent"` |
17441810| `decision_reason` | `string` | Понятная человеку причина от компонента, принявшего решение, если доступна || `decision_reason` | `string` | Понятная причина от решающего компонента, когда доступна |
1745| `message` | `string` | Сообщение об отказе, возвращённое модели в `tool_result` |1811| `message` | `string` | Сообщение об отказе, возвращённое модели в `tool_result` |
1746 1812
1747<h3 id="sdkpermissiondenial">1813<h3 id="sdkpermissiondenial">
1748 `SDKPermissionDenial`1814 `SDKPermissionDenial`
1749</h3>1815</h3>
1750 1816
17511817Информация об отклонённом использовании tool.Информация об отказанном использовании инструмента.
1752 1818
1753```typescript theme={null}1819```typescript theme={null}
1754type SDKPermissionDenial = {1820type SDKPermissionDenial = {
1802Таблица перечисляет, что Claude Code помещает в каждое поле. Поля от `model` до `over_limit` описывают сеанс в целом, и поля коллекции приписывают токены отдельным элементам.1868Таблица перечисляет, что Claude Code помещает в каждое поле. Поля от `model` до `over_limit` описывают сеанс в целом, и поля коллекции приписывают токены отдельным элементам.
1803 1869
1804| Поле | Тип | Описание |1870| Поле | Тип | Описание |
18051871| ---------------- | --------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- || ---------------- | --------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
1806| `model` | `string` | Модель основного цикла, для которой Claude Code вычислил использование, а не подагента |1872| `model` | `string` | Модель основного цикла, для которой Claude Code вычислил использование, а не подагента |
1807| `total_tokens` | `number` | Оценка Claude Code токенов в использовании. Не зажата в окно, поэтому может превышать `raw_max_tokens`, когда сеанс превышает лимит |1873| `total_tokens` | `number` | Оценка Claude Code токенов в использовании. Не зажата в окно, поэтому может превышать `raw_max_tokens`, когда сеанс превышает лимит |
18081874| `raw_max_tokens` | `number` | Контекстное окно модели или нижнее [окно автокомпактирования](/docs/ru/model-config#context-window-and-auto-compaction), когда оно применяется, такое как установленное вами или граница 200K, которую Claude Code применяет к некоторым моделям с окном 1M-токена. Claude Code измеряет `total_tokens` против этого окна || `raw_max_tokens` | `number` | Контекстное окно модели или нижнее [окно auto-compact](/docs/ru/model-config#context-window-and-auto-compaction), когда оно применяется, такое как установленное вами или граница 200K, которую Claude Code применяет к некоторым моделям с окном 1M-токена. Claude Code измеряет `total_tokens` против этого окна |
1809| `percentage` | `number` | `total_tokens` как округлённый процент `raw_max_tokens`, поэтому может превышать 100, когда сеанс превышает лимит |1875| `percentage` | `number` | `total_tokens` как округлённый процент `raw_max_tokens`, поэтому может превышать 100, когда сеанс превышает лимит |
18101876| `over_limit` | `object` | Присутствует только, когда `total_tokens` превышает `raw_max_tokens`. `tokens_over` это количество превышения, и `kind` говорит, как Claude Code разрешил окно || `over_limit` | `object` | Присутствует только когда `total_tokens` превышает `raw_max_tokens`. `tokens_over` — это количество превышения, и `kind` говорит, как Claude Code разрешил окно |
1811| `categories` | [`SDKContextUsageCategory`](#sdkcontextusagecategory)`[]` | Одна запись на строку разбивки использования по категориям |1877| `categories` | [`SDKContextUsageCategory`](#sdkcontextusagecategory)`[]` | Одна запись на строку разбивки использования по категориям |
1812| `mcp_tools` | `object[]` | Токены, приписанные каждому инструменту MCP, с его проводным именем, таким как `mcp__linear__create_issue`, и его `server_name` |1878| `mcp_tools` | `object[]` | Токены, приписанные каждому инструменту MCP, с его проводным именем, таким как `mcp__linear__create_issue`, и его `server_name` |
18131879| `memory_files` | `object[]` | Токены, приписанные каждому загруженному файлу памяти, с его `path` и меткой источника, такой как `Project` или `User`, в `type` || `memory_files` | `object[]` | Токены, приписанные каждому загруженному файлу памяти, с его `path` и меткой источника, такой как `Project` или `User` в `type` |
1814| `agents` | `object[]` | Токены, приписанные каждому определению пользовательского подагента, с идентификатором источника, таким как `projectSettings`, `userSettings` или `plugin`. Встроенные подагенты не перечислены |1880| `agents` | `object[]` | Токены, приписанные каждому определению пользовательского подагента, с идентификатором источника, таким как `projectSettings`, `userSettings` или `plugin`. Встроенные подагенты не перечислены |
18151881| `skills` | `object[]` | Токены, приписанные каждому навыку в списке навыков, с идентификатором источника и, для навыков plugin, именем plugin в `plugin_name`. Отсутствует, когда никакие навыки не вносят токены || `skills` | `object[]` | Токены, приписанные каждому навыку в списке навыков, с идентификатором источника и, для навыков плагина, именем плагина в `plugin_name`. Отсутствует, когда никакие навыки не вносят токены |
1816 1882
1817`over_limit.kind` записывает, как Claude Code разрешил окно, а не принимает ли API следующий запрос:1883`over_limit.kind` записывает, как Claude Code разрешил окно, а не принимает ли API следующий запрос:
1818 1884
18191885* `hard_limit`: окно это то, что Claude Code считает собственным лимитом модели, за которым API отказывает запросы* `hard_limit`: окно — это то, что Claude Code считает собственным лимитом модели, за пределами которого API отказывает запросы
18201886* `compaction_window`: окно это окно политики компактирования, которое может совпадать или не совпадать с лимитом модели* `compaction_window`: окно — это окно политики компактирования, которое может совпадать или не совпадать с лимитом модели
1821 1887
18221888Claude Code развивает тип аддитивно, добавляя новые данные как опциональные поля, а не переформатируя существующие. Читайте поля, которые вы знаете, и игнорируйте любые, которые вы не распознаёте.Claude Code развивает тип аддитивно, добавляя новые данные как необязательные поля, а не переформатируя существующие. Читайте поля, которые вы знаете, и игнорируйте те, которые вы не узнаёте.
1823 1889
1824<h3 id="sdkcontextusagecategory">1890<h3 id="sdkcontextusagecategory">
1825 `SDKContextUsageCategory`1891 `SDKContextUsageCategory`
1838Таблица перечисляет, что Claude Code помещает в каждое поле строки.1904Таблица перечисляет, что Claude Code помещает в каждое поле строки.
1839 1905
1840| Поле | Тип | Описание |1906| Поле | Тип | Описание |
18411907| -------- | -------- | --------------------------------------------------------------------------------------------------------------------------- || -------- | -------- | ---------------------------------------------------------------------------------------------------------------------- |
18421908| `name` | `string` | Отображаемое имя строки, как `/context` его печатает, такое как `Messages`. Классифицируйте строки по `kind`, а не по имени || `name` | `string` | Имя отображения строки, как печатает `/context`, такое как `Messages`. Классифицируйте строки по `kind`, а не по имени |
1843| `tokens` | `number` | Количество токенов строки. Строки могут содержать нулевые токены |1909| `tokens` | `number` | Количество токенов строки. Строки могут содержать нулевые токены |
1844| `kind` | `string` | Что представляет строка: `used`, `free`, `buffer` или `deferred` |1910| `kind` | `string` | Что представляет строка: `used`, `free`, `buffer` или `deferred` |
1845 1911
1848* `used`: содержимое, которое занимает контекстное окно1914* `used`: содержимое, которое занимает контекстное окно
1849* `free`: оставшееся окно1915* `free`: оставшееся окно
1850* `buffer`: резерв компактирования1916* `buffer`: резерв компактирования
18511917* `deferred`: схемы инструментов, которые Claude Code держит вне окна и исключает из расчёта использования, перечисленные для осведомления* `deferred`: схемы инструментов, которые Claude Code удерживает вне окна и исключает из расчёта использования, перечисленные для осведомления
1852 1918
1853<h3 id="sdkmessageorigin">1919<h3 id="sdkmessageorigin">
1854 `SDKMessageOrigin`1920 `SDKMessageOrigin`
1855</h3>1921</h3>
1856 1922
18571923Происхождение сообщения с ролью пользователя. Это появляется как `origin` на [`SDKUserMessage`](#sdkusermessage) и передаётся на соответствующее [`SDKResultMessage`](#sdkresultmessage), чтобы вы могли определить, что запустило данный ход.Происхождение сообщения с ролью пользователя. Это появляется как `origin` на [`SDKUserMessage`](#sdkusermessage) и пересылается на соответствующее [`SDKResultMessage`](#sdkresultmessage), чтобы вы могли сказать, что запустило данный ход.
1858 1924
1859```typescript theme={null}1925```typescript theme={null}
1860type SDKMessageOrigin =1926type SDKMessageOrigin =
1880```1946```
1881 1947
1882| `kind` | Значение |1948| `kind` | Значение |
18831949| ------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- || ------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
18841950| `human` | Прямой ввод от конечного пользователя. Если ваше приложение передаёт то, что пользователь напечатал, как пользовательское сообщение, установите его `origin` на `{ kind: "human" }` явно: Claude Code рассматривает пользовательское сообщение без `origin` как неатрибутированное и проверяет, которые требуют запроса, напечатанного человеком, такие как [`ultracode` ключевое слово workflow](/docs/ru/workflows#ask-for-a-workflow-in-your-prompt), не принимают его. До v2.1.210 Claude Code рассматривал отсутствующий `origin` на пользовательском сообщении как ввод человека. || `human` | Прямой ввод от конечного пользователя. Если ваше приложение пересылает то, что пользователь напечатал, как пользовательское сообщение, установите его `origin` в `{ kind: "human" }` явно: Claude Code рассматривает пользовательское сообщение без `origin` как неатрибутированное и проверяет, что требуют подсказку, введённую человеком, такие как ключевое слово [`ultracode` workflow](/docs/ru/workflows#ask-for-a-workflow-in-your-prompt), не принимают её. До v2.1.210 Claude Code рассматривал отсутствующий `origin` на пользовательском сообщении как пользовательский ввод. |
18851951| `channel` | Сообщение, поступающее на [канал](/docs/ru/channels). `server` это имя исходного MCP сервера. || `channel` | Сообщение, поступающее на [канал](/docs/ru/channels). `server` — это имя исходного сервера MCP. |
18861952| `peer` | Сообщение от другого агента: внутрипроцессный [товарищ по команде](/docs/ru/agent-teams) или [кросс-сеансовый пир](/docs/ru/cross-session-messaging), другой из ваших сеансов Claude Code. Смотрите [Поля происхождения пира](#peer-origin-fields) для семантики каждого поля и модели доверия. || `peer` | Сообщение от другого агента: внутрипроцессный [товарищ по команде](/docs/ru/agent-teams) или [кросс-сеансный одноранговый](/docs/ru/cross-session-messaging), другой из ваших сеансов Claude Code. См. [Peer origin fields](#peer-origin-fields) для семантики каждого поля и модели доверия. |
18871953| `task-notification` | Синтетический ход, внедрённый для доставки, которая прибывает без свежего запроса пользователя, такой как завершённая фоновая задача; смотрите [`SDKTaskNotificationMessage`](#sdktasknotificationmessage) для этого варианта. Опциональный `subkind` отмечает, что вызвало уведомление. Смотрите [Подвиды уведомлений о задачах](#task-notification-subkinds). || `task-notification` | Синтетический ход, внедрённый для доставки, которая поступает без свежей подсказки пользователя, такой как завершённая фоновая задача; см. [`SDKTaskNotificationMessage`](#sdktasknotificationmessage) для этого варианта. Необязательный `subkind` отмечает, что вызвало уведомление. См. [Task-notification subkinds](#task-notification-subkinds). |
1888| `coordinator` | Сообщение от координатора команды в [команде агентов](/docs/ru/agent-teams). |1954| `coordinator` | Сообщение от координатора команды в [команде агентов](/docs/ru/agent-teams). |
18891955| `auto-continuation` | Синтетический ход, внедрённый, когда сеанс продолжается без свежего пользовательского ввода, такой как результат команды, который запускает последующий запрос. || `auto-continuation` | Синтетический ход, внедрённый когда сеанс продолжается без свежего пользовательского ввода, такой как результат команды, который запускает подсказку продолжения. |
18901956| `unclassified` | Внедрённый ход, чьё происхождение не удалось определить. Требует Claude Code v2.1.223 или позже. Когда Claude Code получает [`SDKUserMessage`](#sdkusermessage) с `isSynthetic: true` и не может классифицировать его как любой другой `kind`, он устанавливает этот вид по мере поступления сообщения и кадрирует ход модели как источник, не являющийся пользователем, а не рассматривает его как ввод человека. Ваше приложение не должно устанавливать это значение. || `unclassified` | Внедрённый ход, чьё происхождение не смогло быть определено. Требует Claude Code v2.1.223 или позже. Когда Claude Code получает [`SDKUserMessage`](#sdkusermessage) с `isSynthetic: true` и не может классифицировать его как любой другой `kind`, он устанавливает этот вид по мере поступления сообщения и кадрирует ход модели как источник, отличный от пользователя, а не рассматривает его как пользовательский ввод. Ваше приложение не должно устанавливать это значение. |
1891 1957
1892<h3 id="task-notification-subkinds">1958<h3 id="task-notification-subkinds">
18931959 Подвиды уведомлений о задачах Task-notification subkinds
1894</h3>1960</h3>
1895 1961
18961962Когда Claude Code доставляет уведомление о задаче в сеанс, он устанавливает `subkind` на `origin` уведомления только если серверы Anthropic проверили, откуда поступило это уведомление. `subkind` требует Claude Code v2.1.213 или позже и принимает одно из двух значений:Когда Claude Code доставляет уведомление задачи в сеанс, он устанавливает `subkind` на `origin` уведомления только если серверы Anthropic проверили, откуда поступило это уведомление. `subkind` требует Claude Code v2.1.213 или позже и принимает одно из двух значений:
1897 1963
18981964* `scheduled-trigger`: уведомление это сохранённый запрос [подпрограммы](/docs/ru/routines), доставленный, потому что один из триггеров подпрограммы сработал: её расписание, её [триггер API](/docs/ru/routines#add-an-api-trigger), её [триггер GitHub](/docs/ru/routines#add-a-github-trigger) или **Запустить сейчас**. Claude Code кадрирует их модели как назначенную задачу сеанса с другим уведомлением от [уведомления, которое несут другие уведомления о задачах](#sdktasknotificationmessage).* `scheduled-trigger`: уведомление — это сохранённая подсказка [подпрограммы](/docs/ru/routines), доставленная, потому что один из триггеров подпрограммы сработал: её расписание, её [API триггер](/docs/ru/routines#add-an-api-trigger), её [GitHub триггер](/docs/ru/routines#add-a-github-trigger) или **Run now**. Claude Code кадрирует их модели как назначенную задачу сеанса, с другим уведомлением от [уведомления, которое несут другие уведомления задач](#sdktasknotificationmessage).
1899*1965*
1900 1966
19011967`peer-send-message`: уведомление это сообщение, которое другой из ваших сеансов отправил с инструментом `send_message` на стороне сервера, который используют сеансы [Claude Code на веб-сайте](/docs/ru/claude-code-on-the-web) для обмена сообщениями друг с другом, а не [кросс-сеансовый инструмент `SendMessage`](/docs/ru/cross-session-messaging), и серверы Anthropic проверили, что оба сеанса принадлежат одной и той же приватной группе сеансов. Требует Claude Code v2.1.224 или позже. Доставка `send_message`, которую серверы не проверили таким образом, не получает `subkind`.`peer-send-message`: уведомление — это сообщение, которое другой из ваших сеансов отправил с инструментом `send_message` на стороне сервера, который используют [облачные сеансы](/docs/ru/claude-code-on-the-web) для обмена сообщениями друг с другом, а не [кросс-сеансный инструмент `SendMessage`](/docs/ru/cross-session-messaging), и серверы Anthropic проверили, что оба сеанса принадлежат одной и той же приватной группе сеансов. Требует Claude Code v2.1.224 или позже. Доставка `send_message`, которую серверы не проверили таким образом, не получает `subkind`.
1902 1968
19031969Каждое другое уведомление о задаче не имеет `subkind`. Это включает [запланированные задачи](/docs/ru/scheduled-tasks), которые срабатывают на вашей собственной машине, [активность PR](/docs/ru/claude-code-on-the-web#how-claude-responds-to-pr-activity), доставленную в сеанс, и фоновые события, такие как завершённая задача. Сообщения от [кросс-сеансового инструмента `SendMessage`](/docs/ru/cross-session-messaging) вообще не являются уведомлениями о задачах: независимо от того, поступают ли они из сеанса на той же машине или через серверы Anthropic с другой машины, Claude Code даёт им `kind: "peer"` и [поля происхождения пира](#peer-origin-fields).Каждое другое уведомление задачи не имеет `subkind`. Это включает [запланированные задачи](/docs/ru/scheduled-tasks), которые срабатывают на вашей собственной машине, [активность PR](/docs/ru/claude-code-on-the-web#how-claude-responds-to-pr-activity), доставленную в сеанс, и фоновые события, такие как завершённая задача. Сообщения от [кросс-сеансного инструмента `SendMessage`](/docs/ru/cross-session-messaging) вообще не являются уведомлениями задач: поступают ли они из сеанса на той же машине или через серверы Anthropic с другой машины, Claude Code даёт им `kind: "peer"` и [поля происхождения одноранговой сети](#peer-origin-fields).
1904 1970
1905<h3 id="peer-origin-fields">1971<h3 id="peer-origin-fields">
19061972 Поля происхождения пира Peer origin fields
1907</h3>1973</h3>
1908 1974
19091975Происхождение `peer` идентифицирует, какой агент отправил сообщение: внутрипроцессный [товарищ по команде](/docs/ru/agent-teams), отправляющий на `main` с `SendMessage`, или [кросс-сеансовый пир](/docs/ru/cross-session-messaging), другой из ваших сеансов Claude Code. Кросс-сеансовые пиры требуют Claude Code v2.1.224 или позже на macOS и Linux; смотрите [доступность кросс-сеансового обмена сообщениями](/docs/ru/cross-session-messaging#availability) для требования собственного Windows. Кросс-сеансовый пир может работать на той же машине или на [другой из ваших машин](/docs/ru/cross-session-messaging#message-sessions-on-other-machines) или [Claude Code на веб-сайте](/docs/ru/claude-code-on-the-web), когда его сообщение прибывает через Remote Control. Два вида отправителя заполняют поля по-разному:Происхождение `peer` идентифицирует, какой агент отправил сообщение: внутрипроцессный [товарищ по команде](/docs/ru/agent-teams), отправляющий в `main` с `SendMessage`, или [кросс-сеансный одноранговый](/docs/ru/cross-session-messaging), другой из ваших сеансов Claude Code. Кросс-сеансные одноранговые требуют Claude Code v2.1.224 или позже на macOS и Linux; см. [доступность кросс-сеансного обмена сообщениями](/docs/ru/cross-session-messaging#availability) для требования собственного Windows. Кросс-сеансный одноранговый может работать на той же машине или на [другой из ваших машин](/docs/ru/cross-session-messaging#message-sessions-on-other-machines) или [в облаке](/docs/ru/claude-code-on-the-web), когда его сообщение поступает через Remote Control. Два вида отправителя заполняют поля по-разному:
1910 1976
19111977* `from`: имя товарища по команде или адрес отправителя для кросс-сеансового пира. Для [одностороннего кросс-машинного сообщения](/docs/ru/cross-session-messaging#message-sessions-on-other-machines) отправитель не имеет адреса ответа и `from` это `"unknown"`. Значение создано отправителем; `verifiedPeerPid` это проверенная идентичность.* `from`: имя товарища по команде или адрес отправителя для кросс-сеансного одноранговой. Для [одностороннего кросс-машинного сообщения](/docs/ru/cross-session-messaging#message-sessions-on-other-machines) отправитель не имеет адреса ответа и `from` — это `"unknown"`. Значение создано отправителем; `verifiedPeerPid` — это проверенная личность.
1912*1978*
1913 1979
19141980`fromMode`: класс разрешений отправляющего сеанса, `bypass` или `prompting`, объявленный хостом, который передаёт сообщение пира между вашими сеансами, такой как [настольное приложение](/docs/ru/desktop#work-across-sessions). Claude Code читает его в получающем сеансе, когда применяет [входящие элементы управления](/docs/ru/cross-session-messaging#control-inbound-messages). Требует Agent SDK v0.3.234 или позже.`fromMode`: класс разрешений отправляющего сеанса, `bypass` или `prompting`, объявленный хостом, который передаёт одноранговое сообщение между вашими сеансами, такой как [настольное приложение](/docs/ru/desktop#work-across-sessions). Claude Code читает его в получающем сеансе, когда применяет [входящие элементы управления](/docs/ru/cross-session-messaging#control-inbound-messages). Требует Agent SDK v0.3.234 или позже.
1915 1981
19161982* `senderTaskId`: ID задачи товарища по команде. Отсутствует для кросс-сеансового пира.* `senderTaskId`: ID задачи товарища по команде. Отсутствует для кросс-сеансного одноранговой.
1917*1983*
1918 1984
19191985`name`: отображаемое имя отправителя, нормализованное Claude Code: оно удаляет управляющие символы Unicode, формат, суррогаты и разделители строк или абзацев, затем обрезает результат и ограничивает его 64 кодовыми точками с многоточием. Требует Claude Code v2.1.205 или позже.`name`: отображаемое имя отправителя, нормализованное Claude Code: оно удаляет управление Unicode, формат, суррогат и разделители строк или абзацев, затем обрезает результат и ограничивает его 64 кодовыми точками с многоточием. Требует Claude Code v2.1.205 или позже.
1920 1986
1921*1987*
1922 1988
19231989`body`: декодированное тело сообщения с удалённой оболочкой пира, побайтово совпадающее с тем, что видит модель. Всегда присутствует для сообщения товарища по команде; для кросс-сеансового пира присутствует только, когда ход точно представляет собой одну оболочку пира, сформированную Claude Code. Отобразите `name` и `body` вместо повторного анализа текста сообщения. Требует Claude Code v2.1.205 или позже.`body`: декодированное тело сообщения с удалённой оболочкой одноранговой сети, байт-точное с тем, что видит модель. Всегда присутствует для сообщения товарища по команде; для кросс-сеансного одноранговой, присутствует только когда ход — это ровно одна оболочка одноранговой сети, сформированная Claude Code. Выполняйте рендеринг `name` и `body` вместо повторного анализа текста сообщения. Требует Claude Code v2.1.205 или позже.
1924 1990
1925*1991*
1926 1992
19271993`fromSession`: ID сеанса отправителя, открываемый хостом, установленный хостом отправителя, чтобы ваш пользовательский интерфейс мог ссылаться обратно на отправляющий сеанс. Как `from`, это утверждение отправителя: используйте его только как цель навигации и не рассматривайте его как доказательство идентичности отправителя. Требует Claude Code v2.1.216 или позже.`fromSession`: ID сеанса отправителя, открываемый хостом, установленный хостом отправителя, чтобы ваш пользовательский интерфейс мог ссылаться обратно на отправляющий сеанс. Как `from`, это утверждение отправителя: используйте его только как цель навигации и не рассматривайте его как доказательство личности отправителя. Требует Claude Code v2.1.216 или позже.
1928 1994
1929*1995*
1930 1996
19311997`verifiedPeerPid`: ID процесса процесса, который подключился к сокету кросс-сеансового обмена сообщениями этого сеанса, проверенный ядром и прочитанный из самого соединения, никогда из полезной нагрузки. Используйте его, а не `from`, для идентификации отправителя: `from` может быть подделан любым процессом того же пользователя. Поле отсутствует, когда Claude Code не может его проверить, такой как на Windows или неокончательный ввод, поэтому отсутствующее значение означает, что отправитель не проверен. Для передаваемого трафика он идентифицирует реле, а не автора сообщения, и ID процессов перерабатываются, поэтому рассматривайте его как происхождение, а не как токен аутентификации. Требует Claude Code v2.1.216 или позже.`verifiedPeerPid`: ID процесса процесса, который подключился к сокету кросс-сеансного обмена сообщениями этого сеанса, проверенный ядром и прочитанный из самого соединения, никогда из полезной нагрузки. Используйте его, а не `from`, чтобы идентифицировать отправителя: `from` может быть подделан любым процессом того же пользователя. Это поле отсутствует, когда Claude Code не может его проверить, такой как на Windows или неокончательный ввод, поэтому отсутствующее значение означает, что отправитель не проверен. Для передаваемого трафика он идентифицирует реле, а не автора сообщения, и ID процессов перерабатываются, поэтому рассматривайте его как происхождение, а не как токен аутентификации. Требует Claude Code v2.1.216 или позже.
1932 1998
1933<h2 id="hook-types">1999<h2 id="hook-types">
1934 Типы hooks2000 Типы hooks
2081 tool_name: string;2147 tool_name: string;
2082 tool_input: unknown;2148 tool_input: unknown;
2083 tool_use_id: string;2149 tool_use_id: string;
2150 mcp_server?: McpServerProvenance;
2084};2151};
2085```2152```
2086 2153
2154`mcp_server` присутствует, когда инструмент поступает с сервера MCP; см. [`McpServerProvenance`](#mcpserverprovenance). Входные данные `PostToolUse`, `PostToolUseFailure`, `PermissionRequest` и `PermissionDenied` содержат то же поле. Это поле требует Agent SDK v0.3.274 или позже.
2155
2087<h4 id="posttoolusehookinput">2156<h4 id="posttoolusehookinput">
2088 `PostToolUseHookInput`2157 `PostToolUseHookInput`
2089</h4>2158</h4>
2096 tool_response: unknown;2165 tool_response: unknown;
2097 tool_use_id: string;2166 tool_use_id: string;
2098 duration_ms?: number;2167 duration_ms?: number;
2168 mcp_server?: McpServerProvenance;
2099};2169};
2100```2170```
2101 2171
2112 error: string;2182 error: string;
2113 is_interrupt?: boolean;2183 is_interrupt?: boolean;
2114 duration_ms?: number;2184 duration_ms?: number;
2185 mcp_server?: McpServerProvenance;
2115};2186};
2116```2187```
2117 2188
2146 tool_input: unknown;2217 tool_input: unknown;
2147 tool_use_id: string;2218 tool_use_id: string;
2148 reason: string;2219 reason: string;
2220 mcp_server?: McpServerProvenance;
2149};2221};
2150```2222```
2151 2223
2365 tool_name: string;2437 tool_name: string;
2366 tool_input: unknown;2438 tool_input: unknown;
2367 permission_suggestions?: PermissionUpdate[];2439 permission_suggestions?: PermissionUpdate[];
2440 mcp_server?: McpServerProvenance;
2368};2441};
2369```2442```
2370 2443
3572Аргументы tools MCP — это открытый объект: каждый сервер определяет свои собственные параметры, поэтому тип не накладывает ограничений на имена полей или значения. Обратитесь к собственной схеме tools сервера для полей, которые принимает конкретный tool.3645Аргументы tools MCP — это открытый объект: каждый сервер определяет свои собственные параметры, поэтому тип не накладывает ограничений на имена полей или значения. Обратитесь к собственной схеме tools сервера для полей, которые принимает конкретный tool.
3573 3646
3574<h2 id="tool-output-types">3647<h2 id="tool-output-types">
35753648 Типы выходных данных Tool Типы выходных данных инструментов
3576</h2>3649</h2>
3577 3650
35783651Документация схем выходных данных для всех встроенных tools Claude Code. Эти типы экспортируются из `@anthropic-ai/claude-agent-sdk` и представляют фактические данные ответа, возвращаемые каждым tool.Документация схем выходных данных для всех встроенных инструментов Claude Code. Эти типы экспортируются из `@anthropic-ai/claude-agent-sdk` и представляют фактические данные ответа, возвращаемые каждым инструментом.
3579 3652
3580<h3 id="tooloutputschemas">3653<h3 id="tooloutputschemas">
3581 `ToolOutputSchemas`3654 `ToolOutputSchemas`
3582</h3>3655</h3>
3583 3656
35843657Объединение типов выходных данных tool, экспортируемых из `@anthropic-ai/claude-agent-sdk`; члены включают:Объединение типов выходных данных инструментов, экспортируемых из `@anthropic-ai/claude-agent-sdk`; члены включают:
3585 3658
3586```typescript theme={null}3659```typescript theme={null}
3587type ToolOutputSchemas =3660type ToolOutputSchemas =
3630 Agent3703 Agent
3631</h3>3704</h3>
3632 3705
36333706**Имя tool:** `Agent`. Предыдущее имя `Task` всё ещё принимается как псевдоним, и массив `tools` в инициализирующем сообщении [`SDKSystemMessage`](#sdksystemmessage) в настоящее время перечисляет этот tool как `Task` для обратной совместимости.**Имя инструмента:** `Agent`. Предыдущее имя `Task` по-прежнему принимается как псевдоним, и массив `tools` в сообщении инициализации [`SDKSystemMessage`](#sdksystemmessage) в настоящее время перечисляет этот инструмент как `Task` для обратной совместимости.
3634 3707
3635```typescript theme={null}3708```typescript theme={null}
3636type AgentOutput =3709type AgentOutput =
3700 };3773 };
3701```3774```
3702 3775
37033776Возвращает результат от подагента. Дискриминирован по полю `status`: `"completed"` для завершённых задач, `"async_launched"` для фоновых задач и `"remote_launched"` для задач, которые Claude Code отправил в удалённый облачный сеанс, где `sessionUrl` ссылается на этот сеанс и `taskId` его идентифицирует.Возвращает результат от подагента. Различается по полю `status`: `"completed"` для завершённых задач, `"async_launched"` для фоновых задач и `"remote_launched"` для задач, которые Claude Code отправил в облачный сеанс, где `sessionUrl` ссылается на этот сеанс и `taskId` его идентифицирует.
3704 3777
37053778На варианте `completed` `resolvedModel` называет модель, на которой подагент начал работу, которая может отличаться от запрошенного входного параметра `model` когда применяется [`availableModels`](/docs/ru/model-config#restrict-model-selection) или другое переопределение. Это поле требует Claude Code v2.1.174 или позже. На `async_launched` оно называет модель в использовании, когда задача перешла в фоновый режим.На варианте `completed` `resolvedModel` называет модель, на которой подагент начал работу, которая может отличаться от запрошенного входного параметра `model`, когда применяется [`availableModels`](/docs/ru/model-config#restrict-model-selection) или другое переопределение. Это поле требует Claude Code v2.1.174 или более поздней версии. На `async_launched` оно называет модель, используемую при переводе задачи в фоновый режим.
3706 3779
37073780`modelsUsed` перечисляет модели, которые использовал подагент, по порядку. Поле присутствует только когда произошла замена модели во время выполнения, и модель появляется снова, когда выполнение вернулось к ней. На `async_launched` список охватывает модели, использованные перед переводом в фоновый режим. Оба `modelsUsed` и поведение фонового режима `resolvedModel` требуют Claude Code v2.1.212 или позже.`modelsUsed` перечисляет модели, которые использовал подагент, по порядку. Поле присутствует только при смене модели во время выполнения, и модель появляется снова при возврате к ней. На `async_launched` список охватывает модели, используемые до перевода в фоновый режим. Как `modelsUsed`, так и поведение фонового режима `resolvedModel` требуют Claude Code v2.1.212 или более поздней версии.
3708 3781
37093782Если Claude Code [сохранил изолированный worktree подагента](/docs/ru/worktrees#isolate-subagents-with-worktrees), `worktreePath` в результате `completed` указывает, где его найти. `worktreeBranch` — это его ветка, присутствующая, когда Claude Code создал worktree с git.Если Claude Code [сохранил изолированное рабочее дерево подагента](/docs/ru/worktrees#isolate-subagents-with-worktrees), `worktreePath` в результате `completed` указывает, где его найти. `worktreeBranch` — это его ветка, присутствующая, когда Claude Code создал рабочее дерево с git.
3710 3783
37113784Claude Code заполняет `usage` и `totalTokens` из финального запроса API подагента, а не из всего выполнения, поэтому `usage.service_tier` — это строка уровня обслуживания, которую API сообщила в этом запросе. Когда присутствует, `usage.output_tokens_details.thinking_tokens` — это количество токенов вывода этого запроса, которые были токенами мышления. Поле `output_tokens_details` требует TypeScript SDK v0.3.228 или позже, который поставляется с Claude Code v2.1.228.Claude Code заполняет `usage` и `totalTokens` из финального запроса API подагента, а не из всего выполнения, поэтому `usage.service_tier` — это строка уровня обслуживания, которую API сообщила в этом запросе. Если присутствует, `usage.output_tokens_details.thinking_tokens` — это количество токенов вывода этого запроса, которые были токенами мышления. Поле `output_tokens_details` требует TypeScript SDK v0.3.228 или более поздней версии, которая поставляется с Claude Code v2.1.228.
3712 3785
37133786`usage.output_tokens_details` соответствует [`Usage.output_tokens_details`](#usage) по смыслу, ограниченному этим финальным запросом, но каждый уровень здесь является необязательным. Защитите как объект, так и поле, например `usage.output_tokens_details?.thinking_tokens ?? 0`, вместо прямого чтения.`usage.output_tokens_details` соответствует [`Usage.output_tokens_details`](#usage) по смыслу, ограниченному этим финальным запросом, но каждый уровень здесь является необязательным. Проверьте как объект, так и поле, например `usage.output_tokens_details?.thinking_tokens ?? 0`, вместо прямого чтения.
3714 3787
3715До v2.1.207 опубликованный тип был более узким. Он опускал `worktreePath`, `worktreeBranch`, `citations`, `toolStats.frameCount` и поля использования `inference_geo`, `speed` и `iterations`, и он типизировал `service_tier` как `"standard" | "priority" | "batch"`. Поля, которые тип отмечает как необязательные, могут отсутствовать в результатах, записанных более ранними версиями.3788До v2.1.207 опубликованный тип был более узким. Он опускал `worktreePath`, `worktreeBranch`, `citations`, `toolStats.frameCount` и поля использования `inference_geo`, `speed` и `iterations`, и он типизировал `service_tier` как `"standard" | "priority" | "batch"`. Поля, которые тип отмечает как необязательные, могут отсутствовать в результатах, записанных более ранними версиями.
3716 3789
3718 AskUserQuestion3791 AskUserQuestion
3719</h3>3792</h3>
3720 3793
37213794**Имя tool:** `AskUserQuestion`**Имя инструмента:** `AskUserQuestion`
3722 3795
3723```typescript theme={null}3796```typescript theme={null}
3724type AskUserQuestionOutput = {3797type AskUserQuestionOutput = {
3735};3808};
3736```3809```
3737 3810
37383811Возвращает заданные вопросы и ответы пользователя. `response` устанавливается, когда пользователь ввёл свободный ответ вместо ответа на структурированные вопросы; когда присутствует, Claude получает "Пользователь ответил: …" вместо списка ответов по вопросам.Возвращает заданные вопросы и ответы пользователя. `response` устанавливается, когда пользователь ввёл свободный ответ вместо ответа на структурированные вопросы; если присутствует, Claude получает «Пользователь ответил: …» вместо списка ответов по вопросам.
3739 3812
3740<h3 id="bash-2">3813<h3 id="bash-2">
3741 Bash3814 Bash
3742</h3>3815</h3>
3743 3816
37443817**Имя tool:** `Bash`**Имя инструмента:** `Bash`
3745 3818
3746```typescript theme={null}3819```typescript theme={null}
3747type BashOutput = {3820type BashOutput = {
3779Поля `stdout`, `stderr` и `backgroundTaskId` содержат:3852Поля `stdout`, `stderr` и `backgroundTaskId` содержат:
3780 3853
3781| Поле | Что оно содержит |3854| Поле | Что оно содержит |
37823855| ------------------ | ------------------------------------------------------------------------------------------------------ || ------------------ | -------------------------------------------------------------------------------------------------------------- |
3783| `stdout` | Stdout и stderr команды, объединённые в один чередующийся поток |3856| `stdout` | Stdout и stderr команды, объединённые в один чередующийся поток |
37843857| `stderr` | Уведомления, которые сам tool добавляет, такие как сброс рабочей директории shell, а не stderr команды || `stderr` | Уведомления, которые добавляет сам инструмент, такие как сброс рабочего каталога оболочки, а не stderr команды |
3785| `backgroundTaskId` | Присутствует для фоновых команд |3858| `backgroundTaskId` | Присутствует для фоновых команд |
3786 3859
37873860`timedOutAfterMs` — это timeout в миллисекундах, установленный, когда команда достигла своего timeout и перешла в фоновый режим вместо явного запуска там. `backgroundCwdHint` устанавливается, когда фоновая команда содержала встроенную команду изменения директории, такую как `cd`, `pushd`, `popd` или `chdir`, и отмечает, что рабочая директория сеанса не изменилась. Оба поля требуют Claude Code v2.1.210 или позже.`timedOutAfterMs` — это тайм-аут в миллисекундах, установленный, когда команда достигла своего тайм-аута и перешла в фоновый режим, а не начала там явно. `backgroundCwdHint` устанавливается, когда фоновая команда содержала встроенную команду изменения каталога, такую как `cd`, `pushd`, `popd` или `chdir`, и отмечает, что рабочий каталог сеанса не изменился. Оба поля требуют Claude Code v2.1.210 или более поздней версии.
3788 3861
37893862Когда подагент, работающий на переднем плане, владеет фоновой командой, Claude Code завершает команду, когда этот подагент даёт свой финальный ответ. Claude Code устанавливает `backgroundEndsWithFinalResponse` в `true` на таких командах и опускает поле, когда команда сохраняется в течение хода, как команды, запущенные основным разговором или фоновыми подагентами. Поле требует Claude Code v2.1.227 или позже.Когда подагент, работающий на переднем плане, владеет фоновой командой, Claude Code завершает команду, когда этот подагент даёт свой финальный ответ. Claude Code устанавливает `backgroundEndsWithFinalResponse` в `true` для таких команд и опускает поле, когда команда сохраняется после хода, как команды, запущенные основным разговором или фоновыми подагентами. Поле требует Claude Code v2.1.227 или более поздней версии.
3790 3863
37913864Claude Code устанавливает `gitOperation.commit.branch` в ветку, названную в строке сводки коммита git, и опускает её для коммита, сделанного на отсоединённом HEAD. Поле требует Agent SDK v0.3.227 или позже. Claude Code сообщает команду `gh pr reopen` как действие PR `reopened`, что требует Agent SDK v0.3.234 или позже.Claude Code устанавливает `gitOperation.commit.branch` в ветку, названную в строке сводки коммита git, и опускает её для коммита, сделанного на отсоединённой HEAD. Поле требует Agent SDK v0.3.227 или более поздней версии. Claude Code сообщает команду `gh pr reopen` как действие PR `reopened`, что требует Agent SDK v0.3.234 или более поздней версии.
3792 3865
3793<h3 id="monitor-2">3866<h3 id="monitor-2">
3794 Monitor3867 Monitor
3795</h3>3868</h3>
3796 3869
37973870**Имя tool:** `Monitor`**Имя инструмента:** `Monitor`
3798 3871
3799```typescript theme={null}3872```typescript theme={null}
3800type MonitorOutput = {3873type MonitorOutput = {
3804};3877};
3805```3878```
3806 3879
38073880Возвращает ID фоновой задачи для выполняющегося монитора. Используйте этот ID с `TaskStop` для раннего отмены наблюдения.Возвращает ID фоновой задачи для работающего монитора. Используйте этот ID с `TaskStop` для отмены наблюдения раньше.
3808 3881
3809<h3 id="edit-2">3882<h3 id="edit-2">
3810 Edit3883 Edit
3811</h3>3884</h3>
3812 3885
38133886**Имя tool:** `Edit`**Имя инструмента:** `Edit`
3814 3887
3815```typescript theme={null}3888```typescript theme={null}
3816type FileEditOutput = {3889type FileEditOutput = {
3845 Read3918 Read
3846</h3>3919</h3>
3847 3920
38483921**Имя tool:** `Read`**Имя инструмента:** `Read`
3849 3922
3850```typescript theme={null}3923```typescript theme={null}
3851type FileReadOutput =3924type FileReadOutput =
3917 };3990 };
3918```3991```
3919 3992
39203993Возвращает содержимое файла в формате, подходящем для типа файла. Дискриминирован по полю `type`.Возвращает содержимое файла в формате, подходящем для типа файла. Различается по полю `type`.
3921 3994
3922<h3 id="write-2">3995<h3 id="write-2">
3923 Write3996 Write
3924</h3>3997</h3>
3925 3998
39263999**Имя tool:** `Write`**Имя инструмента:** `Write`
3927 4000
3928```typescript theme={null}4001```typescript theme={null}
3929type FileWriteOutput = {4002type FileWriteOutput = {
3961 Glob4034 Glob
3962</h3>4035</h3>
3963 4036
39644037**Имя tool:** `Glob`**Имя инструмента:** `Glob`
3965 4038
3966```typescript theme={null}4039```typescript theme={null}
3967type GlobOutput = {4040type GlobOutput = {
3974};4047};
3975```4048```
3976 4049
39774050Возвращает пути файлов, соответствующие паттерну glob, отсортированные по времени изменения.Возвращает пути файлов, соответствующие шаблону glob, отсортированные по времени изменения.
3978 4051
39794052`totalMatches` и `countIsComplete` требуют Claude Code v2.1.191 или позже. `totalMatches` сообщает количество совпадающих файлов перед усечением. Когда `countIsComplete` равен false, `totalMatches` является нижней границей, потому что базовый поиск усёк свой собственный вывод.`totalMatches` и `countIsComplete` требуют Claude Code v2.1.191 или более поздней версии. `totalMatches` сообщает количество совпадающих файлов до усечения. Когда `countIsComplete` равен false, `totalMatches` является нижней границей, потому что базовый поиск усёк свой собственный вывод.
3980 4053
3981<h3 id="grep-2">4054<h3 id="grep-2">
3982 Grep4055 Grep
3983</h3>4056</h3>
3984 4057
39854058**Имя tool:** `Grep`**Имя инструмента:** `Grep`
3986 4059
3987```typescript theme={null}4060```typescript theme={null}
3988type GrepOutput = {4061type GrepOutput = {
3999};4072};
4000```4073```
4001 4074
40024075Возвращает результаты поиска. Форма варьируется по `mode`: список файлов, содержимое с совпадениями или количество совпадений. В режиме `count` `numFiles` и `numMatches` — это итоги по полному набору результатов, а не по разбитому на страницы срезу. До v2.1.208 `head_limit` или `offset`, который усекал перечисленные записи, также усекал эти итоги.Возвращает результаты поиска. Форма варьируется в зависимости от `mode`: список файлов, содержимое с совпадениями или подсчёты совпадений. В режиме `count` `numFiles` и `numMatches` — это итоги по полному набору результатов, а не по разбитому на страницы срезу. До v2.1.208 `head_limit` или `offset`, который усекал перечисленные записи, также усекал эти итоги.
4003 4076
40044077`totalFiles` требует Claude Code v2.1.208 или позже и сообщает общее количество результатов перед `head_limit` и `offset` разбиением на страницы в режиме `files_with_matches`. `totalLines` требует Claude Code v2.1.210 или позже и сообщает общее количество строк перед разбиением на страницы в режиме `content`.`totalFiles` требует Claude Code v2.1.208 или более поздней версии и сообщает общее количество результатов до разбиения на страницы `head_limit` и `offset` в режиме `files_with_matches`. `totalLines` требует Claude Code v2.1.210 или более поздней версии и сообщает общее количество строк до разбиения на страницы в режиме `content`.
4005 4078
4006<h3 id="taskstop-2">4079<h3 id="taskstop-2">
4007 TaskStop4080 TaskStop
4008</h3>4081</h3>
4009 4082
40104083**Имя tool:** `TaskStop`**Имя инструмента:** `TaskStop`
4011 4084
4012```typescript theme={null}4085```typescript theme={null}
4013type TaskStopOutput = {4086type TaskStopOutput = {
4024 NotebookEdit4097 NotebookEdit
4025</h3>4098</h3>
4026 4099
40274100**Имя tool:** `NotebookEdit`**Имя инструмента:** `NotebookEdit`
4028 4101
4029```typescript theme={null}4102```typescript theme={null}
4030type NotebookEditOutput = {4103type NotebookEditOutput = {
4041};4114};
4042```4115```
4043 4116
40444117Возвращает результат редактирования notebook с исходным и обновлённым содержимым файла.Возвращает результат редактирования ноутбука с исходным и обновлённым содержимым файла.
4045 4118
4046<h3 id="webfetch-2">4119<h3 id="webfetch-2">
4047 WebFetch4120 WebFetch
4048</h3>4121</h3>
4049 4122
40504123**Имя tool:** `WebFetch`**Имя инструмента:** `WebFetch`
4051 4124
4052```typescript theme={null}4125```typescript theme={null}
4053type WebFetchOutput = {4126type WebFetchOutput = {
4065};4138};
4066```4139```
4067 4140
40684141Возвращает полученное содержимое с HTTP статусом и метаданными.Возвращает полученное содержимое со статусом HTTP и метаданными.
4069 4142
40704143`artifactRead` — это собственная запись Claude Code о прочитанном артефакте, присутствующая только когда Claude получил артефакт, который сеанс может опубликовать. Claude Code читает его обратно, когда сеанс возобновляется, чтобы последующая публикация строилась на правильной версии; ваш код не должен действовать на это. `slug` называет артефакт, `ver` — это версия, которую чтение записало, и отсутствует, когда оно ничего не записало, и `seeded: false` отмечает чтение, чей полный источник не достиг Claude. Поле `seeded` требует Agent SDK v0.3.239 или позже.`artifactRead` — это собственная запись Claude Code о чтении артефакта, присутствующая только когда Claude получил артефакт, который сеанс может опубликовать. Claude Code читает его обратно, когда сеанс возобновляется, чтобы более поздняя публикация строилась на правильной версии; ваш код не должен действовать на основе этого. `slug` называет артефакт, `ver` — это версия, которую чтение записало, и отсутствует, когда оно ничего не записало, и `seeded: false` отмечает чтение, полный источник которого не достиг Claude. Поле `seeded` требует Agent SDK v0.3.239 или более поздней версии.
4071 4144
4072<h3 id="websearch-2">4145<h3 id="websearch-2">
4073 WebSearch4146 WebSearch
4074</h3>4147</h3>
4075 4148
40764149**Имя tool:** `WebSearch`**Имя инструмента:** `WebSearch`
4077 4150
4078```typescript theme={null}4151```typescript theme={null}
4079type WebSearchOutput = {4152type WebSearchOutput = {
4090};4163};
4091```4164```
4092 4165
40934166Возвращает результаты поиска из веб.Возвращает результаты поиска из веб-сети.
4094 4167
4095<h3 id="workflow-2">4168<h3 id="workflow-2">
4096 Workflow4169 Workflow
4097</h3>4170</h3>
4098 4171
40994172**Имя tool:** `Workflow`**Имя инструмента:** `Workflow`
4100 4173
4101```typescript theme={null}4174```typescript theme={null}
4102type WorkflowOutput = {4175type WorkflowOutput = {
4108 summary?: string;4181 summary?: string;
4109 transcriptDir?: string;4182 transcriptDir?: string;
4110 scriptPath?: string;4183 scriptPath?: string;
41114184 sessionUrl?: string; // set when the workflow launched as a remote session sessionUrl?: string; // set when the workflow launched as a cloud session
4112 warning?: string;4185 warning?: string;
4113 error?: string;4186 error?: string;
4114};4187};
4115```4188```
4116 4189
41174190Возвращает результат сразу после того, как tool принимает вызов. Окончательный результат поступает позже как завершение задачи. Проверьте `error` перед тем, как рассматривать запуск как начатый: скрипт, который не прошёл проверку синтаксиса, возвращает `status: "async_launched"` с установленным `error` и никогда не запускается.Возвращается сразу после того, как инструмент принимает вызов. Финальный результат приходит позже как завершение задачи. Проверьте `error` перед тем, как рассматривать выполнение как начатое: скрипт, который не проходит проверку синтаксиса, возвращает `status: "async_launched"` с установленным `error` и никогда не выполняется.
4118 4191
4119| Поле | Тип | Описание |4192| Поле | Тип | Описание |
41204193| --------------- | --------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- || --------------- | --------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
41214194| `status` | `"async_launched" \| "remote_launched"` | Tool принял вызов. `"async_launched"` для выполнений в процессе, `"remote_launched"` для выполнений, отправленных в удалённый сеанс вместо выполнения в процессе || `status` | `"async_launched" \| "remote_launched"` | Инструмент принял вызов. `"async_launched"` для выполнений в процессе, `"remote_launched"` для выполнений, отправленных в облачный сеанс вместо выполнения в процессе |
41224195| `taskId` | `string` | Идентификатор фоновой задачи для запуска || `taskId` | `string` | Идентификатор фоновой задачи для выполнения |
4123| `taskType` | `"local_workflow" \| "remote_agent"` | Тип задачи зарегистрированной фоновой задачи, соответствующий ветке `status` |4196| `taskType` | `"local_workflow" \| "remote_agent"` | Тип задачи зарегистрированной фоновой задачи, соответствующий ветке `status` |
4124| `workflowName` | `string` | `meta.name` из скрипта workflow |4197| `workflowName` | `string` | `meta.name` из скрипта workflow |
41254198| `runId` | `string` | Идентификатор запуска workflow для передачи как `resumeFromRunId` при последующем вызове. Отсутствует для запусков `remote_launched`, где URL облачного сеанса — это дескриптор возобновления || `runId` | `string` | Идентификатор выполнения workflow для передачи как `resumeFromRunId` при более позднем вызове. Отсутствует для выполнений `remote_launched`, где URL облачного сеанса является дескриптором возобновления |
4126| `summary` | `string` | Однострочное описание того, что делает workflow |4199| `summary` | `string` | Однострочное описание того, что делает workflow |
41274200| `transcriptDir` | `string` | Директория, где записываются транскрипты подагента во время выполнения || `transcriptDir` | `string` | Каталог, где записываются стенограммы подагентов во время выполнения |
41284201| `scriptPath` | `string` | Путь к сохранённому скрипту workflow для этого запуска. Отредактируйте его и передайте обратно как `scriptPath` для повторного запуска без повторной отправки скрипта || `scriptPath` | `string` | Путь к сохранённому скрипту workflow для этого выполнения. Отредактируйте его и передайте обратно как `scriptPath` для повторного выполнения без повторной отправки скрипта |
4129| `sessionUrl` | `string` | URL облачного сеанса, установленный, когда `status` равен `"remote_launched"` |4202| `sessionUrl` | `string` | URL облачного сеанса, установленный, когда `status` равен `"remote_launched"` |
41304203| `warning` | `string` | Неблокирующее предупреждение, такое как локальное состояние git, отличающееся от отправленной ветки, которую клонирует облачный сеанс || `warning` | `string` | Неблокирующее предупреждение, такое как локальное состояние git, отличающееся от отправленной ветки, которую будет клонировать облачный сеанс |
41314204| `error` | `string` | Устанавливается, когда скрипт не прошёл проверку синтаксиса. Когда присутствует, запуск не начался несмотря на статус запуска || `error` | `string` | Установлено, когда скрипт не проходит проверку синтаксиса. Если присутствует, выполнение не началось несмотря на статус запуска |
4132 4205
4133<h3 id="todowrite-2">4206<h3 id="todowrite-2">
4134 TodoWrite4207 TodoWrite
4135</h3>4208</h3>
4136 4209
41374210**Имя tool:** `TodoWrite`**Имя инструмента:** `TodoWrite`
4138 4211
4139```typescript theme={null}4212```typescript theme={null}
4140type TodoWriteOutput = {4213type TodoWriteOutput = {
4173 TaskCreate4246 TaskCreate
4174</h3>4247</h3>
4175 4248
41764249**Имя tool:** `TaskCreate`**Имя инструмента:** `TaskCreate`
4177 4250
4178```typescript theme={null}4251```typescript theme={null}
4179type TaskCreateOutput = {4252type TaskCreateOutput = {
4190 TaskUpdate4263 TaskUpdate
4191</h3>4264</h3>
4192 4265
41934266**Имя tool:** `TaskUpdate`**Имя инструмента:** `TaskUpdate`
4194 4267
4195```typescript theme={null}4268```typescript theme={null}
4196type TaskUpdateOutput = {4269type TaskUpdateOutput = {
4211 TaskGet4284 TaskGet
4212</h3>4285</h3>
4213 4286
42144287**Имя tool:** `TaskGet`**Имя инструмента:** `TaskGet`
4215 4288
4216```typescript theme={null}4289```typescript theme={null}
4217type TaskGetOutput = {4290type TaskGetOutput = {
4226};4299};
4227```4300```
4228 4301
42294302Возвращает полную запись задачи или `null` когда ID не найден.Возвращает полную запись задачи или `null`, когда ID не найден.
4230 4303
4231<h3 id="tasklist-2">4304<h3 id="tasklist-2">
4232 TaskList4305 TaskList
4233</h3>4306</h3>
4234 4307
42354308**Имя tool:** `TaskList`**Имя инструмента:** `TaskList`
4236 4309
4237```typescript theme={null}4310```typescript theme={null}
4238type TaskListOutput = {4311type TaskListOutput = {
4252 ExitPlanMode4325 ExitPlanMode
4253</h3>4326</h3>
4254 4327
42554328**Имя tool:** `ExitPlanMode`**Имя инструмента:** `ExitPlanMode`
4256 4329
4257```typescript theme={null}4330```typescript theme={null}
4258type ExitPlanModeOutput = {4331type ExitPlanModeOutput = {
4266};4339};
4267```4340```
4268 4341
42694342Возвращает состояние плана после выхода из режима планирования.Возвращает состояние плана после выхода из режима плана.
4270 4343
4271<h3 id="listmcpresources-2">4344<h3 id="listmcpresources-2">
4272 ListMcpResources4345 ListMcpResources
4273</h3>4346</h3>
4274 4347
42754348**Имя tool:** `ListMcpResourcesTool`**Имя инструмента:** `ListMcpResourcesTool`
4276 4349
4277```typescript theme={null}4350```typescript theme={null}
4278type ListMcpResourcesOutput = Array<{4351type ListMcpResourcesOutput = Array<{
4284}>;4357}>;
4285```4358```
4286 4359
42874360Возвращает массив доступных MCP ресурсов.Возвращает массив доступных ресурсов MCP.
4288 4361
4289<h3 id="readmcpresource-2">4362<h3 id="readmcpresource-2">
4290 ReadMcpResource4363 ReadMcpResource
4291</h3>4364</h3>
4292 4365
42934366**Имя tool:** `ReadMcpResourceTool`**Имя инструмента:** `ReadMcpResourceTool`
4294 4367
4295```typescript theme={null}4368```typescript theme={null}
4296type ReadMcpResourceOutput = {4369type ReadMcpResourceOutput = {
4304};4377};
4305```4378```
4306 4379
43074380Возвращает содержимое запрошенного MCP ресурса.Возвращает содержимое запрошенного ресурса MCP.
4308 4381
4309<h3 id="enterworktree-2">4382<h3 id="enterworktree-2">
4310 EnterWorktree4383 EnterWorktree
4311</h3>4384</h3>
4312 4385
43134386**Имя tool:** `EnterWorktree`**Имя инструмента:** `EnterWorktree`
4314 4387
4315```typescript theme={null}4388```typescript theme={null}
4316type EnterWorktreeOutput = {4389type EnterWorktreeOutput = {
4320};4393};
4321```4394```
4322 4395
43234396Возвращает информацию о git worktree.Возвращает информацию о git рабочем дереве.
4324 4397
4325<h3 id="exitworktree-2">4398<h3 id="exitworktree-2">
4326 ExitWorktree4399 ExitWorktree
4327</h3>4400</h3>
4328 4401
43294402**Имя tool:** `ExitWorktree`**Имя инструмента:** `ExitWorktree`
4330 4403
4331```typescript theme={null}4404```typescript theme={null}
4332type ExitWorktreeOutput = {4405type ExitWorktreeOutput = {
4341};4414};
4342```4415```
4343 4416
43444417Возвращает действие, которое было предпринято, и детали о worktree, из которого был выход.Возвращает выполненное действие и детали о рабочем дереве, из которого был выход.
4345 4418
4346<h3 id="enterplanmode-2">4419<h3 id="enterplanmode-2">
4347 EnterPlanMode4420 EnterPlanMode
4348</h3>4421</h3>
4349 4422
43504423**Имя tool:** `EnterPlanMode`**Имя инструмента:** `EnterPlanMode`
4351 4424
4352```typescript theme={null}4425```typescript theme={null}
4353type EnterPlanModeOutput = {4426type EnterPlanModeOutput = {
4355};4428};
4356```4429```
4357 4430
43584431Возвращает подтверждение того, что режим планирования был активирован.Возвращает подтверждение того, что режим плана был активирован.
4359 4432
4360<h3 id="croncreate-2">4433<h3 id="croncreate-2">
4361 CronCreate4434 CronCreate
4362</h3>4435</h3>
4363 4436
43644437**Имя tool:** `CronCreate`**Имя инструмента:** `CronCreate`
4365 4438
4366```typescript theme={null}4439```typescript theme={null}
4367type CronCreateOutput = {4440type CronCreateOutput = {
4378 CronDelete4451 CronDelete
4379</h3>4452</h3>
4380 4453
43814454**Имя tool:** `CronDelete`**Имя инструмента:** `CronDelete`
4382 4455
4383```typescript theme={null}4456```typescript theme={null}
4384type CronDeleteOutput = {4457type CronDeleteOutput = {
4392 CronList4465 CronList
4393</h3>4466</h3>
4394 4467
43954468**Имя tool:** `CronList`**Имя инструмента:** `CronList`
4396 4469
4397```typescript theme={null}4470```typescript theme={null}
4398type CronListOutput = {4471type CronListOutput = {
4407};4480};
4408```4481```
4409 4482
44104483Возвращает запланированные cron задачи: долговечные задачи из `.claude/scheduled_tasks.json` и задачи только для сеанса из текущего сеанса. Задача только для сеанса содержит `durable: false`; задачи, прочитанные с диска, опускают поле.Возвращает запланированные cron задачи: долговечные задачи из `.claude/scheduled_tasks.json` и задачи только для сеанса из текущего сеанса. Задача только для сеанса содержит `durable: false`; задачи, прочитанные с диска, опускают это поле.
4411 4484
4412<h3 id="schedulewakeup-2">4485<h3 id="schedulewakeup-2">
4413 ScheduleWakeup4486 ScheduleWakeup
4414</h3>4487</h3>
4415 4488
44164489**Имя tool:** `ScheduleWakeup`**Имя инструмента:** `ScheduleWakeup`
4417 4490
4418```typescript theme={null}4491```typescript theme={null}
4419type ScheduleWakeupOutput = {4492type ScheduleWakeupOutput = {
4425};4498};
4426```4499```
4427 4500
44284501Возвращает, когда пробуждение сработает как временная метка эпохи в миллисекундах, задержку, которая была фактически использована, и была ли запрошенная задержка ограничена. Поле `stopped` равно `true`, когда вызов завершил цикл с `stop: true`. Это требует Claude Code v2.1.202 или позже. Поле `cancelledWakeups` подсчитывает, сколько ожидающих пробуждений отменил вызов `stop: true`. Значение 0 означает, что ничего не было в ожидании, и повторяющийся `/loop` cron не отменяется `stop: true`. Это требует Claude Code v2.1.206 или позже.Возвращает, когда пробуждение сработает как временная метка эпохи в миллисекундах, фактически использованную задержку и была ли запрошенная задержка ограничена. Поле `stopped` равно `true`, когда вызов завершил цикл с `stop: true`. Это требует Claude Code v2.1.202 или более поздней версии. Поле `cancelledWakeups` подсчитывает, сколько ожидающих пробуждений отменил вызов `stop: true`. Значение 0 означает, что ничего не было в ожидании, и повторяющийся `/loop` cron не отменяется `stop: true`. Это требует Claude Code v2.1.206 или более поздней версии.
4429 4502
4430<h3 id="remotetrigger-2">4503<h3 id="remotetrigger-2">
4431 RemoteTrigger4504 RemoteTrigger
4432</h3>4505</h3>
4433 4506
44344507**Имя tool:** `RemoteTrigger`**Имя инструмента:** `RemoteTrigger`
4435 4508
4436```typescript theme={null}4509```typescript theme={null}
4437type RemoteTriggerOutput = {4510type RemoteTriggerOutput = {
4447 PushNotification4520 PushNotification
4448</h3>4521</h3>
4449 4522
44504523**Имя tool:** `PushNotification`**Имя инструмента:** `PushNotification`
4451 4524
4452```typescript theme={null}4525```typescript theme={null}
4453type PushNotificationOutput = {4526type PushNotificationOutput = {
4459};4532};
4460```4533```
4461 4534
44624535Возвращает детали доставки, включая была ли отправлена push или локальное уведомление и почему доставка была пропущена.Возвращает детали доставки, включая отправлено ли push или локальное уведомление и почему доставка была пропущена.
4463 4536
4464<h3 id="repl-2">4537<h3 id="repl-2">
4465 REPL4538 REPL
4466</h3>4539</h3>
4467 4540
44684541**Имя tool:** `REPL`**Имя инструмента:** `REPL`
4469 4542
4470```typescript theme={null}4543```typescript theme={null}
4471type REPLOutput = {4544type REPLOutput = {
4493 ReportFindings4566 ReportFindings
4494</h3>4567</h3>
4495 4568
44964569**Имя tool:** `ReportFindings`**Имя инструмента:** `ReportFindings`
4497 4570
4498```typescript theme={null}4571```typescript theme={null}
4499type ReportFindingsOutput = {4572type ReportFindingsOutput = {
4512};4585};
4513```4586```
4514 4587
45154588Возвращает количество выявленных результатов, уровень усилий, на котором работала проверка, и результаты, повторённые обратно для тела результата. Требует Claude Code v2.1.196 или позже. Повторённое поле `short_summary` требует Claude Code v2.1.212 или позже.Возвращает количество сообщённых находок, уровень усилий, на котором выполнялся обзор, и находки, повторённые обратно для тела результата. Требует Claude Code v2.1.196 или более поздней версии. Повторённое поле `short_summary` требует Claude Code v2.1.212 или более поздней версии.
4516 4589
4517<h3 id="artifact-2">4590<h3 id="artifact-2">
4518 Artifact4591 Artifact
4519</h3>4592</h3>
4520 4593
45214594**Имя tool:** `Artifact`**Имя инструмента:** `Artifact`
4522 4595
4523```typescript theme={null}4596```typescript theme={null}
4524type ArtifactOutput =4597type ArtifactOutput =
4549 };4622 };
4550```4623```
4551 4624
45524625Возвращает `url` опубликованной страницы и локальный `path`, который был опубликован для действия публикации, с `updated`, установленным в true, когда публикация переразвернула существующий артефакт, и `warnings`, содержащие любые рекомендации времени публикации. Действие списка возвращает строки `artifacts` вместо этого, с `truncated`, установленным, когда существует больше артефактов, чем запрошенный лимит. На списках, чья область не `"mine"`, каждая строка содержит `rel`, отмечающий, владеет ли пользователь артефактом или он был с ними поделён, и `scope` вывода записывает, какая область, отличная от по умолчанию, произвела список; оба отсутствуют на списках по умолчанию.Возвращает `url` опубликованной страницы и локальный `path`, который был опубликован для действия публикации, с `updated`, установленным в true, когда публикация переразвернула существующий артефакт, и `warnings`, содержащие любые рекомендации времени публикации. Действие списка возвращает строки `artifacts` вместо этого, с `truncated`, установленным, когда существует больше артефактов, чем запрошенный лимит. На списках, область которых не `"mine"`, каждая строка содержит `rel`, отмечающий, владеет ли пользователь артефактом или он был с ними поделён, и `scope` вывода записывает, какая область, отличная от стандартной, произвела список; оба отсутствуют на стандартных списках.
4553 4626
4554<h3 id="projects-2">4627<h3 id="projects-2">
4555 Projects4628 Projects
4556</h3>4629</h3>
4557 4630
45584631**Имя tool:** `Projects`**Имя инструмента:** `Projects`
4559 4632
4560```typescript theme={null}4633```typescript theme={null}
4561type ProjectsOutput =4634type ProjectsOutput =
4613 };4686 };
4614```4687```
4615 4688
46164689Дискриминирован по полю `method`, отражающему входные данные. `project_read` возвращает небольшие текстовые документы встроенными в `content` и записывает более крупные документы в путь `local_file` вместо этого; `project_search` возвращает RAG `hits` с `rag: true`, когда индекс проекта доступен, и возвращается к списку пути `docs` в противном случае.Различается по полю `method`, отражая входные данные. `project_read` возвращает небольшие текстовые документы встроенными в `content` и записывает более крупные документы в путь `local_file` вместо этого; `project_search` возвращает RAG `hits` с `rag: true`, когда индекс проекта доступен, и откатывается на список пути `docs` в противном случае.
4617 4690
4618<h3 id="readmcpresourcedir-2">4691<h3 id="readmcpresourcedir-2">
4619 ReadMcpResourceDir4692 ReadMcpResourceDir
4620</h3>4693</h3>
4621 4694
46224695**Имя tool:** `ReadMcpResourceDirTool`**Имя инструмента:** `ReadMcpResourceDirTool`
4623 4696
4624```typescript theme={null}4697```typescript theme={null}
4625type ReadMcpResourceDirOutput = {4698type ReadMcpResourceDirOutput = {
4632};4705};
4633```4706```
4634 4707
46354708Возвращает прямых потомков ресурса директории. Поддиректории появляются с mimeType `"inode/directory"`; `error` содержит понятное для человека сообщение, когда сервер не смог перечислить директорию.Возвращает прямых потомков ресурса каталога. Подкаталоги появляются с mimeType `"inode/directory"`; `error` содержит понятное для человека сообщение, когда сервер не смог перечислить каталог.
4636 4709
4637<h3 id="refreshmcptools-2">4710<h3 id="refreshmcptools-2">
4638 RefreshMcpTools4711 RefreshMcpTools
4639</h3>4712</h3>
4640 4713
46414714**Имя tool:** `RefreshMcpTools`**Имя инструмента:** `RefreshMcpTools`
4642 4715
4643```typescript theme={null}4716```typescript theme={null}
4644type RefreshMcpToolsOutput = Array<{4717type RefreshMcpToolsOutput = Array<{
4651}>;4724}>;
4652```4725```
4653 4726
46544727Возвращает одну запись на сервер: `refreshed` означает, что переопрошенный список tools был применён, `error` означает, что переопрос не удался и предыдущий набор tools был сохранён, и `not_connected` означает, что сервер не имеет живого соединения для опроса.Возвращает одну запись на сервер: `refreshed` означает, что переопрошенный список инструментов был применён, `error` означает, что переопрос не удался и предыдущий набор инструментов был сохранён, и `not_connected` означает, что сервер не имеет активного соединения для опроса.
4655 4728
4656<h3 id="showonboardingrolepicker-2">4729<h3 id="showonboardingrolepicker-2">
4657 ShowOnboardingRolePicker4730 ShowOnboardingRolePicker
4658</h3>4731</h3>
4659 4732
46604733**Имя tool:** `ShowOnboardingRolePicker`**Имя инструмента:** `ShowOnboardingRolePicker`
4661 4734
4662```typescript theme={null}4735```typescript theme={null}
4663type ShowOnboardingRolePickerOutput = {4736type ShowOnboardingRolePickerOutput = {
4672 McpOutput4745 McpOutput
4673</h3>4746</h3>
4674 4747
46754748**Имя tool:** динамические имена MCP tools вида `mcp__<server>__<tool>`**Имя инструмента:** динамические имена инструментов MCP вида `mcp__<server>__<tool>`
4676 4749
4677```typescript theme={null}4750```typescript theme={null}
4678type McpOutput =4751type McpOutput =
4686 };4759 };
4687```4760```
4688 4761
46894762Результаты MCP tools возвращаются как строка или массив блоков содержимого, в зависимости от сервера. Конечная ветка простого объекта в экспортируемом типе — это артефакт генерации схемы: SDK не возвращает простой объект, потому что структурированный вывод сервера сериализуется в строку JSON перед возвратом. Во время выполнения значение также может быть `undefined`, хотя экспортируемый тип это не моделирует.Результаты инструментов MCP возвращаются как строка или массив блоков содержимого, в зависимости от сервера. Конечная ветка простого объекта в экспортируемом типе — это артефакт генерации схемы: SDK не возвращает голый объект, потому что структурированный вывод сервера сериализуется в строку JSON перед возвратом. Во время выполнения значение также может быть `undefined`, хотя экспортируемый тип это не моделирует.
4690 4763
4691<h2 id="permission-types">4764<h2 id="permission-types">
4692 Типы разрешений4765 Типы разрешений
4882| `description` | `string` | Описание, когда использовать этого агента |4955| `description` | `string` | Описание, когда использовать этого агента |
4883| `model` | `string \| undefined` | Модель, которую использует этот агент: псевдоним или идентификатор модели, или `'inherit'` для модели родителя. Когда это `undefined`, Claude Code выбирает модель в [порядке выбора модели подагента](/docs/ru/sub-agents#choose-a-model) |4956| `model` | `string \| undefined` | Модель, которую использует этот агент: псевдоним или идентификатор модели, или `'inherit'` для модели родителя. Когда это `undefined`, Claude Code выбирает модель в [порядке выбора модели подагента](/docs/ru/sub-agents#choose-a-model) |
4884 4957
4958<h3 id="mcpserverprovenance">
4959 `McpServerProvenance`
4960</h3>
4961
4962MCP сервер, который обслуживает tool `mcp__*`, и источник определения этого сервера. Входные данные hook [`PreToolUse`](#pretoolusehookinput), `PostToolUse`, `PostToolUseFailure`, `PermissionRequest` и `PermissionDenied` несут его как `mcp_server`, а опции [`CanUseTool`](#canusetool) несут его как `mcpServer`. Оба опускают его для tools, которые не поступают от MCP сервера.
4963
4964```typescript theme={null}
4965type McpServerProvenance = {
4966 name: string;
4967 source: string;
4968};
4969```
4970
4971| Поле | Тип | Описание |
4972| :------- | :------- | :---------------------------------------------------------------------------------------------------------------------- |
4973| `name` | `string` | Имя, под которым зарегистрирован сервер, то же значение, которое [`mcpServerStatus()`](#query-object) сообщает для него |
4974| `source` | `string` | Источник определения сервера: `sdk`, `plugin` или область конфигурации |
4975
4976`source` принимает одно из следующих значений. Набор открыт, поэтому рассматривайте значение, которое вы не узнаёте, как настроенный источник, никогда не как `sdk`:
4977
4978* **`sdk`**: встроенный в процесс сервер, который зарегистрировало ваше приложение. Только приложение-хост SDK может зарегистрировать один, поэтому настроенный сервер никогда не сообщает `sdk`, независимо от его имени.
4979* **`plugin`**: сервер, который предоставляет [plugin](/docs/ru/agent-sdk/plugins). Его `name` это форма с областью видимости `plugin:<plugin-name>:<server-name>`, описанная в разделе [plugin-provided MCP servers](/docs/ru/mcp#plugin-provided-mcp-servers).
4980* **Область конфигурации**: `user`, `project`, `local`, `dynamic`, `managed`, `enterprise`, `claudeai` или `agent`. Сервер `.mcp.json` сообщает `project`, и [MCP installation scopes](/docs/ru/mcp#mcp-installation-scopes) определяет `local`, `project` и `user`. Серверы, которые ваше приложение передаёт в опции [`mcpServers`](#options), кроме встроенных в процесс SDK серверов, сообщают `dynamic`.
4981
4982Основывайте решения о доверии на `source`, а не на `name` или префиксе имени tool `mcp__<server>__`. Для любого источника, кроме `sdk`, `name` это недоверенный текст: экранируйте его перед отображением.
4983
4984`McpServerProvenance` и поля, которые его несут, требуют Agent SDK v0.3.274 или позже.
4985
4885<h3 id="mcpserverstatus">4986<h3 id="mcpserverstatus">
4886 `McpServerStatus`4987 `McpServerStatus`
4887</h3>4988</h3>
4899 error?: string;5000 error?: string;
4900 config?: McpServerStatusConfig;5001 config?: McpServerStatusConfig;
4901 scope?: string;5002 scope?: string;
5003 source?: string;
4902 tools?: {5004 tools?: {
4903 name: string;5005 name: string;
4904 description?: string;5006 description?: string;
4911};5013};
4912```5014```
4913 5015
5016`source` говорит, откуда поступило определение сервера, с теми же значениями и правилом доверия, что и `source` [`McpServerProvenance`](#mcpserverprovenance). Поле требует Agent SDK v0.3.274 или позже и отсутствует в более ранних версиях.
5017
4914<h3 id="mcpserverstatusconfig">5018<h3 id="mcpserverstatusconfig">
4915 `McpServerStatusConfig`5019 `McpServerStatusConfig`
4916</h3>5020</h3>