@deep-eye/core 1.2.59 → 1.2.60
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/CHANGELOG.md +6 -0
- package/dist/index.cjs +1 -1
- package/dist/index.js +2 -2
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -2,6 +2,12 @@
|
|
|
2
2
|
|
|
3
3
|
`@deep-eye/core` 的用户可见变更(语义化版本)。
|
|
4
4
|
|
|
5
|
+
## [1.2.60] - 2026-08-17
|
|
6
|
+
|
|
7
|
+
### Fixed
|
|
8
|
+
|
|
9
|
+
- `consumeResponseStream`:兼容 `response.output_item.added` 中 `message.content` / `function_call.arguments` 为 `null` 的情况(分别按 `[]` / `""` 处理),避免抛出 `message.content must be an array`。
|
|
10
|
+
|
|
5
11
|
## [1.2.59] - 2026-08-17
|
|
6
12
|
|
|
7
13
|
### Fixed
|
package/dist/index.cjs
CHANGED
|
@@ -623,7 +623,7 @@ l0,-`+(t+144)+`c-2,-159.3,-10,-310.7,-24,-454c-53.3,-528,-210,-949.7,
|
|
|
623
623
|
`);t.forEach((r,n)=>{r&&e.appendChild(document.createTextNode(r)),n<t.length-1&&e.appendChild(document.createElement("br"))})}function tIA(e,A){e.deleteContents();const t=document.createDocumentFragment(),r=A.split(`
|
|
624
624
|
`);r.forEach((i,a)=>{i&&t.appendChild(document.createTextNode(i)),a<r.length-1&&t.appendChild(document.createElement("br"))});const n=t.lastChild;return e.insertNode(t),n}function rIA(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 Kx(){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?aIA(A):t}function nIA(e){const A=Kx();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 iIA(e){const A=e.gap??6,t=e.margin??8,{anchor:r,menuWidth:n,menuHeight:i,viewportWidth:a,viewportHeight:o}=e,s=o-r.bottom-A-t,l=r.top-A-t,g=i>s&&l>s;let c,h;g?(h="above",c=Math.max(t,r.top-A-i)):(h="below",c=r.bottom+A,c+i>o-t&&(c=Math.max(t,o-t-i)));let C=r.left;return C+n>a-t&&(C=Math.max(t,a-t-n)),C<t&&(C=t),{left:C,top:c,placement:h}}function aIA(e){var i;const A=document.createTextNode("");e.cloneRange().insertNode(A);const r=document.createRange();r.selectNode(A);const n=typeof r.getBoundingClientRect=="function"?r.getBoundingClientRect():null;return(i=A.parentNode)==null||i.removeChild(A),n}const oIA={key:1,class:"chat-sender__files","aria-label":"待发送附件"},sIA=["aria-label"],lIA=["src","alt"],gIA=["aria-label"],cIA=["src"],uIA={class:"chat-sender__file-content"},CIA={class:"chat-sender__file-name"},hIA={class:"chat-sender__file-meta"},IIA={class:"chat-sender__file-footer"},dIA={class:"chat-sender__file-badge"},fIA={class:"chat-sender__file-ext"},BIA=["aria-label","aria-valuenow"],QIA=["aria-label","onClick"],pIA=["aria-label","onClick"],EIA={key:2,class:"chat-sender__attachment-error",role:"alert"},mIA={class:"chat-sender__content"},vIA={class:"chat-sender__input-wrapper"},yIA=["contenteditable","data-placeholder","aria-expanded"],wIA={class:"chat-sender__toolbar"},DIA={class:"chat-sender__toolbar-left"},kIA={key:0,class:"chat-sender__attachment-wrapper"},bIA=["disabled","aria-expanded"],SIA={key:1,class:"chat-sender__attachment-menu-divider"},NIA=["disabled","onClick"],FIA={key:1,class:"chat-sender__toolbar-divider","aria-hidden":"true"},xIA=["disabled","aria-label","onClick"],_IA={key:1,"aria-hidden":"true"},MIA={key:0,class:"chat-sender__quick-divider","aria-hidden":"true"},RIA={key:1,class:"chat-sender__quick-actions",role:"group","aria-label":"快捷功能"},LIA=["disabled","onClick"],GIA={key:2,class:"chat-sender__quick-action-chip"},TIA={class:"chat-sender__toolbar-right"},YIA={class:"chat-sender__button-group"},UIA={key:0,class:"chat-sender__toolbar-before-voice"},JIA=["title"],OIA=["disabled"],HIA=["disabled","aria-label"],VIA={key:2,class:"chat-sender__voice-waveform"},ZIA={class:"chat-sender__mic-permission-popover-header"},KIA={class:"chat-sender__mic-permission-popover-desc"},qIA=["href"],PIA={class:"chat-sender__mic-permission-popover-hero","aria-hidden":"true"},WIA={class:"chat-sender__voice-menu-header"},zIA={class:"chat-sender__voice-level"},XIA={class:"chat-sender__voice-menu-body"},jIA={class:"chat-sender__voice-menu-devices"},$IA=["onClick"],AdA={class:"chat-sender__voice-menu-device-name"},edA={class:"chat-sender__voice-menu-footer"},tdA={class:"chat-sender__voice-menu-option-content"},rdA=["checked"],ndA=["disabled","aria-label"],idA={class:"chat-sender__action-icons","aria-hidden":"true"},adA=["src"],odA=240,sdA=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},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:{}},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"],setup(e,{expose:A,emit:t}){const r=e,n=t,i=u.useSlots(),a=new Map;function o(){return typeof i.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(),h=u.ref(),C=u.ref(),I=$g(),d=u.ref(""),f=u.ref([...r.attachments??[]]),B=u.ref(!1),Q=u.shallowRef(null),p=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:T=>{r.draft===void 0&&(d.value=T),n("update:draft",T)}}),N=u.computed(()=>r.triggers??[]),b=u.computed(()=>N.value.filter(T=>T.button)),S=u.computed(()=>r.showAttachment&&b.value.length>0),_=u.computed(()=>r.quickActions.length>0&&(r.showAttachment||b.value.length>0)),F=u.computed(()=>r.maxRows*24+24),R=u.computed(()=>{const T=l.value;return!T||!Q.value?null:p.value??nIA(T)}),G=u.computed(()=>{if(r.triggerMenuPlacement==="custom")return;if(!Q.value)return{position:"fixed",left:"0px",top:"0px",visibility:"hidden"};if(h.value)return h.value;const T=R.value;return T?{position:"fixed",left:`${T.left}px`,top:`${T.bottom+6}px`,visibility:"hidden"}:{position:"fixed",left:"0px",top:"0px",visibility:"hidden"}});function O(){if(r.triggerMenuPlacement==="custom"){h.value=void 0;return}const T=R.value,j=c.value;if(!T||!j||!Q.value){h.value=void 0;return}const{left:AA,top:wA}=iIA({anchor:T,menuWidth:j.offsetWidth,menuHeight:j.offsetHeight,viewportWidth:window.innerWidth,viewportHeight:window.innerHeight});h.value={position:"fixed",left:`${AA}px`,top:`${wA}px`,visibility:"visible"}}function J(){if(!Q.value||r.triggerMenuPlacement==="custom"){h.value=void 0;return}u.nextTick(()=>{requestAnimationFrame(()=>O())})}const H=u.computed(()=>r.uploadConfig?{...I.uploadConfig.value,...r.uploadConfig}:I.uploadConfig.value),X=u.computed(()=>{var T,j;return xd(I.limits.value,(T=I.uploadConfig.value)==null?void 0:T.limits,(j=r.uploadConfig)==null?void 0:j.limits,r.attachmentLimits)}),W=u.computed(()=>({...I.theme.value,...r.theme})),K=u.computed(()=>{const T=W.value,j={};return T.inputBg&&(j["--chat-sender-bg"]=T.inputBg),T.inputBorder&&(j["--chat-sender-border"]=T.inputBorder),T.inputFocusBorder&&(j["--chat-sender-focus-border"]=T.inputFocusBorder),T.buttonPrimaryBg&&(j["--chat-sender-send-active-bg"]=T.buttonPrimaryBg),T.buttonPrimaryColor&&(j["--chat-sender-send-active-color"]=T.buttonPrimaryColor),T.buttonSecondaryBg&&(j["--chat-sender-btn-hover-bg"]=T.buttonSecondaryBg),T.buttonSecondaryColor&&(j["--chat-sender-icon-color"]=T.buttonSecondaryColor),j}),aA=["5.13px","8.44px","14.17px","8.44px","5.13px"],tA=u.ref(!1),nA=u.ref(!1),eA=u.ref(null),uA=u.computed({get:()=>r.activeQuickAction===void 0?eA.value:r.activeQuickAction,set:T=>{r.activeQuickAction===void 0&&(eA.value=T),n("update:activeQuickAction",T)}}),bA=u.computed(()=>r.quickActions.find(T=>T.id===uA.value)),VA=u.computed(()=>{var T;return((T=bA.value)==null?void 0:T.placeholder)??r.placeholder}),{showVoiceMenu:KA,holdToRecord:FA,isVoiceHovered:YA,isRecording:HA,audioLevel:Ie,isHoldingMic:ae,voiceError:Fe,audioDevices:SA,isSpeechSupported:qA,isMicPermissionDenied:iA,toggleVoiceMenu:GA,closeVoiceMenu:XA,handleVoiceRecord:we,handleMouseDown:Le,handleMouseUp:st,handleMouseLeave:xt,selectAudioDevice:Bt,toggleHoldToRecord:ut}=OhA({draft:k,isDisabled:()=>r.disabled,onMenuOpen:()=>{nA.value=!1},onVoiceClick:()=>n("voice-click"),onVoiceRecord:()=>n("voice-record"),onVoiceStart:()=>n("voice-start"),onVoiceStop:()=>n("voice-stop"),onVoiceCancel:()=>n("voice-cancel"),onAudioDeviceChange:T=>n("audio-device-change",T),onAudioTranscript:T=>n("audio-transcript",T)}),ke=u.computed(()=>!qA.value||iA.value),_t=u.computed(()=>{if(!qA.value)return"当前浏览器不支持语音输入";if(iA.value)return"浏览器未开启麦克风权限"}),oA=u.computed(()=>_t.value?_t.value:HA.value?"停止录音":"录音"),CA=u.ref(!1);let MA=!1;const Jt=u.ref(),Lr=u.ref(),lr=u.ref(),Ct=u.ref(),$e=u.ref();let $t=null;function mt(){$t!=null&&(clearTimeout($t),$t=null)}function vt(){var $A;const T=($A=Jt.value)==null?void 0:$A.closest(".chat-sender");if(!T)return{};const j=getComputedStyle(T),AA=["--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"],wA={};for(const oe of AA){const Je=j.getPropertyValue(oe).trim();Je&&(wA[oe]=Je)}return wA}function Pt(T,j,AA=10){var za;const wA=(za=Jt.value)==null?void 0:za.getBoundingClientRect();if(!wA||!T){j.value=void 0;return}const $A=T.offsetWidth,oe=T.offsetHeight;let Je=wA.right-$A;Je=Math.max(8,Math.min(Je,window.innerWidth-$A-8));let nt=wA.top-oe-AA;nt<8&&(nt=Math.min(wA.bottom+AA,Math.max(8,window.innerHeight-oe-8))),j.value={...vt(),position:"fixed",left:`${Je}px`,top:`${nt}px`,visibility:"visible"}}function Wt(){u.nextTick(()=>{KA.value?(Ct.value||(Ct.value={position:"fixed",left:"0px",top:"0px",visibility:"hidden"}),Pt(Lr.value,Ct,8)):Ct.value=void 0,CA.value?($e.value||($e.value={position:"fixed",left:"0px",top:"0px",visibility:"hidden"}),Pt(lr.value,$e,10)):$e.value=void 0})}function Yn(){if(mt(),iA.value){MA||(CA.value=!0,Wt());return}ke.value||(YA.value=!0)}function yr(){YA.value=!1,mt(),MA=!1,$t=setTimeout(()=>{CA.value=!1,$t=null},180)}function Bi(){mt()}function Wa(){mt(),MA=!1,$t=setTimeout(()=>{CA.value=!1,$t=null},180)}function ht(){mt(),CA.value=!1,MA=!0}u.watch([KA,CA],()=>{Wt()});const Cn=u.computed(()=>(k.value.trim().length>0||f.value.length>0)&&f.value.every(j=>j.status==="uploaded")),Qi=u.ref(!1),Wr=u.computed(()=>r.streaming||Qi.value),Un=u.computed(()=>Wr.value||Cn.value);u.watch(()=>r.streaming,T=>{T&&(Qi.value=!1)}),u.watch(Cn,T=>{T&&(Qi.value=!1)}),u.watch(()=>r.attachments,T=>{T&&(f.value=[...T])},{deep:!0});function ga(T){f.value=[...T],n("update:attachments",f.value)}const P=Hx({getAttachments:()=>f.value,setAttachments:ga,getUploadConfig:()=>H.value,getLimits:()=>X.value,onError(T,j){n("attachment-error",T,j)}});u.onMounted(()=>{k.value&&l.value&&X5(l.value,k.value),m.value=k.value}),u.watch(k,T=>{T!==m.value&&l.value&&(X5(l.value,T),m.value=T,Q.value=null,document.activeElement===l.value&&sA(l.value))});function sA(T){const j=window.getSelection();if(!j)return;const AA=document.createRange();AA.selectNodeContents(T),AA.collapse(!1),j.removeAllRanges(),j.addRange(AA),E=AA.cloneRange()}function gA(){const T=l.value,j=window.getSelection();if(!T||!j||j.rangeCount===0){T&&eu(T);return}const AA=j.getRangeAt(0);if(!T.contains(AA.commonAncestorContainer)){eu(T);return}E=AA.cloneRange(),eu(T)}function xA(){if(!l.value)return;const T=Zx(l.value);m.value=T,k.value=T}function jA(){if(!l.value)return;const T=new Set;l.value.querySelectorAll(`[${Hu}]`).forEach(j=>{const AA=j.getAttribute(Hu),wA=j.getAttribute(yd);if(!AA||!wA)return;const $A=Gr(AA,wA);if(T.add($A),!v.has($A)){const oe=j.getAttribute(E0)??"",Je={triggerId:AA,id:wA,label:oe};v.set($A,Je),n("mention-insert",Je)}}),w.forEach(j=>{if(T.has(j))return;const AA=v.get(j);AA&&(v.delete(j),n("mention-remove",AA))}),w=T,xe()}function xe(){if(!o()||!l.value){qe();return}const T=new Set;l.value.querySelectorAll(`[${xm}]`).forEach(j=>{let AA=j.getAttribute($h);AA||(AA=s(),j.setAttribute($h,AA)),T.add(AA),a.has(AA)||yt(j)}),a.forEach((j,AA)=>{var wA;T.has(AA)&&((wA=l.value)!=null&&wA.contains(j.el))||Mt(AA)})}function yt(T){const j=T.getAttribute($h);if(!j||!o()||a.has(j))return;const AA=T.getAttribute(Hu)??"",wA=T.getAttribute(yd)??"",$A=T.getAttribute(E0)??"",oe=T.getAttribute(Gf)??"",Je=()=>Po(T),nt=u.defineComponent({name:"ChatSenderMentionSlotHost",setup(){return()=>{var Mi;return((Mi=i.mention)==null?void 0:Mi.call(i,{triggerId:AA,id:wA,label:$A,char:oe,remove:Je}))??null}}});u.render(u.h(nt),T),a.set(j,{el:T,cleanup:()=>u.render(null,T)})}function Mt(T){const j=a.get(T);j&&(j.cleanup(),a.delete(T))}function qe(){a.forEach((T,j)=>Mt(j))}function Gr(T,j){return`${T}:${j}`}function Po(T){var wA;if(!((wA=l.value)!=null&&wA.contains(T)))return;l.value.focus();const AA=window.getSelection();if(AA){const $A=document.createRange();$A.selectNode(T),AA.removeAllRanges(),AA.addRange($A),typeof document.execCommand=="function"&&document.execCommand("delete")||T.remove()}else T.remove();Jn(),gr()}function Jn(){l.value&&(!rIA(l.value)&&l.value.childNodes.length>0&&(l.value.innerHTML=""),jA(),xA(),rA())}function ml(){B.value=!0}function vl(){B.value=!1}function yl(T){var oe,Je;T.preventDefault();const j=((oe=T.clipboardData)==null?void 0:oe.getData(W5))??"",AA=j?AIA(j):null;if(AA&&AA.length>0){wt(AA);return}const wA=vd(T.clipboardData);if(wA.length>0&&r.showAttachment&&!r.disabled){rt(wA);return}const $A=((Je=T.clipboardData)==null?void 0:Je.getData("text/plain"))??"";$A&&(U($A),Jn())}function Ae(){const T=l.value,j=window.getSelection();if(!T||!j||j.rangeCount===0||j.isCollapsed)return null;const AA=j.getRangeAt(0),wA=AA.startContainer===T||T.contains(AA.startContainer),$A=AA.endContainer===T||T.contains(AA.endContainer);return!wA||!$A?null:AA}function q(T,j){var $A,oe;const AA=WhA(j),wA=jhA(j);T.preventDefault(),($A=T.clipboardData)==null||$A.setData("text/plain",AA),(oe=T.clipboardData)==null||oe.setData(W5,$hA(wA))}function hA(T){const j=Ae();j&&q(T,j)}function RA(T){if(r.disabled||HA.value)return;const j=Ae();j&&(q(T,j),j.deleteContents(),Jn(),l.value&&eu(l.value))}function Xe(T,j){const AA=T??{id:j.triggerId,char:j.char||"@"},wA=o(),$A=!wA&&typeof AA.renderChip=="function",oe=wA?s():void 0,Je=wA?mu(AA,j.id,j.label,{custom:!0,mountId:oe}):$A?mu(AA,j.id,j.label,{custom:!0}):z5(AA,j.id,j.label);if($A&&AA.renderChip){const nt=AA.renderChip({triggerId:AA.id,id:j.id,label:j.label,char:AA.char});typeof nt=="string"?Je.innerHTML=nt:Je.appendChild(nt)}return Je}function Ar(T,j){const AA=j.split(`
|
|
625
625
|
`);AA.forEach((wA,$A)=>{wA&&T.appendChild(document.createTextNode(wA)),$A<AA.length-1&&T.appendChild(document.createElement("br"))})}function wt(T){const j=l.value,AA=window.getSelection();if(!j||!AA||AA.rangeCount===0)return;const wA=AA.getRangeAt(0);if(!j.contains(wA.startContainer)&&wA.startContainer!==j)return;wA.deleteContents();const $A=document.createDocumentFragment(),oe=[];for(const nt of T){if(nt.type==="text"){Ar($A,nt.text);continue}const za=N.value.find(Yf=>Yf.id===nt.triggerId),Mi=Xe(za,nt);$A.appendChild(Mi),Mi.hasAttribute(xm)&&o()&&oe.push(Mi)}const Je=$A.lastChild;if(wA.insertNode($A),oe.forEach(nt=>yt(nt)),Je){const nt=document.createRange();nt.setStartAfter(Je),nt.collapse(!0),AA.removeAllRanges(),AA.addRange(nt)}Jn(),eu(j)}function dr(T){var $A,oe;const j=T.target,AA=($A=j==null?void 0:j.closest)==null?void 0:$A.call(j,".chat-sender__mention-remove");if(!AA||!((oe=l.value)!=null&&oe.contains(AA)))return;T.preventDefault(),T.stopPropagation();const wA=AA.closest(`.${dc}`);!wA||!l.value||Po(wA)}function gr(){const T=l.value;if(!T)return;let j=null;const AA=window.getSelection();if(AA&&AA.rangeCount>0&&T.contains(AA.getRangeAt(0).commonAncestorContainer))j=AA.getRangeAt(0).cloneRange();else if(E)try{T.contains(E.commonAncestorContainer)&&(j=E.cloneRange())}catch{E=null}T.focus();const wA=window.getSelection();if(!j||!wA){sA(T);return}wA.removeAllRanges(),wA.addRange(j),E=j.cloneRange()}function Tr(T){return!!T.closest('button, a, input, textarea, select, label, [role="button"], [role="menuitem"], [role="switch"], [contenteditable="true"]')}function Wo(T){if(r.disabled||HA.value)return;const j=T.target;!j||Tr(j)||T.preventDefault()}function Rt(T){if(r.disabled||HA.value)return;const j=T.target;!j||Tr(j)||gr()}function fc(){tA.value=!0}function Bc(T){const j=g.value,AA=T.relatedTarget;j&&AA&&j.contains(AA)||requestAnimationFrame(()=>{if(j!=null&&j.contains(document.activeElement)){tA.value=!0;return}tA.value=!1})}function U(T){const j=window.getSelection(),AA=l.value;if(!j||j.rangeCount===0||!AA)return;const wA=j.getRangeAt(0);if(!AA.contains(wA.startContainer))return;const $A=tIA(wA,T);if(!$A)return;const oe=document.createRange();oe.setStartAfter($A),oe.collapse(!0),j.removeAllRanges(),j.addRange(oe)}function z(){p.value=Kx()}function lA(){const T=Q.value;T&&(Q.value=null,p.value=null,h.value=void 0,n("trigger-close",{triggerId:T.triggerId}))}function rA(){const T=window.getSelection(),j=l.value;if(!T||T.rangeCount===0||!T.isCollapsed||!j){lA();return}const AA=T.getRangeAt(0);if(!j.contains(AA.startContainer)){lA();return}const wA=PhA(N.value,j,AA.startContainer,AA.startOffset);if(!wA){lA();return}const $A=wA.range.toString().slice(wA.trigger.char.length),oe=Q.value;if(!oe||oe.triggerId!==wA.trigger.id)Q.value={triggerId:wA.trigger.id,query:$A,range:wA.range},n("trigger-open",{triggerId:wA.trigger.id});else{const Je=oe.query!==$A;Q.value={triggerId:oe.triggerId,query:$A,range:wA.range},Je&&n("trigger-query",{triggerId:wA.trigger.id,query:$A})}u.nextTick(()=>{z(),J()})}function QA(T){r.disabled||(gr(),U(T.char),Jn())}function pA(){lA()}function WA(T){const j=Q.value;if(!j)return;const AA=N.value.find(wA=>wA.id===j.triggerId);if(AA){if(B.value){Promise.resolve().then(()=>TA(AA,j,T));return}TA(AA,j,T)}}function TA(T,j,AA){var r2;const wA=l.value;if(!wA)return;const $A=o(),oe=!$A&&typeof T.renderChip=="function",Je=$A?s():void 0,nt=$A?mu(T,AA.id,AA.label,{custom:!0,mountId:Je}):oe?mu(T,AA.id,AA.label,{custom:!0}):z5(T,AA.id,AA.label);if(oe&&T.renderChip){const Xa=T.renderChip({triggerId:T.id,id:AA.id,label:AA.label,char:T.char});typeof Xa=="string"?nt.innerHTML=Xa:nt.appendChild(Xa)}const za=`m-${Date.now().toString(36)}-${Math.random().toString(36).slice(2,8)}`;nt.setAttribute("data-mention-token",za);const Mi=HhA(wA,j.range)?" ":"",Yf=`${Mi}${nt.outerHTML} `;wA.focus();const jo=window.getSelection();if(!jo)return;jo.removeAllRanges(),jo.addRange(j.range),j.range.deleteContents();const Uf=j.range.cloneRange();Uf.collapse(!0),jo.removeAllRanges(),jo.addRange(Uf);let $o=null;if(typeof document.execCommand=="function"&&document.execCommand("insertHTML",!1,Yf)&&($o=wA.querySelector(`[data-mention-token="${za}"]`)),!$o){const Xa=document.createDocumentFragment();Mi&&Xa.appendChild(document.createTextNode(Mi)),Xa.appendChild(nt),Xa.appendChild(document.createTextNode(" ")),Uf.insertNode(Xa),$o=nt}$o.removeAttribute("data-mention-token"),$A&&yt($o);const V0=$o.nextSibling,Z0=document.createRange();V0&&V0.nodeType===Node.TEXT_NODE?Z0.setStart(V0,Math.min(1,((r2=V0.textContent)==null?void 0:r2.length)??0)):Z0.setStartAfter($o),Z0.collapse(!0),jo.removeAllRanges(),jo.addRange(Z0);const t2=Gr(T.id,AA.id);v.set(t2,{triggerId:T.id,id:AA.id,label:AA.label}),w.add(t2),xA(),n("mention-insert",{triggerId:T.id,id:AA.id,label:AA.label}),lA()}function ue(T){const j=l.value,AA=window.getSelection();if(!j||!AA||!AA.isCollapsed||AA.rangeCount===0)return!1;const wA=AA.getRangeAt(0),$A=T==="Backspace"?VhA(j,wA):ZhA(j,wA);if(!$A)return!1;const oe=T==="Backspace"&&wA.startContainer.nodeType===Node.TEXT_NODE&&/^\s+$/.test(wA.startContainer.textContent??"")&&wA.startContainer.previousSibling===$A?wA.startContainer:null;j.focus();const Je=document.createRange();return Je.setStartBefore($A),oe?Je.setEndAfter(oe):Je.setEndAfter($A),AA.removeAllRanges(),AA.addRange(Je),typeof document.execCommand=="function"&&document.execCommand("delete")||($A.remove(),oe!=null&&oe.parentNode&&oe.parentNode.removeChild(oe)),!0}function ne(T){if((T.key==="Backspace"||T.key==="Delete")&&!T.isComposing&&!B.value&&ue(T.key)){T.preventDefault(),Jn();return}if(T.key==="Enter"){if(T.shiftKey){T.preventDefault(),U(`
|
|
626
|
-
`),Jn();return}T.isComposing||B.value||(T.preventDefault(),Ge())}}function Ge(){if(!Cn.value||r.disabled)return;const T=Dd(k.value,f.value);Qi.value=!0,n("send",T),zr(),P.clear(),u.nextTick(()=>{var j;(j=l.value)==null||j.focus()})}function Ot(){Qi.value=!1,n("stop")}function zr(){l.value&&(l.value.innerHTML=""),qe(),m.value="",k.value="",v.clear(),w=new Set,E=null,lA()}function er(){var T;(T=C.value)==null||T.click()}function On(T){const j=T.target;if(j.files&&j.files.length>0){const AA=Array.from(j.files);rt(AA)}j.value=""}function rt(T){P.addFiles(T)}A({addFiles:rt});const ee=u.inject(Vx,null);let be;const Y=u.ref(!1);let yA=0;function ZA(){return r.enableFileDrop&&r.showAttachment&&!r.disabled}function Se(){yA=0,Y.value=!1}function Pe(T){!ZA()||!Fg(T)||(T.preventDefault(),T.stopPropagation(),yA+=1,Y.value=!0)}function Yr(T){!ZA()||!Fg(T)||(T.preventDefault(),T.stopPropagation(),T.dataTransfer&&(T.dataTransfer.dropEffect="copy"),Y.value=!0)}function Hn(T){!ZA()||!Fg(T)||(T.stopPropagation(),yA=Math.max(0,yA-1),yA===0&&(Y.value=!1))}function zo(T){if(!ZA())return;T.preventDefault(),T.stopPropagation(),Se();const j=vd(T.dataTransfer);j.length>0&&rt(j)}u.watch(()=>[r.disabled,r.showAttachment,r.enableFileDrop],()=>{ZA()||Se()});function Xo(T){P.remove(T)}function wr(T){P.retry(T)}function pi(T){return T.status==="uploaded"?T.resource.filename:T.file.name}function H0(T){const j=pi(T);return ll(j)||"file"}function s_(T){return T.status==="uploaded"?Vu({name:T.resource.filename,type:""})==="image":Vu(T.file)==="image"}function l_(T){return T.previewUrl?T.previewUrl:T.status==="uploaded"?Ws(T.resource.original_url,{width:odA}):""}function Tf(T){return T.status==="uploading"?`上传中 ${T.progress}%`:T.status==="error"?T.error.message:g_(T.resource.size)}function g_(T){return T<1024?`${T} B`:T<1024*1024?`${(T/1024).toFixed(1)} KB`:`${(T/(1024*1024)).toFixed(1)} MB`}function c_(){nA.value=!nA.value,nA.value?(XA(),n("attachment-menu-open")):n("attachment-menu-close")}function u_(){er(),nA.value=!1}function C_(){const T=typeof navigator>"u"?void 0:navigator.mediaDevices;T&&"getDisplayMedia"in T?h_():n("screenshot"),nA.value=!1}async function h_(){try{const T=typeof navigator>"u"?void 0:navigator.mediaDevices;if(!(T!=null&&T.getDisplayMedia)){n("screenshot");return}const j=await T.getDisplayMedia({video:!0}),AA=document.createElement("video");AA.srcObject=j,AA.autoplay=!0,await new Promise(oe=>{AA.onloadedmetadata=oe}),await new Promise(oe=>setTimeout(oe,100));const wA=document.createElement("canvas");wA.width=AA.videoWidth,wA.height=AA.videoHeight;const $A=wA.getContext("2d");$A&&($A.drawImage(AA,0,0),j.getTracks().forEach(oe=>oe.stop()),wA.toBlob(oe=>{if(oe){const Je=new File([oe],`screenshot-${Date.now()}.png`,{type:"image/png"});rt([Je])}},"image/png"))}catch(T){console.error("截图失败:",T),n("screenshot")}}function I_(T){n("menu-item-click",T),nA.value=!1}function d_(T){uA.value=T.id,n("quick-action-select",T),u.nextTick(()=>{var j;return(j=l.value)==null?void 0:j.focus()})}function f_(){uA.value=null,n("quick-action-clear"),u.nextTick(()=>{var T;return(T=l.value)==null?void 0:T.focus()})}function e2(T){const j=T.target;KA.value&&!j.closest(".chat-sender__voice-wrapper")&&!j.closest(".chat-sender__voice-menu")&&XA(),nA.value&&!j.closest(".chat-sender__attachment-wrapper")&&(nA.value=!1)}return u.onMounted(()=>{document.addEventListener("click",e2),document.addEventListener("selectionchange",gA),window.addEventListener("resize",J),window.addEventListener("scroll",J,!0),window.addEventListener("resize",Wt),window.addEventListener("scroll",Wt,!0),ee&&r.showAttachment&&(be=ee.register(rt))}),u.onUnmounted(()=>{document.removeEventListener("click",e2),document.removeEventListener("selectionchange",gA),window.removeEventListener("resize",J),window.removeEventListener("scroll",J,!0),window.removeEventListener("resize",Wt),window.removeEventListener("scroll",Wt,!0),mt(),qe(),be==null||be(),be=void 0,Se(),P.dispose()}),(T,j)=>(u.openBlock(),u.createElementBlock("div",{ref_key:"rootRef",ref:g,class:u.normalizeClass(["chat-sender",{"chat-sender--focused":tA.value,"chat-sender--disabled":r.disabled,"chat-sender--mode-active":bA.value,"chat-sender--drag-over":Y.value}]),style:u.normalizeStyle(K.value),onFocusin:fc,onFocusout:Bc,onDragenter:Pe,onDragover:Yr,onDragleave:Hn,onDrop:zo},[u.createElementVNode("div",{class:"chat-sender__inner",onMousedown:Wo,onClick:Rt},[Y.value?(u.openBlock(),u.createBlock(Ox,{key:0})):u.createCommentVNode("",!0),f.value.length>0?(u.openBlock(),u.createElementBlock("div",oIA,[(u.openBlock(!0),u.createElementBlock(u.Fragment,null,u.renderList(f.value,AA=>(u.openBlock(),u.createElementBlock("div",{key:AA.id,class:u.normalizeClass(["chat-sender__file-thumbnail",`chat-sender__file-thumbnail--${AA.status}`])},[s_(AA)?(u.openBlock(),u.createElementBlock("button",{key:0,type:"button",class:"chat-sender__file-card chat-sender__file-card--image","aria-label":`${pi(AA)}, ${Tf(AA)}`},[u.createElementVNode("img",{src:l_(AA),alt:pi(AA),class:"chat-sender__file-image"},null,8,lIA)],8,sIA)):(u.openBlock(),u.createElementBlock("button",{key:1,type:"button",class:"chat-sender__file-card","aria-label":`${pi(AA)}, ${H0(AA)}, ${Tf(AA)}`},[u.createElementVNode("img",{class:"chat-sender__file-type-icon",src:u.unref(Lm)(pi(AA)),alt:"","aria-hidden":"true"},null,8,cIA),u.createElementVNode("div",uIA,[u.createElementVNode("h3",CIA,u.toDisplayString(pi(AA)),1),u.createElementVNode("p",hIA,u.toDisplayString(Tf(AA)),1)]),u.createElementVNode("div",IIA,[u.createElementVNode("div",dIA,[u.createElementVNode("p",fIA,u.toDisplayString(H0(AA)),1)])])],8,gIA)),AA.status==="uploading"?(u.openBlock(),u.createElementBlock("div",{key:2,class:"chat-sender__file-progress",role:"progressbar","aria-label":`${pi(AA)} 上传进度`,"aria-valuemin":"0","aria-valuemax":"100","aria-valuenow":AA.progress},[u.createElementVNode("span",{style:u.normalizeStyle({width:`${AA.progress}%`})},null,4)],8,BIA)):u.createCommentVNode("",!0),AA.status==="error"?(u.openBlock(),u.createElementBlock("button",{key:3,type:"button",class:"chat-sender__file-retry-btn","aria-label":`重试上传 ${pi(AA)}`,onClick:wA=>wr(AA.id)},[u.createVNode(u.unref(MR),{size:14,"stroke-width":1.75,"aria-hidden":"true"})],8,QIA)):u.createCommentVNode("",!0),u.createElementVNode("button",{type:"button",class:"chat-sender__file-remove-btn","aria-label":`移除 ${pi(AA)}`,onClick:wA=>Xo(AA.id)},[u.createVNode(u.unref(xg),{size:14,"stroke-width":1.75,"aria-hidden":"true"})],8,pIA)],2))),128))])):u.createCommentVNode("",!0),u.unref(Fe)?(u.openBlock(),u.createElementBlock("p",EIA,u.toDisplayString(u.unref(Fe)),1)):u.createCommentVNode("",!0),u.createElementVNode("div",mIA,[u.createElementVNode("div",vIA,[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(HA)?"false":"true","data-placeholder":u.unref(HA)?"正在聆听...":VA.value,style:u.normalizeStyle({maxHeight:`${F.value}px`}),role:"textbox","aria-multiline":"true","aria-label":"输入消息","aria-haspopup":"listbox","aria-expanded":Q.value!==null,onInput:Jn,onKeydown:ne,onCompositionstart:ml,onCompositionend:vl,onPaste:yl,onCopy:hA,onCut:RA,onClick:dr},null,46,yIA),(u.openBlock(),u.createBlock(u.Teleport,{to:"body"},[u.createVNode(u.Transition,{name:"attachment-menu"},{default:u.withCtx(()=>[Q.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(G.value),onMousedown:j[0]||(j[0]=u.withModifiers(()=>{},["prevent"]))},[u.renderSlot(T.$slots,"trigger-menu",{triggerId:Q.value.triggerId,query:Q.value.query,select:WA,close:pA,anchorRect:R.value},void 0,!0)],38)):u.createCommentVNode("",!0)]),_:3})]))]),u.createElementVNode("div",wIA,[u.createElementVNode("div",DIA,[r.showAttachment?(u.openBlock(),u.createElementBlock("div",kIA,[u.createElementVNode("button",{type:"button",class:u.normalizeClass(["chat-sender__icon-button",{"chat-sender__icon-button--active":nA.value}]),disabled:r.disabled,"aria-label":"添加附件","aria-haspopup":"menu","aria-expanded":nA.value,onClick:u.withModifiers(c_,["stop"])},[u.createVNode(u.unref(Gx),{size:18})],10,bIA),u.createVNode(u.Transition,{name:"attachment-menu"},{default:u.withCtx(()=>[nA.value?(u.openBlock(),u.createElementBlock("div",{key:0,class:"chat-sender__attachment-menu",role:"menu",onClick:j[1]||(j[1]=u.withModifiers(()=>{},["stop"]))},[u.createElementVNode("button",{type:"button",role:"menuitem",class:"chat-sender__attachment-menu-item",onClick:u_},[u.createVNode(u.unref(Jx),{size:18}),j[15]||(j[15]=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:C_},[...j[16]||(j[16]=[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",SIA)):u.createCommentVNode("",!0),(u.openBlock(!0),u.createElementBlock(u.Fragment,null,u.renderList(r.customMenuItems,AA=>(u.openBlock(),u.createElementBlock("button",{key:AA.id,type:"button",role:"menuitem",class:"chat-sender__attachment-menu-item",disabled:AA.disabled,onClick:wA=>I_(AA.id)},[(u.openBlock(),u.createBlock(u.resolveDynamicComponent(AA.icon))),u.createElementVNode("span",null,u.toDisplayString(AA.label),1)],8,NIA))),128))])):u.createCommentVNode("",!0)]),_:1})])):u.createCommentVNode("",!0),S.value?(u.openBlock(),u.createElementBlock("span",FIA)):u.createCommentVNode("",!0),(u.openBlock(!0),u.createElementBlock(u.Fragment,null,u.renderList(b.value,AA=>(u.openBlock(),u.createElementBlock("button",{key:AA.id,type:"button",class:"chat-sender__icon-button",disabled:r.disabled,"aria-label":AA.button.label,onMousedown:j[2]||(j[2]=u.withModifiers(()=>{},["prevent"])),onClick:wA=>QA(AA)},[AA.button.icon?(u.openBlock(),u.createBlock(u.resolveDynamicComponent(AA.button.icon),{key:0,size:18,"stroke-width":1.75,"aria-hidden":"true"})):(u.openBlock(),u.createElementBlock("span",_IA,u.toDisplayString(AA.char),1))],40,xIA))),128)),r.quickActions.length>0?(u.openBlock(),u.createElementBlock(u.Fragment,{key:2},[_.value?(u.openBlock(),u.createElementBlock("span",MIA)):u.createCommentVNode("",!0),bA.value?(u.openBlock(),u.createElementBlock("div",GIA,[bA.value.icon?(u.openBlock(),u.createBlock(u.resolveDynamicComponent(bA.value.icon),{key:0,size:14,"stroke-width":1.75,"aria-hidden":"true"})):u.createCommentVNode("",!0),u.createElementVNode("span",null,u.toDisplayString(bA.value.label),1),u.createElementVNode("button",{type:"button",class:"chat-sender__quick-action-remove","aria-label":"退出该模式",onClick:f_},[u.createVNode(u.unref(xg),{size:14,"stroke-width":2,"aria-hidden":"true"})])])):(u.openBlock(),u.createElementBlock("div",RIA,[(u.openBlock(!0),u.createElementBlock(u.Fragment,null,u.renderList(r.quickActions,AA=>(u.openBlock(),u.createElementBlock("button",{key:AA.id,type:"button",class:"chat-sender__quick-action",disabled:r.disabled,onClick:wA=>d_(AA)},[AA.icon?(u.openBlock(),u.createBlock(u.resolveDynamicComponent(AA.icon),{key:0,size:14,"stroke-width":1.75,"aria-hidden":"true"})):u.createCommentVNode("",!0),u.createElementVNode("span",null,u.toDisplayString(AA.label),1)],8,LIA))),128))]))],64)):u.createCommentVNode("",!0)]),u.createElementVNode("div",TIA,[u.createElementVNode("div",YIA,[T.$slots["toolbar-before-voice"]?(u.openBlock(),u.createElementBlock("div",UIA,[u.renderSlot(T.$slots,"toolbar-before-voice",{},void 0,!0)])):u.createCommentVNode("",!0),u.createElementVNode("div",{ref_key:"voiceWrapperRef",ref:Jt,class:u.normalizeClass(["chat-sender__voice-wrapper",{"chat-sender__voice-wrapper--unsupported":ke.value,"chat-sender__voice-wrapper--permission-denied":u.unref(iA)}]),title:u.unref(iA)?void 0:_t.value,onMouseenter:Yn,onMouseleave:yr},[u.createElementVNode("div",{class:u.normalizeClass(["chat-sender__voice-group",{"chat-sender__voice-group--menu-open":u.unref(KA)}])},[ke.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(YA)||u.unref(KA)}])},[u.createElementVNode("button",{type:"button",class:u.normalizeClass(["chat-sender__voice-settings",{"chat-sender__voice-settings--active":u.unref(KA)}]),disabled:r.disabled,"aria-label":"麦克风设置",onClick:j[3]||(j[3]=u.withModifiers((...AA)=>u.unref(GA)&&u.unref(GA)(...AA),["stop"]))},[u.createVNode(u.unref(Tx))],10,OIA)],2)),u.createElementVNode("button",{type:"button",class:u.normalizeClass(["chat-sender__voice-button",{"chat-sender__voice-button--recording":u.unref(HA),"chat-sender__voice-button--holding":u.unref(ae),"chat-sender__voice-button--unsupported":ke.value}]),disabled:r.disabled||ke.value,"aria-label":oA.value,onClick:j[4]||(j[4]=(...AA)=>u.unref(we)&&u.unref(we)(...AA)),onMousedown:j[5]||(j[5]=(...AA)=>u.unref(Le)&&u.unref(Le)(...AA)),onMouseup:j[6]||(j[6]=(...AA)=>u.unref(st)&&u.unref(st)(...AA)),onMouseleave:j[7]||(j[7]=(...AA)=>u.unref(xt)&&u.unref(xt)(...AA))},[ke.value?(u.openBlock(),u.createBlock(u.unref(jh),{key:0,size:20})):u.unref(HA)?(u.openBlock(),u.createElementBlock("div",VIA,[(u.openBlock(),u.createElementBlock(u.Fragment,null,u.renderList(aA,(AA,wA)=>u.createElementVNode("span",{key:wA,class:"chat-sender__voice-wave-bar",style:u.normalizeStyle({animationDelay:`${(wA+1)*.1}s`,height:AA})},null,4)),64))])):(u.openBlock(),u.createBlock(u.unref(Fm),{key:1,size:20}))],42,HIA)],2)],42,JIA),(u.openBlock(),u.createBlock(u.Teleport,{to:"body"},[u.createVNode(u.Transition,{name:"voice-menu"},{default:u.withCtx(()=>[CA.value?(u.openBlock(),u.createElementBlock("div",{key:0,ref_key:"micPermissionPopoverRef",ref:lr,class:"chat-sender__mic-permission-popover",role:"dialog","aria-label":"尚未获得麦克风权限",style:u.normalizeStyle($e.value),onClick:j[9]||(j[9]=u.withModifiers(()=>{},["stop"])),onMouseenter:Bi,onMouseleave:Wa},[u.createElementVNode("div",ZIA,[u.createVNode(u.unref(jh)),j[17]||(j[17]=u.createElementVNode("span",{class:"chat-sender__mic-permission-popover-title"},"尚未获得麦克风权限",-1))]),u.createElementVNode("p",KIA,[j[18]||(j[18]=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:j[8]||(j[8]=AA=>n("mic-permission-guide-click"))}," 麦克风权限开启指南 ",8,qIA)):u.createCommentVNode("",!0)]),u.createElementVNode("div",PIA,[u.createVNode(u.unref(jh),{size:48})]),u.createElementVNode("button",{type:"button",class:"chat-sender__mic-permission-popover-dismiss",onClick:ht}," 知道了 ")],36)):u.createCommentVNode("",!0)]),_:1}),u.createVNode(u.Transition,{name:"voice-menu"},{default:u.withCtx(()=>[u.unref(KA)?(u.openBlock(),u.createElementBlock("div",{key:0,ref_key:"voiceMenuRef",ref:Lr,class:"chat-sender__voice-menu",style:u.normalizeStyle(Ct.value),onClick:j[13]||(j[13]=u.withModifiers(()=>{},["stop"]))},[u.createElementVNode("div",WIA,[u.createVNode(u.unref(Fm)),j[19]||(j[19]=u.createElementVNode("span",{class:"chat-sender__voice-menu-title"},"麦克风",-1)),u.createElementVNode("div",zIA,[u.createElementVNode("div",{class:"chat-sender__voice-level-bar",style:u.normalizeStyle({width:`${u.unref(Ie)}%`})},null,4)])]),u.createElementVNode("div",XIA,[u.createElementVNode("div",jIA,[(u.openBlock(!0),u.createElementBlock(u.Fragment,null,u.renderList(u.unref(SA),(AA,wA)=>(u.openBlock(),u.createElementBlock("button",{key:AA.deviceId,type:"button",class:u.normalizeClass(["chat-sender__voice-menu-item",{"chat-sender__voice-menu-item--active":AA.active}]),onClick:$A=>u.unref(Bt)(wA)},[u.createElementVNode("span",AdA,u.toDisplayString(AA.label),1),AA.active?(u.openBlock(),u.createBlock(u.unref(Yx),{key:0,class:"chat-sender__voice-menu-check"})):u.createCommentVNode("",!0)],10,$IA))),128))])]),u.createElementVNode("div",edA,[u.createElementVNode("button",{type:"button",class:"chat-sender__voice-menu-option",onClick:j[12]||(j[12]=(...AA)=>u.unref(ut)&&u.unref(ut)(...AA))},[u.createElementVNode("div",tdA,[u.createVNode(u.unref(Ux)),j[20]||(j[20]=u.createElementVNode("span",{class:"chat-sender__voice-menu-option-label"},"长按录音",-1))]),u.createElementVNode("label",{class:"chat-sender__voice-menu-switch",onClick:j[11]||(j[11]=u.withModifiers(()=>{},["stop"]))},[u.createElementVNode("input",{type:"checkbox",checked:u.unref(FA),onChange:j[10]||(j[10]=(...AA)=>u.unref(ut)&&u.unref(ut)(...AA))},null,40,rdA),j[21]||(j[21]=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":Un.value}])},[u.createElementVNode("button",{type:"button",class:u.normalizeClass(["chat-sender__action-button",Wr.value?"chat-sender__stop-button":"chat-sender__send-button"]),disabled:!Wr.value&&r.disabled,"aria-label":Wr.value?"停止生成":"发送消息",onClick:j[14]||(j[14]=AA=>Wr.value?Ot():Ge())},[u.createElementVNode("span",idA,[u.createElementVNode("img",{src:u.unref(phA),alt:"",class:u.normalizeClass(["chat-sender__send-icon",{"chat-sender__action-icon--active":!Wr.value}])},null,10,adA),u.createVNode(u.unref(TR),{size:14,fill:"currentColor",class:u.normalizeClass(["chat-sender__stop-icon",{"chat-sender__action-icon--active":Wr.value}])},null,8,["class"])])],10,ndA)],2)])])])])],32),u.createElementVNode("input",{ref_key:"fileInputRef",ref:C,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:On},null,544)],38))}}),qx=Be(sdA,[["__scopeId","data-v-995d50a3"]]),ldA={class:"chat-empty",role:"status"},gdA={class:"chat-empty__title"},cdA={class:"chat-empty__description"},udA=u.defineComponent({name:"EmptyState",__name:"EmptyState",props:{title:{default:"等待消息"},description:{default:"将对话数据传入组件后会显示在这里。"}},setup(e){return(A,t)=>(u.openBlock(),u.createElementBlock("div",ldA,[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",gdA,u.toDisplayString(e.title),1),u.createElementVNode("p",cdA,u.toDisplayString(e.description),1)]))}}),Px=Be(udA,[["__scopeId","data-v-27943bfd"]]),CdA=["aria-label"],hdA=["aria-labelledby"],IdA={class:"ask-form__header"},ddA={class:"ask-form__heading"},fdA={key:0,class:"ask-form__eyebrow"},BdA=["id"],QdA={class:"ask-form__body","data-question-scroll":"true"},pdA=["role","aria-label","aria-multiselectable"],EdA=["aria-selected","aria-label","onClick"],mdA={key:1,class:"ask-form__number","aria-hidden":"true"},vdA={class:"ask-form__option-copy"},ydA={class:"ask-form__option-line"},wdA={class:"ask-form__label"},DdA={key:0,class:"ask-form__badge"},kdA={key:1,class:"ask-form__description"},bdA={class:"ask-form__number","aria-hidden":"true"},SdA={class:"ask-form__footer"},NdA={class:"ask-form__pager","aria-label":"问题导航"},FdA=["disabled"],xdA={class:"ask-form__progress","data-testid":"ask-form-progress","aria-live":"polite"},_dA=["disabled"],MdA=["aria-label","disabled"],RdA=u.defineComponent({name:"AskUserForm",__name:"AskUserForm",props:{node:{},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,n=u.ref(!1),i=u.ref(""),a=u.ref([]),o=u.ref(!1),s=u.computed(()=>String(t.node.props.question??"")),l=u.computed(()=>{const eA=t.node.props.header;return typeof eA=="string"?eA.trim():""}),g=u.computed(()=>String(t.node.props.id??t.node.id)),c=u.computed(()=>t.node.props.multiple===!0),h=u.computed(()=>t.node.props.required!==!1),C=u.computed(()=>!h.value),I=u.computed(()=>t.questionCount>1),d=u.computed(()=>!I.value||C.value),f=u.computed(()=>t.questionIndex===t.questionCount-1),B=u.computed(()=>t.questionIndex>0),Q=u.computed(()=>t.questionIndex<t.questionCount-1),p=u.computed(()=>c.value),E=u.computed(()=>I.value&&!f.value?"确认":"提交"),m=u.computed(()=>!!(a.value.length===0||I.value&&f.value&&!t.groupCanSubmit)),v=u.computed(()=>o.value||i.value.trim().length>0),w=u.computed(()=>t.node.children.filter(eA=>eA.kind==="component"&&eA.tag==="ask-option"&&eA.complete));function k(eA){return String(eA.props.value)}function N(eA){const uA=w.value.find(bA=>k(bA)===eA);return uA?String(uA.props.label??eA):eA}function b(eA){const uA=eA.props.description;return typeof uA=="string"?uA:""}function S(eA){const uA=/\s*(?:\((?:recommended|推荐)\)|((?:recommended|推荐)))\s*$/i;return uA.test(eA)?{label:eA.replace(uA,""),recommended:!0}:{label:eA,recommended:!1}}function _(eA){return a.value.includes(eA)}function F(){if(a.value.length===0)return null;const eA=a.value.map(N);return{value:a.value.join(", "),label:eA.join(", ")}}function R(){r("answerChange",F())}function G(){if(I.value){if(Q.value){r("next");return}r("submitGroup")}}function O(eA,uA){if(I.value){r("answerChange",{value:eA,label:uA});return}n.value||(n.value=!0,r("action",{type:"submit",value:eA,label:uA,source:"ask-form",formId:g.value,question:s.value}))}function J(eA,uA){if(c.value){H(eA);return}if(i.value="",I.value){a.value=[eA],R(),G();return}O(eA,uA)}function H(eA){a.value.includes(eA)?a.value=a.value.filter(uA=>uA!==eA):a.value=[...a.value,eA],I.value&&R()}function X(){const eA=i.value.trim();if(c.value&&eA&&(a.value.includes(eA)||(a.value=[...a.value,eA]),i.value=""),a.value.length===0)return;const uA=a.value.map(N);if(I.value){r("answerChange",{value:a.value.join(", "),label:uA.join(", ")}),G();return}O(a.value.join(", "),uA.join(", "))}function W(){!c.value&&i.value.trim()&&(a.value=[]),I.value&&c.value&&R()}function K(){const eA=i.value.trim();if(eA){if(c.value){a.value.includes(eA)||(a.value=[...a.value,eA]),i.value="",I.value&&R();return}if(I.value){a.value=[eA],R(),G();return}O(eA,eA)}}function aA(){if(d.value){if(a.value=[],i.value="",I.value){r("answerChange",{value:"",label:"跳过",skipped:!0}),G();return}n.value||(n.value=!0,r("dismiss"))}}function tA(){n.value||(n.value=!0,r("dismiss"))}function nA(){p.value&&X()}return(eA,uA)=>n.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":s.value},[u.createElementVNode("section",{class:"ask-form__card","aria-labelledby":`ask-form-title-${g.value}`},[u.createElementVNode("header",IdA,[u.createElementVNode("div",ddA,[l.value?(u.openBlock(),u.createElementBlock("div",fdA,u.toDisplayString(l.value),1)):u.createCommentVNode("",!0),u.createElementVNode("div",{id:`ask-form-title-${g.value}`,class:"ask-form__question",role:"heading","aria-level":"2"},u.toDisplayString(s.value),9,BdA)]),u.createElementVNode("button",{type:"button",class:"ask-form__icon-btn","aria-label":"放弃整组问题",title:"放弃整组问题",onClick:tA},[u.createVNode(u.unref(dM),{size:16})])]),u.createElementVNode("div",QdA,[u.createElementVNode("div",{class:"ask-form__options",role:c.value?"group":"listbox","aria-label":s.value,"aria-multiselectable":c.value||void 0},[(u.openBlock(!0),u.createElementBlock(u.Fragment,null,u.renderList(w.value,(bA,VA)=>(u.openBlock(),u.createElementBlock("button",{key:k(bA),type:"button",role:"option",class:u.normalizeClass(["ask-form__option",{"is-selected":_(k(bA))&&!c.value}]),"aria-selected":_(k(bA)),"aria-label":S(String(bA.props.label??"")).label,onClick:KA=>J(k(bA),String(bA.props.label??""))},[c.value?(u.openBlock(),u.createElementBlock("span",{key:0,class:u.normalizeClass(["ask-form__checkbox",{"is-checked":_(k(bA))}]),"aria-hidden":"true"},[_(k(bA))?(u.openBlock(),u.createBlock(u.unref(lM),{key:0,size:12})):u.createCommentVNode("",!0)],2)):(u.openBlock(),u.createElementBlock("span",mdA,u.toDisplayString(VA+1),1)),u.createElementVNode("span",vdA,[u.createElementVNode("span",ydA,[u.createElementVNode("span",wdA,u.toDisplayString(S(String(bA.props.label??"")).label),1),S(String(bA.props.label??"")).recommended?(u.openBlock(),u.createElementBlock("span",DdA," 推荐 ")):u.createCommentVNode("",!0),b(bA)?(u.openBlock(),u.createElementBlock("span",kdA,u.toDisplayString(b(bA)),1)):u.createCommentVNode("",!0)])])],10,EdA))),128)),u.createElementVNode("div",{class:u.normalizeClass(["ask-form__other",{"is-active":v.value}]),"data-testid":"ask-form-other"},[u.createElementVNode("span",bdA,[u.createVNode(u.unref(Ep),{size:12})]),u.withDirectives(u.createElementVNode("input",{"onUpdate:modelValue":uA[0]||(uA[0]=bA=>i.value=bA),type:"text",class:"ask-form__other-input",placeholder:"输入你的答案","aria-label":"输入你的答案",onFocus:uA[1]||(uA[1]=bA=>o.value=!0),onBlur:uA[2]||(uA[2]=bA=>o.value=!1),onInput:W,onKeyup:u.withKeys(K,["enter"])},null,544),[[u.vModelText,i.value]])],2)],8,pdA)]),u.createElementVNode("footer",SdA,[u.createElementVNode("div",NdA,[u.createElementVNode("button",{type:"button",class:"ask-form__icon-btn","aria-label":"上一题",title:"上一题",disabled:!B.value,onClick:uA[3]||(uA[3]=bA=>r("previous"))},[u.createVNode(u.unref(hM),{size:14})],8,FdA),u.createElementVNode("span",xdA,u.toDisplayString(e.questionIndex+1)+" / "+u.toDisplayString(e.questionCount),1),u.createElementVNode("button",{type:"button",class:"ask-form__icon-btn","aria-label":"下一题",title:"下一题",disabled:!Q.value,onClick:uA[4]||(uA[4]=bA=>r("next"))},[u.createVNode(u.unref(IM),{size:14})],8,_dA)]),uA[5]||(uA[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":I.value&&c.value}])},[d.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","aria-label":"跳过本题",title:"跳过本题",onClick:aA}," 跳过本题 ")):u.createCommentVNode("",!0),p.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","aria-label":E.value,disabled:m.value,onClick:nA},u.toDisplayString(E.value),9,MdA)):u.createCommentVNode("",!0)],2)])],8,hdA)],8,CdA))}}),LdA=Be(RdA,[["__scopeId","data-v-7bcc3f5c"]]),GdA=512*1024,TdA=new Set(["session","end"]),YdA="response.ga.done",UdA=new Set(["response.completed","response.incomplete","response.failed","response.ga.done","error"]),JdA=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 dt extends Error{constructor(A,t,r){super(t?`${t}: ${A}`:A),this.name="ResponseStreamProtocolError",this.code=t,this.status=r}}async function OdA(e,A){var w,k,N,b,S,_;if((w=A.signal)!=null&&w.aborted)return{status:"aborted",response:null};const t=await e;if(!t.ok)throw new dt(`Responses request failed with HTTP ${t.status}${t.statusText?` ${t.statusText}`:""}`,void 0,t.status);if(!t.body)throw new dt("Responses SSE body is missing");const r=t.body.getReader(),n=new TextDecoder("utf-8",{fatal:!0}),i=new ZdA,a=[];let o=0,s=null,l=null;const g=new Map;let c=null,h=null;const C=()=>{r.cancel().catch(()=>{})};(k=A.signal)==null||k.addEventListener("abort",C,{once:!0});const I=F=>o+Ki(F,"output_index"),d=()=>{const F=Ip(a);a.splice(0,a.length,...F),o=a.length},f=F=>{a.splice(o,Math.max(0,a.length-o),...og(F)),j5(a)},B=()=>{const F=s,R=F?{...F,output:Ip(a)}:null;A.onUpdate(Wx(a),R)},Q=(F,R)=>{var G,O,J;switch(F.type){case"response.created":d(),s=Bp(F.response),(G=s.output)!=null&&G.length&&f(s.output);break;case"response.in_progress":s=Bp(F.response),(O=s.output)!=null&&O.length&&f(s.output);break;case"response.output_item.added":{const H=I(F.output_index);a[H]=og(tb(F.item));break}case"response.output_item.done":{const H=I(F.output_index),X=tb(F.item);a[H]=og(F.resource_files!==void 0?{...X,resource_files:F.resource_files}:X);break}case"response.content_part.added":case"response.content_part.done":{const H=dp(a,I(F.output_index),F.item_id),X=Ki(F.content_index,"content_index");H.content[X]=og(m0(F.part,"part"));break}case"response.output_text.delta":{const H=dp(a,I(F.output_index),F.item_id),X=Ki(F.content_index,"content_index"),W=Ab(H,X);W.text+=rn(F.delta,"delta");break}case"response.output_text.done":{const H=dp(a,I(F.output_index),F.item_id),X=Ki(F.content_index,"content_index"),W=Ab(H,X);W.text=rn(F.text,"text");break}case"response.reasoning_summary_part.added":case"response.reasoning_summary_part.done":{const H=fp(a,I(F.output_index),F.item_id),X=Ki(F.summary_index,"summary_index");(H.summary??(H.summary=[]))[X]=og(m0(F.part,"part"));break}case"response.reasoning_summary_text.delta":{const H=fp(a,I(F.output_index),F.item_id),X=Ki(F.summary_index,"summary_index"),W=eb(H,X);W.text+=rn(F.delta,"delta");break}case"response.reasoning_summary_text.done":{const H=fp(a,I(F.output_index),F.item_id),X=Ki(F.summary_index,"summary_index"),W=eb(H,X);W.text=rn(F.text,"text");break}case"response.function_call_arguments.delta":{const H=$5(a,I(F.output_index),F.item_id);H.arguments+=rn(F.delta,"delta");break}case"response.function_call_arguments.done":{const H=$5(a,I(F.output_index),F.item_id);H.arguments=rn(F.arguments,"arguments");break}case"response.completed":case"response.incomplete":case"response.failed":{s=Bp(F.response),s.output&&f(s.output),F.type==="response.completed"?c="completed":F.type==="response.incomplete"&&(c="incomplete");break}case"response.ga.done":h=c??"completed";break}if(j5(a),B(),(J=A.onEvent)==null||J.call(A,F,R),F.type==="response.failed"){const H=F.response.error;throw new dt((H==null?void 0:H.message)||"Responses stream failed",(H==null?void 0:H.code)??void 0)}if(F.type==="error")throw new dt(F.message||"Responses stream failed",F.code??void 0)},p=()=>{const F=[...g.keys()].sort((R,G)=>R-G);for(const R of F){const G=g.get(R);G&&(g.delete(R),Q(G.event,G.frame),l=R+1)}},E=()=>{if(l!==null)for(;g.has(l);){const F=g.get(l);if(!F)break;g.delete(l),Q(F.event,F.frame),l+=1}},m=(F,R)=>{const G=F.sequence_number;if(!(typeof G=="number"&&Number.isSafeInteger(G)&&G>=0)){p(),Q(F,R);return}if(F.type==="response.created")p(),l=G;else if(l===null)l=G;else if(G<l)return;g.set(G,{event:F,frame:R}),E(),UdA.has(F.type)&&g.size>0&&p()},v=F=>{const R=VdA(F);R&&m(R,F)};try{for(;!h;){const F=await r.read();if((N=A.signal)!=null&&N.aborted)return{status:"aborted",response:s};if(F.done)break;const R=n.decode(F.value,{stream:!0});for(const G of i.push(R))if(v(G),h)break}if(!h&&!((b=A.signal)!=null&&b.aborted)){const F=n.decode();for(const R of i.push(F))if(v(R),h)break;if(!h){for(const R of i.finish())if(v(R),h)break}}if(!h&&g.size>0&&p(),(S=A.signal)!=null&&S.aborted)return{status:"aborted",response:s};if(!h)throw new dt("Responses SSE ended before response.ga.done");return r.cancel().catch(()=>{}),{status:h,response:s?Object.assign({},s,{output:Ip(a)}):null}}finally{(_=A.signal)==null||_.removeEventListener("abort",C),r.releaseLock()}}function HdA(e){let A=0,t=0,r=!1,n=!1;for(const i of e){if(i.type==="reasoning"){A+=1,r&&(n=!0);continue}if(i.type==="tool_calls"){r&&(n=!0);continue}t+=1,r=!0}return A>1||t>1||n}function Wx(e){var o,s;let A="",t="",r="";const n=[],i=[],a=[];for(const l of e){const g=l.resource_files;if(g&&typeof g=="object"&&i.push(g),zx(l)){let c="";for(const h of l.content)h.type==="output_text"&&typeof h.text=="string"&&(c+=h.text);if(A+=c,c){const h=a.at(-1);(h==null?void 0:h.type)==="content"?h.content+=c:a.push({type:"content",content:c})}continue}if(Xx(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(""),h=(s=l.content)==null?void 0:s.filter(I=>I.type==="reasoning_text"&&typeof I.text=="string").map(I=>I.text).join(""),C=c||h||"";t+=C,r+=typeof l.encrypted_content=="string"?l.encrypted_content:"",a.push({type:"reasoning",content:C});continue}if(jx(l)){const c={id:l.call_id,type:"function",function:{name:l.name,arguments:l.arguments}};n.push(c);const h=a.at(-1);(h==null?void 0:h.type)==="tool_calls"?h.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}:{},...n.length?{tool_calls:n}:{},...i.length?{resource_files:i}:{},...HdA(a)?{steps:a}:{}}}function VdA(e){if(e.event!==void 0&&TdA.has(e.event))return null;const A=e.data.trim();if(!A)throw new dt("Responses SSE data frame is empty");if(A==="[DONE]")throw new dt("[DONE] is not valid in a Responses SSE stream");let t;try{t=JSON.parse(A)}catch{const i=A.length>180?`${A.slice(0,180)}…`:A;throw new dt(`Responses SSE data is not valid JSON (frame id=${e.id??"none"}, event=${e.event??"none"}, ${A.length} chars): ${i}`)}const r=m0(t,"event data"),n=rn(r.type,"type");if(!JdA.has(n))throw new dt(`Unsupported Responses SSE event type: ${n}`);if(e.event!==void 0&&e.event!==n)throw new dt(`SSE event field ${e.event} does not match payload type ${n}`);return n===YdA&&rn(r.session_id,"session_id"),r}function j5(e){var n;const A=Wx(e),t=(n=A.tool_calls)==null?void 0:n.map(i=>`${i.function.name}${i.function.arguments}`).join("");if(new TextEncoder().encode(`${A.content??""}${A.reasoning_content??""}${t??""}`).byteLength>GdA)throw new dt("Responses stream content exceeded the 512 KB limit")}function Ip(e){return e.filter(A=>A!==void 0)}function dp(e,A,t){const r=Ki(A,"output_index"),n=e[r];if(!n||!zx(n))throw new dt(`Output item ${r} is not a message`);return $1(n,t),Array.isArray(n.content)||(n.content=[]),n}function fp(e,A,t){const r=Ki(A,"output_index"),n=e[r];if(!n||!Xx(n))throw new dt(`Output item ${r} is not reasoning`);return $1(n,t),n}function $5(e,A,t){const r=Ki(A,"output_index"),n=e[r];if(!n||!jx(n))throw new dt(`Output item ${r} is not a function_call`);return $1(n,t),n}function Ab(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 dt(`Content part ${A} is not output_text`);return t}function eb(e,A){const t=e.summary??(e.summary=[]),r=t[A];if(r===void 0){const n={type:"summary_text",text:""};return t[A]=n,n}if(r.type!=="summary_text")throw new dt(`Reasoning summary part ${A} is invalid`);return typeof r.text!="string"&&(r.text=""),r}function $1(e,A){const t=rn(A,"item_id");if(e.id!==void 0&&e.id!==t)throw new dt(`SSE item_id ${t} does not match output item id ${e.id}`)}function zx(e){return e.type==="message"&&Array.isArray(e.content)}function Xx(e){return e.type==="reasoning"}function jx(e){return e.type==="function_call"}function Bp(e){const A=m0(e,"response");if(A.object!=="response")throw new dt('Response object must have object: "response"');if(rn(A.id,"response.id"),rn(A.model,"response.model"),!Number.isFinite(A.created_at))throw new dt("response.created_at must be a number");if(A.output===null&&(A.output=[]),A.output!==void 0&&!Array.isArray(A.output))throw new dt("response.output must be an array");return og(A)}function tb(e){const A=m0(e,"item");if(rn(A.type,"item.type"),A.type==="message"){if(A.content===void 0&&(A.content=[]),!Array.isArray(A.content))throw new dt("message.content must be an array");if(A.role!=="assistant")throw new dt("Responses output message role must be assistant")}return A.type==="function_call"&&(rn(A.call_id,"function_call.call_id"),rn(A.name,"function_call.name"),A.arguments===void 0&&(A.arguments=""),rn(A.arguments,"function_call.arguments")),A}function m0(e,A){if(typeof e!="object"||e===null||Array.isArray(e))throw new dt(`${A} must be an object`);return e}function rn(e,A){if(typeof e!="string")throw new dt(`${A} must be a string`);return e}function Ki(e,A){if(!Number.isSafeInteger(e)||e<0)throw new dt(`${A} must be a non-negative safe integer`);return e}function og(e){return JSON.parse(JSON.stringify(e))}class ZdA{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(`
|
|
626
|
+
`),Jn();return}T.isComposing||B.value||(T.preventDefault(),Ge())}}function Ge(){if(!Cn.value||r.disabled)return;const T=Dd(k.value,f.value);Qi.value=!0,n("send",T),zr(),P.clear(),u.nextTick(()=>{var j;(j=l.value)==null||j.focus()})}function Ot(){Qi.value=!1,n("stop")}function zr(){l.value&&(l.value.innerHTML=""),qe(),m.value="",k.value="",v.clear(),w=new Set,E=null,lA()}function er(){var T;(T=C.value)==null||T.click()}function On(T){const j=T.target;if(j.files&&j.files.length>0){const AA=Array.from(j.files);rt(AA)}j.value=""}function rt(T){P.addFiles(T)}A({addFiles:rt});const ee=u.inject(Vx,null);let be;const Y=u.ref(!1);let yA=0;function ZA(){return r.enableFileDrop&&r.showAttachment&&!r.disabled}function Se(){yA=0,Y.value=!1}function Pe(T){!ZA()||!Fg(T)||(T.preventDefault(),T.stopPropagation(),yA+=1,Y.value=!0)}function Yr(T){!ZA()||!Fg(T)||(T.preventDefault(),T.stopPropagation(),T.dataTransfer&&(T.dataTransfer.dropEffect="copy"),Y.value=!0)}function Hn(T){!ZA()||!Fg(T)||(T.stopPropagation(),yA=Math.max(0,yA-1),yA===0&&(Y.value=!1))}function zo(T){if(!ZA())return;T.preventDefault(),T.stopPropagation(),Se();const j=vd(T.dataTransfer);j.length>0&&rt(j)}u.watch(()=>[r.disabled,r.showAttachment,r.enableFileDrop],()=>{ZA()||Se()});function Xo(T){P.remove(T)}function wr(T){P.retry(T)}function pi(T){return T.status==="uploaded"?T.resource.filename:T.file.name}function H0(T){const j=pi(T);return ll(j)||"file"}function s_(T){return T.status==="uploaded"?Vu({name:T.resource.filename,type:""})==="image":Vu(T.file)==="image"}function l_(T){return T.previewUrl?T.previewUrl:T.status==="uploaded"?Ws(T.resource.original_url,{width:odA}):""}function Tf(T){return T.status==="uploading"?`上传中 ${T.progress}%`:T.status==="error"?T.error.message:g_(T.resource.size)}function g_(T){return T<1024?`${T} B`:T<1024*1024?`${(T/1024).toFixed(1)} KB`:`${(T/(1024*1024)).toFixed(1)} MB`}function c_(){nA.value=!nA.value,nA.value?(XA(),n("attachment-menu-open")):n("attachment-menu-close")}function u_(){er(),nA.value=!1}function C_(){const T=typeof navigator>"u"?void 0:navigator.mediaDevices;T&&"getDisplayMedia"in T?h_():n("screenshot"),nA.value=!1}async function h_(){try{const T=typeof navigator>"u"?void 0:navigator.mediaDevices;if(!(T!=null&&T.getDisplayMedia)){n("screenshot");return}const j=await T.getDisplayMedia({video:!0}),AA=document.createElement("video");AA.srcObject=j,AA.autoplay=!0,await new Promise(oe=>{AA.onloadedmetadata=oe}),await new Promise(oe=>setTimeout(oe,100));const wA=document.createElement("canvas");wA.width=AA.videoWidth,wA.height=AA.videoHeight;const $A=wA.getContext("2d");$A&&($A.drawImage(AA,0,0),j.getTracks().forEach(oe=>oe.stop()),wA.toBlob(oe=>{if(oe){const Je=new File([oe],`screenshot-${Date.now()}.png`,{type:"image/png"});rt([Je])}},"image/png"))}catch(T){console.error("截图失败:",T),n("screenshot")}}function I_(T){n("menu-item-click",T),nA.value=!1}function d_(T){uA.value=T.id,n("quick-action-select",T),u.nextTick(()=>{var j;return(j=l.value)==null?void 0:j.focus()})}function f_(){uA.value=null,n("quick-action-clear"),u.nextTick(()=>{var T;return(T=l.value)==null?void 0:T.focus()})}function e2(T){const j=T.target;KA.value&&!j.closest(".chat-sender__voice-wrapper")&&!j.closest(".chat-sender__voice-menu")&&XA(),nA.value&&!j.closest(".chat-sender__attachment-wrapper")&&(nA.value=!1)}return u.onMounted(()=>{document.addEventListener("click",e2),document.addEventListener("selectionchange",gA),window.addEventListener("resize",J),window.addEventListener("scroll",J,!0),window.addEventListener("resize",Wt),window.addEventListener("scroll",Wt,!0),ee&&r.showAttachment&&(be=ee.register(rt))}),u.onUnmounted(()=>{document.removeEventListener("click",e2),document.removeEventListener("selectionchange",gA),window.removeEventListener("resize",J),window.removeEventListener("scroll",J,!0),window.removeEventListener("resize",Wt),window.removeEventListener("scroll",Wt,!0),mt(),qe(),be==null||be(),be=void 0,Se(),P.dispose()}),(T,j)=>(u.openBlock(),u.createElementBlock("div",{ref_key:"rootRef",ref:g,class:u.normalizeClass(["chat-sender",{"chat-sender--focused":tA.value,"chat-sender--disabled":r.disabled,"chat-sender--mode-active":bA.value,"chat-sender--drag-over":Y.value}]),style:u.normalizeStyle(K.value),onFocusin:fc,onFocusout:Bc,onDragenter:Pe,onDragover:Yr,onDragleave:Hn,onDrop:zo},[u.createElementVNode("div",{class:"chat-sender__inner",onMousedown:Wo,onClick:Rt},[Y.value?(u.openBlock(),u.createBlock(Ox,{key:0})):u.createCommentVNode("",!0),f.value.length>0?(u.openBlock(),u.createElementBlock("div",oIA,[(u.openBlock(!0),u.createElementBlock(u.Fragment,null,u.renderList(f.value,AA=>(u.openBlock(),u.createElementBlock("div",{key:AA.id,class:u.normalizeClass(["chat-sender__file-thumbnail",`chat-sender__file-thumbnail--${AA.status}`])},[s_(AA)?(u.openBlock(),u.createElementBlock("button",{key:0,type:"button",class:"chat-sender__file-card chat-sender__file-card--image","aria-label":`${pi(AA)}, ${Tf(AA)}`},[u.createElementVNode("img",{src:l_(AA),alt:pi(AA),class:"chat-sender__file-image"},null,8,lIA)],8,sIA)):(u.openBlock(),u.createElementBlock("button",{key:1,type:"button",class:"chat-sender__file-card","aria-label":`${pi(AA)}, ${H0(AA)}, ${Tf(AA)}`},[u.createElementVNode("img",{class:"chat-sender__file-type-icon",src:u.unref(Lm)(pi(AA)),alt:"","aria-hidden":"true"},null,8,cIA),u.createElementVNode("div",uIA,[u.createElementVNode("h3",CIA,u.toDisplayString(pi(AA)),1),u.createElementVNode("p",hIA,u.toDisplayString(Tf(AA)),1)]),u.createElementVNode("div",IIA,[u.createElementVNode("div",dIA,[u.createElementVNode("p",fIA,u.toDisplayString(H0(AA)),1)])])],8,gIA)),AA.status==="uploading"?(u.openBlock(),u.createElementBlock("div",{key:2,class:"chat-sender__file-progress",role:"progressbar","aria-label":`${pi(AA)} 上传进度`,"aria-valuemin":"0","aria-valuemax":"100","aria-valuenow":AA.progress},[u.createElementVNode("span",{style:u.normalizeStyle({width:`${AA.progress}%`})},null,4)],8,BIA)):u.createCommentVNode("",!0),AA.status==="error"?(u.openBlock(),u.createElementBlock("button",{key:3,type:"button",class:"chat-sender__file-retry-btn","aria-label":`重试上传 ${pi(AA)}`,onClick:wA=>wr(AA.id)},[u.createVNode(u.unref(MR),{size:14,"stroke-width":1.75,"aria-hidden":"true"})],8,QIA)):u.createCommentVNode("",!0),u.createElementVNode("button",{type:"button",class:"chat-sender__file-remove-btn","aria-label":`移除 ${pi(AA)}`,onClick:wA=>Xo(AA.id)},[u.createVNode(u.unref(xg),{size:14,"stroke-width":1.75,"aria-hidden":"true"})],8,pIA)],2))),128))])):u.createCommentVNode("",!0),u.unref(Fe)?(u.openBlock(),u.createElementBlock("p",EIA,u.toDisplayString(u.unref(Fe)),1)):u.createCommentVNode("",!0),u.createElementVNode("div",mIA,[u.createElementVNode("div",vIA,[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(HA)?"false":"true","data-placeholder":u.unref(HA)?"正在聆听...":VA.value,style:u.normalizeStyle({maxHeight:`${F.value}px`}),role:"textbox","aria-multiline":"true","aria-label":"输入消息","aria-haspopup":"listbox","aria-expanded":Q.value!==null,onInput:Jn,onKeydown:ne,onCompositionstart:ml,onCompositionend:vl,onPaste:yl,onCopy:hA,onCut:RA,onClick:dr},null,46,yIA),(u.openBlock(),u.createBlock(u.Teleport,{to:"body"},[u.createVNode(u.Transition,{name:"attachment-menu"},{default:u.withCtx(()=>[Q.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(G.value),onMousedown:j[0]||(j[0]=u.withModifiers(()=>{},["prevent"]))},[u.renderSlot(T.$slots,"trigger-menu",{triggerId:Q.value.triggerId,query:Q.value.query,select:WA,close:pA,anchorRect:R.value},void 0,!0)],38)):u.createCommentVNode("",!0)]),_:3})]))]),u.createElementVNode("div",wIA,[u.createElementVNode("div",DIA,[r.showAttachment?(u.openBlock(),u.createElementBlock("div",kIA,[u.createElementVNode("button",{type:"button",class:u.normalizeClass(["chat-sender__icon-button",{"chat-sender__icon-button--active":nA.value}]),disabled:r.disabled,"aria-label":"添加附件","aria-haspopup":"menu","aria-expanded":nA.value,onClick:u.withModifiers(c_,["stop"])},[u.createVNode(u.unref(Gx),{size:18})],10,bIA),u.createVNode(u.Transition,{name:"attachment-menu"},{default:u.withCtx(()=>[nA.value?(u.openBlock(),u.createElementBlock("div",{key:0,class:"chat-sender__attachment-menu",role:"menu",onClick:j[1]||(j[1]=u.withModifiers(()=>{},["stop"]))},[u.createElementVNode("button",{type:"button",role:"menuitem",class:"chat-sender__attachment-menu-item",onClick:u_},[u.createVNode(u.unref(Jx),{size:18}),j[15]||(j[15]=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:C_},[...j[16]||(j[16]=[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",SIA)):u.createCommentVNode("",!0),(u.openBlock(!0),u.createElementBlock(u.Fragment,null,u.renderList(r.customMenuItems,AA=>(u.openBlock(),u.createElementBlock("button",{key:AA.id,type:"button",role:"menuitem",class:"chat-sender__attachment-menu-item",disabled:AA.disabled,onClick:wA=>I_(AA.id)},[(u.openBlock(),u.createBlock(u.resolveDynamicComponent(AA.icon))),u.createElementVNode("span",null,u.toDisplayString(AA.label),1)],8,NIA))),128))])):u.createCommentVNode("",!0)]),_:1})])):u.createCommentVNode("",!0),S.value?(u.openBlock(),u.createElementBlock("span",FIA)):u.createCommentVNode("",!0),(u.openBlock(!0),u.createElementBlock(u.Fragment,null,u.renderList(b.value,AA=>(u.openBlock(),u.createElementBlock("button",{key:AA.id,type:"button",class:"chat-sender__icon-button",disabled:r.disabled,"aria-label":AA.button.label,onMousedown:j[2]||(j[2]=u.withModifiers(()=>{},["prevent"])),onClick:wA=>QA(AA)},[AA.button.icon?(u.openBlock(),u.createBlock(u.resolveDynamicComponent(AA.button.icon),{key:0,size:18,"stroke-width":1.75,"aria-hidden":"true"})):(u.openBlock(),u.createElementBlock("span",_IA,u.toDisplayString(AA.char),1))],40,xIA))),128)),r.quickActions.length>0?(u.openBlock(),u.createElementBlock(u.Fragment,{key:2},[_.value?(u.openBlock(),u.createElementBlock("span",MIA)):u.createCommentVNode("",!0),bA.value?(u.openBlock(),u.createElementBlock("div",GIA,[bA.value.icon?(u.openBlock(),u.createBlock(u.resolveDynamicComponent(bA.value.icon),{key:0,size:14,"stroke-width":1.75,"aria-hidden":"true"})):u.createCommentVNode("",!0),u.createElementVNode("span",null,u.toDisplayString(bA.value.label),1),u.createElementVNode("button",{type:"button",class:"chat-sender__quick-action-remove","aria-label":"退出该模式",onClick:f_},[u.createVNode(u.unref(xg),{size:14,"stroke-width":2,"aria-hidden":"true"})])])):(u.openBlock(),u.createElementBlock("div",RIA,[(u.openBlock(!0),u.createElementBlock(u.Fragment,null,u.renderList(r.quickActions,AA=>(u.openBlock(),u.createElementBlock("button",{key:AA.id,type:"button",class:"chat-sender__quick-action",disabled:r.disabled,onClick:wA=>d_(AA)},[AA.icon?(u.openBlock(),u.createBlock(u.resolveDynamicComponent(AA.icon),{key:0,size:14,"stroke-width":1.75,"aria-hidden":"true"})):u.createCommentVNode("",!0),u.createElementVNode("span",null,u.toDisplayString(AA.label),1)],8,LIA))),128))]))],64)):u.createCommentVNode("",!0)]),u.createElementVNode("div",TIA,[u.createElementVNode("div",YIA,[T.$slots["toolbar-before-voice"]?(u.openBlock(),u.createElementBlock("div",UIA,[u.renderSlot(T.$slots,"toolbar-before-voice",{},void 0,!0)])):u.createCommentVNode("",!0),u.createElementVNode("div",{ref_key:"voiceWrapperRef",ref:Jt,class:u.normalizeClass(["chat-sender__voice-wrapper",{"chat-sender__voice-wrapper--unsupported":ke.value,"chat-sender__voice-wrapper--permission-denied":u.unref(iA)}]),title:u.unref(iA)?void 0:_t.value,onMouseenter:Yn,onMouseleave:yr},[u.createElementVNode("div",{class:u.normalizeClass(["chat-sender__voice-group",{"chat-sender__voice-group--menu-open":u.unref(KA)}])},[ke.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(YA)||u.unref(KA)}])},[u.createElementVNode("button",{type:"button",class:u.normalizeClass(["chat-sender__voice-settings",{"chat-sender__voice-settings--active":u.unref(KA)}]),disabled:r.disabled,"aria-label":"麦克风设置",onClick:j[3]||(j[3]=u.withModifiers((...AA)=>u.unref(GA)&&u.unref(GA)(...AA),["stop"]))},[u.createVNode(u.unref(Tx))],10,OIA)],2)),u.createElementVNode("button",{type:"button",class:u.normalizeClass(["chat-sender__voice-button",{"chat-sender__voice-button--recording":u.unref(HA),"chat-sender__voice-button--holding":u.unref(ae),"chat-sender__voice-button--unsupported":ke.value}]),disabled:r.disabled||ke.value,"aria-label":oA.value,onClick:j[4]||(j[4]=(...AA)=>u.unref(we)&&u.unref(we)(...AA)),onMousedown:j[5]||(j[5]=(...AA)=>u.unref(Le)&&u.unref(Le)(...AA)),onMouseup:j[6]||(j[6]=(...AA)=>u.unref(st)&&u.unref(st)(...AA)),onMouseleave:j[7]||(j[7]=(...AA)=>u.unref(xt)&&u.unref(xt)(...AA))},[ke.value?(u.openBlock(),u.createBlock(u.unref(jh),{key:0,size:20})):u.unref(HA)?(u.openBlock(),u.createElementBlock("div",VIA,[(u.openBlock(),u.createElementBlock(u.Fragment,null,u.renderList(aA,(AA,wA)=>u.createElementVNode("span",{key:wA,class:"chat-sender__voice-wave-bar",style:u.normalizeStyle({animationDelay:`${(wA+1)*.1}s`,height:AA})},null,4)),64))])):(u.openBlock(),u.createBlock(u.unref(Fm),{key:1,size:20}))],42,HIA)],2)],42,JIA),(u.openBlock(),u.createBlock(u.Teleport,{to:"body"},[u.createVNode(u.Transition,{name:"voice-menu"},{default:u.withCtx(()=>[CA.value?(u.openBlock(),u.createElementBlock("div",{key:0,ref_key:"micPermissionPopoverRef",ref:lr,class:"chat-sender__mic-permission-popover",role:"dialog","aria-label":"尚未获得麦克风权限",style:u.normalizeStyle($e.value),onClick:j[9]||(j[9]=u.withModifiers(()=>{},["stop"])),onMouseenter:Bi,onMouseleave:Wa},[u.createElementVNode("div",ZIA,[u.createVNode(u.unref(jh)),j[17]||(j[17]=u.createElementVNode("span",{class:"chat-sender__mic-permission-popover-title"},"尚未获得麦克风权限",-1))]),u.createElementVNode("p",KIA,[j[18]||(j[18]=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:j[8]||(j[8]=AA=>n("mic-permission-guide-click"))}," 麦克风权限开启指南 ",8,qIA)):u.createCommentVNode("",!0)]),u.createElementVNode("div",PIA,[u.createVNode(u.unref(jh),{size:48})]),u.createElementVNode("button",{type:"button",class:"chat-sender__mic-permission-popover-dismiss",onClick:ht}," 知道了 ")],36)):u.createCommentVNode("",!0)]),_:1}),u.createVNode(u.Transition,{name:"voice-menu"},{default:u.withCtx(()=>[u.unref(KA)?(u.openBlock(),u.createElementBlock("div",{key:0,ref_key:"voiceMenuRef",ref:Lr,class:"chat-sender__voice-menu",style:u.normalizeStyle(Ct.value),onClick:j[13]||(j[13]=u.withModifiers(()=>{},["stop"]))},[u.createElementVNode("div",WIA,[u.createVNode(u.unref(Fm)),j[19]||(j[19]=u.createElementVNode("span",{class:"chat-sender__voice-menu-title"},"麦克风",-1)),u.createElementVNode("div",zIA,[u.createElementVNode("div",{class:"chat-sender__voice-level-bar",style:u.normalizeStyle({width:`${u.unref(Ie)}%`})},null,4)])]),u.createElementVNode("div",XIA,[u.createElementVNode("div",jIA,[(u.openBlock(!0),u.createElementBlock(u.Fragment,null,u.renderList(u.unref(SA),(AA,wA)=>(u.openBlock(),u.createElementBlock("button",{key:AA.deviceId,type:"button",class:u.normalizeClass(["chat-sender__voice-menu-item",{"chat-sender__voice-menu-item--active":AA.active}]),onClick:$A=>u.unref(Bt)(wA)},[u.createElementVNode("span",AdA,u.toDisplayString(AA.label),1),AA.active?(u.openBlock(),u.createBlock(u.unref(Yx),{key:0,class:"chat-sender__voice-menu-check"})):u.createCommentVNode("",!0)],10,$IA))),128))])]),u.createElementVNode("div",edA,[u.createElementVNode("button",{type:"button",class:"chat-sender__voice-menu-option",onClick:j[12]||(j[12]=(...AA)=>u.unref(ut)&&u.unref(ut)(...AA))},[u.createElementVNode("div",tdA,[u.createVNode(u.unref(Ux)),j[20]||(j[20]=u.createElementVNode("span",{class:"chat-sender__voice-menu-option-label"},"长按录音",-1))]),u.createElementVNode("label",{class:"chat-sender__voice-menu-switch",onClick:j[11]||(j[11]=u.withModifiers(()=>{},["stop"]))},[u.createElementVNode("input",{type:"checkbox",checked:u.unref(FA),onChange:j[10]||(j[10]=(...AA)=>u.unref(ut)&&u.unref(ut)(...AA))},null,40,rdA),j[21]||(j[21]=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":Un.value}])},[u.createElementVNode("button",{type:"button",class:u.normalizeClass(["chat-sender__action-button",Wr.value?"chat-sender__stop-button":"chat-sender__send-button"]),disabled:!Wr.value&&r.disabled,"aria-label":Wr.value?"停止生成":"发送消息",onClick:j[14]||(j[14]=AA=>Wr.value?Ot():Ge())},[u.createElementVNode("span",idA,[u.createElementVNode("img",{src:u.unref(phA),alt:"",class:u.normalizeClass(["chat-sender__send-icon",{"chat-sender__action-icon--active":!Wr.value}])},null,10,adA),u.createVNode(u.unref(TR),{size:14,fill:"currentColor",class:u.normalizeClass(["chat-sender__stop-icon",{"chat-sender__action-icon--active":Wr.value}])},null,8,["class"])])],10,ndA)],2)])])])])],32),u.createElementVNode("input",{ref_key:"fileInputRef",ref:C,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:On},null,544)],38))}}),qx=Be(sdA,[["__scopeId","data-v-995d50a3"]]),ldA={class:"chat-empty",role:"status"},gdA={class:"chat-empty__title"},cdA={class:"chat-empty__description"},udA=u.defineComponent({name:"EmptyState",__name:"EmptyState",props:{title:{default:"等待消息"},description:{default:"将对话数据传入组件后会显示在这里。"}},setup(e){return(A,t)=>(u.openBlock(),u.createElementBlock("div",ldA,[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",gdA,u.toDisplayString(e.title),1),u.createElementVNode("p",cdA,u.toDisplayString(e.description),1)]))}}),Px=Be(udA,[["__scopeId","data-v-27943bfd"]]),CdA=["aria-label"],hdA=["aria-labelledby"],IdA={class:"ask-form__header"},ddA={class:"ask-form__heading"},fdA={key:0,class:"ask-form__eyebrow"},BdA=["id"],QdA={class:"ask-form__body","data-question-scroll":"true"},pdA=["role","aria-label","aria-multiselectable"],EdA=["aria-selected","aria-label","onClick"],mdA={key:1,class:"ask-form__number","aria-hidden":"true"},vdA={class:"ask-form__option-copy"},ydA={class:"ask-form__option-line"},wdA={class:"ask-form__label"},DdA={key:0,class:"ask-form__badge"},kdA={key:1,class:"ask-form__description"},bdA={class:"ask-form__number","aria-hidden":"true"},SdA={class:"ask-form__footer"},NdA={class:"ask-form__pager","aria-label":"问题导航"},FdA=["disabled"],xdA={class:"ask-form__progress","data-testid":"ask-form-progress","aria-live":"polite"},_dA=["disabled"],MdA=["aria-label","disabled"],RdA=u.defineComponent({name:"AskUserForm",__name:"AskUserForm",props:{node:{},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,n=u.ref(!1),i=u.ref(""),a=u.ref([]),o=u.ref(!1),s=u.computed(()=>String(t.node.props.question??"")),l=u.computed(()=>{const eA=t.node.props.header;return typeof eA=="string"?eA.trim():""}),g=u.computed(()=>String(t.node.props.id??t.node.id)),c=u.computed(()=>t.node.props.multiple===!0),h=u.computed(()=>t.node.props.required!==!1),C=u.computed(()=>!h.value),I=u.computed(()=>t.questionCount>1),d=u.computed(()=>!I.value||C.value),f=u.computed(()=>t.questionIndex===t.questionCount-1),B=u.computed(()=>t.questionIndex>0),Q=u.computed(()=>t.questionIndex<t.questionCount-1),p=u.computed(()=>c.value),E=u.computed(()=>I.value&&!f.value?"确认":"提交"),m=u.computed(()=>!!(a.value.length===0||I.value&&f.value&&!t.groupCanSubmit)),v=u.computed(()=>o.value||i.value.trim().length>0),w=u.computed(()=>t.node.children.filter(eA=>eA.kind==="component"&&eA.tag==="ask-option"&&eA.complete));function k(eA){return String(eA.props.value)}function N(eA){const uA=w.value.find(bA=>k(bA)===eA);return uA?String(uA.props.label??eA):eA}function b(eA){const uA=eA.props.description;return typeof uA=="string"?uA:""}function S(eA){const uA=/\s*(?:\((?:recommended|推荐)\)|((?:recommended|推荐)))\s*$/i;return uA.test(eA)?{label:eA.replace(uA,""),recommended:!0}:{label:eA,recommended:!1}}function _(eA){return a.value.includes(eA)}function F(){if(a.value.length===0)return null;const eA=a.value.map(N);return{value:a.value.join(", "),label:eA.join(", ")}}function R(){r("answerChange",F())}function G(){if(I.value){if(Q.value){r("next");return}r("submitGroup")}}function O(eA,uA){if(I.value){r("answerChange",{value:eA,label:uA});return}n.value||(n.value=!0,r("action",{type:"submit",value:eA,label:uA,source:"ask-form",formId:g.value,question:s.value}))}function J(eA,uA){if(c.value){H(eA);return}if(i.value="",I.value){a.value=[eA],R(),G();return}O(eA,uA)}function H(eA){a.value.includes(eA)?a.value=a.value.filter(uA=>uA!==eA):a.value=[...a.value,eA],I.value&&R()}function X(){const eA=i.value.trim();if(c.value&&eA&&(a.value.includes(eA)||(a.value=[...a.value,eA]),i.value=""),a.value.length===0)return;const uA=a.value.map(N);if(I.value){r("answerChange",{value:a.value.join(", "),label:uA.join(", ")}),G();return}O(a.value.join(", "),uA.join(", "))}function W(){!c.value&&i.value.trim()&&(a.value=[]),I.value&&c.value&&R()}function K(){const eA=i.value.trim();if(eA){if(c.value){a.value.includes(eA)||(a.value=[...a.value,eA]),i.value="",I.value&&R();return}if(I.value){a.value=[eA],R(),G();return}O(eA,eA)}}function aA(){if(d.value){if(a.value=[],i.value="",I.value){r("answerChange",{value:"",label:"跳过",skipped:!0}),G();return}n.value||(n.value=!0,r("dismiss"))}}function tA(){n.value||(n.value=!0,r("dismiss"))}function nA(){p.value&&X()}return(eA,uA)=>n.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":s.value},[u.createElementVNode("section",{class:"ask-form__card","aria-labelledby":`ask-form-title-${g.value}`},[u.createElementVNode("header",IdA,[u.createElementVNode("div",ddA,[l.value?(u.openBlock(),u.createElementBlock("div",fdA,u.toDisplayString(l.value),1)):u.createCommentVNode("",!0),u.createElementVNode("div",{id:`ask-form-title-${g.value}`,class:"ask-form__question",role:"heading","aria-level":"2"},u.toDisplayString(s.value),9,BdA)]),u.createElementVNode("button",{type:"button",class:"ask-form__icon-btn","aria-label":"放弃整组问题",title:"放弃整组问题",onClick:tA},[u.createVNode(u.unref(dM),{size:16})])]),u.createElementVNode("div",QdA,[u.createElementVNode("div",{class:"ask-form__options",role:c.value?"group":"listbox","aria-label":s.value,"aria-multiselectable":c.value||void 0},[(u.openBlock(!0),u.createElementBlock(u.Fragment,null,u.renderList(w.value,(bA,VA)=>(u.openBlock(),u.createElementBlock("button",{key:k(bA),type:"button",role:"option",class:u.normalizeClass(["ask-form__option",{"is-selected":_(k(bA))&&!c.value}]),"aria-selected":_(k(bA)),"aria-label":S(String(bA.props.label??"")).label,onClick:KA=>J(k(bA),String(bA.props.label??""))},[c.value?(u.openBlock(),u.createElementBlock("span",{key:0,class:u.normalizeClass(["ask-form__checkbox",{"is-checked":_(k(bA))}]),"aria-hidden":"true"},[_(k(bA))?(u.openBlock(),u.createBlock(u.unref(lM),{key:0,size:12})):u.createCommentVNode("",!0)],2)):(u.openBlock(),u.createElementBlock("span",mdA,u.toDisplayString(VA+1),1)),u.createElementVNode("span",vdA,[u.createElementVNode("span",ydA,[u.createElementVNode("span",wdA,u.toDisplayString(S(String(bA.props.label??"")).label),1),S(String(bA.props.label??"")).recommended?(u.openBlock(),u.createElementBlock("span",DdA," 推荐 ")):u.createCommentVNode("",!0),b(bA)?(u.openBlock(),u.createElementBlock("span",kdA,u.toDisplayString(b(bA)),1)):u.createCommentVNode("",!0)])])],10,EdA))),128)),u.createElementVNode("div",{class:u.normalizeClass(["ask-form__other",{"is-active":v.value}]),"data-testid":"ask-form-other"},[u.createElementVNode("span",bdA,[u.createVNode(u.unref(Ep),{size:12})]),u.withDirectives(u.createElementVNode("input",{"onUpdate:modelValue":uA[0]||(uA[0]=bA=>i.value=bA),type:"text",class:"ask-form__other-input",placeholder:"输入你的答案","aria-label":"输入你的答案",onFocus:uA[1]||(uA[1]=bA=>o.value=!0),onBlur:uA[2]||(uA[2]=bA=>o.value=!1),onInput:W,onKeyup:u.withKeys(K,["enter"])},null,544),[[u.vModelText,i.value]])],2)],8,pdA)]),u.createElementVNode("footer",SdA,[u.createElementVNode("div",NdA,[u.createElementVNode("button",{type:"button",class:"ask-form__icon-btn","aria-label":"上一题",title:"上一题",disabled:!B.value,onClick:uA[3]||(uA[3]=bA=>r("previous"))},[u.createVNode(u.unref(hM),{size:14})],8,FdA),u.createElementVNode("span",xdA,u.toDisplayString(e.questionIndex+1)+" / "+u.toDisplayString(e.questionCount),1),u.createElementVNode("button",{type:"button",class:"ask-form__icon-btn","aria-label":"下一题",title:"下一题",disabled:!Q.value,onClick:uA[4]||(uA[4]=bA=>r("next"))},[u.createVNode(u.unref(IM),{size:14})],8,_dA)]),uA[5]||(uA[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":I.value&&c.value}])},[d.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","aria-label":"跳过本题",title:"跳过本题",onClick:aA}," 跳过本题 ")):u.createCommentVNode("",!0),p.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","aria-label":E.value,disabled:m.value,onClick:nA},u.toDisplayString(E.value),9,MdA)):u.createCommentVNode("",!0)],2)])],8,hdA)],8,CdA))}}),LdA=Be(RdA,[["__scopeId","data-v-7bcc3f5c"]]),GdA=512*1024,TdA=new Set(["session","end"]),YdA="response.ga.done",UdA=new Set(["response.completed","response.incomplete","response.failed","response.ga.done","error"]),JdA=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 dt extends Error{constructor(A,t,r){super(t?`${t}: ${A}`:A),this.name="ResponseStreamProtocolError",this.code=t,this.status=r}}async function OdA(e,A){var w,k,N,b,S,_;if((w=A.signal)!=null&&w.aborted)return{status:"aborted",response:null};const t=await e;if(!t.ok)throw new dt(`Responses request failed with HTTP ${t.status}${t.statusText?` ${t.statusText}`:""}`,void 0,t.status);if(!t.body)throw new dt("Responses SSE body is missing");const r=t.body.getReader(),n=new TextDecoder("utf-8",{fatal:!0}),i=new ZdA,a=[];let o=0,s=null,l=null;const g=new Map;let c=null,h=null;const C=()=>{r.cancel().catch(()=>{})};(k=A.signal)==null||k.addEventListener("abort",C,{once:!0});const I=F=>o+Ki(F,"output_index"),d=()=>{const F=Ip(a);a.splice(0,a.length,...F),o=a.length},f=F=>{a.splice(o,Math.max(0,a.length-o),...og(F)),j5(a)},B=()=>{const F=s,R=F?{...F,output:Ip(a)}:null;A.onUpdate(Wx(a),R)},Q=(F,R)=>{var G,O,J;switch(F.type){case"response.created":d(),s=Bp(F.response),(G=s.output)!=null&&G.length&&f(s.output);break;case"response.in_progress":s=Bp(F.response),(O=s.output)!=null&&O.length&&f(s.output);break;case"response.output_item.added":{const H=I(F.output_index);a[H]=og(tb(F.item));break}case"response.output_item.done":{const H=I(F.output_index),X=tb(F.item);a[H]=og(F.resource_files!==void 0?{...X,resource_files:F.resource_files}:X);break}case"response.content_part.added":case"response.content_part.done":{const H=dp(a,I(F.output_index),F.item_id),X=Ki(F.content_index,"content_index");H.content[X]=og(m0(F.part,"part"));break}case"response.output_text.delta":{const H=dp(a,I(F.output_index),F.item_id),X=Ki(F.content_index,"content_index"),W=Ab(H,X);W.text+=rn(F.delta,"delta");break}case"response.output_text.done":{const H=dp(a,I(F.output_index),F.item_id),X=Ki(F.content_index,"content_index"),W=Ab(H,X);W.text=rn(F.text,"text");break}case"response.reasoning_summary_part.added":case"response.reasoning_summary_part.done":{const H=fp(a,I(F.output_index),F.item_id),X=Ki(F.summary_index,"summary_index");(H.summary??(H.summary=[]))[X]=og(m0(F.part,"part"));break}case"response.reasoning_summary_text.delta":{const H=fp(a,I(F.output_index),F.item_id),X=Ki(F.summary_index,"summary_index"),W=eb(H,X);W.text+=rn(F.delta,"delta");break}case"response.reasoning_summary_text.done":{const H=fp(a,I(F.output_index),F.item_id),X=Ki(F.summary_index,"summary_index"),W=eb(H,X);W.text=rn(F.text,"text");break}case"response.function_call_arguments.delta":{const H=$5(a,I(F.output_index),F.item_id);H.arguments+=rn(F.delta,"delta");break}case"response.function_call_arguments.done":{const H=$5(a,I(F.output_index),F.item_id);H.arguments=rn(F.arguments,"arguments");break}case"response.completed":case"response.incomplete":case"response.failed":{s=Bp(F.response),s.output&&f(s.output),F.type==="response.completed"?c="completed":F.type==="response.incomplete"&&(c="incomplete");break}case"response.ga.done":h=c??"completed";break}if(j5(a),B(),(J=A.onEvent)==null||J.call(A,F,R),F.type==="response.failed"){const H=F.response.error;throw new dt((H==null?void 0:H.message)||"Responses stream failed",(H==null?void 0:H.code)??void 0)}if(F.type==="error")throw new dt(F.message||"Responses stream failed",F.code??void 0)},p=()=>{const F=[...g.keys()].sort((R,G)=>R-G);for(const R of F){const G=g.get(R);G&&(g.delete(R),Q(G.event,G.frame),l=R+1)}},E=()=>{if(l!==null)for(;g.has(l);){const F=g.get(l);if(!F)break;g.delete(l),Q(F.event,F.frame),l+=1}},m=(F,R)=>{const G=F.sequence_number;if(!(typeof G=="number"&&Number.isSafeInteger(G)&&G>=0)){p(),Q(F,R);return}if(F.type==="response.created")p(),l=G;else if(l===null)l=G;else if(G<l)return;g.set(G,{event:F,frame:R}),E(),UdA.has(F.type)&&g.size>0&&p()},v=F=>{const R=VdA(F);R&&m(R,F)};try{for(;!h;){const F=await r.read();if((N=A.signal)!=null&&N.aborted)return{status:"aborted",response:s};if(F.done)break;const R=n.decode(F.value,{stream:!0});for(const G of i.push(R))if(v(G),h)break}if(!h&&!((b=A.signal)!=null&&b.aborted)){const F=n.decode();for(const R of i.push(F))if(v(R),h)break;if(!h){for(const R of i.finish())if(v(R),h)break}}if(!h&&g.size>0&&p(),(S=A.signal)!=null&&S.aborted)return{status:"aborted",response:s};if(!h)throw new dt("Responses SSE ended before response.ga.done");return r.cancel().catch(()=>{}),{status:h,response:s?Object.assign({},s,{output:Ip(a)}):null}}finally{(_=A.signal)==null||_.removeEventListener("abort",C),r.releaseLock()}}function HdA(e){let A=0,t=0,r=!1,n=!1;for(const i of e){if(i.type==="reasoning"){A+=1,r&&(n=!0);continue}if(i.type==="tool_calls"){r&&(n=!0);continue}t+=1,r=!0}return A>1||t>1||n}function Wx(e){var o,s;let A="",t="",r="";const n=[],i=[],a=[];for(const l of e){const g=l.resource_files;if(g&&typeof g=="object"&&i.push(g),zx(l)){let c="";for(const h of l.content)h.type==="output_text"&&typeof h.text=="string"&&(c+=h.text);if(A+=c,c){const h=a.at(-1);(h==null?void 0:h.type)==="content"?h.content+=c:a.push({type:"content",content:c})}continue}if(Xx(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(""),h=(s=l.content)==null?void 0:s.filter(I=>I.type==="reasoning_text"&&typeof I.text=="string").map(I=>I.text).join(""),C=c||h||"";t+=C,r+=typeof l.encrypted_content=="string"?l.encrypted_content:"",a.push({type:"reasoning",content:C});continue}if(jx(l)){const c={id:l.call_id,type:"function",function:{name:l.name,arguments:l.arguments}};n.push(c);const h=a.at(-1);(h==null?void 0:h.type)==="tool_calls"?h.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}:{},...n.length?{tool_calls:n}:{},...i.length?{resource_files:i}:{},...HdA(a)?{steps:a}:{}}}function VdA(e){if(e.event!==void 0&&TdA.has(e.event))return null;const A=e.data.trim();if(!A)throw new dt("Responses SSE data frame is empty");if(A==="[DONE]")throw new dt("[DONE] is not valid in a Responses SSE stream");let t;try{t=JSON.parse(A)}catch{const i=A.length>180?`${A.slice(0,180)}…`:A;throw new dt(`Responses SSE data is not valid JSON (frame id=${e.id??"none"}, event=${e.event??"none"}, ${A.length} chars): ${i}`)}const r=m0(t,"event data"),n=rn(r.type,"type");if(!JdA.has(n))throw new dt(`Unsupported Responses SSE event type: ${n}`);if(e.event!==void 0&&e.event!==n)throw new dt(`SSE event field ${e.event} does not match payload type ${n}`);return n===YdA&&rn(r.session_id,"session_id"),r}function j5(e){var n;const A=Wx(e),t=(n=A.tool_calls)==null?void 0:n.map(i=>`${i.function.name}${i.function.arguments}`).join("");if(new TextEncoder().encode(`${A.content??""}${A.reasoning_content??""}${t??""}`).byteLength>GdA)throw new dt("Responses stream content exceeded the 512 KB limit")}function Ip(e){return e.filter(A=>A!==void 0)}function dp(e,A,t){const r=Ki(A,"output_index"),n=e[r];if(!n||!zx(n))throw new dt(`Output item ${r} is not a message`);return $1(n,t),Array.isArray(n.content)||(n.content=[]),n}function fp(e,A,t){const r=Ki(A,"output_index"),n=e[r];if(!n||!Xx(n))throw new dt(`Output item ${r} is not reasoning`);return $1(n,t),n}function $5(e,A,t){const r=Ki(A,"output_index"),n=e[r];if(!n||!jx(n))throw new dt(`Output item ${r} is not a function_call`);return $1(n,t),n}function Ab(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 dt(`Content part ${A} is not output_text`);return t}function eb(e,A){const t=e.summary??(e.summary=[]),r=t[A];if(r===void 0){const n={type:"summary_text",text:""};return t[A]=n,n}if(r.type!=="summary_text")throw new dt(`Reasoning summary part ${A} is invalid`);return typeof r.text!="string"&&(r.text=""),r}function $1(e,A){const t=rn(A,"item_id");if(e.id!==void 0&&e.id!==t)throw new dt(`SSE item_id ${t} does not match output item id ${e.id}`)}function zx(e){return e.type==="message"&&Array.isArray(e.content)}function Xx(e){return e.type==="reasoning"}function jx(e){return e.type==="function_call"}function Bp(e){const A=m0(e,"response");if(A.object!=="response")throw new dt('Response object must have object: "response"');if(rn(A.id,"response.id"),rn(A.model,"response.model"),!Number.isFinite(A.created_at))throw new dt("response.created_at must be a number");if(A.output===null&&(A.output=[]),A.output!==void 0&&!Array.isArray(A.output))throw new dt("response.output must be an array");return og(A)}function tb(e){const A=m0(e,"item");if(rn(A.type,"item.type"),A.type==="message"){if(A.content==null&&(A.content=[]),!Array.isArray(A.content))throw new dt("message.content must be an array");if(A.role!=="assistant")throw new dt("Responses output message role must be assistant")}return A.type==="function_call"&&(rn(A.call_id,"function_call.call_id"),rn(A.name,"function_call.name"),A.arguments==null&&(A.arguments=""),rn(A.arguments,"function_call.arguments")),A}function m0(e,A){if(typeof e!="object"||e===null||Array.isArray(e))throw new dt(`${A} must be an object`);return e}function rn(e,A){if(typeof e!="string")throw new dt(`${A} must be a string`);return e}function Ki(e,A){if(!Number.isSafeInteger(e)||e<0)throw new dt(`${A} must be a non-negative safe integer`);return e}function og(e){return JSON.parse(JSON.stringify(e))}class ZdA{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(`
|
|
627
627
|
`);for(;r>=0;){const n=this.buffer.slice(0,r);this.buffer=this.buffer.slice(r+1);const i=n.endsWith("\r")?n.slice(0,-1):n,a=this.consumeLine(i,`${n}
|
|
628
628
|
`);a&&t.push(a),r=this.buffer.indexOf(`
|
|
629
629
|
`)}return t}finish(){const A=[];if(this.buffer){const r=this.buffer.endsWith("\r")?this.buffer.slice(0,-1):this.buffer,n=this.consumeLine(r,this.buffer);n&&A.push(n),this.buffer=""}const t=this.dispatch();return t&&A.push(t),A}consumeLine(A,t){let r=A;if(this.started||(this.started=!0,r.startsWith("\uFEFF")&&(r=r.slice(1))),this.raw+=t,r==="")return this.dispatch();if(r.startsWith(":"))return null;const n=r.indexOf(":"),i=n<0?r:r.slice(0,n);let a=n<0?"":r.slice(n+1);return a.startsWith(" ")&&(a=a.slice(1)),i==="data"?this.data.push(a):i==="event"?this.event=a||void 0:i==="id"&&!a.includes("\0")?this.id=a:i==="retry"&&/^\d+$/.test(a)&&(this.retry=Number(a)),null}dispatch(){if(this.data.length===0||this.data.every(t=>t.trim()===""))return this.reset(),null;const A={data:this.data.join(`
|
package/dist/index.js
CHANGED
|
@@ -61870,12 +61870,12 @@ function Pp(e) {
|
|
|
61870
61870
|
function _8(e) {
|
|
61871
61871
|
const A = j0(e, "item");
|
|
61872
61872
|
if (mr(A.type, "item.type"), A.type === "message") {
|
|
61873
|
-
if (A.content
|
|
61873
|
+
if (A.content == null && (A.content = []), !Array.isArray(A.content))
|
|
61874
61874
|
throw new _t("message.content must be an array");
|
|
61875
61875
|
if (A.role !== "assistant")
|
|
61876
61876
|
throw new _t("Responses output message role must be assistant");
|
|
61877
61877
|
}
|
|
61878
|
-
return A.type === "function_call" && (mr(A.call_id, "function_call.call_id"), mr(A.name, "function_call.name"), A.arguments
|
|
61878
|
+
return A.type === "function_call" && (mr(A.call_id, "function_call.call_id"), mr(A.name, "function_call.name"), A.arguments == null && (A.arguments = ""), mr(A.arguments, "function_call.arguments")), A;
|
|
61879
61879
|
}
|
|
61880
61880
|
function j0(e, A) {
|
|
61881
61881
|
if (typeof e != "object" || e === null || Array.isArray(e))
|