@pickaxeproject/react 6.9.1 → 6.10.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/components/Pickaxe/Chat/History/index.js +1 -1
- package/dist/cjs/components/Pickaxe/Chat/Input.js +1 -1
- package/dist/cjs/hooks/pickaxe/useConversation.js +1 -1
- package/dist/cjs/src/types/history.d.ts +1 -1
- package/dist/cjs/src/types/pickaxe.d.ts +1 -0
- package/dist/esm/components/Pickaxe/Chat/History/index.js +1 -1
- package/dist/esm/components/Pickaxe/Chat/Input.js +1 -1
- package/dist/esm/hooks/pickaxe/useConversation.js +1 -1
- package/dist/esm/src/types/history.d.ts +1 -1
- package/dist/esm/src/types/pickaxe.d.ts +1 -0
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("react/jsx-runtime"),s=require("react"),
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("react/jsx-runtime"),s=require("react"),t=require("../../../../hooks/pickaxe/usePickaxeContext.js"),i=require("../../Addons/Auth/hooks/useAuthContext.js"),a=require("../../Addons/Auth/hooks/useAuth.js"),l=require("../../../../hooks/pickaxe/useResponseContext.js"),n=require("../../../../hooks/pickaxe/useDimensionContext.js"),r=require("../../Addons/Scroll/hooks/useScrollContext.js"),o=require("../../../../hooks/studio/useStyleFontSize.js"),c=require("../../../../hooks/pickaxe/useConversation.js"),d=require("../../Addons/Artifact/hooks/useArtifactContext.js"),u=require("framer-motion"),m=require("../../../Icons/lock.svg.js"),x=require("../../../Core/ErrorAlert.js"),f=require("../../common/PickaxeHead.js"),h=require("../../common/PickaxeEmbedHead.js"),g=require("../../common/PickaxeUpgradeCard.js"),j=require("../../common/PickaxeSkeleton.js"),p=require("../../common/PickaxeHistoryButton.js"),v=require("../../Addons/Scroll/ScrollLockView.js"),y=require("../../Addons/Artifact/Renderer/index.js"),b=require("./Message.js"),k=require("./CustomMessage.js"),w=require("../../Addons/IceBreaker/index.js"),N=require("../../common/PickaxeBranding.js"),O=require("../../../../common/cn.js");const C=e=>(()=>{var s;const t=(null!==(s=e.parts)&&void 0!==s?s:[]).filter((e=>!1!==e.isVisible)),i=t.filter((e=>"text"===e.type)).map((e=>{var s;return null!==(s=e.content)&&void 0!==s?s:""})).join("").trim(),a=i.replace(/\s+/g," ").replace(/\s*([.,!?;:])\s*/g,"$1").trim();return a?JSON.stringify({role:e.role,text:a}):JSON.stringify({role:e.role,parts:t.map((e=>{var s;return{type:e.type,content:null!==(s=e.content)&&void 0!==s?s:""}}))})})();exports.default=({additionalScrollHeight:q,smitheryAuthData:S,isForceHideInfo:A,isInputFocused:P,onSubmit:I,resubmitPrompt:H})=>{var L,R,M,D,F,B,E;const{sessionId:T,deploymentType:$,pickaxe:z,translations:W,misc:_,isNewChat:J,isRtl:V,isEmbed:G,isShowIceBreaker:U,setSessionId:K,setLastSessionId:Q}=t.usePickaxeContext(),{emailInput:X,isLoggedOut:Y,isSending:Z,isResendDisabled:ee,isSent:se,isPricingAuth:te}=i.useAuthContext(),{onSend:ie}=a.useAuth(),{scrollContainerRef:ae,isLocked:le}=r.useScrollContext(),{messages:ne,limitData:re,error:oe,isGenerating:ce}=l.useResponseContext(),{height:de,width:ue}=n.useDimensionContext(),{currentArtifact:me,chatPopupType:xe,currentPopupType:fe}=d.useArtifactContext(),he=c.useConversation(),ge=o.useStyleFontSize(),je=s.useMemo((()=>(null==z?void 0:z.icebreakers)?z.icebreakers.slice(0,3):[]),[null==z?void 0:z.icebreakers]),pe=s.useMemo((()=>{const e=!!he.data&&he.data.messages.length>1;return!A&&he.isSuccess&&J&&!e}),[A,he.isSuccess,J,he.data]),ve=s.useMemo((()=>!(null==z?void 0:z.chatflag)&&(null==z?void 0:z.enablechatresponses)&&ne.length>0),[z,ne]),ye=s.useMemo((()=>!!he.data&&he.data.messages.some((e=>"intromessage"===e.area))),[he.data]),be="chat-input"===$&&te&&Y&&se,ke=U&&!P&&!ye&&pe&&ue>767,we=U&&!P&&(ye||ue<=767),Ne=s.useMemo((()=>{var e,s;const t=null!==(s=null===(e=he.data)||void 0===e?void 0:e.messages)&&void 0!==s?s:[];if(ce||!t.length||!ne.length)return ne;const i=t.map(C);let a=0,l=0;for(;l<ne.length&&a<i.length;){const e=i.indexOf(C(ne[l]),a);if(-1===e)break;l+=1,a=e+1}const n=new Set(t.filter((e=>"assistant"===e.role)).map(C));return ne.slice(l).filter((e=>"assistant"!==e.role||!n.has(C(e))))}),[null===(L=he.data)||void 0===L?void 0:L.messages,ce,ne]),Oe=()=>{Q(T),K("")};return s.useEffect((()=>{le&&ae.current&&requestAnimationFrame((()=>{ae.current&&(ae.current.scrollTop=ae.current.scrollHeight)}))}),[q,null===(R=he.data)||void 0===R?void 0:R.messages.length,le,ae,Ne.length]),e.jsxs("div",Object.assign({ref:ae,className:"flex flex-1 w-full flex-col items-center overflow-y-auto pb-4 scrollbar scrollbar-thin min-h-0 mb-4"},{children:[e.jsx(u.AnimatePresence,{children:!!me&&"inline"===fe&&e.jsx(u.motion.div,Object.assign({className:O.default("absolute top-0 z-20 w-full px-4 py-2",xe),style:{height:`calc(${de-q}px - 80px)`},initial:{opacity:0,y:-20},animate:{opacity:1,y:0},exit:{opacity:0,y:-20},transition:{duration:.2,ease:"easeOut"}},{children:e.jsx(y.default,{type:"inline",className:"pxe-artifact-inline h-full shadow",artifact:{id:me.id,version:me.version}})}))}),e.jsxs("div",Object.assign({className:"relative flex flex-col items-center flex-grow w-full max-w-[800px]"},{children:[pe&&G&&e.jsx("div",Object.assign({className:O.default("absolute right-4 top-3 flex items-center gap-2","popup"===$&&"right-12")},{children:e.jsx(p.default,{tip:(null==W?void 0:W["chat-history"])||"Chat History",onClick:Oe})})),e.jsx(f.default,Object.assign({className:O.default("opacity-0 mt-[0%] transition-all duration-500 ease-in-out max-h-0 overflow-hidden max-w-[500px]",pe&&"opacity-100 mt-[10%] max-h-[100%]"),iconClassName:"duration-300 hover:opacity-90",maxDescriptionChars:500},!be&&{onIconClick:Oe})),G&&!he.isLoading&&e.jsx(h.default,Object.assign({className:O.default("opacity-0 transition-all duration-500 ease-in-out h-0 w-full sticky top-0 z-10",!pe&&"opacity-100 h-[56px]"),iconClassName:"duration-300 hover:opacity-90",historyBtnTip:(null==W?void 0:W["chat-history"])||"Chat History"},!be&&{onIconClick:Oe,onHistoryClick:Oe})),e.jsxs("div",Object.assign({className:O.default("flex flex-col flex-grow mt-6 transition-all duration-300 ease-in-out w-full px-4",G&&!he.isLoading&&!pe&&"mt-0")},{children:[ke&&e.jsx("div",Object.assign({className:O.default("grid grid-cols-3 gap-4",2===je.length&&"grid-cols-2",1===je.length&&"grid-cols-1")},{children:e.jsx(w.default,{type:"center",data:je,onSend:I})})),be?e.jsx("div",Object.assign({className:"flex flex-col w-full"},{children:e.jsxs("div",Object.assign({className:"grid grid-cols-1 gap-y-6 w-full"},{children:[e.jsx(k.default,Object.assign({chatRole:"user"},{children:e.jsxs("div",Object.assign({className:"flex items-center gap-x-3"},{children:[e.jsx(m.default,{className:"h-6 w-6 shrink-0"}),e.jsx("p",Object.assign({className:"font-semilight"},{children:X}))]}))})),e.jsx(k.default,Object.assign({chatRole:"assistant"},{children:e.jsxs("p",Object.assign({className:"py-3 font-semilight"},{children:[`${null!==(F=null==W?void 0:W["we-sent-your-an-activation-link"])&&void 0!==F?F:"We sent you an activation link. Please be sure to check your spam folder too."} `,e.jsx("span",Object.assign({className:"underline underline-offset-2 cursor-pointer",onClick:()=>{ee||Z||ie(!0)}},{children:Z?null!==(B=null==W?void 0:W.resending)&&void 0!==B?B:"Resending...":null!==(E=null==W?void 0:W.resend)&&void 0!==E?E:"Resend"}))]}))}))]}))})):e.jsx(e.Fragment,{children:he.isLoading&&!(null==z?void 0:z.enablechatresponses)?e.jsxs("div",Object.assign({className:"grid w-full max-w-[800px] grid-cols-1 gap-y-6 px-6 pt-10"},{children:[J&&e.jsxs("div",Object.assign({className:"flex flex-col items-center w-full"},{children:[e.jsx(j.default,{className:"w-[72px] h-[72px]"}),e.jsx(j.default,{className:"h-[20px] mt-6 w-full"}),e.jsx(j.default,{className:"h-[20px] mt-2 w-full"}),e.jsx(j.default,{className:"h-[20px] mt-2 w-full max-w-[400px]"})]})),e.jsx(j.default,{className:"h-10 w-[70%] animate-pulse justify-self-end rounded"}),e.jsx(j.default,{className:"h-[150px] w-[70%] animate-pulse rounded"}),e.jsx(j.default,{className:"h-10 w-[50%] animate-pulse justify-self-end rounded"})]})):he.isError?e.jsx("div",Object.assign({className:"flex w-full justify-center"},{children:e.jsxs("p",Object.assign({className:O.default(ge.b2,"text-center font-semibold")},{children:[(null==W?void 0:W["something-went-wrong-please-try-again"])||"Something went wrong. Please try again, or"," ",e.jsx("a",Object.assign({href:"mailto:info@pickaxeproject.com?subject=Help",target:"_blank",rel:"noreferrer"},{children:(null==W?void 0:W["contact-us"])||"contact us"}))," ",(null==W?void 0:W["for-help"])||"for help."]}))})):he.data||ve?e.jsxs("div",Object.assign({className:"flex flex-col w-full flex-grow justify-between"},{children:[e.jsxs("div",Object.assign({className:"grid grid-cols-1 gap-y-6 w-full"},{children:[(null!==(D=null===(M=he.data)||void 0===M?void 0:M.messages)&&void 0!==D?D:[]).map(((s,t)=>e.jsx(b.default,{index:t,message:s},`history-${t}`))),Ne.map(((s,t)=>{var i,a;return e.jsx(b.default,{smitheryData:S,resubmitPrompt:H,index:(null!==(a=null===(i=he.data)||void 0===i?void 0:i.messages.length)&&void 0!==a?a:0)+t,message:s,isLastMessage:t===Ne.length-1},`memory-${t}`)})),re?e.jsx("div",Object.assign({className:"flex max-w-[100%] items-center gap-x-3"},{children:e.jsx(g.default,{})})):oe?e.jsx("div",Object.assign({className:O.default("flex items-center gap-x-3",V?"justify-end":"justify-start")},{children:e.jsx(x.default,{error:oe})})):null]})),e.jsxs("div",Object.assign({className:O.default("flex flex-col",!_.isWhiteLabel||we&&"mt-4")},{children:[!_.isWhiteLabel&&e.jsx(N.default,{containerClassName:O.default("justify-end",we&&"mb-2")}),we&&e.jsx("div",Object.assign({className:"flex flex-col items-end gap-2"},{children:e.jsx(w.default,{type:"right",data:je,onSend:I})})),e.jsx(v.default,{})]}))]})):null})]}))]}))]}))};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("../../../_virtual/_tslib.js"),t=require("react/jsx-runtime"),s=require("react"),n=require("../../../hooks/pickaxe/usePickaxeContext.js"),i=require("../../../hooks/pickaxe/useResponseContext.js"),r=require("../../../hooks/studio/useStyleInput.js"),o=require("../../../hooks/studio/useStyleFontSize.js"),a=require("../../../hooks/pickaxe/useConversation.js"),l=require("../../../hooks/pickaxe/useDimensionContext.js"),d=require("../Addons/Auth/hooks/useAuthContext.js"),c=require("../Addons/Document/hooks/useDocument.js"),u=require("../Addons/Scroll/hooks/useScroll.js"),p=require("../Addons/Artifact/hooks/useArtifactContext.js"),m=require("../../../hooks/core/useHover.js"),f=require("../../../hooks/core/useMediaQuery.js"),g=require("../../../common/documents.js"),v=require("eventsource-parser"),h=require("../../Icons/attach-vertical.svg.js"),b=require("../../Icons/arrow-right.svg.js"),I=require("../../Icons/microphone.svg.js"),y=require("../../Icons/stop.svg.js"),x=require("../Addons/Document/List.js"),j=require("../../Core/Textarea.js"),S=require("../../Core/ErrorAlert.js"),O=require("../../../common/error.js"),w=require("../../../common/api/pickaxe.js"),N=require("../../../common/validation.js"),_=require("../../../common/cn.js"),k=require("../../../common/utils.js"),E=require("../../../common/pickaxeConfig.js"),U=require("../../../common/deploymentWebhooks.js"),C=require("../../../hooks/studio/useStudio.js"),T=require("../../../hooks/pickaxe/useSpeech.js"),A=require("../common/PickaxeCommon.js");const D=e=>"string"==typeof e&&e.trim().length>0,P=e=>e.map((e=>Object.assign({},e))),L=e=>e instanceof Error&&("AbortError"===e.name||"BodyStreamBuffer was aborted"===e.message),R=(e,t)=>{if(e&&"object"==typeof e)return e[t]},M=(e,t)=>{const s=R(e,t);return D(s)?s:null},q=e=>{const t=Number(e);return Number.isFinite(t)?t:void 0},F=({studioUser:e,deploymentId:t,portalId:s})=>{var n,i;const r=Array.isArray(R(e,"uses"))?R(e,"uses"):[],o=(({deploymentId:e,portalId:t})=>D(e)?{type:"deployment",id:e}:D(t)?{type:"portal",id:t}:null)({deploymentId:t,portalId:s});if(!o)return{scope:o,record:null};const a=null!==(i=null!==(n=r.find((e=>e.id===o.id&&e.type===o.type)))&&void 0!==n?n:r.find((e=>e.id===o.id)))&&void 0!==i?i:null;return{scope:o,record:a}},V=s.forwardRef((({resubmitPrompt:R,onFocus:V,onBlur:B,onInputHeightChange:$,initSmitheryAuthData:X},H)=>{var K,W,Y,z,G,J,Q,Z,ee,te,se,ne;const{origin:ie,pickaxeId:re,sessionId:oe,sender:ae,senderType:le,portalId:de,deploymentId:ce,deploymentType:ue,pickaxe:pe,styles:me,colors:fe,translations:ge,locale:ve,forceMobile:he,isNewChat:be,isRtl:Ie,isShowFeedbackMessage:ye,accessGroup:xe,setIsNewChat:je,setIsShowIceBreaker:Se,setValidationStatus:Oe,setValidationUpgradeGroups:we,setValidationUpgradeUrl:Ne,setAccessGroup:_e,onGenerateComplete:ke}=n.usePickaxeContext(),{token:Ee,isLoggedOut:Ue,isSent:Ce,isPricingAuth:Te}=d.useAuthContext(),{messages:Ae,isGenerating:De,setMessages:Pe,setStatus:Le,setLimitData:Re,setError:Me}=i.useResponseContext(),{documents:qe,isUploading:Fe,documentError:Ve,onFileUpload:Be,setDocuments:$e,setDocumentError:Xe}=c.useDocument(),{studio:He}=C.useStudio(),{scrollStartSession:Ke,scrollEndSession:We,scrollToBottom:Ye}=u.useScroll({auto:!0}),{artifacts:ze,currentPopupType:Ge,setArtifacts:Je,setCurrentArtifact:Qe}=p.useArtifactContext(),{height:Ze}=l.useDimensionContext(),et=a.useConversation(),[tt,st]=s.useState(""),[nt,it]=s.useState(!1),[rt,ot]=s.useState(!1),[at,lt]=s.useState(null),[dt,ct]=s.useState(null),[ut,pt]=s.useState(!1),[mt,ft]=s.useState(!1),[gt,vt]=s.useState(0),ht=s.useRef(null),bt=s.useRef(""),It=s.useRef(null),yt=s.useRef(null),xt=s.useRef(null),jt=s.useRef([]),St=s.useRef(null),Ot=s.useRef(null),wt=s.useRef(null),Nt=s.useRef(null),_t=s.useRef(new Set),kt=s.useRef(null),Et=Math.max(.4*Ze,100),{speechTranscript:Ut,isSpeechListening:Ct,isSpeechProcessing:Tt,isSpeechSupported:At,onStartListening:Dt,onStopListening:Pt}=T.useSpeech(),[Lt]=f.useMediaQuery("(max-width: 480px)"),Rt=m.useHover(),{isHover:Mt}=Rt,qt=e.__rest(Rt,["isHover"]),Ft=m.useHover(),{isHover:Vt}=Ft,Bt=e.__rest(Ft,["isHover"]),$t=m.useHover(),{isHover:Xt}=$t,Ht=e.__rest($t,["isHover"]),Kt=o.useStyleFontSize(),Wt=r.useStyleInput(),Yt="undefined"!=typeof window?window.location.hostname:"",zt="undefined"!=typeof window?window.location.href:"",Gt="undefined"!=typeof window&&window.self!==window.top,Jt=Yt.includes("pickaxe.co")&&!zt.includes("https://studio.pickaxe.co/_embed")&&!Gt,Qt=null!==(W=null===(K=null==pe?void 0:pe.documentuploadtype)||void 0===K?void 0:K.startsWith("enduserupload"))&&void 0!==W&&W,Zt=At&&(null==pe?void 0:pe.enablevoicetotext),es=D(ce),ts="chat-input"===ue&&be&&!Ce,ss="chat-input"===ue&&Te&&Ue&&Ce,ns=s.useCallback((e=>{const t=N.getValidationFailure(e);return!!t&&(Me(""),Re(null),Oe(t.status),_e(t.accessGroup),we(t.upgradeGroups),Ne(t.upgradeUrl),!0)}),[Me,Re,Oe,we,Ne,_e]),is=null!==(Y=null==pe?void 0:pe.placeholdertext)&&void 0!==Y?Y:Ie?"بماذا تريد أن تتحدث؟":(null==ge?void 0:ge["what-do-you-want-to-talk-about"])||"What do you want to talk about?",rs=nt||rt,os=s.useCallback((()=>e.__awaiter(void 0,void 0,void 0,(function*(){pt(!1);try{const e=yield fetch(`${process.env.NEXT_PUBLIC_PICKAXE_API2_URL}/user`,Object.assign(Object.assign({method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(Object.assign({studioId:null==pe?void 0:pe.studioid},Ee?{studioSessionToken:Ee}:ae?{sender:ae}:{sender:k.initializeEmbedUserId()}))},(!process.env.NODE_ENV||"development"===process.env.NODE_ENV)&&Object.assign({},process.env.NEXT_PUBLIC_PICKAXE_SESSION_TOKEN&&{headers:{"Content-Type":"application/json","x-pickaxe-session-token":process.env.NEXT_PUBLIC_PICKAXE_SESSION_TOKEN}})),Jt&&{credentials:"include"})),t=yield e.json();(null==t?void 0:t.studioUser)&&(lt(t.studioUser),ct(t.url))}catch(e){console.error("Failed to fetch studio user:",e)}finally{pt(!0)}}))),[Jt,null==pe?void 0:pe.studioid,ae,Ee]);s.useEffect((()=>{os()}),[os]);const as=Number(null!==(z=null==xe?void 0:xe.limit)&&void 0!==z?z:0),ls="string"==typeof(null==xe?void 0:xe.limitInterval)?xe.limitInterval:null,ds=!!(null==He?void 0:He.data.usage)&&He.data.usage.isCredits,cs=s.useMemo((()=>{var e,t,s,n,i;return null!==(i=null!==(n=null!==(s=null!==(t=null!==(e=null!=de?de:M(at,"portalId"))&&void 0!==e?e:M(at,"portalid"))&&void 0!==t?t:M(xe,"portalId"))&&void 0!==s?s:M(xe,"portalid"))&&void 0!==n?n:M(pe,"portalId"))&&void 0!==i?i:M(pe,"portalid")}),[xe,de,pe,at]),us=s.useMemo((()=>F({studioUser:at,deploymentId:ce,portalId:cs})),[ce,cs,at]);s.useEffect((()=>{es&&be&&oe&&_t.current.add(oe)}),[be,oe,es]);const ps=s.useCallback((()=>{var e,t,s;return{studioId:null==pe?void 0:pe.studioid,userEmail:M(at,"email"),userId:null!==(e=M(at,"userId"))&&void 0!==e?e:M(at,"userid"),sessionId:oe,deploymentId:ce,deploymentType:ue,portalId:cs,accessGroupId:null!==(t=null==xe?void 0:xe.accessGroupId)&&void 0!==t?t:null,pickaxeId:re,sender:ae,senderType:le,origin:ie,metadata:null!==(s=E.getPickaxeConfigMetadata(ce))&&void 0!==s?s:null}}),[null==xe?void 0:xe.accessGroupId,ce,ue,ie,null==pe?void 0:pe.studioid,re,cs,ae,le,oe,at]),ms=s.useCallback((()=>!!(es&&ut&&oe)&&(!!_t.current.has(oe)&&(U.fireDeploymentSessionInitializedWebhook(ps()),_t.current.delete(oe),!0))),[ps,ut,oe,es]);s.useEffect((()=>{if(!ut||!oe)return;ms();const e=kt.current;(null==e?void 0:e.sessionId)===oe&&(U.fireDeploymentFirstMessageSubmittedWebhook(Object.assign(Object.assign(Object.assign({},e),ps()),{message:e.message,documentIds:e.documentIds,uploadedModelImages:e.uploadedModelImages,hasUploadedDocuments:e.hasUploadedDocuments,isHidden:e.isHidden})),kt.current=null)}),[ms,ps,ut,oe]);const fs={currentUses:q(null==at?void 0:at.currentUses),extraUses:q(null==at?void 0:at.extraUses)},gs=us.scope?{currentUses:null!==(J=q(null===(G=us.record)||void 0===G?void 0:G.currentUses))&&void 0!==J?J:0,extraUses:null!==(Z=q(null===(Q=us.record)||void 0===Q?void 0:Q.extraUses))&&void 0!==Z?Z:0}:{currentUses:0,extraUses:0},vs=M(at,"type"),hs="guest"===vs||!vs&&Ue?gs:fs;s.useEffect((()=>{let t=!0;return e.__awaiter(void 0,void 0,void 0,(function*(){var e;if(ds&&(null===(e=null==He?void 0:He.data)||void 0===e?void 0:e.workspaceId))try{const e=yield w.pickaxeApi2.get(`/cost_per_run?workspaceId=${He.data.workspaceId}`,{withCredentials:!1});t&&vt(1e4*(Number(e.data.costPerRun)||0))}catch(e){console.error("Failed to fetch average cost per run:",e),t&&vt(0)}else t&&vt(0)})),()=>{t=!1}}),[ds,null===(ee=null==He?void 0:He.data)||void 0===ee?void 0:ee.workspaceId]);const bs=(({currentUses:e,extraUses:t,limit:s,limitInterval:n})=>{const i=Number(null!=e?e:0),r=Number(null!=t?t:0);return s===A.STUDIO_INFINITY_VALUE||r===A.STUDIO_INFINITY_VALUE?A.STUDIO_INFINITY_VALUE:"one_time"===n?Math.max(0,r-i):Math.max(0,s-i)+r})({currentUses:hs.currentUses,extraUses:hs.extraUses,limit:as,limitInterval:ls}),Is=bs===A.STUDIO_INFINITY_VALUE?A.STUDIO_INFINITY_VALUE:Math.max(0,Math.ceil(bs)),ys=(({extraUses:e,limit:t,limitInterval:s})=>{const n=Number(null!=e?e:0);return t===A.STUDIO_INFINITY_VALUE||n===A.STUDIO_INFINITY_VALUE?A.STUDIO_INFINITY_VALUE:"one_time"===s?Math.max(0,n):Math.max(0,t)+Math.max(0,n)})({extraUses:hs.extraUses,limit:as,limitInterval:ls}),xs=ys===A.STUDIO_INFINITY_VALUE?A.STUDIO_INFINITY_VALUE:Math.ceil(.05*ys),js=ds?Math.ceil(5*gt):5,Ss=xs===A.STUDIO_INFINITY_VALUE?A.STUDIO_INFINITY_VALUE:Math.max(xs,js),Os=s.useMemo((()=>!!at&&(!mt&&(Is!==A.STUDIO_INFINITY_VALUE&&(!(Is<=0)&&Is<=Ss)))),[mt,Ss,Is,at]),ws=Boolean(null==xe?void 0:xe.hideUpgradeOptions),Ns=!ws&&(null===(te=null==xe?void 0:xe.upgrade)||void 0===te?void 0:te.isLinkToCustomURL)&&"string"==typeof xe.upgrade.limitLink&&xe.upgrade.limitLink.trim().length>0?xe.upgrade.limitLink.trim():null,_s=Ns&&"string"==typeof(null===(se=null==xe?void 0:xe.upgrade)||void 0===se?void 0:se.limitCTA)&&xe.upgrade.limitCTA.trim().length>0?xe.upgrade.limitCTA:(null==ge?void 0:ge["pricing.upgrade"])||(null==ge?void 0:ge.upgrade)||"Upgrade",ks=s.useMemo((()=>{var e,t,s;return!!be&&(!!pe&&(!et.isLoading&&(!((null!==(t=null===(e=et.data)||void 0===e?void 0:e.messages.length)&&void 0!==t?t:0)>1)&&(!!(null===(s=pe.icebreakers)||void 0===s?void 0:s.length)&&(!ye&&!ts)))))}),[pe,be,ye,ts,et.data,et.isLoading]),Es=s.useMemo((()=>{if(De||Fe)return!1;const e=Qt&&qe.length>0&&qe.every((e=>"finished"===e.status));return!(!tt.trim()&&!e)&&qe.every((e=>"finished"===e.status||e.isInsertedAsRaw))}),[Qt,De,Fe,tt,qe]);s.useImperativeHandle(H,(()=>({onSubmit:Us}))),s.useEffect((()=>{Se(ks)}),[ks]),s.useEffect((()=>{var e;if(R){const t=Array.from(Ae),s=null===(e=t[t.length-2].parts.find((e=>"text"===e.type)))||void 0===e?void 0:e.content;Us(s,!0)}}),[R]),s.useEffect((()=>{if(!wt.current||!$)return;const e=new ResizeObserver((e=>{for(const t of e)$(t.contentRect.height)}));return e.observe(wt.current),()=>{e.disconnect()}}),[$]),s.useEffect((()=>{if(!Ct)return;const e=bt.current?`${bt.current} `:"";st(`${e}${Ut}`)}),[Ut,Ct]),s.useEffect((()=>{if(!St.current)return;(()=>{if(!St.current)return;let e=St.current.scrollHeight>52;tt.includes("\n")||qe.length?e=!0:tt.trim()||(e=!1),it(e)})()}),[tt,qe]),s.useEffect((()=>{const e=St.current,t=Ot.current;if(!e||!t||nt||tt.includes("\n"))return void ot(!1);const s=window.getComputedStyle(e),n=`${s.fontStyle} ${s.fontVariant} ${s.fontWeight} ${s.fontSize} / ${s.lineHeight} ${s.fontFamily}`,i=document.createElement("span");Object.assign(i.style,{font:n,letterSpacing:s.letterSpacing,position:"absolute",visibility:"hidden",whiteSpace:"nowrap",top:"0",left:"0"}),i.textContent=tt||is,document.body.appendChild(i);const r=i.offsetWidth;i.remove();const o=parseFloat(s.paddingLeft)||0,a=parseFloat(s.paddingRight)||0,l=e.clientWidth-o-a-t.offsetWidth;ot(r>l)}),[tt,nt,is]);const Us=(t,s=!1)=>e.__awaiter(void 0,void 0,void 0,(function*(){var e,n,i,r;let o=null;try{if(De||Fe)return;const a=qe.filter((e=>"finished"===e.status&&!e.isInsertedAsRaw)),l=a.map((e=>e.documentId)).filter(Boolean),d=a.filter((e=>"image"===e.type)).map((e=>{const t=e.name.split(".").pop()||"";return{documentId:e.documentId,extension:t}})),c=null!=t?t:tt,u=null!==(n=null===(e=null==pe?void 0:pe.documentuploadtype)||void 0===e?void 0:e.startsWith("enduserupload"))&&void 0!==n&&n&&l.length>0;if(!c&&!u)return;Me(""),Xe(""),Re(null),st(""),je(!1),Le("fetching"),Ke(),Ye();const p=[...s?Array.from(Ae.slice(0,Ae.length-1)):Array.from(Ae),...s?[]:[{id:Ae.length+1,role:"user",parts:[{type:"text",content:c,isVisible:!0}],documentIds:u?l:[]}],{id:Ae.length+(s?0:2),role:"assistant",parts:[],documentIds:[]}];Pe(p),Ye(),u&&$e([]);const m=E.getPickaxeConfigMetadata(ce),f="undefined"!=typeof crypto&&"randomUUID"in crypto?crypto.randomUUID():`submission-${Date.now()}-${Math.random().toString(36).slice(2)}`;o=f,yt.current=f,xt.current=null,jt.current=[];const g=yield fetch(`${process.env.NEXT_PUBLIC_PICKAXE_API2_URL}/response/submit`,Object.assign({method:"POST",body:JSON.stringify(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({origin:ie,pickaxeId:re,sessionId:oe,submissionId:f,senderType:le,value:c},u&&{documentIds:l}),ae&&{sender:ae}),Ee&&{studioSessionToken:Ee}),!Ee&&!ae&&{sender:k.initializeEmbedUserId()}),cs&&{portalId:cs}),ce&&{deploymentId:ce}),m&&{metadata:m}),u&&d.length>0?{uploadedModelImages:d}:{})),headers:Object.assign(Object.assign({},(!process.env.NODE_ENV||"development"===process.env.NODE_ENV)&&Object.assign({},process.env.NEXT_PUBLIC_PICKAXE_SESSION_TOKEN&&{"x-pickaxe-session-token":process.env.NEXT_PUBLIC_PICKAXE_SESSION_TOKEN})),{"x-request-sent-at":(new Date).toISOString()})},Jt&&{credentials:"include"})),h=yield g.json();if(!h.success){if(h.limitData){const e=new Error(h.error||h.message||(null==ge?void 0:ge["failed-to-start-generation"])||"Failed to start generation");throw e.limitData=h.limitData,e}if(ns(h))return;throw new Error(h.error||h.message||(null==ge?void 0:ge["failed-to-start-generation"])||"Failed to start generation")}const b=null!==(i=h.submissionId)&&void 0!==i?i:f;o=b,yt.current=b;const I=()=>xt.current===b;if(I())return;es&&be&&oe&&_t.current.add(oe);const y=Object.assign(Object.assign({},ps()),{message:c,documentIds:u?l:[],uploadedModelImages:u?d:[],hasUploadedDocuments:u,isHidden:s,metadata:null!=m?m:null});ut?(ms(),U.fireDeploymentFirstMessageSubmittedWebhook(y)):kt.current=y,Le("streaming"),Nt.current=new AbortController;const x=p.length-1,j=[];let S=[...null!=ze?ze:[]],O=0,w=!1,N="";for(;!w;)try{const e=yield fetch(`${process.env.NEXT_PUBLIC_PICKAXE_API2_URL}/response/stream/${b}?index=${O}`,{signal:null===(r=Nt.current)||void 0===r?void 0:r.signal,headers:{"Cache-Control":"no-cache",Connection:"keep-alive"}});if(!e.body)throw new Error("No response body");const t=e.body.getReader();It.current=t;const s=new TextDecoder,n=v.createParser({onEvent:e=>{var t,s;if(I())w=!0;else if(e.event&&"ping"!==e.event&&O++,"stop"!==e.event){if("error"===e.event){const t=JSON.parse(e.data);if(t.limitData)return Re(t.limitData),Me(""),void(w=!0);const s=t.error||t.message||(null==ge?void 0:ge["something-went-wrong"])||"Something went wrong.";return ns(t)||Me(s),void(w=!0)}if("delta"===e.event){const n=JSON.parse(e.data);if("data-error"===n.type&&X){const e=n.data.error;if("string"==typeof e){const t=/['"]type['"]\s*:\s*['"]unauthorized_smithery['"]/.test(e),s=/['"]type['"]\s*:\s*['"]unauthorized_composio['"]/.test(e);if(t){const t=e.match(/['"]qualifiedName['"]\s*:\s*['"]([^'"]+)['"]/),s=e.match(/['"]serverId['"]\s*:\s*['"]([^'"]+)['"]/),n=e.match(/['"]name['"]\s*:\s*['"]([^'"]+)['"]/);if(t&&t[1]&&s&&s[1]&&n&&n[1])throw w=!0,X({provider:"smithery",smitheryId:t[1],serverId:s[1],name:n[1]}),new Error("STOP_STREAM")}else if(s){const t=e.match(/['"]toolkitSlug['"]\s*:\s*['"]([^'"]+)['"]/),s=e.match(/['"]serverId['"]\s*:\s*['"]([^'"]+)['"]/),n=e.match(/['"]name['"]\s*:\s*['"]([^'"]+)['"]/);if(t&&t[1]&&s&&s[1]&&n&&n[1])throw w=!0,X({provider:"composio",toolkitSlug:t[1],serverId:s[1],name:n[1]}),new Error("STOP_STREAM")}}else if("object"==typeof e&&null!==e){const t=e;if("unauthorized_smithery"===t.type&&t.qualifiedName&&t.serverId&&t.name)throw w=!0,X({provider:"smithery",smitheryId:t.qualifiedName,serverId:t.serverId,name:t.name}),new Error("STOP_STREAM");if("unauthorized_composio"===t.type&&t.toolkitSlug&&t.serverId&&t.name)throw w=!0,X({provider:"composio",toolkitSlug:t.toolkitSlug,serverId:t.serverId,name:t.name}),new Error("STOP_STREAM")}}else if("text-start"===n.type)N="",j.push({type:"text",content:"",isVisible:null===(t=n.isVisible)||void 0===t||t});else if("text-delta"===n.type)N+=n.delta,j[j.length-1].content=N;else if("text-end"===n.type)N="";else if("reasoning-start"===n.type)N="",j.push({type:"reasoning",content:"",isVisible:null===(s=n.isVisible)||void 0===s||s});else if("reasoning-delta"===n.type)N+=n.delta,j[j.length-1].content=N;else if("reasoning-end"===n.type)N="";else if(n.type.startsWith("data-")){const e=n;j.push({type:e.type,content:JSON.stringify(e.data),isVisible:!0})}jt.current=P(j),Pe([...p.slice(0,x),Object.assign(Object.assign({},p[p.length-1]),{id:Ae.length+1,role:"assistant",parts:j})])}else if("artifact_created"===e.event){const t=JSON.parse(e.data);S=S.filter((e=>!(e.id===t.id&&e.version===t.version))),S.push(Object.assign(Object.assign({},t),{content:"",status:"streaming"})),Je([...S]),Ge.startsWith("inline")||Qe({id:t.id,version:t.version})}else if("artifact_updated"===e.event){const t=JSON.parse(e.data);S=S.filter((e=>!(e.id===t.id&&e.version===t.version))),S.push(Object.assign(Object.assign({},t),{content:"",status:"updating"})),Je(S),Ge.startsWith("inline")||Qe({id:t.id,version:t.version})}else if("artifact_rewrite"===e.event){const t=JSON.parse(e.data);S=S.filter((e=>!(e.id===t.id&&e.version===t.version))),S.push(Object.assign(Object.assign({},t),{content:"",status:"streaming"})),Je(S),Ge.startsWith("inline")||Qe({id:t.id,version:t.version})}else if("artifact_content"===e.event){const t=JSON.parse(e.data),s=t.token.replace(/\u200B/g,"");S=S.map((e=>e.id===t.id&&e.version===t.version?Object.assign(Object.assign({},e),{content:e.content+s,status:"streaming"}):e)),Je(S)}else if("artifact_finished"===e.event){const t=JSON.parse(e.data);Je(S.map((e=>e.id===t.id?Object.assign(Object.assign({},e),{status:"finished"}):e)))}else if("error"===e.event){const t=JSON.parse(e.data);if(t.limitData)return Re(t.limitData),Me(""),void(w=!0);const s=t.error||t.message||(null==ge?void 0:ge["something-went-wrong-try-again"])||"Something went wrong, please try again.";if(ns(t))return void(w=!0);Me(s)}else"stop"===e.event&&(w=!0)}else w=!0}});for(;;){if(I()){w=!0,t.cancel().catch((()=>{}));break}const{value:e,done:i}=yield t.read();if(I()){w=!0,t.cancel().catch((()=>{}));break}if(i)break;n.feed(s.decode(e))}w||I()||(yield new Promise((e=>setTimeout(e,1e3))))}catch(e){if("STOP_STREAM"===e.message||L(e)||I())return void(w=!0);console.warn("Stream connection lost, retrying...",e),yield new Promise((e=>setTimeout(e,1e3)))}null==ke||ke(oe)}catch(e){if(L(e))return;if(e.limitData)Re(e.limitData),Me("");else{let t=O.default(e)||"";t&&!t.includes("Unexpected token 'A',")||(t=(null==ge?void 0:ge["high-traffic-try-again-later"])||"Oops! We're experiencing high traffic at the moment. Please try again later."),ns(t)||Me(t)}}finally{const e=!o||yt.current===o;Ye(),e&&(Le("idle"),We(),It.current=null),o&&e&&(yt.current=null,jt.current=[]),yield os()}}));return ss?null:t.jsx("div",Object.assign({className:_.default("flex w-full flex-shrink-0 flex-col items-center",!ts&&"px-4 pb-8"),dir:Ie?"rtl":"ltr"},{children:t.jsxs("div",Object.assign({className:"flex w-full max-w-[800px] flex-col"},{children:[t.jsxs("div",Object.assign({ref:wt,className:_.default("relative flex flex-col w-full justify-end gap-y-3 py-[3px]","block"===me.formFieldStyle&&"shadow"),style:Object.assign(Object.assign({},Wt),{maxHeight:`${Et}px`,overflowY:"auto"})},{children:[Os&&t.jsxs("div",Object.assign({className:"sticky top-0 z-10 flex w-full items-center justify-between border-b px-4 py-2.5 shadow-sm backdrop-blur-md",style:{backgroundColor:Wt.backgroundColor?`${Wt.backgroundColor}E6`:void 0,borderColor:fe.text+"20",color:fe.text,borderTopRightRadius:me.cornerRadius+"px",borderTopLeftRadius:me.cornerRadius+"px"}},{children:[t.jsx("div",Object.assign({className:"flex items-center gap-2 text-sm font-medium"},{children:t.jsxs("span",{children:[Is.toLocaleString()," ",ds?(null==ge?void 0:ge.credits)||"Credits":(null==ge?void 0:ge.uses)||"Uses"," ",(null==ge?void 0:ge.remaining)||"remaining"]})})),t.jsxs("div",Object.assign({className:"flex items-center gap-3"},{children:[!ws&&t.jsx("button",Object.assign({className:"rounded-md px-3 py-1.5 text-xs font-semibold transition-opacity hover:opacity-90",style:{backgroundColor:fe.accent,color:fe.accentText},onClick:e=>{if(e.preventDefault(),e.stopPropagation(),Ns)return void window.open(Ns,"_blank","noopener,noreferrer");const t=k.buildUpgradeUrl({baseUrl:dt,accessGroupId:null==xe?void 0:xe.accessGroupId,redirectUrl:document.URL});t&&(k.isInIframe()?window.open(t):location.href=t)}},{children:_s})),t.jsx("button",Object.assign({className:"flex h-6 w-6 items-center justify-center rounded-full opacity-60 transition-opacity hover:opacity-100",onClick:()=>ft(!0)},{children:t.jsx("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:2,stroke:"currentColor",className:"h-4 w-4"},{children:t.jsx("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M6 18L18 6M6 6l12 12"})}))}))]}))]})),!De&&qe.length>0&&t.jsx(x.default,{className:"p-4 pb-0",isDisabled:De}),t.jsxs("div",Object.assign({className:"relative flex w-full flex-col"},{children:[Ct&&t.jsxs("div",Object.assign({className:"absolute left-4 top-1/2 flex -translate-y-1/2 select-none items-center gap-x-2"},{children:[t.jsx("span",{className:"h-2 w-2 animate-pulse rounded-full bg-c-secondary",style:{backgroundColor:null!==(ne=fe.accent)&&void 0!==ne?ne:"#ff0000"}}),t.jsx("span",Object.assign({className:"text-sm text-c-secondary font-semilight",style:{color:fe.text+"90"}},{children:(null==ge?void 0:ge.listening)||"Listening..."}))]})),t.jsx(j.default,Object.assign({ref:St,className:_.default(Kt.i1,"py-3.5 max-h-60 px-4 w-full border-transparent bg-transparent",!tt.trim()&&!tt.includes("\n")&&"overflow-hidden text-ellipsis whitespace-nowrap placeholder:whitespace-normal placeholder:overflow-visible",Ie?"text-right":"text-left",rs&&"mb-12",Ct&&"text-transparent"),value:tt,placeholder:is,onChange:e=>{st(e)},onKeyDown:e=>{he||Lt||"Enter"===e.key&&(e.shiftKey||(e.preventDefault(),Fe||De||Us()))},onPaste:t=>e.__awaiter(void 0,void 0,void 0,(function*(){const e=Array.from(t.clipboardData.files||[]);if(e.length>0){if(!Qt)return;t.preventDefault(),je(!1),yield Be(e)}}))},V&&{onFocus:V},B&&{onBlur:B},{dir:Ie?"rtl":"ltr"})),t.jsx("div",Object.assign({ref:Ot,className:_.default("flex items-center gap-2 absolute right-0 z-2 transition-all duration-200 ease-in-out",rs?"bottom-0 mb-2.5":"top-1/2 -translate-y-1/2"),style:Object.assign(Object.assign({},!rs&&Wt.backgroundColor&&{backgroundColor:Wt.backgroundColor}),{borderTopRightRadius:me.cornerRadius+"px",borderBottomRightRadius:me.cornerRadius+"px"})},{children:De?t.jsx("button",Object.assign({className:"flex h-8 w-8 items-center mr-2 justify-center rounded-full outline-none transition-colors duration-200 ease-in-out",onClick:()=>{const t=yt.current;t&&(xt.current=t,(t=>{e.__awaiter(void 0,void 0,void 0,(function*(){if(!(t=null!=t?t:yt.current))return;const e=P(jt.current);try{yield fetch(`${process.env.NEXT_PUBLIC_PICKAXE_API2_URL}/response/cancel/${t}`,Object.assign({method:"POST",headers:Object.assign(Object.assign({"Content-Type":"application/json"},(!process.env.NODE_ENV||"development"===process.env.NODE_ENV)&&Object.assign({},process.env.NEXT_PUBLIC_PICKAXE_SESSION_TOKEN&&{"x-pickaxe-session-token":process.env.NEXT_PUBLIC_PICKAXE_SESSION_TOKEN})),{"x-request-sent-at":(new Date).toISOString()}),body:JSON.stringify({outputMessageParts:e})},Jt&&{credentials:"include"}))}catch(e){console.warn("Failed to cancel submission",e)}}))})(t)),Nt.current&&(Nt.current.abort(),Nt.current=null),It.current&&(It.current.cancel().catch((()=>{})),It.current=null),Le("idle")},style:{backgroundColor:fe.accent,color:fe.accentText}},{children:t.jsx(y.default,{className:"h-4 w-4 shrink-0"})})):Ct?t.jsx("button",Object.assign({className:"flex h-8 w-8 items-center mr-2 justify-center rounded-full outline-none transition-colors duration-200 ease-in-out",onClick:Pt,style:{backgroundColor:fe.accent,color:fe.accentText}},{children:t.jsx(y.default,{className:"h-4 w-4 shrink-0"})})):t.jsxs(t.Fragment,{children:[Qt&&t.jsxs("button",Object.assign({className:"flex h-8 w-8 items-center justify-center rounded-full outline-none transition-colors duration-200 ease-in-out disabled:cursor-default",style:{backgroundColor:Vt?fe.accent+"10":void 0,color:Vt?fe.accent:fe.accent+"80"},disabled:Fe||De,onClick:()=>{var e;return null===(e=ht.current)||void 0===e?void 0:e.click()}},Bt,{children:[t.jsx("input",{id:"file-upload",ref:ht,type:"file",accept:[...g.allowedFileMimeTypes,...g.allowedImageMimeTypes,...g.additionalAllowedFileExtensions].join(", "),multiple:!0,hidden:!0,className:"hidden",onChange:t=>e.__awaiter(void 0,void 0,void 0,(function*(){je(!1),yield Be(Array.from(t.target.files||[])),t.target.value=""}))}),t.jsx(h.default,{className:"h-6 w-6 shrink-0"})]})),Zt&&t.jsx("button",Object.assign({className:"disabled:cursor-default flex h-8 w-8 items-center justify-center rounded-full outline-none transition-colors duration-200 ease-in-out",style:{backgroundColor:Ct?fe.accent:Xt?fe.accent+"10":void 0,color:Ct?fe.accentText:Xt?fe.accent:fe.accent+"80"},disabled:Fe||De||Tt,onClick:()=>{Ct?Pt():(bt.current=tt,Dt(ve||"en-US"))}},Ht,{children:t.jsx(I.default,{className:"h-5 w-5 shrink-0"})})),t.jsx("button",Object.assign({className:"flex h-8 w-8 items-center mr-2 justify-center rounded-full outline-none transition-colors duration-200 ease-in-out disabled:cursor-default",style:{backgroundColor:Mt||Es?fe.accent:fe.accent+"10",color:Mt||Es?fe.accentText:fe.accent+"80"},disabled:!Es,onClick:()=>Us()},qt,{children:t.jsx(b.default,{className:_.default("h-6 w-6 shrink-0",Ie&&"scale-x-[-1] transform")})}))]})}))]}))]})),Ve&&t.jsx(S.default,{error:Ve,className:"mt-3"})]}))}))}));V.displayName="Input",exports.default=V;
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("../../../_virtual/_tslib.js"),t=require("react/jsx-runtime"),s=require("react"),n=require("../../../hooks/pickaxe/usePickaxeContext.js"),i=require("../../../hooks/pickaxe/useResponseContext.js"),r=require("../../../hooks/studio/useStyleInput.js"),o=require("../../../hooks/studio/useStyleFontSize.js"),a=require("../../../hooks/pickaxe/useConversation.js"),l=require("../../../hooks/pickaxe/useDimensionContext.js"),d=require("../Addons/Auth/hooks/useAuthContext.js"),c=require("../Addons/Document/hooks/useDocument.js"),u=require("../Addons/Scroll/hooks/useScroll.js"),p=require("../Addons/Artifact/hooks/useArtifactContext.js"),m=require("../../../hooks/core/useHover.js"),f=require("../../../hooks/core/useMediaQuery.js"),g=require("../../../common/documents.js"),v=require("eventsource-parser"),h=require("../../Icons/attach-vertical.svg.js"),b=require("../../Icons/arrow-right.svg.js"),I=require("../../Icons/microphone.svg.js"),y=require("../../Icons/stop.svg.js"),x=require("../Addons/Document/List.js"),j=require("../../Core/Textarea.js"),S=require("../../Core/ErrorAlert.js"),O=require("../../../common/error.js"),w=require("../../../common/api/pickaxe.js"),N=require("../../../common/validation.js"),_=require("../../../common/cn.js"),k=require("../../../common/utils.js"),E=require("../../../common/pickaxeConfig.js"),U=require("../../../common/deploymentWebhooks.js"),C=require("../../../hooks/studio/useStudio.js"),T=require("../../../hooks/pickaxe/useSpeech.js"),A=require("../common/PickaxeCommon.js");const D=e=>"string"==typeof e&&e.trim().length>0,P=e=>e.map((e=>Object.assign({},e))),L=e=>e instanceof Error&&("AbortError"===e.name||"BodyStreamBuffer was aborted"===e.message),R=e=>{var t;const s=(null!==(t=e.parts)&&void 0!==t?t:[]).filter((e=>!1!==e.isVisible)),n=s.filter((e=>"text"===e.type)).map((e=>{var t;return null!==(t=e.content)&&void 0!==t?t:""})).join("").trim();return n?JSON.stringify({role:e.role,text:n}):JSON.stringify({role:e.role,parts:s.map((e=>{var t;return{type:e.type,content:null!==(t=e.content)&&void 0!==t?t:""}}))})},M=(e,t)=>{if(e&&"object"==typeof e)return e[t]},q=(e,t)=>{const s=M(e,t);return D(s)?s:null},F=e=>{const t=Number(e);return Number.isFinite(t)?t:void 0},V=({studioUser:e,deploymentId:t,portalId:s})=>{var n,i;const r=Array.isArray(M(e,"uses"))?M(e,"uses"):[],o=(({deploymentId:e,portalId:t})=>D(e)?{type:"deployment",id:e}:D(t)?{type:"portal",id:t}:null)({deploymentId:t,portalId:s});if(!o)return{scope:o,record:null};const a=null!==(i=null!==(n=r.find((e=>e.id===o.id&&e.type===o.type)))&&void 0!==n?n:r.find((e=>e.id===o.id)))&&void 0!==i?i:null;return{scope:o,record:a}},B=s.forwardRef((({resubmitPrompt:M,onFocus:B,onBlur:$,onInputHeightChange:X,initSmitheryAuthData:H},K)=>{var W,J,Y,z,G,Q,Z,ee,te,se,ne,ie;const{origin:re,pickaxeId:oe,sessionId:ae,sender:le,senderType:de,portalId:ce,deploymentId:ue,deploymentType:pe,pickaxe:me,styles:fe,colors:ge,translations:ve,locale:he,forceMobile:be,isNewChat:Ie,isRtl:ye,isShowFeedbackMessage:xe,accessGroup:je,setIsNewChat:Se,setIsShowIceBreaker:Oe,setValidationStatus:we,setValidationUpgradeGroups:Ne,setValidationUpgradeUrl:_e,setAccessGroup:ke,onGenerateComplete:Ee}=n.usePickaxeContext(),{token:Ue,isLoggedOut:Ce,isSent:Te,isPricingAuth:Ae}=d.useAuthContext(),{messages:De,isGenerating:Pe,setMessages:Le,setStatus:Re,setLimitData:Me,setError:qe}=i.useResponseContext(),{documents:Fe,isUploading:Ve,documentError:Be,onFileUpload:$e,setDocuments:Xe,setDocumentError:He}=c.useDocument(),{studio:Ke}=C.useStudio(),{scrollStartSession:We,scrollEndSession:Je,scrollToBottom:Ye}=u.useScroll({auto:!0}),{artifacts:ze,currentPopupType:Ge,setArtifacts:Qe,setCurrentArtifact:Ze}=p.useArtifactContext(),{height:et}=l.useDimensionContext(),tt=a.useConversation(),[st,nt]=s.useState(""),[it,rt]=s.useState(!1),[ot,at]=s.useState(!1),[lt,dt]=s.useState(null),[ct,ut]=s.useState(null),[pt,mt]=s.useState(!1),[ft,gt]=s.useState(!1),[vt,ht]=s.useState(0),bt=s.useRef(null),It=s.useRef(""),yt=s.useRef(null),xt=s.useRef(null),jt=s.useRef(null),St=s.useRef([]),Ot=s.useRef(null),wt=s.useRef(null),Nt=s.useRef(null),_t=s.useRef(null),kt=s.useRef(new Set),Et=s.useRef(null),Ut=Math.max(.4*et,100),{speechTranscript:Ct,isSpeechListening:Tt,isSpeechProcessing:At,isSpeechSupported:Dt,onStartListening:Pt,onStopListening:Lt}=T.useSpeech(),[Rt]=f.useMediaQuery("(max-width: 480px)"),Mt=m.useHover(),{isHover:qt}=Mt,Ft=e.__rest(Mt,["isHover"]),Vt=m.useHover(),{isHover:Bt}=Vt,$t=e.__rest(Vt,["isHover"]),Xt=m.useHover(),{isHover:Ht}=Xt,Kt=e.__rest(Xt,["isHover"]),Wt=o.useStyleFontSize(),Jt=r.useStyleInput(),Yt="undefined"!=typeof window?window.location.hostname:"",zt="undefined"!=typeof window?window.location.href:"",Gt="undefined"!=typeof window&&window.self!==window.top,Qt=Yt.includes("pickaxe.co")&&!zt.includes("https://studio.pickaxe.co/_embed")&&!Gt,Zt=null!==(J=null===(W=null==me?void 0:me.documentuploadtype)||void 0===W?void 0:W.startsWith("enduserupload"))&&void 0!==J&&J,es=Dt&&(null==me?void 0:me.enablevoicetotext),ts=D(ue),ss="chat-input"===pe&&Ie&&!Te,ns="chat-input"===pe&&Ae&&Ce&&Te,is=s.useCallback((e=>{const t=N.getValidationFailure(e);return!!t&&(qe(""),Me(null),we(t.status),ke(t.accessGroup),Ne(t.upgradeGroups),_e(t.upgradeUrl),!0)}),[qe,Me,we,Ne,_e,ke]),rs=null!==(Y=null==me?void 0:me.placeholdertext)&&void 0!==Y?Y:ye?"بماذا تريد أن تتحدث؟":(null==ve?void 0:ve["what-do-you-want-to-talk-about"])||"What do you want to talk about?",os=it||ot,as=s.useCallback((()=>e.__awaiter(void 0,void 0,void 0,(function*(){mt(!1);try{const e=yield fetch(`${process.env.NEXT_PUBLIC_PICKAXE_API2_URL}/user`,Object.assign(Object.assign({method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(Object.assign({studioId:null==me?void 0:me.studioid},Ue?{studioSessionToken:Ue}:le?{sender:le}:{sender:k.initializeEmbedUserId()}))},(!process.env.NODE_ENV||"development"===process.env.NODE_ENV)&&Object.assign({},process.env.NEXT_PUBLIC_PICKAXE_SESSION_TOKEN&&{headers:{"Content-Type":"application/json","x-pickaxe-session-token":process.env.NEXT_PUBLIC_PICKAXE_SESSION_TOKEN}})),Qt&&{credentials:"include"})),t=yield e.json();(null==t?void 0:t.studioUser)&&(dt(t.studioUser),ut(t.url))}catch(e){console.error("Failed to fetch studio user:",e)}finally{mt(!0)}}))),[Qt,null==me?void 0:me.studioid,le,Ue]);s.useEffect((()=>{as()}),[as]);const ls=Number(null!==(z=null==je?void 0:je.limit)&&void 0!==z?z:0),ds="string"==typeof(null==je?void 0:je.limitInterval)?je.limitInterval:null,cs=!!(null==Ke?void 0:Ke.data.usage)&&Ke.data.usage.isCredits,us=s.useMemo((()=>{var e,t,s,n,i;return null!==(i=null!==(n=null!==(s=null!==(t=null!==(e=null!=ce?ce:q(lt,"portalId"))&&void 0!==e?e:q(lt,"portalid"))&&void 0!==t?t:q(je,"portalId"))&&void 0!==s?s:q(je,"portalid"))&&void 0!==n?n:q(me,"portalId"))&&void 0!==i?i:q(me,"portalid")}),[je,ce,me,lt]),ps=s.useMemo((()=>V({studioUser:lt,deploymentId:ue,portalId:us})),[ue,us,lt]);s.useEffect((()=>{ts&&Ie&&ae&&kt.current.add(ae)}),[Ie,ae,ts]);const ms=s.useCallback((()=>{var e,t,s;return{studioId:null==me?void 0:me.studioid,userEmail:q(lt,"email"),userId:null!==(e=q(lt,"userId"))&&void 0!==e?e:q(lt,"userid"),sessionId:ae,deploymentId:ue,deploymentType:pe,portalId:us,accessGroupId:null!==(t=null==je?void 0:je.accessGroupId)&&void 0!==t?t:null,pickaxeId:oe,sender:le,senderType:de,origin:re,metadata:null!==(s=E.getPickaxeConfigMetadata(ue))&&void 0!==s?s:null}}),[null==je?void 0:je.accessGroupId,ue,pe,re,null==me?void 0:me.studioid,oe,us,le,de,ae,lt]),fs=s.useCallback((()=>!!(ts&&pt&&ae)&&(!!kt.current.has(ae)&&(U.fireDeploymentSessionInitializedWebhook(ms()),kt.current.delete(ae),!0))),[ms,pt,ae,ts]);s.useEffect((()=>{if(!pt||!ae)return;fs();const e=Et.current;(null==e?void 0:e.sessionId)===ae&&(U.fireDeploymentFirstMessageSubmittedWebhook(Object.assign(Object.assign(Object.assign({},e),ms()),{message:e.message,documentIds:e.documentIds,uploadedModelImages:e.uploadedModelImages,hasUploadedDocuments:e.hasUploadedDocuments,isHidden:e.isHidden})),Et.current=null)}),[fs,ms,pt,ae]);const gs={currentUses:F(null==lt?void 0:lt.currentUses),extraUses:F(null==lt?void 0:lt.extraUses)},vs=ps.scope?{currentUses:null!==(Q=F(null===(G=ps.record)||void 0===G?void 0:G.currentUses))&&void 0!==Q?Q:0,extraUses:null!==(ee=F(null===(Z=ps.record)||void 0===Z?void 0:Z.extraUses))&&void 0!==ee?ee:0}:{currentUses:0,extraUses:0},hs=q(lt,"type"),bs="guest"===hs||!hs&&Ce?vs:gs;s.useEffect((()=>{let t=!0;return e.__awaiter(void 0,void 0,void 0,(function*(){var e;if(cs&&(null===(e=null==Ke?void 0:Ke.data)||void 0===e?void 0:e.workspaceId))try{const e=yield w.pickaxeApi2.get(`/cost_per_run?workspaceId=${Ke.data.workspaceId}`,{withCredentials:!1});t&&ht(1e4*(Number(e.data.costPerRun)||0))}catch(e){console.error("Failed to fetch average cost per run:",e),t&&ht(0)}else t&&ht(0)})),()=>{t=!1}}),[cs,null===(te=null==Ke?void 0:Ke.data)||void 0===te?void 0:te.workspaceId]);const Is=(({currentUses:e,extraUses:t,limit:s,limitInterval:n})=>{const i=Number(null!=e?e:0),r=Number(null!=t?t:0);return s===A.STUDIO_INFINITY_VALUE||r===A.STUDIO_INFINITY_VALUE?A.STUDIO_INFINITY_VALUE:"one_time"===n?Math.max(0,r-i):Math.max(0,s-i)+r})({currentUses:bs.currentUses,extraUses:bs.extraUses,limit:ls,limitInterval:ds}),ys=Is===A.STUDIO_INFINITY_VALUE?A.STUDIO_INFINITY_VALUE:Math.max(0,Math.ceil(Is)),xs=(({extraUses:e,limit:t,limitInterval:s})=>{const n=Number(null!=e?e:0);return t===A.STUDIO_INFINITY_VALUE||n===A.STUDIO_INFINITY_VALUE?A.STUDIO_INFINITY_VALUE:"one_time"===s?Math.max(0,n):Math.max(0,t)+Math.max(0,n)})({extraUses:bs.extraUses,limit:ls,limitInterval:ds}),js=xs===A.STUDIO_INFINITY_VALUE?A.STUDIO_INFINITY_VALUE:Math.ceil(.05*xs),Ss=cs?Math.ceil(5*vt):5,Os=js===A.STUDIO_INFINITY_VALUE?A.STUDIO_INFINITY_VALUE:Math.max(js,Ss),ws=s.useMemo((()=>!!lt&&(!ft&&(ys!==A.STUDIO_INFINITY_VALUE&&(!(ys<=0)&&ys<=Os)))),[ft,Os,ys,lt]),Ns=Boolean(null==je?void 0:je.hideUpgradeOptions),_s=!Ns&&(null===(se=null==je?void 0:je.upgrade)||void 0===se?void 0:se.isLinkToCustomURL)&&"string"==typeof je.upgrade.limitLink&&je.upgrade.limitLink.trim().length>0?je.upgrade.limitLink.trim():null,ks=_s&&"string"==typeof(null===(ne=null==je?void 0:je.upgrade)||void 0===ne?void 0:ne.limitCTA)&&je.upgrade.limitCTA.trim().length>0?je.upgrade.limitCTA:(null==ve?void 0:ve["pricing.upgrade"])||(null==ve?void 0:ve.upgrade)||"Upgrade",Es=s.useMemo((()=>{var e,t,s;return!!Ie&&(!!me&&(!tt.isLoading&&(!((null!==(t=null===(e=tt.data)||void 0===e?void 0:e.messages.length)&&void 0!==t?t:0)>1)&&(!!(null===(s=me.icebreakers)||void 0===s?void 0:s.length)&&(!xe&&!ss)))))}),[me,Ie,xe,ss,tt.data,tt.isLoading]),Us=s.useMemo((()=>{if(Pe||Ve)return!1;const e=Zt&&Fe.length>0&&Fe.every((e=>"finished"===e.status));return!(!st.trim()&&!e)&&Fe.every((e=>"finished"===e.status||e.isInsertedAsRaw))}),[Zt,Pe,Ve,st,Fe]);s.useImperativeHandle(K,(()=>({onSubmit:Cs}))),s.useEffect((()=>{Oe(Es)}),[Es]),s.useEffect((()=>{var e;if(M){const t=Array.from(De),s=null===(e=t[t.length-2].parts.find((e=>"text"===e.type)))||void 0===e?void 0:e.content;Cs(s,!0)}}),[M]),s.useEffect((()=>{if(!Nt.current||!X)return;const e=new ResizeObserver((e=>{for(const t of e)X(t.contentRect.height)}));return e.observe(Nt.current),()=>{e.disconnect()}}),[X]),s.useEffect((()=>{if(!Tt)return;const e=It.current?`${It.current} `:"";nt(`${e}${Ct}`)}),[Ct,Tt]),s.useEffect((()=>{if(!Ot.current)return;(()=>{if(!Ot.current)return;let e=Ot.current.scrollHeight>52;st.includes("\n")||Fe.length?e=!0:st.trim()||(e=!1),rt(e)})()}),[st,Fe]),s.useEffect((()=>{const e=Ot.current,t=wt.current;if(!e||!t||it||st.includes("\n"))return void at(!1);const s=window.getComputedStyle(e),n=`${s.fontStyle} ${s.fontVariant} ${s.fontWeight} ${s.fontSize} / ${s.lineHeight} ${s.fontFamily}`,i=document.createElement("span");Object.assign(i.style,{font:n,letterSpacing:s.letterSpacing,position:"absolute",visibility:"hidden",whiteSpace:"nowrap",top:"0",left:"0"}),i.textContent=st||rs,document.body.appendChild(i);const r=i.offsetWidth;i.remove();const o=parseFloat(s.paddingLeft)||0,a=parseFloat(s.paddingRight)||0,l=e.clientWidth-o-a-t.offsetWidth;at(r>l)}),[st,it,rs]);const Cs=(t,s=!1)=>e.__awaiter(void 0,void 0,void 0,(function*(){var e,n,i,r,o,a;let l=null;try{if(Pe||Ve)return;const d=Fe.filter((e=>"finished"===e.status&&!e.isInsertedAsRaw)),c=d.map((e=>e.documentId)).filter(Boolean),u=d.filter((e=>"image"===e.type)).map((e=>{const t=e.name.split(".").pop()||"";return{documentId:e.documentId,extension:t}})),p=null!=t?t:st,m=null!==(n=null===(e=null==me?void 0:me.documentuploadtype)||void 0===e?void 0:e.startsWith("enduserupload"))&&void 0!==n&&n&&c.length>0;if(!p&&!m)return;qe(""),He(""),Me(null),nt(""),Se(!1),Re("fetching"),We(),Ye();const f=null!==(r=null===(i=tt.data)||void 0===i?void 0:i.messages)&&void 0!==r?r:[],g=((e,t)=>{if(!t.length||!e.length)return e;const s=t.map(R);let n=0,i=0;for(;i<e.length&&n<s.length;){const t=s.indexOf(R(e[i]),n);if(-1===t)break;i+=1,n=t+1}const r=new Set(t.filter((e=>"assistant"===e.role)).map(R));return e.slice(i).filter((e=>"assistant"!==e.role||!r.has(R(e))))})(De,f),h=s?g.slice(0,g.length-1):g,b=(e=>e.reduce(((e,t)=>Math.max(e,t.id)),0)+1)(h),I=b+(s?0:1),y={id:I,role:"assistant",parts:[],documentIds:[]},x=[...h,...s?[]:[{id:b,role:"user",parts:[{type:"text",content:p,isVisible:!0}],documentIds:m?c:[]}],y];Le(x),Ye(),m&&Xe([]);const j=E.getPickaxeConfigMetadata(ue),S="undefined"!=typeof crypto&&"randomUUID"in crypto?crypto.randomUUID():`submission-${Date.now()}-${Math.random().toString(36).slice(2)}`;l=S,xt.current=S,jt.current=null,St.current=[];const O=yield fetch(`${process.env.NEXT_PUBLIC_PICKAXE_API2_URL}/response/submit`,Object.assign({method:"POST",body:JSON.stringify(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({origin:re,pickaxeId:oe,sessionId:ae,submissionId:S,senderType:de,value:p},m&&{documentIds:c}),le&&{sender:le}),Ue&&{studioSessionToken:Ue}),!Ue&&!le&&{sender:k.initializeEmbedUserId()}),us&&{portalId:us}),ue&&{deploymentId:ue}),j&&{metadata:j}),m&&u.length>0?{uploadedModelImages:u}:{})),headers:Object.assign(Object.assign({},(!process.env.NODE_ENV||"development"===process.env.NODE_ENV)&&Object.assign({},process.env.NEXT_PUBLIC_PICKAXE_SESSION_TOKEN&&{"x-pickaxe-session-token":process.env.NEXT_PUBLIC_PICKAXE_SESSION_TOKEN})),{"x-request-sent-at":(new Date).toISOString()})},Qt&&{credentials:"include"})),w=yield O.json();if(!w.success){if(w.limitData){const e=new Error(w.error||w.message||(null==ve?void 0:ve["failed-to-start-generation"])||"Failed to start generation");throw e.limitData=w.limitData,e}if(is(w))return;throw new Error(w.error||w.message||(null==ve?void 0:ve["failed-to-start-generation"])||"Failed to start generation")}const N=null!==(o=w.submissionId)&&void 0!==o?o:S;l=N,xt.current=N;const _=()=>jt.current===N;if(_())return;ts&&Ie&&ae&&kt.current.add(ae);const C=Object.assign(Object.assign({},ms()),{message:p,documentIds:m?c:[],uploadedModelImages:m?u:[],hasUploadedDocuments:m,isHidden:s,metadata:null!=j?j:null});pt?(fs(),U.fireDeploymentFirstMessageSubmittedWebhook(C)):Et.current=C,Re("streaming"),_t.current=new AbortController;const T=[];let A=[...null!=ze?ze:[]],D=0,M=!1,q="";for(;!M;)try{const e=yield fetch(`${process.env.NEXT_PUBLIC_PICKAXE_API2_URL}/response/stream/${N}?index=${D}`,{signal:null===(a=_t.current)||void 0===a?void 0:a.signal,headers:{"Cache-Control":"no-cache",Connection:"keep-alive"}});if(!e.body)throw new Error("No response body");const t=e.body.getReader();yt.current=t;const s=new TextDecoder,n=v.createParser({onEvent:e=>{var t,s;if(_())M=!0;else if(e.event&&"ping"!==e.event&&D++,"stop"!==e.event){if("error"===e.event){const t=JSON.parse(e.data);if(t.limitData)return Me(t.limitData),qe(""),void(M=!0);const s=t.error||t.message||(null==ve?void 0:ve["something-went-wrong"])||"Something went wrong.";return is(t)||qe(s),void(M=!0)}if("delta"===e.event){const n=JSON.parse(e.data);if("data-error"===n.type&&H){const e=n.data.error;if("string"==typeof e){const t=/['"]type['"]\s*:\s*['"]unauthorized_smithery['"]/.test(e),s=/['"]type['"]\s*:\s*['"]unauthorized_composio['"]/.test(e);if(t){const t=e.match(/['"]qualifiedName['"]\s*:\s*['"]([^'"]+)['"]/),s=e.match(/['"]serverId['"]\s*:\s*['"]([^'"]+)['"]/),n=e.match(/['"]name['"]\s*:\s*['"]([^'"]+)['"]/);if(t&&t[1]&&s&&s[1]&&n&&n[1])throw M=!0,H({provider:"smithery",smitheryId:t[1],serverId:s[1],name:n[1]}),new Error("STOP_STREAM")}else if(s){const t=e.match(/['"]toolkitSlug['"]\s*:\s*['"]([^'"]+)['"]/),s=e.match(/['"]serverId['"]\s*:\s*['"]([^'"]+)['"]/),n=e.match(/['"]name['"]\s*:\s*['"]([^'"]+)['"]/);if(t&&t[1]&&s&&s[1]&&n&&n[1])throw M=!0,H({provider:"composio",toolkitSlug:t[1],serverId:s[1],name:n[1]}),new Error("STOP_STREAM")}}else if("object"==typeof e&&null!==e){const t=e;if("unauthorized_smithery"===t.type&&t.qualifiedName&&t.serverId&&t.name)throw M=!0,H({provider:"smithery",smitheryId:t.qualifiedName,serverId:t.serverId,name:t.name}),new Error("STOP_STREAM");if("unauthorized_composio"===t.type&&t.toolkitSlug&&t.serverId&&t.name)throw M=!0,H({provider:"composio",toolkitSlug:t.toolkitSlug,serverId:t.serverId,name:t.name}),new Error("STOP_STREAM")}}else if("text-start"===n.type)q="",T.push({type:"text",content:"",isVisible:null===(t=n.isVisible)||void 0===t||t});else if("text-delta"===n.type)q+=n.delta,T[T.length-1].content=q;else if("text-end"===n.type)q="";else if("reasoning-start"===n.type)q="",T.push({type:"reasoning",content:"",isVisible:null===(s=n.isVisible)||void 0===s||s});else if("reasoning-delta"===n.type)q+=n.delta,T[T.length-1].content=q;else if("reasoning-end"===n.type)q="";else if(n.type.startsWith("data-")){const e=n;T.push({type:e.type,content:JSON.stringify(e.data),isVisible:!0})}St.current=P(T);const i=P(T);Le((e=>{const t=e.findIndex((e=>e.id===I)),s=Object.assign(Object.assign({},y),{parts:i});return-1===t?[...e,s]:e.map(((e,n)=>n===t?s:e))}))}else if("artifact_created"===e.event){const t=JSON.parse(e.data);A=A.filter((e=>!(e.id===t.id&&e.version===t.version))),A.push(Object.assign(Object.assign({},t),{content:"",status:"streaming"})),Qe([...A]),Ge.startsWith("inline")||Ze({id:t.id,version:t.version})}else if("artifact_updated"===e.event){const t=JSON.parse(e.data);A=A.filter((e=>!(e.id===t.id&&e.version===t.version))),A.push(Object.assign(Object.assign({},t),{content:"",status:"updating"})),Qe(A),Ge.startsWith("inline")||Ze({id:t.id,version:t.version})}else if("artifact_rewrite"===e.event){const t=JSON.parse(e.data);A=A.filter((e=>!(e.id===t.id&&e.version===t.version))),A.push(Object.assign(Object.assign({},t),{content:"",status:"streaming"})),Qe(A),Ge.startsWith("inline")||Ze({id:t.id,version:t.version})}else if("artifact_content"===e.event){const t=JSON.parse(e.data),s=t.token.replace(/\u200B/g,"");A=A.map((e=>e.id===t.id&&e.version===t.version?Object.assign(Object.assign({},e),{content:e.content+s,status:"streaming"}):e)),Qe(A)}else if("artifact_finished"===e.event){const t=JSON.parse(e.data);Qe(A.map((e=>e.id===t.id?Object.assign(Object.assign({},e),{status:"finished"}):e)))}else if("error"===e.event){const t=JSON.parse(e.data);if(t.limitData)return Me(t.limitData),qe(""),void(M=!0);const s=t.error||t.message||(null==ve?void 0:ve["something-went-wrong-try-again"])||"Something went wrong, please try again.";if(is(t))return void(M=!0);qe(s)}else"stop"===e.event&&(M=!0)}else M=!0}});for(;;){if(_()){M=!0,t.cancel().catch((()=>{}));break}const{value:e,done:i}=yield t.read();if(_()){M=!0,t.cancel().catch((()=>{}));break}if(i)break;n.feed(s.decode(e))}M||_()||(yield new Promise((e=>setTimeout(e,1e3))))}catch(e){if("STOP_STREAM"===e.message||L(e)||_())return void(M=!0);console.warn("Stream connection lost, retrying...",e),yield new Promise((e=>setTimeout(e,1e3)))}null==Ee||Ee(ae)}catch(e){if(L(e))return;if(e.limitData)Me(e.limitData),qe("");else{let t=O.default(e)||"";t&&!t.includes("Unexpected token 'A',")||(t=(null==ve?void 0:ve["high-traffic-try-again-later"])||"Oops! We're experiencing high traffic at the moment. Please try again later."),is(t)||qe(t)}}finally{const e=!l||xt.current===l;Ye(),e&&(Re("idle"),Je(),yt.current=null),l&&e&&(xt.current=null,St.current=[]),yield as()}}));return ns?null:t.jsx("div",Object.assign({className:_.default("flex w-full flex-shrink-0 flex-col items-center",!ss&&"px-4 pb-8"),dir:ye?"rtl":"ltr"},{children:t.jsxs("div",Object.assign({className:"flex w-full max-w-[800px] flex-col"},{children:[t.jsxs("div",Object.assign({ref:Nt,className:_.default("relative flex flex-col w-full justify-end gap-y-3 py-[3px]","block"===fe.formFieldStyle&&"shadow"),style:Object.assign(Object.assign({},Jt),{maxHeight:`${Ut}px`,overflowY:"auto"})},{children:[ws&&t.jsxs("div",Object.assign({className:"sticky top-0 z-10 flex w-full items-center justify-between border-b px-4 py-2.5 shadow-sm backdrop-blur-md",style:{backgroundColor:Jt.backgroundColor?`${Jt.backgroundColor}E6`:void 0,borderColor:ge.text+"20",color:ge.text,borderTopRightRadius:fe.cornerRadius+"px",borderTopLeftRadius:fe.cornerRadius+"px"}},{children:[t.jsx("div",Object.assign({className:"flex items-center gap-2 text-sm font-medium"},{children:t.jsxs("span",{children:[ys.toLocaleString()," ",cs?(null==ve?void 0:ve.credits)||"Credits":(null==ve?void 0:ve.uses)||"Uses"," ",(null==ve?void 0:ve.remaining)||"remaining"]})})),t.jsxs("div",Object.assign({className:"flex items-center gap-3"},{children:[!Ns&&t.jsx("button",Object.assign({className:"rounded-md px-3 py-1.5 text-xs font-semibold transition-opacity hover:opacity-90",style:{backgroundColor:ge.accent,color:ge.accentText},onClick:e=>{if(e.preventDefault(),e.stopPropagation(),_s)return void window.open(_s,"_blank","noopener,noreferrer");const t=k.buildUpgradeUrl({baseUrl:ct,accessGroupId:null==je?void 0:je.accessGroupId,redirectUrl:document.URL});t&&(k.isInIframe()?window.open(t):location.href=t)}},{children:ks})),t.jsx("button",Object.assign({className:"flex h-6 w-6 items-center justify-center rounded-full opacity-60 transition-opacity hover:opacity-100",onClick:()=>gt(!0)},{children:t.jsx("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:2,stroke:"currentColor",className:"h-4 w-4"},{children:t.jsx("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M6 18L18 6M6 6l12 12"})}))}))]}))]})),!Pe&&Fe.length>0&&t.jsx(x.default,{className:"p-4 pb-0",isDisabled:Pe}),t.jsxs("div",Object.assign({className:"relative flex w-full flex-col"},{children:[Tt&&t.jsxs("div",Object.assign({className:"absolute left-4 top-1/2 flex -translate-y-1/2 select-none items-center gap-x-2"},{children:[t.jsx("span",{className:"h-2 w-2 animate-pulse rounded-full bg-c-secondary",style:{backgroundColor:null!==(ie=ge.accent)&&void 0!==ie?ie:"#ff0000"}}),t.jsx("span",Object.assign({className:"text-sm text-c-secondary font-semilight",style:{color:ge.text+"90"}},{children:(null==ve?void 0:ve.listening)||"Listening..."}))]})),t.jsx(j.default,Object.assign({ref:Ot,className:_.default(Wt.i1,"py-3.5 max-h-60 px-4 w-full border-transparent bg-transparent",!st.trim()&&!st.includes("\n")&&"overflow-hidden text-ellipsis whitespace-nowrap placeholder:whitespace-normal placeholder:overflow-visible",ye?"text-right":"text-left",os&&"mb-12",Tt&&"text-transparent"),value:st,placeholder:rs,onChange:e=>{nt(e)},onKeyDown:e=>{be||Rt||"Enter"===e.key&&(e.shiftKey||(e.preventDefault(),Ve||Pe||Cs()))},onPaste:t=>e.__awaiter(void 0,void 0,void 0,(function*(){const e=Array.from(t.clipboardData.files||[]);if(e.length>0){if(!Zt)return;t.preventDefault(),Se(!1),yield $e(e)}}))},B&&{onFocus:B},$&&{onBlur:$},{dir:ye?"rtl":"ltr"})),t.jsx("div",Object.assign({ref:wt,className:_.default("flex items-center gap-2 absolute right-0 z-2 transition-all duration-200 ease-in-out",os?"bottom-0 mb-2.5":"top-1/2 -translate-y-1/2"),style:Object.assign(Object.assign({},!os&&Jt.backgroundColor&&{backgroundColor:Jt.backgroundColor}),{borderTopRightRadius:fe.cornerRadius+"px",borderBottomRightRadius:fe.cornerRadius+"px"})},{children:Pe?t.jsx("button",Object.assign({className:"flex h-8 w-8 items-center mr-2 justify-center rounded-full outline-none transition-colors duration-200 ease-in-out",onClick:()=>{const t=xt.current;t&&(jt.current=t,(t=>{e.__awaiter(void 0,void 0,void 0,(function*(){if(!(t=null!=t?t:xt.current))return;const e=P(St.current);try{yield fetch(`${process.env.NEXT_PUBLIC_PICKAXE_API2_URL}/response/cancel/${t}`,Object.assign({method:"POST",headers:Object.assign(Object.assign({"Content-Type":"application/json"},(!process.env.NODE_ENV||"development"===process.env.NODE_ENV)&&Object.assign({},process.env.NEXT_PUBLIC_PICKAXE_SESSION_TOKEN&&{"x-pickaxe-session-token":process.env.NEXT_PUBLIC_PICKAXE_SESSION_TOKEN})),{"x-request-sent-at":(new Date).toISOString()}),body:JSON.stringify({outputMessageParts:e})},Qt&&{credentials:"include"}))}catch(e){console.warn("Failed to cancel submission",e)}}))})(t)),_t.current&&(_t.current.abort(),_t.current=null),yt.current&&(yt.current.cancel().catch((()=>{})),yt.current=null),Re("idle")},style:{backgroundColor:ge.accent,color:ge.accentText}},{children:t.jsx(y.default,{className:"h-4 w-4 shrink-0"})})):Tt?t.jsx("button",Object.assign({className:"flex h-8 w-8 items-center mr-2 justify-center rounded-full outline-none transition-colors duration-200 ease-in-out",onClick:Lt,style:{backgroundColor:ge.accent,color:ge.accentText}},{children:t.jsx(y.default,{className:"h-4 w-4 shrink-0"})})):t.jsxs(t.Fragment,{children:[Zt&&t.jsxs("button",Object.assign({className:"flex h-8 w-8 items-center justify-center rounded-full outline-none transition-colors duration-200 ease-in-out disabled:cursor-default",style:{backgroundColor:Bt?ge.accent+"10":void 0,color:Bt?ge.accent:ge.accent+"80"},disabled:Ve||Pe,onClick:()=>{var e;return null===(e=bt.current)||void 0===e?void 0:e.click()}},$t,{children:[t.jsx("input",{id:"file-upload",ref:bt,type:"file",accept:[...g.allowedFileMimeTypes,...g.allowedImageMimeTypes,...g.additionalAllowedFileExtensions].join(", "),multiple:!0,hidden:!0,className:"hidden",onChange:t=>e.__awaiter(void 0,void 0,void 0,(function*(){Se(!1),yield $e(Array.from(t.target.files||[])),t.target.value=""}))}),t.jsx(h.default,{className:"h-6 w-6 shrink-0"})]})),es&&t.jsx("button",Object.assign({className:"disabled:cursor-default flex h-8 w-8 items-center justify-center rounded-full outline-none transition-colors duration-200 ease-in-out",style:{backgroundColor:Tt?ge.accent:Ht?ge.accent+"10":void 0,color:Tt?ge.accentText:Ht?ge.accent:ge.accent+"80"},disabled:Ve||Pe||At,onClick:()=>{Tt?Lt():(It.current=st,Pt(he||"en-US"))}},Kt,{children:t.jsx(I.default,{className:"h-5 w-5 shrink-0"})})),t.jsx("button",Object.assign({className:"flex h-8 w-8 items-center mr-2 justify-center rounded-full outline-none transition-colors duration-200 ease-in-out disabled:cursor-default",style:{backgroundColor:qt||Us?ge.accent:ge.accent+"10",color:qt||Us?ge.accentText:ge.accent+"80"},disabled:!Us,onClick:()=>Cs()},Ft,{children:t.jsx(b.default,{className:_.default("h-6 w-6 shrink-0",ye&&"scale-x-[-1] transform")})}))]})}))]}))]})),Be&&t.jsx(S.default,{error:Be,className:"mt-3"})]}))}))}));B.displayName="Input",exports.default=B;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("../../_virtual/_tslib.js"),t=require("@tanstack/react-query"),
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("../../_virtual/_tslib.js"),t=require("@tanstack/react-query"),s=require("./usePickaxeContext.js"),r=require("./useResponseContext.js"),i=require("../../common/api/pickaxe.js");const a=e=>e.filter(((t,s)=>"user"!==t.role||!(e=>"assistant"===(null==e?void 0:e.role)&&"scheduled_followup"===e.area)(e[s+1]))),n=(t,s)=>e.__awaiter(void 0,void 0,void 0,(function*(){const e=yield i.pickaxeApi2.get(`/conversation?pickaxeId=${t}&sessionId=${s}`),r=e.data;if(200!==e.status)throw new Error("[_getChat] Failed to fetch chat conversation "+r);return r}));exports.useConversation=()=>{const{pickaxeId:i,sessionId:o,pickaxe:u}=s.usePickaxeContext(),{isGenerating:c,isSwitchedToChat:d}=r.useResponseContext(),l="string"==typeof(null==u?void 0:u.intromessage)&&0===u.intromessage.trim().length,v=!(!i||!o||d||c);return t.useQuery({queryKey:["form",i,"chat",o],queryFn:()=>e.__awaiter(void 0,void 0,void 0,(function*(){return n(i,o)})),select:e=>{const t=l?e.messages.filter((e=>"intromessage"!==e.area)):e.messages;return Object.assign(Object.assign({},e),{messages:a(t)})},enabled:!!i&&!!o&&!d,refetchInterval:!!v&&15e3,refetchIntervalInBackground:!1})};
|
|
@@ -2,7 +2,7 @@ export type PickaxeHistoryOriginType = "TEST" | "BUILDER" | "PICKAXE" | "STUDIO"
|
|
|
2
2
|
export type PickaxeHistoryPickaxeType = "CHAT" | "FORM";
|
|
3
3
|
export type PickaxeHistorySenderType = "PICKAXE_USER" | "STUDIO_USER" | "DEPLOYMENT_USER";
|
|
4
4
|
export type PickaxeHistoryMessageRole = "user" | "assistant";
|
|
5
|
-
export type PickaxeHistoryMessageArea = "intromessage" | "trainingdialogue" | "message";
|
|
5
|
+
export type PickaxeHistoryMessageArea = "intromessage" | "trainingdialogue" | "scheduled_followup" | "message";
|
|
6
6
|
export type PickaxeHistory = {
|
|
7
7
|
sessionId: string;
|
|
8
8
|
pickaxeType: PickaxeHistoryPickaxeType;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{jsxs as e,jsx as s,Fragment as i}from"react/jsx-runtime";import{useMemo as t,useEffect as a}from"react";import{usePickaxeContext as o}from"../../../../hooks/pickaxe/usePickaxeContext.js";import{useAuthContext as n}from"../../Addons/Auth/hooks/useAuthContext.js";import{useAuth as l}from"../../Addons/Auth/hooks/useAuth.js";import{useResponseContext as r}from"../../../../hooks/pickaxe/useResponseContext.js";import{useDimensionContext as c}from"../../../../hooks/pickaxe/useDimensionContext.js";import{useScrollContext as m}from"../../Addons/Scroll/hooks/useScrollContext.js";import{useStyleFontSize as d}from"../../../../hooks/studio/useStyleFontSize.js";import{useConversation as
|
|
1
|
+
import{jsxs as e,jsx as s,Fragment as i}from"react/jsx-runtime";import{useMemo as t,useEffect as a}from"react";import{usePickaxeContext as o}from"../../../../hooks/pickaxe/usePickaxeContext.js";import{useAuthContext as n}from"../../Addons/Auth/hooks/useAuthContext.js";import{useAuth as l}from"../../Addons/Auth/hooks/useAuth.js";import{useResponseContext as r}from"../../../../hooks/pickaxe/useResponseContext.js";import{useDimensionContext as c}from"../../../../hooks/pickaxe/useDimensionContext.js";import{useScrollContext as m}from"../../Addons/Scroll/hooks/useScrollContext.js";import{useStyleFontSize as d}from"../../../../hooks/studio/useStyleFontSize.js";import{useConversation as u}from"../../../../hooks/pickaxe/useConversation.js";import{useArtifactContext as p}from"../../Addons/Artifact/hooks/useArtifactContext.js";import{AnimatePresence as h,motion as f}from"framer-motion";import g from"../../../Icons/lock.svg.js";import x from"../../../Core/ErrorAlert.js";import v from"../../common/PickaxeHead.js";import j from"../../common/PickaxeEmbedHead.js";import y from"../../common/PickaxeUpgradeCard.js";import b from"../../common/PickaxeSkeleton.js";import k from"../../common/PickaxeHistoryButton.js";import w from"../../Addons/Scroll/ScrollLockView.js";import N from"../../Addons/Artifact/Renderer/index.js";import O from"./Message.js";import C from"./CustomMessage.js";import S from"../../Addons/IceBreaker/index.js";import A from"../../common/PickaxeBranding.js";import P from"../../../../common/cn.js";const I=e=>(()=>{var s;const i=(null!==(s=e.parts)&&void 0!==s?s:[]).filter((e=>!1!==e.isVisible)),t=i.filter((e=>"text"===e.type)).map((e=>{var s;return null!==(s=e.content)&&void 0!==s?s:""})).join("").trim(),a=t.replace(/\s+/g," ").replace(/\s*([.,!?;:])\s*/g,"$1").trim();return a?JSON.stringify({role:e.role,text:a}):JSON.stringify({role:e.role,parts:i.map((e=>{var s;return{type:e.type,content:null!==(s=e.content)&&void 0!==s?s:""}}))})})(),H=({additionalScrollHeight:H,smitheryAuthData:L,isForceHideInfo:R,isInputFocused:D,onSubmit:B,resubmitPrompt:T})=>{var $,E,F,z,M,W,J;const{sessionId:V,deploymentType:q,pickaxe:G,translations:U,misc:_,isNewChat:K,isRtl:Q,isEmbed:X,isShowIceBreaker:Y,setSessionId:Z,setLastSessionId:ee}=o(),{emailInput:se,isLoggedOut:ie,isSending:te,isResendDisabled:ae,isSent:oe,isPricingAuth:ne}=n(),{onSend:le}=l(),{scrollContainerRef:re,isLocked:ce}=m(),{messages:me,limitData:de,error:ue,isGenerating:pe}=r(),{height:he,width:fe}=c(),{currentArtifact:ge,chatPopupType:xe,currentPopupType:ve}=p(),je=u(),ye=d(),be=t((()=>(null==G?void 0:G.icebreakers)?G.icebreakers.slice(0,3):[]),[null==G?void 0:G.icebreakers]),ke=t((()=>{const e=!!je.data&&je.data.messages.length>1;return!R&&je.isSuccess&&K&&!e}),[R,je.isSuccess,K,je.data]),we=t((()=>!(null==G?void 0:G.chatflag)&&(null==G?void 0:G.enablechatresponses)&&me.length>0),[G,me]),Ne=t((()=>!!je.data&&je.data.messages.some((e=>"intromessage"===e.area))),[je.data]),Oe="chat-input"===q&&ne&&ie&&oe,Ce=Y&&!D&&!Ne&&ke&&fe>767,Se=Y&&!D&&(Ne||fe<=767),Ae=t((()=>{var e,s;const i=null!==(s=null===(e=je.data)||void 0===e?void 0:e.messages)&&void 0!==s?s:[];if(pe||!i.length||!me.length)return me;const t=i.map(I);let a=0,o=0;for(;o<me.length&&a<t.length;){const e=t.indexOf(I(me[o]),a);if(-1===e)break;o+=1,a=e+1}const n=new Set(i.filter((e=>"assistant"===e.role)).map(I));return me.slice(o).filter((e=>"assistant"!==e.role||!n.has(I(e))))}),[null===($=je.data)||void 0===$?void 0:$.messages,pe,me]),Pe=()=>{ee(V),Z("")};return a((()=>{ce&&re.current&&requestAnimationFrame((()=>{re.current&&(re.current.scrollTop=re.current.scrollHeight)}))}),[H,null===(E=je.data)||void 0===E?void 0:E.messages.length,ce,re,Ae.length]),e("div",Object.assign({ref:re,className:"flex flex-1 w-full flex-col items-center overflow-y-auto pb-4 scrollbar scrollbar-thin min-h-0 mb-4"},{children:[s(h,{children:!!ge&&"inline"===ve&&s(f.div,Object.assign({className:P("absolute top-0 z-20 w-full px-4 py-2",xe),style:{height:`calc(${he-H}px - 80px)`},initial:{opacity:0,y:-20},animate:{opacity:1,y:0},exit:{opacity:0,y:-20},transition:{duration:.2,ease:"easeOut"}},{children:s(N,{type:"inline",className:"pxe-artifact-inline h-full shadow",artifact:{id:ge.id,version:ge.version}})}))}),e("div",Object.assign({className:"relative flex flex-col items-center flex-grow w-full max-w-[800px]"},{children:[ke&&X&&s("div",Object.assign({className:P("absolute right-4 top-3 flex items-center gap-2","popup"===q&&"right-12")},{children:s(k,{tip:(null==U?void 0:U["chat-history"])||"Chat History",onClick:Pe})})),s(v,Object.assign({className:P("opacity-0 mt-[0%] transition-all duration-500 ease-in-out max-h-0 overflow-hidden max-w-[500px]",ke&&"opacity-100 mt-[10%] max-h-[100%]"),iconClassName:"duration-300 hover:opacity-90",maxDescriptionChars:500},!Oe&&{onIconClick:Pe})),X&&!je.isLoading&&s(j,Object.assign({className:P("opacity-0 transition-all duration-500 ease-in-out h-0 w-full sticky top-0 z-10",!ke&&"opacity-100 h-[56px]"),iconClassName:"duration-300 hover:opacity-90",historyBtnTip:(null==U?void 0:U["chat-history"])||"Chat History"},!Oe&&{onIconClick:Pe,onHistoryClick:Pe})),e("div",Object.assign({className:P("flex flex-col flex-grow mt-6 transition-all duration-300 ease-in-out w-full px-4",X&&!je.isLoading&&!ke&&"mt-0")},{children:[Ce&&s("div",Object.assign({className:P("grid grid-cols-3 gap-4",2===be.length&&"grid-cols-2",1===be.length&&"grid-cols-1")},{children:s(S,{type:"center",data:be,onSend:B})})),Oe?s("div",Object.assign({className:"flex flex-col w-full"},{children:e("div",Object.assign({className:"grid grid-cols-1 gap-y-6 w-full"},{children:[s(C,Object.assign({chatRole:"user"},{children:e("div",Object.assign({className:"flex items-center gap-x-3"},{children:[s(g,{className:"h-6 w-6 shrink-0"}),s("p",Object.assign({className:"font-semilight"},{children:se}))]}))})),s(C,Object.assign({chatRole:"assistant"},{children:e("p",Object.assign({className:"py-3 font-semilight"},{children:[`${null!==(M=null==U?void 0:U["we-sent-your-an-activation-link"])&&void 0!==M?M:"We sent you an activation link. Please be sure to check your spam folder too."} `,s("span",Object.assign({className:"underline underline-offset-2 cursor-pointer",onClick:()=>{ae||te||le(!0)}},{children:te?null!==(W=null==U?void 0:U.resending)&&void 0!==W?W:"Resending...":null!==(J=null==U?void 0:U.resend)&&void 0!==J?J:"Resend"}))]}))}))]}))})):s(i,{children:je.isLoading&&!(null==G?void 0:G.enablechatresponses)?e("div",Object.assign({className:"grid w-full max-w-[800px] grid-cols-1 gap-y-6 px-6 pt-10"},{children:[K&&e("div",Object.assign({className:"flex flex-col items-center w-full"},{children:[s(b,{className:"w-[72px] h-[72px]"}),s(b,{className:"h-[20px] mt-6 w-full"}),s(b,{className:"h-[20px] mt-2 w-full"}),s(b,{className:"h-[20px] mt-2 w-full max-w-[400px]"})]})),s(b,{className:"h-10 w-[70%] animate-pulse justify-self-end rounded"}),s(b,{className:"h-[150px] w-[70%] animate-pulse rounded"}),s(b,{className:"h-10 w-[50%] animate-pulse justify-self-end rounded"})]})):je.isError?s("div",Object.assign({className:"flex w-full justify-center"},{children:e("p",Object.assign({className:P(ye.b2,"text-center font-semibold")},{children:[(null==U?void 0:U["something-went-wrong-please-try-again"])||"Something went wrong. Please try again, or"," ",s("a",Object.assign({href:"mailto:info@pickaxeproject.com?subject=Help",target:"_blank",rel:"noreferrer"},{children:(null==U?void 0:U["contact-us"])||"contact us"}))," ",(null==U?void 0:U["for-help"])||"for help."]}))})):je.data||we?e("div",Object.assign({className:"flex flex-col w-full flex-grow justify-between"},{children:[e("div",Object.assign({className:"grid grid-cols-1 gap-y-6 w-full"},{children:[(null!==(z=null===(F=je.data)||void 0===F?void 0:F.messages)&&void 0!==z?z:[]).map(((e,i)=>s(O,{index:i,message:e},`history-${i}`))),Ae.map(((e,i)=>{var t,a;return s(O,{smitheryData:L,resubmitPrompt:T,index:(null!==(a=null===(t=je.data)||void 0===t?void 0:t.messages.length)&&void 0!==a?a:0)+i,message:e,isLastMessage:i===Ae.length-1},`memory-${i}`)})),de?s("div",Object.assign({className:"flex max-w-[100%] items-center gap-x-3"},{children:s(y,{})})):ue?s("div",Object.assign({className:P("flex items-center gap-x-3",Q?"justify-end":"justify-start")},{children:s(x,{error:ue})})):null]})),e("div",Object.assign({className:P("flex flex-col",!_.isWhiteLabel||Se&&"mt-4")},{children:[!_.isWhiteLabel&&s(A,{containerClassName:P("justify-end",Se&&"mb-2")}),Se&&s("div",Object.assign({className:"flex flex-col items-end gap-2"},{children:s(S,{type:"right",data:be,onSend:B})})),s(w,{})]}))]})):null})]}))]}))]}))};export{H as default};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{__rest as e,__awaiter as t}from"../../../_virtual/_tslib.js";import{jsx as n,jsxs as o,Fragment as s}from"react/jsx-runtime";import{forwardRef as i,useState as r,useRef as a,useCallback as l,useEffect as d,useMemo as c,useImperativeHandle as u}from"react";import{usePickaxeContext as p}from"../../../hooks/pickaxe/usePickaxeContext.js";import{useResponseContext as m}from"../../../hooks/pickaxe/useResponseContext.js";import{useStyleInput as f}from"../../../hooks/studio/useStyleInput.js";import{useStyleFontSize as g}from"../../../hooks/studio/useStyleFontSize.js";import{useConversation as v}from"../../../hooks/pickaxe/useConversation.js";import{useDimensionContext as h}from"../../../hooks/pickaxe/useDimensionContext.js";import{useAuthContext as b}from"../Addons/Auth/hooks/useAuthContext.js";import{useDocument as y}from"../Addons/Document/hooks/useDocument.js";import{useScroll as x}from"../Addons/Scroll/hooks/useScroll.js";import{useArtifactContext as I}from"../Addons/Artifact/hooks/useArtifactContext.js";import{useHover as j}from"../../../hooks/core/useHover.js";import{useMediaQuery as w}from"../../../hooks/core/useMediaQuery.js";import{allowedFileMimeTypes as O,allowedImageMimeTypes as k,additionalAllowedFileExtensions as S}from"../../../common/documents.js";import{createParser as N}from"eventsource-parser";import C from"../../Icons/attach-vertical.svg.js";import E from"../../Icons/arrow-right.svg.js";import _ from"../../Icons/microphone.svg.js";import U from"../../Icons/stop.svg.js";import T from"../Addons/Document/List.js";import A from"../../Core/Textarea.js";import P from"../../Core/ErrorAlert.js";import D from"../../../common/error.js";import{pickaxeApi2 as L}from"../../../common/api/pickaxe.js";import{getValidationFailure as R}from"../../../common/validation.js";import M from"../../../common/cn.js";import{buildUpgradeUrl as B,isInIframe as $,initializeEmbedUserId as X}from"../../../common/utils.js";import{getPickaxeConfigMetadata as K}from"../../../common/pickaxeConfig.js";import{fireDeploymentSessionInitializedWebhook as V,fireDeploymentFirstMessageSubmittedWebhook as F}from"../../../common/deploymentWebhooks.js";import{useStudio as H}from"../../../hooks/studio/useStudio.js";import{useSpeech as W}from"../../../hooks/pickaxe/useSpeech.js";import{STUDIO_INFINITY_VALUE as G}from"../common/PickaxeCommon.js";const J=e=>"string"==typeof e&&e.trim().length>0,z=e=>e.map((e=>Object.assign({},e))),q=e=>e instanceof Error&&("AbortError"===e.name||"BodyStreamBuffer was aborted"===e.message),Q=(e,t)=>{if(e&&"object"==typeof e)return e[t]},Y=(e,t)=>{const n=Q(e,t);return J(n)?n:null},Z=e=>{const t=Number(e);return Number.isFinite(t)?t:void 0},ee=({studioUser:e,deploymentId:t,portalId:n})=>{var o,s;const i=Array.isArray(Q(e,"uses"))?Q(e,"uses"):[],r=(({deploymentId:e,portalId:t})=>J(e)?{type:"deployment",id:e}:J(t)?{type:"portal",id:t}:null)({deploymentId:t,portalId:n});if(!r)return{scope:r,record:null};const a=null!==(s=null!==(o=i.find((e=>e.id===r.id&&e.type===r.type)))&&void 0!==o?o:i.find((e=>e.id===r.id)))&&void 0!==s?s:null;return{scope:r,record:a}},te=i((({resubmitPrompt:i,onFocus:Q,onBlur:te,onInputHeightChange:ne,initSmitheryAuthData:oe},se)=>{var ie,re,ae,le,de,ce,ue,pe,me,fe,ge,ve;const{origin:he,pickaxeId:be,sessionId:ye,sender:xe,senderType:Ie,portalId:je,deploymentId:we,deploymentType:Oe,pickaxe:ke,styles:Se,colors:Ne,translations:Ce,locale:Ee,forceMobile:_e,isNewChat:Ue,isRtl:Te,isShowFeedbackMessage:Ae,accessGroup:Pe,setIsNewChat:De,setIsShowIceBreaker:Le,setValidationStatus:Re,setValidationUpgradeGroups:Me,setValidationUpgradeUrl:Be,setAccessGroup:$e,onGenerateComplete:Xe}=p(),{token:Ke,isLoggedOut:Ve,isSent:Fe,isPricingAuth:He}=b(),{messages:We,isGenerating:Ge,setMessages:Je,setStatus:ze,setLimitData:qe,setError:Qe}=m(),{documents:Ye,isUploading:Ze,documentError:et,onFileUpload:tt,setDocuments:nt,setDocumentError:ot}=y(),{studio:st}=H(),{scrollStartSession:it,scrollEndSession:rt,scrollToBottom:at}=x({auto:!0}),{artifacts:lt,currentPopupType:dt,setArtifacts:ct,setCurrentArtifact:ut}=I(),{height:pt}=h(),mt=v(),[ft,gt]=r(""),[vt,ht]=r(!1),[bt,yt]=r(!1),[xt,It]=r(null),[jt,wt]=r(null),[Ot,kt]=r(!1),[St,Nt]=r(!1),[Ct,Et]=r(0),_t=a(null),Ut=a(""),Tt=a(null),At=a(null),Pt=a(null),Dt=a([]),Lt=a(null),Rt=a(null),Mt=a(null),Bt=a(null),$t=a(new Set),Xt=a(null),Kt=Math.max(.4*pt,100),{speechTranscript:Vt,isSpeechListening:Ft,isSpeechProcessing:Ht,isSpeechSupported:Wt,onStartListening:Gt,onStopListening:Jt}=W(),[zt]=w("(max-width: 480px)"),qt=j(),{isHover:Qt}=qt,Yt=e(qt,["isHover"]),Zt=j(),{isHover:en}=Zt,tn=e(Zt,["isHover"]),nn=j(),{isHover:on}=nn,sn=e(nn,["isHover"]),rn=g(),an=f(),ln="undefined"!=typeof window?window.location.hostname:"",dn="undefined"!=typeof window?window.location.href:"",cn="undefined"!=typeof window&&window.self!==window.top,un=ln.includes("pickaxe.co")&&!dn.includes("https://studio.pickaxe.co/_embed")&&!cn,pn=null!==(re=null===(ie=null==ke?void 0:ke.documentuploadtype)||void 0===ie?void 0:ie.startsWith("enduserupload"))&&void 0!==re&&re,mn=Wt&&(null==ke?void 0:ke.enablevoicetotext),fn=J(we),gn="chat-input"===Oe&&Ue&&!Fe,vn="chat-input"===Oe&&He&&Ve&&Fe,hn=l((e=>{const t=R(e);return!!t&&(Qe(""),qe(null),Re(t.status),$e(t.accessGroup),Me(t.upgradeGroups),Be(t.upgradeUrl),!0)}),[Qe,qe,Re,Me,Be,$e]),bn=null!==(ae=null==ke?void 0:ke.placeholdertext)&&void 0!==ae?ae:Te?"بماذا تريد أن تتحدث؟":(null==Ce?void 0:Ce["what-do-you-want-to-talk-about"])||"What do you want to talk about?",yn=vt||bt,xn=l((()=>t(void 0,void 0,void 0,(function*(){kt(!1);try{const e=yield fetch(`${process.env.NEXT_PUBLIC_PICKAXE_API2_URL}/user`,Object.assign(Object.assign({method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(Object.assign({studioId:null==ke?void 0:ke.studioid},Ke?{studioSessionToken:Ke}:xe?{sender:xe}:{sender:X()}))},(!process.env.NODE_ENV||"development"===process.env.NODE_ENV)&&Object.assign({},process.env.NEXT_PUBLIC_PICKAXE_SESSION_TOKEN&&{headers:{"Content-Type":"application/json","x-pickaxe-session-token":process.env.NEXT_PUBLIC_PICKAXE_SESSION_TOKEN}})),un&&{credentials:"include"})),t=yield e.json();(null==t?void 0:t.studioUser)&&(It(t.studioUser),wt(t.url))}catch(e){console.error("Failed to fetch studio user:",e)}finally{kt(!0)}}))),[un,null==ke?void 0:ke.studioid,xe,Ke]);d((()=>{xn()}),[xn]);const In=Number(null!==(le=null==Pe?void 0:Pe.limit)&&void 0!==le?le:0),jn="string"==typeof(null==Pe?void 0:Pe.limitInterval)?Pe.limitInterval:null,wn=!!(null==st?void 0:st.data.usage)&&st.data.usage.isCredits,On=c((()=>{var e,t,n,o,s;return null!==(s=null!==(o=null!==(n=null!==(t=null!==(e=null!=je?je:Y(xt,"portalId"))&&void 0!==e?e:Y(xt,"portalid"))&&void 0!==t?t:Y(Pe,"portalId"))&&void 0!==n?n:Y(Pe,"portalid"))&&void 0!==o?o:Y(ke,"portalId"))&&void 0!==s?s:Y(ke,"portalid")}),[Pe,je,ke,xt]),kn=c((()=>ee({studioUser:xt,deploymentId:we,portalId:On})),[we,On,xt]);d((()=>{fn&&Ue&&ye&&$t.current.add(ye)}),[Ue,ye,fn]);const Sn=l((()=>{var e,t,n;return{studioId:null==ke?void 0:ke.studioid,userEmail:Y(xt,"email"),userId:null!==(e=Y(xt,"userId"))&&void 0!==e?e:Y(xt,"userid"),sessionId:ye,deploymentId:we,deploymentType:Oe,portalId:On,accessGroupId:null!==(t=null==Pe?void 0:Pe.accessGroupId)&&void 0!==t?t:null,pickaxeId:be,sender:xe,senderType:Ie,origin:he,metadata:null!==(n=K(we))&&void 0!==n?n:null}}),[null==Pe?void 0:Pe.accessGroupId,we,Oe,he,null==ke?void 0:ke.studioid,be,On,xe,Ie,ye,xt]),Nn=l((()=>!!(fn&&Ot&&ye)&&(!!$t.current.has(ye)&&(V(Sn()),$t.current.delete(ye),!0))),[Sn,Ot,ye,fn]);d((()=>{if(!Ot||!ye)return;Nn();const e=Xt.current;(null==e?void 0:e.sessionId)===ye&&(F(Object.assign(Object.assign(Object.assign({},e),Sn()),{message:e.message,documentIds:e.documentIds,uploadedModelImages:e.uploadedModelImages,hasUploadedDocuments:e.hasUploadedDocuments,isHidden:e.isHidden})),Xt.current=null)}),[Nn,Sn,Ot,ye]);const Cn={currentUses:Z(null==xt?void 0:xt.currentUses),extraUses:Z(null==xt?void 0:xt.extraUses)},En=kn.scope?{currentUses:null!==(ce=Z(null===(de=kn.record)||void 0===de?void 0:de.currentUses))&&void 0!==ce?ce:0,extraUses:null!==(pe=Z(null===(ue=kn.record)||void 0===ue?void 0:ue.extraUses))&&void 0!==pe?pe:0}:{currentUses:0,extraUses:0},_n=Y(xt,"type"),Un="guest"===_n||!_n&&Ve?En:Cn;d((()=>{let e=!0;return t(void 0,void 0,void 0,(function*(){var t;if(wn&&(null===(t=null==st?void 0:st.data)||void 0===t?void 0:t.workspaceId))try{const t=yield L.get(`/cost_per_run?workspaceId=${st.data.workspaceId}`,{withCredentials:!1});e&&Et(1e4*(Number(t.data.costPerRun)||0))}catch(t){console.error("Failed to fetch average cost per run:",t),e&&Et(0)}else e&&Et(0)})),()=>{e=!1}}),[wn,null===(me=null==st?void 0:st.data)||void 0===me?void 0:me.workspaceId]);const Tn=(({currentUses:e,extraUses:t,limit:n,limitInterval:o})=>{const s=Number(null!=e?e:0),i=Number(null!=t?t:0);return n===G||i===G?G:"one_time"===o?Math.max(0,i-s):Math.max(0,n-s)+i})({currentUses:Un.currentUses,extraUses:Un.extraUses,limit:In,limitInterval:jn}),An=Tn===G?G:Math.max(0,Math.ceil(Tn)),Pn=(({extraUses:e,limit:t,limitInterval:n})=>{const o=Number(null!=e?e:0);return t===G||o===G?G:"one_time"===n?Math.max(0,o):Math.max(0,t)+Math.max(0,o)})({extraUses:Un.extraUses,limit:In,limitInterval:jn}),Dn=Pn===G?G:Math.ceil(.05*Pn),Ln=wn?Math.ceil(5*Ct):5,Rn=Dn===G?G:Math.max(Dn,Ln),Mn=c((()=>!!xt&&(!St&&(An!==G&&(!(An<=0)&&An<=Rn)))),[St,Rn,An,xt]),Bn=Boolean(null==Pe?void 0:Pe.hideUpgradeOptions),$n=!Bn&&(null===(fe=null==Pe?void 0:Pe.upgrade)||void 0===fe?void 0:fe.isLinkToCustomURL)&&"string"==typeof Pe.upgrade.limitLink&&Pe.upgrade.limitLink.trim().length>0?Pe.upgrade.limitLink.trim():null,Xn=$n&&"string"==typeof(null===(ge=null==Pe?void 0:Pe.upgrade)||void 0===ge?void 0:ge.limitCTA)&&Pe.upgrade.limitCTA.trim().length>0?Pe.upgrade.limitCTA:(null==Ce?void 0:Ce["pricing.upgrade"])||(null==Ce?void 0:Ce.upgrade)||"Upgrade",Kn=c((()=>{var e,t,n;return!!Ue&&(!!ke&&(!mt.isLoading&&(!((null!==(t=null===(e=mt.data)||void 0===e?void 0:e.messages.length)&&void 0!==t?t:0)>1)&&(!!(null===(n=ke.icebreakers)||void 0===n?void 0:n.length)&&(!Ae&&!gn)))))}),[ke,Ue,Ae,gn,mt.data,mt.isLoading]),Vn=c((()=>{if(Ge||Ze)return!1;const e=pn&&Ye.length>0&&Ye.every((e=>"finished"===e.status));return!(!ft.trim()&&!e)&&Ye.every((e=>"finished"===e.status||e.isInsertedAsRaw))}),[pn,Ge,Ze,ft,Ye]);u(se,(()=>({onSubmit:Fn}))),d((()=>{Le(Kn)}),[Kn]),d((()=>{var e;if(i){const t=Array.from(We),n=null===(e=t[t.length-2].parts.find((e=>"text"===e.type)))||void 0===e?void 0:e.content;Fn(n,!0)}}),[i]),d((()=>{if(!Mt.current||!ne)return;const e=new ResizeObserver((e=>{for(const t of e)ne(t.contentRect.height)}));return e.observe(Mt.current),()=>{e.disconnect()}}),[ne]),d((()=>{if(!Ft)return;const e=Ut.current?`${Ut.current} `:"";gt(`${e}${Vt}`)}),[Vt,Ft]),d((()=>{if(!Lt.current)return;(()=>{if(!Lt.current)return;let e=Lt.current.scrollHeight>52;ft.includes("\n")||Ye.length?e=!0:ft.trim()||(e=!1),ht(e)})()}),[ft,Ye]),d((()=>{const e=Lt.current,t=Rt.current;if(!e||!t||vt||ft.includes("\n"))return void yt(!1);const n=window.getComputedStyle(e),o=`${n.fontStyle} ${n.fontVariant} ${n.fontWeight} ${n.fontSize} / ${n.lineHeight} ${n.fontFamily}`,s=document.createElement("span");Object.assign(s.style,{font:o,letterSpacing:n.letterSpacing,position:"absolute",visibility:"hidden",whiteSpace:"nowrap",top:"0",left:"0"}),s.textContent=ft||bn,document.body.appendChild(s);const i=s.offsetWidth;s.remove();const r=parseFloat(n.paddingLeft)||0,a=parseFloat(n.paddingRight)||0,l=e.clientWidth-r-a-t.offsetWidth;yt(i>l)}),[ft,vt,bn]);const Fn=(e,n=!1)=>t(void 0,void 0,void 0,(function*(){var t,o,s,i;let r=null;try{if(Ge||Ze)return;const a=Ye.filter((e=>"finished"===e.status&&!e.isInsertedAsRaw)),l=a.map((e=>e.documentId)).filter(Boolean),d=a.filter((e=>"image"===e.type)).map((e=>{const t=e.name.split(".").pop()||"";return{documentId:e.documentId,extension:t}})),c=null!=e?e:ft,u=null!==(o=null===(t=null==ke?void 0:ke.documentuploadtype)||void 0===t?void 0:t.startsWith("enduserupload"))&&void 0!==o&&o&&l.length>0;if(!c&&!u)return;Qe(""),ot(""),qe(null),gt(""),De(!1),ze("fetching"),it(),at();const p=[...n?Array.from(We.slice(0,We.length-1)):Array.from(We),...n?[]:[{id:We.length+1,role:"user",parts:[{type:"text",content:c,isVisible:!0}],documentIds:u?l:[]}],{id:We.length+(n?0:2),role:"assistant",parts:[],documentIds:[]}];Je(p),at(),u&&nt([]);const m=K(we),f="undefined"!=typeof crypto&&"randomUUID"in crypto?crypto.randomUUID():`submission-${Date.now()}-${Math.random().toString(36).slice(2)}`;r=f,At.current=f,Pt.current=null,Dt.current=[];const g=yield fetch(`${process.env.NEXT_PUBLIC_PICKAXE_API2_URL}/response/submit`,Object.assign({method:"POST",body:JSON.stringify(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({origin:he,pickaxeId:be,sessionId:ye,submissionId:f,senderType:Ie,value:c},u&&{documentIds:l}),xe&&{sender:xe}),Ke&&{studioSessionToken:Ke}),!Ke&&!xe&&{sender:X()}),On&&{portalId:On}),we&&{deploymentId:we}),m&&{metadata:m}),u&&d.length>0?{uploadedModelImages:d}:{})),headers:Object.assign(Object.assign({},(!process.env.NODE_ENV||"development"===process.env.NODE_ENV)&&Object.assign({},process.env.NEXT_PUBLIC_PICKAXE_SESSION_TOKEN&&{"x-pickaxe-session-token":process.env.NEXT_PUBLIC_PICKAXE_SESSION_TOKEN})),{"x-request-sent-at":(new Date).toISOString()})},un&&{credentials:"include"})),v=yield g.json();if(!v.success){if(v.limitData){const e=new Error(v.error||v.message||(null==Ce?void 0:Ce["failed-to-start-generation"])||"Failed to start generation");throw e.limitData=v.limitData,e}if(hn(v))return;throw new Error(v.error||v.message||(null==Ce?void 0:Ce["failed-to-start-generation"])||"Failed to start generation")}const h=null!==(s=v.submissionId)&&void 0!==s?s:f;r=h,At.current=h;const b=()=>Pt.current===h;if(b())return;fn&&Ue&&ye&&$t.current.add(ye);const y=Object.assign(Object.assign({},Sn()),{message:c,documentIds:u?l:[],uploadedModelImages:u?d:[],hasUploadedDocuments:u,isHidden:n,metadata:null!=m?m:null});Ot?(Nn(),F(y)):Xt.current=y,ze("streaming"),Bt.current=new AbortController;const x=p.length-1,I=[];let j=[...null!=lt?lt:[]],w=0,O=!1,k="";for(;!O;)try{const e=yield fetch(`${process.env.NEXT_PUBLIC_PICKAXE_API2_URL}/response/stream/${h}?index=${w}`,{signal:null===(i=Bt.current)||void 0===i?void 0:i.signal,headers:{"Cache-Control":"no-cache",Connection:"keep-alive"}});if(!e.body)throw new Error("No response body");const t=e.body.getReader();Tt.current=t;const n=new TextDecoder,o=N({onEvent:e=>{var t,n;if(b())O=!0;else if(e.event&&"ping"!==e.event&&w++,"stop"!==e.event){if("error"===e.event){const t=JSON.parse(e.data);if(t.limitData)return qe(t.limitData),Qe(""),void(O=!0);const n=t.error||t.message||(null==Ce?void 0:Ce["something-went-wrong"])||"Something went wrong.";return hn(t)||Qe(n),void(O=!0)}if("delta"===e.event){const o=JSON.parse(e.data);if("data-error"===o.type&&oe){const e=o.data.error;if("string"==typeof e){const t=/['"]type['"]\s*:\s*['"]unauthorized_smithery['"]/.test(e),n=/['"]type['"]\s*:\s*['"]unauthorized_composio['"]/.test(e);if(t){const t=e.match(/['"]qualifiedName['"]\s*:\s*['"]([^'"]+)['"]/),n=e.match(/['"]serverId['"]\s*:\s*['"]([^'"]+)['"]/),o=e.match(/['"]name['"]\s*:\s*['"]([^'"]+)['"]/);if(t&&t[1]&&n&&n[1]&&o&&o[1])throw O=!0,oe({provider:"smithery",smitheryId:t[1],serverId:n[1],name:o[1]}),new Error("STOP_STREAM")}else if(n){const t=e.match(/['"]toolkitSlug['"]\s*:\s*['"]([^'"]+)['"]/),n=e.match(/['"]serverId['"]\s*:\s*['"]([^'"]+)['"]/),o=e.match(/['"]name['"]\s*:\s*['"]([^'"]+)['"]/);if(t&&t[1]&&n&&n[1]&&o&&o[1])throw O=!0,oe({provider:"composio",toolkitSlug:t[1],serverId:n[1],name:o[1]}),new Error("STOP_STREAM")}}else if("object"==typeof e&&null!==e){const t=e;if("unauthorized_smithery"===t.type&&t.qualifiedName&&t.serverId&&t.name)throw O=!0,oe({provider:"smithery",smitheryId:t.qualifiedName,serverId:t.serverId,name:t.name}),new Error("STOP_STREAM");if("unauthorized_composio"===t.type&&t.toolkitSlug&&t.serverId&&t.name)throw O=!0,oe({provider:"composio",toolkitSlug:t.toolkitSlug,serverId:t.serverId,name:t.name}),new Error("STOP_STREAM")}}else if("text-start"===o.type)k="",I.push({type:"text",content:"",isVisible:null===(t=o.isVisible)||void 0===t||t});else if("text-delta"===o.type)k+=o.delta,I[I.length-1].content=k;else if("text-end"===o.type)k="";else if("reasoning-start"===o.type)k="",I.push({type:"reasoning",content:"",isVisible:null===(n=o.isVisible)||void 0===n||n});else if("reasoning-delta"===o.type)k+=o.delta,I[I.length-1].content=k;else if("reasoning-end"===o.type)k="";else if(o.type.startsWith("data-")){const e=o;I.push({type:e.type,content:JSON.stringify(e.data),isVisible:!0})}Dt.current=z(I),Je([...p.slice(0,x),Object.assign(Object.assign({},p[p.length-1]),{id:We.length+1,role:"assistant",parts:I})])}else if("artifact_created"===e.event){const t=JSON.parse(e.data);j=j.filter((e=>!(e.id===t.id&&e.version===t.version))),j.push(Object.assign(Object.assign({},t),{content:"",status:"streaming"})),ct([...j]),dt.startsWith("inline")||ut({id:t.id,version:t.version})}else if("artifact_updated"===e.event){const t=JSON.parse(e.data);j=j.filter((e=>!(e.id===t.id&&e.version===t.version))),j.push(Object.assign(Object.assign({},t),{content:"",status:"updating"})),ct(j),dt.startsWith("inline")||ut({id:t.id,version:t.version})}else if("artifact_rewrite"===e.event){const t=JSON.parse(e.data);j=j.filter((e=>!(e.id===t.id&&e.version===t.version))),j.push(Object.assign(Object.assign({},t),{content:"",status:"streaming"})),ct(j),dt.startsWith("inline")||ut({id:t.id,version:t.version})}else if("artifact_content"===e.event){const t=JSON.parse(e.data),n=t.token.replace(/\u200B/g,"");j=j.map((e=>e.id===t.id&&e.version===t.version?Object.assign(Object.assign({},e),{content:e.content+n,status:"streaming"}):e)),ct(j)}else if("artifact_finished"===e.event){const t=JSON.parse(e.data);ct(j.map((e=>e.id===t.id?Object.assign(Object.assign({},e),{status:"finished"}):e)))}else if("error"===e.event){const t=JSON.parse(e.data);if(t.limitData)return qe(t.limitData),Qe(""),void(O=!0);const n=t.error||t.message||(null==Ce?void 0:Ce["something-went-wrong-try-again"])||"Something went wrong, please try again.";if(hn(t))return void(O=!0);Qe(n)}else"stop"===e.event&&(O=!0)}else O=!0}});for(;;){if(b()){O=!0,t.cancel().catch((()=>{}));break}const{value:e,done:s}=yield t.read();if(b()){O=!0,t.cancel().catch((()=>{}));break}if(s)break;o.feed(n.decode(e))}O||b()||(yield new Promise((e=>setTimeout(e,1e3))))}catch(e){if("STOP_STREAM"===e.message||q(e)||b())return void(O=!0);console.warn("Stream connection lost, retrying...",e),yield new Promise((e=>setTimeout(e,1e3)))}null==Xe||Xe(ye)}catch(e){if(q(e))return;if(e.limitData)qe(e.limitData),Qe("");else{let t=D(e)||"";t&&!t.includes("Unexpected token 'A',")||(t=(null==Ce?void 0:Ce["high-traffic-try-again-later"])||"Oops! We're experiencing high traffic at the moment. Please try again later."),hn(t)||Qe(t)}}finally{const e=!r||At.current===r;at(),e&&(ze("idle"),rt(),Tt.current=null),r&&e&&(At.current=null,Dt.current=[]),yield xn()}}));return vn?null:n("div",Object.assign({className:M("flex w-full flex-shrink-0 flex-col items-center",!gn&&"px-4 pb-8"),dir:Te?"rtl":"ltr"},{children:o("div",Object.assign({className:"flex w-full max-w-[800px] flex-col"},{children:[o("div",Object.assign({ref:Mt,className:M("relative flex flex-col w-full justify-end gap-y-3 py-[3px]","block"===Se.formFieldStyle&&"shadow"),style:Object.assign(Object.assign({},an),{maxHeight:`${Kt}px`,overflowY:"auto"})},{children:[Mn&&o("div",Object.assign({className:"sticky top-0 z-10 flex w-full items-center justify-between border-b px-4 py-2.5 shadow-sm backdrop-blur-md",style:{backgroundColor:an.backgroundColor?`${an.backgroundColor}E6`:void 0,borderColor:Ne.text+"20",color:Ne.text,borderTopRightRadius:Se.cornerRadius+"px",borderTopLeftRadius:Se.cornerRadius+"px"}},{children:[n("div",Object.assign({className:"flex items-center gap-2 text-sm font-medium"},{children:o("span",{children:[An.toLocaleString()," ",wn?(null==Ce?void 0:Ce.credits)||"Credits":(null==Ce?void 0:Ce.uses)||"Uses"," ",(null==Ce?void 0:Ce.remaining)||"remaining"]})})),o("div",Object.assign({className:"flex items-center gap-3"},{children:[!Bn&&n("button",Object.assign({className:"rounded-md px-3 py-1.5 text-xs font-semibold transition-opacity hover:opacity-90",style:{backgroundColor:Ne.accent,color:Ne.accentText},onClick:e=>{if(e.preventDefault(),e.stopPropagation(),$n)return void window.open($n,"_blank","noopener,noreferrer");const t=B({baseUrl:jt,accessGroupId:null==Pe?void 0:Pe.accessGroupId,redirectUrl:document.URL});t&&($()?window.open(t):location.href=t)}},{children:Xn})),n("button",Object.assign({className:"flex h-6 w-6 items-center justify-center rounded-full opacity-60 transition-opacity hover:opacity-100",onClick:()=>Nt(!0)},{children:n("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:2,stroke:"currentColor",className:"h-4 w-4"},{children:n("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M6 18L18 6M6 6l12 12"})}))}))]}))]})),!Ge&&Ye.length>0&&n(T,{className:"p-4 pb-0",isDisabled:Ge}),o("div",Object.assign({className:"relative flex w-full flex-col"},{children:[Ft&&o("div",Object.assign({className:"absolute left-4 top-1/2 flex -translate-y-1/2 select-none items-center gap-x-2"},{children:[n("span",{className:"h-2 w-2 animate-pulse rounded-full bg-c-secondary",style:{backgroundColor:null!==(ve=Ne.accent)&&void 0!==ve?ve:"#ff0000"}}),n("span",Object.assign({className:"text-sm text-c-secondary font-semilight",style:{color:Ne.text+"90"}},{children:(null==Ce?void 0:Ce.listening)||"Listening..."}))]})),n(A,Object.assign({ref:Lt,className:M(rn.i1,"py-3.5 max-h-60 px-4 w-full border-transparent bg-transparent",!ft.trim()&&!ft.includes("\n")&&"overflow-hidden text-ellipsis whitespace-nowrap placeholder:whitespace-normal placeholder:overflow-visible",Te?"text-right":"text-left",yn&&"mb-12",Ft&&"text-transparent"),value:ft,placeholder:bn,onChange:e=>{gt(e)},onKeyDown:e=>{_e||zt||"Enter"===e.key&&(e.shiftKey||(e.preventDefault(),Ze||Ge||Fn()))},onPaste:e=>t(void 0,void 0,void 0,(function*(){const t=Array.from(e.clipboardData.files||[]);if(t.length>0){if(!pn)return;e.preventDefault(),De(!1),yield tt(t)}}))},Q&&{onFocus:Q},te&&{onBlur:te},{dir:Te?"rtl":"ltr"})),n("div",Object.assign({ref:Rt,className:M("flex items-center gap-2 absolute right-0 z-2 transition-all duration-200 ease-in-out",yn?"bottom-0 mb-2.5":"top-1/2 -translate-y-1/2"),style:Object.assign(Object.assign({},!yn&&an.backgroundColor&&{backgroundColor:an.backgroundColor}),{borderTopRightRadius:Se.cornerRadius+"px",borderBottomRightRadius:Se.cornerRadius+"px"})},{children:Ge?n("button",Object.assign({className:"flex h-8 w-8 items-center mr-2 justify-center rounded-full outline-none transition-colors duration-200 ease-in-out",onClick:()=>{const e=At.current;e&&(Pt.current=e,(e=>{t(void 0,void 0,void 0,(function*(){if(!(e=null!=e?e:At.current))return;const t=z(Dt.current);try{yield fetch(`${process.env.NEXT_PUBLIC_PICKAXE_API2_URL}/response/cancel/${e}`,Object.assign({method:"POST",headers:Object.assign(Object.assign({"Content-Type":"application/json"},(!process.env.NODE_ENV||"development"===process.env.NODE_ENV)&&Object.assign({},process.env.NEXT_PUBLIC_PICKAXE_SESSION_TOKEN&&{"x-pickaxe-session-token":process.env.NEXT_PUBLIC_PICKAXE_SESSION_TOKEN})),{"x-request-sent-at":(new Date).toISOString()}),body:JSON.stringify({outputMessageParts:t})},un&&{credentials:"include"}))}catch(e){console.warn("Failed to cancel submission",e)}}))})(e)),Bt.current&&(Bt.current.abort(),Bt.current=null),Tt.current&&(Tt.current.cancel().catch((()=>{})),Tt.current=null),ze("idle")},style:{backgroundColor:Ne.accent,color:Ne.accentText}},{children:n(U,{className:"h-4 w-4 shrink-0"})})):Ft?n("button",Object.assign({className:"flex h-8 w-8 items-center mr-2 justify-center rounded-full outline-none transition-colors duration-200 ease-in-out",onClick:Jt,style:{backgroundColor:Ne.accent,color:Ne.accentText}},{children:n(U,{className:"h-4 w-4 shrink-0"})})):o(s,{children:[pn&&o("button",Object.assign({className:"flex h-8 w-8 items-center justify-center rounded-full outline-none transition-colors duration-200 ease-in-out disabled:cursor-default",style:{backgroundColor:en?Ne.accent+"10":void 0,color:en?Ne.accent:Ne.accent+"80"},disabled:Ze||Ge,onClick:()=>{var e;return null===(e=_t.current)||void 0===e?void 0:e.click()}},tn,{children:[n("input",{id:"file-upload",ref:_t,type:"file",accept:[...O,...k,...S].join(", "),multiple:!0,hidden:!0,className:"hidden",onChange:e=>t(void 0,void 0,void 0,(function*(){De(!1),yield tt(Array.from(e.target.files||[])),e.target.value=""}))}),n(C,{className:"h-6 w-6 shrink-0"})]})),mn&&n("button",Object.assign({className:"disabled:cursor-default flex h-8 w-8 items-center justify-center rounded-full outline-none transition-colors duration-200 ease-in-out",style:{backgroundColor:Ft?Ne.accent:on?Ne.accent+"10":void 0,color:Ft?Ne.accentText:on?Ne.accent:Ne.accent+"80"},disabled:Ze||Ge||Ht,onClick:()=>{Ft?Jt():(Ut.current=ft,Gt(Ee||"en-US"))}},sn,{children:n(_,{className:"h-5 w-5 shrink-0"})})),n("button",Object.assign({className:"flex h-8 w-8 items-center mr-2 justify-center rounded-full outline-none transition-colors duration-200 ease-in-out disabled:cursor-default",style:{backgroundColor:Qt||Vn?Ne.accent:Ne.accent+"10",color:Qt||Vn?Ne.accentText:Ne.accent+"80"},disabled:!Vn,onClick:()=>Fn()},Yt,{children:n(E,{className:M("h-6 w-6 shrink-0",Te&&"scale-x-[-1] transform")})}))]})}))]}))]})),et&&n(P,{error:et,className:"mt-3"})]}))}))}));te.displayName="Input";export{te as default};
|
|
1
|
+
import{__rest as e,__awaiter as t}from"../../../_virtual/_tslib.js";import{jsx as n,jsxs as o,Fragment as s}from"react/jsx-runtime";import{forwardRef as r,useState as i,useRef as a,useCallback as l,useEffect as d,useMemo as c,useImperativeHandle as u}from"react";import{usePickaxeContext as p}from"../../../hooks/pickaxe/usePickaxeContext.js";import{useResponseContext as m}from"../../../hooks/pickaxe/useResponseContext.js";import{useStyleInput as f}from"../../../hooks/studio/useStyleInput.js";import{useStyleFontSize as g}from"../../../hooks/studio/useStyleFontSize.js";import{useConversation as v}from"../../../hooks/pickaxe/useConversation.js";import{useDimensionContext as h}from"../../../hooks/pickaxe/useDimensionContext.js";import{useAuthContext as y}from"../Addons/Auth/hooks/useAuthContext.js";import{useDocument as b}from"../Addons/Document/hooks/useDocument.js";import{useScroll as x}from"../Addons/Scroll/hooks/useScroll.js";import{useArtifactContext as I}from"../Addons/Artifact/hooks/useArtifactContext.js";import{useHover as j}from"../../../hooks/core/useHover.js";import{useMediaQuery as w}from"../../../hooks/core/useMediaQuery.js";import{allowedFileMimeTypes as O,allowedImageMimeTypes as k,additionalAllowedFileExtensions as S}from"../../../common/documents.js";import{createParser as N}from"eventsource-parser";import C from"../../Icons/attach-vertical.svg.js";import E from"../../Icons/arrow-right.svg.js";import _ from"../../Icons/microphone.svg.js";import U from"../../Icons/stop.svg.js";import T from"../Addons/Document/List.js";import A from"../../Core/Textarea.js";import P from"../../Core/ErrorAlert.js";import D from"../../../common/error.js";import{pickaxeApi2 as L}from"../../../common/api/pickaxe.js";import{getValidationFailure as R}from"../../../common/validation.js";import M from"../../../common/cn.js";import{buildUpgradeUrl as B,isInIframe as $,initializeEmbedUserId as X}from"../../../common/utils.js";import{getPickaxeConfigMetadata as K}from"../../../common/pickaxeConfig.js";import{fireDeploymentSessionInitializedWebhook as V,fireDeploymentFirstMessageSubmittedWebhook as F}from"../../../common/deploymentWebhooks.js";import{useStudio as H}from"../../../hooks/studio/useStudio.js";import{useSpeech as J}from"../../../hooks/pickaxe/useSpeech.js";import{STUDIO_INFINITY_VALUE as W}from"../common/PickaxeCommon.js";const G=e=>"string"==typeof e&&e.trim().length>0,z=e=>e.map((e=>Object.assign({},e))),q=e=>e instanceof Error&&("AbortError"===e.name||"BodyStreamBuffer was aborted"===e.message),Q=e=>{var t;const n=(null!==(t=e.parts)&&void 0!==t?t:[]).filter((e=>!1!==e.isVisible)),o=n.filter((e=>"text"===e.type)).map((e=>{var t;return null!==(t=e.content)&&void 0!==t?t:""})).join("").trim();return o?JSON.stringify({role:e.role,text:o}):JSON.stringify({role:e.role,parts:n.map((e=>{var t;return{type:e.type,content:null!==(t=e.content)&&void 0!==t?t:""}}))})},Y=(e,t)=>{if(e&&"object"==typeof e)return e[t]},Z=(e,t)=>{const n=Y(e,t);return G(n)?n:null},ee=e=>{const t=Number(e);return Number.isFinite(t)?t:void 0},te=({studioUser:e,deploymentId:t,portalId:n})=>{var o,s;const r=Array.isArray(Y(e,"uses"))?Y(e,"uses"):[],i=(({deploymentId:e,portalId:t})=>G(e)?{type:"deployment",id:e}:G(t)?{type:"portal",id:t}:null)({deploymentId:t,portalId:n});if(!i)return{scope:i,record:null};const a=null!==(s=null!==(o=r.find((e=>e.id===i.id&&e.type===i.type)))&&void 0!==o?o:r.find((e=>e.id===i.id)))&&void 0!==s?s:null;return{scope:i,record:a}},ne=r((({resubmitPrompt:r,onFocus:Y,onBlur:ne,onInputHeightChange:oe,initSmitheryAuthData:se},re)=>{var ie,ae,le,de,ce,ue,pe,me,fe,ge,ve,he;const{origin:ye,pickaxeId:be,sessionId:xe,sender:Ie,senderType:je,portalId:we,deploymentId:Oe,deploymentType:ke,pickaxe:Se,styles:Ne,colors:Ce,translations:Ee,locale:_e,forceMobile:Ue,isNewChat:Te,isRtl:Ae,isShowFeedbackMessage:Pe,accessGroup:De,setIsNewChat:Le,setIsShowIceBreaker:Re,setValidationStatus:Me,setValidationUpgradeGroups:Be,setValidationUpgradeUrl:$e,setAccessGroup:Xe,onGenerateComplete:Ke}=p(),{token:Ve,isLoggedOut:Fe,isSent:He,isPricingAuth:Je}=y(),{messages:We,isGenerating:Ge,setMessages:ze,setStatus:qe,setLimitData:Qe,setError:Ye}=m(),{documents:Ze,isUploading:et,documentError:tt,onFileUpload:nt,setDocuments:ot,setDocumentError:st}=b(),{studio:rt}=H(),{scrollStartSession:it,scrollEndSession:at,scrollToBottom:lt}=x({auto:!0}),{artifacts:dt,currentPopupType:ct,setArtifacts:ut,setCurrentArtifact:pt}=I(),{height:mt}=h(),ft=v(),[gt,vt]=i(""),[ht,yt]=i(!1),[bt,xt]=i(!1),[It,jt]=i(null),[wt,Ot]=i(null),[kt,St]=i(!1),[Nt,Ct]=i(!1),[Et,_t]=i(0),Ut=a(null),Tt=a(""),At=a(null),Pt=a(null),Dt=a(null),Lt=a([]),Rt=a(null),Mt=a(null),Bt=a(null),$t=a(null),Xt=a(new Set),Kt=a(null),Vt=Math.max(.4*mt,100),{speechTranscript:Ft,isSpeechListening:Ht,isSpeechProcessing:Jt,isSpeechSupported:Wt,onStartListening:Gt,onStopListening:zt}=J(),[qt]=w("(max-width: 480px)"),Qt=j(),{isHover:Yt}=Qt,Zt=e(Qt,["isHover"]),en=j(),{isHover:tn}=en,nn=e(en,["isHover"]),on=j(),{isHover:sn}=on,rn=e(on,["isHover"]),an=g(),ln=f(),dn="undefined"!=typeof window?window.location.hostname:"",cn="undefined"!=typeof window?window.location.href:"",un="undefined"!=typeof window&&window.self!==window.top,pn=dn.includes("pickaxe.co")&&!cn.includes("https://studio.pickaxe.co/_embed")&&!un,mn=null!==(ae=null===(ie=null==Se?void 0:Se.documentuploadtype)||void 0===ie?void 0:ie.startsWith("enduserupload"))&&void 0!==ae&&ae,fn=Wt&&(null==Se?void 0:Se.enablevoicetotext),gn=G(Oe),vn="chat-input"===ke&&Te&&!He,hn="chat-input"===ke&&Je&&Fe&&He,yn=l((e=>{const t=R(e);return!!t&&(Ye(""),Qe(null),Me(t.status),Xe(t.accessGroup),Be(t.upgradeGroups),$e(t.upgradeUrl),!0)}),[Ye,Qe,Me,Be,$e,Xe]),bn=null!==(le=null==Se?void 0:Se.placeholdertext)&&void 0!==le?le:Ae?"بماذا تريد أن تتحدث؟":(null==Ee?void 0:Ee["what-do-you-want-to-talk-about"])||"What do you want to talk about?",xn=ht||bt,In=l((()=>t(void 0,void 0,void 0,(function*(){St(!1);try{const e=yield fetch(`${process.env.NEXT_PUBLIC_PICKAXE_API2_URL}/user`,Object.assign(Object.assign({method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(Object.assign({studioId:null==Se?void 0:Se.studioid},Ve?{studioSessionToken:Ve}:Ie?{sender:Ie}:{sender:X()}))},(!process.env.NODE_ENV||"development"===process.env.NODE_ENV)&&Object.assign({},process.env.NEXT_PUBLIC_PICKAXE_SESSION_TOKEN&&{headers:{"Content-Type":"application/json","x-pickaxe-session-token":process.env.NEXT_PUBLIC_PICKAXE_SESSION_TOKEN}})),pn&&{credentials:"include"})),t=yield e.json();(null==t?void 0:t.studioUser)&&(jt(t.studioUser),Ot(t.url))}catch(e){console.error("Failed to fetch studio user:",e)}finally{St(!0)}}))),[pn,null==Se?void 0:Se.studioid,Ie,Ve]);d((()=>{In()}),[In]);const jn=Number(null!==(de=null==De?void 0:De.limit)&&void 0!==de?de:0),wn="string"==typeof(null==De?void 0:De.limitInterval)?De.limitInterval:null,On=!!(null==rt?void 0:rt.data.usage)&&rt.data.usage.isCredits,kn=c((()=>{var e,t,n,o,s;return null!==(s=null!==(o=null!==(n=null!==(t=null!==(e=null!=we?we:Z(It,"portalId"))&&void 0!==e?e:Z(It,"portalid"))&&void 0!==t?t:Z(De,"portalId"))&&void 0!==n?n:Z(De,"portalid"))&&void 0!==o?o:Z(Se,"portalId"))&&void 0!==s?s:Z(Se,"portalid")}),[De,we,Se,It]),Sn=c((()=>te({studioUser:It,deploymentId:Oe,portalId:kn})),[Oe,kn,It]);d((()=>{gn&&Te&&xe&&Xt.current.add(xe)}),[Te,xe,gn]);const Nn=l((()=>{var e,t,n;return{studioId:null==Se?void 0:Se.studioid,userEmail:Z(It,"email"),userId:null!==(e=Z(It,"userId"))&&void 0!==e?e:Z(It,"userid"),sessionId:xe,deploymentId:Oe,deploymentType:ke,portalId:kn,accessGroupId:null!==(t=null==De?void 0:De.accessGroupId)&&void 0!==t?t:null,pickaxeId:be,sender:Ie,senderType:je,origin:ye,metadata:null!==(n=K(Oe))&&void 0!==n?n:null}}),[null==De?void 0:De.accessGroupId,Oe,ke,ye,null==Se?void 0:Se.studioid,be,kn,Ie,je,xe,It]),Cn=l((()=>!!(gn&&kt&&xe)&&(!!Xt.current.has(xe)&&(V(Nn()),Xt.current.delete(xe),!0))),[Nn,kt,xe,gn]);d((()=>{if(!kt||!xe)return;Cn();const e=Kt.current;(null==e?void 0:e.sessionId)===xe&&(F(Object.assign(Object.assign(Object.assign({},e),Nn()),{message:e.message,documentIds:e.documentIds,uploadedModelImages:e.uploadedModelImages,hasUploadedDocuments:e.hasUploadedDocuments,isHidden:e.isHidden})),Kt.current=null)}),[Cn,Nn,kt,xe]);const En={currentUses:ee(null==It?void 0:It.currentUses),extraUses:ee(null==It?void 0:It.extraUses)},_n=Sn.scope?{currentUses:null!==(ue=ee(null===(ce=Sn.record)||void 0===ce?void 0:ce.currentUses))&&void 0!==ue?ue:0,extraUses:null!==(me=ee(null===(pe=Sn.record)||void 0===pe?void 0:pe.extraUses))&&void 0!==me?me:0}:{currentUses:0,extraUses:0},Un=Z(It,"type"),Tn="guest"===Un||!Un&&Fe?_n:En;d((()=>{let e=!0;return t(void 0,void 0,void 0,(function*(){var t;if(On&&(null===(t=null==rt?void 0:rt.data)||void 0===t?void 0:t.workspaceId))try{const t=yield L.get(`/cost_per_run?workspaceId=${rt.data.workspaceId}`,{withCredentials:!1});e&&_t(1e4*(Number(t.data.costPerRun)||0))}catch(t){console.error("Failed to fetch average cost per run:",t),e&&_t(0)}else e&&_t(0)})),()=>{e=!1}}),[On,null===(fe=null==rt?void 0:rt.data)||void 0===fe?void 0:fe.workspaceId]);const An=(({currentUses:e,extraUses:t,limit:n,limitInterval:o})=>{const s=Number(null!=e?e:0),r=Number(null!=t?t:0);return n===W||r===W?W:"one_time"===o?Math.max(0,r-s):Math.max(0,n-s)+r})({currentUses:Tn.currentUses,extraUses:Tn.extraUses,limit:jn,limitInterval:wn}),Pn=An===W?W:Math.max(0,Math.ceil(An)),Dn=(({extraUses:e,limit:t,limitInterval:n})=>{const o=Number(null!=e?e:0);return t===W||o===W?W:"one_time"===n?Math.max(0,o):Math.max(0,t)+Math.max(0,o)})({extraUses:Tn.extraUses,limit:jn,limitInterval:wn}),Ln=Dn===W?W:Math.ceil(.05*Dn),Rn=On?Math.ceil(5*Et):5,Mn=Ln===W?W:Math.max(Ln,Rn),Bn=c((()=>!!It&&(!Nt&&(Pn!==W&&(!(Pn<=0)&&Pn<=Mn)))),[Nt,Mn,Pn,It]),$n=Boolean(null==De?void 0:De.hideUpgradeOptions),Xn=!$n&&(null===(ge=null==De?void 0:De.upgrade)||void 0===ge?void 0:ge.isLinkToCustomURL)&&"string"==typeof De.upgrade.limitLink&&De.upgrade.limitLink.trim().length>0?De.upgrade.limitLink.trim():null,Kn=Xn&&"string"==typeof(null===(ve=null==De?void 0:De.upgrade)||void 0===ve?void 0:ve.limitCTA)&&De.upgrade.limitCTA.trim().length>0?De.upgrade.limitCTA:(null==Ee?void 0:Ee["pricing.upgrade"])||(null==Ee?void 0:Ee.upgrade)||"Upgrade",Vn=c((()=>{var e,t,n;return!!Te&&(!!Se&&(!ft.isLoading&&(!((null!==(t=null===(e=ft.data)||void 0===e?void 0:e.messages.length)&&void 0!==t?t:0)>1)&&(!!(null===(n=Se.icebreakers)||void 0===n?void 0:n.length)&&(!Pe&&!vn)))))}),[Se,Te,Pe,vn,ft.data,ft.isLoading]),Fn=c((()=>{if(Ge||et)return!1;const e=mn&&Ze.length>0&&Ze.every((e=>"finished"===e.status));return!(!gt.trim()&&!e)&&Ze.every((e=>"finished"===e.status||e.isInsertedAsRaw))}),[mn,Ge,et,gt,Ze]);u(re,(()=>({onSubmit:Hn}))),d((()=>{Re(Vn)}),[Vn]),d((()=>{var e;if(r){const t=Array.from(We),n=null===(e=t[t.length-2].parts.find((e=>"text"===e.type)))||void 0===e?void 0:e.content;Hn(n,!0)}}),[r]),d((()=>{if(!Bt.current||!oe)return;const e=new ResizeObserver((e=>{for(const t of e)oe(t.contentRect.height)}));return e.observe(Bt.current),()=>{e.disconnect()}}),[oe]),d((()=>{if(!Ht)return;const e=Tt.current?`${Tt.current} `:"";vt(`${e}${Ft}`)}),[Ft,Ht]),d((()=>{if(!Rt.current)return;(()=>{if(!Rt.current)return;let e=Rt.current.scrollHeight>52;gt.includes("\n")||Ze.length?e=!0:gt.trim()||(e=!1),yt(e)})()}),[gt,Ze]),d((()=>{const e=Rt.current,t=Mt.current;if(!e||!t||ht||gt.includes("\n"))return void xt(!1);const n=window.getComputedStyle(e),o=`${n.fontStyle} ${n.fontVariant} ${n.fontWeight} ${n.fontSize} / ${n.lineHeight} ${n.fontFamily}`,s=document.createElement("span");Object.assign(s.style,{font:o,letterSpacing:n.letterSpacing,position:"absolute",visibility:"hidden",whiteSpace:"nowrap",top:"0",left:"0"}),s.textContent=gt||bn,document.body.appendChild(s);const r=s.offsetWidth;s.remove();const i=parseFloat(n.paddingLeft)||0,a=parseFloat(n.paddingRight)||0,l=e.clientWidth-i-a-t.offsetWidth;xt(r>l)}),[gt,ht,bn]);const Hn=(e,n=!1)=>t(void 0,void 0,void 0,(function*(){var t,o,s,r,i,a;let l=null;try{if(Ge||et)return;const d=Ze.filter((e=>"finished"===e.status&&!e.isInsertedAsRaw)),c=d.map((e=>e.documentId)).filter(Boolean),u=d.filter((e=>"image"===e.type)).map((e=>{const t=e.name.split(".").pop()||"";return{documentId:e.documentId,extension:t}})),p=null!=e?e:gt,m=null!==(o=null===(t=null==Se?void 0:Se.documentuploadtype)||void 0===t?void 0:t.startsWith("enduserupload"))&&void 0!==o&&o&&c.length>0;if(!p&&!m)return;Ye(""),st(""),Qe(null),vt(""),Le(!1),qe("fetching"),it(),lt();const f=null!==(r=null===(s=ft.data)||void 0===s?void 0:s.messages)&&void 0!==r?r:[],g=((e,t)=>{if(!t.length||!e.length)return e;const n=t.map(Q);let o=0,s=0;for(;s<e.length&&o<n.length;){const t=n.indexOf(Q(e[s]),o);if(-1===t)break;s+=1,o=t+1}const r=new Set(t.filter((e=>"assistant"===e.role)).map(Q));return e.slice(s).filter((e=>"assistant"!==e.role||!r.has(Q(e))))})(We,f),v=n?g.slice(0,g.length-1):g,h=(e=>e.reduce(((e,t)=>Math.max(e,t.id)),0)+1)(v),y=h+(n?0:1),b={id:y,role:"assistant",parts:[],documentIds:[]},x=[...v,...n?[]:[{id:h,role:"user",parts:[{type:"text",content:p,isVisible:!0}],documentIds:m?c:[]}],b];ze(x),lt(),m&&ot([]);const I=K(Oe),j="undefined"!=typeof crypto&&"randomUUID"in crypto?crypto.randomUUID():`submission-${Date.now()}-${Math.random().toString(36).slice(2)}`;l=j,Pt.current=j,Dt.current=null,Lt.current=[];const w=yield fetch(`${process.env.NEXT_PUBLIC_PICKAXE_API2_URL}/response/submit`,Object.assign({method:"POST",body:JSON.stringify(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({origin:ye,pickaxeId:be,sessionId:xe,submissionId:j,senderType:je,value:p},m&&{documentIds:c}),Ie&&{sender:Ie}),Ve&&{studioSessionToken:Ve}),!Ve&&!Ie&&{sender:X()}),kn&&{portalId:kn}),Oe&&{deploymentId:Oe}),I&&{metadata:I}),m&&u.length>0?{uploadedModelImages:u}:{})),headers:Object.assign(Object.assign({},(!process.env.NODE_ENV||"development"===process.env.NODE_ENV)&&Object.assign({},process.env.NEXT_PUBLIC_PICKAXE_SESSION_TOKEN&&{"x-pickaxe-session-token":process.env.NEXT_PUBLIC_PICKAXE_SESSION_TOKEN})),{"x-request-sent-at":(new Date).toISOString()})},pn&&{credentials:"include"})),O=yield w.json();if(!O.success){if(O.limitData){const e=new Error(O.error||O.message||(null==Ee?void 0:Ee["failed-to-start-generation"])||"Failed to start generation");throw e.limitData=O.limitData,e}if(yn(O))return;throw new Error(O.error||O.message||(null==Ee?void 0:Ee["failed-to-start-generation"])||"Failed to start generation")}const k=null!==(i=O.submissionId)&&void 0!==i?i:j;l=k,Pt.current=k;const S=()=>Dt.current===k;if(S())return;gn&&Te&&xe&&Xt.current.add(xe);const C=Object.assign(Object.assign({},Nn()),{message:p,documentIds:m?c:[],uploadedModelImages:m?u:[],hasUploadedDocuments:m,isHidden:n,metadata:null!=I?I:null});kt?(Cn(),F(C)):Kt.current=C,qe("streaming"),$t.current=new AbortController;const E=[];let _=[...null!=dt?dt:[]],U=0,T=!1,A="";for(;!T;)try{const e=yield fetch(`${process.env.NEXT_PUBLIC_PICKAXE_API2_URL}/response/stream/${k}?index=${U}`,{signal:null===(a=$t.current)||void 0===a?void 0:a.signal,headers:{"Cache-Control":"no-cache",Connection:"keep-alive"}});if(!e.body)throw new Error("No response body");const t=e.body.getReader();At.current=t;const n=new TextDecoder,o=N({onEvent:e=>{var t,n;if(S())T=!0;else if(e.event&&"ping"!==e.event&&U++,"stop"!==e.event){if("error"===e.event){const t=JSON.parse(e.data);if(t.limitData)return Qe(t.limitData),Ye(""),void(T=!0);const n=t.error||t.message||(null==Ee?void 0:Ee["something-went-wrong"])||"Something went wrong.";return yn(t)||Ye(n),void(T=!0)}if("delta"===e.event){const o=JSON.parse(e.data);if("data-error"===o.type&&se){const e=o.data.error;if("string"==typeof e){const t=/['"]type['"]\s*:\s*['"]unauthorized_smithery['"]/.test(e),n=/['"]type['"]\s*:\s*['"]unauthorized_composio['"]/.test(e);if(t){const t=e.match(/['"]qualifiedName['"]\s*:\s*['"]([^'"]+)['"]/),n=e.match(/['"]serverId['"]\s*:\s*['"]([^'"]+)['"]/),o=e.match(/['"]name['"]\s*:\s*['"]([^'"]+)['"]/);if(t&&t[1]&&n&&n[1]&&o&&o[1])throw T=!0,se({provider:"smithery",smitheryId:t[1],serverId:n[1],name:o[1]}),new Error("STOP_STREAM")}else if(n){const t=e.match(/['"]toolkitSlug['"]\s*:\s*['"]([^'"]+)['"]/),n=e.match(/['"]serverId['"]\s*:\s*['"]([^'"]+)['"]/),o=e.match(/['"]name['"]\s*:\s*['"]([^'"]+)['"]/);if(t&&t[1]&&n&&n[1]&&o&&o[1])throw T=!0,se({provider:"composio",toolkitSlug:t[1],serverId:n[1],name:o[1]}),new Error("STOP_STREAM")}}else if("object"==typeof e&&null!==e){const t=e;if("unauthorized_smithery"===t.type&&t.qualifiedName&&t.serverId&&t.name)throw T=!0,se({provider:"smithery",smitheryId:t.qualifiedName,serverId:t.serverId,name:t.name}),new Error("STOP_STREAM");if("unauthorized_composio"===t.type&&t.toolkitSlug&&t.serverId&&t.name)throw T=!0,se({provider:"composio",toolkitSlug:t.toolkitSlug,serverId:t.serverId,name:t.name}),new Error("STOP_STREAM")}}else if("text-start"===o.type)A="",E.push({type:"text",content:"",isVisible:null===(t=o.isVisible)||void 0===t||t});else if("text-delta"===o.type)A+=o.delta,E[E.length-1].content=A;else if("text-end"===o.type)A="";else if("reasoning-start"===o.type)A="",E.push({type:"reasoning",content:"",isVisible:null===(n=o.isVisible)||void 0===n||n});else if("reasoning-delta"===o.type)A+=o.delta,E[E.length-1].content=A;else if("reasoning-end"===o.type)A="";else if(o.type.startsWith("data-")){const e=o;E.push({type:e.type,content:JSON.stringify(e.data),isVisible:!0})}Lt.current=z(E);const s=z(E);ze((e=>{const t=e.findIndex((e=>e.id===y)),n=Object.assign(Object.assign({},b),{parts:s});return-1===t?[...e,n]:e.map(((e,o)=>o===t?n:e))}))}else if("artifact_created"===e.event){const t=JSON.parse(e.data);_=_.filter((e=>!(e.id===t.id&&e.version===t.version))),_.push(Object.assign(Object.assign({},t),{content:"",status:"streaming"})),ut([..._]),ct.startsWith("inline")||pt({id:t.id,version:t.version})}else if("artifact_updated"===e.event){const t=JSON.parse(e.data);_=_.filter((e=>!(e.id===t.id&&e.version===t.version))),_.push(Object.assign(Object.assign({},t),{content:"",status:"updating"})),ut(_),ct.startsWith("inline")||pt({id:t.id,version:t.version})}else if("artifact_rewrite"===e.event){const t=JSON.parse(e.data);_=_.filter((e=>!(e.id===t.id&&e.version===t.version))),_.push(Object.assign(Object.assign({},t),{content:"",status:"streaming"})),ut(_),ct.startsWith("inline")||pt({id:t.id,version:t.version})}else if("artifact_content"===e.event){const t=JSON.parse(e.data),n=t.token.replace(/\u200B/g,"");_=_.map((e=>e.id===t.id&&e.version===t.version?Object.assign(Object.assign({},e),{content:e.content+n,status:"streaming"}):e)),ut(_)}else if("artifact_finished"===e.event){const t=JSON.parse(e.data);ut(_.map((e=>e.id===t.id?Object.assign(Object.assign({},e),{status:"finished"}):e)))}else if("error"===e.event){const t=JSON.parse(e.data);if(t.limitData)return Qe(t.limitData),Ye(""),void(T=!0);const n=t.error||t.message||(null==Ee?void 0:Ee["something-went-wrong-try-again"])||"Something went wrong, please try again.";if(yn(t))return void(T=!0);Ye(n)}else"stop"===e.event&&(T=!0)}else T=!0}});for(;;){if(S()){T=!0,t.cancel().catch((()=>{}));break}const{value:e,done:s}=yield t.read();if(S()){T=!0,t.cancel().catch((()=>{}));break}if(s)break;o.feed(n.decode(e))}T||S()||(yield new Promise((e=>setTimeout(e,1e3))))}catch(e){if("STOP_STREAM"===e.message||q(e)||S())return void(T=!0);console.warn("Stream connection lost, retrying...",e),yield new Promise((e=>setTimeout(e,1e3)))}null==Ke||Ke(xe)}catch(e){if(q(e))return;if(e.limitData)Qe(e.limitData),Ye("");else{let t=D(e)||"";t&&!t.includes("Unexpected token 'A',")||(t=(null==Ee?void 0:Ee["high-traffic-try-again-later"])||"Oops! We're experiencing high traffic at the moment. Please try again later."),yn(t)||Ye(t)}}finally{const e=!l||Pt.current===l;lt(),e&&(qe("idle"),at(),At.current=null),l&&e&&(Pt.current=null,Lt.current=[]),yield In()}}));return hn?null:n("div",Object.assign({className:M("flex w-full flex-shrink-0 flex-col items-center",!vn&&"px-4 pb-8"),dir:Ae?"rtl":"ltr"},{children:o("div",Object.assign({className:"flex w-full max-w-[800px] flex-col"},{children:[o("div",Object.assign({ref:Bt,className:M("relative flex flex-col w-full justify-end gap-y-3 py-[3px]","block"===Ne.formFieldStyle&&"shadow"),style:Object.assign(Object.assign({},ln),{maxHeight:`${Vt}px`,overflowY:"auto"})},{children:[Bn&&o("div",Object.assign({className:"sticky top-0 z-10 flex w-full items-center justify-between border-b px-4 py-2.5 shadow-sm backdrop-blur-md",style:{backgroundColor:ln.backgroundColor?`${ln.backgroundColor}E6`:void 0,borderColor:Ce.text+"20",color:Ce.text,borderTopRightRadius:Ne.cornerRadius+"px",borderTopLeftRadius:Ne.cornerRadius+"px"}},{children:[n("div",Object.assign({className:"flex items-center gap-2 text-sm font-medium"},{children:o("span",{children:[Pn.toLocaleString()," ",On?(null==Ee?void 0:Ee.credits)||"Credits":(null==Ee?void 0:Ee.uses)||"Uses"," ",(null==Ee?void 0:Ee.remaining)||"remaining"]})})),o("div",Object.assign({className:"flex items-center gap-3"},{children:[!$n&&n("button",Object.assign({className:"rounded-md px-3 py-1.5 text-xs font-semibold transition-opacity hover:opacity-90",style:{backgroundColor:Ce.accent,color:Ce.accentText},onClick:e=>{if(e.preventDefault(),e.stopPropagation(),Xn)return void window.open(Xn,"_blank","noopener,noreferrer");const t=B({baseUrl:wt,accessGroupId:null==De?void 0:De.accessGroupId,redirectUrl:document.URL});t&&($()?window.open(t):location.href=t)}},{children:Kn})),n("button",Object.assign({className:"flex h-6 w-6 items-center justify-center rounded-full opacity-60 transition-opacity hover:opacity-100",onClick:()=>Ct(!0)},{children:n("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:2,stroke:"currentColor",className:"h-4 w-4"},{children:n("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M6 18L18 6M6 6l12 12"})}))}))]}))]})),!Ge&&Ze.length>0&&n(T,{className:"p-4 pb-0",isDisabled:Ge}),o("div",Object.assign({className:"relative flex w-full flex-col"},{children:[Ht&&o("div",Object.assign({className:"absolute left-4 top-1/2 flex -translate-y-1/2 select-none items-center gap-x-2"},{children:[n("span",{className:"h-2 w-2 animate-pulse rounded-full bg-c-secondary",style:{backgroundColor:null!==(he=Ce.accent)&&void 0!==he?he:"#ff0000"}}),n("span",Object.assign({className:"text-sm text-c-secondary font-semilight",style:{color:Ce.text+"90"}},{children:(null==Ee?void 0:Ee.listening)||"Listening..."}))]})),n(A,Object.assign({ref:Rt,className:M(an.i1,"py-3.5 max-h-60 px-4 w-full border-transparent bg-transparent",!gt.trim()&&!gt.includes("\n")&&"overflow-hidden text-ellipsis whitespace-nowrap placeholder:whitespace-normal placeholder:overflow-visible",Ae?"text-right":"text-left",xn&&"mb-12",Ht&&"text-transparent"),value:gt,placeholder:bn,onChange:e=>{vt(e)},onKeyDown:e=>{Ue||qt||"Enter"===e.key&&(e.shiftKey||(e.preventDefault(),et||Ge||Hn()))},onPaste:e=>t(void 0,void 0,void 0,(function*(){const t=Array.from(e.clipboardData.files||[]);if(t.length>0){if(!mn)return;e.preventDefault(),Le(!1),yield nt(t)}}))},Y&&{onFocus:Y},ne&&{onBlur:ne},{dir:Ae?"rtl":"ltr"})),n("div",Object.assign({ref:Mt,className:M("flex items-center gap-2 absolute right-0 z-2 transition-all duration-200 ease-in-out",xn?"bottom-0 mb-2.5":"top-1/2 -translate-y-1/2"),style:Object.assign(Object.assign({},!xn&&ln.backgroundColor&&{backgroundColor:ln.backgroundColor}),{borderTopRightRadius:Ne.cornerRadius+"px",borderBottomRightRadius:Ne.cornerRadius+"px"})},{children:Ge?n("button",Object.assign({className:"flex h-8 w-8 items-center mr-2 justify-center rounded-full outline-none transition-colors duration-200 ease-in-out",onClick:()=>{const e=Pt.current;e&&(Dt.current=e,(e=>{t(void 0,void 0,void 0,(function*(){if(!(e=null!=e?e:Pt.current))return;const t=z(Lt.current);try{yield fetch(`${process.env.NEXT_PUBLIC_PICKAXE_API2_URL}/response/cancel/${e}`,Object.assign({method:"POST",headers:Object.assign(Object.assign({"Content-Type":"application/json"},(!process.env.NODE_ENV||"development"===process.env.NODE_ENV)&&Object.assign({},process.env.NEXT_PUBLIC_PICKAXE_SESSION_TOKEN&&{"x-pickaxe-session-token":process.env.NEXT_PUBLIC_PICKAXE_SESSION_TOKEN})),{"x-request-sent-at":(new Date).toISOString()}),body:JSON.stringify({outputMessageParts:t})},pn&&{credentials:"include"}))}catch(e){console.warn("Failed to cancel submission",e)}}))})(e)),$t.current&&($t.current.abort(),$t.current=null),At.current&&(At.current.cancel().catch((()=>{})),At.current=null),qe("idle")},style:{backgroundColor:Ce.accent,color:Ce.accentText}},{children:n(U,{className:"h-4 w-4 shrink-0"})})):Ht?n("button",Object.assign({className:"flex h-8 w-8 items-center mr-2 justify-center rounded-full outline-none transition-colors duration-200 ease-in-out",onClick:zt,style:{backgroundColor:Ce.accent,color:Ce.accentText}},{children:n(U,{className:"h-4 w-4 shrink-0"})})):o(s,{children:[mn&&o("button",Object.assign({className:"flex h-8 w-8 items-center justify-center rounded-full outline-none transition-colors duration-200 ease-in-out disabled:cursor-default",style:{backgroundColor:tn?Ce.accent+"10":void 0,color:tn?Ce.accent:Ce.accent+"80"},disabled:et||Ge,onClick:()=>{var e;return null===(e=Ut.current)||void 0===e?void 0:e.click()}},nn,{children:[n("input",{id:"file-upload",ref:Ut,type:"file",accept:[...O,...k,...S].join(", "),multiple:!0,hidden:!0,className:"hidden",onChange:e=>t(void 0,void 0,void 0,(function*(){Le(!1),yield nt(Array.from(e.target.files||[])),e.target.value=""}))}),n(C,{className:"h-6 w-6 shrink-0"})]})),fn&&n("button",Object.assign({className:"disabled:cursor-default flex h-8 w-8 items-center justify-center rounded-full outline-none transition-colors duration-200 ease-in-out",style:{backgroundColor:Ht?Ce.accent:sn?Ce.accent+"10":void 0,color:Ht?Ce.accentText:sn?Ce.accent:Ce.accent+"80"},disabled:et||Ge||Jt,onClick:()=>{Ht?zt():(Tt.current=gt,Gt(_e||"en-US"))}},rn,{children:n(_,{className:"h-5 w-5 shrink-0"})})),n("button",Object.assign({className:"flex h-8 w-8 items-center mr-2 justify-center rounded-full outline-none transition-colors duration-200 ease-in-out disabled:cursor-default",style:{backgroundColor:Yt||Fn?Ce.accent:Ce.accent+"10",color:Yt||Fn?Ce.accentText:Ce.accent+"80"},disabled:!Fn,onClick:()=>Hn()},Zt,{children:n(E,{className:M("h-6 w-6 shrink-0",Ae&&"scale-x-[-1] transform")})}))]})}))]}))]})),tt&&n(P,{error:tt,className:"mt-3"})]}))}))}));ne.displayName="Input";export{ne as default};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{__awaiter as
|
|
1
|
+
import{__awaiter as e}from"../../_virtual/_tslib.js";import{useQuery as t}from"@tanstack/react-query";import{usePickaxeContext as s}from"./usePickaxeContext.js";import{useResponseContext as o}from"./useResponseContext.js";import{pickaxeApi2 as r}from"../../common/api/pickaxe.js";const i=e=>e.filter(((t,s)=>"user"!==t.role||!(e=>"assistant"===(null==e?void 0:e.role)&&"scheduled_followup"===e.area)(e[s+1]))),n=()=>{const{pickaxeId:n,sessionId:a,pickaxe:c}=s(),{isGenerating:d,isSwitchedToChat:l}=o(),m="string"==typeof(null==c?void 0:c.intromessage)&&0===c.intromessage.trim().length;return t({queryKey:["form",n,"chat",a],queryFn:()=>e(void 0,void 0,void 0,(function*(){return t=n,s=a,e(void 0,void 0,void 0,(function*(){const e=yield r.get(`/conversation?pickaxeId=${t}&sessionId=${s}`),o=e.data;if(200!==e.status)throw new Error("[_getChat] Failed to fetch chat conversation "+o);return o}));var t,s})),select:e=>{const t=m?e.messages.filter((e=>"intromessage"!==e.area)):e.messages;return Object.assign(Object.assign({},e),{messages:i(t)})},enabled:!!n&&!!a&&!l,refetchInterval:!!!(!n||!a||l||d)&&15e3,refetchIntervalInBackground:!1})};export{n as useConversation};
|
|
@@ -2,7 +2,7 @@ export type PickaxeHistoryOriginType = "TEST" | "BUILDER" | "PICKAXE" | "STUDIO"
|
|
|
2
2
|
export type PickaxeHistoryPickaxeType = "CHAT" | "FORM";
|
|
3
3
|
export type PickaxeHistorySenderType = "PICKAXE_USER" | "STUDIO_USER" | "DEPLOYMENT_USER";
|
|
4
4
|
export type PickaxeHistoryMessageRole = "user" | "assistant";
|
|
5
|
-
export type PickaxeHistoryMessageArea = "intromessage" | "trainingdialogue" | "message";
|
|
5
|
+
export type PickaxeHistoryMessageArea = "intromessage" | "trainingdialogue" | "scheduled_followup" | "message";
|
|
6
6
|
export type PickaxeHistory = {
|
|
7
7
|
sessionId: string;
|
|
8
8
|
pickaxeType: PickaxeHistoryPickaxeType;
|