Ctrl K
ComunidadGuías…

Cargo.toml

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

Archivo original ↗Preguntar a KiBot
[workspace]
resolver = "2"
# Patched third-party crates ([patch.crates-io]), not workspace members.
exclude = ["vendor"]

members = [
  "crates/access_requests",
  "crates/agent_api_keys",
  "crates/routines",
  "crates/routine_program",
  "crates/activity",
  "crates/agent", "crates/agent_changes", "crates/agent_egress", "crates/folds/agent_fold", "crates/folds/claude_fold", "crates/folds/codex_fold",
  "crates/agent_harness",
  "crates/trigger_context",
  "crates/agent_preview",
  "crates/agent_code_mode",
  "crates/agent_correlation",
  "crates/code_mode_assets",
  "crates/dynamic_ui",
  "crates/agent_inmem",
  "crates/agent_runtime_protocol", "crates/agent_session", "crates/agent_session_realtime",
  "crates/agent_trigger",
  "crates/ai_billing",
  "crates/ai_projections",
  "crates/ai_usage",
  "crates/attention_feed",
  "crates/bot_id",
  "crates/bot_token",
  "crates/bots",
  "crates/broadcast",
  "crates/calendar_events",
  "crates/calendar_scheduling",
  "crates/channel_bots",
  "crates/channel_labels",
  "crates/client/cache-core",
  "crates/client/cache-turso",
  "crates/client/cache-wasm",
  "crates/client/turso-opfs",
  "crates/coding_agent_worker",
  "crates/code_execution",
  "crates/cognition",
  "crates/codex_cloud_agents",
  "crates/codex_connection",
  "crates/connect_client",
  "crates/collab_surface",
  "crates/complete_graph",
  "crates/cowlike",
  "crates/crm",
  "crates/cursor_api_key",
  "crates/cursor_cloud_agents",
  "crates/jev",
  "crates/universal_input",
  "crates/database_sql",
  "crates/database_webhooks",
  "crates/databases",
  "crates/databases_sql",
  "crates/models_databases",
  "crates/forms",
  "crates/models_forms",
  "crates/embedding",
  "crates/image_generation",
  "crates/web_search",
  "crates/dictation",
  "crates/email_api_client",
  "crates/entity_mutation",
  "crates/entity_registry/entity_registry",
  "crates/entity_registry/entity_registry_db_utils",
  "crates/entity_registry/shared_entity_registry",
  "crates/favorites",
  "crates/feature_flags",
  "crates/foreign_entity",
  "crates/genai_telemetry",
  "crates/generic_email_domains",
  "crates/git_patch",
  "crates/gmail_client",
  "crates/google_token",
  "crates/graphql_activity",
  "crates/graphql_calendar",
  "crates/graphql_contacts",
  "crates/graphql_channel",
  "crates/graphql_common",
  "crates/graphql_databases",
  "crates/graphql_email",
  "crates/graphql_entity_mutation",
  "crates/graphql_favorite",
  "crates/graphql_crm",
  "crates/graphql_initiative",
  "crates/graphql_notification",
  "crates/graphql_notification_inbox",
  "crates/graphql_permission",
  "crates/graphql_properties",
  "crates/graphql_scheduled_action",
  "crates/graphql_soup",
  "crates/graphql_soup_filter_input",
  "crates/graphql_registered_work",
  "crates/graphql_work_feed",
  "crates/gtm_invite",
  "crates/computer_id",
  "crates/pairing_id",
  "crates/harness_id",
  "crates/harness_token",
  "crates/harnesses",
  "crates/incus_client",
  "crates/import",
  "crates/import_notion",
  "crates/import_tracker",
  "crates/import_linear",
  "crates/import_jira",
  "crates/initiative",
  "crates/initiative_description",
  "crates/item_filter_index",
  "crates/integration_tests/local_e2e",
  "crates/loops_client",
  "crates/macro_authorization",
  "crates/macro_config",
  "crates/macro_event_broker",
  "crates/macro_event_topics",
  "crates/macro_queues",
  "crates/macro_sync_service_jwt",
  "crates/maybe_send",
  "crates/memory",
  "crates/messages",
  "crates/model_owner",
  "crates/mcp_select",
  "crates/mcp_toolset",
  "crates/natural_time",
  "crates/notification_inbox",
  "crates/notification_state",
  "crates/pipedream_mcp",
  "crates/granola_sync",
  "crates/onboarding",
  "crates/ai_engine",
  "crates/docx_engine",
  "crates/fig_engine",
  "crates/pptx_engine",
  "crates/psd_engine",
  "crates/predicate_index",
  "crates/prompt",
  "crates/properties_service",
  "crates/reminders",
  "crates/search_service",
  "crates/subsequence_match",
  "crates/skills",
  "crates/slack_integration",
  "crates/soup_filter_cache_adapter",
  "crates/soup_filter_projection",
  "crates/soup_realtime",
  "crates/system_skills",
  "crates/system_status",
  "crates/task_dedup",
  "crates/unfurl",
  "crates/upstream_error",
  "crates/account_manager",
  "crates/user_api_key",
  "crates/user_language",
  "crates/webhook_signature",
  "crates/whatsapp_e2e",
  "crates/whatsapp_fake_server",
  "crates/external_chat",
  "crates/whatsapp_linked",
  "crates/whatsapp_store_pg",
  "crates/whatsmeow",
  "crates/whatsmeow_proto",
  "crates/whatsmeow_signal",
  "crates/work_feed",
  "crates/worker-rs-otel",
  "crates/workspace-hack",
  "services/agent_harness_service",
  "services/agent_trigger_service",
  "services/authentication_service",
  "services/calendar_service",
  "services/call_recording_preview_handler",
  "services/connection_gateway",
  "services/contacts_service",
  "services/convert_service",
  "services/dataloss_prevention_handler",
  "services/delete_chat_handler",
  "services/deleted_item_poller",
  "services/agent_harness_service/load-test",
  "services/document_storage_service",
  "services/document_text_extractor",
  "services/document_upload_finalizer_handler",
  "services/docx_unzip_handler",
  "services/email_focus_worker",
  "services/email_refresh_handler",
  "services/email_scheduled_handler",
  "services/email_service",
  "services/email_sfs_delete_handler",
  "services/email_suppression_handler",
  "services/image_optimizer",
  "services/image_proxy_service",
  "services/mcp_auth_proxy",
  "services/notification_retention_handler",
  "services/notification_service",
  "services/organization_retention_handler",
  "services/organization_retention_trigger",
  "crates/scheduled_action",
  "services/search_processing_service",
  "services/search_upload_handler",
  "services/sha_cleanup_worker",
  "services/slack_import_worker",
  "services/static_file_service",
  "crates/sync_router",
  "services/sync-service",
  "services/sync-service/bebop-schema",
  "services/unfurl_service",
  "services/upload_extractor_lambda_handler",
  "services/upload_extractor_lambda_trigger",
  "services/user_link_cleanup_handler",
  "services/whatsapp_session_service",
  "services/worker_trigger",
  "tooling/native_app_server",
  "tooling/notification_sandbox",
  "tooling/ai_billing_cli",
  "tooling/seed_cli",
  "tooling/xtask",
  "tooling/xtask/crates/*",
]

[workspace.dependencies]
macro_user_id = { path = "crates/macro_user_id" }
aes = "0.8.4"
aes-gcm = { version = "0.10.3", features = ["zeroize"] }
anyhow = "1.0.100"
apollo-compiler = "1"
apollo-parser = "0.8"
# Locally forked (see third_party/README.md). Defaults off so the fold's
# dependency chain stays wasm-reachable; whoever spawns an agent as a
# subprocess asks for `features = ["subprocess"]`.
# Pinned past the v2.0.0 tag to pick up wasm32 support (PR #294, merged to
# main but not yet in a tagged release):
# https://github.com/agentclientprotocol/rust-sdk/pull/294
# Swap back to a plain version once upstream cuts a release containing it.
agent-client-protocol = { git = "https://github.com/agentclientprotocol/rust-sdk", rev = "8769d16d10e0c9fa7e662ee18424a4313b06ea88", features = [
  "unstable_elicitation",
] }
arboard = { version = "3.6.1", default-features = false, features = ["wayland-data-control"] }
# Templates use built-in defaults; omit the unused config parser and basic-toml.
askama = { version = "0.14", default-features = false, features = ["derive", "std", "urlencode"] }
async-graphql = "7.2.1"
async-lock = "3"
async-openai = { version = "0.36.1", features = [
  "byot",
  "chat-completion",
  "completions",
  "embedding",
] }
async-stream = "0.3.6"
async-trait = "0.1.86"
automod = "1"
aws-config = { version = "1.8.16", features = ["behavior-version-latest"] }
aws-msk-iam-sasl-signer = "1.0.1"
# SDK defaults also enable the deprecated `rustls` feature, which pulls in
# rustls 0.21 / hyper 0.14. Keep the modern HTTPS client and the other defaults;
# macro_aws_config uses BehaviorVersion::latest() with this transport.
aws-sdk-dynamodb = { version = "1.111.0", default-features = false, features = ["default-https-client", "rt-tokio"] }
aws-sdk-ecs = { version = "1.124.0", default-features = false, features = ["default-https-client", "rt-tokio"] }
aws-sdk-kms = { version = "1.104.0", default-features = false, features = ["default-https-client", "rt-tokio"] }
aws-sdk-lambda = { version = "1.122.0", default-features = false, features = ["default-https-client", "rt-tokio"] }
aws-sdk-s3 = { version = "1.132.0", default-features = false, features = ["sigv4a", "http-1x", "default-https-client", "rt-tokio"] }
aws-sdk-secretsmanager = { version = "1.104.0", default-features = false, features = ["default-https-client", "rt-tokio"] }
aws-sdk-sesv2 = { version = "1.118.0", default-features = false, features = ["sigv4a", "default-https-client", "rt-tokio"] }
aws-sdk-sns = { version = "1.99.0", default-features = false, features = ["default-https-client", "rt-tokio"] }
aws-sdk-sqs = { version = "1.98.0", default-features = false, features = ["default-https-client", "rt-tokio"] }
aws-smithy-types = "1.4.7"
aws-types = "1"
aws_lambda_events = { version = "0.16.0", default-features = false }
axum = { version = "0.8", features = ["tower-log"] }
axum-extra = { version = "0.10" }
backoff = { version = "0.4.0", features = ["tokio"] }
base64 = "0.22.1"
bebop = "3.1.3"
brotli-decompressor = { version = "5.0.3", default-features = false, features = ["std"] }
cached = { version = "0.54.0", features = ["async_tokio_rt_multi_thread"] }
chrono = { version = "0.4.39", features = ["serde"] }
chrono-tz = { version = "0.10.4", features = ["serde"] }
clap = { version = "4.5.20", features = ["derive"] }
cloudfront_sign = "0.3.0"
cbc = { version = "0.1.2", features = ["std"] }
constant_time_eq = "0.3.1"
console_error_panic_hook = "0.1.7"
crossterm = "0.28"
cookie = "0.18.1"
cron = "0.16.0"
csv = "1"
dashmap = "6.1.0"
dateparser = "0.2.1"
determinator = "0.12.0"
dotenvy = "0.15.7"
ego-tree = "0.6.2"
either = "1"
eventsource-stream = "0.2.3"
flate2 = "1"
fractional_index = { version = "2.0.2", default-features = false }
futures = "0.3.31"
getrandom = "0.3"
gif = { version = "0.14", default-features = false, features = ["std"] }
glob = "0.3.3"
# Pinned engine for the generated dependency artifacts (used by the xtask
# graph/deps commands). This version lives in Cargo.lock, so dev machines and
# CI always run the identical generator; guppy is pinned to the version the
# hakari release is built against.
guppy = "0.17.24"
h2 = "0.4"
hex = "0.4.3"
hkdf = "0.12.4"
hmac = "0.12.1"
encoding_rs = "0.8"
http = "1"
http-body = "1.0.1"
http-body-util = "0.1.2"
httpdate = "1"
hyper = "1"
hyper-util = { version = "0.1", features = ["tokio"] }
# image's default formats minus "avif": its AVIF encoder pulls in rav1e, whose
# build script records whether it runs in CI, so rav1e and everything above it
# (attachment, image_optimizer, ...) compiled differently on developer machines
# and in CI. Nothing here decodes AVIF (that needs "avif-native"), so AVIF
# inputs already failed before reaching the encoder.
image = { version = "0.25", default-features = false, features = [
  "rayon", "bmp", "dds", "exr", "ff", "gif", "hdr", "ico", "jpeg", "png", "pnm",
  "qoi", "tga", "tiff", "webp",
] }
image-webp = "0.2"
indexmap = "2"
infer = "0.19.0"
indoc = "2"
inquire = "0.7"
itertools = "0.14"
jsonschema = { version = "0.58.6", default-features = false }
jsonwebtoken = { git = "https://github.com/whutchinson98/jsonwebtoken", features = [
  "rust_crypto",
] }
lambda_runtime = "0.13.0"
lazy-regex = "3.6.1"
lazy_static = "1.5.0"
libc = "0.2"
# Signal's curve25519 keys and XEdDSA; see crates/whatsmeow_signal/AGENTS.md.
libsignal-core = { git = "https://github.com/signalapp/libsignal", tag = "v0.105.2" }
livekit-api = { version = "0.4.16", default-features = false, features = [
  "access-token",
  "rustls-tls-webpki-roots",
  "services-tokio",
  "webhooks",
] }
livekit-protocol = "0.7.2"
log = "0.4.26"
logos = "0.16"
lol_html = "2.4.0"
loro = "1.16.2"
lru = "0.16"
md-5 = "0.10.6"
mimalloc = { version = "0.1", default-features = false }
miniz_oxide = { version = "0.8", features = ["with-alloc"] }
mockall = "0.13"
nutype = { version = "0.8.0", features = ["serde", "derive_unchecked"] }
nom = "8"
openssl-sys = "0.9"
opus-pure = "0.2.1"
opentelemetry = { version = "0.31.0", default-features = false }
opentelemetry-appender-tracing = { version = "0.31.1", default-features = false }
opentelemetry-http = { version = "0.31.0", default-features = false }
opentelemetry-otlp = { version = "0.31.0", default-features = false, features = [
  "grpc-tonic",
  "internal-logs",
  "logs",
  "metrics",
  "trace",
] }
opentelemetry_sdk = { version = "0.31.0", default-features = false }
ordered-float = "5"
paste = "1"
pdfium-render = { version = "0.8.37", default-features = false, features = [
  "pdfium_7543",
  "thread_safe",
] }
pgvector = { version = "0.4", features = ["postgres", "sqlx"] }
png = "0.18"
postcard = { version = "1", features = ["use-std"] }
pollster = "0.4"
progenitor-client = "0.15.1"
proptest = { version = "1.11", default-features = false, features = ["std"] }
prost = "0.14"
prost-build = "0.14"
protox = "0.10"
quote = "1"
rand = "0.9.0"
ratatui = "0.29"
# uses vendored to fix lambda builds failing.
rdkafka = { version = "0.37", default-features = false, features = [
  "cmake-build",
  "libz-static",
  "ssl-vendored",
  "tokio",
] }
readonly = "0.2"
recursion = "0.5.4"
redis = "1.0.3"
regex = "1.11.1"
reqwest = { version = "0.13", default-features = false, features = [
  "form",
  "hickory-dns",
  "json",
  "rustls",
] }
rmcp = "3.9.0"
skrifa = { version = "0.48", default-features = false, features = ["std"] }
sse-stream = "0.2"
rootcause = { version = "0.12", features = ["compat-anyhow1"] }
rustls = { version = "0.23.46", default-features = false, features = ["aws_lc_rs"] }
# Mirrors the ACP SDK's own declaration: `coding_agent_worker` ports its
# process-group kill and makes the same call.
rustix = { version = "1", default-features = false, features = ["process", "std"] }
rootcause-tracing = "0.12.1"
schemars = { version = "1.0.4", features = ["chrono04", "uuid1"] }
semver = { version = "1", features = ["serde"] }
ruzstd = { version = "0.9.1", default-features = false, features = ["std"] }
serde = { version = "1.0.214", features = ["derive"] }
serde-wasm-bindgen = "0.6"
serde_dynamo = { version = "4", features = ["aws-sdk-dynamodb+1"] }
serde_path_to_error = "0.1.20"
serde_json = { version = "1.0.132" }
serde_repr = "0.1"
serde_with = { version = "3.12.0", features = ["base64"] }
serde_yaml = "0.9"
shell-words = "1.1.1"
specta = { version = "=2.0.0-rc.25", features = ["derive"] }
specta-serde = "=0.0.12"
specta-typescript = "=0.0.12"
sha2 = "0.10.8"
sqlx = { version = "0.8.6", features = [
  "chrono",
  "postgres",
  "runtime-tokio-rustls",
  "uuid",
] }
sqlx-core = { version = "0.8.6" }
sse-core = { version = "0.2.3", default-features = false, features = ["std"] }
strsim = "0.11"
strum = { version = "0.27.1", features = ["derive"] }
symphonia = { version = "0.6.1", default-features = false, features = [
  "isomp4",
  "mkv",
  "ogg",
  "wav",
] }
tar = "0.4.46"
tempfile = "3"
thiserror = "2.0.0"
time = "0.3.37"
tiny-skia = { version = "0.11.4", default-features = false, features = ["simd", "std"] }
tokio = { version = "1.43.0", features = ["macros", "rt-multi-thread"] }
tokio-retry = { version = "0.3.2", default-features = false }
tokio-rustls = { version = "0.26", default-features = false, features = ["aws_lc_rs"] }
tokio-stream = { version = "0.1.17" }
tokio-tungstenite = { version = "0.28", default-features = false, features = [
  "connect",
  "rustls-tls-webpki-roots",
] }
# Signal's compression fork is based on tungstenite 0.27. Keep its Tokio
# adapter separate from the upstream sockets used elsewhere in the workspace.
tokio-tungstenite-signal = { package = "tokio-tungstenite", version = "0.27", default-features = false, features = ["handshake"] }
tungstenite-signal = { package = "tungstenite", version = "0.27", default-features = false, features = ["handshake", "deflate"] }
tokio-util = "0.7.13"
tower = { version = "0.5.1", features = ["util"] }
tower-service = "0.3"
tower-http = { version = "0.6.1", features = [
  "compression-gzip",
  "cors",
  "trace",
] }
toml = "0.8"
toml_edit = "0.22"
tracing = "0.1.44"
tracing-opentelemetry = "0.32.1"
tracing-subscriber = { version = "0.3.22", features = ["env-filter", "json"] }
tracing-tree = "0.4.0"
tui-input = { version = "0.14.0", default-features = false }
# Pin the official upstream revision used by the browser cache. Cache writes use
# deferred transactions so browser WASM does not initialize Turso's temp database.
turso_core = { git = "https://github.com/tursodatabase/turso", rev = "79163249538197d01dec5ea7f65519454ed792e2", default-features = false }
tungstenite = { version = "0.28", features = ["url"] }
urlencoding = "2.1.3"
utoipa = { version = "5.4.0", features = [
  "axum_extras",
  "chrono",
  "repr",
  "uuid",
] }
# debug-embed: debug builds embed Swagger UI instead of compiling in the
# absolute build-directory path they would read it from at runtime, which made
# the crate and every service above it differ per checkout.
utoipa-swagger-ui = { version = "9", features = ["axum", "vendored", "debug-embed"] }
uuid = { version = "1.15.1", features = ["fast-rng", "serde", "v4", "v5", "v7"] }
webpki-roots = "1.0.10"
wiremock = "0.6.5"
zeroize = "1.8.2"
zune-core = "0.5"
zune-jpeg = { version = "0.5", default-features = false, features = ["std"] }
# worker-build (see services/sync-service/wrangler.toml) refuses to build against
# anything older than 0.2.123, so keep this floor above that.
wasm-bindgen = "0.2.123"
wasm-bindgen-futures = "0.4"
wasm-bindgen-test = "0.3"
web-sys = "0.3"
web-time = "1.1.0"
webbrowser = { version = "=1.2.2", features = ["hardened"] }
windows-sys = "0.61"
worker = "0.8.1"
x25519-dalek = { version = "2.0.1", features = ["static_secrets"] }
# this is pinned to match axum 0.7.9 dependency requirements
async-stripe = { version = "0.41", default-features = false, features = [
  "billing",
  "checkout",
  "runtime-tokio-hyper",
] }
axum-macros = "0.5"
bytes = "1.11.1"
doppleganger = "0.5"
doppler-config = "0.1.2"
js-sys = "0.3"
scraper = "0.18"
serde_urlencoded = "0.7.1"
strum_macros = "0.27.1"
unicode-segmentation = "1.9.0"
url = "2.5.0"
zip = { version = "9.0.5", default-features = false, features = [
  "aes-crypto",
  "bzip2",
  "deflate",
  "deflate64",
  "lzma",
  "time",
  "xz",
  "zstd",
] }
ammonia = "4.1.8"
html-escape = "0.2"
subtle = "2.6.1"

[patch.crates-io]
# Only replaces tungstenite 0.27 (GraphQL subscriptions); 0.28/0.29 stay upstream.
tungstenite = { git = "https://github.com/signalapp/tungstenite-rs", rev = "a1837ccfe96b6895a57352d7f0112e4557516c27" }
# Writes a checkout-independent embed folder; see vendor/utoipa-swagger-ui/README-MACRO.md.
utoipa-swagger-ui = { path = "vendor/utoipa-swagger-ui" }

# cache-turso's storage tests load thousands of rows into the embedded SQL engine
# to assert VM step budgets. Unoptimized, the engine made them the slowest tests
# in the Rust suite (34 s for the crate); at opt-level 2 the crate's tests take
# 2.6 s. The assertions count VM steps, which optimization does not change.
[profile.dev.package.turso_core]
opt-level = 2

[profile.dev.package.turso_parser]
opt-level = 2

[profile.dev.package.turso_ext]
opt-level = 2

# Retain Rust DWARF for local cache profiling while keeping release-level LLVM
# optimization. wasm-pack's custom profile metadata prevents the final
# wasm-opt pass from discarding or rewriting these locations.
[profile.cache-wasm-profiling]
inherits = "release"
debug = 2
strip = "none"

# The Cloudflare sync worker is size-sensitive. Package manifests cannot own
# profiles once they are workspace members, so keep its former release profile
# here without changing release optimization for the backend services.

[profile.sync-service-release]
inherits = "release"
lto = true
opt-level = "s"

# The fig engine's browser build (apps/web `build-fig-engine-wasm`): one
# codegen unit and full LTO, so its rasterizing loops inline across crates.
[profile.fig-engine-wasm]
inherits = "release"
lto = "fat"
codegen-units = 1

[profile.psd-engine-wasm]
inherits = "release"
lto = "fat"
codegen-units = 1

[profile.ai-engine-wasm]
inherits = "release"
lto = "fat"
codegen-units = 1