Help us shape the future of Go! Take the 2026 Go Developer Survey

oai

package
v0.2.24 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Nov 3, 2026 License: MIT Imports: 24 Imported by: 0

Documentation

Overview

Package oai provides ChatGPT OAuth-backed OpenAI clients for rocketclaw.

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func AuthFilePathIn

func AuthFilePathIn(workspace, runtimeDir string) (string, error)

AuthFilePathIn returns the workspace-local token file path in runtimeDir.

func HasTokenIn added in v0.0.42

func HasTokenIn(workspace, runtimeDir, provider string) (bool, error)

HasTokenIn reports whether the provider has a persisted ChatGPT OAuth token.

func NewChatGPTClientIn

func NewChatGPTClientIn(workspace, runtimeDir, provider string, logger *slog.Logger, opts ...option.RequestOption) (*openai.Client, error)

NewChatGPTClientIn creates an OpenAI client that sends Responses API requests to ChatGPT Codex using runtimeDir auth.

func RemoveTokenIn added in v0.0.42

func RemoveTokenIn(workspace, runtimeDir, provider string) error

RemoveTokenIn removes only the provider's persisted ChatGPT OAuth token.

func SaveTokenIn

func SaveTokenIn(workspace, runtimeDir, provider string, token Token) error

SaveTokenIn writes the provider's ChatGPT OAuth token.

Types

type MissingTokenError added in v0.1.30

type MissingTokenError struct {
	Provider string
}

MissingTokenError reports that no ChatGPT OAuth token is stored for Provider.

func (*MissingTokenError) Error added in v0.1.30

func (e *MissingTokenError) Error() string

func (*MissingTokenError) Unwrap added in v0.1.30

func (e *MissingTokenError) Unwrap() error

Unwrap reports a missing token as os.ErrNotExist.

type Token

type Token struct {
	Refresh   string `json:"refresh"`
	Access    string `json:"access"`
	Expires   int64  `json:"expires"`
	AccountID string `json:"account_id,omitempty"`
}

Token is the persisted ChatGPT OAuth credential used for Codex requests.

func AcquireBrowserToken added in v0.0.42

func AcquireBrowserToken(ctx context.Context, out io.Writer) (Token, error)

AcquireBrowserToken completes the local browser OAuth flow without persisting the token. The OAuth client's registered redirect URI fixes the callback port.

func AcquireDeviceToken added in v0.0.42

func AcquireDeviceToken(ctx context.Context, out io.Writer) (Token, error)

AcquireDeviceToken completes the headless device OAuth flow without persisting the token.

func FreshTokenIn added in v0.1.30

func FreshTokenIn(ctx context.Context, workspace, runtimeDir, provider string, rejected Token) (Token, error)

FreshTokenIn returns the provider's ChatGPT OAuth token from runtimeDir, refreshing and persisting it under the auth file lock when needed. With a zero rejected token, the stored token is reused while it expires more than 120 s out. With the token a server just rejected, the stored token is reused only if another writer already replaced it for the same account. It returns a *MissingTokenError when the auth file has no token for the provider; a missing auth file also matches os.ErrNotExist.

func LoadTokenIn

func LoadTokenIn(workspace, runtimeDir, provider string) (Token, error)

LoadTokenIn reads the provider's persisted ChatGPT OAuth token from runtimeDir.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL