sessionsettings

package
v1.264.0 Latest Latest
Warning

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

Go to latest
Published: Feb 23, 2026 License: MIT Imports: 11 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func Compile

func Compile(opts CompileOptions) error

Compile reads the settings YAML and generates all output files.

func MarshalYAML

func MarshalYAML(settings *SessionSettings) ([]byte, error)

MarshalYAML marshals SessionSettings to YAML bytes.

func Setup added in v1.238.0

func Setup(opts SetupOptions) error

Setup runs the full init-container setup sequence for a session Pod:

  1. write-pem : writes GITHUB_APP_PEM env var to a file on disk
  2. clone-repo : clones the repository (if session.repository is set)
  3. compile : generates all Claude config files from settings.yaml
  4. sync-extra : copies credentials, CLAUDE.md, notification subscriptions

Types

type ClaudeConfig

type ClaudeConfig struct {
	ClaudeJSON   map[string]interface{} `yaml:"claude_json,omitempty"`
	SettingsJSON map[string]interface{} `yaml:"settings_json,omitempty"`
	MCPServers   map[string]interface{} `yaml:"mcp_servers,omitempty"`
}

ClaudeConfig holds Claude-related configuration data.

type CompileOptions

type CompileOptions struct {
	InputPath   string // Path to settings YAML (default: /session-settings/settings.yaml)
	OutputDir   string // Base output directory (default: /home/agentapi)
	EnvFilePath string // Path for env file output (default: /session-settings/env)
	StartupPath string // Path for startup script (default: /session-settings/startup.sh)
}

CompileOptions configures the compile-settings behavior.

func DefaultCompileOptions

func DefaultCompileOptions() CompileOptions

DefaultCompileOptions returns the default compile options.

type GithubConfig

type GithubConfig struct {
	Token            string `yaml:"token,omitempty"`
	SecretName       string `yaml:"secret_name,omitempty"`
	ConfigSecretName string `yaml:"config_secret_name,omitempty"`
}

GithubConfig holds GitHub authentication configuration reference info.

type RepositoryConfig

type RepositoryConfig struct {
	FullName string `yaml:"fullname"`
	CloneDir string `yaml:"clone_dir"`
}

RepositoryConfig holds repository information.

type SessionMeta

type SessionMeta struct {
	ID        string   `yaml:"id"`
	UserID    string   `yaml:"user_id"`
	Scope     string   `yaml:"scope"`
	TeamID    string   `yaml:"team_id,omitempty"`
	AgentType string   `yaml:"agent_type,omitempty"`
	Oneshot   bool     `yaml:"oneshot,omitempty"`
	Teams     []string `yaml:"teams,omitempty"`
}

SessionMeta contains session identification metadata.

type SessionSettings

type SessionSettings struct {
	Session        SessionMeta       `yaml:"session"`
	Env            map[string]string `yaml:"env,omitempty"`
	Claude         ClaudeConfig      `yaml:"claude,omitempty"`
	Repository     *RepositoryConfig `yaml:"repository,omitempty"`
	InitialMessage string            `yaml:"initial_message,omitempty"`
	WebhookPayload string            `yaml:"webhook_payload,omitempty"`
	Startup        StartupConfig     `yaml:"startup,omitempty"`
	Github         *GithubConfig     `yaml:"github,omitempty"`
}

SessionSettings is the top-level unified settings YAML structure. It consolidates all configuration needed for a session Pod.

func LoadSettings

func LoadSettings(path string) (*SessionSettings, error)

LoadSettings reads and parses a SessionSettings from a YAML file.

type SetupOptions added in v1.238.0

type SetupOptions struct {
	// InputPath is the path to the session settings YAML file.
	// Defaults to /session-settings/settings.yaml.
	InputPath string

	// CompileOptions controls file generation (Compile step).
	CompileOptions CompileOptions

	// CredentialsFile is the path to the credentials.json mounted from Secret (optional).
	CredentialsFile string

	// ClaudeMDFile is the path to CLAUDE.md to copy into ~/.claude/CLAUDE.md (optional).
	ClaudeMDFile string

	// NotificationSubscriptions is the source directory for notification subscription files (optional).
	NotificationSubscriptions string

	// NotificationsDir is the destination directory for notification files (optional).
	NotificationsDir string

	// RegisterMarketplaces registers cloned marketplace repos via claude CLI.
	RegisterMarketplaces bool

	// SettingsFile is the path to the user settings.json (from claude-config-user ConfigMap).
	// Contains marketplace and plugin configuration. Optional.
	SettingsFile string

	// PEMOutputPath is where GITHUB_APP_PEM content is written.
	// Defaults to /tmp/github-app/app.pem.
	PEMOutputPath string
}

SetupOptions configures the Setup behavior.

func DefaultSetupOptions added in v1.238.0

func DefaultSetupOptions() SetupOptions

DefaultSetupOptions returns the default Setup options.

type StartupConfig

type StartupConfig struct {
	Command []string `yaml:"command,omitempty"`
	Args    []string `yaml:"args,omitempty"`
}

StartupConfig holds the startup command configuration.

Jump to

Keyboard shortcuts

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