infinicode 2.8.71 → 2.8.72

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -3031,10 +3031,22 @@ button.act:disabled{opacity:0.5;cursor:default;}
3031
3031
  if(LK.RoomEvent.ParticipantAttributesChanged)room.on(LK.RoomEvent.ParticipantAttributesChanged,function(changed,p){updateAgentFromParticipant(p);});
3032
3032
  room.on(LK.RoomEvent.ParticipantConnected,function(p){updateAgentFromParticipant(p);setVoiceEvent('Agent connected',p.name||p.identity||'ROBOVOICE worker');});
3033
3033
  room.on(LK.RoomEvent.Disconnected,function(){ if(!rpVoiceCall.ending) finishVoiceCall('connection_lost'); });
3034
- return room.connect(call.server_url,call.token).then(function(){var mic=$('rp-call-mic-device').value,opts=mic?{deviceId:mic}:undefined;setVoiceEvent('LiveKit connected','publishing '+(mic?'selected microphone':'system default microphone'));return room.localParticipant.setMicrophoneEnabled(true,opts);});
3035
- }).then(function(){
3036
- setVoiceCallStatus('secure channel connected','live');setVoiceAgentState('Listening','speak naturally');setVoiceEvent('Connected','waiting for ROBOVOICE agent');rpVoiceCall.startedAt=Date.now();rpVoiceCall.timer=setInterval(updateVoiceTimer,1000);updateVoiceTimer();
3034
+ return room.connect(call.server_url,call.token).then(function(){
3035
+ var mic=$('rp-call-mic-device').value,opts=mic?{deviceId:mic}:undefined;
3036
+ setVoiceEvent('LiveKit connected','publishing '+(mic?'selected microphone':'system default microphone'));
3037
+ return room.localParticipant.setMicrophoneEnabled(true,opts).then(function(){return true;}).catch(function(e){
3038
+ var message=e&&e.message||'Browser microphone could not be published';
3039
+ rpVoiceCall.muted=true;
3040
+ voiceDeviceMessage('Voice channel is connected, but the microphone is blocked: '+message+'. Allow access, then press RETRY MIC.','bad');
3041
+ setVoiceEvent('Microphone blocked',message);
3042
+ if(window.console)console.error('RoboPark microphone publish failed',e);
3043
+ return false;
3044
+ });
3045
+ });
3046
+ }).then(function(micActive){
3047
+ setVoiceCallStatus(micActive?'secure channel connected':'channel connected - microphone blocked',micActive?'live':'busy');setVoiceAgentState(micActive?'Listening':'Microphone required',micActive?'speak naturally':'allow browser microphone access, then retry');if(micActive)setVoiceEvent('Connected','waiting for ROBOVOICE agent');rpVoiceCall.startedAt=Date.now();rpVoiceCall.timer=setInterval(updateVoiceTimer,1000);updateVoiceTimer();
3037
3048
  $('rp-call-mute').disabled=false;$('rp-call-camera').disabled=false;$('rp-call-screen').disabled=false;$('rp-call-end').disabled=false;$('rp-call-message').disabled=false;$('rp-call-send').disabled=false;
3049
+ $('rp-call-mute').textContent=micActive?'MIC':'RETRY MIC';$('rp-call-mute').classList.toggle('on',!!micActive);
3038
3050
  return fetch('/robopark/api/sessions/'+encodeURIComponent(rpVoiceCall.session)+'/joined'+QS,{method:'POST',headers:{'X-RoboPark-Session-Token':rpVoiceCall.eventToken}}).catch(function(){});
3039
3051
  });
3040
3052
  }).catch(function(e){
@@ -3047,9 +3059,8 @@ button.act:disabled{opacity:0.5;cursor:default;}
3047
3059
  });
3048
3060
  }
3049
3061
  function toggleVoiceMute(){
3050
- if(!rpVoiceCall.room)return; rpVoiceCall.muted=!rpVoiceCall.muted;
3051
- rpVoiceCall.room.localParticipant.setMicrophoneEnabled(!rpVoiceCall.muted);
3052
- $('rp-call-mute').textContent=rpVoiceCall.muted?'MIC OFF':'MIC';$('rp-call-mute').classList.toggle('on',!rpVoiceCall.muted);setVoiceCallStatus(rpVoiceCall.muted?'microphone muted':'secure channel connected','live');
3062
+ if(!rpVoiceCall.room)return;var enable=rpVoiceCall.muted,mic=$('rp-call-mic-device').value,opts=enable&&mic?{deviceId:mic}:undefined,btn=$('rp-call-mute');btn.disabled=true;
3063
+ rpVoiceCall.room.localParticipant.setMicrophoneEnabled(enable,opts).then(function(){rpVoiceCall.muted=!enable;btn.textContent=enable?'MIC':'MIC OFF';btn.classList.toggle('on',enable);setVoiceCallStatus(enable?'secure channel connected':'microphone muted','live');setVoiceAgentState(enable?'Listening':'Microphone muted',enable?'speak naturally':'the call remains connected');voiceDeviceMessage(enable?'Microphone published to the active call.':'Microphone muted; the voice channel remains connected.',enable?'ok':'warn');}).catch(function(e){rpVoiceCall.muted=true;btn.textContent='RETRY MIC';btn.classList.remove('on');setVoiceCallStatus('channel connected - microphone blocked','busy');voiceDeviceMessage('Microphone retry failed: '+(e&&e.message||String(e)),'bad');setVoiceEvent('Microphone blocked',e&&e.message||String(e));}).finally(function(){btn.disabled=false;});
3053
3064
  }
3054
3065
  function finishVoiceCall(reason){
3055
3066
  if(rpVoiceCall.ending)return; rpVoiceCall.ending=true; var session=rpVoiceCall.session, room=rpVoiceCall.room;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "infinicode",
3
- "version": "2.8.71",
3
+ "version": "2.8.72",
4
4
  "description": "OpenKernel — provider-agnostic AI execution kernel. Native coding agent + mission-driven execution runtime.",
5
5
  "type": "module",
6
6
  "main": "./dist/kernel/index.js",