makepad/apps/aihub/Cargo.toml

55 lines
3.2 KiB
TOML

[package]
name = "makepad-app-aihub"
version = "0.1.0"
edition = "2021"
license = "MIT OR Apache-2.0"
publish = false
description = "AI Hub: serves this machine's AI (the sandboxed Claude backend, local models) to the fleet while it runs, with its control panel and tray icon"
[[bin]]
name = "makepad-app-aihub"
path = "src/main.rs"
[features]
# The local model backends that run on Metal (macOS) and CUDA/CPU (Windows, Linux): chat,
# vision and OCR (`localai`), Whisper speech-to-text, Kokoro text-to-speech, notes, beats,
# stems, matting, depth, segmentation, upscaling, body pose. CUDA-only families (image
# generation, video, music generation, sound effects, 3D) are left out.
# Whisper and Kokoro bring the hub's speech-session code along (`speech`); the service
# never starts a session, so the OS speech engines (and their permission prompts) are
# never asked for.
default = ["localai", "stt", "tts", "notes-native", "beats-native", "stems-native", "matte-native", "depth-native", "segment-native", "upscale-native", "body-native"]
localai = ["makepad-ai-hub/localai"]
stt = ["makepad-ai-hub/stt"]
tts = ["makepad-ai-hub/tts"]
notes-native = ["makepad-ai-hub/notes-native"]
beats-native = ["makepad-ai-hub/beats-native"]
stems-native = ["makepad-ai-hub/stems-native"]
matte-native = ["makepad-ai-hub/matte-native"]
depth-native = ["makepad-ai-hub/depth-native"]
segment-native = ["makepad-ai-hub/segment-native"]
upscale-native = ["makepad-ai-hub/upscale-native"]
body-native = ["makepad-ai-hub/body-native"]
# The CUDA kernels (Linux/Windows, where MAKEPAD_CUDA_ROOT names a toolkit). The hub is the one
# app with them: apps stay CPU-only, so their builds never share a unit with this one.
cuda = ["makepad-ai-hub/cuda"]
# A makepad WM node's hub (the WM starts the app with `--features node`): every local model
# backend the headless node hub (apps/ai-hub) builds by default, CUDA kernels included.
# A Mac keeps the default (Metal/CPU backends only).
node = ["localai", "cuda", "makepad-ai-hub/flux", "makepad-ai-hub/paint", "makepad-ai-hub/paint-cuda", "makepad-ai-hub/llm",
"makepad-ai-hub/tts", "makepad-ai-hub/indextts", "makepad-ai-hub/speech", "makepad-ai-hub/stt", "makepad-ai-hub/video",
"makepad-ai-hub/interpolate", "makepad-ai-hub/audio", "makepad-ai-hub/mesh", "makepad-ai-hub/matte-native",
"makepad-ai-hub/depth-native", "makepad-ai-hub/segment-native", "makepad-ai-hub/body-native", "makepad-ai-hub/upscale-native",
"makepad-ai-hub/motion-native", "makepad-ai-hub/rig-native", "makepad-ai-hub/splat-native", "makepad-ai-hub/stems-native",
"makepad-ai-hub/beats-native", "makepad-ai-hub/notes-native", "makepad-ai-hub/kernel"]
# TEST BUILDS ONLY: MAKEPAD_AI_HUB_CLAUDE_STUB=<fake claude> serves that fake CLI as the
# Claude backend (pool-node tests without anyone's login). Never in a shipped build.
claude-stub = ["makepad-ai-hub/claude-stub"]
[dependencies]
makepad-widgets = { path = "../../widgets", default-features = false }
makepad-shell-kit = { path = "../../libs/shell_kit" }
makepad-ai-hub-panel = { path = "../../libs/ai/hub_panel" }
makepad-ai-hub = { path = "../../libs/ai/hub", default-features = false }
makepad-network = { path = "../../platform/network" }
makepad-strict-json = { path = "../../libs/strict_json" }