Stubs (15 files, 479 exports): - All managers: Dialog, Event, Browser, Clipboard, ContextMenu, Environment, Screen, KeyBinding - Window interface (~50 methods), BrowserWindow, platform options (iOS/Android) - MenuItem (42 roles), WebviewWindowOptions (full platform types) - Wails v3 submodule pinned at alpha 74 New events package (17th package): - Custom event system bridged to Core IPC - TaskEmit, TaskOn, TaskOff, QueryListeners, ActionEventFired Feature expansions: - Window: zoom, content (SetURL/SetHTML/ExecJS), bounds, print, flash - Screen: QueryCurrent, ScreenPlacement, Rect geometry - Dialog: typed tasks, file options, Info/Question/Warning/Error - Keybinding: TaskProcess, ErrorNotRegistered - Notification: RevokePermission, RegisterCategory, action broadcasts - Dock: SetProgressBar, Bounce/StopBounce - Environment: HasFocusFollowsMouse - ContextMenu: QueryGetAll, TaskUpdate, TaskDestroy Display bridge: 5 new event types wired to WebSocket MCP: 4 event tools (emit, on, off, list) 17 packages build and test clean (1 flaky test ordering issue in window). Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
43 lines
1.1 KiB
Go
43 lines
1.1 KiB
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
|
|
}
|
|
|
|
// NewSubsystem creates the display MCP bridge for a Core instance.
|
|
// sub := mcp.NewSubsystem(c); sub.RegisterTools(server)
|
|
func NewSubsystem(c *core.Core) *Subsystem {
|
|
return &Subsystem{core: c}
|
|
}
|
|
|
|
// Deprecated: use NewSubsystem(c).
|
|
func New(c *core.Core) *Subsystem {
|
|
return NewSubsystem(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)
|
|
s.registerEventTools(server)
|
|
}
|