@pickaxeproject/react 6.15.3 → 6.15.4
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,R=e=>e.map((e=>Object.assign({},e))),M=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 G,Y,z,J,Q,Z,ee,te,se,ne,ie,re,oe,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:Re,isSent:Me,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:rt,setCurrentArtifact:ot}=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(!1),At=s.useRef(null),Dt=s.useRef(null),Pt=s.useRef(null),Lt=s.useRef(new Set),Rt=s.useRef(null),Mt=Math.max(.4*at,100),{speechTranscript:qt,isSpeechListening:Ft,isSpeechProcessing:Vt,isSpeechSupported:Bt,onStartListening:$t,onStopListening:Xt}=D.useSpeechToText(),Ht=m.useHover(),{isHover:Kt}=Ht,Wt=e.__rest(Ht,["isHover"]),Gt=m.useHover(),{isHover:Yt}=Gt,zt=e.__rest(Gt,["isHover"]),Jt=m.useHover(),{isHover:Qt}=Jt,Zt=e.__rest(Jt,["isHover"]),es=o.useStyleFontSize(),ts=r.useStyleInput(),ss="undefined"!=typeof window?window.location.hostname:"",ns="undefined"!=typeof window?window.location.href:"",is="undefined"!=typeof window&&window.self!==window.top,rs=ss.includes("pickaxe.co")&&!ns.includes("https://studio.pickaxe.co/_embed")&&!is,os=null!==(Y=null===(G=null==Ie?void 0:Ie.documentuploadtype)||void 0===G?void 0:G.startsWith("enduserupload"))&&void 0!==Y&&Y,as=Bt&&(null==Ie?void 0:Ie.enablevoicetotext),ls=L(ve),ds="chat-input"===he&&Oe&&!Me,cs="chat-input"===he&&qe&&Re&&Me,us=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]),ps=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?",ms=ut||mt,fs=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}})),rs&&{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)}}))),[rs,null==Ie?void 0:Ie.studioid,me,Le]);s.useEffect((()=>{fs()}),[fs]);const gs=Number(null!==(J=null==_e?void 0:_e.limit)&&void 0!==J?J:0),vs="string"==typeof(null==_e?void 0:_e.limitInterval)?_e.limitInterval:null,hs=!!(null==Qe?void 0:Qe.data.usage)&&Qe.data.usage.isCredits,Is=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]),bs=s.useMemo((()=>B({studioUser:gt,deploymentId:ve,portalId:Is})),[ve,Is,gt]);s.useEffect((()=>{ls&&Oe&&pe&&Lt.current.add(pe)}),[Oe,pe,ls]);const ys=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:Is,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,Is,me,fe,pe,gt]),xs=s.useCallback((()=>!!(ls&&bt&&pe)&&(!!Lt.current.has(pe)&&(C.fireDeploymentSessionInitializedWebhook(ys()),Lt.current.delete(pe),!0))),[ys,bt,pe,ls]);s.useEffect((()=>{if(!bt||!pe)return;xs();const e=Rt.current;(null==e?void 0:e.sessionId)===pe&&(C.fireDeploymentFirstMessageSubmittedWebhook(Object.assign(Object.assign(Object.assign({},e),ys()),{message:e.message,documentIds:e.documentIds,uploadedModelImages:e.uploadedModelImages,hasUploadedDocuments:e.hasUploadedDocuments,isHidden:e.isHidden})),Rt.current=null)}),[xs,ys,bt,pe]);const js={currentUses:V(null==gt?void 0:gt.currentUses),extraUses:V(null==gt?void 0:gt.extraUses)},Ss=bs.scope?{currentUses:null!==(Z=V(null===(Q=bs.record)||void 0===Q?void 0:Q.currentUses))&&void 0!==Z?Z:0,extraUses:null!==(te=V(null===(ee=bs.record)||void 0===ee?void 0:ee.extraUses))&&void 0!==te?te:0}:{currentUses:0,extraUses:0},Os=F(gt,"type"),ws="guest"===Os||!Os&&Re?Ss:js;s.useEffect((()=>{let t=!0;return e.__awaiter(void 0,void 0,void 0,(function*(){var e;if(hs&&(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}}),[hs,null===(se=null==Qe?void 0:Qe.data)||void 0===se?void 0:se.workspaceId]);const Ns=(({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:ws.currentUses,extraUses:ws.extraUses,limit:gs,limitInterval:vs}),_s=Ns===P.STUDIO_INFINITY_VALUE?P.STUDIO_INFINITY_VALUE:Math.max(0,Math.ceil(Ns)),ks=(({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:ws.extraUses,limit:gs,limitInterval:vs}),Es=ks===P.STUDIO_INFINITY_VALUE?P.STUDIO_INFINITY_VALUE:Math.ceil(.05*ks),Us=hs?Math.ceil(5*St):5,Ts=Es===P.STUDIO_INFINITY_VALUE?P.STUDIO_INFINITY_VALUE:Math.max(Es,Us),Cs=s.useMemo((()=>!!gt&&(!xt&&(_s!==P.STUDIO_INFINITY_VALUE&&_s<=Ts))),[xt,Ts,_s,gt]),As=Boolean(null==_e?void 0:_e.hideUpgradeOptions),Ds=Boolean(!As&&((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===(re=null==_e?void 0:_e.upgrade)||void 0===re?void 0:re.isUpgradeToAnotherGroup)&&(null===(oe=_e.upgrade.accessGroupIds)||void 0===oe?void 0:oe.length))),Ps=!As&&(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,Ls=Ps&&"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",Rs=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&&!ds)))))}),[Ie,Oe,Ne,ds,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:qs}))),s.useEffect((()=>{Ee(Rs)}),[Rs]),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;qs(s,!0)}}),[q]),s.useEffect((()=>{if(!Dt.current||!H)return;const e=new ResizeObserver((e=>{for(const t of e)H(t.contentRect.height)}));return e.observe(Dt.current),()=>{e.disconnect()}}),[H]),s.useEffect((()=>{if(Ft)return void(Ct.current=!0);if(!Ct.current)return;Ct.current=!1;const e=Nt.current?`${Nt.current} `:"";ct(`${e}${qt}`)}),[qt,Ft]),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=At.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||ps,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;ft(r>l)}),[dt,ut,ps]);const qs=(t,s=!1)=>e.__awaiter(void 0,void 0,void 0,(function*(){var e,n,i,r,o,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!==(r=null===(i=lt.data)||void 0===i?void 0:i.messages)&&void 0!==r?r:[],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()}),Is&&{portalId:Is}),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()})},rs&&{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(us(N))return;throw new Error(N.error||N.message||(null==xe?void 0:xe["failed-to-start-generation"])||"Failed to start generation")}const _=null!==(o=N.submissionId)&&void 0!==o?o:S;l=_,kt.current=_;const k=()=>Et.current===_;if(k())return;ls&&Oe&&pe&&Lt.current.add(pe);const T=Object.assign(Object.assign({},ys()),{message:p,documentIds:m?c:[],uploadedModelImages:m?u:[],hasUploadedDocuments:m,isHidden:s,metadata:null!=j?j:null});bt?(xs(),C.fireDeploymentFirstMessageSubmittedWebhook(T)):Rt.current=T,$e("streaming"),Pt.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=Pt.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 us(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=R(A);const i=R(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"})),rt([...D]),it.startsWith("inline")||ot({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"})),rt(D),it.startsWith("inline")||ot({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"})),rt(D),it.startsWith("inline")||ot({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)),rt(D)}else if("artifact_finished"===e.event){const t=JSON.parse(e.data);rt(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(us(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||M(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(M(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."),us(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 fs()}}));return cs?null:t.jsx("div",Object.assign({className:k.default("flex w-full flex-shrink-0 flex-col items-center",!ds&&"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:Dt,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({},ts),{maxHeight:`${Mt}px`,overflowY:"auto"})},{children:[Cs&&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:ts.backgroundColor?`${ts.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:[_s.toLocaleString()," ",hs?(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:[Ds&&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(),Ps)return void window.open(Ps,"_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:Ls})),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:[Ft&&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(es.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",ms&&"mb-12",Ft&&"text-transparent"),value:dt,placeholder:ps,onChange:e=>{ct(e)},onKeyDown:e=>{Se||Ze||"Enter"===e.key&&(e.shiftKey||(e.preventDefault(),We||Ve||qs()))},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:At,className:k.default("flex items-center gap-2 absolute z-2 transition-all duration-200 ease-in-out",ms?"bottom-3 right-2":"right-0 top-1/2 -translate-y-1/2"),style:Object.assign(Object.assign({},!ms&&ts.backgroundColor&&{backgroundColor:ts.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=R(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})},rs&&{credentials:"include"}))}catch(e){console.warn("Failed to cancel submission",e)}}))})(t)),Pt.current&&(Pt.current.abort(),Pt.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"})})):Ft?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:Xt,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:Yt?ye.accent+"10":void 0,color:Yt?ye.accent:ye.accent+"80"},disabled:We||Ve,onClick:()=>{var e;return null===(e=wt.current)||void 0===e?void 0:e.click()}},zt,{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"})]})),as&&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:Ft?ye.accent:Qt?ye.accent+"10":void 0,color:Ft?ye.accentText:Qt?ye.accent:ye.accent+"80"},disabled:We||Ve||Vt,onClick:()=>{Ft?Xt():(Nt.current=dt,$t(je||"en-US"))}},Zt,{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:Kt||Ms?ye.accent:ye.accent+"10",color:Kt||Ms?ye.accentText:ye.accent+"80"},disabled:!Ms,onClick:()=>qs()},Wt,{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=$;
|
|
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 z,G,Y,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:ze,onFileUpload:Ge,setDocuments:Ye,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:zt}=Wt,Gt=e.__rest(Wt,["isHover"]),Yt=m.useHover(),{isHover:Jt}=Yt,Qt=e.__rest(Yt,["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!==(G=null===(z=null==Ie?void 0:Ie.documentuploadtype)||void 0===z?void 0:z.startsWith("enduserupload"))&&void 0!==G&&G,rs=Vt&&(null==Ie?void 0:Ie.enablevoicetotext),as=qt&&!dt.trim(),ls=L(ve),ds="chat-input"===he&&Oe&&!Re,cs="chat-input"===he&&qe&&Me&&Re,us=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]),ps=null!==(Y=null==Ie?void 0:Ie.placeholdertext)&&void 0!==Y?Y:we?"بماذا تريد أن تتحدث؟":(null==xe?void 0:xe["what-do-you-want-to-talk-about"])||"What do you want to talk about?",ms=ut||mt,fs=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((()=>{fs()}),[fs]);const gs=Number(null!==(J=null==_e?void 0:_e.limit)&&void 0!==J?J:0),vs="string"==typeof(null==_e?void 0:_e.limitInterval)?_e.limitInterval:null,hs=!!(null==Qe?void 0:Qe.data.usage)&&Qe.data.usage.isCredits,Is=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]),bs=s.useMemo((()=>B({studioUser:gt,deploymentId:ve,portalId:Is})),[ve,Is,gt]);s.useEffect((()=>{ls&&Oe&&pe&&Pt.current.add(pe)}),[Oe,pe,ls]);const ys=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:Is,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,Is,me,fe,pe,gt]),xs=s.useCallback((()=>!!(ls&&bt&&pe)&&(!!Pt.current.has(pe)&&(C.fireDeploymentSessionInitializedWebhook(ys()),Pt.current.delete(pe),!0))),[ys,bt,pe,ls]);s.useEffect((()=>{if(!bt||!pe)return;xs();const e=Lt.current;(null==e?void 0:e.sessionId)===pe&&(C.fireDeploymentFirstMessageSubmittedWebhook(Object.assign(Object.assign(Object.assign({},e),ys()),{message:e.message,documentIds:e.documentIds,uploadedModelImages:e.uploadedModelImages,hasUploadedDocuments:e.hasUploadedDocuments,isHidden:e.isHidden})),Lt.current=null)}),[xs,ys,bt,pe]);const js={currentUses:V(null==gt?void 0:gt.currentUses),extraUses:V(null==gt?void 0:gt.extraUses)},Ss=bs.scope?{currentUses:null!==(Z=V(null===(Q=bs.record)||void 0===Q?void 0:Q.currentUses))&&void 0!==Z?Z:0,extraUses:null!==(te=V(null===(ee=bs.record)||void 0===ee?void 0:ee.extraUses))&&void 0!==te?te:0}:{currentUses:0,extraUses:0},Os=F(gt,"type"),ws="guest"===Os||!Os&&Me?Ss:js;s.useEffect((()=>{let t=!0;return e.__awaiter(void 0,void 0,void 0,(function*(){var e;if(hs&&(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}}),[hs,null===(se=null==Qe?void 0:Qe.data)||void 0===se?void 0:se.workspaceId]);const Ns=(({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:ws.currentUses,extraUses:ws.extraUses,limit:gs,limitInterval:vs}),_s=Ns===P.STUDIO_INFINITY_VALUE?P.STUDIO_INFINITY_VALUE:Math.max(0,Math.ceil(Ns)),ks=(({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:ws.extraUses,limit:gs,limitInterval:vs}),Es=ks===P.STUDIO_INFINITY_VALUE?P.STUDIO_INFINITY_VALUE:Math.ceil(.05*ks),Us=hs?Math.ceil(5*St):5,Ts=Es===P.STUDIO_INFINITY_VALUE?P.STUDIO_INFINITY_VALUE:Math.max(Es,Us),Cs=s.useMemo((()=>!!gt&&(!xt&&(_s!==P.STUDIO_INFINITY_VALUE&&_s<=Ts))),[xt,Ts,_s,gt]),As=Boolean(null==_e?void 0:_e.hideUpgradeOptions),Ds=Boolean(!As&&((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))),Ps=!As&&(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,Ls=Ps&&"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",Ms=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&&!ds)))))}),[Ie,Oe,Ne,ds,lt.data,lt.isLoading]),Rs=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:qs}))),s.useEffect((()=>{Ee(Ms)}),[Ms]),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;qs(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||ps,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,ps]);const qs=(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&&Ye([]);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()}),Is&&{portalId:Is}),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(us(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;ls&&Oe&&pe&&Pt.current.add(pe);const T=Object.assign(Object.assign({},ys()),{message:p,documentIds:m?c:[],uploadedModelImages:m?u:[],hasUploadedDocuments:m,isHidden:s,metadata:null!=j?j:null});bt?(xs(),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 us(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(us(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."),us(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 fs()}}));return cs?null:t.jsx("div",Object.assign({className:k.default("flex w-full flex-shrink-0 flex-col items-center",!ds&&"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:[Cs&&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:[_s.toLocaleString()," ",hs?(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:[Ds&&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(),Ps)return void window.open(Ps,"_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:Ls})),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:[as&&t.jsxs("div",Object.assign({className:k.default("pointer-events-none absolute top-1/2 z-10 flex -translate-y-1/2 select-none items-center gap-x-2",we?"right-4":"left-4")},{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",ms&&"mb-12"),value:dt,placeholder:as?"":ps,onChange:e=>{ct(e)},onKeyDown:e=>{Se||Ze||"Enter"===e.key&&(e.shiftKey||(e.preventDefault(),We||Ve||qs()))},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 Ge(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",ms?"bottom-3 right-2":"right-0 top-1/2 -translate-y-1/2"),style:Object.assign(Object.assign({},!ms&&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:zt?ye.accent+"10":void 0,color:zt?ye.accent:ye.accent+"80"},disabled:We||Ve,onClick:()=>{var e;return null===(e=wt.current)||void 0===e?void 0:e.click()}},Gt,{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 Ge(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||Rs?ye.accent:ye.accent+"10",color:Ht||Rs?ye.accentText:ye.accent+"80"},disabled:!Rs,onClick:()=>qs()},Kt,{children:t.jsx(I.default,{className:k.default("h-6 w-6 shrink-0",we&&"scale-x-[-1] transform")})}))]})}))]}))]})),ze&&t.jsx(S.default,{error:ze,className:"mt-3"})]}))}))}));$.displayName="Input",exports.default=$;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("../../_virtual/_tslib.js"),t=require("react"),r=require("../../common/api/pickaxe.js");const o=()=>{if("undefined"!=typeof window)return window.AudioContext||window.webkitAudioContext},n=e=>{var t,r;e.processor&&(e.processor.onaudioprocess=null,e.processor.disconnect()),null===(t=e.source)||void 0===t||t.disconnect(),null===(r=e.silentGain)||void 0===r||r.disconnect(),e.processor=void 0,e.source=void 0,e.silentGain=void 0;for(const t of e.stream.getTracks())t.stop();"closed"!==e.audioContext.state&&e.audioContext.close()};exports.useSpeechToText=()=>{var s;const[c,i]=t.useState(""),[a,u]=t.useState(!1),[l,d]=t.useState(!1),m=t.useRef(!0),p=t.useRef(0),f=t.useRef(null),w=t.useRef(new Map),
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("../../_virtual/_tslib.js"),t=require("react"),r=require("../../common/api/pickaxe.js");const o=()=>{if("undefined"!=typeof window)return window.AudioContext||window.webkitAudioContext},n=e=>{var t,r;e.processor&&(e.processor.onaudioprocess=null,e.processor.disconnect()),null===(t=e.source)||void 0===t||t.disconnect(),null===(r=e.silentGain)||void 0===r||r.disconnect(),e.processor=void 0,e.source=void 0,e.silentGain=void 0;for(const t of e.stream.getTracks())t.stop();"closed"!==e.audioContext.state&&e.audioContext.close()};exports.useSpeechToText=()=>{var s;const[c,i]=t.useState(""),[a,u]=t.useState(!1),[l,d]=t.useState(!1),m=t.useRef(!0),p=t.useRef(0),f=t.useRef(null),w=t.useRef(new Map),y=e=>{n(e),e.socket.readyState!==WebSocket.OPEN&&e.socket.readyState!==WebSocket.CONNECTING||e.socket.close(),f.current===e&&(f.current=null)};t.useEffect((()=>(m.current=!0,()=>{m.current=!1,p.current+=1;const e=f.current;e&&(e.socket.readyState===WebSocket.OPEN&&e.socket.send(JSON.stringify({type:"Terminate"})),y(e))})),[]);return{speechTranscript:c,isSpeechSupported:"undefined"!=typeof window&&Boolean(o())&&Boolean(null===(s=navigator.mediaDevices)||void 0===s?void 0:s.getUserMedia)&&"WebSocket"in window,isSpeechProcessing:l,isSpeechListening:a,onStartListening:t=>e.__awaiter(void 0,void 0,void 0,(function*(){var e;const t=++p.current,s=o();if(!s||!(null===(e=navigator.mediaDevices)||void 0===e?void 0:e.getUserMedia))return;const c=f.current;let a,l;c&&y(c);try{d(!0),u(!1),i(""),w.current.clear(),a=yield navigator.mediaDevices.getUserMedia({audio:{autoGainControl:!0,channelCount:1,echoCancellation:!0,noiseSuppression:!0}}),l=new s;const{data:e}=yield r.pickaxeApi2.post("/speech/assemblyai");if(!e.success||!e.token)throw new Error(e.error||"AssemblyAI streaming token was not returned");if(!m.current||t!==p.current)return;const o=new URL("wss://streaming.assemblyai.com/v3/ws");o.searchParams.set("sample_rate",String(16e3)),o.searchParams.set("speech_model","whisper-rt"),o.searchParams.set("language_detection","true"),o.searchParams.set("format_turns","true"),o.searchParams.set("token",e.token);const c={socket:new WebSocket(o),stream:a,audioContext:l,started:!1};a=void 0,l=void 0,f.current=c,yield new Promise(((e,r)=>{const o=window.setTimeout((()=>{r(new Error("AssemblyAI streaming session timed out"))}),1e4),s=e=>{c.started||(window.clearTimeout(o),r(e))};c.socket.binaryType="arraybuffer",c.socket.onmessage=r=>{try{const n=JSON.parse(String(r.data));if("Begin"!==n.type||c.started){if("Turn"===n.type)(e=>{var t;const r=(e=>{var t,r;const o=null===(t=e.transcript)||void 0===t?void 0:t.trim();if(o)return o;const n=null===(r=e.utterance)||void 0===r?void 0:r.trim();return n&&!/^(?:\[[^\]]+\]\s*)+$/.test(n)?n:""})(e),o=null!==(t=e.turn_order)&&void 0!==t?t:0;r?w.current.set(o,r):w.current.delete(o);const n=Array.from(w.current.entries()).sort((([e],[t])=>e-t)).map((([,e])=>e)).join(" ").trim();m.current&&i(n)})(n);else if("Termination"===n.type)c.socket.close();else if("Error"===n.type)throw new Error(n.error||"AssemblyAI streaming failed")}else{c.started=!0,window.clearTimeout(o);const r=c.audioContext.createMediaStreamSource(c.stream),n=c.audioContext.createScriptProcessor(4096,1,1),s=c.audioContext.createGain();s.gain.value=0,n.onaudioprocess=({inputBuffer:e})=>{if(c.socket.readyState!==WebSocket.OPEN)return;const t=((e,t)=>{const r=t/16e3,o=Math.max(1,Math.round(e.length/r)),n=new Int16Array(o);let s=0;for(let t=0;t<o;t+=1){const o=Math.min(e.length,Math.round((t+1)*r));let c=0,i=0;for(;s<o;s+=1)c+=e[s],i+=1;const a=Math.max(-1,Math.min(1,i?c/i:0));n[t]=a<0?32768*a:32767*a}return n})(e.getChannelData(0),e.sampleRate);c.socket.send(t.buffer)},r.connect(n),n.connect(s),s.connect(c.audioContext.destination),c.source=r,c.processor=n,c.silentGain=s,c.audioContext.resume(),m.current&&t===p.current&&u(!0),e()}}catch(e){console.error("Could not process AssemblyAI message",e),s(e instanceof Error?e:new Error(String(e))),c.socket.close()}},c.socket.onerror=()=>{const e=new Error("Could not connect to AssemblyAI streaming");s(e),c.started&&console.error(e),c.socket.close()},c.socket.onclose=()=>{s(new Error("AssemblyAI streaming closed before it started")),(e=>{n(e),f.current===e&&(f.current=null,m.current&&u(!1))})(c)}})),m.current&&t===p.current||y(c)}catch(e){const t=f.current;t&&y(t),console.error("Could not start AssemblyAI speech recognition",e)}finally{if(a)for(const e of a.getTracks())e.stop();"closed"!==(null==l?void 0:l.state)&&(null==l||l.close()),m.current&&t===p.current&&d(!1)}})),onStopListening:()=>e.__awaiter(void 0,void 0,void 0,(function*(){const e=++p.current,t=f.current;if(t)try{d(!0),n(t),yield new Promise((e=>{const r=window.setTimeout(e,2e3),o=t.socket.onclose;t.socket.onclose=n=>{window.clearTimeout(r),null==o||o.call(t.socket,n),e()},t.socket.readyState===WebSocket.OPEN?t.socket.send(JSON.stringify({type:"Terminate"})):e()}))}catch(e){console.error("Could not stop AssemblyAI speech recognition",e)}finally{y(t),m.current&&e===p.current&&(u(!1),d(!1))}else u(!1)}))}};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{__rest as e,__awaiter as t}from"../../../_virtual/_tslib.js";import{jsx as n,jsxs as o,Fragment as s}from"react/jsx-runtime";import{forwardRef as i,useState as r,useRef as a,useCallback as l,useEffect as d,useMemo as c,useImperativeHandle as u}from"react";import{usePickaxeContext as p}from"../../../hooks/pickaxe/usePickaxeContext.js";import{useResponseContext as m}from"../../../hooks/pickaxe/useResponseContext.js";import{useStyleInput as f}from"../../../hooks/studio/useStyleInput.js";import{useStyleFontSize as 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(!1),Ht=a(null),Wt=a(null),Jt=a(null),zt=a(new Set),qt=a(null),Qt=Math.max(.4*xt,100),{speechTranscript:Yt,isSpeechListening:Zt,isSpeechProcessing:en,isSpeechSupported:tn,onStartListening:nn,onStopListening:on}=J(),sn=j(),{isHover:rn}=sn,an=e(sn,["isHover"]),ln=j(),{isHover:dn}=ln,cn=e(ln,["isHover"]),un=j(),{isHover:pn}=un,mn=e(un,["isHover"]),fn=v(),vn=f(),gn="undefined"!=typeof window?window.location.hostname:"",hn="undefined"!=typeof window?window.location.href:"",bn="undefined"!=typeof window&&window.self!==window.top,yn=gn.includes("pickaxe.co")&&!hn.includes("https://studio.pickaxe.co/_embed")&&!bn,xn=null!==(le=null===(ae=null==Ue?void 0:Ue.documentuploadtype)||void 0===ae?void 0:ae.startsWith("enduserupload"))&&void 0!==le&&le,In=tn&&(null==Ue?void 0:Ue.enablevoicetotext),jn=q(Ee),wn="chat-input"===_e&&Re&&!Qe,On="chat-input"===_e&&Ye&&qe&&Qe,kn=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]),Sn=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?",Nn=Ot||St,Cn=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}})),yn&&{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)}}))),[yn,null==Ue?void 0:Ue.studioid,Se,ze]);d((()=>{Cn()}),[Cn]);const En=Number(null!==(ce=null==$e?void 0:$e.limit)&&void 0!==ce?ce:0),_n="string"==typeof(null==$e?void 0:$e.limitInterval)?$e.limitInterval:null,Un=!!(null==ut?void 0:ut.data.usage)&&ut.data.usage.isCredits,Tn=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]),An=c((()=>ne({studioUser:Ct,deploymentId:Ee,portalId:Tn})),[Ee,Tn,Ct]);d((()=>{jn&&Re&&ke&&zt.current.add(ke)}),[Re,ke,jn]);const Pn=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:Tn,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,Tn,Se,Ne,ke,Ct]),Dn=l((()=>!!(jn&&Tt&&ke)&&(!!zt.current.has(ke)&&(G(Pn()),zt.current.delete(ke),!0))),[Pn,Tt,ke,jn]);d((()=>{if(!Tt||!ke)return;Dn();const e=qt.current;(null==e?void 0:e.sessionId)===ke&&(H(Object.assign(Object.assign(Object.assign({},e),Pn()),{message:e.message,documentIds:e.documentIds,uploadedModelImages:e.uploadedModelImages,hasUploadedDocuments:e.hasUploadedDocuments,isHidden:e.isHidden})),qt.current=null)}),[Dn,Pn,Tt,ke]);const Ln={currentUses:te(null==Ct?void 0:Ct.currentUses),extraUses:te(null==Ct?void 0:Ct.extraUses)},Rn=An.scope?{currentUses:null!==(pe=te(null===(ue=An.record)||void 0===ue?void 0:ue.currentUses))&&void 0!==pe?pe:0,extraUses:null!==(fe=te(null===(me=An.record)||void 0===me?void 0:me.extraUses))&&void 0!==fe?fe:0}:{currentUses:0,extraUses:0},Mn=ee(Ct,"type"),Bn="guest"===Mn||!Mn&&qe?Rn:Ln;d((()=>{let e=!0;return t(void 0,void 0,void 0,(function*(){var t;if(Un&&(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}}),[Un,null===(ve=null==ut?void 0:ut.data)||void 0===ve?void 0:ve.workspaceId]);const $n=(({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:Bn.currentUses,extraUses:Bn.extraUses,limit:En,limitInterval:_n}),Xn=$n===z?z:Math.max(0,Math.ceil($n)),Kn=(({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:Bn.extraUses,limit:En,limitInterval:_n}),Vn=Kn===z?z:Math.ceil(.05*Kn),Fn=Un?Math.ceil(5*Lt):5,Gn=Vn===z?z:Math.max(Vn,Fn),Hn=c((()=>!!Ct&&(!Pt&&(Xn!==z&&Xn<=Gn))),[Pt,Gn,Xn,Ct]),Wn=Boolean(null==$e?void 0:$e.hideUpgradeOptions),Jn=Boolean(!Wn&&((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))),zn=!Wn&&(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,qn=zn&&"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&&!wn)))))}),[Ue,Re,Be,wn,It.data,It.isLoading]),Yn=c((()=>{if(et||rt)return!1;const e=xn&&it.length>0&&it.every((e=>"finished"===e.status));return!(!jt.trim()&&!e)&&it.every((e=>"finished"===e.status||e.isInsertedAsRaw))}),[xn,et,rt,jt,it]);u(re,(()=>({onSubmit:Zn}))),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;Zn(n,!0)}}),[i]),d((()=>{if(!Wt.current||!se)return;const e=new ResizeObserver((e=>{for(const t of e)se(t.contentRect.height)}));return e.observe(Wt.current),()=>{e.disconnect()}}),[se]),d((()=>{if(Zt)return void(Gt.current=!0);if(!Gt.current)return;Gt.current=!1;const e=Bt.current?`${Bt.current} `:"";wt(`${e}${Yt}`)}),[Yt,Zt]),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=Ht.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||Sn,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,Sn]);const Zn=(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()}),Tn&&{portalId:Tn}),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()})},yn&&{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(kn(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;jn&&Re&&ke&&zt.current.add(ke);const C=Object.assign(Object.assign({},Pn()),{message:p,documentIds:m?c:[],uploadedModelImages:m?u:[],hasUploadedDocuments:m,isHidden:n,metadata:null!=I?I:null});Tt?(Dn(),H(C)):qt.current=C,nt("streaming"),Jt.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=Jt.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 kn(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(kn(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."),kn(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 Cn()}}));return On?null:n("div",Object.assign({className:B("flex w-full flex-shrink-0 flex-col items-center",!wn&&"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:Wt,className:B("relative flex flex-col w-full justify-end gap-y-3 py-[3px]","block"===Te.formFieldStyle&&"shadow"),style:Object.assign(Object.assign({},vn),{maxHeight:`${Qt}px`,overflowY:"auto"})},{children:[Hn&&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:vn.backgroundColor?`${vn.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:[Xn.toLocaleString()," ",Un?(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:[Jn&&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(),zn)return void window.open(zn,"_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:qn})),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:[Zt&&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(fn.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",Nn&&"mb-12",Zt&&"text-transparent"),value:jt,placeholder:Sn,onChange:e=>{wt(e)},onKeyDown:e=>{Le||pt||"Enter"===e.key&&(e.shiftKey||(e.preventDefault(),rt||et||Zn()))},onPaste:e=>t(void 0,void 0,void 0,(function*(){const t=Array.from(e.clipboardData.files||[]);if(t.length>0){if(!xn)return;e.preventDefault(),Xe(!1),yield lt(t)}}))},Z&&{onFocus:Z},oe&&{onBlur:oe},{dir:Me?"rtl":"ltr"})),n("div",Object.assign({ref:Ht,className:B("flex items-center gap-2 absolute z-2 transition-all duration-200 ease-in-out",Nn?"bottom-3 right-2":"right-0 top-1/2 -translate-y-1/2"),style:Object.assign(Object.assign({},!Nn&&vn.backgroundColor&&{backgroundColor:vn.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})},yn&&{credentials:"include"}))}catch(e){console.warn("Failed to cancel submission",e)}}))})(e)),Jt.current&&(Jt.current.abort(),Jt.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"})})):Zt?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:on,style:{backgroundColor:Ae.accent,color:Ae.accentText}},{children:n(U,{className:"h-4 w-4 shrink-0"})})):o(s,{children:[xn&&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:dn?Ae.accent+"10":void 0,color:dn?Ae.accent:Ae.accent+"80"},disabled:rt||et,onClick:()=>{var e;return null===(e=Mt.current)||void 0===e?void 0:e.click()}},cn,{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"})]})),In&&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:Zt?Ae.accent:pn?Ae.accent+"10":void 0,color:Zt?Ae.accentText:pn?Ae.accent:Ae.accent+"80"},disabled:rt||et||en,onClick:()=>{Zt?on():(Bt.current=jt,nn(De||"en-US"))}},mn,{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:rn||Yn?Ae.accent:Ae.accent+"10",color:rn||Yn?Ae.accentText:Ae.accent+"80"},disabled:!Yn,onClick:()=>Zn()},an,{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};
|
|
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=Yt&&!jt.trim(),jn=q(Ee),wn="chat-input"===_e&&Re&&!Qe,On="chat-input"===_e&&Ye&&qe&&Qe,kn=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]),Sn=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?",Nn=Ot||St,Cn=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((()=>{Cn()}),[Cn]);const En=Number(null!==(ce=null==$e?void 0:$e.limit)&&void 0!==ce?ce:0),_n="string"==typeof(null==$e?void 0:$e.limitInterval)?$e.limitInterval:null,Un=!!(null==ut?void 0:ut.data.usage)&&ut.data.usage.isCredits,Tn=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]),An=c((()=>ne({studioUser:Ct,deploymentId:Ee,portalId:Tn})),[Ee,Tn,Ct]);d((()=>{jn&&Re&&ke&&Jt.current.add(ke)}),[Re,ke,jn]);const Pn=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:Tn,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,Tn,Se,Ne,ke,Ct]),Dn=l((()=>!!(jn&&Tt&&ke)&&(!!Jt.current.has(ke)&&(G(Pn()),Jt.current.delete(ke),!0))),[Pn,Tt,ke,jn]);d((()=>{if(!Tt||!ke)return;Dn();const e=zt.current;(null==e?void 0:e.sessionId)===ke&&(H(Object.assign(Object.assign(Object.assign({},e),Pn()),{message:e.message,documentIds:e.documentIds,uploadedModelImages:e.uploadedModelImages,hasUploadedDocuments:e.hasUploadedDocuments,isHidden:e.isHidden})),zt.current=null)}),[Dn,Pn,Tt,ke]);const Ln={currentUses:te(null==Ct?void 0:Ct.currentUses),extraUses:te(null==Ct?void 0:Ct.extraUses)},Rn=An.scope?{currentUses:null!==(pe=te(null===(ue=An.record)||void 0===ue?void 0:ue.currentUses))&&void 0!==pe?pe:0,extraUses:null!==(fe=te(null===(me=An.record)||void 0===me?void 0:me.extraUses))&&void 0!==fe?fe:0}:{currentUses:0,extraUses:0},Mn=ee(Ct,"type"),Bn="guest"===Mn||!Mn&&qe?Rn:Ln;d((()=>{let e=!0;return t(void 0,void 0,void 0,(function*(){var t;if(Un&&(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}}),[Un,null===(ve=null==ut?void 0:ut.data)||void 0===ve?void 0:ve.workspaceId]);const $n=(({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:Bn.currentUses,extraUses:Bn.extraUses,limit:En,limitInterval:_n}),Xn=$n===z?z:Math.max(0,Math.ceil($n)),Kn=(({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:Bn.extraUses,limit:En,limitInterval:_n}),Vn=Kn===z?z:Math.ceil(.05*Kn),Fn=Un?Math.ceil(5*Lt):5,Gn=Vn===z?z:Math.max(Vn,Fn),Hn=c((()=>!!Ct&&(!Pt&&(Xn!==z&&Xn<=Gn))),[Pt,Gn,Xn,Ct]),Wn=Boolean(null==$e?void 0:$e.hideUpgradeOptions),Jn=Boolean(!Wn&&((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))),zn=!Wn&&(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,qn=zn&&"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&&!wn)))))}),[Ue,Re,Be,wn,It.data,It.isLoading]),Yn=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:Zn}))),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;Zn(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||Sn,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,Sn]);const Zn=(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()}),Tn&&{portalId:Tn}),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(kn(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;jn&&Re&&ke&&Jt.current.add(ke);const C=Object.assign(Object.assign({},Pn()),{message:p,documentIds:m?c:[],uploadedModelImages:m?u:[],hasUploadedDocuments:m,isHidden:n,metadata:null!=I?I:null});Tt?(Dn(),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 kn(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(kn(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."),kn(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 Cn()}}));return On?null:n("div",Object.assign({className:B("flex w-full flex-shrink-0 flex-col items-center",!wn&&"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:[Hn&&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:[Xn.toLocaleString()," ",Un?(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:[Jn&&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(),zn)return void window.open(zn,"_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:qn})),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:[In&&o("div",Object.assign({className:B("pointer-events-none absolute top-1/2 z-10 flex -translate-y-1/2 select-none items-center gap-x-2",Me?"right-4":"left-4")},{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",Nn&&"mb-12"),value:jt,placeholder:In?"":Sn,onChange:e=>{wt(e)},onKeyDown:e=>{Le||pt||"Enter"===e.key&&(e.shiftKey||(e.preventDefault(),rt||et||Zn()))},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",Nn?"bottom-3 right-2":"right-0 top-1/2 -translate-y-1/2"),style:Object.assign(Object.assign({},!Nn&&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||Yn?Ae.accent:Ae.accent+"10",color:sn||Yn?Ae.accentText:Ae.accent+"80"},disabled:!Yn,onClick:()=>Zn()},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};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{__awaiter as e}from"../../_virtual/_tslib.js";import{useState as t,useRef as r,useEffect as o}from"react";import{pickaxeApi2 as n}from"../../common/api/pickaxe.js";const s=()=>{if("undefined"!=typeof window)return window.AudioContext||window.webkitAudioContext},c=e=>{var t,r;e.processor&&(e.processor.onaudioprocess=null,e.processor.disconnect()),null===(t=e.source)||void 0===t||t.disconnect(),null===(r=e.silentGain)||void 0===r||r.disconnect(),e.processor=void 0,e.source=void 0,e.silentGain=void 0;for(const t of e.stream.getTracks())t.stop();"closed"!==e.audioContext.state&&e.audioContext.close()},i=()=>{var i;const[a,u]=t(""),[l,d]=t(!1),[m,p]=t(!1),f=r(!0),w=r(0),y=r(null),v=r(new Map),k=e=>{c(e),e.socket.readyState!==WebSocket.OPEN&&e.socket.readyState!==WebSocket.CONNECTING||e.socket.close(),y.current===e&&(y.current=null)};o((()=>(f.current=!0,()=>{f.current=!1,w.current+=1;const e=y.current;e&&(e.socket.readyState===WebSocket.OPEN&&e.socket.send(JSON.stringify({type:"Terminate"})),k(e))})),[]);return{speechTranscript:a,isSpeechSupported:"undefined"!=typeof window&&Boolean(s())&&Boolean(null===(i=navigator.mediaDevices)||void 0===i?void 0:i.getUserMedia)&&"WebSocket"in window,isSpeechProcessing:m,isSpeechListening:l,onStartListening:t=>e(void 0,void 0,void 0,(function*(){var e;const t=++w.current,r=s();if(!r||!(null===(e=navigator.mediaDevices)||void 0===e?void 0:e.getUserMedia))return;const o=y.current;let i,a;o&&k(o);try{p(!0),d(!1),u(""),v.current.clear(),i=yield navigator.mediaDevices.getUserMedia({audio:{autoGainControl:!0,channelCount:1,echoCancellation:!0,noiseSuppression:!0}}),a=new r;const{data:e}=yield n.post("/speech/assemblyai");if(!e.success||!e.token)throw new Error(e.error||"AssemblyAI streaming token was not returned");if(!f.current||t!==w.current)return;const o=new URL("wss://streaming.assemblyai.com/v3/ws");o.searchParams.set("sample_rate",String(16e3)),o.searchParams.set("speech_model","whisper-rt"),o.searchParams.set("language_detection","true"),o.searchParams.set("format_turns","true"),o.searchParams.set("token",e.token);const s={socket:new WebSocket(o),stream:i,audioContext:a,started:!1};i=void 0,a=void 0,y.current=s,yield new Promise(((e,r)=>{const o=window.setTimeout((()=>{r(new Error("AssemblyAI streaming session timed out"))}),1e4),n=e=>{s.started||(window.clearTimeout(o),r(e))};s.socket.binaryType="arraybuffer",s.socket.onmessage=r=>{try{const n=JSON.parse(String(r.data));if("Begin"!==n.type||s.started){if("Turn"===n.type)(e=>{var t;const r=(e=>{var t,r
|
|
1
|
+
import{__awaiter as e}from"../../_virtual/_tslib.js";import{useState as t,useRef as r,useEffect as o}from"react";import{pickaxeApi2 as n}from"../../common/api/pickaxe.js";const s=()=>{if("undefined"!=typeof window)return window.AudioContext||window.webkitAudioContext},c=e=>{var t,r;e.processor&&(e.processor.onaudioprocess=null,e.processor.disconnect()),null===(t=e.source)||void 0===t||t.disconnect(),null===(r=e.silentGain)||void 0===r||r.disconnect(),e.processor=void 0,e.source=void 0,e.silentGain=void 0;for(const t of e.stream.getTracks())t.stop();"closed"!==e.audioContext.state&&e.audioContext.close()},i=()=>{var i;const[a,u]=t(""),[l,d]=t(!1),[m,p]=t(!1),f=r(!0),w=r(0),y=r(null),v=r(new Map),k=e=>{c(e),e.socket.readyState!==WebSocket.OPEN&&e.socket.readyState!==WebSocket.CONNECTING||e.socket.close(),y.current===e&&(y.current=null)};o((()=>(f.current=!0,()=>{f.current=!1,w.current+=1;const e=y.current;e&&(e.socket.readyState===WebSocket.OPEN&&e.socket.send(JSON.stringify({type:"Terminate"})),k(e))})),[]);return{speechTranscript:a,isSpeechSupported:"undefined"!=typeof window&&Boolean(s())&&Boolean(null===(i=navigator.mediaDevices)||void 0===i?void 0:i.getUserMedia)&&"WebSocket"in window,isSpeechProcessing:m,isSpeechListening:l,onStartListening:t=>e(void 0,void 0,void 0,(function*(){var e;const t=++w.current,r=s();if(!r||!(null===(e=navigator.mediaDevices)||void 0===e?void 0:e.getUserMedia))return;const o=y.current;let i,a;o&&k(o);try{p(!0),d(!1),u(""),v.current.clear(),i=yield navigator.mediaDevices.getUserMedia({audio:{autoGainControl:!0,channelCount:1,echoCancellation:!0,noiseSuppression:!0}}),a=new r;const{data:e}=yield n.post("/speech/assemblyai");if(!e.success||!e.token)throw new Error(e.error||"AssemblyAI streaming token was not returned");if(!f.current||t!==w.current)return;const o=new URL("wss://streaming.assemblyai.com/v3/ws");o.searchParams.set("sample_rate",String(16e3)),o.searchParams.set("speech_model","whisper-rt"),o.searchParams.set("language_detection","true"),o.searchParams.set("format_turns","true"),o.searchParams.set("token",e.token);const s={socket:new WebSocket(o),stream:i,audioContext:a,started:!1};i=void 0,a=void 0,y.current=s,yield new Promise(((e,r)=>{const o=window.setTimeout((()=>{r(new Error("AssemblyAI streaming session timed out"))}),1e4),n=e=>{s.started||(window.clearTimeout(o),r(e))};s.socket.binaryType="arraybuffer",s.socket.onmessage=r=>{try{const n=JSON.parse(String(r.data));if("Begin"!==n.type||s.started){if("Turn"===n.type)(e=>{var t;const r=(e=>{var t,r;const o=null===(t=e.transcript)||void 0===t?void 0:t.trim();if(o)return o;const n=null===(r=e.utterance)||void 0===r?void 0:r.trim();return n&&!/^(?:\[[^\]]+\]\s*)+$/.test(n)?n:""})(e),o=null!==(t=e.turn_order)&&void 0!==t?t:0;r?v.current.set(o,r):v.current.delete(o);const n=Array.from(v.current.entries()).sort((([e],[t])=>e-t)).map((([,e])=>e)).join(" ").trim();f.current&&u(n)})(n);else if("Termination"===n.type)s.socket.close();else if("Error"===n.type)throw new Error(n.error||"AssemblyAI streaming failed")}else{s.started=!0,window.clearTimeout(o);const r=s.audioContext.createMediaStreamSource(s.stream),n=s.audioContext.createScriptProcessor(4096,1,1),c=s.audioContext.createGain();c.gain.value=0,n.onaudioprocess=({inputBuffer:e})=>{if(s.socket.readyState!==WebSocket.OPEN)return;const t=((e,t)=>{const r=t/16e3,o=Math.max(1,Math.round(e.length/r)),n=new Int16Array(o);let s=0;for(let t=0;t<o;t+=1){const o=Math.min(e.length,Math.round((t+1)*r));let c=0,i=0;for(;s<o;s+=1)c+=e[s],i+=1;const a=Math.max(-1,Math.min(1,i?c/i:0));n[t]=a<0?32768*a:32767*a}return n})(e.getChannelData(0),e.sampleRate);s.socket.send(t.buffer)},r.connect(n),n.connect(c),c.connect(s.audioContext.destination),s.source=r,s.processor=n,s.silentGain=c,s.audioContext.resume(),f.current&&t===w.current&&d(!0),e()}}catch(e){console.error("Could not process AssemblyAI message",e),n(e instanceof Error?e:new Error(String(e))),s.socket.close()}},s.socket.onerror=()=>{const e=new Error("Could not connect to AssemblyAI streaming");n(e),s.started&&console.error(e),s.socket.close()},s.socket.onclose=()=>{n(new Error("AssemblyAI streaming closed before it started")),(e=>{c(e),y.current===e&&(y.current=null,f.current&&d(!1))})(s)}})),f.current&&t===w.current||k(s)}catch(e){const t=y.current;t&&k(t),console.error("Could not start AssemblyAI speech recognition",e)}finally{if(i)for(const e of i.getTracks())e.stop();"closed"!==(null==a?void 0:a.state)&&(null==a||a.close()),f.current&&t===w.current&&p(!1)}})),onStopListening:()=>e(void 0,void 0,void 0,(function*(){const e=++w.current,t=y.current;if(t)try{p(!0),c(t),yield new Promise((e=>{const r=window.setTimeout(e,2e3),o=t.socket.onclose;t.socket.onclose=n=>{window.clearTimeout(r),null==o||o.call(t.socket,n),e()},t.socket.readyState===WebSocket.OPEN?t.socket.send(JSON.stringify({type:"Terminate"})):e()}))}catch(e){console.error("Could not stop AssemblyAI speech recognition",e)}finally{k(t),f.current&&e===w.current&&(d(!1),p(!1))}else d(!1)}))}};export{i as useSpeechToText};
|