@pickaxeproject/react 6.15.1 → 6.15.2

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