<!-- SAGA-SOLID · part 95 -->
ways available
  document.getElementById('v219-abort').onclick = function(){
    try{
      var R = window.ACTOR_RUNTIME;
      if(R && R.releaseAI) R.releaseAI();
      if(R) R.authority = "legacy";
      log("ABORTED — HUMAN DRIVE restored");
    }catch(e){ log("Abort error: " + e.message); }
  };

  document.getElementById('v219-run').onclick = function(){
    clearLog();
    try{
      var R = window.ACTOR_RUNTIME;
      if(!R){ log("FAIL: No ActorRuntime"); return; }
      if(typeof kingPos === 'undefined' || !kingPos){ log("FAIL: No kingPos"); return; }

      // FAIL CLOSED: Safety Supervisor must be SAFE and permit=true
      var sv = R.safetySupervisor;
      log("Safety: " + (sv?sv.status:"NONE") + " / permit=" + (sv?sv.permit:"NONE"));
      if(!sv || sv.status !== "SAFE" || !sv.permit){
        log("FAIL CLOSED: Safety Supervisor not SAFE/PERMIT");
        return;
      }
      if(R.authority !== "legacy" || R.input.owner !== "human"){
        log("FAIL: Not in human/legacy state (auth="+R.authority+", owner="+R.input.owner+")");
        return;
      }

      // Record start state
      var startPos = {x: kingPos.x, y: kingPos.y, z: kingPos.z};
      var startTime = performance.now();
      var surfaceCount = (window.WORLD_FOUNDATION && window.WORLD_FOUNDATION.colliders)
        ? window.WORLD_FOUNDATION.colliders.length : -1;
      var authBefore = R.authority;
      var ownerBefore = R.input.owner;
      log("Start: x="+startPos.x.toFixed(2)+" z="+startPos.z.toFixed(2));
      log("Surfaces: "+surfaceCount);
      log("Before: auth="+authBefore+" owner="+ownerBefore);

      // Activate AI through guarded mechanism
      R.authority = "ai_guarded";
      R.ai.active = true;
      R.ai.agentId = "v219-test";
      R.ai.control = "test";
      // Zero velocities like the AI button does
      if(typeof _ftvx !== 'undefined'){ _ftvx=_ftvy=_ftvz=_fvx=_fvy=_fvz=0; }
      log("AI DRIVE active");

      // Submit forward intent
      var ok = R.submitIntent("ai", {moveX: 0, moveZ: 1});
      if(!ok){
        log("FAIL: submitIntent rejected");
        R.releaseAI(); R.authority = "legacy";
        return;
      }
      var intentTime = performance.now();
      log("Forward intent submitted");

      // After 1.0s: zero intent, record position
      setTimeout(function(){
        try{
          R.submitIntent("ai", {moveX: 0, moveZ: 0});
          var zeroPos = {x: kingPos.x, y: kingPos.y, z: kingPos.z};
          var zeroTime = performance.now();
          var cmdElapsed = zeroTime - intentTime;
          var cmdDx = zeroPos.x - startPos.x;
          var cmdDz = zeroPos.z - startPos.z;
          var cmdDist = Math.sqrt(cmdDx*cmdDx + cmdDz*cmdDz);
          log("Zero-intent at t+"+cmdElapsed.toFixed(0)+"ms");
          log("Cmd pos: x="+zeroPos.x.toFixed(2)+" z="+zeroPos.z.toFixed(2));
          log("Cmd displacement: "+cmdDist.toFixed(2)+"u");

          // Watch drift for 5s, then release
          setTimeout(function(){
            try{
              var settledPos = {x: kingPos.x, y: kingPos.y, z: kingPos.z};
              var setDx = settledPos.x - startPos.x;
              var setDz = settledPos.z - startPos.z;
              var setDist = Math.sqrt(setDx*setDx + setDz*setDz);
              var driftDx = settledPos.x - zeroPos.x;
              var driftDz = settledPos.z - zeroPos.z;
              var driftDist = Math.sqrt(driftDx*driftDx + driftDz*driftDz);

              // Release AI, restore human
              R.releaseAI();
              R.authority = "legacy";

              log("Settled: x="+settledPos.x.toFixed(2)+" z="+settledPos.z.toFixed(2));
              log("Settled displacement: "+setDist.toFixed(2)+"u");
              log("Post-zero drift: "+driftDist.toFixed(2)+"u");
              log("After: auth="+R.authority+" owner="+R.input.owner+" ai.active="+R.ai.active);
              log("Safety: "+R.safetySupervisor.status+" / permit="+R.safetySupervisor.permit);
              log("TEST COMPLETE — HUMAN DRIVE restored");
            }catch(e){ log("Settle error: "+e.message); }
          }, 5000);
        }catch(e){ log("Stop error: "+e.message); }
      }, 1000);

    }catch(e){ log("Test error: "+e.message); }
  };

  if(window.console) console.log("[V219] Test instrument installed");
})();

/* ============================================================
   SOLID DRIVE BRIDGE — STAGE 2 (BROWSER CLIENT)
   Authorized 2026-10-07 by the King. BRIDGE CONSTRUCTION ONLY.
   NOT commissioned. NO physical remote movement yet.
   ============================================================
   Intent path: SSE -> validate -> clamp -> submitIntent("ai") ->
     Safety Supervisor -> V219 controller -> world
   Rules: WALK only. 2.0 u/s max. 500ms dead-man. Human absolute override.
   STOP = zero intent (deceleration ~2.13u, NOT instant halt).
   ============================================================ */
(function(){
  if (window._solidDriveInstalled) return;