新增: AI工具授权目录总开关(信任所有目录)

- path_auth判定加bypass旁路:开启时白名单外目录免逐次询问直接放行
- 黑名单凭据目录保护不随开关放行(安全硬边界保留)
- 设置页授权目录面板加开关(默认关,读取失败按关处理)
- 对话区开启时常驻放行提示横幅防静默裸奔,中英i18n齐
This commit is contained in:
lxy
2026-09-29 14:59:02 +08:00
parent 0168617503
commit 8a1675b58c
8 changed files with 114 additions and 5 deletions
@@ -8,6 +8,15 @@
<!-- 说明 -->
<p class="allowed-dirs-desc">{{ $t('settings.descAllowedDirs') }}</p>
<!-- 「信任所有目录」总开关:开启后白名单外路径不再逐次弹授权(后端黑名单仍硬拒)。
走 appSettings KV(df-ai-path-auth-bypass),后端 process_tool_calls 每轮读取,改后即时生效。 -->
<SettingRow :label="$t('settings.labelPathAuthBypass')" :desc="$t('settings.descPathAuthBypass')">
<label class="toggle">
<input type="checkbox" v-model="pathAuthBypass" />
<span class="toggle-slider"></span>
</label>
</SettingRow>
<!-- 列表 -->
<div v-if="loading" class="empty-hint">{{ $t('settings.allowedDirsLoading') }}</div>
<template v-else>
@@ -99,6 +108,9 @@ const newDir = ref('')
const loading = ref(true)
const saving = ref(false)
// 「信任所有目录」总开关(useSetting 双向绑 KV,写走 debounced 落库,后端每轮工具执行前读)
const pathAuthBypass = appSettings.useSetting<boolean>('df-ai-path-auth-bypass', false)
async function load() {
loading.value = true
try {