import json, os, sys, traceback sys.path.insert(0, ".") os.environ["LLM_API_KEY"] = "sk-ca4961087c7f4aefa8ed0fc6f3d02329" os.environ["LLM_API_BASE"] = "https://api.deepseek.com/v1" from config import Config from orchestrator import run_pipeline cfg = Config() cfg.llm_model = "deepseek-chat" cfg.runner_mode = "native" print("STEP 1: Reading copybook...") cp = "uploads/ec17bf32/copybook.cpy" with open(cp) as f: text = f.read() print(f" Copybook text ({len(text)} chars):\n{text}") print("\nSTEP 2: Agent1Parser (LLM)...") from agents.agent1_parser import Agent1Parser from agents.llm import LLMClient try: llm = LLMClient(model="deepseek-chat", timeout=30) tree = Agent1Parser(llm).parse(text) fields = tree.flatten() print(f" Fields parsed: {list(fields.keys())}") for name, f in fields.items(): print(f" {name}: level={f.level}, pic={f.pic}, usage={f.usage}, offset={f.offset}, len={f.length}") except Exception as e: print(f" ERROR: {e}") traceback.print_exc() print("\nSTEP 3: Full orchestrator...") try: vr = run_pipeline(cfg, cp, "uploads/ec17bf32/program.cbl", "uploads/ec17bf32/java", "uploads/ec17bf32/mapping.yaml") print(f" Status: {vr.status} (exit_code={vr.exit_code})") print(f" Program: {vr.program}") print(f" Matched: {vr.fields_matched}") print(f" Mismatched: {vr.fields_mismatched}") print(f" Duration: {vr.duration_s:.1f}s") print(f" Debug keys: {list(vr.debug.keys())}") print(f" Debug details:") for k, v in vr.debug.items(): if v: if isinstance(v, dict): print(f" {k}: {'OK' if v.get('ok') else 'FAIL'} {str(v.get('log',''))[-200:]}") else: print(f" {k}: {v}") except Exception as e: print(f" ERROR: {e}") traceback.print_exc()