1var module_221332498577=void document.querySelectorAll("[data-zs-mcp-demo]").forEach(function(demo){var t=JSON.parse(demo.dataset.mcpI18n);if(!demo.dataset.initialized){demo.dataset.initialized="true";var timer,next,buttons=demo.querySelectorAll("[data-assistant]"),prompt=demo.querySelector(".zs-mcp__prompt").textContent,composer=demo.querySelector("[data-composer-text]"),answer=demo.querySelector("[data-answer-text]"),pause=demo.querySelector("[data-pause]"),motion=window.matchMedia("(prefers-reduced-motion: reduce)"),client="Claude",deadline=0,remaining=0,paused=!1,offscreen=!1,started=!1,voice=function(demo,showText,stopText){var t=JSON.parse(demo.dataset.mcpI18n),panel=demo.querySelector("[data-voice-panel]"),audio=panel.querySelector("audio"),playButton=panel.querySelector("[data-voice-play]"),muteButton=panel.querySelector("[data-voice-mute]"),actionLabel=panel.querySelector("[data-voice-action-label]");function setPlayLabel(text){playButton.textContent=text,actionLabel.textContent=text}var context,analyser,samples,spectrum,speaker=panel.querySelector("[data-voice-speaker]"),caption=panel.querySelector("[data-voice-caption]"),status=panel.querySelector("[data-voice-status]"),canvas=panel.querySelector("canvas"),motion=window.matchMedia("(prefers-reduced-motion: reduce)"),visible=!0,opened=!1,playing=!1,raf=0,lastFrame=0,playRequest=0,level=0,tone=0,impulse=0,flowTime=0,render=function(canvas){var gl=canvas.getContext("webgl",{alpha:!0,antialias:!0,premultipliedAlpha:!1});if(!gl)return null;var vertex="attribute vec2 position; varying vec2 uv; void main(){uv=position*.5+.5;gl_Position=vec4(position,0.,1.);}",fragment="precision highp float;\n varying vec2 uv; uniform float time; uniform float energy; uniform float tone; uniform float impulse;\n float hash(vec2 p){return fract(sin(dot(p,vec2(127.1,311.7)))*43758.5453);}\n float noise(vec2 p){vec2 i=floor(p),f=fract(p);f=f*f*(3.-2.*f);return mix(mix(hash(i),hash(i+vec2(1,0)),f.x),mix(hash(i+vec2(0,1)),hash(i+vec2(1,1)),f.x),f.y);}\n float fbm(vec2 p){float n=0.,a=.5;for(int i=0;i<4;i++){n+=a*noise(p);p=mat2(1.6,1.2,-1.2,1.6)*p+2.7;a*=.5;}return n;}\n void main(){\n vec2 p=(uv-.5)*2.10/(1.+energy*.04+impulse*.025);float r=dot(p,p);\n if(r>1.){gl_FragColor=vec4(0.);return;}\n float z=sqrt(1.-r),t=time*.48;\n vec2 q=p*1.5;\n // Broad liquid folds carry vowels; finer ribbons follow brighter consonants.\n q.x+=(.18+energy*.22)*sin(q.y*2.2+t*.9);\n q.y+=(.15+energy*.18)*cos(q.x*2.-t*.7);\n float n=fbm(q*1.15+vec2(t*.27,-t*.35));\n float cloud=fbm(q*(1.05+tone*.22)+vec2(n*1.15,t*.3));\n float ribbon=sin(p.x*(2.8+tone)+t+(cloud-.5)*2.);\n float band=p.y*.40+(cloud-.5)*(.62+energy*.3)+.5;\n band+=(.08+energy*.11)*ribbon-energy*.10;\n vec3 blue=mix(vec3(.04,.44,.96),vec3(.26,.72,1.),n);\n vec3 color=mix(blue,vec3(.97,.99,1.),smoothstep(.25,.69,band));\n color=mix(color,vec3(.70,.88,1.),pow(1.-z,3.)*.18);\n color+=vec3(.015,.02,.025)*energy;\n gl_FragColor=vec4(color,1.-smoothstep(.981,1.,r));\n }";function shader(type,source){var s=gl.createShader(type);return gl.shaderSource(s,source),gl.compileShader(s),gl.getShaderParameter(s,gl.COMPILE_STATUS)?s:(gl.deleteShader(s),null)}var v=shader(gl.VERTEX_SHADER,vertex),f=shader(gl.FRAGMENT_SHADER,fragment);if(!v||!f)return null;var program=gl.createProgram();if(gl.attachShader(program,v),gl.attachShader(program,f),gl.linkProgram(program),!gl.getProgramParameter(program,gl.LINK_STATUS))return null;gl.useProgram(program);var buffer=gl.createBuffer();gl.bindBuffer(gl.ARRAY_BUFFER,buffer),gl.bufferData(gl.ARRAY_BUFFER,new Float32Array([-1,-1,1,-1,-1,1,-1,1,1,-1,1,1]),gl.STATIC_DRAW);var position=gl.getAttribLocation(program,"position");gl.enableVertexAttribArray(position),gl.vertexAttribPointer(position,2,gl.FLOAT,!1,0,0);var clock=gl.getUniformLocation(program,"time"),energy=gl.getUniformLocation(program,"energy"),toneUniform=gl.getUniformLocation(program,"tone"),impulseUniform=gl.getUniformLocation(program,"impulse");return canvas.dataset.orbRenderer="webgl",function(time,level,tone,impulse){var size=Math.round((canvas.clientWidth||174)*
1Math.min(window.devicePixelRatio||1,2));canvas.width!==size&&(canvas.width=size,canvas.height=size),gl.viewport(0,0,canvas.width,canvas.height),gl.uniform1f(clock,time),gl.uniform1f(energy,level),gl.uniform1f(toneUniform,tone||0),gl.uniform1f(impulseUniform,impulse||0),gl.drawArrays(gl.TRIANGLES,0,6)}}(canvas),questionEnd=Number(t.question_end),answerStart=Number(t.answer_start),statusStart=Number(t.status_start);function setCaption(label,text){speaker.textContent!==label&&(speaker.textContent=label),caption.textContent!==text&&(caption.textContent=text)}function sync(){var time=audio.currentTime;audio.ended?(panel.dataset.voiceState="complete",setCaption(t.voice_done,t.voice_done_caption)):time<questionEnd?(panel.dataset.voiceState="listening",setCaption(t.you,t.voice_request)):time<answerStart?(panel.dataset.voiceState="thinking",setCaption("ChatGPT",t.one_moment)):(panel.dataset.voiceState="speaking",setCaption("ChatGPT",time<statusStart?t.voice_answer:t.voice_status))}function frame(now){if(raf=0,opened&&visible&&!document.hidden){var dt=lastFrame?Math.min(.05,Math.max(.001,(now-lastFrame)/1e3)):1/60;lastFrame=now;var target=0,targetTone=0;if(playing&&analyser){analyser.getFloatTimeDomainData(samples);for(var sum=0,i=0;i<samples.length;i++)sum+=samples[i]*samples[i];var rms=Math.sqrt(sum/samples.length);target=Math.pow(Math.min(1,5.8*Math.max(0,rms-.006)),.72),analyser.getFloatFrequencyData(spectrum);for(var weighted=0,power=0,binHz=context.sampleRate/analyser.fftSize,j=Math.ceil(160/binHz);j<spectrum.length&&j*binHz<=4e3;j++){var magnitude=Math.pow(10,spectrum[j]/10);weighted+=magnitude*j*binHz,power+=magnitude}power>1e-6&&(targetTone=Math.min(1,Math.max(0,(weighted/power-300)/1800)))}var onset=Math.max(0,target-level);impulse+=(onset-impulse)*(1-Math.exp(-dt/.055)),level+=(target-level)*(1-Math.exp(-dt/(target>level?.032:.18))),tone+=(targetTone-tone)*(1-Math.exp(-dt/.1)),flowTime+=dt*(.24+1.6*level+1.4*impulse),playing&&sync(),render&&render(motion.matches?0:flowTime,motion.matches?0:level,motion.matches?0:tone,motion.matches?0:impulse),motion.matches||"paused"===panel.dataset.voiceState||(raf=requestAnimationFrame(frame))}}function startDrawing(){raf||(lastFrame=0,raf=requestAnimationFrame(frame))}function pauseAudio(){playing&&(audio.pause(),playing=!1,panel.dataset.voiceState="paused",setPlayLabel(t.resume_audio),status.textContent=t.paused,cancelAnimationFrame(raf),raf=0)}async function togglePlayback(){if(playing)pauseAudio();else{var request=++playRequest;try{if(context||!window.AudioContext&&!window.webkitAudioContext||(context=new(window.AudioContext||window.webkitAudioContext),(analyser=context.createAnalyser()).fftSize=1024,analyser.smoothingTimeConstant=.25,samples=new Float32Array(analyser.fftSize),spectrum=new Float32Array(analyser.frequencyBinCount),context.createMediaElementSource(audio).connect(analyser),analyser.connect(context.destination)),context&&"suspended"===context.state&&await context.resume(),audio.ended&&(audio.currentTime=0),await audio.play(),request!==playRequest||!opened||!visible||document.hidden)return void audio.pause();playing=!0,setPlayLabel(t.pause_audio),status.textContent=t.playing,sync(),startDrawing()}catch(_){if(request!==playRequest)return;playing=!1,setPlayLabel(t.retry),panel.dataset.voiceState="error",setCaption(t.unavailable,t.retry_message),status.textContent=t.audio_error}}}function open(){opened||(stopText(),opened=!0,demo.dataset.chatgptView="voice",panel.hidden=!1,panel.dataset.voiceState="ready",setPlayLabel(t.listen),setCaption(t.voice_ready,t.voice_summary),startDrawing())}function close(){playRequest++,opened=!1,playing=!1,audio.pause(),audio.currentTime=0,cancelAnimationFrame(raf),raf=0,level=0,tone=0,impulse=0,lastFrame=0,panel.hidden=!0,demo.dataset.chatgptView="text"}function returnToText(){close(),showText(),demo.querySelector("[data-open-voice]").focus()}return playButton.addEventListener("click",togglePlayback),muteButton.addEventListener("click",function(){audio.muted=!audio.muted,muteButton.setAttribute("aria-pressed",String(audio.muted)),muteButton.setAttribute("aria-label",audio.muted?t.unmute:t.mute)}),panel.querySelector("[data-voice-text]").addEventListener("click",returnToText),panel.querySelector("[data-voice-exit]").addEventListener("click",returnToText),demo.querySelector("[data-open-voice]").addEventListener("click",function(){open(),playButton.focus()}),panel.addEventListener("keydown",function(event){"Escape"===event.key&&returnToText()}),audio.addEventListener("ended",function(){playing=!1,setPlayLabel(t.listen_again),sync(),status.textContent=t.completed}),audio.addEventListener("timeupdate",function(){playing&&sync()}),document.addEventListener("visibilitychange",function(){document.hidden?(pauseAudio(),cancelAnimationFrame(raf),raf=0):startDrawing()}),motion.addEventListener("change",function(){startDrawing()}),{open:open,close:close,setVisible:function(value){(visible=value)?opened&&startDrawing():(pauseAudio(),cancelAnimationFrame(raf),raf=0)}}}(demo,play,function(){clearTimeout(timer),next=null,started=!0}),replies={Claude:t.reply_claude,ChatGPT:t.reply_chatgpt};buttons.forEach(function(button){button.addEventListener("click",function(){select(button)})}),demo.querySelector("[data-replay]").addEventListener("click",play),pause.addEventListener("click",function(){paused||suspend(),paused=!paused,demo.dataset.paused=String(paused),pause.textContent=paused?t.resume:t.pause,pause.setAttribute("aria-pressed",String(paused)),pause.setAttribute("aria-label",paused?t.resume_label:t.pause_label),paused||resume()});var initialAssistant="claude"===new URLSearchParams(window.location.search).get("assistant")?"Claude":"ChatGPT";select(demo.querySelector('[data-assistant="'+initialAssistant+'"]')),"IntersectionObserver"in window?new IntersectionObserver(function(entries){var visible=entries[0].isIntersecting;voice.setVisible(visible),visible||offscreen||paused||suspend(),offscreen=!visible,visible&&(started?resume():play())},{threshold:.2}).observe(demo):play(),motion.addEventListener("change",function(){motion.matches&&finish()})}function schedule(fn,delay){clearTimeout(timer),next=fn,remaining=delay,paused||offscreen||(deadline=Date.now()+delay,timer=setTimeout(function(){next=null,fn()},delay))}function suspend(){next&&(remaining=Math.max(0,deadline-Date.now()),clearTimeout(timer))}function resume(){!next||paused||offscreen||schedule(next,remaining)}function phase(value){demo.dataset.phase=value}function type(node,text,speed,done){var index=0;node.textContent="",function tick(){index+=2,node.textContent=text.slice(0,index),index<text.length?schedule(tick,speed):schedule(done,400)}()}function finish(){clearTimeout(timer),next=null,paused=!1,demo.dataset.paused="false",phase("complete"),answer.textContent=replies[client],composer.textContent="Claude"===client?t.composer_claude:t.composer_chatgpt,demo.querySelector("[data-tool-text]").textContent=t.sent,demo.querySelector("[data-demo-status]").textContent=t.demo_finished.replace("{assistant}",client),pause.disabled=!0,pause.textContent=t.pause,pause.setAttribute("aria-pressed","fal
1se")}function play(){clearTimeout(timer),next=null,started=!0,paused=!1,demo.dataset.paused="false",pause.disabled=!1,pause.textContent=t.pause,pause.setAttribute("aria-pressed","false"),pause.setAttribute("aria-label",t.pause_label),demo.querySelector("[data-demo-status]").textContent=t.demo_started.replace("{assistant}",client),demo.querySelector("[data-tool-text]").textContent="Claude"===client?t.using:t.sending,motion.matches?finish():(phase("typing"),answer.textContent="",composer.textContent="",schedule(function(){type(composer,prompt,32,function(){phase("sent"),composer.textContent="Claude"===client?t.composer_claude:t.composer_chatgpt,schedule(function(){phase("working"),schedule(function(){phase("responding"),type(answer,replies[client],22,finish)},1400)},550)})},500))}function select(button){client=button.dataset.assistant,demo.dataset.client=client.toLowerCase(),buttons.forEach(function(item){item.setAttribute("aria-pressed",String(item===button))}),demo.querySelector("[data-assistant-name]").textContent=client,demo.querySelector("[data-assistant-logo]").src=button.querySelector("img").src,demo.querySelector("[data-welcome-logo]").src=button.querySelector("img").src,demo.querySelector("[data-welcome-text]").textContent="Claude"===client?t.welcome_claude:t.welcome_chatgpt,demo.querySelector("[data-app-title]").textContent=client,demo.querySelector("[data-composer-label]").textContent="Claude"===client?"Claude":"","ChatGPT"===client?voice.open():(voice.close(),play())}}); 2//# sourceURL=https://21139751.fs1.hubspotusercontent-na1.net/hubfs/21139751/hub_generated/module_assets/1/221332498577/1788827865571/module_zs_mcp_section.js
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.