agent/cmd/core-agent/mcp_service.go
Virgil 3d7ec7efce fix(ax): make core-agent startup explicit
Co-Authored-By: Virgil <virgil@lethean.io>
2026-03-30 00:00:33 +00:00

40 lines
1.1 KiB
Go

// SPDX-License-Identifier: EUPL-1.2
package main
import (
"dappco.re/go/agent/pkg/agentic"
"dappco.re/go/agent/pkg/brain"
"dappco.re/go/agent/pkg/monitor"
core "dappco.re/go/core"
"forge.lthn.ai/core/mcp/pkg/mcp"
)
// registerMCPService builds the MCP service from registered AX subsystems.
//
// r := registerMCPService(c)
func registerMCPService(c *core.Core) core.Result {
if c == nil {
return core.Result{Value: core.E("main.registerMCPService", "core is required", nil), OK: false}
}
var subsystems []mcp.Subsystem
if prep, ok := core.ServiceFor[*agentic.PrepSubsystem](c, "agentic"); ok {
subsystems = append(subsystems, prep)
}
if mon, ok := core.ServiceFor[*monitor.Subsystem](c, "monitor"); ok {
subsystems = append(subsystems, mon)
}
if brn, ok := core.ServiceFor[*brain.DirectSubsystem](c, "brain"); ok {
subsystems = append(subsystems, brn)
}
svc, err := mcp.New(mcp.Options{
Subsystems: subsystems,
})
if err != nil {
return core.Result{Value: core.E("main.registerMCPService", "create mcp service", err), OK: false}
}
return core.Result{Value: svc, OK: true}
}