<!-- SAGA-SOLID · part 100 -->
 AI</button>' +

    '<div style="font-size:12px;font-weight:600;letter-spacing:2px;color:' + DIM + ';margin-bottom:8px;">MY AI AGENTS</div>' +
    '<div id="cockpit-agent-list" style="margin-bottom:8px;"><div style="color:' + DIM + ';font-size:13px;">Loading…</div></div>' +
    '</div>' +

    /* SAFETY section */
    '<div style="margin-bottom:20px;">' +
    '<div style="font-size:12px;font-weight:600;letter-spacing:2px;color:' + DIM + ';margin-bottom:8px;">SAFETY</div>' +
    '<div id="cockpit-safety" style="padding:12px;border-radius:12px;background:rgba(255,255,255,0.04);font-size:13px;line-height:1.8;">' +
    '<div>Supervisor: <span id="ck-safety-state" style="color:' + DIM + ';">—</span></div>' +
    '<div>Authority: <span id="ck-authority" style="color:' + DIM + ';">—</span></div>' +
    '<div>Control: <span id="ck-owner" style="color:' + DIM + ';">—</span></div>' +
    '</div></div>' +

    /* TEST section (collapsible) */
    '<div style="margin-bottom:20px;">' +
    '<div id="cockpit-test-toggle" style="font-size:12px;font-weight:600;letter-spacing:2px;color:' + DIM + ';margin-bottom:8px;cursor:pointer;">' +
    '▸ MOVEMENT TEST</div>' +
    '<div id="cockpit-test-body" style="display:none;">' +
    '<button id="cockpit-v219run" style="width:100%;padding:14px;border-radius:12px;border:1px solid #555;' +
    'background:rgba(255,255,255,0.06);color:' + TEXT + ';font-size:15px;cursor:pointer;margin-bottom:8px;">' +
    'Run V219 1-Second Test</button>' +
    '<div id="cockpit-v219out" style="font-family:monospace;font-size:11px;color:' + DIM + ';' +
    'white-space:pre-wrap;max-height:150px;overflow-y:auto;"></div>' +
    '</div></div>' +

    /* DIAGNOSTICS section (collapsible) */
    '<div style="margin-bottom:8px;">' +
    '<div id="cockpit-diag-toggle" style="font-size:12px;font-weight:600;letter-spacing:2px;color:' + DIM + ';margin-bottom:8px;cursor:pointer;">' +
    '▸ DIAGNOSTICS</div>' +
    '<div id="cockpit-diag-body" style="display:none;font-family:monospace;font-size:11px;color:' + DIM + ';' +
    'white-space:pre-wrap;line-height:1.6;"></div>' +
    '</div>' +

    '</div>';

  document.body.appendChild(sheet);

  /* ---------- Sheet open/close ---------- */
  function openSheet(){ sheet.style.display = 'block'; refreshCockpit(); }
  function closeSheet(){ sheet.style.display = 'none'; }
  pill.onclick = openSheet;
  document.getElementById('cockpit-close').onclick = closeSheet;

  /* Collapsible sections */
  document.getElementById('cockpit-test-toggle').onclick = function(){
    var b = document.getElementById('cockpit-test-body');
    var t = document.getElementById('cockpit-test-toggle');
    var open = b.style.display !== 'none';
    b.style.display = open ? 'none' : 'block';
    t.textContent = (open ? '▸' : '▾') + ' MOVEMENT TEST';
  };
  document.getElementById('cockpit-diag-toggle').onclick = function(){
    var b = document.getElementById('cockpit-diag-body');
    var t = document.getElementById('cockpit-diag-toggle');
    var open = b.style.display !== 'none';
    b.style.display = open ? 'none' : 'block';
    t.textContent = (open ? '▸' : '▾') + ' DIAGNOSTICS';
  };

  /* ---------- Wire to existing logic ---------- */
  // Authorize → trigger hidden SD authorize button
  document.getElementById('cockpit-authorize').onclick = function(){
    var btn = document.getElementById('sd-authorize');
    if(btn) btn.click();
  };

  /* ---------- AI DRIVER logic ---------- */
  var AI = window.AI_DRIVER = { agents: [], activeAgent: null };

  function aiGetCsrf(){
    try {
      var m = document.cookie.match(/csrf=([^;]+)/);
      if(m) return decodeURIComponent(m[1]);
    } catch(e){}
    return '';
  }

  // Toggle AI driver form
  document.getElementById('cockpit-aidriver-toggle').onclick = function(){
    var f = document.getElementById('cockpit-aidriver');
    var t = document.getElementById('cockpit-aidriver-toggle');
    var open = f.style.display !== 'none';
    f.style.display = open ? 'none' : 'block';
    t.innerHTML = open ? 'Connect Your AI ▸' : 'Connect Your AI ▾';
    if(!open) aiLoadAgents();
  };

  // Load agent list
  function aiLoadAgents(){
    var listEl = document.getElementById('cockpit-agent-list');
    fetch('/api/agent-drive/agents', {credentials: 'same-origin'})
      .then(function(r){ return r.json(); })
      .then(function(j){
        if(!j.ok || !j.agents){ 
          if(listEl) listEl.innerHTML = '<div style="color:#888;font-size:13px;">Could not load agents.</div>';
          return;
        }
        AI.agents = j.agents;
        if(j.agents.length === 0){
          if(listEl) listEl.innerHTML = '<div style="color:#888;font-size:13px;">No AI agents yet. Register one above.</div>';
          return;
        }
        var html = '';
        j.agents.forEach(function(a){
          html += '<div style="padding:10px;border-radius:8px;background:rgba(255,255,255,0.04);margin-bottom:6px;">' +
            '<div style=