Register factories no longer call c.RegisterService() explicitly.
WithService auto-discovers name from package path and registers.
Eliminates double-registration error.
Uses WithOption("name", "core-agent") for Options struct.
Co-Authored-By: Virgil <virgil@lethean.io>
32 lines
745 B
Go
32 lines
745 B
Go
// SPDX-License-Identifier: EUPL-1.2
|
|
|
|
package monitor
|
|
|
|
import (
|
|
"dappco.re/go/agent/pkg/messages"
|
|
core "dappco.re/go/core"
|
|
)
|
|
|
|
// Register is the service factory for core.WithService.
|
|
// Returns the monitor Subsystem — WithService auto-registers it.
|
|
//
|
|
// core.New(
|
|
// core.WithService(monitor.Register),
|
|
// )
|
|
func Register(c *core.Core) core.Result {
|
|
mon := New()
|
|
mon.core = c
|
|
|
|
// Register IPC handler for agent lifecycle events
|
|
c.RegisterAction(func(c *core.Core, msg core.Message) core.Result {
|
|
switch ev := msg.(type) {
|
|
case messages.AgentCompleted:
|
|
mon.handleAgentCompleted(ev)
|
|
case messages.AgentStarted:
|
|
mon.handleAgentStarted(ev)
|
|
}
|
|
return core.Result{OK: true}
|
|
})
|
|
|
|
return core.Result{Value: mon, OK: true}
|
|
}
|