sync: add keyed VedAstro observation packet
This commit is contained in:
@@ -0,0 +1,36 @@
|
||||
{
|
||||
"primary_source": "vedastro_python_bridge",
|
||||
"results": {
|
||||
"GulikaLongitude": {
|
||||
"available": false,
|
||||
"status": "unsupported_signature"
|
||||
},
|
||||
"PlanetTajikaConstellation": {
|
||||
"available": false,
|
||||
"status": "unsupported_signature"
|
||||
},
|
||||
"PlanetTajikaLongitude": {
|
||||
"available": false,
|
||||
"status": "unsupported_signature"
|
||||
},
|
||||
"PlanetTajikaZodiacSign": {
|
||||
"available": false,
|
||||
"status": "unsupported_signature"
|
||||
},
|
||||
"TajikaDateForYear": {
|
||||
"available": false,
|
||||
"status": "unsupported_signature"
|
||||
},
|
||||
"TajikaDateForYear2": {
|
||||
"available": false,
|
||||
"status": "unsupported_signature"
|
||||
}
|
||||
},
|
||||
"runner": "vedastro_official_capability_runner",
|
||||
"summary": {
|
||||
"executed_method_count": 6,
|
||||
"ok_count": 0,
|
||||
"requested_method_count": 6,
|
||||
"skipped_count": 6
|
||||
}
|
||||
}
|
||||
File diff suppressed because it is too large
Load Diff
+3202
File diff suppressed because it is too large
Load Diff
@@ -5,8 +5,8 @@
|
||||
"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": 181,
|
||||
"blocked_or_partial_count": 165,
|
||||
"packet_count": 182,
|
||||
"blocked_or_partial_count": 166,
|
||||
"human_review_required_count": 4
|
||||
},
|
||||
"packets": [
|
||||
@@ -1457,6 +1457,14 @@
|
||||
"claim_status": "observation_boundary_matrix",
|
||||
"consumer_policy": "sync_matrix_only_do_not_vendor_agpl_implementation",
|
||||
"claim_boundary": "Tajika, KP exact cusp and advanced AV fields are mapped for local calculation, PyJHora observation, jyotishganit/VedicAstro reference, public worked-example status and commercial output allowance; no PyJHora implementation is synced."
|
||||
},
|
||||
{
|
||||
"packet_id": "vedastro_keyed_capture_closure_2026_07_23",
|
||||
"path": "references/oracle/vedastro_keyed_capture_closure_2026_07_23.json",
|
||||
"domain": "vedastro_identity_and_numeric_oracles",
|
||||
"claim_status": "keyed_observation_partial",
|
||||
"consumer_policy": "research_observation_only_no_secret_material",
|
||||
"claim_boundary": "Keyed VedAstro raw and method catalog capture are available without persisting the secret; hosted build identity, KP 12-cusp oracle, Prashna/Saham/Sphuta endpoints, selected Gulika/Tajika payload contracts and timing labels remain blocked."
|
||||
}
|
||||
]
|
||||
}
|
||||
|
||||
@@ -0,0 +1,148 @@
|
||||
{
|
||||
"packet_id": "vedastro_keyed_capture_closure_2026_07_23",
|
||||
"scope": "vedastro_keyed_capture_closure",
|
||||
"created_at": "2026-07-23",
|
||||
"claim_status": "keyed_observation_partial",
|
||||
"truth_matrix_allowed": false,
|
||||
"production_tuning_allowed": false,
|
||||
"api_key_policy": {
|
||||
"configured_by_user": true,
|
||||
"persisted_in_artifact": false,
|
||||
"secret_material_allowed_in_git": false
|
||||
},
|
||||
"source_artifacts": {
|
||||
"contract_probe": {
|
||||
"path": "references/oracle/artifacts/vedastro_steve_jobs_contract_probe_keyed_2026_07_23.json",
|
||||
"sha256": "982ee9d4f954786d99f61c9c521fdda26d823997d7b3d333768ec6894fcc635c",
|
||||
"contract_status": "blocked",
|
||||
"method_contract_status": "resolved",
|
||||
"api_version_contract_status": "blocked",
|
||||
"server_identity_contract_status": "captured"
|
||||
},
|
||||
"official_parity_raw": {
|
||||
"path": "references/oracle/artifacts/vedastro_official_parity_raw_keyed_2026_07_23.json",
|
||||
"sha256": "4a6db04b581ea9dc8e850f5f13907636d56b3fcc8fc5ef9673f45a182e14addc",
|
||||
"status": "ok",
|
||||
"response_hash": "4490f561f319e8ed4bb0fcf63a16f7f262d4fd865963d7a486971dc591cfee92",
|
||||
"fanout_statuses": {
|
||||
"Jupiter": "ok",
|
||||
"Mars": "ok",
|
||||
"Mercury": "ok",
|
||||
"Moon": "ok",
|
||||
"Saturn": "ok",
|
||||
"Sun": "ok",
|
||||
"Venus": "ok"
|
||||
}
|
||||
},
|
||||
"method_catalog": {
|
||||
"path": "references/oracle/vedastro_method_catalog_keyed_2026_07_23.json",
|
||||
"sha256": "f31904363f6df7555733d798f1cf93608d46fb4124da566517ef63163d2b858b",
|
||||
"summary": {
|
||||
"method_count": 2429,
|
||||
"python_callable_count": 641,
|
||||
"python_capability_count": 641,
|
||||
"python_signature_bucket_count": 171,
|
||||
"tag_count": 49
|
||||
}
|
||||
},
|
||||
"selected_methods": {
|
||||
"path": "references/oracle/artifacts/vedastro_keyed_gulika_tajika_methods_2026_07_23.json",
|
||||
"sha256": "820e60a4dbbb6a4c8c82853df776ff1d8be53149a068df5832450296f6309892",
|
||||
"summary": {
|
||||
"executed_method_count": 6,
|
||||
"ok_count": 0,
|
||||
"requested_method_count": 6,
|
||||
"skipped_count": 6
|
||||
},
|
||||
"statuses": {
|
||||
"GulikaLongitude": {
|
||||
"available": false,
|
||||
"status": "unsupported_signature"
|
||||
},
|
||||
"PlanetTajikaConstellation": {
|
||||
"available": false,
|
||||
"status": "unsupported_signature"
|
||||
},
|
||||
"PlanetTajikaLongitude": {
|
||||
"available": false,
|
||||
"status": "unsupported_signature"
|
||||
},
|
||||
"PlanetTajikaZodiacSign": {
|
||||
"available": false,
|
||||
"status": "unsupported_signature"
|
||||
},
|
||||
"TajikaDateForYear": {
|
||||
"available": false,
|
||||
"status": "unsupported_signature"
|
||||
},
|
||||
"TajikaDateForYear2": {
|
||||
"available": false,
|
||||
"status": "unsupported_signature"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"method_catalog_hits": {
|
||||
"KP": [
|
||||
"IsPlanetInHouseKP"
|
||||
],
|
||||
"Cusp": [],
|
||||
"Prashna": [],
|
||||
"Tajika": [
|
||||
"PlanetTajikaConstellation",
|
||||
"PlanetTajikaLongitude",
|
||||
"PlanetTajikaZodiacSign",
|
||||
"TajikaDateForYear",
|
||||
"TajikaDateForYear2"
|
||||
],
|
||||
"Saham": [],
|
||||
"Gulika": [
|
||||
"GulikaLongitude"
|
||||
],
|
||||
"Mandi": [],
|
||||
"Sphuta": [],
|
||||
"Panchanga": [
|
||||
"PanchangaTable"
|
||||
],
|
||||
"Hora": [
|
||||
"AllHouseHoraSign",
|
||||
"AllPlanetHoraSign",
|
||||
"HoraAtBirth",
|
||||
"HoraSignAtLongitude",
|
||||
"HoraSignName",
|
||||
"HouseHoraD2Sign",
|
||||
"LordOfHoraFromTime",
|
||||
"LordOfHoraFromWeekday",
|
||||
"PlanetHoraBala",
|
||||
"PlanetHoraD2Signs"
|
||||
]
|
||||
},
|
||||
"closure_findings": [
|
||||
{
|
||||
"gap": "hosted_identity",
|
||||
"status": "blocked",
|
||||
"reason": "Hosted API returned no explicit build metadata, source commit, assembly version, DLL hash, or image digest."
|
||||
},
|
||||
{
|
||||
"gap": "longitude_method_semantics",
|
||||
"status": "observation_resolved_for_probe_case",
|
||||
"reason": "Keyed replay reports AllPlanetData/AllPlanetLongitude matching Nirayana for the Steve Jobs contract probe within the probe contract."
|
||||
},
|
||||
{
|
||||
"gap": "kp_exact_12_cusp",
|
||||
"status": "blocked",
|
||||
"reason": "Catalog exposes IsPlanetInHouseKP only; no complete 12-cusp exact longitude/star/sub/sub-sub endpoint was found."
|
||||
},
|
||||
{
|
||||
"gap": "gulika_tajika_selected_methods",
|
||||
"status": "blocked_pending_payload_contract",
|
||||
"reason": "Relevant methods exist, but selected runner classified them as unsupported_signature for the current generic payload strategy."
|
||||
},
|
||||
{
|
||||
"gap": "prashna_saham_sphuta",
|
||||
"status": "blocked",
|
||||
"reason": "No Prashna, Saham, or Sphuta method names were found in the keyed catalog capture."
|
||||
}
|
||||
],
|
||||
"claim_boundary": "The key enables pinned raw observation and method catalog capture. It does not by itself provide hosted build identity, KP 12-cusp oracle, Prashna/Saham/Sphuta numeric packets, selected Gulika/Tajika payload contracts, or timing/birth-rectification holdout labels."
|
||||
}
|
||||
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,165 @@
|
||||
#!/usr/bin/env python3
|
||||
"""Summarise keyed VedAstro captures without persisting secrets.
|
||||
|
||||
This packet is intentionally a governance artifact. It records what the
|
||||
newly-configured API key lets us observe, and what remains blocked because
|
||||
hosted build identity or public numeric oracle contracts are still missing.
|
||||
"""
|
||||
from __future__ import annotations
|
||||
|
||||
import argparse
|
||||
import hashlib
|
||||
import json
|
||||
from pathlib import Path
|
||||
from typing import Any
|
||||
|
||||
|
||||
ROOT = Path(__file__).resolve().parents[1]
|
||||
DEFAULT_OUTPUT = ROOT / "references/oracle/vedastro_keyed_capture_closure_2026_07_23.json"
|
||||
CONTRACT_PROBE = ROOT / "references/oracle/artifacts/vedastro_steve_jobs_contract_probe_keyed_2026_07_23.json"
|
||||
PARITY_RAW = ROOT / "references/oracle/artifacts/vedastro_official_parity_raw_keyed_2026_07_23.json"
|
||||
METHOD_CATALOG = ROOT / "references/oracle/vedastro_method_catalog_keyed_2026_07_23.json"
|
||||
SELECTED_METHODS = ROOT / "references/oracle/artifacts/vedastro_keyed_gulika_tajika_methods_2026_07_23.json"
|
||||
|
||||
|
||||
TERMS = (
|
||||
"KP",
|
||||
"Cusp",
|
||||
"Prashna",
|
||||
"Tajika",
|
||||
"Saham",
|
||||
"Gulika",
|
||||
"Mandi",
|
||||
"Sphuta",
|
||||
"Panchanga",
|
||||
"Hora",
|
||||
)
|
||||
|
||||
|
||||
def _load(path: Path) -> dict[str, Any]:
|
||||
return json.loads(path.read_text(encoding="utf-8"))
|
||||
|
||||
|
||||
def _sha256_file(path: Path) -> str:
|
||||
return hashlib.sha256(path.read_bytes()).hexdigest()
|
||||
|
||||
|
||||
def _catalog_hits(catalog: dict[str, Any]) -> dict[str, list[str]]:
|
||||
capabilities = catalog.get("python_capabilities", [])
|
||||
hits: dict[str, list[str]] = {}
|
||||
for term in TERMS:
|
||||
term_hits = []
|
||||
for capability in capabilities:
|
||||
method = str(capability.get("method", ""))
|
||||
if term.lower() in method.lower():
|
||||
term_hits.append(method)
|
||||
hits[term] = sorted(set(term_hits))
|
||||
return hits
|
||||
|
||||
|
||||
def build_packet() -> dict[str, Any]:
|
||||
contract = _load(CONTRACT_PROBE)
|
||||
parity = _load(PARITY_RAW)
|
||||
catalog = _load(METHOD_CATALOG)
|
||||
selected = _load(SELECTED_METHODS)
|
||||
|
||||
hits = _catalog_hits(catalog)
|
||||
selected_results = selected.get("results", {})
|
||||
selected_status = {
|
||||
method: {
|
||||
"available": result.get("available"),
|
||||
"status": result.get("status"),
|
||||
}
|
||||
for method, result in selected_results.items()
|
||||
}
|
||||
|
||||
return {
|
||||
"packet_id": "vedastro_keyed_capture_closure_2026_07_23",
|
||||
"scope": "vedastro_keyed_capture_closure",
|
||||
"created_at": "2026-07-23",
|
||||
"claim_status": "keyed_observation_partial",
|
||||
"truth_matrix_allowed": False,
|
||||
"production_tuning_allowed": False,
|
||||
"api_key_policy": {
|
||||
"configured_by_user": True,
|
||||
"persisted_in_artifact": False,
|
||||
"secret_material_allowed_in_git": False,
|
||||
},
|
||||
"source_artifacts": {
|
||||
"contract_probe": {
|
||||
"path": str(CONTRACT_PROBE.relative_to(ROOT)),
|
||||
"sha256": _sha256_file(CONTRACT_PROBE),
|
||||
"contract_status": contract.get("contract_status"),
|
||||
"method_contract_status": contract.get("method_contract", {}).get("status"),
|
||||
"api_version_contract_status": contract.get("api_version_contract", {}).get("status"),
|
||||
"server_identity_contract_status": contract.get("server_identity_contract", {}).get("status"),
|
||||
},
|
||||
"official_parity_raw": {
|
||||
"path": str(PARITY_RAW.relative_to(ROOT)),
|
||||
"sha256": _sha256_file(PARITY_RAW),
|
||||
"status": parity.get("status"),
|
||||
"response_hash": parity.get("response_hash"),
|
||||
"fanout_statuses": parity.get("fanout_statuses", {}),
|
||||
},
|
||||
"method_catalog": {
|
||||
"path": str(METHOD_CATALOG.relative_to(ROOT)),
|
||||
"sha256": _sha256_file(METHOD_CATALOG),
|
||||
"summary": catalog.get("summary", {}),
|
||||
},
|
||||
"selected_methods": {
|
||||
"path": str(SELECTED_METHODS.relative_to(ROOT)),
|
||||
"sha256": _sha256_file(SELECTED_METHODS),
|
||||
"summary": selected.get("summary", {}),
|
||||
"statuses": selected_status,
|
||||
},
|
||||
},
|
||||
"method_catalog_hits": hits,
|
||||
"closure_findings": [
|
||||
{
|
||||
"gap": "hosted_identity",
|
||||
"status": "blocked",
|
||||
"reason": "Hosted API returned no explicit build metadata, source commit, assembly version, DLL hash, or image digest.",
|
||||
},
|
||||
{
|
||||
"gap": "longitude_method_semantics",
|
||||
"status": "observation_resolved_for_probe_case",
|
||||
"reason": "Keyed replay reports AllPlanetData/AllPlanetLongitude matching Nirayana for the Steve Jobs contract probe within the probe contract.",
|
||||
},
|
||||
{
|
||||
"gap": "kp_exact_12_cusp",
|
||||
"status": "blocked",
|
||||
"reason": "Catalog exposes IsPlanetInHouseKP only; no complete 12-cusp exact longitude/star/sub/sub-sub endpoint was found.",
|
||||
},
|
||||
{
|
||||
"gap": "gulika_tajika_selected_methods",
|
||||
"status": "blocked_pending_payload_contract",
|
||||
"reason": "Relevant methods exist, but selected runner classified them as unsupported_signature for the current generic payload strategy.",
|
||||
},
|
||||
{
|
||||
"gap": "prashna_saham_sphuta",
|
||||
"status": "blocked",
|
||||
"reason": "No Prashna, Saham, or Sphuta method names were found in the keyed catalog capture.",
|
||||
},
|
||||
],
|
||||
"claim_boundary": (
|
||||
"The key enables pinned raw observation and method catalog capture. "
|
||||
"It does not by itself provide hosted build identity, KP 12-cusp oracle, "
|
||||
"Prashna/Saham/Sphuta numeric packets, selected Gulika/Tajika payload contracts, "
|
||||
"or timing/birth-rectification holdout labels."
|
||||
),
|
||||
}
|
||||
|
||||
|
||||
def main() -> int:
|
||||
parser = argparse.ArgumentParser(description=__doc__)
|
||||
parser.add_argument("--output", type=Path, default=DEFAULT_OUTPUT)
|
||||
args = parser.parse_args()
|
||||
packet = build_packet()
|
||||
args.output.parent.mkdir(parents=True, exist_ok=True)
|
||||
args.output.write_text(json.dumps(packet, ensure_ascii=False, indent=2) + "\n", encoding="utf-8")
|
||||
print(json.dumps(packet, ensure_ascii=False, indent=2))
|
||||
return 0
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
raise SystemExit(main())
|
||||
@@ -0,0 +1,34 @@
|
||||
from scripts.vedastro_keyed_capture_closure_2026_07_23 import build_packet
|
||||
|
||||
|
||||
def test_keyed_capture_packet_preserves_secret_boundary() -> None:
|
||||
packet = build_packet()
|
||||
assert packet["claim_status"] == "keyed_observation_partial"
|
||||
assert packet["truth_matrix_allowed"] is False
|
||||
assert packet["production_tuning_allowed"] is False
|
||||
assert packet["api_key_policy"]["persisted_in_artifact"] is False
|
||||
|
||||
|
||||
def test_keyed_capture_records_progress_and_remaining_blocks() -> None:
|
||||
packet = build_packet()
|
||||
findings = {row["gap"]: row for row in packet["closure_findings"]}
|
||||
|
||||
assert findings["longitude_method_semantics"]["status"] == "observation_resolved_for_probe_case"
|
||||
assert findings["hosted_identity"]["status"] == "blocked"
|
||||
assert findings["kp_exact_12_cusp"]["status"] == "blocked"
|
||||
assert findings["prashna_saham_sphuta"]["status"] == "blocked"
|
||||
|
||||
assert packet["method_catalog_hits"]["Gulika"] == ["GulikaLongitude"]
|
||||
assert "TajikaDateForYear" in packet["method_catalog_hits"]["Tajika"]
|
||||
assert packet["method_catalog_hits"]["KP"] == ["IsPlanetInHouseKP"]
|
||||
assert packet["method_catalog_hits"]["Prashna"] == []
|
||||
assert packet["method_catalog_hits"]["Saham"] == []
|
||||
assert packet["method_catalog_hits"]["Sphuta"] == []
|
||||
|
||||
|
||||
def test_selected_methods_are_not_misreported_as_ready() -> None:
|
||||
packet = build_packet()
|
||||
statuses = packet["source_artifacts"]["selected_methods"]["statuses"]
|
||||
assert statuses
|
||||
assert {row["status"] for row in statuses.values()} == {"unsupported_signature"}
|
||||
assert "unsupported_signature" in packet["claim_boundary"] or "payload" in packet["claim_boundary"]
|
||||
Reference in New Issue
Block a user