权限系统

SDK 的权限系统控制工具的执行权限,支持四种模式。

权限模式

模式 说明 适用场景
auto 自动执行低风险操作,高风险请求确认 日常开发
manual 所有工具调用都需要用户确认 生产环境
bypass 跳过所有权限检查 自动化脚本
plan 仅做风险评估,不执行 预览模式

配置权限模式

import { ClaudeCodeSDK } from 'claude-code-sdk-ts'

const sdk = new ClaudeCodeSDK({
  llm: { /* ... */ },
  permissionMode: 'manual', // 所有工具调用都需要确认
})

自定义权限规则

import { ClaudeCodeSDK } from 'claude-code-sdk-ts'

const sdk = new ClaudeCodeSDK({
  llm: { /* ... */ },
  permissionMode: 'auto',
  permissionRules: [
    {
      tool: 'BashTool',
      allowPatterns: ['ls', 'cat', 'echo'],  // 这些命令自动允许
      denyPatterns: ['rm', 'sudo', 'chmod'],  // 这些命令自动拒绝
    },
    {
      tool: 'FileWriteTool',
      allowPaths: ['./src/**'],               // 只允许写入 src 目录
      denyPaths: ['./node_modules/**'],        // 禁止修改 node_modules
    },
  ],
})

运行时权限控制

import { PermissionManager } from 'claude-code-sdk-ts'

const pm = new PermissionManager()

// 检查工具是否允许执行
const request = {
  tool: 'BashTool',
  input: { command: 'ls -la' },
  riskLevel: 'low',
}

const decision = pm.evaluate(request)
if (decision.allowed) {
  console.log('允许执行')
} else {
  console.log(`拒绝: ${decision.reason}`)
}