@pickaxeproject/react 6.10.0 → 6.10.1
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("react"),n=require("../../../hooks/pickaxe/usePickaxeContext.js"),i=require("../../../hooks/pickaxe/useResponseContext.js"),r=require("../../../hooks/studio/useStyleInput.js"),o=require("../../../hooks/studio/useStyleFontSize.js"),a=require("../../../hooks/pickaxe/useConversation.js"),l=require("../../../hooks/pickaxe/useDimensionContext.js"),d=require("../Addons/Auth/hooks/useAuthContext.js"),c=require("../Addons/Document/hooks/useDocument.js"),u=require("../Addons/Scroll/hooks/useScroll.js"),p=require("../Addons/Artifact/hooks/useArtifactContext.js"),m=require("../../../hooks/core/useHover.js"),f=require("../../../hooks/core/useMediaQuery.js"),g=require("../../../common/documents.js"),v=require("eventsource-parser"),h=require("../../Icons/attach-vertical.svg.js"),b=require("../../Icons/arrow-right.svg.js"),I=require("../../Icons/microphone.svg.js"),y=require("../../Icons/stop.svg.js"),x=require("../Addons/Document/List.js"),j=require("../../Core/Textarea.js"),S=require("../../Core/ErrorAlert.js"),O=require("../../../common/error.js"),w=require("../../../common/api/pickaxe.js"),N=require("../../../common/validation.js"),_=require("../../../common/cn.js"),k=require("../../../common/utils.js"),E=require("../../../common/pickaxeConfig.js"),U=require("../../../common/deploymentWebhooks.js"),C=require("../../../hooks/studio/useStudio.js"),T=require("../../../hooks/pickaxe/useSpeech.js"),A=require("../common/PickaxeCommon.js");const D=e=>"string"==typeof e&&e.trim().length>0,P=e=>e.map((e=>Object.assign({},e))),L=e=>e instanceof Error&&("AbortError"===e.name||"BodyStreamBuffer was aborted"===e.message),R=(e,t)=>{if(e&&"object"==typeof e)return e[t]},M=(e,t)=>{const s=R(e,t);return D(s)?s:null},q=e=>{const t=Number(e);return Number.isFinite(t)?t:void 0},F=({studioUser:e,deploymentId:t,portalId:s})=>{var n,i;const r=Array.isArray(R(e,"uses"))?R(e,"uses"):[],o=(({deploymentId:e,portalId:t})=>D(e)?{type:"deployment",id:e}:D(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}},V=s.forwardRef((({resubmitPrompt:R,onFocus:V,onBlur:B,onInputHeightChange:$,initSmitheryAuthData:X},H)=>{var K,W,Y,z,G,J,Q,Z,ee,te,se,ne;const{origin:ie,pickaxeId:re,sessionId:oe,sender:ae,senderType:le,portalId:de,deploymentId:ce,deploymentType:ue,pickaxe:pe,styles:me,colors:fe,translations:ge,locale:ve,forceMobile:he,isNewChat:be,isRtl:Ie,isShowFeedbackMessage:ye,accessGroup:xe,setIsNewChat:je,setIsShowIceBreaker:Se,setValidationStatus:Oe,setValidationUpgradeGroups:we,setValidationUpgradeUrl:Ne,setAccessGroup:_e,onGenerateComplete:ke}=n.usePickaxeContext(),{token:Ee,isLoggedOut:Ue,isSent:Ce,isPricingAuth:Te}=d.useAuthContext(),{messages:Ae,isGenerating:De,setMessages:Pe,setStatus:Le,setLimitData:Re,setError:Me}=i.useResponseContext(),{documents:qe,isUploading:Fe,documentError:Ve,onFileUpload:Be,setDocuments:$e,setDocumentError:Xe}=c.useDocument(),{studio:He}=C.useStudio(),{scrollStartSession:Ke,scrollEndSession:We,scrollToBottom:Ye}=u.useScroll({auto:!0}),{artifacts:ze,currentPopupType:Ge,setArtifacts:Je,setCurrentArtifact:Qe}=p.useArtifactContext(),{height:Ze}=l.useDimensionContext(),et=a.useConversation(),[tt,st]=s.useState(""),[nt,it]=s.useState(!1),[rt,ot]=s.useState(!1),[at,lt]=s.useState(null),[dt,ct]=s.useState(null),[ut,pt]=s.useState(!1),[mt,ft]=s.useState(!1),[gt,vt]=s.useState(0),ht=s.useRef(null),bt=s.useRef(""),It=s.useRef(null),yt=s.useRef(null),xt=s.useRef(null),jt=s.useRef([]),St=s.useRef(null),Ot=s.useRef(null),wt=s.useRef(null),Nt=s.useRef(null),_t=s.useRef(new Set),kt=s.useRef(null),Et=Math.max(.4*Ze,100),{speechTranscript:Ut,isSpeechListening:Ct,isSpeechProcessing:Tt,isSpeechSupported:At,onStartListening:Dt,onStopListening:Pt}=T.useSpeech(),[Lt]=f.useMediaQuery("(max-width: 480px)"),Rt=m.useHover(),{isHover:Mt}=Rt,qt=e.__rest(Rt,["isHover"]),Ft=m.useHover(),{isHover:Vt}=Ft,Bt=e.__rest(Ft,["isHover"]),$t=m.useHover(),{isHover:Xt}=$t,Ht=e.__rest($t,["isHover"]),Kt=o.useStyleFontSize(),Wt=r.useStyleInput(),Yt="undefined"!=typeof window?window.location.hostname:"",zt="undefined"!=typeof window?window.location.href:"",Gt="undefined"!=typeof window&&window.self!==window.top,Jt=Yt.includes("pickaxe.co")&&!zt.includes("https://studio.pickaxe.co/_embed")&&!Gt,Qt=null!==(W=null===(K=null==pe?void 0:pe.documentuploadtype)||void 0===K?void 0:K.startsWith("enduserupload"))&&void 0!==W&&W,Zt=At&&(null==pe?void 0:pe.enablevoicetotext),es=D(ce),ts="chat-input"===ue&&be&&!Ce,ss="chat-input"===ue&&Te&&Ue&&Ce,ns=s.useCallback((e=>{const t=N.getValidationFailure(e);return!!t&&(Me(""),Re(null),Oe(t.status),_e(t.accessGroup),we(t.upgradeGroups),Ne(t.upgradeUrl),!0)}),[Me,Re,Oe,we,Ne,_e]),is=null!==(Y=null==pe?void 0:pe.placeholdertext)&&void 0!==Y?Y:Ie?"بماذا تريد أن تتحدث؟":(null==ge?void 0:ge["what-do-you-want-to-talk-about"])||"What do you want to talk about?",rs=nt||rt,os=s.useCallback((()=>e.__awaiter(void 0,void 0,void 0,(function*(){pt(!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==pe?void 0:pe.studioid},Ee?{studioSessionToken:Ee}:ae?{sender:ae}:{sender:k.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}})),Jt&&{credentials:"include"})),t=yield e.json();(null==t?void 0:t.studioUser)&&(lt(t.studioUser),ct(t.url))}catch(e){console.error("Failed to fetch studio user:",e)}finally{pt(!0)}}))),[Jt,null==pe?void 0:pe.studioid,ae,Ee]);s.useEffect((()=>{os()}),[os]);const as=Number(null!==(z=null==xe?void 0:xe.limit)&&void 0!==z?z:0),ls="string"==typeof(null==xe?void 0:xe.limitInterval)?xe.limitInterval:null,ds=!!(null==He?void 0:He.data.usage)&&He.data.usage.isCredits,cs=s.useMemo((()=>{var e,t,s,n,i;return null!==(i=null!==(n=null!==(s=null!==(t=null!==(e=null!=de?de:M(at,"portalId"))&&void 0!==e?e:M(at,"portalid"))&&void 0!==t?t:M(xe,"portalId"))&&void 0!==s?s:M(xe,"portalid"))&&void 0!==n?n:M(pe,"portalId"))&&void 0!==i?i:M(pe,"portalid")}),[xe,de,pe,at]),us=s.useMemo((()=>F({studioUser:at,deploymentId:ce,portalId:cs})),[ce,cs,at]);s.useEffect((()=>{es&&be&&oe&&_t.current.add(oe)}),[be,oe,es]);const ps=s.useCallback((()=>{var e,t,s;return{studioId:null==pe?void 0:pe.studioid,userEmail:M(at,"email"),userId:null!==(e=M(at,"userId"))&&void 0!==e?e:M(at,"userid"),sessionId:oe,deploymentId:ce,deploymentType:ue,portalId:cs,accessGroupId:null!==(t=null==xe?void 0:xe.accessGroupId)&&void 0!==t?t:null,pickaxeId:re,sender:ae,senderType:le,origin:ie,metadata:null!==(s=E.getPickaxeConfigMetadata(ce))&&void 0!==s?s:null}}),[null==xe?void 0:xe.accessGroupId,ce,ue,ie,null==pe?void 0:pe.studioid,re,cs,ae,le,oe,at]),ms=s.useCallback((()=>!!(es&&ut&&oe)&&(!!_t.current.has(oe)&&(U.fireDeploymentSessionInitializedWebhook(ps()),_t.current.delete(oe),!0))),[ps,ut,oe,es]);s.useEffect((()=>{if(!ut||!oe)return;ms();const e=kt.current;(null==e?void 0:e.sessionId)===oe&&(U.fireDeploymentFirstMessageSubmittedWebhook(Object.assign(Object.assign(Object.assign({},e),ps()),{message:e.message,documentIds:e.documentIds,uploadedModelImages:e.uploadedModelImages,hasUploadedDocuments:e.hasUploadedDocuments,isHidden:e.isHidden})),kt.current=null)}),[ms,ps,ut,oe]);const fs={currentUses:q(null==at?void 0:at.currentUses),extraUses:q(null==at?void 0:at.extraUses)},gs=us.scope?{currentUses:null!==(J=q(null===(G=us.record)||void 0===G?void 0:G.currentUses))&&void 0!==J?J:0,extraUses:null!==(Z=q(null===(Q=us.record)||void 0===Q?void 0:Q.extraUses))&&void 0!==Z?Z:0}:{currentUses:0,extraUses:0},vs=M(at,"type"),hs="guest"===vs||!vs&&Ue?gs:fs;s.useEffect((()=>{let t=!0;return e.__awaiter(void 0,void 0,void 0,(function*(){var e;if(ds&&(null===(e=null==He?void 0:He.data)||void 0===e?void 0:e.workspaceId))try{const e=yield w.pickaxeApi2.get(`/cost_per_run?workspaceId=${He.data.workspaceId}`,{withCredentials:!1});t&&vt(1e4*(Number(e.data.costPerRun)||0))}catch(e){console.error("Failed to fetch average cost per run:",e),t&&vt(0)}else t&&vt(0)})),()=>{t=!1}}),[ds,null===(ee=null==He?void 0:He.data)||void 0===ee?void 0:ee.workspaceId]);const bs=(({currentUses:e,extraUses:t,limit:s,limitInterval:n})=>{const i=Number(null!=e?e:0),r=Number(null!=t?t:0);return s===A.STUDIO_INFINITY_VALUE||r===A.STUDIO_INFINITY_VALUE?A.STUDIO_INFINITY_VALUE:"one_time"===n?Math.max(0,r-i):Math.max(0,s-i)+r})({currentUses:hs.currentUses,extraUses:hs.extraUses,limit:as,limitInterval:ls}),Is=bs===A.STUDIO_INFINITY_VALUE?A.STUDIO_INFINITY_VALUE:Math.max(0,Math.ceil(bs)),ys=(({extraUses:e,limit:t,limitInterval:s})=>{const n=Number(null!=e?e:0);return t===A.STUDIO_INFINITY_VALUE||n===A.STUDIO_INFINITY_VALUE?A.STUDIO_INFINITY_VALUE:"one_time"===s?Math.max(0,n):Math.max(0,t)+Math.max(0,n)})({extraUses:hs.extraUses,limit:as,limitInterval:ls}),xs=ys===A.STUDIO_INFINITY_VALUE?A.STUDIO_INFINITY_VALUE:Math.ceil(.05*ys),js=ds?Math.ceil(5*gt):5,Ss=xs===A.STUDIO_INFINITY_VALUE?A.STUDIO_INFINITY_VALUE:Math.max(xs,js),Os=s.useMemo((()=>!!at&&(!mt&&(Is!==A.STUDIO_INFINITY_VALUE&&(!(Is<=0)&&Is<=Ss)))),[mt,Ss,Is,at]),ws=Boolean(null==xe?void 0:xe.hideUpgradeOptions),Ns=!ws&&(null===(te=null==xe?void 0:xe.upgrade)||void 0===te?void 0:te.isLinkToCustomURL)&&"string"==typeof xe.upgrade.limitLink&&xe.upgrade.limitLink.trim().length>0?xe.upgrade.limitLink.trim():null,_s=Ns&&"string"==typeof(null===(se=null==xe?void 0:xe.upgrade)||void 0===se?void 0:se.limitCTA)&&xe.upgrade.limitCTA.trim().length>0?xe.upgrade.limitCTA:(null==ge?void 0:ge["pricing.upgrade"])||(null==ge?void 0:ge.upgrade)||"Upgrade",ks=s.useMemo((()=>{var e,t,s;return!!be&&(!!pe&&(!et.isLoading&&(!((null!==(t=null===(e=et.data)||void 0===e?void 0:e.messages.length)&&void 0!==t?t:0)>1)&&(!!(null===(s=pe.icebreakers)||void 0===s?void 0:s.length)&&(!ye&&!ts)))))}),[pe,be,ye,ts,et.data,et.isLoading]),Es=s.useMemo((()=>{if(De||Fe)return!1;const e=Qt&&qe.length>0&&qe.every((e=>"finished"===e.status));return!(!tt.trim()&&!e)&&qe.every((e=>"finished"===e.status||e.isInsertedAsRaw))}),[Qt,De,Fe,tt,qe]);s.useImperativeHandle(H,(()=>({onSubmit:Us}))),s.useEffect((()=>{Se(ks)}),[ks]),s.useEffect((()=>{var e;if(R){const t=Array.from(Ae),s=null===(e=t[t.length-2].parts.find((e=>"text"===e.type)))||void 0===e?void 0:e.content;Us(s,!0)}}),[R]),s.useEffect((()=>{if(!wt.current||!$)return;const e=new ResizeObserver((e=>{for(const t of e)$(t.contentRect.height)}));return e.observe(wt.current),()=>{e.disconnect()}}),[$]),s.useEffect((()=>{if(!Ct)return;const e=bt.current?`${bt.current} `:"";st(`${e}${Ut}`)}),[Ut,Ct]),s.useEffect((()=>{if(!St.current)return;(()=>{if(!St.current)return;let e=St.current.scrollHeight>52;tt.includes("\n")||qe.length?e=!0:tt.trim()||(e=!1),it(e)})()}),[tt,qe]),s.useEffect((()=>{const e=St.current,t=Ot.current;if(!e||!t||nt||tt.includes("\n"))return void ot(!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=tt||is,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;ot(r>l)}),[tt,nt,is]);const Us=(t,s=!1)=>e.__awaiter(void 0,void 0,void 0,(function*(){var e,n,i,r;let o=null;try{if(De||Fe)return;const a=qe.filter((e=>"finished"===e.status&&!e.isInsertedAsRaw)),l=a.map((e=>e.documentId)).filter(Boolean),d=a.filter((e=>"image"===e.type)).map((e=>{const t=e.name.split(".").pop()||"";return{documentId:e.documentId,extension:t}})),c=null!=t?t:tt,u=null!==(n=null===(e=null==pe?void 0:pe.documentuploadtype)||void 0===e?void 0:e.startsWith("enduserupload"))&&void 0!==n&&n&&l.length>0;if(!c&&!u)return;Me(""),Xe(""),Re(null),st(""),je(!1),Le("fetching"),Ke(),Ye();const p=[...s?Array.from(Ae.slice(0,Ae.length-1)):Array.from(Ae),...s?[]:[{id:Ae.length+1,role:"user",parts:[{type:"text",content:c,isVisible:!0}],documentIds:u?l:[]}],{id:Ae.length+(s?0:2),role:"assistant",parts:[],documentIds:[]}];Pe(p),Ye(),u&&$e([]);const m=E.getPickaxeConfigMetadata(ce),f="undefined"!=typeof crypto&&"randomUUID"in crypto?crypto.randomUUID():`submission-${Date.now()}-${Math.random().toString(36).slice(2)}`;o=f,yt.current=f,xt.current=null,jt.current=[];const g=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({origin:ie,pickaxeId:re,sessionId:oe,submissionId:f,senderType:le,value:c},u&&{documentIds:l}),ae&&{sender:ae}),Ee&&{studioSessionToken:Ee}),!Ee&&!ae&&{sender:k.initializeEmbedUserId()}),cs&&{portalId:cs}),ce&&{deploymentId:ce}),m&&{metadata:m}),u&&d.length>0?{uploadedModelImages:d}:{})),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()})},Jt&&{credentials:"include"})),h=yield g.json();if(!h.success){if(h.limitData){const e=new Error(h.error||h.message||(null==ge?void 0:ge["failed-to-start-generation"])||"Failed to start generation");throw e.limitData=h.limitData,e}if(ns(h))return;throw new Error(h.error||h.message||(null==ge?void 0:ge["failed-to-start-generation"])||"Failed to start generation")}const b=null!==(i=h.submissionId)&&void 0!==i?i:f;o=b,yt.current=b;const I=()=>xt.current===b;if(I())return;es&&be&&oe&&_t.current.add(oe);const y=Object.assign(Object.assign({},ps()),{message:c,documentIds:u?l:[],uploadedModelImages:u?d:[],hasUploadedDocuments:u,isHidden:s,metadata:null!=m?m:null});ut?(ms(),U.fireDeploymentFirstMessageSubmittedWebhook(y)):kt.current=y,Le("streaming"),Nt.current=new AbortController;const x=p.length-1,j=[];let S=[...null!=ze?ze:[]],O=0,w=!1,N="";for(;!w;)try{const e=yield fetch(`${process.env.NEXT_PUBLIC_PICKAXE_API2_URL}/response/stream/${b}?index=${O}`,{signal:null===(r=Nt.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();It.current=t;const s=new TextDecoder,n=v.createParser({onEvent:e=>{var t,s;if(I())w=!0;else if(e.event&&"ping"!==e.event&&O++,"stop"!==e.event){if("error"===e.event){const t=JSON.parse(e.data);if(t.limitData)return Re(t.limitData),Me(""),void(w=!0);const s=t.error||t.message||(null==ge?void 0:ge["something-went-wrong"])||"Something went wrong.";return ns(t)||Me(s),void(w=!0)}if("delta"===e.event){const n=JSON.parse(e.data);if("data-error"===n.type&&X){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 w=!0,X({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 w=!0,X({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 w=!0,X({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 w=!0,X({provider:"composio",toolkitSlug:t.toolkitSlug,serverId:t.serverId,name:t.name}),new Error("STOP_STREAM")}}else if("text-start"===n.type)N="",j.push({type:"text",content:"",isVisible:null===(t=n.isVisible)||void 0===t||t});else if("text-delta"===n.type)N+=n.delta,j[j.length-1].content=N;else if("text-end"===n.type)N="";else if("reasoning-start"===n.type)N="",j.push({type:"reasoning",content:"",isVisible:null===(s=n.isVisible)||void 0===s||s});else if("reasoning-delta"===n.type)N+=n.delta,j[j.length-1].content=N;else if("reasoning-end"===n.type)N="";else if(n.type.startsWith("data-")){const e=n;j.push({type:e.type,content:JSON.stringify(e.data),isVisible:!0})}jt.current=P(j),Pe([...p.slice(0,x),Object.assign(Object.assign({},p[p.length-1]),{id:Ae.length+1,role:"assistant",parts:j})])}else if("artifact_created"===e.event){const t=JSON.parse(e.data);S=S.filter((e=>!(e.id===t.id&&e.version===t.version))),S.push(Object.assign(Object.assign({},t),{content:"",status:"streaming"})),Je([...S]),Ge.startsWith("inline")||Qe({id:t.id,version:t.version})}else if("artifact_updated"===e.event){const t=JSON.parse(e.data);S=S.filter((e=>!(e.id===t.id&&e.version===t.version))),S.push(Object.assign(Object.assign({},t),{content:"",status:"updating"})),Je(S),Ge.startsWith("inline")||Qe({id:t.id,version:t.version})}else if("artifact_rewrite"===e.event){const t=JSON.parse(e.data);S=S.filter((e=>!(e.id===t.id&&e.version===t.version))),S.push(Object.assign(Object.assign({},t),{content:"",status:"streaming"})),Je(S),Ge.startsWith("inline")||Qe({id:t.id,version:t.version})}else if("artifact_content"===e.event){const t=JSON.parse(e.data),s=t.token.replace(/\u200B/g,"");S=S.map((e=>e.id===t.id&&e.version===t.version?Object.assign(Object.assign({},e),{content:e.content+s,status:"streaming"}):e)),Je(S)}else if("artifact_finished"===e.event){const t=JSON.parse(e.data);Je(S.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 Re(t.limitData),Me(""),void(w=!0);const s=t.error||t.message||(null==ge?void 0:ge["something-went-wrong-try-again"])||"Something went wrong, please try again.";if(ns(t))return void(w=!0);Me(s)}else"stop"===e.event&&(w=!0)}else w=!0}});for(;;){if(I()){w=!0,t.cancel().catch((()=>{}));break}const{value:e,done:i}=yield t.read();if(I()){w=!0,t.cancel().catch((()=>{}));break}if(i)break;n.feed(s.decode(e))}w||I()||(yield new Promise((e=>setTimeout(e,1e3))))}catch(e){if("STOP_STREAM"===e.message||L(e)||I())return void(w=!0);console.warn("Stream connection lost, retrying...",e),yield new Promise((e=>setTimeout(e,1e3)))}null==ke||ke(oe)}catch(e){if(L(e))return;if(e.limitData)Re(e.limitData),Me("");else{let t=O.default(e)||"";t&&!t.includes("Unexpected token 'A',")||(t=(null==ge?void 0:ge["high-traffic-try-again-later"])||"Oops! We're experiencing high traffic at the moment. Please try again later."),ns(t)||Me(t)}}finally{const e=!o||yt.current===o;Ye(),e&&(Le("idle"),We(),It.current=null),o&&e&&(yt.current=null,jt.current=[]),yield os()}}));return ss?null:t.jsx("div",Object.assign({className:_.default("flex w-full flex-shrink-0 flex-col items-center",!ts&&"px-4 pb-8"),dir:Ie?"rtl":"ltr"},{children:t.jsxs("div",Object.assign({className:"flex w-full max-w-[800px] flex-col"},{children:[t.jsxs("div",Object.assign({ref:wt,className:_.default("relative flex flex-col w-full justify-end gap-y-3 py-[3px]","block"===me.formFieldStyle&&"shadow"),style:Object.assign(Object.assign({},Wt),{maxHeight:`${Et}px`,overflowY:"auto"})},{children:[Os&&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:Wt.backgroundColor?`${Wt.backgroundColor}E6`:void 0,borderColor:fe.text+"20",color:fe.text,borderTopRightRadius:me.cornerRadius+"px",borderTopLeftRadius:me.cornerRadius+"px"}},{children:[t.jsx("div",Object.assign({className:"flex items-center gap-2 text-sm font-medium"},{children:t.jsxs("span",{children:[Is.toLocaleString()," ",ds?(null==ge?void 0:ge.credits)||"Credits":(null==ge?void 0:ge.uses)||"Uses"," ",(null==ge?void 0:ge.remaining)||"remaining"]})})),t.jsxs("div",Object.assign({className:"flex items-center gap-3"},{children:[!ws&&t.jsx("button",Object.assign({className:"rounded-md px-3 py-1.5 text-xs font-semibold transition-opacity hover:opacity-90",style:{backgroundColor:fe.accent,color:fe.accentText},onClick:e=>{if(e.preventDefault(),e.stopPropagation(),Ns)return void window.open(Ns,"_blank","noopener,noreferrer");const t=k.buildUpgradeUrl({baseUrl:dt,accessGroupId:null==xe?void 0:xe.accessGroupId,redirectUrl:document.URL});t&&(k.isInIframe()?window.open(t):location.href=t)}},{children:_s})),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:()=>ft(!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"})}))}))]}))]})),!De&&qe.length>0&&t.jsx(x.default,{className:"p-4 pb-0",isDisabled:De}),t.jsxs("div",Object.assign({className:"relative flex w-full flex-col"},{children:[Ct&&t.jsxs("div",Object.assign({className:"absolute left-4 top-1/2 flex -translate-y-1/2 select-none items-center gap-x-2"},{children:[t.jsx("span",{className:"h-2 w-2 animate-pulse rounded-full bg-c-secondary",style:{backgroundColor:null!==(ne=fe.accent)&&void 0!==ne?ne:"#ff0000"}}),t.jsx("span",Object.assign({className:"text-sm text-c-secondary font-semilight",style:{color:fe.text+"90"}},{children:(null==ge?void 0:ge.listening)||"Listening..."}))]})),t.jsx(j.default,Object.assign({ref:St,className:_.default(Kt.i1,"py-3.5 max-h-60 px-4 w-full border-transparent bg-transparent",!tt.trim()&&!tt.includes("\n")&&"overflow-hidden text-ellipsis whitespace-nowrap placeholder:whitespace-normal placeholder:overflow-visible",Ie?"text-right":"text-left",rs&&"mb-12",Ct&&"text-transparent"),value:tt,placeholder:is,onChange:e=>{st(e)},onKeyDown:e=>{he||Lt||"Enter"===e.key&&(e.shiftKey||(e.preventDefault(),Fe||De||Us()))},onPaste:t=>e.__awaiter(void 0,void 0,void 0,(function*(){const e=Array.from(t.clipboardData.files||[]);if(e.length>0){if(!Qt)return;t.preventDefault(),je(!1),yield Be(e)}}))},V&&{onFocus:V},B&&{onBlur:B},{dir:Ie?"rtl":"ltr"})),t.jsx("div",Object.assign({ref:Ot,className:_.default("flex items-center gap-2 absolute right-0 z-2 transition-all duration-200 ease-in-out",rs?"bottom-0 mb-2.5":"top-1/2 -translate-y-1/2"),style:Object.assign(Object.assign({},!rs&&Wt.backgroundColor&&{backgroundColor:Wt.backgroundColor}),{borderTopRightRadius:me.cornerRadius+"px",borderBottomRightRadius:me.cornerRadius+"px"})},{children:De?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",onClick:()=>{const t=yt.current;t&&(xt.current=t,(t=>{e.__awaiter(void 0,void 0,void 0,(function*(){if(!(t=null!=t?t:yt.current))return;const e=P(jt.current);try{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})},Jt&&{credentials:"include"}))}catch(e){console.warn("Failed to cancel submission",e)}}))})(t)),Nt.current&&(Nt.current.abort(),Nt.current=null),It.current&&(It.current.cancel().catch((()=>{})),It.current=null),Le("idle")},style:{backgroundColor:fe.accent,color:fe.accentText}},{children:t.jsx(y.default,{className:"h-4 w-4 shrink-0"})})):Ct?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",onClick:Pt,style:{backgroundColor:fe.accent,color:fe.accentText}},{children:t.jsx(y.default,{className:"h-4 w-4 shrink-0"})})):t.jsxs(t.Fragment,{children:[Qt&&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:Vt?fe.accent+"10":void 0,color:Vt?fe.accent:fe.accent+"80"},disabled:Fe||De,onClick:()=>{var e;return null===(e=ht.current)||void 0===e?void 0:e.click()}},Bt,{children:[t.jsx("input",{id:"file-upload",ref:ht,type:"file",accept:[...g.allowedFileMimeTypes,...g.allowedImageMimeTypes,...g.additionalAllowedFileExtensions].join(", "),multiple:!0,hidden:!0,className:"hidden",onChange:t=>e.__awaiter(void 0,void 0,void 0,(function*(){je(!1),yield Be(Array.from(t.target.files||[])),t.target.value=""}))}),t.jsx(h.default,{className:"h-6 w-6 shrink-0"})]})),Zt&&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:Ct?fe.accent:Xt?fe.accent+"10":void 0,color:Ct?fe.accentText:Xt?fe.accent:fe.accent+"80"},disabled:Fe||De||Tt,onClick:()=>{Ct?Pt():(bt.current=tt,Dt(ve||"en-US"))}},Ht,{children:t.jsx(I.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:Mt||Es?fe.accent:fe.accent+"10",color:Mt||Es?fe.accentText:fe.accent+"80"},disabled:!Es,onClick:()=>Us()},qt,{children:t.jsx(b.default,{className:_.default("h-6 w-6 shrink-0",Ie&&"scale-x-[-1] transform")})}))]})}))]}))]})),Ve&&t.jsx(S.default,{error:Ve,className:"mt-3"})]}))}))}));V.displayName="Input",exports.default=V;
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("../../../_virtual/_tslib.js"),t=require("react/jsx-runtime"),s=require("react"),n=require("../../../hooks/pickaxe/usePickaxeContext.js"),i=require("../../../hooks/pickaxe/useResponseContext.js"),r=require("../../../hooks/studio/useStyleInput.js"),o=require("../../../hooks/studio/useStyleFontSize.js"),a=require("../../../hooks/pickaxe/useConversation.js"),l=require("../../../hooks/pickaxe/useDimensionContext.js"),d=require("../Addons/Auth/hooks/useAuthContext.js"),c=require("../Addons/Document/hooks/useDocument.js"),u=require("../Addons/Scroll/hooks/useScroll.js"),p=require("../Addons/Artifact/hooks/useArtifactContext.js"),m=require("../../../hooks/core/useHover.js"),f=require("../../../hooks/core/useMediaQuery.js"),g=require("../../../common/documents.js"),v=require("eventsource-parser"),h=require("../../Icons/attach-vertical.svg.js"),b=require("../../Icons/arrow-right.svg.js"),I=require("../../Icons/microphone.svg.js"),y=require("../../Icons/stop.svg.js"),x=require("../Addons/Document/List.js"),j=require("../../Core/Textarea.js"),S=require("../../Core/ErrorAlert.js"),O=require("../../../common/error.js"),w=require("../../../common/api/pickaxe.js"),N=require("../../../common/validation.js"),_=require("../../../common/cn.js"),k=require("../../../common/utils.js"),E=require("../../../common/pickaxeConfig.js"),U=require("../../../common/deploymentWebhooks.js"),C=require("../../../hooks/studio/useStudio.js"),T=require("../../../hooks/pickaxe/useSpeech.js"),A=require("../common/PickaxeCommon.js");const D=e=>"string"==typeof e&&e.trim().length>0,P=e=>e.map((e=>Object.assign({},e))),L=e=>e instanceof Error&&("AbortError"===e.name||"BodyStreamBuffer was aborted"===e.message),R=e=>{var t;const s=(null!==(t=e.parts)&&void 0!==t?t:[]).filter((e=>!1!==e.isVisible)),n=s.filter((e=>"text"===e.type)).map((e=>{var t;return null!==(t=e.content)&&void 0!==t?t:""})).join("").trim();return n?JSON.stringify({role:e.role,text:n}):JSON.stringify({role:e.role,parts:s.map((e=>{var t;return{type:e.type,content:null!==(t=e.content)&&void 0!==t?t:""}}))})},M=(e,t)=>{if(e&&"object"==typeof e)return e[t]},q=(e,t)=>{const s=M(e,t);return D(s)?s:null},F=e=>{const t=Number(e);return Number.isFinite(t)?t:void 0},V=({studioUser:e,deploymentId:t,portalId:s})=>{var n,i;const r=Array.isArray(M(e,"uses"))?M(e,"uses"):[],o=(({deploymentId:e,portalId:t})=>D(e)?{type:"deployment",id:e}:D(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}},B=s.forwardRef((({resubmitPrompt:M,onFocus:B,onBlur:$,onInputHeightChange:X,initSmitheryAuthData:H},K)=>{var W,J,Y,z,G,Q,Z,ee,te,se,ne,ie;const{origin:re,pickaxeId:oe,sessionId:ae,sender:le,senderType:de,portalId:ce,deploymentId:ue,deploymentType:pe,pickaxe:me,styles:fe,colors:ge,translations:ve,locale:he,forceMobile:be,isNewChat:Ie,isRtl:ye,isShowFeedbackMessage:xe,accessGroup:je,setIsNewChat:Se,setIsShowIceBreaker:Oe,setValidationStatus:we,setValidationUpgradeGroups:Ne,setValidationUpgradeUrl:_e,setAccessGroup:ke,onGenerateComplete:Ee}=n.usePickaxeContext(),{token:Ue,isLoggedOut:Ce,isSent:Te,isPricingAuth:Ae}=d.useAuthContext(),{messages:De,isGenerating:Pe,setMessages:Le,setStatus:Re,setLimitData:Me,setError:qe}=i.useResponseContext(),{documents:Fe,isUploading:Ve,documentError:Be,onFileUpload:$e,setDocuments:Xe,setDocumentError:He}=c.useDocument(),{studio:Ke}=C.useStudio(),{scrollStartSession:We,scrollEndSession:Je,scrollToBottom:Ye}=u.useScroll({auto:!0}),{artifacts:ze,currentPopupType:Ge,setArtifacts:Qe,setCurrentArtifact:Ze}=p.useArtifactContext(),{height:et}=l.useDimensionContext(),tt=a.useConversation(),[st,nt]=s.useState(""),[it,rt]=s.useState(!1),[ot,at]=s.useState(!1),[lt,dt]=s.useState(null),[ct,ut]=s.useState(null),[pt,mt]=s.useState(!1),[ft,gt]=s.useState(!1),[vt,ht]=s.useState(0),bt=s.useRef(null),It=s.useRef(""),yt=s.useRef(null),xt=s.useRef(null),jt=s.useRef(null),St=s.useRef([]),Ot=s.useRef(null),wt=s.useRef(null),Nt=s.useRef(null),_t=s.useRef(null),kt=s.useRef(new Set),Et=s.useRef(null),Ut=Math.max(.4*et,100),{speechTranscript:Ct,isSpeechListening:Tt,isSpeechProcessing:At,isSpeechSupported:Dt,onStartListening:Pt,onStopListening:Lt}=T.useSpeech(),[Rt]=f.useMediaQuery("(max-width: 480px)"),Mt=m.useHover(),{isHover:qt}=Mt,Ft=e.__rest(Mt,["isHover"]),Vt=m.useHover(),{isHover:Bt}=Vt,$t=e.__rest(Vt,["isHover"]),Xt=m.useHover(),{isHover:Ht}=Xt,Kt=e.__rest(Xt,["isHover"]),Wt=o.useStyleFontSize(),Jt=r.useStyleInput(),Yt="undefined"!=typeof window?window.location.hostname:"",zt="undefined"!=typeof window?window.location.href:"",Gt="undefined"!=typeof window&&window.self!==window.top,Qt=Yt.includes("pickaxe.co")&&!zt.includes("https://studio.pickaxe.co/_embed")&&!Gt,Zt=null!==(J=null===(W=null==me?void 0:me.documentuploadtype)||void 0===W?void 0:W.startsWith("enduserupload"))&&void 0!==J&&J,es=Dt&&(null==me?void 0:me.enablevoicetotext),ts=D(ue),ss="chat-input"===pe&&Ie&&!Te,ns="chat-input"===pe&&Ae&&Ce&&Te,is=s.useCallback((e=>{const t=N.getValidationFailure(e);return!!t&&(qe(""),Me(null),we(t.status),ke(t.accessGroup),Ne(t.upgradeGroups),_e(t.upgradeUrl),!0)}),[qe,Me,we,Ne,_e,ke]),rs=null!==(Y=null==me?void 0:me.placeholdertext)&&void 0!==Y?Y:ye?"بماذا تريد أن تتحدث؟":(null==ve?void 0:ve["what-do-you-want-to-talk-about"])||"What do you want to talk about?",os=it||ot,as=s.useCallback((()=>e.__awaiter(void 0,void 0,void 0,(function*(){mt(!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==me?void 0:me.studioid},Ue?{studioSessionToken:Ue}:le?{sender:le}:{sender:k.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}})),Qt&&{credentials:"include"})),t=yield e.json();(null==t?void 0:t.studioUser)&&(dt(t.studioUser),ut(t.url))}catch(e){console.error("Failed to fetch studio user:",e)}finally{mt(!0)}}))),[Qt,null==me?void 0:me.studioid,le,Ue]);s.useEffect((()=>{as()}),[as]);const ls=Number(null!==(z=null==je?void 0:je.limit)&&void 0!==z?z:0),ds="string"==typeof(null==je?void 0:je.limitInterval)?je.limitInterval:null,cs=!!(null==Ke?void 0:Ke.data.usage)&&Ke.data.usage.isCredits,us=s.useMemo((()=>{var e,t,s,n,i;return null!==(i=null!==(n=null!==(s=null!==(t=null!==(e=null!=ce?ce:q(lt,"portalId"))&&void 0!==e?e:q(lt,"portalid"))&&void 0!==t?t:q(je,"portalId"))&&void 0!==s?s:q(je,"portalid"))&&void 0!==n?n:q(me,"portalId"))&&void 0!==i?i:q(me,"portalid")}),[je,ce,me,lt]),ps=s.useMemo((()=>V({studioUser:lt,deploymentId:ue,portalId:us})),[ue,us,lt]);s.useEffect((()=>{ts&&Ie&&ae&&kt.current.add(ae)}),[Ie,ae,ts]);const ms=s.useCallback((()=>{var e,t,s;return{studioId:null==me?void 0:me.studioid,userEmail:q(lt,"email"),userId:null!==(e=q(lt,"userId"))&&void 0!==e?e:q(lt,"userid"),sessionId:ae,deploymentId:ue,deploymentType:pe,portalId:us,accessGroupId:null!==(t=null==je?void 0:je.accessGroupId)&&void 0!==t?t:null,pickaxeId:oe,sender:le,senderType:de,origin:re,metadata:null!==(s=E.getPickaxeConfigMetadata(ue))&&void 0!==s?s:null}}),[null==je?void 0:je.accessGroupId,ue,pe,re,null==me?void 0:me.studioid,oe,us,le,de,ae,lt]),fs=s.useCallback((()=>!!(ts&&pt&&ae)&&(!!kt.current.has(ae)&&(U.fireDeploymentSessionInitializedWebhook(ms()),kt.current.delete(ae),!0))),[ms,pt,ae,ts]);s.useEffect((()=>{if(!pt||!ae)return;fs();const e=Et.current;(null==e?void 0:e.sessionId)===ae&&(U.fireDeploymentFirstMessageSubmittedWebhook(Object.assign(Object.assign(Object.assign({},e),ms()),{message:e.message,documentIds:e.documentIds,uploadedModelImages:e.uploadedModelImages,hasUploadedDocuments:e.hasUploadedDocuments,isHidden:e.isHidden})),Et.current=null)}),[fs,ms,pt,ae]);const gs={currentUses:F(null==lt?void 0:lt.currentUses),extraUses:F(null==lt?void 0:lt.extraUses)},vs=ps.scope?{currentUses:null!==(Q=F(null===(G=ps.record)||void 0===G?void 0:G.currentUses))&&void 0!==Q?Q:0,extraUses:null!==(ee=F(null===(Z=ps.record)||void 0===Z?void 0:Z.extraUses))&&void 0!==ee?ee:0}:{currentUses:0,extraUses:0},hs=q(lt,"type"),bs="guest"===hs||!hs&&Ce?vs:gs;s.useEffect((()=>{let t=!0;return e.__awaiter(void 0,void 0,void 0,(function*(){var e;if(cs&&(null===(e=null==Ke?void 0:Ke.data)||void 0===e?void 0:e.workspaceId))try{const e=yield w.pickaxeApi2.get(`/cost_per_run?workspaceId=${Ke.data.workspaceId}`,{withCredentials:!1});t&&ht(1e4*(Number(e.data.costPerRun)||0))}catch(e){console.error("Failed to fetch average cost per run:",e),t&&ht(0)}else t&&ht(0)})),()=>{t=!1}}),[cs,null===(te=null==Ke?void 0:Ke.data)||void 0===te?void 0:te.workspaceId]);const Is=(({currentUses:e,extraUses:t,limit:s,limitInterval:n})=>{const i=Number(null!=e?e:0),r=Number(null!=t?t:0);return s===A.STUDIO_INFINITY_VALUE||r===A.STUDIO_INFINITY_VALUE?A.STUDIO_INFINITY_VALUE:"one_time"===n?Math.max(0,r-i):Math.max(0,s-i)+r})({currentUses:bs.currentUses,extraUses:bs.extraUses,limit:ls,limitInterval:ds}),ys=Is===A.STUDIO_INFINITY_VALUE?A.STUDIO_INFINITY_VALUE:Math.max(0,Math.ceil(Is)),xs=(({extraUses:e,limit:t,limitInterval:s})=>{const n=Number(null!=e?e:0);return t===A.STUDIO_INFINITY_VALUE||n===A.STUDIO_INFINITY_VALUE?A.STUDIO_INFINITY_VALUE:"one_time"===s?Math.max(0,n):Math.max(0,t)+Math.max(0,n)})({extraUses:bs.extraUses,limit:ls,limitInterval:ds}),js=xs===A.STUDIO_INFINITY_VALUE?A.STUDIO_INFINITY_VALUE:Math.ceil(.05*xs),Ss=cs?Math.ceil(5*vt):5,Os=js===A.STUDIO_INFINITY_VALUE?A.STUDIO_INFINITY_VALUE:Math.max(js,Ss),ws=s.useMemo((()=>!!lt&&(!ft&&(ys!==A.STUDIO_INFINITY_VALUE&&(!(ys<=0)&&ys<=Os)))),[ft,Os,ys,lt]),Ns=Boolean(null==je?void 0:je.hideUpgradeOptions),_s=!Ns&&(null===(se=null==je?void 0:je.upgrade)||void 0===se?void 0:se.isLinkToCustomURL)&&"string"==typeof je.upgrade.limitLink&&je.upgrade.limitLink.trim().length>0?je.upgrade.limitLink.trim():null,ks=_s&&"string"==typeof(null===(ne=null==je?void 0:je.upgrade)||void 0===ne?void 0:ne.limitCTA)&&je.upgrade.limitCTA.trim().length>0?je.upgrade.limitCTA:(null==ve?void 0:ve["pricing.upgrade"])||(null==ve?void 0:ve.upgrade)||"Upgrade",Es=s.useMemo((()=>{var e,t,s;return!!Ie&&(!!me&&(!tt.isLoading&&(!((null!==(t=null===(e=tt.data)||void 0===e?void 0:e.messages.length)&&void 0!==t?t:0)>1)&&(!!(null===(s=me.icebreakers)||void 0===s?void 0:s.length)&&(!xe&&!ss)))))}),[me,Ie,xe,ss,tt.data,tt.isLoading]),Us=s.useMemo((()=>{if(Pe||Ve)return!1;const e=Zt&&Fe.length>0&&Fe.every((e=>"finished"===e.status));return!(!st.trim()&&!e)&&Fe.every((e=>"finished"===e.status||e.isInsertedAsRaw))}),[Zt,Pe,Ve,st,Fe]);s.useImperativeHandle(K,(()=>({onSubmit:Cs}))),s.useEffect((()=>{Oe(Es)}),[Es]),s.useEffect((()=>{var e;if(M){const t=Array.from(De),s=null===(e=t[t.length-2].parts.find((e=>"text"===e.type)))||void 0===e?void 0:e.content;Cs(s,!0)}}),[M]),s.useEffect((()=>{if(!Nt.current||!X)return;const e=new ResizeObserver((e=>{for(const t of e)X(t.contentRect.height)}));return e.observe(Nt.current),()=>{e.disconnect()}}),[X]),s.useEffect((()=>{if(!Tt)return;const e=It.current?`${It.current} `:"";nt(`${e}${Ct}`)}),[Ct,Tt]),s.useEffect((()=>{if(!Ot.current)return;(()=>{if(!Ot.current)return;let e=Ot.current.scrollHeight>52;st.includes("\n")||Fe.length?e=!0:st.trim()||(e=!1),rt(e)})()}),[st,Fe]),s.useEffect((()=>{const e=Ot.current,t=wt.current;if(!e||!t||it||st.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=st||rs,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)}),[st,it,rs]);const Cs=(t,s=!1)=>e.__awaiter(void 0,void 0,void 0,(function*(){var e,n,i,r,o,a;let l=null;try{if(Pe||Ve)return;const d=Fe.filter((e=>"finished"===e.status&&!e.isInsertedAsRaw)),c=d.map((e=>e.documentId)).filter(Boolean),u=d.filter((e=>"image"===e.type)).map((e=>{const t=e.name.split(".").pop()||"";return{documentId:e.documentId,extension:t}})),p=null!=t?t:st,m=null!==(n=null===(e=null==me?void 0:me.documentuploadtype)||void 0===e?void 0:e.startsWith("enduserupload"))&&void 0!==n&&n&&c.length>0;if(!p&&!m)return;qe(""),He(""),Me(null),nt(""),Se(!1),Re("fetching"),We(),Ye();const f=null!==(r=null===(i=tt.data)||void 0===i?void 0:i.messages)&&void 0!==r?r:[],g=((e,t)=>{if(!t.length||!e.length)return e;const s=t.map(R);let n=0,i=0;for(;i<e.length&&n<s.length;){const t=s.indexOf(R(e[i]),n);if(-1===t)break;i+=1,n=t+1}const r=new Set(t.filter((e=>"assistant"===e.role)).map(R));return e.slice(i).filter((e=>"assistant"!==e.role||!r.has(R(e))))})(De,f),h=s?g.slice(0,g.length-1):g,b=(e=>e.reduce(((e,t)=>Math.max(e,t.id)),0)+1)(h),I=b+(s?0:1),y={id:I,role:"assistant",parts:[],documentIds:[]},x=[...h,...s?[]:[{id:b,role:"user",parts:[{type:"text",content:p,isVisible:!0}],documentIds:m?c:[]}],y];Le(x),Ye(),m&&Xe([]);const j=E.getPickaxeConfigMetadata(ue),S="undefined"!=typeof crypto&&"randomUUID"in crypto?crypto.randomUUID():`submission-${Date.now()}-${Math.random().toString(36).slice(2)}`;l=S,xt.current=S,jt.current=null,St.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({origin:re,pickaxeId:oe,sessionId:ae,submissionId:S,senderType:de,value:p},m&&{documentIds:c}),le&&{sender:le}),Ue&&{studioSessionToken:Ue}),!Ue&&!le&&{sender:k.initializeEmbedUserId()}),us&&{portalId:us}),ue&&{deploymentId:ue}),j&&{metadata:j}),m&&u.length>0?{uploadedModelImages:u}:{})),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()})},Qt&&{credentials:"include"})),w=yield O.json();if(!w.success){if(w.limitData){const e=new Error(w.error||w.message||(null==ve?void 0:ve["failed-to-start-generation"])||"Failed to start generation");throw e.limitData=w.limitData,e}if(is(w))return;throw new Error(w.error||w.message||(null==ve?void 0:ve["failed-to-start-generation"])||"Failed to start generation")}const N=null!==(o=w.submissionId)&&void 0!==o?o:S;l=N,xt.current=N;const _=()=>jt.current===N;if(_())return;ts&&Ie&&ae&&kt.current.add(ae);const C=Object.assign(Object.assign({},ms()),{message:p,documentIds:m?c:[],uploadedModelImages:m?u:[],hasUploadedDocuments:m,isHidden:s,metadata:null!=j?j:null});pt?(fs(),U.fireDeploymentFirstMessageSubmittedWebhook(C)):Et.current=C,Re("streaming"),_t.current=new AbortController;const T=[];let A=[...null!=ze?ze:[]],D=0,M=!1,q="";for(;!M;)try{const e=yield fetch(`${process.env.NEXT_PUBLIC_PICKAXE_API2_URL}/response/stream/${N}?index=${D}`,{signal:null===(a=_t.current)||void 0===a?void 0:a.signal,headers:{"Cache-Control":"no-cache",Connection:"keep-alive"}});if(!e.body)throw new Error("No response body");const t=e.body.getReader();yt.current=t;const s=new TextDecoder,n=v.createParser({onEvent:e=>{var t,s;if(_())M=!0;else if(e.event&&"ping"!==e.event&&D++,"stop"!==e.event){if("error"===e.event){const t=JSON.parse(e.data);if(t.limitData)return Me(t.limitData),qe(""),void(M=!0);const s=t.error||t.message||(null==ve?void 0:ve["something-went-wrong"])||"Something went wrong.";return is(t)||qe(s),void(M=!0)}if("delta"===e.event){const n=JSON.parse(e.data);if("data-error"===n.type&&H){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 M=!0,H({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 M=!0,H({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 M=!0,H({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 M=!0,H({provider:"composio",toolkitSlug:t.toolkitSlug,serverId:t.serverId,name:t.name}),new Error("STOP_STREAM")}}else if("text-start"===n.type)q="",T.push({type:"text",content:"",isVisible:null===(t=n.isVisible)||void 0===t||t});else if("text-delta"===n.type)q+=n.delta,T[T.length-1].content=q;else if("text-end"===n.type)q="";else if("reasoning-start"===n.type)q="",T.push({type:"reasoning",content:"",isVisible:null===(s=n.isVisible)||void 0===s||s});else if("reasoning-delta"===n.type)q+=n.delta,T[T.length-1].content=q;else if("reasoning-end"===n.type)q="";else if(n.type.startsWith("data-")){const e=n;T.push({type:e.type,content:JSON.stringify(e.data),isVisible:!0})}St.current=P(T);const i=P(T);Le((e=>{const t=e.findIndex((e=>e.id===I)),s=Object.assign(Object.assign({},y),{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);A=A.filter((e=>!(e.id===t.id&&e.version===t.version))),A.push(Object.assign(Object.assign({},t),{content:"",status:"streaming"})),Qe([...A]),Ge.startsWith("inline")||Ze({id:t.id,version:t.version})}else if("artifact_updated"===e.event){const t=JSON.parse(e.data);A=A.filter((e=>!(e.id===t.id&&e.version===t.version))),A.push(Object.assign(Object.assign({},t),{content:"",status:"updating"})),Qe(A),Ge.startsWith("inline")||Ze({id:t.id,version:t.version})}else if("artifact_rewrite"===e.event){const t=JSON.parse(e.data);A=A.filter((e=>!(e.id===t.id&&e.version===t.version))),A.push(Object.assign(Object.assign({},t),{content:"",status:"streaming"})),Qe(A),Ge.startsWith("inline")||Ze({id:t.id,version:t.version})}else if("artifact_content"===e.event){const t=JSON.parse(e.data),s=t.token.replace(/\u200B/g,"");A=A.map((e=>e.id===t.id&&e.version===t.version?Object.assign(Object.assign({},e),{content:e.content+s,status:"streaming"}):e)),Qe(A)}else if("artifact_finished"===e.event){const t=JSON.parse(e.data);Qe(A.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 Me(t.limitData),qe(""),void(M=!0);const s=t.error||t.message||(null==ve?void 0:ve["something-went-wrong-try-again"])||"Something went wrong, please try again.";if(is(t))return void(M=!0);qe(s)}else"stop"===e.event&&(M=!0)}else M=!0}});for(;;){if(_()){M=!0,t.cancel().catch((()=>{}));break}const{value:e,done:i}=yield t.read();if(_()){M=!0,t.cancel().catch((()=>{}));break}if(i)break;n.feed(s.decode(e))}M||_()||(yield new Promise((e=>setTimeout(e,1e3))))}catch(e){if("STOP_STREAM"===e.message||L(e)||_())return void(M=!0);console.warn("Stream connection lost, retrying...",e),yield new Promise((e=>setTimeout(e,1e3)))}null==Ee||Ee(ae)}catch(e){if(L(e))return;if(e.limitData)Me(e.limitData),qe("");else{let t=O.default(e)||"";t&&!t.includes("Unexpected token 'A',")||(t=(null==ve?void 0:ve["high-traffic-try-again-later"])||"Oops! We're experiencing high traffic at the moment. Please try again later."),is(t)||qe(t)}}finally{const e=!l||xt.current===l;Ye(),e&&(Re("idle"),Je(),yt.current=null),l&&e&&(xt.current=null,St.current=[]),yield as()}}));return ns?null:t.jsx("div",Object.assign({className:_.default("flex w-full flex-shrink-0 flex-col items-center",!ss&&"px-4 pb-8"),dir:ye?"rtl":"ltr"},{children:t.jsxs("div",Object.assign({className:"flex w-full max-w-[800px] flex-col"},{children:[t.jsxs("div",Object.assign({ref:Nt,className:_.default("relative flex flex-col w-full justify-end gap-y-3 py-[3px]","block"===fe.formFieldStyle&&"shadow"),style:Object.assign(Object.assign({},Jt),{maxHeight:`${Ut}px`,overflowY:"auto"})},{children:[ws&&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:Jt.backgroundColor?`${Jt.backgroundColor}E6`:void 0,borderColor:ge.text+"20",color:ge.text,borderTopRightRadius:fe.cornerRadius+"px",borderTopLeftRadius:fe.cornerRadius+"px"}},{children:[t.jsx("div",Object.assign({className:"flex items-center gap-2 text-sm font-medium"},{children:t.jsxs("span",{children:[ys.toLocaleString()," ",cs?(null==ve?void 0:ve.credits)||"Credits":(null==ve?void 0:ve.uses)||"Uses"," ",(null==ve?void 0:ve.remaining)||"remaining"]})})),t.jsxs("div",Object.assign({className:"flex items-center gap-3"},{children:[!Ns&&t.jsx("button",Object.assign({className:"rounded-md px-3 py-1.5 text-xs font-semibold transition-opacity hover:opacity-90",style:{backgroundColor:ge.accent,color:ge.accentText},onClick:e=>{if(e.preventDefault(),e.stopPropagation(),_s)return void window.open(_s,"_blank","noopener,noreferrer");const t=k.buildUpgradeUrl({baseUrl:ct,accessGroupId:null==je?void 0:je.accessGroupId,redirectUrl:document.URL});t&&(k.isInIframe()?window.open(t):location.href=t)}},{children:ks})),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:()=>gt(!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"})}))}))]}))]})),!Pe&&Fe.length>0&&t.jsx(x.default,{className:"p-4 pb-0",isDisabled:Pe}),t.jsxs("div",Object.assign({className:"relative flex w-full flex-col"},{children:[Tt&&t.jsxs("div",Object.assign({className:"absolute left-4 top-1/2 flex -translate-y-1/2 select-none items-center gap-x-2"},{children:[t.jsx("span",{className:"h-2 w-2 animate-pulse rounded-full bg-c-secondary",style:{backgroundColor:null!==(ie=ge.accent)&&void 0!==ie?ie:"#ff0000"}}),t.jsx("span",Object.assign({className:"text-sm text-c-secondary font-semilight",style:{color:ge.text+"90"}},{children:(null==ve?void 0:ve.listening)||"Listening..."}))]})),t.jsx(j.default,Object.assign({ref:Ot,className:_.default(Wt.i1,"py-3.5 max-h-60 px-4 w-full border-transparent bg-transparent",!st.trim()&&!st.includes("\n")&&"overflow-hidden text-ellipsis whitespace-nowrap placeholder:whitespace-normal placeholder:overflow-visible",ye?"text-right":"text-left",os&&"mb-12",Tt&&"text-transparent"),value:st,placeholder:rs,onChange:e=>{nt(e)},onKeyDown:e=>{be||Rt||"Enter"===e.key&&(e.shiftKey||(e.preventDefault(),Ve||Pe||Cs()))},onPaste:t=>e.__awaiter(void 0,void 0,void 0,(function*(){const e=Array.from(t.clipboardData.files||[]);if(e.length>0){if(!Zt)return;t.preventDefault(),Se(!1),yield $e(e)}}))},B&&{onFocus:B},$&&{onBlur:$},{dir:ye?"rtl":"ltr"})),t.jsx("div",Object.assign({ref:wt,className:_.default("flex items-center gap-2 absolute right-0 z-2 transition-all duration-200 ease-in-out",os?"bottom-0 mb-2.5":"top-1/2 -translate-y-1/2"),style:Object.assign(Object.assign({},!os&&Jt.backgroundColor&&{backgroundColor:Jt.backgroundColor}),{borderTopRightRadius:fe.cornerRadius+"px",borderBottomRightRadius:fe.cornerRadius+"px"})},{children:Pe?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",onClick:()=>{const t=xt.current;t&&(jt.current=t,(t=>{e.__awaiter(void 0,void 0,void 0,(function*(){if(!(t=null!=t?t:xt.current))return;const e=P(St.current);try{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})},Qt&&{credentials:"include"}))}catch(e){console.warn("Failed to cancel submission",e)}}))})(t)),_t.current&&(_t.current.abort(),_t.current=null),yt.current&&(yt.current.cancel().catch((()=>{})),yt.current=null),Re("idle")},style:{backgroundColor:ge.accent,color:ge.accentText}},{children:t.jsx(y.default,{className:"h-4 w-4 shrink-0"})})):Tt?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",onClick:Lt,style:{backgroundColor:ge.accent,color:ge.accentText}},{children:t.jsx(y.default,{className:"h-4 w-4 shrink-0"})})):t.jsxs(t.Fragment,{children:[Zt&&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:Bt?ge.accent+"10":void 0,color:Bt?ge.accent:ge.accent+"80"},disabled:Ve||Pe,onClick:()=>{var e;return null===(e=bt.current)||void 0===e?void 0:e.click()}},$t,{children:[t.jsx("input",{id:"file-upload",ref:bt,type:"file",accept:[...g.allowedFileMimeTypes,...g.allowedImageMimeTypes,...g.additionalAllowedFileExtensions].join(", "),multiple:!0,hidden:!0,className:"hidden",onChange:t=>e.__awaiter(void 0,void 0,void 0,(function*(){Se(!1),yield $e(Array.from(t.target.files||[])),t.target.value=""}))}),t.jsx(h.default,{className:"h-6 w-6 shrink-0"})]})),es&&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:Tt?ge.accent:Ht?ge.accent+"10":void 0,color:Tt?ge.accentText:Ht?ge.accent:ge.accent+"80"},disabled:Ve||Pe||At,onClick:()=>{Tt?Lt():(It.current=st,Pt(he||"en-US"))}},Kt,{children:t.jsx(I.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:qt||Us?ge.accent:ge.accent+"10",color:qt||Us?ge.accentText:ge.accent+"80"},disabled:!Us,onClick:()=>Cs()},Ft,{children:t.jsx(b.default,{className:_.default("h-6 w-6 shrink-0",ye&&"scale-x-[-1] transform")})}))]})}))]}))]})),Be&&t.jsx(S.default,{error:Be,className:"mt-3"})]}))}))}));B.displayName="Input",exports.default=B;
|
|
@@ -1 +1 @@
|
|
|
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{forwardRef as i,useState as r,useRef as a,useCallback as l,useEffect as d,useMemo as c,useImperativeHandle as u}from"react";import{usePickaxeContext as p}from"../../../hooks/pickaxe/usePickaxeContext.js";import{useResponseContext as m}from"../../../hooks/pickaxe/useResponseContext.js";import{useStyleInput as f}from"../../../hooks/studio/useStyleInput.js";import{useStyleFontSize as g}from"../../../hooks/studio/useStyleFontSize.js";import{useConversation as v}from"../../../hooks/pickaxe/useConversation.js";import{useDimensionContext as h}from"../../../hooks/pickaxe/useDimensionContext.js";import{useAuthContext as b}from"../Addons/Auth/hooks/useAuthContext.js";import{useDocument as y}from"../Addons/Document/hooks/useDocument.js";import{useScroll as x}from"../Addons/Scroll/hooks/useScroll.js";import{useArtifactContext as I}from"../Addons/Artifact/hooks/useArtifactContext.js";import{useHover as j}from"../../../hooks/core/useHover.js";import{useMediaQuery as w}from"../../../hooks/core/useMediaQuery.js";import{allowedFileMimeTypes as O,allowedImageMimeTypes as k,additionalAllowedFileExtensions as S}from"../../../common/documents.js";import{createParser as N}from"eventsource-parser";import C from"../../Icons/attach-vertical.svg.js";import E from"../../Icons/arrow-right.svg.js";import _ from"../../Icons/microphone.svg.js";import U from"../../Icons/stop.svg.js";import T from"../Addons/Document/List.js";import A from"../../Core/Textarea.js";import P from"../../Core/ErrorAlert.js";import D from"../../../common/error.js";import{pickaxeApi2 as L}from"../../../common/api/pickaxe.js";import{getValidationFailure as R}from"../../../common/validation.js";import M from"../../../common/cn.js";import{buildUpgradeUrl as B,isInIframe as $,initializeEmbedUserId as X}from"../../../common/utils.js";import{getPickaxeConfigMetadata as K}from"../../../common/pickaxeConfig.js";import{fireDeploymentSessionInitializedWebhook as V,fireDeploymentFirstMessageSubmittedWebhook as F}from"../../../common/deploymentWebhooks.js";import{useStudio as H}from"../../../hooks/studio/useStudio.js";import{useSpeech as W}from"../../../hooks/pickaxe/useSpeech.js";import{STUDIO_INFINITY_VALUE as G}from"../common/PickaxeCommon.js";const J=e=>"string"==typeof e&&e.trim().length>0,z=e=>e.map((e=>Object.assign({},e))),q=e=>e instanceof Error&&("AbortError"===e.name||"BodyStreamBuffer was aborted"===e.message),Q=(e,t)=>{if(e&&"object"==typeof e)return e[t]},Y=(e,t)=>{const n=Q(e,t);return J(n)?n:null},Z=e=>{const t=Number(e);return Number.isFinite(t)?t:void 0},ee=({studioUser:e,deploymentId:t,portalId:n})=>{var o,s;const i=Array.isArray(Q(e,"uses"))?Q(e,"uses"):[],r=(({deploymentId:e,portalId:t})=>J(e)?{type:"deployment",id:e}:J(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}},te=i((({resubmitPrompt:i,onFocus:Q,onBlur:te,onInputHeightChange:ne,initSmitheryAuthData:oe},se)=>{var ie,re,ae,le,de,ce,ue,pe,me,fe,ge,ve;const{origin:he,pickaxeId:be,sessionId:ye,sender:xe,senderType:Ie,portalId:je,deploymentId:we,deploymentType:Oe,pickaxe:ke,styles:Se,colors:Ne,translations:Ce,locale:Ee,forceMobile:_e,isNewChat:Ue,isRtl:Te,isShowFeedbackMessage:Ae,accessGroup:Pe,setIsNewChat:De,setIsShowIceBreaker:Le,setValidationStatus:Re,setValidationUpgradeGroups:Me,setValidationUpgradeUrl:Be,setAccessGroup:$e,onGenerateComplete:Xe}=p(),{token:Ke,isLoggedOut:Ve,isSent:Fe,isPricingAuth:He}=b(),{messages:We,isGenerating:Ge,setMessages:Je,setStatus:ze,setLimitData:qe,setError:Qe}=m(),{documents:Ye,isUploading:Ze,documentError:et,onFileUpload:tt,setDocuments:nt,setDocumentError:ot}=y(),{studio:st}=H(),{scrollStartSession:it,scrollEndSession:rt,scrollToBottom:at}=x({auto:!0}),{artifacts:lt,currentPopupType:dt,setArtifacts:ct,setCurrentArtifact:ut}=I(),{height:pt}=h(),mt=v(),[ft,gt]=r(""),[vt,ht]=r(!1),[bt,yt]=r(!1),[xt,It]=r(null),[jt,wt]=r(null),[Ot,kt]=r(!1),[St,Nt]=r(!1),[Ct,Et]=r(0),_t=a(null),Ut=a(""),Tt=a(null),At=a(null),Pt=a(null),Dt=a([]),Lt=a(null),Rt=a(null),Mt=a(null),Bt=a(null),$t=a(new Set),Xt=a(null),Kt=Math.max(.4*pt,100),{speechTranscript:Vt,isSpeechListening:Ft,isSpeechProcessing:Ht,isSpeechSupported:Wt,onStartListening:Gt,onStopListening:Jt}=W(),[zt]=w("(max-width: 480px)"),qt=j(),{isHover:Qt}=qt,Yt=e(qt,["isHover"]),Zt=j(),{isHover:en}=Zt,tn=e(Zt,["isHover"]),nn=j(),{isHover:on}=nn,sn=e(nn,["isHover"]),rn=g(),an=f(),ln="undefined"!=typeof window?window.location.hostname:"",dn="undefined"!=typeof window?window.location.href:"",cn="undefined"!=typeof window&&window.self!==window.top,un=ln.includes("pickaxe.co")&&!dn.includes("https://studio.pickaxe.co/_embed")&&!cn,pn=null!==(re=null===(ie=null==ke?void 0:ke.documentuploadtype)||void 0===ie?void 0:ie.startsWith("enduserupload"))&&void 0!==re&&re,mn=Wt&&(null==ke?void 0:ke.enablevoicetotext),fn=J(we),gn="chat-input"===Oe&&Ue&&!Fe,vn="chat-input"===Oe&&He&&Ve&&Fe,hn=l((e=>{const t=R(e);return!!t&&(Qe(""),qe(null),Re(t.status),$e(t.accessGroup),Me(t.upgradeGroups),Be(t.upgradeUrl),!0)}),[Qe,qe,Re,Me,Be,$e]),bn=null!==(ae=null==ke?void 0:ke.placeholdertext)&&void 0!==ae?ae:Te?"بماذا تريد أن تتحدث؟":(null==Ce?void 0:Ce["what-do-you-want-to-talk-about"])||"What do you want to talk about?",yn=vt||bt,xn=l((()=>t(void 0,void 0,void 0,(function*(){kt(!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==ke?void 0:ke.studioid},Ke?{studioSessionToken:Ke}:xe?{sender:xe}:{sender:X()}))},(!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}})),un&&{credentials:"include"})),t=yield e.json();(null==t?void 0:t.studioUser)&&(It(t.studioUser),wt(t.url))}catch(e){console.error("Failed to fetch studio user:",e)}finally{kt(!0)}}))),[un,null==ke?void 0:ke.studioid,xe,Ke]);d((()=>{xn()}),[xn]);const In=Number(null!==(le=null==Pe?void 0:Pe.limit)&&void 0!==le?le:0),jn="string"==typeof(null==Pe?void 0:Pe.limitInterval)?Pe.limitInterval:null,wn=!!(null==st?void 0:st.data.usage)&&st.data.usage.isCredits,On=c((()=>{var e,t,n,o,s;return null!==(s=null!==(o=null!==(n=null!==(t=null!==(e=null!=je?je:Y(xt,"portalId"))&&void 0!==e?e:Y(xt,"portalid"))&&void 0!==t?t:Y(Pe,"portalId"))&&void 0!==n?n:Y(Pe,"portalid"))&&void 0!==o?o:Y(ke,"portalId"))&&void 0!==s?s:Y(ke,"portalid")}),[Pe,je,ke,xt]),kn=c((()=>ee({studioUser:xt,deploymentId:we,portalId:On})),[we,On,xt]);d((()=>{fn&&Ue&&ye&&$t.current.add(ye)}),[Ue,ye,fn]);const Sn=l((()=>{var e,t,n;return{studioId:null==ke?void 0:ke.studioid,userEmail:Y(xt,"email"),userId:null!==(e=Y(xt,"userId"))&&void 0!==e?e:Y(xt,"userid"),sessionId:ye,deploymentId:we,deploymentType:Oe,portalId:On,accessGroupId:null!==(t=null==Pe?void 0:Pe.accessGroupId)&&void 0!==t?t:null,pickaxeId:be,sender:xe,senderType:Ie,origin:he,metadata:null!==(n=K(we))&&void 0!==n?n:null}}),[null==Pe?void 0:Pe.accessGroupId,we,Oe,he,null==ke?void 0:ke.studioid,be,On,xe,Ie,ye,xt]),Nn=l((()=>!!(fn&&Ot&&ye)&&(!!$t.current.has(ye)&&(V(Sn()),$t.current.delete(ye),!0))),[Sn,Ot,ye,fn]);d((()=>{if(!Ot||!ye)return;Nn();const e=Xt.current;(null==e?void 0:e.sessionId)===ye&&(F(Object.assign(Object.assign(Object.assign({},e),Sn()),{message:e.message,documentIds:e.documentIds,uploadedModelImages:e.uploadedModelImages,hasUploadedDocuments:e.hasUploadedDocuments,isHidden:e.isHidden})),Xt.current=null)}),[Nn,Sn,Ot,ye]);const Cn={currentUses:Z(null==xt?void 0:xt.currentUses),extraUses:Z(null==xt?void 0:xt.extraUses)},En=kn.scope?{currentUses:null!==(ce=Z(null===(de=kn.record)||void 0===de?void 0:de.currentUses))&&void 0!==ce?ce:0,extraUses:null!==(pe=Z(null===(ue=kn.record)||void 0===ue?void 0:ue.extraUses))&&void 0!==pe?pe:0}:{currentUses:0,extraUses:0},_n=Y(xt,"type"),Un="guest"===_n||!_n&&Ve?En:Cn;d((()=>{let e=!0;return t(void 0,void 0,void 0,(function*(){var t;if(wn&&(null===(t=null==st?void 0:st.data)||void 0===t?void 0:t.workspaceId))try{const t=yield L.get(`/cost_per_run?workspaceId=${st.data.workspaceId}`,{withCredentials:!1});e&&Et(1e4*(Number(t.data.costPerRun)||0))}catch(t){console.error("Failed to fetch average cost per run:",t),e&&Et(0)}else e&&Et(0)})),()=>{e=!1}}),[wn,null===(me=null==st?void 0:st.data)||void 0===me?void 0:me.workspaceId]);const Tn=(({currentUses:e,extraUses:t,limit:n,limitInterval:o})=>{const s=Number(null!=e?e:0),i=Number(null!=t?t:0);return n===G||i===G?G:"one_time"===o?Math.max(0,i-s):Math.max(0,n-s)+i})({currentUses:Un.currentUses,extraUses:Un.extraUses,limit:In,limitInterval:jn}),An=Tn===G?G:Math.max(0,Math.ceil(Tn)),Pn=(({extraUses:e,limit:t,limitInterval:n})=>{const o=Number(null!=e?e:0);return t===G||o===G?G:"one_time"===n?Math.max(0,o):Math.max(0,t)+Math.max(0,o)})({extraUses:Un.extraUses,limit:In,limitInterval:jn}),Dn=Pn===G?G:Math.ceil(.05*Pn),Ln=wn?Math.ceil(5*Ct):5,Rn=Dn===G?G:Math.max(Dn,Ln),Mn=c((()=>!!xt&&(!St&&(An!==G&&(!(An<=0)&&An<=Rn)))),[St,Rn,An,xt]),Bn=Boolean(null==Pe?void 0:Pe.hideUpgradeOptions),$n=!Bn&&(null===(fe=null==Pe?void 0:Pe.upgrade)||void 0===fe?void 0:fe.isLinkToCustomURL)&&"string"==typeof Pe.upgrade.limitLink&&Pe.upgrade.limitLink.trim().length>0?Pe.upgrade.limitLink.trim():null,Xn=$n&&"string"==typeof(null===(ge=null==Pe?void 0:Pe.upgrade)||void 0===ge?void 0:ge.limitCTA)&&Pe.upgrade.limitCTA.trim().length>0?Pe.upgrade.limitCTA:(null==Ce?void 0:Ce["pricing.upgrade"])||(null==Ce?void 0:Ce.upgrade)||"Upgrade",Kn=c((()=>{var e,t,n;return!!Ue&&(!!ke&&(!mt.isLoading&&(!((null!==(t=null===(e=mt.data)||void 0===e?void 0:e.messages.length)&&void 0!==t?t:0)>1)&&(!!(null===(n=ke.icebreakers)||void 0===n?void 0:n.length)&&(!Ae&&!gn)))))}),[ke,Ue,Ae,gn,mt.data,mt.isLoading]),Vn=c((()=>{if(Ge||Ze)return!1;const e=pn&&Ye.length>0&&Ye.every((e=>"finished"===e.status));return!(!ft.trim()&&!e)&&Ye.every((e=>"finished"===e.status||e.isInsertedAsRaw))}),[pn,Ge,Ze,ft,Ye]);u(se,(()=>({onSubmit:Fn}))),d((()=>{Le(Kn)}),[Kn]),d((()=>{var e;if(i){const t=Array.from(We),n=null===(e=t[t.length-2].parts.find((e=>"text"===e.type)))||void 0===e?void 0:e.content;Fn(n,!0)}}),[i]),d((()=>{if(!Mt.current||!ne)return;const e=new ResizeObserver((e=>{for(const t of e)ne(t.contentRect.height)}));return e.observe(Mt.current),()=>{e.disconnect()}}),[ne]),d((()=>{if(!Ft)return;const e=Ut.current?`${Ut.current} `:"";gt(`${e}${Vt}`)}),[Vt,Ft]),d((()=>{if(!Lt.current)return;(()=>{if(!Lt.current)return;let e=Lt.current.scrollHeight>52;ft.includes("\n")||Ye.length?e=!0:ft.trim()||(e=!1),ht(e)})()}),[ft,Ye]),d((()=>{const e=Lt.current,t=Rt.current;if(!e||!t||vt||ft.includes("\n"))return void yt(!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=ft||bn,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;yt(i>l)}),[ft,vt,bn]);const Fn=(e,n=!1)=>t(void 0,void 0,void 0,(function*(){var t,o,s,i;let r=null;try{if(Ge||Ze)return;const a=Ye.filter((e=>"finished"===e.status&&!e.isInsertedAsRaw)),l=a.map((e=>e.documentId)).filter(Boolean),d=a.filter((e=>"image"===e.type)).map((e=>{const t=e.name.split(".").pop()||"";return{documentId:e.documentId,extension:t}})),c=null!=e?e:ft,u=null!==(o=null===(t=null==ke?void 0:ke.documentuploadtype)||void 0===t?void 0:t.startsWith("enduserupload"))&&void 0!==o&&o&&l.length>0;if(!c&&!u)return;Qe(""),ot(""),qe(null),gt(""),De(!1),ze("fetching"),it(),at();const p=[...n?Array.from(We.slice(0,We.length-1)):Array.from(We),...n?[]:[{id:We.length+1,role:"user",parts:[{type:"text",content:c,isVisible:!0}],documentIds:u?l:[]}],{id:We.length+(n?0:2),role:"assistant",parts:[],documentIds:[]}];Je(p),at(),u&&nt([]);const m=K(we),f="undefined"!=typeof crypto&&"randomUUID"in crypto?crypto.randomUUID():`submission-${Date.now()}-${Math.random().toString(36).slice(2)}`;r=f,At.current=f,Pt.current=null,Dt.current=[];const g=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({origin:he,pickaxeId:be,sessionId:ye,submissionId:f,senderType:Ie,value:c},u&&{documentIds:l}),xe&&{sender:xe}),Ke&&{studioSessionToken:Ke}),!Ke&&!xe&&{sender:X()}),On&&{portalId:On}),we&&{deploymentId:we}),m&&{metadata:m}),u&&d.length>0?{uploadedModelImages:d}:{})),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()})},un&&{credentials:"include"})),v=yield g.json();if(!v.success){if(v.limitData){const e=new Error(v.error||v.message||(null==Ce?void 0:Ce["failed-to-start-generation"])||"Failed to start generation");throw e.limitData=v.limitData,e}if(hn(v))return;throw new Error(v.error||v.message||(null==Ce?void 0:Ce["failed-to-start-generation"])||"Failed to start generation")}const h=null!==(s=v.submissionId)&&void 0!==s?s:f;r=h,At.current=h;const b=()=>Pt.current===h;if(b())return;fn&&Ue&&ye&&$t.current.add(ye);const y=Object.assign(Object.assign({},Sn()),{message:c,documentIds:u?l:[],uploadedModelImages:u?d:[],hasUploadedDocuments:u,isHidden:n,metadata:null!=m?m:null});Ot?(Nn(),F(y)):Xt.current=y,ze("streaming"),Bt.current=new AbortController;const x=p.length-1,I=[];let j=[...null!=lt?lt:[]],w=0,O=!1,k="";for(;!O;)try{const e=yield fetch(`${process.env.NEXT_PUBLIC_PICKAXE_API2_URL}/response/stream/${h}?index=${w}`,{signal:null===(i=Bt.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();Tt.current=t;const n=new TextDecoder,o=N({onEvent:e=>{var t,n;if(b())O=!0;else if(e.event&&"ping"!==e.event&&w++,"stop"!==e.event){if("error"===e.event){const t=JSON.parse(e.data);if(t.limitData)return qe(t.limitData),Qe(""),void(O=!0);const n=t.error||t.message||(null==Ce?void 0:Ce["something-went-wrong"])||"Something went wrong.";return hn(t)||Qe(n),void(O=!0)}if("delta"===e.event){const o=JSON.parse(e.data);if("data-error"===o.type&&oe){const e=o.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*['"]([^'"]+)['"]/),o=e.match(/['"]name['"]\s*:\s*['"]([^'"]+)['"]/);if(t&&t[1]&&n&&n[1]&&o&&o[1])throw O=!0,oe({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 O=!0,oe({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 O=!0,oe({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 O=!0,oe({provider:"composio",toolkitSlug:t.toolkitSlug,serverId:t.serverId,name:t.name}),new Error("STOP_STREAM")}}else if("text-start"===o.type)k="",I.push({type:"text",content:"",isVisible:null===(t=o.isVisible)||void 0===t||t});else if("text-delta"===o.type)k+=o.delta,I[I.length-1].content=k;else if("text-end"===o.type)k="";else if("reasoning-start"===o.type)k="",I.push({type:"reasoning",content:"",isVisible:null===(n=o.isVisible)||void 0===n||n});else if("reasoning-delta"===o.type)k+=o.delta,I[I.length-1].content=k;else if("reasoning-end"===o.type)k="";else if(o.type.startsWith("data-")){const e=o;I.push({type:e.type,content:JSON.stringify(e.data),isVisible:!0})}Dt.current=z(I),Je([...p.slice(0,x),Object.assign(Object.assign({},p[p.length-1]),{id:We.length+1,role:"assistant",parts:I})])}else if("artifact_created"===e.event){const t=JSON.parse(e.data);j=j.filter((e=>!(e.id===t.id&&e.version===t.version))),j.push(Object.assign(Object.assign({},t),{content:"",status:"streaming"})),ct([...j]),dt.startsWith("inline")||ut({id:t.id,version:t.version})}else if("artifact_updated"===e.event){const t=JSON.parse(e.data);j=j.filter((e=>!(e.id===t.id&&e.version===t.version))),j.push(Object.assign(Object.assign({},t),{content:"",status:"updating"})),ct(j),dt.startsWith("inline")||ut({id:t.id,version:t.version})}else if("artifact_rewrite"===e.event){const t=JSON.parse(e.data);j=j.filter((e=>!(e.id===t.id&&e.version===t.version))),j.push(Object.assign(Object.assign({},t),{content:"",status:"streaming"})),ct(j),dt.startsWith("inline")||ut({id:t.id,version:t.version})}else if("artifact_content"===e.event){const t=JSON.parse(e.data),n=t.token.replace(/\u200B/g,"");j=j.map((e=>e.id===t.id&&e.version===t.version?Object.assign(Object.assign({},e),{content:e.content+n,status:"streaming"}):e)),ct(j)}else if("artifact_finished"===e.event){const t=JSON.parse(e.data);ct(j.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 qe(t.limitData),Qe(""),void(O=!0);const n=t.error||t.message||(null==Ce?void 0:Ce["something-went-wrong-try-again"])||"Something went wrong, please try again.";if(hn(t))return void(O=!0);Qe(n)}else"stop"===e.event&&(O=!0)}else O=!0}});for(;;){if(b()){O=!0,t.cancel().catch((()=>{}));break}const{value:e,done:s}=yield t.read();if(b()){O=!0,t.cancel().catch((()=>{}));break}if(s)break;o.feed(n.decode(e))}O||b()||(yield new Promise((e=>setTimeout(e,1e3))))}catch(e){if("STOP_STREAM"===e.message||q(e)||b())return void(O=!0);console.warn("Stream connection lost, retrying...",e),yield new Promise((e=>setTimeout(e,1e3)))}null==Xe||Xe(ye)}catch(e){if(q(e))return;if(e.limitData)qe(e.limitData),Qe("");else{let t=D(e)||"";t&&!t.includes("Unexpected token 'A',")||(t=(null==Ce?void 0:Ce["high-traffic-try-again-later"])||"Oops! We're experiencing high traffic at the moment. Please try again later."),hn(t)||Qe(t)}}finally{const e=!r||At.current===r;at(),e&&(ze("idle"),rt(),Tt.current=null),r&&e&&(At.current=null,Dt.current=[]),yield xn()}}));return vn?null:n("div",Object.assign({className:M("flex w-full flex-shrink-0 flex-col items-center",!gn&&"px-4 pb-8"),dir:Te?"rtl":"ltr"},{children:o("div",Object.assign({className:"flex w-full max-w-[800px] flex-col"},{children:[o("div",Object.assign({ref:Mt,className:M("relative flex flex-col w-full justify-end gap-y-3 py-[3px]","block"===Se.formFieldStyle&&"shadow"),style:Object.assign(Object.assign({},an),{maxHeight:`${Kt}px`,overflowY:"auto"})},{children:[Mn&&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:an.backgroundColor?`${an.backgroundColor}E6`:void 0,borderColor:Ne.text+"20",color:Ne.text,borderTopRightRadius:Se.cornerRadius+"px",borderTopLeftRadius:Se.cornerRadius+"px"}},{children:[n("div",Object.assign({className:"flex items-center gap-2 text-sm font-medium"},{children:o("span",{children:[An.toLocaleString()," ",wn?(null==Ce?void 0:Ce.credits)||"Credits":(null==Ce?void 0:Ce.uses)||"Uses"," ",(null==Ce?void 0:Ce.remaining)||"remaining"]})})),o("div",Object.assign({className:"flex items-center gap-3"},{children:[!Bn&&n("button",Object.assign({className:"rounded-md px-3 py-1.5 text-xs font-semibold transition-opacity hover:opacity-90",style:{backgroundColor:Ne.accent,color:Ne.accentText},onClick:e=>{if(e.preventDefault(),e.stopPropagation(),$n)return void window.open($n,"_blank","noopener,noreferrer");const t=B({baseUrl:jt,accessGroupId:null==Pe?void 0:Pe.accessGroupId,redirectUrl:document.URL});t&&($()?window.open(t):location.href=t)}},{children:Xn})),n("button",Object.assign({className:"flex h-6 w-6 items-center justify-center rounded-full opacity-60 transition-opacity hover:opacity-100",onClick:()=>Nt(!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"})}))}))]}))]})),!Ge&&Ye.length>0&&n(T,{className:"p-4 pb-0",isDisabled:Ge}),o("div",Object.assign({className:"relative flex w-full flex-col"},{children:[Ft&&o("div",Object.assign({className:"absolute left-4 top-1/2 flex -translate-y-1/2 select-none items-center gap-x-2"},{children:[n("span",{className:"h-2 w-2 animate-pulse rounded-full bg-c-secondary",style:{backgroundColor:null!==(ve=Ne.accent)&&void 0!==ve?ve:"#ff0000"}}),n("span",Object.assign({className:"text-sm text-c-secondary font-semilight",style:{color:Ne.text+"90"}},{children:(null==Ce?void 0:Ce.listening)||"Listening..."}))]})),n(A,Object.assign({ref:Lt,className:M(rn.i1,"py-3.5 max-h-60 px-4 w-full border-transparent bg-transparent",!ft.trim()&&!ft.includes("\n")&&"overflow-hidden text-ellipsis whitespace-nowrap placeholder:whitespace-normal placeholder:overflow-visible",Te?"text-right":"text-left",yn&&"mb-12",Ft&&"text-transparent"),value:ft,placeholder:bn,onChange:e=>{gt(e)},onKeyDown:e=>{_e||zt||"Enter"===e.key&&(e.shiftKey||(e.preventDefault(),Ze||Ge||Fn()))},onPaste:e=>t(void 0,void 0,void 0,(function*(){const t=Array.from(e.clipboardData.files||[]);if(t.length>0){if(!pn)return;e.preventDefault(),De(!1),yield tt(t)}}))},Q&&{onFocus:Q},te&&{onBlur:te},{dir:Te?"rtl":"ltr"})),n("div",Object.assign({ref:Rt,className:M("flex items-center gap-2 absolute right-0 z-2 transition-all duration-200 ease-in-out",yn?"bottom-0 mb-2.5":"top-1/2 -translate-y-1/2"),style:Object.assign(Object.assign({},!yn&&an.backgroundColor&&{backgroundColor:an.backgroundColor}),{borderTopRightRadius:Se.cornerRadius+"px",borderBottomRightRadius:Se.cornerRadius+"px"})},{children:Ge?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",onClick:()=>{const e=At.current;e&&(Pt.current=e,(e=>{t(void 0,void 0,void 0,(function*(){if(!(e=null!=e?e:At.current))return;const t=z(Dt.current);try{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})},un&&{credentials:"include"}))}catch(e){console.warn("Failed to cancel submission",e)}}))})(e)),Bt.current&&(Bt.current.abort(),Bt.current=null),Tt.current&&(Tt.current.cancel().catch((()=>{})),Tt.current=null),ze("idle")},style:{backgroundColor:Ne.accent,color:Ne.accentText}},{children:n(U,{className:"h-4 w-4 shrink-0"})})):Ft?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",onClick:Jt,style:{backgroundColor:Ne.accent,color:Ne.accentText}},{children:n(U,{className:"h-4 w-4 shrink-0"})})):o(s,{children:[pn&&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:en?Ne.accent+"10":void 0,color:en?Ne.accent:Ne.accent+"80"},disabled:Ze||Ge,onClick:()=>{var e;return null===(e=_t.current)||void 0===e?void 0:e.click()}},tn,{children:[n("input",{id:"file-upload",ref:_t,type:"file",accept:[...O,...k,...S].join(", "),multiple:!0,hidden:!0,className:"hidden",onChange:e=>t(void 0,void 0,void 0,(function*(){De(!1),yield tt(Array.from(e.target.files||[])),e.target.value=""}))}),n(C,{className:"h-6 w-6 shrink-0"})]})),mn&&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:Ft?Ne.accent:on?Ne.accent+"10":void 0,color:Ft?Ne.accentText:on?Ne.accent:Ne.accent+"80"},disabled:Ze||Ge||Ht,onClick:()=>{Ft?Jt():(Ut.current=ft,Gt(Ee||"en-US"))}},sn,{children:n(_,{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:Qt||Vn?Ne.accent:Ne.accent+"10",color:Qt||Vn?Ne.accentText:Ne.accent+"80"},disabled:!Vn,onClick:()=>Fn()},Yt,{children:n(E,{className:M("h-6 w-6 shrink-0",Te&&"scale-x-[-1] transform")})}))]})}))]}))]})),et&&n(P,{error:et,className:"mt-3"})]}))}))}));te.displayName="Input";export{te 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{forwardRef as r,useState as i,useRef as a,useCallback as l,useEffect as d,useMemo as c,useImperativeHandle as u}from"react";import{usePickaxeContext as p}from"../../../hooks/pickaxe/usePickaxeContext.js";import{useResponseContext as m}from"../../../hooks/pickaxe/useResponseContext.js";import{useStyleInput as f}from"../../../hooks/studio/useStyleInput.js";import{useStyleFontSize as g}from"../../../hooks/studio/useStyleFontSize.js";import{useConversation as v}from"../../../hooks/pickaxe/useConversation.js";import{useDimensionContext as h}from"../../../hooks/pickaxe/useDimensionContext.js";import{useAuthContext as y}from"../Addons/Auth/hooks/useAuthContext.js";import{useDocument as b}from"../Addons/Document/hooks/useDocument.js";import{useScroll as x}from"../Addons/Scroll/hooks/useScroll.js";import{useArtifactContext as I}from"../Addons/Artifact/hooks/useArtifactContext.js";import{useHover as j}from"../../../hooks/core/useHover.js";import{useMediaQuery as w}from"../../../hooks/core/useMediaQuery.js";import{allowedFileMimeTypes as O,allowedImageMimeTypes as k,additionalAllowedFileExtensions as S}from"../../../common/documents.js";import{createParser as N}from"eventsource-parser";import C from"../../Icons/attach-vertical.svg.js";import E from"../../Icons/arrow-right.svg.js";import _ from"../../Icons/microphone.svg.js";import U from"../../Icons/stop.svg.js";import T from"../Addons/Document/List.js";import A from"../../Core/Textarea.js";import P from"../../Core/ErrorAlert.js";import D from"../../../common/error.js";import{pickaxeApi2 as L}from"../../../common/api/pickaxe.js";import{getValidationFailure as R}from"../../../common/validation.js";import M from"../../../common/cn.js";import{buildUpgradeUrl as B,isInIframe as $,initializeEmbedUserId as X}from"../../../common/utils.js";import{getPickaxeConfigMetadata as K}from"../../../common/pickaxeConfig.js";import{fireDeploymentSessionInitializedWebhook as V,fireDeploymentFirstMessageSubmittedWebhook as F}from"../../../common/deploymentWebhooks.js";import{useStudio as H}from"../../../hooks/studio/useStudio.js";import{useSpeech as J}from"../../../hooks/pickaxe/useSpeech.js";import{STUDIO_INFINITY_VALUE as W}from"../common/PickaxeCommon.js";const G=e=>"string"==typeof e&&e.trim().length>0,z=e=>e.map((e=>Object.assign({},e))),q=e=>e instanceof Error&&("AbortError"===e.name||"BodyStreamBuffer was aborted"===e.message),Q=e=>{var t;const n=(null!==(t=e.parts)&&void 0!==t?t:[]).filter((e=>!1!==e.isVisible)),o=n.filter((e=>"text"===e.type)).map((e=>{var t;return null!==(t=e.content)&&void 0!==t?t:""})).join("").trim();return o?JSON.stringify({role:e.role,text:o}):JSON.stringify({role:e.role,parts:n.map((e=>{var t;return{type:e.type,content:null!==(t=e.content)&&void 0!==t?t:""}}))})},Y=(e,t)=>{if(e&&"object"==typeof e)return e[t]},Z=(e,t)=>{const n=Y(e,t);return G(n)?n:null},ee=e=>{const t=Number(e);return Number.isFinite(t)?t:void 0},te=({studioUser:e,deploymentId:t,portalId:n})=>{var o,s;const r=Array.isArray(Y(e,"uses"))?Y(e,"uses"):[],i=(({deploymentId:e,portalId:t})=>G(e)?{type:"deployment",id:e}:G(t)?{type:"portal",id:t}:null)({deploymentId:t,portalId:n});if(!i)return{scope:i,record:null};const a=null!==(s=null!==(o=r.find((e=>e.id===i.id&&e.type===i.type)))&&void 0!==o?o:r.find((e=>e.id===i.id)))&&void 0!==s?s:null;return{scope:i,record:a}},ne=r((({resubmitPrompt:r,onFocus:Y,onBlur:ne,onInputHeightChange:oe,initSmitheryAuthData:se},re)=>{var ie,ae,le,de,ce,ue,pe,me,fe,ge,ve,he;const{origin:ye,pickaxeId:be,sessionId:xe,sender:Ie,senderType:je,portalId:we,deploymentId:Oe,deploymentType:ke,pickaxe:Se,styles:Ne,colors:Ce,translations:Ee,locale:_e,forceMobile:Ue,isNewChat:Te,isRtl:Ae,isShowFeedbackMessage:Pe,accessGroup:De,setIsNewChat:Le,setIsShowIceBreaker:Re,setValidationStatus:Me,setValidationUpgradeGroups:Be,setValidationUpgradeUrl:$e,setAccessGroup:Xe,onGenerateComplete:Ke}=p(),{token:Ve,isLoggedOut:Fe,isSent:He,isPricingAuth:Je}=y(),{messages:We,isGenerating:Ge,setMessages:ze,setStatus:qe,setLimitData:Qe,setError:Ye}=m(),{documents:Ze,isUploading:et,documentError:tt,onFileUpload:nt,setDocuments:ot,setDocumentError:st}=b(),{studio:rt}=H(),{scrollStartSession:it,scrollEndSession:at,scrollToBottom:lt}=x({auto:!0}),{artifacts:dt,currentPopupType:ct,setArtifacts:ut,setCurrentArtifact:pt}=I(),{height:mt}=h(),ft=v(),[gt,vt]=i(""),[ht,yt]=i(!1),[bt,xt]=i(!1),[It,jt]=i(null),[wt,Ot]=i(null),[kt,St]=i(!1),[Nt,Ct]=i(!1),[Et,_t]=i(0),Ut=a(null),Tt=a(""),At=a(null),Pt=a(null),Dt=a(null),Lt=a([]),Rt=a(null),Mt=a(null),Bt=a(null),$t=a(null),Xt=a(new Set),Kt=a(null),Vt=Math.max(.4*mt,100),{speechTranscript:Ft,isSpeechListening:Ht,isSpeechProcessing:Jt,isSpeechSupported:Wt,onStartListening:Gt,onStopListening:zt}=J(),[qt]=w("(max-width: 480px)"),Qt=j(),{isHover:Yt}=Qt,Zt=e(Qt,["isHover"]),en=j(),{isHover:tn}=en,nn=e(en,["isHover"]),on=j(),{isHover:sn}=on,rn=e(on,["isHover"]),an=g(),ln=f(),dn="undefined"!=typeof window?window.location.hostname:"",cn="undefined"!=typeof window?window.location.href:"",un="undefined"!=typeof window&&window.self!==window.top,pn=dn.includes("pickaxe.co")&&!cn.includes("https://studio.pickaxe.co/_embed")&&!un,mn=null!==(ae=null===(ie=null==Se?void 0:Se.documentuploadtype)||void 0===ie?void 0:ie.startsWith("enduserupload"))&&void 0!==ae&&ae,fn=Wt&&(null==Se?void 0:Se.enablevoicetotext),gn=G(Oe),vn="chat-input"===ke&&Te&&!He,hn="chat-input"===ke&&Je&&Fe&&He,yn=l((e=>{const t=R(e);return!!t&&(Ye(""),Qe(null),Me(t.status),Xe(t.accessGroup),Be(t.upgradeGroups),$e(t.upgradeUrl),!0)}),[Ye,Qe,Me,Be,$e,Xe]),bn=null!==(le=null==Se?void 0:Se.placeholdertext)&&void 0!==le?le:Ae?"بماذا تريد أن تتحدث؟":(null==Ee?void 0:Ee["what-do-you-want-to-talk-about"])||"What do you want to talk about?",xn=ht||bt,In=l((()=>t(void 0,void 0,void 0,(function*(){St(!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==Se?void 0:Se.studioid},Ve?{studioSessionToken:Ve}:Ie?{sender:Ie}:{sender:X()}))},(!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}})),pn&&{credentials:"include"})),t=yield e.json();(null==t?void 0:t.studioUser)&&(jt(t.studioUser),Ot(t.url))}catch(e){console.error("Failed to fetch studio user:",e)}finally{St(!0)}}))),[pn,null==Se?void 0:Se.studioid,Ie,Ve]);d((()=>{In()}),[In]);const jn=Number(null!==(de=null==De?void 0:De.limit)&&void 0!==de?de:0),wn="string"==typeof(null==De?void 0:De.limitInterval)?De.limitInterval:null,On=!!(null==rt?void 0:rt.data.usage)&&rt.data.usage.isCredits,kn=c((()=>{var e,t,n,o,s;return null!==(s=null!==(o=null!==(n=null!==(t=null!==(e=null!=we?we:Z(It,"portalId"))&&void 0!==e?e:Z(It,"portalid"))&&void 0!==t?t:Z(De,"portalId"))&&void 0!==n?n:Z(De,"portalid"))&&void 0!==o?o:Z(Se,"portalId"))&&void 0!==s?s:Z(Se,"portalid")}),[De,we,Se,It]),Sn=c((()=>te({studioUser:It,deploymentId:Oe,portalId:kn})),[Oe,kn,It]);d((()=>{gn&&Te&&xe&&Xt.current.add(xe)}),[Te,xe,gn]);const Nn=l((()=>{var e,t,n;return{studioId:null==Se?void 0:Se.studioid,userEmail:Z(It,"email"),userId:null!==(e=Z(It,"userId"))&&void 0!==e?e:Z(It,"userid"),sessionId:xe,deploymentId:Oe,deploymentType:ke,portalId:kn,accessGroupId:null!==(t=null==De?void 0:De.accessGroupId)&&void 0!==t?t:null,pickaxeId:be,sender:Ie,senderType:je,origin:ye,metadata:null!==(n=K(Oe))&&void 0!==n?n:null}}),[null==De?void 0:De.accessGroupId,Oe,ke,ye,null==Se?void 0:Se.studioid,be,kn,Ie,je,xe,It]),Cn=l((()=>!!(gn&&kt&&xe)&&(!!Xt.current.has(xe)&&(V(Nn()),Xt.current.delete(xe),!0))),[Nn,kt,xe,gn]);d((()=>{if(!kt||!xe)return;Cn();const e=Kt.current;(null==e?void 0:e.sessionId)===xe&&(F(Object.assign(Object.assign(Object.assign({},e),Nn()),{message:e.message,documentIds:e.documentIds,uploadedModelImages:e.uploadedModelImages,hasUploadedDocuments:e.hasUploadedDocuments,isHidden:e.isHidden})),Kt.current=null)}),[Cn,Nn,kt,xe]);const En={currentUses:ee(null==It?void 0:It.currentUses),extraUses:ee(null==It?void 0:It.extraUses)},_n=Sn.scope?{currentUses:null!==(ue=ee(null===(ce=Sn.record)||void 0===ce?void 0:ce.currentUses))&&void 0!==ue?ue:0,extraUses:null!==(me=ee(null===(pe=Sn.record)||void 0===pe?void 0:pe.extraUses))&&void 0!==me?me:0}:{currentUses:0,extraUses:0},Un=Z(It,"type"),Tn="guest"===Un||!Un&&Fe?_n:En;d((()=>{let e=!0;return t(void 0,void 0,void 0,(function*(){var t;if(On&&(null===(t=null==rt?void 0:rt.data)||void 0===t?void 0:t.workspaceId))try{const t=yield L.get(`/cost_per_run?workspaceId=${rt.data.workspaceId}`,{withCredentials:!1});e&&_t(1e4*(Number(t.data.costPerRun)||0))}catch(t){console.error("Failed to fetch average cost per run:",t),e&&_t(0)}else e&&_t(0)})),()=>{e=!1}}),[On,null===(fe=null==rt?void 0:rt.data)||void 0===fe?void 0:fe.workspaceId]);const An=(({currentUses:e,extraUses:t,limit:n,limitInterval:o})=>{const s=Number(null!=e?e:0),r=Number(null!=t?t:0);return n===W||r===W?W:"one_time"===o?Math.max(0,r-s):Math.max(0,n-s)+r})({currentUses:Tn.currentUses,extraUses:Tn.extraUses,limit:jn,limitInterval:wn}),Pn=An===W?W:Math.max(0,Math.ceil(An)),Dn=(({extraUses:e,limit:t,limitInterval:n})=>{const o=Number(null!=e?e:0);return t===W||o===W?W:"one_time"===n?Math.max(0,o):Math.max(0,t)+Math.max(0,o)})({extraUses:Tn.extraUses,limit:jn,limitInterval:wn}),Ln=Dn===W?W:Math.ceil(.05*Dn),Rn=On?Math.ceil(5*Et):5,Mn=Ln===W?W:Math.max(Ln,Rn),Bn=c((()=>!!It&&(!Nt&&(Pn!==W&&(!(Pn<=0)&&Pn<=Mn)))),[Nt,Mn,Pn,It]),$n=Boolean(null==De?void 0:De.hideUpgradeOptions),Xn=!$n&&(null===(ge=null==De?void 0:De.upgrade)||void 0===ge?void 0:ge.isLinkToCustomURL)&&"string"==typeof De.upgrade.limitLink&&De.upgrade.limitLink.trim().length>0?De.upgrade.limitLink.trim():null,Kn=Xn&&"string"==typeof(null===(ve=null==De?void 0:De.upgrade)||void 0===ve?void 0:ve.limitCTA)&&De.upgrade.limitCTA.trim().length>0?De.upgrade.limitCTA:(null==Ee?void 0:Ee["pricing.upgrade"])||(null==Ee?void 0:Ee.upgrade)||"Upgrade",Vn=c((()=>{var e,t,n;return!!Te&&(!!Se&&(!ft.isLoading&&(!((null!==(t=null===(e=ft.data)||void 0===e?void 0:e.messages.length)&&void 0!==t?t:0)>1)&&(!!(null===(n=Se.icebreakers)||void 0===n?void 0:n.length)&&(!Pe&&!vn)))))}),[Se,Te,Pe,vn,ft.data,ft.isLoading]),Fn=c((()=>{if(Ge||et)return!1;const e=mn&&Ze.length>0&&Ze.every((e=>"finished"===e.status));return!(!gt.trim()&&!e)&&Ze.every((e=>"finished"===e.status||e.isInsertedAsRaw))}),[mn,Ge,et,gt,Ze]);u(re,(()=>({onSubmit:Hn}))),d((()=>{Re(Vn)}),[Vn]),d((()=>{var e;if(r){const t=Array.from(We),n=null===(e=t[t.length-2].parts.find((e=>"text"===e.type)))||void 0===e?void 0:e.content;Hn(n,!0)}}),[r]),d((()=>{if(!Bt.current||!oe)return;const e=new ResizeObserver((e=>{for(const t of e)oe(t.contentRect.height)}));return e.observe(Bt.current),()=>{e.disconnect()}}),[oe]),d((()=>{if(!Ht)return;const e=Tt.current?`${Tt.current} `:"";vt(`${e}${Ft}`)}),[Ft,Ht]),d((()=>{if(!Rt.current)return;(()=>{if(!Rt.current)return;let e=Rt.current.scrollHeight>52;gt.includes("\n")||Ze.length?e=!0:gt.trim()||(e=!1),yt(e)})()}),[gt,Ze]),d((()=>{const e=Rt.current,t=Mt.current;if(!e||!t||ht||gt.includes("\n"))return void xt(!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=gt||bn,document.body.appendChild(s);const r=s.offsetWidth;s.remove();const i=parseFloat(n.paddingLeft)||0,a=parseFloat(n.paddingRight)||0,l=e.clientWidth-i-a-t.offsetWidth;xt(r>l)}),[gt,ht,bn]);const Hn=(e,n=!1)=>t(void 0,void 0,void 0,(function*(){var t,o,s,r,i,a;let l=null;try{if(Ge||et)return;const d=Ze.filter((e=>"finished"===e.status&&!e.isInsertedAsRaw)),c=d.map((e=>e.documentId)).filter(Boolean),u=d.filter((e=>"image"===e.type)).map((e=>{const t=e.name.split(".").pop()||"";return{documentId:e.documentId,extension:t}})),p=null!=e?e:gt,m=null!==(o=null===(t=null==Se?void 0:Se.documentuploadtype)||void 0===t?void 0:t.startsWith("enduserupload"))&&void 0!==o&&o&&c.length>0;if(!p&&!m)return;Ye(""),st(""),Qe(null),vt(""),Le(!1),qe("fetching"),it(),lt();const f=null!==(r=null===(s=ft.data)||void 0===s?void 0:s.messages)&&void 0!==r?r:[],g=((e,t)=>{if(!t.length||!e.length)return e;const n=t.map(Q);let o=0,s=0;for(;s<e.length&&o<n.length;){const t=n.indexOf(Q(e[s]),o);if(-1===t)break;s+=1,o=t+1}const r=new Set(t.filter((e=>"assistant"===e.role)).map(Q));return e.slice(s).filter((e=>"assistant"!==e.role||!r.has(Q(e))))})(We,f),v=n?g.slice(0,g.length-1):g,h=(e=>e.reduce(((e,t)=>Math.max(e,t.id)),0)+1)(v),y=h+(n?0:1),b={id:y,role:"assistant",parts:[],documentIds:[]},x=[...v,...n?[]:[{id:h,role:"user",parts:[{type:"text",content:p,isVisible:!0}],documentIds:m?c:[]}],b];ze(x),lt(),m&&ot([]);const I=K(Oe),j="undefined"!=typeof crypto&&"randomUUID"in crypto?crypto.randomUUID():`submission-${Date.now()}-${Math.random().toString(36).slice(2)}`;l=j,Pt.current=j,Dt.current=null,Lt.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({origin:ye,pickaxeId:be,sessionId:xe,submissionId:j,senderType:je,value:p},m&&{documentIds:c}),Ie&&{sender:Ie}),Ve&&{studioSessionToken:Ve}),!Ve&&!Ie&&{sender:X()}),kn&&{portalId:kn}),Oe&&{deploymentId:Oe}),I&&{metadata:I}),m&&u.length>0?{uploadedModelImages:u}:{})),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()})},pn&&{credentials:"include"})),O=yield w.json();if(!O.success){if(O.limitData){const e=new Error(O.error||O.message||(null==Ee?void 0:Ee["failed-to-start-generation"])||"Failed to start generation");throw e.limitData=O.limitData,e}if(yn(O))return;throw new Error(O.error||O.message||(null==Ee?void 0:Ee["failed-to-start-generation"])||"Failed to start generation")}const k=null!==(i=O.submissionId)&&void 0!==i?i:j;l=k,Pt.current=k;const S=()=>Dt.current===k;if(S())return;gn&&Te&&xe&&Xt.current.add(xe);const C=Object.assign(Object.assign({},Nn()),{message:p,documentIds:m?c:[],uploadedModelImages:m?u:[],hasUploadedDocuments:m,isHidden:n,metadata:null!=I?I:null});kt?(Cn(),F(C)):Kt.current=C,qe("streaming"),$t.current=new AbortController;const E=[];let _=[...null!=dt?dt:[]],U=0,T=!1,A="";for(;!T;)try{const e=yield fetch(`${process.env.NEXT_PUBLIC_PICKAXE_API2_URL}/response/stream/${k}?index=${U}`,{signal:null===(a=$t.current)||void 0===a?void 0:a.signal,headers:{"Cache-Control":"no-cache",Connection:"keep-alive"}});if(!e.body)throw new Error("No response body");const t=e.body.getReader();At.current=t;const n=new TextDecoder,o=N({onEvent:e=>{var t,n;if(S())T=!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 Qe(t.limitData),Ye(""),void(T=!0);const n=t.error||t.message||(null==Ee?void 0:Ee["something-went-wrong"])||"Something went wrong.";return yn(t)||Ye(n),void(T=!0)}if("delta"===e.event){const o=JSON.parse(e.data);if("data-error"===o.type&&se){const e=o.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*['"]([^'"]+)['"]/),o=e.match(/['"]name['"]\s*:\s*['"]([^'"]+)['"]/);if(t&&t[1]&&n&&n[1]&&o&&o[1])throw T=!0,se({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 T=!0,se({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 T=!0,se({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 T=!0,se({provider:"composio",toolkitSlug:t.toolkitSlug,serverId:t.serverId,name:t.name}),new Error("STOP_STREAM")}}else if("text-start"===o.type)A="",E.push({type:"text",content:"",isVisible:null===(t=o.isVisible)||void 0===t||t});else if("text-delta"===o.type)A+=o.delta,E[E.length-1].content=A;else if("text-end"===o.type)A="";else if("reasoning-start"===o.type)A="",E.push({type:"reasoning",content:"",isVisible:null===(n=o.isVisible)||void 0===n||n});else if("reasoning-delta"===o.type)A+=o.delta,E[E.length-1].content=A;else if("reasoning-end"===o.type)A="";else if(o.type.startsWith("data-")){const e=o;E.push({type:e.type,content:JSON.stringify(e.data),isVisible:!0})}Lt.current=z(E);const s=z(E);ze((e=>{const t=e.findIndex((e=>e.id===y)),n=Object.assign(Object.assign({},b),{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);_=_.filter((e=>!(e.id===t.id&&e.version===t.version))),_.push(Object.assign(Object.assign({},t),{content:"",status:"streaming"})),ut([..._]),ct.startsWith("inline")||pt({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"})),ut(_),ct.startsWith("inline")||pt({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"})),ut(_),ct.startsWith("inline")||pt({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)),ut(_)}else if("artifact_finished"===e.event){const t=JSON.parse(e.data);ut(_.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 Qe(t.limitData),Ye(""),void(T=!0);const n=t.error||t.message||(null==Ee?void 0:Ee["something-went-wrong-try-again"])||"Something went wrong, please try again.";if(yn(t))return void(T=!0);Ye(n)}else"stop"===e.event&&(T=!0)}else T=!0}});for(;;){if(S()){T=!0,t.cancel().catch((()=>{}));break}const{value:e,done:s}=yield t.read();if(S()){T=!0,t.cancel().catch((()=>{}));break}if(s)break;o.feed(n.decode(e))}T||S()||(yield new Promise((e=>setTimeout(e,1e3))))}catch(e){if("STOP_STREAM"===e.message||q(e)||S())return void(T=!0);console.warn("Stream connection lost, retrying...",e),yield new Promise((e=>setTimeout(e,1e3)))}null==Ke||Ke(xe)}catch(e){if(q(e))return;if(e.limitData)Qe(e.limitData),Ye("");else{let t=D(e)||"";t&&!t.includes("Unexpected token 'A',")||(t=(null==Ee?void 0:Ee["high-traffic-try-again-later"])||"Oops! We're experiencing high traffic at the moment. Please try again later."),yn(t)||Ye(t)}}finally{const e=!l||Pt.current===l;lt(),e&&(qe("idle"),at(),At.current=null),l&&e&&(Pt.current=null,Lt.current=[]),yield In()}}));return hn?null:n("div",Object.assign({className:M("flex w-full flex-shrink-0 flex-col items-center",!vn&&"px-4 pb-8"),dir:Ae?"rtl":"ltr"},{children:o("div",Object.assign({className:"flex w-full max-w-[800px] flex-col"},{children:[o("div",Object.assign({ref:Bt,className:M("relative flex flex-col w-full justify-end gap-y-3 py-[3px]","block"===Ne.formFieldStyle&&"shadow"),style:Object.assign(Object.assign({},ln),{maxHeight:`${Vt}px`,overflowY:"auto"})},{children:[Bn&&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:ln.backgroundColor?`${ln.backgroundColor}E6`:void 0,borderColor:Ce.text+"20",color:Ce.text,borderTopRightRadius:Ne.cornerRadius+"px",borderTopLeftRadius:Ne.cornerRadius+"px"}},{children:[n("div",Object.assign({className:"flex items-center gap-2 text-sm font-medium"},{children:o("span",{children:[Pn.toLocaleString()," ",On?(null==Ee?void 0:Ee.credits)||"Credits":(null==Ee?void 0:Ee.uses)||"Uses"," ",(null==Ee?void 0:Ee.remaining)||"remaining"]})})),o("div",Object.assign({className:"flex items-center gap-3"},{children:[!$n&&n("button",Object.assign({className:"rounded-md px-3 py-1.5 text-xs font-semibold transition-opacity hover:opacity-90",style:{backgroundColor:Ce.accent,color:Ce.accentText},onClick:e=>{if(e.preventDefault(),e.stopPropagation(),Xn)return void window.open(Xn,"_blank","noopener,noreferrer");const t=B({baseUrl:wt,accessGroupId:null==De?void 0:De.accessGroupId,redirectUrl:document.URL});t&&($()?window.open(t):location.href=t)}},{children:Kn})),n("button",Object.assign({className:"flex h-6 w-6 items-center justify-center rounded-full opacity-60 transition-opacity hover:opacity-100",onClick:()=>Ct(!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"})}))}))]}))]})),!Ge&&Ze.length>0&&n(T,{className:"p-4 pb-0",isDisabled:Ge}),o("div",Object.assign({className:"relative flex w-full flex-col"},{children:[Ht&&o("div",Object.assign({className:"absolute left-4 top-1/2 flex -translate-y-1/2 select-none items-center gap-x-2"},{children:[n("span",{className:"h-2 w-2 animate-pulse rounded-full bg-c-secondary",style:{backgroundColor:null!==(he=Ce.accent)&&void 0!==he?he:"#ff0000"}}),n("span",Object.assign({className:"text-sm text-c-secondary font-semilight",style:{color:Ce.text+"90"}},{children:(null==Ee?void 0:Ee.listening)||"Listening..."}))]})),n(A,Object.assign({ref:Rt,className:M(an.i1,"py-3.5 max-h-60 px-4 w-full border-transparent bg-transparent",!gt.trim()&&!gt.includes("\n")&&"overflow-hidden text-ellipsis whitespace-nowrap placeholder:whitespace-normal placeholder:overflow-visible",Ae?"text-right":"text-left",xn&&"mb-12",Ht&&"text-transparent"),value:gt,placeholder:bn,onChange:e=>{vt(e)},onKeyDown:e=>{Ue||qt||"Enter"===e.key&&(e.shiftKey||(e.preventDefault(),et||Ge||Hn()))},onPaste:e=>t(void 0,void 0,void 0,(function*(){const t=Array.from(e.clipboardData.files||[]);if(t.length>0){if(!mn)return;e.preventDefault(),Le(!1),yield nt(t)}}))},Y&&{onFocus:Y},ne&&{onBlur:ne},{dir:Ae?"rtl":"ltr"})),n("div",Object.assign({ref:Mt,className:M("flex items-center gap-2 absolute right-0 z-2 transition-all duration-200 ease-in-out",xn?"bottom-0 mb-2.5":"top-1/2 -translate-y-1/2"),style:Object.assign(Object.assign({},!xn&&ln.backgroundColor&&{backgroundColor:ln.backgroundColor}),{borderTopRightRadius:Ne.cornerRadius+"px",borderBottomRightRadius:Ne.cornerRadius+"px"})},{children:Ge?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",onClick:()=>{const e=Pt.current;e&&(Dt.current=e,(e=>{t(void 0,void 0,void 0,(function*(){if(!(e=null!=e?e:Pt.current))return;const t=z(Lt.current);try{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})},pn&&{credentials:"include"}))}catch(e){console.warn("Failed to cancel submission",e)}}))})(e)),$t.current&&($t.current.abort(),$t.current=null),At.current&&(At.current.cancel().catch((()=>{})),At.current=null),qe("idle")},style:{backgroundColor:Ce.accent,color:Ce.accentText}},{children:n(U,{className:"h-4 w-4 shrink-0"})})):Ht?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",onClick:zt,style:{backgroundColor:Ce.accent,color:Ce.accentText}},{children:n(U,{className:"h-4 w-4 shrink-0"})})):o(s,{children:[mn&&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:tn?Ce.accent+"10":void 0,color:tn?Ce.accent:Ce.accent+"80"},disabled:et||Ge,onClick:()=>{var e;return null===(e=Ut.current)||void 0===e?void 0:e.click()}},nn,{children:[n("input",{id:"file-upload",ref:Ut,type:"file",accept:[...O,...k,...S].join(", "),multiple:!0,hidden:!0,className:"hidden",onChange:e=>t(void 0,void 0,void 0,(function*(){Le(!1),yield nt(Array.from(e.target.files||[])),e.target.value=""}))}),n(C,{className:"h-6 w-6 shrink-0"})]})),fn&&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:Ht?Ce.accent:sn?Ce.accent+"10":void 0,color:Ht?Ce.accentText:sn?Ce.accent:Ce.accent+"80"},disabled:et||Ge||Jt,onClick:()=>{Ht?zt():(Tt.current=gt,Gt(_e||"en-US"))}},rn,{children:n(_,{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:Yt||Fn?Ce.accent:Ce.accent+"10",color:Yt||Fn?Ce.accentText:Ce.accent+"80"},disabled:!Fn,onClick:()=>Hn()},Zt,{children:n(E,{className:M("h-6 w-6 shrink-0",Ae&&"scale-x-[-1] transform")})}))]})}))]}))]})),tt&&n(P,{error:tt,className:"mt-3"})]}))}))}));ne.displayName="Input";export{ne as default};
|