4 4
5# Настройка разрешений5# Настройка разрешений
6 6
7> Контролируйте использование инструментов вашим агентом с помощью режимов разрешений, hooks и декларативных правил allow/deny.7> Контролируйте, как ваш агент использует инструменты, с помощью режимов разрешений, hooks и декларативных правил разрешения/запрета.
8 8
9Claude Agent SDK предоставляет элементы управления разрешениями для управления использованием инструментов Claude. Используйте режимы разрешений и правила для определения того, что разрешено автоматически, и callback [`canUseTool`](/docs/ru/agent-sdk/user-input) для обработки всего остального во время выполнения.9Claude Agent SDK предоставляет элементы управления разрешениями для управления использованием инструментов Claude. Используйте режимы разрешений и правила для определения того, что разрешено автоматически, и обратный вызов [`canUseTool`](/docs/ru/agent-sdk/user-input) для обработки всего остального во время выполнения.
10 10
11<h2 id="how-permissions-are-evaluated">11<h2 id="how-permissions-are-evaluated">
12 Как оцениваются разрешения12 Как оцениваются разрешения
16 16
17<Steps>17<Steps>
18 <Step title="Hooks">18 <Step title="Hooks">
19 Сначала запустите [hooks](/docs/ru/agent-sdk/hooks). Hook может отклонить вызов полностью или передать его дальше. Hook, который возвращает `allow`, не пропускает правила deny и ask ниже; они оцениваются независимо от результата hook. `PreToolUse` hook allow также не может одобрить удаление `rm` или `rmdir`, нацеленное на [критический путь](/docs/ru/permission-modes#critical-paths).19 Сначала запустите [hooks](/docs/ru/agent-sdk/hooks). Hook может отклонить вызов полностью или пропустить его дальше. Hook, который возвращает `allow`, не пропускает правила deny и ask ниже; они оцениваются независимо от результата hook. Hook `PreToolUse` с allow также не может одобрить удаление `rm` или `rmdir`, нацеленное на [критический путь](/docs/ru/permission-modes#critical-paths).
20 </Step>20 </Step>
21 21
22 <Step title="Правила deny">22 <Step title="Deny rules">
23 Проверьте правила `deny` (из `disallowed_tools` и [settings.json](/docs/ru/settings-reference#permission-settings)). Если правило deny совпадает, инструмент блокируется, даже в режиме `bypassPermissions`. Записи с простым названием, такие как `Bash`, удаляют инструмент из контекста Claude перед началом этой оценки, поэтому на этом шаге проверяются только правила с областью действия, такие как `Bash(rm *)`.23 Проверьте правила `deny` (из `disallowed_tools` и [settings.json](/docs/ru/settings-reference#permission-settings)). Если правило deny совпадает, инструмент блокируется, даже в режиме `bypassPermissions`. Правила deny с простым названием, такие как `Bash`, удаляют инструмент из контекста Claude перед началом этой оценки, поэтому на этом шаге проверяются только правила с областью действия, такие как `Bash(rm *)`.
24 </Step>24 </Step>
25 25
26 <Step title="Правила ask">26 <Step title="Ask rules">
27 Проверьте правила `ask` из [settings.json](/docs/ru/settings-reference#permission-settings). Если правило ask совпадает, вызов передаётся вашему callback [`canUseTool`](/docs/ru/agent-sdk/user-input) для подтверждения, даже в режиме `bypassPermissions`.27 Проверьте правила `ask` из [settings.json](/docs/ru/settings-reference#permission-settings). Если правило ask совпадает, вызов передается в ваш callback [`canUseTool`](/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"]`](/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#organization-controls-on-connector-tools), которые ваша организация установила на `ask`, также покидают поток на этом шаге. Каждый вызов передаётся callback, даже в режиме `bypassPermissions` и даже когда совпадает правило allow. Callback получает причину `Your organization requires approval for this tool`. В режиме `dontAsk` вызов отклоняется вместо этого, потому что этот режим никогда не запрашивает подтверждение.31 Инструменты [claude.ai connector](/docs/ru/mcp#organization-controls-on-connector-tools), для которых ваша организация установила `ask`, также покидают поток на этом шаге. Каждый вызов передается в callback, даже в режиме `bypassPermissions` и даже когда совпадает правило allow. Callback получает причину `Your organization requires approval for this tool`. В режиме `dontAsk` вызов отклоняется вместо этого, потому что этот режим никогда не запрашивает.
32 </Step>32 </Step>
33 33
34 <Step title="Режим разрешений">34 <Step title="Permission mode">
35 Примените активный [режим разрешений](#permission-modes):35 Примените активный [режим разрешений](#permission-modes):
36 36
37 * В режиме `bypassPermissions` Claude Code одобряет всё, что достигает этого шага, кроме удалений `rm` и `rmdir`, нацеленных на [критический путь](/docs/ru/permission-modes#critical-paths), которые передаются дальше вместо этого.37 * В режиме `bypassPermissions` Claude Code одобряет все, что достигает этого шага, кроме удалений `rm` и `rmdir`, нацеленных на [критический путь](/docs/ru/permission-modes#critical-paths), которые передаются вместо этого.
38 * В режиме `acceptEdits` Claude Code одобряет операции с файлами, перечисленные в разделе [Режим Accept edits](#accept-edits-mode-acceptedits).38 * В режиме `acceptEdits` Claude Code одобряет операции с файлами, перечисленные в разделе [Accept edits mode](#accept-edits-mode-acceptedits).
39 * В режиме `plan` Claude Code отправляет инструменты file-edit и shell-write вашему callback `canUseTool` независимо от правил allow, поэтому операции записи не могут быть автоматически одобрены во время планирования.39 * В режиме `plan` Claude Code отправляет инструменты редактирования файлов и записи в shell в ваш callback `canUseTool` независимо от правил allow, поэтому операции записи не могут быть автоматически одобрены при планировании.
40 * В других режимах запрос передаётся дальше.40 * В других режимах запрос передается дальше.
41 </Step>41 </Step>
42 42
43 <Step title="Правила allow">43 <Step title="Allow rules">
44 Проверьте правила `allow` (из `allowed_tools` и settings.json). Если правило совпадает, инструмент одобрен. Вызов, который инструмент одобряет самостоятельно, разрешается на этом шаге также без необходимости в правиле: например, чтение файла в ваших рабочих каталогах или [команда Bash только для чтения](/docs/ru/permissions#read-only-commands). Удаления `rm` и `rmdir`, нацеленные на [критический путь](/docs/ru/permission-modes#critical-paths), никогда не одобряются правилом allow: они достигают вашего callback в режимах, которые запрашивают подтверждение, переходят к [классификатору](/docs/ru/permission-modes#eliminate-prompts-with-auto-mode) в режиме `auto` на Claude Code v2.1.218 или более поздней версии и отклоняются в режиме `dontAsk`.44 Проверьте правила `allow` (из `allowed_tools` и settings.json). Если правило совпадает, инструмент одобряется. Вызов, который инструмент одобряет самостоятельно, также разрешается на этом шаге без необходимости в правиле: например, чтение файла в ваших рабочих каталогах или [команда Bash только для чтения](/docs/ru/permissions#read-only-commands). Удаления `rm` и `rmdir`, нацеленные на [критический путь](/docs/ru/permission-modes#critical-paths), никогда не одобряются правилом allow: они достигают вашего callback в режимах, которые запрашивают, переходят в [классификатор](/docs/ru/permission-modes#eliminate-prompts-with-auto-mode) в режиме `auto` на Claude Code v2.1.218 или позже, и отклоняются в режиме `dontAsk`.
45 </Step>45 </Step>
46 46
47 <Step title="Callback canUseTool">47 <Step title="canUseTool callback">
48 Если не разрешено ни одним из вышеперечисленных, вызовите ваш callback [`canUseTool`](/docs/ru/agent-sdk/user-input) для принятия решения. В режиме `dontAsk` этот шаг пропускается и инструмент отклоняется.48 Если ни один из вышеперечисленных шагов не разрешил вызов, вызовите ваш callback [`canUseTool`](/docs/ru/agent-sdk/user-input) для принятия решения. В режиме `dontAsk` этот шаг пропускается и инструмент отклоняется.
49 49
50 В TypeScript SDK, если вы установите [`permissionPrompts: 'none'`](/docs/ru/agent-sdk/typescript#options), ваш callback не вызывается на этом шаге. [Hook `PermissionRequest`](/docs/ru/hooks#permissionrequest) всё ещё получает возможность принять решение, и если он этого не делает, Claude Code отклоняет вызов. Опция требует Claude Code v2.1.259 или более поздней версии.50 В TypeScript SDK, если вы установите [`permissionPrompts: 'none'`](/docs/ru/agent-sdk/typescript#options), ваш callback не вызывается на этом шаге. Hook [`PermissionRequest`](/docs/ru/hooks#permissionrequest) все еще получает возможность принять решение, и если он этого не делает, Claude Code отклоняет вызов. Опция требует Claude Code v2.1.259 или позже.
51 </Step>51 </Step>
52</Steps>52</Steps>
53 53
54<img src="https://mintcdn.com/claude-code/jYgs7qigNjO1Badj/images/agent-sdk/permissions-flow.svg?fit=max&auto=format&n=jYgs7qigNjO1Badj&q=85&s=c771ad9085b1277d3708027a49c744bc" className="dark:hidden" alt="Диаграмма потока оценки разрешений из шести шагов, соответствующая шагам выше: запрос инструмента проходит через hooks, правила deny, правила ask, режим разрешений, правила allow и canUseTool. Hooks, правила deny и canUseTool могут маршрутизировать вниз к Blocked; обход режима разрешений, правила allow и canUseTool могут маршрутизировать вверх к Execute; правила ask маршрутизируют к canUseTool." width="1180" height="260" data-path="images/agent-sdk/permissions-flow.svg" />54<img src="https://mintcdn.com/claude-code/jYgs7qigNjO1Badj/images/agent-sdk/permissions-flow.svg?fit=max&auto=format&n=jYgs7qigNjO1Badj&q=85&s=c771ad9085b1277d3708027a49c744bc" className="dark:hidden" alt="Диаграмма шестиэтапного потока оценки разрешений, соответствующая шагам выше: запрос инструмента проходит через hooks, правила deny, правила ask, режим разрешений, правила allow и canUseTool. Hooks, правила deny и canUseTool могут маршрутизировать вниз к Blocked; обход режима разрешений, правила allow и canUseTool могут маршрутизировать вверх к Execute; правила ask маршрутизируют к canUseTool." width="1180" height="260" data-path="images/agent-sdk/permissions-flow.svg" />
55 55
56<img src="https://mintcdn.com/claude-code/_xqph1dUOslCOwsj/images/agent-sdk/permissions-flow-dark.svg?fit=max&auto=format&n=_xqph1dUOslCOwsj&q=85&s=e53a91e9059cbf51852b7cedb4dd4251" className="hidden dark:block" alt="Диаграмма потока оценки разрешений из шести шагов, соответствующая шагам выше: запрос инструмента проходит через hooks, правила deny, правила ask, режим разрешений, правила allow и canUseTool. Hooks, правила deny и canUseTool могут маршрутизировать вниз к Blocked; обход режима разрешений, правила allow и canUseTool могут маршрутизировать вверх к Execute; правила ask маршрутизируют к canUseTool." width="1180" height="260" data-path="images/agent-sdk/permissions-flow-dark.svg" />56<img src="https://mintcdn.com/claude-code/_xqph1dUOslCOwsj/images/agent-sdk/permissions-flow-dark.svg?fit=max&auto=format&n=_xqph1dUOslCOwsj&q=85&s=e53a91e9059cbf51852b7cedb4dd4251" className="hidden dark:block" alt="Диаграмма шестиэтапного потока оценки разрешений, соответствующая шагам выше: запрос инструмента проходит через hooks, правила deny, правила ask, режим разрешений, правила allow и canUseTool. Hooks, правила deny и canUseTool могут маршрутизировать вниз к Blocked; обход режима разрешений, правила allow и canUseTool могут маршрутизировать вверх к Execute; правила ask маршрутизируют к canUseTool." width="1180" height="260" data-path="images/agent-sdk/permissions-flow-dark.svg" />
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#actions-no-mode-auto-approves)60* `permissionMode: 'bypassPermissions'`, который автоматически одобряет каждый вызов, достигающий шага режима разрешений, кроме [действий, которые ни один режим не одобряет автоматически](/docs/ru/permission-modes#actions-no-mode-auto-approves)
61* Каждая запись `allowedTools` с простым названием, такая как `"Read"`, которая автоматически одобряет весь этот инструмент перед консультацией callback, кроме [действий, которые ни один режим не одобряет автоматически](/docs/ru/permission-modes#actions-no-mode-auto-approves)61* Каждая запись `allowedTools` без спецификатора, такая как `"Read"`, которая автоматически одобряет весь этот инструмент перед консультацией callback, кроме [действий, которые ни один режим не одобряет автоматически](/docs/ru/permission-modes#actions-no-mode-auto-approves)
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`](/docs/ru/agent-sdk/hooks).
66 66
67На этой странице основное внимание уделяется **правилам allow и deny** и **режимам разрешений**. Для других шагов:67Эта страница сосредоточена на **правилах allow и deny** и **режимах разрешений**. Для других шагов:
68 68
69* **Hooks:** запустите пользовательский код для разрешения, отклонения или изменения запросов инструментов. См. [Управление выполнением с помощью hooks](/docs/ru/agent-sdk/hooks).69* **Hooks:** запустите пользовательский код для разрешения, отклонения или изменения запросов инструментов. См. [Control execution with hooks](/docs/ru/agent-sdk/hooks).
70* **Callback canUseTool:** запросите у пользователей утверждение во время выполнения, когда ни один из предыдущих шагов не разрешит вызов. См. [Обработка утверждений и ввода пользователя](/docs/ru/agent-sdk/user-input).70* **canUseTool callback:** запросите у пользователей одобрение во время выполнения, когда ни один более ранний шаг не разрешит вызов. См. [Handle approvals and user input](/docs/ru/agent-sdk/user-input).
71 71
72<h2 id="allow-and-deny-rules">72<h2 id="allow-and-deny-rules">
73 Правила allow и deny73 Правила разрешения и запрета
74</h2>74</h2>
75 75
76`allowed_tools` и `disallowed_tools` (TypeScript: `allowedTools` / `disallowedTools`) добавляют записи в списки правил allow и deny в потоке оценки выше. Если вы назовёте один из [инструментов отслеживания задач](/docs/ru/agent-sdk/todo-tracking#model-availability) в `allowed_tools`, Claude Code также включает сеанс. Любой другой инструмент, не указанный в `allowed_tools`, всё ещё доступен для Claude, и вызов к нему, требующий одобрения, переходит к режиму разрешений. Правила deny ведут себя по-разному в зависимости от того, называют ли они инструмент или определяют шаблон в пределах одного.76`allowed_tools` и `disallowed_tools` (TypeScript: `allowedTools` / `disallowedTools`) добавляют записи в списки правил разрешения и запрета в потоке оценки выше. Если вы назовете один из [инструментов отслеживания задач](/docs/ru/agent-sdk/todo-tracking#model-availability) в `allowed_tools`, Claude Code также включает сеанс. Любой другой инструмент, не указанный в `allowed_tools`, по-прежнему доступен Claude, и вызов к нему, требующий одобрения, переходит в режим разрешений. Правила запрета ведут себя по-разному в зависимости от того, называют ли они инструмент или определяют шаблон в пределах одного.
77 77
78| Опция | Эффект |78| Опция | Эффект |
79| :-------------------------------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |79| :-------------------------------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
80| `allowed_tools=["Read", "Grep"]` | `Read` и `Grep` автоматически одобрены. Другие инструменты, не указанные здесь, всё ещё существуют, и вызовы к ним, требующие одобрения, переходят к режиму разрешений и `canUseTool`. |80| `allowed_tools=["Read", "Grep"]` | `Read` и `Grep` автоматически одобрены. Другие инструменты, не указанные здесь, по-прежнему существуют, и вызовы к ним, требующие одобрения, переходят в режим разрешений и `canUseTool`. |
81| `disallowed_tools=["Bash"]` | Определение инструмента `Bash` удаляется из запроса. Claude не видит инструмент и не может попытаться его использовать. |81| `disallowed_tools=["Bash"]` | Определение инструмента `Bash` удаляется из запроса. Claude не видит инструмент и не может попытаться его использовать. |
82| `disallowed_tools=["Bash(rm *)"]` | `Bash` остаётся доступным. Вызовы, соответствующие `rm *` [как написано](/docs/ru/permissions#bash-rule-limits), отклоняются в каждом режиме разрешений, включая `bypassPermissions`. Другие вызовы `Bash`, включая `/bin/rm`, переходят к режиму разрешений. |82| `disallowed_tools=["Bash(rm *)"]` | `Bash` остается доступным. Вызовы, соответствующие `rm *` [как написано](/docs/ru/permissions#bash-rule-limits), отклоняются в каждом режиме разрешений, включая `bypassPermissions`. Другие вызовы `Bash`, включая `/bin/rm`, переходят в режим разрешений. |
83| `disallowed_tools=["*"]` | Каждое определение инструмента удаляется из запроса. Глобы имён инструментов поддерживаются в правилах deny: `"*"` соответствует каждому инструменту и `"mcp__*"` соответствует каждому инструменту MCP на всех серверах. |83| `disallowed_tools=["*"]` | Каждое определение инструмента удаляется из запроса. Глобы имен инструментов поддерживаются в правилах запрета: `"*"` соответствует каждому инструменту и `"mcp__*"` соответствует каждому инструменту MCP на всех серверах. |
84 84
85Правила allow принимают глобы имён инструментов только после буквального префикса `mcp__<server>__`. Сегмент сервера должен быть свободен от глобов, чтобы правило называло конкретный сервер, который вы настроили: `mcp__puppeteer__*` соответствует каждому инструменту с сервера `puppeteer`, и `mcp__github__get_*` соответствует его инструментам `get_`. Неякорированная запись, такая как `allowed_tools=["*"]` или `allowed_tools=["mcp__*"]`, игнорируется с предупреждением при запуске и не одобряет ничего автоматически.85Правила разрешения принимают глобы имен инструментов только после буквального префикса `mcp__<server>__`. Сегмент сервера должен быть свободен от глобов, чтобы правило называло конкретный сервер, который вы настроили: `mcp__puppeteer__*` соответствует каждому инструменту с сервера `puppeteer`, а `mcp__github__get_*` соответствует его инструментам `get_`. Неякорированная запись, такая как `allowed_tools=["*"]` или `allowed_tools=["mcp__*"]`, игнорируется с предупреждением при запуске и не одобряет ничего автоматически.
86 86
87Правила с областью действия для `Read` и `Edit` принимают шаблон пути. Правила `Edit(path)` управляют всеми встроенными инструментами, которые записывают файлы, включая `Write` и `NotebookEdit`; правило `Write(path)` никогда не совпадает с проверками разрешений файлов.87Правила с областью действия для `Read` и `Edit` принимают шаблон пути. Правила `Edit(path)` управляют всеми встроенными инструментами, которые записывают файлы, включая `Write` и `NotebookEdit`; правило `Write(path)` никогда не совпадает с проверками разрешений файлов.
88 88
89Используйте `//path` для абсолютного пути файловой системы: правило deny `Edit(//secrets/**)` блокирует записи в любом месте под `/secrets` на диске. С одной ведущей косой чертой `Edit(/secrets/**)` якорируется в источнике правила. Для правил, переданных через `allowed_tools` или `disallowed_tools`, это означает рабочий каталог сеанса, поэтому правило не блокирует `/secrets` на диске. См. [Правила Read и Edit](/docs/ru/permissions#read-and-edit) для четырёх форм якорей и того, как правила из файлов параметров разрешаются.89Используйте `//path` для абсолютного пути файловой системы: правило запрета `Edit(//secrets/**)` блокирует записи в любом месте под `/secrets` на диске. С одной ведущей косой чертой `Edit(/secrets/**)` якорируется в источнике правила. Для правил, переданных через `allowed_tools` или `disallowed_tools`, это означает рабочий каталог сеанса, поэтому правило не блокирует `/secrets` на диске. См. [Правила Read и Edit](/docs/ru/permissions#read-and-edit) для четырех форм якорей и того, как правила из файлов параметров разрешаются.
90 90
91<Warning>91<Warning>
92 **Автоматически одобренные инструменты никогда не достигают `canUseTool`.** Вызов инструмента, одобренный на любом более раннем этапе, с помощью `acceptEdits` или `bypassPermissions`, или по правилу allow, пропускает ваш обратный вызов `canUseTool`, поэтому проверки разрешений, которые вы там поместили, молча обходятся для этого инструмента. `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#critical-paths), всё ещё достигают обратного вызова, даже когда совпадает правило allow. В режиме `auto` удаления критических путей переходят к [классификатору](/docs/ru/permission-modes#eliminate-prompts-with-auto-mode) вместо обратного вызова, в то время как другие вызовы, перечисленные здесь, всё ещё достигают его; маршрутизация классификатора требует Claude Code v2.1.218 или позже. В режиме `dontAsk` эти вызовы вместо этого отклоняются, без вызова обратного вызова.92 **Автоматически одобренные инструменты никогда не достигают `canUseTool`.** Вызов инструмента, одобренный на любом более раннем этапе, по `acceptEdits` или `bypassPermissions`, или по правилу разрешения, пропускает ваш обратный вызов `canUseTool`, поэтому проверки разрешений, которые вы там поместили, молча обходятся для этого инструмента. `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#critical-paths), по-прежнему достигают обратного вызова, даже когда правило разрешения совпадает. В режиме `auto` удаления критических путей переходят к [классификатору](/docs/ru/permission-modes#eliminate-prompts-with-auto-mode) вместо обратного вызова, в то время как другие вызовы, перечисленные здесь, по-прежнему достигают его; маршрутизация классификатора требует Claude Code v2.1.218 или позже. В режиме `dontAsk` эти вызовы вместо этого отклоняются, без вызова обратного вызова.
93 93
94 Охват зависит от формы записи: простое имя, такое как `Read` или `mcp__github__get_issue`, автоматически одобряет каждый вызов этого инструмента, кроме исключений выше, в то время как правило с областью действия, такое как `Bash(npm test *)`, автоматически одобряет только совпадающие вызовы, и другие вызовы `Bash`, требующие одобрения, всё ещё переходят к обратному вызову. Для проверок, которые должны выполняться при каждом вызове инструмента, используйте [`PreToolUse` hook](/docs/ru/agent-sdk/hooks): hooks выполняются перед каждым другим шагом, и отказ hook применяется даже в режиме `bypassPermissions`.94 Охват зависит от формы записи: простое имя, такое как `Read` или `mcp__github__get_issue`, автоматически одобряет каждый вызов этого инструмента, кроме исключений выше, в то время как правило с областью действия, такое как `Bash(npm test *)`, автоматически одобряет только совпадающие вызовы, и другие вызовы `Bash`, требующие одобрения, по-прежнему переходят в обратный вызов. Для проверок, которые должны выполняться при каждом вызове инструмента, используйте [хук `PreToolUse`](/docs/ru/agent-sdk/hooks): хуки выполняются перед каждым другим шагом, и отказ хука применяется даже в режиме `bypassPermissions`.
95</Warning>95</Warning>
96 96
97Для заблокированного агента объедините `allowedTools` с `permissionMode: "dontAsk"`:97Для заблокированного агента объедините `allowedTools` с `permissionMode: "dontAsk"`:
103};103};
104```104```
105 105
106Указанные инструменты одобрены, кроме [действий, которые ни один режим не одобряет автоматически](/docs/ru/permission-modes#actions-no-mode-auto-approves), и каждый другой вызов, который бы запросил, вместо этого отклоняется. Вызовы, которые не требуют одобрения в режиме `default`, выполняются независимо от того, указаны ли они, такие как [команды Bash только для чтения](/docs/ru/permissions#read-only-commands), инструменты, такие как `Agent`, которые не запрашивают перед запуском, и чтение файлов в ваших рабочих каталогах. Чтобы полностью исключить инструмент из досягаемости Claude, добавьте его простое имя в `disallowedTools`.106Перечисленные инструменты одобрены, кроме [действий, которые ни один режим не одобряет автоматически](/docs/ru/permission-modes#actions-no-mode-auto-approves), и каждый другой вызов, который будет запрашивать, вместо этого отклоняется. Вызовы, которые не требуют одобрения в режиме `default`, выполняются независимо от того, указаны ли они в списке, такие как [команды Bash только для чтения](/docs/ru/permissions#read-only-commands), инструменты, такие как `Agent`, которые не спрашивают перед запуском, и чтение файлов в ваших рабочих каталогах. Чтобы полностью исключить инструмент из досягаемости Claude, добавьте его простое имя в `disallowedTools`.
107 107
108<Warning>108<Warning>
109 **`allowed_tools` не ограничивает `bypassPermissions`.** `allowed_tools` только предварительно одобряет указанные вами инструменты. Неуказанные инструменты не совпадают ни с одним правилом allow и переходят к режиму разрешений, где `bypassPermissions` их одобряет. Установка `allowed_tools=["Read"]` вместе с `permission_mode="bypassPermissions"` всё ещё одобряет каждый инструмент, включая `Bash`, `Write` и `Edit`. Если вам нужен `bypassPermissions`, но вы хотите заблокировать определённые инструменты, используйте `disallowed_tools`.109 **`allowed_tools` не ограничивает `bypassPermissions`.** `allowed_tools` предварительно одобряет инструменты, которые вы указали. Другие неуказанные инструменты не совпадают ни с одним правилом разрешения и переходят в режим разрешений, где `bypassPermissions` их одобряет. Установка `allowed_tools=["Read"]` наряду с `permission_mode="bypassPermissions"` по-прежнему одобряет каждый инструмент, включая `Bash`, `Write` и `Edit`. Если вам нужен `bypassPermissions`, но вы хотите заблокировать определенные инструменты, используйте `disallowed_tools`.
110</Warning>110</Warning>
111 111
112Вы также можете настроить правила allow, deny и ask декларативно в `.claude/settings.json`. Эти правила читаются, когда включен источник параметра `project`, что происходит для параметров `query()` по умолчанию. Если вы явно установите `setting_sources` (TypeScript: `settingSources`), включите `"project"`, чтобы они применялись. См. [Параметры разрешений](/docs/ru/settings-reference#permission-settings) для синтаксиса правил.112Вы также можете настроить правила разрешения, запрета и запроса декларативно в `.claude/settings.json`. Эти правила читаются, когда источник параметра `project` включен, что он есть для параметров `query()` по умолчанию. Если вы явно установите `setting_sources` (TypeScript: `settingSources`), включите `"project"`, чтобы они применялись. См. [Параметры разрешений](/docs/ru/settings-reference#permission-settings) для синтаксиса правил.
113 113
114<h2 id="permission-modes">114<h2 id="permission-modes">
115 Режимы разрешений115 Режимы разрешений
116</h2>116</h2>
117 117
118Режимы разрешений обеспечивают глобальный контроль над использованием инструментов Claude. Вы можете установить режим разрешений при вызове `query()` или изменить его динамически во время сеансов потоковой передачи.118Режимы разрешений обеспечивают глобальный контроль над тем, как Claude использует инструменты. Вы можете установить режим разрешений при вызове `query()` или изменить его динамически во время сеансов потоковой передачи.
119 119
120<h3 id="available-modes">120<h3 id="available-modes">
121 Доступные режимы121 Доступные режимы
124SDK поддерживает эти режимы разрешений:124SDK поддерживает эти режимы разрешений:
125 125
126| Режим | Описание | Поведение инструмента |126| Режим | Описание | Поведение инструмента |
127| :------------------ | :-------------------------------------------- | :--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |127| :------------------ | :-------------------------------------------- | :----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
128| `default` | Стандартное поведение разрешений | Без автоматических одобрений; вызовы, требующие одобрения и не совпадающие с правилом разрешения, запускают ваш callback `canUseTool` |128| `default` | Стандартное поведение разрешений | Нет автоматических одобрений на основе режима; вызовы, требующие одобрения и не соответствующие никакому правилу разрешения, запускают ваш обратный вызов `canUseTool` |
129| `dontAsk` | Отклонение вместо запроса | Любой вызов, который иначе запросил бы разрешение, отклоняется. Вызовы, одобренные `allowed_tools` или правилами, работают, как и вызовы, которые не требуют одобрения в режиме `default`, такие как чтение файлов в рабочих каталогах и вызовы `Agent`; инструменты соединителя [которые ваша организация установила на `ask`](/docs/ru/mcp#organization-controls-on-connector-tools) и инструменты, требующие взаимодействия с пользователем, отклоняются даже если вы их предварительно одобрили, как и удаления `rm` и `rmdir`, нацеленные на [критический путь](/docs/ru/permission-modes#critical-paths). `canUseTool` никогда не вызывается |129| `dontAsk` | Отклонить вместо запроса | Любой вызов, который иначе запросил бы подтверждение, отклоняется. Вызовы, одобренные `allowed_tools` или правилами, выполняются, как и вызовы, не требующие одобрения в режиме `default`, такие как чтение файлов внутри рабочих каталогов и вызовы `Agent`. Инструменты соединителя [установленные вашей организацией на `ask`](/docs/ru/mcp#organization-controls-on-connector-tools) и инструменты, требующие взаимодействия с пользователем, отклоняются даже если вы их предварительно одобрили, как и удаления `rm` и `rmdir`, нацеленные на [критический путь](/docs/ru/permission-modes#critical-paths). `canUseTool` никогда не вызывается |
130| `acceptEdits` | Автоматическое принятие редактирования файлов | Редактирование файлов и [операции с файловой системой](#accept-edits-mode-acceptedits) (`mkdir`, `rm`, `mv` и т. д.) автоматически одобрены |130| `acceptEdits` | Автоматически принимать редактирование файлов | Редактирование файлов и [операции с файловой системой](#accept-edits-mode-acceptedits) (`mkdir`, `rm`, `mv` и т. д.) автоматически одобряются |
131| `bypassPermissions` | Обход проверок разрешений | Инструменты работают без запросов разрешений, кроме [действий, которые ни один режим не одобряет автоматически](/docs/ru/permission-modes#actions-no-mode-auto-approves). Используйте с осторожностью |131| `bypassPermissions` | Обойти проверки разрешений | Инструменты выполняются без запросов разрешений, за исключением [действий, которые ни один режим не одобряет автоматически](/docs/ru/permission-modes#actions-no-mode-auto-approves). Используйте с осторожностью |
132| `plan` | Режим планирования | Claude исследует и планирует без редактирования исходных файлов; редактирование файлов никогда не одобряется автоматически и запрашивается через ваш callback `canUseTool` |132| `plan` | Режим планирования | Claude исследует и планирует без редактирования исходных файлов; редактирование файлов никогда не одобряется автоматически и запрашивается через ваш обратный вызов `canUseTool` |
133| `auto` | Одобрения, классифицированные моделью | Классификатор модели одобряет или отклоняет запросы разрешений. См. [Режим Auto](/docs/ru/permission-modes#eliminate-prompts-with-auto-mode) для доступности |133| `auto` | Одобрения, классифицированные моделью | Классификатор модели одобряет или отклоняет запросы разрешений. См. [Режим Auto](/docs/ru/permission-modes#eliminate-prompts-with-auto-mode) для получения информации о доступности |
134 134
135<Warning>135<Warning>
136 **Наследование подагентом:** Подагент работает в режиме разрешений родительского сеанса, если вы не установите `permissionMode` на его [`AgentDefinition`](/docs/ru/agent-sdk/typescript#agentdefinition) и родительский сеанс находится в режиме `default`, `dontAsk` или `plan`. Даже в этом случае Claude Code никогда не применяет значение `"bypassPermissions"`. Подагент работает в режиме `bypassPermissions` только когда сам родительский сеанс это делает. Исключение `bypassPermissions` требует Claude Code v2.1.267 или позже.136 **Наследование подагентом:** Подагент выполняется в режиме разрешений родительского сеанса, если вы не установите `permissionMode` на его [`AgentDefinition`](/docs/ru/agent-sdk/typescript#agentdefinition) и родительский сеанс находится в режиме `default`, `dontAsk` или `plan`. Даже в этом случае Claude Code никогда не применяет значение `"bypassPermissions"`. Подагент выполняется в режиме `bypassPermissions` только когда сам родительский сеанс находится в этом режиме. Исключение `bypassPermissions` требует Claude Code v2.1.267 или более поздней версии.
137 137
138 Подагенты могут иметь различные системные подсказки и менее ограниченное поведение, чем ваш основной агент, поэтому наследование `bypassPermissions` предоставляет им полный автономный доступ к системе. [Действия, которые ни один режим не одобряет автоматически](/docs/ru/permission-modes#actions-no-mode-auto-approves), по-прежнему применяются.138 Подагенты могут иметь различные системные подсказки и менее ограниченное поведение, чем ваш основной агент, поэтому наследование `bypassPermissions` предоставляет им полный автономный доступ к системе. [Действия, которые ни один режим не одобряет автоматически](/docs/ru/permission-modes#actions-no-mode-auto-approves), по-прежнему применяются.
139</Warning>139</Warning>
146 146
147<Tabs>147<Tabs>
148 <Tab title="При запросе">148 <Tab title="При запросе">
149 Передайте `permission_mode` (Python) или `permissionMode` (TypeScript) при создании запроса. Этот режим применяется для всего сеанса, если не изменён динамически.149 Передайте `permission_mode` (Python) или `permissionMode` (TypeScript) при создании запроса. Этот режим применяется для всего сеанса, если не изменяется динамически.
150 150
151 <CodeGroup>151 <CodeGroup>
152 ```python Python theme={null}152 ```python Python theme={null}
158 async for message in query(158 async for message in query(
159 prompt="Help me refactor this code",159 prompt="Help me refactor this code",
160 options=ClaudeAgentOptions(160 options=ClaudeAgentOptions(
161 permission_mode="default", # Установите режим здесь161 permission_mode="default", # Set the mode here
162 ),162 ),
163 ):163 ):
164 if hasattr(message, "result"):164 if hasattr(message, "result"):
175 for await (const message of query({175 for await (const message of query({
176 prompt: "Help me refactor this code",176 prompt: "Help me refactor this code",
177 options: {177 options: {
178 permissionMode: "default" // Установите режим здесь178 permissionMode: "default" // Set the mode here
179 }179 }
180 })) {180 })) {
181 if ("result" in message) {181 if ("result" in message) {
201 async def main():201 async def main():
202 async with ClaudeSDKClient(202 async with ClaudeSDKClient(
203 options=ClaudeAgentOptions(203 options=ClaudeAgentOptions(
204 permission_mode="default", # Начните в режиме по умолчанию204 permission_mode="default", # Start in default mode
205 )205 )
206 ) as client:206 ) as client:
207 await client.query("Help me refactor this code")207 await client.query("Help me refactor this code")
208 208
209 # Измените режим динамически в середине сеанса209 # Change mode dynamically mid-session
210 await client.set_permission_mode("acceptEdits")210 await client.set_permission_mode("acceptEdits")
211 211
212 # Обработайте сообщения с новым режимом разрешений212 # Process messages with the new permission mode
213 async for message in client.receive_response():213 async for message in client.receive_response():
214 if hasattr(message, "result"):214 if hasattr(message, "result"):
215 print(message.result)215 print(message.result)
225 const q = query({225 const q = query({
226 prompt: "Help me refactor this code",226 prompt: "Help me refactor this code",
227 options: {227 options: {
228 permissionMode: "default" // Начните в режиме по умолчанию228 permissionMode: "default" // Start in default mode
229 }229 }
230 });230 });
231 231
232 // Измените режим динамически в середине сеанса232 // Change mode dynamically mid-session
233 await q.setPermissionMode("acceptEdits");233 await q.setPermissionMode("acceptEdits");
234 234
235 // Обработайте сообщения с новым режимом разрешений235 // Process messages with the new permission mode
236 for await (const message of q) {236 for await (const message of q) {
237 if ("result" in message) {237 if ("result" in message) {
238 console.log(message.result);238 console.log(message.result);
254 Режим принятия редактирования (`acceptEdits`)254 Режим принятия редактирования (`acceptEdits`)
255</h4>255</h4>
256 256
257Автоматически одобряет операции с файлами, чтобы Claude мог редактировать код без запроса. Другие инструменты (например, команды Bash, которые не являются операциями с файловой системой) по-прежнему требуют обычных разрешений.257Автоматически одобряет операции с файлами, чтобы Claude мог редактировать код без запроса. Другие инструменты (такие как команды Bash, которые не являются операциями с файловой системой) по-прежнему требуют обычных разрешений.
258 258
259**Автоматически одобренные операции:**259**Автоматически одобренные операции:**
260 260
263 263
264Оба применяются только к путям внутри рабочего каталога или `additionalDirectories`. В режиме `acceptEdits` Claude Code не одобряет запрос автоматически, когда Claude:264Оба применяются только к путям внутри рабочего каталога или `additionalDirectories`. В режиме `acceptEdits` Claude Code не одобряет запрос автоматически, когда Claude:
265 265
266* Работает с путём вне этой области266* Работает с путем вне этой области
267* Записывает в защищённый путь267* Записывает в защищенный путь
268* Удаляет [критический путь](/docs/ru/permission-modes#critical-paths) с помощью `rm` или `rmdir`268* Удаляет [критический путь](/docs/ru/permission-modes#critical-paths) с помощью `rm` или `rmdir`
269 269
270**Используйте, когда:** вы доверяете редактированию Claude и хотите более быстрой итерации, например во время прототипирования или при работе в изолированном каталоге.270**Используйте когда:** вы доверяете редактированиям Claude и хотите более быструю итерацию, например во время прототипирования или при работе в изолированном каталоге.
271 271
272<h4 id="don’t-ask-mode-dontask">272<h4 id="don’t-ask-mode-dontask">
273 Режим без запроса (`dontAsk`)273 Режим не спрашивать (`dontAsk`)
274</h4>274</h4>
275 275
276Преобразует любой запрос разрешения в отклонение без вызова `canUseTool`. Инструменты, предварительно одобренные `allowed_tools`, правилами разрешения в `settings.json` или hook, работают нормально, как и вызовы, которые не требуют одобрения в режиме `default`, такие как чтение файлов в рабочих каталогах и вызовы `Agent`. Инструменты соединителя [которые ваша организация установила на `ask`](/docs/ru/mcp#organization-controls-on-connector-tools), инструменты, требующие взаимодействия с пользователем, и удаления `rm` и `rmdir`, нацеленные на [критический путь](/docs/ru/permission-modes#critical-paths), отклоняются даже если правило разрешения совпадает. Allow hook не очищает удаление критического пути.276Преобразует любой запрос разрешения в отклонение без вызова `canUseTool`. Инструменты, предварительно одобренные `allowed_tools`, правилами разрешения в `settings.json` или hook, выполняются нормально, как и вызовы, не требующие одобрения в режиме `default`, такие как чтение файлов внутри рабочих каталогов и вызовы `Agent`. Инструменты соединителя [установленные вашей организацией на `ask`](/docs/ru/mcp#organization-controls-on-connector-tools), инструменты, требующие взаимодействия с пользователем, и удаления `rm` и `rmdir`, нацеленные на [критический путь](/docs/ru/permission-modes#critical-paths), отклоняются даже когда правило разрешения совпадает. Разрешение hook `PreToolUse` также не очищает удаление критического пути.
277 277
278**Используйте, когда:** вы хотите фиксированную, явную поверхность инструментов для автономного агента и предпочитаете жёсткое отклонение молчаливому полаганию на отсутствие `canUseTool`.278**Используйте когда:** вы хотите фиксированную, явную поверхность инструментов для headless агента и предпочитаете жесткое отклонение молчаливому полаганию на отсутствие `canUseTool`.
279 279
280<h4 id="bypass-permissions-mode-bypasspermissions">280<h4 id="bypass-permissions-mode-bypasspermissions">
281 Режим обхода разрешений (`bypassPermissions`)281 Режим обхода разрешений (`bypassPermissions`)
282</h4>282</h4>
283 283
284Автоматически одобряет использование инструментов без запросов, кроме случаев, перечисленных в предупреждении ниже. Hooks всё ещё выполняются и могут блокировать операции при необходимости.284Автоматически одобряет использование инструментов без запроса, за исключением случаев, перечисленных в предупреждении ниже. Hooks по-прежнему выполняются и могут блокировать операции при необходимости.
285 285
286<Warning>286<Warning>
287 Используйте с крайней осторожностью. Claude имеет полный доступ к системе в этом режиме. Используйте только в контролируемых средах, где вы доверяете всем возможным операциям.287 Используйте с крайней осторожностью. Claude имеет полный доступ к системе в этом режиме. Используйте только в контролируемых средах, где вы доверяете всем возможным операциям.
288 288
289 `allowed_tools` не ограничивает этот режим. Каждый инструмент одобрен, а не только те, которые вы указали. Эти элементы управления по-прежнему применяются:289 `allowed_tools` не ограничивает этот режим. Каждый инструмент одобрен, а не только те, которые вы указали. Эти элементы управления по-прежнему применяются:
290 290
291 * Правила deny, явные правила `ask` и hooks оцениваются перед проверкой режима и могут по-прежнему блокировать инструмент.291 * Правила отклонения, явные правила `ask` и hooks оцениваются перед проверкой режима и могут по-прежнему блокировать инструмент.
292 * Инструменты соединителя [которые ваша организация установила на `ask`](/docs/ru/mcp#organization-controls-on-connector-tools), инструменты, требующие взаимодействия с пользователем, и удаления `rm` и `rmdir`, нацеленные на [критический путь](/docs/ru/permission-modes#critical-paths), по-прежнему переходят к вашему callback `canUseTool`.292 * Инструменты соединителя [установленные вашей организацией на `ask`](/docs/ru/mcp#organization-controls-on-connector-tools), инструменты, требующие взаимодействия с пользователем, и удаления `rm` и `rmdir`, нацеленные на [критический путь](/docs/ru/permission-modes#critical-paths), по-прежнему переходят к вашему обратному вызову `canUseTool`.
293 * [Защиты обмена сообщениями между сеансами](/docs/ru/permission-modes#skip-all-checks-with-bypasspermissions-mode) по-прежнему применяются.293 * [Защита обмена сообщениями между сеансами](/docs/ru/permission-modes#skip-all-checks-with-bypasspermissions-mode) по-прежнему применяется.
294</Warning>294</Warning>
295 295
296<h4 id="plan-mode-plan">296<h4 id="plan-mode-plan">
297 Режим планирования (`plan`)297 Режим планирования (`plan`)
298</h4>298</h4>
299 299
300Claude исследует кодовую базу и создаёт план без редактирования исходных файлов. Инструменты только для чтения работают как в режиме `default` разрешений.300Claude исследует кодовую базу и создает план без редактирования исходных файлов. Инструменты только для чтения выполняются так же, как в режиме разрешений `default`.
301 301
302Редактирование файлов никогда не одобряется автоматически в режиме планирования, даже если правило allow совпадает. Вместо этого они запрашиваются через ваш callback `canUseTool`. На Claude Code v2.1.212 или позже команды оболочки, которые изменяют файлы, такие как `touch` и `rm`, достигают вашего callback `canUseTool` таким же образом.302Редактирование файлов никогда не одобряется автоматически в режиме планирования, даже когда правило разрешения совпадает. Вместо этого они запрашиваются через ваш обратный вызов `canUseTool`. В Claude Code v2.1.212 или более поздней версии команды оболочки, которые изменяют файлы, такие как `touch` и `rm`, достигают вашего обратного вызова `canUseTool` таким же образом.
303 303
304Claude может использовать `AskUserQuestion` для уточнения требований перед завершением плана. См. [Обработка утверждений и ввода пользователя](/docs/ru/agent-sdk/user-input#handle-clarifying-questions) для обработки этих запросов.304Claude может использовать `AskUserQuestion` для уточнения требований перед финализацией плана. См. [Обработка одобрений и ввода пользователя](/docs/ru/agent-sdk/user-input#handle-clarifying-questions) для обработки этих запросов.
305 305
306**Используйте, когда:** вы хотите, чтобы Claude предложил изменения без их выполнения, например при проверке кода или когда вам нужно одобрить изменения перед их внесением.306**Используйте когда:** вы хотите, чтобы Claude предложил изменения без их выполнения, например при проверке кода или когда вам нужно одобрить изменения перед их внесением.
307 307
308<h2 id="related-resources">308<h2 id="related-resources">
309 Связанные ресурсы309 Связанные ресурсы
310</h2>310</h2>
311 311
312Для других шагов в потоке оценки разрешений:312Для других этапов потока оценки разрешений:
313 313
314* [Обработка утверждений и ввода пользователя](/docs/ru/agent-sdk/user-input): интерактивные запросы утверждения и уточняющие вопросы314* [Обработка одобрений и ввода пользователя](/docs/ru/agent-sdk/user-input): интерактивные подсказки одобрения и уточняющие вопросы
315* [Руководство по hooks](/docs/ru/agent-sdk/hooks): запуск пользовательского кода в ключевых точках жизненного цикла агента315* [Руководство hooks](/docs/ru/agent-sdk/hooks): запуск пользовательского кода в ключевых точках жизненного цикла агента
316* [Правила разрешений](/docs/ru/settings-reference#permission-settings): декларативные правила allow/deny в `settings.json`316* [Правила разрешений](/docs/ru/settings-reference#permission-settings): декларативные правила разрешения/запрета в `settings.json`