- Fix window/service.go: replace 3 fmt.Errorf calls with coreerr.E() (removes implicit fmt dependency)
- Add usage-example comments to all bare Register() functions across 10 packages
- Remove redundant prose comments (Options/Service/Register/OnStartup/HandleIPCEvents boilerplate)
- Add Result-type comments to message types in contextmenu, keybinding, notification packages
- Fix test naming to TestFilename_Function_{Good,Bad,Ugly} pattern in display_test, window_test, persistence_test, service_screen_test
- Convert New() and CreateWindowOptions doc comments to usage-example style
Co-Authored-By: Virgil <virgil@lethean.io>
37 lines
1,009 B
Go
37 lines
1,009 B
Go
// pkg/mcp/subsystem.go
|
|
package mcp
|
|
|
|
import (
|
|
"forge.lthn.ai/core/go/pkg/core"
|
|
"github.com/modelcontextprotocol/go-sdk/mcp"
|
|
)
|
|
|
|
// Subsystem translates MCP tool calls to Core IPC messages for GUI operations.
|
|
type Subsystem struct {
|
|
core *core.Core
|
|
}
|
|
|
|
// New(c) creates a display MCP subsystem backed by a Core instance.
|
|
// sub := mcp.New(c); sub.RegisterTools(server)
|
|
func New(c *core.Core) *Subsystem {
|
|
return &Subsystem{core: c}
|
|
}
|
|
|
|
func (s *Subsystem) Name() string { return "display" }
|
|
|
|
func (s *Subsystem) RegisterTools(server *mcp.Server) {
|
|
s.registerWebviewTools(server)
|
|
s.registerWindowTools(server)
|
|
s.registerLayoutTools(server)
|
|
s.registerScreenTools(server)
|
|
s.registerClipboardTools(server)
|
|
s.registerDialogTools(server)
|
|
s.registerNotificationTools(server)
|
|
s.registerTrayTools(server)
|
|
s.registerEnvironmentTools(server)
|
|
s.registerBrowserTools(server)
|
|
s.registerContextMenuTools(server)
|
|
s.registerKeybindingTools(server)
|
|
s.registerDockTools(server)
|
|
s.registerLifecycleTools(server)
|
|
}
|