Documentation
¶
Index ¶
- Constants
- func DefaultCodexAuthPath() string
- func DeviceFlow(ctx context.Context) (string, error)
- func LoadCodexAuth(path string) (string, error)
- func LocalOAuthServerPort() int
- func OpenBrowserURL(rawURL string) error
- func PollGitHubDeviceFlow(ctx context.Context, clientID, deviceCode string, interval int) <-chan OAuthResult
- func PollOpenAIChatGPTDeviceFlow(ctx context.Context, deviceAuthID, userCode string, interval int) <-chan OAuthResult
- func PromptAPIKey(providerType string) (string, error)
- func PromptBaseURL(defaultURL string) (string, error)
- func PromptSecret(label string) (string, error)
- func StartAnthropicMaxOAuth(ctx context.Context) <-chan OAuthResult
- func StartAnthropicOAuth(ctx context.Context) <-chan OAuthResult
- type DeviceCodeResult
- type ModelInfo
- type OAuthResult
- type OpenAIChatGPTTokenBundle
Constants ¶
const (
// GithubCopilotClientID is GitHub Copilot's official OAuth App client ID.
GithubCopilotClientID = "Iv1.b507a08c87ecfe98"
)
GitHub device flow constants.
const (
OpenAIChatGPTClientID = "app_EMoamEEZ73f0CkXaXp7hrann"
)
Variables ¶
This section is empty.
Functions ¶
func DefaultCodexAuthPath ¶ added in v0.30.19
func DefaultCodexAuthPath() string
func DeviceFlow ¶
DeviceFlow implements GitHub's device flow for Copilot auth.
func LoadCodexAuth ¶ added in v0.30.19
LoadCodexAuth imports a Codex CLI auth.json file and returns a compact token bundle JSON string for ratchet secret storage.
func LocalOAuthServerPort ¶
func LocalOAuthServerPort() int
LocalOAuthServerPort returns the port of the most recently started local OAuth callback server. Returns 0 if no OAuth flow has been started.
func OpenBrowserURL ¶
OpenBrowserURL opens a URL in the default browser.
func PollGitHubDeviceFlow ¶
func PollGitHubDeviceFlow(ctx context.Context, clientID, deviceCode string, interval int) <-chan OAuthResult
PollGitHubDeviceFlow polls for the device flow token until authorized or timeout.
func PollOpenAIChatGPTDeviceFlow ¶ added in v0.30.19
func PollOpenAIChatGPTDeviceFlow(ctx context.Context, deviceAuthID, userCode string, interval int) <-chan OAuthResult
PollOpenAIChatGPTDeviceFlow polls until the device code is approved and returns a JSON token bundle suitable for the workflow-plugin-agent openai_chatgpt provider.
func PromptAPIKey ¶
PromptAPIKey prompts the user for an API key (hidden input).
func PromptBaseURL ¶
PromptBaseURL prompts for a base URL with a default value.
func PromptSecret ¶ added in v0.30.19
PromptSecret prompts the user for a secret value (hidden input).
func StartAnthropicMaxOAuth ¶
func StartAnthropicMaxOAuth(ctx context.Context) <-chan OAuthResult
StartAnthropicMaxOAuth runs the Max/Pro subscription OAuth PKCE flow. Uses claude.ai as the authorize endpoint; the resulting token is used directly as a Bearer token (no API key creation step). Experimental: may have restrictions.
func StartAnthropicOAuth ¶
func StartAnthropicOAuth(ctx context.Context) <-chan OAuthResult
StartAnthropicOAuth runs the Console OAuth PKCE flow for Anthropic. It uses redirect_uri=https://console.anthropic.com/oauth/code/callback (Anthropic's own callback page) with scopes org:create_api_key user:profile user:inference. Since Anthropic redirects to their own page (not localhost), the CLI opens a local server to accept a manually-pasted code — we keep a localhost callback for a seamless paste-free experience on platforms where it works.
Flow:
- Open browser to authorize URL
- User authorizes; Anthropic redirects to their callback page showing the code
- Our local server also accepts the redirect if the browser follows localhost
- On success, exchange code for access token then create a permanent API key
Types ¶
type DeviceCodeResult ¶
type DeviceCodeResult struct {
DeviceCode string
UserCode string
VerificationURI string
ExpiresIn int
Interval int
}
DeviceCodeResult holds the response from a device code request.
func StartGitHubDeviceFlow ¶
func StartGitHubDeviceFlow(ctx context.Context, clientID string) (*DeviceCodeResult, error)
StartGitHubDeviceFlow initiates the GitHub device code flow. Returns the device code result so the TUI can display the user code, then call PollGitHubDeviceFlow to wait for authorization.
func StartOpenAIChatGPTDeviceFlow ¶ added in v0.30.19
func StartOpenAIChatGPTDeviceFlow(ctx context.Context) (*DeviceCodeResult, error)
StartOpenAIChatGPTDeviceFlow starts the official Codex ChatGPT device-code flow.
type ModelInfo ¶
type ModelInfo = wfprovider.ModelInfo
ModelInfo describes an available model from a provider.
func ListModels ¶
ListModels fetches available models from the provider implementation package.
type OAuthResult ¶
OAuthResult is returned when a browser-based auth flow completes.
type OpenAIChatGPTTokenBundle ¶ added in v0.30.19
type OpenAIChatGPTTokenBundle struct {
IDToken string `json:"id_token,omitempty"`
AccessToken string `json:"access_token"`
RefreshToken string `json:"refresh_token"`
AccountID string `json:"account_id,omitempty"`
ChatGPTAccountID string `json:"chatgpt_account_id,omitempty"`
ChatGPTAccountIsFedRAMP bool `json:"chatgpt_account_is_fedramp,omitempty"`
ChatGPTUserID string `json:"chatgpt_user_id,omitempty"`
PlanType string `json:"chatgpt_plan_type,omitempty"`
}