This commit is contained in:
2026-06-09 21:19:30 +08:00
parent 8b41ff9360
commit 0484e79978
66 changed files with 4043 additions and 533 deletions
+1
View File
@@ -0,0 +1 @@
ALTER TABLE users DROP COLUMN enabled;
+4
View File
@@ -0,0 +1,4 @@
-- ============ 用户管理:账号启用状态 ============
-- enabled 用于管理员禁用账号而不删除:禁用后该用户无法通过 ResolveSession
-- 鉴权。默认 TRUE 保证存量账号与 bootstrap 管理员不受影响。
ALTER TABLE users ADD COLUMN enabled BOOLEAN NOT NULL DEFAULT TRUE;
+2
View File
@@ -0,0 +1,2 @@
DROP TABLE acp_permission_requests;
ALTER TABLE acp_agent_kinds DROP COLUMN tool_allowlist;
+25
View File
@@ -0,0 +1,25 @@
-- ============ ACP 工具调用权限审批 ============
-- agent kind 的工具白名单:命中的工具调用自动放行(status=auto),未命中走人工审批。
-- 空数组表示无白名单(全部需人工审批);含 '*' 表示全部自动放行。
ALTER TABLE acp_agent_kinds ADD COLUMN tool_allowlist TEXT[] NOT NULL DEFAULT '{}';
-- 代理发起的 session/request_permission 请求落库,供人工审批与审计。
CREATE TABLE acp_permission_requests (
id UUID PRIMARY KEY,
session_id UUID NOT NULL REFERENCES acp_sessions(id) ON DELETE CASCADE,
agent_request_id TEXT NOT NULL DEFAULT '', -- 代理 JSON-RPC request id(排障/幂等)
tool_name TEXT NOT NULL DEFAULT '', -- 从 toolCall 提取的工具标识,便于展示
tool_call JSONB NOT NULL, -- 原始 toolCall 对象
options JSONB NOT NULL, -- 原始 options 数组
status TEXT NOT NULL, -- pending|approved|denied|auto|expired
chosen_option_id TEXT, -- 最终选中的 option id
decided_by UUID REFERENCES users(id) ON DELETE SET NULL,
decided_at TIMESTAMPTZ,
created_at TIMESTAMPTZ NOT NULL DEFAULT now(),
CONSTRAINT acp_perm_status_check
CHECK (status IN ('pending','approved','denied','auto','expired'))
);
CREATE INDEX idx_acp_perm_session_status ON acp_permission_requests(session_id, status);
CREATE INDEX idx_acp_perm_pending ON acp_permission_requests(status) WHERE status = 'pending';