@pickaxeproject/react 6.18.2-beta.0 → 6.19.0-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 (41) hide show
  1. package/dist/cjs/common/formInputOrder.js +1 -0
  2. package/dist/cjs/common/formQuestionValidation.js +1 -0
  3. package/dist/cjs/components/Pickaxe/Chat/Input.js +1 -1
  4. package/dist/cjs/components/Pickaxe/Form/Questions/Submit.js +1 -1
  5. package/dist/cjs/components/Pickaxe/Form/Questions/index.js +1 -1
  6. package/dist/cjs/components/Pickaxe/Provider.js +1 -1
  7. package/dist/cjs/components/Pickaxe/common/EndUserModelPicker.js +1 -0
  8. package/dist/cjs/components/Pickaxe/common/PickaxeMessageParts/ActionApprovalPart.js +1 -1
  9. package/dist/cjs/hooks/pickaxe/useActionApprovals.js +1 -1
  10. package/dist/cjs/hooks/pickaxe/useEndUserModel.js +1 -0
  11. package/dist/cjs/src/common/formInputOrder.d.ts +4 -0
  12. package/dist/cjs/src/common/formQuestionValidation.d.ts +2 -0
  13. package/dist/cjs/src/components/Pickaxe/Form/Questions/Submit.d.ts +5 -1
  14. package/dist/cjs/src/components/Pickaxe/Provider.d.ts +2 -0
  15. package/dist/cjs/src/components/Pickaxe/common/EndUserModelPicker.d.ts +3 -0
  16. package/dist/cjs/src/hooks/pickaxe/useEndUserModel.d.ts +10 -0
  17. package/dist/cjs/src/hooks/pickaxe/usePickaxeContext.d.ts +2 -0
  18. package/dist/cjs/src/types/form.d.ts +2 -0
  19. package/dist/cjs/src/types/history.d.ts +4 -3
  20. package/dist/cjs/src/types/pickaxe.d.ts +18 -0
  21. package/dist/esm/common/formInputOrder.js +1 -0
  22. package/dist/esm/common/formQuestionValidation.js +1 -0
  23. package/dist/esm/components/Pickaxe/Chat/Input.js +1 -1
  24. package/dist/esm/components/Pickaxe/Form/Questions/Submit.js +1 -1
  25. package/dist/esm/components/Pickaxe/Form/Questions/index.js +1 -1
  26. package/dist/esm/components/Pickaxe/Provider.js +1 -1
  27. package/dist/esm/components/Pickaxe/common/EndUserModelPicker.js +1 -0
  28. package/dist/esm/components/Pickaxe/common/PickaxeMessageParts/ActionApprovalPart.js +1 -1
  29. package/dist/esm/hooks/pickaxe/useActionApprovals.js +1 -1
  30. package/dist/esm/hooks/pickaxe/useEndUserModel.js +1 -0
  31. package/dist/esm/src/common/formInputOrder.d.ts +4 -0
  32. package/dist/esm/src/common/formQuestionValidation.d.ts +2 -0
  33. package/dist/esm/src/components/Pickaxe/Form/Questions/Submit.d.ts +5 -1
  34. package/dist/esm/src/components/Pickaxe/Provider.d.ts +2 -0
  35. package/dist/esm/src/components/Pickaxe/common/EndUserModelPicker.d.ts +3 -0
  36. package/dist/esm/src/hooks/pickaxe/useEndUserModel.d.ts +10 -0
  37. package/dist/esm/src/hooks/pickaxe/usePickaxeContext.d.ts +2 -0
  38. package/dist/esm/src/types/form.d.ts +2 -0
  39. package/dist/esm/src/types/history.d.ts +4 -3
  40. package/dist/esm/src/types/pickaxe.d.ts +18 -0
  41. package/package.json +1 -1
@@ -1 +1 @@
1
- import{__rest as e,__awaiter as t}from"../../../_virtual/_tslib.js";import{jsx as n,jsxs as s,Fragment as o}from"react/jsx-runtime";import{updateStreamTextPart as i,upsertActionApprovalPart as r}from"../../../common/actionApproval.js";import{forwardRef as a,useState as l,useRef as d,useCallback as c,useEffect as u,useMemo as m,useImperativeHandle as p}from"react";import{usePickaxeContext as g}from"../../../hooks/pickaxe/usePickaxeContext.js";import{useResponseContext as f}from"../../../hooks/pickaxe/useResponseContext.js";import{useStyleInput as v}from"../../../hooks/studio/useStyleInput.js";import{useStyleFontSize as h}from"../../../hooks/studio/useStyleFontSize.js";import{useConversation as b}from"../../../hooks/pickaxe/useConversation.js";import{useDimensionContext as y}from"../../../hooks/pickaxe/useDimensionContext.js";import{useAuthContext as x}from"../Addons/Auth/hooks/useAuthContext.js";import{useDocument as j}from"../Addons/Document/hooks/useDocument.js";import{useScroll as I}from"../Addons/Scroll/hooks/useScroll.js";import{useArtifactContext as w}from"../Addons/Artifact/hooks/useArtifactContext.js";import{useHover as O}from"../../../hooks/core/useHover.js";import{useMediaQuery as k}from"../../../hooks/core/useMediaQuery.js";import{allowedFileMimeTypes as N,allowedImageMimeTypes as S,additionalAllowedFileExtensions as C}from"../../../common/documents.js";import{createParser as E}from"eventsource-parser";import _ from"../../Icons/attach-vertical.svg.js";import T from"../../Icons/arrow-right.svg.js";import U from"../../Icons/microphone.svg.js";import A from"../../Icons/message-clock.svg.js";import P from"../../Icons/stop.svg.js";import D from"../../Icons/trash.svg.js";import L from"../../Icons/pencil.svg.js";import R from"../Addons/Document/List.js";import M from"../../Core/Textarea.js";import $ from"../../Core/ErrorAlert.js";import B from"../../Core/Menu/index.js";import X from"../../Core/Menu/Button.js";import K from"../../Core/Menu/List.js";import F from"../../../common/error.js";import{pickaxeApi2 as V}from"../../../common/api/pickaxe.js";import{getValidationFailure as G}from"../../../common/validation.js";import H from"../../../common/cn.js";import{buildUpgradeUrl as W,openAuthenticatedPricingUrl as q,initializeEmbedUserId as J}from"../../../common/utils.js";import{getPickaxeConfigMetadata as z}from"../../../common/pickaxeConfig.js";import{readAgentPrefill as Q}from"../../../common/agentPrefill.js";import{fireDeploymentSessionInitializedWebhook as Y,fireDeploymentFirstMessageSubmittedWebhook as Z}from"../../../common/deploymentWebhooks.js";import{useStudio as ee}from"../../../hooks/studio/useStudio.js";import{useSpeechToText as te}from"../../../hooks/pickaxe/useSpeechToText.js";import{STUDIO_INFINITY_VALUE as ne}from"../common/PickaxeCommon.js";const se=(e,t)=>{const n=e.find((e=>e.id===t));return n?e.filter((e=>e.id!==t)).map((e=>e.predecessorSubmissionId===t?Object.assign(Object.assign({},e),{predecessorSubmissionId:n.predecessorSubmissionId}):e)):e},oe=e=>"string"==typeof e&&e.trim().length>0,ie=()=>"undefined"!=typeof crypto&&"randomUUID"in crypto?crypto.randomUUID():`submission-${Date.now()}-${Math.random().toString(36).slice(2)}`,re=e=>e.map((e=>Object.assign({},e))),ae=e=>e instanceof Error&&("AbortError"===e.name||"BodyStreamBuffer was aborted"===e.message),le=(e,t)=>{if(e&&"object"==typeof e)return e[t]},de=(e,t)=>{const n=le(e,t);return oe(n)?n:null},ce=e=>{const t=Number(e);return Number.isFinite(t)?t:void 0},ue=({studioUser:e,deploymentId:t,portalId:n})=>{var s,o;const i=Array.isArray(le(e,"uses"))?le(e,"uses"):[],r=(({deploymentId:e,portalId:t})=>oe(e)?{type:"deployment",id:e}:oe(t)?{type:"portal",id:t}:null)({deploymentId:t,portalId:n});if(!r)return{scope:r,record:null};const a=null!==(o=null!==(s=i.find((e=>e.id===r.id&&e.type===r.type)))&&void 0!==s?s:i.find((e=>e.id===r.id)))&&void 0!==o?o:null;return{scope:r,record:a}},me=a((({resubmitPrompt:a,onFocus:le,onBlur:me,onInputHeightChange:pe,initSmitheryAuthData:ge},fe)=>{var ve,he,be,ye,xe,je,Ie,we,Oe,ke,Ne,Se,Ce,Ee,_e,Te,Ue;const{origin:Ae,pickaxeId:Pe,sessionId:De,sender:Le,senderType:Re,portalId:Me,deploymentId:$e,deploymentType:Be,pickaxe:Xe,styles:Ke,colors:Fe,translations:Ve,locale:Ge,forceMobile:He,isNewChat:We,isRtl:qe,isEmbed:Je,isShowFeedbackMessage:ze,accessGroup:Qe,setIsNewChat:Ye,setIsShowIceBreaker:Ze,setValidationStatus:et,setValidationUpgradeGroups:tt,setValidationUpgradeUrl:nt,setAccessGroup:st,onUpgrade:ot,onGenerateComplete:it}=g(),{token:rt,isLoggedOut:at,isSent:lt,isPricingAuth:dt}=x(),{messages:ct,isGenerating:ut,setMessages:mt,setStatus:pt,setLimitData:gt,setError:ft,setActionApprovalToken:vt}=f(),{documents:ht,isUploading:bt,documentError:yt,onFileUpload:xt,setDocuments:jt,setDocumentError:It}=j(),{studio:wt}=ee(),[Ot]=k("(max-width: 480px)"),{scrollStartSession:kt,scrollEndSession:Nt,scrollToBottom:St}=I({auto:!0,smooth:!(He||Ot)}),{artifacts:Ct,currentPopupType:Et,setArtifacts:_t,setCurrentArtifact:Tt}=w(),{height:Ut}=y(),At=b(),[Pt,Dt]=l((()=>Q([$e,Pe]).chatInput)),[Lt,Rt]=l(!1),[Mt,$t]=l(!1),[Bt,Xt]=l(!1),[Kt,Ft]=l([]),[Vt,Gt]=l(!1),[Ht,Wt]=l(null),[qt,Jt]=l(null),[zt,Qt]=l(null),[Yt,Zt]=l(null),[en,tn]=l(!1),[nn,sn]=l(!1),[on,rn]=l(0),an=d(null),ln=d(""),dn=d(null),cn=d(null),un=d(null),mn=d([]),pn=d(null),gn=d(null),fn=d(null),vn=d(null),hn=d(new Set),bn=d(null),yn=Math.max(.4*Ut,100),{speechTranscript:xn,isSpeechListening:jn,isSpeechProcessing:In,isSpeechSupported:wn,onStartListening:On,onStopListening:kn}=te(),Nn=O(),{isHover:Sn}=Nn,Cn=e(Nn,["isHover"]),En=O(),{isHover:_n}=En,Tn=e(En,["isHover"]),Un=O(),{isHover:An}=Un,Pn=e(Un,["isHover"]),Dn=h(),Ln=v(),Rn="undefined"!=typeof window?window.location.hostname:"",Mn="undefined"!=typeof window?window.location.href:"",$n="undefined"!=typeof window&&window.self!==window.top,Bn=Rn.includes("pickaxe.co")&&!Mn.includes("https://studio.pickaxe.co/_embed")&&!$n,Xn=null!==(he=null===(ve=null==Xe?void 0:Xe.documentuploadtype)||void 0===ve?void 0:ve.startsWith("enduserupload"))&&void 0!==he&&he,Kn=wn&&(null==Xe?void 0:Xe.enablevoicetotext),Fn=jn&&!Pt.trim(),Vn=oe($e),Gn="chat-input"===Be&&We&&!lt,Hn="chat-input"===Be&&dt&&at&&lt,Wn=c((e=>{const t=G(e);return!!t&&(ft(""),gt(null),et(t.status),st(t.accessGroup),tt(t.upgradeGroups),nt(t.upgradeUrl),!0)}),[ft,vt,gt,et,tt,nt,st]),qn=null!==(be=null==Xe?void 0:Xe.placeholdertext)&&void 0!==be?be:qe?"بماذا تريد أن تتحدث؟":(null==Ve?void 0:Ve["what-do-you-want-to-talk-about"])||"What do you want to talk about?",Jn=Lt||Mt,zn=c((()=>t(void 0,void 0,void 0,(function*(){tn(!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==Xe?void 0:Xe.studioid},rt?{studioSessionToken:rt}:Le?{sender:Le}:{sender:J()}))},(!process.env.NODE_ENV||"development"===process.env.NODE_ENV)&&Object.assign({},process.env.NEXT_PUBLIC_PICKAXE_SESSION_TOKEN&&{headers:{"Content-Type":"application/json","x-pickaxe-session-token":process.env.NEXT_PUBLIC_PICKAXE_SESSION_TOKEN}})),Bn&&{credentials:"include"})),t=yield e.json();(null==t?void 0:t.studioUser)&&(Qt(t.studioUser),Zt(t.url))}catch(e){console.error("Failed to fetch studio user:",e)}finally{tn(!0)}}))),[Bn,null==Xe?void 0:Xe.studioid,Le,rt]);u((()=>{zn()}),[zn]);const Qn=Number(null!==(ye=null==Qe?void 0:Qe.limit)&&void 0!==ye?ye:0),Yn="string"==typeof(null==Qe?void 0:Qe.limitInterval)?Qe.limitInterval:null,Zn=!!(null==wt?void 0:wt.data.usage)&&wt.data.usage.isCredits,es=m((()=>{var e,t,n,s,o;return null!==(o=null!==(s=null!==(n=null!==(t=null!==(e=null!=Me?Me:de(zt,"portalId"))&&void 0!==e?e:de(zt,"portalid"))&&void 0!==t?t:de(Qe,"portalId"))&&void 0!==n?n:de(Qe,"portalid"))&&void 0!==s?s:de(Xe,"portalId"))&&void 0!==o?o:de(Xe,"portalid")}),[Qe,Me,Xe,zt]),ts=m((()=>ue({studioUser:zt,deploymentId:$e,portalId:es})),[$e,es,zt]);u((()=>{Vn&&We&&De&&hn.current.add(De)}),[We,De,Vn]);const ns=c((()=>{var e,t,n;return{studioId:null==Xe?void 0:Xe.studioid,userEmail:de(zt,"email"),userId:null!==(e=de(zt,"userId"))&&void 0!==e?e:de(zt,"userid"),sessionId:De,deploymentId:$e,deploymentType:Be,portalId:es,accessGroupId:null!==(t=null==Qe?void 0:Qe.accessGroupId)&&void 0!==t?t:null,pickaxeId:Pe,sender:Le,senderType:Re,origin:Ae,metadata:null!==(n=z($e))&&void 0!==n?n:null}}),[null==Qe?void 0:Qe.accessGroupId,$e,Be,Ae,null==Xe?void 0:Xe.studioid,Pe,es,Le,Re,De,zt]),ss=c((()=>!!(Vn&&en&&De)&&(!!hn.current.has(De)&&(Y(ns()),hn.current.delete(De),!0))),[ns,en,De,Vn]);u((()=>{if(!en||!De)return;ss();const e=bn.current;(null==e?void 0:e.sessionId)===De&&(Z(Object.assign(Object.assign(Object.assign({},e),ns()),{message:e.message,documentIds:e.documentIds,uploadedModelImages:e.uploadedModelImages,hasUploadedDocuments:e.hasUploadedDocuments,isHidden:e.isHidden})),bn.current=null)}),[ss,ns,en,De]);const os={currentUses:ce(null==zt?void 0:zt.currentUses),extraUses:ce(null==zt?void 0:zt.extraUses)},is=ts.scope?{currentUses:null!==(je=ce(null===(xe=ts.record)||void 0===xe?void 0:xe.currentUses))&&void 0!==je?je:0,extraUses:null!==(we=ce(null===(Ie=ts.record)||void 0===Ie?void 0:Ie.extraUses))&&void 0!==we?we:0}:{currentUses:0,extraUses:0},rs=de(zt,"type"),as="guest"===rs||!rs&&at?is:os;u((()=>{let e=!0;return t(void 0,void 0,void 0,(function*(){var t;if(Zn&&(null===(t=null==wt?void 0:wt.data)||void 0===t?void 0:t.workspaceId))try{const t=yield V.get(`/cost_per_run?workspaceId=${wt.data.workspaceId}`,{withCredentials:!1});e&&rn(1e4*(Number(t.data.costPerRun)||0))}catch(t){console.error("Failed to fetch average cost per run:",t),e&&rn(0)}else e&&rn(0)})),()=>{e=!1}}),[Zn,null===(Oe=null==wt?void 0:wt.data)||void 0===Oe?void 0:Oe.workspaceId]);const ls=(({currentUses:e,extraUses:t,limit:n,limitInterval:s})=>{const o=Number(null!=e?e:0),i=Number(null!=t?t:0);return n===ne||i===ne?ne:"one_time"===s?Math.max(0,i-o):Math.max(0,n-o)+i})({currentUses:as.currentUses,extraUses:as.extraUses,limit:Qn,limitInterval:Yn}),ds=ls===ne?ne:Math.max(0,Math.ceil(ls)),cs=(({extraUses:e,limit:t,limitInterval:n})=>{const s=Number(null!=e?e:0);return t===ne||s===ne?ne:"one_time"===n?Math.max(0,s):Math.max(0,t)+Math.max(0,s)})({extraUses:as.extraUses,limit:Qn,limitInterval:Yn}),us=cs===ne?ne:Math.ceil(.05*cs),ms=Zn?Math.ceil(5*on):5,ps=us===ne?ne:Math.max(us,ms),gs=m((()=>!!zt&&(!nn&&(ds!==ne&&ds<=ps))),[nn,ps,ds,zt]),fs=Boolean(null==Qe?void 0:Qe.hideUpgradeOptions),vs=Boolean(!fs&&((null===(ke=null==Qe?void 0:Qe.upgrade)||void 0===ke?void 0:ke.isBuyMoreUses)||(null===(Ne=null==Qe?void 0:Qe.upgrade)||void 0===Ne?void 0:Ne.isLinkToCustomURL)||(null===(Se=null==Qe?void 0:Qe.upgrade)||void 0===Se?void 0:Se.isUpgradeToAnotherGroup)&&(null===(Ce=Qe.upgrade.accessGroupIds)||void 0===Ce?void 0:Ce.length))),hs=!fs&&(null===(Ee=null==Qe?void 0:Qe.upgrade)||void 0===Ee?void 0:Ee.isLinkToCustomURL)&&"string"==typeof Qe.upgrade.limitLink&&Qe.upgrade.limitLink.trim().length>0?Qe.upgrade.limitLink.trim():null,bs=hs&&"string"==typeof(null===(_e=null==Qe?void 0:Qe.upgrade)||void 0===_e?void 0:_e.limitCTA)&&Qe.upgrade.limitCTA.trim().length>0?Qe.upgrade.limitCTA:(null==Ve?void 0:Ve["pricing.upgrade"])||(null==Ve?void 0:Ve.upgrade)||"Upgrade",ys=m((()=>{var e,t,n;return!!We&&(!!Xe&&(!At.isLoading&&(!((null!==(t=null===(e=At.data)||void 0===e?void 0:e.messages.length)&&void 0!==t?t:0)>1)&&(!!(null===(n=Xe.icebreakers)||void 0===n?void 0:n.length)&&(!ze&&!Gn)))))}),[Xe,We,ze,Gn,At.data,At.isLoading]),xs=m((()=>{if(bt||Bt)return!1;const e=Xn&&ht.length>0&&ht.every((e=>"finished"===e.status));return!(!Pt.trim()&&!e)&&ht.every((e=>"finished"===e.status||e.isInsertedAsRaw))}),[Xn,bt,Bt,Pt,ht]);p(fe,(()=>({onSubmit:ks}))),u((()=>{Ze(ys)}),[ys]),u((()=>{var e;if(a){const t=Array.from(ct),n=null===(e=t[t.length-2].parts.find((e=>"text"===e.type)))||void 0===e?void 0:e.content;ks(n,!0)}}),[a]),u((()=>{if(!fn.current||!pe)return;const e=new ResizeObserver((e=>{for(const t of e)pe(t.contentRect.height)}));return e.observe(fn.current),()=>{e.disconnect()}}),[pe]),u((()=>{if(!jn)return;const e=ln.current?`${ln.current} `:"";Dt(`${e}${xn}`)}),[xn,jn]),u((()=>{if(!pn.current)return;(()=>{if(!pn.current)return;let e=pn.current.scrollHeight>52;Pt.includes("\n")||ht.length?e=!0:Pt.trim()||(e=!1),Rt(e)})()}),[Pt,ht]),u((()=>{const e=pn.current,t=gn.current;if(!e||!t||Lt||Pt.includes("\n"))return void $t(!1);const n=window.getComputedStyle(e),s=`${n.fontStyle} ${n.fontVariant} ${n.fontWeight} ${n.fontSize} / ${n.lineHeight} ${n.fontFamily}`,o=document.createElement("span");Object.assign(o.style,{font:s,letterSpacing:n.letterSpacing,position:"absolute",visibility:"hidden",whiteSpace:"nowrap",top:"0",left:"0"}),o.textContent=Pt||qn,document.body.appendChild(o);const i=o.offsetWidth;o.remove();const r=parseFloat(n.paddingLeft)||0,a=parseFloat(n.paddingRight)||0,l=e.clientWidth-r-a-t.offsetWidth;$t(i>l)}),[Pt,Lt,qn]);const js=e=>t(void 0,void 0,void 0,(function*(){if(!(e=null!=e?e:cn.current))return!1;const t=re(mn.current);try{return(yield fetch(`${process.env.NEXT_PUBLIC_PICKAXE_API2_URL}/response/cancel/${e}`,Object.assign({method:"POST",headers:Object.assign(Object.assign({"Content-Type":"application/json"},(!process.env.NODE_ENV||"development"===process.env.NODE_ENV)&&Object.assign({},process.env.NEXT_PUBLIC_PICKAXE_SESSION_TOKEN&&{"x-pickaxe-session-token":process.env.NEXT_PUBLIC_PICKAXE_SESSION_TOKEN})),{"x-request-sent-at":(new Date).toISOString()}),body:JSON.stringify({outputMessageParts:t})},Bn&&{credentials:"include"}))).ok}catch(e){return console.warn("Failed to cancel submission",e),!1}})),Is=e=>{un.current=e,vn.current&&(vn.current.abort(),vn.current=null),dn.current&&(dn.current.cancel().catch((()=>{})),dn.current=null)},ws=e=>t(void 0,void 0,void 0,(function*(){const t=Date.now()+3e4;for(;Date.now()<t;){try{const t=yield fetch(`${process.env.NEXT_PUBLIC_PICKAXE_API2_URL}/response/status/${e}`,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}))},Bn&&{credentials:"include"}));if(t.ok){if((yield t.json()).terminal)return!0}}catch(e){console.warn("Failed to read submission status",e)}yield new Promise((e=>setTimeout(e,250)))}return!1})),Os=()=>{const e=cn.current;e&&!Bt&&!bt&&Pt.trim()&&(Ft((t=>{var n,s;return[...t,{id:ie(),message:Pt,predecessorSubmissionId:null!==(s=null===(n=t[t.length-1])||void 0===n?void 0:n.id)&&void 0!==s?s:e}]})),Dt(""))},ks=(e,n=!1,s=!1,o)=>t(void 0,void 0,void 0,(function*(){var t,a,l,d,c;let u=null;try{if(ut&&!s||bt)return;const m=ht.filter((e=>"finished"===e.status&&!e.isInsertedAsRaw)),p=m.map((e=>e.documentId)).filter(Boolean),g=m.filter((e=>"image"===e.type)).map((e=>{const t=e.name.split(".").pop()||"";return{documentId:e.documentId,extension:t}})),f=null!=e?e:Pt,v=null!==(a=null===(t=null==Xe?void 0:Xe.documentuploadtype)||void 0===t?void 0:t.startsWith("enduserupload"))&&void 0!==a&&a&&p.length>0;if(!f&&!v)return;ft(""),It(""),gt(null),Dt(""),Ye(!1),pt("fetching"),kt(),St();const h=n?ct.slice(0,ct.length-1):ct,b=(e=>e.reduce(((e,t)=>Math.max(e,t.id)),0)+1)(h),y=b+(n?0:1),x={id:y,role:"assistant",parts:[],documentIds:[]},j=[...h,...n?[]:[{id:b,role:"user",parts:[{type:"text",content:f,isVisible:!0}],documentIds:v?p:[]}],x];mt(j),St(),v&&jt([]);const I=z($e),w=null!=o?o:ie();u=w,cn.current=w,un.current=null,mn.current=[];const O=yield fetch(`${process.env.NEXT_PUBLIC_PICKAXE_API2_URL}/response/submit`,Object.assign({method:"POST",body:JSON.stringify(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({supportsActionConfirmation:!0,origin:Ae,pickaxeId:Pe,sessionId:De,submissionId:w,senderType:Re,value:f},v&&{documentIds:p}),Le&&{sender:Le}),rt&&{studioSessionToken:rt}),!rt&&!Le&&{sender:J()}),es&&{portalId:es}),$e&&{deploymentId:$e}),I&&{metadata:I}),v&&g.length>0?{uploadedModelImages:g}:{})),headers:Object.assign(Object.assign({},(!process.env.NODE_ENV||"development"===process.env.NODE_ENV)&&Object.assign({},process.env.NEXT_PUBLIC_PICKAXE_SESSION_TOKEN&&{"x-pickaxe-session-token":process.env.NEXT_PUBLIC_PICKAXE_SESSION_TOKEN})),{"x-request-sent-at":(new Date).toISOString()})},Bn&&{credentials:"include"})),k=yield O.json();if(!k.success){if(k.limitData){const e=new Error(k.error||k.message||(null==Ve?void 0:Ve["failed-to-start-generation"])||"Failed to start generation");throw e.limitData=k.limitData,e}if(Wn(k))return;throw new Error(k.error||k.message||(null==Ve?void 0:Ve["failed-to-start-generation"])||"Failed to start generation")}vt(null!==(l=k.actionApprovalToken)&&void 0!==l?l:null);const N=null!==(d=k.submissionId)&&void 0!==d?d:w;u=N,cn.current=N;const S=()=>un.current===N;if(S())return;Vn&&We&&De&&hn.current.add(De);const C=Object.assign(Object.assign({},ns()),{message:f,documentIds:v?p:[],uploadedModelImages:v?g:[],hasUploadedDocuments:v,isHidden:n,metadata:null!=I?I:null});en?(ss(),Z(C)):bn.current=C,pt("streaming"),vn.current=new AbortController;const _=[];let T=[...null!=Ct?Ct:[]],U=0,A=!1,P="";for(;!A;)try{const e=yield fetch(`${process.env.NEXT_PUBLIC_PICKAXE_API2_URL}/response/stream/${N}?index=${U}`,{signal:null===(c=vn.current)||void 0===c?void 0:c.signal,headers:{"Cache-Control":"no-cache",Connection:"keep-alive"}});if(!e.body)throw new Error("No response body");const t=e.body.getReader();dn.current=t;const n=new TextDecoder,s=E({onEvent:e=>{var t,n;if(S())A=!0;else if(e.event&&"ping"!==e.event&&U++,"stop"!==e.event){if("error"===e.event){const t=JSON.parse(e.data);if(t.limitData)return gt(t.limitData),ft(""),void(A=!0);const n=t.error||t.message||(null==Ve?void 0:Ve["something-went-wrong"])||"Something went wrong.";return Wn(t)||ft(n),void(A=!0)}if("delta"===e.event){const s=JSON.parse(e.data);if("data-error"===s.type&&ge){const e=s.data.error;if("string"==typeof e){const t=/['"]type['"]\s*:\s*['"]unauthorized_smithery['"]/.test(e),n=/['"]type['"]\s*:\s*['"]unauthorized_composio['"]/.test(e);if(t){const t=e.match(/['"]qualifiedName['"]\s*:\s*['"]([^'"]+)['"]/),n=e.match(/['"]serverId['"]\s*:\s*['"]([^'"]+)['"]/),s=e.match(/['"]name['"]\s*:\s*['"]([^'"]+)['"]/);if(t&&t[1]&&n&&n[1]&&s&&s[1])throw A=!0,ge({provider:"smithery",smitheryId:t[1],serverId:n[1],name:s[1]}),new Error("STOP_STREAM")}else if(n){const t=e.match(/['"]toolkitSlug['"]\s*:\s*['"]([^'"]+)['"]/),n=e.match(/['"]serverId['"]\s*:\s*['"]([^'"]+)['"]/),s=e.match(/['"]name['"]\s*:\s*['"]([^'"]+)['"]/);if(t&&t[1]&&n&&n[1]&&s&&s[1])throw A=!0,ge({provider:"composio",toolkitSlug:t[1],serverId:n[1],name:s[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 A=!0,ge({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 A=!0,ge({provider:"composio",toolkitSlug:t.toolkitSlug,serverId:t.serverId,name:t.name}),new Error("STOP_STREAM")}}else if("text-start"===s.type)P="",_.push({type:"text",content:"",isVisible:null===(t=s.isVisible)||void 0===t||t});else if("text-delta"===s.type)P+=s.delta,i(_,"text",P);else if("text-end"===s.type)P="";else if("reasoning-start"===s.type)P="",_.push({type:"reasoning",content:"",isVisible:null===(n=s.isVisible)||void 0===n||n});else if("reasoning-delta"===s.type)P+=s.delta,i(_,"reasoning",P);else if("reasoning-end"===s.type)P="";else if(s.type.startsWith("data-")){const e=s;"data-action-approval"===e.type?r(_,e.data):_.push({type:e.type,content:JSON.stringify(e.data),isVisible:!0})}mn.current=re(_);const o=re(_);mt((e=>{const t=e.findIndex((e=>e.id===y)),n=Object.assign(Object.assign({},x),{parts:o});return-1===t?[...e,n]:e.map(((e,s)=>s===t?n:e))}))}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"})),_t([...T]),Et.startsWith("inline")||Tt({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"})),_t(T),Et.startsWith("inline")||Tt({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"})),_t(T),Et.startsWith("inline")||Tt({id:t.id,version:t.version})}else if("artifact_content"===e.event){const t=JSON.parse(e.data),n=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+n,status:"streaming"}):e)),_t(T)}else if("artifact_finished"===e.event){const t=JSON.parse(e.data);_t(T.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 gt(t.limitData),ft(""),void(A=!0);const n=t.error||t.message||(null==Ve?void 0:Ve["something-went-wrong-try-again"])||"Something went wrong, please try again.";if(Wn(t))return void(A=!0);ft(n)}else"stop"===e.event&&(A=!0)}else A=!0}});for(;;){if(S()){A=!0,t.cancel().catch((()=>{}));break}const{value:e,done:o}=yield t.read();if(S()){A=!0,t.cancel().catch((()=>{}));break}if(o)break;s.feed(n.decode(e))}A||S()||(yield new Promise((e=>setTimeout(e,1e3))))}catch(e){if("STOP_STREAM"===e.message||ae(e)||S())return void(A=!0);console.warn("Stream connection lost, retrying...",e),yield new Promise((e=>setTimeout(e,1e3)))}null==it||it(De)}catch(e){if(ae(e))return;if(e.limitData)gt(e.limitData),ft("");else{let t=F(e)||"";t&&!t.includes("Unexpected token 'A',")||(t=(null==Ve?void 0:Ve["high-traffic-try-again-later"])||"Oops! We're experiencing high traffic at the moment. Please try again later."),Wn(t)||ft(t)}}finally{const e=!u||cn.current===u;St(),e&&(pt("idle"),Nt(),dn.current=null),u&&e&&(cn.current=null,mn.current=[]),yield zn()}}));return u((()=>{if(ut||Bt||Vt||0===Kt.length)return;const e=Kt[0];Gt(!0),Wt(e.id),t(void 0,void 0,void 0,(function*(){try{if(!(yield ws(e.predecessorSubmissionId)))return void ft((null==Ve?void 0:Ve["queued-message-waiting"])||"A queued message is waiting for the previous response to finish.");Ft((t=>t.filter((t=>t.id!==e.id)))),yield ks(e.message,!1,!0,e.id)}finally{Gt(!1),Wt(null)}}))}),[ut,Vt,Bt,Kt]),Hn?null:n("div",Object.assign({className:H("flex w-full flex-shrink-0 flex-col items-center",!Gn&&"px-4 pb-8"),dir:qe?"rtl":"ltr"},{children:s("div",Object.assign({className:"flex w-full max-w-[800px] flex-col"},{children:[Kt.length>0&&n("div",Object.assign({className:"mx-3 -mb-3 overflow-hidden border pb-3",style:{borderColor:Fe.text+"18",backgroundColor:null!==(Te=Ln.backgroundColor)&&void 0!==Te?Te:Fe.text+"08",color:Fe.text,borderTopLeftRadius:Math.max(Ke.cornerRadius-4,12),borderTopRightRadius:Math.max(Ke.cornerRadius-4,12)}},{children:Kt.map(((e,i)=>{var r;return s("div",Object.assign({className:"flex min-h-10 items-center gap-2 px-3 py-2",style:i<Kt.length-1?{borderBottom:`1px solid ${Fe.text}12`}:void 0},{children:[n(A,{className:"h-4 w-4 shrink-0 opacity-50","aria-hidden":"true"}),n("span",Object.assign({className:"min-w-0 flex-1 truncate text-sm",title:e.message},{children:e.message})),qt===e.id||Ht===e.id?s("span",Object.assign({className:"flex shrink-0 items-center gap-1.5 px-2 py-1 text-xs opacity-60","aria-live":"polite"},{children:[n("span",{className:"h-3 w-3 animate-spin rounded-full border border-current border-r-transparent","aria-hidden":"true"}),qt===e.id?(null==Ve?void 0:Ve.steering)||"Steering...":(null==Ve?void 0:Ve.starting)||"Starting..."]})):s(o,{children:[s("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:Bt||!ut,onClick:()=>{(e=>{t(void 0,void 0,void 0,(function*(){const t=cn.current;if(!t||Bt)return;const n=Kt.findIndex((t=>t.id===e.id));if(-1===n)return;Xt(!0),Jt(e.id),ft(""),Is(t);let s=!1;try{if(!(yield js(t)))throw new Error((null==Ve?void 0:Ve["failed-to-interrupt-current-response"])||"Failed to interrupt the current response.");if(!(yield ws(t)))throw new Error((null==Ve?void 0:Ve["current-response-still-stopping"])||"The current response is still stopping. Please send your message again in a moment.");pt("idle"),Ft((t=>t.filter((t=>t.id!==e.id)))),s=!0,Xt(!1),Jt(null),yield ks(e.message,!1,!0,e.id)}catch(t){pt("idle"),s&&Ft((t=>{if(t.some((t=>t.id===e.id)))return t;const s=[...t];return s.splice(n,0,e),s})),ft(F(t))}finally{Xt(!1),Jt(null)}}))})(e)},"aria-label":`${(null==Ve?void 0:Ve["steer-with"])||"Steer with"}: ${e.message}`},{children:[n("span",Object.assign({"aria-hidden":"true"},{children:"↳ "})),(null==Ve?void 0:Ve.steer)||"Steer"]})),n("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:Bt,onClick:()=>{return t=e.id,void Ft((e=>se(e,t)));var t},"aria-label":`${(null==Ve?void 0:Ve["remove-queued-message"])||"Remove queued message"}: ${e.message}`},{children:n(D,{className:"h-4 w-4","aria-hidden":"true"})})),s(B,Object.assign({id:`queued-message-menu-${e.id}`,className:"shrink-0"},{children:[n(X,Object.assign({className:"flex h-7 w-7 items-center justify-center rounded-md opacity-50 transition-opacity hover:opacity-100",isDisabled:Bt,role:"button",tabIndex:Bt?-1:0,"aria-haspopup":"menu","aria-label":(null==Ve?void 0:Ve["more-options"])||"More options",onKeyDown:e=>{"Enter"!==e.key&&" "!==e.key||(e.preventDefault(),e.currentTarget.click())}},{children:s("svg",Object.assign({viewBox:"0 0 24 24",className:"h-4 w-4",fill:"currentColor","aria-hidden":"true"},{children:[n("circle",{cx:"5",cy:"12",r:"1.6"}),n("circle",{cx:"12",cy:"12",r:"1.6"}),n("circle",{cx:"19",cy:"12",r:"1.6"})]}))})),n(K,Object.assign({role:"menu",align:qe?"bottom-start":"bottom-end",positionStrategy:Je?"absolute":"fixed",width:"auto",className:"p-1 text-sm shadow-xl",style:{backgroundColor:null!==(r=Ln.backgroundColor)&&void 0!==r?r:Fe.primary,color:Fe.text,borderRadius:"12px"},border:`1px solid ${Fe.text}20`},{children:s("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=>{Ft((t=>se(t,e.id))),Dt(e.message),requestAnimationFrame((()=>{const t=pn.current;t&&(t.focus(),t.setSelectionRange(e.message.length,e.message.length))}))})(e)},{children:[n(L,{className:"h-4 w-4 shrink-0"}),(null==Ve?void 0:Ve["edit-message"])||"Edit message"]}))}))]}))]})]}),e.id)}))})),s("div",Object.assign({ref:fn,className:H("relative z-10 flex flex-col w-full justify-end gap-y-3 py-[3px]","block"===Ke.formFieldStyle&&"shadow"),style:Object.assign(Object.assign({},Ln),{maxHeight:`${yn}px`,overflowY:"auto"})},{children:[gs&&s("div",Object.assign({className:"sticky top-0 z-10 flex w-full items-center justify-between border-b px-4 py-2.5 shadow-sm backdrop-blur-md",style:{backgroundColor:Ln.backgroundColor?`${Ln.backgroundColor}E6`:void 0,borderColor:Fe.text+"20",color:Fe.text,borderTopRightRadius:Ke.cornerRadius+"px",borderTopLeftRadius:Ke.cornerRadius+"px"}},{children:[n("div",Object.assign({className:"flex items-center gap-2 text-sm font-medium"},{children:s("span",{children:[ds.toLocaleString()," ",Zn?(null==Ve?void 0:Ve.credits)||"Credits":(null==Ve?void 0:Ve.uses)||"Uses"," ",(null==Ve?void 0:Ve.remaining)||"remaining"]})})),s("div",Object.assign({className:"flex items-center gap-3"},{children:[vs&&n("button",Object.assign({className:"rounded-md px-3 py-1.5 text-xs font-semibold transition-opacity hover:opacity-90",style:{backgroundColor:Fe.accent,color:Fe.accentText},onClick:e=>{if(e.preventDefault(),e.stopPropagation(),hs)return void window.open(hs,"_blank","noopener,noreferrer");if(ot)return void ot();const t=W({baseUrl:Yt,accessGroupId:null==Qe?void 0:Qe.accessGroupId});t&&q({deploymentId:$e,pricingUrl:t,studioId:null==Xe?void 0:Xe.studioid,studioSessionToken:rt})}},{children:bs})),n("button",Object.assign({className:"flex h-6 w-6 items-center justify-center rounded-full opacity-60 transition-opacity hover:opacity-100",onClick:()=>sn(!0)},{children:n("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:2,stroke:"currentColor",className:"h-4 w-4"},{children:n("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M6 18L18 6M6 6l12 12"})}))}))]}))]})),!ut&&ht.length>0&&n(R,{className:"p-4 pb-0",isDisabled:ut}),s("div",Object.assign({className:"relative flex w-full flex-col"},{children:[Fn&&s("div",Object.assign({className:H("pointer-events-none absolute top-1/2 z-10 flex -translate-y-1/2 select-none items-center gap-x-2",qe?"right-4":"left-4")},{children:[n("span",{className:"h-2 w-2 animate-pulse rounded-full bg-c-secondary",style:{backgroundColor:null!==(Ue=Fe.accent)&&void 0!==Ue?Ue:"#ff0000"}}),n("span",Object.assign({className:"text-sm text-c-secondary font-semilight",style:{color:Fe.text+"90"}},{children:(null==Ve?void 0:Ve.listening)||"Listening..."}))]})),n(M,Object.assign({ref:pn,className:H(Dn.i1,"py-3.5 max-h-60 px-4 w-full border-transparent bg-transparent",!Pt.trim()&&!Pt.includes("\n")&&"overflow-hidden text-ellipsis whitespace-nowrap placeholder:whitespace-normal placeholder:overflow-visible",qe?"text-right":"text-left",Jn&&"mb-12"),value:Pt,placeholder:Fn?"":qn,onChange:e=>{Dt(e)},onKeyDown:e=>{He||Ot||"Enter"===e.key&&(e.shiftKey||(e.preventDefault(),bt||Bt||(ut?Os():ks())))},onPaste:e=>t(void 0,void 0,void 0,(function*(){const t=Array.from(e.clipboardData.files||[]);if(t.length>0){if(!Xn)return;e.preventDefault(),Ye(!1),yield xt(t)}}))},le&&{onFocus:le},me&&{onBlur:me},{dir:qe?"rtl":"ltr"})),n("div",Object.assign({ref:gn,className:H("flex items-center gap-2 absolute z-2 transition-all duration-200 ease-in-out",Jn?"bottom-3 right-2":"right-0 top-1/2 -translate-y-1/2"),style:Object.assign(Object.assign({},!Jn&&Ln.backgroundColor&&{backgroundColor:Ln.backgroundColor}),{borderTopRightRadius:Ke.cornerRadius+"px",borderBottomRightRadius:Ke.cornerRadius+"px"})},{children:ut?s(o,{children:[n("button",Object.assign({"aria-label":(null==Ve?void 0:Ve["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=cn.current;e&&(Is(e),js(e)),pt("idle")},style:{backgroundColor:Fe.accent+"10",color:Fe.accent}},{children:n(P,{className:"h-4 w-4 shrink-0"})})),n("button",Object.assign({"aria-label":(null==Ve?void 0:Ve["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:Bt||bt||!Pt.trim(),onClick:Os,style:{backgroundColor:Pt.trim()?Fe.accent:Fe.accent+"10",color:Pt.trim()?Fe.accentText:Fe.accent+"80"}},{children:n(T,{className:H("h-6 w-6 shrink-0",qe&&"scale-x-[-1] transform")})}))]}):jn?n("button",Object.assign({className:"flex h-8 w-8 items-center mr-2 justify-center rounded-full outline-none transition-colors duration-200 ease-in-out",onClick:kn,style:{backgroundColor:Fe.accent,color:Fe.accentText}},{children:n(P,{className:"h-4 w-4 shrink-0"})})):s(o,{children:[Xn&&s("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:_n?Fe.accent+"10":void 0,color:_n?Fe.accent:Fe.accent+"80"},disabled:bt||ut,onClick:()=>{var e;return null===(e=an.current)||void 0===e?void 0:e.click()}},Tn,{children:[n("input",{id:"file-upload",ref:an,type:"file",accept:[...N,...S,...C].join(", "),multiple:!0,hidden:!0,className:"hidden",onChange:e=>t(void 0,void 0,void 0,(function*(){Ye(!1),yield xt(Array.from(e.target.files||[])),e.target.value=""}))}),n(_,{className:"h-6 w-6 shrink-0"})]})),Kn&&n("button",Object.assign({className:"disabled:cursor-default flex h-8 w-8 items-center justify-center rounded-full outline-none transition-colors duration-200 ease-in-out",style:{backgroundColor:jn?Fe.accent:An?Fe.accent+"10":void 0,color:jn?Fe.accentText:An?Fe.accent:Fe.accent+"80"},disabled:bt||ut||In,onClick:()=>{jn?kn():(ln.current=Pt,On(Ge||"en-US"))}},Pn,{children:n(U,{className:"h-5 w-5 shrink-0"})})),n("button",Object.assign({className:"flex h-8 w-8 items-center mr-2 justify-center rounded-full outline-none transition-colors duration-200 ease-in-out disabled:cursor-default",style:{backgroundColor:Sn||xs?Fe.accent:Fe.accent+"10",color:Sn||xs?Fe.accentText:Fe.accent+"80"},disabled:!xs,onClick:()=>ks()},Cn,{children:n(T,{className:H("h-6 w-6 shrink-0",qe&&"scale-x-[-1] transform")})}))]})}))]}))]})),yt&&n($,{error:yt,className:"mt-3"})]}))}))}));me.displayName="Input";export{me as default};
1
+ import{__rest as e,__awaiter as t}from"../../../_virtual/_tslib.js";import{jsx as n,jsxs as s,Fragment as o}from"react/jsx-runtime";import{useEndUserModel as i}from"../../../hooks/pickaxe/useEndUserModel.js";import r from"../common/EndUserModelPicker.js";import{updateStreamTextPart as a,upsertActionApprovalPart as l}from"../../../common/actionApproval.js";import{forwardRef as d,useState as c,useRef as u,useCallback as m,useEffect as p,useMemo as g,useImperativeHandle as f}from"react";import{usePickaxeContext as v}from"../../../hooks/pickaxe/usePickaxeContext.js";import{useResponseContext as h}from"../../../hooks/pickaxe/useResponseContext.js";import{useStyleInput as b}from"../../../hooks/studio/useStyleInput.js";import{useStyleFontSize as y}from"../../../hooks/studio/useStyleFontSize.js";import{useConversation as x}from"../../../hooks/pickaxe/useConversation.js";import{useDimensionContext as j}from"../../../hooks/pickaxe/useDimensionContext.js";import{useAuthContext as I}from"../Addons/Auth/hooks/useAuthContext.js";import{useDocument as w}from"../Addons/Document/hooks/useDocument.js";import{useScroll as k}from"../Addons/Scroll/hooks/useScroll.js";import{useArtifactContext as O}from"../Addons/Artifact/hooks/useArtifactContext.js";import{useHover as N}from"../../../hooks/core/useHover.js";import{useMediaQuery as S}from"../../../hooks/core/useMediaQuery.js";import{allowedFileMimeTypes as C,allowedImageMimeTypes as E,additionalAllowedFileExtensions as _}from"../../../common/documents.js";import{createParser as T}from"eventsource-parser";import U from"../../Icons/attach-vertical.svg.js";import A from"../../Icons/arrow-right.svg.js";import P from"../../Icons/microphone.svg.js";import D from"../../Icons/message-clock.svg.js";import L from"../../Icons/stop.svg.js";import R from"../../Icons/trash.svg.js";import M from"../../Icons/pencil.svg.js";import $ from"../Addons/Document/List.js";import B from"../../Core/Textarea.js";import X from"../../Core/ErrorAlert.js";import K from"../../Core/Menu/index.js";import F from"../../Core/Menu/Button.js";import V from"../../Core/Menu/List.js";import G from"../../../common/error.js";import{pickaxeApi2 as H}from"../../../common/api/pickaxe.js";import{getValidationFailure as W}from"../../../common/validation.js";import q from"../../../common/cn.js";import{buildUpgradeUrl as J,openAuthenticatedPricingUrl as z,initializeEmbedUserId as Q}from"../../../common/utils.js";import{getPickaxeConfigMetadata as Y}from"../../../common/pickaxeConfig.js";import{readAgentPrefill as Z}from"../../../common/agentPrefill.js";import{fireDeploymentSessionInitializedWebhook as ee,fireDeploymentFirstMessageSubmittedWebhook as te}from"../../../common/deploymentWebhooks.js";import{useStudio as ne}from"../../../hooks/studio/useStudio.js";import{useSpeechToText as se}from"../../../hooks/pickaxe/useSpeechToText.js";import{STUDIO_INFINITY_VALUE as oe}from"../common/PickaxeCommon.js";const ie=(e,t)=>{const n=e.find((e=>e.id===t));return n?e.filter((e=>e.id!==t)).map((e=>e.predecessorSubmissionId===t?Object.assign(Object.assign({},e),{predecessorSubmissionId:n.predecessorSubmissionId}):e)):e},re=e=>"string"==typeof e&&e.trim().length>0,ae=()=>"undefined"!=typeof crypto&&"randomUUID"in crypto?crypto.randomUUID():`submission-${Date.now()}-${Math.random().toString(36).slice(2)}`,le=e=>e.map((e=>Object.assign({},e))),de=e=>e instanceof Error&&("AbortError"===e.name||"BodyStreamBuffer was aborted"===e.message),ce=(e,t)=>{if(e&&"object"==typeof e)return e[t]},ue=(e,t)=>{const n=ce(e,t);return re(n)?n:null},me=e=>{const t=Number(e);return Number.isFinite(t)?t:void 0},pe=({studioUser:e,deploymentId:t,portalId:n})=>{var s,o;const i=Array.isArray(ce(e,"uses"))?ce(e,"uses"):[],r=(({deploymentId:e,portalId:t})=>re(e)?{type:"deployment",id:e}:re(t)?{type:"portal",id:t}:null)({deploymentId:t,portalId:n});if(!r)return{scope:r,record:null};const a=null!==(o=null!==(s=i.find((e=>e.id===r.id&&e.type===r.type)))&&void 0!==s?s:i.find((e=>e.id===r.id)))&&void 0!==o?o:null;return{scope:r,record:a}},ge=d((({resubmitPrompt:d,onFocus:ce,onBlur:ge,onInputHeightChange:fe,initSmitheryAuthData:ve},he)=>{var be,ye,xe,je,Ie,we,ke,Oe,Ne,Se,Ce,Ee,_e,Te,Ue,Ae,Pe,De;const{origin:Le,pickaxeId:Re,sessionId:Me,sender:$e,senderType:Be,portalId:Xe,deploymentId:Ke,deploymentType:Fe,pickaxe:Ve,styles:Ge,colors:He,translations:We,locale:qe,forceMobile:Je,isNewChat:ze,isRtl:Qe,isEmbed:Ye,isShowFeedbackMessage:Ze,accessGroup:et,setIsNewChat:tt,setIsShowIceBreaker:nt,setValidationStatus:st,setValidationUpgradeGroups:ot,setValidationUpgradeUrl:it,setAccessGroup:rt,onUpgrade:at,onGenerateComplete:lt}=v(),{value:dt,enabled:ct}=i(),{token:ut,isLoggedOut:mt,isSent:pt,isPricingAuth:gt}=I(),{messages:ft,isGenerating:vt,setMessages:ht,setStatus:bt,setLimitData:yt,setError:xt,setActionApprovalToken:jt}=h(),{documents:It,isUploading:wt,documentError:kt,onFileUpload:Ot,setDocuments:Nt,setDocumentError:St}=w(),{studio:Ct}=ne(),[Et]=S("(max-width: 480px)"),{scrollStartSession:_t,scrollEndSession:Tt,scrollToBottom:Ut}=k({auto:!0,smooth:!(Je||Et)}),{artifacts:At,currentPopupType:Pt,setArtifacts:Dt,setCurrentArtifact:Lt}=O(),{height:Rt}=j(),Mt=x(),[$t,Bt]=c((()=>Z([Ke,Re]).chatInput)),[Xt,Kt]=c(!1),[Ft,Vt]=c(!1),[Gt,Ht]=c(!1),[Wt,qt]=c([]),[Jt,zt]=c(!1),[Qt,Yt]=c(null),[Zt,en]=c(null),[tn,nn]=c(null),[sn,on]=c(null),[rn,an]=c(!1),[ln,dn]=c(!1),[cn,un]=c(0),mn=u(null),pn=u(""),gn=u(null),fn=u(null),vn=u(null),hn=u([]),bn=u(null),yn=u(null),xn=u(null),jn=u(null),In=u(new Set),wn=u(null),kn=Math.max(.4*Rt,100),{speechTranscript:On,isSpeechListening:Nn,isSpeechProcessing:Sn,isSpeechSupported:Cn,onStartListening:En,onStopListening:_n}=se(),Tn=N(),{isHover:Un}=Tn,An=e(Tn,["isHover"]),Pn=N(),{isHover:Dn}=Pn,Ln=e(Pn,["isHover"]),Rn=N(),{isHover:Mn}=Rn,$n=e(Rn,["isHover"]),Bn=y(),Xn=b(),Kn="undefined"!=typeof window?window.location.hostname:"",Fn="undefined"!=typeof window?window.location.href:"",Vn="undefined"!=typeof window&&window.self!==window.top,Gn=Kn.includes("pickaxe.co")&&!Fn.includes("https://studio.pickaxe.co/_embed")&&!Vn,Hn=null!==(ye=null===(be=null==Ve?void 0:Ve.documentuploadtype)||void 0===be?void 0:be.startsWith("enduserupload"))&&void 0!==ye&&ye,Wn=Cn&&(null==Ve?void 0:Ve.enablevoicetotext),qn=Nn&&!$t.trim(),Jn=re(Ke),zn="chat-input"===Fe&&ze&&!pt,Qn="chat-input"===Fe&&gt&&mt&&pt,Yn=m((e=>{const t=W(e);return!!t&&(xt(""),yt(null),st(t.status),rt(t.accessGroup),ot(t.upgradeGroups),it(t.upgradeUrl),!0)}),[xt,jt,yt,st,ot,it,rt]),Zn=null!==(xe=null==Ve?void 0:Ve.placeholdertext)&&void 0!==xe?xe:Qe?"بماذا تريد أن تتحدث؟":(null==We?void 0:We["what-do-you-want-to-talk-about"])||"What do you want to talk about?",es=Xt||Ft,ts=m((()=>t(void 0,void 0,void 0,(function*(){an(!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==Ve?void 0:Ve.studioid},ut?{studioSessionToken:ut}:$e?{sender:$e}:{sender:Q()}))},(!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}})),Gn&&{credentials:"include"})),t=yield e.json();(null==t?void 0:t.studioUser)&&(nn(t.studioUser),on(t.url))}catch(e){console.error("Failed to fetch studio user:",e)}finally{an(!0)}}))),[Gn,null==Ve?void 0:Ve.studioid,$e,ut]);p((()=>{ts()}),[ts]);const ns=Number(null!==(je=null==et?void 0:et.limit)&&void 0!==je?je:0),ss="string"==typeof(null==et?void 0:et.limitInterval)?et.limitInterval:null,os=!!(null==Ct?void 0:Ct.data.usage)&&Ct.data.usage.isCredits,is=g((()=>{var e,t,n,s,o;return null!==(o=null!==(s=null!==(n=null!==(t=null!==(e=null!=Xe?Xe:ue(tn,"portalId"))&&void 0!==e?e:ue(tn,"portalid"))&&void 0!==t?t:ue(et,"portalId"))&&void 0!==n?n:ue(et,"portalid"))&&void 0!==s?s:ue(Ve,"portalId"))&&void 0!==o?o:ue(Ve,"portalid")}),[et,Xe,Ve,tn]),rs=g((()=>pe({studioUser:tn,deploymentId:Ke,portalId:is})),[Ke,is,tn]);p((()=>{Jn&&ze&&Me&&In.current.add(Me)}),[ze,Me,Jn]);const as=m((()=>{var e,t,n;return{studioId:null==Ve?void 0:Ve.studioid,userEmail:ue(tn,"email"),userId:null!==(e=ue(tn,"userId"))&&void 0!==e?e:ue(tn,"userid"),sessionId:Me,deploymentId:Ke,deploymentType:Fe,portalId:is,accessGroupId:null!==(t=null==et?void 0:et.accessGroupId)&&void 0!==t?t:null,pickaxeId:Re,sender:$e,senderType:Be,origin:Le,metadata:null!==(n=Y(Ke))&&void 0!==n?n:null}}),[null==et?void 0:et.accessGroupId,Ke,Fe,Le,null==Ve?void 0:Ve.studioid,Re,is,$e,Be,Me,tn]),ls=m((()=>!!(Jn&&rn&&Me)&&(!!In.current.has(Me)&&(ee(as()),In.current.delete(Me),!0))),[as,rn,Me,Jn]);p((()=>{if(!rn||!Me)return;ls();const e=wn.current;(null==e?void 0:e.sessionId)===Me&&(te(Object.assign(Object.assign(Object.assign({},e),as()),{message:e.message,documentIds:e.documentIds,uploadedModelImages:e.uploadedModelImages,hasUploadedDocuments:e.hasUploadedDocuments,isHidden:e.isHidden})),wn.current=null)}),[ls,as,rn,Me]);const ds={currentUses:me(null==tn?void 0:tn.currentUses),extraUses:me(null==tn?void 0:tn.extraUses)},cs=rs.scope?{currentUses:null!==(we=me(null===(Ie=rs.record)||void 0===Ie?void 0:Ie.currentUses))&&void 0!==we?we:0,extraUses:null!==(Oe=me(null===(ke=rs.record)||void 0===ke?void 0:ke.extraUses))&&void 0!==Oe?Oe:0}:{currentUses:0,extraUses:0},us=ue(tn,"type"),ms="guest"===us||!us&&mt?cs:ds;p((()=>{let e=!0;return t(void 0,void 0,void 0,(function*(){var t;if(os&&(null===(t=null==Ct?void 0:Ct.data)||void 0===t?void 0:t.workspaceId))try{const t=yield H.get(`/cost_per_run?workspaceId=${Ct.data.workspaceId}`,{withCredentials:!1});e&&un(1e4*(Number(t.data.costPerRun)||0))}catch(t){console.error("Failed to fetch average cost per run:",t),e&&un(0)}else e&&un(0)})),()=>{e=!1}}),[os,null===(Ne=null==Ct?void 0:Ct.data)||void 0===Ne?void 0:Ne.workspaceId]);const ps=(({currentUses:e,extraUses:t,limit:n,limitInterval:s})=>{const o=Number(null!=e?e:0),i=Number(null!=t?t:0);return n===oe||i===oe?oe:"one_time"===s?Math.max(0,i-o):Math.max(0,n-o)+i})({currentUses:ms.currentUses,extraUses:ms.extraUses,limit:ns,limitInterval:ss}),gs=ps===oe?oe:Math.max(0,Math.ceil(ps)),fs=(({extraUses:e,limit:t,limitInterval:n})=>{const s=Number(null!=e?e:0);return t===oe||s===oe?oe:"one_time"===n?Math.max(0,s):Math.max(0,t)+Math.max(0,s)})({extraUses:ms.extraUses,limit:ns,limitInterval:ss}),vs=fs===oe?oe:Math.ceil(.05*fs),hs=os?Math.ceil(5*cn):5,bs=vs===oe?oe:Math.max(vs,hs),ys=g((()=>!!tn&&(!ln&&(gs!==oe&&gs<=bs))),[ln,bs,gs,tn]),xs=Boolean(null==et?void 0:et.hideUpgradeOptions),js=Boolean(!xs&&((null===(Se=null==et?void 0:et.upgrade)||void 0===Se?void 0:Se.isBuyMoreUses)||(null===(Ce=null==et?void 0:et.upgrade)||void 0===Ce?void 0:Ce.isLinkToCustomURL)||(null===(Ee=null==et?void 0:et.upgrade)||void 0===Ee?void 0:Ee.isUpgradeToAnotherGroup)&&(null===(_e=et.upgrade.accessGroupIds)||void 0===_e?void 0:_e.length))),Is=!xs&&(null===(Te=null==et?void 0:et.upgrade)||void 0===Te?void 0:Te.isLinkToCustomURL)&&"string"==typeof et.upgrade.limitLink&&et.upgrade.limitLink.trim().length>0?et.upgrade.limitLink.trim():null,ws=Is&&"string"==typeof(null===(Ue=null==et?void 0:et.upgrade)||void 0===Ue?void 0:Ue.limitCTA)&&et.upgrade.limitCTA.trim().length>0?et.upgrade.limitCTA:(null==We?void 0:We["pricing.upgrade"])||(null==We?void 0:We.upgrade)||"Upgrade",ks=g((()=>{var e,t,n;return!!ze&&(!!Ve&&(!Mt.isLoading&&(!((null!==(t=null===(e=Mt.data)||void 0===e?void 0:e.messages.length)&&void 0!==t?t:0)>1)&&(!!(null===(n=Ve.icebreakers)||void 0===n?void 0:n.length)&&(!Ze&&!zn)))))}),[Ve,ze,Ze,zn,Mt.data,Mt.isLoading]),Os=g((()=>{if(wt||Gt)return!1;const e=Hn&&It.length>0&&It.every((e=>"finished"===e.status));return!(!$t.trim()&&!e)&&It.every((e=>"finished"===e.status||e.isInsertedAsRaw))}),[Hn,wt,Gt,$t,It]);f(he,(()=>({onSubmit:_s}))),p((()=>{nt(ks)}),[ks]),p((()=>{var e;if(d){const t=Array.from(ft),n=null===(e=t[t.length-2].parts.find((e=>"text"===e.type)))||void 0===e?void 0:e.content;_s(n,!0)}}),[d]),p((()=>{if(!xn.current||!fe)return;const e=new ResizeObserver((e=>{for(const t of e)fe(t.contentRect.height)}));return e.observe(xn.current),()=>{e.disconnect()}}),[fe]),p((()=>{if(!Nn)return;const e=pn.current?`${pn.current} `:"";Bt(`${e}${On}`)}),[On,Nn]),p((()=>{if(!bn.current)return;(()=>{if(!bn.current)return;let e=bn.current.scrollHeight>52;$t.includes("\n")||It.length?e=!0:$t.trim()||(e=!1),Kt(e)})()}),[$t,It]),p((()=>{const e=bn.current,t=yn.current;if(!e||!t||ct||Xt||$t.includes("\n"))return void Vt(!1);const n=window.getComputedStyle(e),s=`${n.fontStyle} ${n.fontVariant} ${n.fontWeight} ${n.fontSize} / ${n.lineHeight} ${n.fontFamily}`,o=document.createElement("span");Object.assign(o.style,{font:s,letterSpacing:n.letterSpacing,position:"absolute",visibility:"hidden",whiteSpace:"nowrap",top:"0",left:"0"}),o.textContent=$t||Zn,document.body.appendChild(o);const i=o.offsetWidth;o.remove();const r=parseFloat(n.paddingLeft)||0,a=parseFloat(n.paddingRight)||0,l=e.clientWidth-r-a-t.offsetWidth;Vt(i>l)}),[$t,Xt,Zn,ct]);const Ns=e=>t(void 0,void 0,void 0,(function*(){if(!(e=null!=e?e:fn.current))return!1;const t=le(hn.current);try{return(yield fetch(`${process.env.NEXT_PUBLIC_PICKAXE_API2_URL}/response/cancel/${e}`,Object.assign({method:"POST",headers:Object.assign(Object.assign({"Content-Type":"application/json"},(!process.env.NODE_ENV||"development"===process.env.NODE_ENV)&&Object.assign({},process.env.NEXT_PUBLIC_PICKAXE_SESSION_TOKEN&&{"x-pickaxe-session-token":process.env.NEXT_PUBLIC_PICKAXE_SESSION_TOKEN})),{"x-request-sent-at":(new Date).toISOString()}),body:JSON.stringify({outputMessageParts:t})},Gn&&{credentials:"include"}))).ok}catch(e){return console.warn("Failed to cancel submission",e),!1}})),Ss=e=>{vn.current=e,jn.current&&(jn.current.abort(),jn.current=null),gn.current&&(gn.current.cancel().catch((()=>{})),gn.current=null)},Cs=e=>t(void 0,void 0,void 0,(function*(){const t=Date.now()+3e4;for(;Date.now()<t;){try{const t=yield fetch(`${process.env.NEXT_PUBLIC_PICKAXE_API2_URL}/response/status/${e}`,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}))},Gn&&{credentials:"include"}));if(t.ok){if((yield t.json()).terminal)return!0}}catch(e){console.warn("Failed to read submission status",e)}yield new Promise((e=>setTimeout(e,250)))}return!1})),Es=()=>{const e=fn.current;e&&!Gt&&!wt&&$t.trim()&&(qt((t=>{var n,s;return[...t,{id:ae(),message:$t,predecessorSubmissionId:null!==(s=null===(n=t[t.length-1])||void 0===n?void 0:n.id)&&void 0!==s?s:e}]})),Bt(""))},_s=(e,n=!1,s=!1,o,i=!1)=>t(void 0,void 0,void 0,(function*(){var t,r,d,c,u;let m=null;try{if(vt&&!s||wt)return;const p=It.filter((e=>"finished"===e.status&&!e.isInsertedAsRaw)),g=p.map((e=>e.documentId)).filter(Boolean),f=p.filter((e=>"image"===e.type)).map((e=>{const t=e.name.split(".").pop()||"";return{documentId:e.documentId,extension:t}})),v=null!=e?e:$t,h=null!==(r=null===(t=null==Ve?void 0:Ve.documentuploadtype)||void 0===t?void 0:t.startsWith("enduserupload"))&&void 0!==r&&r&&g.length>0;if(!v&&!h)return;xt(""),St(""),yt(null),Bt(""),tt(!1),bt("fetching"),_t(),Ut();const b=n?ft.slice(0,ft.length-1):ft,y=(e=>e.reduce(((e,t)=>Math.max(e,t.id)),0)+1)(b),x=y+(n?0:1),j={id:x,role:"assistant",parts:[],documentIds:[]},I=[...b,...n?[]:[{id:y,role:"user",parts:[{type:"text",content:v,isVisible:!0}],documentIds:h?g:[]}],j];ht(I),Ut(),h&&Nt([]);const w=Y(Ke),k=null!=o?o:ae();m=k,fn.current=k,vn.current=null,hn.current=[];const O=yield fetch(`${process.env.NEXT_PUBLIC_PICKAXE_API2_URL}/response/submit`,Object.assign({method:"POST",body:JSON.stringify(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({supportsActionConfirmation:!0,selectedModel:dt||void 0,origin:Le,pickaxeId:Re,sessionId:Me,submissionId:k},i&&{interactionType:"steer"}),{senderType:Be,value:v}),h&&{documentIds:g}),$e&&{sender:$e}),ut&&{studioSessionToken:ut}),!ut&&!$e&&{sender:Q()}),is&&{portalId:is}),Ke&&{deploymentId:Ke}),w&&{metadata:w}),h&&f.length>0?{uploadedModelImages:f}:{})),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()})},Gn&&{credentials:"include"})),N=yield O.json();if(!N.success){if(N.limitData){const e=new Error(N.error||N.message||(null==We?void 0:We["failed-to-start-generation"])||"Failed to start generation");throw e.limitData=N.limitData,e}if(Yn(N))return;throw new Error(N.error||N.message||(null==We?void 0:We["failed-to-start-generation"])||"Failed to start generation")}jt(null!==(d=N.actionApprovalToken)&&void 0!==d?d:null);const S=null!==(c=N.submissionId)&&void 0!==c?c:k;m=S,fn.current=S;const C=()=>vn.current===S;if(C())return;Jn&&ze&&Me&&In.current.add(Me);const E=Object.assign(Object.assign({},as()),{message:v,documentIds:h?g:[],uploadedModelImages:h?f:[],hasUploadedDocuments:h,isHidden:n,metadata:null!=w?w:null});rn?(ls(),te(E)):wn.current=E,bt("streaming"),jn.current=new AbortController;const _=[];let U=[...null!=At?At:[]],A=0,P=!1,D="";for(;!P;)try{const e=yield fetch(`${process.env.NEXT_PUBLIC_PICKAXE_API2_URL}/response/stream/${S}?index=${A}`,{signal:null===(u=jn.current)||void 0===u?void 0:u.signal,headers:{"Cache-Control":"no-cache",Connection:"keep-alive"}});if(!e.body)throw new Error("No response body");const t=e.body.getReader();gn.current=t;const n=new TextDecoder,s=T({onEvent:e=>{var t,n;if(C())P=!0;else if(e.event&&"ping"!==e.event&&A++,"stop"!==e.event){if("error"===e.event){const t=JSON.parse(e.data);if(t.limitData)return yt(t.limitData),xt(""),void(P=!0);const n=t.error||t.message||(null==We?void 0:We["something-went-wrong"])||"Something went wrong.";return Yn(t)||xt(n),void(P=!0)}if("delta"===e.event){const s=JSON.parse(e.data);if("data-error"===s.type&&ve){const e=s.data.error;if("string"==typeof e){const t=/['"]type['"]\s*:\s*['"]unauthorized_smithery['"]/.test(e),n=/['"]type['"]\s*:\s*['"]unauthorized_composio['"]/.test(e);if(t){const t=e.match(/['"]qualifiedName['"]\s*:\s*['"]([^'"]+)['"]/),n=e.match(/['"]serverId['"]\s*:\s*['"]([^'"]+)['"]/),s=e.match(/['"]name['"]\s*:\s*['"]([^'"]+)['"]/);if(t&&t[1]&&n&&n[1]&&s&&s[1])throw P=!0,ve({provider:"smithery",smitheryId:t[1],serverId:n[1],name:s[1]}),new Error("STOP_STREAM")}else if(n){const t=e.match(/['"]toolkitSlug['"]\s*:\s*['"]([^'"]+)['"]/),n=e.match(/['"]serverId['"]\s*:\s*['"]([^'"]+)['"]/),s=e.match(/['"]name['"]\s*:\s*['"]([^'"]+)['"]/);if(t&&t[1]&&n&&n[1]&&s&&s[1])throw P=!0,ve({provider:"composio",toolkitSlug:t[1],serverId:n[1],name:s[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 P=!0,ve({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 P=!0,ve({provider:"composio",toolkitSlug:t.toolkitSlug,serverId:t.serverId,name:t.name}),new Error("STOP_STREAM")}}else if("text-start"===s.type)D="",_.push({type:"text",content:"",isVisible:null===(t=s.isVisible)||void 0===t||t});else if("text-delta"===s.type)D+=s.delta,a(_,"text",D);else if("text-end"===s.type)D="";else if("reasoning-start"===s.type)D="",_.push({type:"reasoning",content:"",isVisible:null===(n=s.isVisible)||void 0===n||n});else if("reasoning-delta"===s.type)D+=s.delta,a(_,"reasoning",D);else if("reasoning-end"===s.type)D="";else if(s.type.startsWith("data-")){const e=s;"data-action-approval"===e.type?l(_,e.data):_.push({type:e.type,content:JSON.stringify(e.data),isVisible:!0})}hn.current=le(_);const o=le(_);ht((e=>{const t=e.findIndex((e=>e.id===x)),n=Object.assign(Object.assign({},j),{parts:o});return-1===t?[...e,n]:e.map(((e,s)=>s===t?n:e))}))}else if("artifact_created"===e.event){const t=JSON.parse(e.data);U=U.filter((e=>!(e.id===t.id&&e.version===t.version))),U.push(Object.assign(Object.assign({},t),{content:"",status:"streaming"})),Dt([...U]),Pt.startsWith("inline")||Lt({id:t.id,version:t.version})}else if("artifact_updated"===e.event){const t=JSON.parse(e.data);U=U.filter((e=>!(e.id===t.id&&e.version===t.version))),U.push(Object.assign(Object.assign({},t),{content:"",status:"updating"})),Dt(U),Pt.startsWith("inline")||Lt({id:t.id,version:t.version})}else if("artifact_rewrite"===e.event){const t=JSON.parse(e.data);U=U.filter((e=>!(e.id===t.id&&e.version===t.version))),U.push(Object.assign(Object.assign({},t),{content:"",status:"streaming"})),Dt(U),Pt.startsWith("inline")||Lt({id:t.id,version:t.version})}else if("artifact_content"===e.event){const t=JSON.parse(e.data),n=t.token.replace(/\u200B/g,"");U=U.map((e=>e.id===t.id&&e.version===t.version?Object.assign(Object.assign({},e),{content:e.content+n,status:"streaming"}):e)),Dt(U)}else if("artifact_finished"===e.event){const t=JSON.parse(e.data);Dt(U.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 yt(t.limitData),xt(""),void(P=!0);const n=t.error||t.message||(null==We?void 0:We["something-went-wrong-try-again"])||"Something went wrong, please try again.";if(Yn(t))return void(P=!0);xt(n)}else"stop"===e.event&&(P=!0)}else P=!0}});for(;;){if(C()){P=!0,t.cancel().catch((()=>{}));break}const{value:e,done:o}=yield t.read();if(C()){P=!0,t.cancel().catch((()=>{}));break}if(o)break;s.feed(n.decode(e))}P||C()||(yield new Promise((e=>setTimeout(e,1e3))))}catch(e){if("STOP_STREAM"===e.message||de(e)||C())return void(P=!0);console.warn("Stream connection lost, retrying...",e),yield new Promise((e=>setTimeout(e,1e3)))}null==lt||lt(Me)}catch(e){if(de(e))return;if(e.limitData)yt(e.limitData),xt("");else{let t=G(e)||"";t&&!t.includes("Unexpected token 'A',")||(t=(null==We?void 0:We["high-traffic-try-again-later"])||"Oops! We're experiencing high traffic at the moment. Please try again later."),Yn(t)||xt(t)}}finally{const e=!m||fn.current===m;Ut(),e&&(bt("idle"),Tt(),gn.current=null),m&&e&&(fn.current=null,hn.current=[]),yield ts()}}));return p((()=>{if(vt||Gt||Jt||0===Wt.length)return;const e=Wt[0];zt(!0),Yt(e.id),t(void 0,void 0,void 0,(function*(){try{if(!(yield Cs(e.predecessorSubmissionId)))return void xt((null==We?void 0:We["queued-message-waiting"])||"A queued message is waiting for the previous response to finish.");qt((t=>t.filter((t=>t.id!==e.id)))),yield _s(e.message,!1,!0,e.id)}finally{zt(!1),Yt(null)}}))}),[vt,Jt,Gt,Wt]),Qn?null:n("div",Object.assign({className:q("flex w-full flex-shrink-0 flex-col items-center",!zn&&"px-4 pb-8"),dir:Qe?"rtl":"ltr"},{children:s("div",Object.assign({className:"flex w-full max-w-[800px] flex-col"},{children:[Wt.length>0&&n("div",Object.assign({className:"mx-3 -mb-3 overflow-hidden border pb-3",style:{borderColor:He.text+"18",backgroundColor:null!==(Ae=Xn.backgroundColor)&&void 0!==Ae?Ae:He.text+"08",color:He.text,borderTopLeftRadius:Math.max(Ge.cornerRadius-4,12),borderTopRightRadius:Math.max(Ge.cornerRadius-4,12)}},{children:Wt.map(((e,i)=>{var r;return s("div",Object.assign({className:"flex min-h-10 items-center gap-2 px-3 py-2",style:i<Wt.length-1?{borderBottom:`1px solid ${He.text}12`}:void 0},{children:[n(D,{className:"h-4 w-4 shrink-0 opacity-50","aria-hidden":"true"}),n("span",Object.assign({className:"min-w-0 flex-1 truncate text-sm",title:e.message},{children:e.message})),Zt===e.id||Qt===e.id?s("span",Object.assign({className:"flex shrink-0 items-center gap-1.5 px-2 py-1 text-xs opacity-60","aria-live":"polite"},{children:[n("span",{className:"h-3 w-3 animate-spin rounded-full border border-current border-r-transparent","aria-hidden":"true"}),Zt===e.id?(null==We?void 0:We.steering)||"Steering...":(null==We?void 0:We.starting)||"Starting..."]})):s(o,{children:[s("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:Gt||!vt,onClick:()=>{(e=>{t(void 0,void 0,void 0,(function*(){const t=fn.current;if(!t||Gt)return;const n=Wt.findIndex((t=>t.id===e.id));if(-1===n)return;Ht(!0),en(e.id),xt(""),Ss(t);let s=!1;try{if(!(yield Ns(t)))throw new Error((null==We?void 0:We["failed-to-interrupt-current-response"])||"Failed to interrupt the current response.");if(!(yield Cs(t)))throw new Error((null==We?void 0:We["current-response-still-stopping"])||"The current response is still stopping. Please send your message again in a moment.");bt("idle"),qt((t=>t.filter((t=>t.id!==e.id)))),s=!0,Ht(!1),en(null),yield _s(e.message,!1,!0,e.id,!0)}catch(t){bt("idle"),s&&qt((t=>{if(t.some((t=>t.id===e.id)))return t;const s=[...t];return s.splice(n,0,e),s})),xt(G(t))}finally{Ht(!1),en(null)}}))})(e)},"aria-label":`${(null==We?void 0:We["steer-with"])||"Steer with"}: ${e.message}`},{children:[n("span",Object.assign({"aria-hidden":"true"},{children:"↳ "})),(null==We?void 0:We.steer)||"Steer"]})),n("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:Gt,onClick:()=>{return t=e.id,void qt((e=>ie(e,t)));var t},"aria-label":`${(null==We?void 0:We["remove-queued-message"])||"Remove queued message"}: ${e.message}`},{children:n(R,{className:"h-4 w-4","aria-hidden":"true"})})),s(K,Object.assign({id:`queued-message-menu-${e.id}`,className:"shrink-0"},{children:[n(F,Object.assign({className:"flex h-7 w-7 items-center justify-center rounded-md opacity-50 transition-opacity hover:opacity-100",isDisabled:Gt,role:"button",tabIndex:Gt?-1:0,"aria-haspopup":"menu","aria-label":(null==We?void 0:We["more-options"])||"More options",onKeyDown:e=>{"Enter"!==e.key&&" "!==e.key||(e.preventDefault(),e.currentTarget.click())}},{children:s("svg",Object.assign({viewBox:"0 0 24 24",className:"h-4 w-4",fill:"currentColor","aria-hidden":"true"},{children:[n("circle",{cx:"5",cy:"12",r:"1.6"}),n("circle",{cx:"12",cy:"12",r:"1.6"}),n("circle",{cx:"19",cy:"12",r:"1.6"})]}))})),n(V,Object.assign({role:"menu",align:Qe?"bottom-start":"bottom-end",positionStrategy:Ye?"absolute":"fixed",width:"auto",className:"p-1 text-sm shadow-xl",style:{backgroundColor:null!==(r=Xn.backgroundColor)&&void 0!==r?r:He.primary,color:He.text,borderRadius:"12px"},border:`1px solid ${He.text}20`},{children:s("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=>{qt((t=>ie(t,e.id))),Bt(e.message),requestAnimationFrame((()=>{const t=bn.current;t&&(t.focus(),t.setSelectionRange(e.message.length,e.message.length))}))})(e)},{children:[n(M,{className:"h-4 w-4 shrink-0"}),(null==We?void 0:We["edit-message"])||"Edit message"]}))}))]}))]})]}),e.id)}))})),s("div",Object.assign({ref:xn,className:q("relative z-10 flex flex-col w-full justify-end gap-y-3 py-[3px]","block"===Ge.formFieldStyle&&"shadow"),style:Object.assign(Object.assign({},Xn),{maxHeight:`${kn}px`,overflowY:"auto"})},{children:[ys&&s("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:Xn.backgroundColor?`${Xn.backgroundColor}E6`:void 0,borderColor:He.text+"20",color:He.text,borderTopRightRadius:Ge.cornerRadius+"px",borderTopLeftRadius:Ge.cornerRadius+"px"}},{children:[n("div",Object.assign({className:"flex items-center gap-2 text-sm font-medium"},{children:s("span",{children:[gs.toLocaleString()," ",os?(null==We?void 0:We.credits)||"Credits":(null==We?void 0:We.uses)||"Uses"," ",(null==We?void 0:We.remaining)||"remaining"]})})),s("div",Object.assign({className:"flex items-center gap-3"},{children:[js&&n("button",Object.assign({className:"rounded-md px-3 py-1.5 text-xs font-semibold transition-opacity hover:opacity-90",style:{backgroundColor:He.accent,color:He.accentText},onClick:e=>{if(e.preventDefault(),e.stopPropagation(),Is)return void window.open(Is,"_blank","noopener,noreferrer");if(at)return void at();const t=J({baseUrl:sn,accessGroupId:null==et?void 0:et.accessGroupId});t&&z({deploymentId:Ke,pricingUrl:t,studioId:null==Ve?void 0:Ve.studioid,studioSessionToken:ut})}},{children:ws})),n("button",Object.assign({className:"flex h-6 w-6 items-center justify-center rounded-full opacity-60 transition-opacity hover:opacity-100",onClick:()=>dn(!0)},{children:n("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:2,stroke:"currentColor",className:"h-4 w-4"},{children:n("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M6 18L18 6M6 6l12 12"})}))}))]}))]})),!vt&&It.length>0&&n($,{className:"p-4 pb-0",isDisabled:vt}),s("div",Object.assign({className:"relative flex w-full flex-col"},{children:[qn&&s("div",Object.assign({className:q(ct?"top-6":"top-1/2","pointer-events-none absolute z-10 flex -translate-y-1/2 select-none items-center gap-x-2",Qe?"right-4":"left-4")},{children:[n("span",{className:"h-2 w-2 animate-pulse rounded-full bg-c-secondary",style:{backgroundColor:null!==(Pe=He.accent)&&void 0!==Pe?Pe:"#ff0000"}}),n("span",Object.assign({className:"text-sm text-c-secondary font-semilight",style:{color:He.text+"90"}},{children:(null==We?void 0:We.listening)||"Listening..."}))]})),n(B,Object.assign({ref:bn,className:q(Bn.i1,"py-3.5 max-h-60 px-4 w-full border-transparent bg-transparent",!$t.trim()&&!$t.includes("\n")&&"overflow-hidden text-ellipsis whitespace-nowrap placeholder:whitespace-normal placeholder:overflow-visible",Qe?"text-right":"text-left",!ct&&es&&"mb-12"),value:$t,placeholder:qn?"":Zn,onChange:e=>{Bt(e)},onKeyDown:e=>{Je||Et||"Enter"===e.key&&(e.shiftKey||(e.preventDefault(),wt||Gt||(vt?Es():_s())))},onPaste:e=>t(void 0,void 0,void 0,(function*(){const t=Array.from(e.clipboardData.files||[]);if(t.length>0){if(!Hn)return;e.preventDefault(),tt(!1),yield Ot(t)}}))},ce&&{onFocus:ce},ge&&{onBlur:ge},{dir:Qe?"rtl":"ltr"})),s("div",Object.assign({ref:yn,className:ct?"relative flex w-full items-center gap-2 px-3 pb-2 [&>button]:shrink-0 [&>button]:mr-0":q("flex items-center gap-2 absolute z-2 transition-all duration-200 ease-in-out",es?"bottom-3 right-2":"right-0 top-1/2 -translate-y-1/2"),style:Object.assign(Object.assign({},!es&&Xn.backgroundColor&&{backgroundColor:Xn.backgroundColor}),{borderTopRightRadius:Ge.cornerRadius+"px",borderBottomRightRadius:Ge.cornerRadius+"px"})},{children:[!vt&&!Nn&&Hn&&s("button",Object.assign({className:"flex h-8 w-8 items-center justify-center rounded-full outline-none transition-colors duration-200 ease-in-out disabled:cursor-default",style:{backgroundColor:Dn?He.accent+"10":void 0,color:Dn?He.accent:He.accent+"80"},disabled:wt||vt,"aria-label":null!==(De=null==We?void 0:We["attach-files"])&&void 0!==De?De:"Attach files",onClick:()=>{var e;return null===(e=mn.current)||void 0===e?void 0:e.click()}},Ln,{children:[n("input",{id:"file-upload",ref:mn,type:"file",accept:[...C,...E,..._].join(", "),multiple:!0,hidden:!0,className:"hidden",onChange:e=>t(void 0,void 0,void 0,(function*(){tt(!1),yield Ot(Array.from(e.target.files||[])),e.target.value=""}))}),n(U,{className:"h-6 w-6 shrink-0"})]})),n(r,{compact:!0}),vt?s(o,{children:[n("button",Object.assign({"aria-label":(null==We?void 0:We["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=fn.current;e&&(Ss(e),Ns(e)),bt("idle")},style:{backgroundColor:He.accent+"10",color:He.accent}},{children:n(L,{className:"h-4 w-4 shrink-0"})})),n("button",Object.assign({"aria-label":(null==We?void 0:We["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:Gt||wt||!$t.trim(),onClick:Es,style:{backgroundColor:$t.trim()?He.accent:He.accent+"10",color:$t.trim()?He.accentText:He.accent+"80"}},{children:n(A,{className:q("h-6 w-6 shrink-0",Qe&&"scale-x-[-1] transform")})}))]}):Nn?n("button",Object.assign({className:"flex h-8 w-8 items-center mr-2 justify-center rounded-full outline-none transition-colors duration-200 ease-in-out",onClick:_n,style:{backgroundColor:He.accent,color:He.accentText}},{children:n(L,{className:"h-4 w-4 shrink-0"})})):s(o,{children:[Wn&&n("button",Object.assign({className:"disabled:cursor-default flex h-8 w-8 items-center justify-center rounded-full outline-none transition-colors duration-200 ease-in-out",style:{backgroundColor:Nn?He.accent:Mn?He.accent+"10":void 0,color:Nn?He.accentText:Mn?He.accent:He.accent+"80"},disabled:wt||vt||Sn,onClick:()=>{Nn?_n():(pn.current=$t,En(qe||"en-US"))}},$n,{children:n(P,{className:"h-5 w-5 shrink-0"})})),n("button",Object.assign({className:"flex h-8 w-8 items-center mr-2 justify-center rounded-full outline-none transition-colors duration-200 ease-in-out disabled:cursor-default",style:{backgroundColor:Un||Os?He.accent:He.accent+"10",color:Un||Os?He.accentText:He.accent+"80"},disabled:!Os,onClick:()=>_s()},An,{children:n(A,{className:q("h-6 w-6 shrink-0",Qe&&"scale-x-[-1] transform")})}))]})]}))]}))]})),kt&&n(X,{error:kt,className:"mt-3"})]}))}))}));ge.displayName="Input";export{ge as default};
@@ -1 +1 @@
1
- import{__awaiter as e}from"../../../../_virtual/_tslib.js";import{jsxs as t,jsx as s}from"react/jsx-runtime";import{updateStreamTextPart as n,upsertActionApprovalPart as i}from"../../../../common/actionApproval.js";import{useState as o,useRef as r,useMemo as a}from"react";import{usePickaxeContext as l}from"../../../../hooks/pickaxe/usePickaxeContext.js";import{useAuthContext as d}from"../../Addons/Auth/hooks/useAuthContext.js";import{useResponseContext as c}from"../../../../hooks/pickaxe/useResponseContext.js";import{useDocument as u}from"../../Addons/Document/hooks/useDocument.js";import{useScroll as p}from"../../Addons/Scroll/hooks/useScroll.js";import{useArtifactContext as m}from"../../Addons/Artifact/hooks/useArtifactContext.js";import{extractUrlsFromText as f,initializeEmbedUserId as g}from"../../../../common/utils.js";import{encode as v}from"@nem035/gpt-3-encoder";import{createParser as h}from"eventsource-parser";import b from"../../common/PickaxeBranding.js";import y from"../../common/PickaxeButton.js";import j from"../../../../common/error.js";import{getValidationFailure as O}from"../../../../common/validation.js";const x=({questions:x,resetQuestions:w})=>{var I;const{origin:S,pickaxeId:k,sender:C,senderType:A,portalId:E,deploymentId:N,pickaxe:P,misc:_,translations:T,isRtl:D,setSessionId:U,setIsNewChat:L,setValidationStatus:q,setValidationUpgradeGroups:B,setValidationUpgradeUrl:J,setAccessGroup:K,onGenerateComplete:R}=l(),{token:V}=d(),{isGenerating:W,setResponse:X,setMessages:G,setStatus:$,setLimitData:F,setError:M,setActionApprovalToken:Q,setIsSwitchedToChat:Y}=c(),{documents:z,websiteLink:H,isUploading:Z,onWebsiteUpload:ee,setDocuments:te,setDocumentError:se}=u(),{scrollStartSession:ne,scrollEndSession:ie,scrollToTarget:oe}=p({auto:!(null==P?void 0:P.enablechatresponses)}),{artifacts:re,currentPopupType:ae,setArtifacts:le,setCurrentArtifact:de}=m(),[ce,ue]=o(!1),pe=r(null),me=e=>{const t=O(e);return!!t&&(M(""),F(null),q(t.status),K(t.accessGroup),B(t.upgradeGroups),J(t.upgradeUrl),!0)},fe=a((()=>x.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))),[x]);return t("div",Object.assign({className:"mt-4 flex flex-wrap justify-between gap-4 items-center",dir:D?"rtl":"ltr"},{children:[t("div",Object.assign({className:"flex items-center flex-grow flex-wrap gap-2"},{children:[s(y,Object.assign({className:"px-5 min-h-[42px]",isDisabled:Z||W||ce,onClick:()=>e(void 0,void 0,void 0,(function*(){var e,t,s,o;try{if(W||Z||ce)return;M(""),se(""),F(null),X(null);const r=["Multiple Choice","Checkbox"];for(const e of x){if(v(e.input).length>e.maxLength&&!r.includes(e.type))throw new Error((null==T?void 0:T["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==T?void 0:T["required-fields-missing"])||"You must fill out all required fields.")}const a=z.filter((e=>"finished"===e.status)),l=z.map((e=>e.name)),d=null!==(t=null===(e=null==P?void 0:P.documentuploadtype)||void 0===e?void 0:e.startsWith("enduserupload"))&&void 0!==t&&t,c=x.some((e=>"userinput:documentupload"===e.id&&e.isRequired)),u=f(H).filter((e=>!l.includes(e)));if(u.length){const e=u[u.length-1];ue(!0);const t=yield ee(e);t&&(a.push(t),yield new Promise((e=>setTimeout(e,5e3)))),ue(!1)}else if(c&&d&&!a.length)return void se((null==T?void 0:T["document-upload-required"])||"Please paste a valid website/video link or drag a file to add to the knowledge base.");const p=a.map((e=>e.documentId||"")).filter(Boolean),m=d&&p.length>0,b={};x.forEach((e=>{b[e.id]="Knowledge Upload"===e.type||e.id.includes("documentupload")?a.map((e=>e.name)).join(",")||"":e.input})),$("fetching"),ne(),oe();const y=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:S,pickaxeId:k,senderType:A,valueObj:b},m&&{documentIds:p}),C&&{sender:C}),V&&{studioSessionToken:V}),!V&&!C&&{sender:g()}),E&&{portalId:E}),N&&{deploymentId:N}))}),j=yield y.json();if(!j.success){const e=new Error(j.error||j.message||(null==T?void 0:T["failed-to-start-generation"])||"Failed to start generation");if(j.limitData)throw e.limitData=j.limitData,e;if(me(j))return;throw e}if(!j.submissionId||!j.sessionId)throw new Error((null==T?void 0:T["failed-to-start-generation"])||"Failed to start generation");Q(null!==(s=j.actionApprovalToken)&&void 0!==s?s:null);const O=j.submissionId,w=j.sessionId,I={sessionId:w,documentIds:m?p:[],question:{inputs:x.map((e=>({id:e.id,question:e.main,answer:e.input}))),responseParts:[]},messageCount:0,sentAt:new Date};X(I),(null==P?void 0:P.enablechatresponses)&&(U(w),L(!1),Y(!0),G([{id:0,role:"assistant",parts:[],documentIds:[]}])),m&&te([]),$("streaming"),pe.current=new AbortController;const _=[];let D=[...null!=re?re:[]],q=0,B=!1,J="";for(;!B;)try{const e=yield fetch(`${process.env.NEXT_PUBLIC_PICKAXE_API2_URL}/response/stream/${O}?index=${q}`,{signal:null===(o=pe.current)||void 0===o?void 0:o.signal,headers:{"Cache-Control":"no-cache",Connection:"keep-alive"}});if(!e.body)throw new Error("No response body");const t=e.body.getReader(),s=new TextDecoder,r=h({onEvent:e=>{var t,s;if(e.event&&"ping"!==e.event&&q++,"stop"!==e.event){if("error"===e.event){const t=JSON.parse(e.data);if(t.limitData)return F(t.limitData),M(""),void(B=!0);const s=t.error||t.message||(null==T?void 0:T["something-went-wrong"])||"Something went wrong.";return me(t)||M(s),void(B=!0)}if("delta"===e.event){const o=JSON.parse(e.data);if("text-start"===o.type)J="",_.push({type:"text",content:"",isVisible:null===(t=o.isVisible)||void 0===t||t});else if("text-delta"===o.type)J+=o.delta,n(_,"text",J);else if("text-end"===o.type)J="";else if("reasoning-start"===o.type)J="",_.push({type:"reasoning",content:"",isVisible:null===(s=o.isVisible)||void 0===s||s});else if("reasoning-delta"===o.type)J+=o.delta,n(_,"reasoning",J);else if("reasoning-end"===o.type)J="";else if(o.type.startsWith("data-")){const e=o;"data-action-approval"===e.type?i(_,e.data):_.push({type:e.type,content:JSON.stringify(e.data),isVisible:!0})}const r=Object.assign(Object.assign({},I),{question:Object.assign(Object.assign({},I.question),{responseParts:[..._]})});X(r),(null==P?void 0:P.enablechatresponses)&&G([{id:0,role:"assistant",parts:[..._],documentIds:[]}])}else if("artifact_created"===e.event){const t=JSON.parse(e.data);D=D.filter((e=>!(e.id===t.id&&e.version===t.version))),D.push(Object.assign(Object.assign({},t),{content:"",status:"streaming"})),le([...D]),ae.startsWith("inline")||de({id:t.id,version:t.version})}else if("artifact_updated"===e.event){const t=JSON.parse(e.data);D=D.filter((e=>!(e.id===t.id&&e.version===t.version))),D.push(Object.assign(Object.assign({},t),{content:"",status:"updating"})),le([...D]),ae.startsWith("inline")||de({id:t.id,version:t.version})}else if("artifact_rewrite"===e.event){const t=JSON.parse(e.data);D=D.filter((e=>!(e.id===t.id&&e.version===t.version))),D.push(Object.assign(Object.assign({},t),{content:"",status:"streaming"})),le([...D]),ae.startsWith("inline")||de({id:t.id,version:t.version})}else if("artifact_content"===e.event){const t=JSON.parse(e.data),s=t.token.replace(/\u200B/g,"");D=D.map((e=>e.id===t.id&&e.version===t.version?Object.assign(Object.assign({},e),{content:e.content+s,status:"streaming"}):e)),le([...D])}else if("artifact_finished"===e.event){const t=JSON.parse(e.data);le(D.map((e=>e.id===t.id?Object.assign(Object.assign({},e),{status:"finished"}):e)))}}else B=!0}});for(;;){const{value:e,done:n}=yield t.read();if(n)break;r.feed(s.decode(e))}B||(yield new Promise((e=>setTimeout(e,1e3))))}catch(e){if(e instanceof Error&&"AbortError"===e.name)return void(B=!0);console.warn("Stream connection lost, retrying...",e),yield new Promise((e=>setTimeout(e,1e3)))}null==R||R(w)}catch(e){if((e=>e instanceof Error&&Boolean(e.limitData))(e))return F(e.limitData),M(""),void oe();let t=j(e)||"";t&&!t.includes("Unexpected token 'A',")||(t=(null==T?void 0:T["high-traffic-try-again-later"])||"Oops! We're experiencing high traffic at the moment. Please try again later."),me(t)||M(t),oe()}finally{$("idle"),ue(!1),ie()}}))},{children:ce?(null==T?void 0:T.processing)||"Processing...":Z?(null==T?void 0:T.uploading)||"Uploading...":W?(null==T?void 0:T.loading)||"Loading...":null!==(I=null==P?void 0:P.submittext)&&void 0!==I?I:"Submit"})),fe&&s(y,Object.assign({variant:"transparent-text",className:"min-h-[42px] px-5",isDisabled:Z||W||ce,onClick:w},{children:(null==T?void 0:T["form.clear-form"])||(null==T?void 0:T["clear-form"])||"Clear form"}))]})),!_.isWhiteLabel&&s(b,{containerClassName:"justify-end"})]}))};export{x as default};
1
+ import{__awaiter as e}from"../../../../_virtual/_tslib.js";import{jsx as t,jsxs as s}from"react/jsx-runtime";import{getFormQuestionError as n}from"../../../../common/formQuestionValidation.js";import{useEndUserModel as i}from"../../../../hooks/pickaxe/useEndUserModel.js";import o from"../../common/EndUserModelPicker.js";import{updateStreamTextPart as r,upsertActionApprovalPart as a}from"../../../../common/actionApproval.js";import{useState as l,useRef as d,useMemo as c}from"react";import{usePickaxeContext as u}from"../../../../hooks/pickaxe/usePickaxeContext.js";import{useAuthContext as p}from"../../Addons/Auth/hooks/useAuthContext.js";import{useResponseContext as m}from"../../../../hooks/pickaxe/useResponseContext.js";import{useDocument as f}from"../../Addons/Document/hooks/useDocument.js";import{useScroll as g}from"../../Addons/Scroll/hooks/useScroll.js";import{useArtifactContext as v}from"../../Addons/Artifact/hooks/useArtifactContext.js";import{extractUrlsFromText as h,initializeEmbedUserId as b}from"../../../../common/utils.js";import{createParser as j}from"eventsource-parser";import y from"../../common/PickaxeBranding.js";import O from"../../common/PickaxeButton.js";import x from"../../../../common/error.js";import{getValidationFailure as w}from"../../../../common/validation.js";const k=({navigation:k,paged:I=!1,questions:S,resetQuestions:A,onInvalidQuestion:C})=>{var E;const{origin:N,pickaxeId:P,sender:_,senderType:T,portalId:U,deploymentId:D,pickaxe:L,misc:q,translations:B,isRtl:J,setSessionId:V,setIsNewChat:K,setValidationStatus:W,setValidationUpgradeGroups:X,setValidationUpgradeUrl:R,setAccessGroup:G,onGenerateComplete:M}=u(),{value:$}=i(),{token:Q}=p(),{isGenerating:F,setResponse:Y,setMessages:z,setStatus:H,setLimitData:Z,setError:ee,setActionApprovalToken:te,setIsSwitchedToChat:se}=m(),{documents:ne,websiteLink:ie,isUploading:oe,onWebsiteUpload:re,setDocuments:ae,setDocumentError:le}=f(),{scrollStartSession:de,scrollEndSession:ce,scrollToTarget:ue}=g({auto:!(null==L?void 0:L.enablechatresponses)}),{artifacts:pe,currentPopupType:me,setArtifacts:fe,setCurrentArtifact:ge}=v(),[ve,he]=l(!1),be=d(null),je=e=>{const t=w(e);return!!t&&(ee(""),Z(null),W(t.status),G(t.accessGroup),X(t.upgradeGroups),R(t.upgradeUrl),!0)},ye=c((()=>S.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))),[S])&&t(O,Object.assign({variant:"transparent-text",className:"min-h-[42px] px-5",isDisabled:oe||F||ve,onClick:A},{children:(null==B?void 0:B["form.clear-form"])||(null==B?void 0:B["clear-form"])||"Clear form"}));return s("div",Object.assign({className:I?"flex flex-col gap-4":"mt-4 flex flex-wrap justify-between gap-4 items-center",dir:J?"rtl":"ltr"},{children:[I&&t(o,{}),s("div",Object.assign({className:I?"flex flex-wrap items-center justify-end gap-2":"flex items-center flex-grow flex-wrap gap-2"},{children:[!I&&t(o,{}),I&&k&&t("div",Object.assign({className:"me-auto shrink-0"},{children:k})),I&&ye,t(O,Object.assign({className:"px-5 min-h-[42px]",isDisabled:oe||F||ve,onClick:()=>e(void 0,void 0,void 0,(function*(){var e,t,s,i,o;try{if(F||oe||ve)return;ee(""),le(""),Z(null),Y(null);for(const t of S){const s=n(t);if(s)throw null==C||C(t.id),new Error(null!==(e=null==B?void 0:B[s])&&void 0!==e?e:"response-too-long"===s?"One or more of your responses is too long!":"You must fill out all required fields.")}const l=ne.filter((e=>"finished"===e.status)),d=ne.map((e=>e.name)),c=null!==(s=null===(t=null==L?void 0:L.documentuploadtype)||void 0===t?void 0:t.startsWith("enduserupload"))&&void 0!==s&&s,u=S.some((e=>"userinput:documentupload"===e.id&&e.isRequired)),p=h(ie).filter((e=>!d.includes(e)));if(p.length){const e=p[p.length-1];he(!0);const t=yield re(e);t&&(l.push(t),yield new Promise((e=>setTimeout(e,5e3)))),he(!1)}else if(u&&c&&!l.length)return null==C||C("userinput:documentupload"),void le((null==B?void 0:B["document-upload-required"])||"Please paste a valid website/video link or drag a file to add to the knowledge base.");const m=l.map((e=>e.documentId||"")).filter(Boolean),f=c&&m.length>0,g={};S.forEach((e=>{g[e.id]="Knowledge Upload"===e.type||e.id.includes("documentupload")?l.map((e=>e.name)).join(",")||"":e.input})),H("fetching"),de(),ue();const v=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,selectedModel:$||void 0,origin:N,pickaxeId:P,senderType:T,valueObj:g},f&&{documentIds:m}),_&&{sender:_}),Q&&{studioSessionToken:Q}),!Q&&!_&&{sender:b()}),U&&{portalId:U}),D&&{deploymentId:D}))}),y=yield v.json();if(!y.success){const e=new Error(y.error||y.message||(null==B?void 0:B["failed-to-start-generation"])||"Failed to start generation");if(y.limitData)throw e.limitData=y.limitData,e;if(je(y))return;throw e}if(!y.submissionId||!y.sessionId)throw new Error((null==B?void 0:B["failed-to-start-generation"])||"Failed to start generation");te(null!==(i=y.actionApprovalToken)&&void 0!==i?i:null);const O=y.submissionId,x=y.sessionId,w={sessionId:x,documentIds:f?m:[],question:{inputs:S.map((e=>({id:e.id,question:e.main,answer:e.input}))),responseParts:[]},messageCount:0,sentAt:new Date};Y(w),(null==L?void 0:L.enablechatresponses)&&(V(x),K(!1),se(!0),z([{id:0,role:"assistant",parts:[],documentIds:[]}])),f&&ae([]),H("streaming"),be.current=new AbortController;const k=[];let I=[...null!=pe?pe:[]],A=0,E=!1,q="";for(;!E;)try{const e=yield fetch(`${process.env.NEXT_PUBLIC_PICKAXE_API2_URL}/response/stream/${O}?index=${A}`,{signal:null===(o=be.current)||void 0===o?void 0:o.signal,headers:{"Cache-Control":"no-cache",Connection:"keep-alive"}});if(!e.body)throw new Error("No response body");const t=e.body.getReader(),s=new TextDecoder,n=j({onEvent:e=>{var t,s;if(e.event&&"ping"!==e.event&&A++,"stop"!==e.event){if("error"===e.event){const t=JSON.parse(e.data);if(t.limitData)return Z(t.limitData),ee(""),void(E=!0);const s=t.error||t.message||(null==B?void 0:B["something-went-wrong"])||"Something went wrong.";return je(t)||ee(s),void(E=!0)}if("delta"===e.event){const n=JSON.parse(e.data);if("text-start"===n.type)q="",k.push({type:"text",content:"",isVisible:null===(t=n.isVisible)||void 0===t||t});else if("text-delta"===n.type)q+=n.delta,r(k,"text",q);else if("text-end"===n.type)q="";else if("reasoning-start"===n.type)q="",k.push({type:"reasoning",content:"",isVisible:null===(s=n.isVisible)||void 0===s||s});else if("reasoning-delta"===n.type)q+=n.delta,r(k,"reasoning",q);else if("reasoning-end"===n.type)q="";else if(n.type.startsWith("data-")){const e=n;"data-action-approval"===e.type?a(k,e.data):k.push({type:e.type,content:JSON.stringify(e.data),isVisible:!0})}const i=Object.assign(Object.assign({},w),{question:Object.assign(Object.assign({},w.question),{responseParts:[...k]})});Y(i),(null==L?void 0:L.enablechatresponses)&&z([{id:0,role:"assistant",parts:[...k],documentIds:[]}])}else if("artifact_created"===e.event){const t=JSON.parse(e.data);I=I.filter((e=>!(e.id===t.id&&e.version===t.version))),I.push(Object.assign(Object.assign({},t),{content:"",status:"streaming"})),fe([...I]),me.startsWith("inline")||ge({id:t.id,version:t.version})}else if("artifact_updated"===e.event){const t=JSON.parse(e.data);I=I.filter((e=>!(e.id===t.id&&e.version===t.version))),I.push(Object.assign(Object.assign({},t),{content:"",status:"updating"})),fe([...I]),me.startsWith("inline")||ge({id:t.id,version:t.version})}else if("artifact_rewrite"===e.event){const t=JSON.parse(e.data);I=I.filter((e=>!(e.id===t.id&&e.version===t.version))),I.push(Object.assign(Object.assign({},t),{content:"",status:"streaming"})),fe([...I]),me.startsWith("inline")||ge({id:t.id,version:t.version})}else if("artifact_content"===e.event){const t=JSON.parse(e.data),s=t.token.replace(/\u200B/g,"");I=I.map((e=>e.id===t.id&&e.version===t.version?Object.assign(Object.assign({},e),{content:e.content+s,status:"streaming"}):e)),fe([...I])}else if("artifact_finished"===e.event){const t=JSON.parse(e.data);fe(I.map((e=>e.id===t.id?Object.assign(Object.assign({},e),{status:"finished"}):e)))}}else E=!0}});for(;;){const{value:e,done:i}=yield t.read();if(i)break;n.feed(s.decode(e))}E||(yield new Promise((e=>setTimeout(e,1e3))))}catch(e){if(e instanceof Error&&"AbortError"===e.name)return void(E=!0);console.warn("Stream connection lost, retrying...",e),yield new Promise((e=>setTimeout(e,1e3)))}null==M||M(x)}catch(e){if((e=>e instanceof Error&&Boolean(e.limitData))(e))return Z(e.limitData),ee(""),void ue();let t=x(e)||"";t&&!t.includes("Unexpected token 'A',")||(t=(null==B?void 0:B["high-traffic-try-again-later"])||"Oops! We're experiencing high traffic at the moment. Please try again later."),je(t)||ee(t),ue()}finally{H("idle"),he(!1),ce()}}))},{children:ve?(null==B?void 0:B.processing)||"Processing...":oe?(null==B?void 0:B.uploading)||"Uploading...":F?(null==B?void 0:B.loading)||"Loading...":null!==(E=null==L?void 0:L.submittext)&&void 0!==E?E:"Submit"})),!I&&ye]})),!q.isWhiteLabel&&t(y,{containerClassName:"justify-end"})]}))};export{k as default};
@@ -1 +1 @@
1
- import{jsxs as e,jsx as t}from"react/jsx-runtime";import{useState as o,useRef as r,useMemo as i,useEffect as n,Fragment as s}from"react";import{usePickaxeContext as p}from"../../../../hooks/pickaxe/usePickaxeContext.js";import{useResponseContext as l}from"../../../../hooks/pickaxe/useResponseContext.js";import{readAgentPrefill as a,resolveAgentFormPrefill as d}from"../../../../common/agentPrefill.js";import u from"../../../Core/ErrorAlert.js";import m from"../../common/PickaxeUpgradeCard.js";import c from"./Input.js";import f from"./Option.js";import g from"./Document.js";import h from"./Checkbox.js";import x from"./Submit.js";const j=({onLongInputPaste:j})=>{const{deploymentId:w,pickaxeId:y,pickaxe:k,translations:O}=p(),{error:b}=l(),[q,C]=o([]),[D,I]=o([]),[v]=o((()=>a([w,y]))),P=r(!1),[R,A]=o(null),L=e=>{C((t=>t.map((t=>t.id===e.id?e:t))))},U=i((()=>D),[D]);return n((()=>{if(!k)return;if(!k._questions)return;if(P.current)return;const e=new Date("2025-10-16T23:10:00Z"),t=!k.updatedAt||new Date(k.updatedAt)<e,o=k._questions.map(((e,o)=>{var r;let i="";const n="string"==typeof e.allowOther?"true"===e.allowOther:!!e.allowOther;if("Knowledge Upload"===e.type||"userinput:documentupload"===e.id)i="";else if("Multiple Choice"===e.type||"multiple"===e.type){const t=e.example.split("S3P32X");t.includes(i)||n||(i=t[0])}let s=e.secondary||"";return t&&(s=e.secondary||("Knowledge Upload"===e.type?null!==(r=null==O?void 0:O["form-doc-placeholder"])&&void 0!==r?r:"Paste a website/video link or drag a file":e.example)||""),Object.assign(Object.assign({order:o+1,id:e.id,type:e.type,main:e.main,example:e.example,input:i,length:0,maxLength:parseInt(e.answerlength),placeholder:s,allowOther:n},e.isRequired&&{isRequired:"string"==typeof e.isRequired?"true"===e.isRequired:e.isRequired}),e.isDropdown&&{isDropdown:"string"==typeof e.isDropdown?"true"===e.isDropdown:e.isDropdown})})),r=o.map((e=>{const t=d(e,v.formInputs.get(e.id));return null===t?e:Object.assign(Object.assign({},e),{input:t,length:t.length})}));P.current=!0,C(r),I(o)}),[v,k,O]),e("div",Object.assign({className:"mt-8 flex flex-col gap-y-8 max-lg:px-4"},{children:[q.map(((e,o)=>"Multiple Choice"===e.type?t(s,{children:t(f,{field:e,update:L})},o):"Checkbox"===e.type?t(s,{children:t(h,{field:e,update:L})},o):"userinput:documentupload"===e.id?t(s,{children:t(g,{field:e,update:L})},o):t(s,{children:t(c,{field:e,update:L,activeVoiceId:R,setActiveVoiceId:A,onLongPaste:j})},o))),t(u,{error:b}),t(m,{}),t(x,{questions:q,update:L,resetQuestions:()=>C(U)})]}))};export{j as default};
1
+ import{jsx as e,jsxs as o,Fragment as i}from"react/jsx-runtime";import{getFormQuestionError as t}from"../../../../common/formQuestionValidation.js";import{useDocument as n}from"../../Addons/Document/hooks/useDocument.js";import r from"../../common/PickaxeButton.js";import{sortFormInputs as l}from"../../../../common/formInputOrder.js";import{useState as s,useRef as a,useMemo as d,useEffect as u,Fragment as p}from"react";import{usePickaxeContext as m}from"../../../../hooks/pickaxe/usePickaxeContext.js";import{useResponseContext as c}from"../../../../hooks/pickaxe/useResponseContext.js";import{readAgentPrefill as g,resolveAgentFormPrefill as f}from"../../../../common/agentPrefill.js";import h from"../../../Core/ErrorAlert.js";import v from"../../common/PickaxeUpgradeCard.js";import x from"./Input.js";import b from"./Option.js";import j from"./Document.js";import w from"./Checkbox.js";import y from"./Submit.js";const k=({onLongInputPaste:k})=>{var O,D,q,I;const{deploymentId:C,pickaxeId:P,pickaxe:N,translations:R}=m(),{error:U,setError:A,isGenerating:L}=c(),{documents:B,websiteLink:K,isUploading:M}=n(),[Q,S]=s(0),V="paged"===(null==N?void 0:N.formLayout),[E,F]=s([]),[_,G]=s([]),[T]=s((()=>g([C,P]))),X=a(!1),[Y,Z]=s(null),z=e=>{F((o=>o.map((o=>o.id===e.id?e:o))))},H=d((()=>_),[_]);u((()=>{if(!N)return;if(!N._questions)return;if(X.current)return;const e=new Date("2025-10-16T23:10:00Z"),o=!N.updatedAt||new Date(N.updatedAt)<e,i=l(N._questions).map(((e,i)=>{var t;let n="";const r="string"==typeof e.allowOther?"true"===e.allowOther:!!e.allowOther;if("Knowledge Upload"===e.type||"userinput:documentupload"===e.id)n="";else if("Multiple Choice"===e.type||"multiple"===e.type){const o=e.example.split("S3P32X");o.includes(n)||r||(n=o[0])}let l=e.secondary||"";return o&&(l=e.secondary||("Knowledge Upload"===e.type?null!==(t=null==R?void 0:R["form-doc-placeholder"])&&void 0!==t?t:"Paste a website/video link or drag a file":e.example)||""),Object.assign(Object.assign({order:i+1,id:e.id,type:e.type,main:e.main,example:e.example,input:n,length:0,maxLength:parseInt(e.answerlength),placeholder:l,allowOther:r},e.isRequired&&{isRequired:"string"==typeof e.isRequired?"true"===e.isRequired:e.isRequired}),e.isDropdown&&{isDropdown:"string"==typeof e.isDropdown?"true"===e.isDropdown:e.isDropdown})})),t=i.map((e=>{const o=f(e,T.formInputs.get(e.id));return null===o?e:Object.assign(Object.assign({},e),{input:o,length:o.length})}));X.current=!0,F(t),G(i)}),[T,N,R]);const J=Math.min(Q,Math.max(0,E.length-1)),W=J>=E.length-1,$=e(r,Object.assign({variant:"secondary",className:"min-h-[42px]",isDisabled:0===J||L||M||Boolean(Y),onClick:()=>{A(""),S(J-1)}},{children:null!==(O=null==R?void 0:R.back)&&void 0!==O?O:"Back"}));return o("div",Object.assign({className:"mt-8 flex flex-col gap-y-8 max-lg:px-4"},{children:[V&&E.length>0&&o("div",{children:[e("p",Object.assign({"aria-live":"polite",className:"mb-2 text-sm"},{children:(null!==(D=null==R?void 0:R["form-page-progress"])&&void 0!==D?D:"Question {current} of {total}").replace("{current}",String(J+1)).replace("{total}",String(E.length))})),e("div",Object.assign({role:"progressbar","aria-label":null!==(q=null==R?void 0:R["form-progress"])&&void 0!==q?q:"Form progress","aria-valuemin":0,"aria-valuemax":E.length,"aria-valuenow":J+1,className:"h-1.5 overflow-hidden rounded-full bg-current/10"},{children:e("div",{className:"h-full bg-current",style:{width:(J+1)/E.length*100+"%"}})}))]}),E.map(((o,i)=>e("div",Object.assign({hidden:V&&i!==J},{children:"Multiple Choice"===o.type?e(p,{children:e(b,{field:o,update:z})},i):"Checkbox"===o.type?e(p,{children:e(w,{field:o,update:z})},i):"Knowledge Upload"===o.type||"userinput:documentupload"===o.id?e(p,{children:e(j,{field:o,update:z})},i):e(p,{children:e(x,{field:o,update:z,activeVoiceId:Y,setActiveVoiceId:Z,onLongPaste:k})},i)}),o.id))),e(h,{error:U}),e(v,{}),o("div",Object.assign({className:V?"flex flex-wrap items-start justify-between gap-3":void 0},{children:[V&&E.length>0&&o(i,{children:[!W&&$,!W&&e(r,Object.assign({variant:"primary",isDisabled:L||M||Boolean(Y),onClick:()=>{var e,o;const i=E[J];if(!i||L||M||Y)return;const n=t(i);n?A(null!==(e=null==R?void 0:R[n])&&void 0!==e?e:"response-too-long"===n?"One or more of your responses is too long!":"You must fill out all required fields."):"Knowledge Upload"!==i.type&&"userinput:documentupload"!==i.id||!i.isRequired||K.trim()||B.some((e=>"finished"===e.status))?(A(""),S(J+1)):A(null!==(o=null==R?void 0:R["document-upload-required"])&&void 0!==o?o:"Please paste a valid website/video link or drag a file to add to the knowledge base.")}},{children:null!==(I=null==R?void 0:R["form-next"])&&void 0!==I?I:"Next"}))]}),e("div",Object.assign({hidden:V&&!W,className:V?"ms-auto min-w-0 flex-1":void 0},{children:e(y,{paged:V,navigation:V&&E.length>0?$:void 0,questions:E,update:z,resetQuestions:()=>{F(H),S(0)},onInvalidQuestion:e=>{const o=E.findIndex((o=>o.id===e));o>=0&&S(o)}})}))]}))]}))};export{k as default};
@@ -1 +1 @@
1
- import{__awaiter as e}from"../../_virtual/_tslib.js";import{jsx as t}from"react/jsx-runtime";import{createContext as i,useState as o,useEffect as s}from"react";import{ArtifactProvider as n}from"./Addons/Artifact/Provider.js";import a from"./DimensionProvider.js";import r from"./ResponseProvider.js";import l from"./Addons/Document/Provider.js";import d from"./Addons/Auth/Provider.js";const c=i({}),p=({children:i,origin:p,sender:u,senderType:g,deploymentId:f,portalId:m,deploymentType:h,deploymentDimensions:y,deploymentMisc:b,styles:w,colors:v,limits:k={},misc:S={isWhiteLabel:!0,isProfileImage:!0,isChatImage:!0,isTitle:!0,isDescription:!0,isHistory:!0},translations:C,artifact:F={popupType:"auto"},responsiveBy:P="viewport",locale:I="en",opacity:x=1,forceMobile:T=!1,disableHtml:A=!1,disableJs:q=!1,disableCss:U=!1,loadFont:D=!0,isRtl:O=!1,isEmbed:R=!1,isDropShadow:j=!1,allowGuestUsage:L=!0,persistActiveConversation:E=!1,preventInitialSessionId:M=!1,onUpgrade:G,onGenerateComplete:H,onSessionIdChange:W})=>{const[B,V]=o(""),[N,X]=o(""),[Y,J]=o(""),[_,z]=o(""),[Q,K]=o(u),[Z,$]=o(null),[ee,te]=o(g),[ie,oe]=o("loading"),[se,ne]=o([]),[ae,re]=o(null),[le,de]=o(null),[ce,pe]=o(null),[ue,ge]=o(null),[fe,me]=o(!1),[he,ye]=o(!0),[be,we]=o(!0),[ve,ke]=o(!1);return s((()=>{me(!1)}),[null==w?void 0:w.font]),s((()=>{e(void 0,void 0,void 0,(function*(){if("undefined"!=typeof window&&D&&!fe&&(null==w?void 0:w.font)&&"Real Head Pro"!==w.font)try{(yield import("webfontloader")).default.load({google:{families:[w.font]},active:()=>{me(!0)},inactive:()=>{console.error("[pxe] failed to load font {styles.font}"),me(!0)}})}catch(e){console.error("[pxe] failed to load font:",e),me(!0)}}))}),[D,fe,null==w?void 0:w.font]),s((()=>{K(u)}),[u]),t(c.Provider,Object.assign({value:Object.assign(Object.assign({origin:p,contextId:B,pickaxeId:N,sessionId:Y,lastSessionId:_,sender:Q,senderType:ee,portalId:m,deploymentId:f,deploymentType:h,validationStatus:ie,validationUpgradeGroups:se,validationUpgradeUrl:ae,deploymentDimensions:y,deploymentMisc:b,accessGroup:Z,pickaxe:ue,styles:Object.assign({theme:"light",font:"Real Head Pro",fontSize:"md",formFieldStyle:"box",btnStyle:"filled",outlineThickness:1,cornerRadius:4},w),colors:Object.assign({primary:"#F6F8FA",text:"#000000",secondary:"#FFFFFF",secondaryText:"#000000",accent:"#228DD7",accentText:"#FFFFFF",error:"#EF4444"},v),misc:S,translations:Object.assign({"new-chat":"New chat","see-history":"See history","see-input":"See input","hide-input":"Hide input",processing:"Processing...",uploading:"Uploading...",loading:"Loading...","powered-by-pickaxe":"Powered by Pickaxe","form-doc-placeholder":"Paste a website/video link or drag a file",website:"Website",copy:"Copy","file-limit-reached":"You have reached the file limit.",save:"Save","save-as":"Save as","please-enter-email-to-continue":"Please enter your email to continue:","enter-email-to-continue":"Enter here your email to continue",submit:"Submit",sending:"Sending...","check-your-inbox":"Check your inbox","we-sent-your-an-activation-link":"We sent you an activation link. Please be sure to check your spam folder too.",resend:"Resend",resending:"Resending...","enter-verification-code":"Or enter the 6-digit code from the email","verification-code-session-missing":"Your login request could not be found. Please resend the email.","verification-code-invalid":"Invalid verification code.",verifying:"Verifying...",verify:"Verify","chat-history":"Chat History","exit-chat-history":"Exit Chat History","no-history":"No history yet.","log-out":"Log Out","clear-form":"Clear form","form.clear-form":"Clear form",expand:"Expand","expand-artifact":"Expand artifact",collapse:"Collapse","collapse-artifact":"Collapse artifact",close:"Close","close-artifact":"Close artifact",download:"Download","copy-artifact-content":"Copy artifact content","download-artifact-content":"Download artifact content","delete-confirm":"Are you sure you want to delete this conversation?",other:"Other","select-options":"Select option(s)","select-an-option":"Select an option","type-your-answer":"Type your answer...",cancel:"Cancel","rename-chat":"Rename chat","delete-chat":"Delete chat","conversation-name":"Conversation name","not-available":"n/a","open-chat":"Open Chat",copied:"Copied!","copy-assistant-message":"Copy assistant message","failed-delete-conversation":"Failed to delete conversation.","failed-update-name":"Failed to update name.","failed-rename-chat":"Failed to rename chat.","failed-delete-chat":"Failed to delete chat.","drop-files-to-upload":"Drop files to upload","add-anything-to-the-conversation":"Add anything to the conversation","something-went-wrong-please-try-again":"Something went wrong. Please try again, or","contact-us":"contact us","for-help":"for help.",back:"Back","upgrade-required":"Upgrade Required","please-upgrade-to-continue-using-this-tool":"Please upgrade to continue using this tool.","access-locked":"Access Locked","this-tool-is-locked-contact-owner":"This tool is locked to use. Contact owner for more information.","access-denied":"Access Denied","login-is-required":"Login is required.","no-access-request-access":"It looks like you don't have access to these resources. Please request access to continue.","request-access":"Request Access",or:"or","sign-in-with-different-account":"Sign in with a different account","access-requested-successfully":"Successfully requested access!","open-tool":"Open Tool","fab-icon":"FAB Icon","iframe-artifact-fallback":"Iframe is not supported, please view this artifact in a browser that supports it.","html-preview":"HTML preview","image-link-is-broken":"[Image link is broken]","download-video":"Download Video","available-plans":"Available Plans",buy:"Buy",credits:"Credits",uses:"Uses",credits_upper:"CREDITS",uses_upper:"USES",free:"Free","pricing.free":"Free",unlimited:"Unlimited","pricing.unlimited":"Unlimited","authentication-required":"Authentication Required","smithery-auth-description-prefix":"The tool you are trying to use requires authentication with",dismiss:"Dismiss",connect:"Connect",connecting:"Connecting...","auth-failed":"Auth failed","failed-to-finalize-authentication":"Failed to finalize authentication.","must-be-logged-in-to-connect-smithery":"You must be logged in to connect Smithery MCPs.","feedback-dislike-input-placeholder":"Write here...","feedback-submit":"Submit","feedback-thanks":"Thanks for the feedback!","feedback-like-title":"What went right?","feedback-dislike-title":"What went wrong?","feedback-dislike-message":"Help us improve our answers","what-do-you-want-to-talk-about":"What do you want to talk about?","failed-to-start-generation":"Failed to start generation","response-too-long":"One or more of your responses is too long!","required-fields-missing":"You must fill out all required fields.","something-went-wrong":"Something went wrong.","something-went-wrong-try-again":"Something went wrong, please try again.","high-traffic-try-again-later":"Oops! We're experiencing high traffic at the moment. Please try again later.","queue-message":"Queue message","stop-response":"Stop response",steer:"Steer","steer-with":"Steer with",steering:"Steering...",starting:"Starting...","remove-queued-message":"Remove queued message","edit-message":"Edit message","more-options":"More options","failed-to-interrupt-current-response":"Failed to interrupt the current response.","current-response-still-stopping":"The current response is still stopping. Please send your message again in a moment.","queued-message-waiting":"A queued message is waiting for the previous response to finish.",listening:"Listening...",remaining:"remaining",upgrade:"Upgrade","pricing.upgrade":"Upgrade","email-address-cannot-be-empty":"Email address cannot be empty.","please-enter-valid-email-address":"Please enter a valid email address.","failed-to-send-sign-in-link":"Failed to send sign-in link.",tool:"Tool","document-processing-failed":"Document processing failed","invalid-upload-file-types":"You can only upload PDF, TXT, DOCX, CSV, XLSX, JSON, PPTX, MD, HTML, XML, PNG, JPEG, WEBP, or GIF files. Please try again.","invalid-website-or-youtube-link":"Please paste a valid website URL or Youtube video link to add to the knowledge base.","website-processing-failed":"Website processing failed, please try again.","invalid-website-url":"Please paste a valid website URL","document-upload-required":"Please paste a valid website/video link or drag a file to add to the knowledge base.",thinking:"Thinking...",thought:"Thought","thought-for":"Thought for",seconds:"seconds","untitled-artifact":"Untitled Artifact",created:"Created",updated:"Updated",rewrote:"Rewrote",artifact:"Artifact","iframe-not-supported-use-different-browser":"Iframe not supported, use a different browser."},C),artifact:F,responsiveBy:P,locale:I,opacity:x,forceMobile:T,loadFont:D,disableHtml:A,disableJs:q,disableCss:U,isFontLoaded:fe,isNewChat:he,isShowIceBreaker:be,isShowFeedbackMessage:ve,isRtl:O,isEmbed:R,isDropShadow:j,allowGuestUsage:L,persistActiveConversation:E,clientSecret:ce,stripeAccountId:le,preventInitialSessionId:M,setClientSecret:pe,setStripeAccountId:de,setContextId:V,setValidationStatus:oe,setValidationUpgradeGroups:ne,setValidationUpgradeUrl:re,setPickaxeId:X,setSessionId:e=>{J((t=>{const i="function"==typeof e?e(t):e;return null==W||W(i),i}))},setLastSessionId:z,setSender:K,setSenderType:te,setAccessGroup:$,setPickaxe:ge,setIsFontLoaded:me,setIsNewChat:ye,setIsShowIceBreaker:we,setIsShowFeedbackMessage:ke},G&&{onUpgrade:G}),H&&{onGenerateComplete:H})},{children:t(d,{children:t(a,{children:t(r,Object.assign({limits:k},{children:t(l,{children:t(n,Object.assign({},F,{children:i}))})}))})})}))};export{c as PickaxeContext,p as PickaxeProvider};
1
+ import{__awaiter as e}from"../../_virtual/_tslib.js";import{jsx as t}from"react/jsx-runtime";import{createContext as i,useState as o,useEffect as n}from"react";import{ArtifactProvider as a}from"./Addons/Artifact/Provider.js";import s from"./DimensionProvider.js";import r from"./ResponseProvider.js";import l from"./Addons/Document/Provider.js";import d from"./Addons/Auth/Provider.js";const c=i({}),p=({children:i,origin:p,sender:u,senderType:f,deploymentId:m,portalId:g,deploymentType:h,deploymentDimensions:y,deploymentMisc:v,styles:b,colors:w,limits:k={},misc:S={isWhiteLabel:!0,isProfileImage:!0,isChatImage:!0,isTitle:!0,isDescription:!0,isHistory:!0},translations:C,artifact:F={popupType:"auto"},responsiveBy:P="viewport",locale:I="en",opacity:x=1,forceMobile:A=!1,disableHtml:T=!1,disableJs:D=!1,disableCss:q=!1,loadFont:U=!0,isRtl:R=!1,isEmbed:O=!1,isDropShadow:j=!1,allowGuestUsage:L=!0,persistActiveConversation:E=!1,preventInitialSessionId:M=!1,onUpgrade:G,onGenerateComplete:H,onSessionIdChange:W})=>{const[B,N]=o(""),[V,Y]=o(""),[X,J]=o(""),[_,z]=o(""),[Q,K]=o(u),[Z,$]=o(null),[ee,te]=o(f),[ie,oe]=o("loading"),[ne,ae]=o([]),[se,re]=o(null),[le,de]=o(null),[ce,pe]=o(null),[ue,fe]=o(null),[me,ge]=o("");n((()=>ge("")),[V]);const[he,ye]=o(!1),[ve,be]=o(!0),[we,ke]=o(!0),[Se,Ce]=o(!1);return n((()=>{ye(!1)}),[null==b?void 0:b.font]),n((()=>{e(void 0,void 0,void 0,(function*(){if("undefined"!=typeof window&&U&&!he&&(null==b?void 0:b.font)&&"Real Head Pro"!==b.font)try{(yield import("webfontloader")).default.load({google:{families:[b.font]},active:()=>{ye(!0)},inactive:()=>{console.error("[pxe] failed to load font {styles.font}"),ye(!0)}})}catch(e){console.error("[pxe] failed to load font:",e),ye(!0)}}))}),[U,he,null==b?void 0:b.font]),n((()=>{K(u)}),[u]),t(c.Provider,Object.assign({value:Object.assign(Object.assign({origin:p,contextId:B,pickaxeId:V,sessionId:X,lastSessionId:_,sender:Q,senderType:ee,portalId:g,deploymentId:m,deploymentType:h,validationStatus:ie,validationUpgradeGroups:ne,validationUpgradeUrl:se,deploymentDimensions:y,deploymentMisc:v,accessGroup:Z,pickaxe:ue,selectedModel:me,setSelectedModel:ge,styles:Object.assign({theme:"light",font:"Real Head Pro",fontSize:"md",formFieldStyle:"box",btnStyle:"filled",outlineThickness:1,cornerRadius:4},b),colors:Object.assign({primary:"#F6F8FA",text:"#000000",secondary:"#FFFFFF",secondaryText:"#000000",accent:"#228DD7",accentText:"#FFFFFF",error:"#EF4444"},w),misc:S,translations:Object.assign({"form-next":"Next","form-progress":"Form progress","form-page-progress":"Question {current} of {total}","action-confirmation-needed":"Confirmation needed","action-confirmation-unavailable":"Confirmation unavailable","action-approved":"Approved","action-declined":"Declined","action-expired":"Expired","action-not-run":"Not run","action-label":"Action: {name}","action-confirmation-description":"Review this action before it runs. Your decision applies only to this call.","action-inputs":"Action inputs","decline-action":"Decline","approve-action":"Approve action","action-confirmation-resolved":"This confirmation has expired or already been resolved.","action-decision-failed":"Could not save your decision. Please try again.","ai-model":"AI model","default-ai-model":"Default ({model})","attach-files":"Attach files","new-chat":"New chat","see-history":"See history","see-input":"See input","hide-input":"Hide input",processing:"Processing...",uploading:"Uploading...",loading:"Loading...","powered-by-pickaxe":"Powered by Pickaxe","form-doc-placeholder":"Paste a website/video link or drag a file",website:"Website",copy:"Copy","file-limit-reached":"You have reached the file limit.",save:"Save","save-as":"Save as","please-enter-email-to-continue":"Please enter your email to continue:","enter-email-to-continue":"Enter here your email to continue",submit:"Submit",sending:"Sending...","check-your-inbox":"Check your inbox","we-sent-your-an-activation-link":"We sent you an activation link. Please be sure to check your spam folder too.",resend:"Resend",resending:"Resending...","enter-verification-code":"Or enter the 6-digit code from the email","verification-code-session-missing":"Your login request could not be found. Please resend the email.","verification-code-invalid":"Invalid verification code.",verifying:"Verifying...",verify:"Verify","chat-history":"Chat History","exit-chat-history":"Exit Chat History","no-history":"No history yet.","log-out":"Log Out","clear-form":"Clear form","form.clear-form":"Clear form",expand:"Expand","expand-artifact":"Expand artifact",collapse:"Collapse","collapse-artifact":"Collapse artifact",close:"Close","close-artifact":"Close artifact",download:"Download","copy-artifact-content":"Copy artifact content","download-artifact-content":"Download artifact content","delete-confirm":"Are you sure you want to delete this conversation?",other:"Other","select-options":"Select option(s)","select-an-option":"Select an option","type-your-answer":"Type your answer...",cancel:"Cancel","rename-chat":"Rename chat","delete-chat":"Delete chat","conversation-name":"Conversation name","not-available":"n/a","open-chat":"Open Chat",copied:"Copied!","copy-assistant-message":"Copy assistant message","failed-delete-conversation":"Failed to delete conversation.","failed-update-name":"Failed to update name.","failed-rename-chat":"Failed to rename chat.","failed-delete-chat":"Failed to delete chat.","drop-files-to-upload":"Drop files to upload","add-anything-to-the-conversation":"Add anything to the conversation","something-went-wrong-please-try-again":"Something went wrong. Please try again, or","contact-us":"contact us","for-help":"for help.",back:"Back","upgrade-required":"Upgrade Required","please-upgrade-to-continue-using-this-tool":"Please upgrade to continue using this tool.","access-locked":"Access Locked","this-tool-is-locked-contact-owner":"This tool is locked to use. Contact owner for more information.","access-denied":"Access Denied","login-is-required":"Login is required.","no-access-request-access":"It looks like you don't have access to these resources. Please request access to continue.","request-access":"Request Access",or:"or","sign-in-with-different-account":"Sign in with a different account","access-requested-successfully":"Successfully requested access!","open-tool":"Open Tool","fab-icon":"FAB Icon","iframe-artifact-fallback":"Iframe is not supported, please view this artifact in a browser that supports it.","html-preview":"HTML preview","image-link-is-broken":"[Image link is broken]","download-video":"Download Video","available-plans":"Available Plans",buy:"Buy",credits:"Credits",uses:"Uses",credits_upper:"CREDITS",uses_upper:"USES",free:"Free","pricing.free":"Free",unlimited:"Unlimited","pricing.unlimited":"Unlimited","authentication-required":"Authentication Required","smithery-auth-description-prefix":"The tool you are trying to use requires authentication with",dismiss:"Dismiss",connect:"Connect",connecting:"Connecting...","auth-failed":"Auth failed","failed-to-finalize-authentication":"Failed to finalize authentication.","must-be-logged-in-to-connect-smithery":"You must be logged in to connect Smithery MCPs.","feedback-dislike-input-placeholder":"Write here...","feedback-submit":"Submit","feedback-thanks":"Thanks for the feedback!","feedback-like-title":"What went right?","feedback-dislike-title":"What went wrong?","feedback-dislike-message":"Help us improve our answers","what-do-you-want-to-talk-about":"What do you want to talk about?","failed-to-start-generation":"Failed to start generation","response-too-long":"One or more of your responses is too long!","required-fields-missing":"You must fill out all required fields.","something-went-wrong":"Something went wrong.","something-went-wrong-try-again":"Something went wrong, please try again.","high-traffic-try-again-later":"Oops! We're experiencing high traffic at the moment. Please try again later.","queue-message":"Queue message","stop-response":"Stop response",steer:"Steer","steer-with":"Steer with",steering:"Steering...",starting:"Starting...","remove-queued-message":"Remove queued message","edit-message":"Edit message","more-options":"More options","failed-to-interrupt-current-response":"Failed to interrupt the current response.","current-response-still-stopping":"The current response is still stopping. Please send your message again in a moment.","queued-message-waiting":"A queued message is waiting for the previous response to finish.",listening:"Listening...",remaining:"remaining",upgrade:"Upgrade","pricing.upgrade":"Upgrade","email-address-cannot-be-empty":"Email address cannot be empty.","please-enter-valid-email-address":"Please enter a valid email address.","failed-to-send-sign-in-link":"Failed to send sign-in link.",tool:"Tool","document-processing-failed":"Document processing failed","invalid-upload-file-types":"You can only upload PDF, TXT, DOCX, CSV, XLSX, JSON, PPTX, MD, HTML, XML, PNG, JPEG, WEBP, or GIF files. Please try again.","invalid-website-or-youtube-link":"Please paste a valid website URL or Youtube video link to add to the knowledge base.","website-processing-failed":"Website processing failed, please try again.","invalid-website-url":"Please paste a valid website URL","document-upload-required":"Please paste a valid website/video link or drag a file to add to the knowledge base.",thinking:"Thinking...",thought:"Thought","thought-for":"Thought for",seconds:"seconds","untitled-artifact":"Untitled Artifact",created:"Created",updated:"Updated",rewrote:"Rewrote",artifact:"Artifact","iframe-not-supported-use-different-browser":"Iframe not supported, use a different browser."},C),artifact:F,responsiveBy:P,locale:I,opacity:x,forceMobile:A,loadFont:U,disableHtml:T,disableJs:D,disableCss:q,isFontLoaded:he,isNewChat:ve,isShowIceBreaker:we,isShowFeedbackMessage:Se,isRtl:R,isEmbed:O,isDropShadow:j,allowGuestUsage:L,persistActiveConversation:E,clientSecret:ce,stripeAccountId:le,preventInitialSessionId:M,setClientSecret:pe,setStripeAccountId:de,setContextId:N,setValidationStatus:oe,setValidationUpgradeGroups:ae,setValidationUpgradeUrl:re,setPickaxeId:Y,setSessionId:e=>{J((t=>{const i="function"==typeof e?e(t):e;return null==W||W(i),i}))},setLastSessionId:z,setSender:K,setSenderType:te,setAccessGroup:$,setPickaxe:fe,setIsFontLoaded:ye,setIsNewChat:be,setIsShowIceBreaker:ke,setIsShowFeedbackMessage:Ce},G&&{onUpgrade:G}),H&&{onGenerateComplete:H})},{children:t(d,{children:t(s,{children:t(r,Object.assign({limits:k},{children:t(l,{children:t(a,Object.assign({},F,{children:i}))})}))})})}))};export{c as PickaxeContext,p as PickaxeProvider};
@@ -0,0 +1 @@
1
+ import{jsx as e,jsxs as o,Fragment as n}from"react/jsx-runtime";import{useId as i,useContext as t}from"react";import{usePickaxeContext as l}from"../../../hooks/pickaxe/usePickaxeContext.js";import{useEndUserModel as r}from"../../../hooks/pickaxe/useEndUserModel.js";import{useResponseContext as a}from"../../../hooks/pickaxe/useResponseContext.js";import{useStyleInput as s}from"../../../hooks/studio/useStyleInput.js";import d,{MenuContext as c}from"../../Core/Menu/index.js";import u from"../../Core/Menu/List.js";function p({compact:i}){var d,p,m,f,b,x,g,v;const{options:h,value:w,setValue:k,defaultModel:y}=r(),{translations:j,styles:O,colors:C}=l(),{isGenerating:D}=a(),{id:A,isOpen:N,setIsOpen:E}=t(c),I=s(),L=null!==(d=null==j?void 0:j["ai-model"])&&void 0!==d?d:"AI model",M=null!==(f=null!==(m=null===(p=h.find((e=>e.id===y)))||void 0===p?void 0:p.label)&&void 0!==m?m:y)&&void 0!==f?f:"",S=i?M:(null!==(b=null==j?void 0:j["default-ai-model"])&&void 0!==b?b:"Default ({model})").replace("{model}",M),W=[{id:"",label:S},...h.filter((e=>e.id!==y))],$=null!==(g=null===(x=W.find((e=>e.id===w)))||void 0===x?void 0:x.label)&&void 0!==g?g:S,B=()=>{var e;E(!1),null===(e=document.getElementById(A))||void 0===e||e.focus()};return o(n,{children:[!i&&e("span",{children:L}),o("button",Object.assign({id:A,type:"button","aria-label":L,"aria-haspopup":"menu","aria-expanded":N,"aria-controls":`${A}-options`,disabled:D,className:i?"flex min-w-0 max-w-full items-center gap-1 rounded-lg border-0 bg-transparent px-1 py-2 text-xs outline-none focus:ring-0 focus-visible:underline disabled:cursor-not-allowed disabled:opacity-50":"flex min-w-0 max-w-full items-center gap-2 rounded-lg border bg-transparent px-3 py-2 text-sm outline-none focus:ring-0 focus-visible:underline disabled:cursor-not-allowed disabled:opacity-50",onClick:()=>E(!N),onKeyDown:e=>{"ArrowDown"!==e.key&&"ArrowUp"!==e.key||(e.preventDefault(),E(!0)),"Escape"===e.key&&B()}},{children:[e("span",Object.assign({className:"truncate"},{children:$})),e("svg",Object.assign({"aria-hidden":"true",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",className:"h-3.5 w-3.5 shrink-0"},{children:e("path",{d:"m6 9 6 6 6-6",strokeLinecap:"round",strokeLinejoin:"round"})}))]})),e(u,Object.assign({align:i?"top-end":"bottom-end",width:"auto",maxHeight:"min(200px, calc(100dvh - 96px))",className:"min-w-0 overflow-x-hidden p-3 shadow-md",border:"#ffffff"===C.secondaryText.toLowerCase()?"1px solid rgba(255,255,255,0.7)":"1px solid rgba(0,0,0,0.7)",style:Object.assign(Object.assign({},I),{backgroundColor:I.backgroundColor&&"transparent"!==I.backgroundColor?I.backgroundColor:C.primary,color:null!==(v=I.color)&&void 0!==v?v:C.text,borderRadius:O.cornerRadius,maxWidth:"min(360px, calc(100vw - 32px))",minWidth:"min(200px, calc(100vw - 32px))"}),afterShow:()=>{var e,o;return null===(o=null===(e=document.getElementById(`${A}-options`))||void 0===e?void 0:e.querySelector('[aria-checked="true"]'))||void 0===o?void 0:o.focus()}},{children:e("div",Object.assign({id:`${A}-options`,role:"menu",tabIndex:-1,"aria-label":L,onKeyDown:e=>{var o;if("Escape"===e.key)return e.preventDefault(),e.stopPropagation(),void B();if("Tab"===e.key)return void E(!1);const n=Array.from(e.currentTarget.querySelectorAll("button")),i=n.indexOf(document.activeElement),t="Home"===e.key?0:"End"===e.key?n.length-1:"ArrowDown"===e.key?(i+1)%n.length:"ArrowUp"===e.key?(i-1+n.length)%n.length:-1;t>=0&&(e.preventDefault(),null===(o=n[t])||void 0===o||o.focus())}},{children:W.map((n=>o("button",Object.assign({type:"button",role:"menuitemradio","aria-checked":n.id===w,tabIndex:-1,disabled:D,className:"flex min-w-0 w-full items-center gap-2 rounded px-2 py-2 text-left text-sm outline-none hover:bg-black/10 focus:bg-black/10 focus:ring-0 disabled:opacity-50",onClick:()=>{D||(k(n.id),B())}},{children:[e("span",Object.assign({"aria-hidden":"true",className:"flex h-4 w-4 shrink-0 items-center justify-center"},{children:n.id===w?"✓":""})),e("span",Object.assign({className:"min-w-0 whitespace-normal",style:{overflowWrap:"anywhere"}},{children:n.label}))]}),n.id)))}))}))]})}function m({compact:o=!1}){const{enabled:n}=r(),{isGenerating:t}=a(),l=`pxe-model-${i().replace(/[^a-zA-Z0-9_-]/g,"")}`;return n?e(d,Object.assign({id:l,isDisabled:t,isOpen:!t&&void 0,className:o?"relative ms-auto flex min-w-0 max-w-full":"relative my-2 flex flex-wrap min-w-0 max-w-full items-center gap-2 text-xs"},{children:e(p,{compact:o})})):null}export{m as default};
@@ -1 +1 @@
1
- import{jsxs as e,jsx as n}from"react/jsx-runtime";import{parseActionApproval as i}from"../../../../common/actionApproval.js";function t({content:t,isStreaming:s=!1,approval:a}){var r;const o=i(t);if(!o)return null;const l=null!==(r=null==a?void 0:a.decisions[o.id])&&void 0!==r?r:o.status,d="pending"===l&&s&&(null==a?void 0:a.enabled)&&1e3*o.expiresAt>Date.now(),c=Boolean(null==a?void 0:a.busyId),p="pending"===l?d?"Confirmation needed":"Confirmation unavailable":{approved:"Approved",declined:"Declined",expired:"Expired",cancelled:"Not run"}[l];let m=o.arguments;try{m&&(m=JSON.stringify(JSON.parse(m),null,2))}catch(e){}return e("section",Object.assign({"aria-label":`Action: ${o.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("div",Object.assign({className:"flex flex-wrap items-center justify-between gap-2"},{children:[n("span",Object.assign({className:"break-words font-semibold"},{children:o.name})),n("span",Object.assign({role:"status",className:"rounded-full border px-2 py-0.5 text-xs"},{children:p}))]})),d&&n("p",Object.assign({className:"mt-2 opacity-70"},{children:"Review this action before it runs. Your decision applies only to this call."})),m&&e("details",Object.assign({className:"mt-3",open:"pending"===l},{children:[n("summary",Object.assign({className:"cursor-pointer text-xs font-medium"},{children:"Action inputs"})),n("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:m}))]})),d&&e("div",Object.assign({className:"mt-4 flex flex-wrap justify-end gap-2"},{children:[n("button",Object.assign({type:"button",className:"rounded-lg border px-3 py-2 font-semibold transition-opacity hover:opacity-70 disabled:opacity-50",disabled:c,onClick:()=>{null==a||a.decide(o.id,"declined")}},{children:"Decline"})),n("button",Object.assign({type:"button",className:"rounded-lg border px-3 py-2 font-semibold transition-opacity hover:opacity-70 disabled:opacity-50",disabled:c,onClick:()=>{null==a||a.decide(o.id,"approved")}},{children:"Approve action"}))]})),(null==a?void 0:a.errors[o.id])&&n("p",Object.assign({role:"alert",className:"mt-2 text-xs"},{children:a.errors[o.id]}))]}))}export{t as ActionApprovalPart};
1
+ import{jsxs as e,jsx as n}from"react/jsx-runtime";import{usePickaxeContext as i}from"../../../../hooks/pickaxe/usePickaxeContext.js";import{parseActionApproval as l}from"../../../../common/actionApproval.js";function o({content:o,isStreaming:a=!1,approval:t}){var d,r,s,c,p,u,m,v,b,x,f,g;const{translations:y}=i(),h=l(o);if(!h)return null;const j=null!==(d=null==t?void 0:t.decisions[h.id])&&void 0!==d?d:h.status,N="pending"===j&&a&&(null==t?void 0:t.enabled)&&1e3*h.expiresAt>Date.now(),O=Boolean(null==t?void 0:t.busyId),w="pending"===j?N?null!==(r=null==y?void 0:y["action-confirmation-needed"])&&void 0!==r?r:"Confirmation needed":null!==(s=null==y?void 0:y["action-confirmation-unavailable"])&&void 0!==s?s:"Confirmation unavailable":{approved:null!==(c=null==y?void 0:y["action-approved"])&&void 0!==c?c:"Approved",declined:null!==(p=null==y?void 0:y["action-declined"])&&void 0!==p?p:"Declined",expired:null!==(u=null==y?void 0:y["action-expired"])&&void 0!==u?u:"Expired",cancelled:null!==(m=null==y?void 0:y["action-not-run"])&&void 0!==m?m:"Not run"}[j];let k=h.arguments;try{k&&(k=JSON.stringify(JSON.parse(k),null,2))}catch(e){}return e("section",Object.assign({"aria-label":(null!==(v=null==y?void 0:y["action-label"])&&void 0!==v?v:"Action: {name}").replace("{name}",h.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("div",Object.assign({className:"flex flex-wrap items-center justify-between gap-2"},{children:[n("span",Object.assign({className:"break-words font-semibold"},{children:h.name})),n("span",Object.assign({role:"status",className:"rounded-full border px-2 py-0.5 text-xs"},{children:w}))]})),N&&n("p",Object.assign({className:"mt-2 opacity-70"},{children:null!==(b=null==y?void 0:y["action-confirmation-description"])&&void 0!==b?b:"Review this action before it runs. Your decision applies only to this call."})),k&&e("details",Object.assign({className:"mt-3",open:"pending"===j},{children:[n("summary",Object.assign({className:"cursor-pointer text-xs font-medium"},{children:null!==(x=null==y?void 0:y["action-inputs"])&&void 0!==x?x:"Action inputs"})),n("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:k}))]})),N&&e("div",Object.assign({className:"mt-4 flex flex-wrap justify-end gap-2"},{children:[n("button",Object.assign({type:"button",className:"rounded-lg border px-3 py-2 font-semibold transition-opacity hover:opacity-70 disabled:opacity-50",disabled:O,onClick:()=>{null==t||t.decide(h.id,"declined")}},{children:null!==(f=null==y?void 0:y["decline-action"])&&void 0!==f?f:"Decline"})),n("button",Object.assign({type:"button",className:"rounded-lg border px-3 py-2 font-semibold transition-opacity hover:opacity-70 disabled:opacity-50",disabled:O,onClick:()=>{null==t||t.decide(h.id,"approved")}},{children:null!==(g=null==y?void 0:y["approve-action"])&&void 0!==g?g:"Approve action"}))]})),(null==t?void 0:t.errors[h.id])&&n("p",Object.assign({role:"alert",className:"mt-2 text-xs"},{children:t.errors[h.id]}))]}))}export{o as ActionApprovalPart};
@@ -1 +1 @@
1
- import{__awaiter as e}from"../../_virtual/_tslib.js";import{useState as r,useRef as n,useEffect as t,useCallback as o}from"react";function s(s){const[i,a]=r(null),[c,l]=r(null),[u,d]=r({}),[b,g]=r({}),y=n(null);t((()=>(l(null),d({}),g({}),()=>{var e;null===(e=y.current)||void 0===e||e.abort(),y.current=null})),[i,s]);const f=o(((r,n)=>e(this,void 0,void 0,(function*(){if(!s||!i||y.current)return;const e=new AbortController;y.current=e;const t=setTimeout((()=>e.abort()),15e3);l(r),d((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 ${i}`,"Content-Type":"application/json"},body:JSON.stringify({decision:n}),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.");y.current===e&&g((e=>Object.assign(Object.assign({},e),{[r]:n})))}catch(n){y.current===e&&d((e=>Object.assign(Object.assign({},e),{[r]:n instanceof Error&&"AbortError"!==n.name?n.message:"Could not save your decision. Please try again."})))}finally{clearTimeout(t),y.current===e&&(y.current=null,l(null))}}))),[s,i]);return{setToken:a,enabled:s&&Boolean(i),busyId:c,errors:u,decisions:b,decide:f}}export{s as useActionApprovals};
1
+ import{__awaiter as n}from"../../_virtual/_tslib.js";import{usePickaxeContext as e}from"./usePickaxeContext.js";import{useState as o,useRef as t,useEffect as r,useCallback as i}from"react";function s(s){var l,a;const{translations:c}=e(),u=null!==(l=null==c?void 0:c["action-decision-failed"])&&void 0!==l?l:"Could not save your decision. Please try again.",d=null!==(a=null==c?void 0:c["action-confirmation-resolved"])&&void 0!==a?a:"This confirmation has expired or already been resolved.",[v,b]=o(null),[f,p]=o(null),[m,g]=o({}),[y,h]=o({}),j=t(null);r((()=>(p(null),g({}),h({}),()=>{var n;null===(n=j.current)||void 0===n||n.abort(),j.current=null})),[v,s]);const O=i(((e,o)=>n(this,void 0,void 0,(function*(){if(!s||!v||j.current)return;let n=u;const t=new AbortController;j.current=t;const r=setTimeout((()=>t.abort()),15e3);p(e),g((n=>Object.assign(Object.assign({},n),{[e]:""})));try{const r=yield fetch(`${process.env.NEXT_PUBLIC_PICKAXE_API2_URL}/response/action-approvals/${e}`,{method:"POST",headers:{Authorization:`Bearer ${v}`,"Content-Type":"application/json"},body:JSON.stringify({decision:o}),signal:t.signal});if(!r.ok)throw n=409===r.status?d:u,new Error(n);j.current===t&&h((n=>Object.assign(Object.assign({},n),{[e]:o})))}catch(o){j.current===t&&g((o=>Object.assign(Object.assign({},o),{[e]:n})))}finally{clearTimeout(r),j.current===t&&(j.current=null,p(null))}}))),[s,v,u,d]);return{setToken:b,enabled:s&&Boolean(v),busyId:f,errors:m,decisions:y,decide:O}}export{s as useActionApprovals};
@@ -0,0 +1 @@
1
+ import{usePickaxeContext as e}from"./usePickaxeContext.js";function l(){var l;const{pickaxe:o,selectedModel:d,setSelectedModel:n}=e(),t=null!==(l=null==o?void 0:o.availableEndUserModels)&&void 0!==l?l:[],i=!0===(null==o?void 0:o.allowEndUserModelSelection),a=i&&t.some((e=>e.id===d))?d:"";return{options:t,enabled:i,value:a,setValue:n,defaultModel:null==o?void 0:o.model}}export{l as useEndUserModel};
@@ -0,0 +1,4 @@
1
+ /** Missing or invalid ranks retain legacy prompt order, after explicitly ranked fields. */
2
+ export declare function sortFormInputs<T extends {
3
+ order?: number;
4
+ }>(inputs: readonly T[]): T[];
@@ -0,0 +1,2 @@
1
+ import type { MemoryStoredQuestionField } from "../types/form";
2
+ export declare function getFormQuestionError(field: MemoryStoredQuestionField): "response-too-long" | "required-fields-missing" | null;
@@ -1,8 +1,12 @@
1
+ import type { ReactNode } from "react";
1
2
  import type { MemoryStoredQuestionField } from "../../../../types/form";
2
3
  interface SubmitProps {
4
+ navigation?: ReactNode;
5
+ paged?: boolean;
6
+ onInvalidQuestion?: (id: string) => void;
3
7
  questions: MemoryStoredQuestionField[];
4
8
  update: (questions: MemoryStoredQuestionField) => void;
5
9
  resetQuestions: () => void;
6
10
  }
7
- declare const Submit: ({ questions, resetQuestions }: SubmitProps) => import("react/jsx-runtime").JSX.Element;
11
+ declare const Submit: ({ navigation, paged, questions, resetQuestions, onInvalidQuestion, }: SubmitProps) => import("react/jsx-runtime").JSX.Element;
8
12
  export default Submit;
@@ -88,6 +88,8 @@ type PickaxeContextType = {
88
88
  portalId?: string;
89
89
  accessGroup?: AccessGroup | null;
90
90
  pickaxe: LimitedPickaxe | null;
91
+ selectedModel: string;
92
+ setSelectedModel: SetState<string>;
91
93
  styles: PickaxeProviderStyles;
92
94
  colors: PickaxeProviderColors;
93
95
  misc: PickaxeMisc;
@@ -0,0 +1,3 @@
1
+ export default function EndUserModelPicker({ compact, }: {
2
+ compact?: boolean;
3
+ }): import("react/jsx-runtime").JSX.Element | null;
@@ -0,0 +1,10 @@
1
+ export declare function useEndUserModel(): {
2
+ options: {
3
+ id: string;
4
+ label: string;
5
+ }[];
6
+ enabled: boolean;
7
+ value: string;
8
+ setValue: import("../../types/common").SetState<string>;
9
+ defaultModel: import("../../types/pickaxe").PickaxeModel | undefined;
10
+ };
@@ -16,6 +16,8 @@ export declare const usePickaxeContext: () => {
16
16
  portalId?: string | undefined;
17
17
  accessGroup?: import("../../components/Pickaxe/Provider").AccessGroup | null | undefined;
18
18
  pickaxe: import("../../types/pickaxe").LimitedPickaxe | null;
19
+ selectedModel: string;
20
+ setSelectedModel: import("../../types/common").SetState<string>;
19
21
  styles: import("../../components/Pickaxe/Provider").PickaxeProviderStyles;
20
22
  colors: import("../../components/Pickaxe/Provider").PickaxeProviderColors;
21
23
  misc: import("../../components/Pickaxe/Provider").PickaxeMisc;
@@ -1,5 +1,7 @@
1
1
  export type PickaxeQuestionType = "Short Answer" | "short" | "Long Answer" | "long" | "Multiple Choice" | "multiple" | "Checkbox" | "Knowledge Upload";
2
2
  export type PickaxeQuestion = {
3
+ /** Optional form display order; prompt placement stays independent. */
4
+ order?: number;
3
5
  id: string;
4
6
  answerlength: string;
5
7
  example: string;
@@ -37,7 +37,7 @@ export type PickaxeHistoryMessage = {
37
37
  createdAt: string;
38
38
  area?: PickaxeHistoryMessageArea;
39
39
  };
40
- export type PickaxeHistoryMessagePartsType = "data-action-approval" | "text" | "reasoning" | "data-action-tool-caption" | "data-reasoning-caption" | "data-tool-assets";
40
+ export type PickaxeHistoryMessagePartsType = "text" | "reasoning" | "data-action-tool-caption" | "data-reasoning-caption" | "data-tool-assets" | "data-action-approval";
41
41
  export type PickaxeHistoryMessagePart = {
42
42
  type: PickaxeHistoryMessagePartsType;
43
43
  content: string;
@@ -67,9 +67,10 @@ export type PickaxeHistoryStreamDataReasoningCaption = {
67
67
  caption: string;
68
68
  };
69
69
  };
70
- export type PickaxeHistoryStreamData = {
70
+ export type PickaxeHistoryStreamDataActionApproval = {
71
71
  type: "data-action-approval";
72
72
  data: ActionApprovalData;
73
- } | PickaxeHistoryStreamDataActionToolCaption | PickaxeHistoryStreamDataReasoningCaption;
73
+ };
74
+ export type PickaxeHistoryStreamData = PickaxeHistoryStreamDataActionApproval | PickaxeHistoryStreamDataActionToolCaption | PickaxeHistoryStreamDataReasoningCaption;
74
75
  export type PickaxeHistoryStream = PickaxeHistoryStreamPartStartEnd | PickaxeHistoryStreamPartDelta | PickaxeHistoryStreamData;
75
76
  export {};
@@ -2,6 +2,8 @@ import type { PickaxeQuestion } from "./form";
2
2
  export type PickaxeImageOrText = "text" | "image";
3
3
  export type PickaxePrivacySetting = "public" | "unlisted" | "private" | "deleted";
4
4
  export type PickaxeCloneable = "true" | "false";
5
+ export type PickaxeFormLayout = "single" | "paged";
6
+ export type PickaxeEndUserModelSelectionMode = "all" | "select";
5
7
  export type PickaxeDocumentUploadType = "ownerupload" | "enduserupload" | "enduserupload-user";
6
8
  export type PickaxeModel = "gpt-3.5-turbo" | "gpt-4-1106-preview" | "mistral-small" | "gpt-5.1" | "gpt-5" | "gpt-5-mini" | "gpt-5-nano" | "gpt-5-chat-latest" | "gpt-4.1" | "gpt-4.1-mini" | "gpt-4.1-nano" | "gpt-4o-mini" | "gpt-4o" | "gpt-4" | "o3-mini" | "o1" | "o3" | "o4-mini" | "gemini-3-pro" | "gemini-2.5-flash" | "gemini-2.5-flash-preview-05-20" | "gemini-2.5-pro" | "gemini-2.5-pro-preview-05-06" | "gemini-2.0-flash" | "gemini-2.0-flash-lite" | "gemini-1.5-pro" | "gemini-1.5-flash" | "deepseek-chat" | "mistral-large-latest" | "claude-sonnet-4-5-20250929" | "claude-haiku-4-5-20251001" | "claude-opus-4-1-20250805" | "claude-opus-4-20250514" | "claude-opus-4-5-20251101" | "claude-sonnet-4-20250514" | "claude-3-7-sonnet-20250219" | "claude-3-opus-20240229" | "grok-4-fast-reasoning-latest" | "grok-4-fast-non-reasoning-latest" | "grok-4-1-fast-reasoning" | "grok-4-1-fast-non-reasoning" | "grok-4-latest" | "grok-3-latest" | "llama-3-uncensored" | "sonar" | "sonar-pro" | "sonar-reasoning" | "sonar-reasoning-pro" | "sonar-deep-research";
7
9
  export type Pickaxe = {
@@ -36,6 +38,14 @@ export type Pickaxe = {
36
38
  maxlength: number;
37
39
  membuffer: number;
38
40
  model: PickaxeModel;
41
+ formLayout?: PickaxeFormLayout;
42
+ allowEndUserModelSelection?: boolean;
43
+ endUserModelSelectionMode?: PickaxeEndUserModelSelectionMode;
44
+ allowedEndUserModels?: string[];
45
+ availableEndUserModels?: {
46
+ id: string;
47
+ label: string;
48
+ }[];
39
49
  owner: string;
40
50
  placeholdertext: string;
41
51
  prespenalty: number;
@@ -80,6 +90,14 @@ export type LimitedPickaxe = {
80
90
  formtitle: string;
81
91
  intromessage?: string;
82
92
  model: PickaxeModel;
93
+ formLayout?: PickaxeFormLayout;
94
+ allowEndUserModelSelection?: boolean;
95
+ endUserModelSelectionMode?: PickaxeEndUserModelSelectionMode;
96
+ allowedEndUserModels?: string[];
97
+ availableEndUserModels?: {
98
+ id: string;
99
+ label: string;
100
+ }[];
83
101
  placeholdertext: string;
84
102
  icebreakers: string[];
85
103
  submittext?: string;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@pickaxeproject/react",
3
- "version": "6.18.2-beta.0",
3
+ "version": "6.19.0-beta.0",
4
4
  "description": "Client utility library for Pickaxe",
5
5
  "repository": {
6
6
  "type": "git",