1import{j as o,u as cr,q as ur,b as G,g as pr,v as mr,t as fr}from"./index-CZrt0PfL.js";import{b as f}from"./vchart-vendor-BG0XOKAT.js";import{M as He}from"./ModernSelect-QLk4DW4I.js";const R={LOADING:"loading",INCOMPLETE:"incomplete",COMPLETE:"complete",ERROR:"error"},A={PREVIEW:"preview",REQUEST:"request",RESPONSE:"response"},wn=5,Ct="metapi:model-tester:session:v5",Q={mode:"conversation",protocol:"openai",targetFormat:"openai",model:"",systemPrompt:"",temperature:.7,top_p:1,max_tokens:4096,frequency_penalty:0,presence_penalty:0,seed:null,stream:!1,searchMaxResults:10,videoInspectAction:"get"},je={temperature:!0,top_p:!1,max_tokens:!1,frequency_penalty:!0,presence_penalty:!0,seed:!1},Tn={embeddingsInput:"",searchQuery:"",searchAllowedDomains:"",searchBlockedDomains:"",imagesPrompt:"",imagesMaskDataUrl:"",videosPrompt:"",videosInspectId:"",extraJson:""},cn=/<think>([\s\S]*?)<\/think>/g,wt=new Set(["user","assistant","system","developer","tool"]),gr=new Set(Object.values(R)),yr=new Set(Object.values(A)),hr=new Set(["conversation","embeddings","search","images.generate","images.edit","videos.create","videos.inspect"]),xr=new Set(["openai","responses","claude","gemini"]),br=new Set(["pending","uploading","uploaded","error"]),vr=new Set(["POST","GET","DELETE"]),jr=new Set(["json","multipart","empty"]),Cr="file-metapi-";let un=0;const P=e=>typeof e=="object"&&e!==null,ee=(e,t)=>typeof e=="number"&&Number.isFinite(e)?e:t,Y=(e,t)=>typeof e=="boolean"?e:t,Tt=e=>e==null||e===""?null:typeof e=="number"&&Number.isFinite(e)?e:null,It=e=>{const t=Tt(e);if(t===null)return null;const r=Math.trunc(t);return r>0?r:null},le=(e,t="")=>typeof e=="string"?e:t,Sr=e=>{const t=e.trim();return!t||t.toLowerCase().startsWith("re:")?!1:!/[\*\?]/.test(t)},_r=()=>(un+=1,`msg-${Date.now()}-${un}`),wr=(e,t)=>e==="claude"?"/v1/messages":e==="responses"?"/v1/responses":e==="gemini"?`/v1beta/models/${encodeURIComponent(t)}:generateContent`:"/v1/chat/completions",K=(e,t,r,i)=>{r&&typeof i=="number"&&Number.isFinite(i)&&(e[t]=i)},De=e=>{const t=/^data:([^;,]+)?;base64,(.+)$/i.exec((e||"").trim());return t?{mimeType:t[1]||"application/octet-stream",data:t[2]}:null},Tr=e=>{if(e.type==="image_url")return{type:"image_url",image_url:e.url};if(e.type==="image_inline")return{type:"image_url",image_url:e.dataUrl};if(e.type==="input_audio"){const t=De(e.dataUrl);return t?{type:"input_audio",input_audio:{data:t.data,format:(e.mimeType||t.mimeType||"audio/wav").split("/").pop()||"wav"}}:null}if(e.type==="input_file"){const t={},r=typeof e.fileId=="string"&&e.fileId.trim()?e.fileId.trim():"",i=typeof e.data=="string"&&e.data.trim()?e.data.trim():"",a=i?De(i):null;return r?t.file_id=r:i&&(t.file_data=(a==null?void 0:a.data)||i),typeof e.filename=="string"&&e.filename.trim()&&(t.filename=e.filename.trim()),typeof e.mimeType=="string"&&e.mimeType.trim()?t.mime_type=e.mimeType.trim():a!=null&&a.mimeType&&(t.mime_type=a.mimeType),Object.keys(t).length===0?null:{type:"file",file:t}}return null},pn=e=>{if(e.type==="image_url")return{type:"input_image",image_url:e.url};if(e.type==="image_inline")return{type:"input_image",image_url:e.dataUrl};if(e.type==="input_audio"){const t=De(e.dataUrl);return t?{type:"input_audio",input_audio:{data:t.data,format:(e.mimeType||t.mimeType||"audio/wav").split("/").pop()||"wav"}}:null}if(e.type==="input_file"){const t={type:"input_file"};return typeof e.fileId=="string"&&e.fileId.trim()?t.file_id=e.fileId.trim():typeof e.data=="string"&&e.data.trim()&&(t.file_data=e.data.trim()),typeof e.filename=="string"&&e.filename.trim()&&(t.filename=e.filename.trim()),Object.keys(t).length===1?null:t}return null},Ir=e=>{if(e.type!=="input_file"||typeof e.data!="string"||!e.data.trim())return null;const t=De(e.data);if(!t)return null;const r=e.mimeType||t.mimeType||"application/octet-stream";return r.toLowerCase().startsWith("image/")?{type:"image",source:{type:"base64",media_type:r,data:t.data}}:{type:"document",source:{type:"base64",media_type:r,data:t.data},...typeof e.filename=="string"&&e.filename.trim()?{title:e.filename.trim()}:{}}},kr=e=>{if(e.type==="image_url")return{fileData:{fileUri:e.url}};if(e.type==="image_inline"){const t=De(e.dataUrl);return t?{inlineData:{mimeType:e.mimeType||t.mimeType,data:t.data}}:null}if(e.type==="input_audio"){const t=De(e.dataUrl);return t?{inlineData:{mimeType:e.mimeType||t.mimeType,data:t.data}}:null}
1if(e.type==="input_file"){if(typeof e.data=="string"&&e.data.trim()){const r=De(e.data);return r?{inlineData:{mimeType:e.mimeType||r.mimeType||"application/octet-stream",data:r.data}}:null}const t=typeof e.fileId=="string"&&e.fileId.trim()?e.fileId.trim():"";return t?{fileData:{fileUri:t,...typeof e.mimeType=="string"&&e.mimeType.trim()?{mimeType:e.mimeType.trim()}:{}}}:null}return null},In=e=>e.map(t=>({role:t.role==="assistant"?"model":"user",parts:[...t.content.trim()?[{text:t.content}]:[],...Array.isArray(t.parts)?t.parts.map(r=>kr(r)).filter(r=>!!r):[]]})).filter(t=>Array.isArray(t.parts)&&t.parts.length>0),kn=e=>{const t=Array.isArray(e.parts)?e.parts.map(r=>Tr(r)).filter(r=>!!r):[];return t.length<=0?e.content:e.content.trim()?[{type:"text",text:e.content},...t]:t},Mn=e=>{if(!e.some(i=>Array.isArray(i.parts)&&i.parts.length>0)&&e.length===1&&e[0].role==="user")return e[0].content;const r=i=>i==="assistant"?"output_text":"input_text";return e.map(i=>({role:i.role==="assistant"?"assistant":"user",content:[...i.content.trim()?[{type:r(i.role),text:i.content}]:[],...Array.isArray(i.parts)?i.parts.map(a=>pn(a)).filter(a=>!!a):[]].length>0?[...i.content.trim()?[{type:r(i.role),text:i.content}]:[],...Array.isArray(i.parts)?i.parts.map(a=>pn(a)).filter(a=>!!a):[]]:i.content}))},En=e=>e.filter(t=>t.role!=="system"&&t.role!=="developer").map(t=>{const r=[...t.content.trim()?[{type:"text",text:t.content}]:[],...Array.isArray(t.parts)?t.parts.map(i=>Ir(i)).filter(i=>!!i):[]];return{role:t.role==="assistant"?"assistant":"user",content:r.length>0?r:t.content}}),Mr=(e,t,r)=>{const i=Rn(e),a=t.systemPrompt.trim();if(t.protocol==="responses"){const u={model:t.model,input:Mn(i.filter(h=>h.role!=="system"&&h.role!=="developer")),stream:t.stream};return a&&(u.instructions=a),K(u,"temperature",r.temperature,t.temperature),K(u,"top_p",r.top_p,t.top_p),K(u,"max_output_tokens",r.max_tokens,t.max_tokens),r.seed&&typeof t.seed=="number"&&(u.seed=t.seed),u}if(t.protocol==="claude"){const u={model:t.model,stream:t.stream,messages:En(i),max_tokens:r.max_tokens?t.max_tokens:Q.max_tokens};return a&&(u.system=a),K(u,"temperature",r.temperature,t.temperature),K(u,"top_p",r.top_p,t.top_p),u}if(t.protocol==="gemini"){const u={contents:In(i.filter(s=>s.role!=="system"&&s.role!=="developer"))};a&&(u.systemInstruction={parts:[{text:a}]});const h={};return K(h,"temperature",r.temperature,t.temperature),K(h,"topP",r.top_p,t.top_p),K(h,"maxOutputTokens",r.max_tokens,t.max_tokens),r.seed&&typeof t.seed=="number"&&(h.seed=t.seed),Object.keys(h).length>0&&(u.generationConfig=h),u}const m=[...a?[{role:"system",content:a}]:[],...i.map(u=>({role:u.role==="developer"?"system":u.role,content:kn(u)}))],c={model:t.model,messages:m,stream:t.stream};return K(c,"temperature",r.temperature,t.temperature),K(c,"top_p",r.top_p,t.top_p),K(c,"max_tokens",r.max_tokens,t.max_tokens),K(c,"frequency_penalty",r.frequency_penalty,t.frequency_penalty),K(c,"presence_penalty",r.presence_penalty,t.presence_penalty),r.seed&&typeof t.seed=="number"&&(c.seed=t.seed),c},Er=(e,t)=>
1{if(!P(e)||typeof e.role!="string"||!wt.has(e.role)||typeof e.content!="string")return null;const r={id:typeof e.id=="string"&&e.id.trim().length>0?e.id:`legacy-${t}-${Date.now()}`,role:e.role,content:e.content,createAt:typeof e.createAt=="number"&&Number.isFinite(e.createAt)?e.createAt:Date.now()};return typeof e.status=="string"&&gr.has(e.status)&&(r.status=e.status),typeof e.reasoningContent=="string"?r.reasoningContent=e.reasoningContent:e.reasoningContent===null&&(r.reasoningContent=null),typeof e.isReasoningExpanded=="boolean"&&(r.isReasoningExpanded=e.isReasoningExpanded),typeof e.isThinkingComplete=="boolean"&&(r.isThinkingComplete=e.isThinkingComplete),typeof e.hasAutoCollapsed=="boolean"&&(r.hasAutoCollapsed=e.hasAutoCollapsed),Array.isArray(e.parts)&&(r.parts=e.parts),r},An=e=>Array.isArray(e)?e.map((t,r)=>Er(t,r)).filter(t=>t!==null):[],Ar=(e,t="")=>{if(!P(e))return{...Q,model:t};const r=typeof e.model=="string"&&e.model.trim().length>0?e.model:t,i=typeof e.protocol=="string"&&xr.has(e.protocol)?e.protocol:e.targetFormat==="claude"?"claude":e.targetFormat==="responses"?"responses":e.targetFormat==="gemini"?"gemini":Q.protocol;return{model:r,mode:typeof e.mode=="string"&&hr.has(e.mode)?e.mode:Q.mode,protocol:i,targetFormat:i,systemPrompt:le(e.systemPrompt),temperature:ee(e.temperature,Q.temperature),top_p:ee(e.top_p,Q.top_p),max_tokens:ee(e.max_tokens,Q.max_tokens),frequency_penalty:ee(e.frequency_penalty,Q.frequency_penalty),presence_penalty:ee(e.presence_penalty,Q.presence_penalty),seed:Tt(e.seed),stream:Y(e.stream,Q.stream),searchMaxResults:Math.max(1,Math.min(20,Math.trunc(ee(e.searchMaxResults,Q.searchMaxResults)))),videoInspectAction:e.videoInspectAction==="delete"?"delete":"get"}},Rr=e=>P(e)?{temperature:Y(e.temperature,je.temperature),top_p:Y(e.top_p,je.top_p),max_tokens:Y(e.max_tokens,je.max_tokens),frequency_penalty:Y(e.frequency_penalty,je.frequency_penalty),presence_penalty:Y(e.presence_penalty,je.presence_penalty),seed:Y(e.seed,je.seed)}:{...je},Dr=e=>Array.isArray(e)?e.flatMap((t,r)=>{if(!P(t))return[];const i=typeof t.localId=="string"&&t.localId.trim()?t.localId.trim():`draft-file-restored-${r}`,a=typeof t.name=="string"&&t.name.trim()?t.name.trim():"upload.bin",m=typeof t.mimeType=="string"&&t.mimeType.trim()?t.mimeType.trim():"application/octet-stream",c=typeof t.dataUrl=="string"&&t.dataUrl.trim()?t.dataUrl.trim():"";return c?[{localId:i,name:a,mimeType:m,dataUrl:c,...typeof t.fileId=="string"&&t.fileId.trim()?{fileId:t.fileId.trim()}:{},status:typeof t.status=="string"&&br.has(t.status)?t.status:"pending",errorMessage:typeof t.errorMessage=="string"?t.errorMessage:null}]:[]}):[],Nr=e=>P(e)?{embeddingsInput:le(e.embeddingsInput),searchQuery:le(e.searchQuery),searchAllowedDomains:le(e.searchAllowedDomains),searchBlockedDomains:le(e.searchBlockedDomains),imagesPrompt:le(e.imagesPrompt),imagesMaskDataUrl:le(e.imagesMaskDataUrl),videosPrompt:le(e.videosPrompt),videosInspectId:le(e.videosInspectId),extraJson:le(e.extraJson)}:{...Tn},Or=e=>Array.isArray(e)?e.flatMap(t=>P(t)?typeof t.field!="string"||typeof t.name!="string"||typeof t.mimeType!="string"||typeof t.dataUrl!="string"?[]:[{field:t.field,name:t.name,mimeType:t.mimeType,dataUrl:t.dataUrl}]:[]):[],Pr=e=>{const t=typeof e.model=="string"?e.model:"",r=Ar(e.inputs,t);return e.inputs||(r.protocol=e.targetFormat==="claude"?"claude":e.targetFormat==="responses"?"responses":e.targetFormat==="gemini"?"gemini":r.protocol,r.temperature=ee(e.temperature,r.temperature)),r},Fr=(e,t,r)=>{if(!P(e))return null;if(typeof e.path=="string"&&typeof e.method=="string"&&vr.has(e.method)){const i=typeof e.requestKind=="string"&&jr.has(e.requestKind)?e.requestKind:"json",a={method:e.method,path:e.path,requestKind:i,stream:Y(e.stream,!1),jobMode:Y(e.jobMode,!1),rawMode:Y(e.rawMode,!1)};"jsonBody"in e&&(a.jsonBody=e.jsonBody),typeof e.rawJsonText=="string"&&(a.rawJsonText=e.rawJsonText);const m=It(e.forcedChannelId);m!==null&&(a.forcedChannelId=m),P(e.multipartFields)&&(a.multipartFields=Object.fromEntries(Object.entries(e.multipartFields).filter(([,u])=>typeof u=="string").map(([u,h])=>[u,h])));const c=Or(e.multipartFiles);return c.length>0&&(a.multipartFiles=c),a}if(typeof e.model=="string"){const i=An(e.messages);if(i.length===0)return null;const a={...t,model:e.model,protocol:e.targetFormat==="claude"?"claude":e.targetFormat==="responses"?"responses":e.targetFormat==="gemini"?"gemini":t.protocol,targetFormat:e.targetFormat==="claude"?"claude":e.targetFormat==="responses"?"responses":e.targetFormat==="gemini"?"gemini":t.targetFormat,stream
1:Y(e.stream,t.stream),temperature:ee(e.temperature,t.temperature),top_p:ee(e.top_p,t.top_p),max_tokens:ee(e.max_tokens,t.max_tokens),frequency_penalty:ee(e.frequency_penalty,t.frequency_penalty),presence_penalty:ee(e.presence_penalty,t.presence_penalty),seed:Tt(e.seed)};return kt(i,a,r)}return null},Br=(e,t)=>{const r=[],i=new Set,a=m=>{if(typeof m!="string")return;const c=m.trim();!c||i.has(c)||(i.add(c),r.push(c))};for(const m of(e==null?void 0:e.models)||[])a(m==null?void 0:m.name);for(const m of t||[]){if(!m||m.enabled===!1||typeof m.modelPattern!="string")continue;const c=m.modelPattern.trim();!c||!Sr(c)||a(c)}return r},$r=(e,t)=>{const r=t.trim().toLowerCase();return r?e.map((i,a)=>{const m=i.toLowerCase().indexOf(r);return m===-1?null:{name:i,matchIndex:m,index:a}}).filter(i=>i!==null).sort((i,a)=>i.matchIndex!==a.matchIndex?i.matchIndex-a.matchIndex:i.name.length!==a.name.length?i.name.length-a.name.length:i.index-a.index).map(i=>i.name):[...e]},Je=(e,t,r={})=>({id:_r(),role:e,content:t,createAt:Date.now(),...r}),zr=e=>({type:"input_file",...typeof e.fileId=="string"&&e.fileId.trim()?{fileId:e.fileId.trim()}:{},...typeof e.filename=="string"&&e.filename.trim()?{filename:e.filename.trim()}:{},...typeof e.mimeType=="string"&&e.mimeType.trim()?{mimeType:e.mimeType.trim()}:{},...typeof e.data=="string"&&e.data.trim()?{data:e.data.trim()}:{}}),mn=(e,t=[],r={})=>{const i=t.map(a=>zr(a));return Je("user",e,{...r,...i.length>0?{parts:i}:{}})},fn=e=>(Array.isArray(e.parts)?e.parts:[]).flatMap(r=>{if(r.type!=="input_file")return[];const i=typeof r.fileId=="string"&&r.fileId.trim()?r.fileId.trim():null,a=typeof r.filename=="string"&&r.filename.trim()?r.filename.trim():null,m=typeof r.mimeType=="string"&&r.mimeType.trim()?r.mimeType.trim():null,c=typeof r.data=="string"&&r.data.trim()?r.data.trim():null;return!i&&!c?[]:[{...i?{fileId:i}:{},...a?{filename:a}:{},...m?{mimeType:m}:{},...c?{data:c}:{}}]});async function Lr(e,t,r){return t!=="claude"&&t!=="gemini"?e.map(i=>({...i})):Promise.all(e.map(async i=>{const a=typeof i.fileId=="string"&&i.fileId.trim()?i.fileId.trim():"",m=typeof i.data=="str
1ing"&&i.data.trim()?i.data.trim():"";if(!a||m)return{...i};if(!a.startsWith(Cr))throw new Error(`ä¼è¯éä»¶ ${a} åªæ file_idï¼å½ååè®®éè¦å¯éæ¾çå èæ°æ®ã`);const c=await r(a),u=typeof(c==null?void 0:c.data)=="string"?c.data.trim():"";if(!u)throw new Error(`ä¼è¯éä»¶ ${a} 缺å°å¯éæ¾çæ°æ®ã`);return{...i,...typeof(c==null?void 0:c.filename)=="string"&&c.filename.trim()?{filename:c.filename.trim()}:{},...typeof(c==null?void 0:c.mimeType)=="string"&&c.mimeType.trim()?{mimeType:c.mimeType.trim()}:{},data:u}}))}const St=()=>Je("assistant","",{status:R.LOADING,reasoningContent:"",isReasoningExpanded:!0,isThinkingComplete:!1,hasAutoCollapsed:!1}),Ur=e=>JSON.stringify({...e,version:wn}),at=(e,t="")=>{if(!e||!e.includes("<think>"))return{content:e,reasoningContent:t};const r=[],i=[];let a=0,m;for(cn.lastIndex=0;(m=cn.exec(e))!==null;)i.push(e.substring(a,m.index)),r.push(m[1]),a=m.index+m[0].length;i.push(e.substring(a));const c=i.join("").replace(/<\/?think>/g,"").trim(),u=r.join(` 2 3--- 4 5`);return{content:c,reasoningContent:t&&u?`${t} 6 7--- 8 9${u}`:t||u}},qr=(e,t="")=>{if(!e)return{content:"",reasoningContent:t};const r=e.lastIndexOf("<think>");if(r===-1)return at(e,t);const i=e.substring(r);if(!i.includes("</think>")){const a=i.substring(7).trim(),m=e.substring(0,r),c=a?t?`${t} 10 11--- 12 13${a}`:a:t;return at(m,c)}return at(e,t)},lt=e=>{if(e.status!==R.LOADING&&e.status!==R.INCOMPLETE)return e;const t=qr(e.content||"",e.reasoningContent||"");return{...e,content:t.content||e.content,reasoningContent:t.reasoningContent||null,status:R.COMPLETE,isThinkingComplete:!0}},Jr=e=>{if(typeof e!="string"||e.trim().length===0)return null;let t;try{t=JSON.parse(e)}catch{return null}if(!P(t))return null;const r=Pr(t);if(!r.model)return null;const i=Rr(t.parameterEnabled),a={version:typeof t.version=="number"&&Number.isFinite(t.version)?Math.trunc(t.version):wn,input:typeof t.input=="string"?t.input:"",inputs:r,parameterEnabled:i,messages:An(t.messages),conversationFiles:Dr(t.conversationFiles),pendingPayload:Fr(t.pendingPayload,r,i),customRequestMode:Y(t.customRequestMode,!1),customRequestBody:typeof t.customRequestBody=="string"?t.customRequestBody:"",forcedChannelId:It(t.forcedChannelId),showDebugPanel:Y(t.showDebugPanel,!1),activeDebugTab:typeof t.activeDebugTab=="string"&&yr.has(t.activeDebugTab)?t.activeDebugTab:A.PREVIEW,modeState:Nr(t.modeState)};return typeof t.pendingJobId=="string"&&t.pendingJobId.trim().length>0?a.pendingJobId=t.pendingJobId:t.pendingJobId===null&&(a.pendingJobId=null),!a.pendingJobId&&a.messages.length>0&&(a.messages=a.messages.map(m=>lt(m))),a},Rn=e=>e.filter(t=>t.role!=="assistant"?!0:t.status!==R.LOADING&&t.status!==R.INCOMPLETE).map(t=>({role:t.role,content:t.content,parts:t.parts})),kt=(e,t,r)=>({method:"POST",path:wr(t.protocol,t.model),requestKind:"json",stream:t.stream,jobMode:!t.stream,rawMode:!1,jsonBody:Mr(e,t,r)}),Wr=(e,t,r)=>{const i=kt(e,{...t,protocol:"gemini"},r);return{...i,path:`/gemini${i.path}${t.stream?"?alt=sse":""}`,jobMode:!1}},Vr=(e,t="assistants")=>({method:"POST",path:"/v1/files",requestKind:"multipart",stream:!1,jobMode:!1,rawMode:!1,multipartFields:{purpose:t},multipartFiles:[{field:e.field||"file",name:e.name,mimeType:e.mimeType,dataUrl:e.dataUrl}]}),rt=(e,t,r)=>kt(e,t,r),Hr=(e,t)=>{const r=It(t);if(r===null){if(!("forcedChannelId"in e))return e;const{forcedChannelId:i,...a}=e;return a}return{...e,forcedChannelId:r}},Dn=e=>{if(!e.trim())return null;try{const t=JSON.parse(e);return P(t)?t:null}catch{return null}},gn=(e,t,r)=>{let i;try{const u=JSON.parse(e||"{}");i=P(u)?u:{}}catch{i={}}const a=Rn(t),m=r.systemPrompt.trim(),c={model:r.model,stream:i.stream!==void 0?i.stream:r.stream};return typeof r.temperature=="number"&&Number.isFinite(r.temperature)&&(c.temperature=r.temperature),r.protocol==="responses"?(c.input=Mn(a.filter(u=>u.role!=="system"&&u.role!=="developer")),!("instructions"in i)&&m&&(c.instructions=m)):r.protocol==="claude"?(c.messages=En(a),!("system"in i)&&m&&(c.system=m)):r.protocol==="gemini"?(c.contents=In(a.filter(u=>u.role!=="system"&&u.role!=="developer")),!("systemInstruction"in i)&&m&&(c.systemInstruction={parts:[{text:m}]})):c.messages=[...!("system"in i)&&m?[{role:"system",content:m}]:[],...a.map(u=>({role:u.role==="developer"?"system":u.role,content:kn(u)}))],JSON.stringify({...i,...c},null,2)},Gr=e=>{const t=Dn(e);if(!t)return null;const r=[],i=(a,m)=>{m.trim()&&r.push({role:a,content:m})};if(typeof t.system=="string"&&i("system",t.system),typeof t.instructions=="string"&&i("system",t.instructions),P(t.systemInstruction)&&Array.isArray(t.systemInstruction.parts)){const a=t.systemInstruction.parts.map(m=>P(m)&&typeof m.text=="string"?m.text:"").join(` 14`);i("system",a)}if(Array.isArray(t.messages)){for(const a of t.messages)if(!(!P(a)||typeof a.role!="string")){if(typeof a.content=="string"){i(wt.has(a.role)?a.role:"user",a.content);continue}if(Array.isArray(a.content)){const m=a.content.map(c=>P(c)&&typeof c.text=="string"?c.text:P(c)&&typeof c.content=="string"?c.content:"").join(` 15`);i(wt.has(a.role)?a.role:"user",m)}}}else if(Array.isArray(t.input))for(const a of t.input)!P(a)||typeof a.role!="string"||i(a.role==="assistant"?"assistant":"user",le(a.content));else if(typeof t.input=="string")i("user",t.input);else if(Array.isArray(t.contents))for(const a of t.contents){if(!P(a))continue;const m=a.role==="model"?"assistant":"user",c=Array.isArray(a.parts)?a.parts.map(u=>
15P(u)&&typeof u.text=="string"?u.text:"").join(` 16`):"";i(m,c)}return r.length===0?null:r.map((a,m)=>Je(a.role,a.content,{id:`custom-${m}-${Date.now()}`}))},yn=(e,t,r,i,a)=>({method:e,path:t,requestKind:r,stream:(a==null?void 0:a.stream)??!1,jobMode:(a==null?void 0:a.jobMode)??!1,rawMode:!0,rawJsonText:i}),qe=e=>{for(let t=e.length-1;t>=0;t-=1){const r=e[t];if(r.role==="assistant"&&(r.status===R.LOADING||r.status===R.INCOMPLETE))return t}return-1},Kr=e=>e.reduce((t,r)=>t+(r.role==="user"?1:0),0),Qr=[".pdf",".txt",".md",".markdown",".json"],Yr=new Set(["application/octet-stream","binary/octet-stream"]),Xr=new Set(["application/json","application/pdf","text/markdown","text/plain"]),Zr=[".json",".md",".markdown",".pdf",".txt"],eo=[".avif",".bmp",".gif",".jpeg",".jpg",".png",".svg",".webp"],to=[".aac",".flac",".m4a",".mp3",".ogg",".wav",".weba"];function Nn(e){return(e||"").trim().toLowerCase()}function no(e){const t=Nn(e),[r]=t.split(";");return(r||"").trim()}function ro(e){const t=no(e==null?void 0:e.mimeType);if(t){if(t.startsWith("image/"))return"image";if(t.startsWith("audio/"))return"audio";if(Xr.has(t))return"document";if(!Yr.has(t))return"unknown"}const r=Nn(e==null?void 0:e.filename);return r?Zr.some(i=>r.endsWith(i))?"document":eo.some(i=>r.endsWith(i))?"image":to.some(i=>r.endsWith(i))?"audio":"unknown":"unknown"}function oo(e){const t=[];return e.document&&t.push(...Qr),e.image&&t.push("image/*"),e.audio&&t.push("audio/*"),t.join(",")}const me=e=>e!=="unsupported";function so(e){const t=[];return me(e.documentMode)&&t.push("PDF / TXT / Markdown / JSON"),me(e.imageMode)&&t.push("å¾ç"),me(e.audioMode)&&t.push("é³é¢"),t.join(" / ")}function ao(e){const t=[];return e.documentMode==="inline_only"&&t.push("ææ¡£ä¼ä»¥å èæ°æ®æ³¨å ¥"),e.imageMode==="native"&&e.documentMode==="inline_only"&&t.push("å¾ç伿å¾çé¨ä»¶åé"),e.audioMode==="native"&&e.documentMode==="inline_only"&&t.push("é³é¢ä¼æé³é¢é¨ä»¶åé"),t}function io(e){return e==="openai"||e==="responses"?{supported:!0,imageMode:"native",audioMode:"native",documentMode:"native",reason:""}:e==="claude"?{supported:!0,imageMode:"native",audioMode:"unsupported",documentMode:"inline_only",reason:"å½åçé¢çä¼è¯éä»¶ä¼ä»¥å èææ¡£æ¹å¼åéã"}:e==="gemini"?{supported:!0,imageMode:"native",audioMode:"native",documentMode:"inline_only",reason:"å½åçé¢çä¼è¯éä»¶ä¼ä»¥å èææ¡£æ¹å¼åéã"}:{supported:!1,imageMode:"unsupported",audioMode:"unsupported",documentMode:"unsupported",reason:"å½ååè®®æä¸æ¯æä¼è¯éä»¶ã"}}function lo(e){return oo({document:me(e.documentMode),image:me(e.imageMode),audio:me(e.audioMode)})}function co(e){if(!e.supported)return e.reason||"å½ååè®®æä¸æ¯æä¼è¯éä»¶ã";const t=so(e);if(!t)return e.reason||"å½ååè®®æä¸æ¯æä¼è¯éä»¶ã";if(e.documentMode==="native"&&e.imageMode==="native"&&e.audioMode==="native")return`æ¯æ ${t}ï¼åéåä¼å ä¸ä¼ å° /v1/filesã`;const r=ao(e);return r.length<=0?`æ¯æ ${t}ã`:`æ¯æ ${t}ï¼${r.join("ï¼")}ã`}function _t(e,t){const r=ro(t);return r==="document"?me(e.documentMode):r==="image"?me(e.imageMode):r==="audio"?me(e.audioMode):!1}function uo({isMobile:e,sending:t,customRequestMode:r,conversationFileCapability:i,conversationFileSupported:a,conversationFileAccept:m,conversationFileHint:c,conversationFiles:u,conversationFileInputRef:h,input:s,canSend:_,inputBaseStyle:v,onInputChange:k,onFilesChange:S,onRemoveConversationFile:Ge,onSend:W,onStop:te}){return o.jsxs("div",{style:{display:"flex",gap:10,alignItems:e?"stretch":"flex-end",flexDirection:e?"column":"row"},children:[o.jsxs("div",{style:{flex:1,display:"flex",flexDirection:"column",gap:8},children:[o.jsxs("div",{style:{padding:"10px 12px",borderRadius:"var(--radius-md)",border:"1px solid var(--color-border-light)",background:"var(--color-bg-subtle)"},children:[o.jsx("input",{ref:h,type:"file",multiple:!0,accept:m,style:{display:"none"},onChange:T=>{S(T.target.files),T.target.value=""}}),o.jsxs("div",{style:{display:"flex",gap:8,alignItems:"center",flexWrap:"wrap"},children:[o.jsx("button",{type:"button",className:"btn btn-ghost",style:{border:"1px solid var(--color-border)",padding:"6px 10px"},disabled:t||r||!a,onClick:()=>{var T;return(T=h.current)==null?void 0:T.click()},children:"æ·»å æä»¶"}),o.jsx("span",{style:{fontSize:11,color:"var(--color-text-muted)"},children:r?"èªå®ä¹è¯·æ±æ¨¡å¼ä¸ä¼èªå¨ä¸ä¼ è¿äºéä»¶ï¼å ³éèªå®ä¹æ¨¡å¼åå¯èµ°æ å /v1/files é¾è·¯ã":a?c:i.reason||"å½ååè®®æä¸æ¯æä¼è¯éä»¶æ³¨å ¥ã"})]}),u.length>0?o.jsx("div",{style:{display:"flex",gap:8,flexWrap:"wrap",marginTop:10},children:u.map(T=>{const Ce=T.status==="uploading"?"ä¸ä¼ ä¸":T.status==="uploaded"?"å·²ä¸ä¼ ":T.status==="error"?"å
16¤±è´¥":"å¾
ä¸ä¼ ",Ke=T.status==="error"?"var(--color-danger)":T.status==="uploaded"?"var(--color-success)":T.status==="uploading"?"var(--color-warning)":"var(--color-text-muted)";return o.jsxs("span",{style:{display:"inline-flex",alignItems:"center",gap:6,maxWidth:"100%",padding:"6px 10px",borderRadius:999,border:"1px solid var(--color-border-light)",background:"var(--color-bg-card)",fontSize:11},title:T.errorMessage||T.fileId||T.name,children:[o.jsx("span",{children:"ð"}),o.jsx("span",{style:{maxWidth:220,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:T.name}),o.jsxs("span",{style:{color:Ke},children:["· ",Ce]}),t?null:o.jsx("button",{type:"button",onClick:()=>Ge(T.localId),"aria-label":`ç§»é¤éä»¶ ${T.name||T.localId||"éä»¶"}`,style:{border:"none",background:"transparent",color:"var(--color-text-muted)",cursor:"pointer",padding:0},children:"Ã"})]},T.localId)})}):null]}),o.jsx("textarea",{value:s,onChange:T=>k(T.target.value),onKeyDown:T=>{if(!T.nativeEvent.isComposing&&T.key==="Enter"&&!T.shiftKey){if(T.preventDefault(),t){te();return}W()}},placeholder:r?"èªå®ä¹æ¨¡å¼ä¸è¾å
¥å¯éãå车åéæ¶å°ä¼å
使ç¨å³ä¾§èªå®ä¹è¯·æ±ä½ã":"è¾å
¥æç¤ºè¯ï¼æåªä¸ä¼ æä»¶åç´æ¥åéâ¦ï¼å车åéï¼Shift+å车æ¢è¡ï¼",rows:3,style:{...v,resize:"none",flex:1}})]}),o.jsx("button",{onClick:()=>{if(t){te();return}W()},disabled:t?!1:!_,className:"btn btn-primary",style:{height:e?50:78,padding:e?"0 16px":"0 20px",fontSize:14,fontWeight:600,display:"flex",flexDirection:e?"row":"column",alignItems:"center",justifyContent:"center",gap:4,minWidth:e?"100%":88,width:e?"100%":"auto"},children:t?o.jsxs(o.Fragment,{children:[o.jsx("span",{style:{fontSize:18,lineHeight:1},children:"â "}),o.jsx("span",{style:{fontSize:11},children:"忢"})]}):o.jsxs(o.Fragment,{children:[o.jsx("svg",{width:"18",height:"18",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor",children:o.jsx("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M12 19l9 2-9-18-9 18 9-2zm0 0v-8"})}),o.jsx("span",{style:{fontSize:11},children:"åé"})]})})]})}function po({presence:e,isMobile:t,debugTimestamp:r,activeDebugTab:i,onTabChange:a,debugTabContent:m,debugTimeline:c}){return e.shouldRender?o.jsxs("div",{className:`card panel-presence ${e.isVisible?"":"is-closing"}`.trim(),style:{padding:14,minHeight:t?"auto":680,maxHeight:t?"none":740,display:"flex",flexDirection:"column",order:t?3:0},children:[o.jsxs("div",{style:{display:"flex",justifyContent:"space-between",alignItems:"center",marginBottom:10},children:[o.jsx("h3",{style:{margin:0,fontSize:15},children:"è°è¯"}),o.jsx("div",{style:{fontSize:11,color:"var(--color-text-muted)"},children:r?new Date(r).toLocaleString():"--"})]}),o.jsxs("div",{style:{display:"flex",gap:8,marginBottom:10,flexWrap:"wrap"},children:[o.jsx("button",{className:"btn btn-ghost",style:{border:i===A.PREVIEW?"1px solid var(--color-primary)":"1px solid var(--color-border)",color:i===A.PREVIEW?"var(--color-primary)":"var(--color-text-secondary)"},onClick:()=>a(A.PREVIEW),children:"é¢è§"}),o.jsx("button",{className:"btn btn-ghost",style:{border:i===A.REQUEST?"1px solid var(--color-primary)":"1px solid var(--color-border)",color:i===A.REQUEST?"var(--color-primary)":"var(--color-text-secondary)"},onClick:()=>a(A.REQUEST),children:"请æ±"}),o.jsx("button",{className:"btn btn-ghost",style:{border:i===A.RESPONSE?"1px solid var(--color-primary)":"1px solid var(--color-border)",color:i===A.RESPONSE?"var(--color-primary)":"var(--color-text-secondary)"},onClick:()=>a(A.RESPONSE),children:"ååº"})]}),o.jsx("div",{style:{flex:1,overflow:"hidden",border:"1px solid var(--color-border-light)",borderRadius:"var(--radius-sm)",background:"var(--color-bg)"},children:o.jsx("pre",{style:{margin:0,padding:12,fontSize:12,lineHeight:1.55,fontFamily:"var(--font-mono)",whiteSpace:"pre-wrap",wordBreak:"break-word",overflow:"auto",maxHeight:"100%"},children:m||"// ææ æ°æ®"})}),o.jsx("div",{style:{marginTop:10,fontSize:12,fontWeight:600},children:"æ¶é´çº¿"}),o.jsx("div",{style:{marginTop:6,border:"1px solid var(--color-border-light)",borderRadius:"var(--radius-sm)",padding:8,minHeight:120,maxHeight:170,overflowY:"auto",background:"var(--color-bg)"},children:c.length===0?o.jsx("div",{style:{color:"var(--color-text-muted)",fontSize:12},children:"ææ äºä»¶ã"}):o.jsx("div",{style:{display:"flex",flexDirection:"column",gap:6},children:c.map((u,h)=>o.jsxs("div",{style:{fontSize:11,color:"var(--color-text-secondary)",lineHeight:1.45},children:[o.jsx("span",{style:{display:"inline-block",minWidth:40,marginRight:6,color:u.level==="error"?"var(--color-danger)":u.level==="warn"?"var(--color-warning)":"var(--color-primary)",fontWeight:700,textTransform:"uppercase"},children:u.level}),o.jsx("span",{style:{color:"var(--color-text-muted)",marginRight:6},children:new Date(u.at).toLocaleTimeString()}),o.jsx("span",{children:u.text})]},`${u.at}-${h}`))})})]}):null}const hn=1200,xn=e=>new Promise(t=>setTimeout(t,e)),mo=()=>`draft-file-${Date.now()}-${Math.random().toString(36).slice(2,8)}`,bn=e=>
16new Promise((t,r)=>{const i=new FileReader;i.onload=()=>t(typeof i.result=="string"?i.result:""),i.onerror=()=>r(i.error||new Error("读åæä»¶å¤±è´¥")),i.readAsDataURL(e)}),ie=e=>{if(typeof e=="string")try{return JSON.stringify(JSON.parse(e),null,2)}catch{return e}try{return JSON.stringify(e,null,2)}catch{return String(e)}},it=e=>{var r;const t=e;return((r=t==null?void 0:t.error)==null?void 0:r.message)||(t==null?void 0:t.message)||"request failed"},fo=e=>{const t=Array.isArray(e==null?void 0:e.content)?e.content:[],r=[],i=[];for(const a of t)if(!(!a||typeof a!="object")){if(a.type==="text"&&typeof a.text=="string"){r.push(a.text);continue}if(a.type==="thinking"&&typeof a.thinking=="string"){i.push(a.thinking);continue}typeof a.text=="string"&&r.push(a.text)}return{content:r.join(""),reasoningContent:i.join(` 17 18`)}},On=e=>{const t=[],r=[],i=u=>{typeof u=="string"&&u.length>0&&t.push(u)},a=u=>{typeof u=="string"&&u.length>0&&r.push(u)},m=e==null?void 0:e.output_text;if(typeof m=="string")i(m);else if(Array.isArray(m))for(const u of m){if(typeof u=="string"){i(u);continue}u&&typeof u=="object"&&typeof u.text=="string"&&i(u.text)}const c=Array.isArray(e==null?void 0:e.output)?e.output:e&&typeof e=="object"&&(Array.isArray(e==null?void 0:e.content)||typeof(e==null?void 0:e.type)=="string")?[e]:[];for(const u of c){if(!u||typeof u!="object")continue;const h=typeof u.type=="string"?u.type:"";if(h==="output_text"){i(u.text);continue}if(h==="reasoning"&&(typeof u.summary_text=="string"&&a(u.summary_text),typeof u.reasoning=="string"&&a(u.reasoning),Array.isArray(u.summary)))for(const _ of u.summary)_&&typeof _=="object"&&typeof _.text=="string"&&a(_.text);const s=Array.isArray(u.content)?u.content:[];for(const _ of s){if(!_||typeof _!="object")continue;const v=typeof _.type=="string"?_.type:"";if(v==="output_text"||v==="text"){i(_.text);continue}v.includes("reasoning")&&a(_.text)}}return{content:t.join(""),reasoningContent:r.join(` 19 20`)}},go=e=>{var m,c,u,h,s,_;const t=e;let r="",i="";if(Array.isArray(t==null?void 0:t.choices)){const v=t.choices[0],k=((m=v==null?void 0:v.message)==null?void 0:m.content)??(v==null?void 0:v.text)??"";r=typeof k=="string"?k:Array.isArray(k)?k.map(S=>(S==null?void 0:S.text)??"").join(""):"",i=((c=v==null?void 0:v.message)==null?void 0:c.reasoning_content)||((u=v==null?void 0:v.message)==null?void 0:u.reasoning)||""}else if((t==null?void 0:t.type)==="message"&&Array.isArray(t==null?void 0:t.content)){const v=fo(t);r=v.content,i=v.reasoningContent}else if((t==null?void 0:t.object)==="response"||Array.isArray(t==null?void 0:t.output)||typeof(t==null?void 0:t.output_text)=="string"){const v=On(t);r=v.content,i=v.reasoningContent}else if(Array.isArray(t==null?void 0:t.candidates)){const v=(_=(s=(h=t==null?void 0:t.candidates)==null?void 0:h[0])==null?void 0:s.content)==null?void 0:_.parts;Array.isArray(v)&&(r=v.filter(k=>(k==null?void 0:k.thought)!==!0).map(k=>typeof(k==null?void 0:k.text)=="string"?k.text:"").join(""),i=v.filter(k=>(k==null?void 0:k.thought)===!0).map(k=>typeof(k==null?void 0:k.text)=="string"?k.text:"").join(""))}const a=at(r,i);return!a.content&&a.reasoningContent?{content:"[Only reasoning returned]",reasoningContent:a.reasoningContent}:!a.content&&!a.reasoningContent?{content:ie(e),reasoningContent:""}:a},pe=(e,t,r)=>[...e.slice(0,t),r,...e.slice(t+1)],vn=(e,t)=>{const{content:r,reasoningContent:i}=go(t),a=qe(e);if(a===-1)return[...e,Je("assistant",r,{status:R.COMPLETE,reasoningContent:i||null,isThinkingComplete:!0,isReasoningExpanded:!1,hasAutoCollapsed:!0})];const m=e[a];return pe(e,a,{...m,content:r,reasoningContent:i||null,status:R.COMPLETE,isThinkingComplete:!0,isReasoningExpanded:!1,hasAutoCollapsed:!0})},Ae=(e,t)=>
20{const r=qe(e);if(r===-1)return[...e,Je("assistant",t,{status:R.ERROR,isThinkingComplete:!0})];const i=e[r];return pe(e,r,{...i,content:t,status:R.ERROR,isThinkingComplete:!0})},ot=e=>{const t=qe(e);if(t===-1)return e;const r=e[t];return pe(e,t,lt({...r,content:r.content||"Generation stopped."}))},jn=(e,t)=>{const r=qe(e);if(r===-1)return e;let a={...e[r],status:R.INCOMPLETE};const m=(c,u)=>{if(!u)return"";if(!c)return u;if(u===c)return"";if(u.startsWith(c))return u.slice(c.length);if(c.endsWith(u))return"";const h=Math.min(c.length,u.length),s=8;for(let _=h;_>=s;_-=1)if(c.slice(-_)===u.slice(0,_))return u.slice(_);return u};if(t.reasoningDelta){const c=a.reasoningContent||"",u=m(c,t.reasoningDelta);u&&(a={...a,reasoningContent:c+u,isThinkingComplete:!1})}if(t.contentDelta){const c=a.content||"",u=m(c,t.contentDelta);if(!u)return pe(e,r,a);const s=!!a.reasoningContent&&!a.hasAutoCollapsed;a={...a,content:c+u,isReasoningExpanded:s?!1:a.isReasoningExpanded,hasAutoCollapsed:s||a.hasAutoCollapsed}}return pe(e,r,a)},Cn=async e=>{try{const t=await e.text();if(!t)return`HTTP ${e.status}`;try{const r=JSON.parse(t);return it(r)}catch{return t}}catch{return`HTTP ${e.status}`}},Sn=e=>{const t=e.split(/\r?\n/);let r="message";const i=[];for(const a of t){if(a.startsWith("event:")){r=a.slice(6).trim();continue}a.startsWith("data:")&&i.push(a.slice(5).trimStart())}return{event:r,data:i.length>0?i.join(` 21`):null}},_n=e=>{var t,r,i,a,m,c,u;if(!e||typeof e!="object")return{};if(Array.isArray(e.choices)){const h=e.choices[0],s=(h==null?void 0:h.delta)||{},_=typeof s.reasoning_content=="string"?s.reasoning_content:typeof s.reasoning=="string"?s.reasoning:"";return{contentDelta:(typeof s.content=="string"?s.content:typeof((t=h==null?void 0:h.message)==null?void 0:t.content)=="string"?h.message.content:"")||void 0,reasoningDelta:_||void 0,done:!!(h!=null&&h.finish_reason)}}if(typeof e.type=="string"){if(e.type==="response.output_item.added"||e.type==="response.output_item.done")return{};if(e.type==="response.content_part.added"||e.type==="response.content_part.done")return{};if(e.type==="response.content_part.delta"){const h=e.delta;if(typeof h=="string")return{contentDelta:h||void 0};if(h&&typeof h=="object"){const s=On(h);return s.content||s.reasoningContent?{contentDelta:s.content||void 0,reasoningDelta:s.reasoningContent||void 0}:{contentDelta:(typeof h.text=="string"?h.text:"")||void 0}}}if(e.type==="response.output_text.delta")return{contentDelta:(typeof e.delta=="string"?e.delta:typeof e.text=="string"?e.text:"")||void 0};if(e.type==="response.reasoning_summary_text.delta"||e.type==="response.reasoning.delta")return{reasoningDelta:(typeof e.delta=="string"?e.delta:typeof e.text=="string"?e.text:"")||void 0};if(e.type==="response.output_text.done")return{};if(e.type==="response.completed"||e.type==="response.failed")return{done:!0};if(e.type==="content_block_delta"){const h=e.delta||{},s=typeof h.type=="string"?h.type:"",_=typeof h.text=="string"?h.text:"";return s==="thinking_delta"?{reasoningDelta:_||void 0}:{contentDelta:_||void 0}}if(e.type==="content_block_start"){const h=e.content_block||{};return{contentDelta:(typeof h.text=="string"?h.text:"")||void 0}}if(e.type==="message_delta")return{done:!!(((r=e==null?void 0:e.delta)==null?void 0:r.stop_reason)||(e==null?void 0:e.stop_reason))};if(e.type==="message_stop")return{done:!0}}if(Array.isArray(e.candidates)){const h=(m=(a=(i=e==null?void 0:e.candidates)==null?void 0:i[0])==null?void 0:a.content)==null?void 0:m.parts;if(Array.isArray(h)){const s=h.filter(v=>(v==null?void 0:v.thought)===!0).map(v=>typeof(v==null?void 0:v.text)=="string"?v.text:"").join("");return{contentDelta:h.filter(v=>(v==null?void 0:v.thought)!==!0).map(v=>typeof(v==null?void 0:v.text)=="string"?v.text:"").join("")||void 0,reasoningDelta:s||void 0,done:!!((u=(c=e==null?void 0:e.candidates)==null?void 0:c[0])!=null&&u.finishReason)}}}return{}},Re=(e,t)=>{const r=Number(e);return Number.isFinite(r)?r:t},st=e=>e.split(/[\n,]/).map(t=>t.trim()).filter(Boolean),yo=[{value:"conversation",label:"对è¯"},{value:"embeddings",label:"Embeddings"},{value:"search",label:"Search"},{value:"images.generate",label:"å¾ççæ"},{value:"images.edit",label:"å¾çç¼è¾"},{value:"videos.create",label:"è§é¢å建"},{value:"videos.inspect",label:"è§é¢æ¥è¯¢/å é¤"}],ho=[{value:"openai",label:"OpenAI (/v1/chat/completions)"},{value:"responses",label:"OpenAI Responses (/v1/responses)"},{value:"claude",label:"Claude (/v1/messages)"}
21,{value:"gemini",label:"Gemini Native (/gemini/v1beta/models/*)"}],J={width:"100%",padding:"10px 14px",border:"1px solid var(--color-border)",borderRadius:"var(--radius-sm)",fontSize:13,outline:"none",background:"var(--color-bg)",color:"var(--color-text-primary)",transition:"border-color 0.2s"};function Ue(e){const{title:t,valueText:r,enabled:i,onToggle:a,disabled:m,children:c}=e;return o.jsxs("div",{style:{marginBottom:12,opacity:i?1:.55},children:[o.jsxs("div",{style:{display:"flex",justifyContent:"space-between",alignItems:"center",marginBottom:6},children:[o.jsxs("div",{style:{fontSize:13,fontWeight:600},children:[t,r&&o.jsx("span",{style:{marginLeft:6,color:"var(--color-primary)"},children:r})]}),o.jsxs("label",{style:{fontSize:12},children:[o.jsx("input",{type:"checkbox",checked:i,onChange:a,disabled:m})," å¯ç¨"]})]}),c]})}function jo(){const e=cr(),[t,r]=f.useState([]),[i,a]=f.useState(""),[m,c]=f.useState([]),[u,h]=f.useState(""),[s,_]=f.useState(Q),[v,k]=f.useState(Tn),[S,Ge]=f.useState(je),[W,te]=f.useState(null),[T,Ce]=f.useState([]),[Ke,Mt]=f.useState(!1),[Pn,Ne]=f.useState(""),[Et,Fn]=f.useState(!1),[N,F]=f.useState(!1),[Bn,At]=f.useState(!0),[Rt,C]=f.useState(""),[Se,fe]=f.useState(null),[M,_e]=f.useState(null),[j,Dt]=f.useState(!1),[I,We]=f.useState(""),[Qe,Nt]=f.useState(!1),Ot=ur(Qe,220),[Oe,X]=f.useState(A.PREVIEW),[Pt,dt]=f.useState(""),[Ft,ne]=f.useState(""),[Bt,$t]=f.useState(""),[$n,zt]=f.useState([]),[zn,Ye]=f.useState(""),[we,Lt]=f.useState(null),[ge,ct]=f.useState(""),[Pe,ut]=f.useState(""),[Fe,pt]=f.useState(""),[mt,Ut]=f.useState(10),[Te,ft]=f.useState(""),[B,gt]=f.useState(""),[ye,yt]=f.useState(""),[ht,xt]=f.useState("GET"),[re,qt]=f.useState(null),[oe,Jt]=f.useState(null),[U,he]=f.useState([]),[Xe,Be]=f.useState(null),[bt,Ie]=f.useState(""),Wt=f.useRef(null),Ln=f.useRef(null),Vt=f.useRef(null),V=f.useRef(null),xe=f.useRef(!1),q=f.useMemo(()=>io(s.protocol),[s.protocol]),$e=q.supported,Un=f.useMemo(()=>lo(q),[q]),Ve=f.useMemo(()=>co(q),[q]),x=f.useCallback((n,d)=>{const l=new Date().toISOString();zt(p=>{const g=[...p,{at:l,level:n,text:d}];return g.length>200?g.slice(g.length-200):g}),Ye(l)},[]),de=f.useCallback((n,d)=>{_(l=>n==="protocol"?{...l,protocol:d}:{...l,[n]:d})},[]);f.useCallback((n,d)=>{k(l=>({...l,[n]:d}))},[]);const qn=f.useCallback(n=>{_(d=>({...d,protocol:n}))},[]),ze=f.useCallback(n=>{Ge(d=>({...d,[n]:!d[n]}))},[]);f.useEffect(()=>{const n=Jr(localStorage.getItem(Ct));Vt.current=n,n&&(c(n.messages),h(n.input),_(n.inputs),k(n.modeState),Ge(n.parameterEnabled),fe(n.pendingPayload),_e(n.pendingJobId||null),te(n.forcedChannelId??null),Dt(n.customRequestMode),We(n.customRequestBody),Nt(n.showDebugPanel),X(n.activeDebugTab),ft(n.modeState.embeddingsInput),ct(n.modeState.searchQuery),ut(n.modeState.searchAllowedDomains),pt(n.modeState.searchBlockedDomains),gt(n.modeState.imagesPrompt||n.modeState.videosPrompt),yt(n.modeState.videosInspectId),xt(n.inputs.videoInspectAction==="delete"?"DELETE":"GET"),he(n.conversationFiles),n.pendingJobId?(F(!0),C("åç°æªå®æçä»»å¡ï¼æ£å¨éæ°è¿æ¥..."),x("info",`æ¢å¤ä»»å¡ ${n.pendingJobId}ã`)):n.pendingPayload&&(C("åç°æªå®æç请æ±å¿«ç
§ï¼ç¹å»éè¯ç»§ç»ã"),x("warn","æ¢å¤å¾
å¤çç请æ±å¿«ç
§ã")))},[x]),f.useEffect(()=>{(async()=>{var d;At(!0);try{const[l,p]=await Promise.allSettled([G.getModelsMarketplace({includePricing:!1}),G.getRoutes()]);if(l.status==="rejected"&&p.status==="rejected")throw l.reason||p.reason||new Error("failed to fetch models");const g=Br(l.status==="fulfilled"?l.value:null,p.status==="fulfilled"?p.value:null);r(g);const y=((d=Vt.current)==null?void 0:d.inputs.model)||"",b=s.model||"",w=y&&g.includes(y)?y:b&&g.includes(b)?b:g[0]||"";w&&_(E=>({...E,model:w}))}catch{C("å 载模åå表失败ã"),x("error","è·å模åå表失败ã")}finally{At(!1),Fn(!0)}})()},[]),f.useEffect(()=>{if(!Et)return;if(!s.model){Ce([]),Ne(""),te(null);return}if(j){Ce([]),Ne("èªå®ä¹è¯·æ±æ¨¡å¼ä¸åºå®ééä¸å¯ç¨ã"),te(null);return}if(s.mode==="videos.inspect"){Ce([]),Ne("è§é¢æ¥è¯¢/å é¤ä¸ä¼éæ°éè·¯ï¼ä¸è½åºå®ééã"),te(null);return}let n=!1;return Mt(!0),Ne(""),G.getRouteDecision(s.model).then(d=>{var g;if(n)return;const p=(Array.isArray((g=d==null?void 0:d.decision)==null?void 0:g.candidates)?d.decision.candidates:[]).filter(y=>(y==null?void 0:y.eligible)===!0&&typeof(y==null?void 0:y.channelId)=="number").map(y=>({value:String(y.channelId),label:`${y.username||`account-${y.accountId||"unknown"}`} @ ${y.siteName||"unknown"} / ${y.tokenName||"default"} (P${y.priority??0}
21)`,description:typeof y.reason=="string"&&y.reason.trim().length>0?y.reason:void 0}));Ce(p),p.length===0&&Ne("å½åæ¨¡åææ å¯åºå®ééã"),typeof W=="number"&&!p.some(y=>y.value===String(W))&&te(null)}).catch(()=>{n||(Ce([]),Ne("å è½½åºå®ééåé失败ã"),te(null))}).finally(()=>{n||Mt(!1)}),()=>{n=!0}},[j,Et,s.mode,s.model]),f.useEffect(()=>{s.model&&localStorage.setItem(Ct,Ur({input:u,inputs:s,parameterEnabled:S,messages:m,conversationFiles:U,modeState:{embeddingsInput:Te,searchQuery:ge,searchAllowedDomains:Pe,searchBlockedDomains:Fe,imagesPrompt:s.mode==="images.generate"||s.mode==="images.edit"?B:"",imagesMaskDataUrl:(oe==null?void 0:oe.dataUrl)||"",videosPrompt:s.mode==="videos.create"?B:"",videosInspectId:ye,extraJson:I},pendingPayload:Se,pendingJobId:M,forcedChannelId:W,customRequestMode:j,customRequestBody:I,showDebugPanel:Qe,activeDebugTab:Oe}))},[Oe,I,j,W,u,s,m,U,B,I,Te,oe==null?void 0:oe.dataUrl,S,M,Se,Pe,Fe,ge,Qe,ye]);const Ht=f.useCallback(async(n,d)=>{const l=n==null?void 0:n[0];if(!l){d(null);return}try{const p=await bn(l);d({name:l.name,mimeType:l.type||"application/octet-stream",dataUrl:p})}catch(p){C((p==null?void 0:p.message)||"读åæä»¶å¤±è´¥")}},[]),Jn=f.useCallback(async n=>{const d=Array.from(n||[]);if(!(d.length<=0))try{const l=await Promise.all(d.map(async y=>({localId:mo(),name:y.name,mimeType:y.type||"application/octet-stream",dataUrl:await bn(y),fileId:null,status:"pending",errorMessage:null}))),p=l.filter(y=>_t(q,{filename:y.name,mimeType:y.mimeType})),g=l.filter(y=>!_t(q,{filename:y.name,mimeType:y.mimeType}));if(p.length>0&&(he(y=>[...y,...p]),x("info",`已添å ${p.length} 个ä¼è¯éä»¶ã`)),g.length>0){const y=`å½ååè®®ä¸æ¯æè¿äºä¼è¯éä»¶ï¼${g.map(b=>b.name).join("ã")}ã${Ve}`;C(y),x("warn",y)}}catch(l){const p=(l==null?void 0:l.message)||"读åé件失败";C(p),x("error",p)}},[q,Ve,x]),Wn=f.useCallback(n=>{N||he(d=>d.filter(l=>l.localId!==n))},[N]),Gt=f.useCallback(async()=>{if(U.length<=0)return[];const n=[];for(const d of U){if(d.fileId){n.push({fileId:d.fileId,filename:d.name,mimeType:d.mimeType});continue}he(l=>l.map(p=>p.localId===d.localId?{...p,status:"uploading",errorMessage:null}:p)),x("info",`æ£å¨ä¸ä¼ éä»¶ï¼${d.name}`);try{const l=await G.proxyTest(Vr({name:d.name,mimeType:d.mimeType,dataUrl:d.dataUrl})),p=typeof(l==null?void 0:l.id)=="string"?l.id.trim():"";if(!p)throw new Error("ä¸ä¼ æå使ªè¿å file_id");const g=typeof(l==null?void 0:l.filename)=="string"&&l.filename.trim()?l.filename.trim():d.name,y=typeof(l==null?void 0:l.mime_type)=="string"&&l.mime_type.trim()?l.mime_type.trim():d.mimeType;he(b=>b.map(w=>w.localId===d.localId?{...w,fileId:p,name:g,mimeType:y,status:"uploaded",errorMessage:null}:w)),n.push({fileId:p,filename:g,mimeType:y}),x("info",`éä»¶ä¸ä¼ 宿ï¼${g} -> ${p}`)}catch(l){const p=(l==null?void 0:l.message)||"éä»¶ä¸ä¼ 失败";throw he(g=>g.map(y=>y.localId===d.localId?{...y,status:"error",errorMessage:p}:y)),new Error(`${d.name}: ${p}`)}}return n},[U,x]),Kt=f.useCallback(()=>U.map(n=>({fileId:n.fileId,filename:n.name,mimeType:n.mimeType,data:n.dataUrl})),[U]),Ze=f.useCallback(n=>{const d=n.filter(g=>!_t(q,g));if(d.length<=0)return!0;const p=`å½ååè®®ä¸æ¯æè¿äºä¼è¯éä»¶ï¼${d.map((g,y)=>(typeof g.filename=="string"?g.filename.trim():"")||`éä»¶${y+1}`).join("ã")}ã${Ve}`;return C(p),x("warn",p),!1},[q,Ve,x]),Qt=f.useCallback(async n=>{const d=await G.getProxyFileContentDataUrl(n);return{filename:d.filename||null,mimeType:d.mimeType||null,data:d.data}},[]),ce=f.useCallback(n=>s.systemPrompt.trim()?[Je("system",s.systemPrompt.trim()),...n]:n,[s.systemPrompt]),Yt=f.useCallback(n=>{const d=ce(n),l=d.filter(g=>g.role==="system"||g.role==="developer").map(g=>g.content.trim()).filter(Boolean),p=d.filter(g=>g.role!=="system"&&g.role!=="developer").map(g=>({role:g.role==="assistant"?"assistant":"user",content:g.content}));return{model:s.model,stream:s.stream,max_tokens:S.max_tokens?s.max_tokens:Q.max_tokens,...l.length>0?{system:l.join(` 22 23`)}:{},...S.temperature?{temperature:s.temperature}:{},...S.top_p?{top_p:s.top_p}:{},messages:p}},[ce,s.max_tokens,s.model,s.stream,s.temperature,s.top_p,S.max_tokens,S.temperature,S.top_p]),Xt=f.useCallback(n=>{const d=ce(n),l=d.filter(g=>g.role==="system"||g.role==="developer").map(g=>
23g.content.trim()).filter(Boolean),p=d.filter(g=>g.role!=="system"&&g.role!=="developer").map(g=>({role:g.role==="assistant"?"assistant":"user",content:g.content}));return{model:s.model,stream:s.stream,...S.temperature?{temperature:s.temperature}:{},...S.top_p?{top_p:s.top_p}:{},...S.max_tokens?{max_output_tokens:s.max_tokens}:{},...l.length>0?{instructions:l.join(` 24 25`)}:{},input:p.length===1&&p[0].role==="user"&&l.length===0?p[0].content:p}},[ce,s.max_tokens,s.model,s.stream,s.temperature,s.top_p,S.max_tokens,S.temperature,S.top_p]),ke=f.useCallback(n=>{const d=ce(n);if(j)return{method:"POST",path:s.protocol==="gemini"?`/gemini/v1beta/models/${encodeURIComponent(s.model)}:generateContent${s.stream?"?alt=sse":""}`:s.protocol==="claude"?"/v1/messages":s.protocol==="responses"?"/v1/responses":"/v1/chat/completions",requestKind:"json",stream:s.stream,jobMode:!1,rawMode:!0,rawJsonText:I};if(s.protocol==="claude")return{method:"POST",path:"/v1/messages",requestKind:"json",stream:s.stream,jobMode:!1,rawMode:!1,jsonBody:Yt(n)};if(s.protocol==="responses")return{method:"POST",path:"/v1/responses",requestKind:"json",stream:s.stream,jobMode:!1,rawMode:!1,jsonBody:Xt(n)};if(s.protocol==="gemini")return Wr(n,s,S);const l=rt(d,{...s,protocol:"openai"},S),p=l.jsonBody&&typeof l.jsonBody=="object"?{...l.jsonBody}:{};return{method:"POST",path:"/v1/chat/completions",requestKind:"json",stream:s.stream,jobMode:!1,rawMode:!1,jsonBody:p}},[rt,Yt,ce,Xt,I,j,s,S]),Vn=f.useMemo(()=>[{value:"__auto__",label:"èªå¨éè·¯ï¼é»è®¤ï¼",description:"æå½åè·¯ç±æ£å¸¸éæ©éé"},...T],[T]),be=f.useCallback(n=>Hr(n,W),[W]),et=f.useCallback(()=>{if(s.mode==="embeddings"){const n=Te.trim();return n?{method:"POST",path:"/v1/embeddings",requestKind:"json",stream:!1,jobMode:!1,rawMode:j,...j?{rawJsonText:I}:{jsonBody:{model:s.model,input:n}}}:null}return s.mode==="search"?ge.trim()?{method:"POST",path:"/v1/search",requestKind:"json",stream:!1,jobMode:!1,rawMode:j,...j?{rawJsonText:I}:{jsonBody:{model:s.model||"__search",query:ge.trim(),max_results:Math.max(1,Math.min(20,Math.trunc(mt||10))),...st(Pe).length>0?{allowed_domains:st(Pe)}:{},...st(Fe).length>0?{blocked_domains:st(Fe)}:{}}}}:null:s.mode==="images.generate"?B.trim()?{method:"POST",path:"/v1/images/generations",requestKind:"json",stream:!1,jobMode:!1,rawMode:j,...j?{rawJsonText:I}:{jsonBody:{model:s.model,prompt:B.trim()}}}:null:s.mode==="images.edit"?!B.trim()||!re?null:{method:"POST",path:"/v1/images/edits",requestKind:"multipart",stream:!1,jobMode:!1,rawMode:!1,multipartFields:{model:s.model,prompt:B.trim()},multipartFiles:[{field:"image",name:re.name,mimeType:re.mimeType,dataUrl:re.dataUrl},...oe?[{field:"mask",name:oe.name,mimeType:oe.mimeType,dataUrl:oe.dataUrl}]:[]]}:s.mode==="videos.create"?B.trim()?re?{method:"POST",path:"/v1/videos",requestKind:"multipart",stream:!1,jobMode:!1,rawMode:!1,multipartFields:{model:s.model,prompt:B.trim()},multipartFiles:[{field:"input_reference",name:re.name,mimeType:re.mimeType,dataUrl:re.dataUrl}]}:{method:"POST",path:"/v1/videos",requestKind:"json",stream:!1,jobMode:!1,rawMode:j,...j?{rawJsonText:I}:{jsonBody:{model:s.model,prompt:B.trim()}}}:null:s.mode==="videos.inspect"&&ye.trim()?{method:ht,path:`/v1/videos/${encodeURIComponent(ye.trim())}`,requestKind:"empty",stream:!1,jobMode:!1,rawMode:!1}:null},[B,I,j,Te,oe,re,s.mode,s.model,Pe,Fe,mt,ge,ht,ye]),Zt=f.useMemo(()=>{if(s.mode!=="conversation"){const n=et();return n?be(n):null}if(j){const n=I.trim();if(!n)return null;try{return JSON.parse(n)}catch{return{_error:"èªå®ä¹è¯·æ±ä½ä¸ç JSON æ æ",raw:n}}}return s.protocol==="gemini"?be(ke(m)):be(rt(ce(m),s,S))},[be,ce,ke,et,I,j,s,m,S]);f.useEffect(()=>{$t(ie(Zt))},[Zt]);const en=f.useCallback(n=>{G.deleteProxyTestJob(n).catch(()=>{})},[]);f.useEffect(()=>{if(!M)return;let n=!0;return F(!0),(async()=>{for(;n;)try{const l=await G.getProxyTestJob(M);if(!n)return;if(l.status==="pending"){await xn(hn);continue}if(l.status==="succeeded")c(p=>vn(p,l.result)),C(""),ne(ie(l.result)),X(A.RESPONSE),x("info",`ä»»å¡ ${M} å·²æåã`);else if(l.status==="cancelled")c(p=>ot(p)),C("çæå·²åæ¶ã"),ne(ie(l.error)),X(A.RESPONSE),x("warn",`ä»»å¡ ${M} 已忶ã`);else{const p=it(l.error);c(g=>Ae(g,p)),C(p),ne(ie(l.error)),X(A.RESPONSE),x("error",`ä»»å¡ ${M} 失败ï¼${p}`)}_e(null),fe(null),F(!1),en(M);return}catch(l){const p=(l==null?void 0:l.message)||"æªç¥è½®è¯¢é误";x("warn",`轮询 ${M} å¤±è´¥ä¸æ¬¡ï¼${p}`),await xn(hn)}})(),()=>{n=!1}},[en,M,x]),f.useEffect(()=>{var n;(n=Wt.current)==null||n.scrollIntoView({behavior:"smooth"})},[m]);const Hn=f.useMemo(()=>Kr(m),[m]),ve=f.useMemo(()=>$r(t,i),[i,t]),vt=f.useMemo(()=>ve.includes(s.model),[ve,s.model]),Gn=f.useMemo(()=>i.trim()?`å¹é ${ve.length} / ${t.length}`:`å ± ${t.length} 个模å`,[ve.length,i,t.length]),Kn=f.useMemo(()=>ve.map(n=>({value:n,label:n})),[ve]),tt=f.useMemo(()=>
25{if(N||M||!s.model)return!1;if(s.mode!=="conversation")return s.mode==="embeddings"?!!Te.trim():s.mode==="search"?!!ge.trim():s.mode==="images.generate"?!!B.trim():s.mode==="images.edit"?!!B.trim()&&!!re:s.mode==="videos.create"?!!B.trim():s.mode==="videos.inspect"?!!ye.trim():!1;const n=u.trim().length>0;return j?n||I.trim().length>0:n||$e&&U.length>0},[B,$e,U.length,I,j,Te,re,u,s.mode,s.model,M,ge,N,ye]),tn=f.useCallback(async n=>{try{C(""),fe(n);const d=await G.startProxyTestJob(n);_e(d.jobId),F(!0),x("info",`å·²åå»ºä»»å¡ ${d.jobId}ã`)}catch(d){const l=(d==null?void 0:d.message)||"请æ±å¤±è´¥";c(p=>Ae(p,l)),C(l),F(!1),ne(ie({error:{message:l}})),X(A.RESPONSE),x("error",`å建任å¡å¤±è´¥ï¼${l}`)}},[x]),nn=f.useCallback(async n=>{const d=new AbortController;V.current=d,xe.current=!1,F(!0),_e(null),fe(n),x("info","å·²å¼å§æµå¼è¯·æ±ã");const l=new TextDecoder("utf-8");let p="";const g=[],y=b=>{g.push(b),g.length>500&&g.splice(0,g.length-500),ne(g.join(` 26`))};try{const b=await G.proxyTestStream(n,d.signal);if(b.status===401||b.status===403){const H=!!pr(localStorage);throw mr(localStorage),H&&window.location.reload(),new Error("ä¼è¯å·²è¿æ")}if(!b.ok)throw new Error(await Cn(b));if(!b.body)throw new Error("æµå¼ååºä½ä¸ºç©º");X(A.RESPONSE);const w=b.body.getReader();let E=!1,O=!1,D=!1;for(;;){const{done:H,value:$}=await w.read();if(H)break;if(!$)continue;p+=l.decode($,{stream:!0});const L=p.split(/\r?\n\r?\n/);p=L.pop()||"";for(const ue of L){const Ee=Sn(ue);if(!Ee.data)continue;if(y(Ee.data),Ee.data==="[DONE]"){E=!0,x("info","æ¶å°æµå¼ [DONE] ä¿¡å·ã");continue}let se;try{se=JSON.parse(Ee.data)}catch{x("warn",`忽ç¥é JSON ç SSE æ°æ®å (event=${Ee.event})ã`);continue}if(se!=null&&se.error)throw new Error(it(se));const z=_n(se);typeof z.reasoningDelta=="string"&&z.reasoningDelta.trim().length>0&&(D=!0),typeof z.contentDelta=="string"&&z.contentDelta.trim().length>0&&(O=!0),(z.reasoningDelta||z.contentDelta)&&c(ae=>jn(ae,{reasoningDelta:z.reasoningDelta,contentDelta:z.contentDelta})),z.done&&(E=!0)}}const Z=!O&&!D;c(H=>{const $=qe(H);if($===-1)return H;const L=lt(H[$]);return Z&&!(L.content||"").trim()&&!(L.reasoningContent||"").trim()?pe(H,$,{...L,content:"空åå¤ï¼ä¸æ¸¸æªè¿åä»»ä½å 容ï¼",status:R.ERROR,isThinkingComplete:!0}):pe(H,$,{...L,status:R.COMPLETE,isThinkingComplete:!0})}),fe(null),Z?(C("䏿¸¸è¿å空å 容"),x("error","æµå¼ä¼ è¾å®æä½å 容为空ã")):(C(""),x(E?"info":"warn",E?"æµå¼ä¼ è¾å·²æå宿ã":"æµå¼ä¼ è¾æªæ¶å° [DONE] ä¿¡å·ï¼å·²å¨æ¬å°å®æã"))}catch(b){const w=d.signal.aborted&&xe.current,E=d.signal.aborted||(b==null?void 0:b.name)==="AbortError"||(b==null?void 0:b.message)==="This operation was aborted"||(b==null?void 0:b.message)==="The user aborted a request.";if(w)c(O=>ot(O)),C("çæå·²åæ¢ã"),x("warn","æµå¼ä¼ è¾è¢«ç¨æ·ä¸æ¢ã");else if(E){const O="æµå¼è¿æ¥ä¸æï¼è¯·éè¯ã";c(D=>Ae(D,O)),C(O),x("error",`æµå¼ä¼ è¾å¼å¸¸ä¸æï¼${(b==null?void 0:b.message)||"AbortError"}`)}else{const O=(b==null?void 0:b.message)||"æµå¼è¯·æ±å¤±è´¥",D=O==="This operation was aborted"?"æä½å·²ä¸æ¢":O;c(Z=>Ae(Z,D)),C(D),x("error",`æµå¼ä¼ è¾å¤±è´¥ï¼${D}`)}}finally{V.current===d&&(V.current=null),xe.current=!1,F(!1)}},[x]),rn=f.useCallback(async(n,d)=>{const l=new AbortController;V.current=l,xe.current=!1,F(!0),_e(null),fe(null),c(d),C(""),X(A.RESPONSE),x("info",`å·²å¼å§ä»£çæµå¼è¯·æ±ï¼${n.path}`);const p=new TextDecoder("utf-8");let g="";const y=[],b=w=>{y.push(w),y.length>500&&y.splice(0,y.length-500),ne(y.join(` 27`))};try{const w=await G.proxyTestStream(n,l.signal);if(!w.ok)throw new Error(await Cn(w));if(!w.body)throw new Error("æµå¼ååºä½ä¸ºç©º");const E=w.body.getReader();let O=!1,D=!1,Z=!1;for(;;){const{done:$,value:L}=await E.read();if($)break;if(!L)continue;g+=p.decode(L,{stream:!0});const ue=g.split(/\r?\n\r?\n/);g=ue.pop()||"";for(const Ee of ue){const se=Sn(Ee);if(!se.data)continue;if(b(se.data),se.data==="[DONE]"){O=!0;continue}let z;try{z=JSON.parse(se.data)}catch{continue}if(z!=null&&z.error)throw new Error(it(z));const ae=_n(z);typeof ae.reasoningDelta=="string"&&ae.reasoningDelta.trim().length>0&&(Z=!0),typeof ae.contentDelta=="string"&&ae.contentDelta.trim().length>0&&(D=!0),(ae.reasoningDelta||ae.contentDelta)&&c(dr=>jn(dr,{reasoningDelta:ae.reasoningDelta,contentDelta:ae.contentDelta})),ae.done&&(O=!0)}}const H=!D&&!Z;c($=>{const L=qe($);if(L===-1)return $;const ue=lt($[L]);return H&&!(ue.content||"").trim()&&!(ue.reasoningContent||"").trim()?pe($,L,{...ue,content:"空åå¤ï¼
27䏿¸¸æªè¿åä»»ä½å
容ï¼",status:R.ERROR,isThinkingComplete:!0}):pe($,L,{...ue,status:R.COMPLETE,isThinkingComplete:!0})}),H?(C("䏿¸¸è¿å空å
容"),x("error","ä»£çæµå¼ä¼ è¾å®æä½å
容为空ã")):(C(""),x(O?"info":"warn",O?"ä»£çæµå¼ä¼ è¾å·²æå宿ã":"ä»£çæµå¼ä¼ è¾æªæ¶å° [DONE] ä¿¡å·ï¼å·²å¨æ¬å°å®æã"))}catch(w){const E=l.signal.aborted&&xe.current,O=l.signal.aborted||(w==null?void 0:w.name)==="AbortError"||(w==null?void 0:w.message)==="This operation was aborted"||(w==null?void 0:w.message)==="The user aborted a request.";if(E)c(D=>ot(D)),C("çæå·²åæ¢ã");else if(O)c(D=>Ae(D,"æµå¼è¿æ¥ä¸æï¼è¯·éè¯ã")),C("æµå¼è¿æ¥ä¸æï¼è¯·éè¯ã");else{const D=(w==null?void 0:w.message)||"æµå¼è¯·æ±å¤±è´¥";c(Z=>Ae(Z,D)),C(D)}}finally{V.current===l&&(V.current=null),xe.current=!1,F(!1)}},[x]),Le=f.useCallback(async(n,d,l)=>{const p=be(d);c(n),(l==null?void 0:l.syncedCustomBody)!==void 0&&We(l.syncedCustomBody),C(""),fe(p),dt(ie(p)),ne(""),X(A.REQUEST),Ye(new Date().toISOString()),p.stream?await nn(p):await tn(p)},[be,tn,nn]),nt=f.useCallback(async(n,d)=>{const l=be(n);if(C(""),dt(ie(l.rawMode?{path:l.path,rawJsonText:l.rawJsonText,forcedChannelId:l.forcedChannelId}:l)),ne(""),X(A.REQUEST),Ye(new Date().toISOString()),l.stream&&d){await rn(l,d);return}F(!0);try{const p=await G.proxyTest(l);ne(ie(p)),X(A.RESPONSE),Lt(p),d&&c(g=>vn(d,p)),C(""),x("info",`代çè¯·æ±æåï¼${l.path}`)}catch(p){const g=(p==null?void 0:p.message)||"请æ±å¤±è´¥";d&&c(y=>Ae(d,g)),C(g),ne(ie({error:{message:g}})),X(A.RESPONSE),x("error",`代ç请æ±å¤±è´¥ï¼${g}`)}finally{F(!1)}},[be,x,rn]),on=f.useCallback(n=>{const d=ce(n);return{payload:j?yn("POST",ke(d).path,"json",I,{stream:s.stream,jobMode:!s.stream}):rt(d,{...s,protocol:s.protocol},S),syncedCustomBody:j?I:gn(I,d,s)}},[ce,ke,I,j,s,S]),Me=f.useCallback(async(n,d,l=[])=>{let p=l;try{p=await Lr(l,s.protocol,Qt)}catch(D){const Z=(D==null?void 0:D.message)||"读åä¼è¯é件失败";C(Z),x("error",Z);return}if(!Ze(p))return;const g=mn(n,p),y=St(),b=[...d,g,y];if(s.protocol==="gemini"||j){await nt(ke(b),b);return}const{payload:E,syncedCustomBody:O}=on(b);if(!E){C("èªå®ä¹è¯·æ±ä½æ ææä¸å
嫿¶æ¯ã"),x("error","ä»èªå®ä¹è¯·æ±ä½æå»ºè¯·æ±å¤±è´¥ã");return}await Le(b,E,{syncedCustomBody:O})},[ke,on,mn,j,Le,nt,Ze,s.protocol,Qt,x]),sn=f.useCallback(async()=>{const n=et();if(!n){C("请å
è¡¥å
¨å½åæ¨¡å¼æéçè¾å
¥ã");return}await nt(n)},[et,nt]),an=f.useCallback(async()=>{if(!tt)return;if(s.mode!=="conversation"){await sn();return}const n=u.trim();if(U.length>0&&j){const p="èªå®ä¹è¯·æ±æ¨¡å¼ä¸ä¼èªå¨æ³¨å
¥ä¼è¯éä»¶ï¼è¯·å
å
³éèªå®ä¹è¯·æ±æ¨¡å¼æç§»é¤éä»¶ã";C(p),x("warn",p);return}if(U.length>0&&!$e){const p=q.reason||"å½ååè®®æä¸æ¯æä¼è¯éä»¶ã";C(p),x("warn",p);return}if(!j&&$e&&U.length>0){F(!0);try{const p=Kt();if(!Ze(p)){F(!1);return}const g=q.documentMode==="inline_only"?p:await Gt();h(""),he([]),await Me(n,m,g)}catch(p){const g=(p==null?void 0:p.message)||"éä»¶ä¸ä¼ 失败";C(g),x("error",g),F(!1)}return}if(n.length>0){h(""),await Me(n,m);return}if(!j)return;if(!Dn(I)){C("èªå®ä¹è¯·æ±ä½å¿
é¡»æ¯ææç JSON ä¸å
å«éç©ºæ¶æ¯ã"),x("error","åéè¢«é»æ¢ï¼æ æçèªå®ä¹è¯·æ±ä½ã");return}const l=[...m,St()];await Le(l,yn("POST",ke(l).path,"json",I,{stream:s.stream,jobMode:!s.stream}))},[tt,q,$e,U.length,I,j,Le,Ze,Kt,u,s.mode,m,x,sn,Me,Gt]),Qn=f.useCallback(async()=>{if(N||M||!Se)return;const n=(()=>{const d=[...m],l=d[d.length-1];return(l==null?void 0:l.role)==="assistant"&&(l.status===R.ERROR||l.status===R.COMPLETE)&&d.pop(),d.push(St()),d})();x("info","æ£å¨éè¯å¾
å¤çç请æ±ã"),await Le(n,Se)},[Le,m,M,Se,x,N]),ln=f.useCallback(async()=>{let n=!1;if(V.current){n=!0,xe.current=!0;try{V.current.abort()}catch{}V.current=null}if(M){n=!0;const d=M;_e(null);try{await G.deleteProxyTestJob(d)}catch{}}n&&(F(!1),c(d=>ot(d)),C("çæå·²åæ¢ã"),x("warn","çæå·²è¢«ç¨æ·åæ¢ã"))},[M,x]),Yn=f.useCallback(()=>{if(M&&G.deleteProxyTestJob(M).catch(()=>{}),V.current){xe.current=!0;try{V.current.abort()}catch{}V.current=null}c([]),fe(null),_e(null),h(""),C(""),F(!1),Be(null),Ie(""),dt(""),ne(""),$t(""),zt([]),Ye(""),Lt(null),ct(""),ut(""),pt(""),Ut(10),ft(""),gt(""),yt(""),xt("GET"),qt(null),Jt(null),he([]),localStorage.removeItem(Ct),x("info","对è¯å·²æ¸
é¤ã")}
27,[M,x]),Xn=f.useCallback(n=>{c(d=>d.map(l=>l.id!==n||l.role!=="assistant"?l:{...l,isReasoningExpanded:!l.isReasoningExpanded}))},[]),Zn=f.useCallback(async n=>{var l;const d=[n.reasoningContent?`[reasoning] 28${n.reasoningContent}`:"",n.content].filter(Boolean).join(` 29 30`).trim();if(!d){C("没æå¯å¤å¶çææ¬å 容ã");return}try{if((l=navigator.clipboard)!=null&&l.writeText)await navigator.clipboard.writeText(d);else{const p=document.createElement("textarea");p.value=d,document.body.appendChild(p),p.select(),document.execCommand("copy"),document.body.removeChild(p)}x("info",`å·²å¤å¶æ¶æ¯ ${n.id}ã`)}catch{C("å¤å¶å¤±è´¥ï¼è¯·æå¨å¤å¶ã")}},[x]),er=f.useCallback(n=>{N||(c(d=>{var p;const l=d.findIndex(g=>g.id===n.id);return l===-1?d:n.role==="user"&&((p=d[l+1])==null?void 0:p.role)==="assistant"?d.filter((g,y)=>y!==l&&y!==l+1):d.filter(g=>g.id!==n.id)}),Be(null),Ie(""),x("info",`å·²å 餿¶æ¯ ${n.id}ã`))},[x,N]),tr=f.useCallback(n=>{(n.role==="assistant"||n.role==="system")&&(N||c(d=>d.map(l=>l.id!==n.id?l:{...l,role:l.role==="assistant"?"system":"assistant"})))},[N]),nr=f.useCallback(n=>{if(N||M)return;const d=m.findIndex(b=>b.id===n.id);if(d===-1)return;let l=-1;if(n.role==="user")l=d;else for(let b=d-1;b>=0;b-=1)if(m[b].role==="user"){l=b;break}if(l===-1){C("æªæ¾å°å¯éè¯çç¨æ·æ¶æ¯ã");return}const p=m.slice(0,l),g=m[l].content,y=fn(m[l]);Be(null),Ie(""),Me(g,p,y)},[m,M,Me,N]),rr=f.useCallback(n=>
30{N||(Be(n.id),Ie(n.content))},[N]),jt=f.useCallback(()=>{Be(null),Ie("")},[]),dn=f.useCallback((n=!1)=>{if(!Xe)return;const d=m.findIndex(y=>y.id===Xe);if(d===-1){jt();return}const l=bt,p=m[d],g=m.map((y,b)=>b===d?{...y,content:l}:y);if(c(g),Be(null),Ie(""),n&&p.role==="user"){const y=g.slice(0,d);Me(l,y,fn(p))}},[jt,bt,Xe,m,Me]),or=f.useCallback(()=>{const n=gn(I,m,s);We(n),x("info","已尿¶æ¯åæ¥å°èªå®ä¹è¯·æ±ä½ã")},[I,s,m,x]),sr=f.useCallback(()=>{const n=Gr(I);if(!n){C("èªå®ä¹è¯·æ±ä½ä¸æ²¡æææçæ¶æ¯ã");return}c(n),x("info","å·²å°èªå®ä¹è¯·æ±ä½åæ¥å°æ¶æ¯ã")},[I,x]),ar=f.useCallback(()=>{try{const n=JSON.parse(I);We(JSON.stringify(n,null,2)),C("")}catch(n){C(`JSON è§£æé误ï¼${(n==null?void 0:n.message)||"æ æç JSON"}`)}},[I]),ir=f.useMemo(()=>Oe===A.PREVIEW?Bt:Oe===A.REQUEST?Pt:Ft,[Oe,Bt,Pt,Ft]),lr=e?"1fr":Ot.shouldRender?"340px minmax(0, 1fr) 360px":"340px minmax(0, 1fr)";return Bn?o.jsxs("div",{className:"animate-fade-in",children:[o.jsx("div",{className:"skeleton",style:{width:200,height:28,marginBottom:20}}),o.jsx("div",{className:"skeleton",style:{height:120,marginBottom:12,borderRadius:"var(--radius-md)"}}),o.jsx("div",{className:"skeleton",style:{height:520,borderRadius:"var(--radius-md)"}})]}):o.jsxs("div",{className:"animate-fade-in",children:[o.jsxs("div",{className:"page-header",children:[o.jsxs("div",{children:[o.jsx("h2",{className:"page-title",children:fr("æ¨¡åæµè¯")}),o.jsx("p",{style:{fontSize:13,color:"var(--color-text-muted)",margin:"4px 0 0"},children:"æ¯ææµå¼è¾åºã任塿¨¡å¼ãèªå®ä¹è¯·æ±ä½åè°è¯é¢æ¿ã"})]}),o.jsxs("div",{className:"page-actions",children:[o.jsx("button",{onClick:()=>Nt(n=>!n),className:"btn btn-ghost",style:{border:"1px solid var(--color-border)",padding:"8px 14px"},children:Qe?"éèè°è¯":"æ¾ç¤ºè°è¯"}),o.jsx("button",{onClick:()=>{Qn()},className:"btn btn-ghost",style:{border:"1px solid var(--color-border)",padding:"8px 14px"},disabled:N||!!M||!Se,children:"éè¯"}),o.jsx("button",{onClick:()=>{ln()},className:"btn btn-ghost",style:{border:"1px solid var(--color-border)",padding:"8px 14px"},disabled:!M&&!V.current,children:"忢"}),o.jsx("button",{onClick:Yn,className:"btn btn-ghost",style:{border:"1px solid var(--color-border)",padding:"8px 14px"},disabled:m.length===0&&!Se&&!M,children:"æ¸
é¤"})]})]}),o.jsxs("div",{style:{display:"grid",gridTemplateColumns:e?"repeat(2, minmax(0, 1fr))":"repeat(4, 1fr)",gap:12,marginBottom:16},className:"animate-slide-up stagger-1",children:[o.jsxs("div",{className:"stat-summary-card stat-summary-purple",children:[o.jsx("div",{className:"stat-summary-card-label",children:"æ¨¡åæ°é"}),o.jsx("div",{className:"stat-summary-card-value",children:t.length})]}),o.jsxs("div",{className:"stat-summary-card stat-summary-blue",children:[o.jsx("div",{className:"stat-summary-card-label",children:"å½å模å"}),o.jsx("div",{className:"stat-summary-card-value",style:{fontSize:14,wordBreak:"break-all"},children:s.model||"æªéæ©"})]}),o.jsxs("div",{className:"stat-summary-card stat-summary-green",children:[o.jsx("div",{className:"stat-summary-card-label",children:"对è¯è½®æ°"}),o.jsx("div",{className:"stat-summary-card-value",children:Hn})]}),o.jsxs("div",{className:"stat-summary-card stat-summary-orange",children:[o.jsx("div",{className:"stat-summary-card-label",children:"模å¼"}),o.jsxs("div",{className:"stat-summary-card-value",style:{fontSize:14},children:[s.mode==="conversation"?j?"èªå®ä¹è¯·æ±":s.stream?"æµå¼":"任塿¨¡å¼":s.mode," / ",s.protocol==="claude"?"Claude":s.protocol==="responses"?"OpenAI Responses":s.protocol==="gemini"?"Gemini":"OpenAI"]})]})]}),o.jsxs("div",{className:"animate-slide-up stagger-2",style:{display:"grid",gridTemplateColumns:lr,gap:16,alignItems:"stretch"},children:[o.jsxs("div",{className:"card",style:{padding:16,minHeight:e?"auto":680,maxHeight:e?"none":740,overflowY:e?"visible":"auto",order:e?2:0},children:[o.jsx("h3",{style:{margin:"0 0 12px",fontSize:15},children:"设置"}),o.jsxs("div",{style:{marginBottom:14},children:[o.jsx("div",{style:{fontSize:12,color:"var(--color-text-muted)",marginBottom:6,fontWeight:600},children:"æµè¯æ¨¡å¼"}
30),o.jsx(He,{value:s.mode,onChange:n=>{n&&de("mode",n)},options:yo,placeholder:"è¯·éæ©æµè¯æ¨¡å¼"})]}),o.jsxs("div",{style:{marginBottom:14},children:[o.jsx("div",{style:{fontSize:12,color:"var(--color-text-muted)",marginBottom:6,fontWeight:600},children:"模å"}),o.jsxs("div",{style:{display:"flex",gap:8,marginBottom:6,flexDirection:e?"column":"row"},children:[o.jsx("input",{value:i,onChange:n=>a(n.target.value),placeholder:"æç´¢æ¨¡åï¼æ¯æåç§°çæ®µï¼",style:{...J,flex:1,marginBottom:0},disabled:t.length===0}),o.jsx("button",{type:"button",className:"btn btn-ghost",style:{border:"1px solid var(--color-border)",whiteSpace:"nowrap"},onClick:()=>a(""),disabled:!i,children:"æ¸
空"})]}),o.jsx("div",{style:{fontSize:11,color:"var(--color-text-muted)",marginBottom:6},children:Gn}),o.jsx(He,{value:vt?s.model:"",onChange:n=>{n&&de("model",n)},options:Kn,placeholder:!vt&&s.model?`å½å模å已被çéï¼${s.model}`:t.length===0?"ææ æ¨¡å":ve.length===0?"æªæ¾å°å¹é
模å":"è¯·éæ©æ¨¡å",disabled:t.length===0||j||ve.length===0,emptyLabel:"æªæ¾å°å¹é
模å",menuMaxHeight:300}),!vt&&!!s.model&&o.jsxs("div",{style:{fontSize:11,color:"var(--color-text-muted)",marginTop:4},children:["å½å模å已被çéï¼",s.model]}),j&&o.jsx("div",{style:{fontSize:11,color:"var(--color-warning)",marginTop:4},children:"èªå®ä¹è¯·æ±æ¨¡å¼ä¸æ¨¡åéæ©å°è¢«å¿½ç¥ã"})]}),o.jsxs("div",{style:{marginBottom:14},children:[o.jsx("div",{style:{fontSize:12,color:"var(--color-text-muted)",marginBottom:6,fontWeight:600},children:"åè®® / è¾åºæ ¼å¼"}),o.jsx(He,{value:s.protocol,onChange:n=>{n&&qn(n)},options:ho,placeholder:"è¯·éæ©åè®®"}),o.jsx("div",{style:{fontSize:11,color:"var(--color-text-muted)",marginTop:4},children:"å¯¹è¯æ¨¡å¼ä¸å¯æ¨¡æ OpenAI / Responses / Claude / Gemini Nativeã"})]}),o.jsxs("div",{style:{marginBottom:14},children:[o.jsx("div",{style:{fontSize:12,color:"var(--color-text-muted)",marginBottom:6,fontWeight:600},children:"åºå®éé"}),o.jsx(He,{value:typeof W=="number"?String(W):"__auto__",onChange:n=>{if(!n||n==="__auto__"){te(null);return}const d=Number.parseInt(n,10);te(Number.isFinite(d)&&d>0?d:null)},options:Vn,placeholder:Ke?"å è½½ééä¸...":"èªå¨éè·¯ï¼é»è®¤ï¼",disabled:j||s.mode==="videos.inspect"||Ke,emptyLabel:"å½åæ¨¡åææ å¯åºå®éé",menuMaxHeight:300}),o.jsx("div",{style:{fontSize:11,color:"var(--color-text-muted)",marginTop:4},children:Pn||(typeof W=="number"?`å·²åºå®å°éé #${W}ï¼å¤±è´¥ä¸ä¼èªå¨åæ¢ã`:"é»è®¤èªå¨éè·¯ï¼å¦éåç¬ææ¥ï¼å¯åºå®å°ä¸ä¸ªåéééã")})]}),s.mode==="conversation"&&o.jsxs("div",{style:{marginBottom:14},children:[o.jsx("div",{style:{fontSize:12,color:"var(--color-text-muted)",marginBottom:6,fontWeight:600},children:"System Prompt"}),o.jsx("textarea",{value:s.systemPrompt,onChange:n=>de("systemPrompt",n.target.value),rows:4,placeholder:"å¯éçç³»ç»æç¤ºè¯ï¼ä¼å¨åéæ¶ç¬ç«æ³¨å
¥è¯·æ±ã",style:{...J,resize:"vertical",fontFamily:"inherit",lineHeight:1.5}})]}),o.jsxs("div",{style:{marginBottom:14,display:"flex",alignItems:"center",justifyContent:"space-between"},children:[o.jsx("div",{style:{fontSize:13,fontWeight:600},children:"æµå¼è¾åº"}),o.jsxs("label",{style:{display:"inline-flex",alignItems:"center",gap:8,fontSize:12,color:"var(--color-text-secondary)"},children:[o.jsx("input",{type:"checkbox",checked:s.stream,onChange:n=>de("stream",n.target.checked),disabled:j||s.mode!=="conversation"}),"å¯ç¨"]})]}),s.mode!=="conversation"&&o.jsx("div",{style:{fontSize:11,color:"var(--color-text-muted)",marginBottom:14},children:"å½å模å¼é»è®¤èµ°åæ¥è¯·æ±ï¼Search / Embeddings / Images / Videos ä¼éè¿éç¨ proxy tester ç´è¾¾å¯¹åºæ¥å£ã"}),o.jsxs("div",{style:{marginBottom:14,display:"flex",alignItems:"center",justifyContent:"space-between"},children:[o.jsx("div",{style:{fontSize:13,fontWeight:600},children:"èªå®ä¹è¯·æ±ä½"}),o.jsxs("label",{style:{display:"inline-flex",alignItems:"center",gap:8,fontSize:12,color:"var(--color-text-secondary)"},children:[o.jsx("input",{type:"checkbox",checked:j,onChange:n=>Dt(n.target.checked)}),"å¯ç¨"]})]}),o.jsx("div",{className:`anim-collapse ${j?"is-open":""}`.trim(),style:{marginBottom:14},children:o.jsxs("div",{className:"anim-collapse-inner",children:[o.jsx("textarea",{value:I,onChange:n=>We(n.target.value),rows:11,placeholder:'{"model":"gpt-4o-mini","targetFormat":"claude","messages":[{"role":"user","content":"hello"}],"stream":true}',style:{...J,resize:"vertical",fontFamily:"var(--font-mono)",lineHeight:1.5}}),o.jsxs("div",{style:{marginTop:8,display:"flex",gap:8,flexWrap:"wrap"},children:[o.jsx("button",{className:"btn btn-ghost",style:{border:"1px solid var(--color-border)"},onClick:ar,children:"æ ¼å¼å JSON"}),s.mode==="conversation"&&o.jsxs(o.Fragment,{children:[o.jsx("button",{className:"btn btn-ghost",style:{border:"1px solid var(--color-border)"},onClick:or,children:"æ¶æ¯ -> 请æ±ä½"}),o.jsx("button",{className:"btn btn-ghost",style:{border:"1px solid var(--color-border)"},onClick:sr,children:"请æ±ä½ -> æ¶æ¯"})]})]})]})}),o.jsx("div",{style:{fontSize:12,color:"var(--color-text-muted)",marginBottom:8,fontWeight:600},children:"éæ ·åæ°"}),o.jsx(Ue,{title:"温度",valueText:s.temperature.toFixed(2),enabled:S.temperature,onToggle:()=>ze("temperature"),disabled:j,children:o.jsx("input",{type:"range",min:0,max:2,step:.1,value:s.temperature,onChange:n=>de("temperature",Re(n.target.value,s.temperature)),style:{width:"100%",accentColor:"var(--color-primary)"},disabled:!S.temperature||j})}),o.jsx(Ue,{title:"Top P",valueText:s.top_p.toFixed(2),enabled:S.top_p,onToggle:()=>ze("top_p"),disabled:j,children:o.jsx("input",{type:"range",min:0,max:1,step:.
3005,value:s.top_p,onChange:n=>de("top_p",Re(n.target.value,s.top_p)),style:{width:"100%",accentColor:"var(--color-primary)"},disabled:!S.top_p||j})}),o.jsx(Ue,{title:"é¢çæ©ç½",valueText:s.frequency_penalty.toFixed(2),enabled:S.frequency_penalty,onToggle:()=>ze("frequency_penalty"),disabled:j,children:o.jsx("input",{type:"range",min:-2,max:2,step:.1,value:s.frequency_penalty,onChange:n=>de("frequency_penalty",Re(n.target.value,s.frequency_penalty)),style:{width:"100%",accentColor:"var(--color-primary)"},disabled:!S.frequency_penalty||j})}),o.jsx(Ue,{title:"å卿©ç½",valueText:s.presence_penalty.toFixed(2),enabled:S.presence_penalty,onToggle:()=>ze("presence_penalty"),disabled:j,children:o.jsx("input",{type:"range",min:-2,max:2,step:.1,value:s.presence_penalty,onChange:n=>de("presence_penalty",Re(n.target.value,s.presence_penalty)),style:{width:"100%",accentColor:"var(--color-primary)"},disabled:!S.presence_penalty||j})}),o.jsx(Ue,{title:"æå¤§ Token æ°",enabled:S.max_tokens,onToggle:()=>ze("max_tokens"),disabled:j,children:o.jsx("input",{type:"number",value:s.max_tokens,min:1,step:1,onChange:n=>de("max_tokens",Re(n.target.value,s.max_tokens)),style:J,disabled:!S.max_tokens||j})}),o.jsx(Ue,{title:"éæºç§å",valueText:s.seed===null?"èªå¨":String(s.seed),enabled:S.seed,onToggle:()=>ze("seed"),disabled:j,children:o.jsx("input",{type:"number",value:s.seed??"",min:0,step:1,placeholder:"å¯éç§åå¼",onChange:n=>{const d=n.target.value.trim();de("seed",d.length===0?null:Re(d,0))},style:J,disabled:!S.seed||j})})]}),o.jsxs("div",{className:"card",style:{padding:0,overflow:"hidden",minHeight:e?"auto":680,maxHeight:e?"none":740,display:"flex",flexDirection:"column",order:e?1:0},children:[o.jsxs("div",{style:{padding:"14px 16px",borderBottom:"1px solid var(--color-border-light)",display:"flex",alignItems:"center",justifyContent:"space-between",background:"var(--color-bg-card)"},children:[o.jsx("div",{style:{fontSize:14,fontWeight:700},children:"对è¯"}),o.jsx("div",{style:{fontSize:12,color:"var(--color-text-muted)"},children:N?"çæä¸...":"就绪"})]}),o.jsx("div",{style:{flex:1,minHeight:280,overflowY:"auto",padding:18,background:"var(--color-bg)"},children:s.mode!=="conversation"?o.jsxs("div",{style:{display:"flex",flexDirection:"column",gap:14},children:[o.jsxs("div",{style:{padding:14,border:"1px solid var(--color-border-light)",borderRadius:"var(--radius-md)",background:"var(--color-bg-card)"},children:[o.jsx("div",{style:{fontSize:13,fontWeight:700,marginBottom:6},children:s.mode==="embeddings"?"Embeddings ç»æ":s.mode==="search"?"Search ç»æ":s.mode.startsWith("images")?"å¾çç»æ":"è§é¢ä»»å¡ç»æ"}),o.jsx("div",{style:{fontSize:12,color:"var(--color-text-muted)"},children:"æ°æ¨¡å¼èµ°éç¨ proxy testerï¼ç»æåæ¶ä¼åå
¥å³ä¾§è°è¯é¢æ¿ã"})]}),Array.isArray(we==null?void 0:we.data)&&we.data.some(n=>(n==null?void 0:n.url)||(n==null?void 0:n.b64_json))&&o.jsx("div",{style:{display:"grid",gridTemplateColumns:"repeat(auto-fit, minmax(220px, 1fr))",gap:12},children:we.data.map((n,d)=>{const l=typeof(n==null?void 0:n.url)=="string"?n.url:typeof(n==null?void 0:n.b64_json)=="string"?`data:image/png;base64,${n.b64_json}`:"";return l?o.jsx("div",{style:{border:"1px solid var(--color-border-light)",borderRadius:"var(--radius-md)",overflow:"hidden",background:"var(--color-bg-card)"},children:o.jsx("img",{src:l,alt:`generated-${d}`,style:{width:"100%",display:"block"}})},`image-${d}`):null})}),o.jsx("pre",{style:{margin:0,padding:14,borderRadius:"var(--radius-md)",border:"1px solid var(--color-border-light)",background:"var(--color-bg-card)",fontSize:12,lineHeight:1.6,whiteSpace:"pre-wrap",wordBreak:"break-word",fontFamily:"var(--font-mono)"},children:we?ie(we):"// ææ ç»æ"})]}):m.length===0?o.jsxs("div",{className:"empty-state",style:{padding:"40px 0"},children:[o.jsx("svg",{className:"empty-state-icon",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor",children:o.jsx("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:1,d:"M8 10h.01M12 14h.01M16 10h.01M9 16h6M12 3C7.03 3 3 6.582 3 11c0 2.2 1.003 4.193 2.63 5.64V2
301l3.376-1.847A10.76 10.76 0 0012 19c4.97 0 9-3.582 9-8s-4.03-8-9-8z"})}),o.jsx("div",{className:"empty-state-title",children:"å¼å§å¯¹è¯æµè¯"}),o.jsx("div",{className:"empty-state-desc",children:"æ¯ææµå¼æ¨¡å¼ãèªå®ä¹è¯·æ±ä½æ¨¡å¼å坿¢å¤çä»»å¡ã"})]}):o.jsxs("div",{style:{display:"flex",flexDirection:"column",gap:14},children:[m.map(n=>{const d=n.role==="user",l=n.role==="system",p=n.status===R.LOADING||n.status===R.INCOMPLETE,g=n.status===R.ERROR,y=!!n.reasoningContent,b=Xe===n.id,w=Array.isArray(n.parts)?n.parts.filter(E=>E.type==="input_file"):[];return o.jsxs("div",{className:"animate-fade-in",style:{display:"flex",gap:10,flexDirection:d?"row-reverse":"row"},children:[o.jsx("div",{style:{width:30,height:30,borderRadius:8,display:"flex",alignItems:"center",justifyContent:"center",fontSize:12,fontWeight:700,flexShrink:0,background:d?"linear-gradient(135deg, var(--color-primary), color-mix(in srgb, var(--color-primary) 58%, white))":l?"linear-gradient(135deg, color-mix(in srgb, var(--color-text-secondary) 88%, black), color-mix(in srgb, var(--color-text-muted) 70%, white))":g?"linear-gradient(135deg, var(--color-danger), color-mix(in srgb, var(--color-danger) 68%, white))":"linear-gradient(135deg, var(--color-success), color-mix(in srgb, var(--color-success) 62%, white))",color:"white"},children:d?"U":l?"SYS":"AI"}),o.jsxs("div",{style:{maxWidth:e?"100%":"78%",display:"flex",flexDirection:"column",gap:6,minWidth:0,flex:e?1:"initial"},children:[y&&o.jsxs("div",{style:{border:"1px solid color-mix(in srgb, var(--color-primary) 28%, transparent)",background:"color-mix(in srgb, var(--color-primary) 9%, var(--color-bg-card))",borderRadius:"10px",overflow:"hidden"},children:[o.jsxs("button",{onClick:()=>Xn(n.id),style:{width:"100%",display:"flex",justifyContent:"space-between",alignItems:"center",border:"none",background:"transparent",cursor:"pointer",padding:"8px 10px",fontSize:12,fontWeight:600,color:"var(--color-primary)"},children:[o.jsx("span",{children:p?"æèä¸...":"æ¨çè¿ç¨"}),o.jsx("span",{children:n.isReasoningExpanded?"â¼":"â¶"})]}),o.jsx("div",{className:`anim-collapse ${n.isReasoningExpanded?"is-open":""}`.trim(),children:o.jsx("div",{className:"anim-collapse-inner",children:o.jsx("div",{style:{padding:"8px 10px",borderTop:"1px solid color-mix(in srgb, var(--color-primary) 20%, transparent)",fontSize:12,lineHeight:1.7,whiteSpace:"pre-wrap",color:"var(--color-text-secondary)"},children:n.reasoningContent})})})]}),o.jsx("div",{style:{padding:"10px 12px",borderRadius:d?"12px 12px 3px 12px":"12px 12px 12px 3px",background:d?"var(--color-primary)":g?"var(--color-danger-soft)":"var(--color-bg-card)",color:d?"white":"var(--color-text-primary)",border:d?"none":g?"1px solid color-mix(in srgb, var(--color-danger) 32%, transparent)":"1px solid var(--color-border-light)",fontSize:13,lineHeight:1.65,whiteSpace:"pre-wrap",wordBreak:"break-word",boxShadow:"var(--shadow-sm)",minHeight:24},children:b?o.jsxs("div",{style:{display:"flex",flexDirection:"column",gap:8},children:[o.jsx("textarea",{value:bt,onChange:E=>Ie(E.target.value),rows:3,style:{...J,resize:"vertical",background:"var(--color-bg-card)",color:"var(--color-text-primary)"}}),o.jsxs("div",{style:{display:"flex",gap:8,justifyContent:"flex-end"},children:[n.role==="user"&&o.jsx("button",{className:"btn btn-ghost",style:{border:"1px solid var(--color-border)"},onClick:()=>dn(!0),children:"ä¿åå¹¶éè¯"}),o.jsx("button",{className:"btn btn-primary",onClick:()=>dn(!1),children:"ä¿å"}),o.jsx("button",{className:"btn btn-ghost",style:{border:"1px solid var(--color-border)"},onClick:jt,children:"åæ¶"})]})]}):o.jsxs(o.Fragment,{children:[p&&o.jsx("span",{className:"spinner spinner-sm",style:{marginRight:6,verticalAlign:"middle"}}),n.content||(p?"æèä¸...":"")]})}),!b&&w.length>0&&o.jsx("div",{style:{display:"flex",gap:6,flexWrap:"wrap",marginTop:8},children:w.map((E,O)=>o.jsxs("span",{style:{display:"inline-flex",alignItems:"center",gap:6,padding:"4px 8px",borderRadius:999,border:"1px solid var(--color-border-light)",background:"var(--color-bg-subtle)",color:"var(--color-text-secondary)",fontSize:11,maxWidth:"100%"},title:E.fileId||E.filename||"éä»¶",children:[o.jsx("span",{children:"ð"}),o.jsx("span",{style:{overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:E.filename||E.fileId||"éä»¶"})]},`${n.id}-file-${E.fileId||E.filename||O}`))}),!b&&o.jsxs("div",{style:{display:"flex",gap:6,flexWrap:"wrap"},children:[!p&&o.jsx("button",{className:"btn btn-ghost",style:{border:"1px solid var(--color-border)",padding:"4px 8px",fontSize:11},onClick:()=>nr(n),disabled:N||!!M,children:"éè¯"}),o.jsx("button",{className:"btn btn-ghost",style:{border:"1px solid var(--color-border)",padding:"4px 8px",fontSize:11},onClick:()=>{Zn(n)},children:"å¤å¶"}),!p&&o.jsx("button",{className:"btn btn-ghost",style:{border:"1px solid var(--color-border)",padding:"4px 8px",fontSize:11},onClick:()=>rr(n),disabled:N,children:"ç¼è¾"}),!p&&o.jsx("button",{className:"btn btn-ghost",style:{border:"1px solid var(--color-border)",padding:"4px 8px",fontSize:11},onClick:()=>er(n),disabled:N,children:"å é¤"}),(n.role==="assistant"||n.role==="system")&&!p&&o.jsx("button",{className:"btn btn-ghost",style:{border:"1px solid var(--color-border)",padding:"4px 8px",fontSize:11},onClick:()=>tr(n),disabled:N,children:n.role==="assistant"?"转为系ç»":"è½¬ä¸ºå©æ"})]})]})]},n.id)}),o.jsx("div",{ref:Wt})]})}),o.jsxs("div",{style:{borderTop:"1px solid var(--color-border-light)",padding:14,background:"var(--color-bg-card)"},children:[Rt&&o.jsx("div",{className:"alert alert-error animate-scale-in",style:{marginBottom:10},children:Rt}),s.mode==="conversation"?o.jsx(uo,{isMobile:e,sending:N,customRequestMode:j,conversationFileCapability:q,conversationFileSupported:$e,conversationFileAccept:Un,conversationFileHint:Ve,conversationFiles:U,conversationFileInputRef:Ln,input:u,canSend:tt,inputBaseStyle:J,onInputChange:h,onFilesChange:Jn,onRemoveConversationFile:Wn,onSend:an,onStop:ln}):o.jsxs("div",{style:{display:"flex",flexDirection:"column",gap:10},children:[s.mode==="embeddings"&&o.jsx("textarea",{value:Te,onChange:n=>ft(n.target.value),rows:4,placeholder:"è¾å
¥ embeddings æµè¯ææ¬ï¼æ¯æåæ¡æå¤è¡ã",style:{...J,resize:"vertical"}}),s.mode==="search"&&o.jsxs(o.Fragment,{children:[o.jsx("textarea",{value:ge,onChange:n=>ct(n.target.value),rows:3,placeholder:"è¾å
¥æç´¢æ¥è¯¢",style:{...J,resize:"vertical"}}),o.jsxs("div",{style:{display:"grid",gridTemplateColumns:e?"1fr":"1fr 1fr 120px",gap:10},children:[o.jsx("input",{value:Pe,onChange:n=>ut(n.target.value),placeholder:"allowed_domains (éå·åé)",style:J}
30),o.jsx("input",{value:Fe,onChange:n=>pt(n.target.value),placeholder:"blocked_domains (éå·åé)",style:J}),o.jsx("input",{value:mt,onChange:n=>Ut(Re(n.target.value,10)),type:"number",min:1,max:20,style:J})]})]}),(s.mode==="images.generate"||s.mode==="images.edit"||s.mode==="videos.create")&&o.jsxs(o.Fragment,{children:[o.jsx("textarea",{value:B,onChange:n=>gt(n.target.value),rows:3,placeholder:s.mode==="videos.create"?"è¾å
¥è§é¢çææç¤ºè¯":"è¾å
¥å¾çæç¤ºè¯",style:{...J,resize:"vertical"}}),(s.mode==="images.edit"||s.mode==="videos.create")&&o.jsxs("div",{style:{display:"grid",gridTemplateColumns:e?"1fr":s.mode==="images.edit"?"1fr 1fr":"1fr",gap:10},children:[o.jsxs("label",{style:{fontSize:12,color:"var(--color-text-secondary)"},children:[o.jsx("div",{style:{marginBottom:6},children:s.mode==="images.edit"?"åå¾":"åèå¾"}),o.jsx("input",{type:"file",accept:"image/*",onChange:n=>{Ht(n.target.files,qt)}})]}),s.mode==="images.edit"&&o.jsxs("label",{style:{fontSize:12,color:"var(--color-text-secondary)"},children:[o.jsx("div",{style:{marginBottom:6},children:"Mask"}),o.jsx("input",{type:"file",accept:"image/*",onChange:n=>{Ht(n.target.files,Jt)}})]})]})]}),s.mode==="videos.inspect"&&o.jsxs("div",{style:{display:"grid",gridTemplateColumns:e?"1fr":"1fr 160px",gap:10},children:[o.jsx("input",{value:ye,onChange:n=>yt(n.target.value),placeholder:"è¾å
¥ public video id",style:J}),o.jsx(He,{value:ht,onChange:n=>{n&&xt(n)},options:[{value:"GET",label:"GET"},{value:"DELETE",label:"DELETE"}]})]}),o.jsx("div",{style:{display:"flex",justifyContent:"flex-end"},children:o.jsx("button",{onClick:()=>{an()},disabled:!tt,className:"btn btn-primary",style:{minWidth:120,height:42},children:"åé请æ±"})})]})]})]}),o.jsx(po,{presence:Ot,isMobile:e,debugTimestamp:zn,activeDebugTab:Oe,onTabChange:X,debugTabContent:ir,debugTimeline:$n})]})]})}export{jo as default};
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.