kriya-ephemeris-timelords
v0.1.2
Published
Browser-shippable Hellenistic time-lord computation: annual/monthly/daily profections, zodiacal releasing, and Arabic Lots. Companion to kriya-ephemeris -- separate package so pros who don't use the Time-lords tab don't pay its bundle-size cost.
Readme
kriya-ephemeris-timelords
Browser-shippable Hellenistic time-lord computation, factored out of
the Kriya astrology API engine. A separate package from
kriya-ephemeris (its peer dependency) so pros who don't use the
Time-lords tab don't pay its bundle-size cost.
Status
v0.1.0 — full offline closure for profections, zodiacal releasing,
and Arabic Lots.
Surface
Single entry point (kriya-ephemeris-timelords), re-exporting:
- Profections —
annualProfection,monthlyProfection,dailyProfection,profectionTimeline. Nested/fractal (annual → monthly → daily) sign-advance system; time-lord is the domicile ruler of the profected sign at each level. - Zodiacal releasing —
zodiacalReleasing,activeZrPeriods, plus the enrichment layerscomputeActivationChain(natal-house topics a period ruler activates) andcomputeRulerAspectsToNatal(natal aspects the period ruler makes). Proportional (Chaldean-year weighted) period tree, 1–4 levels deep, from any Lot's longitude. - Arabic Lots —
allLotsplus individualpartOfXDegfunctions (Fortune, Spirit, Eros, Necessity, Courage, Victory, Nemesis, Basis, Exaltation, Marriage, Children, Father, Mother, Siblings, Fame, Commerce, Sickness, Captivity). Needed to derive the longitude that seeds zodiacal releasing (typically Fortune or Spirit) from an already-computed natal chart — the same chart datakriya-ephemeris's base package already produces locally. - Dignity tables (
tables.data.ts) —DOMICILE,TRIPLICITY,EGYPTIAN_TERMS, plusMODERN_RULER/EXALTATION/CHALDEAN_FACES(unused by time-lord math itself but included since they're the same small data file). This is a separate copy from the engine's ownlib/ephemeris/dignities/module (which stays engine-only and is unrelated to this extraction) — a coincidental duplication, not a shared dependency.
Out of scope (server-only via the API)
- Firdaria — exists in the engine (
lib/ephemeris/hellenistic/firdaria.ts) but isn't extracted here: it isn't consumed by any real Netra feature today (only referenced in educational/learncopy) and has weak existing test coverage (route-smoke only, no dedicated parity tests to verify against). Revisit if a real consumer need appears. - Chart-assembly glue (deriving
dayBirth, resolving anchor signs, building thenatalPositionsmap from a full chart) — stays engine-side inlib/api/compute-phase8b.tsand the route handlers, same boundary as the other extracted packages.
Engine integration
The engine consumes this package in place of the code that used to
live in lib/ephemeris/hellenistic/{profections,zodiacal-releasing}.ts
and lib/ephemeris/points/lots.ts. Bridge files at the original paths
re-export the package surface, so existing engine call sites are
unchanged. lib/ephemeris/dignities/tables.ts (the engine's own copy,
used by the unrelated essential-dignities module) was left untouched.
Parity guarantee
Every export of this package produces byte-identical output to the
engine's pre-carve-out implementation — logic is unchanged arithmetic
with only import paths repointed. One dead-code cleanup: an unused
prevSign variable in the zodiacal-releasing period builder (flagged
by the engine's own linter, confirmed never read) was dropped —
zero behavior change. Parity is locked in by the engine's existing
test suite (43 dedicated unit tests across profections and zodiacal
releasing, several with exact-value assertions — sign indices, ruler
names, Chaldean-year durations), all of which pass unchanged against
the bridge.
