Files
MyAiDesk/nomifun-tauri/crates/backend/nomifun-app/Cargo.toml
T
freedak f7a720204a Update: 将子项目从 submodule 转为完整内容
- 移除 GovAI, nomifun-tauri, 算力盒子 的 submodule 引用
- 添加所有子项目的完整源代码
- 保留原始 .git 为 .git.bak 备份
2026-07-04 19:20:46 +08:00

136 lines
5.0 KiB
TOML

[package]
name = "nomifun-app"
version.workspace = true
edition.workspace = true
[[bin]]
name = "nomicore"
path = "src/main.rs"
[features]
default = ["telegram", "lark", "dingtalk", "weixin", "discord", "matrix", "mattermost", "slack", "twitch", "nostr", "qqbot"]
telegram = ["nomifun-channel/telegram"]
lark = ["nomifun-channel/lark"]
dingtalk = ["nomifun-channel/dingtalk"]
weixin = ["nomifun-channel/weixin"]
discord = ["nomifun-channel/discord"]
matrix = ["nomifun-channel/matrix"]
mattermost = ["nomifun-channel/mattermost"]
slack = ["nomifun-channel/slack"]
twitch = ["nomifun-channel/twitch"]
nostr = ["nomifun-channel/nostr"]
qqbot = ["nomifun-channel/qqbot"]
# Desktop control tools (desktop host enables this; web/server hosts do not).
# Also pulls the discrete-tool MCP bridge (`mcp-computer-stdio`) deps so codex/
# ACP sessions get the same computer-use; web/headless builds omit them entirely.
computer-use = [
"nomifun-ai-agent/computer-use",
"nomifun-gateway/computer-use",
"dep:nomi-computer",
"dep:nomi-config",
"dep:nomi-tools",
"dep:nomi-types",
]
# Browser-automation tools (desktop host enables this; web/server hosts do not).
# Also pulls the discrete-tool MCP bridge (`mcp-browser-stdio`) deps so codex/
# ACP sessions get the same browser-use; web/headless builds omit them entirely
# (no self-hosted-CDP / Chromium stack). Mirrors how `computer-use` pulls
# nomi-computer/-config/-tools/-types for mcp-computer-stdio.
# P3-GW1: also forwards to `nomifun-gateway/browser-use` so the desktop gateway
# exposes the per-companion `nomi_browser_*` tools (route A). Web/headless builds
# omit the feature → the gateway registers no browser tools.
browser-use = [
"nomifun-ai-agent/browser-use",
"nomifun-gateway/browser-use",
"dep:nomi-browser",
"dep:nomi-config",
"dep:nomi-tools",
"dep:nomi-types",
]
[dependencies]
nomifun-common.workspace = true
nomifun-assets.workspace = true
nomifun-db.workspace = true
nomifun-api-types.workspace = true
nomifun-realtime.workspace = true
nomifun-auth.workspace = true
nomifun-system.workspace = true
nomifun-file.workspace = true
nomifun-office.workspace = true
nomifun-shell.workspace = true
nomifun-ai-agent.workspace = true
nomifun-mcp.workspace = true
nomifun-conversation.workspace = true
nomifun-extension.workspace = true
nomifun-channel.workspace = true
nomifun-team.workspace = true
nomifun-cron.workspace = true
nomifun-requirement.workspace = true
nomifun-idmm.workspace = true
nomifun-knowledge.workspace = true
nomifun-companion.workspace = true
nomifun-gateway.workspace = true
nomifun-public.workspace = true
nomifun-webhook.workspace = true
# P3-X2: per-pet browser-use credential secret CRUD endpoints (web feature mounts routes).
nomifun-secret = { workspace = true, features = ["web"] }
nomifun-terminal.workspace = true
nomifun-assistant.workspace = true
nomifun-runtime.workspace = true
nomifun-net.workspace = true
axum.workspace = true
dirs.workspace = true
# OS-level advisory lock for the exclusive per-data-dir server lock
# (bootstrap/server_lock.rs) — same dep nomifun-db's migrate lock uses.
fs2.workspace = true
tokio.workspace = true
tower.workspace = true
tower-http.workspace = true
tracing.workspace = true
tracing-appender.workspace = true
tracing-subscriber.workspace = true
clap.workspace = true
serde.workspace = true
serde_json.workspace = true
sha2.workspace = true
reqwest.workspace = true
rmcp = { version = "1.5", features = ["server", "transport-io", "schemars"] }
anyhow.workspace = true
async-trait.workspace = true
# Network-interface enumeration for desktop LAN-IP detection (WebUI remote access).
if-addrs = "0.13"
# Computer-use discrete-tool MCP bridge (`mcp-computer-stdio`) — facade over
# ComputerTool. Optional; only the `computer-use` feature pulls the native
# screen/input/UI-Automation stack, so web/headless builds stay lean.
nomi-computer = { workspace = true, optional = true }
# Browser-use discrete-tool MCP bridge (`mcp-browser-stdio`) — facade over
# BrowserTool. Optional; only the `browser-use` feature pulls the self-hosted-CDP
# browser engine + Chromium, so web/headless builds stay lean. Shares the
# optional nomi-config/-tools/-types deps with computer-use.
nomi-browser = { workspace = true, optional = true }
nomi-config = { workspace = true, optional = true }
nomi-tools = { workspace = true, optional = true }
nomi-types = { workspace = true, optional = true }
[dev-dependencies]
nomifun-api-types.workspace = true
nomifun-realtime.workspace = true
clap.workspace = true
reqwest.workspace = true
sqlx.workspace = true
# Enable the `AgentInstance::Mock` variant so tests can build fake agents
# through the trait-object escape hatch without spawning real CLI processes.
nomifun-ai-agent = { workspace = true, features = ["test-support"] }
async-trait.workspace = true
base64.workspace = true
git2.workspace = true
http-body-util.workspace = true
rust_xlsxwriter.workspace = true
tempfile = "3"
tower = { workspace = true, features = ["util"] }
tokio-tungstenite.workspace = true
futures-util.workspace = true
wiremock = "0.6"