Documentation
¶
Overview ¶
internal/ccbroker/tools/permission.go
Index ¶
Constants ¶
This section is empty.
Variables ¶
View Source
var ( ErrCrossUserDenied = errors.New("cross_user_denied: cross-user executor invocation not allowed") ErrPermissionDenied = errors.New("permission_denied") )
Functions ¶
func BuildMcpServer ¶
func BuildMcpServer(tctx *Context) *agentsdk.McpSdkServer
BuildMcpServer assembles every tool into one in-process MCP server. The server name "cc-broker" matches the AllowedTools wildcard "mcp__cc-broker__*" used by runner/options.go.
func BuildSystemPrompt ¶ added in v0.47.0
func BuildSystemPrompt(in PromptInput) string
Types ¶
type CheckRequest ¶ added in v0.47.0
type Context ¶
type Context struct {
SessionID string
WorkspaceID string
IMChannelID string
IMUserID string
ExecutorRegistryURL string
AgentserverURL string
IMBridgeURL string
InternalAPISecret string
Workspace *workspace.Workspace // for workspace_* tools
HTTP *http.Client // shared HTTP client
// TUI / permission gate (added in Phase 1 Task 5)
ChannelType string // "im" | "tui"
CreatorUserID string // for cross-user check
PermissionMode string // "ask" | "bypass"
PreferredExecutorID string // optional; injected into system prompt
Gate *Gate // reference to per-broker singleton
AgentserverInternalURL string // for turn-finished callback
CurrentTurnID string // set per turn by handler_turns
}
Context bundles the per-turn dependencies that tool handlers close over. Constructed in handler_turns once per request and discarded after the turn.
type Event ¶ added in v0.47.0
type Event struct {
Type string `json:"event_type"` // "permission_request" | "permission_resolved"
SessionID string `json:"session_id,omitempty"`
TurnID string `json:"turn_id,omitempty"`
PermissionID string `json:"permission_id,omitempty"`
Tool string `json:"tool,omitempty"`
ExecutorID string `json:"executor_id,omitempty"`
Args json.RawMessage `json:"args,omitempty"`
Decision *Decision `json:"decision,omitempty"`
Source string `json:"source,omitempty"` // "live" | "sticky"
EmittedAt time.Time `json:"emitted_at,omitempty"`
}
type ExecutorInfo ¶ added in v0.47.0
type ExecutorInfo struct {
ExecutorID string
DisplayName string
Type string
Tools []string
WorkingDir string
Description string
}
ExecutorInfo describes one execution environment for the system prompt. Distinct from executorregistry.ExecutorInfo (which is a DB model); callers (e.g., runner/options.go) convert between them.
type Gate ¶ added in v0.47.0
type Gate struct {
// contains filtered or unexported fields
}
func (*Gate) CancelTurn ¶ added in v0.47.0
type PromptInput ¶ added in v0.47.0
type PromptInput struct {
ChannelType string
PreferredExecutorID string
Executors []ExecutorInfo
}
Click to show internal directories.
Click to hide internal directories.