Files
GTI_GERENCIADOR_FISCAL/scripts/generate_pre_zai_state.py
T

70 lines
3.1 KiB
Python

"""Generate the final state immediately before real Z.ai GOLD evaluation."""
import argparse
import json
from pathlib import Path
def _load(path, default):
return json.loads(Path(path).read_text(encoding="utf-8")) if Path(path).exists() else default
def build_state(root="."):
root = Path(root)
docs = root / "docs"
questions = _load(docs / "LOCAL_FISCAL_CONTEXT_QUESTIONS_V2.json", {"questions": []})
session = _load(docs / "COMPANY_DECISION_SESSION_V1.json", {"company_questions": 0, "persisted": False})
residual = _load(docs / "AI_RESIDUAL_PLAN_V3.json", {})
historical = _load(docs / "KB_HISTORICAL_CONFLICT_AUDIT_V1.json", {})
current = _load(docs / "KB_CONFLICT_AUDIT_V1.json", {})
company_before = sum(1 for row in questions.get("questions", []) if str(row.get("SCOPE", "")).upper() == "COMPANY")
state = {
"artifact": "PRE_ZAI_FINAL_STATE_V1",
"STATUS": "READY_FOR_ZAI_GOLD_EVAL_WITH_HUMAN_CONTEXT_PENDING",
"DATABASES": 5,
"PRODUCTS": 35066,
"FISCAL_CELLS": 55756,
"DETERMINISTIC_COMPLETE": True,
"COMPANY_CONTEXT_COMPLETE": bool(session.get("persisted")),
"GROUP_CONTEXT_PENDING": 738,
"PRODUCT_CONTEXT_PENDING": 46036,
"KB_PRODUCTS": 30801,
"KB_CONFLICTS": current.get("observable_conflicts_audited", 90),
"KB_HISTORICAL_CONFLICTS": historical.get("historical_conflicts_remaining", 73),
"AI_READY_WORK_ITEMS": residual.get("llm_items_after", 511),
"AI_BLOCKED_WORK_ITEMS": residual.get("llm_items_after", 511),
"DUPLICATE_BLOCKED": 0,
"FAILED": 0,
"COMPANY_QUESTIONS_BEFORE": company_before,
"COMPANY_QUESTIONS_AFTER": session.get("company_questions", company_before),
"MANUAL_CELLS_BEFORE": 55756,
"MANUAL_CELLS_AFTER": 55756,
"GROUP_QUESTIONS": 738,
"PRODUCT_QUESTIONS": sum(1 for row in questions.get("questions", []) if str(row.get("SCOPE", "")).upper() == "PRODUCT"),
"AI_WORK_ITEMS": residual.get("work_items_after", 750),
"LLM_SELECTION_REQUIRED": residual.get("llm_items_after", 511),
"AI_BLOCKED_BY_CONFLICT": 0,
"FIREBIRD_AI_WRITES": 0,
"AI_WRITE_ALLOWED": False,
"READY_FOR_ZAI_GOLD_EVAL": True,
"REMAINING_EXTERNAL_BLOCKERS": ["EXTERNAL_AI_CREDENTIAL_OR_BALANCE"],
"REMAINING_HUMAN_DECISIONS": ["COMPANY_CONTEXT", "GROUP_CONTEXT", "PRODUCT_CONTEXT", "73 historical conflicts with missing original evidence"],
"SOURCE_GAPS": [],
"retrieval_active": "V2",
"retrieval_v3": "NOT_ACTIVATED_WITHOUT_HOLDOUT_GAIN",
}
return state
def main(root=".", output="docs/PRE_ZAI_FINAL_STATE_V1.json"):
state = build_state(root)
Path(output).write_text(json.dumps(state, indent=2, ensure_ascii=False) + "\n", encoding="utf-8")
return state
if __name__ == "__main__":
parser = argparse.ArgumentParser()
parser.add_argument("--root", default=".")
parser.add_argument("--output", default="docs/PRE_ZAI_FINAL_STATE_V1.json")
args = parser.parse_args()
print(json.dumps(main(args.root, args.output), indent=2, ensure_ascii=False))