Ctrl K
ComunidadGuías…

Cargo.toml

Rama main · réplica de lectura del repositorio original.

Archivo original ↗Preguntar a KiBot
[workspace]
default-members = [
  "apps/courier",
  "crates/acp",
  "crates/agents",
  "crates/auth",
  "crates/auto-reply",
  "crates/benchmarks",
  "crates/browser",
  "crates/caldav",
  "crates/canvas",
  "crates/channels",
  "crates/chat",
  "crates/claude-import",
  "crates/cli",
  "crates/client",
  "crates/code-index",
  "crates/codex-import",
  "crates/common",
  "crates/config",
  "crates/connector-caldav",
  "crates/connector-gmail",
  "crates/connector-himalaya",
  "crates/connectors",
  "crates/cron",
  "crates/ctl",
  "crates/discord",
  "crates/external-agents",
  "crates/gateway",
  "crates/graphql",
  "crates/hermes-import",
  "crates/home-assistant",
  "crates/httpd",
  "crates/import-core",
  "crates/matrix",
  "crates/mcp",
  "crates/mcp-agent-bridge",
  "crates/media",
  "crates/memory",
  "crates/metrics",
  "crates/msteams",
  "crates/netbird",
  "crates/network-filter",
  "crates/node-host",
  "crates/nostr",
  "crates/oauth",
  "crates/observability",
  "crates/onboarding",
  "crates/openclaw-import",
  "crates/plugins",
  "crates/portable",
  "crates/projects",
  "crates/protocol",
  "crates/provider-setup",
  "crates/providers",
  "crates/qmd",
  "crates/routing",
  "crates/secret-store",
  "crates/service-traits",
  "crates/sessions",
  "crates/signal",
  "crates/skills",
  "crates/slack",
  "crates/swift-bridge",
  "crates/tailscale",
  "crates/telegram",
  "crates/telephony",
  "crates/tls",
  "crates/tools",
  "crates/vault",
  "crates/voice",
  "crates/wasm-precompile",
  "crates/wasm-tools/calc",
  "crates/wasm-tools/web-fetch",
  "crates/wasm-tools/web-search",
  "crates/web",
  "crates/webhooks",
  "crates/whatsapp",
]
exclude = ["apps/desktop", "vendor/agent-client-protocol"]
members = [
  "apps/courier",
  "crates/acp",
  "crates/agents",
  "crates/auth",
  "crates/auto-reply",
  "crates/benchmarks",
  "crates/browser",
  "crates/caldav",
  "crates/canvas",
  "crates/channels",
  "crates/chat",
  "crates/claude-import",
  "crates/cli",
  "crates/client",
  "crates/code-index",
  "crates/codex-import",
  "crates/common",
  "crates/config",
  "crates/connector-caldav",
  "crates/connector-gmail",
  "crates/connector-himalaya",
  "crates/connectors",
  "crates/cron",
  "crates/ctl",
  "crates/external-agents",
  "crates/gateway",
  "crates/graphql",
  "crates/hermes-import",
  "crates/home-assistant",
  "crates/httpd",
  "crates/import-core",
  "crates/matrix",
  "crates/mcp",
  "crates/media",
  "crates/memory",
  "crates/memory-zvec",
  "crates/metrics",
  "crates/msteams",
  "crates/netbird",
  "crates/node-host",
  "crates/nostr",
  "crates/oauth",
  "crates/observability",
  "crates/onboarding",
  "crates/openclaw-import",
  "crates/plugins",
  "crates/portable",
  "crates/projects",
  "crates/protocol",
  "crates/provider-setup",
  "crates/providers",
  "crates/qmd",
  "crates/routing",
  "crates/schema-export",
  "crates/secret-store",
  "crates/service-traits",
  "crates/sessions",
  "crates/signal",
  "crates/skills",
  "crates/slack",
  "crates/splitter",
  "crates/swift-bridge",
  "crates/tailscale",
  "crates/telegram",
  "crates/telephony",
  "crates/tls",
  "crates/tools",
  "crates/vault",
  "crates/voice",
  "crates/wasm-precompile",
  "crates/wasm-tools/calc",
  "crates/wasm-tools/web-fetch",
  "crates/wasm-tools/web-search",
  "crates/web",
  "crates/webhooks",
  "crates/whatsapp",
]
resolver = "2"

[patch.crates-io]
# Keep ACP stdin cancellation and EOF processing independent of blocked stdout,
# while bounding queued wire bytes. Remove once a compatible release includes it.
agent-client-protocol = { path = "vendor/agent-client-protocol" }
# Widen libsqlite3-sys pin (0.30.1 → >=0.30.1,<0.36.0) so sqlx-sqlite 0.8.6
# can coexist with matrix-sdk-sqlite's rusqlite 0.37 (libsqlite3-sys 0.35).
# Remove once sqlx ≥ 0.9 ships stable.
sqlx-core   = { git = "https://github.com/moltis-org/sqlx", rev = "33747ad2e2d0c7962c6450faf31591c4e0782c23" }
sqlx-sqlite = { git = "https://github.com/moltis-org/sqlx", rev = "33747ad2e2d0c7962c6450faf31591c4e0782c23" }
# whatsapp-rust 0.6.0 plus the DM LID-migration gate (oxidezap/whatsapp-rust#943,
# merged upstream): accounts the server has not migrated to LID 1:1 get their
# LID-addressed DMs silently 400-nacked; the gate keeps wire addressing on PN
# until the account migrates. Pinned to the merge commit of #943; drop this
# patch section for a plain version bump once a whatsapp-rust release includes
# it. The whole family is patched to the same rev so wacore/waproto types stay
# unified (mixing crates.io and git copies makes them incompatible).
wacore                         = { git = "https://github.com/oxidezap/whatsapp-rust", rev = "96686eac65460b3bc8e10e3c37f27c0a602c3f54" }
wacore-binary                  = { git = "https://github.com/oxidezap/whatsapp-rust", rev = "96686eac65460b3bc8e10e3c37f27c0a602c3f54" }
waproto                        = { git = "https://github.com/oxidezap/whatsapp-rust", rev = "96686eac65460b3bc8e10e3c37f27c0a602c3f54" }
whatsapp-rust                  = { git = "https://github.com/oxidezap/whatsapp-rust", rev = "96686eac65460b3bc8e10e3c37f27c0a602c3f54" }
whatsapp-rust-tokio-transport  = { git = "https://github.com/oxidezap/whatsapp-rust", rev = "96686eac65460b3bc8e10e3c37f27c0a602c3f54" }
whatsapp-rust-ureq-http-client = { git = "https://github.com/oxidezap/whatsapp-rust", rev = "96686eac65460b3bc8e10e3c37f27c0a602c3f54" }

[workspace.lints.rust]
unsafe_code           = "deny"
unused_qualifications = "deny"

[workspace.lints.clippy]
expect_used = "deny"
unwrap_used = "deny"

[workspace.package]
edition      = "2024"
license      = "MIT"
repository   = "https://github.com/moltis-org/moltis"
rust-version = "1.91"
version      = "0.1.0"

[workspace.dependencies]
# APNS
a2 = { default-features = false, features = ["ring"], version = "0.10" }
# Async runtime
agent-client-protocol = "0.10.2"
tokio                 = { features = ["full"], version = "1" }
# HTTP/WS server
askama     = "0.15"
axum       = { features = ["ws"], version = "0.8" }
axum-extra = "0.10"
# Serialization
postcard        = { features = ["alloc"], version = "1.1" }
process-wrap    = { default-features = false, features = ["job-object", "kill-on-drop", "process-group", "tokio1"], version = "9.1" }
schemars        = "1.2"
serde           = { features = ["derive"], version = "1" }
serde-big-array = "0.5"
serde_json      = "1"
# Error handling
anyhow    = "1"
thiserror = "2"
# OpenSSL (vendored for cross-compilation)
openssl = { features = ["vendored"], version = "0.10" }
# Logging
opentelemetry         = { version = "0.29" }
opentelemetry-otlp    = { features = ["tonic"], version = "0.29" }
opentelemetry_sdk     = { features = ["rt-tokio"], version = "0.29" }
tracing               = "0.1"
tracing-opentelemetry = "0.30"
tracing-subscriber    = { features = ["env-filter", "json"], version = "0.3" }
# CLI
clap      = { features = ["derive", "env"], version = "4" }
indicatif = "0.17"
# Database
sqlx = { features = ["migrate", "runtime-tokio", "sqlite"], version = "0.8" }
# Embedded key-value store (zvec memory backend cache + file index)
redb = "2"
# Zvec vector database (memory backend)
# Packages renamed in v0.5.1: zvec→zvec-rust, zvec-sys→zvec-rust-sys.
zvec     = { git = "https://github.com/zvec-ai/zvec-rust", package = "zvec-rust", rev = "f8e81a1645db9e5004fddc2e3f2160e0a512bfce" }
zvec-sys = { git = "https://github.com/zvec-ai/zvec-rust", package = "zvec-rust-sys", rev = "f8e81a1645db9e5004fddc2e3f2160e0a512bfce" }
# HTTP client
reqwest = { features = ["form", "json", "multipart", "query", "socks", "stream"], version = "0.13" }
# UUID
uuid = { features = ["v4", "v5"], version = "1" }
# Async
async-stream = "0.3"
async-trait  = "0.1"
directories  = "6"
dotenvy      = "0.15"
futures      = "0.3"
futures-util = "0.3"
once_cell    = "1"
tokio-stream = "0.1"
tokio-test   = "0.4"
tokio-util   = "0.7"
# Config formats
serde_yaml        = "0.9"
tokio-tungstenite = "0.26"
toml              = "0.8"
toml_edit         = "0.22"
zip               = { default-features = false, features = ["deflate"], version = "2" }
# LLM provider crates (optional, behind feature flags)
async-openai    = { features = ["chat-completion"], version = "0.32" }
base64          = "0.22"
bytemuck        = { features = ["derive"], version = "1" }
bytes           = "1"
ed25519-dalek   = "2.2"
encoding_rs     = "0.8"
fd-lock         = "4"
genai           = "0.5"
json_schema_ast = "0.3.1"
# GraphQL
async-graphql       = "7"
async-graphql-axum  = "7"
gix                 = "0.83"
half                = "2"
hex                 = "0.4"
hmac                = "0.12"
jsonwebtoken        = { features = ["aws_lc_rs"], version = "10" }
libc                = "0.2"
llama-cpp-2         = "0.1"
matrix-sdk          = { default-features = false, features = ["e2e-encryption", "markdown", "native-tls", "sqlite"], version = "0.16" }
mockito             = "1.7"
nostr-relay-builder = { version = "0.44" }
nostr-sdk           = { features = ["nip04", "nip44", "nip59"], version = "0.44" }
open                = "5.3"
rand                = "0.10"
regex               = "1"
ring                = "0.17"
rustix              = { features = ["fs"], version = "1.1" }
secrecy             = { features = ["serde"], version = "0.8" }
serenity            = { features = ["cache", "client", "gateway", "model", "rustls_backend"], version = "0.12" }
sha1                = "0.10"
sha2                = "0.10"
slack-morphism      = { features = ["axum", "hyper"], version = "2.20" }
sled                = "0.34"
sysinfo             = "0.34"
teloxide            = { features = ["macros"], version = "0.17" }
# WhatsApp (sqlite-storage disabled to avoid libsqlite3-sys conflict with sqlx;
# re-enable once sqlx 0.9 stabilises).
wacore                         = { default-features = false, version = "0.6" }
wacore-binary                  = { default-features = false, version = "0.6" }
waproto                        = "0.6"
whatsapp-rust                  = { default-features = false, features = ["tokio-native", "tokio-runtime", "tokio-transport", "ureq-client"], version = "0.6" }
whatsapp-rust-tokio-transport  = "0.6"
whatsapp-rust-ureq-http-client = "0.6"
# QR code rendering
qrcode = "0.14"
# TLS / certificate generation
axum-server              = { features = ["tls-rustls"], version = "0.7" }
rcgen                    = "0.13"
rustls                   = { features = ["ring"], version = "0.23" }
rustls-pemfile           = "2"
rustls-platform-verifier = "0.6"
time                     = { features = ["serde-human-readable"], version = "0.3" }
tokio-rustls             = "0.26"
# Cryptography / authentication
argon2            = "0.5"
chacha20poly1305  = { features = ["std"], version = "0.10" }
p256              = "0.13"
password-hash     = "0.5"
subtle            = "2"
webauthn-rs       = "0.5"
webauthn-rs-proto = "0.5"
webbrowser        = "1.2"
# Web / HTTP utilities
dashmap     = "6"
hostname    = "0.4"
http        = "1"
hyper       = { features = ["client", "http1", "http2", "server"], version = "1" }
hyper-util  = { features = ["client-legacy", "http1", "http2", "server-auto", "service", "tokio"], version = "0.1" }
isahc       = "1.8"
ngrok       = "0.18"
tower       = "0.5"
tower-http  = "0.6"
url         = "2"
urlencoding = "2"
# Form bodies (application/x-www-form-urlencoded)
form_urlencoded = "1"
web-push        = "0.11"
# Metrics
metrics                     = "0.24"
metrics-exporter-prometheus = "0.16"
metrics-tracing-context     = "0.16"
# Content processing
html2text      = "0.16"
image          = { default-features = false, features = ["jpeg", "png", "webp"], version = "0.25" }
ipnet          = "2"
mdns-sd        = "0.18"
mime_guess     = "2"
pulldown-cmark = { default-features = false, version = "0.12" }
# Code splitting (tree-sitter based)
text-splitter          = { default-features = false, features = ["code"], version = "0.29" }
tree-sitter-bash       = "0.25"
tree-sitter-c          = "0.24"
tree-sitter-cpp        = "0.23"
tree-sitter-css        = "0.25"
tree-sitter-go         = "0.25"
tree-sitter-html       = "0.23"
tree-sitter-java       = "0.23"
tree-sitter-javascript = "0.25"
tree-sitter-json       = "0.24"
tree-sitter-md         = "0.5"
tree-sitter-python     = "0.25"
tree-sitter-ruby       = "0.23"
tree-sitter-rust       = "0.24"
tree-sitter-toml-ng    = "0.7"
tree-sitter-typescript = "0.23"
# Allocator
tikv-jemallocator = "0.6"
# Filesystem / archiving
cap-fs-ext            = "4.0.2"
cap-std               = "4.0.2"
chrono                = "0.4"
chrono-tz             = { features = ["serde"], version = "0.10" }
cron                  = "0.13"
dirs-next             = "2"
flate2                = "1"
globset               = "0.4"
grep-matcher          = "0.1"
grep-regex            = "0.1"
grep-searcher         = "0.1"
ignore                = "0.4"
include_dir           = "0.7"
json5                 = "0.4"
mail-parser           = "0.11.6"
notify-debouncer-full = "0.7"
pdf-extract           = "0.10"
portable-pty          = "0.9"
rstest                = "0.25"
serial_test           = "3"
shell-words           = "1"
tar                   = "0.4"
tempfile              = "3"
walkdir               = "2"
wasmtime              = { features = ["component-model"], version = "36" }
wasmtime-wasi         = "36"
which                 = "8"
wiremock              = "0.6"
wit-bindgen           = "0.41"
wit-bindgen-rt        = { features = ["bitflags"], version = "0.41" }
# CalDAV / iCalendar
hyper-rustls  = { features = ["http1", "native-tokio", "ring", "tls12"], version = "0.27" }
icalendar     = "0.17"
libdav        = "0.10"
tower-service = "0.3"
zeroize       = { features = ["derive"], version = "1" }

# Workspace crates
moltis                    = { path = "crates/cli" }
moltis-acp                = { path = "crates/acp" }
moltis-agents             = { path = "crates/agents" }
moltis-auth               = { path = "crates/auth" }
moltis-auto-reply         = { path = "crates/auto-reply" }
moltis-browser            = { path = "crates/browser" }
moltis-caldav             = { path = "crates/caldav" }
moltis-canvas             = { path = "crates/canvas" }
moltis-channels           = { path = "crates/channels" }
moltis-chat               = { path = "crates/chat" }
moltis-claude-import      = { path = "crates/claude-import" }
moltis-client             = { default-features = false, path = "crates/client" }
moltis-code-index         = { path = "crates/code-index" }
moltis-codex-import       = { path = "crates/codex-import" }
moltis-common             = { path = "crates/common" }
moltis-config             = { path = "crates/config" }
moltis-connector-caldav   = { path = "crates/connector-caldav" }
moltis-connector-gmail    = { path = "crates/connector-gmail" }
moltis-connector-himalaya = { path = "crates/connector-himalaya" }
moltis-connectors         = { path = "crates/connectors" }
moltis-cron               = { path = "crates/cron" }
moltis-discord            = { path = "crates/discord" }
moltis-external-agents    = { path = "crates/external-agents" }
moltis-gateway            = { default-features = false, path = "crates/gateway" }
moltis-graphql            = { path = "crates/graphql" }
moltis-hermes-import      = { path = "crates/hermes-import" }
moltis-home-assistant     = { path = "crates/home-assistant" }
moltis-httpd              = { default-features = false, path = "crates/httpd" }
moltis-import-core        = { path = "crates/import-core" }
moltis-matrix             = { path = "crates/matrix" }
moltis-mcp                = { path = "crates/mcp" }
moltis-mcp-agent-bridge   = { path = "crates/mcp-agent-bridge" }
moltis-media              = { path = "crates/media" }
moltis-memory             = { path = "crates/memory" }
moltis-memory-zvec        = { path = "crates/memory-zvec" }
moltis-metrics            = { path = "crates/metrics" }
moltis-msteams            = { path = "crates/msteams" }
moltis-netbird            = { path = "crates/netbird" }
moltis-network-filter     = { default-features = false, path = "crates/network-filter" }
moltis-node-host          = { path = "crates/node-host" }
moltis-nostr              = { path = "crates/nostr" }
moltis-oauth              = { path = "crates/oauth" }
moltis-observability      = { default-features = false, path = "crates/observability" }
moltis-onboarding         = { path = "crates/onboarding" }
moltis-openclaw-import    = { path = "crates/openclaw-import" }
moltis-plugins            = { path = "crates/plugins" }
moltis-portable           = { path = "crates/portable" }
moltis-projects           = { path = "crates/projects" }
moltis-protocol           = { path = "crates/protocol" }
moltis-provider-setup     = { path = "crates/provider-setup" }
moltis-providers          = { features = ["provider-kimi-code", "provider-openai-codex"], path = "crates/providers" }
moltis-qmd                = { path = "crates/qmd" }
moltis-routing            = { path = "crates/routing" }
moltis-schema-export      = { path = "crates/schema-export" }
moltis-secret-store       = { default-features = false, path = "crates/secret-store" }
moltis-service-traits     = { path = "crates/service-traits" }
moltis-sessions           = { path = "crates/sessions" }
moltis-signal             = { path = "crates/signal" }
moltis-skills             = { path = "crates/skills" }
moltis-slack              = { path = "crates/slack" }
moltis-splitter           = { path = "crates/splitter" }
moltis-swift-bridge       = { path = "crates/swift-bridge" }
moltis-tailscale          = { path = "crates/tailscale" }
moltis-telegram           = { path = "crates/telegram" }
moltis-telephony          = { path = "crates/telephony" }
moltis-tls                = { path = "crates/tls" }
moltis-tools              = { path = "crates/tools" }
moltis-vault              = { path = "crates/vault" }
moltis-voice              = { path = "crates/voice" }
moltis-web                = { default-features = false, path = "crates/web" }
moltis-webhooks           = { path = "crates/webhooks" }
moltis-whatsapp           = { path = "crates/whatsapp" }

[profile.release]
codegen-units = 1
lto           = "thin"
panic         = "abort"
strip         = true

# Build scripts and proc macros never ship, and recent macOS linkers leave a
# stripped proc-macro dylib unloadable ("mis-aligned LINKEDIT string pool").
[profile.release.build-override]
strip = false

[profile.swift-ci]
debug    = 0
inherits = "dev"
panic    = "abort"

[profile.dev]
debug = "line-tables-only"