Services are now registered during Core construction:
core.New(
core.WithService(agentic.Register),
core.WithService(monitor.Register),
core.WithService(brain.Register),
)
- Remove initServices() closure — services created once in conclave
- Commands use c.ServiceStartup()/c.ServiceShutdown() for lifecycle
- Service instances retrieved via c.Config() for MCP tool registration
- run/orchestrator reduced to ServiceStartup + block + ServiceShutdown
- run/task uses conclave's agentic instance
Co-Authored-By: Virgil <virgil@lethean.io>
45 lines
1.1 KiB
Go
45 lines
1.1 KiB
Go
// SPDX-License-Identifier: EUPL-1.2
|
|
|
|
package agentic
|
|
|
|
import (
|
|
core "dappco.re/go/core"
|
|
)
|
|
|
|
// Register is the service factory for core.WithService.
|
|
// It creates the PrepSubsystem, wires Core, registers lifecycle hooks,
|
|
// and registers IPC handlers — all during Core construction.
|
|
//
|
|
// core.New(
|
|
// core.WithService(agentic.Register),
|
|
// )
|
|
// Register is the service factory for core.WithService.
|
|
// It creates the PrepSubsystem, wires Core, registers lifecycle hooks,
|
|
// and registers IPC handlers — all during Core construction.
|
|
// The PrepSubsystem instance is stored in Config for retrieval by MCP.
|
|
//
|
|
// core.New(
|
|
// core.WithService(agentic.Register),
|
|
// )
|
|
func Register(c *core.Core) core.Result {
|
|
prep := NewPrep()
|
|
prep.core = c
|
|
|
|
c.Service("agentic", core.Service{
|
|
OnStart: func() core.Result {
|
|
prep.StartRunner()
|
|
return core.Result{OK: true}
|
|
},
|
|
OnStop: func() core.Result {
|
|
prep.frozen = true
|
|
return core.Result{OK: true}
|
|
},
|
|
})
|
|
|
|
RegisterHandlers(c, prep)
|
|
|
|
// Store instance for MCP tool registration
|
|
c.Config().Set("agentic.instance", prep)
|
|
|
|
return core.Result{OK: true}
|
|
}
|