import { Conversation } from 'https://cdn.skypack.dev/@elevenlabs/client';

let conversation = null;
let inCall = false;

document.addEventListener('JSsucks', () => {

  const callBtn = document.getElementById('callBtn');

  callBtn.addEventListener('click', async () => {
    if (!inCall) {
      console.log('Requesting microphone access...');

      try {
        await navigator.mediaDevices.getUserMedia({ audio: true });
      } catch (error) {
        console.log('Microphone access denied.');
        return;
      }

      console.log('Connecting to agent...');

      try {
        conversation = await Conversation.startSession({
          agentId: 'agent_01jx2xm2w4exwvjhbq52js687f',
          connectionType: 'websocket',
          onConnect: () => {
            console.log('✅ Connected to AI Agent!');
            callBtn.style.color = 'red';
            inCall = true;
          },
          onDisconnect: () => {
            console.log('🔌 Disconnected.');
            callBtn.style.color = 'grey';
            inCall = false;
          },
          onError: (err) => {
            console.log(`❌ Error: ${err.message || err}`);
          },
          onMessage: (msg) => {
            console.log('Agent:', msg);
          },
        });
      } catch (err) {
        console.log('Failed to start session.');
        console.error(err);
      }
    } else {
      console.log('Hanging up...');
      try {
        await conversation.endSession();
        conversation = null;
        inCall = false;
        callBtn.style.color = 'grey';
        console.log('✅ Call ended.');
      } catch (err) {
        console.error('Error ending the call:', err);
      }
    }
  });
});

