1import{B as be,N as _e,U as we,S as ye,r as v,Y as Ae,f as Te,g as Se,c as g,a as n,y as _,b as A,w as ke,j as e,t as i,d as $,l as G,V as Ce,m as J,F as W,k as ee,L as F,v as te,n as w,G as Ie,$ as Oe,q as je,P as Me,o as f,x as $e}from"./BQgW2Aai.js";import{_ as Ue}from"./Dj3mMVFl.js";import{u as Ne}from"./D2hm3VPF.js";const Ee={class:"max-w-4xl mx-auto px-2 py-4 sm:px-4"},De={class:"mb-4 sm:mb-6 flex flex-col sm:flex-row sm:items-center sm:justify-between gap-3"},Pe={class:"text-xl sm:text-2xl font-semibold text-neutral-900"},Le={key:0,class:"mb-4 sm:mb-6 bg-white rounded-xl border border-neutral-200 p-4 sm:p-5"},Re={class:"font-medium text-neutral-900 mb-4"},ze={class:"space-y-4"},Be={class:"flex flex-col sm:flex-row gap-3"},He={value:""},We={value:"none"},Fe={value:"custom"},Ve=["value"],Ze=["disabled"],Ge={key:0,class:"border-t border-neutral-100 pt-4"},Je={class:"block text-sm font-medium text-neutral-700 mb-2"},qe=["placeholder"],Ye={class:"mt-1.5 text-xs text-neutral-500"},Xe={key:1,class:"border border-neutral-200 rounded-xl p-4 bg-neutral-50"},Ke={class:"text-xs font-medium text-neutral-500 mb-2 uppercase tracking-wide"},Qe={class:"flex"},et=["innerHTML"],tt={class:"mt-3 grid grid-cols-2 gap-4 text-xs text-neutral-500"},st={class:"font-medium text-neutral-600"},at={class:"font-medium text-neutral-600"},nt={key:2,class:"border border-neutral-200 rounded-xl p-4 bg-neutral-50"},ot={class:"text-xs font-medium text-neutral-500 mb-2 uppercase tracking-wide"},rt={class:"flex"},lt=["innerHTML"],it={class:"bg-white rounded-xl border border-neutral-200 overflow-hidden"},ut={class:"border-b border-neutral-200"},ct={key:0,class:"px-3 sm:px-4 py-3 bg-neutral-50 flex flex-wrap items-center gap-2 text-sm"},dt={class:"flex items-center"},pt={class:"text-neutral-600"},mt={class:"font-mono bg-white px-2 py-0.5 rounded-md border border-neutral-200 text-xs text-neutral-600"},ft={class:"flex items-center"},ht={class:"font-medium mr-2"},gt={class:"text-xs text-neutral-500 italic"},xt={key:0,class:"text-center text-neutral-400 py-8 text-sm"},vt=["src"],bt=["src"],_t=["onClick"],wt=["onClick"],yt=["innerHTML"],At=["onLoadedmetadata","onTimeupdate","onEnded","src"],Tt=["innerHTML"],St={class:"border-t border-neutral-200 p-3 sm:p-4 bg-neutral-50"},kt={key:0,class:"mb-3 relative w-24"},Ct=["src"],It=["placeholder","disabled"],Ot={for:"image-upload-input",class:"cursor-pointer p-2 rounded-lg border border-neutral-200 hover:bg-neutral-100 flex items-center flex-shrink-0 bg-white transition-colors"},jt=["disabled"],Mt={class:"hidden sm:inline"},$t={key:1,class:"text-xs text-red-600 mt-2 flex items-center gap-1"},Ut={key:2,class:"text-xs text-red-600 mt-2 flex items-center gap-1"},Lt={__name:"[id]",setup(Nt){const q=be(),se=_e(),Y=we(),{accountId:ae}=ye(),T=Oe(),{t:l}=Ne(),V=v(null),x=v([]),S=v(""),O=v(!1),P=v(null),L=v([]),b=v(""),R=v(!1),k=v(!1),p=v(null),j=v(""),U=v(!1),X=v(null),M=v(null),D=v(null),Z=v(!1),C=v({}),u=Ae({});function ne(s,o){var d;const r=C.value[s];r&&((d=u[s])!=null&&d.playing?(r.pause(),u[s].playing=!1):(Object.keys(C.value).forEach(h=>{h!==s&&C.value[h]&&(C.value[h].pause(),u[h]&&(u[h].playing=!1))}),r.play(),u[s]?u[s].playing=!0:u[s]={playing:!0,progress:0,currentTime:0,duration:0,speed:1}))}function oe(s){const o=C.value[s];if(!o)return;const r=Number.isFinite(o.duration)?o.duration:0;u[s]?u[s].duration=r:u[s]={playing:!1,progress:0,currentTime:0,duration:r,speed:1}}function re(s){const o=C.value[s];!o||!u[s]||(u[s].currentTime=o.currentTime,u[s].progress=u[s].duration>0?o.currentTime/u[s].duration*100:0)}function le(s){u[s]&&(u[s].playing=!1,u[s].progress=0,u[s].currentTime=0)}function ie(s,o){var t;const r=C.value[o];if(!r||!((t=u[o])!=null&&t.duration))return;const d=s.currentTarget.getBoundingClientRect(),h=(s.clientX-d.left)/d.width;r.currentTime=h*u[o].duration}function ue(s){const o=C.value[s];if(!o||!u[s])return;const r=[1,1.5,2],d=u[s].speed||1,h=r[(r.indexOf(d)+1)%r.length];o.playbackRate=h,u[s].speed=h}function K(s){const o=Math.floor(s/60),r=Math.floor(s%60);return`${o}:${r.toString().padStart(2,"0")}`}async function ce(){try{const{data:s,error:o}=await se.from("client_config").select("*").eq("user_id",ae.value).single();if(o)throw o;X.value=s}catch(s){console.error("Error fetching client config:",s),T.error(l("testAssistant.errors.fetchConfig"))}}async function de(){try{const s=q.params.id,o=await fetch(`/api/fetch-assistant?assistantId=${s}`,{method:"GET",headers:{"Content-Type":"application/json",userId:Y.value.id}});if(!o.ok)throw new Error("Failed to fetch assistant details");const r=await o.json();V.value={...r,id:s}}catch(s){T.error(l("testAssistant.errors.fetchAssistant",{error:s.message}))}}async function pe(){try{const s=await fetch(`/api/fetch-templates?clientName=${X.value.client_name}`,{method:"GET"});if(!s.ok)throw new Error("Failed to fetch templates");const o=await s.json();L.value=o.templates}catch(s){console.error("Error fetching templates:",s),T.error(l("testAssistant.errors.fetchTemplates"))}}const z=Te(()=>b.value?L.value.find(s=>
1s.name===b.value):null);async function me(){const s=b.value!=="custom"&&b.value!=="none"&&b.value!=="",o=U.value&&j.value.trim(),r=b.value==="none";if(!s&&!o&&!r){T.error(l("testAssistant.errors.selectTemplateOrCustom"));return}if(U.value&&!j.value.trim()){T.error(l("testAssistant.errors.enterCustomMessage"));return}R.value=!0;try{let d="";if(s){const h=L.value.find(t=>t.name===b.value);if(!h)throw new Error(l("testAssistant.errors.templateNotFound"));d=h.content}else o&&(d=j.value.trim());d?x.value=[{sender:"assistant",message:d,timestamp:new Date().toISOString()}]:x.value=[],k.value=!0,N()}catch(d){T.error(l("testAssistant.errors.startChat",{error:d.message})),x.value=[],k.value=!1}finally{R.value=!1}}function fe(s){const o=s.target.files[0];o&&o.type.startsWith("image/")?(M.value=o,D.value=URL.createObjectURL(o)):(M.value=null,D.value=null,T.error(l("testAssistant.errors.invalidImage")))}function Q(){M.value=null,D.value=null;const s=document.getElementById("image-upload-input");s&&(s.value="")}function N(){Me(()=>{P.value&&(P.value.scrollTop=P.value.scrollHeight)})}function he(s){if(!s.imageUrl){s.imageId&&console.warn("AI returned image_id but no imageUrl was resolved:",s.imageId);return}x.value.push({sender:"assistant",message:"",json_step:s.jsonStep||"autre",timestamp:new Date().toISOString(),tag:s.tag||"",image_file:s.imageUrl,...s.imageId&&{image_id:s.imageId}})}async function ge(){if(!S.value.trim()&&!M.value||O.value||!k.value)return;O.value=!0;let s=null;if(M.value){Z.value=!0;try{const d=new FormData;d.append("file",M.value);const h=await fetch("/api/upload-image",{method:"POST",body:d});if(!h.ok)throw new Error(l("testAssistant.errors.imageUpload"));s=(await h.json()).url}catch(d){T.error(d.message),O.value=!1,Z.value=!1;return}finally{Z.value=!1}}const o={sender:"user",message:S.value.trim(),timestamp:new Date().toISOString(),...s&&{image_url:s}};x.value.push(o),N();const r=S.value;S.value="",Q();try{const d=x.value.slice(0,-1);console.log("=== SENDING TO AI ==="),console.log("New message:",r),console.log("Image URL:",s),console.log("Conversation history being sent:",JSON.stringify(d,null,2)),console.log("History breakdown:"),d.forEach((a,c)=>{var m,E;a.type==="function_call_output"?console.log(` [${c}] FUNCTION OUTPUT: ${a.function_name} â ${(m=a.output)==null?void 0:m.substring(0,100)}...`):console.log(` [${c}] ${a.sender}: ${(E=a.message)==null?void 0:E.substring(0,50)}... | step: ${a.json_step||"N/A"} | tag: ${a.tag||"N/A"}`)}),console.log("=====================");const h=await fetch("/api/test-assistant",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({assistantId:V.value.id,message:r,userId:Y.value.id,conversationHistory:d,imageUrl:s})});if(!h.ok)throw new Error(l("testAssistant.errors.getResponse"));const t=await h.json();if(console.log("=== RECEIVED FROM AI ==="),console.log("Response:",t.response),console.log("JSON Step:",t.jsonStep),console.log("Tag:",t.tag),console.log("Function call outputs:",t.functionCallOutputs),console.log("========================"),t.jsonStep&&(p.value=t.jsonStep,console.log("AI Status updated:",p.value)),t.functionCallOutputs&&t.functionCallOutputs.length>0){console.log("=== ADDING FUNCTION OUTPUTS TO HISTORY ===");for(const a of t.functionCallOutputs){const c={type:"function_call_output",function_name:a.function_name,call_id:a.call_id,arguments:a.arguments,output:a.output,timestamp:new Date().toISOString()};console.log("Adding function output:",c),x.value.push(c)}console.log("==========================================")}if(t.audioUrl){t.audioTextBefore&&x.value.push({sender:"assistant",message:t.audioTextBefore,timestamp:new Date().toISOString(),json_step:t.jsonStep,tag:t.tag||""});const a=t.audioTranscript||"";x.value.push({sender:"assistant",message:a,timestamp:new Date().toISOString(),json_step:t.jsonStep,tag:t.tag||"",audio_file:t.audioUrl,...t.audioId&&{audio_id:t.audioId}}),t.audioTextAfter&&x.value.push({sender:"assistant",message:t.audioTextAfter,timestamp:new Date().toISOString(),json_step:t.jsonStep,tag:t.tag||""}),N(),O.value=!1;return}if(t.audioId&&console.warn("AI returned audio_id but no audioUrl was resolved:",t.audioId),t.messageParts&&Array.isArray(t.messageParts)&&t.messageParts.length>0)for(let a=0;a<t.messageParts.length;a++){let c=t.messageParts[a].trim();if(c.startsWith("{")&&c.endsWith("}"))try{const m=JSON.parse(c);m&&typeof m.response=="string"&&(c=m.response.trim())}catch{}if(c=c.replace(/\(e\)/g,""),c.endsWith(".")&&(c=c.slice(0,-1)),!!c){if(a>0){const m=c.length;let y=m*40;y=Math.min(y,5e3),y<1&&m>0?y=1:y<1&&m===0&&(y=0),console.log(`Typing delay for part ${a+1} (length ${m}): ${y}ms`),y>0&&await new Promise(H=>setTimeout(H,y))}x.value.push({sender:"assistant",message:c,timestamp:new Date().toISOString(),json_step:t.jsonStep,tag:t.tag||""}),N()}}else{let a=null,c=!1;try{const m=typeof t.response=="string"?JSON.parse(t.response):t.response;m&&(m.json_step&&(p.value=m.json_step,console.log("AI Status updated:",p.value)),m.response&&m.response.trim()?(a=m.response.replace(/\(e\)/g,""),a.endsWith(".")&&(a=a.slice(0,-1)),c=!0):typeof m=="string"&&m.trim()&&(a=m.replace(/\(e\)/g,""),a.endsWith(".")&&(a=a.slice(0,-1)),c=!0))}catch{t.response&&typeof t.response=="string"&&t.response.trim()&&(a=t.response.replace(/\(e\)/g,""),a.endsWith(".")&&(a=a.slice(0,-1)),c=!0)}c&&a&&(x.value.push({sender:"assistant",message:a,timestamp:new Date().toISOString(),json_step:t.jsonStep,tag:t.tag||""}),N())}he(t),N()}catch(d){T.error(l("testAssistant.errors.getResponseError",{error:d.message}))}finally{O.value=!1}}const xe=s=>String(s).replace(/&/g,"&").replace(/</g,"<").replace(/>/g,">").replace(/"/g,""").replace(/'/g,"'"),B=s=>{if(!s)return"";let o=xe(s).replace(/\n/g,"<br>");const r=/(https?:\/\/[^\s<]+|www\.[^\s<]+|[a-zA-Z0-9][a-zA-Z0-9-]*\.[a-zA-Z0-9][a-zA-Z0-9-]*(?
1:\.[a-zA-Z]{2,})+(?:\/[^\s<]*)?|[a-zA-Z0-9][a-zA-Z0-9-]*\.[a-zA-Z]{2,}(?:\/[^\s<]+))(\.*?)(?=\s|<br>|$)/g;return o=o.replace(r,(d,h,t)=>{const a=h.replace(/\.+$/,"");let c=a;return!a.startsWith("http://")&&!a.startsWith("https://")&&(c="https://"+a),`<a href="${c}" target="_blank" rel="noopener noreferrer" class="underline hover:opacity-80">${a}</a>${t||""}`}),o};function ve(){x.value=[],b.value="",S.value="",k.value=!1,p.value=null}return Se(async()=>{await ce(),await Promise.all([de(),pe()])}),(s,o)=>{var h;const r=je,d=Ue;return f(),g("div",Ee,[n("div",De,[n("div",null,[A(d,{to:`/app/assistants/${e(q).params.id}`,class:"text-sm text-neutral-500 hover:text-neutral-900 flex items-center gap-1 mb-2 transition-colors"},{default:ke(()=>[A(r,{name:"heroicons:arrow-left",class:"w-4 h-4"}),$(" "+i(e(l)("testAssistant.backToAssistant")),1)]),_:1},8,["to"]),n("h1",Pe,i(e(l)("testAssistant.title"))+" "+i((h=e(V))==null?void 0:h.name),1)]),e(x).length>0?(f(),g("button",{key:0,onClick:ve,class:"text-neutral-600 hover:text-neutral-900 flex items-center gap-1.5 px-3 py-2 rounded-lg border border-neutral-200 hover:bg-neutral-50 text-sm self-start sm:self-auto transition-colors"},[A(r,{name:"heroicons:arrow-path",class:"w-4 h-4"}),$(" "+i(e(l)("testAssistant.resetConversation")),1)])):_("",!0)]),e(k)?_("",!0):(f(),g("div",Le,[n("h3",Re,i(e(l)("testAssistant.startChat.title")),1),n("div",ze,[n("div",Be,[G(n("select",{"onUpdate:modelValue":o[0]||(o[0]=t=>J(b)?b.value=t:null),class:"flex-1 rounded-lg border-neutral-200 focus:ring-0 focus:border-zinc-500 text-sm transition-colors",onChange:o[1]||(o[1]=t=>U.value=e(b)==="custom")},[n("option",He,i(e(l)("testAssistant.startChat.selectTemplate")),1),n("option",We,i(e(l)("testAssistant.startChat.noTemplate")),1),n("option",Fe,i(e(l)("testAssistant.startChat.customMessageOption")),1),(f(!0),g(W,null,ee(e(L),t=>(f(),g("option",{key:t.name,value:t.name},i(t.name),9,Ve))),128))],544),[[Ce,e(b)]]),n("button",{onClick:me,disabled:e(R)||e(b)===""&&!e(U),class:"bg-neutral-900 hover:bg-neutral-800 disabled:bg-neutral-300 text-white px-4 py-2 rounded-lg text-sm flex items-center justify-center gap-2 transition-colors"},[e(R)?(f(),F(r,{key:1,name:"heroicons:arrow-path",class:"w-4 h-4 animate-spin"})):(f(),F(r,{key:0,name:"heroicons:play",class:"w-4 h-4"}
1)),$(" "+i(e(l)("testAssistant.startChat.startButton")),1)],8,Ze)]),e(U)?(f(),g("div",Ge,[n("label",Je,i(e(l)("testAssistant.customMessage.label")),1),G(n("textarea",{"onUpdate:modelValue":o[2]||(o[2]=t=>J(j)?j.value=t:null),rows:"3",placeholder:e(l)("testAssistant.customMessage.placeholder"),class:"w-full px-3 py-2 border border-neutral-200 rounded-lg focus:ring-0 focus:border-zinc-500 text-base md:text-sm transition-colors"},null,8,qe),[[te,e(j)]]),n("p",Ye,i(e(l)("testAssistant.customMessage.description")),1)])):_("",!0),e(b)&&e(b)!=="custom"&&e(b)!=="none"&&e(z)?(f(),g("div",Xe,[n("div",Ke,i(e(l)("testAssistant.templatePreview.title")),1),n("div",Qe,[n("div",{class:"bg-white border border-neutral-200 rounded-xl rounded-bl-none p-3 max-w-[80%] text-sm text-neutral-700",innerHTML:B(e(z).content)},null,8,et)]),n("div",tt,[n("div",null,[n("span",st,i(e(l)("testAssistant.templatePreview.language")),1),$(" "+i(e(z).language),1)]),n("div",null,[n("span",at,i(e(l)("testAssistant.templatePreview.category")),1),$(" "+i(e(z).category),1)])])])):_("",!0),e(U)&&e(j).trim()?(f(),g("div",nt,[n("div",ot,i(e(l)("testAssistant.messagePreview.title")),1),n("div",rt,[n("div",{class:"bg-white border border-neutral-200 rounded-xl rounded-bl-none p-3 max-w-[80%] text-sm text-neutral-700",innerHTML:B(e(j))},null,8,lt)])])):_("",!0)])])),n("div",it,[n("div",ut,[e(k)?(f(),g("div",ct,[n("div",dt,[A(r,{name:"heroicons:chat-bubble-left-right",class:"w-4 h-4 text-neutral-400 mr-2"}),n("span",pt,i(e(l)("testAssistant.chat.activeThread")),1)]),n("span",mt,i(e(x).length)+" messages",1)])):_("",!0),e(p)?(f(),g("div",{key:1,class:w(["px-3 sm:px-4 py-2 flex flex-col sm:flex-row sm:items-center sm:justify-between gap-1 sm:gap-2 text-sm",{"bg-red-50 border-t border-red-100":e(p)==="off","bg-amber-50 border-t border-amber-100":e(p)==="end","bg-blue-50 border-t border-blue-100":e(p)!=="off"&&e(p)!=="end"}])},[n("div",ft,[A(r,{name:e(p)==="off"?"heroicons:x-circle":e(p)==="end"?"heroicons:flag":"heroicons:information-circle",class:w(["w-4 h-4 mr-2 flex-shrink-0",e(p)==="off"?"text-red-500":e(p)==="end"?"text-amber-600":"text-blue-500"])},null,8,["name","class"]),n("span",ht,i(e(l)("testAssistant.chat.aiStatus.label")),1),n("span",{class:w({"text-red-700":e(p)==="off","text-amber-700":e(p)==="end","text-blue-700":e(p)!=="off"&&e(p)!=="end"})},i(e(p)==="off"?e(l)("testAssistant.chat.aiStatus.off"):e(p)==="end"?e(l)("testAssistant.chat.aiStatus.ended"):e(p)),3)]),n("span",gt,i(e(p)==="off"?e(l)("testAssistant.chat.aiStatus.offDescription"):e(p)==="end"?e(l)("testAssistant.chat.aiStatus.endedDescription"):""),1)],2)):_("",!0)]),n("div",{class:"h-[50vh] sm:h-[60vh] overflow-y-auto p-3 sm:p-4 space-y-3 sm:space-y-4",ref_key:"chatContainer",ref:P},[e(x).length===0?(f(),g("div",xt,i(e(l)("testAssistant.chat.startMessage")),1)):_("",!0),(f(!0),g(W,null,ee(e(x),(t,a)=>{var c,m,E,y,H;return f(),g(W,{key:a},[t.sender&&!t.type?(f(),g("div",{key:0,class:w(["flex",t.sender==="user"?"justify-end":"justify-start"])},[n("div",{class:w(["max-w-[85%] sm:max-w-[70%] rounded-xl p-3 text-sm",t.sender==="user"?"bg-neutral-900 text-white rounded-br-none":"bg-neutral-100 text-neutral-800 rounded-bl-none"])},[t.image_url?(f(),g("img",{key:0,src:t.image_url,alt:"Uploaded image",class:"rounded-lg mb-2 max-w-full sm:max-w-xs"},null,8,vt)):_("",!0),t.image_file?(f(),g("img",{key:1,src:t.image_file,alt:"",class:"rounded-lg max-w-full sm:max-w-xs"},null,8,bt)):_("",!0),t.audio_file?(f(),g(W,{key:2},[n("div",{class:w(["flex items-center gap-2 py-2 px-3 rounded-lg",t.sender==="assistant"?"bg-neutral-200/50":"bg-white/20"])},[A(r,{name:(c=e(u)[a])!=null&&c.playing?"heroicons:pause-solid":"heroicons:play-solid",onClick:I=>ne(a,t.audio_file),class:w(["w-5 h-5 flex-shrink-0 cursor-pointer transition-colors",t.sender==="assistant"?"text-neutral-700 hover:text-neutral-900":"text-white hover:text-neutral-200"])},null,8,["name","onClick","class"]),n("div",{onClick:I=>ie(I,a),class:w(["flex-1 rounded-full h-2.5 relative overflow-hidden cursor-pointer",t.sender==="assistant"?"bg-neutral-300":"bg-white/30"])},[n("div",{class:w(["absolute inset-0",t.sender==="assistant"?"bg-neutral-600":"bg-white"]),style:$e({width:(((m=e(u)[a])==null?void 0:m.progress)||0)+"%"})},null,6)],10,_t),A(r,{name:"heroicons:microphone",class:w(["w-4 h-4 flex-shrink-0",t.sender==="assistant"?"text-neutral-500":"text-white/70"])},null,8,["class"]),n("button",{onClick:I=>ue(a),class:w(["text-[10px] font-semibold px-1.5 py-0.5 rounded w-[34px] text-center transition-colors",t.sender==="assistant"?"text-neutral-600 bg-neutral-200 hover:bg-neutral-300":"text-white bg-white/20 hover:bg-white/30"])}," Ã"+i(((E=e(u)[a])==null?void 0:E.speed)||1),11,wt)],2),n("div",{class:w(["text-xs px-1",t.sender==="assistant"?"text-neutral-500":"text-white/70"])},i(K(((y=e(u)[a])==null?void 0:y.currentTime)||0))+" / "+i(K(((H=e(u)[a])==null?void 0:H.duration)||0)),3),t.message?(f(),g("div",{key:0,class:w(["pt-2 border-t text-xs leading-relaxed",t.sender==="assistant"?"border-neutral-200 text-neutral-600":"border-white/20 text-white/80"])},[o[4]||(o[4]=n("span",{class:"font-semibold"},"Transcript : ",-1)),n("span",{innerHTML:B(t.message)},null,8,yt)],2)):_("",!0),n("audio",{preload:"metadata",ref_for:!0,ref:I=>{I&&(e(C)[a]=I)},onLoadedmetadata:I=>
1oe(a),onTimeupdate:I=>re(a),onEnded:I=>le(a),src:t.audio_file,class:"hidden"},null,40,At)],64)):t.message?(f(),g("p",{key:3,class:"break-words",innerHTML:B(t.message)},null,8,Tt)):_("",!0)],2)],2)):_("",!0)],64)}),128))],512),n("div",St,[e(D)?(f(),g("div",kt,[n("img",{src:e(D),alt:"Image preview",class:"rounded-lg w-full h-auto border border-neutral-200"},null,8,Ct),n("button",{onClick:Q,class:"absolute -top-2 -right-2 bg-neutral-900 text-white rounded-full p-0.5 hover:bg-neutral-700 transition-colors"},[A(r,{name:"heroicons:x-mark",class:"w-4 h-4"})])])):_("",!0),n("form",{onSubmit:Ie(ge,["prevent"]),class:"flex gap-2"},[G(n("input",{"onUpdate:modelValue":o[3]||(o[3]=t=>J(S)?S.value=t:null),type:"text",placeholder:e(l)("testAssistant.chat.inputPlaceholder"),class:"flex-1 min-w-0 rounded-lg border-neutral-200 focus:ring-0 focus:border-zinc-500 text-base md:text-sm bg-white transition-colors",disabled:e(O)||!e(k)||e(p)==="off"},null,8,It),[[te,e(S)]]),n("label",Ot,[A(r,{name:"heroicons:paper-clip",class:"w-5 h-5 text-neutral-500"}),n("input",{id:"image-upload-input",type:"file",class:"hidden",accept:"image/*",onChange:fe},null,32)]),n("button",{type:"submit",disabled:e(O)||!e(S).trim()&&!e(M)||!e(k)||e(p)==="off",class:"bg-neutral-900 hover:bg-neutral-800 disabled:bg-neutral-300 text-white px-3 sm:px-4 py-2 rounded-lg text-sm flex items-center gap-2 flex-shrink-0 transition-colors"},[n("span",Mt,i(e(l)("testAssistant.chat.sendButton")),1),e(O)?(f(),F(r,{key:1,name:"heroicons:arrow-path",class:"w-4 h-4 animate-spin"})):(f(),F(r,{key:0,name:"heroicons:paper-airplane",class:"w-4 h-4"}))],8,jt)],32),e(p)==="off"?(f(),g("p",$t,[A(r,{name:"heroicons:exclamation-circle",class:"w-3.5 h-3.5"}),$(" "+i(e(l)("testAssistant.chat.aiOffWarning")),1)])):_("",!0),e(x).length>0&&!e(k)?(f(),g("p",Ut,[A(r,{name:"heroicons:exclamation-circle",class:"w-3.5 h-3.5"}),$(" "+i(e(l)("testAssistant.chat.noActiveThreadWarning")),1)])):_("",!0)])])])}}};export{Lt 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.