Documentation
¶
Overview ¶
Package supervisor defines the capability boundary between reconciliation and target-provided process supervisors. Capabilities are explicit; an adapter never infers safe control from observation alone.
Index ¶
Constants ¶
This section is empty.
Variables ¶
var ( ErrUnsupported = errors.New("supervisor: capability unsupported") ErrLabGate = errors.New("supervisor: txadmin lab evidence incomplete") )
var RequiredTxAdminExperiments = []string{"E1", "E2", "E3", "E4", "E5", "E6", "E7", "E8", "E9", "E10", "E11", "E13", "E14"}
RequiredTxAdminExperiments are the binary live-lab gates from the Stage 4 compatibility matrix. An adapter cannot be constructed until every enabled mechanism has affirmative evidence.
Functions ¶
This section is empty.
Types ¶
type Capabilities ¶
type CommandRunner ¶
type CommandRunner struct{}
CommandRunner executes an exact argv without a shell. It is the production process boundary used by the systemd adapter; tests can replace Runner with a deterministic fake.
type FiveMHTTPPlayerCount ¶
type FiveMHTTPPlayerCount struct {
Endpoint *domain.RCONEndpointRef
Client *http.Client
MaxBodyBytes int64
}
FiveMHTTPPlayerCount reads the non-credentialed /dynamic.json endpoint bound by the target administrator. It neither discovers nor follows another host.
func (FiveMHTTPPlayerCount) ObservePlayerCount ¶
func (o FiveMHTTPPlayerCount) ObservePlayerCount(ctx context.Context) (int, error)
type Manual ¶
type Manual struct {
ObserveFunc func(context.Context) (Observation, error)
}
Manual is observe-only when ObserveFunc is supplied and otherwise has no capabilities. It never pretends an operator-managed process can be safely restarted by FXVCS.
func (Manual) Capabilities ¶
func (m Manual) Capabilities() Capabilities
type Observation ¶
type PlayerCountObserver ¶
PlayerCountObserver obtains a live player count without lifecycle authority.
type Runner ¶
Runner is an argv-based process boundary; implementations must not invoke a shell. Tests and SDK hosts can inject it without parsing human CLI output in the reconciliation engine.
type Systemd ¶
func (Systemd) Capabilities ¶
func (Systemd) Capabilities() Capabilities
type TxAdmin ¶
type TxAdmin struct {
// contains filtered or unexported fields
}
func NewTxAdmin ¶
func NewTxAdmin(evidence TxAdminEvidence, transport TxAdminTransport) (*TxAdmin, error)
func (*TxAdmin) Capabilities ¶
func (t *TxAdmin) Capabilities() Capabilities
func (*TxAdmin) ReloadResources ¶
type TxAdminEvidence ¶
func (TxAdminEvidence) Missing ¶
func (e TxAdminEvidence) Missing() []string
type TxAdminTransport ¶
type TxAdminTransport interface {
Observe(context.Context) (Observation, error)
Restart(context.Context) error
ReloadResources(context.Context, []string) error
Capabilities() Capabilities
}
TxAdminTransport is intentionally typed rather than an HTTP/browser API. The eventual implementation must be backed only by mechanisms proven in the lab matrix; browser sessions and CSRF automation are outside this boundary.