Files
Jyotisha/scripts/oracle_batch_closure_pack.py
2026-07-08 17:03:04 +08:00

112 lines
4.7 KiB
Python

#!/usr/bin/env python3
"""Build a compact batch closure report by reusing existing oracle entrypoints."""
from __future__ import annotations
import argparse
import json
from typing import Any
from scripts.dasha_oracle_closure_status import build_status as build_dasha_status
from scripts.shadbala_oracle_comparison import compare_case as compare_shadbala_case
SHADBALA_CASE_IDS = [
"template_steve_jobs_dasha_lahiri",
"template_steve_jobs_dasha_lahiri",
]
def build_report(oracle_file: str) -> dict[str, Any]:
dasha = build_dasha_status(oracle_file)
shadbala_rows = []
shadbala_within_tolerance = 0
for case_id in SHADBALA_CASE_IDS:
report = compare_shadbala_case(oracle_file=oracle_file, case_id=case_id)
within = report["summary"]["planet_count"] == report["summary"]["planets_within_total_tolerance"]
if within:
shadbala_within_tolerance += 1
shadbala_rows.append({
"kind": "shadbala",
"case_id": report["case_id"],
"status": report["status"],
"ayanamsa": report["settings"].get("ayanamsa"),
"planets_within_total_tolerance": report["summary"]["planets_within_total_tolerance"],
"planet_count": report["summary"]["planet_count"],
"max_abs_total_delta_rupa": report["summary"]["max_abs_total_delta_rupa"],
"global_scaling_recommendation": report["global_scaling_check"].get("recommendation"),
"within_case_tolerance": within,
})
rows = [{
"kind": "dasha",
"dasha_task_count": dasha["summary"]["dasha_task_count"],
"external_verified_dasha_tasks": dasha["summary"]["external_verified_dasha_tasks"],
"can_claim_dasha_oracle_closure": dasha["summary"]["can_claim_dasha_oracle_closure"],
"production_tuning_allowed": dasha["summary"]["production_tuning_allowed"],
}, *shadbala_rows]
return {
"scope": "oracle_batch_closure_pack",
"schema_version": 1,
"summary": {
"dasha_can_claim_closure": dasha["summary"]["can_claim_dasha_oracle_closure"],
"shadbala_case_count": len(shadbala_rows),
"shadbala_within_tolerance_case_count": shadbala_within_tolerance,
"global_oracle_closure_blocked": True,
},
"rows": rows,
"boundary": (
"This pack reuses existing Dasha and Shadbala oracle entrypoints. "
"Dasha-only closure can be complete while global oracle closure remains blocked "
"until Shadbala and other non-Dasha fronts are closed."
),
"next_actions": [
"Keep reusing dasha_oracle_closure_status.py for Dasha truth instead of duplicating logic.",
"Expand Shadbala comparison case count before changing any production-tuning claim.",
"Do not apply a global scaling factor when component-level deltas disagree by planet.",
],
}
def main() -> None:
parser = argparse.ArgumentParser(description="Build a compact batched oracle closure report")
parser.add_argument("--oracle-file", default="references/oracle/dasha_shadbala_oracle_cases.json")
parser.add_argument("--format", choices=("json", "markdown"), default="json")
args = parser.parse_args()
report = build_report(args.oracle_file)
if args.format == "markdown":
lines = [
"# Oracle Batch Closure Pack",
"",
f"- dasha_can_claim_closure: `{str(report['summary']['dasha_can_claim_closure']).lower()}`",
f"- shadbala_case_count: `{report['summary']['shadbala_case_count']}`",
f"- shadbala_within_tolerance_case_count: `{report['summary']['shadbala_within_tolerance_case_count']}`",
f"- global_oracle_closure_blocked: `{str(report['summary']['global_oracle_closure_blocked']).lower()}`",
"",
"| Kind | Case | Status | Notes |",
"| --- | --- | --- | --- |",
]
for row in report["rows"]:
if row["kind"] == "dasha":
lines.append(
f"| dasha | target_set | {'closed' if row['can_claim_dasha_oracle_closure'] else 'open'} | "
f"{row['external_verified_dasha_tasks']}/{row['dasha_task_count']} external verified |"
)
else:
lines.append(
f"| shadbala | {row['case_id']} | {row['status']} | "
f"{row['planets_within_total_tolerance']}/{row['planet_count']} planets within tolerance; "
f"max delta {row['max_abs_total_delta_rupa']} |"
)
print("\n".join(lines))
return
print(json.dumps(report, ensure_ascii=False, indent=2))
if __name__ == "__main__":
main()