package tui

// Messages are pure data returned by the shell adapter.
// They carry the result of an I/O operation back into the pure Update.

// MsgAgentsLoaded carries refreshed agent data + launcher status.
type MsgAgentsLoaded struct {
	Agents          []AgentView
	LauncherRunning bool
	LauncherPID     int
	LauncherUptime  string
	LauncherMemory  string
	LauncherCPU     string
	LauncherLogSize string
}

// MsgActionDone reports the result of an action (start/stop/enable/disable).
type MsgActionDone struct {
	AgentID string
	Action  string
	Err     error
}

// MsgLogsLoaded carries log lines for display.
type MsgLogsLoaded struct{ Lines []string }

// MsgServerActionDone reports the result of a launcher action.
type MsgServerActionDone struct {
	Action string
	Err    error
}

// MsgRebuildDone reports the result of a rebuild & restart cycle.
type MsgRebuildDone struct {
	BuildOK  bool
	BuildLog string // last lines of build output
	Started  bool   // launcher started after build
	Err      error
}

// MsgTestsDone reports the result of running tests.
type MsgTestsDone struct {
	Kind   TestKind // which test suite was executed
	Passed bool
	Output []string // lines of test output
}

// MsgTick triggers a periodic refresh.
type MsgTick struct{}
