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
+59 -30
View File
@@ -58,6 +58,7 @@ type AgentKind struct {
Args []string
EncryptedEnv []byte
Enabled bool
ToolAllowlist []string // 命中的工具调用自动放行;含 "*" 表示全部放行
CreatedBy uuid.UUID
CreatedAt time.Time
UpdatedAt time.Time
@@ -66,23 +67,23 @@ type AgentKind struct {
// Session 是一次 ACP 会话。AgentSessionID 是 agent 侧的 session 标识(来自
// session/new response),与本表 ID 不同,仅用于 ACP 协议 method 内填充。
type Session struct {
ID uuid.UUID
WorkspaceID uuid.UUID
ProjectID uuid.UUID
AgentKindID uuid.UUID
UserID uuid.UUID
IssueID *uuid.UUID
RequirementID *uuid.UUID
AgentSessionID *string
Branch string
CwdPath string
IsMainWorktree bool
Status SessionStatus
PID *int32
ExitCode *int32
LastError *string
StartedAt time.Time
EndedAt *time.Time
ID uuid.UUID
WorkspaceID uuid.UUID
ProjectID uuid.UUID
AgentKindID uuid.UUID
UserID uuid.UUID
IssueID *uuid.UUID
RequirementID *uuid.UUID
AgentSessionID *string
Branch string
CwdPath string
IsMainWorktree bool
Status SessionStatus
PID *int32
ExitCode *int32
LastError *string
StartedAt time.Time
EndedAt *time.Time
}
// Event 是一条入库的 JSON-RPC 消息。Payload 是 JSON-RPC envelope 完整 JSON
@@ -136,22 +137,50 @@ type CreateSessionInput struct {
// CreateAgentKindInput 携带创建必需字段。Args / Env 可为 nil。
type CreateAgentKindInput struct {
Name string
DisplayName string
Description string
BinaryPath string
Args []string
Env map[string]string
Enabled bool
Name string
DisplayName string
Description string
BinaryPath string
Args []string
Env map[string]string
Enabled bool
ToolAllowlist []string
}
// UpdateAgentKindInput 是 patch 输入。Name 不可改(创建后稳定,引用约束)。
// Env 三态:nil = 不修改;空 map = 清空全部 env;非空 = 整体替换。
type UpdateAgentKindInput struct {
DisplayName *string
Description *string
BinaryPath *string
Args []string // nil = 不改;非 nil = 替换
Env map[string]string // nil = 不改;非 nil(含空)= 替换
Enabled *bool
DisplayName *string
Description *string
BinaryPath *string
Args []string // nil = 不改;非 nil = 替换
Env map[string]string // nil = 不改;非 nil(含空)= 替换
Enabled *bool
ToolAllowlist []string // nil = 不改;非 nil(含空)= 替换
}
// PermissionStatus 是 acp_permission_requests.status 枚举。
type PermissionStatus string
const (
PermissionPending PermissionStatus = "pending"
PermissionApproved PermissionStatus = "approved"
PermissionDenied PermissionStatus = "denied"
PermissionAuto PermissionStatus = "auto"
PermissionExpired PermissionStatus = "expired"
)
// PermissionRequest 是一条代理发起的工具调用授权请求记录。
type PermissionRequest struct {
ID uuid.UUID
SessionID uuid.UUID
AgentRequestID string
ToolName string
ToolCall []byte // 原始 toolCall JSON
Options []byte // 原始 options JSON
Status PermissionStatus
ChosenOptionID *string
DecidedBy *uuid.UUID
DecidedAt *time.Time
CreatedAt time.Time
}