proxy

package
v1.20250724.1 Latest Latest
Warning

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

Go to latest
Published: Jul 24, 2025 License: MIT Imports: 30 Imported by: 0

Documentation

Index

Constants

View Source
const (
	ScriptWithGithub = "agentapi_with_github.sh"
	ScriptDefault    = "agentapi_default.sh"
)

Variables

This section is empty.

Functions

func ExtractTeamEnvFile added in v1.48.0

func ExtractTeamEnvFile(tags map[string]string) string

ExtractTeamEnvFile extracts the env_file value from tags

func MergeEnvironmentVariables added in v1.48.0

func MergeEnvironmentVariables(cfg EnvMergeConfig) (map[string]string, error)

MergeEnvironmentVariables merges environment variables from multiple sources with the following priority (highest to lowest): 1. Request environment variables 2. Team/organization specific environment file (from tags["env_file"]) 3. Auth team environment file (from team_role_mapping) 4. Role-based environment variables

Types

type AgentAPIStatus added in v1.62.0

type AgentAPIStatus struct {
	Status string `json:"status"` // "stable" or "running"
}

AgentAPIStatus represents the response from agentapi /status endpoint

type AgentSession

type AgentSession struct {
	ID          string
	Port        int
	Process     *exec.Cmd
	Cancel      context.CancelFunc
	StartedAt   time.Time
	UserID      string
	Status      string
	Environment map[string]string
	Tags        map[string]string
	// contains filtered or unexported fields
}

AgentSession represents a running agentapi server instance

type AuthInfoHandlers added in v1.9.1

type AuthInfoHandlers struct {
	// contains filtered or unexported fields
}

func NewAuthInfoHandlers added in v1.9.1

func NewAuthInfoHandlers(cfg *config.Config) *AuthInfoHandlers

func (*AuthInfoHandlers) GetAuthStatus added in v1.9.1

func (h *AuthInfoHandlers) GetAuthStatus(c echo.Context) error

func (*AuthInfoHandlers) GetAuthTypes added in v1.9.1

func (h *AuthInfoHandlers) GetAuthTypes(c echo.Context) error

type AuthStatusResponse added in v1.9.1

type AuthStatusResponse struct {
	Authenticated bool                 `json:"authenticated"`
	AuthType      string               `json:"auth_type,omitempty"`
	UserID        string               `json:"user_id,omitempty"`
	Role          string               `json:"role,omitempty"`
	Permissions   []string             `json:"permissions,omitempty"`
	GitHubUser    *auth.GitHubUserInfo `json:"github_user,omitempty"`
}

type AuthType added in v1.9.1

type AuthType struct {
	Type      string `json:"type"`
	Name      string `json:"name"`
	Available bool   `json:"available"`
}

type AuthTypesResponse added in v1.9.1

type AuthTypesResponse struct {
	Enabled bool       `json:"enabled"`
	Types   []AuthType `json:"types"`
}

type EnvMergeConfig added in v1.48.0

type EnvMergeConfig struct {
	RoleEnvFiles    *config.RoleEnvFilesConfig
	UserRole        string
	TeamEnvFile     string // From tags["env_file"]
	AuthTeamEnvFile string // From team_role_mapping
	RequestEnv      map[string]string
}

EnvMergeConfig contains configuration for environment variable merging

type NotificationHandlers added in v1.59.0

type NotificationHandlers struct {
	// contains filtered or unexported fields
}

NotificationHandlers handles notification-related HTTP requests

func NewNotificationHandlers added in v1.59.0

func NewNotificationHandlers(service *notification.Service) *NotificationHandlers

NewNotificationHandlers creates new notification handlers

func (*NotificationHandlers) DeleteSubscription added in v1.59.0

func (h *NotificationHandlers) DeleteSubscription(c echo.Context) error

DeleteSubscription handles DELETE /notification/subscribe

func (*NotificationHandlers) GetHistory added in v1.59.0

func (h *NotificationHandlers) GetHistory(c echo.Context) error

GetHistory handles GET /notifications/history

func (*NotificationHandlers) GetSubscriptions added in v1.59.0

func (h *NotificationHandlers) GetSubscriptions(c echo.Context) error

GetSubscriptions handles GET /notification/subscribe

func (*NotificationHandlers) Subscribe added in v1.59.0

func (h *NotificationHandlers) Subscribe(c echo.Context) error

Subscribe handles POST /notification/subscribe

func (*NotificationHandlers) Webhook added in v1.59.0

func (h *NotificationHandlers) Webhook(c echo.Context) error

Webhook handles POST /notifications/webhook

type OAuthCallbackRequest added in v1.9.1

type OAuthCallbackRequest struct {
	Code  string `query:"code"`
	State string `query:"state"`
}

OAuthCallbackRequest represents the OAuth callback parameters

type OAuthLoginRequest added in v1.9.1

type OAuthLoginRequest struct {
	RedirectURI string `json:"redirect_uri"`
}

OAuthLoginRequest represents the request body for OAuth login

type OAuthLoginResponse added in v1.9.1

type OAuthLoginResponse struct {
	AuthURL string `json:"auth_url"`
	State   string `json:"state"`
}

OAuthLoginResponse represents the response for OAuth login

type OAuthSession added in v1.9.1

type OAuthSession struct {
	ID          string
	UserContext *auth.UserContext
	CreatedAt   time.Time
	ExpiresAt   time.Time
}

OAuthSession represents an authenticated OAuth session

type OAuthSessionResponse added in v1.9.1

type OAuthSessionResponse struct {
	SessionID   string            `json:"session_id"`
	AccessToken string            `json:"access_token"`
	TokenType   string            `json:"token_type"`
	ExpiresAt   time.Time         `json:"expires_at"`
	User        *auth.UserContext `json:"user"`
}

OAuthSessionResponse represents the response with session information

type OAuthTokenResponse added in v1.9.1

type OAuthTokenResponse struct {
	AccessToken string            `json:"access_token"`
	TokenType   string            `json:"token_type"`
	ExpiresAt   time.Time         `json:"expires_at"`
	User        *auth.UserContext `json:"user"`
}

OAuthTokenResponse represents the response after successful OAuth

type Proxy

type Proxy struct {
	// contains filtered or unexported fields
}

Proxy represents the HTTP proxy server

func NewProxy

func NewProxy(cfg *config.Config, verbose bool) *Proxy

NewProxy creates a new proxy instance

func (*Proxy) GetEcho

func (p *Proxy) GetEcho() *echo.Echo

GetEcho returns the Echo instance for external access

func (*Proxy) Shutdown

func (p *Proxy) Shutdown(timeout time.Duration) error

Shutdown gracefully stops all running sessions and waits for them to terminate

func (*Proxy) StartMonitoring added in v1.62.0

func (p *Proxy) StartMonitoring()

StartMonitoring starts the session monitoring (called after proxy is fully initialized)

type RepositoryInfo added in v0.10.0

type RepositoryInfo struct {
	FullName string
	CloneDir string
}

RepositoryInfo contains repository information extracted from tags

type ScriptTemplateData added in v0.10.0

type ScriptTemplateData struct {
	AgentAPIArgs              string
	ClaudeArgs                string
	GitHubToken               string
	GitHubAppID               string
	GitHubInstallationID      string
	GitHubAppPEMPath          string
	GitHubAPI                 string
	GitHubPersonalAccessToken string
	RepoFullName              string
	CloneDir                  string
	UserID                    string
	MCPConfigs                string
}

ScriptTemplateData holds data for script templates

type SessionMonitor added in v1.62.0

type SessionMonitor struct {
	// contains filtered or unexported fields
}

SessionMonitor monitors session status changes and sends notifications

func NewSessionMonitor added in v1.62.0

func NewSessionMonitor(proxy *Proxy, checkInterval time.Duration) *SessionMonitor

NewSessionMonitor creates a new session monitor

func (*SessionMonitor) Start added in v1.62.0

func (sm *SessionMonitor) Start()

Start begins monitoring session statuses

func (*SessionMonitor) Stop added in v1.62.0

func (sm *SessionMonitor) Stop()

Stop stops the session monitor

type SessionSnapshot added in v1.62.0

type SessionSnapshot struct {
	ID           string
	UserID       string
	Status       string
	ProcessAlive bool
	Tags         map[string]string
	Port         int
}

SessionSnapshot represents a snapshot of session data for monitoring

type SessionStatus added in v1.62.0

type SessionStatus struct {
	SessionID    string
	UserID       string
	Status       string
	ProcessAlive bool
	Tags         map[string]string
	LastChecked  time.Time
}

SessionStatus represents the status of a session for monitoring

type StartRequest

type StartRequest struct {
	Environment map[string]string `json:"environment,omitempty"`
	Tags        map[string]string `json:"tags,omitempty"`
	Message     string            `json:"message,omitempty"`
}

StartRequest represents the request body for starting a new agentapi server

type StartupConfig added in v1.41.3

type StartupConfig struct {
	Port                      int
	UserID                    string
	RepoFullName              string
	CloneDir                  string
	GitHubToken               string
	GitHubAppID               string
	GitHubInstallationID      string
	GitHubAppPEMPath          string
	GitHubAPI                 string
	GitHubPersonalAccessToken string
	MCPConfigs                string
	AgentAPIArgs              string
	ClaudeArgs                string
	Environment               map[string]string
	Config                    *config.Config
	Verbose                   bool
	IsRestore                 bool // Whether this is a restored session
}

StartupConfig holds configuration for session startup

type StartupManager added in v1.41.3

type StartupManager struct {
	// contains filtered or unexported fields
}

StartupManager manages the startup process

func NewStartupManager added in v1.41.3

func NewStartupManager(config *config.Config, verbose bool) *StartupManager

NewStartupManager creates a new startup manager

func (*StartupManager) StartAgentAPISession added in v1.41.3

func (sm *StartupManager) StartAgentAPISession(ctx context.Context, cfg *StartupConfig) (*exec.Cmd, error)

StartAgentAPISession starts an AgentAPI session with the given configuration

Jump to

Keyboard shortcuts

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