6 6
7> Контролируйте, как ваш агент использует инструменты, с помощью режимов разрешений, hooks и декларативных правил разрешения/запрета.7> Контролируйте, как ваш агент использует инструменты, с помощью режимов разрешений, hooks и декларативных правил разрешения/запрета.
8 8
9Claude Agent SDK предоставляет элементы управления разрешениями для управления использованием инструментов Claude. Используйте режимы разрешений и правила для определения того, что разрешено автоматически, и обратный вызов [`canUseTool`](/docs/ru/agent-sdk/user-input) для обработки всего остального во время выполнения.9Claude Agent SDK предоставляет элементы управления разрешениями для управления использованием инструментов Claude. Используйте режимы разрешений и правила для определения того, что разрешено автоматически, и обратный вызов [`canUseTool`](https://code.claude.com/docs/ru/agent-sdk/user-input) для обработки всего остального во время выполнения.
10 10
11## Как оцениваются разрешения11## Как оцениваются разрешения
12 12
14 14
15**1. Hooks**15**1. Hooks**
16 16
17Сначала запустите [хуки](/docs/ru/agent-sdk/hooks.md). Хук может отклонить вызов полностью или пропустить его дальше. Хук, который возвращает `allow`, не пропускает правила deny и ask ниже; они оцениваются независимо от результата хука.17Сначала запустите [хуки](https://code.claude.com/docs/ru/agent-sdk/hooks.md). Хук может отклонить вызов полностью или пропустить его дальше. Хук, который возвращает `allow`, не пропускает правила deny и ask ниже; они оцениваются независимо от результата хука.
18 18
19Хук `PreToolUse`, который возвращает `allow`, также не может одобрить команду `rm` или `rmdir`, цель которой Claude Code распознает как [критический путь](/docs/ru/permission-modes.md#critical-paths), например `rm -rf ~`. О том, что делает такой `allow` в режиме планирования, см. [Подтверждения хуков в режиме планирования](/docs/ru/permissions.md#hook-approvals-in-plan-mode).19Хук `PreToolUse`, который возвращает `allow`, также не может одобрить команду `rm` или `rmdir`, цель которой Claude Code распознает как [критический путь](https://code.claude.com/docs/ru/permission-modes.md#critical-paths), например `rm -rf ~`. О том, что делает такой `allow` в режиме планирования, см. [Подтверждения хуков в режиме планирования](https://code.claude.com/docs/ru/permissions.md#hook-approvals-in-plan-mode).
20 20
21**2. Deny rules**21**2. Deny rules**
22 22
23Проверьте правила `deny` (из `disallowed_tools` и [settings.json](/docs/ru/settings-reference.md#permission-settings)). Если правило deny совпадает, инструмент блокируется, даже в режиме `bypassPermissions`. Правила deny с простым названием, такие как `Bash`, удаляют инструмент из контекста Claude перед началом этой оценки, поэтому на этом шаге проверяются только правила с областью действия, такие как `Bash(rm *)`.23Проверьте правила `deny` (из `disallowed_tools` и [settings.json](https://code.claude.com/docs/ru/settings-reference.md#permission-settings)). Если правило deny совпадает, инструмент блокируется, даже в режиме `bypassPermissions`. Правила deny с простым названием, такие как `Bash`, удаляют инструмент из контекста Claude перед началом этой оценки, поэтому на этом шаге проверяются только правила с областью действия, такие как `Bash(rm *)`.
24 24
25**3. Ask rules**25**3. Ask rules**
26 26
27Проверьте правила `ask` из [settings.json](/docs/ru/settings-reference.md#permission-settings). Если правило ask совпадает, вызов передается в ваш callback [`canUseTool`](/docs/ru/agent-sdk/user-input) для подтверждения, даже в режиме `bypassPermissions`.27Проверьте правила `ask` из [settings.json](https://code.claude.com/docs/ru/settings-reference.md#permission-settings). Если правило ask совпадает, вызов передается в ваш callback [`canUseTool`](https://code.claude.com/docs/ru/agent-sdk/user-input) для подтверждения, даже в режиме `bypassPermissions`.
28 28
29Инструменты, требующие взаимодействия с пользователем, ведут себя так же: `AskUserQuestion` и MCP инструменты, сервер которых устанавливает [`_meta["anthropic/requiresUserInteraction"]`](/docs/ru/mcp#require-approval-for-a-specific-tool), всегда передаются в callback, даже когда совпадает правило allow. В режиме `dontAsk` оба случая отклоняются вместо этого, потому что этот режим никогда не запрашивает. Аннотация MCP требует Claude Code v2.1.199 или позже.29Инструменты, требующие взаимодействия с пользователем, ведут себя так же: `AskUserQuestion` и MCP инструменты, сервер которых устанавливает [`_meta["anthropic/requiresUserInteraction"]`](https://code.claude.com/docs/ru/mcp#require-approval-for-a-specific-tool), всегда передаются в callback, даже когда совпадает правило allow. В режиме `dontAsk` оба случая отклоняются вместо этого, потому что этот режим никогда не запрашивает. Аннотация MCP требует Claude Code v2.1.199 или позже.
30 30
31Инструменты [claude.ai connector](/docs/ru/mcp.md#organization-controls-on-connector-tools), для которых ваша организация установила `ask`, также покидают поток на этом шаге. Каждый вызов передается в callback, даже в режиме `bypassPermissions` и даже когда совпадает правило allow. Callback получает причину `Your organization requires approval for this tool`. В режиме `dontAsk` вызов отклоняется вместо этого, потому что этот режим никогда не запрашивает.31Инструменты [claude.ai connector](https://code.claude.com/docs/ru/mcp.md#organization-controls-on-connector-tools), для которых ваша организация установила `ask`, также покидают поток на этом шаге. Каждый вызов передается в callback, даже в режиме `bypassPermissions` и даже когда совпадает правило allow. Callback получает причину `Your organization requires approval for this tool`. В режиме `dontAsk` вызов отклоняется вместо этого, потому что этот режим никогда не запрашивает.
32 32
33**4. Permission mode**33**4. Permission mode**
34 34
35Примените активный [режим разрешений](#permission-modes):35Примените активный [режим разрешений](#permission-modes):
36 36
37* В режиме `bypassPermissions` Claude Code одобряет все, что достигает этого шага, кроме распознанных [удалений по критическим путям](/docs/ru/permission-modes.md#critical-paths), которые вместо этого передаются дальше.37* В режиме `bypassPermissions` Claude Code одобряет все, что достигает этого шага, кроме распознанных [удалений по критическим путям](https://code.claude.com/docs/ru/permission-modes.md#critical-paths), которые вместо этого передаются дальше.
38* В режиме `acceptEdits` Claude Code одобряет операции с файлами, перечисленные в разделе [Accept edits mode](#accept-edits-mode-acceptedits).38* В режиме `acceptEdits` Claude Code одобряет операции с файлами, перечисленные в разделе [Accept edits mode](#accept-edits-mode-acceptedits).
39* В режиме `plan` Claude Code отправляет инструменты редактирования файлов и записи в shell в ваш callback `canUseTool` независимо от правил allow, поэтому операции записи не могут быть автоматически одобрены при планировании.39* В режиме `plan` Claude Code отправляет инструменты редактирования файлов и записи в shell в ваш callback `canUseTool` независимо от правил allow, поэтому операции записи не могут быть автоматически одобрены при планировании.
40* В других режимах запрос передается дальше.40* В других режимах запрос передается дальше.
41 41
42**5. Allow rules**42**5. Allow rules**
43 43
44Проверьте правила `allow` (из `allowed_tools` и settings.json). Если правило совпадает, инструмент одобряется. Вызов, который инструмент одобряет самостоятельно, также разрешается на этом шаге без необходимости в правиле: например, чтение файла в ваших рабочих каталогах или [команда Bash только для чтения](/docs/ru/permissions.md#read-only-commands).44Проверьте правила `allow` (из `allowed_tools` и settings.json). Если правило совпадает, инструмент одобряется. Вызов, который инструмент одобряет самостоятельно, также разрешается на этом шаге без необходимости в правиле: например, чтение файла в ваших рабочих каталогах или [команда Bash только для чтения](https://code.claude.com/docs/ru/permissions.md#read-only-commands).
45 45
46Распознанные [удаления по критическим путям](/docs/ru/permission-modes.md#critical-paths) не одобряются правилом allow. Достигают ли они затем вашего callback, зависит от режима разрешений: например, в сессии Agent SDK в режиме `auto` Claude Code по умолчанию отклоняет их, не вызывая его. [Таблица режимов для критических путей](/docs/ru/permission-modes.md#critical-path-removals-in-each-permission-mode) перечисляет, что каждый режим с ними делает.46Распознанные [удаления по критическим путям](https://code.claude.com/docs/ru/permission-modes.md#critical-paths) не одобряются правилом allow. Достигают ли они затем вашего callback, зависит от режима разрешений: например, в сессии Agent SDK в режиме `auto` Claude Code по умолчанию отклоняет их, не вызывая его. [Таблица режимов для критических путей](https://code.claude.com/docs/ru/permission-modes.md#critical-path-removals-in-each-permission-mode) перечисляет, что каждый режим с ними делает.
47 47
48Правило allow не одобряет чтение из [сетевого пути](/docs/ru/permissions.md#network-paths).48Правило allow не одобряет чтение из [сетевого пути](https://code.claude.com/docs/ru/permissions.md#network-paths).
49 49
50**6. canUseTool callback**50**6. canUseTool callback**
51 51
52Если ни один из вышеперечисленных шагов не разрешил вызов, вызовите ваш callback [`canUseTool`](/docs/ru/agent-sdk/user-input) для принятия решения. В режиме `dontAsk` этот шаг пропускается и инструмент отклоняется, хотя установленный вами [мод](/docs/ru/plugins/mods/overview.md) все еще может одобрить [некоторые такие вызовы](/docs/ru/permissions.md#precedence-among-rules-hooks-and-mods).52Если ни один из вышеперечисленных шагов не разрешил вызов, вызовите ваш callback [`canUseTool`](https://code.claude.com/docs/ru/agent-sdk/user-input) для принятия решения. В режиме `dontAsk` этот шаг пропускается и инструмент отклоняется, хотя установленный вами [мод](https://code.claude.com/docs/ru/plugins/mods/overview.md) все еще может одобрить [некоторые такие вызовы](https://code.claude.com/docs/ru/permissions.md#precedence-among-rules-hooks-and-mods).
53 53
54В TypeScript SDK, если вы установите [`permissionPrompts: 'none'`](/docs/ru/agent-sdk/typescript#options), ваш callback не вызывается на этом шаге. Hook [`PermissionRequest`](/docs/ru/hooks#permissionrequest) все еще получает возможность принять решение, и если он этого не делает, Claude Code отклоняет вызов. Опция требует Claude Code v2.1.259 или позже.54В TypeScript SDK, если вы установите [`permissionPrompts: 'none'`](https://code.claude.com/docs/ru/agent-sdk/typescript#options), ваш callback не вызывается на этом шаге. Hook [`PermissionRequest`](https://code.claude.com/docs/ru/hooks#permissionrequest) все еще получает возможность принять решение, и если он этого не делает, Claude Code отклоняет вызов. Опция требует Claude Code v2.1.259 или позже.
55 55
5656
57 57
58Если вы передаете callback `canUseTool` в конфигурацию, где TypeScript SDK ожидает, что порядок оценки автоматически одобрит вызовы перед консультацией callback, SDK выдает предупреждение процесса Node.js один раз при построении запроса. Код предупреждения — `CLAUDE_SDK_CAN_USE_TOOL_SHADOWED`. Две конфигурации вызывают его:58Если вы передаете callback `canUseTool` в конфигурацию, где TypeScript SDK ожидает, что порядок оценки автоматически одобрит вызовы перед консультацией callback, SDK выдает предупреждение процесса Node.js один раз при построении запроса. Код предупреждения — `CLAUDE_SDK_CAN_USE_TOOL_SHADOWED`. Две конфигурации вызывают его:
59 59
60* `permissionMode: 'bypassPermissions'`, который автоматически одобряет каждый вызов, достигающий шага режима разрешений, кроме [действий, которые ни один режим не одобряет автоматически](/docs/ru/permission-modes.md#actions-no-mode-auto-approves)60* `permissionMode: 'bypassPermissions'`, который автоматически одобряет каждый вызов, достигающий шага режима разрешений, кроме [действий, которые ни один режим не одобряет автоматически](https://code.claude.com/docs/ru/permission-modes.md#actions-no-mode-auto-approves)
61* Каждая запись `allowedTools` без спецификатора, такая как `"Read"`, которая автоматически одобряет весь этот инструмент перед консультацией callback, кроме [действий, которые ни один режим не одобряет автоматически](/docs/ru/permission-modes.md#actions-no-mode-auto-approves) и [чтения из сетевых путей](/docs/ru/permissions.md#network-paths)61* Каждая запись `allowedTools` без спецификатора, такая как `"Read"`, которая автоматически одобряет весь этот инструмент перед консультацией callback, кроме [действий, которые ни один режим не одобряет автоматически](https://code.claude.com/docs/ru/permission-modes.md#actions-no-mode-auto-approves) и [чтения из сетевых путей](https://code.claude.com/docs/ru/permissions.md#network-paths)
62 62
63Записи со спецификатором, такие как `Bash(ls *)`, и режим `acceptEdits` не вызывают его, и правила allow из файлов настроек не видны для проверки.63Записи со спецификатором, такие как `Bash(ls *)`, и режим `acceptEdits` не вызывают его, и правила allow из файлов настроек не видны для проверки.
64 64
65Слушайте с помощью `process.on('warning', ...)` и сопоставьте код для логирования или подавления его. Чтобы контролировать каждый вызов инструмента независимо от режима и правил, используйте вместо этого hook [`PreToolUse`](/docs/ru/agent-sdk/hooks).65Слушайте с помощью `process.on('warning', ...)` и сопоставьте код для логирования или подавления его. Чтобы контролировать каждый вызов инструмента независимо от режима и правил, используйте вместо этого hook [`PreToolUse`](https://code.claude.com/docs/ru/agent-sdk/hooks).
66 66
67Эта страница сосредоточена на **правилах allow и deny** и **режимах разрешений**. Для других шагов:67Эта страница сосредоточена на **правилах allow и deny** и **режимах разрешений**. Для других шагов:
68 68
69* **Hooks:** запустите пользовательский код для разрешения, отклонения или изменения запросов инструментов. См. [Control execution with hooks](/docs/ru/agent-sdk/hooks.md).69* **Hooks:** запустите пользовательский код для разрешения, отклонения или изменения запросов инструментов. См. [Control execution with hooks](https://code.claude.com/docs/ru/agent-sdk/hooks.md).
70* **canUseTool callback:** запросите у пользователей одобрение во время выполнения, когда ни один более ранний шаг не разрешит вызов. См. [Handle approvals and user input](/docs/ru/agent-sdk/user-input.md).70* **canUseTool callback:** запросите у пользователей одобрение во время выполнения, когда ни один более ранний шаг не разрешит вызов. См. [Handle approvals and user input](https://code.claude.com/docs/ru/agent-sdk/user-input.md).
71 71
72## Правила разрешения и запрета72## Правила разрешения и запрета
73 73
74`allowed_tools` и `disallowed_tools` (TypeScript: `allowedTools` / `disallowedTools`) добавляют записи в списки правил разрешения и запрета в потоке оценки выше. Если вы назовете один из [инструментов отслеживания задач](/docs/ru/agent-sdk/todo-tracking.md#model-availability) в `allowed_tools`, Claude Code также включит эти инструменты для сессии. Любой другой инструмент, не указанный в `allowed_tools`, по-прежнему доступен Claude, и вызов к нему, требующий одобрения, переходит в режим разрешений. Правила запрета ведут себя по-разному в зависимости от того, называют ли они инструмент или определяют шаблон в пределах одного.74`allowed_tools` и `disallowed_tools` (TypeScript: `allowedTools` / `disallowedTools`) добавляют записи в списки правил разрешения и запрета в потоке оценки выше. Если вы назовете один из [инструментов отслеживания задач](https://code.claude.com/docs/ru/agent-sdk/todo-tracking.md#model-availability) в `allowed_tools`, Claude Code также включит эти инструменты для сессии. Любой другой инструмент, не указанный в `allowed_tools`, по-прежнему доступен Claude, и вызов к нему, требующий одобрения, переходит в режим разрешений. Правила запрета ведут себя по-разному в зависимости от того, называют ли они инструмент или определяют шаблон в пределах одного.
75 75
76| Опция | Эффект |76| Опция | Эффект |
77| :- | :- |77| :- | :- |
78| `allowed_tools=["Read", "Grep"]` | `Read` и `Grep` автоматически одобрены, за исключением [чтения из сетевых путей](/docs/ru/permissions.md#network-paths). Другие инструменты, не указанные здесь, по-прежнему существуют, и вызовы к ним, требующие одобрения, переходят в режим разрешений и `canUseTool`. |78| `allowed_tools=["Read", "Grep"]` | `Read` и `Grep` автоматически одобрены, за исключением [чтения из сетевых путей](https://code.claude.com/docs/ru/permissions.md#network-paths). Другие инструменты, не указанные здесь, по-прежнему существуют, и вызовы к ним, требующие одобрения, переходят в режим разрешений и `canUseTool`. |
79| `disallowed_tools=["Bash"]` | Определение инструмента `Bash` удаляется из запроса. Claude не видит инструмент и не может попытаться его использовать. |79| `disallowed_tools=["Bash"]` | Определение инструмента `Bash` удаляется из запроса. Claude не видит инструмент и не может попытаться его использовать. |
80| `disallowed_tools=["Bash(rm *)"]` | `Bash` остается доступным. Вызовы, соответствующие `rm *` [как написано](/docs/ru/permissions.md#bash-rule-limits), отклоняются в каждом режиме разрешений, включая `bypassPermissions`. Другие вызовы `Bash`, включая `/bin/rm`, переходят в режим разрешений. |80| `disallowed_tools=["Bash(rm *)"]` | `Bash` остается доступным. Вызовы, соответствующие `rm *` [как написано](https://code.claude.com/docs/ru/permissions.md#bash-rule-limits), отклоняются в каждом режиме разрешений, включая `bypassPermissions`. Другие вызовы `Bash`, включая `/bin/rm`, переходят в режим разрешений. |
81| `disallowed_tools=["*"]` | Каждое определение инструмента удаляется из запроса. Глобы имен инструментов поддерживаются в правилах запрета: `"*"` соответствует каждому инструменту и `"mcp__*"` соответствует каждому инструменту MCP на всех серверах. |81| `disallowed_tools=["*"]` | Каждое определение инструмента удаляется из запроса. Глобы имен инструментов поддерживаются в правилах запрета: `"*"` соответствует каждому инструменту и `"mcp__*"` соответствует каждому инструменту MCP на всех серверах. |
82 82
83Правила разрешения принимают глобы имен инструментов только после буквального префикса `mcp__<server>__`. Сегмент сервера должен быть свободен от глобов, чтобы правило называло конкретный сервер, который вы настроили: `mcp__puppeteer__*` соответствует каждому инструменту с сервера `puppeteer`, а `mcp__github__get_*` соответствует его инструментам `get_`. Неякорированная запись, такая как `allowed_tools=["*"]` или `allowed_tools=["mcp__*"]`, игнорируется и не одобряет ничего автоматически.83Правила разрешения принимают глобы имен инструментов только после буквального префикса `mcp__<server>__`. Сегмент сервера должен быть свободен от глобов, чтобы правило называло конкретный сервер, который вы настроили: `mcp__puppeteer__*` соответствует каждому инструменту с сервера `puppeteer`, а `mcp__github__get_*` соответствует его инструментам `get_`. Неякорированная запись, такая как `allowed_tools=["*"]` или `allowed_tools=["mcp__*"]`, игнорируется и не одобряет ничего автоматически.
84 84
85Правила с областью действия для `Read` и `Edit` принимают шаблон пути. Правила `Edit(path)` управляют всеми встроенными инструментами, которые записывают файлы, включая `Write` и `NotebookEdit`; правило `Write(path)` никогда не совпадает с проверками разрешений файлов.85Правила с областью действия для `Read` и `Edit` принимают шаблон пути. Правила `Edit(path)` управляют всеми встроенными инструментами, которые записывают файлы, включая `Write` и `NotebookEdit`; правило `Write(path)` никогда не совпадает с проверками разрешений файлов.
86 86
87Используйте `//path` для абсолютного пути файловой системы: правило запрета `Edit(//secrets/**)` блокирует записи в любом месте под `/secrets` на диске. С одной ведущей косой чертой `Edit(/secrets/**)` якорируется в источнике правила. Для правил, переданных через `allowed_tools` или `disallowed_tools`, это означает рабочий каталог сеанса, поэтому правило не блокирует `/secrets` на диске. См. [Правила Read и Edit](/docs/ru/permissions.md#read-and-edit) для четырех форм якорей и того, как правила из файлов параметров разрешаются.87Используйте `//path` для абсолютного пути файловой системы: правило запрета `Edit(//secrets/**)` блокирует записи в любом месте под `/secrets` на диске. С одной ведущей косой чертой `Edit(/secrets/**)` якорируется в источнике правила. Для правил, переданных через `allowed_tools` или `disallowed_tools`, это означает рабочий каталог сеанса, поэтому правило не блокирует `/secrets` на диске. См. [Правила Read и Edit](https://code.claude.com/docs/ru/permissions.md#read-and-edit) для четырех форм якорей и того, как правила из файлов параметров разрешаются.
88 88
89> [!WARNING]89> [!WARNING]
90>90>
91> **Автоматически одобренные инструменты никогда не достигают `canUseTool`.** Вызов инструмента, одобренный на любом более раннем этапе, по `acceptEdits` или `bypassPermissions`, или по правилу разрешения, пропускает ваш обратный вызов `canUseTool`, поэтому проверки разрешений, которые вы там поместили, молча обходятся для этого инструмента.91> **Автоматически одобренные инструменты никогда не достигают `canUseTool`.** Вызов инструмента, одобренный на любом более раннем этапе, по `acceptEdits` или `bypassPermissions`, или по правилу разрешения, пропускает ваш обратный вызов `canUseTool`, поэтому проверки разрешений, которые вы там поместили, молча обходятся для этого инструмента.
92>92>
93> Ни одно правило разрешения не одобряет автоматически `AskUserQuestion`, инструменты MCP, отмеченные [`_meta["anthropic/requiresUserInteraction"]`](/docs/ru/mcp#require-approval-for-a-specific-tool), инструменты коннекторов, [для которых ваша организация установила `ask`](/docs/ru/mcp#organization-controls-on-connector-tools), или распознанные удаления `rm` и `rmdir` [по критическим путям](/docs/ru/permission-modes.md#critical-paths). В режиме `dontAsk` Claude Code отклоняет эти вызовы без вызова обратного вызова. В других режимах первые три достигают обратного вызова. В [таблице режимов для критических путей](/docs/ru/permission-modes.md#critical-path-removals-in-each-permission-mode) указано, что каждый режим делает с удалением по критическому пути. Проверка, которая распознает такие удаления, [может пропускать некоторые команды](/docs/ru/permission-modes.md#critical-paths).93> Ни одно правило разрешения не одобряет автоматически `AskUserQuestion`, инструменты MCP, отмеченные [`_meta["anthropic/requiresUserInteraction"]`](https://code.claude.com/docs/ru/mcp#require-approval-for-a-specific-tool), инструменты коннекторов, [для которых ваша организация установила `ask`](https://code.claude.com/docs/ru/mcp#organization-controls-on-connector-tools), или распознанные удаления `rm` и `rmdir` [по критическим путям](https://code.claude.com/docs/ru/permission-modes.md#critical-paths). В режиме `dontAsk` Claude Code отклоняет эти вызовы без вызова обратного вызова. В других режимах первые три достигают обратного вызова. В [таблице режимов для критических путей](https://code.claude.com/docs/ru/permission-modes.md#critical-path-removals-in-each-permission-mode) указано, что каждый режим делает с удалением по критическому пути. Проверка, которая распознает такие удаления, [может пропускать некоторые команды](https://code.claude.com/docs/ru/permission-modes.md#critical-paths).
94>94>
95> Охват зависит от формы записи: простое имя, такое как `Read` или `mcp__github__get_issue`, автоматически одобряет каждый вызов этого инструмента, кроме указанных исключений и [чтения из сетевых путей](/docs/ru/permissions.md#network-paths), в то время как правило с областью действия, такое как `Bash(npm test *)`, автоматически одобряет только совпадающие вызовы, и другие вызовы `Bash`, требующие одобрения, по-прежнему переходят в обратный вызов. Для проверок, которые должны выполняться при каждом вызове инструмента, используйте [хук `PreToolUse`](/docs/ru/agent-sdk/hooks): хуки выполняются перед каждым другим шагом, и отказ хука применяется даже в режиме `bypassPermissions`.95> Охват зависит от формы записи: простое имя, такое как `Read` или `mcp__github__get_issue`, автоматически одобряет каждый вызов этого инструмента, кроме указанных исключений и [чтения из сетевых путей](https://code.claude.com/docs/ru/permissions.md#network-paths), в то время как правило с областью действия, такое как `Bash(npm test *)`, автоматически одобряет только совпадающие вызовы, и другие вызовы `Bash`, требующие одобрения, по-прежнему переходят в обратный вызов. Для проверок, которые должны выполняться при каждом вызове инструмента, используйте [хук `PreToolUse`](https://code.claude.com/docs/ru/agent-sdk/hooks): хуки выполняются перед каждым другим шагом, и отказ хука применяется даже в режиме `bypassPermissions`.
96 96
97Для заблокированного агента объедините `allowedTools` с `permissionMode: "dontAsk"`:97Для заблокированного агента объедините `allowedTools` с `permissionMode: "dontAsk"`:
98 98
103};103};
104```104```
105 105
106Перечисленные инструменты одобрены, кроме [действий, которые ни один режим не одобряет автоматически](/docs/ru/permission-modes.md#actions-no-mode-auto-approves), и [чтения из сетевых путей](/docs/ru/permissions.md#network-paths). Каждый другой вызов, который запросил бы подтверждение, вместо этого отклоняется, хотя установленный вами [мод](/docs/ru/plugins/mods/overview.md) всё же может одобрить [некоторые из этих вызовов](/docs/ru/permissions.md#precedence-among-rules-hooks-and-mods).106Перечисленные инструменты одобрены, кроме [действий, которые ни один режим не одобряет автоматически](https://code.claude.com/docs/ru/permission-modes.md#actions-no-mode-auto-approves), и [чтения из сетевых путей](https://code.claude.com/docs/ru/permissions.md#network-paths). Каждый другой вызов, который запросил бы подтверждение, вместо этого отклоняется, хотя установленный вами [мод](https://code.claude.com/docs/ru/plugins/mods/overview.md) всё же может одобрить [некоторые из этих вызовов](https://code.claude.com/docs/ru/permissions.md#precedence-among-rules-hooks-and-mods).
107 107
108Вызовы, которые не требуют одобрения в режиме `default`, выполняются независимо от того, указаны ли они в списке. К ним относятся [команды Bash только для чтения](/docs/ru/permissions.md#read-only-commands), инструменты, такие как `Agent`, которые не спрашивают перед запуском, и чтение файлов в ваших рабочих каталогах. Чтобы полностью удалить инструмент из запроса, добавьте его простое имя в `disallowedTools`.108Вызовы, которые не требуют одобрения в режиме `default`, выполняются независимо от того, указаны ли они в списке. К ним относятся [команды Bash только для чтения](https://code.claude.com/docs/ru/permissions.md#read-only-commands), инструменты, такие как `Agent`, которые не спрашивают перед запуском, и чтение файлов в ваших рабочих каталогах. Чтобы полностью удалить инструмент из запроса, добавьте его простое имя в `disallowedTools`.
109 109
110> [!WARNING]110> [!WARNING]
111>111>
112> **`allowed_tools` не ограничивает `bypassPermissions`.** `allowed_tools` предварительно одобряет инструменты, которые вы указали. Другие неуказанные инструменты не совпадают ни с одним правилом разрешения и переходят в режим разрешений, где `bypassPermissions` их одобряет. Установка `allowed_tools=["Read"]` наряду с `permission_mode="bypassPermissions"` по-прежнему одобряет каждый инструмент, включая `Bash`, `Write` и `Edit`. Если вам нужен `bypassPermissions`, но вы хотите заблокировать определенные инструменты, используйте `disallowed_tools`.112> **`allowed_tools` не ограничивает `bypassPermissions`.** `allowed_tools` предварительно одобряет инструменты, которые вы указали. Другие неуказанные инструменты не совпадают ни с одним правилом разрешения и переходят в режим разрешений, где `bypassPermissions` их одобряет. Установка `allowed_tools=["Read"]` наряду с `permission_mode="bypassPermissions"` по-прежнему одобряет каждый инструмент, включая `Bash`, `Write` и `Edit`. Если вам нужен `bypassPermissions`, но вы хотите заблокировать определенные инструменты, используйте `disallowed_tools`.
113 113
114Вы также можете настроить правила разрешения, запрета и запроса декларативно в `.claude/settings.json`. Эти правила читаются, когда источник параметра `project` включен, что он есть для параметров `query()` по умолчанию. Если вы явно установите `setting_sources` (TypeScript: `settingSources`), включите `"project"`, чтобы они применялись. См. [Параметры разрешений](/docs/ru/settings-reference.md#permission-settings) для синтаксиса правил.114Вы также можете настроить правила разрешения, запрета и запроса декларативно в `.claude/settings.json`. Эти правила читаются, когда источник параметра `project` включен, что он есть для параметров `query()` по умолчанию. Если вы явно установите `setting_sources` (TypeScript: `settingSources`), включите `"project"`, чтобы они применялись. См. [Параметры разрешений](https://code.claude.com/docs/ru/settings-reference.md#permission-settings) для синтаксиса правил.
115 115
116## Режимы разрешений116## Режимы разрешений
117 117
118Режимы разрешений обеспечивают глобальный контроль над тем, как Claude использует инструменты. Вы можете установить режим разрешений при вызове `query()` или изменить его динамически во время сеансов потоковой передачи.118Режимы разрешений обеспечивают глобальный контроль над тем, как Claude использует инструменты. Вы можете установить режим разрешений при вызове `query()` или изменить его динамически во время сеансов потоковой передачи.
119 119
120В Claude Code v2.1.302 или более поздней версии ваше приложение запускается в режиме `default`, если вы не установите режим разрешений или приложение не получит его из [`permissions.defaultMode`](/docs/ru/settings-reference#permissions-defaultmode) в своих файлах настроек. В режиме `default` Claude Code отклоняет любой вызов инструмента, требующий подтверждения, если вы не подтвердите его с помощью правила разрешения, хука, обратного вызова `canUseTool` или инструмента запроса разрешений. Если вызовы инструментов отклоняются, см. [Вызовы инструментов отклоняются в `claude -p` и запусках Agent SDK](/docs/ru/permission-modes#which-mode-a-non-interactive-run-starts-in).120В Claude Code v2.1.302 или более поздней версии ваше приложение запускается в режиме `default`, если вы не установите режим разрешений или приложение не получит его из [`permissions.defaultMode`](https://code.claude.com/docs/ru/settings-reference#permissions-defaultmode) в своих файлах настроек. В режиме `default` Claude Code отклоняет любой вызов инструмента, требующий подтверждения, если вы не подтвердите его с помощью правила разрешения, хука, обратного вызова `canUseTool` или инструмента запроса разрешений. Если вызовы инструментов отклоняются, см. [Вызовы инструментов отклоняются в `claude -p` и запусках Agent SDK](https://code.claude.com/docs/ru/permission-modes#which-mode-a-non-interactive-run-starts-in).
121 121
122### Доступные режимы122### Доступные режимы
123 123
126| Режим | Описание | Поведение инструмента |126| Режим | Описание | Поведение инструмента |
127| :- | :- | :- |127| :- | :- | :- |
128| `default` | Стандартное поведение разрешений | Нет автоматических одобрений на основе режима; вызовы, требующие одобрения и не соответствующие никакому правилу разрешения, запускают ваш обратный вызов `canUseTool` |128| `default` | Стандартное поведение разрешений | Нет автоматических одобрений на основе режима; вызовы, требующие одобрения и не соответствующие никакому правилу разрешения, запускают ваш обратный вызов `canUseTool` |
129| `dontAsk` | Отклонить вместо запроса | Любой вызов, который иначе запросил бы подтверждение, отклоняется без вызова `canUseTool`, хотя установленный вами [мод](/docs/ru/plugins/mods/overview.md) всё равно может одобрить [некоторые из этих вызовов](/docs/ru/permissions.md#precedence-among-rules-hooks-and-mods). Вызовы, одобренные `allowed_tools` или правилами разрешения в `settings.json`, выполняются, как и вызовы, не требующие одобрения в режиме `default`. Некоторые вызовы, например [чтение из сетевых путей](/docs/ru/permissions.md#network-paths), отклоняются, даже если им соответствует `allowed_tools` или правило разрешения. Список см. в разделе [Режим не спрашивать](#don’t-ask-mode-dontask) |129| `dontAsk` | Отклонить вместо запроса | Любой вызов, который иначе запросил бы подтверждение, отклоняется без вызова `canUseTool`, хотя установленный вами [мод](https://code.claude.com/docs/ru/plugins/mods/overview.md) всё равно может одобрить [некоторые из этих вызовов](https://code.claude.com/docs/ru/permissions.md#precedence-among-rules-hooks-and-mods). Вызовы, одобренные `allowed_tools` или правилами разрешения в `settings.json`, выполняются, как и вызовы, не требующие одобрения в режиме `default`. Некоторые вызовы, например [чтение из сетевых путей](https://code.claude.com/docs/ru/permissions.md#network-paths), отклоняются, даже если им соответствует `allowed_tools` или правило разрешения. Список см. в разделе [Режим не спрашивать](#don’t-ask-mode-dontask) |
130| `acceptEdits` | Автоматически принимать редактирование файлов | Редактирование файлов и [операции с файловой системой](#accept-edits-mode-acceptedits) (`mkdir`, `rm`, `mv` и т. д.) автоматически одобряются |130| `acceptEdits` | Автоматически принимать редактирование файлов | Редактирование файлов и [операции с файловой системой](#accept-edits-mode-acceptedits) (`mkdir`, `rm`, `mv` и т. д.) автоматически одобряются |
131| `bypassPermissions` | Обойти проверки разрешений | Инструменты выполняются без запросов разрешений, за исключением [действий, которые ни один режим не одобряет автоматически](/docs/ru/permission-modes.md#actions-no-mode-auto-approves). Используйте с осторожностью |131| `bypassPermissions` | Обойти проверки разрешений | Инструменты выполняются без запросов разрешений, за исключением [действий, которые ни один режим не одобряет автоматически](https://code.claude.com/docs/ru/permission-modes.md#actions-no-mode-auto-approves). Используйте с осторожностью |
132| `plan` | Режим планирования | Claude исследует и планирует без редактирования исходных файлов; редактирование файлов никогда не одобряется автоматически и запрашивается через ваш обратный вызов `canUseTool` |132| `plan` | Режим планирования | Claude исследует и планирует без редактирования исходных файлов; редактирование файлов никогда не одобряется автоматически и запрашивается через ваш обратный вызов `canUseTool` |
133| `auto` | Одобрения, классифицированные моделью | Классификатор модели проверяет действия, такие как команды оболочки и сетевые запросы, разрешая или блокируя каждое из них. См. [Режим Auto](/docs/ru/permission-modes.md#eliminate-prompts-with-auto-mode) для получения информации о доступности и порядке принятия решений |133| `auto` | Одобрения, классифицированные моделью | Классификатор модели проверяет действия, такие как команды оболочки и сетевые запросы, разрешая или блокируя каждое из них. См. [Режим Auto](https://code.claude.com/docs/ru/permission-modes.md#eliminate-prompts-with-auto-mode) для получения информации о доступности и порядке принятия решений |
134 134
135> [!WARNING]135> [!WARNING]
136>136>
137> **Наследование субагентом:** Субагент выполняется в режиме разрешений родительской сессии, если вы не установите `permissionMode` на его [`AgentDefinition`](/docs/ru/agent-sdk/typescript#agentdefinition) и родительская сессия находится в режиме `default`, `dontAsk` или `plan`. Даже в этом случае Claude Code никогда не применяет значение `"bypassPermissions"`, а значение `"auto"` применяет только тогда, когда [авторежим доступен](/docs/ru/permission-modes.md#eliminate-prompts-with-auto-mode) этому субагенту. Субагент выполняется в режиме `bypassPermissions` только когда сама родительская сессия находится в этом режиме. Исключение `bypassPermissions` требует Claude Code v2.1.267 или более поздней версии.137> **Наследование субагентом:** Если ваша основная сессия находится в [режиме планирования](https://code.claude.com/docs/ru/permission-modes.md#analyze-before-you-edit-with-plan-mode), субагент, в [`AgentDefinition`](https://code.claude.com/docs/ru/agent-sdk/typescript#agentdefinition) которого задано `permissionMode: "acceptEdits"`, всё равно выполняется в режиме планирования. Вызовы `Edit` и `Write` этого субагента для ваших исходных файлов по-прежнему поступают в ваш обратный вызов `canUseTool`. Режим планирования действует и для определённых вами субагентов, чтобы передача работы одному из них не позволяла обойти предварительную проверку плана.
138>138>
139> Подагенты могут иметь различные системные подсказки и менее ограниченное поведение, чем ваш основной агент, поэтому наследование `bypassPermissions` предоставляет им полный автономный доступ к системе. [Действия, которые ни один режим не одобряет автоматически](/docs/ru/permission-modes.md#actions-no-mode-auto-approves), по-прежнему применяются.139> Субагент наследует `plan`, `acceptEdits`, `auto` или `bypassPermissions` от основной сессии, а при основной сессии в режиме `default` или `dontAsk` он выполняется в заданном вами режиме. Даже в этом случае Claude Code никогда не применяет значение `"bypassPermissions"`, а значение `"auto"` применяет только тогда, когда [авторежим доступен](https://code.claude.com/docs/ru/permission-modes.md#eliminate-prompts-with-auto-mode) этому субагенту. Исключение `bypassPermissions` требует Claude Code v2.1.267 или более поздней версии.
140>
141> Подагенты могут иметь различные системные подсказки и менее ограниченное поведение, чем ваш основной агент, поэтому наследование `bypassPermissions` предоставляет им полный автономный доступ к системе. [Действия, которые ни один режим не одобряет автоматически](https://code.claude.com/docs/ru/permission-modes.md#actions-no-mode-auto-approves), по-прежнему применяются.
140 142
141### Установка режима разрешений143### Установка режима разрешений
142 144
253 255
254* Работает с путем вне этой области256* Работает с путем вне этой области
255* Записывает в защищенный путь257* Записывает в защищенный путь
256* Удаляет с помощью `rm` или `rmdir` путь, который Claude Code распознает как [критический путь](/docs/ru/permission-modes.md#critical-paths)258* Удаляет с помощью `rm` или `rmdir` путь, который Claude Code распознает как [критический путь](https://code.claude.com/docs/ru/permission-modes.md#critical-paths)
257 259
258**Используйте когда:** вы доверяете редактированиям Claude и хотите более быструю итерацию, например во время прототипирования или при работе в изолированном каталоге.260**Используйте когда:** вы доверяете редактированиям Claude и хотите более быструю итерацию, например во время прототипирования или при работе в изолированном каталоге.
259 261
260#### Режим не спрашивать (`dontAsk`)262#### Режим не спрашивать (`dontAsk`)
261 263
262Преобразует любой запрос разрешения в отклонение без вызова `canUseTool`, хотя установленный вами [мод](/docs/ru/plugins/mods/overview.md) всё равно может одобрить [некоторые из этих вызовов](/docs/ru/permissions.md#precedence-among-rules-hooks-and-mods). Инструменты, предварительно одобренные `allowed_tools`, правилами разрешения в `settings.json` или хуком, выполняются нормально. Вызовы, не требующие одобрения в режиме `default`, также выполняются, например чтение файлов внутри рабочих каталогов и вызовы `Agent`.264Преобразует любой запрос разрешения в отклонение без вызова `canUseTool`, хотя установленный вами [мод](https://code.claude.com/docs/ru/plugins/mods/overview.md) всё равно может одобрить [некоторые из этих вызовов](https://code.claude.com/docs/ru/permissions.md#precedence-among-rules-hooks-and-mods). Инструменты, предварительно одобренные `allowed_tools`, правилами разрешения в `settings.json` или хуком, выполняются нормально. Вызовы, не требующие одобрения в режиме `default`, также выполняются, например чтение файлов внутри рабочих каталогов и вызовы `Agent`.
263 265
264Инструменты коннектора, [установленные вашей организацией на `ask`](/docs/ru/mcp#organization-controls-on-connector-tools), инструменты, требующие взаимодействия с пользователем, [чтение из сетевых путей](/docs/ru/permissions.md#network-paths) и распознанные [удаления критических путей](/docs/ru/permission-modes.md#critical-paths) отклоняются, даже когда правило разрешения совпадает. Разрешение хука `PreToolUse` также не снимает запрет ни на распознанное удаление критического пути, ни на чтение из сетевого пути. Проверка, которая распознает такие удаления, [может пропустить некоторые команды](/docs/ru/permission-modes.md#critical-paths).266Инструменты коннектора, [установленные вашей организацией на `ask`](https://code.claude.com/docs/ru/mcp#organization-controls-on-connector-tools), инструменты, требующие взаимодействия с пользователем, [чтение из сетевых путей](https://code.claude.com/docs/ru/permissions.md#network-paths) и распознанные [удаления критических путей](https://code.claude.com/docs/ru/permission-modes.md#critical-paths) отклоняются, даже когда правило разрешения совпадает. Разрешение хука `PreToolUse` также не снимает запрет ни на распознанное удаление критического пути, ни на чтение из сетевого пути. Проверка, которая распознает такие удаления, [может пропустить некоторые команды](https://code.claude.com/docs/ru/permission-modes.md#critical-paths).
265 267
266**Используйте когда:** вы хотите фиксированную, явную поверхность инструментов для headless агента и предпочитаете жесткое отклонение молчаливому полаганию на отсутствие `canUseTool`.268**Используйте когда:** вы хотите фиксированную, явную поверхность инструментов для headless агента и предпочитаете жесткое отклонение молчаливому полаганию на отсутствие `canUseTool`.
267 269
268#### Режим обхода разрешений (`bypassPermissions`)270#### Режим обхода разрешений (`bypassPermissions`)
269 271
270Автоматически одобряет использование инструментов без запроса, за исключением случаев, перечисленных в предупреждении ниже. Hooks по-прежнему выполняются и могут блокировать операции при необходимости. На Linux и macOS Claude Code отказывается запускаться в этом режиме от имени root или под `sudo` вне [признанной песочницы](/docs/ru/permission-modes.md#skip-all-checks-with-bypasspermissions-mode), и запрос завершается ошибкой перед первым ходом.272Автоматически одобряет использование инструментов без запроса, за исключением случаев, перечисленных в предупреждении ниже. Hooks по-прежнему выполняются и могут блокировать операции при необходимости. На Linux и macOS Claude Code отказывается запускаться в этом режиме от имени root или под `sudo` вне [признанной песочницы](https://code.claude.com/docs/ru/permission-modes.md#skip-all-checks-with-bypasspermissions-mode), и запрос завершается ошибкой перед первым ходом.
271 273
272> [!WARNING]274> [!WARNING]
273>275>
276> `allowed_tools` не ограничивает этот режим. Каждый инструмент одобрен, а не только те, которые вы указали. Эти элементы управления по-прежнему применяются:278> `allowed_tools` не ограничивает этот режим. Каждый инструмент одобрен, а не только те, которые вы указали. Эти элементы управления по-прежнему применяются:
277>279>
278> * Правила отклонения, явные правила `ask` и hooks оцениваются перед проверкой режима и могут по-прежнему блокировать инструмент.280> * Правила отклонения, явные правила `ask` и hooks оцениваются перед проверкой режима и могут по-прежнему блокировать инструмент.
279> * Инструменты коннектора, [установленные вашей организацией на `ask`](/docs/ru/mcp#organization-controls-on-connector-tools), инструменты, требующие взаимодействия с пользователем, и распознанные [удаления критических путей](/docs/ru/permission-modes.md#critical-paths) по-прежнему переходят к вашему обратному вызову `canUseTool`. Проверка, которая распознает такие удаления, [может пропустить некоторые команды](/docs/ru/permission-modes.md#critical-paths).281> * Инструменты коннектора, [установленные вашей организацией на `ask`](https://code.claude.com/docs/ru/mcp#organization-controls-on-connector-tools), инструменты, требующие взаимодействия с пользователем, и распознанные [удаления критических путей](https://code.claude.com/docs/ru/permission-modes.md#critical-paths) по-прежнему переходят к вашему обратному вызову `canUseTool`. Проверка, которая распознает такие удаления, [может пропустить некоторые команды](https://code.claude.com/docs/ru/permission-modes.md#critical-paths).
280> * [Защита обмена сообщениями между сеансами](/docs/ru/permission-modes.md#skip-all-checks-with-bypasspermissions-mode) по-прежнему применяется.282> * [Защита обмена сообщениями между сеансами](https://code.claude.com/docs/ru/permission-modes.md#skip-all-checks-with-bypasspermissions-mode) по-прежнему применяется.
281 283
282#### Режим планирования (`plan`)284#### Режим планирования (`plan`)
283 285
287 289
288В TypeScript SDK, если вы установите `allowDangerouslySkipPermissions: true` вместе с `permissionMode: 'plan'`, редактирование файлов и команды оболочки, которые изменяют файлы, по-прежнему достигают вашего обратного вызова `canUseTool`. Опция позволяет вам позже переключиться на `bypassPermissions` с помощью `setPermissionMode()`.290В TypeScript SDK, если вы установите `allowDangerouslySkipPermissions: true` вместе с `permissionMode: 'plan'`, редактирование файлов и команды оболочки, которые изменяют файлы, по-прежнему достигают вашего обратного вызова `canUseTool`. Опция позволяет вам позже переключиться на `bypassPermissions` с помощью `setPermissionMode()`.
289 291
290Claude может использовать `AskUserQuestion` для уточнения требований перед финализацией плана. См. [Обработка одобрений и ввода пользователя](/docs/ru/agent-sdk/user-input.md#handle-clarifying-questions) для обработки этих запросов.292Claude может использовать `AskUserQuestion` для уточнения требований перед финализацией плана. См. [Обработка одобрений и ввода пользователя](https://code.claude.com/docs/ru/agent-sdk/user-input.md#handle-clarifying-questions) для обработки этих запросов.
291 293
292**Используйте когда:** вы хотите, чтобы Claude предложил изменения без их выполнения, например при проверке кода или когда вам нужно одобрить изменения перед их внесением.294**Используйте когда:** вы хотите, чтобы Claude предложил изменения без их выполнения, например при проверке кода или когда вам нужно одобрить изменения перед их внесением.
293 295
294#### Авторежим (`auto`)296#### Авторежим (`auto`)
295 297
296Модель-классификатор проверяет действия, такие как команды оболочки и сетевые запросы, перед их выполнением и разрешает или блокирует каждое проверяемое действие. О моделях и провайдерах, которые требуются для авторежима, и о порядке, в котором он оценивает действия, см. [Устранение запросов разрешений с помощью авторежима](/docs/ru/permission-modes.md#eliminate-prompts-with-auto-mode).298Модель-классификатор проверяет действия, такие как команды оболочки и сетевые запросы, перед их выполнением и разрешает или блокирует каждое проверяемое действие. О моделях и провайдерах, которые требуются для авторежима, и о порядке, в котором он оценивает действия, см. [Устранение запросов разрешений с помощью авторежима](https://code.claude.com/docs/ru/permission-modes.md#eliminate-prompts-with-auto-mode).
297 299
298Если вы переключаете сессию, находящуюся в авторежиме, на модель, которую авторежим не поддерживает, с помощью [`set_model()`](/docs/ru/agent-sdk/python#claudesdkclient), [`setModel()`](/docs/ru/agent-sdk/typescript#query-object) или [`applyFlagSettings()`](/docs/ru/agent-sdk/typescript#applyflagsettings), сессия переходит в режим `default`:300Если вы переключаете сессию, находящуюся в авторежиме, на модель, которую авторежим не поддерживает, с помощью [`set_model()`](https://code.claude.com/docs/ru/agent-sdk/python#claudesdkclient), [`setModel()`](https://code.claude.com/docs/ru/agent-sdk/typescript#query-object) или [`applyFlagSettings()`](https://code.claude.com/docs/ru/agent-sdk/typescript#applyflagsettings), сессия переходит в режим `default`:
299 301
300* **Что вы увидите**: сообщение `system` с подтипом `status` и `permissionMode`, установленным в `"default"`, которое TypeScript SDK типизирует как [`SDKStatusMessage`](/docs/ru/agent-sdk/typescript#sdkstatusmessage). С этого момента вызовы, требующие подтверждения и не соответствующие никакому правилу разрешения, достигают вашего обратного вызова `canUseTool`.302* **Что вы увидите**: сообщение `system` с подтипом `status` и `permissionMode`, установленным в `"default"`, которое TypeScript SDK типизирует как [`SDKStatusMessage`](https://code.claude.com/docs/ru/agent-sdk/typescript#sdkstatusmessage). С этого момента вызовы, требующие подтверждения и не соответствующие никакому правилу разрешения, достигают вашего обратного вызова `canUseTool`.
301* **Чтобы вернуться в авторежим**: переключитесь на поддерживаемую модель, затем вызовите `set_permission_mode("auto")` или `setPermissionMode("auto")`. Если вы переключите модель обратно без этого вызова, сессия останется в режиме `default`. Пока активна неподдерживаемая модель, вызов завершается ошибкой `Cannot set permission mode to auto: auto mode unavailable for this model`.303* **Чтобы вернуться в авторежим**: переключитесь на поддерживаемую модель, затем вызовите `set_permission_mode("auto")` или `setPermissionMode("auto")`. Если вы переключите модель обратно без этого вызова, сессия останется в режиме `default`. Пока активна неподдерживаемая модель, вызов завершается ошибкой `Cannot set permission mode to auto: auto mode unavailable for this model`.
302 304
303Переход в режим `default` после вызова `set_model()`, `setModel()` или `applyFlagSettings()` требует Claude Code v2.1.299 или более поздней версии.305Переход в режим `default` после вызова `set_model()`, `setModel()` или `applyFlagSettings()` требует Claude Code v2.1.299 или более поздней версии.
306 308
307Для других этапов потока оценки разрешений:309Для других этапов потока оценки разрешений:
308 310
309* [Обработка одобрений и ввода пользователя](/docs/ru/agent-sdk/user-input.md): интерактивные подсказки одобрения и уточняющие вопросы311* [Обработка одобрений и ввода пользователя](https://code.claude.com/docs/ru/agent-sdk/user-input.md): интерактивные подсказки одобрения и уточняющие вопросы
310* [Руководство hooks](/docs/ru/agent-sdk/hooks.md): запуск пользовательского кода в ключевых точках жизненного цикла агента312* [Руководство hooks](https://code.claude.com/docs/ru/agent-sdk/hooks.md): запуск пользовательского кода в ключевых точках жизненного цикла агента
311* [Правила разрешений](/docs/ru/settings-reference.md#permission-settings): декларативные правила разрешения/запрета в `settings.json`313* [Правила разрешений](https://code.claude.com/docs/ru/settings-reference.md#permission-settings): декларативные правила разрешения/запрета в `settings.json`