@deep-eye/core 1.2.76 → 1.2.77

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.cjs CHANGED
@@ -272,8 +272,8 @@ def quicksort(arr):
272
272
  示例(教案大纲入口):
273
273
  {% action-bar id="outline-123" icon="book" title="【三年级数学上学期·小数的认识】" action="查看大纲" href="/lesson/outline/123" nav="route" /%}`,eZ=c1(hh,{preamble:AZ}),Ag="{%",eg="%}";function tZ(e,A){return`${e}-${A}`}function rZ(e){const A=e.trim();if(!A)return null;if(A.startsWith("/")){const n=A.slice(1).trim().split(/\s+/)[0];return n?{type:"close",name:n}:null}const t=A.endsWith("/"),i=(t?A.slice(0,-1).trim():A).match(/^([a-z][\w-]*)\s*([\s\S]*)$/i);return i?{type:t?"self":"open",name:i[1],rawAttrs:i[2]??""}:null}function iZ(e,A){const t=H7(A);if(t==="boolean")return e===""||e==="true"?!0:e==="false"?!1:!!e;if(t==="number"){const r=Number(e);return Number.isFinite(r)?r:e}return e}function nZ(e,A){const t={},r=/([a-zA-Z_][\w-]*)\s*(=\s*(?:"([^"]*)"|'([^']*)'|([^\s"'`=<>]+)))?/g;for(const i of e.matchAll(r)){const n=i[1],a=A.props[n];if(!a)continue;const o=i[3]??i[4]??i[5]??"";if(!(i[2]!==void 0)&&H7(a)==="boolean"){t[n]=!0;continue}t[n]=iZ(o,a)}for(const[i,n]of Object.entries(A.props))i in t||O7(n);return t}class V7{constructor(A){this.buffer="",this.nodes=[],this.idSeq=0,this.finalized=!1,this.stack=[],this.registry=A.registry}push(A){this.finalized||!A||(this.buffer+=A,this.consume())}finalize(){this.finalized||(this.finalized=!0,this.flushRemainderAsText())}getNodes(){return this.nodes.map(A=>this.cloneNode(A))}getPendingRoot(){const A=this.stack[0];if(A)return{tag:A.tag,props:{...A.props}}}nextId(A){return this.idSeq+=1,tZ(A,this.idSeq)}cloneNode(A){return A.kind==="text"?{...A}:{...A,props:{...A.props},children:A.children.map(t=>this.cloneNode(t))}}appendText(A){if(!A)return;const t=this.stack[this.stack.length-1];if(t){t.slotParts.push(A);return}const r=this.nodes[this.nodes.length-1];if((r==null?void 0:r.kind)==="text"){r.text+=A;return}this.nodes.push({id:this.nextId("text"),kind:"text",text:A})}emitComponent(A){const t={id:A.startId,kind:"component",tag:A.tag,props:A.props,children:A.children,slotText:A.slotParts.join("").trim(),complete:!0},r=this.stack[this.stack.length-1];if(r){r.children.push(t);return}this.nodes.push(t)}consume(){var A,t;for(;this.buffer.length>0;){const r=this.buffer.indexOf(Ag);if(r===-1){if(this.stack.length>0){this.appendText(this.buffer),this.buffer="";return}this.appendText(this.buffer),this.buffer="";return}r>0&&(this.appendText(this.buffer.slice(0,r)),this.buffer=this.buffer.slice(r));const i=this.buffer.indexOf(eg,Ag.length);if(i===-1)return;const n=this.buffer.slice(Ag.length,i),a=this.buffer.slice(0,i+eg.length);this.buffer=this.buffer.slice(i+eg.length);const o=rZ(n);if(!o){this.appendText(a);continue}if(o.type==="close"){this.handleClose(o.name,a);continue}const s=this.registry.get(o.name);if(!s){this.handleUnknown(o,a);continue}const l=nZ(o.rawAttrs,s);if(o.type==="self"){const c={id:this.nextId(o.name),kind:"component",tag:o.name,props:l,children:[],slotText:"",complete:!0},C=this.stack[this.stack.length-1],h=C?(((A=this.registry.get(C.tag))==null?void 0:A.children)??[]).includes(o.name):!0;if(C&&!h){this.appendText(a);continue}C?C.children.push(c):this.nodes.push(c);continue}const g=this.stack[this.stack.length-1];if(g&&!(((t=this.registry.get(g.tag))==null?void 0:t.children)??[]).includes(o.name)){this.appendText(a);continue}this.stack.push({tag:o.name,props:l,children:[],slotParts:[],startId:this.nextId(o.name)})}}handleClose(A,t){const r=[...this.stack].map(n=>n.tag).lastIndexOf(A);if(r===-1){this.appendText(t);return}for(;this.stack.length-1>r;){const n=this.stack.pop();if(!n)break;this.appendText(`${Ag} ${n.tag} ${eg}${n.slotParts.join("")}${n.children.map(()=>"").join("")}`)}const i=this.stack.pop();if(!i){this.appendText(t);return}this.emitComponent(i)}handleUnknown(A,t){if(A.type==="self"){this.appendText(t);return}this.appendText(t)}flushRemainderAsText(){for(;this.stack.length>0;){const A=this.stack.pop();if(!A)break;const t=Object.entries(A.props).map(([i,n])=>typeof n=="boolean"?n?`${i}=true`:`${i}=false`:`${i}="${String(n)}"`).join(" "),r=t?`${Ag} ${A.tag} ${t} ${eg}`:`${Ag} ${A.tag} ${eg}`;this.appendText(r);for(const i of A.children)if(i.kind==="text")this.appendText(i.text);else{const n=this.stack[this.stack.length-1];n?n.children.push(i):this.nodes.push(i)}this.appendText(A.slotParts.join(""))}this.buffer&&(this.appendText(this.buffer),this.buffer="")}}const k4=new Set(["ask_user","ask_form","ask-form","ask_user_form"]);function Ch(e){const A=e.trim().toLowerCase().replace(/-/g,"_");return k4.has(A)||k4.has(e)}const aZ=Ch;function u1(e){const A=typeof e.question=="string"?e.question.trim():"";if(!A)return null;const t=typeof e.id=="string"&&e.id.trim()?e.id.trim():`ask_${Math.random().toString(36).slice(2,10)}`,r=Array.isArray(e.options)?e.options.map(Z7).filter(n=>n!==null):[],i=typeof e.header=="string"?e.header.trim():void 0;return{id:t,question:A,options:r,multi_select:e.multi_select===!0,required:e.required!==!1,...i?{header:i}:{}}}function Z7(e){if(!UE(e))return null;const A=typeof e.value=="string"?e.value:"",t=typeof e.label=="string"?e.label:A;if(!A&&!t)return null;const r=typeof e.description=="string"?e.description:void 0;return{value:A||t,label:t||A,recommended:e.recommended===!0,...r?{description:r}:{}}}function P7(e){if(!UE(e))return null;const A=typeof e.desc=="string"?e.desc:"";if(!Array.isArray(e.questions))return null;const t=e.questions.map(r=>UE(r)?u1(r):null).filter(r=>r!==null);return t.length===0?null:{desc:A,questions:t}}function oZ(e){const A=e.trim();if(!A)return!1;const t=hs(A);return t?Array.isArray(t.questions):A.includes('"questions"')}function q7(e){const A=hs(e);return A?P7(A):null}function K7(e){var t;const A=(t=e.function.arguments)==null?void 0:t.trim();return A?q7(A):null}function cd(e){if(!(e!=null&&e.length))return null;for(let A=e.length-1;A>=0;A-=1){const t=e[A];if(!Ch(t.function.name))continue;const r=K7(t);if(r)return{payload:r,toolCallId:t.id}}return null}function sZ(e){return cd(e)}function z7(e){return e!=null&&e.length?e.filter(A=>!Ch(A.function.name)):[]}const lZ=z7;function ud(e,A={}){if(!e)return[];const t=new V7({registry:hh});return t.push(e),A.isStreaming||t.finalize(),t.getNodes().filter(r=>r.kind==="component"&&r.tag==="ask-form"&&r.complete).map(cZ).filter(r=>r!==null)}function gZ(e,A={}){return ud(e,A)}function cZ(e){const A=e.children.filter(t=>t.kind==="component"&&t.tag==="ask-option"&&t.complete).map(t=>{const r=String(t.props.label??t.props.value??""),{label:i,recommended:n}=uZ(r);return Z7({value:String(t.props.value??i),label:i,recommended:n,description:typeof t.props.description=="string"?t.props.description:void 0})}).filter(t=>t!==null);return u1({id:typeof e.props.id=="string"?e.props.id:e.id,question:String(e.props.question??""),options:A,multi_select:e.props.multiple===!0,required:e.props.required!==!1,header:typeof e.props.header=="string"?e.props.header:void 0})}function uZ(e){const A=/\s*(?:\((?:recommended|推荐)\)|((?:recommended|推荐)))\s*$/i;return A.test(e)?{label:e.replace(A,""),recommended:!0}:{label:e,recommended:!1}}function W7(e){return JSON.stringify({answers:e})}function hZ(e,A){return{type:"function_call_output",call_id:e,output:W7(A)}}function X7(e,A){const t=new Map(A.map(r=>[r.id,r]));return e.map(r=>{var a;const i=t.get(r.id);if(!i)return`${r.question}: (未答)`;const n=[];for(const o of i.selected){const s=r.options.find(l=>l.value===o);n.push((s==null?void 0:s.label)??o)}return(a=i.custom)!=null&&a.trim()&&n.push(i.custom.trim()),n.length===0?`${r.question}: (跳过)`:`${r.question}: ${n.join(", ")}`}).join(`
274
274
  `)}function YE(e,A){var t;return e.required?A?A.selected.length>0?!0:!!((t=A.custom)!=null&&t.trim()):!1:!0}function UE(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}const CZ=["data-tool-call-id","data-state","aria-label","aria-busy"],IZ={key:0,class:"tool-call-part__sr"},dZ={class:"tool-call-part__content"},fZ=["aria-expanded"],BZ={class:"tool-call-part__leading","aria-hidden":"true"},pZ={class:"tool-call-part__name"},QZ=["inert","aria-hidden"],EZ={key:0,class:"tool-call-part__section"},mZ={key:0,class:"tool-call-part__validation",role:"alert"},vZ={key:1,class:"tool-call-part__section"},yZ={key:2,class:"tool-call-part__io-card"},wZ={key:0,class:"tool-call-part__io-section"},DZ=["aria-expanded"],kZ={key:1,class:"tool-call-part__io-divider","aria-hidden":"true"},bZ={key:2,class:"tool-call-part__io-section"},SZ=["data-error"],NZ={key:3,class:"tool-call-part__error",role:"alert"},xZ={key:4,class:"tool-call-part__actions"},_Z=["disabled"],FZ=["disabled"],MZ={key:5,class:"tool-call-part__actions"},RZ=["disabled"],LZ=["disabled"],GZ=160,TZ=u.defineComponent({name:"ToolCallPart",__name:"ToolCallPart",props:{toolCall:{},toolMessage:{},isStreaming:{type:Boolean},toolState:{},renderer:{},isFirst:{type:Boolean},isLast:{type:Boolean},compactHeader:{type:Boolean}},emits:["tool-action"],setup(e,{emit:A}){var VA;const t=e,r=A,i=Fc(),n=u.ref(((VA=t.toolState)==null?void 0:VA.arguments)??t.toolCall.function.arguments),a=u.computed(()=>{var gA;return oe((gA=t.toolMessage)==null?void 0:gA.content)}),o=u.computed(()=>{var MA;if((MA=t.toolState)!=null&&MA.error)return t.toolState.error;const gA=a.value;return Se(gA)&&typeof gA.error=="string"?gA.error:void 0}),s=u.computed(()=>J7({toolState:t.toolState,toolMessage:t.toolMessage,streaming:t.isStreaming})),l=u.computed(()=>s.value==="running"?"running":s.value==="error"?"error":s.value==="cancelled"||s.value==="denied"?"stopped":"ok"),g=u.computed(()=>t.renderer??i.toolRenderers.value[t.toolCall.function.name]??T7(t.toolCall.function.name)),c=u.computed(()=>n.value),C=u.computed(()=>h.value?"":me(kA(a.value))),h=u.computed(()=>Ch(t.toolCall.function.name)||_Y(c.value)),I=new Set(["execute_code","code_run","web_execute_js"]),d=u.computed(()=>h.value||g.value===void 0?!1:a.value!==void 0?!0:I.has(t.toolCall.function.name)),f=u.computed(()=>{var gA;return((gA=t.toolState)==null?void 0:gA.isArgumentsEditable)===!0&&(s.value==="requires-approval"||s.value==="requires-action")}),B=u.computed(()=>{try{return JSON.parse(c.value),!0}catch{return!1}}),p=B,Q=u.computed(()=>h.value?uw(c.value):xY(c.value)),E=u.computed(()=>!f.value&&!h.value&&!d.value&&(Q.value.trim().length>0||!!C.value)),m=u.computed(()=>!f.value&&Q.value.trim().length>0),v=u.computed(()=>JV(t.toolCall.function.name)),w=u.computed(()=>OV(t.toolCall.function.name)),k=u.computed(()=>({pending:"等待中","requires-approval":"等待审批",running:"执行中",success:"完成",error:"失败",denied:"已拒绝",cancelled:"已取消","requires-action":"需要操作"})[s.value]),b=u.computed(()=>s.value==="running"?"执行中":s.value==="pending"?"等待中":l.value==="error"?"失败":l.value==="stopped"?"已中断":null),S=u.computed(()=>{const gA=t.toolCall.function.name;return{search:GL,knowledge_search:TL,file_read:Ny,read_private_document:Ny,file_write:xy,file_patch:xy,file_upload:YL,get_deployment:Lh,update_working_checkpoint:_y,start_long_term_update:Lh,execute_code:Lh,code_run:Lh,web_execute_js:UL,web_scan:JL,ask_user:Gh,ask_form:Gh,"ask-form":Gh,ask_user_form:Gh,skills_list:_y,skill_view:OL,render_chart:ea,render_mind_map:ea,calculate_retention:ea,"open-generative-ui":ea,toggleTheme:ea,pieChart:ea,barChart:ea,plan_visualization:ea,scheduleTime:ea}[gA]??ea}),N=u.computed(()=>h.value?uw(t.toolCall.function.arguments):VV(t.toolCall.function.arguments)),_=u.computed(()=>{var pe;if(s.value!=="error")return"";const gA=(pe=o.value)==null?void 0:pe.trim();if(!gA)return"";const MA=gA.indexOf(`
275
- `);return MA===-1?gA:gA.slice(0,MA)}),F=u.computed(()=>{if(_.value)return[_.value];const gA=[];return HV(t.toolCall.function.name)||gA.push(t.toolCall.function.name),N.value&&gA.push(N.value),gA}),R=u.computed(()=>{var MA;if(!t.compactHeader)return F.value;if(_.value)return[_.value];if(h.value&&N.value)return[N.value];const gA=(MA=N.value)==null?void 0:MA.trim();return gA?[gA]:[]}),Y=u.computed(()=>f.value||p.value||s.value!=="running"&&s.value!=="pending"?!1:c.value.trim().length>0),q=u.computed(()=>s.value==="error"?"error":s.value==="cancelled"||s.value==="denied"?"warning":"icon");function Z(gA){return h.value?!1:gA==="requires-approval"||gA==="requires-action"}const O=u.ref(Z(s.value)),eA=u.ref(!1),tA=u.ref(!1),T=u.ref(null),AA=u.ref(),P=u.ref(0);let K;function iA(){const gA=AA.value;gA&&(P.value=gA.scrollHeight)}u.watch(AA,gA=>{K==null||K.disconnect(),K=void 0,gA&&(iA(),typeof ResizeObserver<"u"&&(K=new ResizeObserver(iA),K.observe(gA)))},{immediate:!0,flush:"post"}),u.onBeforeUnmount(()=>K==null?void 0:K.disconnect());const lA=u.computed(()=>({height:O.value?`${P.value}px`:"0px"})),vA=u.ref();let FA;function ZA(){const gA=vA.value;if(!gA){tA.value=!1;return}eA.value||(tA.value=gA.scrollHeight>GZ+1)}u.watch(vA,gA=>{FA==null||FA.disconnect(),FA=void 0,gA&&(ZA(),typeof ResizeObserver<"u"&&(FA=new ResizeObserver(ZA),FA.observe(gA)))},{immediate:!0,flush:"post"}),u.onBeforeUnmount(()=>FA==null?void 0:FA.disconnect());function RA(){O.value=!O.value}function qA(){eA.value=!eA.value,eA.value||ZA()}function GA(gA){(gA==="approve"||gA==="submit-action")&&!B.value||(T.value=gA,r("tool-action",{action:gA,toolCall:t.toolCall,arguments:c.value}))}function me(gA){if(gA===void 0||gA==="")return"";if(typeof gA=="string")try{return JSON.stringify(JSON.parse(gA),null,2)}catch{return gA}try{return JSON.stringify(gA,null,2)}catch{return String(gA)}}function oe(gA){if(gA)try{return JSON.parse(gA)}catch{return gA}}function Se(gA){return typeof gA=="object"&&gA!==null&&!Array.isArray(gA)}function kA(gA){if(!Se(gA)||!("mdoc"in gA))return gA;const MA={...gA};return delete MA.mdoc,MA}function WA(gA){return/[\\/]|\.[a-zA-Z0-9]{1,8}$/.test(gA)}return u.watch(s,gA=>{O.value=Z(gA),T.value=null,Z(gA)||(eA.value=!1)}),u.watch(h,gA=>{gA&&(O.value=!1,eA.value=!1)}),u.watch(()=>{var gA;return[(gA=t.toolState)==null?void 0:gA.arguments,t.toolCall.function.arguments]},([gA,MA])=>{n.value=gA??MA}),(gA,MA)=>(u.openBlock(),u.createElementBlock("div",{class:u.normalizeClass(["tool-call-part",`tool-call-part--${s.value}`]),"data-tool-call-id":e.toolCall.id,"data-state":l.value,"aria-label":`${v.value}:${k.value}`,"aria-busy":s.value==="pending"||s.value==="running"?"true":"false"},[b.value?(u.openBlock(),u.createElementBlock("span",IZ,u.toDisplayString(b.value),1)):u.createCommentVNode("",!0),u.createElementVNode("div",dZ,[u.createElementVNode("button",{type:"button",class:u.normalizeClass(["tool-call-part__header",{"tool-call-part__header--open":O.value}]),"aria-expanded":O.value,"data-testid":"tool-call-header",onClick:RA},[u.createElementVNode("span",BZ,[q.value==="error"?(u.openBlock(),u.createBlock(SE,{key:0,class:u.normalizeClass(["tool-call-part__state-dot",{"tool-call-part__state-dot--hidden":O.value}]),state:"error"},null,8,["class"])):q.value==="warning"?(u.openBlock(),u.createBlock(SE,{key:1,class:u.normalizeClass(["tool-call-part__state-dot",{"tool-call-part__state-dot--hidden":O.value}]),state:"warning"},null,8,["class"])):(u.openBlock(),u.createBlock(u.resolveDynamicComponent(S.value),{key:2,class:u.normalizeClass(["tool-call-part__indicator",{"tool-call-part__indicator--hidden":O.value}]),size:14},null,8,["class"])),u.createVNode(u.unref(Tu),{class:u.normalizeClass(["tool-call-part__chevron",{"tool-call-part__chevron--open":O.value}]),size:14},null,8,["class"])]),u.createElementVNode("span",pZ,u.toDisplayString(w.value),1),R.value.length?(u.openBlock(!0),u.createElementBlock(u.Fragment,{key:0},u.renderList(R.value,(pe,xe)=>(u.openBlock(),u.createElementBlock(u.Fragment,{key:`${xe}-${pe.slice(0,24)}`},[MA[5]||(MA[5]=u.createElementVNode("span",{class:"tool-call-part__sep","aria-hidden":"true"},null,-1)),u.createElementVNode("span",{class:u.normalizeClass(["tool-call-part__summary",{"tool-call-part__summary--path":!_.value&&WA(pe),"tool-call-part__summary--error":!!_.value||s.value==="error"}])},u.toDisplayString(pe),3)],64))),128)):u.createCommentVNode("",!0)],10,fZ),u.createElementVNode("div",{class:u.normalizeClass(["tool-call-part__body-wrapper",{"tool-call-part__body-wrapper--open":O.value}]),style:u.normalizeStyle(lA.value),inert:!O.value,"aria-hidden":!O.value},[u.createElementVNode("div",{ref_key:"bodyContentRef",ref:AA,class:"tool-call-part__body"},[f.value?(u.openBlock(),u.createElementBlock("div",EZ,[u.withDirectives(u.createElementVNode("textarea",{"onUpdate:modelValue":MA[0]||(MA[0]=pe=>n.value=pe),class:"tool-call-part__editor","aria-label":"工具参数 JSON",rows:"5"},null,512),[[u.vModelText,n.value]]),B.value?u.createCommentVNode("",!0):(u.openBlock(),u.createElementBlock("p",mZ," 参数必须是有效的 JSON "))])):d.value?(u.openBlock(),u.createElementBlock("section",vZ,[(u.openBlock(),u.createBlock(u.resolveDynamicComponent(g.value),{"tool-call":e.toolCall,status:s.value,result:a.value,error:o.value,message:e.toolMessage,"is-streaming":e.isStreaming===!0},null,8,["tool-call","status","result","error","message","is-streaming"]))])):E.value?(u.openBlock(),u.createElementBlock("div",yZ,[m.value?(u.openBlock(),u.createElementBlock("div",wZ,[MA[6]||(MA[6]=u.createElementVNode("span",{class:"tool-call-part__io-label"},"IN",-1)),u.createElementVNode("div",{class:u.normalizeClass(["tool-call-part__details-clamp",{"tool-call-part__details-clamp--fade":tA.value&&!eA.value,"tool-call-part__details-clamp--expanded":eA.value}])},[u.createElementVNode("pre",{ref_key:"detailsPreRef",ref:vA,class:u.normalizeClass(["tool-call-part__streaming-arguments",{"tool-call-part__streaming-arguments--streaming":Y.value}])},u.toDisplayString(Q.value),3)],2),tA.value||eA.value?(u.openBlock(),u.createElementBlock("button",{key:0,type:"button",class:"tool-call-part__more","aria-expanded":eA.value,onClick:u.withModifiers(qA,["stop"])},u.toDisplayString(eA.value?"收起":"展开更多"),9,DZ)):u.createCommentVNode("",!0)])):u.createCommentVNode("",!0),m.value&&C.value?(u.openBlock(),u.createElementBlock("span",kZ)):u.createCommentVNode("",!0),C.value?(u.openBlock(),u.createElementBlock("div",bZ,[MA[7]||(MA[7]=u.createElementVNode("span",{class:"tool-call-part__io-label"},"OUT",-1)),u.createElementVNode("pre",{class:"tool-call-part__result-text","data-error":s.value==="error"||void 0},u.toDisplayString(C.value),9,SZ)])):u.createCommentVNode("",!0)])):u.createCommentVNode("",!0),o.value&&!_.value?(u.openBlock(),u.createElementBlock("p",NZ,u.toDisplayString(o.value),1)):u.createCommentVNode("",!0),s.value==="requires-approval"?(u.openBlock(),u.createElementBlock("div",xZ,[u.createElementVNode("button",{type:"button","data-testid":"tool-deny",disabled:T.value!==null,onClick:MA[1]||(MA[1]=pe=>GA("deny"))},u.toDisplayString(T.value==="deny"?"处理中…":"拒绝"),9,_Z),u.createElementVNode("button",{type:"button","data-testid":"tool-approve",disabled:T.value!==null||f.value&&!B.value,onClick:MA[2]||(MA[2]=pe=>GA("approve"))},u.toDisplayString(T.value==="approve"?"处理中…":"允许"),9,FZ)])):s.value==="requires-action"?(u.openBlock(),u.createElementBlock("div",MZ,[u.createElementVNode("button",{type:"button",disabled:T.value!==null,onClick:MA[3]||(MA[3]=pe=>GA("cancel"))},u.toDisplayString(T.value==="cancel"?"处理中…":"取消"),9,RZ),u.createElementVNode("button",{type:"button",disabled:T.value!==null||f.value&&!B.value,onClick:MA[4]||(MA[4]=pe=>GA("submit-action"))},u.toDisplayString(T.value==="submit-action"?"处理中…":"继续"),9,LZ)])):u.createCommentVNode("",!0)],512)],14,QZ)])],10,CZ))}}),j7=ae(TZ,[["__scopeId","data-v-b572cc7d"]]),YZ={class:"chat-tool-group",role:"group","aria-label":"工具调用"},UZ=["title"],JZ=u.defineComponent({__name:"ChatToolGroup",props:{toolCalls:{},toolMessages:{},toolStates:{},streaming:{type:Boolean},summary:{},compactHeader:{type:Boolean}},emits:["tool-action"],setup(e,{emit:A}){const t=A;function r(i,n){return i==null?void 0:i.find(a=>a.tool_call_id===n)}return(i,n)=>{var a;return u.openBlock(),u.createElementBlock("div",YZ,[(a=e.summary)!=null&&a.trim()&&!e.compactHeader?(u.openBlock(),u.createElementBlock("p",{key:0,class:"chat-tool-group__summary",title:e.summary},u.toDisplayString(e.summary),9,UZ)):u.createCommentVNode("",!0),(u.openBlock(!0),u.createElementBlock(u.Fragment,null,u.renderList(e.toolCalls,(o,s)=>u.renderSlot(i.$slots,"default",{key:o.id,toolCall:o,toolMessage:r(e.toolMessages,o.id),streaming:e.streaming===!0},()=>{var l;return[u.createVNode(j7,{"tool-call":o,"tool-message":r(e.toolMessages,o.id),"tool-state":(l=e.toolStates)==null?void 0:l[o.id],"is-streaming":e.streaming,"is-first":s===0,"is-last":s===e.toolCalls.length-1,"compact-header":e.compactHeader===!0,onToolAction:n[0]||(n[0]=g=>t("tool-action",g))},null,8,["tool-call","tool-message","tool-state","is-streaming","is-first","is-last","compact-header"])]},!0)),128))])}}}),$7=ae(JZ,[["__scopeId","data-v-e69e0f2c"]]),OZ=120;function HZ(e){let A=0;for(const t of e)t.type==="reasoning"?A+=1:A+=t.tool_calls.length;return A}function VZ(e){if(!(e!=null&&e.trim()))return"";const A=e.indexOf(`
276
- `);return A===-1?e.trim():e.slice(0,A).trim()}function ZZ(e){for(let A=e.length-1;A>=0;A-=1){const t=e[A];if((t==null?void 0:t.type)==="reasoning")return VZ(t.content)}return""}function PZ({inProgress:e,elapsedSec:A,providerSummary:t,steps:r}){if(e)return`思考中 · 已用时 ${A}s`;const i=t==null?void 0:t.trim();if(i)return i;const n=ZZ(r);return n&&n.length<=OZ?n:`思考并执行了 ${HZ(r)} 个步骤`}function qZ({streaming:e,steps:A,toolMessages:t,toolStates:r}){if(e)return!0;for(const i of A)if(i.type==="tool_calls")for(const n of i.tool_calls){const a=t==null?void 0:t.find(s=>s.tool_call_id===n.id),o=J7({toolState:r==null?void 0:r[n.id],toolMessage:a,streaming:!1});if(o==="running"||o==="pending")return!0}return!1}const tp=new Map;function KZ(e,A){return`${e??"anonymous"}:${A}`}function zZ({cacheKey:e,active:A}){var c;const t=u.ref(0);let r=((c=tp.get(e))==null?void 0:c.startedAt)??null,i;function n(){return typeof A=="function"?A():A.value}function a(C=Date.now()){if(r===null){t.value=0;return}t.value=Math.max(0,Math.floor((C-r)/1e3))}function o(){r===null&&(r=Date.now(),tp.set(e,{startedAt:r}),a())}function s(){if(r===null)return;const C=Date.now();tp.set(e,{startedAt:r,completedAt:C}),a(C)}function l(){i!==void 0&&(clearInterval(i),i=void 0)}function g(){l(),i=setInterval(()=>a(),1e3)}return u.watch(()=>n(),C=>{if(C){o(),g();return}s(),l()},{immediate:!0}),u.onBeforeUnmount(l),{elapsedSec:t}}const WZ=["data-state","aria-busy"],XZ={key:0,class:"process-step-group__list"},jZ=u.defineComponent({name:"ProcessStepGroup",__name:"ProcessStepGroup",props:{steps:{},streaming:{type:Boolean},toolMessages:{},toolStates:{},providerSummary:{},messageId:{},groupIndex:{}},emits:["tool-action"],setup(e,{emit:A}){const t=e,r=A,i=u.ref(!1),n=u.computed(()=>KZ(t.messageId,t.groupIndex??0)),a=u.computed(()=>qZ({streaming:t.streaming===!0,steps:t.steps,toolMessages:t.toolMessages,toolStates:t.toolStates})),{elapsedSec:o}=zZ({cacheKey:n.value,active:a}),s=u.computed(()=>PZ({inProgress:a.value,elapsedSec:o.value,providerSummary:t.providerSummary,steps:t.steps})),l=u.computed(()=>a.value?"running":"ok");function g(){i.value=!i.value}return(c,C)=>(u.openBlock(),u.createElementBlock("div",{class:"process-step-group","data-state":l.value,"aria-busy":a.value?"true":void 0,"aria-label":"执行过程"},[u.createVNode(JS,{title:s.value,open:i.value,"expand-on-row-click":"","keep-content-when-open":!1,onToggle:g},{icon:u.withCtx(()=>[u.createVNode(u.unref(QS),{size:14})]),default:u.withCtx(()=>[e.steps.length?(u.openBlock(),u.createElementBlock("div",XZ,[(u.openBlock(!0),u.createElementBlock(u.Fragment,null,u.renderList(e.steps,(h,I)=>(u.openBlock(),u.createElementBlock(u.Fragment,{key:`group-step-${I}`},[h.type==="reasoning"?(u.openBlock(),u.createBlock(OS,{key:0,class:"process-step-group__item",content:h.content,streaming:e.streaming&&I===e.steps.length-1&&a.value,compact:""},null,8,["content","streaming"])):(u.openBlock(),u.createBlock($7,{key:1,class:"process-step-group__item","tool-calls":h.tool_calls,"tool-messages":e.toolMessages,"tool-states":e.toolStates,streaming:e.streaming&&I===e.steps.length-1&&a.value,"compact-header":"",onToolAction:C[0]||(C[0]=d=>r("tool-action",d))},u.createSlots({_:2},[c.$slots.tool?{name:"default",fn:u.withCtx(d=>[u.renderSlot(c.$slots,"tool",u.mergeProps({ref_for:!0},d),void 0,!0)]),key:"0"}:void 0]),1032,["tool-calls","tool-messages","tool-states","streaming"]))],64))),128))])):u.createCommentVNode("",!0)]),_:3},8,["title","open"])],8,WZ))}}),A6=ae(jZ,[["__scopeId","data-v-3bdb7f46"]]),$Z={key:0,class:"input-content__text"},AP={key:1,class:"input-content"},eP={key:0,class:"input-content__text"},tP=["href","aria-label"],rP=["src","alt"],iP={key:2,class:"input-content__reference"},nP=["src"],aP={key:4,class:"input-content__reference"},oP=["src"],sP={key:6,class:"input-content__reference"},lP=["href"],gP={key:8,class:"input-content__reference"},cP=576,uP=u.defineComponent({name:"InputContentParts",__name:"InputContentParts",props:{content:{}},setup(e){function A(o){const s=o.image_url.url??"";return Ql(s,{width:cP})}function t(o){return o.image_url.url??""}function r(o){return o.video_url.url??""}function i(o){return o.input_audio.url?o.input_audio.url:o.input_audio.data?`data:audio/${o.input_audio.format||"mpeg"};base64,${o.input_audio.data}`:""}function n(o){return o.file.file_url??""}function a(o){return o.type==="image_url"?o.image_url.file_id||"图片":o.type==="video_url"?o.video_url.file_id||"视频":o.type==="input_audio"?o.input_audio.file_id||"音频":o.type==="file"?o.file.filename||o.file.file_id||"文件":""}return(o,s)=>typeof e.content=="string"?(u.openBlock(),u.createElementBlock("span",$Z,u.toDisplayString(e.content),1)):(u.openBlock(),u.createElementBlock("span",AP,[(u.openBlock(!0),u.createElementBlock(u.Fragment,null,u.renderList(e.content,(l,g)=>(u.openBlock(),u.createElementBlock(u.Fragment,{key:g},[l.type==="text"?(u.openBlock(),u.createElementBlock("span",eP,u.toDisplayString(l.text),1)):l.type==="image_url"&&t(l)?(u.openBlock(),u.createElementBlock("a",{key:1,class:"input-content__media-link",href:t(l),target:"_blank",rel:"noreferrer","aria-label":`打开${a(l)}`},[u.createElementVNode("img",{class:"input-content__image",src:A(l),alt:a(l)},null,8,rP)],8,tP)):l.type==="image_url"?(u.openBlock(),u.createElementBlock("span",iP,u.toDisplayString(a(l)),1)):l.type==="video_url"&&r(l)?(u.openBlock(),u.createElementBlock("video",{key:3,class:"input-content__video",src:r(l),controls:"",preload:"metadata"},null,8,nP)):l.type==="video_url"?(u.openBlock(),u.createElementBlock("span",aP,u.toDisplayString(a(l)),1)):l.type==="input_audio"&&i(l)?(u.openBlock(),u.createElementBlock("audio",{key:5,class:"input-content__audio",src:i(l),controls:"",preload:"metadata"},null,8,oP)):l.type==="input_audio"?(u.openBlock(),u.createElementBlock("span",sP,u.toDisplayString(a(l)),1)):l.type==="file"&&n(l)?(u.openBlock(),u.createElementBlock("a",{key:7,class:"input-content__file",href:n(l),target:"_blank",rel:"noreferrer"},u.toDisplayString(a(l)),9,lP)):l.type==="file"?(u.openBlock(),u.createElementBlock("span",gP,u.toDisplayString(a(l)),1)):u.createCommentVNode("",!0)],64))),128))]))}}),hP=ae(uP,[["__scopeId","data-v-4ed892a8"]]),CP=/<summary\b[^>]*>[\s\S]*?<\/summary\s*>/gi,IP=/<summary\b/gi;function JE(e){return e?fP(dP(e)):""}function b4(e){var t;if(!e)return"";const A=/<summary\b[^>]*>([\s\S]*?)<\/summary\s*>/i.exec(e);return((t=A==null?void 0:A[1])==null?void 0:t.trim())??""}function dP(e){const A=e.replace(CP,""),t=[...A.matchAll(IP)],r=t[t.length-1];return(r==null?void 0:r.index)!==void 0?A.slice(0,r.index):A}function fP(e){return e.trim()?e.replace(/^(?:[\t ]*\r?\n)+/,"").replace(/(?:\r?\n[\t ]*)+$/,"").replace(/(?:\r?\n[\t ]*){3,}/g,`
275
+ `);return MA===-1?gA:gA.slice(0,MA)}),F=u.computed(()=>{if(_.value)return[_.value];const gA=[];return HV(t.toolCall.function.name)||gA.push(t.toolCall.function.name),N.value&&gA.push(N.value),gA}),R=u.computed(()=>{var MA;if(!t.compactHeader)return F.value;if(_.value)return[_.value];if(h.value&&N.value)return[N.value];const gA=(MA=N.value)==null?void 0:MA.trim();return gA?[gA]:[]}),Y=u.computed(()=>f.value||p.value||s.value!=="running"&&s.value!=="pending"?!1:c.value.trim().length>0),q=u.computed(()=>s.value==="error"?"error":s.value==="cancelled"||s.value==="denied"?"warning":"icon");function Z(gA){return h.value?!1:gA==="requires-approval"||gA==="requires-action"}const O=u.ref(Z(s.value)),eA=u.ref(!1),tA=u.ref(!1),T=u.ref(null),AA=u.ref(),P=u.ref(0);let K;function iA(){const gA=AA.value;gA&&(P.value=gA.scrollHeight)}u.watch(AA,gA=>{K==null||K.disconnect(),K=void 0,gA&&(iA(),typeof ResizeObserver<"u"&&(K=new ResizeObserver(iA),K.observe(gA)))},{immediate:!0,flush:"post"}),u.onBeforeUnmount(()=>K==null?void 0:K.disconnect());const lA=u.computed(()=>({height:O.value?`${P.value}px`:"0px"})),vA=u.ref();let FA;function ZA(){const gA=vA.value;if(!gA){tA.value=!1;return}eA.value||(tA.value=gA.scrollHeight>GZ+1)}u.watch(vA,gA=>{FA==null||FA.disconnect(),FA=void 0,gA&&(ZA(),typeof ResizeObserver<"u"&&(FA=new ResizeObserver(ZA),FA.observe(gA)))},{immediate:!0,flush:"post"}),u.onBeforeUnmount(()=>FA==null?void 0:FA.disconnect());function RA(){O.value=!O.value}function qA(){eA.value=!eA.value,eA.value||ZA()}function GA(gA){(gA==="approve"||gA==="submit-action")&&!B.value||(T.value=gA,r("tool-action",{action:gA,toolCall:t.toolCall,arguments:c.value}))}function me(gA){if(gA===void 0||gA==="")return"";if(typeof gA=="string")try{return JSON.stringify(JSON.parse(gA),null,2)}catch{return gA}try{return JSON.stringify(gA,null,2)}catch{return String(gA)}}function oe(gA){if(gA)try{return JSON.parse(gA)}catch{return gA}}function Se(gA){return typeof gA=="object"&&gA!==null&&!Array.isArray(gA)}function kA(gA){if(!Se(gA)||!("mdoc"in gA))return gA;const MA={...gA};return delete MA.mdoc,MA}function WA(gA){return/[\\/]|\.[a-zA-Z0-9]{1,8}$/.test(gA)}return u.watch(s,gA=>{O.value=Z(gA),T.value=null,Z(gA)||(eA.value=!1)}),u.watch(h,gA=>{gA&&(O.value=!1,eA.value=!1)}),u.watch(()=>{var gA;return[(gA=t.toolState)==null?void 0:gA.arguments,t.toolCall.function.arguments]},([gA,MA])=>{n.value=gA??MA}),(gA,MA)=>(u.openBlock(),u.createElementBlock("div",{class:u.normalizeClass(["tool-call-part",`tool-call-part--${s.value}`]),"data-tool-call-id":e.toolCall.id,"data-state":l.value,"aria-label":`${v.value}:${k.value}`,"aria-busy":s.value==="pending"||s.value==="running"?"true":"false"},[b.value?(u.openBlock(),u.createElementBlock("span",IZ,u.toDisplayString(b.value),1)):u.createCommentVNode("",!0),u.createElementVNode("div",dZ,[u.createElementVNode("button",{type:"button",class:u.normalizeClass(["tool-call-part__header",{"tool-call-part__header--open":O.value}]),"aria-expanded":O.value,"data-testid":"tool-call-header",onClick:RA},[u.createElementVNode("span",BZ,[q.value==="error"?(u.openBlock(),u.createBlock(SE,{key:0,class:u.normalizeClass(["tool-call-part__state-dot",{"tool-call-part__state-dot--hidden":O.value}]),state:"error"},null,8,["class"])):q.value==="warning"?(u.openBlock(),u.createBlock(SE,{key:1,class:u.normalizeClass(["tool-call-part__state-dot",{"tool-call-part__state-dot--hidden":O.value}]),state:"warning"},null,8,["class"])):(u.openBlock(),u.createBlock(u.resolveDynamicComponent(S.value),{key:2,class:u.normalizeClass(["tool-call-part__indicator",{"tool-call-part__indicator--hidden":O.value}]),size:14},null,8,["class"])),u.createVNode(u.unref(Tu),{class:u.normalizeClass(["tool-call-part__chevron",{"tool-call-part__chevron--open":O.value}]),size:14},null,8,["class"])]),u.createElementVNode("span",pZ,u.toDisplayString(w.value),1),R.value.length?(u.openBlock(!0),u.createElementBlock(u.Fragment,{key:0},u.renderList(R.value,(pe,xe)=>(u.openBlock(),u.createElementBlock(u.Fragment,{key:`${xe}-${pe.slice(0,24)}`},[MA[5]||(MA[5]=u.createElementVNode("span",{class:"tool-call-part__sep","aria-hidden":"true"},null,-1)),u.createElementVNode("span",{class:u.normalizeClass(["tool-call-part__summary",{"tool-call-part__summary--path":!_.value&&WA(pe),"tool-call-part__summary--error":!!_.value||s.value==="error"}])},u.toDisplayString(pe),3)],64))),128)):u.createCommentVNode("",!0)],10,fZ),u.createElementVNode("div",{class:u.normalizeClass(["tool-call-part__body-wrapper",{"tool-call-part__body-wrapper--open":O.value}]),style:u.normalizeStyle(lA.value),inert:!O.value,"aria-hidden":!O.value},[u.createElementVNode("div",{ref_key:"bodyContentRef",ref:AA,class:"tool-call-part__body"},[f.value?(u.openBlock(),u.createElementBlock("div",EZ,[u.withDirectives(u.createElementVNode("textarea",{"onUpdate:modelValue":MA[0]||(MA[0]=pe=>n.value=pe),class:"tool-call-part__editor","aria-label":"工具参数 JSON",rows:"5"},null,512),[[u.vModelText,n.value]]),B.value?u.createCommentVNode("",!0):(u.openBlock(),u.createElementBlock("p",mZ," 参数必须是有效的 JSON "))])):d.value?(u.openBlock(),u.createElementBlock("section",vZ,[(u.openBlock(),u.createBlock(u.resolveDynamicComponent(g.value),{"tool-call":e.toolCall,status:s.value,result:a.value,error:o.value,message:e.toolMessage,"is-streaming":e.isStreaming===!0},null,8,["tool-call","status","result","error","message","is-streaming"]))])):E.value?(u.openBlock(),u.createElementBlock("div",yZ,[m.value?(u.openBlock(),u.createElementBlock("div",wZ,[MA[6]||(MA[6]=u.createElementVNode("span",{class:"tool-call-part__io-label"},"IN",-1)),u.createElementVNode("div",{class:u.normalizeClass(["tool-call-part__details-clamp",{"tool-call-part__details-clamp--fade":tA.value&&!eA.value,"tool-call-part__details-clamp--expanded":eA.value}])},[u.createElementVNode("pre",{ref_key:"detailsPreRef",ref:vA,class:u.normalizeClass(["tool-call-part__streaming-arguments",{"tool-call-part__streaming-arguments--streaming":Y.value}])},u.toDisplayString(Q.value),3)],2),tA.value||eA.value?(u.openBlock(),u.createElementBlock("button",{key:0,type:"button",class:"tool-call-part__more","aria-expanded":eA.value,onClick:u.withModifiers(qA,["stop"])},u.toDisplayString(eA.value?"收起":"展开更多"),9,DZ)):u.createCommentVNode("",!0)])):u.createCommentVNode("",!0),m.value&&C.value?(u.openBlock(),u.createElementBlock("span",kZ)):u.createCommentVNode("",!0),C.value?(u.openBlock(),u.createElementBlock("div",bZ,[MA[7]||(MA[7]=u.createElementVNode("span",{class:"tool-call-part__io-label"},"OUT",-1)),u.createElementVNode("pre",{class:"tool-call-part__result-text","data-error":s.value==="error"||void 0},u.toDisplayString(C.value),9,SZ)])):u.createCommentVNode("",!0)])):u.createCommentVNode("",!0),o.value&&!_.value?(u.openBlock(),u.createElementBlock("p",NZ,u.toDisplayString(o.value),1)):u.createCommentVNode("",!0),s.value==="requires-approval"?(u.openBlock(),u.createElementBlock("div",xZ,[u.createElementVNode("button",{type:"button","data-testid":"tool-deny",disabled:T.value!==null,onClick:MA[1]||(MA[1]=pe=>GA("deny"))},u.toDisplayString(T.value==="deny"?"处理中…":"拒绝"),9,_Z),u.createElementVNode("button",{type:"button","data-testid":"tool-approve",disabled:T.value!==null||f.value&&!B.value,onClick:MA[2]||(MA[2]=pe=>GA("approve"))},u.toDisplayString(T.value==="approve"?"处理中…":"允许"),9,FZ)])):s.value==="requires-action"?(u.openBlock(),u.createElementBlock("div",MZ,[u.createElementVNode("button",{type:"button",disabled:T.value!==null,onClick:MA[3]||(MA[3]=pe=>GA("cancel"))},u.toDisplayString(T.value==="cancel"?"处理中…":"取消"),9,RZ),u.createElementVNode("button",{type:"button",disabled:T.value!==null||f.value&&!B.value,onClick:MA[4]||(MA[4]=pe=>GA("submit-action"))},u.toDisplayString(T.value==="submit-action"?"处理中…":"继续"),9,LZ)])):u.createCommentVNode("",!0)],512)],14,QZ)])],10,CZ))}}),j7=ae(TZ,[["__scopeId","data-v-b572cc7d"]]),YZ={class:"chat-tool-group",role:"group","aria-label":"工具调用"},UZ=["title"],JZ=u.defineComponent({__name:"ChatToolGroup",props:{toolCalls:{},toolMessages:{},toolStates:{},streaming:{type:Boolean},summary:{},compactHeader:{type:Boolean}},emits:["tool-action"],setup(e,{emit:A}){const t=A;function r(i,n){return i==null?void 0:i.find(a=>a.tool_call_id===n)}return(i,n)=>{var a;return u.openBlock(),u.createElementBlock("div",YZ,[(a=e.summary)!=null&&a.trim()&&!e.compactHeader?(u.openBlock(),u.createElementBlock("p",{key:0,class:"chat-tool-group__summary",title:e.summary},u.toDisplayString(e.summary),9,UZ)):u.createCommentVNode("",!0),(u.openBlock(!0),u.createElementBlock(u.Fragment,null,u.renderList(e.toolCalls,(o,s)=>u.renderSlot(i.$slots,"default",{key:o.id,toolCall:o,toolMessage:r(e.toolMessages,o.id),streaming:e.streaming===!0&&s===e.toolCalls.length-1},()=>{var l;return[u.createVNode(j7,{"tool-call":o,"tool-message":r(e.toolMessages,o.id),"tool-state":(l=e.toolStates)==null?void 0:l[o.id],"is-streaming":e.streaming===!0&&s===e.toolCalls.length-1,"is-first":s===0,"is-last":s===e.toolCalls.length-1,"compact-header":e.compactHeader===!0,onToolAction:n[0]||(n[0]=g=>t("tool-action",g))},null,8,["tool-call","tool-message","tool-state","is-streaming","is-first","is-last","compact-header"])]},!0)),128))])}}}),$7=ae(JZ,[["__scopeId","data-v-fdd9ee48"]]),OZ=120;function HZ(e){let A=0;for(const t of e)t.type==="reasoning"?A+=1:A+=t.tool_calls.length;return A}function VZ(e){if(!(e!=null&&e.trim()))return"";const A=e.indexOf(`
276
+ `);return A===-1?e.trim():e.slice(0,A).trim()}function ZZ(e){for(let A=e.length-1;A>=0;A-=1){const t=e[A];if((t==null?void 0:t.type)==="reasoning")return VZ(t.content)}return""}function PZ({inProgress:e,elapsedSec:A,providerSummary:t,steps:r}){if(e)return`思考中 · 已用时 ${A}s`;const i=t==null?void 0:t.trim();if(i)return i;const n=ZZ(r);return n&&n.length<=OZ?n:`思考并执行了 ${HZ(r)} 个步骤`}function qZ({streaming:e,steps:A,toolMessages:t,toolStates:r}){if(e)return!0;for(const i of A)if(i.type==="tool_calls")for(const n of i.tool_calls){const a=t==null?void 0:t.find(s=>s.tool_call_id===n.id);if(J7({toolState:r==null?void 0:r[n.id],toolMessage:a,streaming:!1})==="running")return!0}return!1}const tp=new Map;function KZ(e,A){return`${e??"anonymous"}:${A}`}function zZ({cacheKey:e,active:A}){var c;const t=u.ref(0);let r=((c=tp.get(e))==null?void 0:c.startedAt)??null,i;function n(){return typeof A=="function"?A():A.value}function a(C=Date.now()){if(r===null){t.value=0;return}t.value=Math.max(0,Math.floor((C-r)/1e3))}function o(){r===null&&(r=Date.now(),tp.set(e,{startedAt:r}),a())}function s(){if(r===null)return;const C=Date.now();tp.set(e,{startedAt:r,completedAt:C}),a(C)}function l(){i!==void 0&&(clearInterval(i),i=void 0)}function g(){l(),i=setInterval(()=>a(),1e3)}return u.watch(()=>n(),C=>{if(C){o(),g();return}s(),l()},{immediate:!0}),u.onBeforeUnmount(l),{elapsedSec:t}}const WZ=["data-state","aria-busy"],XZ={key:0,class:"process-step-group__list"},jZ=u.defineComponent({name:"ProcessStepGroup",__name:"ProcessStepGroup",props:{steps:{},streaming:{type:Boolean},toolMessages:{},toolStates:{},providerSummary:{},messageId:{},groupIndex:{}},emits:["tool-action"],setup(e,{emit:A}){const t=e,r=A,i=u.ref(!1),n=u.computed(()=>KZ(t.messageId,t.groupIndex??0)),a=u.computed(()=>qZ({streaming:t.streaming===!0,steps:t.steps,toolMessages:t.toolMessages,toolStates:t.toolStates})),{elapsedSec:o}=zZ({cacheKey:n.value,active:a}),s=u.computed(()=>PZ({inProgress:a.value,elapsedSec:o.value,providerSummary:t.providerSummary,steps:t.steps})),l=u.computed(()=>a.value?"running":"ok");function g(){i.value=!i.value}return(c,C)=>(u.openBlock(),u.createElementBlock("div",{class:"process-step-group","data-state":l.value,"aria-busy":a.value?"true":void 0,"aria-label":"执行过程"},[u.createVNode(JS,{title:s.value,open:i.value,"expand-on-row-click":"","keep-content-when-open":!1,onToggle:g},{icon:u.withCtx(()=>[u.createVNode(u.unref(QS),{size:14})]),default:u.withCtx(()=>[e.steps.length?(u.openBlock(),u.createElementBlock("div",XZ,[(u.openBlock(!0),u.createElementBlock(u.Fragment,null,u.renderList(e.steps,(h,I)=>(u.openBlock(),u.createElementBlock(u.Fragment,{key:`group-step-${I}`},[h.type==="reasoning"?(u.openBlock(),u.createBlock(OS,{key:0,class:"process-step-group__item",content:h.content,streaming:e.streaming&&I===e.steps.length-1&&a.value,compact:""},null,8,["content","streaming"])):(u.openBlock(),u.createBlock($7,{key:1,class:"process-step-group__item","tool-calls":h.tool_calls,"tool-messages":e.toolMessages,"tool-states":e.toolStates,streaming:e.streaming&&I===e.steps.length-1&&a.value,"compact-header":"",onToolAction:C[0]||(C[0]=d=>r("tool-action",d))},u.createSlots({_:2},[c.$slots.tool?{name:"default",fn:u.withCtx(d=>[u.renderSlot(c.$slots,"tool",u.mergeProps({ref_for:!0},d),void 0,!0)]),key:"0"}:void 0]),1032,["tool-calls","tool-messages","tool-states","streaming"]))],64))),128))])):u.createCommentVNode("",!0)]),_:3},8,["title","open"])],8,WZ))}}),A6=ae(jZ,[["__scopeId","data-v-e504b103"]]),$Z={key:0,class:"input-content__text"},AP={key:1,class:"input-content"},eP={key:0,class:"input-content__text"},tP=["href","aria-label"],rP=["src","alt"],iP={key:2,class:"input-content__reference"},nP=["src"],aP={key:4,class:"input-content__reference"},oP=["src"],sP={key:6,class:"input-content__reference"},lP=["href"],gP={key:8,class:"input-content__reference"},cP=576,uP=u.defineComponent({name:"InputContentParts",__name:"InputContentParts",props:{content:{}},setup(e){function A(o){const s=o.image_url.url??"";return Ql(s,{width:cP})}function t(o){return o.image_url.url??""}function r(o){return o.video_url.url??""}function i(o){return o.input_audio.url?o.input_audio.url:o.input_audio.data?`data:audio/${o.input_audio.format||"mpeg"};base64,${o.input_audio.data}`:""}function n(o){return o.file.file_url??""}function a(o){return o.type==="image_url"?o.image_url.file_id||"图片":o.type==="video_url"?o.video_url.file_id||"视频":o.type==="input_audio"?o.input_audio.file_id||"音频":o.type==="file"?o.file.filename||o.file.file_id||"文件":""}return(o,s)=>typeof e.content=="string"?(u.openBlock(),u.createElementBlock("span",$Z,u.toDisplayString(e.content),1)):(u.openBlock(),u.createElementBlock("span",AP,[(u.openBlock(!0),u.createElementBlock(u.Fragment,null,u.renderList(e.content,(l,g)=>(u.openBlock(),u.createElementBlock(u.Fragment,{key:g},[l.type==="text"?(u.openBlock(),u.createElementBlock("span",eP,u.toDisplayString(l.text),1)):l.type==="image_url"&&t(l)?(u.openBlock(),u.createElementBlock("a",{key:1,class:"input-content__media-link",href:t(l),target:"_blank",rel:"noreferrer","aria-label":`打开${a(l)}`},[u.createElementVNode("img",{class:"input-content__image",src:A(l),alt:a(l)},null,8,rP)],8,tP)):l.type==="image_url"?(u.openBlock(),u.createElementBlock("span",iP,u.toDisplayString(a(l)),1)):l.type==="video_url"&&r(l)?(u.openBlock(),u.createElementBlock("video",{key:3,class:"input-content__video",src:r(l),controls:"",preload:"metadata"},null,8,nP)):l.type==="video_url"?(u.openBlock(),u.createElementBlock("span",aP,u.toDisplayString(a(l)),1)):l.type==="input_audio"&&i(l)?(u.openBlock(),u.createElementBlock("audio",{key:5,class:"input-content__audio",src:i(l),controls:"",preload:"metadata"},null,8,oP)):l.type==="input_audio"?(u.openBlock(),u.createElementBlock("span",sP,u.toDisplayString(a(l)),1)):l.type==="file"&&n(l)?(u.openBlock(),u.createElementBlock("a",{key:7,class:"input-content__file",href:n(l),target:"_blank",rel:"noreferrer"},u.toDisplayString(a(l)),9,lP)):l.type==="file"?(u.openBlock(),u.createElementBlock("span",gP,u.toDisplayString(a(l)),1)):u.createCommentVNode("",!0)],64))),128))]))}}),hP=ae(uP,[["__scopeId","data-v-4ed892a8"]]),CP=/<summary\b[^>]*>[\s\S]*?<\/summary\s*>/gi,IP=/<summary\b/gi;function JE(e){return e?fP(dP(e)):""}function b4(e){var t;if(!e)return"";const A=/<summary\b[^>]*>([\s\S]*?)<\/summary\s*>/i.exec(e);return((t=A==null?void 0:A[1])==null?void 0:t.trim())??""}function dP(e){const A=e.replace(CP,""),t=[...A.matchAll(IP)],r=t[t.length-1];return(r==null?void 0:r.index)!==void 0?A.slice(0,r.index):A}function fP(e){return e.trim()?e.replace(/^(?:[\t ]*\r?\n)+/,"").replace(/(?:\r?\n[\t ]*)+$/,"").replace(/(?:\r?\n[\t ]*){3,}/g,`
277
277
 
278
278
  `):""}function BP(e,A,t,r){A.length===0&&!t||e.push({kind:"process_group",steps:[...A],...t?{providerSummary:t}:{},segmentIndex:r})}function pP(e){var o;const A=[];let t=[],r,i=0,n=0;function a(){BP(A,t,r,i),(t.length>0||r)&&(i+=1),t=[],r=void 0}for(const s of e){if(s.type==="reasoning"){t.push(s);continue}if(s.type==="tool_calls"){"summary"in s&&((o=s.summary)!=null&&o.trim())&&(r=s.summary.trim()),t.push(s);continue}a(),A.push({kind:"content",content:s.content,contentIndex:n}),n+=1}return a(),A}function QP({reasoningContent:e,toolCalls:A=[],providerSummary:t,answerContent:r,includeEmptyProcessGroup:i=!1}){const n=[],a=[],o=e==null?void 0:e.trim();o&&a.push({type:"reasoning",content:o}),A.length>0&&a.push({type:"tool_calls",tool_calls:[...A]}),(a.length>0||i)&&n.push({kind:"process_group",steps:a,...t!=null&&t.trim()?{providerSummary:t.trim()}:{},segmentIndex:0});const s=r==null?void 0:r.trim();return s&&n.push({kind:"content",content:s,contentIndex:0}),n}const e6=["book","file","link","list","doc","folder"],EP={book:["M4 19.5A2.5 2.5 0 0 1 6.5 17H20","M6.5 2H20v20H6.5A2.5 2.5 0 0 1 4 19.5v-15A2.5 2.5 0 0 1 6.5 2z"],file:["M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8z","M14 2v6h6"],link:["M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71","M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71"],list:["M8 6h13","M8 12h13","M8 18h13","M3 6h.01","M3 12h.01","M3 18h.01"],doc:["M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8z","M14 2v6h6","M16 13H8","M16 17H8","M10 9H8"],folder:["M22 19a2 2 0 0 1-2 2H4a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h5l2 3h9a2 2 0 0 1 2 2z"],default:["M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6","M15 3h6v6","M10 14L21 3"]};function t6(e){return e&&e6.includes(e)?e:"default"}function r6(e){const A=String(e.title??"").trim(),t=String(e.href??"").trim();return A.length>0&&t.length>0}const mP={class:"action-bar-wrap"},vP=["aria-label"],yP={class:"action-bar__left"},wP={class:"action-bar__icon","aria-hidden":"true"},DP=["src"],kP={key:1,xmlns:"http://www.w3.org/2000/svg",width:"18",height:"18",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"1.5","stroke-linecap":"round","stroke-linejoin":"round"},bP=["d"],SP={class:"action-bar__title"},NP={class:"action-bar__action"},xP=u.defineComponent({name:"ActionBar",__name:"ActionBar",props:{node:{}},emits:["action"],setup(e,{emit:A}){const t=e,r=A,i=u.computed(()=>String(t.node.props.title??"")),n=u.computed(()=>String(t.node.props.href??"")),a=u.computed(()=>{const h=t.node.props.action;return h==null||String(h).trim()===""?"查看":String(h)}),o=u.computed(()=>{const h=t.node.props.iconSrc;if(!(h==null||String(h).trim()===""))return String(h)}),s=u.computed(()=>t6(t.node.props.icon??"book")),l=u.computed(()=>EP[s.value]),g=u.computed(()=>String(t.node.props.id??t.node.id)),c=u.computed(()=>String(t.node.props.nav??"href").trim()==="route"?"route":"href");function C(){r("action",{type:"action-bar",source:"action-bar",id:g.value,title:i.value,href:n.value,nav:c.value,actionLabel:a.value,icon:s.value,iconSrc:o.value})}return(h,I)=>(u.openBlock(),u.createElementBlock("div",mP,[u.createElementVNode("button",{type:"button",class:"action-bar","data-testid":"action-bar","aria-label":`${a.value}:${i.value}`,onClick:C},[u.createElementVNode("span",yP,[u.createElementVNode("span",wP,[o.value?(u.openBlock(),u.createElementBlock("img",{key:0,class:"action-bar__icon-img",src:o.value,alt:""},null,8,DP)):(u.openBlock(),u.createElementBlock("svg",kP,[(u.openBlock(!0),u.createElementBlock(u.Fragment,null,u.renderList(l.value,(d,f)=>(u.openBlock(),u.createElementBlock("path",{key:f,d},null,8,bP))),128))]))]),u.createElementVNode("span",SP,u.toDisplayString(i.value),1)]),u.createElementVNode("span",NP,u.toDisplayString(a.value),1)],8,vP)]))}}),_P=ae(xP,[["__scopeId","data-v-ca4a7b46"]]),FP=["html","code","markdown","text"];function yl(e){return FP.includes(e)}const MP={javascript:"js",js:"js",typescript:"ts",ts:"ts",python:"py",py:"py",java:"java",go:"go",rust:"rs",c:"c",cpp:"cpp","c++":"cpp",csharp:"cs","c#":"cs",ruby:"rb",php:"php",shell:"sh",bash:"sh",sql:"sql",json:"json",yaml:"yaml",html:"html",css:"css",vue:"vue"};function RP(e){return e?MP[e.toLowerCase()]??"txt":"txt"}function LP(e,A){switch(e){case"html":return{extension:"html",mime:"text/html"};case"code":return{extension:RP(A),mime:"text/plain"};case"markdown":return{extension:"md",mime:"text/markdown"};default:return{extension:"txt",mime:"text/plain"}}}const S4={pdf:"PDF",word:"Word",excel:"Excel",ppt:"PPT",image:"Image",audio:"Audio",video:"Video",zip:"Archive",file:"File"},GP={html:"Code · HTML",code:"Code",markdown:"Document · Markdown",text:"Text"};function TP(e,A={}){if(yl(e))return e==="code"&&A.language?`Code · ${A.language.toUpperCase()}`:GP[e];const t=S4[e??"file"]??S4.file;return A.size?`${t} · ${A.size}`:t}function YP(e){return e.trim().replace(/[/\\?%*:|"<>]/g,"_")||"artifact"}function N4(e,A){const t=document.createElement("a");t.href=e,t.download=A,t.target="_blank",t.rel="noopener noreferrer",t.style.display="none",document.body.appendChild(t),t.click(),t.remove()}function Rf(e){const{title:A,type:t,language:r,content:i,src:n}=e;if(yl(t)&&i!=null){const{extension:a,mime:o}=LP(t,r),s=new Blob([i],{type:o}),l=URL.createObjectURL(s);try{N4(l,`${YP(A)}.${a}`)}finally{URL.revokeObjectURL(l)}return}n&&N4(n,A)}const UP={pdf:"pdf",word:"docx",excel:"xlsx",ppt:"pptx",image:"png",audio:"mp3",video:"mp4",html:"html",markdown:"md",text:"txt",code:"txt",zip:"zip",file:""},JP=new Set(["pdf","word","excel","ppt","html","markdown"]),OP=new Set(["pdf","docx","xls","xlsx","ppt","pptx","html","htm","md","markdown"]),i6=new Set(["avif","bmp","gif","heic","jpeg","jpg","png","svg","webp"]),HP=new Set([...i6,"aac","flac","m4a","mp3","oga","ogg","wav","avi","m4v","mkv","mov","mp4","webm","css","js","mjs","cjs","ts","tsx","jsx","xml","xhtml","txt","json","csv"]);function VP(e){try{const A=new URL(e,"https://artifact.local").pathname;return va(A)}catch{return va(e.split("?")[0]??e)}}function n6(e){const A=e.title?va(e.title):"";if(A)return A;const t=e.src?VP(e.src):"";return t||(UP[e.type]??"")}function Ih(e){var r;const A=n6(e);return{filename:((r=e.title)==null?void 0:r.trim())||(A?`artifact.${A}`:"artifact"),url_type:A,size:0,original_url:e.src}}function a6(e){return k0(Ih({title:e.title,type:e.type,src:e.src??""}))}function ZP(e){try{const A=new URL(e,typeof window<"u"?window.location.href:"https://artifact.local");if(A.protocol!=="http:"&&A.protocol!=="https:"&&A.protocol!=="blob:")return!1;const t=A.pathname;return!!(t.endsWith("/")||!va(t))}catch{return!1}}function PP(e,A){return JP.has(e)||OP.has(A)}function qP(e,A,t){return e==="image"||t==="image"||i6.has(A)}function KP(e,A){return!!(e&&HP.has(e)||A&&ZP(A))}function h1(e){var n,a;if(((n=e.content)==null?void 0:n.trim())&&yl(e.type))return"sidebar";const t=(a=e.src)==null?void 0:a.trim();if(!t)return yl(e.type)?"sidebar":"download";const r=n6({type:e.type,title:e.title,src:t}),i=a6({type:e.type,title:e.title,src:t});return qP(e.type,r,i)?"lightbox":PP(e.type,r)?"sidebar":KP(r,t)?"new-tab":"download"}function C1(e){typeof window>"u"||window.open(e,"_blank","noopener,noreferrer")}const zP={class:"artifact-wrapper"},WP={class:"artifact-block"},XP=["aria-label"],jP={class:"artifact-cell"},$P={class:"artifact-left"},Aq={class:"artifact-info"},eq={class:"artifact-title"},tq={class:"artifact-subtitle"},rq={class:"artifact-actions"},iq=["aria-label"],nq=u.defineComponent({name:"ArtifactBlock",__name:"ArtifactBlock",props:{node:{}},emits:["action"],setup(e,{emit:A}){const t=e,r=A,i=u.computed(()=>String(t.node.props.title??"")),n=u.computed(()=>String(t.node.props.type??"text")),a=u.computed(()=>t.node.props.language),o=u.computed(()=>t.node.props.src),s=u.computed(()=>t.node.props.size),l=u.computed(()=>t.node.slotText),g=u.computed(()=>String(t.node.props.id??t.node.id)),c=u.computed(()=>yl(n.value)),C=u.computed(()=>{var E;return c.value&&!!((E=l.value)!=null&&E.trim())}),h=u.computed(()=>TP(n.value,{language:a.value,size:s.value})),I=u.ref(!1),d=u.ref([]);function f(){return{type:"open-artifact",source:"artifact",artifactId:g.value,title:i.value,artifactType:n.value,language:a.value,content:C.value?l.value:void 0,src:o.value}}function B(E){d.value=[Ih({title:i.value,type:n.value,src:E})],I.value=!0}function p(){const E=h1({type:n.value,title:i.value,src:o.value,content:C.value?l.value:void 0});if(E==="sidebar"){r("action",f());return}if(E==="lightbox"&&o.value){B(o.value);return}if(E==="new-tab"&&o.value){C1(o.value);return}Q()}function Q(){Rf({title:i.value,type:n.value,language:a.value,content:C.value?l.value:void 0,src:o.value})}return(E,m)=>(u.openBlock(),u.createElementBlock("div",zP,[u.createElementVNode("div",WP,[u.createElementVNode("button",{type:"button",class:"artifact-btn-overlay","data-testid":"artifact-block","aria-label":`View ${i.value}`,onClick:p},null,8,XP),u.createElementVNode("div",jP,[u.createElementVNode("div",$P,[m[1]||(m[1]=u.createElementVNode("div",{class:"artifact-thumb-wrap","aria-hidden":"true"},[u.createElementVNode("div",{class:"artifact-thumb"},[u.createElementVNode("svg",{xmlns:"http://www.w3.org/2000/svg",width:"20",height:"20",fill:"currentColor",viewBox:"0 0 256 256"},[u.createElementVNode("path",{d:"M67.84,92.61,25.37,128l42.47,35.39a6,6,0,1,1-7.68,9.22l-48-40a6,6,0,0,1,0-9.22l48-40a6,6,0,0,1,7.68,9.22Zm176,30.78-48-40a6,6,0,1,0-7.68,9.22L230.63,128l-42.47,35.39a6,6,0,1,0,7.68,9.22l48-40a6,6,0,0,0,0-9.22Zm-81.79-89A6,6,0,0,0,154.36,38l-64,176A6,6,0,0,0,94,221.64a6.15,6.15,0,0,0,2,.36,6,6,0,0,0,5.64-3.95l64-176A6,6,0,0,0,162.05,34.36Z"})])])],-1)),u.createElementVNode("div",Aq,[u.createElementVNode("div",eq,u.toDisplayString(i.value),1),u.createElementVNode("div",tq,u.toDisplayString(h.value),1)])]),u.createElementVNode("div",rq,[u.createElementVNode("button",{type:"button",class:"artifact-download-btn","data-testid":"artifact-block-download","aria-label":`下载 ${i.value}`,onClick:u.withModifiers(Q,["stop"])},[...m[2]||(m[2]=[u.createElementVNode("span",null,"下载",-1)])],8,iq)])])]),u.createVNode(bf,{open:I.value,images:d.value,index:0,"onUpdate:open":m[0]||(m[0]=v=>I.value=v)},null,8,["open","images"])]))}}),aq=ae(nq,[["__scopeId","data-v-05208ba3"]]);/*! *****************************************************************************
279
279
  Copyright (c) Microsoft Corporation.
@@ -643,13 +643,13 @@ l0,-`+(t+144)+`c-2,-159.3,-10,-310.7,-24,-454c-53.3,-528,-210,-949.7,
643
643
  please report what input caused this bug`);return r=r.slice(1,-1),{type:"verb",mode:"text",body:r,star:i}}D8.hasOwnProperty(t[0])&&!xt[this.mode][t[0]]&&(this.settings.strict&&this.mode==="math"&&this.settings.reportNonstrict("unicodeTextInMathMode",'Accented Unicode text character "'+t[0]+'" used in math mode',A),t=D8[t[0]]+t.slice(1));var n=LdA.exec(t);n&&(t=t.substring(0,n.index),t==="i"?t="ı":t==="j"&&(t="ȷ"));var a;if(xt[this.mode][t]){this.settings.strict&&this.mode==="math"&&Ev.includes(t)&&this.settings.reportNonstrict("unicodeTextInMathMode",'Latin-1/Unicode text character "'+t[0]+'" used in math mode',A);var o=xt[this.mode][t].group,s=Si.range(A),l;if(GIA.hasOwnProperty(o)){var g=o;l={type:"atom",mode:this.mode,family:g,loc:s,text:t}}else l={type:o,mode:this.mode,loc:s,text:t};a=l}else if(t.charCodeAt(0)>=128)this.settings.strict&&(eM(t.charCodeAt(0))?this.mode==="math"&&this.settings.reportNonstrict("unicodeTextInMathMode",'Unicode text character "'+t[0]+'" used in math mode',A):this.settings.reportNonstrict("unknownSymbol",'Unrecognized Unicode character "'+t[0]+'"'+(" ("+t.charCodeAt(0)+")"),A)),a={type:"textord",mode:"text",loc:Si.range(A),text:t};else return null;if(this.consume(),n)for(var c=0;c<n[0].length;c++){var C=n[0][c];if(!oE[C])throw new wA("Unknown accent ' "+C+"'",A);var h=oE[C][this.mode]||oE[C].text;if(!h)throw new wA("Accent "+C+" unsupported in "+this.mode+" mode",A);a={type:"accent",mode:this.mode,loc:Si.range(A),label:h,isStretchy:!1,isShifty:!0,base:a}}return a}}RB.endOfExpression=new Set(["}","\\endgroup","\\end","\\right","&"]);var ly=function(A,t){if(!(typeof A=="string"||A instanceof String))throw new TypeError("KaTeX can only parse string typed expression");var r=new RB(A,t);delete r.gullet.macros.current["\\df@tag"];var i=r.parse();if(delete r.gullet.macros.current["\\current@color"],delete r.gullet.macros.current["\\color"],r.gullet.macros.get("\\df@tag")){if(!t.displayMode)throw new wA("\\tag works only in display equations");i=[{type:"tag",mode:"text",body:i,tag:r.subparse([new Pi("\\df@tag")])}]}return i},zM=function(A,t,r){t.textContent="";var i=gy(A,r).toNode();t.appendChild(i)};typeof document<"u"&&document.compatMode!=="CSS1Compat"&&(typeof console<"u"&&console.warn("Warning: KaTeX doesn't work in quirks mode. Make sure your website has a suitable doctype."),zM=function(){throw new wA("KaTeX doesn't work in quirks mode.")});var OdA=function(A,t){var r=gy(A,t).toMarkup();return r},HdA=function(A,t){var r=new W2(t);return ly(A,r)},WM=function(A,t,r){if(r.throwOnError||!(A instanceof wA))throw A;var i=pA(["katex-error"],[new zi(t)]);return i.setAttribute("title",A.toString()),i.setAttribute("style","color:"+r.errorColor),i},gy=function(A,t){var r=new W2(t);try{var i=ly(A,r);return $IA(i,A,r)}catch(n){return WM(n,A,r)}},VdA=function(A,t){var r=new W2(t);try{var i=ly(A,r);return AdA(i,A,r)}catch(n){return WM(n,A,r)}},ZdA="0.16.45",PdA={Span:Pc,Anchor:vB,SymbolNode:zi,SvgNode:co,PathNode:gs,LineNode:Qv},qdA={version:ZdA,render:zM,renderToString:OdA,ParseError:wA,SETTINGS_SCHEMA:fv,__parse:HdA,__renderToDomTree:gy,__renderToHTMLTree:VdA,__setFontMetrics:RIA,__defineSymbol:y,__defineFunction:YA,__defineMacro:M,__domTree:PdA};const KdA=/\[REF:(\d+-\d+)\]/g,zdA=/\$\$(\d+-\d+)\$\$/g,WdA=/\$\$(\d+-\d+)\$\$\$\$(\d+-\d+)\$\$/;function k8(e){return`<span class="reference-tag" id="reference-tag-${e}">${e}</span>`}function XM(e){if(!e||e.indexOf("[REF:")===-1&&e.indexOf("$$")===-1)return e;let A=e;for(;WdA.test(A);)A=A.replace(/\$\$(\d+-\d+)\$\$\$\$(\d+-\d+)\$\$/g,(t,r,i)=>`$$${r}$$ $$${i}$$`);return A=A.replace(KdA,(t,r)=>k8(r)),A=A.replace(zdA,(t,r)=>k8(r)),A}/*! @license DOMPurify 3.4.2 | (c) Cure53 and other contributors | Released under the Apache license 2.0 and Mozilla Public License 2.0 | github.com/cure53/DOMPurify/blob/3.4.2/LICENSE */const{entries:jM,setPrototypeOf:b8,isFrozen:XdA,getPrototypeOf:jdA,getOwnPropertyDescriptor:$dA}=Object;let{freeze:pi,seal:xn,create:_g}=Object,{apply:xv,construct:_v}=typeof Reflect<"u"&&Reflect;pi||(pi=function(A){return A});xn||(xn=function(A){return A});xv||(xv=function(A,t){for(var r=arguments.length,i=new Array(r>2?r-2:0),n=2;n<r;n++)i[n-2]=arguments[n];return A.apply(t,i)});_v||(_v=function(A){for(var t=arguments.length,r=new Array(t>1?t-1:0),i=1;i<t;i++)r[i-1]=arguments[i];return new A(...r)});const _u=dr(Array.prototype.forEach),AfA=dr(Array.prototype.lastIndexOf),S8=dr(Array.prototype.pop),Fu=dr(Array.prototype.push),efA=dr(Array.prototype.splice),si=Array.isArray,r0=dr(String.prototype.toLowerCase),sE=dr(String.prototype.toString),N8=dr(String.prototype.match),vg=dr(String.prototype.replace),x8=dr(String.prototype.indexOf),tfA=dr(String.prototype.trim),rfA=dr(Number.prototype.toString),ifA=dr(Boolean.prototype.toString),_8=typeof BigInt>"u"?null:dr(BigInt.prototype.toString),F8=typeof Symbol>"u"?null:dr(Symbol.prototype.toString),jt=dr(Object.prototype.hasOwnProperty),Mu=dr(Object.prototype.toString),Lr=dr(RegExp.prototype.test),uI=nfA(TypeError);function dr(e){return function(A){A instanceof RegExp&&(A.lastIndex=0);for(var t=arguments.length,r=new Array(t>1?t-1:0),i=1;i<t;i++)r[i-1]=arguments[i];return xv(e,A,r)}}function nfA(e){return function(){for(var A=arguments.length,t=new Array(A),r=0;r<A;r++)t[r]=arguments[r];return _v(e,t)}}function ke(e,A){let t=arguments.length>2&&arguments[2]!==void 0?arguments[2]:r0;if(b8&&b8(e,null),!si(A))return e;let r=A.length;for(;r--;){let i=A[r];if(typeof i=="string"){const n=t(i);n!==i&&(XdA(A)||(A[r]=n),i=n)}e[i]=!0}return e}function afA(e){for(let A=0;A<e.length;A++)jt(e,A)||(e[A]=null);return e}function bi(e){const A=_g(null);for(const[t,r]of jM(e))jt(e,t)&&(si(r)?A[t]=afA(r):r&&typeof r=="object"&&r.constructor===Object?A[t]=bi(r):A[t]=r);return A}function ofA(e){switch(typeof e){case"string":return e;case"number":return rfA(e);case"boolean":return ifA(e);case"bigint":return _8?_8(e):"0";case"symbol":return F8?F8(e):"Symbol()";case"undefined":return Mu(e);case"function":case"object":{if(e===null)return Mu(e);const A=e,t=Fg(A,"toString");if(typeof t=="function"){const r=t(A);return typeof r=="string"?r:Mu(r)}return Mu(e)}default:return Mu(e)}}function Fg(e,A){for(;e!==null;){const r=$dA(e,A);if(r){if(r.get)return dr(r.get);if(typeof r.value=="function")return dr(r.value)}e=jdA(e)}function t(){return null}return t}function sfA(e){try{return Lr(e,""),!0}catch{return!1}}const M8=pi(["a","abbr","acronym","address","area","article","aside","audio","b","bdi","bdo","big","blink","blockquote","body","br","button","canvas","caption","center","cite","code","col","colgroup","content","data","datalist","dd","decorator","del","details","dfn","dialog","dir","div","dl","dt","element","em","fieldset","figcaption","figure","font","footer","form","h1","h2","h3","h4","h5","h6","head","header","hgroup","hr","html","i","img","input","ins","kbd","label","legend","li","main","map","mark","marquee","menu","menuitem","meter","nav","nobr","ol","optgroup","option","output","p","picture","pre","progress","q","rp","rt","ruby","s","samp","search","section","select","shadow","slot","small","source","spacer","span","strike","strong","style","sub","summary","sup","table","tbody","td","template","textarea","tfoot","th","thead","time","tr","track","tt","u","ul","var","video","wbr"]),lE=pi(["svg","a","altglyph","altglyphdef","altglyphitem","animatecolor","animatemotion","animatetransform","circle","clippath","defs","desc","ellipse","enterkeyhint","exportparts","filter","font","g","glyph","glyphref","hkern","image","inputmode","line","lineargradient","marker","mask","metadata","mpath","part","path","pattern","polygon","polyline","radialgradient","rect","stop","style","switch","symbol","text","textpath","title","tref","tspan","view","vkern"]),gE=pi(["feBlend","feColorMatrix","feComponentTransfer","feComposite","feConvolveMatrix","feDiffuseLighting","feDisplacementMap","feDistantLight","feDropShadow","feFlood","feFuncA","feFuncB","feFuncG","feFuncR","feGaussianBlur","feImage","feMerge","feMergeNode","feMorphology","feOffset","fePointLight","feSpecularLighting","feSpotLight","feTile","feTurbulence"]),lfA=pi(["animate","color-profile","cursor","discard","font-face","font-face-format","font-face-name","font-face-src","font-face-uri","foreignobject","hatch","hatchpath","mesh","meshgradient","meshpatch","meshrow","missing-glyph","script","set","solidcolor","unknown","use"]),cE=pi(["math","menclose","merror","mfenced","mfrac","mglyph","mi","mlabeledtr","mmultiscripts","mn","mo","mover","mpadded","mphantom","mroot","mrow","ms","mspace","msqrt","mstyle","msub","msup","msubsup","mtable","mtd","mtext","mtr","munder","munderover","mprescripts"]),gfA=pi(["maction","maligngroup","malignmark","mlongdiv","mscarries","mscarry","msgroup","mstack","msline","msrow","semantics","annotation","annotation-xml","mprescripts","none"]),R8=pi(["#text"]),L8=pi(["accept","action","align","alt","autocapitalize","autocomplete","autopictureinpicture","autoplay","background","bgcolor","border","capture","cellpadding","cellspacing","checked","cite","class","clear","color","cols","colspan","controls","controlslist","coords","crossorigin","datetime","decoding","default","dir","disabled","disablepictureinpicture","disableremoteplayback","download","draggable","enctype","enterkeyhint","exportparts","face","for","headers","height","hidden","high","href","hreflang","id","inert","inputmode","integrity","ismap","kind","label","lang","list","loading","loop","low","max","maxlength","media","method","min","minlength","multiple","muted","name","nonce","noshade","novalidate","nowrap","open","optimum","part","pattern","placeholder","playsinline","popover","popovertarget","popovertargetaction","poster","preload","pubdate","radiogroup","readonly","rel","required","rev","reversed","role","rows","rowspan","spellcheck","scope","selected","shape","size","sizes","slot","span","srclang","start","src","srcset","step","style","summary","tabindex","title","translate","type","usemap","valign","value","width","wrap","xmlns"]),uE=pi(["accent-height","accumulate","additive","alignment-baseline","amplitude","ascent","attributename","attributetype","azimuth","basefrequency","baseline-shift","begin","bias","by","class","clip","clippathunits","clip-path","clip-rule","color","color-interpolation","color-interpolation-filters","color-profile","color-rendering","cx","cy","d","dx","dy","diffuseconstant","direction","display","divisor","dur","edgemode","elevation","end","exponent","fill","fill-opacity","fill-rule","filter","filterunits","flood-color","flood-opacity","font-family","font-size","font-size-adjust","font-stretch","font-style","font-variant","font-weight","fx","fy","g1","g2","glyph-name","glyphref","gradientunits","gradienttransform","height","href","id","image-rendering","in","in2","intercept","k","k1","k2","k3","k4","kerning","keypoints","keysplines","keytimes","lang","lengthadjust","letter-spacing","kernelmatrix","kernelunitlength","lighting-color","local","marker-end","marker-mid","marker-start","markerheight","markerunits","markerwidth","maskcontentunits","maskunits","max","mask","mask-type","media","method","mode","min","name","numoctaves","offset","operator","opacity","order","orient","orientation","origin","overflow","paint-order","path","pathlength","patterncontentunits","patterntransform","patternunits","points","preservealpha","preserveaspectratio","primitiveunits","r","rx","ry","radius","refx","refy","repeatcount","repeatdur","restart","result","rotate","scale","seed","shape-rendering","slope","specularconstant","specularexponent","spreadmethod","startoffset","stddeviation","stitchtiles","stop-color","stop-opacity","stroke-dasharray","stroke-dashoffset","stroke-linecap","stroke-linejoin","stroke-miterlimit","stroke-opacity","stroke","stroke-width","style","surfacescale","systemlanguage","tabindex","tablevalues","targetx","targety","transform","transform-origin","text-anchor","text-decoration","text-rendering","textlength","type","u1","u2","unicode","values","viewbox","visibility","version","vert-adv-y","vert-origin-x","vert-origin-y","width","word-spacing","wrap","writing-mode","xchannelselector","ychannelselector","x","x1","x2","xmlns","y","y1","y2","z","zoomandpan"]),G8=pi(["accent","accentunder","align","bevelled","close","columnalign","columnlines","columnspacing","columnspan","denomalign","depth","dir","display","displaystyle","encoding","fence","frame","height","href","id","largeop","length","linethickness","lquote","lspace","mathbackground","mathcolor","mathsize","mathvariant","maxsize","minsize","movablelimits","notation","numalign","open","rowalign","rowlines","rowspacing","rowspan","rspace","rquote","scriptlevel","scriptminsize","scriptsizemultiplier","selection","separator","separators","stretchy","subscriptshift","supscriptshift","symmetric","voffset","width","xmlns"]),hI=pi(["xlink:href","xml:id","xlink:title","xml:space","xmlns:xlink"]),cfA=xn(/\{\{[\w\W]*|[\w\W]*\}\}/gm),ufA=xn(/<%[\w\W]*|[\w\W]*%>/gm),hfA=xn(/\$\{[\w\W]*/gm),CfA=xn(/^data-[\-\w.\u00B7-\uFFFF]+$/),IfA=xn(/^aria-[\-\w]+$/),$M=xn(/^(?:(?:(?:f|ht)tps?|mailto|tel|callto|sms|cid|xmpp|matrix):|[^a-z]|[a-z+.\-]+(?:[^a-z+.\-:]|$))/i),dfA=xn(/^(?:\w+script|data):/i),ffA=xn(/[\u0000-\u0020\u00A0\u1680\u180E\u2000-\u2029\u205F\u3000]/g),AR=xn(/^html$/i),BfA=xn(/^[a-z][.\w]*(-[.\w]+)+$/i);var T8=Object.freeze({__proto__:null,ARIA_ATTR:IfA,ATTR_WHITESPACE:ffA,CUSTOM_ELEMENT:BfA,DATA_ATTR:CfA,DOCTYPE_NAME:AR,ERB_EXPR:ufA,IS_ALLOWED_URI:$M,IS_SCRIPT_OR_DATA:dfA,MUSTACHE_EXPR:cfA,TMPLIT_EXPR:hfA});const Ru={element:1,text:3,progressingInstruction:7,comment:8,document:9},pfA=function(){return typeof window>"u"?null:window},QfA=function(A,t){if(typeof A!="object"||typeof A.createPolicy!="function")return null;let r=null;const i="data-tt-policy-suffix";t&&t.hasAttribute(i)&&(r=t.getAttribute(i));const n="dompurify"+(r?"#"+r:"");try{return A.createPolicy(n,{createHTML(a){return a},createScriptURL(a){return a}})}catch{return console.warn("TrustedTypes policy "+n+" could not be created."),null}},Y8=function(){return{afterSanitizeAttributes:[],afterSanitizeElements:[],afterSanitizeShadowDOM:[],beforeSanitizeAttributes:[],beforeSanitizeElements:[],beforeSanitizeShadowDOM:[],uponSanitizeAttribute:[],uponSanitizeElement:[],uponSanitizeShadowNode:[]}};function eR(){let e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:pfA();const A=ee=>eR(ee);if(A.version="3.4.2",A.removed=[],!e||!e.document||e.document.nodeType!==Ru.document||!e.Element)return A.isSupported=!1,A;let{document:t}=e;const r=t,i=r.currentScript,{DocumentFragment:n,HTMLTemplateElement:a,Node:o,Element:s,NodeFilter:l,NamedNodeMap:g=e.NamedNodeMap||e.MozNamedAttrMap,HTMLFormElement:c,DOMParser:C,trustedTypes:h}=e,I=s.prototype,d=Fg(I,"cloneNode"),f=Fg(I,"remove"),B=Fg(I,"nextSibling"),p=Fg(I,"childNodes"),Q=Fg(I,"parentNode");if(typeof a=="function"){const ee=t.createElement("template");ee.content&&ee.content.ownerDocument&&(t=ee.content.ownerDocument)}let E,m="";const{implementation:v,createNodeIterator:w,createDocumentFragment:k,getElementsByTagName:b}=t,{importNode:S}=r;let N=Y8();A.isSupported=typeof jM=="function"&&typeof Q=="function"&&v&&v.createHTMLDocument!==void 0;const{MUSTACHE_EXPR:_,ERB_EXPR:F,TMPLIT_EXPR:R,DATA_ATTR:Y,ARIA_ATTR:q,IS_SCRIPT_OR_DATA:Z,ATTR_WHITESPACE:O,CUSTOM_ELEMENT:eA}=T8;let{IS_ALLOWED_URI:tA}=T8,T=null;const AA=ke({},[...M8,...lE,...gE,...cE,...R8]);let P=null;const K=ke({},[...L8,...uE,...G8,...hI]);let iA=Object.seal(_g(null,{tagNameCheck:{writable:!0,configurable:!1,enumerable:!0,value:null},attributeNameCheck:{writable:!0,configurable:!1,enumerable:!0,value:null},allowCustomizedBuiltInElements:{writable:!0,configurable:!1,enumerable:!0,value:!1}})),lA=null,vA=null;const FA=Object.seal(_g(null,{tagCheck:{writable:!0,configurable:!1,enumerable:!0,value:null},attributeCheck:{writable:!0,configurable:!1,enumerable:!0,value:null}}));let ZA=!0,RA=!0,qA=!1,GA=!0,me=!1,oe=!0,Se=!1,kA=!1,WA=!1,VA=!1,gA=!1,MA=!1,pe=!0,xe=!1;const $e="user-content-";let Pt=!0,_e=!1,Lt={},Me=null;const rr=ke({},["annotation-xml","audio","colgroup","desc","foreignobject","head","iframe","math","mi","mn","mo","ms","mtext","noembed","noframes","noscript","plaintext","script","style","svg","template","thead","title","video","xmp"]);let Br=null;const Ji=ke({},["audio","video","img","source","image","track"]);let Zr=null;const An=ke({},["alt","class","for","id","label","name","pattern","placeholder","role","summary","title","value","style","xmlns"]),Fr="http://www.w3.org/1998/Math/MathML",Oi="http://www.w3.org/2000/svg",rA="http://www.w3.org/1999/xhtml";let oA=rA,EA=!1,St=null;const Pe=ke({},[Fr,Oi,rA],sE);let ir=ke({},["mi","mo","mn","ms","mtext"]),qt=ke({},["annotation-xml"]);const en=ke({},["title","style","font","a","script"]);let Ct=null;const yr=["application/xhtml+xml","text/html"],tn="text/html";let Te=null,Gt=null;const Pr=t.createElement("form"),X=function(z){return z instanceof RegExp||z instanceof Function},aA=function(){let z=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};if(Gt&&Gt===z)return;(!z||typeof z!="object")&&(z={}),z=bi(z),Ct=yr.indexOf(z.PARSER_MEDIA_TYPE)===-1?tn:z.PARSER_MEDIA_TYPE,Te=Ct==="application/xhtml+xml"?sE:r0,T=jt(z,"ALLOWED_TAGS")&&si(z.ALLOWED_TAGS)?ke({},z.ALLOWED_TAGS,Te):AA,P=jt(z,"ALLOWED_ATTR")&&si(z.ALLOWED_ATTR)?ke({},z.ALLOWED_ATTR,Te):K,St=jt(z,"ALLOWED_NAMESPACES")&&si(z.ALLOWED_NAMESPACES)?ke({},z.ALLOWED_NAMESPACES,sE):Pe,Zr=jt(z,"ADD_URI_SAFE_ATTR")&&si(z.ADD_URI_SAFE_ATTR)?ke(bi(An),z.ADD_URI_SAFE_ATTR,Te):An,Br=jt(z,"ADD_DATA_URI_TAGS")&&si(z.ADD_DATA_URI_TAGS)?ke(bi(Ji),z.ADD_DATA_URI_TAGS,Te):Ji,Me=jt(z,"FORBID_CONTENTS")&&si(z.FORBID_CONTENTS)?ke({},z.FORBID_CONTENTS,Te):rr,lA=jt(z,"FORBID_TAGS")&&si(z.FORBID_TAGS)?ke({},z.FORBID_TAGS,Te):bi({}),vA=jt(z,"FORBID_ATTR")&&si(z.FORBID_ATTR)?ke({},z.FORBID_ATTR,Te):bi({}),Lt=jt(z,"USE_PROFILES")?z.USE_PROFILES&&typeof z.USE_PROFILES=="object"?bi(z.USE_PROFILES):z.USE_PROFILES:!1,ZA=z.ALLOW_ARIA_ATTR!==!1,RA=z.ALLOW_DATA_ATTR!==!1,qA=z.ALLOW_UNKNOWN_PROTOCOLS||!1,GA=z.ALLOW_SELF_CLOSE_IN_ATTR!==!1,me=z.SAFE_FOR_TEMPLATES||!1,oe=z.SAFE_FOR_XML!==!1,Se=z.WHOLE_DOCUMENT||!1,VA=z.RETURN_DOM||!1,gA=z.RETURN_DOM_FRAGMENT||!1,MA=z.RETURN_TRUSTED_TYPE||!1,WA=z.FORCE_BODY||!1,pe=z.SANITIZE_DOM!==!1,xe=z.SANITIZE_NAMED_PROPS||!1,Pt=z.KEEP_CONTENT!==!1,_e=z.IN_PLACE||!1,tA=sfA(z.ALLOWED_URI_REGEXP)?z.ALLOWED_URI_REGEXP:$M,oA=typeof z.NAMESPACE=="string"?z.NAMESPACE:rA,ir=jt(z,"MATHML_TEXT_INTEGRATION_POINTS")&&z.MATHML_TEXT_INTEGRATION_POINTS&&typeof z.MATHML_TEXT_INTEGRATION_POINTS=="object"?bi(z.MATHML_TEXT_INTEGRATION_POINTS):ke({},["mi","mo","mn","ms","mtext"]),qt=jt(z,"HTML_INTEGRATION_POINTS")&&z.HTML_INTEGRATION_POINTS&&typeof z.HTML_INTEGRATION_POINTS=="object"?bi(z.HTML_INTEGRATION_POINTS):ke({},["annotation-xml"]);const IA=jt(z,"CUSTOM_ELEMENT_HANDLING")&&z.CUSTOM_ELEMENT_HANDLING&&typeof z.CUSTOM_ELEMENT_HANDLING=="object"?bi(z.CUSTOM_ELEMENT_HANDLING):_g(null);if(iA=_g(null),jt(IA,"tagNameCheck")&&X(IA.tagNameCheck)&&(iA.tagNameCheck=IA.tagNameCheck),jt(IA,"attributeNameCheck")&&X(IA.attributeNameCheck)&&(iA.attributeNameCheck=IA.attributeNameCheck),jt(IA,"allowCustomizedBuiltInElements")&&typeof IA.allowCustomizedBuiltInElements=="boolean"&&(iA.allowCustomizedBuiltInElements=IA.allowCustomizedBuiltInElements),me&&(RA=!1),gA&&(VA=!0),Lt&&(T=ke({},R8),P=_g(null),Lt.html===!0&&(ke(T,M8),ke(P,L8)),Lt.svg===!0&&(ke(T,lE),ke(P,uE),ke(P,hI)),Lt.svgFilters===!0&&(ke(T,gE),ke(P,uE),ke(P,hI)),Lt.mathMl===!0&&(ke(T,cE),ke(P,G8),ke(P,hI))),FA.tagCheck=null,FA.attributeCheck=null,jt(z,"ADD_TAGS")&&(typeof z.ADD_TAGS=="function"?FA.tagCheck=z.ADD_TAGS:si(z.ADD_TAGS)&&(T===AA&&(T=bi(T)),ke(T,z.ADD_TAGS,Te))),jt(z,"ADD_ATTR")&&(typeof z.ADD_ATTR=="function"?FA.attributeCheck=z.ADD_ATTR:si(z.ADD_ATTR)&&(P===K&&(P=bi(P)),ke(P,z.ADD_ATTR,Te))),jt(z,"ADD_URI_SAFE_ATTR")&&si(z.ADD_URI_SAFE_ATTR)&&ke(Zr,z.ADD_URI_SAFE_ATTR,Te),jt(z,"FORBID_CONTENTS")&&si(z.FORBID_CONTENTS)&&(Me===rr&&(Me=bi(Me)),ke(Me,z.FORBID_CONTENTS,Te)),jt(z,"ADD_FORBID_CONTENTS")&&si(z.ADD_FORBID_CONTENTS)&&(Me===rr&&(Me=bi(Me)),ke(Me,z.ADD_FORBID_CONTENTS,Te)),Pt&&(T["#text"]=!0),Se&&ke(T,["html","head","body"]),T.table&&(ke(T,["tbody"]),delete lA.tbody),z.TRUSTED_TYPES_POLICY){if(typeof z.TRUSTED_TYPES_POLICY.createHTML!="function")throw uI('TRUSTED_TYPES_POLICY configuration option must provide a "createHTML" hook.');if(typeof z.TRUSTED_TYPES_POLICY.createScriptURL!="function")throw uI('TRUSTED_TYPES_POLICY configuration option must provide a "createScriptURL" hook.');E=z.TRUSTED_TYPES_POLICY,m=E.createHTML("")}else E===void 0&&(E=QfA(h,i)),E!==null&&typeof m=="string"&&(m=E.createHTML(""));pi&&pi(z),Gt=z},CA=ke({},[...lE,...gE,...lfA]),PA=ke({},[...cE,...gfA]),ue=function(z){let IA=Q(z);(!IA||!IA.tagName)&&(IA={namespaceURI:oA,tagName:"template"});const TA=r0(z.tagName),it=r0(IA.tagName);return St[z.namespaceURI]?z.namespaceURI===Oi?IA.namespaceURI===rA?TA==="svg":IA.namespaceURI===Fr?TA==="svg"&&(it==="annotation-xml"||ir[it]):!!CA[TA]:z.namespaceURI===Fr?IA.namespaceURI===rA?TA==="math":IA.namespaceURI===Oi?TA==="math"&&qt[it]:!!PA[TA]:z.namespaceURI===rA?IA.namespaceURI===Oi&&!qt[it]||IA.namespaceURI===Fr&&!ir[it]?!1:!PA[TA]&&(en[TA]||!CA[TA]):!!(Ct==="application/xhtml+xml"&&St[z.namespaceURI]):!1},se=function(z){Fu(A.removed,{element:z});try{Q(z).removeChild(z)}catch{f(z)}},Nt=function(z,IA){try{Fu(A.removed,{attribute:IA.getAttributeNode(z),from:IA})}catch{Fu(A.removed,{attribute:null,from:IA})}if(IA.removeAttribute(z),z==="is")if(VA||gA)try{se(IA)}catch{}else try{IA.setAttribute(z,"")}catch{}},It=function(z){let IA=null,TA=null;if(WA)z="<remove></remove>"+z;else{const wt=N8(z,/^[\r\n\t ]+/);TA=wt&&wt[0]}Ct==="application/xhtml+xml"&&oA===rA&&(z='<html xmlns="http://www.w3.org/1999/xhtml"><head></head><body>'+z+"</body></html>");const it=E?E.createHTML(z):z;if(oA===rA)try{IA=new C().parseFromString(it,Ct)}catch{}if(!IA||!IA.documentElement){IA=v.createDocument(oA,"template",null);try{IA.documentElement.innerHTML=EA?m:it}catch{}}const zt=IA.body||IA.documentElement;return z&&TA&&zt.insertBefore(t.createTextNode(TA),zt.childNodes[0]||null),oA===rA?b.call(IA,Se?"html":"body")[0]:Se?IA.documentElement:zt},Kt=function(z){return w.call(z.ownerDocument||z,z,l.SHOW_ELEMENT|l.SHOW_COMMENT|l.SHOW_TEXT|l.SHOW_PROCESSING_INSTRUCTION|l.SHOW_CDATA_SECTION,null)},Mr=function(z){return z instanceof c&&(typeof z.nodeName!="string"||typeof z.textContent!="string"||typeof z.removeChild!="function"||!(z.attributes instanceof g)||typeof z.removeAttribute!="function"||typeof z.setAttribute!="function"||typeof z.namespaceURI!="string"||typeof z.insertBefore!="function"||typeof z.hasChildNodes!="function")},rn=function(z){return typeof o=="function"&&z instanceof o};function ii(ee,z,IA){_u(ee,TA=>{TA.call(A,z,IA,Gt)})}const Xn=function(z){let IA=null;if(ii(N.beforeSanitizeElements,z,null),Mr(z))return se(z),!0;const TA=Te(z.nodeName);if(ii(N.uponSanitizeElement,z,{tagName:TA,allowedTags:T}),oe&&z.hasChildNodes()&&!rn(z.firstElementChild)&&Lr(/<[/\w!]/g,z.innerHTML)&&Lr(/<[/\w!]/g,z.textContent)||oe&&z.namespaceURI===rA&&TA==="style"&&rn(z.firstElementChild)||z.nodeType===Ru.progressingInstruction||oe&&z.nodeType===Ru.comment&&Lr(/<[/\w]/g,z.data))return se(z),!0;if(lA[TA]||!(FA.tagCheck instanceof Function&&FA.tagCheck(TA))&&!T[TA]){if(!lA[TA]&&ql(TA)&&(iA.tagNameCheck instanceof RegExp&&Lr(iA.tagNameCheck,TA)||iA.tagNameCheck instanceof Function&&iA.tagNameCheck(TA)))return!1;if(Pt&&!Me[TA]){const it=Q(z)||z.parentNode,zt=p(z)||z.childNodes;if(zt&&it){const wt=zt.length;for(let lr=wt-1;lr>=0;--lr){const wr=d(zt[lr],!0);it.insertBefore(wr,B(z))}}}return se(z),!0}return z instanceof s&&!ue(z)||(TA==="noscript"||TA==="noembed"||TA==="noframes")&&Lr(/<\/no(script|embed|frames)/i,z.innerHTML)?(se(z),!0):(me&&z.nodeType===Ru.text&&(IA=z.textContent,_u([_,F,R],it=>{IA=vg(IA,it," ")}),z.textContent!==IA&&(Fu(A.removed,{element:z.cloneNode()}),z.textContent=IA)),ii(N.afterSanitizeElements,z,null),!1)},jn=function(z,IA,TA){if(vA[IA]||pe&&(IA==="id"||IA==="name")&&(TA in t||TA in Pr))return!1;const it=P[IA]||FA.attributeCheck instanceof Function&&FA.attributeCheck(IA,z);if(!(RA&&!vA[IA]&&Lr(Y,IA))){if(!(ZA&&Lr(q,IA))){if(!it||vA[IA]){if(!(ql(z)&&(iA.tagNameCheck instanceof RegExp&&Lr(iA.tagNameCheck,z)||iA.tagNameCheck instanceof Function&&iA.tagNameCheck(z))&&(iA.attributeNameCheck instanceof RegExp&&Lr(iA.attributeNameCheck,IA)||iA.attributeNameCheck instanceof Function&&iA.attributeNameCheck(IA,z))||IA==="is"&&iA.allowCustomizedBuiltInElements&&(iA.tagNameCheck instanceof RegExp&&Lr(iA.tagNameCheck,TA)||iA.tagNameCheck instanceof Function&&iA.tagNameCheck(TA))))return!1}else if(!Zr[IA]){if(!Lr(tA,vg(TA,O,""))){if(!((IA==="src"||IA==="xlink:href"||IA==="href")&&z!=="script"&&x8(TA,"data:")===0&&Br[z])){if(!(qA&&!Lr(Z,vg(TA,O,"")))){if(TA)return!1}}}}}}return!0},Rn=ke({},["annotation-xml","color-profile","font-face","font-face-format","font-face-name","font-face-src","font-face-uri","missing-glyph"]),ql=function(z){return!Rn[r0(z)]&&Lr(eA,z)},Kl=function(z){ii(N.beforeSanitizeAttributes,z,null);const{attributes:IA}=z;if(!IA||Mr(z))return;const TA={attrName:"",attrValue:"",keepAttr:!0,allowedAttributes:P,forceKeepAttr:void 0};let it=IA.length;for(;it--;){const zt=IA[it],{name:wt,namespaceURI:lr,value:wr}=zt,qr=Te(wt),vi=wr;let Tt=wt==="value"?vi:tfA(vi);if(TA.attrName=qr,TA.attrValue=Tt,TA.keepAttr=!0,TA.forceKeepAttr=void 0,ii(N.uponSanitizeAttribute,z,TA),Tt=TA.attrValue,xe&&(qr==="id"||qr==="name")&&x8(Tt,$e)!==0&&(Nt(wt,z),Tt=$e+Tt),oe&&Lr(/((--!?|])>)|<\/(style|script|title|xmp|textarea|noscript|iframe|noembed|noframes)/i,Tt)){Nt(wt,z);continue}if(qr==="attributename"&&N8(Tt,"href")){Nt(wt,z);continue}if(TA.forceKeepAttr)continue;if(!TA.keepAttr){Nt(wt,z);continue}if(!GA&&Lr(/\/>/i,Tt)){Nt(wt,z);continue}me&&_u([_,F,R],Xc=>{Tt=vg(Tt,Xc," ")});const Wc=Te(z.nodeName);if(!jn(Wc,qr,Tt)){Nt(wt,z);continue}if(E&&typeof h=="object"&&typeof h.getAttributeType=="function"&&!lr)switch(h.getAttributeType(Wc,qr)){case"TrustedHTML":{Tt=E.createHTML(Tt);break}case"TrustedScriptURL":{Tt=E.createScriptURL(Tt);break}}if(Tt!==vi)try{lr?z.setAttributeNS(lr,wt,Tt):z.setAttribute(wt,Tt),Mr(z)?se(z):S8(A.removed)}catch{Nt(wt,z)}}ii(N.afterSanitizeAttributes,z,null)},$n=function(z){let IA=null;const TA=Kt(z);for(ii(N.beforeSanitizeShadowDOM,z,null);IA=TA.nextNode();)ii(N.uponSanitizeShadowNode,IA,null),Xn(IA),Kl(IA),IA.content instanceof n&&$n(IA.content);ii(N.afterSanitizeShadowDOM,z,null)};return A.sanitize=function(ee){let z=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},IA=null,TA=null,it=null,zt=null;if(EA=!ee,EA&&(ee="<!-->"),typeof ee!="string"&&!rn(ee)&&(ee=ofA(ee),typeof ee!="string"))throw uI("dirty is not a string, aborting");if(!A.isSupported)return ee;if(kA||aA(z),A.removed=[],typeof ee=="string"&&(_e=!1),_e){const wr=ee.nodeName;if(typeof wr=="string"){const qr=Te(wr);if(!T[qr]||lA[qr])throw uI("root node is forbidden and cannot be sanitized in-place")}}else if(ee instanceof o)IA=It("<!---->"),TA=IA.ownerDocument.importNode(ee,!0),TA.nodeType===Ru.element&&TA.nodeName==="BODY"||TA.nodeName==="HTML"?IA=TA:IA.appendChild(TA);else{if(!VA&&!me&&!Se&&ee.indexOf("<")===-1)return E&&MA?E.createHTML(ee):ee;if(IA=It(ee),!IA)return VA?null:MA?m:""}IA&&WA&&se(IA.firstChild);const wt=Kt(_e?ee:IA);for(;it=wt.nextNode();)Xn(it),Kl(it),it.content instanceof n&&$n(it.content);if(_e)return ee;if(VA){if(me){IA.normalize();let wr=IA.innerHTML;_u([_,F,R],qr=>{wr=vg(wr,qr," ")}),IA.innerHTML=wr}if(gA)for(zt=k.call(IA.ownerDocument);IA.firstChild;)zt.appendChild(IA.firstChild);else zt=IA;return(P.shadowroot||P.shadowrootmode)&&(zt=S.call(r,zt,!0)),zt}let lr=Se?IA.outerHTML:IA.innerHTML;return Se&&T["!doctype"]&&IA.ownerDocument&&IA.ownerDocument.doctype&&IA.ownerDocument.doctype.name&&Lr(AR,IA.ownerDocument.doctype.name)&&(lr="<!DOCTYPE "+IA.ownerDocument.doctype.name+`>
644
644
  `+lr),me&&_u([_,F,R],wr=>{lr=vg(lr,wr," ")}),E&&MA?E.createHTML(lr):lr},A.setConfig=function(){let ee=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};aA(ee),kA=!0},A.clearConfig=function(){Gt=null,kA=!1},A.isValidAttribute=function(ee,z,IA){Gt||aA({});const TA=Te(ee),it=Te(z);return jn(TA,it,IA)},A.addHook=function(ee,z){typeof z=="function"&&Fu(N[ee],z)},A.removeHook=function(ee,z){if(z!==void 0){const IA=AfA(N[ee],z);return IA===-1?void 0:efA(N[ee],IA,1)[0]}return S8(N[ee])},A.removeHooks=function(ee){N[ee]=[]},A.removeAllHooks=function(){N=Y8()},A}var EfA=eR();const mfA={ALLOWED_TAGS:["h1","h2","h3","h4","h5","h6","p","br","hr","strong","em","u","s","del","ins","a","img","ul","ol","li","blockquote","pre","code","table","thead","tbody","tr","th","td","div","span","annotation","math","semantics","mrow","mi","mo","mn","msup","msub","mfrac"],ALLOWED_ATTR:["href","target","rel","src","alt","width","height","class","id","colspan","rowspan","align","style","aria-hidden"],ALLOW_DATA_ATTR:!1};function vfA(e){return EfA.sanitize(e,mfA)}const yfA=/<table[\s\S]*?<\/table>/g;function wfA(e){const A=[...e.matchAll(yfA)];if(A.length===0)return e;let t="",r=0;for(const i of A){const n=i[0],a=i.index,o=a+n.length;t+=e.slice(r,a),t+=`<div class="table-node-wrapper"><div class="table-node">${n}</div></div>`,r=o}return t+e.slice(r)}const mf=u.ref(!1);let Lu=null;function tR(){return mf.value?Promise.resolve():Lu||(Lu=iIA().then(()=>{mf.value=!0}).catch(e=>{console.error("[mdoc] Failed to initialize md4x:",e),Lu=null}),Lu)}typeof window<"u"&&tR();const DfA=/\[(IMG|VIDEO|AUDIO):\{([^}]+)\}\]/g,kfA=/^\[(IMG|VIDEO|AUDIO):\{[^}]+\}\]/,U8=/\[(IMG|VIDEO|AUDIO)\b/g,bfA=/<x-equation(\s+type="display")?>([\s\S]*?)<\/x-equation>/g;function SfA(e){return e.replace(/&lt;/g,"<").replace(/&gt;/g,">").replace(/&quot;/g,'"').replace(/&#39;/g,"'").replace(/&amp;/g,"&")}function NfA(e){return e.replace(bfA,(A,t,r)=>{const i=!!t,n=qdA.renderToString(SfA(r).trim(),{displayMode:i,throwOnError:!1,strict:!1});return i?`<span class="math-block">${n}</span>`:`<span class="math-inline">${n}</span>`})}function xfA(e){const A=[];let t=0;return{content:e.replace(DfA,(i,n,a)=>{try{const o=JSON.parse(`{${a}}`),s=n==="IMG"?"image":n.toLowerCase(),l=`media-${t}`;return A.push({id:l,type:s,data:o}),t+=1,`
645
645
  %%${l}%%
646
- `}catch{return i}}),media:A}}function _fA(e){let A=null;U8.lastIndex=0;for(const r of e.matchAll(U8))A={index:r.index,kind:r[1]};if(!A)return null;const t=e.slice(A.index);return kfA.test(t)?null:{mediaType:A.kind==="IMG"?"image":A.kind.toLowerCase(),startIndex:A.index}}function FfA(e,A={}){if(!e)return[];if(!mf.value)return[{type:"html",id:"pending",html:"<p></p>"}];const t=JE(e);if(!t)return[];const r=XM(t),i=A.streaming===!0?_fA(r):null,n=i?r.slice(0,i.startIndex):r,{content:a,media:o}=xfA(n);let s=rIA(a,{heal:A.streaming===!0});s=NfA(s),s=vfA(s),s=wfA(s),s=s.replace(/<p>\s*((?:%%media-\d+%%\s*)+)<\/p>/g,"$1");const l=new Map(o.map(I=>[I.id,I])),g=s.split(/(%%media-\d+%%)/),c=[];let C=0;for(const I of g){const d=I.match(/^%%(media-\d+)%%$/);if(d){const f=l.get(d[1]);if(!f||typeof f.data.url!="string"||!f.data.url){A.streaming===!0&&f&&(c.push({type:"media-pending",id:`${f.id}-pending-${C}`,mediaType:f.type}),C+=1);continue}f.type==="image"?c.push({type:"image",id:`${f.id}-${C}`,url:f.data.url,alt:typeof f.data.alt=="string"?f.data.alt:void 0}):f.type==="video"?c.push({type:"video",id:`${f.id}-${C}`,url:f.data.url,poster:typeof f.data.poster=="string"?f.data.poster:void 0}):c.push({type:"audio",id:`${f.id}-${C}`,url:f.data.url,title:typeof f.data.title=="string"?f.data.title:void 0}),C+=1;continue}I.trim()&&(c.push({type:"html",id:`html-${C}`,html:I}),C+=1)}const h=MfA(c);return i&&h.push({type:"media-pending",id:`media-pending-${i.mediaType}`,mediaType:i.mediaType}),h}function MfA(e){const A=[];let t=[];const r=()=>{t.length!==0&&(t.length===1?A.push(t[0]):A.push({type:"image-stack",id:t[0].id,images:t.map(i=>({id:i.id,url:i.url,alt:i.alt}))}),t=[])};for(const i of e){if(i.type==="image"){t.push(i);continue}r(),A.push(i)}return r(),A}const RfA=["innerHTML"],LfA={key:3,class:"content-nodes__media"},GfA=["src","poster"],TfA={key:4,class:"content-nodes__media"},YfA={key:0},UfA=["src"],JfA=u.defineComponent({name:"ContentNodes",__name:"ContentNodes",props:{content:{},isStreaming:{type:Boolean},highlightStreamTail:{type:Boolean},density:{}},emits:["action"],setup(e,{emit:A}){const t=e,r=A,i=u.ref([]),n=u.ref(),a=u.ref();function o(I,d){const f=new V7({registry:hh});I&&f.push(I);const B=f.getPendingRoot(),p=(B==null?void 0:B.tag)==="chart";return a.value=p?{type:String((B==null?void 0:B.props.type)??"")}:void 0,!d&&!p&&f.finalize(),f.getNodes().filter(Q=>Q.kind==="text"?Q.text.length>0:Q.tag==="ask-form"?!1:Q.complete)}function s(){i.value=o(t.content,t.isStreaming===!0),u.nextTick(h)}u.watch(()=>[t.content,t.isStreaming,t.highlightStreamTail,mf.value],()=>s(),{immediate:!0}),u.onMounted(()=>{tR().then(()=>s())});const l=u.computed(()=>{const I=[];let d=-1;for(let f=0;f<i.value.length;f+=1)i.value[f].kind==="text"&&(d=f);for(let f=0;f<i.value.length;f+=1){const B=i.value[f];if(B.kind==="text"){const p=t.isStreaming===!0&&f===d;I.push({type:"text",key:B.id,segments:FfA(B.text,{streaming:p})});continue}if(B.tag==="artifact"){I.push({type:"artifact",key:B.id,node:B});continue}if(B.tag==="action-bar"){r6(B.props)&&I.push({type:"action-bar",key:B.id,node:B});continue}B.tag==="chart"&&I.push({type:"chart",key:B.id,chartType:String(B.props.type??""),rawJson:B.slotText,isClosed:!0})}return a.value&&I.push({type:"chart",key:"chart-pending",chartType:a.value.type,rawJson:"",isClosed:!1}),I});function g(){const I=n.value;if(!(!I||typeof document>"u"))for(const d of I.querySelectorAll(".content-nodes__stream-tail"))d.replaceWith(document.createTextNode(d.textContent??""))}function c(I){let d;const f=I.lastElementChild,B=f==null?void 0:f.lastElementChild;if(!(B!=null&&B.classList.contains("content-nodes__html")))return;function p(Q){for(const E of Q.childNodes){if(E.nodeType===3){const m=E,v=m.parentElement;m.data.trim().length>0&&v&&!v.closest(".math-block, .math-inline, .content-nodes__media")&&(d=m);continue}p(E)}}return p(B),d}function C(I){var m;const d=I.data,f=d.length-(((m=d.match(/\s*$/))==null?void 0:m[0].length)??0);if(f===0||typeof document>"u")return 0;const B=document.createRange();if(typeof B.getClientRects!="function")return 0;const p=v=>(B.setStart(I,v),B.setEnd(I,f),B.getClientRects().length);if(p(0)===0)return 0;let Q=0,E=f;for(;Q<E;){const v=Math.floor((Q+E)/2);p(v)<=1?E=v:Q=v+1}return Q}function h(){g();const I=n.value;if(!I||!t.isStreaming||!t.highlightStreamTail||typeof document>"u")return;const d=c(I);if(!d||!d.data.trim())return;const f=C(d),B=d.data.slice(0,f),p=d.data.slice(f),Q=document.createElement("span");Q.className="content-nodes__stream-tail",Q.textContent=p;const E=document.createDocumentFragment();B&&E.append(document.createTextNode(B)),E.append(Q),d.replaceWith(E)}return(I,d)=>(u.openBlock(),u.createElementBlock("div",{ref_key:"rootRef",ref:n,class:u.normalizeClass(["content-nodes",{"content-nodes--compact":e.density==="compact"}])},[(u.openBlock(!0),u.createElementBlock(u.Fragment,null,u.renderList(l.value,f=>(u.openBlock(),u.createElementBlock(u.Fragment,{key:f.key},[f.type==="artifact"?(u.openBlock(),u.createBlock(aq,{key:0,node:f.node,onAction:d[0]||(d[0]=B=>r("action",B))},null,8,["node"])):f.type==="action-bar"?(u.openBlock(),u.createBlock(_P,{key:1,node:f.node,onAction:d[1]||(d[1]=B=>r("action",B))},null,8,["node"])):f.type==="chart"?(u.openBlock(),u.createBlock(gCA,{key:2,type:f.chartType,"raw-json":f.rawJson,"is-closed":f.isClosed,"is-streaming":e.isStreaming},null,8,["type","raw-json","is-closed","is-streaming"])):(u.openBlock(),u.createBlock(u.TransitionGroup,{key:3,tag:"div",name:"content-media-fade",class:"content-nodes__text"},{default:u.withCtx(()=>[(u.openBlock(!0),u.createElementBlock(u.Fragment,null,u.renderList(f.segments,B=>(u.openBlock(),u.createElementBlock(u.Fragment,{key:B.id},[B.type==="html"?(u.openBlock(),u.createElementBlock("div",{key:0,class:"content-nodes__html",innerHTML:B.html},null,8,RfA)):B.type==="image"||B.type==="image-stack"?(u.openBlock(),u.createBlock(GCA,{key:1,images:B.type==="image"?[{id:B.id,url:B.url,alt:B.alt}]:B.images},null,8,["images"])):B.type==="media-pending"?(u.openBlock(),u.createBlock(PCA,{key:2,"media-type":B.mediaType},null,8,["media-type"])):B.type==="video"?(u.openBlock(),u.createElementBlock("figure",LfA,[u.createElementVNode("video",{src:B.url,poster:B.poster,controls:"",playsinline:""},null,8,GfA)])):B.type==="audio"?(u.openBlock(),u.createElementBlock("figure",TfA,[B.title?(u.openBlock(),u.createElementBlock("figcaption",YfA,u.toDisplayString(B.title),1)):u.createCommentVNode("",!0),u.createElementVNode("audio",{src:B.url,controls:""},null,8,UfA)])):u.createCommentVNode("",!0)],64))),128))]),_:2},1024))],64))),128))],2))}}),cy=ae(JfA,[["__scopeId","data-v-10fcddce"]]),OfA=8;function HfA(e,A){const t=u.ref(e.value);let r,i=!1;function n(){r!==void 0&&(cancelAnimationFrame(r),r=void 0)}function a(){const o=e.value,s=t.value;if(!A.value||s.length>=o.length){t.value=o,r=void 0;return}const l=o.length-s.length,g=Math.max(1,Math.ceil(l/OfA));t.value=o.slice(0,s.length+g),r=requestAnimationFrame(a)}return u.watch(e,o=>{if(!i){i=!0,t.value=o;return}if(!A.value||o.length<t.value.length){t.value=o,n();return}r===void 0&&(r=requestAnimationFrame(a))},{immediate:!0}),u.watch(A,o=>{o||(t.value=e.value,n())}),u.onBeforeUnmount(n),{displayed:t}}const Fv=u.defineComponent({name:"TextPartRenderer",__name:"TextPartRenderer",props:{content:{},isStreaming:{type:Boolean},highlightStreamTail:{type:Boolean},density:{default:"default"}},emits:["action"],setup(e,{emit:A}){const t=e,r=A,{displayed:i}=HfA(u.toRef(t,"content"),u.computed(()=>t.isStreaming===!0));return(n,a)=>(u.openBlock(),u.createBlock(cy,{content:u.unref(i),"is-streaming":e.isStreaming,"highlight-stream-tail":e.highlightStreamTail,density:e.density,onAction:a[0]||(a[0]=o=>r("action",o))},null,8,["content","is-streaming","highlight-stream-tail","density"]))}}),VfA=["aria-label","aria-busy"],ZfA={class:"conversation-message__inner"},PfA={key:0,class:"conversation-message__mark conversation-message__mark--assistant","aria-hidden":"true"},qfA=["src"],KfA={class:"conversation-message__content"},zfA={key:1,class:"conversation-message__bubble"},WfA={key:1,class:"conversation-message__text"},XfA={key:0,class:"conversation-message__text"},jfA={key:1,class:"conversation-message__plain"},$fA={key:1,class:"conversation-message__mark conversation-message__mark--user","aria-hidden":"true"},ABA=["src"],eBA=u.defineComponent({name:"MessageBubble",__name:"MessageBubble",props:{message:{type:Object,required:!0},streaming:{type:Boolean,default:!1},toolMessages:{type:Array,default:()=>[]},theme:{type:Object,default:void 0},userAvatar:{type:String,default:void 0},assistantAvatar:{type:String,default:void 0},toolStates:{type:Object,default:()=>({})},followUps:{type:Array,default:void 0},showFollowUps:{type:Boolean,default:!0}},emits:["copy","feedback","branch","action","attachment-preview","tool-action"],setup(e,{emit:A}){const t=e,r=A,i=u.useSlots(),n=u.computed(()=>t.message),a=u.computed(()=>t.message.role==="user"),o=u.computed(()=>t.message.role==="system"),s=u.computed(()=>t.message.role==="tool"),l=u.computed(()=>t.message.role==="assistant"),g=u.computed(()=>t.message.role==="assistant"?t.message:null),c=u.computed(()=>a.value?"用户消息":o.value?"系统消息":s.value?"工具消息":"AI 助手消息"),C=u.computed(()=>{var K;if(l.value)return JE((K=g.value)==null?void 0:K.content);const P=t.message.content;return typeof P=="string"?P:Array.isArray(P)?P.filter(iA=>iA.type==="text").map(iA=>iA.text).join(""):""}),h=u.computed(()=>{var P,K;return((K=(P=g.value)==null?void 0:P.reasoning_content)==null?void 0:K.trim())??""}),I=u.computed(()=>C.value),d=u.computed(()=>l.value&&!!h.value),f=u.computed(()=>{var P;return((P=g.value)==null?void 0:P.steps)??[]}),B=u.computed(()=>{if(t.message.role!=="user"&&t.message.role!=="system")return!1;const P=t.message.content;return typeof P=="string"?P.trim().length>0:P.some(K=>K.type==="text"?K.text.trim().length>0:!0)}),p=u.computed(()=>a.value||o.value?B.value:!!I.value.trim()),Q=u.computed(()=>I.value),E=u.computed(()=>{var P,K;return l.value&&t.streaming&&!p.value&&!d.value&&!((K=(P=g.value)==null?void 0:P.tool_calls)!=null&&K.length)}),m=u.computed(()=>d.value||E.value),v=u.computed(()=>l.value&&!t.streaming&&Q.value.trim().length>0),w=u.computed(()=>!l.value||!t.showFollowUps||t.streaming?[]:t.followUps??[]),k=u.computed(()=>w.value.length>0);function b(P){r("action",{type:"submit",value:P,label:P,source:"follow-up"})}const S=u.computed(()=>l.value&&(!!t.assistantAvatar||!!i["assistant-avatar"])),N=u.computed(()=>a.value&&(!!t.userAvatar||!!i["user-avatar"])),_=u.computed(()=>{var P;return((P=g.value)==null?void 0:P.tool_calls)??[]}),F=u.computed(()=>{var P;if(!(f.value.length>0))return b4((P=g.value)==null?void 0:P.content)||void 0}),R=u.computed(()=>{const P=[];let K=!1,iA="";for(const lA of f.value){if(lA.type==="reasoning"){P.push(lA);continue}if(lA.type==="tool_calls"){if(lA.tool_calls.length===0)continue;P.push({...lA,...iA?{summary:iA}:{}}),iA="";continue}const vA=b4(lA.content);vA&&(iA=vA);const FA=JE(lA.content);FA.trim()&&(K=!0,P.push({type:"content",content:FA}))}return!K&&I.value.trim()&&P.push({type:"content",content:I.value}),P}),Y=u.computed(()=>f.value.length>0),q=u.computed(()=>{let P=Y.value?pP(R.value):QP({reasoningContent:m.value?h.value:void 0,toolCalls:_.value,providerSummary:F.value,answerContent:p.value?I.value:void 0,includeEmptyProcessGroup:E.value});return l.value&&i.content&&t.streaming&&!P.some(K=>K.kind==="content")&&(P=[...P,{kind:"content",content:I.value,contentIndex:0}]),P}),Z=u.computed(()=>{var P;for(let K=q.value.length-1;K>=0;K-=1)if(((P=q.value[K])==null?void 0:P.kind)==="process_group")return K;return-1}),O=u.computed(()=>{var P;for(let K=q.value.length-1;K>=0;K-=1)if(((P=q.value[K])==null?void 0:P.kind)==="content")return K;return-1});function eA(P){if(!t.streaming||P!==Z.value)return!1;const K=q.value[P];return(K==null?void 0:K.kind)!=="process_group"?!1:!!(K.steps.length===0||K.steps.some(vA=>vA.type==="tool_calls")||K.steps.some(vA=>vA.type==="reasoning")&&!p.value&&_.value.length===0)}const tA=u.computed(()=>t.message.role==="user"||t.message.role==="system"?t.message.content:""),T=u.computed(()=>t.message.role==="user"?t.message.resource_files??[]:[]),AA=u.computed(()=>!a.value||p.value);return(P,K)=>(u.openBlock(),u.createElementBlock("article",{class:u.normalizeClass(["conversation-message",{"conversation-message--user":a.value,"conversation-message--system":o.value,"conversation-message--assistant":l.value,"conversation-message--tool":s.value,"conversation-message--text-only":p.value||m.value,"conversation-message--streaming":e.streaming,"conversation-message--loading":E.value,"conversation-message--with-avatar":S.value||N.value}]),"aria-label":c.value,"aria-busy":e.streaming?"true":void 0},[u.createElementVNode("div",ZfA,[S.value?(u.openBlock(),u.createElementBlock("span",PfA,[u.renderSlot(P.$slots,"assistant-avatar",{},()=>[e.assistantAvatar?(u.openBlock(),u.createElementBlock("img",{key:0,class:"conversation-message__mark-img",src:e.assistantAvatar,alt:""},null,8,qfA)):u.createCommentVNode("",!0)],!0)])):u.createCommentVNode("",!0),u.createElementVNode("div",KfA,[T.value.length?(u.openBlock(),u.createBlock(YS,{key:0,class:"conversation-message__attachments",resources:T.value,onPreview:K[0]||(K[0]=iA=>r("attachment-preview",iA))},null,8,["resources"])):u.createCommentVNode("",!0),AA.value?(u.openBlock(),u.createElementBlock("div",zfA,[l.value?(u.openBlock(!0),u.createElementBlock(u.Fragment,{key:0},u.renderList(q.value,(iA,lA)=>{var vA;return u.openBlock(),u.createElementBlock(u.Fragment,{key:`segment-${iA.kind}-${lA}`},[iA.kind==="process_group"?(u.openBlock(),u.createBlock(A6,{key:0,class:"conversation-message__process",steps:iA.steps,"provider-summary":iA.providerSummary,"tool-messages":e.toolMessages,"tool-states":e.toolStates,"message-id":(vA=g.value)==null?void 0:vA.id,"group-index":iA.segmentIndex,streaming:eA(lA),"data-testid":E.value&&iA.steps.length===0?"conversation-streaming-indicator":void 0,onToolAction:K[1]||(K[1]=FA=>r("tool-action",FA))},u.createSlots({_:2},[P.$slots.tool?{name:"tool",fn:u.withCtx(FA=>[u.renderSlot(P.$slots,"tool",u.mergeProps({ref_for:!0},FA),void 0,!0)]),key:"0"}:void 0]),1032,["steps","provider-summary","tool-messages","tool-states","message-id","group-index","streaming","data-testid"])):(u.openBlock(),u.createElementBlock("div",WfA,[u.renderSlot(P.$slots,"content",{message:n.value,content:iA.content,isStreaming:e.streaming&&lA===O.value},()=>[u.createVNode(Fv,{content:iA.content,"is-streaming":e.streaming&&lA===O.value,"highlight-stream-tail":e.streaming&&lA===O.value,onAction:K[2]||(K[2]=FA=>r("action",FA))},null,8,["content","is-streaming","highlight-stream-tail"])],!0)]))],64)}),128)):(u.openBlock(),u.createElementBlock(u.Fragment,{key:1},[p.value||P.$slots.content?(u.openBlock(),u.createElementBlock("div",XfA,[u.renderSlot(P.$slots,"content",{message:n.value,content:I.value,isStreaming:e.streaming},()=>[a.value||o.value?(u.openBlock(),u.createBlock(hP,{key:0,content:tA.value},null,8,["content"])):s.value?(u.openBlock(),u.createElementBlock("span",jfA,u.toDisplayString(I.value),1)):(u.openBlock(),u.createBlock(Fv,{key:2,content:I.value,"is-streaming":e.streaming,"highlight-stream-tail":e.streaming&&p.value,onAction:K[3]||(K[3]=iA=>r("action",iA))},null,8,["content","is-streaming","highlight-stream-tail"]))],!0)])):u.createCommentVNode("",!0)],64))])):u.createCommentVNode("",!0),v.value&&g.value?(u.openBlock(),u.createBlock(ES,{key:2,message:g.value,text:Q.value,onCopy:K[4]||(K[4]=iA=>r("copy",iA)),onFeedback:K[5]||(K[5]=iA=>r("feedback",iA)),onBranch:K[6]||(K[6]=iA=>r("branch",iA))},u.createSlots({_:2},[P.$slots.actionbar?{name:"default",fn:u.withCtx(iA=>[u.renderSlot(P.$slots,"actionbar",u.normalizeProps(u.guardReactiveProps(iA)),void 0,!0)]),key:"0"}:void 0]),1032,["message","text"])):u.createCommentVNode("",!0),k.value?(u.openBlock(),u.createBlock(US,{key:3,questions:w.value,onSelect:b},null,8,["questions"])):u.createCommentVNode("",!0)]),N.value?(u.openBlock(),u.createElementBlock("span",$fA,[u.renderSlot(P.$slots,"user-avatar",{},()=>[e.userAvatar?(u.openBlock(),u.createElementBlock("img",{key:0,class:"conversation-message__mark-img",src:e.userAvatar,alt:""},null,8,ABA)):u.createCommentVNode("",!0)],!0)])):u.createCommentVNode("",!0)])],10,VfA))}}),rR=ae(eBA,[["__scopeId","data-v-c0748fd8"]]),iR=u.defineComponent({name:"ChatMessage",__name:"ChatMessage",props:{message:{type:Object,required:!0},streaming:{type:Boolean,default:!1},toolMessages:{type:Array,default:()=>[]},theme:{type:Object,default:void 0},userAvatar:{type:String,default:void 0},assistantAvatar:{type:String,default:void 0},toolStates:{type:Object,default:()=>({})},followUps:{type:Array,default:void 0},showFollowUps:{type:Boolean,default:!0}},emits:["copy","feedback","branch","action","attachment-preview","tool-action"],setup(e,{emit:A}){const t=e,r=A;return(i,n)=>(u.openBlock(),u.createBlock(rR,u.mergeProps(t,{onCopy:n[0]||(n[0]=a=>r("copy",a)),onFeedback:n[1]||(n[1]=a=>r("feedback",a)),onBranch:n[2]||(n[2]=a=>r("branch",a)),onAction:n[3]||(n[3]=a=>r("action",a)),onAttachmentPreview:n[4]||(n[4]=a=>r("attachment-preview",a)),onToolAction:n[5]||(n[5]=a=>r("tool-action",a))}),u.createSlots({_:2},[i.$slots["user-avatar"]?{name:"user-avatar",fn:u.withCtx(()=>[u.renderSlot(i.$slots,"user-avatar")]),key:"0"}:void 0,i.$slots["assistant-avatar"]?{name:"assistant-avatar",fn:u.withCtx(()=>[u.renderSlot(i.$slots,"assistant-avatar")]),key:"1"}:void 0,i.$slots.content?{name:"content",fn:u.withCtx(a=>[u.renderSlot(i.$slots,"content",u.normalizeProps(u.guardReactiveProps(a)))]),key:"2"}:void 0,i.$slots.actionbar?{name:"actionbar",fn:u.withCtx(a=>[u.renderSlot(i.$slots,"actionbar",u.normalizeProps(u.guardReactiveProps(a)))]),key:"3"}:void 0,i.$slots.tool?{name:"tool",fn:u.withCtx(a=>[u.renderSlot(i.$slots,"tool",u.normalizeProps(u.guardReactiveProps(a)))]),key:"4"}:void 0]),1040))}}),tBA="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAIAAAACACAYAAADDPmHLAAAEkUlEQVR4AeycAW6cQAxFQ0/WnCzJyZKebGtHuKrQJrBhzPj7/wo0u0AH+78HykYbfj3pH3UCEoAa/9OTBJAA5AmQt687gAQgT4C8fd0BJAB5AqTtR9u6A0QSpKMEIAUfbUuASIJ0lACk4KNtCRBJkI4SgBR8tC0BIgnSUQKQgd+2KwG2iZC9lwBkwLftSoBtImTvJQAZ8G27EmCbCNl7CUAGfNuuBNgmQvaeWoDb7fbb1ldbf3fn/lV/lAIYcId+s1DebX2x9d22+fJqr6kWOgGMckC/B/rF9lNJQCWAwXX4e7d7KgloBDgIP+4KNBJQCPAgfCoJ2gvwQ/g0ErQW4CR8CgnaCjAIPrwE0cBXY0sBBsOP7Fr+YNhOgCT4bSVoJUAy/JYStBHgIvjtJGghwMXwW0kAL8Ak+G0kgBZgMvwWEsAKUAR+WQmisL0RUoBi8CNjyN8TwAlQFD6sBFACnIT/FpQOjB92zCPH2+H/Fqg7AYwAZ+Evy/LQN33W49tLACHA1fDjWmaQoLwAs+CzSFBagNnwGSQoK0AV+GgSRL1Hx5ICVIMfYXb8maCcAFXhd5WglADV4XeUoIwAKPC7SVBCADT4nSSYLgAq/C4STBUAHX4HCaYJ0AV+FQmijkfHKQJ0gx+hI/6e4HIBusJHleBSAbrDR5TgMgFY4KNJcIkAbPCRJEgXgBU+igSpArDDR5AgTQCD79/B23sgU2S0Hd/Wj1Tb7bDv137OfMfwbpZnA0kRwOB7sf78vZ/U1w5+hHBSAn/CWUw1bEwRwKpzAWx4eGkLP5I4I8F6YcVUQ8YsAX5SXHv4EcoZCWKOUWMVAWjgB7gqEmQJ4H9ZE73ujXTwI5BHJbDjH8k1TvPtmCLAWuiRYmnhBxXLyj8tHfl0cOSYmPbwmCKAn90ae7bxu6Kf7Rhv3g7jXtYcvssq7UJJE8CR/tdYNOd3BW/Gdi3+2g/TaglYIH4xxEXj2cR690Kx/zJkSRXAK/TG1tWGJbUZPx/yuizLh62vtnpOsboIaW2lC5BWuSYekoAEGBIj7iQSAJfdkMolwJAYcSeRALjshlQuAYbEiDuJBABjN7pcCTA6UbD5JAAYsNHlSoDRiYLNJwHAgI0uVwKMThRsPgkABmx0uRJgdKJg80kAEGBZZUqArGRB5pUAIKCyypQAWcmCzCsBQEBllSkBspIFmVcCgIDKKlMCZCULMq8EKA4quzwJkJ1w8fklQHFA2eVJgOyEi88vAYoDyi5PAmQnXHx+CVAcUHZ5EiA74eLzS4CigK4qSwJclXTR80iAomCuKksC3E/6z/3N/bayCZD6uBVEPdgEOMqIRhQqAfzhSwcM8KeYSYADQaEeEo+su1f/51O67u3ouo3qDuAQ7S7gj2Fb7LWL4Fd6rJ+PZbPtU5erT04nQAS8ivAJ3V776CLEbpqRVgAawjuNSoCdgLrvlgDdCe/0JwF2Auq+WwJ0J7zTnwTYCaj7bglQhPCsMiTArOSLnFcCFAExqwwJMCv5IueVAEVAzCpDAsxKvsh5JUARELPKkACzki9yXgkwGcTs0/8FAAD//wp1l3UAAAAGSURBVAMAxMyyEBy8oUUAAAAASUVORK5CYII=",rBA=["width","height"],nR=u.defineComponent({__name:"ChatSenderAppendIcon",props:{size:{default:18}},setup(e){return(A,t)=>(u.openBlock(),u.createElementBlock("svg",{xmlns:"http://www.w3.org/2000/svg",width:e.size,height:e.size,viewBox:"0 0 24 24",fill:"none","aria-hidden":"true"},[...t[0]||(t[0]=[u.createStaticVNode('<g transform="translate(-1862.0 -548.0)"><g><g transform="translate(1861.9959141981599 548.0)"><g transform="translate(3.0 3.5)"><g transform="translate(0.0 8.357142857143003)"><path d="M0,0.642857143 L18,0.642857143" stroke="#333333" stroke-width="2" fill="none" stroke-linecap="round" stroke-linejoin="round"></path></g><g transform="translate(8.357142857144026 0.0)"><path d="M0.642857143,18 L0.642857143,0" stroke="#333333" stroke-width="2" fill="none" stroke-linecap="round" stroke-linejoin="round"></path></g></g></g></g></g>',1)])],8,rBA))}}),iBA=["width","height"],Mv=u.defineComponent({__name:"ChatSenderMicIcon",props:{size:{default:18}},setup(e){return(A,t)=>(u.openBlock(),u.createElementBlock("svg",{xmlns:"http://www.w3.org/2000/svg",width:e.size,height:e.size,viewBox:"0 0 25 24",fill:"none","aria-hidden":"true"},[...t[0]||(t[0]=[u.createStaticVNode('<g transform="translate(-1928.0 -601.0)"><g><g transform="translate(1898.0 594.0)"><g transform="translate(30.0 7.0)"><g transform="translate(0.375 0.0)"><g transform="translate(5.659200989204692 12.57531220702094)"><path d="M0,0 C0.229204017,0.762048065 0.57649942,1.46898985 1.01932986,2.09713112 C2.26092584,3.8582966 4.25353634,5 6.5,5 C8.74646366,5 10.7390742,3.8582966 11.9806701,2.09713112 C12.4235006,1.46898985 12.770796,0.762048065 13,0" stroke="#333333" stroke-width="2" fill="none" stroke-linecap="round" stroke-miterlimit="10"></path><g transform="translate(5.0 8.0)"><path d="M0,0.05 L3,0.05" stroke="#333333" stroke-width="2" fill="none" stroke-linecap="round" stroke-miterlimit="10"></path></g></g><g transform="translate(9.0 3.0)"><path d="M3,10 C4.65007031,10 6,8.59370804 6,6.87501526 L6,3.12498474 C6,1.40629196 4.65007031,0 3,0 C1.35004688,0 0,1.40629196 0,3.12498474 L0,6.87501526 C0,8.59370804 1.35004688,10 3,10 Z" stroke="#333333" stroke-width="2" fill="none" stroke-miterlimit="10"></path></g></g></g></g></g></g>',1)])],8,iBA))}}),nBA=["width","height"],WI=u.defineComponent({__name:"ChatSenderMicOffIcon",props:{size:{default:18}},setup(e){return(A,t)=>(u.openBlock(),u.createElementBlock("svg",{xmlns:"http://www.w3.org/2000/svg",width:e.size,height:e.size,viewBox:"0 0 24 24",fill:"none","aria-hidden":"true"},[...t[0]||(t[0]=[u.createStaticVNode('<g transform="translate(-1928.0 -549.0)"><g><g transform="translate(1928.0 549.0)"><g transform="translate(3.377038325590547 4.575312207019124)"><g transform="translate(3.2821626636141445 8.000000000001819)"><path d="M0,0 C0.229204017,0.762048065 0.57649942,1.46898985 1.01932986,2.09713112 C1.92019171,3.37497578 3.21642394,4.32670563 4.71812388,4.75283811 M9.37965997,4.33144808 C10.4144641,3.82399514 11.30784,3.05151991 11.9806701,2.09713112 C12.4235006,1.46898985 12.770796,0.762048065 13,0" stroke="#999999" stroke-width="2" fill="none" stroke-linecap="round" stroke-miterlimit="10"></path></g><path d="M0,0 L17.2479617,17.2479617" stroke="#979797" stroke-width="2" fill="none" stroke-linecap="round" stroke-miterlimit="10"></path><g transform="translate(8.282162663614145 16.00000000000182)"><path d="M0,0.05 L3,0.05" stroke="#999999" stroke-width="2" fill="none" stroke-linecap="round" stroke-miterlimit="10"></path></g></g><g transform="translate(10.0 2.999999999996362)"><path d="M2.82440307,9.99466861 C1.25522799,9.8991521 1.4551027e-11,8.53232615 1.4551027e-11,6.87501526 L1.45519152e-11,3.12498474 C1.45519152e-11,1.40629196 1.34992969,0 3,0 L3.17559693,0.0053313882 C4.74477201,0.100847896 6,1.46767385 6,3.12498474 L6,6.87501526 C6,8.59370804 4.64995313,10 3,10 Z" stroke="#999999" stroke-width="2" fill="none" stroke-linecap="round" stroke-miterlimit="10"></path></g></g></g></g>',1)])],8,nBA))}}),aBA=["width","height"],aR=u.defineComponent({__name:"ChatSenderMoreIcon",props:{size:{default:18}},setup(e){return(A,t)=>(u.openBlock(),u.createElementBlock("svg",{xmlns:"http://www.w3.org/2000/svg",width:e.size,height:e.size,viewBox:"0 0 16 17",fill:"none","aria-hidden":"true"},[...t[0]||(t[0]=[u.createStaticVNode('<g transform="translate(-1902.0 -604.0)"><g><g transform="translate(1898.0 594.0)"><g transform="translate(4.0 10.5)"><g transform="translate(11.375 6.5) rotate(90.00000000000001)"><path d="M0,0 L3,3 L0,6" stroke="#969696" stroke-width="2" fill="none" stroke-linecap="round" stroke-linejoin="round"></path></g></g></g></g></g>',1)])],8,aBA))}}),oBA=["width","height"],oR=u.defineComponent({__name:"ChatSenderCheckIcon",props:{size:{default:18}},setup(e){return(A,t)=>(u.openBlock(),u.createElementBlock("svg",{xmlns:"http://www.w3.org/2000/svg",width:e.size,height:e.size,viewBox:"0 0 16 16",fill:"none","aria-hidden":"true"},[...t[0]||(t[0]=[u.createElementVNode("g",{transform:"translate(-2076.0 -552.0)"},[u.createElementVNode("g",null,[u.createElementVNode("g",{transform:"translate(2076.0 552.0)"},[u.createElementVNode("g",{transform:"translate(2.000000000000007 4.0)"},[u.createElementVNode("path",{d:"M0,4 L4.27639723,8 L12.2763972,0",stroke:"#2C69F3","stroke-width":"2",fill:"none","stroke-linecap":"round","stroke-linejoin":"round"})])])])],-1)])],8,oBA))}}),sBA=["width","height"],sR=u.defineComponent({__name:"ChatSenderClickIcon",props:{size:{default:18}},setup(e){return(A,t)=>(u.openBlock(),u.createElementBlock("svg",{xmlns:"http://www.w3.org/2000/svg",width:e.size,height:e.size,viewBox:"0 0 24 24",fill:"none","aria-hidden":"true"},[...t[0]||(t[0]=[u.createElementVNode("g",{transform:"translate(-2033.0 -549.0)"},[u.createElementVNode("g",null,[u.createElementVNode("g",{transform:"translate(2033.0 549.0)"},[u.createElementVNode("g",{transform:"translate(3 2)"},[u.createElementVNode("path",{d:"M6.61668011,2.02458201 C7.7003286,2.02458201 8.51458579,2.88305563 8.51458579,3.94300909 L8.51458579,5.88861581 C8.79114952,5.74311713 9.10410672,5.66003482 9.44030791,5.66003482 C10.3034439,5.66003482 10.9729508,6.2046739 11.2363119,6.96073341 C11.5369431,6.77732973 11.9008512,6.66981452 12.2813621,6.66981452 C13.1437808,6.66981452 13.8132877,7.21447976 14.0767551,7.97053926 C14.37728,7.78700479 14.68952,7.67951574 15.0701371,7.67951574 L15.121699,7.67951574 C16.2060647,7.67951574 16.9992828,8.5388003 17,9.59864913 L17,13.4363142 C17,17.0610417 16.4877023,20 10.9561619,20 C8.53493425,20 7.3895497,19.5248142 6.39037655,18.7221647 C6.25930696,18.644105 6.13487852,18.5516053 6.02208535,18.4412649 L0.540752061,13.0793951 C-0.393656674,12.1585051 0.0342719774,10.8656544 0.687069711,10.2229175 C1.33989401,9.58004978 2.69633406,9.47326704 3.46266877,10.2229175 L4.65401002,11.3916941 L4.65401002,3.94300909 C4.65401002,2.88376193 5.53303163,2.02458201 6.61668011,2.02458201 Z M6.61739736,3.23639089 C6.10366515,3.23639089 5.68734521,3.64340528 5.68734521,4.14514292 L5.68734521,13.8297257 C5.68734521,13.8297257 5.1655905,13.319434 4.57245679,12.7383025 C4.48988013,12.6574258 4.40590857,12.5751926 4.32175075,12.4927847 L4.06992715,12.2462181 C3.44501444,11.6343992 2.87761068,11.0792199 2.87761068,11.0792199 C2.51441989,10.7245243 1.82448489,10.7374209 1.44904783,11.1072105 C1.0735045,11.4776278 0.957815804,12.0552801 1.41698439,12.5074718 L6.60578864,17.5834191 C7.56854177,18.5251582 8.83917827,18.9894878 10.9554181,18.9894878 C15.766303,18.9894878 15.9580322,16.6835877 15.9656351,13.7738278 L15.9659476,13.4355033 L15.9680462,9.71974107 C15.9680462,8.77525528 15.0678526,8.81111985 15.0678526,8.81111985 C14.5540938,8.81111985 14.1712984,9.21810807 14.1712984,9.71974107 L14.1712984,11.71921 L14.1618414,11.71921 C14.167659,11.7521971 14.1712984,11.7858381 14.1712984,11.8202639 C14.1712984,12.0997511 13.9529642,12.3254807 13.6677138,12.3254807 C13.3824635,12.3254807 13.1510595,12.0990186 13.1510595,11.8207871 C13.1510595,11.7848179 13.1546723,11.7497642 13.1612072,11.71921 L13.1510595,11.71921 L13.1510595,8.79027079 C13.1510595,7.93896485 12.2224419,7.88164956 12.2224419,7.88164956 C11.7086831,7.88164956 11.343314,8.28863779 11.343314,8.79027079 L11.343314,11.1129394 L11.3331398,11.1129394 C11.3396746,11.1458479 11.343314,11.1795674 11.343314,11.2138886 C11.343314,11.4934804 11.11191,11.71921 10.8266597,11.71921 C10.5413828,11.71921 10.3098725,11.4927741 10.3098725,11.2145164 C10.3098725,11.1785472 10.3136181,11.1434936 10.320153,11.1129394 L10.3098725,11.1129394 L10.3098725,7.78056957 C10.3098725,6.85967957 9.40024854,6.8718437 9.40024854,6.8718437 C8.88648976,6.8718437 8.5153296,7.27893657 8.5153296,7.78056957 L8.5153296,10.3052673 L8.50515537,10.3052673 C8.51169025,10.3382805 8.5153296,10.372 8.5153296,10.4063212 C8.5153296,10.6858084 8.28392563,10.911538 7.99867528,10.911538 C7.71339837,10.911538 7.48188815,10.6851021 7.48188815,10.4068444 C7.48188815,10.3709798 7.48563375,10.3358215 7.49216864,10.3052673 L7.48188815,10.3052673 L7.48188815,4.14514292 C7.48188815,3.64340528 7.13115613,3.23639089 6.61739736,3.23639089 Z M6.58836228,0 C8.78897123,0 10.5734462,1.75715427 10.5734462,3.92430511 C10.5734462,4.28839189 10.5174215,4.63879729 10.422772,4.97272227 C10.1782982,4.7283933 9.84281427,4.5764594 9.4709103,4.5621502 C9.51824836,4.35645869 9.54449415,4.14289321 9.54449415,3.9235988 C9.54449415,2.31539626 8.22072852,1.01192477 6.58761848,1.01192477 C4.95453499,1.01192477 3.63087562,2.31539626 3.63087562,3.9235988 C3.63087562,4.34500087 3.72395787,4.74558004 3.88770188,5.10752175 L3.88770188,6.8037769 C3.09884042,6.08706116 2.60253457,5.0637832 2.60325103,3.92430511 C2.60325103,1.75715427 4.38764708,0 6.58836228,0 Z",fill:"#999999"})])])])],-1)])],8,sBA))}}),lBA=["width","height"],lR=u.defineComponent({__name:"ChatSenderLinkIcon",props:{size:{default:18}},setup(e){return(A,t)=>(u.openBlock(),u.createElementBlock("svg",{xmlns:"http://www.w3.org/2000/svg",width:e.size,height:e.size,viewBox:"0 0 25 25",fill:"none","aria-hidden":"true"},[...t[0]||(t[0]=[u.createStaticVNode('<g transform="translate(-2057.0 -751.0)"><g><g transform="translate(2057.0 751.0)"><g transform="translate(2.9540584539816095 8.40380592228744) rotate(-44.99999999999999)"><path d="M0,5.88235294 L0,3.52941176 C0,1.58017147 1.56700338,0 3.5,0 C5.43299662,0 7,1.58017147 7,3.52941176 L7,8.23529412 C7,10.1845344 5.43299662,11.7647059 3.5,11.7647059" stroke="#000000" stroke-width="2" fill="none" stroke-linecap="round" stroke-linejoin="round"></path><g transform="translate(0.0 8.235294117647062)"><path d="M7,5.88235294 C7,6.40522876 7,7.18954248 7,8.23529412 C7,10.1845344 5.43299662,11.7647059 3.5,11.7647059 C1.56700338,11.7647059 0,10.1845344 0,8.23529412 L0,3.52941176 C0,1.58017147 1.56700338,0 3.5,0" stroke="#000000" stroke-width="2" fill="none" stroke-linecap="round" stroke-linejoin="round"></path></g></g></g></g></g>',1)])],8,lBA))}}),gBA=["width","height"],cBA=u.defineComponent({__name:"ChatSenderAtIcon",props:{size:{default:18}},setup(e){return(A,t)=>(u.openBlock(),u.createElementBlock("svg",{xmlns:"http://www.w3.org/2000/svg",width:e.size,height:e.size,viewBox:"0 0 24 24",fill:"none","aria-hidden":"true"},[...t[0]||(t[0]=[u.createStaticVNode('<defs><clipPath id="chat-sender-at-clip"><path d="M24,0 L24,24 L0,24 L0,0 L24,0 Z"></path></clipPath></defs><g transform="translate(-1814.0 -549.0)"><g><g transform="translate(1808.0 542.0)"><g transform="translate(6.0 7.0)"><g clip-path="url(#chat-sender-at-clip)"><g transform="translate(1.0 -7.0)"><text transform="translate(0.0 28.0)" font-family="PingFang SC, -apple-system, BlinkMacSystemFont, sans-serif" font-size="26.0" font-weight="400" fill="#333333" text-anchor="left"> @ </text></g></g></g></g></g></g>',2)])],8,gBA))}}),uBA=["width","height"],hBA=u.defineComponent({__name:"ChatFileDropIcon",props:{size:{default:48}},setup(e){return(A,t)=>(u.openBlock(),u.createElementBlock("svg",{xmlns:"http://www.w3.org/2000/svg",width:e.size,height:e.size,viewBox:"0 0 24 24",fill:"none","aria-hidden":"true"},[...t[0]||(t[0]=[u.createElementVNode("path",{d:"M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8z",stroke:"currentColor","stroke-width":"1.5","stroke-linecap":"round","stroke-linejoin":"round"},null,-1),u.createElementVNode("path",{d:"M14 2v6h6",stroke:"currentColor","stroke-width":"1.5","stroke-linecap":"round","stroke-linejoin":"round"},null,-1),u.createElementVNode("path",{d:"M12 11v6M9 14h6",stroke:"currentColor","stroke-width":"1.5","stroke-linecap":"round","stroke-linejoin":"round"},null,-1)])],8,uBA))}}),CBA={class:"chat-file-drop-overlay",role:"status","aria-live":"polite"},IBA={class:"chat-file-drop-overlay__content"},dBA={class:"chat-file-drop-overlay__label"},fBA=u.defineComponent({__name:"ChatFileDropOverlay",props:{label:{default:"将文件拖放到此处添加到对话"}},setup(e){return(A,t)=>(u.openBlock(),u.createElementBlock("div",CBA,[u.createElementVNode("div",IBA,[u.createVNode(u.unref(hBA),{size:48,class:"chat-file-drop-overlay__icon"}),u.createElementVNode("p",dBA,u.toDisplayString(e.label),1)])]))}}),gR=ae(fBA,[["__scopeId","data-v-358bf35a"]]);async function uy(e,A,t){var C,h;const r=va(e.name);if(!r)throw new Error("文件缺少扩展名");const i=new URLSearchParams({bucketType:El(e)==="video"?"52":"51",fileType:r});(C=A.dir)!=null&&C.trim()&&i.set("dir",A.dir.trim());const n=await((h=A.credentialHeaders)==null?void 0:h.call(A)),a=A.cloudBaseUrl.replace(/\/+$/,""),o=await fetch(`${a}/common/file/getToken?${i.toString()}`,{method:"GET",credentials:"include",headers:n,signal:t});if(!o.ok)throw new Error(`获取上传凭证失败:HTTP ${o.status}`);const s=await o.json();if(!hE(s)||s.status!==1||!hE(s.result)){const I=hE(s)&&typeof s.message=="string"?s.message:"";throw new Error(I||"获取上传凭证失败")}const{uptoken:l,fileKey:g,uploadUrl:c}=s.result;if(![l,g,c].every(I=>typeof I=="string"&&I.trim()))throw new Error("上传凭证响应不完整");return{uptoken:l,fileKey:g,uploadUrl:c}}function hy(e,A,t={}){return new Promise((r,i)=>{var g,c;if((g=t.signal)!=null&&g.aborted){i(J8());return}const n=new XMLHttpRequest,a=()=>{var C;return(C=t.signal)==null?void 0:C.removeEventListener("abort",s)},o=C=>{a(),i(C)},s=()=>n.abort();n.open("POST",A.uploadUrl),n.upload.onprogress=C=>{var h;!C.lengthComputable||C.total<=0||(h=t.onProgress)==null||h.call(t,Math.round(C.loaded/C.total*100))},n.onload=()=>{if(n.status<200||n.status>=300){o(new Error(`文件上传失败:HTTP ${n.status}`));return}try{const C=JSON.parse(n.responseText),h=Gv(C);a(),r(h)}catch(C){o(C instanceof Error?C:new Error("上传响应无法解析"))}},n.onerror=()=>o(new Error("文件上传失败,请检查网络后重试")),n.onabort=()=>o(J8()),(c=t.signal)==null||c.addEventListener("abort",s,{once:!0});const l=new FormData;l.append("token",A.uptoken),l.append("key",A.fileKey),l.append("file",e,e.name),n.send(l)})}async function BBA(e,A,t={}){const r=await uy(e,A,t.signal);return hy(e,r,t)}function J8(){if(typeof DOMException=="function")return new DOMException("上传已取消","AbortError");const e=new Error("上传已取消");return e.name="AbortError",e}function hE(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}let O8=0;function cR(e){const A=new Map,t=new Map,r=e.upload??pBA;function i(c,C){const h=e.getAttachments(),I=h.findIndex(f=>f.id===c);if(I<0)return;const d=[...h];d[I]=C,e.setAttachments(d)}async function n(c,C,h){var f,B;const I=e.getUploadConfig();if(!(I!=null&&I.cloudBaseUrl)){const p={code:"missing_config",message:"未配置文件上传服务"};i(c,{id:c,status:"error",file:C,progress:0,previewUrl:h,error:p}),(f=e.onError)==null||f.call(e,p,C);return}const d=new AbortController;A.set(c,d),i(c,{id:c,status:"uploading",file:C,progress:0,previewUrl:h});try{const p=await r(C,{config:I,signal:d.signal,onProgress(E){const m=e.getAttachments().find(v=>v.id===c);!m||m.status!=="uploading"||i(c,{...m,progress:E})}});if(d.signal.aborted)return;const Q=Gv(p);i(c,{id:c,status:"uploaded",previewUrl:h??Q.url,uploadResult:Q,resource:bS(Q)})}catch(p){if(d.signal.aborted||QBA(p))return;const Q={code:p instanceof Error&&p.message.includes("元数据")?"invalid_response":"upload_error",message:p instanceof Error?p.message:"文件上传失败"};i(c,{id:c,status:"error",file:C,progress:0,previewUrl:h,error:Q}),(B=e.onError)==null||B.call(e,Q,C)}finally{A.delete(c)}}async function a(c){var p,Q,E,m;const C=e.getAttachments(),h=((p=e.getLimits)==null?void 0:p.call(e))??lh,I=new Set;for(const v of C)v.status!=="uploaded"&&I.add(mE(v.file));for(const v of t.values())I.add(v);const d=Math.max(0,h.maxFiles-C.length),f=[],B=[];for(const v of c){if(f.length+B.length>=d){(Q=e.onError)==null||Q.call(e,{code:"too_many_files",message:`每条消息最多上传 ${h.maxFiles} 个文件`},v);continue}const w=kS(v,h);if(w){(E=e.onError)==null||E.call(e,w,v);const S=H8();B.push({id:S,status:"error",file:v,progress:0,previewUrl:V8(v),error:w});continue}const k=mE(v);if(I.has(k)){(m=e.onError)==null||m.call(e,{code:"duplicate_file",message:"请勿重复添加同一文件"},v);continue}I.add(k);const b=H8();t.set(b,k),f.push({id:b,file:v,previewUrl:V8(v)})}f.length===0&&B.length===0||(e.setAttachments([...C,...B,...f.map(({id:v,file:w,previewUrl:k})=>({id:v,status:"uploading",file:w,progress:0,previewUrl:k}))]),await Promise.all(f.map(({id:v,file:w,previewUrl:k})=>n(v,w,k))))}async function o(c){const C=e.getAttachments().find(h=>h.id===c);!C||C.status!=="error"||await n(c,C.file,C.previewUrl)}function s(c){var I;(I=A.get(c))==null||I.abort(),A.delete(c);const C=e.getAttachments(),h=C.find(d=>d.id===c);CE(h==null?void 0:h.previewUrl),t.delete(c),e.setAttachments(C.filter(d=>d.id!==c))}function l(){for(const c of A.values())c.abort();A.clear();for(const c of e.getAttachments())CE(c.previewUrl);t.clear()}function g(){for(const c of A.values())c.abort();A.clear();for(const c of e.getAttachments())CE(c.previewUrl);t.clear(),e.setAttachments([])}return{addFiles:a,retry:o,remove:s,clear:g,dispose:l}}async function pBA(e,{config:A,signal:t,onProgress:r}){const i=await uy(e,A,t);return hy(e,i,{signal:t,onProgress:r})}function H8(){return typeof crypto<"u"&&typeof crypto.randomUUID=="function"?crypto.randomUUID():(O8+=1,`chat-attachment-${O8}`)}function V8(e){if(!(!e.type.startsWith("image/")||typeof URL.createObjectURL!="function"))return URL.createObjectURL(e)}function CE(e){e!=null&&e.startsWith("blob:")&&typeof URL.revokeObjectURL=="function"&&URL.revokeObjectURL(e)}function QBA(e){return e instanceof DOMException&&e.name==="AbortError"}function lc(e){var r;const A=(r=e.dataTransfer)==null?void 0:r.types;if(!A||A.length===0)return!1;const t=Array.from(A);return t.includes("Files")||t.includes("application/x-moz-file")}function vf(e){if(!e)return[];const A=mBA(e.files),t=EBA(e.items);return t.length>A.length?t:A.length>0?A:t}function EBA(e){if(!(e!=null&&e.length))return[];const A=[];for(let t=0;t<e.length;t++){const r=e[t];if(!r||r.kind!=="file")continue;const i=r.getAsFile();if(!i)continue;const n=typeof r.webkitGetAsEntry=="function"?r.webkitGetAsEntry():null;n!=null&&n.isDirectory||A.push(i)}return A}function mBA(e){return!e||e.length===0?[]:Array.from(e)}const uR=Symbol("chatFileDropBridge");function vBA(){if(typeof window>"u")return!1;const e=window;return!!(e.SpeechRecognition??e.webkitSpeechRecognition)}function CI(e){if(!e||typeof e!="object")return!1;const A="name"in e?String(e.name):"";return A==="NotAllowedError"||A==="PermissionDeniedError"}function yBA(e){var oe,Se;const A=u.ref(!1),t=((oe=yg())==null?void 0:oe.getItem("chat-sender-hold-to-record"))??null,r=u.ref(t==="true"),i=u.ref(!1),n=u.ref(!1),a=u.ref(0),o=u.ref(!1),s=u.ref(null),l=u.ref([]),g=((Se=yg())==null?void 0:Se.getItem("chat-sender-device-id"))??null,c=u.ref(g||""),C=u.ref(vBA()),h=u.ref(!1);let I=null,d=null,f=null,B=null,p=null,Q=null,E=null;const m=300;let v=null;function w(){v!=null&&(clearTimeout(v),v=null)}function k(){return typeof navigator>"u"?void 0:navigator.mediaDevices}function b(){l.value=[{deviceId:"default",label:"默认麦克风",active:!0}]}function S(){h.value=!0,s.value=null,A.value&&Z()}function N(){h.value=!1}function _(kA){kA==="denied"?S():N()}async function F(){try{const kA=typeof navigator>"u"?void 0:navigator.permissions;if(!(kA!=null&&kA.query))return;E=await kA.query({name:"microphone"}),_(E.state),E.onchange=()=>{E&&_(E.state)}}catch{}}function R(){return!C.value||h.value||e.isDisabled()}async function Y(kA){var VA;const WA=c.value;if(!WA||WA==="default")return kA.getUserMedia({audio:!0});try{return await kA.getUserMedia({audio:{deviceId:{exact:WA}}})}catch(gA){if(CI(gA))throw gA;return console.warn("指定麦克风不可用,回退到默认设备:",gA),c.value="",(VA=yg())==null||VA.removeItem("chat-sender-device-id"),kA.getUserMedia({audio:!0})}}async function q(){var kA,WA;if(!R()){if(A.value)Z();else{if(A.value=!0,(kA=e.onMenuOpen)==null||kA.call(e),await O(),h.value)return;await eA()}(WA=e.onVoiceClick)==null||WA.call(e)}}function Z(){A.value=!1,n.value||T()}async function O(){var WA;const kA=k();if(!(kA!=null&&kA.getUserMedia)||!kA.enumerateDevices){b();return}try{const VA=await kA.getUserMedia({audio:!0}),MA=(await kA.enumerateDevices()).filter(pe=>pe.kind==="audioinput");if(l.value=MA.map((pe,xe)=>({deviceId:pe.deviceId,label:pe.label||`麦克风 ${xe+1}`,active:!1})),l.value.length>0){const pe=l.value.find(xe=>xe.deviceId===c.value);pe?pe.active=!0:(l.value[0].active=!0,c.value=l.value[0].deviceId,(WA=yg())==null||WA.setItem("chat-sender-device-id",c.value))}n.value?me(VA):(p=VA,tA(VA)),N(),s.value=null}catch(VA){if(console.error("无法获取音频设备列表:",VA),b(),CI(VA)){S();return}s.value="无法获取麦克风列表,请检查浏览器权限"}}async function eA(){if(p||n.value||h.value)return;const kA=k();if(kA!=null&&kA.getUserMedia)try{const WA=await Y(kA);p=WA,tA(WA),N(),s.value=null}catch(WA){if(console.error("无法开启音频监测:",WA),CI(WA)){S();return}s.value="无法访问麦克风,请检查浏览器权限"}}function tA(kA){d||(d=new AudioContext),f||(f=d.createAnalyser(),f.fftSize=256),d.createMediaStreamSource(kA).connect(f),ZA()}function T(){p&&(me(p),p=null),GA(),d&&!n.value&&(d.close(),d=null,f=null),a.value=0}async function AA(){var kA;R()||r.value||(n.value?await FA(!1):await lA(),(kA=e.onVoiceRecord)==null||kA.call(e))}async function P(){R()||!r.value||(o.value=!0,w(),v=setTimeout(()=>{v=null,!(!o.value||!r.value||n.value)&&lA()},m))}async function K(){if(!r.value)return;w();const kA=o.value;o.value=!1,kA&&n.value&&await FA(!1)}function iA(){r.value&&o.value&&K()}async function lA(){var WA;if(!C.value||h.value)return;const kA=k();if(!(kA!=null&&kA.getUserMedia)){s.value="当前浏览器不支持麦克风录音";return}try{p&&(me(p),p=null);const VA=await Y(kA);p=VA,tA(VA),vA(),typeof MediaRecorder<"u"&&(I=new MediaRecorder(VA),I.start()),n.value=!0,A.value&&Z(),N(),s.value=null,(WA=e.onVoiceStart)==null||WA.call(e)}catch(VA){if(console.error("无法访问麦克风:",VA),CI(VA)){S();return}s.value="无法访问麦克风,请检查浏览器权限"}}function vA(){const kA=window,WA=kA.SpeechRecognition??kA.webkitSpeechRecognition;if(!WA)return;const VA=new WA;Q=VA,VA.lang="zh-CN",VA.continuous=!0,VA.interimResults=!0;let gA=e.draft.value;VA.onresult=MA=>{let pe="",xe="";for(let $e=MA.resultIndex;$e<MA.results.length;$e+=1){const Pt=MA.results[$e][0].transcript;MA.results[$e].isFinal?xe+=Pt:pe+=Pt}xe?(gA+=xe,e.draft.value=gA):pe&&(e.draft.value=gA+pe)},VA.onerror=MA=>{if(console.error("语音识别错误:",MA.error),MA.error==="not-allowed"){S(),FA(!1,!0);return}MA.error!=="no-speech"&&MA.error!=="aborted"&&(s.value=`语音识别失败:${MA.error}`)},VA.onend=()=>{if(n.value)try{VA.start()}catch{}};try{VA.start()}catch(MA){console.error("无法启动语音识别:",MA),Q=null}}async function FA(kA=!1,WA=!1){var VA,gA,MA;if(n.value){if(n.value=!1,Q==null||Q.stop(),Q=null,I==null||I.stop(),I=null,p&&(me(p),p=null),GA(),a.value=0,kA&&!WA)e.draft.value="",(VA=e.onVoiceCancel)==null||VA.call(e);else if(!WA){const pe=e.draft.value.trim();pe&&((gA=e.onAudioTranscript)==null||gA.call(e,pe))}WA||(MA=e.onVoiceStop)==null||MA.call(e),A.value&&!h.value&&await eA()}}function ZA(){if(!f)return;const kA=new Uint8Array(f.frequencyBinCount);f.getByteFrequencyData(kA);const WA=kA.reduce((VA,gA)=>VA+gA,0)/kA.length;a.value=Math.min(100,WA/128*100),B=requestAnimationFrame(ZA)}async function RA(kA){var VA,gA;const WA=l.value[kA];WA&&(l.value.forEach((MA,pe)=>{MA.active=pe===kA}),c.value=WA.deviceId,(VA=yg())==null||VA.setItem("chat-sender-device-id",c.value),(gA=e.onAudioDeviceChange)==null||gA.call(e,kA),A.value&&!n.value&&(T(),await eA()))}function qA(){var kA;r.value=!r.value,(kA=yg())==null||kA.setItem("chat-sender-hold-to-record",String(r.value)),w(),o.value=!1,r.value&&n.value&&FA(!1,!0)}function GA(){B!==null&&(cancelAnimationFrame(B),B=null)}function me(kA){kA.getTracks().forEach(WA=>WA.stop())}return u.onMounted(()=>{F()}),u.onUnmounted(()=>{E&&(E.onchange=null),E=null,w(),o.value=!1,A.value=!1,n.value&&FA(!1,!0),Q==null||Q.stop(),Q=null,GA(),p&&me(p),p=null,d&&d.close(),d=null,f=null}),{showVoiceMenu:A,holdToRecord:r,isVoiceHovered:i,isRecording:n,audioLevel:a,isHoldingMic:o,voiceError:s,audioDevices:l,isSpeechSupported:C,isMicPermissionDenied:h,toggleVoiceMenu:q,closeVoiceMenu:Z,handleVoiceRecord:AA,handleMouseDown:P,handleMouseUp:K,handleMouseLeave:iA,selectAudioDevice:RA,toggleHoldToRecord:qA}}function yg(){return typeof localStorage>"u"?void 0:localStorage}const D0="data-mention-trigger-id",yf="data-mention-id",oh="data-mention-label",LB="data-mention-char",Rv="data-mention-custom",XI="data-mention-mount-id",zc="chat-sender__mention";function $o(e){return!!e&&e.nodeType===Node.ELEMENT_NODE&&e.classList.contains(zc)}function As(e){if(!e||e.nodeType!==Node.TEXT_NODE)return!1;const A=e.textContent??"";return A.length===0||A==="​"}function wf(e){if(!e||e.nodeType!==Node.TEXT_NODE)return!1;const A=e.textContent??"";return A.length>0&&/^\s+$/.test(A)}function wBA(e,A){const t=A.cloneRange();t.collapse(!0);const{startContainer:r,startOffset:i}=t;if(r===e){if(i<=0)return!1;let n=i-1;for(;n>=0&&As(e.childNodes[n]);)n-=1;if(n<0)return!1;const a=e.childNodes[n];if($o(a))return!0;if(a.nodeType===Node.TEXT_NODE){const o=a.textContent??"";return o.length?!/\s/.test(o[o.length-1]):!0}return!0}if(r.nodeType===Node.TEXT_NODE&&e.contains(r)){if(i>0){const a=(r.textContent??"")[i-1];return a!==void 0&&!/\s/.test(a)}let n=r.previousSibling;for(;As(n);)n=n.previousSibling;if(!n)return!1;if($o(n))return!0;if(n.nodeType===Node.TEXT_NODE){const a=n.textContent??"";return a.length?!/\s/.test(a[a.length-1]):!0}return!0}return!1}function DBA(e,A){if(!A.collapsed)return null;const{startContainer:t,startOffset:r}=A;if(t===e){let i=r-1;for(;i>=0&&As(e.childNodes[i]);)i-=1;for(;i>=0&&wf(e.childNodes[i]);)i-=1;const n=e.childNodes[i];return $o(n)?n:null}if(t.nodeType===Node.TEXT_NODE&&e.contains(t)){const i=t.textContent??"";if(r>0){if(r===i.length&&/^\s+$/.test(i)){let a=t.previousSibling;for(;As(a);)a=a.previousSibling;return $o(a)?a:null}return null}let n=t.previousSibling;for(;As(n)||wf(n);)n=n.previousSibling;return $o(n)?n:null}return null}function kBA(e,A){if(!A.collapsed)return null;const{startContainer:t,startOffset:r}=A;if(t===e){let i=r;for(;i<e.childNodes.length&&As(e.childNodes[i]);)i+=1;for(;i<e.childNodes.length&&wf(e.childNodes[i]);)i+=1;const n=e.childNodes[i];return $o(n)?n:null}if(t.nodeType===Node.TEXT_NODE&&e.contains(t)){const i=t.textContent??"";if(r<i.length){if(r===0&&/^\s+$/.test(i)){let a=t.nextSibling;for(;As(a);)a=a.nextSibling;return $o(a)?a:null}return null}let n=t.nextSibling;for(;As(n)||wf(n);)n=n.nextSibling;return $o(n)?n:null}return null}function bBA(e){return/\s/.test(e)}function SBA(e,A,t){const r=[];let i;if(A===e)i=t-1;else if(A.nodeType===Node.TEXT_NODE&&A.parentNode===e){const n=A;for(let a=t-1;a>=0;a-=1)r.push({node:n,offset:a});i=Array.prototype.indexOf.call(e.childNodes,n)-1}else return r;for(let n=i;n>=0;n-=1){const a=e.childNodes[n];if(a.nodeType!==Node.TEXT_NODE)break;const o=a;for(let s=o.length-1;s>=0;s-=1)r.push({node:o,offset:s})}return r}function NBA(e,A,t,r){if(e.length===0)return null;const i=SBA(A,t,r);for(const{node:n,offset:a}of i){const o=n.data[a];if(bBA(o))return null;const s=e.find(l=>l.char===o);if(s){const l=document.createRange();return l.setStart(n,a),l.setEnd(t,r),{trigger:s,range:l}}}return null}function hR(e){let A="";return e.childNodes.forEach(t=>{if(t.nodeType===Node.TEXT_NODE)A+=t.textContent??"";else if(t.nodeType===Node.ELEMENT_NODE){const r=t;r.tagName==="BR"?A+=`
646
+ `}catch{return i}}),media:A}}function _fA(e){let A=null;U8.lastIndex=0;for(const r of e.matchAll(U8))A={index:r.index,kind:r[1]};if(!A)return null;const t=e.slice(A.index);return kfA.test(t)?null:{mediaType:A.kind==="IMG"?"image":A.kind.toLowerCase(),startIndex:A.index}}function FfA(e,A={}){if(!e)return[];if(!mf.value)return[{type:"html",id:"pending",html:"<p></p>"}];const t=JE(e);if(!t)return[];const r=XM(t),i=A.streaming===!0?_fA(r):null,n=i?r.slice(0,i.startIndex):r,{content:a,media:o}=xfA(n);let s=rIA(a,{heal:A.streaming===!0});s=NfA(s),s=vfA(s),s=wfA(s),s=s.replace(/<p>\s*((?:%%media-\d+%%\s*)+)<\/p>/g,"$1");const l=new Map(o.map(I=>[I.id,I])),g=s.split(/(%%media-\d+%%)/),c=[];let C=0;for(const I of g){const d=I.match(/^%%(media-\d+)%%$/);if(d){const f=l.get(d[1]);if(!f||typeof f.data.url!="string"||!f.data.url){A.streaming===!0&&f&&(c.push({type:"media-pending",id:`${f.id}-pending-${C}`,mediaType:f.type}),C+=1);continue}f.type==="image"?c.push({type:"image",id:`${f.id}-${C}`,url:f.data.url,alt:typeof f.data.alt=="string"?f.data.alt:void 0}):f.type==="video"?c.push({type:"video",id:`${f.id}-${C}`,url:f.data.url,poster:typeof f.data.poster=="string"?f.data.poster:void 0}):c.push({type:"audio",id:`${f.id}-${C}`,url:f.data.url,title:typeof f.data.title=="string"?f.data.title:void 0}),C+=1;continue}I.trim()&&(c.push({type:"html",id:`html-${C}`,html:I}),C+=1)}const h=MfA(c);return i&&h.push({type:"media-pending",id:`media-pending-${i.mediaType}`,mediaType:i.mediaType}),h}function MfA(e){const A=[];let t=[];const r=()=>{t.length!==0&&(t.length===1?A.push(t[0]):A.push({type:"image-stack",id:t[0].id,images:t.map(i=>({id:i.id,url:i.url,alt:i.alt}))}),t=[])};for(const i of e){if(i.type==="image"){t.push(i);continue}r(),A.push(i)}return r(),A}const RfA=["innerHTML"],LfA={key:3,class:"content-nodes__media"},GfA=["src","poster"],TfA={key:4,class:"content-nodes__media"},YfA={key:0},UfA=["src"],JfA=u.defineComponent({name:"ContentNodes",__name:"ContentNodes",props:{content:{},isStreaming:{type:Boolean},highlightStreamTail:{type:Boolean},density:{}},emits:["action"],setup(e,{emit:A}){const t=e,r=A,i=u.ref([]),n=u.ref(),a=u.ref();function o(I,d){const f=new V7({registry:hh});I&&f.push(I);const B=f.getPendingRoot(),p=(B==null?void 0:B.tag)==="chart";return a.value=p?{type:String((B==null?void 0:B.props.type)??"")}:void 0,!d&&!p&&f.finalize(),f.getNodes().filter(Q=>Q.kind==="text"?Q.text.length>0:Q.tag==="ask-form"?!1:Q.complete)}function s(){i.value=o(t.content,t.isStreaming===!0),u.nextTick(h)}u.watch(()=>[t.content,t.isStreaming,t.highlightStreamTail,mf.value],()=>s(),{immediate:!0}),u.onMounted(()=>{tR().then(()=>s())});const l=u.computed(()=>{const I=[];let d=-1;for(let f=0;f<i.value.length;f+=1)i.value[f].kind==="text"&&(d=f);for(let f=0;f<i.value.length;f+=1){const B=i.value[f];if(B.kind==="text"){const p=t.isStreaming===!0&&f===d;I.push({type:"text",key:B.id,segments:FfA(B.text,{streaming:p})});continue}if(B.tag==="artifact"){I.push({type:"artifact",key:B.id,node:B});continue}if(B.tag==="action-bar"){r6(B.props)&&I.push({type:"action-bar",key:B.id,node:B});continue}B.tag==="chart"&&I.push({type:"chart",key:B.id,chartType:String(B.props.type??""),rawJson:B.slotText,isClosed:!0})}return a.value&&I.push({type:"chart",key:"chart-pending",chartType:a.value.type,rawJson:"",isClosed:!1}),I});function g(){const I=n.value;if(!(!I||typeof document>"u"))for(const d of I.querySelectorAll(".content-nodes__stream-tail"))d.replaceWith(document.createTextNode(d.textContent??""))}function c(I){let d;const f=I.lastElementChild,B=f==null?void 0:f.lastElementChild;if(!(B!=null&&B.classList.contains("content-nodes__html")))return;function p(Q){for(const E of Q.childNodes){if(E.nodeType===3){const m=E,v=m.parentElement;m.data.trim().length>0&&v&&!v.closest(".math-block, .math-inline, .content-nodes__media")&&(d=m);continue}p(E)}}return p(B),d}function C(I){var m;const d=I.data,f=d.length-(((m=d.match(/\s*$/))==null?void 0:m[0].length)??0);if(f===0||typeof document>"u")return 0;const B=document.createRange();if(typeof B.getClientRects!="function")return 0;const p=v=>(B.setStart(I,v),B.setEnd(I,f),B.getClientRects().length);if(p(0)===0)return 0;let Q=0,E=f;for(;Q<E;){const v=Math.floor((Q+E)/2);p(v)<=1?E=v:Q=v+1}return Q}function h(){g();const I=n.value;if(!I||!t.isStreaming||!t.highlightStreamTail||typeof document>"u")return;const d=c(I);if(!d||!d.data.trim())return;const f=C(d),B=d.data.slice(0,f),p=d.data.slice(f),Q=document.createElement("span");Q.className="content-nodes__stream-tail",Q.textContent=p;const E=document.createDocumentFragment();B&&E.append(document.createTextNode(B)),E.append(Q),d.replaceWith(E)}return(I,d)=>(u.openBlock(),u.createElementBlock("div",{ref_key:"rootRef",ref:n,class:u.normalizeClass(["content-nodes",{"content-nodes--compact":e.density==="compact"}])},[(u.openBlock(!0),u.createElementBlock(u.Fragment,null,u.renderList(l.value,f=>(u.openBlock(),u.createElementBlock(u.Fragment,{key:f.key},[f.type==="artifact"?(u.openBlock(),u.createBlock(aq,{key:0,node:f.node,onAction:d[0]||(d[0]=B=>r("action",B))},null,8,["node"])):f.type==="action-bar"?(u.openBlock(),u.createBlock(_P,{key:1,node:f.node,onAction:d[1]||(d[1]=B=>r("action",B))},null,8,["node"])):f.type==="chart"?(u.openBlock(),u.createBlock(gCA,{key:2,type:f.chartType,"raw-json":f.rawJson,"is-closed":f.isClosed,"is-streaming":e.isStreaming},null,8,["type","raw-json","is-closed","is-streaming"])):(u.openBlock(),u.createBlock(u.TransitionGroup,{key:3,tag:"div",name:"content-media-fade",class:"content-nodes__text"},{default:u.withCtx(()=>[(u.openBlock(!0),u.createElementBlock(u.Fragment,null,u.renderList(f.segments,B=>(u.openBlock(),u.createElementBlock(u.Fragment,{key:B.id},[B.type==="html"?(u.openBlock(),u.createElementBlock("div",{key:0,class:"content-nodes__html",innerHTML:B.html},null,8,RfA)):B.type==="image"||B.type==="image-stack"?(u.openBlock(),u.createBlock(GCA,{key:1,images:B.type==="image"?[{id:B.id,url:B.url,alt:B.alt}]:B.images},null,8,["images"])):B.type==="media-pending"?(u.openBlock(),u.createBlock(PCA,{key:2,"media-type":B.mediaType},null,8,["media-type"])):B.type==="video"?(u.openBlock(),u.createElementBlock("figure",LfA,[u.createElementVNode("video",{src:B.url,poster:B.poster,controls:"",playsinline:""},null,8,GfA)])):B.type==="audio"?(u.openBlock(),u.createElementBlock("figure",TfA,[B.title?(u.openBlock(),u.createElementBlock("figcaption",YfA,u.toDisplayString(B.title),1)):u.createCommentVNode("",!0),u.createElementVNode("audio",{src:B.url,controls:""},null,8,UfA)])):u.createCommentVNode("",!0)],64))),128))]),_:2},1024))],64))),128))],2))}}),cy=ae(JfA,[["__scopeId","data-v-10fcddce"]]),OfA=8;function HfA(e,A){const t=u.ref(e.value);let r,i=!1;function n(){r!==void 0&&(cancelAnimationFrame(r),r=void 0)}function a(){const o=e.value,s=t.value;if(!A.value||s.length>=o.length){t.value=o,r=void 0;return}const l=o.length-s.length,g=Math.max(1,Math.ceil(l/OfA));t.value=o.slice(0,s.length+g),r=requestAnimationFrame(a)}return u.watch(e,o=>{if(!i){i=!0,t.value=o;return}if(!A.value||o.length<t.value.length){t.value=o,n();return}r===void 0&&(r=requestAnimationFrame(a))},{immediate:!0}),u.watch(A,o=>{o||(t.value=e.value,n())}),u.onBeforeUnmount(n),{displayed:t}}const Fv=u.defineComponent({name:"TextPartRenderer",__name:"TextPartRenderer",props:{content:{},isStreaming:{type:Boolean},highlightStreamTail:{type:Boolean},density:{default:"default"}},emits:["action"],setup(e,{emit:A}){const t=e,r=A,{displayed:i}=HfA(u.toRef(t,"content"),u.computed(()=>t.isStreaming===!0));return(n,a)=>(u.openBlock(),u.createBlock(cy,{content:u.unref(i),"is-streaming":e.isStreaming,"highlight-stream-tail":e.highlightStreamTail,density:e.density,onAction:a[0]||(a[0]=o=>r("action",o))},null,8,["content","is-streaming","highlight-stream-tail","density"]))}}),VfA=["aria-label","aria-busy"],ZfA={class:"conversation-message__inner"},PfA={key:0,class:"conversation-message__mark conversation-message__mark--assistant","aria-hidden":"true"},qfA=["src"],KfA={class:"conversation-message__content"},zfA={key:1,class:"conversation-message__bubble"},WfA={key:1,class:"conversation-message__text"},XfA={key:0,class:"conversation-message__text"},jfA={key:1,class:"conversation-message__plain"},$fA={key:1,class:"conversation-message__mark conversation-message__mark--user","aria-hidden":"true"},ABA=["src"],eBA=u.defineComponent({name:"MessageBubble",__name:"MessageBubble",props:{message:{type:Object,required:!0},streaming:{type:Boolean,default:!1},toolMessages:{type:Array,default:()=>[]},theme:{type:Object,default:void 0},userAvatar:{type:String,default:void 0},assistantAvatar:{type:String,default:void 0},toolStates:{type:Object,default:()=>({})},followUps:{type:Array,default:void 0},showFollowUps:{type:Boolean,default:!0}},emits:["copy","feedback","branch","action","attachment-preview","tool-action"],setup(e,{emit:A}){const t=e,r=A,i=u.useSlots(),n=u.computed(()=>t.message),a=u.computed(()=>t.message.role==="user"),o=u.computed(()=>t.message.role==="system"),s=u.computed(()=>t.message.role==="tool"),l=u.computed(()=>t.message.role==="assistant"),g=u.computed(()=>t.message.role==="assistant"?t.message:null),c=u.computed(()=>a.value?"用户消息":o.value?"系统消息":s.value?"工具消息":"AI 助手消息"),C=u.computed(()=>{var K;if(l.value)return JE((K=g.value)==null?void 0:K.content);const P=t.message.content;return typeof P=="string"?P:Array.isArray(P)?P.filter(iA=>iA.type==="text").map(iA=>iA.text).join(""):""}),h=u.computed(()=>{var P,K;return((K=(P=g.value)==null?void 0:P.reasoning_content)==null?void 0:K.trim())??""}),I=u.computed(()=>C.value),d=u.computed(()=>l.value&&!!h.value),f=u.computed(()=>{var P;return((P=g.value)==null?void 0:P.steps)??[]}),B=u.computed(()=>{if(t.message.role!=="user"&&t.message.role!=="system")return!1;const P=t.message.content;return typeof P=="string"?P.trim().length>0:P.some(K=>K.type==="text"?K.text.trim().length>0:!0)}),p=u.computed(()=>a.value||o.value?B.value:!!I.value.trim()),Q=u.computed(()=>I.value),E=u.computed(()=>{var P,K;return l.value&&t.streaming&&!p.value&&!d.value&&!((K=(P=g.value)==null?void 0:P.tool_calls)!=null&&K.length)}),m=u.computed(()=>d.value||E.value),v=u.computed(()=>l.value&&!t.streaming&&Q.value.trim().length>0),w=u.computed(()=>!l.value||!t.showFollowUps||t.streaming?[]:t.followUps??[]),k=u.computed(()=>w.value.length>0);function b(P){r("action",{type:"submit",value:P,label:P,source:"follow-up"})}const S=u.computed(()=>l.value&&(!!t.assistantAvatar||!!i["assistant-avatar"])),N=u.computed(()=>a.value&&(!!t.userAvatar||!!i["user-avatar"])),_=u.computed(()=>{var P;return((P=g.value)==null?void 0:P.tool_calls)??[]}),F=u.computed(()=>{var P;if(!(f.value.length>0))return b4((P=g.value)==null?void 0:P.content)||void 0}),R=u.computed(()=>{const P=[];let K=!1,iA="";for(const lA of f.value){if(lA.type==="reasoning"){P.push(lA);continue}if(lA.type==="tool_calls"){if(lA.tool_calls.length===0)continue;P.push({...lA,...iA?{summary:iA}:{}}),iA="";continue}const vA=b4(lA.content);vA&&(iA=vA);const FA=JE(lA.content);FA.trim()&&(K=!0,P.push({type:"content",content:FA}))}return!K&&I.value.trim()&&P.push({type:"content",content:I.value}),P}),Y=u.computed(()=>f.value.length>0),q=u.computed(()=>{let P=Y.value?pP(R.value):QP({reasoningContent:m.value?h.value:void 0,toolCalls:_.value,providerSummary:F.value,answerContent:p.value?I.value:void 0,includeEmptyProcessGroup:E.value});return l.value&&i.content&&t.streaming&&!P.some(K=>K.kind==="content")&&(P=[...P,{kind:"content",content:I.value,contentIndex:0}]),P}),Z=u.computed(()=>{var P;for(let K=q.value.length-1;K>=0;K-=1)if(((P=q.value[K])==null?void 0:P.kind)==="process_group")return K;return-1}),O=u.computed(()=>{var P;for(let K=q.value.length-1;K>=0;K-=1)if(((P=q.value[K])==null?void 0:P.kind)==="content")return K;return-1});function eA(P){if(!t.streaming||P!==Z.value)return!1;const K=q.value[P];return(K==null?void 0:K.kind)!=="process_group"?!1:!!(K.steps.length===0||K.steps.some(vA=>vA.type==="tool_calls")||K.steps.some(vA=>vA.type==="reasoning")&&!p.value&&_.value.length===0)}const tA=u.computed(()=>t.message.role==="user"||t.message.role==="system"?t.message.content:""),T=u.computed(()=>t.message.role==="user"?t.message.resource_files??[]:[]),AA=u.computed(()=>!a.value||p.value);return(P,K)=>(u.openBlock(),u.createElementBlock("article",{class:u.normalizeClass(["conversation-message",{"conversation-message--user":a.value,"conversation-message--system":o.value,"conversation-message--assistant":l.value,"conversation-message--tool":s.value,"conversation-message--text-only":p.value||m.value,"conversation-message--streaming":e.streaming,"conversation-message--loading":E.value,"conversation-message--with-avatar":S.value||N.value}]),"aria-label":c.value,"aria-busy":e.streaming?"true":void 0},[u.createElementVNode("div",ZfA,[S.value?(u.openBlock(),u.createElementBlock("span",PfA,[u.renderSlot(P.$slots,"assistant-avatar",{},()=>[e.assistantAvatar?(u.openBlock(),u.createElementBlock("img",{key:0,class:"conversation-message__mark-img",src:e.assistantAvatar,alt:""},null,8,qfA)):u.createCommentVNode("",!0)],!0)])):u.createCommentVNode("",!0),u.createElementVNode("div",KfA,[T.value.length?(u.openBlock(),u.createBlock(YS,{key:0,class:"conversation-message__attachments",resources:T.value,onPreview:K[0]||(K[0]=iA=>r("attachment-preview",iA))},null,8,["resources"])):u.createCommentVNode("",!0),AA.value?(u.openBlock(),u.createElementBlock("div",zfA,[l.value?(u.openBlock(!0),u.createElementBlock(u.Fragment,{key:0},u.renderList(q.value,(iA,lA)=>{var vA;return u.openBlock(),u.createElementBlock(u.Fragment,{key:`segment-${iA.kind}-${lA}`},[iA.kind==="process_group"?(u.openBlock(),u.createBlock(A6,{key:0,class:"conversation-message__process",steps:iA.steps,"provider-summary":iA.providerSummary,"tool-messages":e.toolMessages,"tool-states":e.toolStates,"message-id":(vA=g.value)==null?void 0:vA.id,"group-index":iA.segmentIndex,streaming:eA(lA),"data-testid":E.value&&iA.steps.length===0?"conversation-streaming-indicator":void 0,onToolAction:K[1]||(K[1]=FA=>r("tool-action",FA))},u.createSlots({_:2},[P.$slots.tool?{name:"tool",fn:u.withCtx(FA=>[u.renderSlot(P.$slots,"tool",u.mergeProps({ref_for:!0},FA),void 0,!0)]),key:"0"}:void 0]),1032,["steps","provider-summary","tool-messages","tool-states","message-id","group-index","streaming","data-testid"])):(u.openBlock(),u.createElementBlock("div",WfA,[u.renderSlot(P.$slots,"content",{message:n.value,content:iA.content,isStreaming:e.streaming&&lA===O.value},()=>[u.createVNode(Fv,{content:iA.content,"is-streaming":e.streaming&&lA===O.value,"highlight-stream-tail":e.streaming&&lA===O.value,onAction:K[2]||(K[2]=FA=>r("action",FA))},null,8,["content","is-streaming","highlight-stream-tail"])],!0)]))],64)}),128)):(u.openBlock(),u.createElementBlock(u.Fragment,{key:1},[p.value||P.$slots.content?(u.openBlock(),u.createElementBlock("div",XfA,[u.renderSlot(P.$slots,"content",{message:n.value,content:I.value,isStreaming:e.streaming},()=>[a.value||o.value?(u.openBlock(),u.createBlock(hP,{key:0,content:tA.value},null,8,["content"])):s.value?(u.openBlock(),u.createElementBlock("span",jfA,u.toDisplayString(I.value),1)):(u.openBlock(),u.createBlock(Fv,{key:2,content:I.value,"is-streaming":e.streaming,"highlight-stream-tail":e.streaming&&p.value,onAction:K[3]||(K[3]=iA=>r("action",iA))},null,8,["content","is-streaming","highlight-stream-tail"]))],!0)])):u.createCommentVNode("",!0)],64))])):u.createCommentVNode("",!0),v.value&&g.value?(u.openBlock(),u.createBlock(ES,{key:2,message:g.value,text:Q.value,onCopy:K[4]||(K[4]=iA=>r("copy",iA)),onFeedback:K[5]||(K[5]=iA=>r("feedback",iA)),onBranch:K[6]||(K[6]=iA=>r("branch",iA))},u.createSlots({_:2},[P.$slots.actionbar?{name:"default",fn:u.withCtx(iA=>[u.renderSlot(P.$slots,"actionbar",u.normalizeProps(u.guardReactiveProps(iA)),void 0,!0)]),key:"0"}:void 0]),1032,["message","text"])):u.createCommentVNode("",!0),k.value?(u.openBlock(),u.createBlock(US,{key:3,questions:w.value,onSelect:b},null,8,["questions"])):u.createCommentVNode("",!0)]),N.value?(u.openBlock(),u.createElementBlock("span",$fA,[u.renderSlot(P.$slots,"user-avatar",{},()=>[e.userAvatar?(u.openBlock(),u.createElementBlock("img",{key:0,class:"conversation-message__mark-img",src:e.userAvatar,alt:""},null,8,ABA)):u.createCommentVNode("",!0)],!0)])):u.createCommentVNode("",!0)])],10,VfA))}}),rR=ae(eBA,[["__scopeId","data-v-72626ac5"]]),iR=u.defineComponent({name:"ChatMessage",__name:"ChatMessage",props:{message:{type:Object,required:!0},streaming:{type:Boolean,default:!1},toolMessages:{type:Array,default:()=>[]},theme:{type:Object,default:void 0},userAvatar:{type:String,default:void 0},assistantAvatar:{type:String,default:void 0},toolStates:{type:Object,default:()=>({})},followUps:{type:Array,default:void 0},showFollowUps:{type:Boolean,default:!0}},emits:["copy","feedback","branch","action","attachment-preview","tool-action"],setup(e,{emit:A}){const t=e,r=A;return(i,n)=>(u.openBlock(),u.createBlock(rR,u.mergeProps(t,{onCopy:n[0]||(n[0]=a=>r("copy",a)),onFeedback:n[1]||(n[1]=a=>r("feedback",a)),onBranch:n[2]||(n[2]=a=>r("branch",a)),onAction:n[3]||(n[3]=a=>r("action",a)),onAttachmentPreview:n[4]||(n[4]=a=>r("attachment-preview",a)),onToolAction:n[5]||(n[5]=a=>r("tool-action",a))}),u.createSlots({_:2},[i.$slots["user-avatar"]?{name:"user-avatar",fn:u.withCtx(()=>[u.renderSlot(i.$slots,"user-avatar")]),key:"0"}:void 0,i.$slots["assistant-avatar"]?{name:"assistant-avatar",fn:u.withCtx(()=>[u.renderSlot(i.$slots,"assistant-avatar")]),key:"1"}:void 0,i.$slots.content?{name:"content",fn:u.withCtx(a=>[u.renderSlot(i.$slots,"content",u.normalizeProps(u.guardReactiveProps(a)))]),key:"2"}:void 0,i.$slots.actionbar?{name:"actionbar",fn:u.withCtx(a=>[u.renderSlot(i.$slots,"actionbar",u.normalizeProps(u.guardReactiveProps(a)))]),key:"3"}:void 0,i.$slots.tool?{name:"tool",fn:u.withCtx(a=>[u.renderSlot(i.$slots,"tool",u.normalizeProps(u.guardReactiveProps(a)))]),key:"4"}:void 0]),1040))}}),tBA="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAIAAAACACAYAAADDPmHLAAAEkUlEQVR4AeycAW6cQAxFQ0/WnCzJyZKebGtHuKrQJrBhzPj7/wo0u0AH+78HykYbfj3pH3UCEoAa/9OTBJAA5AmQt687gAQgT4C8fd0BJAB5AqTtR9u6A0QSpKMEIAUfbUuASIJ0lACk4KNtCRBJkI4SgBR8tC0BIgnSUQKQgd+2KwG2iZC9lwBkwLftSoBtImTvJQAZ8G27EmCbCNl7CUAGfNuuBNgmQvaeWoDb7fbb1ldbf3fn/lV/lAIYcId+s1DebX2x9d22+fJqr6kWOgGMckC/B/rF9lNJQCWAwXX4e7d7KgloBDgIP+4KNBJQCPAgfCoJ2gvwQ/g0ErQW4CR8CgnaCjAIPrwE0cBXY0sBBsOP7Fr+YNhOgCT4bSVoJUAy/JYStBHgIvjtJGghwMXwW0kAL8Ak+G0kgBZgMvwWEsAKUAR+WQmisL0RUoBi8CNjyN8TwAlQFD6sBFACnIT/FpQOjB92zCPH2+H/Fqg7AYwAZ+Evy/LQN33W49tLACHA1fDjWmaQoLwAs+CzSFBagNnwGSQoK0AV+GgSRL1Hx5ICVIMfYXb8maCcAFXhd5WglADV4XeUoIwAKPC7SVBCADT4nSSYLgAq/C4STBUAHX4HCaYJ0AV+FQmijkfHKQJ0gx+hI/6e4HIBusJHleBSAbrDR5TgMgFY4KNJcIkAbPCRJEgXgBU+igSpArDDR5AgTQCD79/B23sgU2S0Hd/Wj1Tb7bDv137OfMfwbpZnA0kRwOB7sf78vZ/U1w5+hHBSAn/CWUw1bEwRwKpzAWx4eGkLP5I4I8F6YcVUQ8YsAX5SXHv4EcoZCWKOUWMVAWjgB7gqEmQJ4H9ZE73ujXTwI5BHJbDjH8k1TvPtmCLAWuiRYmnhBxXLyj8tHfl0cOSYmPbwmCKAn90ae7bxu6Kf7Rhv3g7jXtYcvssq7UJJE8CR/tdYNOd3BW/Gdi3+2g/TaglYIH4xxEXj2cR690Kx/zJkSRXAK/TG1tWGJbUZPx/yuizLh62vtnpOsboIaW2lC5BWuSYekoAEGBIj7iQSAJfdkMolwJAYcSeRALjshlQuAYbEiDuJBABjN7pcCTA6UbD5JAAYsNHlSoDRiYLNJwHAgI0uVwKMThRsPgkABmx0uRJgdKJg80kAEGBZZUqArGRB5pUAIKCyypQAWcmCzCsBQEBllSkBspIFmVcCgIDKKlMCZCULMq8EKA4quzwJkJ1w8fklQHFA2eVJgOyEi88vAYoDyi5PAmQnXHx+CVAcUHZ5EiA74eLzS4CigK4qSwJclXTR80iAomCuKksC3E/6z/3N/bayCZD6uBVEPdgEOMqIRhQqAfzhSwcM8KeYSYADQaEeEo+su1f/51O67u3ouo3qDuAQ7S7gj2Fb7LWL4Fd6rJ+PZbPtU5erT04nQAS8ivAJ3V776CLEbpqRVgAawjuNSoCdgLrvlgDdCe/0JwF2Auq+WwJ0J7zTnwTYCaj7bglQhPCsMiTArOSLnFcCFAExqwwJMCv5IueVAEVAzCpDAsxKvsh5JUARELPKkACzki9yXgkwGcTs0/8FAAD//wp1l3UAAAAGSURBVAMAxMyyEBy8oUUAAAAASUVORK5CYII=",rBA=["width","height"],nR=u.defineComponent({__name:"ChatSenderAppendIcon",props:{size:{default:18}},setup(e){return(A,t)=>(u.openBlock(),u.createElementBlock("svg",{xmlns:"http://www.w3.org/2000/svg",width:e.size,height:e.size,viewBox:"0 0 24 24",fill:"none","aria-hidden":"true"},[...t[0]||(t[0]=[u.createStaticVNode('<g transform="translate(-1862.0 -548.0)"><g><g transform="translate(1861.9959141981599 548.0)"><g transform="translate(3.0 3.5)"><g transform="translate(0.0 8.357142857143003)"><path d="M0,0.642857143 L18,0.642857143" stroke="#333333" stroke-width="2" fill="none" stroke-linecap="round" stroke-linejoin="round"></path></g><g transform="translate(8.357142857144026 0.0)"><path d="M0.642857143,18 L0.642857143,0" stroke="#333333" stroke-width="2" fill="none" stroke-linecap="round" stroke-linejoin="round"></path></g></g></g></g></g>',1)])],8,rBA))}}),iBA=["width","height"],Mv=u.defineComponent({__name:"ChatSenderMicIcon",props:{size:{default:18}},setup(e){return(A,t)=>(u.openBlock(),u.createElementBlock("svg",{xmlns:"http://www.w3.org/2000/svg",width:e.size,height:e.size,viewBox:"0 0 25 24",fill:"none","aria-hidden":"true"},[...t[0]||(t[0]=[u.createStaticVNode('<g transform="translate(-1928.0 -601.0)"><g><g transform="translate(1898.0 594.0)"><g transform="translate(30.0 7.0)"><g transform="translate(0.375 0.0)"><g transform="translate(5.659200989204692 12.57531220702094)"><path d="M0,0 C0.229204017,0.762048065 0.57649942,1.46898985 1.01932986,2.09713112 C2.26092584,3.8582966 4.25353634,5 6.5,5 C8.74646366,5 10.7390742,3.8582966 11.9806701,2.09713112 C12.4235006,1.46898985 12.770796,0.762048065 13,0" stroke="#333333" stroke-width="2" fill="none" stroke-linecap="round" stroke-miterlimit="10"></path><g transform="translate(5.0 8.0)"><path d="M0,0.05 L3,0.05" stroke="#333333" stroke-width="2" fill="none" stroke-linecap="round" stroke-miterlimit="10"></path></g></g><g transform="translate(9.0 3.0)"><path d="M3,10 C4.65007031,10 6,8.59370804 6,6.87501526 L6,3.12498474 C6,1.40629196 4.65007031,0 3,0 C1.35004688,0 0,1.40629196 0,3.12498474 L0,6.87501526 C0,8.59370804 1.35004688,10 3,10 Z" stroke="#333333" stroke-width="2" fill="none" stroke-miterlimit="10"></path></g></g></g></g></g></g>',1)])],8,iBA))}}),nBA=["width","height"],WI=u.defineComponent({__name:"ChatSenderMicOffIcon",props:{size:{default:18}},setup(e){return(A,t)=>(u.openBlock(),u.createElementBlock("svg",{xmlns:"http://www.w3.org/2000/svg",width:e.size,height:e.size,viewBox:"0 0 24 24",fill:"none","aria-hidden":"true"},[...t[0]||(t[0]=[u.createStaticVNode('<g transform="translate(-1928.0 -549.0)"><g><g transform="translate(1928.0 549.0)"><g transform="translate(3.377038325590547 4.575312207019124)"><g transform="translate(3.2821626636141445 8.000000000001819)"><path d="M0,0 C0.229204017,0.762048065 0.57649942,1.46898985 1.01932986,2.09713112 C1.92019171,3.37497578 3.21642394,4.32670563 4.71812388,4.75283811 M9.37965997,4.33144808 C10.4144641,3.82399514 11.30784,3.05151991 11.9806701,2.09713112 C12.4235006,1.46898985 12.770796,0.762048065 13,0" stroke="#999999" stroke-width="2" fill="none" stroke-linecap="round" stroke-miterlimit="10"></path></g><path d="M0,0 L17.2479617,17.2479617" stroke="#979797" stroke-width="2" fill="none" stroke-linecap="round" stroke-miterlimit="10"></path><g transform="translate(8.282162663614145 16.00000000000182)"><path d="M0,0.05 L3,0.05" stroke="#999999" stroke-width="2" fill="none" stroke-linecap="round" stroke-miterlimit="10"></path></g></g><g transform="translate(10.0 2.999999999996362)"><path d="M2.82440307,9.99466861 C1.25522799,9.8991521 1.4551027e-11,8.53232615 1.4551027e-11,6.87501526 L1.45519152e-11,3.12498474 C1.45519152e-11,1.40629196 1.34992969,0 3,0 L3.17559693,0.0053313882 C4.74477201,0.100847896 6,1.46767385 6,3.12498474 L6,6.87501526 C6,8.59370804 4.64995313,10 3,10 Z" stroke="#999999" stroke-width="2" fill="none" stroke-linecap="round" stroke-miterlimit="10"></path></g></g></g></g>',1)])],8,nBA))}}),aBA=["width","height"],aR=u.defineComponent({__name:"ChatSenderMoreIcon",props:{size:{default:18}},setup(e){return(A,t)=>(u.openBlock(),u.createElementBlock("svg",{xmlns:"http://www.w3.org/2000/svg",width:e.size,height:e.size,viewBox:"0 0 16 17",fill:"none","aria-hidden":"true"},[...t[0]||(t[0]=[u.createStaticVNode('<g transform="translate(-1902.0 -604.0)"><g><g transform="translate(1898.0 594.0)"><g transform="translate(4.0 10.5)"><g transform="translate(11.375 6.5) rotate(90.00000000000001)"><path d="M0,0 L3,3 L0,6" stroke="#969696" stroke-width="2" fill="none" stroke-linecap="round" stroke-linejoin="round"></path></g></g></g></g></g>',1)])],8,aBA))}}),oBA=["width","height"],oR=u.defineComponent({__name:"ChatSenderCheckIcon",props:{size:{default:18}},setup(e){return(A,t)=>(u.openBlock(),u.createElementBlock("svg",{xmlns:"http://www.w3.org/2000/svg",width:e.size,height:e.size,viewBox:"0 0 16 16",fill:"none","aria-hidden":"true"},[...t[0]||(t[0]=[u.createElementVNode("g",{transform:"translate(-2076.0 -552.0)"},[u.createElementVNode("g",null,[u.createElementVNode("g",{transform:"translate(2076.0 552.0)"},[u.createElementVNode("g",{transform:"translate(2.000000000000007 4.0)"},[u.createElementVNode("path",{d:"M0,4 L4.27639723,8 L12.2763972,0",stroke:"#2C69F3","stroke-width":"2",fill:"none","stroke-linecap":"round","stroke-linejoin":"round"})])])])],-1)])],8,oBA))}}),sBA=["width","height"],sR=u.defineComponent({__name:"ChatSenderClickIcon",props:{size:{default:18}},setup(e){return(A,t)=>(u.openBlock(),u.createElementBlock("svg",{xmlns:"http://www.w3.org/2000/svg",width:e.size,height:e.size,viewBox:"0 0 24 24",fill:"none","aria-hidden":"true"},[...t[0]||(t[0]=[u.createElementVNode("g",{transform:"translate(-2033.0 -549.0)"},[u.createElementVNode("g",null,[u.createElementVNode("g",{transform:"translate(2033.0 549.0)"},[u.createElementVNode("g",{transform:"translate(3 2)"},[u.createElementVNode("path",{d:"M6.61668011,2.02458201 C7.7003286,2.02458201 8.51458579,2.88305563 8.51458579,3.94300909 L8.51458579,5.88861581 C8.79114952,5.74311713 9.10410672,5.66003482 9.44030791,5.66003482 C10.3034439,5.66003482 10.9729508,6.2046739 11.2363119,6.96073341 C11.5369431,6.77732973 11.9008512,6.66981452 12.2813621,6.66981452 C13.1437808,6.66981452 13.8132877,7.21447976 14.0767551,7.97053926 C14.37728,7.78700479 14.68952,7.67951574 15.0701371,7.67951574 L15.121699,7.67951574 C16.2060647,7.67951574 16.9992828,8.5388003 17,9.59864913 L17,13.4363142 C17,17.0610417 16.4877023,20 10.9561619,20 C8.53493425,20 7.3895497,19.5248142 6.39037655,18.7221647 C6.25930696,18.644105 6.13487852,18.5516053 6.02208535,18.4412649 L0.540752061,13.0793951 C-0.393656674,12.1585051 0.0342719774,10.8656544 0.687069711,10.2229175 C1.33989401,9.58004978 2.69633406,9.47326704 3.46266877,10.2229175 L4.65401002,11.3916941 L4.65401002,3.94300909 C4.65401002,2.88376193 5.53303163,2.02458201 6.61668011,2.02458201 Z M6.61739736,3.23639089 C6.10366515,3.23639089 5.68734521,3.64340528 5.68734521,4.14514292 L5.68734521,13.8297257 C5.68734521,13.8297257 5.1655905,13.319434 4.57245679,12.7383025 C4.48988013,12.6574258 4.40590857,12.5751926 4.32175075,12.4927847 L4.06992715,12.2462181 C3.44501444,11.6343992 2.87761068,11.0792199 2.87761068,11.0792199 C2.51441989,10.7245243 1.82448489,10.7374209 1.44904783,11.1072105 C1.0735045,11.4776278 0.957815804,12.0552801 1.41698439,12.5074718 L6.60578864,17.5834191 C7.56854177,18.5251582 8.83917827,18.9894878 10.9554181,18.9894878 C15.766303,18.9894878 15.9580322,16.6835877 15.9656351,13.7738278 L15.9659476,13.4355033 L15.9680462,9.71974107 C15.9680462,8.77525528 15.0678526,8.81111985 15.0678526,8.81111985 C14.5540938,8.81111985 14.1712984,9.21810807 14.1712984,9.71974107 L14.1712984,11.71921 L14.1618414,11.71921 C14.167659,11.7521971 14.1712984,11.7858381 14.1712984,11.8202639 C14.1712984,12.0997511 13.9529642,12.3254807 13.6677138,12.3254807 C13.3824635,12.3254807 13.1510595,12.0990186 13.1510595,11.8207871 C13.1510595,11.7848179 13.1546723,11.7497642 13.1612072,11.71921 L13.1510595,11.71921 L13.1510595,8.79027079 C13.1510595,7.93896485 12.2224419,7.88164956 12.2224419,7.88164956 C11.7086831,7.88164956 11.343314,8.28863779 11.343314,8.79027079 L11.343314,11.1129394 L11.3331398,11.1129394 C11.3396746,11.1458479 11.343314,11.1795674 11.343314,11.2138886 C11.343314,11.4934804 11.11191,11.71921 10.8266597,11.71921 C10.5413828,11.71921 10.3098725,11.4927741 10.3098725,11.2145164 C10.3098725,11.1785472 10.3136181,11.1434936 10.320153,11.1129394 L10.3098725,11.1129394 L10.3098725,7.78056957 C10.3098725,6.85967957 9.40024854,6.8718437 9.40024854,6.8718437 C8.88648976,6.8718437 8.5153296,7.27893657 8.5153296,7.78056957 L8.5153296,10.3052673 L8.50515537,10.3052673 C8.51169025,10.3382805 8.5153296,10.372 8.5153296,10.4063212 C8.5153296,10.6858084 8.28392563,10.911538 7.99867528,10.911538 C7.71339837,10.911538 7.48188815,10.6851021 7.48188815,10.4068444 C7.48188815,10.3709798 7.48563375,10.3358215 7.49216864,10.3052673 L7.48188815,10.3052673 L7.48188815,4.14514292 C7.48188815,3.64340528 7.13115613,3.23639089 6.61739736,3.23639089 Z M6.58836228,0 C8.78897123,0 10.5734462,1.75715427 10.5734462,3.92430511 C10.5734462,4.28839189 10.5174215,4.63879729 10.422772,4.97272227 C10.1782982,4.7283933 9.84281427,4.5764594 9.4709103,4.5621502 C9.51824836,4.35645869 9.54449415,4.14289321 9.54449415,3.9235988 C9.54449415,2.31539626 8.22072852,1.01192477 6.58761848,1.01192477 C4.95453499,1.01192477 3.63087562,2.31539626 3.63087562,3.9235988 C3.63087562,4.34500087 3.72395787,4.74558004 3.88770188,5.10752175 L3.88770188,6.8037769 C3.09884042,6.08706116 2.60253457,5.0637832 2.60325103,3.92430511 C2.60325103,1.75715427 4.38764708,0 6.58836228,0 Z",fill:"#999999"})])])])],-1)])],8,sBA))}}),lBA=["width","height"],lR=u.defineComponent({__name:"ChatSenderLinkIcon",props:{size:{default:18}},setup(e){return(A,t)=>(u.openBlock(),u.createElementBlock("svg",{xmlns:"http://www.w3.org/2000/svg",width:e.size,height:e.size,viewBox:"0 0 25 25",fill:"none","aria-hidden":"true"},[...t[0]||(t[0]=[u.createStaticVNode('<g transform="translate(-2057.0 -751.0)"><g><g transform="translate(2057.0 751.0)"><g transform="translate(2.9540584539816095 8.40380592228744) rotate(-44.99999999999999)"><path d="M0,5.88235294 L0,3.52941176 C0,1.58017147 1.56700338,0 3.5,0 C5.43299662,0 7,1.58017147 7,3.52941176 L7,8.23529412 C7,10.1845344 5.43299662,11.7647059 3.5,11.7647059" stroke="#000000" stroke-width="2" fill="none" stroke-linecap="round" stroke-linejoin="round"></path><g transform="translate(0.0 8.235294117647062)"><path d="M7,5.88235294 C7,6.40522876 7,7.18954248 7,8.23529412 C7,10.1845344 5.43299662,11.7647059 3.5,11.7647059 C1.56700338,11.7647059 0,10.1845344 0,8.23529412 L0,3.52941176 C0,1.58017147 1.56700338,0 3.5,0" stroke="#000000" stroke-width="2" fill="none" stroke-linecap="round" stroke-linejoin="round"></path></g></g></g></g></g>',1)])],8,lBA))}}),gBA=["width","height"],cBA=u.defineComponent({__name:"ChatSenderAtIcon",props:{size:{default:18}},setup(e){return(A,t)=>(u.openBlock(),u.createElementBlock("svg",{xmlns:"http://www.w3.org/2000/svg",width:e.size,height:e.size,viewBox:"0 0 24 24",fill:"none","aria-hidden":"true"},[...t[0]||(t[0]=[u.createStaticVNode('<defs><clipPath id="chat-sender-at-clip"><path d="M24,0 L24,24 L0,24 L0,0 L24,0 Z"></path></clipPath></defs><g transform="translate(-1814.0 -549.0)"><g><g transform="translate(1808.0 542.0)"><g transform="translate(6.0 7.0)"><g clip-path="url(#chat-sender-at-clip)"><g transform="translate(1.0 -7.0)"><text transform="translate(0.0 28.0)" font-family="PingFang SC, -apple-system, BlinkMacSystemFont, sans-serif" font-size="26.0" font-weight="400" fill="#333333" text-anchor="left"> @ </text></g></g></g></g></g></g>',2)])],8,gBA))}}),uBA=["width","height"],hBA=u.defineComponent({__name:"ChatFileDropIcon",props:{size:{default:48}},setup(e){return(A,t)=>(u.openBlock(),u.createElementBlock("svg",{xmlns:"http://www.w3.org/2000/svg",width:e.size,height:e.size,viewBox:"0 0 24 24",fill:"none","aria-hidden":"true"},[...t[0]||(t[0]=[u.createElementVNode("path",{d:"M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8z",stroke:"currentColor","stroke-width":"1.5","stroke-linecap":"round","stroke-linejoin":"round"},null,-1),u.createElementVNode("path",{d:"M14 2v6h6",stroke:"currentColor","stroke-width":"1.5","stroke-linecap":"round","stroke-linejoin":"round"},null,-1),u.createElementVNode("path",{d:"M12 11v6M9 14h6",stroke:"currentColor","stroke-width":"1.5","stroke-linecap":"round","stroke-linejoin":"round"},null,-1)])],8,uBA))}}),CBA={class:"chat-file-drop-overlay",role:"status","aria-live":"polite"},IBA={class:"chat-file-drop-overlay__content"},dBA={class:"chat-file-drop-overlay__label"},fBA=u.defineComponent({__name:"ChatFileDropOverlay",props:{label:{default:"将文件拖放到此处添加到对话"}},setup(e){return(A,t)=>(u.openBlock(),u.createElementBlock("div",CBA,[u.createElementVNode("div",IBA,[u.createVNode(u.unref(hBA),{size:48,class:"chat-file-drop-overlay__icon"}),u.createElementVNode("p",dBA,u.toDisplayString(e.label),1)])]))}}),gR=ae(fBA,[["__scopeId","data-v-358bf35a"]]);async function uy(e,A,t){var C,h;const r=va(e.name);if(!r)throw new Error("文件缺少扩展名");const i=new URLSearchParams({bucketType:El(e)==="video"?"52":"51",fileType:r});(C=A.dir)!=null&&C.trim()&&i.set("dir",A.dir.trim());const n=await((h=A.credentialHeaders)==null?void 0:h.call(A)),a=A.cloudBaseUrl.replace(/\/+$/,""),o=await fetch(`${a}/common/file/getToken?${i.toString()}`,{method:"GET",credentials:"include",headers:n,signal:t});if(!o.ok)throw new Error(`获取上传凭证失败:HTTP ${o.status}`);const s=await o.json();if(!hE(s)||s.status!==1||!hE(s.result)){const I=hE(s)&&typeof s.message=="string"?s.message:"";throw new Error(I||"获取上传凭证失败")}const{uptoken:l,fileKey:g,uploadUrl:c}=s.result;if(![l,g,c].every(I=>typeof I=="string"&&I.trim()))throw new Error("上传凭证响应不完整");return{uptoken:l,fileKey:g,uploadUrl:c}}function hy(e,A,t={}){return new Promise((r,i)=>{var g,c;if((g=t.signal)!=null&&g.aborted){i(J8());return}const n=new XMLHttpRequest,a=()=>{var C;return(C=t.signal)==null?void 0:C.removeEventListener("abort",s)},o=C=>{a(),i(C)},s=()=>n.abort();n.open("POST",A.uploadUrl),n.upload.onprogress=C=>{var h;!C.lengthComputable||C.total<=0||(h=t.onProgress)==null||h.call(t,Math.round(C.loaded/C.total*100))},n.onload=()=>{if(n.status<200||n.status>=300){o(new Error(`文件上传失败:HTTP ${n.status}`));return}try{const C=JSON.parse(n.responseText),h=Gv(C);a(),r(h)}catch(C){o(C instanceof Error?C:new Error("上传响应无法解析"))}},n.onerror=()=>o(new Error("文件上传失败,请检查网络后重试")),n.onabort=()=>o(J8()),(c=t.signal)==null||c.addEventListener("abort",s,{once:!0});const l=new FormData;l.append("token",A.uptoken),l.append("key",A.fileKey),l.append("file",e,e.name),n.send(l)})}async function BBA(e,A,t={}){const r=await uy(e,A,t.signal);return hy(e,r,t)}function J8(){if(typeof DOMException=="function")return new DOMException("上传已取消","AbortError");const e=new Error("上传已取消");return e.name="AbortError",e}function hE(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}let O8=0;function cR(e){const A=new Map,t=new Map,r=e.upload??pBA;function i(c,C){const h=e.getAttachments(),I=h.findIndex(f=>f.id===c);if(I<0)return;const d=[...h];d[I]=C,e.setAttachments(d)}async function n(c,C,h){var f,B;const I=e.getUploadConfig();if(!(I!=null&&I.cloudBaseUrl)){const p={code:"missing_config",message:"未配置文件上传服务"};i(c,{id:c,status:"error",file:C,progress:0,previewUrl:h,error:p}),(f=e.onError)==null||f.call(e,p,C);return}const d=new AbortController;A.set(c,d),i(c,{id:c,status:"uploading",file:C,progress:0,previewUrl:h});try{const p=await r(C,{config:I,signal:d.signal,onProgress(E){const m=e.getAttachments().find(v=>v.id===c);!m||m.status!=="uploading"||i(c,{...m,progress:E})}});if(d.signal.aborted)return;const Q=Gv(p);i(c,{id:c,status:"uploaded",previewUrl:h??Q.url,uploadResult:Q,resource:bS(Q)})}catch(p){if(d.signal.aborted||QBA(p))return;const Q={code:p instanceof Error&&p.message.includes("元数据")?"invalid_response":"upload_error",message:p instanceof Error?p.message:"文件上传失败"};i(c,{id:c,status:"error",file:C,progress:0,previewUrl:h,error:Q}),(B=e.onError)==null||B.call(e,Q,C)}finally{A.delete(c)}}async function a(c){var p,Q,E,m;const C=e.getAttachments(),h=((p=e.getLimits)==null?void 0:p.call(e))??lh,I=new Set;for(const v of C)v.status!=="uploaded"&&I.add(mE(v.file));for(const v of t.values())I.add(v);const d=Math.max(0,h.maxFiles-C.length),f=[],B=[];for(const v of c){if(f.length+B.length>=d){(Q=e.onError)==null||Q.call(e,{code:"too_many_files",message:`每条消息最多上传 ${h.maxFiles} 个文件`},v);continue}const w=kS(v,h);if(w){(E=e.onError)==null||E.call(e,w,v);const S=H8();B.push({id:S,status:"error",file:v,progress:0,previewUrl:V8(v),error:w});continue}const k=mE(v);if(I.has(k)){(m=e.onError)==null||m.call(e,{code:"duplicate_file",message:"请勿重复添加同一文件"},v);continue}I.add(k);const b=H8();t.set(b,k),f.push({id:b,file:v,previewUrl:V8(v)})}f.length===0&&B.length===0||(e.setAttachments([...C,...B,...f.map(({id:v,file:w,previewUrl:k})=>({id:v,status:"uploading",file:w,progress:0,previewUrl:k}))]),await Promise.all(f.map(({id:v,file:w,previewUrl:k})=>n(v,w,k))))}async function o(c){const C=e.getAttachments().find(h=>h.id===c);!C||C.status!=="error"||await n(c,C.file,C.previewUrl)}function s(c){var I;(I=A.get(c))==null||I.abort(),A.delete(c);const C=e.getAttachments(),h=C.find(d=>d.id===c);CE(h==null?void 0:h.previewUrl),t.delete(c),e.setAttachments(C.filter(d=>d.id!==c))}function l(){for(const c of A.values())c.abort();A.clear();for(const c of e.getAttachments())CE(c.previewUrl);t.clear()}function g(){for(const c of A.values())c.abort();A.clear();for(const c of e.getAttachments())CE(c.previewUrl);t.clear(),e.setAttachments([])}return{addFiles:a,retry:o,remove:s,clear:g,dispose:l}}async function pBA(e,{config:A,signal:t,onProgress:r}){const i=await uy(e,A,t);return hy(e,i,{signal:t,onProgress:r})}function H8(){return typeof crypto<"u"&&typeof crypto.randomUUID=="function"?crypto.randomUUID():(O8+=1,`chat-attachment-${O8}`)}function V8(e){if(!(!e.type.startsWith("image/")||typeof URL.createObjectURL!="function"))return URL.createObjectURL(e)}function CE(e){e!=null&&e.startsWith("blob:")&&typeof URL.revokeObjectURL=="function"&&URL.revokeObjectURL(e)}function QBA(e){return e instanceof DOMException&&e.name==="AbortError"}function lc(e){var r;const A=(r=e.dataTransfer)==null?void 0:r.types;if(!A||A.length===0)return!1;const t=Array.from(A);return t.includes("Files")||t.includes("application/x-moz-file")}function vf(e){if(!e)return[];const A=mBA(e.files),t=EBA(e.items);return t.length>A.length?t:A.length>0?A:t}function EBA(e){if(!(e!=null&&e.length))return[];const A=[];for(let t=0;t<e.length;t++){const r=e[t];if(!r||r.kind!=="file")continue;const i=r.getAsFile();if(!i)continue;const n=typeof r.webkitGetAsEntry=="function"?r.webkitGetAsEntry():null;n!=null&&n.isDirectory||A.push(i)}return A}function mBA(e){return!e||e.length===0?[]:Array.from(e)}const uR=Symbol("chatFileDropBridge");function vBA(){if(typeof window>"u")return!1;const e=window;return!!(e.SpeechRecognition??e.webkitSpeechRecognition)}function CI(e){if(!e||typeof e!="object")return!1;const A="name"in e?String(e.name):"";return A==="NotAllowedError"||A==="PermissionDeniedError"}function yBA(e){var oe,Se;const A=u.ref(!1),t=((oe=yg())==null?void 0:oe.getItem("chat-sender-hold-to-record"))??null,r=u.ref(t==="true"),i=u.ref(!1),n=u.ref(!1),a=u.ref(0),o=u.ref(!1),s=u.ref(null),l=u.ref([]),g=((Se=yg())==null?void 0:Se.getItem("chat-sender-device-id"))??null,c=u.ref(g||""),C=u.ref(vBA()),h=u.ref(!1);let I=null,d=null,f=null,B=null,p=null,Q=null,E=null;const m=300;let v=null;function w(){v!=null&&(clearTimeout(v),v=null)}function k(){return typeof navigator>"u"?void 0:navigator.mediaDevices}function b(){l.value=[{deviceId:"default",label:"默认麦克风",active:!0}]}function S(){h.value=!0,s.value=null,A.value&&Z()}function N(){h.value=!1}function _(kA){kA==="denied"?S():N()}async function F(){try{const kA=typeof navigator>"u"?void 0:navigator.permissions;if(!(kA!=null&&kA.query))return;E=await kA.query({name:"microphone"}),_(E.state),E.onchange=()=>{E&&_(E.state)}}catch{}}function R(){return!C.value||h.value||e.isDisabled()}async function Y(kA){var VA;const WA=c.value;if(!WA||WA==="default")return kA.getUserMedia({audio:!0});try{return await kA.getUserMedia({audio:{deviceId:{exact:WA}}})}catch(gA){if(CI(gA))throw gA;return console.warn("指定麦克风不可用,回退到默认设备:",gA),c.value="",(VA=yg())==null||VA.removeItem("chat-sender-device-id"),kA.getUserMedia({audio:!0})}}async function q(){var kA,WA;if(!R()){if(A.value)Z();else{if(A.value=!0,(kA=e.onMenuOpen)==null||kA.call(e),await O(),h.value)return;await eA()}(WA=e.onVoiceClick)==null||WA.call(e)}}function Z(){A.value=!1,n.value||T()}async function O(){var WA;const kA=k();if(!(kA!=null&&kA.getUserMedia)||!kA.enumerateDevices){b();return}try{const VA=await kA.getUserMedia({audio:!0}),MA=(await kA.enumerateDevices()).filter(pe=>pe.kind==="audioinput");if(l.value=MA.map((pe,xe)=>({deviceId:pe.deviceId,label:pe.label||`麦克风 ${xe+1}`,active:!1})),l.value.length>0){const pe=l.value.find(xe=>xe.deviceId===c.value);pe?pe.active=!0:(l.value[0].active=!0,c.value=l.value[0].deviceId,(WA=yg())==null||WA.setItem("chat-sender-device-id",c.value))}n.value?me(VA):(p=VA,tA(VA)),N(),s.value=null}catch(VA){if(console.error("无法获取音频设备列表:",VA),b(),CI(VA)){S();return}s.value="无法获取麦克风列表,请检查浏览器权限"}}async function eA(){if(p||n.value||h.value)return;const kA=k();if(kA!=null&&kA.getUserMedia)try{const WA=await Y(kA);p=WA,tA(WA),N(),s.value=null}catch(WA){if(console.error("无法开启音频监测:",WA),CI(WA)){S();return}s.value="无法访问麦克风,请检查浏览器权限"}}function tA(kA){d||(d=new AudioContext),f||(f=d.createAnalyser(),f.fftSize=256),d.createMediaStreamSource(kA).connect(f),ZA()}function T(){p&&(me(p),p=null),GA(),d&&!n.value&&(d.close(),d=null,f=null),a.value=0}async function AA(){var kA;R()||r.value||(n.value?await FA(!1):await lA(),(kA=e.onVoiceRecord)==null||kA.call(e))}async function P(){R()||!r.value||(o.value=!0,w(),v=setTimeout(()=>{v=null,!(!o.value||!r.value||n.value)&&lA()},m))}async function K(){if(!r.value)return;w();const kA=o.value;o.value=!1,kA&&n.value&&await FA(!1)}function iA(){r.value&&o.value&&K()}async function lA(){var WA;if(!C.value||h.value)return;const kA=k();if(!(kA!=null&&kA.getUserMedia)){s.value="当前浏览器不支持麦克风录音";return}try{p&&(me(p),p=null);const VA=await Y(kA);p=VA,tA(VA),vA(),typeof MediaRecorder<"u"&&(I=new MediaRecorder(VA),I.start()),n.value=!0,A.value&&Z(),N(),s.value=null,(WA=e.onVoiceStart)==null||WA.call(e)}catch(VA){if(console.error("无法访问麦克风:",VA),CI(VA)){S();return}s.value="无法访问麦克风,请检查浏览器权限"}}function vA(){const kA=window,WA=kA.SpeechRecognition??kA.webkitSpeechRecognition;if(!WA)return;const VA=new WA;Q=VA,VA.lang="zh-CN",VA.continuous=!0,VA.interimResults=!0;let gA=e.draft.value;VA.onresult=MA=>{let pe="",xe="";for(let $e=MA.resultIndex;$e<MA.results.length;$e+=1){const Pt=MA.results[$e][0].transcript;MA.results[$e].isFinal?xe+=Pt:pe+=Pt}xe?(gA+=xe,e.draft.value=gA):pe&&(e.draft.value=gA+pe)},VA.onerror=MA=>{if(console.error("语音识别错误:",MA.error),MA.error==="not-allowed"){S(),FA(!1,!0);return}MA.error!=="no-speech"&&MA.error!=="aborted"&&(s.value=`语音识别失败:${MA.error}`)},VA.onend=()=>{if(n.value)try{VA.start()}catch{}};try{VA.start()}catch(MA){console.error("无法启动语音识别:",MA),Q=null}}async function FA(kA=!1,WA=!1){var VA,gA,MA;if(n.value){if(n.value=!1,Q==null||Q.stop(),Q=null,I==null||I.stop(),I=null,p&&(me(p),p=null),GA(),a.value=0,kA&&!WA)e.draft.value="",(VA=e.onVoiceCancel)==null||VA.call(e);else if(!WA){const pe=e.draft.value.trim();pe&&((gA=e.onAudioTranscript)==null||gA.call(e,pe))}WA||(MA=e.onVoiceStop)==null||MA.call(e),A.value&&!h.value&&await eA()}}function ZA(){if(!f)return;const kA=new Uint8Array(f.frequencyBinCount);f.getByteFrequencyData(kA);const WA=kA.reduce((VA,gA)=>VA+gA,0)/kA.length;a.value=Math.min(100,WA/128*100),B=requestAnimationFrame(ZA)}async function RA(kA){var VA,gA;const WA=l.value[kA];WA&&(l.value.forEach((MA,pe)=>{MA.active=pe===kA}),c.value=WA.deviceId,(VA=yg())==null||VA.setItem("chat-sender-device-id",c.value),(gA=e.onAudioDeviceChange)==null||gA.call(e,kA),A.value&&!n.value&&(T(),await eA()))}function qA(){var kA;r.value=!r.value,(kA=yg())==null||kA.setItem("chat-sender-hold-to-record",String(r.value)),w(),o.value=!1,r.value&&n.value&&FA(!1,!0)}function GA(){B!==null&&(cancelAnimationFrame(B),B=null)}function me(kA){kA.getTracks().forEach(WA=>WA.stop())}return u.onMounted(()=>{F()}),u.onUnmounted(()=>{E&&(E.onchange=null),E=null,w(),o.value=!1,A.value=!1,n.value&&FA(!1,!0),Q==null||Q.stop(),Q=null,GA(),p&&me(p),p=null,d&&d.close(),d=null,f=null}),{showVoiceMenu:A,holdToRecord:r,isVoiceHovered:i,isRecording:n,audioLevel:a,isHoldingMic:o,voiceError:s,audioDevices:l,isSpeechSupported:C,isMicPermissionDenied:h,toggleVoiceMenu:q,closeVoiceMenu:Z,handleVoiceRecord:AA,handleMouseDown:P,handleMouseUp:K,handleMouseLeave:iA,selectAudioDevice:RA,toggleHoldToRecord:qA}}function yg(){return typeof localStorage>"u"?void 0:localStorage}const D0="data-mention-trigger-id",yf="data-mention-id",oh="data-mention-label",LB="data-mention-char",Rv="data-mention-custom",XI="data-mention-mount-id",zc="chat-sender__mention";function $o(e){return!!e&&e.nodeType===Node.ELEMENT_NODE&&e.classList.contains(zc)}function As(e){if(!e||e.nodeType!==Node.TEXT_NODE)return!1;const A=e.textContent??"";return A.length===0||A==="​"}function wf(e){if(!e||e.nodeType!==Node.TEXT_NODE)return!1;const A=e.textContent??"";return A.length>0&&/^\s+$/.test(A)}function wBA(e,A){const t=A.cloneRange();t.collapse(!0);const{startContainer:r,startOffset:i}=t;if(r===e){if(i<=0)return!1;let n=i-1;for(;n>=0&&As(e.childNodes[n]);)n-=1;if(n<0)return!1;const a=e.childNodes[n];if($o(a))return!0;if(a.nodeType===Node.TEXT_NODE){const o=a.textContent??"";return o.length?!/\s/.test(o[o.length-1]):!0}return!0}if(r.nodeType===Node.TEXT_NODE&&e.contains(r)){if(i>0){const a=(r.textContent??"")[i-1];return a!==void 0&&!/\s/.test(a)}let n=r.previousSibling;for(;As(n);)n=n.previousSibling;if(!n)return!1;if($o(n))return!0;if(n.nodeType===Node.TEXT_NODE){const a=n.textContent??"";return a.length?!/\s/.test(a[a.length-1]):!0}return!0}return!1}function DBA(e,A){if(!A.collapsed)return null;const{startContainer:t,startOffset:r}=A;if(t===e){let i=r-1;for(;i>=0&&As(e.childNodes[i]);)i-=1;for(;i>=0&&wf(e.childNodes[i]);)i-=1;const n=e.childNodes[i];return $o(n)?n:null}if(t.nodeType===Node.TEXT_NODE&&e.contains(t)){const i=t.textContent??"";if(r>0){if(r===i.length&&/^\s+$/.test(i)){let a=t.previousSibling;for(;As(a);)a=a.previousSibling;return $o(a)?a:null}return null}let n=t.previousSibling;for(;As(n)||wf(n);)n=n.previousSibling;return $o(n)?n:null}return null}function kBA(e,A){if(!A.collapsed)return null;const{startContainer:t,startOffset:r}=A;if(t===e){let i=r;for(;i<e.childNodes.length&&As(e.childNodes[i]);)i+=1;for(;i<e.childNodes.length&&wf(e.childNodes[i]);)i+=1;const n=e.childNodes[i];return $o(n)?n:null}if(t.nodeType===Node.TEXT_NODE&&e.contains(t)){const i=t.textContent??"";if(r<i.length){if(r===0&&/^\s+$/.test(i)){let a=t.nextSibling;for(;As(a);)a=a.nextSibling;return $o(a)?a:null}return null}let n=t.nextSibling;for(;As(n)||wf(n);)n=n.nextSibling;return $o(n)?n:null}return null}function bBA(e){return/\s/.test(e)}function SBA(e,A,t){const r=[];let i;if(A===e)i=t-1;else if(A.nodeType===Node.TEXT_NODE&&A.parentNode===e){const n=A;for(let a=t-1;a>=0;a-=1)r.push({node:n,offset:a});i=Array.prototype.indexOf.call(e.childNodes,n)-1}else return r;for(let n=i;n>=0;n-=1){const a=e.childNodes[n];if(a.nodeType!==Node.TEXT_NODE)break;const o=a;for(let s=o.length-1;s>=0;s-=1)r.push({node:o,offset:s})}return r}function NBA(e,A,t,r){if(e.length===0)return null;const i=SBA(A,t,r);for(const{node:n,offset:a}of i){const o=n.data[a];if(bBA(o))return null;const s=e.find(l=>l.char===o);if(s){const l=document.createRange();return l.setStart(n,a),l.setEnd(t,r),{trigger:s,range:l}}}return null}function hR(e){let A="";return e.childNodes.forEach(t=>{if(t.nodeType===Node.TEXT_NODE)A+=t.textContent??"";else if(t.nodeType===Node.ELEMENT_NODE){const r=t;r.tagName==="BR"?A+=`
647
647
  `:r.classList.contains(zc)?A+=_BA(r):A+=r.textContent??""}}),A}function xBA(e){if(e.collapsed)return"";const A=e.cloneContents(),t=document.createElement("div");return t.appendChild(A),hR(t)}function _BA(e){const A=e.getAttribute(LB),t=e.getAttribute(oh);return A!==null&&t!==null?`${A}${t}`:e.textContent??""}const Z8="application/x-deepeye-chat-mentions";function FBA(e){const A=[];let t="";const r=()=>{t&&(A.push({type:"text",text:t}),t="")};return e.childNodes.forEach(i=>{if(i.nodeType===Node.TEXT_NODE){t+=i.textContent??"";return}if(i.nodeType!==Node.ELEMENT_NODE)return;const n=i;if(n.tagName==="BR"){t+=`
648
648
  `;return}if(n.classList.contains(zc)){r(),A.push({type:"mention",triggerId:n.getAttribute(D0)??"",id:n.getAttribute(yf)??"",label:n.getAttribute(oh)??"",char:n.getAttribute(LB)??"@"});return}t+=n.textContent??""}),r(),A}function MBA(e){if(e.collapsed)return[];const A=e.cloneContents(),t=document.createElement("div");return t.appendChild(A),FBA(t)}function RBA(e){return JSON.stringify({version:1,segments:e})}function LBA(e){try{const A=JSON.parse(e);return(A==null?void 0:A.version)!==1||!Array.isArray(A.segments)?null:A.segments}catch{return null}}const GBA="chat-sender__mention--selected";function Gu(e){const A=window.getSelection(),t=A&&A.rangeCount>0&&!A.isCollapsed?A.getRangeAt(0):null,r=!!t&&(t.commonAncestorContainer===e||e.contains(t.commonAncestorContainer));e.querySelectorAll(`.${zc}`).forEach(i=>{let n=!1;if(r&&t)try{n=t.intersectsNode(i)}catch{n=!1}i.classList.toggle(GBA,n)})}function i0(e,A,t,r={}){const i=document.createElement("span");return i.className=zc,i.setAttribute("contenteditable","false"),i.setAttribute(D0,e.id),i.setAttribute(yf,A),i.setAttribute(oh,t),i.setAttribute(LB,e.char),r.custom&&i.setAttribute(Rv,"true"),r.mountId&&i.setAttribute(XI,r.mountId),i}function P8(e,A,t){const r=i0(e,A,t),i=document.createElement("button");i.type="button",i.className="chat-sender__mention-remove",i.setAttribute("aria-label",`移除 ${t}`),i.tabIndex=-1;const n=document.createElement("span");n.className="chat-sender__mention-glyph",n.setAttribute("aria-hidden","true"),n.textContent=e.char,i.appendChild(n);const a=document.createElement("span");return a.className="chat-sender__mention-label",a.textContent=t,r.append(i,a),r}function q8(e,A){e.innerHTML="";const t=A.split(`
649
649
  `);t.forEach((r,i)=>{r&&e.appendChild(document.createTextNode(r)),i<t.length-1&&e.appendChild(document.createElement("br"))})}function TBA(e,A){e.deleteContents();const t=document.createDocumentFragment(),r=A.split(`
650
650
  `);r.forEach((n,a)=>{n&&t.appendChild(document.createTextNode(n)),a<r.length-1&&t.appendChild(document.createElement("br"))});const i=t.lastChild;return e.insertNode(t),i}function YBA(e){return Array.from(e.childNodes).some(A=>A.nodeType===Node.TEXT_NODE?(A.textContent??"").length>0:A.nodeType===Node.ELEMENT_NODE?A.tagName!=="BR":!0)}function CR(){const e=window.getSelection();if(!e||e.rangeCount===0)return null;const A=e.getRangeAt(0).cloneRange();if(A.collapse(!0),typeof A.getBoundingClientRect!="function")return null;const t=A.getBoundingClientRect();return t.width===0&&t.height===0?OBA(A):t}function UBA(e){const A=CR();if(A&&(A.width>0||A.height>0)||A&&(A.left!==0||A.top!==0))return A;const t=e.getBoundingClientRect();if(t.width===0&&t.height===0)return A;const r=24;return new DOMRect(t.left,t.top+8,0,r)}function JBA(e){const A=e.gap??6,t=e.margin??8,{anchor:r,menuWidth:i,menuHeight:n,viewportWidth:a,viewportHeight:o}=e,s=o-r.bottom-A-t,l=r.top-A-t,g=n>s&&l>s;let c,C;g?(C="above",c=Math.max(t,r.top-A-n)):(C="below",c=r.bottom+A,c+n>o-t&&(c=Math.max(t,o-t-n)));let h=r.left;return h+i>a-t&&(h=Math.max(t,a-t-i)),h<t&&(h=t),{left:h,top:c,placement:C}}function OBA(e){var n;const A=document.createTextNode("​");e.cloneRange().insertNode(A);const r=document.createRange();r.selectNode(A);const i=typeof r.getBoundingClientRect=="function"?r.getBoundingClientRect():null;return(n=A.parentNode)==null||n.removeChild(A),i}const HBA={key:1,class:"chat-sender__files","aria-label":"待发送附件"},VBA={key:2,class:"chat-sender__attachment-error",role:"alert"},ZBA={class:"chat-sender__content"},PBA={class:"chat-sender__input-wrapper"},qBA=["contenteditable","data-placeholder","aria-expanded"],KBA={class:"chat-sender__toolbar"},zBA={class:"chat-sender__toolbar-left"},WBA={key:0,class:"chat-sender__attachment-wrapper"},XBA=["disabled","aria-expanded"],jBA={key:1,class:"chat-sender__attachment-menu-divider"},$BA=["disabled","onClick"],ApA={key:1,class:"chat-sender__toolbar-divider","aria-hidden":"true"},epA=["disabled","aria-label","onClick"],tpA={key:1,"aria-hidden":"true"},rpA={key:0,class:"chat-sender__quick-divider","aria-hidden":"true"},ipA={key:1,class:"chat-sender__quick-actions",role:"group","aria-label":"快捷功能"},npA=["disabled","onClick"],apA={key:2,class:"chat-sender__quick-action-chip"},opA={class:"chat-sender__toolbar-right"},spA={class:"chat-sender__button-group"},lpA={key:0,class:"chat-sender__toolbar-before-voice"},gpA=["title"],cpA=["disabled","title","aria-expanded"],upA={class:"chat-sender__model-trigger-label"},hpA=["aria-checked","disabled","title","onClick"],CpA={class:"chat-sender__model-menu-item-body"},IpA={class:"chat-sender__model-menu-item-label"},dpA={key:0,class:"chat-sender__model-menu-item-desc"},fpA={class:"chat-sender__model-menu-check","aria-hidden":"true"},BpA=["disabled"],ppA=["disabled","aria-label"],QpA={key:2,class:"chat-sender__voice-waveform"},EpA={class:"chat-sender__mic-permission-popover-header"},mpA={class:"chat-sender__mic-permission-popover-desc"},vpA=["href"],ypA={class:"chat-sender__mic-permission-popover-hero","aria-hidden":"true"},wpA={class:"chat-sender__voice-menu-header"},DpA={class:"chat-sender__voice-level"},kpA={class:"chat-sender__voice-menu-body"},bpA={class:"chat-sender__voice-menu-devices"},SpA=["onClick"],NpA={class:"chat-sender__voice-menu-device-name"},xpA={class:"chat-sender__voice-menu-footer"},_pA={class:"chat-sender__voice-menu-option-content"},FpA=["checked"],MpA=["disabled","aria-label"],RpA={class:"chat-sender__action-icons","aria-hidden":"true"},LpA=["src"],GpA=192,TpA=u.defineComponent({__name:"ChatSender",props:{placeholder:{default:"输入消息..."},disabled:{type:Boolean,default:!1},showAttachment:{type:Boolean,default:!0},enableFileDrop:{type:Boolean,default:!0},maxRows:{default:6},draft:{default:void 0},attachments:{default:void 0},uploadConfig:{default:void 0},attachmentLimits:{default:void 0},attachmentInput:{type:[String,Function],default:"resource_files"},streaming:{type:Boolean},theme:{default:void 0},showScreenshot:{type:Boolean,default:!1},customMenuItems:{default:()=>[]},quickActions:{default:()=>[]},activeQuickAction:{default:void 0},triggers:{default:()=>[]},triggerMenuPlacement:{default:"caret"},micPermissionGuideUrl:{},showModelSelector:{type:Boolean,default:!1},models:{default:()=>[]},model:{default:void 0}},emits:["send","stop","update:draft","update:attachments","attachment-error","voice-click","voice-record","voice-start","voice-stop","voice-cancel","audio-device-change","audio-transcript","screenshot","menu-item-click","attachment-menu-open","attachment-menu-close","update:activeQuickAction","quick-action-select","quick-action-clear","trigger-open","trigger-query","trigger-close","mention-insert","mention-remove","mic-permission-guide-click","update:model","model-select"],setup(e,{expose:A,emit:t}){const r=e,i=t,n=u.useSlots(),a=new Map;function o(){return typeof n.mention=="function"}function s(){return`mm-${Date.now().toString(36)}-${Math.random().toString(36).slice(2,8)}`}const l=u.ref(),g=u.ref(),c=u.ref(),C=u.ref(),h=u.ref(),I=Fc(),d=u.ref(""),f=u.ref([...r.attachments??[]]),B=u.ref(!1),p=u.shallowRef(null),Q=u.shallowRef(null);let E=null;const m=u.ref(void 0),v=new Map;let w=new Set;const k=u.computed({get:()=>r.draft??d.value,set:G=>{r.draft===void 0&&(d.value=G),i("update:draft",G)}}),b=u.computed(()=>r.triggers??[]),S=u.computed(()=>b.value.filter(G=>G.button)),N=u.computed(()=>r.showAttachment&&S.value.length>0),_=u.computed(()=>r.quickActions.length>0&&(r.showAttachment||S.value.length>0)),F=u.computed(()=>r.maxRows*24+24),R=u.computed(()=>{const G=l.value;return!G||!p.value?null:Q.value??UBA(G)}),Y=u.computed(()=>{if(r.triggerMenuPlacement==="custom")return;if(!p.value)return{position:"fixed",left:"0px",top:"0px",visibility:"hidden"};if(C.value)return C.value;const G=R.value;return G?{position:"fixed",left:`${G.left}px`,top:`${G.bottom+6}px`,visibility:"hidden"}:{position:"fixed",left:"0px",top:"0px",visibility:"hidden"}});function q(){if(r.triggerMenuPlacement==="custom"){C.value=void 0;return}const G=R.value,W=c.value;if(!G||!W||!p.value){C.value=void 0;return}const{left:sA,top:_A}=JBA({anchor:G,menuWidth:W.offsetWidth,menuHeight:W.offsetHeight,viewportWidth:window.innerWidth,viewportHeight:window.innerHeight});C.value={position:"fixed",left:`${sA}px`,top:`${_A}px`,visibility:"visible"}}function Z(){if(!p.value||r.triggerMenuPlacement==="custom"){C.value=void 0;return}u.nextTick(()=>{requestAnimationFrame(()=>q())})}const O=u.computed(()=>r.uploadConfig?{...I.uploadConfig.value,...r.uploadConfig}:I.uploadConfig.value),eA=u.computed(()=>{var G,W;return Mf(I.limits.value,(G=I.uploadConfig.value)==null?void 0:G.limits,(W=r.uploadConfig)==null?void 0:W.limits,r.attachmentLimits)}),tA=u.computed(()=>({...I.theme.value,...r.theme})),T=u.computed(()=>{const G=tA.value,W={};return G.inputBg&&(W["--chat-sender-bg"]=G.inputBg),G.inputBorder&&(W["--chat-sender-border"]=G.inputBorder),G.inputFocusBorder&&(W["--chat-sender-focus-border"]=G.inputFocusBorder),G.buttonPrimaryBg&&(W["--chat-sender-send-active-bg"]=G.buttonPrimaryBg),G.buttonPrimaryColor&&(W["--chat-sender-send-active-color"]=G.buttonPrimaryColor),G.buttonSecondaryBg&&(W["--chat-sender-btn-hover-bg"]=G.buttonSecondaryBg),G.buttonSecondaryColor&&(W["--chat-sender-icon-color"]=G.buttonSecondaryColor),W}),AA=["5.13px","8.44px","14.17px","8.44px","5.13px"],P=u.ref(!1),K=u.ref(!1),iA=u.ref(null),lA=u.computed({get:()=>r.activeQuickAction===void 0?iA.value:r.activeQuickAction,set:G=>{r.activeQuickAction===void 0&&(iA.value=G),i("update:activeQuickAction",G)}}),vA=u.computed(()=>r.quickActions.find(G=>G.id===lA.value)),FA=u.computed(()=>{var G;return((G=vA.value)==null?void 0:G.placeholder)??r.placeholder});function ZA(G){var W;return((W=G.find(sA=>!sA.disabled))==null?void 0:W.id)??null}function RA(G){if(!G)return!1;const W=r.models.find(sA=>sA.id===G);return!!W&&!W.disabled}const qA=u.ref(null),GA=u.computed({get:()=>r.model===void 0?qA.value:r.model,set:G=>{r.model===void 0&&(qA.value=G),i("update:model",G)}}),me=u.computed(()=>r.models.find(G=>G.id===GA.value)),oe=u.computed(()=>{if(me.value)return me.value;const G=ZA(r.models);return G?r.models.find(W=>W.id===G)??null:null}),Se=u.computed(()=>r.showModelSelector&&r.models.length>0),kA=u.ref(!1),WA=u.computed(()=>Pt.value||xe.value||kA.value);function VA(){if(!Se.value||RA(GA.value))return;const G=ZA(r.models);G&&r.model===void 0&&(GA.value=G)}u.watch(()=>r.models,VA,{immediate:!0,deep:!0}),u.watch(Se,VA);function gA(){r.disabled||(kA.value=!kA.value,kA.value&&(K.value=!1,Fr()))}function MA(){kA.value=!1}function pe(G){G.disabled||r.disabled||(GA.value=G.id,i("model-select",G),MA())}const{showVoiceMenu:xe,holdToRecord:$e,isVoiceHovered:Pt,isRecording:_e,audioLevel:Lt,isHoldingMic:Me,voiceError:rr,audioDevices:Br,isSpeechSupported:Ji,isMicPermissionDenied:Zr,toggleVoiceMenu:An,closeVoiceMenu:Fr,handleVoiceRecord:Oi,handleMouseDown:rA,handleMouseUp:oA,handleMouseLeave:EA,selectAudioDevice:St,toggleHoldToRecord:Pe}=yBA({draft:k,isDisabled:()=>r.disabled,onMenuOpen:()=>{K.value=!1,MA()},onVoiceClick:()=>i("voice-click"),onVoiceRecord:()=>i("voice-record"),onVoiceStart:()=>i("voice-start"),onVoiceStop:()=>i("voice-stop"),onVoiceCancel:()=>i("voice-cancel"),onAudioDeviceChange:G=>i("audio-device-change",G),onAudioTranscript:G=>i("audio-transcript",G)}),ir=u.computed(()=>!Ji.value||Zr.value),qt=u.computed(()=>{if(!Ji.value)return"当前浏览器不支持语音输入";if(Zr.value)return"浏览器未开启麦克风权限"}),en=u.computed(()=>qt.value?qt.value:_e.value?"停止录音":"录音"),Ct=u.ref(!1);let yr=!1;const tn=u.ref(),Te=u.ref(),Gt=u.ref(),Pr=u.ref(),X=u.ref();let aA=null;function CA(){aA!=null&&(clearTimeout(aA),aA=null)}function PA(){var cA;const G=(cA=tn.value)==null?void 0:cA.closest(".chat-sender");if(!G)return{};const W=getComputedStyle(G),sA=["--chat-sender-menu-bg","--chat-sender-menu-item-hover","--chat-sender-text","--chat-sender-text-muted","--chat-sender-icon-color","--chat-sender-accent","--chat-sender-btn-hover-bg","--chat-sender-level-bg","--chat-sender-switch-bg","--chat-sender-border","--accent","--shadow-md","--radius-md","--radius-sm"],_A={};for(const KA of sA){const Oe=W.getPropertyValue(KA).trim();Oe&&(_A[KA]=Oe)}return _A}function ue(G,W,sA=10){var Qo;const _A=(Qo=tn.value)==null?void 0:Qo.getBoundingClientRect();if(!_A||!G){W.value=void 0;return}const cA=G.offsetWidth,KA=G.offsetHeight;let Oe=_A.right-cA;Oe=Math.max(8,Math.min(Oe,window.innerWidth-cA-8));let lt=_A.top-KA-sA;lt<8&&(lt=Math.min(_A.bottom+sA,Math.max(8,window.innerHeight-KA-8))),W.value={...PA(),position:"fixed",left:`${Oe}px`,top:`${lt}px`,visibility:"visible"}}function se(){u.nextTick(()=>{xe.value?(Pr.value||(Pr.value={position:"fixed",left:"0px",top:"0px",visibility:"hidden"}),ue(Te.value,Pr,8)):Pr.value=void 0,Ct.value?(X.value||(X.value={position:"fixed",left:"0px",top:"0px",visibility:"hidden"}),ue(Gt.value,X,10)):X.value=void 0})}function Nt(){if(CA(),Zr.value){yr||(Ct.value=!0,se());return}Pt.value=!0}function It(){Pt.value=!1,CA(),yr=!1,aA=setTimeout(()=>{Ct.value=!1,aA=null},180)}function Kt(){Pt.value=!1,CA(),yr=!1,aA=setTimeout(()=>{Ct.value=!1,aA=null},180)}function Mr(){CA()}function rn(){CA(),yr=!1,aA=setTimeout(()=>{Ct.value=!1,aA=null},180)}function ii(){CA(),Ct.value=!1,yr=!0}u.watch([xe,Ct],()=>{se()});const Xn=u.computed(()=>(k.value.trim().length>0||f.value.length>0)&&f.value.every(W=>W.status==="uploaded")),jn=u.ref(!1),Rn=u.computed(()=>r.streaming||jn.value),ql=u.computed(()=>Rn.value||Xn.value);u.watch(()=>r.streaming,G=>{G&&(jn.value=!1)}),u.watch(Xn,G=>{G&&(jn.value=!1)}),u.watch(()=>r.attachments,G=>{G&&(f.value=[...G])},{deep:!0});function Kl(G){f.value=[...G],i("update:attachments",f.value)}const $n=cR({getAttachments:()=>f.value,setAttachments:Kl,getUploadConfig:()=>O.value,getLimits:()=>eA.value,onError(G,W){i("attachment-error",G,W)}});u.onMounted(()=>{k.value&&l.value&&q8(l.value,k.value),m.value=k.value}),u.watch(k,G=>{G!==m.value&&l.value&&(q8(l.value,G),m.value=G,p.value=null,document.activeElement===l.value&&ee(l.value))});function ee(G){const W=window.getSelection();if(!W)return;const sA=document.createRange();sA.selectNodeContents(G),sA.collapse(!1),W.removeAllRanges(),W.addRange(sA),E=sA.cloneRange()}function z(){const G=l.value,W=window.getSelection();if(!G||!W||W.rangeCount===0){G&&Gu(G);return}const sA=W.getRangeAt(0);if(!G.contains(sA.commonAncestorContainer)){Gu(G);return}E=sA.cloneRange(),Gu(G)}function IA(){if(!l.value)return;const G=hR(l.value);m.value=G,k.value=G}function TA(){if(!l.value)return;const G=new Set;l.value.querySelectorAll(`[${D0}]`).forEach(W=>{const sA=W.getAttribute(D0),_A=W.getAttribute(yf);if(!sA||!_A)return;const cA=wr(sA,_A);if(G.add(cA),!v.has(cA)){const KA=W.getAttribute(oh)??"",Oe={triggerId:sA,id:_A,label:KA};v.set(cA,Oe),i("mention-insert",Oe)}}),w.forEach(W=>{if(G.has(W))return;const sA=v.get(W);sA&&(v.delete(W),i("mention-remove",sA))}),w=G,it()}function it(){if(!o()||!l.value){lr();return}const G=new Set;l.value.querySelectorAll(`[${Rv}]`).forEach(W=>{let sA=W.getAttribute(XI);sA||(sA=s(),W.setAttribute(XI,sA)),G.add(sA),a.has(sA)||zt(W)}),a.forEach((W,sA)=>{var _A;G.has(sA)&&((_A=l.value)!=null&&_A.contains(W.el))||wt(sA)})}function zt(G){const W=G.getAttribute(XI);if(!W||!o()||a.has(W))return;const sA=G.getAttribute(D0)??"",_A=G.getAttribute(yf)??"",cA=G.getAttribute(oh)??"",KA=G.getAttribute(LB)??"",Oe=()=>qr(G),lt=u.defineComponent({name:"ChatSenderMentionSlotHost",setup(){return()=>{var Aa;return((Aa=n.mention)==null?void 0:Aa.call(n,{triggerId:sA,id:_A,label:cA,char:KA,remove:Oe}))??null}}});u.render(u.h(lt),G),a.set(W,{el:G,cleanup:()=>u.render(null,G)})}function wt(G){const W=a.get(G);W&&(W.cleanup(),a.delete(G))}function lr(){a.forEach((G,W)=>wt(W))}function wr(G,W){return`${G}:${W}`}function qr(G){var _A;if(!((_A=l.value)!=null&&_A.contains(G)))return;l.value.focus();const sA=window.getSelection();if(sA){const cA=document.createRange();cA.selectNode(G),sA.removeAllRanges(),sA.addRange(cA),typeof document.execCommand=="function"&&document.execCommand("delete")||G.remove()}else G.remove();vi(),le()}function vi(){l.value&&(!YBA(l.value)&&l.value.childNodes.length>0&&(l.value.innerHTML=""),TA(),IA(),Je())}function Tt(){B.value=!0}function Wc(){B.value=!1}function Xc(G){var KA,Oe;G.preventDefault();const W=((KA=G.clipboardData)==null?void 0:KA.getData(Z8))??"",sA=W?LBA(W):null;if(sA&&sA.length>0){XA(sA);return}const _A=vf(G.clipboardData);if(_A.length>0&&r.showAttachment&&!r.disabled){po(_A);return}const cA=((Oe=G.clipboardData)==null?void 0:Oe.getData("text/plain"))??"";cA&&(yi(cA),vi())}function J(){const G=l.value,W=window.getSelection();if(!G||!W||W.rangeCount===0||W.isCollapsed)return null;const sA=W.getRangeAt(0),_A=sA.startContainer===G||G.contains(sA.startContainer),cA=sA.endContainer===G||G.contains(sA.endContainer);return!_A||!cA?null:sA}function j(G,W){var cA,KA;const sA=xBA(W),_A=MBA(W);G.preventDefault(),(cA=G.clipboardData)==null||cA.setData("text/plain",sA),(KA=G.clipboardData)==null||KA.setData(Z8,RBA(_A))}function uA(G){const W=J();W&&j(G,W)}function nA(G){if(r.disabled||_e.value)return;const W=J();W&&(j(G,W),W.deleteContents(),vi(),l.value&&Gu(l.value))}function QA(G,W){const sA=G??{id:W.triggerId,char:W.char||"@"},_A=o(),cA=!_A&&typeof sA.renderChip=="function",KA=_A?s():void 0,Oe=_A?i0(sA,W.id,W.label,{custom:!0,mountId:KA}):cA?i0(sA,W.id,W.label,{custom:!0}):P8(sA,W.id,W.label);if(cA&&sA.renderChip){const lt=sA.renderChip({triggerId:sA.id,id:W.id,label:W.label,char:sA.char});typeof lt=="string"?Oe.innerHTML=lt:Oe.appendChild(lt)}return Oe}function mA(G,W){const sA=W.split(`
651
651
  `);sA.forEach((_A,cA)=>{_A&&G.appendChild(document.createTextNode(_A)),cA<sA.length-1&&G.appendChild(document.createElement("br"))})}function XA(G){const W=l.value,sA=window.getSelection();if(!W||!sA||sA.rangeCount===0)return;const _A=sA.getRangeAt(0);if(!W.contains(_A.startContainer)&&_A.startContainer!==W)return;_A.deleteContents();const cA=document.createDocumentFragment(),KA=[];for(const lt of G){if(lt.type==="text"){mA(cA,lt.text);continue}const Qo=b.value.find(YB=>YB.id===lt.triggerId),Aa=QA(Qo,lt);cA.appendChild(Aa),Aa.hasAttribute(Rv)&&o()&&KA.push(Aa)}const Oe=cA.lastChild;if(_A.insertNode(cA),KA.forEach(lt=>zt(lt)),Oe){const lt=document.createRange();lt.setStartAfter(Oe),lt.collapse(!0),sA.removeAllRanges(),sA.addRange(lt)}vi(),Gu(W)}function UA(G){var cA,KA;const W=G.target,sA=(cA=W==null?void 0:W.closest)==null?void 0:cA.call(W,".chat-sender__mention-remove");if(!sA||!((KA=l.value)!=null&&KA.contains(sA)))return;G.preventDefault(),G.stopPropagation();const _A=sA.closest(`.${zc}`);!_A||!l.value||qr(_A)}function le(){const G=l.value;if(!G)return;let W=null;const sA=window.getSelection();if(sA&&sA.rangeCount>0&&G.contains(sA.getRangeAt(0).commonAncestorContainer))W=sA.getRangeAt(0).cloneRange();else if(E)try{G.contains(E.commonAncestorContainer)&&(W=E.cloneRange())}catch{E=null}G.focus();const _A=window.getSelection();if(!W||!_A){ee(G);return}_A.removeAllRanges(),_A.addRange(W),E=W.cloneRange()}function ie(G){return!!G.closest('button, a, input, textarea, select, label, [role="button"], [role="menuitem"], [role="switch"], [contenteditable="true"]')}function qe(G){if(r.disabled||_e.value)return;const W=G.target;!W||ie(W)||G.preventDefault()}function Wt(G){if(r.disabled||_e.value)return;const W=G.target;!W||ie(W)||le()}function ni(){P.value=!0}function gr(G){const W=g.value,sA=G.relatedTarget;W&&sA&&W.contains(sA)||requestAnimationFrame(()=>{if(W!=null&&W.contains(document.activeElement)){P.value=!0;return}P.value=!1})}function yi(G){const W=window.getSelection(),sA=l.value;if(!W||W.rangeCount===0||!sA)return;const _A=W.getRangeAt(0);if(!sA.contains(_A.startContainer))return;const cA=TBA(_A,G);if(!cA)return;const KA=document.createRange();KA.setStartAfter(cA),KA.collapse(!0),W.removeAllRanges(),W.addRange(KA)}function Yt(){Q.value=CR()}function $A(){const G=p.value;G&&(p.value=null,Q.value=null,C.value=void 0,i("trigger-close",{triggerId:G.triggerId}))}function Je(){const G=window.getSelection(),W=l.value;if(!G||G.rangeCount===0||!G.isCollapsed||!W){$A();return}const sA=G.getRangeAt(0);if(!W.contains(sA.startContainer)){$A();return}const _A=NBA(b.value,W,sA.startContainer,sA.startOffset);if(!_A){$A();return}const cA=_A.range.toString().slice(_A.trigger.char.length),KA=p.value;if(!KA||KA.triggerId!==_A.trigger.id)p.value={triggerId:_A.trigger.id,query:cA,range:_A.range},i("trigger-open",{triggerId:_A.trigger.id});else{const Oe=KA.query!==cA;p.value={triggerId:KA.triggerId,query:cA,range:_A.range},Oe&&i("trigger-query",{triggerId:_A.trigger.id,query:cA})}u.nextTick(()=>{Yt(),Z()})}function U(G){r.disabled||(le(),yi(G.char),vi())}function SA(){$A()}function Ae(G){const W=p.value;if(!W)return;const sA=b.value.find(_A=>_A.id===W.triggerId);if(sA){if(B.value){Promise.resolve().then(()=>Le(sA,W,G));return}Le(sA,W,G)}}function Le(G,W,sA){var my;const _A=l.value;if(!_A)return;const cA=o(),KA=!cA&&typeof G.renderChip=="function",Oe=cA?s():void 0,lt=cA?i0(G,sA.id,sA.label,{custom:!0,mountId:Oe}):KA?i0(G,sA.id,sA.label,{custom:!0}):P8(G,sA.id,sA.label);if(KA&&G.renderChip){const Eo=G.renderChip({triggerId:G.id,id:sA.id,label:sA.label,char:G.char});typeof Eo=="string"?lt.innerHTML=Eo:lt.appendChild(Eo)}const Qo=`m-${Date.now().toString(36)}-${Math.random().toString(36).slice(2,8)}`;lt.setAttribute("data-mention-token",Qo);const Aa=wBA(_A,W.range)?" ":"",YB=`${Aa}${lt.outerHTML} `;_A.focus();const Qs=window.getSelection();if(!Qs)return;Qs.removeAllRanges(),Qs.addRange(W.range),W.range.deleteContents();const UB=W.range.cloneRange();UB.collapse(!0),Qs.removeAllRanges(),Qs.addRange(UB);let Es=null;if(typeof document.execCommand=="function"&&document.execCommand("insertHTML",!1,YB)&&(Es=_A.querySelector(`[data-mention-token="${Qo}"]`)),!Es){const Eo=document.createDocumentFragment();Aa&&Eo.appendChild(document.createTextNode(Aa)),Eo.appendChild(lt),Eo.appendChild(document.createTextNode(" ")),UB.insertNode(Eo),Es=lt}Es.removeAttribute("data-mention-token"),cA&&zt(Es);const Mh=Es.nextSibling,Rh=document.createRange();Mh&&Mh.nodeType===Node.TEXT_NODE?Rh.setStart(Mh,Math.min(1,((my=Mh.textContent)==null?void 0:my.length)??0)):Rh.setStartAfter(Es),Rh.collapse(!0),Qs.removeAllRanges(),Qs.addRange(Rh);const Ey=wr(G.id,sA.id);v.set(Ey,{triggerId:G.id,id:sA.id,label:sA.label}),w.add(Ey),IA(),i("mention-insert",{triggerId:G.id,id:sA.id,label:sA.label}),$A()}function At(G){const W=l.value,sA=window.getSelection();if(!W||!sA||!sA.isCollapsed||sA.rangeCount===0)return!1;const _A=sA.getRangeAt(0),cA=G==="Backspace"?DBA(W,_A):kBA(W,_A);if(!cA)return!1;const KA=G==="Backspace"&&_A.startContainer.nodeType===Node.TEXT_NODE&&/^\s+$/.test(_A.startContainer.textContent??"")&&_A.startContainer.previousSibling===cA?_A.startContainer:null;W.focus();const Oe=document.createRange();return Oe.setStartBefore(cA),KA?Oe.setEndAfter(KA):Oe.setEndAfter(cA),sA.removeAllRanges(),sA.addRange(Oe),typeof document.execCommand=="function"&&document.execCommand("delete")||(cA.remove(),KA!=null&&KA.parentNode&&KA.parentNode.removeChild(KA)),!0}function Kr(G){if((G.key==="Backspace"||G.key==="Delete")&&!G.isComposing&&!B.value&&At(G.key)){G.preventDefault(),vi();return}if(G.key==="Enter"){if(G.shiftKey){G.preventDefault(),yi(`
652
- `),vi();return}G.isComposing||B.value||(G.preventDefault(),Hi())}}function Hi(){if(!Xn.value||r.disabled)return;const G=Tv(k.value,f.value,{attachmentInput:r.attachmentInput});jn.value=!0,i("send",G),ps(),$n.clear(),u.nextTick(()=>{var W;(W=l.value)==null||W.focus()})}function Bs(){jn.value=!1,i("stop")}function ps(){l.value&&(l.value.innerHTML=""),lr(),m.value="",k.value="",v.clear(),w=new Set,E=null,$A()}function Rr(){var G;(G=h.value)==null||G.click()}function GB(G){const W=G.target;if(W.files&&W.files.length>0){const sA=Array.from(W.files);po(sA)}W.value=""}function po(G){$n.addFiles(G)}A({addFiles:po});const By=u.inject(uR,null);let jc;const zl=u.ref(!1);let $c=0;function Au(){return r.enableFileDrop&&r.showAttachment&&!r.disabled}function TB(){$c=0,zl.value=!1}function TR(G){!Au()||!lc(G)||(G.preventDefault(),G.stopPropagation(),$c+=1,zl.value=!0)}function YR(G){!Au()||!lc(G)||(G.preventDefault(),G.stopPropagation(),G.dataTransfer&&(G.dataTransfer.dropEffect="copy"),zl.value=!0)}function UR(G){!Au()||!lc(G)||(G.stopPropagation(),$c=Math.max(0,$c-1),$c===0&&(zl.value=!1))}function JR(G){if(!Au())return;G.preventDefault(),G.stopPropagation(),TB();const W=vf(G.dataTransfer);W.length>0&&po(W)}u.watch(()=>[r.disabled,r.showAttachment,r.enableFileDrop],()=>{Au()||TB()});function OR(G){$n.remove(G)}function HR(G){$n.retry(G)}function py(G){return G.status==="uploaded"?G.resource.filename:G.file.name}function VR(G){return G.status==="uploaded"?El({name:G.resource.filename,type:""})==="image":El(G.file)==="image"}function ZR(G){return G.previewUrl?G.previewUrl:G.status==="uploaded"?Ql(G.resource.original_url,{width:GpA}):""}function PR(G){return G.status==="uploaded"?G.resource.size:G.file.size}function qR(G){return G.status==="uploading"||G.status==="error"?G.progress:0}function KR(G){return G.status==="error"?G.error.message:void 0}function zR(){K.value=!K.value,K.value?(Fr(),MA(),i("attachment-menu-open")):i("attachment-menu-close")}function WR(){Rr(),K.value=!1}function XR(){const G=typeof navigator>"u"?void 0:navigator.mediaDevices;G&&"getDisplayMedia"in G?jR():i("screenshot"),K.value=!1}async function jR(){try{const G=typeof navigator>"u"?void 0:navigator.mediaDevices;if(!(G!=null&&G.getDisplayMedia)){i("screenshot");return}const W=await G.getDisplayMedia({video:!0}),sA=document.createElement("video");sA.srcObject=W,sA.autoplay=!0,await new Promise(KA=>{sA.onloadedmetadata=KA}),await new Promise(KA=>setTimeout(KA,100));const _A=document.createElement("canvas");_A.width=sA.videoWidth,_A.height=sA.videoHeight;const cA=_A.getContext("2d");cA&&(cA.drawImage(sA,0,0),W.getTracks().forEach(KA=>KA.stop()),_A.toBlob(KA=>{if(KA){const Oe=new File([KA],`screenshot-${Date.now()}.png`,{type:"image/png"});po([Oe])}},"image/png"))}catch(G){console.error("截图失败:",G),i("screenshot")}}function $R(G){i("menu-item-click",G),K.value=!1}function AL(G){lA.value=G.id,i("quick-action-select",G),u.nextTick(()=>{var W;return(W=l.value)==null?void 0:W.focus()})}function eL(){lA.value=null,i("quick-action-clear"),u.nextTick(()=>{var G;return(G=l.value)==null?void 0:G.focus()})}function Qy(G){const W=G.target;xe.value&&!W.closest(".chat-sender__voice-wrapper")&&!W.closest(".chat-sender__voice-menu")&&Fr(),K.value&&!W.closest(".chat-sender__attachment-wrapper")&&(K.value=!1),kA.value&&!W.closest(".chat-sender__model-selector")&&MA()}return u.onMounted(()=>{document.addEventListener("click",Qy),document.addEventListener("selectionchange",z),window.addEventListener("resize",Z),window.addEventListener("scroll",Z,!0),window.addEventListener("resize",se),window.addEventListener("scroll",se,!0),By&&r.showAttachment&&(jc=By.register(po))}),u.onUnmounted(()=>{document.removeEventListener("click",Qy),document.removeEventListener("selectionchange",z),window.removeEventListener("resize",Z),window.removeEventListener("scroll",Z,!0),window.removeEventListener("resize",se),window.removeEventListener("scroll",se,!0),CA(),lr(),jc==null||jc(),jc=void 0,TB(),$n.dispose()}),(G,W)=>{var sA,_A;return u.openBlock(),u.createElementBlock("div",{ref_key:"rootRef",ref:g,class:u.normalizeClass(["chat-sender",{"chat-sender--focused":P.value,"chat-sender--disabled":r.disabled,"chat-sender--mode-active":vA.value,"chat-sender--drag-over":zl.value}]),style:u.normalizeStyle(T.value),onFocusin:ni,onFocusout:gr,onDragenter:TR,onDragover:YR,onDragleave:UR,onDrop:JR},[u.createElementVNode("div",{class:"chat-sender__inner",onMousedown:qe,onClick:Wt},[zl.value?(u.openBlock(),u.createBlock(gR,{key:0})):u.createCommentVNode("",!0),f.value.length>0?(u.openBlock(),u.createElementBlock("div",HBA,[(u.openBlock(!0),u.createElementBlock(u.Fragment,null,u.renderList(f.value,cA=>(u.openBlock(),u.createBlock(Ov,{key:cA.id,class:u.normalizeClass(["chat-sender__file-thumbnail",`chat-sender__file-thumbnail--${cA.status}`]),name:py(cA),kind:VR(cA)?"image":"file","image-src":ZR(cA),"icon-src":u.unref(Uv)(py(cA)),size:PR(cA),status:cA.status,progress:qR(cA),"error-message":KR(cA),removable:"",retryable:cA.status==="error",onRemove:KA=>OR(cA.id),onRetry:KA=>HR(cA.id)},null,8,["class","name","kind","image-src","icon-src","size","status","progress","error-message","retryable","onRemove","onRetry"]))),128))])):u.createCommentVNode("",!0),u.unref(rr)?(u.openBlock(),u.createElementBlock("p",VBA,u.toDisplayString(u.unref(rr)),1)):u.createCommentVNode("",!0),u.createElementVNode("div",ZBA,[u.createElementVNode("div",PBA,[u.createElementVNode("div",{ref_key:"editorRef",ref:l,class:u.normalizeClass(["chat-sender__editor",{"chat-sender__editor--disabled":r.disabled}]),contenteditable:r.disabled||u.unref(_e)?"false":"true","data-placeholder":u.unref(_e)?"正在聆听...":FA.value,style:u.normalizeStyle({maxHeight:`${F.value}px`}),role:"textbox","aria-multiline":"true","aria-label":"输入消息","aria-haspopup":"listbox","aria-expanded":p.value!==null,onInput:vi,onKeydown:Kr,onCompositionstart:Tt,onCompositionend:Wc,onPaste:Xc,onCopy:uA,onCut:nA,onClick:UA},null,46,qBA),(u.openBlock(),u.createBlock(u.Teleport,{to:"body"},[u.createVNode(u.Transition,{name:"attachment-menu"},{default:u.withCtx(()=>[p.value?(u.openBlock(),u.createElementBlock("div",{key:0,ref_key:"triggerMenuRef",ref:c,class:u.normalizeClass(["chat-sender__trigger-menu",{"chat-sender__trigger-menu--custom":r.triggerMenuPlacement==="custom"}]),style:u.normalizeStyle(Y.value),onMousedown:W[0]||(W[0]=u.withModifiers(()=>{},["prevent"]))},[u.renderSlot(G.$slots,"trigger-menu",{triggerId:p.value.triggerId,query:p.value.query,select:Ae,close:SA,anchorRect:R.value},void 0,!0)],38)):u.createCommentVNode("",!0)]),_:3})]))]),u.createElementVNode("div",KBA,[u.createElementVNode("div",zBA,[r.showAttachment?(u.openBlock(),u.createElementBlock("div",WBA,[u.createElementVNode("button",{type:"button",class:u.normalizeClass(["chat-sender__icon-button",{"chat-sender__icon-button--active":K.value}]),disabled:r.disabled,"aria-label":"添加附件","aria-haspopup":"menu","aria-expanded":K.value,onClick:u.withModifiers(zR,["stop"])},[u.createVNode(u.unref(nR),{size:18})],10,XBA),u.createVNode(u.Transition,{name:"attachment-menu"},{default:u.withCtx(()=>[K.value?(u.openBlock(),u.createElementBlock("div",{key:0,class:"chat-sender__attachment-menu",role:"menu",onClick:W[1]||(W[1]=u.withModifiers(()=>{},["stop"]))},[u.createElementVNode("button",{type:"button",role:"menuitem",class:"chat-sender__attachment-menu-item",onClick:WR},[u.createVNode(u.unref(lR),{size:18}),W[16]||(W[16]=u.createElementVNode("span",null,"添加文件或图片",-1))]),r.showScreenshot?(u.openBlock(),u.createElementBlock("button",{key:0,type:"button",role:"menuitem",class:"chat-sender__attachment-menu-item",onClick:XR},[...W[17]||(W[17]=[u.createElementVNode("svg",{width:"18",height:"18",viewBox:"0 0 24 24",fill:"none",xmlns:"http://www.w3.org/2000/svg"},[u.createElementVNode("path",{d:"M9 3h2.25L12.4 4.8A.5.5 0 0 0 12.8 5H15.5A1.5 1.5 0 0 1 17 6.5v10a1.5 1.5 0 0 1-1.5 1.5h-11A1.5 1.5 0 0 1 3 16.5v-10A1.5 1.5 0 0 1 4.5 5H7.2a.5.5 0 0 0 .4-.2L8.75 3H9zm3 5.5a3.5 3.5 0 1 0 0 7 3.5 3.5 0 0 0 0-7zm0 1.5a2 2 0 1 1 0 4 2 2 0 0 1 0-4z",fill:"#333333"})],-1),u.createElementVNode("span",null,"截图",-1)])])):u.createCommentVNode("",!0),r.customMenuItems&&r.customMenuItems.length>0?(u.openBlock(),u.createElementBlock("div",jBA)):u.createCommentVNode("",!0),(u.openBlock(!0),u.createElementBlock(u.Fragment,null,u.renderList(r.customMenuItems,cA=>(u.openBlock(),u.createElementBlock("button",{key:cA.id,type:"button",role:"menuitem",class:"chat-sender__attachment-menu-item",disabled:cA.disabled,onClick:KA=>$R(cA.id)},[(u.openBlock(),u.createBlock(u.resolveDynamicComponent(cA.icon))),u.createElementVNode("span",null,u.toDisplayString(cA.label),1)],8,$BA))),128))])):u.createCommentVNode("",!0)]),_:1})])):u.createCommentVNode("",!0),N.value?(u.openBlock(),u.createElementBlock("span",ApA)):u.createCommentVNode("",!0),(u.openBlock(!0),u.createElementBlock(u.Fragment,null,u.renderList(S.value,cA=>(u.openBlock(),u.createElementBlock("button",{key:cA.id,type:"button",class:"chat-sender__icon-button",disabled:r.disabled,"aria-label":cA.button.label,onMousedown:W[2]||(W[2]=u.withModifiers(()=>{},["prevent"])),onClick:KA=>U(cA)},[cA.button.icon?(u.openBlock(),u.createBlock(u.resolveDynamicComponent(cA.button.icon),{key:0,size:18,"stroke-width":1.75,"aria-hidden":"true"})):(u.openBlock(),u.createElementBlock("span",tpA,u.toDisplayString(cA.char),1))],40,epA))),128)),r.quickActions.length>0?(u.openBlock(),u.createElementBlock(u.Fragment,{key:2},[_.value?(u.openBlock(),u.createElementBlock("span",rpA)):u.createCommentVNode("",!0),vA.value?(u.openBlock(),u.createElementBlock("div",apA,[vA.value.icon?(u.openBlock(),u.createBlock(u.resolveDynamicComponent(vA.value.icon),{key:0,size:14,"stroke-width":1.75,"aria-hidden":"true"})):u.createCommentVNode("",!0),u.createElementVNode("span",null,u.toDisplayString(vA.value.label),1),u.createElementVNode("button",{type:"button",class:"chat-sender__quick-action-remove","aria-label":"退出该模式",onClick:eL},[u.createVNode(u.unref(gh),{size:14,"stroke-width":2,"aria-hidden":"true"})])])):(u.openBlock(),u.createElementBlock("div",ipA,[(u.openBlock(!0),u.createElementBlock(u.Fragment,null,u.renderList(r.quickActions,cA=>(u.openBlock(),u.createElementBlock("button",{key:cA.id,type:"button",class:"chat-sender__quick-action",disabled:r.disabled,onClick:KA=>AL(cA)},[cA.icon?(u.openBlock(),u.createBlock(u.resolveDynamicComponent(cA.icon),{key:0,size:14,"stroke-width":1.75,"aria-hidden":"true"})):u.createCommentVNode("",!0),u.createElementVNode("span",null,u.toDisplayString(cA.label),1)],8,npA))),128))]))],64)):u.createCommentVNode("",!0)]),u.createElementVNode("div",opA,[u.createElementVNode("div",spA,[G.$slots["toolbar-before-voice"]?(u.openBlock(),u.createElementBlock("div",lpA,[u.renderSlot(G.$slots,"toolbar-before-voice",{},void 0,!0)])):u.createCommentVNode("",!0),u.createElementVNode("div",{ref_key:"voiceWrapperRef",ref:tn,class:u.normalizeClass(["chat-sender__voice-wrapper",{"chat-sender__voice-wrapper--unsupported":ir.value,"chat-sender__voice-wrapper--permission-denied":u.unref(Zr),"chat-sender__voice-wrapper--with-model":Se.value}]),title:u.unref(Zr)?void 0:qt.value,onMouseleave:Kt},[u.createElementVNode("div",{class:u.normalizeClass(["chat-sender__voice-group",{"chat-sender__voice-group--with-model":Se.value}])},[Se.value?(u.openBlock(),u.createElementBlock("div",{key:0,class:u.normalizeClass(["chat-sender__model-selector",{"chat-sender__model-selector--shifted":WA.value}]),"aria-label":"选择模型"},[u.createElementVNode("button",{type:"button",class:u.normalizeClass(["chat-sender__model-trigger",{"chat-sender__model-trigger--open":kA.value}]),disabled:r.disabled,title:((sA=oe.value)==null?void 0:sA.label)??"选择模型","aria-haspopup":"menu","aria-expanded":kA.value,onClick:u.withModifiers(gA,["stop"])},[u.createElementVNode("span",upA,u.toDisplayString(((_A=oe.value)==null?void 0:_A.label)??"选择模型"),1),u.createVNode(u.unref(FS),{class:"chat-sender__model-trigger-chevron",size:14,"stroke-width":1.75,"aria-hidden":"true"})],10,cpA),u.createVNode(u.Transition,{name:"attachment-menu"},{default:u.withCtx(()=>[kA.value?(u.openBlock(),u.createElementBlock("div",{key:0,class:"chat-sender__model-menu",role:"menu","aria-label":"模型列表",onClick:W[3]||(W[3]=u.withModifiers(()=>{},["stop"]))},[(u.openBlock(!0),u.createElementBlock(u.Fragment,null,u.renderList(r.models,cA=>(u.openBlock(),u.createElementBlock("button",{key:cA.id,type:"button",role:"menuitemradio",class:u.normalizeClass(["chat-sender__model-menu-item",{"chat-sender__model-menu-item--selected":cA.id===GA.value}]),"aria-checked":cA.id===GA.value,disabled:cA.disabled,title:cA.label,onClick:KA=>pe(cA)},[u.createElementVNode("span",CpA,[u.createElementVNode("span",IpA,u.toDisplayString(cA.label),1),cA.description?(u.openBlock(),u.createElementBlock("span",dpA,u.toDisplayString(cA.description),1)):u.createCommentVNode("",!0)]),u.createElementVNode("span",fpA,[cA.id===GA.value?(u.openBlock(),u.createBlock(u.unref(Jv),{key:0,size:16,"stroke-width":2})):u.createCommentVNode("",!0)])],10,hpA))),128))])):u.createCommentVNode("",!0)]),_:1})],2)):u.createCommentVNode("",!0),u.createElementVNode("div",{class:u.normalizeClass(["chat-sender__voice-controls",{"chat-sender__voice-controls--menu-open":u.unref(xe)}]),onMouseenter:Nt,onMouseleave:It},[ir.value?u.createCommentVNode("",!0):(u.openBlock(),u.createElementBlock("div",{key:0,class:u.normalizeClass(["chat-sender__voice-settings-wrapper",{"chat-sender__voice-settings-wrapper--visible":u.unref(Pt)||u.unref(xe)}])},[u.createElementVNode("button",{type:"button",class:u.normalizeClass(["chat-sender__voice-settings",{"chat-sender__voice-settings--active":u.unref(xe)}]),disabled:r.disabled,"aria-label":"麦克风设置",onClick:W[4]||(W[4]=u.withModifiers((...cA)=>u.unref(An)&&u.unref(An)(...cA),["stop"]))},[u.createVNode(u.unref(aR))],10,BpA)],2)),u.createElementVNode("button",{type:"button",class:u.normalizeClass(["chat-sender__voice-button",{"chat-sender__voice-button--recording":u.unref(_e),"chat-sender__voice-button--holding":u.unref(Me),"chat-sender__voice-button--unsupported":ir.value}]),disabled:r.disabled||ir.value,"aria-label":en.value,onClick:W[5]||(W[5]=(...cA)=>u.unref(Oi)&&u.unref(Oi)(...cA)),onMousedown:W[6]||(W[6]=(...cA)=>u.unref(rA)&&u.unref(rA)(...cA)),onMouseup:W[7]||(W[7]=(...cA)=>u.unref(oA)&&u.unref(oA)(...cA)),onMouseleave:W[8]||(W[8]=(...cA)=>u.unref(EA)&&u.unref(EA)(...cA))},[ir.value?(u.openBlock(),u.createBlock(u.unref(WI),{key:0,size:20})):u.unref(_e)?(u.openBlock(),u.createElementBlock("div",QpA,[(u.openBlock(),u.createElementBlock(u.Fragment,null,u.renderList(AA,(cA,KA)=>u.createElementVNode("span",{key:KA,class:"chat-sender__voice-wave-bar",style:u.normalizeStyle({animationDelay:`${(KA+1)*.1}s`,height:cA})},null,4)),64))])):(u.openBlock(),u.createBlock(u.unref(Mv),{key:1,size:20}))],42,ppA)],34)],2)],42,gpA),(u.openBlock(),u.createBlock(u.Teleport,{to:"body"},[u.createVNode(u.Transition,{name:"voice-menu"},{default:u.withCtx(()=>[Ct.value?(u.openBlock(),u.createElementBlock("div",{key:0,ref_key:"micPermissionPopoverRef",ref:Gt,class:"chat-sender__mic-permission-popover",role:"dialog","aria-label":"尚未获得麦克风权限",style:u.normalizeStyle(X.value),onClick:W[10]||(W[10]=u.withModifiers(()=>{},["stop"])),onMouseenter:Mr,onMouseleave:rn},[u.createElementVNode("div",EpA,[u.createVNode(u.unref(WI)),W[18]||(W[18]=u.createElementVNode("span",{class:"chat-sender__mic-permission-popover-title"},"尚未获得麦克风权限",-1))]),u.createElementVNode("p",mpA,[W[19]||(W[19]=u.createTextVNode(" 语音输入提问需要开启麦克风权限,请点击前往设置进行开启。 ",-1)),r.micPermissionGuideUrl?(u.openBlock(),u.createElementBlock("a",{key:0,class:"chat-sender__mic-permission-popover-link",href:r.micPermissionGuideUrl,target:"_blank",rel:"noopener noreferrer",onClick:W[9]||(W[9]=cA=>i("mic-permission-guide-click"))}," 麦克风权限开启指南 ",8,vpA)):u.createCommentVNode("",!0)]),u.createElementVNode("div",ypA,[u.createVNode(u.unref(WI),{size:48})]),u.createElementVNode("button",{type:"button",class:"chat-sender__mic-permission-popover-dismiss",onClick:ii}," 知道了 ")],36)):u.createCommentVNode("",!0)]),_:1}),u.createVNode(u.Transition,{name:"voice-menu"},{default:u.withCtx(()=>[u.unref(xe)?(u.openBlock(),u.createElementBlock("div",{key:0,ref_key:"voiceMenuRef",ref:Te,class:"chat-sender__voice-menu",style:u.normalizeStyle(Pr.value),onClick:W[14]||(W[14]=u.withModifiers(()=>{},["stop"]))},[u.createElementVNode("div",wpA,[u.createVNode(u.unref(Mv)),W[20]||(W[20]=u.createElementVNode("span",{class:"chat-sender__voice-menu-title"},"麦克风",-1)),u.createElementVNode("div",DpA,[u.createElementVNode("div",{class:"chat-sender__voice-level-bar",style:u.normalizeStyle({width:`${u.unref(Lt)}%`})},null,4)])]),u.createElementVNode("div",kpA,[u.createElementVNode("div",bpA,[(u.openBlock(!0),u.createElementBlock(u.Fragment,null,u.renderList(u.unref(Br),(cA,KA)=>(u.openBlock(),u.createElementBlock("button",{key:cA.deviceId,type:"button",class:u.normalizeClass(["chat-sender__voice-menu-item",{"chat-sender__voice-menu-item--active":cA.active}]),onClick:Oe=>u.unref(St)(KA)},[u.createElementVNode("span",NpA,u.toDisplayString(cA.label),1),cA.active?(u.openBlock(),u.createBlock(u.unref(oR),{key:0,class:"chat-sender__voice-menu-check"})):u.createCommentVNode("",!0)],10,SpA))),128))])]),u.createElementVNode("div",xpA,[u.createElementVNode("button",{type:"button",class:"chat-sender__voice-menu-option",onClick:W[13]||(W[13]=(...cA)=>u.unref(Pe)&&u.unref(Pe)(...cA))},[u.createElementVNode("div",_pA,[u.createVNode(u.unref(sR)),W[21]||(W[21]=u.createElementVNode("span",{class:"chat-sender__voice-menu-option-label"},"长按录音",-1))]),u.createElementVNode("label",{class:"chat-sender__voice-menu-switch",onClick:W[12]||(W[12]=u.withModifiers(()=>{},["stop"]))},[u.createElementVNode("input",{type:"checkbox",checked:u.unref($e),onChange:W[11]||(W[11]=(...cA)=>u.unref(Pe)&&u.unref(Pe)(...cA))},null,40,FpA),W[22]||(W[22]=u.createElementVNode("span",{class:"chat-sender__voice-menu-switch-slider"},null,-1))])])])],4)):u.createCommentVNode("",!0)]),_:1})])),u.createElementVNode("div",{class:u.normalizeClass(["chat-sender__send-wrapper",{"chat-sender__send-wrapper--visible":ql.value}])},[u.createElementVNode("button",{type:"button",class:u.normalizeClass(["chat-sender__action-button",Rn.value?"chat-sender__stop-button":"chat-sender__send-button"]),disabled:!Rn.value&&r.disabled,"aria-label":Rn.value?"停止生成":"发送消息",onClick:W[15]||(W[15]=cA=>Rn.value?Bs():Hi())},[u.createElementVNode("span",RpA,[u.createElementVNode("img",{src:u.unref(tBA),alt:"",class:u.normalizeClass(["chat-sender__send-icon",{"chat-sender__action-icon--active":!Rn.value}])},null,10,LpA),u.createVNode(u.unref(lT),{size:14,fill:"currentColor",class:u.normalizeClass(["chat-sender__stop-icon",{"chat-sender__action-icon--active":Rn.value}])},null,8,["class"])])],10,MpA)],2)])])])])],32),u.createElementVNode("input",{ref_key:"fileInputRef",ref:h,type:"file",multiple:"",accept:"image/*,.pdf,.docx,.xls,.xlsx,.pptx,.html,.htm,.txt,.md,.markdown,audio/*,video/*",class:"chat-sender__file-input","aria-label":"选择文件",onChange:GB},null,544)],38)}}}),IR=ae(TpA,[["__scopeId","data-v-63e4017f"]]),YpA={class:"chat-empty",role:"status"},UpA={class:"chat-empty__title"},JpA={class:"chat-empty__description"},OpA=u.defineComponent({name:"EmptyState",__name:"EmptyState",props:{title:{default:"等待消息"},description:{default:"将对话数据传入组件后会显示在这里。"}},setup(e){return(A,t)=>(u.openBlock(),u.createElementBlock("div",YpA,[t[0]||(t[0]=u.createElementVNode("div",{class:"chat-empty__icon","aria-hidden":"true"},[u.createElementVNode("svg",{viewBox:"0 0 24 24",width:"48",height:"48",fill:"none",stroke:"currentColor","stroke-width":"1.5"},[u.createElementVNode("path",{d:"M3 12a9 9 0 1 1 18 0c0 4.97-4.03 9-9 9-1.27 0-2.48-.26-3.58-.74L3 21l.74-5.42A8.96 8.96 0 0 1 3 12z"})])],-1)),u.createElementVNode("h3",UpA,u.toDisplayString(e.title),1),u.createElementVNode("p",JpA,u.toDisplayString(e.description),1)]))}}),dR=ae(OpA,[["__scopeId","data-v-27943bfd"]]),HpA=["aria-label"],VpA=["aria-labelledby"],ZpA={class:"ask-form__header"},PpA={class:"ask-form__heading"},qpA={key:0,class:"ask-form__eyebrow"},KpA=["id"],zpA={class:"ask-form__body","data-question-scroll":"true"},WpA=["aria-multiselectable"],XpA=["aria-selected","aria-label","onClick"],jpA={key:1,class:"ask-form__number","aria-hidden":"true"},$pA={class:"ask-form__option-copy"},AQA={class:"ask-form__option-line"},eQA={class:"ask-form__label"},tQA={key:0,class:"ask-form__badge","aria-label":"推荐"},rQA={key:0,class:"ask-form__description"},iQA={class:"ask-form__number","aria-hidden":"true"},nQA={class:"ask-form__footer"},aQA={class:"ask-form__pager","aria-label":"问题导航"},oQA=["disabled"],sQA={class:"ask-form__progress","data-testid":"ask-form-progress","aria-live":"polite"},lQA=["disabled"],gQA=["disabled"],cQA=u.defineComponent({name:"AskUserForm",__name:"AskUserForm",props:{question:{},questionIndex:{default:0},questionCount:{default:1},groupCanSubmit:{type:Boolean,default:!1}},emits:["action","dismiss","answerChange","previous","next","submitGroup"],setup(e,{emit:A}){const t=e,r=A,i=u.ref(!1),n=u.ref(""),a=u.ref([]),o=u.ref(!1),s=u.computed(()=>{var AA;return((AA=t.question.header)==null?void 0:AA.trim())??""}),l=u.computed(()=>t.question.id),g=u.computed(()=>t.question.multi_select),c=u.computed(()=>t.question.required),C=u.computed(()=>!c.value),h=u.computed(()=>t.questionCount>1),I=u.computed(()=>!h.value||C.value),d=u.computed(()=>t.questionIndex===t.questionCount-1),f=u.computed(()=>t.questionIndex>0),B=u.computed(()=>t.questionIndex<t.questionCount-1),p=u.computed(()=>t.question.options),Q=u.computed(()=>p.value.length===0),E=u.computed(()=>o.value||n.value.trim().length>0),m=u.computed(()=>g.value||Q.value),v=u.computed(()=>h.value&&!d.value?"确认":"提交"),w=u.computed(()=>k()?h.value&&d.value&&(g.value||Q.value)?!t.groupCanSubmit:!1:!0);function k(){return a.value.length>0?!0:n.value.trim().length>0}function b(){const AA=n.value.trim();return AA&&a.value.length===0?{id:l.value,selected:[],custom:AA}:{id:l.value,selected:[...a.value],...AA&&g.value?{custom:AA}:{}}}function S(){if(!k()){r("answerChange",null);return}r("answerChange",b())}function N(){if(h.value){if(B.value){r("next");return}r("submitGroup")}}function _(AA){if(h.value){r("answerChange",AA);return}i.value||(i.value=!0,r("action",{type:"submit",source:"ask-user",answers:[AA],label:F(AA)}))}function F(AA){var K;const P=[];for(const iA of AA.selected){const lA=p.value.find(vA=>vA.value===iA);P.push((lA==null?void 0:lA.label)??iA)}return(K=AA.custom)!=null&&K.trim()&&P.push(AA.custom.trim()),P.join(", ")||"(跳过)"}function R(AA){if(g.value){Y(AA.value);return}n.value="",a.value=[AA.value];const P=b();if(h.value){r("answerChange",P),N();return}_(P)}function Y(AA){a.value.includes(AA)?a.value=a.value.filter(P=>P!==AA):a.value=[...a.value,AA],h.value&&S()}function q(){if(!k())return;const AA=b();if(h.value){r("answerChange",AA),N();return}_(AA)}function Z(){!g.value&&n.value.trim()&&(a.value=[]),h.value&&S()}function O(){const AA=n.value.trim();if(!AA)return;if(g.value){if(h.value){S();return}q();return}a.value=[];const P={id:l.value,selected:[],custom:AA};if(h.value){r("answerChange",P),N();return}_(P)}function eA(){if(!I.value)return;a.value=[],n.value="";const AA={id:l.value,selected:[]};if(h.value){r("answerChange",AA),N();return}i.value||(i.value=!0,r("dismiss"))}function tA(){i.value||(i.value=!0,r("dismiss"))}function T(AA){return a.value.includes(AA)}return(AA,P)=>i.value?u.createCommentVNode("",!0):(u.openBlock(),u.createElementBlock("div",{key:0,class:"ask-form","data-ask-user-input-banner":"true",tabindex:"-1",role:"group","aria-label":e.question.question},[u.createElementVNode("section",{class:"ask-form__card","aria-labelledby":`ask-form-title-${l.value}`},[u.createElementVNode("header",ZpA,[u.createElementVNode("div",PpA,[s.value?(u.openBlock(),u.createElementBlock("div",qpA,u.toDisplayString(s.value),1)):u.createCommentVNode("",!0),u.createElementVNode("div",{id:`ask-form-title-${l.value}`,class:"ask-form__question",role:"heading","aria-level":"2"},u.toDisplayString(e.question.question),9,KpA)]),u.createElementVNode("button",{type:"button",class:"ask-form__icon-btn","aria-label":"放弃整组问题",title:"放弃整组问题",onClick:tA},[u.createVNode(u.unref(jL),{size:16})])]),u.createElementVNode("div",zpA,[u.createElementVNode("div",{class:"ask-form__options",role:"listbox","aria-multiselectable":g.value},[(u.openBlock(!0),u.createElementBlock(u.Fragment,null,u.renderList(p.value,(K,iA)=>(u.openBlock(),u.createElementBlock("button",{key:K.value,type:"button",class:u.normalizeClass(["ask-form__option",{"is-selected":T(K.value)}]),role:"option","aria-selected":T(K.value),"aria-label":K.label,onClick:lA=>R(K)},[g.value?(u.openBlock(),u.createElementBlock("span",{key:0,class:u.normalizeClass(["ask-form__checkbox",{"is-checked":T(K.value)}]),"aria-hidden":"true"},[T(K.value)?(u.openBlock(),u.createBlock(u.unref(ZL),{key:0,size:14})):u.createCommentVNode("",!0)],2)):(u.openBlock(),u.createElementBlock("span",jpA,u.toDisplayString(iA+1),1)),u.createElementVNode("span",$pA,[u.createElementVNode("span",AQA,[u.createElementVNode("span",eQA,u.toDisplayString(K.label),1),K.recommended?(u.openBlock(),u.createElementBlock("span",tQA,"推荐")):u.createCommentVNode("",!0)]),K.description?(u.openBlock(),u.createElementBlock("span",rQA,u.toDisplayString(K.description),1)):u.createCommentVNode("",!0)])],10,XpA))),128)),u.createElementVNode("div",{class:u.normalizeClass(["ask-form__other",{"is-active":E.value}]),"data-testid":"ask-form-other"},[u.createElementVNode("span",iQA,u.toDisplayString(p.value.length+1),1),u.withDirectives(u.createElementVNode("input",{"onUpdate:modelValue":P[0]||(P[0]=K=>n.value=K),class:"ask-form__other-input",type:"text",placeholder:"其他",autocomplete:"off",onFocus:P[1]||(P[1]=K=>o.value=!0),onBlur:P[2]||(P[2]=K=>o.value=!1),onInput:Z,onKeyup:u.withKeys(O,["enter"])},null,544),[[u.vModelText,n.value]])],2)],8,WpA)]),u.createElementVNode("footer",nQA,[u.createElementVNode("div",aQA,[u.createElementVNode("button",{type:"button",class:"ask-form__icon-btn",disabled:!f.value,"aria-label":"上一题",onClick:P[3]||(P[3]=K=>r("previous"))},[u.createVNode(u.unref(WL),{size:14})],8,oQA),u.createElementVNode("span",sQA,u.toDisplayString(e.questionIndex+1)+" / "+u.toDisplayString(e.questionCount),1),u.createElementVNode("button",{type:"button",class:"ask-form__icon-btn",disabled:!B.value,"aria-label":"下一题",onClick:P[4]||(P[4]=K=>r("next"))},[u.createVNode(u.unref(XL),{size:14})],8,lQA)]),P[5]||(P[5]=u.createElementVNode("div",{class:"ask-form__feedback",role:"status"},null,-1)),u.createElementVNode("div",{class:u.normalizeClass(["ask-form__footer-actions",{"ask-form__other-actions":h.value&&g.value}])},[I.value?(u.openBlock(),u.createElementBlock("button",{key:0,type:"button",class:"ask-form__btn ask-form__btn--outline ask-form__skip","data-testid":"ask-form-skip",onClick:eA},u.toDisplayString((h.value,"跳过")),1)):u.createCommentVNode("",!0),m.value?(u.openBlock(),u.createElementBlock("button",{key:1,type:"button",class:"ask-form__btn ask-form__btn--primary ask-form__chip-btn is-primary","data-testid":"ask-form-confirm",disabled:w.value,onClick:q},u.toDisplayString(v.value),9,gQA)):u.createCommentVNode("",!0)],2)])],8,VpA)],8,HpA))}}),uQA=ae(cQA,[["__scopeId","data-v-30df58da"]]),fR=512*1024,hQA=new TextEncoder,CQA=new Set(["session","end"]),IQA="response.ga.done",dQA=new Set(["response.completed","response.incomplete","response.failed","response.ga.done","error"]),fQA=new Set(["response.created","response.in_progress","response.completed","response.incomplete","response.failed","response.ga.done","response.output_item.added","response.output_item.done","response.content_part.added","response.content_part.done","response.output_text.delta","response.output_text.done","response.reasoning_summary_part.added","response.reasoning_summary_part.done","response.reasoning_summary_text.delta","response.reasoning_summary_text.done","response.function_call_arguments.delta","response.function_call_arguments.done","error"]);class gt extends Error{constructor(A,t,r){super(t?`${t}: ${A}`:A),this.name="ResponseStreamProtocolError",this.code=t,this.status=r}}async function BQA(e,A){var F,R,Y,q,Z,O,eA,tA;if((F=A.signal)!=null&&F.aborted)return{status:"aborted",response:null};const t=[];let r=0,i=null,n=null;const a=new Map;let o=null,s=null,l=0,g=!1;const c=T=>r+ua(T,"output_index"),C=()=>{const T=IE(t);t.splice(0,t.length,...T),r=t.length},h=T=>{t.splice(r,Math.max(0,t.length-r),...gc(T)),l=js(t)},I=T=>{if(l+=QR(T),l>fR)throw new gt("Responses stream content exceeded the 512 KB limit")},d=()=>{const T=i,AA=T?{...T,output:IE(t)}:null;A.onUpdate(pR(t),AA)},f=()=>{g&&(d(),g=!1)},B=()=>({status:s??"completed",response:i?Object.assign({},i,{output:IE(t)}):null}),p=(T,AA)=>{var P,K,iA;switch(T.type){case"response.created":C(),i=BE(T.response),(P=i.output)!=null&&P.length&&h(i.output);break;case"response.in_progress":i=BE(T.response),(K=i.output)!=null&&K.length&&h(i.output);break;case"response.output_item.added":{const lA=c(T.output_index);t[lA]=gc(X8(T.item)),l=js(t);break}case"response.output_item.done":{const lA=c(T.output_index),vA=X8(T.item);t[lA]=gc(T.resource_files!==void 0?{...vA,resource_files:T.resource_files}:vA),l=js(t);break}case"response.content_part.added":case"response.content_part.done":{const lA=dE(t,c(T.output_index),T.item_id),vA=ua(T.content_index,"content_index");lA.content[vA]=mQA(sh(T.part,"part")),l=js(t);break}case"response.output_text.delta":{const lA=dE(t,c(T.output_index),T.item_id),vA=ua(T.content_index,"content_index"),FA=z8(lA,vA),ZA=hi(T.delta,"delta");FA.text+=ZA,I(ZA);break}case"response.output_text.done":{const lA=dE(t,c(T.output_index),T.item_id),vA=ua(T.content_index,"content_index"),FA=z8(lA,vA);FA.text=hi(T.text,"text"),l=js(t);break}case"response.reasoning_summary_part.added":case"response.reasoning_summary_part.done":{const lA=fE(t,c(T.output_index),T.item_id),vA=ua(T.summary_index,"summary_index");(lA.summary??(lA.summary=[]))[vA]=EQA(sh(T.part,"part"));break}case"response.reasoning_summary_text.delta":{const lA=fE(t,c(T.output_index),T.item_id),vA=ua(T.summary_index,"summary_index"),FA=W8(lA,vA),ZA=hi(T.delta,"delta");FA.text+=ZA,I(ZA);break}case"response.reasoning_summary_text.done":{const lA=fE(t,c(T.output_index),T.item_id),vA=ua(T.summary_index,"summary_index"),FA=W8(lA,vA);FA.text=hi(T.text,"text"),l=js(t);break}case"response.function_call_arguments.delta":{const lA=K8(t,c(T.output_index),T.item_id),vA=hi(T.delta,"delta");lA.arguments+=vA,I(vA);break}case"response.function_call_arguments.done":{const lA=K8(t,c(T.output_index),T.item_id);lA.arguments=hi(T.arguments,"arguments"),l=js(t);break}case"response.completed":case"response.incomplete":case"response.failed":{i=BE(T.response),i.output&&h(i.output),T.type==="response.completed"?o="completed":T.type==="response.incomplete"&&(o="incomplete");break}case"response.ga.done":s=o??"completed";break}if(T.type!=="response.ga.done"&&(g=!0),(iA=A.onEvent)==null||iA.call(A,T,AA),T.type==="response.failed"){f();const lA=T.response.error;throw new gt((lA==null?void 0:lA.message)||"Responses stream failed",(lA==null?void 0:lA.code)??void 0)}if(T.type==="error")throw f(),new gt(T.message||"Responses stream failed",T.code??void 0)},Q=()=>{const T=[...a.keys()].sort((AA,P)=>AA-P);for(const AA of T){const P=a.get(AA);P&&(a.delete(AA),p(P.event,P.frame),n=AA+1)}},E=()=>{if(n!==null)for(;a.has(n);){const T=a.get(n);if(!T)break;a.delete(n),p(T.event,T.frame),n+=1}},m=(T,AA)=>{const P=T.sequence_number;if(!(typeof P=="number"&&Number.isSafeInteger(P)&&P>=0)){Q(),p(T,AA);return}if(T.type==="response.created")Q(),n=P;else if(n===null)n=P;else if(P<n)return;a.set(P,{event:T,frame:AA}),E(),dQA.has(T.type)&&a.size>0&&Q()},v=T=>{const AA=pQA(T);AA&&m(AA,T)};if((T=>{if(T!=null&&T.length){for(const AA of T)for(const P of QQA(AA))if(v(P),s)return;a.size>0&&Q()}})(A.replay),f(),(R=A.signal)!=null&&R.aborted)return{status:"aborted",response:i};if(s)return B();const k=await e;if(!k.ok)throw new gt(`Responses request failed with HTTP ${k.status}${k.statusText?` ${k.statusText}`:""}`,void 0,k.status);if(!k.body)throw new gt("Responses SSE body is missing");const b=k.body.getReader(),S=new TextDecoder("utf-8",{fatal:!0}),N=new yR,_=()=>{b.cancel().catch(()=>{})};(Y=A.signal)==null||Y.addEventListener("abort",_,{once:!0});try{for(;!s;){const T=await b.read();if((q=A.signal)!=null&&q.aborted)return{status:"aborted",response:i};if(T.done)break;const AA=S.decode(T.value,{stream:!0});for(const P of N.push(AA))if(v(P),s)break;if(f(),(Z=A.signal)!=null&&Z.aborted)return{status:"aborted",response:i}}if(!s&&!((O=A.signal)!=null&&O.aborted)){const T=S.decode();for(const AA of N.push(T))if(v(AA),s)break;if(!s){for(const AA of N.finish())if(v(AA),s)break}f()}if(!s&&a.size>0&&(Q(),f()),(eA=A.signal)!=null&&eA.aborted)return{status:"aborted",response:i};if(!s)throw new gt("Responses SSE ended before response.ga.done");return b.cancel().catch(()=>{}),B()}finally{(tA=A.signal)==null||tA.removeEventListener("abort",_),b.releaseLock()}}function BR(e){let A=0,t=0,r=!1,i=!1;for(const n of e){if(n.type==="reasoning"){A+=1,r&&(i=!0);continue}if(n.type==="tool_calls"){r&&(i=!0);continue}t+=1,r=!0}return A>1||t>1||i}function pR(e){var o,s;let A="",t="",r="";const i=[],n=[],a=[];for(const l of e){const g=l.resource_files;if(g&&typeof g=="object"&&n.push(g),ER(l)){let c="";for(const C of l.content)C.type==="output_text"&&typeof C.text=="string"&&(c+=C.text);if(A+=c,c){const C=a.at(-1);(C==null?void 0:C.type)==="content"?C.content+=c:a.push({type:"content",content:c})}continue}if(mR(l)){const c=(o=l.summary)==null?void 0:o.filter(I=>I.type==="summary_text"&&typeof I.text=="string").map(I=>I.text).join(""),C=(s=l.content)==null?void 0:s.filter(I=>I.type==="reasoning_text"&&typeof I.text=="string").map(I=>I.text).join(""),h=c||C||"";t+=h,r+=typeof l.encrypted_content=="string"?l.encrypted_content:"",a.push({type:"reasoning",content:h});continue}if(vR(l)){const c={id:l.call_id,type:"function",function:{name:l.name,arguments:l.arguments}};i.push(c);const C=a.at(-1);(C==null?void 0:C.type)==="tool_calls"?C.tool_calls.push(c):a.push({type:"tool_calls",tool_calls:[c]})}}return{role:"assistant",...A?{content:A}:{},...t?{reasoning_content:t}:{},...r?{encrypted_content:r}:{},...i.length?{tool_calls:i}:{},...n.length?{resource_files:n}:{},...BR(a)?{steps:a}:{}}}function pQA(e){if(e.event!==void 0&&CQA.has(e.event))return null;const A=e.data.trim();if(!A)throw new gt("Responses SSE data frame is empty");if(A==="[DONE]")throw new gt("[DONE] is not valid in a Responses SSE stream");let t;try{t=JSON.parse(A)}catch{const n=A.length>180?`${A.slice(0,180)}…`:A;throw new gt(`Responses SSE data is not valid JSON (frame id=${e.id??"none"}, event=${e.event??"none"}, ${A.length} chars): ${n}`)}const r=sh(t,"event data"),i=hi(r.type,"type");if(!fQA.has(i))throw new gt(`Unsupported Responses SSE event type: ${i}`);if(e.event!==void 0&&e.event!==i)throw new gt(`SSE event field ${e.event} does not match payload type ${i}`);return i===IQA&&hi(r.session_id,"session_id"),r}function QR(e){return hQA.encode(e).byteLength}function QQA(e){const A=e.trim();if(!A)return[];if(A.startsWith("{"))return[{data:A,raw:e}];const t=new yR,r=/(?:\r?\n){2}$/.test(e)?e:`${A}
652
+ `),vi();return}G.isComposing||B.value||(G.preventDefault(),Hi())}}function Hi(){if(!Xn.value||r.disabled)return;const G=Tv(k.value,f.value,{attachmentInput:r.attachmentInput});jn.value=!0,i("send",G),ps(),$n.clear(),u.nextTick(()=>{var W;(W=l.value)==null||W.focus()})}function Bs(){jn.value=!1,i("stop")}function ps(){l.value&&(l.value.innerHTML=""),lr(),m.value="",k.value="",v.clear(),w=new Set,E=null,$A()}function Rr(){var G;(G=h.value)==null||G.click()}function GB(G){const W=G.target;if(W.files&&W.files.length>0){const sA=Array.from(W.files);po(sA)}W.value=""}function po(G){$n.addFiles(G)}A({addFiles:po});const By=u.inject(uR,null);let jc;const zl=u.ref(!1);let $c=0;function Au(){return r.enableFileDrop&&r.showAttachment&&!r.disabled}function TB(){$c=0,zl.value=!1}function TR(G){!Au()||!lc(G)||(G.preventDefault(),G.stopPropagation(),$c+=1,zl.value=!0)}function YR(G){!Au()||!lc(G)||(G.preventDefault(),G.stopPropagation(),G.dataTransfer&&(G.dataTransfer.dropEffect="copy"),zl.value=!0)}function UR(G){!Au()||!lc(G)||(G.stopPropagation(),$c=Math.max(0,$c-1),$c===0&&(zl.value=!1))}function JR(G){if(!Au())return;G.preventDefault(),G.stopPropagation(),TB();const W=vf(G.dataTransfer);W.length>0&&po(W)}u.watch(()=>[r.disabled,r.showAttachment,r.enableFileDrop],()=>{Au()||TB()});function OR(G){$n.remove(G)}function HR(G){$n.retry(G)}function py(G){return G.status==="uploaded"?G.resource.filename:G.file.name}function VR(G){return G.status==="uploaded"?El({name:G.resource.filename,type:""})==="image":El(G.file)==="image"}function ZR(G){return G.previewUrl?G.previewUrl:G.status==="uploaded"?Ql(G.resource.original_url,{width:GpA}):""}function PR(G){return G.status==="uploaded"?G.resource.size:G.file.size}function qR(G){return G.status==="uploading"||G.status==="error"?G.progress:0}function KR(G){return G.status==="error"?G.error.message:void 0}function zR(){K.value=!K.value,K.value?(Fr(),MA(),i("attachment-menu-open")):i("attachment-menu-close")}function WR(){Rr(),K.value=!1}function XR(){const G=typeof navigator>"u"?void 0:navigator.mediaDevices;G&&"getDisplayMedia"in G?jR():i("screenshot"),K.value=!1}async function jR(){try{const G=typeof navigator>"u"?void 0:navigator.mediaDevices;if(!(G!=null&&G.getDisplayMedia)){i("screenshot");return}const W=await G.getDisplayMedia({video:!0}),sA=document.createElement("video");sA.srcObject=W,sA.autoplay=!0,await new Promise(KA=>{sA.onloadedmetadata=KA}),await new Promise(KA=>setTimeout(KA,100));const _A=document.createElement("canvas");_A.width=sA.videoWidth,_A.height=sA.videoHeight;const cA=_A.getContext("2d");cA&&(cA.drawImage(sA,0,0),W.getTracks().forEach(KA=>KA.stop()),_A.toBlob(KA=>{if(KA){const Oe=new File([KA],`screenshot-${Date.now()}.png`,{type:"image/png"});po([Oe])}},"image/png"))}catch(G){console.error("截图失败:",G),i("screenshot")}}function $R(G){i("menu-item-click",G),K.value=!1}function AL(G){lA.value=G.id,i("quick-action-select",G),u.nextTick(()=>{var W;return(W=l.value)==null?void 0:W.focus()})}function eL(){lA.value=null,i("quick-action-clear"),u.nextTick(()=>{var G;return(G=l.value)==null?void 0:G.focus()})}function Qy(G){const W=G.target;xe.value&&!W.closest(".chat-sender__voice-wrapper")&&!W.closest(".chat-sender__voice-menu")&&Fr(),K.value&&!W.closest(".chat-sender__attachment-wrapper")&&(K.value=!1),kA.value&&!W.closest(".chat-sender__model-selector")&&MA()}return u.onMounted(()=>{document.addEventListener("click",Qy),document.addEventListener("selectionchange",z),window.addEventListener("resize",Z),window.addEventListener("scroll",Z,!0),window.addEventListener("resize",se),window.addEventListener("scroll",se,!0),By&&r.showAttachment&&(jc=By.register(po))}),u.onUnmounted(()=>{document.removeEventListener("click",Qy),document.removeEventListener("selectionchange",z),window.removeEventListener("resize",Z),window.removeEventListener("scroll",Z,!0),window.removeEventListener("resize",se),window.removeEventListener("scroll",se,!0),CA(),lr(),jc==null||jc(),jc=void 0,TB(),$n.dispose()}),(G,W)=>{var sA,_A;return u.openBlock(),u.createElementBlock("div",{ref_key:"rootRef",ref:g,class:u.normalizeClass(["chat-sender",{"chat-sender--focused":P.value,"chat-sender--disabled":r.disabled,"chat-sender--mode-active":vA.value,"chat-sender--drag-over":zl.value}]),style:u.normalizeStyle(T.value),onFocusin:ni,onFocusout:gr,onDragenter:TR,onDragover:YR,onDragleave:UR,onDrop:JR},[u.createElementVNode("div",{class:"chat-sender__inner",onMousedown:qe,onClick:Wt},[zl.value?(u.openBlock(),u.createBlock(gR,{key:0})):u.createCommentVNode("",!0),f.value.length>0?(u.openBlock(),u.createElementBlock("div",HBA,[(u.openBlock(!0),u.createElementBlock(u.Fragment,null,u.renderList(f.value,cA=>(u.openBlock(),u.createBlock(Ov,{key:cA.id,class:u.normalizeClass(["chat-sender__file-thumbnail",`chat-sender__file-thumbnail--${cA.status}`]),name:py(cA),kind:VR(cA)?"image":"file","image-src":ZR(cA),"icon-src":u.unref(Uv)(py(cA)),size:PR(cA),status:cA.status,progress:qR(cA),"error-message":KR(cA),removable:"",retryable:cA.status==="error",onRemove:KA=>OR(cA.id),onRetry:KA=>HR(cA.id)},null,8,["class","name","kind","image-src","icon-src","size","status","progress","error-message","retryable","onRemove","onRetry"]))),128))])):u.createCommentVNode("",!0),u.unref(rr)?(u.openBlock(),u.createElementBlock("p",VBA,u.toDisplayString(u.unref(rr)),1)):u.createCommentVNode("",!0),u.createElementVNode("div",ZBA,[u.createElementVNode("div",PBA,[u.createElementVNode("div",{ref_key:"editorRef",ref:l,class:u.normalizeClass(["chat-sender__editor",{"chat-sender__editor--disabled":r.disabled}]),contenteditable:r.disabled||u.unref(_e)?"false":"true","data-placeholder":u.unref(_e)?"正在聆听...":FA.value,style:u.normalizeStyle({maxHeight:`${F.value}px`}),role:"textbox","aria-multiline":"true","aria-label":"输入消息","aria-haspopup":"listbox","aria-expanded":p.value!==null,onInput:vi,onKeydown:Kr,onCompositionstart:Tt,onCompositionend:Wc,onPaste:Xc,onCopy:uA,onCut:nA,onClick:UA},null,46,qBA),(u.openBlock(),u.createBlock(u.Teleport,{to:"body"},[u.createVNode(u.Transition,{name:"attachment-menu"},{default:u.withCtx(()=>[p.value?(u.openBlock(),u.createElementBlock("div",{key:0,ref_key:"triggerMenuRef",ref:c,class:u.normalizeClass(["chat-sender__trigger-menu",{"chat-sender__trigger-menu--custom":r.triggerMenuPlacement==="custom"}]),style:u.normalizeStyle(Y.value),onMousedown:W[0]||(W[0]=u.withModifiers(()=>{},["prevent"]))},[u.renderSlot(G.$slots,"trigger-menu",{triggerId:p.value.triggerId,query:p.value.query,select:Ae,close:SA,anchorRect:R.value},void 0,!0)],38)):u.createCommentVNode("",!0)]),_:3})]))]),u.createElementVNode("div",KBA,[u.createElementVNode("div",zBA,[r.showAttachment?(u.openBlock(),u.createElementBlock("div",WBA,[u.createElementVNode("button",{type:"button",class:u.normalizeClass(["chat-sender__icon-button",{"chat-sender__icon-button--active":K.value}]),disabled:r.disabled,"aria-label":"添加附件","aria-haspopup":"menu","aria-expanded":K.value,onClick:u.withModifiers(zR,["stop"])},[u.createVNode(u.unref(nR),{size:18})],10,XBA),u.createVNode(u.Transition,{name:"attachment-menu"},{default:u.withCtx(()=>[K.value?(u.openBlock(),u.createElementBlock("div",{key:0,class:"chat-sender__attachment-menu",role:"menu",onClick:W[1]||(W[1]=u.withModifiers(()=>{},["stop"]))},[u.createElementVNode("button",{type:"button",role:"menuitem",class:"chat-sender__attachment-menu-item",onClick:WR},[u.createVNode(u.unref(lR),{size:18}),W[16]||(W[16]=u.createElementVNode("span",null,"添加文件或图片",-1))]),r.showScreenshot?(u.openBlock(),u.createElementBlock("button",{key:0,type:"button",role:"menuitem",class:"chat-sender__attachment-menu-item",onClick:XR},[...W[17]||(W[17]=[u.createElementVNode("svg",{width:"18",height:"18",viewBox:"0 0 24 24",fill:"none",xmlns:"http://www.w3.org/2000/svg"},[u.createElementVNode("path",{d:"M9 3h2.25L12.4 4.8A.5.5 0 0 0 12.8 5H15.5A1.5 1.5 0 0 1 17 6.5v10a1.5 1.5 0 0 1-1.5 1.5h-11A1.5 1.5 0 0 1 3 16.5v-10A1.5 1.5 0 0 1 4.5 5H7.2a.5.5 0 0 0 .4-.2L8.75 3H9zm3 5.5a3.5 3.5 0 1 0 0 7 3.5 3.5 0 0 0 0-7zm0 1.5a2 2 0 1 1 0 4 2 2 0 0 1 0-4z",fill:"#333333"})],-1),u.createElementVNode("span",null,"截图",-1)])])):u.createCommentVNode("",!0),r.customMenuItems&&r.customMenuItems.length>0?(u.openBlock(),u.createElementBlock("div",jBA)):u.createCommentVNode("",!0),(u.openBlock(!0),u.createElementBlock(u.Fragment,null,u.renderList(r.customMenuItems,cA=>(u.openBlock(),u.createElementBlock("button",{key:cA.id,type:"button",role:"menuitem",class:"chat-sender__attachment-menu-item",disabled:cA.disabled,onClick:KA=>$R(cA.id)},[(u.openBlock(),u.createBlock(u.resolveDynamicComponent(cA.icon))),u.createElementVNode("span",null,u.toDisplayString(cA.label),1)],8,$BA))),128))])):u.createCommentVNode("",!0)]),_:1})])):u.createCommentVNode("",!0),N.value?(u.openBlock(),u.createElementBlock("span",ApA)):u.createCommentVNode("",!0),(u.openBlock(!0),u.createElementBlock(u.Fragment,null,u.renderList(S.value,cA=>(u.openBlock(),u.createElementBlock("button",{key:cA.id,type:"button",class:"chat-sender__icon-button",disabled:r.disabled,"aria-label":cA.button.label,onMousedown:W[2]||(W[2]=u.withModifiers(()=>{},["prevent"])),onClick:KA=>U(cA)},[cA.button.icon?(u.openBlock(),u.createBlock(u.resolveDynamicComponent(cA.button.icon),{key:0,size:18,"stroke-width":1.75,"aria-hidden":"true"})):(u.openBlock(),u.createElementBlock("span",tpA,u.toDisplayString(cA.char),1))],40,epA))),128)),r.quickActions.length>0?(u.openBlock(),u.createElementBlock(u.Fragment,{key:2},[_.value?(u.openBlock(),u.createElementBlock("span",rpA)):u.createCommentVNode("",!0),vA.value?(u.openBlock(),u.createElementBlock("div",apA,[vA.value.icon?(u.openBlock(),u.createBlock(u.resolveDynamicComponent(vA.value.icon),{key:0,size:14,"stroke-width":1.75,"aria-hidden":"true"})):u.createCommentVNode("",!0),u.createElementVNode("span",null,u.toDisplayString(vA.value.label),1),u.createElementVNode("button",{type:"button",class:"chat-sender__quick-action-remove","aria-label":"退出该模式",onClick:eL},[u.createVNode(u.unref(gh),{size:14,"stroke-width":2,"aria-hidden":"true"})])])):(u.openBlock(),u.createElementBlock("div",ipA,[(u.openBlock(!0),u.createElementBlock(u.Fragment,null,u.renderList(r.quickActions,cA=>(u.openBlock(),u.createElementBlock("button",{key:cA.id,type:"button",class:"chat-sender__quick-action",disabled:r.disabled,onClick:KA=>AL(cA)},[cA.icon?(u.openBlock(),u.createBlock(u.resolveDynamicComponent(cA.icon),{key:0,size:14,"stroke-width":1.75,"aria-hidden":"true"})):u.createCommentVNode("",!0),u.createElementVNode("span",null,u.toDisplayString(cA.label),1)],8,npA))),128))]))],64)):u.createCommentVNode("",!0)]),u.createElementVNode("div",opA,[u.createElementVNode("div",spA,[G.$slots["toolbar-before-voice"]?(u.openBlock(),u.createElementBlock("div",lpA,[u.renderSlot(G.$slots,"toolbar-before-voice",{},void 0,!0)])):u.createCommentVNode("",!0),u.createElementVNode("div",{ref_key:"voiceWrapperRef",ref:tn,class:u.normalizeClass(["chat-sender__voice-wrapper",{"chat-sender__voice-wrapper--unsupported":ir.value,"chat-sender__voice-wrapper--permission-denied":u.unref(Zr),"chat-sender__voice-wrapper--with-model":Se.value}]),title:u.unref(Zr)?void 0:qt.value,onMouseleave:Kt},[u.createElementVNode("div",{class:u.normalizeClass(["chat-sender__voice-group",{"chat-sender__voice-group--with-model":Se.value}])},[Se.value?(u.openBlock(),u.createElementBlock("div",{key:0,class:u.normalizeClass(["chat-sender__model-selector",{"chat-sender__model-selector--shifted":WA.value}]),"aria-label":"选择模型"},[u.createElementVNode("button",{type:"button",class:u.normalizeClass(["chat-sender__model-trigger",{"chat-sender__model-trigger--open":kA.value}]),disabled:r.disabled,title:((sA=oe.value)==null?void 0:sA.label)??"选择模型","aria-haspopup":"menu","aria-expanded":kA.value,onClick:u.withModifiers(gA,["stop"])},[u.createElementVNode("span",upA,u.toDisplayString(((_A=oe.value)==null?void 0:_A.label)??"选择模型"),1),u.createVNode(u.unref(FS),{class:"chat-sender__model-trigger-chevron",size:14,"stroke-width":1.75,"aria-hidden":"true"})],10,cpA),u.createVNode(u.Transition,{name:"attachment-menu"},{default:u.withCtx(()=>[kA.value?(u.openBlock(),u.createElementBlock("div",{key:0,class:"chat-sender__model-menu",role:"menu","aria-label":"模型列表",onClick:W[3]||(W[3]=u.withModifiers(()=>{},["stop"]))},[(u.openBlock(!0),u.createElementBlock(u.Fragment,null,u.renderList(r.models,cA=>(u.openBlock(),u.createElementBlock("button",{key:cA.id,type:"button",role:"menuitemradio",class:u.normalizeClass(["chat-sender__model-menu-item",{"chat-sender__model-menu-item--selected":cA.id===GA.value}]),"aria-checked":cA.id===GA.value,disabled:cA.disabled,title:cA.label,onClick:KA=>pe(cA)},[u.createElementVNode("span",CpA,[u.createElementVNode("span",IpA,u.toDisplayString(cA.label),1),cA.description?(u.openBlock(),u.createElementBlock("span",dpA,u.toDisplayString(cA.description),1)):u.createCommentVNode("",!0)]),u.createElementVNode("span",fpA,[cA.id===GA.value?(u.openBlock(),u.createBlock(u.unref(Jv),{key:0,size:16,"stroke-width":2})):u.createCommentVNode("",!0)])],10,hpA))),128))])):u.createCommentVNode("",!0)]),_:1})],2)):u.createCommentVNode("",!0),u.createElementVNode("div",{class:u.normalizeClass(["chat-sender__voice-controls",{"chat-sender__voice-controls--menu-open":u.unref(xe)}]),onMouseenter:Nt,onMouseleave:It},[ir.value?u.createCommentVNode("",!0):(u.openBlock(),u.createElementBlock("div",{key:0,class:u.normalizeClass(["chat-sender__voice-settings-wrapper",{"chat-sender__voice-settings-wrapper--visible":u.unref(Pt)||u.unref(xe)}])},[u.createElementVNode("button",{type:"button",class:u.normalizeClass(["chat-sender__voice-settings",{"chat-sender__voice-settings--active":u.unref(xe)}]),disabled:r.disabled,"aria-label":"麦克风设置",onClick:W[4]||(W[4]=u.withModifiers((...cA)=>u.unref(An)&&u.unref(An)(...cA),["stop"]))},[u.createVNode(u.unref(aR))],10,BpA)],2)),u.createElementVNode("button",{type:"button",class:u.normalizeClass(["chat-sender__voice-button",{"chat-sender__voice-button--recording":u.unref(_e),"chat-sender__voice-button--holding":u.unref(Me),"chat-sender__voice-button--unsupported":ir.value}]),disabled:r.disabled||ir.value,"aria-label":en.value,onClick:W[5]||(W[5]=(...cA)=>u.unref(Oi)&&u.unref(Oi)(...cA)),onMousedown:W[6]||(W[6]=(...cA)=>u.unref(rA)&&u.unref(rA)(...cA)),onMouseup:W[7]||(W[7]=(...cA)=>u.unref(oA)&&u.unref(oA)(...cA)),onMouseleave:W[8]||(W[8]=(...cA)=>u.unref(EA)&&u.unref(EA)(...cA))},[ir.value?(u.openBlock(),u.createBlock(u.unref(WI),{key:0,size:20})):u.unref(_e)?(u.openBlock(),u.createElementBlock("div",QpA,[(u.openBlock(),u.createElementBlock(u.Fragment,null,u.renderList(AA,(cA,KA)=>u.createElementVNode("span",{key:KA,class:"chat-sender__voice-wave-bar",style:u.normalizeStyle({animationDelay:`${(KA+1)*.1}s`,height:cA})},null,4)),64))])):(u.openBlock(),u.createBlock(u.unref(Mv),{key:1,size:20}))],42,ppA)],34)],2)],42,gpA),(u.openBlock(),u.createBlock(u.Teleport,{to:"body"},[u.createVNode(u.Transition,{name:"voice-menu"},{default:u.withCtx(()=>[Ct.value?(u.openBlock(),u.createElementBlock("div",{key:0,ref_key:"micPermissionPopoverRef",ref:Gt,class:"chat-sender__mic-permission-popover",role:"dialog","aria-label":"尚未获得麦克风权限",style:u.normalizeStyle(X.value),onClick:W[10]||(W[10]=u.withModifiers(()=>{},["stop"])),onMouseenter:Mr,onMouseleave:rn},[u.createElementVNode("div",EpA,[u.createVNode(u.unref(WI)),W[18]||(W[18]=u.createElementVNode("span",{class:"chat-sender__mic-permission-popover-title"},"尚未获得麦克风权限",-1))]),u.createElementVNode("p",mpA,[W[19]||(W[19]=u.createTextVNode(" 语音输入提问需要开启麦克风权限,请点击前往设置进行开启。 ",-1)),r.micPermissionGuideUrl?(u.openBlock(),u.createElementBlock("a",{key:0,class:"chat-sender__mic-permission-popover-link",href:r.micPermissionGuideUrl,target:"_blank",rel:"noopener noreferrer",onClick:W[9]||(W[9]=cA=>i("mic-permission-guide-click"))}," 麦克风权限开启指南 ",8,vpA)):u.createCommentVNode("",!0)]),u.createElementVNode("div",ypA,[u.createVNode(u.unref(WI),{size:48})]),u.createElementVNode("button",{type:"button",class:"chat-sender__mic-permission-popover-dismiss",onClick:ii}," 知道了 ")],36)):u.createCommentVNode("",!0)]),_:1}),u.createVNode(u.Transition,{name:"voice-menu"},{default:u.withCtx(()=>[u.unref(xe)?(u.openBlock(),u.createElementBlock("div",{key:0,ref_key:"voiceMenuRef",ref:Te,class:"chat-sender__voice-menu",style:u.normalizeStyle(Pr.value),onClick:W[14]||(W[14]=u.withModifiers(()=>{},["stop"]))},[u.createElementVNode("div",wpA,[u.createVNode(u.unref(Mv)),W[20]||(W[20]=u.createElementVNode("span",{class:"chat-sender__voice-menu-title"},"麦克风",-1)),u.createElementVNode("div",DpA,[u.createElementVNode("div",{class:"chat-sender__voice-level-bar",style:u.normalizeStyle({width:`${u.unref(Lt)}%`})},null,4)])]),u.createElementVNode("div",kpA,[u.createElementVNode("div",bpA,[(u.openBlock(!0),u.createElementBlock(u.Fragment,null,u.renderList(u.unref(Br),(cA,KA)=>(u.openBlock(),u.createElementBlock("button",{key:cA.deviceId,type:"button",class:u.normalizeClass(["chat-sender__voice-menu-item",{"chat-sender__voice-menu-item--active":cA.active}]),onClick:Oe=>u.unref(St)(KA)},[u.createElementVNode("span",NpA,u.toDisplayString(cA.label),1),cA.active?(u.openBlock(),u.createBlock(u.unref(oR),{key:0,class:"chat-sender__voice-menu-check"})):u.createCommentVNode("",!0)],10,SpA))),128))])]),u.createElementVNode("div",xpA,[u.createElementVNode("button",{type:"button",class:"chat-sender__voice-menu-option",onClick:W[13]||(W[13]=(...cA)=>u.unref(Pe)&&u.unref(Pe)(...cA))},[u.createElementVNode("div",_pA,[u.createVNode(u.unref(sR)),W[21]||(W[21]=u.createElementVNode("span",{class:"chat-sender__voice-menu-option-label"},"长按录音",-1))]),u.createElementVNode("label",{class:"chat-sender__voice-menu-switch",onClick:W[12]||(W[12]=u.withModifiers(()=>{},["stop"]))},[u.createElementVNode("input",{type:"checkbox",checked:u.unref($e),onChange:W[11]||(W[11]=(...cA)=>u.unref(Pe)&&u.unref(Pe)(...cA))},null,40,FpA),W[22]||(W[22]=u.createElementVNode("span",{class:"chat-sender__voice-menu-switch-slider"},null,-1))])])])],4)):u.createCommentVNode("",!0)]),_:1})])),u.createElementVNode("div",{class:u.normalizeClass(["chat-sender__send-wrapper",{"chat-sender__send-wrapper--visible":ql.value}])},[u.createElementVNode("button",{type:"button",class:u.normalizeClass(["chat-sender__action-button",Rn.value?"chat-sender__stop-button":"chat-sender__send-button"]),disabled:!Rn.value&&r.disabled,"aria-label":Rn.value?"停止生成":"发送消息",onClick:W[15]||(W[15]=cA=>Rn.value?Bs():Hi())},[u.createElementVNode("span",RpA,[u.createElementVNode("img",{src:u.unref(tBA),alt:"",class:u.normalizeClass(["chat-sender__send-icon",{"chat-sender__action-icon--active":!Rn.value}])},null,10,LpA),u.createVNode(u.unref(lT),{size:14,fill:"currentColor",class:u.normalizeClass(["chat-sender__stop-icon",{"chat-sender__action-icon--active":Rn.value}])},null,8,["class"])])],10,MpA)],2)])])])])],32),u.createElementVNode("input",{ref_key:"fileInputRef",ref:h,type:"file",multiple:"",accept:"image/*,.pdf,.docx,.xls,.xlsx,.pptx,.html,.htm,.txt,.md,.markdown,audio/*,video/*",class:"chat-sender__file-input","aria-label":"选择文件",onChange:GB},null,544)],38)}}}),IR=ae(TpA,[["__scopeId","data-v-62e7ba5d"]]),YpA={class:"chat-empty",role:"status"},UpA={class:"chat-empty__title"},JpA={class:"chat-empty__description"},OpA=u.defineComponent({name:"EmptyState",__name:"EmptyState",props:{title:{default:"等待消息"},description:{default:"将对话数据传入组件后会显示在这里。"}},setup(e){return(A,t)=>(u.openBlock(),u.createElementBlock("div",YpA,[t[0]||(t[0]=u.createElementVNode("div",{class:"chat-empty__icon","aria-hidden":"true"},[u.createElementVNode("svg",{viewBox:"0 0 24 24",width:"48",height:"48",fill:"none",stroke:"currentColor","stroke-width":"1.5"},[u.createElementVNode("path",{d:"M3 12a9 9 0 1 1 18 0c0 4.97-4.03 9-9 9-1.27 0-2.48-.26-3.58-.74L3 21l.74-5.42A8.96 8.96 0 0 1 3 12z"})])],-1)),u.createElementVNode("h3",UpA,u.toDisplayString(e.title),1),u.createElementVNode("p",JpA,u.toDisplayString(e.description),1)]))}}),dR=ae(OpA,[["__scopeId","data-v-27943bfd"]]),HpA=["aria-label"],VpA=["aria-labelledby"],ZpA={class:"ask-form__header"},PpA={class:"ask-form__heading"},qpA={key:0,class:"ask-form__eyebrow"},KpA=["id"],zpA={class:"ask-form__body","data-question-scroll":"true"},WpA=["aria-multiselectable"],XpA=["aria-selected","aria-label","onClick"],jpA={key:1,class:"ask-form__number","aria-hidden":"true"},$pA={class:"ask-form__option-copy"},AQA={class:"ask-form__option-line"},eQA={class:"ask-form__label"},tQA={key:0,class:"ask-form__badge","aria-label":"推荐"},rQA={key:0,class:"ask-form__description"},iQA={class:"ask-form__number","aria-hidden":"true"},nQA={class:"ask-form__footer"},aQA={class:"ask-form__pager","aria-label":"问题导航"},oQA=["disabled"],sQA={class:"ask-form__progress","data-testid":"ask-form-progress","aria-live":"polite"},lQA=["disabled"],gQA=["disabled"],cQA=u.defineComponent({name:"AskUserForm",__name:"AskUserForm",props:{question:{},questionIndex:{default:0},questionCount:{default:1},groupCanSubmit:{type:Boolean,default:!1}},emits:["action","dismiss","answerChange","previous","next","submitGroup"],setup(e,{emit:A}){const t=e,r=A,i=u.ref(!1),n=u.ref(""),a=u.ref([]),o=u.ref(!1),s=u.computed(()=>{var AA;return((AA=t.question.header)==null?void 0:AA.trim())??""}),l=u.computed(()=>t.question.id),g=u.computed(()=>t.question.multi_select),c=u.computed(()=>t.question.required),C=u.computed(()=>!c.value),h=u.computed(()=>t.questionCount>1),I=u.computed(()=>!h.value||C.value),d=u.computed(()=>t.questionIndex===t.questionCount-1),f=u.computed(()=>t.questionIndex>0),B=u.computed(()=>t.questionIndex<t.questionCount-1),p=u.computed(()=>t.question.options),Q=u.computed(()=>p.value.length===0),E=u.computed(()=>o.value||n.value.trim().length>0),m=u.computed(()=>g.value||Q.value),v=u.computed(()=>h.value&&!d.value?"确认":"提交"),w=u.computed(()=>k()?h.value&&d.value&&(g.value||Q.value)?!t.groupCanSubmit:!1:!0);function k(){return a.value.length>0?!0:n.value.trim().length>0}function b(){const AA=n.value.trim();return AA&&a.value.length===0?{id:l.value,selected:[],custom:AA}:{id:l.value,selected:[...a.value],...AA&&g.value?{custom:AA}:{}}}function S(){if(!k()){r("answerChange",null);return}r("answerChange",b())}function N(){if(h.value){if(B.value){r("next");return}r("submitGroup")}}function _(AA){if(h.value){r("answerChange",AA);return}i.value||(i.value=!0,r("action",{type:"submit",source:"ask-user",answers:[AA],label:F(AA)}))}function F(AA){var K;const P=[];for(const iA of AA.selected){const lA=p.value.find(vA=>vA.value===iA);P.push((lA==null?void 0:lA.label)??iA)}return(K=AA.custom)!=null&&K.trim()&&P.push(AA.custom.trim()),P.join(", ")||"(跳过)"}function R(AA){if(g.value){Y(AA.value);return}n.value="",a.value=[AA.value];const P=b();if(h.value){r("answerChange",P),N();return}_(P)}function Y(AA){a.value.includes(AA)?a.value=a.value.filter(P=>P!==AA):a.value=[...a.value,AA],h.value&&S()}function q(){if(!k())return;const AA=b();if(h.value){r("answerChange",AA),N();return}_(AA)}function Z(){!g.value&&n.value.trim()&&(a.value=[]),h.value&&S()}function O(){const AA=n.value.trim();if(!AA)return;if(g.value){if(h.value){S();return}q();return}a.value=[];const P={id:l.value,selected:[],custom:AA};if(h.value){r("answerChange",P),N();return}_(P)}function eA(){if(!I.value)return;a.value=[],n.value="";const AA={id:l.value,selected:[]};if(h.value){r("answerChange",AA),N();return}i.value||(i.value=!0,r("dismiss"))}function tA(){i.value||(i.value=!0,r("dismiss"))}function T(AA){return a.value.includes(AA)}return(AA,P)=>i.value?u.createCommentVNode("",!0):(u.openBlock(),u.createElementBlock("div",{key:0,class:"ask-form","data-ask-user-input-banner":"true",tabindex:"-1",role:"group","aria-label":e.question.question},[u.createElementVNode("section",{class:"ask-form__card","aria-labelledby":`ask-form-title-${l.value}`},[u.createElementVNode("header",ZpA,[u.createElementVNode("div",PpA,[s.value?(u.openBlock(),u.createElementBlock("div",qpA,u.toDisplayString(s.value),1)):u.createCommentVNode("",!0),u.createElementVNode("div",{id:`ask-form-title-${l.value}`,class:"ask-form__question",role:"heading","aria-level":"2"},u.toDisplayString(e.question.question),9,KpA)]),u.createElementVNode("button",{type:"button",class:"ask-form__icon-btn","aria-label":"放弃整组问题",title:"放弃整组问题",onClick:tA},[u.createVNode(u.unref(jL),{size:16})])]),u.createElementVNode("div",zpA,[u.createElementVNode("div",{class:"ask-form__options",role:"listbox","aria-multiselectable":g.value},[(u.openBlock(!0),u.createElementBlock(u.Fragment,null,u.renderList(p.value,(K,iA)=>(u.openBlock(),u.createElementBlock("button",{key:K.value,type:"button",class:u.normalizeClass(["ask-form__option",{"is-selected":T(K.value)}]),role:"option","aria-selected":T(K.value),"aria-label":K.label,onClick:lA=>R(K)},[g.value?(u.openBlock(),u.createElementBlock("span",{key:0,class:u.normalizeClass(["ask-form__checkbox",{"is-checked":T(K.value)}]),"aria-hidden":"true"},[T(K.value)?(u.openBlock(),u.createBlock(u.unref(ZL),{key:0,size:14})):u.createCommentVNode("",!0)],2)):(u.openBlock(),u.createElementBlock("span",jpA,u.toDisplayString(iA+1),1)),u.createElementVNode("span",$pA,[u.createElementVNode("span",AQA,[u.createElementVNode("span",eQA,u.toDisplayString(K.label),1),K.recommended?(u.openBlock(),u.createElementBlock("span",tQA,"推荐")):u.createCommentVNode("",!0)]),K.description?(u.openBlock(),u.createElementBlock("span",rQA,u.toDisplayString(K.description),1)):u.createCommentVNode("",!0)])],10,XpA))),128)),u.createElementVNode("div",{class:u.normalizeClass(["ask-form__other",{"is-active":E.value}]),"data-testid":"ask-form-other"},[u.createElementVNode("span",iQA,u.toDisplayString(p.value.length+1),1),u.withDirectives(u.createElementVNode("input",{"onUpdate:modelValue":P[0]||(P[0]=K=>n.value=K),class:"ask-form__other-input",type:"text",placeholder:"其他",autocomplete:"off",onFocus:P[1]||(P[1]=K=>o.value=!0),onBlur:P[2]||(P[2]=K=>o.value=!1),onInput:Z,onKeyup:u.withKeys(O,["enter"])},null,544),[[u.vModelText,n.value]])],2)],8,WpA)]),u.createElementVNode("footer",nQA,[u.createElementVNode("div",aQA,[u.createElementVNode("button",{type:"button",class:"ask-form__icon-btn",disabled:!f.value,"aria-label":"上一题",onClick:P[3]||(P[3]=K=>r("previous"))},[u.createVNode(u.unref(WL),{size:14})],8,oQA),u.createElementVNode("span",sQA,u.toDisplayString(e.questionIndex+1)+" / "+u.toDisplayString(e.questionCount),1),u.createElementVNode("button",{type:"button",class:"ask-form__icon-btn",disabled:!B.value,"aria-label":"下一题",onClick:P[4]||(P[4]=K=>r("next"))},[u.createVNode(u.unref(XL),{size:14})],8,lQA)]),P[5]||(P[5]=u.createElementVNode("div",{class:"ask-form__feedback",role:"status"},null,-1)),u.createElementVNode("div",{class:u.normalizeClass(["ask-form__footer-actions",{"ask-form__other-actions":h.value&&g.value}])},[I.value?(u.openBlock(),u.createElementBlock("button",{key:0,type:"button",class:"ask-form__btn ask-form__btn--outline ask-form__skip","data-testid":"ask-form-skip",onClick:eA},u.toDisplayString((h.value,"跳过")),1)):u.createCommentVNode("",!0),m.value?(u.openBlock(),u.createElementBlock("button",{key:1,type:"button",class:"ask-form__btn ask-form__btn--primary ask-form__chip-btn is-primary","data-testid":"ask-form-confirm",disabled:w.value,onClick:q},u.toDisplayString(v.value),9,gQA)):u.createCommentVNode("",!0)],2)])],8,VpA)],8,HpA))}}),uQA=ae(cQA,[["__scopeId","data-v-30df58da"]]),fR=512*1024,hQA=new TextEncoder,CQA=new Set(["session","end"]),IQA="response.ga.done",dQA=new Set(["response.completed","response.incomplete","response.failed","response.ga.done","error"]),fQA=new Set(["response.created","response.in_progress","response.completed","response.incomplete","response.failed","response.ga.done","response.output_item.added","response.output_item.done","response.content_part.added","response.content_part.done","response.output_text.delta","response.output_text.done","response.reasoning_summary_part.added","response.reasoning_summary_part.done","response.reasoning_summary_text.delta","response.reasoning_summary_text.done","response.function_call_arguments.delta","response.function_call_arguments.done","error"]);class gt extends Error{constructor(A,t,r){super(t?`${t}: ${A}`:A),this.name="ResponseStreamProtocolError",this.code=t,this.status=r}}async function BQA(e,A){var F,R,Y,q,Z,O,eA,tA;if((F=A.signal)!=null&&F.aborted)return{status:"aborted",response:null};const t=[];let r=0,i=null,n=null;const a=new Map;let o=null,s=null,l=0,g=!1;const c=T=>r+ua(T,"output_index"),C=()=>{const T=IE(t);t.splice(0,t.length,...T),r=t.length},h=T=>{t.splice(r,Math.max(0,t.length-r),...gc(T)),l=js(t)},I=T=>{if(l+=QR(T),l>fR)throw new gt("Responses stream content exceeded the 512 KB limit")},d=()=>{const T=i,AA=T?{...T,output:IE(t)}:null;A.onUpdate(pR(t),AA)},f=()=>{g&&(d(),g=!1)},B=()=>({status:s??"completed",response:i?Object.assign({},i,{output:IE(t)}):null}),p=(T,AA)=>{var P,K,iA;switch(T.type){case"response.created":C(),i=BE(T.response),(P=i.output)!=null&&P.length&&h(i.output);break;case"response.in_progress":i=BE(T.response),(K=i.output)!=null&&K.length&&h(i.output);break;case"response.output_item.added":{const lA=c(T.output_index);t[lA]=gc(X8(T.item)),l=js(t);break}case"response.output_item.done":{const lA=c(T.output_index),vA=X8(T.item);t[lA]=gc(T.resource_files!==void 0?{...vA,resource_files:T.resource_files}:vA),l=js(t);break}case"response.content_part.added":case"response.content_part.done":{const lA=dE(t,c(T.output_index),T.item_id),vA=ua(T.content_index,"content_index");lA.content[vA]=mQA(sh(T.part,"part")),l=js(t);break}case"response.output_text.delta":{const lA=dE(t,c(T.output_index),T.item_id),vA=ua(T.content_index,"content_index"),FA=z8(lA,vA),ZA=hi(T.delta,"delta");FA.text+=ZA,I(ZA);break}case"response.output_text.done":{const lA=dE(t,c(T.output_index),T.item_id),vA=ua(T.content_index,"content_index"),FA=z8(lA,vA);FA.text=hi(T.text,"text"),l=js(t);break}case"response.reasoning_summary_part.added":case"response.reasoning_summary_part.done":{const lA=fE(t,c(T.output_index),T.item_id),vA=ua(T.summary_index,"summary_index");(lA.summary??(lA.summary=[]))[vA]=EQA(sh(T.part,"part"));break}case"response.reasoning_summary_text.delta":{const lA=fE(t,c(T.output_index),T.item_id),vA=ua(T.summary_index,"summary_index"),FA=W8(lA,vA),ZA=hi(T.delta,"delta");FA.text+=ZA,I(ZA);break}case"response.reasoning_summary_text.done":{const lA=fE(t,c(T.output_index),T.item_id),vA=ua(T.summary_index,"summary_index"),FA=W8(lA,vA);FA.text=hi(T.text,"text"),l=js(t);break}case"response.function_call_arguments.delta":{const lA=K8(t,c(T.output_index),T.item_id),vA=hi(T.delta,"delta");lA.arguments+=vA,I(vA);break}case"response.function_call_arguments.done":{const lA=K8(t,c(T.output_index),T.item_id);lA.arguments=hi(T.arguments,"arguments"),l=js(t);break}case"response.completed":case"response.incomplete":case"response.failed":{i=BE(T.response),i.output&&h(i.output),T.type==="response.completed"?o="completed":T.type==="response.incomplete"&&(o="incomplete");break}case"response.ga.done":s=o??"completed";break}if(T.type!=="response.ga.done"&&(g=!0),(iA=A.onEvent)==null||iA.call(A,T,AA),T.type==="response.failed"){f();const lA=T.response.error;throw new gt((lA==null?void 0:lA.message)||"Responses stream failed",(lA==null?void 0:lA.code)??void 0)}if(T.type==="error")throw f(),new gt(T.message||"Responses stream failed",T.code??void 0)},Q=()=>{const T=[...a.keys()].sort((AA,P)=>AA-P);for(const AA of T){const P=a.get(AA);P&&(a.delete(AA),p(P.event,P.frame),n=AA+1)}},E=()=>{if(n!==null)for(;a.has(n);){const T=a.get(n);if(!T)break;a.delete(n),p(T.event,T.frame),n+=1}},m=(T,AA)=>{const P=T.sequence_number;if(!(typeof P=="number"&&Number.isSafeInteger(P)&&P>=0)){Q(),p(T,AA);return}if(T.type==="response.created")Q(),n=P;else if(n===null)n=P;else if(P<n)return;a.set(P,{event:T,frame:AA}),E(),dQA.has(T.type)&&a.size>0&&Q()},v=T=>{const AA=pQA(T);AA&&m(AA,T)};if((T=>{if(T!=null&&T.length){for(const AA of T)for(const P of QQA(AA))if(v(P),s)return;a.size>0&&Q()}})(A.replay),f(),(R=A.signal)!=null&&R.aborted)return{status:"aborted",response:i};if(s)return B();const k=await e;if(!k.ok)throw new gt(`Responses request failed with HTTP ${k.status}${k.statusText?` ${k.statusText}`:""}`,void 0,k.status);if(!k.body)throw new gt("Responses SSE body is missing");const b=k.body.getReader(),S=new TextDecoder("utf-8",{fatal:!0}),N=new yR,_=()=>{b.cancel().catch(()=>{})};(Y=A.signal)==null||Y.addEventListener("abort",_,{once:!0});try{for(;!s;){const T=await b.read();if((q=A.signal)!=null&&q.aborted)return{status:"aborted",response:i};if(T.done)break;const AA=S.decode(T.value,{stream:!0});for(const P of N.push(AA))if(v(P),s)break;if(f(),(Z=A.signal)!=null&&Z.aborted)return{status:"aborted",response:i}}if(!s&&!((O=A.signal)!=null&&O.aborted)){const T=S.decode();for(const AA of N.push(T))if(v(AA),s)break;if(!s){for(const AA of N.finish())if(v(AA),s)break}f()}if(!s&&a.size>0&&(Q(),f()),(eA=A.signal)!=null&&eA.aborted)return{status:"aborted",response:i};if(!s)throw new gt("Responses SSE ended before response.ga.done");return b.cancel().catch(()=>{}),B()}finally{(tA=A.signal)==null||tA.removeEventListener("abort",_),b.releaseLock()}}function BR(e){let A=0,t=0,r=!1,i=!1;for(const n of e){if(n.type==="reasoning"){A+=1,r&&(i=!0);continue}if(n.type==="tool_calls"){r&&(i=!0);continue}t+=1,r=!0}return A>1||t>1||i}function pR(e){var o,s;let A="",t="",r="";const i=[],n=[],a=[];for(const l of e){const g=l.resource_files;if(g&&typeof g=="object"&&n.push(g),ER(l)){let c="";for(const C of l.content)C.type==="output_text"&&typeof C.text=="string"&&(c+=C.text);if(A+=c,c){const C=a.at(-1);(C==null?void 0:C.type)==="content"?C.content+=c:a.push({type:"content",content:c})}continue}if(mR(l)){const c=(o=l.summary)==null?void 0:o.filter(I=>I.type==="summary_text"&&typeof I.text=="string").map(I=>I.text).join(""),C=(s=l.content)==null?void 0:s.filter(I=>I.type==="reasoning_text"&&typeof I.text=="string").map(I=>I.text).join(""),h=c||C||"";t+=h,r+=typeof l.encrypted_content=="string"?l.encrypted_content:"",a.push({type:"reasoning",content:h});continue}if(vR(l)){const c={id:l.call_id,type:"function",function:{name:l.name,arguments:l.arguments}};i.push(c);const C=a.at(-1);(C==null?void 0:C.type)==="tool_calls"?C.tool_calls.push(c):a.push({type:"tool_calls",tool_calls:[c]})}}return{role:"assistant",...A?{content:A}:{},...t?{reasoning_content:t}:{},...r?{encrypted_content:r}:{},...i.length?{tool_calls:i}:{},...n.length?{resource_files:n}:{},...BR(a)?{steps:a}:{}}}function pQA(e){if(e.event!==void 0&&CQA.has(e.event))return null;const A=e.data.trim();if(!A)throw new gt("Responses SSE data frame is empty");if(A==="[DONE]")throw new gt("[DONE] is not valid in a Responses SSE stream");let t;try{t=JSON.parse(A)}catch{const n=A.length>180?`${A.slice(0,180)}…`:A;throw new gt(`Responses SSE data is not valid JSON (frame id=${e.id??"none"}, event=${e.event??"none"}, ${A.length} chars): ${n}`)}const r=sh(t,"event data"),i=hi(r.type,"type");if(!fQA.has(i))throw new gt(`Unsupported Responses SSE event type: ${i}`);if(e.event!==void 0&&e.event!==i)throw new gt(`SSE event field ${e.event} does not match payload type ${i}`);return i===IQA&&hi(r.session_id,"session_id"),r}function QR(e){return hQA.encode(e).byteLength}function QQA(e){const A=e.trim();if(!A)return[];if(A.startsWith("{"))return[{data:A,raw:e}];const t=new yR,r=/(?:\r?\n){2}$/.test(e)?e:`${A}
653
653
 
654
654
  `,i=t.push(r);return i.push(...t.finish()),i}function js(e){var i;const A=pR(e),t=(i=A.tool_calls)==null?void 0:i.map(n=>`${n.function.name}${n.function.arguments}`).join(""),r=QR(`${A.content??""}${A.reasoning_content??""}${t??""}`);if(r>fR)throw new gt("Responses stream content exceeded the 512 KB limit");return r}function IE(e){return e.filter(A=>A!==void 0)}function dE(e,A,t){const r=ua(A,"output_index"),i=e[r];if(!i||!ER(i))throw new gt(`Output item ${r} is not a message`);return Cy(i,t),Array.isArray(i.content)||(i.content=[]),i}function fE(e,A,t){const r=ua(A,"output_index"),i=e[r];if(!i||!mR(i))throw new gt(`Output item ${r} is not reasoning`);return Cy(i,t),i}function K8(e,A,t){const r=ua(A,"output_index"),i=e[r];if(!i||!vR(i))throw new gt(`Output item ${r} is not a function_call`);return Cy(i,t),i}function z8(e,A){const t=e.content[A];if(t===void 0){const r={type:"output_text",text:""};return e.content[A]=r,r}if(t.type!=="output_text"||typeof t.text!="string")throw new gt(`Content part ${A} is not output_text`);return t}function W8(e,A){const t=e.summary??(e.summary=[]),r=t[A];if(r===void 0){const i={type:"summary_text",text:""};return t[A]=i,i}if(r.type!=="summary_text")throw new gt(`Reasoning summary part ${A} is invalid`);return typeof r.text!="string"&&(r.text=""),r}function Cy(e,A){const t=hi(A,"item_id");if(e.id!==void 0&&e.id!==t)throw new gt(`SSE item_id ${t} does not match output item id ${e.id}`)}function ER(e){return e.type==="message"&&Array.isArray(e.content)}function mR(e){return e.type==="reasoning"}function vR(e){return e.type==="function_call"}function BE(e){const A=sh(e,"response");if(A.object!=="response")throw new gt('Response object must have object: "response"');if(hi(A.id,"response.id"),hi(A.model,"response.model"),!Number.isFinite(A.created_at))throw new gt("response.created_at must be a number");if(A.output===null&&(A.output=[]),A.output!==void 0&&!Array.isArray(A.output))throw new gt("response.output must be an array");return gc(A)}function X8(e){const A=sh(e,"item");if(hi(A.type,"item.type"),A.type==="message"){if(A.content==null&&(A.content=[]),!Array.isArray(A.content))throw new gt("message.content must be an array");if(A.role!=="assistant")throw new gt("Responses output message role must be assistant")}if(A.type==="reasoning"){if(A.summary==null&&(A.summary=[]),!Array.isArray(A.summary))throw new gt("reasoning.summary must be an array");A.content==null&&delete A.content}return A.type==="function_call"&&(hi(A.call_id,"function_call.call_id"),hi(A.name,"function_call.name"),A.arguments==null&&(A.arguments=""),hi(A.arguments,"function_call.arguments")),A}function EQA(e){const A=gc(e);return A.text==null&&(A.text=""),A}function mQA(e){const A=gc(e);return A.type==="output_text"&&A.text==null&&(A.text=""),A.annotations==null&&delete A.annotations,A}function sh(e,A){if(typeof e!="object"||e===null||Array.isArray(e))throw new gt(`${A} must be an object`);return e}function hi(e,A){if(typeof e!="string")throw new gt(`${A} must be a string`);return e}function ua(e,A){if(!Number.isSafeInteger(e)||e<0)throw new gt(`${A} must be a non-negative safe integer`);return e}function gc(e){return JSON.parse(JSON.stringify(e))}class yR{constructor(){this.buffer="",this.raw="",this.data=[],this.started=!1}push(A){if(!A)return[];this.buffer+=A;const t=[];let r=this.buffer.indexOf(`
655
655
  `);for(;r>=0;){const i=this.buffer.slice(0,r);this.buffer=this.buffer.slice(r+1);const n=i.endsWith("\r")?i.slice(0,-1):i,a=this.consumeLine(n,`${i}