/** * IdleState - Turtle is idle, waiting for commands */ import { BaseState } from './BaseState.js'; export class IdleState extends BaseState { get name() { return 'idle'; } get description() { return 'Idle - waiting for commands'; } async *act() { // Periodic fuel check while idle (no scanning — avoids rotating turtle) // Errors are caught here so they don't bubble up and trigger // the _runStateLoop retry mechanism (which would create an // infinite idle→timeout→idle loop). while (!this.cancelled) { try { await this.checkFuel(); } catch (e) { // Fuel check failed (likely command timeout) — not critical in idle // Just wait longer before trying again await this._sleep(30000); } yield; await this._sleep(10000); } } }