Documentation
¶
Overview ¶
Package chat implements the AI-assisted chat command.
This package provides the `ksail chat` command, which starts an interactive AI chat session powered by GitHub Copilot. It supports both TUI and non-TUI modes, with tool permission enforcement and plan/agent mode switching.
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func BuildPreToolUseHook ¶ added in v5.33.0
func BuildPreToolUseHook( chatModeRef *chatui.ChatModeRef, toolMetadata map[string]toolgen.ToolDefinition, ) copilot.PreToolUseHandler
BuildPreToolUseHook creates a PreToolUseHandler that enforces chat mode restrictions on ALL tool invocations (both custom KSail tools and SDK-managed tools like git/shell/filesystem). In plan mode, ALL tools are blocked. In ask mode, write tools and unknown tools are blocked. In agent mode, the hook defers to existing permission mechanisms (Handler wrappers + OnPermissionRequest).
func NewChatCmd ¶
NewChatCmd creates and returns the chat command.
func WrapToolsWithPermissionAndModeMetadata ¶
func WrapToolsWithPermissionAndModeMetadata( tools []copilot.Tool, eventChan chan tea.Msg, chatModeRef *chatui.ChatModeRef, yoloModeRef *chatui.YoloModeRef, toolMetadata map[string]toolgen.ToolDefinition, ) []copilot.Tool
WrapToolsWithPermissionAndModeMetadata wraps ALL tools with mode enforcement and permission prompts. In plan mode, ALL tool execution is blocked (model can only describe what it would do). In ask mode, write tools are blocked but read-only tools execute normally. In agent mode, edit tools require permission (based on RequiresPermission annotation), while read-only tools are auto-approved. When YOLO mode is enabled, permission prompts are skipped and all tools are auto-approved.
Types ¶
This section is empty.