config

package
v0.6.0 Latest Latest
Warning

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

Go to latest
Published: Mar 26, 2026 License: MIT Imports: 8 Imported by: 0

Documentation

Overview

Package config provides types for interacting with clawker configuration files. It loads clawker.yaml (project) and settings.yaml (user) into a typed Config backed by storage.Store[T], with separate stores for project and settings schemas.

Index

Constants

View Source
const DefaultIgnoreFile = `` /* 424-byte string literal not displayed */

DefaultIgnoreFile returns the default .clawkerignore content

Variables

View Source
var ErrNotInProject = errors.New("current directory is not within a configured project root")

Functions

func ConfigDir added in v0.2.0

func ConfigDir() string

ConfigDir returns the clawker config directory.

func DataDir added in v0.2.0

func DataDir() string

func ProjectMigrations added in v0.6.0

func ProjectMigrations() []storage.Migration

ProjectMigrations returns migrations for the project config store. Migrations run on each file during load and auto-save if they return true. Exported so that callers creating temporary probe stores (e.g. HasLocalProjectConfig) can apply the same migrations as the production config loader.

func ProjectRegistryFilePath added in v0.2.0

func ProjectRegistryFilePath() (string, error)

ProjectRegistryFilePath returns the absolute path to the project registry file.

func SettingsFilePath added in v0.2.0

func SettingsFilePath() (string, error)

SettingsFilePath returns the absolute path to the global settings file.

func StateDir added in v0.2.0

func StateDir() string

func UserProjectConfigFilePath added in v0.2.0

func UserProjectConfigFilePath() (string, error)

UserProjectConfigFilePath returns the absolute path to the user-level clawker.yaml file.

Types

type AgentConfig

type AgentConfig struct {
	EnvFile         []string          `yaml:"env_file,omitempty" label:"Env Files" desc:"Load environment variables from .env-style files (e.g. .env.local)"`
	FromEnv         []string          `` /* 137-byte string literal not displayed */
	Env             map[string]string `yaml:"env,omitempty" label:"Env" desc:"Set container env vars directly; use from_env to forward host values instead"`
	Editor          string            `yaml:"editor,omitempty" label:"Editor" desc:"Editor for git commits and interactive editing inside the container"`
	Visual          string            `yaml:"visual,omitempty" label:"Visual Editor" desc:"Visual editor ($VISUAL) for the container"`
	ClaudeCode      *ClaudeCodeConfig `yaml:"claude_code,omitempty"`
	EnableSharedDir *bool             `` /* 168-byte string literal not displayed */
	PostInit        string            `` /* 159-byte string literal not displayed */
}

AgentConfig defines Claude agent-specific settings.

func (*AgentConfig) SharedDirEnabled

func (a *AgentConfig) SharedDirEnabled() bool

SharedDirEnabled returns whether the shared directory should be mounted (default: false).

type ArgDefinition

type ArgDefinition struct {
	Name    string `yaml:"name" label:"Name" desc:"Build argument name (referenced as $NAME in Dockerfile instructions)"`
	Default string `yaml:"default,omitempty" label:"Default" desc:"Value used when not overridden by --build-arg at build time"`
}

ArgDefinition represents an ARG instruction

type BuildConfig

type BuildConfig struct {
	Image        string              `yaml:"image" label:"Base Image" desc:"Starting Docker image (e.g. node:20-slim, python:3.12); clawker layers tools on top"`
	Dockerfile   string              `` /* 155-byte string literal not displayed */
	Packages     []string            `` /* 146-byte string literal not displayed */
	Context      string              `` /* 152-byte string literal not displayed */
	Instructions *DockerInstructions `yaml:"instructions,omitempty"`
	Inject       *InjectConfig       `yaml:"inject,omitempty"`
}

BuildConfig defines the container build configuration

type ClaudeCodeConfig

type ClaudeCodeConfig struct {
	Config      ClaudeCodeConfigOptions `yaml:"config"`
	UseHostAuth *bool                   `` /* 152-byte string literal not displayed */
}

ClaudeCodeConfig controls Claude Code settings and authentication in containers.

func (*ClaudeCodeConfig) ConfigStrategy

func (c *ClaudeCodeConfig) ConfigStrategy() string

ConfigStrategy returns the config strategy (default: "copy").

func (*ClaudeCodeConfig) UseHostAuthEnabled

func (c *ClaudeCodeConfig) UseHostAuthEnabled() bool

UseHostAuthEnabled returns whether host auth should be used (default: true).

type ClaudeCodeConfigOptions

type ClaudeCodeConfigOptions struct {
	Strategy string `` /* 145-byte string literal not displayed */
}

ClaudeCodeConfigOptions controls how Claude Code config is initialized in containers.

type Config

type Config interface {
	ClawkerIgnoreName() string
	Project() *Project
	Settings() *Settings

	// ProjectStore returns the underlying project config store.
	// Prefer this over SetProject/WriteProject for direct store access.
	ProjectStore() *storage.Store[Project]

	// SettingsStore returns the underlying settings store.
	// Prefer this over SetSettings/WriteSettings for direct store access.
	SettingsStore() *storage.Store[Settings]

	// Deprecated: Use SettingsStore().Read().Logging instead.
	LoggingConfig() LoggingConfig

	// Deprecated: Use SettingsStore().Read().Monitoring instead.
	MonitoringConfig() MonitoringConfig

	// Deprecated: Use SettingsStore().Read().HostProxy instead.
	HostProxyConfig() HostProxyConfig

	Domain() string
	LabelDomain() string
	ConfigDirEnvVar() string
	StateDirEnvVar() string
	DataDirEnvVar() string
	TestRepoDirEnvVar() string
	MonitorSubdir() (string, error)
	BuildSubdir() (string, error)
	DockerfilesSubdir() (string, error)
	ClawkerNetwork() string
	LogsSubdir() (string, error)
	BridgesSubdir() (string, error)
	PidsSubdir() (string, error)
	BridgePIDFilePath(containerID string) (string, error)
	HostProxyLogFilePath() (string, error)
	HostProxyPIDFilePath() (string, error)
	FirewallPIDFilePath() (string, error)
	FirewallLogFilePath() (string, error)
	ShareSubdir() (string, error)
	WorktreesSubdir() (string, error)
	LabelPrefix() string
	LabelManaged() string
	LabelProject() string
	LabelAgent() string
	LabelVersion() string
	LabelImage() string
	LabelCreated() string
	LabelWorkdir() string
	LabelPurpose() string
	PurposeAgent() string
	PurposeMonitoring() string
	PurposeFirewall() string
	LabelTestName() string
	LabelBaseImage() string
	LabelFlavor() string
	LabelTest() string
	LabelE2ETest() string
	ManagedLabelValue() string
	EngineLabelPrefix() string
	EngineManagedLabel() string
	ContainerUID() int
	ContainerGID() int
	GrafanaURL(host string, https bool) string
	JaegerURL(host string, https bool) string
	PrometheusURL(host string, https bool) string
	RequiredFirewallDomains() []string
	EgressRulesFileName() string
	FirewallDataSubdir() (string, error)
	FirewallCertSubdir() (string, error)
	RequiredFirewallRules() []EgressRule
	EnvoyIPLastOctet() byte
	CoreDNSIPLastOctet() byte
	EnvoyTLSPort() int
	EnvoyTCPPortBase() int
	EnvoyHTTPPort() int
	EnvoyHealthHostPort() int
	CoreDNSHealthHostPort() int
	CoreDNSHealthPath() string
	ProjectConfigFileName() string
	SettingsFileName() string
	ProjectRegistryFileName() string
	GetProjectRoot() (string, error)
	GetProjectIgnoreFile() (string, error)
}

Config is the public configuration contract. Add methods here as the config contract grows.

func NewBlankConfig added in v0.2.0

func NewBlankConfig() (Config, error)

NewBlankConfig creates a Config with defaults but no file discovery. Useful as the default test double for consumers that don't care about specific config values.

func NewConfig

func NewConfig(opts ...NewConfigOption) (Config, error)

NewConfig loads all clawker configuration files into a Config. The project store discovers clawker.yaml via walk-up (CWD → project root) and config dir. The settings store loads settings.yaml from config dir. Both stores use defaults as the lowest-priority base layer.

func NewFromString added in v0.2.0

func NewFromString(projectYAML, settingsYAML string) (Config, error)

NewFromString creates a Config from raw YAML strings without defaults. Empty strings produce empty structs. Useful for test fixtures that need precise control over values without defaults being merged.

type CopyInstruction

type CopyInstruction struct {
	Src   string `yaml:"src" label:"Source" desc:"File or directory to copy from your project"`
	Dest  string `yaml:"dest" label:"Destination" desc:"Where to place it inside the container"`
	Chown string `yaml:"chown,omitempty" label:"Chown" desc:"Set file ownership (e.g. claude:claude)"`
	Chmod string `yaml:"chmod,omitempty" label:"Chmod" desc:"Set file permissions (e.g. 0644)"`
}

CopyInstruction represents a COPY instruction with optional chown/chmod

type DockerInstructions

type DockerInstructions struct {
	Copy    []CopyInstruction `yaml:"copy,omitempty" label:"Copy" desc:"Bake config files or credentials into the image (e.g. .npmrc, SSH config)"`
	Env     map[string]string `yaml:"env,omitempty" label:"Env" desc:"Environment variables baked into the image; use agent.env for runtime-only vars"`
	Labels  map[string]string `yaml:"labels,omitempty" label:"Labels" desc:"Custom Docker labels for image metadata or tooling integration" merge:"union"`
	Args    []ArgDefinition   `yaml:"args,omitempty" label:"Args" desc:"Build-time variables resolved during docker build (ARG); not available at runtime"`
	UserRun []string          `` /* 130-byte string literal not displayed */
	RootRun []string          `` /* 129-byte string literal not displayed */
}

DockerInstructions represents type-safe Dockerfile instructions

type EgressRule added in v0.5.0

type EgressRule struct {
	Dst         string     `yaml:"dst" label:"Destination" desc:"Domain or IP the container needs to reach (e.g. api.github.com, registry.npmjs.org)"`
	Proto       string     `` /* 127-byte string literal not displayed */
	Port        int        `yaml:"port,omitempty" label:"Port" desc:"Override the default port (443 for TLS, 80 for HTTP)"`
	Action      string     `yaml:"action,omitempty" label:"Action" desc:"Allow or deny traffic to this destination (default: allow)"`
	PathRules   []PathRule `` /* 132-byte string literal not displayed */
	PathDefault string     `` /* 131-byte string literal not displayed */
}

EgressRule defines a single egress firewall rule. Dst is the domain or IP, Proto defaults to "tls", Action defaults to "allow".

type FirewallConfig

type FirewallConfig struct {
	AddDomains []string     `` /* 153-byte string literal not displayed */
	Rules      []EgressRule `yaml:"rules,omitempty" merge:"union" label:"Rules" desc:"Full egress rules with protocol, port, and path control"`
}

FirewallConfig defines per-project firewall rules in clawker.yaml. Global lifecycle control (enable/disable) lives in settings.yaml via FirewallSettings.

func (*FirewallConfig) GetFirewallDomains

func (f *FirewallConfig) GetFirewallDomains(requiredDomains []string) []string

GetFirewallDomains returns required domains merged with user's add_domains.

type FirewallSettings added in v0.5.0

type FirewallSettings struct {
	Enable *bool `` /* 177-byte string literal not displayed */
}

FirewallSettings controls global firewall lifecycle in settings.yaml. Per-project rules live in FirewallConfig (clawker.yaml).

func (*FirewallSettings) FirewallEnabled added in v0.5.0

func (f *FirewallSettings) FirewallEnabled() bool

FirewallEnabled returns whether the global firewall is enabled. Returns true when Enable is nil (default enabled) or explicitly true.

type GitCredentialsConfig

type GitCredentialsConfig struct {
	ForwardHTTPS  *bool `` /* 142-byte string literal not displayed */
	ForwardSSH    *bool `yaml:"forward_ssh,omitempty" label:"Forward SSH" desc:"Let git use your host SSH keys for cloning and pushing" default:"true"`
	ForwardGPG    *bool `yaml:"forward_gpg,omitempty" label:"Forward GPG" desc:"Let git sign commits using your host GPG keys" default:"true"`
	CopyGitConfig *bool `` /* 156-byte string literal not displayed */
}

GitCredentialsConfig defines git credential forwarding settings

func (*GitCredentialsConfig) CopyGitConfigEnabled

func (g *GitCredentialsConfig) CopyGitConfigEnabled() bool

CopyGitConfigEnabled returns whether host .gitconfig should be copied. Returns true by default.

func (*GitCredentialsConfig) GPGEnabled

func (g *GitCredentialsConfig) GPGEnabled() bool

GPGEnabled returns whether GPG agent forwarding should be enabled. Returns true by default.

func (*GitCredentialsConfig) GitHTTPSEnabled

func (g *GitCredentialsConfig) GitHTTPSEnabled(hostProxyEnabled bool) bool

GitHTTPSEnabled returns whether HTTPS credential forwarding should be enabled. Returns true if host proxy is enabled and not explicitly disabled.

func (*GitCredentialsConfig) GitSSHEnabled

func (g *GitCredentialsConfig) GitSSHEnabled() bool

GitSSHEnabled returns whether SSH agent forwarding should be enabled. Returns true by default.

type HostProxyConfig added in v0.2.0

type HostProxyConfig struct {
	Manager HostProxyManagerConfig `yaml:"manager,omitempty"`
	Daemon  HostProxyDaemonConfig  `yaml:"daemon,omitempty"`
}

HostProxyConfig configures the host proxy.

type HostProxyDaemonConfig added in v0.2.0

type HostProxyDaemonConfig struct {
	Port               int           `yaml:"port" label:"Daemon Port" desc:"Local port the proxy daemon binds to" default:"18374"`
	PollInterval       time.Duration `` /* 127-byte string literal not displayed */
	GracePeriod        time.Duration `` /* 135-byte string literal not displayed */
	MaxConsecutiveErrs int           `` /* 150-byte string literal not displayed */
}

HostProxyDaemonConfig defines configuration for the host proxy daemon.

type HostProxyManagerConfig added in v0.2.0

type HostProxyManagerConfig struct {
	Port int `yaml:"port" label:"Manager Port" desc:"Local port the host proxy listens on (change if 18374 conflicts)" default:"18374"`
}

HostProxyManagerConfig configures the host proxy manager.

type InjectConfig

type InjectConfig struct {
	AfterFrom          []string `` /* 202-byte string literal not displayed */
	AfterPackages      []string `` /* 207-byte string literal not displayed */
	AfterUserSetup     []string `` /* 201-byte string literal not displayed */
	AfterUserSwitch    []string `` /* 190-byte string literal not displayed */
	AfterClaudeInstall []string `` /* 204-byte string literal not displayed */
	BeforeEntrypoint   []string `` /* 195-byte string literal not displayed */
}

InjectConfig defines injection points for arbitrary Dockerfile instructions

type KeyNotFoundError added in v0.2.0

type KeyNotFoundError struct {
	Key string
}

KeyNotFoundError indicates a configuration key was not found.

func (*KeyNotFoundError) Error added in v0.2.0

func (e *KeyNotFoundError) Error() string

type LoggingConfig

type LoggingConfig struct {
	FileEnabled *bool      `` /* 139-byte string literal not displayed */
	MaxSizeMB   int        `yaml:"max_size_mb,omitempty" label:"Max Log Size (MB)" desc:"Rotate the log file when it exceeds this size" default:"50"`
	MaxAgeDays  int        `yaml:"max_age_days,omitempty" label:"Max Log Age (days)" desc:"Delete rotated logs older than this" default:"7"`
	MaxBackups  int        `yaml:"max_backups,omitempty" label:"Max Backups" desc:"Number of rotated log files to keep" default:"3"`
	Compress    *bool      `yaml:"compress,omitempty" label:"Compress Logs" desc:"Gzip rotated logs to save disk space" default:"true"`
	Otel        OtelConfig `yaml:"otel,omitempty"`
}

LoggingConfig configures file-based logging.

type LoopConfig added in v0.1.4

type LoopConfig struct {
	MaxLoops                  int    `yaml:"max_loops,omitempty" label:"Max Loops" desc:"Hard cap on iterations to prevent runaway loops"`
	StagnationThreshold       int    `` /* 132-byte string literal not displayed */
	TimeoutMinutes            int    `yaml:"timeout_minutes,omitempty" label:"Timeout (min)" desc:"Kill the loop after this long regardless of progress"`
	CallsPerHour              int    `yaml:"calls_per_hour,omitempty" label:"Calls per Hour" desc:"Throttle API calls to control cost"`
	CompletionThreshold       int    `yaml:"completion_threshold,omitempty" label:"Completion Threshold" desc:"Quality score at which the task is considered done"`
	SessionExpirationHours    int    `` /* 136-byte string literal not displayed */
	SameErrorThreshold        int    `` /* 138-byte string literal not displayed */
	OutputDeclineThreshold    int    `` /* 144-byte string literal not displayed */
	MaxConsecutiveTestLoops   int    `` /* 160-byte string literal not displayed */
	LoopDelaySeconds          int    `yaml:"loop_delay_seconds,omitempty" label:"Loop Delay (sec)" desc:"Pause between iterations (e.g. to avoid rate limits)"`
	SafetyCompletionThreshold int    `` /* 148-byte string literal not displayed */
	SkipPermissions           bool   `` /* 144-byte string literal not displayed */
	HooksFile                 string `` /* 131-byte string literal not displayed */
	AppendSystemPrompt        string `` /* 150-byte string literal not displayed */
}

LoopConfig defines configuration for autonomous agent loops.

func (*LoopConfig) GetAppendSystemPrompt added in v0.1.4

func (r *LoopConfig) GetAppendSystemPrompt() string

GetAppendSystemPrompt returns the additional system prompt (empty string if not configured).

func (*LoopConfig) GetHooksFile added in v0.1.4

func (r *LoopConfig) GetHooksFile() string

GetHooksFile returns the hooks file path (empty string if not configured).

func (*LoopConfig) GetMaxLoops added in v0.1.4

func (r *LoopConfig) GetMaxLoops() int

GetMaxLoops returns the max loops with default fallback.

func (*LoopConfig) GetStagnationThreshold added in v0.1.4

func (r *LoopConfig) GetStagnationThreshold() int

GetStagnationThreshold returns the stagnation threshold with default fallback.

func (*LoopConfig) GetTimeoutMinutes added in v0.1.4

func (r *LoopConfig) GetTimeoutMinutes() int

GetTimeoutMinutes returns the timeout in minutes with default fallback.

type Mode

type Mode string
const (
	// ModeBind represents direct host mount (live sync)
	ModeBind Mode = "bind"
	// ModeSnapshot represents ephemeral volume copy (isolated)
	ModeSnapshot Mode = "snapshot"
)

func ParseMode

func ParseMode(s string) (Mode, error)

ParseMode converts a string to a Mode, returning an error if invalid

type MonitoringConfig added in v0.1.6

type MonitoringConfig struct {
	OtelCollectorEndpoint string          `` /* 155-byte string literal not displayed */
	OtelCollectorPort     int             `yaml:"otel_collector_port,omitempty" label:"OTEL Collector Port" desc:"Host port for the OTEL HTTP receiver" default:"4318"`
	OtelCollectorHost     string          `` /* 141-byte string literal not displayed */
	OtelCollectorInternal string          `` /* 166-byte string literal not displayed */
	OtelGRPCPort          int             `yaml:"otel_grpc_port,omitempty" label:"OTEL gRPC Port" desc:"Host port for the OTEL gRPC receiver" default:"4317"`
	LokiPort              int             `yaml:"loki_port,omitempty" label:"Loki Port" desc:"Host port for Loki log ingestion" default:"3100"`
	PrometheusPort        int             `yaml:"prometheus_port,omitempty" label:"Prometheus Port" desc:"Host port for Prometheus metrics UI" default:"9090"`
	JaegerPort            int             `yaml:"jaeger_port,omitempty" label:"Jaeger Port" desc:"Host port for Jaeger tracing UI" default:"16686"`
	GrafanaPort           int             `yaml:"grafana_port,omitempty" label:"Grafana Port" desc:"Host port for Grafana dashboards" default:"3000"`
	PrometheusMetricsPort int             `` /* 136-byte string literal not displayed */
	Telemetry             TelemetryConfig `yaml:"telemetry,omitempty"`
}

MonitoringConfig configures monitoring stack ports and OTEL endpoints.

type NewConfigOption added in v0.6.0

type NewConfigOption func(*newConfigOptions)

func WithDefaultProjectYAML added in v0.6.0

func WithDefaultProjectYAML(yaml string) NewConfigOption

func WithDefaultSettingsYAML added in v0.6.0

func WithDefaultSettingsYAML(yaml string) NewConfigOption

type OtelConfig added in v0.1.6

type OtelConfig struct {
	Enabled               *bool `` /* 127-byte string literal not displayed */
	TimeoutSeconds        int   `yaml:"timeout_seconds,omitempty" label:"OTEL Timeout (sec)" desc:"Give up on an export batch after this long" default:"5"`
	MaxQueueSize          int   `` /* 149-byte string literal not displayed */
	ExportIntervalSeconds int   `` /* 144-byte string literal not displayed */
}

OtelConfig configures the OTEL zerolog bridge.

type PathRule added in v0.5.0

type PathRule struct {
	Path   string `yaml:"path" label:"Path" desc:"URL path prefix to match (e.g. /v1/api, /repos/myorg)"`
	Action string `yaml:"action" label:"Action" desc:"Whether to allow or deny requests matching this path"`
}

PathRule defines an HTTP path-level filtering rule for MITM inspection.

type Preset added in v0.6.0

type Preset struct {
	Name          string // Display name (used as select option label)
	Description   string // Short description (used as select option secondary text)
	YAML          string // Partial clawker.yaml content
	AutoCustomize bool   // If true, skip "save and get started" and go straight to wizard
}

Preset defines a language-specific project configuration template. Each preset provides a partial YAML overlay — fields not specified are filled from schema defaults via WithDefaultsFromStruct[Project]().

func Presets added in v0.6.0

func Presets() []Preset

Presets returns the ordered list of language presets for the init wizard. The last entry ("Build from scratch") is Bare with AutoCustomize=true.

type Project

type Project struct {
	Build     BuildConfig     `yaml:"build"`
	Agent     AgentConfig     `yaml:"agent"`
	Workspace WorkspaceConfig `yaml:"workspace"`
	Security  SecurityConfig  `yaml:"security"`
	Loop      *LoopConfig     `yaml:"loop,omitempty"`
}

Project represents the root configuration structure for clawker.yaml.

Project is a pure persisted schema model for clawker.yaml.

func (Project) Fields added in v0.6.0

func (p Project) Fields() storage.FieldSet

Fields implements storage.Schema for Project.

type ProjectEntry

type ProjectEntry struct {
	Name      string                   `yaml:"name" label:"Name" desc:"Project slug identifier"`
	Root      string                   `yaml:"root" label:"Root" desc:"Filesystem path to project root"`
	Worktrees map[string]WorktreeEntry `yaml:"worktrees,omitempty" label:"Worktrees" desc:"Active worktrees for this project"`
}

ProjectEntry represents a project in the registry.

type ProjectRegistry

type ProjectRegistry struct {
	Projects []ProjectEntry `yaml:"projects" label:"Projects" desc:"Registered projects"`
}

ProjectRegistry is the on-disk structure for projects.yaml.

func (ProjectRegistry) Fields added in v0.6.0

func (r ProjectRegistry) Fields() storage.FieldSet

Fields implements storage.Schema for ProjectRegistry.

type SecurityConfig

type SecurityConfig struct {
	Firewall        *FirewallConfig       `yaml:"firewall,omitempty"`
	DockerSocket    bool                  `` /* 199-byte string literal not displayed */
	CapAdd          []string              `` /* 197-byte string literal not displayed */
	EnableHostProxy *bool                 `` /* 156-byte string literal not displayed */
	GitCredentials  *GitCredentialsConfig `yaml:"git_credentials,omitempty"`
}

func (*SecurityConfig) HostProxyEnabled

func (s *SecurityConfig) HostProxyEnabled() bool

HostProxyEnabled returns whether the host proxy should be enabled. Returns true if not explicitly set (defaults to enabled).

type Settings

type Settings struct {
	Logging    LoggingConfig    `yaml:"logging,omitempty"`
	Monitoring MonitoringConfig `yaml:"monitoring,omitempty"`
	HostProxy  HostProxyConfig  `yaml:"host_proxy,omitempty"`
	Firewall   FirewallSettings `yaml:"firewall,omitempty"`
}

Settings represents user-level configuration stored in ~/.config/clawker/settings.yaml.

func (Settings) Fields added in v0.6.0

func (s Settings) Fields() storage.FieldSet

Fields implements storage.Schema for Settings.

type TelemetryConfig added in v0.1.6

type TelemetryConfig struct {
	MetricsPath            string `yaml:"metrics_path,omitempty" label:"Metrics Path" desc:"OTEL collector HTTP path for metrics" default:"/v1/metrics"`
	LogsPath               string `yaml:"logs_path,omitempty" label:"Logs Path" desc:"OTEL collector HTTP path for logs" default:"/v1/logs"`
	MetricExportIntervalMs int    `` /* 182-byte string literal not displayed */
	LogsExportIntervalMs   int    `` /* 175-byte string literal not displayed */
	LogToolDetails         *bool  `` /* 166-byte string literal not displayed */
	LogUserPrompts         *bool  `` /* 136-byte string literal not displayed */
	IncludeAccountUUID     *bool  `` /* 164-byte string literal not displayed */
	IncludeSessionID       *bool  `` /* 154-byte string literal not displayed */
}

TelemetryConfig configures telemetry export paths and intervals.

type WorkspaceConfig

type WorkspaceConfig struct {
	DefaultMode string `` /* 164-byte string literal not displayed */
}

WorkspaceConfig defines workspace mounting behavior

type WorktreeEntry added in v0.2.0

type WorktreeEntry struct {
	Path   string `yaml:"path" label:"Path" desc:"Filesystem path to worktree"`
	Branch string `yaml:"branch,omitempty" label:"Branch" desc:"Git branch for this worktree"`
}

WorktreeEntry represents a worktree within a project.

Directories

Path Synopsis
storeui
project
Package project provides the domain adapter for editing config.Project via storeui.
Package project provides the domain adapter for editing config.Project via storeui.
settings
Package settings provides the domain adapter for editing config.Settings via storeui.
Package settings provides the domain adapter for editing config.Settings via storeui.

Jump to

Keyboard shortcuts

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