- The loopback MCP server moves from Director into libs/ai/services (mcp::server); Director re-exports it, its lane tokens and tests unchanged. The dispatcher now names the server and its instructions; a TokenStore can live in memory only (ephemeral).
- mcp::host: while Claude Desktop is the provider the panel serves its registry's tools (service__tool names) on an ephemeral 127.0.0.1 port with a fresh bearer token, and writes ~/.makepad/mcp/<exe-stem>.json {pid, port, token, title} (0600 in a 0700 dir), removed when the provider changes or the panel goes. Calls queue to the UI thread and run through EngineCore::call_external: a card in the transcript, destructive calls held for the person's confirm (the pane opens for it), the result sent back when the card lands.
- mcp::mcpb: "Connect to Claude Desktop" writes <exe-stem>.mcpb (a stored zip, manifest_version 0.3, binary server = this executable with --mcp) and opens it so Claude Desktop shows its install dialog.
- platform mcp_relay: `<app> --mcp`, checked first in app_main before any Cx, window, GPU or audio, relays newline JSON-RPC on stdio to the running app's endpoint. It answers initialize/ping itself and tools/list from the app's last list while the app is down, starts the app (detached, MAKEPAD_AI_PROVIDER=claude-desktop, engine up with the pane closed) on the first call that needs it, waits up to 20 s for its file, and exits when stdin closes.
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
54 lines
1.4 KiB
TOML
54 lines
1.4 KiB
TOML
# Director: AI accounts, agent lanes with their terminals, editors and the disk map.
|
|
|
|
[package]
|
|
name = "makepad-director"
|
|
version = "2.0.0"
|
|
edition = "2021"
|
|
default-run = "director"
|
|
|
|
[lib]
|
|
name = "makepad_director"
|
|
path = "src/lib.rs"
|
|
|
|
[[bin]]
|
|
name = "director"
|
|
path = "src/main.rs"
|
|
|
|
[[bin]]
|
|
name = "director-git-guard"
|
|
path = "src/bin/director_git_guard.rs"
|
|
test = false
|
|
bench = false
|
|
|
|
[[bin]]
|
|
name = "director-rustc-guard"
|
|
path = "src/bin/director_rustc_guard.rs"
|
|
test = false
|
|
bench = false
|
|
|
|
[[bin]]
|
|
name = "director-flow"
|
|
path = "src/bin/director_flow.rs"
|
|
test = false
|
|
bench = false
|
|
|
|
[dependencies]
|
|
makepad-widgets = { path = "../../widgets" }
|
|
makepad-diskmap = { path = "../../libs/diskmap" }
|
|
makepad-workspace = { path = "../../libs/workspace" }
|
|
makepad-terminal = { path = "../terminal" }
|
|
makepad-wm-theme = { path = "../../libs/wm_theme" }
|
|
makepad-wm-api = { path = "../../libs/wm_api" }
|
|
makepad-aichat = { path = "../aichat", default-features = false, features = ["engine"] }
|
|
makepad-ai-services = { path = "../../libs/ai/services" }
|
|
makepad-strict-json = { path = "../../libs/strict_json" }
|
|
|
|
makepad-code-editor = { path = "../../code_editor" }
|
|
makepad-code-arch = { path = "../../libs/code_arch" }
|
|
makepad-git = { path = "../../libs/git" }
|
|
|
|
[target.'cfg(any(target_os = "macos", target_os = "linux", windows))'.dependencies]
|
|
makepad-agents = { path = "../../tools/agents" }
|
|
|
|
[dev-dependencies]
|
|
makepad-draw = { path = "../../draw" }
|