config

package
v0.8.0 Latest Latest
Warning

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

Go to latest
Published: May 12, 2026 License: MIT Imports: 7 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 = `` /* 1102-byte string literal not displayed */

DefaultIgnoreFile is the default .clawkerignore content. All entries are commented out — users opt in to what they need.

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 delegates to consts.ConfigDir. Kept for backward compatibility — new callers should import internal/consts directly.

func DataDir added in v0.2.0

func DataDir() string

DataDir delegates to consts.DataDir.

func NewProjectStoreFromPreset added in v0.6.4

func NewProjectStoreFromPreset(presetYAML string) (*storage.Store[Project], error)

NewProjectStoreFromPreset creates an isolated project store from a preset YAML string. Unlike NewConfig, this does NO file discovery — no walk-up, no config dir, no user-level config merging. The store contains only the preset values, and all fields are marked dirty so WriteTo persists them.

This is the correct constructor for project init: the written project file should contain exactly the preset values + any Set() mutations (VCS config, customize edits). User-level and parent configs are layered at runtime via normal config loading, not baked into the project file.

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 deprecated added in v0.2.0

func ProjectRegistryFilePath() (string, error)

Deprecated: use consts.ProjectRegistryFilePath.

func SettingsFilePath deprecated added in v0.2.0

func SettingsFilePath() (string, error)

Deprecated: use consts.SettingsFilePath.

func StateDir added in v0.2.0

func StateDir() string

StateDir delegates to consts.StateDir.

func UserProjectConfigFilePath deprecated added in v0.2.0

func UserProjectConfigFilePath() (string, error)

Deprecated: use consts.UserProjectConfigFilePath.

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 */
	MountProjects *bool                   `` /* 211-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) MountProjectsEnabled added in v0.8.0

func (c *ClaudeCodeConfig) MountProjectsEnabled() bool

MountProjectsEnabled returns whether ~/.claude/projects/ should be bind mounted into the container (default: true).

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)
	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
	CPIPLastOctet() byte
	EnvoyEgressPort() int
	EnvoyTCPPortBase() int
	EnvoyHealthPort() 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 ControlPlaneSettings added in v0.8.0

type ControlPlaneSettings struct {
	AdminPort         int `yaml:"admin_port,omitempty" label:"Admin Port" desc:"gRPC admin API port (CLI ↔ CP)" default:"7443"`
	HealthPort        int `yaml:"health_port,omitempty" label:"Health Port" desc:"Plain HTTP /healthz readiness endpoint" default:"7080"`
	HydraPublicPort   int `yaml:"hydra_public_port,omitempty" label:"Hydra Public Port" desc:"Hydra OAuth2 token endpoint (HTTPS)" default:"4444"`
	HydraAdminPort    int `` /* 166-byte string literal not displayed */
	OathkeeperPort    int `` /* 130-byte string literal not displayed */
	OathkeeperAPIPort int `` /* 140-byte string literal not displayed */
	KratosPublicPort  int `` /* 139-byte string literal not displayed */
	KratosAdminPort   int `` /* 136-byte string literal not displayed */
	AgentPort         int `` /* 147-byte string literal not displayed */
}

ControlPlaneSettings configures the control plane in settings.yaml. All ports are published to 127.0.0.1 on the host (never exposed to the network). Internal-only ports (Hydra admin, Kratos, Oathkeeper API) bind to 127.0.0.1 inside the container.

Defaults come from struct tags via the storage layer — no OrDefault methods needed. cfg.Settings().ControlPlane.AdminPort always has a value.

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 `yaml:"path_rules,omitempty" label:"Path Rules" desc:"Fine-grained path filtering (works with proto tls and http)"`
	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 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"`
	OtelCPPort            int             `` /* 277-byte string literal not displayed */
	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"`
}

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              `` /* 253-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"`
	ControlPlane ControlPlaneSettings `yaml:"control_plane,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