Documentation
¶
Index ¶
- Constants
- func BuildHandler(cliFlag string, commandDefault Mode, in io.Reader, out io.Writer) copilot.PermissionHandlerFunc
- func HasPermissionModeFlag(args []string) bool
- func InjectPermissionMode(args []string, mode Mode) []string
- func NewHandler(opts Options) copilot.PermissionHandlerFunc
- func ParseCopilotRequestArg(pending []PendingItem, arg string) (string, error)
- func ParseCopilotRequestIndex(pending []PendingItem, oneBased int) (string, error)
- func SetGlobalBroker(b *Broker)
- type AuditEntry
- type Auditor
- type Broker
- type FileAuditor
- type Mode
- type Options
- type PendingItem
- type Prompter
Constants ¶
const DefaultMode = ModeAsk
DefaultMode is the safe default for interactive Copilot sessions.
Variables ¶
This section is empty.
Functions ¶
func BuildHandler ¶
func BuildHandler(cliFlag string, commandDefault Mode, in io.Reader, out io.Writer) copilot.PermissionHandlerFunc
BuildHandler resolves mode and returns a Copilot OnPermissionRequest handler.
func HasPermissionModeFlag ¶
HasPermissionModeFlag reports whether argv already contains permission-mode.
func InjectPermissionMode ¶
InjectPermissionMode prepends --permission-mode when the flag is not already set.
func NewHandler ¶
func NewHandler(opts Options) copilot.PermissionHandlerFunc
NewHandler returns a Copilot OnPermissionRequest handler for the given mode.
func ParseCopilotRequestArg ¶
func ParseCopilotRequestArg(pending []PendingItem, arg string) (string, error)
ParseCopilotRequestArg resolves arg as cperm_ID or numeric index.
func ParseCopilotRequestIndex ¶
func ParseCopilotRequestIndex(pending []PendingItem, oneBased int) (string, error)
ParseCopilotRequestIndex resolves 1-based index to request ID.
func SetGlobalBroker ¶
func SetGlobalBroker(b *Broker)
SetGlobalBroker registers the active Copilot permission broker (e.g. from agentline TUI).
Types ¶
type AuditEntry ¶
type AuditEntry struct {
Time time.Time `json:"time"`
SessionID string `json:"session_id,omitempty"`
Kind string `json:"kind,omitempty"`
ToolName string `json:"tool_name,omitempty"`
Decision string `json:"decision"`
Mode Mode `json:"mode"`
Summary string `json:"summary,omitempty"`
}
AuditEntry records one permission decision.
type Auditor ¶
type Auditor interface {
Log(entry AuditEntry)
}
Auditor persists permission audit events.
type Broker ¶
type Broker struct {
// contains filtered or unexported fields
}
Broker queues Copilot permission requests for interactive approval.
func (*Broker) Pending ¶
func (b *Broker) Pending() []PendingItem
Pending returns unresolved Copilot permission requests.
func (*Broker) ResolveLatest ¶
ResolveLatest resolves the most recent pending request.
type FileAuditor ¶
type FileAuditor struct {
// contains filtered or unexported fields
}
FileAuditor appends JSON lines to a local audit log.
func NewFileAuditor ¶
func NewFileAuditor() (*FileAuditor, error)
NewFileAuditor creates an auditor writing to the default XDG path.
func (*FileAuditor) Log ¶
func (a *FileAuditor) Log(entry AuditEntry)
Log appends one audit entry as a JSON line.
type Mode ¶
type Mode string
Mode controls how Copilot permission requests are handled.
type PendingItem ¶
type PendingItem struct {
RequestID string
SessionID string
Summary string
Kind string
ToolName string
CreatedAt time.Time
}
PendingItem is a Copilot permission request waiting for user decision.
type Prompter ¶
type Prompter func(ctx context.Context, request copilot.PermissionRequest, summary string) (bool, error)
Prompter decides whether to approve an interactive permission request.
func DefaultTerminalPrompter ¶
DefaultTerminalPrompter asks y/N on stdin.
func PrompterForMode ¶
PrompterForMode returns the best prompter for ask mode.