feat(tahuantinsuyu): scaffolding del estudio astrológico (10 crates + ventana 3-panes)

Módulo nuevo `modules/tahuantinsuyu/` con 9 crates reusables + app
`apps/tahuantinsuyu` ejecutable que abre la ventana del explorador y
coordina los widgets:

- tahuantinsuyu-card: Card Brahman + spawn_sidecar (flows
  chart-request/chart-result).
- tahuantinsuyu-model: tipos agnósticos (Group/Contact/Chart,
  StoredBirthData, StoredChartConfig, ChartKind, TreeSelection).
- tahuantinsuyu-store: persistencia SQLite (rusqlite) con migración v1,
  CRUD por entidad y descenso recursivo `charts_under_group`.
- tahuantinsuyu-engine: bridge agnóstico al canvas vía `RenderModel`
  (Layer/Glyph/Geometry). Feature `eternal-bridge` (off por default)
  reservada para enchufar eternal-astrology desde ~/eternal.
- tahuantinsuyu-modules: registry de módulos pluggables (Module trait
  + Control schema) con `NatalModule` placeholder.
- tahuantinsuyu-theme: AstroPalette (elementos / modos / planetas /
  aspectos) con variantes dark + light sobre yahweh-theme.
- tahuantinsuyu-canvas: widget GPUI con CanvasState (Empty / Wheel /
  Thumbnails). Render placeholder hasta cablear la rueda real.
- tahuantinsuyu-tree: explorador izquierdo sobre yahweh-widget-tree,
  prefijos g:/c:/h: para Group/Contact/Chart.
- tahuantinsuyu-panel: control panel inferior que lee Controls de los
  módulos del registry y los pinta.
- apps/tahuantinsuyu: binario `tahuantinsuyu` (launch_app-style) con
  Shell coordinador (tree↔canvas↔panel), DB en $XDG_DATA_HOME.

Workspace Cargo.toml actualizado con los 10 miembros. `cargo check`
verde, tests unitarios verdes (model/store/engine/modules/theme/card).

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
This commit is contained in:
sergio
2026-05-16 01:06:03 +00:00
parent e8f97b50cb
commit c48638fe87
23 changed files with 3256 additions and 0 deletions
Generated
+242
View File
@@ -1584,6 +1584,15 @@ dependencies = [
"unicode-security",
]
[[package]]
name = "celestial-eop-data"
version = "0.1.12"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "0db7627f7cbdcaed155e66503e07025e10701a3566bc211a85e35b918bc40812"
dependencies = [
"zstd",
]
[[package]]
name = "cexpr"
version = "0.6.0"
@@ -2513,6 +2522,15 @@ dependencies = [
"subtle",
]
[[package]]
name = "directories"
version = "5.0.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "9a49173b84e034382284f27f1af4dcbbd231ffa358c0fe316541a7337f376a35"
dependencies = [
"dirs-sys 0.4.1",
]
[[package]]
name = "dirs"
version = "4.0.0"
@@ -3239,6 +3257,88 @@ dependencies = [
"svg_fmt",
]
[[package]]
name = "eternal-astrology"
version = "0.1.1-alpha.2"
dependencies = [
"eternal-core",
"eternal-ephemeris",
"eternal-sky",
"eternal-time",
"eternal-validation",
"libm",
"thiserror 2.0.18",
]
[[package]]
name = "eternal-coords"
version = "0.1.1-alpha.2"
dependencies = [
"celestial-eop-data",
"eternal-core",
"eternal-time",
"libm",
"thiserror 2.0.18",
]
[[package]]
name = "eternal-core"
version = "0.1.1-alpha.2"
dependencies = [
"libm",
"once_cell",
"regex",
"thiserror 2.0.18",
]
[[package]]
name = "eternal-ephemeris"
version = "0.1.1-alpha.2"
dependencies = [
"eternal-coords",
"eternal-core",
"eternal-time",
"libm",
"memmap2",
]
[[package]]
name = "eternal-sky"
version = "0.1.1-alpha.2"
dependencies = [
"eternal-coords",
"eternal-core",
"eternal-ephemeris",
"eternal-time",
"eternal-validation",
"libm",
"thiserror 2.0.18",
]
[[package]]
name = "eternal-time"
version = "0.1.1-alpha.2"
dependencies = [
"eternal-core",
"libm",
"thiserror 2.0.18",
]
[[package]]
name = "eternal-validation"
version = "0.1.1-alpha.2"
dependencies = [
"anyhow",
"clap",
"eternal-coords",
"eternal-core",
"eternal-ephemeris",
"eternal-time",
"libm",
"serde",
"serde_json",
]
[[package]]
name = "euclid"
version = "0.22.14"
@@ -10800,6 +10900,120 @@ version = "0.2.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "7b2093cf4c8eb1e67749a6762251bc9cd836b6fc171623bd0a9d324d37af2417"
[[package]]
name = "tahuantinsuyu"
version = "0.1.0"
dependencies = [
"directories",
"gpui",
"tahuantinsuyu-canvas",
"tahuantinsuyu-card",
"tahuantinsuyu-engine",
"tahuantinsuyu-model",
"tahuantinsuyu-modules",
"tahuantinsuyu-panel",
"tahuantinsuyu-store",
"tahuantinsuyu-theme",
"tahuantinsuyu-tree",
"yahweh-bus",
"yahweh-theme",
]
[[package]]
name = "tahuantinsuyu-canvas"
version = "0.1.0"
dependencies = [
"gpui",
"tahuantinsuyu-engine",
"tahuantinsuyu-model",
"tahuantinsuyu-modules",
"tahuantinsuyu-theme",
"yahweh-theme",
]
[[package]]
name = "tahuantinsuyu-card"
version = "0.1.0"
dependencies = [
"brahman-card",
"brahman-sidecar",
"ulid",
]
[[package]]
name = "tahuantinsuyu-engine"
version = "0.1.0"
dependencies = [
"eternal-astrology",
"eternal-sky",
"serde",
"tahuantinsuyu-model",
"thiserror 2.0.18",
]
[[package]]
name = "tahuantinsuyu-model"
version = "0.1.0"
dependencies = [
"serde",
"serde_json",
"thiserror 2.0.18",
"ulid",
]
[[package]]
name = "tahuantinsuyu-modules"
version = "0.1.0"
dependencies = [
"serde",
"serde_json",
"tahuantinsuyu-engine",
"tahuantinsuyu-model",
]
[[package]]
name = "tahuantinsuyu-panel"
version = "0.1.0"
dependencies = [
"gpui",
"serde_json",
"tahuantinsuyu-model",
"tahuantinsuyu-modules",
"tahuantinsuyu-theme",
"yahweh-theme",
]
[[package]]
name = "tahuantinsuyu-store"
version = "0.1.0"
dependencies = [
"rusqlite",
"serde",
"serde_json",
"tahuantinsuyu-model",
"thiserror 2.0.18",
"ulid",
]
[[package]]
name = "tahuantinsuyu-theme"
version = "0.1.0"
dependencies = [
"gpui",
"yahweh-theme",
]
[[package]]
name = "tahuantinsuyu-tree"
version = "0.1.0"
dependencies = [
"gpui",
"tahuantinsuyu-model",
"tahuantinsuyu-store",
"yahweh-theme",
"yahweh-widget-tree",
]
[[package]]
name = "take-until"
version = "0.2.0"
@@ -14011,6 +14225,34 @@ version = "1.0.21"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "b8848ee67ecc8aedbaf3e4122217aff892639231befc6a1b58d29fff4c2cabaa"
[[package]]
name = "zstd"
version = "0.13.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "e91ee311a569c327171651566e07972200e76fcfe2242a4fa446149a3881c08a"
dependencies = [
"zstd-safe",
]
[[package]]
name = "zstd-safe"
version = "7.2.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "8f49c4d5f0abb602a93fb8736af2a4f4dd9512e36f7f570d66e65ff867ed3b9d"
dependencies = [
"zstd-sys",
]
[[package]]
name = "zstd-sys"
version = "2.0.16+zstd.1.5.7"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "91e19ebc2adc8f83e43039e79776e3fda8ca919132d68a1fed6a5faca2683748"
dependencies = [
"cc",
"pkg-config",
]
[[package]]
name = "zune-core"
version = "0.5.1"