feat: sync kp cusp raw queue
This commit is contained in:
@@ -5,7 +5,7 @@
|
||||
"production_tuning_allowed": false,
|
||||
"boundary": "Index of current governance packets only. Raw oracle artifacts remain in references/oracle/artifacts and are not all duplicated here.",
|
||||
"summary": {
|
||||
"packet_count": 51,
|
||||
"packet_count": 54,
|
||||
"blocked_or_partial_count": 40,
|
||||
"human_review_required_count": 1
|
||||
},
|
||||
@@ -417,6 +417,30 @@
|
||||
"claim_status": "observation_only",
|
||||
"consumer_policy": "research_to_commercial_contract_only",
|
||||
"claim_boundary": "VedicAstro KP lord/sub/sub-sub runtime surface is callable in isolated sidereal flatlib environment; no precision-timing truth upgrade until public numeric KP worked-example replay closes."
|
||||
},
|
||||
{
|
||||
"packet_id": "kp_muhurta_shadbala_numeric_packet_queue",
|
||||
"path": "references/oracle/kp_muhurta_shadbala_numeric_packet_queue_2026_07_19.json",
|
||||
"domain": "kp_muhurta_shadbala_numeric_oracle_queue",
|
||||
"claim_status": "open_queue",
|
||||
"consumer_policy": "research_to_commercial_contract_only",
|
||||
"claim_boundary": "Queue tracks KP cusp, KP sub-lord table, Tarabala/Chandrabala, Rahu Kalam, and Shadbala numeric packets. Runtime KP raw exists, but no row is numeric_oracle_ready yet."
|
||||
},
|
||||
{
|
||||
"packet_id": "vedicastro_kp_house_cusp_probe_steve_jobs",
|
||||
"path": "references/oracle/vedicastro_kp_house_cusp_probe_steve_jobs_2026_07_19.json",
|
||||
"domain": "kp_precision_timing_dependency",
|
||||
"claim_status": "observation_only",
|
||||
"consumer_policy": "research_to_commercial_contract_only",
|
||||
"claim_boundary": "VedicAstro KP house cusp star/sub/sub-sub raw for Steve Jobs fixture; observation-only until public worked-example replay closes."
|
||||
},
|
||||
{
|
||||
"packet_id": "vedicastro_kp_house_cusp_probe",
|
||||
"path": "scripts/vedicastro_kp_house_cusp_probe.py",
|
||||
"domain": "kp_precision_timing_dependency",
|
||||
"claim_status": "tooling_observation_only",
|
||||
"consumer_policy": "research_to_commercial_contract_only",
|
||||
"claim_boundary": "Probe script can collect VedicAstro KP cusp raw in isolated sidereal flatlib environment; not a production prediction engine."
|
||||
}
|
||||
]
|
||||
}
|
||||
|
||||
@@ -0,0 +1,54 @@
|
||||
{
|
||||
"scope": "kp_muhurta_shadbala_numeric_packet_queue",
|
||||
"created_at": "2026-07-19",
|
||||
"status": "queue_ready_runtime_kp_raw_attached",
|
||||
"claim_status": "open_queue",
|
||||
"production_tuning_allowed": false,
|
||||
"truth_matrix_allowed": false,
|
||||
"boundary": "Rows are only promoted to numeric_oracle_ready when public input/settings, expected values, raw capture hash, and replay comparison all exist.",
|
||||
"runtime_observations": [
|
||||
{
|
||||
"topic": "KP house cusp star/sub/sub-sub",
|
||||
"artifact": "references/oracle/vedicastro_kp_house_cusp_probe_steve_jobs_2026_07_19.json",
|
||||
"raw_hash": "2e7a6b17eb2965a60846f625f6bd8bc03555216d6225983647bcbfa23d0e345b",
|
||||
"status": "runtime_raw_available_not_oracle"
|
||||
}
|
||||
],
|
||||
"packet_rows": [
|
||||
{
|
||||
"topic": "KP cusp",
|
||||
"candidate_url": "https://www.astrosage.com/kp/cuspal-sub-lord.asp",
|
||||
"source_type": "online_tool_or_reference",
|
||||
"numeric_oracle_status": "blocked_public_input_missing",
|
||||
"required_fields": ["birth_or_query_datetime", "location", "ayanamsa", "house_system", "cusp_longitude", "nakshatra_lord", "sub_lord", "sub_sub_lord", "raw_capture_hash"]
|
||||
},
|
||||
{
|
||||
"topic": "KP sub-lord table",
|
||||
"candidate_url": "https://www.aryabhatt.com/astrology/krishnamurti-paddhati/kp-sub-lords-table",
|
||||
"source_type": "reference_table_candidate",
|
||||
"numeric_oracle_status": "blocked_table_capture_and_license_boundary",
|
||||
"required_fields": ["table_raw_capture", "table_hash", "copyright_boundary", "degree_range", "star_lord", "sub_lord", "sub_sub_lord"]
|
||||
},
|
||||
{
|
||||
"topic": "Tarabala/Chandrabala",
|
||||
"candidate_url": "https://www.mypanchang.com/tarabalam.php",
|
||||
"source_type": "worked_example_or_calculator_candidate",
|
||||
"numeric_oracle_status": "blocked_fixture_missing",
|
||||
"required_fields": ["date", "location", "birth_moon_nakshatra", "current_moon_nakshatra", "tarabala_result", "chandrabala_result", "raw_capture_hash"]
|
||||
},
|
||||
{
|
||||
"topic": "Rahu Kalam",
|
||||
"candidate_url": "https://www.drikpanchang.com/muhurat/rahu-kalam.html",
|
||||
"source_type": "calculation_reference_candidate",
|
||||
"numeric_oracle_status": "blocked_fixture_missing",
|
||||
"required_fields": ["date", "location", "sunrise", "sunset", "weekday", "expected_interval", "raw_capture_hash"]
|
||||
},
|
||||
{
|
||||
"topic": "Shadbala Virupa",
|
||||
"candidate_url": "https://www.astrojyoti.com/shadbala.htm",
|
||||
"source_type": "formula_reference_candidate",
|
||||
"numeric_oracle_status": "blocked_component_values_missing",
|
||||
"required_fields": ["birth_input", "planet", "component_name", "formula_variant", "unit", "expected_virupa", "raw_capture_hash"]
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,220 @@
|
||||
{
|
||||
"boundary": "KP house cusp star/sub/sub-sub raw from VedicAstro runtime. Observation-only until matched against a public numeric KP worked example.",
|
||||
"claim_status": "observation_only",
|
||||
"created_at": "2026-07-19",
|
||||
"dependency_identity": {
|
||||
"flatlib": "0.3.1.dev0",
|
||||
"observed_pinned_flatlib_commit": "2618c348ce1ab2588548f935ff65f031630b4872",
|
||||
"polars": "1.42.1",
|
||||
"required_flatlib_source": "git+https://github.com/diliprk/flatlib.git@sidereal",
|
||||
"timezonefinder": "8.2.5"
|
||||
},
|
||||
"engine": "VedicAstro",
|
||||
"production_tuning_allowed": false,
|
||||
"raw": {
|
||||
"houses": [
|
||||
{
|
||||
"DegSize": 26.059,
|
||||
"HouseNr": 1,
|
||||
"LonDecDeg": 149.434,
|
||||
"Nakshatra": "UttaraPhalgunī",
|
||||
"NakshatraLord": "Sun",
|
||||
"Object": "I",
|
||||
"Rasi": "Leo",
|
||||
"RasiLord": "Sun",
|
||||
"SignLonDMS": "+29:26:02",
|
||||
"SignLonDecDeg": 29.434,
|
||||
"SubLord": "Rahu",
|
||||
"SubSubLord": "Rahu"
|
||||
},
|
||||
{
|
||||
"DegSize": 30.141,
|
||||
"HouseNr": 2,
|
||||
"LonDecDeg": 175.493,
|
||||
"Nakshatra": "Chitra",
|
||||
"NakshatraLord": "Mars",
|
||||
"Object": "II",
|
||||
"Rasi": "Virgo",
|
||||
"RasiLord": "Mercury",
|
||||
"SignLonDMS": "+25:29:35",
|
||||
"SignLonDecDeg": 25.493,
|
||||
"SubLord": "Rahu",
|
||||
"SubSubLord": "Venus"
|
||||
},
|
||||
{
|
||||
"DegSize": 32.894,
|
||||
"HouseNr": 3,
|
||||
"LonDecDeg": 205.634,
|
||||
"Nakshatra": "Vishakha",
|
||||
"NakshatraLord": "Jupiter",
|
||||
"Object": "III",
|
||||
"Rasi": "Libra",
|
||||
"RasiLord": "Venus",
|
||||
"SignLonDMS": "+25:38:01",
|
||||
"SignLonDecDeg": 25.634,
|
||||
"SubLord": "Mercury",
|
||||
"SubSubLord": "Saturn"
|
||||
},
|
||||
{
|
||||
"DegSize": 33.066,
|
||||
"HouseNr": 4,
|
||||
"LonDecDeg": 238.527,
|
||||
"Nakshatra": "Jyeshtha",
|
||||
"NakshatraLord": "Mercury",
|
||||
"Object": "IV",
|
||||
"Rasi": "Scorpio",
|
||||
"RasiLord": "Mars",
|
||||
"SignLonDMS": "+28:31:38",
|
||||
"SignLonDecDeg": 28.527,
|
||||
"SubLord": "Saturn",
|
||||
"SubSubLord": "Ketu"
|
||||
},
|
||||
{
|
||||
"DegSize": 30.713,
|
||||
"HouseNr": 5,
|
||||
"LonDecDeg": 271.594,
|
||||
"Nakshatra": "UttaraAshadha",
|
||||
"NakshatraLord": "Sun",
|
||||
"Object": "V",
|
||||
"Rasi": "Capricorn",
|
||||
"RasiLord": "Saturn",
|
||||
"SignLonDMS": "+01:35:37",
|
||||
"SignLonDecDeg": 1.594,
|
||||
"SubLord": "Jupiter",
|
||||
"SubSubLord": "Saturn"
|
||||
},
|
||||
{
|
||||
"DegSize": 27.128,
|
||||
"HouseNr": 6,
|
||||
"LonDecDeg": 302.306,
|
||||
"Nakshatra": "Dhanishta",
|
||||
"NakshatraLord": "Mars",
|
||||
"Object": "VI",
|
||||
"Rasi": "Aquarius",
|
||||
"RasiLord": "Saturn",
|
||||
"SignLonDMS": "+02:18:22",
|
||||
"SignLonDecDeg": 2.306,
|
||||
"SubLord": "Ketu",
|
||||
"SubSubLord": "Rahu"
|
||||
},
|
||||
{
|
||||
"DegSize": 26.059,
|
||||
"HouseNr": 7,
|
||||
"LonDecDeg": 329.434,
|
||||
"Nakshatra": "PurvaBhādrapadā",
|
||||
"NakshatraLord": "Jupiter",
|
||||
"Object": "VII",
|
||||
"Rasi": "Aquarius",
|
||||
"RasiLord": "Saturn",
|
||||
"SignLonDMS": "+29:26:02",
|
||||
"SignLonDecDeg": 29.434,
|
||||
"SubLord": "Sun",
|
||||
"SubSubLord": "Venus"
|
||||
},
|
||||
{
|
||||
"DegSize": 30.141,
|
||||
"HouseNr": 8,
|
||||
"LonDecDeg": 355.493,
|
||||
"Nakshatra": "Revati",
|
||||
"NakshatraLord": "Mercury",
|
||||
"Object": "VIII",
|
||||
"Rasi": "Pisces",
|
||||
"RasiLord": "Jupiter",
|
||||
"SignLonDMS": "+25:29:35",
|
||||
"SignLonDecDeg": 25.493,
|
||||
"SubLord": "Rahu",
|
||||
"SubSubLord": "Venus"
|
||||
},
|
||||
{
|
||||
"DegSize": 32.894,
|
||||
"HouseNr": 9,
|
||||
"LonDecDeg": 25.634,
|
||||
"Nakshatra": "Bharani",
|
||||
"NakshatraLord": "Venus",
|
||||
"Object": "IX",
|
||||
"Rasi": "Aries",
|
||||
"RasiLord": "Mars",
|
||||
"SignLonDMS": "+25:38:01",
|
||||
"SignLonDecDeg": 25.634,
|
||||
"SubLord": "Mercury",
|
||||
"SubSubLord": "Saturn"
|
||||
},
|
||||
{
|
||||
"DegSize": 33.066,
|
||||
"HouseNr": 10,
|
||||
"LonDecDeg": 58.527,
|
||||
"Nakshatra": "Mrigashīrsha",
|
||||
"NakshatraLord": "Mars",
|
||||
"Object": "X",
|
||||
"Rasi": "Taurus",
|
||||
"RasiLord": "Venus",
|
||||
"SignLonDMS": "+28:31:38",
|
||||
"SignLonDecDeg": 28.527,
|
||||
"SubLord": "Saturn",
|
||||
"SubSubLord": "Ketu"
|
||||
},
|
||||
{
|
||||
"DegSize": 30.713,
|
||||
"HouseNr": 11,
|
||||
"LonDecDeg": 91.594,
|
||||
"Nakshatra": "Punarvasu",
|
||||
"NakshatraLord": "Jupiter",
|
||||
"Object": "XI",
|
||||
"Rasi": "Cancer",
|
||||
"RasiLord": "Moon",
|
||||
"SignLonDMS": "+01:35:37",
|
||||
"SignLonDecDeg": 1.594,
|
||||
"SubLord": "Rahu",
|
||||
"SubSubLord": "Rahu"
|
||||
},
|
||||
{
|
||||
"DegSize": 27.128,
|
||||
"HouseNr": 12,
|
||||
"LonDecDeg": 122.306,
|
||||
"Nakshatra": "Maghā",
|
||||
"NakshatraLord": "Ketu",
|
||||
"Object": "XII",
|
||||
"Rasi": "Leo",
|
||||
"RasiLord": "Sun",
|
||||
"SignLonDMS": "+02:18:22",
|
||||
"SignLonDecDeg": 2.306,
|
||||
"SubLord": "Venus",
|
||||
"SubSubLord": "Saturn"
|
||||
}
|
||||
],
|
||||
"request": {
|
||||
"ayanamsa": "Krishnamurti",
|
||||
"day": 24,
|
||||
"hour": 19,
|
||||
"house_system": "Placidus",
|
||||
"latitude": 37.3382,
|
||||
"longitude": -122.0383,
|
||||
"minute": 15,
|
||||
"month": 2,
|
||||
"second": 0,
|
||||
"timezone": "America/Los_Angeles",
|
||||
"year": 1955
|
||||
}
|
||||
},
|
||||
"raw_hash": "2e7a6b17eb2965a60846f625f6bd8bc03555216d6225983647bcbfa23d0e345b",
|
||||
"schema_fingerprint": {
|
||||
"fields": [
|
||||
"Object",
|
||||
"HouseNr",
|
||||
"Rasi",
|
||||
"LonDecDeg",
|
||||
"SignLonDMS",
|
||||
"SignLonDecDeg",
|
||||
"DegSize",
|
||||
"Nakshatra",
|
||||
"RasiLord",
|
||||
"NakshatraLord",
|
||||
"SubLord",
|
||||
"SubSubLord"
|
||||
],
|
||||
"house_count": 12
|
||||
},
|
||||
"scope": "vedicastro_kp_house_cusp_probe",
|
||||
"status": "complete",
|
||||
"truth_matrix_allowed": false
|
||||
}
|
||||
@@ -0,0 +1,119 @@
|
||||
#!/usr/bin/env python3
|
||||
"""Run VedicAstro KP house cusp star/sub/sub-sub raw probe.
|
||||
|
||||
Requires an isolated PYTHONPATH containing VedicAstro's required sidereal
|
||||
flatlib fork. Output is observation-only until public numeric KP worked
|
||||
examples are replayed.
|
||||
"""
|
||||
from __future__ import annotations
|
||||
|
||||
import argparse
|
||||
import hashlib
|
||||
import importlib.metadata
|
||||
import json
|
||||
import sys
|
||||
from pathlib import Path
|
||||
from typing import Any
|
||||
|
||||
|
||||
ROOT = Path(__file__).resolve().parents[1]
|
||||
SRC = ROOT / "references/open_source_sources/VedicAstro"
|
||||
|
||||
|
||||
def stable(data: Any) -> str:
|
||||
return json.dumps(data, ensure_ascii=False, sort_keys=True, separators=(",", ":"), default=str)
|
||||
|
||||
|
||||
def package_version(name: str) -> str | None:
|
||||
try:
|
||||
return importlib.metadata.version(name)
|
||||
except importlib.metadata.PackageNotFoundError:
|
||||
return None
|
||||
|
||||
|
||||
def build(args: argparse.Namespace) -> dict[str, Any]:
|
||||
sys.path.insert(0, str(SRC))
|
||||
from vedicastro.VedicAstro import VedicHoroscopeData # type: ignore
|
||||
|
||||
chart_input = {
|
||||
"year": args.year,
|
||||
"month": args.month,
|
||||
"day": args.day,
|
||||
"hour": args.hour,
|
||||
"minute": args.minute,
|
||||
"second": args.second,
|
||||
"latitude": args.latitude,
|
||||
"longitude": args.longitude,
|
||||
"timezone": args.timezone,
|
||||
"ayanamsa": args.ayanamsa,
|
||||
"house_system": args.house_system,
|
||||
}
|
||||
v = VedicHoroscopeData(
|
||||
args.year,
|
||||
args.month,
|
||||
args.day,
|
||||
args.hour,
|
||||
args.minute,
|
||||
args.second,
|
||||
args.latitude,
|
||||
args.longitude,
|
||||
tz=args.timezone,
|
||||
ayanamsa=args.ayanamsa,
|
||||
house_system=args.house_system,
|
||||
)
|
||||
houses = v.get_houses_data_from_chart(v.generate_chart())
|
||||
rows = [row._asdict() for row in houses]
|
||||
raw = {
|
||||
"request": chart_input,
|
||||
"houses": rows,
|
||||
}
|
||||
return {
|
||||
"scope": "vedicastro_kp_house_cusp_probe",
|
||||
"created_at": "2026-07-19",
|
||||
"status": "complete",
|
||||
"claim_status": "observation_only",
|
||||
"production_tuning_allowed": False,
|
||||
"truth_matrix_allowed": False,
|
||||
"engine": "VedicAstro",
|
||||
"dependency_identity": {
|
||||
"required_flatlib_source": "git+https://github.com/diliprk/flatlib.git@sidereal",
|
||||
"observed_pinned_flatlib_commit": "2618c348ce1ab2588548f935ff65f031630b4872",
|
||||
"flatlib": package_version("flatlib"),
|
||||
"polars": package_version("polars"),
|
||||
"timezonefinder": package_version("timezonefinder"),
|
||||
},
|
||||
"raw_hash": hashlib.sha256(stable(raw).encode("utf-8")).hexdigest(),
|
||||
"schema_fingerprint": {
|
||||
"house_count": len(rows),
|
||||
"fields": list(rows[0].keys()) if rows else [],
|
||||
},
|
||||
"raw": raw,
|
||||
"boundary": "KP house cusp star/sub/sub-sub raw from VedicAstro runtime. Observation-only until matched against a public numeric KP worked example.",
|
||||
}
|
||||
|
||||
|
||||
def main() -> int:
|
||||
ap = argparse.ArgumentParser()
|
||||
ap.add_argument("--year", type=int, default=1955)
|
||||
ap.add_argument("--month", type=int, default=2)
|
||||
ap.add_argument("--day", type=int, default=24)
|
||||
ap.add_argument("--hour", type=int, default=19)
|
||||
ap.add_argument("--minute", type=int, default=15)
|
||||
ap.add_argument("--second", type=int, default=0)
|
||||
ap.add_argument("--latitude", type=float, default=37.3382)
|
||||
ap.add_argument("--longitude", type=float, default=-122.0383)
|
||||
ap.add_argument("--timezone", default="America/Los_Angeles")
|
||||
ap.add_argument("--ayanamsa", default="Krishnamurti")
|
||||
ap.add_argument("--house-system", default="Placidus")
|
||||
ap.add_argument("--output")
|
||||
args = ap.parse_args()
|
||||
payload = build(args)
|
||||
text = json.dumps(payload, ensure_ascii=False, indent=2, sort_keys=True)
|
||||
if args.output:
|
||||
Path(args.output).write_text(text + "\n", encoding="utf-8")
|
||||
print(text)
|
||||
return 0
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
raise SystemExit(main())
|
||||
@@ -0,0 +1,31 @@
|
||||
import json
|
||||
from pathlib import Path
|
||||
|
||||
|
||||
ROOT = Path(__file__).resolve().parents[1]
|
||||
QUEUE = ROOT / "references/oracle/kp_muhurta_shadbala_numeric_packet_queue_2026_07_19.json"
|
||||
INDEX = ROOT / "references/oracle/evidence_packet_index_2026_07_19.json"
|
||||
|
||||
|
||||
def test_numeric_packet_queue_attaches_kp_runtime_raw_but_no_truth_upgrade():
|
||||
data = json.loads(QUEUE.read_text(encoding="utf-8"))
|
||||
assert data["scope"] == "kp_muhurta_shadbala_numeric_packet_queue"
|
||||
assert data["claim_status"] == "open_queue"
|
||||
assert data["production_tuning_allowed"] is False
|
||||
assert data["truth_matrix_allowed"] is False
|
||||
assert data["runtime_observations"][0]["raw_hash"] == "2e7a6b17eb2965a60846f625f6bd8bc03555216d6225983647bcbfa23d0e345b"
|
||||
assert all(row["numeric_oracle_status"].startswith("blocked_") for row in data["packet_rows"])
|
||||
|
||||
|
||||
def test_numeric_packet_queue_covers_requested_topics():
|
||||
data = json.loads(QUEUE.read_text(encoding="utf-8"))
|
||||
topics = {row["topic"] for row in data["packet_rows"]}
|
||||
assert {"KP cusp", "KP sub-lord table", "Tarabala/Chandrabala", "Rahu Kalam", "Shadbala Virupa"} <= topics
|
||||
for row in data["packet_rows"]:
|
||||
assert "raw_capture_hash" in row["required_fields"] or row["topic"] == "KP sub-lord table"
|
||||
|
||||
|
||||
def test_evidence_index_registers_packet_queue():
|
||||
index = json.loads(INDEX.read_text(encoding="utf-8"))
|
||||
packets = {row["packet_id"]: row for row in index["packets"]}
|
||||
assert packets["kp_muhurta_shadbala_numeric_packet_queue"]["claim_status"] == "open_queue"
|
||||
Reference in New Issue
Block a user