"""执行人工给定的两跳查询计划；不是模型规划器，也不执行数据库写入。"""
orders = {"A100": {"owner": "u1", "product": "P-204"}}
policies = {"P-204": {"id": "p204-v1", "text": "经核实质量问题，三十天内由商家承担退货运费。"}}

def retrieve_for_order(order_id, actor):
    # actor 应由认证层提供，不从自然语言或模型计划取得。
    order = orders.get(order_id)
    if order is None or order["owner"] != actor:
        return {"state": "unavailable", "evidence": []}
    # 后一跳使用第一跳查得的事实，不允许自行猜产品号。
    product = order["product"]
    policy = policies.get(product)
    if policy is None:
        return {"state": "missing_policy", "evidence": [f"order:{order_id}"]}
    return {
        "state": "evidence_found",
        "query": f"{product} 质量问题退货 运费",
        "evidence": [f"order:{order_id}", policy["id"]],
        "policy": policy["text"],
    }

if __name__ == "__main__":
    print(retrieve_for_order("A100", "u1"))
    # 找到政策仍未检查签收日期和质量核实记录，不返回最终资格结论。
