@pickaxeproject/react 6.24.9 → 6.24.10

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("../../../_virtual/_tslib.js"),t=require("react/jsx-runtime"),s=require("../../../common/canChat.js"),n=require("../../../hooks/pickaxe/useEndUserModel.js"),i=require("../common/EndUserModelPicker.js"),r=require("../../../common/actionApproval.js"),o=require("react"),a=require("../../../hooks/pickaxe/usePickaxeContext.js"),l=require("../../../hooks/pickaxe/useResponseContext.js"),d=require("../../../hooks/studio/useStyleInput.js"),c=require("../../../hooks/studio/useStyleFontSize.js"),u=require("../../../hooks/pickaxe/useConversation.js"),p=require("../../../hooks/pickaxe/useDimensionContext.js"),m=require("../Addons/Auth/hooks/useAuthContext.js"),f=require("../Addons/Document/hooks/useDocument.js"),g=require("../Addons/Scroll/hooks/useScroll.js"),v=require("../Addons/Artifact/hooks/useArtifactContext.js"),h=require("../../../hooks/core/useHover.js"),b=require("../../../hooks/core/useMediaQuery.js"),x=require("../../../common/documents.js"),y=require("eventsource-parser"),I=require("../../Icons/attach-vertical.svg.js"),j=require("../../Icons/arrow-right.svg.js"),S=require("../../Icons/microphone.svg.js"),N=require("../../Icons/message-clock.svg.js"),w=require("../../Icons/stop.svg.js"),O=require("../../Icons/trash.svg.js"),k=require("../../Icons/pencil.svg.js"),_=require("../Addons/Document/List.js"),T=require("../../Core/Textarea.js"),E=require("../../Core/ErrorAlert.js"),C=require("../../Core/Menu/index.js"),U=require("../../Core/Menu/Button.js"),A=require("../../Core/Menu/List.js"),D=require("../../../common/error.js"),P=require("../../../common/api/pickaxe.js"),L=require("../../../common/validation.js"),q=require("../../../common/cn.js"),M=require("../../../common/utils.js"),R=require("../../../common/pickaxeConfig.js"),F=require("../../../common/agentPrefill.js"),V=require("../../../common/deploymentWebhooks.js"),$=require("../../../hooks/studio/useStudio.js"),B=require("../../../hooks/pickaxe/useSpeechToText.js"),X=require("../common/PickaxeCommon.js");const K=(e,t)=>{const s=e.find((e=>e.id===t));return s?e.filter((e=>e.id!==t)).map((e=>e.predecessorSubmissionId===t?Object.assign(Object.assign({},e),{predecessorSubmissionId:s.predecessorSubmissionId}):e)):e},G=e=>"string"==typeof e&&e.trim().length>0,H=()=>"undefined"!=typeof crypto&&"randomUUID"in crypto?crypto.randomUUID():`submission-${Date.now()}-${Math.random().toString(36).slice(2)}`,Y=e=>e.map((e=>Object.assign({},e))),W=e=>e instanceof Error&&("AbortError"===e.name||"BodyStreamBuffer was aborted"===e.message),z=(e,t)=>{if(e&&"object"==typeof e)return e[t]},J=(e,t)=>{const s=z(e,t);return G(s)?s:null},Q=e=>{const t=Number(e);return Number.isFinite(t)?t:void 0},Z=({studioUser:e,deploymentId:t,portalId:s})=>{var n,i;const r=Array.isArray(z(e,"uses"))?z(e,"uses"):[],o=(({deploymentId:e,portalId:t})=>G(e)?{type:"deployment",id:e}:G(t)?{type:"portal",id:t}:null)({deploymentId:t,portalId:s});if(!o)return{scope:o,record:null};const a=null!==(i=null!==(n=r.find((e=>e.id===o.id&&e.type===o.type)))&&void 0!==n?n:r.find((e=>e.id===o.id)))&&void 0!==i?i:null;return{scope:o,record:a}},ee=o.forwardRef((({resubmitPrompt:z,onFocus:ee,onBlur:te,onInputHeightChange:se,initSmitheryAuthData:ne},ie)=>{var re,oe,ae,le,de,ce,ue,pe,me,fe,ge,ve,he,be,xe,ye,Ie,je;const{origin:Se,pickaxeId:Ne,sessionId:we,sender:Oe,senderType:ke,portalId:_e,deploymentId:Te,deploymentType:Ee,pickaxe:Ce,styles:Ue,colors:Ae,translations:De,locale:Pe,forceMobile:Le,isNewChat:qe,isRtl:Me,isEmbed:Re,isShowFeedbackMessage:Fe,accessGroup:Ve,setIsNewChat:$e,setIsShowIceBreaker:Be,setValidationStatus:Xe,setValidationUpgradeGroups:Ke,setValidationUpgradeUrl:Ge,setAccessGroup:He,onUpgrade:Ye,onGenerateComplete:We}=a.usePickaxeContext(),{value:ze,enabled:Je}=n.useEndUserModel(),{token:Qe,isLoggedOut:Ze,isSent:et,isPricingAuth:tt}=m.useAuthContext(),{messages:st,isGenerating:nt,setMessages:it,setStatus:rt,setLimitData:ot,setError:at,setActionApprovalToken:lt}=l.useResponseContext(),{documents:dt,isUploading:ct,documentError:ut,onFileUpload:pt,setDocuments:mt,setDocumentError:ft}=f.useDocument(),{studio:gt}=$.useStudio(),[vt]=b.useMediaQuery("(max-width: 480px)"),{scrollStartSession:ht,scrollEndSession:bt,scrollToBottom:xt}=g.useScroll({auto:!0,smooth:!(Le||vt)}),{artifacts:yt,currentPopupType:It,setArtifacts:jt,setCurrentArtifact:St}=v.useArtifactContext(),{height:Nt}=p.useDimensionContext(),wt=u.useConversation(),[Ot,kt]=o.useState((()=>F.readAgentPrefill([Te,Ne]).chatInput)),[_t,Tt]=o.useState(null),[Et,Ct]=o.useState(!1),[Ut,At]=o.useState(!1),[Dt,Pt]=o.useState(!1),[Lt,qt]=o.useState(!1),[Mt,Rt]=o.useState([]),[Ft,Vt]=o.useState(!1),[$t,Bt]=o.useState(null),[Xt,Kt]=o.useState(null),[Gt,Ht]=o.useState(null),[Yt,Wt]=o.useState(null),[zt,Jt]=o.useState(!1),[Qt,Zt]=o.useState(!1),[es,ts]=o.useState(0),ss=o.useRef(null),ns=o.useRef(""),is=o.useRef(null),rs=o.useRef(null),os=o.useRef(null),as=o.useRef([]),ls=o.useRef(null),ds=o.useRef(null),cs=o.useRef(null),us=o.useRef(null),ps=o.useRef(new Set),ms=o.useRef(null),fs=Math.max(.4*Nt,100),{speechTranscript:gs,isSpeechListening:vs,isSpeechProcessing:hs,isSpeechSupported:bs,getSpeechTranscriptSnapshot:xs,speechTranscriptRevision:ys,resetSpeechTranscript:Is,onStartListening:js,onStopListening:Ss}=B.useSpeechToText(),Ns=h.useHover(),{isHover:ws}=Ns,Os=e.__rest(Ns,["isHover"]),ks=h.useHover(),{isHover:_s}=ks,Ts=e.__rest(ks,["isHover"]),Es=h.useHover(),{isHover:Cs}=Es,Us=e.__rest(Es,["isHover"]),As=c.useStyleFontSize(),Ds=d.useStyleInput(),Ps="undefined"!=typeof window?window.location.hostname:"",Ls="undefined"!=typeof window?window.location.href:"",qs="undefined"!=typeof window&&window.self!==window.top,Ms=Ps.includes("pickaxe.co")&&!Ls.includes("https://studio.pickaxe.co/_embed")&&!qs,Rs=null!==(oe=null===(re=null==Ce?void 0:Ce.documentuploadtype)||void 0===re?void 0:re.startsWith("enduserupload"))&&void 0!==oe&&oe,Fs=bs&&(null==Ce?void 0:Ce.enablevoicetotext),Vs=vs&&!Ot.trim(),$s=G(Te),Bs="chat-input"===Ee&&qe&&!et,Xs="chat-input"===Ee&&tt&&Ze&&et,Ks=o.useCallback((e=>{const t=L.getValidationFailure(e);return!!t&&(at(""),ot(null),Xe(t.status),He(t.accessGroup),Ke(t.upgradeGroups),Ge(t.upgradeUrl),!0)}),[at,lt,ot,Xe,Ke,Ge,He]),Gs=null!==(ae=null==Ce?void 0:Ce.placeholdertext)&&void 0!==ae?ae:Me?"بماذا تريد أن تتحدث؟":(null==De?void 0:De["what-do-you-want-to-talk-about"])||"What do you want to talk about?",Hs=Et||Ut,Ys=o.useCallback((()=>e.__awaiter(void 0,void 0,void 0,(function*(){Jt(!1);try{const e=yield fetch(`${process.env.NEXT_PUBLIC_PICKAXE_API2_URL}/user`,Object.assign(Object.assign({method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(Object.assign({studioId:null==Ce?void 0:Ce.studioid},Qe?{studioSessionToken:Qe}:Oe?{sender:Oe}:{sender:M.initializeEmbedUserId()}))},(!process.env.NODE_ENV||"development"===process.env.NODE_ENV)&&Object.assign({},process.env.NEXT_PUBLIC_PICKAXE_SESSION_TOKEN&&{headers:{"Content-Type":"application/json","x-pickaxe-session-token":process.env.NEXT_PUBLIC_PICKAXE_SESSION_TOKEN}})),Ms&&{credentials:"include"})),t=yield e.json();(null==t?void 0:t.studioUser)&&(Ht(t.studioUser),Wt(t.url))}catch(e){console.error("Failed to fetch studio user:",e)}finally{Jt(!0)}}))),[Ms,null==Ce?void 0:Ce.studioid,Oe,Qe]);o.useEffect((()=>{Ys()}),[Ys]);const Ws=Number(null!==(le=null==Ve?void 0:Ve.limit)&&void 0!==le?le:0),zs="string"==typeof(null==Ve?void 0:Ve.limitInterval)?Ve.limitInterval:null,Js=!!(null==gt?void 0:gt.data.usage)&&gt.data.usage.isCredits,Qs=o.useMemo((()=>{var e,t,s,n,i;return null!==(i=null!==(n=null!==(s=null!==(t=null!==(e=null!=_e?_e:J(Gt,"portalId"))&&void 0!==e?e:J(Gt,"portalid"))&&void 0!==t?t:J(Ve,"portalId"))&&void 0!==s?s:J(Ve,"portalid"))&&void 0!==n?n:J(Ce,"portalId"))&&void 0!==i?i:J(Ce,"portalid")}),[Ve,_e,Ce,Gt]),Zs=o.useMemo((()=>Z({studioUser:Gt,deploymentId:Te,portalId:Qs})),[Te,Qs,Gt]);o.useEffect((()=>{$s&&qe&&we&&ps.current.add(we)}),[qe,we,$s]);const en=o.useCallback((()=>{var e,t,s;return{studioId:null==Ce?void 0:Ce.studioid,userEmail:J(Gt,"email"),userId:null!==(e=J(Gt,"userId"))&&void 0!==e?e:J(Gt,"userid"),sessionId:we,deploymentId:Te,deploymentType:Ee,portalId:Qs,accessGroupId:null!==(t=null==Ve?void 0:Ve.accessGroupId)&&void 0!==t?t:null,pickaxeId:Ne,sender:Oe,senderType:ke,origin:Se,metadata:null!==(s=R.getPickaxeConfigMetadata(Te))&&void 0!==s?s:null}}),[null==Ve?void 0:Ve.accessGroupId,Te,Ee,Se,null==Ce?void 0:Ce.studioid,Ne,Qs,Oe,ke,we,Gt]),tn=o.useCallback((()=>!!($s&&zt&&we)&&(!!ps.current.has(we)&&(V.fireDeploymentSessionInitializedWebhook(en()),ps.current.delete(we),!0))),[en,zt,we,$s]);o.useEffect((()=>{if(!zt||!we)return;tn();const e=ms.current;(null==e?void 0:e.sessionId)===we&&(V.fireDeploymentFirstMessageSubmittedWebhook(Object.assign(Object.assign(Object.assign({},e),en()),{message:e.message,documentIds:e.documentIds,uploadedModelImages:e.uploadedModelImages,hasUploadedDocuments:e.hasUploadedDocuments,isHidden:e.isHidden})),ms.current=null)}),[tn,en,zt,we]);const sn={currentUses:Q(null==Gt?void 0:Gt.currentUses),extraUses:Q(null==Gt?void 0:Gt.extraUses)},nn=Zs.scope?{currentUses:null!==(ce=Q(null===(de=Zs.record)||void 0===de?void 0:de.currentUses))&&void 0!==ce?ce:0,extraUses:null!==(pe=Q(null===(ue=Zs.record)||void 0===ue?void 0:ue.extraUses))&&void 0!==pe?pe:0}:{currentUses:0,extraUses:0},rn=J(Gt,"type"),on="guest"===rn||!rn&&Ze?nn:sn;o.useEffect((()=>{let t=!0;return e.__awaiter(void 0,void 0,void 0,(function*(){var e;if(Js&&(null===(e=null==gt?void 0:gt.data)||void 0===e?void 0:e.workspaceId))try{const e=yield P.pickaxeApi2.get(`/cost_per_run?workspaceId=${gt.data.workspaceId}`,{withCredentials:!1});t&&ts(1e4*(Number(e.data.costPerRun)||0))}catch(e){console.error("Failed to fetch average cost per run:",e),t&&ts(0)}else t&&ts(0)})),()=>{t=!1}}),[Js,null===(me=null==gt?void 0:gt.data)||void 0===me?void 0:me.workspaceId]);const an=(({accessGroupType:e,currentUses:t,extraUses:s,limit:n,limitInterval:i})=>{const r=Number(null!=t?t:0),o=Number(null!=s?s:0);return"public"===e&&"one_time"===i?n===X.STUDIO_INFINITY_VALUE?X.STUDIO_INFINITY_VALUE:Math.max(0,n-r):n===X.STUDIO_INFINITY_VALUE||o===X.STUDIO_INFINITY_VALUE?X.STUDIO_INFINITY_VALUE:"one_time"===i?Math.max(0,o):Math.max(0,n-r)+o})({accessGroupType:null==Ve?void 0:Ve.type,currentUses:on.currentUses,extraUses:on.extraUses,limit:Ws,limitInterval:zs}),ln=an===X.STUDIO_INFINITY_VALUE?X.STUDIO_INFINITY_VALUE:Math.max(0,Math.ceil(an)),dn=(({accessGroupType:e,extraUses:t,limit:s,limitInterval:n})=>{const i=Number(null!=t?t:0);return"public"===e&&"one_time"===n?s===X.STUDIO_INFINITY_VALUE?X.STUDIO_INFINITY_VALUE:Math.max(0,s):s===X.STUDIO_INFINITY_VALUE||i===X.STUDIO_INFINITY_VALUE?X.STUDIO_INFINITY_VALUE:"one_time"===n?Math.max(0,i):Math.max(0,s)+Math.max(0,i)})({accessGroupType:null==Ve?void 0:Ve.type,extraUses:on.extraUses,limit:Ws,limitInterval:zs}),cn=dn===X.STUDIO_INFINITY_VALUE?X.STUDIO_INFINITY_VALUE:Math.ceil(.05*dn),un=Js?Math.ceil(5*es):5,pn=cn===X.STUDIO_INFINITY_VALUE?X.STUDIO_INFINITY_VALUE:Math.max(cn,un),mn=o.useMemo((()=>!!Gt&&(!Qt&&(ln!==X.STUDIO_INFINITY_VALUE&&(!(dn<=0||ln>=dn)&&ln<=pn)))),[Qt,pn,ln,Gt,dn]),fn=Boolean(null==Ve?void 0:Ve.hideUpgradeOptions),gn=Boolean(!fn&&((null===(fe=null==Ve?void 0:Ve.upgrade)||void 0===fe?void 0:fe.isBuyMoreUses)||(null===(ge=null==Ve?void 0:Ve.upgrade)||void 0===ge?void 0:ge.isLinkToCustomURL)||(null===(ve=null==Ve?void 0:Ve.upgrade)||void 0===ve?void 0:ve.isUpgradeToAnotherGroup)&&(null===(he=Ve.upgrade.accessGroupIds)||void 0===he?void 0:he.length))),vn=!fn&&(null===(be=null==Ve?void 0:Ve.upgrade)||void 0===be?void 0:be.isLinkToCustomURL)&&"string"==typeof Ve.upgrade.limitLink&&Ve.upgrade.limitLink.trim().length>0?Ve.upgrade.limitLink.trim():null,hn=vn&&"string"==typeof(null===(xe=null==Ve?void 0:Ve.upgrade)||void 0===xe?void 0:xe.limitCTA)&&Ve.upgrade.limitCTA.trim().length>0?Ve.upgrade.limitCTA:(null==De?void 0:De["pricing.upgrade"])||(null==De?void 0:De.upgrade)||"Upgrade",bn=o.useMemo((()=>{var e,t,s;return!!qe&&(!!Ce&&(!wt.isLoading&&(!((null!==(t=null===(e=wt.data)||void 0===e?void 0:e.messages.length)&&void 0!==t?t:0)>1)&&(!!(null===(s=Ce.icebreakers)||void 0===s?void 0:s.length)&&(!Fe&&!Bs)))))}),[Ce,qe,Fe,Bs,wt.data,wt.isLoading]),xn=o.useMemo((()=>{if(ct||Dt)return!1;const e=Rs&&dt.length>0&&dt.every((e=>"finished"===e.status));return!(!Ot.trim()&&!e)&&dt.every((e=>"finished"===e.status||e.isInsertedAsRaw))}),[Rs,ct,Dt,Ot,dt]);o.useImperativeHandle(ie,(()=>({onSubmit:wn}))),o.useEffect((()=>{Be(bn)}),[bn]),o.useEffect((()=>{var e;if(z){const t=Array.from(st),s=null===(e=t[t.length-2].parts.find((e=>"text"===e.type)))||void 0===e?void 0:e.content;wn(s,!0)}}),[z]),o.useEffect((()=>{if(!cs.current||!se)return;const e=new ResizeObserver((e=>{for(const t of e)se(t.contentRect.height)}));return e.observe(cs.current),()=>{e.disconnect()}}),[se]),o.useEffect((()=>{if(!vs)return;const e=ns.current?`${ns.current} `:"",t=xs();Tt(t),kt(`${e}${t.text}`)}),[gs,ys,vs,xs]);const yn=()=>{ns.current="",Is(_t),Tt(null)};o.useEffect((()=>{if(!ls.current)return;(()=>{if(!ls.current)return;let e=ls.current.scrollHeight>52;Ot.includes("\n")||dt.length?e=!0:Ot.trim()||(e=!1),Ct(e)})()}),[Ot,dt]),o.useEffect((()=>{const e=ls.current,t=ds.current;if(!e||!t||Je||Et||Ot.includes("\n"))return void At(!1);const s=window.getComputedStyle(e),n=`${s.fontStyle} ${s.fontVariant} ${s.fontWeight} ${s.fontSize} / ${s.lineHeight} ${s.fontFamily}`,i=document.createElement("span");Object.assign(i.style,{font:n,letterSpacing:s.letterSpacing,position:"absolute",visibility:"hidden",whiteSpace:"nowrap",top:"0",left:"0"}),i.textContent=Ot||Gs,document.body.appendChild(i);const r=i.offsetWidth;i.remove();const o=parseFloat(s.paddingLeft)||0,a=parseFloat(s.paddingRight)||0,l=e.clientWidth-o-a-t.offsetWidth;At(r>l)}),[Ot,Et,Gs,Je]);const In=t=>e.__awaiter(void 0,void 0,void 0,(function*(){if(!(t=null!=t?t:rs.current))return!1;const e=Y(as.current);try{return(yield fetch(`${process.env.NEXT_PUBLIC_PICKAXE_API2_URL}/response/cancel/${t}`,Object.assign({method:"POST",headers:Object.assign(Object.assign({"Content-Type":"application/json"},(!process.env.NODE_ENV||"development"===process.env.NODE_ENV)&&Object.assign({},process.env.NEXT_PUBLIC_PICKAXE_SESSION_TOKEN&&{"x-pickaxe-session-token":process.env.NEXT_PUBLIC_PICKAXE_SESSION_TOKEN})),{"x-request-sent-at":(new Date).toISOString()}),body:JSON.stringify({outputMessageParts:e})},Ms&&{credentials:"include"}))).ok}catch(e){return console.warn("Failed to cancel submission",e),!1}})),jn=e=>{os.current=e,us.current&&(us.current.abort(),us.current=null),is.current&&(is.current.cancel().catch((()=>{})),is.current=null)},Sn=t=>e.__awaiter(void 0,void 0,void 0,(function*(){const e=Date.now()+3e4;for(;Date.now()<e;){try{const e=yield fetch(`${process.env.NEXT_PUBLIC_PICKAXE_API2_URL}/response/status/${t}`,Object.assign({headers:Object.assign({"Cache-Control":"no-cache"},(!process.env.NODE_ENV||"development"===process.env.NODE_ENV)&&Object.assign({},process.env.NEXT_PUBLIC_PICKAXE_SESSION_TOKEN&&{"x-pickaxe-session-token":process.env.NEXT_PUBLIC_PICKAXE_SESSION_TOKEN}))},Ms&&{credentials:"include"}));if(e.ok){if((yield e.json()).terminal)return!0}}catch(e){console.warn("Failed to read submission status",e)}yield new Promise((e=>setTimeout(e,250)))}return!1})),Nn=()=>{const e=rs.current;e&&!Dt&&!ct&&Ot.trim()&&(yn(),Rt((t=>{var s,n;return[...t,{id:H(),message:Ot,predecessorSubmissionId:null!==(n=null===(s=t[t.length-1])||void 0===s?void 0:s.id)&&void 0!==n?n:e}]})),kt(""))},wn=(t,n=!1,i=!1,o,a=!1)=>e.__awaiter(void 0,void 0,void 0,(function*(){var e,l,d,c,u;if(!s.canChat(Ce))return;let p=null;try{if(nt&&!i||ct)return;const s=dt.filter((e=>"finished"===e.status&&!e.isInsertedAsRaw)),m=s.map((e=>e.documentId)).filter(Boolean),f=s.filter((e=>"image"===e.type)).map((e=>{const t=e.name.split(".").pop()||"";return{documentId:e.documentId,extension:t}})),g=null!=t?t:Ot,v=null!==(l=null===(e=null==Ce?void 0:Ce.documentuploadtype)||void 0===e?void 0:e.startsWith("enduserupload"))&&void 0!==l&&l&&m.length>0;if(!g.trim()&&!v)return;if((vs||hs)&&!g.trim())return;o||(yn(),kt("")),at(""),ft(""),ot(null),$e(!1),qt(!1),rt("fetching"),ht(),xt();const h=n?st.slice(0,st.length-1):st,b=(e=>e.reduce(((e,t)=>Math.max(e,t.id)),0)+1)(h),x=b+(n?0:1),I={id:x,role:"assistant",parts:[],documentIds:[]},j=[...h,...n?[]:[{id:b,role:"user",parts:[{type:"text",content:g,isVisible:!0}],documentIds:v?m:[]}],I];it(j),xt(),v&&mt([]);const S=R.getPickaxeConfigMetadata(Te),N=null!=o?o:H();p=N,rs.current=N,os.current=null,as.current=[];const w=yield fetch(`${process.env.NEXT_PUBLIC_PICKAXE_API2_URL}/response/submit`,Object.assign({method:"POST",body:JSON.stringify(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({supportsActionConfirmation:!0,selectedModel:ze||void 0,origin:Se,pickaxeId:Ne,sessionId:we,submissionId:N},a&&{interactionType:"steer"}),{senderType:ke,value:g}),v&&{documentIds:m}),Oe&&{sender:Oe}),Qe&&{studioSessionToken:Qe}),!Qe&&!Oe&&{sender:M.initializeEmbedUserId()}),Qs&&{portalId:Qs}),Te&&{deploymentId:Te}),S&&{metadata:S}),v&&f.length>0?{uploadedModelImages:f}:{})),headers:Object.assign(Object.assign({},(!process.env.NODE_ENV||"development"===process.env.NODE_ENV)&&Object.assign({},process.env.NEXT_PUBLIC_PICKAXE_SESSION_TOKEN&&{"x-pickaxe-session-token":process.env.NEXT_PUBLIC_PICKAXE_SESSION_TOKEN})),{"x-request-sent-at":(new Date).toISOString()})},Ms&&{credentials:"include"})),O=yield w.json();if(!O.success){if(O.limitData){const e=new Error(O.error||O.message||(null==De?void 0:De["failed-to-start-generation"])||"Failed to start generation");throw e.limitData=O.limitData,e}if(Ks(O))return;throw new Error(O.error||O.message||(null==De?void 0:De["failed-to-start-generation"])||"Failed to start generation")}lt(null!==(d=O.actionApprovalToken)&&void 0!==d?d:null);const k=null!==(c=O.submissionId)&&void 0!==c?c:N;p=k,rs.current=k;const _=()=>os.current===k;if(_())return;$s&&qe&&we&&ps.current.add(we);const T=Object.assign(Object.assign({},en()),{message:g,documentIds:v?m:[],uploadedModelImages:v?f:[],hasUploadedDocuments:v,isHidden:n,metadata:null!=S?S:null});zt?(tn(),V.fireDeploymentFirstMessageSubmittedWebhook(T)):ms.current=T,rt("streaming"),us.current=new AbortController;const E=[];let C=[...null!=yt?yt:[]],U=0,A=!1,D="";for(;!A;)try{const e=yield fetch(`${process.env.NEXT_PUBLIC_PICKAXE_API2_URL}/response/stream/${k}?index=${U}`,{signal:null===(u=us.current)||void 0===u?void 0:u.signal,headers:{"Cache-Control":"no-cache",Connection:"keep-alive"}});if(!e.body)throw new Error("No response body");const t=e.body.getReader();is.current=t;const s=new TextDecoder,n=y.createParser({onEvent:e=>{var t,s;if(_())A=!0;else if(e.event&&"ping"!==e.event&&U++,"stop"!==e.event){if("error"===e.event){const t=JSON.parse(e.data);if(t.limitData)return ot(t.limitData),at(""),void(A=!0);const s=t.error||t.message||(null==De?void 0:De["something-went-wrong"])||"Something went wrong.";return Ks(t)||at(s),void(A=!0)}if("delta"===e.event){const n=JSON.parse(e.data);if("finish"===n.type)return void qt(!0);if("data-error"===n.type&&ne){const e=n.data.error;if("string"==typeof e){const t=/['"]type['"]\s*:\s*['"]unauthorized_smithery['"]/.test(e),s=/['"]type['"]\s*:\s*['"]unauthorized_composio['"]/.test(e);if(t){const t=e.match(/['"]qualifiedName['"]\s*:\s*['"]([^'"]+)['"]/),s=e.match(/['"]serverId['"]\s*:\s*['"]([^'"]+)['"]/),n=e.match(/['"]name['"]\s*:\s*['"]([^'"]+)['"]/);if(t&&t[1]&&s&&s[1]&&n&&n[1])throw A=!0,ne({provider:"smithery",smitheryId:t[1],serverId:s[1],name:n[1]}),new Error("STOP_STREAM")}else if(s){const t=e.match(/['"]toolkitSlug['"]\s*:\s*['"]([^'"]+)['"]/),s=e.match(/['"]serverId['"]\s*:\s*['"]([^'"]+)['"]/),n=e.match(/['"]name['"]\s*:\s*['"]([^'"]+)['"]/);if(t&&t[1]&&s&&s[1]&&n&&n[1])throw A=!0,ne({provider:"composio",toolkitSlug:t[1],serverId:s[1],name:n[1]}),new Error("STOP_STREAM")}}else if("object"==typeof e&&null!==e){const t=e;if("unauthorized_smithery"===t.type&&t.qualifiedName&&t.serverId&&t.name)throw A=!0,ne({provider:"smithery",smitheryId:t.qualifiedName,serverId:t.serverId,name:t.name}),new Error("STOP_STREAM");if("unauthorized_composio"===t.type&&t.toolkitSlug&&t.serverId&&t.name)throw A=!0,ne({provider:"composio",toolkitSlug:t.toolkitSlug,serverId:t.serverId,name:t.name}),new Error("STOP_STREAM")}}else if("text-start"===n.type)D="",E.push({type:"text",content:"",isVisible:null===(t=n.isVisible)||void 0===t||t});else if("text-delta"===n.type)D+=n.delta,r.updateStreamTextPart(E,"text",D);else if("text-end"===n.type)D="";else if("reasoning-start"===n.type)D="",E.push({type:"reasoning",content:"",isVisible:null===(s=n.isVisible)||void 0===s||s});else if("reasoning-delta"===n.type)D+=n.delta,r.updateStreamTextPart(E,"reasoning",D);else if("reasoning-end"===n.type)D="";else if(n.type.startsWith("data-")){const e=n;"data-action-approval"===e.type?r.upsertActionApprovalPart(E,e.data):E.push({type:e.type,content:JSON.stringify(e.data),isVisible:!0})}as.current=Y(E);const i=Y(E);it((e=>{const t=e.findIndex((e=>e.id===x)),s=Object.assign(Object.assign({},I),{parts:i});return-1===t?[...e,s]:e.map(((e,n)=>n===t?s:e))}))}else if("artifact_created"===e.event){const t=JSON.parse(e.data);C=C.filter((e=>!(e.id===t.id&&e.version===t.version))),C.push(Object.assign(Object.assign({},t),{content:"",status:"streaming"})),jt([...C]),It.startsWith("inline")||St({id:t.id,version:t.version})}else if("artifact_updated"===e.event){const t=JSON.parse(e.data);C=C.filter((e=>!(e.id===t.id&&e.version===t.version))),C.push(Object.assign(Object.assign({},t),{content:"",status:"updating"})),jt(C),It.startsWith("inline")||St({id:t.id,version:t.version})}else if("artifact_rewrite"===e.event){const t=JSON.parse(e.data);C=C.filter((e=>!(e.id===t.id&&e.version===t.version))),C.push(Object.assign(Object.assign({},t),{content:"",status:"streaming"})),jt(C),It.startsWith("inline")||St({id:t.id,version:t.version})}else if("artifact_content"===e.event){const t=JSON.parse(e.data),s=t.token.replace(/\u200B/g,"");C=C.map((e=>e.id===t.id&&e.version===t.version?Object.assign(Object.assign({},e),{content:e.content+s,status:"streaming"}):e)),jt(C)}else if("artifact_finished"===e.event){const t=JSON.parse(e.data);jt(C.map((e=>e.id===t.id?Object.assign(Object.assign({},e),{status:"finished"}):e)))}else if("error"===e.event){const t=JSON.parse(e.data);if(t.limitData)return ot(t.limitData),at(""),void(A=!0);const s=t.error||t.message||(null==De?void 0:De["something-went-wrong-try-again"])||"Something went wrong, please try again.";if(Ks(t))return void(A=!0);at(s)}else"stop"===e.event&&(A=!0)}else A=!0}});for(;;){if(_()){A=!0,t.cancel().catch((()=>{}));break}const{value:e,done:i}=yield t.read();if(_()){A=!0,t.cancel().catch((()=>{}));break}if(i)break;n.feed(s.decode(e))}A||_()||(yield new Promise((e=>setTimeout(e,1e3))))}catch(e){if("STOP_STREAM"===e.message||W(e)||_())return void(A=!0);console.warn("Stream connection lost, retrying...",e),yield new Promise((e=>setTimeout(e,1e3)))}null==We||We(we)}catch(e){if(W(e))return;if(e.limitData)ot(e.limitData),at("");else{let t=D.default(e)||"";t&&!t.includes("Unexpected token 'A',")||(t=(null==De?void 0:De["high-traffic-try-again-later"])||"Oops! We're experiencing high traffic at the moment. Please try again later."),Ks(t)||at(t)}}finally{const e=!p||rs.current===p;xt(),e&&(rt("idle"),bt(),is.current=null),p&&e&&(rs.current=null,as.current=[]),yield Ys()}}));return o.useEffect((()=>{if(nt||Dt||Ft||0===Mt.length)return;const t=Mt[0];Vt(!0),Bt(t.id),e.__awaiter(void 0,void 0,void 0,(function*(){try{if(!(yield Sn(t.predecessorSubmissionId)))return void at((null==De?void 0:De["queued-message-waiting"])||"A queued message is waiting for the previous response to finish.");Rt((e=>e.filter((e=>e.id!==t.id)))),yield wn(t.message,!1,!0,t.id)}finally{Vt(!1),Bt(null)}}))}),[nt,Ft,Dt,Mt]),Xs?null:t.jsx("div",Object.assign({className:q.default("flex w-full flex-shrink-0 flex-col items-center",!Bs&&"px-4 pb-8"),dir:Me?"rtl":"ltr"},{children:t.jsxs("div",Object.assign({className:"flex w-full max-w-[800px] flex-col"},{children:[Mt.length>0&&t.jsx("div",Object.assign({className:"mx-3 -mb-3 overflow-hidden border pb-3",style:{borderColor:Ae.text+"18",backgroundColor:null!==(ye=Ds.backgroundColor)&&void 0!==ye?ye:Ae.text+"08",color:Ae.text,borderTopLeftRadius:Math.max(Ue.cornerRadius-4,12),borderTopRightRadius:Math.max(Ue.cornerRadius-4,12)}},{children:Mt.map(((s,n)=>{var i;return t.jsxs("div",Object.assign({className:"flex min-h-10 items-center gap-2 px-3 py-2",style:n<Mt.length-1?{borderBottom:`1px solid ${Ae.text}12`}:void 0},{children:[t.jsx(N.default,{className:"h-4 w-4 shrink-0 opacity-50","aria-hidden":"true"}),t.jsx("span",Object.assign({className:"min-w-0 flex-1 truncate text-sm",title:s.message},{children:s.message})),Xt===s.id||$t===s.id?t.jsxs("span",Object.assign({className:"flex shrink-0 items-center gap-1.5 px-2 py-1 text-xs opacity-60","aria-live":"polite"},{children:[t.jsx("span",{className:"h-3 w-3 animate-spin rounded-full border border-current border-r-transparent","aria-hidden":"true"}),Xt===s.id?(null==De?void 0:De.steering)||"Steering...":(null==De?void 0:De.starting)||"Starting..."]})):t.jsxs(t.Fragment,{children:[t.jsxs("button",Object.assign({type:"button",className:"shrink-0 rounded-md px-2 py-1 text-xs font-medium opacity-70 transition-opacity hover:opacity-100 disabled:cursor-default disabled:opacity-40",disabled:Dt||!nt,onClick:()=>{(t=>{e.__awaiter(void 0,void 0,void 0,(function*(){const e=rs.current;if(!e||Dt)return;const s=Mt.findIndex((e=>e.id===t.id));if(-1===s)return;Pt(!0),Kt(t.id),at(""),jn(e);let n=!1;try{if(!(yield In(e)))throw new Error((null==De?void 0:De["failed-to-interrupt-current-response"])||"Failed to interrupt the current response.");if(!(yield Sn(e)))throw new Error((null==De?void 0:De["current-response-still-stopping"])||"The current response is still stopping. Please send your message again in a moment.");rt("idle"),Rt((e=>e.filter((e=>e.id!==t.id)))),n=!0,Pt(!1),Kt(null),yield wn(t.message,!1,!0,t.id,!0)}catch(e){rt("idle"),n&&Rt((e=>{if(e.some((e=>e.id===t.id)))return e;const n=[...e];return n.splice(s,0,t),n})),at(D.default(e))}finally{Pt(!1),Kt(null)}}))})(s)},"aria-label":`${(null==De?void 0:De["steer-with"])||"Steer with"}: ${s.message}`},{children:[t.jsx("span",Object.assign({"aria-hidden":"true"},{children:"↳ "})),(null==De?void 0:De.steer)||"Steer"]})),t.jsx("button",Object.assign({type:"button",className:"flex h-7 w-7 shrink-0 items-center justify-center rounded-md opacity-50 transition-opacity hover:opacity-100 disabled:cursor-default disabled:opacity-30",disabled:Dt,onClick:()=>{return e=s.id,void Rt((t=>K(t,e)));var e},"aria-label":`${(null==De?void 0:De["remove-queued-message"])||"Remove queued message"}: ${s.message}`},{children:t.jsx(O.default,{className:"h-4 w-4","aria-hidden":"true"})})),t.jsxs(C.default,Object.assign({id:`queued-message-menu-${s.id}`,className:"shrink-0"},{children:[t.jsx(U.default,Object.assign({className:"flex h-7 w-7 items-center justify-center rounded-md opacity-50 transition-opacity hover:opacity-100",isDisabled:Dt,role:"button",tabIndex:Dt?-1:0,"aria-haspopup":"menu","aria-label":(null==De?void 0:De["more-options"])||"More options",onKeyDown:e=>{"Enter"!==e.key&&" "!==e.key||(e.preventDefault(),e.currentTarget.click())}},{children:t.jsxs("svg",Object.assign({viewBox:"0 0 24 24",className:"h-4 w-4",fill:"currentColor","aria-hidden":"true"},{children:[t.jsx("circle",{cx:"5",cy:"12",r:"1.6"}),t.jsx("circle",{cx:"12",cy:"12",r:"1.6"}),t.jsx("circle",{cx:"19",cy:"12",r:"1.6"})]}))})),t.jsx(A.default,Object.assign({role:"menu",align:Me?"bottom-start":"bottom-end",positionStrategy:Re?"absolute":"fixed",width:"auto",className:"p-1 text-sm shadow-xl",style:{backgroundColor:null!==(i=Ds.backgroundColor)&&void 0!==i?i:Ae.primary,color:Ae.text,borderRadius:"12px"},border:`1px solid ${Ae.text}20`},{children:t.jsxs("button",Object.assign({type:"button",role:"menuitem",className:"flex min-w-36 items-center gap-2 rounded-lg px-3 py-2 text-left transition-colors hover:bg-black/5 dark:hover:bg-white/10",onClick:()=>(e=>{Rt((t=>K(t,e.id))),kt(e.message),requestAnimationFrame((()=>{const t=ls.current;t&&(t.focus(),t.setSelectionRange(e.message.length,e.message.length))}))})(s)},{children:[t.jsx(k.default,{className:"h-4 w-4 shrink-0"}),(null==De?void 0:De["edit-message"])||"Edit message"]}))}))]}))]})]}),s.id)}))})),t.jsxs("div",Object.assign({ref:cs,className:q.default("relative z-10 flex flex-col w-full justify-end gap-y-3 py-[3px]","block"===Ue.formFieldStyle&&"shadow"),style:Object.assign(Object.assign({},Ds),{maxHeight:`${fs}px`,overflowY:"auto"})},{children:[mn&&t.jsxs("div",Object.assign({className:"sticky top-0 z-10 flex w-full items-center justify-between border-b px-4 py-2.5 shadow-sm backdrop-blur-md",style:{backgroundColor:Ds.backgroundColor?`${Ds.backgroundColor}E6`:void 0,borderColor:Ae.text+"20",color:Ae.text,borderTopRightRadius:Ue.cornerRadius+"px",borderTopLeftRadius:Ue.cornerRadius+"px"}},{children:[t.jsx("div",Object.assign({className:"flex items-center gap-2 text-sm font-medium"},{children:t.jsxs("span",{children:[ln.toLocaleString()," ",Js?(null==De?void 0:De.credits)||"Credits":(null==De?void 0:De.uses)||"Uses"," ",(null==De?void 0:De.remaining)||"remaining"]})})),t.jsxs("div",Object.assign({className:"flex items-center gap-3"},{children:[gn&&t.jsx("button",Object.assign({className:"rounded-md px-3 py-1.5 text-xs font-semibold transition-opacity hover:opacity-90",style:{backgroundColor:Ae.accent,color:Ae.accentText},onClick:e=>{if(e.preventDefault(),e.stopPropagation(),vn)return void window.open(vn,"_blank","noopener,noreferrer");if(Ye)return void Ye();const t=M.buildUpgradeUrl({baseUrl:Yt,accessGroupId:null==Ve?void 0:Ve.accessGroupId});t&&M.openAuthenticatedPricingUrl({deploymentId:Te,pricingUrl:t,studioId:null==Ce?void 0:Ce.studioid,studioSessionToken:Qe})}},{children:hn})),t.jsx("button",Object.assign({className:"flex h-6 w-6 items-center justify-center rounded-full opacity-60 transition-opacity hover:opacity-100",onClick:()=>Zt(!0)},{children:t.jsx("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:2,stroke:"currentColor",className:"h-4 w-4"},{children:t.jsx("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M6 18L18 6M6 6l12 12"})}))}))]}))]})),!nt&&dt.length>0&&t.jsx(_.default,{className:"p-4 pb-0",isDisabled:nt}),t.jsxs("div",Object.assign({className:"relative flex w-full flex-col"},{children:[Vs&&t.jsxs("div",Object.assign({className:q.default(Je?"top-6":"top-1/2","pointer-events-none absolute z-10 flex -translate-y-1/2 select-none items-center gap-x-2",Me?"right-4":"left-4")},{children:[t.jsx("span",{className:"h-2 w-2 animate-pulse rounded-full bg-c-secondary",style:{backgroundColor:null!==(Ie=Ae.accent)&&void 0!==Ie?Ie:"#ff0000"}}),t.jsx("span",Object.assign({className:"text-sm text-c-secondary font-semilight",style:{color:Ae.text+"90"}},{children:(null==De?void 0:De.listening)||"Listening..."}))]})),t.jsx(T.default,Object.assign({ref:ls,className:q.default(As.i1,"py-3.5 max-h-60 px-4 w-full border-transparent bg-transparent",!Ot.trim()&&!Ot.includes("\n")&&"overflow-hidden text-ellipsis whitespace-nowrap placeholder:whitespace-normal placeholder:overflow-visible",Me?"text-right":"text-left",!Je&&Hs&&"mb-12"),value:Ot,placeholder:Vs?"":Gs,onChange:e=>{kt(e)},onKeyDown:e=>{Le||vt||"Enter"===e.key&&(e.shiftKey||(e.preventDefault(),ct||Dt||(nt?Nn():wn())))},onPaste:t=>e.__awaiter(void 0,void 0,void 0,(function*(){const e=Array.from(t.clipboardData.files||[]);if(e.length>0){if(!Rs)return;t.preventDefault(),$e(!1),yield pt(e)}}))},ee&&{onFocus:ee},te&&{onBlur:te},{dir:Me?"rtl":"ltr"})),t.jsxs("div",Object.assign({ref:ds,className:Je?"relative flex w-full items-center gap-2 px-3 pb-2 [&>button]:shrink-0 [&>button]:mr-0":q.default("flex items-center gap-2 absolute z-2 transition-all duration-200 ease-in-out",Hs?"bottom-3 right-2":"right-0 top-1/2 -translate-y-1/2"),style:Object.assign(Object.assign({},!Hs&&Ds.backgroundColor&&{backgroundColor:Ds.backgroundColor}),{borderTopRightRadius:Ue.cornerRadius+"px",borderBottomRightRadius:Ue.cornerRadius+"px"})},{children:[!nt&&!vs&&Rs&&t.jsxs("button",Object.assign({className:"flex h-8 w-8 items-center justify-center rounded-full outline-none transition-colors duration-200 ease-in-out disabled:cursor-default",style:{backgroundColor:_s?Ae.accent+"10":void 0,color:_s?Ae.accent:Ae.accent+"80"},disabled:ct||nt,"aria-label":null!==(je=null==De?void 0:De["attach-files"])&&void 0!==je?je:"Attach files",onClick:()=>{var e;return null===(e=ss.current)||void 0===e?void 0:e.click()}},Ts,{children:[t.jsx("input",{id:"file-upload",ref:ss,type:"file",accept:[...x.allowedFileMimeTypes,...x.allowedImageMimeTypes,...x.additionalAllowedFileExtensions].join(", "),multiple:!0,hidden:!0,className:"hidden",onChange:t=>e.__awaiter(void 0,void 0,void 0,(function*(){$e(!1),yield pt(Array.from(t.target.files||[])),t.target.value=""}))}),t.jsx(I.default,{className:"h-6 w-6 shrink-0"})]})),t.jsx(i.default,{compact:!0}),nt&&!Lt?t.jsxs(t.Fragment,{children:[(vs||hs)&&t.jsx("button",Object.assign({"aria-label":(null==De?void 0:De["stop-listening"])||"Stop listening",title:(null==De?void 0:De["stop-listening"])||"Stop listening",className:"flex h-8 w-8 items-center justify-center rounded-full outline-none transition-colors duration-200 ease-in-out",onClick:()=>{Ss()},disabled:hs,style:{backgroundColor:Ae.accent,color:Ae.accentText}},{children:t.jsx(S.default,{className:"h-5 w-5 shrink-0"})})),t.jsx("button",Object.assign({"aria-label":(null==De?void 0:De["stop-response"])||"Stop response",className:"flex h-8 w-8 items-center justify-center rounded-full outline-none transition-colors duration-200 ease-in-out",onClick:()=>{const e=rs.current;e&&(jn(e),In(e)),rt("idle")},style:{backgroundColor:Ae.accent+"10",color:Ae.accent}},{children:t.jsx(w.default,{className:"h-4 w-4 shrink-0"})})),t.jsx("button",Object.assign({"aria-label":(null==De?void 0:De["queue-message"])||"Queue message",className:"flex h-8 w-8 items-center mr-2 justify-center rounded-full outline-none transition-colors duration-200 ease-in-out disabled:cursor-default",disabled:Dt||ct||!Ot.trim(),onClick:Nn,style:{backgroundColor:Ot.trim()?Ae.accent:Ae.accent+"10",color:Ot.trim()?Ae.accentText:Ae.accent+"80"}},{children:t.jsx(j.default,{className:q.default("h-6 w-6 shrink-0",Me&&"scale-x-[-1] transform")})}))]}):vs||hs?t.jsxs(t.Fragment,{children:[t.jsx("button",Object.assign({"aria-label":(null==De?void 0:De["stop-listening"])||"Stop listening",className:"flex h-8 w-8 items-center mr-2 justify-center rounded-full outline-none transition-colors duration-200 ease-in-out",onClick:()=>{Ss()},disabled:hs,style:{backgroundColor:Ae.accent,color:Ae.accentText}},{children:t.jsx(w.default,{className:"h-4 w-4 shrink-0"})})),Ot.trim()&&t.jsx("button",Object.assign({"aria-label":(null==De?void 0:De["send-message"])||"Send message",className:"flex h-8 w-8 items-center mr-2 justify-center rounded-full outline-none transition-colors duration-200 ease-in-out disabled:cursor-default",disabled:!xn,onClick:()=>{wn()},style:{backgroundColor:Ae.accent,color:Ae.accentText}},{children:t.jsx(j.default,{className:q.default("h-6 w-6 shrink-0",Me&&"scale-x-[-1] transform")})}))]}):t.jsxs(t.Fragment,{children:[Fs&&t.jsx("button",Object.assign({className:"disabled:cursor-default flex h-8 w-8 items-center justify-center rounded-full outline-none transition-colors duration-200 ease-in-out",style:{backgroundColor:vs?Ae.accent:Cs?Ae.accent+"10":void 0,color:vs?Ae.accentText:Cs?Ae.accent:Ae.accent+"80"},disabled:ct||nt||hs,onClick:()=>{vs?Ss():(Tt(null),ns.current=Ot,js(Pe||"en-US"))}},Us,{children:t.jsx(S.default,{className:"h-5 w-5 shrink-0"})})),t.jsx("button",Object.assign({className:"flex h-8 w-8 items-center mr-2 justify-center rounded-full outline-none transition-colors duration-200 ease-in-out disabled:cursor-default",style:{backgroundColor:ws||xn?Ae.accent:Ae.accent+"10",color:ws||xn?Ae.accentText:Ae.accent+"80"},disabled:!xn,onClick:()=>wn()},Os,{children:t.jsx(j.default,{className:q.default("h-6 w-6 shrink-0",Me&&"scale-x-[-1] transform")})}))]})]}))]}))]})),ut&&t.jsx(E.default,{error:ut,className:"mt-3"})]}))}))}));ee.displayName="Input",exports.default=ee;
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("../../../_virtual/_tslib.js"),t=require("react/jsx-runtime"),s=require("../../../common/canChat.js"),n=require("../../../hooks/pickaxe/useEndUserModel.js"),i=require("../common/EndUserModelPicker.js"),r=require("../../../common/actionApproval.js"),o=require("react"),a=require("../../../hooks/pickaxe/usePickaxeContext.js"),l=require("../../../hooks/pickaxe/useResponseContext.js"),d=require("../../../hooks/studio/useStyleInput.js"),c=require("../../../hooks/studio/useStyleFontSize.js"),u=require("../../../hooks/pickaxe/useConversation.js"),p=require("../../../hooks/pickaxe/useDimensionContext.js"),m=require("../Addons/Auth/hooks/useAuthContext.js"),f=require("../Addons/Document/hooks/useDocument.js"),g=require("../Addons/Scroll/hooks/useScroll.js"),h=require("../Addons/Artifact/hooks/useArtifactContext.js"),v=require("../../../hooks/core/useHover.js"),b=require("../../../hooks/core/useMediaQuery.js"),x=require("../../../common/documents.js"),y=require("eventsource-parser"),I=require("../../Icons/attach-vertical.svg.js"),j=require("../../Icons/arrow-right.svg.js"),S=require("../../Icons/microphone.svg.js"),w=require("../../Icons/message-clock.svg.js"),N=require("../../Icons/stop.svg.js"),O=require("../../Icons/trash.svg.js"),_=require("../../Icons/pencil.svg.js"),k=require("../Addons/Document/List.js"),T=require("../../Core/Textarea.js"),E=require("../../Core/ErrorAlert.js"),C=require("../../Core/Menu/index.js"),U=require("../../Core/Menu/Button.js"),A=require("../../Core/Menu/List.js"),D=require("../../../common/error.js"),P=require("../../../common/api/pickaxe.js"),L=require("../../../common/validation.js"),q=require("../../../common/cn.js"),M=require("../../../common/utils.js"),R=require("../../../common/pickaxeConfig.js"),F=require("../../../common/agentPrefill.js"),V=require("../../../common/deploymentWebhooks.js"),$=require("../../../hooks/studio/useStudio.js"),B=require("../../../hooks/pickaxe/useSpeechToText.js"),X=require("../common/PickaxeCommon.js");const K=(e,t)=>{const s=e.find((e=>e.id===t));return s?e.filter((e=>e.id!==t)).map((e=>e.predecessorSubmissionId===t?Object.assign(Object.assign({},e),{predecessorSubmissionId:s.predecessorSubmissionId}):e)):e},G=e=>"string"==typeof e&&e.trim().length>0,H=()=>"undefined"!=typeof crypto&&"randomUUID"in crypto?crypto.randomUUID():`submission-${Date.now()}-${Math.random().toString(36).slice(2)}`,Y=e=>e.map((e=>Object.assign({},e))),W=e=>e instanceof Error&&("AbortError"===e.name||"BodyStreamBuffer was aborted"===e.message),z=(e,t)=>{if(e&&"object"==typeof e)return e[t]},J=(e,t)=>{const s=z(e,t);return G(s)?s:null},Q=e=>{const t=Number(e);return Number.isFinite(t)?t:void 0},Z=({studioUser:e,deploymentId:t,portalId:s})=>{var n,i;const r=Array.isArray(z(e,"uses"))?z(e,"uses"):[],o=(({deploymentId:e,portalId:t})=>G(e)?{type:"deployment",id:e}:G(t)?{type:"portal",id:t}:null)({deploymentId:t,portalId:s});if(!o)return{scope:o,record:null};const a=null!==(i=null!==(n=r.find((e=>e.id===o.id&&e.type===o.type)))&&void 0!==n?n:r.find((e=>e.id===o.id)))&&void 0!==i?i:null;return{scope:o,record:a}},ee=o.forwardRef((({resubmitPrompt:z,onFocus:ee,onBlur:te,onInputHeightChange:se,initSmitheryAuthData:ne},ie)=>{var re,oe,ae,le,de,ce,ue,pe,me,fe,ge,he,ve,be,xe,ye,Ie,je;const{origin:Se,pickaxeId:we,sessionId:Ne,sender:Oe,senderType:_e,portalId:ke,deploymentId:Te,deploymentType:Ee,pickaxe:Ce,styles:Ue,colors:Ae,translations:De,locale:Pe,forceMobile:Le,isNewChat:qe,isRtl:Me,isEmbed:Re,isShowFeedbackMessage:Fe,accessGroup:Ve,setIsNewChat:$e,setIsShowIceBreaker:Be,setValidationStatus:Xe,setValidationUpgradeGroups:Ke,setValidationUpgradeUrl:Ge,setAccessGroup:He,onUpgrade:Ye,onGenerateComplete:We}=a.usePickaxeContext(),{value:ze,enabled:Je}=n.useEndUserModel(),{token:Qe,isLoggedOut:Ze,isSent:et,isPricingAuth:tt}=m.useAuthContext(),{messages:st,isGenerating:nt,setMessages:it,setStatus:rt,setLimitData:ot,setError:at,setActionApprovalToken:lt}=l.useResponseContext(),{documents:dt,isUploading:ct,documentError:ut,onFileUpload:pt,setDocuments:mt,setDocumentError:ft}=f.useDocument(),{studio:gt}=$.useStudio(),[ht]=b.useMediaQuery("(max-width: 480px)"),{scrollStartSession:vt,scrollEndSession:bt,scrollToBottom:xt}=g.useScroll({auto:!0,smooth:!(Le||ht)}),{artifacts:yt,currentPopupType:It,setArtifacts:jt,setCurrentArtifact:St}=h.useArtifactContext(),{height:wt}=p.useDimensionContext(),Nt=u.useConversation(),[Ot,_t]=o.useState((()=>F.readAgentPrefill([Te,we]).chatInput)),[kt,Tt]=o.useState(null),[Et,Ct]=o.useState(!1),[Ut,At]=o.useState(!1),[Dt,Pt]=o.useState(!1),[Lt,qt]=o.useState(!1),[Mt,Rt]=o.useState([]),[Ft,Vt]=o.useState(!1),[$t,Bt]=o.useState(null),[Xt,Kt]=o.useState(null),[Gt,Ht]=o.useState(null),[Yt,Wt]=o.useState(null),[zt,Jt]=o.useState(!1),[Qt,Zt]=o.useState(!1),[es,ts]=o.useState(0),ss=o.useRef(null),ns=o.useRef(""),is=o.useRef(null),rs=o.useRef(null),os=o.useRef(null),as=o.useRef([]),ls=o.useRef(null),ds=o.useRef(null),cs=o.useRef(null),us=o.useRef(null),ps=o.useRef(new Set),ms=o.useRef(null),fs=Math.max(.4*wt,100),{speechTranscript:gs,isSpeechListening:hs,isSpeechProcessing:vs,isSpeechSupported:bs,getSpeechTranscriptSnapshot:xs,speechTranscriptRevision:ys,resetSpeechTranscript:Is,onStartListening:js,onStopListening:Ss}=B.useSpeechToText(),ws=v.useHover(),{isHover:Ns}=ws,Os=e.__rest(ws,["isHover"]),_s=v.useHover(),{isHover:ks}=_s,Ts=e.__rest(_s,["isHover"]),Es=v.useHover(),{isHover:Cs}=Es,Us=e.__rest(Es,["isHover"]),As=c.useStyleFontSize(),Ds=d.useStyleInput(),Ps="undefined"!=typeof window?window.location.hostname:"",Ls="undefined"!=typeof window?window.location.href:"",qs="undefined"!=typeof window&&window.self!==window.top,Ms=Ps.includes("pickaxe.co")&&!Ls.includes("https://studio.pickaxe.co/_embed")&&!qs,Rs=null!==(oe=null===(re=null==Ce?void 0:Ce.documentuploadtype)||void 0===re?void 0:re.startsWith("enduserupload"))&&void 0!==oe&&oe,Fs=bs&&(null==Ce?void 0:Ce.enablevoicetotext),Vs=hs&&!Ot.trim(),$s=G(Te),Bs="chat-input"===Ee&&qe&&!et,Xs="chat-input"===Ee&&tt&&Ze&&et,Ks=o.useCallback((e=>{const t=L.getValidationFailure(e);return!!t&&(at(""),ot(null),Xe(t.status),He(t.accessGroup),Ke(t.upgradeGroups),Ge(t.upgradeUrl),!0)}),[at,lt,ot,Xe,Ke,Ge,He]),Gs=null!==(ae=null==Ce?void 0:Ce.placeholdertext)&&void 0!==ae?ae:Me?"بماذا تريد أن تتحدث؟":(null==De?void 0:De["what-do-you-want-to-talk-about"])||"What do you want to talk about?",Hs=Et||Ut,Ys=o.useCallback((()=>e.__awaiter(void 0,void 0,void 0,(function*(){Jt(!1);try{const e=yield fetch(`${process.env.NEXT_PUBLIC_PICKAXE_API2_URL}/user`,Object.assign(Object.assign({method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(Object.assign({studioId:null==Ce?void 0:Ce.studioid},Qe?{studioSessionToken:Qe}:Oe?{sender:Oe}:{sender:M.initializeEmbedUserId()}))},(!process.env.NODE_ENV||"development"===process.env.NODE_ENV)&&Object.assign({},process.env.NEXT_PUBLIC_PICKAXE_SESSION_TOKEN&&{headers:{"Content-Type":"application/json","x-pickaxe-session-token":process.env.NEXT_PUBLIC_PICKAXE_SESSION_TOKEN}})),Ms&&{credentials:"include"})),t=yield e.json();(null==t?void 0:t.studioUser)&&(Ht(t.studioUser),Wt(t.url))}catch(e){console.error("Failed to fetch studio user:",e)}finally{Jt(!0)}}))),[Ms,null==Ce?void 0:Ce.studioid,Oe,Qe]);o.useEffect((()=>{Ys()}),[Ys]);const Ws=Number(null!==(le=null==Ve?void 0:Ve.limit)&&void 0!==le?le:0),zs="string"==typeof(null==Ve?void 0:Ve.limitInterval)?Ve.limitInterval:null,Js=!!(null==gt?void 0:gt.data.usage)&&gt.data.usage.isCredits,Qs=o.useMemo((()=>{var e,t,s,n,i;return null!==(i=null!==(n=null!==(s=null!==(t=null!==(e=null!=ke?ke:J(Gt,"portalId"))&&void 0!==e?e:J(Gt,"portalid"))&&void 0!==t?t:J(Ve,"portalId"))&&void 0!==s?s:J(Ve,"portalid"))&&void 0!==n?n:J(Ce,"portalId"))&&void 0!==i?i:J(Ce,"portalid")}),[Ve,ke,Ce,Gt]),Zs=o.useMemo((()=>Z({studioUser:Gt,deploymentId:Te,portalId:Qs})),[Te,Qs,Gt]);o.useEffect((()=>{$s&&qe&&Ne&&ps.current.add(Ne)}),[qe,Ne,$s]);const en=o.useCallback((()=>{var e,t,s;return{studioId:null==Ce?void 0:Ce.studioid,userEmail:J(Gt,"email"),userId:null!==(e=J(Gt,"userId"))&&void 0!==e?e:J(Gt,"userid"),sessionId:Ne,deploymentId:Te,deploymentType:Ee,portalId:Qs,accessGroupId:null!==(t=null==Ve?void 0:Ve.accessGroupId)&&void 0!==t?t:null,pickaxeId:we,sender:Oe,senderType:_e,origin:Se,metadata:null!==(s=R.getPickaxeConfigMetadata(Te))&&void 0!==s?s:null}}),[null==Ve?void 0:Ve.accessGroupId,Te,Ee,Se,null==Ce?void 0:Ce.studioid,we,Qs,Oe,_e,Ne,Gt]),tn=o.useCallback((()=>!!($s&&zt&&Ne)&&(!!ps.current.has(Ne)&&(V.fireDeploymentSessionInitializedWebhook(en()),ps.current.delete(Ne),!0))),[en,zt,Ne,$s]);o.useEffect((()=>{if(!zt||!Ne)return;tn();const e=ms.current;(null==e?void 0:e.sessionId)===Ne&&(V.fireDeploymentFirstMessageSubmittedWebhook(Object.assign(Object.assign(Object.assign({},e),en()),{message:e.message,documentIds:e.documentIds,uploadedModelImages:e.uploadedModelImages,hasUploadedDocuments:e.hasUploadedDocuments,isHidden:e.isHidden})),ms.current=null)}),[tn,en,zt,Ne]);const sn={currentUses:Q(null==Gt?void 0:Gt.currentUses),extraUses:Q(null==Gt?void 0:Gt.extraUses)},nn=Zs.scope?{currentUses:null!==(ce=Q(null===(de=Zs.record)||void 0===de?void 0:de.currentUses))&&void 0!==ce?ce:0,extraUses:null!==(pe=Q(null===(ue=Zs.record)||void 0===ue?void 0:ue.extraUses))&&void 0!==pe?pe:0}:{currentUses:0,extraUses:0},rn=J(Gt,"type"),on="guest"===rn||!rn&&Ze?nn:sn;o.useEffect((()=>{let t=!0;return e.__awaiter(void 0,void 0,void 0,(function*(){var e;if(Js&&(null===(e=null==gt?void 0:gt.data)||void 0===e?void 0:e.workspaceId))try{const e=yield P.pickaxeApi2.get(`/cost_per_run?workspaceId=${gt.data.workspaceId}`,{withCredentials:!1});t&&ts(1e4*(Number(e.data.costPerRun)||0))}catch(e){console.error("Failed to fetch average cost per run:",e),t&&ts(0)}else t&&ts(0)})),()=>{t=!1}}),[Js,null===(me=null==gt?void 0:gt.data)||void 0===me?void 0:me.workspaceId]);const an=(({accessGroupType:e,currentUses:t,extraUses:s,limit:n,limitInterval:i})=>{const r=Number(null!=t?t:0),o=Number(null!=s?s:0);return"public"===e&&"one_time"===i?n===X.STUDIO_INFINITY_VALUE?X.STUDIO_INFINITY_VALUE:Math.max(0,n-r):n===X.STUDIO_INFINITY_VALUE||o===X.STUDIO_INFINITY_VALUE?X.STUDIO_INFINITY_VALUE:"one_time"===i?Math.max(0,o):Math.max(0,n-r)+o})({accessGroupType:null==Ve?void 0:Ve.type,currentUses:on.currentUses,extraUses:on.extraUses,limit:Ws,limitInterval:zs}),ln=an===X.STUDIO_INFINITY_VALUE?X.STUDIO_INFINITY_VALUE:Math.max(0,Math.ceil(an)),dn=(({accessGroupType:e,extraUses:t,limit:s,limitInterval:n})=>{const i=Number(null!=t?t:0);return"public"===e&&"one_time"===n?s===X.STUDIO_INFINITY_VALUE?X.STUDIO_INFINITY_VALUE:Math.max(0,s):s===X.STUDIO_INFINITY_VALUE||i===X.STUDIO_INFINITY_VALUE?X.STUDIO_INFINITY_VALUE:"one_time"===n?Math.max(0,i):Math.max(0,s)+Math.max(0,i)})({accessGroupType:null==Ve?void 0:Ve.type,extraUses:on.extraUses,limit:Ws,limitInterval:zs}),cn=dn===X.STUDIO_INFINITY_VALUE?X.STUDIO_INFINITY_VALUE:Math.ceil(.05*dn),un=Js?Math.ceil(5*es):5,pn=cn===X.STUDIO_INFINITY_VALUE?X.STUDIO_INFINITY_VALUE:Math.max(cn,un),mn=o.useMemo((()=>!!Gt&&(!Qt&&(ln!==X.STUDIO_INFINITY_VALUE&&(!(dn<=0||ln>=dn)&&ln<=pn)))),[Qt,pn,ln,Gt,dn]),fn=Boolean(null==Ve?void 0:Ve.hideUpgradeOptions),gn=Boolean(!fn&&((null===(fe=null==Ve?void 0:Ve.upgrade)||void 0===fe?void 0:fe.isBuyMoreUses)||(null===(ge=null==Ve?void 0:Ve.upgrade)||void 0===ge?void 0:ge.isLinkToCustomURL)||(null===(he=null==Ve?void 0:Ve.upgrade)||void 0===he?void 0:he.isUpgradeToAnotherGroup)&&(null===(ve=Ve.upgrade.accessGroupIds)||void 0===ve?void 0:ve.length))),hn=!fn&&(null===(be=null==Ve?void 0:Ve.upgrade)||void 0===be?void 0:be.isLinkToCustomURL)&&"string"==typeof Ve.upgrade.limitLink&&Ve.upgrade.limitLink.trim().length>0?Ve.upgrade.limitLink.trim():null,vn=hn&&"string"==typeof(null===(xe=null==Ve?void 0:Ve.upgrade)||void 0===xe?void 0:xe.limitCTA)&&Ve.upgrade.limitCTA.trim().length>0?Ve.upgrade.limitCTA:(null==De?void 0:De["pricing.upgrade"])||(null==De?void 0:De.upgrade)||"Upgrade",bn=o.useMemo((()=>{var e,t,s;return!!qe&&(!!Ce&&(!Nt.isLoading&&(!((null!==(t=null===(e=Nt.data)||void 0===e?void 0:e.messages.length)&&void 0!==t?t:0)>1)&&(!!(null===(s=Ce.icebreakers)||void 0===s?void 0:s.length)&&(!Fe&&!Bs)))))}),[Ce,qe,Fe,Bs,Nt.data,Nt.isLoading]),xn=o.useMemo((()=>{if(ct||Dt)return!1;const e=Rs&&dt.length>0&&dt.every((e=>"finished"===e.status));return!(!Ot.trim()&&!e)&&dt.every((e=>"finished"===e.status||e.isInsertedAsRaw))}),[Rs,ct,Dt,Ot,dt]);o.useImperativeHandle(ie,(()=>({onSubmit:Nn}))),o.useEffect((()=>{Be(bn)}),[bn]),o.useEffect((()=>{var e;if(z){const t=Array.from(st),s=null===(e=t[t.length-2].parts.find((e=>"text"===e.type)))||void 0===e?void 0:e.content;Nn(s,!0)}}),[z]),o.useEffect((()=>{if(!cs.current||!se)return;const e=new ResizeObserver((e=>{for(const t of e)se(t.contentRect.height)}));return e.observe(cs.current),()=>{e.disconnect()}}),[se]),o.useEffect((()=>{if(!hs)return;const e=ns.current?`${ns.current} `:"",t=xs();Tt(t),_t(`${e}${t.text}`)}),[gs,ys,hs,xs]);const yn=()=>{ns.current="",Is(kt),Tt(null)};o.useEffect((()=>{if(!ls.current)return;(()=>{if(!ls.current)return;let e=ls.current.scrollHeight>52;Ot.includes("\n")||dt.length?e=!0:Ot.trim()||(e=!1),Ct(e)})()}),[Ot,dt]),o.useEffect((()=>{const e=ls.current,t=ds.current;if(!e||!t||Je||Et||Ot.includes("\n"))return void At(!1);const s=window.getComputedStyle(e),n=`${s.fontStyle} ${s.fontVariant} ${s.fontWeight} ${s.fontSize} / ${s.lineHeight} ${s.fontFamily}`,i=document.createElement("span");Object.assign(i.style,{font:n,letterSpacing:s.letterSpacing,position:"absolute",visibility:"hidden",whiteSpace:"nowrap",top:"0",left:"0"}),i.textContent=Ot||Gs,document.body.appendChild(i);const r=i.offsetWidth;i.remove();const o=parseFloat(s.paddingLeft)||0,a=parseFloat(s.paddingRight)||0,l=e.clientWidth-o-a-t.offsetWidth;At(r>l)}),[Ot,Et,Gs,Je]);const In=t=>e.__awaiter(void 0,void 0,void 0,(function*(){if(!(t=null!=t?t:rs.current))return!1;const e=Y(as.current);try{return(yield fetch(`${process.env.NEXT_PUBLIC_PICKAXE_API2_URL}/response/cancel/${t}`,Object.assign({method:"POST",headers:Object.assign(Object.assign({"Content-Type":"application/json"},(!process.env.NODE_ENV||"development"===process.env.NODE_ENV)&&Object.assign({},process.env.NEXT_PUBLIC_PICKAXE_SESSION_TOKEN&&{"x-pickaxe-session-token":process.env.NEXT_PUBLIC_PICKAXE_SESSION_TOKEN})),{"x-request-sent-at":(new Date).toISOString()}),body:JSON.stringify({outputMessageParts:e})},Ms&&{credentials:"include"}))).ok}catch(e){return console.warn("Failed to cancel submission",e),!1}})),jn=e=>{os.current=e,us.current&&(us.current.abort(),us.current=null),is.current&&(is.current.cancel().catch((()=>{})),is.current=null)},Sn=t=>e.__awaiter(void 0,void 0,void 0,(function*(){const e=Date.now()+3e4;for(;Date.now()<e;){try{const e=yield fetch(`${process.env.NEXT_PUBLIC_PICKAXE_API2_URL}/response/status/${t}`,Object.assign({headers:Object.assign({"Cache-Control":"no-cache"},(!process.env.NODE_ENV||"development"===process.env.NODE_ENV)&&Object.assign({},process.env.NEXT_PUBLIC_PICKAXE_SESSION_TOKEN&&{"x-pickaxe-session-token":process.env.NEXT_PUBLIC_PICKAXE_SESSION_TOKEN}))},Ms&&{credentials:"include"}));if(e.ok){if((yield e.json()).terminal)return!0}}catch(e){console.warn("Failed to read submission status",e)}yield new Promise((e=>setTimeout(e,250)))}return!1})),wn=()=>{const e=rs.current;e&&!Dt&&!ct&&Ot.trim()&&(yn(),Rt((t=>{var s,n;return[...t,{id:H(),message:Ot,predecessorSubmissionId:null!==(n=null===(s=t[t.length-1])||void 0===s?void 0:s.id)&&void 0!==n?n:e}]})),_t(""))},Nn=(t,n=!1,i=!1,o,a=!1)=>e.__awaiter(void 0,void 0,void 0,(function*(){var e,l,d,c,u;if(!s.canChat(Ce))return;let p=null;try{if(nt&&!i||ct)return;const s=dt.filter((e=>"finished"===e.status&&!e.isInsertedAsRaw)),m=s.map((e=>e.documentId)).filter(Boolean),f=s.filter((e=>"image"===e.type)).map((e=>{const t=e.name.split(".").pop()||"";return{documentId:e.documentId,extension:t}})),g=null!=t?t:Ot,h=null!==(l=null===(e=null==Ce?void 0:Ce.documentuploadtype)||void 0===e?void 0:e.startsWith("enduserupload"))&&void 0!==l&&l&&m.length>0;if(!g.trim()&&!h)return;if((hs||vs)&&!g.trim())return;o||(yn(),_t("")),at(""),ft(""),ot(null),$e(!1),qt(!1),rt("fetching"),vt(),xt();const v=n?st.slice(0,st.length-1):st,b=(e=>e.reduce(((e,t)=>Math.max(e,t.id)),0)+1)(v),x=b+(n?0:1),I={id:x,role:"assistant",parts:[],documentIds:[]},j=[...v,...n?[]:[{id:b,role:"user",parts:[{type:"text",content:g,isVisible:!0}],documentIds:h?m:[]}],I];it(j),xt(),h&&mt([]);const S=R.getPickaxeConfigMetadata(Te),w=null!=o?o:H();p=w,rs.current=w,os.current=null,as.current=[];const N=yield fetch(`${process.env.NEXT_PUBLIC_PICKAXE_API2_URL}/response/submit`,Object.assign({method:"POST",body:JSON.stringify(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({supportsActionConfirmation:!0,selectedModel:ze||void 0,origin:Se,pickaxeId:we,sessionId:Ne,submissionId:w},a&&{interactionType:"steer"}),{senderType:_e,value:g}),h&&{documentIds:m}),Oe&&{sender:Oe}),Qe&&{studioSessionToken:Qe}),!Qe&&!Oe&&{sender:M.initializeEmbedUserId()}),Qs&&{portalId:Qs}),Te&&{deploymentId:Te}),S&&{metadata:S}),h&&f.length>0?{uploadedModelImages:f}:{})),headers:Object.assign(Object.assign({},(!process.env.NODE_ENV||"development"===process.env.NODE_ENV)&&Object.assign({},process.env.NEXT_PUBLIC_PICKAXE_SESSION_TOKEN&&{"x-pickaxe-session-token":process.env.NEXT_PUBLIC_PICKAXE_SESSION_TOKEN})),{"x-request-sent-at":(new Date).toISOString()})},Ms&&{credentials:"include"})),O=yield N.json();if(!O.success){if(O.limitData){const e=new Error(O.error||O.message||(null==De?void 0:De["failed-to-start-generation"])||"Failed to start generation");throw e.limitData=O.limitData,e}if(Ks(O))return;throw new Error(O.error||O.message||(null==De?void 0:De["failed-to-start-generation"])||"Failed to start generation")}lt(null!==(d=O.actionApprovalToken)&&void 0!==d?d:null);const _=null!==(c=O.submissionId)&&void 0!==c?c:w;p=_,rs.current=_;const k=()=>os.current===_;if(k())return;$s&&qe&&Ne&&ps.current.add(Ne);const T=Object.assign(Object.assign({},en()),{message:g,documentIds:h?m:[],uploadedModelImages:h?f:[],hasUploadedDocuments:h,isHidden:n,metadata:null!=S?S:null});zt?(tn(),V.fireDeploymentFirstMessageSubmittedWebhook(T)):ms.current=T,rt("streaming"),us.current=new AbortController;const E=[];let C=[...null!=yt?yt:[]],U=0,A=!1,D="";for(;!A;)try{const e=yield fetch(`${process.env.NEXT_PUBLIC_PICKAXE_API2_URL}/response/stream/${_}?index=${U}`,{signal:null===(u=us.current)||void 0===u?void 0:u.signal,headers:{"Cache-Control":"no-cache",Connection:"keep-alive"}});if(!e.body)throw new Error("No response body");const t=e.body.getReader();is.current=t;const s=new TextDecoder,n=y.createParser({onEvent:e=>{var t,s;if(k())A=!0;else if(e.event&&"ping"!==e.event&&U++,"stop"!==e.event){if("error"===e.event){const t=JSON.parse(e.data);if(t.limitData)return ot(t.limitData),at(""),void(A=!0);const s=t.error||t.message||(null==De?void 0:De["something-went-wrong"])||"Something went wrong.";return Ks(t)||at(s),void(A=!0)}if("delta"===e.event){const n=JSON.parse(e.data);if("finish"===n.type)return void qt(!0);if("data-error"===n.type){const e=n.data.error;if("object"==typeof e&&null!==e&&("mcp_auth_expired"===e.type||"mcp_owner_connection_required"===e.type||"mcp_connection_check_failed"===e.type))throw at("string"==typeof e.message?e.message:(null==De?void 0:De["something-went-wrong"])||"Something went wrong."),A=!0,new Error("STOP_STREAM");if(!ne)return;if("string"==typeof e){const t=/['"]type['"]\s*:\s*['"]unauthorized_smithery['"]/.test(e),s=/['"]type['"]\s*:\s*['"]unauthorized_composio['"]/.test(e);if(t){const t=e.match(/['"]qualifiedName['"]\s*:\s*['"]([^'"]+)['"]/),s=e.match(/['"]serverId['"]\s*:\s*['"]([^'"]+)['"]/),n=e.match(/['"]name['"]\s*:\s*['"]([^'"]+)['"]/);if(t&&t[1]&&s&&s[1]&&n&&n[1])throw A=!0,ne({provider:"smithery",smitheryId:t[1],serverId:s[1],name:n[1]}),new Error("STOP_STREAM")}else if(s){const t=e.match(/['"]toolkitSlug['"]\s*:\s*['"]([^'"]+)['"]/),s=e.match(/['"]serverId['"]\s*:\s*['"]([^'"]+)['"]/),n=e.match(/['"]name['"]\s*:\s*['"]([^'"]+)['"]/);if(t&&t[1]&&s&&s[1]&&n&&n[1])throw A=!0,ne({provider:"composio",toolkitSlug:t[1],serverId:s[1],name:n[1]}),new Error("STOP_STREAM")}}else if("object"==typeof e&&null!==e){const t=e;if("unauthorized_smithery"===t.type&&t.qualifiedName&&t.serverId&&t.name)throw A=!0,ne({provider:"smithery",smitheryId:t.qualifiedName,serverId:t.serverId,name:t.name}),new Error("STOP_STREAM");if("unauthorized_composio"===t.type&&t.toolkitSlug&&t.serverId&&t.name)throw A=!0,ne({provider:"composio",toolkitSlug:t.toolkitSlug,serverId:t.serverId,name:t.name}),new Error("STOP_STREAM")}}else if("text-start"===n.type)D="",E.push({type:"text",content:"",isVisible:null===(t=n.isVisible)||void 0===t||t});else if("text-delta"===n.type)D+=n.delta,r.updateStreamTextPart(E,"text",D);else if("text-end"===n.type)D="";else if("reasoning-start"===n.type)D="",E.push({type:"reasoning",content:"",isVisible:null===(s=n.isVisible)||void 0===s||s});else if("reasoning-delta"===n.type)D+=n.delta,r.updateStreamTextPart(E,"reasoning",D);else if("reasoning-end"===n.type)D="";else if(n.type.startsWith("data-")){const e=n;"data-action-approval"===e.type?r.upsertActionApprovalPart(E,e.data):E.push({type:e.type,content:JSON.stringify(e.data),isVisible:!0})}as.current=Y(E);const i=Y(E);it((e=>{const t=e.findIndex((e=>e.id===x)),s=Object.assign(Object.assign({},I),{parts:i});return-1===t?[...e,s]:e.map(((e,n)=>n===t?s:e))}))}else if("artifact_created"===e.event){const t=JSON.parse(e.data);C=C.filter((e=>!(e.id===t.id&&e.version===t.version))),C.push(Object.assign(Object.assign({},t),{content:"",status:"streaming"})),jt([...C]),It.startsWith("inline")||St({id:t.id,version:t.version})}else if("artifact_updated"===e.event){const t=JSON.parse(e.data);C=C.filter((e=>!(e.id===t.id&&e.version===t.version))),C.push(Object.assign(Object.assign({},t),{content:"",status:"updating"})),jt(C),It.startsWith("inline")||St({id:t.id,version:t.version})}else if("artifact_rewrite"===e.event){const t=JSON.parse(e.data);C=C.filter((e=>!(e.id===t.id&&e.version===t.version))),C.push(Object.assign(Object.assign({},t),{content:"",status:"streaming"})),jt(C),It.startsWith("inline")||St({id:t.id,version:t.version})}else if("artifact_content"===e.event){const t=JSON.parse(e.data),s=t.token.replace(/\u200B/g,"");C=C.map((e=>e.id===t.id&&e.version===t.version?Object.assign(Object.assign({},e),{content:e.content+s,status:"streaming"}):e)),jt(C)}else if("artifact_finished"===e.event){const t=JSON.parse(e.data);jt(C.map((e=>e.id===t.id?Object.assign(Object.assign({},e),{status:"finished"}):e)))}else if("error"===e.event){const t=JSON.parse(e.data);if(t.limitData)return ot(t.limitData),at(""),void(A=!0);const s=t.error||t.message||(null==De?void 0:De["something-went-wrong-try-again"])||"Something went wrong, please try again.";if(Ks(t))return void(A=!0);at(s)}else"stop"===e.event&&(A=!0)}else A=!0}});for(;;){if(k()){A=!0,t.cancel().catch((()=>{}));break}const{value:e,done:i}=yield t.read();if(k()){A=!0,t.cancel().catch((()=>{}));break}if(i)break;n.feed(s.decode(e))}A||k()||(yield new Promise((e=>setTimeout(e,1e3))))}catch(e){if("STOP_STREAM"===e.message||W(e)||k())return void(A=!0);console.warn("Stream connection lost, retrying...",e),yield new Promise((e=>setTimeout(e,1e3)))}null==We||We(Ne)}catch(e){if(W(e))return;if(e.limitData)ot(e.limitData),at("");else{let t=D.default(e)||"";t&&!t.includes("Unexpected token 'A',")||(t=(null==De?void 0:De["high-traffic-try-again-later"])||"Oops! We're experiencing high traffic at the moment. Please try again later."),Ks(t)||at(t)}}finally{const e=!p||rs.current===p;xt(),e&&(rt("idle"),bt(),is.current=null),p&&e&&(rs.current=null,as.current=[]),yield Ys()}}));return o.useEffect((()=>{if(nt||Dt||Ft||0===Mt.length)return;const t=Mt[0];Vt(!0),Bt(t.id),e.__awaiter(void 0,void 0,void 0,(function*(){try{if(!(yield Sn(t.predecessorSubmissionId)))return void at((null==De?void 0:De["queued-message-waiting"])||"A queued message is waiting for the previous response to finish.");Rt((e=>e.filter((e=>e.id!==t.id)))),yield Nn(t.message,!1,!0,t.id)}finally{Vt(!1),Bt(null)}}))}),[nt,Ft,Dt,Mt]),Xs?null:t.jsx("div",Object.assign({className:q.default("flex w-full flex-shrink-0 flex-col items-center",!Bs&&"px-4 pb-8"),dir:Me?"rtl":"ltr"},{children:t.jsxs("div",Object.assign({className:"flex w-full max-w-[800px] flex-col"},{children:[Mt.length>0&&t.jsx("div",Object.assign({className:"mx-3 -mb-3 overflow-hidden border pb-3",style:{borderColor:Ae.text+"18",backgroundColor:null!==(ye=Ds.backgroundColor)&&void 0!==ye?ye:Ae.text+"08",color:Ae.text,borderTopLeftRadius:Math.max(Ue.cornerRadius-4,12),borderTopRightRadius:Math.max(Ue.cornerRadius-4,12)}},{children:Mt.map(((s,n)=>{var i;return t.jsxs("div",Object.assign({className:"flex min-h-10 items-center gap-2 px-3 py-2",style:n<Mt.length-1?{borderBottom:`1px solid ${Ae.text}12`}:void 0},{children:[t.jsx(w.default,{className:"h-4 w-4 shrink-0 opacity-50","aria-hidden":"true"}),t.jsx("span",Object.assign({className:"min-w-0 flex-1 truncate text-sm",title:s.message},{children:s.message})),Xt===s.id||$t===s.id?t.jsxs("span",Object.assign({className:"flex shrink-0 items-center gap-1.5 px-2 py-1 text-xs opacity-60","aria-live":"polite"},{children:[t.jsx("span",{className:"h-3 w-3 animate-spin rounded-full border border-current border-r-transparent","aria-hidden":"true"}),Xt===s.id?(null==De?void 0:De.steering)||"Steering...":(null==De?void 0:De.starting)||"Starting..."]})):t.jsxs(t.Fragment,{children:[t.jsxs("button",Object.assign({type:"button",className:"shrink-0 rounded-md px-2 py-1 text-xs font-medium opacity-70 transition-opacity hover:opacity-100 disabled:cursor-default disabled:opacity-40",disabled:Dt||!nt,onClick:()=>{(t=>{e.__awaiter(void 0,void 0,void 0,(function*(){const e=rs.current;if(!e||Dt)return;const s=Mt.findIndex((e=>e.id===t.id));if(-1===s)return;Pt(!0),Kt(t.id),at(""),jn(e);let n=!1;try{if(!(yield In(e)))throw new Error((null==De?void 0:De["failed-to-interrupt-current-response"])||"Failed to interrupt the current response.");if(!(yield Sn(e)))throw new Error((null==De?void 0:De["current-response-still-stopping"])||"The current response is still stopping. Please send your message again in a moment.");rt("idle"),Rt((e=>e.filter((e=>e.id!==t.id)))),n=!0,Pt(!1),Kt(null),yield Nn(t.message,!1,!0,t.id,!0)}catch(e){rt("idle"),n&&Rt((e=>{if(e.some((e=>e.id===t.id)))return e;const n=[...e];return n.splice(s,0,t),n})),at(D.default(e))}finally{Pt(!1),Kt(null)}}))})(s)},"aria-label":`${(null==De?void 0:De["steer-with"])||"Steer with"}: ${s.message}`},{children:[t.jsx("span",Object.assign({"aria-hidden":"true"},{children:"↳ "})),(null==De?void 0:De.steer)||"Steer"]})),t.jsx("button",Object.assign({type:"button",className:"flex h-7 w-7 shrink-0 items-center justify-center rounded-md opacity-50 transition-opacity hover:opacity-100 disabled:cursor-default disabled:opacity-30",disabled:Dt,onClick:()=>{return e=s.id,void Rt((t=>K(t,e)));var e},"aria-label":`${(null==De?void 0:De["remove-queued-message"])||"Remove queued message"}: ${s.message}`},{children:t.jsx(O.default,{className:"h-4 w-4","aria-hidden":"true"})})),t.jsxs(C.default,Object.assign({id:`queued-message-menu-${s.id}`,className:"shrink-0"},{children:[t.jsx(U.default,Object.assign({className:"flex h-7 w-7 items-center justify-center rounded-md opacity-50 transition-opacity hover:opacity-100",isDisabled:Dt,role:"button",tabIndex:Dt?-1:0,"aria-haspopup":"menu","aria-label":(null==De?void 0:De["more-options"])||"More options",onKeyDown:e=>{"Enter"!==e.key&&" "!==e.key||(e.preventDefault(),e.currentTarget.click())}},{children:t.jsxs("svg",Object.assign({viewBox:"0 0 24 24",className:"h-4 w-4",fill:"currentColor","aria-hidden":"true"},{children:[t.jsx("circle",{cx:"5",cy:"12",r:"1.6"}),t.jsx("circle",{cx:"12",cy:"12",r:"1.6"}),t.jsx("circle",{cx:"19",cy:"12",r:"1.6"})]}))})),t.jsx(A.default,Object.assign({role:"menu",align:Me?"bottom-start":"bottom-end",positionStrategy:Re?"absolute":"fixed",width:"auto",className:"p-1 text-sm shadow-xl",style:{backgroundColor:null!==(i=Ds.backgroundColor)&&void 0!==i?i:Ae.primary,color:Ae.text,borderRadius:"12px"},border:`1px solid ${Ae.text}20`},{children:t.jsxs("button",Object.assign({type:"button",role:"menuitem",className:"flex min-w-36 items-center gap-2 rounded-lg px-3 py-2 text-left transition-colors hover:bg-black/5 dark:hover:bg-white/10",onClick:()=>(e=>{Rt((t=>K(t,e.id))),_t(e.message),requestAnimationFrame((()=>{const t=ls.current;t&&(t.focus(),t.setSelectionRange(e.message.length,e.message.length))}))})(s)},{children:[t.jsx(_.default,{className:"h-4 w-4 shrink-0"}),(null==De?void 0:De["edit-message"])||"Edit message"]}))}))]}))]})]}),s.id)}))})),t.jsxs("div",Object.assign({ref:cs,className:q.default("relative z-10 flex flex-col w-full justify-end gap-y-3 py-[3px]","block"===Ue.formFieldStyle&&"shadow"),style:Object.assign(Object.assign({},Ds),{maxHeight:`${fs}px`,overflowY:"auto"})},{children:[mn&&t.jsxs("div",Object.assign({className:"sticky top-0 z-10 flex w-full items-center justify-between border-b px-4 py-2.5 shadow-sm backdrop-blur-md",style:{backgroundColor:Ds.backgroundColor?`${Ds.backgroundColor}E6`:void 0,borderColor:Ae.text+"20",color:Ae.text,borderTopRightRadius:Ue.cornerRadius+"px",borderTopLeftRadius:Ue.cornerRadius+"px"}},{children:[t.jsx("div",Object.assign({className:"flex items-center gap-2 text-sm font-medium"},{children:t.jsxs("span",{children:[ln.toLocaleString()," ",Js?(null==De?void 0:De.credits)||"Credits":(null==De?void 0:De.uses)||"Uses"," ",(null==De?void 0:De.remaining)||"remaining"]})})),t.jsxs("div",Object.assign({className:"flex items-center gap-3"},{children:[gn&&t.jsx("button",Object.assign({className:"rounded-md px-3 py-1.5 text-xs font-semibold transition-opacity hover:opacity-90",style:{backgroundColor:Ae.accent,color:Ae.accentText},onClick:e=>{if(e.preventDefault(),e.stopPropagation(),hn)return void window.open(hn,"_blank","noopener,noreferrer");if(Ye)return void Ye();const t=M.buildUpgradeUrl({baseUrl:Yt,accessGroupId:null==Ve?void 0:Ve.accessGroupId});t&&M.openAuthenticatedPricingUrl({deploymentId:Te,pricingUrl:t,studioId:null==Ce?void 0:Ce.studioid,studioSessionToken:Qe})}},{children:vn})),t.jsx("button",Object.assign({className:"flex h-6 w-6 items-center justify-center rounded-full opacity-60 transition-opacity hover:opacity-100",onClick:()=>Zt(!0)},{children:t.jsx("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:2,stroke:"currentColor",className:"h-4 w-4"},{children:t.jsx("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M6 18L18 6M6 6l12 12"})}))}))]}))]})),!nt&&dt.length>0&&t.jsx(k.default,{className:"p-4 pb-0",isDisabled:nt}),t.jsxs("div",Object.assign({className:"relative flex w-full flex-col"},{children:[Vs&&t.jsxs("div",Object.assign({className:q.default(Je?"top-6":"top-1/2","pointer-events-none absolute z-10 flex -translate-y-1/2 select-none items-center gap-x-2",Me?"right-4":"left-4")},{children:[t.jsx("span",{className:"h-2 w-2 animate-pulse rounded-full bg-c-secondary",style:{backgroundColor:null!==(Ie=Ae.accent)&&void 0!==Ie?Ie:"#ff0000"}}),t.jsx("span",Object.assign({className:"text-sm text-c-secondary font-semilight",style:{color:Ae.text+"90"}},{children:(null==De?void 0:De.listening)||"Listening..."}))]})),t.jsx(T.default,Object.assign({ref:ls,className:q.default(As.i1,"py-3.5 max-h-60 px-4 w-full border-transparent bg-transparent",!Ot.trim()&&!Ot.includes("\n")&&"overflow-hidden text-ellipsis whitespace-nowrap placeholder:whitespace-normal placeholder:overflow-visible",Me?"text-right":"text-left",!Je&&Hs&&"mb-12"),value:Ot,placeholder:Vs?"":Gs,onChange:e=>{_t(e)},onKeyDown:e=>{Le||ht||"Enter"===e.key&&(e.shiftKey||(e.preventDefault(),ct||Dt||(nt?wn():Nn())))},onPaste:t=>e.__awaiter(void 0,void 0,void 0,(function*(){const e=Array.from(t.clipboardData.files||[]);if(e.length>0){if(!Rs)return;t.preventDefault(),$e(!1),yield pt(e)}}))},ee&&{onFocus:ee},te&&{onBlur:te},{dir:Me?"rtl":"ltr"})),t.jsxs("div",Object.assign({ref:ds,className:Je?"relative flex w-full items-center gap-2 px-3 pb-2 [&>button]:shrink-0 [&>button]:mr-0":q.default("flex items-center gap-2 absolute z-2 transition-all duration-200 ease-in-out",Hs?"bottom-3 right-2":"right-0 top-1/2 -translate-y-1/2"),style:Object.assign(Object.assign({},!Hs&&Ds.backgroundColor&&{backgroundColor:Ds.backgroundColor}),{borderTopRightRadius:Ue.cornerRadius+"px",borderBottomRightRadius:Ue.cornerRadius+"px"})},{children:[!nt&&!hs&&Rs&&t.jsxs("button",Object.assign({className:"flex h-8 w-8 items-center justify-center rounded-full outline-none transition-colors duration-200 ease-in-out disabled:cursor-default",style:{backgroundColor:ks?Ae.accent+"10":void 0,color:ks?Ae.accent:Ae.accent+"80"},disabled:ct||nt,"aria-label":null!==(je=null==De?void 0:De["attach-files"])&&void 0!==je?je:"Attach files",onClick:()=>{var e;return null===(e=ss.current)||void 0===e?void 0:e.click()}},Ts,{children:[t.jsx("input",{id:"file-upload",ref:ss,type:"file",accept:[...x.allowedFileMimeTypes,...x.allowedImageMimeTypes,...x.additionalAllowedFileExtensions].join(", "),multiple:!0,hidden:!0,className:"hidden",onChange:t=>e.__awaiter(void 0,void 0,void 0,(function*(){$e(!1),yield pt(Array.from(t.target.files||[])),t.target.value=""}))}),t.jsx(I.default,{className:"h-6 w-6 shrink-0"})]})),t.jsx(i.default,{compact:!0}),nt&&!Lt?t.jsxs(t.Fragment,{children:[(hs||vs)&&t.jsx("button",Object.assign({"aria-label":(null==De?void 0:De["stop-listening"])||"Stop listening",title:(null==De?void 0:De["stop-listening"])||"Stop listening",className:"flex h-8 w-8 items-center justify-center rounded-full outline-none transition-colors duration-200 ease-in-out",onClick:()=>{Ss()},disabled:vs,style:{backgroundColor:Ae.accent,color:Ae.accentText}},{children:t.jsx(S.default,{className:"h-5 w-5 shrink-0"})})),t.jsx("button",Object.assign({"aria-label":(null==De?void 0:De["stop-response"])||"Stop response",className:"flex h-8 w-8 items-center justify-center rounded-full outline-none transition-colors duration-200 ease-in-out",onClick:()=>{const e=rs.current;e&&(jn(e),In(e)),rt("idle")},style:{backgroundColor:Ae.accent+"10",color:Ae.accent}},{children:t.jsx(N.default,{className:"h-4 w-4 shrink-0"})})),t.jsx("button",Object.assign({"aria-label":(null==De?void 0:De["queue-message"])||"Queue message",className:"flex h-8 w-8 items-center mr-2 justify-center rounded-full outline-none transition-colors duration-200 ease-in-out disabled:cursor-default",disabled:Dt||ct||!Ot.trim(),onClick:wn,style:{backgroundColor:Ot.trim()?Ae.accent:Ae.accent+"10",color:Ot.trim()?Ae.accentText:Ae.accent+"80"}},{children:t.jsx(j.default,{className:q.default("h-6 w-6 shrink-0",Me&&"scale-x-[-1] transform")})}))]}):hs||vs?t.jsxs(t.Fragment,{children:[t.jsx("button",Object.assign({"aria-label":(null==De?void 0:De["stop-listening"])||"Stop listening",className:"flex h-8 w-8 items-center mr-2 justify-center rounded-full outline-none transition-colors duration-200 ease-in-out",onClick:()=>{Ss()},disabled:vs,style:{backgroundColor:Ae.accent,color:Ae.accentText}},{children:t.jsx(N.default,{className:"h-4 w-4 shrink-0"})})),Ot.trim()&&t.jsx("button",Object.assign({"aria-label":(null==De?void 0:De["send-message"])||"Send message",className:"flex h-8 w-8 items-center mr-2 justify-center rounded-full outline-none transition-colors duration-200 ease-in-out disabled:cursor-default",disabled:!xn,onClick:()=>{Nn()},style:{backgroundColor:Ae.accent,color:Ae.accentText}},{children:t.jsx(j.default,{className:q.default("h-6 w-6 shrink-0",Me&&"scale-x-[-1] transform")})}))]}):t.jsxs(t.Fragment,{children:[Fs&&t.jsx("button",Object.assign({className:"disabled:cursor-default flex h-8 w-8 items-center justify-center rounded-full outline-none transition-colors duration-200 ease-in-out",style:{backgroundColor:hs?Ae.accent:Cs?Ae.accent+"10":void 0,color:hs?Ae.accentText:Cs?Ae.accent:Ae.accent+"80"},disabled:ct||nt||vs,onClick:()=>{hs?Ss():(Tt(null),ns.current=Ot,js(Pe||"en-US"))}},Us,{children:t.jsx(S.default,{className:"h-5 w-5 shrink-0"})})),t.jsx("button",Object.assign({className:"flex h-8 w-8 items-center mr-2 justify-center rounded-full outline-none transition-colors duration-200 ease-in-out disabled:cursor-default",style:{backgroundColor:Ns||xn?Ae.accent:Ae.accent+"10",color:Ns||xn?Ae.accentText:Ae.accent+"80"},disabled:!xn,onClick:()=>Nn()},Os,{children:t.jsx(j.default,{className:q.default("h-6 w-6 shrink-0",Me&&"scale-x-[-1] transform")})}))]})]}))]}))]})),ut&&t.jsx(E.default,{error:ut,className:"mt-3"})]}))}))}));ee.displayName="Input",exports.default=ee;
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("../../../_virtual/_tslib.js"),t=require("react/jsx-runtime"),o=require("../../../common/canChat.js"),s=require("react"),i=require("../../../hooks/pickaxe/usePickaxeContext.js"),n=require("../Addons/Auth/hooks/useAuthContext.js"),r=require("../../../hooks/pickaxe/useDimensionContext.js"),a=require("../Addons/Document/hooks/useDocument.js"),l=require("../Addons/Scroll/hooks/useScroll.js"),u=require("../../../hooks/studio/useStyleFontSize.js"),c=require("../../../hooks/core/useScrollToBottomVisibility.js"),d=require("./History/index.js"),f=require("./Input.js"),m=require("../../Icons/attach-vertical.svg.js"),h=require("../../../common/cn.js"),p=require("../../../common/api/pickaxe.js"),v=require("uuid"),x=require("../../Core/StudioTip.js"),j=require("../common/ScrollToBottomButton.js"),b=require("../common/PickaxeMCPButton.js"),g=require("../../../hooks/pickaxe/useResponseContext.js"),k=require("../Addons/Navbar/NavPill.js"),y=require("../../Icons/history.svg.js");exports.default=()=>{var S,w;const{deploymentType:C,isNewChat:q,setIsNewChat:D,sessionId:I,setSessionId:N,setLastSessionId:T,pickaxeId:P,sender:A,pickaxe:O,styles:_,isEmbed:F,mcpEnabled:E,translations:R}=i.usePickaxeContext(),{isSent:z,token:B}=n.useAuthContext(),{width:H,height:G,setDimension:L}=r.useDimensionContext(),{setDocuments:M,onFileUpload:V}=a.useDocument(),{scrollContainerRef:U,scrollToBottom:W}=l.useScroll({listen:!1}),{isGenerating:J,messages:K}=g.useResponseContext(),Q=u.useStyleFontSize(),[X,Y]=s.useState(0),[Z,$]=s.useState(!1),[ee,te]=s.useState(!1),oe=s.useRef(null),se=s.useRef(null),ie=s.useRef(0),[ne,re]=s.useState(null),[ae,le]=s.useState(!1),ue=(null==R?void 0:R["new-chat"])||"New chat",ce=o.canChat(O),de=ce&&"chat-input"===C&&q&&!z,fe=ce&&null!==(w=null===(S=null==O?void 0:O.documentuploadtype)||void 0===S?void 0:S.startsWith("enduserupload"))&&void 0!==w&&w,{hasScrollableContent:me,isNearBottom:he}=c.default(U,{},[de]);s.useEffect((()=>()=>{M([])}),[]);const pe=s.useCallback((()=>{if(!P||!A&&!B)return;const t=(o=0)=>e.__awaiter(void 0,void 0,void 0,(function*(){var e;try{const t=yield p.pickaxeApi2.post("/conversation/title",Object.assign({sessionId:I},B?{studioSessionToken:B}:A?{userId:A}:{}));if(t.data&&t.data.success){const e=t.data.title;if(e&&"Conversation Title"!==e)return void xe(e)}else console.error("Failed to load conversation:",null===(e=t.data)||void 0===e?void 0:e.error)}catch(e){console.error("Error fetching conversation:",e)}o<20&&setTimeout((()=>t(o+1)),3e3)}));t()}),[P,A,I,B]);s.useEffect((()=>{J||q||!I||pe()}),[J,q,I,pe]),s.useEffect((()=>{if(!oe.current)return;const e=new ResizeObserver((e=>{for(const t of e){const{width:e,height:o}=t.contentRect;L(parseInt(e.toFixed(0)),parseInt(o.toFixed(0)))}}));return e.observe(oe.current),()=>{e.disconnect()}}),[L]);const[ve,xe]=s.useState(ue),je=(null==O?void 0:O.formtitle)||"Pickaxe",be=(null==O?void 0:O.coverphoto)||void 0,[ge,ke]=s.useState(!1);s.useEffect((()=>{const e=!de&&!F&&_.portalTheme&&(K.filter((e=>"user"===e.role)).length>0||Z||!q);ke(null!=e&&e)}),[de,F,Z,q,K,_.portalTheme]);const ye=s.useCallback((()=>{W({force:!0,behavior:"auto"})}),[W]);return t.jsxs("div",Object.assign({ref:oe,className:"relative flex h-full w-full flex-col items-center overflow-hidden",onDragEnter:e=>{e.preventDefault(),e.stopPropagation(),fe&&(ie.current+=1,e.dataTransfer.items&&e.dataTransfer.items.length>0&&te(!0))},onDragLeave:e=>{e.preventDefault(),e.stopPropagation(),fe&&(ie.current-=1,0===ie.current&&te(!1))},onDragOver:e=>{e.preventDefault(),e.stopPropagation()},onDrop:t=>e.__awaiter(void 0,void 0,void 0,(function*(){if(t.preventDefault(),t.stopPropagation(),te(!1),ie.current=0,!fe)return;const e=Array.from(t.dataTransfer.files||[]);e.length>0&&(D(!1),yield V(e))}))},{children:[ee&&t.jsxs("div",Object.assign({className:"absolute inset-0 z-50 flex flex-col items-center justify-center rounded-lg bg-white/80 backdrop-blur-sm transition-all duration-300"},{children:[t.jsx("div",Object.assign({className:"flex h-24 w-24 items-center justify-center rounded-full bg-white shadow-lg animate-bounce text-black"},{children:t.jsx(m.default,{className:"h-10 w-10"})})),t.jsx("h3",Object.assign({className:h.default(Q.h3,"mt-6 font-semibold text-c-primary text-black")},{children:(null==R?void 0:R["drop-files-to-upload"])||"Drop files to upload"})),t.jsx("p",Object.assign({className:h.default(Q.b2,"mt-2 opacity-60 text-black")},{children:(null==R?void 0:R["add-anything-to-the-conversation"])||"Add anything to the conversation"}))]})),!F&&E?t.jsx("div",Object.assign({className:"pointer-events-none absolute left-1/2 top-4 z-40 flex w-full max-w-[800px] -translate-x-1/2 justify-end px-4"},{children:t.jsx("div",Object.assign({className:"pointer-events-auto"},{children:t.jsx(b.default,{})}))})):null,de?t.jsx(f.default,{}):t.jsxs(t.Fragment,{children:[ge&&t.jsxs("div",Object.assign({className:h.default("direct-link"===C?"absolute top-4 left-4 md:top-6 md:left-6 z-40 flex items-center gap-2 animate-in fade-in slide-in-from-top-4 duration-500":"w-full max-w-3xl mt-6 px-4 md:px-0 flex justify-start z-30 mb-4 animate-in fade-in slide-in-from-top-4 duration-500 gap-2","dark"===_.portalTheme?"glass-dark ":"")},{children:[t.jsx(k.NavPill,{text:je,icon:be}),q||ve===ue?t.jsx(k.NavPill,{text:ve}):t.jsx(k.EditableNavPill,{text:ve,sessionId:I,onRename:t=>e.__awaiter(void 0,void 0,void 0,(function*(){if(I)try{yield p.pickaxeApi2.patch("/conversation/title",Object.assign({sessionId:I,name:t},B?{studioSessionToken:B}:A?{userId:A}:{})),xe(t)}catch(e){console.error("Error renaming chat:",e),alert((null==R?void 0:R["failed-rename-chat"])||"Failed to rename chat.")}})),onDelete:()=>e.__awaiter(void 0,void 0,void 0,(function*(){if(I&&window.confirm((null==R?void 0:R["delete-confirm"])||"Are you sure you want to delete this conversation?"))try{yield p.pickaxeApi2.delete("/conversation",{data:Object.assign({sessionId:I},B?{studioSessionToken:B}:A?{userId:A}:{})}),D(!0),N(ce?v.v4():""),xe(ue)}catch(e){console.error("Error deleting chat:",e),alert((null==R?void 0:R["failed-delete-chat"])||"Failed to delete chat.")}})),isDarkGlass:"dark"===_.portalTheme}),t.jsx(x.StudioTip,Object.assign({content:R["chat-history"]||"Chat History",align:"bottom",containerClassName:"inline-flex shrink-0"},{children:t.jsx(k.HistoryPill,{icon:t.jsx(y.default,{}),onClick:()=>{N(""),T(I)}})}))]})),t.jsx(d.default,{additionalScrollHeight:X,isForceHideInfo:G<=545||H<=350||Z,isInputFocused:Z,onSubmit:t=>e.__awaiter(void 0,void 0,void 0,(function*(){ce&&se.current&&se.current.onSubmit(t)})),smitheryAuthData:ne,resubmitPrompt:()=>{re(null),le(!0)}}),t.jsx(j.default,{isVisible:me&&!he,bottom:X+65,onClick:ye}),ce&&t.jsx(f.default,{ref:se,onFocus:()=>$(!0),onBlur:()=>$(!1),onInputHeightChange:Y,initSmitheryAuthData:e=>re(e),resubmitPrompt:ae})]})]}))};
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("../../../_virtual/_tslib.js"),t=require("react/jsx-runtime"),o=require("../../../common/canChat.js"),s=require("react"),i=require("../../../hooks/pickaxe/usePickaxeContext.js"),n=require("../Addons/Auth/hooks/useAuthContext.js"),r=require("../../../hooks/pickaxe/useDimensionContext.js"),a=require("../Addons/Document/hooks/useDocument.js"),l=require("../Addons/Scroll/hooks/useScroll.js"),u=require("../../../hooks/studio/useStyleFontSize.js"),c=require("../../../hooks/core/useScrollToBottomVisibility.js"),d=require("./History/index.js"),f=require("./Input.js"),m=require("../../Icons/attach-vertical.svg.js"),h=require("../../../common/cn.js"),p=require("../../../common/api/pickaxe.js"),v=require("uuid"),x=require("../../Core/StudioTip.js"),j=require("../common/ScrollToBottomButton.js"),b=require("../common/PickaxeMCPButton.js"),g=require("../../../hooks/pickaxe/useResponseContext.js"),k=require("../Addons/Navbar/NavPill.js"),y=require("../../Icons/history.svg.js");exports.default=()=>{var S,w;const{deploymentType:C,isNewChat:q,setIsNewChat:D,sessionId:I,setSessionId:N,setLastSessionId:T,pickaxeId:P,sender:A,pickaxe:O,styles:_,isEmbed:F,mcpEnabled:E,translations:R}=i.usePickaxeContext(),{isSent:z,token:B}=n.useAuthContext(),{width:H,height:G,setDimension:L}=r.useDimensionContext(),{setDocuments:M,onFileUpload:V}=a.useDocument(),{scrollContainerRef:U,scrollToBottom:W}=l.useScroll({listen:!1}),{isGenerating:J,messages:K}=g.useResponseContext(),Q=u.useStyleFontSize(),[X,Y]=s.useState(0),[Z,$]=s.useState(!1),[ee,te]=s.useState(!1),oe=s.useRef(null),se=s.useRef(null),ie=s.useRef(0),[ne,re]=s.useState(null),[ae,le]=s.useState(0),ue=(null==R?void 0:R["new-chat"])||"New chat",ce=o.canChat(O),de=ce&&"chat-input"===C&&q&&!z,fe=ce&&null!==(w=null===(S=null==O?void 0:O.documentuploadtype)||void 0===S?void 0:S.startsWith("enduserupload"))&&void 0!==w&&w,{hasScrollableContent:me,isNearBottom:he}=c.default(U,{},[de]);s.useEffect((()=>()=>{M([])}),[]);const pe=s.useCallback((()=>{if(!P||!A&&!B)return;const t=(o=0)=>e.__awaiter(void 0,void 0,void 0,(function*(){var e;try{const t=yield p.pickaxeApi2.post("/conversation/title",Object.assign({sessionId:I},B?{studioSessionToken:B}:A?{userId:A}:{}));if(t.data&&t.data.success){const e=t.data.title;if(e&&"Conversation Title"!==e)return void xe(e)}else console.error("Failed to load conversation:",null===(e=t.data)||void 0===e?void 0:e.error)}catch(e){console.error("Error fetching conversation:",e)}o<20&&setTimeout((()=>t(o+1)),3e3)}));t()}),[P,A,I,B]);s.useEffect((()=>{J||q||!I||pe()}),[J,q,I,pe]),s.useEffect((()=>{if(!oe.current)return;const e=new ResizeObserver((e=>{for(const t of e){const{width:e,height:o}=t.contentRect;L(parseInt(e.toFixed(0)),parseInt(o.toFixed(0)))}}));return e.observe(oe.current),()=>{e.disconnect()}}),[L]);const[ve,xe]=s.useState(ue),je=(null==O?void 0:O.formtitle)||"Pickaxe",be=(null==O?void 0:O.coverphoto)||void 0,[ge,ke]=s.useState(!1);s.useEffect((()=>{const e=!de&&!F&&_.portalTheme&&(K.filter((e=>"user"===e.role)).length>0||Z||!q);ke(null!=e&&e)}),[de,F,Z,q,K,_.portalTheme]);const ye=s.useCallback((()=>{W({force:!0,behavior:"auto"})}),[W]);return t.jsxs("div",Object.assign({ref:oe,className:"relative flex h-full w-full flex-col items-center overflow-hidden",onDragEnter:e=>{e.preventDefault(),e.stopPropagation(),fe&&(ie.current+=1,e.dataTransfer.items&&e.dataTransfer.items.length>0&&te(!0))},onDragLeave:e=>{e.preventDefault(),e.stopPropagation(),fe&&(ie.current-=1,0===ie.current&&te(!1))},onDragOver:e=>{e.preventDefault(),e.stopPropagation()},onDrop:t=>e.__awaiter(void 0,void 0,void 0,(function*(){if(t.preventDefault(),t.stopPropagation(),te(!1),ie.current=0,!fe)return;const e=Array.from(t.dataTransfer.files||[]);e.length>0&&(D(!1),yield V(e))}))},{children:[ee&&t.jsxs("div",Object.assign({className:"absolute inset-0 z-50 flex flex-col items-center justify-center rounded-lg bg-white/80 backdrop-blur-sm transition-all duration-300"},{children:[t.jsx("div",Object.assign({className:"flex h-24 w-24 items-center justify-center rounded-full bg-white shadow-lg animate-bounce text-black"},{children:t.jsx(m.default,{className:"h-10 w-10"})})),t.jsx("h3",Object.assign({className:h.default(Q.h3,"mt-6 font-semibold text-c-primary text-black")},{children:(null==R?void 0:R["drop-files-to-upload"])||"Drop files to upload"})),t.jsx("p",Object.assign({className:h.default(Q.b2,"mt-2 opacity-60 text-black")},{children:(null==R?void 0:R["add-anything-to-the-conversation"])||"Add anything to the conversation"}))]})),!F&&E?t.jsx("div",Object.assign({className:"pointer-events-none absolute left-1/2 top-4 z-40 flex w-full max-w-[800px] -translate-x-1/2 justify-end px-4"},{children:t.jsx("div",Object.assign({className:"pointer-events-auto"},{children:t.jsx(b.default,{})}))})):null,de?t.jsx(f.default,{}):t.jsxs(t.Fragment,{children:[ge&&t.jsxs("div",Object.assign({className:h.default("direct-link"===C?"absolute top-4 left-4 md:top-6 md:left-6 z-40 flex items-center gap-2 animate-in fade-in slide-in-from-top-4 duration-500":"w-full max-w-3xl mt-6 px-4 md:px-0 flex justify-start z-30 mb-4 animate-in fade-in slide-in-from-top-4 duration-500 gap-2","dark"===_.portalTheme?"glass-dark ":"")},{children:[t.jsx(k.NavPill,{text:je,icon:be}),q||ve===ue?t.jsx(k.NavPill,{text:ve}):t.jsx(k.EditableNavPill,{text:ve,sessionId:I,onRename:t=>e.__awaiter(void 0,void 0,void 0,(function*(){if(I)try{yield p.pickaxeApi2.patch("/conversation/title",Object.assign({sessionId:I,name:t},B?{studioSessionToken:B}:A?{userId:A}:{})),xe(t)}catch(e){console.error("Error renaming chat:",e),alert((null==R?void 0:R["failed-rename-chat"])||"Failed to rename chat.")}})),onDelete:()=>e.__awaiter(void 0,void 0,void 0,(function*(){if(I&&window.confirm((null==R?void 0:R["delete-confirm"])||"Are you sure you want to delete this conversation?"))try{yield p.pickaxeApi2.delete("/conversation",{data:Object.assign({sessionId:I},B?{studioSessionToken:B}:A?{userId:A}:{})}),D(!0),N(ce?v.v4():""),xe(ue)}catch(e){console.error("Error deleting chat:",e),alert((null==R?void 0:R["failed-delete-chat"])||"Failed to delete chat.")}})),isDarkGlass:"dark"===_.portalTheme}),t.jsx(x.StudioTip,Object.assign({content:R["chat-history"]||"Chat History",align:"bottom",containerClassName:"inline-flex shrink-0"},{children:t.jsx(k.HistoryPill,{icon:t.jsx(y.default,{}),onClick:()=>{N(""),T(I)}})}))]})),t.jsx(d.default,{additionalScrollHeight:X,isForceHideInfo:G<=545||H<=350||Z,isInputFocused:Z,onSubmit:t=>e.__awaiter(void 0,void 0,void 0,(function*(){ce&&se.current&&se.current.onSubmit(t)})),smitheryAuthData:ne,resubmitPrompt:()=>{re(null),le((e=>e+1))}}),t.jsx(j.default,{isVisible:me&&!he,bottom:X+65,onClick:ye}),ce&&t.jsx(f.default,{ref:se,onFocus:()=>$(!0),onBlur:()=>$(!1),onInputHeightChange:Y,initSmitheryAuthData:e=>re(e),resubmitPrompt:ae})]})]}))};
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("../../../../_virtual/_tslib.js"),t=require("react/jsx-runtime"),s=require("../../../../common/formQuestionValidation.js"),n=require("../../../../hooks/pickaxe/useEndUserModel.js"),i=require("../../common/EndUserModelPicker.js"),o=require("../../../../common/actionApproval.js"),r=require("react"),a=require("../../../../hooks/pickaxe/usePickaxeContext.js"),l=require("../../Addons/Auth/hooks/useAuthContext.js"),d=require("../../../../hooks/pickaxe/useResponseContext.js"),u=require("../../Addons/Document/hooks/useDocument.js"),c=require("../../Addons/Scroll/hooks/useScroll.js"),p=require("../../Addons/Artifact/hooks/useArtifactContext.js"),m=require("../../../../common/utils.js"),f=require("eventsource-parser"),g=require("../../common/PickaxeBranding.js"),v=require("../../common/PickaxeButton.js"),h=require("../../../../common/error.js"),x=require("../../../../common/validation.js");exports.default=({navigation:b,paged:j=!1,questions:y,resetQuestions:O,onInvalidQuestion:w})=>{var S;const{origin:k,pickaxeId:I,sender:A,senderType:C,portalId:P,deploymentId:E,pickaxe:q,misc:_,translations:N,isRtl:T,setSessionId:U,setIsNewChat:D,setValidationStatus:L,setValidationUpgradeGroups:R,setValidationUpgradeUrl:V,setAccessGroup:B,onGenerateComplete:J}=a.usePickaxeContext(),{value:K}=n.useEndUserModel(),{token:W}=l.useAuthContext(),{isGenerating:X,setResponse:M,setMessages:G,setStatus:F,setLimitData:Q,setError:$,setActionApprovalToken:z,setIsSwitchedToChat:Y}=d.useResponseContext(),{documents:H,websiteLink:Z,isUploading:ee,onWebsiteUpload:te,setDocuments:se,setDocumentError:ne}=u.useDocument(),{scrollStartSession:ie,scrollEndSession:oe,scrollToTarget:re}=c.useScroll({auto:!(null==q?void 0:q.enablechatresponses)}),{artifacts:ae,currentPopupType:le,setArtifacts:de,setCurrentArtifact:ue}=p.useArtifactContext(),[ce,pe]=r.useState(!1),[me,fe]=r.useState(!1),ge=r.useRef(null),ve=e=>{const t=x.getValidationFailure(e);return!!t&&($(""),Q(null),L(t.status),B(t.accessGroup),R(t.upgradeGroups),V(t.upgradeUrl),!0)},he=r.useMemo((()=>y.some((e=>("Short Answer"===e.type||"Long Answer"===e.type||"long"===e.type||"short"===e.type||"Checkbox"===e.type||"Knowledge Upload"===e.type||e.id.includes("documentupload"))&&e.input.length>0))),[y])&&t.jsx(v.default,Object.assign({variant:"transparent-text",className:"min-h-[42px] px-5",isDisabled:ee||X||ce,onClick:O},{children:(null==N?void 0:N["form.clear-form"])||(null==N?void 0:N["clear-form"])||"Clear form"}));return t.jsxs("div",Object.assign({className:j?"flex flex-col gap-4":"mt-4 flex flex-wrap justify-between gap-4 items-center",dir:T?"rtl":"ltr"},{children:[j&&t.jsx(i.default,{}),t.jsxs("div",Object.assign({className:j?"flex flex-wrap items-center justify-end gap-2":"flex items-center flex-grow flex-wrap gap-2"},{children:[!j&&t.jsx(i.default,{}),j&&b&&t.jsx("div",Object.assign({className:"me-auto shrink-0"},{children:b})),j&&he,t.jsx(v.default,Object.assign({className:"px-5 min-h-[42px]",isDisabled:ee||X||ce,onClick:()=>e.__awaiter(void 0,void 0,void 0,(function*(){var e,t,n,i,r;try{if(X||ee||ce)return;$(""),ne(""),Q(null),M(null);for(const t of y){const n=s.getFormQuestionError(t);if(n)throw null==w||w(t.id),new Error(null!==(e=null==N?void 0:N[n])&&void 0!==e?e:"response-too-long"===n?"One or more of your responses is too long!":"You must fill out all required fields.")}const a=H.filter((e=>"finished"===e.status)),l=H.map((e=>e.name)),d=null!==(n=null===(t=null==q?void 0:q.documentuploadtype)||void 0===t?void 0:t.startsWith("enduserupload"))&&void 0!==n&&n,u=y.some((e=>"userinput:documentupload"===e.id&&e.isRequired)),c=m.extractUrlsFromText(Z).filter((e=>!l.includes(e)));if(c.length){const e=c[c.length-1];pe(!0);const t=yield te(e);t&&(a.push(t),yield new Promise((e=>setTimeout(e,5e3)))),pe(!1)}else if(u&&d&&!a.length)return null==w||w("userinput:documentupload"),void ne((null==N?void 0:N["document-upload-required"])||"Please paste a valid website/video link or drag a file to add to the knowledge base.");const p=a.map((e=>e.documentId||"")).filter(Boolean),g=d&&p.length>0,v={};y.forEach((e=>{v[e.id]="Knowledge Upload"===e.type||e.id.includes("documentupload")?a.map((e=>e.name)).join(",")||"":e.input})),fe(!1),F("fetching"),ie(),re();const h=yield fetch(`${process.env.NEXT_PUBLIC_PICKAXE_API2_URL}/response/submit`,{method:"POST",headers:Object.assign(Object.assign({"Content-Type":"application/json"},process.env.NEXT_PUBLIC_PICKAXE_SESSION_TOKEN&&{"x-pickaxe-session-token":process.env.NEXT_PUBLIC_PICKAXE_SESSION_TOKEN}),{"x-request-sent-at":(new Date).toISOString()}),body:JSON.stringify(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({supportsActionConfirmation:!0,selectedModel:K||void 0,origin:k,pickaxeId:I,senderType:C,valueObj:v},g&&{documentIds:p}),A&&{sender:A}),W&&{studioSessionToken:W}),!W&&!A&&{sender:m.initializeEmbedUserId()}),P&&{portalId:P}),E&&{deploymentId:E}))}),x=yield h.json();if(!x.success){const e=new Error(x.error||x.message||(null==N?void 0:N["failed-to-start-generation"])||"Failed to start generation");if(x.limitData)throw e.limitData=x.limitData,e;if(ve(x))return;throw e}if(!x.submissionId||!x.sessionId)throw new Error((null==N?void 0:N["failed-to-start-generation"])||"Failed to start generation");z(null!==(i=x.actionApprovalToken)&&void 0!==i?i:null);const b=x.submissionId,j=x.sessionId,O={sessionId:j,documentIds:g?p:[],question:{inputs:y.map((e=>({id:e.id,question:e.main,answer:e.input}))),responseParts:[]},messageCount:0,sentAt:new Date};M(O),(null==q?void 0:q.enablechatresponses)&&(U(j),D(!1),Y(!0),G([{id:0,role:"assistant",parts:[],documentIds:[],responseReference:"form-result"}])),g&&se([]),F("streaming"),ge.current=new AbortController;const S=[];let _=[...null!=ae?ae:[]],T=0,L=!1,R="";for(;!L;)try{const e=yield fetch(`${process.env.NEXT_PUBLIC_PICKAXE_API2_URL}/response/stream/${b}?index=${T}`,{signal:null===(r=ge.current)||void 0===r?void 0:r.signal,headers:{"Cache-Control":"no-cache",Connection:"keep-alive"}});if(!e.body)throw new Error("No response body");const t=e.body.getReader(),s=new TextDecoder,n=f.createParser({onEvent:e=>{var t,s;if(e.event&&"ping"!==e.event&&T++,"stop"!==e.event){if("error"===e.event){const t=JSON.parse(e.data);if(t.limitData)return Q(t.limitData),$(""),void(L=!0);const s=t.error||t.message||(null==N?void 0:N["something-went-wrong"])||"Something went wrong.";return ve(t)||$(s),void(L=!0)}if("delta"===e.event){const n=JSON.parse(e.data);if("finish"===n.type)return void fe(!0);if("text-start"===n.type)R="",S.push({type:"text",content:"",isVisible:null===(t=n.isVisible)||void 0===t||t});else if("text-delta"===n.type)R+=n.delta,o.updateStreamTextPart(S,"text",R);else if("text-end"===n.type)R="";else if("reasoning-start"===n.type)R="",S.push({type:"reasoning",content:"",isVisible:null===(s=n.isVisible)||void 0===s||s});else if("reasoning-delta"===n.type)R+=n.delta,o.updateStreamTextPart(S,"reasoning",R);else if("reasoning-end"===n.type)R="";else if(n.type.startsWith("data-")){const e=n;"data-action-approval"===e.type?o.upsertActionApprovalPart(S,e.data):S.push({type:e.type,content:JSON.stringify(e.data),isVisible:!0})}const i=Object.assign(Object.assign({},O),{question:Object.assign(Object.assign({},O.question),{responseParts:[...S]})});M(i),(null==q?void 0:q.enablechatresponses)&&G([{id:0,responseReference:"form-result",role:"assistant",parts:[...S],documentIds:[]}])}else if("artifact_created"===e.event){const t=JSON.parse(e.data);_=_.filter((e=>!(e.id===t.id&&e.version===t.version))),_.push(Object.assign(Object.assign({},t),{content:"",status:"streaming"})),de([..._]),le.startsWith("inline")||ue({id:t.id,version:t.version})}else if("artifact_updated"===e.event){const t=JSON.parse(e.data);_=_.filter((e=>!(e.id===t.id&&e.version===t.version))),_.push(Object.assign(Object.assign({},t),{content:"",status:"updating"})),de([..._]),le.startsWith("inline")||ue({id:t.id,version:t.version})}else if("artifact_rewrite"===e.event){const t=JSON.parse(e.data);_=_.filter((e=>!(e.id===t.id&&e.version===t.version))),_.push(Object.assign(Object.assign({},t),{content:"",status:"streaming"})),de([..._]),le.startsWith("inline")||ue({id:t.id,version:t.version})}else if("artifact_content"===e.event){const t=JSON.parse(e.data),s=t.token.replace(/\u200B/g,"");_=_.map((e=>e.id===t.id&&e.version===t.version?Object.assign(Object.assign({},e),{content:e.content+s,status:"streaming"}):e)),de([..._])}else if("artifact_finished"===e.event){const t=JSON.parse(e.data);de(_.map((e=>e.id===t.id?Object.assign(Object.assign({},e),{status:"finished"}):e)))}}else L=!0}});for(;;){const{value:e,done:i}=yield t.read();if(i)break;n.feed(s.decode(e))}L||(yield new Promise((e=>setTimeout(e,1e3))))}catch(e){if(e instanceof Error&&"AbortError"===e.name)return void(L=!0);console.warn("Stream connection lost, retrying...",e),yield new Promise((e=>setTimeout(e,1e3)))}null==J||J(j)}catch(e){if((e=>e instanceof Error&&Boolean(e.limitData))(e))return Q(e.limitData),$(""),void re();let t=h.default(e)||"";t&&!t.includes("Unexpected token 'A',")||(t=(null==N?void 0:N["high-traffic-try-again-later"])||"Oops! We're experiencing high traffic at the moment. Please try again later."),ve(t)||$(t),re()}finally{F("idle"),pe(!1),oe()}}))},{children:ce?(null==N?void 0:N.processing)||"Processing...":ee?(null==N?void 0:N.uploading)||"Uploading...":X&&!me?(null==N?void 0:N.loading)||"Loading...":null!==(S=null==q?void 0:q.submittext)&&void 0!==S?S:"Submit"})),!j&&he]})),!_.isWhiteLabel&&t.jsx(g.default,{containerClassName:"justify-end"})]}))};
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("../../../../_virtual/_tslib.js"),t=require("react/jsx-runtime"),s=require("../../../../common/formQuestionValidation.js"),n=require("../../../../hooks/pickaxe/useEndUserModel.js"),i=require("../../common/EndUserModelPicker.js"),o=require("../../../../common/actionApproval.js"),r=require("react"),a=require("../../../../hooks/pickaxe/usePickaxeContext.js"),l=require("../../Addons/Auth/hooks/useAuthContext.js"),d=require("../../../../hooks/pickaxe/useResponseContext.js"),u=require("../../Addons/Document/hooks/useDocument.js"),c=require("../../Addons/Scroll/hooks/useScroll.js"),p=require("../../Addons/Artifact/hooks/useArtifactContext.js"),m=require("../../../../common/utils.js"),f=require("eventsource-parser"),g=require("../../common/PickaxeBranding.js"),v=require("../../common/PickaxeButton.js"),h=require("../../../../common/error.js"),b=require("../../../../common/validation.js");exports.default=({navigation:x,paged:j=!1,questions:y,resetQuestions:O,onInvalidQuestion:w})=>{var S;const{origin:_,pickaxeId:k,sender:I,senderType:C,portalId:A,deploymentId:P,pickaxe:q,misc:E,translations:N,isRtl:T,setSessionId:U,setIsNewChat:D,setValidationStatus:L,setValidationUpgradeGroups:R,setValidationUpgradeUrl:V,setAccessGroup:B,onGenerateComplete:J}=a.usePickaxeContext(),{value:K}=n.useEndUserModel(),{token:W}=l.useAuthContext(),{isGenerating:X,setResponse:M,setMessages:G,setStatus:F,setLimitData:Q,setError:$,setActionApprovalToken:z,setIsSwitchedToChat:Y}=d.useResponseContext(),{documents:H,websiteLink:Z,isUploading:ee,onWebsiteUpload:te,setDocuments:se,setDocumentError:ne}=u.useDocument(),{scrollStartSession:ie,scrollEndSession:oe,scrollToTarget:re}=c.useScroll({auto:!(null==q?void 0:q.enablechatresponses)}),{artifacts:ae,currentPopupType:le,setArtifacts:de,setCurrentArtifact:ue}=p.useArtifactContext(),[ce,pe]=r.useState(!1),[me,fe]=r.useState(!1),ge=r.useRef(null),ve=e=>{const t=b.getValidationFailure(e);return!!t&&($(""),Q(null),L(t.status),B(t.accessGroup),R(t.upgradeGroups),V(t.upgradeUrl),!0)},he=r.useMemo((()=>y.some((e=>("Short Answer"===e.type||"Long Answer"===e.type||"long"===e.type||"short"===e.type||"Checkbox"===e.type||"Knowledge Upload"===e.type||e.id.includes("documentupload"))&&e.input.length>0))),[y])&&t.jsx(v.default,Object.assign({variant:"transparent-text",className:"min-h-[42px] px-5",isDisabled:ee||X||ce,onClick:O},{children:(null==N?void 0:N["form.clear-form"])||(null==N?void 0:N["clear-form"])||"Clear form"}));return t.jsxs("div",Object.assign({className:j?"flex flex-col gap-4":"mt-4 flex flex-wrap justify-between gap-4 items-center",dir:T?"rtl":"ltr"},{children:[j&&t.jsx(i.default,{}),t.jsxs("div",Object.assign({className:j?"flex flex-wrap items-center justify-end gap-2":"flex items-center flex-grow flex-wrap gap-2"},{children:[!j&&t.jsx(i.default,{}),j&&x&&t.jsx("div",Object.assign({className:"me-auto shrink-0"},{children:x})),j&&he,t.jsx(v.default,Object.assign({className:"px-5 min-h-[42px]",isDisabled:ee||X||ce,onClick:()=>e.__awaiter(void 0,void 0,void 0,(function*(){var e,t,n,i,r;try{if(X||ee||ce)return;$(""),ne(""),Q(null),M(null);for(const t of y){const n=s.getFormQuestionError(t);if(n)throw null==w||w(t.id),new Error(null!==(e=null==N?void 0:N[n])&&void 0!==e?e:"response-too-long"===n?"One or more of your responses is too long!":"You must fill out all required fields.")}const a=H.filter((e=>"finished"===e.status)),l=H.map((e=>e.name)),d=null!==(n=null===(t=null==q?void 0:q.documentuploadtype)||void 0===t?void 0:t.startsWith("enduserupload"))&&void 0!==n&&n,u=y.some((e=>"userinput:documentupload"===e.id&&e.isRequired)),c=m.extractUrlsFromText(Z).filter((e=>!l.includes(e)));if(c.length){const e=c[c.length-1];pe(!0);const t=yield te(e);t&&(a.push(t),yield new Promise((e=>setTimeout(e,5e3)))),pe(!1)}else if(u&&d&&!a.length)return null==w||w("userinput:documentupload"),void ne((null==N?void 0:N["document-upload-required"])||"Please paste a valid website/video link or drag a file to add to the knowledge base.");const p=a.map((e=>e.documentId||"")).filter(Boolean),g=d&&p.length>0,v={};y.forEach((e=>{v[e.id]="Knowledge Upload"===e.type||e.id.includes("documentupload")?a.map((e=>e.name)).join(",")||"":e.input})),fe(!1),F("fetching"),ie(),re();const h=yield fetch(`${process.env.NEXT_PUBLIC_PICKAXE_API2_URL}/response/submit`,{method:"POST",headers:Object.assign(Object.assign({"Content-Type":"application/json"},process.env.NEXT_PUBLIC_PICKAXE_SESSION_TOKEN&&{"x-pickaxe-session-token":process.env.NEXT_PUBLIC_PICKAXE_SESSION_TOKEN}),{"x-request-sent-at":(new Date).toISOString()}),body:JSON.stringify(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({supportsActionConfirmation:!0,selectedModel:K||void 0,origin:_,pickaxeId:k,senderType:C,valueObj:v},g&&{documentIds:p}),I&&{sender:I}),W&&{studioSessionToken:W}),!W&&!I&&{sender:m.initializeEmbedUserId()}),A&&{portalId:A}),P&&{deploymentId:P}))}),b=yield h.json();if(!b.success){const e=new Error(b.error||b.message||(null==N?void 0:N["failed-to-start-generation"])||"Failed to start generation");if(b.limitData)throw e.limitData=b.limitData,e;if(ve(b))return;throw e}if(!b.submissionId||!b.sessionId)throw new Error((null==N?void 0:N["failed-to-start-generation"])||"Failed to start generation");z(null!==(i=b.actionApprovalToken)&&void 0!==i?i:null);const x=b.submissionId,j=b.sessionId,O={sessionId:j,documentIds:g?p:[],question:{inputs:y.map((e=>({id:e.id,question:e.main,answer:e.input}))),responseParts:[]},messageCount:0,sentAt:new Date};M(O),(null==q?void 0:q.enablechatresponses)&&(U(j),D(!1),Y(!0),G([{id:0,role:"assistant",parts:[],documentIds:[],responseReference:"form-result"}])),g&&se([]),F("streaming"),ge.current=new AbortController;const S=[];let E=[...null!=ae?ae:[]],T=0,L=!1,R="";for(;!L;)try{const e=yield fetch(`${process.env.NEXT_PUBLIC_PICKAXE_API2_URL}/response/stream/${x}?index=${T}`,{signal:null===(r=ge.current)||void 0===r?void 0:r.signal,headers:{"Cache-Control":"no-cache",Connection:"keep-alive"}});if(!e.body)throw new Error("No response body");const t=e.body.getReader(),s=new TextDecoder,n=f.createParser({onEvent:e=>{var t,s,n;if(e.event&&"ping"!==e.event&&T++,"stop"!==e.event){if("error"===e.event){const t=JSON.parse(e.data);if(t.limitData)return Q(t.limitData),$(""),void(L=!0);const s=t.error||t.message||(null==N?void 0:N["something-went-wrong"])||"Something went wrong.";return ve(t)||$(s),void(L=!0)}if("delta"===e.event){const i=JSON.parse(e.data);if("data-error"===i.type){const e=null===(t=i.data)||void 0===t?void 0:t.error;if("object"==typeof e&&null!==e){const t=e;if("mcp_auth_expired"===t.type||"mcp_owner_connection_required"===t.type||"mcp_connection_check_failed"===t.type)return $("string"==typeof t.message?t.message:(null==N?void 0:N["something-went-wrong"])||"Something went wrong."),void(L=!0);if("unauthorized_composio"===t.type||"unauthorized_smithery"===t.type)return $((null==N?void 0:N["mcp-connect-in-chat-before-form"])||"Connect this integration in chat before submitting this form."),void(L=!0)}}if("finish"===i.type)return void fe(!0);if("text-start"===i.type)R="",S.push({type:"text",content:"",isVisible:null===(s=i.isVisible)||void 0===s||s});else if("text-delta"===i.type)R+=i.delta,o.updateStreamTextPart(S,"text",R);else if("text-end"===i.type)R="";else if("reasoning-start"===i.type)R="",S.push({type:"reasoning",content:"",isVisible:null===(n=i.isVisible)||void 0===n||n});else if("reasoning-delta"===i.type)R+=i.delta,o.updateStreamTextPart(S,"reasoning",R);else if("reasoning-end"===i.type)R="";else if(i.type.startsWith("data-")){const e=i;"data-action-approval"===e.type?o.upsertActionApprovalPart(S,e.data):S.push({type:e.type,content:JSON.stringify(e.data),isVisible:!0})}const r=Object.assign(Object.assign({},O),{question:Object.assign(Object.assign({},O.question),{responseParts:[...S]})});M(r),(null==q?void 0:q.enablechatresponses)&&G([{id:0,responseReference:"form-result",role:"assistant",parts:[...S],documentIds:[]}])}else if("artifact_created"===e.event){const t=JSON.parse(e.data);E=E.filter((e=>!(e.id===t.id&&e.version===t.version))),E.push(Object.assign(Object.assign({},t),{content:"",status:"streaming"})),de([...E]),le.startsWith("inline")||ue({id:t.id,version:t.version})}else if("artifact_updated"===e.event){const t=JSON.parse(e.data);E=E.filter((e=>!(e.id===t.id&&e.version===t.version))),E.push(Object.assign(Object.assign({},t),{content:"",status:"updating"})),de([...E]),le.startsWith("inline")||ue({id:t.id,version:t.version})}else if("artifact_rewrite"===e.event){const t=JSON.parse(e.data);E=E.filter((e=>!(e.id===t.id&&e.version===t.version))),E.push(Object.assign(Object.assign({},t),{content:"",status:"streaming"})),de([...E]),le.startsWith("inline")||ue({id:t.id,version:t.version})}else if("artifact_content"===e.event){const t=JSON.parse(e.data),s=t.token.replace(/\u200B/g,"");E=E.map((e=>e.id===t.id&&e.version===t.version?Object.assign(Object.assign({},e),{content:e.content+s,status:"streaming"}):e)),de([...E])}else if("artifact_finished"===e.event){const t=JSON.parse(e.data);de(E.map((e=>e.id===t.id?Object.assign(Object.assign({},e),{status:"finished"}):e)))}}else L=!0}});for(;;){const{value:e,done:i}=yield t.read();if(i)break;n.feed(s.decode(e))}L||(yield new Promise((e=>setTimeout(e,1e3))))}catch(e){if(e instanceof Error&&"AbortError"===e.name)return void(L=!0);console.warn("Stream connection lost, retrying...",e),yield new Promise((e=>setTimeout(e,1e3)))}null==J||J(j)}catch(e){if((e=>e instanceof Error&&Boolean(e.limitData))(e))return Q(e.limitData),$(""),void re();let t=h.default(e)||"";t&&!t.includes("Unexpected token 'A',")||(t=(null==N?void 0:N["high-traffic-try-again-later"])||"Oops! We're experiencing high traffic at the moment. Please try again later."),ve(t)||$(t),re()}finally{F("idle"),pe(!1),oe()}}))},{children:ce?(null==N?void 0:N.processing)||"Processing...":ee?(null==N?void 0:N.uploading)||"Uploading...":X&&!me?(null==N?void 0:N.loading)||"Loading...":null!==(S=null==q?void 0:q.submittext)&&void 0!==S?S:"Submit"})),!j&&he]})),!E.isWhiteLabel&&t.jsx(g.default,{containerClassName:"justify-end"})]}))};
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("../../../_virtual/_tslib.js"),t=require("react/jsx-runtime"),i=require("react"),o=require("../../../common/error.js"),s=require("../../../node_modules/.pnpm/@modelcontextprotocol_sdk@1.20.2/node_modules/@modelcontextprotocol/sdk/dist/esm/client/index.js"),r=require("../../../node_modules/.pnpm/@modelcontextprotocol_sdk@1.20.2/node_modules/@modelcontextprotocol/sdk/dist/esm/client/streamableHttp.js"),n=require("../../Core/Button.js"),a=require("../../Core/ErrorAlert.js"),l=require("./SmitheryAuthProvider.js"),c=require("uuid"),d=require("../../../common/api/api.js"),u=require("../../../common/api/pickaxe.js"),m=require("../../../hooks/pickaxe/usePickaxeContext.js"),p=require("../../../common/fernet.js");exports.default=({serverId:v,smitheryId:h,name:x,resubmitPrompt:f})=>{const{sender:g,translations:j,colors:_}=m.usePickaxeContext(),[b,k]=i.useState(!0),[y,O]=i.useState(!1),[N,I]=i.useState(null),S=i.useRef(null),q=i.useMemo((()=>c.v4()),[]);i.useEffect((()=>{let t=null;return y&&(t=setInterval((()=>e.__awaiter(void 0,void 0,void 0,(function*(){const e=yield d.api2.post("/oauth/handshake/check",{sessionId:q}),{success:i,code:o}=e.data;if("failed"===o)return I((null==j?void 0:j["auth-failed"])||"Auth failed"),O(!1),void(t&&clearInterval(t));if(o&&i){t&&clearInterval(t);try{if(!S.current)throw new Error("Transport not available for finalization.");yield S.current.finishAuth(o)}catch(e){return console.error(e),I((null==j?void 0:j["failed-to-finalize-authentication"])||"Failed to finalize authentication."),void O(!1)}const e=localStorage.getItem("mcp_tokens"),i=localStorage.getItem("mcp_client");e&&i&&C(JSON.parse(e),JSON.parse(i))}}))),1e3)),()=>{t&&clearInterval(t)}}),[y]);const C=(t,i)=>e.__awaiter(void 0,void 0,void 0,(function*(){try{yield u.pickaxeApi2.post("/mcp/user/save",{tokens:yield p.encryptFernet(JSON.stringify(t)),clientId:i.client_id,serverId:v,userId:g},Object.assign(Object.assign({},(!process.env.NODE_ENV||"development"===process.env.NODE_ENV)&&Object.assign({},process.env.NEXT_PUBLIC_PICKAXE_SESSION_TOKEN&&{headers:{"x-pickaxe-session-token":process.env.NEXT_PUBLIC_PICKAXE_SESSION_TOKEN}})),u.isPickaxeDomain&&{credentials:"include"})),localStorage.removeItem("mcp_tokens"),localStorage.removeItem("mcp_client"),k(!1),f()}catch(e){I(o.default(e))}}));return b?t.jsxs("div",Object.assign({className:"w-full bg-white border border-c-sep rounded-lg shadow-sm p-4 flex flex-col gap-4"},{children:[t.jsxs("div",Object.assign({className:"flex flex-col gap-1"},{children:[t.jsx("h3",Object.assign({className:"font-semibold text-black/80 text-lg"},{children:(null==j?void 0:j["authentication-required"])||"Authentication Required"})),t.jsxs("p",Object.assign({className:"text-black/60 text-sm"},{children:[(null==j?void 0:j["smithery-auth-description-prefix"])||"The tool you are trying to use requires authentication with"," ",t.jsx("span",Object.assign({className:"font-semibold text-black/80"},{children:x||h})),"."]}))]})),N&&t.jsx(a.default,{error:N}),t.jsxs("div",Object.assign({className:"flex justify-end gap-2"},{children:[t.jsx(n.default,Object.assign({variant:"secondary",onClick:()=>k(!1),className:"text-sm px-3 h-9"},{children:(null==j?void 0:j.dismiss)||"Dismiss"})),t.jsx(n.default,Object.assign({variant:"primary",loadingText:(null==j?void 0:j.connecting)||"Connecting...",isLoading:y,style:{borderColor:_.accent,backgroundColor:_.accent,color:_.accentText},onClick:()=>e.__awaiter(void 0,void 0,void 0,(function*(){if(!y)if("LOGGED OUT"!==g)try{I(null),O(!0);const e=new l.SmitheryAuthProvider(q),t=new r.StreamableHTTPClientTransport(new URL(`https://server.smithery.ai/${h}/mcp`),{authProvider:e});S.current=t;const i=new s.Client({name:"Pickaxe",version:"1.0.0"});yield i.connect(t)}catch(e){console.log(o.default(e))}else I((null==j?void 0:j["must-be-logged-in-to-connect-smithery"])||"You must be logged in to connect Smithery MCPs.")})),className:"text-sm px-3 h-9 hover:opacity-90"},{children:(null==j?void 0:j.connect)||"Connect"}))]}))]})):null};
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("../../../_virtual/_tslib.js"),t=require("react/jsx-runtime"),s=require("react"),i=require("../../../common/error.js"),o=require("../../../node_modules/.pnpm/@modelcontextprotocol_sdk@1.20.2/node_modules/@modelcontextprotocol/sdk/dist/esm/client/index.js"),n=require("../../../node_modules/.pnpm/@modelcontextprotocol_sdk@1.20.2/node_modules/@modelcontextprotocol/sdk/dist/esm/client/streamableHttp.js"),r=require("../../Core/Button.js"),a=require("../../Core/ErrorAlert.js"),c=require("./SmitheryAuthProvider.js"),l=require("uuid"),d=require("../../../common/api/api.js"),u=require("../../../common/api/pickaxe.js"),m=require("../../../hooks/pickaxe/usePickaxeContext.js"),p=require("../Addons/Auth/hooks/useAuthContext.js"),h=require("../../../common/fernet.js");exports.default=({serverId:v,smitheryId:x,name:f,resubmitPrompt:g})=>{const{sender:j,pickaxe:b,translations:_,colors:k}=m.usePickaxeContext(),{token:O}=p.useAuthContext(),[y,I]=s.useState(!0),[N,S]=s.useState(!1),[C,q]=s.useState(null),E=s.useRef(null),P=s.useMemo((()=>l.v4()),[]);s.useEffect((()=>{let t=null;return N&&(t=setInterval((()=>e.__awaiter(void 0,void 0,void 0,(function*(){const e=yield d.api2.post("/oauth/handshake/check",{sessionId:P}),{success:s,code:i}=e.data;if("failed"===i)return q((null==_?void 0:_["auth-failed"])||"Auth failed"),S(!1),void(t&&clearInterval(t));if(i&&s){t&&clearInterval(t);try{if(!E.current)throw new Error("Transport not available for finalization.");yield E.current.finishAuth(i)}catch(e){return console.error(e),q((null==_?void 0:_["failed-to-finalize-authentication"])||"Failed to finalize authentication."),void S(!1)}const e=localStorage.getItem("mcp_tokens"),s=localStorage.getItem("mcp_client");e&&s&&T(JSON.parse(e),JSON.parse(s))}}))),1e3)),()=>{t&&clearInterval(t)}}),[N]);const T=(t,s)=>e.__awaiter(void 0,void 0,void 0,(function*(){try{yield u.pickaxeApi2.post("/mcp/user/save",Object.assign(Object.assign({tokens:yield h.encryptFernet(JSON.stringify(t)),clientId:s.client_id,serverId:v},j&&"LOGGED OUT"!==j&&{userId:j}),O&&{studioId:null==b?void 0:b.studioid,studioSessionToken:O}),Object.assign(Object.assign({},(!process.env.NODE_ENV||"development"===process.env.NODE_ENV)&&Object.assign({},process.env.NEXT_PUBLIC_PICKAXE_SESSION_TOKEN&&{headers:{"x-pickaxe-session-token":process.env.NEXT_PUBLIC_PICKAXE_SESSION_TOKEN}})),u.isPickaxeDomain&&{credentials:"include"})),localStorage.removeItem("mcp_tokens"),localStorage.removeItem("mcp_client"),I(!1),g()}catch(e){q(i.default(e))}}));return y?t.jsxs("div",Object.assign({className:"w-full bg-white border border-c-sep rounded-lg shadow-sm p-4 flex flex-col gap-4"},{children:[t.jsxs("div",Object.assign({className:"flex flex-col gap-1"},{children:[t.jsx("h3",Object.assign({className:"font-semibold text-black/80 text-lg"},{children:(null==_?void 0:_["authentication-required"])||"Authentication Required"})),t.jsxs("p",Object.assign({className:"text-black/60 text-sm"},{children:[(null==_?void 0:_["smithery-auth-description-prefix"])||"The tool you are trying to use requires authentication with"," ",t.jsx("span",Object.assign({className:"font-semibold text-black/80"},{children:f||x})),"."]}))]})),C&&t.jsx(a.default,{error:C}),t.jsxs("div",Object.assign({className:"flex justify-end gap-2"},{children:[t.jsx(r.default,Object.assign({variant:"secondary",onClick:()=>I(!1),className:"text-sm px-3 h-9"},{children:(null==_?void 0:_.dismiss)||"Dismiss"})),t.jsx(r.default,Object.assign({variant:"primary",loadingText:(null==_?void 0:_.connecting)||"Connecting...",isLoading:N,style:{borderColor:k.accent,backgroundColor:k.accent,color:k.accentText},onClick:()=>e.__awaiter(void 0,void 0,void 0,(function*(){if(!N)if(O||"LOGGED OUT"!==j)try{q(null),S(!0);const e=new c.SmitheryAuthProvider(P),t=new n.StreamableHTTPClientTransport(new URL(`https://server.smithery.ai/${x}/mcp`),{authProvider:e});E.current=t;const s=new o.Client({name:"Pickaxe",version:"1.0.0"});yield s.connect(t)}catch(e){console.log(i.default(e))}else q((null==_?void 0:_["must-be-logged-in-to-connect-smithery"])||"You must be logged in to connect Smithery MCPs.")})),className:"text-sm px-3 h-9 hover:opacity-90"},{children:(null==_?void 0:_.connect)||"Connect"}))]}))]})):null};
@@ -3,7 +3,7 @@ export interface InputHandle {
3
3
  onSubmit: (msg?: string) => Promise<void>;
4
4
  }
5
5
  interface InputProps {
6
- resubmitPrompt?: boolean;
6
+ resubmitPrompt?: boolean | number;
7
7
  onFocus?: () => void;
8
8
  onBlur?: () => void;
9
9
  onInputHeightChange?: (height: number) => void;
@@ -1 +1 @@
1
- import{__rest as e,__awaiter as t}from"../../../_virtual/_tslib.js";import{jsx as n,jsxs as s,Fragment as o}from"react/jsx-runtime";import{canChat as i}from"../../../common/canChat.js";import{useEndUserModel as r}from"../../../hooks/pickaxe/useEndUserModel.js";import a from"../common/EndUserModelPicker.js";import{updateStreamTextPart as l,upsertActionApprovalPart as d}from"../../../common/actionApproval.js";import{forwardRef as c,useState as u,useRef as p,useCallback as m,useEffect as g,useMemo as f,useImperativeHandle as v}from"react";import{usePickaxeContext as h}from"../../../hooks/pickaxe/usePickaxeContext.js";import{useResponseContext as b}from"../../../hooks/pickaxe/useResponseContext.js";import{useStyleInput as y}from"../../../hooks/studio/useStyleInput.js";import{useStyleFontSize as x}from"../../../hooks/studio/useStyleFontSize.js";import{useConversation as j}from"../../../hooks/pickaxe/useConversation.js";import{useDimensionContext as w}from"../../../hooks/pickaxe/useDimensionContext.js";import{useAuthContext as I}from"../Addons/Auth/hooks/useAuthContext.js";import{useDocument as k}from"../Addons/Document/hooks/useDocument.js";import{useScroll as O}from"../Addons/Scroll/hooks/useScroll.js";import{useArtifactContext as N}from"../Addons/Artifact/hooks/useArtifactContext.js";import{useHover as S}from"../../../hooks/core/useHover.js";import{useMediaQuery as C}from"../../../hooks/core/useMediaQuery.js";import{allowedFileMimeTypes as E,allowedImageMimeTypes as T,additionalAllowedFileExtensions as _}from"../../../common/documents.js";import{createParser as U}from"eventsource-parser";import A from"../../Icons/attach-vertical.svg.js";import P from"../../Icons/arrow-right.svg.js";import D from"../../Icons/microphone.svg.js";import L from"../../Icons/message-clock.svg.js";import M from"../../Icons/stop.svg.js";import R from"../../Icons/trash.svg.js";import $ from"../../Icons/pencil.svg.js";import B from"../Addons/Document/List.js";import X from"../../Core/Textarea.js";import K from"../../Core/ErrorAlert.js";import F from"../../Core/Menu/index.js";import G from"../../Core/Menu/Button.js";import V from"../../Core/Menu/List.js";import H from"../../../common/error.js";import{pickaxeApi2 as W}from"../../../common/api/pickaxe.js";import{getValidationFailure as q}from"../../../common/validation.js";import J from"../../../common/cn.js";import{buildUpgradeUrl as z,openAuthenticatedPricingUrl as Q,initializeEmbedUserId as Y}from"../../../common/utils.js";import{getPickaxeConfigMetadata as Z}from"../../../common/pickaxeConfig.js";import{readAgentPrefill as ee}from"../../../common/agentPrefill.js";import{fireDeploymentSessionInitializedWebhook as te,fireDeploymentFirstMessageSubmittedWebhook as ne}from"../../../common/deploymentWebhooks.js";import{useStudio as se}from"../../../hooks/studio/useStudio.js";import{useSpeechToText as oe}from"../../../hooks/pickaxe/useSpeechToText.js";import{STUDIO_INFINITY_VALUE as ie}from"../common/PickaxeCommon.js";const re=(e,t)=>{const n=e.find((e=>e.id===t));return n?e.filter((e=>e.id!==t)).map((e=>e.predecessorSubmissionId===t?Object.assign(Object.assign({},e),{predecessorSubmissionId:n.predecessorSubmissionId}):e)):e},ae=e=>"string"==typeof e&&e.trim().length>0,le=()=>"undefined"!=typeof crypto&&"randomUUID"in crypto?crypto.randomUUID():`submission-${Date.now()}-${Math.random().toString(36).slice(2)}`,de=e=>e.map((e=>Object.assign({},e))),ce=e=>e instanceof Error&&("AbortError"===e.name||"BodyStreamBuffer was aborted"===e.message),ue=(e,t)=>{if(e&&"object"==typeof e)return e[t]},pe=(e,t)=>{const n=ue(e,t);return ae(n)?n:null},me=e=>{const t=Number(e);return Number.isFinite(t)?t:void 0},ge=({studioUser:e,deploymentId:t,portalId:n})=>{var s,o;const i=Array.isArray(ue(e,"uses"))?ue(e,"uses"):[],r=(({deploymentId:e,portalId:t})=>ae(e)?{type:"deployment",id:e}:ae(t)?{type:"portal",id:t}:null)({deploymentId:t,portalId:n});if(!r)return{scope:r,record:null};const a=null!==(o=null!==(s=i.find((e=>e.id===r.id&&e.type===r.type)))&&void 0!==s?s:i.find((e=>e.id===r.id)))&&void 0!==o?o:null;return{scope:r,record:a}},fe=c((({resubmitPrompt:c,onFocus:ue,onBlur:fe,onInputHeightChange:ve,initSmitheryAuthData:he},be)=>{var ye,xe,je,we,Ie,ke,Oe,Ne,Se,Ce,Ee,Te,_e,Ue,Ae,Pe,De,Le;const{origin:Me,pickaxeId:Re,sessionId:$e,sender:Be,senderType:Xe,portalId:Ke,deploymentId:Fe,deploymentType:Ge,pickaxe:Ve,styles:He,colors:We,translations:qe,locale:Je,forceMobile:ze,isNewChat:Qe,isRtl:Ye,isEmbed:Ze,isShowFeedbackMessage:et,accessGroup:tt,setIsNewChat:nt,setIsShowIceBreaker:st,setValidationStatus:ot,setValidationUpgradeGroups:it,setValidationUpgradeUrl:rt,setAccessGroup:at,onUpgrade:lt,onGenerateComplete:dt}=h(),{value:ct,enabled:ut}=r(),{token:pt,isLoggedOut:mt,isSent:gt,isPricingAuth:ft}=I(),{messages:vt,isGenerating:ht,setMessages:bt,setStatus:yt,setLimitData:xt,setError:jt,setActionApprovalToken:wt}=b(),{documents:It,isUploading:kt,documentError:Ot,onFileUpload:Nt,setDocuments:St,setDocumentError:Ct}=k(),{studio:Et}=se(),[Tt]=C("(max-width: 480px)"),{scrollStartSession:_t,scrollEndSession:Ut,scrollToBottom:At}=O({auto:!0,smooth:!(ze||Tt)}),{artifacts:Pt,currentPopupType:Dt,setArtifacts:Lt,setCurrentArtifact:Mt}=N(),{height:Rt}=w(),$t=j(),[Bt,Xt]=u((()=>ee([Fe,Re]).chatInput)),[Kt,Ft]=u(null),[Gt,Vt]=u(!1),[Ht,Wt]=u(!1),[qt,Jt]=u(!1),[zt,Qt]=u(!1),[Yt,Zt]=u([]),[en,tn]=u(!1),[nn,sn]=u(null),[on,rn]=u(null),[an,ln]=u(null),[dn,cn]=u(null),[un,pn]=u(!1),[mn,gn]=u(!1),[fn,vn]=u(0),hn=p(null),bn=p(""),yn=p(null),xn=p(null),jn=p(null),wn=p([]),In=p(null),kn=p(null),On=p(null),Nn=p(null),Sn=p(new Set),Cn=p(null),En=Math.max(.4*Rt,100),{speechTranscript:Tn,isSpeechListening:_n,isSpeechProcessing:Un,isSpeechSupported:An,getSpeechTranscriptSnapshot:Pn,speechTranscriptRevision:Dn,resetSpeechTranscript:Ln,onStartListening:Mn,onStopListening:Rn}=oe(),$n=S(),{isHover:Bn}=$n,Xn=e($n,["isHover"]),Kn=S(),{isHover:Fn}=Kn,Gn=e(Kn,["isHover"]),Vn=S(),{isHover:Hn}=Vn,Wn=e(Vn,["isHover"]),qn=x(),Jn=y(),zn="undefined"!=typeof window?window.location.hostname:"",Qn="undefined"!=typeof window?window.location.href:"",Yn="undefined"!=typeof window&&window.self!==window.top,Zn=zn.includes("pickaxe.co")&&!Qn.includes("https://studio.pickaxe.co/_embed")&&!Yn,es=null!==(xe=null===(ye=null==Ve?void 0:Ve.documentuploadtype)||void 0===ye?void 0:ye.startsWith("enduserupload"))&&void 0!==xe&&xe,ts=An&&(null==Ve?void 0:Ve.enablevoicetotext),ns=_n&&!Bt.trim(),ss=ae(Fe),os="chat-input"===Ge&&Qe&&!gt,is="chat-input"===Ge&&ft&&mt&&gt,rs=m((e=>{const t=q(e);return!!t&&(jt(""),xt(null),ot(t.status),at(t.accessGroup),it(t.upgradeGroups),rt(t.upgradeUrl),!0)}),[jt,wt,xt,ot,it,rt,at]),as=null!==(je=null==Ve?void 0:Ve.placeholdertext)&&void 0!==je?je:Ye?"بماذا تريد أن تتحدث؟":(null==qe?void 0:qe["what-do-you-want-to-talk-about"])||"What do you want to talk about?",ls=Gt||Ht,ds=m((()=>t(void 0,void 0,void 0,(function*(){pn(!1);try{const e=yield fetch(`${process.env.NEXT_PUBLIC_PICKAXE_API2_URL}/user`,Object.assign(Object.assign({method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(Object.assign({studioId:null==Ve?void 0:Ve.studioid},pt?{studioSessionToken:pt}:Be?{sender:Be}:{sender:Y()}))},(!process.env.NODE_ENV||"development"===process.env.NODE_ENV)&&Object.assign({},process.env.NEXT_PUBLIC_PICKAXE_SESSION_TOKEN&&{headers:{"Content-Type":"application/json","x-pickaxe-session-token":process.env.NEXT_PUBLIC_PICKAXE_SESSION_TOKEN}})),Zn&&{credentials:"include"})),t=yield e.json();(null==t?void 0:t.studioUser)&&(ln(t.studioUser),cn(t.url))}catch(e){console.error("Failed to fetch studio user:",e)}finally{pn(!0)}}))),[Zn,null==Ve?void 0:Ve.studioid,Be,pt]);g((()=>{ds()}),[ds]);const cs=Number(null!==(we=null==tt?void 0:tt.limit)&&void 0!==we?we:0),us="string"==typeof(null==tt?void 0:tt.limitInterval)?tt.limitInterval:null,ps=!!(null==Et?void 0:Et.data.usage)&&Et.data.usage.isCredits,ms=f((()=>{var e,t,n,s,o;return null!==(o=null!==(s=null!==(n=null!==(t=null!==(e=null!=Ke?Ke:pe(an,"portalId"))&&void 0!==e?e:pe(an,"portalid"))&&void 0!==t?t:pe(tt,"portalId"))&&void 0!==n?n:pe(tt,"portalid"))&&void 0!==s?s:pe(Ve,"portalId"))&&void 0!==o?o:pe(Ve,"portalid")}),[tt,Ke,Ve,an]),gs=f((()=>ge({studioUser:an,deploymentId:Fe,portalId:ms})),[Fe,ms,an]);g((()=>{ss&&Qe&&$e&&Sn.current.add($e)}),[Qe,$e,ss]);const fs=m((()=>{var e,t,n;return{studioId:null==Ve?void 0:Ve.studioid,userEmail:pe(an,"email"),userId:null!==(e=pe(an,"userId"))&&void 0!==e?e:pe(an,"userid"),sessionId:$e,deploymentId:Fe,deploymentType:Ge,portalId:ms,accessGroupId:null!==(t=null==tt?void 0:tt.accessGroupId)&&void 0!==t?t:null,pickaxeId:Re,sender:Be,senderType:Xe,origin:Me,metadata:null!==(n=Z(Fe))&&void 0!==n?n:null}}),[null==tt?void 0:tt.accessGroupId,Fe,Ge,Me,null==Ve?void 0:Ve.studioid,Re,ms,Be,Xe,$e,an]),vs=m((()=>!!(ss&&un&&$e)&&(!!Sn.current.has($e)&&(te(fs()),Sn.current.delete($e),!0))),[fs,un,$e,ss]);g((()=>{if(!un||!$e)return;vs();const e=Cn.current;(null==e?void 0:e.sessionId)===$e&&(ne(Object.assign(Object.assign(Object.assign({},e),fs()),{message:e.message,documentIds:e.documentIds,uploadedModelImages:e.uploadedModelImages,hasUploadedDocuments:e.hasUploadedDocuments,isHidden:e.isHidden})),Cn.current=null)}),[vs,fs,un,$e]);const hs={currentUses:me(null==an?void 0:an.currentUses),extraUses:me(null==an?void 0:an.extraUses)},bs=gs.scope?{currentUses:null!==(ke=me(null===(Ie=gs.record)||void 0===Ie?void 0:Ie.currentUses))&&void 0!==ke?ke:0,extraUses:null!==(Ne=me(null===(Oe=gs.record)||void 0===Oe?void 0:Oe.extraUses))&&void 0!==Ne?Ne:0}:{currentUses:0,extraUses:0},ys=pe(an,"type"),xs="guest"===ys||!ys&&mt?bs:hs;g((()=>{let e=!0;return t(void 0,void 0,void 0,(function*(){var t;if(ps&&(null===(t=null==Et?void 0:Et.data)||void 0===t?void 0:t.workspaceId))try{const t=yield W.get(`/cost_per_run?workspaceId=${Et.data.workspaceId}`,{withCredentials:!1});e&&vn(1e4*(Number(t.data.costPerRun)||0))}catch(t){console.error("Failed to fetch average cost per run:",t),e&&vn(0)}else e&&vn(0)})),()=>{e=!1}}),[ps,null===(Se=null==Et?void 0:Et.data)||void 0===Se?void 0:Se.workspaceId]);const js=(({accessGroupType:e,currentUses:t,extraUses:n,limit:s,limitInterval:o})=>{const i=Number(null!=t?t:0),r=Number(null!=n?n:0);return"public"===e&&"one_time"===o?s===ie?ie:Math.max(0,s-i):s===ie||r===ie?ie:"one_time"===o?Math.max(0,r):Math.max(0,s-i)+r})({accessGroupType:null==tt?void 0:tt.type,currentUses:xs.currentUses,extraUses:xs.extraUses,limit:cs,limitInterval:us}),ws=js===ie?ie:Math.max(0,Math.ceil(js)),Is=(({accessGroupType:e,extraUses:t,limit:n,limitInterval:s})=>{const o=Number(null!=t?t:0);return"public"===e&&"one_time"===s?n===ie?ie:Math.max(0,n):n===ie||o===ie?ie:"one_time"===s?Math.max(0,o):Math.max(0,n)+Math.max(0,o)})({accessGroupType:null==tt?void 0:tt.type,extraUses:xs.extraUses,limit:cs,limitInterval:us}),ks=Is===ie?ie:Math.ceil(.05*Is),Os=ps?Math.ceil(5*fn):5,Ns=ks===ie?ie:Math.max(ks,Os),Ss=f((()=>!!an&&(!mn&&(ws!==ie&&(!(Is<=0||ws>=Is)&&ws<=Ns)))),[mn,Ns,ws,an,Is]),Cs=Boolean(null==tt?void 0:tt.hideUpgradeOptions),Es=Boolean(!Cs&&((null===(Ce=null==tt?void 0:tt.upgrade)||void 0===Ce?void 0:Ce.isBuyMoreUses)||(null===(Ee=null==tt?void 0:tt.upgrade)||void 0===Ee?void 0:Ee.isLinkToCustomURL)||(null===(Te=null==tt?void 0:tt.upgrade)||void 0===Te?void 0:Te.isUpgradeToAnotherGroup)&&(null===(_e=tt.upgrade.accessGroupIds)||void 0===_e?void 0:_e.length))),Ts=!Cs&&(null===(Ue=null==tt?void 0:tt.upgrade)||void 0===Ue?void 0:Ue.isLinkToCustomURL)&&"string"==typeof tt.upgrade.limitLink&&tt.upgrade.limitLink.trim().length>0?tt.upgrade.limitLink.trim():null,_s=Ts&&"string"==typeof(null===(Ae=null==tt?void 0:tt.upgrade)||void 0===Ae?void 0:Ae.limitCTA)&&tt.upgrade.limitCTA.trim().length>0?tt.upgrade.limitCTA:(null==qe?void 0:qe["pricing.upgrade"])||(null==qe?void 0:qe.upgrade)||"Upgrade",Us=f((()=>{var e,t,n;return!!Qe&&(!!Ve&&(!$t.isLoading&&(!((null!==(t=null===(e=$t.data)||void 0===e?void 0:e.messages.length)&&void 0!==t?t:0)>1)&&(!!(null===(n=Ve.icebreakers)||void 0===n?void 0:n.length)&&(!et&&!os)))))}),[Ve,Qe,et,os,$t.data,$t.isLoading]),As=f((()=>{if(kt||qt)return!1;const e=es&&It.length>0&&It.every((e=>"finished"===e.status));return!(!Bt.trim()&&!e)&&It.every((e=>"finished"===e.status||e.isInsertedAsRaw))}),[es,kt,qt,Bt,It]);v(be,(()=>({onSubmit:$s}))),g((()=>{st(Us)}),[Us]),g((()=>{var e;if(c){const t=Array.from(vt),n=null===(e=t[t.length-2].parts.find((e=>"text"===e.type)))||void 0===e?void 0:e.content;$s(n,!0)}}),[c]),g((()=>{if(!On.current||!ve)return;const e=new ResizeObserver((e=>{for(const t of e)ve(t.contentRect.height)}));return e.observe(On.current),()=>{e.disconnect()}}),[ve]),g((()=>{if(!_n)return;const e=bn.current?`${bn.current} `:"",t=Pn();Ft(t),Xt(`${e}${t.text}`)}),[Tn,Dn,_n,Pn]);const Ps=()=>{bn.current="",Ln(Kt),Ft(null)};g((()=>{if(!In.current)return;(()=>{if(!In.current)return;let e=In.current.scrollHeight>52;Bt.includes("\n")||It.length?e=!0:Bt.trim()||(e=!1),Vt(e)})()}),[Bt,It]),g((()=>{const e=In.current,t=kn.current;if(!e||!t||ut||Gt||Bt.includes("\n"))return void Wt(!1);const n=window.getComputedStyle(e),s=`${n.fontStyle} ${n.fontVariant} ${n.fontWeight} ${n.fontSize} / ${n.lineHeight} ${n.fontFamily}`,o=document.createElement("span");Object.assign(o.style,{font:s,letterSpacing:n.letterSpacing,position:"absolute",visibility:"hidden",whiteSpace:"nowrap",top:"0",left:"0"}),o.textContent=Bt||as,document.body.appendChild(o);const i=o.offsetWidth;o.remove();const r=parseFloat(n.paddingLeft)||0,a=parseFloat(n.paddingRight)||0,l=e.clientWidth-r-a-t.offsetWidth;Wt(i>l)}),[Bt,Gt,as,ut]);const Ds=e=>t(void 0,void 0,void 0,(function*(){if(!(e=null!=e?e:xn.current))return!1;const t=de(wn.current);try{return(yield fetch(`${process.env.NEXT_PUBLIC_PICKAXE_API2_URL}/response/cancel/${e}`,Object.assign({method:"POST",headers:Object.assign(Object.assign({"Content-Type":"application/json"},(!process.env.NODE_ENV||"development"===process.env.NODE_ENV)&&Object.assign({},process.env.NEXT_PUBLIC_PICKAXE_SESSION_TOKEN&&{"x-pickaxe-session-token":process.env.NEXT_PUBLIC_PICKAXE_SESSION_TOKEN})),{"x-request-sent-at":(new Date).toISOString()}),body:JSON.stringify({outputMessageParts:t})},Zn&&{credentials:"include"}))).ok}catch(e){return console.warn("Failed to cancel submission",e),!1}})),Ls=e=>{jn.current=e,Nn.current&&(Nn.current.abort(),Nn.current=null),yn.current&&(yn.current.cancel().catch((()=>{})),yn.current=null)},Ms=e=>t(void 0,void 0,void 0,(function*(){const t=Date.now()+3e4;for(;Date.now()<t;){try{const t=yield fetch(`${process.env.NEXT_PUBLIC_PICKAXE_API2_URL}/response/status/${e}`,Object.assign({headers:Object.assign({"Cache-Control":"no-cache"},(!process.env.NODE_ENV||"development"===process.env.NODE_ENV)&&Object.assign({},process.env.NEXT_PUBLIC_PICKAXE_SESSION_TOKEN&&{"x-pickaxe-session-token":process.env.NEXT_PUBLIC_PICKAXE_SESSION_TOKEN}))},Zn&&{credentials:"include"}));if(t.ok){if((yield t.json()).terminal)return!0}}catch(e){console.warn("Failed to read submission status",e)}yield new Promise((e=>setTimeout(e,250)))}return!1})),Rs=()=>{const e=xn.current;e&&!qt&&!kt&&Bt.trim()&&(Ps(),Zt((t=>{var n,s;return[...t,{id:le(),message:Bt,predecessorSubmissionId:null!==(s=null===(n=t[t.length-1])||void 0===n?void 0:n.id)&&void 0!==s?s:e}]})),Xt(""))},$s=(e,n=!1,s=!1,o,r=!1)=>t(void 0,void 0,void 0,(function*(){var t,a,c,u,p;if(!i(Ve))return;let m=null;try{if(ht&&!s||kt)return;const i=It.filter((e=>"finished"===e.status&&!e.isInsertedAsRaw)),g=i.map((e=>e.documentId)).filter(Boolean),f=i.filter((e=>"image"===e.type)).map((e=>{const t=e.name.split(".").pop()||"";return{documentId:e.documentId,extension:t}})),v=null!=e?e:Bt,h=null!==(a=null===(t=null==Ve?void 0:Ve.documentuploadtype)||void 0===t?void 0:t.startsWith("enduserupload"))&&void 0!==a&&a&&g.length>0;if(!v.trim()&&!h)return;if((_n||Un)&&!v.trim())return;o||(Ps(),Xt("")),jt(""),Ct(""),xt(null),nt(!1),Qt(!1),yt("fetching"),_t(),At();const b=n?vt.slice(0,vt.length-1):vt,y=(e=>e.reduce(((e,t)=>Math.max(e,t.id)),0)+1)(b),x=y+(n?0:1),j={id:x,role:"assistant",parts:[],documentIds:[]},w=[...b,...n?[]:[{id:y,role:"user",parts:[{type:"text",content:v,isVisible:!0}],documentIds:h?g:[]}],j];bt(w),At(),h&&St([]);const I=Z(Fe),k=null!=o?o:le();m=k,xn.current=k,jn.current=null,wn.current=[];const O=yield fetch(`${process.env.NEXT_PUBLIC_PICKAXE_API2_URL}/response/submit`,Object.assign({method:"POST",body:JSON.stringify(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({supportsActionConfirmation:!0,selectedModel:ct||void 0,origin:Me,pickaxeId:Re,sessionId:$e,submissionId:k},r&&{interactionType:"steer"}),{senderType:Xe,value:v}),h&&{documentIds:g}),Be&&{sender:Be}),pt&&{studioSessionToken:pt}),!pt&&!Be&&{sender:Y()}),ms&&{portalId:ms}),Fe&&{deploymentId:Fe}),I&&{metadata:I}),h&&f.length>0?{uploadedModelImages:f}:{})),headers:Object.assign(Object.assign({},(!process.env.NODE_ENV||"development"===process.env.NODE_ENV)&&Object.assign({},process.env.NEXT_PUBLIC_PICKAXE_SESSION_TOKEN&&{"x-pickaxe-session-token":process.env.NEXT_PUBLIC_PICKAXE_SESSION_TOKEN})),{"x-request-sent-at":(new Date).toISOString()})},Zn&&{credentials:"include"})),N=yield O.json();if(!N.success){if(N.limitData){const e=new Error(N.error||N.message||(null==qe?void 0:qe["failed-to-start-generation"])||"Failed to start generation");throw e.limitData=N.limitData,e}if(rs(N))return;throw new Error(N.error||N.message||(null==qe?void 0:qe["failed-to-start-generation"])||"Failed to start generation")}wt(null!==(c=N.actionApprovalToken)&&void 0!==c?c:null);const S=null!==(u=N.submissionId)&&void 0!==u?u:k;m=S,xn.current=S;const C=()=>jn.current===S;if(C())return;ss&&Qe&&$e&&Sn.current.add($e);const E=Object.assign(Object.assign({},fs()),{message:v,documentIds:h?g:[],uploadedModelImages:h?f:[],hasUploadedDocuments:h,isHidden:n,metadata:null!=I?I:null});un?(vs(),ne(E)):Cn.current=E,yt("streaming"),Nn.current=new AbortController;const T=[];let _=[...null!=Pt?Pt:[]],A=0,P=!1,D="";for(;!P;)try{const e=yield fetch(`${process.env.NEXT_PUBLIC_PICKAXE_API2_URL}/response/stream/${S}?index=${A}`,{signal:null===(p=Nn.current)||void 0===p?void 0:p.signal,headers:{"Cache-Control":"no-cache",Connection:"keep-alive"}});if(!e.body)throw new Error("No response body");const t=e.body.getReader();yn.current=t;const n=new TextDecoder,s=U({onEvent:e=>{var t,n;if(C())P=!0;else if(e.event&&"ping"!==e.event&&A++,"stop"!==e.event){if("error"===e.event){const t=JSON.parse(e.data);if(t.limitData)return xt(t.limitData),jt(""),void(P=!0);const n=t.error||t.message||(null==qe?void 0:qe["something-went-wrong"])||"Something went wrong.";return rs(t)||jt(n),void(P=!0)}if("delta"===e.event){const s=JSON.parse(e.data);if("finish"===s.type)return void Qt(!0);if("data-error"===s.type&&he){const e=s.data.error;if("string"==typeof e){const t=/['"]type['"]\s*:\s*['"]unauthorized_smithery['"]/.test(e),n=/['"]type['"]\s*:\s*['"]unauthorized_composio['"]/.test(e);if(t){const t=e.match(/['"]qualifiedName['"]\s*:\s*['"]([^'"]+)['"]/),n=e.match(/['"]serverId['"]\s*:\s*['"]([^'"]+)['"]/),s=e.match(/['"]name['"]\s*:\s*['"]([^'"]+)['"]/);if(t&&t[1]&&n&&n[1]&&s&&s[1])throw P=!0,he({provider:"smithery",smitheryId:t[1],serverId:n[1],name:s[1]}),new Error("STOP_STREAM")}else if(n){const t=e.match(/['"]toolkitSlug['"]\s*:\s*['"]([^'"]+)['"]/),n=e.match(/['"]serverId['"]\s*:\s*['"]([^'"]+)['"]/),s=e.match(/['"]name['"]\s*:\s*['"]([^'"]+)['"]/);if(t&&t[1]&&n&&n[1]&&s&&s[1])throw P=!0,he({provider:"composio",toolkitSlug:t[1],serverId:n[1],name:s[1]}),new Error("STOP_STREAM")}}else if("object"==typeof e&&null!==e){const t=e;if("unauthorized_smithery"===t.type&&t.qualifiedName&&t.serverId&&t.name)throw P=!0,he({provider:"smithery",smitheryId:t.qualifiedName,serverId:t.serverId,name:t.name}),new Error("STOP_STREAM");if("unauthorized_composio"===t.type&&t.toolkitSlug&&t.serverId&&t.name)throw P=!0,he({provider:"composio",toolkitSlug:t.toolkitSlug,serverId:t.serverId,name:t.name}),new Error("STOP_STREAM")}}else if("text-start"===s.type)D="",T.push({type:"text",content:"",isVisible:null===(t=s.isVisible)||void 0===t||t});else if("text-delta"===s.type)D+=s.delta,l(T,"text",D);else if("text-end"===s.type)D="";else if("reasoning-start"===s.type)D="",T.push({type:"reasoning",content:"",isVisible:null===(n=s.isVisible)||void 0===n||n});else if("reasoning-delta"===s.type)D+=s.delta,l(T,"reasoning",D);else if("reasoning-end"===s.type)D="";else if(s.type.startsWith("data-")){const e=s;"data-action-approval"===e.type?d(T,e.data):T.push({type:e.type,content:JSON.stringify(e.data),isVisible:!0})}wn.current=de(T);const o=de(T);bt((e=>{const t=e.findIndex((e=>e.id===x)),n=Object.assign(Object.assign({},j),{parts:o});return-1===t?[...e,n]:e.map(((e,s)=>s===t?n:e))}))}else if("artifact_created"===e.event){const t=JSON.parse(e.data);_=_.filter((e=>!(e.id===t.id&&e.version===t.version))),_.push(Object.assign(Object.assign({},t),{content:"",status:"streaming"})),Lt([..._]),Dt.startsWith("inline")||Mt({id:t.id,version:t.version})}else if("artifact_updated"===e.event){const t=JSON.parse(e.data);_=_.filter((e=>!(e.id===t.id&&e.version===t.version))),_.push(Object.assign(Object.assign({},t),{content:"",status:"updating"})),Lt(_),Dt.startsWith("inline")||Mt({id:t.id,version:t.version})}else if("artifact_rewrite"===e.event){const t=JSON.parse(e.data);_=_.filter((e=>!(e.id===t.id&&e.version===t.version))),_.push(Object.assign(Object.assign({},t),{content:"",status:"streaming"})),Lt(_),Dt.startsWith("inline")||Mt({id:t.id,version:t.version})}else if("artifact_content"===e.event){const t=JSON.parse(e.data),n=t.token.replace(/\u200B/g,"");_=_.map((e=>e.id===t.id&&e.version===t.version?Object.assign(Object.assign({},e),{content:e.content+n,status:"streaming"}):e)),Lt(_)}else if("artifact_finished"===e.event){const t=JSON.parse(e.data);Lt(_.map((e=>e.id===t.id?Object.assign(Object.assign({},e),{status:"finished"}):e)))}else if("error"===e.event){const t=JSON.parse(e.data);if(t.limitData)return xt(t.limitData),jt(""),void(P=!0);const n=t.error||t.message||(null==qe?void 0:qe["something-went-wrong-try-again"])||"Something went wrong, please try again.";if(rs(t))return void(P=!0);jt(n)}else"stop"===e.event&&(P=!0)}else P=!0}});for(;;){if(C()){P=!0,t.cancel().catch((()=>{}));break}const{value:e,done:o}=yield t.read();if(C()){P=!0,t.cancel().catch((()=>{}));break}if(o)break;s.feed(n.decode(e))}P||C()||(yield new Promise((e=>setTimeout(e,1e3))))}catch(e){if("STOP_STREAM"===e.message||ce(e)||C())return void(P=!0);console.warn("Stream connection lost, retrying...",e),yield new Promise((e=>setTimeout(e,1e3)))}null==dt||dt($e)}catch(e){if(ce(e))return;if(e.limitData)xt(e.limitData),jt("");else{let t=H(e)||"";t&&!t.includes("Unexpected token 'A',")||(t=(null==qe?void 0:qe["high-traffic-try-again-later"])||"Oops! We're experiencing high traffic at the moment. Please try again later."),rs(t)||jt(t)}}finally{const e=!m||xn.current===m;At(),e&&(yt("idle"),Ut(),yn.current=null),m&&e&&(xn.current=null,wn.current=[]),yield ds()}}));return g((()=>{if(ht||qt||en||0===Yt.length)return;const e=Yt[0];tn(!0),sn(e.id),t(void 0,void 0,void 0,(function*(){try{if(!(yield Ms(e.predecessorSubmissionId)))return void jt((null==qe?void 0:qe["queued-message-waiting"])||"A queued message is waiting for the previous response to finish.");Zt((t=>t.filter((t=>t.id!==e.id)))),yield $s(e.message,!1,!0,e.id)}finally{tn(!1),sn(null)}}))}),[ht,en,qt,Yt]),is?null:n("div",Object.assign({className:J("flex w-full flex-shrink-0 flex-col items-center",!os&&"px-4 pb-8"),dir:Ye?"rtl":"ltr"},{children:s("div",Object.assign({className:"flex w-full max-w-[800px] flex-col"},{children:[Yt.length>0&&n("div",Object.assign({className:"mx-3 -mb-3 overflow-hidden border pb-3",style:{borderColor:We.text+"18",backgroundColor:null!==(Pe=Jn.backgroundColor)&&void 0!==Pe?Pe:We.text+"08",color:We.text,borderTopLeftRadius:Math.max(He.cornerRadius-4,12),borderTopRightRadius:Math.max(He.cornerRadius-4,12)}},{children:Yt.map(((e,i)=>{var r;return s("div",Object.assign({className:"flex min-h-10 items-center gap-2 px-3 py-2",style:i<Yt.length-1?{borderBottom:`1px solid ${We.text}12`}:void 0},{children:[n(L,{className:"h-4 w-4 shrink-0 opacity-50","aria-hidden":"true"}),n("span",Object.assign({className:"min-w-0 flex-1 truncate text-sm",title:e.message},{children:e.message})),on===e.id||nn===e.id?s("span",Object.assign({className:"flex shrink-0 items-center gap-1.5 px-2 py-1 text-xs opacity-60","aria-live":"polite"},{children:[n("span",{className:"h-3 w-3 animate-spin rounded-full border border-current border-r-transparent","aria-hidden":"true"}),on===e.id?(null==qe?void 0:qe.steering)||"Steering...":(null==qe?void 0:qe.starting)||"Starting..."]})):s(o,{children:[s("button",Object.assign({type:"button",className:"shrink-0 rounded-md px-2 py-1 text-xs font-medium opacity-70 transition-opacity hover:opacity-100 disabled:cursor-default disabled:opacity-40",disabled:qt||!ht,onClick:()=>{(e=>{t(void 0,void 0,void 0,(function*(){const t=xn.current;if(!t||qt)return;const n=Yt.findIndex((t=>t.id===e.id));if(-1===n)return;Jt(!0),rn(e.id),jt(""),Ls(t);let s=!1;try{if(!(yield Ds(t)))throw new Error((null==qe?void 0:qe["failed-to-interrupt-current-response"])||"Failed to interrupt the current response.");if(!(yield Ms(t)))throw new Error((null==qe?void 0:qe["current-response-still-stopping"])||"The current response is still stopping. Please send your message again in a moment.");yt("idle"),Zt((t=>t.filter((t=>t.id!==e.id)))),s=!0,Jt(!1),rn(null),yield $s(e.message,!1,!0,e.id,!0)}catch(t){yt("idle"),s&&Zt((t=>{if(t.some((t=>t.id===e.id)))return t;const s=[...t];return s.splice(n,0,e),s})),jt(H(t))}finally{Jt(!1),rn(null)}}))})(e)},"aria-label":`${(null==qe?void 0:qe["steer-with"])||"Steer with"}: ${e.message}`},{children:[n("span",Object.assign({"aria-hidden":"true"},{children:"↳ "})),(null==qe?void 0:qe.steer)||"Steer"]})),n("button",Object.assign({type:"button",className:"flex h-7 w-7 shrink-0 items-center justify-center rounded-md opacity-50 transition-opacity hover:opacity-100 disabled:cursor-default disabled:opacity-30",disabled:qt,onClick:()=>{return t=e.id,void Zt((e=>re(e,t)));var t},"aria-label":`${(null==qe?void 0:qe["remove-queued-message"])||"Remove queued message"}: ${e.message}`},{children:n(R,{className:"h-4 w-4","aria-hidden":"true"})})),s(F,Object.assign({id:`queued-message-menu-${e.id}`,className:"shrink-0"},{children:[n(G,Object.assign({className:"flex h-7 w-7 items-center justify-center rounded-md opacity-50 transition-opacity hover:opacity-100",isDisabled:qt,role:"button",tabIndex:qt?-1:0,"aria-haspopup":"menu","aria-label":(null==qe?void 0:qe["more-options"])||"More options",onKeyDown:e=>{"Enter"!==e.key&&" "!==e.key||(e.preventDefault(),e.currentTarget.click())}},{children:s("svg",Object.assign({viewBox:"0 0 24 24",className:"h-4 w-4",fill:"currentColor","aria-hidden":"true"},{children:[n("circle",{cx:"5",cy:"12",r:"1.6"}),n("circle",{cx:"12",cy:"12",r:"1.6"}),n("circle",{cx:"19",cy:"12",r:"1.6"})]}))})),n(V,Object.assign({role:"menu",align:Ye?"bottom-start":"bottom-end",positionStrategy:Ze?"absolute":"fixed",width:"auto",className:"p-1 text-sm shadow-xl",style:{backgroundColor:null!==(r=Jn.backgroundColor)&&void 0!==r?r:We.primary,color:We.text,borderRadius:"12px"},border:`1px solid ${We.text}20`},{children:s("button",Object.assign({type:"button",role:"menuitem",className:"flex min-w-36 items-center gap-2 rounded-lg px-3 py-2 text-left transition-colors hover:bg-black/5 dark:hover:bg-white/10",onClick:()=>(e=>{Zt((t=>re(t,e.id))),Xt(e.message),requestAnimationFrame((()=>{const t=In.current;t&&(t.focus(),t.setSelectionRange(e.message.length,e.message.length))}))})(e)},{children:[n($,{className:"h-4 w-4 shrink-0"}),(null==qe?void 0:qe["edit-message"])||"Edit message"]}))}))]}))]})]}),e.id)}))})),s("div",Object.assign({ref:On,className:J("relative z-10 flex flex-col w-full justify-end gap-y-3 py-[3px]","block"===He.formFieldStyle&&"shadow"),style:Object.assign(Object.assign({},Jn),{maxHeight:`${En}px`,overflowY:"auto"})},{children:[Ss&&s("div",Object.assign({className:"sticky top-0 z-10 flex w-full items-center justify-between border-b px-4 py-2.5 shadow-sm backdrop-blur-md",style:{backgroundColor:Jn.backgroundColor?`${Jn.backgroundColor}E6`:void 0,borderColor:We.text+"20",color:We.text,borderTopRightRadius:He.cornerRadius+"px",borderTopLeftRadius:He.cornerRadius+"px"}},{children:[n("div",Object.assign({className:"flex items-center gap-2 text-sm font-medium"},{children:s("span",{children:[ws.toLocaleString()," ",ps?(null==qe?void 0:qe.credits)||"Credits":(null==qe?void 0:qe.uses)||"Uses"," ",(null==qe?void 0:qe.remaining)||"remaining"]})})),s("div",Object.assign({className:"flex items-center gap-3"},{children:[Es&&n("button",Object.assign({className:"rounded-md px-3 py-1.5 text-xs font-semibold transition-opacity hover:opacity-90",style:{backgroundColor:We.accent,color:We.accentText},onClick:e=>{if(e.preventDefault(),e.stopPropagation(),Ts)return void window.open(Ts,"_blank","noopener,noreferrer");if(lt)return void lt();const t=z({baseUrl:dn,accessGroupId:null==tt?void 0:tt.accessGroupId});t&&Q({deploymentId:Fe,pricingUrl:t,studioId:null==Ve?void 0:Ve.studioid,studioSessionToken:pt})}},{children:_s})),n("button",Object.assign({className:"flex h-6 w-6 items-center justify-center rounded-full opacity-60 transition-opacity hover:opacity-100",onClick:()=>gn(!0)},{children:n("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:2,stroke:"currentColor",className:"h-4 w-4"},{children:n("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M6 18L18 6M6 6l12 12"})}))}))]}))]})),!ht&&It.length>0&&n(B,{className:"p-4 pb-0",isDisabled:ht}),s("div",Object.assign({className:"relative flex w-full flex-col"},{children:[ns&&s("div",Object.assign({className:J(ut?"top-6":"top-1/2","pointer-events-none absolute z-10 flex -translate-y-1/2 select-none items-center gap-x-2",Ye?"right-4":"left-4")},{children:[n("span",{className:"h-2 w-2 animate-pulse rounded-full bg-c-secondary",style:{backgroundColor:null!==(De=We.accent)&&void 0!==De?De:"#ff0000"}}),n("span",Object.assign({className:"text-sm text-c-secondary font-semilight",style:{color:We.text+"90"}},{children:(null==qe?void 0:qe.listening)||"Listening..."}))]})),n(X,Object.assign({ref:In,className:J(qn.i1,"py-3.5 max-h-60 px-4 w-full border-transparent bg-transparent",!Bt.trim()&&!Bt.includes("\n")&&"overflow-hidden text-ellipsis whitespace-nowrap placeholder:whitespace-normal placeholder:overflow-visible",Ye?"text-right":"text-left",!ut&&ls&&"mb-12"),value:Bt,placeholder:ns?"":as,onChange:e=>{Xt(e)},onKeyDown:e=>{ze||Tt||"Enter"===e.key&&(e.shiftKey||(e.preventDefault(),kt||qt||(ht?Rs():$s())))},onPaste:e=>t(void 0,void 0,void 0,(function*(){const t=Array.from(e.clipboardData.files||[]);if(t.length>0){if(!es)return;e.preventDefault(),nt(!1),yield Nt(t)}}))},ue&&{onFocus:ue},fe&&{onBlur:fe},{dir:Ye?"rtl":"ltr"})),s("div",Object.assign({ref:kn,className:ut?"relative flex w-full items-center gap-2 px-3 pb-2 [&>button]:shrink-0 [&>button]:mr-0":J("flex items-center gap-2 absolute z-2 transition-all duration-200 ease-in-out",ls?"bottom-3 right-2":"right-0 top-1/2 -translate-y-1/2"),style:Object.assign(Object.assign({},!ls&&Jn.backgroundColor&&{backgroundColor:Jn.backgroundColor}),{borderTopRightRadius:He.cornerRadius+"px",borderBottomRightRadius:He.cornerRadius+"px"})},{children:[!ht&&!_n&&es&&s("button",Object.assign({className:"flex h-8 w-8 items-center justify-center rounded-full outline-none transition-colors duration-200 ease-in-out disabled:cursor-default",style:{backgroundColor:Fn?We.accent+"10":void 0,color:Fn?We.accent:We.accent+"80"},disabled:kt||ht,"aria-label":null!==(Le=null==qe?void 0:qe["attach-files"])&&void 0!==Le?Le:"Attach files",onClick:()=>{var e;return null===(e=hn.current)||void 0===e?void 0:e.click()}},Gn,{children:[n("input",{id:"file-upload",ref:hn,type:"file",accept:[...E,...T,..._].join(", "),multiple:!0,hidden:!0,className:"hidden",onChange:e=>t(void 0,void 0,void 0,(function*(){nt(!1),yield Nt(Array.from(e.target.files||[])),e.target.value=""}))}),n(A,{className:"h-6 w-6 shrink-0"})]})),n(a,{compact:!0}),s(o,ht&&!zt?{children:[(_n||Un)&&n("button",Object.assign({"aria-label":(null==qe?void 0:qe["stop-listening"])||"Stop listening",title:(null==qe?void 0:qe["stop-listening"])||"Stop listening",className:"flex h-8 w-8 items-center justify-center rounded-full outline-none transition-colors duration-200 ease-in-out",onClick:()=>{Rn()},disabled:Un,style:{backgroundColor:We.accent,color:We.accentText}},{children:n(D,{className:"h-5 w-5 shrink-0"})})),n("button",Object.assign({"aria-label":(null==qe?void 0:qe["stop-response"])||"Stop response",className:"flex h-8 w-8 items-center justify-center rounded-full outline-none transition-colors duration-200 ease-in-out",onClick:()=>{const e=xn.current;e&&(Ls(e),Ds(e)),yt("idle")},style:{backgroundColor:We.accent+"10",color:We.accent}},{children:n(M,{className:"h-4 w-4 shrink-0"})})),n("button",Object.assign({"aria-label":(null==qe?void 0:qe["queue-message"])||"Queue message",className:"flex h-8 w-8 items-center mr-2 justify-center rounded-full outline-none transition-colors duration-200 ease-in-out disabled:cursor-default",disabled:qt||kt||!Bt.trim(),onClick:Rs,style:{backgroundColor:Bt.trim()?We.accent:We.accent+"10",color:Bt.trim()?We.accentText:We.accent+"80"}},{children:n(P,{className:J("h-6 w-6 shrink-0",Ye&&"scale-x-[-1] transform")})}))]}:_n||Un?{children:[n("button",Object.assign({"aria-label":(null==qe?void 0:qe["stop-listening"])||"Stop listening",className:"flex h-8 w-8 items-center mr-2 justify-center rounded-full outline-none transition-colors duration-200 ease-in-out",onClick:()=>{Rn()},disabled:Un,style:{backgroundColor:We.accent,color:We.accentText}},{children:n(M,{className:"h-4 w-4 shrink-0"})})),Bt.trim()&&n("button",Object.assign({"aria-label":(null==qe?void 0:qe["send-message"])||"Send message",className:"flex h-8 w-8 items-center mr-2 justify-center rounded-full outline-none transition-colors duration-200 ease-in-out disabled:cursor-default",disabled:!As,onClick:()=>{$s()},style:{backgroundColor:We.accent,color:We.accentText}},{children:n(P,{className:J("h-6 w-6 shrink-0",Ye&&"scale-x-[-1] transform")})}))]}:{children:[ts&&n("button",Object.assign({className:"disabled:cursor-default flex h-8 w-8 items-center justify-center rounded-full outline-none transition-colors duration-200 ease-in-out",style:{backgroundColor:_n?We.accent:Hn?We.accent+"10":void 0,color:_n?We.accentText:Hn?We.accent:We.accent+"80"},disabled:kt||ht||Un,onClick:()=>{_n?Rn():(Ft(null),bn.current=Bt,Mn(Je||"en-US"))}},Wn,{children:n(D,{className:"h-5 w-5 shrink-0"})})),n("button",Object.assign({className:"flex h-8 w-8 items-center mr-2 justify-center rounded-full outline-none transition-colors duration-200 ease-in-out disabled:cursor-default",style:{backgroundColor:Bn||As?We.accent:We.accent+"10",color:Bn||As?We.accentText:We.accent+"80"},disabled:!As,onClick:()=>$s()},Xn,{children:n(P,{className:J("h-6 w-6 shrink-0",Ye&&"scale-x-[-1] transform")})}))]})]}))]}))]})),Ot&&n(K,{error:Ot,className:"mt-3"})]}))}))}));fe.displayName="Input";export{fe as default};
1
+ import{__rest as e,__awaiter as t}from"../../../_virtual/_tslib.js";import{jsx as n,jsxs as o,Fragment as s}from"react/jsx-runtime";import{canChat as i}from"../../../common/canChat.js";import{useEndUserModel as r}from"../../../hooks/pickaxe/useEndUserModel.js";import a from"../common/EndUserModelPicker.js";import{updateStreamTextPart as l,upsertActionApprovalPart as d}from"../../../common/actionApproval.js";import{forwardRef as c,useState as u,useRef as p,useCallback as m,useEffect as g,useMemo as f,useImperativeHandle as h}from"react";import{usePickaxeContext as v}from"../../../hooks/pickaxe/usePickaxeContext.js";import{useResponseContext as b}from"../../../hooks/pickaxe/useResponseContext.js";import{useStyleInput as y}from"../../../hooks/studio/useStyleInput.js";import{useStyleFontSize as x}from"../../../hooks/studio/useStyleFontSize.js";import{useConversation as j}from"../../../hooks/pickaxe/useConversation.js";import{useDimensionContext as w}from"../../../hooks/pickaxe/useDimensionContext.js";import{useAuthContext as k}from"../Addons/Auth/hooks/useAuthContext.js";import{useDocument as I}from"../Addons/Document/hooks/useDocument.js";import{useScroll as O}from"../Addons/Scroll/hooks/useScroll.js";import{useArtifactContext as S}from"../Addons/Artifact/hooks/useArtifactContext.js";import{useHover as N}from"../../../hooks/core/useHover.js";import{useMediaQuery as C}from"../../../hooks/core/useMediaQuery.js";import{allowedFileMimeTypes as _,allowedImageMimeTypes as E,additionalAllowedFileExtensions as T}from"../../../common/documents.js";import{createParser as U}from"eventsource-parser";import A from"../../Icons/attach-vertical.svg.js";import P from"../../Icons/arrow-right.svg.js";import D from"../../Icons/microphone.svg.js";import L from"../../Icons/message-clock.svg.js";import M from"../../Icons/stop.svg.js";import R from"../../Icons/trash.svg.js";import $ from"../../Icons/pencil.svg.js";import B from"../Addons/Document/List.js";import X from"../../Core/Textarea.js";import K from"../../Core/ErrorAlert.js";import F from"../../Core/Menu/index.js";import G from"../../Core/Menu/Button.js";import V from"../../Core/Menu/List.js";import H from"../../../common/error.js";import{pickaxeApi2 as W}from"../../../common/api/pickaxe.js";import{getValidationFailure as q}from"../../../common/validation.js";import J from"../../../common/cn.js";import{buildUpgradeUrl as z,openAuthenticatedPricingUrl as Q,initializeEmbedUserId as Y}from"../../../common/utils.js";import{getPickaxeConfigMetadata as Z}from"../../../common/pickaxeConfig.js";import{readAgentPrefill as ee}from"../../../common/agentPrefill.js";import{fireDeploymentSessionInitializedWebhook as te,fireDeploymentFirstMessageSubmittedWebhook as ne}from"../../../common/deploymentWebhooks.js";import{useStudio as oe}from"../../../hooks/studio/useStudio.js";import{useSpeechToText as se}from"../../../hooks/pickaxe/useSpeechToText.js";import{STUDIO_INFINITY_VALUE as ie}from"../common/PickaxeCommon.js";const re=(e,t)=>{const n=e.find((e=>e.id===t));return n?e.filter((e=>e.id!==t)).map((e=>e.predecessorSubmissionId===t?Object.assign(Object.assign({},e),{predecessorSubmissionId:n.predecessorSubmissionId}):e)):e},ae=e=>"string"==typeof e&&e.trim().length>0,le=()=>"undefined"!=typeof crypto&&"randomUUID"in crypto?crypto.randomUUID():`submission-${Date.now()}-${Math.random().toString(36).slice(2)}`,de=e=>e.map((e=>Object.assign({},e))),ce=e=>e instanceof Error&&("AbortError"===e.name||"BodyStreamBuffer was aborted"===e.message),ue=(e,t)=>{if(e&&"object"==typeof e)return e[t]},pe=(e,t)=>{const n=ue(e,t);return ae(n)?n:null},me=e=>{const t=Number(e);return Number.isFinite(t)?t:void 0},ge=({studioUser:e,deploymentId:t,portalId:n})=>{var o,s;const i=Array.isArray(ue(e,"uses"))?ue(e,"uses"):[],r=(({deploymentId:e,portalId:t})=>ae(e)?{type:"deployment",id:e}:ae(t)?{type:"portal",id:t}:null)({deploymentId:t,portalId:n});if(!r)return{scope:r,record:null};const a=null!==(s=null!==(o=i.find((e=>e.id===r.id&&e.type===r.type)))&&void 0!==o?o:i.find((e=>e.id===r.id)))&&void 0!==s?s:null;return{scope:r,record:a}},fe=c((({resubmitPrompt:c,onFocus:ue,onBlur:fe,onInputHeightChange:he,initSmitheryAuthData:ve},be)=>{var ye,xe,je,we,ke,Ie,Oe,Se,Ne,Ce,_e,Ee,Te,Ue,Ae,Pe,De,Le;const{origin:Me,pickaxeId:Re,sessionId:$e,sender:Be,senderType:Xe,portalId:Ke,deploymentId:Fe,deploymentType:Ge,pickaxe:Ve,styles:He,colors:We,translations:qe,locale:Je,forceMobile:ze,isNewChat:Qe,isRtl:Ye,isEmbed:Ze,isShowFeedbackMessage:et,accessGroup:tt,setIsNewChat:nt,setIsShowIceBreaker:ot,setValidationStatus:st,setValidationUpgradeGroups:it,setValidationUpgradeUrl:rt,setAccessGroup:at,onUpgrade:lt,onGenerateComplete:dt}=v(),{value:ct,enabled:ut}=r(),{token:pt,isLoggedOut:mt,isSent:gt,isPricingAuth:ft}=k(),{messages:ht,isGenerating:vt,setMessages:bt,setStatus:yt,setLimitData:xt,setError:jt,setActionApprovalToken:wt}=b(),{documents:kt,isUploading:It,documentError:Ot,onFileUpload:St,setDocuments:Nt,setDocumentError:Ct}=I(),{studio:_t}=oe(),[Et]=C("(max-width: 480px)"),{scrollStartSession:Tt,scrollEndSession:Ut,scrollToBottom:At}=O({auto:!0,smooth:!(ze||Et)}),{artifacts:Pt,currentPopupType:Dt,setArtifacts:Lt,setCurrentArtifact:Mt}=S(),{height:Rt}=w(),$t=j(),[Bt,Xt]=u((()=>ee([Fe,Re]).chatInput)),[Kt,Ft]=u(null),[Gt,Vt]=u(!1),[Ht,Wt]=u(!1),[qt,Jt]=u(!1),[zt,Qt]=u(!1),[Yt,Zt]=u([]),[en,tn]=u(!1),[nn,on]=u(null),[sn,rn]=u(null),[an,ln]=u(null),[dn,cn]=u(null),[un,pn]=u(!1),[mn,gn]=u(!1),[fn,hn]=u(0),vn=p(null),bn=p(""),yn=p(null),xn=p(null),jn=p(null),wn=p([]),kn=p(null),In=p(null),On=p(null),Sn=p(null),Nn=p(new Set),Cn=p(null),_n=Math.max(.4*Rt,100),{speechTranscript:En,isSpeechListening:Tn,isSpeechProcessing:Un,isSpeechSupported:An,getSpeechTranscriptSnapshot:Pn,speechTranscriptRevision:Dn,resetSpeechTranscript:Ln,onStartListening:Mn,onStopListening:Rn}=se(),$n=N(),{isHover:Bn}=$n,Xn=e($n,["isHover"]),Kn=N(),{isHover:Fn}=Kn,Gn=e(Kn,["isHover"]),Vn=N(),{isHover:Hn}=Vn,Wn=e(Vn,["isHover"]),qn=x(),Jn=y(),zn="undefined"!=typeof window?window.location.hostname:"",Qn="undefined"!=typeof window?window.location.href:"",Yn="undefined"!=typeof window&&window.self!==window.top,Zn=zn.includes("pickaxe.co")&&!Qn.includes("https://studio.pickaxe.co/_embed")&&!Yn,eo=null!==(xe=null===(ye=null==Ve?void 0:Ve.documentuploadtype)||void 0===ye?void 0:ye.startsWith("enduserupload"))&&void 0!==xe&&xe,to=An&&(null==Ve?void 0:Ve.enablevoicetotext),no=Tn&&!Bt.trim(),oo=ae(Fe),so="chat-input"===Ge&&Qe&&!gt,io="chat-input"===Ge&&ft&&mt&&gt,ro=m((e=>{const t=q(e);return!!t&&(jt(""),xt(null),st(t.status),at(t.accessGroup),it(t.upgradeGroups),rt(t.upgradeUrl),!0)}),[jt,wt,xt,st,it,rt,at]),ao=null!==(je=null==Ve?void 0:Ve.placeholdertext)&&void 0!==je?je:Ye?"بماذا تريد أن تتحدث؟":(null==qe?void 0:qe["what-do-you-want-to-talk-about"])||"What do you want to talk about?",lo=Gt||Ht,co=m((()=>t(void 0,void 0,void 0,(function*(){pn(!1);try{const e=yield fetch(`${process.env.NEXT_PUBLIC_PICKAXE_API2_URL}/user`,Object.assign(Object.assign({method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(Object.assign({studioId:null==Ve?void 0:Ve.studioid},pt?{studioSessionToken:pt}:Be?{sender:Be}:{sender:Y()}))},(!process.env.NODE_ENV||"development"===process.env.NODE_ENV)&&Object.assign({},process.env.NEXT_PUBLIC_PICKAXE_SESSION_TOKEN&&{headers:{"Content-Type":"application/json","x-pickaxe-session-token":process.env.NEXT_PUBLIC_PICKAXE_SESSION_TOKEN}})),Zn&&{credentials:"include"})),t=yield e.json();(null==t?void 0:t.studioUser)&&(ln(t.studioUser),cn(t.url))}catch(e){console.error("Failed to fetch studio user:",e)}finally{pn(!0)}}))),[Zn,null==Ve?void 0:Ve.studioid,Be,pt]);g((()=>{co()}),[co]);const uo=Number(null!==(we=null==tt?void 0:tt.limit)&&void 0!==we?we:0),po="string"==typeof(null==tt?void 0:tt.limitInterval)?tt.limitInterval:null,mo=!!(null==_t?void 0:_t.data.usage)&&_t.data.usage.isCredits,go=f((()=>{var e,t,n,o,s;return null!==(s=null!==(o=null!==(n=null!==(t=null!==(e=null!=Ke?Ke:pe(an,"portalId"))&&void 0!==e?e:pe(an,"portalid"))&&void 0!==t?t:pe(tt,"portalId"))&&void 0!==n?n:pe(tt,"portalid"))&&void 0!==o?o:pe(Ve,"portalId"))&&void 0!==s?s:pe(Ve,"portalid")}),[tt,Ke,Ve,an]),fo=f((()=>ge({studioUser:an,deploymentId:Fe,portalId:go})),[Fe,go,an]);g((()=>{oo&&Qe&&$e&&Nn.current.add($e)}),[Qe,$e,oo]);const ho=m((()=>{var e,t,n;return{studioId:null==Ve?void 0:Ve.studioid,userEmail:pe(an,"email"),userId:null!==(e=pe(an,"userId"))&&void 0!==e?e:pe(an,"userid"),sessionId:$e,deploymentId:Fe,deploymentType:Ge,portalId:go,accessGroupId:null!==(t=null==tt?void 0:tt.accessGroupId)&&void 0!==t?t:null,pickaxeId:Re,sender:Be,senderType:Xe,origin:Me,metadata:null!==(n=Z(Fe))&&void 0!==n?n:null}}),[null==tt?void 0:tt.accessGroupId,Fe,Ge,Me,null==Ve?void 0:Ve.studioid,Re,go,Be,Xe,$e,an]),vo=m((()=>!!(oo&&un&&$e)&&(!!Nn.current.has($e)&&(te(ho()),Nn.current.delete($e),!0))),[ho,un,$e,oo]);g((()=>{if(!un||!$e)return;vo();const e=Cn.current;(null==e?void 0:e.sessionId)===$e&&(ne(Object.assign(Object.assign(Object.assign({},e),ho()),{message:e.message,documentIds:e.documentIds,uploadedModelImages:e.uploadedModelImages,hasUploadedDocuments:e.hasUploadedDocuments,isHidden:e.isHidden})),Cn.current=null)}),[vo,ho,un,$e]);const bo={currentUses:me(null==an?void 0:an.currentUses),extraUses:me(null==an?void 0:an.extraUses)},yo=fo.scope?{currentUses:null!==(Ie=me(null===(ke=fo.record)||void 0===ke?void 0:ke.currentUses))&&void 0!==Ie?Ie:0,extraUses:null!==(Se=me(null===(Oe=fo.record)||void 0===Oe?void 0:Oe.extraUses))&&void 0!==Se?Se:0}:{currentUses:0,extraUses:0},xo=pe(an,"type"),jo="guest"===xo||!xo&&mt?yo:bo;g((()=>{let e=!0;return t(void 0,void 0,void 0,(function*(){var t;if(mo&&(null===(t=null==_t?void 0:_t.data)||void 0===t?void 0:t.workspaceId))try{const t=yield W.get(`/cost_per_run?workspaceId=${_t.data.workspaceId}`,{withCredentials:!1});e&&hn(1e4*(Number(t.data.costPerRun)||0))}catch(t){console.error("Failed to fetch average cost per run:",t),e&&hn(0)}else e&&hn(0)})),()=>{e=!1}}),[mo,null===(Ne=null==_t?void 0:_t.data)||void 0===Ne?void 0:Ne.workspaceId]);const wo=(({accessGroupType:e,currentUses:t,extraUses:n,limit:o,limitInterval:s})=>{const i=Number(null!=t?t:0),r=Number(null!=n?n:0);return"public"===e&&"one_time"===s?o===ie?ie:Math.max(0,o-i):o===ie||r===ie?ie:"one_time"===s?Math.max(0,r):Math.max(0,o-i)+r})({accessGroupType:null==tt?void 0:tt.type,currentUses:jo.currentUses,extraUses:jo.extraUses,limit:uo,limitInterval:po}),ko=wo===ie?ie:Math.max(0,Math.ceil(wo)),Io=(({accessGroupType:e,extraUses:t,limit:n,limitInterval:o})=>{const s=Number(null!=t?t:0);return"public"===e&&"one_time"===o?n===ie?ie:Math.max(0,n):n===ie||s===ie?ie:"one_time"===o?Math.max(0,s):Math.max(0,n)+Math.max(0,s)})({accessGroupType:null==tt?void 0:tt.type,extraUses:jo.extraUses,limit:uo,limitInterval:po}),Oo=Io===ie?ie:Math.ceil(.05*Io),So=mo?Math.ceil(5*fn):5,No=Oo===ie?ie:Math.max(Oo,So),Co=f((()=>!!an&&(!mn&&(ko!==ie&&(!(Io<=0||ko>=Io)&&ko<=No)))),[mn,No,ko,an,Io]),_o=Boolean(null==tt?void 0:tt.hideUpgradeOptions),Eo=Boolean(!_o&&((null===(Ce=null==tt?void 0:tt.upgrade)||void 0===Ce?void 0:Ce.isBuyMoreUses)||(null===(_e=null==tt?void 0:tt.upgrade)||void 0===_e?void 0:_e.isLinkToCustomURL)||(null===(Ee=null==tt?void 0:tt.upgrade)||void 0===Ee?void 0:Ee.isUpgradeToAnotherGroup)&&(null===(Te=tt.upgrade.accessGroupIds)||void 0===Te?void 0:Te.length))),To=!_o&&(null===(Ue=null==tt?void 0:tt.upgrade)||void 0===Ue?void 0:Ue.isLinkToCustomURL)&&"string"==typeof tt.upgrade.limitLink&&tt.upgrade.limitLink.trim().length>0?tt.upgrade.limitLink.trim():null,Uo=To&&"string"==typeof(null===(Ae=null==tt?void 0:tt.upgrade)||void 0===Ae?void 0:Ae.limitCTA)&&tt.upgrade.limitCTA.trim().length>0?tt.upgrade.limitCTA:(null==qe?void 0:qe["pricing.upgrade"])||(null==qe?void 0:qe.upgrade)||"Upgrade",Ao=f((()=>{var e,t,n;return!!Qe&&(!!Ve&&(!$t.isLoading&&(!((null!==(t=null===(e=$t.data)||void 0===e?void 0:e.messages.length)&&void 0!==t?t:0)>1)&&(!!(null===(n=Ve.icebreakers)||void 0===n?void 0:n.length)&&(!et&&!so)))))}),[Ve,Qe,et,so,$t.data,$t.isLoading]),Po=f((()=>{if(It||qt)return!1;const e=eo&&kt.length>0&&kt.every((e=>"finished"===e.status));return!(!Bt.trim()&&!e)&&kt.every((e=>"finished"===e.status||e.isInsertedAsRaw))}),[eo,It,qt,Bt,kt]);h(be,(()=>({onSubmit:Bo}))),g((()=>{ot(Ao)}),[Ao]),g((()=>{var e;if(c){const t=Array.from(ht),n=null===(e=t[t.length-2].parts.find((e=>"text"===e.type)))||void 0===e?void 0:e.content;Bo(n,!0)}}),[c]),g((()=>{if(!On.current||!he)return;const e=new ResizeObserver((e=>{for(const t of e)he(t.contentRect.height)}));return e.observe(On.current),()=>{e.disconnect()}}),[he]),g((()=>{if(!Tn)return;const e=bn.current?`${bn.current} `:"",t=Pn();Ft(t),Xt(`${e}${t.text}`)}),[En,Dn,Tn,Pn]);const Do=()=>{bn.current="",Ln(Kt),Ft(null)};g((()=>{if(!kn.current)return;(()=>{if(!kn.current)return;let e=kn.current.scrollHeight>52;Bt.includes("\n")||kt.length?e=!0:Bt.trim()||(e=!1),Vt(e)})()}),[Bt,kt]),g((()=>{const e=kn.current,t=In.current;if(!e||!t||ut||Gt||Bt.includes("\n"))return void Wt(!1);const n=window.getComputedStyle(e),o=`${n.fontStyle} ${n.fontVariant} ${n.fontWeight} ${n.fontSize} / ${n.lineHeight} ${n.fontFamily}`,s=document.createElement("span");Object.assign(s.style,{font:o,letterSpacing:n.letterSpacing,position:"absolute",visibility:"hidden",whiteSpace:"nowrap",top:"0",left:"0"}),s.textContent=Bt||ao,document.body.appendChild(s);const i=s.offsetWidth;s.remove();const r=parseFloat(n.paddingLeft)||0,a=parseFloat(n.paddingRight)||0,l=e.clientWidth-r-a-t.offsetWidth;Wt(i>l)}),[Bt,Gt,ao,ut]);const Lo=e=>t(void 0,void 0,void 0,(function*(){if(!(e=null!=e?e:xn.current))return!1;const t=de(wn.current);try{return(yield fetch(`${process.env.NEXT_PUBLIC_PICKAXE_API2_URL}/response/cancel/${e}`,Object.assign({method:"POST",headers:Object.assign(Object.assign({"Content-Type":"application/json"},(!process.env.NODE_ENV||"development"===process.env.NODE_ENV)&&Object.assign({},process.env.NEXT_PUBLIC_PICKAXE_SESSION_TOKEN&&{"x-pickaxe-session-token":process.env.NEXT_PUBLIC_PICKAXE_SESSION_TOKEN})),{"x-request-sent-at":(new Date).toISOString()}),body:JSON.stringify({outputMessageParts:t})},Zn&&{credentials:"include"}))).ok}catch(e){return console.warn("Failed to cancel submission",e),!1}})),Mo=e=>{jn.current=e,Sn.current&&(Sn.current.abort(),Sn.current=null),yn.current&&(yn.current.cancel().catch((()=>{})),yn.current=null)},Ro=e=>t(void 0,void 0,void 0,(function*(){const t=Date.now()+3e4;for(;Date.now()<t;){try{const t=yield fetch(`${process.env.NEXT_PUBLIC_PICKAXE_API2_URL}/response/status/${e}`,Object.assign({headers:Object.assign({"Cache-Control":"no-cache"},(!process.env.NODE_ENV||"development"===process.env.NODE_ENV)&&Object.assign({},process.env.NEXT_PUBLIC_PICKAXE_SESSION_TOKEN&&{"x-pickaxe-session-token":process.env.NEXT_PUBLIC_PICKAXE_SESSION_TOKEN}))},Zn&&{credentials:"include"}));if(t.ok){if((yield t.json()).terminal)return!0}}catch(e){console.warn("Failed to read submission status",e)}yield new Promise((e=>setTimeout(e,250)))}return!1})),$o=()=>{const e=xn.current;e&&!qt&&!It&&Bt.trim()&&(Do(),Zt((t=>{var n,o;return[...t,{id:le(),message:Bt,predecessorSubmissionId:null!==(o=null===(n=t[t.length-1])||void 0===n?void 0:n.id)&&void 0!==o?o:e}]})),Xt(""))},Bo=(e,n=!1,o=!1,s,r=!1)=>t(void 0,void 0,void 0,(function*(){var t,a,c,u,p;if(!i(Ve))return;let m=null;try{if(vt&&!o||It)return;const i=kt.filter((e=>"finished"===e.status&&!e.isInsertedAsRaw)),g=i.map((e=>e.documentId)).filter(Boolean),f=i.filter((e=>"image"===e.type)).map((e=>{const t=e.name.split(".").pop()||"";return{documentId:e.documentId,extension:t}})),h=null!=e?e:Bt,v=null!==(a=null===(t=null==Ve?void 0:Ve.documentuploadtype)||void 0===t?void 0:t.startsWith("enduserupload"))&&void 0!==a&&a&&g.length>0;if(!h.trim()&&!v)return;if((Tn||Un)&&!h.trim())return;s||(Do(),Xt("")),jt(""),Ct(""),xt(null),nt(!1),Qt(!1),yt("fetching"),Tt(),At();const b=n?ht.slice(0,ht.length-1):ht,y=(e=>e.reduce(((e,t)=>Math.max(e,t.id)),0)+1)(b),x=y+(n?0:1),j={id:x,role:"assistant",parts:[],documentIds:[]},w=[...b,...n?[]:[{id:y,role:"user",parts:[{type:"text",content:h,isVisible:!0}],documentIds:v?g:[]}],j];bt(w),At(),v&&Nt([]);const k=Z(Fe),I=null!=s?s:le();m=I,xn.current=I,jn.current=null,wn.current=[];const O=yield fetch(`${process.env.NEXT_PUBLIC_PICKAXE_API2_URL}/response/submit`,Object.assign({method:"POST",body:JSON.stringify(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({supportsActionConfirmation:!0,selectedModel:ct||void 0,origin:Me,pickaxeId:Re,sessionId:$e,submissionId:I},r&&{interactionType:"steer"}),{senderType:Xe,value:h}),v&&{documentIds:g}),Be&&{sender:Be}),pt&&{studioSessionToken:pt}),!pt&&!Be&&{sender:Y()}),go&&{portalId:go}),Fe&&{deploymentId:Fe}),k&&{metadata:k}),v&&f.length>0?{uploadedModelImages:f}:{})),headers:Object.assign(Object.assign({},(!process.env.NODE_ENV||"development"===process.env.NODE_ENV)&&Object.assign({},process.env.NEXT_PUBLIC_PICKAXE_SESSION_TOKEN&&{"x-pickaxe-session-token":process.env.NEXT_PUBLIC_PICKAXE_SESSION_TOKEN})),{"x-request-sent-at":(new Date).toISOString()})},Zn&&{credentials:"include"})),S=yield O.json();if(!S.success){if(S.limitData){const e=new Error(S.error||S.message||(null==qe?void 0:qe["failed-to-start-generation"])||"Failed to start generation");throw e.limitData=S.limitData,e}if(ro(S))return;throw new Error(S.error||S.message||(null==qe?void 0:qe["failed-to-start-generation"])||"Failed to start generation")}wt(null!==(c=S.actionApprovalToken)&&void 0!==c?c:null);const N=null!==(u=S.submissionId)&&void 0!==u?u:I;m=N,xn.current=N;const C=()=>jn.current===N;if(C())return;oo&&Qe&&$e&&Nn.current.add($e);const _=Object.assign(Object.assign({},ho()),{message:h,documentIds:v?g:[],uploadedModelImages:v?f:[],hasUploadedDocuments:v,isHidden:n,metadata:null!=k?k:null});un?(vo(),ne(_)):Cn.current=_,yt("streaming"),Sn.current=new AbortController;const E=[];let T=[...null!=Pt?Pt:[]],A=0,P=!1,D="";for(;!P;)try{const e=yield fetch(`${process.env.NEXT_PUBLIC_PICKAXE_API2_URL}/response/stream/${N}?index=${A}`,{signal:null===(p=Sn.current)||void 0===p?void 0:p.signal,headers:{"Cache-Control":"no-cache",Connection:"keep-alive"}});if(!e.body)throw new Error("No response body");const t=e.body.getReader();yn.current=t;const n=new TextDecoder,o=U({onEvent:e=>{var t,n;if(C())P=!0;else if(e.event&&"ping"!==e.event&&A++,"stop"!==e.event){if("error"===e.event){const t=JSON.parse(e.data);if(t.limitData)return xt(t.limitData),jt(""),void(P=!0);const n=t.error||t.message||(null==qe?void 0:qe["something-went-wrong"])||"Something went wrong.";return ro(t)||jt(n),void(P=!0)}if("delta"===e.event){const o=JSON.parse(e.data);if("finish"===o.type)return void Qt(!0);if("data-error"===o.type){const e=o.data.error;if("object"==typeof e&&null!==e&&("mcp_auth_expired"===e.type||"mcp_owner_connection_required"===e.type||"mcp_connection_check_failed"===e.type))throw jt("string"==typeof e.message?e.message:(null==qe?void 0:qe["something-went-wrong"])||"Something went wrong."),P=!0,new Error("STOP_STREAM");if(!ve)return;if("string"==typeof e){const t=/['"]type['"]\s*:\s*['"]unauthorized_smithery['"]/.test(e),n=/['"]type['"]\s*:\s*['"]unauthorized_composio['"]/.test(e);if(t){const t=e.match(/['"]qualifiedName['"]\s*:\s*['"]([^'"]+)['"]/),n=e.match(/['"]serverId['"]\s*:\s*['"]([^'"]+)['"]/),o=e.match(/['"]name['"]\s*:\s*['"]([^'"]+)['"]/);if(t&&t[1]&&n&&n[1]&&o&&o[1])throw P=!0,ve({provider:"smithery",smitheryId:t[1],serverId:n[1],name:o[1]}),new Error("STOP_STREAM")}else if(n){const t=e.match(/['"]toolkitSlug['"]\s*:\s*['"]([^'"]+)['"]/),n=e.match(/['"]serverId['"]\s*:\s*['"]([^'"]+)['"]/),o=e.match(/['"]name['"]\s*:\s*['"]([^'"]+)['"]/);if(t&&t[1]&&n&&n[1]&&o&&o[1])throw P=!0,ve({provider:"composio",toolkitSlug:t[1],serverId:n[1],name:o[1]}),new Error("STOP_STREAM")}}else if("object"==typeof e&&null!==e){const t=e;if("unauthorized_smithery"===t.type&&t.qualifiedName&&t.serverId&&t.name)throw P=!0,ve({provider:"smithery",smitheryId:t.qualifiedName,serverId:t.serverId,name:t.name}),new Error("STOP_STREAM");if("unauthorized_composio"===t.type&&t.toolkitSlug&&t.serverId&&t.name)throw P=!0,ve({provider:"composio",toolkitSlug:t.toolkitSlug,serverId:t.serverId,name:t.name}),new Error("STOP_STREAM")}}else if("text-start"===o.type)D="",E.push({type:"text",content:"",isVisible:null===(t=o.isVisible)||void 0===t||t});else if("text-delta"===o.type)D+=o.delta,l(E,"text",D);else if("text-end"===o.type)D="";else if("reasoning-start"===o.type)D="",E.push({type:"reasoning",content:"",isVisible:null===(n=o.isVisible)||void 0===n||n});else if("reasoning-delta"===o.type)D+=o.delta,l(E,"reasoning",D);else if("reasoning-end"===o.type)D="";else if(o.type.startsWith("data-")){const e=o;"data-action-approval"===e.type?d(E,e.data):E.push({type:e.type,content:JSON.stringify(e.data),isVisible:!0})}wn.current=de(E);const s=de(E);bt((e=>{const t=e.findIndex((e=>e.id===x)),n=Object.assign(Object.assign({},j),{parts:s});return-1===t?[...e,n]:e.map(((e,o)=>o===t?n:e))}))}else if("artifact_created"===e.event){const t=JSON.parse(e.data);T=T.filter((e=>!(e.id===t.id&&e.version===t.version))),T.push(Object.assign(Object.assign({},t),{content:"",status:"streaming"})),Lt([...T]),Dt.startsWith("inline")||Mt({id:t.id,version:t.version})}else if("artifact_updated"===e.event){const t=JSON.parse(e.data);T=T.filter((e=>!(e.id===t.id&&e.version===t.version))),T.push(Object.assign(Object.assign({},t),{content:"",status:"updating"})),Lt(T),Dt.startsWith("inline")||Mt({id:t.id,version:t.version})}else if("artifact_rewrite"===e.event){const t=JSON.parse(e.data);T=T.filter((e=>!(e.id===t.id&&e.version===t.version))),T.push(Object.assign(Object.assign({},t),{content:"",status:"streaming"})),Lt(T),Dt.startsWith("inline")||Mt({id:t.id,version:t.version})}else if("artifact_content"===e.event){const t=JSON.parse(e.data),n=t.token.replace(/\u200B/g,"");T=T.map((e=>e.id===t.id&&e.version===t.version?Object.assign(Object.assign({},e),{content:e.content+n,status:"streaming"}):e)),Lt(T)}else if("artifact_finished"===e.event){const t=JSON.parse(e.data);Lt(T.map((e=>e.id===t.id?Object.assign(Object.assign({},e),{status:"finished"}):e)))}else if("error"===e.event){const t=JSON.parse(e.data);if(t.limitData)return xt(t.limitData),jt(""),void(P=!0);const n=t.error||t.message||(null==qe?void 0:qe["something-went-wrong-try-again"])||"Something went wrong, please try again.";if(ro(t))return void(P=!0);jt(n)}else"stop"===e.event&&(P=!0)}else P=!0}});for(;;){if(C()){P=!0,t.cancel().catch((()=>{}));break}const{value:e,done:s}=yield t.read();if(C()){P=!0,t.cancel().catch((()=>{}));break}if(s)break;o.feed(n.decode(e))}P||C()||(yield new Promise((e=>setTimeout(e,1e3))))}catch(e){if("STOP_STREAM"===e.message||ce(e)||C())return void(P=!0);console.warn("Stream connection lost, retrying...",e),yield new Promise((e=>setTimeout(e,1e3)))}null==dt||dt($e)}catch(e){if(ce(e))return;if(e.limitData)xt(e.limitData),jt("");else{let t=H(e)||"";t&&!t.includes("Unexpected token 'A',")||(t=(null==qe?void 0:qe["high-traffic-try-again-later"])||"Oops! We're experiencing high traffic at the moment. Please try again later."),ro(t)||jt(t)}}finally{const e=!m||xn.current===m;At(),e&&(yt("idle"),Ut(),yn.current=null),m&&e&&(xn.current=null,wn.current=[]),yield co()}}));return g((()=>{if(vt||qt||en||0===Yt.length)return;const e=Yt[0];tn(!0),on(e.id),t(void 0,void 0,void 0,(function*(){try{if(!(yield Ro(e.predecessorSubmissionId)))return void jt((null==qe?void 0:qe["queued-message-waiting"])||"A queued message is waiting for the previous response to finish.");Zt((t=>t.filter((t=>t.id!==e.id)))),yield Bo(e.message,!1,!0,e.id)}finally{tn(!1),on(null)}}))}),[vt,en,qt,Yt]),io?null:n("div",Object.assign({className:J("flex w-full flex-shrink-0 flex-col items-center",!so&&"px-4 pb-8"),dir:Ye?"rtl":"ltr"},{children:o("div",Object.assign({className:"flex w-full max-w-[800px] flex-col"},{children:[Yt.length>0&&n("div",Object.assign({className:"mx-3 -mb-3 overflow-hidden border pb-3",style:{borderColor:We.text+"18",backgroundColor:null!==(Pe=Jn.backgroundColor)&&void 0!==Pe?Pe:We.text+"08",color:We.text,borderTopLeftRadius:Math.max(He.cornerRadius-4,12),borderTopRightRadius:Math.max(He.cornerRadius-4,12)}},{children:Yt.map(((e,i)=>{var r;return o("div",Object.assign({className:"flex min-h-10 items-center gap-2 px-3 py-2",style:i<Yt.length-1?{borderBottom:`1px solid ${We.text}12`}:void 0},{children:[n(L,{className:"h-4 w-4 shrink-0 opacity-50","aria-hidden":"true"}),n("span",Object.assign({className:"min-w-0 flex-1 truncate text-sm",title:e.message},{children:e.message})),sn===e.id||nn===e.id?o("span",Object.assign({className:"flex shrink-0 items-center gap-1.5 px-2 py-1 text-xs opacity-60","aria-live":"polite"},{children:[n("span",{className:"h-3 w-3 animate-spin rounded-full border border-current border-r-transparent","aria-hidden":"true"}),sn===e.id?(null==qe?void 0:qe.steering)||"Steering...":(null==qe?void 0:qe.starting)||"Starting..."]})):o(s,{children:[o("button",Object.assign({type:"button",className:"shrink-0 rounded-md px-2 py-1 text-xs font-medium opacity-70 transition-opacity hover:opacity-100 disabled:cursor-default disabled:opacity-40",disabled:qt||!vt,onClick:()=>{(e=>{t(void 0,void 0,void 0,(function*(){const t=xn.current;if(!t||qt)return;const n=Yt.findIndex((t=>t.id===e.id));if(-1===n)return;Jt(!0),rn(e.id),jt(""),Mo(t);let o=!1;try{if(!(yield Lo(t)))throw new Error((null==qe?void 0:qe["failed-to-interrupt-current-response"])||"Failed to interrupt the current response.");if(!(yield Ro(t)))throw new Error((null==qe?void 0:qe["current-response-still-stopping"])||"The current response is still stopping. Please send your message again in a moment.");yt("idle"),Zt((t=>t.filter((t=>t.id!==e.id)))),o=!0,Jt(!1),rn(null),yield Bo(e.message,!1,!0,e.id,!0)}catch(t){yt("idle"),o&&Zt((t=>{if(t.some((t=>t.id===e.id)))return t;const o=[...t];return o.splice(n,0,e),o})),jt(H(t))}finally{Jt(!1),rn(null)}}))})(e)},"aria-label":`${(null==qe?void 0:qe["steer-with"])||"Steer with"}: ${e.message}`},{children:[n("span",Object.assign({"aria-hidden":"true"},{children:"↳ "})),(null==qe?void 0:qe.steer)||"Steer"]})),n("button",Object.assign({type:"button",className:"flex h-7 w-7 shrink-0 items-center justify-center rounded-md opacity-50 transition-opacity hover:opacity-100 disabled:cursor-default disabled:opacity-30",disabled:qt,onClick:()=>{return t=e.id,void Zt((e=>re(e,t)));var t},"aria-label":`${(null==qe?void 0:qe["remove-queued-message"])||"Remove queued message"}: ${e.message}`},{children:n(R,{className:"h-4 w-4","aria-hidden":"true"})})),o(F,Object.assign({id:`queued-message-menu-${e.id}`,className:"shrink-0"},{children:[n(G,Object.assign({className:"flex h-7 w-7 items-center justify-center rounded-md opacity-50 transition-opacity hover:opacity-100",isDisabled:qt,role:"button",tabIndex:qt?-1:0,"aria-haspopup":"menu","aria-label":(null==qe?void 0:qe["more-options"])||"More options",onKeyDown:e=>{"Enter"!==e.key&&" "!==e.key||(e.preventDefault(),e.currentTarget.click())}},{children:o("svg",Object.assign({viewBox:"0 0 24 24",className:"h-4 w-4",fill:"currentColor","aria-hidden":"true"},{children:[n("circle",{cx:"5",cy:"12",r:"1.6"}),n("circle",{cx:"12",cy:"12",r:"1.6"}),n("circle",{cx:"19",cy:"12",r:"1.6"})]}))})),n(V,Object.assign({role:"menu",align:Ye?"bottom-start":"bottom-end",positionStrategy:Ze?"absolute":"fixed",width:"auto",className:"p-1 text-sm shadow-xl",style:{backgroundColor:null!==(r=Jn.backgroundColor)&&void 0!==r?r:We.primary,color:We.text,borderRadius:"12px"},border:`1px solid ${We.text}20`},{children:o("button",Object.assign({type:"button",role:"menuitem",className:"flex min-w-36 items-center gap-2 rounded-lg px-3 py-2 text-left transition-colors hover:bg-black/5 dark:hover:bg-white/10",onClick:()=>(e=>{Zt((t=>re(t,e.id))),Xt(e.message),requestAnimationFrame((()=>{const t=kn.current;t&&(t.focus(),t.setSelectionRange(e.message.length,e.message.length))}))})(e)},{children:[n($,{className:"h-4 w-4 shrink-0"}),(null==qe?void 0:qe["edit-message"])||"Edit message"]}))}))]}))]})]}),e.id)}))})),o("div",Object.assign({ref:On,className:J("relative z-10 flex flex-col w-full justify-end gap-y-3 py-[3px]","block"===He.formFieldStyle&&"shadow"),style:Object.assign(Object.assign({},Jn),{maxHeight:`${_n}px`,overflowY:"auto"})},{children:[Co&&o("div",Object.assign({className:"sticky top-0 z-10 flex w-full items-center justify-between border-b px-4 py-2.5 shadow-sm backdrop-blur-md",style:{backgroundColor:Jn.backgroundColor?`${Jn.backgroundColor}E6`:void 0,borderColor:We.text+"20",color:We.text,borderTopRightRadius:He.cornerRadius+"px",borderTopLeftRadius:He.cornerRadius+"px"}},{children:[n("div",Object.assign({className:"flex items-center gap-2 text-sm font-medium"},{children:o("span",{children:[ko.toLocaleString()," ",mo?(null==qe?void 0:qe.credits)||"Credits":(null==qe?void 0:qe.uses)||"Uses"," ",(null==qe?void 0:qe.remaining)||"remaining"]})})),o("div",Object.assign({className:"flex items-center gap-3"},{children:[Eo&&n("button",Object.assign({className:"rounded-md px-3 py-1.5 text-xs font-semibold transition-opacity hover:opacity-90",style:{backgroundColor:We.accent,color:We.accentText},onClick:e=>{if(e.preventDefault(),e.stopPropagation(),To)return void window.open(To,"_blank","noopener,noreferrer");if(lt)return void lt();const t=z({baseUrl:dn,accessGroupId:null==tt?void 0:tt.accessGroupId});t&&Q({deploymentId:Fe,pricingUrl:t,studioId:null==Ve?void 0:Ve.studioid,studioSessionToken:pt})}},{children:Uo})),n("button",Object.assign({className:"flex h-6 w-6 items-center justify-center rounded-full opacity-60 transition-opacity hover:opacity-100",onClick:()=>gn(!0)},{children:n("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:2,stroke:"currentColor",className:"h-4 w-4"},{children:n("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M6 18L18 6M6 6l12 12"})}))}))]}))]})),!vt&&kt.length>0&&n(B,{className:"p-4 pb-0",isDisabled:vt}),o("div",Object.assign({className:"relative flex w-full flex-col"},{children:[no&&o("div",Object.assign({className:J(ut?"top-6":"top-1/2","pointer-events-none absolute z-10 flex -translate-y-1/2 select-none items-center gap-x-2",Ye?"right-4":"left-4")},{children:[n("span",{className:"h-2 w-2 animate-pulse rounded-full bg-c-secondary",style:{backgroundColor:null!==(De=We.accent)&&void 0!==De?De:"#ff0000"}}),n("span",Object.assign({className:"text-sm text-c-secondary font-semilight",style:{color:We.text+"90"}},{children:(null==qe?void 0:qe.listening)||"Listening..."}))]})),n(X,Object.assign({ref:kn,className:J(qn.i1,"py-3.5 max-h-60 px-4 w-full border-transparent bg-transparent",!Bt.trim()&&!Bt.includes("\n")&&"overflow-hidden text-ellipsis whitespace-nowrap placeholder:whitespace-normal placeholder:overflow-visible",Ye?"text-right":"text-left",!ut&&lo&&"mb-12"),value:Bt,placeholder:no?"":ao,onChange:e=>{Xt(e)},onKeyDown:e=>{ze||Et||"Enter"===e.key&&(e.shiftKey||(e.preventDefault(),It||qt||(vt?$o():Bo())))},onPaste:e=>t(void 0,void 0,void 0,(function*(){const t=Array.from(e.clipboardData.files||[]);if(t.length>0){if(!eo)return;e.preventDefault(),nt(!1),yield St(t)}}))},ue&&{onFocus:ue},fe&&{onBlur:fe},{dir:Ye?"rtl":"ltr"})),o("div",Object.assign({ref:In,className:ut?"relative flex w-full items-center gap-2 px-3 pb-2 [&>button]:shrink-0 [&>button]:mr-0":J("flex items-center gap-2 absolute z-2 transition-all duration-200 ease-in-out",lo?"bottom-3 right-2":"right-0 top-1/2 -translate-y-1/2"),style:Object.assign(Object.assign({},!lo&&Jn.backgroundColor&&{backgroundColor:Jn.backgroundColor}),{borderTopRightRadius:He.cornerRadius+"px",borderBottomRightRadius:He.cornerRadius+"px"})},{children:[!vt&&!Tn&&eo&&o("button",Object.assign({className:"flex h-8 w-8 items-center justify-center rounded-full outline-none transition-colors duration-200 ease-in-out disabled:cursor-default",style:{backgroundColor:Fn?We.accent+"10":void 0,color:Fn?We.accent:We.accent+"80"},disabled:It||vt,"aria-label":null!==(Le=null==qe?void 0:qe["attach-files"])&&void 0!==Le?Le:"Attach files",onClick:()=>{var e;return null===(e=vn.current)||void 0===e?void 0:e.click()}},Gn,{children:[n("input",{id:"file-upload",ref:vn,type:"file",accept:[..._,...E,...T].join(", "),multiple:!0,hidden:!0,className:"hidden",onChange:e=>t(void 0,void 0,void 0,(function*(){nt(!1),yield St(Array.from(e.target.files||[])),e.target.value=""}))}),n(A,{className:"h-6 w-6 shrink-0"})]})),n(a,{compact:!0}),o(s,vt&&!zt?{children:[(Tn||Un)&&n("button",Object.assign({"aria-label":(null==qe?void 0:qe["stop-listening"])||"Stop listening",title:(null==qe?void 0:qe["stop-listening"])||"Stop listening",className:"flex h-8 w-8 items-center justify-center rounded-full outline-none transition-colors duration-200 ease-in-out",onClick:()=>{Rn()},disabled:Un,style:{backgroundColor:We.accent,color:We.accentText}},{children:n(D,{className:"h-5 w-5 shrink-0"})})),n("button",Object.assign({"aria-label":(null==qe?void 0:qe["stop-response"])||"Stop response",className:"flex h-8 w-8 items-center justify-center rounded-full outline-none transition-colors duration-200 ease-in-out",onClick:()=>{const e=xn.current;e&&(Mo(e),Lo(e)),yt("idle")},style:{backgroundColor:We.accent+"10",color:We.accent}},{children:n(M,{className:"h-4 w-4 shrink-0"})})),n("button",Object.assign({"aria-label":(null==qe?void 0:qe["queue-message"])||"Queue message",className:"flex h-8 w-8 items-center mr-2 justify-center rounded-full outline-none transition-colors duration-200 ease-in-out disabled:cursor-default",disabled:qt||It||!Bt.trim(),onClick:$o,style:{backgroundColor:Bt.trim()?We.accent:We.accent+"10",color:Bt.trim()?We.accentText:We.accent+"80"}},{children:n(P,{className:J("h-6 w-6 shrink-0",Ye&&"scale-x-[-1] transform")})}))]}:Tn||Un?{children:[n("button",Object.assign({"aria-label":(null==qe?void 0:qe["stop-listening"])||"Stop listening",className:"flex h-8 w-8 items-center mr-2 justify-center rounded-full outline-none transition-colors duration-200 ease-in-out",onClick:()=>{Rn()},disabled:Un,style:{backgroundColor:We.accent,color:We.accentText}},{children:n(M,{className:"h-4 w-4 shrink-0"})})),Bt.trim()&&n("button",Object.assign({"aria-label":(null==qe?void 0:qe["send-message"])||"Send message",className:"flex h-8 w-8 items-center mr-2 justify-center rounded-full outline-none transition-colors duration-200 ease-in-out disabled:cursor-default",disabled:!Po,onClick:()=>{Bo()},style:{backgroundColor:We.accent,color:We.accentText}},{children:n(P,{className:J("h-6 w-6 shrink-0",Ye&&"scale-x-[-1] transform")})}))]}:{children:[to&&n("button",Object.assign({className:"disabled:cursor-default flex h-8 w-8 items-center justify-center rounded-full outline-none transition-colors duration-200 ease-in-out",style:{backgroundColor:Tn?We.accent:Hn?We.accent+"10":void 0,color:Tn?We.accentText:Hn?We.accent:We.accent+"80"},disabled:It||vt||Un,onClick:()=>{Tn?Rn():(Ft(null),bn.current=Bt,Mn(Je||"en-US"))}},Wn,{children:n(D,{className:"h-5 w-5 shrink-0"})})),n("button",Object.assign({className:"flex h-8 w-8 items-center mr-2 justify-center rounded-full outline-none transition-colors duration-200 ease-in-out disabled:cursor-default",style:{backgroundColor:Bn||Po?We.accent:We.accent+"10",color:Bn||Po?We.accentText:We.accent+"80"},disabled:!Po,onClick:()=>Bo()},Xn,{children:n(P,{className:J("h-6 w-6 shrink-0",Ye&&"scale-x-[-1] transform")})}))]})]}))]}))]})),Ot&&n(K,{error:Ot,className:"mt-3"})]}))}))}));fe.displayName="Input";export{fe as default};
@@ -1 +1 @@
1
- import{__awaiter as e}from"../../../_virtual/_tslib.js";import{jsxs as t,jsx as o,Fragment as i}from"react/jsx-runtime";import{canChat as n}from"../../../common/canChat.js";import{useState as s,useRef as r,useEffect as a,useCallback as l}from"react";import{usePickaxeContext as c}from"../../../hooks/pickaxe/usePickaxeContext.js";import{useAuthContext as d}from"../Addons/Auth/hooks/useAuthContext.js";import{useDimensionContext as m}from"../../../hooks/pickaxe/useDimensionContext.js";import{useDocument as u}from"../Addons/Document/hooks/useDocument.js";import{useScroll as p}from"../Addons/Scroll/hooks/useScroll.js";import{useStyleFontSize as f}from"../../../hooks/studio/useStyleFontSize.js";import h from"../../../hooks/core/useScrollToBottomVisibility.js";import v from"./History/index.js";import g from"./Input.js";import b from"../../Icons/attach-vertical.svg.js";import x from"../../../common/cn.js";import{pickaxeApi2 as j}from"../../../common/api/pickaxe.js";import{v4 as k}from"uuid";import{StudioTip as y}from"../../Core/StudioTip.js";import w from"../common/ScrollToBottomButton.js";import I from"../common/PickaxeMCPButton.js";import{useResponseContext as D}from"../../../hooks/pickaxe/useResponseContext.js";import{NavPill as S,EditableNavPill as C,HistoryPill as T}from"../Addons/Navbar/NavPill.js";import N from"../../Icons/history.svg.js";const O=()=>{var O,A;const{deploymentType:P,isNewChat:F,setIsNewChat:B,sessionId:z,setSessionId:E,setLastSessionId:H,pickaxeId:R,sender:G,pickaxe:L,styles:V,isEmbed:_,mcpEnabled:M,translations:U}=c(),{isSent:W,token:q}=d(),{width:J,height:K,setDimension:Q}=m(),{setDocuments:X,onFileUpload:Y}=u(),{scrollContainerRef:Z,scrollToBottom:$}=p({listen:!1}),{isGenerating:ee,messages:te}=D(),oe=f(),[ie,ne]=s(0),[se,re]=s(!1),[ae,le]=s(!1),ce=r(null),de=r(null),me=r(0),[ue,pe]=s(null),[fe,he]=s(!1),ve=(null==U?void 0:U["new-chat"])||"New chat",ge=n(L),be=ge&&"chat-input"===P&&F&&!W,xe=ge&&null!==(A=null===(O=null==L?void 0:L.documentuploadtype)||void 0===O?void 0:O.startsWith("enduserupload"))&&void 0!==A&&A,{hasScrollableContent:je,isNearBottom:ke}=h(Z,{},[be]);a((()=>()=>{X([])}),[]);const ye=l((()=>{if(!R||!G&&!q)return;const t=(o=0)=>e(void 0,void 0,void 0,(function*(){var e;try{const t=yield j.post("/conversation/title",Object.assign({sessionId:z},q?{studioSessionToken:q}:G?{userId:G}:{}));if(t.data&&t.data.success){const e=t.data.title;if(e&&"Conversation Title"!==e)return void Ie(e)}else console.error("Failed to load conversation:",null===(e=t.data)||void 0===e?void 0:e.error)}catch(e){console.error("Error fetching conversation:",e)}o<20&&setTimeout((()=>t(o+1)),3e3)}));t()}),[R,G,z,q]);a((()=>{ee||F||!z||ye()}),[ee,F,z,ye]),a((()=>{if(!ce.current)return;const e=new ResizeObserver((e=>{for(const t of e){const{width:e,height:o}=t.contentRect;Q(parseInt(e.toFixed(0)),parseInt(o.toFixed(0)))}}));return e.observe(ce.current),()=>{e.disconnect()}}),[Q]);const[we,Ie]=s(ve),De=(null==L?void 0:L.formtitle)||"Pickaxe",Se=(null==L?void 0:L.coverphoto)||void 0,[Ce,Te]=s(!1);a((()=>{const e=!be&&!_&&V.portalTheme&&(te.filter((e=>"user"===e.role)).length>0||se||!F);Te(null!=e&&e)}),[be,_,se,F,te,V.portalTheme]);const Ne=l((()=>{$({force:!0,behavior:"auto"})}),[$]);return t("div",Object.assign({ref:ce,className:"relative flex h-full w-full flex-col items-center overflow-hidden",onDragEnter:e=>{e.preventDefault(),e.stopPropagation(),xe&&(me.current+=1,e.dataTransfer.items&&e.dataTransfer.items.length>0&&le(!0))},onDragLeave:e=>{e.preventDefault(),e.stopPropagation(),xe&&(me.current-=1,0===me.current&&le(!1))},onDragOver:e=>{e.preventDefault(),e.stopPropagation()},onDrop:t=>e(void 0,void 0,void 0,(function*(){if(t.preventDefault(),t.stopPropagation(),le(!1),me.current=0,!xe)return;const e=Array.from(t.dataTransfer.files||[]);e.length>0&&(B(!1),yield Y(e))}))},{children:[ae&&t("div",Object.assign({className:"absolute inset-0 z-50 flex flex-col items-center justify-center rounded-lg bg-white/80 backdrop-blur-sm transition-all duration-300"},{children:[o("div",Object.assign({className:"flex h-24 w-24 items-center justify-center rounded-full bg-white shadow-lg animate-bounce text-black"},{children:o(b,{className:"h-10 w-10"})})),o("h3",Object.assign({className:x(oe.h3,"mt-6 font-semibold text-c-primary text-black")},{children:(null==U?void 0:U["drop-files-to-upload"])||"Drop files to upload"})),o("p",Object.assign({className:x(oe.b2,"mt-2 opacity-60 text-black")},{children:(null==U?void 0:U["add-anything-to-the-conversation"])||"Add anything to the conversation"}))]})),!_&&M?o("div",Object.assign({className:"pointer-events-none absolute left-1/2 top-4 z-40 flex w-full max-w-[800px] -translate-x-1/2 justify-end px-4"},{children:o("div",Object.assign({className:"pointer-events-auto"},{children:o(I,{})}))})):null,be?o(g,{}):t(i,{children:[Ce&&t("div",Object.assign({className:x("direct-link"===P?"absolute top-4 left-4 md:top-6 md:left-6 z-40 flex items-center gap-2 animate-in fade-in slide-in-from-top-4 duration-500":"w-full max-w-3xl mt-6 px-4 md:px-0 flex justify-start z-30 mb-4 animate-in fade-in slide-in-from-top-4 duration-500 gap-2","dark"===V.portalTheme?"glass-dark ":"")},{children:[o(S,{text:De,icon:Se}),F||we===ve?o(S,{text:we}):o(C,{text:we,sessionId:z,onRename:t=>e(void 0,void 0,void 0,(function*(){if(z)try{yield j.patch("/conversation/title",Object.assign({sessionId:z,name:t},q?{studioSessionToken:q}:G?{userId:G}:{})),Ie(t)}catch(e){console.error("Error renaming chat:",e),alert((null==U?void 0:U["failed-rename-chat"])||"Failed to rename chat.")}})),onDelete:()=>e(void 0,void 0,void 0,(function*(){if(z&&window.confirm((null==U?void 0:U["delete-confirm"])||"Are you sure you want to delete this conversation?"))try{yield j.delete("/conversation",{data:Object.assign({sessionId:z},q?{studioSessionToken:q}:G?{userId:G}:{})}),B(!0),E(ge?k():""),Ie(ve)}catch(e){console.error("Error deleting chat:",e),alert((null==U?void 0:U["failed-delete-chat"])||"Failed to delete chat.")}})),isDarkGlass:"dark"===V.portalTheme}),o(y,Object.assign({content:U["chat-history"]||"Chat History",align:"bottom",containerClassName:"inline-flex shrink-0"},{children:o(T,{icon:o(N,{}),onClick:()=>{E(""),H(z)}})}))]})),o(v,{additionalScrollHeight:ie,isForceHideInfo:K<=545||J<=350||se,isInputFocused:se,onSubmit:t=>e(void 0,void 0,void 0,(function*(){ge&&de.current&&de.current.onSubmit(t)})),smitheryAuthData:ue,resubmitPrompt:()=>{pe(null),he(!0)}}),o(w,{isVisible:je&&!ke,bottom:ie+65,onClick:Ne}),ge&&o(g,{ref:de,onFocus:()=>re(!0),onBlur:()=>re(!1),onInputHeightChange:ne,initSmitheryAuthData:e=>pe(e),resubmitPrompt:fe})]})]}))};export{O as default};
1
+ import{__awaiter as e}from"../../../_virtual/_tslib.js";import{jsxs as t,jsx as o,Fragment as i}from"react/jsx-runtime";import{canChat as n}from"../../../common/canChat.js";import{useState as s,useRef as r,useEffect as a,useCallback as l}from"react";import{usePickaxeContext as c}from"../../../hooks/pickaxe/usePickaxeContext.js";import{useAuthContext as d}from"../Addons/Auth/hooks/useAuthContext.js";import{useDimensionContext as m}from"../../../hooks/pickaxe/useDimensionContext.js";import{useDocument as u}from"../Addons/Document/hooks/useDocument.js";import{useScroll as p}from"../Addons/Scroll/hooks/useScroll.js";import{useStyleFontSize as f}from"../../../hooks/studio/useStyleFontSize.js";import h from"../../../hooks/core/useScrollToBottomVisibility.js";import v from"./History/index.js";import g from"./Input.js";import b from"../../Icons/attach-vertical.svg.js";import x from"../../../common/cn.js";import{pickaxeApi2 as j}from"../../../common/api/pickaxe.js";import{v4 as k}from"uuid";import{StudioTip as y}from"../../Core/StudioTip.js";import w from"../common/ScrollToBottomButton.js";import I from"../common/PickaxeMCPButton.js";import{useResponseContext as D}from"../../../hooks/pickaxe/useResponseContext.js";import{NavPill as S,EditableNavPill as C,HistoryPill as T}from"../Addons/Navbar/NavPill.js";import N from"../../Icons/history.svg.js";const O=()=>{var O,A;const{deploymentType:P,isNewChat:F,setIsNewChat:B,sessionId:z,setSessionId:E,setLastSessionId:H,pickaxeId:R,sender:G,pickaxe:L,styles:V,isEmbed:_,mcpEnabled:M,translations:U}=c(),{isSent:W,token:q}=d(),{width:J,height:K,setDimension:Q}=m(),{setDocuments:X,onFileUpload:Y}=u(),{scrollContainerRef:Z,scrollToBottom:$}=p({listen:!1}),{isGenerating:ee,messages:te}=D(),oe=f(),[ie,ne]=s(0),[se,re]=s(!1),[ae,le]=s(!1),ce=r(null),de=r(null),me=r(0),[ue,pe]=s(null),[fe,he]=s(0),ve=(null==U?void 0:U["new-chat"])||"New chat",ge=n(L),be=ge&&"chat-input"===P&&F&&!W,xe=ge&&null!==(A=null===(O=null==L?void 0:L.documentuploadtype)||void 0===O?void 0:O.startsWith("enduserupload"))&&void 0!==A&&A,{hasScrollableContent:je,isNearBottom:ke}=h(Z,{},[be]);a((()=>()=>{X([])}),[]);const ye=l((()=>{if(!R||!G&&!q)return;const t=(o=0)=>e(void 0,void 0,void 0,(function*(){var e;try{const t=yield j.post("/conversation/title",Object.assign({sessionId:z},q?{studioSessionToken:q}:G?{userId:G}:{}));if(t.data&&t.data.success){const e=t.data.title;if(e&&"Conversation Title"!==e)return void Ie(e)}else console.error("Failed to load conversation:",null===(e=t.data)||void 0===e?void 0:e.error)}catch(e){console.error("Error fetching conversation:",e)}o<20&&setTimeout((()=>t(o+1)),3e3)}));t()}),[R,G,z,q]);a((()=>{ee||F||!z||ye()}),[ee,F,z,ye]),a((()=>{if(!ce.current)return;const e=new ResizeObserver((e=>{for(const t of e){const{width:e,height:o}=t.contentRect;Q(parseInt(e.toFixed(0)),parseInt(o.toFixed(0)))}}));return e.observe(ce.current),()=>{e.disconnect()}}),[Q]);const[we,Ie]=s(ve),De=(null==L?void 0:L.formtitle)||"Pickaxe",Se=(null==L?void 0:L.coverphoto)||void 0,[Ce,Te]=s(!1);a((()=>{const e=!be&&!_&&V.portalTheme&&(te.filter((e=>"user"===e.role)).length>0||se||!F);Te(null!=e&&e)}),[be,_,se,F,te,V.portalTheme]);const Ne=l((()=>{$({force:!0,behavior:"auto"})}),[$]);return t("div",Object.assign({ref:ce,className:"relative flex h-full w-full flex-col items-center overflow-hidden",onDragEnter:e=>{e.preventDefault(),e.stopPropagation(),xe&&(me.current+=1,e.dataTransfer.items&&e.dataTransfer.items.length>0&&le(!0))},onDragLeave:e=>{e.preventDefault(),e.stopPropagation(),xe&&(me.current-=1,0===me.current&&le(!1))},onDragOver:e=>{e.preventDefault(),e.stopPropagation()},onDrop:t=>e(void 0,void 0,void 0,(function*(){if(t.preventDefault(),t.stopPropagation(),le(!1),me.current=0,!xe)return;const e=Array.from(t.dataTransfer.files||[]);e.length>0&&(B(!1),yield Y(e))}))},{children:[ae&&t("div",Object.assign({className:"absolute inset-0 z-50 flex flex-col items-center justify-center rounded-lg bg-white/80 backdrop-blur-sm transition-all duration-300"},{children:[o("div",Object.assign({className:"flex h-24 w-24 items-center justify-center rounded-full bg-white shadow-lg animate-bounce text-black"},{children:o(b,{className:"h-10 w-10"})})),o("h3",Object.assign({className:x(oe.h3,"mt-6 font-semibold text-c-primary text-black")},{children:(null==U?void 0:U["drop-files-to-upload"])||"Drop files to upload"})),o("p",Object.assign({className:x(oe.b2,"mt-2 opacity-60 text-black")},{children:(null==U?void 0:U["add-anything-to-the-conversation"])||"Add anything to the conversation"}))]})),!_&&M?o("div",Object.assign({className:"pointer-events-none absolute left-1/2 top-4 z-40 flex w-full max-w-[800px] -translate-x-1/2 justify-end px-4"},{children:o("div",Object.assign({className:"pointer-events-auto"},{children:o(I,{})}))})):null,be?o(g,{}):t(i,{children:[Ce&&t("div",Object.assign({className:x("direct-link"===P?"absolute top-4 left-4 md:top-6 md:left-6 z-40 flex items-center gap-2 animate-in fade-in slide-in-from-top-4 duration-500":"w-full max-w-3xl mt-6 px-4 md:px-0 flex justify-start z-30 mb-4 animate-in fade-in slide-in-from-top-4 duration-500 gap-2","dark"===V.portalTheme?"glass-dark ":"")},{children:[o(S,{text:De,icon:Se}),F||we===ve?o(S,{text:we}):o(C,{text:we,sessionId:z,onRename:t=>e(void 0,void 0,void 0,(function*(){if(z)try{yield j.patch("/conversation/title",Object.assign({sessionId:z,name:t},q?{studioSessionToken:q}:G?{userId:G}:{})),Ie(t)}catch(e){console.error("Error renaming chat:",e),alert((null==U?void 0:U["failed-rename-chat"])||"Failed to rename chat.")}})),onDelete:()=>e(void 0,void 0,void 0,(function*(){if(z&&window.confirm((null==U?void 0:U["delete-confirm"])||"Are you sure you want to delete this conversation?"))try{yield j.delete("/conversation",{data:Object.assign({sessionId:z},q?{studioSessionToken:q}:G?{userId:G}:{})}),B(!0),E(ge?k():""),Ie(ve)}catch(e){console.error("Error deleting chat:",e),alert((null==U?void 0:U["failed-delete-chat"])||"Failed to delete chat.")}})),isDarkGlass:"dark"===V.portalTheme}),o(y,Object.assign({content:U["chat-history"]||"Chat History",align:"bottom",containerClassName:"inline-flex shrink-0"},{children:o(T,{icon:o(N,{}),onClick:()=>{E(""),H(z)}})}))]})),o(v,{additionalScrollHeight:ie,isForceHideInfo:K<=545||J<=350||se,isInputFocused:se,onSubmit:t=>e(void 0,void 0,void 0,(function*(){ge&&de.current&&de.current.onSubmit(t)})),smitheryAuthData:ue,resubmitPrompt:()=>{pe(null),he((e=>e+1))}}),o(w,{isVisible:je&&!ke,bottom:ie+65,onClick:Ne}),ge&&o(g,{ref:de,onFocus:()=>re(!0),onBlur:()=>re(!1),onInputHeightChange:ne,initSmitheryAuthData:e=>pe(e),resubmitPrompt:fe})]})]}))};export{O as default};
@@ -1 +1 @@
1
- import{__awaiter as e}from"../../../../_virtual/_tslib.js";import{jsx as t,jsxs as s}from"react/jsx-runtime";import{getFormQuestionError as n}from"../../../../common/formQuestionValidation.js";import{useEndUserModel as i}from"../../../../hooks/pickaxe/useEndUserModel.js";import o from"../../common/EndUserModelPicker.js";import{updateStreamTextPart as r,upsertActionApprovalPart as a}from"../../../../common/actionApproval.js";import{useState as l,useRef as d,useMemo as c}from"react";import{usePickaxeContext as u}from"../../../../hooks/pickaxe/usePickaxeContext.js";import{useAuthContext as p}from"../../Addons/Auth/hooks/useAuthContext.js";import{useResponseContext as m}from"../../../../hooks/pickaxe/useResponseContext.js";import{useDocument as f}from"../../Addons/Document/hooks/useDocument.js";import{useScroll as g}from"../../Addons/Scroll/hooks/useScroll.js";import{useArtifactContext as v}from"../../Addons/Artifact/hooks/useArtifactContext.js";import{extractUrlsFromText as h,initializeEmbedUserId as b}from"../../../../common/utils.js";import{createParser as j}from"eventsource-parser";import y from"../../common/PickaxeBranding.js";import O from"../../common/PickaxeButton.js";import x from"../../../../common/error.js";import{getValidationFailure as w}from"../../../../common/validation.js";const k=({navigation:k,paged:I=!1,questions:S,resetQuestions:A,onInvalidQuestion:C})=>{var E;const{origin:N,pickaxeId:P,sender:_,senderType:T,portalId:U,deploymentId:D,pickaxe:L,misc:q,translations:B,isRtl:J,setSessionId:R,setIsNewChat:V,setValidationStatus:K,setValidationUpgradeGroups:W,setValidationUpgradeUrl:X,setAccessGroup:G,onGenerateComplete:M}=u(),{value:$}=i(),{token:Q}=p(),{isGenerating:F,setResponse:Y,setMessages:z,setStatus:H,setLimitData:Z,setError:ee,setActionApprovalToken:te,setIsSwitchedToChat:se}=m(),{documents:ne,websiteLink:ie,isUploading:oe,onWebsiteUpload:re,setDocuments:ae,setDocumentError:le}=f(),{scrollStartSession:de,scrollEndSession:ce,scrollToTarget:ue}=g({auto:!(null==L?void 0:L.enablechatresponses)}),{artifacts:pe,currentPopupType:me,setArtifacts:fe,setCurrentArtifact:ge}=v(),[ve,he]=l(!1),[be,je]=l(!1),ye=d(null),Oe=e=>{const t=w(e);return!!t&&(ee(""),Z(null),K(t.status),G(t.accessGroup),W(t.upgradeGroups),X(t.upgradeUrl),!0)},xe=c((()=>S.some((e=>("Short Answer"===e.type||"Long Answer"===e.type||"long"===e.type||"short"===e.type||"Checkbox"===e.type||"Knowledge Upload"===e.type||e.id.includes("documentupload"))&&e.input.length>0))),[S])&&t(O,Object.assign({variant:"transparent-text",className:"min-h-[42px] px-5",isDisabled:oe||F||ve,onClick:A},{children:(null==B?void 0:B["form.clear-form"])||(null==B?void 0:B["clear-form"])||"Clear form"}));return s("div",Object.assign({className:I?"flex flex-col gap-4":"mt-4 flex flex-wrap justify-between gap-4 items-center",dir:J?"rtl":"ltr"},{children:[I&&t(o,{}),s("div",Object.assign({className:I?"flex flex-wrap items-center justify-end gap-2":"flex items-center flex-grow flex-wrap gap-2"},{children:[!I&&t(o,{}),I&&k&&t("div",Object.assign({className:"me-auto shrink-0"},{children:k})),I&&xe,t(O,Object.assign({className:"px-5 min-h-[42px]",isDisabled:oe||F||ve,onClick:()=>e(void 0,void 0,void 0,(function*(){var e,t,s,i,o;try{if(F||oe||ve)return;ee(""),le(""),Z(null),Y(null);for(const t of S){const s=n(t);if(s)throw null==C||C(t.id),new Error(null!==(e=null==B?void 0:B[s])&&void 0!==e?e:"response-too-long"===s?"One or more of your responses is too long!":"You must fill out all required fields.")}const l=ne.filter((e=>"finished"===e.status)),d=ne.map((e=>e.name)),c=null!==(s=null===(t=null==L?void 0:L.documentuploadtype)||void 0===t?void 0:t.startsWith("enduserupload"))&&void 0!==s&&s,u=S.some((e=>"userinput:documentupload"===e.id&&e.isRequired)),p=h(ie).filter((e=>!d.includes(e)));if(p.length){const e=p[p.length-1];he(!0);const t=yield re(e);t&&(l.push(t),yield new Promise((e=>setTimeout(e,5e3)))),he(!1)}else if(u&&c&&!l.length)return null==C||C("userinput:documentupload"),void le((null==B?void 0:B["document-upload-required"])||"Please paste a valid website/video link or drag a file to add to the knowledge base.");const m=l.map((e=>e.documentId||"")).filter(Boolean),f=c&&m.length>0,g={};S.forEach((e=>{g[e.id]="Knowledge Upload"===e.type||e.id.includes("documentupload")?l.map((e=>e.name)).join(",")||"":e.input})),je(!1),H("fetching"),de(),ue();const v=yield fetch(`${process.env.NEXT_PUBLIC_PICKAXE_API2_URL}/response/submit`,{method:"POST",headers:Object.assign(Object.assign({"Content-Type":"application/json"},process.env.NEXT_PUBLIC_PICKAXE_SESSION_TOKEN&&{"x-pickaxe-session-token":process.env.NEXT_PUBLIC_PICKAXE_SESSION_TOKEN}),{"x-request-sent-at":(new Date).toISOString()}),body:JSON.stringify(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({supportsActionConfirmation:!0,selectedModel:$||void 0,origin:N,pickaxeId:P,senderType:T,valueObj:g},f&&{documentIds:m}),_&&{sender:_}),Q&&{studioSessionToken:Q}),!Q&&!_&&{sender:b()}),U&&{portalId:U}),D&&{deploymentId:D}))}),y=yield v.json();if(!y.success){const e=new Error(y.error||y.message||(null==B?void 0:B["failed-to-start-generation"])||"Failed to start generation");if(y.limitData)throw e.limitData=y.limitData,e;if(Oe(y))return;throw e}if(!y.submissionId||!y.sessionId)throw new Error((null==B?void 0:B["failed-to-start-generation"])||"Failed to start generation");te(null!==(i=y.actionApprovalToken)&&void 0!==i?i:null);const O=y.submissionId,x=y.sessionId,w={sessionId:x,documentIds:f?m:[],question:{inputs:S.map((e=>({id:e.id,question:e.main,answer:e.input}))),responseParts:[]},messageCount:0,sentAt:new Date};Y(w),(null==L?void 0:L.enablechatresponses)&&(R(x),V(!1),se(!0),z([{id:0,role:"assistant",parts:[],documentIds:[],responseReference:"form-result"}])),f&&ae([]),H("streaming"),ye.current=new AbortController;const k=[];let I=[...null!=pe?pe:[]],A=0,E=!1,q="";for(;!E;)try{const e=yield fetch(`${process.env.NEXT_PUBLIC_PICKAXE_API2_URL}/response/stream/${O}?index=${A}`,{signal:null===(o=ye.current)||void 0===o?void 0:o.signal,headers:{"Cache-Control":"no-cache",Connection:"keep-alive"}});if(!e.body)throw new Error("No response body");const t=e.body.getReader(),s=new TextDecoder,n=j({onEvent:e=>{var t,s;if(e.event&&"ping"!==e.event&&A++,"stop"!==e.event){if("error"===e.event){const t=JSON.parse(e.data);if(t.limitData)return Z(t.limitData),ee(""),void(E=!0);const s=t.error||t.message||(null==B?void 0:B["something-went-wrong"])||"Something went wrong.";return Oe(t)||ee(s),void(E=!0)}if("delta"===e.event){const n=JSON.parse(e.data);if("finish"===n.type)return void je(!0);if("text-start"===n.type)q="",k.push({type:"text",content:"",isVisible:null===(t=n.isVisible)||void 0===t||t});else if("text-delta"===n.type)q+=n.delta,r(k,"text",q);else if("text-end"===n.type)q="";else if("reasoning-start"===n.type)q="",k.push({type:"reasoning",content:"",isVisible:null===(s=n.isVisible)||void 0===s||s});else if("reasoning-delta"===n.type)q+=n.delta,r(k,"reasoning",q);else if("reasoning-end"===n.type)q="";else if(n.type.startsWith("data-")){const e=n;"data-action-approval"===e.type?a(k,e.data):k.push({type:e.type,content:JSON.stringify(e.data),isVisible:!0})}const i=Object.assign(Object.assign({},w),{question:Object.assign(Object.assign({},w.question),{responseParts:[...k]})});Y(i),(null==L?void 0:L.enablechatresponses)&&z([{id:0,responseReference:"form-result",role:"assistant",parts:[...k],documentIds:[]}])}else if("artifact_created"===e.event){const t=JSON.parse(e.data);I=I.filter((e=>!(e.id===t.id&&e.version===t.version))),I.push(Object.assign(Object.assign({},t),{content:"",status:"streaming"})),fe([...I]),me.startsWith("inline")||ge({id:t.id,version:t.version})}else if("artifact_updated"===e.event){const t=JSON.parse(e.data);I=I.filter((e=>!(e.id===t.id&&e.version===t.version))),I.push(Object.assign(Object.assign({},t),{content:"",status:"updating"})),fe([...I]),me.startsWith("inline")||ge({id:t.id,version:t.version})}else if("artifact_rewrite"===e.event){const t=JSON.parse(e.data);I=I.filter((e=>!(e.id===t.id&&e.version===t.version))),I.push(Object.assign(Object.assign({},t),{content:"",status:"streaming"})),fe([...I]),me.startsWith("inline")||ge({id:t.id,version:t.version})}else if("artifact_content"===e.event){const t=JSON.parse(e.data),s=t.token.replace(/\u200B/g,"");I=I.map((e=>e.id===t.id&&e.version===t.version?Object.assign(Object.assign({},e),{content:e.content+s,status:"streaming"}):e)),fe([...I])}else if("artifact_finished"===e.event){const t=JSON.parse(e.data);fe(I.map((e=>e.id===t.id?Object.assign(Object.assign({},e),{status:"finished"}):e)))}}else E=!0}});for(;;){const{value:e,done:i}=yield t.read();if(i)break;n.feed(s.decode(e))}E||(yield new Promise((e=>setTimeout(e,1e3))))}catch(e){if(e instanceof Error&&"AbortError"===e.name)return void(E=!0);console.warn("Stream connection lost, retrying...",e),yield new Promise((e=>setTimeout(e,1e3)))}null==M||M(x)}catch(e){if((e=>e instanceof Error&&Boolean(e.limitData))(e))return Z(e.limitData),ee(""),void ue();let t=x(e)||"";t&&!t.includes("Unexpected token 'A',")||(t=(null==B?void 0:B["high-traffic-try-again-later"])||"Oops! We're experiencing high traffic at the moment. Please try again later."),Oe(t)||ee(t),ue()}finally{H("idle"),he(!1),ce()}}))},{children:ve?(null==B?void 0:B.processing)||"Processing...":oe?(null==B?void 0:B.uploading)||"Uploading...":F&&!be?(null==B?void 0:B.loading)||"Loading...":null!==(E=null==L?void 0:L.submittext)&&void 0!==E?E:"Submit"})),!I&&xe]})),!q.isWhiteLabel&&t(y,{containerClassName:"justify-end"})]}))};export{k as default};
1
+ import{__awaiter as e}from"../../../../_virtual/_tslib.js";import{jsx as t,jsxs as s}from"react/jsx-runtime";import{getFormQuestionError as n}from"../../../../common/formQuestionValidation.js";import{useEndUserModel as o}from"../../../../hooks/pickaxe/useEndUserModel.js";import i from"../../common/EndUserModelPicker.js";import{updateStreamTextPart as r,upsertActionApprovalPart as a}from"../../../../common/actionApproval.js";import{useState as l,useRef as d,useMemo as c}from"react";import{usePickaxeContext as p}from"../../../../hooks/pickaxe/usePickaxeContext.js";import{useAuthContext as u}from"../../Addons/Auth/hooks/useAuthContext.js";import{useResponseContext as m}from"../../../../hooks/pickaxe/useResponseContext.js";import{useDocument as f}from"../../Addons/Document/hooks/useDocument.js";import{useScroll as g}from"../../Addons/Scroll/hooks/useScroll.js";import{useArtifactContext as v}from"../../Addons/Artifact/hooks/useArtifactContext.js";import{extractUrlsFromText as h,initializeEmbedUserId as b}from"../../../../common/utils.js";import{createParser as y}from"eventsource-parser";import j from"../../common/PickaxeBranding.js";import O from"../../common/PickaxeButton.js";import x from"../../../../common/error.js";import{getValidationFailure as w}from"../../../../common/validation.js";const k=({navigation:k,paged:I=!1,questions:S,resetQuestions:_,onInvalidQuestion:C})=>{var A;const{origin:E,pickaxeId:N,sender:P,senderType:T,portalId:U,deploymentId:D,pickaxe:L,misc:q,translations:B,isRtl:J,setSessionId:R,setIsNewChat:V,setValidationStatus:K,setValidationUpgradeGroups:W,setValidationUpgradeUrl:X,setAccessGroup:G,onGenerateComplete:M}=p(),{value:$}=o(),{token:Q}=u(),{isGenerating:z,setResponse:F,setMessages:Y,setStatus:H,setLimitData:Z,setError:ee,setActionApprovalToken:te,setIsSwitchedToChat:se}=m(),{documents:ne,websiteLink:oe,isUploading:ie,onWebsiteUpload:re,setDocuments:ae,setDocumentError:le}=f(),{scrollStartSession:de,scrollEndSession:ce,scrollToTarget:pe}=g({auto:!(null==L?void 0:L.enablechatresponses)}),{artifacts:ue,currentPopupType:me,setArtifacts:fe,setCurrentArtifact:ge}=v(),[ve,he]=l(!1),[be,ye]=l(!1),je=d(null),Oe=e=>{const t=w(e);return!!t&&(ee(""),Z(null),K(t.status),G(t.accessGroup),W(t.upgradeGroups),X(t.upgradeUrl),!0)},xe=c((()=>S.some((e=>("Short Answer"===e.type||"Long Answer"===e.type||"long"===e.type||"short"===e.type||"Checkbox"===e.type||"Knowledge Upload"===e.type||e.id.includes("documentupload"))&&e.input.length>0))),[S])&&t(O,Object.assign({variant:"transparent-text",className:"min-h-[42px] px-5",isDisabled:ie||z||ve,onClick:_},{children:(null==B?void 0:B["form.clear-form"])||(null==B?void 0:B["clear-form"])||"Clear form"}));return s("div",Object.assign({className:I?"flex flex-col gap-4":"mt-4 flex flex-wrap justify-between gap-4 items-center",dir:J?"rtl":"ltr"},{children:[I&&t(i,{}),s("div",Object.assign({className:I?"flex flex-wrap items-center justify-end gap-2":"flex items-center flex-grow flex-wrap gap-2"},{children:[!I&&t(i,{}),I&&k&&t("div",Object.assign({className:"me-auto shrink-0"},{children:k})),I&&xe,t(O,Object.assign({className:"px-5 min-h-[42px]",isDisabled:ie||z||ve,onClick:()=>e(void 0,void 0,void 0,(function*(){var e,t,s,o,i;try{if(z||ie||ve)return;ee(""),le(""),Z(null),F(null);for(const t of S){const s=n(t);if(s)throw null==C||C(t.id),new Error(null!==(e=null==B?void 0:B[s])&&void 0!==e?e:"response-too-long"===s?"One or more of your responses is too long!":"You must fill out all required fields.")}const l=ne.filter((e=>"finished"===e.status)),d=ne.map((e=>e.name)),c=null!==(s=null===(t=null==L?void 0:L.documentuploadtype)||void 0===t?void 0:t.startsWith("enduserupload"))&&void 0!==s&&s,p=S.some((e=>"userinput:documentupload"===e.id&&e.isRequired)),u=h(oe).filter((e=>!d.includes(e)));if(u.length){const e=u[u.length-1];he(!0);const t=yield re(e);t&&(l.push(t),yield new Promise((e=>setTimeout(e,5e3)))),he(!1)}else if(p&&c&&!l.length)return null==C||C("userinput:documentupload"),void le((null==B?void 0:B["document-upload-required"])||"Please paste a valid website/video link or drag a file to add to the knowledge base.");const m=l.map((e=>e.documentId||"")).filter(Boolean),f=c&&m.length>0,g={};S.forEach((e=>{g[e.id]="Knowledge Upload"===e.type||e.id.includes("documentupload")?l.map((e=>e.name)).join(",")||"":e.input})),ye(!1),H("fetching"),de(),pe();const v=yield fetch(`${process.env.NEXT_PUBLIC_PICKAXE_API2_URL}/response/submit`,{method:"POST",headers:Object.assign(Object.assign({"Content-Type":"application/json"},process.env.NEXT_PUBLIC_PICKAXE_SESSION_TOKEN&&{"x-pickaxe-session-token":process.env.NEXT_PUBLIC_PICKAXE_SESSION_TOKEN}),{"x-request-sent-at":(new Date).toISOString()}),body:JSON.stringify(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({supportsActionConfirmation:!0,selectedModel:$||void 0,origin:E,pickaxeId:N,senderType:T,valueObj:g},f&&{documentIds:m}),P&&{sender:P}),Q&&{studioSessionToken:Q}),!Q&&!P&&{sender:b()}),U&&{portalId:U}),D&&{deploymentId:D}))}),j=yield v.json();if(!j.success){const e=new Error(j.error||j.message||(null==B?void 0:B["failed-to-start-generation"])||"Failed to start generation");if(j.limitData)throw e.limitData=j.limitData,e;if(Oe(j))return;throw e}if(!j.submissionId||!j.sessionId)throw new Error((null==B?void 0:B["failed-to-start-generation"])||"Failed to start generation");te(null!==(o=j.actionApprovalToken)&&void 0!==o?o:null);const O=j.submissionId,x=j.sessionId,w={sessionId:x,documentIds:f?m:[],question:{inputs:S.map((e=>({id:e.id,question:e.main,answer:e.input}))),responseParts:[]},messageCount:0,sentAt:new Date};F(w),(null==L?void 0:L.enablechatresponses)&&(R(x),V(!1),se(!0),Y([{id:0,role:"assistant",parts:[],documentIds:[],responseReference:"form-result"}])),f&&ae([]),H("streaming"),je.current=new AbortController;const k=[];let I=[...null!=ue?ue:[]],_=0,A=!1,q="";for(;!A;)try{const e=yield fetch(`${process.env.NEXT_PUBLIC_PICKAXE_API2_URL}/response/stream/${O}?index=${_}`,{signal:null===(i=je.current)||void 0===i?void 0:i.signal,headers:{"Cache-Control":"no-cache",Connection:"keep-alive"}});if(!e.body)throw new Error("No response body");const t=e.body.getReader(),s=new TextDecoder,n=y({onEvent:e=>{var t,s,n;if(e.event&&"ping"!==e.event&&_++,"stop"!==e.event){if("error"===e.event){const t=JSON.parse(e.data);if(t.limitData)return Z(t.limitData),ee(""),void(A=!0);const s=t.error||t.message||(null==B?void 0:B["something-went-wrong"])||"Something went wrong.";return Oe(t)||ee(s),void(A=!0)}if("delta"===e.event){const o=JSON.parse(e.data);if("data-error"===o.type){const e=null===(t=o.data)||void 0===t?void 0:t.error;if("object"==typeof e&&null!==e){const t=e;if("mcp_auth_expired"===t.type||"mcp_owner_connection_required"===t.type||"mcp_connection_check_failed"===t.type)return ee("string"==typeof t.message?t.message:(null==B?void 0:B["something-went-wrong"])||"Something went wrong."),void(A=!0);if("unauthorized_composio"===t.type||"unauthorized_smithery"===t.type)return ee((null==B?void 0:B["mcp-connect-in-chat-before-form"])||"Connect this integration in chat before submitting this form."),void(A=!0)}}if("finish"===o.type)return void ye(!0);if("text-start"===o.type)q="",k.push({type:"text",content:"",isVisible:null===(s=o.isVisible)||void 0===s||s});else if("text-delta"===o.type)q+=o.delta,r(k,"text",q);else if("text-end"===o.type)q="";else if("reasoning-start"===o.type)q="",k.push({type:"reasoning",content:"",isVisible:null===(n=o.isVisible)||void 0===n||n});else if("reasoning-delta"===o.type)q+=o.delta,r(k,"reasoning",q);else if("reasoning-end"===o.type)q="";else if(o.type.startsWith("data-")){const e=o;"data-action-approval"===e.type?a(k,e.data):k.push({type:e.type,content:JSON.stringify(e.data),isVisible:!0})}const i=Object.assign(Object.assign({},w),{question:Object.assign(Object.assign({},w.question),{responseParts:[...k]})});F(i),(null==L?void 0:L.enablechatresponses)&&Y([{id:0,responseReference:"form-result",role:"assistant",parts:[...k],documentIds:[]}])}else if("artifact_created"===e.event){const t=JSON.parse(e.data);I=I.filter((e=>!(e.id===t.id&&e.version===t.version))),I.push(Object.assign(Object.assign({},t),{content:"",status:"streaming"})),fe([...I]),me.startsWith("inline")||ge({id:t.id,version:t.version})}else if("artifact_updated"===e.event){const t=JSON.parse(e.data);I=I.filter((e=>!(e.id===t.id&&e.version===t.version))),I.push(Object.assign(Object.assign({},t),{content:"",status:"updating"})),fe([...I]),me.startsWith("inline")||ge({id:t.id,version:t.version})}else if("artifact_rewrite"===e.event){const t=JSON.parse(e.data);I=I.filter((e=>!(e.id===t.id&&e.version===t.version))),I.push(Object.assign(Object.assign({},t),{content:"",status:"streaming"})),fe([...I]),me.startsWith("inline")||ge({id:t.id,version:t.version})}else if("artifact_content"===e.event){const t=JSON.parse(e.data),s=t.token.replace(/\u200B/g,"");I=I.map((e=>e.id===t.id&&e.version===t.version?Object.assign(Object.assign({},e),{content:e.content+s,status:"streaming"}):e)),fe([...I])}else if("artifact_finished"===e.event){const t=JSON.parse(e.data);fe(I.map((e=>e.id===t.id?Object.assign(Object.assign({},e),{status:"finished"}):e)))}}else A=!0}});for(;;){const{value:e,done:o}=yield t.read();if(o)break;n.feed(s.decode(e))}A||(yield new Promise((e=>setTimeout(e,1e3))))}catch(e){if(e instanceof Error&&"AbortError"===e.name)return void(A=!0);console.warn("Stream connection lost, retrying...",e),yield new Promise((e=>setTimeout(e,1e3)))}null==M||M(x)}catch(e){if((e=>e instanceof Error&&Boolean(e.limitData))(e))return Z(e.limitData),ee(""),void pe();let t=x(e)||"";t&&!t.includes("Unexpected token 'A',")||(t=(null==B?void 0:B["high-traffic-try-again-later"])||"Oops! We're experiencing high traffic at the moment. Please try again later."),Oe(t)||ee(t),pe()}finally{H("idle"),he(!1),ce()}}))},{children:ve?(null==B?void 0:B.processing)||"Processing...":ie?(null==B?void 0:B.uploading)||"Uploading...":z&&!be?(null==B?void 0:B.loading)||"Loading...":null!==(A=null==L?void 0:L.submittext)&&void 0!==A?A:"Submit"})),!I&&xe]})),!q.isWhiteLabel&&t(j,{containerClassName:"justify-end"})]}))};export{k as default};
@@ -1 +1 @@
1
- import{__awaiter as e}from"../../../_virtual/_tslib.js";import{jsxs as o,jsx as t}from"react/jsx-runtime";import{useState as i,useRef as n,useMemo as r,useEffect as s}from"react";import c from"../../../common/error.js";import{Client as l}from"../../../node_modules/.pnpm/@modelcontextprotocol_sdk@1.20.2/node_modules/@modelcontextprotocol/sdk/dist/esm/client/index.js";import{StreamableHTTPClientTransport as a}from"../../../node_modules/.pnpm/@modelcontextprotocol_sdk@1.20.2/node_modules/@modelcontextprotocol/sdk/dist/esm/client/streamableHttp.js";import d from"../../Core/Button.js";import m from"../../Core/ErrorAlert.js";import{SmitheryAuthProvider as u}from"./SmitheryAuthProvider.js";import{v4 as p}from"uuid";import{api2 as h}from"../../../common/api/api.js";import{pickaxeApi2 as v,isPickaxeDomain as f}from"../../../common/api/pickaxe.js";import{usePickaxeContext as g}from"../../../hooks/pickaxe/usePickaxeContext.js";import{encryptFernet as x}from"../../../common/fernet.js";const b=({serverId:b,smitheryId:j,name:_,resubmitPrompt:k})=>{const{sender:y,translations:O,colors:N}=g(),[I,E]=i(!0),[S,C]=i(!1),[w,P]=i(null),T=n(null),A=r((()=>p()),[]);s((()=>{let o=null;return S&&(o=setInterval((()=>e(void 0,void 0,void 0,(function*(){const e=yield h.post("/oauth/handshake/check",{sessionId:A}),{success:t,code:i}=e.data;if("failed"===i)return P((null==O?void 0:O["auth-failed"])||"Auth failed"),C(!1),void(o&&clearInterval(o));if(i&&t){o&&clearInterval(o);try{if(!T.current)throw new Error("Transport not available for finalization.");yield T.current.finishAuth(i)}catch(e){return console.error(e),P((null==O?void 0:O["failed-to-finalize-authentication"])||"Failed to finalize authentication."),void C(!1)}const e=localStorage.getItem("mcp_tokens"),t=localStorage.getItem("mcp_client");e&&t&&L(JSON.parse(e),JSON.parse(t))}}))),1e3)),()=>{o&&clearInterval(o)}}),[S]);const L=(o,t)=>e(void 0,void 0,void 0,(function*(){try{yield v.post("/mcp/user/save",{tokens:yield x(JSON.stringify(o)),clientId:t.client_id,serverId:b,userId:y},Object.assign(Object.assign({},(!process.env.NODE_ENV||"development"===process.env.NODE_ENV)&&Object.assign({},process.env.NEXT_PUBLIC_PICKAXE_SESSION_TOKEN&&{headers:{"x-pickaxe-session-token":process.env.NEXT_PUBLIC_PICKAXE_SESSION_TOKEN}})),f&&{credentials:"include"})),localStorage.removeItem("mcp_tokens"),localStorage.removeItem("mcp_client"),E(!1),k()}catch(e){P(c(e))}}));return I?o("div",Object.assign({className:"w-full bg-white border border-c-sep rounded-lg shadow-sm p-4 flex flex-col gap-4"},{children:[o("div",Object.assign({className:"flex flex-col gap-1"},{children:[t("h3",Object.assign({className:"font-semibold text-black/80 text-lg"},{children:(null==O?void 0:O["authentication-required"])||"Authentication Required"})),o("p",Object.assign({className:"text-black/60 text-sm"},{children:[(null==O?void 0:O["smithery-auth-description-prefix"])||"The tool you are trying to use requires authentication with"," ",t("span",Object.assign({className:"font-semibold text-black/80"},{children:_||j})),"."]}))]})),w&&t(m,{error:w}),o("div",Object.assign({className:"flex justify-end gap-2"},{children:[t(d,Object.assign({variant:"secondary",onClick:()=>E(!1),className:"text-sm px-3 h-9"},{children:(null==O?void 0:O.dismiss)||"Dismiss"})),t(d,Object.assign({variant:"primary",loadingText:(null==O?void 0:O.connecting)||"Connecting...",isLoading:S,style:{borderColor:N.accent,backgroundColor:N.accent,color:N.accentText},onClick:()=>e(void 0,void 0,void 0,(function*(){if(!S)if("LOGGED OUT"!==y)try{P(null),C(!0);const e=new u(A),o=new a(new URL(`https://server.smithery.ai/${j}/mcp`),{authProvider:e});T.current=o;const t=new l({name:"Pickaxe",version:"1.0.0"});yield t.connect(o)}catch(e){console.log(c(e))}else P((null==O?void 0:O["must-be-logged-in-to-connect-smithery"])||"You must be logged in to connect Smithery MCPs.")})),className:"text-sm px-3 h-9 hover:opacity-90"},{children:(null==O?void 0:O.connect)||"Connect"}))]}))]})):null};export{b as default};
1
+ import{__awaiter as e}from"../../../_virtual/_tslib.js";import{jsxs as o,jsx as t}from"react/jsx-runtime";import{useState as i,useRef as n,useMemo as s,useEffect as r}from"react";import c from"../../../common/error.js";import{Client as l}from"../../../node_modules/.pnpm/@modelcontextprotocol_sdk@1.20.2/node_modules/@modelcontextprotocol/sdk/dist/esm/client/index.js";import{StreamableHTTPClientTransport as a}from"../../../node_modules/.pnpm/@modelcontextprotocol_sdk@1.20.2/node_modules/@modelcontextprotocol/sdk/dist/esm/client/streamableHttp.js";import d from"../../Core/Button.js";import m from"../../Core/ErrorAlert.js";import{SmitheryAuthProvider as u}from"./SmitheryAuthProvider.js";import{v4 as p}from"uuid";import{api2 as h}from"../../../common/api/api.js";import{pickaxeApi2 as v,isPickaxeDomain as f}from"../../../common/api/pickaxe.js";import{usePickaxeContext as g}from"../../../hooks/pickaxe/usePickaxeContext.js";import{useAuthContext as x}from"../Addons/Auth/hooks/useAuthContext.js";import{encryptFernet as b}from"../../../common/fernet.js";const j=({serverId:j,smitheryId:k,name:O,resubmitPrompt:_})=>{const{sender:y,pickaxe:I,translations:N,colors:E}=g(),{token:S}=x(),[C,T]=i(!0),[w,A]=i(!1),[P,L]=i(null),D=n(null),U=s((()=>p()),[]);r((()=>{let o=null;return w&&(o=setInterval((()=>e(void 0,void 0,void 0,(function*(){const e=yield h.post("/oauth/handshake/check",{sessionId:U}),{success:t,code:i}=e.data;if("failed"===i)return L((null==N?void 0:N["auth-failed"])||"Auth failed"),A(!1),void(o&&clearInterval(o));if(i&&t){o&&clearInterval(o);try{if(!D.current)throw new Error("Transport not available for finalization.");yield D.current.finishAuth(i)}catch(e){return console.error(e),L((null==N?void 0:N["failed-to-finalize-authentication"])||"Failed to finalize authentication."),void A(!1)}const e=localStorage.getItem("mcp_tokens"),t=localStorage.getItem("mcp_client");e&&t&&G(JSON.parse(e),JSON.parse(t))}}))),1e3)),()=>{o&&clearInterval(o)}}),[w]);const G=(o,t)=>e(void 0,void 0,void 0,(function*(){try{yield v.post("/mcp/user/save",Object.assign(Object.assign({tokens:yield b(JSON.stringify(o)),clientId:t.client_id,serverId:j},y&&"LOGGED OUT"!==y&&{userId:y}),S&&{studioId:null==I?void 0:I.studioid,studioSessionToken:S}),Object.assign(Object.assign({},(!process.env.NODE_ENV||"development"===process.env.NODE_ENV)&&Object.assign({},process.env.NEXT_PUBLIC_PICKAXE_SESSION_TOKEN&&{headers:{"x-pickaxe-session-token":process.env.NEXT_PUBLIC_PICKAXE_SESSION_TOKEN}})),f&&{credentials:"include"})),localStorage.removeItem("mcp_tokens"),localStorage.removeItem("mcp_client"),T(!1),_()}catch(e){L(c(e))}}));return C?o("div",Object.assign({className:"w-full bg-white border border-c-sep rounded-lg shadow-sm p-4 flex flex-col gap-4"},{children:[o("div",Object.assign({className:"flex flex-col gap-1"},{children:[t("h3",Object.assign({className:"font-semibold text-black/80 text-lg"},{children:(null==N?void 0:N["authentication-required"])||"Authentication Required"})),o("p",Object.assign({className:"text-black/60 text-sm"},{children:[(null==N?void 0:N["smithery-auth-description-prefix"])||"The tool you are trying to use requires authentication with"," ",t("span",Object.assign({className:"font-semibold text-black/80"},{children:O||k})),"."]}))]})),P&&t(m,{error:P}),o("div",Object.assign({className:"flex justify-end gap-2"},{children:[t(d,Object.assign({variant:"secondary",onClick:()=>T(!1),className:"text-sm px-3 h-9"},{children:(null==N?void 0:N.dismiss)||"Dismiss"})),t(d,Object.assign({variant:"primary",loadingText:(null==N?void 0:N.connecting)||"Connecting...",isLoading:w,style:{borderColor:E.accent,backgroundColor:E.accent,color:E.accentText},onClick:()=>e(void 0,void 0,void 0,(function*(){if(!w)if(S||"LOGGED OUT"!==y)try{L(null),A(!0);const e=new u(U),o=new a(new URL(`https://server.smithery.ai/${k}/mcp`),{authProvider:e});D.current=o;const t=new l({name:"Pickaxe",version:"1.0.0"});yield t.connect(o)}catch(e){console.log(c(e))}else L((null==N?void 0:N["must-be-logged-in-to-connect-smithery"])||"You must be logged in to connect Smithery MCPs.")})),className:"text-sm px-3 h-9 hover:opacity-90"},{children:(null==N?void 0:N.connect)||"Connect"}))]}))]})):null};export{j as default};
@@ -3,7 +3,7 @@ export interface InputHandle {
3
3
  onSubmit: (msg?: string) => Promise<void>;
4
4
  }
5
5
  interface InputProps {
6
- resubmitPrompt?: boolean;
6
+ resubmitPrompt?: boolean | number;
7
7
  onFocus?: () => void;
8
8
  onBlur?: () => void;
9
9
  onInputHeightChange?: (height: number) => void;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@pickaxeproject/react",
3
- "version": "6.24.9",
3
+ "version": "6.24.10",
4
4
  "description": "Client utility library for Pickaxe",
5
5
  "repository": {
6
6
  "type": "git",