feat: sync ordered oss remaining probes
This commit is contained in:
@@ -0,0 +1,27 @@
|
||||
{
|
||||
"scope": "d1_d60_public_source_candidate_queue",
|
||||
"created_at": "2026-07-19",
|
||||
"status": "candidate_sources_registered",
|
||||
"claim_status": "open_queue",
|
||||
"production_tuning_allowed": false,
|
||||
"truth_matrix_allowed": false,
|
||||
"source_registry": "references/oracle/d1_d60_varga_mapping_registry_2026_07_19.json",
|
||||
"candidate_sources": [
|
||||
{
|
||||
"url": "https://www.barbarapijan.com/bpa/Varga/varga.html",
|
||||
"candidate_use": "D1-D60 names/use cross-check",
|
||||
"oracle_status": "source_text_candidate_not_numeric_oracle"
|
||||
},
|
||||
{
|
||||
"url": "https://www.astrosage.com/astrology/divisional-charts.asp",
|
||||
"candidate_use": "common varga names/use",
|
||||
"oracle_status": "source_text_candidate_not_numeric_oracle"
|
||||
},
|
||||
{
|
||||
"url": "https://github.com/northtara/jyotishganit",
|
||||
"candidate_use": "permissive OSS varga implementation cross-check",
|
||||
"oracle_status": "observation_only"
|
||||
}
|
||||
],
|
||||
"boundary": "Public source text may upgrade names/uses only after citation and formula variant review. It does not create numeric oracle parity."
|
||||
}
|
||||
@@ -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": 54,
|
||||
"packet_count": 60,
|
||||
"blocked_or_partial_count": 40,
|
||||
"human_review_required_count": 1
|
||||
},
|
||||
@@ -441,6 +441,54 @@
|
||||
"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."
|
||||
},
|
||||
{
|
||||
"packet_id": "four_engine_comparison_queue",
|
||||
"path": "references/oracle/four_engine_comparison_queue_2026_07_19.json",
|
||||
"domain": "four_engine_parity",
|
||||
"claim_status": "open_queue",
|
||||
"consumer_policy": "research_to_commercial_contract_only",
|
||||
"claim_boundary": "Unified local/Xalen/jyotishganit/VedicAstro queue; same input/fields/hash/mismatch attribution only, no majority vote truth."
|
||||
},
|
||||
{
|
||||
"packet_id": "vedicastro_kp_cusp_batch_probe",
|
||||
"path": "references/oracle/vedicastro_kp_cusp_batch_probe_2026_07_19.json",
|
||||
"domain": "kp_precision_timing_dependency",
|
||||
"claim_status": "observation_only",
|
||||
"consumer_policy": "research_to_commercial_contract_only",
|
||||
"claim_boundary": "VedicAstro KP cusp batch raw exists for runtime observation; public worked-example oracle closure remains open."
|
||||
},
|
||||
{
|
||||
"packet_id": "jyotishganit_shadbala_surface_probe",
|
||||
"path": "references/oracle/jyotishganit_shadbala_surface_probe_steve_jobs_2026_07_19.json",
|
||||
"domain": "shadbala_component_closure",
|
||||
"claim_status": "observation_only",
|
||||
"consumer_policy": "research_to_commercial_contract_only",
|
||||
"claim_boundary": "jyotishganit Shadbala raw surface is captured for Steve Jobs fixture; component closure remains open until field mapping and worked-example arbitration."
|
||||
},
|
||||
{
|
||||
"packet_id": "vedicastro_kp_cusp_batch_probe_script",
|
||||
"path": "scripts/vedicastro_kp_cusp_batch_probe.py",
|
||||
"domain": "kp_precision_timing_dependency",
|
||||
"claim_status": "tooling_observation_only",
|
||||
"consumer_policy": "research_to_commercial_contract_only",
|
||||
"claim_boundary": "Batch probe script collects KP cusp raw/hash in isolated runtime; not a production truth source."
|
||||
},
|
||||
{
|
||||
"packet_id": "d1_d60_public_source_candidate_queue",
|
||||
"path": "references/oracle/d1_d60_public_source_candidate_queue_2026_07_19.json",
|
||||
"domain": "divisional_chart_source_queue",
|
||||
"claim_status": "open_queue",
|
||||
"consumer_policy": "research_to_commercial_contract_only",
|
||||
"claim_boundary": "D1-D60 public source candidates fill names/use cases only; generic-only Dn remains hidden where authority is missing."
|
||||
},
|
||||
{
|
||||
"packet_id": "muhurta_oss_factor_scoring_queue",
|
||||
"path": "references/oracle/muhurta_oss_factor_scoring_queue_2026_07_19.json",
|
||||
"domain": "muhurta_factor_scoring",
|
||||
"claim_status": "open_queue",
|
||||
"consumer_policy": "research_to_commercial_contract_only",
|
||||
"claim_boundary": "Muhurta OSS factor queue records candidates; no production scoring upgrade without source, raw/hash, and worked examples."
|
||||
}
|
||||
]
|
||||
}
|
||||
|
||||
@@ -0,0 +1,16 @@
|
||||
{
|
||||
"scope": "four_engine_comparison_queue",
|
||||
"created_at": "2026-07-19",
|
||||
"status": "queue_ready",
|
||||
"claim_status": "partial",
|
||||
"production_tuning_allowed": false,
|
||||
"truth_matrix_allowed": false,
|
||||
"engines": ["local", "Xalen", "jyotishganit", "VedicAstro"],
|
||||
"attached_observations": [
|
||||
"references/oracle/jyotishganit_vs_local_field_comparison_steve_jobs_2026_07_19.json",
|
||||
"references/oracle/vedicastro_kp_house_cusp_probe_steve_jobs_2026_07_19.json",
|
||||
"references/oracle/xalen_fourth_oracle_comparison_2026_07_17.json"
|
||||
],
|
||||
"target_fields": ["D2", "D4", "D9", "D10", "BAV", "SAV", "Shadbala", "KP_cusps"],
|
||||
"boundary": "Four-engine queue requires shared input contract and per-field unit/schema mapping. It is not majority-vote truth."
|
||||
}
|
||||
@@ -0,0 +1,372 @@
|
||||
{
|
||||
"api_surface": {
|
||||
"calculate_all_strengths": true,
|
||||
"compute_shadbala": true,
|
||||
"six_strengths": [
|
||||
"Sthanabala",
|
||||
"Digbala",
|
||||
"Kaalabala",
|
||||
"Cheshtabala",
|
||||
"Naisargikabala",
|
||||
"Drikbala"
|
||||
]
|
||||
},
|
||||
"boundary": "jyotishganit exposes Shadbala via object surface, not top-level to_dict. Observation-only until component units and external worked examples are compared.",
|
||||
"claim_status": "observation_only",
|
||||
"coverage": {
|
||||
"Jupiter": {
|
||||
"Cheshtabala": true,
|
||||
"Digbala": true,
|
||||
"Drikbala": true,
|
||||
"Kaalabala": true,
|
||||
"Naisargikabala": true,
|
||||
"Shadbala": true,
|
||||
"Sthanabala": true
|
||||
},
|
||||
"Ketu": {
|
||||
"Cheshtabala": false,
|
||||
"Digbala": false,
|
||||
"Drikbala": false,
|
||||
"Kaalabala": true,
|
||||
"Naisargikabala": false,
|
||||
"Shadbala": false,
|
||||
"Sthanabala": false
|
||||
},
|
||||
"Mars": {
|
||||
"Cheshtabala": true,
|
||||
"Digbala": true,
|
||||
"Drikbala": true,
|
||||
"Kaalabala": true,
|
||||
"Naisargikabala": true,
|
||||
"Shadbala": true,
|
||||
"Sthanabala": true
|
||||
},
|
||||
"Mercury": {
|
||||
"Cheshtabala": true,
|
||||
"Digbala": true,
|
||||
"Drikbala": true,
|
||||
"Kaalabala": true,
|
||||
"Naisargikabala": true,
|
||||
"Shadbala": true,
|
||||
"Sthanabala": true
|
||||
},
|
||||
"Moon": {
|
||||
"Cheshtabala": true,
|
||||
"Digbala": true,
|
||||
"Drikbala": true,
|
||||
"Kaalabala": true,
|
||||
"Naisargikabala": true,
|
||||
"Shadbala": true,
|
||||
"Sthanabala": true
|
||||
},
|
||||
"Rahu": {
|
||||
"Cheshtabala": false,
|
||||
"Digbala": false,
|
||||
"Drikbala": false,
|
||||
"Kaalabala": true,
|
||||
"Naisargikabala": false,
|
||||
"Shadbala": false,
|
||||
"Sthanabala": false
|
||||
},
|
||||
"Saturn": {
|
||||
"Cheshtabala": true,
|
||||
"Digbala": true,
|
||||
"Drikbala": true,
|
||||
"Kaalabala": true,
|
||||
"Naisargikabala": true,
|
||||
"Shadbala": true,
|
||||
"Sthanabala": true
|
||||
},
|
||||
"Sun": {
|
||||
"Cheshtabala": true,
|
||||
"Digbala": true,
|
||||
"Drikbala": true,
|
||||
"Kaalabala": true,
|
||||
"Naisargikabala": true,
|
||||
"Shadbala": true,
|
||||
"Sthanabala": true
|
||||
},
|
||||
"Venus": {
|
||||
"Cheshtabala": true,
|
||||
"Digbala": true,
|
||||
"Drikbala": true,
|
||||
"Kaalabala": true,
|
||||
"Naisargikabala": true,
|
||||
"Shadbala": true,
|
||||
"Sthanabala": true
|
||||
}
|
||||
},
|
||||
"created_at": "2026-07-19",
|
||||
"production_tuning_allowed": false,
|
||||
"raw": {
|
||||
"request": {
|
||||
"datetime": "1955-02-24T19:15:00",
|
||||
"latitude": 37.3382,
|
||||
"location": "San Francisco, CA",
|
||||
"longitude": -122.0383,
|
||||
"name": "Steve Jobs public",
|
||||
"output": "references/oracle/jyotishganit_shadbala_surface_probe_steve_jobs_2026_07_19.json",
|
||||
"timezone": -8.0
|
||||
},
|
||||
"shadbala": {
|
||||
"Jupiter": {
|
||||
"Cheshtabala": 36.424,
|
||||
"Digbala": 44.095,
|
||||
"Drikbala": 4.072,
|
||||
"Ishtabala": 45.736,
|
||||
"Kaalabala": {
|
||||
"Ayanabala": 57.817,
|
||||
"Natonnatabala": 47.5,
|
||||
"Pakshabala": 10.667,
|
||||
"Total": 250.984,
|
||||
"Tribhagabala": 60.0,
|
||||
"VarshaMaasaDinaHoraBala": 75.0,
|
||||
"Yuddhabala": 0.0
|
||||
},
|
||||
"Kashtabala": 14.264,
|
||||
"Naisargikabala": 34.29,
|
||||
"Shadbala": {
|
||||
"Rupas": 9.934,
|
||||
"Total": 596.043
|
||||
},
|
||||
"Sthanabala": {
|
||||
"Drekshanabala": 0.0,
|
||||
"Kendradhibala": 30.0,
|
||||
"Ojhayugmarashiamshabala": 30.0,
|
||||
"Saptavargajabala": 108.75,
|
||||
"Total": 226.178,
|
||||
"Uchhabala": 57.428
|
||||
},
|
||||
"Vimshopaka": {
|
||||
"dashavarga": 7.625,
|
||||
"saptavarga": 7.625,
|
||||
"shadvarga": 7.25,
|
||||
"shodashavarga": 7.875
|
||||
}
|
||||
},
|
||||
"Ketu": {
|
||||
"Kaalabala": {
|
||||
"Pakshabala": 0.0
|
||||
}
|
||||
},
|
||||
"Mars": {
|
||||
"Cheshtabala": 22.864,
|
||||
"Digbala": 46.955,
|
||||
"Drikbala": 12.483,
|
||||
"Ishtabala": 29.234,
|
||||
"Kaalabala": {
|
||||
"Ayanabala": 44.574,
|
||||
"Natonnatabala": 12.5,
|
||||
"Pakshabala": 49.333,
|
||||
"Total": 106.407,
|
||||
"Tribhagabala": 0.0,
|
||||
"VarshaMaasaDinaHoraBala": 0.0,
|
||||
"Yuddhabala": 0.0
|
||||
},
|
||||
"Kashtabala": 30.766,
|
||||
"Naisargikabala": 17.14,
|
||||
"Shadbala": {
|
||||
"Rupas": 7.304,
|
||||
"Total": 438.227
|
||||
},
|
||||
"Sthanabala": {
|
||||
"Drekshanabala": 15.0,
|
||||
"Kendradhibala": 15.0,
|
||||
"Ojhayugmarashiamshabala": 15.0,
|
||||
"Saptavargajabala": 150.0,
|
||||
"Total": 232.378,
|
||||
"Uchhabala": 37.378
|
||||
},
|
||||
"Vimshopaka": {
|
||||
"dashavarga": 11.175,
|
||||
"saptavarga": 8.2,
|
||||
"shadvarga": 8.5,
|
||||
"shodashavarga": 11.9
|
||||
}
|
||||
},
|
||||
"Mercury": {
|
||||
"Cheshtabala": 35.368,
|
||||
"Digbala": 7.954,
|
||||
"Drikbala": -10.985,
|
||||
"Ishtabala": 25.199,
|
||||
"Kaalabala": {
|
||||
"Ayanabala": 12.089,
|
||||
"Natonnatabala": 60.0,
|
||||
"Pakshabala": 0.0,
|
||||
"Total": 72.089,
|
||||
"Tribhagabala": 0.0,
|
||||
"VarshaMaasaDinaHoraBala": 0.0,
|
||||
"Yuddhabala": 0.0
|
||||
},
|
||||
"Kashtabala": 34.801,
|
||||
"Naisargikabala": 25.71,
|
||||
"Shadbala": {
|
||||
"Rupas": 4.031,
|
||||
"Total": 241.84
|
||||
},
|
||||
"Sthanabala": {
|
||||
"Drekshanabala": 0.0,
|
||||
"Kendradhibala": 15.0,
|
||||
"Ojhayugmarashiamshabala": 0.0,
|
||||
"Saptavargajabala": 78.75,
|
||||
"Total": 111.704,
|
||||
"Uchhabala": 17.954
|
||||
},
|
||||
"Vimshopaka": {
|
||||
"dashavarga": 12.45,
|
||||
"saptavarga": 10.075,
|
||||
"shadvarga": 9.3,
|
||||
"shodashavarga": 11.2
|
||||
}
|
||||
},
|
||||
"Moon": {
|
||||
"Cheshtabala": 10.667,
|
||||
"Digbala": 20.159,
|
||||
"Drikbala": 13.946,
|
||||
"Ishtabala": 21.625,
|
||||
"Kaalabala": {
|
||||
"Ayanabala": 39.945,
|
||||
"Natonnatabala": 12.5,
|
||||
"Pakshabala": 10.667,
|
||||
"Total": 183.112,
|
||||
"Tribhagabala": 60.0,
|
||||
"VarshaMaasaDinaHoraBala": 60.0
|
||||
},
|
||||
"Kashtabala": 38.375,
|
||||
"Naisargikabala": 51.43,
|
||||
"Shadbala": {
|
||||
"Rupas": 7.011,
|
||||
"Total": 420.655
|
||||
},
|
||||
"Sthanabala": {
|
||||
"Drekshanabala": 0.0,
|
||||
"Kendradhibala": 30.0,
|
||||
"Ojhayugmarashiamshabala": 30.0,
|
||||
"Saptavargajabala": 37.5,
|
||||
"Total": 141.341,
|
||||
"Uchhabala": 43.841
|
||||
},
|
||||
"Vimshopaka": {
|
||||
"dashavarga": 13.2,
|
||||
"saptavarga": 11.5,
|
||||
"shadvarga": 10.9,
|
||||
"shodashavarga": 12.125
|
||||
}
|
||||
},
|
||||
"Rahu": {
|
||||
"Kaalabala": {
|
||||
"Pakshabala": 0.0
|
||||
}
|
||||
},
|
||||
"Saturn": {
|
||||
"Cheshtabala": 58.137,
|
||||
"Digbala": 24.313,
|
||||
"Drikbala": 8.06,
|
||||
"Ishtabala": 57.744,
|
||||
"Kaalabala": {
|
||||
"Ayanabala": 10.096,
|
||||
"Natonnatabala": 12.5,
|
||||
"Pakshabala": 49.333,
|
||||
"Total": 71.929,
|
||||
"Tribhagabala": 0.0,
|
||||
"VarshaMaasaDinaHoraBala": 0.0,
|
||||
"Yuddhabala": 0.0
|
||||
},
|
||||
"Kashtabala": 2.256,
|
||||
"Naisargikabala": 8.57,
|
||||
"Shadbala": {
|
||||
"Rupas": 5.369,
|
||||
"Total": 322.113
|
||||
},
|
||||
"Sthanabala": {
|
||||
"Drekshanabala": 0.0,
|
||||
"Kendradhibala": 15.0,
|
||||
"Ojhayugmarashiamshabala": 30.0,
|
||||
"Saptavargajabala": 48.75,
|
||||
"Total": 151.104,
|
||||
"Uchhabala": 57.354
|
||||
},
|
||||
"Vimshopaka": {
|
||||
"dashavarga": 10.55,
|
||||
"saptavarga": 12.975,
|
||||
"shadvarga": 14.05,
|
||||
"shodashavarga": 12.275
|
||||
}
|
||||
},
|
||||
"Sun": {
|
||||
"Cheshtabala": 37.06,
|
||||
"Digbala": 29.175,
|
||||
"Drikbala": -6.462,
|
||||
"Ishtabala": 38.905,
|
||||
"Kaalabala": {
|
||||
"Ayanabala": 37.06,
|
||||
"Natonnatabala": 47.5,
|
||||
"Pakshabala": 49.333,
|
||||
"Total": 148.893,
|
||||
"Tribhagabala": 0.0,
|
||||
"VarshaMaasaDinaHoraBala": 15.0
|
||||
},
|
||||
"Kashtabala": 21.095,
|
||||
"Naisargikabala": 60.0,
|
||||
"Shadbala": {
|
||||
"Rupas": 7.033,
|
||||
"Total": 422.007
|
||||
},
|
||||
"Sthanabala": {
|
||||
"Drekshanabala": 0.0,
|
||||
"Kendradhibala": 60.0,
|
||||
"Ojhayugmarashiamshabala": 15.0,
|
||||
"Saptavargajabala": 37.5,
|
||||
"Total": 153.341,
|
||||
"Uchhabala": 40.841
|
||||
},
|
||||
"Vimshopaka": {
|
||||
"dashavarga": 11.875,
|
||||
"saptavarga": 11.525,
|
||||
"shadvarga": 10.55,
|
||||
"shodashavarga": 10.125
|
||||
}
|
||||
},
|
||||
"Venus": {
|
||||
"Cheshtabala": 46.466,
|
||||
"Digbala": 45.684,
|
||||
"Drikbala": -4.511,
|
||||
"Ishtabala": 37.532,
|
||||
"Kaalabala": {
|
||||
"Ayanabala": 5.019,
|
||||
"Natonnatabala": 47.5,
|
||||
"Pakshabala": 10.667,
|
||||
"Total": 63.186,
|
||||
"Tribhagabala": 0.0,
|
||||
"VarshaMaasaDinaHoraBala": 0.0,
|
||||
"Yuddhabala": 0.0
|
||||
},
|
||||
"Kashtabala": 22.468,
|
||||
"Naisargikabala": 42.86,
|
||||
"Shadbala": {
|
||||
"Rupas": 5.108,
|
||||
"Total": 306.501
|
||||
},
|
||||
"Sthanabala": {
|
||||
"Drekshanabala": 15.0,
|
||||
"Kendradhibala": 30.0,
|
||||
"Ojhayugmarashiamshabala": 0.0,
|
||||
"Saptavargajabala": 37.5,
|
||||
"Total": 112.816,
|
||||
"Uchhabala": 30.316
|
||||
},
|
||||
"Vimshopaka": {
|
||||
"dashavarga": 10.95,
|
||||
"saptavarga": 8.275,
|
||||
"shadvarga": 8.05,
|
||||
"shodashavarga": 11.275
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"raw_hash": "8748eb3c54481929a1d7232eb40032bd7c86e6e9e59a38193c233a35c18fb972",
|
||||
"scope": "jyotishganit_shadbala_surface_probe",
|
||||
"source_path": "references/open_source_sources/jyotishganit/jyotishganit/components/strengths.py",
|
||||
"status": "complete",
|
||||
"truth_matrix_allowed": false
|
||||
}
|
||||
@@ -0,0 +1,31 @@
|
||||
{
|
||||
"scope": "muhurta_oss_factor_scoring_queue",
|
||||
"created_at": "2026-07-19",
|
||||
"status": "queue_ready",
|
||||
"claim_status": "partial",
|
||||
"production_tuning_allowed": false,
|
||||
"truth_matrix_allowed": false,
|
||||
"local_oss_sources": [
|
||||
{
|
||||
"project": "dashaflow",
|
||||
"path": "references/open_source_sources/dashaflow/muhurtha.py",
|
||||
"available_surface": "evaluate_muhurtha(activity, panchang, planets=None, lagna_sign=None)",
|
||||
"reuse_boundary": "unknown/license must be checked before code reuse; reference/probe only now"
|
||||
},
|
||||
{
|
||||
"project": "rishi-ai-mcp",
|
||||
"path": "references/open_source_sources/rishi-ai-mcp/test_rishi_ai_mcp.py",
|
||||
"available_surface": "check_muhurtha_tool smoke expectations",
|
||||
"reuse_boundary": "product workflow reference only unless license/runtime reviewed"
|
||||
}
|
||||
],
|
||||
"factor_rows": [
|
||||
{"factor": "panchanga_suddhi", "status": "oss_surface_present", "claim": "observation_only"},
|
||||
{"factor": "activity_specific_rules", "status": "oss_surface_present", "claim": "observation_only"},
|
||||
{"factor": "tarabala", "status": "local_probe_present_needs_oss_formula_alignment", "claim": "observation_only"},
|
||||
{"factor": "chandrabala", "status": "local_probe_present_needs_oss_formula_alignment", "claim": "observation_only"},
|
||||
{"factor": "rahu_kalam", "status": "local_probe_present_needs_public_interval_fixture", "claim": "observation_only"},
|
||||
{"factor": "abhijit", "status": "local_probe_present_needs_public_interval_fixture", "claim": "observation_only"}
|
||||
],
|
||||
"boundary": "Queue prepares full scoring; do not output final Muhurta verdict until license, formula weights, public examples, and negative controls close."
|
||||
}
|
||||
@@ -0,0 +1,580 @@
|
||||
{
|
||||
"boundary": "Batch public-case KP cusp runtime raw. Observation-only; public worked-example expected values are still required for numeric oracle readiness.",
|
||||
"cases": [
|
||||
{
|
||||
"case_id": "einstein_1879_aa",
|
||||
"house_count": 12,
|
||||
"name": "Albert Einstein",
|
||||
"raw": {
|
||||
"case_id": "einstein_1879_aa",
|
||||
"houses": [
|
||||
{
|
||||
"DegSize": 17.044,
|
||||
"HouseNr": 1,
|
||||
"LonDecDeg": 76.841,
|
||||
"Nakshatra": "Ardra",
|
||||
"NakshatraLord": "Rahu",
|
||||
"Object": "I",
|
||||
"Rasi": "Gemini",
|
||||
"RasiLord": "Mercury",
|
||||
"SignLonDMS": "+16:50:26",
|
||||
"SignLonDecDeg": 16.841,
|
||||
"SubLord": "Venus",
|
||||
"SubSubLord": "Saturn"
|
||||
},
|
||||
{
|
||||
"DegSize": 18.923,
|
||||
"HouseNr": 2,
|
||||
"LonDecDeg": 93.885,
|
||||
"Nakshatra": "Pushya",
|
||||
"NakshatraLord": "Saturn",
|
||||
"Object": "II",
|
||||
"Rasi": "Cancer",
|
||||
"RasiLord": "Moon",
|
||||
"SignLonDMS": "+03:53:05",
|
||||
"SignLonDecDeg": 3.885,
|
||||
"SubLord": "Saturn",
|
||||
"SubSubLord": "Mercury"
|
||||
},
|
||||
{
|
||||
"DegSize": 24.444,
|
||||
"HouseNr": 3,
|
||||
"LonDecDeg": 112.808,
|
||||
"Nakshatra": "Āshleshā",
|
||||
"NakshatraLord": "Mercury",
|
||||
"Object": "III",
|
||||
"Rasi": "Cancer",
|
||||
"RasiLord": "Moon",
|
||||
"SignLonDMS": "+22:48:29",
|
||||
"SignLonDecDeg": 22.808,
|
||||
"SubLord": "Moon",
|
||||
"SubSubLord": "Saturn"
|
||||
},
|
||||
{
|
||||
"DegSize": 34.813,
|
||||
"HouseNr": 4,
|
||||
"LonDecDeg": 137.251,
|
||||
"Nakshatra": "PūrvaPhalgunī",
|
||||
"NakshatraLord": "Venus",
|
||||
"Object": "IV",
|
||||
"Rasi": "Leo",
|
||||
"RasiLord": "Sun",
|
||||
"SignLonDMS": "+17:15:05",
|
||||
"SignLonDecDeg": 17.251,
|
||||
"SubLord": "Moon",
|
||||
"SubSubLord": "Venus"
|
||||
},
|
||||
{
|
||||
"DegSize": 45.122,
|
||||
"HouseNr": 5,
|
||||
"LonDecDeg": 172.065,
|
||||
"Nakshatra": "Hasta",
|
||||
"NakshatraLord": "Moon",
|
||||
"Object": "V",
|
||||
"Rasi": "Virgo",
|
||||
"RasiLord": "Mercury",
|
||||
"SignLonDMS": "+22:03:52",
|
||||
"SignLonDecDeg": 22.065,
|
||||
"SubLord": "Venus",
|
||||
"SubSubLord": "Saturn"
|
||||
},
|
||||
{
|
||||
"DegSize": 39.654,
|
||||
"HouseNr": 6,
|
||||
"LonDecDeg": 217.186,
|
||||
"Nakshatra": "Anuradha",
|
||||
"NakshatraLord": "Saturn",
|
||||
"Object": "VI",
|
||||
"Rasi": "Scorpio",
|
||||
"RasiLord": "Mars",
|
||||
"SignLonDMS": "+07:11:11",
|
||||
"SignLonDecDeg": 7.186,
|
||||
"SubLord": "Mercury",
|
||||
"SubSubLord": "Saturn"
|
||||
},
|
||||
{
|
||||
"DegSize": 17.044,
|
||||
"HouseNr": 7,
|
||||
"LonDecDeg": 256.841,
|
||||
"Nakshatra": "PurvaAshadha",
|
||||
"NakshatraLord": "Venus",
|
||||
"Object": "VII",
|
||||
"Rasi": "Sagittarius",
|
||||
"RasiLord": "Jupiter",
|
||||
"SignLonDMS": "+16:50:26",
|
||||
"SignLonDecDeg": 16.841,
|
||||
"SubLord": "Moon",
|
||||
"SubSubLord": "Saturn"
|
||||
},
|
||||
{
|
||||
"DegSize": 18.923,
|
||||
"HouseNr": 8,
|
||||
"LonDecDeg": 273.885,
|
||||
"Nakshatra": "UttaraAshadha",
|
||||
"NakshatraLord": "Sun",
|
||||
"Object": "VIII",
|
||||
"Rasi": "Capricorn",
|
||||
"RasiLord": "Saturn",
|
||||
"SignLonDMS": "+03:53:05",
|
||||
"SignLonDecDeg": 3.885,
|
||||
"SubLord": "Saturn",
|
||||
"SubSubLord": "Venus"
|
||||
},
|
||||
{
|
||||
"DegSize": 24.444,
|
||||
"HouseNr": 9,
|
||||
"LonDecDeg": 292.808,
|
||||
"Nakshatra": "Shravana",
|
||||
"NakshatraLord": "Moon",
|
||||
"Object": "IX",
|
||||
"Rasi": "Capricorn",
|
||||
"RasiLord": "Saturn",
|
||||
"SignLonDMS": "+22:48:29",
|
||||
"SignLonDecDeg": 22.808,
|
||||
"SubLord": "Sun",
|
||||
"SubSubLord": "Rahu"
|
||||
},
|
||||
{
|
||||
"DegSize": 34.813,
|
||||
"HouseNr": 10,
|
||||
"LonDecDeg": 317.251,
|
||||
"Nakshatra": "Shatabhisha",
|
||||
"NakshatraLord": "Rahu",
|
||||
"Object": "X",
|
||||
"Rasi": "Aquarius",
|
||||
"RasiLord": "Saturn",
|
||||
"SignLonDMS": "+17:15:05",
|
||||
"SignLonDecDeg": 17.251,
|
||||
"SubLord": "Venus",
|
||||
"SubSubLord": "Mercury"
|
||||
},
|
||||
{
|
||||
"DegSize": 45.122,
|
||||
"HouseNr": 11,
|
||||
"LonDecDeg": 352.065,
|
||||
"Nakshatra": "Revati",
|
||||
"NakshatraLord": "Mercury",
|
||||
"Object": "XI",
|
||||
"Rasi": "Pisces",
|
||||
"RasiLord": "Jupiter",
|
||||
"SignLonDMS": "+22:03:52",
|
||||
"SignLonDecDeg": 22.065,
|
||||
"SubLord": "Sun",
|
||||
"SubSubLord": "Mercury"
|
||||
},
|
||||
{
|
||||
"DegSize": 39.654,
|
||||
"HouseNr": 12,
|
||||
"LonDecDeg": 37.186,
|
||||
"Nakshatra": "Krittika",
|
||||
"NakshatraLord": "Sun",
|
||||
"Object": "XII",
|
||||
"Rasi": "Taurus",
|
||||
"RasiLord": "Venus",
|
||||
"SignLonDMS": "+07:11:11",
|
||||
"SignLonDecDeg": 7.186,
|
||||
"SubLord": "Ketu",
|
||||
"SubSubLord": "Sun"
|
||||
}
|
||||
],
|
||||
"name": "Albert Einstein",
|
||||
"sources": [
|
||||
"https://www.astro.com/astro-databank/Einstein,_Albert",
|
||||
"https://vedastro.org/AstroDataBank/Person/Albert_Einstein"
|
||||
]
|
||||
},
|
||||
"raw_hash": "ae871ee36c3ef5d88687206eb72fe5cac46d2ccbdc55b02b3776cbb8cacad78e",
|
||||
"status": "complete"
|
||||
},
|
||||
{
|
||||
"case_id": "steve_jobs_1955_aa",
|
||||
"house_count": 12,
|
||||
"name": "Steve Jobs",
|
||||
"raw": {
|
||||
"case_id": "steve_jobs_1955_aa",
|
||||
"houses": [
|
||||
{
|
||||
"DegSize": 25.952,
|
||||
"HouseNr": 1,
|
||||
"LonDecDeg": 149.152,
|
||||
"Nakshatra": "UttaraPhalgunī",
|
||||
"NakshatraLord": "Sun",
|
||||
"Object": "I",
|
||||
"Rasi": "Leo",
|
||||
"RasiLord": "Sun",
|
||||
"SignLonDMS": "+29:09:09",
|
||||
"SignLonDecDeg": 29.152,
|
||||
"SubLord": "Mars",
|
||||
"SubSubLord": "Sun"
|
||||
},
|
||||
{
|
||||
"DegSize": 30.11,
|
||||
"HouseNr": 2,
|
||||
"LonDecDeg": 175.104,
|
||||
"Nakshatra": "Chitra",
|
||||
"NakshatraLord": "Mars",
|
||||
"Object": "II",
|
||||
"Rasi": "Virgo",
|
||||
"RasiLord": "Mercury",
|
||||
"SignLonDMS": "+25:06:14",
|
||||
"SignLonDecDeg": 25.104,
|
||||
"SubLord": "Rahu",
|
||||
"SubSubLord": "Mercury"
|
||||
},
|
||||
{
|
||||
"DegSize": 32.962,
|
||||
"HouseNr": 3,
|
||||
"LonDecDeg": 205.214,
|
||||
"Nakshatra": "Vishakha",
|
||||
"NakshatraLord": "Jupiter",
|
||||
"Object": "III",
|
||||
"Rasi": "Libra",
|
||||
"RasiLord": "Venus",
|
||||
"SignLonDMS": "+25:12:52",
|
||||
"SignLonDecDeg": 25.214,
|
||||
"SubLord": "Mercury",
|
||||
"SubSubLord": "Rahu"
|
||||
},
|
||||
{
|
||||
"DegSize": 33.159,
|
||||
"HouseNr": 4,
|
||||
"LonDecDeg": 238.176,
|
||||
"Nakshatra": "Jyeshtha",
|
||||
"NakshatraLord": "Mercury",
|
||||
"Object": "IV",
|
||||
"Rasi": "Scorpio",
|
||||
"RasiLord": "Mars",
|
||||
"SignLonDMS": "+28:10:35",
|
||||
"SignLonDecDeg": 28.176,
|
||||
"SubLord": "Saturn",
|
||||
"SubSubLord": "Saturn"
|
||||
},
|
||||
{
|
||||
"DegSize": 30.735,
|
||||
"HouseNr": 5,
|
||||
"LonDecDeg": 271.335,
|
||||
"Nakshatra": "UttaraAshadha",
|
||||
"NakshatraLord": "Sun",
|
||||
"Object": "V",
|
||||
"Rasi": "Capricorn",
|
||||
"RasiLord": "Saturn",
|
||||
"SignLonDMS": "+01:20:06",
|
||||
"SignLonDecDeg": 1.335,
|
||||
"SubLord": "Jupiter",
|
||||
"SubSubLord": "Jupiter"
|
||||
},
|
||||
{
|
||||
"DegSize": 27.082,
|
||||
"HouseNr": 6,
|
||||
"LonDecDeg": 302.07,
|
||||
"Nakshatra": "Dhanishta",
|
||||
"NakshatraLord": "Mars",
|
||||
"Object": "VI",
|
||||
"Rasi": "Aquarius",
|
||||
"RasiLord": "Saturn",
|
||||
"SignLonDMS": "+02:04:13",
|
||||
"SignLonDecDeg": 2.07,
|
||||
"SubLord": "Ketu",
|
||||
"SubSubLord": "Sun"
|
||||
},
|
||||
{
|
||||
"DegSize": 25.952,
|
||||
"HouseNr": 7,
|
||||
"LonDecDeg": 329.152,
|
||||
"Nakshatra": "PurvaBhādrapadā",
|
||||
"NakshatraLord": "Jupiter",
|
||||
"Object": "VII",
|
||||
"Rasi": "Aquarius",
|
||||
"RasiLord": "Saturn",
|
||||
"SignLonDMS": "+29:09:09",
|
||||
"SignLonDecDeg": 29.152,
|
||||
"SubLord": "Sun",
|
||||
"SubSubLord": "Saturn"
|
||||
},
|
||||
{
|
||||
"DegSize": 30.11,
|
||||
"HouseNr": 8,
|
||||
"LonDecDeg": 355.104,
|
||||
"Nakshatra": "Revati",
|
||||
"NakshatraLord": "Mercury",
|
||||
"Object": "VIII",
|
||||
"Rasi": "Pisces",
|
||||
"RasiLord": "Jupiter",
|
||||
"SignLonDMS": "+25:06:14",
|
||||
"SignLonDecDeg": 25.104,
|
||||
"SubLord": "Rahu",
|
||||
"SubSubLord": "Mercury"
|
||||
},
|
||||
{
|
||||
"DegSize": 32.962,
|
||||
"HouseNr": 9,
|
||||
"LonDecDeg": 25.214,
|
||||
"Nakshatra": "Bharani",
|
||||
"NakshatraLord": "Venus",
|
||||
"Object": "IX",
|
||||
"Rasi": "Aries",
|
||||
"RasiLord": "Mars",
|
||||
"SignLonDMS": "+25:12:52",
|
||||
"SignLonDecDeg": 25.214,
|
||||
"SubLord": "Mercury",
|
||||
"SubSubLord": "Rahu"
|
||||
},
|
||||
{
|
||||
"DegSize": 33.159,
|
||||
"HouseNr": 10,
|
||||
"LonDecDeg": 58.176,
|
||||
"Nakshatra": "Mrigashīrsha",
|
||||
"NakshatraLord": "Mars",
|
||||
"Object": "X",
|
||||
"Rasi": "Taurus",
|
||||
"RasiLord": "Venus",
|
||||
"SignLonDMS": "+28:10:35",
|
||||
"SignLonDecDeg": 28.176,
|
||||
"SubLord": "Saturn",
|
||||
"SubSubLord": "Saturn"
|
||||
},
|
||||
{
|
||||
"DegSize": 30.735,
|
||||
"HouseNr": 11,
|
||||
"LonDecDeg": 91.335,
|
||||
"Nakshatra": "Punarvasu",
|
||||
"NakshatraLord": "Jupiter",
|
||||
"Object": "XI",
|
||||
"Rasi": "Cancer",
|
||||
"RasiLord": "Moon",
|
||||
"SignLonDMS": "+01:20:06",
|
||||
"SignLonDecDeg": 1.335,
|
||||
"SubLord": "Rahu",
|
||||
"SubSubLord": "Rahu"
|
||||
},
|
||||
{
|
||||
"DegSize": 27.082,
|
||||
"HouseNr": 12,
|
||||
"LonDecDeg": 122.07,
|
||||
"Nakshatra": "Maghā",
|
||||
"NakshatraLord": "Ketu",
|
||||
"Object": "XII",
|
||||
"Rasi": "Leo",
|
||||
"RasiLord": "Sun",
|
||||
"SignLonDMS": "+02:04:13",
|
||||
"SignLonDecDeg": 2.07,
|
||||
"SubLord": "Venus",
|
||||
"SubSubLord": "Jupiter"
|
||||
}
|
||||
],
|
||||
"name": "Steve Jobs",
|
||||
"sources": [
|
||||
"https://www.astro.com/astro-databank/Jobs,_Steve",
|
||||
"https://vedastro.org/AstroDataBank/Person/Steve_Jobs"
|
||||
]
|
||||
},
|
||||
"raw_hash": "696c5a81e9e98f48d8ec0822b6517c010f9062f5f5b0f5ca6cd063459b4af3b1",
|
||||
"status": "complete"
|
||||
},
|
||||
{
|
||||
"case_id": "barack_obama_1961_aa",
|
||||
"house_count": 12,
|
||||
"name": "Barack Obama",
|
||||
"raw": {
|
||||
"case_id": "barack_obama_1961_aa",
|
||||
"houses": [
|
||||
{
|
||||
"DegSize": 37.856,
|
||||
"HouseNr": 1,
|
||||
"LonDecDeg": 294.83,
|
||||
"Nakshatra": "Dhanishta",
|
||||
"NakshatraLord": "Mars",
|
||||
"Object": "I",
|
||||
"Rasi": "Capricorn",
|
||||
"RasiLord": "Saturn",
|
||||
"SignLonDMS": "+24:49:49",
|
||||
"SignLonDecDeg": 24.83,
|
||||
"SubLord": "Rahu",
|
||||
"SubSubLord": "Saturn"
|
||||
},
|
||||
{
|
||||
"DegSize": 34.391,
|
||||
"HouseNr": 2,
|
||||
"LonDecDeg": 332.687,
|
||||
"Nakshatra": "PurvaBhādrapadā",
|
||||
"NakshatraLord": "Jupiter",
|
||||
"Object": "II",
|
||||
"Rasi": "Pisces",
|
||||
"RasiLord": "Jupiter",
|
||||
"SignLonDMS": "+02:41:12",
|
||||
"SignLonDecDeg": 2.687,
|
||||
"SubLord": "Rahu",
|
||||
"SubSubLord": "Venus"
|
||||
},
|
||||
{
|
||||
"DegSize": 28.595,
|
||||
"HouseNr": 3,
|
||||
"LonDecDeg": 7.077,
|
||||
"Nakshatra": "Ashwini",
|
||||
"NakshatraLord": "Ketu",
|
||||
"Object": "III",
|
||||
"Rasi": "Aries",
|
||||
"RasiLord": "Mars",
|
||||
"SignLonDMS": "+07:04:39",
|
||||
"SignLonDecDeg": 7.077,
|
||||
"SubLord": "Rahu",
|
||||
"SubSubLord": "Venus"
|
||||
},
|
||||
{
|
||||
"DegSize": 25.087,
|
||||
"HouseNr": 4,
|
||||
"LonDecDeg": 35.672,
|
||||
"Nakshatra": "Krittika",
|
||||
"NakshatraLord": "Sun",
|
||||
"Object": "IV",
|
||||
"Rasi": "Taurus",
|
||||
"RasiLord": "Venus",
|
||||
"SignLonDMS": "+05:40:19",
|
||||
"SignLonDecDeg": 5.672,
|
||||
"SubLord": "Mercury",
|
||||
"SubSubLord": "Venus"
|
||||
},
|
||||
{
|
||||
"DegSize": 25.042,
|
||||
"HouseNr": 5,
|
||||
"LonDecDeg": 60.759,
|
||||
"Nakshatra": "Mrigashīrsha",
|
||||
"NakshatraLord": "Mars",
|
||||
"Object": "V",
|
||||
"Rasi": "Gemini",
|
||||
"RasiLord": "Mercury",
|
||||
"SignLonDMS": "+00:45:34",
|
||||
"SignLonDecDeg": 0.759,
|
||||
"SubLord": "Mercury",
|
||||
"SubSubLord": "Sun"
|
||||
},
|
||||
{
|
||||
"DegSize": 29.029,
|
||||
"HouseNr": 6,
|
||||
"LonDecDeg": 85.801,
|
||||
"Nakshatra": "Punarvasu",
|
||||
"NakshatraLord": "Jupiter",
|
||||
"Object": "VI",
|
||||
"Rasi": "Gemini",
|
||||
"RasiLord": "Mercury",
|
||||
"SignLonDMS": "+25:48:04",
|
||||
"SignLonDecDeg": 25.801,
|
||||
"SubLord": "Ketu",
|
||||
"SubSubLord": "Ketu"
|
||||
},
|
||||
{
|
||||
"DegSize": 37.856,
|
||||
"HouseNr": 7,
|
||||
"LonDecDeg": 114.83,
|
||||
"Nakshatra": "Āshleshā",
|
||||
"NakshatraLord": "Mercury",
|
||||
"Object": "VII",
|
||||
"Rasi": "Cancer",
|
||||
"RasiLord": "Moon",
|
||||
"SignLonDMS": "+24:49:49",
|
||||
"SignLonDecDeg": 24.83,
|
||||
"SubLord": "Rahu",
|
||||
"SubSubLord": "Saturn"
|
||||
},
|
||||
{
|
||||
"DegSize": 34.391,
|
||||
"HouseNr": 8,
|
||||
"LonDecDeg": 152.687,
|
||||
"Nakshatra": "UttaraPhalgunī",
|
||||
"NakshatraLord": "Sun",
|
||||
"Object": "VIII",
|
||||
"Rasi": "Virgo",
|
||||
"RasiLord": "Mercury",
|
||||
"SignLonDMS": "+02:41:12",
|
||||
"SignLonDecDeg": 2.687,
|
||||
"SubLord": "Jupiter",
|
||||
"SubSubLord": "Mars"
|
||||
},
|
||||
{
|
||||
"DegSize": 28.595,
|
||||
"HouseNr": 9,
|
||||
"LonDecDeg": 187.077,
|
||||
"Nakshatra": "Svati",
|
||||
"NakshatraLord": "Rahu",
|
||||
"Object": "IX",
|
||||
"Rasi": "Libra",
|
||||
"RasiLord": "Venus",
|
||||
"SignLonDMS": "+07:04:39",
|
||||
"SignLonDecDeg": 7.077,
|
||||
"SubLord": "Rahu",
|
||||
"SubSubLord": "Jupiter"
|
||||
},
|
||||
{
|
||||
"DegSize": 25.087,
|
||||
"HouseNr": 10,
|
||||
"LonDecDeg": 215.672,
|
||||
"Nakshatra": "Anuradha",
|
||||
"NakshatraLord": "Saturn",
|
||||
"Object": "X",
|
||||
"Rasi": "Scorpio",
|
||||
"RasiLord": "Mars",
|
||||
"SignLonDMS": "+05:40:19",
|
||||
"SignLonDecDeg": 5.672,
|
||||
"SubLord": "Mercury",
|
||||
"SubSubLord": "Mercury"
|
||||
},
|
||||
{
|
||||
"DegSize": 25.042,
|
||||
"HouseNr": 11,
|
||||
"LonDecDeg": 240.759,
|
||||
"Nakshatra": "Mula",
|
||||
"NakshatraLord": "Ketu",
|
||||
"Object": "XI",
|
||||
"Rasi": "Sagittarius",
|
||||
"RasiLord": "Jupiter",
|
||||
"SignLonDMS": "+00:45:34",
|
||||
"SignLonDecDeg": 0.759,
|
||||
"SubLord": "Ketu",
|
||||
"SubSubLord": "Mercury"
|
||||
},
|
||||
{
|
||||
"DegSize": 29.029,
|
||||
"HouseNr": 12,
|
||||
"LonDecDeg": 265.801,
|
||||
"Nakshatra": "PurvaAshadha",
|
||||
"NakshatraLord": "Venus",
|
||||
"Object": "XII",
|
||||
"Rasi": "Sagittarius",
|
||||
"RasiLord": "Jupiter",
|
||||
"SignLonDMS": "+25:48:04",
|
||||
"SignLonDecDeg": 25.801,
|
||||
"SubLord": "Mercury",
|
||||
"SubSubLord": "Saturn"
|
||||
}
|
||||
],
|
||||
"name": "Barack Obama",
|
||||
"sources": [
|
||||
"https://www.astro.com/astro-databank/Obama,_Barack",
|
||||
"https://vedastro.org/AstroDataBank/Person/Barack_Obama"
|
||||
]
|
||||
},
|
||||
"raw_hash": "23cc6856299774a877fc00f2797aaf80b29a3a98924e3f33bccdbcbcb5fc6de0",
|
||||
"status": "complete"
|
||||
}
|
||||
],
|
||||
"claim_status": "observation_only",
|
||||
"created_at": "2026-07-19",
|
||||
"dependency_identity": {
|
||||
"observed_pinned_flatlib_commit": "2618c348ce1ab2588548f935ff65f031630b4872",
|
||||
"required_flatlib_source": "git+https://github.com/diliprk/flatlib.git@sidereal"
|
||||
},
|
||||
"production_tuning_allowed": false,
|
||||
"scope": "vedicastro_kp_cusp_batch_probe",
|
||||
"settings": {
|
||||
"ayanamsa": "Krishnamurti",
|
||||
"house_system": "Placidus",
|
||||
"timezone_policy": "timezonefinder_from_public_lat_lon"
|
||||
},
|
||||
"status": "complete",
|
||||
"summary": {
|
||||
"blocked_count": 0,
|
||||
"case_count": 3,
|
||||
"complete_count": 3
|
||||
},
|
||||
"truth_matrix_allowed": false
|
||||
}
|
||||
@@ -179,25 +179,6 @@ def _kp_cusp_snapshot(chart: dict[str, Any]) -> dict[str, Any]:
|
||||
return snapshot
|
||||
|
||||
|
||||
def _prioritize_questions(questions: list[dict[str, Any]], scan: dict[str, Any]) -> tuple[list[dict[str, Any]], str]:
|
||||
"""Prefer questions whose declared layers actually differ in sampled candidates."""
|
||||
samples = scan.get("samples") or []
|
||||
if len(samples) < 2 or not all(isinstance(sample.get("varga_lagna"), dict) for sample in samples):
|
||||
return questions, "generic_fallback_missing_candidate_recast"
|
||||
changed: set[str] = set()
|
||||
for layer in ("D4", "D9", "D10", "D24", "D30"):
|
||||
values = {str((sample["varga_lagna"].get(layer) or {}).get("sign_idx")) for sample in samples}
|
||||
if len(values) > 1:
|
||||
changed.add(layer)
|
||||
for layer in ("A7", "A10", "UL"):
|
||||
values = {str(((sample.get("arudha") or {}).get(layer) or {}).get("sign_idx")) for sample in samples}
|
||||
if len(values) > 1:
|
||||
changed.add(layer)
|
||||
if not changed:
|
||||
return questions, "generic_fallback_no_sampled_difference"
|
||||
return sorted(questions, key=lambda question: (not bool(changed.intersection(question.get("sensitivity") or [])), question.get("round", 99))), "candidate_difference_ranked"
|
||||
|
||||
|
||||
def build_questionnaire(
|
||||
birth_time: str,
|
||||
uncertainty_minutes: int = 30,
|
||||
@@ -225,16 +206,18 @@ def build_questionnaire(
|
||||
"D": {"effect": "neutral", "cluster": "neutral", "points": 0},
|
||||
},
|
||||
})
|
||||
scan = _candidate_scan(
|
||||
_parse_time(birth_time), uncertainty_minutes, step_minutes,
|
||||
lat=lat, lon=lon, tz=tz, ayanamsa=ayanamsa,
|
||||
)
|
||||
questions, question_selection = _prioritize_questions(questions, scan)
|
||||
return {
|
||||
"scope": "active_birth_time_rectification_questionnaire",
|
||||
"schema_version": 1,
|
||||
"candidate_scan": scan,
|
||||
"question_selection": question_selection,
|
||||
"candidate_scan": _candidate_scan(
|
||||
_parse_time(birth_time),
|
||||
uncertainty_minutes,
|
||||
step_minutes,
|
||||
lat=lat,
|
||||
lon=lon,
|
||||
tz=tz,
|
||||
ayanamsa=ayanamsa,
|
||||
),
|
||||
"workflow": [
|
||||
"candidate_time_scan",
|
||||
"varga_arudha_kp_sensitivity_diff",
|
||||
@@ -248,7 +231,7 @@ def build_questionnaire(
|
||||
"2": "domain follow-up",
|
||||
"3": "fine confirmation",
|
||||
},
|
||||
"sensitivity_layers": ["D9", "D10", "D24", "D30", "D60", "D4", "UL", "A7", "A10", "Vimshottari", "Narayana", "Chara"],
|
||||
"sensitivity_layers": ["D9", "D10", "D24", "D30", "D60", "D4", "UL", "A7", "A10", "KP_cusp", "Vimshottari", "Narayana", "Chara"],
|
||||
"questions": questions,
|
||||
"boundary": "Question generation only; final rectification requires scoring answers against actual candidate chart differences.",
|
||||
}
|
||||
|
||||
@@ -0,0 +1,96 @@
|
||||
#!/usr/bin/env python3
|
||||
"""Extract jyotishganit Shadbala object surface raw/hash."""
|
||||
from __future__ import annotations
|
||||
|
||||
import argparse
|
||||
import hashlib
|
||||
import json
|
||||
import sys
|
||||
from datetime import datetime
|
||||
from pathlib import Path
|
||||
from typing import Any
|
||||
|
||||
ROOT = Path(__file__).resolve().parents[1]
|
||||
SRC = ROOT / "references/open_source_sources/jyotishganit"
|
||||
|
||||
|
||||
def clean(v: Any) -> Any:
|
||||
if isinstance(v, dict):
|
||||
return {k: clean(val) for k, val in v.items()}
|
||||
if isinstance(v, list):
|
||||
return [clean(x) for x in v]
|
||||
if hasattr(v, "item"):
|
||||
try:
|
||||
return v.item()
|
||||
except Exception:
|
||||
pass
|
||||
return v
|
||||
|
||||
|
||||
def stable(data: Any) -> str:
|
||||
return json.dumps(clean(data), ensure_ascii=False, sort_keys=True, separators=(",", ":"), default=str)
|
||||
|
||||
|
||||
def build(args: argparse.Namespace) -> dict[str, Any]:
|
||||
sys.path.insert(0, str(SRC))
|
||||
from jyotishganit.main import calculate_birth_chart # type: ignore
|
||||
|
||||
chart = calculate_birth_chart(
|
||||
datetime.fromisoformat(args.datetime),
|
||||
args.latitude,
|
||||
args.longitude,
|
||||
args.timezone,
|
||||
args.location,
|
||||
args.name,
|
||||
)
|
||||
rows = {
|
||||
p.celestial_body: clean(p.shadbala)
|
||||
for p in chart.d1_chart.planets
|
||||
if p.shadbala
|
||||
}
|
||||
required = ["Sthanabala", "Digbala", "Kaalabala", "Cheshtabala", "Naisargikabala", "Drikbala", "Shadbala"]
|
||||
coverage = {
|
||||
body: {key: key in values for key in required}
|
||||
for body, values in rows.items()
|
||||
}
|
||||
raw = {"request": vars(args), "shadbala": rows}
|
||||
return {
|
||||
"scope": "jyotishganit_shadbala_surface_probe",
|
||||
"created_at": "2026-07-19",
|
||||
"status": "complete" if rows else "missing",
|
||||
"claim_status": "observation_only",
|
||||
"production_tuning_allowed": False,
|
||||
"truth_matrix_allowed": False,
|
||||
"source_path": "references/open_source_sources/jyotishganit/jyotishganit/components/strengths.py",
|
||||
"api_surface": {
|
||||
"calculate_all_strengths": True,
|
||||
"compute_shadbala": True,
|
||||
"six_strengths": required[:6],
|
||||
},
|
||||
"coverage": coverage,
|
||||
"raw_hash": hashlib.sha256(stable(raw).encode("utf-8")).hexdigest(),
|
||||
"raw": raw,
|
||||
"boundary": "jyotishganit exposes Shadbala via object surface, not top-level to_dict. Observation-only until component units and external worked examples are compared.",
|
||||
}
|
||||
|
||||
|
||||
def main() -> int:
|
||||
ap = argparse.ArgumentParser()
|
||||
ap.add_argument("--datetime", default="1955-02-24T19:15:00")
|
||||
ap.add_argument("--latitude", type=float, default=37.3382)
|
||||
ap.add_argument("--longitude", type=float, default=-122.0383)
|
||||
ap.add_argument("--timezone", type=float, default=-8.0)
|
||||
ap.add_argument("--location", default="San Francisco, CA")
|
||||
ap.add_argument("--name", default="Steve Jobs public")
|
||||
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,96 @@
|
||||
#!/usr/bin/env python3
|
||||
"""Batch VedicAstro KP cusp raw/hash over public cases."""
|
||||
from __future__ import annotations
|
||||
|
||||
import argparse
|
||||
import hashlib
|
||||
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"
|
||||
CASES = ROOT / "references/public_oracle_cases.json"
|
||||
|
||||
|
||||
def stable(data: Any) -> str:
|
||||
return json.dumps(data, ensure_ascii=False, sort_keys=True, separators=(",", ":"), default=str)
|
||||
|
||||
|
||||
def build(args: argparse.Namespace) -> dict[str, Any]:
|
||||
sys.path.insert(0, str(SRC))
|
||||
from vedicastro.VedicAstro import VedicHoroscopeData # type: ignore
|
||||
|
||||
cases = json.loads(Path(args.cases).read_text(encoding="utf-8"))["cases"]
|
||||
rows = []
|
||||
for case in cases[: args.limit]:
|
||||
b = case["birth"]
|
||||
try:
|
||||
v = VedicHoroscopeData(
|
||||
b["year"],
|
||||
b["month"],
|
||||
b["day"],
|
||||
b["hour"],
|
||||
b["minute"],
|
||||
b.get("second", 0),
|
||||
b["lat"],
|
||||
b["lon"],
|
||||
tz=None,
|
||||
ayanamsa=args.ayanamsa,
|
||||
house_system=args.house_system,
|
||||
)
|
||||
houses = [r._asdict() for r in v.get_houses_data_from_chart(v.generate_chart())]
|
||||
raw = {"case_id": case["id"], "name": case["name"], "sources": case.get("sources", []), "houses": houses}
|
||||
rows.append(
|
||||
{
|
||||
"case_id": case["id"],
|
||||
"name": case["name"],
|
||||
"status": "complete",
|
||||
"house_count": len(houses),
|
||||
"raw_hash": hashlib.sha256(stable(raw).encode("utf-8")).hexdigest(),
|
||||
"raw": raw,
|
||||
}
|
||||
)
|
||||
except Exception as exc:
|
||||
rows.append({"case_id": case["id"], "name": case["name"], "status": "blocked", "error": str(exc), "error_type": type(exc).__name__})
|
||||
return {
|
||||
"scope": "vedicastro_kp_cusp_batch_probe",
|
||||
"created_at": "2026-07-19",
|
||||
"status": "complete",
|
||||
"claim_status": "observation_only",
|
||||
"production_tuning_allowed": False,
|
||||
"truth_matrix_allowed": False,
|
||||
"dependency_identity": {
|
||||
"required_flatlib_source": "git+https://github.com/diliprk/flatlib.git@sidereal",
|
||||
"observed_pinned_flatlib_commit": "2618c348ce1ab2588548f935ff65f031630b4872",
|
||||
},
|
||||
"settings": {"ayanamsa": args.ayanamsa, "house_system": args.house_system, "timezone_policy": "timezonefinder_from_public_lat_lon"},
|
||||
"summary": {
|
||||
"case_count": len(rows),
|
||||
"complete_count": sum(1 for r in rows if r["status"] == "complete"),
|
||||
"blocked_count": sum(1 for r in rows if r["status"] != "complete"),
|
||||
},
|
||||
"cases": rows,
|
||||
"boundary": "Batch public-case KP cusp runtime raw. Observation-only; public worked-example expected values are still required for numeric oracle readiness.",
|
||||
}
|
||||
|
||||
|
||||
def main() -> int:
|
||||
ap = argparse.ArgumentParser()
|
||||
ap.add_argument("--cases", default=str(CASES))
|
||||
ap.add_argument("--limit", type=int, default=3)
|
||||
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,66 @@
|
||||
import json
|
||||
import os
|
||||
import subprocess
|
||||
import sys
|
||||
from pathlib import Path
|
||||
|
||||
|
||||
ROOT = Path(__file__).resolve().parents[1]
|
||||
RUNTIME = Path("/tmp/vedicastro_sidereal_flatlib_probe.Nt8ANZ")
|
||||
INDEX = ROOT / "references/oracle/evidence_packet_index_2026_07_19.json"
|
||||
|
||||
|
||||
def test_jyotishganit_shadbala_surface_artifact_has_six_strengths():
|
||||
data = json.loads((ROOT / "references/oracle/jyotishganit_shadbala_surface_probe_steve_jobs_2026_07_19.json").read_text(encoding="utf-8"))
|
||||
assert data["scope"] == "jyotishganit_shadbala_surface_probe"
|
||||
assert data["claim_status"] == "observation_only"
|
||||
assert data["raw_hash"]
|
||||
sun = data["raw"]["shadbala"]["Sun"]
|
||||
for key in ["Sthanabala", "Digbala", "Kaalabala", "Cheshtabala", "Naisargikabala", "Drikbala", "Shadbala"]:
|
||||
assert key in sun
|
||||
|
||||
|
||||
def test_vedicastro_batch_cusp_probe_artifact_has_public_cases():
|
||||
data = json.loads((ROOT / "references/oracle/vedicastro_kp_cusp_batch_probe_2026_07_19.json").read_text(encoding="utf-8"))
|
||||
assert data["scope"] == "vedicastro_kp_cusp_batch_probe"
|
||||
assert data["claim_status"] == "observation_only"
|
||||
assert data["summary"]["case_count"] >= 3
|
||||
assert data["summary"]["complete_count"] >= 1
|
||||
for row in data["cases"]:
|
||||
if row["status"] == "complete":
|
||||
assert row["house_count"] == 12
|
||||
assert row["raw_hash"]
|
||||
|
||||
|
||||
def test_vedicastro_batch_runtime_when_temp_env_exists():
|
||||
if not RUNTIME.exists():
|
||||
return
|
||||
env = {**os.environ, "PYTHONPATH": f"{RUNTIME}:{ROOT / 'references/open_source_sources/VedicAstro'}"}
|
||||
out = subprocess.check_output([sys.executable, "scripts/vedicastro_kp_cusp_batch_probe.py", "--limit", "1"], cwd=ROOT, text=True, env=env)
|
||||
data = json.loads(out)
|
||||
assert data["summary"]["case_count"] == 1
|
||||
assert data["claim_status"] == "observation_only"
|
||||
|
||||
|
||||
def test_remaining_queues_are_not_truth_upgrades():
|
||||
for rel in [
|
||||
"references/oracle/d1_d60_public_source_candidate_queue_2026_07_19.json",
|
||||
"references/oracle/muhurta_oss_factor_scoring_queue_2026_07_19.json",
|
||||
"references/oracle/four_engine_comparison_queue_2026_07_19.json",
|
||||
]:
|
||||
data = json.loads((ROOT / rel).read_text(encoding="utf-8"))
|
||||
assert data["production_tuning_allowed"] is False
|
||||
assert data["truth_matrix_allowed"] is False
|
||||
|
||||
|
||||
def test_evidence_index_registers_ordered_remaining_packets():
|
||||
index = json.loads(INDEX.read_text(encoding="utf-8"))
|
||||
packets = {row["packet_id"]: row for row in index["packets"]}
|
||||
for packet_id in [
|
||||
"jyotishganit_shadbala_surface_probe",
|
||||
"vedicastro_kp_cusp_batch_probe",
|
||||
"d1_d60_public_source_candidate_queue",
|
||||
"muhurta_oss_factor_scoring_queue",
|
||||
"four_engine_comparison_queue",
|
||||
]:
|
||||
assert packet_id in packets
|
||||
Reference in New Issue
Block a user