Versions in this module Expand all Collapse all v0 v0.3.0 Aug 15, 2026 Changes in this version + var ErrNotConnected = errors.New("not connected — authorize this integration first") + func ByCategory() map[Category][]Integration + func Categories() []struct + func Register(i Integration) + func SetCreator(c Creator) + func SetCredentialStore(v interface{ ... }) + func SetCredentialWriter(w CredentialWriter) + func SetPlanner(p Planner) + type Auth string + const AuthDSN + const AuthNone + const AuthOAuth + const AuthTerminal + const AuthToken + type AuthState struct + Challenge string + RedirectURI string + State string + Verifier string + func NewAuthState(redirectURI string) (AuthState, error) + type Category string + const CatAPI + const CatAnalytics + const CatDatabase + const CatReader + const CatTerminal + type Creator interface + CreateFromPlan func(ctx context.Context, kind, name string, config json.RawMessage) (string, error) + TestConnection func(ctx context.Context, id string) error + type CredentialWriter interface + PutSystem func(ctx context.Context, name, value, reason string) error + type Integration struct + ActorKind string + Acts bool + Auth Auth + Beta bool + Category Category + Collects bool + Color string + DocsURL string + Icon string + Inputs json.RawMessage + Slug string + SourceKind string + Summary Text + Terminal *Terminal + Title Text + func All() []Integration + func Get(slug string) (Integration, bool) + type OAuthStore interface + SaveState func(ctx context.Context, st AuthState, integration, createdBy string) error + SaveToken func(ctx context.Context, integration string, tok Token) error + TakeState func(ctx context.Context, state string) (AuthState, string, error) + type Planner interface + Plan func(ctx context.Context, prompt string) (string, error) + type Provider struct + AccountFrom string + AuthParams map[string]string + AuthURL string + ClientIDEnv string + ClientSecretEnv string + Scopes []string + TokenURL string + UsesPKCE bool + func ProviderFor(slug string) (string, Provider, bool) + func (p Provider) AuthorizeURL(ctx context.Context, st AuthState) (string, error) + func (p Provider) Configured(ctx context.Context) (bool, string) + type SQLOAuthStore struct + DB *sql.DB + func (s SQLOAuthStore) SaveState(ctx context.Context, st AuthState, integration, by string) error + func (s SQLOAuthStore) SaveToken(ctx context.Context, integration string, tok Token) error + func (s SQLOAuthStore) TakeState(ctx context.Context, state string) (AuthState, string, error) + type Service struct + func New(log *slog.Logger, t Tmux, o OAuthStore) *Service + func (s *Service) OAuthAppRoutes(r chi.Router) + func (s *Service) OAuthRoutes(r chi.Router) + func (s *Service) Routes(r chi.Router) + func (s *Service) SmartRoutes(r chi.Router) + func (s *Service) WithTokens(t interface{ ... }) *Service + type SessionPlanner struct + Dir string + Log *slog.Logger + Model string + func (p SessionPlanner) Plan(ctx context.Context, prompt string) (string, error) + type State string + const StateConnected + const StateDisconnected + const StateMissing + const StateUnknown + type Status struct + Detail string + Install Text + Slug string + State State + Version string + func Probe(ctx context.Context, i Integration) Status + func ProbeAll(ctx context.Context) []Status + type Terminal struct + Bin string + Install Text + Login []string + Logout []string + Status []string + Version []string + type Text struct + AR string + EN string + type Tmux interface + Ensure func(ctx context.Context, name string) error + SendKeys func(ctx context.Context, name string, args ...string) error + func NewTmux(workdir string) Tmux + type Token struct + AccessToken string + Account string + ExpiresAt *time.Time + RefreshToken string + Scopes string + TokenType string + type Tokens struct + DB *sql.DB + func NewTokens(db *sql.DB) *Tokens + func (t *Tokens) AccessToken(ctx context.Context, integration string) (string, error) + func (t *Tokens) Connected(ctx context.Context, integration string) (bool, string)