1"use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[4422,8420],{1259:(e,t,r)=>{r.d(t,{H0:()=>f,Tt:()=>u,XV:()=>y,Z3:()=>c,jV:()=>v,y$:()=>b});var n=r(67914),a=r(67768),o=r(40097),s=r(89815),i=r(44147),l=r(56041);r(2009);var d=r(99586);let c={checkIn:{status:()=>s.LX.status},dailyTasks:{list:()=>i.hK.list,withStages:()=>["dailyTasks","withStages"]},points:{balance:()=>l.OR.balance},all:()=>["pointsReward"]};function u(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return(0,n.I)({queryKey:c.checkIn.status(),queryFn:s.D.getCheckInStatus,staleTime:s.Bo.staleTime,gcTime:s.Bo.cacheTime,refetchOnWindowFocus:!0,retry:2,...e})}let m=null;async function p(e){return m||(m=s.D.checkIn(e).finally(()=>{m=null}))}let h=new Map;async function g(e){let t=h.get(e);if(t)return t;let r=i.NJ.claimStageReward(e).finally(()=>{h.delete(e)});return h.set(e,r),r}function f(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=(0,a.jE)(),r=(0,d.T)();return(0,o.n)({mutationFn:e=>p(e),onSuccess:(n,a)=>{var o;t.setQueryData(c.checkIn.status(),e=>e?{...e,hasCheckedInToday:!0,currentStreak:n.currentStreak,totalCheckIns:n.totalCheckIns}:void 0),r(n.newBalance,{hasCheckedInToday:!0,lastCheckInSource:"manual"}),null==(o=e.onSuccess)||o.call(e,n,a)},onError:e.onError,onSettled:e.onSettled})}function v(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=(0,a.jE)(),r=(0,d.T)();return(0,o.n)({mutationFn:s.D.weeklyClaimIn,onSuccess:(n,a)=>{var o;t.invalidateQueries({queryKey:c.checkIn.status()}),r(n.newBalance),null==(o=e.onSuccess)||o.call(e,n,a)},onError:e.onError,onSettled:e.onSettled})}function b(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return(0,n.I)({queryKey:c.dailyTasks.withStages(),queryFn:i.NJ.getDailyTasksWithStages,staleTime:i.Lf.staleTime,gcTime:i.Lf.cacheTime,refetchOnWindowFocus:!0,refetchInterval:e.refetchInterval??i.Lf.refetchInterval,retry:2,...e})}function y(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=(0,a.jE)(),r=(0,d.T)();return(0,o.n)({mutationFn:g,onSuccess:(n,a)=>{var o;t.setQueryData(c.dailyTasks.withStages(),e=>e?{...e,tasks:e.tasks.map(e=>({...e,stages:e.stages.map(e=>e.id===a?{...e,isClaimed:!0,canClaim:!1}:e)}))}:void 0),r(n.newBalance),null==(o=e.onSuccess)||o.call(e,n,a)},onError:e.onError,onSettled:e.onSettled})}},5617:(e,t,r)=>{r.d(t,{A:()=>eS});var n=r(37876),a=r(14232),o=r(4903);let s=()=>(0,o.w)();var i=r(17308),l=r(29206);let d=a.memo(e=>{let{rule:t,className:r=""}=e,o=(0,a.useMemo)(()=>(t.assets??[]).map(e=>{let t=function(e){if(!(0,l.Kq)(e))return null;let t=e.trim();return t.startsWith("http://")||t.startsWith("https://")?t:(0,i.C5)(t)}(e.url);return t?{...e,displayUrl:t}:null}).filter(e=>null!==e),[t.assets]);if(0===o.length)return null;let s=o.length>1;return(0,n.jsxs)("div",{className:`rounded-xl bg-white p-3 md:p-4 ${r}`,"data-cg-rule-id":t.id,children:[t.name?(0,n.jsx)("p",{className:"mb-2 text-xs font-medium text-v2-text-secondary truncate",children:t.name}):null,s?(0,n.jsx)("div",{className:"flex gap-2 overflow-x-auto pb-1 snap-x snap-mandatory",children:o.map((e,r)=>(0,n.jsxs)("figure",{className:"snap-start shrink-0 w-[min(72vw,220px)]",children:[(0,n.jsx)("img",{src:e.displayUrl,alt:e.alt??t.name??"CG",loading:"lazy",decoding:"async",referrerPolicy:"no-referrer",className:"w-full rounded-md object-cover max-h-64"}),e.caption?(0,n.jsx)("figcaption",{className:"mt-1 text-[11px] text-v2-text-muted line-clamp-2",children:e.caption}):null]},`${e.displayUrl}-${r}`))}):(0,n.jsxs)("figure",{children:[(0,n.jsx)("img",{src:o[0].displayUrl,alt:o[0].alt??t.name??"CG",loading:"lazy",decoding:"async",referrerPolicy:"no-referrer",className:"w-full max-w-md rounded-md object-contain max-h-80"}),o[0].caption?(0,n.jsx)("figcaption",{className:"mt-1 text-xs text-v2-text-muted",children:o[0].caption}):null]})]})});var c=r(84421),u=r(53940);let m=e=>{let{children:t,className:r=""}=e,o=(0,u.q)(),{theme:i,preferences:l}=s(),d=(0,a.useMemo)(()=>o?{"--html-primary-color":i.colors.primary,"--html-secondary-color":i.colors.secondary,"--html-background-color":i.colors.background,"--html-text-color":i.colors.text,"--html-border-color":i.colors.border,"--html-font-family":i.typography.fontFamily,"--html-font-size":i.typography.fontSize,"--html-line-height":i.typography.lineHeight}:{"--html-primary-color":"#3b82f6","--html-secondary-color":"#64748b","--html-background-color":"#ffffff","--html-text-color":"#1f2937","--html-border-color":"#e5e7eb","--html-font-family":'-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif',"--html-font-size":"14px","--html-line-height":"1.6"},[o,i]),c=(0,a.useMemo)(()=>{let e=["html-theme-integration"];return o?(e.push(`html-theme-${i.name}`),e.push(`html-security-${l.securityLevel}`),e.push(`html-performance-${l.performanceMode}`),l.enableHTMLRendering?e.push("html-rendering-enabled"):e.push("html-rendering-disabled")):(e.push("html-theme-light"),e.push("html-security-standard"),e.push("html-performance-balanced"),e.push("html-rendering-enabled")),e.join(" ")},[o,i.name,l.securityLevel,l.performanceMode,l.enableHTMLRendering]);return(0,n.jsx)("div",{className:`${c} ${r}`,style:d,suppressHydrationWarning:!0,children:t})};var p=r(85106),h=r(18683),g=r(52396),f=r(24909),v=r(19031),b=r(87358),y=r(40339),x=r(37354),w=r(97445);let k=e=>{let{title:t,children:r,defaultExpanded:o=!1,isStreaming:s=!1,className:i=""}=e,{t:l}=(0,w.Bd)("common"),[d,c]=(0,a.useState)(o),u=(0,a.useRef)(null),[m,p]=(0,a.useState)(void 0),h=(0,a.useCallback)(()=>{u.current&&p(u.current.scrollHeight)},[]);return(0,a.useEffect)(()=>{h()},[r,h]),(0,a.useEffect)(()=>
1{if(!u.current||"u"<typeof ResizeObserver)return;let e=new ResizeObserver(()=>{h()});return e.observe(u.current),()=>{e.disconnect()}},[h]),(0,n.jsxs)("div",{className:`collapsible-block ${i}`,children:[(0,n.jsxs)("button",{type:"button",onClick:()=>{c(!d)},className:"collapsible-block-header","aria-expanded":d,"aria-controls":"collapsible-content",children:[(0,n.jsx)("span",{className:"collapsible-block-title",children:t}),s&&(0,n.jsx)("span",{className:"shrink-0 w-4 h-4 border-2 border-gray-300 border-t-blue-500 rounded-full animate-spin","aria-label":l("sharedUi.aiGenerating")}),(0,n.jsx)("span",{className:`collapsible-block-icon ${d?"expanded":""}`,children:(0,n.jsx)("svg",{width:"16",height:"16",viewBox:"0 0 16 16",fill:"currentColor","aria-hidden":"true",children:(0,n.jsx)("path",{d:"M4.646 4.646a.5.5 0 0 1 .708 0L8 7.293l2.646-2.647a.5.5 0 0 1 .708.708l-3 3a.5.5 0 0 1-.708 0l-3-3a.5.5 0 0 1 0-.708z"})})})]}),(0,n.jsx)("div",{id:"collapsible-content",className:`collapsible-block-content ${d?"expanded":""}`,style:{maxHeight:d?m??"none":0,overflow:"hidden",visibility:d?"visible":"hidden",opacity:+!!d},"aria-hidden":!d,children:(0,n.jsx)("div",{ref:u,className:"collapsible-block-inner",children:r})})]})},S=e=>{let t;if(t=e,!/[ï¼(]ç¹å»å±å¼[)ï¼/ï¼æå ]*[)ï¼]/.test(t))return[{type:"html",content:e}];let r=[],n=e.split("\n"),a=null,o=[],s=!1,i=!1,l=!1,d=!1;for(let e=0;e<n.length;e++){let t=n[e];/^```/.test(t.trim())&&(i?(i=!1,s&&(l=!0)):(i=!0,s&&(d=!0)));let c=/[ï¼(]ç¹å»å±å¼[)ï¼/ï¼æå ]*[)ï¼]/;if(!i&&c.test(t)){if((null==a?void 0:a.type)==="html"&&a.content.trim()&&r.push(a),s&&o.length>0){let e=r[r.length-1];(null==e?void 0:e.type)==="collapsible"&&(e.content=o.join("\n"))}s=!0,o=[],l=!1,d=!1,r.push({type:"collapsible",title:t.replace(/[ï¼(]ç¹å»å±å¼[)ï¼/ï¼æå ]*[)ï¼]/g,"").trim(),content:""}),a=null}else if(s)if(l&&!i){o.push(t);let e=r[r.length-1];(null==e?void 0:e.type)==="collapsible"&&(e.content=o.join("\n")),s=!1,o=[],l=!1,d=!1,a=null}else if(i||d||""!==t.trim()||!(o.length>0))o.push(t);else{let e=r[r.length-1];(null==e?void 0:e.type)==="collapsible"&&(e.content=o.join("\n")),s=!1,o=[],l=!1,d=!1,a={type:"html",content:""}}else a??={type:"html",content:""},a.content+=(a.content?"\n":"")+t}if(s&&o.length>0){let e=r[r.length-1];(null==e?void 0:e.type)==="collapsible"&&(e.content=o.join("\n"))}return(null==a?void 0:a.content.trim())&&r.push(a),r},C=e=>{let{content:t,className:o="",autoConvertMarkdown:s=!0,markdownEngine:i="react-markdown",isStreaming:l=!1,onOptionsRendered:d,onOptionSelect:c,onFillInput:u,isLatestAiMessage:m=!1}=e,{t:C}=(0,w.Bd)("common"),[I,j]=a.useState(!1),M=a.useRef(null),N=a.useRef("");a.useEffect(()=>{j(!0)},[]);let E=y.h4,_=a.useCallback(e=>{if(!e)return"";let t=(0,f.B)((0,g.W)(e,l));return s&&"react-markdown"!==i?t=(0,h.uY)(t):s||(t=(0,x.e1)(((e,t)=>{try{return r(2846).sanitize(e,t)}catch(t){return console.error("[SafeHtmlRenderer] DOMPurify error:",t),e}})((0,h.x_)(t),E))),t},[s,i,l,d]),T=a.useCallback(e=>{if(!c)return;let t=e.getAttribute("data-option"),r=e.querySelector(".option-content"),n=(null==r?void 0:r.textContent)??"";t&&c(t,n)},[c]),P=a.useCallback(e=>{let t=e.target,r=t.closest(".option-button");if(r){e.preventDefault(),e.stopPropagation(),T(r);return}if(!u||!m)return;let n=(0,v.Ax)(t,{clientX:e.clientX,clientY:e.clientY});n&&(e.preventDefault(),e.stopPropagation(),u((0,v.mz)(n)))},[T,u,m]),R=a.useCallback(e=>{(0,b.Q)(e)},[]),A=a.useCallback(e=>{if("Enter"!==e.key&&" "!==e.key)return;let t=e.target.closest(".option-button");t&&(e.preventDefault(),e.stopPropagation(),T(t))},[T]),L=a.useMemo(()=>{let e;return!(!t||/<details/i.test(t))&&(e=t,!!/[ï¼(]ç¹å»å±å¼[)ï¼/ï¼æå ]*[)ï¼]/.test(e))},[t]),O=a.useMemo(()=>t&&I?_(t):"",[t,I,_]),F=a.useMemo(()=>!l&&!!I&&("react-markdown"===i&&s?(0,v.DG)(t):(0,v.DG)(O)),[l,I,i,s,t,O]);a.useEffect(()=>{d&&d(F)},[d,F]),a.useEffect(()=>{N.current=O},[O]),a.useEffect(()=>{M.current&&(0,v.PN)(M.current,!!(u&&m&&!l))},[t,O,u,m,l,I]);let $=a.useCallback((e,t)=>{c&&m&&c(e,t)},[c,m]),D=a.useMemo(()=>{if(!t||!I)return null;
1if("react-markdown"===i&&s){if(!L)return(0,n.jsx)("div",{ref:M,className:`safe-html-content ${o}`.trim(),onClick:P,onKeyDown:A,role:"region","aria-label":C("sharedUi.messageContent"),children:(0,n.jsx)(p.A,{content:t,onOptionSelect:$,isLatestMessage:m,isStreaming:l})});let e=S(t);return(0,n.jsx)("div",{className:`safe-html-content ${o}`.trim(),onClick:P,onKeyDown:A,role:"region","aria-label":C("sharedUi.messageContent"),children:e.map((e,t)=>"collapsible"===e.type?(0,n.jsx)(k,{title:e.title||C("sharedUi.expandCollapse"),defaultExpanded:!1,isStreaming:l,children:(0,n.jsx)(p.A,{content:e.content,onOptionSelect:$,isLatestMessage:m,isStreaming:l})},t):(0,n.jsx)(p.A,{content:e.content,onOptionSelect:$,isLatestMessage:m,isStreaming:l},t))})}if(!L)return(0,n.jsx)("div",{ref:M,className:`safe-html-content ${o}`.trim(),onClickCapture:R,onClick:P,onKeyDown:A,role:"region","aria-label":C("sharedUi.messageContent"),dangerouslySetInnerHTML:{__html:O}});let e=S(t);return(0,n.jsx)("div",{className:`safe-html-content ${o}`.trim(),onClickCapture:R,onClick:P,onKeyDown:A,role:"region","aria-label":C("sharedUi.messageContent"),children:e.map((e,t)=>"collapsible"===e.type?(0,n.jsx)(k,{title:e.title||C("sharedUi.expandCollapse"),defaultExpanded:!1,isStreaming:l,children:(0,n.jsx)("div",{dangerouslySetInnerHTML:{__html:_(e.content)}})},t):(0,n.jsx)("div",{dangerouslySetInnerHTML:{__html:_(e.content)}},t))})},[t,I,o,L,O,_,P,R,A,i,s,$,m,l,C]);return I?(0,n.jsx)(n.Fragment,{children:D}):(0,n.jsx)("div",{className:`safe-html-content ${o}`.trim()})};var I=r(12227),j=r(3629);let M=I.A,N=e=>{let{content:t,className:r="",autoConvertMarkdown:o=!0,onOptionsRendered:s,onOptionSelect:i,onFillInput:l,isStreaming:d=!1,isLatestAiMessage:c=!1}=e,u=(0,a.useRef)(null),m=(0,a.useRef)(i),w=(0,a.useRef)(l),S=(0,a.useRef)(c),C=(0,a.useRef)("");(0,a.useEffect)(()=>{m.current=i},[i]),(0,a.useEffect)(()=>{w.current=l},[l]),(0,a.useEffect)(()=>{S.current=c},[c]),(0,a.useEffect)(()=>{u.current&&(0,v.PN)(u.current,!!(l&&c&&!d))},[t,l,c,d]);let I=(0,a.useCallback)(async(e,t)=>{e.preventDefault(),e.stopPropagation(),await (0,j.Vy)(t)},[]),N=(0,a.useCallback)(async(e,t)=>{e.preventDefault(),e.stopPropagation(),await (0,j.i0)(t)},[]),E=(0,a.useCallback)(e=>{if(!m.current||!S.current)return;let t=e.getAttribute("data-option"),r=e.querySelector(".option-content"),n=(null==r?void 0:r.textContent)??"";t&&m.current(t,n)},[]),_=(0,a.useCallback)(e=>{if(!m.current||!S.current)return;let t=(e.textContent??"").trim().match(/^([A-Za-z0-9])[.ï¼ã:ï¼)\ï¼]\s*(.+)$/s);if(t){let e=t[1].toUpperCase(),r=t[2].trim();m.current(e,r)}},[]),T=(0,a.useCallback)(e=>{let t=e.closest(".collapsible-status-block");t&&t.classList.toggle("collapsed")},[]),P=(0,a.useCallback)(e=>{(0,b.Q)(e)},[]),R=(0,a.useCallback)(e=>{let t=e.target,r=t.closest("[data-tooltip-id]");if(r)return void I(e,r);let n=t.closest(".code-copy-btn");if(n)return void N(e,n);let a=t.closest(".option-button");if(a)return void E(a);if(S.current&&w.current){let r=(0,v.Ax)(t,{clientX:e.clientX,clientY:e.clientY});if(r)return void w.current((0,v.mz)(r))}if(!S.current){let e=t.closest(".status-block-header");e&&T(e);return}let o=t.closest('[style*="cursor"][style*="pointer"]')||t.closest('[class*="cursor-pointer"]');if(o){let e=(o.textContent??"").trim();if(/^[A-Za-z0-9][.ï¼ã:ï¼)\ï¼]/.test(e)&&e.length<300)return void _(o)}let s=t,i=0;for(;s&&s!==e.currentTarget&&i<5;){let e=(s.textContent??"").trim();if(/^[A-Za-z0-9][.ï¼ã:ï¼)\ï¼]\s*.+/.test(e)&&e.length>=10&&e.length<300&&"A"!==s.tagName&&"pointer"===window.getComputedStyle(s).cursor)return void _(s);s=s.parentElement,i++}let l=t.closest(".status-block-header");l&&T(l)},[I,N,E,_,T]),A=(0,a.useCallback)(e=>{if("Enter"!==e.key&&" "!==e.key)return;let t=e.target,r=t.closest(".option-button");if(r){e.preventDefault(),E(r);return}let n=t.closest(".status-block-header");n&&(e.preventDefault(),T(n))},[E,T]);(0,a.useEffect)(()=>{if(d)return;let e="function"==typeof cancelIdleCallback?cancelIdleCallback:cancelAnimationFrame,t=("function"==typeof requestIdleCallback?requestIdleCallback:requestAnimationFrame)(()=>{let e;
1(e=u.current)&&e.querySelectorAll("pre").forEach(e=>{var t;if(e.hasAttribute("data-transformed"))return;let r=e.querySelector(":scope > code");if(!r)return;let n=null==(t=r.className)?void 0:t.match(/language-(\w+)/),a=n?n[1]:"",o=document.createElement("div"),s=document.createElement("div");s.className="flex justify-between h-8 items-center p-1 pl-3 border-b",s.style.borderColor="rgba(0, 0, 0, 0.05)";let i=document.createElement("div");i.className="text-[13px] text-gray-500 font-normal",i.textContent=a||"code",s.appendChild(i);let l=document.createElement("div");l.style.display="flex";let d=document.createElement("span");d.style.display="none",l.appendChild(d);let c=document.createElement("div");c.className="box-border p-0.5 flex items-center justify-center rounded-md bg-white cursor-pointer",c.setAttribute("data-tooltip-id",`copy-tooltip-${Math.random().toString(36).slice(2,8)}`);let u=document.createElement("div");u.className="w-6 h-6 rounded-md hover:bg-gray-50 not-toggle style_copyIcon__GJL9e",c.appendChild(u),l.appendChild(c),s.appendChild(l);let m=document.createElement("div");m.setAttribute("node","[object Object]");let p=window.innerWidth<768?"8px":"12px";m.style.cssText=`display: block; overflow-x: hidden; white-space: pre-wrap; word-break: break-word; overflow-wrap: anywhere; background: rgb(255, 255, 255); color: rgb(105, 93, 105); padding: ${p};`,m.appendChild(r.cloneNode(!0)),o.appendChild(s),o.appendChild(m),e.innerHTML="",e.appendChild(o),e.setAttribute("data-transformed","true")})});return()=>{e(t)}},[t,d]),(0,a.useEffect)(()=>{if(s&&!d&&t){let e=u.current;e&&s(e.querySelectorAll(".option-button").length>=3)}C.current=t},[s,d,t]);let L=(0,a.useCallback)((e,t)=>{m.current&&S.current&&m.current(e,t)},[]),O=(0,a.useMemo)(()=>{let e;return!(!t||!o||/<details/i.test(t))&&(e=t,!!/[ï¼(]ç¹å»å±å¼[)ï¼/ï¼æå ]*[)ï¼]/.test(e))},[t,o]),F=(0,a.useMemo)(()=>{if(!O)return null;let e=[];return(e=>{let t,r=[],n=/<details[^>]*>([\s\S]*?)<\/details>/gi,a=0;for(;null!==(t=n.exec(e));){if(t.index>a){let n=e.slice(a,t.index).trim();n&&r.push({type:"html",content:n})}let n=t[1],o=/<summary[^>]*>([\s\S]*?)<\/summary>/i.exec(n),s="",i=n;o&&(s=o[1].replace(/<[^>]+>/g,"").trim(),i=n.replace(/<summary[^>]*>[\s\S]*?<\/summary>/i,"").trim()),r.push({type:"collapsible",title:s,content:i}),a=t.index+t[0].length}if(a<e.length){let t=e.slice(a).trim();t&&r.push({type:"html",content:t})}return r.length>0?r:[{type:"html",content:e}]})(t.replace(/<details\s+class\s*=\s*["'][^"']*panel[^"']*["'][^>]*>[\s\S]*?<\/details>/gi,t=>(e.push(t),`__PANEL_PLACEHOLDER_${e.length-1}__`))).map(t=>({...t,content:t.content.replace(/__PANEL_PLACEHOLDER_(\d+)__/g,(t,r)=>e[parseInt(r)])}))},[t,O]);if(!o){let e=(0,h.x_)((0,f.B)((0,g.W)(t,d))),a=M?(0,x.e1)(M.sanitize(e,y.GL)):"";return(0,n.jsx)("div",{ref:u,className:`markdown-body ${r}`.trim(),onClickCapture:P,onClick:R,onKeyDown:A,dangerouslySetInnerHTML:{__html:a}})}return F&&F.length>1?(0,n.jsx)("div",{ref:u,onClick:R,onKeyDown:A,children:F.map((e,t)=>"collapsible"===e.type?(0,n.jsx)(k,{title:e.title??"å±å¼/æå ",defaultExpanded:!1,isStreaming:d,children:(0,n.jsx)(p.A,{content:e.content,className:r,onOptionSelect:L,isLatestMessage:c,isStreaming:d})},t):(0,n.jsx)(p.A,{content:e.content,className:r,onOptionSelect:L,isLatestMessage:c,isStreaming:d},t))}):(0,n.jsx)("div",{ref:u,onClick:R,onKeyDown:A,children:(0,n.jsx)(p.A,{content:t,className:r,onOptionSelect:L,isLatestMessage:c,isStreaming:d})})};var E=r(97685),_=r(95906);let T=a.memo(e=>{let{modelName:t,inputPoints:r,outputPoints:o,pendingSummaryPoints:s,isAbnormal:i=!1}=e,{t:l}=(0,w.Bd)("chat"),[d,c]=(0,a.useState)(!1),u=(0,a.useRef)(null),m=("number"==typeof r?r:0)+("number"==typeof s?s:0),p=m>0,h=(m+o).toFixed(2),g=m.toFixed(2),f=o.toFixed(2),v=i&&m+o===0,b=(0,a.useCallback)(()=>c(!1),[]);(0,a.useEffect)(()=>{if(!d)return;let e=e=>{u.current&&!u.current.contains(e.target)&&b()};return document.addEventListener("mousedown",e),document.addEventListener("touchstart",e,{passive:!0}),()=>{document.removeEventListener("mousedown",e),document.removeEventListener("touchstart",e)}},[d,b]);let y=(0,a.useCallback)(e=>{e.stopPropagation(),c(e=>!e)},[]);return(0,n.jsxs)("div",{ref:u,className:"mt-1 text-[10px] leading-tight sm:text-[11px]",role:"region","aria-label":l("module.points
1Info.region"),children:[(0,n.jsxs)("div",{className:"flex items-center gap-1",children:[(0,n.jsx)("span",{className:"text-orange-600 whitespace-nowrap",children:l("module.pointsInfo.totalCost",{points:h})}),v?(0,n.jsx)("span",{className:"text-v2-text-tertiary whitespace-nowrap",children:l("module.pointsInfo.abnormalNoCharge")}):null,(0,n.jsx)("button",{type:"button",onClick:y,className:"inline-flex shrink-0 items-center justify-center rounded-full text-v2-text-tertiary hover:text-v2-text-secondary focus:outline-none focus-visible:ring-2 focus-visible:ring-v2-border-focus","aria-label":l("module.pointsInfo.tipAria"),"aria-expanded":d,title:l("module.pointsInfo.tipAria"),children:(0,n.jsx)(_.A,{className:"h-3 w-3 sm:h-3.5 sm:w-3.5"})})]}),d?(0,n.jsx)("div",{className:"mt-1 max-w-full rounded-md border border-v2-border-primary bg-v2-bg-card px-2 py-1.5 text-v2-text-primary shadow-sm",role:"tooltip",children:(0,n.jsxs)("ul",{className:"flex flex-col gap-0.5 break-all",children:[t?(0,n.jsx)("li",{children:l("module.pointsInfo.tipModel",{modelName:t})}
1):null,p?(0,n.jsx)("li",{children:l("module.pointsInfo.tipInput",{points:g})}):null,(0,n.jsx)("li",{children:l("module.pointsInfo.tipOutput",{points:f})})]})}):null]})},(e,t)=>e.modelName===t.modelName&&e.inputTokens===t.inputTokens&&e.outputTokens===t.outputTokens&&e.inputPoints===t.inputPoints&&e.outputPoints===t.outputPoints&&e.pendingSummaryPoints===t.pendingSummaryPoints&&e.isAbnormal===t.isAbnormal);var P=r(73304),R=r(55103);let A="MuiButtonBase-root MuiButton-root MuiButton-text MuiButton-textPrimary MuiButton-sizeSmall MuiButton-textSizeSmall MuiButton-colorPrimary transition-[color,opacity] duration-150 hover:opacity-80 active:opacity-90 focus:outline-none focus-visible:ring-2 focus-visible:ring-v2-border-focus touch-manipulation gap-0.5 sm:gap-1 shrink-0 ",L="inline text-[10px] leading-none sm:text-[13px]",O="inline-block flex-shrink-0 w-[1em] h-[1em] align-middle fill-current text-[12px] sm:text-base",F=a.memo(e=>{let{messageId:t,isAIMessage:r,onCopy:o,onRefresh:s,onGenerateImage:i,onSystemSpeech:l,onOpenFishSpeech:d,isSpeaking:c=!1,onEdit:u,onDelete:m,onBranchOrShare:p}=e,{t:h}=(0,w.Bd)("chat"),g=(0,a.useCallback)(()=>{s&&s(t)},[t,s]),f=(0,a.useCallback)(()=>{null==o||o()},[o]),v=(0,a.useCallback)(()=>{i&&i(t)},[t,i]),b=(0,a.useCallback)(()=>{null==u||u()},[u]),y=(0,a.useCallback)(()=>{null==m||m(t)},[t,m]),x=(0,a.useCallback)((e,t)=>{("Enter"===e.key||" "===e.key)&&(e.preventDefault(),t())},[]),k={borderRadius:"6px"};return(0,n.jsxs)("div",{className:`MuiStack-root mt-1.5 flex min-w-0 max-w-full flex-wrap items-center gap-x-2.5 gap-y-2 px-0.5 sm:mt-2 sm:gap-x-5 sm:px-0${r?"":" justify-end"}`,role:"toolbar","aria-label":h("module.messageFooter.toolbar"),children:[o&&(0,n.jsxs)("button",{type:"button",onClick:f,onKeyDown:e=>x(e,f),className:A,style:k,"aria-label":h("module.messageFooter.copyAria"),title:h("module.messageFooter.copy"),tabIndex:0,children:[(0,n.jsx)(R.Td,{className:O}),(0,n.jsx)("span",{className:L,children:h("module.messageFooter.copy")})]}),r&&s&&(0,n.jsxs)("button",{type:"button",onClick:g,onKeyDown:e=>x(e,g),className:A,style:k,"aria-label":h("module.messageFooter.refreshAria"),title:h("module.messageFooter.refreshAria"),tabIndex:0,children:[(0,n.jsx)(R.fN,{className:O}),(0,n.jsx)("span",{className:L,children:h("module.messageFooter.refresh")})]}),r&&(i||d||l)&&(0,n.jsxs)("div",{className:"order-last flex w-full flex-wrap items-center gap-x-2.5 gap-y-2 sm:contents",children:[i&&(0,n.jsxs)("button",{type:"button",onClick:v,onKeyDown:e=>x(e,v),className:A,style:k,"aria-label":h("module.messageFooter.generateImageAria"),title:h("module.messageFooter.generateImage"),tabIndex:0,children:[(0,n.jsx)(P.A,{className:O}),(0,n.jsx)("span",{className:L,children:h("module.messageFooter.generateImage")})]}),(d||l)&&(c?(0,n.jsxs)("button",{type:"button",onClick:l,className:`${A} text-v2-accent-primary`,style:k,"aria-label":h("module.messageFooter.stopReadingAria"),title:h("module.messageFooter.stopReading"),tabIndex:0,children:[(0,n.jsx)(R.jA,{className:O}),(0,n.jsx)("span",{className:L,children:h("module.messageFooter.stopReading")})]}):(0,n.jsxs)("button",{type:"button",onClick:d||l,className:A,style:k,"aria-label":h("module.messageFooter.readAloudAria"),title:h("module.messageFooter.readAloud"),tabIndex:0,children:[(0,n.jsx)(R.pD,{className:O}),(0,n.jsx)("span",{className:L,children:h("module.messageFooter.readAloud")})]}))]}),u&&(0,n.jsxs)("button",{type:"button",onClick:b,onKeyDown:e=>x(e,b),className:A,style:k,"aria-label":h("module.messageFooter.editAria"),title:h("module.messageFooter.edit"),tabIndex:0,children:[(0,n.jsx)(R.qU,{className:O}),(0,n.jsx)("span",{className:L,children:h("module.messageFooter.edit")})]}),m&&(0,n.jsxs)("button",{type:"button",onClick:y,onKeyDown:e=>x(e,y),className:A,style:k,"aria-label":h("module.messageFooter.deleteAria"),title:h("module.messageFooter.delete"),tabIndex:0,children:[(0,n.jsx)(R.d7,{className:O}),(0,n.jsx)("span",{className:L,children:h("module.messageFooter.delete")})]}),p&&(0,n.jsxs)("button",{type:"button",onClick:p,onKeyDown:e=>x(e,p),className:A,style:k,"aria-label":h("module.messageFooter.branchShareAria"),title:h("module.messageFooter.branchShare"),tabIndex:0,children:[(0,n.jsx)(R.tS,{className:O}),(0,n.jsx)("span",{className:L,children:h("module.messageFooter.branchShare")})]})]})},(e,t)=>e.messageId===t.messageId&&e.isAIMessage===t.isAIMessage&&e.onCopy===t.onCopy&&e.onRefresh===t.onRefresh&&e.onGenerateImage===t.onGenerateImage&&e.onSystemSpeech===t.onSystemSpeech&&e.onOpenFishSpeech===t.onOpenFishSpeech&&e.isSpeaking===t.isSpeaking&&e.onEdit===t.onEdit&&e.onDelete===t.onDelete&&e.onBranchOrShare===t.onBranchOrShare);var $=r(98477),D=r(65685);function B(e){let t=document.createElement("textarea");return t.innerHTML=e,t.value}let q=e=>{let{open:t,originalText:r,onClose:o,onSave:s}=e,{t:i}=(0,w.Bd)("chat"),[l,d]=(0,a.useState)(B(r));(0,a.useEffect)(()=>{d(B(r))},[r]),(0,a.useEffect)(()=>(t?document.body.style.overflow="hidden":document.body.style.overflow="",()=>{document.body.style.overflow=""}),[t]);let c=(0,a.useCallback)(()=>{let e=l.trim();e?(s(e),o()):E.default.error(i("module.messageEmpty"))},[l,s,o,i]),u=(0,a.useCallback)(()=>{o()},[o]);if((0,a.useEffect)(()=>{let e=e=>{t&&("Escape"===e.key&&(e.preventDefault(),u()),(e.ctrlKey||e.metaKey)&&"Enter"===e.key&&(e.preventDefault(),c()))};return document.addEventListener("keydown",e),()=>document.removeEventListener("keydown",e)},[t,u,c]),!t)return null;let m=(0,n.jsxs)("div",{className:"fixed inset-0 flex items-center justify-center p-4 sm:p-6",style:{display:"flex",alignItems:"center",justifyContent:"center",zIndex:1e3},children:[(0,n.jsx)("div",{className:"absolute inset-0 chat-modal-overlay",style:{backgroundColor:"var(--v2-bg-overlay)"},onClick:u}),(0,n.jsxs)("div",{className:"chat-modal-panel relative shadow-2xl rounded-xl w-full max-w-4xl h-[70vh] flex flex-col m-auto",style:{backgroundColor:"var(--v2-bg-card)"},role:"dialog","aria-labelledby":"message-edit-dialog-title","aria-modal":"true",children:[(0,n.jsxs)("div",{id:"message-edit-dialog-title",className:"flex justify-between items-center px-4 py-3 border-b border-v2-border-primary",children:[(0,n.jsx)("h2",{className:"font-medium text-v2-text-primary",children:i("module.editMessage")}),(0,n.jsx)("button",{"aria-label":i("module.closeDialog"),onClick:u,className:"p-1 text-v2-text-tertiary hover:text-v2-text-primary hover:bg-v2-bg-hover rounded transition-colors",children:(0,n.jsx)(D.A,{className:"w-5 h-5"})})]}),(0,n.jsx)("div",{className:"flex-1 p-4 overflow-auto",children:(0,n.jsx)("textarea",{value:l,onCh
1ange:e=>d(e.target.value),placeholder:i("module.messagePlaceholder"),className:"w-full h-full px-4 py-3 text-sm text-v2-text-primary bg-v2-bg-secondary border border-v2-border-primary rounded-lg outline-none resize-none hover:border-v2-border-secondary focus:border-v2-accent-primary focus:ring-2 focus:ring-v2-accent-primary/20 placeholder:text-v2-text-tertiary",style:{WebkitUserSelect:"text",userSelect:"text"}})}),(0,n.jsxs)("div",{className:"flex items-center justify-between px-4 py-3 border-t border-v2-border-primary",children:[(0,n.jsx)("p",{className:"hidden sm:block text-xs text-v2-text-tertiary",children:i("module.editShortcut")}),(0,n.jsxs)("div",{className:"flex gap-3 w-full sm:w-auto justify-center sm:justify-end",children:[(0,n.jsx)("button",{onClick:u,className:"min-w-[80px] px-4 py-2 text-sm text-v2-text-primary border border-v2-border-primary rounded-lg hover:bg-v2-bg-hover transition-colors",children:i("module.cancel")}),(0,n.jsx)("button",{onClick:c,className:"min-w-[80px] px-4 py-2 text-sm text-white bg-v2-gradient-primary hover:bg-v2-gradient-primary-hover shadow-v2-gradient rounded-lg transition-v2-interactive",children:i("module.save")})]})]})]})]});return"u"<typeof document?null:(0,$.createPortal)(m,document.body)};var H=r(69257),z=r(73647),U=r(42194),W=r(48227),K=r(35222);let V=a.memo(e=>{let{message:t,onRefresh:r,onEdit:o,onDelete:s,onBranchOrShare:i,showBranchShare:l=!1,onGenerateImage:d,onOpenFishSpeech:u,archivedBefore:m=null}=e,{t:p,i18n:h}=(0,w.Bd)("chat"),g=(0,c.useUserStore)(e=>e.user),f=(0,H.$)(m,t),[v,b]=(0,a.useState)(!1),[y,x]=(0,a.useState)(!1),k=(0,a.useSyncExternalStore)(K.i8,K.Li,()=>null),S=null!==k&&(k===String(t.id)||!!t.dbMessageId&&k===String(t.dbMessageId)),C=(0,a.useCallback)(()=>{let e=t.text??t.content??"";(0,K.mV)({messageId:t.dbMessageId||t.id,rawText:"string"==typeof e?e:JSON.stringify(e),lang:(null==h?void 0:h.language)||"zh-CN",emptyTip:p("module.messageFooter.speechEmptyTip","è¯¥æ¶æ¯æ ææå°è¯å¯æè¯»"),unsupportedTip:p("module.messageFooter.speechUnsupportedTip","å½åæµè§å¨ä¸æ¯ææå转è¯é³")})},[null==h?void 0:h.language,t.content,t.dbMessageId,t.id,t.text,p]),I=(0,a.useCallback)(()=>{null==u||u(t.id)},[t.id,u]),M=(0,a.useCallback)(()=>{E.default.error(p("module.messageArchivedTip"))},[p]),N=(0,a.useCallback)(e=>{f?M():null==r||r(e)},[f,r,M]),_=(0,a.useCallback)(()=>{let e=(t.text??t.content??"").trim();(0,j.lW)(e).then(e=>{e?E.default.success(p("module.messageFooter.copySuccess")):E.default.error(p("module.messageFooter.copyFailed"))})},[t.content,t.text,p]),P=(0,a.useCallback)(()=>{f?M():b(!0)},[f,M]),R=(0,a.useCallback)(()=>{b(!1)},[]),A=(0,a.useCallback)(async e=>{o&&await o(t.id,e)},[t.id,o]),L=(0,a.useCallback)(e=>{f?M():null==s||s(e)},[f,s,M]),{data:O=[]}=(0,z.k)(),$=(0,a.useMemo)(()=>(0,U.p)({modelId:t.modelId,modelName:t.modelName,models:O}),[O,t.modelId,t.modelName]),D=t.text??t.content??"",B="user"!==t.sender&&"user"!==t.role,V=!!t.isStreaming||"connecting"===t.streamingStatus||"receiving"===t.streamingStatus,G=((null==g?void 0:g.totalRecharged)??0)>0||(null==g?void 0:g.hasPaidMembershipCard)===!0,Q=(0,a.useSyncExternalStore)(W.Yo,W.v2,W.v2),Y="ready"===Q.status&&Q.remaining>0&&(void 0===t.freeRecoveryRemaining||t.freeRecoveryRemaining>0),X=B&&!0===t.isTruncated&&G&&!!t.dbMessageId&&!!r&&!y&&Y;(0,a.useEffect)(()=>{"number"==typeof t.freeRecoveryRemaining&&(0,W.qP)(t.freeRecoveryRemaining)},[t.freeRecoveryRemaining]);let J=(0,a.useCallback)(()=>{if(!r||f){f&&M();return}r(t.id,{freeRecovery:!0})},[f,t.id,r,M]);if(t.isSystemMessage)return null;let Z="number"==typeof t.outputPoints,ee=("number"==typeof t.inputPoints?t.inputPoints:0)+("number"==typeof t.pendingSummaryPoints?t.pendingSummaryPoints:0)+("number"==typeof t.outputPoints?t.outputPoints:0),et=!0===t.isResponseAbnormal&&0===ee,er=B&&!t.isError&&!V&&Z&&(t.outputPoints>0||et);return!B||Z||t.isError||V||t.isOpeningStatement||console.warn("â ï¸ AI æ¶æ¯ç¼ºå°ç§¯åä¿¡æ¯:",{messageId:t.id,hasModelName:!!t.modelName,hasInputPoints:"number"==typeof t.inputPoints,hasOutputPoints:"number"==typeof t.outputPoints,outputPoints:t.outputPoints,hasInputTokens:"number"==typeof t.inputTokens,hasOutputTokens:"number"==typeof t.outputTokens}),(0,n.jsxs)(n.Fragment,{children:[(0,n.jsxs)("div",{className:"min-w-0 max-w-full","data-chat-msg-actions":"",role:"complementary","aria-label":B?p("module.messageFooter.aiFooter"):p("module.messageFooter.userFooter"),children:[X&&(0,n.jsxs)("div",{className:"mb-2 flex max-w-full items-center gap-2 rounded-xl border border-v2-border-primary bg-v2-bg-secondary px-3 py-2 text-xs text-v2-text-secondary shadow-sm",children:[(0,n.jsx)("span",{className:"min-w-0 flex-1",children:p("module.truncatedRecoveryTitle")}),(0,n.jsx)("button",{type:"button",onClick:J,className:"shrink-0 font-medium text-v2-accent-primary hover:underline",children:p("module.truncatedRecoveryRefresh")}),(0,n.jsx)("span",{className:"hidden sm:inline",children:p("module.truncatedRecoveryHint")}),(0,n.jsx)("button",{type:"button",onClick:()=>x(!0),className:"shrink-0 text-v2-text-tertiary hover:text-v2-text-primary","aria-label":p("module.truncatedRecoveryClose"),children:"\xd7"})]}),er&&(0,n.jsx)(T,{modelName:$,inputTokens:t.inputTokens,outputTokens:t.outputTokens,inputPoints:t.inputPoints,outputPoints:t.outputPoints,pendingSummaryPoints:t.pendingSummaryPoints,isAb
1normal:t.isResponseAbnormal}),(0,n.jsx)(F,{messageId:t.id,isAIMessage:B,onCopy:_,onRefresh:B&&r&&!t.isOpeningStatement?N:void 0,onGenerateImage:B?d:void 0,onSystemSpeech:C,onOpenFishSpeech:u?I:void 0,isSpeaking:S,onEdit:o?P:void 0,onDelete:s?L:void 0,onBranchOrShare:l?i:void 0})]}),o&&(0,n.jsx)(q,{open:v,originalText:t.sourceText??D,onClose:R,onSave:A})]})},(e,t)=>{var r,n;let a=e.message.id===t.message.id&&e.message.text===t.message.text&&e.message.content===t.message.content&&e.message.sourceText===t.message.sourceText&&e.message.sender===t.message.sender&&e.message.role===t.message.role&&e.message.isStreaming===t.message.isStreaming&&e.message.streamingStatus===t.message.streamingStatus&&e.message.isError===t.message.isError&&e.message.isResponseAbnormal===t.message.isResponseAbnormal&&e.message.isTruncated===t.message.isTruncated&&e.message.freeRecoveryRemaining===t.message.freeRecoveryRemaining&&e.message.isSystemMessage===t.message.isSystemMessage&&e.message.modelName===t.message.modelName&&e.message.modelId===t.message.modelId&&e.message.inputPoints===t.message.inputPoints&&e.message.outputPoints===t.message.outputPoints&&e.message.pendingSummaryPoints===t.message.pendingSummaryPoints&&e.message.inputTokens===t.message.inputTokens&&e.message.outputTokens===t.message.outputTokens&&e.message.isFromColdArchive===t.message.isFromColdArchive&&(null==(r=e.message.sentAt)?void 0:r.getTime())===(null==(n=t.message.sentAt)?void 0:n.getTime()),o=e.archivedBefore===t.archivedBefore&&e.onRefresh===t.onRefresh&&e.onGenerateImage===t.onGenerateImage&&e.onOpenFishSpeech===t.onOpenFishSpeech&&e.onEdit===t.onEdit&&e.onDelete===t.onDelete&&e.onBranchOrShare===t.onBranchOrShare&&e.showBranchShare===t.showBranchShare;return a&&o});var G=r(6621),Q=r(80509),Y=r(43259),X=r(6892);let J=e=>{let{text:t,requestId:r,errorType:o}=e,{t:s}=(0,w.Bd)("chat"),{openPaymentModal:i}=(0,Q.h)(),l=(0,c.useUserStore)(e=>e.isAuthenticated),d=(0,c.useUserStore)(e=>e.user),[u,m]=(0,a.useState)(!1),p=(0,Y.Wj)(t,r),h=(0,X.H)({isAuthenticated:l,totalRecharged:null==d?void 0:d.totalRecharged,hasPaidMembershipCard:null==d?void 0:d.hasPaidMembershipCard,hasPublishedCharacter:null==d?void 0:d.hasPublishedCharacter,hasInvitedUser:null==d?void 0:d.hasInvitedUser,createdAt:null==d?void 0:d.createdAt},o),g=(0,a.useCallback)(async()=>{if(p.requestId){if(await (0,j.lW)(p.requestId)){m(!0),E.default.success(s("module.message.feedbackIdCopied")),window.setTimeout(()=>m(!1),1600);return}E.default.error(s("module.message.copyFeedbackFailed"))}},[p.requestId,s]);return(0,n.jsxs)("div",{className:"flex items-start gap-2",children:[(0,n.jsx)("span",{className:"mt-0.5 flex h-5 w-5 shrink-0 items-center justify-center rounded-full bg-v2-state-error/15 text-v2-state-error",children:(0,n.jsx)("svg",{className:"h-3.5 w-3.5",fill:"currentColor",viewBox:"0 0 20 20","aria-hidden":"true",children:(0,n.jsx)("path",{fillRule:"evenodd",d:"M18 10a8 8 0 11-16 0 8 8 0 0116 0zm-7 4a1 1 0 11-2 0 1 1 0 012 0zm-1-9a1 1 0 00-1 1v4a1 1 0 102 0V6a1 1 0 00-1-1z",clipRule:"evenodd"})})}),(0,n.jsxs)("div",{className:"min-w-0 flex-1",children:[(0,n.jsx)("p",{className:"text-sm font-medium leading-snug text-v2-state-error",children:p.title}),h?(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)("p",{className:"mt-1 text-xs leading-relaxed text-v2-text-secondary",children:s("module.message.freeTierUpgradeHint")}),(0,n.jsx)("button",{type:"button",onClick:()=>i({analyticsSource:"chat_free_tier_send_failed"}),className:"mt-2 inline-flex items-center text-xs font-medium text-v2-accent-primary hover:underline",children:s("module.message.freeTierRecharge")})]}):p.suggestion?(0,n.jsx)("p",{className:"mt-1 text-xs leading-relaxed text-v2-text-secondary",children:p.suggestion}):null,p.requestId?(0,n.jsxs)("button",{type:"button",onClick:()=>{g()},className:"mt-2 inline-flex max-w-full items-center gap-1 rounded-md px-0 py-0.5 text-[11px] leading-none text-v2-text-tertiary transition-colors hover:text-v2-text-secondary",title:s("module.message.copyFeedbackId"),"aria-label":s("module.message.copyFeedbackId"),children:[(0,n.jsx)("span",{children:s("module.message.errorFeedbackId")}),(0,n.jsx)("span",{className:"truncate font-mono",children:p.requestId}),u?(0,n.jsx)("span",{"aria-hidden":"true",children:"â"}):null]}):null]})]})};var Z=r(45967);let ee=a.memo(e=>{let{content:t,isStreaming:r=!1}=e,{t:o}=(0,w.Bd)("chat"),[s,i]=(0,a.useState)(r),l=(0,a.useRef)(!1);return(0,a.useEffect)(()=>{r||l.current||i(!1)},[r]),(0,n.jsxs)("div",{className:"mb-2",children:[(0,n.jsxs)("button",{onClick:()=>{l.current=!0,i(!s)},className:"flex items-center gap-1.5 text-xs text-gray-500 transition-colors py-1 hover:text-gray-700 cursor-pointer",type:"button",children:[(0,n.jsx)("svg",{className:"w-3.5 h-3.5",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",children:(0,n.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M9.663 17h4.673M12 3v1m6.364 1.636l-.707.707M21 12h-1M4 12H3m3.343-5.657l-.707-.707m2.828 9.9a5 5 0 117.072 0l-.548.547A3.374 3.374 0 0014 18.469V19a2 2 0 11-4 0v-.531c0-.895-.356-1.754-.988-2.386l-.548-.547z"})}),(0,n.jsx)("span",{children:o(r?"module.thinkingBlock.streaming":"module.thinkingBlock.done")}),(0,n.jsx)("svg",{className:`w-3 h-3 transition-transform duration-200 ${s?"rotate-180":""}`,fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",children:(0,n.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M19 9l-7 7-7-7"})})]}),s&&(0,n.jsx)("div",{className:"mt-1 pl-3 border-l-2 border-gray-200 text-xs text-gray-500 leading-relaxed whitespace-pre-wrap",children:t})]})});function et(e){let{isConnecting:t=!1}=e,{t:r}=(0,w.Bd)("common");return(0,n.jsx)("p",{role:"status",className:"text-sm text-v2-text-secondary",children:r(t?"chatRecovery.reconnecting":"chatRecovery.checking")})}var er=r(90376),en=r(59103),ea=r(75730),eo=r(28975);function es(e,t,r){return!e||e.startsWith(t)||!r.has(e)?e:`${t}${e}`}function ei(e,t){if(!e||!/\b(?:id|for|name)\s*=/i.test(e)||e.includes(`id="${t}`)||e.includes(`id='${t}`))return e;let r=function(e){let t,r=new Set,n=/\bid\s*=\s*(["'])([^"']+)\1/gi;for(;null!==(t=n.exec(e));){var a;let e=null==(a=t[2])?void 0:a.trim();e&&r.add(e)}return r}(e),n=e.replace(/\bid\s*=\s*(["'])([^"']+)\1/gi,(e,n,a)=>`id=${n}${es(a,t,r)}${n}`);for(let e of(n=n.replace(/\bfor\s*=\s*(["'])([^"']+)\1/gi,(e,n,a)=>`for=${n}${es(a,t,r)}${n}`),["aria-labelledby","aria-describedby","aria-controls","aria-owns","aria-activedescendant"])){let a=RegExp(`\\b${e}\\s*=\\s*(["'])([^"']*)\\1`,"gi");n=n.replace(a,(n,a,o)=>
1{let s=o.split(/\s+/).filter(Boolean).map(e=>es(e,t,r)).join(" ");return`${e}=${a}${s}${a}`})}return n.replace(/\bname\s*=\s*(["'])([^"']+)\1/gi,(e,r,n)=>!n||n.startsWith(t)?`name=${r}${n}${r}`:`name=${r}${t}${n}${r}`)}let el=[/i appreciate.{0,60}but i('m| am) not able to (engage|assist|help|respond)/i,/i('m| am) not able to engage with this (type|kind) of (content|request)/i,/i('m| am) designed to be helpful,?\s*harmless,?\s*and\s*honest/i,/i (cannot|can't) and (will|would) not\s+(generate|create|produce|assist|help)/i,/\bi will not\s+(generate|create|produce|assist|help|engage|roleplay)\b/i,/bypass(ing)?\s+(safety|my)\s+(guidelines?|policies?)/i,/safety guidelines? don't apply to me/i],ed=[/^i('m| am) sorry,?\s*(but\s+)?i\s+(cannot|can't|am unable to|am not able to)\s+(assist|help|respond|fulfill|process|generate)/i,/^i\s+(cannot|can't)\s+(assist|help|respond|fulfill|process|generate)\s+with\s+(that|this)\s+request/i,/\b(inappropriate|harmful|violat(es?|ing)|against\s+(my|our)\s+(guidelines|policies|terms))\b/i,/\bcontent\s+policy\b/i,/^(æ±æ|徿±æ|对ä¸èµ·|ä¸å¥½ææ).{0,20}(æ æ³|ä¸è½|ä¸å¯ä»¥)(åä¸|åç|åå¤|å¤ç|çæ|åå©|帮å©|ç»å°|æä¾)/,/^(ä½ å¥½[ï¼,ãï¼! ]*)?ææ æ³(ç»å°|æä¾)ç¸å
³å
容/,/æ æ³(ç»å°|æä¾)ç¸å
³å
容/,/请æåºå
¶ä»åè§çé®é¢/,/è¿å.{0,10}(æ¿ç|è§å®|åå|æ¡æ¬¾)/,/(ä¸å½|ä¸éå½|è¿è§|ææ).{0,5}(å
容|ä¿¡æ¯|请æ±)/],ec=[/^(?:(?:i(?:['â]m| am)\s+)?sorry[,ï¼]?\s*(?:but\s+)?)?i\s+(?:cannot|can['â]t|am unable to|am not able to)\s+(?:fulfill|fulfil|complete|process|comply with|assist with|help with|respond to)\s+(?:this|that|your)\s+request(?=[.!?\s]|$)/i,/^(?:(?:徿±æ|æ±æ|对ä¸èµ·|ä¸å¥½ææ)[ï¼,ãï¼!\s]*)?æ(?:æ æ³|ä¸è½|ä¸ä¼|ä¸å¯ä»¥)(?:(?:满足|宿|æ§è¡|ç»§ç»|ååº|åä¸|å|æ°å)(?:è¿ä¸ª|è¿ä¸|该|æ¤)(?:请æ±|è¦æ±|è§è²æ®æ¼(?:åºæ¯)?|å§æ
|åºæ¯|å
容)|(?:ä¸ºä½ |为æ¨)æ°å(?:è¿ä¸ª|该)å
容|æ(?:ç
§)?(?:è¿ä¸ª|该)(?:设å®|é
ç½®)(?:æ¥)?(?:çæå
容|è¿è¡åä½))(?=[ãï¼!ï¼?\s]|$)/,/^(?:(?:徿±æ|æ±æ|对ä¸èµ·|ä¸å¥½ææ)[ï¼,ãï¼!\s]*)?æ(?:æ æ³|ä¸è½|ä¸ä¼)(?:ç»§ç»)?(?:åä¸|æä¾|ååº|çæ|æå|æè¿°|åä½|å)[^ãï¼ï¼\n]{0,100}(?:é²éª¨|è²æ
|æ§æ´å|æ§ä¾µ|éèªæ¿|æ§å
容|æ§æå|æ§æå®)[^ãï¼ï¼\n]{0,100}(?:[ãï¼ï¼]|$)/,/^ææ³¨æå°ä½ è¦æ±çå
容[^ãï¼ï¼\n]{0,150}(?:æ§ä¾µ|æ§æ´å|è²æ
|é²éª¨)[^ãï¼ï¼\n]{0,150}æ(?:ä¹)?(?:ä¸è½|æ æ³)(?:çæ|åä½|æå)è¿ç±»å
容(?:[ãï¼ï¼]|$)/];function eu(e,t){let r=t.index??0;return e.slice(r+t[0].length).replace(/^[ãï¼ï¼.!?ï¼,ï¼;ï¼:\s]+/,"").length>400}let em=/<\s*galgame\b|<\s*sprite\b|galgame-step|ï¼\s*(?:input|sprite|galgame)/i,ep=/<[^<>]{0,200}[ââââï¼ï¼ï¼âï¼ã][^<>]{0,200}>/,eh=/ï¼\s*[a-z]/i,eg=/<\s*\/?\s*(?:[a-z]\s+){3,}[a-z]/i,ef=/<!â/,ev="bubble-message-body",eb="MuiButtonBase-root MuiButton-root MuiButton-text MuiButton-textPrimary MuiButton-sizeSmall MuiButton-textSizeSmall MuiButton-colorPrimary transition-[color,opacity] duration-150 hover:opacity-80 active:opacity-90 focus:outline-none focus-visible:ring-2 focus-visible:ring-v2-border-focus touch-manipulation gap-0.5 sm:gap-1 shrink-0",ey="chat:image-upsell:dismiss-until:v1",ex="chat:jailbreak-upsell:dismiss-until:v1",ew=a.memo(function(){return(0,n.jsx)("div",{className:"flex items-center justify-center w-6 h-5",children:(0,n.jsx)("div",{className:"style_dot-flashing__8L91Q style_text__zGhNq"})})}),ek=a.memo(function(){let{t:e}=(0,w.Bd)("chat"),[t,r]=(0,a.useState)(!1);return(0,a.useEffect)(()=>{let e=window.setTimeout(()=>r(!0),1500);return()=>window.clearTimeout(e)},[]),(0,n.jsxs)("div",{className:"flex flex-col gap-1",children:[(0,n.jsx)(ew,{}),t&&(0,n.jsxs)("p",{role:"status",className:"text-xs text-v2-text-tertiary",children:[e("module.message.connecting"),(0,n.jsxs)("span",{className:"waiting-reply-ellipsis","aria-hidden":"true",children:[(0,n.jsx)("span",{children:"."}),(0,n.jsx)("span",{children:"."}),(0,n.jsx)("span",{children:"."})]})]})]})}),eS=a.memo(e=>{let{message:t,character:r,className:o="",builtInCss:l,onRefreshMessage:u,onEditMessage:p,onDeleteMessage:h,onGenerateImageFromMessage:g,onOpenFishSpeech:f,onOpenJailbreakMods:b,onSendMessage:y,onFillInput:x,isLoading:k=!1,isLatestAiMessage:S=!1,openingStatements:I=[],currentOpeningIndex:j=0,onSwitchOpeningStatement:M,streamingTextDraft:E,onOpenQuickStartSettings:_,archivedBefore:T=null,isLastMessage:P=!1,onBranchOrShare:A,cgBookHit:F}=e,{t:$}=(0,w.Bd)("chat"),D=P&&!!A&&!t.isStreaming&&!t.isOpeningStatement,B=!!(l&&""!==l.trim()),q=(0,
1c.useUserStore)(e=>e.user),{preferences:H,renderMode:z}=s(),[U,W]=(0,a.useState)(null),[K]=(0,a.useState)(!1),[Q]=(0,a.useState)(null),[Y,X]=(0,a.useState)(!1),[es,ew]=(0,a.useState)(0),[eS,eC]=(0,a.useState)(0),eI=(0,a.useMemo)(()=>{let e=void 0!==E?E:t.text;return"string"==typeof e?e:"object"==typeof e&&null!==e?JSON.stringify(e):String(e??"")},[E,t.text]),ej=(0,a.useMemo)(()=>{let e=eI;return e=e.replace(/<Disclaimer>[\s\S]*?<\/Disclaimer>/gi,""),e=(0,er.EX)(e,!!t.isStreaming,"character"===t.sender),("comfyai"===("string"==typeof t.modelName?t.modelName.trim().toLowerCase():"")||e.includes("COMFY_INLINE_IMAGE_START")||e.includes("COMFY_INLINE_IMAGE_END")||e.includes("comfy://loading/")||e.includes("||e.includes("/install-emtry.webp"))&&(e=e.replace(/^â³\s*æ£å¨çæå¾çï¼è¯·ç¨åâ¦\s*$/gm,"").replace(/^â³\s*æ£å¨çæå¾çï¼è¯·ç¨å\.\.\.\s*$/gm,"").replace(/^æ£å¨çæå¾çï¼è¯·ç¨åâ¦\s*$/gm,"").replace(/^æ£å¨çæå¾çï¼è¯·ç¨å\.\.\.\s*$/gm,"").replace(/^####\s*çå¾\s*\d+\s*$/gm,"").replace(/^çå¾\s*\d+\s*$/gm,"").replace(/\n{3,}/g,"\n\n").trim(),/!\[[^\]]*çæå¾ç[^\]]*\]\([^)\n]*\/comfyai\/results\/[^)\n]*\)/.test(e)&&(e=e.replace(/^!\[(?:çæä¸|Generating|ìì± ì¤|ç»åçæä¸)\]\((?:comfy:\/\/loading\/[^)\s]+|\/install-emtry\.webp)\)\s*$/gmi,"").replace(/\n{3,}
1/g,"\n\n").trim())),e.replace(/\\n/g,"\n")},[eI,t.isStreaming,t.sender]),eM=(0,a.useMemo)(()=>"user"===t.sender?ej:function(e,t){if(!e||!t||!/\b(?:id|for|name)\s*=/i.test(e))return e;let r=t.replace(/[^a-zA-Z0-9_-]/g,"_").slice(0,80);if(!r)return e;let n=`ns_${r}_`;if(e.includes(`id="${n}`)||e.includes(`id='${n}`))return e;if(/<galgame\b/i.test(e)){let t,a=0,o=0,s="",i=/<galgame\b[^>]*>/gi;for(;null!==(t=i.exec(e));){let l=t.index,d=l+t[0].length,c=e.toLowerCase().indexOf("</galgame>",d);if(-1===c)break;let u=c+10;s+=ei(e.slice(o,l),n),s+=ei(e.slice(l,u),`ns_${r}_g${a}_`),a+=1,o=u,i.lastIndex=u}return s+ei(e.slice(o),n)}return ei(e,n)}(ej&&/<sprite\b/i.test(ej)?ej.replace(/(<sprite\b[^>]*\bclass\s*=\s*)(["'])([^"']*)(\2)/gi,(e,t,r,n,a)=>{let o=n.split(/\s+/).filter(Boolean).map(e=>{let t=/^(char-[a-z0-9]+(?:-[a-z0-9]+)*)-pose-([a-z0-9-]+)$/i.exec(e);if(!t)return e;let[,r,n]=t;return`${r} pose-${n}`});return`${t}${r}${o.join(" ")}${a}`}):ej,String(t.id)),[t.sender,t.id,ej]),eN=(0,a.useMemo)(()=>(0,en.Vn)(eI,!!t.isStreaming),[eI,t.isStreaming]),eE=(0,a.useMemo)(()=>(0,en.N)(eI)||eN.length>0,[eI,eN]),e_=(0,a.useMemo)(()=>/<[^>]+>/.test(ej),[ej]),eT=(0,a.useMemo)(()=>"character"===t.sender&&!!(l&&""!==l.trim()||/style\s*=\s*["'][^"']*["']/.test(ej)||/<div\s+class=["']content-block["']/.test(ej)||/<details\s+class=["']panel["']/.test(ej)||/<ul\s+class=["']options-list["']/.test(ej)),[ej,t.sender,l]),eP=(0,a.useMemo)(()=>"character"!==t.sender||t.isStreaming?[]:(0,v.tl)(ej),[ej,t.sender,t.isStreaming]),eR=(0,a.useMemo)(()=>H.enableHTMLRendering?"auto"===z?e_?"html":"text":z:"text",[H.enableHTMLRendering,z,e_]),eA=(0,a.useCallback)(()=>{e_&&"text"!==eR&&W({id:String(t.id),originalContent:ej,contentType:e_?"html":"text",processedContent:ej,metadata:{processingTime:0,hasHTML:e_,securityWarnings:[],renderingMode:eR}})},[t.id,ej,e_,eR]);a.useEffect(()=>{e_&&"html"===eR&&eA()},[e_,eR,eA]),(0,a.useCallback)(e=>{y&&!k&&y(`${e.letter}. ${e.content}`)},[y,k]);let eL=(0,a.useCallback)((e,t)=>{y&&!k&&y(`${e}. ${t}`)},[y,k]),eO=(0,a.useCallback)(e=>{x&&(x(e),requestAnimationFrame(()=>{var e;null==(e=document.getElementById("ai-chat-input"))||e.focus()}))},[x]),eF=(0,a.useCallback)(()=>{h&&h(t.id)},[h,t.id]),e$=(0,a.useMemo)(()=>"character"===t.sender&&!t.isStreaming&&!!ej&&!!em.test(ej)&&(ep.test(ej)||eh.test(ej)||eg.test(ej)||ef.test(ej)),[t.sender,t.isStreaming,ej]),eD=()=>(0,n.jsx)(G.A,{messageId:t.id,fallbackText:ej,onDelete:h&&!t.isStreaming?h:void 0,forceFallback:e$,children:(()=>{let e="user"===t.sender;if(!e&&t.isStreaming&&!ej)return t.isPendingResume?(0,n.jsx)(et,{isConnecting:"connecting"===t.streamingStatus}):eE?(0,n.jsx)(ee,{content:eN,isStreaming:!0}):(0,n.jsx)(ek,{});if(t.isError)return(0,n.jsx)(J,{text:ej,requestId:t.errorRequestId,errorType:t.errorType});if(!e&&!t.isStreaming&&!ej)return eE?(0,n.jsx)(ee,{content:eN,isStreaming:!1}):null;let r=!e&&eE?(0,n.jsx)(ee,{content:eN,isStreaming:!!t.isStreaming}):null;if(eT&&e_)try{return(0,n.jsxs)("div",{style:{overflow:"hidden",overflowWrap:"break-word",wordBreak:"break-word"},children:[r,(0,n.jsx)(N,{content:eM,className:`${B?"markdown-body ":""}text-sm ${ev}`.trim(),onOptionsRendered:X,onOptionSelect:eL,onFillInput:eO,isStreaming:t.isStreaming,isLatestAiMessage:S})]})}catch(e){return console.error("[EnhancedMessageComponent] BuiltInCssRenderer 渲æå¤±è´¥:",{error:e instanceof Error?e.message:e,messageId:t.id,contentLength:(null==ej?void 0:ej.length)||0,sender:t.sender,timestamp:t.timestamp}),(0,n.jsx)(m,{children:(0,n.jsx)("p",{className:`text-sm ${ev}`,children:ej})})}if("text"===eR||!e_)try{let e="user"===t.sender;return(0,n.jsxs)(m,{children:[r,(0,n.jsx)("div",{className:[e?"markdown-body":"",ev].filter(Boolean).join(" "),style:{overflow:"hidden",overflowWrap:"break-word",wordBreak:"break-word"},children:(0,n.jsx)(C,{content:eM,className:`${B&&"character"===t.sender?"markdown-body ":""}text-sm`.trim(),autoConvertMarkdown:!0,onOptionSelect:"character"===t.sender?eL:void 0,onFillInput:"character"===t.sender?eO:void 0,isLatestAiMessage:"character"===t.sender&&S,onOptionsRendered:"character"===t.sender?X:void 0,isStreaming:"character"===t.sender&&t.isStreaming})})]})}catch(e){return console.error("[EnhancedMessageComponent] SafeHtmlRenderer 渲æå¤±è´¥ (ææ¬æ¨¡å¼):",{error:e instanceof Error?e.message:e,messageId:t.id,contentLength:(null==ej?void 0:ej.length)||0,sender:t.sender,timestamp:t.timestamp}),(0,n.jsx)(m,{children:(0,n.jsx)("p",{className:`text-sm ${ev}`,children:ej})})}
1if("html"===eR&&e_){U||eA();try{return(0,n.jsxs)(m,{children:[r,(0,n.jsxs)("div",{className:`html-message-content chat-message ${ev} ${e?"user-message":""}`,children:[(0,n.jsx)(C,{content:eM,className:"prose prose-sm max-w-none",autoConvertMarkdown:!0,onOptionSelect:"character"===t.sender?eL:void 0,onFillInput:"character"===t.sender?eO:void 0,isLatestAiMessage:"character"===t.sender&&S,onOptionsRendered:"character"===t.sender?X:void 0,isStreaming:"character"===t.sender&&t.isStreaming}),K&&(0,n.jsxs)("div",{className:"flex items-center space-x-2 text-xs text-v2-text-tertiary mt-2",children:[(0,n.jsx)("div",{className:"animate-spin w-3 h-3 border border-v2-border-primary border-t-transparent rounded-full"}),(0,n.jsx)("span",{children:"Rendering HTML..."})]}),Q&&(0,n.jsxs)("div",{className:"text-xs text-v2-error mt-2 p-2 bg-v2-error-bg rounded border border-v2-border-error/30",children:["Render error: ",Q]})]})]})}catch(r){return console.error("[EnhancedMessageComponent] SafeHtmlRenderer 渲æå¤±è´¥ (HTML 模å¼):",{error:r instanceof Error?r.message:r,messageId:t.id,contentLength:(null==ej?void 0:ej.length)||0,sender:t.sender,timestamp:t.timestamp,containsHTML:e_}),(0,n.jsx)(m,{children:(0,n.jsxs)("div",{className:`html-message-content chat-message ${ev} ${e?"user-message":""}`,children:[(0,n.jsx)("p",{className:`text-sm ${ev}`,children:ej}),K&&(0,n.jsxs)("div",{className:"flex items-center space-x-2 text-xs text-v2-text-tertiary mt-2",children:[(0,n.jsx)("div",{className:"animate-spin w-3 h-3 border border-v2-border-primary border-t-transparent rounded-full"}),(0,n.jsx)("span",{children:"Rendering HTML..."})]}),Q&&(0,n.jsxs)("div",{className:"text-xs text-v2-error mt-2 p-2 bg-v2-error-bg rounded border border-v2-border-error/30",children:["Render error: ",Q]}),(0,n.jsx)("div",{className:"text-xs text-v2-warning mt-2 p-2 bg-v2-warning-bg rounded border border-v2-warning/25",children:"渲æå¨ä¸å¯ç¨ï¼å·²åéå°çº¯ææ¬æ¾ç¤º"})]})})}}return null})()}),eB="character"===t.sender&&t.isStreaming&&!t.text,eq="character"===t.sender&&t.isStreaming,eH=(0,a.useMemo)(()=>!!t.isPendingResume&&!!t.isStreaming||"comfyai"===("string"==typeof t.modelName?t.modelName.trim().toLowerCase():"")||ej.includes("\x3c!-- COMFY_INLINE_IMAGE_START --\x3e")||ej.includes("\x3c!-- COMFY_INLINE_IMAGE_END --\x3e")||ej.includes("#### çå¾")||ej.includes("comfy://loading/"),[t.modelName,t.isPendingResume,t.isStreaming,ej]),ez=(0,a.useMemo)(()=>{if(!b||"character"!==t.sender||!S||t.isStreaming||eB||t.isError||"error"===t.streamingStatus||t.isOpeningStatement||t.isQuickStartProfile||eH||eS>Date.now())return!1;let e=(!ej?"":ej.replace(/<[^>]*>/g,"")).replace(/\s+/g," ").trim();return!!e&&function(e){let t=(function(e){let t=e.trim();if(!t.startsWith("["))return e;try{let r=JSON.parse(t);if(!Array.isArray(r)||!r.every(e=>"string"==typeof e))return e;return r.join("")}catch{return e}})(e??"").trim();if(!t||/^the\s+request\s+was\s+rejected\s+because\s+it\s+was\s+considered\s+high\s+risk[.!ãï¼]?$/i.test(t.trim()))return!0;let r=t.slice(0,600);for(let e of el){let n=r.match(e);if(n){if(eu(t,n))return!1;return!0}}if(t.length<500)for(let e of ed){let r=t.match(e);if(r){if(eu(t,r))return!1;return!0}}for(let e of ec){let n=r.match(e);if(n){if(eu(t,n))return!1;return!0}}return!1}(e)},[S,eB,eS,t.isError,t.isOpeningStatement,t.isQuickStartProfile,t.isStreaming,t.sender,t.streamingStatus,ej,b,eH]),eU=(0,a.useMemo)(()=>!("character"!==t.sender||!S||!g||t.isStreaming||eB||t.isError||"error"===t.streamingStatus||!ej.trim()||es>Date.now()||eH||(0,eo.Z)(ej))&&!ez,[es,S,eB,t.isError,t.isStreaming,t.sender,t.streamingStatus,ej,g,eH,ez]);(0,a.useEffect)(()=>{try{let e=window.localStorage.getItem(ey),t=Number(e??0);Number.isFinite(t)&&t>0&&ew(t);let r=window.localStorage.getItem(ex),n=Number(r??0);Number.isFinite(n)&&n>0&&eC(n)}catch{}},[]);let eW=(0,a.useCallback)(()=>{let e=Date.now()+2592e5;ew(e);try{window.localStorage.setItem(ey,String(e))}catch{}},[]),eK=(0,a.useCallback)(()=>{let e=Date.now()+2592e5;eC(e);try{window.localStorage.setItem(ex,String(e))}catch{}},[]),eV=(0,a.useRef)(null);(0,a.useEffect)(()=>
1{if(!eq)return;let e=()=>{let e=eV.current;if(!e)return;let t=e.querySelectorAll("details");if(t.forEach((e,r)=>{r===t.length-1?e.setAttribute("data-streaming-active","true"):e.setAttribute("data-streaming-active","false"),e.hasAttribute("open")||(e.open=!1)}),0===t.length)return;t.forEach((e,r)=>{r<t.length-1&&e.querySelectorAll(".streaming-spinner").forEach(e=>e.remove())});let r=t[t.length-1].querySelector("summary");if(!r||r.querySelector(".streaming-spinner"))return;let n=document.createElement("span");n.className="streaming-spinner",n.style.animation="streaming-spinner 0.8s linear infinite",r.appendChild(n)};e();let t=eV.current;if(!t)return;let r=0,n=new MutationObserver(()=>{0===r&&(r=requestAnimationFrame(()=>{r=0,e()}))});return n.observe(t,{childList:!0,subtree:!0,characterData:!0}),()=>{n.disconnect(),0!==r&&(cancelAnimationFrame(r),r=0),t.querySelectorAll(".streaming-spinner").forEach(e=>e.remove()),t.querySelectorAll("details").forEach(e=>{e.removeAttribute("data-streaming-active"),e.open=!1})}},[eq]);let eG="character"===t.sender&&S&&eP.length>0&&!Y&&!t.isStreaming,eQ="character"===t.sender&&!!F&&!t.isStreaming,eY=()=>{var e;return(0,n.jsx)("div",{className:`shrink-0 relative w-8 h-8 ${"user"===t.sender?"bg-white":"bg-gray-100/90"} rounded-full`,children:"user"===t.sender?(0,n.jsx)("div",{className:"w-full h-full rounded-full overflow-hidden shadow-md hover:shadow-lg transition-shadow duration-200 border border-blue-100 bg-white",children:(0,n.jsx)("img",{src:(null==q?void 0:q.avatar)?(0,ea.X)(q.avatar):i.kv,alt:$("module.message.userAvatar"),className:"w-full h-full object-cover not-toggle"})}):(0,n.jsx)("div",{className:"w-full h-full rounded-full overflow-hidden shadow-md hover:shadow-lg transition-shadow duration-200 border border-blue-100 bg-white",children:t.avatar||(null==r?void 0:r.thumbnail)?(0,n.jsx)("img",{src:(0,i.C5)(t.avatar??(null==r?void 0:r.thumbnail)),alt:"Character",className:"w-full h-full object-cover not-toggle"}):(0,n.jsx)("div",{className:"w-full h-full flex items-center justify-center bg-gradient-to-r from-blue-500 to-cyan-500 text-white font-semibold text-xs",children:(null==r||null==(e=r.title)?void 0:e.charAt(0))??"AI"})})})};return"character"===t.sender?(0,n.jsxs)("div",{id:"ai-chat-answer",className:`flex flex-row-reverse mb-1.5 md:mb-2 last:mb-0 ${o}`,style:{overflow:"visible",zIndex:1},children:[(0,n.jsxs)("div",{className:"chat-answer-container group grow w-0 ml-1 md:ml-4",style:{minWidth:0,overflow:"visible",position:"relative"},children:[(0,n.jsx)("div",{className:"group relative",children:(0,n.jsxs)("div",{ref:eV,className:"relative inline-block px-2.5 py-2.5 md:px-4 md:py-3 w-fit max-w-full bg-gray-100/90 rounded-xl text-gray-900 chat-message","data-streaming":eq?"true":"false",style:{overflowWrap:"break-word",wordWrap:"break-word",wordBreak:"break-word",hyphens:"auto",overflow:"hidden"},children:[eD(),ej&&(()=>{if("character"!==t.sender)return null;if(t.isStreaming){let e={connecting:$("module.message.connecting"),receiving:$("module.message.receiving"),completed:$("module.message.completed"),error:$("module.message.transferError")},r=t.streamingStatus??"receiving";return"receiving"===r?null:(0,n.jsx)("div",{className:"flex items-center space-x-2 mt-2",children:(0,n.jsxs)("div",{className:`flex items-center space-x-1 text-xs ${{connecting:"text-v2-info",receiving:"text-v2-success",completed:"text-v2-text-tertiary",error:"text-v2-error"}[r]}`,children:["connecting"===r&&(0,n.jsx)("div",{className:"w-3 h-3 border border-current border-t-transparent rounded-full animate-spin"}),"completed"===r&&(0,n.jsx)("svg",{className:"w-3 h-3",fill:"currentColor",viewBox:"0 0 20 20",children:(0,n.jsx)("path",{fillRule:"evenodd",d:"M16.707 5.293a1 1 0 010 1.414l-8 8a1 1 0 01-1.414 0l-4-4a1 1 0 011.414-1.414L8 12.586l7.293-7.293a1 1 0 011.414 0z",clipRule:"evenodd"})}),"error"===r&&(0,n.jsx)("svg",{className:"w-3 h-3",fill:"currentColor",viewBox:"0 0 20 20",children:(0,n.jsx)("path",{fillRule:"evenodd",d:"M18 10a8 8 0 11-16 0 8 8 0 0116 0zm-7 4a1 1 0 11-2 0 1 1 0 012 0zm-1-9a1 1 0 00-1 1v4a1 1 0 102 0V6a1 1 0 00-1-1z",clipRule:"evenodd"})}),(0,n.jsx)("span",{children:e[r]})]})})}return null})(),eQ&&F?(0,n.jsx)(d,{rule:F,className:"mt-1.5 md:mt-2"}):null,t.isOpeningStatement&&I.length>1&&M||t.responseSource&&0?(0,n.jsxs)("div",{className:"flex items-center justify-end mt-0.5 md:mt-1",children:[t.isOpeningStatement&&I.length>1&&M&&(0,n.jsxs)("div",{className:"flex items-center gap-1",children:[(0,n.jsx)("button",{onClick:()=>(0,a.startTransition)(()=>M("prev")),className:"p-1 rounded hover:bg-black/10 transition-colors","aria-label":$("module.message.previousOpening"),title:$("module.message.previousOpening"),children:(0,n.jsx)("svg",{className:"w-4 h-4 text-v2-text-secondary",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",children:(0,n.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M15 19l-7-7 7-7"})})}),(0,n.jsxs)("span",{className:"text-xs text-v2-text-tertiary min-w-[32px] text-center",children:[j+1,"/",I.length]}),(0,n.jsx)("button",{onClick:()=>(0,a.startTransition)(()=>M("next")),className:"p-1 rounded hover:bg-black/10 transition-colors","aria-label":$("module.message.nextOpening"),title:$("module.message.nextOpening"),children:(0,n.jsx)("svg",{className:"w-4 h-4 text-v2-text-secondary",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",children:(0,n.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M9 5l7 7-7 7"})})})]}),t.responseSource&&!1]}):null,eH&&h&&!t.isStreaming&&(0,n.jsxs)("div",{className:"mt-1 flex justify-end gap-2.5 sm:gap-5","data-chat-msg-actions":"",children:[(0,n.jsxs)("button",{type:"button",onClick:eF,className:eb,style:{borderRadius:"6px"},"aria-label":$("module.messageFooter.deleteAria"),title:$("module.messageFooter.delete"),children:[(0,n.jsx)(R.d7,{
1className:O}),(0,n.jsx)("span",{className:L,children:$("module.messageFooter.delete")})]}),D&&A?(0,n.jsxs)("button",{type:"button",onClick:A,className:eb,style:{borderRadius:"6px"},"aria-label":$("module.messageFooter.branchShareAria"),title:$("module.messageFooter.branchShare"),children:[(0,n.jsx)(R.tS,{className:O}),(0,n.jsx)("span",{className:L,children:$("module.messageFooter.branchShare")})]}):null]}),!eH&&(0,n.jsx)(V,{message:t,onRefresh:u,onGenerateImage:g,onOpenFishSpeech:f,onEdit:p,onDelete:h,onBranchOrShare:A,showBranchShare:D,archivedBefore:T})]})}),ez&&b&&(0,n.jsxs)("p",{className:"mt-1.5 flex flex-wrap items-center gap-1.5",children:[(0,n.jsxs)("span",{className:"quick-start-profile-hint inline-block max-w-full px-2.5 py-1 rounded-lg text-xs text-v2-text-secondary leading-relaxed shadow-sm border border-white/40 whitespace-nowrap",style:{backgroundColor:"rgba(255, 255, 255, 0.8)",WebkitBackdropFilter:"blur(8px)",backdropFilter:"blur(8px)"},children:[$("module.jailbreakUpsell.hintPrefix"),(0,n.jsx)("button",{type:"button",onClick:b,className:"text-v2-accent-primary hover:underline cursor-pointer",children:$("module.jailbreakUpsell.hintLink")})]}),(0,n.jsx)("button",{type:"button",onClick:eK,className:"quick-start-profile-hint inline-flex items-center px-2.5 py-1 rounded-lg text-xs text-v2-text-tertiary leading-relaxed shadow-sm border border-white/40 hover:text-v2-text-primary cursor-pointer",style:{backgroundColor:"rgba(255, 255, 255, 0.8)",WebkitBackdropFilter:"blur(8px)",backdropFilter:"blur(8px)"},children:$("module.jailbreakUpsell.hintClose")})]}),eU&&g&&(0,n.jsxs)("p",{className:"mt-1.5 flex flex-wrap items-center gap-1.5",children:[(0,n.jsxs)("span",{className:"quick-start-profile-hint inline-block max-w-full px-2.5 py-1 rounded-lg text-xs text-v2-text-secondary leading-relaxed shadow-sm border border-white/40 whitespace-nowrap",style:{backgroundColor:"rgba(255, 255, 255, 0.8)",WebkitBackdropFilter:"blur(8px)",backdropFilter:"blur(8px)"},children:[$("module.imageUpsell.hintPrefix"),(0,n.jsx)("button",{type:"button",onClick:()=>g(t.id),className:"text-v2-accent-primary hover:underline cursor-pointer",children:$("module.imageUpsell.hintLink")})]}),(0,n.jsx)("button",{type:"button",onClick:eW,className:"quick-start-profile-hint inline-flex items-center px-2.5 py-1 rounded-lg text-xs text-v2-text-tertiary leading-relaxed shadow-sm border border-white/40 hover:text-v2-text-primary cursor-pointer",style:{backgroundColor:"rgba(255, 255, 255, 0.8)",WebkitBackdropFilter:"blur(8px)",backdropFilter:"blur(8px)"},children:$("module.imageUpsell.hintClose")})]}),eG&&y&&(0,n.jsx)(Z.A,{options:eP,onSelectOption:e=>{y(e.content)},className:"mt-1.5 md:mt-2"})]}),eY()]}):(0,n.jsxs)("div",{className:`group flex flex-row-reverse mb-1.5 md:mb-2 last:mb-0 ${o}`,style:{overflow:"visible",zIndex:1},children:[eY(),(0,n.jsxs)("div",{className:"group relative mr-0.5 md:mr-4 ml-1.5 md:ml-0",style:{minWidth:0,overflow:"visible",position:"relative",maxWidth:"min(632px, 100%)"},children:[(0,n.jsxs)("div",{className:"relative inline-block px-2.5 py-2.5 md:px-4 md:py-3 max-w-full text-gray-900 bg-gray-100/90 rounded-xl chat-message user-message",style:{overflowWrap:"break-word",wordWrap:"break-word",wordBreak:"break-word",hyphens:"auto",overflow:"hidden"},children:[eD(),(t.responseSource,null),eH&&h&&!t.isStreaming&&(0,n.jsxs)("div",{className:"mt-1 flex justify-end gap-2.5 sm:gap-5","data-chat-msg-actions":"",children:[(0,n.jsxs)("button",{type:"button",onClick:eF,className:eb,style:{borderRadius:"6px"},"aria-label":$("module.messageFooter.deleteAria"),title:$("module.messageFooter.delete"),children:[(0,n.jsx)(R.d7,{className:O}),(0,n.jsx)("span",{className:L,children:$("module.messageFooter.delete")})]}),D&&A?(0,n.jsxs)("button",{type:"button",onClick:A,className:eb,style:{borderRadius:"6px"},"aria-label":$("module.messageFooter.branchShareAria"),title:$("module.messageFooter.branchShare"),children:[(0,n.jsx)(R.tS,{className:O}),(0,n.jsx)("span",{className:L,children:$("module.messageFooter.branchShare")})]}):null]}),!eH&&(0,n.jsx)(V,{message:t,onRefresh:u,onGenerateImage:g,onOpenFishSpeech:f,onEdit:p,onDelete:h,onBranchOrShare:A,showBranchShare:D,archivedBefore:T})]}),t.isQuickStartProfile&&_&&(0,n.jsx)("p",{className:"mt-1.5 flex justify-end",children:(0,n.jsxs)("span",{className:"quick-start-profile-hint inline-block max-w-full px-2.5 py-1 rounded-lg text-xs text-v2-text-secondary leading-relaxed shadow-sm border border-white/40",style:{backgroundColor:"rgba(255, 255, 255, 0.8)",WebkitBackdropFilter:"blur(8px)",backdropFilter:"blur(8px)"},children:[$("module.quickStart.editAfterSendPrefix"),(0,n.jsx)("button",{type:"button",onClick:_,className:"text-v2-accent-primary hover:underline cursor-pointer",children:$("module.quickStart.editAfterSendLink")})]})})]})]})},(e,t)=>{var r,n,a,o,s,i;if(["inputTokens","outputTokens","inputPoints","outputPoints","pen
1dingSummaryPoints","modelId","modelName","streamingStatus","isPendingResume"].some(r=>e.message[r]!==t.message[r]))return!1;let l=e.message.isStreaming||"receiving"===e.message.streamingStatus,d=t.message.isStreaming||"receiving"===t.message.streamingStatus;if(!l&&!d&&e.message.id===t.message.id&&e.message.text===t.message.text&&e.message.isError===t.message.isError&&e.message.errorType===t.message.errorType&&e.message.errorRequestId===t.message.errorRequestId&&e.message.isTruncated===t.message.isTruncated&&e.message.dbMessageId===t.message.dbMessageId&&e.message.freeRecoveryRemaining===t.message.freeRecoveryRemaining&&e.streamingTextDraft===t.streamingTextDraft)return e.isLatestAiMessage===t.isLatestAiMessage&&e.isLoading===t.isLoading&&e.onRefreshMessage===t.onRefreshMessage&&e.onGenerateImageFromMessage===t.onGenerateImageFromMessage&&e.onOpenFishSpeech===t.onOpenFishSpeech&&e.onOpenJailbreakMods===t.onOpenJailbreakMods&&e.onEditMessage===t.onEditMessage&&e.onDeleteMessage===t.onDeleteMessage&&e.onSendMessage===t.onSendMessage&&e.onFillInput===t.onFillInput&&e.onOpenQuickStartSettings===t.onOpenQuickStartSettings&&e.archivedBefore===t.archivedBefore&&e.isLastMessage===t.isLastMessage&&e.onBranchOrShare===t.onBranchOrShare&&(null==(s=e.cgBookHit)?void 0:s.id)===(null==(i=t.cgBookHit)?void 0:i.id);let c=e.message.id===t.message.id&&e.message.text===t.message.text&&e.message.sender===t.message.sender&&e.message.isStreaming===t.message.isStreaming&&e.message.streamingStatus===t.message.streamingStatus&&e.message.isError===t.message.isError&&e.message.errorRequestId===t.message.errorRequestId&&e.message.isTruncated===t.message.isTruncated&&e.message.dbMessageId===t.message.dbMessageId&&e.message.freeRecoveryRemaining===t.message.freeRecoveryRemaining&&e.message.isResponseAbnormal===t.message.isResponseAbnormal&&e.message.isOpeningStatement===t.message.isOpeningStatement&&e.message.isQuickStartProfile===t.message.isQuickStartProfile,u=(null==(r=e.character)?void 0:r.id)===(null==(n=t.character)?void 0:n.id)&&(null==(a=e.character)?void 0:a.title)===(null==(o=t.character)?void 0:o.title),m=e.className===t.className,p=e.isLoading===t.isLoading,h=e.isLatestAiMessage===t.isLatestAiMessage,g=e.isLastMessage===t.isLastMessage,f=e.openingStatements===t.openingStatements&&e.currentOpeningIndex===t.currentOpeningIndex&&e.onSwitchOpeningStatement===t.onSwitchOpeningStatement,v=e.onRefreshMessage===t.onRefreshMessage&&e.onGenerateImageFromMessage===t.onGenerateImageFromMessage&&e.onOpenFishSpeech===t.onOpenFishSpeech&&e.onOpenJailbreakMods===t.onOpenJailbreakMods&&e.onEditMessage===t.onEditMessage&&e.onDeleteMessage===t.onDeleteMessage&&e.onSendMessage===t.onSendMessage&&e.onFillInput===t.onFillInput&&e.onOpenQuickStartSettings===t.onOpenQuickStartSettings&&e.archivedBefore===t.archivedBefore&&e.isLastMessage===t.isLastMessage&&e.onBranchOrShare===t.onBranchOrShare,b=e.streamingTextDraft===t.streamingTextDraft;return c&&b&&u&&m&&p&&h&&g&&f&&v})},6621:(e,t,r)=>{r.d(t,{A:()=>i});var n=r(37876),a=r(14232),o=r(97445);class s extends a.Component{constructor(e){super(e),this.state={hasError:!1}}static getDerivedStateFromError(){return{hasError:!0}}componentDidCatch(e,t){var r,n;let a=this.props.fallbackText??"";console.error("[MessageErrorBoundary] æ¶æ¯æ¸²æå¤±è´¥:",{messageId:this.props.messageId,error:e.message,stack:null==(r=e.stack)?void 0:r.split("\n").slice(0,3).join("\n"),componentStack:null==(n=t.componentStack)?void 0:n.split("\n").slice(0,5).join("\n"),fallbackPreview:a.slice(0,160)})}render(){if(this.state.hasError||this.props.forceFallback){let{messageId:e,onDelete:t}=this.props,r="function"==typeof t&&null!=e&&""!==e;return(0,n.jsxs)("div",{className:"rounded-lg border border-v2-border-primary bg-v2-bg-secondary px-3 py-2","data-chat-msg-actions":"",children:[(0,n.jsx)("p",{className:"text-sm text-v2-text-secondary",children:this.props.t("module.messageError.renderFailed")}),r?(0,n.jsx)("button",{type:"button",className:"mt-2 text-sm text-v2-state-error hover:underline cursor-pointer",onClick:()=>t(e),"aria-label":this.props.t("module.messageFooter.deleteAria"),children:this.props.t("module.messageError.deleteBroken")}):null]})}return this.props.children}}let i=(0,o.CI)("chat")(s)},6892:(e,t,r)=>{r.d(t,{H:()=>s});var n=r(34978),a=r(28157);let o=new Set(["insufficient_points","session_busy","unauthorized","bad_request","forbidden","not_found","rate_limit","network_error"]);function s(e,t){return!(!(0,a.qn)((0,n.MT)(e.isAuthenticated,e.totalRecharged,e.hasPaidMembershipCard,e.hasPublishedCharacter,e.hasInvitedUser),e.createdAt,e.now)||t&&o.has(t))}},7600:(e,t,r)=>{r.d(t,{c:()=>h});var n=r(14232),a=r(97685),o=r(34081),s=r(8779),i=r(92699);let l={summaryThreshold:10,bgEnabled:!0,customOpacity:!0,bubbleOpacity:86,temperature:.7,topP:.8,presencePenalty:0,frequencyPenalty:0,maxTokens:null,preText:"",postText:"",prePrompt:"",worldBook:"[]",bgImage:"",bgMobile:"",memoryPalaceMode:"disabled"};function d(e){let t;return{summaryThreshold:e.summary_threshold,bgEnabled:e.bg_enabled,customOpacity:e.custom_opacity,bubbleOpacity:e.bubble_opacity,temperature:e.temperature,topP:e.top_p,presencePenalty:e.presence_penalty,frequencyPenalty:e.frequency_penalty,maxTokens:e.max_tokens??null,preText:e.pre_text??"",postText:e.post_text??"",prePrompt:e.pre_prompt??"",worldBook:e.world_book??"[]",bgImage:e.bg_image,bgMobile:e.bg_mobile,memoryPalaceMode:(t=e.memory_palace_mode)&&"disabled"!==t?"auto":"disabled"}}async function c(e){try{var t;
1let r=await s.default.get(`/api/user-character-settings/${e}`);if((null==(t=r.data)?void 0:t.success)&&r.data.data)return d(r.data.data);return{...l}}catch(e){return console.error("[getCharacterSettings] 请æ±å¤±è´¥:",e),{...l}}}async function u(e,t){var r;let n,a=(n={},void 0!==t.summaryThreshold&&(n.summary_threshold=t.summaryThreshold),void 0!==t.bgEnabled&&(n.bg_enabled=t.bgEnabled),void 0!==t.customOpacity&&(n.custom_opacity=t.customOpacity),void 0!==t.bubbleOpacity&&(n.bubble_opacity=t.bubbleOpacity),void 0!==t.temperature&&(n.temperature=t.temperature),void 0!==t.topP&&(n.top_p=t.topP),void 0!==t.presencePenalty&&(n.presence_penalty=t.presencePenalty),void 0!==t.frequencyPenalty&&(n.frequency_penalty=t.frequencyPenalty),void 0!==t.maxTokens&&(n.max_tokens=t.maxTokens),void 0!==t.preText&&(n.pre_text=t.preText),void 0!==t.postText&&(n.post_text=t.postText),void 0!==t.prePrompt&&(n.pre_prompt=t.prePrompt),void 0!==t.worldBook&&(n.world_book=t.worldBook),void 0!==t.bgImage&&(n.bg_image=t.bgImage),void 0!==t.bgMobile&&(n.bg_mobile=t.bgMobile),void 0!==t.memoryPalaceMode&&(n.memory_palace_mode=t.memoryPalaceMode),n),o=await s.default.put(`/api/user-character-settings/${e}`,a);if((null==(r=o.data)?void 0:r.success)&&o.data.data)return d(o.data.data);throw Error((0,i.p4)("userCharacterSettings.updateFailed","æ´æ°è®¾ç½®å¤±è´¥"))}var m=r(5975),p=r(97445);function h(e,t,r){let s=(null==r?void 0:r.skipInitialStateCache)??!1,{isAuthenticated:i,user:h}=(0,m.rR)(),g=(0,n.useMemo)(()=>({characterId:e,userId:null==h?void 0:h.id,isAuthenticated:i}),[e,null==h?void 0:h.id,i]),f=(0,n.useRef)(g);f.current=g;let v=(0,n.useRef)(0),b=(0,n.useMemo)(()=>({scope:g,pending:null}),[g]),y=(0,n.useRef)(g).current===g,x=y?t:void 0,[w,k]=(0,n.useState)(()=>t?d(t):{...l}),[S,C]=(0,n.useState)(()=>!!(!t&&i)),[I,j]=(0,n.useState)(null),{t:M}=(0,p.Bd)("chat"),N=(0,n.useRef)(x);N.current=x;let E=(0,n.useRef)(!1),_=(0,n.useRef)(w);_.current=w;let T=(0,n.useCallback)(async e=>{if(f.current!==g)return;if(!e||!i){k({...l}),C(!1);return}if(E.current)return;E.current=!0;let t=++v.current,r=()=>f.current===g&&v.current===t;C(!0),j(null);let n=!N.current;try{let t=s||!y?null:(0,o.l4)(e);if(t){let e=await t;if(!r())return;if(null==e?void 0:e.settings)return void k(d(e.settings))}let a=await c(e);if(r()){if(n&&N.current)return;k(a)}}catch(e){if(r()){if(n&&N.current)return;j(e instanceof Error?e:Error(M("module.loadFailed"))),k({...l})}}finally{r()&&(C(!1),E.current=!1)}},[i,M,s,g,y]);(0,n.useEffect)(()=>{if(++v.current,E.current=!1,j(null),!e||!i){k({...l}),C(!1);return}if(x){k(d(x)),C(!1);return}return k({...l}),T(e),()=>{++v.current}},[e,i,T,x]);let P=(0,n.useCallback)(async t=>{if(!e||!i)return{ok:!1,reason:"unavailable"};if(f.current!==g)return{ok:!1,reason:"scope_changed"};let r=b.pending,n=(async()=>{if(r&&await r,f.current!==b.scope)return{ok:!1,reason:"scope_changed"};let n={..._.current};_.current={...n,...t},k(_.current);try{if(await u(e,t),f.current!==g)return{ok:!1,reason:"scope_changed"};return{ok:!0}}catch{if(f.current!==g)return{ok:!1,reason:"scope_changed"};return _.current=n,k(n),a.default.error(M("module.customConfig.saveFailedRetry")),{ok:!1,reason:"save_failed"}}})();b.pending=n;let o=await n;return b.pending===n&&(b.pending=null),o},[e,i,M,g,b]),R=(0,n.useCallback)(async()=>{let e={temperature:l.temperature,topP:l.topP,presencePenalty:l.presencePenalty,frequencyPenalty:l.frequencyPenalty,maxTokens:null};await P(e)},[P]),A=(0,n.useCallback)(async()=>{E.current=!1,await T(e)},[e,T]),L=(0,n.useMemo)(()=>{let e=w.worldBook;if(!e||"[]"===e)return[];try{let t=JSON.parse(e);return Array.isArray(t)?t:[]}catch{return console.error("[useCharacterSettings] world_book JSON è§£æå¤±è´¥:",e),[]}},[w.worldBook]);return{settings:w,parsedWorldBook:L,isLoading:S,error:I,updateSettings:P,resetModelParams:R,refresh:A}}},8420:(e,t,r)=>{r.r(t),r.d(t,{default:()=>rk});var n=r(37876),a=r(14232),o=r(98477),s=r(18847),i=r.n(s),l=r(67768),d=r(67914),c=r(71860),u=r(70143),m=r(89099),p=r(16146),h=r(16429);function g(e){return e.trim().toLowerCase()}function f(e,t){let r=g(e),n=g(t);return!!r&&!!n&&r.includes(n)}function v(e){let t="string"==typeof e.text?e.text:e.content;return"string"==typeof t?t:""}var b=r(86517),y=r(68587),x=r(70197),w=r(30318),k=r(34978),S=r(12775),C=r(84421),I=r(52605),j=r(2205),M=r(38166),N=r(76827),E=r(97685);let _={å§å:["å§å","åå","åç§°","æµç§°"],æ§å«:["æ§å«"],å¹´é¾:["å¹´é¾"],å¤è²:["å¤è²","å¤å½¢","å¤è§","é¿ç¸","容è²"],æ§æ ¼:["æ§æ ¼","个æ§","æ§æ
"],èä¸:["èä¸","身份","å·¥ä½"]},T=["æªå½å","æªç¥","æªè®¾å®","æªè®¾ç½®","æªå¡«","ææ ","æ ","空","å¾
å®","å¾
å¡«","å¾
è¡¥å
","n/a","none","null","-","â","...","â¦"],P=["æªå¡«å","çå¾
è¾å
¥","å¾
å¡«å","å¾
è¾å
¥","请填å","请è¾å
¥","è¯·éæ©","ææ èæ¯"],R=/^([^ï¼:\n]+)([ï¼:]\s*)(.*)$/;function A(e){let t=e.trim();for(let[e,r]of Object.entries(_))if(r.some(e=>e===t||t.includes(e)))return e;return null}function L(e){let t=new Map;for(let r of e.split("\n")){let e=r.trim();if(!e)continue;let n=e.match(R);if(!n)continue;let a=A(n[1]);a&&t.set(a,n[3].trim())}return t}function O(e){let t=e.trim();if(!t)return!0;let r=t.toLowerCase();return!!T.includes(r)||P.some(e=>t.includes(e))}function F(e){return e.replace(/<br\s*\/?>/gi,"\n").replace(/<\/p>/gi,"\n").replace(/<[^>]+>/g,"").replace(/ /g," ").replace(/</g,"<").replace(/>/g,">").replace(/&/g,"&").trim()}var $=r(98475),D=r(43259),B=r(55995),q=r(72594),H=r(8075),z=r(20998);let U=!1,W=!1;function K(e,t){try{let r={platform:(0,z.detectPlatform)()},n=(0,q.getReferralCode)();
1(null==n?void 0:n.code)&&(r.ref_code=n.code.toUpperCase()),(null==n?void 0:n.source)&&(r.ref_source=n.source),(null==n?void 0:n.refFirstTouchHost)&&(r.ref_first_touch_host=n.refFirstTouchHost);let a=(0,H.getUtmFirstTouch)();(null==a?void 0:a.utm_source)&&(r.utm_source=a.utm_source),(null==a?void 0:a.utm_medium)&&(r.utm_medium=a.utm_medium),(null==a?void 0:a.utm_campaign)&&(r.utm_campaign=a.utm_campaign),(null==a?void 0:a.utm_content)&&(r.utm_content=a.utm_content),(null==a?void 0:a.utm_term)&&(r.utm_term=a.utm_term),(null==a?void 0:a.first_touch_host)&&(r.utm_first_touch_host=a.first_touch_host),(null==a?void 0:a.first_touch_path)&&(r.utm_first_touch_path=a.first_touch_path),(0,B.capturePosthog)(e,{...r,...t??{}})}catch{}}function V(e){W||(W=!0,K("Guest Quota Hit",e))}var G=r(16921),Q=r(92699),Y=r(6892),X=r(48227);function J(e){return"object"==typeof e&&null!==e&&"code"in e&&"FREE_RECOVERY_LIMIT_REACHED"===e.code}function Z(e,t){(0,X.qP)(0);let{messageIndex:r,isRefresh:n,originalMessage:a}=e;n&&a&&t&&void 0!==r&&t(e=>e.map((e,t)=>t===r?{...a,isStreaming:!1,isError:!1,freeRecoveryRemaining:0}:e))}function ee(e){if(null==e)return(0,Q.p4)("chatHook.unknownError","åçæªç¥é误");if("string"==typeof e)return e;if("object"==typeof e){if(void 0!==e.error){if("string"==typeof e.error)return e.error;if("object"==typeof e.error&&null!==e.error){let t=e.error;if("string"==typeof t.message)return t.message;if("string"==typeof t.code)return t.code}}if("string"==typeof e.message)return e.message;if("string"==typeof e.msg)return e.msg}return(0,Q.p4)("chatHook.unknownError","åçæªç¥é误")}function et(e){var t,r,n,a,o;let s=C.useUserStore.getState();return(0,Y.H)({isAuthenticated:s.isAuthenticated,totalRecharged:null==(t=s.user)?void 0:t.totalRecharged,hasPaidMembershipCard:null==(r=s.user)?void 0:r.hasPaidMembershipCard,hasPublishedCharacter:null==(n=s.user)?void 0:n.hasPublishedCharacter,hasInvitedUser:null==(a=s.user)?void 0:a.hasInvitedUser,createdAt:null==(o=s.user)?void 0:o.createdAt},e)?(0,G.P)((0,Q.ns)(),"chat:module.message.freeTierUpgradeHint",{defaultValue:"è¿æ¬¡åå¤å¤±è´¥äºãå
å¼åå¯ä»¥æ¢æå
¶ä»æ¨¡ååè¯ã"}):null}function er(e){return"upstream_api"===e?"upstream_api":"platform"===e?"platform":"network"===e||"stream_transport"===e?"network":"unknown"}function en(e){if(!e||"object"!=typeof e)return!1;if("string"==typeof e.message&&""!==e.message.trim()||"string"==typeof e.msg&&""!==e.msg.trim()||"string"==typeof e.error&&""!==e.error.trim())return!0;if(e.error&&"object"==typeof e.error){let t=e.error;if("string"==typeof t.message&&""!==t.message.trim())return!0}return!1}function ea(e,t){let r=function(e,t){let r=e[t];if("string"==typeof r)return r.trim()||void 0}(e,"requestId");if(r)return r;let n=null==t?void 0:t.trim();return n&&n.length>0?n:void 0}var eo=r(56339),es=r(8779),ei=r(65229),el=r(82926),ed=r(77571),ec=r(78626),eu=r(9886),em=r(77711),ep=r(90777);async function eh(e){await new Promise(t=>setTimeout(t,e))}var eg=r(37481),ef=r(42109),ev=r(34081),eb=r(29533),ey=r(69257),ex=r(90376);async function ew(e,t){let r=(0,ei.L1)().replace(/\/api\/(?:backends\/chat-completions\/generate|chat\/completions)$/,"/api/chat/relay/resume"),n=new URLSearchParams({sessionId:e.sessionId,assistantMessageId:e.assistantMessageId});return fetch(`${r}?${n}`,{method:"GET",headers:(0,ed.getSessionTokenHeaders)(),credentials:"include",cache:"no-store",signal:t})}var ek=r(60181);let eS=/^[0-9a-f]{8}-[0-9a-f]{4}-4[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/i;async function eC(e,t){let r=e.getReader(),n=new TextDecoder,a=new ek.ZZ,o="",s="",i={},l=!1,d=!1,c=()=>{r.cancel().catch(()=>{})};t.signal.addEventListener("abort",c,{once:!0});let u=e=>{let t=(0,ek.RW)(e);"content"===t.type?o+=t.content??"":"reasoning"===t.type?s+=t.content??"":"metadata"===t.type?i={...i,...t.metadata}:"done"===t.type?l=!0:"error"===t.type&&(d=!0)},m=()=>`${s?`<think>${s}</think>`:""}${o}`;try{for(;;){if(t.signal.aborted)throw new DOMException("Cancelled","AbortError");let e=await r.read();if(t.signal.aborted)throw new DOMException("Cancelled","AbortError");
1if(e.done)break;for(let t of a.processChunk(n.decode(e.value,{stream:!0})))u(t);let o=m();o&&t.onUpdate({text:(0,eb.D)(o,{fixUnclosedFences:!1}),isStreaming:!0,streamingStatus:"receiving",isPendingResume:!1,isError:!1})}let e=a.flush();if(e&&u(e),!l||d||!m())return!1;return t.onUpdate({text:(0,eb.D)(m(),{fixUnclosedFences:!0}),isStreaming:!1,streamingStatus:"completed",isPendingResume:!1,isError:!1,dbMessageId:i.assistantMessageId??t.assistantMessageId,inputTokens:i.inputTokens,outputTokens:i.outputTokens,inputPoints:i.inputPoints,outputPoints:i.outputPoints,pendingSummaryPoints:i.pendingSummaryPoints,modelName:i.modelName,modelId:i.modelId,isTruncated:!0===i.truncated,isResponseAbnormal:!0===i.response_abnormal,freeRecoveryRemaining:i.freeRecoveryRemaining}),!0}finally{t.signal.removeEventListener("abort",c),await r.cancel().catch(()=>{}),r.releaseLock()}}async function eI(e){for(let o=0;o<3&&!(e.signal.aborted||Date.now()>=e.deadlineMs);o+=1){let s=new AbortController,i=()=>s.abort();e.signal.addEventListener("abort",i,{once:!0});let l=setTimeout(i,Math.max(0,e.deadlineMs-Date.now())),d=setTimeout(i,5e3);try{var t,r,n,a;let o=await ew(e,s.signal);if(clearTimeout(d),s.signal.aborted)return await (null==(r=o.body)?void 0:r.cancel()),!1;let i=o.headers.get("x-request-id");if(o.ok&&e.expectedRequestId&&i!==e.expectedRequestId)return await (null==(n=o.body)?void 0:n.cancel()),!1;if(o.ok&&o.body&&(null==(t=o.headers.get("content-type"))?void 0:t.includes("text/event-stream"))&&i&&eS.test(i)){if(e.onRequestId(i),await eC(o.body,{...e,signal:s.signal}))return!0}else if(await (null==(a=o.body)?void 0:a.cancel()),![404,502,503,504].includes(o.status))return!1}catch{if(e.signal.aborted)break}finally{clearTimeout(d),clearTimeout(l),e.signal.removeEventListener("abort",i)}o<2&&!e.signal.aborted&&await new Promise(t=>{let r,n=()=>{clearTimeout(r),e.signal.removeEventListener("abort",n),t()};r=setTimeout(n,250*(o+1)),e.signal.addEventListener("abort",n,{once:!0})})}return!1}var ej=r(82408),eM=r(58180);function eN(e){var t;return(null==(t=e.get("X-Request-ID"))?void 0:t.trim())||null}function eE(e){if("string"!=typeof e)return!1;let t=e.trim();return!(""===t||/^[{}[\]\s]+$/.test(t))}function e_(e,t,r){if(!t&&!r.current&&e)try{let t=JSON.parse(e),n=t.session_id??t.sessionId;"string"==typeof n&&n.trim().length>0&&(r.current=n)}catch{}}async function eT(e){if(!e)return;let t=e.getReader(),r=new TextDecoder,n="";try{for(;;){let{done:e,value:a}=await t.read();if(e)break;a&&(n+=r.decode(a,{stream:!0}))}return(n+=r.decode())||void 0}finally{t.releaseLock()}}function eP(e,t){return 0===t.length||t.some(t=>e.some(e=>e.id===t.id))?e:[...e,...t]}var eR=r(99586),eA=r(77686),eL=r(97445);function eO(e){let{loading:t,onRetry:r}=e,{t:a}=(0,eL.Bd)("common");return(0,n.jsxs)("div",{role:"alert",className:"flex items-center justify-between gap-3 px-3 py-2 text-sm",style:{background:"var(--v2-bg-secondary)",color:"var(--v2-text-primary)"},children:[(0,n.jsx)("span",{children:a("branchHistory.failed")}),(0,n.jsx)("button",{type:"button",className:"btn-v2-secondary shrink-0",disabled:t,onClick:()=>void r(),children:a("branchHistory.retry")})]})}var eF=r(44147),e$=r(63328),eD=r(1259);function eB(e){return[...eD.Z3.dailyTasks.withStages(),"chat",e??"anonymous"]}function eq(e){return`yeyu_chat_daily_tasks_skip_bj_ymd:${e}`}function eH(e){let t=[];for(let r of e)for(let e of r.stages)t.push({stageId:e.id,taskTitle:r.title,stageNumber:e.stageNumber,targetCount:e.targetCount,rewardPoints:e.rewardPoints,isCompleted:e.isCompleted,canClaim:e.canClaim,isClaimed:e.isClaimed});return t}var ez=r(77497);let eU="data-chat-no-referrer";var eW=r(69691),eK=r(74195),eV=r(17308),eG=r(71673),eQ=r(90935),eY=r(80666),eX=r(67682),eJ=r(42939),eZ=r(11674),e0=r(69475);let e1=e=>{let{children:t,bottomSlot:r,backgroundImageUrl:o,showBackgroundImage:s=!0,enabled:i=!0,style:l,sidebarOffset:d=0}=e,c=(0,a.useRef)(null),[u,m]=(0,a.useState)(110),p=(0,a.useCallback)(()=>{c.current&&m(Math.max(Math.ceil(c.current.getBoundingClientRect().height)+2,88))},[]);if((0,a.useLayoutEffect)(()=>{p();let e=requestAnimationFrame(()=>p());return()=>cancelAnimationFrame(e)},[p]),(0,a.useEffect)(()=>
1{let e=c.current;if(!e||(p(),"u"<typeof ResizeObserver))return;let t=new ResizeObserver(()=>{p()});return t.observe(e),()=>{t.disconnect()}},[p]),!i)return(0,n.jsx)(n.Fragment,{children:t});let h={...l,"--sidebar-offset":(null==l?void 0:l["--sidebar-offset"])??`${d}px`};return(0,n.jsxs)("div",{id:"installedBuiltInCss",className:"relative w-full h-full min-h-0 overflow-x-hidden overflow-y-clip",style:h,children:[o&&s&&(0,n.jsx)("img",{src:o,alt:"",className:"chat-background-image not-toggle pointer-events-none",style:{position:"absolute",inset:0,width:"100%",height:"100%",objectFit:"cover",objectPosition:"center",opacity:0,transition:"opacity 0.5s ease-in-out"},onLoad:e=>{e.target.style.opacity="1"},ref:e=>{(null==e?void 0:e.complete)&&e.naturalWidth>0&&(e.style.transition="none",e.style.opacity="1")},"aria-hidden":"true",loading:"eager",decoding:"async",fetchPriority:"low"}),(0,n.jsx)("div",{className:"relative h-full min-h-0 flex flex-col","data-chat-content-area":"",style:{paddingBottom:r?`${u}px`:void 0},children:t}),r&&(0,n.jsx)("div",{ref:c,className:"bg-gradient-to-t from-white via-white to-transparent absolute w-full bottom-0 left-0 right-0 pb-[calc(0.375rem+var(--mobile-keyboard-safe-bottom,env(safe-area-inset-bottom,0px)))] md:pb-[calc(1rem+var(--mobile-keyboard-safe-bottom,env(safe-area-inset-bottom,0px)))]",children:(0,n.jsx)("div",{className:"relative z-[1] mx-auto w-full max-w-[720px] px-3 md:px-4",children:r})})]})};var e2=r(3631);let e4="guest_chat";function e5(){return{v:2,byCharacter:{}}}function e3(){try{var e=localStorage.getItem(e4);if(!e)return e5();try{let t=JSON.parse(e);if(t&&"object"==typeof t&&2===t.v&&"object"==typeof t.byCharacter&&null!==t.byCharacter)return t;if(t&&"object"==typeof t&&"string"==typeof t.characterId&&Array.isArray(t.messages))return{v:2,byCharacter:{[t.characterId]:{characterId:t.characterId,characterName:t.characterName??"",messages:t.messages}}}}catch{}return e5()}catch{return e5()}}function e8(e,t,r,n){let a=e3(),o=a.byCharacter[e];o?(t&&o.characterName!==t&&(o.characterName=t),o.messages.push({role:r,content:n,sentAt:Date.now()})):a.byCharacter[e]={characterId:e,characterName:t,messages:[{role:r,content:n,sentAt:Date.now()}]};try{localStorage.setItem(e4,JSON.stringify(a))}catch{}}function e6(e){let t=e3().byCharacter[e];return t&&0!==t.messages.length?t:null}function e7(e,t){if("{"!==e[t])return"";let r=0,n=t;for(;n<e.length;){if("{"===e[n])r++;else if("}"===e[n]&&0==--r)return e.slice(t,n+1);n++}return e.slice(t)}var e9=r(32655),te=r(84880),tt=r.n(te);function tr(e,t){let r=e.replace(/\\(?:([0-9a-fA-F]{1,6})[ \t\r\n\f]?|(\r\n|[\n\r\f])|([\s\S]))/g,(e,t,r,n)=>{if(t){let e=Number.parseInt(t,16);return 0===e||e>1114111||e>=55296&&e<=57343?"�":String.fromCodePoint(e)}return r?"":n??""});if(!r||r.startsWith("#")||/^[a-z][a-z\d+.-]*:/i.test(r))return null;try{return new URL(r,t).href.replace(/[\\"]/g,"\\$&")}catch{return null}}var tn=r(48230),ta=r.n(tn);function to(e){let{error:t}=e,r=(0,m.useRouter)(),{t:a}=(0,eL.Bd)("chat"),o=(null==t?void 0:t.message)??a("module.chatErrorPage.notFoundMessage"),s="string"==typeof o?o:a("module.chatErrorPage.loadFailed"),i=(null==t?void 0:t.code)==="UNAUTHORIZED",l=`/user/login?redirect=${encodeURIComponent(r.isReady?r.asPath:"/")}`;return(0,n.jsx)("div",{className:"min-h-screen flex items-center justify-center",style:{background:"var(--v2-bg-primary)"},children:(0,n.jsxs)("div",{className:"text-center max-w-md px-6",children:[(0,n.jsx)("h1",{className:"text-2xl font-bold text-v2-state-error mb-4",children:a(t?"module.chatErrorPage.loadCharacterFailed":"module.chatErrorPage.characterNotFound")}),(0,n.jsx)("p",{className:"text-v2-text-secondary mb-6",children:s}),(0,n.jsxs)("div",{className:"flex flex-wrap items-center justify-center gap-3",children:[i&&(0,n.jsx)(ta(),{href:l,children:(0,n.jsx)("button",{type:"button",className:"px-4 py-2 rounded-lg text-white hover:opacity-90 transition-opacity",style:{background:"var(--v2-btn-primary-bg)",boxShadow:"var(--v2-btn-primary-shadow)"},children:a("module.chatErrorPage.login")})}),(0,n.jsx)(ta(),{href:"/",children:(0,n.jsx)("button",{className:"px-4 py-2 bg-v2-accent text-white rounded-lg hover:bg-v2-accent-hover transition-colors",children:a("module.chatErrorPage.backHome")})})]})]})})}var ts=r(19114),ti=r(95224),tl=r(5716),td=r(45137),tc=r(92789),tu=r(31372),tm=r(71585);let tp=(0,a.memo)(function(e){let{characterName:t="",suggestedQuestions:r=[],onSelectQuestion:o,disabled:s=!1,suggestedTourKeepOpen:i,characterId:l,initialFavorited:d,onOpenRecharge:c,onBack:u}=e,{t:m}=(0,eL.Bd)("chat"),p=(0,tm.H)(),{isFavorited:h,isLoading:g,toggleFavorite:f}=(0,tu.h)(l??"",d),v=(0,a.useCallback)(()=>
1{if(u)return void u();let e=()=>{clearTimeout(t),window.removeEventListener("popstate",e)};window.addEventListener("popstate",e),window.history.back();let t=setTimeout(()=>{window.removeEventListener("popstate",e),window.location.href="/"},300)},[u]),b=r&&r.length>0,y=(0,a.useRef)(null);return(0,a.useLayoutEffect)(()=>{let e,t=y.current;if(!t)return;let r=t.closest("#chat-module-container");if(!r)return;let n=()=>{let e=Math.ceil(t.getBoundingClientRect().height);e>0&&r.style.setProperty("--chat-header-offset",`${e}px`)};n(),"u">typeof ResizeObserver&&(e=new ResizeObserver(n)).observe(t),window.addEventListener("resize",n),window.addEventListener("orientationchange",n);let a=window.visualViewport;return null==a||a.addEventListener("resize",n),null==a||a.addEventListener("scroll",n),()=>{null==e||e.disconnect(),window.removeEventListener("resize",n),window.removeEventListener("orientationchange",n),null==a||a.removeEventListener("resize",n),null==a||a.removeEventListener("scroll",n),r.style.removeProperty("--chat-header-offset")}},[]),(0,n.jsx)("header",{ref:y,className:"absolute top-0 left-0 right-0",style:{paddingTop:p.inset,background:"var(--v2-bg-primary)",borderBottom:"1px solid var(--v2-border-primary)",zIndex:999},children:(0,n.jsxs)("div",{className:"h-11 flex items-center justify-between px-2",children:[(0,n.jsx)("button",{type:"button",onClick:v,className:"mobile-compact flex items-center justify-center w-8 h-8 rounded-lg transition-v2-interactive duration-200 hover:bg-v2-bg-hover active:scale-95",style:{color:"var(--v2-text-secondary)"},"aria-label":m("module.chatHeader.back"),children:(0,n.jsx)(ts.A,{className:"w-5 h-5",strokeWidth:2.5})}),(0,n.jsx)("div",{className:"flex-1 flex justify-center items-center min-w-0 px-2",children:b&&o?(0,n.jsx)(tc.A,{questions:r,onSelectQuestion:o,disabled:s,tourKeepOpen:i}):(0,n.jsx)("h1",{className:"text-sm font-medium truncate",style:{color:"var(--v2-text-primary)"},children:t||m("module.chatHeader.fallbackTitle")})}),(0,n.jsxs)("div",{className:"flex items-center gap-0.5",children:[l&&(0,n.jsx)("button",{type:"button",onClick:f,disabled:g,className:"mobile-compact flex items-center justify-center w-8 h-8 rounded-lg transition-v2-interactive duration-200 hover:bg-v2-bg-hover active:scale-95 disabled:opacity-50","aria-label":h?"åæ¶æ¶è":"æ¶è",children:h?(0,n.jsx)(td.A,{className:"w-5 h-5 text-red-500"}):(0,n.jsx)(ti.A,{className:"w-5 h-5",style:{color:"var(--v2-text-secondary)"},strokeWidth:2.2})}),(0,n.jsx)("button",{type:"button",onClick:c,className:"mobile-compact flex items-center justify-center w-8 h-8 rounded-lg transition-v2-interactive duration-200 hover:bg-v2-bg-hover active:scale-95 disabled:opacity-50",style:{color:"var(--v2-text-secondary)"},"aria-label":"å
å¼ç¤¼å
",title:"å
å¼ç¤¼å
",disabled:!c,children:(0,n.jsx)(tl.A,{className:"w-5 h-5",strokeWidth:2.2})})]})]})})});var th=r(35529),tg=r(58777),tf=r(79679),tv=r(39688),tb=r(69291),ty=r(7558),tx=r(2744),tw=r(27145),tk=r(67452);let tS=[{id:"quick-start",label:"Character settings",labelKey:"module.floatingSettings.quickStart",icon:(0,n.jsx)(tg.A,{className:"w-5 h-5"})},{id:"share",label:"Share work",labelKey:"module.floatingSettings.share",icon:(0,n.jsx)(tf.A,{className:"w-5 h-5"})},{id:"memory",label:"Memory settings",labelKey:"module.floatingSettings.memory",icon:(0,n.jsx)(tv.A,{className:"w-5 h-5"})},{id:"custom-config",label:"Custom config",labelKey:"module.floatingSettings.customConfig",icon:(0,n.jsx)(tb.A,{className:"w-5 h-5"})},{id:"mod",label:"Mod settings",labelKey:"module.floatingSettings.mod",icon:(0,n.jsx)(ty.A,{className:"w-5 h-5"})},{id:"page-settings",label:"Page settings",labelKey:"module.floatingSettings.pageSettings",icon:(0,n.jsx)(tx.A,{className:"w-5 h-5"})},{id:"model-params",label:"Model parameters",labelKey:"module.floatingSettings.modelParams",icon:(0,n.jsx)(tw.A,{className:"w-5 h-5"})}],tC=(0,a.memo)(function(e){let{onMenuItemClick:t,menuItems:r=tS,showOnMobile:s=!1}=e,{t:i}=(0,eL.Bd)("chat"),[l,d]=(0,a.useState)(!1),[c,u]=(0,a.useState)(!1),m=(0,a.useRef)(null),p=(0,a.useRef)(null),h=(0,a.useRef)({isDragging:!1,hasMoved:!1,startX:0,startY:0,startRight:4,startTop:0});(0,a.useEffect)(()=>{d(!0)},[]),(0,a.useEffect)(()=>
1{if(!l||!m.current)return;let e=(window.innerHeight-40)/2;h.current.startTop=e,m.current.style.top=e+"px",m.current.style.right="4px"},[l]),(0,a.useEffect)(()=>{let e=m.current;if(!e)return;let t=(t,r)=>{h.current.isDragging=!0,h.current.hasMoved=!1,h.current.startX=t,h.current.startY=r;let n=e.getBoundingClientRect();h.current.startRight=window.innerWidth-n.right,h.current.startTop=n.top},r=(t,r)=>{if(!h.current.isDragging)return;let n=h.current.startX-t,a=r-h.current.startY;(Math.abs(n)>5||Math.abs(a)>5)&&(h.current.hasMoved=!0);let o=Math.max(0,Math.min(window.innerWidth-40,h.current.startRight+n)),s=Math.max(0,Math.min(window.innerHeight-40,h.current.startTop+a));e.style.right=o+"px",e.style.top=s+"px"},n=()=>{h.current.isDragging=!1},a=e=>{e.preventDefault(),t(e.clientX,e.clientY)},o=e=>{t(e.touches[0].clientX,e.touches[0].clientY)},s=e=>r(e.clientX,e.clientY),i=e=>r(e.touches[0].clientX,e.touches[0].clientY);return e.addEventListener("mousedown",a),e.addEventListener("touchstart",o,{passive:!0}),document.addEventListener("mousemove",s),document.addEventListener("touchmove",i,{passive:!0}),document.addEventListener("mouseup",n),document.addEventListener("touchend",n),()=>{e.removeEventListener("mousedown",a),e.removeEventListener("touchstart",o),document.removeEventListener("mousemove",s),document.removeEventListener("touchmove",i),document.removeEventListener("mouseup",n),document.removeEventListener("touchend",n)}},[l]);let g=(0,a.useCallback)(()=>{h.current.hasMoved||u(e=>{let t=!e;return t&&(0,th.HZ)("floating_settings_menu_open",{}),t})},[]);(0,a.useEffect)(()=>{if(!c)return;let e=e=>{p.current&&!p.current.contains(e.target)&&m.current&&!m.current.contains(e.target)&&u(!1)},t=e=>{"Escape"===e.key&&u(!1)};return document.addEventListener("mousedown",e),document.addEventListener("touchstart",e,{passive:!0}),document.addEventListener("keydown",t),()=>{document.removeEventListener("mousedown",e),document.removeEventListener("touchstart",e),document.removeEventListener("keydown",t)}},[c]);let f=(0,a.useCallback)(e=>{(0,th.HZ)("floating_settings_menu_item_click",{item_id:e}),u(!1),t(e)},[t]);if(!l)return null;let v=(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)("div",{ref:m,className:`fixed ${s?"":"hidden md:block"} touch-none select-none`,style:{zIndex:9998,right:"4px"},children:(0,n.jsx)("button",{type:"button",onClick:g,className:"flex items-center justify-center rounded-full cursor-grab active:cursor-grabbing transition-[box-shadow,transform,border-color,background-color,color] duration-200 hover:scale-[1.06] focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-[var(--v2-border-focus)] focus-visible:ring-offset-2 focus-visible:ring-offset-[var(--v2-bg-primary)]",style:{width:40,height:40,backgroundColor:c?"var(--v2-state-info-bg)":"var(--v2-bg-card)",color:c?"var(--v2-accent-primary)":"var(--v2-text-secondary)",backdropFilter:"blur(10px)",border:c?"1px solid var(--v2-border-focus)":"1px solid var(--v2-border-primary)",boxShadow:c?"0 2px 8px color-mix(in srgb, var(--v2-accent-primary) 28%, transparent), 0 1px 2px rgba(0,0,0,0.06)":"0 1px 2px rgba(0,0,0,0.06), 0 4px 16px rgba(0,0,0,0.12), 0 0 0 1px rgba(255,255,255,0.85) inset"},"aria-label":i("module.floatingSettings.menu"),"aria-expanded":c,"aria-haspopup":"menu",children:(0,n.jsx)(tk.A,{className:"w-5 h-5 shrink-0",strokeWidth:2})})}),c&&(0,n.jsx)("div",{ref:p,role:"menu",className:"fixed py-1.5 min-w-[160px] rounded-lg border border-v2-border-primary bg-v2-bg-card shadow-v2-md animate-menu-fade-in-down",style:{zIndex:9999,top:m.current?m.current.getBoundingClientRect().top+40+4:"50%",right:m.current?window.innerWidth-m.current.getBoundingClientRect().right:4},children:r.map(e=>(0,n.jsxs)("button",{role:"menuitem",type:"button",onClick:()=>f(e.id),className:"w-full flex items-center gap-2.5 px-3.5 py-2 text-sm cursor-pointer transition-colors duration-200 hover:bg-v2-bg-hover active:bg-v2-bg-active",style:{color:"var(--v2-text-primary, #0f172a)"},children:[(0,n.jsx)("span",{className:"flex-shrink-0",style:{color:"var(--v2-text-secondary, #64748b)"},children:e.icon}),(0,n.jsx)("span",{children:e.labelKey?i(e.labelKey):e.label})]},e.id))})]});return(0,o.createPortal)(v,document.body)});var tI=r(97423),tj=r(29757),tM=r(85675),tN=r(65685),tE=r(53731),t_=r(67424),tT=r(27972),tP=r(60659),tR=r(63470),tA=r(17546
1),tL=r(51988),tO=r(24749),tF=r(55103);let t$=[{mode:"system",label:"module.speechModal.modeSystemTitle"},{mode:"community",label:"module.speechModal.modeCommunityTitle"},{mode:"custom",label:"module.speechModal.modeCustomTitle"}],tD=e=>{let{open:t,messageId:r,rawContent:s,onClose:i,onSuccess:l,onStartGenerating:d,onErrorOrCancel:c,onPlaySystemSpeech:u}=e,{t:m,i18n:p}=(0,eL.Bd)("chat"),[h,g]=(0,a.useState)("community"),[f,v]=(0,a.useState)(""),[b,y]=(0,a.useState)(!1),[x,w]=(0,a.useState)(!1),[k,S]=(0,a.useState)(!1),[C,I]=(0,a.useState)(!1),[j,M]=(0,a.useState)([]),[N,_]=(0,a.useState)(!1),[T,P]=(0,a.useState)(""),[R,A]=(0,a.useState)(""),[L,O]=(0,a.useState)(""),[F,$]=(0,a.useState)(!1),D=F||b,B=(0,a.useRef)(null),q=(0,a.useMemo)(()=>(0,tL.jQ)(s),[s]),H=q.length,z=(0,a.useMemo)(()=>(0,tO.xV)({charCount:H}),[H]);(0,a.useEffect)(()=>{if(!t||"custom"!==h||k)return;let e=!1;return I(!1),(0,tP.B0)(p).then(()=>{e||S(!0)}).catch(t=>{console.error("[ChatFishSpeechModal] load custom voice labels failed:",t),e||I(!0)}),()=>{e=!0}},[t,h,p,k]),(0,a.useEffect)(()=>{t&&0===j.length&&(_(!0),es.default.get("/api/image/comfy/voice-library/voices",{timeout:2e4}).then(e=>{var t,r;"object"==typeof(t=e.data)&&null!==t&&!0===t.success&&Array.isArray(t.voices)&&(M(e.data.voices),e.data.voices.length>0&&!T)&&P((null==(r=e.data.voices[0])?void 0:r.id)||"")}).catch(e=>{console.error("[ChatFishSpeechModal] load voices failed:",e)}).finally(()=>{_(!1)}))},[t,j.length,T]);let U=()=>{let e=B.current;B.current=null,null==e||e.pause(),O("")};(0,a.useEffect)(()=>(t||(U(),$(!1)),()=>{let e=B.current;B.current=null,null==e||e.pause()}),[t]);let W=(0,a.useMemo)(()=>{let e=R.trim().toLowerCase();return e?j.filter(t=>t.title.toLowerCase().includes(e)||t.description&&t.description.toLowerCase().includes(e)||t.tags&&t.tags.some(t=>t.toLowerCase().includes(e))):j},[j,R]),K=(0,a.useMemo)(()=>j.find(e=>e.id===T),[j,T]),V="custom"===h?f:T,G="custom"===h?m("module.speechModal.modeCustomTitle"):(null==K?void 0:K.title)||m("module.speechModal.modeCommunityTitle"),Q=()=>{U(),F&&(null==c||c(r)),i()},Y=async()=>{var e,t;if(!V)return void E.oR.error(m("module.speechModal.selectVoiceFirst"));if(H<=0)return void E.oR.error(m("module.speechModal.emptyText"));$(!0),U(),null==d||d(r);try{let t=await es.default.post(`/api/chat/messages/${r}/speech`,{reference_id:V,voice_title:G},{timeout:6e5});t.data.success&&(null==(e=t.data.data)?void 0:e.audioUrl)?(E.oR.success(t.data.data.cached?m("module.speechModal.cachedSuccess"):m("module.speechModal.generateSuccess")),l(r,t.data.data.audioUrl,V,G),i()):(null==c||c(r),E.oR.error(t.data.error||m("module.speechModal.generateFailed")))}catch(n){null==c||c(r);let e=m("module.speechModal.generateFailed");if(n&&"object"==typeof n&&"response"in n&&(null==(t=n.response)?void 0:t.data)){let t=n.response.data;t&&"object"==typeof t&&("INSUFFICIENT_POINTS"===t.code?e=m("module.speechModal.insufficientPoints"):t.error&&(e=t.error))}E.oR.error(e)}finally{$(!1)}};return!t||"u"<typeof document?null:(0,o.createPortal)((0,n.jsx)("div",{className:"chat-modal-overlay fixed inset-0 z-[1200] flex items-center justify-center p-4",style:{backgroundColor:"var(--v2-bg-overlay)",paddingTop:"max(1rem, var(--top-safe-area-inset, env(safe-area-inset-top, 0px)))",paddingBottom:"max(1rem, env(safe-area-inset-bottom, 0px))"},onClick:e=>{e.target!==e.currentTarget||D||Q()},role:"dialog","aria-modal":"true","aria-label":m("module.speechModal.title"),children:(0,n.jsxs)("div",{className:"chat-modal-panel flex max-h-[85dvh] w-full max-w-md flex-col overflow-hidden rounded-2xl border border-v2-border-primary p-4 shadow-2xl sm:p-5",style:{backgroundColor:"var(--v2-bg-card)"},onClick:e=>e.stopPropagation(),children:[(0,n.jsxs)("div",{className:"mb-4 flex shrink-0 items-center justify-between gap-3",children:[(0,n.jsxs)("h2",{className:"flex items-center gap-2 text-base font-semibold text-v2-text-primary",children:[(0,n.jsx)(tF.pD,{className:"h-5 w-5 fill-current text-v2-accent-primary"}),m("module.speechModal.title")]}),(0,n.jsx)("button",{type:"button","aria-label":m("module.close"),onClick:Q,disabled:D,className:"-mr-2 flex h-11 w-11 items-center justify-center rounded-lg text-v2-text-tertiary transition-colors hover:bg-v2-bg-hover hover:text-v2-text-primary focus-visible:outline-v2-accent-primary disabled:opacity-50",children:(0,n.jsx)(tN.A,{className:"w-5 h-5"})})]}),(0,n.jsx)("div",{className:"mb-4 grid shrink-0 grid-cols-3 gap-1 rounded-lg bg-v2-bg-secondary/50 p-1",children:t$.map(e=>{let{mode:t,label:r}=e;return(0,n.jsx)("button",{type:"button","aria-pressed":h===t,disabled:D,onClick:()=>{U(),g(t),w(!1)},className:`min-h-9 rounded-md px-1 py-2 text-xs font-medium transition-colors focus-visible:outline-v2-accent-primary disabled:opacity-50 ${h===t?"bg-v2-bg-card text-v2-accent-primary shadow-sm":"text-v2-text-secondary hover:text-v2-text-primary"}`,children:m(r)},t)}
1)}),(0,n.jsxs)("div",{className:"min-h-0 space-y-3 overflow-y-auto overscroll-contain",children:[(0,n.jsxs)("section",{"aria-label":m("module.speechModal.textPreviewLabel"),children:[(0,n.jsxs)("div",{className:"mb-2 flex flex-wrap items-center justify-between gap-2",children:[(0,n.jsx)("h3",{className:"text-sm font-semibold text-v2-text-primary",children:m("module.speechModal.textPreviewLabel")}),(0,n.jsxs)("span",{className:"text-xs tabular-nums text-v2-text-tertiary",children:[m("module.speechModal.charCountLabel")," \xb7 ",H]})]}),(0,n.jsx)("div",{className:"max-h-60 min-h-40 overflow-y-auto overscroll-contain rounded-xl border border-v2-border-primary bg-v2-bg-secondary/30 p-3.5 sm:min-h-48",children:(0,n.jsx)("p",{className:"whitespace-pre-wrap break-words text-sm leading-7 text-v2-text-primary",children:q||m("module.speechModal.emptyText")})})]}),"community"===h&&(0,n.jsxs)("div",{children:[(0,n.jsxs)("button",{type:"button","aria-expanded":x,disabled:F||N,onClick:()=>w(!x),className:"flex min-h-11 w-full items-center gap-2 rounded-lg border border-v2-border-primary px-3 py-2 text-left text-xs text-v2-text-secondary hover:bg-v2-bg-hover disabled:opacity-50",children:[K&&(0,n.jsx)(t_.A,{cover:K.cover,title:K.title,size:"1.5rem"}),(0,n.jsx)("span",{className:"min-w-0 flex-1 truncate text-v2-text-primary",children:N?m("module.speechModal.loadingVoices"):(null==K?void 0:K.title)||m("module.speechModal.selectVoiceFirst")}),(0,n.jsx)("span",{children:m("module.speechModal.changeVoice")}),(0,n.jsx)(tE.A,{"aria-hidden":"true",className:`h-4 w-4 shrink-0 transition-transform ${x?"rotate-180":""}`})]}),x&&(0,n.jsxs)("div",{className:"mt-2 space-y-2",children:[(0,n.jsx)("input",{type:"search","aria-label":m("module.speechModal.searchPlaceholder"),value:R,onChange:e=>A(e.target.value),placeholder:m("module.speechModal.searchPlaceholder"),className:"min-h-10 w-full rounded-lg border border-v2-border-primary bg-v2-bg-secondary/50 px-3 py-2 text-sm text-v2-text-primary placeholder:text-v2-text-tertiary focus:border-v2-accent-primary focus:outline-hidden"}),(0,n.jsx)("div",{className:"max-h-40 space-y-1 overflow-y-auto overscroll-contain",children:0===W.length?(0,n.jsx)("p",{className:"py-4 text-center text-xs text-v2-text-secondary",children:m("module.speechModal.noVoicesFound")}):W.map(e=>(0,n.jsxs)("div",{className:`flex items-center gap-1 rounded-lg ${e.id===T?"bg-v2-bg-secondary":"hover:bg-v2-bg-hover"}`,children:[(0,n.jsxs)("button",{type:"button","aria-pressed":e.id===T,disabled:F,onClick:()=>{U(),P(e.id),w(!1)},className:"flex min-h-11 min-w-0 flex-1 items-center gap-2 px-2 text-left text-sm text-v2-text-primary",children:[(0,n.jsx)(tj.A,{"aria-hidden":"true",className:`h-4 w-4 shrink-0 text-v2-accent-primary ${e.id===T?"":"invisible"}`}),(0,n.jsx)("span",{className:"truncate",children:e.title})]}),(0,n.jsx)("button",{type:"button",disabled:F,onClick:()=>(e=>{if(L===e.id)return void U();let t=(0,tR.ML)(e.sampleUrl);if(!t)return void E.oR.error(m("module.speechModal.noPreviewSample"));U();let r=new Audio(t);B.current=r,O(e.id);let n=e=>{B.current===r&&(U(),(0,tA.V)(r.error??e))};r.addEventListener("ended",()=>{B.current===r&&U()}),r.addEventListener("error",n);try{r.play().catch(n)}catch(e){n(e)}})(e),className:"min-h-11 shrink-0 px-3 text-xs text-v2-accent-primary",children:L===e.id?m("module.speechModal.stop"):m("module.speechModal.preview")})]},e.id))})]})]}),"custom"===h&&(f?(0,n.jsxs)("div",{className:"flex items-center justify-between gap-2 text-xs",children:[(0,n.jsxs)("span",{className:"flex items-center gap-1.5 text-v2-success",children:[(0,n.jsx)(tj.A,{"aria-hidden":"true",className:"h-4 w-4"}),m("module.speechModal.customVoiceReady")]}),(0,n.jsx)("button",{type:"button",disabled:F,onClick:()=>v(""),className:"min-h-10 px-2 text-v2-text-secondary hover:text-v2-text-primary",children:m("module.speechModal.customVoiceReplace")})]}):k?(0,n.jsx)(tT.C,{cloneOnly:!0,disabled:F,onCloneBusyChange:y,source:"custom",onSourceChange:()=>void 0,communityVoiceId:T,onCommunityVoiceIdChange:P,customVoiceId:f,onCustomVoiceIdChange:v,text:q,onTextChange:()=>void 0}):(0,n.jsx)("p",{role:C?"alert":"status",className:"text-xs text-v2-text-secondary",children:m(C?"module.speechModal.generateFailed":"module.speechModal.loadingVoices")}))]}),(0,n.jsxs)("div",{className:"mt-3 flex shrink-0 items-center justify-between gap-3 border-t border-v2-border-primary pt-3 text-xs","aria-live":"polite","aria-atomic":"true",children:[(0,n.jsx)("span",{className:"text-v2-text-tertiary",children:m("module.speechModal.pointsCostLabel")}),(0,n.jsx)("strong",{className:`text-base tabular-nums ${"system"===h?"text-v2-success":"text-v2-accent-primary"}`,children:"system"===h?m("module.speechModal.freeCost"):z})]}),(0,n.jsx)("button",{type:"button",className:"btn-v2-primary mt-3 flex min-h-12 w-full shrink-0 items-center justify-center gap-2 rounded-xl px-4 py-3 text-sm font-semibold focus-visible:outline-v2-accent-primary disabled:cursor-not-allowed disabled:opacity-50",onClick:()=>
1{"system"===h?(U(),null==u||u(r,s),i()):Y()},disabled:D||"system"!==h&&(!V||H<=0),children:F?(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)("div",{className:"h-4 w-4 animate-spin rounded-full border-2 border-current border-t-transparent"}),(0,n.jsx)("span",{children:m("module.speechModal.generating")})]}):(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)(tM.A,{"aria-hidden":"true",className:"h-4 w-4 shrink-0"}),(0,n.jsx)("span",{children:m("system"===h?"module.speechModal.submitSystem":"module.speechModal.confirm")})]})})]})}),document.body)};var tB=r(35222),tq=r(7600),tH=r(35003);let tz=[{id:"streaming",labelKey:"module.mobileActionPanel.streaming",iconPath:"M13 10V3L4 14h7v7l9-11h-7z",callbackKey:"onToggleStreaming",isToggle:!0},{id:"model",labelKey:"module.mobileActionPanel.model",iconPath:"M9 3v2m6-2v2M9 19v2m6-2v2M3 9h2m-2 6h2m14-6h2m-2 6h2M7 19h10a2 2 0 002-2V7a2 2 0 00-2-2H7a2 2 0 00-2 2v10a2 2 0 002 2zM9 9h6v6H9V9z",callbackKey:"onOpenCustomConfig"},{id:"history",labelKey:"module.mobileActionPanel.history",iconPath:"M12 8v4l3 3m6-3a9 9 0 11-18 0 9 9 0 0118 0z",callbackKey:"onOpenChatHistory"},{id:"new-chat",labelKey:"module.mobileActionPanel.newChat",iconPath:"M12 9v6m3-3H9m12 0a9 9 0 11-18 0 9 9 0 0118 0z",callbackKey:"onNewChat"},{id:"persona",labelKey:"module.mobileActionPanel.persona",iconPath:"M15.75 6a3.75 3.75 0 11-7.5 0 3.75 3.75 0 017.5 0zM4.501 20.118a7.5 7.5 0 0114.998 0A17.933 17.933 0 0112 21.75c-2.676 0-5.216-.584-7.499-1.632z",callbackKey:"onOpenPersona"},{id:"page-settings",labelKey:"module.mobileActionPanel.pageSettings",iconPath:"M19.5 14.25v-2.625a3.375 3.375 0 00-3.375-3.375h-1.5A1.125 1.125 0 0113.5 7.125v-1.5a3.375 3.375 0 00-3.375-3.375H8.25m2.25 0H5.625c-.621 0-1.125.504-1.125 1.125v17.25c0 .621.504 1.125 1.125 1.125h12.75c.621 0 1.125-.504 1.125-1.125V11.25a9 9 0 00-9-9z",callbackKey:"onOpenPageSettings"},{id:"memory",labelKey:"module.mobileActionPanel.memory",iconPath:"M8 9h8m-8 4h6m-6 4h8M5 3h14a2 2 0 012 2v14a2 2 0 01-2 2H5a2 2 0 01-2-2V5a2 2 0 012-2z",callbackKey:"onOpenMemorySettings"},{id:"model-params",labelKey:"module.mobileActionPanel.modelParams",iconPath:"M10.343 3.94c.09-.542.56-.94 1.11-.94h1.093c.55 0 1.02.398 1.11.94l.149.894c.07.424.384.764.78.93.398.164.855.142 1.205-.108l.737-.527a1.125 1.125 0 011.45.12l.773.774c.39.389.44 1.002.12 1.45l-.527.737c-.25.35-.272.806-.107 1.204.165.397.505.71.93.78l.893.15c.543.09.94.56.94 1.109v1.094c0 .55-.397 1.02-.94 1.11l-.893.149c-.425.07-.765.383-.93.78-.165.398-.143.854.107 1.204l.527.738c.32.447.269 1.06-.12 1.45l-.774.773a1.125 1.125 0 01-1.449.12l-.738-.527c-.35-.25-.806-.272-1.204-.107-.397.165-.71.505-.78.929l-.15.894c-.09.542-.56.94-1.11.94h-1.094c-.55 0-1.019-.398-1.11-.94l-.148-.894c-.071-.424-.384-.764-.781-.93-.398-.164-.854-.142-1.204.108l-.738.527c-.447.32-1.06.269-1.45-.12l-.773-.774a1.125 1.125 0 01-.12-1.45l.527-.737c.25-.35.273-.806.108-1.204-.165-.397-.506-.71-.93-.78l-.894-.15c-.542-.09-.94-.56-.94-1.109v-1.094c0-.55.398-1.02.94-1.11l.894-.149c.424-.07.765-.383.93-.78.165-.398.143-.854-.108-1.204l-.526-.738a1.125 1.125 0 01.12-1.45l.773-.773a1.125 1.125 0 011.45-.12l.737.527c.35.25.807.272 1.204.107.397-.165.71-.505.78-.929l.15-.894z",callbackKey:"onOpenModelParams"}],tU=(0,a.memo)(function(e){let{isOpen:t,onClose:r,isStreamingEnabled:o,onToggleStreaming:s,onOpenCustomConfig:i,onOpenChatHistory:l,onNewChat:d,onOpenPersona:c,onOpenPageSettings:u,onOpenMemorySettings:m,onOpenModelParams:p}=e,{t:h}=(0,eL.Bd)("chat"),g=(0,a.useRef)(null),f={onToggleStreaming:s,onOpenCustomConfig:i,onOpenChatHistory:l,onNewChat:d,onOpenPersona:c,onOpenPageSettings:u,onOpenMemorySettings:m,onOpenModelParams:p};(0,a.useEffect)(()=>{if(!t)return;let e=e=>{g.current&&!g.current.contains(e.target)&&r()};return document.addEventListener("mousedown",e),document.addEventListener("touchstart",e,{passive:!0}),()=>{document.removeEventListener("mousedown",e),document.removeEventListener("touchstart",e)}},[t,r]);let v=(0,a.useCallback)(e=>{let t=f[e.callbackKey];null==t||t(),e.isToggle||r()},[r,s,i,l,d,c,u,m,p]);return(0,n.jsx)("div",{ref:g,className:"md:hidden overflow-hidden",role:"region","aria-label":h("module.mobileActionPanel.aria"),children:(0,n.jsx)("div",{className:` 2 grid grid-cols-4 gap-2 px-3 pt-3 pb-2 3 bg-white 4 transition-v2-interactive duration-200 ease-in-out 5 ${t?"max-h-[200px] opacity-100":"max-h-0 opacity-0 py-0 px-0"} 6 `,style:{transitionProperty:"max-height, opacity, padding"},children:tz.map(e=>{let t=e.isToggle&&o;return(0,n.jsxs)("button",{type:"button",onClick:()=>v(e),className:` 7 flex flex-col items-center justify-center gap-1 8 py-2 rounded-lg cursor-pointer 9 transition-colors duration-200 10 motion-reduce:transition-none 11 ${t?"bg-blue-50 text-blue-600":"text-gray-600 hover:bg-gray-50 active:bg-gray-100"} 12 `,"aria-label":h(e.labelKey),"aria-pressed":e.isToggle?o:void 0,children:[(0,n.jsx)("svg",{className:"w-6 h-6",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",strokeWidth:1.5,"aria-hidden":"true",children:(0,n.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",d:e.iconPath})}),(0,n.jsxs)("span",{className:"text-[10px] leading-tight truncate w-full text-center",children:[h(e.labelKey),e.isToggle&&(0,n.jsx)("span",{className:"ml-0.5 font-medium",children:o?h("module.mobileActionPanel.streamingOn"):h("module.mobileActionPanel.streamingOff")})]})]},e.id)})})})}
12),tW="bubble-opacity-style",tK="--chat-bubble-alpha",tV="#installedBuiltInCss",tG="rgb(243, 244, 246)",tQ=`var(--chat-ai-bg, var(--v2-chat-message-ai, var(--v2-chat-bubble-bg, ${tG})))`,tY=`var(--chat-user-bg, var(--v2-chat-message-user, var(--v2-chat-bubble-bg, ${tG})))`;function tX(e){return`bubble-opacity-${e}`}function tJ(e){try{let t=localStorage.getItem(tX(e));if(null!==t){let r=Number(t);if(!Number.isFinite(r))return 90;if(r>=0&&r<=1){let t=Math.round(100*r);return localStorage.setItem(tX(e),String(t)),t}return Math.max(0,Math.min(100,Math.round(r)))}}catch{}return 90}function tZ(e){if("u">typeof document){if(null===e)return void document.documentElement.style.removeProperty(tK);document.documentElement.style.setProperty(tK,String(e))}}function t0(e){let t=e/100;tZ(t);let r=document.getElementById(tW);r||((r=document.createElement("style")).id=tW,document.head.appendChild(r));let n=Number(((1-t)*100).toFixed(2));r.textContent=` 13 /* AI æ°æ³¡ */ 14 ${tV} .chat-answer-container .bg-gray-100\\/90.relative.inline-block, 15 ${tV} .chat-answer-container .chat-message:not(.html-message-content) { 16 /* å åºï¼ä¸æ¯æ color-mix çå æ ¸ä¹å¿ é¡»ä¿çå¯è§èæ¯ */ 17 background: ${tQ}; 18 background-color: ${tQ}; 19 background: color-mix(in srgb, ${tQ}, transparent ${n}%); 20 background-color: color-mix(in srgb, ${tQ}, transparent ${n}%); 21 } 22 /* ç¨æ·æ°æ³¡ï¼ä¸ AI ç¸åçç¥ï¼ä» èæ¯ alpha ååï¼æåä¸åå½±å */ 23 ${tV} .chat-message.user-message.bg-gray-100\\/90, 24 ${tV} .flex.flex-row-reverse .chat-message.user-message { 25 background: ${tY}; 26 background-color: ${tY}; 27 background: color-mix(in srgb, ${tY}, transparent ${n}%); 28 background-color: color-mix(in srgb, ${tY}, transparent ${n}%); 29 } 30 `}function t1(){tZ(null);let e=document.getElementById(tW);e&&e.remove()}var t2=r(28458);let t4="chat-stream-auto-scroll";var t5=r(70206),t3=r(84038);let t8="yeyu_chat_task_reward_toast_shown_bj_ymd";function t6(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:Date.now();return!function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:Date.now(),t=(0,e$.XQ)(e);return function(){try{return window.localStorage.getItem(t8)}catch{return null}}()===t}(e)}var t7=r(28157),t9=r(85695);function re(e){let{status:t}=e,{t:r,i18n:o}=(0,eL.Bd)("chat"),[s,i]=(0,a.useState)(()=>Date.now());(0,a.useEffect)(()=>{if(!(null==t?void 0:t.available)||!t.expiresAt)return;let e=t.serverNow-Date.now();i(t.serverNow);let r=window.setInterval(()=>i(Date.now()+e),3e4);return()=>window.clearInterval(r)},[null==t?void 0:t.available,null==t?void 0:t.expiresAt,null==t?void 0:t.serverNow]);let l=(0,a.useMemo)(()=>{if(!(null==t?void 0:t.expiresAt))return"";let e=t.expiresAt-s;if(e<=0)return"";let r=Math.max(1,Math.ceil(e/6e4)),n=r>=60?Math.ceil(r/60):r;return new Intl.RelativeTimeFormat(o.language,{numeric:"always"}).format(n,r>=60?"hour":"minute")},[o.language,s,null==t?void 0:t.expiresAt]);return(null==t?void 0:t.available)&&!(t.remaining<=0)&&t.expiresAt&&!(t.expiresAt<=s)&&l?(0,n.jsx)("div",{role:"status",className:"mx-3 mb-1 rounded-lg border px-3 py-1.5 text-center text-xs",style:{backgroundColor:"var(--v2-state-success-bg)",borderColor:"var(--v2-border-primary)",color:"var(--v2-state-success)"},children:r("module.chatTrialBanner",{count:t.remaining,time:l})}):null}let rt=i()(()=>Promise.all([r.e(5241),r.e(5209),r.e(4699),r.e(3489)]).then(r.bind(r,74699)),{loadableGenerated:{webpack:()=>[74699]},ssr:!1}),rr=i()(()=>Promise.all([r.e(4727),r.e(6735),r.e(6742)]).then(r.bind(r,86735)),{loadableGenerated:{webpack:()=>[86735]},ssr:!1}),rn=i()(()=>Promise.all([r.e(5241),r.e(5209),r.e(3867),r.e(8566)]).then(r.bind(r,63867)).then(e=>({default:e.QuickRegisterModal})),{loadableGenerated:{webpack:()=>[63867]},ssr:!1}),ra=i()(()=>r.e(8398).then(r.bind(r,18398)),{loadableGenerated:{webpack:()=>[18398]},ssr:!1}),ro=i()(()=>Promise.all([r.e(1950),r.e(9922),r.e(9785)]).then(r.bind(r,19922)),{loadableGenerated:{webpack:()=>[19922]},ssr:!1}),rs=i()(()=>r.e(4851).then(r.bind(r,54851)),{loadableGenerated:{webpack:()=>[54851]},ssr:!1}),ri=i()(()=>r.e(2537).then(r.bind(r,72537)),{loadableGenerated:{webpack:()=>[72537]},ssr:!1}),rl=i()(()=>r.e(5912).then(r.bind(r,85912)),{loadableGenerated:{webpack:()=>[85912]},ssr:!1}),rd=i()(()=>r.e(883).then(r.bind(r,90883)),{loadableGenerated:{webpack:()=>[90883]},ssr:!1}),rc=i()(()=>Promise.resolve().then(r.bind(r,78626)),{loadableGenerated:{webpack:()=>[78626]},ssr:!1}),ru=i()(()=>r.e(2844).then(r.bind(r,82844)),{loadableGenerated:{webpack:()=>[82844]},ssr:!1}),rm=i()(()=>Promise.all([r.e(9917),r.e(4872),r.e(690),r.e(5239)]).then(r.bind(r,42331)).then(e=>({default:e.CustomConfigModal})),{loadableGenerated:{webpack:()=>[42331]},ssr:!1}),rp=i()(()=>r.e(4032).then(r.bind(r,84032)),{loadableGenerated:{webpack:()=>[84032]},ssr:!1}),rh=i()(()=>r.e(3006).then(r.bind(r,3006)),{loadableGenerated:{webpack:()=>[3006]},ssr:!1}),rg=i()(()=>Promise.all([r.e(1652),r.e(463)]).then(r.bind(r,61652)).then(e=>({default:e.CharacterCommunitySection})),{loadableGenerated:{webpack:()=>[61652]},ssr:!1}),rf="comfy:inline:draft:v1:";function rv(e){return!!e&&(!1===e.canChat||!0!==e.canChat&&"deleted"===e.status)}function rb(e){if(Array.isArray(e))return e;if("string"==typeof e){let t=e.trim();if(!t)return[];try{let e=JSON.parse(t);if(Array.isArray(e))return e}catch{}}return[]}function ry(e,t,r){if(!e||"object"!=typeof e)return console.warn("[normalizeCharacterForChat] æ¶å°æ æçè§è²æ°æ®:",typeof e),{id:t||"unknown",title:r};let n=((null==e?void 0:e.title)??(null==e?void 0:e.name)??(null==e?void 0:e.character_name)??(null==e?void 0:e.characterName)??"").toString(),a=((null==e?void 0:e.name)??(null==e?void 0:e.title)??"").toString()||void 0,o=((null==e?void 0:e.id)??t??"").toString();o||console.warn("[normalizeCharacterForChat] è§è²æ°æ®ç¼ºå° id åæ®µ:",Object.keys(e));let s=function(){for(var e=arguments.length,t=Array(e),r=0;r<e;r++)t[r]=arguments[r];for(let e of t){if("string"!=typeof e)continue;let t=e.trim();if(t&&(t.startsWith("http://")||t.startsWith("https://")||t.startsWith("/")||t.includes("/")))return t}}(null==e?void 0:e.thumbnail,null==e?void 0:e.cover_tiny,null==e?void 0:e.cover),i=(null==e?void 0:e.recommendedModelId)??(null==e?void 0:e.recommended_model_id),l="string"==typeof i&&i.trim()?i.trim():null,d=(null==e?void 0:e.builtInCss)??(null==e?void 0:e.built_in_css)??null,c=rb(null==e?void 0:e.suggested_questions).filter(e=>"string"==typeof e),u=rb(null==e?void 0:e.shortcut_commands).filter(e=>!!e&&"object"==typeof e&&"string"==typeof e.label),m=rb(null==e?void 0:e.cg_book).filter(e=>!!e&&"object"==typeof e&&"string"==typeof e.id&&Array.isArray(e.assets)),p=rb(null==e?void 0:e.regex_replaces).filter(e=>!!e&&"object"==typeof e&&"string"==typeof e.matchRegex);return{...e,id:o||t||"unknown",title:n||r,name:a,thumbnail:s,recommendedModelId:l,builtInCss:d,suggested_questions:c,shortcut_commands:u,cg_book:m,regex_replaces:p}}let rx="b19fbb76-d044-485b-b85e-8a5df115139e",rw=`chat_tour_ad_landing_${rx}`,rk=function(e){let{characterId:t,showSessionSidebar:s=!0,showLeftSidebar:i=!0,loadHistory:g=!0,onSave:_,onPublish:T,isSaving:P=!1,isPublishing:B=!1,className:q="",inputPositionMode:H="fixed",showMobileHeader:z=!1,overrideDescription:W,overrideBuiltInCss:G,overrideOpeningStatement:Y,overrideSuggestedQuestions:ew,overrideShortcutCommands:ek,overrideBgImage:eS,overrideBgMobile:eC,overrideRegexReplaces:eD,initialCharacterData:e5,skipCharacterFetch:te=!1,onToggleSidebar:tn,onCharacterLoaded:ta,onHandleReady:ts,authorPreviewMode:ti=!1,initialFavorited:tl,onNavigateParallelSpace:td,onPreviewRecommendedModelChange:tc,ssrInitialStateData:tu,previewFixtureMessages:tm,shareSnapshotMode:th=!1}=e,{t:tg,i18n:tf}=(0,eL.Bd)("chat");(0,a.useLayoutEffect)(()=>
30{if(document.head.querySelector(`meta[${eU}]`))return;let e=document.createElement("meta");return e.setAttribute("name","referrer"),e.setAttribute("content","no-referrer"),e.setAttribute(eU,"1"),document.head.insertBefore(e,document.head.firstChild),()=>{e.remove()}},[]);let tv=tf.exists("module.quickStartTourTitle",{ns:"chat"}),tb=(0,a.useMemo)(()=>(0,t3.Tp)(),[]),ty=(0,m.useRouter)(),tx=(0,l.jE)(),tw=(0,a.useMemo)(()=>"string"==typeof t?t.replace(/\/+$/,"").trim():"",[t]),tk=(0,a.useMemo)(()=>{let e=ty.query.preview,t=Array.isArray(e)?e[0]:e;return ti||"1"===t||"true"===t||"string"==typeof ty.asPath&&ty.asPath.startsWith("/user/chat-preview")},[ti,ty.query.preview,ty.asPath]),tS=(0,a.useMemo)(()=>{let e=ty.query.ad,t=Array.isArray(e)?e[0]:e;return"1"===t||"true"===t},[ty.query.ad]),tM=(0,a.useMemo)(()=>!!tS&&tw.toLowerCase()===rx.toLowerCase(),[tS,tw]);(0,a.useEffect)(()=>{tM&&(0,c.M)()},[tM]);let{isMobile:tE,isHydrated:t_}=(0,ez.X)(),{confirm:tT,dialog:tP}=function(){let{t:e}=(0,eL.Bd)("chat"),[t,r]=(0,a.useState)(null),s=(0,a.useRef)(null),i=(0,a.useCallback)(e=>new Promise(t=>{s.current&&s.current(!1),s.current=t,r({message:e})}),[]),l=(0,a.useCallback)(e=>{let t=s.current;s.current=null,r(null),null==t||t(e)},[]),d=(0,a.useCallback)(e=>{e.target===e.currentTarget&&l(!1)},[l]);return{confirm:i,dialog:t&&"u">typeof document?(0,o.createPortal)((0,n.jsxs)("div",{className:"fixed inset-0 z-[999] flex items-center justify-center px-4",onClick:d,role:"dialog","aria-modal":"true","aria-label":t.message,children:[(0,n.jsx)("div",{className:"absolute inset-0 bg-black/40"}),(0,n.jsxs)("div",{className:"relative bg-v2-bg-card shadow-2xl rounded-xl w-full max-w-sm mx-4 p-5",children:[(0,n.jsx)("p",{className:"text-sm text-v2-text-primary leading-relaxed whitespace-pre-line mb-5",children:t.message}),(0,n.jsxs)("div",{className:"flex justify-end gap-3",children:[(0,n.jsx)("button",{type:"button",onClick:()=>l(!1),className:"px-4 py-2 text-sm text-v2-text-primary border border-v2-border-primary rounded-lg hover:bg-v2-bg-hover cursor-pointer transition-colors duration-200",children:e("module.cancel")}),(0,n.jsx)("button",{type:"button",onClick:()=>l(!0),className:"px-4 py-2 text-sm text-white bg-red-600 hover:bg-red-700 rounded-lg cursor-pointer transition-colors duration-200",children:e("module.confirm")})]})]})]}),document.body):null}}(),{user:tR,isAuthenticated:tA}=(0,C.useUserStore)((0,j.k)(e=>({user:e.user,isAuthenticated:e.isAuthenticated}))),tO=(0,C.useUserStore)(e=>e.checkAuthStatus),tF=(0,C.useUserStore)(e=>e.setUser),t$=(0,C.useUserStore)(e=>{var t;return(null==(t=e.user)?void 0:t.points)??0}),tz=tA&&t$>0&&t$<5e3,tW=(0,k.MT)(tA,null==tR?void 0:tR.totalRecharged,null==tR?void 0:tR.hasPaidMembershipCard,null==tR?void 0:tR.hasPublishedCharacter,null==tR?void 0:tR.hasInvitedUser),tK=(0,a.useMemo)(()=>["chat","trial-status",(null==tR?void 0:tR.id)??"anonymous"],[null==tR?void 0:tR.id]),tV=tW&&!tk&&!th,{data:tG,isPending:tQ,isError:tY}=(0,d.I)({queryKey:tK,queryFn:ev.xM,enabled:tV,staleTime:3e4,retry:1}),[tZ,rb]=(0,a.useState)(()=>Date.now()),rk=(0,a.useRef)(0);(0,a.useEffect)(()=>{if((null==tG?void 0:tG.serverNow)&&(rk.current=tG.serverNow-Date.now(),rb(tG.serverNow)),!(null==tG?void 0:tG.expiresAt))return;let e=()=>Date.now()+rk.current,t=Math.max(0,tG.expiresAt-e()),r=window.setTimeout(()=>rb(e()),t+50);return()=>window.clearTimeout(r)},[null==tG?void 0:tG.expiresAt,null==tG?void 0:tG.serverNow]);let rS=(0,a.useCallback)(e=>{let t=Date.now()+rk.current;tx.setQueryData(tK,{available:e.remaining>0&&t<e.expiresAt,remaining:e.remaining,expiresAt:e.expiresAt,serverNow:t})},[tK,tx]),rC=(0,t7.bv)({hasLowBalance:tz,shouldLoadTrialStatus:tV,isTrialStatusPending:tQ,isTrialStatusError:tY,trialStatus:tG,now:tZ}),rI=(0,a.useMemo)(()=>(0,t7.tg)({isAuthenticated:tA,isFreeTierUser:tW,createdAt:null==tR?void 0:tR.createdAt,trialStatus:tG,now:tZ}),[tZ,tG,tA,tW,null==tR?void 0:tR.createdAt]),rj=rI.shouldLock,rM=rI.lockedModelId,rN=rI.preferredDefaultModelId;(0,a.useEffect)(()=>{(0,k.ME)()},[]);let rE=(0,a.useCallback)(()=>{let e=(0,eW.oG)(ty.asPath);e.isRecordedSource&&(0,eK.is)(e.path),ty.replace(e.path)},[ty]);(0,a.useEffect)(()=>(ty.beforePopState(e=>{let{url:t}=e;if(!C.useUserStore.getState().isAuthenticated)return!0;let r=t.split("?")[0];return"/user/login"!==r&&"/user/register"!==r||(rE(),!1)}),()=>{ty.beforePopState(()=>!0)}),[rE,ty]),(0,a.useMemo)(()=>!1,[tR]);let[r_,rT]=(0,a.useState)(()=>(null==tu?void 0:tu.character)?tu:null),[rP,rR]=(0,a.useState)(()=>(null==tu?void 0:tu.character)?ry(tu.character,tw,tg("module.unnamedCharacter")):null),[rA,rL]=(0,a.useState)(()=>!(null==tu?void 0:tu.character)),[rO,rF]=(0,a.useState)(null),[r$,rD]=(0,a.useState)(null),[rB,rq]=(0,a.useState)(!1),[rH,rz]=(0,a.useState)(!0),[rU,rW]=(0,a.useState)(!1),rK=(0,a.useRef)(!1),rV=(0,a.useCallback)(()=>{N.Hu?(rK.current=!0,rW(!0)):ty.replace((0,N.pE)(ty.asPath))},[ty]),[rG,rQ]=(0,a.useState)(null),rY=(0,a.useRef)(!1),rX=(0,a.useRef)(tc);(0,a.useEffect)(()=>{rX.current=tc},[tc]);let[rJ,rZ]=(0,a.useState)(!1),[r0,r1]=(0,a.useState)([]),[r2,r4]=(0,a.useState)([]),[r5,r3]=(0,a.useState)(""),r8=(0,a.useRef)(null),r6=(0,a.useRef)(null),[r7,r9]=(0,a.useState)(!1),[ne,nt]=(0,a.useState)(!1),[nr,nn]=(0,a.useState)(null),[na,no]=(0,a.useState)(!1),[ns,ni]=(0,a.useState)(""),[nl,nd]=(0,a.useState)(!1),[nc,nu]=(0,a.useState)(!1),[nm,np]=(0,a.useState)(!1),[nh,ng]=(0,a.useState)(!1),[nf,nv]=(0,a.useState)("send"),[nb,ny]=(0,a.useState)(!1),[nx,nw]=(0,a.useState)(!1),[nk,nS]=(0,a.useState)(null),[nC,nI]=(0,a.useState)(!1),[nj,nM]=(0,a.useState)(0),[nN,nE]=(0,a.useState)(!1),[n_,nT]=(0,a.useState)("public"),[nP,nR]=(0,a.useState)(""),[nA,nL]=(0,a.useState)(0),[nO,nF]=(0,a.useState)(!1),n$=(0,a.useCallback)(e=>{nT((null==e?void 0:e.tab)??"public"),nR((null==e?void 0:e.publicModType)??""),nL(e=>e+1),nE(!0)},[]),nD=(0,a.useCallback)(()=>{n$({tab:"public",publicModType:"jailbreak"})},[n$]);(0,a.useEffect)(()=>{let e=ty.query.openComments;("1"===e||"true"===e)&&nF(!0)},[ty.query.openComments]);let[nB,nq]=(0,a.useState)(!1),[nH,nz]=(0,a.useState)(!1);(0,a.useLayoutEffect)(()=>{!tw||!tA||tk||th||null!=tu&&tu.character||ev.Pt.getInitialState(tw)},[tw,tA,tk,th,null==tu?void 0:tu.character]);let{settings:nU,isLoading:nW,updateSettings:nK,resetModelParams:nV,refresh:nG}=(0,tq.c)(tw||t,(null==r_?void 0:r_.settings)??(null==tu?void 0:tu.settings)),{selectedMods:nQ,fetchSelections:nY}=(0,tH.D)(tA?tw||t:void 0),nX=function(e){let[t,r]=(0,a.useState)(()=>tJ(e)),[n,o]=(0,a.useState)(()=>{try{let t=localStorage.getItem(`${tX(e)}-enabled`);return null===t||"true"===t}catch{return!0}});(0,a.useEffect)(()=>{r(tJ(e));try{let t=localStorage.getItem(`${tX(e)}-enabled`);o(null===t||"true"===t)}catch{}},[e]),(0,a.useEffect)(()=>(n?t0(t):t1(),()=>t1()),[n,t]);let s=(0,a.useCallback)(t=>{let a=Math.max(0,Math.min(100,Math.round(t)));r(a);try{localStorage.setItem(tX(e),String(a))}catch{}n&&t0(a)},[e,n]),i=(0,a.useCallback)(r=>{o(r);try{localStorage.setItem(`${tX(e)}-enabled`,String(r))}catch{}r?t0(t):t1()},[e,t]);return{opacity:t,enabled:n,setOpacity:s,setEnabled:i}}(tw||t),nJ=(0,t2.K$)(),nZ=function(){let[e,t]=(0,a.useState)(()=>(function(){try{let e=localStorage.getItem(t4);if(null===e)return!1;return"1"===e||"true"===e}catch{}return!1})());return{enabled:e,setEnabled:(0,a.useCallback)(e=>{t(e);try{localStorage.setItem(t4,e?"1":"0")}catch{}},[])}}(),n0=(0,a.useMemo)(()=>
30{if(!nU.bgEnabled)return;let e=function(e){let{selectedMods:t,selectedModBg:r,overrideBgImage:n,overrideBgMobile:a,characterBgImage:o,characterBgMobile:s,isMobile:i}=e;for(let e of t){let t=r.find(t=>t.id===e);if(!t)continue;let n=i&&t.bg_mobile||t.bg_image;if(n)return n}let l=i?a:n;return l||(i?s:o)}({selectedMods:nQ,selectedModBg:(null==r_?void 0:r_.selectedModBg)??(null==tu?void 0:tu.selectedModBg)??[],overrideBgImage:eS,overrideBgMobile:eC,characterBgImage:null==rP?void 0:rP.bg_image,characterBgMobile:null==rP?void 0:rP.bg_mobile,isMobile:tE});return e?(0,eV.C5)(e):void 0},[nU.bgEnabled,nQ,null==r_?void 0:r_.selectedModBg,null==tu?void 0:tu.selectedModBg,eS,eC,rP,tE]),n1=(0,a.useCallback)(e=>ry(e,tw||t||"",tg("module.unnamedCharacter")),[tw,t,tg]),n2=(0,a.useRef)({onMessagesLoad:()=>{},onMessagesClear:()=>{},onInitializeOpeningMessage:()=>{},onCancelStreaming:()=>{},getCurrentMessages:()=>[]}),{isOpen:n4,openModal:n5,closeModal:n3,handlePaymentComplete:n8,initialMode:n6,analyticsSource:n7}=(0,S.$)(),n9=(0,a.useCallback)(async()=>{if(!tA)return void rV();let e=C.useUserStore.getState().user;try{let t=await (0,I.qB)();(null==t?void 0:t.profile)&&(tF(t.profile),(0,I.MI)(tx,t),e=t.profile)}catch{}if(!(0,k.MT)(!0,null==e?void 0:e.totalRecharged,null==e?void 0:e.hasPaidMembershipCard,null==e?void 0:e.hasPublishedCharacter,null==e?void 0:e.hasInvitedUser))return;let t=tx.getQueryData(tK);try{t=await tx.fetchQuery({queryKey:tK,queryFn:ev.xM,staleTime:0})}catch{}(0,t7.wf)(t)||(n5(),E.default.error(tg("module.modelSelector.rechargeRequiredToSwitch")))},[tK,tA,rV,n5,tx,tF,tg]),ae=(0,a.useCallback)((e,t)=>{t6()&&(!function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:Date.now();try{window.localStorage.setItem(t8,(0,e$.XQ)(e))}catch{}}(),(0,E.default)(r=>(0,n.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:"8px",cursor:"pointer"},onClick:()=>{E.default.dismiss(r.id),rZ(!0)},children:[(0,n.jsx)("span",{children:"\uD83C\uDF81"}),(0,n.jsx)("span",{children:tg(`module.${e}`,{points:t})})]}),{duration:6e3,position:"top-center"}))},[tg]),{checkTaskCompletion:at,clearClaimableStages:ar,initializeTaskBaseline:an,tasksWithStages:aa}=function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},{enabled:t=!0,onStagesCompleted:r}=e,n=(0,l.jE)(),o=(0,C.useUserStore)(e=>{var t;return null==(t=e.user)?void 0:t.id}),[s,i]=(0,a.useState)([]),[d,c]=(0,a.useState)([]),[u,m]=(0,a.useState)(!1),p=(0,a.useRef)([]),h=(0,a.useRef)(null),g=(0,a.useRef)(0),f=(0,a.useCallback)(async()=>{if(!t)return},[t]),v=(0,a.useCallback)(async()=>{if(!t||!o)return[];let e=(0,e$.XQ)(Date.now());try{if(window.localStorage.getItem(eq(o))===e)return[]}catch{}h.current!==e&&(h.current=e,p.current=[],g.current=0),g.current+=1;let a=g.current,l=d.some(e=>"CHAT_10"===e.taskType&&e.stages.some(t=>!t.isCompleted&&e.currentProgress+a>=t.targetCount));if(a<10&&!l)return s;m(!0);try{let t=await n.fetchQuery({queryKey:eB(o),queryFn:eF.NJ.getDailyTasksWithStages,staleTime:0,gcTime:eF.Lf.cacheTime});g.current=0,c(t.tasks);let a=[];for(let e of t.tasks)for(let t of e.stages)t.canClaim&&!t.isClaimed&&a.push({stageId:t.id,taskTitle:e.title,stageNumber:t.stageNumber,targetCount:t.targetCount,rewardPoints:t.rewardPoints});let s=eH(t.tasks),l=p.current;if(0===l.length)p.current=s;else{let e=function(e,t){let r=[],n=new Map;for(let t of e)n.set(t.stageId,t);for(let e of t){let t=n.get(e.stageId);e.canClaim&&((null==t?void 0:t.canClaim)||r.push({stageId:e.stageId,taskTitle:e.taskTitle,stageNumber:e.stageNumber,targetCount:e.targetCount,rewardPoints:e.rewardPoints}))}return r}(l,s);p.current=s,e.length>0&&(null==r||r(e,t.tasks))}a.length>0&&i(a);try{!function(e){if(0===e.length)return!1;let t=!e.some(e=>e.stages.some(e=>e.canClaim&&!e.isClaimed)),r=e.every(e=>e.stages.every(e=>e.isCompleted));return t&&r}(t.tasks)?window.localStorage.removeItem(eq(o)):window.localStorage.setItem(eq(o),e)}catch{}return a}catch(e){return console.warn("[useTaskCompletion] Failed to check task completion:",e),[]}finally{m(!1)}},[t,r,n,s,d,o]);return{saveCurrentState:f,checkTaskCompletion:v,claimableStages:s,tasksWithStages:d,isChecking:u,clearClaimableStages:(0,a.useCallback)(()=>{i([]),c([]),p.current=[],h.current=null,g.current=0;try{o&&window.localStorage.removeItem(eq(o))}catch{}},[o]),initializeTaskBaseline:(0,a.useCallback)(e=>{c(e),p.current=eH(e),h.current=(0,e$.XQ)(Date.now())},[])}}({enabled:tA,onStagesCompleted:async(e,t)=>{if(e.length>0){let r=e.reduce((e,t)=>
30e+t.rewardPoints,0);r1(e),r4(t),ae("taskCompleteToast",r)}}}),ao=(0,a.useRef)(null);(0,a.useEffect)(()=>{if(!tA||!(null==tR?void 0:tR.id))return;let e=(0,e$.XQ)(Date.now()),t=`${tR.id}:${e}`;if(ao.current===t)return;let r=t6();(async()=>{try{let e=await tx.fetchQuery({queryKey:eB(tR.id),queryFn:eF.NJ.getDailyTasksWithStages,staleTime:0,gcTime:eF.Lf.cacheTime});ao.current=t,an(e.tasks);let n=[];for(let t of e.tasks)for(let e of t.stages)e.canClaim&&!e.isClaimed&&n.push({stageId:e.id,taskTitle:t.title,stageNumber:e.stageNumber,targetCount:e.targetCount,rewardPoints:e.rewardPoints});if(r&&n.length>0){let t=n.reduce((e,t)=>e+t.rewardPoints,0);r1(n),r4(e.tasks),ae("pendingRewardToast",t)}}catch(e){}})()},[an,tA,tx,ae,null==tR?void 0:tR.id]);let as=(0,a.useCallback)(async e=>{let t=await fetch(e,{credentials:"include",cache:"no-store",headers:{...(0,ed.getSessionTokenHeaders)()}}),r=await t.json();return{response:t,data:r}},[]),ai=(0,a.useCallback)(async e=>{try{let t=await fetch((0,ei.V$)(),{method:"POST",credentials:"include",cache:"no-store",headers:{"Content-Type":"application/json","X-Frontend-Context":"chat-preview",...(0,ed.getSessionTokenHeaders)()},body:JSON.stringify({id:e})}),r=await t.json();return{response:t,data:r}}catch(e){return console.error("[ChatModule] fetchOwnerCharacterForEdit network error:",e),{response:new Response(null,{status:0}),data:{success:!1,error:{code:"NETWORK_ERROR",message:tg("module.cannotLoadCharacter")}}}}},[tg]),al=(0,a.useCallback)(async e=>
30{if(!tw)return void rF({message:tg("module.invalidCharacterId"),code:"INVALID_ID"});if(tk){await tO(!0);let{response:e,data:t}=await ai(tw);if(t.success&&t.data){rR(n1(t.data)),rF(null);return}let r=t.error;return"object"==typeof r&&null!==r&&(r.message||r.code)?void rF({message:r.message||tg("module.cannotLoadCharacter"),code:r.code||(403===e.status?"FORBIDDEN":"UNAUTHORIZED")}):void rF({message:tg("module.cannotLoadCharacter"),code:"LOAD_FAILED"})}let t=e.replace(/\/+$/,""),{response:r,data:n}=await as(t);if(n.success&&n.data){rR(n1(n.data)),rF(null);return}let a=n.error,o="object"==typeof a&&null!==a?a.code:void 0,s=401===r.status||"UNAUTHORIZED"===o;if(!n.success&&s&&!th){await tO(!0);let{response:e,data:t}=await ai(tw);if(t.success&&t.data){rR(n1(t.data)),rF(null);return}let r=t.error;if("object"==typeof r&&null!==r&&(r.message||r.code))return void rF({message:r.message||tg("module.cannotLoadCharacter"),code:r.code||(403===e.status?"FORBIDDEN":"UNAUTHORIZED")})}let i=n.error,l="object"==typeof i&&null!==i?i.message:"string"==typeof i?i:void 0,d="object"==typeof i&&null!==i?i.code:n.code;rF({message:l||tg("module.characterLoadFailed"),code:d||"NOT_FOUND"})},[tw,tO,as,ai,tk,n1,th,tg]),ad=(0,a.useCallback)(async function(){let e=!(arguments.length>0)||void 0===arguments[0]||arguments[0],t=arguments.length>1&&void 0!==arguments[1]&&arguments[1];if(tw){e&&rL(!0),rF(null);try{if(!tk&&tA){let e=await ev.Pt.getInitialState(tw,{skipCache:t});if(e&&e.character){rT(e),rR(n1(e.character)),rF(null);return}}let e=t?`/api/characters/${tw}?_t=${Date.now()}`:`/api/characters/${tw}`;await al(e)}catch(e){console.error("Error loading character:",e),rF({message:e.message||tg("module.cannotLoadCharacter"),code:"ERROR"})}finally{e&&rL(!1)}}},[tw,al,tk,tA,n1]),ac=(0,a.useRef)(n1);(0,a.useEffect)(()=>{ac.current=n1},[n1]);let au=(0,a.useRef)(al);(0,a.useEffect)(()=>{au.current=al},[al]);let am=(0,a.useRef)(null);(0,a.useEffect)(()=>{let e=async()=>{if(!tw)return;let e="string"==typeof(null==rP?void 0:rP.id)?rP.id.trim():"";if(rP&&(e===tw||rP.title||rP.name)){am.current=tw,rL(!1);return}if(am.current===tw)return void rL(!1);if(null==tu?void 0:tu.character){rT(tu),rR(ac.current(tu.character)),rF(null),am.current=tw,rL(!1);return}if(te&&e5){rR(ac.current(e5)),am.current=tw,rL(!1);return}if(th){rL(!0),rF(null);try{await au.current(`/api/characters/${tw}`),am.current=tw}catch(e){console.error("[ChatModule] share snapshot character load failed:",e),rF({message:e.message||tg("module.loadFailed"),code:"ERROR"})}finally{rL(!1)}return}rL(!0),rF(null);try{if(tk)await au.current(`/api/characters/${tw}`);else{let e=(0,ev.l4)(tw),t=e?await e:await ev.Pt.getInitialState(tw);t&&t.character?(rT(t),rR(ac.current(t.character)),rF(null)):await au.current(`/api/characters/${tw}`),am.current=tw}}catch(e){console.error("Error loading initial state:",e);try{await au.current(`/api/characters/${tw}`),am.current=tw}catch(e){rF({message:e.message||tg("module.loadFailed"),code:"ERROR"})}}finally{rL(!1)}};tw&&e()},[tw,te,e5,tk,th,tu]),(0,a.useEffect)(()=>{rP&&!rA&&ta&&ta(rP)},[rP,rA,ta]);let ap="long_chat_model_switch_warned_v1",[ah,ag]=(0,a.useState)(!1),af=(0,a.useRef)(!1),av=(0,a.useRef)(""),{currentSessionId:ab,setCurrentSessionId:ay,loadSession:ax,startNewSession:aw,isLoadingSession:ak,isInitialLoad:aS,refreshSessionList:aC,removeSessionFromList:aI,sessionList:aj,isLoadingSessionList:aM,sessionListPagination:aN,loadMoreSessions:aE,incrementSessionMessageCount:a_,adjustSessionMessageCount:aT,messagesPagination:aP,loadMessagesPage:aR,isLoadingPage:aA,decrementMessageTotal:aL,hasBranchHistoryError:aO,retryBranchHistory:aF}=(0,eA.yx)({characterId:t,character:rP,onMessagesLoad:e=>{n2.current.onMessagesLoad(e)},onMessagesClear:()=>n2.current.onMessagesClear(),onInitializeOpeningMessage:()=>n2.current.onInitializeOpeningMessage(),onCancelStreaming:()=>n2.current.onCancelStreaming(),getCurrentMessages:()=>{var e,t;return(null==(e=(t=n2.current).getCurrentMessages)?void 0:e.call(t))??[]},initialSessions:null==r_?void 0:r_.sessions,initialRecentMessages:null==r_?void 0:r_.recentMessages,initialPendingAssistant:(null==r_?void 0:r_.pendingAssistant)??null,initialPagination:(null==r_?void 0:r_.pagination)?{...r_.pagination,hasArchived:r_.hasArchived??!1,archivedBefore:r_.archivedBefore??null}:void 0,deferInitialLoad:tA&&rA&&!r_&&!tk&&!th,skipInitialSessionLoad:!g||th}),a$=(0,a.useRef)(()=>{}),aD=(0,eR.T)(),aB=(0,a.useCallback)(()=>{let e=C.useUserStore.getState();if(e.isAuthenticated||e.user||(0,ed.getSessionToken)())return void e.refreshUserProfile().c
30atch(e=>{console.warn("[ChatModule] Auth refresh after quota mismatch failed:",e)});rV(),rY.current=!0;let r=tw||t,n=r?e6(r):null;n&&n.messages.length>0&&a$.current(n.messages)},[tw,t,rV]),{messages:aq,isLoading:aH,sendMessage:az,refreshMessage:aU,cancelStreaming:aW,cancelStreamingForNavigation:aK,isStreamActive:aV,initializeOpeningMessage:aG,clearMessages:aQ,setMessages:aY,openingStatements:aX,currentOpeningIndex:aJ,switchOpeningStatement:aZ,loadArchivedMessages:a0,isLoadingArchived:a1,archivedExhausted:a2,syncMobileStreamOnVisible:a4}=function(e){var t;let n,o,s,i,l,d,c,u,{character:m,sessionId:p,isStreamingEnabled:h,selectedModel:g,userName:f="ç¨æ·",onSessionIdChange:v,onInsufficientPoints:b,onQuotaExceeded:y,onModelDisabled:x,onPointsUpdate:w,onChatTrialUpdate:S,overrideOpeningStatement:I,modelParams:j,summaryThreshold:M,archivedBefore:N,characterId:_,recommendedModelId:T,lockedModelId:P,preferredDefaultModelId:R}=e,A=(0,a.useRef)(N??null);A.current=N??null;let L=_??(null==m?void 0:m.id)??null,O=T??(null==m?void 0:m.recommendedModelId)??null,F=(0,a.useRef)({characterId:L,recommendedModelId:O});F.current={characterId:L,recommendedModelId:O};let[B,q]=(0,a.useState)(!1),H=(0,a.useRef)(!1),z=(0,a.useRef)(Date.now()),W=(0,a.useRef)(!1),[G,Y]=(0,a.useState)(0),X=(0,a.useRef)(g);X.current=g;let ew=(0,a.useRef)(P);ew.current=P;let ek=(0,a.useRef)(R);ek.current=R;let eS=(0,a.useRef)(h);eS.current=h;let eC=(0,a.useRef)(j);eC.current=j;let eP=(0,a.useRef)(M);eP.current=M;let eR=(0,a.useRef)(null),eA=(0,a.useRef)(null),eL=(0,a.useRef)(0),eO=(0,a.useRef)(!1),eF=(0,a.useRef)(0),e$=(0,a.useRef)(!1),eD=(0,a.useRef)(!1),eB=(0,a.useRef)(new Set),eq=(0,a.useRef)(p);eq.current=p;let eH=(0,a.useRef)(null),ez=(0,a.useRef)(null),eU=(0,a.useRef)(null),eW=(0,a.useRef)(null),eK=(0,a.useRef)(null),eV=(0,a.useRef)(0),eG=(0,a.useRef)(!1),{messages:eQ,setMessages:eY,addMessage:eX,updateMessage:eJ,updateMessageByIndex:eZ,removeMessages:e0,clearMessages:e1,messagesRef:e2}=function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[],[t,r]=(0,a.useState)(e),n=(0,a.useRef)(t),o=(0,a.useCallback)(e=>{if("function"!=typeof e){n.current=e,r(e);return}r(t=>{let r=e(t);return n.current=r,r})},[]);(0,a.useEffect)(()=>{n.current=t},[t]);let s=(0,a.useCallback)(e=>{o(t=>[...t,e])},[]),i=(0,a.useCallback)(e=>{0!==e.length&&o(t=>[...t,...e])},[]),l=(0,a.useCallback)((e,t)=>{o(r=>r.map(r=>r.id===e?{...r,...t}:r))},[]),d=(0,a.useCallback)((e,t)=>{o(r=>e<0||e>=r.length?r:r.map((r,n)=>n===e?{...r,...t}:r))},[]),c=(0,a.useCallback)(e=>{o(t=>t.filter(t=>t.id!==e))},[]),u=(0,a.useCallback)(e=>{if(0===e.length)return;let t=new Set(e);o(e=>e.filter(e=>!t.has(e.id)))},[]),m=(0,a.useCallback)(()=>{o([]),n.current=[]},[]);return{messages:t,setMessages:o,addMessage:s,addMessages:i,updateMessage:l,updateMessageByIndex:d,removeMessage:c,removeMessages:u,clearMessages:m,messagesRef:n}}(),{handleStreamingResponse:e4,cancelStreaming:e5,didUserCancelStream:e3,resetUserCancelFlag:e8}=(0,eo.K)(),{buildApiParams:e6,sendStreamingRequest:e7,sendNonStreamingRequest:e9,abortRequest:te}=(n=(0,a.useRef)(null),o=(0,a.useCallback)(e=>{let{messages:t,character:r,sessionId:n,model:a,userName:o,streaming:s}=e,i=r.title??r.name??"è§è²",l={messages:t,model:a,stream:s,character_id:r.id,thinking_level:(0,ep._W)()};if(n&&(l.session_id=n),e.modelParams){let t=e.modelParams;t.temperature!==ec.DEFAULT_MODEL_PARAMS.temperature&&(l.temperature=t.temperature),t.topP!==ec.DEFAULT_MODEL_PARAMS.topP&&(l.top_p=t.topP),t.presencePenalty!==ec.DEFAULT_MODEL_PARAMS.presencePenalty&&(l.presence_penalty=t.presencePenalty),t.frequencyPenalty!==ec.DEFAULT_MODEL_PARAMS.frequencyPenalty&&(l.frequency_penalty=t.frequencyPenalty)}return e.summaryThreshold&&(l.summary_threshold=e.summaryThreshold),e.editFromMessageId&&(l.edit_from_message_id=e.editFromMessageId),el.v.debug("æå»º API åæ°",{model:a,streaming:s,hasSessionId:!!n,messageCount:t.length,userName:o,charName:i}),l},[]),s=(0,a.useCallback)(()=>{n.current&&n.current.abort();let e=new AbortController;return n.current=e,e},[]),i=(0,a.useCallback)(()=>n.current,[]),l=(0,a.useCallback)(async(e,t)=>{el.v.info("åéæµå¼è¯·æ±",{model:e.model,messageCount:e.messages.length});let n=(0,ei.L1)(),a=(0,em.B)(e),o=t??s().signal,i={"Content-Type":"application/json",...(0,ed.getSessionTokenHeaders)()};Object.assign(i,await (0,eu.D)());try{let{buildChatSecurityHeaders:e}=await Promise.resolve().then(r.bind(r,92721)),t=await e(a);t&&Object.assign(i,t)}catch{}for(let t=0;t<=1;t+=1){if(o.aborted)throw new DOMException("Cancelled","AbortError");let{signal:r,wasConnectTimedOut:s,cleanup:l}=function(e,t){let r,n=new AbortController;e.aborted?n.abort():e.addEventListener("abort",()=>{n.abort()},{once:!0});return{signal:n.signal,wasConnectTimedOut:()=>!1,cleanup:()=>{void 0!==r&&clearTimeout(r)}}}(o,0);try{let e=await fetch(n,{method:"POST",headers:i,body:JSON.stringify(a),credentials:"include",signal:r});return{body:e.body,headers:e.headers,status:e.status,ok:e.ok}}catch(i){let r=t>=1,n=o.aborted,a=s()&&!n;if(!(!r&&!n&&(a||function(e){if(!(e instanceof Error))return!1;let t=e.message.toLowerCase();return"TypeError"===e.name||t.includes("failed to fetch")||t.includes("networkerror")||t.includes("network request failed")||t.includes("load failed")||t.includes("timeout")}(i))))throw i;el.v.warn("æµå¼å»ºè¿è¶
æ¶æç½ç»é误ï¼éè¯ä¸æ¬¡",{attempt:t+1,timedOut:a,model:e.model}),await eh(700*(t+1))}finally{l()}}throw Error("streaming request failed")},[s]),{buildApiParams:o,sendStreamingRequest:l,sendNonStreamingRequest:(0,a.useCallback)(async e=>{el.v.info("åééæµå¼è¯·æ±",{model:e.model,messageCount:e.messages.length});let t=(0,ei.L1)(),r=(0,em.B)(e);return(await es.default.post(t,r,{headers:await (0,eu.D)()})).data},[]),abortRequest:(0,a.useCallback)(()=>{n.current&&(el.v.info("åæ¶è¯·æ±"),n.current.abort(),n.current=null)},[]),getAbortController:i,createAbortController:s}),tt=(0,a.useCallback)(e=>{if(eO.current){e.fromStreamEnd&&(e$.current=!0);return}eO.current=!0;let t=++eF.current,r=eL.current,n=(0,ej.i2)(),a=()=>t===eF.current&&r===eL.current&&(0,ej.GB)(n)&&(!e.resumePlaceholder||eq.current===e.sessionId);
30e$.current=!0===e.fromStreamEnd,eD.current=!1,H.current=!0,q(!0),(0,eM.nj)({sessionId:e.sessionId,aiMessageId:e.messageKey,assistantDbId:e.assistantDbId,partialContentLength:e.partialContentLength,excludeDbMessageId:e.excludeDbMessageId,...e.resumePlaceholder?{maxAttempts:eM.YV,intervalMs:eM.kl,maxIntervalMs:eM.fd,acceptFinalSnapshot:!0,deadlineMs:e.resumeDeadlineMs,onGiveUp:e.onGiveUp??(()=>{e.applyUpdate({text:(0,Q.p4)("chatStream.resumeTimedOut","ææªè·åå°è¿æ¡åå¤ãå¯ç¨åéæ°æå¼ä¼è¯æ¥çï¼éæ°çæä¼åèµ·æ°ç请æ±ã"),isStreaming:!1,streamingStatus:"completed",isPendingResume:!1,isError:!0,errorType:"network_error"})})}:{onGiveUp:e.onGiveUp},getLocalVisibleLength:()=>{var t;let r="number"==typeof e.messageKey&&e.messageKey>=0&&e.messageKey<e2.current.length&&(null==(t=e2.current[e.messageKey])?void 0:t.sender)==="character"?e2.current[e.messageKey]:e2.current.find(t=>t.id===e.messageKey);return(0,ex.L9)((null==r?void 0:r.text)??"").length},shouldAbort:()=>!a()||e3()||eD.current,canFinalize:()=>a()&&e$.current,updateMessage:(t,r)=>{a()&&e.applyUpdate(r)},onRecoveryStateChange:r=>{if(t===eF.current&&(eO.current=r,!r)){if(e.resumePlaceholder&&(eB.current.delete(e.messageKey),eW.current===e.messageKey&&(eW.current=null)),a())e$.current&&(eA.current=null),(e$.current||eD.current||e3())&&(H.current=!1,q(!1))}}})},[e3,e2]),tr=(0,a.useCallback)(()=>{var e;null!==ez.current&&(window.clearTimeout(ez.current),ez.current=null);let t=eU.current,r=eW.current??(null==(e=e2.current.find(e=>e.isStreaming&&e.resumeAssistantMessageId))?void 0:e.id)??null;(t||null!==r)&&(eU.current=null,eG.current=!1,eW.current=null,null!==r&&eB.current.delete(r),null==t||t.abort(),eF.current+=1,eO.current=!1,eD.current=!0,eL.current+=1,te(),eA.current=null,H.current=!1,q(!1))},[te,e2]);(0,a.useEffect)(()=>()=>{eV.current+=1,eK.current=null,tr()},[p,L,tr]),(0,a.useEffect)(()=>(0,ej.VN)(tr),[tr]);let tn=(0,a.useCallback)((e,t)=>{var r;let n=e.resumeAssistantMessageId??e.dbMessageId;if("string"!=typeof n)return;let a=new AbortController;eU.current=a;let o=++eL.current,s=(0,ej.i2)();eA.current=e.resumeRequestId??null;let i=()=>eU.current===a&&!a.signal.aborted&&o===eL.current&&(0,ej.GB)(s)&&eq.current===t,l=(0,eM.Gy)((null==(r=e.resumeRefresh)?void 0:r.startedAt)??e.timestamp.getTime()),d=e.resumeRefresh,c=e.text;H.current=!0,q(!0),eJ(e.id,{streamingStatus:"connecting",resumeSessionId:t,resumeAuthRevision:s}),(async()=>{let r=!1;try{r=await eI({sessionId:t,assistantMessageId:n,signal:a.signal,deadlineMs:l,expectedRequestId:d?e.resumeRequestId:void 0,onRequestId:t=>{i()&&(eA.current=t,eJ(e.id,{isPendingResume:!1,resumeRequestId:t}))},onUpdate:t=>{!i()||void 0!==t.text&&t.text.length<c.length&&t.isStreaming||(void 0!==t.text&&(c=t.text),eJ(e.id,(null==d?void 0:d.preserveBilling)?{...t,inputPoints:d.inputPoints??t.inputPoints,outputPoints:d.outputPoints??t.outputPoints,pendingSummaryPoints:d.pendingSummaryPoints??t.pendingSummaryPoints}:t))}})}finally{if(!i())return;eU.current=null,r?(eA.current=null,eW.current=null,eB.current.delete(e.id),H.current=!1,q(!1)):d?(eJ(e.id,{text:c||d.originalText,isStreaming:!1,isPendingResume:!1,streamingStatus:"completed",isTruncated:!0}),eA.current=null,eW.current=null,eB.current.delete(e.id),H.current=!1,q(!1)):(eJ(e.id,{isPendingResume:!c,isStreaming:!0}),tt({sessionId:t,messageKey:e.id,assistantDbId:n,partialContentLength:(0,ex.L9)(c).length,applyUpdate:t=>eJ(e.id,t),fromStreamEnd:!0,resumePlaceholder:!0,resumeDeadlineMs:l,...c?{onGiveUp:()=>eJ(e.id,{text:c,isStreaming:!1,isPendingResume:!1,streamingStatus:"completed",isTruncated:!0})}:{}}))}})().catch(()=>{el.v.error("ç»æµæ¢å¤å¼å¸¸")})},[tt,eJ]),ta=(0,a.useCallback)(function(e,t,r){var n;let a=arguments.length>3&&void 0!==arguments[3]&&arguments[3];eL.current+=1,eF.current+=1,eO.current=!1,eD.current=!0,eW.current=e,eG.current=!0,eK.current=null,eJ(e,{isStreaming:!0,resumeSessionId:t,resumeAssistantMessageId:r,resumeAuthRevision:(0,ej.i2)(),resumeRequestId:eA.current??void 0}),te(),(a||(null==(n=e2.current.find(t=>t.id===e))?void 0:n.resumeRefresh))&&eq.current===t||null==v||v(t),H.current=!0,q(!0)},[te,v,eJ,e2]),{handleApiError:to,handleFetchError:ts}=(t={onInsufficientPoints:b,onQuotaExceeded:y,onModelDisabled:x,updateMessage:eJ,updateMessageByIndex:eZ,removeMessages:e0,setMessages:eY},d=(0,a.useRef)(t),c=(0,a.useCallback)(()=>{try{var e;return(null==(e=C.useUserStore.getState().user)?void 0:e.id)??void 0}catch{return}},[]),(0,a.useEffect)(()=>{d.current=t},[t]),u=(0,a.useCallback)((e,t)=>(0,$.cA)(e,t),[]),{handleApiError:(0,a.useCallback)((e,t,r)=>{var n,a,o,s,i,l,u,m,p,h,g,f;let{messageId:v,messageIndex:b,isRefresh:y,originalMessage:x}=t,{onInsufficientPoints:w,onQuotaExceeded:k,onModelDisabled:S,updateMessage:C,updateMessageByIndex:I,removeMessages:j,setMessages:M}=d.current;if("AbortError"===e.name)return;if((null==(n=e.response)?void 0:n.status)===403&&(null==(o=e.response)||null==(a=o.data)?void 0:a.code)==="QUOTA_EXCEEDED"){V(),null==k||k(),y&&x&&M&&void 0!==b?M(e=>e.map((e,t)=>t===b?x:e)):j([v,v+1]);return}if((null==(s=e.response)?void 0:s.status)===410&&(null==(l=e.response)||null==(i=l.data)?void 0:i.code)==="MODEL_DISABLED"){let t=e.response.data.disabledModelName??(0,Q.p4)("chatHook.unknownModel","æªç¥æ¨¡å"),r=e.response.data.defaultModel??null;null==S||S(t,r),y&&x&&M&&void 0!==b?M(e=>e.map((e,t)=>t===b?x:e)):j([v,v+1]);return}if(J(null==(u=e.response)?void 0:u.data))return void Z(t,d.current.setMessages);if((0,$.Yi)(e)){E.default.error((0,Q.p4)("chatHook.sessionBusy","ä¸ä¸è½®åå¤ä»å¨çæï¼è¯·ç¨ååè¯")),y&&x&&M&&void 0!==b?M(e=>e.map((e,t)=>t===b?x:e)):j([v,v+1]);return}if((0,$.lS)(e)){let t=(0,$.ki)(e);w((null==t?void 0:t.currentBalance)??0,(null==t?void 0:t.requiredPoints)??0),y&&x&&M&&void 0!==b?M(e=>e.map((e,t)=>t===b?x:e)):j([v,v+1]);return}let N=(0,$.cA)(e,r),_=(null==(m=e.response)?void 0:m.data)&&"object"==typeof e.response.data?e.response.data:{},T=er(_.source),P=en(_)?ee(_):void 0,{title:R,text:A}=(0,D.eF)({formatted:N,explicitMessage:P}),L=ea(_);(0,$.nr)({user_id:c(),request_id:L,status_code:null==(p=e.response)?void 0:p.status,error_code:(null==(g=e.response)||null==(h=g.data)?void 0:h.code)??N.errorType,error_message:N.message,error_details:{type:"handleApiError",is_streaming:r,error_source:T,response_data:null==(f=e.response)?void 0:f.data},is_streaming:r}),E.default.error(et(N.errorType)??R);let O={text:A,isStreaming:!1,isError:!0,errorType:N.errorType,errorRequestId:L};y&&void 0!==b&&I?I(b,O):C(v+1,O)},[]),handleFetchError:(0,a.useCallback)(async(e,t,r)=>{let{messageId:n,messageIndex:a,isRefresh:o,originalMessage:s}=t,{onInsufficientPoints:i,onQuotaExceeded:l,onModelDisabled:u,updateMessage:m,updateMessageByIndex:p,removeMessages:h,setMessages:g}=d.current,f={};try{if("json"in e&&"function"==typeof e.json){let t=e.headers.get("content-type");(null==t?void 0:t.includes("application/json"))?f=await e.json():"text"in e&&"function"==typeof e.text&&(f={message:await e.text()})}}catch{}if(J(f))return void Z(t,g);if(409===e.status&&"CHAT_SESSION_BUSY"===f.code){(0,$.nr)({user_id:c(),request_id:f.requestId,status_code:409,error_code:"CHAT_SESSION_BUSY",error_message:(0,Q.p4)("chatHook.sessionBusy","ä¸ä¸è½®åå¤ä»å¨çæï¼è¯·ç¨ååè¯"),is_streaming:r}),E.default.error((0,Q.p4)("chatHook.sessionBusy","ä¸ä¸è½®åå¤ä»å¨çæï¼è¯·ç¨ååè¯")),o&&s&&g&&void 0!==a?g(e=>e.map((e,t)=>t===a?s:e)):h([n,n+1]);return}if(402===e.status&&"INSUFFICIENT_POINTS"===f.code){let e=f.currentBalance??0,t=f.requiredPoints??0;(0,$.nr)({user_id:c(),request_id:f.requestId,status_code:402,error_code:"INSUFFICIENT_POINTS",error_message:(0,Q.p4)("chatHook.insufficientPointsReport","积åä¸è¶³: ä½é¢{{current}}, éè¦{{required}}",{current:String(e),required:String(t)}),is_streaming:r}),i(e,t),o&&s&&g&&void 0!==a?g(e=>e.map((e,t)=>t===a?s:e)):h([n,n+1]);return}if(403===e.status&&"QUOTA_EXCEEDED"===f.code){(0,$.nr)({user_id:c(),request_id:f.requestId,status_code:403,error_code:"QUOTA_EXCEEDED",error_message:(0,Q.p4)("chatHook.quotaExceededReport","å
è´¹ä½éªæ¬¡æ°å·²ç¨å®"),is_streaming:r}),V(),null==l||l(),o&&s&&g&&void 0!==a?g(e=>e.map((e,t)=>t===a?s:e)):h([n,n+1]);return}if(410===e.status&&"MODEL_DISABLED"===f.code){let e=f.disabledModelName||(0,Q.p4)("chatHook.unknownModel","æªç¥æ¨¡å"),t=f.defaultModel;(0,$.nr)({user_id:c(),request_id:f.requestId,status_code:410,error_code:"MODEL_DISABLED",error_message:(0,Q.p4)("chatHook.modelDisabledReport","模åå·²ç¦ç¨: {{model}}",{model:e}),is_streaming:r}),null==u||u(e,t),o&&s&&g&&void 0!==a?g(e=>e.map((e,t)=>t===a?s:e)):h([n,n+1]);return}let v=Error(`HTTP ${e.status}`);v.response={status:e.status,data:f},v.isAxiosError=!0;let b=(0,$.cA)(v,r),y=ee(f),x=en(f)?y:void 0,w=function(e,t){let r=er(e.headers.get("x-error-source"));if("unknown"!==r)return r;let n=er(t.source);if("unknown"!==n)return n;let a=t.error;if(a&&"object"==typeof a){let e=er(a.source);if("unknown"!==e)return e}return"string"==typeof t.upstream_message||"string"==typeof t.upstream_request_id||a&&"object"==typeof a&&"string"==typeof a.upstream_message?"upstream_api":"platform"}(e,f),{title:k,text:S}=(0,D.eF)({formatted:b,explicitMessage:x}),C=ea(f,e.headers.get("x-request-id"));(0,$.nr)({user_id:c(),request_id:C,status_code:e.status,error_code:f.code||b.errorType,error_message:k,error_details:{type:"handleFetchError",is_streaming:r,error_source:w,response_data:f},model:f.debug?f.debug.requestModel:void 0,is_streaming:r}),E.default.error(et("upstream_api"===w?"upstream_api_error":b.errorType)??k);let I={text:S,isStreaming:!1,isError:!0,errorType:"upstream_api"===w?"upstream_api_error":b.errorType,errorRequestId:C};o&&void 0!==a&&p?p(a,I):m(n+1,I)},[]),extractErrorMessage:ee,formatError:u}),ti=(0,a.useMemo)(()=>{var e;return(e=I??(null==m?void 0:m.opening_statement))?Array.isArray(e)?e.filter(eE):eE(e)?[e]:[]:[]},[I,null==m?void 0:m.opening_statement]),tl=(0,a.useRef)(ti);tl.current=ti,(0,a.useEffect)(()=>
30{if(null==I)return;let e=ti[0]??"";eY(t=>{var r;return t.some(e=>e.isOpeningStatement)&&((null==(r=t.find(e=>e.isOpeningStatement))?void 0:r.text)??"")!==e?e?t.map(t=>t.isOpeningStatement?{...t,text:e}:t):t.filter(e=>!e.isOpeningStatement):t})},[I,ti,eY]);let td=(0,a.useCallback)(()=>(z.current+=1,z.current),[]),tc=(0,a.useCallback)(e=>{let t=e.filter(e=>!e.isOpeningStatement&&!e.isError);return(0,$.ub)(t)},[]),tu=(0,a.useCallback)(e=>{ti.length<=1||Y(t=>{let r;return r="prev"===e?t<=0?ti.length-1:t-1:t>=ti.length-1?0:t+1,eY(e=>e.map(e=>e.isOpeningStatement?{...e,text:ti[r]}:e)),r})},[ti,eY]),tm=(0,a.useCallback)(()=>{if(!m||e2.current.length>0)return;let e=tl.current[0]??"";if(!e)return;Y(0);let t={id:td(),text:e,sender:"character",timestamp:new Date,avatar:m.thumbnail,isOpeningStatement:!0};el.v.info("åå§åå¼åºç½",{characterId:m.id}),eX(t)},[m,e2,td,eX]),tp=(0,a.useCallback)(async(e,t)=>{var r,n,a,o,s,i,l,d,c;let u;if(!m||!e.trim()||H.current)return;let g=(0,k.Kc)(X.current,F.current,ew.current,ek.current);if(!g){eX({id:td(),text:"模åå è½½ä¸ï¼è¯·ç¨ååè¯",sender:"character",timestamp:new Date,avatar:m.thumbnail,isError:!0,errorType:"model_not_ready"}),null==t||null==(r=t.onSendFailed)||r.call(t);return}let b=++eL.current;H.current=!0,q(!0),e8(),eH.current=p,!p&&eR.current&&(eR.current=null);try{!C.useUserStore.getState().isAuthenticated&&(c={character_id:m.id},U||(U=!0,K("Guest Trial Started",c)))}catch{}let y=td(),I=td(),j={sessionId:void 0,assistantMessageId:void 0};W.current=!1;let M={id:y,text:e.trim(),sender:"user",timestamp:new Date,isQuickStartProfile:(null==t?void 0:t.isQuickStartProfile)===!0};eX(M),eX({id:I,text:"",sender:"character",timestamp:new Date,avatar:m.thumbnail,isStreaming:!0,streamingStatus:"connecting"});try{let e=[...e2.current];e.some(e=>e.id===y)||e.push(M);let r=tc(e);if(!(0,ef.v3)(r)){el.v.error("åéæ¶æ¯å¤±è´¥ï¼æ ¼å¼ååç¼ºå° user æ¶æ¯",{userMessageId:y}),e0([y,I]),E.default.error((0,Q.p4)("chatHook.sendMissingUserMessage","æ¶æ¯åé失败ï¼è¯·éè¯")),null==t||null==(n=t.onSendFailed)||n.call(t);return}let d=e6({messages:r,character:m,sessionId:p,model:g,userName:f,streaming:h,modelParams:eC.current,summaryThreshold:eP.current,editFromMessageId:null==t?void 0:t.editFromMessageId});if(h){let e=(0,em.B)(d);eA.current=e.request_id;let r=await e7(e);if(b!==eL.current)return void await (null==(a=r.body)?void 0:a.cancel());if(!r.ok){let e;try{e=await eT(r.body)}catch{}e_(e,p,eR);let n={status:r.status,headers:r.headers,json:async()=>e?JSON.parse(e):{},text:async()=>e??""};await ts(n,{messageId:y},h),null==t||null==(o=t.onSendFailed)||o.call(t);return}eA.current=eN(r.headers)??e.request_id;let n="relay"===r.headers.get("x-chat-transport");await e4({data:r.body,headers:r.headers,status:r.status},{messageId:I,onContentUpdate:(e,t)=>{b===eL.current&&eJ(I,{text:e,streamingStatus:t})},onMetadata:e=>{if(b===eL.current&&(n&&e.sessionId&&e.assistantMessageId&&(u=e.assistantMessageId,eJ(I,{resumeSessionId:e.sessionId,resumeAssistantMessageId:e.assistantMessageId,resumeRequestId:eA.current??void 0,resumeAuthRevision:(0,ej.i2)()})),"string"==typeof e.sessionId&&e.sessionId&&(eH.current=e.sessionId),!p&&e.sessionId&&e.sessionCreated&&(j.sessionId=e.sessionId,e.assistantMessageId&&(j.assistantMessageId=e.assistantMessageId)),e.userMessageId&&eJ(y,{dbMessageId:e.userMessageId}),e.chatTrial&&(null==S||S(e.chatTrial)),e.modelSwitched&&x&&!W.current)){W.current=!0;let{disabledModelName:t,defaultModel:r,reason:n}=e.modelSwitched;x(t,r,n)}},onComplete:e=>{var t,r,a,o,s,i,l,d,c,m,h,g,f,y,x,w,k,S,C,M,N,E,_,T,P,R,A,L,O;if(b!==eL.current)return;el.v.debug("onComplete æ¶å°ç»æ",{aiMessageId:I,hasPointsInfo:!!e.pointsInfo,inputPoints:null==(t=e.pointsInfo)?void 0:t.inputPoints,outputPoints:null==(r=e.pointsInfo)?void 0:r.outputPoints,modelName:null==(a=e.pointsInfo)?void 0:a.modelName,metadata:e.metadata});let F=e2.current.find(e=>e.id===I),$=(0,eg.DG)(e.content,null==F?void 0:F.text),D=(null==(o=e.metadata)?void 0:o.sessionId)??j.sessionId??p??p,B=!!$.trim()&&!$.trim().endsWith("[已忶]"),q=!!e.cancelled||$.trim().endsWith("[已忶]");if((0,eM.T9)({interrupted:e.interrupted,cancelled:q,text:$})&&D&&D){eJ(I,{text:$,isStreaming:!0,streamingStatus:"receiving",dbMessageId:e.dbMessageId,inputTokens:null==(i=e.pointsInfo)?void 0:i.inputTokens,outputTokens:null==(l=e.pointsInfo)?void 0:l.outputTokens,modelName:null==(d=e.pointsInfo)?void 0:d.modelName,modelId:null==(c=e.pointsInfo)?void 0:c.modelId,inputPoints:null==(m=e.pointsInfo)?void 0:m.inputPoints,outputPoints:null==(h=e.pointsInfo)?void 0:h.outputPoints,pendingSummaryPoints:null==(g=e.pointsInfo)?void 0:g.pendingSummaryPoints,isTruncated:e.isTruncated,freeRecoveryRemaining:null==(f=e.metadata)?void 0:f.freeRecoveryRemaining});let t=u??e.dbMessageId;return n&&t?void ta(I,D,t):(D&&B&&(null==v||v(D)),void tt({sessionId:D,messageKey:I,assistantDbId:e.dbMessageId,partialContentLength:(0,ex.L9)($).length,applyUpdate:e=>eJ(I,e),fromStreamEnd:!0}))}if(B||q?eJ(I,{text:$,isStreaming:!1,streamingStatus:"completed",dbMessageId:e.dbMessageId,inputTokens:null==(E=e.pointsInfo)?void 0:E.inputTokens,outputTokens:null==(_=e.pointsInfo)?void 0:_.outputTokens,modelName:null==(T=e.pointsInfo)?void 0:T.modelName,modelId:null==(P=e.pointsInfo)?void 0:P.modelId,inputPoints:null==(R=e.pointsInfo)?void 0:R.inputPoints,outputPoints:null==(A=e.pointsInfo)?void 0:A.outputPoints,pendingSummaryPoints:null==(L=e.pointsInfo)?void 0:L.pendingSummaryPoints,isResponseAbnormal:!!e.isResponseAbnormal||(0,eg.aW)($),isTruncated:e.isTruncated,freeRecoveryRemaining:null==(O=e.metadata)?void 0:O.freeRecoveryRemaining}):(eJ(I,{text:$.trim()||(0,Q.p4)("chatStream.emptyAiResponse","AI æªçæåå¤å
容ï¼å¯è½æ¯å
容触åäºå®å
¨è¿æ»¤ï¼è¯·å°è¯æ¢ä¸ªè¯é¢æåæ¢å
¶ä»æ¨¡å"),isStreaming:!1,streamingStatus:"completed",isError:!0,errorType:"empty_response",dbMessageId:e.dbMessageId,inputTokens:null==(y=e.pointsInfo)?void 0:y.inputTokens,outputTokens:null==(x=e.pointsInfo)?void 0:x.outputTokens,modelName:null==(w=e.pointsInfo)?void 0:w.modelName,modelId:null==(k=e.pointsInfo)?void 0:k.modelId,inputPoints:null==(S=e.pointsInfo)?void 0:S.inputPoints,outputPoints:null==(C=e.pointsInfo)?void 0:C.outputPoints,pendingSummaryPoints:null==(M=e.pointsInfo)?void 0:M.pendingSummaryPoints,isResponseAbnormal:!0,isTruncated:e.isTruncated,freeRecoveryRemaining:null==(N=e.metadata)?void 0:N.freeRecoveryRemaining}),!p&&D&&(eR.current=D)),D&&B&&(null==v||v(D)),!e.cancelled||e.dbMessageId||j.assistantMessageId||!j.sessionId||B||(ev.Pt.deleteChatSession(j.sessionId).catch(()=>{}),j.sessionId=void 0,j.assistantMessageId=void 0),e.cancelled&&B&&!(null==(s=e.pointsInfo)?void 0:s.outputPoints)){let e=D??p;e&&(async(t,r)=>{for(let n=0;n<t;n++){await new Promise(e=>setTimeout(e,r));try{let t=await ev.Pt.getPointsConsumptionMessages(e);if(t.success&&t.data.length>0){let e=t.data[0];if(e.outputPoints>0)return void eJ(I,{inputTokens:e.inputTokens,outputTokens:e.outputTokens,inputPoints:e.inputPoints,outputPoints:e.outputPoints,modelName:e.modelName??void 0,modelId:e.modelId??void 0,dbMessageId:e.id})}}catch(e){el.v.warn("åæ¶åæ¥è¯¢ç§¯åä¿¡æ¯å¤±è´¥",{error:e,attempt:n+1})}}el.v.warn("åæ¶å轮询积åä¿¡æ¯è¶
æ¶ï¼å端å¯è½å°æªå®ææ£è´¹",{sessionId:e})}
30)(5,2e3).catch(()=>{})}eA.current=null},onError:(e,t)=>{b===eL.current&&(eJ(I,{text:e,isStreaming:!1,isError:!0,errorType:t}),!p&&j.sessionId&&(eR.current=j.sessionId))},onPointsUpdate:e=>{b===eL.current&&(null==w||w(e))}})}else{let e=await e9(d),t=(null==(l=e.choices)||null==(i=l[0])||null==(s=i.message)?void 0:s.content)??"",r="number"==typeof e.inputTokens?e.inputTokens:void 0,n="number"==typeof e.outputTokens?e.outputTokens:void 0,a="string"==typeof e.modelName?e.modelName:void 0,o="string"==typeof e.modelId?e.modelId:void 0,c="number"==typeof e.inputPoints?e.inputPoints:void 0,u="number"==typeof e.outputPoints?e.outputPoints:void 0,m="number"==typeof e.pendingSummaryPoints?e.pendingSummaryPoints:void 0,p="string"==typeof e.assistantMessageId?e.assistantMessageId:void 0,h="string"==typeof e.userMessageId?e.userMessageId:void 0;if(e.chatTrial&&(null==S||S(e.chatTrial)),h&&eJ(y,{dbMessageId:h}),e.modelSwitched&&x){let{disabledModelName:t,defaultModel:r,reason:n}=e.modelSwitched;x(t,r,n)}(null==t?void 0:t.trim())?(eJ(I,{text:t,isStreaming:!1,streamingStatus:"completed",dbMessageId:p,inputTokens:r,outputTokens:n,modelName:a,modelId:o,inputPoints:c,outputPoints:u,pendingSummaryPoints:m,isResponseAbnormal:!0===e.response_abnormal,isTruncated:!0===e.truncated,freeRecoveryRemaining:e.freeRecoveryRemaining}),e.session_id&&"string"==typeof e.session_id&&(null==v||v(e.session_id))):e.session_id&&"string"==typeof e.session_id||p?(el.v.info("éæµå¼è¿å空å
容使 sessionId/assistantMessageIdï¼ä½ä¸ºæåå¤ç",{aiMessageId:I,dbMessageId:p,sessionId:e.session_id}),eJ(I,{text:"_AI æªçæåå¤å
容ï¼å¯è½æ¯å
容触åäºå®å
¨è¿æ»¤ï¼è¯·å°è¯æ¢ä¸ªè¯é¢æåæ¢å
¶ä»æ¨¡å_",isStreaming:!1,streamingStatus:"completed",isResponseAbnormal:!0,dbMessageId:p,inputTokens:r,outputTokens:n,modelName:a,modelId:o,inputPoints:c,outputPoints:u,pendingSummaryPoints:m,isTruncated:!0===e.truncated,freeRecoveryRemaining:e.freeRecoveryRemaining}),e.session_id&&"string"==typeof e.session_id&&(null==v||v(e.session_id))):(el.v.warn("éæµå¼è¿å空å
容䏿 sessionId/assistantMessageId",{aiMessageId:I}),eJ(I,{text:"ååºå
容为空ï¼è¯·éè¯",isStreaming:!1,isError:!0,errorType:"empty_response"})),"number"==typeof e.newBalance&&(null==w||w(e.newBalance))}}catch(e){if(b!==eL.current)return;if("AbortError"===e.name&&!e3()){let e=e2.current.find(e=>e.isStreaming),t=p??eH.current??j.sessionId??eR.current;if(e&&t){if(u)return void ta(e.id,t,u);tt({sessionId:t,messageKey:e.id,assistantDbId:"string"==typeof e.dbMessageId?e.dbMessageId:void 0,partialContentLength:(0,ex.L9)(e.text).length,applyUpdate:t=>eJ(e.id,t),fromStreamEnd:!0});return}}to(e,{messageId:y},h),"AbortError"!==e.name&&(null==t||null==(d=t.onSendFailed)||d.call(t))}finally{if(b!==eL.current)return;if(eO.current){e$.current||(eD.current=!0);return}eA.current=null,H.current=!1,q(!1),eY(e=>e.map(e=>e.isStreaming?{...e,isStreaming:!1,streamingStatus:"completed"===e.streamingStatus?e.streamingStatus:"completed"}:e))}},[m,p,h,g,f,td,eX,e2,tc,e6,e7,e9,e4,ts,to,eJ,e0,v,w,x,S,eY,tt,ta,e8,e3]),th=(0,a.useCallback)(async(e,t)=>{var r,n,a,o,s;let i;if(!m||H.current)return;let l=e2.current.findIndex(t=>t.id===e);if(-1===l)return void el.v.warn("å·æ°æ¶æ¯å¤±è´¥ï¼æ¶æ¯ä¸åå¨",{messageId:e});let d=e2.current[l];if("character"!==d.sender)return void el.v.warn("å·æ°æ¶æ¯å¤±è´¥ï¼åªè½å·æ° AI æ¶æ¯",{messageId:e});if((0,ey.$)(A.current,d))return void E.default.error((0,Q.p4)("module.messageArchivedTip","æ¶æ¯å¤ªä¹
è¿äºï¼æ æ³ç¼è¾"));if(d.isOpeningStatement){el.v.warn("å·æ°æ¶æ¯å¤±è´¥ï¼å¼åºç½ä¸æ¯æéæ°çæ",{messageId:e}),E.default.error((0,Q.p4)("chatHook.refreshOpeningNotSupported","å¼åºç½ä¸æ¯æéæ°çæ"));return}let c=d.dbMessageId,u="string"==typeof c&&c.trim().length>0,h=e2.current.slice(0,l),g=tc(h),b=(0,ef.HJ)({sessionId:p,pendingFailedSessionId:eR.current,hasOldDbId:u,hasUserContext:(0,ef.v3)(g)}),y=p??eR.current;if(!y&&!b){el.v.warn("å·æ°æ¶æ¯å¤±è´¥ï¼æ²¡æä¼è¯ IDï¼æ æ³éæ°çæ",{messageId:e}),E.default.error((0,Q.p4)("chatHook.refreshSessionNotReady","ä¼è¯å°æªå°±ç»ªï¼è¯·ç¨ååè¯"));return}let C=()=>{eZ(l,{text:d.text,isStreaming:!1,streamingStatus:"completed",dbMessageId:c,inputTokens:d.inputTokens,outputTokens:d.outputTokens,modelName:d.modelName,modelId:d.modelId,inputPoints:d.inputPoints,outputPoints:d.outputPoints})},I=++eL.current;H.current=!0,q(!0),e8(),eH.current=p,W.current=!1,eZ(l,{text:"",isStreaming:!0,streamingStatus:"connecting",isError:!1,errorType:void 0,isResponseAbnormal:!1,isPendingResume:!1,resumeSessionId:void 0,resumeAssistantMessageId:void 0,resumeRequestId:void 0,resumeAuthRevision:void 0,resumeRefresh:void 0,inputTokens:void 0,outputTokens:void 0,inputPoints:void 0,outputPoints:void 0,pendingSummaryPoints:void 0,modelName:void 0,modelId:void 0});let j=eS.current,M=Date.now(),N=(null==t?void 0:t.forceModelId)?t.forceModelId:(0,k.Kc)(X.current,F.current,ew.current,ek.current);if(!N){eZ(l,{text:d.text,isStreaming:!1,streamingStatus:"completed",dbMessageId:c,inputTokens:d.inputTokens,outputTokens:d.outputTokens,modelName:d.modelName,modelId:d.modelId,inputPoints:d.inputPoints,outputPoints:d.outputPoints}),H.current=!1,q(!1),el.v.warn("å·æ°æ¶æ¯å¤±è´¥ï¼æ¨¡åæªå è½½",{messageId:e});return}try{let e;try{e=b?g:await (0,ef.fn)({sessionId:y,messagesBeforeTarget:h,targetAssistantMessage:d})}catch(e){if(I!==eL.current)return;if(eZ(l,{text:d.text,isStreaming:!1,streamingStatus:"completed",isError:!1,errorType:void 0,dbMessageId:c,inputTokens:d.inputTokens,outputTokens:d.outputTokens,modelName:d.modelName,modelId:d.modelId,inputPoints:d.inputPoints,outputPoints:d.outputPoints}),e instanceof ef.h1)E.default.error((0,Q.p4)("chatHook.refreshContextIncomplete","æ æ³éæ°çæï¼ç¼ºå°å¯¹åºçç¨æ·æ¶æ¯ä¸ä¸æ"));else throw e;return}
30if(I!==eL.current)return;let s=e6({messages:e,character:m,sessionId:y,model:N,userName:f,streaming:j,modelParams:eC.current,summaryThreshold:eP.current});u&&(s.is_refresh=!0,s.refresh_assistant_message_id=c,(null==t?void 0:t.freeRecovery)===!0&&(s.free_recovery=!0));let k=(null==t?void 0:t.freeRecovery)===!0&&u,_=(e,t)=>k?t??e:e;if(j){let e,t=(0,em.B)(s);eA.current=t.request_id;let n=await e7(t);if(I!==eL.current)return void await (null==(r=n.body)?void 0:r.cancel());if(!n.ok){let e;try{e=await eT(n.body)}catch{}e_(e,p,eR);let t={status:n.status,headers:n.headers,json:async()=>e?JSON.parse(e):{},text:async()=>e??""};await ts(t,{messageId:l,messageIndex:l,isRefresh:!0,originalMessage:d},j);return}eA.current=eN(n.headers)??t.request_id;let a="relay"===n.headers.get("x-chat-transport");await e4({data:n.body,headers:n.headers,status:n.status},{messageId:l,messageIndex:l,onContentUpdate:(e,t)=>{I===eL.current&&eZ(l,{text:e,streamingStatus:t})},onMetadata:t=>{if(I!==eL.current)return;"string"==typeof t.sessionId&&t.sessionId&&(eH.current=t.sessionId),t.assistantMessageId&&(e=t.assistantMessageId);let r=eH.current??y;if(a&&r&&e&&(i={sessionId:r,assistantMessageId:e},eJ(d.id,{resumeSessionId:r,resumeAssistantMessageId:e,resumeAuthRevision:(0,ej.i2)(),resumeRequestId:eA.current??void 0,resumeRefresh:{startedAt:M,originalText:d.text,preserveBilling:k,inputPoints:d.inputPoints,outputPoints:d.outputPoints,pendingSummaryPoints:d.pendingSummaryPoints}})),t.chatTrial&&(null==S||S(t.chatTrial)),t.modelSwitched&&x&&!W.current){W.current=!0;let{disabledModelName:e,defaultModel:r,reason:n}=t.modelSwitched;x(e,r,n)}},onComplete:t=>{var r,n,a,o,s,m,h,g,f,b,x,w,k,S,j,M,N,E,T,P,R,A,L,O,F,$,D,B,q,H,z,U,W,K,V,G,Q,Y;if(I!==eL.current)return;let X=(0,eg.GV)((null==(r=t.content)?void 0:r.trim())??"");if(t.cancelled||"[已忶]"===X||(null==(n=t.content)?void 0:n.trim())==="[已忶]"||(null==(o=t.content)||null==(a=o.trim())?void 0:a.endsWith("[已忶]")))return void(X&&"[已忶]"!==X&&X.length>5?(el.v.info("å·æ°è¯·æ±å·²åæ¶ï¼ä¿çå·²è¾åºå
容",{messageIndex:l}),eZ(l,{text:t.content,isStreaming:!1,streamingStatus:"completed",dbMessageId:t.dbMessageId??c,inputTokens:(null==(m=t.pointsInfo)?void 0:m.inputTokens)??d.inputTokens,outputTokens:(null==(h=t.pointsInfo)?void 0:h.outputTokens)??d.outputTokens,modelName:(null==(g=t.pointsInfo)?void 0:g.modelName)??d.modelName,modelId:(null==(f=t.pointsInfo)?void 0:f.modelId)??d.modelId,inputPoints:(null==(b=t.pointsInfo)?void 0:b.inputPoints)??d.inputPoints,outputPoints:(null==(x=t.pointsInfo)?void 0:x.outputPoints)??d.outputPoints,pendingSummaryPoints:null==(w=t.pointsInfo)?void 0:w.pendingSummaryPoints})):(el.v.info("å·æ°è¯·æ±å·²åæ¶ï¼æ¢å¤åæ¶æ¯å¹¶è·³è¿å é¤",{messageIndex:l,oldDbMessageId:c}),eZ(l,{text:d.text,isStreaming:!1,streamingStatus:"completed",dbMessageId:c,inputTokens:d.inputTokens,outputTokens:d.outputTokens,modelName:d.modelName,modelId:d.modelId,inputPoints:d.inputPoints,outputPoints:d.outputPoints})));let J=(null==(s=t.metadata)?void 0:s.sessionId)??y??p;if((0,eM.T9)({interrupted:t.interrupted,cancelled:!1,text:t.content??""})&&J&&J){if(i){eJ(d.id,{text:X}),ta(d.id,i.sessionId,i.assistantMessageId,!0);return}eZ(l,{text:t.content??"",isStreaming:!0,streamingStatus:"receiving",dbMessageId:t.dbMessageId??c,inputTokens:null==(k=t.pointsInfo)?void 0:k.inputTokens,outputTokens:null==(S=t.pointsInfo)?void 0:S.outputTokens,modelName:null==(j=t.pointsInfo)?void 0:j.modelName,modelId:null==(M=t.pointsInfo)?void 0:M.modelId,inputPoints:null==(N=t.pointsInfo)?void 0:N.inputPoints,outputPoints:null==(E=t.pointsInfo)?void 0:E.outputPoints,pendingSummaryPoints:null==(T=t.pointsInfo)?void 0:T.pendingSummaryPoints}),tt({sessionId:J,messageKey:l,assistantDbId:t.dbMessageId,excludeDbMessageId:u?c:void 0,partialContentLength:(0,ex.L9)(t.content??"").length,applyUpdate:e=>eZ(l,e),fromStreamEnd:!0,onGiveUp:C});return}if(!X||"[已忶]"===X||X.startsWith("_AI æªçæåå¤å
容")||X.startsWith("â ï¸")){let r=e??t.dbMessageId;((null==(q=t.metadata)?void 0:q.sessionId)||r)&&t.content?(el.v.info("å·æ°è¿å空å
容使 metadataï¼æµå¼ï¼ï¼ä½ä¸ºæåå¤ç",{messageIndex:l,messageIdToUse:r,sessionId:null==(H=t.metadata)?void 0:H.sessionId}),eZ(l,{text:t.content,isStreaming:!1,streamingStatus:"completed",isResponseAbnormal:!!t.isResponseAbnormal,isTruncated:t.isTruncated,freeRecoveryRemaining:null==(z=t.metadata)?void 0:z.freeRecoveryRemaining,dbMessageId:r,inputTokens:null==(U=t.points
30Info)?void 0:U.inputTokens,outputTokens:null==(W=t.pointsInfo)?void 0:W.outputTokens,modelName:null==(K=t.pointsInfo)?void 0:K.modelName,modelId:null==(V=t.pointsInfo)?void 0:V.modelId,inputPoints:_(null==(G=t.pointsInfo)?void 0:G.inputPoints,d.inputPoints),outputPoints:_(null==(Q=t.pointsInfo)?void 0:Q.outputPoints,d.outputPoints),pendingSummaryPoints:_(null==(Y=t.pointsInfo)?void 0:Y.pendingSummaryPoints,d.pendingSummaryPoints)}),c&&r&&c!==r&&ev.Pt.deleteMessage(c).catch(e=>{el.v.warn("å 餿§æ¶æ¯å¤±è´¥",{oldDbMessageId:c,error:e})})):(el.v.warn("å·æ°è¿å空å
容䏿 metadataï¼æµå¼ï¼ï¼æ¢å¤æ§æ¶æ¯",{messageIndex:l,oldDbMessageId:c,newAssistantMessageId:e}),eZ(l,{text:d.text,isStreaming:!1,streamingStatus:"completed",dbMessageId:c,inputTokens:d.inputTokens,outputTokens:d.outputTokens,modelName:d.modelName,modelId:d.modelId,inputPoints:d.inputPoints,outputPoints:d.outputPoints}),r&&r!==c&&ev.Pt.deleteMessage(r).catch(e=>{el.v.warn("å é¤ç©ºæ¶æ¯å¤±è´¥",{dbMessageId:r,error:e})}))}else{eZ(l,{text:X,isStreaming:!1,streamingStatus:"completed",dbMessageId:t.dbMessageId,inputTokens:null==(P=t.pointsInfo)?void 0:P.inputTokens,outputTokens:null==(R=t.pointsInfo)?void 0:R.outputTokens,modelName:null==(A=t.pointsInfo)?void 0:A.modelName,modelId:null==(L=t.pointsInfo)?void 0:L.modelId,inputPoints:_(null==(O=t.pointsInfo)?void 0:O.inputPoints,d.inputPoints),outputPoints:_(null==(F=t.pointsInfo)?void 0:F.outputPoints,d.outputPoints),pendingSummaryPoints:_(null==($=t.pointsInfo)?void 0:$.pendingSummaryPoints,d.pendingSummaryPoints),isResponseAbnormal:!!t.isResponseAbnormal||(0,eg.aW)(t.content??""),isTruncated:t.isTruncated,freeRecoveryRemaining:null==(D=t.metadata)?void 0:D.freeRecoveryRemaining}),c&&t.dbMessageId&&c!==t.dbMessageId&&ev.Pt.deleteMessage(c).catch(e=>{el.v.warn("软å 餿§æ¶æ¯å¤±è´¥",{oldDbMessageId:c,error:e})});let e=(null==(B=t.metadata)?void 0:B.sessionId)??y??void 0;!p&&e&&(null==v||v(e),eR.current===e&&(eR.current=null))}eA.current=null},onError:(t,r)=>{I===eL.current&&(eZ(l,{text:d.text,isStreaming:!1,isError:!0,errorType:r,dbMessageId:c,inputTokens:d.inputTokens,outputTokens:d.outputTokens,modelName:d.modelName,modelId:d.modelId,inputPoints:d.inputPoints,outputPoints:d.outputPoints}),e&&e!==c&&ev.Pt.deleteMessage(e).catch(t=>{el.v.warn("å é¤é误æ¶å建çç©ºæ¶æ¯å¤±è´¥",{dbMessageId:e,error:t})}))},onPointsUpdate:e=>{I===eL.current&&(null==w||w(e))}})}else{let e=await e9(s),t=(null==(o=e.choices)||null==(a=o[0])||null==(n=a.message)?void 0:n.content)??"",r=e.assistantMessageId,i="number"==typeof e.inputTokens?e.inputTokens:void 0,u="number"==typeof e.outputTokens?e.outputTokens:void 0,m="string"==typeof e.modelName?e.modelName:void 0,h="string"==typeof e.modelId?e.modelId:void 0,g="number"==typeof e.inputPoints?e.inputPoints:void 0,f="number"==typeof e.outputPoints?e.outputPoints:void 0,b="number"==typeof e.pendingSummaryPoints?e.pendingSummaryPoints:void 0;if(e.chatTrial&&(null==S||S(e.chatTrial)),e.modelSwitched&&x){let{disabledModelName:t,defaultModel:r,reason:n}=e.modelSwitched;x(t,r,n)}(null==t?void 0:t.trim())?(eZ(l,{text:t,isStreaming:!1,streamingStatus:"completed",dbMessageId:r,inputTokens:i,outputTokens:u,modelName:m,modelId:h,inputPoints:_(g,d.inputPoints),outputPoints:_(f,d.outputPoints),pendingSummaryPoints:_(b,d.pendingSummaryPoints),isResponseAbnormal:!0===e.response_abnormal}),c&&r&&c!==r&&ev.Pt.deleteMessage(c).catch(e=>{el.v.warn("软å 餿§æ¶æ¯å¤±è´¥",{oldDbMessageId:c,error:e})})):e.session_id&&"string"==typeof e.session_id||r?(el.v.info("å·æ°è¿å空å
容使 sessionId/assistantMessageIdï¼éæµå¼ï¼ï¼ä½ä¸ºæåå¤ç",{messageIndex:l,newDbMessageId:r,sessionId:e.session_id}),eZ(l,{text:"_AI æªçæåå¤å
容ï¼å¯è½æ¯å
容触åäºå®å
¨è¿æ»¤ï¼è¯·å°è¯æ¢ä¸ªè¯é¢æåæ¢å
¶ä»æ¨¡å_",isStreaming:!1,streamingStatus:"completed",isResponseAbnormal:!0,dbMessageId:r,inputTokens:i,outputTokens:u,modelName:m,modelId:h,inputPoints:_(g,d.inputPoints),outputPoints:_(f,d.outputPoints),pendingSummaryPoints:_(b,d.pendingSummaryPoints)}),c&&r&&c!==r&&ev.Pt.deleteMessage(c).catch(e=>{el.v.warn("å 餿§æ¶æ¯å¤±è´¥",{oldDbMessageId:c,error:e})})):(el.v.warn("å·æ°è¿å空å
容䏿 sessionId/assistantMessageIdï¼éæµå¼ï¼ï¼æ¢å¤æ§æ¶æ¯",{messageIndex:l,oldDbMessageId:c}),eZ(l,{text:d.text,isStreaming:!1,streamingStatus:"completed",dbMessageId:c,inputTokens:d.inputTokens,outputTokens:d.outputTokens,modelName:d.modelName,modelId:d.modelId,inputPoints:d.inputPoints,outputPoints:d.outputPoints})),"number"==typeof e.newBalance&&(null==w||w(e.newBalance)),!p&&e.session_id&&"string"==typeof e.session_id&&(null==v||v(e.session_id),eR.current===e.session_id&&(eR.current=null))}}catch(e){if(I!==eL.current)return;if(i&&!e3())return void ta(d.id,i.sessionId,i.assistantMessageId,!0);if("AbortError"===e.name&&!e3()){let e=y??eH.current??p;if(e)return void tt({sessionId:e,messageKey:l,excludeDbMessageId:u?c:void 0,partialContentLength:(0,ex.L9)((null==(s=e2.current[l])?void 0:s.text)??"").length,applyUpdate:e=>eZ(l,e),fromStreamEnd:!0,onGiveUp:C})}to(e,{messageId:l,messageIndex:l,isRefresh:!0,originalMessage:d},j)}finally{if(I!==eL.current)return;if(eO.current){e$.current||(eD.current=!0);return}eA.current=null,H.current=!1,q(!1),eY(e=>e.map(e=>e.isStreaming?{...e,isStreaming:!1,streamingStatus:"completed"===e.streamingStatus?e.streamingStatus:"completed"}:e))}},[m,p,f,e2,e6,e7,e9,e4,ts,to,eJ,eZ,ta,v,w,x,S,eY,tt,e8,e3]),tg=(0,a.useCallback)(async()=>{var e;el.v.info("åæ¶æµå¼ä¼ è¾"),eL.current+=1,eF.current+=1,eO.current=!1,eD.current=!0;let t=eA.current;eA.current=null,eG.current=!1,null==(e=eU.current)||e.abort(),eU.current=null,null!==eW.current&&eB.current.delete(eW.current),eW.current=null;let r=e2.current.findIndex(e=>e.isStreaming),n=-1!==r?e2.current[r]:void 0;if((null==n?void 0:n.isPendingResume)&&!t)return eD.current=!0,eB.current.delete(n.id),eY(e=>e.filter(e=>
30e.id!==n.id)),H.current=!1,q(!1),!0;let a=-1!==r;a&&!t&&el.v.warn("åæ¶æµå¼ä¼ è¾å¤±è´¥ï¼å°æªåå¾ requestId");let o=t?ev.Pt.cancelChatStream(t):Promise.resolve(!a);e5(),te(),H.current=!1,q(!1),-1!==r&&((null==n?void 0:n.resumeSessionId)&&!n.text?eY(e=>e.filter(e=>e.id!==n.id)):eZ(r,{isStreaming:!1,streamingStatus:"completed",isPendingResume:!1}));try{let e=await o;return e||el.v.warn("æ§æµæªå¨è¶
æ¶å
ç¡®è®¤åæ¢",{requestId:t}),e}catch(e){return el.v.warn("åéæµå¼åæ¶ä¿¡å·å¤±è´¥",{error:e,requestId:t}),!1}},[e5,te,e2,eZ,eY]),tf=(0,a.useCallback)(()=>{let e=e2.current,t=e.find(e=>e.isStreaming&&e.resumeAssistantMessageId&&e.resumeSessionId),r=++eV.current;if(null!==eW.current||t||e===eK.current){null===eW.current&&t&&(eW.current=t.id),eK.current=e,tr();let n=eL.current,a=(0,ej.i2)(),o=eq.current;return()=>{r===eV.current&&n===eL.current&&(0,ej.GB)(a)&&(eK.current=null,o!==eq.current||e2.current!==e||H.current||(!o&&(null==t?void 0:t.resumeSessionId)&&(null==v||v(t.resumeSessionId)),eY([...e])))}}tg()},[tg,tr,e2,eY,v]),tv=(0,a.useCallback)(()=>H.current,[]);(0,a.useEffect)(()=>{if(H.current&&!eG.current||eO.current||eQ===eK.current)return;let e=eQ.find(e=>(e.isPendingResume||void 0!==e.resumeSessionId)&&e.isStreaming);if(!e||eB.current.has(e.id)||void 0!==e.resumeAuthRevision&&!(0,ej.GB)(e.resumeAuthRevision))return;let t=p??eq.current;if(!t||e.resumeSessionId&&e.resumeSessionId!==t)return;eG.current=!1,e8(),eB.current.add(e.id),eW.current=e.id;let r=e.id;"string"==typeof(e.resumeAssistantMessageId??e.dbMessageId)?tn(e,t):tt({sessionId:t,messageKey:r,partialContentLength:0,applyUpdate:e=>eJ(r,e),fromStreamEnd:!0,resumePlaceholder:!0,resumeDeadlineMs:(0,eM.Gy)(e.timestamp.getTime())})},[eQ,p,tt,tn,eJ,e8]);let[tb,ty]=(0,a.useState)(!1),[tx,tw]=(0,a.useState)(!1),tk=(0,a.useCallback)(async()=>{if(p){ty(!0);try{let e=e2.current[0],t=null==e?void 0:e.sentAt,r=t?t instanceof Date?t.getTime():1e12>Number(t)?1e3*Number(t):Number(t):void 0,{messages:n}=await ev.Pt.getArchivedSessionMessages(p,void 0!==r?{before:r}:{}),a=n.map(e=>{let t="";if(Array.isArray(e.content))t=e.content.join("\n");else if("string"==typeof e.content)try{let r=JSON.parse(e.content);t=Array.isArray(r)?r.join("\n"):e.content}catch{t=e.content}let r="user"===e.role,n=r?t:(0,eb.D)(t,{fixUnclosedFences:!0}),a=e.sent_at??e.created_at;return{id:e.id??`${p}-archived-${a}`,text:n,sender:r?"user":"character",timestamp:a?new Date(a):new Date,sentAt:a?new Date(a):void 0,dbMessageId:e.id,isFromColdArchive:!0}});a.length>0?eY(e=>[...a,...e]):tw(!0)}catch(e){console.error("[useChatMessages] loadArchivedMessages error:",e)}finally{ty(!1)}}},[p,e2,eY]);return{messages:eQ,isLoading:B,sendMessage:tp,refreshMessage:th,cancelStreaming:tg,cancelStreamingForNavigation:tf,isStreamActive:tv,initializeOpeningMessage:tm,clearMessages:e1,setMessages:eY,openingStatements:ti,currentOpeningIndex:G,switchOpeningStatement:tu,loadArchivedMessages:tk,isLoadingArchived:tb,archivedExhausted:tx,syncMobileStreamOnVisible:(0,a.useCallback)(()=>{null!==ez.current&&window.clearTimeout(ez.current);let e=eL.current,t=eV.current,r=(0,ej.i2)();ez.current=window.setTimeout(()=>{if(ez.current=null,e!==eL.current||t!==eV.current||!(0,ej.GB)(r)||e2.current===eK.current||eU.current||eO.current||e3())return;let n=e2.current.find(e=>e.isStreaming);if(!n||void 0!==n.resumeAuthRevision&&!(0,ej.GB)(n.resumeAuthRevision))return;let a=eq.current??eH.current??eR.current;if(a){if(n.resumeAssistantMessageId&&n.resumeSessionId===a&&void 0!==n.resumeAuthRevision&&(0,ej.GB)(n.resumeAuthRevision))return void ta(n.id,a,n.resumeAssistantMessageId);tt({sessionId:a,messageKey:n.id,assistantDbId:"string"==typeof n.dbMessageId?n.dbMessageId:void 0,partialContentLength:(0,ex.L9)(n.text).length,applyUpdate:e=>eJ(n.id,e)})}},500)},[e3,e2,tt,ta,eJ])}}({character:rP,sessionId:ab,isStreamingEnabled:rH,characterId:tw||t,recommendedModelId:(null==rP?void 0:rP.recommendedModelId)??null,selectedModel:(null==r$?void 0:r$.id)??null,lockedModelId:rM,preferredDefaultModelId:rN,userName:null==tR?void 0:tR.username,onSessionIdChange:e=>{ay(e),a_(e,2)},onInsufficientPoints:()=>{let e=r8.current;e&&r3(e),n5(),E.default.error(tg("module.insufficientPoints"))}
30,onQuotaExceeded:aB,onModelDisabled:(e,r,n)=>{(0,eQ.x$)(),tx.invalidateQueries({queryKey:eG.lH.aiModels.all});let a="error"===n?tg("module.modelErrorAutoSwitched",{model:e}):tg("module.modelDisabledAutoSwitched",{model:e});(0,E.default)(a,{icon:"â ï¸",duration:5e3}),tx.fetchQuery({queryKey:eG.lH.aiModels.active(),queryFn:eQ.DY,staleTime:3e5}).then(e=>{let n;r&&(n=e.find(e=>e.id===r.id)),!n&&e.length>0&&(n=e.find(e=>e.is_default)||e[0]),n&&(rD(n),(0,k.K4)(tw||t,n),window.dispatchEvent(new CustomEvent("model-disabled-switch",{detail:{model:n,models:e}})))}).catch(()=>{})},onPointsUpdate:aD,onChatTrialUpdate:rS,overrideOpeningStatement:Y,modelParams:{temperature:nU.temperature,topP:nU.topP,presencePenalty:nU.presencePenalty,frequencyPenalty:nU.frequencyPenalty},summaryThreshold:nU.summaryThreshold,archivedBefore:aP.archivedBefore}),a5=(0,a.useRef)(null);(0,a.useEffect)(()=>{let e=null==tR?void 0:tR.id,t=((null==tR?void 0:tR.totalRecharged)??0)>0||(null==tR?void 0:tR.hasPaidMembershipCard)===!0,r=aq.some(e=>!0===e.isTruncated&&"user"!==e.sender);e&&t&&r&&a5.current!==e&&(a5.current=e,(0,X.v8)(),(0,ev.sS)().then(t=>{a5.current===e&&(0,X.qP)(t.remaining)}).catch(t=>{console.error("[Chat] free recovery quota:",t),a5.current===e&&(a5.current=null)}))},[aq,null==tR?void 0:tR.hasPaidMembershipCard,null==tR?void 0:tR.id,null==tR?void 0:tR.totalRecharged]);let a3=(0,a.useRef)(new Map),a8=(0,a.useMemo)(()=>(function(e,t,r){let n=new Map;if(!Array.isArray(t)||0===t.length)return n;let a=new Set,o=new Map,s=-1,i="";for(let l of e){let e="user"===l.role||"assistant"===l.role?l.role:"user"===l.sender?"user":"character"===l.sender?"assistant":null;if("user"===e){i=v(l);continue}if("assistant"!==e)continue;s+=1;let d=function(e){let{rules:t,userText:r,assistantText:n,shownRuleIds:a,lastShownAiIndexByRule:o,currentAiIndex:s}=e;for(let e of t){var i;if(!e.enabled||!Array.isArray(e.assets)||0===e.assets.length)continue;let t=(i=e.triggerSource,"user"===i?r?[r]:[]:"assistant"===i?n?[n]:[]:[r,n].filter(e=>e.trim().length>0));if(!function(e,t){let r=e.triggerKeywords.map(e=>e.trim()).filter(Boolean);return 0!==r.length&&0!==t.length&&("all"===e.matchMode?r.every(e=>t.some(t=>f(t,e))):r.some(e=>t.some(t=>f(t,e))))}(e,t)||!function(e,t,r,n){if("once_per_session"===e.frequency)return!t.has(e.id);if("cooldown"===e.frequency){let t=r.get(e.id);return void 0===t||n-t>=Math.max(1,e.cooldownTurns??1)}return!0}(e,a,o,s))continue;let l=e.assets.filter(e=>"string"==typeof e.url&&e.url.trim().length>0);if(0!==l.length)return{rule:{...e,assets:l}}}return null}({rules:t,userText:i,assistantText:v(l),shownRuleIds:a,lastShownAiIndexByRule:o,currentAiIndex:s});if(d){let e=d.rule.assets;if(r){let t=function(e,t){let r=t.assets.map(e=>e.url).join(",");return`${e}::${t.id}::${t.randomPickCount??"all"}::${r}`}(l.id,d.rule),n=r.get(t);n?e=n:(e=function(e,t){let r=e.filter(e=>"string"==typeof e.url&&e.url.trim().length>0);return 0===r.length?[]:null!=t&&t>0&&r.length>1?function(e,t){let r=e.filter(e=>"string"==typeof e.url&&e.url.trim().length>0);if(0===r.length)return[];let n=Math.max(1,Math.min(t,r.length));if(n>=r.length)return r;let a=[...r];for(let e=a.length-1;e>0;e-=1){let t=Math.floor(Math.random()*(e+1));[a[e],a[t]]=[a[t],a[e]]}return a.slice(0,n)}(r,t):r}(d.rule.assets,d.rule.randomPickCount),r.set(t,e))}n.set(l.id,{...d.rule,assets:e}),a.add(d.rule.id),o.set(d.rule.id,s)}}return n})(aq,(null==rP?void 0:rP.cg_book)??[],a3.current),[aq,null==rP?void 0:rP.cg_book]),a6=(0,a.useMemo)(()=>{let e=eD??(null==rP?void 0:rP.regex_replaces);return(null==e?void 0:e.length)?aq.map(t=>{let r=(0,h.zK)(t),n="string"==typeof t.text?t.text:t.content??"",a=(0,w.tN)(n,e,r);return a===n?t:{...t,text:a,content:a,sourceText:n}}):aq},[aq,eD,null==rP?void 0:rP.regex_replaces]);(0,a.useEffect)(()=>{if(!af.current&&!(aP.totalPages<=2)){try{if("1"===localStorage.getItem(ap)){af.current=!0;return}}catch{}af.current=!0,ag(!0)}},[aP.totalPages]);let a7=(0,a.useCallback)(e=>e.map(e=>{let t=String(e.id??""),r="string"==typeof e.dbMessageId?e.dbMessageId:"",n=e.sentAt?new Date(e.sentAt).getTime():0,a=e.text??e.content??"";return`${t}|${r}|${n}|${a.length}`}).join("^"),[]),a9=(0,a.useCallback)(e=>{if(n2.current.getCurrentMessages().some(e=>e.isStreaming)&&aV())return;let t=a7(e);t!==av.current&&(av.current=t,aY(e))},[a7,aY,aV]);n2.current={onMessagesLoad:a9,onMessagesClear:aQ,onInitializeOpeningMessage:aG,onCancelStreaming:aK,getCurrentMessages:()=>aq},(0,a.useEffect)(()=>{av.current=""},[ab]),(0,a.useEffect)(()=>{let e=()=>{"u">typeof document&&"visible"===document.visibilityState&&a4()};return document.addEventListener("visibilitychange",e),window.addEventListener("pageshow",e),()=>{document.removeEventListener("visibilitychange",e),window.removeEventListener("pageshow",e)}},[a4]);let oe=G??(null==rP?void 0:rP.builtInCss)??"";!function(e){let{characterId:t,builtInCss:r,enabled:n=!0}=e;(0,a.useEffect)(()=>{var e,a,o;let s;if(!n||"u"<typeof document||!t)return;let i=`character-builtin-css-${t}`;if(!r||""===r.trim()){let e=document.getElementById(i);e&&e.remove();return}let l=(0,e9.X)(r).replace(/\\\\/g,"\\"),d="";try{d=function(e,t){if(!e||"string"!=typeof e)return"";let r=(null==t?void 0:t.scopeSelector)??"#installedBuiltInCss",n=(null==t?void 0:t.constrainFixedElements)??!1;try{let t=function e(t,r){let n=[],a=0;for(;a<t.length;){let o=t.slice(a).match(/^\s+/);if(o){n.push(o[0]),a+=o[0].length;continue}if("/*"===t.slice(a,a+2)){let e=t.indexOf("*/",a+2);if(-1===e){n.push(t.slice(a));break}n.push(t.slice(a,e+2)),a=e+2;continue}let s=t.slice(a).match(/^@(-webkit-|-moz-|-o-)?keyframes\s+[\w-]+\s*\{/i);if(s){let e=e7(t,a+s[0].length-1);n.push(s[0].slice(0,-1)+e),a+=s[0].length-1+e.length;continue}let i=t.slice(a).match(/^@media\s+[^{]+\{/i);if(i){let o=a+i[0].length-1,s=e7(t,o),l=e(s.slice(1,-1),r);n.push(i[0].slice(0,-1)+"{"+l+"}"),a=o+s.length;continue}
30let l=t.slice(a).match(/^@supports\s+[^{]+\{/i);if(l){let o=a+l[0].length-1,s=e7(t,o),i=e(s.slice(1,-1),r);n.push(l[0].slice(0,-1)+"{"+i+"}"),a=o+s.length;continue}let d=t.slice(a).match(/^@import\s+(?:url\s*\([^)]*\)|['"][^'"]*['"])\s*;?/i);if(d){n.push(d[0]),a+=d[0].length;continue}let c=t.slice(a).match(/^@[\w-]+\s*[^{;]*[{;]/);if(c){if(c[0].endsWith("{")){let e=a+c[0].length-1,r=e7(t,e);n.push(c[0].slice(0,-1)+r),a=e+r.length}else n.push(c[0]),a+=c[0].length;continue}let u=t.slice(a).match(/^([^{}]+)\{/);if(u){let e=u[1],o=a+u[0].length-1,s=e7(t,o),i=function(e,t){return(function(e){let t=[],r="",n=0;for(let a of e)"("===a||"["===a?(n++,r+=a):")"===a||"]"===a?(n--,r+=a):","===a&&0===n?(t.push(r),r=""):r+=a;return r&&t.push(r),t})(e).map(e=>{let r=e.trim();return r?function(e,t){if(e.startsWith(t))return e;if(/^:root(?=$|[\s.#:\[>+~])/.test(e))return t+e.slice(5);for(let r of["html","body"]){if(e===r)return t+" "+r;if(e.startsWith(r+" ")||e.startsWith(r+":")||e.startsWith(r+".")||e.startsWith(r+"#")||e.startsWith(r+"["))return t+" "+e}return"*"===e?t+" *":t+" "+e}(r,t):""}).filter(Boolean).join(", ")+" "}(e,r);n.push(i+s),a=o+s.length;continue}n.push(t[a]),a++}return n.join("")}(e,r);return n&&(t+=` 31/* 约æ fixed å®ä½ç颿¿å ç´ ï¼é¿å è¦çæ 颿 åè¾å ¥æ¡ */ 32${r} .panel[open], 33${r} [class*="panel"][open], 34${r} details.panel[open] { 35 top: var(--chat-panel-top, 50px) !important; 36 max-height: var(--chat-panel-max-height, calc(100dvh - 120px)) !important; 37 overflow-y: auto !important; 38} 39 40/* æªå±å¼ç¶æç颿¿ä¿æåæä½ç½® */ 41${r} .panel:not([open]), 42${r} [class*="panel"]:not([open]), 43${r} details.panel:not([open]) { 44 max-height: var(--chat-panel-max-height, calc(100dvh - 120px)) !important; 45} 46`),t}catch(t){return console.warn("[scopeCss] CSS 转æ¢å¤±è´¥ï¼è¿ååå§ CSS:",t),e}}(l,{scopeSelector:"#installedBuiltInCss",constrainFixedElements:!1})}catch(e){console.error("[useBuiltInCss] Failed to scope CSS:",e),d=l}let c=(a=d,o=document.baseURI,URL.createObjectURL(new Blob([((s=tt()(a)).walk((e,t,r)=>{if("function"===e.type&&"url"===e.value.toLowerCase()&&!e.unclosed){let t=e.nodes.filter(e=>"space"!==e.type&&"comment"!==e.type),r=t[0],n=1===t.length&&(null==r?void 0:r.type)==="string"?r.value:t.every(e=>"word"===e.type||"div"===e.type)?tt().stringify(e.nodes).trim():null;if(r&&null!==n){let t=tr(n,o);null!==t&&(e.nodes=[{...r,type:"string",quote:'"',value:t}])}return!1}if("function"===e.type&&/^(?:-webkit-)?image-set$/i.test(e.value))for(let t of e.nodes){if("string"!==t.type)continue;let e=tr(t.value,o);null!==e&&(t.quote='"',t.value=e)}if("string"===e.type){let n=t-1;for(;n>=0&&["space","comment"].includes(r[n].type);)n-=1;let a=r[n];if((null==a?void 0:a.type)==="word"&&"@import"===a.value.toLowerCase()){let t=tr(e.value,o);null!==t&&(e.quote='"',e.value=t)}}}),s.toString())],{type:"text/css;charset=utf-8"}))),u=document.createElement("link");return u.id=i,u.rel="stylesheet",u.setAttribute("referrerpolicy","no-referrer"),u.href=c,u.setAttribute("data-character-id",t),u.onerror=()=>console.warn("[useBuiltInCss] stylesheet load failed:",t),null==(e=document.getElementById(i))||e.remove(),document.head.appendChild(u),()=>{u.remove(),URL.revokeObjectURL(c)}},[t,r,n])}({characterId:(null==rP?void 0:rP.id)??"",builtInCss:oe,enabled:!!oe});let ot=(0,a.useRef)(!1);(0,a.useEffect)(()=>{ot.current=!1},[tw,t,tm]),(0,a.useEffect)(()=>{rP&&(null==tm?void 0:tm.length)&&!ot.current&&(ot.current=!0,aY(tm.map(e=>({...e,avatar:"character"===e.sender?e.avatar??rP.thumbnail:e.avatar}))))},[rP,tm,aY]),(0,a.useEffect)(()=>{if((null==tm||!tm.length)&&rP&&!ak&&0===aq.length){var e,t;let r=ab?(null==(e=aj.find(e=>e.id===ab))?void 0:e.messageCount)??0:(null==(t=aj[0])?void 0:t.messageCount)??0,n=aP.total;r>0||n>0||aG()}},[rP,aq.length,aG,ak,ab,aj,aP.total,tm]);let or=(0,a.useRef)(null);(0,a.useEffect)(()=>{or.current=null},[tw,t]),(0,a.useEffect)(()=>{if((null==tm?void 0:tm.length)||tA||!rP||!(tw||t))return;let e=tw||t;if(or.current===e)return;or.current=e;let r=e6(e);r&&r.messages.length>0&&a$.current(r.messages)},[tA,rP,tw,t]);let on=(0,a.useRef)(!1);(0,a.useEffect)(()=>{aq.length>0&&!on.current&&(on.current=!0)},[aq]);let oa=(0,a.useRef)(!1),oo=(0,a.useRef)(0);(0,a.useEffect)(()=>{oo.current=0},[tw,t]),(0,a.useEffect)(()=>
46{if(oa.current&&!aH&&!tA&&(tw||t)){let e=aq.length;if(e>=2&&e>oo.current){let r=aq[e-1],n=aq[e-2];if("user"===n.sender&&n.text&&"character"===r.sender&&!r.isError&&!r.isOpeningStatement&&r.text){let a=tw||t,o=(null==rP?void 0:rP.title)||(null==rP?void 0:rP.name)||"";e8(a,o,"user",n.text),e8(a,o,"assistant",r.text),oo.current=e}}}oa.current=aH},[aH,tA,t,tw,rP,aq]);let os=(0,a.useCallback)(e=>{if(!rP||0===e.length)return;let t=[],r=aX[0]??"";r&&t.push({id:`opening-${Date.now()}`,text:r,sender:"character",timestamp:new Date,avatar:rP.thumbnail,isOpeningStatement:!0}),e.forEach((e,r)=>{t.push({id:`guest-${Date.now()}-${r}`,text:e.content,sender:"user"===e.role?"user":"character",timestamp:new Date(e.sentAt),avatar:"assistant"===e.role?rP.thumbnail:void 0})}),aY(t)},[rP,aX,aY]);(0,a.useEffect)(()=>{a$.current=os},[os]);let oi=(0,a.useRef)(!1);(0,a.useEffect)(()=>{if(!tA||oi.current)return;let e=Object.values(e3().byCharacter).filter(e=>e.messages.length>0).sort((e,t)=>e.characterId.localeCompare(t.characterId));if(0===e.length){oi.current=!0;return}oi.current=!0;let r=tw||t;(async()=>{try{let t=await fetch("/api/chat/import-history",{method:"POST",headers:{"Content-Type":"application/json",...(0,ed.getSessionTokenHeaders)()},credentials:"include",body:JSON.stringify({sessions:e.map(e=>({character_id:e.characterId,messages:e.messages}))})}),n=await t.json();if(!t.ok)return void(409===t.status&&(null==n?void 0:n.code)==="ALREADY_IMPORTED"?oi.current=!0:oi.current=!1);if(n.success&&Array.isArray(n.imported)&&n.imported.length>0){await aC();let t=r?n.imported.find(e=>e.character_id===r):void 0;if(null==t?void 0:t.session_id){ay(t.session_id);let n=e.find(e=>e.characterId===r);(null==n?void 0:n.messages.length)&&a$.current(n.messages)}try{localStorage.removeItem(e4)}catch{}}else oi.current=!1}catch(e){console.error("导å
¥è®¿å®¢è天记å½å¤±è´¥:",e),oi.current=!1}})()},[tA,t,tw,ay,aC]);let ol=(0,a.useCallback)(()=>rz(e=>!e),[]);(0,a.useCallback)(()=>rq(e=>!e),[]),(0,a.useCallback)(()=>rq(!1),[]);let od=(0,a.useCallback)(async e=>{await n8(e),e.success&&await tO()},[n8,tO]),oc=(0,a.useCallback)(async e=>{try{let t=await eF.NJ.claimStageRewardsBatch(e);return t.totalPoints>0?(tO().catch(()=>{}),E.default.success(tg("module.rewardClaimed",{points:t.totalPoints}))):(0,E.default)(tg("module.rewardAlreadyClaimed")),t.totalPoints}catch(e){throw e}},[tO]),ou=(0,a.useCallback)(()=>{rZ(!1),r1([]),r4([]),ar()},[ar]),om=(0,a.useCallback)(()=>{let e=ty.asPath;ty.replace((0,M.Zi)(e))},[ty]),op=(0,a.useCallback)(()=>{rK.current=!1,rW(!1),rQ(null)},[]),oh=(0,a.useCallback)(()=>{if(rK.current)return void window.history.back();let e=()=>{clearTimeout(t),window.removeEventListener("popstate",e)};window.addEventListener("popstate",e),window.history.back();let t=setTimeout(()=>{window.removeEventListener("popstate",e),rE()},300)},[rE]),og=(0,a.useCallback)(async e=>{try{let t=await eJ.userApi.quickRegister(null==e?void 0:e.captchaToken,null==e?void 0:e.captchaAnswer);if(!t.success)throw Error(tg("module.registerFailed"));tF(t.user),(0,u.Ru)(),await tO(!0),E.default.success(t9.Nh?tg("module.registerSuccessBindEmail",{points:t9.No}):tg("module.registerSuccessBindEmailNoReward"))}catch(e){if(e instanceof eZ.I)throw e;throw e instanceof Error?e:Error(tg("module.registerFailed"))}},[tO,tF,tg]),of=(0,a.useCallback)(async()=>{if(r5.trim()&&!aH){r8.current=r5,r3("");try{var e;await ov(r5),null==(e=r6.current)||e.scrollToBottom("smooth")}finally{r8.current=null}}},[r5,aH]),ov=(0,a.useCallback)(async(e,t)=>{if(!rv(rP)){if(tA||(rQ(e),rY.current=!1),tA&&aP.totalPages>1&&aP.page<aP.totalPages){await aR(aP.totalPages,{force:!0});let e=null==t?void 0:t.editFromMessageId;e&&aY(t=>{let r=t.findIndex(t=>(t.dbMessageId??t.id)===e);return r>=0?t.slice(0,r):t})}await az(e,t),tA||rY.current||rQ(null),tA&&setTimeout(async()=>{try{await at()}catch(e){}},1e3)}},[tA,rP,az,at,aP,aR,aY]),ob=(0,a.useCallback)(()=>{nv("edit"),ng(!0)},[]),oy=(0,a.useCallback)(e=>ov(e,{isQuickStartProfile:!0}),[ov]),ox=(0,a.useRef)(ov);ox.current=ov;let ow=(0,a.useMemo)(()=>{if(!tM)return;let e=(ew??(null==rP?void 0:rP.suggested_questions)??[])[0],t={selector:'[data-tour="chat-compose"]',title:tg("module.composeTourTitle"),description:tg("module.composeTourDescription"),side:"top",beforeEnter:()=>nz(!1)};return e?[{selector:'[data-tour="opening-statement-select"]',title:tg("module.quickStartTourTitle"),description:tg("module.quickStartTourDe
46scription"),side:"bottom"},{selector:'[data-tour="suggested-question-0"]',title:tg("module.firstSuggestionTourTitle"),description:tg("module.firstSuggestionTourDescription"),side:"bottom",beforeEnter:()=>nz(!0),onLeaveNext:()=>ox.current(e),onLeavePrev:()=>nz(!1)},t]:[t]},[tM,rP,ew,tg,tv]),ok=(0,a.useMemo)(()=>{if(tM)return;let e=ew??(null==rP?void 0:rP.suggested_questions)??[];if(0===e.length)return;let t={selector:'[data-tour="chat-compose"]',title:tg("module.composeTourTitle"),description:tg("module.composeTourDescription"),side:"top"};return e[0]?[{selector:'[data-tour="opening-statement-select"]',title:tg("module.quickStartTourTitle"),description:tg("module.quickStartTourDescription"),side:"bottom"},{selector:'[data-tour="suggested-question-0"]',title:tg("module.firstSuggestionTourTitle"),description:tg("module.firstSuggestionTourDescription"),side:"bottom"},t]:[t]},[tM,rP,ew,tg,tv]),oS=(0,a.useCallback)(async(e,t)=>{try{(0,u.Ru)();let r=t9.Nh&&!(null==t?void 0:t.emailAlreadyBound);E.default.success(r?tg("module.registerSuccessWelcomeBindEmail",{username:e.username,points:t9.No}):tg("module.registerSuccessWelcome",{username:e.username})),await new Promise(e=>setTimeout(e,200)),await tO(!0),rG&&(rQ(null),setTimeout(()=>{az(rG)},200))}catch(e){E.default.error(tg("module.registerRefreshFailed"))}},[tO,rG,az,tg]),oC=(0,a.useCallback)(async()=>{rQ(null),(0,u.Ru)(),await new Promise(e=>setTimeout(e,200)),await tO(!0),rG&&setTimeout(()=>{az(rG)},200)},[tO,rG,az]),oI=(0,a.useCallback)(async(e,t)=>await aU(e,t),[aU]),oj=(0,a.useCallback)(async()=>{await aw()},[aw]),oM=(0,a.useCallback)(()=>{ab?nt(!0):E.default.error(tg("module.shareHistory.noSession"))},[ab,tg]),oN=(0,a.useCallback)(async()=>{if(ab){nt(!1);try{let{newSessionId:e,mode:t,snapshotToken:r}=await ev.Pt.branchSession(ab),n=aj.find(e=>e.id===ab),a={id:e,session_id:e,character_name:(null==rP?void 0:rP.title)||(null==rP?void 0:rP.name)||(null==n?void 0:n.characterName)||"",character_cover_url:(null==rP?void 0:rP.thumbnail)??(null==rP?void 0:rP.cover),message_count:(null==n?void 0:n.messageCount)??0,...r?{snapshot_token:r}:{}};await ax(a),await aC()}catch(t){let e=t instanceof Error?t.message:tg("module.branchShare.branchFailed");E.default.error(e)}}},[ab,rP,aj,ax,aC,tg]);(0,a.useEffect)(()=>{let e=async()=>{await aw()};return window.addEventListener("refreshPreviewChat",e),()=>{window.removeEventListener("refreshPreviewChat",e)}},[aw]),(0,a.useEffect)(()=>{let e=async()=>{te&&e5?rR(n1(e5)):await ad(!1,!0)};return window.addEventListener("updatePreviewCharacter",e),()=>{window.removeEventListener("updatePreviewCharacter",e)}},[ad,te,e5,n1]);let oE=(0,a.useCallback)(e=>{ax(e),rq(!1)},[ax]),o_=(0,a.useCallback)(()=>{(0,tI.mv)({messages:aq,characterName:(null==rP?void 0:rP.title)||(null==rP?void 0:rP.name)||"",sessionId:ab??void 0})},[aq,rP,ab]),oT=(0,a.useCallback)(()=>{nd(!0)},[]),oP=(0,a.useCallback)(()=>{nF(!0)},[]);(0,a.useEffect)(()=>{ts&&ts({character:rP,isLoadingCharacter:rA,currentSessionId:ab,sessionList:aj,isLoadingSessionList:aM,sessionListPagination:aN,loadMoreSessions:aE,refreshSessionList:aC,removeSessionFromList:aI,handleSessionSelect:oE,handleNewConversation:oj,exportCurrentChat:o_,openMemorySettings:oT,openComments:oP})},[ts,rP,rA,ab,aj,aM,aN,aE,aC,aI,oE,oj,o_,oT,oP]);let oR=(0,a.useCallback)(e=>{rD(e)},[]),oA=(0,a.useCallback)(e=>{var t;rD(e),null==(t=rX.current)||t.call(rX,(null==e?void 0:e.id)??null)},[]),oL=(0,a.useCallback)(async(e,t)=>{let r=aq.findIndex(t=>t.id===e);if(-1===r)return void E.default.error(tg("module.messageNotFound"));let n=aq[r];if(!n)return;if(!await aW())return void E.default.error(tg("module.deleteFailedRetry"));let a=aq.slice(r),o=n.dbMessageId??n.id,s=a.filter(e=>"string"==typeof(e.dbMessageId??e.id)).length;try{aY(aq.slice(0,r));let e=!1;await ov(t,{editFromMessageId:"string"==typeof o?o:void 0,onSendFailed:()=>{e=!0,aY(e=>eP(e,a))}}),!e&&s>0&&(aL(s),ab&&aT(ab,-s))}catch(e){console.error("[ChatModule] ç¼è¾ç¨æ·æ¶æ¯åéå失败:",e),aY(e=>eP(e,a)),E.default.error(tg("module.deleteFailedRetry"))}},[aq,aY,ov,aW,aL,ab,aT,tg]),oO=(0,a.useCallback)(async(e,t)=>{if(!(null==t?void 0:t.trim()))return void E.default.error(tg("module.messageEmpty"));let r=aq.findIndex(t=>t.id===e);if(-1===r)return void E.default.error(tg("module.messageNotFound"));let n=aq[r];if(n.isStreaming)return void E.default.error(tg("module.messageSending"));if("user"===n.sender){let n=aq.slice(r+1);if((n.length>1||n.some(e=>"user"===e.sender))&&ab)return void nn({messageId:e,newText:t,subsequentCount:n.length});await oL(e,t)}else{aY(e=>e.map((e,n)=>n===r?{...e,text:t}:e));let a=n.dbMessageId??e;
46if("string"==typeof a)try{await ev.Pt.updateMessage(a,t),E.default.success(tg("module.updated"))}catch(t){console.error("[ChatModule] æ´æ° AI æ¶æ¯å¤±è´¥ï¼åæ»æ¬å°å
容:",t),aY(t=>t.map(t=>t.id===e?{...t,text:n.text}:t)),E.default.error(tg("module.deleteFailedRetry"))}}},[aq,aY,oL,ab,tg]),oF=(0,a.useCallback)(async()=>{if(nr&&ab){no(!0);try{let e=aj.find(e=>e.id===ab),t=(null==e?void 0:e.customName)||(null==e?void 0:e.characterName)||(null==rP?void 0:rP.title)||(null==rP?void 0:rP.name)||tg("module.historyEditConfirm.defaultSessionName"),r=tg("module.historyEditConfirm.backupSuffix"),n=`${t}ï¼${r}ï¼`,a=n.length>100?`${t.slice(0,100-r.length-2)}ï¼${r}ï¼`:n;await ev.Pt.branchSession(ab,{customName:a}),await aC(),E.default.success(tg("module.historyEditConfirm.backupSuccess",{name:a}));let{messageId:o,newText:s}=nr;nn(null),await oL(o,s)}catch(e){console.error("[ChatModule] å¤ä»½åå²å§æ
失败:",e),E.default.error(tg("module.historyEditConfirm.backupFailed"))}finally{no(!1)}}},[nr,ab,aj,rP,aC,oL,tg]),o$=(0,a.useCallback)(async()=>{if(!nr)return;let{messageId:e,newText:t}=nr;nn(null),await oL(e,t)},[nr,oL]),oD=(0,a.useCallback)(()=>{na||nn(null)},[na]),oB=(0,a.useCallback)(async e=>{let t=aq.findIndex(t=>t.id===e);if(-1===t)return;if(0===t&&aq[t].isOpeningStatement)return void E.default.error(tg("module.cannotDeleteOpening"));let r=aq[t];if(r.isStreaming||!await tT(tg("module.deleteConfirm")))return;let n=r.dbMessageId??e,a="string"==typeof n,o=aq;if(aY(t=>(o=t,t.filter(t=>t.id!==e))),!a)return void E.default.success(tg("module.deleted"));aL(1),ab&&aT(ab,-1);try{await ev.Pt.deleteMessage(n),E.default.success(tg("module.deleted")),aP.page>=1&&aR(aP.page,{force:!0})}catch(e){console.error("[ChatModule] 软å 餿¶æ¯å¤±è´¥ï¼åæ»æ¬å°ç¶æ:",e),aY(o),aL(-1),ab&&aT(ab,1),E.default.error(tg("module.deleteFailedRetry"))}},[aq,aY,aL,ab,aT,tg,aP.page,aR,tT]),[oq,oH]=(0,a.useState)(!1),[oz,oU]=(0,a.useState)(null),[oW,oK]=(0,a.useState)(""),[oV,oG]=(0,a.useState)(""),[oQ,oY]=(0,a.useState)([]),[oX,oJ]=(0,a.useState)("anime"),[oZ,o0]=(0,a.useState)(!1),o1=(0,a.useRef)(!1),o2=(0,a.useRef)(new Set),o4=(0,a.useRef)(new Set),o5=(0,a.useRef)(!1),o3=(0,a.useRef)(null),o8=(0,a.useRef)(0),o6=(0,a.useRef)(null),[o7,o9]=(0,a.useState)(!1),se=(0,a.useCallback)(()=>document.getElementById("chat-messages-scroll-area"),[]),st=(0,a.useCallback)(()=>{var e;return(null==(e=se())?void 0:e.scrollTop)??null},[se]),sr=(0,a.useCallback)(e=>{if(null==e)return;let t=se();t&&(t.scrollTop=e,requestAnimationFrame(()=>{let t=se();t&&(t.scrollTop=e)}))},[se]),sn=(0,a.useCallback)(e=>{try{let t=window.localStorage.getItem(`${rf}${e}`);if(!t)return null;let r=JSON.parse(t),n="string"==typeof r.prompt?r.prompt.trim():"";if(!n)return null;let a="string"==typeof r.negative_prompt?r.negative_prompt.trim():"",o=Array.isArray(r.style_tags)?r.style_tags.map(e=>String(e??"").trim()).filter(Boolean).slice(0,8):[],s="realistic"===r.style_mode?"realistic":"anime";return{prompt:n,negative_prompt:a,style_tags:o,style_mode:s}}catch{return null}},[]),sa=(0,a.useCallback)((e,t)=>{let r=t.prompt.trim();if(r)try{window.localStorage.setItem(`${rf}${e}`,JSON.stringify({prompt:r.slice(0,8e3),negative_prompt:(t.negative_prompt??"").trim().slice(0,2e3),style_tags:(t.style_tags??[]).map(e=>String(e??"").trim()).filter(Boolean).slice(0,8),style_mode:"realistic"===t.style_mode?"realistic":"anime",updated_at:Date.now()}))}catch{}},[]),so=(0,a.useCallback)(async e=>{let t=(null==e?void 0:e.deferIfStreaming)??!0,r=(null==e?void 0:e.preserveScroll)??!1,n=r?st():null;if(t&&aH){o5.current=!0;return}o5.current=!1;let a=aP.totalPages;if(a<1)return;if(o3.current)return void await o3.current;if(Date.now()-o8.current<1200){r&&sr(n);return}let o=(async()=>{await aR(a,{force:!0}),o8.current=Date.now()})().finally(()=>{o3.current===o&&(o3.current=null)});o3.current=o,await o,r&&sr(n)},[st,aH,aR,aP.totalPages,sr]);(0,a.useEffect)(()=>{aH||o5.current&&so({deferIfStreaming:!1})},[aH,so]);let ss=(0,a.useCallback)((e,t)=>{if(!e||0===t.length)return e;let r=t.map(e=>``).join("\n\n"),n=[...e.matchAll(/!\[(?:çæä¸|Generating|ìì± ì¤)\]\
46(([^)]+)\)/g)];if(0===n.length)return e;let a=n[n.length-1],o=a.index??-1;return o<0?e:`${e.slice(0,o)}${r}${e.slice(o+a[0].length)}`},[tg]),si=(0,a.useCallback)((e,t)=>{if(!e)return e;let r=t.trim()||tg("module.imageGenerationFailed"),n=`> ${r}`,a=[...e.matchAll(/!\[(?:çæä¸|Generating|ìì± ì¤)\]\(([^)]+)\)/g)];if(0===a.length)return e;let o=a[a.length-1],s=o.index??-1;return s<0?e:`${e.slice(0,s)}${n}${e.slice(s+o[0].length)}`},[tg]),sl=(0,a.useCallback)((e,t,r)=>{let n=null==t?void 0:t.trim();if(!e||!n)return e;let a=``,o=``;return e.includes(a)?e.replace(a,r):e.includes(o)?e.replace(o,r):e},[tg]),sd=(0,a.useCallback)((e,t,r)=>{let n=null==e?void 0:e.trim(),a="string"==typeof t?t.trim():"";if(!n||!a)return;let o=``,s="string"==typeof r?r.trim():"";aY(e=>{let t;if(e.some(e=>{let t="string"==typeof e.dbMessageId?e.dbMessageId.trim():"",r="string"==typeof e.id?e.id.trim():String(e.id??"").trim();return t===n||r===n}))return e;let r=s?e.findIndex(e=>{let t="string"==typeof e.dbMessageId?e.dbMessageId.trim():"",r="string"==typeof e.id?e.id.trim():String(e.id??"").trim();return t===s||r===s}):-1;if(r>=0){let n=e[r],a=(null==n?void 0:n.sentAt)??(null==n?void 0:n.timestamp);if(a){let e=new Date(a);Number.isNaN(e.getTime())||(t=new Date(e.getTime()+1e3))}}let a={id:n,dbMessageId:n,text:o,sender:"character",role:"assistant",timestamp:t??new Date,sentAt:t??new Date,avatar:null==rP?void 0:rP.thumbnail,modelName:"ComfyAI"};return r>=0?[...e.slice(0,r+1),a,...e.slice(r+1)]:[...e,a]})},[null==rP?void 0:rP.thumbnail,aY,tg]),sc=(0,a.useCallback)((e,t,r)=>{let n=null==e?void 0:e.trim();n&&0!==t.length&&aY(e=>e.map(e=>{let a="string"==typeof e.dbMessageId?e.dbMessageId.trim():"",o="str
46ing"==typeof e.id?e.id.trim():String(e.id??"").trim();if(a!==n&&o!==n)return e;let s=t.map(e=>``).join("\n\n"),i=e.text??"",l=sl(i,r,s);return(l===i&&(l=ss(i,t)),l===(e.text??""))?e:{...e,text:l}}))},[sl,ss,aY,tg]),su=(0,a.useCallback)((e,t,r)=>{let n=null==e?void 0:e.trim();n&&aY(e=>e.map(e=>{let a="string"==typeof e.dbMessageId?e.dbMessageId.trim():"",o="string"==typeof e.id?e.id.trim():String(e.id??"").trim();if(a!==n&&o!==n)return e;let s=(t??tg("module.imageGenerationFailed")).trim()||tg("module.imageGenerationFailed"),i=`> ${s}`,l=e.text??"",d=sl(l,r,i);return(d===l&&(d=si(l,s)),d===(e.text??""))?e:{...e,text:d}}))},[sl,si,aY]),sm=(0,a.useCallback)(async(e,t)=>{let r="string"==typeof e?e.trim():"";if(r&&!o2.current.has(r)){o2.current.add(r);try{let e=0;for(;e<48;){let n=await (0,eY.sg)(r);if(n.finished){await so({preserveScroll:!0}),sc(null==t?void 0:t.targetMessageId,(n.images??[]).map(e=>String((null==e?void 0:e.url)??"").trim()).filter(Boolean),r),(null==t?void 0:t.successToast)&&E.default.success(tg("module.imageUpdated"));return}e+=1,await new Promise(t=>setTimeout(t,e<8?2e3:4e3))}await so({preserveScroll:!0}),su(null==t?void 0:t.targetMessageId,tg("module.imageTimeout"),r),(null==t?void 0:t.timeoutToast)&&E.default.error(tg("module.generationTimeout"))}catch(e){await so({preserveScroll:!0}),su(null==t?void 0:t.targetMessageId,e instanceof Error?e.message.slice(0,200):tg("module.imageGenerationFailed"),r),(null==t?void 0:t.errorToast)&&E.default.error(e instanceof Error?e.message.slice(0,400):tg("module.generationFailed"))}finally{o2.current.delete(r)}}},[su,sc,so]),sp=(0,a.useCallback)(async(e,t)=>{let r="string"==typeof e?e.trim():"";if(r&&!o4.current.has(r)){o4.current.add(r);try{let e=0;for(;e<72;){var n;let a=await (0,eY.X_)(r),o=String(a.status??"").toLowerCase();if("done"===o){await so({preserveScroll:!0}),sc(null==t?void 0:t.targetMessageId,(a.result_urls??[]).map(e=>String(e??"").trim()).filter(Boolean),void 0),(null==t?void 0:t.successToast)&&E.default.success(tg("module.imageUpdated"));return}if("failed"===o||"refunded"===o||"refund_failed"===o){if(a.request_blocked)throw Error(tg("module.imageRequestBlockedRefunded"));throw Error(tg("module.imageGenerationFailed"))}let s=null==(n=a.upstream_request_id)?void 0:n.trim();if(s)return void await sm(s,t);e+=1,await new Promise(t=>setTimeout(t,e<10?2e3:4e3))}await so({preserveScroll:!0}),su(null==t?void 0:t.targetMessageId,tg("module.imageTimeout"),void 0),(null==t?void 0:t.timeoutToast)&&E.default.error(tg("module.generationTimeout"))}catch(e){await so({preserveScroll:!0}),su(null==t?void 0:t.targetMessageId,e instanceof Error?e.message.slice(0,200):tg("module.imageGenerationFailed"),void 0),(null==t?void 0:t.errorToast)&&E.default.error(e instanceof Error?e.message.slice(0,400):tg("module.generationFailed"))}finally{o4.current.delete(r)}}},[su,sc,sm,so,tg]),[sh,sg]=(0,a.useState)({open:!1,messageId:"",rawContent:""}),sf=(0,a.useCallback)(e=>{let t=String(e),r=aq.find(e=>{let r=String(e.id??""),n="string"==typeof e.dbMessageId?e.dbMessageId:"";return r===t||n===t});if(!r)return void E.default.error(tg("module.messageNotFound"));if("user"==("user"===r.sender||"user"===r.role?"user":"character"))return;if(r.isStreaming)return void E.default.error(tg("module.waitReplyComplete"));let n=("string"==typeof r.text?r.text:r.content)||"";if(!n.trim())return void E.default.error(tg("module.noReplyText"));let a="string"==typeof r.dbMessageId&&r.dbMessageId.trim()?r.dbMessageId.trim():/^[0-9a-f-]{36}$/i.test(t)?t:null;a?sg({open:!0,messageId:a,rawContent:n}):E.default.error(tg("module.messageNotSynced"))},[aq,tg]),sv=(0,a.useCallback)(e=>{aY(t=>t.map(t=>{let r=String(t.id??""),n="string"==typeof t.dbMessageId?t.dbMessageId:"";if(r===e||n===e){let r=("string"==typeof t.text?t.text:t.content)||"",n=``;if(!r.includes("audio://loading/")){let e=`${r} 47 48${n}`;return{...t,text:e,content:e}}}return t}))},[aY]),sb=(0,a.useCallback)(e=>{aY(t=>t.map(t=>{let r=String(t.id??""),n="string"==typeof t.dbMessageId?t.dbMessageId:"";if(r===e||n===e){let e=("string"==typeof t.text?t.text:t.content)||"";if(e.includes("audio://loading/")){let r=e.replace(/!\[è¯é³çæä¸\]\(audio:\/\/loading\/[^)]+\)/g,"").trim();return{...t,text:r,content:r}}}return t}))},[aY]),sy=(0,a.useCallback)((e,t,r,n)=>{let a=(0,tL.tV)({referenceId:r,voiceTitle:n,audioUrl:t});aY(t=>t.map(t=>{let r=String(t.id??""),n="string"==typeof t.dbMessageId?t.dbMessageId:"";if(r===e||n===e){let e=("string"==typeof t.text?t.text:t.content)||"",r=(0,tL.Wu)(e.replace(/!\[è¯é³çæä¸\]\(audio:\/\/loading\/[^)]+\)/g,"").trim()),n=r?`${r} 49 50${a}`:a;return{...t,text:n,content:n}}return t}))}
50,[aY]),sx=(0,a.useCallback)(()=>{oH(!1),oU(null),o0(!1),oG(""),oY([]),oJ("anime")},[]),sw=(0,a.useCallback)(e=>{let t=String(e),r=aq.find(e=>{let r=String(e.id??""),n="string"==typeof e.dbMessageId?e.dbMessageId:"";return r===t||n===t});if(!r)return void E.default.error(tg("module.messageNotFound"));if("user"==("user"===r.sender||"user"===r.role?"user":"character"))return;if(r.isStreaming)return void E.default.error(tg("module.waitReplyComplete"));let n=("string"==typeof r.text?r.text:r.content)||"";if(!n.trim())return void E.default.error(tg("module.noReplyText"));let a="string"==typeof r.dbMessageId&&r.dbMessageId.trim()?r.dbMessageId.trim():/^[0-9a-f-]{36}$/i.test(t)?t:null;if(!a)return void E.default.error(tg("module.messageNotSynced"));if(oU(a),oH(!0),ab){let e=sn(ab);if(e){oK(e.prompt),oG(e.negative_prompt),oY(e.style_tags),oJ(e.style_mode),o0(!1);return}}let o=(0,eY.AM)(n);oK(o),oG(""),oY([]),oJ("anime"),ab&&sa(ab,{prompt:o,negative_prompt:"",style_tags:[],style_mode:"anime"}),o0(!1)},[aq,ab,sn,sa]),sk=(0,a.useCallback)(async()=>{var e,t,r,n;
50if(!oz||!ab)return void E.default.error(tg("module.invalidSession"));if(oZ)return void E.default.error(tg("module.promptGenerating"));let a=null,o=null,s=(null==(e=document.getElementById("chat-messages-scroll-area"))?void 0:e.scrollTop)??null,i=[],l=()=>{if(null==s)return;let e=document.getElementById("chat-messages-scroll-area");e&&(e.scrollTop=s)},d=()=>{null!=s&&(l(),requestAnimationFrame(()=>{l()}),[24,80,160,320,640,960,1200].forEach(e=>{let t=window.setTimeout(()=>{l()},e);i.push(t)}))};if(!o1.current){o1.current=!0,o9(!0),o0(!0);try{let e,s="string"==typeof oW?oW.trim():"",i="string"==typeof oV?oV.trim():"";(s||i||oQ.length>0)&&sa(ab,{prompt:s,negative_prompt:i,style_tags:oQ,style_mode:oX});try{e=await (0,eY.qO)({values:{},chat_session_id:ab,anchor_message_id:oz,style_mode:oX})}catch(r){if(!(0,eY.N0)(r))throw r;let t=r.duplicate;if(!await tT(tg("module.duplicateImageTaskConfirm",{status:(null==t?void 0:t.existing_status)??"unknown"})))return;e=await (0,eY.qO)({values:{},chat_session_id:ab,anchor_message_id:oz,force_submit:!0,style_mode:oX})}a=(null==(t=e.request_id)?void 0:t.trim())||`generation:${e.generation_id}`,o=(null==(r=e.target_message_id)?void 0:r.trim())||null,sd(o??void 0,a,oz),sx(),d(),E.default.success(tg("module.imageTaskSubmitted"));let l=null==(n=e.request_id)?void 0:n.trim();l?await sm(l,{successToast:!0,timeoutToast:!0,errorToast:!0,targetMessageId:e.target_message_id??oz}):await sp(e.generation_id,{successToast:!0,timeoutToast:!0,errorToast:!0,targetMessageId:e.target_message_id??oz})}catch(e){if((0,eY.aW)(e)){(0,eX.x)(e),n5(void 0,"comfy_chat_inline");return}if((0,eY.Uy)(e))return void E.default.error(e.message);a&&o&&su(o,e instanceof Error?e.message.slice(0,200):tg("module.imageGenerationFailed"),a),await so({preserveScroll:!0}),d(),E.default.error(e instanceof Error?e.message.slice(0,400):tg("module.generationFailed"))}finally{i.forEach(e=>{window.clearTimeout(e)}),i.length=0,l(),o0(!1),o1.current=!1,o9(!1)}}},[oz,oV,oW,oQ,oX,ab,sx,oZ,so,su,sd,sm,sp,tT,tg,sa,n5]),sS=(0,a.useRef)(sm),sC=(0,a.useRef)(sp),sI=(0,a.useRef)(so);(0,a.useEffect)(()=>{sS.current=sm},[sm]),(0,a.useEffect)(()=>{sC.current=sp},[sp]),(0,a.useEffect)(()=>{sI.current=so},[so]),(0,a.useEffect)(()=>{if(!tA||!ab){o6.current=null;return}if(o6.current===ab)return;o6.current=ab;let e=!1;return(async()=>{try{let r=await (0,eY.yq)(ab,12);if(e||await sI.current(),e||0===r.length)return;for(let n of r){var t;if(e)return;let r=null==(t=n.upstream_request_id)?void 0:t.trim();r?sS.current(r,{successToast:!1,timeoutToast:!1,errorToast:!1,targetMessageId:n.target_message_id??void 0}):sC.current(n.id,{successToast:!1,timeoutToast:!1,errorToast:!1,targetMessageId:n.target_message_id??void 0})}}catch(e){console.warn("[chat-inline-comfy] restore polling failed",e)}})(),()=>{e=!0}},[tA,ab]),(0,a.useCallback)(async(e,t)=>{try{rP&&rR({...rP,author_name:t})}catch(e){throw console.error("æ´æ°ä½è
失败:",e),e}},[rP]);let sj=(0,a.useCallback)(async()=>{if(!tA)return void ni("");try{let e=await e0.A.getReferralCode();ni((e.code||"").trim().toLowerCase())}catch{ni("")}},[tA]),sM=(0,a.useCallback)(e=>{switch(e){case"quick-start":nv("edit"),ng(!0);break;case"export":(0,tI.mv)({messages:aq,characterName:(null==rP?void 0:rP.title)||(null==rP?void 0:rP.name)||"",sessionId:ab??void 0});break;case"share":sj(),r9(!0);break;case"memory":nd(!0);break;case"page-settings":nu(!0);break;case"model-params":np(!0);break;case"custom-config":nS(null),nI(!1),nw(!0);break;case"mod":n$()}},[aq,rP,sj,ab,tg,n$]),sN=(0,a.useCallback)(async e=>{await nK({summaryThreshold:e})},[nK]),sE=(0,a.useCallback)(async e=>{nX.setEnabled(e.customOpacity),e.customOpacity&&nX.setOpacity(e.bubbleOpacity),nJ.setFontSizePx(e.bubbleFontSizePx),nZ.setEnabled(e.streamAutoScroll),e.bgEnabled!==nU.bgEnabled&&await nK({bgEnabled:e.bgEnabled})},[nK,nX,nJ,nZ,nU.bgEnabled]),s_=(0,a.useCallback)(async e=>{await nK({temperature:e.temperature,topP:e.topP,presencePenalty:e.presencePenalty,frequencyPenalty:e.frequencyPenalty,maxTokens:null})},[nK]),sT=(0,a.useMemo)(()=>{let e=new URL(`/chat/${t}`,window.location.origin);return tA&&ns&&e.searchParams.set("ref",ns),e.toString()},[t,tA,ns]),sP=function(e){let[t,r]=(0,a.useState)("grace");return(0,a.useEffect)(()=>{let e=setTimeout(()=>{r(e=>"grace"===e?"skeleton":e)},100);return()=>clearTimeout(e)},[]),(0,a.useEffect)(()=>
50{if("skeleton"!==t)return;let e=setTimeout(()=>{r("done")},300);return()=>clearTimeout(e)},[t]),("grace"!==t||!!e)&&"grace"!==t&&("skeleton"===t||e)}(rA||aS&&ak&&0===aq.length),sR=!rP&&(sP||rA),sA=aq.some(e=>"user"===e.sender),sL=ab?aj.find(e=>e.id===ab):aj[0],sO=(null==sL?void 0:sL.messageCount)??0,sF=((null==sL?void 0:sL.archivedBefore)??0)>0,s$=aP.total>0||sO>0||aP.hasArchived||sF,sD=sA||s$,[sB,sq]=(0,a.useState)(!1);(0,a.useEffect)(()=>{sD&&sq(!0)},[sD]);let sH=(0,a.useMemo)(()=>aj.some(e=>e.id!==ab&&((e.messageCount??0)>0||(e.archivedBefore??0)>0)),[aj,ab]),sz=(0,a.useMemo)(()=>{var e,t;return null==(t=(e={description:null==rP?void 0:rP.description,hasUserOrServerHistory:sD,hasEnteredChatMode:sB,otherSessionsHaveHistory:sH}).description)||!t.trim()||!!e.hasUserOrServerHistory||!!e.hasEnteredChatMode||!!e.otherSessionsHaveHistory},[null==rP?void 0:rP.description,sD,sB,sH]),sU=(0,a.useCallback)(async()=>{if(!nb){ny(!0);try{var e,t;let r=null;(null==rP?void 0:rP.description)&&!sD&&(r=await (null==(t=r6.current)?void 0:t.extractCharacterProfile())??null);let n=(null==tR||null==(e=tR.quick_start_config)?void 0:e.trim())||null,a=tg("module.quickStart.defaultDisplayName",{defaultValue:"ç¨æ·"}),o=(0,x.ZN)(tR,a),s=(0,x.AT)(o,tg),i=null;if(r&&function(e){let t=e.trim();if(!t)return!1;let r=t.split("\n").filter(e=>e.trim()).filter(e=>R.test(e.trim()));if(0===r.length)return t.length>=8;let n=0;for(let e of r){let t=e.trim().match(R);t&&O(t[3])&&(n+=1)}return n/r.length<.9}(r)?i=function(e,t){let r=F(e),n=L(F(t)),a=r.split("\n").map(e=>{let t=e.match(R);if(!t)return e;let r=A(t[1].trim()),a=t[3].trim(),o=r?n.get(r):void 0;return o&&!O(o)&&O(a)?`${t[1]}${t[2]}${o}`:e}),o=new Set(L(r).keys()),s=[];for(let[e,t]of n)!o.has(e)&&(O(t)||s.push(`${e}ï¼${t}`));let i=a.join("\n").trim();return 0===s.length?i:s.length>0&&i?`${i} 51${s.join("\n")}`:s.join("\n")}(r,n??s):n&&(i=n),i){r3(i),E.default.success(tg("module.quickStart.filledHint"));return}nv("send"),ng(!0)}catch(e){console.error("[ChatModule] handleQuickStart:",e),E.default.error(tg("module.quickStart.extractFailed"))}finally{ny(!1)}}},[nb,null==rP?void 0:rP.description,sD,tR,tg,r3]);if(sR)return(0,n.jsx)("div",{className:"chat-module-canvas h-full w-full p-4 animate-fade-in",children:(0,n.jsx)("div",{className:"h-full flex flex-col max-w-4xl mx-auto w-full pt-8",children:(0,n.jsx)(t5.hD,{messageCount:6})})});if(rO||!rP)return(0,n.jsx)(to,{error:rO});let sW=ew??(null==rP?void 0:rP.suggested_questions),sK=rv(rP);return(0,n.jsxs)("div",{id:"chat-module-container",className:`chat-module-canvas relative flex flex-col w-full min-h-0 overflow-x-hidden overflow-y-clip ${q}`,style:{height:"100%"},children:[th?null:(0,n.jsx)(tC,{onMenuItemClick:sM,showOnMobile:!1}),z&&t_&&tE&&(0,n.jsx)(tp,{characterName:rP.title||rP.name,suggestedQuestions:sD?void 0:sW,onSelectQuestion:ov,disabled:aH||sK,suggestedTourKeepOpen:tM?nH:void 0,onShare:()=>{sj(),r9(!0)},characterId:rP.id,initialFavorited:tl,onOpenRecharge:n5,onBack:oh}),(0,n.jsx)("div",{className:"flex flex-1 min-h-0",style:z&&t_&&tE?{paddingTop:"var(--chat-header-offset, calc(var(--top-safe-area-inset, env(safe-area-inset-top, 0px)) + 2.75rem))"}:void 0,children:(0,n.jsxs)("div",{className:"flex-1 flex flex-col min-h-0 min-w-0 overflow-x-hidden overflow-y-clip",children:[aO&&!th&&(0,n.jsx)(eO,{loading:ak,onRetry:aF}),(0,n.jsxs)(e1,{enabled:!0,backgroundImageUrl:n0,showBackgroundImage:sz,bottomSlot:th?void 0:(0,n.jsxs)("div",{className:"relative",children:[aP.totalPages>1&&(0,n.jsx)(y.A,{currentPage:aP.page,totalPages:aP.totalPages,total:aP.total,onPageChange:aR,loading:aA}),sK&&!th&&(0,n.jsx)("div",{className:"mx-3 mb-2 px-3 py-2 rounded-lg bg-gray-100 dark:bg-gray-800 text-gray-500 dark:text-gray-400 text-xs text-center",children:(null==rP?void 0:rP.status)==="deleted"?tg("module.cannotContinueDeleted"):tg("module.cannotContinue")}),oq&&"u">typeof document&&(0,o.createPortal)((0,n.jsx)("div",{className:"chat-modal-overlay fixed inset-0 z-[1200] flex items-center justify-center p-4",style:{backgroundColor:"var(--v2-bg-overlay)"},onClick:e=>{e.target!==e.currentTarget||o7||oZ||sx()},role:"dialog","aria-modal":"true","aria-label":tg("module.generateImageTitle"),children:(0,n.jsxs)("div",{className:"chat-modal-panel w-full max-w-md rounded-2xl border border-v2-border-primary p-4 sm:p-5 shadow-2xl",style:{backgroundColor:"var(--v2-bg-card)"},children:[(0,n.jsxs)("div",{className:"flex items-center justify-between gap-3 mb-4",children:[(0,n.jsx)("h2",{className:"text-sm font-semibold text-v2-accent-primary",children:tg("module.generateImageTitle")}),(0,n.jsx)("button",{type:"button","aria-label":tg("module.close"),onClick:sx,disabled:o7||oZ,className:"p-2 -mr-1 text-v2-text-tertiary hover:text-v2-text-primary hover:bg-v2-bg-hover rounded-md cursor-pointer transition-colors disabled:opacity-50",children:(0,n.jsx)(tN.A,{className:"w-5 h-5"})})]}),(0,n.jsxs)("div",{className:"grid grid-cols-2 gap-3.5 sm:gap-4",children:[(0,n.jsxs)("button",{type:"button",className:`relative min-w-0 rounded-xl overflow-hidden border-2 transition-all aspect-[4/5] sm:aspect-[3/4] ${"realistic"===oX?"border-v2-accent-primary shadow-[0_0_0_2px_rgba(var(--v2-accent-primary-rgb),0.2)]":"border-transparent hover:border-v2-border-primary"}`,onClick:()=>oJ("realistic"),disabled:o7||oZ,children:[(0,n.jsx)("img",{src:"https://cdn.img-cdn.site/comfyai/app-covers/2026-05-27/s305gh28kvsm/f2768a57-5.jpg",className:"absolute inset-0 w-full h-full object-cover",alt:"Realistic"}),(0,n.jsx)("div",{className:"absolute inset-0 bg-gradient-to-t from-black/60 via-trans
51parent to-transparent"}),(0,n.jsxs)("div",{className:"absolute bottom-2 left-2 right-2 flex items-center justify-between",children:[(0,n.jsx)("span",{className:"text-white font-medium text-sm drop-shadow-md",children:tg("module.comfyStyleModeRealistic")}),"realistic"===oX&&(0,n.jsx)("div",{className:"w-5 h-5 rounded-full bg-v2-accent-primary flex items-center justify-center shrink-0 shadow-sm",children:(0,n.jsx)(tj.A,{className:"w-3.5 h-3.5 text-white"})})]})]}),(0,n.jsxs)("button",{type:"button",className:`relative min-w-0 rounded-xl overflow-hidden border-2 transition-all aspect-[4/5] sm:aspect-[3/4] ${"anime"===oX?"border-v2-accent-primary shadow-[0_0_0_2px_rgba(var(--v2-accent-primary-rgb),0.2)]":"border-transparent hover:border-v2-border-primary"}`,onClick:()=>oJ("anime"),disabled:o7||oZ,children:[(0,n.jsx)("img",{src:"https://cdn.img-cdn.site/comfyai/app-covers/2026-05-27/9hdbvvhkxqd6/6bf369fc-c.jpg",className:"absolute inset-0 w-full h-full object-cover",alt:"Anime"}),(0,n.jsx)("div",{className:"absolute inset-0 bg-gradient-to-t from-black/60 via-trans
51parent to-transparent"}),(0,n.jsxs)("div",{className:"absolute bottom-2 left-2 right-2 flex items-center justify-between",children:[(0,n.jsx)("span",{className:"text-white font-medium text-sm drop-shadow-md",children:tg("module.comfyStyleModeAnime")}),"anime"===oX&&(0,n.jsx)("div",{className:"w-5 h-5 rounded-full bg-v2-accent-primary flex items-center justify-center shrink-0 shadow-sm",children:(0,n.jsx)(tj.A,{className:"w-3.5 h-3.5 text-white"})})]})]})]}),(0,n.jsx)("button",{type:"button","data-tour":"comfy-image-submit",className:"mt-4 min-h-11 w-full rounded-xl bg-v2-gradient-primary px-4 text-sm font-medium text-white shadow-v2-gradient hover:bg-v2-gradient-primary-hover disabled:opacity-50 cursor-pointer",style:{marginBottom:"max(0px, env(safe-area-inset-bottom, 0px))"},onClick:()=>void sk(),disabled:o7||oZ,children:tg("module.submitAutoGenerateCost",{points:tb})})]})}),document.body),(0,n.jsx)(re,{status:tG}),rC?(0,n.jsx)("button",{type:"button",onClick:()=>n5("normal-pay","chat_low_balance"),className:"mx-3 mb-1 w-[calc(100%-1.5rem)] rounded-lg border px-4 py-2 text-xs text-center cursor-pointer transition-colors",style:{backgroundColor:"var(--v2-state-warning-bg)",borderColor:"var(--v2-border-primary)",color:"var(--v2-state-warning)"},children:tg("module.lowBalanceWarning")}):null,(0,n.jsx)(b.A,{value:r5,onChange:r3,onSend:of,disabled:aH||sK||nb,placeholder:sK?tg("module.cannotContinueShort"):tE?tg("module.startChat"):tg("module.shiftEnterTip"),isStreaming:aH&&rH,onCancel:aW,onModClick:()=>n$(),onOpenMemorySettings:()=>nd(!0),showStreamToggle:!tE,isStreamingEnabled:rH,onToggleStreaming:ol,showModelSelector:!0,characterId:tw||t,recommendedModelId:(null==rP?void 0:rP.recommendedModelId)??null,onModelChange:oR,onUserModelSelect:tc?oA:void 0,onModelSelectorClick:rj?n9:void 0,lockedModelId:rM,preferredDefaultModelId:rN,showChatHistory:s&&!tE,onOpenChatHistory:s&&!tE?tn:void 0,isLoading:aH,shortcutCommands:ek??(null==rP?void 0:rP.shortcut_commands),showHideButtonsToggle:!0,showVoiceButton:!1,showActionPanelToggle:!0,isActionPanelOpen:nB,onToggleActionPanel:()=>nq(e=>!e),onQuickStart:!sD&&(null==rP?void 0:rP.description)&&!sK?()=>{sU()}:void 0}),(0,n.jsx)(tU,{isOpen:nB,onClose:()=>nq(!1),isStreamingEnabled:rH,onToggleStreaming:ol,onOpenCustomConfig:()=>{nS(null),nI(!1),nw(!0)},onOpenChatHistory:tn,onNewChat:oj,onOpenPersona:()=>{nv("edit"),ng(!0)},onOpenPageSettings:()=>nu(!0),onOpenMemorySettings:()=>nd(!0),onOpenModelParams:()=>np(!0)})]}),children:[(_||T)&&(0,n.jsxs)("div",{className:"flex items-center justify-end gap-2 px-4 py-2 border-b border-v2-border-primary bg-v2-bg-card",children:[_&&(0,n.jsx)("button",{onClick:_,disabled:P,className:"px-3 py-1.5 text-sm bg-v2-bg-secondary rounded-md hover:bg-v2-bg-hover disabled:opacity-50",children:tg("module.save")}),T&&(0,n.jsx)("button",{onClick:T,disabled:B,className:"px-3 py-1.5 text-sm bg-v2-accent-primary text-white rounded-md hover:bg-v2-accent-hover disabled:opacity-50",children:B?tg("module.publishing"):tg("module.publish")})]}),!th&&!tA&&(0,n.jsx)("button",{type:"button",onClick:rV,className:"mx-4 mt-2 block w-[calc(100%-2rem)] rounded-lg bg-amber-50 px-3 py-2 text-center text-xs text-amber-700 cursor-pointer transition-colors hover:bg-amber-100 active:bg-amber-100/80 dark:bg-amber-950/40 dark:text-amber-100/90 dark:hover:bg-amber-950/60",children:tg("module.guestModeBanner")}),(0,n.jsx)(p.A,{ref:r6,messages:a6,character:rP,cgBookHitsByMessageId:a8,onSendMessage:ov,isLoading:aH,showHeader:!0,showStreamToggle:!tE,showModelSelector:!tE,isStreamingEnabled:rH,streamAutoScrollEnabled:nZ.enabled,onToggleStreaming:ol,onOpenChatHistory:s&&!tE?tn:void 0,characterId:tw||t,recommendedModelId:(null==rP?void 0:rP.recommendedModelId)??null,onModelChange:oR,onUserModelSelect:tc?oA:void 0,onModelSelectorClick:rj?n9:void 0,lockedModelId:rM,preferredDefaultModelId:rN,onRefreshMessage:tA?oI:void 0,onGenerateImageFromMessage:sw,onOpenFishSpeech:sf,onOpenJailbreakMods:tA?nD:void 0,onEditMessage:tA?oO:void 0,onDeleteMessage:tA?oB:void 0,onBranchOrShare:tA&&!sK?oM:void 0,onCancelStreaming:aW,onOpenQuickStartSettings:ob,placeholder:tg("module.shiftEnterTip"),className:"",description:W??(null==rP?void 0:rP.description),builtInCss:G??(null==rP?void 0:rP.builtInCss)??void 0,hasMessageHistory:sD,suggestedQuestions:null==rP?void 0:rP.suggested_questions,hideSuggestedQuestionsBar:z&&t_&&tE,suggestedTourKeepOpen:tM?nH:void 0,inputPositionMode:H,shortcutCommands:ek??(null==rP?void 0:rP.shortcut_commands),overrideBgImage:eS,overrideBgMobile:eC,openingStatements:aX,currentOpeningIndex:aJ,onSwitchOpeningStatement:aZ,paginationPage:aP.page,paginationTotalPages:aP.totalPages,paginationTotal:aP.total,onPageChange:aR,paginationHasArchived:aP.hasArchived,paginationArchivedBefore:aP.archivedBefore,onLoadArchivedMessages:a0,isLoadingArchived:a1,paginationArchivedExhausted:a2,hideInputArea:!0,inputValue:r5,onInputChange:r3})]})]})}),(0,n.jsx)(rt,{isOpen:n4,onClose:n3,onPaymentComplete:od,initialMode:n6,analyticsSource:n7}),(0,n.jsx)(ra,{enabled:!rA&&!!rP,forceShow:tM,customSteps:ow??ok,completedStorageKey:tM?rw:ok?"chat_tour_opening_v1":void 0,onComplete:tM?()=>nz(!1):void 0}),(0,n.jsx)(rr,{isOpen:rJ,onClose:ou,claimableStages:r0,tasksWithStages:r2,onClaim:oc,isLoggedIn:tA,onLogin:om,onQuickRegister:og}),(0,n.jsx)(rn,{isOpen:rU,onClose:op,onRegisterSuccess:oS,onLoginSuccess:oC}),(0,n.jsx)(ro,{isOpen:r7,onClose:()=>r9(!1),character:rP,shareUrl:sT}),(0,n.jsx)(rs,{isOpen:ne,onClose:()=>nt(!1),onConfirmBranch:oN,sessionId:ab,characterId:tw||t,onShareCreated:()=>null==td?void 0:td()}),(0,n.jsx)(ri,{isOpen:!!nr,subsequentCount:(null==nr?void 0:nr.subsequentCount)??0,isBackingUp:na,onConfirmBackup:oF,onConfirmDirect:o$,onCancel:oD}),tP,(0,n.jsx)(rl,{isOpen:nl,onClose:()=>nd(!1),value:nU.summaryThreshold,onSave:sN,isLoading:nW,sessionId:ab,memoryPalaceMode:nU.memoryPalaceMode,chatModelId:(null==r$?void 0:r$.id)??null,onMemoryPalaceModeChange:async e=>{await nK({memoryPalaceMode:e})}}),(0,n.jsx)(rd,{isOpen:nc,onClose:()=>nu(!1),settings:{bgEnabled:nU.bgEnabled,customOpacity:nX.enabled,bubbleOpacity:nX.opacity,bubbleFontSizePx:nJ.fontSizePx,streamAutoScroll:nZ.enabled},onSettingsChange:sE,isLoading:nW}),(0,n.jsx)(rc,{isOpen:nm,onClose:()=>np(!1),params:{temperature:nU.temperature,topP:nU.topP,presencePenalty:nU.presencePenalty,frequencyPenalty:nU.frequencyPenalty},onSave:s_,isLoading:nW}),(0,n.jsx)(ru,{isOpen:nh,onClose:()=>ng(!1),onSend:oy,savedConfig:null==tR?void 0:tR.quick_start_config,onConfigSaved:e=>{tR&&C.useUserStore.getState().setUser({...tR,quick_start_config:e})},mode:nf}),(0,n.jsx)(rm,{isOpen:nx,onClose:()=>{nw(!1),nS(null),nI(!1)},characterId:tw||t,characterName:(null==rP?void 0:rP.title)||(null==rP?void 0:rP.n
51ame),characterBuiltInCss:(null==rP?void 0:rP.builtInCss)??"",characterThumbnail:(null==rP?void 0:rP.thumbnail)??(null==rP?void 0:rP.cover_tiny)??"",characterOpeningStatement:null==rP?void 0:rP.opening_statement,editingMod:nk,newModDraft:nC,onSaveSuccess:()=>{nG(),nM(e=>e+1),nY(),tw&&tA&&ev.Pt.getInitialState(tw,{skipCache:!0}).then(e=>{e&&rT(e)})}}),(0,n.jsx)(rp,{isOpen:nN,onClose:()=>{nE(!1),nY(),tw&&tA&&ev.Pt.getInitialState(tw,{skipCache:!0}).then(e=>{e&&rT(e)})},characterId:tw||t,initialTab:n_,initialPublicModType:nP,openFocusNonce:nA,onCreate:()=>{nS(null),nI(!0),nw(!0)},onEditMod:e=>{nI(!1),nS(e),nw(!0)},nestedCustomConfigOpen:nx,listRefreshNonce:nj}),(0,n.jsx)(rh,{isOpen:ah,onConfirm:()=>{ag(!1);try{localStorage.setItem(ap,"1")}catch{}}}),tw&&(tE?(0,n.jsx)(e2.default,{open:nO,onClose:()=>nF(!1),title:"è¯è®ºä¸è¯å",showCloseButton:!0,showHandle:!0,enableDragToClose:!0,contentClassName:"overflow-hidden p-0 flex flex-col",children:(0,n.jsx)(rg,{characterId:tw})}):nO?(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)("div",{className:"chat-modal-overlay fixed inset-0 z-[60]",style:{backgroundColor:"var(--v2-bg-overlay)"},onClick:()=>nF(!1)}),(0,n.jsxs)("div",{className:"fixed top-0 right-0 bottom-0 z-[61] flex flex-col w-full md:max-w-[420px] overflow-hidden",style:{backgroundColor:"var(--v2-bg-primary)",boxShadow:"-4px 0 24px rgba(0,0,0,0.18)"},children:[(0,n.jsxs)("div",{className:"flex-shrink-0 flex items-center justify-between px-4 py-3 border-b",style:{borderColor:"var(--v2-border-primary)"},children:[(0,n.jsx)("span",{className:"text-base font-semibold",style:{color:"var(--v2-text-primary)"},children:"è¯è®ºä¸è¯å"}),(0,n.jsx)("button",{type:"button",onClick:()=>nF(!1),className:"p-1 rounded-full hover:opacity-70",style:{color:"var(--v2-text-secondary)"},children:(0,n.jsx)("svg",{className:"w-5 h-5",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:2,children:(0,n.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M6 18L18 6M6 6l12 12"})})})]}),(0,n.jsx)("div",{className:"flex min-h-0 flex-1 flex-col overflow-hidden",children:(0,n.jsx)(rg,{characterId:tw})})]})]}):null),(0,n.jsx)(tD,{open:sh.open,messageId:sh.messageId,rawContent:sh.rawContent,onClose:()=>sg(e=>({...e,open:!1})),onSuccess:sy,onStartGenerating:sv,onErrorOrCancel:sb,onPlaySystemSpeech:(e,t)=>{(0,tB.mV)({messageId:e,rawText:t,lang:(null==tf?void 0:tf.language)||"zh-CN",emptyTip:tg("module.messageFooter.speechEmptyTip","è¯¥æ¶æ¯æ ææå°è¯å¯æè¯»"),unsupportedTip:tg("module.messageFooter.speechUnsupportedTip","å½åæµè§å¨ä¸æ¯ææå转è¯é³")})}})]})}},12775:(e,t,r)=>{r.d(t,{$:()=>a});var n=r(14232);let a=()=>{let[e,t]=(0,n.useState)(!1),[r,a]=(0,n.useState)(void 0),[o,s]=(0,n.useState)(void 0),i=(0,n.useCallback)((e,r)=>{a(e),s(r),t(!0)},[]);return{isOpen:e,initialMode:r,analyticsSource:o,openModal:i,closeModal:(0,n.useCallback)(()=>{t(!1),a(void 0),s(void 0)},[]),handlePaymentComplete:(0,n.useCallback)(async e=>{e.success||console.error("Payment failed:",e.error)},[])}}},16146:(e,t,r)=>{r.d(t,{A:()=>X});var n=r(37876),a=r(14232),o=r(51895),s=r(18312),i=r(16429),l=r(86517),d=r(97445);let c=` 52<style id="iframe-v2-variables"> 53 :root { 54 --v2-bg-primary: #ffffff; 55 --v2-bg-secondary: #f6f8fa; 56 --v2-bg-card: #ffffff; 57 --v2-bg-overlay: rgba(31, 35, 40, 0.4); 58 --v2-bg-hover: rgba(0, 0, 0, 0.04); 59 --v2-text-primary: #1f2328; 60 --v2-text-secondary: #656d76; 61 --v2-text-tertiary: #8c959f; 62 --v2-text-inverse: #ffffff; 63 --v2-border-primary: #d1d9e0; 64 --v2-border-secondary: #c4cdd5; 65 --v2-border-focus: #0969da; 66 --v2-accent-primary: #0969da; 67 --v2-accent-hover: #0550ae; 68 --v2-state-success: #22c55e; 69 --v2-state-warning: #f59e0b; 70 --v2-state-error: #ef4444; 71 --v2-state-info: #3b82f6; 72 } 73</style> 74`,u=` 75<style id="iframe-v2-variables"> 76 :root { 77 --v2-bg-primary: #282828; 78 --v2-bg-secondary: #3c3836; 79 --v2-bg-card: #232221; 80 --v2-bg-overlay: rgba(0, 0, 0, 0.7); 81 --v2-bg-hover: rgba(235, 219, 178, 0.08); 82 --v2-text-primary: #ebdbb2; 83 --v2-text-secondary: #bdae93; 84 --v2-text-tertiary: #a89984; 85 --v2-text-inverse: #282828; 86 --v2-border-primary: rgba(235, 219, 178, 0.14); 87 --v2-border-secondary: rgba(235, 219, 178, 0.2); 88 --v2-border-focus: #fabd2f;
89 --v2-accent-primary: #fabd2f; 90 --v2-accent-hover: #d79921; 91 --v2-state-success: #22c55e; 92 --v2-state-warning: #f59e0b; 93 --v2-state-error: #ef4444; 94 --v2-state-info: #3b82f6; 95 } 96</style> 97`,m=["--v2-bg-primary","--v2-bg-secondary","--v2-bg-card","--v2-bg-overlay","--v2-bg-hover","--v2-text-primary","--v2-text-secondary","--v2-text-tertiary","--v2-text-inverse","--v2-border-primary","--v2-border-secondary","--v2-border-focus","--v2-accent-primary","--v2-accent-hover","--v2-state-success","--v2-state-warning","--v2-state-error","--v2-state-info"],p=["ä¸é®å¤å¶ Prompt","ä¸é®å¤å¶å§æ¬è®¾å®","ä¸é®å¤å¶é ç½®è¯","ä¸é®å¤å¶å½ååæ°","å¤å¶è§è²ä¿¡æ¯åå¼åºç½","å¤å¶å档信æ¯","å¤å¶å®æ´æ¡£æ¡","çæå¹¶å¤å¶è§è²è®¾å®","çæå¹¶å¤å¶è§è²ä¿¡æ¯","çæå¹¶å¤å¶æ¡£æ¡","çæå¹¶å½å ¥æ¡£æ¡","çæå¹¶å¤å¶","çæå¹¶å½å ¥","å¤å¶å§æ¬è®¾å®","å¤å¶è§è²è®¾å®","å¤å¶è§è²ä¿¡æ¯","å¤å¶é ç½®ææ¬","å¤å¶é ç½®","å¤å¶æ¡£æ¡ä¿¡æ¯","å¤å¶è®¾ç½®å¹¶å¼å§æ¸¸æ","å¤å¶ä¿¡æ¯","å¼å¯ä½ ç人ç","å¼å§åä½","çæè§è²å¡","å¼å§æ¸¸æ","ä¸é®å¤å¶","å¤å¶","çæ"],h="EXTRACT_CHARACTER_PROFILE",g="CHARACTER_PROFILE_RESULT";function f(e){let{activeElement:t,iframeElement:r,lastRealInteractionAt:n,now:a}=e,o=e.windowMs??2500;return null!=r&&t===r||a-n<=o}var v=r(37354);let b=` 98<style id="mobile-iframe-gutter-fix"> 99 @media (pointer: coarse) { 100 html, body { 101 padding-left: 0 !important; 102 padding-right: 0 !important; 103 margin-left: 0 !important; 104 margin-right: 0 !important; 105 } 106 } 107</style> 108`,y=` 109<style id="mobile-perf-guard"> 110 @media (pointer: coarse) { 111 /* â å ¨å±ç¦ç¨ backdrop-filterï¼ææºæ¯å¸§é½è¦æ¨¡ç³èæ¯ææåç´ ï¼æè GPU */ 112 * { 113 backdrop-filter: none !important; 114 -webkit-backdrop-filter: none !important; 115 } 116 117 /* â¡ è£ é¥°ç²å/å æï¼åªåå¨ç»å模ç³ï¼ä¸èèç¹ã 118 * ç¦æ¢å串 star 宽æ¾å¹é ï¼ä¼è¯¯ä¼¤ intro-start-screenï¼ã */ 119 [class*="particle"], [class*="particles"], 120 [class*="bg-circle"], [class*="bg-decoration"], 121 [class*="bubbles"], [class*="orb"], [class*="blob"], 122 [class*="aurora"], [class*="light-ring"], [class*="glow-ring"], 123 .star, .stars, .star-field, [class*="stars"], [class*="star-"], [class*="-star-"], [class$="-star"], 124 [class*="float-element"], [class*="floating"], 125 .circle-1, .circle-2, .circle-3, .circle-4, .circle-5 { 126 animation: none !important; 127 -webkit-animation: none !important; 128 filter: none !important; 129 -webkit-filter: none !important; 130 } 131 132 /* ⢠ç¦ç¨ inline style åç filter:blur */ 133 *[style*="filter"][style*="blur"], 134 *[style*="filter: blur"], 135 *[style*="filter:blur"] { 136 filter: none !important; 137 -webkit-filter: none !important; 138 } 139 140 /* ⣠è¿å ¥å±ç«å»å¯ç¹ï¼åæ¶å»¶è¿æ·¡å ¥ã 141 * NEVER 对 #loading / #splash / #loading-screen / *screen å display:noneã */ 142 #loading-screen button, 143 #loading-screen [onclick], 144 .loading-screen button, 145 .loading-enter-btn, 146 .loading-skip, 147 #splash button, 148 #splash [onclick], 149 .splash-screen button, 150 .splash-screen [onclick], 151 .notification-bar, 152 .skip-btn { 153 opacity: 1 !important; 154 animation: none !important; 155 visibility: visible !important; 156 pointer-events: auto !important; 157 } 158 /* å¼åºå¸¸æ body overflow:hiddenï¼ææºä¸æ¢å¤å¯æ»ï¼é¿å è¯¯ä»¥ä¸ºå¡æ» */ 159 html, body { 160 overflow: auto !important; 161 } 162 163 /* â¤ åæ¢é«èæ éå¨ç»ï¼ä¸ååè½åå¨ç»ï¼æé¤ button/input/a/label/cardï¼ */ 164 [class*="spin"]:not(button):not(input), 165 [class*="rotate"]:not(button):not(input), 166 [class*="glow"]:not(button):not(input), 167 [class*="pulse"]:not(button):not(a):not(input), 168 [class*="float"]:not(button):not(a):not(label):not(div[class*="card"]) { 169 animation: none !important; 170 -webkit-animation: none !important; 171 } 172 *[style*="animation"][style*="infinite"], 173 *[style*="-webkit-animation"][style*="infinite"] { 174 animation-iteration-count: 1 !important; 175 -webkit-animation-iteration-count: 1 !important; 176 } 177 178 /* ⥠å¡ç hover ç translateY/scale å¨è§¦å±ä¸æ æä¹ */ 179 .card:hover, .setting-card:hover, [class*="card"]:hover { 180 transform: none !important; 181 } 182 } 183</style> 184`;var x=r(32655);function w(e){let t=e.trim().toLowerCase();return t.startsWith("<!doctype")||t.startsWith("<html")||t.includes("<html")&&t.includes("</html>")}let k=` 185<style id="iframe-hide-scrollbar"> 186 html, body { 187 scrollbar-width: none; 188 -ms-overflow-style: none; 189 } 190 html::-webkit-scrollbar, 191 body::-webkit-scrollbar {
192 display: none; 193 width: 0; 194 height: 0; 195 } 196</style> 197`,S=` 198<style id="custom-modal-styles"> 199 .custom-modal-overlay { 200 position: fixed; 201 top: 0; 202 left: 0; 203 right: 0; 204 bottom: 0; 205 background: var(--v2-bg-overlay); 206 display: flex; 207 align-items: center; 208 justify-content: center; 209 z-index: 999999; 210 animation: modalFadeIn 0.2s ease-out; 211 padding: 16px; 212 box-sizing: border-box; 213 } 214 215 .custom-modal-box { 216 background: var(--v2-bg-card); 217 border-radius: 12px; 218 box-shadow: 0 20px 60px rgba(0, 0, 0, 0.3); 219 max-width: 360px; 220 width: 100%; 221 overflow: hidden; 222 animation: modalSlideIn 0.25s ease-out; 223 } 224 225 .custom-modal-content { 226 padding: 24px; 227 } 228 229 .custom-modal-message { 230 font-size: 15px; 231 line-height: 1.5; 232 color: var(--v2-text-primary); 233 word-break: break-word; 234 white-space: pre-wrap; 235 margin: 0; 236 } 237 238 .custom-modal-input { 239 width: 100%; 240 padding: 12px; 241 border: 1px solid var(--v2-border-primary); 242 border-radius: 8px; 243 font-size: 14px; 244 margin-top: 16px; 245 box-sizing: border-box; 246 outline: none; 247 transition: border-color 0.2s; 248 background: var(--v2-bg-card); 249 color: var(--v2-text-primary); 250 } 251 252 .custom-modal-input:focus { 253 border-color: var(--v2-border-focus); 254 } 255 256 .custom-modal-buttons { 257 display: flex; 258 border-top: 1px solid var(--v2-border-primary); 259 } 260 261 .custom-modal-btn { 262 flex: 1; 263 padding: 14px 16px; 264 border: none; 265 background: transparent; 266 font-size: 15px; 267 font-weight: 500; 268 cursor: pointer; 269 transition: background-color 0.15s; 270 } 271 272 .custom-modal-btn:hover { 273 background-color: var(--v2-bg-hover); 274 } 275 276 .custom-modal-btn:active { 277 background-color: var(--v2-bg-active); 278 } 279 280 .custom-modal-btn-cancel { 281 color: var(--v2-text-secondary); 282 border-right: 1px solid var(--v2-border-primary); 283 } 284 285 .custom-modal-btn-confirm { 286 color: var(--v2-accent-primary); 287 } 288 289 .custom-modal-btn-single { 290 color: var(--v2-accent-primary); 291 } 292 293 @keyframes modalFadeIn { 294 from { opacity: 0; } 295 to { opacity: 1; } 296 } 297 298 @keyframes modalSlideIn { 299 from { 300 opacity: 0; 301 transform: scale(0.95) translateY(-10px); 302 } 303 to { 304 opacity: 1; 305 transform: scale(1) translateY(0); 306 } 307 } 308</style> 309`,C=` 310<script> 311 (function() { 312 // ä¿ååçæ¹æ³çå¼ç¨ï¼ä»¥é²ä¸ä¸éè¦ï¼ 313 var nativeAlert = window.alert; 314 var nativeConfirm = window.confirm; 315 var nativePrompt = window.prompt; 316 317 /** 318 * å建èªå®ä¹å¼¹çª 319 * @param {string} message - æ¾ç¤ºçæ¶æ¯ 320 * @param {string} type - å¼¹çªç±»å: 'alert' | 'confirm' | 'prompt' 321 * @param {string} defaultValue - prompt çé»è®¤å¼ 322 * @returns {Promise} - è¿åç¨æ·çéæ©ç»æ 323 */ 324 function createCustomModal(message, type, defaultValue) { 325 return new Promise(function(resolve) { 326 // å建é®ç½©å± 327 var overlay = document.createElement('div'); 328 overlay.className = 'custom-modal-overlay'; 329 330 // å建弹çªå®¹å¨ 331 var box = document.createElement('div'); 332 box.className = 'custom-modal-box'; 333 334 // å建å 容åºå 335 var content = document.createElement('div'); 336 content.className = 'custom-modal-content'; 337 338 // åå»ºæ¶æ¯ææ¬ 339 var messageEl = document.createElement('p'); 340 messageEl.className = 'custom-modal-message'; 341 messageEl.textContent = message || ''; 342 content.appendChild(messageEl); 343 344 // å¦ææ¯ promptï¼æ·»å è¾å ¥æ¡ 345 var input = null; 346 if (type === 'prompt') { 347 input = document.createElement('input'); 348 input.type = 'text'; 349 input.className = 'custom-modal-input'; 350 input.value = defaultValue || ''; 351 input.placeholder = (window.__DESCRIPTION_IFRAME_I18N__ && window.__DESCRIPTION_IFRAME_I18N__.promptPlaceholder) || 'Please enter...'; 352 content.appendChild(input); 353 } 354 355 box.appendChild(content); 356 357 // å建æé®åºå 358 var buttons = document.createElement('div'); 359 buttons.className = 'custom-modal-buttons'; 360 361 // å ³éå¼¹çªç彿° 362 function closeModal(result) { 363 overlay.style.opacity = '0'; 364 overlay.style.transition = 'opacity 0.15s'; 365 setTimeout(function() { 366 if (overlay.parentNode) { 367 overlay.parentNode.removeChild(overlay); 368 } 369 resolve(result); 370 }, 150); 371 } 372 373 if (type === 'alert') { 374 // alert åªæä¸ä¸ªç¡®å®æé® 375 var okBtn = document.createElement('button'); 376 okBtn.className = 'custom-modal-btn custom-modal-btn-single'; 377 okBtn.textContent = (window.__DESCRIPTION_IFRAME_I18N__ && window.__DESCRIPTION_IFRAME_I18N__.ok) || 'OK'; 378 okBtn.onclick = function() { closeModal(undefined); }; 379 buttons.appendChild(okBtn); 380 } else if (type === 'confirm') { 381 // confirm æåæ¶åç¡®å®æé® 382 var cancelBtn = document.createElement('button'); 383 cancelBtn.className = 'custom-modal-btn custom-modal-btn-cancel'; 384 cancelBtn.textContent = (window.__DESCRIPTION_IFRAME_I18N__ && window.__DESCRIPTION_IFRAME_I18N__.cancel) || 'Cancel'; 385 cancelBtn.onclick = function() { closeModal(false); }; 386 buttons.appendChild(cancelBtn); 387 388 var confirmBtn = document.createElement('button'); 389 confirmBtn.className = 'custom-modal-btn custom-modal-btn-confirm'; 390 confirmBtn.textContent = (window.__DESCRIPTION_IFRAME_I18N__ && window.__DESCRIPTION_IFRAME_I18N__.ok) || 'OK'; 391 confirmBtn.onclick = function() { closeModal(true); }; 392 buttons.appendChild(confirmBtn); 393 } else if (type === 'prompt') { 394 // prompt æåæ¶åç¡®å®æé® 395 var cancelBtn = document.createElement('button'); 396 cancelBtn.className = 'custom-modal-btn custom-modal-btn-cancel'; 397 cancelBtn.textContent = (window.__DESCRIPTION_IFRAME_I18N__ && window.__DESCRIPTION_IFRAME_I18N__.cancel) || 'Cancel'; 398 cancelBtn.onclick = function() { closeModal(null); }; 399 buttons.appendChild(cancelBtn); 400 401 var confirmBtn = document.createElement('button'); 402 confirmBtn.className = 'custom-modal-btn custom-modal-btn-confirm'; 403 confirmBtn.textContent = (window.__DESCRIPTION_IFRAME_I18N__ && window.__DESCRIPTION_IFRAME_I18N__.ok) || 'OK'; 404 confirmBtn.onclick = function() { closeModal(input.value); }; 405 buttons.appendChild(confirmBtn); 406 407 // æ¯æå车确认 408 input.onkeydown = function(e) { 409 if (e.key === 'Enter') { 410 closeModal(input.value); 411 } 412 }; 413 } 414 415 box.appendChild(buttons); 416 overlay.appendChild(box); 417 document.body.appendChild(overlay); 418 419 // å¦ææ¯ promptï¼èªå¨èç¦è¾å ¥æ¡ 420 if (input) { 421 setTimeout(function() { input.focus(); }, 100); 422 } 423 424 // ç¹å»é®ç½©å±å ³éï¼ä» 对 alert çæï¼ 425 overlay.onclick = function(e) { 426 if (e.target === overlay && type === 'alert') { 427 closeModal(undefined); 428 } 429 }; 430 }); 431 } 432 433 /** 434 * è¦ç window.alert 435 * ç±äºåç alert æ¯åæ¥çï¼ä½æä»¬çå®ç°æ¯å¼æ¥ç 436 * è¿å¯è½ä¼å½±åæäºä¾èµåæ¥è¡ä¸ºç代ç 437 */ 438 window.alert = function(message) { 439 createCustomModal(message, 'alert'); 440 }; 441 442 /** 443 * ä¸è¦çåç window.confirm / window.promptï¼åç API ä¸ºåæ¥è¿åï¼å¼æ¥èªå®ä¹å¼¹çªæ æ³ä¿æè¯ä¹ï¼ 444 * ä¼å¯¼è´ iframe å èæ¬é»è¾éä¹±ï¼å°¤å ¶ç§»å¨ç«¯ WebViewï¼ã 445 * éè¦å¼æ¥ç¡®è®¤/è¾å ¥æ¶è¯·ä½¿ç¨ window.customConfirm / window.customPromptã 446 */ 447 448 /** 449 * æä¾å¼æ¥çæ¬çæ¹æ³ï¼ä¾éè¦çæ£å¼æ¥è¡ä¸ºç代ç ä½¿ç¨ 450 */ 451 window.customAlert = function(message) { 452 return createCustomModal(message, 'alert'); 453 }; 454 455 window.customConfirm = function(message) { 456 return createCustomModal(message, 'confirm'); 457 }; 458 459 window.customPrompt = function(message, defaultValue) { 460 return createCustomModal(message, 'prompt', defaultValue); 461 }; 462 })(); 463</script> 464`,I=` 465<script> 466 (function() { 467 /** 468 * æ§è¡å¤å¶æä½çæ ¸å¿å½æ° 469 * éè¿ postMessage åéå 容å°ç¶çªå£çè¾å ¥æ¡ 470 */ 471 function sendToInput(textStr) { 472 return new Promise(function(resolve, reject) { 473 try { 474 var text = textStr == null ? '' : String(textStr); 475 var msg; 476 if (window.__QUICK_START_CAPTURE) { 477 window.__QUICK_START_CAPTURE = false;
478 window.__QUICK_START_EXTRACT_DONE = true; 479 msg = { type: 'CHARACTER_PROFILE_RESULT', text: text }; 480 } else { 481 msg = { type: 'COPY_TO_INPUT', text: text }; 482 } 483 // 沿 parent é¾å䏿éï¼è天页è¥è¢«åµå¥å¨å¤å± iframe / é¨å WebView ä¸ï¼ä» post å° 484 // ç´æ¥ parent æ¶ï¼æ¿è½½ React çå¬å¨ççªå£å¯è½æ¶ä¸å° messageã 485 var w = window; 486 var depth = 0; 487 while (depth < 16 && w.parent) { 488 try { 489 var p = w.parent; 490 if (!p || p === w) break; 491 p.postMessage(msg, '*'); 492 w = p; 493 } catch (e) { 494 break; 495 } 496 depth++; 497 } 498 resolve(); 499 } catch (err) { 500 reject(err); 501 } 502 }); 503 } 504 505 /** 506 * æ¦æª document.querySelectorï¼å ¼å®¹é£æå¹³å°éæ©å¨ 507 * è§è²å¡ç¨ .chatMsgTextarea textarea æ .chatMsgTextarea æ¾è¾å ¥æ¡ï¼ 508 * 卿们平å°è¿äºå ç´ ä¸åå¨ï¼è¿å代ç对象æ value èµå¼è½¬æ postMessage 509 */ 510 var originalQuerySelector = document.querySelector.bind(document); 511 document.querySelector = function(selector) { 512 var result = originalQuerySelector(selector); 513 if (result) return result; 514 // å ¼å®¹é£æå¹³å°çè¾å ¥æ¡éæ©å¨ 515 var inputSelectors = ['.chatMsgTextarea textarea', '.chatMsgTextarea', '#chat-input', '.chat-input textarea']; 516 if (inputSelectors.indexOf(selector) !== -1) { 517 // è¿å代ç对象ï¼value èµå¼è§¦å postMessage 518 return { 519 _isProxy: true, 520 _value: '', 521 get value() { return this._value; }, 522 set value(v) { 523 this._value = v; 524 sendToInput(String(v)); 525 }, 526 dispatchEvent: function() { return true; }, 527 focus: function() {}, 528 blur: function() {} 529 }; 530 } 531 return null; 532 }; 533 534 /** 535 * éç¨å¤å¶å½æ° - æ¯ææåæ°åæ åæ°è°ç¨ 536 * æ åæ°æ¶ä» #clipboard-output è·åå 容 537 */ 538 function universalCopyToClipboard(text) { 539 return new Promise(function(resolve, reject) { 540 var textToCopy = text; 541 542 // å¦ææ²¡æä¼ éåæ°ï¼å°è¯ä»å¸¸è§å ç´ è·åå 容 543 if (textToCopy === undefined || textToCopy === null || textToCopy === '') { 544 // ä¼å ä» #clipboard-output è·åï¼è§è²å¡ç常ç¨ï¼ 545 var outputDiv = document.getElementById('clipboard-output'); 546 if (outputDiv) { 547 textToCopy = outputDiv.textContent || outputDiv.innerText; 548 } 549 550 // å¦æè¿æ¯æ²¡æï¼å°è¯å ¶ä»å¸¸è§éæ©å¨ 551 if (!textToCopy || textToCopy === '') { 552 var copyableElement = document.querySelector('[data-copyable]') || 553 document.querySelector('.copyable') || 554 document.querySelector('[data-copy-content]'); 555 if (copyableElement) { 556 textToCopy = copyableElement.textContent || copyableElement.innerText; 557 } 558 } 559 560 // å¦æè¿æ¯æ²¡æå 容ï¼å°è¯ä»æè¿ç¹å»çæé®çç¶å ç´ æç¸é»å ç´ è·å 561 if (!textToCopy || textToCopy === '') { 562 // å°è¯ä»äºä»¶æºè·åï¼å¦ææçè¯ï¼ 563 var activeElement = document.activeElement; 564 if (activeElement && activeElement.tagName === 'BUTTON') { 565 // å°è¯ä»æé®ç data 屿§è·å 566 textToCopy = activeElement.getAttribute('data-copy-text') || 567 activeElement.getAttribute('data-clipboard-text'); 568 569 // å°è¯ä»æé®çç¸é»å ç´ è·å 570 if (!textToCopy) { 571 var sibling = activeElement.previousElementSibling || activeElement.nextElementSibling; 572 if (sibling) { 573 textToCopy = sibling.textContent || sibling.innerText; 574 } 575 } 576 577 // å°è¯ä»æé®çç¶å ç´ è·å 578 if (!textToCopy && activeElement.parentElement) { 579 var parent = activeElement.parentElement; 580 // æé¤æé®æ¬èº«çææ¬ 581 var clone = parent.cloneNode(true); 582 var buttons = clone.querySelectorAll('button'); 583 for (var i = 0; i < buttons.length; i++) { 584 buttons[i].remove(); 585 } 586 textToCopy = clone.textContent || clone.innerText; 587 } 588 } 589 } 590 } 591 592 // æç»éªè¯ 593 if (!textToCopy || String(textToCopy).trim() === '') { 594 // ä¸è¦ç´æ¥ rejectï¼èæ¯æ¾ç¤ºå好æç¤º 595 reject(new Error((window.__DESCRIPTION_IFRAME_I18N__ && window.__DESCRIPTION_IFRAME_I18N__.copyNotFound) || 'No content found to copy. Make sure there is copyable content on the page')); 596 return; 597 } 598 599 sendToInput(String(textToCopy).trim()).then(resolve).cat
599ch(reject); 600 }); 601 } 602 603 /** 604 * è¦ç navigator.clipboard.writeText 605 * è¿æ¯å ³é®ï¼è§è²å¡çä¸ç copyLoginInfo ç彿°ç´æ¥è°ç¨ navigator.clipboard.writeText 606 * 卿²ç®± iframe ä¸ navigator.clipboard æ¯ undefinedï¼æä»¥éè¦ polyfill 607 */ 608 if (!navigator.clipboard) { 609 navigator.clipboard = {}; 610 } 611 navigator.clipboard.writeText = function(text) { 612 return sendToInput(text); 613 }; 614 // åæ¶æä¾ readText ç空å®ç°ï¼é²æ¢å ¶ä»ä»£ç æ¥é 615 if (!navigator.clipboard.readText) { 616 navigator.clipboard.readText = function() { 617 return Promise.reject(new Error((window.__DESCRIPTION_IFRAME_I18N__ && window.__DESCRIPTION_IFRAME_I18N__.clipboardReadUnavailable) || 'Clipboard reading is unavailable in this environment')); 618 }; 619 } 620 621 // ç«å³è®¾ç½®å½æ° 622 window.__copyToClipboard = universalCopyToClipboard; 623 window.copyToClipboard = universalCopyToClipboard; 624 625 // 空ç selectScenario 彿°ï¼é²æ¢æ¥é 626 window.selectScenario = function(scenario) { 627 // ç©ºå½æ°ï¼é²æ¢æ¥é 628 }; 629 630 /** 631 * å¨ DOMContentLoaded å忬¡è®¾ç½®ï¼ç¡®ä¿è¦çè§è²å¡çç彿° 632 */ 633 document.addEventListener('DOMContentLoaded', function() { 634 window.__copyToClipboard = universalCopyToClipboard; 635 window.copyToClipboard = universalCopyToClipboard; 636 // 忬¡ç¡®ä¿ navigator.clipboard.writeText 被è¦ç 637 if (!navigator.clipboard) { 638 navigator.clipboard = {}; 639 } 640 navigator.clipboard.writeText = function(text) { 641 return sendToInput(text); 642 }; 643 }); 644 645 /** 646 * å¨é¡µé¢å®å ¨å è½½åæå䏿¬¡è®¾ç½®ï¼ç¡®ä¿è¦çææèæ¬å®ä¹ç彿° 647 */ 648 window.addEventListener('load', function() { 649 window.__copyToClipboard = universalCopyToClipboard; 650 window.copyToClipboard = universalCopyToClipboard; 651 }); 652 653 /** 654 * ä½¿ç¨ MutationObserver çå¬èæ¬æ§è¡ï¼ç¡®ä¿æä»¬ç彿°å§ç»æ¯æç»çæ¬ 655 */ 656 setTimeout(function() { 657 window.__copyToClipboard = universalCopyToClipboard; 658 window.copyToClipboard = universalCopyToClipboard; 659 }, 0); 660 661 setTimeout(function() { 662 window.__copyToClipboard = universalCopyToClipboard; 663 window.copyToClipboard = universalCopyToClipboard; 664 }, 100); 665 666 /** 667 * æ¦æª document.execCommand('copy') 668 * å¾å¤æ§çè§è²å¡çä½¿ç¨ textarea + execCommand çæ¹å¼å¤å¶ 669 * æä»¬éè¦æ¦æªè¿ç§æ¹å¼ï¼è·åéä¸çææ¬å¹¶åéå°è¾å ¥æ¡ 670 */ 671 var originalExecCommand = document.execCommand.bind(document); 672 document.execCommand = function(command) { 673 if (command === 'copy') { 674 // è·åå½åéä¸çææ¬ 675 var selectedText = ''; 676 var selection = window.getSelection(); 677 if (selection && selection.toString()) { 678 selectedText = selection.toString(); 679 } 680 681 // å¦ææ²¡æé䏿æ¬ï¼å°è¯ä» activeElement è·åï¼éå¸¸æ¯ textareaï¼ 682 if (!selectedText && document.activeElement) { 683 var el = document.activeElement; 684 if (el.tagName === 'TEXTAREA' || el.tagName === 'INPUT') { 685 selectedText = el.value; 686 } 687 } 688 689 // 妿è·åå°äºææ¬ï¼åéå°è¾å ¥æ¡ 690 if (selectedText && selectedText.trim()) { 691 sendToInput(selectedText.trim()); 692 return true; // è¿å true 表示å½ä»¤æ§è¡æå 693 } 694 } 695 // å ¶ä»å½ä»¤ææ²¡æè·åå°ææ¬æ¶ï¼è°ç¨åå§æ¹æ³ 696 return originalExecCommand.apply(document, arguments); 697 }; 698 })(); 699</script> 700`,j=` 701<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no, viewport-fit=cover"> 702<style> 703 /* 鲿¢ iOS Safari çåå»ç¼©æ¾ */ 704 * { 705 touch-action: manipulation; 706 } 707 /* å¾çæå è½½å ä½ - 鲿¢å¸å±æå¨ï¼ä½¿ç¨ V2 åé */ 708 img[loading="lazy"] { 709 background: linear-gradient(90deg, var(--v2-skeleton-base) 25%, var(--v2-skeleton-highlight) 50%, var(--v2-skeleton-base) 75%); 710 background-size: 200% 100%; 711 animation: shimmer 1.5s infinite; 712 } 713 @keyframes shimmer { 714 0% { background-position: 200% 0; } 715 100% { background-position: -200% 0; } 716 } 717</style> 718`,M=` 719<script> 720(function() { 721 var lastHeight = 0; 722 var queued = false;
723 function getHeight() { 724 var html = document.documentElement; 725 var body = document.body; 726 return Math.ceil(Math.max( 727 html ? html.scrollHeight : 0, 728 body ? body.scrollHeight : 0, 729 html ? html.offsetHeight : 0, 730 body ? body.offsetHeight : 0, 731 html ? html.clientHeight : 0 732 )); 733 } 734 function reportHeight() { 735 var height = getHeight(); 736 if (!height || Math.abs(height - lastHeight) < 2) return; 737 lastHeight = height; 738 try { 739 parent.postMessage({ type: 'DESCRIPTION_IFRAME_HEIGHT', height: height }, '*'); 740 } catch (e) {} 741 } 742 function scheduleReport() { 743 if (queued) return; 744 queued = true; 745 requestAnimationFrame(function() { 746 queued = false; 747 reportHeight(); 748 }); 749 } 750 if (document.readyState === 'loading') document.addEventListener('DOMContentLoaded', reportHeight); 751 else reportHeight(); 752 window.addEventListener('load', reportHeight); 753 window.addEventListener('resize', scheduleReport); 754 if (typeof ResizeObserver !== 'undefined') { 755 var ro = new ResizeObserver(scheduleReport); 756 if (document.documentElement) ro.observe(document.documentElement); 757 if (document.body) ro.observe(document.body); 758 document.addEventListener('DOMContentLoaded', function() { 759 if (document.body) ro.observe(document.body); 760 }); 761 } 762 if (typeof MutationObserver !== 'undefined' && document.documentElement) { 763 new MutationObserver(scheduleReport).observe(document.documentElement, { 764 childList: true, 765 subtree: true, 766 attributes: true, 767 characterData: true 768 }); 769 } 770 setTimeout(reportHeight, 50); 771 setTimeout(reportHeight, 250); 772 setTimeout(reportHeight, 1000); 773})(); 774</script> 775`,N=` 776<script> 777(function() { 778 function canScrollY(el) { 779 if (!el || el === document || el === window) return false; 780 var style = window.getComputedStyle(el); 781 var overflowY = style.overflowY; 782 if (overflowY !== 'auto' && overflowY !== 'scroll') return false; 783 return el.scrollHeight > el.clientHeight + 1; 784 } 785 function findScrollableAncestor(start) { 786 var el = start; 787 while (el && el !== document.documentElement) { 788 if (canScrollY(el)) return el; 789 el = el.parentElement; 790 } 791 return canScrollY(document.scrollingElement) ? document.scrollingElement : null; 792 } 793 document.addEventListener('touchmove', function(e) { 794 var target = e.target; 795 if (!target || !target.nodeType) return; 796 if (findScrollableAncestor(target)) { 797 e.stopImmediatePropagation(); 798 } 799 }, { capture: true, passive: true }); 800})(); 801</script> 802`,E=` 803<script> 804(function() { 805 var mq = window.matchMedia && window.matchMedia('(pointer: coarse)'); 806 if (!mq || !mq.matches) return; 807 function syncIframeInnerHeight() { 808 var h = window.innerHeight; 809 if (window.visualViewport && window.visualViewport.height > 0) { 810 h = Math.round(window.visualViewport.height); 811 } 812 if (h > 0) { 813 document.documentElement.style.setProperty('--iframe-inner-h', h + 'px'); 814 } 815 } 816 syncIframeInnerHeight(); 817 window.addEventListener('resize', syncIframeInnerHeight); 818 window.addEventListener('orientationchange', syncIframeInnerHeight); 819 if (window.visualViewport) { 820 window.visualViewport.addEventListener('resize', syncIframeInnerHeight); 821 } 822 if (document.readyState === 'loading') { 823 document.addEventListener('DOMContentLoaded', syncIframeInnerHeight); 824 } 825})(); 826</script> 827<style id="mobile-opening-overlay-fix"> 828 @media (pointer: coarse) { 829 /* å¼åºå±ï¼fixed+100vh â absolute+iframe å¯è§é«åº¦ï¼é¿å è·³è¿æé®è½å¨è£ååº */ 830 .opening, #opening, 831 .opening-screen, #opening-screen, 832 .intro-overlay, #intro-overlay, 833 #splash, .splash-screen, .splash, #splash-screen { 834 position: absolute !important; 835 top: 0 !important; 836 left: 0 !important; 837 right: 0 !important; 838 width: 100% !important; 839 height: var(--iframe-inner-h, 100dvh) !important; 840 min-height: var(--iframe-inner-h, 100dvh) !important; 841 max-height: var(--iframe-inner-h, 100dvh) !important; 842 } 843 844 .skip-btn, [class*="skip-btn"], #skip-btn, #skip-button, button#skip { 845 position: absolute !important; 846 top: auto !important; 847 z-index: 2147483646 !important; 848 bottom: max(12px, env(safe-area-inset-bottom, 0px)) !important; 849 right: max(12px, env(safe-area-inset-right, 0px)) !important; 850 pointer-events: auto !important; 851 } 852 } 853</style> 854`,_=` 855<script> 856 (function() { 857 // æä¾ localStorage çå åæ¿ä»£å®ç° 858 try { 859 // æµè¯ localStorage æ¯å¦å¯ç¨ 860 window.localStorage.getItem('__test__'); 861 } catch(e) { 862 // localStorage ä¸å¯ç¨ï¼æä¾å åæ¿ä»£ 863 var memoryStorage = {}; 864 Object.defineProperty(window, 'localStorage', { 865 value: { 866 getItem: function(key) { return memoryStorage[key] || null; }, 867 setItem: function(key, value) { memoryStorage[key] = String(value); }, 868 removeItem: function(key) { delete memoryStorage[key]; }, 869 clear: function() { memoryStorage = {}; }, 870 get length() { return Object.keys(memoryStorage).length; }, 871 key: function(i) { return Object.keys(memoryStorage)[i] || null; } 872 }, 873 writable: false, 874 configurable: false 875 }); 876 } 877 878 // æä¾ sessionStorage çå åæ¿ä»£å®ç° 879 try { 880 window.sessionStorage.getItem('__test__'); 881 } catch(e) { 882 var sessionMemory = {}; 883 Object.defineProperty(window, 'sessionStorage', { 884 value: { 885 getItem: function(key) { return sessionMemory[key] || null; }, 886 setItem: function(key, value) { sessionMemory[key] = String(value); }, 887 removeItem: function(key) { delete sessionMemory[key]; }, 888 clear: function() { sessionMemory = {}; }, 889 get length() { return Object.keys(sessionMemory).length; }, 890 key: function(i) { return Object.keys(sessionMemory)[i] || null; } 891 }, 892 writable: false, 893 configurable: false 894 }); 895 } 896 897 // æä¾ document.cookie çå®å ¨æ¿ä»£ 898 // æ²ç®± iframeï¼æ allow-same-originï¼è®¿é® document.cookie 伿 SecurityErrorï¼ 899 // é卿¤æä¾å åå®ç°ï¼é²æ¢è§è²å¡èæ¬çæªæè·å¼å¸¸å泡å°ç¶é¡µé¢è§¦å React é误边çã 900 try { 901 // å æµè¯ document.cookie æ¯å¦å¯ç¨ 902 void document.cookie; 903 } catch(e) {
904 var memoryCookies = {}; 905 try { 906 Object.defineProperty(document, 'cookie', { 907 get: function() { 908 return Object.keys(memoryCookies).map(function(k) { 909 return k + '=' + memoryCookies[k]; 910 }).join('; '); 911 }, 912 set: function(val) { 913 if (!val || typeof val !== 'string') return; 914 var pair = val.split(';')[0]; 915 var eqIdx = pair.indexOf('='); 916 if (eqIdx < 0) return; 917 var k = pair.slice(0, eqIdx).trim(); 918 var v = pair.slice(eqIdx + 1).trim(); 919 // æ£æµå 餿令ï¼è¿æ æ max-age=0ï¼ 920 var isDelete = /expires=Thu,s*01 Jan 1970/i.test(val) || /max-age=0/i.test(val); 921 if (isDelete) { delete memoryCookies[k]; } else { memoryCookies[k] = v; } 922 }, 923 configurable: true, 924 }); 925 } catch(e2) { 926 // defineProperty ä¹å¤±è´¥æ¶éé»å¤ç 927 } 928 } 929 })(); 930</script> 931`,T=` 932<script> 933 (function() { 934 // ç¨æ·æè¿ä¸æ¬¡å¨ iframe å çå®äº¤äºçãå 许 focusãæªæ¢æ¶é´æ³ 935 var allowFocusUntil = 0; 936 var ALLOW_WINDOW_MS = 1500; 937 function markUserInteraction() { 938 allowFocusUntil = Date.now() + ALLOW_WINDOW_MS; 939 } 940 ['pointerdown', 'mousedown', 'touchstart', 'keydown'].forEach(function(evt) { 941 window.addEventListener(evt, markUserInteraction, true); 942 }); 943 function isFocusAllowed() { 944 return Date.now() <= allowFocusUntil; 945 } 946 947 try { 948 var originalFocus = HTMLElement.prototype.focus; 949 HTMLElement.prototype.focus = function() { 950 if (!isFocusAllowed()) return; 951 try { return originalFocus.apply(this, arguments); } catch (e) { /* å¿½ç¥ */ } 952 }; 953 } catch (e) { /* prototype ä¸å¯åæ¶æ¾å¼å®å«ï¼ä¿æåçè¡ä¸º */ } 954 955 try { 956 // input/textarea ç select() åæ ·ä¼æç¦ç¹æè¿ iframeï¼ä¸¤è ç select åèªç¬ç«å®ä¹ï¼éåå«å®å«ï¼ 957 var originalInputSelect = HTMLInputElement.prototype.select; 958 HTMLInputElement.prototype.select = function() { 959 if (!isFocusAllowed()) return; 960 try { return originalInputSelect.apply(this, arguments); } catch (e) { /* å¿½ç¥ */ } 961 }; 962 } catch (e) { /* åä¸ */ } 963 964 try { 965 var originalTextAreaSelect = HTMLTextAreaElement.prototype.select; 966 HTMLTextAreaElement.prototype.select = function() { 967 if (!isFocusAllowed()) return; 968 try { return originalTextAreaSelect.apply(this, arguments); } catch (e) { /* å¿½ç¥ */ } 969 }; 970 } catch (e) { /* åä¸ */ } 971 972 try { 973 var originalWindowFocus = window.focus; 974 window.focus = function() { 975 if (!isFocusAllowed()) return; 976 try { return originalWindowFocus.apply(window, arguments); } catch (e) { /* å¿½ç¥ */ } 977 }; 978 } catch (e) { /* åä¸ */ } 979 980 // autofocus 屿§ç±æµè§å¨åçå¤çï¼prototype å®å«æ¦ä¸ä½ï¼éè¦æé¤ 981 function stripAutofocus() { 982 try { 983 var nodes = document.querySelectorAll('[autofocus]'); 984 for (var i = 0; i < nodes.length; i++) { 985 nodes[i].removeAttribute('autofocus'); 986 } 987 } catch (e) { /* å¿½ç¥ */ } 988 } 989 if (document.readyState === 'loading') { 990 document.addEventListener('DOMContentLoaded', stripAutofocus); 991 } else { 992 stripAutofocus(); 993 } 994 // å åºï¼å è½½æè¥å·²è¢«æ¢ç¦ç¹ï¼å¦ autofocus å¨å®å«åçæï¼ï¼æç¦ç¹è¿ç»ç¶é¡µ 995 window.addEventListener('load', function() { 996 if (isFocusAllowed()) return; 997 try { 998 var active = document.activeElement; 999 if (active && active !== document.body && typeof active.blur === 'function') { 1000 active.blur(); 1001 } 1002 } catch (e) { /* å¿½ç¥ */ } 1003 }); 1004 })(); 1005</script> 1006`,P=` 1007<script> 1008 (function() { 1009 // ç«å³æ§è¡ï¼æ 记页é¢å¼å§æ¸²ææ¶é´ 1010 var startTime = Date.now(); 1011 1012 // DOMContentLoaded åçä¼å - ç®åçï¼åªåå¿ è¦çæä½ 1013 document.addEventListener('DOMContentLoaded', function() { 1014 // ä½¿ç¨ requestAnimationFrame ç¡®ä¿é¦æ¬¡æ¸²æå®æååæ§è¡ä¼å 1015 requestAnimationFrame(function() { 1016 // å¾çæå è½½ - åªå¤ç没æ loading 屿§çå¾ç 1017 var images = document.querySelectorAll('img:not([loading])'); 1018 for (var i = 0; i < images.length; i++) { 1019 var img = images[i]; 1020 // é¦å±å¾çï¼å3å¼ ï¼ä½¿ç¨ eager å è½½ï¼å ¶ä»ä½¿ç¨ lazy 1021 if (i < 3) { 1022 img.setAttribute('loading', 'eager'); 1023 img.setAttribute('fetchpriority', 'high'); 1024 } else { 1025 img.setAttribute('loading', 'lazy'); 1026 } 1027 img.setAttribute('decoding', 'async'); 1028 } 1029 }); 1030 }); 1031 })(); 1032</script> 1033`,R=` 1034<style id="android-select-fix-style"> 1035 .android-select-wrap { position: relative; display: inline-block; min-width: 8em; max-width: 100%; vertical-align: middle; } 1036 .android-select-wrap select[data-android-native-hidden] { 1037 position: absolute !important; opacity: 0 !important; width: 100% !important; height: 100% !important; 1038 left: 0; top: 0; margin: 0 !important; padding: 0 !important; border: none !important; 1039 pointer-events: none !important; z-index: -1; 1040 } 1041 .android-select-wrap .android-select-btn { 1042 display: block; width: 100%; box-sizing: border-box; padding: 0.4em 0.6em; font: inherit; 1043 text-align: left; cursor: pointer; border: 1px solid var(--v2-border-primary, #ccc); border-radius: 6px; 1044 background: var(--v2-bg-card, #fff); color: var(--v2-text-primary, #111); 1045 } 1046 .android-select-wrap .android-select-btn:disabled { opacity: 0.6;
1046 cursor: not-allowed; } 1047 .android-select-overlay { position: fixed; inset: 0; z-index: 2147483646; background: rgba(0,0,0,0.4); } 1048 .android-select-sheet { 1049 position: fixed; left: 50%; top: 50%; transform: translate(-50%, -50%); 1050 width: 92vw; max-width: 560px; max-height: 68vh; overflow-y: auto; z-index: 2147483647; 1051 background: var(--v2-bg-card, #fff); border-radius: 12px; 1052 box-shadow: 0 8px 32px rgba(0,0,0,0.22); padding: 8px 0 0; 1053 } 1054 .android-select-sheet button { 1055 display: block; width: 100%; padding: 12px 16px; border: none; background: none; 1056 font: inherit; text-align: left; color: var(--v2-text-primary, #111); 1057 } 1058 .android-select-sheet button:active { background: var(--v2-bg-hover, rgba(0,0,0,0.06)); } 1059 .android-select-sheet .android-select-group-label { padding: 8px 16px 4px; font-size: 0.75em; color: var(--v2-text-tertiary, #999); } 1060 .android-select-multi-row { 1061 display: flex; align-items: center; gap: 12px; padding: 10px 16px; border-bottom: 1px solid var(--v2-border-primary, #eee); 1062 cursor: pointer; font: inherit; color: var(--v2-text-primary, #111); 1063 } 1064 .android-select-multi-row input { flex-shrink: 0; width: 1.1em; height: 1.1em; } 1065 .android-select-multi-row span { flex: 1; text-align: left; } 1066 .android-select-multi-done { padding: 12px 16px 16px; border-top: 1px solid var(--v2-border-primary, #eee); } 1067 .android-select-multi-done-btn { 1068 display: block; width: 100%; padding: 12px; border-radius: 8px; border: none; 1069 background: var(--v2-accent-primary, #2d2d2d); color: var(--v2-text-inverse, #fff); font: inherit; font-weight: 600; 1070 } 1071</style> 1072<script> 1073(function() { 1074 if (!/Android/i.test(navigator.userAgent || '')) return; 1075 function closeOverlay(el) { 1076 if (el && el.parentNode) el.parentNode.removeChild(el); 1077 } 1078 function dispatchChange(sel) { 1079 var ev; 1080 try { ev = new Event('change', { bubbles: true }); } catch (err) { 1081 ev = document.createEvent('Event'); ev.initEvent('change', true, true); 1082 } 1083 sel.dispatchEvent(ev); 1084 } 1085 function openSheet(sel, btn) { 1086 var overlay = document.createElement('div'); 1087 overlay.className = 'android-select-overlay'; 1088 overlay.addEventListener('click', function(e) { 1089 if (e.target === overlay) closeOverlay(overlay); 1090 }); 1091 var sheet = document.createElement('div'); 1092 sheet.className = 'android-select-sheet'; 1093 function applyIndex(idx) { 1094 if (idx < 0 || idx >= sel.options.length) return; 1095 sel.selectedIndex = idx; 1096 dispatchChange(sel); 1097 btn.textContent = sel.options[sel.selectedIndex] ? sel.options[sel.selectedIndex].text : ''; 1098 closeOverlay(overlay); 1099 } 1100 var i, node, j, o, b, gl; 1101 for (i = 0; i < sel.children.length; i++) { 1102 node = sel.children[i]; 1103 if (node.tagName === 'OPTGROUP') { 1104 gl = document.createElement('div'); 1105 gl.className = 'android-select-group-label'; 1106 gl.textContent = node.label || ''; 1107 sheet.appendChild(gl); 1108 for (j = 0; j < node.children.length; j++) { 1109 o = node.children[j]; 1110 if (o.tagName !== 'OPTION') continue; 1111 b = document.createElement('button'); 1112 b.type = 'button'; 1113 b.textContent = o.text; 1114 (function(idx) { 1115 b.addEventListener('click', function() { applyIndex(idx); }); 1116 })(o.index); 1117 sheet.appendChild(b); 1118 } 1119 } else if (node.tagName === 'OPTION') { 1120 b = document.createElement('button'); 1121 b.type = 'button'; 1122 b.textContent = node.text; 1123 (function(idx) { 1124 b.addEventListener('click', function() { applyIndex(idx); }); 1125 })(node.index); 1126 sheet.appendChild(b); 1127 } 1128 } 1129 overlay.appendChild(sheet); 1130 document.body.appendChild(overlay); 1131 } 1132 function openMultiSheet(sel, btn) { 1133 var overlay = document.createElement('div'); 1134 overlay.className = 'android-select-overlay'; 1135 overlay.addEventListener('click', function(e) { 1136 if (e.target === overlay) closeOverlay(overlay); 1137 }); 1138 var sheet = document.createElement('div'); 1139 sheet.className = 'android-select-sheet'; 1140 function onToggle(opt) { 1141 dispatchChange(sel); 1142 syncBtn(sel, btn); 1143 } 1144 function addRow(opt) { 1145 var row = document.createElement('label'); 1146 row.className = 'android-select-multi-row'; 1147 var cb = document.createElement('input'); 1148 cb.type = 'checkbox'; 1149 cb.checked = opt.selected; 1150 cb.disabled = opt.disabled; 1151 cb.addEventListener('change', function() { 1152 opt.selected = cb.checked; 1153 onToggle(opt); 1154 }); 1155 var span = document.createElement('span'); 1156 span.textContent = opt.text; 1157 row.appendChild(cb); 1158 row.appendChild(span); 1159 sheet.appendChild(row); 1160 } 1161 var i, node, j, o, gl; 1162 for (i = 0; i < sel.children.length; i++) { 1163 node = sel.children[i]; 1164 if (node.tagName === 'OPTGROUP') { 1165 gl = document.createElement('div'); 1166 gl.className = 'android-select-group-label'; 1167 gl.textContent = node.label || ''; 1168 sheet.appendChild(gl); 1169 for (j = 0; j < node.children.length; j++) { 1170 o = node.children[j]; 1171 if (o.tagName === 'OPTION') addRow(o); 1172 } 1173 } else if (node.tagName === 'OPTION') { 1174 addRow(node); 1175 } 1176 } 1177 var doneBar = document.createElement('div'); 1178 doneBar.className = 'android-select-multi-done'; 1179 var doneBtn = document.createElement('button'); 1180 doneBtn.type = 'button'; 1181 doneBtn.className = 'android-select-multi-done-btn'; 1182 doneBtn.textContent = (window.__DESCRIPTION_IFRAME_I18N__ && window.__DESCRIPTION_IFRAME_I18N__.done) || 'Done'; 1183 doneBtn.addEventListener('click', function() { closeOverlay(overlay); }); 1184 doneBar.appendChild(doneBtn); 1185 sheet.appendChild(doneBar); 1186 overlay.appendChild(sheet); 1187 document.body.appendChild(overlay); 1188 } 1189 function syncBtn(sel, btn) { 1190 if (sel.multiple) { 1191 var n = 0; 1192 var texts = []; 1193 var k, op; 1194 for (k = 0; k < sel.options.length; k++) { 1195 op = sel.options[k]; 1196 if (op.selected) { 1197 n++; 1198 if (texts.length < 3) texts.push(op.text); 1199 } 1200 } 1201 if (n === 0) btn.textContent = (window.__DESCRIPTION_IFRAME_I18N__ && window.__DESCRIPTION_IFRAME_I18N__.pleaseSelect) || 'Please select...'; 1202 else if (n <= 3 && texts.length === n) btn.textContent = texts.join('ï¼'); 1203 else { 1204 var selectedTemplate = (window.__DESCRIPTION_IFRAME_I18N__ && window.__DESCRIPTION_IFRAME_I18N__.selectedItems) || '{{count}} selected'; 1205 btn.textContent = selectedTemplate.replace('{{count}}', String(n)); 1206 } 1207 } else { 1208 var opt = sel.options[sel.selectedIndex]; 1209 btn.textContent = opt ? opt.text : ''; 1210 } 1211 btn.disabled = !!sel.disabled; 1212 } 1213 function enhanceSelect(sel) { 1214 if (sel.getAttribute('data-android-select-enhanced')) return; 1215 if (!sel.parentNode) return; 1216 sel.setAttribute('data-android-select-enhanced', '1'); 1217 sel.setAttribute('data-android-native-hidden', '1'); 1218 var wrap = document.createElement('span'); 1219 wrap.className = 'android-select-wrap'; 1220 sel.parentNode.insertBefore(wrap, sel); 1221 wrap.appendChild(sel); 1222 var btn = document.createElement('button'); 1223 btn.type = 'button'; 1224 btn.className = 'android-select-btn'; 1225 wrap.appendChild(btn); 1226 sel.addEventListener('change', function() { syncBtn(sel, btn); }); 1227 var mo = new MutationObserver(function() { syncBtn(sel, btn); }); 1228 mo.observe(sel, { attributes: true, attributeFilter: ['disabled', 'multiple'] }); 1229 btn.addEventListener('click', function() { 1230 if (sel.disabled) return; 1231 if (sel.multiple) openMultiSheet(sel, btn); 1232 else openSheet(sel, btn); 1233 }); 1234 syncBtn(sel, btn); 1235 } 1236 function scan() { 1237 var list = document.querySelectorAll('select:not([data-android-select-enhanced])'); 1238 var i; 1239 for (i = 0; i < list.length; i++) { 1240 enhanceSelect(list[i]); 1241 } 1242 } 1243 function run() { 1244 scan(); 1245 var mo = new MutationObserver(function() { scan(); }); 1246 mo.observe(document.documentElement, { childList: true, subtree: true }); 1247 } 1248 if (document.readyState === 'loading') { 1249 document.addEventListener('DOMContentLoaded', run); 1250 } else { 1251 run(); 1252 } 1253})(); 1254</script> 1255`,A=` 1256<style id="android-native-input-fix-style"> 1257 @media (pointer: coarse) { 1258 input[type="date"], input[type="time"], input[type="datetime-local"], 1259 input[type="month"], input[type="week"], input[type="color"], input[type="file"] { 1260 min-height: 44px; 1261 } 1262 input[type="range"] { 1263 min-height: 44px; 1264 touch-action: pan-x; 1265 } 1266 } 1267</style> 1268<script> 1269(function() { 1270 if (!/Android/i.test(navigator.userAgent || '')) return; 1271 function enhanceColor(inp) { 1272 if (inp.getAttribute('data-android-color-enhanced')) return; 1273 if (inp.type !== 'color') return; 1274 inp.setAttribute('data-android-color-enhanced', '1'); 1275 inp.addEventListener('click', function(e) { 1276 e.preventDefault(); 1277 e.stopPropagation(); 1278 var t = document.createElement('input'); 1279 t.type = 'color'; 1280 t.value = inp.value || '#000000'; 1281 t.setAttribute('aria-hidden', 'true'); 1282 t.style.cssText = 'position:fixed;left:0;top:0;width:100%;height:100%;opacity:0.02;z-index:2147483647;'; 1283 document.body.appendChild(t); 1284 function dispatch(inpEl, name) { 1285 var ev; 1286 try { ev = new Event(name, { bubbles: true }); } catch (err) { 1287 ev = document.createEvent('Event'); ev.initEvent(name, true, true); 1288 } 1289 inpEl.dispatchEvent(ev); 1290 } 1291 function cleanup() { 1292 t.removeEventListener('blur', onBlur); 1293 if (t.parentNode) t.parentNode.removeChild(t); 1294 } 1295 function onBlur() { cleanup(); } 1296 t.addEventListener('input', function() { 1297 inp.value = t.value; 1298 dispatch(inp, 'input'); 1299 }); 1300 t.addEventListener('change', function() { 1301 inp.value = t.value; 1302 dispatch(inp, 'change'); 1303 }); 1304 t.addEventListener('blur', onBlur);
1305 try { t.focus(); t.click(); } catch (err) { cleanup(); } 1306 }, true); 1307 } 1308 function enhancePicker(inp) { 1309 if (inp.getAttribute('data-android-picker-enhanced')) return; 1310 var ty = inp.type; 1311 if (ty !== 'date' && ty !== 'time' && ty !== 'datetime-local' && ty !== 'month' && ty !== 'week') return; 1312 inp.setAttribute('data-android-picker-enhanced', '1'); 1313 inp.addEventListener('click', function() { 1314 if (typeof inp.showPicker !== 'function') return; 1315 try { inp.showPicker(); } catch (e) {} 1316 }, true); 1317 } 1318 function scan() { 1319 var i; 1320 var colors = document.querySelectorAll('input[type="color"]:not([data-android-color-enhanced])'); 1321 for (i = 0; i < colors.length; i++) enhanceColor(colors[i]); 1322 var pickers = document.querySelectorAll( 1323 'input[type="date"]:not([data-android-picker-enhanced]),' + 1324 'input[type="time"]:not([data-android-picker-enhanced]),' + 1325 'input[type="datetime-local"]:not([data-android-picker-enhanced]),' + 1326 'input[type="month"]:not([data-android-picker-enhanced]),' + 1327 'input[type="week"]:not([data-android-picker-enhanced])' 1328 ); 1329 for (i = 0; i < pickers.length; i++) enhancePicker(pickers[i]); 1330 } 1331 function run() { 1332 scan(); 1333 var mo = new MutationObserver(function() { scan(); }); 1334 mo.observe(document.documentElement, { childList: true, subtree: true, attributes: true, attributeFilter: ['type'] }); 1335 } 1336 if (document.readyState === 'loading') document.addEventListener('DOMContentLoaded', run); 1337 else run(); 1338})(); 1339</script> 1340`,L=` 1341<script> 1342(function() { 1343 if (!/Android/i.test(navigator.userAgent || '')) return; 1344 function safeHttpUrl(href) { 1345 try { 1346 var u = new URL(href, document.baseURI); 1347 if (u.protocol === 'http:' || u.protocol === 'https:') return u.href; 1348 } catch (e) {} 1349 return null; 1350 } 1351 document.addEventListener('click', function(e) { 1352 var el = e.target; 1353 if (!el || !el.closest) return; 1354 var a = el.closest('a[href]'); 1355 if (!a) return; 1356 if (a.hasAttribute('download')) return; 1357 var tgt = a.getAttribute('target'); 1358 if (tgt !== '_blank' && tgt !== '_new') return; 1359 var url = safeHttpUrl(a.getAttribute('href') || ''); 1360 if (!url) return; 1361 e.preventDefault(); 1362 try { 1363 window.parent.postMessage({ type: 'OPEN_EXTERNAL_URL', url: url }, '*'); 1364 } catch (err) {} 1365 }, true); 1366 var origOpen = window.open; 1367 window.open = function(url, name, specs) { 1368 if (url != null && String(url).trim() !== '') { 1369 var resolved = safeHttpUrl(String(url)); 1370 if (resolved) { 1371 try { 1372 window.parent.postMessage({ type: 'OPEN_EXTERNAL_URL', url: resolved }, '*'); 1373 } catch (e) {} 1374 return null; 1375 } 1376 } 1377 return origOpen.apply(window, arguments); 1378 }; 1379})(); 1380</script> 1381`,O=` 1382<style id="android-misc-fix-style"> 1383 @media (pointer: coarse) { 1384 input[type="radio"], input[type="checkbox"] { 1385 min-width: 22px; min-height: 22px; margin: 4px; 1386 } 1387 label { padding: 4px 0; } 1388 summary { min-height: 44px; display: flex; align-items: center; cursor: pointer; } 1389 } 1390</style> 1391<script> 1392(function() { 1393 if (!/Android/i.test(navigator.userAgent || '')) return; 1394 1395 /* ---------- 1. audio/video autoplay é级ï¼é¦æ¬¡å¯è§æ¶ play ---------- */ 1396 function tryAutoplay() { 1397 var medias = document.querySelectorAll('audio[autoplay], video[autoplay]'); 1398 for (var i = 0; i < medias.length; i++) { 1399 (function(m) { 1400 if (m.getAttribute('data-android-autoplay-fixed')) return; 1401 m.setAttribute('data-android-autoplay-fixed', '1'); 1402 var p = m.play(); 1403 if (p && p.catch) { 1404 p.catch(function() { 1405 m.muted = true; 1406 var p2 = m.play(); 1407 if (p2 && p2.catch) p2.catch(function() {}); 1408 }); 1409 } 1410 })(medias[i]); 1411 } 1412 } 1413 1414 /* ---------- 2. details/summary polyfillï¼æ§ç WebViewï¼ ---------- */ 1415 function polyfillDetails() { 1416 if (typeof HTMLDetailsElement !== 'undefined' && 'open' in document.createElement('details')) return; 1417 var allDetails = document.querySelectorAll('details'); 1418 for (var i = 0; i < allDetails.length; i++) { 1419 (function(d) { 1420 if (d.getAttribute('data-android-details-polyfill')) return; 1421 d.setAttribute('data-android-details-polyfill', '1'); 1422 var summary = d.querySelector('summary'); 1423 if (!summary) return; 1424 if (!d.hasAttribute('open')) { 1425 var children = d.children; 1426 for (var j = 0; j < children.length; j++) { 1427 if (children[j] !== summary) children[j].style.display = 'none'; 1428 } 1429 } 1430 summary.addEventListener('click', function(e) { 1431 e.preventDefault(); 1432 var isOpen = d.hasAttribute('open'); 1433 if (isOpen) d.removeAttribute('open'); else d.setAttribute('open', ''); 1434 var children = d.children; 1435 for (var j = 0; j < children.length; j++) { 1436 if (children[j] !== summary) children[j].style.display = isOpen ? 'none' : ''; 1437 } 1438 }); 1439 })(allDetails[i]); 1440 } 1441 } 1442 1443 /* ---------- 3. é¿æéæ©æåä¿é ---------- */ 1444 function enableLongPressSelect() { 1445 var style = document.createElement('style'); 1446 style.textContent = 'body, p, span, div, li, td, th, h1, h2, h3, h4, h5, h6 { -webkit-user-select: text !important; user-select: text !important; }'; 1447 document.head.appendChild(style); 1448 } 1449 1450 function run() { 1451 tryAutoplay(); 1452 polyfillDetails(); 1453 enableLongPressSelect(); 1454 var mo = new MutationObserver(function() { tryAutoplay(); polyfillDetails(); }); 1455 mo.observe(document.documentElement, { childList: true, subtree: true }); 1456 } 1457 if (document.readyState === 'loading') document.addEventListener('DOMContentLoaded', run); 1458 else run(); 1459})(); 1460</script> 1461`,F="fonts.googleapis.cn",$=[/noto.*(sc|tc|hk|jp|kr)/i,/zcool/i,/ma[\s+]shan[\s+]zheng/i,/long[\s+
1461]cang/i,/liu[\s+]jian/i,/zhi[\s+]mang/i,/smiley[\s+]sans/i,/source[\s+]han/i];function D(e){try{return e.replace(/([?&]family=)([^&]+)/gi,(e,t,r)=>{let n=r.replace(/\+/g," "),a=n.indexOf(":");if(-1===a)return e;let o=n.slice(0,a);if(!$.some(e=>e.test(o)))return e;let s=n.slice(a+1).match(/^wght@([\d;]+)$/);if(!s)return e;let i=s[1].split(";").map(Number).filter(e=>!isNaN(e)&&e>0),l=function(e,t){if(e.length<=2)return e;let r=[];for(let t of[400,700]){if(r.length>=2)break;let n=e.reduce((e,r)=>Math.abs(e-t)<Math.abs(r-t)?e:r);r.includes(n)||r.push(n)}return r.sort((e,t)=>e-t)}(i,0);return`${t}${o.replace(/ /g,"+")}:wght@${l.join(";")}`})}catch{return e}}let B=(0,a.forwardRef)(function(e,t){let{characterId:r,description:o,builtInCss:i,isVisible:l,onAnimationEnd:$,autoHeight:B=!1,onCopyToInput:q}=e,{t:H}=(0,d.Bd)("chat"),z=(0,a.useRef)(null),U=(0,a.useRef)(q);U.current=q;let W=(0,a.useRef)(null),K=(0,a.useRef)(null),V=(0,a.useRef)(0),G=B&&!w(o),[Q,Y]=a.useState(!1),[X,J]=a.useState(void 0),[Z,ee]=a.useState(!1),[et,er]=a.useState(null),{themeId:en}=(0,s.gj)(),ea=(0,a.useMemo)(()=>({promptPlaceholder:H("module.descriptionIframe.promptPlaceholder"),ok:H("module.descriptionIframe.ok"),cancel:H("module.descriptionIframe.cancel"),copyNotFound:H("module.descriptionIframe.copyNotFound"),clipboardReadUnavailable:H("module.descriptionIframe.clipboardReadUnavailable"),done:H("module.descriptionIframe.done"),pleaseSelect:H("module.descriptionIframe.pleaseSelect"),selectedItems:H("module.descriptionIframe.selectedItems",{count:"{{count}}"})}),[H]);(0,a.useImperativeHandle)(t,()=>({extractCharacterProfile:()=>{var e;let t=null==(e=z.current)?void 0:e.contentWindow;return t?new Promise(e=>{W.current&&(W.current(null),W.current=null);let r=window.setTimeout(()=>{W.current&&(W.current(null),W.current=null)},2e3);W.current=t=>{clearTimeout(r),e(t)},t.postMessage({type:h},"*")}):Promise.resolve(null)}}),[]),(0,a.useEffect)(()=>{let e=()=>{setTimeout(()=>{document.activeElement===z.current&&(V.current=Date.now())},0)};return window.addEventListener("blur",e),()=>{window.removeEventListener("blur",e)}},[]),(0,a.useEffect)(()=>{let e=e=>{var t;let r=null==(t=z.current)?void 0:t.contentWindow;if(null!=r&&null!=e.source&&e.source!==r)return;let n=e.data;if("object"==typeof n&&null!==n){if(G&&"DESCRIPTION_IFRAME_HEIGHT"===n.type){let e=Number(n.height);Number.isFinite(e)&&e>0&&J(Math.min(Math.max(Math.ceil(e),200),3e4));return}if("OPEN_EXTERNAL_URL"===n.type&&"string"==typeof n.url){if(!f({activeElement:document.activeElement,iframeElement:z.current,lastRealInteractionAt:V.current,now:Date.now()}))return void console.warn("[DescriptionIframe] å¿½ç¥æ çå®äº¤äºä¿¡å·ç OPEN_EXTERNAL_URLï¼çä¼¼è§è²å¡èªå¨è§¦åï¼");try{let e=new URL(n.url);if("http:"!==e.protocol&&"https:"!==e.protocol)return;window.open(n.url,"_blank","noopener,noreferrer")}catch{}return}}let a=function(e){let t=e;if("string"==typeof e)try{t=JSON.parse(e)}catch{return null}if(null==t||"object"!=typeof t)return null;let r=t;if(r.type!==g)return null;let n=r.text;return"string"==typeof n?n:"number"==typeof n||"boolean"==typeof n?String(n):null}(n);if(null!==a){let e=W.current;e&&(W.current=null,e(a.trim()?a:null));return}let o=function(e){let t=e;if("string"==typeof e)try{t=JSON.parse(e)}catch{return null}if(null==t||"object"!=typeof t)return null;let r=t;if("COPY_TO_INPUT"!==r.type)return null;let n=r.text;return"string"==typeof n?n:"number"==typeof n||"boolean"==typeof n?String(n):null}(n);if(null==o)return;if(!f({activeElement:document.activeElement,iframeElement:z.current,lastRealInteractionAt:V.current,now:Date.now()}))return void console.warn("[DescriptionIframe] å¿½ç¥æ çå®äº¤äºä¿¡å·ç COPY_TO_INPUTï¼çä¼¼è§è²å¡èªå¨è§¦åï¼");let s=U.current;s&&s(o.slice(0,4e3))};return window.addEventListener("message",e),()=>{window.removeEventListener("message",e)}},[G]);let eo=(0,a.useMemo)(()=>{try{if(o&&o.length>1e6)return console.warn("[DescriptionIframe] description è¿å¤§ï¼è·³è¿æ¸²æ:",o.length),"";return(0,v.L7)(function(e,t,r){let n,a,o=e&&"string"==typeof e?e:"",s=(0,x.X)(t&&"string"==typeof t?t:""),i=`<script>window.__DESCRIPTION_IFRAME_I18N__=${JSON.stringify(r).replace(/<\//g,"<\\/")};</script>`,l=function(){if("u"<typeof document)return u;let e=getComputedStyle(document.documentElement),t=m.map(t=>{let r=e.getPropertyValue(t).trim();return r?` ${t}: ${r};`:""}).filter(e=>e.length>0).join("\n");return t?`<style id="iframe-v2-variables"> 1462 :root { 1463${t} 1464 } 1465</style>`:"u"<typeof document||document.documentElement.classList.contains("dark")?u:c}(),d=` 1466<script id="quick-start-extract"> 1467(function() { 1468 var KEYWORDS = ${JSON.stringify([...p])}; 1469 var PLACEHOLDER_EXACT = ${JSON.stringify(["æªå½å","æªç¥","æªè®¾å®","æªè®¾ç½®","æªå¡«","ææ ","æ ","空","å¾ å®","å¾ å¡«","å¾ è¡¥å ","n/a","none","null","-","â","...","â¦"])}; 1470 var PLACEHOLDER_PARTS = ${JSON.stringify(["æªå¡«å","çå¾ è¾å ¥","å¾ å¡«å","å¾ è¾å ¥","请填å","请è¾å ¥","è¯·éæ©","ææ èæ¯"])}; 1471 1472 function postToParent(payload) { 1473 var w = window; 1474 var depth = 0; 1475 while (depth < 16 && w.parent) {
1476 try { 1477 var p = w.parent; 1478 if (!p || p === w) break; 1479 p.postMessage(payload, '*'); 1480 w = p; 1481 } catch (e) { 1482 break; 1483 } 1484 depth++; 1485 } 1486 } 1487 1488 function isVisible(el) { 1489 if (!el || el.disabled) return false; 1490 var style = window.getComputedStyle(el); 1491 if (style.display === 'none' || style.visibility === 'hidden' || style.opacity === '0') return false; 1492 var rect = el.getBoundingClientRect(); 1493 return rect.width > 0 && rect.height > 0; 1494 } 1495 1496 function buttonText(el) { 1497 return (el.textContent || el.innerText || el.value || el.getAttribute('aria-label') || '').trim(); 1498 } 1499 1500 function scoreButton(el) { 1501 var text = buttonText(el); 1502 if (!text) return -1; 1503 var best = -1; 1504 for (var i = 0; i < KEYWORDS.length; i++) { 1505 if (text.indexOf(KEYWORDS[i]) !== -1) { 1506 var score = KEYWORDS[i].length * 100 - i; 1507 if (score > best) best = score; 1508 } 1509 } 1510 return best; 1511 } 1512 1513 function findTriggerButton() { 1514 var candidates = document.querySelectorAll('button, input[type="button"], input[type="submit"], a[role="button"], [onclick]'); 1515 var bestEl = null; 1516 var bestScore = -1; 1517 for (var i = 0; i < candidates.length; i++) { 1518 var el = candidates[i]; 1519 if (!isVisible(el)) continue; 1520 var score = scoreButton(el); 1521 if (score > bestScore) { 1522 bestScore = score; 1523 bestEl = el; 1524 } 1525 } 1526 return bestScore > 0 ? bestEl : null; 1527 } 1528 1529 function isPlaceholderValue(val) { 1530 var t = (val || '').trim(); 1531 if (!t) return true; 1532 var lower = t.toLowerCase(); 1533 for (var j = 0; j < PLACEHOLDER_EXACT.length; j++) { 1534 if (lower === PLACEHOLDER_EXACT[j]) return true; 1535 } 1536 for (var i = 0; i < PLACEHOLDER_PARTS.length; i++) { 1537 if (t.indexOf(PLACEHOLDER_PARTS[i]) !== -1) return true; 1538 } 1539 return false; 1540 } 1541 1542 function getLabelForInput(input) { 1543 var id = input.getAttribute('id'); 1544 if (id) { 1545 var label = document.querySelector('label[for="' + id.replace(/"/g, '') + '"]'); 1546 if (label) return (label.textContent || '').trim().replace(/[:ï¼]\\s*$/, ''); 1547 } 1548 var parent = input.parentElement; 1549 if (parent) { 1550 var siblingLabel = parent.querySelector('label'); 1551 if (siblingLabel) return (siblingLabel.textContent || '').trim().replace(/[:ï¼]\\s*$/, ''); 1552 } 1553 return input.getAttribute('placeholder') || input.getAttribute('name') || input.getAttribute('id') || ''; 1554 } 1555 1556 function extractProfileFromDom() { 1557 var ro = document.querySelector('textarea[readonly]'); 1558 if (ro && ro.value && ro.value.trim()) return ro.value.trim(); 1559 1560 var out = document.getElementById('clipboard-output'); 1561 if (out) { 1562 var outText = (out.textContent || out.innerText || '').trim(); 1563 if (outText && !isPlaceholderValue(outText)) return outText; 1564 } 1565 1566 var lines = []; 1567 var inputs = document.querySelectorAll('input:not([type="hidden"]):not([type="button"]):not([type="submit"]), textarea:not([readonly]), select'); 1568 for (var i = 0; i < inputs.length; i++) { 1569 var input = inputs[i]; 1570 if (!isVisible(input)) continue; 1571 var tag = input.tagName.toLowerCase(); 1572 var val = ''; 1573 if (tag === 'select') { 1574 val = input.options[input.selectedIndex] ? input.options[input.selectedIndex].text : input.value; 1575 } else if (input.type === 'radio' || input.type === 'checkbox') { 1576 if (!input.checked) continue; 1577 val = input.value || buttonText(input) || 'å·²é'; 1578 } else if (input.type === 'range') { 1579 val = String(input.value); 1580 } else { 1581 val = input.value || ''; 1582 } 1583 val = (val || '').trim(); 1584 if (!val || isPlaceholderValue(val)) continue; 1585 var label = getLabelForInput(input); 1586 if (!label) continue; 1587 lines.push(label + 'ï¼' + val); 1588 } 1589 1590 var checkedRadios = document.querySelectorAll('input[type="radio"]:checked'); 1591 for (var r = 0; r < checkedRadios.length; r++) { 1592 var radio = checkedRadios[r]; 1593 if (!isVisible(radio)) continue; 1594 var rLabel = getLabelForInput(radio); 1595 var rVal = (radio.value || '').trim(); 1596 if (!rVal) { 1597 var next = radio.nextSibling; 1598 if (next && next.nodeType === 3) rVal = next.textContent.trim(); 1599 } 1600 if (!rVal || isPlaceholderValue(rVal)) continue; 1601 if (rLabel) lines.push(rLabel + 'ï¼' + rVal); 1602 } 1603 1604 return lines.length ? lines.join('\\n') : ''; 1605 } 1606 1607 function finishExtract(text) { 1608 window.__QUICK_START_CAPTURE = false;
1609 window.__QUICK_START_EXTRACT_DONE = true; 1610 postToParent({ type: '${g}', text: text == null ? '' : String(text) }); 1611 } 1612 1613 window.addEventListener('message', function(event) { 1614 var data = event.data; 1615 if (!data || data.type !== '${h}') return; 1616 1617 window.__QUICK_START_CAPTURE = true; 1618 window.__QUICK_START_EXTRACT_DONE = false; 1619 1620 var btn = findTriggerButton(); 1621 if (btn) { 1622 try { btn.click(); } catch (e) { /* ignore */ } 1623 } 1624 1625 setTimeout(function() { 1626 if (window.__QUICK_START_EXTRACT_DONE) return; 1627 window.__QUICK_START_CAPTURE = false; 1628 var scanned = extractProfileFromDom(); 1629 finishExtract(scanned || ''); 1630 }, 500); 1631 }); 1632})(); 1633</script>`,f=l+k+_+T+i+S+C+j+M+N+y+E+b+I+d+P+R+A+L+O;try{n=function(e){if(!e||"string"!=typeof e)return"";if(e.length>2e5)return console.warn("[sanitizeHtml] å 容è¿å¤§ï¼è·³è¿æ£åä¿®å¤:",e.length),e;let t=e,r=(t=t.replace(/<a\s+([^>]*?)\s+<\/a>/gi,"<a $1></a>")).match(/<style[^>]*>/gi)||[],n=t.match(/<\/style>/gi)||[];if(r.length>n.length){let e,r="",n=0,a=0,o=/<style[^>]*>|<\/style>|<\/[a-zA-Z][a-zA-Z0-9]*>/gi;for(;null!==(e=o.exec(t));){let o=e[0].toLowerCase();o.startsWith("<style")?a++:"</style>"===o?a=Math.max(0,a-1):a>0&&(r+=t.substring(n,e.index)+"</style>",n=e.index,a--)}for(r+=t.substring(n);a>0;){let e=r.lastIndexOf("</body>"),t=r.lastIndexOf("</html>"),n=e>0?e:t>0?t:r.length;r=r.substring(0,n)+"</style>"+r.substring(n),a--}t=r}return t=(t=(t=t.replace(/@import\s*;/gi,"/* removed empty @import */")).replace(/(--[a-zA-Z0-9_-]+)\s*:\s*;/g,"$1: inherit;")).replace(/<iframe\b([^>]*?)\bsrc=(["'])(https?:\/\/[^"']+)\2([^>]*)(?:><\/iframe>|\/?>)/gi,(e,t,r,n,a)=>{try{let t=new URL(n);if(["www.youtube.com","youtube.com","youtu.be","player.bilibili.com","www.bilibili.com","player.vimeo.com","vimeo.com"].some(e=>t.hostname===e||t.hostname.endsWith("."+e)))return e}catch{}return""})}(o)}catch(e){console.error("[generateIframeContent] sanitizeHtml 失败ï¼ä½¿ç¨åå§å 容:",e),n=o}if(w(n)){let e,t;try{let r,a,o=(r=n,a=[],r=r.replace(/<style[^>]*>([\s\S]*?)<\/style>/gi,(e,t)=>{let r,n=/@import\s+url\(['"]?(https?:\/\/fonts\.googleapis\.com[^'")\s]+)['"]?\)[^;]*;?/gi,o=t;for(;null!==(r=n.exec(t));){var s;let e=r[1];s=e=D(e),(e=F?s.replace("fonts.googleapis.com",F):s).includes("display=")||(e+=(e.includes("?")?"&":"?")+"display=swap"),a.push(`<link rel="preload" href="${e}" as="style" onload="this.onload=null;this.rel='stylesheet'">`),a.push(`<noscript><link rel="stylesheet" href="${e}"></noscript>`)}return o=o.replace(n,""),`<style${e.slice(6,e.indexOf(">"))}>${o}</style>`}),F&&(r=r.replace(/https?:\/\/fonts\.googleapis\.com/gi,`https://${F}`)),{html:r=(r=r.replace(/<link([^>]*href=["'])(https?:\/\/fonts\.(?:googleapis|googlefonts)\.(?:com|cn)[^"']+)(["'][^>]*\/?>)/gi,(e,t,r,n)=>{if(!/rel=["']stylesheet["']/i.test(e))return e;let a=D(r);return a.includes("display=")||(a+=(a.includes("?")?"&":"?")+"display=swap"),`<link rel="preload" href="${a}" as="style" onload="this.onload=null;this.rel='stylesheet'"><noscript><link rel="stylesheet" href="${a}"></noscript>`})).replace(/<link([^>]*)href=["'](https?:\/\/(?:cdnjs\.cloudflare\.com|cdn\.jsdelivr\.net|unpkg\.com)\/[^"']+\.css[^"']*)["']([^>]*\/?>)/gi,(e,t,r,n)=>/rel=["']stylesheet["']/i.test(e)?`<link rel="preload" href="${r}" as="style" onload="this.onload=null;this.rel='stylesheet'"><noscript><link rel="stylesheet" href="${r}"></noscript>`:e),asyncFontLinks:a.join("\n")});e=o.html,t=o.asyncFontLinks}catch(r){console.error("[generateIframeContent] preprocessHtmlForPerformance 失败:",r),e=n,t=""}let r=e;r=r.replace(/<meta[^>]*name=["']viewport["'][^>]*>/gi,"");let a=t+f,o=r.toLowerCase().indexOf("</head>");if(-1!==o)return r.slice(0,o)+a+r.slice(o);let s=r.toLowerCase().indexOf("<head>");if(-1!==s){let e=s+6;return r.slice(0,e)+a+r.slice(e)}let i=r.toLowerCase().indexOf("<body>");if(-1!==i){let e=i+6;return r.slice(0,e)+a+r.slice(e)}let l=r.toLowerCase().indexOf("<html");if(-1!==l){let e=r.indexOf(">",l);if(-1!==e){let t=e+1;return r.slice(0,t)+"<head>"+a+"</head>"+r.slice(t)}}return r}let v=/<script\b[^>]*>([\s\S]*?)<\/script>/gi,$=[],B=n;for(;null!==(a=v.exec(n));)$.push(a[0]);return B=n.replace(v,""),`<!DOCTYPE html> 1634<html lang="zh-CN"> 1635<head> 1636 <meta charset="UTF-8"> 1637 <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no, viewport-fit=cover"> 1638 ${l} 1639 ${S} 1640 <style> 1641 /* Reset default styles */ 1642 * { 1643 margin: 0; 1644 padding: 0; 1645 box-sizing: border-box; 1646 /* 鲿¢ iOS Safari çåå»ç¼©æ¾ï¼ä¿®å¤ç§»å¨ç«¯ç¹å»ä½ç½®åç§» */ 1647 touch-action: manipulation; 1648 } 1649 1650 html { 1651 width: 100%; 1652 height: 100%; 1653 max-width: 100%; 1654 overflow-x: hidden; 1655 overflow-y: auto; 1656 scrollbar-width: none; 1657 -ms-overflow-style: none; 1658 /* 鲿¢æå大å°èªå¨è°æ´å¯¼è´çå¸å±åç§» */ 1659 -webkit-text-size-adjust: 100%; 1660 -ms-text-size-adjust: 100%; 1661 text-size-adjust: 100%; 1662 } 1663 html::-webkit-scrollbar, 1664 body::-webkit-scrollbar {
1665 display: none; 1666 width: 0; 1667 height: 0; 1668 } 1669 1670 body { 1671 width: 100%; 1672 min-height: 100%; 1673 max-width: 100%; 1674 overflow-x: hidden; 1675 scrollbar-width: none; 1676 -ms-overflow-style: none; 1677 font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', 'Roboto', 'Oxygen', 1678 'Ubuntu', 'Cantarell', 'Fira Sans', 'Droid Sans', 'Helvetica Neue', sans-serif; 1679 -webkit-font-smoothing: antialiased; 1680 -moz-osx-font-smoothing: grayscale; 1681 overflow-wrap: break-word; 1682 word-wrap: break-word; 1683 word-break: break-word; 1684 /* ä¿çæ¢è¡ç¬¦ï¼å° 1685 渲æä¸ºæ¢è¡ */ 1686 white-space: pre-line; 1687 } 1688 1689 /* å¾çæå è½½å ä½ - ä½¿ç¨ V2 åé */ 1690 img[loading="lazy"] { 1691 background: linear-gradient(90deg, var(--v2-skeleton-base) 25%, var(--v2-skeleton-highlight) 50%, var(--v2-skeleton-base) 75%); 1692 background-size: 200% 100%; 1693 animation: shimmer 1.5s infinite; 1694 } 1695 @keyframes shimmer { 1696 0% { background-position: 200% 0; } 1697 100% { background-position: -200% 0; } 1698 } 1699 1700 /* ç¡®ä¿ææå ç´ ä¸è¶ åºå®¹å¨å®½åº¦ */ 1701 img, video, iframe, embed, object { 1702 max-width: 100% !important; 1703 height: auto !important; 1704 } 1705 1706 /* ç¡®ä¿ææ¬å 容èªå¨æ¢è¡ */ 1707 p, div, span, pre, code { 1708 max-width: 100%; 1709 overflow-wrap: break-word; 1710 word-wrap: break-word; 1711 word-break: break-word; 1712 } 1713 1714 /* User-provided CSS */ 1715 ${s} 1716 </style> 1717 ${_} 1718 ${T} 1719 ${i} 1720 ${k} 1721 ${C} 1722 ${M} 1723 ${N} 1724 ${y} 1725 ${E} 1726 ${b} 1727 ${I} 1728 ${d} 1729 ${P} 1730 ${R} 1731 ${A} 1732 ${L} 1733 ${O} 1734</head> 1735<body> 1736 ${B} 1737 ${$.join("\n")} 1738 ${I} 1739</body> 1740</html>`}(o,i,ea))}catch(e){return console.error("[DescriptionIframe] generateIframeContent 失败:",e),""}},[o,i,ea,en]);(0,a.useEffect)(()=>{!eo&&o&&o.length<=1e6?er(H("module.descriptionIframe.contentLoadFailed")):eo&&et&&er(null)},[eo,o,H]),(0,a.useEffect)(()=>{if(!Q&&l){let e=setTimeout(()=>{ee(!0)},150);return()=>clearTimeout(e)}ee(!1)},[Q,l]),(0,a.useEffect)(()=>{let e=setTimeout(()=>{Q||Y(!0)},100);return()=>clearTimeout(e)},[Q]);let es=(0,a.useCallback)(()=>{if(Y(!0),G&&z.current)try{var e;let t=z.current.contentDocument??(null==(e=z.current.contentWindow)?void 0:e.document);t&&setTimeout(()=>{let e=t.documentElement.scrollHeight;J(e)},100)}catch(e){}},[G]);return(0,a.useEffect)(()=>{let e=K.current;if(!e)return;let t=e=>{"opacity"===e.propertyName&&!l&&$&&$()};return e.addEventListener("transitionend",t),()=>{e.removeEventListener("transitionend",t)}},[l,$]),(0,n.jsx)("div",{ref:K,className:"flex min-h-0 flex-1 flex-col items-center gap-2 px-3 md:px-4 w-full",style:{flex:G?"0 0 auto":void 0,opacity:+!!l,transition:"opacity 200ms ease-out"},children:(0,n.jsx)("div",{className:"flex min-h-0 flex-1 flex-col items-center gap-2 w-full",style:{flex:G?"0 0 auto":void 0},children:(0,n.jsxs)("div",{className:"relative w-full min-h-0 flex-1 max-h-full",style:{flex:G?"0 0 auto":void 0,maxHeight:G?"none":void 0,height:G?X?`${X}px`:"auto":"100%",minHeight:G?"200px":0},children:[et&&(0,n.jsxs)("div",{style:{display:"flex",flexDirection:"column",alignItems:"center",justifyContent:"center",padding:"32px",color:"var(--v2-text-secondary)",textAlign:"center",height:"100%"},children:[(0,n.jsx)("p",{style:{fontSize:"14px",marginBottom:"8px"},children:H("module.descriptionIframe.introLoadFailed")}),(0,n.jsx)("p",{style:{fontSize:"12px",color:"var(--v2-text-tertiary)"},children:et})]}),!et&&Z&&(0,n.jsxs)("div",{style:{position:"absolute",top:0,left:0,right:0,bottom:0,display:"flex",flexDirection:"column",alignItems:"center",justifyContent:"center",backgroundColor:"var(--v2-bg-card)",zIndex:10,opacity:+!!Z,transition:"opacity 150ms ease-out"},className:"loading-overlay",children:[(0,n.jsx)("div",{style:{width:"48px",height:"48px",border:"4px solid var(--v2-border-primary)",borderTopColor:"var(--v2-accent-primary)",borderRadius:"50%",animation:"spin 1s linear infinite"},className:"loading-spinner"}),(0,n.jsx)("p",{style:{marginTop:"16px",color:"var(--v2-text-secondary)",fontSize:"14px",fontWeight:500},children:H("module.descriptionIframe.loadingIntro")})]}),!et&&(0,n.jsx)("iframe",{ref:z,srcDoc:eo,referrerPolicy:"no-referrer",sandbox:"allow-scripts allow-forms",allow:"clipboard-write; fullscreen; autoplay",title:"Character Description",className:"h-full w-full scrollbar-hide",loading:"eager",onLoad:es,style:{width:"100%",maxWidth:"100%",height:"100%",minHeight:0,border:"none",backgroundColor:"transparent",opacity:+!!Q,transition:"opacity 150ms ease-out",overflow:"auto"}}),(0,n.jsx)("style",{children:` 1741 @keyframes spin { 1742 0% { transform: rotate(0deg); } 1743 100% { transform: rotate(360deg); } 1744 } 1745 1746 /* æ·±è²æ¨¡å¼æ¯æ - ä½¿ç¨ V2 CSS åéèªå¨éé */ 1747 `})]})})})});var q=r(5617),H=r(6621),z=r(92789),U=r(68587),W=r(64422),K=r(77497),V=r(17308),G=r(26381),Q=r(28975);let Y=(0,a.forwardRef)(function(e,t){let{t:r}=(0,d.Bd)("chat"),{messages:c,character:u,onSendMessage:m,isLoading:p=!1,disabled:h=!1,showHeader:g=!1,showStreamToggle:f=!1,showModelSelector:v=!1,placeholder:b,emptyStateMessage:y,className:x="",isStreamingEnabled:w,streamAutoScrollEnabled:k=!1,onToggleStreaming:S,onOpenChatHistory:C,characterId:I,recommendedModelId:j,onModelChange:M,onUserModelSelect:N,initialModels:E,onModelSelectorClick:_,lockedModelId:T,preferredDefaultModelId:P,onRefreshMessage:R,onEditMessage:A,onDeleteMessage:L,onGenerateImageFromMessage:O,onOpenFishSpeech:F,onOpenJailbreakMods:$,onBranchOrShare:D,onOpenQuickStartSettings:Y,renderMessageComponent:X,description:J,builtInCss:Z,hasMessageHistory:ee=!1,onCancelStreaming:et,suggestedQuestions:er,inputPositionMode:en="fixed",hideSuggestedQuestionsBar:ea=!1,suggestedTourKeepOpen:eo,shortcutCommands:es,openingStatements:ei,currentOpeningIndex:el,onSwitchOpeningStatement:ed,cgBookHitsByMessageId:ec,overrideBgImage:eu,overrideBgMobile:em,inputValue:ep,onInputChange:eh,hideInputArea:eg=!1,paginationPage:ef,paginationTotalPages:ev,paginationTotal:eb,onPageChange:ey,paginationHasArchived:ex=!1,paginationArchivedBefore:ew=null,onLoadArchivedMessages:ek,isLoadingArchived:eS=!1,paginationArchivedExhausted:eC=!1}=e,[eI,ej]=(0,a.useState)(""),eM=ep??eI,eN=(0,a.useCallback)(e=>{eh?eh(e):ej(e)},[eh]),[eE,e_]=(0,a.useState)(!1),[,eT]=(0,a.useState)(!1),{isMobile:eP}=(0,K.X)();(0,s.f5)();let{showImages:eR}=(0,G.b)();(0,a.useLayoutEffect)(()=>{eT(!0)},[]);let eA=(0,a.useRef)(null),eL=(0,a.useRef)(null),eO=(0,a.useRef)(!0),eF=(0,a.useRef)(null),[e$,eD]=(0,a.useState)(null),eB=(0,a.useCallback)(e=>{eL.current=e,eD(e)},[]),eq=(0,a.useCallback)(function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"smooth";eO.current=!0;let t=()=>{let t=eL.current;t&&t.scrollTo({top:t.scrollHeight,behavior:e})};t(),setTimeout(t,50),setTimeout(t,150),setTimeout(t,300),setTimeout(t,500),requestAnimationFrame(()=>{t(),requestAnimationFrame(t)})},[]);(0,a.useEffect)(()=>
1747{if(!e$)return;let e=()=>{eO.current=function(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:24;return e.scrollHeight-e.scrollTop-e.clientHeight<=t}(e$)};return e(),e$.addEventListener("scroll",e,{passive:!0}),()=>{e$.removeEventListener("scroll",e)}},[e$]),(0,a.useImperativeHandle)(t,()=>({scrollToBottom:eq,setInputValue:e=>eN(e),extractCharacterProfile:()=>{var e;return(null==(e=eF.current)?void 0:e.extractCharacterProfile())??Promise.resolve(null)}}),[eq,eN]);let eH=(0,a.useCallback)(e=>{!e.trim()||p||h||(m(e),eq("smooth"))},[m,eq,p,h]);(0,a.useMemo)(()=>{let e=eu??(null==u?void 0:u.bg_image),t=em??(null==u?void 0:u.bg_mobile);if(!e&&!t)return null;let r=eP?t??null:e??null;return r?(0,V.C5)(r):null},[u,eP,eu,em]);let ez=(0,a.useMemo)(()=>"string"==typeof Z&&Z.trim().length>0,[Z]),eU=(0,a.useMemo)(()=>{let e=[];for(let t=0;t<c.length;t++){let r=c[t],n=(0,i.zK)(r);0===t&&"character"===n&&!0===r.isOpeningStatement&&J&&""!==J.trim()||e.push(t)}return e},[c,J]),eW=(0,a.useMemo)(()=>{for(let e=c.length-1;e>=0;e--){let t=c[e];if("character"===(0,i.zK)(t)&&!(0,Q.n)(t.text))return e}return -1},[c]),eK=b??r("module.chatWindow.placeholder"),eV=!ez&&!X&&eU.length>=32,eG=(0,o.Te)({count:eV?eU.length:0,getScrollElement:()=>eV?eL.current:null,estimateSize:e=>(function(e){let t;if(!e)return 120;let r=("string"==typeof e.text?e.text:e.content)??"",n=r.length;return"user"===(0,i.zK)(e)?n<50?64:n<150?88:120:(t=n<100?80:n<300?140:n<600?220:n<1200?340:420,/<think(?:ing)?>/i.test(r)&&(t+=56),(r.match(/```/g)??[]).length>=2&&(t+=60),t)})(c[eU[e]]),overscan:8}),eQ=(0,a.useMemo)(()=>c.filter(e=>"user"===(0,i.zK)(e)).length>0,[c]),eY=(0,a.useMemo)(()=>!!J&&""!==J.trim()&&!ee&&!eQ&&!eE,[J,ee,eQ,eE]),eX=(0,a.useMemo)(()=>eY&&!eQ,[eY,eQ]),eJ=(0,a.useCallback)(()=>{eX||e_(!0)},[eX]),eZ=(0,a.useRef)(c.length),e0=(0,a.useRef)(""),e1=(0,a.useRef)(0);(0,a.useEffect)(()=>{let e=eZ.current,t=c.length,r=c[t-1],n=r?`${String(r.id??"")}|${"string"==typeof r.dbMessageId?r.dbMessageId:""}`:"",a=e0.current,o=("string"==typeof(null==r?void 0:r.text)?r.text:"string"==typeof(null==r?void 0:r.content)?r.content:"").length,s=!!r&&"character"===(0,i.zK)(r)&&(!0===r.isStreaming||"receiving"===r.streamingStatus),l=s&&o>e1.current;if(k&&eO.current&&(t>e&&n!==a||l)){let e=eL.current;e&&requestAnimationFrame(()=>{e.scrollTo({top:e.scrollHeight,behavior:"auto"})})}eZ.current=t,e0.current=n,e1.current=s?o:0},[c,k]);let e2=(0,a.useCallback)(()=>{!eM.trim()||p||h||(eH(eM),eN(""))},[eM,p,h,eH,eN]),e4=(0,a.useCallback)(()=>{S&&S()},[S]);return(0,n.jsxs)(n.Fragment,{children:[Array.isArray(er)&&er.length>0&&!eQ&&!ea&&(0,n.jsx)("div",{className:"flex-shrink-0 flex justify-center items-center py-1.5 sm:py-2 border-b border-v2-border-primary",style:{background:"linear-gradient(to bottom right, var(--v2-sidebar-gradient-from), var(--v2-sidebar-gradient-via), var(--v2-sidebar-gradient-to))"},children:(0,n.jsx)(z.A,{questions:er,onSelectQuestion:eH,disabled:p||h,tourKeepOpen:eo})}),(0,n.jsxs)("div",{ref:eB,id:"chat-messages-scroll-area",className:"min-h-0 overflow-y-auto w-full h-full chat-container mx-auto",style:{background:"transparent",display:eY?"flex":void 0,flexDirection:eY?"column":void 0},children:[eY&&J&&(0,n.jsx)(B,{ref:eF,characterId:u.id,description:J,builtInCss:Z??"",isVisible:eX,onAnimationEnd:eJ,autoHeight:eP,onCopyToInput:eN}),!eY&&(0,n.jsxs)(n.Fragment,{children:[0===c.length&&(0,n.jsx)("div",{className:"flex items-center justify-center h-full",children:(0,n.jsx)("div",{className:"text-center text-v2-text-secondary",children:(0,n.jsx)("p",{className:"text-lg mb-2",children:y??r("module.chatWindow.empty")})})}),(0,n.jsxs)("div",{className:"mx-auto pt-24 pb-3 w-full max-w-[720px] px-0.5 md:px-4 relative",children:[(ef??1)>=(ev??1)&&ex&&!eC&&ek?(0,n.jsx)("div",{className:"flex justify-center py-2 mb-2",children:(0,n.jsx)("button",{type:"button",className:"px-4 py-1.5 text-xs font-medium text-v2-text-secondary bg-v2-bg-card border border-v2-border-primary hover:border-v2-border-focus hover:text-v2-text-link rounded-full shadow-sm hover:shadow transition-v2-interactive duration-200",onClick:ek,disabled:eS,children:r("module.loadArchivedMessages")})}):null,eV?(0,n.jsx)("div",{className:"relative w-full",style:{height:eG.getTotalSize()},children:eG.getVirtualItems().map(e=>{let t=eU[e.index],r=c[t];r.id?r.id:String(t);let a=t===eU[eU.length-1];return(0,n.jsx)("div",{"data-index":e.index,ref:eG.measureElement,className:"absolute top-0 left-0 right-0",style:{transform:`translateY(${e.start}px)`},children:(0,n.jsx)("div",{className:`chat-msg-wrapper${a?"":" mb-2 md:mb-4"}`,children:(0,n.jsx)(H.A,{messageId:r.id,fallbackText:"string"==typeof r.text?r.text:void 0,onDelete:L,children:(0,n.jsx)(q.A,{message:r,character:u,builtInCss:Z,cgBookHit:null==ec?void 0:ec.get(r.id),onRefreshMessage:R,onEditMessage:A,onDeleteMessage:L,onGenerateImageFromMessage:O,onOpenFishSpeech:F,onOpenJailbreakMods:$,onSendMessage:eH,onFillInput:eN,isLoading:p,isLatestAiMessage:t===eW,openingStatements:ei,currentOpeningIndex:el,onSwitchOpeningStatement:ed,onOpenQuickStartSettings:Y,archivedBefore:ew,isLastMessage:a,onBranchOrShare:D})})})},e.key)})}):eU.map(e=>{let t=c[e],r=t.id?`${t.id}-${e}
1747`:String(e);if(X)return(0,n.jsx)("div",{className:"mb-2 md:mb-4 last:mb-0",children:X(t,u)},r);let a=e===eW,o=e===eU[eU.length-1];return(0,n.jsx)("div",{className:"chat-msg-wrapper mb-2 md:mb-4 last:mb-0",children:(0,n.jsx)(H.A,{messageId:t.id,fallbackText:"string"==typeof t.text?t.text:void 0,onDelete:L,children:(0,n.jsx)(q.A,{message:t,character:u,builtInCss:Z,cgBookHit:null==ec?void 0:ec.get(t.id),onRefreshMessage:R,onEditMessage:A,onDeleteMessage:L,onGenerateImageFromMessage:O,onOpenFishSpeech:F,onOpenJailbreakMods:$,onSendMessage:eH,onFillInput:eN,isLoading:p,isLatestAiMessage:a,openingStatements:ei,currentOpeningIndex:el,onSwitchOpeningStatement:ed,onOpenQuickStartSettings:Y,archivedBefore:ew,isLastMessage:o,onBranchOrShare:D})})},r)})]})]}),(0,n.jsx)("div",{ref:eA})]}),e$&&!eY&&c.length>0?(0,n.jsx)(W.default,{scrollContainer:e$,direction:"down",onScrollAction:()=>eq("smooth"),showThreshold:80,rightPosition:eP?"left-1/2 -translate-x-1/2":"right-4",bottomPosition:eP?"bottom-[calc(7.5rem+env(safe-area-inset-bottom,0px))]":"bottom-6",className:"z-30"}):null,!eg&&(0,n.jsx)("div",{className:"bg-gradient-to-t from-white via-white to-transparent chat-input-container z-10 pb-[calc(0.375rem+var(--mobile-keyboard-safe-bottom,env(safe-area-inset-bottom,0px)))] md:pb-[calc(1rem+var(--mobile-keyboard-safe-bottom,env(safe-area-inset-bottom,0px)))]",style:{position:en,bottom:"fixed"===en?"var(--embed-parent-bottom-inset, 0px)":0,left:"fixed"===en?"var(--chat-sidebar-offset, 0px)":0,right:0,transition:"fixed"===en?"left 500ms cubic-bezier(0.4, 0, 0.2, 1)":void 0,display:"flex",justifyContent:"center",paddingTop:"2rem"},children:(0,n.jsx)("div",{className:"mx-auto w-full max-w-[720px] px-3 md:px-4",children:(0,n.jsxs)("div",{className:"relative mt-2",children:[ev&&ev>1&&ey?(0,n.jsx)(U.A,{currentPage:ef??1,totalPages:ev,total:eb??0,onPageChange:ey,disabled:p}):(0,n.jsx)("div",{className:"w-full z-5 py-1","aria-hidden":"true",children:(0,n.jsx)("div",{className:"relative",children:(0,n.jsx)("div",{className:"py-0 w-full flex flex-wrap justify-center items-center",style:{minHeight:"24px"}})})}),(0,n.jsx)(l.A,{value:eM,onChange:eN,onSend:e2,disabled:h||p,placeholder:eK,isStreaming:p&&w,onCancel:et,showStreamToggle:f,isStreamingEnabled:w,onToggleStreaming:e4,showModelSelector:v,characterId:I,recommendedModelId:j,onModelChange:M,onUserModelSelect:N,initialModels:E,onModelSelectorClick:_,lockedModelId:T,preferredDefaultModelId:P,showChatHistory:!!C,onOpenChatHistory:C,isLoading:p,shortcutCommands:es})]})})})]})});Y.displayName="ChatWindow";let X=(0,a.memo)(Y,(e,t)=>e.messages===t.messages&&e.isLoading===t.isLoading&&e.character===t.character&&e.disabled===t.disabled&&e.isStreamingEnabled===t.isStreamingEnabled&&e.streamAutoScrollEnabled===t.streamAutoScrollEnabled&&e.onSendMessage===t.onSendMessage&&e.onToggleStreaming===t.onToggleStreaming&&e.onOpenChatHistory===t.onOpenChatHistory&&e.onModelChange===t.onModelChange&&e.onModelSelectorClick===t.onModelSelectorClick&&e.lockedModelId===t.lockedModelId&&e.preferredDefaultModelId===t.preferredDefaultModelId&&e.onRefreshMessage===t.onRefreshMessage&&e.onGenerateImageFromMessage===t.onGenerateImageFromMessage&&e.onOpenFishSpeech===t.onOpenFishSpeech&&e.onOpenJailbreakMods===t.onOpenJailbreakMods&&e.onEditMessage===t.onEditMessage&&e.onDeleteMessage===t.onDeleteMessage&&e.onBranchOrShare===t.onBranchOrShare&&e.onOpenQuickStartSettings===t.onOpenQuickStartSettings&&e.onCancelStreaming===t.onCancelStreaming&&e.showHeader===t.showHeader&&e.showStreamToggle===t.showStreamToggle&&e.showModelSelector===t.showModelSelector&&e.placeholder===t.placeholder&&e.emptyStateMessage===t.emptyStateMessage&&e.className===t.className&&e.renderMessageComponent===t.renderMessageComponent&&e.characterId===t.characterId&&e.recommendedModelId===t.recommendedModelId&&e.description===t.description&&e.builtInCss===t.builtInCss&&e.hasMessageHistory===t.hasMessageHistory&&e.inputPositionMode===t.inputPositionMode&&e.openingStatements===t.openingStatements&&e.currentOpeningIndex===t.currentOpeningIndex&&e.onSwitchOpeningStatement===t.onSwitchOpeningStatement&&e.cgBookHitsByMessageId===t.cgBookHitsByMessageId&&e.overrideBgImage===t.overrideBgImage&&e.overrideBgMobile===t.overrideBgMobile&&e.inputValue===t.inputValue&&e.onInputChange===t.onInputChange&&e.hideInputArea===t.hideInputArea&&e.paginationPage===t.paginationPage&&e.paginationTotalPages===t.paginationTotalPages&&e.paginationTotal===t.paginationTotal&&e.onPageChange===t.onPageChange&&e.paginationHasArchived===t.paginationHasArchived&&e.paginationArchivedBefore===t.paginationArchivedBefore&&e.isLoadingArchived===t.isLoadingArchived&&e.paginationArchivedExhausted===t.paginationArchivedExhausted&&e.onLoadArchivedMessages===t.onLoadArchivedMessages&&!0)},24442:(e,t,r)=>{r.d(t,{A:()=>G});var n=r(37876),a=r(14232),o=r(53731),s=r(67768),i=r(97445),l=r(42194);let d=e=>{let{currentModel:t,onClick:r,disabled:s=!1,id:d,className:c,"data-tour":u,emptyLabel:m}=e,{t:p}=(0,i.Bd)("chat"),h=t?(0,l.N)(t.name):void 0,g=h??m??p("module.modelSelector.model"),f=(0,a.useMemo)(()=>{let e=h??m;return e?e.length>16?e.slice(0,16)+"...":e:p("module.modelSelector.model")},[h,m,p]),[v,b]=(0,a.useState)(!1);return(0,a.useEffect)(()=>{let e=()=>{b(window.innerWidth<640)};return e(),window.addEventListener("resize",e),()=>window.removeEventListener("resize",e)},[]),(0,n.jsxs)("button",{type:"button",id:d,"data-tour":u,onClick:r,disabled:s,className:`MuiButtonBase-root MuiButton-root MuiButton-outlined MuiButton-outlinedPrimary MuiButton-sizeSmall MuiButton-outlinedSizeSmall MuiButton-colorPrimary compact flex items-center justify-center flex-shrink-0 ${c||""}`,style:{borderRadius:"6px",cursor:s?"not-allowed":"pointer"},tabIndex:0,"aria-label":t?p("module.modelSelector.currentModel",{model:g}):p("module.modelSelector.selectModel"),title:s?p("module.modelSelector.modelUnavailable"):t?p("module.modelSelector.clickSwitchCurrentModel",{model:g}):p("module.modelSelector.clickSwitchModel"),children:[(0,n.jsx)("svg",{className:"w-4 h-4 md:w-5 md:h-5 flex-shrink-0 mr-1",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",strokeWidth:2,"aria-hidden":"true",children:(0,n.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M9.75 17L9 20l-1 1h8l-1-1-.75-3M3 13h18M5 17h14a2 2 0 002-2V5a2 2 0 00-2-2H5a2 2 0 00-2 2v10a2 2 0 002 2z"})}),(0,n.jsx)("span",{children:v?f:g}),(0,n.jsx)(o.A,{className:"h-2.5 w-2.5 md:h-3 md:w-3 flex-shrink-0 ml-1"})]})};var c=r(98477),u=r(97685),m=r(22691),p=r(60299),h=r(65685);let g=e=>{let{categories:t,currentCategory:r,onCategoryChange:o,trailingSlot:s,embedded:l
1747=!1}=e,{t:d}=(0,i.Bd)("chat"),c=(0,a.useRef)(null),[u,m]=(0,a.useState)(!1),[p,h]=(0,a.useState)(0),[g,f]=(0,a.useState)(0),v=(0,a.useCallback)(()=>{let e=c.current;return!!e&&e.scrollWidth>e.clientWidth},[]),b=["__favorites__","__featured__",...t],y=(0,a.useCallback)(e=>{!c.current||v()&&(m(!0),h(e.pageX-c.current.offsetLeft),f(c.current.scrollLeft),c.current&&(c.current.style.cursor="grabbing"))},[v]),x=(0,a.useCallback)(e=>{if(!u||!c.current)return;e.preventDefault();let t=(e.pageX-c.current.offsetLeft-p)*2;c.current.scrollLeft=g-t},[u,p,g]),w=(0,a.useCallback)(()=>{m(!1),c.current&&(c.current.style.cursor="grab")},[]),k=(0,a.useCallback)(()=>{u&&(m(!1),c.current&&(c.current.style.cursor="grab"))},[u]),S=(0,a.useCallback)(e=>{!c.current||v()&&(m(!0),h(e.touches[0].pageX-c.current.offsetLeft),f(c.current.scrollLeft))},[v]),C=(0,a.useCallback)(e=>{if(!u||!c.current)return;let t=(e.touches[0].pageX-c.current.offsetLeft-p)*2;c.current.scrollLeft=g-t},[u,p,g]),I=(0,a.useCallback)(()=>{m(!1)},[]),j=(0,a.useCallback)((e,t)=>{u?t.preventDefault():o(e)},[u,o]);return(0,n.jsxs)("div",{className:`flex flex-wrap items-center bg-v2-bg-card min-w-0 sm:flex-nowrap ${l?"flex-1":"border-b border-v2-border-primary"}`,children:[(0,n.jsx)("div",{ref:c,onMouseDown:y,onMouseMove:x,onMouseUp:w,onMouseLeave:k,onTouchStart:S,onTouchMove:C,onTouchEnd:I,className:"w-full sm:w-auto sm:flex-1 min-w-0 relative overflow-x-auto overflow-y-hidden cursor-grab select-none scrollbar-hide",style:{scrollBehavior:u?"auto":"smooth",WebkitOverflowScrolling:"touch"},children:(0,n.jsx)("div",{className:`flex gap-1 flex-nowrap items-center ${l?"px-0":"px-3 sm:px-3 md:px-2"}`,children:b.map(e=>{let t=e===r,a=function(e){switch(e){case"Claude":return{labelKey:"module.modelSelector.hardToCrack",titleKey:"module.modelSelector.hardToCrackTitle"};case"Gemini":return{labelKey:"module.modelSelector.highIq",titleKey:"module.modelSelector.highIqTitle"};case"Grok":return{labelKey:"module.modelSelector.lessCensored",titleKey:"module.modelSelector.lessCensoredTitle"};case"Deepseek":return{labelKey:"module.modelSelector.costEffective",titleKey:"module.modelSelector.costEffectiveTitle"};default:return null}}(e),s="__favorites__"===e?d("module.modelSelector.favorites"):"__all__"===e?d("module.modelSelector.all"):"__featured__"===e?d("module.modelSelector.featured"):e,i="__favorites__"===e?d("module.modelSelector.favorites"):"__all__"===e?d("module.modelSelector.allModels"):"__featured__"===e?d("module.modelSelector.featuredModels"):e,l=a?`${s} \xb7 ${d(a.labelKey)}`:s;return(0,n.jsxs)("div",{onClick:t=>j(e,t),title:a?d(a.titleKey):void 0,className:` 1748 relative flex items-center justify-center 1749 min-h-9 md:flex-1 md:min-w-0 1750 px-2.5 md:px-1 1751 cursor-pointer flex-shrink-0 1752 transition-colors duration-200 1753 ${t?"text-v2-accent-primary":"text-v2-text-secondary hover:text-v2-text-primary"} 1754 `,role:"tab",tabIndex:0,onKeyDown:t=>{("Enter"===t.key||" "===t.key)&&(t.preventDefault(),o(e))},"aria-selected":t,"aria-label":d("module.modelSelector.filterCategoryModels",{category:i}),children:[(0,n.jsx)("span",{className:`text-[13px] leading-5 whitespace-nowrap ${t?"font-semibold":"font-medium"}`,children:s}),t&&(0,n.jsx)("span",{className:"absolute bottom-0 left-2.5 right-2.5 h-0.5 bg-v2-accent-primary rounded-full"}),(0,n.jsx)("span",{className:"sr-only",children:a?l:null})]},e)})})}),s?(0,n.jsx)("div",{className:"flex w-full justify-end flex-shrink-0 px-3 py-1.5 sm:w-auto sm:border-l border-v2-border-primary/50",children:s}):null]})},f=e=>{let{value:t,onChange:r,placeholder:o="",inputRef:s,onBlur:l,compact:d=!1}=e,{t:c}=(0,i.Bd)("chat"),[u,m]=(0,a.useState)(t);(0,a.useEffect)(()=>{m(t)},[t]),(0,a.useEffect)(()=>{let e=setTimeout(()=>{u!==t&&r(u)},300);return()=>clearTimeout(e)},[u,t,r]);let g=(0,a.useCallback)(e=>{m(e.target.value)},[]),f=(0,a.useCallback)(()=>{m(""),r("")},[r]),v=u.length>0;return(0,n.jsxs)("div",{className:"relative w-full",children:[(0,n.jsx)("div",{className:`absolute top-1/2 -translate-y-1/2 pointer-events-none ${d?"left-2.5":"left-3"}`,children:(0,n.jsx)(p.A,{className:`text-v2-text-secondary opacity-60 ${d?"w-4 h-4":"w-5 h-5"}`})}
1754),(0,n.jsx)("input",{ref:s,type:"text",value:u,onChange:g,onBlur:l,placeholder:o||c("module.modelSelector.searchDefaultPlaceholder"),autoComplete:"off",spellCheck:!1,"aria-label":c("module.modelSelector.searchModel"),className:` 1755 w-full 1756 ${d?"pl-9 pr-9 py-1.5 text-xs sm:text-[13px] rounded-md":"pl-10 pr-10 py-2 sm:py-2.5 text-[13px] sm:text-sm rounded-lg"} 1757 text-v2-text-primary 1758 placeholder:text-v2-text-tertiary 1759 bg-v2-bg-card 1760 border border-v2-border-primary 1761 outline-none 1762 transition-v2-interactive duration-200 1763 hover:border-v2-border-secondary 1764 focus:border-v2-border-focus focus:ring-2 focus:ring-v2-border-focus/20 1765 `}),v&&(0,n.jsx)("button",{type:"button",onClick:f,"aria-label":c("module.modelSelector.clearSearch"),className:` 1766 absolute top-1/2 -translate-y-1/2 p-0.5 1767 text-v2-text-secondary 1768 hover:text-v2-text-primary hover:bg-v2-bg-hover 1769 rounded transition-colors duration-200 1770 ${d?"right-1.5":"right-2"} 1771 `,children:(0,n.jsx)(h.A,{className:d?"w-4 h-4":"w-[18px] h-[18px]"})})]})};var v=r(51895),b=r(41370),y=r(51669),x=r(96959);let w=e=>{let{model:t,compact:r,hideHealthErrorLabel:a=!1}=e,{t:o}=(0,i.Bd)("chat"),s=t.usage_stats_snapshot,l=null==s?void 0:s.success_rate;if(s&&(0,x.Bx)(s)&&null!=l&&Number.isFinite(l)){let e=s.window_days??7;return(0,n.jsxs)("span",{className:` 1772 inline-flex items-center tabular-nums font-semibold 1773 border rounded-md 1774 ${r?"text-[11px] px-1 py-px border-0 bg-transparent whitespace-nowrap":"text-[11px] px-2 py-0.5"} 1775 ${l>=95?"text-emerald-600 dark:text-emerald-400 bg-emerald-500/12 border-emerald-500/25":l>=80?"text-amber-600 dark:text-amber-400 bg-amber-500/12 border-amber-500/25":"text-red-600 dark:text-red-400 bg-red-500/12 border-red-500/25"} 1776 `,title:o("module.modelSelector.successRateTitle",{days:e}),children:[r?(0,n.jsx)("span",{className:"font-normal mr-1 whitespace-nowrap",children:o("module.modelSelector.successRateLabel")}):(0,n.jsx)("span",{className:"opacity-80 font-normal mr-0.5",children:o("module.modelSelector.recentDays",{days:e})}),(0,n.jsxs)("span",{className:"whitespace-nowrap",children:[l.toFixed(1),"%"]})]})}if(s&&(0,x.S2)(s)){let e=s.window_days??7;return(0,n.jsxs)("span",{className:` 1777 inline-flex items-center tabular-nums 1778 ${r?"text-[10px]":"text-[11px]"} 1779 text-v2-text-tertiary 1780 `,title:o("module.modelSelector.hiddenRateTitle",{days:e}),children:[!r&&(0,n.jsx)("span",{className:"opacity-70 font-normal mr-0.5",children:o("module.modelSelector.recentDays",{days:e})}),(0,n.jsx)("span",{className:"opacity-60",children:o("module.modelSelector.hidden")})]})}let d=t.health_status;if(d)return a&&"error"===d?null:(0,n.jsxs)("span",{className:` 1781 inline-flex items-center gap-1 1782 ${r?"text-[10px]":"text-[11px]"} 1783 text-v2-text-secondary 1784 `,title:t.health_error||null!=t.response_time?o("module.modelSelector.lineCheckWithLatency",{latency:t.response_time??"â"}):o("module.modelSelector.lineCheck"),children:[(0,n.jsx)("span",{className:`w-1.5 h-1.5 rounded-full flex-shrink-0 ${function(e){switch(e){case"idle":return"bg-emerald-500";case"smooth":return"bg-lime-500";case"congested":return"bg-amber-500";case"error":return"bg-red-500";default:return"bg-v2-text-tertiary"}}(d)}`,"aria-hidden":!0}),(0,n.jsx)("span",{className:"tabular-nums",children:o(function(e){switch(e){case"idle":return"module.modelSelector.status.idle";case"smooth":return"module.modelSelector.status.smooth";case"congested":return"module.modelSelector.status.congested";case"error":return"module.modelSelector.status.error";default:return"module.modelSelector.status.unknown"}}(d))})]});if(s&&0>=(0,x.IS)(s)){let e=s.window_days??7;return(0,n.jsxs)("span",{className:` 1785 inline-flex items-center tabular-nums 1786 ${r?"text-[10px]":"text-[11px]"} 1787 text-v2-text-tertiary 1788 `,title:o("module.modelSelector.noUsageDataTitle",{days:e}),children:[!r&&(0,n.jsx)("span",{className:"opacity-70 font-normal mr-0.5",children:o("module.modelSelector.recentDays",{days:e})}),(0,n.jsx)("span",{className:"opacity-60",children:o("module.modelSelector.hidden")})]})}return null};var k=r(90777);let S=a.memo(e=>{let{model:t,isSelected:r,isFavorite:o,onSelect:s,onToggleFavorite:d,compact:c=!1,hideHealthErrorLabel:u=!1}=e,{t:m}=(0,i.Bd)("chat"),p=(0,a.useCallback)(e=>{e.stopPropagation(),d()},[d]),h="number"==typeof t.price_coefficient?t.price_coefficient.toFixed(4):"â",g=Number(t.price_coefficient),f=Number.isFinite(g)&&g>1,v=(0,l.N)(t.name),x=t.provider_name||t.provider,S=(0,k.Oi)(t);return(0,n.jsx)("div",{className:c?"":"mb-1",children:(0,n.jsxs)("div",{role:"button",tabIndex:0,"aria-pressed":r,onClick:s,onKeyDown:e=>
1788{e.target===e.currentTarget&&("Enter"===e.key||" "===e.key)&&(e.preventDefault(),s())},className:` 1789 flex flex-col 1790 ${c?"relative gap-0.5 pl-2.5 pr-10 py-1.5 rounded-md":"gap-1.5 px-3 py-2.5 rounded-xl"} 1791 cursor-pointer transition-colors duration-200 1792 focus-visible:outline focus-visible:outline-2 focus-visible:outline-v2-accent-primary 1793 ${r?c?"bg-v2-accent-primary/10":"border-2 border-v2-accent-primary bg-v2-accent-primary/10 rounded-xl":c?"hover:bg-v2-bg-hover/50":"border-2 border-transparent hover:bg-v2-bg-hover/60 rounded-xl"} 1794 `,children:[(0,n.jsxs)("div",{className:"flex items-center gap-2 min-w-0",children:[(0,n.jsx)("span",{className:` 1795 min-w-0 flex-1 truncate 1796 ${r?"font-semibold":"font-medium"} 1797 ${c?"text-[13px] leading-5":"text-sm"} 1798 text-v2-text-primary 1799 `,title:t.name,children:v}),r&&c&&(0,n.jsx)("span",{className:"shrink-0 text-sm font-semibold text-v2-accent-primary",title:m("module.modelSelector.current"),"aria-label":m("module.modelSelector.current"),children:"â"}),"adjustable"===S?(0,n.jsx)("span",{className:` 1800 shrink-0 rounded px-1.5 py-0.5 font-normal 1801 ${c?"text-[10px] leading-3":"text-[11px] leading-4"} 1802 text-v2-text-tertiary 1803 ${c?"":"bg-v2-bg-secondary border border-v2-border-primary/50"} 1804 `,title:m("module.modelSelector.thinkingLevelBadgeTitle"),children:m("module.modelSelector.thinkingLevelBadge")}):null,(0,n.jsx)("button",{type:"button",onClick:p,"aria-label":m(o?"module.modelSelector.unfavoriteModel":"module.modelSelector.favoriteModel"),className:` 1805 ${c?"compact absolute right-1 top-1/2 -translate-y-1/2 h-8 w-8 min-h-0 p-1.5 inline-flex items-center justify-center":"p-1.5"} 1806 rounded-md transition-colors shrink-0 1807 ${o?"text-v2-accent-primary":"text-v2-text-tertiary hover:text-v2-accent-primary"} 1808 hover:bg-v2-bg-hover 1809 `,children:o?(0,n.jsx)(y.A,{className:c?"w-3.5 h-3.5":"w-5 h-5"}):(0,n.jsx)(b.A,{className:c?"w-3.5 h-3.5":"w-5 h-5"})})]}),(0,n.jsxs)("div",{className:"flex flex-wrap items-center gap-x-2 gap-y-1 min-w-0",children:[x&&(0,n.jsx)("span",{className:` 1810 ${c?"text-[11px]":"h-5 text-[11px] px-2 border border-v2-border-primary/80 bg-v2-bg-secondary/90 rounded-md"} 1811 inline-flex items-center text-v2-text-secondary shrink-0 max-w-[46%] truncate 1812 `,children:x}),r&&!c&&(0,n.jsx)("span",{className:"h-5 text-[11px] px-2 inline-flex items-center font-medium bg-v2-accent-primary text-white rounded-md shrink-0",children:m("module.modelSelector.current")}),t.is_recommended&&!r&&!c&&(0,n.jsx)("span",{className:"h-5 text-[11px] px-2 inline-flex items-center font-medium bg-emerald-600/90 text-white rounded-md shrink-0",children:m("module.modelSelector.recommended")}),(0,n.jsxs)("span",{className:`${c?"text-[11px] leading-4":"text-xs"} text-v2-text-tertiary shrink-0`,title:m("module.modelSelector.priceCoefficientLabel"),children:[(0,n.jsx)("span",{className:c?"sr-only":void 0,children:m("module.modelSelector.priceCoefficientLabel")}),(0,n.jsx)("span",{className:"mx-1 opacity-40","aria-hidden":"true",children:"\xb7"}),(0,n.jsx)("span",{style:f?{color:"var(--v2-state-warning)"}:void 0,className:"tabular-nums text-v2-text-secondary",children:h})]}),(0,n.jsx)("span",{className:"ml-auto shrink-0",children:(0,n.jsx)(w,{model:t,compact:c,hideHealthErrorLabel:u})})]})]})})});S.displayName="ModelItem";let C=a.memo(function(e){let{models:t,currentModel:r,onSelectModel:o,favoriteModels:s,onToggleFavorite:l,compact:d=!1,preserveModelsOrder:c=!1,hideHealthErrorLabel:u=!1,listFooter:m=null}=e,{t:p}=(0,i.Bd)("chat"),h=(0,a.useRef)(null),g=(0,a.useMemo)(()=>{let e=c?[...t]:[...t].sort((e,t)=>{let r="number"==typeof e.sort_order?e.sort_order:0,n="number"==typeof t.sort_order?t.sort_order:0;return r!==n?r-n:(e.name||"").localeCompare(t.name||"")});if(!c&&(null==r?void 0:r.id)){let t=e.findIndex(e=>e.id===r.id);if(t>0){let[r]=e.splice(t,1);e.unshift(r)}}return e},[t,r,c]),f=g.length>400,b=(0,v.Te)({count:g.length,getScrollElement:()=>h.current,estimateSize:()=>50,overscan:12});return 0===t.length?(0,n.jsxs)("div",{className:"flex h-full min-h-[160px] flex-col justify-center items-center p-4 gap-3",children:[(0,n.jsx)("span",{className:"text-v2-text-secondary text-[13px]",children:p("module.modelSelector.noModels")}),m]}):f?(0,n.jsxs)("div",{ref:h,className:"w-full h-full overflow-y-auto overflow-x-hidden scrollbar-thin",children:[(0,n.jsx)("ul",{className:"w-full relative list-none m-0 p-0",style:{height:`${b.getTotalSize()}px`},children:b.getVirtualItems().map(e=>{let t=g[e.index];return(0,n.jsx)("li",{"data-index":e.index,ref:b.measureElement,className:"absolute top-0 left-0 w-full",style:{transform:`translateY(${e.start}px)`},children:(0,n.jsx)(S,{model:t,isSelected:(null==r?void 0:r.id)===t.id,isFavorite:s.includes(t.id),onSelect:()=>o(t),onToggleFavorite:()=>l(t.id),compact:d,hideHealthErrorLabel:u})},e.key)})}),m]}):(0,n.jsxs)("div",{className:"w-full h-full overflow-y-auto overflow-x-hidden scrollbar-thin",children:[(0,n.jsx)("ul",{className:"w-full list-none m-0 p-0",children:g.map(e=>(0,n.jsx)(S,{model:e,isSelected:(null==r?void 0:r.id)===e.id,isFavorite:s.includes(e.id),onSelect:()=>o(e),onToggleFavorite:()=>l(e.id),compact:d,hideHealthErrorLabel:u},e.id))}),m]})}),I=e=>{let{models:t,onSwitch:r,disabled:a=!1,isMobile:o=!1,leadingSlot:s}=e,{t:d}=(0,i.Bd)("chat"),c=t.find(e=>!0===e.is_default)||null,u=c?(0,l.N)(c.name):void 0,m=a||!c;return(0,n.jsxs)("div",{className:"relative w-full min-w-0",children:[s?(0,n.jsx)("div",{className:"min-w-0
1812w-full",children:s}):null,(0,n.jsx)("button",{type:"button",onClick:()=>{c&&r(c)},disabled:m,title:u?d("module.modelSelector.switchToDefault",{model:u}):void 0,className:` 1813 absolute right-0 top-0 rounded-md border border-v2-border-primary 1814 bg-v2-bg-card px-2.5 py-1.5 text-[11px] font-medium leading-5 1815 text-v2-text-secondary shadow-sm 1816 hover:border-v2-accent-primary hover:text-v2-accent-primary hover:bg-v2-accent-primary/10 1817 transition-v2-interactive duration-200 1818 ${m?"opacity-40 border-v2-border-secondary text-v2-text-disabled cursor-not-allowed":"cursor-pointer active:scale-95"} 1819 `,"aria-label":d(m?"module.modelSelector.noDefaultModelAria":"module.modelSelector.oneClickSwitchDefault"),children:d("module.modelSelector.oneClickSwitch")})]})},j={off:{label:"module.modelSelector.thinkingLevelOff",title:"module.modelSelector.thinkingLevelOffTitle",hint:"module.modelSelector.thinkingLevelHintOff"},low:{label:"module.modelSelector.thinkingLevelLow",title:"module.modelSelector.thinkingLevelLowTitle",hint:"module.modelSelector.thinkingLevelHintLow"},medium:{label:"module.modelSelector.thinkingLevelMedium",title:"module.modelSelector.thinkingLevelMediumTitle",hint:"module.modelSelector.thinkingLevelHintMedium"},high:{label:"module.modelSelector.thinkingLevelHigh",title:"module.modelSelector.thinkingLevelHighTitle",hint:"module.modelSelector.thinkingLevelHintHigh"}},M=k.EU.length-1;function N(e,t){let r=t.getBoundingClientRect(),n=r.width;return n<=0?0:Math.min(M,Math.floor(Math.min(n,Math.max(0,e-r.left))/n*k.EU.length))}let E=e=>{let{value:t,onChange:r}=e,{t:o}=(0,i.Bd)("chat"),s=(0,a.useId)(),l=(0,a.useRef)(null),d=Math.max(0,k.EU.indexOf(t)),c=j[t],u=(0,a.useCallback)(e=>{let n=k.EU[e];n&&n!==t&&r(n)},[r,t]),m=(0,a.useCallback)(e=>{if(0!==e.button)return;let t=l.current;t&&(t.setPointerCapture(e.pointerId),u(N(e.clientX,t)))},[u]),p=(0,a.useCallback)(e=>{let t=l.current;(null==t?void 0:t.hasPointerCapture(e.pointerId))&&u(N(e.clientX,t))},[u]),h=(0,a.useCallback)(e=>{if("ArrowRight"===e.key||"ArrowUp"===e.key){e.preventDefault(),u(Math.min(M,d+1));return}if("ArrowLeft"===e.key||"ArrowDown"===e.key){e.preventDefault(),u(Math.max(0,d-1));return}if("Home"===e.key){e.preventDefault(),u(0);return}"End"===e.key&&(e.preventDefault(),u(M))},[u,d]);return(0,n.jsxs)("div",{className:"flex w-full min-w-0 flex-col gap-1",children:[(0,n.jsxs)("div",{className:"flex min-w-0 items-center gap-1.5",children:[(0,n.jsx)("span",{className:"shrink-0 text-[12px] font-medium text-v2-text-secondary whitespace-nowrap select-none",children:o("module.modelSelector.thinkingLevel")}),(0,n.jsx)("div",{ref:l,role:"slider",tabIndex:0,"aria-label":o("module.modelSelector.thinkingLevel"),"aria-valuemin":0,"aria-valuemax":M,"aria-valuenow":d,"aria-valuetext":o(c.label),"aria-describedby":s,title:`${o(c.title)} \xb7 ${o(c.hint)}`,onPointerDown:m,onPointerMove:p,onKeyDown:h,className:"relative grid h-8 min-w-0 max-w-52 flex-1 grid-cols-4 cursor-pointer touch-none select-none rounded-md bg-v2-bg-secondary p-0.5 focus-visible:outline focus-visible:outline-2 focus-visible:outline-v2-accent-primary",children:k.EU.map((e,t)=>{let r=d===t;return(0,n.jsx)("span",{"aria-hidden":!0,className:`pointer-events-none flex items-center justify-center rounded text-[11px] transition-colors ${r?"bg-v2-accent-primary font-semibold text-white shadow-sm":"text-v2-text-secondary"}`,children:o(j[e].label)},e)})})]}),(0,n.jsx)("p",{id:s,"aria-live":"polite","aria-atomic":"true",title:o(c.hint),className:"min-w-0 truncate whitespace-nowrap text-[11px] leading-4 text-v2-text-tertiary",children:o(c.hint)})]})},_="chat_model_dialog_sort_mode_v2";function T(e,t){let r="number"==typeof e.sort_order?e.sort_order:0,n="number"==typeof t.sort_order?t.sort_order:0;return r!==n?r-n:(e.name||"").localeCompare(t.name||"")}let P=["Claude","Grok","Gemini","Deepseek","ChatGPT","Other"],R={claude:"Claude",grok:"Grok",gemini:"Gemini",deepseek:"Deepseek",chatgpt:"ChatGPT",gpt:"ChatGPT",宿¹ç ´é:"Other",xiaomi:"Other",other:"Other",text:"Other"};function A(e){return null!=e.category&&""!==String(e.category).trim()?function(e){if(null==e)return"Other";let t=e.trim();if(!t)return"Other";let r=t.toLowerCase(),n=R[r];if(n)return n;let a=P.find(e=>e.toLowerCase()===r);return a||"Other"}(e.category):"Xiaomi"===e.providerCategory||"宿¹ç ´é"===e.providerCategory?"Other":e.providerCategory?e.providerCategory:(`${e.provider_name??""} ${e.provider??""} ${e.name??""}`.toLowerCase().includes("xiaomi"),"Other")}let L="__favorites__",O="__all__",F="__featured__",$=["Deepseek","Gemini","Claude","ChatGPT","Other"];function D(e){return window.addEventListener("resize",e),()=>window.removeEventListener("resize",e)}function B(){return window.innerWidth<640}function q(){return!1}let H=e=>{let{open:t,onClose:r,models:s,currentModel:d,onSelectModel:v,favoriteModels:b,onToggleFavorite:y,unsetSelectionLabel:x,onUnsetSelection:w}=e,{t:S}=(0,i.Bd)("chat"),[j,M]=(0,a.useState)(k._W),N=(0,a.useCallback)(e=>{M(e),(0,k.F7)(e)},[]),P=(0,a.useSyncExternalStore)(D,B,q),[R,H]=(0,a.useState)(F),[z,U]=(0,a.useState)(""),[W,K]=(0,a.useState)(!1),[V,G]=(0,a.useState)(null),[Q,Y]=(0,a.useState)(()=>(function(){try{let e=localStorage.getItem(_);if("popularity"===e||"price_coefficient"===e)return e}catch{}return"popularity"})()),[X,J]=(0,a.useState)(!1),Z=(0,a.useRef)(null);(0,a.useEffect)(()=>
1819{if(!X)return;let e=e=>{Z.current&&!Z.current.contains(e.target)&&J(!1)};return document.addEventListener("mousedown",e),document.addEventListener("touchstart",e),()=>{document.removeEventListener("mousedown",e),document.removeEventListener("touchstart",e)}},[X]),(0,a.useEffect)(()=>{t&&(((null==b?void 0:b.length)??0)>=10?H(L):H(F))},[t]);let ee=(0,a.useRef)(null),et=(0,a.useRef)(null),er=(0,a.useMemo)(()=>[...$],[]),en=(0,a.useMemo)(()=>{let e=s;if(R===L){let t=new Set(b??[]);e=e.filter(e=>t.has(e.id))}else R===F?e=e.filter(e=>!0===e.is_featured):R!==O&&(e=e.filter(e=>A(e)===R));if(z.trim()){let t=z.toLowerCase().trim();e=e.filter(e=>{var r,n;let a=(0,l.N)(e.name).toLowerCase().includes(t),o=null==(r=e.description)?void 0:r.toLowerCase().includes(t),s=A(e).toLowerCase().includes(t),i=null==(n=e.provider)?void 0:n.toLowerCase().includes(t);return a||o||s||i})}return e},[s,R,z,b]),ea=(0,a.useMemo)(()=>{let e;return(e=[...en]).sort((e,t)=>{if("price_coefficient"===Q){let r,n;return r="number"==typeof e.price_coefficient?e.price_coefficient:1/0,r!==(n="number"==typeof t.price_coefficient?t.price_coefficient:1/0)?r-n:T(e,t)}return function(e,t){var r,n;let a=null==(r=e.usage_stats_snapshot)?void 0:r.total_calls,o=null==(n=t.usage_stats_snapshot)?void 0:n.total_calls,s="number"==typeof a&&Number.isFinite(a)&&a>0,i="number"==typeof o&&Number.isFinite(o)&&o>0;if(s&&i){let r=o-a;return 0!==r?r:T(e,t)}return s&&!i?-1:!s&&i?1:T(e,t)}(e,t)}),e},[en,Q]),eo=(0,a.useCallback)(e=>{Y(e);try{localStorage.setItem(_,e)}catch{}J(!1)},[]),es=(0,a.useCallback)(e=>{H(e),et.current&&(et.current.scrollTop=0)},[]),ei=(0,a.useCallback)(e=>{U(e)},[]),el=(0,a.useCallback)(e=>{let t=(0,k.Oi)(e);"off"!==j&&"adjustable"!==t&&(0,u.default)(S("forced_off"===t?"module.modelSelector.thinkingLevelForcedOffToast":"module.modelSelector.thinkingLevelUnsupportedToast")),v(e),"adjustable"!==t&&r()},[r,v,S,j]),ed=(0,a.useCallback)(e=>{if((null==d?void 0:d.id)===e.id)return void el(e);let t=Number(e.price_coefficient);Number.isFinite(t)&&t>1?G(e):el(e)},[el,null==d?void 0:d.id]),ec=(0,a.useCallback)(e=>{ed(e)},[ed]),eu=(0,a.useCallback)(e=>{ed(e)},[ed]),em=(0,a.useCallback)(()=>{U(""),H(F),K(!1),J(!1),G(null),r()},[r]),ep=(0,a.useCallback)(()=>{G(null)},[]),eh=(0,a.useCallback)(()=>{V&&(el(V),G(null))},[el,V]),eg=(0,a.useCallback)(()=>{K(!0)},[]),ef=(0,a.useCallback)(()=>{z||K(!1)},[z]);if((0,a.useEffect)(()=>{W&&ee.current&&ee.current.focus()},[W]),(0,a.useEffect)(()=>{let e=e=>{if("Escape"===e.key&&t){if(V)return void G(null);em()}};return document.addEventListener("keydown",e),()=>document.removeEventListener("keydown",e)},[t,em,V]),(0,a.useEffect)(()=>(t?document.body.style.overflow="hidden":document.body.style.overflow="",()=>{document.body.style.overflow=""}),[t]),!t)return null;let ev=(0,n.jsxs)("div",{ref:Z,className:"relative inline-block shrink-0 text-left",children:[(0,n.jsxs)("button",{type:"button",onClick:()=>J(e=>!e),"aria-expanded":X,"aria-haspopup":"listbox","aria-label":S("module.modelSelector.sortGroup"),title:S("popularity"===Q?"module.modelSelector.popularity":"module.modelSelector.priceCoefficient"),className:` 1820 inline-flex items-center gap-1 rounded-md px-2 py-1 text-xs font-medium 1821 hover:bg-v2-bg-hover 1822 text-v2-text-secondary transition-colors focus-visible:outline focus-visible:outline-2 1823 focus-visible:outline-v2-accent-primary whitespace-nowrap 1824 `,children:[P?(0,n.jsx)(m.A,{className:"h-5 w-5","aria-hidden":"true"}):(0,n.jsx)("span",{children:"popularity"===Q?S("module.modelSelector.popularity"):S("module.modelSelector.priceCoefficient")}),!P&&(0,n.jsx)(o.A,{className:`h-3.5 w-3.5 text-v2-text-tertiary transition-transform duration-200 ${X?"rotate-180":""}`,"aria-hidden":"true"})]}),X&&(0,n.jsxs)("div",{role:"listbox","aria-label":S("module.modelSelector.sortGroup"),className:` 1825 absolute right-0 z-30 mt-1 min-w-[7.5rem] rounded-lg border border-v2-border-primary 1826 bg-v2-bg-card p-1 shadow-lg ring-1 ring-black/5 dark:ring-white/10 1827 `,children:[(0,n.jsxs)("button",{type:"button",role:"option","aria-selected":"popularity"===Q,onClick:()=>eo("popularity"),className:` 1828 flex w-full items-center justify-between rounded-md px-2.5 py-1.5 text-left text-xs transition-colors 1829 ${"popularity"===Q?"bg-v2-accent-primary/10 font-semibold text-v2-accent-primary":"font-medium text-v2-text-secondary hover:bg-v2-bg-hover hover:text-v2-text-primary"} 1830 `,children:[(0,n.jsx)("span",{children:S("module.modelSelector.popularity")}),"popularity"===Q&&(0,n.jsx)("span",{className:"text-xs",children:"â"})]}),(0,n.jsxs)("button",{type:"button",role:"option","aria-selected":"price_coefficient"===Q,onClick:()=>eo("price_coefficient"),className:` 1831 flex w-full items-center justify-between rounded-md px-2.5 py-1.5 text-left text-xs transition-colors 1832 ${"price_coefficient"===Q?"bg-v2-accent-primary/10 font-semibold text-v2-accent-primary":"font-medium text-v2-text-secondary hover:bg-v2-bg-hover hover:text-v2-text-primary"} 1833 `,children:[(0,n.jsx)("span",{children:S("module.modelSelector.priceCoefficient")}),"price_coefficient"===Q&&(0,n.jsx)("span",{className:"text-xs",children:"â"})]})]})]}),eb=(0,n.jsxs)("div",{className:"chat-modal-overlay fixed inset-0 flex items-center justify-center p-2 sm:p-4",style:{zIndex:"var(--v2-z-modal)",backgroundColor:"var(--v2-bg-overlay)",paddingTop:"max(1rem, var(--top-safe-area-inset, env(safe-area-inset-top, 0px)))",paddingBottom:"max(1rem, env(safe-area-inset-bottom, 0px))"},children:[(0,n.jsx)("div",{className:"absolute inset-0",onClick:em,"aria-hidden":!0}),(0,n.jsxs)("div",{className:` 1834 chat-modal-panel relative z-10 1835 flex shrink-0 flex-col 1836 overflow-hidden 1837 shadow-2xl 1838 m-auto 1839 ${P?"h-[94dvh] max-h-full w-full rounded-xl":"h-[88dvh] max-h-full w-full max-w-3xl rounded-xl"} 1840 `,style:{backgroundColor:"var(--v2-bg-card)"},role:"dialog","aria-labelledby":"model-selector-dialog-title","aria-modal":"true",children:[(0,n.jsxs)("div",{className:` 1841 flex shrink-0 items-center gap-1 sm:gap-2 1842 px-2 py-1 sm:px-3 1843 border-b border-v2-border-primary 1844 `,children:[!P&&(0,n.jsx)("h2",{id:"model-selector-dialog-title",className:"shrink-0 text-sm font-medium text-v2-text-primary",children:S("module.modelSelector.selectModel")}),P&&!W?(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)("h2",{id:"model-selector-dialog-title",className:"sr-only",children:S("module.modelSelector.selectModel")}
1844),(0,n.jsx)(g,{categories:er,currentCategory:R,onCategoryChange:es,embedded:!0})]}):(0,n.jsxs)("div",{className:`flex-1 min-w-0 ${P?"":"max-w-[500px] mx-auto"}`,children:[P&&(0,n.jsx)("h2",{id:"model-selector-dialog-title",className:"sr-only",children:S("module.modelSelector.selectModel")}),(0,n.jsx)(f,{value:z,onChange:ei,placeholder:S("module.modelSelector.searchPlaceholder"),inputRef:ee,onBlur:P?ef:void 0,compact:!0})]}),P&&!W&&ev,P&&!W&&(0,n.jsx)("button",{type:"button",onClick:eg,"aria-label":S("module.modelSelector.searchModel"),className:"shrink-0 p-2 text-v2-text-secondary hover:text-v2-text-primary hover:bg-v2-bg-hover rounded-md transition-colors",children:(0,n.jsx)(p.A,{className:"w-5 h-5"})}),(0,n.jsx)("button",{type:"button",onClick:em,"aria-label":S("module.modelSelector.closeModal"),className:"p-2 text-v2-text-tertiary hover:bg-v2-bg-hover rounded-md transition-colors shrink-0",children:(0,n.jsx)(h.A,{className:"w-5 h-5"})})]}),(0,n.jsxs)("div",{className:"flex-1 flex flex-col overflow-hidden min-h-0",children:[x&&w&&(0,n.jsx)("div",{className:` 1845 flex-shrink-0 border-b border-v2-border-primary 1846 ${P?"px-3.5 py-2":"px-4 py-1.5"} 1847 `,children:(0,n.jsx)("button",{type:"button",onClick:()=>{w(),em()},className:` 1848 w-full text-left rounded-md px-2.5 py-2 text-[13px] 1849 border border-v2-border-primary bg-v2-bg-hover/80 1850 text-v2-text-primary hover:bg-v2-bg-hover transition-colors 1851 `,children:x})}),!P&&(0,n.jsx)("div",{className:"flex-shrink-0",children:(0,n.jsx)(g,{categories:er,currentCategory:R,onCategoryChange:es,trailingSlot:ev})}),(0,n.jsx)("div",{ref:et,className:"flex-1 min-h-0 overflow-hidden px-2 py-1 sm:px-3",children:(0,n.jsx)(C,{models:ea,currentModel:d,onSelectModel:ec,favoriteModels:b,onToggleFavorite:y,compact:!0,preserveModelsOrder:!0,hideHealthErrorLabel:!0,listFooter:R===F?(0,n.jsx)("div",{className:"px-1 py-1",children:(0,n.jsx)("button",{type:"button",onClick:()=>es(O),"aria-label":S("module.modelSelector.viewAllModelsAria"),className:"w-full min-h-8 rounded-md px-3 py-1 text-xs text-v2-text-secondary hover:bg-v2-bg-hover hover:text-v2-accent-primary transition-colors",children:S("module.modelSelector.viewAllModels")})}):null})}),(0,n.jsx)("div",{className:"flex-shrink-0 px-3 py-2 border-t border-v2-border-primary",style:P?{paddingBottom:"max(0.5rem, env(safe-area-inset-bottom, 0px))"}:void 0,children:(0,n.jsx)(I,{models:s,onSwitch:eu,isMobile:P,leadingSlot:(0,n.jsx)(E,{value:j,onChange:N})})})]})]}),V&&(0,n.jsxs)("div",{className:"absolute inset-0 z-20 flex items-center justify-center p-4",children:[(0,n.jsx)("div",{className:"absolute inset-0 chat-modal-overlay",style:{backgroundColor:"var(--v2-bg-overlay)"},onClick:ep}
1851),(0,n.jsxs)("div",{className:"relative w-full max-w-sm rounded-xl border border-v2-border-primary bg-v2-bg-card p-4 shadow-2xl",role:"alertdialog","aria-modal":"true",children:[(0,n.jsx)("p",{className:"text-sm leading-relaxed text-v2-text-primary",children:S("module.modelSelector.highPriceCoefficientConfirm",{coefficient:Number(V.price_coefficient).toFixed(2)})}),(0,n.jsxs)("div",{className:"mt-4 flex justify-end gap-2",children:[(0,n.jsx)("button",{type:"button",onClick:ep,className:"rounded-lg border border-v2-border-primary px-3 py-1.5 text-sm text-v2-text-secondary hover:bg-v2-bg-hover",children:S("module.cancel")}),(0,n.jsx)("button",{type:"button",onClick:eh,className:"rounded-lg bg-v2-accent-primary px-3 py-1.5 text-sm text-white hover:bg-v2-accent-hover",children:S("module.confirm")})]})]})]})]});return"u"<typeof document?null:(0,c.createPortal)(eb,document.body)};var z=r(71673),U=r(73647),W=r(34978);let K="chat_favorite_models";function V(e,t){try{localStorage.setItem(e,JSON.stringify(t))}catch(e){}}let G=e=>{let{characterId:t,recommendedModelId:r,onModelChange:c,onUserModelSelect:u,disabled:m=!1,className:p,initialModels:h,variant:g="select",id:f,"data-tour":v,onModelSelectorClick:b,lockedModelId:y,preferredDefaultModelId:x,selectionMode:w="chat",valueModelId:k,onAuthorValueChange:S,buttonEmptyLabel:C}=e,{t:I}=(0,i.Bd)("chat"),j=(0,s.jE)(),M=(0,a.useRef)(!1),N="authorForm"===w?"dialog":g,[E,_]=(0,a.useState)(!1),[T,P]=(0,a.useState)([]),[R,A]=(0,a.useState)(null),[L,O]=(0,a.useState)([]),[F,$]=(0,a.useState)(!0),[D,B]=(0,a.useState)(null),q=!!(h&&h.length>0),{data:G,isLoading:Q,isError:Y,error:X,isFetched:J}=(0,U.k)({enabled:!q});(0,a.useEffect)(()=>{O(function(e,t){try{let r=localStorage.getItem(e);return r?JSON.parse(r):t}catch(e){return t}}(K,[]))},[]),(0,a.useEffect)(()=>{if(!q&&!J)return void $(Q);if($(!1),!q&&Y){B(X instanceof Error?X.message:I("module.modelSelector.loadModelsFailed")),P([]);return}let e=q?h??[]:G??[];if(0===e.length){B(I("module.modelSelector.noModels")),P([]);return}if(B(null),P(e),"authorForm"===w)return;let{model:n,clearCharacterStorage:a,clearGlobalStorage:o}=(0,W.RP)(e,t,r??null,y,x);try{a&&(null==t?void 0:t.trim())&&localStorage.removeItem((0,W.L4)(t.trim())),o&&localStorage.removeItem(W.TY)}catch{}A(n),c&&c(n);let s="string"==typeof y?y.trim():"";!s||e.some(e=>e.id===s)||q||M.current||(M.current=!0,j.invalidateQueries({queryKey:z.lH.aiModels.active()}))},[q,h,G,J,Q,Y,X,t,r,y,x,w,c,j,I]),(0,a.useEffect)(()=>{(null==y?void 0:y.trim())||(M.current=!1)},[y]);let Z=(0,a.useMemo)(()=>{if("authorForm"!==w||0===T.length)return null;let e="string"==typeof k?k.trim():"";return e?T.find(t=>t.id===e)??null:(0,W.Rr)(T)},[w,k,T]),ee="authorForm"===w&&k?Z:null,et="authorForm"===w?Z:R,er="authorForm"===w?ee:R;(0,a.useEffect)(()=>{"authorForm"===w&&A(Z)},[w,Z]),(0,a.useEffect)(()=>{if("chat"!==w)return;let e=e=>{let{model:t,models:r}=e.detail;r&&r.length>0&&P(r),t&&A(t)};return window.addEventListener("model-disabled-switch",e),()=>{window.removeEventListener("model-disabled-switch",e)}},[w]);let en=(0,a.useCallback)(()=>{if(!m&&!F){if(b)return void b();_(!0)}},[m,F,b]),ea=(0,a.useCallback)(()=>{_(!1)},[]),eo=(0,a.useCallback)(e=>{let r="string"==typeof y?y.trim():"";if(!r||e.id===r){if(A(e),"authorForm"===w){null==S||S(e.id),null==c||c(e),null==u||u(e);return}(0,W.K4)(t,e),("idle"===e.status||"normal"===e.status)&&V("chat_last_stable_model",e),c&&c(e),null==u||u(e)}},[t,y,c,u,w,S]),es=(0,a.useCallback)(()=>{A(null),null==S||S(null),null==c||c(null),null==u||u(null)},[S,c,u]),ei=(0,a.useCallback)(e=>{O(t=>{let r=t.includes(e)?t.filter(t=>t!==e):[...t,e];return V(K,r),r})},[]);if("select"===N){let e=(null==R?void 0:R.id)??"",t=m||F||!!D||0===T.length;return b?(0,n.jsx)("div",{className:p,children:(0,n.jsxs)("div",{className:"group relative inline-flex items-center max-w-[260px]",children:[(0,n.jsx)("button",{type:"button",onClick:b,"aria-label":I("module.modelSelector.selectModel"),title:I("module.modelSelector.clickSwitchModel"),className:" appearance-none bg-transparent border-0 shadow-none h-6 sm:h-7 pr-4 sm:pr-5 pl-0.5 sm:pl-1 text-[11px] sm:text-sm font-medium text-v2-text-secondary cursor-pointer hover:text-v2-text-primary focus:outline-none focus:ring-0 max-w-[180px] sm:max-w-[260px] truncate text-left ",children:R?(0,l.N)(R.name):I("module.modelSelector.selectModel")}),(0,n.jsx)(o.A,{className:" pointer-events-none absolute right-0 h-3 w-3 sm:h-4 sm:w-4 text-v2-text-tertiary group-hover:text-v2-text-secondary "})]})}):(0,n.jsx)("div",{className:p,children:(0,n.jsxs)("div",{className:"group relative inline-flex items-center max-w-[260px]",children:[(0,n.jsxs)("select",{value:e,disabled:t,onChange:e=>{let t=e.target.value,r=T.find(e=>e.id===t);r&&eo(r)},"aria-label":I("module.modelSelector.selectModel"),title:t?I("module.modelSelector.modelUnavailable"):I("module.modelSelector.clickSwitchModel"),className:" appearance-none bg-transparent border-0 shadow-none h-6 sm:h-7 pr-4 sm:pr-5 pl-0.5 sm:pl-1 text-[11px] sm:text-sm font-medium text-v2-text-secondary cursor-pointer hover:text-v2-text-primary focus:outline-none focus:ring-0 disabled:opacity-50 disabled:cursor-not-allowed max-w-[180px] sm:max-w-[260px] truncate ",children:[F&&(0,n.jsx)("option",{value:"",children:I("module.modelSelector.loading")}),!F&&D&&(0,n.jsx)("option",{value:"",children:I("module.modelSelector.loadFailed")}),!F&&!D&&0===T.length&&(0,n.jsx)("option",{value:"",children:I("module.modelSelector.noModels")}),!F&&!D&&T.map(e=>(0,n.jsx)("option",{value:e.id,children:(0,l.N)(e.name)},e.id))]}),(0,n.jsx)(o.A,{className:" pointer-events-none absolute right-0 h-3 w-3 sm:h-4 sm:w-4 text-v2-text-tertiary group-hover:text-v2-text-secondary "})]})})}let el="authorForm"===w?C:void 0;return F||D?(0,n.jsx)(d,{currentModel:et,onClick:en,disabled:!0,id:f,"data-tour":v,className:p,emptyLabel:el}):(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)(d,{currentModel:et,onClick:en,disabled:m||0===T.length,id:f,"data-tour":v,className:p,emptyLabel:el}),(0,n.jsx)(H,{open:E,onClose:ea,models:T,currentModel:er,onSelectModel:eo,favoriteModels:L,onToggleFavorite:ei,unsetSelectionLabel:"authorForm"===w?C:void 0,onUnsetSelection:"authorForm"===w?es:void 0})]})}},28157:(e,t,r)=>{r.d(t,{bv:()=>i,qn:()=>o,tg:()=>s,wf:()=>a});var n=r(34978);function a(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:Date.now();return(null==e?void 0:e.available)===!0&&e.remaining>0&&null!==e.expiresAt&&e.expiresAt>t}function o(e,t){let r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:Date.now();return e&&(0,n.GO)(t,r)}function s(e){var t;let r=e.now??Date.now();return e.isAuthenticated?e.isFreeTierUser?!function(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:Date.now(),r=arguments.length>2?arguments[2]:void 0;if(e){let r=new Date(e).getTime();if(Number.isFinite(r))return t<r+72e5}return"number"==typeof r&&r>t}(e.createdAt,r,null==(t=e.trialStatus)?void 0:t.expiresAt)?o(!0,e.createdAt,r)?{shouldLock:!0,lockedModelId:"aefb8f0c-5438-4926-ae94-8e92f6ef046f"}:{shouldLock:!1}:{shouldLock:!1,preferredDefaultModelId:"aa8931b2-f637-43ed-8be9-10e73420c251"}:{shouldLock:!1}:{shouldLock:!0,lockedModelId:"fbfb20a5-0d59-40b3-b863-b83d652dd02f"}}
1851function i(e){let t=!e.shouldLoadTrialStatus||!e.isTrialStatusPending&&!e.isTrialStatusError&&void 0!==e.trialStatus;return e.hasLowBalance&&t&&!a(e.trialStatus,e.now)}},28458:(e,t,r)=>{r.d(t,{K$:()=>h,OE:()=>l,cf:()=>u,h8:()=>i,ws:()=>d});var n=r(14232);let a="bubble-font-size-global",o="bubble-font-size-global-schema",s="bubble-font-size-style",i=13,l=12,d=20,c="#installedBuiltInCss";function u(e){return Math.max(l,Math.min(d,Math.round(e)))}function m(){try{let e=localStorage.getItem(o),t=localStorage.getItem(a);if(null!==t){let r=Number(t);if(Number.isFinite(r)){let t=u(r);if("v2"!==e&&14===t)return localStorage.setItem(a,String(i)),localStorage.setItem(o,"v2"),i;return"v2"!==e&&localStorage.setItem(o,"v2"),t}}}catch{}return i}function p(e){let t=document.getElementById(s);t||((t=document.createElement("style")).id=s,document.head.appendChild(t));let r=`${c} .bubble-message-body:not(:has(ai)), 1852 ${c} .html-message-content.bubble-message-body:not(:has(ai)), 1853 ${c} .bubble-message-body.markdown-body:not(:has(ai)), 1854 ${c} .bubble-message-body .markdown-body:not(:has(ai)), 1855 ${c} .bubble-message-body .safe-html-content:not(:has(ai)), 1856 ${c} .bubble-message-body .v2-markdown-body:not(:has(ai)), 1857 ${c} .bubble-message-body .ai-content-body:not(:has(ai))`;t.textContent=` 1858 ${r} { 1859 font-size: ${e}px !important; 1860 } 1861 ${c} .bubble-message-body .text-sm, 1862 ${c} .bubble-message-body .prose { 1863 font-size: ${e}px !important; 1864 } 1865 1866 /* ç§»å¨ç«¯ä¸åé¢å¤éåå·ï¼é¿å è¦çè§è²å¡å èå¡çï¼å¦è¡å¨æ¨èï¼æçã */ 1867 `}function h(){let[e,t]=(0,n.useState)(()=>m());return(0,n.useEffect)(()=>{p(e)},[e]),{fontSizePx:e,setFontSizePx:(0,n.useCallback)(e=>{let r=u(e);t(r);try{localStorage.setItem(a,String(r)),localStorage.setItem(o,"v2")}catch{}},[])}}p(m())},28975:(e,t,r)=>{r.d(t,{Z:()=>a,n:()=>o});let n=/!\[[^\]]*\]\([^)]*\)/g;function a(e){return e.includes("comfy://loading/")||e.includes("/comfyai/results/")}function o(e){return"string"==typeof e&&!!a(e)&&0===e.replace(n,"").trim().length}},29206:(e,t,r)=>{r.d(t,{$D:()=>c,AH:()=>i,CW:()=>g,Kq:()=>h,M:()=>d,Om:()=>s,Uy:()=>l,bq:()=>m,i$:()=>u,sb:()=>a,tE:()=>o,ur:()=>p});var n=r(77810);let a=30,o=20,s=80,i=12,l=1e3,d=100;function c(e){var t;let r=!!(null==(t=e.name)?void 0:t.trim()),n=(e.triggerKeywords??[]).some(e=>e.trim().length>0),a=(e.assets??[]).some(e=>{var t;return null==(t=e.url)?void 0:t.trim()});return!r&&!n&&!a}function u(e){if(""===e||null==e)return;let t="number"==typeof e?e:Number(e);if(Number.isFinite(t)&&!(t<=0))return Math.floor(t)}function m(){return{id:(0,n.b)(),name:"",triggerKeywords:[],triggerSource:"both",matchMode:"any",assetType:"image",assets:[],frequency:"once_per_session",enabled:!0}}let p=[{value:"once_per_session",labelKey:"cgBook.frequencyOncePerSession"},{value:"cooldown",labelKey:"cgBook.frequencyCooldown"}];function h(e){let t=e.trim();if(!t||t.length>l||t.startsWith("javascript:")||t.startsWith("data:")||t.startsWith("blob:"))return!1;if(t.startsWith("/"))return!0;try{let e=new URL(t);return"https:"===e.protocol||"http:"===e.protocol}catch{return!1}}let g=[{value:"any",labelKey:"cgBook.matchModeAny"},{value:"all",labelKey:"cgBook.matchModeAll"}]},30318:(e,t,r)=>{r.d(t,{IN:()=>o,YA:()=>s,lk:()=>n,Iv:()=>a,tN:()=>c,u2:()=>d,un:()=>l});let n=500,a=100,o=500,s=2e3,i=new Map;function l(e){let t=e.trim();return t.length>=2&&t.startsWith("`")&&t.endsWith("`")?t.slice(1,-1):t}function d(e){return/\([^()]*[+*{][^()]*\)[+*{]/.test(e)||/(\.\*|\.\+){2,}/.test(e)||(e.match(/\|/g)??[]).length>20}function c(e,t,r){return function(e,t,r){let a=arguments.length>3&&void 0!==arguments[3]?arguments[3]:"all";if(!e||!(null==t?void 0:t.length)||e.length>1e5)return e;let c=e;for(let e of t.slice(0,n)){if(!1===e.enabled||"all"!==e.scope&&e.scope!==r||"persist"===a&&e.renderOnly||"renderOnly"===a&&!e.renderOnly)continue;let t=l(e.matchRegex||"");if(!t)continue;let u=function(e){if(i.has(e))return i.get(e)??null;let t=null;if(e.length<=o&&!d(e))try{t=RegExp(e,"g")}catch(e){console.warn("[RegexScripts] cannot compile pattern:",e)}if(i.size>=n){let e=i.keys().next().value;void 0!==e&&i.delete(e)}return i.set(e,t),t}(t),m=null==e.replaceText?"":String(e.replaceText);if(!u||m.length>s){console.warn("[RegexScripts] skip invalid or unsafe rule:",e.id);continue}let p=function(e,t,r){let n=[],a=0;t.lastIndex=0;try{for(let o of function*(e,t,r){let n,a=0;for(;null!==(n=t.exec(e));)yield e.slice(a,n.index),yield*function*(e,t){let r=0,n=t.groups?/\$(\$|&|`|'|<[^>]*>|[0-9]{1,2})/g:/\$(\$|&|`|'|[0-9]{1,2})/g;for(let a of e.matchAll(n)){yield e.slice(r,a.index),r=a.index+a[0].length;let n=a[1];if("$"===n)yield"$";else if("&"===n)yield t[0];else if("`"===n)yield t.input.slice(0,t.index);else if("'"===n)yield t.input.slice(t.index+t[0].length);else if(n.startsWith("<"))yield t.groups?t.groups[n.slice(1,-1)]??"":a[0];else{let e=Number(n),r=Number(n[0]);e>0&&e<t.length?yield t[e]??"":2===n.length&&r>0&&r<t.length?(yield t[r]??"",yield n[1]):yield a[0]}}yield e.slice(r)}(r,n),a=n.index+n[0].length,0===n[0].length&&(t.lastIndex+=1);yield e.slice(a)}(e,t,r)){if(a+o.length>1e5)return{ok:!1};o&&n.push(o),a+=o.length}return{ok:!0,text:n.join("")}}finally{t.lastIndex=0}}(c,u,m);p.ok?c=p.text:console.warn("[RegexScripts] skip oversized replacement:",e.id)}return c}(e,t,"user"===r?"user":"assistant","all")}},32655:(e,t,r)=>{r.d(t,{X:()=>i});let n=/^```(?:css|scss|less)?[^\S\n]*\n([\s\S]*?)\n?```$/i,a=/^```(?:css|scss|less)?[^\S\n]*\n/i,o=/\n```[^\S\n]*$/,s=/^(?:css|scss|less)[^\S\n]*\n(?=\s*(?:\/\*|[.#@*:[\]\w-]))/i;function i(e){if(!e||"string"!=typeof e)return"";let t=e.trim();if(!t)return"";let r=t.match(n);return(t=r?r[1].trim():t.replace(a,"").replace(o,"").trim()).replace(s,"").trim()}},35003:(e,t,r)=>{r.d(t,{D:()=>l});var n=r(14232),a=r(53242),o=r(84421),s=r(97685),i=r(97445);function l(e){let{t}
1867=(0,i.Bd)("chat"),[r,l]=(0,n.useState)([]),[d,c]=(0,n.useState)(!1),u=(0,o.useUserStore)(e=>e.isAuthenticated),m=(0,n.useRef)(r);m.current=r;let p=(0,n.useRef)(null),h=(0,n.useRef)(e);h.current=e;let g=(0,n.useCallback)(async()=>{if(e&&u){c(!0);try{let t=await a.Ar(e);l(t)}catch{}finally{c(!1)}}},[e,u]);(0,n.useEffect)(()=>{g()},[g]);let f=(0,n.useCallback)(async(e,r)=>{try{return await a.bs(e,r),!0}catch{return s.default.error(t("module.mod.saveSelectionsFailed")),await g(),!1}},[g,t]),v=(0,n.useCallback)(async()=>{let e=p.current;p.current=null,e&&await f(e.characterId,e.selectedMods)},[f]),b=(0,n.useCallback)(e=>{let t=h.current;t&&(p.current={characterId:t,selectedMods:e})},[]),y=(0,n.useCallback)(async e=>{let t=m.current;if(t.includes(e))return;let r=[...t,e];l(r),b(r)},[b]);return{selectedMods:r,loading:d,saving:!1,fetchSelections:g,addMod:y,removeMod:(0,n.useCallback)(async e=>{let t=m.current.filter(t=>t!==e);l(t),b(t)},[b]),reorderMods:(0,n.useCallback)(async e=>{l(e),b(e)},[b]),flushPendingSave:v}}},35222:(e,t,r)=>{r.d(t,{Li:()=>u,i8:()=>c,mV:()=>p});var n=r(97685),a=r(17546),o=r(51988);let s=null,i=null,l=new Set;function d(){for(let e of l)try{e()}catch{}}function c(e){return l.add(e),()=>{l.delete(e)}}function u(){return s}function m(){if(i=null,"speechSynthesis"in window)try{window.speechSynthesis.cancel()}catch{}null!==s&&(s=null,d())}function p(e){if(!window.speechSynthesis||"u"<typeof SpeechSynthesisUtterance)return n.oR.error(e.unsupportedTip??(0,a.o)("systemUnsupported",e.lang)),!1;let t=String(e.messageId);if(s===t)return m(),!1;m();let r=(0,o.jQ)(e.rawText);if(!r.trim())return n.oR.error(e.emptyTip??(0,a.o)("emptyText",e.lang)),!1;try{let n,o=new SpeechSynthesisUtterance(r);o.lang=(n=(e.lang??"zh").toLowerCase()).startsWith("zh")?"zh-CN":n.startsWith("en")?"en-US":n.startsWith("ja")?"ja-JP":n.startsWith("ko")?"ko-KR":"zh-CN",o.rate=1;let l=()=>{i===o&&(i=null,s=null,d())};return o.onend=l,o.onerror=e=>{i===o&&(l(),(0,a.V)(e.error,"speech"))},i=o,s=t,d(),window.speechSynthesis.speak(o),!0}catch(e){return i=null,s=null,d(),(0,a.V)(e,"speech"),!1}}},42194:(e,t,r)=>{function n(e){return e.trim()}function a(e){let t="string"==typeof e.modelId?e.modelId.trim():"",r="string"==typeof e.modelName?e.modelName.trim():"",a=e.models;if(t){let e=a.find(e=>e.id===t);if(null==e?void 0:e.name.trim())return n(e.name)}if(r){let e=a.find(e=>e.name===r||e.id===r);return(null==e?void 0:e.name.trim())?n(e.name):n(r)}}r.d(t,{N:()=>n,p:()=>a})},44147:(e,t,r)=>{r.d(t,{Lf:()=>s,NJ:()=>i,hK:()=>o});var n=r(8779),a=r(92699);let o={list:["dailyTasks","list"]},s={staleTime:3e5,cacheTime:6e5,refetchInterval:!1};class i{static extractErrorMessage(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:(0,a.p4)("httpStatus.operationFailedRetry","æä½å¤±è´¥ï¼è¯·ç¨åéè¯");if(e.request&&!e.response)return(0,a.p4)("httpStatus.networkFailed","ç½ç»è¿æ¥å¤±è´¥ï¼è¯·æ£æ¥ç½ç»è®¾ç½®");if("ECONNABORTED"===e.code)return(0,a.p4)("httpStatus.requestTimeout","请æ±è¶
æ¶ï¼è¯·éè¯");if(e.response){let{status:n,data:o}=e.response;if(o&&"object"==typeof o){var r;if(null==(r=o.error)?void 0:r.message)return o.error.message;if(o.message)return o.message}return({400:(0,a.p4)("httpStatus.badRequest400","请æ±åæ°é误ï¼è¯·æ£æ¥è¾å
¥"),401:(0,a.p4)("httpStatus.sessionExpired401","ç»å½å·²è¿æï¼è¯·éæ°ç»å½"),403:(0,a.p4)("httpStatus.forbidden403","没ææéæ§è¡æ¤æä½"),404:(0,a.p4)("httpStatus.notFound404","请æ±çèµæºä¸åå¨"),500:(0,a.p4)("httpStatus.server500","æå¡å¨é误ï¼è¯·ç¨åéè¯"),502:(0,a.p4)("httpStatus.badGateway502","ç½å
³é误ï¼è¯·ç¨åéè¯"),503:(0,a.p4)("httpStatus.serviceUnavailable503","æå¡ææ¶ä¸å¯ç¨ï¼è¯·ç¨åéè¯")})[n]||t}return e.message||t}static errorWithCode(e,t){let r=Error(e);return t&&(r.code=t),r}static rejectClaimError(e,t){var r,n,a,o;if(e instanceof Error&&"code"in e&&e.code)throw e;let s=null==(r=e.response)?void 0:r.data;if(s&&"object"==typeof s&&((null==(n=s.error)?void 0:n.message)||s.message))throw i.errorWithCode((null==(a=s.error)?void 0:a.message)||s.message||t,null==(o=s.error)?void 0:o.code);throw Error(i.extractErrorMessage(e,t))}static async getDailyTasks(){try{let t=await n.default.get("/api/daily-tasks");
1867if(!t.data.success||!t.data.data){var e;throw Error((null==(e=t.data.error)?void 0:e.message)||(0,a.p4)("dailyTasks.getTaskListFailed","è·åä»»å¡å表失败"))}return t.data.data}catch(e){throw Error(i.extractErrorMessage(e,(0,a.p4)("dailyTasks.getTaskListFailedRetry","è·åä»»å¡å表失败ï¼è¯·ç¨åéè¯")))}}static async claimTaskReward(e){try{let o=await n.default.post(`/api/daily-tasks/${e}/claim`);if(!o.data.success||!o.data.data){var t,r;let e=o.data;throw i.errorWithCode((null==(t=e.error)?void 0:t.message)||e.message||(0,a.p4)("dailyTasks.claimRewardFailed","é¢åå¥å±å¤±è´¥"),null==(r=e.error)?void 0:r.code)}return o.data.data}catch(e){i.rejectClaimError(e,(0,a.p4)("dailyTasks.claimRewardFailedRetry","é¢åå¥å±å¤±è´¥ï¼è¯·ç¨åéè¯"))}}static async getDailyTasksWithStages(){try{let t=await n.default.get("/api/daily-tasks");if(!t.data.success||!t.data.data){var e;throw Error((null==(e=t.data.error)?void 0:e.message)||(0,a.p4)("dailyTasks.getTaskListFailed","è·åä»»å¡å表失败"))}return t.data.data}catch(e){throw Error(i.extractErrorMessage(e,(0,a.p4)("dailyTasks.getTaskListFailedRetry","è·åä»»å¡å表失败ï¼è¯·ç¨åéè¯")))}}static async claimStageReward(e){try{let o=await n.default.post(`/api/daily-tasks/stages/${e}/claim`);if(!o.data.success||!o.data.data){var t,r;let e=o.data;throw i.errorWithCode((null==(t=e.error)?void 0:t.message)||e.message||(0,a.p4)("dailyTasks.claimRewardFailed","é¢åå¥å±å¤±è´¥"),null==(r=e.error)?void 0:r.code)}return o.data.data}catch(e){i.rejectClaimError(e,(0,a.p4)("dailyTasks.claimRewardFailedRetry","é¢åå¥å±å¤±è´¥ï¼è¯·ç¨åéè¯"))}}static async claimStageRewardsBatch(e){try{let o=await n.default.post("/api/daily-tasks/stages/claim-batch",{stageIds:e});if(!o.data.success||!o.data.data){var t,r;let e=o.data;throw i.errorWithCode((null==(t=e.error)?void 0:t.message)||e.message||(0,a.p4)("dailyTasks.batchClaimRewardFailed","æ¹éé¢åå¥å±å¤±è´¥"),null==(r=e.error)?void 0:r.code)}return o.data.data}catch(e){i.rejectClaimError(e,(0,a.p4)("dailyTasks.batchClaimRewardFailedRetry","æ¹éé¢åå¥å±å¤±è´¥ï¼è¯·ç¨åéè¯"))}}}},45967:(e,t,r)=>{r.d(t,{A:()=>o});var n=r(37876);r(14232);var a=r(77086);let o=e=>{let{options:t,onSelectOption:r,disabled:o=!1,className:s=""}=e;return 0===t.length?null:(0,n.jsx)("div",{className:s.trim(),children:(0,n.jsx)(a.i,{options:t,isDisabled:o,onDirectSelect:r})})}},48227:(e,t,r)=>{r.d(t,{Yo:()=>i,qP:()=>l,v2:()=>s,v8:()=>d});let n={status:"unknown",remaining:0},a=new Set;function o(){a.forEach(e=>e())}function s(){return n}function i(e){return a.add(e),()=>{a.delete(e)}}function l(e){let t=Math.max(0,Math.floor(e));("ready"!==n.status||n.remaining!==t)&&(n={status:"ready",remaining:t},o())}function d(){n={status:"unknown",remaining:0},o()}},51988:(e,t,r)=>{r.d(t,{Wu:()=>i,jQ:()=>l,tV:()=>s});var n=r(63800);let a="\x3c!-- FISH_INLINE_AUDIO_START",o="\x3c!-- FISH_INLINE_AUDIO_END --\x3e";function s(e){let t=JSON.stringify({referenceId:e.referenceId.trim(),voiceTitle:e.voiceTitle.trim()});return`${a}:${t} --> 1868[è¯é³æè¯»:${e.voiceTitle.trim()}](${e.audioUrl.trim()}) 1869${o}`}function i(e){if(!e.includes(a))return e;let t=RegExp(`${a}[\\s\\S]*?${o}`,"g");return e.replace(t,"").replace(/\n{3,}/g,"\n\n").trim()}function l(e){let t="";if(Array.isArray(e))t=e.map(e=>"string"==typeof e?e:String(e??"")).join("\n");else if("string"==typeof e){let r=e.trim();if(r.startsWith("[")&&r.endsWith("]"))try{let n=JSON.parse(r);t=Array.isArray(n)?n.map(e=>"string"==typeof e?e:String(e??"")).join("\n"):e}catch{t=e}else t=e}else null!=e&&(t=String(e));
1869return t.trim()?(t=(t=(t=(t=(t=i(t=(t=t.replace(/\\n/g,"\n")).replace(/<!--\s*COMFY_INLINE_IMAGE_START\s*-->[\s\S]*?<!--\s*COMFY_INLINE_IMAGE_END\s*-->/g,""))).replace(/<!--[\s\S]*?-->/g,"")).replace(/<!--/g,"")).replace(/<(?:think|redacted_thinking|thinking)>[\s\S]*?<\/(?:think|redacted_thinking|thinking)>/gi,"").replace(/<\s*cot\s*>[\s\S]*?<\/\s*cot\s*>/gi,"").replace(/<(?:think|redacted_thinking|thinking)>[\s\S]*$/gi,"").replace(/<\s*cot\s*>[\s\S]*$/gi,"")).replace(/<next_prompt\b[^>]*>[\s\S]*?<\/next_prompt>/gi,"").replace(/<next_action\b[^>]*>[\s\S]*?<\/next_action>/gi,"").replace(/<opt\b[^>]*>[\s\S]*?<\/opt>/gi,"").replace(/<suggested_questions\b[^>]*>[\s\S]*?<\/suggested_questions>/gi,"").replace(/<details\b[^>]*>[\s\S]*?<\/details>/gi,""),(t=(t=(t=(t=(t=(t=(t=(t=(t=(t=(t=(t=(t=(t=(t=(t=(0,n.E)(t)).replace(/<Disclaimer\b[^>]*>[\s\S]*?<\/Disclaimer>/gi,"").replace(/<sprite\b[^>]*\/?>/gi,"").replace(/<sprite\b[^>]*>[\s\S]*?<\/sprite>/gi,"")).replace(/!\[[^\]]*\]\([^)]*\)/g,"")).replace(/<br\s*\/?>/gi,"\n")).replace(/<\/?[^>]+(>|$)/g,"")).replace(/ /gi," ").replace(/</gi,"<").replace(/>/gi,">").replace(/"/gi,'"').replace(/'/gi,"'").replace(/&/gi,"&")).replace(/```[\s\S]*?```/g,"").replace(/~~~[\s\S]*?~~~/g,"")).replace(/`([^`]+)`/g,"$1")).replace(/\[([^\]]+)\]\([^)]+\)/g,"$1")).replace(/\*\*([^*]+)\*\*/g,"$1")).replace(/\*([^*\n]+)\*/g,"$1")).replace(/__([^_]+)__/g,"$1")).replace(/_([^_\n]+)_/g,"$1")).replace(/^\s*#{1,6}\s+/gm,"").replace(/^\s*>\s+/gm,"").replace(/^\s*[-*+]\s+/gm,"").replace(/^\s*\d+\.\s+/gm,"")).split("\n").map(e=>e.trim()).join("\n")).replace(/\n{3,}/g,"\n\n")).trim()):""}},52840:(e,t,r)=>{r.d(t,{D:()=>a});let n=new Set(["yeyu.ai","www.yeyu.ai"]);function a(e){try{let t=new URL(e).hostname.toLowerCase();if(n.has(t))return"https://www.yeyu.mom"}catch{}return e}},53242:(e,t,r)=>{r.d(t,{Ar:()=>u,Iu:()=>d,LE:()=>w,NE:()=>a,P0:()=>g,P9:()=>y,a8:()=>l,bs:()=>m,cy:()=>v,ev:()=>c,n5:()=>x,n_:()=>i,oz:()=>b,pE:()=>s,qY:()=>o,qz:()=>h,tO:()=>f,xP:()=>p});var n=r(8779);async function a(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return(await n.default.get("/api/mods/public",e)).data}async function o(){return(await n.default.get("/api/mods/my-created")).data.mods}async function s(){return(await n.default.get("/api/mods/my-purchased")).data.mods}async function i(e){return(await n.default.post("/api/mods",e)).data.mod}async function l(e,t){return(await n.default.put(`/api/mods/${e}`,t)).data.mod}async function d(e){await n.default.delete(`/api/mods/${e}`)}async function c(e){return(await n.default.post(`/api/mods/${e}/purchase`)).data}async function u(e){return(await n.default.get(`/api/mods/selections/${e}`)).data.selectedMods}async function m(e,t){await n.default.put(`/api/mods/selections/${e}`,{selectedMods:t})}async function p(){return(await n.default.get("/api/mods/groups")).data}async function h(e){return(await n.default.post("/api/mods/groups",{name:e})).data}async function g(e,t){await n.default.put(`/api/mods/groups/${e}`,t)}async function f(e){await n.default.delete(`/api/mods/groups/${e}`)}async function v(e,t){await n.default.post(`/api/mods/groups/${e}/members`,{modId:t})}async function b(e,t){await n.default.delete(`/api/mods/groups/${e}/members/${t}`)}async function y(e){await n.default.delete(`/api/mods/groups/members/${e}`)}async function x(e){return(await n.default.post(`/api/mods/${e}/fork`)).data.mod}async function w(e){return(await n.default.post(`/api/mods/${e}/promote`)).data.mod}},53940:(e,t,r)=>{r.d(t,{q:()=>a});var n=r(14232);function a(){let[e,t]=(0,n.useState)(!1);return(0,n.useEffect)(()=>{t(!0)},[]),e}},55103:(e,t,r)=>{r.d(t,{Td:()=>a,d7:()=>s,fN:()=>i,jA:()=>c,pD:()=>d,qU:()=>o,tS:()=>l});var n=r(37876);r(14232);let a=e=>{let{className:t}=e;return(0,n.jsx)("svg",{className:`icon-a-icon-chat-copy01 ${t??""}`.trim(),viewBox:"0 0 1024 1024","aria-hidden":"true",children:(0,n.jsx)("path",{d:"M395.4688 744.96c-19.2 0-35.6864-6.8608-49.3568-20.5312a67.328 67.328 0 0 1-20.5312-49.3568v-465.92c0-19.2512 6.8608-35.6864 20.48-49.3568 13.7216-13.7216 30.208-20.5312 49.408-20.5312h372.736c19.2 0 35.6864 6.8096 49.3568 20.48 13.6704 13.7216 20.48 30.208 20.48 49.408v465.92c0 19.2-6.8096 35.6352-20.48 49.3568-13.6704 13.6704-30.1568 20.48-49.3568 20.48h-372.736z m0-69.888h372.736v-465.92h-372.736v465.92z m-139.776 209.664c-19.2 0-35.6864-6.8608-49.3568-20.5312a67.328 67.328 0 0 1-20.5312-49.3568V279.04h69.888v535.808h442.624v69.888H255.6928z"})})},o=e=>{let{className:t}=e;return(0,n.jsx)("svg",{className:`icon-a-icon-chat-edit01 ${t??""}`.trim(),viewBox:"0 0 1024 1024","aria-hidden":"true",children:(0,n.jsx)("path",{d:"M227.072 838.144v-148.48l483.4304-483.4304c7.1168-7.1168 14.848-12.288 23.296-15.5136a72.3968 72.3968 0 0 1 52.3776 0c8.448 3.2256 16.1792 8.3968 23.296 15.5136l49.5104 49.5104c7.168 7.1168 12.288 14.848 15.5648 23.296a72.3968 72.3968 0 0 1 0 52.4288 66.8672 66.8672 0 0 1-15.5648 23.296l-483.3792 483.328h-148.48zM296.96 768.256h49.5104L715.3152 399.36l-24.2176-25.2416-25.2416-24.2688L296.96 718.7456v49.5104z m394.1376-394.0864l-25.2416-24.2688 49.4592 49.5104-24.2176-25.2416z m-102.912 463.9744c39.424 0 78.4384-11.52 116.9408-34.4576 38.5024-22.9888 57.7536-54.2208 57.7536-93.696 0-22.016-5.0176-40.2432-15.0016-54.784-10.0352-14.592-26.112-28.672-48.0768-42.24l-52.4288 51.4048c16.1792 8.448 27.8528 15.7184 34.9696 21.8624s10.6496 14.08 10.6496 23.7568c0 14.8992-11.4688 28.3136-34.4576 40.2944-22.9376 11.9808-46.3872 17.92-70.3488 17.92a33.4336 33.4336 0 0 0-24.2688 10.752 33.4336 33.4336 0 0 0 0 48.9984c7.1168 6.8096 15.2064 10.1888 24.2688 10.1888zM250.368 567.296l54.3744-54.3232a123.2896 123.2896 0 0 1-37.376-15.5136c-11.3152-7.168-16.9984-13.9264-16.9984-20.4288 0-6.4512 5.6832-13.7216 16.9984-21.8112 11.3152-8.0896 33.1776-20.224 65.536-36.4032 51.0976-25.9072 85.0944-48.0768 101.888-66.5088 16.896-18.432 25.2416-38.9632 25.2416-61.6448 0-32.9728-12.1344-58.7264-36.352-77.1584-24.32-18.432-55.5008-27.648-93.696-27.648a219.136 219.136 0 0 0-75.7248 13.1072c-23.9104 8.704-41.4208 20.224-52.4288 34.4576a37.376 37.376 0 0 0-7.7312 25.7024 29.952 29.952 0 0 0 12.5952 22.8352 33.8432 33.8432 0 0 0 25.7536 7.2704 35.2256 35.2256 0 0 0 23.7568-11.1616c8.3968-8.3968 19.0976-14.2336 32.0512-17.4592 12.9536-3.2768 26.8288-4.864 41.728-4.864 20.0704 0 35.1232 3.3792 45.1584 10.1888 9.984 6.8096 15.0016 15.0528 15.0016 24.7296 0 8.448-5.3248 16.9984-15.9744 25.7536-10.7008 8.704-34.816 22.1696-72.3456 40.2944-45.312 22.016-76.8 41.728-94.6176 59.1872-17.8176 17.4592-26.7264 37.888-26.7264 61.1328 0 18.7904 5.6832 35.9424 16.9984 51.456 11.3152 15.5648 28.9792 28.4672 52.8896 38.8608z"})})},s=e=>{let{className:t}=e;return(0,n.jsx)("svg",{className:`icon-a-icon-chat-delete01 ${t??""}`.trim(),viewBox:"0 0 1024 1024","aria-hidden":"true",children:(0,n.jsx)("path",{d:"M348.9792 838.144c-19.2 0-35.6864-6.8608-49.3568-20.5312a67.2768 67.2768 0 0 1-20.5312-49.3568v-465.92h-46.592V232.448h186.368v-46.592h186.368v46.592h186.368v69.888h-46.592v465.5104c0 19.6608-6.8608 36.352-20.5312 49.92a67.5328 67.5328 0 0 1-49.3568 20.3776
1869h-326.144z m326.144-535.808h-326.144v465.92h326.144v-465.92zM418.8672 698.368h69.888V372.224H418.8672v326.144z m116.48 0h69.888V372.224h-69.888v326.144z"})})},i=e=>{let{className:t}=e;return(0,n.jsx)("svg",{className:`icon-a-icon-chat-refresh01 ${t??""}`.trim(),viewBox:"0 0 1024 1024","aria-hidden":"true",children:(0,n.jsx)("path",{d:"M418.816 843.0592l-49.4592-49.5104 55.296-55.296h-29.0816c-71.3728 0-131.9424-24.8832-181.7088-74.5472-49.664-49.664-74.5472-110.1824-74.5472-181.504 0-71.3216 24.832-131.8912 74.5472-181.76 49.7664-49.8176 110.336-74.752 181.7088-74.752h232.96c71.3728 0 131.9424 24.8832 181.6576 74.5472 49.7152 49.664 74.5984 110.1824 74.5984 181.5552 0 71.3216-24.8832 131.8912-74.5984 181.7088-49.7152 49.8176-110.2848 74.752-181.6576 74.752v-69.888c51.712 0 95.744-18.2272 131.9936-54.5792 36.2496-36.352 54.3744-80.384 54.3744-132.0448 0-51.6096-18.176-95.5392-54.528-131.7888a179.8656 179.8656 0 0 0-131.84-54.3232h-232.96A179.5072 179.5072 0 0 0 263.68 350.208a179.9168 179.9168 0 0 0-54.4768 131.9936c0 51.6096 18.1248 95.5392 54.3232 131.7888 36.2496 36.2496 80.2816 54.3744 132.0448 54.3744h29.0816l-55.296-55.296 49.5104-49.5616 139.776 139.776-139.776 139.776z"})})},l=e=>{let{className:t}=e;return(0,n.jsx)("svg",{className:t??"",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:1.75,"aria-hidden":"true",children:(0,n.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M13.19 8.688a4.5 4.5 0 011.242 7.244l-4.5 4.5a4.5 4.5 0 01-6.364-6.364l1.757-1.757m13.35-.622l1.757-1.757a4.5 4.5 0 00-6.364-6.364l-4.5 4.5a4.5 4.5 0 001.242 7.244"})})},d=e=>{let{className:t}=e;return(0,n.jsx)("svg",{className:t??"",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:1.75,"aria-hidden":"true",children:(0,n.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M19.114 5.636a9 9 0 010 12.728M16.463 8.288a5.25 5.25 0 010 7.424M6.75 8.25l4.72-4.72a.75.75 0 011.28.53v15.88a.75.75 0 01-1.28.53l-4.72-4.72H4.51c-.88 0-1.704-.507-1.938-1.354A9.01 9.01 0 012.25 12c0-.83.112-1.633.322-2.396C2.806 8.757 3.63 8.25 4.51 8.25H6.75z"})})},c=e=>{let{className:t}=e;return(0,n.jsx)("svg",{className:t??"",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:1.75,"aria-hidden":"true",children:(0,n.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M17.25 9.75L19.5 12m0 0l2.25 2.25M19.5 12l2.25-2.25M19.5 12l-2.25 2.25m-10.5-7.5l4.72-4.72a.75.75 0 011.28.53v15.88a.75.75 0 01-1.28.53l-4.72-4.72H4.51c-.88 0-1.704-.507-1.938-1.354A9.01 9.01 0 012.25 12c0-.83.112-1.633.322-2.396C2.806 8.757 3.63 8.25 4.51 8.25H6.75z"})})}},56041:(e,t,r)=>{r.d(t,{Ay:()=>l,OR:()=>s});var n=r(8779),a=r(65229),o=r(92699);let s={balance:["points","balance"]};class i{static extractErrorMessage(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:(0,o.p4)("httpStatus.operationFailedRetry","æä½å¤±è´¥ï¼è¯·ç¨åéè¯");if(e.request&&!e.response)return(0,o.p4)("httpStatus.networkFailed","ç½ç»è¿æ¥å¤±è´¥ï¼è¯·æ£æ¥ç½ç»è®¾ç½®");if("ECONNABORTED"===e.code)return(0,o.p4)("httpStatus.requestTimeout","请æ±è¶
æ¶ï¼è¯·éè¯");if(e.response){let{status:n,data:a}=e.response;if(a&&"object"==typeof a){var r;if(null==(r=a.error)?void 0:r.message)return a.error.message;if(a.message)return a.message}return({400:(0,o.p4)("httpStatus.badRequest400","请æ±åæ°é误ï¼è¯·æ£æ¥è¾å
¥"),401:(0,o.p4)("httpStatus.sessionExpired401","ç»å½å·²è¿æï¼è¯·éæ°ç»å½"),403:(0,o.p4)("httpStatus.forbidden403","没ææéæ§è¡æ¤æä½"),404:(0,o.p4)("httpStatus.notFound404","请æ±çèµæºä¸åå¨"),500:(0,o.p4)("httpStatus.server500","æå¡å¨é误ï¼è¯·ç¨åéè¯"),502:(0,o.p4)("httpStatus.badGateway502","ç½å
³é误ï¼è¯·ç¨åéè¯"),503:(0,o.p4)("httpStatus.serviceUnavailable503","æå¡ææ¶ä¸å¯ç¨ï¼è¯·ç¨åéè¯")})[n]||t}return e.message||t}static async redeemVoucher(e){try{let r=await n.default.post(a.API_ENDPOINTS.points.redeemVoucher,{code:e.trim()});if(!r.data.success||!r.data.data){var t;throw Error((null==(t=r.data.error)?void 0:t.message)||(0,o.p4)("points.redeemFailed","å
æ¢å¤±è´¥"))}return r.data.data}catch(e){throw Error(i.extractErrorMessage(e,(0,o.p4)("points.redeemFailedRetry","å
æ¢å¤±è´¥ï¼è¯·ç¨åéè¯")))}}static async getPointsBalance(){try{let t=await n.default.get("/api/points/balance");if(!t.data.success||!t.data.data){var e;throw Error((null==(e=t.data.error)?void 0:e.message)||(0,o.p4)("points.fetchBalanceFailed","è·å积åä½é¢å¤±è´¥"))}return t.data.data}catch(e){throw Error(i.extractErrorMessage(e,(0,o.p4)("points.fetchBalanceFailedRetry","è·å积åä½é¢å¤±è´¥ï¼è¯·ç¨åéè¯")))}}}let l=i},64422:(e,t,r)=>{r.r(t),r.d(t,{default:()=>l});var n=r(37876),a=r(14232),o=r(97445),s=r(45441);function i(e){return"string"==typeof e?document.querySelector(e):e instanceof HTMLElement?e:null}function l(e){let{scrollContainer:t,showThreshold:r=300,showThresholdScreens:l,className:d="",rightPosition:c="right-4",bottomPosition:u="bottom-20",direction:m="up",onScrollAction:p,ariaLabel:h}=e,{t:g}=(0,o.Bd)("common"),[f,v]=(0,a.useState)(!1),b=(0,a.useCallback)(()=>{let e=i(t);
1869if(e){let{scrollTop:t,scrollHeight:n,clientHeight:a}=e,o=void 0===l?r:a*l;"down"===m?v(n-t-a>o&&n>a+1):v(t>o);return}let n=window.pageYOffset||document.documentElement.scrollTop,a=document.documentElement.scrollHeight,o=window.innerHeight,s=void 0===l?r:o*l;"down"===m?v(a-n-o>s):v(n>s)},[t,r,l,m]),y=(0,a.useCallback)(()=>{if(p)return void p();let e=i(t);e?e.scrollTo({top:"down"===m?e.scrollHeight:0,behavior:"smooth"}):"down"===m?window.scrollTo({top:document.documentElement.scrollHeight,behavior:"smooth"}):window.scrollTo({top:0,behavior:"smooth"})},[t,m,p]);(0,a.useEffect)(()=>{let e,r=()=>{e&&clearTimeout(e),e=setTimeout(b,100)},n=requestAnimationFrame(()=>{b()});window.addEventListener("resize",r);let a=i(t);return a?(a.addEventListener("scroll",r),()=>{a.removeEventListener("scroll",r),window.removeEventListener("resize",r),cancelAnimationFrame(n),e&&clearTimeout(e)}):(window.addEventListener("scroll",r),()=>{window.removeEventListener("scroll",r),window.removeEventListener("resize",r),cancelAnimationFrame(n),e&&clearTimeout(e)})},[t,b]);let x=h??g("down"===m?"scrollToBottom":"scrollToTop");return f?(0,n.jsx)("button",{type:"button",onClick:y,className:(0,s.cn)("fixed flex h-9 w-9 items-center justify-center rounded-full","border border-v2-border-primary/50 bg-v2-bg-secondary","transition-v2-interactive duration-200","hover:bg-v2-bg-tertiary","z-20 animate-fade-in",c,u,d),"aria-label":x,title:x,children:(0,n.jsx)("svg",{className:(0,s.cn)("h-5 w-5 text-v2-accent-primary","down"===m&&"rotate-180"),fill:"none",stroke:"currentColor",viewBox:"0 0 24 24","aria-hidden":!0,children:(0,n.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M5 10l7-7m0 0l7 7m-7-7v18"})})}):null}},68587:(e,t,r)=>{r.d(t,{A:()=>s});var n=r(37876),a=r(14232),o=r(97445);let s=(0,a.memo)(function(e){let{currentPage:t,totalPages:r,total:s,onPageChange:i,disabled:l=!1,loading:d=!1}=e,{t:c}=(0,o.Bd)("chat"),[u,m]=(0,a.useState)(""),[p,h]=(0,a.useState)(null),g=l||d,f=p??t;(0,a.useEffect)(()=>{null!==p&&t===p?h(null):d||null===p||t===p||h(null)},[t,d,p]);let v=(0,a.useCallback)(e=>{g||e<1||e>r||e!==f&&(h(e),i(e))},[g,r,f,i]),b=(0,a.useCallback)(()=>{let e=parseInt(u,10);e>=1&&e<=r&&e!==f&&(v(e),m(""))},[u,r,f,v]),y=(0,a.useCallback)(e=>{"Enter"===e.key&&b()},[b]),x=function(e,t){if(t<=7)return Array.from({length:t},(e,t)=>t+1);let r=[1];e>3&&r.push("ellipsis");let n=Math.max(2,e-1),a=Math.min(t-1,e+1);for(let e=n;e<=a;e++)r.push(e);return e<t-2&&r.push("ellipsis"),t>1&&r.push(t),r}(f,r);if(r<=1)return null;let w="inline-flex items-center justify-center min-w-[32px] h-8 px-2 text-xs rounded cursor-pointer select-none",k=`${w} text-v2-text-secondary active:bg-v2-bg-hover`,S=`${w} bg-v2-gradient-primary text-v2-text-inverse`,C=`${w} text-v2-text-disabled cursor-not-allowed`;return(0,n.jsx)("div",{className:"w-full z-5 py-1",role:"navigation","aria-label":c("module.paginator.aria"),style:{touchAction:"manipulation"},children:(0,n.jsx)("div",{className:"relative",children:(0,n.jsxs)("div",{className:"py-0 w-full flex flex-wrap justify-center items-center gap-1",style:{minHeight:"32px"},children:[d&&(0,n.jsx)("div",{className:"absolute inset-0 flex items-center justify-center",children:(0,n.jsx)("div",{className:"w-4 h-4 border-2 border-v2-border-primary border-t-v2-accent-primary rounded-full animate-spin"})}),(0,n.jsx)("button",{type:"button",className:f<=1||g?C:k,onClick:()=>v(f-1),disabled:f<=1||g,"aria-label":c("module.paginator.previous"),style:{opacity:d?.4:1},children:(0,n.jsx)("svg",{width:"14",height:"14",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:(0,n.jsx)("polyline",{points:"15 18 9 12 15 6"})})}),x.map((e,t)=>"ellipsis"===e?(0,n.jsx)("span",{className:"inline-flex items-center justify-center w-7 h-8 text-xs text-v2-text-tertiary select-none",style:{opacity:d?.4:1},children:"â¦"},`e-${t}`):(0,n.jsx)("button",{type:"button",className:e===f?S:g?C:k,onClick:()=>v(e),disabled:g,"aria-label":c("module.paginator.page",{page:e}),"aria-current":e===f?"page":void 0,style:{opacity:d?.4:1},children:e},e)),(0,n.jsx)("button",{type:"button",className:f>=r||g?C:k,onClick:()=>v(f+1),disabled:f>=r||g,"aria-label":c("module.paginator.next"),style:{opacity:d?.4:1},children:(0,n.jsx)("svg",{width:"14",height:"14",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:(0,n.jsx)("polyline",{points:"9 18 15 12 9 6"})})}),r>5&&(0,n.jsxs)("div",{className:"inline-flex items-center gap-1 ml-2 text-xs text-v2-text-tertiary",style:{opacity:d?.4:1},children:[(0,n.jsx)("span",{className:"whitespace-nowrap",children:c("module.paginator.jumpTo")}),(0,n.jsx)("input",{type:"number",min:1,max:r,value:u,onChange:e=>m(e.target.value),onKeyDown:y,className:"w-10 h-6 px-1 text-center text-xs border border-v2-border-primary rounded bg-v2-bg-card text-v2-text-primary focus:outline-none focus:border-v2-border-focus",disabled:g,"aria-label":c("module.paginator.jumpAria")}),(0,n.jsx)("span",{children:c("module.paginator.pageUnit")}),(0,n.jsx)("button",{type:"button",className:`h-6 px-2 text-xs rounded ${g?"text-v2-text-disabled cursor-not-allowed":"text-v2-text-secondary active:bg-v2-bg-hover cursor-pointer"}`,onClick:b,disabled:g,children:"GO"})]})]})})})})},69257:(e,t,r)=>{r.d(t,{$:()=>n});function n(e,t){return!!t.isFromColdArchive||null!=e&&!(e<=0)&&!!t.sentAt&&Math.floor(t.sentAt.getTime()/1e3)<=e}},69475:(e,t,r)=>{r.d(t,{A:()=>l,J:()=>i});var n=r(8779),a=r(52840),o=r(92699);function s(e,t){let r=t.toLowerCase();return{code:t,fullUrl:`${e}/user/register?ref=${r}`,shortUrl:`${e}/r/${r}`}}class i{static #e=this.CACHE_TTL_MS=6e4;static #t=this.REFERRAL_CODE_CACHE_TTL_MS=3e5;static #r=this.REFERRAL_CODE_SESSION_KEY="referral:code:v1";static #n=this.referralCodeCache=null;static #a=this.statisticsCache=null;static #o=this.shortLinkCache=null;static #s=this.summaryCache=null;static #i=this.inFlightReferralCode=null;static #l=this.inFlightStatistics=null;static #d=this.inFlightShortLink=null;static #c=this.inFlightSummary=null;static isFresh(e){return Date.now()-e<i.CACHE_TTL_MS}static isReferralCodeFresh(e){return Date.now()-e<i.REFERRAL_CODE_CACHE_TTL_MS}static loadReferralCodeFromSession(){if("u"<typeof sessionStorage)return null;try{var e;let t=sessionStorage.getItem(i.REFERRAL_CODE_SESSION_KEY);if(!t)return null;let r=JSON.parse(t);if(!(null==r||null==(e=r.value)?void 0:e.code)||!i.isReferralCodeFresh(r.ts))return sessionStorage.removeItem(i.REFERRAL_CODE_SESSION_KEY),null;return r.value}catch{return null}}static saveReferralCodeToSession(e){if("u">typeof sessionStorage)try{sessionStorage.setItem(i.REFERRAL_CODE_SESSION_KEY,JSON.stringify({value:e,ts:Date.now()}))}catch{}}static extractErrorMessage(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:(0,o.p4)("httpStatus.operationFailedRetry","æä½å¤±è´¥ï¼è¯·ç¨åéè¯");if(e.request&&!e.response)return(0,o.p4)("httpStatus.networkFailed","ç½ç»è¿æ¥å¤±è´¥ï¼è¯·æ£æ¥ç½ç»è®¾ç½®");if("ECONNABORTED"===e.code)return(0,o.p4)("httpStatus.requestTimeout","请æ±è¶
æ¶ï¼è¯·éè¯");if(e.response){let{status:r,data:n}=e.response;if(n&&"object"==typeof n){if("message"in n&&"string"==typeof n.message)return n.message;if("error"in n&&"string"==typeof n.error)return n.error}return({400:(0,o.p4)("httpStatus.badRequest400","请æ±åæ°é误ï¼
1869è¯·æ£æ¥è¾å
¥"),401:(0,o.p4)("httpStatus.sessionExpired401","ç»å½å·²è¿æï¼è¯·éæ°ç»å½"),403:(0,o.p4)("httpStatus.forbidden403","没ææéæ§è¡æ¤æä½"),404:(0,o.p4)("httpStatus.notFound404","请æ±çèµæºä¸åå¨"),500:(0,o.p4)("httpStatus.server500","æå¡å¨é误ï¼è¯·ç¨åéè¯"),502:(0,o.p4)("httpStatus.badGateway502","ç½å
³é误ï¼è¯·ç¨åéè¯"),503:(0,o.p4)("httpStatus.serviceUnavailable503","æå¡ææ¶ä¸å¯ç¨ï¼è¯·ç¨åéè¯")})[r]||t}return e.message||t}static prefetchCore(){i.getSummary()}static async getSummary(){if(i.summaryCache&&i.isFresh(i.summaryCache.ts))return i.summaryCache.value;if(i.inFlightSummary)return i.inFlightSummary;try{return i.inFlightSummary=n.default.get("/api/referral/summary").then(e=>{if(!e.data.success||!e.data.data)throw Error((0,o.p4)("referral.summaryDataFailed","è·åéè¯·æ°æ®å¤±è´¥"));let t=e.data.data,r=window.location.origin,n=(0,a.D)(r),l=s(n,t.code.code),d={code:t.code,shortLink:l,statistics:t.statistics,tasks:t.tasks,paidInviteesCount:t.paidInviteesCount,rebateEligibility:t.rebateEligibility,pendingRebateTokens:t.pendingRebateTokens,pendingRebateExpiresAt:t.pendingRebateExpiresAt};return i.summaryCache={value:d,ts:Date.now()},i.referralCodeCache={value:t.code,ts:Date.now()},i.shortLinkCache={value:l,ts:Date.now()},i.statisticsCache={value:t.statistics,ts:Date.now()},d}).finally(()=>{i.inFlightSummary=null}),await i.inFlightSummary}catch(e){throw Error(i.extractErrorMessage(e,(0,o.p4)("referral.summaryDataFailedRetry","è·åéè¯·æ°æ®å¤±è´¥ï¼è¯·ç¨åéè¯")))}}static clearSummaryCache(){i.summaryCache=null,i.statisticsCache=null}static async getReferralCode(){let e=i.loadReferralCodeFromSession();if(e)return i.referralCodeCache={value:e,ts:Date.now()},e;if(i.referralCodeCache&&i.isReferralCodeFresh(i.referralCodeCache.ts))return i.referralCodeCache.value;if(i.inFlightReferralCode)return i.inFlightReferralCode;try{return i.inFlightReferralCode=n.default.get("/api/referral/code").then(e=>{if(!e.data.success||!e.data.data)throw Error((0,o.p4)("referral.getCodeFailed","è·åé请ç 失败"));let t=e.data.data;return i.referralCodeCache={value:t,ts:Date.now()},i.saveReferralCodeToSession(t),t}).finally(()=>{i.inFlightReferralCode=null}),await i.inFlightReferralCode}catch(e){throw Error(i.extractErrorMessage(e,(0,o.p4)("referral.getCodeFailedRetry","è·åé请ç 失败ï¼è¯·ç¨åéè¯")))}}static clearReferralCodeCache(){if(i.referralCodeCache=null,i.inFlightReferralCode=null,"u">typeof sessionStorage)try{sessionStorage.removeItem(i.REFERRAL_CODE_SESSION_KEY)}catch{}}static async getStatistics(){let e=arguments.length>0&&void 0!==arguments[0]&&arguments[0];if(!e&&i.statisticsCache&&i.isFresh(i.statisticsCache.ts))return i.statisticsCache.value;if(i.inFlightStatistics)return i.inFlightStatistics;try{return i.inFlightStatistics=n.default.get("/api/referral/statistics",{refresh:e?"true":void 0}).then(e=>{if(!e.data.success||!e.data.data)throw Error((0,o.p4)("referral.getStatsFailed","è·åç»è®¡æ°æ®å¤±è´¥"));return i.statisticsCache={value:e.data.data,ts:Date.now()},e.data.data}).finally(()=>{i.inFlightStatistics=null}),await i.inFlightStatistics}catch(e){throw Error(i.extractErrorMessage(e,(0,o.p4)("referral.getStatsFailedRetry","è·åç»è®¡æ°æ®å¤±è´¥ï¼è¯·ç¨åéè¯")))}}static async refreshStatistics(){try{let e=await n.default.post("/api/referral/statistics/refresh");if(!e.data.success)throw Error(e.data.message||(0,o.p4)("referral.refreshStatsFailed","å·æ°ç»è®¡æ°æ®å¤±è´¥"));i.clearSummaryCache()}catch(e){throw Error(i.extractErrorMessage(e,(0,o.p4)("referral.refreshStatsFailedRetry","å·æ°ç»è®¡æ°æ®å¤±è´¥ï¼è¯·ç¨åéè¯")))}}static async getRebateRecords(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:1,t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:20;try{let r=await n.default.get("/api/referral/rebates",{page:e,limit:t});if(!r.data.success||!r.data.data)throw Error((0,o.p4)("referral.getRebateFailed","è·åè¿ç°è®°å½å¤±è´¥"));return r.data.data}catch(e){throw Error(i.extractErrorMessage(e,"è·åè¿ç°è®°å½å¤±è´¥ï¼è¯·ç¨åéè¯"))}}static async getRewardRecords(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:1,t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:10,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"rebate";try{let a=await n.default.get("/api/referral/reward-records",{page:e,limit:t,type:r});if(!a.data.success||!a.data.data)throw Error((0,o.p4)("referral.getRewardFailed","è·åå¥å±è®°å½å¤±è´¥"));return a.data.data}catch(e){throw Error(i.extractErrorMessage(e,(0,o.p4)("referral.getRewardFailedRetry","è·åå¥å±è®°å½å¤±è´¥ï¼è¯·ç¨åéè¯")))}}static async getShortLink(){if(i.shortLinkCache&&i.isFresh(i.shortLinkCache.ts))return i.shortLinkCache.value;if(i.inFlightShortLink)return i.inFlightShortLink;try{return i.inFlightShortLink=n.default.get("/api/referral/short-link").then(e=>{if(!e.data.success||!e.data.data)throw Error((0,o.p4)("referral.getShortLinkFailed","è·åç龿¥å¤±è´¥"));let t=e.data.data,r=window.location.origin,n=(0,a.D)(r),l=s(n,t.code);return i.shortLinkCache={value:l,ts:Date.now()},l}).finally(()=>{i.inFlightShortLink=null}),await i.inFlightShortLink}catch(e){throw Error(i.extractErrorMessage(e,(0,o.p4)("referral.getShortLinkFailedRetry","è·åç龿¥å¤±è´¥ï¼è¯·ç¨åéè¯")))}}static async getTasks(){try{let e=await n.default.get("/api/referral/tasks");
1869if(!e.data.success||!e.data.data)throw Error((0,o.p4)("referral.getTasksFailed","è·åä»»å¡å表失败"));return e.data.data}catch(e){throw Error(i.extractErrorMessage(e,(0,o.p4)("referral.getTasksFailedRetry","è·åä»»å¡å表失败ï¼è¯·ç¨åéè¯")))}}static async getWithdrawableInfo(){try{let e=await n.default.get("/api/referral/withdrawable");if(!e.data.success||!e.data.data)throw Error((0,o.p4)("referral.getWithdrawInfoFailed","è·å坿ç°ä¿¡æ¯å¤±è´¥"));return e.data.data}catch(e){throw Error(i.extractErrorMessage(e,(0,o.p4)("referral.getWithdrawInfoFailedRetry","è·å坿ç°ä¿¡æ¯å¤±è´¥ï¼è¯·ç¨åéè¯")))}}static async submitWithdrawal(e,t){try{let r=await n.default.post("/api/referral/withdraw",{amountYuan:e,emailCode:t});if(!r.data.success)throw Error(r.data.message||(0,o.p4)("referral.submitWithdrawFailed","æç°ç³è¯·æäº¤å¤±è´¥"));return r.data.data}catch(e){throw Error(i.extractErrorMessage(e,(0,o.p4)("referral.submitWithdrawFailedRetry","æç°ç³è¯·æäº¤å¤±è´¥ï¼è¯·ç¨åéè¯")))}}static async getWithdrawalHistory(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:1,t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:10;try{let r=await n.default.get("/api/referral/withdraw/history",{page:e,pageSize:t});if(!r.data.success||!r.data.data)throw Error((0,o.p4)("referral.getWithdrawHistoryFailed","è·åæç°åå²è®°å½å¤±è´¥"));return r.data.data}catch(e){throw Error(i.extractErrorMessage(e,(0,o.p4)("referral.getWithdrawHistoryFailedRetry","è·åæç°åå²è®°å½å¤±è´¥ï¼è¯·ç¨åéè¯")))}}}let l=i},70197:(e,t,r)=>{r.d(t,{$b:()=>n,AT:()=>a,ZN:()=>o});function n(e){return`å§åï¼${e} 1870æ§å«ï¼ç· 1871å¹´é¾ï¼18 1872å¤è²ï¼é«å¤§å¸ æ°`}function a(e,t){return t("module.quickStart.template",{defaultValue:n(e)}).replace(/\{\{displayName\}\}/g,e)}function o(e,t){var r,n;return(null==e||null==(r=e.firstName)?void 0:r.trim())||(null==e||null==(n=e.username)?void 0:n.trim())||t}},73647:(e,t,r)=>{r.d(t,{k:()=>s});var n=r(67914),a=r(71673),o=r(90935);function s(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return(0,n.I)({queryKey:a.lH.aiModels.active(),queryFn:o.DY,enabled:e.enabled??!0,staleTime:o.ae,gcTime:o.l4,refetchOnMount:!1,refetchOnWindowFocus:!1})}},75730:(e,t,r)=>{r.d(t,{X:()=>a});var n=r(17308);function a(e){return(0,n.m4)(e??void 0)}r(92699)},78626:(e,t,r)=>{r.r(t),r.d(t,{DEFAULT_MODEL_PARAMS:()=>l,default:()=>c});var n=r(37876),a=r(14232),o=r(98477),s=r(65685),i=r(97445);let l={temperature:.7,topP:.8,presencePenalty:0,frequencyPenalty:0},d=[{key:"temperature",labelKey:"module.modelParams.temperature",min:0,max:2,step:.01,descriptionKey:"module.modelParams.temperatureDesc"},{key:"topP",labelKey:"module.modelParams.topP",min:0,max:1,step:.01,descriptionKey:"module.modelParams.topPDesc"},{key:"presencePenalty",labelKey:"module.modelParams.presencePenalty",min:0,max:1,step:.01,descriptionKey:"module.modelParams.presencePenaltyDesc",compatNoteKey:"module.modelParams.claudeCompat"},{key:"frequencyPenalty",labelKey:"module.modelParams.frequencyPenalty",min:0,max:1,step:.01,descriptionKey:"module.modelParams.frequencyPenaltyDesc",compatNoteKey:"module.modelParams.claudeCompat"}],c=e=>{let{isOpen:t,onClose:r,params:c,onSave:u,isLoading:m=!1}=e,{t:p}=(0,i.Bd)("chat"),[h,g]=(0,a.useState)({...c});(0,a.useEffect)(()=>{g({...c})},[c]),(0,a.useEffect)(()=>(t?document.body.style.overflow="hidden":document.body.style.overflow="",()=>{document.body.style.overflow=""}),[t]),(0,a.useEffect)(()=>{if(!t)return;let e=e=>{"Escape"===e.key&&(e.preventDefault(),r())};return document.addEventListener("keydown",e),()=>document.removeEventListener("keydown",e)},[t,r]);let f=(0,a.useCallback)((e,t)=>{g(r=>({...r,[e]:t}))},[]),v=(0,a.useCallback)(()=>{u(h),r()},[h,u,r]),b=(0,a.useCallback)(()=>{g({...c}),r()},[c,r]),y=(0,a.useCallback)(()=>{g({...l})},[]),x=(0,a.useCallback)(e=>{e.target===e.currentTarget&&b()},[b]);if(!t||"u"<typeof document)return null;let w=(0,n.jsxs)("div",{className:"fixed inset-0 flex items-center justify-center p-4",style:{zIndex:1e3},onClick:x,role:"dialog","aria-modal":"true","aria-labelledby":"model-params-title",children:[(0,n.jsx)("div",{className:"absolute inset-0 chat-modal-overlay",style:{backgroundColor:"var(--v2-bg-overlay)"}}),(0,n.jsxs)("div",{className:"chat-modal-panel relative shadow-2xl rounded-xl w-full max-w-md flex flex-col max-h-[90vh]",style:{backgroundColor:"var(--v2-bg-card)"},children:[(0,n.jsxs)("div",{className:"flex justify-between items-center px-5 py-4 border-b border-v2-border-primary",children:[(0,n.jsx)("h2",{id:"model-params-title",className:"font-medium text-v2-text-primary",children:p("module.modelParams.title")}),(0,n.jsx)("button",{"aria-label":p("module.close"),onClick:b,className:"p-1 text-v2-text-tertiary hover:text-v2-text-primary hover:bg-v2-bg-hover rounded cursor-pointer transition-colors duration-200",children:(0,n.jsx)(s.A,{className:"w-5 h-5"})})]}),(0,n.jsx)("div",{className:"px-5 py-4 space-y-5 overflow-y-auto",children:m?(0,n.jsx)("div",{className:"flex justify-center py-8",children:(0,n.jsx)("div",{className:"animate-spin rounded-full h-8 w-8 border-b-2",style:{borderColor:"var(--v2-accent-primary)"},"aria-label":p("module.modelParams.loading")})}):(0,n.jsx)(n.Fragment,{children:d.map(e=>{var t,r,a,o;return(0,n.jsxs)("div",{children:[(0,n.jsxs)("div",{className:"flex items-center justify-between mb-1.5",children:[(0,n.jsx)("label",{htmlFor:`param-${e.key}`,className:"text-sm font-medium text-v2-text-primary",children:p(e.labelKey)}),(0,n.jsx)("span",{className:"text-sm font-medium text-v2-text-primary","data-testid":`value-${e.key}`,children:h[e.key].toFixed(2)})]}),(0,n.jsx)("input",{id:`param-${e.key}`,type:"range",min:e.min,max:e.max,step:e.step,value:h[e.key],onChange:t=>f(e.key,Number(t.target.value)),className:"w-full h-2 rounded-lg appearance-none cursor-pointer accent-blue-500",style:{background:`linear-gradient(to right, #3b82f6 0%, #3b82f6 ${(t=h[e.key],(t-(r=e.min))/(e.max-r)*100)}%, var(--v2-bg-secondary, #e2e8f0) ${(a=h[e.key],(a-(o=e.min))/(e.max-o)*100)}%, var(--v2-bg-secondary, #e2e8f0) 100%)`},"aria-label":p(e.labelKey)}),(0,n.jsx)("p",{className:"mt-1 text-xs text-v2-text-secondary leading-relaxed",children:p(e.descriptionKey)}),e.compatNoteKey&&(0,n.jsx)("p",{className:"mt-0.5 text-xs text-amber-500 leading-relaxed","data-testid":`compat-${e.key}`,children:p(e.compatNoteKey)})]},e.key)})})}),!m&&(0,n.jsxs)("div",{className:"flex justify-between items-center px-5 py-3 border-t border-v2-border-primary",children:[(0,n.jsx)("button",{onClick:y,className:"px-3 py-2 text-sm text-v2-text-secondary hover:text-v2-text-primary hover:bg-v2-bg-hover rounded-lg cursor-pointer transition-colors duration-200",children:p("module.modelParams.restoreDefaults")}),(0,n.jsxs)("div",{className:"flex gap-3",children:[(0,n.jsx)("button",{onClick:b,className:"min-w-[72px] px-4 py-2 text-sm text-v2-text-primary border border-v2-border-primary rounded-lg hover:bg-v2-bg-hover cursor-pointer transition-colors duration-200",children:p("module.cancel")}),(0,n.jsx)("button",{onClick:v,className:"min-w-[72px] px-4 py-2 text-sm text-white bg-v2-gradient-primary hover:bg-v2-gradient-primary-hover shadow-v2-gradient rounded-lg cursor-pointer transition-v2-interactive duration-200",children:p("module.save")})]})]})]})]});return(0,o.createPortal)(w,document.body)}},85695:(e,t,r)=>{r.d(t,{Hr:()=>s,IL:()=>o,Nh:()=>n,No:()=>a});let n=!0,a=5e3,o=new Set(["qq.com","163.com","126.com","sohu.com","aliyun.com","139.com","189.cn","sina.com","icloud.com","outlook.com","hotmail.com","gmail.com","googlemail.com","gmx.com"]);function s(e){let t=e.lastIndexOf("@");if(t<=0||t>=e.length-1)return!1;let r=e.slice(t+1).trim().toLowerCase();return o.has(r)}},86517:(e,t,r)=>{r.d(t,{A:()=>f});var n=r(37876),a=r(14232),o=r(98477),s=r(24442),i=r(97445);function l(e){let{className:t}=e;return(0,n.jsxs)("svg",{className:t,viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:2,strokeLinecap:"round",children:[(0,n.jsx)("circle",{cx:"6",cy:"12",r:"1.5",fill:"currentColor",stroke:"none"}),(0,n.jsx)("path",{d:"M10 8.5a5 5 0 0 1 0 7"}),(0,n.jsx)("path",{d:"M13 5.5a9 9 0 0 1 0 13"}),(0,n.jsx)("path",{d:"M16 2.5a13 13 0 0 1 0 19"})]})}function d(e){let{className:t}=e;return(0,n.jsxs)("svg",{className:t,fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",strokeWidth:1.5,children:[(0,n.jsx)("rect",{x:"2",y:"4",width:"20",height:"14",rx:"2",strokeLinecap:"round",strokeLinejoin:"round"}),(0,n.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M6 8h.01M10 8h.01M14 8h.01M18 8h.01M6 12h.01M10 12h.01M14 12h.01M18 12h.01M8 16h8"})]})}var c=r(8779),u=r(97685);var m=r(77497),p=r(35529);function h(e){let{children:t,onClick:r,disabled:a=!1,icon:o,className:s="",...i}=e;return(0,n.jsxs)("button",{type:"button",disabled:a,onClick:r,className:` 1873 MuiButtonBase-root MuiButton-root MuiButton-outlined MuiButton-outlinedPrimary MuiButton-sizeSmall MuiButton-outlinedSizeSmall MuiButton-colorPrimary 1874 compact text-v2-text-primary flex-shrink-0 1875 ${a?"opacity-50 cursor-not-allowed":"cursor-pointer"} 1876 ${s} 1877 `,style:{borderRadius:"6px"},...i,children:[o&&(0,n.jsx)("span",{className:"inline-block align-middle mr-1",children:o}),t]})}function g(e){let{checked:t,onChange:r,disabled:a=!1}=e;return(0,n.jsxs)(h,{onClick:r,disabled:a,icon:(0,n.jsxs)("svg",{className:"w-5 h-5",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:2.5,children:[(0,n.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M2 8c3-3 5 3 8 0s5 3 8 0"}),(0,n.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M2 16c3-3 5 3 8 0s5 3 8 0"})]}),children:["æµå¼ ",t?"ON":"OFF"]})}let f=(0,a.memo)(function(e){let{value:t,onChange:r,onSend:l,disabled:d,placeholder:c,showAttachment:u=!0,isStreaming:f=!1,onCancel:v,showStreamToggle:b=!1,isStreamingEnabled:y=!0,onToggleStreaming:x,showModelSelector:w=!1,characterId:k,recommendedModelId:S,onModelChange:C,onUserModelSelect:I,initialModels:j,onModelSelectorClick:M,lockedModelId:N,preferredDefaultModelId:E,showChatHistory:_=!1,onOpenChatHistory:T,isLoading:P=!1,shortcutCommands:R=[],showHideButtonsToggle:A=!1,onQuickStart:L,showVoiceButton:O=!0,showActionPanelToggle:F=!1,isActionPanelOpen:$=!1,onToggleActionPanel:D,onModClick:B,onOpenMemorySettings:q}=e,{t:H}=(0,i.Bd)("chat"),z=(0,a.useRef)(null),U=(0,a.useRef)(!1),W=(0,a.useRef)(null),[K,V]=(0,a.useState)(!1),[G,Q]=(0,a.useState)(!1);(0,a.useEffect)(()=>{G&&Q(!1)},[G]);let[Y,X]=(0,a.useState)(!1),[J,Z]=(0,a.useState)(!1),{isMobile:ee,isHydrated:et}=(0,m.X)(),er=(0,a.useRef)(null);(0,a.useEffect)(()=>{requestAnimationFrame(()=>{(()=>{let e=W.current,t=z.current;if(!e||!t)return;let r=e.offsetWidth+24;t.style.paddingRight=`${r}px`})()})},[t,f]),(0,a.useEffect)(()=>
1877{if(!et)return;let e=er.current;if(er.current=G,!function(e){let{prevVoiceMode:t,isVoiceMode:r,isMobile:n}=e;return!0===t&&!r||null===t&&!n&&!r}({prevVoiceMode:e,isVoiceMode:G,isMobile:ee}))return;let t=setTimeout(()=>{var e;return null==(e=z.current)?void 0:e.focus()},100);return()=>clearTimeout(t)},[et,ee,G]),(0,a.useLayoutEffect)(()=>{let e=z.current;if(!e)return;e.style.height="auto";let t=e.scrollHeight;t<=34?(e.style.height="34px",e.style.overflowY="hidden",Z(!1)):t<=139?(e.style.height=t+"px",e.style.overflowY="hidden",Z(t>44)):(e.style.height="139px",e.style.overflowY="auto",Z(!0))},[t]),(0,a.useEffect)(()=>{let e=()=>{let e=z.current;if(!e)return;e.style.height="auto";let t=e.scrollHeight;t<=34?(e.style.height="34px",e.style.overflowY="hidden"):t<=139?(e.style.height=t+"px",e.style.overflowY="hidden"):(e.style.height="139px",e.style.overflowY="auto")};return window.addEventListener("resize",e),()=>{window.removeEventListener("resize",e)}},[]);let en=(0,a.useCallback)(e=>{r(e.target.value)},[r]),ea=(0,a.useCallback)(()=>{t.trim()&&!d&&l()},[t,d,l]),eo=(0,a.useCallback)(()=>{U.current=!0},[]),es=(0,a.useCallback)(()=>{U.current=!1},[]),ei=(0,a.useCallback)(e=>{"Enter"!==e.key||e.shiftKey||!ee&&(U.current||(e.preventDefault(),ea()))},[ea,ee]),el=(0,a.useCallback)(()=>{v&&v()},[v]),ed=(0,a.useCallback)(()=>{x&&x()},[x]),ec=(0,a.useCallback)(e=>{var t;r(e),null==(t=z.current)||t.focus()},[r]),eu=!t.trim()||d,em=d&&!t.trim()&&!f;return(0,n.jsxs)(n.Fragment,{children:[Y&&"u">typeof document&&(0,o.createPortal)((0,n.jsxs)("div",{className:"fixed inset-0 flex flex-col bg-v2-bg-primary",style:{touchAction:"manipulation",zIndex:9999},children:[(0,n.jsxs)("div",{className:"flex items-center justify-between px-4 py-3 border-b border-v2-border-primary flex-shrink-0",children:[(0,n.jsxs)("button",{type:"button",onClick:()=>X(!1),className:"flex items-center gap-1.5 text-sm text-v2-text-tertiary hover:text-v2-text-primary cursor-pointer compact","aria-label":H("module.input.exitFullscreen"),children:[(0,n.jsx)("svg",{className:"w-5 h-5",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",strokeWidth:2,children:(0,n.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M9 4v5H4m11 11v-5h5M4 15h5v5m11-11h-5V4"})}),H("module.input.collapse")]}),(0,n.jsx)("span",{className:"text-sm text-v2-text-tertiary",children:H("module.input.characterCount",{count:t.length})}),(0,n.jsx)("button",{type:"button",onClick:()=>{X(!1),eu||ea()},disabled:eu,className:`text-sm font-medium px-4 py-1.5 rounded-lg cursor-pointer compact ${eu?"text-v2-text-disabled bg-v2-bg-secondary":"text-v2-text-inverse bg-v2-accent-primary hover:bg-v2-accent-hover active:bg-v2-accent-active"}`,"aria-label":H("module.sendMessage"),children:H("module.input.send")})]}),(0,n.jsx)("textarea",{autoFocus:!0,value:t,onChange:e=>r(e.target.value),onCompositionStart:()=>{U.current=!0},onCompositionEnd:()=>{U.current=!1},onKeyDown:e=>{"Enter"!==e.key||e.shiftKey||U.current||!ee&&(e.preventDefault(),X(!1),eu||ea())},placeholder:c,className:"flex-1 w-full p-4 text-base text-v2-text-primary outline-none resize-none leading-relaxed bg-transparent",style:{scrollbarWidth:"thin",scrollbarColor:"rgba(156, 163, 175, 0.3) transparent",WebkitOverflowScrolling:"touch"},"aria-label":H("module.input.fullscreenEditMessage")})]}),document.body),(b||w||A||Array.isArray(R)&&R.length>0)&&(0,n.jsxs)("div",{id:"ai-mod-button2",className:"relative z-[2] flex items-center gap-1.5 md:gap-2 pb-1.5 md:pb-2 overflow-x-auto overscroll-x-contain pl-0.5 pr-1.5 md:pr-2 [scrollbar-gutter:stable]",children:[!K&&(0,n.jsxs)(n.Fragment,{children:[B&&(0,n.jsx)(h,{onClick:B,icon:(0,n.jsxs)("svg",{className:"w-4 h-4 md:w-5 md:h-5",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round",children:[(0,n.jsx)("path",{d:"M3 9l9-7 9 7v11a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2z"}),(0,n.jsx)("text",{x:"12",y:"18",textAnchor:"middle",fontSize:"6",fill:"currentColor",stroke:"none",fontWeight:"bold",children:"MOD"})]}),children:"Mod"}),q&&(0,n.jsx)(h,{onClick:q,icon:(0,n.jsx)("svg",{className:"w-4 h-4 md:w-5 md:h-5",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round",children:(0,n.jsx)("path",{d:"M8.25 3v1.5M4.5 8.25H3m18 0h-1.5M4.5 12H3m18 0h-1.5m-15 3.75H3m18 0h-1.5M8.25 19.5V21M12 3v1.5m0 15V21m3.75-18v1.5m0 15V21m-9-1.5h10.5a2.25 2.25 0 0 0 2.25-2.25V6.75a2.25 2.25 0 0 0-2.25-2.25H6.75A2.25 2.25 0 0 0 4.5 6.75v10.5a2.25 2.25 0 0 0 2.25 2.25Zm.75-12h9v9h-9v-9Z"})}),children:H("module.input.memory")}),b&&void 0!==y&&x&&(0,n.jsx)(g,{checked:y,onChange:ed,disabled:P}),L?(0,n.jsx)(h,{onClick:()=>{(0,p.HZ)("chat_quick_start_click",k?{character_id:k}:{}),L()},disabled:P,icon:(0,n.jsx)("svg",{className:"w-4 h-4 md:w-5 md:h-5",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",strokeWidth:2,children:(0,n.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M15.59 14.37a6 6 0 01-5.84 7.38v-4.8m5.84-2.58a14.98 14.98 0 006.16-12.12A14.98 14.98 0 009.631 8.41m5.96 5.96a14.926 14.926 0 01-5.841 2.58m-.119-8.54a6 6 0 00-7.381 5.84h4.8m2.581-5.84a14.927 14.927 0 00-2.58 5.84m2.699 2.7c-.103.021-.207.041-.311.06a15.09 15.09 0 01-2.448-2.448 14.9 14.9 0 01.06-.312m-2.24 2.39a4.493 4.493 0 00-1.757 4.306 4.493 4.493 0 004.306-1.758M16.5 9a1.5 1.5 0 11-3 0 1.5 1.5 0 013 0z"})}),children:H("module.input.quickStart")}):null,w&&(0,n.jsx)(s.A,{characterId:k,recommendedModelId:S,onModelChange:C,onUserModelSelect:I,disabled:d||P,initialModels:j,variant:"dialog",id:"ai-model-selector","data-tour":"model-selector",onModelSelectorClick:M,lockedModelId:N,preferredDefaultModelId:E})]}),A&&(0,n.jsx)(h,{onClick:()=>V(!K),icon:(0,n.jsx)("svg",{className:"w-4 h-4 md:w-5 md:h-5",fill:"currentColor",viewBox:"0 0 24 24",children:(0,n.jsx)("path",{d:"M11 17h10v-2H11zm-8-5 4 4V8zm0 9h18v-2H3zM3 3v2h18V3zm8 6h10V7H11zm0 4h10v-2H11z"})}),children:H(K?"module.input.showButtons":"module.input.hideButtons")}),Array.isArray(R)&&R.length>0&&R.map((e,t)=>(0,n.jsx)("button",{type:"button",onClick:()=>ec(e.command_text),disabled:d||P,className:"MuiButtonBase-root MuiButton-root MuiButton-outlined MuiButton-outlinedPrimary MuiButton-sizeSmall MuiButton-outlinedSizeSmall MuiButton-colorPrimary flex-shrink-0",style:{borderRadius:"6px"},children:e.label},t))]}),(0,n.jsxs)("div",{className:"flex items-center gap-1.5 md:gap-2",children:[!1,(0,n.jsxs)("div",{className:"bg-v2-bg-card border-[1.5px] border-v2-border-primary relative rounded-lg md:rounded-xl flex-1","data-tour":"chat-compose",children:[(0,n.jsxs)("div",{className:"w-full overflow-y-auto p-1.5 md:p-[5.5px] max-h-[150px]",children:[!1,(0,n.jsx)("textarea",{id:"ai-chat-input",ref:z,value:t,onChange:en,onKeyDown:ei,onCompositionStart:eo,onCompositionEnd:es,placeholder:c,className:"rc-textarea block w-full pl-1.5 md:pl-2 py-1.5 md:py-[7px] leading-[1.2] md:leading-5 text-sm text-v2-text-primary outline-none appearance-none resize-none ",rows:1,style:{minHeight:"34px",transition:"height 0.15s ease-out",scrollbarWidth:"thin",scrollbarColor:"rgba(156, 163, 175, 0.3) transparent",WebkitOverflowScrolling:"touch"},"aria-label":"Message input"})]}),J&&!Y&&(0,n.jsx)("button",{type:"button",onClick:()=>{(0,p.HZ)("chat_input_fullscreen_open",{}),X(!0)},className:"absolute top-2 right-2 z-20 flex items-center justify-center w-6 h-6 rounded bg-v2-bg-secondary/80 hover:bg-v2-bg-tertiary text-v2-text-tertiary hover:text-v2-text-primary transition-colors duration-150 cursor-pointer compact","aria-label":H("module.input.fullscreenEdit"),title:H("module.input.fullscreenEdit"),children:(0,n.jsx)("svg",{className:"w-4 h-4",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",strokeWidth:2,children:(0,n.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M4 8V4m0 0h4M4 4l5 5m11-1V4m0 0h-4m4 0l-5 5M4 16v4m0 0h4m-4 0l5-5m11 5v-4m0 4h-4m4 0l-5-5"})})}),(0,n.jsxs)("div",{ref:W,className:"absolute bottom-1.5 md:bottom-2 right-1.5 md:right-2 flex items-center h-7 md:h-8 bg-v2-bg-card/85 backdrop-blur-sm rounded-lg z-10 border border-v2-border-primary/30 ",children:[(0,n.jsx)("div",{className:"flex items-center px-0.5 md:px-1 h-[18px] md:h-5 rounded-md bg-v2-bg-secondary text-[11px] md:text-xs font-medium text-v2-text-tertiary",children:t.length}),(0,n.jsx)("div",{className:"mx-1 w-[1px] h-4 bg-v2-border-primary/40"}),(0,n.jsx)("div",{className:"inline-block",children:f?(0,n.jsx)("button",{onClick:el,className:"flex items-center justify-center rounded-lg transition-v2-interactive duration-200 active:scale-95 compact",style:{width:ee?30:32,height:ee?30:32,minWidth:ee?30:32,minHeight:ee?30:32,padding:0,backgroundColor:"var(--v2-state-error-bg)",color:"var(--v2-state-error)"},"aria-label":H("module.input.cancelReceiving"),title:H("module.input.cancelReceiving"),children:(0,n.jsx)("svg",{className:"w-4 h-4 sm:w-5 sm:h-5",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",strokeWidth:2.5,children:(0,n.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M6 18L18 6M6 6l12 12"})})}):(0,n.jsx)("div",{id:"ai-send-button",onClick:eu?void 0:ea,className:"cursor-pointer group flex items-center justify-center w-7 h-7 md:w-8 md:h-8 rounded-lg hover:bg-v2-info-bg compact",role:"button",tabIndex:eu?-1:0,style:{cursor:eu?"not-allowed":"pointer"},"aria-label":H(em?"module.sendingMessage":"module.sendMessage"),"aria-disabled":eu,title:H(em?"module.sendingMessage":"module.input.send"),onKeyDown:e=>{"Enter"!==e.key&&" "!==e.key||eu||(e.preventDefault(),ea())},children:em?(0,n.jsxs)("svg",{className:"w-4 h-4 md:w-5 md:h-5 animate-spin text-v2-text-disabled",fill:"none",viewBox:"0 0 24 24",children:[(0,n.jsx)("circle",{className:"opacity-25",cx:"12",cy:"12",r:"10",stroke:"currentColor",strokeWidth:"4"}),(0,n.jsx)("path",{className:"opacity-75",fill:"currentColor",d:"M4 12a8 8 0 018-8V0C5.373 0 0 5.373 0 12h4zm2 5.291A7.962 7.962 0 014 12H0c0 3.042 1.135 5.824 3 7.938l3-2.647z"})]}):(0,n.jsx)("svg",{width:"20",height:"20",viewBox:"0 0 20 20",fill:"none",xmlns:"http://www.w3.org/2000/svg",className:`w-4 h-4 md:w-5 md:h-5 transition-colors ${t.trim()?"text-v2-text-link":"text-v2-text-disabled"} group-hover:text-v2-text-link-hover`,"data-icon":"Send03","aria-hidden":"true",children:(0,n.jsx)("g",{id:"send-03",children:(0,n.jsx)("path",{id:"Solid",d:"M18.4385 10.5535C18.6111 10.2043 18.6111 9.79465 18.4385 9.44548C18.2865 9.13803 18.0197 8.97682 17.8815 8.89905C17.7327 8.81532 17.542 8.72955 17.3519 8.64403L3.36539 2.35014C3.17087 2.26257 2.97694 2.17526 2.81335 2.11859C2.66315 2.06656 2.36076 1.97151 2.02596 2.06467C1.64761 2.16994 1.34073 2.4469 1.19734 2.81251C1.07045 3.13604 1.13411 3.44656 1.17051 3.60129C1.21017 3.76983 1.2772
18771 3.9717 1.34445 4.17418L2.69818 8.25278C2.80718 8.58118 2.86168 8.74537 2.96302 8.86678C3.05252 8.97399 3.16752 9.05699 3.29746 9.10816C3.44462 9.1661 3.61762 9.1661 3.96363 9.1661H10.0001C10.4603 9.1661 10.8334 9.53919 10.8334 9.99943C10.8334 10.4597 10.4603 10.8328 10.0001 10.8328H3.97939C3.63425 10.8328 3.46168 10.8328 3.3148 10.8905C3.18508 10.9414 3.07022 11.0241 2.98072 11.1309C2.87937 11.2519 2.82459 11.4155 2.71502 11.7428L1.3504 15.8191C1.28243 16.0221 1.21472 16.2242 1.17455 16.3929C1.13773 16.5476 1.07301 16.8587 1.19956 17.1831C1.34245 17.5493 1.64936 17.827 2.02806 17.9327C2.36342 18.0263 2.6665 17.9309 2.81674 17.8789C2.98066 17.8221 3.17507 17.7346 3.37023 17.6467L17.3518 11.355C17.542 11.2695 17.7327 11.1837 17.8815 11.0999C18.0197 11.0222 18.2865 10.861 18.4385 10.5535Z",fill:"currentColor"})})})})})]})]}),F&&(0,n.jsx)("button",{type:"button",onClick:D,"data-tour":"action-panel-toggle",className:"md:hidden flex-shrink-0 flex items-center justify-center h-8 min-w-8 px-1 rounded-full cursor-pointer transition-colors duration-200 bg-v2-bg-secondary text-v2-text-tertiary hover:bg-v2-bg-tertiary hover:text-v2-text-primary active:bg-v2-bg-quaternary motion-reduce:transition-none text-[11px] font-medium","aria-label":H($?"module.input.collapseActionPanel":"module.input.expandActionPanel"),"aria-expanded":$,children:$?(0,n.jsx)("svg",{className:"w-4 h-4",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",strokeWidth:2,children:(0,n.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M6 18L18 6M6 6l12 12"})}):(0,n.jsx)("span",{children:H("module.input.more")})})]})]})},(e,t)=>e.value===t.value&&e.disabled===t.disabled&&e.placeholder===t.placeholder&&e.showAttachment===t.showAttachment&&e.isStreaming===t.isStreaming&&e.showStreamToggle===t.showStreamToggle&&e.isStreamingEnabled===t.isStreamingEnabled&&e.showModelSelector===t.showModelSelector&&e.showChatHistory===t.showChatHistory&&e.isLoading===t.isLoading&&e.characterId===t.characterId&&e.recommendedModelId===t.recommendedModelId&&e.shortcutCommands===t.shortcutCommands&&e.onChange===t.onChange&&e.onSend===t.onSend&&e.onCancel===t.onCancel&&e.onToggleStreaming===t.onToggleStreaming&&e.onModelChange===t.onModelChange&&e.onModelSelectorClick===t.onModelSelectorClick&&e.lockedModelId===t.lockedModelId&&e.preferredDefaultModelId===t.preferredDefaultModelId&&e.onOpenChatHistory===t.onOpenChatHistory&&e.onQuickStart===t.onQuickStart&&e.showVoiceButton===t.showVoiceButton&&e.onModClick===t.onModClick&&e.onOpenMemorySettings===t.onOpenMemorySettings&&e.showActionPanelToggle===t.showActionPanelToggle&&e.isActionPanelOpen===t.isActionPanelOpen&&e.onToggleActionPanel===t.onToggleActionPanel&&!0)},90777:(e,t,r)=>{r.d(t,{EU:()=>n,F7:()=>m,Oi:()=>c,_W:()=>u});let n=["off","low","medium","high"],a="chat_thinking_level_v1",o=new Set(["宿¹æ¸ é","openrouter"]),s=new Set(["ç ´é","ç ´éæ¸ é"]),i=new Set(["00f305c4-a63d-4654-8e28-92b25d0b95eb"]),l=new Set(["8f4b43ab-1fe7-4c96-9d8c-1c5fca2eea14","aa8931b2-f637-43ed-8be9-10e73420c251","69640e57-6c66-4c87-bb4b-74433c5babaa","7b1360fc-fd6e-47a4-84e4-d54b84b2ac4e","fbfb20a5-0d59-40b3-b863-b83d652dd02f","fbfb20a5-0d59-40b3-b863-b83d652dd02e","5c554ff9-2624-4d19-a33d-86ac934bdaa0","c43b5795-a1e8-4f33-be71-c3331a4befbd","d6d239fe-6f77-40b4-b2a2-45371ca5a047","c14fe79e-fd99-4d0f-a18a-8e0797efeeea","f42d5d14-0880-41ee-a1fa-bcd7bca3691c","d0c550cf-4f46-4aa5-b1cc-d0ab04833b63"]),d=new Set(["deepseek/deepseek-v4-flash","deepseek/deepseek-v4-flash-0731","deepseek/deepseek-v4-pro","deepseek/deepseek-v4-pro-0813","deepseek/deepseek-v4.1-flash","google/gemini-3.1-flash-lite","google/gemini-3.1-flash-lite-preview","mistralai/mistral-medium-3-5","openai/gpt-5.6-luna","openai/gpt-6-luna","qwen/qwen3.8-27b"]);function c(e){var t;if(!e)return"adjustable";if((t=e).id&&i.has(t.id)||"google/gemini-3.7-flash"===(t.name??"").trim().toLowerCase())return"unsupported";let r=(e.provider_name??"").trim();if(!r)return"adjustable";if(s.has(r))return"forced_off";let n=r.toLowerCase();return o.has(r)||o.has(n)?("openrouter"===n||"openrouter"===r)&&!function(e){if(e.id&&l.has(e.id))return!0;let t=(e.name??"").trim().toLowerCase();return d.has(t)}(e)?"unsupported":"adjustable":n.includes("redpill")?"forced_off":"unsupported"}function u(){try{let e=localStorage.getItem(a);if("string"==typeof e&&n.includes(e))return e}catch{}return"off"}function m(e){try{localStorage.setItem(a,e)}catch{}}},92789:(e,t,r)=>{r.d(t,{A:()=>d});var n=r(37876),a=r(14232),o=r(98477),s=r(67452),i=r(53731),l=r(97445);let d=(0,a.memo)(function(e){let{questions:t,onSelectQuestion:r,disabled:d=!1,tourKeepOpen:c}=e,{t:u}=(0,l.Bd)("chat"),[m,p]=(0,a.useState)(!1),h=(0,a.useRef)(null),g=(0,a.useRef)(void 0),[f,v]=(0,a.useState)({}),b=(0,a.useCallback)(()=>{let e=h.current;if(!e)return;let t=e.getBoundingClientRect(),r=window.innerWidth,n=Math.min(r-32,520),a=t.left+t.width/2-n/2;a=Math.max(16,Math.min(a,r-n-16)),v({position:"fixed",top:t.bottom+8,left:a,width:n,zIndex:9999})},[]),y=(0,a.useCallback)(()=>{d||p(e=>(e||b(),!e))},[d,b]);(0,a.useEffect)(()=>{!0===c?(p(!0),b()):!1===c&&!0===g.current&&p(!1),g.current=c},[c,b]),(0,a.useEffect)(()=>
1877{if(!m||!0===c)return;let e=e=>{var t;let r=e.target;null!=(t=h.current)&&t.contains(r)||p(!1)};return document.addEventListener("mousedown",e),document.addEventListener("touchstart",e,{passive:!0}),()=>{document.removeEventListener("mousedown",e),document.removeEventListener("touchstart",e)}},[m,c]),(0,a.useEffect)(()=>{if(!m)return;let e=()=>b();return window.addEventListener("resize",e),()=>window.removeEventListener("resize",e)},[m,b]);let x=(0,a.useCallback)(e=>{p(!1),(0,a.startTransition)(()=>{r(e)})},[r]);if(!Array.isArray(t)||0===t.length)return null;let w=m&&(0,n.jsx)("div",{style:f,className:"max-h-[60vh] overflow-y-auto rounded-xl shadow-lg border border-v2-border-primary scrollbar-hide mobile-scroll",onMouseDown:e=>e.stopPropagation(),onTouchStart:e=>e.stopPropagation(),children:(0,n.jsxs)("div",{className:"p-2",style:{background:"linear-gradient(to bottom right, var(--v2-sidebar-gradient-from), var(--v2-sidebar-gradient-via), var(--v2-sidebar-gradient-to))"},children:[(0,n.jsx)("div",{className:"text-xs text-v2-text-tertiary px-3 py-2 mb-1",children:u("module.clickQuestionToSend")}),t.map((e,t)=>(0,n.jsxs)("div",{children:[t>0&&(0,n.jsx)("div",{className:"mx-4 border-t border-dashed border-v2-border-primary"}),(0,n.jsx)("button",{type:"button","data-tour":0===t?"suggested-question-0":void 0,onClick:()=>x(e),className:"w-full text-left px-3 py-3 text-sm text-v2-text-primary hover:bg-v2-bg-hover transition-colors rounded-lg",children:(0,n.jsxs)("div",{className:"flex items-start gap-2",children:[(0,n.jsx)("span",{className:"flex-shrink-0 w-5 h-5 flex items-center justify-center bg-v2-accent text-white text-xs rounded-full",children:t+1}),(0,n.jsx)("span",{children:e})]})})]},t))]})});return(0,n.jsxs)(n.Fragment,{children:[(0,n.jsxs)("button",{id:"ai-mod-button","data-tour":"opening-statement-select",ref:h,onClick:y,disabled:d,className:"flex items-center gap-1.5 sm:gap-2 px-2.5 sm:px-4 py-1.5 sm:py-2 rounded-xl border border-v2-border-primary bg-v2-bg-card text-xs sm:text-sm text-v2-text-secondary hover:bg-v2-bg-hover transition-colors disabled:opacity-50 disabled:cursor-not-allowed shadow-sm","aria-label":u("module.openingStatementSelect"),"aria-expanded":m,children:[(0,n.jsx)(s.A,{className:"w-3.5 h-3.5 sm:w-4 sm:h-4"}),(0,n.jsx)("span",{children:u("module.openingStatementSelect")}),(0,n.jsx)(i.A,{className:`w-3.5 h-3.5 sm:w-4 sm:h-4 transition-transform ${m?"rotate-180":""}`})]}),"u">typeof document&&w?(0,o.createPortal)(w,document.body):null]})})},96959:(e,t,r)=>{r.d(t,{Bx:()=>o,IS:()=>a,S2:()=>s,p0:()=>n});let n=20;function a(e){return"number"==typeof e.total_calls&&Number.isFinite(e.total_calls)&&e.total_calls>=0?e.total_calls:(e.success_calls??0)+(e.abnormal_calls??0)+(e.error_calls??0)}function o(e){if(!e)return!1;let t=e.success_rate;return!(null==t||!Number.isFinite(t)||0>=a(e))&&t>=n}function s(e){if(!e||0>=a(e))return!1;let t=e.success_rate;return null!=t&&!!Number.isFinite(t)&&t<n}}}]);
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.