Documentation
¶
Overview ¶
Package copilotcli provides an AI provider that invokes the GitHub Copilot CLI as a subprocess, reusing the user's GitHub Copilot subscription.
Index ¶
- Constants
- func ExtractResult(output []byte) (string, error)
- type Client
- func (c *Client) GetMaxTokens() int
- func (c *Client) GetModel() string
- func (c *Client) SendMessage(ctx context.Context, message string) (string, error)
- func (c *Client) SendMessageWithHistory(ctx context.Context, messages []types.Message) (string, error)
- func (c *Client) SendMessageWithSystemPromptAndTools(ctx context.Context, systemPrompt string, atmosMemory string, ...) (*types.Response, error)
- func (c *Client) SendMessageWithTools(_ context.Context, _ string, _ []tools.Tool) (*types.Response, error)
- func (c *Client) SendMessageWithToolsAndHistory(_ context.Context, _ []types.Message, _ []tools.Tool) (*types.Response, error)
Constants ¶
const ( // ProviderName is the name of this provider for configuration lookup. ProviderName = "copilot-cli" // DefaultBinary is the default binary name for the GitHub Copilot CLI. DefaultBinary = "copilot" // CopilotHomeEnvVar overrides the Copilot CLI configuration directory (~/.copilot by default). CopilotHomeEnvVar = "COPILOT_HOME" )
Variables ¶
This section is empty.
Functions ¶
func ExtractResult ¶
ExtractResult extracts the final text response from Copilot CLI output. With the -s (silent) flag, stdout contains only the agent's plain-text response.
Types ¶
type Client ¶
type Client struct {
// contains filtered or unexported fields
}
Client invokes the GitHub Copilot CLI in non-interactive (programmatic) mode. Authentication is handled by the Copilot CLI itself: `copilot /login`, or the COPILOT_GITHUB_TOKEN / GH_TOKEN / GITHUB_TOKEN environment variables (in that precedence order) with a token that carries a Copilot subscription.
func NewClient ¶
func NewClient(atmosConfig *schema.AtmosConfiguration) (*Client, error)
NewClient creates a new Copilot CLI client from Atmos configuration.
func (*Client) GetMaxTokens ¶
GetMaxTokens returns 0 — managed by Copilot CLI internally.
func (*Client) SendMessage ¶
SendMessage sends a prompt to Copilot CLI and returns the response.
func (*Client) SendMessageWithHistory ¶
func (c *Client) SendMessageWithHistory(ctx context.Context, messages []types.Message) (string, error)
SendMessageWithHistory concatenates history into a single prompt.
func (*Client) SendMessageWithSystemPromptAndTools ¶
func (c *Client) SendMessageWithSystemPromptAndTools( ctx context.Context, systemPrompt string, atmosMemory string, messages []types.Message, _ []tools.Tool, ) (*types.Response, error)
SendMessageWithSystemPromptAndTools sends with system prompt prepended.