#!/usr/bin/env python3
"""交易上下文读取 - 给格蕾丝自主看盘用
读取最近N条交易日志 + 当前关键位，保证跨轮次连续思维"""
import json, os, subprocess

def load_recent_journal(n=15):
    """读取最近n条日志"""
    try:
        # 读取trade_journal.py的存储(JSON列表)
        for p in ["/root/quant_pipeline/trade_journal.json",
                  "/root/quant_pipeline/trade_journal.jsonl",
                  "/root/quant_pipeline/trade_journal.log"]:
            if os.path.exists(p):
                import json as j
                try:
                    data = j.load(open(p, encoding="utf-8"))
                    if isinstance(data, list):
                        return "".join([str(e)[:500] + "\n" for e in data[-n:]])
                    return str(data)[-3000:]
                except Exception:
                    return open(p, encoding="utf-8").read()[-3000:]
        # 兜底: trade_journal.py 里的写入
        return "无日志记录(可能是空/新建)"
    except Exception as e:
        return f"读取日志失败: {e}"
    return "无日志记录"

def load_levels():
    """读取当前关键位"""
    try:
        with open("/root/quant_pipeline/watch_levels.json") as f:
            return json.load(f)
    except Exception:
        return {"hi": 0, "lo": 0, "note": "未设置"}

def load_position():
    """读取当前持仓"""
    try:
        r = subprocess.run(
            ["python3", "/root/quant_pipeline/check_position.py"],
            capture_output=True, text=True, timeout=30
        )
        return r.stdout.strip()[:200]
    except Exception as e:
        return f"持仓查询失败: {e}"

if __name__ == "__main__":
    print("=== 最近交易日志(连续性参考) ===")
    print(load_recent_journal())
    print("\n=== 当前关键位 ===")
    print(json.dumps(load_levels(), ensure_ascii=False))
    print("\n=== 当前持仓 ===")
    print(load_position())
