@pickaxeproject/react 1.3.2 → 1.3.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("../../../_virtual/_tslib.js"),s=require("react/jsx-runtime"),t=require("react"),o=require("../../../hooks/pickaxe/usePickaxeContext.js"),r=require("../../../hooks/pickaxe/useResponseContext.js"),i=require("../../../hooks/pickaxe/useDimensionContext.js"),n=require("../../../hooks/studio/useStyleInput.js"),a=require("../../../hooks/studio/useStyleFontSize.js"),l=require("../../../hooks/pickaxe/useConversation.js"),d=require("../../../hooks/pickaxe/useSubmit.js"),c=require("../../../hooks/pickaxe/useSubmitResult.js"),u=require("../../../common/documents.js"),m=require("../../../common/api/streamer.js"),p=require("../Addons/Document/hooks/useDocument.js"),x=require("../Addons/Scroll/hooks/useScroll.js"),g=require("../../../hooks/core/useHover.js"),f=require("../../../common/utils.js"),h=require("../../Icons/attach-vertical.svg.js"),b=require("../../Icons/spinner-lines.svg.js"),j=require("../../Icons/file.svg.js"),v=require("../../Icons/x.svg.js"),y=require("../../Icons/arrow-right.svg.js"),k=require("../common/PickaxeBranding.js"),w=require("../Addons/IceBreaker/index.js"),I=require("../../Core/Textarea.js"),O=require("../../../common/error.js"),C=require("../../../common/cn.js");exports.default=()=>{var N;const{formId:q,chatId:S,userId:R,studioUserId:D,deploymentId:A,pickaxe:_,styles:T,colors:U,misc:E,chatInput:H,responsiveBy:B,forceMobile:M,isNewChat:F,setIsNewChat:L,setIsShowIceBreaker:P,onGenerateComplete:z}=o.usePickaxeContext(),{messages:G,status:W,limits:$,isGenerating:K,setMessages:J,setStatus:Q,setLimitData:V,setError:X,setIsGenerating:Y}=r.useResponseContext(),{isMobile:Z}=i.useDimensionContext(),{documents:ee,isUploading:se,isImageUploadAllowed:te,upsertDocuments:oe,onFileUpload:re}=p.useDocument(),{scrollStartSession:ie,scrollEndSession:ne,scrollToBottom:ae}=x.useScroll({auto:!0}),le=l.useConversation(),de=d.useSubmit(),ce=c.useSubmitResult(),ue=a.useStyleFontSize(),me=n.useStyleInput(),[pe,xe]=t.useState(H),ge=t.useRef(null),fe=g.useHover(),{isHover:he}=fe,be=e.__rest(fe,["isHover"]),je=g.useHover(),{isHover:ve}=je,ye=e.__rest(je,["isHover"]),ke=t.useMemo((()=>{var e,s,t;return!!F&&(!!_&&(!le.isLoading&&(!((null!==(s=null===(e=le.data)||void 0===e?void 0:e.messages.length)&&void 0!==s?s:0)>1)&&!!(null===(t=_.icebreakers)||void 0===t?void 0:t.length))))}),[_,F,le.data,le.isLoading]),we=s=>e.__awaiter(void 0,void 0,void 0,(function*(){try{if(se||"idle"!==W||K)return;const e=null!=s?s:pe;if(!e)return;xe(""),X(""),V(null),Y(!0),L(!1);const t=new Date,o="enduserupload"===(null==_?void 0:_.documentuploadtype),r=ee.filter((e=>"finished"===e.status&&!e.isInsertedAsRaw)),i=r.length?r[r.length-1].documentId:"";Q("fetching"),ie(),ae();const n=Array.from(G);let a=[...n,{id:G.length+1,role:"user",content:e}];J(a),ae();const{success:l,data:d,actionData:c,usedDocumentIds:u,endUserDocumentId:p,endUserImageId:x,rawUserInput:g,error:f}=yield de.mutateAsync(Object.assign(Object.assign(Object.assign({formId:q,responseId:S,value:e},o&&i&&{documentId:i}),D&&{studioUserId:D}),A&&{deploymentId:A}));if(!l)throw new Error(null!=f?f:"An error occurred, please try again.");const h=[];p&&h.push(p),x&&h.push(x),h.length>0&&(a=[...n,Object.assign({id:G.length+1,role:"user",content:e},h&&{documentIds:h})],J(a),ae()),oe([]),ae();const b=(yield m.streamer({formId:q,responseId:S,data:d,actionData:c})).body;if(!b)throw new Error("Streaming error");const j=b.getReader(),v=new TextDecoder,y=a.length;let k="",w=!0,I=!1;for(;w;){const{value:e,done:s}=yield j.read();w=!s;if(k+=v.decode(e).replace(/\u200B/g,""),k)I||(Q("streaming"),I=!0),J([...a.slice(0,y),{id:G.length+1,role:"assistant",content:k}]);else if(!w&&!k)throw new Error("Server error")}const O=new Date;k&&(ae(),yield ce.mutateAsync(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({formId:q,responseId:S,documentIds:u},R&&{userId:R}),D&&{studioUserId:D}),D&&(null==_?void 0:_.studioid)&&{studioId:_.studioid}),A&&{deploymentId:A}),{messages:[Object.assign(Object.assign({role:"user",message:g},h&&{documentIds:h}),{sentAt:t}),{role:"assistant",message:k,sentAt:O}]})),Q("idle"),null==z||z(S))}catch(e){let s=O.default(e)||"";s&&!s.includes("Unexpected token 'A',")||(s="Oops! We're experiencing high traffic at the moment. Please try again later.");const t=Object.entries($).find((([e])=>s.includes(e)));t?V(t[1]):X(s),ae()}finally{Q("idle"),Y(!1),ne()}}));return t.useEffect((()=>{P(ke)}),[ke]),t.useEffect((()=>{xe(H)}),[H]),s.jsxs("div",Object.assign({className:C.default("fixed flex w-full flex-col bottom-0 left-0","viewport"===B?"min-[767px]:relative min-[767px]:bottom-auto min-[767px]:left-auto":"absolute @[767px]/pickaxe-root:relative @[767px]/pickaxe-root:bottom-auto @[767px]/pickaxe-root:left-auto")},{children:[!E.isWhiteLabel&&s.jsx("div",Object.assign({className:"flex justify-end pr-3 pb-3 @[767px]/pickaxe-root:pr-0"},{children:s.jsx(k.default,{animateHover:!0})})),ke&&s.jsx(w.default,{data:(null==_?void 0:_.icebreakers)||[],onSend:we}),s.jsxs("div",Object.assign({id:(null==_?void 0:_.formid)+"--chat-parent",style:Object.assign(Object.assign({},me),(Z||M)&&{paddingLeft:"0.75rem",paddingRight:"0.75rem"}),className:C.default("flex min-h-[56px] flex-col gap-y-2 px-4 py-3 pb-[15px]","block"===T.formFieldStyle&&"shadow")},{children:["idle"===W&&ee.length>0&&s.jsx("div",Object.assign({className:C.default("grid grid-cols-1","viewport"===B?"min-[765px]:grid-cols-2":"@[767px]/pickaxe-root:grid-cols-2")},{children:ee.map((e=>{var o,r,i;return s.jsx(t.Fragment,{children:"document"===e.type?s.jsxs("div",Object.assign({className:"relative gap-x-[10px] flex items-center px-2 h-[56px] border",style:{borderRadius:me.borderRadius,borderColor:U.secondaryText+"50"}},{children:[s.jsx("div",Object.assign({className:"w-10 h-10 flex items-center justify-center shrink-0",style:{backgroundColor:U.accent,borderRadius:me.borderRadius}},{children:se?s.jsx(b.default,{className:"w-5 h-5 animate-spin",style:{color:U.accentText}}):s.jsx(j.default,{className:"w-5 h-5",style:{color:U.accentText}})})),s.jsxs("div",Object.assign({className:"flex flex-col justify-center truncate"},{children:[s.jsx("p",Object.assign({className:(C.default(ue.b3),"font-medium truncate")},{children:e.name})),s.jsx("p",Object.assign({className:C.default(ue.b4,"opacity-80 truncate")},{children:f.formatBytes(e.size)}))]})),s.jsx("button",Object.assign({type:"button",disabled:se||"idle"!==W,onClick:()=>oe([]),className:"absolute w-5 h-5 rounded-full -right-2 -top-2 flex items-center justify-center border outline-none disabled:cursor-default",style:{backgroundColor:U.accent,borderColor:me.backgroundColor}},{children:s.jsx(v.default,{className:"w-4 h-4",style:{color:U.accentText}})}))]})):"image"===e.type?s.jsxs("div",Object.assign({className:"relative h-[56px] w-[56px] bg-stone-100",style:{borderRadius:me.borderRadius}},{children:["finished"===e.status?s.jsx("img",{style:{borderRadius:me.borderRadius},className:"object-cover w-full h-full",src:`https://prod-pickaxe-assets.s3.us-west-2.amazonaws.com/documentinterrogation/${null===(o=e.documentId)||void 0===o?void 0:o.split("-")[2]}/${null===(r=e.documentId)||void 0===r?void 0:r.split("-")[1]}.${null===(i=e.documentId)||void 0===i?void 0:i.split("-")[2]}`,alt:""}):s.jsx("div",{className:"h-full w-full animate-pulse",style:{borderRadius:me.borderRadius,backgroundColor:U.secondary}}),s.jsx("button",Object.assign({type:"button",disabled:se||"idle"!==W,onClick:()=>oe([]),className:"absolute w-5 h-5 rounded-full -right-2 -top-2 flex items-center justify-center border outline-none disabled:cursor-default",style:{backgroundColor:U.accent,borderColor:me.backgroundColor}},{children:s.jsx(v.default,{className:"w-4 h-4",style:{color:U.accentText}})}))]})):null},e.id)}))})),s.jsxs("div",Object.assign({className:"flex items-end gap-x-2 grow"},{children:[s.jsx(I.default,{id:(null==_?void 0:_.formid)+"--chat-textarea",className:C.default(ue.b2,"max-h-60 mb-[0.2em] w-full border-transparent bg-transparent",!pe.length&&"max-h-6 overflow-hidden text-ellipsis whitespace-nowrap"),value:pe,placeholder:null!==(N=null==_?void 0:_.placeholdertext)&&void 0!==N?N:"What do you want to talk about?",onChange:e=>xe(e),onKeyDown:e=>{"Enter"===e.key&&(e.shiftKey||(e.preventDefault(),se||"idle"!==W||we()))}}),s.jsxs("div",Object.assign({className:"flex items-center gap-x-2"},{children:["enduserupload"===(null==_?void 0:_.documentuploadtype)&&s.jsxs("button",Object.assign({className:"outline-none disabled:cursor-default w-8 h-8 flex items-center justify-center rounded-full transition-colors duration-200 ease-in-out",style:{backgroundColor:ve?U.accent+"10":void 0},disabled:se||"idle"!==W,onClick:()=>{var e;return null===(e=ge.current)||void 0===e?void 0:e.click()}},ye,{children:[s.jsx("input",{id:"file-upload",ref:ge,type:"file",accept:[...u.allowedFileMimeTypes,...te?u.allowedImageMimeTypes:[]].join(", "),multiple:!1,hidden:!0,className:"hidden",onChange:s=>e.__awaiter(void 0,void 0,void 0,(function*(){yield re(Array.from(s.target.files||[])),s.target.value=""}))}),s.jsx(h.default,{className:"h-6 w-6 shrink-0 duration-200 transition-colors ease-in-out",style:{color:ve?U.accent:U.accent+"80"}})]})),s.jsx("button",Object.assign({id:(null==_?void 0:_.formid)+"--chat-button",className:"outline-none disabled:cursor-default w-8 h-8 flex items-center justify-center rounded-full duration-200 transition-colors ease-in-out",style:{backgroundColor:(he||pe.length||ee.length&&ee.every((e=>"finished"===e.status)))&&!K?U.accent:U.accent+"10"},disabled:se||"idle"!==W,onClick:()=>we()},be,{children:s.jsx(y.default,{className:"h-6 w-6 shrink-0 duration-200 transition-colors ease-in-out",style:{color:(he||pe.length||ee.length&&ee.every((e=>"finished"===e.status)))&&!K?U.accentText:U.accent+"80"}})}))]}))]}))]}))]}))};
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("../../../_virtual/_tslib.js"),s=require("react/jsx-runtime"),t=require("react"),o=require("../../../hooks/pickaxe/usePickaxeContext.js"),r=require("../../../hooks/pickaxe/useResponseContext.js"),i=require("../../../hooks/pickaxe/useDimensionContext.js"),n=require("../../../hooks/studio/useStyleInput.js"),a=require("../../../hooks/studio/useStyleFontSize.js"),l=require("../../../hooks/pickaxe/useConversation.js"),d=require("../../../hooks/pickaxe/useSubmit.js"),c=require("../../../hooks/pickaxe/useSubmitResult.js"),u=require("../../../common/documents.js"),m=require("../../../common/api/streamer.js"),p=require("../Addons/Document/hooks/useDocument.js"),x=require("../Addons/Scroll/hooks/useScroll.js"),g=require("../../../hooks/core/useHover.js"),h=require("../../../common/utils.js"),f=require("../../Icons/attach-vertical.svg.js"),b=require("../../Icons/spinner-lines.svg.js"),j=require("../../Icons/file.svg.js"),v=require("../../Icons/x.svg.js"),y=require("../../Icons/arrow-right.svg.js"),k=require("../common/PickaxeBranding.js"),w=require("../Addons/IceBreaker/index.js"),I=require("../../Core/Textarea.js"),O=require("../../../common/error.js"),C=require("../../../common/cn.js");exports.default=()=>{var N;const{formId:q,chatId:R,userId:S,studioUserId:D,deploymentId:A,pickaxe:E,styles:_,colors:T,misc:U,chatInput:H,responsiveBy:B,forceMobile:M,isNewChat:P,setIsNewChat:F,setIsShowIceBreaker:L,onGenerateComplete:z}=o.usePickaxeContext(),{messages:W,status:G,limits:$,isGenerating:K,setMessages:X,setStatus:J,setLimitData:Q,setError:V,setIsGenerating:Y}=r.useResponseContext(),{isMobile:Z}=i.useDimensionContext(),{documents:ee,isUploading:se,isImageUploadAllowed:te,upsertDocuments:oe,onFileUpload:re}=p.useDocument(),{scrollStartSession:ie,scrollEndSession:ne,scrollToBottom:ae}=x.useScroll({auto:!0}),le=l.useConversation(),de=d.useSubmit(),ce=c.useSubmitResult(),ue=a.useStyleFontSize(),me=n.useStyleInput(),[pe,xe]=t.useState(H),ge=t.useRef(null),he=g.useHover(),{isHover:fe}=he,be=e.__rest(he,["isHover"]),je=g.useHover(),{isHover:ve}=je,ye=e.__rest(je,["isHover"]),ke=t.useMemo((()=>{var e,s,t;return!!P&&(!!E&&(!le.isLoading&&(!((null!==(s=null===(e=le.data)||void 0===e?void 0:e.messages.length)&&void 0!==s?s:0)>1)&&!!(null===(t=E.icebreakers)||void 0===t?void 0:t.length))))}),[E,P,le.data,le.isLoading]),we=s=>e.__awaiter(void 0,void 0,void 0,(function*(){try{if(se||"idle"!==G||K)return;const e=null!=s?s:pe;if(!e)return;xe(""),V(""),Q(null),Y(!0),F(!1);const t=new Date,o="enduserupload"===(null==E?void 0:E.documentuploadtype),r=ee.filter((e=>"finished"===e.status&&!e.isInsertedAsRaw)),i=r.length?r[r.length-1].documentId:"";J("fetching"),ie(),ae();const n=Array.from(W);let a=[...n,{id:W.length+1,role:"user",content:e}];X(a),ae();const{success:l,data:d,actionData:c,usedDocumentIds:u,endUserDocumentId:p,endUserImageId:x,rawUserInput:g,error:h}=yield de.mutateAsync(Object.assign(Object.assign(Object.assign({formId:q,responseId:R,value:e},o&&i&&{documentId:i}),D&&{studioUserId:D}),A&&{deploymentId:A}));if(!l)throw new Error(null!=h?h:"An error occurred, please try again.");const f=[];p&&f.push(p),x&&f.push(x),f.length>0&&(a=[...n,Object.assign({id:W.length+1,role:"user",content:e},f&&{documentIds:f})],X(a),ae()),oe([]),ae();const b=(yield m.streamer({formId:q,responseId:R,data:d,actionData:c})).body;if(!b)throw new Error("Streaming error");const j=b.getReader(),v=new TextDecoder,y=a.length;let k="",w=!0,I=!1;for(;w;){const{value:e,done:s}=yield j.read();w=!s;const t=v.decode(e);if(t.startsWith("[PXE-ERROR]"))throw new Error(t.replace("[PXE-ERROR]","").trim());if(k+=t.replace(/\u200B/g,""),k)I||(J("streaming"),I=!0),X([...a.slice(0,y),{id:W.length+1,role:"assistant",content:k}]);else if(!w&&!k)throw new Error("Server error")}const O=new Date;k&&(ae(),yield ce.mutateAsync(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({formId:q,responseId:R,documentIds:u},S&&{userId:S}),D&&{studioUserId:D}),D&&(null==E?void 0:E.studioid)&&{studioId:E.studioid}),A&&{deploymentId:A}),{messages:[Object.assign(Object.assign({role:"user",message:g},f&&{documentIds:f}),{sentAt:t}),{role:"assistant",message:k,sentAt:O}]})),J("idle"),null==z||z(R))}catch(e){let s=O.default(e)||"";s&&!s.includes("Unexpected token 'A',")||(s="Oops! We're experiencing high traffic at the moment. Please try again later.");const t=Object.entries($).find((([e])=>s.includes(e)));t?Q(t[1]):V(s),ae()}finally{J("idle"),Y(!1),ne()}}));return t.useEffect((()=>{L(ke)}),[ke]),t.useEffect((()=>{xe(H)}),[H]),s.jsxs("div",Object.assign({className:C.default("fixed flex w-full flex-col bottom-0 left-0","viewport"===B?"min-[767px]:relative min-[767px]:bottom-auto min-[767px]:left-auto":"absolute @[767px]/pickaxe-root:relative @[767px]/pickaxe-root:bottom-auto @[767px]/pickaxe-root:left-auto")},{children:[!U.isWhiteLabel&&s.jsx("div",Object.assign({className:"flex justify-end pr-3 pb-3 @[767px]/pickaxe-root:pr-0"},{children:s.jsx(k.default,{animateHover:!0})})),ke&&s.jsx(w.default,{data:(null==E?void 0:E.icebreakers)||[],onSend:we}),s.jsxs("div",Object.assign({id:(null==E?void 0:E.formid)+"--chat-parent",style:Object.assign(Object.assign({},me),(Z||M)&&{paddingLeft:"0.75rem",paddingRight:"0.75rem"}),className:C.default("flex min-h-[56px] flex-col gap-y-2 px-4 py-3 pb-[15px]","block"===_.formFieldStyle&&"shadow")},{children:["idle"===G&&ee.length>0&&s.jsx("div",Object.assign({className:C.default("grid grid-cols-1","viewport"===B?"min-[765px]:grid-cols-2":"@[767px]/pickaxe-root:grid-cols-2")},{children:ee.map((e=>{var o,r,i;return s.jsx(t.Fragment,{children:"document"===e.type?s.jsxs("div",Object.assign({className:"relative gap-x-[10px] flex items-center px-2 h-[56px] border",style:{borderRadius:me.borderRadius,borderColor:T.secondaryText+"50"}},{children:[s.jsx("div",Object.assign({className:"w-10 h-10 flex items-center justify-center shrink-0",style:{backgroundColor:T.accent,borderRadius:me.borderRadius}},{children:se?s.jsx(b.default,{className:"w-5 h-5 animate-spin",style:{color:T.accentText}}):s.jsx(j.default,{className:"w-5 h-5",style:{color:T.accentText}})})),s.jsxs("div",Object.assign({className:"flex flex-col justify-center truncate"},{children:[s.jsx("p",Object.assign({className:(C.default(ue.b3),"font-medium truncate")},{children:e.name})),s.jsx("p",Object.assign({className:C.default(ue.b4,"opacity-80 truncate")},{children:h.formatBytes(e.size)}))]})),s.jsx("button",Object.assign({type:"button",disabled:se||"idle"!==G,onClick:()=>oe([]),className:"absolute w-5 h-5 rounded-full -right-2 -top-2 flex items-center justify-center border outline-none disabled:cursor-default",style:{backgroundColor:T.accent,borderColor:me.backgroundColor}},{children:s.jsx(v.default,{className:"w-4 h-4",style:{color:T.accentText}})}))]})):"image"===e.type?s.jsxs("div",Object.assign({className:"relative h-[56px] w-[56px] bg-stone-100",style:{borderRadius:me.borderRadius}},{children:["finished"===e.status?s.jsx("img",{style:{borderRadius:me.borderRadius},className:"object-cover w-full h-full",src:`https://prod-pickaxe-assets.s3.us-west-2.amazonaws.com/documentinterrogation/${null===(o=e.documentId)||void 0===o?void 0:o.split("-")[2]}/${null===(r=e.documentId)||void 0===r?void 0:r.split("-")[1]}.${null===(i=e.documentId)||void 0===i?void 0:i.split("-")[2]}`,alt:""}):s.jsx("div",{className:"h-full w-full animate-pulse",style:{borderRadius:me.borderRadius,backgroundColor:T.secondary}}),s.jsx("button",Object.assign({type:"button",disabled:se||"idle"!==G,onClick:()=>oe([]),className:"absolute w-5 h-5 rounded-full -right-2 -top-2 flex items-center justify-center border outline-none disabled:cursor-default",style:{backgroundColor:T.accent,borderColor:me.backgroundColor}},{children:s.jsx(v.default,{className:"w-4 h-4",style:{color:T.accentText}})}))]})):null},e.id)}))})),s.jsxs("div",Object.assign({className:"flex items-end gap-x-2 grow"},{children:[s.jsx(I.default,{id:(null==E?void 0:E.formid)+"--chat-textarea",className:C.default(ue.b2,"max-h-60 mb-[0.2em] w-full border-transparent bg-transparent",!pe.length&&"max-h-6 overflow-hidden text-ellipsis whitespace-nowrap"),value:pe,placeholder:null!==(N=null==E?void 0:E.placeholdertext)&&void 0!==N?N:"What do you want to talk about?",onChange:e=>xe(e),onKeyDown:e=>{"Enter"===e.key&&(e.shiftKey||(e.preventDefault(),se||"idle"!==G||we()))}}),s.jsxs("div",Object.assign({className:"flex items-center gap-x-2"},{children:["enduserupload"===(null==E?void 0:E.documentuploadtype)&&s.jsxs("button",Object.assign({className:"outline-none disabled:cursor-default w-8 h-8 flex items-center justify-center rounded-full transition-colors duration-200 ease-in-out",style:{backgroundColor:ve?T.accent+"10":void 0},disabled:se||"idle"!==G,onClick:()=>{var e;return null===(e=ge.current)||void 0===e?void 0:e.click()}},ye,{children:[s.jsx("input",{id:"file-upload",ref:ge,type:"file",accept:[...u.allowedFileMimeTypes,...te?u.allowedImageMimeTypes:[]].join(", "),multiple:!1,hidden:!0,className:"hidden",onChange:s=>e.__awaiter(void 0,void 0,void 0,(function*(){yield re(Array.from(s.target.files||[])),s.target.value=""}))}),s.jsx(f.default,{className:"h-6 w-6 shrink-0 duration-200 transition-colors ease-in-out",style:{color:ve?T.accent:T.accent+"80"}})]})),s.jsx("button",Object.assign({id:(null==E?void 0:E.formid)+"--chat-button",className:"outline-none disabled:cursor-default w-8 h-8 flex items-center justify-center rounded-full duration-200 transition-colors ease-in-out",style:{backgroundColor:(fe||pe.length||ee.length&&ee.every((e=>"finished"===e.status)))&&!K?T.accent:T.accent+"10"},disabled:se||"idle"!==G,onClick:()=>we()},be,{children:s.jsx(y.default,{className:"h-6 w-6 shrink-0 duration-200 transition-colors ease-in-out",style:{color:(fe||pe.length||ee.length&&ee.every((e=>"finished"===e.status)))&&!K?T.accentText:T.accent+"80"}})}))]}))]}))]}))]}))};
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("../../../../_virtual/_tslib.js"),s=require("react/jsx-runtime"),t=require("react"),i=require("../../../../hooks/pickaxe/usePickaxeContext.js"),o=require("../../../../hooks/pickaxe/useResponseContext.js"),n=require("../../../../hooks/pickaxe/useSubmit.js"),r=require("../../../../hooks/pickaxe/useSubmitResult.js"),l=require("../../Addons/Document/hooks/useDocument.js"),a=require("../../Addons/Scroll/hooks/useScroll.js"),d=require("../../../../common/api/streamer.js"),u=require("../../../../common/utils.js"),c=require("@nem035/gpt-3-encoder"),m=require("../../common/PickaxeBranding.js"),p=require("../../common/PickaxeButton.js"),g=require("../../../../common/error.js"),f=require("../../../../common/cn.js");exports.default=({questions:h})=>{var x;const{formId:j,userId:b,studioUserId:v,deploymentId:w,pickaxe:y,misc:I,translations:q,responsiveBy:k,isShowHistory:O,setChatId:S,setIsShowHistory:C,setIsNewChat:D,onGenerateComplete:P}=i.usePickaxeContext(),{status:R,limits:U,isGenerating:E,setResponse:A,setMessages:N,setStatus:_,setLimitData:L,setError:T,setIsGenerating:B}=o.useResponseContext(),{documents:G,websiteLink:H,isUploading:M,onWebsiteUpload:W,setDocumentError:F}=l.useDocument(),{scrollStartSession:K,scrollEndSession:Y,scrollToTarget:z}=a.useScroll({auto:!(null==y?void 0:y.enablechatresponses)}),J=n.useSubmit(),Q=r.useSubmitResult(),[V,X]=t.useState(!1);return s.jsxs("div",Object.assign({className:f.default("mt-4 flex flex-wrap flex-col justify-between gap-2","viewport"===k?"min-[767px]:flex-row":"@[767px]/pickaxe-root:flex-row")},{children:[s.jsxs("div",Object.assign({className:"flex items-center flex-grow flex-wrap gap-2"},{children:[s.jsx(p.default,Object.assign({className:"px-5 min-h-[42px]",isDisabled:M||"idle"!==R||E||V,onClick:()=>e.__awaiter(void 0,void 0,void 0,(function*(){var e;try{if(M||"idle"!==R||E||V)return;A(null),L(null),F(""),B(!0);const s="enduserupload"===(null==y?void 0:y.documentuploadtype),t=h.some((e=>"userinput:documentupload"===e.id&&e.isRequired)),i=G.filter((e=>"finished"===e.status)),o=u.extractUrlsFromText(H),n=G.map((e=>e.name)),r=o.filter((e=>!n.includes(e)));if(r.length){const e=r[r.length-1];X(!0);const s=yield W(e);s&&(i.push(s),yield new Promise((e=>setTimeout(e,5e3)))),X(!1)}else if(t&&s&&!i.length)return void F("Please paste a valid website/video link or drag a file to add to the knowledge base.");T("");const l=["Multiple Choice","Checkbox"];for(const e of h){if(c.encode(e.input).length>e.maxLength&&!l.includes(e.type))throw new Error("One or more of your responses is too long!");if(e.isRequired&&!e.input.trim()&&"userinput:documentupload"!==e.id)throw new Error("You must fill out all required fields.")}const a=i.length?i[i.length-1]:null;let m={};h.forEach((e=>m=Object.assign(Object.assign({},m),{[e.id]:"Knowledge Upload"===e.type||e.id.includes("documentupload")?(null==a?void 0:a.name)||"":e.input}))),_("fetching"),K(),z();const{success:p,responseId:g,data:f,actionData:x,usedDocumentIds:I,rawUserInput:q,error:k}=yield J.mutateAsync(Object.assign(Object.assign(Object.assign({formId:j,valueObj:m},s&&a&&{documentId:null!==(e=a.documentId)&&void 0!==e?e:""}),v&&{studioUserId:v}),w&&{deploymentId:w}));if(!p)throw new Error(null!=k?k:"An error occurred, please try again.");z();const O=(yield d.streamer({formId:j,responseId:g,data:f,actionData:x})).body;if(!O)throw new Error("Streaming error");const C=O.getReader(),U=new TextDecoder;let Y="",Z=!0,$=!1;z();const ee=h.map((e=>({id:e.id,question:e.main,answer:e.input})));for(;Z;){const{value:e,done:s}=yield C.read();Z=!s;if(Y+=U.decode(e).replace(/\u200B/g,""),Y)$||(_("streaming"),$=!0,(null==y?void 0:y.enablechatresponses)&&(S(g),D(!1))),A({formId:j,responseId:g,documentIds:I,messages:[],questions:ee,questionPrompt:q,questionResponse:Y,createdAt:new Date}),(null==y?void 0:y.enablechatresponses)&&N([{id:0,role:"assistant",content:Y}]);else if(!Z&&!Y)throw new Error("Server error")}Y&&(z(),yield Q.mutateAsync(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({formId:j,responseId:g,documentIds:I},b&&{userId:b}),v&&{studioUserId:v}),v&&(null==y?void 0:y.studioid)&&{studioId:y.studioid}),w&&{deploymentId:w}),{questions:ee,questionPrompt:q,questionResponse:Y})),_("idle"),null==P||P(g))}catch(e){let s=g.default(e)||"";s&&!s.includes("Unexpected token 'A',")||(s="Oops! We're experiencing high traffic at the moment. Please try again later.");const t=Object.entries(U).find((([e])=>s.includes(e)));t?L(t[1]):T(s),z()}finally{_("idle"),B(!1),X(!1),Y()}}))},{children:V?(null==q?void 0:q.processing)||"Processing...":M?(null==q?void 0:q.uploading)||"Uploading...":"fetching"===R||"streaming"===R?(null==q?void 0:q.loading)||"Loading...":null!==(x=null==y?void 0:y.submittext)&&void 0!==x?x:"Submit"})),I.isHistory&&!O&&s.jsx(p.default,Object.assign({variant:"transparent-text",className:"px-4",onClick:()=>C(!0)},{children:(null==q?void 0:q["see-history"])||"See history"}))]})),!I.isWhiteLabel&&s.jsx("div",Object.assign({className:"flex justify-end pr-3"},{children:s.jsx(m.default,{})}))]}))};
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("../../../../_virtual/_tslib.js"),s=require("react/jsx-runtime"),t=require("react"),i=require("../../../../hooks/pickaxe/usePickaxeContext.js"),o=require("../../../../hooks/pickaxe/useResponseContext.js"),n=require("../../../../hooks/pickaxe/useSubmit.js"),r=require("../../../../hooks/pickaxe/useSubmitResult.js"),l=require("../../Addons/Document/hooks/useDocument.js"),a=require("../../Addons/Scroll/hooks/useScroll.js"),d=require("../../../../common/api/streamer.js"),u=require("../../../../common/utils.js"),c=require("@nem035/gpt-3-encoder"),m=require("../../common/PickaxeBranding.js"),p=require("../../common/PickaxeButton.js"),g=require("../../../../common/error.js"),f=require("../../../../common/cn.js");exports.default=({questions:h})=>{var x;const{formId:j,userId:b,studioUserId:v,deploymentId:w,pickaxe:y,misc:I,translations:q,responsiveBy:k,isShowHistory:O,setChatId:S,setIsShowHistory:R,setIsNewChat:E,onGenerateComplete:P}=i.usePickaxeContext(),{status:C,limits:D,isGenerating:U,setResponse:A,setMessages:N,setStatus:_,setLimitData:L,setError:T,setIsGenerating:B}=o.useResponseContext(),{documents:W,websiteLink:G,isUploading:H,onWebsiteUpload:M,setDocumentError:X}=l.useDocument(),{scrollStartSession:F,scrollEndSession:K,scrollToTarget:Y}=a.useScroll({auto:!(null==y?void 0:y.enablechatresponses)}),z=n.useSubmit(),J=r.useSubmitResult(),[Q,V]=t.useState(!1);return s.jsxs("div",Object.assign({className:f.default("mt-4 flex flex-wrap flex-col justify-between gap-2","viewport"===k?"min-[767px]:flex-row":"@[767px]/pickaxe-root:flex-row")},{children:[s.jsxs("div",Object.assign({className:"flex items-center flex-grow flex-wrap gap-2"},{children:[s.jsx(p.default,Object.assign({className:"px-5 min-h-[42px]",isDisabled:H||"idle"!==C||U||Q,onClick:()=>e.__awaiter(void 0,void 0,void 0,(function*(){var e;try{if(H||"idle"!==C||U||Q)return;A(null),L(null),X(""),B(!0);const s="enduserupload"===(null==y?void 0:y.documentuploadtype),t=h.some((e=>"userinput:documentupload"===e.id&&e.isRequired)),i=W.filter((e=>"finished"===e.status)),o=u.extractUrlsFromText(G),n=W.map((e=>e.name)),r=o.filter((e=>!n.includes(e)));if(r.length){const e=r[r.length-1];V(!0);const s=yield M(e);s&&(i.push(s),yield new Promise((e=>setTimeout(e,5e3)))),V(!1)}else if(t&&s&&!i.length)return void X("Please paste a valid website/video link or drag a file to add to the knowledge base.");T("");const l=["Multiple Choice","Checkbox"];for(const e of h){if(c.encode(e.input).length>e.maxLength&&!l.includes(e.type))throw new Error("One or more of your responses is too long!");if(e.isRequired&&!e.input.trim()&&"userinput:documentupload"!==e.id)throw new Error("You must fill out all required fields.")}const a=i.length?i[i.length-1]:null;let m={};h.forEach((e=>m=Object.assign(Object.assign({},m),{[e.id]:"Knowledge Upload"===e.type||e.id.includes("documentupload")?(null==a?void 0:a.name)||"":e.input}))),_("fetching"),F(),Y();const{success:p,responseId:g,data:f,actionData:x,usedDocumentIds:I,rawUserInput:q,error:k}=yield z.mutateAsync(Object.assign(Object.assign(Object.assign({formId:j,valueObj:m},s&&a&&{documentId:null!==(e=a.documentId)&&void 0!==e?e:""}),v&&{studioUserId:v}),w&&{deploymentId:w}));if(!p)throw new Error(null!=k?k:"An error occurred, please try again.");Y();const O=(yield d.streamer({formId:j,responseId:g,data:f,actionData:x})).body;if(!O)throw new Error("Streaming error");const R=O.getReader(),D=new TextDecoder;let K="",Z=!0,$=!1;Y();const ee=h.map((e=>({id:e.id,question:e.main,answer:e.input})));for(;Z;){const{value:e,done:s}=yield R.read();Z=!s;const t=D.decode(e);if(t.startsWith("[PXE-ERROR]"))throw new Error(t.replace("[PXE-ERROR]","").trim());if(K+=t.replace(/\u200B/g,""),K)$||(_("streaming"),$=!0,(null==y?void 0:y.enablechatresponses)&&(S(g),E(!1))),A({formId:j,responseId:g,documentIds:I,messages:[],questions:ee,questionPrompt:q,questionResponse:K,createdAt:new Date}),(null==y?void 0:y.enablechatresponses)&&N([{id:0,role:"assistant",content:K}]);else if(!Z&&!K)throw new Error("Server error")}K&&(Y(),yield J.mutateAsync(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({formId:j,responseId:g,documentIds:I},b&&{userId:b}),v&&{studioUserId:v}),v&&(null==y?void 0:y.studioid)&&{studioId:y.studioid}),w&&{deploymentId:w}),{questions:ee,questionPrompt:q,questionResponse:K})),_("idle"),null==P||P(g))}catch(e){let s=g.default(e)||"";s&&!s.includes("Unexpected token 'A',")||(s="Oops! We're experiencing high traffic at the moment. Please try again later.");const t=Object.entries(D).find((([e])=>s.includes(e)));t?L(t[1]):T(s),Y()}finally{_("idle"),B(!1),V(!1),K()}}))},{children:Q?(null==q?void 0:q.processing)||"Processing...":H?(null==q?void 0:q.uploading)||"Uploading...":"fetching"===C||"streaming"===C?(null==q?void 0:q.loading)||"Loading...":null!==(x=null==y?void 0:y.submittext)&&void 0!==x?x:"Submit"})),I.isHistory&&!O&&s.jsx(p.default,Object.assign({variant:"transparent-text",className:"px-4",onClick:()=>R(!0)},{children:(null==q?void 0:q["see-history"])||"See history"}))]})),!I.isWhiteLabel&&s.jsx("div",Object.assign({className:"flex justify-end pr-3"},{children:s.jsx(m.default,{})}))]}))};
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("../../../../../../_virtual/_tslib.js"),t=require("react/jsx-runtime"),i=require("react"),r=require("@tanstack/react-query"),o=require("../../hooks/usePickaxeMarkdownContext.js"),a=require("../../../../../../common/lotties/loader-black.js"),n=require("../../../../../../common/lotties/loader-white.js"),s=require("../../../../../../common/api/streamer.js"),d=require("../../../PickaxeLottie.js"),c=require("../../Renderer.js"),l=require("framer-motion"),u=require("../../../../../../common/api/utils.js"),v=require("../../../../../../common/error.js");exports.default=({jobUrl:m})=>{var j,p,x,y;const{theme:f}=o.usePickaxeMarkdownContext(),[b,h]=i.useState(""),[g,k]=i.useState(""),q=i.useRef(null),w=r.useQuery({queryKey:[m],queryFn:()=>(t=>e.__awaiter(void 0,void 0,void 0,(function*(){try{if(!t||t.includes("undefined"))throw new Error("Invalid action job URL");const e=yield fetch(t);return yield e.json()}catch(e){const t=v.default(e);return"development"===process.env.NODE_ENV&&console.error("[getJobResult]",t),{success:!1,error:t}}})))(m),enabled:"undefined"!=typeof window,retry:10,onSuccess:t=>e.__awaiter(void 0,void 0,void 0,(function*(){try{if(k(""),!t.success)return;if("text"in t)return void h(t.text||"");if(!("fcid"in t)){const e=(yield s.streamer(Object.assign({formId:t.formId,responseId:t.responseId,data:t.encodedData},t.actionData&&{actionData:t.actionData}))).body;if(!e)return;let i=!0,r="";const o=e.getReader(),a=new TextDecoder;for(;i;){const{value:e,done:t}=yield o.read();i=!t;r+=a.decode(e),h(r)}return h(r),yield u.default.post("/fn/update",{id:t.jobId,data:Object.assign(Object.assign({},t),{text:r})}),void console.log("[Action] streaming done")}yield new Promise((e=>setTimeout(e,3e3))),w.refetch(),"development"===process.env.NODE_ENV&&console.log(`[Action] refetching <${m}>`)}catch(e){k(v.default(e))}}))}),O=i.useMemo((()=>{var e;return(null===(e=w.data)||void 0===e?void 0:e.actionId)||null}),[w.data]);return t.jsx("div",Object.assign({ref:q,className:"pxe-action"},!!O&&{"data-action-id":O},{children:t.jsx(l.AnimatePresence,{children:g||w.error||(null===(j=w.data)||void 0===j?void 0:j.error)?t.jsxs(l.motion.div,Object.assign({initial:{opacity:0},animate:{opacity:1},exit:{opacity:0},transition:{duration:.3}},{children:[t.jsx("blockquote",Object.assign({style:{lineHeight:"20px",borderLeft:"4px solid #FF0000",color:"#FF0000",paddingLeft:"1rem",marginBottom:"1rem"}},{children:g||(null===(p=w.data)||void 0===p?void 0:p.error)||"Failed to process, please try again."})),(null===(x=w.data)||void 0===x?void 0:x.traceback)&&t.jsxs(t.Fragment,{children:[t.jsxs("p",Object.assign({style:{color:"#FF0000"}},{children:["Traceback:"," "]})),t.jsx(c.PickaxeMarkdownRenderer,{value:`\`\`\`js\n${null===(y=w.data)||void 0===y?void 0:y.traceback}\n\`\`\``,recursion:!0})]})]})):b?t.jsx(l.motion.div,Object.assign({initial:{opacity:0},animate:{opacity:1},exit:{opacity:0},transition:{duration:.3}},{children:t.jsx(c.PickaxeMarkdownRenderer,{value:b,recursion:!0})})):t.jsx(l.motion.div,Object.assign({initial:{opacity:0},animate:{opacity:1},exit:{opacity:0},transition:{duration:.3}},{children:t.jsx(d.PickaxeLottie,{id:"dark"===f?"loader-white":"loader-black",getJson:()=>e.__awaiter(void 0,void 0,void 0,(function*(){return"dark"===f?n.loaderWhite:a.loaderBlack})),autoplay:!0,loop:!0,style:{cursor:"default",pointerEvents:"none",width:"100%",maxWidth:"150px",height:"150px"}})}))})}))};
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("../../../../../../_virtual/_tslib.js"),t=require("react/jsx-runtime"),r=require("react"),i=require("@tanstack/react-query"),o=require("../../hooks/usePickaxeMarkdownContext.js"),a=require("../../../../../../common/lotties/loader-black.js"),n=require("../../../../../../common/lotties/loader-white.js"),s=require("../../../../../../common/api/streamer.js"),d=require("../../../PickaxeLottie.js"),c=require("../../Renderer.js"),l=require("framer-motion"),u=require("../../../../../../common/api/utils.js"),m=require("../../../../../../common/error.js");exports.default=({jobUrl:v})=>{var j,p,x,f;const{theme:y}=o.usePickaxeMarkdownContext(),[h,b]=r.useState(""),[g,k]=r.useState(""),w=r.useRef(null),q=i.useQuery({queryKey:[v],queryFn:()=>(t=>e.__awaiter(void 0,void 0,void 0,(function*(){try{if(!t||t.includes("undefined"))throw new Error("Invalid action job URL");const e=yield fetch(t);return yield e.json()}catch(e){const t=m.default(e);return"development"===process.env.NODE_ENV&&console.error("[getJobResult]",t),{success:!1,error:t}}})))(v),enabled:"undefined"!=typeof window,retry:10,onSuccess:t=>e.__awaiter(void 0,void 0,void 0,(function*(){try{if(k(""),!t.success)return;if("text"in t)return void b(t.text||"");if(!("fcid"in t)){const e=(yield s.streamer(Object.assign({formId:t.formId,responseId:t.responseId,data:t.encodedData},t.actionData&&{actionData:t.actionData}))).body;if(!e)return;let r=!0,i="";const o=e.getReader(),a=new TextDecoder;for(;r;){const{value:e,done:t}=yield o.read();r=!t;const n=a.decode(e);if(n.startsWith("[PXE-ERROR]"))throw new Error(n.replace("[PXE-ERROR]","").trim());i+=n,b(i)}return b(i),yield u.default.post("/fn/update",{id:t.jobId,data:Object.assign(Object.assign({},t),{text:i})}),void console.log("[Action] streaming done")}yield new Promise((e=>setTimeout(e,3e3))),q.refetch(),"development"===process.env.NODE_ENV&&console.log(`[Action] refetching <${v}>`)}catch(e){k(m.default(e))}}))}),O=r.useMemo((()=>{var e;return(null===(e=q.data)||void 0===e?void 0:e.actionId)||null}),[q.data]);return t.jsx("div",Object.assign({ref:w,className:"pxe-action"},!!O&&{"data-action-id":O},{children:t.jsx(l.AnimatePresence,{children:g||q.error||(null===(j=q.data)||void 0===j?void 0:j.error)?t.jsxs(l.motion.div,Object.assign({initial:{opacity:0},animate:{opacity:1},exit:{opacity:0},transition:{duration:.3}},{children:[t.jsx("blockquote",Object.assign({style:{lineHeight:"20px",borderLeft:"4px solid #FF0000",color:"#FF0000",paddingLeft:"1rem",marginBottom:"1rem"}},{children:g||(null===(p=q.data)||void 0===p?void 0:p.error)||"Failed to process, please try again."})),(null===(x=q.data)||void 0===x?void 0:x.traceback)&&t.jsxs(t.Fragment,{children:[t.jsxs("p",Object.assign({style:{color:"#FF0000"}},{children:["Traceback:"," "]})),t.jsx(c.PickaxeMarkdownRenderer,{value:`\`\`\`js\n${null===(f=q.data)||void 0===f?void 0:f.traceback}\n\`\`\``,recursion:!0})]})]})):h?t.jsx(l.motion.div,Object.assign({initial:{opacity:0},animate:{opacity:1},exit:{opacity:0},transition:{duration:.3}},{children:t.jsx(c.PickaxeMarkdownRenderer,{value:h,recursion:!0})})):t.jsx(l.motion.div,Object.assign({initial:{opacity:0},animate:{opacity:1},exit:{opacity:0},transition:{duration:.3}},{children:t.jsx(d.PickaxeLottie,{id:"dark"===y?"loader-white":"loader-black",getJson:()=>e.__awaiter(void 0,void 0,void 0,(function*(){return"dark"===y?n.loaderWhite:a.loaderBlack})),autoplay:!0,loop:!0,style:{cursor:"default",pointerEvents:"none",width:"100%",maxWidth:"150px",height:"150px"}})}))})}))};
@@ -1 +1 @@
1
- import{__rest as e,__awaiter as t}from"../../../_virtual/_tslib.js";import{jsxs as o,jsx as s}from"react/jsx-runtime";import{useState as r,useRef as i,useMemo as n,useEffect as a,Fragment as l}from"react";import{usePickaxeContext as d}from"../../../hooks/pickaxe/usePickaxeContext.js";import{useResponseContext as c}from"../../../hooks/pickaxe/useResponseContext.js";import{useDimensionContext as u}from"../../../hooks/pickaxe/useDimensionContext.js";import{useStyleInput as m}from"../../../hooks/studio/useStyleInput.js";import{useStyleFontSize as p}from"../../../hooks/studio/useStyleFontSize.js";import{useConversation as f}from"../../../hooks/pickaxe/useConversation.js";import{useSubmit as g}from"../../../hooks/pickaxe/useSubmit.js";import{useSubmitResult as h}from"../../../hooks/pickaxe/useSubmitResult.js";import{allowedFileMimeTypes as b,allowedImageMimeTypes as v}from"../../../common/documents.js";import{streamer as x}from"../../../common/api/streamer.js";import{useDocument as j}from"../Addons/Document/hooks/useDocument.js";import{useScroll as y}from"../Addons/Scroll/hooks/useScroll.js";import{useHover as k}from"../../../hooks/core/useHover.js";import{formatBytes as I}from"../../../common/utils.js";import w from"../../Icons/attach-vertical.svg.js";import O from"../../Icons/spinner-lines.svg.js";import N from"../../Icons/file.svg.js";import C from"../../Icons/x.svg.js";import S from"../../Icons/arrow-right.svg.js";import R from"../common/PickaxeBranding.js";import D from"../Addons/IceBreaker/index.js";import A from"../../Core/Textarea.js";import U from"../../../common/error.js";import T from"../../../common/cn.js";const B=()=>{var B;const{formId:E,chatId:H,userId:L,studioUserId:z,deploymentId:F,pickaxe:G,styles:M,colors:P,misc:W,chatInput:$,responsiveBy:K,forceMobile:_,isNewChat:q,setIsNewChat:J,setIsShowIceBreaker:Q,onGenerateComplete:V}=d(),{messages:X,status:Y,limits:Z,isGenerating:ee,setMessages:te,setStatus:oe,setLimitData:se,setError:re,setIsGenerating:ie}=c(),{isMobile:ne}=u(),{documents:ae,isUploading:le,isImageUploadAllowed:de,upsertDocuments:ce,onFileUpload:ue}=j(),{scrollStartSession:me,scrollEndSession:pe,scrollToBottom:fe}=y({auto:!0}),ge=f(),he=g(),be=h(),ve=p(),xe=m(),[je,ye]=r($),ke=i(null),Ie=k(),{isHover:we}=Ie,Oe=e(Ie,["isHover"]),Ne=k(),{isHover:Ce}=Ne,Se=e(Ne,["isHover"]),Re=n((()=>{var e,t,o;return!!q&&(!!G&&(!ge.isLoading&&(!((null!==(t=null===(e=ge.data)||void 0===e?void 0:e.messages.length)&&void 0!==t?t:0)>1)&&!!(null===(o=G.icebreakers)||void 0===o?void 0:o.length))))}),[G,q,ge.data,ge.isLoading]),De=e=>t(void 0,void 0,void 0,(function*(){try{if(le||"idle"!==Y||ee)return;const t=null!=e?e:je;if(!t)return;ye(""),re(""),se(null),ie(!0),J(!1);const o=new Date,s="enduserupload"===(null==G?void 0:G.documentuploadtype),r=ae.filter((e=>"finished"===e.status&&!e.isInsertedAsRaw)),i=r.length?r[r.length-1].documentId:"";oe("fetching"),me(),fe();const n=Array.from(X);let a=[...n,{id:X.length+1,role:"user",content:t}];te(a),fe();const{success:l,data:d,actionData:c,usedDocumentIds:u,endUserDocumentId:m,endUserImageId:p,rawUserInput:f,error:g}=yield he.mutateAsync(Object.assign(Object.assign(Object.assign({formId:E,responseId:H,value:t},s&&i&&{documentId:i}),z&&{studioUserId:z}),F&&{deploymentId:F}));if(!l)throw new Error(null!=g?g:"An error occurred, please try again.");const h=[];m&&h.push(m),p&&h.push(p),h.length>0&&(a=[...n,Object.assign({id:X.length+1,role:"user",content:t},h&&{documentIds:h})],te(a),fe()),ce([]),fe();const b=(yield x({formId:E,responseId:H,data:d,actionData:c})).body;if(!b)throw new Error("Streaming error");const v=b.getReader(),j=new TextDecoder,y=a.length;let k="",I=!0,w=!1;for(;I;){const{value:e,done:t}=yield v.read();I=!t;if(k+=j.decode(e).replace(/\u200B/g,""),k)w||(oe("streaming"),w=!0),te([...a.slice(0,y),{id:X.length+1,role:"assistant",content:k}]);else if(!I&&!k)throw new Error("Server error")}const O=new Date;k&&(fe(),yield be.mutateAsync(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({formId:E,responseId:H,documentIds:u},L&&{userId:L}),z&&{studioUserId:z}),z&&(null==G?void 0:G.studioid)&&{studioId:G.studioid}),F&&{deploymentId:F}),{messages:[Object.assign(Object.assign({role:"user",message:f},h&&{documentIds:h}),{sentAt:o}),{role:"assistant",message:k,sentAt:O}]})),oe("idle"),null==V||V(H))}catch(e){let t=U(e)||"";t&&!t.includes("Unexpected token 'A',")||(t="Oops! We're experiencing high traffic at the moment. Please try again later.");const o=Object.entries(Z).find((([e])=>t.includes(e)));o?se(o[1]):re(t),fe()}finally{oe("idle"),ie(!1),pe()}}));return a((()=>{Q(Re)}),[Re]),a((()=>{ye($)}),[$]),o("div",Object.assign({className:T("fixed flex w-full flex-col bottom-0 left-0","viewport"===K?"min-[767px]:relative min-[767px]:bottom-auto min-[767px]:left-auto":"absolute @[767px]/pickaxe-root:relative @[767px]/pickaxe-root:bottom-auto @[767px]/pickaxe-root:left-auto")},{children:[!W.isWhiteLabel&&s("div",Object.assign({className:"flex justify-end pr-3 pb-3 @[767px]/pickaxe-root:pr-0"},{children:s(R,{animateHover:!0})})),Re&&s(D,{data:(null==G?void 0:G.icebreakers)||[],onSend:De}),o("div",Object.assign({id:(null==G?void 0:G.formid)+"--chat-parent",style:Object.assign(Object.assign({},xe),(ne||_)&&{paddingLeft:"0.75rem",paddingRight:"0.75rem"}),className:T("flex min-h-[56px] flex-col gap-y-2 px-4 py-3 pb-[15px]","block"===M.formFieldStyle&&"shadow")},{children:["idle"===Y&&ae.length>0&&s("div",Object.assign({className:T("grid grid-cols-1","viewport"===K?"min-[765px]:grid-cols-2":"@[767px]/pickaxe-root:grid-cols-2")},{children:ae.map((e=>{var t,r,i;return s(l,{children:"document"===e.type?o("div",Object.assign({className:"relative gap-x-[10px] flex items-center px-2 h-[56px] border",style:{borderRadius:xe.borderRadius,borderColor:P.secondaryText+"50"}},{children:[s("div",Object.assign({className:"w-10 h-10 flex items-center justify-center shrink-0",style:{backgroundColor:P.accent,borderRadius:xe.borderRadius}},{children:le?s(O,{className:"w-5 h-5 animate-spin",style:{color:P.accentText}}):s(N,{className:"w-5 h-5",style:{color:P.accentText}})})),o("div",Object.assign({className:"flex flex-col justify-center truncate"},{children:[s("p",Object.assign({className:(T(ve.b3),"font-medium truncate")},{children:e.name})),s("p",Object.assign({className:T(ve.b4,"opacity-80 truncate")},{children:I(e.size)}))]})),s("button",Object.assign({type:"button",disabled:le||"idle"!==Y,onClick:()=>ce([]),className:"absolute w-5 h-5 rounded-full -right-2 -top-2 flex items-center justify-center border outline-none disabled:cursor-default",style:{backgroundColor:P.accent,borderColor:xe.backgroundColor}},{children:s(C,{className:"w-4 h-4",style:{color:P.accentText}})}))]})):"image"===e.type?o("div",Object.assign({className:"relative h-[56px] w-[56px] bg-stone-100",style:{borderRadius:xe.borderRadius}},{children:["finished"===e.status?s("img",{style:{borderRadius:xe.borderRadius},className:"object-cover w-full h-full",src:`https://prod-pickaxe-assets.s3.us-west-2.amazonaws.com/documentinterrogation/${null===(t=e.documentId)||void 0===t?void 0:t.split("-")[2]}/${null===(r=e.documentId)||void 0===r?void 0:r.split("-")[1]}.${null===(i=e.documentId)||void 0===i?void 0:i.split("-")[2]}`,alt:""}):s("div",{className:"h-full w-full animate-pulse",style:{borderRadius:xe.borderRadius,backgroundColor:P.secondary}}),s("button",Object.assign({type:"button",disabled:le||"idle"!==Y,onClick:()=>ce([]),className:"absolute w-5 h-5 rounded-full -right-2 -top-2 flex items-center justify-center border outline-none disabled:cursor-default",style:{backgroundColor:P.accent,borderColor:xe.backgroundColor}},{children:s(C,{className:"w-4 h-4",style:{color:P.accentText}})}))]})):null},e.id)}))})),o("div",Object.assign({className:"flex items-end gap-x-2 grow"},{children:[s(A,{id:(null==G?void 0:G.formid)+"--chat-textarea",className:T(ve.b2,"max-h-60 mb-[0.2em] w-full border-transparent bg-transparent",!je.length&&"max-h-6 overflow-hidden text-ellipsis whitespace-nowrap"),value:je,placeholder:null!==(B=null==G?void 0:G.placeholdertext)&&void 0!==B?B:"What do you want to talk about?",onChange:e=>ye(e),onKeyDown:e=>{"Enter"===e.key&&(e.shiftKey||(e.preventDefault(),le||"idle"!==Y||De()))}}),o("div",Object.assign({className:"flex items-center gap-x-2"},{children:["enduserupload"===(null==G?void 0:G.documentuploadtype)&&o("button",Object.assign({className:"outline-none disabled:cursor-default w-8 h-8 flex items-center justify-center rounded-full transition-colors duration-200 ease-in-out",style:{backgroundColor:Ce?P.accent+"10":void 0},disabled:le||"idle"!==Y,onClick:()=>{var e;return null===(e=ke.current)||void 0===e?void 0:e.click()}},Se,{children:[s("input",{id:"file-upload",ref:ke,type:"file",accept:[...b,...de?v:[]].join(", "),multiple:!1,hidden:!0,className:"hidden",onChange:e=>t(void 0,void 0,void 0,(function*(){yield ue(Array.from(e.target.files||[])),e.target.value=""}))}),s(w,{className:"h-6 w-6 shrink-0 duration-200 transition-colors ease-in-out",style:{color:Ce?P.accent:P.accent+"80"}})]})),s("button",Object.assign({id:(null==G?void 0:G.formid)+"--chat-button",className:"outline-none disabled:cursor-default w-8 h-8 flex items-center justify-center rounded-full duration-200 transition-colors ease-in-out",style:{backgroundColor:(we||je.length||ae.length&&ae.every((e=>"finished"===e.status)))&&!ee?P.accent:P.accent+"10"},disabled:le||"idle"!==Y,onClick:()=>De()},Oe,{children:s(S,{className:"h-6 w-6 shrink-0 duration-200 transition-colors ease-in-out",style:{color:(we||je.length||ae.length&&ae.every((e=>"finished"===e.status)))&&!ee?P.accentText:P.accent+"80"}})}))]}))]}))]}))]}))};export{B as default};
1
+ import{__rest as e,__awaiter as t}from"../../../_virtual/_tslib.js";import{jsxs as o,jsx as s}from"react/jsx-runtime";import{useState as r,useRef as i,useMemo as n,useEffect as a,Fragment as l}from"react";import{usePickaxeContext as d}from"../../../hooks/pickaxe/usePickaxeContext.js";import{useResponseContext as c}from"../../../hooks/pickaxe/useResponseContext.js";import{useDimensionContext as u}from"../../../hooks/pickaxe/useDimensionContext.js";import{useStyleInput as m}from"../../../hooks/studio/useStyleInput.js";import{useStyleFontSize as p}from"../../../hooks/studio/useStyleFontSize.js";import{useConversation as f}from"../../../hooks/pickaxe/useConversation.js";import{useSubmit as h}from"../../../hooks/pickaxe/useSubmit.js";import{useSubmitResult as g}from"../../../hooks/pickaxe/useSubmitResult.js";import{allowedFileMimeTypes as b,allowedImageMimeTypes as v}from"../../../common/documents.js";import{streamer as x}from"../../../common/api/streamer.js";import{useDocument as j}from"../Addons/Document/hooks/useDocument.js";import{useScroll as y}from"../Addons/Scroll/hooks/useScroll.js";import{useHover as k}from"../../../hooks/core/useHover.js";import{formatBytes as w}from"../../../common/utils.js";import I from"../../Icons/attach-vertical.svg.js";import O from"../../Icons/spinner-lines.svg.js";import N from"../../Icons/file.svg.js";import C from"../../Icons/x.svg.js";import R from"../../Icons/arrow-right.svg.js";import S from"../common/PickaxeBranding.js";import D from"../Addons/IceBreaker/index.js";import A from"../../Core/Textarea.js";import E from"../../../common/error.js";import U from"../../../common/cn.js";const T=()=>{var T;const{formId:B,chatId:H,userId:L,studioUserId:P,deploymentId:W,pickaxe:z,styles:F,colors:G,misc:M,chatInput:$,responsiveBy:K,forceMobile:X,isNewChat:_,setIsNewChat:q,setIsShowIceBreaker:J,onGenerateComplete:Q}=d(),{messages:V,status:Y,limits:Z,isGenerating:ee,setMessages:te,setStatus:oe,setLimitData:se,setError:re,setIsGenerating:ie}=c(),{isMobile:ne}=u(),{documents:ae,isUploading:le,isImageUploadAllowed:de,upsertDocuments:ce,onFileUpload:ue}=j(),{scrollStartSession:me,scrollEndSession:pe,scrollToBottom:fe}=y({auto:!0}),he=f(),ge=h(),be=g(),ve=p(),xe=m(),[je,ye]=r($),ke=i(null),we=k(),{isHover:Ie}=we,Oe=e(we,["isHover"]),Ne=k(),{isHover:Ce}=Ne,Re=e(Ne,["isHover"]),Se=n((()=>{var e,t,o;return!!_&&(!!z&&(!he.isLoading&&(!((null!==(t=null===(e=he.data)||void 0===e?void 0:e.messages.length)&&void 0!==t?t:0)>1)&&!!(null===(o=z.icebreakers)||void 0===o?void 0:o.length))))}),[z,_,he.data,he.isLoading]),De=e=>t(void 0,void 0,void 0,(function*(){try{if(le||"idle"!==Y||ee)return;const t=null!=e?e:je;if(!t)return;ye(""),re(""),se(null),ie(!0),q(!1);const o=new Date,s="enduserupload"===(null==z?void 0:z.documentuploadtype),r=ae.filter((e=>"finished"===e.status&&!e.isInsertedAsRaw)),i=r.length?r[r.length-1].documentId:"";oe("fetching"),me(),fe();const n=Array.from(V);let a=[...n,{id:V.length+1,role:"user",content:t}];te(a),fe();const{success:l,data:d,actionData:c,usedDocumentIds:u,endUserDocumentId:m,endUserImageId:p,rawUserInput:f,error:h}=yield ge.mutateAsync(Object.assign(Object.assign(Object.assign({formId:B,responseId:H,value:t},s&&i&&{documentId:i}),P&&{studioUserId:P}),W&&{deploymentId:W}));if(!l)throw new Error(null!=h?h:"An error occurred, please try again.");const g=[];m&&g.push(m),p&&g.push(p),g.length>0&&(a=[...n,Object.assign({id:V.length+1,role:"user",content:t},g&&{documentIds:g})],te(a),fe()),ce([]),fe();const b=(yield x({formId:B,responseId:H,data:d,actionData:c})).body;if(!b)throw new Error("Streaming error");const v=b.getReader(),j=new TextDecoder,y=a.length;let k="",w=!0,I=!1;for(;w;){const{value:e,done:t}=yield v.read();w=!t;const o=j.decode(e);if(o.startsWith("[PXE-ERROR]"))throw new Error(o.replace("[PXE-ERROR]","").trim());if(k+=o.replace(/\u200B/g,""),k)I||(oe("streaming"),I=!0),te([...a.slice(0,y),{id:V.length+1,role:"assistant",content:k}]);else if(!w&&!k)throw new Error("Server error")}const O=new Date;k&&(fe(),yield be.mutateAsync(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({formId:B,responseId:H,documentIds:u},L&&{userId:L}),P&&{studioUserId:P}),P&&(null==z?void 0:z.studioid)&&{studioId:z.studioid}),W&&{deploymentId:W}),{messages:[Object.assign(Object.assign({role:"user",message:f},g&&{documentIds:g}),{sentAt:o}),{role:"assistant",message:k,sentAt:O}]})),oe("idle"),null==Q||Q(H))}catch(e){let t=E(e)||"";t&&!t.includes("Unexpected token 'A',")||(t="Oops! We're experiencing high traffic at the moment. Please try again later.");const o=Object.entries(Z).find((([e])=>t.includes(e)));o?se(o[1]):re(t),fe()}finally{oe("idle"),ie(!1),pe()}}));return a((()=>{J(Se)}),[Se]),a((()=>{ye($)}),[$]),o("div",Object.assign({className:U("fixed flex w-full flex-col bottom-0 left-0","viewport"===K?"min-[767px]:relative min-[767px]:bottom-auto min-[767px]:left-auto":"absolute @[767px]/pickaxe-root:relative @[767px]/pickaxe-root:bottom-auto @[767px]/pickaxe-root:left-auto")},{children:[!M.isWhiteLabel&&s("div",Object.assign({className:"flex justify-end pr-3 pb-3 @[767px]/pickaxe-root:pr-0"},{children:s(S,{animateHover:!0})})),Se&&s(D,{data:(null==z?void 0:z.icebreakers)||[],onSend:De}),o("div",Object.assign({id:(null==z?void 0:z.formid)+"--chat-parent",style:Object.assign(Object.assign({},xe),(ne||X)&&{paddingLeft:"0.75rem",paddingRight:"0.75rem"}),className:U("flex min-h-[56px] flex-col gap-y-2 px-4 py-3 pb-[15px]","block"===F.formFieldStyle&&"shadow")},{children:["idle"===Y&&ae.length>0&&s("div",Object.assign({className:U("grid grid-cols-1","viewport"===K?"min-[765px]:grid-cols-2":"@[767px]/pickaxe-root:grid-cols-2")},{children:ae.map((e=>{var t,r,i;return s(l,{children:"document"===e.type?o("div",Object.assign({className:"relative gap-x-[10px] flex items-center px-2 h-[56px] border",style:{borderRadius:xe.borderRadius,borderColor:G.secondaryText+"50"}},{children:[s("div",Object.assign({className:"w-10 h-10 flex items-center justify-center shrink-0",style:{backgroundColor:G.accent,borderRadius:xe.borderRadius}},{children:le?s(O,{className:"w-5 h-5 animate-spin",style:{color:G.accentText}}):s(N,{className:"w-5 h-5",style:{color:G.accentText}})})),o("div",Object.assign({className:"flex flex-col justify-center truncate"},{children:[s("p",Object.assign({className:(U(ve.b3),"font-medium truncate")},{children:e.name})),s("p",Object.assign({className:U(ve.b4,"opacity-80 truncate")},{children:w(e.size)}))]})),s("button",Object.assign({type:"button",disabled:le||"idle"!==Y,onClick:()=>ce([]),className:"absolute w-5 h-5 rounded-full -right-2 -top-2 flex items-center justify-center border outline-none disabled:cursor-default",style:{backgroundColor:G.accent,borderColor:xe.backgroundColor}},{children:s(C,{className:"w-4 h-4",style:{color:G.accentText}})}))]})):"image"===e.type?o("div",Object.assign({className:"relative h-[56px] w-[56px] bg-stone-100",style:{borderRadius:xe.borderRadius}},{children:["finished"===e.status?s("img",{style:{borderRadius:xe.borderRadius},className:"object-cover w-full h-full",src:`https://prod-pickaxe-assets.s3.us-west-2.amazonaws.com/documentinterrogation/${null===(t=e.documentId)||void 0===t?void 0:t.split("-")[2]}/${null===(r=e.documentId)||void 0===r?void 0:r.split("-")[1]}.${null===(i=e.documentId)||void 0===i?void 0:i.split("-")[2]}`,alt:""}):s("div",{className:"h-full w-full animate-pulse",style:{borderRadius:xe.borderRadius,backgroundColor:G.secondary}}),s("button",Object.assign({type:"button",disabled:le||"idle"!==Y,onClick:()=>ce([]),className:"absolute w-5 h-5 rounded-full -right-2 -top-2 flex items-center justify-center border outline-none disabled:cursor-default",style:{backgroundColor:G.accent,borderColor:xe.backgroundColor}},{children:s(C,{className:"w-4 h-4",style:{color:G.accentText}})}))]})):null},e.id)}))})),o("div",Object.assign({className:"flex items-end gap-x-2 grow"},{children:[s(A,{id:(null==z?void 0:z.formid)+"--chat-textarea",className:U(ve.b2,"max-h-60 mb-[0.2em] w-full border-transparent bg-transparent",!je.length&&"max-h-6 overflow-hidden text-ellipsis whitespace-nowrap"),value:je,placeholder:null!==(T=null==z?void 0:z.placeholdertext)&&void 0!==T?T:"What do you want to talk about?",onChange:e=>ye(e),onKeyDown:e=>{"Enter"===e.key&&(e.shiftKey||(e.preventDefault(),le||"idle"!==Y||De()))}}),o("div",Object.assign({className:"flex items-center gap-x-2"},{children:["enduserupload"===(null==z?void 0:z.documentuploadtype)&&o("button",Object.assign({className:"outline-none disabled:cursor-default w-8 h-8 flex items-center justify-center rounded-full transition-colors duration-200 ease-in-out",style:{backgroundColor:Ce?G.accent+"10":void 0},disabled:le||"idle"!==Y,onClick:()=>{var e;return null===(e=ke.current)||void 0===e?void 0:e.click()}},Re,{children:[s("input",{id:"file-upload",ref:ke,type:"file",accept:[...b,...de?v:[]].join(", "),multiple:!1,hidden:!0,className:"hidden",onChange:e=>t(void 0,void 0,void 0,(function*(){yield ue(Array.from(e.target.files||[])),e.target.value=""}))}),s(I,{className:"h-6 w-6 shrink-0 duration-200 transition-colors ease-in-out",style:{color:Ce?G.accent:G.accent+"80"}})]})),s("button",Object.assign({id:(null==z?void 0:z.formid)+"--chat-button",className:"outline-none disabled:cursor-default w-8 h-8 flex items-center justify-center rounded-full duration-200 transition-colors ease-in-out",style:{backgroundColor:(Ie||je.length||ae.length&&ae.every((e=>"finished"===e.status)))&&!ee?G.accent:G.accent+"10"},disabled:le||"idle"!==Y,onClick:()=>De()},Oe,{children:s(R,{className:"h-6 w-6 shrink-0 duration-200 transition-colors ease-in-out",style:{color:(Ie||je.length||ae.length&&ae.every((e=>"finished"===e.status)))&&!ee?G.accentText:G.accent+"80"}})}))]}))]}))]}))]}))};export{T as default};
@@ -1 +1 @@
1
- import{__awaiter as e}from"../../../../_virtual/_tslib.js";import{jsxs as s,jsx as o}from"react/jsx-runtime";import{useState as t}from"react";import{usePickaxeContext as i}from"../../../../hooks/pickaxe/usePickaxeContext.js";import{useResponseContext as n}from"../../../../hooks/pickaxe/useResponseContext.js";import{useSubmit as r}from"../../../../hooks/pickaxe/useSubmit.js";import{useSubmitResult as l}from"../../../../hooks/pickaxe/useSubmitResult.js";import{useDocument as a}from"../../Addons/Document/hooks/useDocument.js";import{useScroll as d}from"../../Addons/Scroll/hooks/useScroll.js";import{streamer as c}from"../../../../common/api/streamer.js";import{extractUrlsFromText as u}from"../../../../common/utils.js";import{encode as m}from"@nem035/gpt-3-encoder";import p from"../../common/PickaxeBranding.js";import f from"../../common/PickaxeButton.js";import g from"../../../../common/error.js";import h from"../../../../common/cn.js";const b=({questions:b})=>{var x;const{formId:j,userId:v,studioUserId:w,deploymentId:y,pickaxe:I,misc:k,translations:O,responsiveBy:S,isShowHistory:q,setChatId:D,setIsShowHistory:C,setIsNewChat:E,onGenerateComplete:P}=i(),{status:U,limits:R,isGenerating:A,setResponse:N,setMessages:L,setStatus:B,setLimitData:T,setError:G,setIsGenerating:H}=n(),{documents:W,websiteLink:M,isUploading:_,onWebsiteUpload:K,setDocumentError:Y}=a(),{scrollStartSession:z,scrollEndSession:F,scrollToTarget:J}=d({auto:!(null==I?void 0:I.enablechatresponses)}),Q=r(),V=l(),[X,Z]=t(!1);return s("div",Object.assign({className:h("mt-4 flex flex-wrap flex-col justify-between gap-2","viewport"===S?"min-[767px]:flex-row":"@[767px]/pickaxe-root:flex-row")},{children:[s("div",Object.assign({className:"flex items-center flex-grow flex-wrap gap-2"},{children:[o(f,Object.assign({className:"px-5 min-h-[42px]",isDisabled:_||"idle"!==U||A||X,onClick:()=>e(void 0,void 0,void 0,(function*(){var e;try{if(_||"idle"!==U||A||X)return;N(null),T(null),Y(""),H(!0);const s="enduserupload"===(null==I?void 0:I.documentuploadtype),o=b.some((e=>"userinput:documentupload"===e.id&&e.isRequired)),t=W.filter((e=>"finished"===e.status)),i=u(M),n=W.map((e=>e.name)),r=i.filter((e=>!n.includes(e)));if(r.length){const e=r[r.length-1];Z(!0);const s=yield K(e);s&&(t.push(s),yield new Promise((e=>setTimeout(e,5e3)))),Z(!1)}else if(o&&s&&!t.length)return void Y("Please paste a valid website/video link or drag a file to add to the knowledge base.");G("");const l=["Multiple Choice","Checkbox"];for(const e of b){if(m(e.input).length>e.maxLength&&!l.includes(e.type))throw new Error("One or more of your responses is too long!");if(e.isRequired&&!e.input.trim()&&"userinput:documentupload"!==e.id)throw new Error("You must fill out all required fields.")}const a=t.length?t[t.length-1]:null;let d={};b.forEach((e=>d=Object.assign(Object.assign({},d),{[e.id]:"Knowledge Upload"===e.type||e.id.includes("documentupload")?(null==a?void 0:a.name)||"":e.input}))),B("fetching"),z(),J();const{success:p,responseId:f,data:g,actionData:h,usedDocumentIds:x,rawUserInput:k,error:O}=yield Q.mutateAsync(Object.assign(Object.assign(Object.assign({formId:j,valueObj:d},s&&a&&{documentId:null!==(e=a.documentId)&&void 0!==e?e:""}),w&&{studioUserId:w}),y&&{deploymentId:y}));if(!p)throw new Error(null!=O?O:"An error occurred, please try again.");J();const S=(yield c({formId:j,responseId:f,data:g,actionData:h})).body;if(!S)throw new Error("Streaming error");const q=S.getReader(),C=new TextDecoder;let R="",F=!0,$=!1;J();const ee=b.map((e=>({id:e.id,question:e.main,answer:e.input})));for(;F;){const{value:e,done:s}=yield q.read();F=!s;if(R+=C.decode(e).replace(/\u200B/g,""),R)$||(B("streaming"),$=!0,(null==I?void 0:I.enablechatresponses)&&(D(f),E(!1))),N({formId:j,responseId:f,documentIds:x,messages:[],questions:ee,questionPrompt:k,questionResponse:R,createdAt:new Date}),(null==I?void 0:I.enablechatresponses)&&L([{id:0,role:"assistant",content:R}]);else if(!F&&!R)throw new Error("Server error")}R&&(J(),yield V.mutateAsync(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({formId:j,responseId:f,documentIds:x},v&&{userId:v}),w&&{studioUserId:w}),w&&(null==I?void 0:I.studioid)&&{studioId:I.studioid}),y&&{deploymentId:y}),{questions:ee,questionPrompt:k,questionResponse:R})),B("idle"),null==P||P(f))}catch(e){let s=g(e)||"";s&&!s.includes("Unexpected token 'A',")||(s="Oops! We're experiencing high traffic at the moment. Please try again later.");const o=Object.entries(R).find((([e])=>s.includes(e)));o?T(o[1]):G(s),J()}finally{B("idle"),H(!1),Z(!1),F()}}))},{children:X?(null==O?void 0:O.processing)||"Processing...":_?(null==O?void 0:O.uploading)||"Uploading...":"fetching"===U||"streaming"===U?(null==O?void 0:O.loading)||"Loading...":null!==(x=null==I?void 0:I.submittext)&&void 0!==x?x:"Submit"})),k.isHistory&&!q&&o(f,Object.assign({variant:"transparent-text",className:"px-4",onClick:()=>C(!0)},{children:(null==O?void 0:O["see-history"])||"See history"}))]})),!k.isWhiteLabel&&o("div",Object.assign({className:"flex justify-end pr-3"},{children:o(p,{})}))]}))};export{b as default};
1
+ import{__awaiter as e}from"../../../../_virtual/_tslib.js";import{jsxs as s,jsx as o}from"react/jsx-runtime";import{useState as t}from"react";import{usePickaxeContext as i}from"../../../../hooks/pickaxe/usePickaxeContext.js";import{useResponseContext as n}from"../../../../hooks/pickaxe/useResponseContext.js";import{useSubmit as r}from"../../../../hooks/pickaxe/useSubmit.js";import{useSubmitResult as l}from"../../../../hooks/pickaxe/useSubmitResult.js";import{useDocument as a}from"../../Addons/Document/hooks/useDocument.js";import{useScroll as d}from"../../Addons/Scroll/hooks/useScroll.js";import{streamer as c}from"../../../../common/api/streamer.js";import{extractUrlsFromText as u}from"../../../../common/utils.js";import{encode as m}from"@nem035/gpt-3-encoder";import p from"../../common/PickaxeBranding.js";import f from"../../common/PickaxeButton.js";import g from"../../../../common/error.js";import h from"../../../../common/cn.js";const b=({questions:b})=>{var x;const{formId:j,userId:v,studioUserId:w,deploymentId:y,pickaxe:I,misc:k,translations:O,responsiveBy:E,isShowHistory:R,setChatId:S,setIsShowHistory:q,setIsNewChat:P,onGenerateComplete:D}=i(),{status:C,limits:U,isGenerating:A,setResponse:N,setMessages:L,setStatus:B,setLimitData:T,setError:W,setIsGenerating:G}=n(),{documents:H,websiteLink:M,isUploading:X,onWebsiteUpload:_,setDocumentError:K}=a(),{scrollStartSession:Y,scrollEndSession:z,scrollToTarget:F}=d({auto:!(null==I?void 0:I.enablechatresponses)}),J=r(),Q=l(),[V,Z]=t(!1);return s("div",Object.assign({className:h("mt-4 flex flex-wrap flex-col justify-between gap-2","viewport"===E?"min-[767px]:flex-row":"@[767px]/pickaxe-root:flex-row")},{children:[s("div",Object.assign({className:"flex items-center flex-grow flex-wrap gap-2"},{children:[o(f,Object.assign({className:"px-5 min-h-[42px]",isDisabled:X||"idle"!==C||A||V,onClick:()=>e(void 0,void 0,void 0,(function*(){var e;try{if(X||"idle"!==C||A||V)return;N(null),T(null),K(""),G(!0);const s="enduserupload"===(null==I?void 0:I.documentuploadtype),o=b.some((e=>"userinput:documentupload"===e.id&&e.isRequired)),t=H.filter((e=>"finished"===e.status)),i=u(M),n=H.map((e=>e.name)),r=i.filter((e=>!n.includes(e)));if(r.length){const e=r[r.length-1];Z(!0);const s=yield _(e);s&&(t.push(s),yield new Promise((e=>setTimeout(e,5e3)))),Z(!1)}else if(o&&s&&!t.length)return void K("Please paste a valid website/video link or drag a file to add to the knowledge base.");W("");const l=["Multiple Choice","Checkbox"];for(const e of b){if(m(e.input).length>e.maxLength&&!l.includes(e.type))throw new Error("One or more of your responses is too long!");if(e.isRequired&&!e.input.trim()&&"userinput:documentupload"!==e.id)throw new Error("You must fill out all required fields.")}const a=t.length?t[t.length-1]:null;let d={};b.forEach((e=>d=Object.assign(Object.assign({},d),{[e.id]:"Knowledge Upload"===e.type||e.id.includes("documentupload")?(null==a?void 0:a.name)||"":e.input}))),B("fetching"),Y(),F();const{success:p,responseId:f,data:g,actionData:h,usedDocumentIds:x,rawUserInput:k,error:O}=yield J.mutateAsync(Object.assign(Object.assign(Object.assign({formId:j,valueObj:d},s&&a&&{documentId:null!==(e=a.documentId)&&void 0!==e?e:""}),w&&{studioUserId:w}),y&&{deploymentId:y}));if(!p)throw new Error(null!=O?O:"An error occurred, please try again.");F();const E=(yield c({formId:j,responseId:f,data:g,actionData:h})).body;if(!E)throw new Error("Streaming error");const R=E.getReader(),q=new TextDecoder;let U="",z=!0,$=!1;F();const ee=b.map((e=>({id:e.id,question:e.main,answer:e.input})));for(;z;){const{value:e,done:s}=yield R.read();z=!s;const o=q.decode(e);if(o.startsWith("[PXE-ERROR]"))throw new Error(o.replace("[PXE-ERROR]","").trim());if(U+=o.replace(/\u200B/g,""),U)$||(B("streaming"),$=!0,(null==I?void 0:I.enablechatresponses)&&(S(f),P(!1))),N({formId:j,responseId:f,documentIds:x,messages:[],questions:ee,questionPrompt:k,questionResponse:U,createdAt:new Date}),(null==I?void 0:I.enablechatresponses)&&L([{id:0,role:"assistant",content:U}]);else if(!z&&!U)throw new Error("Server error")}U&&(F(),yield Q.mutateAsync(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({formId:j,responseId:f,documentIds:x},v&&{userId:v}),w&&{studioUserId:w}),w&&(null==I?void 0:I.studioid)&&{studioId:I.studioid}),y&&{deploymentId:y}),{questions:ee,questionPrompt:k,questionResponse:U})),B("idle"),null==D||D(f))}catch(e){let s=g(e)||"";s&&!s.includes("Unexpected token 'A',")||(s="Oops! We're experiencing high traffic at the moment. Please try again later.");const o=Object.entries(U).find((([e])=>s.includes(e)));o?T(o[1]):W(s),F()}finally{B("idle"),G(!1),Z(!1),z()}}))},{children:V?(null==O?void 0:O.processing)||"Processing...":X?(null==O?void 0:O.uploading)||"Uploading...":"fetching"===C||"streaming"===C?(null==O?void 0:O.loading)||"Loading...":null!==(x=null==I?void 0:I.submittext)&&void 0!==x?x:"Submit"})),k.isHistory&&!R&&o(f,Object.assign({variant:"transparent-text",className:"px-4",onClick:()=>q(!0)},{children:(null==O?void 0:O["see-history"])||"See history"}))]})),!k.isWhiteLabel&&o("div",Object.assign({className:"flex justify-end pr-3"},{children:o(p,{})}))]}))};export{b as default};
@@ -1 +1 @@
1
- import{__awaiter as e}from"../../../../../../_virtual/_tslib.js";import{jsx as o,jsxs as t,Fragment as i}from"react/jsx-runtime";import{useState as r,useRef as n,useMemo as a}from"react";import{useQuery as d}from"@tanstack/react-query";import{usePickaxeMarkdownContext as c}from"../../hooks/usePickaxeMarkdownContext.js";import{loaderBlack as s}from"../../../../../../common/lotties/loader-black.js";import{loaderWhite as l}from"../../../../../../common/lotties/loader-white.js";import{streamer as m}from"../../../../../../common/api/streamer.js";import{PickaxeLottie as u}from"../../../PickaxeLottie.js";import{PickaxeMarkdownRenderer as p}from"../../Renderer.js";import{AnimatePresence as f,motion as v}from"framer-motion";import y from"../../../../../../common/api/utils.js";import j from"../../../../../../common/error.js";const b=({jobUrl:b})=>{var h,g,x,k;const{theme:O}=c(),[w,F]=r(""),[D,I]=r(""),E=n(null),N=d({queryKey:[b],queryFn:()=>(o=>e(void 0,void 0,void 0,(function*(){try{if(!o||o.includes("undefined"))throw new Error("Invalid action job URL");const e=yield fetch(o);return yield e.json()}catch(e){const o=j(e);return"development"===process.env.NODE_ENV&&console.error("[getJobResult]",o),{success:!1,error:o}}})))(b),enabled:"undefined"!=typeof window,retry:10,onSuccess:o=>e(void 0,void 0,void 0,(function*(){try{if(I(""),!o.success)return;if("text"in o)return void F(o.text||"");if(!("fcid"in o)){const e=(yield m(Object.assign({formId:o.formId,responseId:o.responseId,data:o.encodedData},o.actionData&&{actionData:o.actionData}))).body;if(!e)return;let t=!0,i="";const r=e.getReader(),n=new TextDecoder;for(;t;){const{value:e,done:o}=yield r.read();t=!o;i+=n.decode(e),F(i)}return F(i),yield y.post("/fn/update",{id:o.jobId,data:Object.assign(Object.assign({},o),{text:i})}),void console.log("[Action] streaming done")}yield new Promise((e=>setTimeout(e,3e3))),N.refetch(),"development"===process.env.NODE_ENV&&console.log(`[Action] refetching <${b}>`)}catch(e){I(j(e))}}))}),q=a((()=>{var e;return(null===(e=N.data)||void 0===e?void 0:e.actionId)||null}),[N.data]);return o("div",Object.assign({ref:E,className:"pxe-action"},!!q&&{"data-action-id":q},{children:o(f,{children:D||N.error||(null===(h=N.data)||void 0===h?void 0:h.error)?t(v.div,Object.assign({initial:{opacity:0},animate:{opacity:1},exit:{opacity:0},transition:{duration:.3}},{children:[o("blockquote",Object.assign({style:{lineHeight:"20px",borderLeft:"4px solid #FF0000",color:"#FF0000",paddingLeft:"1rem",marginBottom:"1rem"}},{children:D||(null===(g=N.data)||void 0===g?void 0:g.error)||"Failed to process, please try again."})),(null===(x=N.data)||void 0===x?void 0:x.traceback)&&t(i,{children:[t("p",Object.assign({style:{color:"#FF0000"}},{children:["Traceback:"," "]})),o(p,{value:`\`\`\`js\n${null===(k=N.data)||void 0===k?void 0:k.traceback}\n\`\`\``,recursion:!0})]})]})):o(v.div,w?Object.assign({initial:{opacity:0},animate:{opacity:1},exit:{opacity:0},transition:{duration:.3}},{children:o(p,{value:w,recursion:!0})}):Object.assign({initial:{opacity:0},animate:{opacity:1},exit:{opacity:0},transition:{duration:.3}},{children:o(u,{id:"dark"===O?"loader-white":"loader-black",getJson:()=>e(void 0,void 0,void 0,(function*(){return"dark"===O?l:s})),autoplay:!0,loop:!0,style:{cursor:"default",pointerEvents:"none",width:"100%",maxWidth:"150px",height:"150px"}})}))})}))};export{b as default};
1
+ import{__awaiter as e}from"../../../../../../_virtual/_tslib.js";import{jsx as o,jsxs as t,Fragment as i}from"react/jsx-runtime";import{useState as r,useRef as n,useMemo as a}from"react";import{useQuery as d}from"@tanstack/react-query";import{usePickaxeMarkdownContext as c}from"../../hooks/usePickaxeMarkdownContext.js";import{loaderBlack as s}from"../../../../../../common/lotties/loader-black.js";import{loaderWhite as l}from"../../../../../../common/lotties/loader-white.js";import{streamer as m}from"../../../../../../common/api/streamer.js";import{PickaxeLottie as u}from"../../../PickaxeLottie.js";import{PickaxeMarkdownRenderer as p}from"../../Renderer.js";import{AnimatePresence as f,motion as v}from"framer-motion";import y from"../../../../../../common/api/utils.js";import h from"../../../../../../common/error.js";const j=({jobUrl:j})=>{var b,g,x,k;const{theme:O}=c(),[w,E]=r(""),[R,F]=r(""),D=n(null),I=d({queryKey:[j],queryFn:()=>(o=>e(void 0,void 0,void 0,(function*(){try{if(!o||o.includes("undefined"))throw new Error("Invalid action job URL");const e=yield fetch(o);return yield e.json()}catch(e){const o=h(e);return"development"===process.env.NODE_ENV&&console.error("[getJobResult]",o),{success:!1,error:o}}})))(j),enabled:"undefined"!=typeof window,retry:10,onSuccess:o=>e(void 0,void 0,void 0,(function*(){try{if(F(""),!o.success)return;if("text"in o)return void E(o.text||"");if(!("fcid"in o)){const e=(yield m(Object.assign({formId:o.formId,responseId:o.responseId,data:o.encodedData},o.actionData&&{actionData:o.actionData}))).body;if(!e)return;let t=!0,i="";const r=e.getReader(),n=new TextDecoder;for(;t;){const{value:e,done:o}=yield r.read();t=!o;const a=n.decode(e);if(a.startsWith("[PXE-ERROR]"))throw new Error(a.replace("[PXE-ERROR]","").trim());i+=a,E(i)}return E(i),yield y.post("/fn/update",{id:o.jobId,data:Object.assign(Object.assign({},o),{text:i})}),void console.log("[Action] streaming done")}yield new Promise((e=>setTimeout(e,3e3))),I.refetch(),"development"===process.env.NODE_ENV&&console.log(`[Action] refetching <${j}>`)}catch(e){F(h(e))}}))}),N=a((()=>{var e;return(null===(e=I.data)||void 0===e?void 0:e.actionId)||null}),[I.data]);return o("div",Object.assign({ref:D,className:"pxe-action"},!!N&&{"data-action-id":N},{children:o(f,{children:R||I.error||(null===(b=I.data)||void 0===b?void 0:b.error)?t(v.div,Object.assign({initial:{opacity:0},animate:{opacity:1},exit:{opacity:0},transition:{duration:.3}},{children:[o("blockquote",Object.assign({style:{lineHeight:"20px",borderLeft:"4px solid #FF0000",color:"#FF0000",paddingLeft:"1rem",marginBottom:"1rem"}},{children:R||(null===(g=I.data)||void 0===g?void 0:g.error)||"Failed to process, please try again."})),(null===(x=I.data)||void 0===x?void 0:x.traceback)&&t(i,{children:[t("p",Object.assign({style:{color:"#FF0000"}},{children:["Traceback:"," "]})),o(p,{value:`\`\`\`js\n${null===(k=I.data)||void 0===k?void 0:k.traceback}\n\`\`\``,recursion:!0})]})]})):o(v.div,w?Object.assign({initial:{opacity:0},animate:{opacity:1},exit:{opacity:0},transition:{duration:.3}},{children:o(p,{value:w,recursion:!0})}):Object.assign({initial:{opacity:0},animate:{opacity:1},exit:{opacity:0},transition:{duration:.3}},{children:o(u,{id:"dark"===O?"loader-white":"loader-black",getJson:()=>e(void 0,void 0,void 0,(function*(){return"dark"===O?l:s})),autoplay:!0,loop:!0,style:{cursor:"default",pointerEvents:"none",width:"100%",maxWidth:"150px",height:"150px"}})}))})}))};export{j as default};
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@pickaxeproject/react",
3
- "version": "1.3.2",
3
+ "version": "1.3.3",
4
4
  "description": "Client utility library for Pickaxe",
5
5
  "repository": {
6
6
  "type": "git",