tawasuyu

tawasuyu/agora

> Public square. Federated identity and a trust graph that no one runs.

Rust 76Markdown 49TOML 211529 Definitions

⎇ d0638350bf39c350b2d1d1858a8c8eb962240fa5 Cargo.toml TOML · 658 lines · 37.6 KB History raw

feat: agora standalone — front-door de identidad federada y grafo de confianza d0638350b · Sergio ·

1# Cargo.toml raíz STANDALONE de agora — front-door público.
2# GENERADO por scripts/actualizar-standalone.py desde el monorepo tawasuyu.git
3# (v0.2.0). No editar a mano: se regenera. Lo fundacional se consume por
4# git-dep al tag; sólo el código del dominio vive en este repo.
5[workspace]
6resolver = "2"
7
8# ============================================================
9# Cuadrantes — agregar a medida que se migran
10# ============================================================
11members = [
12    "03_ukupacha/agora/agora-app",
13    "03_ukupacha/agora/agora-ayllu",
14    "03_ukupacha/agora/agora-channel",
15    "03_ukupacha/agora/agora-cli",
16    "03_ukupacha/agora/agora-confianza",
17    "03_ukupacha/agora/agora-core",
18    "03_ukupacha/agora/agora-dispositivo",
19    "03_ukupacha/agora/agora-gossip",
20    "03_ukupacha/agora/agora-graph",
21    "03_ukupacha/agora/agora-keystore",
22    "03_ukupacha/agora/agora-net-brahman",
23    "03_ukupacha/agora/agora-petnames",
24    "03_ukupacha/agora/agora-store",
25]
26
27# `wawa/` se excluye del workspace global porque corre en target
28# `x86_64-unknown-none` y `panic = "abort"`, incompatibles con los
29# perfiles globales. Los crates compartidos se referencian por `path`
30# cruzando la frontera.
31
32[workspace.package]
33version = "0.1.0"
34edition = "2021"
35rust-version = "1.80"
36license = "MIT"
37authors = ["Sergio <gerencia@jlsoltech.com>"]
38publish = false
39repository = "https://git.tawasuyu.net/tawasuyu/agora"
40
41[workspace.dependencies]
42# === Configuración declarativa (vocabulario de esquemas) ===
43allichay = { git = "https://git.tawasuyu.net/tawasuyu/tawasuyu.git", tag = "v0.2.0" }
44marca = { git = "https://git.tawasuyu.net/tawasuyu/tawasuyu.git", tag = "v0.2.0" }
45# Telemetría local de desarrollo (stderr+panics+tracing → $XDG_STATE_HOME/tawasuyu/<dominio>/<bin>.log)
46bitacora = { git = "https://git.tawasuyu.net/tawasuyu/tawasuyu.git", tag = "v0.2.0" }
47# default = [] (núcleo liviano sin vello); `bake` es opt-in. Declaramos
48# default-features = false aquí para que el `default-features = false` de los
49# consumidores (splash/greeter/compositor) se honre y no quede el warning.
50mirada-fondo = { git = "https://git.tawasuyu.net/tawasuyu/tawasuyu.git", tag = "v0.2.0" }
51mirada-teclado-core = { git = "https://git.tawasuyu.net/tawasuyu/tawasuyu.git", tag = "v0.2.0" }
52mirada-teclado-widget = { git = "https://git.tawasuyu.net/tawasuyu/tawasuyu.git", tag = "v0.2.0" }
53# === Registro de apps / menú global ===
54app-bus = { git = "https://git.tawasuyu.net/tawasuyu/tawasuyu.git", tag = "v0.2.0" }
55app-iconset = { git = "https://git.tawasuyu.net/tawasuyu/tawasuyu.git", tag = "v0.2.0" }
56# === Centro de eventos (notificaciones + capturas + clipboard + …) ===
57willay-core = { git = "https://git.tawasuyu.net/tawasuyu/tawasuyu.git", tag = "v0.2.0" }
58willay-checkpoint = { git = "https://git.tawasuyu.net/tawasuyu/tawasuyu.git", tag = "v0.2.0" }
59willay-hilo = { git = "https://git.tawasuyu.net/tawasuyu/tawasuyu.git", tag = "v0.2.0" }
60willay-store = { git = "https://git.tawasuyu.net/tawasuyu/tawasuyu.git", tag = "v0.2.0" }
61willay-emit = { git = "https://git.tawasuyu.net/tawasuyu/tawasuyu.git", tag = "v0.2.0" }
62rag-motor = { git = "https://git.tawasuyu.net/tawasuyu/tawasuyu.git", tag = "v0.2.0" }
63churay-core = { git = "https://git.tawasuyu.net/tawasuyu/tawasuyu.git", tag = "v0.2.0" }
64churay-welcome = { git = "https://git.tawasuyu.net/tawasuyu/tawasuyu.git", tag = "v0.2.0" }
65churay-welcome-runner = { git = "https://git.tawasuyu.net/tawasuyu/tawasuyu.git", tag = "v0.2.0" }
66# === Puente de drag-and-drop compositor → app (suple winit en Wayland) ===
67drop-bridge = { git = "https://git.tawasuyu.net/tawasuyu/tawasuyu.git", tag = "v0.2.0" }
68# === Serialización ===
69serde = { version = "1", features = ["derive"] }
70serde_json = "1"
71lsp-types = "0.97"
72serde-big-array = "0.5"
73postcard = { version = "1", features = ["use-std"] }
74toml = "0.8"
75ron = "0.8"
76bincode = "1"
77base64 = "0.22"
78
79# === Errores ===
80thiserror = "2"           # bump uniforme; arje (era 1) puede requerir ajustes menores
81anyhow = "1"
82
83# === Async ===
84tokio = { version = "1", features = ["full"] }
85tokio-util = { version = "0.7", features = ["compat"] }
86async-trait = "0.1"
87futures = "0.3"
88
89# === Observabilidad ===
90tracing = "0.1"
91tracing-subscriber = { version = "0.3", features = ["env-filter", "fmt"] }
92
93# === Linux primitives (arje) ===
94nix = { version = "0.29", features = ["signal", "process", "sched", "mount", "fs", "socket", "net", "user", "reboot"] }
95libc = "0.2"
96# DRM/KMS legacy (dumb buffer) para el splash nativo del arranque sin parpadeo.
97# Misma versión que reexporta smithay (mirada-compositor) — el lock ya la fija.
98drm = "0.14"
99font8x8 = { version = "0.3", default-features = false }
100
101# === IDs / Hash / Crypto ===
102ulid = { version = "1", features = ["serde"] }
103uuid = { version = "1", features = ["v4", "rng-getrandom"] }
104sha2 = "0.10"
105blake3 = "1.5"
106ed25519-dalek = "2"
107aes-gcm = "0.10"
108chacha20poly1305 = "0.10"
109argon2 = "0.5"
110rand = "0.8"
111
112# === WASM (arje) ===
113# wasmi 1.0: unifica la versión con wawa (su kernel ya corre 1.0), para
114# que el ABI WASM del host sea idéntico en Linux y en bare-metal.
115wasmi = "1.0"
116wat = "1"
117# wasmtime 46 (Fase 1 del pipeline JS): tier 0 de puriy-js pasa de wasmi
118# (intérprete) a Wasmtime AOT (Cranelift → nativo) en Linux — quita la doble
119# interpretación de QuickJS.wasm. En wawa bare-metal el runtime es Pulley (spike
120# Q1 cerrado); mismo crate, distinto backend.
121wasmtime = "46"
122
123# === Storage / DB ===
124sled = "0.34"
125rusqlite = { version = "0.31", features = ["bundled", "blob"] }
126
127# === Ingesta de documentos (iniy-ingest: PDF / EPUB) ===
128pdf-extract = "0.7"
129epub = "2.1"
130
131# === Bulk import Wikipedia (iniy-wiki dump) ===
132bzip2 = "0.4"
133
134# === Compresión (minga multi-bundle) ===
135zstd = "0.13"
136xz2 = "0.1"
137# Contenedores adicionales del visor Archive de nahual (sólo listado).
138sevenz-rust = "0.6"
139unrar = "0.5"
140
141# === HTTP server (iniy-server) ===
142axum = "0.7"
143tower = "0.5"
144
145# === ANN sobre embeddings (iniy nli --ann) ===
146instant-distance = "0.6"
147
148# === P2P (minga) ===
149libp2p = { version = "0.56", features = ["tokio", "tcp", "dns", "noise", "yamux", "macros", "kad", "identify", "relay", "dcutr", "autonat", "mdns"] }
150libp2p-stream = "=0.4.0-alpha"
151libp2p-allow-block-list = "0.6"
152
153# === SSH (ssh, sandokan RemoteEngine, matilda) ===
154russh = "0.54"
155
156# === Math determinista cross-platform (dominium) ===
157libm = "0.2"
158
159# === SMF (takiy-midi) ===
160# midly: parser/emitter SMF tipo 0/1, no_std-friendly, sin allocs en hot path.
161midly = "0.5"
162
163# === Code parsing (minga) ===
164# `wayland-data-control` trae el backend wl-clipboard-rs: bajo mirada (Wayland
165# propio, sin Xwayland para apps nativas) arboard-x11 fallaba a no-op silencioso
166# y el clipboard de los text-editor quedaba muerto. Con la feature habla
167# zwlr_data_control_manager_v1 (que mirada expone) y cae a X11 si no hay Wayland.
168arboard = { version = "3", features = ["wayland-data-control"] }
169ropey = "1.6"
170tree-sitter = "0.24"
171tree-sitter-rust = "0.23"
172tree-sitter-python = "0.23"
173tree-sitter-typescript = "0.23"
174tree-sitter-javascript = "0.23"
175tree-sitter-go = "0.23"
176
177# === FS notify ===
178notify = "6.1"
179
180# === Grafos (iniy, nakui-core ya lo usa directo en 0.6) ===
181petgraph = "0.6"
182
183# === Image decoding (nahual-image-viewer-llimphi) ===
184# default-features = false: nos quedamos con PNG + JPEG + WebP (lossless).
185# tullpu-render exporta a las tres; AVIF/TIFF/… los habilitamos si una app
186# los pide específicamente.
187# Decoders puro-Rust baratos; avif queda fuera (arrastra dav1d/rav1e).
188image = { version = "0.25", default-features = false, features = ["png", "jpeg", "webp", "gif", "bmp", "ico", "tiff", "tga", "qoi"] }
189# ONNX Runtime para los proveedores de píxel reales (pixel-verbo-onnx: segmentación
190# u2net/isnet, inpaint, restyle…). `download-binaries` (default) baja el runtime nativo
191# solo; ya lo arrastraba fastembed (rimay-verbo) transitivo — aquí lo declaramos directo.
192ort = "2.0.0-rc.9"
193
194# Rasterizador vectorial CPU (relleno/trazo anti-aliased) para capas vectoriales de tullpu.
195tiny-skia = "0.11"
196# Booleanos de polígonos robustos (union/intersection/difference/xor) para el
197# clipper vectorial de tullpu — restar/intersecar paths que se solapan
198# parcialmente, que la regla de relleno no expresa. Ya estaba en el lock.
199geo = "0.28"
200
201# === FUSE (minga-vfs) ===
202# default-features = false: prescinde de pkg-config/libfuse-dev en build.
203# El montaje pasa a ser Rust puro (vía el helper `fusermount3` en runtime).
204fuser = { version = "0.15", default-features = false }
205
206# === CLI / auth (minga) ===
207clap = { version = "4", features = ["derive"] }
208rpassword = "7"
209
210# === PAM (auth-core) ===
211pam = "0.8"
212
213# === D-Bus (arje compat) ===
214zbus = { version = "4", default-features = false, features = ["tokio"] }
215
216# === Tests ===
217tempfile = "3"
218
219# === Llimphi (motor gráfico soberano) ===
220# wgpu sobre Vulkan/Metal/DX12, winit para ventana en dev Linux.
221# raw-window-handle 0.6 alinea winit 0.30 con wgpu 27.
222# vello 0.7 = rasterizador vectorial sobre wgpu 27 (renderer GPU "wgpu" + opt-in "hybrid" CPU+GPU).
223# taffy 0.9 = motor Flexbox/Grid puro Rust (ya pulled por transitivos, lo alineamos).
224# parley 0.6 = shaping/layout de texto compatible con peniko 0.6 (que vello 0.7 expone).
225wgpu = "27"
226winit = "0.30"
227raw-window-handle = "0.6"
228pollster = "0.4"
229vello = "0.7"
230# Renderer hybrid CPU+GPU sin compute shaders (mejor compat WebGL2/Adreno viejas).
231# Opt-in; el renderer "wgpu" sigue siendo el default.
232vello_hybrid = "0.0.9"
233# foreign-lottie = fork vendorizado de velato 0.9 (Lottie → vello::Scene),
234# completado para no paniquear ante features no soportadas. Lo consume
235# llimphi-lottie. Ver shared/foreign-lottie.
236foreign-lottie = { git = "https://git.tawasuyu.net/tawasuyu/tawasuyu.git", tag = "v0.2.0" }
237# Árbol de accesibilidad para lectores de pantalla (NVDA/VoiceOver/Orca/TalkBack).
238# Lo consume el runtime de Llimphi (iter 2/3 del plan AccessKit); el modelo
239# `SemanticsSpec` del compositor es independiente de estas crates.
240accesskit = "0.24"
241accesskit_winit = "0.33"
242taffy = "0.9"
243# parley = shaping completo (bidi, ligatures, fallback CJK/emoji vía fontique, line break).
244parley = "0.6"
245# Bucle Elm (input→update→view→layout→raster→present). Lo consumen las apps.
246llimphi-ui = { git = "https://git.tawasuyu.net/tawasuyu/tawasuyu.git", tag = "v0.2.0" }
247# Tier 3 — apps WASM con UI Llimphi real. El guest pinta un WireNode (IR
248# serializable), el host (runner) lo materializa en View<Msg> y rebota los
249# eventos al update del guest. SDK = lado guest, runner = lado host.
250llimphi-wire-view = { git = "https://git.tawasuyu.net/tawasuyu/tawasuyu.git", tag = "v0.2.0" }
251llimphi-wasm-app-sdk = { git = "https://git.tawasuyu.net/tawasuyu/tawasuyu.git", tag = "v0.2.0" }
252llimphi-wasm-runner = { git = "https://git.tawasuyu.net/tawasuyu/tawasuyu.git", tag = "v0.2.0" }
253# Núcleo puro de distribución (CAS + verificación + resolve), SIN runner/GPU.
254llimphi-wasm-core = { git = "https://git.tawasuyu.net/tawasuyu/tawasuyu.git", tag = "v0.2.0" }
255# Cara con baterías: re-exporta core + puente al runner para correr la app.
256llimphi-wasm-dist = { git = "https://git.tawasuyu.net/tawasuyu/tawasuyu.git", tag = "v0.2.0" }
257llimphi-wasm-open = { git = "https://git.tawasuyu.net/tawasuyu/tawasuyu.git", tag = "v0.2.0" }
258llimphi-wasm-registry = { git = "https://git.tawasuyu.net/tawasuyu/tawasuyu.git", tag = "v0.2.0" }
259llimphi-wasm-wasi = { git = "https://git.tawasuyu.net/tawasuyu/tawasuyu.git", tag = "v0.2.0" }
260# Transporte P2P del bytecode por hash sobre BrahmanNet (card-net).
261llimphi-wasm-net = { git = "https://git.tawasuyu.net/tawasuyu/tawasuyu.git", tag = "v0.2.0" }
262llimphi-3d = { git = "https://git.tawasuyu.net/tawasuyu/tawasuyu.git", tag = "v0.2.0" }
263# Runner wlr-layer-shell: corre un `App` de Llimphi como barra anclada a un
264# borde (no como ventana), reusando la plumbing sctk+wgpu que pata probó.
265llimphi-layer = { git = "https://git.tawasuyu.net/tawasuyu/tawasuyu.git", tag = "v0.2.0" }
266# Paleta semántica compartida por las apps y los widgets.
267llimphi-theme = { git = "https://git.tawasuyu.net/tawasuyu/tawasuyu.git", tag = "v0.2.0" }
268# Tweens y helpers de animación sobre el bucle Elm.
269llimphi-motion = { git = "https://git.tawasuyu.net/tawasuyu/tawasuyu.git", tag = "v0.2.0" }
270# Máquina de estados de animación (estilo Rive) clip-agnóstica. Núcleo puro;
271# el render lo cablea el consumidor (llimphi-lottie). Escalón sobre el playback.
272llimphi-anim = { git = "https://git.tawasuyu.net/tawasuyu/tawasuyu.git", tag = "v0.2.0" }
273# Studio de animación «rive»: además del editor (bin), expone como lib los
274# documentos serializables (Doc + RigDoc + Project) que carga mirada-fondo.
275llimphi-anim-studio = { git = "https://git.tawasuyu.net/tawasuyu/tawasuyu.git", tag = "v0.2.0" }
276# Render de mallas deformables (skel::Mesh) a vello Scene: vectorial y texturizada.
277llimphi-mesh = { git = "https://git.tawasuyu.net/tawasuyu/tawasuyu.git", tag = "v0.2.0" }
278# Iconos vectoriales (BezPath en grid 24×24) compartidos por todas las apps.
279llimphi-icons = { git = "https://git.tawasuyu.net/tawasuyu/tawasuyu.git", tag = "v0.2.0" }
280# Puente fino vello_svg → Llimphi para SVG arbitrario (íconos .desktop, logos).
281llimphi-svg = { git = "https://git.tawasuyu.net/tawasuyu/tawasuyu.git", tag = "v0.2.0" }
282# Puente fino velato (Lottie) → Llimphi para animación vectorial autorada (.json).
283llimphi-lottie = { git = "https://git.tawasuyu.net/tawasuyu/tawasuyu.git", tag = "v0.2.0" }
284llimphi-image = { git = "https://git.tawasuyu.net/tawasuyu/tawasuyu.git", tag = "v0.2.0" }
285# Decodificador de protocolos de gráficos de terminal (kitty/sixel) → RGBA.
286llimphi-term-graphics = { git = "https://git.tawasuyu.net/tawasuyu/tawasuyu.git", tag = "v0.2.0" }
287# Widgets reusables sobre llimphi-ui — uno por crate.
288llimphi-widget-app-header = { git = "https://git.tawasuyu.net/tawasuyu/tawasuyu.git", tag = "v0.2.0" }
289llimphi-widget-banner = { git = "https://git.tawasuyu.net/tawasuyu/tawasuyu.git", tag = "v0.2.0" }
290llimphi-widget-button = { git = "https://git.tawasuyu.net/tawasuyu/tawasuyu.git", tag = "v0.2.0" }
291llimphi-widget-rive-button = { git = "https://git.tawasuyu.net/tawasuyu/tawasuyu.git", tag = "v0.2.0" }
292llimphi-widget-card = { git = "https://git.tawasuyu.net/tawasuyu/tawasuyu.git", tag = "v0.2.0" }
293llimphi-clipboard = { git = "https://git.tawasuyu.net/tawasuyu/tawasuyu.git", tag = "v0.2.0" }
294llimphi-widget-context-menu = { git = "https://git.tawasuyu.net/tawasuyu/tawasuyu.git", tag = "v0.2.0" }
295llimphi-widget-edit-menu = { git = "https://git.tawasuyu.net/tawasuyu/tawasuyu.git", tag = "v0.2.0" }
296llimphi-widget-menubar = { git = "https://git.tawasuyu.net/tawasuyu/tawasuyu.git", tag = "v0.2.0" }
297llimphi-widget-list = { git = "https://git.tawasuyu.net/tawasuyu/tawasuyu.git", tag = "v0.2.0" }
298llimphi-widget-grid = { git = "https://git.tawasuyu.net/tawasuyu/tawasuyu.git", tag = "v0.2.0" }
299llimphi-widget-table = { git = "https://git.tawasuyu.net/tawasuyu/tawasuyu.git", tag = "v0.2.0" }
300llimphi-widget-color-picker = { git = "https://git.tawasuyu.net/tawasuyu/tawasuyu.git", tag = "v0.2.0" }
301llimphi-widget-slider = { git = "https://git.tawasuyu.net/tawasuyu/tawasuyu.git", tag = "v0.2.0" }
302llimphi-widget-scroll = { git = "https://git.tawasuyu.net/tawasuyu/tawasuyu.git", tag = "v0.2.0" }
303llimphi-widget-lazy-list = { git = "https://git.tawasuyu.net/tawasuyu/tawasuyu.git", tag = "v0.2.0" }
304llimphi-widget-splitter = { git = "https://git.tawasuyu.net/tawasuyu/tawasuyu.git", tag = "v0.2.0" }
305llimphi-widget-stat-card = { git = "https://git.tawasuyu.net/tawasuyu/tawasuyu.git", tag = "v0.2.0" }
306llimphi-widget-tabs = { git = "https://git.tawasuyu.net/tawasuyu/tawasuyu.git", tag = "v0.2.0" }
307llimphi-module-allichay = { git = "https://git.tawasuyu.net/tawasuyu/tawasuyu.git", tag = "v0.2.0" }
308llimphi-module-command-palette = { git = "https://git.tawasuyu.net/tawasuyu/tawasuyu.git", tag = "v0.2.0" }
309llimphi-module-diff-viewer = { git = "https://git.tawasuyu.net/tawasuyu/tawasuyu.git", tag = "v0.2.0" }
310llimphi-module-fif = { git = "https://git.tawasuyu.net/tawasuyu/tawasuyu.git", tag = "v0.2.0" }
311llimphi-module-file-picker = { git = "https://git.tawasuyu.net/tawasuyu/tawasuyu.git", tag = "v0.2.0" }
312llimphi-module-bookmarks = { git = "https://git.tawasuyu.net/tawasuyu/tawasuyu.git", tag = "v0.2.0" }
313llimphi-module-mini-map = { git = "https://git.tawasuyu.net/tawasuyu/tawasuyu.git", tag = "v0.2.0" }
314llimphi-module-shuma-term = { git = "https://git.tawasuyu.net/tawasuyu/tawasuyu.git", tag = "v0.2.0" }
315llimphi-module-symbol-outline = { git = "https://git.tawasuyu.net/tawasuyu/tawasuyu.git", tag = "v0.2.0" }
316llimphi-plugin-host = { git = "https://git.tawasuyu.net/tawasuyu/tawasuyu.git", tag = "v0.2.0" }
317llimphi-widget-theme-switcher = { git = "https://git.tawasuyu.net/tawasuyu/tawasuyu.git", tag = "v0.2.0" }
318llimphi-widget-text-area = { git = "https://git.tawasuyu.net/tawasuyu/tawasuyu.git", tag = "v0.2.0" }
319llimphi-widget-text-editor-core = { git = "https://git.tawasuyu.net/tawasuyu/tawasuyu.git", tag = "v0.2.0" }
320llimphi-widget-text-editor = { git = "https://git.tawasuyu.net/tawasuyu/tawasuyu.git", tag = "v0.2.0" }
321llimphi-widget-text-editor-lsp = { git = "https://git.tawasuyu.net/tawasuyu/tawasuyu.git", tag = "v0.2.0" }
322llimphi-widget-text-input = { git = "https://git.tawasuyu.net/tawasuyu/tawasuyu.git", tag = "v0.2.0" }
323llimphi-widget-tiled = { git = "https://git.tawasuyu.net/tawasuyu/tawasuyu.git", tag = "v0.2.0" }
324llimphi-widget-nodegraph = { git = "https://git.tawasuyu.net/tawasuyu/tawasuyu.git", tag = "v0.2.0" }
325llimphi-widget-tree = { git = "https://git.tawasuyu.net/tawasuyu/tawasuyu.git", tag = "v0.2.0" }
326grafo-nav = { git = "https://git.tawasuyu.net/tawasuyu/tawasuyu.git", tag = "v0.2.0" }
327llimphi-widget-navigator = { git = "https://git.tawasuyu.net/tawasuyu/tawasuyu.git", tag = "v0.2.0" }
328llimphi-widget-detail-table = { git = "https://git.tawasuyu.net/tawasuyu/tawasuyu.git", tag = "v0.2.0" }
329llimphi-widget-select = { git = "https://git.tawasuyu.net/tawasuyu/tawasuyu.git", tag = "v0.2.0" }
330llimphi-widget-terminal = { git = "https://git.tawasuyu.net/tawasuyu/tawasuyu.git", tag = "v0.2.0" }
331# Sello vectorial wawa (rombo + W implícita + Merkle Core).
332llimphi-widget-wawa-mark = { git = "https://git.tawasuyu.net/tawasuyu/tawasuyu.git", tag = "v0.2.0" }
333# Widgets de elegancia transversal (tooltip, spinner, progress, toast,
334# modal, empty, status-bar, shortcuts-help, splash).
335llimphi-widget-tooltip = { git = "https://git.tawasuyu.net/tawasuyu/tawasuyu.git", tag = "v0.2.0" }
336llimphi-widget-spinner = { git = "https://git.tawasuyu.net/tawasuyu/tawasuyu.git", tag = "v0.2.0" }
337llimphi-widget-progress = { git = "https://git.tawasuyu.net/tawasuyu/tawasuyu.git", tag = "v0.2.0" }
338llimphi-widget-toast = { git = "https://git.tawasuyu.net/tawasuyu/tawasuyu.git", tag = "v0.2.0" }
339llimphi-widget-modal = { git = "https://git.tawasuyu.net/tawasuyu/tawasuyu.git", tag = "v0.2.0" }
340llimphi-widget-empty = { git = "https://git.tawasuyu.net/tawasuyu/tawasuyu.git", tag = "v0.2.0" }
341llimphi-widget-status-bar = { git = "https://git.tawasuyu.net/tawasuyu/tawasuyu.git", tag = "v0.2.0" }
342llimphi-widget-shortcuts-help = { git = "https://git.tawasuyu.net/tawasuyu/tawasuyu.git", tag = "v0.2.0" }
343llimphi-widget-timeline = { git = "https://git.tawasuyu.net/tawasuyu/tawasuyu.git", tag = "v0.2.0" }
344llimphi-widget-transport = { git = "https://git.tawasuyu.net/tawasuyu/tawasuyu.git", tag = "v0.2.0" }
345llimphi-widget-waveform = { git = "https://git.tawasuyu.net/tawasuyu/tawasuyu.git", tag = "v0.2.0" }
346llimphi-widget-splash = { git = "https://git.tawasuyu.net/tawasuyu/tawasuyu.git", tag = "v0.2.0" }
347# Controles de formulario y signaling (switch, segmented, breadcrumb,
348# badge, avatar, skeleton, field).
349llimphi-widget-switch = { git = "https://git.tawasuyu.net/tawasuyu/tawasuyu.git", tag = "v0.2.0" }
350llimphi-widget-segmented = { git = "https://git.tawasuyu.net/tawasuyu/tawasuyu.git", tag = "v0.2.0" }
351llimphi-widget-rag-sidebar = { git = "https://git.tawasuyu.net/tawasuyu/tawasuyu.git", tag = "v0.2.0" }
352llimphi-widget-dock-rail = { git = "https://git.tawasuyu.net/tawasuyu/tawasuyu.git", tag = "v0.2.0" }
353llimphi-widget-toolbar = { git = "https://git.tawasuyu.net/tawasuyu/tawasuyu.git", tag = "v0.2.0" }
354llimphi-widget-breadcrumb = { git = "https://git.tawasuyu.net/tawasuyu/tawasuyu.git", tag = "v0.2.0" }
355llimphi-widget-badge = { git = "https://git.tawasuyu.net/tawasuyu/tawasuyu.git", tag = "v0.2.0" }
356llimphi-widget-avatar = { git = "https://git.tawasuyu.net/tawasuyu/tawasuyu.git", tag = "v0.2.0" }
357llimphi-widget-skeleton = { git = "https://git.tawasuyu.net/tawasuyu/tawasuyu.git", tag = "v0.2.0" }
358llimphi-widget-field = { git = "https://git.tawasuyu.net/tawasuyu/tawasuyu.git", tag = "v0.2.0" }
359# Firma visual transversal (gradient sutil + hairline accent).
360llimphi-widget-panel = { git = "https://git.tawasuyu.net/tawasuyu/tawasuyu.git", tag = "v0.2.0" }
361llimphi-widget-panes = { git = "https://git.tawasuyu.net/tawasuyu/tawasuyu.git", tag = "v0.2.0" }
362# Widgets Flutter-like — composición sobre primitivas Tier 1/3 ya
363# expuestas (sombra, gradient, animated, ripple).
364llimphi-widget-chip = { git = "https://git.tawasuyu.net/tawasuyu/tawasuyu.git", tag = "v0.2.0" }
365llimphi-widget-fab = { git = "https://git.tawasuyu.net/tawasuyu/tawasuyu.git", tag = "v0.2.0" }
366llimphi-widget-wrap = { git = "https://git.tawasuyu.net/tawasuyu/tawasuyu.git", tag = "v0.2.0" }
367llimphi-widget-range-slider = { git = "https://git.tawasuyu.net/tawasuyu/tawasuyu.git", tag = "v0.2.0" }
368llimphi-widget-calendar = { git = "https://git.tawasuyu.net/tawasuyu/tawasuyu.git", tag = "v0.2.0" }
369llimphi-widget-fitted-box = { git = "https://git.tawasuyu.net/tawasuyu/tawasuyu.git", tag = "v0.2.0" }
370llimphi-widget-carousel = { git = "https://git.tawasuyu.net/tawasuyu/tawasuyu.git", tag = "v0.2.0" }
371llimphi-widget-rating = { git = "https://git.tawasuyu.net/tawasuyu/tawasuyu.git", tag = "v0.2.0" }
372llimphi-widget-gauge = { git = "https://git.tawasuyu.net/tawasuyu/tawasuyu.git", tag = "v0.2.0" }
373llimphi-widget-scaffold = { git = "https://git.tawasuyu.net/tawasuyu/tawasuyu.git", tag = "v0.2.0" }
374llimphi-widget-hero = { git = "https://git.tawasuyu.net/tawasuyu/tawasuyu.git", tag = "v0.2.0" }
375llimphi-widget-router = { git = "https://git.tawasuyu.net/tawasuyu/tawasuyu.git", tag = "v0.2.0" }
376llimphi-workspace = { git = "https://git.tawasuyu.net/tawasuyu/tawasuyu.git", tag = "v0.2.0" }
377# Abstracción Selector — host (paths) + wawa (khipus).
378llimphi-module-selector = { git = "https://git.tawasuyu.net/tawasuyu/tawasuyu.git", tag = "v0.2.0" }
379
380# === Filesystem helpers ===
381directories = "5"
382
383# === Diff line-based (llimphi-module-diff-viewer) ===
384# `similar` es la crate de facto: implementa Myers + Patience + LCS,
385# expone `TextDiff` con ChangeTag por línea (Equal/Insert/Delete),
386# zero deps fuera de std. La 2.x es estable hace años.
387similar = "2"
388
389# === Fuzzy matching (shuma-history) ===
390# nucleo-matcher = mismo matcher que helix-editor: rápido, Unicode-correct,
391# bonus por prefijos, ranking estable. La versión 0.3 expone el API simple
392# que necesitamos (Matcher + Pattern + score).
393nucleo-matcher = "0.3"
394
395# === Transporte autenticado (shuma-link) ===
396# snow = framework Noise pure-rust. Lo usamos en modo Noise_XK (cliente
397# conoce la pubkey del servidor, server descubre la del cliente y la
398# valida contra una allowlist). ChaCha20-Poly1305 + X25519 + BLAKE2s.
399# La versión 0.9 viene pinneada por libp2p, así nos alineamos.
400snow = "0.9"
401hex = "0.4"
402
403# === PTY + emulador de terminal (shuma-exec, módulos REPL) ===
404# portable-pty aloja un PTY cross-platform; lo usamos para los
405# comandos TUI tipo vim/htop/less que necesitan un terminal de verdad.
406# vt100 parsea la secuencia de bytes que el PTY emite (ANSI + cursor
407# movement + erase + screen state) y mantiene un buffer de pantalla
408# renderizable como grid.
409portable-pty = "0.9"
410vt100 = "0.16"
411
412# === WASM web (tawasuyu) ===
413wasm-bindgen = "0.2"
414wasm-bindgen-futures = "0.4"
415js-sys = "0.3"
416web-sys = "0.3"
417glam = "0.30"
418
419# === Markdown (pluma) ===
420pulldown-cmark = { version = "0.12", default-features = false, features = ["html"] }
421
422# === Archivos comprimidos (nahual archive viewer) ===
423# Sólo listamos el directorio central (nombres/tamaños); no descomprimimos,
424# por eso default-features=false alcanza para ZIP. Para tar.gz sí
425# descomprimimos en streaming con flate2 (ya declarado arriba), saltando
426# los datos de cada entrada — sólo leemos headers.
427zip = { version = "2.4", default-features = false }
428tar = { version = "0.4", default-features = false }
429
430# === Fuentes (nahual font viewer) ===
431# Parseo de TTF/OTF/TTC y extracción de contornos de glifo a paths.
432ttf-parser = "0.25"
433
434# ============================================================
435# Intra-workspace deps de nahual (referenciadas por workspace = true)
436# ============================================================
437nahual-text-viewer-llimphi = { git = "https://git.tawasuyu.net/tawasuyu/tawasuyu.git", tag = "v0.2.0" }
438nahual-image-viewer-llimphi = { git = "https://git.tawasuyu.net/tawasuyu/tawasuyu.git", tag = "v0.2.0" }
439nahual-pdf-viewer-llimphi = { git = "https://git.tawasuyu.net/tawasuyu/tawasuyu.git", tag = "v0.2.0" }
440nahual-cbz-viewer-llimphi = { git = "https://git.tawasuyu.net/tawasuyu/tawasuyu.git", tag = "v0.2.0" }
441nahual-thumb-core = { git = "https://git.tawasuyu.net/tawasuyu/tawasuyu.git", tag = "v0.2.0" }
442nahual-gallery-llimphi = { git = "https://git.tawasuyu.net/tawasuyu/tawasuyu.git", tag = "v0.2.0" }
443nahual-video-viewer-llimphi = { git = "https://git.tawasuyu.net/tawasuyu/tawasuyu.git", tag = "v0.2.0" }
444nahual-card-viewer-llimphi = { git = "https://git.tawasuyu.net/tawasuyu/tawasuyu.git", tag = "v0.2.0" }
445nahual-audio-viewer-llimphi = { git = "https://git.tawasuyu.net/tawasuyu/tawasuyu.git", tag = "v0.2.0" }
446media-module = { git = "https://git.tawasuyu.net/tawasuyu/tawasuyu.git", tag = "v0.2.0" }
447tullpu-module = { git = "https://git.tawasuyu.net/tawasuyu/tawasuyu.git", tag = "v0.2.0" }
448tullpu-core = { git = "https://git.tawasuyu.net/tawasuyu/tawasuyu.git", tag = "v0.2.0" }
449tullpu-icon-core = { git = "https://git.tawasuyu.net/tawasuyu/tawasuyu.git", tag = "v0.2.0" }
450tullpu-icon-cli = { git = "https://git.tawasuyu.net/tawasuyu/tawasuyu.git", tag = "v0.2.0" }
451tullpu-icon-llimphi = { git = "https://git.tawasuyu.net/tawasuyu/tawasuyu.git", tag = "v0.2.0" }
452tullpu-icon-llm = { git = "https://git.tawasuyu.net/tawasuyu/tawasuyu.git", tag = "v0.2.0" }
453foreign-svg = { git = "https://git.tawasuyu.net/tawasuyu/tawasuyu.git", tag = "v0.2.0" }
454foreign-pdf = { git = "https://git.tawasuyu.net/tawasuyu/tawasuyu.git", tag = "v0.2.0" }
455tullpu-render = { git = "https://git.tawasuyu.net/tawasuyu/tawasuyu.git", tag = "v0.2.0" }
456tullpu-render-gpu = { git = "https://git.tawasuyu.net/tawasuyu/tawasuyu.git", tag = "v0.2.0" }
457tullpu-ops = { git = "https://git.tawasuyu.net/tawasuyu/tawasuyu.git", tag = "v0.2.0" }
458tullpu-paint = { git = "https://git.tawasuyu.net/tawasuyu/tawasuyu.git", tag = "v0.2.0" }
459nahual-tree-viewer-llimphi = { git = "https://git.tawasuyu.net/tawasuyu/tawasuyu.git", tag = "v0.2.0" }
460nahual-hex-viewer-llimphi = { git = "https://git.tawasuyu.net/tawasuyu/tawasuyu.git", tag = "v0.2.0" }
461nahual-svg-viewer-llimphi = { git = "https://git.tawasuyu.net/tawasuyu/tawasuyu.git", tag = "v0.2.0" }
462nahual-sheet-viewer-llimphi = { git = "https://git.tawasuyu.net/tawasuyu/tawasuyu.git", tag = "v0.2.0" }
463nahual-dbf-viewer-llimphi = { git = "https://git.tawasuyu.net/tawasuyu/tawasuyu.git", tag = "v0.2.0" }
464nahual-table-viewer-llimphi = { git = "https://git.tawasuyu.net/tawasuyu/tawasuyu.git", tag = "v0.2.0" }
465nahual-markdown-viewer-llimphi = { git = "https://git.tawasuyu.net/tawasuyu/tawasuyu.git", tag = "v0.2.0" }
466nahual-pluma-viewer-llimphi = { git = "https://git.tawasuyu.net/tawasuyu/tawasuyu.git", tag = "v0.2.0" }
467nahual-cotejo-llimphi = { git = "https://git.tawasuyu.net/tawasuyu/tawasuyu.git", tag = "v0.2.0" }
468nahual-deck-viewer-llimphi = { git = "https://git.tawasuyu.net/tawasuyu/tawasuyu.git", tag = "v0.2.0" }
469nahual-archive-viewer-llimphi = { git = "https://git.tawasuyu.net/tawasuyu/tawasuyu.git", tag = "v0.2.0" }
470nahual-font-viewer-llimphi = { git = "https://git.tawasuyu.net/tawasuyu/tawasuyu.git", tag = "v0.2.0" }
471nahual-map-viewer-llimphi = { git = "https://git.tawasuyu.net/tawasuyu/tawasuyu.git", tag = "v0.2.0" }
472nahual-geo-core = { git = "https://git.tawasuyu.net/tawasuyu/tawasuyu.git", tag = "v0.2.0" }
473nahual-geo-voxel = { git = "https://git.tawasuyu.net/tawasuyu/tawasuyu.git", tag = "v0.2.0" }
474nahual-iconos = { git = "https://git.tawasuyu.net/tawasuyu/tawasuyu.git", tag = "v0.2.0" }
475nahual-viewer-core = { git = "https://git.tawasuyu.net/tawasuyu/tawasuyu.git", tag = "v0.2.0" }
476nahual-file-explorer-llimphi = { git = "https://git.tawasuyu.net/tawasuyu/tawasuyu.git", tag = "v0.2.0" }
477
478# ============================================================
479# Intra-workspace deps de pineal (módulo de gráficos)
480# ============================================================
481pineal-core = { git = "https://git.tawasuyu.net/tawasuyu/tawasuyu.git", tag = "v0.2.0" }
482pineal-render = { git = "https://git.tawasuyu.net/tawasuyu/tawasuyu.git", tag = "v0.2.0" }
483pineal-cartesian = { git = "https://git.tawasuyu.net/tawasuyu/tawasuyu.git", tag = "v0.2.0" }
484pineal-stream = { git = "https://git.tawasuyu.net/tawasuyu/tawasuyu.git", tag = "v0.2.0" }
485pineal-mesh = { git = "https://git.tawasuyu.net/tawasuyu/tawasuyu.git", tag = "v0.2.0" }
486pineal-financial = { git = "https://git.tawasuyu.net/tawasuyu/tawasuyu.git", tag = "v0.2.0" }
487pineal-polar = { git = "https://git.tawasuyu.net/tawasuyu/tawasuyu.git", tag = "v0.2.0" }
488pineal-heatmap = { git = "https://git.tawasuyu.net/tawasuyu/tawasuyu.git", tag = "v0.2.0" }
489pineal-treemap = { git = "https://git.tawasuyu.net/tawasuyu/tawasuyu.git", tag = "v0.2.0" }
490pineal-flow = { git = "https://git.tawasuyu.net/tawasuyu/tawasuyu.git", tag = "v0.2.0" }
491pineal-phosphor = { git = "https://git.tawasuyu.net/tawasuyu/tawasuyu.git", tag = "v0.2.0" }
492pineal-export = { git = "https://git.tawasuyu.net/tawasuyu/tawasuyu.git", tag = "v0.2.0" }
493pineal-hexbin = { git = "https://git.tawasuyu.net/tawasuyu/tawasuyu.git", tag = "v0.2.0" }
494pineal-contour = { git = "https://git.tawasuyu.net/tawasuyu/tawasuyu.git", tag = "v0.2.0" }
495pineal-bars = { git = "https://git.tawasuyu.net/tawasuyu/tawasuyu.git", tag = "v0.2.0" }
496pineal = { git = "https://git.tawasuyu.net/tawasuyu/tawasuyu.git", tag = "v0.2.0" }
497
498# ============================================================
499# Intra-workspace deps de iniy (laboratorio semántico de creencias)
500# ============================================================
501iniy-core = { git = "https://git.tawasuyu.net/tawasuyu/tawasuyu.git", tag = "v0.2.0" }
502iniy-evidencia = { git = "https://git.tawasuyu.net/tawasuyu/tawasuyu.git", tag = "v0.2.0" }
503iniy-derive = { git = "https://git.tawasuyu.net/tawasuyu/tawasuyu.git", tag = "v0.2.0" }
504iniy-emisores = { git = "https://git.tawasuyu.net/tawasuyu/tawasuyu.git", tag = "v0.2.0" }
505iniy-cache = { git = "https://git.tawasuyu.net/tawasuyu/tawasuyu.git", tag = "v0.2.0" }
506iniy-daemon = { git = "https://git.tawasuyu.net/tawasuyu/tawasuyu.git", tag = "v0.2.0" }
507iniy-ingest = { git = "https://git.tawasuyu.net/tawasuyu/tawasuyu.git", tag = "v0.2.0" }
508iniy-extract = { git = "https://git.tawasuyu.net/tawasuyu/tawasuyu.git", tag = "v0.2.0" }
509iniy-nli = { git = "https://git.tawasuyu.net/tawasuyu/tawasuyu.git", tag = "v0.2.0" }
510iniy-nli-llm = { git = "https://git.tawasuyu.net/tawasuyu/tawasuyu.git", tag = "v0.2.0" }
511iniy-graph = { git = "https://git.tawasuyu.net/tawasuyu/tawasuyu.git", tag = "v0.2.0" }
512iniy-store = { git = "https://git.tawasuyu.net/tawasuyu/tawasuyu.git", tag = "v0.2.0" }
513# la física de decaimiento de khipu la importa iniy-derive (SDD iniy §3)
514khipu-gravity = { git = "https://git.tawasuyu.net/tawasuyu/tawasuyu.git", tag = "v0.2.0" }
515
516# === auto: declarados por crates internos faltantes ===
517cosmos-coords = { git = "https://git.tawasuyu.net/tawasuyu/tawasuyu.git", tag = "v0.2.0" }
518cosmos-cities = { git = "https://git.tawasuyu.net/tawasuyu/tawasuyu.git", tag = "v0.2.0" }
519cosmos-core = { git = "https://git.tawasuyu.net/tawasuyu/tawasuyu.git", tag = "v0.2.0" }
520cosmos-ephemeris = { git = "https://git.tawasuyu.net/tawasuyu/tawasuyu.git", tag = "v0.2.0" }
521cosmos-time = { git = "https://git.tawasuyu.net/tawasuyu/tawasuyu.git", tag = "v0.2.0" }
522cosmos-wcs = { git = "https://git.tawasuyu.net/tawasuyu/tawasuyu.git", tag = "v0.2.0" }
523
524# === auto: externas de eternal ===
525celestial-eop-data = { version = "0.1"}
526approx = "0.5"
527byteorder = "1.5"
528cc = "1.0"
529chrono = "0.4"
530chrono-tz = "0.10"
531crc32fast = "1.4"
532criterion = "0.5"
533csv = "1.4"
534flate2 = "1.0"
535glob = "0.3"
536indicatif = "0.18"
537lz4_flex = "0.11"
538memmap2 = "0.9"
539# Cliente Wayland (lado cliente) — lo usa hapiy para hablar zwlr_screencopy
540# contra mirada (u otro compositor wlroots) y capturar la pantalla.
541wayland-client = "0.31"
542wayland-protocols-wlr = { version = "0.3", features = ["client"] }
543wayland-protocols-misc = { version = "0.3", features = ["client"] }
544mockito = "1.0"
545ndarray = "0.15"
546num-traits = "0.2"
547once_cell = "1.19"
548parking_lot = "0.12"
549png = "0.18"
550proptest = "1.4"
551quick-xml = "0.31"
552rayon = "1.8"
553regex = "1.11"
554reqwest = "0.12"
555tiff = "0.11"
556wide = "0.7"
557wiremock = "0.6"
558
559# === i18n (rimay-localize) ===
560fluent-bundle = "0.15"
561unic-langid = { version = "0.9", features = ["macros"] }
562sys-locale = "0.3"
563
564# === Servo (puriy-engine) ===
565# Crates publicados de Servo embebibles individualmente. html5ever/markup5ever
566# ya entran via ammonia→surrealdb→nakui, así que alineamos versión para no
567# duplicar el árbol. markup5ever_rcdom es el DOM Rc-based simple (suficiente
568# para Fase 2: parsear y renderizar, sin scripting). cssparser es el tokenizer
569# CSS de Stylo, sirve para inline styles. ureq = HTTP síncrono minimalista,
570# evita pull de tokio en el engine.
571html5ever = "0.39"
572markup5ever = "0.39"
573markup5ever_rcdom = "0.39"
574cssparser = "0.35"
575url = "2"
576ureq = { version = "2", default-features = false, features = ["tls"] }
577# Charset de la web real: no todo es UTF-8 (google.com sirve ISO-8859-1).
578# Ya venía transitivo por el stack de Servo — aquí se hace explícito.
579encoding_rs = "0.8"
580
581# === takiy-synth (SoundFont MIDI) ===
582# rustysynth = sintetizador SF2 puro Rust, MIT. Reemplaza el oscilador
583# feo de takiy-synth por muestras reales (FluidR3, GeneralUser GS, etc).
584rustysynth = "1.3"
585
586# === takiy-playback (audio device output) ===
587# cpal = backend de audio cross-platform (ALSA/PulseAudio/Pipewire en
588# Linux, WASAPI en Windows, CoreAudio en macOS). Lo usamos sólo para
589# abrir el device default y empujar muestras f32 — nada de mezclado
590# ni efectos en el callback.
591cpal = "0.15"
592
593# === media-source-wav (decoder PCM en disco) ===
594# hound = lector/escritor WAV puro-Rust, sin deps nativas. Soporta PCM
595# entero (8/16/24/32) y float (32). Suficiente para abrir samples y
596# stems de prueba sin meter ffmpeg/symphonia.
597hound = "3.5"
598
599# === media-source-{mp3,flac,vorbis} (decoders vía symphonia) ===
600# symphonia es una colección de decoders puro-Rust mantenida. `mp3` cubre
601# media-source-mp3; `flac` (decoder + demuxer FLAC nativo) cubre
602# media-source-flac (lossless); `vorbis` + `ogg` (codec + demuxer Ogg)
603# cubren media-source-vorbis (lossy clásico, libre de patentes). Sin aac:
604# ese tier patentado entra por shared/foreign-av.
605symphonia = { version = "0.5", default-features = false, features = ["mp3", "flac", "vorbis", "ogg"] }
606
607# === media-source-opus (decoder Opus NATIVO puro-Rust) ===
608# Opus es el formato de audio nativo de tawasuyu (par del video AV1). ogg
609# demuxea las páginas Ogg; opus-wave es un port puro-Rust de libopus
610# (SILK+CELT, sin C ni FFI) — par del rav1d del lado video.
611ogg = "0.9"
612opus-wave = "3"
613
614# === media-source-webm (demux nativo Matroska/WebM) ===
615# matroska-demuxer es un demuxer puro-Rust de MKV/WebM (EBML). Saca los
616# paquetes de los tracks V_AV1 y A_OPUS para alimentar a media-source-av1
617# y media-source-opus — un .webm AV1+Opus se reproduce 100% nativo.
618matroska-demuxer = "0.7"
619
620# === Perfil `dist`: binarios de reparto livianos (equipos chicos / poca RAM) ===
621# Hereda de `release` pero prioriza HUELLA sobre tiempo de compilación: LTO thin
622# (poda código muerto entre crates), un solo codegen-unit (mejor inlining/DCE) y
623# `strip` de símbolos. Reduce el tamaño en disco Y el segmento de código mapeado
624# en RAM de cada binario (mirada, pata, apps Llimphi). No toca `cargo build
625# --release` de iteración diaria; se usa sólo al empaquetar:
626#   cargo build --profile dist -p mirada-compositor -p pata-host …
627# `panic = "unwind"` se mantiene a propósito: mirada-plugin-host aísla plugins
628# con `catch_unwind`, así que `abort` rompería el sandbox.
629# === Crates del monorepo consumidos por git-dep (pin del tag) ===
630card-net = { git = "https://git.tawasuyu.net/tawasuyu/tawasuyu.git", tag = "v0.2.0" }
631foreign-fs = { git = "https://git.tawasuyu.net/tawasuyu/tawasuyu.git", tag = "v0.2.0" }
632fork-proof = { git = "https://git.tawasuyu.net/tawasuyu/tawasuyu.git", tag = "v0.2.0" }
633format = { git = "https://git.tawasuyu.net/tawasuyu/tawasuyu.git", tag = "v0.2.0" }
634minga-core = { git = "https://git.tawasuyu.net/tawasuyu/tawasuyu.git", tag = "v0.2.0" }
635minga-p2p = { git = "https://git.tawasuyu.net/tawasuyu/tawasuyu.git", tag = "v0.2.0" }
636pacha-llavero = { git = "https://git.tawasuyu.net/tawasuyu/tawasuyu.git", tag = "v0.2.0" }
637qillqa-compras = { git = "https://git.tawasuyu.net/tawasuyu/tawasuyu.git", tag = "v0.2.0" }
638qillqa-core = { git = "https://git.tawasuyu.net/tawasuyu/tawasuyu.git", tag = "v0.2.0" }
639qillqa-mesa = { git = "https://git.tawasuyu.net/tawasuyu/tawasuyu.git", tag = "v0.2.0" }
640qillqa-veeduria = { git = "https://git.tawasuyu.net/tawasuyu/tawasuyu.git", tag = "v0.2.0" }
641umbral = { git = "https://git.tawasuyu.net/tawasuyu/tawasuyu.git", tag = "v0.2.0" }
642wawa-explorer-aoe = { git = "https://git.tawasuyu.net/tawasuyu/tawasuyu.git", tag = "v0.2.0" }
643
644[profile.dist]
645inherits = "release"
646lto = "thin"
647codegen-units = 1
648strip = "symbols"
649panic = "unwind"
650
651
652
653# Un solo origen para los crates del dominio: la copia local gana
654# sobre la que arrastran las git-deps del monorepo.
655[patch."https://git.tawasuyu.net/tawasuyu/tawasuyu.git"]
656agora-core = { path = "03_ukupacha/agora/agora-core" }
657agora-graph = { path = "03_ukupacha/agora/agora-graph" }
658agora-petnames = { path = "03_ukupacha/agora/agora-petnames" }