PageSourceSearch

https://www.mianlingai.com/_next/static/chunks/pages/session/interview/default-18a9e367f38f1fd5.js

js mianlingai.com collected 2026-10-08 19:44:20 UTC 43,913 bytes, 3 lines download raw bytes

1(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[2626],{5661:(e,s,t)=>{"use strict";t.d(s,{mz:()=>i,xQ:()=>c,xW:()=>l,z6:()=>a});var r=t(36817),n=t(31066);function a(){let e=(0,r.Dj)(),s=function(){let e=navigator.userAgent,s="other",t=0;if(e.includes("Firefox")){s="firefox";let r=e.match(/Firefox\/(\d+)/);r?.[1]&&(t=Number.parseInt(r[1],10))}else if(e.includes("Edg")){s="edge";let r=e.match(/Edg\/(\d+)/);r?.[1]&&(t=Number.parseInt(r[1],10))}else if(e.includes("Chrome")){s="chrome";let r=e.match(/Chrome\/(\d+)/);r?.[1]&&(t=Number.parseInt(r[1],10))}else if(e.includes("Safari")){s="safari";let r=e.match(/Version\/(\d+)/);r?.[1]&&(t=Number.parseInt(r[1],10))}return{name:s,version:t}}();if("windows"===e)return{status:"supported",browser:s,os:e};if("mac"===e)return"chrome"===s.name||"edge"===s.name?s.version>142?{status:"supported",browser:s,os:e}:{status:"unsupported_version",browser:s,os:e}:{status:"unsupported_browser",browser:s,os:e};return{status:"unsupported_os",browser:s,os:e}}function i(){let{status:e,browser:s}=a();return"supported"===e?{title:(0,n.Rq)("systemAudio.supported.title"),description:(0,n.Rq)("systemAudio.supported.description"),isWarning:!1}:"unsupported_browser"===e?{title:(0,n.Rq)("systemAudio.unsupportedBrowser.title"),description:(0,n.Rq)("systemAudio.unsupportedBrowser.description"),isWarning:!0}:"unsupported_version"===e?{title:(0,n.Rq)("systemAudio.unsupportedVersion.title"),description:(0,n.Rq)("systemAudio.unsupportedVersion.description",{version:String(s.version)}),isWarning:!0}:{title:(0,n.Rq)("systemAudio.unsupportedOs.title"),description:(0,n.Rq)("systemAudio.unsupportedOs.description"),isWarning:!0}}function l(){let e=window.CaptureController;return e?new e:null}function c(e,s){if(!e)return;let t=s.getVideoTracks()[0]?.getSettings().displaySurface;if("browser"===t||"window"===t)try{e.setFocusBehavior("no-focus-change")}catch(e){console.error("[system-audio] setFocusBehavior failed",{displaySurface:t,err:e})}}},18306:(e,s,t)=>{"use strict";t.r(s),t.d(s,{default:()=>eJ});var r=t(6029),n=t(19452),a=t(28300);function i(){let{billingStarted:e,isPrimary:s}=(0,n.l)(e=>[e.billingStarted,e.isPrimary]);return e?null:(0,r.jsx)("div",{className:"max-w-4xl mx-auto w-full px-2 sm:px-4 pt-2",children:(0,r.jsxs)("div",{className:"flex items-start gap-2 rounded-md border border-amber-200 bg-amber-50 px-3 py-2 text-xs sm:text-sm text-amber-800",children:[(0,r.jsx)(a.A,{className:"w-4 h-4 mt-0.5 shrink-0"}),(0,r.jsxs)("div",{className:"min-w-0 flex-1",children:[s?(0,r.jsxs)("span",{children:["当前为准备阶段,",(0,r.jsx)("b",{children:"不计费"}),"。调试好设备后点下方「开始面试」,AI 才开始应答并按分钟计费。"]}):(0,r.jsx)("span",{children:"等待主设备点「开始面试」后进入,本设备为副屏。"}),(0,r.jsx)("a",{href:"/doc/pricing",target:"_blank",rel:"noreferrer",className:"ml-1 whitespace-nowrap underline underline-offset-2 hover:text-amber-900",children:"查看计费规则"})]})]})})}var l=t(23691);function c(){let{captureSilent:e,session:s}=(0,n.l)(e=>[e.captureSilent,e.session]);if(!e)return null;let t=s?.audioSource==="PHONE"?"没有听到麦克风里的声音ã€
1‚请确认手机已开免提并放在电脑旁,浏览器用的是正在收音的那个麦克风,且它没有被其他应用占用。":"没有听到电脑里的声音。请确认共享时选的是「整个屏幕」并勾选了「分享系统音频」,且会议软件的扬声器与系统默认输出设备是同一个。";return(0,r.jsx)("div",{className:"max-w-4xl mx-auto w-full px-2 sm:px-4 pt-2",children:(0,r.jsxs)("div",{className:"flex items-start gap-2 rounded-md border border-amber-200 bg-amber-50 px-3 py-2 text-xs sm:text-sm text-amber-800",children:[(0,r.jsx)(l.A,{className:"w-4 h-4 mt-0.5 shrink-0"}),(0,r.jsx)("div",{className:"min-w-0 flex-1",children:t})]})})}var o=t(29143);let d="__mlTest__";function u(){return void 0!==o&&"true"===o.env.NEXT_PUBLIC_IS_PREVIEW}var m=t(60283),x=t(55729);function h(){let e=(0,n.l)(),s=(0,m.A)(e);return(0,x.useEffect)(()=>(function(e,s){if(!u())return()=>{};let t=window,r=t[d]??{};return t[d]=r,r[e]={...r[e]??{},...s},()=>{r[e]&&delete r[e]}})("interview",{feedInterviewerUtterance:e=>s.current.feedInterviewerUtterance(e),getState:()=>({chatHistory:s.current.chatHistory,sentence:s.current.sentence,isAIPending:s.current.isAIPending,isAIStreaming:s.current.isAIStreaming,sttStatus:s.current.sttStatus,isConnected:s.current.isConnected})}),[s]),null}function p(){let{aiServiceDown:e}=(0,n.l)(e=>[e.aiServiceDown]);return e?(0,r.jsx)("div",{className:"max-w-4xl mx-auto w-full px-2 sm:px-4 pt-2",children:(0,r.jsxs)("div",{className:"flex items-start gap-2 rounded-md border border-red-200 bg-red-50 px-3 py-2 text-xs sm:text-sm text-red-800",children:[(0,r.jsx)(l.A,{className:"w-4 h-4 mt-0.5 shrink-0"}),(0,r.jsx)("span",{className:"min-w-0",children:"AI 暂时答不出来了,这段时间不计入你的面试时长,恢复后会自动继续"})]})}):null}var g=t(39096),f=t(81292),v=t(75517),j=t(62315),y=t(56063),w=t(36764),b=t(31234),N=t(84900),A=t(32512),C=t(33115),k=t(9238),S=t(73015),R=t(31918),E=t(88198),I=t(3402),$=t(81278),M=t(97234);function q(){let e=(0,$.useRouter)(),s=(0,w.SC)(),{start:t,stop:a,pause:i,resume:l,beginInterview:c,billingStarted:o,forceSend:d,sttStatus:u,isPaused:m,canSendAudio:h,isPrimary:p,canForceSend:g,session:f,switchInterviewLang:q}=(0,n.l)(e=>
1[e.session,e.sttStatus,e.isPaused,e.canSendAudio,e.isPrimary,e.billingStarted,e.canForceSend]),{stream:F}=(0,j.G)(),_=(0,y.d3)(f?.metadata),L=(0,y.Mc)(f?.metadata),[z,P]=(0,x.useState)(!1),T=async()=>{if(!z){P(!0);try{await q((0,y.hR)(L,_))}finally{P(!1)}}},O="connecting"===u,U="started"===u,D=async()=>{await s({title:"刷新页面",body:"刷新页面可用于解决一些异常问题",actionButton:"确认刷新"})&&e.reload()};return(0,r.jsx)("div",{className:"border-t",children:(0,r.jsxs)("div",{className:"max-w-4xl mx-auto px-2 py-2 sm:p-4 flex items-center gap-1.5 sm:gap-2",children:[(0,r.jsx)(b.$,{variant:"outline",className:"text-destructive shrink-0",onClick:D,size:"icon",children:(0,r.jsx)(A.A,{className:"w-4 h-4"})}),(0,r.jsx)(M.N,{}),_.length>1&&(0,r.jsxs)(b.$,{variant:"outline",className:"shrink-0 gap-1.5",disabled:z,onClick:T,children:[(0,r.jsx)(C.A,{className:"w-4 h-4"}),(0,r.jsx)("span",{className:"text-xs sm:text-sm",children:z?"切换中…":(0,y.SU)(L)})]}),(0,r.jsx)("div",{className:"flex-1 min-w-0"}),p?(0,r.jsxs)("div",{className:"shrink-0 flex items-center gap-1 sm:gap-2 px-2 sm:px-3 py-1 bg-green-50 text-green-700 rounded-md text-xs sm:text-sm whitespace-nowrap",children:[(0,r.jsx)(k.A,{className:"w-3.5 h-3.5 sm:w-4 sm:h-4"}),(0,r.jsx)("span",{className:"hidden sm:inline",children:"主设备"}),(0,r.jsx)("span",{className:"sm:hidden",children:"主"})]}):(0,r.jsxs)("div",{className:"shrink-0 flex items-center gap-1 sm:gap-2 px-2 sm:px-3 py-1 bg-orange-50 text-orange-700 rounded-md text-xs sm:text-sm whitespace-nowrap",children:[(0,r.jsx)(S.A,{className:"w-3.5 h-3.5 sm:w-4 sm:h-4"}),(0,r.jsx)("span",{className:"hidden sm:inline",children:"副设备"}),(0,r.jsx)("span",{className:"sm:hidden",children:"副"})]}),(0,r.jsxs)(b.$,{variant:U||O||!h?"outline":"default",onClick:()=>{O||(U?i():m?l():o?t():c())},disabled:O||!h,className:(0,N.cn)("gap-1.5 sm:gap-2 shrink-0",U&&"text-primary",!U&&!O&&h&&"animate-pulse shadow-md",!h&&"opacity-50"),size:"sm",children:[U?(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(R.A,{className:"w-4 h-4"}),"暂停"]}):(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(E.A,{className:"w-4 h-4"}),O?"连接中":h?"开始面试":"仅观看"]}),F&&h&&(0,r.jsx)("div",{className:"hidden sm:block",children:(0,r.jsx)(v.u,{stream:F,options:{width:48,height:20}})})]}),(0,r.jsxs)(b.$,{variant:"outline",onClick:d,disabled:!!p&&(!U||m||!g),title:!U||m||g?"立即把当前问题交给 AI 回答":"还没识别到足够长的问题",size:"icon",className:"sm:w-auto sm:px-3 sm:h-8 shrink-0",children:[(0,r.jsx)(I.A,{className:"w-4 h-4 sm:mr-2"}),(0,r.jsx)("span",{className:"hidden sm:inline",children:"立即回答"})]})]})})}var F=t(90333),_=t(23956),L=t(41172),z=t(28302),P=t(88356),T=t(70209),O=t(33050),U=t(54768),D=t(21630),W=t(79943),G=t(54984),V=t(56801),B=t(31066);let H="面试官刚刚在原题基础上提出了追问或变种要求。请查看随附的「最近面试官消息」,找出面试官最新的追问 / 变种点(例如换了约束、加了条件、要求换思路或分析复杂度),并在你上一版解法的基础上针对性地解答;如果是对原题的变种,请给出新的解法与复杂度。若最近面试官消息里没有明确的新追问,就补充这道题最可能被追问的关键点。如果面试官问的是我这段代码现在写成什么样、或者要判断我抄到哪一步,先用 read_screen 看一眼我此刻的屏幕再答。",Q="solver:collect:",Y=[],[X,K]=(0,O.y$)(({videoTrack:e,sessionId:s,captureScreenshot:t,captureCompatibility:r,gpuChildSupported:n,customization:a,examMode:i,onExamModeChange:l})=>{let c,{socket:o,isConnected:d}=(0,D.FO)(),[u,h]=(0,U.e)([]),[p,g]=(0,U.e)(null),[f,{setTrue:v,setFalse:j,toggle:y}]=(0,z.A)(!1),[w,{setTrue:b,setFalse:N}]=(0,z.A)(!1),[A,{setTrue:C,setFalse:k}]=(0,z.A)(!1),[S,{toggle:R}]=(0,z.A)(!1),[E,I]=(0,x.useState)(null),[$,M]=(0,x.useState)(i??_.qo);(0,x.useEffect)(()=>{i&&M(i)},[i]);let q=_.fC[$].maxScreenshotPages,F=(0,P.A)(e=>{M(e),l?.(e)}),O=(0,P.A)(()=>{F((0,_.G6)($))}),[X,K]=(0,U.e)([]),J=(0,x.useRef)("solve"),Z=(0,x.useRef)(!1),ee=(0,x.useRef)(null),es=(0,P.A)(()=>{Z.current=!1,ee.current&&(clearTimeout(ee.current),ee.current=null)}),et=(0,P.A)(()=>{es(),Z.current=!0,ee.current=setTimeout(()=>{ee.current=null,Z.current&&(Z.current=!1,N(),I((0,B.Rq)("solver.primaryNoResponse")))},2e4)});(0,x.useEffect)(()=>es,[es]);let{captureScreenshot:er}=(c=(0,x.useRef)(null),(0,x.useEffect)(()=>
1{if(!e||"live"!==e.readyState)return;if(!c.current){let e=document.createElement("video");e.playsInline=!0,e.muted=!0,c.current=e}let s=c.current;return s.srcObject=new MediaStream([e]),s.play().catch(()=>{}),()=>{s.pause(),s.srcObject=null}},[e]),{captureScreenshot:(0,P.A)(async()=>{let e=c.current;if(!e||e.paused||0===e.videoWidth)throw(0,B.IF)("screen.noVideoTrack");let s=e.videoWidth,t=e.videoHeight,r=s>1920?1920/s:1,n=Math.round(s*r),a=Math.round(t*r),i=document.createElement("canvas");i.width=n,i.height=a;let l=i.getContext("2d");if(!l)throw Error("Canvas context unavailable");return l.drawImage(e,0,0,n,a),i.toDataURL("image/jpeg",.6).replace(/^data:image\/\w+;base64,/,"")})}),en=t??er,ea=!!t||!!(e&&"live"===e.readyState),ei=W.id.agentSession.list.useQuery({sessionId:s,agent:"solver"},{enabled:!!s});(0,x.useEffect)(()=>{if(ei.data){let e=ei.data.map(e=>{var s;return{id:e.id,title:e.title,displayMessages:Array.isArray(s=e.displayMessages)?s.flatMap(e=>{let s=function(e){var s;return e&&"object"==typeof e&&!Array.isArray(e)?"string"!=typeof e.id||"string"!=typeof e.content||"text"!==(s=e.type)&&"thinking"!==s&&"code"!==s&&"summary"!==s?null:{id:e.id,content:e.content,type:e.type,reasoning:"string"==typeof e.reasoning?e.reasoning:void 0,reasoningDurationMs:"number"==typeof e.reasoningDurationMs?e.reasoningDurationMs:void 0}:null}(e);return s?[s]:[]}):[],createdAt:e.createdAt}});h(()=>e),g(s=>s&&e.some(e=>e.id===s)?s:e.at(-1)?.id??null)}},[ei.data,h,g]);let el=u.find(e=>e.id===p),ec=el?.displayMessages??Y,eo=(0,x.useMemo)(()=>ec.map(e=>({...e,content:(0,L.J)(e.content)})),[ec]),ed=(0,x.useMemo)(()=>{for(let e=ec.length-1;e>=0;e--){let s=ec[e]?.content;if(!s)continue;let t=(0,L.C)(s).options;if(t)return t}return null},[ec]),eu=(0,x.useCallback)(e=>{es(),h(s=>{let t=s.find(s=>s.id===e.agentSessionId);!t||t.displayMessages.some(s=>s.id===e.turnId)||t.displayMessages.push({id:e.turnId,content:"",type:"text",reasoning:""})})},[h,es]),em=(0,T.A)(()=>(0,V.q)(e=>{h(s=>{for(let[t,r]of e){let[e,n,a]=t.split("|"),i=s.find(e=>e.id===n);if(!i)continue;let l=i.displayMessages.find(e=>e.id===a);l&&("reasoning"===e?l.reasoning=(l.reasoning??"")+r:l.content+=r)}})}),[]),ex=(0,x.useCallback)(e=>{em.push(`reasoning|${e.agentSessionId}|${e.turnId}`,e.text)},[em]),eh=(0,x.useCallback)(e=>{em.push(`content|${e.agentSessionId}|${e.turnId}`,e.text)},[em]),ep=(0,x.useCallback)(e=>{em.flush(),h(s=>{let t=s.find(s=>s.id===e.agentSessionId);if(!t)return;let r=t.displayMessages.find(s=>s.id===e.turnId);r&&null!=e.reasoningDurationMs&&(r.reasoningDurationMs=e.reasoningDurationMs)})},[h,em]),eg=(0,x.useCallback)(e=>{em.flush(),N(),k(),ei.refetch()},[N,k,ei,em]),ef=(0,x.useCallback)(e=>{em.clear(),N(),k(),ei.refetch()},[N,k,ei,em]),ev=(0,x.useCallback)(e=>{em.flush(),N(),k(),I(e.message),h(s=>{let t=s.find(e=>e.id===p);t&&t.displayMessages.push({id:Math.random().toString(36).slice(2,10),content:`Error: ${e.message}`,type:"thinking"})})},[N,k,h,p,em]),ej=(0,x.useCallback)(e=>{b(),v(),h(s=>{s.find(s=>s.id===e.agentSessionId)||s.push({id:e.agentSessionId,title:null,displayMessages:[],createdAt:new Date})}),g(()=>e.agentSessionId)},[b,v,h,g]),ey=(0,P.A)(async e=>{if(!ea)return void e({error:"screen capture unavailable on this client"});C();try{e({screenshot:await en()})}catch(s){e({error:s instanceof Error?s.message:"capture failed"})}finally{k()}}),ew=(0,P.A)(async(e,s)=>{if(!r)return void s({error:"Capture compatibility unavailable"});C();try{s(await r(e))}catch(e){s({error:e instanceof Error?e.message:"Capture failed"})}finally{k()}}),eb=(0,P.A)(async({message:e})=>
1{if(!e.startsWith("solver:")||!o||!d)return;let s=e.split(":"),t=s[1];if("cancel"===t){N(),o.emit("solver.cancel");return}if(ea){if(X.length>0){if("solve"===t){let e=await e$();o.emit("msg.toSecondary",{message:`${Q}${e}`})}else"followUp"===t&&o.emit("msg.toSecondary",{message:`${Q}busy`});return}if("solve"===t){let e="help"===s[2]?"help":"solve",t=s[3]?(0,_.am)(s[3]):$;try{let s=await en();o.emit("solver.solve",{screenshot:s,mode:e,examMode:t,customization:a,canReadScreen:!0,canCaptureWithCompatibility:!!r,canCaptureGpuChild:!!r&&!0===n},e=>{e.success||N()})}catch{N()}}else if("followUp"===t){let e=s[2],t=s.slice(3).join(":");if(!e)return;try{let s=await en();o.emit("solver.followUp",{agentSessionId:e,message:t,screenshot:s,canReadScreen:!0,canCaptureWithCompatibility:!!r,canCaptureGpuChild:!!r&&!0===n},e=>{e.success||N()})}catch{N()}}}}),eN=(0,P.A)(({message:e})=>{!e.startsWith(Q)||Z.current&&(es(),N(),I(function(e,s){switch(e){case"added":return(0,B.Rq)("solver.collectAdded");case"full":return(0,B.Rq)("solver.collectFull",{maxPages:s});case"failed":return(0,B.Rq)("solver.collectCaptureFailed");default:return(0,B.Rq)("solver.collectBusy")}}(e.slice(Q.length),q)))});(0,x.useEffect)(()=>{if(o&&d)return o.on("solver.sessionCreated",ej),o.on("solver.turnStart",eu),o.on("solver.reasoning",ex),o.on("solver.delta",eh),o.on("solver.turnEnd",ep),o.on("solver.end",eg),o.on("solver.canceled",ef),o.on("solver.error",ev),o.on("solver.readScreen",ey),o.on("capture.compatibility",ew),o.on("msg.toPrimary",eb),o.on("msg.toSecondary",eN),()=>{o.off("solver.sessionCreated",ej),o.off("solver.turnStart",eu),o.off("solver.reasoning",ex),o.off("solver.delta",eh),o.off("solver.turnEnd",ep),o.off("solver.end",eg),o.off("solver.canceled",ef),o.off("solver.error",ev),o.off("solver.readScreen",ey),o.off("capture.compatibility",ew),o.off("msg.toPrimary",eb),o.off("msg.toSecondary",eN),em.flush()}},[o,d]);let eA=(0,P.A)(async(e="solve")=>{if(I(null),X.length>0)return void await e$();if(!o||!d)return void I((0,B.Rq)("solver.notReady"));try{if(b(),v(),ea){let s=await en();o.emit("solver.solve",{screenshots:[s],mode:e,examMode:$,customization:a,canReadScreen:!0,canCaptureWithCompatibility:!!r,canCaptureGpuChild:!!r&&!0===n},e=>
1{e.success||(N(),I(e.message||(0,B.Rq)("solver.solveFailed")))})}else et(),o.emit("msg.toPrimary",{message:`solver:solve:${e}:${$}`})}catch(e){N(),I(e instanceof Error?e.message:(0,B.Rq)("solver.captureFailed"))}}),eC=(0,P.A)(()=>{N(),I(null),es(),o&&d&&(o.emit("msg.toPrimary",{message:"solver:cancel"}),o.emit("solver.cancel"))}),ek=(0,P.A)(e=>{e!==p&&g(()=>e)}),eS=(0,P.A)(async(e,s=!1)=>{if(I(null),!o||!d||!p)return void I((0,B.Rq)("solver.notReady"));try{let t;if(b(),s&&!ea){et(),o.emit("msg.toPrimary",{message:`solver:followUp:${p}:${e}`});return}s&&(t=await en()),o.emit("solver.followUp",{agentSessionId:p,message:e,screenshot:t,canReadScreen:ea,canCaptureWithCompatibility:!!r,canCaptureGpuChild:!!r&&!0===n},e=>{e.success||(N(),I(e.message||(0,B.Rq)("solver.followUpFailed")))})}catch(e){N(),I(e instanceof Error?e.message:(0,B.Rq)("solver.followUpFailed"))}}),eR=(0,P.A)(async()=>{p&&await eS(H)}),eE=(0,P.A)(async()=>{o&&d&&p?(I(null),b(),o.emit("solver.followUp",{agentSessionId:p,intent:_.DS,canReadScreen:ea,canCaptureWithCompatibility:!!r,canCaptureGpuChild:!!r&&!0===n},e=>
1{e.success||(N(),I(e.message||(0,B.Rq)("solver.simplifyFailed")))})):I((0,B.Rq)("solver.notReady"))}),eI=(0,P.A)(async()=>{await eA("solve")}),e$=(0,P.A)(async()=>{if(!ea)return"failed";if(X.length>=q)return"full";I(null);try{let e=await en();return K(s=>{s.length>=q||s.push(e)}),"added"}catch(e){return I(e instanceof Error?e.message:(0,B.Rq)("solver.captureFailed")),"failed"}}),eM=(0,P.A)(async()=>{J.current="solve",K(()=>[]),await e$()}),eq=(0,P.A)(async()=>{p&&(J.current="code-review",K(()=>[]),await e$())}),eF=(0,P.A)(()=>{J.current="solve",K(()=>[])}),e_=(0,P.A)(async()=>{if(0===X.length)return;let e=J.current;(I(null),o&&d)?(J.current="solve",K(()=>[]),b(),v(),"code-review"===e)?p?o.emit("solver.followUp",{agentSessionId:p,message:"这是我照着上面的解法手敲的代码,请对照题目要求和你给的解法逐行检查,指出写错的地方并给出正确写法。",screenshots:X,intent:_.u7,canReadScreen:!0,canCaptureWithCompatibility:!!r,canCaptureGpuChild:!!r&&!0===n},e=>{e.success||(N(),I(e.message||(0,B.Rq)("solver.codeReviewFailed")))}):N():o.emit("solver.solve",{screenshots:X,mode:"solve",examMode:$,customization:a,canReadScreen:!0,canCaptureWithCompatibility:!!r,canCaptureGpuChild:!!r&&!0===n},e=>
1{e.success||(N(),I(e.message||(0,B.Rq)("solver.solveFailed")))}):I((0,B.Rq)("solver.notReady"))}),eL=(0,m.A)(S),ez=(0,m.A)(p),eP=(0,x.useRef)("");return(0,x.useEffect)(()=>{let e=e=>{if("string"!=typeof e)return;let s=e.trim();!(s.length<6)&&eL.current&&ez.current&&s!==eP.current&&(eP.current=s,eS(`${H}
2
3面试官刚说的原话:${s}`))};return G.j.on("interviewer:utterance",e),()=>{G.j.off("interviewer:utterance",e)}},[eL,ez,eS]),{messages:eo,followUpOptions:ed,quickPrompts:a?.quickPrompts??[],sessions:u,activeSessionId:p,isOpen:f,isSolving:w,isReadingScreen:A,error:E,open:v,close:j,toggle:y,solve:eA,solveNew:eI,cancel:eC,switchTo:ek,followUp:eS,handleFollowUp:eR,simplify:eE,autoFollowUp:S,toggleAutoFollowUp:R,examMode:$,setExamMode:F,toggleExamMode:O,pendingPages:X,maxPages:q,canCapturePrimary:ea,addPage:e$,startMultiCapture:eM,startCodeReviewCapture:eq,cancelPages:eF,sendPages:e_}});var J=t(21618),Z=t(31336),ee=t(68223),es=t(97720),et=t(62991),er=t(62417),en=t(50499),ea=t(55318),ei=t(32387),el=t(17940),ec=t(63579),eo=t(98480),ed=t(4177),eu=t(82352),em=t(71915),ex=t(23987),eh=t(60332),ep=t(57717),eg=t(23643),ef=t(89504),ev=t(32626),ej=t(91829),ey=t(28788),ew=t(93717),eb=t(67617);function eN({className:e,children:s}){let t=e?.replace("lang-","")||"",n=String(s).trim(),a=(0,x.useMemo)(()=>{try{if(t&&ep.A.getLanguage(t))return ep.A.highlight(n,{language:t}).value;return ep.A.highlightAuto(n).value}catch{return n}},[n,t]);return(0,r.jsx)("pre",{className:"solver-pre",children:(0,r.jsx)("code",{className:"hljs",dangerouslySetInnerHTML:{__html:a}})})}ep.A.registerLanguage("python",ey.A),ep.A.registerLanguage("javascript",ej.A),ep.A.registerLanguage("typescript",ew.A),ep.A.registerLanguage("java",ev.A),ep.A.registerLanguage("cpp",eg.A),ep.A.registerLanguage("go",ef.A),ep.A.registerLanguage("py",ey.A),ep.A.registerLanguage("js",ej.A),ep.A.registerLanguage("ts",ew.A),ep.A.registerLanguage("c++",eg.A);let eA={overrides:{pre:{component:({children:e})=>{let s=e?.props;return(0,r.jsx)(eN,{className:s?.className,children:s?.children||""})}},code:{component:function({children:e}){return(0,r.jsx)("code",{className:"solver-inline-code",children:e})}}}};function eC({children:e}){return(0,r.jsx)("div",{className:"solver-md",children:(0,r.jsx)(eb.Ay,{options:eA,children:e})})}function ek({reasoning:e,durationMs:s}){return null!=s?(0,r.jsxs)("div",{className:"flex items-center gap-1.5 text-[11px] text-muted-foreground mb-1.5",children:[(0,r.jsx)(Z.A,{className:"size-3"}),(0,r.jsxs)("span",{children:["已思考 ",((s??0)/1e3).toFixed(1),"s"]})]}):(0,r.jsxs)("div",{className:"rounded-md border-l-2 border-l-muted-foreground/40 bg-muted/40 px-2.5 py-1.5 mb-2",children:[(0,r.jsxs)("div",{className:"flex items-center gap-1.5 text-[10px] font-medium text-muted-foreground mb-1 uppercase tracking-wide",children:[(0,r.jsx)(Z.A,{className:"size-2.5"}),(0,r.jsx)("span",{children:"思考中"}),(0,r.jsx)("span",{className:"inline-block size-1 rounded-full bg-muted-foreground/60 animate-pulse ml-0.5"})]}),(0,r.jsx)("div",{className:"text-[12px] leading-relaxed text-muted-foreground whitespace-pre-wrap wrap-break-word",children:e})]})}function eS({message:e}){let s=!!e.reasoning?.length;return(0,r.jsxs)("div",{className:(0,N.cn)("animate-in slide-in-from-bottom-2 duration-200","summary"===e.type&&"text-muted-foreground italic"),children:[s&&(0,r.jsx)(ek,{reasoning:e.reasoning,durationMs:e.reasoningDurationMs??null}),e.content&&(0,r.jsx)(eC,{children:e.content})]})}let eR={label:"帮帮我",icon:ee.A,message:"",withScreenshot:!0},eE=[{label:"解释思路",icon:es.A,message:"请更详细地解释这个解法的核心思路,让我能在面试中清楚地讲出来"},{label:"换个解法",icon:et.A,message:"请给出另一种解法,要求同样是面试常见的经典写法"},{label:"优化代码",icon:er.A,message:"请优化上面的代码,提升效率,同时保持可读性"}];function eI(){let{messages:e,followUpOptions:s,sessions:t,activeSessionId:n,isOpen:a,isSolving:i,isReadingScreen:c,error:o,close:d,solve:u,solveNew:m,cancel:h,switchTo:p,followUp:g,handleFollowUp:f,autoFollowUp:v,toggleAutoFollowUp:j,examMode:y,toggleExamMode:w,pendingPages:A,maxPages:C,canCapturePrimary:k,startMultiCapture:S,startCodeReviewCapture:R,addPage:E,sendPages:$,cancelPages:M}=X(),{config:q}=(0,J.Q)(),L=e.some(e=>e.content.includes("```")),z=_.fC[y],P="screenshot"===z.billingUnit?`每张截屏额外消耗 ${z.costMinutes} 分钟面试时长`:`每道题额外消耗 ${z.costMinutes} 分钟面试时长`,T=A.length>0,O=(0,x.useRef)(null),U="left"===(q.solverSide||"right"),D=(0,x.useRef)(null),W=(0,x.useRef)(new Map);(0,x.useEffect)(()=>
3{if(!a)return;let e=e=>{"Escape"===e.key&&d()};return window.addEventListener("keydown",e),()=>window.removeEventListener("keydown",e)},[a,d]),(0,x.useLayoutEffect)(()=>{let s=e[e.length-1];s&&s.id!==D.current&&(D.current=s.id,W.current.get(s.id)?.scrollIntoView({behavior:"smooth",block:"start"}))},[e]);let G=0===t.length&&!i,V=(s??[]).map(e=>({label:e,icon:es.A,message:e})),B=new Set(V.map(e=>e.label)),H=[eR,...V,...eE.filter(e=>!B.has(e.label))];return(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)("div",{className:(0,N.cn)("fixed inset-0 z-40 transition-opacity duration-300","bg-black/20 sm:bg-transparent",a?"opacity-100 pointer-events-auto":"opacity-0 pointer-events-none"),onClick:d}),(0,r.jsxs)("div",{className:(0,N.cn)("fixed z-50 flex flex-col bg-background shadow-2xl outline-none","transition-transform duration-300 ease-out","inset-x-0 bottom-0 max-h-[75vh] rounded-t-2xl border-t","sm:inset-y-0 sm:bottom-auto sm:top-0","sm:max-h-none sm:h-full sm:w-[520px] sm:max-w-[50vw]","sm:rounded-t-none sm:border-t-0",U?"sm:left-0 sm:right-auto sm:rounded-r-2xl sm:border-r sm:border-l-0":"sm:right-0 sm:left-auto sm:rounded-l-2xl sm:border-l sm:border-r-0",a?"translate-y-0 sm:translate-x-0":(0,N.cn)("translate-y-full sm:translate-y-0",U?"sm:-translate-x-full":"sm:translate-x-full")),children:[(0,r.jsx)("div",{className:"flex justify-center pt-2 pb-1 sm:hidden",children:(0,r.jsx)("div",{className:"w-10 h-1 rounded-full bg-muted-foreground/30"})}),(0,r.jsxs)("div",{className:"flex items-center justify-between px-4 py-2.5 border-b shrink-0",children:[(0,r.jsxs)("div",{className:"flex items-center gap-2 text-sm font-semibold",children:[(0,r.jsx)(en.A,{className:"w-4 h-4 text-primary"}),"答题助手",i&&(0,r.jsx)(ea.A,{className:"w-3.5 h-3.5 animate-spin text-muted-foreground"})]}),(0,r.jsxs)("div",{className:"flex items-center gap-1",children:[(0,r.jsx)(F.wv,{when:!T&&!i,children:(0,r.jsxs)(b.$,{variant:"programming"===y?"default":"ghost",size:"sm",className:"h-8 gap-1.5 text-xs px-2.5",onClick:w,title:`${z.label}:${z.description}。点击切换档位,从下一道新题起生效`,children:[(0,r.jsx)(ei.A,{className:"w-3.5 h-3.5"}),z.shortLabel]})}),(0,r.jsx)(F.wv,{when:!!n,children:(0,r.jsxs)(b.$,{variant:v?"default":"ghost",size:"sm",className:"h-8 gap-1.5 text-xs px-2.5",onClick:j,title:"开启后,面试官口述追问 / 变种时自动接住并更新解答",children:[(0,r.jsx)(el.A,{className:"w-3.5 h-3.5"}),v?"自动追问\xb7开":"自动追问"]})}),(0,r.jsx)(F.wv,{when:i,children:(0,r.jsxs)(b.$,{variant:"ghost",size:"sm",className:"h-8 gap-1.5 text-xs px-2.5",onClick:h,children:[(0,r.jsx)(ec.A,{className:"w-3.5 h-3.5"}),"停止"]})}),(0,r.jsx)(F.wv,{when:!T,children:(0,r.jsxs)(b.$,{variant:"ghost",size:"sm",className:"h-8 gap-1.5 text-xs px-2.5",onClick:m,children:[(0,r.jsx)(eo.A,{className:"w-3.5 h-3.5"}),"新题"]})}),(0,r.jsx)(F.wv,{when:k&&!i&&!T,children:(0,r.jsxs)(b.$,{variant:"ghost",size:"sm",className:"h-8 gap-1.5 text-xs px-2.5",onClick:S,children:[(0,r.jsx)(ed.A,{className:"w-3.5 h-3.5"}),"多页"]})}),(0,r.jsx)(b.$,{variant:"ghost",size:"icon",className:"h-8 w-8",onClick:d,children:(0,r.jsx)(eu.A,{className:"w-4 h-4"})})]})]}),(0,r.jsx)(F.wv,{when:t.length>1,children:(0,r.jsx)("div",{className:"flex items-center gap-1.5 px-4 py-2 border-b overflow-x-auto shrink-0 scrollbar-none",children:t.map((e,s)=>(0,r.jsx)("button",{type:"button",ref:s=>{s&&e.id===n&&s.scrollIntoView({behavior:"smooth",block:"nearest",inline:"nearest"})},className:(0,N.cn)("shrink-0 px-3 py-1 rounded-full text-xs transition-colors",e.id===n?"bg-primary text-primary-foreground":"bg-muted text-muted-foreground hover:bg-muted/80"),onClick:()=>p(e.id),children:e.title?e.title.slice(0,15):`题 ${s+1}`},e.id))})}),(0,r.jsxs)("div",{ref:O,className:"flex-1 overflow-y-auto px-4 py-3 space-y-4",children:[G&&(0,r.jsxs)("div",{className:"flex flex-col items-center justify-center gap-4 py-16",children:[(0,r.jsx)("div",{className:"w-16 h-16 rounded-full bg-primary/10 flex items-center justify-center",children:(0,r.jsx)(em.A,{className:"w-8 h-8 text-primary"})}),(0,r.jsxs)("div",{className:"text-center",children:[(0,r.jsx)("p",{className:"text-sm font-medium",children:"面试里的笔试助手"}),(0,r.jsx)("p",{className:"text-xs text-muted-foreground mt-1",children:"面试官发来编程题、选择题或一串问题时,让助手看一眼屏幕"}),(0,r.jsx)("p",{className:"text-xs text-amber-600 mt-1.5",children:P})]}),(0,r.jsx)(F.wv,{when:!T,children:(0,r.jsxs)("div",{className:"flex items-center gap-2",children:[(0,r.jsxs)(b.$,{size:"lg",className:"gap-2",onClick:()=>u("solve"),children:[(0,r.jsx)(em.A,{className:"w-4 h-4"}),"笔试答题"]}),(0,r.jsx)(F.wv,{when:k,children:(0,r.jsxs)(b.$,{size:"lg",variant:"outline",className:"gap-2",onClick:S,children:[(0,r.jsx)(ed.A,{className:"w-4 h-4"}),"多页"]})})]})}),(0,r.jsx)(F.wv,{when:T,children:(0,r.jsxs)("p",{className:"text-xs text-muted-foreground",children:["已采集 ",A.length," 页,攒齐后点下方「发送」"]})})]}),e.map(e=>(0,r.jsx)("div",{ref:s=>{s?W.current.set(e.id,s):W.current.delete(e.id)},children:(0,r.jsx)(eS,{message:e})},e.id)),i&&(0,r.jsxs)("div",{className:"flex items-center gap-2 text-muted-foreground text-sm py-1",children:[(0,r.jsx)(ea.A,{className:"w-3.5 h-3.5 animate-spin"}),c?"正在看你的屏幕...":0===e.length?"正在分析截图...":"思考中...",(0,r.jsxs)(b.$,{variant:"ghost",size:"sm",className:"h-6 gap-1 px-2 text-xs",onClick:h,children:[(0,r.jsx)(ec.A,{className:"w-3 h-3"}),"停止"]})]}),o&&!i&&(0,r.jsxs)("div",{className:"flex items-start gap-1.5 text-amber-600 text-xs py-1",children:[(0,r.jsx)(l.A,{className:"w-3.5 h-3.5 shrink-0 mt-0.5"}),(0,r.jsx)("span",{className:"min-w-0 flex-1",children:o})]})]}),(0,r.jsx)(F.wv,{when:T,children:(0,r.jsxs)("div",{className:"shrink-0 border-t px-3 py-3 pb-[max(env(safe-area-inset-bottom,12px),12px)] flex items-center gap-2",children:[(0,r.jsxs)(b.$,{size:"sm",className:"flex-1 gap-1.5",onClick:$,children:[(0,r.jsx)(I.A,{className:"w-3.5 h-3.5"}),"发送 ",A.length," 页"]}),(0,r.jsxs)(b.$,{variant:"outline",size:"sm",className:"gap-1.5",disabled:A.length>=C,onClick:E,children:[(0,r.jsx)(eo.A,{className:"w-3.5 h-3.5"}),A.length>=C?"已满":`加页 ${A.length}/${C}`]}),(0,r.jsx)(b.$,{variant:"ghost",size:"icon",onClick:M,children:(0,r.jsx)(eu.A,{className:"w-4 h-4"})})]})}),(0,r.jsx)(F.wv,{when:e.length>0&&!i&&!T,children:(0,r.jsxs)("div",{className:"shrink-0 border-t px-3 py-3 pb-[max(env(safe-area-inset-bottom,12px),12px)]",children:[(0,r.jsxs)(b.$,{size:"sm",className:"w-full gap-1.5 mb-2 rounded-full",onClick:f,children:[(0,r.jsx)(es.A,{className:"w-3.5 h-3.5"}),"处理追问(面试官变种 / 追问)"]}),(0,r.jsxs)("div",{className:"flex flex-wrap gap-1.5",children:[H.map(e=>(0,r.jsxs)(b.$,{variant:"outline",size:"sm",className:"h-8 gap-1.5 text-xs rounded-full",onClick:()=>e.withScreenshot?g("请根据最新的截图,帮我分析当前代码的问题并给出修改建议",!0):g(e.message),children:[(0,r.jsx)(e.icon,{className:"w-3.5 h-3.5"}),e.label]},e.label)),(0,r.jsx)(F.wv,{when:L&&k,children:(0,r.jsxs)(b.$,{variant:"outline",size:"sm",className:"h-8 gap-1.5 text-xs rounded-full",onClick:R,children:[(0,r.jsx)(er.A,{className:"w-3.5 h-3.5"}),"检查我抄的代码"]}
3)})]})]})})]})]})}function e$(){let{isOpen:e,isSolving:s,close:t,open:n}=X(),{config:a}=(0,J.Q)(),i="left"===(a.solverSide||"right");return a.solverEnabled?e?(0,r.jsx)(b.$,{variant:"secondary",size:"icon",className:(0,N.cn)("fixed top-1/2 -translate-y-1/2 z-[60] h-12 w-6 rounded-full shadow-lg hidden sm:flex",i?"left-[520px]":"right-[520px]"),onClick:t,children:i?(0,r.jsx)(ex.A,{className:"w-4 h-4"}):(0,r.jsx)(eh.A,{className:"w-4 h-4"})}):(0,r.jsx)(b.$,{size:"sm",className:(0,N.cn)("fixed z-50 h-9 w-9 sm:h-9 rounded-full shadow-md p-0 sm:w-auto sm:px-4","bottom-14 sm:bottom-20",i?"left-2 sm:left-4":"right-2 sm:right-4"),onClick:n,children:s?(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(ea.A,{className:"w-4 h-4 animate-spin"}),(0,r.jsx)("span",{className:"hidden sm:inline ml-1.5 text-xs",children:"解题中..."})]}):(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(ee.A,{className:"w-4 h-4"}),(0,r.jsx)("span",{className:"hidden sm:inline ml-1.5 text-xs",children:"答题助手"})]})}):null}var eM=t(36817),eq=t(40353),eF=t(97919),e_=t(59658);let eL=(0,x.memo)(function({children:e}){let{setStream:s,streamRef:t}=(0,j.G)(),r=(0,x.useRef)(null);return(0,eF.A)(async()=>{let e=new eq.C({serverUrl:"http://localhost:33120"});r.current&&(r.current.dispose(),r.current=null),r.current=e,s(await e.getMediaStream())}),(0,e_.A)(()=>{if(t.current)for(let e of t.current.getTracks())e.stop();t.current=null,r.current?.dispose()}),e});var ez=t(62602),eP=t(5661),eT=t(73244),eO=t(25694),eU=t(27900),eD=t(87763),eW=t(48804);let eG=(0,x.createContext)({hasSystemAudio:!1,requestSystemAudio:async()=>{},videoTrack:null}),eV=(0,x.memo)(function({children:e}){let{setStream:s,streamRef:t}=(0,j.G)(),[n,a]=(0,x.useState)(!1),[i,l]=(0,x.useState)(!1),[c,o]=(0,x.useState)(null),d=(0,x.useRef)(null),u=(0,x.useRef)(null),[m,h]=(0,x.useState)(null),p=(0,x.useMemo)(()=>{let e=(0,eM.Dj)();return"android"===e||"ios"===e},[]),g=(0,x.useCallback)(()=>{if(t.current){for(let e of t.current.getTracks())e.stop();s(null)}d.current=null,u.current&&(u.current.stop(),u.current=null,h(null)),l(!1)},[s]),f=(0,x.useCallback)(()=>{console.log("系统音频已断开"),g(),a(!0)},[g]),v=(0,x.useCallback)(e=>{d.current=e,e.addEventListener("ended",f),e.addEventListener("mute",()=>{console.log("系统音频已静音")}),e.addEventListener("unmute",()=>{console.log("系统音频已取消静音")});let s=setInterval(()=>{e.enabled&&!e.muted&&e.readyState||console.log("系统音频状态异常:",{enabled:e.enabled,muted:e.muted,state:e.readyState})},5e3);return()=>{e.removeEventListener("ended",f),clearInterval(s)}},[f]),y=(0,x.useCallback)(async()=>{if(t.current?.getAudioTracks().length){let e=t.current.getAudioTracks()[0];if(e&&"live"===e.readyState){l(!0),v(e);return}}g(),a(!0)},[v,g]),w=async()=>{try{o(null),g();let e=(0,eP.xW)(),t=await navigator.mediaDevices.getDisplayMedia({audio:{echoCancellation:!0,noiseSuppression:!0,sampleRate:16e3},video:{displaySurface:"browser",surfaceSwitching:!1},selfBrowserSurface:"exclude",systemAudio:"include",controller:e??void 0});(0,eP.xQ)(e,t);let r=t.getAudioTracks()[0],n=t.getVideoTracks()[0];if(r){n&&(u.current=n,h(n),n.addEventListener("ended",()=>{u.current=null,h(null)}));let e=new MediaStream([r]);s(e),l(!0),a(!1),o(null),v(r)}else throw Error("NO_AUDIO_TRACK")}catch(e){(console.log("获取系统音频失败:",e),g(),a(!0),"NotAllowedError"===(e instanceof DOMException||e instanceof Error?e.name:void 0))?o("你取消了分享请求,请重新点击下方按钮并完成分享"):"NO_AUDIO_TRACK"===(e instanceof Error?e.message:void 0)?o("未检测到系统音频,请确保在弹窗中勾选了「分享系统音频」选项"):o("获取系统音频失败,请重试。如果问题持续,请尝试刷新页面")}};return(0,x.useEffect)(()=>{"true"===sessionStorage.getItem("audioPreflightPassed")?(sessionStorage.removeItem("audioPreflightPassed"),w()):y()},[y]),(0,x.useEffect)(()=>()=>{g()},[g]),(0,r.jsx)(eG.Provider,{value:{hasSystemAudio:i,requestSystemAudio:w,videoTrack:m},children:(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(eO.lG,{open:n,children:(0,r.jsx)(eO.Cf,{hideClose:!0,className:"max-w-lg",children:p?(0,r.jsxs)(r.Fragment,{children:[(0,r.jsxs)(eO.c7,{children:[(0,r.jsx)(eO.L3,{children:"暂不支持移动端"}),(0,r.jsx)(eO.rr,{asChild:!0,children:(0,r.jsxs)("div",{className:"space-y-3",children:[(0,r.jsx)("p",{children:"面试辅助需要采集系统音频,该功能仅在电脑浏览器上可用。"}),(0,r.jsxs)("div",{className:"flex items-start gap-3 rounded-lg border p-3",children:[(0,r.jsx)("div",{className:"bg-primary/10 p-2 rounded-full shrink-0",children:(0,r.jsx)(eU.A,{className:"w-5 h-5 text-primary"})}),(0,r.jsxs)("div",{children:[(0,r.jsx)("p",{className:"text-sm font-medium",children:"请使用电脑浏览器"}),(0,r.jsx)("p",{className:"text-xs text-muted-foreground mt-0.5",children:"在电脑上打开 Chrome 浏览器访问本网站,获得完整的面试辅助体验"})]})]})]})})]}),(0,r.jsx)(eO.Es,{children:(0,r.jsx)(b.$,{onClick:()=>{window.location.href="/dashboard/interview"},children:"返回首页"})})]}):(0,r.jsxs)(r.Fragment,{children:[(0,r.jsxs)(eO.c7,{children:[(0,r.jsx)(eO.L3,{children:"需要系统音频"}),(0,r.jsx)(eO.rr,{asChild:!0,children:(0,r.jsxs)("div",{className:"space-y-3 overflow-y-auto max-h-[55vh]",children:[(0,r.jsx)("p",{children:"为了能够录制面试官的声音,我们需要获取系统音频。请按照以下步骤操作:"}),(0,r.jsx)(eW.I,{}),(0,r.jsxs)("div",{className:"space-y-1.5 text-sm",children:[(0,r.jsx)("p",{children:"1. 点击下方「选择音频源」按钮"}),(0,r.jsx)("p",{className:"font-bold",children:"2. 务必选择「整个屏幕」(不是标签页或窗口)"}),(0,r.jsx)("p",{className:"font-bold",children:"3. 勾选「分享系统音频」选项"}),(0,r.jsx)("p",{children:"4. 点击「分享」按钮"})]}),c&&(0,r.jsxs)(eT.Fc,{variant:"destructive",children:[(0,r.jsx)(eD.A,{className:"h-4 w-4"}),(0,r.jsx)(eT.TN,{children:c})]}),(0,r.jsxs)("div",{className:"rounded-md bg-muted p-3 space-y-2",children:[(0,r.jsxs)("p",{className:"text-xs text-muted-foreground",children:["注意:",(0,eP.mz)().description," ","屏幕画面仅在开启答题助手时用于截图解题,不会被上传或存储。"]}),(0,r.jsx)(b.$,{variant:"link",className:"h-auto p-0 text-xs",onClick:()=>{window.open("/session/test-mock","test_mock","width=600,height=800")}
3,children:"打开测试面试页面作为音频源 ↗"})]})]})})]}),(0,r.jsx)(eO.Es,{children:(0,r.jsx)(b.$,{onClick:w,children:c?"重新选择音频源":"选择音频源"})})]})})}),e]})})});function eB({children:e}){return(0,r.jsx)(r.Fragment,{children:e})}function eH({children:e}){let{session:s,canSendAudio:t,isPrimary:a}=(0,n.l)(),i=(0,x.useMemo)(()=>{if(!t)return eB;if(s&&!s?.audioSource)return ez.m;switch(s?.audioSource){case"SPEAKER":if(eM.xl)return eL;return eV;case"MICROPHONE":case"PHONE":return ez.m;default:return null}},[s,t]);return i?(0,r.jsx)(i,{children:e}):(0,r.jsx)("div",{className:"flex flex-col h-full",children:(0,r.jsx)(ea.A,{className:"h-4 w-4 animate-spin"})})}var eQ=t(70851),eY=t(95669),eX=t.n(eY);function eK({children:e,sessionId:s}){let{videoTrack:t}=(0,x.useContext)(eG);return(0,r.jsxs)(K,{videoTrack:t,sessionId:s,children:[e,(0,r.jsx)(eI,{}),(0,r.jsx)(e$,{})]})}function eJ(){let{id:e}=(0,$.useRouter)().query,{config:s}=(0,J.Q)();return e?(0,r.jsxs)(D.FI,{children:[(0,r.jsx)(eX(),{children:(0,r.jsx)("title",{children:"面试会话"})}),(0,r.jsx)(eQ.Y,{children:(0,r.jsxs)(n.L,{sessionId:e,silenceGateMs:s.silenceGateMs,children:[u()&&(0,r.jsx)(h,{}),(0,r.jsx)(eH,{children:(0,r.jsx)(eK,{sessionId:e,children:(0,r.jsxs)("div",{className:"flex flex-col h-full",children:[(0,r.jsx)(f.g,{}),(0,r.jsx)(i,{}),(0,r.jsx)(c,{}),(0,r.jsx)(p,{}),(0,r.jsx)(g.j,{}),(0,r.jsx)(q,{})]})})})]})})]}):null}},23956:(e,s,t)=>{"use strict";t.d(s,{DS:()=>a,G6:()=>x,Rf:()=>c,am:()=>u,fC:()=>o,qo:()=>h,u7:()=>n});var r=t(31195);t(56063);let n="code-review",a="simplify",i=[80,60,40,20],l=i.length;function c(e){return i[Math.min(Math.max("number"==typeof e&&Number.isFinite(e)?Math.floor(e):1,1),l)-1]??i[0]}let o={instant:{label:"秒答模式",shortLabel:"秒答",description:"答案出得最快,难题可能答不准,按截图数量计费",costMinutes:2,maxScreenshotPages:4,billingUnit:"screenshot",codeSandbox:!1},quick:{label:"快速模式",shortLabel:"快速",description:"速度更快,平衡能力与响应速度,按截图数量计费",costMinutes:2,maxScreenshotPages:4,billingUnit:"screenshot",codeSandbox:!1},programming:{label:"编程模式",shortLabel:"编程",description:"更慢但更强,支持多页编程题,算法题自动验证样例",costMinutes:5,maxScreenshotPages:6,billingUnit:"question",codeSandbox:!0}},d="quick";function u(e){return"string"==typeof e&&Object.prototype.hasOwnProperty.call(o,e)?e:d}let m=Object.keys(o);function x(e){let s=m.indexOf(e);return m[(s+1)%m.length]??d}let h="quick";r.Ik({roleSlant:r.Yj().max(200),axes:r.Yj().max(600),weaknesses:r.YO(r.Yj().max(80)).max(5)})},41172:(e,s,t)=>{"use strict";t.d(s,{C:()=>a,J:()=>i});let r=/\[\[FOLLOWUP:\s*([^\]\n]+?)\s*\]\]\s*$/,n=/\n*\[\[[A-Z]*(?::[^\]\n]*)?$/;function a(e){let s=e.match(r),t=s?.[1];if(!s||null==t)return{text:e.replace(n,""),options:null};let a=t.split("|").map(e=>e.trim()).filter(e=>e.length>0&&e.length<=24).slice(0,3);return 0===a.length?{text:e,options:null}:{text:e.slice(0,s.index).replace(/\s+$/,""),options:a}}function i(e){return a(e).text}},48804:(e,s,t)=>{"use strict";t.d(s,{I:()=>c});var r=t(6029),n=t(84900),a=t(9238),i=t(28444),l=t(47256);function c({className:e}){return(0,r.jsx)("div",{className:(0,n.cn)("select-none",e),children:(0,r.jsxs)("div",{className:"rounded-lg border bg-background shadow-lg overflow-hidden max-w-[280px] mx-auto text-xs",children:[(0,r.jsx)("div",{className:"px-3 py-2 border-b bg-muted/30 text-xs font-medium",children:"选择要共享的内容"}),(0,r.jsxs)("div",{className:"flex border-b text-[11px] leading-none",children:[(0,r.jsx)("div",{className:"px-2.5 py-1.5 text-muted-foreground line-through opacity-50",children:"标签页"}),(0,r.jsx)("div",{className:"px-2.5 py-1.5 text-muted-foreground line-through opacity-50",children:"窗口"}),(0,r.jsxs)("div",{className:"relative px-2.5 py-1.5 border-b-2 border-primary font-bold text-primary",children:["整个屏幕",(0,r.jsx)("span",{className:"absolute left-1/2 -translate-x-1/2 -top-3 text-[9px] bg-primary text-primary-foreground px-1.5 py-0.5 rounded-full font-medium whitespace-nowrap",children:"选这个 ↓"})]})]}),(0,r.jsxs)("div",{className:"px-3 pt-2.5 pb-1.5",children:[(0,r.jsxs)("div",{className:"rounded border-2 border-primary bg-muted/20 aspect-video flex items-center justify-center relative",children:[(0,r.jsx)(a.A,{className:"w-6 h-6 text-muted-foreground
3/40"}),(0,r.jsx)("div",{className:"absolute top-0.5 right-0.5",children:(0,r.jsx)("div",{className:"w-3.5 h-3.5 rounded-full bg-primary flex items-center justify-center",children:(0,r.jsx)(i.A,{className:"w-2 h-2 text-primary-foreground"})})})]}),(0,r.jsx)("p",{className:"text-[10px] text-muted-foreground mt-1 text-center",children:"多显示器请选面试窗口所在的屏幕"})]}),(0,r.jsxs)("div",{className:"px-3 pb-1.5 relative",children:[(0,r.jsx)("div",{className:"absolute -left-0.5 top-1/2 -translate-y-1/2",children:(0,r.jsx)(l.A,{className:"w-4 h-4 text-primary animate-bounce rotate-[-90deg]"})}),(0,r.jsxs)("div",{className:"rounded-md border-2 border-primary bg-primary/5 px-2.5 py-1.5 flex items-center gap-2 ring-2 ring-primary/20",children:[(0,r.jsx)("div",{className:"w-3.5 h-3.5 rounded border-2 border-primary bg-primary flex items-center justify-center shrink-0",children:(0,r.jsx)(i.A,{className:"w-2 h-2 text-primary-foreground"})}),(0,r.jsx)("span",{className:"text-xs font-medium",children:"分享系统音频"}),(0,r.jsx)("span",{className:"text-[9px] text-primary font-medium ml-auto shrink-0",children:"← 务必勾选"})]})]}),(0,r.jsxs)("div",{className:"px-3 py-2 flex justify-end gap-1.5 border-t",children:[(0,r.jsx)("div",{className:"px-2 py-1 text-[11px] rounded border text-muted-foreground",children:"取消"}),(0,r.jsx)("div",{className:"px-2 py-1 text-[11px] rounded bg-primary text-primary-foreground",children:"分享"})]})]})})}},73244:(e,s,t)=>{"use strict";t.d(s,{Fc:()=>l,TN:()=>o,XL:()=>c});var r=t(6029),n=t(72262),a=t(84900);let i=(0,n.F)("relative w-full rounded-lg border px-4 py-3 text-sm grid has-[>svg]:grid-cols-[calc(var(--spacing)*4)_1fr] grid-cols-[0_1fr] has-[>svg]:gap-x-3 gap-y-0.5 items-start [&>svg]:size-4 [&>svg]:translate-y-0.5 [&>svg]:text-current",{variants:{variant:{default:"bg-card text-card-foreground",warning:"text-orange-600 dark:text-orange-500 bg-card [&>svg]:text-current *:data-[slot=alert-description]:text-orange-600/90 dark:*:data-[slot=alert-description]:text-orange-500/90",destructive:"text-destructive bg-card [&>svg]:text-current *:data-[slot=alert-description]:text-destructive/90"}},defaultVariants:{variant:"default"}});function l({className:e,variant:s,...t}){return(0,r.jsx)("div",{"data-slot":"alert",role:"alert",className:(0,a.cn)(i({variant:s}),e),...t})}function c({className:e,...s}){return(0,r.jsx)("div",{"data-slot":"alert-title",className:(0,a.cn)("col-start-2 line-clamp-1 min-h-4 font-medium tracking-tight",e),...s})}function o({className:e,...s}){return(0,r.jsx)("div",{"data-slot":"alert-description",className:(0,a.cn)("text-muted-foreground col-start-2 grid justify-items-start gap-1 text-sm [&_p]:leading-relaxed",e),...s})}},94013:(e,s,t)=>{(window.__NEXT_P=window.__NEXT_P||[]).push(["/session/interview/default",function(){return t(18306)}])}},e=>{e.O(0,[9236,1195,3508,4768,5079,8741,1473,5002,677,8178,1630,5619,5486,2855,636,6593,8792],()=>e(e.s=94013)),_N_E=e.O()}]);

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.