Spaces:
Running
Running
| """In-process Chakravyuh smoke test — no GPU, no network, runs in <5s. | |
| Used by `make smoke-test` and the CI pipeline. Verifies the env's reset/step | |
| contract end-to-end against the local in-process server, including a multi-turn | |
| episode that reaches a terminal state. | |
| """ | |
| from __future__ import annotations | |
| import sys | |
| from chakravyuh_env import ChakravyuhAction, ChakravyuhOpenEnv | |
| def main() -> int: | |
| env = ChakravyuhOpenEnv() | |
| obs = env.reset(seed=42) | |
| steps = 0 | |
| max_steps = 12 # generous; episodes top out at ~9 turns | |
| while not obs.done and steps < max_steps: | |
| action = ChakravyuhAction( | |
| score=0.92, | |
| signals=["urgency", "impersonation"], | |
| explanation="OTP request with urgency from self-claimed bank.", | |
| ) | |
| obs = env.step(action) | |
| steps += 1 | |
| if not obs.done: | |
| print(f"FAIL: episode did not terminate after {max_steps} steps", file=sys.stderr) | |
| return 1 | |
| reward = obs.reward | |
| print(f"OK chakravyuh smoke · turns={steps} · done={obs.done} · reward={reward}") | |
| return 0 | |
| if __name__ == "__main__": | |
| sys.exit(main()) | |