pod

package
v0.14.3 Latest Latest
Warning

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

Go to latest
Published: Apr 29, 2026 License: MIT Imports: 15 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func ClawdashHostPort added in v0.9.0

func ClawdashHostPort(addr string) string

ClawdashHostPort returns the numeric host port derived from the given CLAWDASH_ADDR-style value (e.g. ":8082" or "0.0.0.0:9000"). It falls back to the default port when the value cannot be parsed.

func EmitCompose

func EmitCompose(p *Pod, results map[string]*driver.MaterializeResult, proxies ...CllamaProxyConfig) (string, error)

EmitCompose generates a compose.generated.yml string from pod definition and driver materialization results. Output is deterministic (sorted service names).

func ParseSurface

func ParseSurface(raw string) (driver.ResolvedSurface, error)

ParseSurface parses a raw surface string like "volume://research-cache read-only" into a ResolvedSurface.

Types

type ChannelContextConfig added in v0.13.7

type ChannelContextConfig struct {
	Since    string
	Limit    int
	MaxChars int
	Buffer   int
}

type ClawAPIConfig added in v0.3.1

type ClawAPIConfig struct {
	Image              string // e.g. ghcr.io/mostlydev/claw-api:latest
	Addr               string // e.g. :8080
	ManifestHostPath   string // host path to pod-manifest.json
	ScheduleHostPath   string // host path to schedule.json
	PrincipalsHostPath string // host path to principals.json
	DockerSockHostPath string // host path to docker socket
	GovernanceHostPath string // host path to .claw-governance/ dir (write plane override files)
	ContextHostDir     string // host path to .claw-runtime/context/
	CllamaAPIURL       string // internal cllama UI/API URL for context snapshots
	CllamaAPIToken     string // CLLAMA_UI_TOKEN for internal cllama snapshot calls
	PodName            string
	Environment        map[string]string // extra env vars (e.g. CLAW_ALERT_* thresholds)
}

type ClawBlock

type ClawBlock struct {
	Agent        string
	Persona      string
	DescribeFile string
	Cllama       []string
	Models       map[string]string
	CllamaEnv    map[string]string
	CllamaTokens map[string]string // runtime-only: expanded service name -> token
	Count        int
	Handles      map[string]*driver.HandleInfo // platform → contact card
	Feeds        []FeedEntry
	Tools        []ToolPolicyEntry
	Memory       *MemoryEntry
	Include      []IncludeEntry
	Surfaces     []driver.ResolvedSurface
	Skills       []string
	Invoke       []InvokeEntry
	Context      *ContextConfig
	ClawAPIMode  string // "self" when claw-api: self is declared; empty otherwise
	MCPStdio     *MCPStdioBlock
	Hermes       *driver.HermesConfig
}

ClawBlock represents the x-claw extension on a service.

type ClawdashConfig added in v0.2.0

type ClawdashConfig struct {
	Image              string            // e.g. ghcr.io/mostlydev/clawdash:latest
	Addr               string            // e.g. :8082
	ManifestHostPath   string            // host path to pod-manifest.json
	DockerSockHostPath string            // host path to docker socket
	CllamaCostsURL     string            // external costs URL for operator browser
	Environment        map[string]string // extra env vars (e.g. schedule client auth)
	PodName            string
}

type CllamaProxyConfig

type CllamaProxyConfig struct {
	ProxyType             string            // e.g. "passthrough", "policy"
	Image                 string            // e.g. ghcr.io/mostlydev/cllama:latest
	ContextHostDir        string            // host path for shared context dir
	AuthHostDir           string            // host path for provider auth state
	SessionHistoryHostDir string            // host path for session history dir (optional)
	DashboardPort         string            // host port published to proxy UI :8081 (default "8181")
	Environment           map[string]string // proxy-only env (e.g. CLAW_POD, provider keys)
	PodName               string
}

type ContextConfig added in v0.13.7

type ContextConfig struct {
	Channel *ChannelContextConfig
}

type FeedEntry added in v0.3.1

type FeedEntry struct {
	Name        string
	Source      string
	Path        string
	TTL         int
	Description string
	Unresolved  bool
}

type IncludeEntry added in v0.2.0

type IncludeEntry struct {
	ID          string
	File        string
	Mode        string
	Description string
}

type InvokeEntry

type InvokeEntry struct {
	Schedule string // 5-field cron expression
	Message  string // agent task payload
	Name     string // optional human-readable job name
	To       string // delivery target (name or ID; optional platform prefix "platform:target")
	When     *schedule.When
}

InvokeEntry is a scheduled agent task declared in the pod x-claw.invoke block.

type MCPStdioBlock added in v0.12.0

type MCPStdioBlock struct {
	Command string
	Args    []string
}

type MemoryEntry added in v0.5.0

type MemoryEntry struct {
	Service   string
	TimeoutMS int
}

type Pod

type Pod struct {
	Name                  string
	Master                string
	SequentialConformance bool // when true, shared handle IDs across services are allowed (sequential conformance spikes only)
	Services              map[string]*Service
	Compose               map[string]interface{} // preserved top-level compose keys except x-claw and services
	ClawAPI               *ClawAPIConfig
	Clawdash              *ClawdashConfig // runtime-only dashboard sidecar config, injected by claw up
	Context               *ContextConfig
	Principals            []PodPrincipal
	AlertWebhooks         []string // pod-scoped Discord webhook URLs for pool-transition alerts
	AlertMentions         []string // pod-scoped @-mention targets for alerts (e.g. "@wojtek", "@infra")
}

Pod represents a parsed claw-pod.yml.

func Parse

func Parse(r io.Reader) (*Pod, error)

Parse reads a claw-pod.yml from the given reader.

type PodPrincipal added in v0.3.6

type PodPrincipal struct {
	Name            string   `yaml:"name"`
	Verbs           []string `yaml:"verbs"`
	Scope           string   `yaml:"scope,omitempty"`
	Services        []string `yaml:"services,omitempty"`
	ClawIDs         []string `yaml:"claw_ids,omitempty"`
	ComposeServices []string `yaml:"compose_services,omitempty"`
	InjectInto      string   `yaml:"inject-into,omitempty"`
}

PodPrincipal is an explicit principal declared in the pod-level x-claw.principals list.

type Service

type Service struct {
	Image       string
	Compose     map[string]interface{} // preserved compose service keys except x-claw
	Claw        *ClawBlock
	Environment map[string]string
	Expose      []string // ports exposed to other containers (from compose expose:)
	Ports       []string // container-side ports from compose ports: (host:container or plain container)
}

Service represents a service in a claw-pod.yml.

func (*Service) IsAgentManaged added in v0.12.0

func (s *Service) IsAgentManaged() bool

func (*Service) IsMCPStdioSidecar added in v0.12.0

func (s *Service) IsMCPStdioSidecar() bool

type ToolPolicyEntry added in v0.5.0

type ToolPolicyEntry struct {
	Service string
	Allow   []string
}

Jump to

Keyboard shortcuts

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