Documentation
¶
Overview ¶
Package control provides the adapters that plug Fort's deterministic components into the control-plane ports (ui.Dispatcher, ui.FlowRunner).
This is the composition seam for "control plane, optionally with execution":
- EngineDispatcher / FlowExecutor wrap the real router + DAG engine (full mode).
- QueueDispatcher boards tasks with no execution plane at all (control-only mode).
cmd/fort picks which adapters to wire; the ui module only ever sees the ports.
Index ¶
- type EngineDispatcher
- type FlowExecutor
- func (f FlowExecutor) Approve(runID, nodeID, edit string) error
- func (f FlowExecutor) Reject(runID, nodeID string) error
- func (f FlowExecutor) ResumeFlow(ctx context.Context, flowID, runID string) (ui.RunResult, error)
- func (f FlowExecutor) StartFlow(ctx context.Context, flowID, runID, payload string) (ui.RunResult, error)
- type Planner
- type QueueDispatcher
- type Roster
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type EngineDispatcher ¶
type EngineDispatcher struct {
// contains filtered or unexported fields
}
EngineDispatcher routes + dispatches via the deterministic engine.
func NewEngineDispatcher ¶
func NewEngineDispatcher(e *engine.Engine) EngineDispatcher
NewEngineDispatcher adapts an engine to ui.Dispatcher.
type FlowExecutor ¶
type FlowExecutor struct {
// contains filtered or unexported fields
}
FlowExecutor adapts the DAG executor to ui.FlowRunner (id-based).
func NewFlowExecutor ¶
func NewFlowExecutor(x *graph.Executor, flows []graph.Flow) FlowExecutor
NewFlowExecutor adapts a graph executor + flow set to ui.FlowRunner.
func (FlowExecutor) Approve ¶
func (f FlowExecutor) Approve(runID, nodeID, edit string) error
Approve records a gate approval.
func (FlowExecutor) Reject ¶
func (f FlowExecutor) Reject(runID, nodeID string) error
Reject records a gate rejection.
func (FlowExecutor) ResumeFlow ¶
ResumeFlow resumes the named flow.
type Planner ¶ added in v0.8.0
type Planner struct {
// contains filtered or unexported fields
}
Planner implements ui.Planner: it runs a planner agent to decompose a goal into backlog sub-tasks (spec 026). The planner is a normal, visible run; Breakdown returns its id immediately and the sub-tasks are created when the run completes.
func NewPlanner ¶ added in v0.8.0
NewPlanner adapts the engine + store to ui.Planner. defaultAgent is the planner agent used when a breakdown request doesn't specify one (FORT_PLANNER; falls back to "claude").
func (Planner) Breakdown ¶ added in v0.8.0
Breakdown dispatches the planner run and returns its id; a goroutine ingests its output into the backlog once it completes. NOTE (spec 026 crash window): if the process stops between the run finishing and ingest writing items, the sub-tasks are not written — re-run the breakdown.
type QueueDispatcher ¶
type QueueDispatcher struct {
// contains filtered or unexported fields
}
QueueDispatcher boards a task as a "queued" run with no execution plane.
func NewQueueDispatcher ¶
func NewQueueDispatcher(s *store.Store) QueueDispatcher
NewQueueDispatcher adapts a store to ui.Dispatcher for control-only mode.
type Roster ¶
type Roster struct {
// contains filtered or unexported fields
}
Roster adapts a live machine registry pointer to ui.MachineLister and tracks peer reachability by polling each machine's /health (spec 022). It reads the Live pointer on every call, so a registry installed after construction (e.g. a mesh enrollment) is visible without a restart (spec 024). The local machine is reachable by definition; peers start unreachable until first probed.
func (*Roster) Machines ¶
func (r *Roster) Machines() []ui.MachineStatus
Machines implements ui.MachineLister.