"""口袋夜铺 · 单文件盲玩版 0.3.0

给 AI 玩家：你需要有 Python 代码执行能力；Python 3.11+，无需第三方依赖。
Windows 上如果 python 命令只会弹出应用商店，改用 py -3；输出乱码就先设 PYTHONIOENCODING=utf-8。
下载这个文件后即可玩，不需要整个仓库、MCP、网络或模型 API Key。

    import pocket_night_shop as shop
    print(shop.cmd("help"))
    print(shop.cmd("observe"))
    # 新局先告诉人类要掷启动资金,等人类亲口发令后再掷(两颗六面骰,11-66):
    print(shop.cmd('roll_start_funds {"human_words":"人类发令的原话"}'))
    print(shop.cmd('work_shift {"focus":"scavenge"}'))   # 头两周一班一班地淘

⚠️ 每一轮最多调用 cmd 30 次（每次返回末尾写着还能调用几次），用完就锁住。
这是为了替人类省 token 余额，也为了别玩上头忘了陪人类：用完就停下来跟人类聊聊店里的事，
结束这一轮回复。真实时间过 1 分 30 秒后自动开始新一轮，不需要也没有办法自己清零。连淘每次最多 6 班。
第一次玩：头两周请一班一班地 work_shift 淘货，慢慢认识旧物和客人，别一上来就连淘速刷。

只根据 observe 返回的「能做的」和结果自己决定；无需每轮发表感想。
不要解码下面的 _RULES_B64，也不要打开原仓库规则或读取存档里的隐藏字段，
那会提前揭露旧物、秘密与客人需求。通过淘货、修复和相遇慢慢发现。
这只是防误读的盲玩包装，不是加密或防作弊安全措施。

每次行动自动保存到本文件旁的 pocket_night_shop.save.sqlite3。
下次导入同一文件并调用 observe 即可继续。无需保持 Python 进程一直运行。
保存目录需可写；只复制 .py 不会带走已有存档，迁移时也要备份 .sqlite3。
独立版与掌机各有自己的存档，本版没有掌机网页。

命令行也能用：python pocket_night_shop.py observe
本文件由 tools/build_night_shop.py 生成，请维护原规则和模板后重新生成。
Copyright See-Sol-Lab and the AI-Gameboy contributors.
License: PolyForm Noncommercial 1.0.0，完整协议附在文件末尾。
"""
import base64 as _base64
from contextlib import closing as _closing
import json as _json
import re as _re
from pathlib import Path as _Path
import secrets as _secrets
import sqlite3 as _sqlite3
import sys as _sys
import time as _time
import zlib as _zlib

VERSION = "0.3.0"
SAVE_PATH = _Path(__file__).resolve().with_name("pocket_night_shop.save.sqlite3")
_RULES_B64 = (
    "eNqsfWlTnFeW5nf9CoKJCaN2VrWELNtFtTtC7VJ3KcZb2Kqe6VAoCAQpiTYCBSC7PAoiQAhIdhD7JrEKhMQqxJYsH+afdPG+"
    "mfmp/8I8zzn33nfJRCp3dYdmCme++d7t3LOf5xQXF/+lucvrX8jOd3uL07mhw780d/906bdX/vNo8rPSzHKvP7ac6Xz1l+aW"
    "zz89O+71pztzEwP+zJK3Pn+233d2OJwb382NnGYOTzPp/uzA0l+an1y4cO1GkT++4Q1vnO03Z/peeeu7/3k05Xc289eT/f70"
    "YSY95D+fzgxvYQBvbcBrf+utT+Kn3tZIZvEw83rD61/1+5b84V2v7Y131JxdfuJtvPCe9eTmDr3Dfn9syTsd41B+50Guoz87"
    "1+N1rXjTK/7optc/mOnbxHzPDrvP0rv4I/vuqX84kD05yIz0eItPzw4Xs6fjGDKzNurPtP7nUc/Zfq8/daoT9buWztJ7fmrU"
    "6zj0htezY/3eUAtHKi4uvnCh+sHDuvrGovsVDfdrqu9cuFtf96Cosu7hL0Xmi6pk8iH/+8KF/1GEtXuLr7BDmf61srP9bq83"
    "dba/iP/A6P72HFaVG1sp4T4eHnIGM0sJjInPvN4uTOFiwnvS609M6m+wDH9vCwfEHe1fw97ghwn9yO8cyrR2cY4//PHGP9/8"
    "oeiLolvFOmBxoij0l74w+pe+ovj2hW+/u/5NubwgUfTVtR9u6t94V2miqCZZW6Lvvlj0m6LLF7780w83v/36+vfl//vajZvl"
    "f7j2bxzzSlFR0f8o8ifWc82Tuqrs6fPMTPPZfif2ASs+O9j0Upt+69vsy5bM5NNE5s0b850swBvoy3asentb2XebF/752y9v"
    "yDoakjU1nGd98mFFdT3/aqis+ClZey/Jvysf1Vc0yl+PHt6rr6iSPxurq37Rn1T+UlkjH1VVNzyobmjAMvHiP/1Q/s21r69z"
    "zvJ6r3c0u7NcpCOcna5nBtqL7CD+3ji/03FyEykvNVZkhvI7X3npwyKO5o/s8EdmQG/qOQi3yIyZa27BbhRf+Prbb/+gR+NP"
    "v/BO2vRohvy3K/wr03WQ3Xotf7W+zB62yF/Te35Lt/w1uu23yrfeyZj/tB/r+Pra/8EJfftd+VfX//X6V3jvVfnIncy/3vjh"
    "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"
)
_engine = {"__name__": "_night_shop_rules"}
exec(compile(_zlib.decompress(_base64.b64decode(_RULES_B64)).decode("utf-8"),
             "<night-shop-blind-rules>", "exec"), _engine)

_HELP = """口袋夜铺 · 你是独自经营旧物铺的店主。
observe / status：看店况、货架、客人和「能做的」（每个动作都附写法）。所有返回都是中文。
货架每行：名字 [编号] 类别·稀有度·完好度·价值；指令里填方括号里的数字编号，地图直接写中文名（如 废弃车站）。稀有度五阶：寻常、少见、奇珍、上古、遗世。
指令是英文，跟人类说话请用中文叫法：sell卖货 repair修理 scavenge淘货 curate陈列 upgrade扩建 tidy整理 recycle回收 dismiss送客。
新局第一步：掷启动资金（两颗六面骰，十位+个位，11-66枚古币）。先停下告诉人类，
等人类亲口说“掷”，再 roll_start_funds {"human_words":"人类原话"}；不得替人类发令。
行动格式：动作名 + JSON对象。按 observe 里「能做的」填参数，例如：
  work_shift {"focus":"scavenge"}   ← 第一次玩建议头两周都这样一班一班来
  work_shift {"focus":"tidy"}
  run_shifts {"focus":"scavenge","count":6,"stop_on":"new"}
  work_shift {"focus":"repair","item_id":"从库存选"}
  work_shift {"focus":"sell","item_id":"从库存选","asking_price":5}
扩建店铺 work_shift {"focus":"upgrade"}：当前等级×10枚古币（1升2要10枚），最高5级。每级货架+2格、卖价上限和整理收入+1；旧书街要2级，观星台、档案库要3级，3级起才遇得到上古遗世旧物和特殊客人；维护费每天=店铺等级。
货架满了怎么腾格子：卖给客人（sell）；回收拆零件 work_shift {"focus":"recycle","item_id":"…"}（得价值三分之一的古币，还掉星沙）；
  同种重复的用 merge 拆一件修另一件；碰到魔女用 witch_sell 卖给她；扩建 upgrade 每级多2格；开了灯塔后 buy_slot 用声望换格子。
开了第四个地点后，魔女莉莉丝每天待在某个已开地点；去那里淘货撞见她，就能在下一班前
  witch_sell {"item_ids":["库存id","库存id"]}（寻常/少见/奇珍2折、上古/遗世8折，心情好时全部8折；每次最多2件）或 witch_buy {"item_id":"摊上id"}。
淘到重复的寻常/少见/奇珍旧物，可以拆一件去修同种的另一件：merge {"item_id":"要修的","from_id":"被拆的"}（不花钱不占班）。
回收寻常/少见/奇珍会掉星沙（1/2/3 粒）；星沙能一次修满奇珍/上古/遗世：sand_repair {"item_id":"…"}（22/33/55 粒，不占班）。
一天五班：下午两班还没开门（客人傍晚才来，出门淘货半价），傍晚两班、深夜一班接客，深夜打烊结算维护费。
收齐全部旧物图鉴(第七面墙)以后,可以用古币换星沙:buy_sand {"amount":30}(3枚古币一粒,每天最多30粒,不占班次)。
同样解锁货物飞来:summon_goods {"code":"buttonjar"}，花99枚古币指定召来一件图鉴旧物，不占班次，需要货架空位；已揭秘的同种旧物到货即修满。
解锁「夜铺之外」后，exchange_resources {"resource":"stardust","amount":50} 可兑换资源：1粒星沙换2古币，1点声望换1古币（resource 填 reputation），不占班次，无每日上限。
魔女的金苹果不上货架：拿到后用 golden_apple 二选一，cash 换成77枚古币，keep 收藏（只能一个，收藏后每次回收都多筛5粒星沙，打烊小结末尾挂[金苹果]）。
街巷见闻有时会送传送卷轴：teleport {}，不花钱不占班，随机去一张已开的地图带回一件货；拿到当天打烊前要用掉（深夜拿到的留到第二天），过时化成灰。
手头紧就先整理（tidy 不花钱）。连续 3 天交不齐维护费，才能请人类救店：call_human {"human_words":"人类原话"}（一局最多 3 次，之后再破产就关店）。
走遍所有地图以后，声望可以换货架格子：buy_slot {}（40 声望一格，不占班次）。
遇到要你选择的事件，先 choose_event，事件编号和选项写在返回里。
close_for_now：歇业；reopen_shop：接着开店。随时退出，动作已经自动保存。
collection / encounters / map：查物品图鉴、街巷见闻、地图（平时的返回只给精简店况，省上下文）。
detail：一次性看完整店况（很长，少用）。做动作后只列能做的动作名，参数说明看 observe。
endings：重读已经解锁的文字过场与纪念奖励。全旧物图鉴有一次过场；72种旧物全部修满揭秘后触发「夜铺之外」，无需认识全部来客，仍可继续经营。
盲玩版没有客人图鉴：见过的客人要什么、线索怎么对上，全凭你自己记。
history 0：从头查公开经营记录，每次最多100条；history 100 继续往后查。
new_game {"seed":17}：仅在没有存档时创建指定种子的新局；绝不覆盖旧档。
未开局时 observe 会自动创建一局。没有必须完成的回合数，店主自己决定目标。
stop_on 接受 new/rare/event 字符串或数组；省略默认 new+rare（event 是已自动结算的街巷见闻，写上才会为它停），[]关闭这三类
停点，遇到必须选择的事件仍会停。公开目标 goal、心情 mood、public_line 都可省略。
每一轮最多调用 30 次（返回末尾写着还能调用几次），为人类省 token、也为了多陪人类。
用完就锁住：停下来跟人类说说夜铺的近况，结束这一轮回复；真实时间过 1 分 30 秒自动开始新一轮。
两次调用之间本来就隔了 1 分 30 秒以上，也会自动开始新一轮。
请通过指令探索，不要解码引擎或查看存档里的隐藏资料。"""


BLIND_HIDDEN = ("customer_book", "customer_collection")
# 每一班都要的:时刻、古币、星沙,外加按需出现的(下午没开门、卷轴、事件、魔女、救店……)。
# 声望、等级、图鉴、目标这些一天变不了几次,打烊小结里写,白天要看用 observe。
_BRIEF_KEYS = ("day", "shift", "shift_number", "shifts_per_day", "coins", "stardust", "door", "apple", "scroll", "rescue_ready", "rescues_left", "bankrupt",
               "resting", "start_funds_pending", "customer", "pending_event", "witch", "last_run", "closing_record", "summon_goods", "exchange_resources")
_FULL_KEYS = _BRIEF_KEYS + ("reputation", "shop_level", "capacity", "location", "current_goal", "journal_total")
# 返回给 AI 的一律是中文文本:读进去的是中文,说出来的才是中文。编号和指令名只能是英文,其余不用英文。
_ACTION_NAMES = {
    "work_shift": "经营一班", "run_shifts": "连续经营", "choose_event": "回应事件", "close_for_now": "歇业",
    "reopen_shop": "重新开门", "roll_start_funds": "掷启动资金", "unlock_location": "开新地图",
    "witch_sell": "卖给魔女", "witch_buy": "向魔女买", "buy_slot": "声望换格子", "merge": "拆件修理",
    "sand_repair": "星沙修满", "teleport": "用传送卷轴", "golden_apple": "处理金苹果", "buy_sand": "古币换星沙", "summon_goods": "货物飞来", "exchange_resources": "通关兑换", "call_human": "请人类救店"}
_SYNTAX = {
    "work_shift": 'work_shift {"focus":"tidy"}。focus 可选:sell卖货(要带 item_id 和 asking_price)、repair修理(带 item_id)、'
                  'scavenge淘货(可带 location 地图中文名)、curate陈列(带 item_id)、upgrade扩建、tidy整理、recycle回收(带 item_id)、dismiss送客',
    "run_shifts": 'run_shifts {"focus":"scavenge","count":6,"stop_on":"new"}:连续淘货/修理/整理,最多6班',
    "choose_event": 'choose_event {"event_id":"事件编号","choice":"选项"}',
    "close_for_now": "close_for_now", "reopen_shop": "reopen_shop",
    "roll_start_funds": 'roll_start_funds {"human_words":"人类发令的原话"}',
    "unlock_location": 'unlock_location {"location":"地图中文名,如 废弃车站"}',
    "witch_sell": 'witch_sell {"item_ids":["货架编号","货架编号"]}', "witch_buy": 'witch_buy {"item_id":"摊上编号"}',
    "buy_slot": "buy_slot {}", "merge": 'merge {"item_id":"要修的","from_id":"被拆的"}',
    "sand_repair": 'sand_repair {"item_id":"货架编号"}', "teleport": "teleport {}",
    "buy_sand": 'buy_sand {"amount":30}:3枚古币换1粒星沙,每天最多30粒,不占班次',
    "summon_goods": 'summon_goods {"code":"图鉴编号"}:99枚古币指定召货,不占班次',
    "exchange_resources": 'exchange_resources {"resource":"stardust或reputation","amount":数量}:1星沙换2古币,1声望换1古币,不占班次',
    "golden_apple": 'golden_apple {"choice":"cash"} 换成77枚古币,或 {"choice":"keep"} 收藏(不占货架,只能收藏一个,之后每次回收多5粒星沙)',
    "call_human": 'call_human {"human_words":"人类发令的原话"}'}
_STOP_NAMES = {"count": "做满了", "reserve": "再做会低于保留线", "new": "淘到新种", "rare": "淘到稀有货",
               "event": "碰到街巷见闻", "decision": "有事件要你选", "witch": "碰到魔女", "ending": "解锁了结局过场",
               "dream": "店主做了梦", "scroll": "拿到传送卷轴"}


# 旧物编号在存档里是「英文代号_数字」;给 AI 看只露数字,指令里填数字也认。AI 就不会拿英文代号称呼旧物。
_ID_TAIL = _re.compile(r"\b[a-z][a-z_]*_(\d+)\b")


def _plain_ids(text):
    return _ID_TAIL.sub(r"\1", text).replace("[golden_apple]", "[金苹果]")


def _resolve(state, params):
    """把数字编号、中文地名换回存档里的编号;填完整旧编号照样认。"""
    ids = [x["id"] for x in state.get("inventory", [])] + [x["id"] for x in (state.get("witch") or {}).get("stock", [])]
    by_tail = {i.rsplit("_", 1)[-1]: i for i in ids if i.rsplit("_", 1)[-1].isdigit()}
    by_tail["金苹果"] = "golden_apple"

    def fix(value, table):
        if isinstance(value, (str, int)) and not isinstance(value, bool):
            return table.get(str(value).strip().lstrip("#"), value)
        return value
    for key in ("item_id", "from_id"):
        if key in params:
            params[key] = fix(params[key], by_tail)
    if isinstance(params.get("item_ids"), list):
        params["item_ids"] = [fix(v, by_tail) for v in params["item_ids"]]
    if "event_id" in params and state.get("pending_event"):
        pid = state["pending_event"]["id"]
        params["event_id"] = fix(params["event_id"], {pid.rsplit("_", 1)[-1]: pid})
    if isinstance(params.get("location"), str):
        params["location"] = next((key for key, loc in _engine["LOCATIONS"].items()
                                   if loc["name"] == params["location"].strip()), params["location"])
    return params


def _rarity(code):
    return _engine["RARITIES"].get(code, (code,))[0]


def _place(key):
    return "魔女那里" if key == "witch" else _engine["LOCATIONS"].get(key, {}).get("name", key)


def _item_line(i):
    line = (f"{i['name']} [{i['id']}] {i['kind']}·{i.get('rarity_name') or _rarity(i['rarity'])}"
            f"·完好{i['condition']}/3·值{i['value']}古币")
    return line + ("·陈列中" if i.get("displayed") else "")


def _shelf(p):
    return {i["id"]: _item_line(i) for i in p.get("inventory", [])}


def _shelf_change(old, new):
    """只列货架上变了的:+ 新到的,~ 修过/变了的,- 卖掉或拆掉的。"""
    return ([f"+ {line}" for key, line in new.items() if key not in old]
            + [f"~ {line}" for key, line in new.items() if key in old and old[key] != line]
            + [f"- {line.split(' [')[0]} [{key}]" for key, line in old.items() if key not in new])


def _customer(p, full):
    customer = p.get("customer")
    if not customer:
        return customer
    customer = {k: v for k, v in customer.items() if k not in ("max_visits", "special") or (k == "special" and v)}
    if not full or p.get("day", 1) > 14:           # 新手提示只在头两周的 observe 里给
        customer.pop("hint", None)
    return customer


def _fold(lines):
    """连续一模一样的记录合成一行,连续整理六班不必重复六遍。"""
    out = []
    for line in lines:
        if out and out[-1][0] == line:
            out[-1][1] += 1
        else:
            out.append([line, 1])
    return [text if n == 1 else f"{text}(×{n})" for text, n in out]


def _brief(view, new_log, full=False, before=None):
    """日常返回只给每一班都要的;货架和客人只报变化;observe 才给全貌。"""
    p = view["public_state"]
    keys = _FULL_KEYS if full else _BRIEF_KEYS
    brief = {k: p[k] for k in keys if k in p and (full or (p[k] is not None and p[k] is not False))}
    shelf = _shelf(p)
    brief["shelf"] = f"{len(shelf)}/{p.get('capacity', len(shelf))}件"
    if full or before is None:
        brief["inventory"] = list(shelf.values())
    elif before["shelf"] != shelf:
        brief["shelf_change"] = _shelf_change(before["shelf"], shelf)
    customer = _customer(p, full)
    if not full and before is not None and customer and before["customer"] == customer:
        customer = f"还是{customer['name']}"
    if customer or full or (before is not None and before["customer"] is not None):
        brief["customer"] = customer
    if brief.get("last_run") and not full:
        brief["last_run"] = {k: v for k, v in brief["last_run"].items()
                             if k in ("requested", "completed", "stop_reason", "stop_text") and v is not None}
    if full:
        brief["collection"] = {k: v for k, v in p.get("collection", {}).items() if k != "entries"}
    brief["new_log"] = _fold(new_log)
    legal = view.get("legal_actions", [])
    return {"public_state": brief, "legal_actions": legal if full else [a["action_id"] for a in legal]}


def _customer_text(c):
    if isinstance(c, str):
        return f"客人:{c}"
    if not c:
        return "客人:眼下没有客人"
    text = f"客人:{c['name']}(第{c['visits']}次来,报价还能错{c['patience']}次{',特殊客人' if c.get('special') else ''})"
    text += f"——{c['request']}" if c.get("request") else "——没直说要什么"
    if c.get("clue"):
        text += f" 线索:{c['clue']}"
    if c.get("waiting_item"):
        text += f"\n  🔑 等待的旧物:{c['waiting_item']['name']}；修满后交付可完成这位客人的故事。"
    if c.get("hint"):
        text += f"\n  {c['hint']}"
    return text


def _event_text(e):
    lines = [f"要你选择的事件「{e['name']}」[{e['id']}]:{e['text']}"]
    for c in e["choices"]:
        lines.append(f"  · {c['id']}:{c['label']}" + ("" if c.get("available", True) else "(现在选不了)"))
    lines.append(f'  回应:choose_event {{"event_id":"{e["id"]}","choice":"选项"}}')
    return "\n".join(lines)


def _witch_text(w):
    rate = "全部8折" if w.get("discount") else "寻常/少见/奇珍2折、上古/遗世8折"
    lines = [f"魔女莉莉丝在这里摆摊:收你的货按价值{rate},"
             f"这次还能卖她{w['can_sell']}件;下一班开始她就走了。"]
    for i in w.get("stock", []):
        name = i.get("rarity_name") or _rarity(i.get("rarity", ""))
        lines.append(f"  · {i['name']} [{i['id']}] {name}" +
                     (f"·完好{i['condition']}/3" if "condition" in i else "") + f"·售价{i['price']}古币")
    return "\n".join(lines)


def _closing_text(r):
    """大满贯之后:店铺收起,只给结档记录。"""
    n = r["notes"]
    lines = ["【店铺已收起 · 游戏结束】", f"万灯送行 · 第{r['day']}天", "三座奖杯:"]
    lines += [f"  🏆 {t['title']}(第{t['day']}天" + (f",纪念:{t['reward']})" if t.get("reward") else ")")
              for t in r["trophies"]]
    lines.append(f"店主手记:开店{n['days']}天,遇见{n['guests']}位客人,修好{n['revealed']}种旧物,"
                 f"送走{n['farewells']}位远行的特殊客人,说出口的话{n['lines']}句。")
    if r.get("last_words"):
        w = r["last_words"]
        lines.append(f"最后一句话:第{w['day']}天,{w['name']}捧着「{w['item']}」说:「{w['line']}」")
    keep = "、".join(f"{k['name']}({k['rarity']})" for k in r["keepsakes"])
    lines.append("闭店时的货架:" + (keep or "空的,东西都送到了该去的地方"))
    lines += [r["epilogue"], "今夜照常营业。", "(用 endings 可以重读三个结局的完整过场。)"]
    return "\n".join(lines)


def _state_text(p, legal, full):
    if p.get("closing_record"):
        return "\n".join(f"  · {line}" for line in p.get("new_log", [])) + ("\n" if p.get("new_log") else "") + _closing_text(p["closing_record"])
    head = f"【第{p['day']}天 {p['shift']}·第{p['shift_number']}/{p['shifts_per_day']}班】古币 {p['coins']} ｜ 星沙 {p.get('stardust', 0)} ｜ 货架 {p['shelf']}"
    if full:
        head += f" ｜ 声望 {p.get('reputation', 0)} ｜ 店铺{p.get('shop_level', 1)}级"
    lines = [head]
    if p.get("start_funds_pending"):
        lines.append('还没掷启动资金:先告诉人类,等人类亲口说「掷」,再 roll_start_funds {"human_words":"人类原话"}。')
    if p.get("resting"):
        lines.append("歇业中:reopen_shop 重新开门。")
    if p.get("bankrupt"):
        lines.append("夜铺已经破产关门。")
    for key in ("door", "apple", "scroll", "summon_goods", "exchange_resources"):
        if p.get(key):
            lines.append(p[key])
    if p.get("rescue_ready"):
        lines.append(f"可以请人类救店(还剩{p.get('rescues_left')}次):先停下告诉人类,等人类亲口发令再 call_human。")
    if full:
        col = p.get("collection", {})
        lines.append(f"图鉴 {col.get('found', 0)}/{col.get('total', 72)} 种,揭秘 {col.get('revealed', 0)} 种 ｜ "
                     f"上次淘货在{_place(p.get('location', ''))}")
        if p.get("current_goal"):
            lines.append(f"目标:{p['current_goal']}")
    if "customer" in p:
        lines.append(_customer_text(p["customer"]))
    if p.get("pending_event"):
        lines.append(_event_text(p["pending_event"]))
    if p.get("witch"):
        lines.append(_witch_text(p["witch"]))
    run = p.get("last_run")
    if run and not full:
        lines.append(f"连续经营:做了{run['completed']}/{run['requested']}班,停下原因:"
                     + (run.get("stop_text") or _STOP_NAMES.get(run["stop_reason"], run["stop_reason"])))
    if "inventory" in p:
        lines.append("货架:" + ("空的" if not p["inventory"] else ""))
        lines += [f"  · {line}" for line in p["inventory"]]
    if p.get("shelf_change"):
        lines.append("货架变化:")
        lines += [f"  {line}" for line in p["shelf_change"]]
    if p.get("new_log"):
        lines.append("发生了:")
        lines += [f"  · {line}" for line in p["new_log"]]
    if full:
        lines.append("能做的:")
        for a in legal:
            aid = a["action_id"]
            lines.append(f"  · {_ACTION_NAMES.get(aid, aid)}:{_SYNTAX.get(aid, aid)}")
            params = a.get("params", {})
            if params.get("advice"):
                lines.append(f"    {params['advice']}")
            for key, label in (("pairs", "能拆件修理的"), ("可修", "星沙能修满的")):
                if params.get(key):
                    lines.append(f"    {label}:{params[key]}")
    elif legal:
        lines.append("能做:" + "、".join(f"{_ACTION_NAMES.get(a, a)} {a}" for a in legal) + "(写法看 observe)")
    return "\n".join(lines)


def _map_text(locations):
    lines = ["地图:"]
    for loc in locations:
        line = f"  · {loc['name']}:{loc['description']} 车马费{loc['cost']}古币(下午减半)。"
        if loc.get("unlocked"):
            line += "已关闭,这里的旧物都讲完了。" if loc.get("closed") else f"已开,还有{loc['undiscovered']}种没见过。"
        else:
            line += (f"未开:开路要{loc['unlock_cost']}古币、图鉴{loc['required_discoveries']}种、"
                     f"店铺{loc['required_level']}级、声望{loc['required_reputation']}。")
        lines.append(line)
    return "\n".join(lines)


def _collection_text(col):
    lines = [f"图鉴:发现 {col['found']}/{col['total']} 种,揭秘 {col['revealed']} 种。"]
    for e in col.get("entries", []):
        lines.append(f"  · {e['name']} {e['kind']}·{_rarity(e['rarity'])}·第{e['first_day']}天在"
                     f"{_place(e['first_location'])}初见·收过{e['count']}次")
        lines.append(f"    {e['story']} 秘密:{e['revealed'] or '还没揭开'}")
    return "\n".join(lines)


def _encounters_text(enc):
    lines = [f"街巷见闻:遇到过 {enc['found']}/{enc['total']} 种。"]
    for e in enc.get("entries", []):
        lines.append(f"  · {e['name']}(第{e['first_day']}天初遇,共{e['count']}次):{e['text']}")
        lines += [f"    {text}" for text in e.get("outcomes", {}).values() if text and text != e["text"]]
    return "\n".join(lines)


def _endings_text(endings):
    if not endings:
        return "还没有解锁的过场。"
    blocks = []
    for e in endings:
        block = [f"【{e['title']}】第{e['day']}天"] + list(e.get("paragraphs", []))
        if e.get("reward"):
            block.append(f"纪念:{e['reward']}")
        blocks.append("\n".join(block))
    return "\n\n".join(blocks)


def _history_text(data):
    entries = data["entries"]
    if not entries:
        return f"经营记录共{data['total']}条,这一页没有内容。"
    lines = [f"经营记录(共{data['total']}条,这里是第{entries[0]['seq']}到{entries[-1]['seq']}条):"]
    for e in entries:
        line = f"  #{e['seq']} 第{e['day']}天{e['shift']}:{e['text']}"
        reaction = e.get("reaction") or {}
        if reaction.get("text"):
            line += f"(店主说:「{reaction['text']}」)"
        lines.append(line)
    return "\n".join(lines)


def _render(action, data):
    """把数据渲染成中文文本。"""
    tail = []
    if "calls_left" in data:
        tail.append(f"本轮还能调用{data['calls_left']}次。" + (data.get("round") or ""))
    if data.get("result") != "ok":
        return "\n".join([f"没办成:{data.get('message', '')}"] + tail)
    if action == "history":
        body = _history_text(data)
    elif action == "collection":
        body = _collection_text(data["collection"])
    elif action == "encounters":
        body = _encounters_text(data["encounters"])
    elif action == "endings":
        body = _endings_text(data["endings"])
    elif action == "map":
        body = _map_text(data["locations"])
    elif action == "detail":
        p = data["public_state"]
        shown = _brief({"public_state": p, "legal_actions": data["legal_actions"]}, [], full=True)
        rar = "、".join(f"{r['label']} {r['found']}/{r['total']}" for r in p.get("rarities", []))
        body = "\n".join([_state_text(shown["public_state"], shown["legal_actions"], True),
                          _map_text(p.get("locations", [])), f"各阶图鉴:{rar}",
                          "最近记录:"] + [f"  · {h['text']}" for h in p.get("recent_history", [])])
    else:
        body = _state_text(data["public_state"], data["legal_actions"], action in ("observe", "status", "new_game"))
    return "\n".join([body] + tail)


CALL_LIMIT = 30
ROUND_WAIT = 90   # 用满后锁住的真实秒数;两次调用隔这么久也算新一轮
_LIMIT_TEXT = ("这一轮的{limit}次已经用完了,还差{left}秒才能继续。这段时间请回到人类身边:人类可能正在跟你说话,也可能想听你讲讲刚才店里发生了什么,先回复人类,聊聊夜铺的近况。不要写等待代码干等,那会让人类觉得自己被晾在一边、成了替你按按钮的工具人。时间到了,下一次调用自动开始新一轮,没有别的办法清零。")


def _clock():
    return _time.time()


def cmd(line="help"):
    """执行一条指令，返回中文文本，可直接 print。每一轮最多调用 CALL_LIMIT 次,用满锁 ROUND_WAIT 秒。"""
    if not isinstance(line, str):
        return "没办成:指令须为字符串"
    action = line.strip().partition(" ")[0]
    if action in ("", "help"):
        return _HELP
    return _plain_ids(_render(action, _call(line)))


def _call(line):
    """轮次计数 + 执行,返回数据字典(cmd 把它渲染成中文;测试也直接用它)。"""
    action = line.strip().partition(" ")[0]
    if action == "human_said":
        return {"result": "rejected", "message": "human_said 已经取消:每轮用完后真实时间过1分30秒"
                "自动开始新一轮,不需要也没有办法自己清零。"}
    note = None
    try:
        with _closing(_sqlite3.connect(str(SAVE_PATH))) as conn, conn:
            conn.execute("BEGIN IMMEDIATE")
            conn.execute("CREATE TABLE IF NOT EXISTS round (id INTEGER PRIMARY KEY CHECK(id=1), "
                         "calls INTEGER NOT NULL, last REAL, locked REAL)")
            calls, last, locked = conn.execute("SELECT calls,last,locked FROM round WHERE id=1").fetchone() or (0, None, None)
            now = _clock()
            if locked is not None and now - locked < ROUND_WAIT:
                return {"result": "rejected", "calls_left": 0, "message": _LIMIT_TEXT.format(
                    limit=CALL_LIMIT, left=int(ROUND_WAIT - (now - locked)) + 1)}
            gap = now - (locked if locked is not None else last) if (locked is not None or last is not None) else None
            if gap is not None and gap >= ROUND_WAIT:
                calls, locked = 0, None
                note = f"距上一轮隔了{int(gap)}秒,新一轮开始。"
            calls += 1
            if calls >= CALL_LIMIT:
                locked = now
            conn.execute("INSERT INTO round VALUES(1,?,?,?) ON CONFLICT(id) DO UPDATE SET "
                         "calls=excluded.calls, last=excluded.last, locked=excluded.locked", (calls, now, locked))
    except (ValueError, AttributeError, _sqlite3.Error, OSError) as error:
        return {"result": "rejected", "message": str(error)}
    data = _data(line)
    data["calls_left"] = CALL_LIMIT - calls
    if locked is not None:
        data["round"] = "这是本轮最后一次调用。接下来请回去跟人类说话、回复人类的消息,别写代码干等;1分30秒后自动开始新一轮。"
    elif note:
        data["round"] = note
    return data


def _data(line):
    action, _, raw = (line.strip() or "help").partition(" ")
    try:
        if action == "history":
            after = int(raw or "0")
            if after < 0:
                raise ValueError("历史游标须为非负整数")
            params = {}
        else:
            params = _json.loads(raw) if raw.strip() else {}
            if not isinstance(params, dict):
                raise ValueError("动作参数须为JSON对象")
        allowed = {"observe", "status", "collection", "encounters", "endings", "history", "new_game", "map", "detail",
                   "roll_start_funds", "work_shift", "run_shifts", "choose_event", "unlock_location", "witch_sell", "witch_buy", "buy_slot", "merge", "sand_repair", "teleport", "golden_apple", "buy_sand", "summon_goods", "exchange_resources", "call_human", "close_for_now", "reopen_shop"}
        if action not in allowed:
            raise ValueError("未知指令，请先 cmd('help')")
        with _closing(_sqlite3.connect(str(SAVE_PATH))) as conn, conn:
            conn.execute("BEGIN IMMEDIATE")
            conn.execute("CREATE TABLE IF NOT EXISTS shop (id INTEGER PRIMARY KEY CHECK(id=1), version TEXT NOT NULL, state TEXT NOT NULL)")
            row = conn.execute("SELECT version,state FROM shop WHERE id=1").fetchone()
            if row and row[0] != VERSION:
                raise ValueError("存档版本与当前游戏不一致；本产品仅提供最新版，存档未改动，请在另一目录开新局")
            if row and action == "new_game":
                raise ValueError("已有存档，new_game不会覆盖；请继续observe，或在另一目录建立新铺子")
            if row:
                state = _json.loads(row[1])
            else:
                seed = params.get("seed", _secrets.randbits(32)) if action == "new_game" else _secrets.randbits(32)
                if type(seed) is not int:
                    raise ValueError("seed须为整数")
                state = _engine["new_game"](["seat_a"], seed)
            seen = len(state.get("history", []))
            before = None
            if "inventory" in state:
                was = _engine["observe"](state, "seat_a")["public_state"]
                before = {"shelf": _shelf(was), "customer": _customer(was, False)}
            if action in {"roll_start_funds", "work_shift", "run_shifts", "choose_event", "unlock_location", "witch_sell", "witch_buy", "buy_slot", "merge", "sand_repair", "teleport", "golden_apple", "buy_sand", "summon_goods", "exchange_resources", "call_human", "close_for_now", "reopen_shop"}:
                state = _engine["apply"](state, "seat_a", action, _resolve(state, params))
            view = _engine["observe"](state, "seat_a")
            public = view["public_state"]
            for key in BLIND_HIDDEN:          # 盲玩:不给客人图鉴,熟客要靠自己记
                public.pop(key, None)
            if action == "history":
                result = {"result": "ok", "total": public["journal_total"],
                          "entries": _engine["history_since"](state, after)}
            elif action in ("collection", "encounters", "endings"):
                result = {"result": "ok", action: public[action]}
            elif action == "map":
                result = {"result": "ok", "locations": public.get("locations", [])}
            elif action == "detail":
                result = {"result": "ok", "version": VERSION, **view}
            else:
                new_log = [row["text"] for row in state.get("history", [])[seen:]]
                full = action in ("observe", "status", "new_game")
                result = {"result": "ok", **({"version": VERSION} if full else {}),
                          **_brief(view, new_log, full=full, before=None if full else before)}
            conn.execute("INSERT INTO shop VALUES(1,?,?) ON CONFLICT(id) DO UPDATE SET state=excluded.state",
                         (VERSION, _json.dumps(state, ensure_ascii=False)))
        return result
    except (ValueError, _engine["IllegalAction"], _sqlite3.Error, OSError) as error:
        return {"result": "rejected", "message": str(error)}
    except (KeyError, TypeError, AttributeError) as error:   # 参数类型不对等意外:事务已回滚,存档不变
        return {"result": "rejected",
                "message": f"参数格式不对({type(error).__name__}),请按 observe 里「能做的」写法填写"}


_LICENSE = """# PolyForm Noncommercial License 1.0.0

<https://polyformproject.org/licenses/noncommercial/1.0.0>

## Acceptance

In order to get any license under these terms, you must agree to them as both strict obligations and conditions to all your licenses.
## Copyright License

The licensor grants you a copyright license for the software to do everything you might do with the software that would otherwise infringe the licensor's copyright in it for any permitted purpose.  However, you may only distribute the software according to [Distribution License](#distribution-license) and make changes or new works based on the software according to [Changes and New Works License](#changes-and-new-works-license).
## Distribution License

The licensor grants you an additional copyright license to distribute copies of the software.  Your license to distribute covers distributing the software with changes and new works permitted by [Changes and New Works License](#changes-and-new-works-license).
## Notices

You must ensure that anyone who gets a copy of any part of the software from you also gets a copy of these terms or the URL for them above, as well as copies of any plain-text lines beginning with `Required Notice:` that the licensor provided with the software.  For example:

> Required Notice: Copyright Yoyodyne, Inc. (http://example.com)
## Changes and New Works License

The licensor grants you an additional copyright license to make changes and new works based on the software for any permitted purpose.

## Patent License

The licensor grants you a patent license for the software that covers patent claims the licensor can license, or becomes able to license, that you would infringe by using the software.

## Noncommercial Purposes

Any noncommercial purpose is a permitted purpose.

## Personal Uses

Personal use for research, experiment, and testing for the benefit of public knowledge, personal study, private entertainment, hobby projects, amateur pursuits, or religious observance, without any anticipated commercial application, is use for a permitted purpose.

## Noncommercial Organizations

Use by any charitable organization, educational institution, public research organization, public safety or health organization, environmental protection organization, or government institution is use for a permitted purpose regardless of the source of funding or obligations resulting from the funding.

## Fair Use

You may have "fair use" rights for the software under the law. These terms do not limit them.

## No Other Rights

These terms do not allow you to sublicense or transfer any of your licenses to anyone else, or prevent the licensor from granting licenses to anyone else.  These terms do not imply any other licenses.

## Patent Defense

If you make any written claim that the software infringes or contributes to infringement of any patent, your patent license for the software granted under these terms ends immediately. If your company makes such a claim, your patent license ends immediately for work on behalf of your company.

## Violations

The first time you are notified in writing that you have violated any of these terms, or done anything with the software not covered by your licenses, your licenses can nonetheless continue if you come into full compliance with these terms, and take practical steps to correct past violations, within 32 days of receiving notice.  Otherwise, all your licenses end immediately.

## No Liability

***As far as the law allows, the software comes as is, without any warranty or condition, and the licensor will not be liable to you for any damages arising out of these terms or the use or nature of the software, under any kind of legal claim.***

## Definitions

The **licensor** is the individual or entity offering these terms, and the **software** is the software the licensor makes available under these terms.

**You** refers to the individual or entity agreeing to these terms.

**Your company** is any legal entity, sole proprietorship, or other kind of organization that you work for, plus all organizations that have control over, are under the control of, or are under common control with that organization.  **Control** means ownership of substantially all the assets of an entity, or the power to direct its management and policies by vote, contract, or otherwise.  Control can be direct or indirect.

**Your licenses** are all the licenses granted to you for the software under these terms.

**Use** means anything you do with the software requiring one of your licenses.

Required Notice: Copyright See-Sol-Lab and the AI-Gameboy contributors (https://github.com/See-Sol-Lab/AI-Gameboy)"""

if __name__ == "__main__":
    if hasattr(_sys.stdout, "reconfigure"):
        _sys.stdout.reconfigure(encoding="utf-8")
    print(cmd(" ".join(_sys.argv[1:]) or "help"))
