@pickaxeproject/react 6.18.1 → 6.18.2-beta.0

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.
Files changed (33) hide show
  1. package/dist/cjs/common/actionApproval.js +1 -0
  2. package/dist/cjs/components/Pickaxe/Chat/Input.js +1 -1
  3. package/dist/cjs/components/Pickaxe/Form/Questions/Submit.js +1 -1
  4. package/dist/cjs/components/Pickaxe/ResponseProvider.js +1 -1
  5. package/dist/cjs/components/Pickaxe/common/PickaxeMessageParts/ActionApprovalPart.js +1 -0
  6. package/dist/cjs/components/Pickaxe/common/PickaxeMessageParts/index.js +1 -1
  7. package/dist/cjs/hooks/pickaxe/useActionApprovals.js +1 -0
  8. package/dist/cjs/index.js +1 -1
  9. package/dist/cjs/src/common/actionApproval.d.ts +16 -0
  10. package/dist/cjs/src/components/Pickaxe/ResponseProvider.d.ts +3 -0
  11. package/dist/cjs/src/components/Pickaxe/common/PickaxeMessageParts/ActionApprovalPart.d.ts +6 -0
  12. package/dist/cjs/src/components/Pickaxe/common/PickaxeMessageParts/index.d.ts +4 -1
  13. package/dist/cjs/src/hooks/pickaxe/useActionApprovals.d.ts +10 -0
  14. package/dist/cjs/src/hooks/pickaxe/useResponseContext.d.ts +10 -0
  15. package/dist/cjs/src/index.d.ts +2 -0
  16. package/dist/cjs/src/types/history.d.ts +6 -2
  17. package/dist/esm/common/actionApproval.js +1 -0
  18. package/dist/esm/components/Pickaxe/Chat/Input.js +1 -1
  19. package/dist/esm/components/Pickaxe/Form/Questions/Submit.js +1 -1
  20. package/dist/esm/components/Pickaxe/ResponseProvider.js +1 -1
  21. package/dist/esm/components/Pickaxe/common/PickaxeMessageParts/ActionApprovalPart.js +1 -0
  22. package/dist/esm/components/Pickaxe/common/PickaxeMessageParts/index.js +1 -1
  23. package/dist/esm/hooks/pickaxe/useActionApprovals.js +1 -0
  24. package/dist/esm/index.js +1 -1
  25. package/dist/esm/src/common/actionApproval.d.ts +16 -0
  26. package/dist/esm/src/components/Pickaxe/ResponseProvider.d.ts +3 -0
  27. package/dist/esm/src/components/Pickaxe/common/PickaxeMessageParts/ActionApprovalPart.d.ts +6 -0
  28. package/dist/esm/src/components/Pickaxe/common/PickaxeMessageParts/index.d.ts +4 -1
  29. package/dist/esm/src/hooks/pickaxe/useActionApprovals.d.ts +10 -0
  30. package/dist/esm/src/hooks/pickaxe/useResponseContext.d.ts +10 -0
  31. package/dist/esm/src/index.d.ts +2 -0
  32. package/dist/esm/src/types/history.d.ts +6 -2
  33. package/package.json +207 -206
@@ -0,0 +1 @@
1
+ "use strict";function t(t){try{const e=JSON.parse(t);return e&&"string"==typeof e.id&&"string"==typeof e.name&&"string"==typeof e.pickaxeId&&"number"==typeof e.expiresAt&&["action","mcp"].includes(e.kind)&&["pending","approved","declined","expired","cancelled"].includes(e.status)&&(void 0===e.arguments||"string"==typeof e.arguments)?e:null}catch(t){return null}}Object.defineProperty(exports,"__esModule",{value:!0}),exports.parseActionApproval=t,exports.updateStreamTextPart=function(t,e,n){for(let r=t.length-1;r>=0;r--)if(t[r].type===e)return void(t[r].content=n)},exports.upsertActionApprovalPart=function(e,n){const r=e.findIndex((e=>{var r;return"data-action-approval"===e.type&&(null===(r=t(e.content))||void 0===r?void 0:r.id)===n.id})),i={type:"data-action-approval",content:JSON.stringify(n),isVisible:!0};r<0?e.push(i):e[r]=i};
@@ -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"),x=require("../../Icons/microphone.svg.js"),y=require("../../Icons/message-clock.svg.js"),I=require("../../Icons/stop.svg.js"),j=require("../../Icons/trash.svg.js"),w=require("../../Icons/pencil.svg.js"),S=require("../Addons/Document/List.js"),O=require("../../Core/Textarea.js"),N=require("../../Core/ErrorAlert.js"),k=require("../../Core/Menu/index.js"),_=require("../../Core/Menu/Button.js"),E=require("../../Core/Menu/List.js"),C=require("../../../common/error.js"),T=require("../../../common/api/pickaxe.js"),U=require("../../../common/validation.js"),A=require("../../../common/cn.js"),D=require("../../../common/utils.js"),P=require("../../../common/pickaxeConfig.js"),L=require("../../../common/agentPrefill.js"),R=require("../../../common/deploymentWebhooks.js"),q=require("../../../hooks/studio/useStudio.js"),M=require("../../../hooks/pickaxe/useSpeechToText.js"),F=require("../common/PickaxeCommon.js");const V=(e,t)=>{const s=e.find((e=>e.id===t));return s?e.filter((e=>e.id!==t)).map((e=>e.predecessorSubmissionId===t?Object.assign(Object.assign({},e),{predecessorSubmissionId:s.predecessorSubmissionId}):e)):e},$=e=>"string"==typeof e&&e.trim().length>0,B=()=>"undefined"!=typeof crypto&&"randomUUID"in crypto?crypto.randomUUID():`submission-${Date.now()}-${Math.random().toString(36).slice(2)}`,X=e=>e.map((e=>Object.assign({},e))),K=e=>e instanceof Error&&("AbortError"===e.name||"BodyStreamBuffer was aborted"===e.message),H=(e,t)=>{if(e&&"object"==typeof e)return e[t]},W=(e,t)=>{const s=H(e,t);return $(s)?s:null},z=e=>{const t=Number(e);return Number.isFinite(t)?t:void 0},G=({studioUser:e,deploymentId:t,portalId:s})=>{var n,i;const r=Array.isArray(H(e,"uses"))?H(e,"uses"):[],o=(({deploymentId:e,portalId:t})=>$(e)?{type:"deployment",id:e}:$(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}},Y=s.forwardRef((({resubmitPrompt:H,onFocus:Y,onBlur:J,onInputHeightChange:Q,initSmitheryAuthData:Z},ee)=>{var te,se,ne,ie,re,oe,ae,le,de,ce,ue,pe,me,fe,ge,ve,he;const{origin:be,pickaxeId:xe,sessionId:ye,sender:Ie,senderType:je,portalId:we,deploymentId:Se,deploymentType:Oe,pickaxe:Ne,styles:ke,colors:_e,translations:Ee,locale:Ce,forceMobile:Te,isNewChat:Ue,isRtl:Ae,isEmbed:De,isShowFeedbackMessage:Pe,accessGroup:Le,setIsNewChat:Re,setIsShowIceBreaker:qe,setValidationStatus:Me,setValidationUpgradeGroups:Fe,setValidationUpgradeUrl:Ve,setAccessGroup:$e,onUpgrade:Be,onGenerateComplete:Xe}=n.usePickaxeContext(),{token:Ke,isLoggedOut:He,isSent:We,isPricingAuth:ze}=d.useAuthContext(),{messages:Ge,isGenerating:Ye,setMessages:Je,setStatus:Qe,setLimitData:Ze,setError:et}=i.useResponseContext(),{documents:tt,isUploading:st,documentError:nt,onFileUpload:it,setDocuments:rt,setDocumentError:ot}=c.useDocument(),{studio:at}=q.useStudio(),[lt]=f.useMediaQuery("(max-width: 480px)"),{scrollStartSession:dt,scrollEndSession:ct,scrollToBottom:ut}=u.useScroll({auto:!0,smooth:!(Te||lt)}),{artifacts:pt,currentPopupType:mt,setArtifacts:ft,setCurrentArtifact:gt}=p.useArtifactContext(),{height:vt}=l.useDimensionContext(),ht=a.useConversation(),[bt,xt]=s.useState((()=>L.readAgentPrefill([Se,xe]).chatInput)),[yt,It]=s.useState(!1),[jt,wt]=s.useState(!1),[St,Ot]=s.useState(!1),[Nt,kt]=s.useState([]),[_t,Et]=s.useState(!1),[Ct,Tt]=s.useState(null),[Ut,At]=s.useState(null),[Dt,Pt]=s.useState(null),[Lt,Rt]=s.useState(null),[qt,Mt]=s.useState(!1),[Ft,Vt]=s.useState(!1),[$t,Bt]=s.useState(0),Xt=s.useRef(null),Kt=s.useRef(""),Ht=s.useRef(null),Wt=s.useRef(null),zt=s.useRef(null),Gt=s.useRef([]),Yt=s.useRef(null),Jt=s.useRef(null),Qt=s.useRef(null),Zt=s.useRef(null),es=s.useRef(new Set),ts=s.useRef(null),ss=Math.max(.4*vt,100),{speechTranscript:ns,isSpeechListening:is,isSpeechProcessing:rs,isSpeechSupported:os,onStartListening:as,onStopListening:ls}=M.useSpeechToText(),ds=m.useHover(),{isHover:cs}=ds,us=e.__rest(ds,["isHover"]),ps=m.useHover(),{isHover:ms}=ps,fs=e.__rest(ps,["isHover"]),gs=m.useHover(),{isHover:vs}=gs,hs=e.__rest(gs,["isHover"]),bs=o.useStyleFontSize(),xs=r.useStyleInput(),ys="undefined"!=typeof window?window.location.hostname:"",Is="undefined"!=typeof window?window.location.href:"",js="undefined"!=typeof window&&window.self!==window.top,ws=ys.includes("pickaxe.co")&&!Is.includes("https://studio.pickaxe.co/_embed")&&!js,Ss=null!==(se=null===(te=null==Ne?void 0:Ne.documentuploadtype)||void 0===te?void 0:te.startsWith("enduserupload"))&&void 0!==se&&se,Os=os&&(null==Ne?void 0:Ne.enablevoicetotext),Ns=is&&!bt.trim(),ks=$(Se),_s="chat-input"===Oe&&Ue&&!We,Es="chat-input"===Oe&&ze&&He&&We,Cs=s.useCallback((e=>{const t=U.getValidationFailure(e);return!!t&&(et(""),Ze(null),Me(t.status),$e(t.accessGroup),Fe(t.upgradeGroups),Ve(t.upgradeUrl),!0)}),[et,Ze,Me,Fe,Ve,$e]),Ts=null!==(ne=null==Ne?void 0:Ne.placeholdertext)&&void 0!==ne?ne:Ae?"بماذا تريد أن تتحدث؟":(null==Ee?void 0:Ee["what-do-you-want-to-talk-about"])||"What do you want to talk about?",Us=yt||jt,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==Ne?void 0:Ne.studioid},Ke?{studioSessionToken:Ke}:Ie?{sender:Ie}:{sender:D.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}})),ws&&{credentials:"include"})),t=yield e.json();(null==t?void 0:t.studioUser)&&(Pt(t.studioUser),Rt(t.url))}catch(e){console.error("Failed to fetch studio user:",e)}finally{Mt(!0)}}))),[ws,null==Ne?void 0:Ne.studioid,Ie,Ke]);s.useEffect((()=>{As()}),[As]);const Ds=Number(null!==(ie=null==Le?void 0:Le.limit)&&void 0!==ie?ie:0),Ps="string"==typeof(null==Le?void 0:Le.limitInterval)?Le.limitInterval:null,Ls=!!(null==at?void 0:at.data.usage)&&at.data.usage.isCredits,Rs=s.useMemo((()=>{var e,t,s,n,i;return null!==(i=null!==(n=null!==(s=null!==(t=null!==(e=null!=we?we:W(Dt,"portalId"))&&void 0!==e?e:W(Dt,"portalid"))&&void 0!==t?t:W(Le,"portalId"))&&void 0!==s?s:W(Le,"portalid"))&&void 0!==n?n:W(Ne,"portalId"))&&void 0!==i?i:W(Ne,"portalid")}),[Le,we,Ne,Dt]),qs=s.useMemo((()=>G({studioUser:Dt,deploymentId:Se,portalId:Rs})),[Se,Rs,Dt]);s.useEffect((()=>{ks&&Ue&&ye&&es.current.add(ye)}),[Ue,ye,ks]);const Ms=s.useCallback((()=>{var e,t,s;return{studioId:null==Ne?void 0:Ne.studioid,userEmail:W(Dt,"email"),userId:null!==(e=W(Dt,"userId"))&&void 0!==e?e:W(Dt,"userid"),sessionId:ye,deploymentId:Se,deploymentType:Oe,portalId:Rs,accessGroupId:null!==(t=null==Le?void 0:Le.accessGroupId)&&void 0!==t?t:null,pickaxeId:xe,sender:Ie,senderType:je,origin:be,metadata:null!==(s=P.getPickaxeConfigMetadata(Se))&&void 0!==s?s:null}}),[null==Le?void 0:Le.accessGroupId,Se,Oe,be,null==Ne?void 0:Ne.studioid,xe,Rs,Ie,je,ye,Dt]),Fs=s.useCallback((()=>!!(ks&&qt&&ye)&&(!!es.current.has(ye)&&(R.fireDeploymentSessionInitializedWebhook(Ms()),es.current.delete(ye),!0))),[Ms,qt,ye,ks]);s.useEffect((()=>{if(!qt||!ye)return;Fs();const e=ts.current;(null==e?void 0:e.sessionId)===ye&&(R.fireDeploymentFirstMessageSubmittedWebhook(Object.assign(Object.assign(Object.assign({},e),Ms()),{message:e.message,documentIds:e.documentIds,uploadedModelImages:e.uploadedModelImages,hasUploadedDocuments:e.hasUploadedDocuments,isHidden:e.isHidden})),ts.current=null)}),[Fs,Ms,qt,ye]);const Vs={currentUses:z(null==Dt?void 0:Dt.currentUses),extraUses:z(null==Dt?void 0:Dt.extraUses)},$s=qs.scope?{currentUses:null!==(oe=z(null===(re=qs.record)||void 0===re?void 0:re.currentUses))&&void 0!==oe?oe:0,extraUses:null!==(le=z(null===(ae=qs.record)||void 0===ae?void 0:ae.extraUses))&&void 0!==le?le:0}:{currentUses:0,extraUses:0},Bs=W(Dt,"type"),Xs="guest"===Bs||!Bs&&He?$s:Vs;s.useEffect((()=>{let t=!0;return e.__awaiter(void 0,void 0,void 0,(function*(){var e;if(Ls&&(null===(e=null==at?void 0:at.data)||void 0===e?void 0:e.workspaceId))try{const e=yield T.pickaxeApi2.get(`/cost_per_run?workspaceId=${at.data.workspaceId}`,{withCredentials:!1});t&&Bt(1e4*(Number(e.data.costPerRun)||0))}catch(e){console.error("Failed to fetch average cost per run:",e),t&&Bt(0)}else t&&Bt(0)})),()=>{t=!1}}),[Ls,null===(de=null==at?void 0:at.data)||void 0===de?void 0:de.workspaceId]);const Ks=(({currentUses:e,extraUses:t,limit:s,limitInterval:n})=>{const i=Number(null!=e?e:0),r=Number(null!=t?t:0);return s===F.STUDIO_INFINITY_VALUE||r===F.STUDIO_INFINITY_VALUE?F.STUDIO_INFINITY_VALUE:"one_time"===n?Math.max(0,r-i):Math.max(0,s-i)+r})({currentUses:Xs.currentUses,extraUses:Xs.extraUses,limit:Ds,limitInterval:Ps}),Hs=Ks===F.STUDIO_INFINITY_VALUE?F.STUDIO_INFINITY_VALUE:Math.max(0,Math.ceil(Ks)),Ws=(({extraUses:e,limit:t,limitInterval:s})=>{const n=Number(null!=e?e:0);return t===F.STUDIO_INFINITY_VALUE||n===F.STUDIO_INFINITY_VALUE?F.STUDIO_INFINITY_VALUE:"one_time"===s?Math.max(0,n):Math.max(0,t)+Math.max(0,n)})({extraUses:Xs.extraUses,limit:Ds,limitInterval:Ps}),zs=Ws===F.STUDIO_INFINITY_VALUE?F.STUDIO_INFINITY_VALUE:Math.ceil(.05*Ws),Gs=Ls?Math.ceil(5*$t):5,Ys=zs===F.STUDIO_INFINITY_VALUE?F.STUDIO_INFINITY_VALUE:Math.max(zs,Gs),Js=s.useMemo((()=>!!Dt&&(!Ft&&(Hs!==F.STUDIO_INFINITY_VALUE&&Hs<=Ys))),[Ft,Ys,Hs,Dt]),Qs=Boolean(null==Le?void 0:Le.hideUpgradeOptions),Zs=Boolean(!Qs&&((null===(ce=null==Le?void 0:Le.upgrade)||void 0===ce?void 0:ce.isBuyMoreUses)||(null===(ue=null==Le?void 0:Le.upgrade)||void 0===ue?void 0:ue.isLinkToCustomURL)||(null===(pe=null==Le?void 0:Le.upgrade)||void 0===pe?void 0:pe.isUpgradeToAnotherGroup)&&(null===(me=Le.upgrade.accessGroupIds)||void 0===me?void 0:me.length))),en=!Qs&&(null===(fe=null==Le?void 0:Le.upgrade)||void 0===fe?void 0:fe.isLinkToCustomURL)&&"string"==typeof Le.upgrade.limitLink&&Le.upgrade.limitLink.trim().length>0?Le.upgrade.limitLink.trim():null,tn=en&&"string"==typeof(null===(ge=null==Le?void 0:Le.upgrade)||void 0===ge?void 0:ge.limitCTA)&&Le.upgrade.limitCTA.trim().length>0?Le.upgrade.limitCTA:(null==Ee?void 0:Ee["pricing.upgrade"])||(null==Ee?void 0:Ee.upgrade)||"Upgrade",sn=s.useMemo((()=>{var e,t,s;return!!Ue&&(!!Ne&&(!ht.isLoading&&(!((null!==(t=null===(e=ht.data)||void 0===e?void 0:e.messages.length)&&void 0!==t?t:0)>1)&&(!!(null===(s=Ne.icebreakers)||void 0===s?void 0:s.length)&&(!Pe&&!_s)))))}),[Ne,Ue,Pe,_s,ht.data,ht.isLoading]),nn=s.useMemo((()=>{if(st||St)return!1;const e=Ss&&tt.length>0&&tt.every((e=>"finished"===e.status));return!(!bt.trim()&&!e)&&tt.every((e=>"finished"===e.status||e.isInsertedAsRaw))}),[Ss,st,St,bt,tt]);s.useImperativeHandle(ee,(()=>({onSubmit:dn}))),s.useEffect((()=>{qe(sn)}),[sn]),s.useEffect((()=>{var e;if(H){const t=Array.from(Ge),s=null===(e=t[t.length-2].parts.find((e=>"text"===e.type)))||void 0===e?void 0:e.content;dn(s,!0)}}),[H]),s.useEffect((()=>{if(!Qt.current||!Q)return;const e=new ResizeObserver((e=>{for(const t of e)Q(t.contentRect.height)}));return e.observe(Qt.current),()=>{e.disconnect()}}),[Q]),s.useEffect((()=>{if(!is)return;const e=Kt.current?`${Kt.current} `:"";xt(`${e}${ns}`)}),[ns,is]),s.useEffect((()=>{if(!Yt.current)return;(()=>{if(!Yt.current)return;let e=Yt.current.scrollHeight>52;bt.includes("\n")||tt.length?e=!0:bt.trim()||(e=!1),It(e)})()}),[bt,tt]),s.useEffect((()=>{const e=Yt.current,t=Jt.current;if(!e||!t||yt||bt.includes("\n"))return void wt(!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=bt||Ts,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;wt(r>l)}),[bt,yt,Ts]);const rn=t=>e.__awaiter(void 0,void 0,void 0,(function*(){if(!(t=null!=t?t:Wt.current))return!1;const e=X(Gt.current);try{return(yield fetch(`${process.env.NEXT_PUBLIC_PICKAXE_API2_URL}/response/cancel/${t}`,Object.assign({method:"POST",headers:Object.assign(Object.assign({"Content-Type":"application/json"},(!process.env.NODE_ENV||"development"===process.env.NODE_ENV)&&Object.assign({},process.env.NEXT_PUBLIC_PICKAXE_SESSION_TOKEN&&{"x-pickaxe-session-token":process.env.NEXT_PUBLIC_PICKAXE_SESSION_TOKEN})),{"x-request-sent-at":(new Date).toISOString()}),body:JSON.stringify({outputMessageParts:e})},ws&&{credentials:"include"}))).ok}catch(e){return console.warn("Failed to cancel submission",e),!1}})),on=e=>{zt.current=e,Zt.current&&(Zt.current.abort(),Zt.current=null),Ht.current&&(Ht.current.cancel().catch((()=>{})),Ht.current=null)},an=t=>e.__awaiter(void 0,void 0,void 0,(function*(){const e=Date.now()+3e4;for(;Date.now()<e;){try{const e=yield fetch(`${process.env.NEXT_PUBLIC_PICKAXE_API2_URL}/response/status/${t}`,Object.assign({headers:Object.assign({"Cache-Control":"no-cache"},(!process.env.NODE_ENV||"development"===process.env.NODE_ENV)&&Object.assign({},process.env.NEXT_PUBLIC_PICKAXE_SESSION_TOKEN&&{"x-pickaxe-session-token":process.env.NEXT_PUBLIC_PICKAXE_SESSION_TOKEN}))},ws&&{credentials:"include"}));if(e.ok){if((yield e.json()).terminal)return!0}}catch(e){console.warn("Failed to read submission status",e)}yield new Promise((e=>setTimeout(e,250)))}return!1})),ln=()=>{const e=Wt.current;e&&!St&&!st&&bt.trim()&&(kt((t=>{var s,n;return[...t,{id:B(),message:bt,predecessorSubmissionId:null!==(n=null===(s=t[t.length-1])||void 0===s?void 0:s.id)&&void 0!==n?n:e}]})),xt(""))},dn=(t,s=!1,n=!1,i)=>e.__awaiter(void 0,void 0,void 0,(function*(){var e,r,o,a;let l=null;try{if(Ye&&!n||st)return;const d=tt.filter((e=>"finished"===e.status&&!e.isInsertedAsRaw)),c=d.map((e=>e.documentId)).filter(Boolean),u=d.filter((e=>"image"===e.type)).map((e=>{const t=e.name.split(".").pop()||"";return{documentId:e.documentId,extension:t}})),p=null!=t?t:bt,m=null!==(r=null===(e=null==Ne?void 0:Ne.documentuploadtype)||void 0===e?void 0:e.startsWith("enduserupload"))&&void 0!==r&&r&&c.length>0;if(!p&&!m)return;et(""),ot(""),Ze(null),xt(""),Re(!1),Qe("fetching"),dt(),ut();const f=s?Ge.slice(0,Ge.length-1):Ge,g=(e=>e.reduce(((e,t)=>Math.max(e,t.id)),0)+1)(f),h=g+(s?0:1),b={id:h,role:"assistant",parts:[],documentIds:[]},x=[...f,...s?[]:[{id:g,role:"user",parts:[{type:"text",content:p,isVisible:!0}],documentIds:m?c:[]}],b];Je(x),ut(),m&&rt([]);const y=P.getPickaxeConfigMetadata(Se),I=null!=i?i:B();l=I,Wt.current=I,zt.current=null,Gt.current=[];const j=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:be,pickaxeId:xe,sessionId:ye,submissionId:I,senderType:je,value:p},m&&{documentIds:c}),Ie&&{sender:Ie}),Ke&&{studioSessionToken:Ke}),!Ke&&!Ie&&{sender:D.initializeEmbedUserId()}),Rs&&{portalId:Rs}),Se&&{deploymentId:Se}),y&&{metadata:y}),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()})},ws&&{credentials:"include"})),w=yield j.json();if(!w.success){if(w.limitData){const e=new Error(w.error||w.message||(null==Ee?void 0:Ee["failed-to-start-generation"])||"Failed to start generation");throw e.limitData=w.limitData,e}if(Cs(w))return;throw new Error(w.error||w.message||(null==Ee?void 0:Ee["failed-to-start-generation"])||"Failed to start generation")}const S=null!==(o=w.submissionId)&&void 0!==o?o:I;l=S,Wt.current=S;const O=()=>zt.current===S;if(O())return;ks&&Ue&&ye&&es.current.add(ye);const N=Object.assign(Object.assign({},Ms()),{message:p,documentIds:m?c:[],uploadedModelImages:m?u:[],hasUploadedDocuments:m,isHidden:s,metadata:null!=y?y:null});qt?(Fs(),R.fireDeploymentFirstMessageSubmittedWebhook(N)):ts.current=N,Qe("streaming"),Zt.current=new AbortController;const k=[];let _=[...null!=pt?pt:[]],E=0,C=!1,T="";for(;!C;)try{const e=yield fetch(`${process.env.NEXT_PUBLIC_PICKAXE_API2_URL}/response/stream/${S}?index=${E}`,{signal:null===(a=Zt.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();Ht.current=t;const s=new TextDecoder,n=v.createParser({onEvent:e=>{var t,s;if(O())C=!0;else if(e.event&&"ping"!==e.event&&E++,"stop"!==e.event){if("error"===e.event){const t=JSON.parse(e.data);if(t.limitData)return Ze(t.limitData),et(""),void(C=!0);const s=t.error||t.message||(null==Ee?void 0:Ee["something-went-wrong"])||"Something went wrong.";return Cs(t)||et(s),void(C=!0)}if("delta"===e.event){const n=JSON.parse(e.data);if("data-error"===n.type&&Z){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 C=!0,Z({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 C=!0,Z({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 C=!0,Z({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 C=!0,Z({provider:"composio",toolkitSlug:t.toolkitSlug,serverId:t.serverId,name:t.name}),new Error("STOP_STREAM")}}else if("text-start"===n.type)T="",k.push({type:"text",content:"",isVisible:null===(t=n.isVisible)||void 0===t||t});else if("text-delta"===n.type)T+=n.delta,k[k.length-1].content=T;else if("text-end"===n.type)T="";else if("reasoning-start"===n.type)T="",k.push({type:"reasoning",content:"",isVisible:null===(s=n.isVisible)||void 0===s||s});else if("reasoning-delta"===n.type)T+=n.delta,k[k.length-1].content=T;else if("reasoning-end"===n.type)T="";else if(n.type.startsWith("data-")){const e=n;k.push({type:e.type,content:JSON.stringify(e.data),isVisible:!0})}Gt.current=X(k);const i=X(k);Je((e=>{const t=e.findIndex((e=>e.id===h)),s=Object.assign(Object.assign({},b),{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);_=_.filter((e=>!(e.id===t.id&&e.version===t.version))),_.push(Object.assign(Object.assign({},t),{content:"",status:"streaming"})),ft([..._]),mt.startsWith("inline")||gt({id:t.id,version:t.version})}else if("artifact_updated"===e.event){const t=JSON.parse(e.data);_=_.filter((e=>!(e.id===t.id&&e.version===t.version))),_.push(Object.assign(Object.assign({},t),{content:"",status:"updating"})),ft(_),mt.startsWith("inline")||gt({id:t.id,version:t.version})}else if("artifact_rewrite"===e.event){const t=JSON.parse(e.data);_=_.filter((e=>!(e.id===t.id&&e.version===t.version))),_.push(Object.assign(Object.assign({},t),{content:"",status:"streaming"})),ft(_),mt.startsWith("inline")||gt({id:t.id,version:t.version})}else if("artifact_content"===e.event){const t=JSON.parse(e.data),s=t.token.replace(/\u200B/g,"");_=_.map((e=>e.id===t.id&&e.version===t.version?Object.assign(Object.assign({},e),{content:e.content+s,status:"streaming"}):e)),ft(_)}else if("artifact_finished"===e.event){const t=JSON.parse(e.data);ft(_.map((e=>e.id===t.id?Object.assign(Object.assign({},e),{status:"finished"}):e)))}else if("error"===e.event){const t=JSON.parse(e.data);if(t.limitData)return Ze(t.limitData),et(""),void(C=!0);const s=t.error||t.message||(null==Ee?void 0:Ee["something-went-wrong-try-again"])||"Something went wrong, please try again.";if(Cs(t))return void(C=!0);et(s)}else"stop"===e.event&&(C=!0)}else C=!0}});for(;;){if(O()){C=!0,t.cancel().catch((()=>{}));break}const{value:e,done:i}=yield t.read();if(O()){C=!0,t.cancel().catch((()=>{}));break}if(i)break;n.feed(s.decode(e))}C||O()||(yield new Promise((e=>setTimeout(e,1e3))))}catch(e){if("STOP_STREAM"===e.message||K(e)||O())return void(C=!0);console.warn("Stream connection lost, retrying...",e),yield new Promise((e=>setTimeout(e,1e3)))}null==Xe||Xe(ye)}catch(e){if(K(e))return;if(e.limitData)Ze(e.limitData),et("");else{let t=C.default(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."),Cs(t)||et(t)}}finally{const e=!l||Wt.current===l;ut(),e&&(Qe("idle"),ct(),Ht.current=null),l&&e&&(Wt.current=null,Gt.current=[]),yield As()}}));return s.useEffect((()=>{if(Ye||St||_t||0===Nt.length)return;const t=Nt[0];Et(!0),Tt(t.id),e.__awaiter(void 0,void 0,void 0,(function*(){try{if(!(yield an(t.predecessorSubmissionId)))return void et((null==Ee?void 0:Ee["queued-message-waiting"])||"A queued message is waiting for the previous response to finish.");kt((e=>e.filter((e=>e.id!==t.id)))),yield dn(t.message,!1,!0,t.id)}finally{Et(!1),Tt(null)}}))}),[Ye,_t,St,Nt]),Es?null:t.jsx("div",Object.assign({className:A.default("flex w-full flex-shrink-0 flex-col items-center",!_s&&"px-4 pb-8"),dir:Ae?"rtl":"ltr"},{children:t.jsxs("div",Object.assign({className:"flex w-full max-w-[800px] flex-col"},{children:[Nt.length>0&&t.jsx("div",Object.assign({className:"mx-3 -mb-3 overflow-hidden border pb-3",style:{borderColor:_e.text+"18",backgroundColor:null!==(ve=xs.backgroundColor)&&void 0!==ve?ve:_e.text+"08",color:_e.text,borderTopLeftRadius:Math.max(ke.cornerRadius-4,12),borderTopRightRadius:Math.max(ke.cornerRadius-4,12)}},{children:Nt.map(((s,n)=>{var i;return t.jsxs("div",Object.assign({className:"flex min-h-10 items-center gap-2 px-3 py-2",style:n<Nt.length-1?{borderBottom:`1px solid ${_e.text}12`}:void 0},{children:[t.jsx(y.default,{className:"h-4 w-4 shrink-0 opacity-50","aria-hidden":"true"}),t.jsx("span",Object.assign({className:"min-w-0 flex-1 truncate text-sm",title:s.message},{children:s.message})),Ut===s.id||Ct===s.id?t.jsxs("span",Object.assign({className:"flex shrink-0 items-center gap-1.5 px-2 py-1 text-xs opacity-60","aria-live":"polite"},{children:[t.jsx("span",{className:"h-3 w-3 animate-spin rounded-full border border-current border-r-transparent","aria-hidden":"true"}),Ut===s.id?(null==Ee?void 0:Ee.steering)||"Steering...":(null==Ee?void 0:Ee.starting)||"Starting..."]})):t.jsxs(t.Fragment,{children:[t.jsxs("button",Object.assign({type:"button",className:"shrink-0 rounded-md px-2 py-1 text-xs font-medium opacity-70 transition-opacity hover:opacity-100 disabled:cursor-default disabled:opacity-40",disabled:St||!Ye,onClick:()=>{(t=>{e.__awaiter(void 0,void 0,void 0,(function*(){const e=Wt.current;if(!e||St)return;const s=Nt.findIndex((e=>e.id===t.id));if(-1===s)return;Ot(!0),At(t.id),et(""),on(e);let n=!1;try{if(!(yield rn(e)))throw new Error((null==Ee?void 0:Ee["failed-to-interrupt-current-response"])||"Failed to interrupt the current response.");if(!(yield an(e)))throw new Error((null==Ee?void 0:Ee["current-response-still-stopping"])||"The current response is still stopping. Please send your message again in a moment.");Qe("idle"),kt((e=>e.filter((e=>e.id!==t.id)))),n=!0,Ot(!1),At(null),yield dn(t.message,!1,!0,t.id)}catch(e){Qe("idle"),n&&kt((e=>{if(e.some((e=>e.id===t.id)))return e;const n=[...e];return n.splice(s,0,t),n})),et(C.default(e))}finally{Ot(!1),At(null)}}))})(s)},"aria-label":`${(null==Ee?void 0:Ee["steer-with"])||"Steer with"}: ${s.message}`},{children:[t.jsx("span",Object.assign({"aria-hidden":"true"},{children:"↳ "})),(null==Ee?void 0:Ee.steer)||"Steer"]})),t.jsx("button",Object.assign({type:"button",className:"flex h-7 w-7 shrink-0 items-center justify-center rounded-md opacity-50 transition-opacity hover:opacity-100 disabled:cursor-default disabled:opacity-30",disabled:St,onClick:()=>{return e=s.id,void kt((t=>V(t,e)));var e},"aria-label":`${(null==Ee?void 0:Ee["remove-queued-message"])||"Remove queued message"}: ${s.message}`},{children:t.jsx(j.default,{className:"h-4 w-4","aria-hidden":"true"})})),t.jsxs(k.default,Object.assign({id:`queued-message-menu-${s.id}`,className:"shrink-0"},{children:[t.jsx(_.default,Object.assign({className:"flex h-7 w-7 items-center justify-center rounded-md opacity-50 transition-opacity hover:opacity-100",isDisabled:St,role:"button",tabIndex:St?-1:0,"aria-haspopup":"menu","aria-label":(null==Ee?void 0:Ee["more-options"])||"More options",onKeyDown:e=>{"Enter"!==e.key&&" "!==e.key||(e.preventDefault(),e.currentTarget.click())}},{children:t.jsxs("svg",Object.assign({viewBox:"0 0 24 24",className:"h-4 w-4",fill:"currentColor","aria-hidden":"true"},{children:[t.jsx("circle",{cx:"5",cy:"12",r:"1.6"}),t.jsx("circle",{cx:"12",cy:"12",r:"1.6"}),t.jsx("circle",{cx:"19",cy:"12",r:"1.6"})]}))})),t.jsx(E.default,Object.assign({role:"menu",align:Ae?"bottom-start":"bottom-end",positionStrategy:De?"absolute":"fixed",width:"auto",className:"p-1 text-sm shadow-xl",style:{backgroundColor:null!==(i=xs.backgroundColor)&&void 0!==i?i:_e.primary,color:_e.text,borderRadius:"12px"},border:`1px solid ${_e.text}20`},{children:t.jsxs("button",Object.assign({type:"button",role:"menuitem",className:"flex min-w-36 items-center gap-2 rounded-lg px-3 py-2 text-left transition-colors hover:bg-black/5 dark:hover:bg-white/10",onClick:()=>(e=>{kt((t=>V(t,e.id))),xt(e.message),requestAnimationFrame((()=>{const t=Yt.current;t&&(t.focus(),t.setSelectionRange(e.message.length,e.message.length))}))})(s)},{children:[t.jsx(w.default,{className:"h-4 w-4 shrink-0"}),(null==Ee?void 0:Ee["edit-message"])||"Edit message"]}))}))]}))]})]}),s.id)}))})),t.jsxs("div",Object.assign({ref:Qt,className:A.default("relative z-10 flex flex-col w-full justify-end gap-y-3 py-[3px]","block"===ke.formFieldStyle&&"shadow"),style:Object.assign(Object.assign({},xs),{maxHeight:`${ss}px`,overflowY:"auto"})},{children:[Js&&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:xs.backgroundColor?`${xs.backgroundColor}E6`:void 0,borderColor:_e.text+"20",color:_e.text,borderTopRightRadius:ke.cornerRadius+"px",borderTopLeftRadius:ke.cornerRadius+"px"}},{children:[t.jsx("div",Object.assign({className:"flex items-center gap-2 text-sm font-medium"},{children:t.jsxs("span",{children:[Hs.toLocaleString()," ",Ls?(null==Ee?void 0:Ee.credits)||"Credits":(null==Ee?void 0:Ee.uses)||"Uses"," ",(null==Ee?void 0:Ee.remaining)||"remaining"]})})),t.jsxs("div",Object.assign({className:"flex items-center gap-3"},{children:[Zs&&t.jsx("button",Object.assign({className:"rounded-md px-3 py-1.5 text-xs font-semibold transition-opacity hover:opacity-90",style:{backgroundColor:_e.accent,color:_e.accentText},onClick:e=>{if(e.preventDefault(),e.stopPropagation(),en)return void window.open(en,"_blank","noopener,noreferrer");if(Be)return void Be();const t=D.buildUpgradeUrl({baseUrl:Lt,accessGroupId:null==Le?void 0:Le.accessGroupId});t&&D.openAuthenticatedPricingUrl({deploymentId:Se,pricingUrl:t,studioId:null==Ne?void 0:Ne.studioid,studioSessionToken:Ke})}},{children:tn})),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:()=>Vt(!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"})}))}))]}))]})),!Ye&&tt.length>0&&t.jsx(S.default,{className:"p-4 pb-0",isDisabled:Ye}),t.jsxs("div",Object.assign({className:"relative flex w-full flex-col"},{children:[Ns&&t.jsxs("div",Object.assign({className:A.default("pointer-events-none absolute top-1/2 z-10 flex -translate-y-1/2 select-none items-center gap-x-2",Ae?"right-4":"left-4")},{children:[t.jsx("span",{className:"h-2 w-2 animate-pulse rounded-full bg-c-secondary",style:{backgroundColor:null!==(he=_e.accent)&&void 0!==he?he:"#ff0000"}}),t.jsx("span",Object.assign({className:"text-sm text-c-secondary font-semilight",style:{color:_e.text+"90"}},{children:(null==Ee?void 0:Ee.listening)||"Listening..."}))]})),t.jsx(O.default,Object.assign({ref:Yt,className:A.default(bs.i1,"py-3.5 max-h-60 px-4 w-full border-transparent bg-transparent",!bt.trim()&&!bt.includes("\n")&&"overflow-hidden text-ellipsis whitespace-nowrap placeholder:whitespace-normal placeholder:overflow-visible",Ae?"text-right":"text-left",Us&&"mb-12"),value:bt,placeholder:Ns?"":Ts,onChange:e=>{xt(e)},onKeyDown:e=>{Te||lt||"Enter"===e.key&&(e.shiftKey||(e.preventDefault(),st||St||(Ye?ln():dn())))},onPaste:t=>e.__awaiter(void 0,void 0,void 0,(function*(){const e=Array.from(t.clipboardData.files||[]);if(e.length>0){if(!Ss)return;t.preventDefault(),Re(!1),yield it(e)}}))},Y&&{onFocus:Y},J&&{onBlur:J},{dir:Ae?"rtl":"ltr"})),t.jsx("div",Object.assign({ref:Jt,className:A.default("flex items-center gap-2 absolute z-2 transition-all duration-200 ease-in-out",Us?"bottom-3 right-2":"right-0 top-1/2 -translate-y-1/2"),style:Object.assign(Object.assign({},!Us&&xs.backgroundColor&&{backgroundColor:xs.backgroundColor}),{borderTopRightRadius:ke.cornerRadius+"px",borderBottomRightRadius:ke.cornerRadius+"px"})},{children:Ye?t.jsxs(t.Fragment,{children:[t.jsx("button",Object.assign({"aria-label":(null==Ee?void 0:Ee["stop-response"])||"Stop response",className:"flex h-8 w-8 items-center justify-center rounded-full outline-none transition-colors duration-200 ease-in-out",onClick:()=>{const e=Wt.current;e&&(on(e),rn(e)),Qe("idle")},style:{backgroundColor:_e.accent+"10",color:_e.accent}},{children:t.jsx(I.default,{className:"h-4 w-4 shrink-0"})})),t.jsx("button",Object.assign({"aria-label":(null==Ee?void 0:Ee["queue-message"])||"Queue message",className:"flex h-8 w-8 items-center mr-2 justify-center rounded-full outline-none transition-colors duration-200 ease-in-out disabled:cursor-default",disabled:St||st||!bt.trim(),onClick:ln,style:{backgroundColor:bt.trim()?_e.accent:_e.accent+"10",color:bt.trim()?_e.accentText:_e.accent+"80"}},{children:t.jsx(b.default,{className:A.default("h-6 w-6 shrink-0",Ae&&"scale-x-[-1] transform")})}))]}):is?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:ls,style:{backgroundColor:_e.accent,color:_e.accentText}},{children:t.jsx(I.default,{className:"h-4 w-4 shrink-0"})})):t.jsxs(t.Fragment,{children:[Ss&&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:ms?_e.accent+"10":void 0,color:ms?_e.accent:_e.accent+"80"},disabled:st||Ye,onClick:()=>{var e;return null===(e=Xt.current)||void 0===e?void 0:e.click()}},fs,{children:[t.jsx("input",{id:"file-upload",ref:Xt,type:"file",accept:[...g.allowedFileMimeTypes,...g.allowedImageMimeTypes,...g.additionalAllowedFileExtensions].join(", "),multiple:!0,hidden:!0,className:"hidden",onChange:t=>e.__awaiter(void 0,void 0,void 0,(function*(){Re(!1),yield it(Array.from(t.target.files||[])),t.target.value=""}))}),t.jsx(h.default,{className:"h-6 w-6 shrink-0"})]})),Os&&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:is?_e.accent:vs?_e.accent+"10":void 0,color:is?_e.accentText:vs?_e.accent:_e.accent+"80"},disabled:st||Ye||rs,onClick:()=>{is?ls():(Kt.current=bt,as(Ce||"en-US"))}},hs,{children:t.jsx(x.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:cs||nn?_e.accent:_e.accent+"10",color:cs||nn?_e.accentText:_e.accent+"80"},disabled:!nn,onClick:()=>dn()},us,{children:t.jsx(b.default,{className:A.default("h-6 w-6 shrink-0",Ae&&"scale-x-[-1] transform")})}))]})}))]}))]})),nt&&t.jsx(N.default,{error:nt,className:"mt-3"})]}))}))}));Y.displayName="Input",exports.default=Y;
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("../../../_virtual/_tslib.js"),t=require("react/jsx-runtime"),s=require("../../../common/actionApproval.js"),n=require("react"),i=require("../../../hooks/pickaxe/usePickaxeContext.js"),r=require("../../../hooks/pickaxe/useResponseContext.js"),o=require("../../../hooks/studio/useStyleInput.js"),a=require("../../../hooks/studio/useStyleFontSize.js"),l=require("../../../hooks/pickaxe/useConversation.js"),d=require("../../../hooks/pickaxe/useDimensionContext.js"),c=require("../Addons/Auth/hooks/useAuthContext.js"),u=require("../Addons/Document/hooks/useDocument.js"),p=require("../Addons/Scroll/hooks/useScroll.js"),m=require("../Addons/Artifact/hooks/useArtifactContext.js"),f=require("../../../hooks/core/useHover.js"),g=require("../../../hooks/core/useMediaQuery.js"),v=require("../../../common/documents.js"),h=require("eventsource-parser"),b=require("../../Icons/attach-vertical.svg.js"),x=require("../../Icons/arrow-right.svg.js"),y=require("../../Icons/microphone.svg.js"),I=require("../../Icons/message-clock.svg.js"),j=require("../../Icons/stop.svg.js"),w=require("../../Icons/trash.svg.js"),S=require("../../Icons/pencil.svg.js"),O=require("../Addons/Document/List.js"),N=require("../../Core/Textarea.js"),k=require("../../Core/ErrorAlert.js"),_=require("../../Core/Menu/index.js"),E=require("../../Core/Menu/Button.js"),C=require("../../Core/Menu/List.js"),T=require("../../../common/error.js"),U=require("../../../common/api/pickaxe.js"),A=require("../../../common/validation.js"),P=require("../../../common/cn.js"),D=require("../../../common/utils.js"),L=require("../../../common/pickaxeConfig.js"),q=require("../../../common/agentPrefill.js"),R=require("../../../common/deploymentWebhooks.js"),M=require("../../../hooks/studio/useStudio.js"),F=require("../../../hooks/pickaxe/useSpeechToText.js"),V=require("../common/PickaxeCommon.js");const $=(e,t)=>{const s=e.find((e=>e.id===t));return s?e.filter((e=>e.id!==t)).map((e=>e.predecessorSubmissionId===t?Object.assign(Object.assign({},e),{predecessorSubmissionId:s.predecessorSubmissionId}):e)):e},B=e=>"string"==typeof e&&e.trim().length>0,X=()=>"undefined"!=typeof crypto&&"randomUUID"in crypto?crypto.randomUUID():`submission-${Date.now()}-${Math.random().toString(36).slice(2)}`,K=e=>e.map((e=>Object.assign({},e))),H=e=>e instanceof Error&&("AbortError"===e.name||"BodyStreamBuffer was aborted"===e.message),W=(e,t)=>{if(e&&"object"==typeof e)return e[t]},z=(e,t)=>{const s=W(e,t);return B(s)?s:null},G=e=>{const t=Number(e);return Number.isFinite(t)?t:void 0},Y=({studioUser:e,deploymentId:t,portalId:s})=>{var n,i;const r=Array.isArray(W(e,"uses"))?W(e,"uses"):[],o=(({deploymentId:e,portalId:t})=>B(e)?{type:"deployment",id:e}:B(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}},J=n.forwardRef((({resubmitPrompt:W,onFocus:J,onBlur:Q,onInputHeightChange:Z,initSmitheryAuthData:ee},te)=>{var se,ne,ie,re,oe,ae,le,de,ce,ue,pe,me,fe,ge,ve,he,be;const{origin:xe,pickaxeId:ye,sessionId:Ie,sender:je,senderType:we,portalId:Se,deploymentId:Oe,deploymentType:Ne,pickaxe:ke,styles:_e,colors:Ee,translations:Ce,locale:Te,forceMobile:Ue,isNewChat:Ae,isRtl:Pe,isEmbed:De,isShowFeedbackMessage:Le,accessGroup:qe,setIsNewChat:Re,setIsShowIceBreaker:Me,setValidationStatus:Fe,setValidationUpgradeGroups:Ve,setValidationUpgradeUrl:$e,setAccessGroup:Be,onUpgrade:Xe,onGenerateComplete:Ke}=i.usePickaxeContext(),{token:He,isLoggedOut:We,isSent:ze,isPricingAuth:Ge}=c.useAuthContext(),{messages:Ye,isGenerating:Je,setMessages:Qe,setStatus:Ze,setLimitData:et,setError:tt,setActionApprovalToken:st}=r.useResponseContext(),{documents:nt,isUploading:it,documentError:rt,onFileUpload:ot,setDocuments:at,setDocumentError:lt}=u.useDocument(),{studio:dt}=M.useStudio(),[ct]=g.useMediaQuery("(max-width: 480px)"),{scrollStartSession:ut,scrollEndSession:pt,scrollToBottom:mt}=p.useScroll({auto:!0,smooth:!(Ue||ct)}),{artifacts:ft,currentPopupType:gt,setArtifacts:vt,setCurrentArtifact:ht}=m.useArtifactContext(),{height:bt}=d.useDimensionContext(),xt=l.useConversation(),[yt,It]=n.useState((()=>q.readAgentPrefill([Oe,ye]).chatInput)),[jt,wt]=n.useState(!1),[St,Ot]=n.useState(!1),[Nt,kt]=n.useState(!1),[_t,Et]=n.useState([]),[Ct,Tt]=n.useState(!1),[Ut,At]=n.useState(null),[Pt,Dt]=n.useState(null),[Lt,qt]=n.useState(null),[Rt,Mt]=n.useState(null),[Ft,Vt]=n.useState(!1),[$t,Bt]=n.useState(!1),[Xt,Kt]=n.useState(0),Ht=n.useRef(null),Wt=n.useRef(""),zt=n.useRef(null),Gt=n.useRef(null),Yt=n.useRef(null),Jt=n.useRef([]),Qt=n.useRef(null),Zt=n.useRef(null),es=n.useRef(null),ts=n.useRef(null),ss=n.useRef(new Set),ns=n.useRef(null),is=Math.max(.4*bt,100),{speechTranscript:rs,isSpeechListening:os,isSpeechProcessing:as,isSpeechSupported:ls,onStartListening:ds,onStopListening:cs}=F.useSpeechToText(),us=f.useHover(),{isHover:ps}=us,ms=e.__rest(us,["isHover"]),fs=f.useHover(),{isHover:gs}=fs,vs=e.__rest(fs,["isHover"]),hs=f.useHover(),{isHover:bs}=hs,xs=e.__rest(hs,["isHover"]),ys=a.useStyleFontSize(),Is=o.useStyleInput(),js="undefined"!=typeof window?window.location.hostname:"",ws="undefined"!=typeof window?window.location.href:"",Ss="undefined"!=typeof window&&window.self!==window.top,Os=js.includes("pickaxe.co")&&!ws.includes("https://studio.pickaxe.co/_embed")&&!Ss,Ns=null!==(ne=null===(se=null==ke?void 0:ke.documentuploadtype)||void 0===se?void 0:se.startsWith("enduserupload"))&&void 0!==ne&&ne,ks=ls&&(null==ke?void 0:ke.enablevoicetotext),_s=os&&!yt.trim(),Es=B(Oe),Cs="chat-input"===Ne&&Ae&&!ze,Ts="chat-input"===Ne&&Ge&&We&&ze,Us=n.useCallback((e=>{const t=A.getValidationFailure(e);return!!t&&(tt(""),et(null),Fe(t.status),Be(t.accessGroup),Ve(t.upgradeGroups),$e(t.upgradeUrl),!0)}),[tt,st,et,Fe,Ve,$e,Be]),As=null!==(ie=null==ke?void 0:ke.placeholdertext)&&void 0!==ie?ie:Pe?"بماذا تريد أن تتحدث؟":(null==Ce?void 0:Ce["what-do-you-want-to-talk-about"])||"What do you want to talk about?",Ps=jt||St,Ds=n.useCallback((()=>e.__awaiter(void 0,void 0,void 0,(function*(){Vt(!1);try{const e=yield fetch(`${process.env.NEXT_PUBLIC_PICKAXE_API2_URL}/user`,Object.assign(Object.assign({method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(Object.assign({studioId:null==ke?void 0:ke.studioid},He?{studioSessionToken:He}:je?{sender:je}:{sender:D.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}})),Os&&{credentials:"include"})),t=yield e.json();(null==t?void 0:t.studioUser)&&(qt(t.studioUser),Mt(t.url))}catch(e){console.error("Failed to fetch studio user:",e)}finally{Vt(!0)}}))),[Os,null==ke?void 0:ke.studioid,je,He]);n.useEffect((()=>{Ds()}),[Ds]);const Ls=Number(null!==(re=null==qe?void 0:qe.limit)&&void 0!==re?re:0),qs="string"==typeof(null==qe?void 0:qe.limitInterval)?qe.limitInterval:null,Rs=!!(null==dt?void 0:dt.data.usage)&&dt.data.usage.isCredits,Ms=n.useMemo((()=>{var e,t,s,n,i;return null!==(i=null!==(n=null!==(s=null!==(t=null!==(e=null!=Se?Se:z(Lt,"portalId"))&&void 0!==e?e:z(Lt,"portalid"))&&void 0!==t?t:z(qe,"portalId"))&&void 0!==s?s:z(qe,"portalid"))&&void 0!==n?n:z(ke,"portalId"))&&void 0!==i?i:z(ke,"portalid")}),[qe,Se,ke,Lt]),Fs=n.useMemo((()=>Y({studioUser:Lt,deploymentId:Oe,portalId:Ms})),[Oe,Ms,Lt]);n.useEffect((()=>{Es&&Ae&&Ie&&ss.current.add(Ie)}),[Ae,Ie,Es]);const Vs=n.useCallback((()=>{var e,t,s;return{studioId:null==ke?void 0:ke.studioid,userEmail:z(Lt,"email"),userId:null!==(e=z(Lt,"userId"))&&void 0!==e?e:z(Lt,"userid"),sessionId:Ie,deploymentId:Oe,deploymentType:Ne,portalId:Ms,accessGroupId:null!==(t=null==qe?void 0:qe.accessGroupId)&&void 0!==t?t:null,pickaxeId:ye,sender:je,senderType:we,origin:xe,metadata:null!==(s=L.getPickaxeConfigMetadata(Oe))&&void 0!==s?s:null}}),[null==qe?void 0:qe.accessGroupId,Oe,Ne,xe,null==ke?void 0:ke.studioid,ye,Ms,je,we,Ie,Lt]),$s=n.useCallback((()=>!!(Es&&Ft&&Ie)&&(!!ss.current.has(Ie)&&(R.fireDeploymentSessionInitializedWebhook(Vs()),ss.current.delete(Ie),!0))),[Vs,Ft,Ie,Es]);n.useEffect((()=>{if(!Ft||!Ie)return;$s();const e=ns.current;(null==e?void 0:e.sessionId)===Ie&&(R.fireDeploymentFirstMessageSubmittedWebhook(Object.assign(Object.assign(Object.assign({},e),Vs()),{message:e.message,documentIds:e.documentIds,uploadedModelImages:e.uploadedModelImages,hasUploadedDocuments:e.hasUploadedDocuments,isHidden:e.isHidden})),ns.current=null)}),[$s,Vs,Ft,Ie]);const Bs={currentUses:G(null==Lt?void 0:Lt.currentUses),extraUses:G(null==Lt?void 0:Lt.extraUses)},Xs=Fs.scope?{currentUses:null!==(ae=G(null===(oe=Fs.record)||void 0===oe?void 0:oe.currentUses))&&void 0!==ae?ae:0,extraUses:null!==(de=G(null===(le=Fs.record)||void 0===le?void 0:le.extraUses))&&void 0!==de?de:0}:{currentUses:0,extraUses:0},Ks=z(Lt,"type"),Hs="guest"===Ks||!Ks&&We?Xs:Bs;n.useEffect((()=>{let t=!0;return e.__awaiter(void 0,void 0,void 0,(function*(){var e;if(Rs&&(null===(e=null==dt?void 0:dt.data)||void 0===e?void 0:e.workspaceId))try{const e=yield U.pickaxeApi2.get(`/cost_per_run?workspaceId=${dt.data.workspaceId}`,{withCredentials:!1});t&&Kt(1e4*(Number(e.data.costPerRun)||0))}catch(e){console.error("Failed to fetch average cost per run:",e),t&&Kt(0)}else t&&Kt(0)})),()=>{t=!1}}),[Rs,null===(ce=null==dt?void 0:dt.data)||void 0===ce?void 0:ce.workspaceId]);const Ws=(({currentUses:e,extraUses:t,limit:s,limitInterval:n})=>{const i=Number(null!=e?e:0),r=Number(null!=t?t:0);return s===V.STUDIO_INFINITY_VALUE||r===V.STUDIO_INFINITY_VALUE?V.STUDIO_INFINITY_VALUE:"one_time"===n?Math.max(0,r-i):Math.max(0,s-i)+r})({currentUses:Hs.currentUses,extraUses:Hs.extraUses,limit:Ls,limitInterval:qs}),zs=Ws===V.STUDIO_INFINITY_VALUE?V.STUDIO_INFINITY_VALUE:Math.max(0,Math.ceil(Ws)),Gs=(({extraUses:e,limit:t,limitInterval:s})=>{const n=Number(null!=e?e:0);return t===V.STUDIO_INFINITY_VALUE||n===V.STUDIO_INFINITY_VALUE?V.STUDIO_INFINITY_VALUE:"one_time"===s?Math.max(0,n):Math.max(0,t)+Math.max(0,n)})({extraUses:Hs.extraUses,limit:Ls,limitInterval:qs}),Ys=Gs===V.STUDIO_INFINITY_VALUE?V.STUDIO_INFINITY_VALUE:Math.ceil(.05*Gs),Js=Rs?Math.ceil(5*Xt):5,Qs=Ys===V.STUDIO_INFINITY_VALUE?V.STUDIO_INFINITY_VALUE:Math.max(Ys,Js),Zs=n.useMemo((()=>!!Lt&&(!$t&&(zs!==V.STUDIO_INFINITY_VALUE&&zs<=Qs))),[$t,Qs,zs,Lt]),en=Boolean(null==qe?void 0:qe.hideUpgradeOptions),tn=Boolean(!en&&((null===(ue=null==qe?void 0:qe.upgrade)||void 0===ue?void 0:ue.isBuyMoreUses)||(null===(pe=null==qe?void 0:qe.upgrade)||void 0===pe?void 0:pe.isLinkToCustomURL)||(null===(me=null==qe?void 0:qe.upgrade)||void 0===me?void 0:me.isUpgradeToAnotherGroup)&&(null===(fe=qe.upgrade.accessGroupIds)||void 0===fe?void 0:fe.length))),sn=!en&&(null===(ge=null==qe?void 0:qe.upgrade)||void 0===ge?void 0:ge.isLinkToCustomURL)&&"string"==typeof qe.upgrade.limitLink&&qe.upgrade.limitLink.trim().length>0?qe.upgrade.limitLink.trim():null,nn=sn&&"string"==typeof(null===(ve=null==qe?void 0:qe.upgrade)||void 0===ve?void 0:ve.limitCTA)&&qe.upgrade.limitCTA.trim().length>0?qe.upgrade.limitCTA:(null==Ce?void 0:Ce["pricing.upgrade"])||(null==Ce?void 0:Ce.upgrade)||"Upgrade",rn=n.useMemo((()=>{var e,t,s;return!!Ae&&(!!ke&&(!xt.isLoading&&(!((null!==(t=null===(e=xt.data)||void 0===e?void 0:e.messages.length)&&void 0!==t?t:0)>1)&&(!!(null===(s=ke.icebreakers)||void 0===s?void 0:s.length)&&(!Le&&!Cs)))))}),[ke,Ae,Le,Cs,xt.data,xt.isLoading]),on=n.useMemo((()=>{if(it||Nt)return!1;const e=Ns&&nt.length>0&&nt.every((e=>"finished"===e.status));return!(!yt.trim()&&!e)&&nt.every((e=>"finished"===e.status||e.isInsertedAsRaw))}),[Ns,it,Nt,yt,nt]);n.useImperativeHandle(te,(()=>({onSubmit:un}))),n.useEffect((()=>{Me(rn)}),[rn]),n.useEffect((()=>{var e;if(W){const t=Array.from(Ye),s=null===(e=t[t.length-2].parts.find((e=>"text"===e.type)))||void 0===e?void 0:e.content;un(s,!0)}}),[W]),n.useEffect((()=>{if(!es.current||!Z)return;const e=new ResizeObserver((e=>{for(const t of e)Z(t.contentRect.height)}));return e.observe(es.current),()=>{e.disconnect()}}),[Z]),n.useEffect((()=>{if(!os)return;const e=Wt.current?`${Wt.current} `:"";It(`${e}${rs}`)}),[rs,os]),n.useEffect((()=>{if(!Qt.current)return;(()=>{if(!Qt.current)return;let e=Qt.current.scrollHeight>52;yt.includes("\n")||nt.length?e=!0:yt.trim()||(e=!1),wt(e)})()}),[yt,nt]),n.useEffect((()=>{const e=Qt.current,t=Zt.current;if(!e||!t||jt||yt.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=yt||As,document.body.appendChild(i);const r=i.offsetWidth;i.remove();const o=parseFloat(s.paddingLeft)||0,a=parseFloat(s.paddingRight)||0,l=e.clientWidth-o-a-t.offsetWidth;Ot(r>l)}),[yt,jt,As]);const an=t=>e.__awaiter(void 0,void 0,void 0,(function*(){if(!(t=null!=t?t:Gt.current))return!1;const e=K(Jt.current);try{return(yield fetch(`${process.env.NEXT_PUBLIC_PICKAXE_API2_URL}/response/cancel/${t}`,Object.assign({method:"POST",headers:Object.assign(Object.assign({"Content-Type":"application/json"},(!process.env.NODE_ENV||"development"===process.env.NODE_ENV)&&Object.assign({},process.env.NEXT_PUBLIC_PICKAXE_SESSION_TOKEN&&{"x-pickaxe-session-token":process.env.NEXT_PUBLIC_PICKAXE_SESSION_TOKEN})),{"x-request-sent-at":(new Date).toISOString()}),body:JSON.stringify({outputMessageParts:e})},Os&&{credentials:"include"}))).ok}catch(e){return console.warn("Failed to cancel submission",e),!1}})),ln=e=>{Yt.current=e,ts.current&&(ts.current.abort(),ts.current=null),zt.current&&(zt.current.cancel().catch((()=>{})),zt.current=null)},dn=t=>e.__awaiter(void 0,void 0,void 0,(function*(){const e=Date.now()+3e4;for(;Date.now()<e;){try{const e=yield fetch(`${process.env.NEXT_PUBLIC_PICKAXE_API2_URL}/response/status/${t}`,Object.assign({headers:Object.assign({"Cache-Control":"no-cache"},(!process.env.NODE_ENV||"development"===process.env.NODE_ENV)&&Object.assign({},process.env.NEXT_PUBLIC_PICKAXE_SESSION_TOKEN&&{"x-pickaxe-session-token":process.env.NEXT_PUBLIC_PICKAXE_SESSION_TOKEN}))},Os&&{credentials:"include"}));if(e.ok){if((yield e.json()).terminal)return!0}}catch(e){console.warn("Failed to read submission status",e)}yield new Promise((e=>setTimeout(e,250)))}return!1})),cn=()=>{const e=Gt.current;e&&!Nt&&!it&&yt.trim()&&(Et((t=>{var s,n;return[...t,{id:X(),message:yt,predecessorSubmissionId:null!==(n=null===(s=t[t.length-1])||void 0===s?void 0:s.id)&&void 0!==n?n:e}]})),It(""))},un=(t,n=!1,i=!1,r)=>e.__awaiter(void 0,void 0,void 0,(function*(){var e,o,a,l,d;let c=null;try{if(Je&&!i||it)return;const u=nt.filter((e=>"finished"===e.status&&!e.isInsertedAsRaw)),p=u.map((e=>e.documentId)).filter(Boolean),m=u.filter((e=>"image"===e.type)).map((e=>{const t=e.name.split(".").pop()||"";return{documentId:e.documentId,extension:t}})),f=null!=t?t:yt,g=null!==(o=null===(e=null==ke?void 0:ke.documentuploadtype)||void 0===e?void 0:e.startsWith("enduserupload"))&&void 0!==o&&o&&p.length>0;if(!f&&!g)return;tt(""),lt(""),et(null),It(""),Re(!1),Ze("fetching"),ut(),mt();const v=n?Ye.slice(0,Ye.length-1):Ye,b=(e=>e.reduce(((e,t)=>Math.max(e,t.id)),0)+1)(v),x=b+(n?0:1),y={id:x,role:"assistant",parts:[],documentIds:[]},I=[...v,...n?[]:[{id:b,role:"user",parts:[{type:"text",content:f,isVisible:!0}],documentIds:g?p:[]}],y];Qe(I),mt(),g&&at([]);const j=L.getPickaxeConfigMetadata(Oe),w=null!=r?r:X();c=w,Gt.current=w,Yt.current=null,Jt.current=[];const S=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({supportsActionConfirmation:!0,origin:xe,pickaxeId:ye,sessionId:Ie,submissionId:w,senderType:we,value:f},g&&{documentIds:p}),je&&{sender:je}),He&&{studioSessionToken:He}),!He&&!je&&{sender:D.initializeEmbedUserId()}),Ms&&{portalId:Ms}),Oe&&{deploymentId:Oe}),j&&{metadata:j}),g&&m.length>0?{uploadedModelImages:m}:{})),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()})},Os&&{credentials:"include"})),O=yield S.json();if(!O.success){if(O.limitData){const e=new Error(O.error||O.message||(null==Ce?void 0:Ce["failed-to-start-generation"])||"Failed to start generation");throw e.limitData=O.limitData,e}if(Us(O))return;throw new Error(O.error||O.message||(null==Ce?void 0:Ce["failed-to-start-generation"])||"Failed to start generation")}st(null!==(a=O.actionApprovalToken)&&void 0!==a?a:null);const N=null!==(l=O.submissionId)&&void 0!==l?l:w;c=N,Gt.current=N;const k=()=>Yt.current===N;if(k())return;Es&&Ae&&Ie&&ss.current.add(Ie);const _=Object.assign(Object.assign({},Vs()),{message:f,documentIds:g?p:[],uploadedModelImages:g?m:[],hasUploadedDocuments:g,isHidden:n,metadata:null!=j?j:null});Ft?($s(),R.fireDeploymentFirstMessageSubmittedWebhook(_)):ns.current=_,Ze("streaming"),ts.current=new AbortController;const E=[];let C=[...null!=ft?ft:[]],T=0,U=!1,A="";for(;!U;)try{const e=yield fetch(`${process.env.NEXT_PUBLIC_PICKAXE_API2_URL}/response/stream/${N}?index=${T}`,{signal:null===(d=ts.current)||void 0===d?void 0:d.signal,headers:{"Cache-Control":"no-cache",Connection:"keep-alive"}});if(!e.body)throw new Error("No response body");const t=e.body.getReader();zt.current=t;const n=new TextDecoder,i=h.createParser({onEvent:e=>{var t,n;if(k())U=!0;else if(e.event&&"ping"!==e.event&&T++,"stop"!==e.event){if("error"===e.event){const t=JSON.parse(e.data);if(t.limitData)return et(t.limitData),tt(""),void(U=!0);const s=t.error||t.message||(null==Ce?void 0:Ce["something-went-wrong"])||"Something went wrong.";return Us(t)||tt(s),void(U=!0)}if("delta"===e.event){const i=JSON.parse(e.data);if("data-error"===i.type&&ee){const e=i.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 U=!0,ee({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 U=!0,ee({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 U=!0,ee({provider:"smithery",smitheryId:t.qualifiedName,serverId:t.serverId,name:t.name}),new Error("STOP_STREAM");if("unauthorized_composio"===t.type&&t.toolkitSlug&&t.serverId&&t.name)throw U=!0,ee({provider:"composio",toolkitSlug:t.toolkitSlug,serverId:t.serverId,name:t.name}),new Error("STOP_STREAM")}}else if("text-start"===i.type)A="",E.push({type:"text",content:"",isVisible:null===(t=i.isVisible)||void 0===t||t});else if("text-delta"===i.type)A+=i.delta,s.updateStreamTextPart(E,"text",A);else if("text-end"===i.type)A="";else if("reasoning-start"===i.type)A="",E.push({type:"reasoning",content:"",isVisible:null===(n=i.isVisible)||void 0===n||n});else if("reasoning-delta"===i.type)A+=i.delta,s.updateStreamTextPart(E,"reasoning",A);else if("reasoning-end"===i.type)A="";else if(i.type.startsWith("data-")){const e=i;"data-action-approval"===e.type?s.upsertActionApprovalPart(E,e.data):E.push({type:e.type,content:JSON.stringify(e.data),isVisible:!0})}Jt.current=K(E);const r=K(E);Qe((e=>{const t=e.findIndex((e=>e.id===x)),s=Object.assign(Object.assign({},y),{parts:r});return-1===t?[...e,s]:e.map(((e,n)=>n===t?s:e))}))}else if("artifact_created"===e.event){const t=JSON.parse(e.data);C=C.filter((e=>!(e.id===t.id&&e.version===t.version))),C.push(Object.assign(Object.assign({},t),{content:"",status:"streaming"})),vt([...C]),gt.startsWith("inline")||ht({id:t.id,version:t.version})}else if("artifact_updated"===e.event){const t=JSON.parse(e.data);C=C.filter((e=>!(e.id===t.id&&e.version===t.version))),C.push(Object.assign(Object.assign({},t),{content:"",status:"updating"})),vt(C),gt.startsWith("inline")||ht({id:t.id,version:t.version})}else if("artifact_rewrite"===e.event){const t=JSON.parse(e.data);C=C.filter((e=>!(e.id===t.id&&e.version===t.version))),C.push(Object.assign(Object.assign({},t),{content:"",status:"streaming"})),vt(C),gt.startsWith("inline")||ht({id:t.id,version:t.version})}else if("artifact_content"===e.event){const t=JSON.parse(e.data),s=t.token.replace(/\u200B/g,"");C=C.map((e=>e.id===t.id&&e.version===t.version?Object.assign(Object.assign({},e),{content:e.content+s,status:"streaming"}):e)),vt(C)}else if("artifact_finished"===e.event){const t=JSON.parse(e.data);vt(C.map((e=>e.id===t.id?Object.assign(Object.assign({},e),{status:"finished"}):e)))}else if("error"===e.event){const t=JSON.parse(e.data);if(t.limitData)return et(t.limitData),tt(""),void(U=!0);const s=t.error||t.message||(null==Ce?void 0:Ce["something-went-wrong-try-again"])||"Something went wrong, please try again.";if(Us(t))return void(U=!0);tt(s)}else"stop"===e.event&&(U=!0)}else U=!0}});for(;;){if(k()){U=!0,t.cancel().catch((()=>{}));break}const{value:e,done:s}=yield t.read();if(k()){U=!0,t.cancel().catch((()=>{}));break}if(s)break;i.feed(n.decode(e))}U||k()||(yield new Promise((e=>setTimeout(e,1e3))))}catch(e){if("STOP_STREAM"===e.message||H(e)||k())return void(U=!0);console.warn("Stream connection lost, retrying...",e),yield new Promise((e=>setTimeout(e,1e3)))}null==Ke||Ke(Ie)}catch(e){if(H(e))return;if(e.limitData)et(e.limitData),tt("");else{let t=T.default(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."),Us(t)||tt(t)}}finally{const e=!c||Gt.current===c;mt(),e&&(Ze("idle"),pt(),zt.current=null),c&&e&&(Gt.current=null,Jt.current=[]),yield Ds()}}));return n.useEffect((()=>{if(Je||Nt||Ct||0===_t.length)return;const t=_t[0];Tt(!0),At(t.id),e.__awaiter(void 0,void 0,void 0,(function*(){try{if(!(yield dn(t.predecessorSubmissionId)))return void tt((null==Ce?void 0:Ce["queued-message-waiting"])||"A queued message is waiting for the previous response to finish.");Et((e=>e.filter((e=>e.id!==t.id)))),yield un(t.message,!1,!0,t.id)}finally{Tt(!1),At(null)}}))}),[Je,Ct,Nt,_t]),Ts?null:t.jsx("div",Object.assign({className:P.default("flex w-full flex-shrink-0 flex-col items-center",!Cs&&"px-4 pb-8"),dir:Pe?"rtl":"ltr"},{children:t.jsxs("div",Object.assign({className:"flex w-full max-w-[800px] flex-col"},{children:[_t.length>0&&t.jsx("div",Object.assign({className:"mx-3 -mb-3 overflow-hidden border pb-3",style:{borderColor:Ee.text+"18",backgroundColor:null!==(he=Is.backgroundColor)&&void 0!==he?he:Ee.text+"08",color:Ee.text,borderTopLeftRadius:Math.max(_e.cornerRadius-4,12),borderTopRightRadius:Math.max(_e.cornerRadius-4,12)}},{children:_t.map(((s,n)=>{var i;return t.jsxs("div",Object.assign({className:"flex min-h-10 items-center gap-2 px-3 py-2",style:n<_t.length-1?{borderBottom:`1px solid ${Ee.text}12`}:void 0},{children:[t.jsx(I.default,{className:"h-4 w-4 shrink-0 opacity-50","aria-hidden":"true"}),t.jsx("span",Object.assign({className:"min-w-0 flex-1 truncate text-sm",title:s.message},{children:s.message})),Pt===s.id||Ut===s.id?t.jsxs("span",Object.assign({className:"flex shrink-0 items-center gap-1.5 px-2 py-1 text-xs opacity-60","aria-live":"polite"},{children:[t.jsx("span",{className:"h-3 w-3 animate-spin rounded-full border border-current border-r-transparent","aria-hidden":"true"}),Pt===s.id?(null==Ce?void 0:Ce.steering)||"Steering...":(null==Ce?void 0:Ce.starting)||"Starting..."]})):t.jsxs(t.Fragment,{children:[t.jsxs("button",Object.assign({type:"button",className:"shrink-0 rounded-md px-2 py-1 text-xs font-medium opacity-70 transition-opacity hover:opacity-100 disabled:cursor-default disabled:opacity-40",disabled:Nt||!Je,onClick:()=>{(t=>{e.__awaiter(void 0,void 0,void 0,(function*(){const e=Gt.current;if(!e||Nt)return;const s=_t.findIndex((e=>e.id===t.id));if(-1===s)return;kt(!0),Dt(t.id),tt(""),ln(e);let n=!1;try{if(!(yield an(e)))throw new Error((null==Ce?void 0:Ce["failed-to-interrupt-current-response"])||"Failed to interrupt the current response.");if(!(yield dn(e)))throw new Error((null==Ce?void 0:Ce["current-response-still-stopping"])||"The current response is still stopping. Please send your message again in a moment.");Ze("idle"),Et((e=>e.filter((e=>e.id!==t.id)))),n=!0,kt(!1),Dt(null),yield un(t.message,!1,!0,t.id)}catch(e){Ze("idle"),n&&Et((e=>{if(e.some((e=>e.id===t.id)))return e;const n=[...e];return n.splice(s,0,t),n})),tt(T.default(e))}finally{kt(!1),Dt(null)}}))})(s)},"aria-label":`${(null==Ce?void 0:Ce["steer-with"])||"Steer with"}: ${s.message}`},{children:[t.jsx("span",Object.assign({"aria-hidden":"true"},{children:"↳ "})),(null==Ce?void 0:Ce.steer)||"Steer"]})),t.jsx("button",Object.assign({type:"button",className:"flex h-7 w-7 shrink-0 items-center justify-center rounded-md opacity-50 transition-opacity hover:opacity-100 disabled:cursor-default disabled:opacity-30",disabled:Nt,onClick:()=>{return e=s.id,void Et((t=>$(t,e)));var e},"aria-label":`${(null==Ce?void 0:Ce["remove-queued-message"])||"Remove queued message"}: ${s.message}`},{children:t.jsx(w.default,{className:"h-4 w-4","aria-hidden":"true"})})),t.jsxs(_.default,Object.assign({id:`queued-message-menu-${s.id}`,className:"shrink-0"},{children:[t.jsx(E.default,Object.assign({className:"flex h-7 w-7 items-center justify-center rounded-md opacity-50 transition-opacity hover:opacity-100",isDisabled:Nt,role:"button",tabIndex:Nt?-1:0,"aria-haspopup":"menu","aria-label":(null==Ce?void 0:Ce["more-options"])||"More options",onKeyDown:e=>{"Enter"!==e.key&&" "!==e.key||(e.preventDefault(),e.currentTarget.click())}},{children:t.jsxs("svg",Object.assign({viewBox:"0 0 24 24",className:"h-4 w-4",fill:"currentColor","aria-hidden":"true"},{children:[t.jsx("circle",{cx:"5",cy:"12",r:"1.6"}),t.jsx("circle",{cx:"12",cy:"12",r:"1.6"}),t.jsx("circle",{cx:"19",cy:"12",r:"1.6"})]}))})),t.jsx(C.default,Object.assign({role:"menu",align:Pe?"bottom-start":"bottom-end",positionStrategy:De?"absolute":"fixed",width:"auto",className:"p-1 text-sm shadow-xl",style:{backgroundColor:null!==(i=Is.backgroundColor)&&void 0!==i?i:Ee.primary,color:Ee.text,borderRadius:"12px"},border:`1px solid ${Ee.text}20`},{children:t.jsxs("button",Object.assign({type:"button",role:"menuitem",className:"flex min-w-36 items-center gap-2 rounded-lg px-3 py-2 text-left transition-colors hover:bg-black/5 dark:hover:bg-white/10",onClick:()=>(e=>{Et((t=>$(t,e.id))),It(e.message),requestAnimationFrame((()=>{const t=Qt.current;t&&(t.focus(),t.setSelectionRange(e.message.length,e.message.length))}))})(s)},{children:[t.jsx(S.default,{className:"h-4 w-4 shrink-0"}),(null==Ce?void 0:Ce["edit-message"])||"Edit message"]}))}))]}))]})]}),s.id)}))})),t.jsxs("div",Object.assign({ref:es,className:P.default("relative z-10 flex flex-col w-full justify-end gap-y-3 py-[3px]","block"===_e.formFieldStyle&&"shadow"),style:Object.assign(Object.assign({},Is),{maxHeight:`${is}px`,overflowY:"auto"})},{children:[Zs&&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:Is.backgroundColor?`${Is.backgroundColor}E6`:void 0,borderColor:Ee.text+"20",color:Ee.text,borderTopRightRadius:_e.cornerRadius+"px",borderTopLeftRadius:_e.cornerRadius+"px"}},{children:[t.jsx("div",Object.assign({className:"flex items-center gap-2 text-sm font-medium"},{children:t.jsxs("span",{children:[zs.toLocaleString()," ",Rs?(null==Ce?void 0:Ce.credits)||"Credits":(null==Ce?void 0:Ce.uses)||"Uses"," ",(null==Ce?void 0:Ce.remaining)||"remaining"]})})),t.jsxs("div",Object.assign({className:"flex items-center gap-3"},{children:[tn&&t.jsx("button",Object.assign({className:"rounded-md px-3 py-1.5 text-xs font-semibold transition-opacity hover:opacity-90",style:{backgroundColor:Ee.accent,color:Ee.accentText},onClick:e=>{if(e.preventDefault(),e.stopPropagation(),sn)return void window.open(sn,"_blank","noopener,noreferrer");if(Xe)return void Xe();const t=D.buildUpgradeUrl({baseUrl:Rt,accessGroupId:null==qe?void 0:qe.accessGroupId});t&&D.openAuthenticatedPricingUrl({deploymentId:Oe,pricingUrl:t,studioId:null==ke?void 0:ke.studioid,studioSessionToken:He})}},{children:nn})),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:()=>Bt(!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"})}))}))]}))]})),!Je&&nt.length>0&&t.jsx(O.default,{className:"p-4 pb-0",isDisabled:Je}),t.jsxs("div",Object.assign({className:"relative flex w-full flex-col"},{children:[_s&&t.jsxs("div",Object.assign({className:P.default("pointer-events-none absolute top-1/2 z-10 flex -translate-y-1/2 select-none items-center gap-x-2",Pe?"right-4":"left-4")},{children:[t.jsx("span",{className:"h-2 w-2 animate-pulse rounded-full bg-c-secondary",style:{backgroundColor:null!==(be=Ee.accent)&&void 0!==be?be:"#ff0000"}}),t.jsx("span",Object.assign({className:"text-sm text-c-secondary font-semilight",style:{color:Ee.text+"90"}},{children:(null==Ce?void 0:Ce.listening)||"Listening..."}))]})),t.jsx(N.default,Object.assign({ref:Qt,className:P.default(ys.i1,"py-3.5 max-h-60 px-4 w-full border-transparent bg-transparent",!yt.trim()&&!yt.includes("\n")&&"overflow-hidden text-ellipsis whitespace-nowrap placeholder:whitespace-normal placeholder:overflow-visible",Pe?"text-right":"text-left",Ps&&"mb-12"),value:yt,placeholder:_s?"":As,onChange:e=>{It(e)},onKeyDown:e=>{Ue||ct||"Enter"===e.key&&(e.shiftKey||(e.preventDefault(),it||Nt||(Je?cn():un())))},onPaste:t=>e.__awaiter(void 0,void 0,void 0,(function*(){const e=Array.from(t.clipboardData.files||[]);if(e.length>0){if(!Ns)return;t.preventDefault(),Re(!1),yield ot(e)}}))},J&&{onFocus:J},Q&&{onBlur:Q},{dir:Pe?"rtl":"ltr"})),t.jsx("div",Object.assign({ref:Zt,className:P.default("flex items-center gap-2 absolute z-2 transition-all duration-200 ease-in-out",Ps?"bottom-3 right-2":"right-0 top-1/2 -translate-y-1/2"),style:Object.assign(Object.assign({},!Ps&&Is.backgroundColor&&{backgroundColor:Is.backgroundColor}),{borderTopRightRadius:_e.cornerRadius+"px",borderBottomRightRadius:_e.cornerRadius+"px"})},{children:Je?t.jsxs(t.Fragment,{children:[t.jsx("button",Object.assign({"aria-label":(null==Ce?void 0:Ce["stop-response"])||"Stop response",className:"flex h-8 w-8 items-center justify-center rounded-full outline-none transition-colors duration-200 ease-in-out",onClick:()=>{const e=Gt.current;e&&(ln(e),an(e)),Ze("idle")},style:{backgroundColor:Ee.accent+"10",color:Ee.accent}},{children:t.jsx(j.default,{className:"h-4 w-4 shrink-0"})})),t.jsx("button",Object.assign({"aria-label":(null==Ce?void 0:Ce["queue-message"])||"Queue message",className:"flex h-8 w-8 items-center mr-2 justify-center rounded-full outline-none transition-colors duration-200 ease-in-out disabled:cursor-default",disabled:Nt||it||!yt.trim(),onClick:cn,style:{backgroundColor:yt.trim()?Ee.accent:Ee.accent+"10",color:yt.trim()?Ee.accentText:Ee.accent+"80"}},{children:t.jsx(x.default,{className:P.default("h-6 w-6 shrink-0",Pe&&"scale-x-[-1] transform")})}))]}):os?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:cs,style:{backgroundColor:Ee.accent,color:Ee.accentText}},{children:t.jsx(j.default,{className:"h-4 w-4 shrink-0"})})):t.jsxs(t.Fragment,{children:[Ns&&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:gs?Ee.accent+"10":void 0,color:gs?Ee.accent:Ee.accent+"80"},disabled:it||Je,onClick:()=>{var e;return null===(e=Ht.current)||void 0===e?void 0:e.click()}},vs,{children:[t.jsx("input",{id:"file-upload",ref:Ht,type:"file",accept:[...v.allowedFileMimeTypes,...v.allowedImageMimeTypes,...v.additionalAllowedFileExtensions].join(", "),multiple:!0,hidden:!0,className:"hidden",onChange:t=>e.__awaiter(void 0,void 0,void 0,(function*(){Re(!1),yield ot(Array.from(t.target.files||[])),t.target.value=""}))}),t.jsx(b.default,{className:"h-6 w-6 shrink-0"})]})),ks&&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:os?Ee.accent:bs?Ee.accent+"10":void 0,color:os?Ee.accentText:bs?Ee.accent:Ee.accent+"80"},disabled:it||Je||as,onClick:()=>{os?cs():(Wt.current=yt,ds(Te||"en-US"))}},xs,{children:t.jsx(y.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:ps||on?Ee.accent:Ee.accent+"10",color:ps||on?Ee.accentText:Ee.accent+"80"},disabled:!on,onClick:()=>un()},ms,{children:t.jsx(x.default,{className:P.default("h-6 w-6 shrink-0",Pe&&"scale-x-[-1] transform")})}))]})}))]}))]})),rt&&t.jsx(k.default,{error:rt,className:"mt-3"})]}))}))}));J.displayName="Input",exports.default=J;
@@ -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("../../Addons/Auth/hooks/useAuthContext.js"),o=require("../../../../hooks/pickaxe/useResponseContext.js"),r=require("../../Addons/Document/hooks/useDocument.js"),a=require("../../Addons/Scroll/hooks/useScroll.js"),l=require("../../Addons/Artifact/hooks/useArtifactContext.js"),d=require("../../../../common/utils.js"),u=require("@nem035/gpt-3-encoder"),c=require("eventsource-parser"),p=require("../../common/PickaxeBranding.js"),g=require("../../common/PickaxeButton.js"),m=require("../../../../common/error.js"),f=require("../../../../common/validation.js");exports.default=({questions:v,resetQuestions:h})=>{var b;const{origin:x,pickaxeId:j,sender:y,senderType:O,portalId:w,deploymentId:S,pickaxe:C,misc:I,translations:k,isRtl:q,setSessionId:_,setIsNewChat:E,setValidationStatus:P,setValidationUpgradeGroups:A,setValidationUpgradeUrl:N,setAccessGroup:T,onGenerateComplete:D}=n.usePickaxeContext(),{token:U}=i.useAuthContext(),{isGenerating:L,setResponse:R,setMessages:B,setStatus:J,setLimitData:V,setError:K,setIsSwitchedToChat:W}=o.useResponseContext(),{documents:X,websiteLink:G,isUploading:F,onWebsiteUpload:M,setDocuments:$,setDocumentError:z}=r.useDocument(),{scrollStartSession:Q,scrollEndSession:Y,scrollToTarget:H}=a.useScroll({auto:!(null==C?void 0:C.enablechatresponses)}),{artifacts:Z,currentPopupType:ee,setArtifacts:te,setCurrentArtifact:se}=l.useArtifactContext(),[ne,ie]=s.useState(!1),oe=s.useRef(null),re=e=>{const t=f.getValidationFailure(e);return!!t&&(K(""),V(null),P(t.status),T(t.accessGroup),A(t.upgradeGroups),N(t.upgradeUrl),!0)},ae=s.useMemo((()=>v.some((e=>("Short Answer"===e.type||"Long Answer"===e.type||"long"===e.type||"short"===e.type||"Checkbox"===e.type||"Knowledge Upload"===e.type||e.id.includes("documentupload"))&&e.input.length>0))),[v]);return t.jsxs("div",Object.assign({className:"mt-4 flex flex-wrap justify-between gap-4 items-center",dir:q?"rtl":"ltr"},{children:[t.jsxs("div",Object.assign({className:"flex items-center flex-grow flex-wrap gap-2"},{children:[t.jsx(g.default,Object.assign({className:"px-5 min-h-[42px]",isDisabled:F||L||ne,onClick:()=>e.__awaiter(void 0,void 0,void 0,(function*(){var e,t,s;try{if(L||F||ne)return;K(""),z(""),V(null),R(null);const n=["Multiple Choice","Checkbox"];for(const e of v){if(u.encode(e.input).length>e.maxLength&&!n.includes(e.type))throw new Error((null==k?void 0:k["response-too-long"])||"One or more of your responses is too long!");if(e.isRequired&&!e.input.trim()&&"userinput:documentupload"!==e.id)throw new Error((null==k?void 0:k["required-fields-missing"])||"You must fill out all required fields.")}const i=X.filter((e=>"finished"===e.status)),o=X.map((e=>e.name)),r=null!==(t=null===(e=null==C?void 0:C.documentuploadtype)||void 0===e?void 0:e.startsWith("enduserupload"))&&void 0!==t&&t,a=v.some((e=>"userinput:documentupload"===e.id&&e.isRequired)),l=d.extractUrlsFromText(G).filter((e=>!o.includes(e)));if(l.length){const e=l[l.length-1];ie(!0);const t=yield M(e);t&&(i.push(t),yield new Promise((e=>setTimeout(e,5e3)))),ie(!1)}else if(a&&r&&!i.length)return void z((null==k?void 0:k["document-upload-required"])||"Please paste a valid website/video link or drag a file to add to the knowledge base.");const p=i.map((e=>e.documentId||"")).filter(Boolean),g=r&&p.length>0,m={};v.forEach((e=>{m[e.id]="Knowledge Upload"===e.type||e.id.includes("documentupload")?i.map((e=>e.name)).join(",")||"":e.input})),J("fetching"),Q(),H();const f=yield fetch(`${process.env.NEXT_PUBLIC_PICKAXE_API2_URL}/response/submit`,{method:"POST",headers:Object.assign(Object.assign({"Content-Type":"application/json"},process.env.NEXT_PUBLIC_PICKAXE_SESSION_TOKEN&&{"x-pickaxe-session-token":process.env.NEXT_PUBLIC_PICKAXE_SESSION_TOKEN}),{"x-request-sent-at":(new Date).toISOString()}),body:JSON.stringify(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({origin:x,pickaxeId:j,senderType:O,valueObj:m},g&&{documentIds:p}),y&&{sender:y}),U&&{studioSessionToken:U}),!U&&!y&&{sender:d.initializeEmbedUserId()}),w&&{portalId:w}),S&&{deploymentId:S}))}),h=yield f.json();if(!h.success){const e=new Error(h.error||h.message||(null==k?void 0:k["failed-to-start-generation"])||"Failed to start generation");if(h.limitData)throw e.limitData=h.limitData,e;if(re(h))return;throw e}if(!h.submissionId||!h.sessionId)throw new Error((null==k?void 0:k["failed-to-start-generation"])||"Failed to start generation");const b=h.submissionId,I=h.sessionId,q={sessionId:I,documentIds:g?p:[],question:{inputs:v.map((e=>({id:e.id,question:e.main,answer:e.input}))),responseParts:[]},messageCount:0,sentAt:new Date};R(q),(null==C?void 0:C.enablechatresponses)&&(_(I),E(!1),W(!0),B([{id:0,role:"assistant",parts:[],documentIds:[]}])),g&&$([]),J("streaming"),oe.current=new AbortController;const P=[];let A=[...null!=Z?Z:[]],N=0,T=!1,Y="";for(;!T;)try{const e=yield fetch(`${process.env.NEXT_PUBLIC_PICKAXE_API2_URL}/response/stream/${b}?index=${N}`,{signal:null===(s=oe.current)||void 0===s?void 0:s.signal,headers:{"Cache-Control":"no-cache",Connection:"keep-alive"}});if(!e.body)throw new Error("No response body");const t=e.body.getReader(),n=new TextDecoder,i=c.createParser({onEvent:e=>{var t,s;if(e.event&&"ping"!==e.event&&N++,"stop"!==e.event){if("error"===e.event){const t=JSON.parse(e.data);if(t.limitData)return V(t.limitData),K(""),void(T=!0);const s=t.error||t.message||(null==k?void 0:k["something-went-wrong"])||"Something went wrong.";return re(t)||K(s),void(T=!0)}if("delta"===e.event){const n=JSON.parse(e.data);if("text-start"===n.type)Y="",P.push({type:"text",content:"",isVisible:null===(t=n.isVisible)||void 0===t||t});else if("text-delta"===n.type)Y+=n.delta,P[P.length-1].content=Y;else if("text-end"===n.type)Y="";else if("reasoning-start"===n.type)Y="",P.push({type:"reasoning",content:"",isVisible:null===(s=n.isVisible)||void 0===s||s});else if("reasoning-delta"===n.type)Y+=n.delta,P[P.length-1].content=Y;else if("reasoning-end"===n.type)Y="";else if(n.type.startsWith("data-")){const e=n;P.push({type:e.type,content:JSON.stringify(e.data),isVisible:!0})}const i=Object.assign(Object.assign({},q),{question:Object.assign(Object.assign({},q.question),{responseParts:[...P]})});R(i),(null==C?void 0:C.enablechatresponses)&&B([{id:0,role:"assistant",parts:[...P],documentIds:[]}])}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"})),te([...A]),ee.startsWith("inline")||se({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"})),te([...A]),ee.startsWith("inline")||se({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"})),te([...A]),ee.startsWith("inline")||se({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)),te([...A])}else if("artifact_finished"===e.event){const t=JSON.parse(e.data);te(A.map((e=>e.id===t.id?Object.assign(Object.assign({},e),{status:"finished"}):e)))}}else T=!0}});for(;;){const{value:e,done:s}=yield t.read();if(s)break;i.feed(n.decode(e))}T||(yield new Promise((e=>setTimeout(e,1e3))))}catch(e){if(e instanceof Error&&"AbortError"===e.name)return void(T=!0);console.warn("Stream connection lost, retrying...",e),yield new Promise((e=>setTimeout(e,1e3)))}null==D||D(I)}catch(e){if((e=>e instanceof Error&&Boolean(e.limitData))(e))return V(e.limitData),K(""),void H();let t=m.default(e)||"";t&&!t.includes("Unexpected token 'A',")||(t=(null==k?void 0:k["high-traffic-try-again-later"])||"Oops! We're experiencing high traffic at the moment. Please try again later."),re(t)||K(t),H()}finally{J("idle"),ie(!1),Y()}}))},{children:ne?(null==k?void 0:k.processing)||"Processing...":F?(null==k?void 0:k.uploading)||"Uploading...":L?(null==k?void 0:k.loading)||"Loading...":null!==(b=null==C?void 0:C.submittext)&&void 0!==b?b:"Submit"})),ae&&t.jsx(g.default,Object.assign({variant:"transparent-text",className:"min-h-[42px] px-5",isDisabled:F||L||ne,onClick:h},{children:(null==k?void 0:k["form.clear-form"])||(null==k?void 0:k["clear-form"])||"Clear form"}))]})),!I.isWhiteLabel&&t.jsx(p.default,{containerClassName:"justify-end"})]}))};
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("../../../../_virtual/_tslib.js"),t=require("react/jsx-runtime"),s=require("../../../../common/actionApproval.js"),i=require("react"),n=require("../../../../hooks/pickaxe/usePickaxeContext.js"),o=require("../../Addons/Auth/hooks/useAuthContext.js"),r=require("../../../../hooks/pickaxe/useResponseContext.js"),a=require("../../Addons/Document/hooks/useDocument.js"),l=require("../../Addons/Scroll/hooks/useScroll.js"),d=require("../../Addons/Artifact/hooks/useArtifactContext.js"),u=require("../../../../common/utils.js"),c=require("@nem035/gpt-3-encoder"),p=require("eventsource-parser"),m=require("../../common/PickaxeBranding.js"),g=require("../../common/PickaxeButton.js"),f=require("../../../../common/error.js"),v=require("../../../../common/validation.js");exports.default=({questions:h,resetQuestions:b})=>{var x;const{origin:j,pickaxeId:y,sender:O,senderType:w,portalId:S,deploymentId:C,pickaxe:I,misc:k,translations:A,isRtl:P,setSessionId:q,setIsNewChat:_,setValidationStatus:E,setValidationUpgradeGroups:N,setValidationUpgradeUrl:T,setAccessGroup:D,onGenerateComplete:U}=n.usePickaxeContext(),{token:L}=o.useAuthContext(),{isGenerating:R,setResponse:B,setMessages:J,setStatus:V,setLimitData:K,setError:W,setActionApprovalToken:X,setIsSwitchedToChat:G}=r.useResponseContext(),{documents:F,websiteLink:M,isUploading:$,onWebsiteUpload:z,setDocuments:Q,setDocumentError:Y}=a.useDocument(),{scrollStartSession:H,scrollEndSession:Z,scrollToTarget:ee}=l.useScroll({auto:!(null==I?void 0:I.enablechatresponses)}),{artifacts:te,currentPopupType:se,setArtifacts:ie,setCurrentArtifact:ne}=d.useArtifactContext(),[oe,re]=i.useState(!1),ae=i.useRef(null),le=e=>{const t=v.getValidationFailure(e);return!!t&&(W(""),K(null),E(t.status),D(t.accessGroup),N(t.upgradeGroups),T(t.upgradeUrl),!0)},de=i.useMemo((()=>h.some((e=>("Short Answer"===e.type||"Long Answer"===e.type||"long"===e.type||"short"===e.type||"Checkbox"===e.type||"Knowledge Upload"===e.type||e.id.includes("documentupload"))&&e.input.length>0))),[h]);return t.jsxs("div",Object.assign({className:"mt-4 flex flex-wrap justify-between gap-4 items-center",dir:P?"rtl":"ltr"},{children:[t.jsxs("div",Object.assign({className:"flex items-center flex-grow flex-wrap gap-2"},{children:[t.jsx(g.default,Object.assign({className:"px-5 min-h-[42px]",isDisabled:$||R||oe,onClick:()=>e.__awaiter(void 0,void 0,void 0,(function*(){var e,t,i,n;try{if(R||$||oe)return;W(""),Y(""),K(null),B(null);const o=["Multiple Choice","Checkbox"];for(const e of h){if(c.encode(e.input).length>e.maxLength&&!o.includes(e.type))throw new Error((null==A?void 0:A["response-too-long"])||"One or more of your responses is too long!");if(e.isRequired&&!e.input.trim()&&"userinput:documentupload"!==e.id)throw new Error((null==A?void 0:A["required-fields-missing"])||"You must fill out all required fields.")}const r=F.filter((e=>"finished"===e.status)),a=F.map((e=>e.name)),l=null!==(t=null===(e=null==I?void 0:I.documentuploadtype)||void 0===e?void 0:e.startsWith("enduserupload"))&&void 0!==t&&t,d=h.some((e=>"userinput:documentupload"===e.id&&e.isRequired)),m=u.extractUrlsFromText(M).filter((e=>!a.includes(e)));if(m.length){const e=m[m.length-1];re(!0);const t=yield z(e);t&&(r.push(t),yield new Promise((e=>setTimeout(e,5e3)))),re(!1)}else if(d&&l&&!r.length)return void Y((null==A?void 0:A["document-upload-required"])||"Please paste a valid website/video link or drag a file to add to the knowledge base.");const g=r.map((e=>e.documentId||"")).filter(Boolean),f=l&&g.length>0,v={};h.forEach((e=>{v[e.id]="Knowledge Upload"===e.type||e.id.includes("documentupload")?r.map((e=>e.name)).join(",")||"":e.input})),V("fetching"),H(),ee();const b=yield fetch(`${process.env.NEXT_PUBLIC_PICKAXE_API2_URL}/response/submit`,{method:"POST",headers:Object.assign(Object.assign({"Content-Type":"application/json"},process.env.NEXT_PUBLIC_PICKAXE_SESSION_TOKEN&&{"x-pickaxe-session-token":process.env.NEXT_PUBLIC_PICKAXE_SESSION_TOKEN}),{"x-request-sent-at":(new Date).toISOString()}),body:JSON.stringify(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({supportsActionConfirmation:!0,origin:j,pickaxeId:y,senderType:w,valueObj:v},f&&{documentIds:g}),O&&{sender:O}),L&&{studioSessionToken:L}),!L&&!O&&{sender:u.initializeEmbedUserId()}),S&&{portalId:S}),C&&{deploymentId:C}))}),x=yield b.json();if(!x.success){const e=new Error(x.error||x.message||(null==A?void 0:A["failed-to-start-generation"])||"Failed to start generation");if(x.limitData)throw e.limitData=x.limitData,e;if(le(x))return;throw e}if(!x.submissionId||!x.sessionId)throw new Error((null==A?void 0:A["failed-to-start-generation"])||"Failed to start generation");X(null!==(i=x.actionApprovalToken)&&void 0!==i?i:null);const k=x.submissionId,P=x.sessionId,E={sessionId:P,documentIds:f?g:[],question:{inputs:h.map((e=>({id:e.id,question:e.main,answer:e.input}))),responseParts:[]},messageCount:0,sentAt:new Date};B(E),(null==I?void 0:I.enablechatresponses)&&(q(P),_(!1),G(!0),J([{id:0,role:"assistant",parts:[],documentIds:[]}])),f&&Q([]),V("streaming"),ae.current=new AbortController;const N=[];let T=[...null!=te?te:[]],D=0,Z=!1,de="";for(;!Z;)try{const e=yield fetch(`${process.env.NEXT_PUBLIC_PICKAXE_API2_URL}/response/stream/${k}?index=${D}`,{signal:null===(n=ae.current)||void 0===n?void 0:n.signal,headers:{"Cache-Control":"no-cache",Connection:"keep-alive"}});if(!e.body)throw new Error("No response body");const t=e.body.getReader(),i=new TextDecoder,o=p.createParser({onEvent:e=>{var t,i;if(e.event&&"ping"!==e.event&&D++,"stop"!==e.event){if("error"===e.event){const t=JSON.parse(e.data);if(t.limitData)return K(t.limitData),W(""),void(Z=!0);const s=t.error||t.message||(null==A?void 0:A["something-went-wrong"])||"Something went wrong.";return le(t)||W(s),void(Z=!0)}if("delta"===e.event){const n=JSON.parse(e.data);if("text-start"===n.type)de="",N.push({type:"text",content:"",isVisible:null===(t=n.isVisible)||void 0===t||t});else if("text-delta"===n.type)de+=n.delta,s.updateStreamTextPart(N,"text",de);else if("text-end"===n.type)de="";else if("reasoning-start"===n.type)de="",N.push({type:"reasoning",content:"",isVisible:null===(i=n.isVisible)||void 0===i||i});else if("reasoning-delta"===n.type)de+=n.delta,s.updateStreamTextPart(N,"reasoning",de);else if("reasoning-end"===n.type)de="";else if(n.type.startsWith("data-")){const e=n;"data-action-approval"===e.type?s.upsertActionApprovalPart(N,e.data):N.push({type:e.type,content:JSON.stringify(e.data),isVisible:!0})}const o=Object.assign(Object.assign({},E),{question:Object.assign(Object.assign({},E.question),{responseParts:[...N]})});B(o),(null==I?void 0:I.enablechatresponses)&&J([{id:0,role:"assistant",parts:[...N],documentIds:[]}])}else if("artifact_created"===e.event){const t=JSON.parse(e.data);T=T.filter((e=>!(e.id===t.id&&e.version===t.version))),T.push(Object.assign(Object.assign({},t),{content:"",status:"streaming"})),ie([...T]),se.startsWith("inline")||ne({id:t.id,version:t.version})}else if("artifact_updated"===e.event){const t=JSON.parse(e.data);T=T.filter((e=>!(e.id===t.id&&e.version===t.version))),T.push(Object.assign(Object.assign({},t),{content:"",status:"updating"})),ie([...T]),se.startsWith("inline")||ne({id:t.id,version:t.version})}else if("artifact_rewrite"===e.event){const t=JSON.parse(e.data);T=T.filter((e=>!(e.id===t.id&&e.version===t.version))),T.push(Object.assign(Object.assign({},t),{content:"",status:"streaming"})),ie([...T]),se.startsWith("inline")||ne({id:t.id,version:t.version})}else if("artifact_content"===e.event){const t=JSON.parse(e.data),s=t.token.replace(/\u200B/g,"");T=T.map((e=>e.id===t.id&&e.version===t.version?Object.assign(Object.assign({},e),{content:e.content+s,status:"streaming"}):e)),ie([...T])}else if("artifact_finished"===e.event){const t=JSON.parse(e.data);ie(T.map((e=>e.id===t.id?Object.assign(Object.assign({},e),{status:"finished"}):e)))}}else Z=!0}});for(;;){const{value:e,done:s}=yield t.read();if(s)break;o.feed(i.decode(e))}Z||(yield new Promise((e=>setTimeout(e,1e3))))}catch(e){if(e instanceof Error&&"AbortError"===e.name)return void(Z=!0);console.warn("Stream connection lost, retrying...",e),yield new Promise((e=>setTimeout(e,1e3)))}null==U||U(P)}catch(e){if((e=>e instanceof Error&&Boolean(e.limitData))(e))return K(e.limitData),W(""),void ee();let t=f.default(e)||"";t&&!t.includes("Unexpected token 'A',")||(t=(null==A?void 0:A["high-traffic-try-again-later"])||"Oops! We're experiencing high traffic at the moment. Please try again later."),le(t)||W(t),ee()}finally{V("idle"),re(!1),Z()}}))},{children:oe?(null==A?void 0:A.processing)||"Processing...":$?(null==A?void 0:A.uploading)||"Uploading...":R?(null==A?void 0:A.loading)||"Loading...":null!==(x=null==I?void 0:I.submittext)&&void 0!==x?x:"Submit"})),de&&t.jsx(g.default,Object.assign({variant:"transparent-text",className:"min-h-[42px] px-5",isDisabled:$||R||oe,onClick:b},{children:(null==A?void 0:A["form.clear-form"])||(null==A?void 0:A["clear-form"])||"Clear form"}))]})),!k.isWhiteLabel&&t.jsx(m.default,{containerClassName:"justify-end"})]}))};
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("react/jsx-runtime"),t=require("react");const s=t.createContext({});exports.ResponseContext=s,exports.default=({limits:i,children:r})=>{const[a,u]=t.useState("idle"),[n,o]=t.useState([]),[c,l]=t.useState(null),[d,S]=t.useState(null),[h,m]=t.useState(!1),[p,x]=t.useState(!1),[g,j]=t.useState("");return e.jsx(s.Provider,Object.assign({value:{messages:n,response:c,status:a,limits:i,limitData:d,error:g,isGenerating:"fetching"===a||"streaming"===a,isGuestLimitReached:h,isSwitchedToChat:p,setMessages:o,setResponse:l,setStatus:u,setLimitData:S,setError:j,setIsGuestLimitReached:m,setIsSwitchedToChat:x}},{children:r}))};
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("react/jsx-runtime"),t=require("../../hooks/pickaxe/useActionApprovals.js"),s=require("react");const i=s.createContext({});exports.ResponseContext=i,exports.default=({limits:r,children:a})=>{const[o,n]=s.useState("idle"),u=t.useActionApprovals("streaming"===o),[c,l]=s.useState([]),[p,d]=s.useState(null),[h,m]=s.useState(null),[S,v]=s.useState(!1),[x,g]=s.useState(!1),[A,j]=s.useState("");return e.jsx(i.Provider,Object.assign({value:{messages:c,response:p,status:o,limits:r,limitData:h,error:A,isGenerating:"fetching"===o||"streaming"===o,isGuestLimitReached:S,isSwitchedToChat:x,setMessages:l,setResponse:d,setStatus:n,setLimitData:m,setError:j,setActionApprovalToken:u.setToken,actionApproval:u,setIsGuestLimitReached:v,setIsSwitchedToChat:g}},{children:a}))};
@@ -0,0 +1 @@
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("react/jsx-runtime"),s=require("../../../../common/actionApproval.js");exports.ActionApprovalPart=function({content:n,isStreaming:i=!1,approval:t}){var a;const r=s.parseActionApproval(n);if(!r)return null;const o=null!==(a=null==t?void 0:t.decisions[r.id])&&void 0!==a?a:r.status,l="pending"===o&&i&&(null==t?void 0:t.enabled)&&1e3*r.expiresAt>Date.now(),d=Boolean(null==t?void 0:t.busyId),c="pending"===o?l?"Confirmation needed":"Confirmation unavailable":{approved:"Approved",declined:"Declined",expired:"Expired",cancelled:"Not run"}[o];let p=r.arguments;try{p&&(p=JSON.stringify(JSON.parse(p),null,2))}catch(e){}return e.jsxs("section",Object.assign({"aria-label":`Action: ${r.name}`,className:"my-2 w-full min-w-0 rounded-xl border p-4 text-sm",style:{borderColor:"color-mix(in srgb, currentColor 20%, transparent)"}},{children:[e.jsxs("div",Object.assign({className:"flex flex-wrap items-center justify-between gap-2"},{children:[e.jsx("span",Object.assign({className:"break-words font-semibold"},{children:r.name})),e.jsx("span",Object.assign({role:"status",className:"rounded-full border px-2 py-0.5 text-xs"},{children:c}))]})),l&&e.jsx("p",Object.assign({className:"mt-2 opacity-70"},{children:"Review this action before it runs. Your decision applies only to this call."})),p&&e.jsxs("details",Object.assign({className:"mt-3",open:"pending"===o},{children:[e.jsx("summary",Object.assign({className:"cursor-pointer text-xs font-medium"},{children:"Action inputs"})),e.jsx("pre",Object.assign({className:"mt-2 max-h-64 overflow-auto whitespace-pre-wrap break-words rounded-lg bg-black/5 p-3 text-xs"},{children:p}))]})),l&&e.jsxs("div",Object.assign({className:"mt-4 flex flex-wrap justify-end gap-2"},{children:[e.jsx("button",Object.assign({type:"button",className:"rounded-lg border px-3 py-2 font-semibold transition-opacity hover:opacity-70 disabled:opacity-50",disabled:d,onClick:()=>{null==t||t.decide(r.id,"declined")}},{children:"Decline"})),e.jsx("button",Object.assign({type:"button",className:"rounded-lg border px-3 py-2 font-semibold transition-opacity hover:opacity-70 disabled:opacity-50",disabled:d,onClick:()=>{null==t||t.decide(r.id,"approved")}},{children:"Approve action"}))]})),(null==t?void 0:t.errors[r.id])&&e.jsx("p",Object.assign({role:"alert",className:"mt-2 text-xs"},{children:t.errors[r.id]}))]}))};
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("react/jsx-runtime"),n=require("react"),r=require("../PickaxeMarkdown/Renderer.js"),s=require("../PickaxeMarkdown/Components/A/FilePreview.js"),i=require("../../../../common/utils.js"),t=require("../../../../common/cn.js");const a=n.lazy((()=>Promise.resolve().then((function(){return require("./TextPart/index.js")})))),o=n.lazy((()=>Promise.resolve().then((function(){return require("./ReasoningPart/index.js")})))),l=n.lazy((()=>Promise.resolve().then((function(){return require("./ActionToolCaptionPart/index.js")})))),u=n.lazy((()=>Promise.resolve().then((function(){return require("./ReasoningCaptionPart/index.js")})))),c=/(!?)\[([^\]\n]+)\]\((https?:\/\/[^\s)]+|www\.[^\s)]+)\)/g,d=e=>{const n=new Set;for(const r of e){if("data-tool-assets"!==r.type)continue;const e=i.safeJSONParse(r.content);if(null==e?void 0:e.assets)for(const r of e.assets)r.value&&!s.isGeneratedFileUrl(r.value)&&n.add(s.normalizeMarkdownUrl(r.value))}return n};exports.default=({className:p,parts:f,isStreaming:v=!1})=>{const m=n.useRef(new Set);m.current=new Set;const x=d(f),w=f.reduce(((e,n,r)=>n.isVisible?r:e),-1);return e.jsx("div",Object.assign({className:t.default("flex flex-col gap-2",p)},{children:e.jsx(n.Suspense,Object.assign({fallback:e.jsx("div",{})},{children:f.map(((n,t)=>{if(!n.isVisible)return null;if("text"===n.type){const i=((e,n,r)=>{var i,t;const a=[];let o=0;for(const l of e.matchAll(c)){const u=null!==(i=l.index)&&void 0!==i?i:0,c=l[0],d="!"===l[1],p=null===(t=l[2])||void 0===t?void 0:t.trim(),f=l[3],v=s.getFilePreviewInfo(f);if(!v)continue;if(s.shouldSuppressRichPreviewForUrl(v.url,r))continue;u>o&&a.push({type:"markdown",value:e.slice(o,u)});const m=p&&s.normalizeMarkdownUrl(p)!==v.url?p:void 0;s.shouldRenderFilePreview(v,n)?a.push({type:"preview",key:`${v.url}-${u}`,fileInfo:v,displayName:m}):a.push({type:"markdown",value:d?c:`[${p||v.fileName}](${v.url})`}),o=u+c.length}return o<e.length&&a.push({type:"markdown",value:e.slice(o)}),a.length?a:[{type:"markdown",value:e}]})(n.content,m,x);return e.jsx(a,{children:i.map(((n,i)=>"preview"===n.type?e.jsx(s.default,{fileInfo:n.fileInfo,displayName:n.displayName},n.key):n.value?e.jsx(r.PickaxeMarkdownRenderer,{value:n.value,filePreviewSeenRef:m,suppressedRichPreviewUrls:x},i):null))},t)}if("reasoning"===n.type)return e.jsx(o,Object.assign({isReasoning:t===f.length-1},{children:e.jsx(r.PickaxeMarkdownRenderer,{value:n.content,suppressedRichPreviewUrls:x})}),t);if("data-action-tool-caption"===n.type){const r=i.safeJSONParse(n.content),s=t===w;return e.jsx(l,Object.assign({},r&&r,{isLoading:v&&s,isVisible:s}),t)}if("data-reasoning-caption"===n.type){const r=i.safeJSONParse(n.content),s=t===w;return e.jsx(u,Object.assign({},r&&r,{isLoading:v&&s,isVisible:s}),t)}return null}))}))}))},exports.getSuppressedRichPreviewUrls=d;
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("react/jsx-runtime"),n=require("./ActionApprovalPart.js"),r=require("../../../../hooks/pickaxe/useResponseContext.js"),s=require("react"),t=require("../PickaxeMarkdown/Renderer.js"),i=require("../PickaxeMarkdown/Components/A/FilePreview.js"),o=require("../../../../common/utils.js"),a=require("../../../../common/cn.js");const l=s.lazy((()=>Promise.resolve().then((function(){return require("./TextPart/index.js")})))),u=s.lazy((()=>Promise.resolve().then((function(){return require("./ReasoningPart/index.js")})))),c=s.lazy((()=>Promise.resolve().then((function(){return require("./ActionToolCaptionPart/index.js")})))),p=s.lazy((()=>Promise.resolve().then((function(){return require("./ReasoningCaptionPart/index.js")})))),d=/(!?)\[([^\]\n]+)\]\((https?:\/\/[^\s)]+|www\.[^\s)]+)\)/g,f=e=>{const n=new Set;for(const r of e){if("data-tool-assets"!==r.type)continue;const e=o.safeJSONParse(r.content);if(null==e?void 0:e.assets)for(const r of e.assets)r.value&&!i.isGeneratedFileUrl(r.value)&&n.add(i.normalizeMarkdownUrl(r.value))}return n};exports.default=({className:v,parts:x,isStreaming:j=!1,actionApproval:m})=>{const{actionApproval:w}=r.useResponseContext(),P=null!=m?m:w,h=s.useRef(new Set);h.current=new Set;const g=f(x),y=x.reduce(((e,n,r)=>n.isVisible?r:e),-1);return e.jsx("div",Object.assign({className:a.default("flex flex-col gap-2",v)},{children:e.jsx(s.Suspense,Object.assign({fallback:e.jsx("div",{})},{children:x.map(((r,s)=>{if(!r.isVisible)return null;if("data-action-approval"===r.type)return e.jsx(n.ActionApprovalPart,{content:r.content,isStreaming:j,approval:P},s);if("text"===r.type){const n=((e,n,r)=>{var s,t;const o=[];let a=0;for(const l of e.matchAll(d)){const u=null!==(s=l.index)&&void 0!==s?s:0,c=l[0],p="!"===l[1],d=null===(t=l[2])||void 0===t?void 0:t.trim(),f=l[3],v=i.getFilePreviewInfo(f);if(!v)continue;if(i.shouldSuppressRichPreviewForUrl(v.url,r))continue;u>a&&o.push({type:"markdown",value:e.slice(a,u)});const x=d&&i.normalizeMarkdownUrl(d)!==v.url?d:void 0;i.shouldRenderFilePreview(v,n)?o.push({type:"preview",key:`${v.url}-${u}`,fileInfo:v,displayName:x}):o.push({type:"markdown",value:p?c:`[${d||v.fileName}](${v.url})`}),a=u+c.length}return a<e.length&&o.push({type:"markdown",value:e.slice(a)}),o.length?o:[{type:"markdown",value:e}]})(r.content,h,g);return e.jsx(l,{children:n.map(((n,r)=>"preview"===n.type?e.jsx(i.default,{fileInfo:n.fileInfo,displayName:n.displayName},n.key):n.value?e.jsx(t.PickaxeMarkdownRenderer,{value:n.value,filePreviewSeenRef:h,suppressedRichPreviewUrls:g},r):null))},s)}if("reasoning"===r.type)return e.jsx(u,Object.assign({isReasoning:s===x.length-1},{children:e.jsx(t.PickaxeMarkdownRenderer,{value:r.content,suppressedRichPreviewUrls:g})}),s);if("data-action-tool-caption"===r.type){const n=o.safeJSONParse(r.content),t=s===y;return e.jsx(c,Object.assign({},n&&n,{isLoading:j&&t,isVisible:t}),s)}if("data-reasoning-caption"===r.type){const n=o.safeJSONParse(r.content),t=s===y;return e.jsx(p,Object.assign({},n&&n,{isLoading:j&&t,isVisible:t}),s)}return null}))}))}))},exports.getSuppressedRichPreviewUrls=f;
@@ -0,0 +1 @@
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("../../_virtual/_tslib.js"),r=require("react");exports.useActionApprovals=function(t){const[n,s]=r.useState(null),[o,a]=r.useState(null),[i,u]=r.useState({}),[c,l]=r.useState({}),d=r.useRef(null);r.useEffect((()=>(a(null),u({}),l({}),()=>{var e;null===(e=d.current)||void 0===e||e.abort(),d.current=null})),[n,t]);const b=r.useCallback(((r,s)=>e.__awaiter(this,void 0,void 0,(function*(){if(!t||!n||d.current)return;const e=new AbortController;d.current=e;const o=setTimeout((()=>e.abort()),15e3);a(r),u((e=>Object.assign(Object.assign({},e),{[r]:""})));try{const t=yield fetch(`${process.env.NEXT_PUBLIC_PICKAXE_API2_URL}/response/action-approvals/${r}`,{method:"POST",headers:{Authorization:`Bearer ${n}`,"Content-Type":"application/json"},body:JSON.stringify({decision:s}),signal:e.signal});if(!t.ok)throw new Error(409===t.status?"This confirmation has expired or already been resolved.":"Could not save your decision. Please try again.");d.current===e&&l((e=>Object.assign(Object.assign({},e),{[r]:s})))}catch(t){d.current===e&&u((e=>Object.assign(Object.assign({},e),{[r]:t instanceof Error&&"AbortError"!==t.name?t.message:"Could not save your decision. Please try again."})))}finally{clearTimeout(o),d.current===e&&(d.current=null,a(null))}}))),[t,n]);return{setToken:s,enabled:t&&Boolean(n),busyId:o,errors:i,decisions:c,decide:b}};
package/dist/cjs/index.js CHANGED
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("./components/Pickaxe/index.js"),o=require("./components/Pickaxe/Provider.js"),t=require("./components/Pickaxe/ResponseProvider.js"),r=require("./components/Pickaxe/Addons/Scroll/Provider.js"),s=require("./components/Pickaxe/common/PickaxeMarkdown/index.js"),i=require("./components/Pickaxe/common/PickaxeMarkdown/Renderer.js"),n=require("./components/Pickaxe/common/PickaxeMessageParts/index.js"),x=require("./hooks/pickaxe/useConversation.js"),c=require("./hooks/pickaxe/useHistory.js"),a=require("./hooks/pickaxe/usePickaxe.js"),p=require("./hooks/pickaxe/usePickaxeContext.js"),u=require("./hooks/pickaxe/useResponseContext.js"),k=require("./hooks/pickaxe/useDimensionContext.js"),P=require("./hooks/pickaxe/useSubmitDocument.js"),d=require("./components/EmbedPreview/Inline.js"),m=require("./components/EmbedPreview/FAB.js"),C=require("./components/EmbedPreview/Popup.js"),A=require("./components/EmbedPreview/ChatInput.js"),j=require("./components/Pickaxe/Addons/Artifact/index.js"),q=require("./components/Pickaxe/Addons/Artifact/Renderer/index.js"),f=require("./components/Pickaxe/Addons/Artifact/Provider.js"),v=require("./components/Pickaxe/Addons/Artifact/hooks/useArtifactContext.js"),l=require("./components/Pickaxe/Addons/Artifact/hooks/useArtifact.js");exports.Pickaxe=e.Pickaxe,exports.PickaxeContext=o.PickaxeContext,exports.PickaxeProvider=o.PickaxeProvider,exports.ResponseContext=t.ResponseContext,exports.ScrollContext=r.ScrollContext,exports.ScrollProvider=r.ScrollProvider,exports.PickaxeMarkdown=s.PickaxeMarkdown,exports.PickaxeMarkdownContext=s.PickaxeMarkdownContext,exports.PickaxeMarkdownRenderer=i.PickaxeMarkdownRenderer,exports.PickaxeMessageParts=n.default,exports.useConversation=x.useConversation,exports.useHistory=c.useHistory,exports.useInstantPickaxe=a.useInstantPickaxe,exports.usePickaxe=a.usePickaxe,exports.usePickaxeContext=p.usePickaxeContext,exports.useResponseContext=u.useResponseContext,exports.useDimensionContext=k.useDimensionContext,exports.useSubmitDocument=P.useSubmitDocument,exports.Inline=d.Inline,exports.FAB=m.FAB,exports.FABButton=m.FABButton,exports.Popup=C.Popup,exports.PopupCTAButton=C.PopupCTAButton,exports.ChatInput=A.ChatInput,exports.ChatInputWrapper=A.ChatInputWrapper,exports.PickaxeArtifact=j.PickaxeArtifact,exports.PickaxeArtifactRenderer=q.default,exports.ArtifactContext=f.ArtifactContext,exports.ArtifactProvider=f.ArtifactProvider,exports.useArtifactContext=v.useArtifactContext,exports.useArtifact=l.useArtifact;
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("./components/Pickaxe/index.js"),o=require("./components/Pickaxe/Provider.js"),t=require("./components/Pickaxe/ResponseProvider.js"),r=require("./components/Pickaxe/Addons/Scroll/Provider.js"),s=require("./components/Pickaxe/common/PickaxeMarkdown/index.js"),i=require("./components/Pickaxe/common/PickaxeMarkdown/Renderer.js"),n=require("./components/Pickaxe/common/PickaxeMessageParts/index.js"),x=require("./hooks/pickaxe/useConversation.js"),a=require("./hooks/pickaxe/useHistory.js"),c=require("./hooks/pickaxe/usePickaxe.js"),p=require("./hooks/pickaxe/usePickaxeContext.js"),u=require("./hooks/pickaxe/useResponseContext.js"),P=require("./hooks/pickaxe/useDimensionContext.js"),k=require("./hooks/pickaxe/useSubmitDocument.js"),d=require("./components/EmbedPreview/Inline.js"),m=require("./components/EmbedPreview/FAB.js"),A=require("./components/EmbedPreview/Popup.js"),C=require("./components/EmbedPreview/ChatInput.js"),j=require("./components/Pickaxe/Addons/Artifact/index.js"),q=require("./components/Pickaxe/Addons/Artifact/Renderer/index.js"),v=require("./components/Pickaxe/Addons/Artifact/Provider.js"),f=require("./components/Pickaxe/Addons/Artifact/hooks/useArtifactContext.js"),l=require("./components/Pickaxe/Addons/Artifact/hooks/useArtifact.js"),h=require("./components/Pickaxe/common/PickaxeMessageParts/ActionApprovalPart.js");exports.Pickaxe=e.Pickaxe,exports.PickaxeContext=o.PickaxeContext,exports.PickaxeProvider=o.PickaxeProvider,exports.ResponseContext=t.ResponseContext,exports.ScrollContext=r.ScrollContext,exports.ScrollProvider=r.ScrollProvider,exports.PickaxeMarkdown=s.PickaxeMarkdown,exports.PickaxeMarkdownContext=s.PickaxeMarkdownContext,exports.PickaxeMarkdownRenderer=i.PickaxeMarkdownRenderer,exports.PickaxeMessageParts=n.default,exports.useConversation=x.useConversation,exports.useHistory=a.useHistory,exports.useInstantPickaxe=c.useInstantPickaxe,exports.usePickaxe=c.usePickaxe,exports.usePickaxeContext=p.usePickaxeContext,exports.useResponseContext=u.useResponseContext,exports.useDimensionContext=P.useDimensionContext,exports.useSubmitDocument=k.useSubmitDocument,exports.Inline=d.Inline,exports.FAB=m.FAB,exports.FABButton=m.FABButton,exports.Popup=A.Popup,exports.PopupCTAButton=A.PopupCTAButton,exports.ChatInput=C.ChatInput,exports.ChatInputWrapper=C.ChatInputWrapper,exports.PickaxeArtifact=j.PickaxeArtifact,exports.PickaxeArtifactRenderer=q.default,exports.ArtifactContext=v.ArtifactContext,exports.ArtifactProvider=v.ArtifactProvider,exports.useArtifactContext=f.useArtifactContext,exports.useArtifact=l.useArtifact,exports.ActionApprovalPart=h.ActionApprovalPart;
@@ -0,0 +1,16 @@
1
+ import type { PickaxeHistoryMessagePart } from "../types/history";
2
+ export type ActionApprovalStatus = "pending" | "approved" | "declined" | "expired" | "cancelled";
3
+ export type ActionApprovalData = {
4
+ id: string;
5
+ name: string;
6
+ kind: "action" | "mcp";
7
+ pickaxeId: string;
8
+ status: ActionApprovalStatus;
9
+ expiresAt: number;
10
+ arguments?: string;
11
+ };
12
+ export declare function parseActionApproval(content: string): ActionApprovalData | null;
13
+ /** Replace an existing approval in place so decisions never duplicate cards. */
14
+ export declare function upsertActionApprovalPart(parts: PickaxeHistoryMessagePart[], data: ActionApprovalData): void;
15
+ /** Approval updates can arrive while a text/reasoning part is still streaming. */
16
+ export declare function updateStreamTextPart(parts: PickaxeHistoryMessagePart[], type: "text" | "reasoning", content: string): void;
@@ -1,3 +1,4 @@
1
+ import { useActionApprovals } from "../../hooks/pickaxe/useActionApprovals";
1
2
  import type { SetState } from "../../types/common";
2
3
  import type { MemoryStoredChatMessage, MemoryStoredFormResponse } from "../../types/response";
3
4
  import { type ReactNode } from "react";
@@ -27,6 +28,8 @@ type ResponseContextType = {
27
28
  setStatus: SetState<ResponseStatus>;
28
29
  setLimitData: SetState<PickaxeLimitData | null>;
29
30
  setError: SetState<string>;
31
+ actionApproval: ReturnType<typeof useActionApprovals>;
32
+ setActionApprovalToken: (token: string | null) => void;
30
33
  setIsGuestLimitReached: SetState<boolean>;
31
34
  setIsSwitchedToChat: SetState<boolean>;
32
35
  };
@@ -0,0 +1,6 @@
1
+ import type { useActionApprovals } from "../../../../hooks/pickaxe/useActionApprovals";
2
+ export declare function ActionApprovalPart({ content, isStreaming, approval, }: {
3
+ content: string;
4
+ isStreaming?: boolean;
5
+ approval?: ReturnType<typeof useActionApprovals>;
6
+ }): import("react/jsx-runtime").JSX.Element | null;
@@ -1,10 +1,13 @@
1
+ import type { useActionApprovals } from "../../../../hooks/pickaxe/useActionApprovals";
1
2
  import type { PickaxeHistoryMessagePart } from "../../../../types/history";
2
3
  import { type SuppressedRichPreviewUrls } from "../PickaxeMarkdown/Components/A/FilePreview";
3
4
  interface PickaxeMessagePartsProps {
4
5
  className?: string;
5
6
  parts: PickaxeHistoryMessagePart[];
6
7
  isStreaming?: boolean;
8
+ /** Supply the host response controller when rendering outside ResponseProvider. */
9
+ actionApproval?: ReturnType<typeof useActionApprovals>;
7
10
  }
8
11
  export declare const getSuppressedRichPreviewUrls: (parts: PickaxeHistoryMessagePart[]) => SuppressedRichPreviewUrls;
9
- declare const PickaxeMessageParts: ({ className, parts, isStreaming, }: PickaxeMessagePartsProps) => import("react/jsx-runtime").JSX.Element;
12
+ declare const PickaxeMessageParts: ({ className, parts, isStreaming, actionApproval: suppliedActionApproval, }: PickaxeMessagePartsProps) => import("react/jsx-runtime").JSX.Element;
10
13
  export default PickaxeMessageParts;
@@ -0,0 +1,10 @@
1
+ /// <reference types="react" />
2
+ /** The decision capability stays in memory, never in saved response parts. */
3
+ export declare function useActionApprovals(active: boolean): {
4
+ setToken: import("react").Dispatch<import("react").SetStateAction<string | null>>;
5
+ enabled: boolean;
6
+ busyId: string | null;
7
+ errors: Record<string, string>;
8
+ decisions: Record<string, "approved" | "declined">;
9
+ decide: (id: string, decision: "approved" | "declined") => Promise<void>;
10
+ };
@@ -1,3 +1,4 @@
1
+ /// <reference types="react" />
1
2
  export declare const useResponseContext: () => {
2
3
  messages: import("../../types/response").MemoryStoredChatMessage[];
3
4
  response: import("../../types/response").MemoryStoredFormResponse | null;
@@ -13,6 +14,15 @@ export declare const useResponseContext: () => {
13
14
  setStatus: import("../../types/common").SetState<import("../../components/Pickaxe/ResponseProvider").ResponseStatus>;
14
15
  setLimitData: import("../../types/common").SetState<import("../../components/Pickaxe/ResponseProvider").PickaxeLimitData | null>;
15
16
  setError: import("../../types/common").SetState<string>;
17
+ actionApproval: {
18
+ setToken: import("react").Dispatch<import("react").SetStateAction<string | null>>;
19
+ enabled: boolean;
20
+ busyId: string | null;
21
+ errors: Record<string, string>;
22
+ decisions: Record<string, "approved" | "declined">;
23
+ decide: (id: string, decision: "approved" | "declined") => Promise<void>;
24
+ };
25
+ setActionApprovalToken: (token: string | null) => void;
16
26
  setIsGuestLimitReached: import("../../types/common").SetState<boolean>;
17
27
  setIsSwitchedToChat: import("../../types/common").SetState<boolean>;
18
28
  };
@@ -22,3 +22,5 @@ export { default as PickaxeArtifactRenderer } from "./components/Pickaxe/Addons/
22
22
  export * from "./components/Pickaxe/Addons/Artifact/Provider";
23
23
  export * from "./components/Pickaxe/Addons/Artifact/hooks/useArtifactContext";
24
24
  export * from "./components/Pickaxe/Addons/Artifact/hooks/useArtifact";
25
+ export { ActionApprovalPart } from "./components/Pickaxe/common/PickaxeMessageParts/ActionApprovalPart";
26
+ export type { ActionApprovalData, ActionApprovalStatus, } from "./common/actionApproval";
@@ -1,3 +1,4 @@
1
+ import type { ActionApprovalData } from "../common/actionApproval";
1
2
  export type PickaxeHistoryOriginType = "TEST" | "BUILDER" | "PICKAXE" | "STUDIO" | "EMBED" | "EMAIL" | "WHATSAPP" | "MAKE" | "SLACK" | "API";
2
3
  export type PickaxeHistoryPickaxeType = "CHAT" | "FORM";
3
4
  export type PickaxeHistorySenderType = "PICKAXE_USER" | "STUDIO_USER" | "DEPLOYMENT_USER";
@@ -36,7 +37,7 @@ export type PickaxeHistoryMessage = {
36
37
  createdAt: string;
37
38
  area?: PickaxeHistoryMessageArea;
38
39
  };
39
- export type PickaxeHistoryMessagePartsType = "text" | "reasoning" | "data-action-tool-caption" | "data-reasoning-caption" | "data-tool-assets";
40
+ export type PickaxeHistoryMessagePartsType = "data-action-approval" | "text" | "reasoning" | "data-action-tool-caption" | "data-reasoning-caption" | "data-tool-assets";
40
41
  export type PickaxeHistoryMessagePart = {
41
42
  type: PickaxeHistoryMessagePartsType;
42
43
  content: string;
@@ -66,6 +67,9 @@ export type PickaxeHistoryStreamDataReasoningCaption = {
66
67
  caption: string;
67
68
  };
68
69
  };
69
- export type PickaxeHistoryStreamData = PickaxeHistoryStreamDataActionToolCaption | PickaxeHistoryStreamDataReasoningCaption;
70
+ export type PickaxeHistoryStreamData = {
71
+ type: "data-action-approval";
72
+ data: ActionApprovalData;
73
+ } | PickaxeHistoryStreamDataActionToolCaption | PickaxeHistoryStreamDataReasoningCaption;
70
74
  export type PickaxeHistoryStream = PickaxeHistoryStreamPartStartEnd | PickaxeHistoryStreamPartDelta | PickaxeHistoryStreamData;
71
75
  export {};
@@ -0,0 +1 @@
1
+ function n(n){try{const t=JSON.parse(n);return t&&"string"==typeof t.id&&"string"==typeof t.name&&"string"==typeof t.pickaxeId&&"number"==typeof t.expiresAt&&["action","mcp"].includes(t.kind)&&["pending","approved","declined","expired","cancelled"].includes(t.status)&&(void 0===t.arguments||"string"==typeof t.arguments)?t:null}catch(n){return null}}function t(t,e){const i=t.findIndex((t=>{var i;return"data-action-approval"===t.type&&(null===(i=n(t.content))||void 0===i?void 0:i.id)===e.id})),r={type:"data-action-approval",content:JSON.stringify(e),isVisible:!0};i<0?t.push(r):t[i]=r}function e(n,t,e){for(let i=n.length-1;i>=0;i--)if(n[i].type===t)return void(n[i].content=e)}export{n as parseActionApproval,e as updateStreamTextPart,t as upsertActionApprovalPart};