@pickaxeproject/react 6.6.3 → 6.7.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (63) hide show
  1. package/dist/cjs/common/api/api.js +1 -1
  2. package/dist/cjs/common/api/pickaxe.js +1 -1
  3. package/dist/cjs/common/api/studio.js +1 -0
  4. package/dist/cjs/common/deploymentWebhooks.js +1 -1
  5. package/dist/cjs/common/fernet.js +1 -1
  6. package/dist/cjs/components/Pickaxe/Addons/Artifact/hooks/useArtifactData.js +1 -1
  7. package/dist/cjs/components/Pickaxe/Addons/Auth/hooks/useAuth.js +1 -1
  8. package/dist/cjs/components/Pickaxe/Addons/Auth/hooks/useAuthVerify.js +1 -1
  9. package/dist/cjs/components/Pickaxe/Chat/Input.js +1 -1
  10. package/dist/cjs/components/Pickaxe/Chat/index.js +1 -1
  11. package/dist/cjs/components/Pickaxe/Form/History/Item.js +1 -1
  12. package/dist/cjs/components/Pickaxe/Form/History/Response.js +1 -1
  13. package/dist/cjs/components/Pickaxe/common/AccessGroupCardPreview.js +1 -1
  14. package/dist/cjs/components/Pickaxe/common/PickaxeUpgradeCard.js +1 -1
  15. package/dist/cjs/components/Pickaxe/common/SmitheryConnectView.js +1 -1
  16. package/dist/cjs/components/Pickaxe/index.js +1 -1
  17. package/dist/cjs/hooks/pickaxe/useConversation.js +1 -1
  18. package/dist/cjs/hooks/pickaxe/useFeedback.js +1 -1
  19. package/dist/cjs/hooks/pickaxe/useHistory.js +1 -1
  20. package/dist/cjs/hooks/pickaxe/usePickaxe.js +1 -1
  21. package/dist/cjs/hooks/pickaxe/useSpeech.js +1 -1
  22. package/dist/cjs/hooks/studio/useStudio.js +1 -1
  23. package/dist/cjs/index.js +1 -1
  24. package/dist/cjs/src/common/api/api.d.ts +2 -2
  25. package/dist/cjs/src/common/api/pickaxe.d.ts +2 -2
  26. package/dist/cjs/src/common/api/studio.d.ts +2 -0
  27. package/dist/cjs/src/index.d.ts +0 -1
  28. package/dist/cjs/src/types/history.d.ts +6 -5
  29. package/dist/cjs/src/types/response.d.ts +2 -2
  30. package/dist/esm/common/api/api.js +1 -1
  31. package/dist/esm/common/api/pickaxe.js +1 -1
  32. package/dist/esm/common/api/studio.js +1 -0
  33. package/dist/esm/common/deploymentWebhooks.js +1 -1
  34. package/dist/esm/common/fernet.js +1 -1
  35. package/dist/esm/components/Pickaxe/Addons/Artifact/hooks/useArtifactData.js +1 -1
  36. package/dist/esm/components/Pickaxe/Addons/Auth/hooks/useAuth.js +1 -1
  37. package/dist/esm/components/Pickaxe/Addons/Auth/hooks/useAuthVerify.js +1 -1
  38. package/dist/esm/components/Pickaxe/Chat/Input.js +1 -1
  39. package/dist/esm/components/Pickaxe/Chat/index.js +1 -1
  40. package/dist/esm/components/Pickaxe/Form/History/Item.js +1 -1
  41. package/dist/esm/components/Pickaxe/Form/History/Response.js +1 -1
  42. package/dist/esm/components/Pickaxe/common/AccessGroupCardPreview.js +1 -1
  43. package/dist/esm/components/Pickaxe/common/PickaxeUpgradeCard.js +1 -1
  44. package/dist/esm/components/Pickaxe/common/SmitheryConnectView.js +1 -1
  45. package/dist/esm/components/Pickaxe/index.js +1 -1
  46. package/dist/esm/hooks/pickaxe/useConversation.js +1 -1
  47. package/dist/esm/hooks/pickaxe/useFeedback.js +1 -1
  48. package/dist/esm/hooks/pickaxe/useHistory.js +1 -1
  49. package/dist/esm/hooks/pickaxe/usePickaxe.js +1 -1
  50. package/dist/esm/hooks/pickaxe/useSpeech.js +1 -1
  51. package/dist/esm/hooks/studio/useStudio.js +1 -1
  52. package/dist/esm/index.js +1 -1
  53. package/dist/esm/src/common/api/api.d.ts +2 -2
  54. package/dist/esm/src/common/api/pickaxe.d.ts +2 -2
  55. package/dist/esm/src/common/api/studio.d.ts +2 -0
  56. package/dist/esm/src/index.d.ts +0 -1
  57. package/dist/esm/src/types/history.d.ts +6 -5
  58. package/dist/esm/src/types/response.d.ts +2 -2
  59. package/package.json +1 -1
  60. package/dist/cjs/hooks/pickaxe/useSubmit.js +0 -1
  61. package/dist/cjs/src/hooks/pickaxe/useSubmit.d.ts +0 -19
  62. package/dist/esm/hooks/pickaxe/useSubmit.js +0 -1
  63. package/dist/esm/src/hooks/pickaxe/useSubmit.d.ts +0 -19
package/dist/cjs/index.js CHANGED
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("./components/Pickaxe/index.js"),o=require("./components/Pickaxe/Provider.js"),t=require("./components/Pickaxe/ResponseProvider.js"),r=require("./components/Pickaxe/Addons/Scroll/Provider.js"),s=require("./components/Pickaxe/common/PickaxeMarkdown/index.js"),i=require("./components/Pickaxe/common/PickaxeMarkdown/Renderer.js"),n=require("./components/Pickaxe/common/PickaxeMessageParts/index.js"),x=require("./hooks/pickaxe/useConversation.js"),c=require("./hooks/pickaxe/useHistory.js"),a=require("./hooks/pickaxe/usePickaxe.js"),u=require("./hooks/pickaxe/usePickaxeContext.js"),p=require("./hooks/pickaxe/useResponseContext.js"),k=require("./hooks/pickaxe/useDimensionContext.js"),P=require("./hooks/pickaxe/useSubmit.js"),d=require("./hooks/pickaxe/useSubmitDocument.js"),m=require("./components/EmbedPreview/Inline.js"),C=require("./components/EmbedPreview/FAB.js"),A=require("./components/EmbedPreview/Popup.js"),j=require("./components/EmbedPreview/ChatInput.js"),q=require("./components/Pickaxe/Addons/Artifact/index.js"),f=require("./components/Pickaxe/Addons/Artifact/Renderer/index.js"),v=require("./components/Pickaxe/Addons/Artifact/Provider.js"),l=require("./components/Pickaxe/Addons/Artifact/hooks/useArtifactContext.js"),h=require("./components/Pickaxe/Addons/Artifact/hooks/useArtifact.js");exports.Pickaxe=e.Pickaxe,exports.PickaxeContext=o.PickaxeContext,exports.PickaxeProvider=o.PickaxeProvider,exports.ResponseContext=t.ResponseContext,exports.ScrollContext=r.ScrollContext,exports.ScrollProvider=r.ScrollProvider,exports.PickaxeMarkdown=s.PickaxeMarkdown,exports.PickaxeMarkdownContext=s.PickaxeMarkdownContext,exports.PickaxeMarkdownRenderer=i.PickaxeMarkdownRenderer,exports.PickaxeMessageParts=n.default,exports.useConversation=x.useConversation,exports.useHistory=c.useHistory,exports.useInstantPickaxe=a.useInstantPickaxe,exports.usePickaxe=a.usePickaxe,exports.usePickaxeContext=u.usePickaxeContext,exports.useResponseContext=p.useResponseContext,exports.useDimensionContext=k.useDimensionContext,exports.useSubmit=P.useSubmit,exports.useSubmitDocument=d.useSubmitDocument,exports.Inline=m.Inline,exports.FAB=C.FAB,exports.FABButton=C.FABButton,exports.Popup=A.Popup,exports.PopupCTAButton=A.PopupCTAButton,exports.ChatInput=j.ChatInput,exports.ChatInputWrapper=j.ChatInputWrapper,exports.PickaxeArtifact=q.PickaxeArtifact,exports.PickaxeArtifactRenderer=f.default,exports.ArtifactContext=v.ArtifactContext,exports.ArtifactProvider=v.ArtifactProvider,exports.useArtifactContext=l.useArtifactContext,exports.useArtifact=h.useArtifact;
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("./components/Pickaxe/index.js"),o=require("./components/Pickaxe/Provider.js"),t=require("./components/Pickaxe/ResponseProvider.js"),r=require("./components/Pickaxe/Addons/Scroll/Provider.js"),s=require("./components/Pickaxe/common/PickaxeMarkdown/index.js"),i=require("./components/Pickaxe/common/PickaxeMarkdown/Renderer.js"),n=require("./components/Pickaxe/common/PickaxeMessageParts/index.js"),x=require("./hooks/pickaxe/useConversation.js"),c=require("./hooks/pickaxe/useHistory.js"),a=require("./hooks/pickaxe/usePickaxe.js"),p=require("./hooks/pickaxe/usePickaxeContext.js"),u=require("./hooks/pickaxe/useResponseContext.js"),k=require("./hooks/pickaxe/useDimensionContext.js"),P=require("./hooks/pickaxe/useSubmitDocument.js"),d=require("./components/EmbedPreview/Inline.js"),m=require("./components/EmbedPreview/FAB.js"),C=require("./components/EmbedPreview/Popup.js"),A=require("./components/EmbedPreview/ChatInput.js"),j=require("./components/Pickaxe/Addons/Artifact/index.js"),q=require("./components/Pickaxe/Addons/Artifact/Renderer/index.js"),f=require("./components/Pickaxe/Addons/Artifact/Provider.js"),v=require("./components/Pickaxe/Addons/Artifact/hooks/useArtifactContext.js"),l=require("./components/Pickaxe/Addons/Artifact/hooks/useArtifact.js");exports.Pickaxe=e.Pickaxe,exports.PickaxeContext=o.PickaxeContext,exports.PickaxeProvider=o.PickaxeProvider,exports.ResponseContext=t.ResponseContext,exports.ScrollContext=r.ScrollContext,exports.ScrollProvider=r.ScrollProvider,exports.PickaxeMarkdown=s.PickaxeMarkdown,exports.PickaxeMarkdownContext=s.PickaxeMarkdownContext,exports.PickaxeMarkdownRenderer=i.PickaxeMarkdownRenderer,exports.PickaxeMessageParts=n.default,exports.useConversation=x.useConversation,exports.useHistory=c.useHistory,exports.useInstantPickaxe=a.useInstantPickaxe,exports.usePickaxe=a.usePickaxe,exports.usePickaxeContext=p.usePickaxeContext,exports.useResponseContext=u.useResponseContext,exports.useDimensionContext=k.useDimensionContext,exports.useSubmitDocument=P.useSubmitDocument,exports.Inline=d.Inline,exports.FAB=m.FAB,exports.FABButton=m.FABButton,exports.Popup=C.Popup,exports.PopupCTAButton=C.PopupCTAButton,exports.ChatInput=A.ChatInput,exports.ChatInputWrapper=A.ChatInputWrapper,exports.PickaxeArtifact=j.PickaxeArtifact,exports.PickaxeArtifactRenderer=q.default,exports.ArtifactContext=f.ArtifactContext,exports.ArtifactProvider=f.ArtifactProvider,exports.useArtifactContext=v.useArtifactContext,exports.useArtifact=l.useArtifact;
@@ -1,2 +1,2 @@
1
- declare const api: import("axios").AxiosInstance;
2
- export default api;
1
+ export declare const api: import("axios").AxiosInstance;
2
+ export declare const api2: import("axios").AxiosInstance;
@@ -1,3 +1,3 @@
1
1
  export declare const isPickaxeDomain: boolean;
2
- declare const pickaxeApi: import("axios").AxiosInstance;
3
- export default pickaxeApi;
2
+ export declare const pickaxeApi: import("axios").AxiosInstance;
3
+ export declare const pickaxeApi2: import("axios").AxiosInstance;
@@ -0,0 +1,2 @@
1
+ export declare const isPickaxeDomain: boolean;
2
+ export declare const studioApi2: import("axios").AxiosInstance;
@@ -12,7 +12,6 @@ export * from "./hooks/pickaxe/usePickaxe";
12
12
  export * from "./hooks/pickaxe/usePickaxeContext";
13
13
  export * from "./hooks/pickaxe/useResponseContext";
14
14
  export * from "./hooks/pickaxe/useDimensionContext";
15
- export * from "./hooks/pickaxe/useSubmit";
16
15
  export * from "./hooks/pickaxe/useSubmitDocument";
17
16
  export * from "./components/EmbedPreview/Inline";
18
17
  export * from "./components/EmbedPreview/FAB";
@@ -15,13 +15,14 @@ export type PickaxeHistory = {
15
15
  export type PickaxeHistoryChat = {
16
16
  pickaxeType: "CHAT";
17
17
  };
18
+ export type PickaxeFormQuestion = {
19
+ inputs: PickaxeHistoryFormQuestionInputs[];
20
+ prompt: string;
21
+ responseParts: PickaxeHistoryMessagePart[];
22
+ };
18
23
  export type PickaxeHistoryForm = {
19
24
  pickaxeType: "FORM";
20
- question: {
21
- inputs: PickaxeHistoryFormQuestionInputs[];
22
- prompt: string;
23
- responseParts: PickaxeHistoryMessagePart[];
24
- };
25
+ question?: PickaxeFormQuestion;
25
26
  };
26
27
  export type PickaxeHistoryFormQuestionInputs = {
27
28
  id: string;
@@ -1,11 +1,11 @@
1
- import type { PickaxeHistoryMessage, PickaxeHistoryForm } from "./history";
1
+ import type { PickaxeHistoryMessage, PickaxeFormQuestion } from "./history";
2
2
  export type MemoryStoredChatMessage = Omit<PickaxeHistoryMessage, "createdAt" | "area"> & {
3
3
  id: number;
4
4
  };
5
5
  export type MemoryStoredFormResponse = {
6
6
  sessionId: string;
7
7
  documentIds: string[];
8
- question: Omit<PickaxeHistoryForm["question"], "prompt">;
8
+ question: Omit<PickaxeFormQuestion, "prompt">;
9
9
  messageCount: number;
10
10
  sentAt: Date;
11
11
  };
@@ -1 +1 @@
1
- import e from"axios";const o=process.env.NEXT_PUBLIC_API_URL;if(!o)throw new Error("[px/react] NEXT_PUBLIC_API_URL is not defined");const r=e.create({baseURL:o});export{r as default};
1
+ import e from"axios";const r=process.env.NEXT_PUBLIC_API_URL;if(!r)throw new Error("[px/react] NEXT_PUBLIC_API_URL is not defined");const o=process.env.NEXT_PUBLIC_API2_URL;if(!o)throw new Error("[px/react] NEXT_PUBLIC_API2_URL is not defined");e.create({baseURL:r});const t=e.create({baseURL:o});export{t as api2};
@@ -1 +1 @@
1
- import e from"axios";const o=process.env.NEXT_PUBLIC_PICKAXE_API_URL||"";if(!o)throw new Error("[px/react] NEXT_PUBLIC_PICKAXE_API_URL is not defined");const n="undefined"!=typeof window?window.location.hostname:"",s="undefined"!=typeof window?window.location.href:"",i="undefined"!=typeof window&&window.self!==window.top,t=n.includes("pickaxe.co")&&!s.includes("https://studio.pickaxe.co/_embed")&&!i,d=e.create(Object.assign(Object.assign({baseURL:o},(!process.env.NODE_ENV||"development"===process.env.NODE_ENV)&&Object.assign({},process.env.NEXT_PUBLIC_PICKAXE_SESSION_TOKEN&&{headers:{"x-pickaxe-session-token":process.env.NEXT_PUBLIC_PICKAXE_SESSION_TOKEN}})),t&&{withCredentials:!0}));export{d as default,t as isPickaxeDomain};
1
+ import e from"axios";const s=process.env.NEXT_PUBLIC_PICKAXE_API_URL||"";if(!s)throw new Error("[px/react] NEXT_PUBLIC_PICKAXE_API_URL is not defined");const n=process.env.NEXT_PUBLIC_PICKAXE_API2_URL||"";if(!n)throw new Error("[px/react] NEXT_PUBLIC_PICKAXE_API2_URL is not defined");const o="undefined"!=typeof window?window.location.hostname:"",i="undefined"!=typeof window?window.location.href:"",t="undefined"!=typeof window&&window.self!==window.top,_=o.includes("pickaxe.co")&&!i.includes("https://studio.pickaxe.co/_embed")&&!t;e.create(Object.assign(Object.assign({baseURL:s},(!process.env.NODE_ENV||"development"===process.env.NODE_ENV)&&Object.assign({},process.env.NEXT_PUBLIC_PICKAXE_SESSION_TOKEN&&{headers:{"x-pickaxe-session-token":process.env.NEXT_PUBLIC_PICKAXE_SESSION_TOKEN}})),_&&{withCredentials:!0}));const c=e.create(Object.assign(Object.assign({baseURL:n},(!process.env.NODE_ENV||"development"===process.env.NODE_ENV)&&Object.assign({},process.env.NEXT_PUBLIC_PICKAXE_SESSION_TOKEN&&{headers:{"x-pickaxe-session-token":process.env.NEXT_PUBLIC_PICKAXE_SESSION_TOKEN}})),_&&{withCredentials:!0}));export{_ as isPickaxeDomain,c as pickaxeApi2};
@@ -0,0 +1 @@
1
+ import e from"axios";const o=process.env.NEXT_PUBLIC_STUDIO_API2_URL||"";if(!o)throw new Error("[px/react] NEXT_PUBLIC_STUDIO_API2_URL is not defined");const n="undefined"!=typeof window?window.location.hostname:"",s="undefined"!=typeof window?window.location.href:"",i="undefined"!=typeof window&&window.self!==window.top,t=n.includes("pickaxe.co")&&!s.includes("https://studio.pickaxe.co/_embed")&&!i,d=e.create(Object.assign(Object.assign({baseURL:o},(!process.env.NODE_ENV||"development"===process.env.NODE_ENV)&&Object.assign({},process.env.NEXT_PUBLIC_PICKAXE_SESSION_TOKEN&&{headers:{"x-pickaxe-session-token":process.env.NEXT_PUBLIC_PICKAXE_SESSION_TOKEN}})),t&&{withCredentials:!0}));export{t as isPickaxeDomain,d as studioApi2};
@@ -1 +1 @@
1
- import{__awaiter as e,__rest as s}from"../_virtual/_tslib.js";const t="deployment_session_initialized",i="deployment_first_message_submitted",n=new Set,o=new Set,d=e=>{if(!e)return null;return e.trim()||null},a=(t,i)=>e(void 0,void 0,void 0,(function*(){var{studioId:e,userEmail:n}=i,o=s(i,["studioId","userEmail"]);const a=d(e),r=d(process.env.NEXT_PUBLIC_API_URL);if(!a||!r)return;const c=Object.assign({event:t,source:"v2-pickaxe-react",firedAt:(new Date).toISOString(),studioId:a,userEmail:d(n)},o);try{yield fetch(`${r}/fireWebhooks`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({event:t,studioId:a,userEmail:d(n),giftedProducts:[],payload:c})})}catch(e){console.warn(`[px/react] failed to fire deployment webhook event "${t}"`,e)}})),r=e=>{const s=d(e.sessionId);s&&!n.has(s)&&(n.add(s),a(t,Object.assign(Object.assign({},e),{sessionId:s})))},c=e=>{const s=d(e.sessionId);s&&n.has(s)&&(o.has(s)||(o.add(s),a(i,Object.assign(Object.assign({},e),{sessionId:s}))))};export{i as DEPLOYMENT_FIRST_MESSAGE_SUBMITTED_EVENT,t as DEPLOYMENT_SESSION_INITIALIZED_EVENT,c as fireDeploymentFirstMessageSubmittedWebhook,r as fireDeploymentSessionInitializedWebhook};
1
+ import{__awaiter as e,__rest as s}from"../_virtual/_tslib.js";const t="deployment_session_initialized",i="deployment_first_message_submitted",n=new Set,o=new Set,d=e=>{if(!e)return null;return e.trim()||null},a=(t,i)=>e(void 0,void 0,void 0,(function*(){var{studioId:e,userEmail:n}=i,o=s(i,["studioId","userEmail"]);const a=d(e),r=d(process.env.NEXT_PUBLIC_API2_URL);if(!a||!r)return;const c=Object.assign({event:t,source:"v2-pickaxe-react",firedAt:(new Date).toISOString(),studioId:a,userEmail:d(n)},o);try{yield fetch(`${r}/webhook/fire`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({event:t,studioId:a,userEmail:d(n),giftedProducts:[],payload:c})})}catch(e){console.warn(`[px/react] failed to fire deployment webhook event "${t}"`,e)}})),r=e=>{const s=d(e.sessionId);s&&!n.has(s)&&(n.add(s),a(t,Object.assign(Object.assign({},e),{sessionId:s})))},c=e=>{const s=d(e.sessionId);s&&n.has(s)&&(o.has(s)||(o.add(s),a(i,Object.assign(Object.assign({},e),{sessionId:s}))))};export{i as DEPLOYMENT_FIRST_MESSAGE_SUBMITTED_EVENT,t as DEPLOYMENT_SESSION_INITIALIZED_EVENT,c as fireDeploymentFirstMessageSubmittedWebhook,r as fireDeploymentSessionInitializedWebhook};
@@ -1 +1 @@
1
- import{__awaiter as t}from"../_virtual/_tslib.js";import r from"./api/pickaxe.js";const o=o=>t(void 0,void 0,void 0,(function*(){const t=(yield r.post("/encrypt_fernet",{data:o})).data;if(!t.success)throw new Error("Failed to encrypt via fernet");return t.result}));export{o as encryptFernet};
1
+ import{__awaiter as t}from"../_virtual/_tslib.js";import{api2 as r}from"./api/api.js";const o=o=>t(void 0,void 0,void 0,(function*(){const t=(yield r.post("/fernet/encrypt",{data:o})).data;if(!t.success)throw new Error("Failed to encrypt via fernet");return t.result}));export{o as encryptFernet};
@@ -1 +1 @@
1
- import{__awaiter as t}from"../../../../../_virtual/_tslib.js";import{useMutation as r}from"@tanstack/react-query";import e from"../../../../../common/api/pickaxe.js";const i=()=>r({mutationFn:r=>(({artifactId:r,studioId:i,sender:o,senderType:a,studioSessionToken:n,version:s})=>t(void 0,void 0,void 0,(function*(){if(!r||!s)return Promise.reject(new Error("[_getArtifactData] artifactId and version are required"));let t=`/artifact?artifactId=${r}&senderType=${a}`;i&&(t+=`&studioId=${i}`),o&&(t+=`&sender=${o}`),n&&(t+=`&studioSessionToken=${n}`),s&&(t+=`&version=${s}`);const d=yield e.get(t),c=d.data;if(200!==d.status)throw new Error("[_getArtifactData] Failed to fetch artifact "+c);return c.data})))(r)});export{i as useArtifactData};
1
+ import{__awaiter as t}from"../../../../../_virtual/_tslib.js";import{useMutation as r}from"@tanstack/react-query";import{pickaxeApi2 as e}from"../../../../../common/api/pickaxe.js";const i=()=>r({mutationFn:r=>(({artifactId:r,studioId:i,sender:o,senderType:a,studioSessionToken:n,version:s})=>t(void 0,void 0,void 0,(function*(){if(!r||!s)return Promise.reject(new Error("[_getArtifactData] artifactId and version are required"));let t=`/artifact?artifactId=${r}&senderType=${a}`;i&&(t+=`&studioId=${i}`),o&&(t+=`&sender=${o}`),n&&(t+=`&studioSessionToken=${n}`),s&&(t+=`&version=${s}`);const d=yield e.get(t),c=d.data;if(200!==d.status)throw new Error("[_getArtifactData] Failed to fetch artifact "+c);return c.data})))(r)});export{i as useArtifactData};
@@ -1 +1 @@
1
- import{__awaiter as e}from"../../../../../_virtual/_tslib.js";import{usePickaxeContext as i}from"../../../../../hooks/pickaxe/usePickaxeContext.js";import{useAuthContext as t}from"./useAuthContext.js";import{setAuthToken as o}from"../../../../../common/utils.js";import r from"../../../../../common/api/pickaxe.js";import s from"../../../../../common/error.js";const n=()=>{const{deploymentId:n,pickaxe:d,translations:a}=i(),{emailInput:l,redirectUrl:m,isSending:c,setIsSending:u,setIsSent:p,setIsResendDisabled:f,setIsPricingAuth:k}=t();return{onSend:i=>e(void 0,void 0,void 0,(function*(){try{if(!d)return;if(c)return;const e=l.trim().toLowerCase();if(!e)throw new Error((null==a?void 0:a["email-address-cannot-be-empty"])||"Email address cannot be empty.");if(!e.includes("@")||!e.includes("."))throw new Error((null==a?void 0:a["please-enter-valid-email-address"])||"Please enter a valid email address.");if(!d.studioid)throw new Error(`Studio ID is missing for ${d.formid}. Please contact support.`);u(!0),i&&f(!0);const t=(yield r.post("/auth/email",Object.assign(Object.assign({pickaxeId:d.formid,studioId:d.studioid,email:e},n&&{deploymentId:n}),{redirectUrl:m}))).data;if(!t.success)throw new Error(t.error||(null==a?void 0:a["failed-to-send-sign-in-link"])||"Failed to send sign-in link.");u(!1),p(!0),i&&(yield new Promise((e=>setTimeout(e,3e4))),f(!1)),o(`PXE-token-${d.studioid}`,t.token),k(!0)}catch(e){const i=s(e);alert(i)}finally{u(!1)}}))}};export{n as useAuth};
1
+ import{__awaiter as e}from"../../../../../_virtual/_tslib.js";import{usePickaxeContext as i}from"../../../../../hooks/pickaxe/usePickaxeContext.js";import{useAuthContext as t}from"./useAuthContext.js";import{setAuthToken as o}from"../../../../../common/utils.js";import{pickaxeApi2 as r}from"../../../../../common/api/pickaxe.js";import s from"../../../../../common/error.js";const n=()=>{const{deploymentId:n,pickaxe:d,translations:a}=i(),{emailInput:l,redirectUrl:m,isSending:c,setIsSending:u,setIsSent:p,setIsResendDisabled:f,setIsPricingAuth:k}=t();return{onSend:i=>e(void 0,void 0,void 0,(function*(){try{if(!d)return;if(c)return;const e=l.trim().toLowerCase();if(!e)throw new Error((null==a?void 0:a["email-address-cannot-be-empty"])||"Email address cannot be empty.");if(!e.includes("@")||!e.includes("."))throw new Error((null==a?void 0:a["please-enter-valid-email-address"])||"Please enter a valid email address.");if(!d.studioid)throw new Error(`Studio ID is missing for ${d.formid}. Please contact support.`);u(!0),i&&f(!0);const t=(yield r.post("/auth/email",Object.assign(Object.assign({pickaxeId:d.formid,studioId:d.studioid,email:e},n&&{deploymentId:n}),{redirectUrl:m}))).data;if(!t.success)throw new Error(t.error||(null==a?void 0:a["failed-to-send-sign-in-link"])||"Failed to send sign-in link.");u(!1),p(!0),i&&(yield new Promise((e=>setTimeout(e,3e4))),f(!1)),o(`PXE-token-${d.studioid}`,t.token),k(!0)}catch(e){const i=s(e);alert(i)}finally{u(!1)}}))}};export{n as useAuth};
@@ -1 +1 @@
1
- import{__awaiter as t}from"../../../../../_virtual/_tslib.js";import{useEffect as e}from"react";import{useQuery as o}from"@tanstack/react-query";import r from"../../../../../common/api/pickaxe.js";const i=({token:i,enabled:n,setIsLoggingIn:a})=>{const s=o({queryKey:["authData",i],queryFn:()=>t(void 0,void 0,void 0,(function*(){return(({token:e})=>t(void 0,void 0,void 0,(function*(){const t=yield r.get(`/auth?token=${encodeURIComponent(e)}`),o=t.data;if(200!==t.status)throw new Error("[_verifyAuth] Failed to verify auth data "+o);return o})))({token:i})})),enabled:!!i&&n,staleTime:18e4,refetchInterval:2e3});return e((()=>{s.isLoading&&i?a(!0):(s.isSuccess||s.isError)&&a(!1)}),[s.data,i]),s};export{i as useAuthVerify};
1
+ import{__awaiter as t}from"../../../../../_virtual/_tslib.js";import{useEffect as e}from"react";import{useQuery as o}from"@tanstack/react-query";import{pickaxeApi2 as r}from"../../../../../common/api/pickaxe.js";const i=({token:i,enabled:n,setIsLoggingIn:a})=>{const s=o({queryKey:["authData",i],queryFn:()=>t(void 0,void 0,void 0,(function*(){return(({token:e})=>t(void 0,void 0,void 0,(function*(){const t=yield r.get(`/auth?token=${encodeURIComponent(e)}`),o=t.data;if(200!==t.status)throw new Error("[_verifyAuth] Failed to verify auth data "+o);return o})))({token:i})})),enabled:!!i&&n,staleTime:18e4,refetchInterval:2e3});return e((()=>{s.isLoading&&i?a(!0):(s.isSuccess||s.isError)&&a(!1)}),[s.data,i]),s};export{i as useAuthVerify};
@@ -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{forwardRef as i,useState as r,useRef as a,useCallback as l,useEffect as c,useMemo as d,useImperativeHandle as u}from"react";import{usePickaxeContext as m}from"../../../hooks/pickaxe/usePickaxeContext.js";import{useResponseContext as p}from"../../../hooks/pickaxe/useResponseContext.js";import{useStyleInput as f}from"../../../hooks/studio/useStyleInput.js";import{useStyleFontSize as g}from"../../../hooks/studio/useStyleFontSize.js";import{useConversation as h}from"../../../hooks/pickaxe/useConversation.js";import{useDimensionContext as v}from"../../../hooks/pickaxe/useDimensionContext.js";import{useAuthContext as b}from"../Addons/Auth/hooks/useAuthContext.js";import{useDocument as y}from"../Addons/Document/hooks/useDocument.js";import{useScroll as x}from"../Addons/Scroll/hooks/useScroll.js";import{useArtifactContext as j}from"../Addons/Artifact/hooks/useArtifactContext.js";import{useHover as I}from"../../../hooks/core/useHover.js";import{useMediaQuery as w}from"../../../hooks/core/useMediaQuery.js";import{allowedFileMimeTypes as O,allowedImageMimeTypes as k,additionalAllowedFileExtensions as N}from"../../../common/documents.js";import{createParser as S}from"eventsource-parser";import C from"../../Icons/attach-vertical.svg.js";import _ from"../../Icons/arrow-right.svg.js";import E from"../../Icons/microphone.svg.js";import U from"../../Icons/stop.svg.js";import T from"../Addons/Document/List.js";import A from"../../Core/Textarea.js";import P from"../../Core/ErrorAlert.js";import D from"../../../common/error.js";import L from"../../../common/api/pickaxe.js";import{getValidationFailure as R}from"../../../common/validation.js";import M from"../../../common/cn.js";import{buildUpgradeUrl as $,isInIframe as B,initializeEmbedUserId as X}from"../../../common/utils.js";import{getPickaxeConfigMetadata as K}from"../../../common/pickaxeConfig.js";import{fireDeploymentSessionInitializedWebhook as V,fireDeploymentFirstMessageSubmittedWebhook as F}from"../../../common/deploymentWebhooks.js";import{useStudio as H}from"../../../hooks/studio/useStudio.js";import{useSpeech as W}from"../../../hooks/pickaxe/useSpeech.js";import{STUDIO_INFINITY_VALUE as G}from"../common/PickaxeCommon.js";const J=e=>"string"==typeof e&&e.trim().length>0,z=e=>e.map((e=>Object.assign({},e))),q=e=>e instanceof Error&&("AbortError"===e.name||"BodyStreamBuffer was aborted"===e.message),Q=(e,t)=>{if(e&&"object"==typeof e)return e[t]},Y=(e,t)=>{const n=Q(e,t);return J(n)?n:null},Z=e=>{const t=Number(e);return Number.isFinite(t)?t:void 0},ee=({studioUser:e,deploymentId:t,portalId:n})=>{var s,o;const i=Array.isArray(Q(e,"uses"))?Q(e,"uses"):[],r=(({deploymentId:e,portalId:t})=>J(e)?{type:"deployment",id:e}:J(t)?{type:"portal",id:t}:null)({deploymentId:t,portalId:n});if(!r)return{scope:r,record:null};const a=null!==(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}},te=i((({resubmitPrompt:i,onFocus:Q,onBlur:te,onInputHeightChange:ne,initSmitheryAuthData:se},oe)=>{var ie,re,ae,le,ce,de,ue,me,pe,fe,ge,he;const{origin:ve,pickaxeId:be,sessionId:ye,sender:xe,senderType:je,portalId:Ie,deploymentId:we,deploymentType:Oe,pickaxe:ke,styles:Ne,colors:Se,translations:Ce,locale:_e,forceMobile:Ee,isNewChat:Ue,isRtl:Te,isShowFeedbackMessage:Ae,accessGroup:Pe,setIsNewChat:De,setIsShowIceBreaker:Le,setValidationStatus:Re,setValidationUpgradeGroups:Me,setValidationUpgradeUrl:$e,setAccessGroup:Be,onGenerateComplete:Xe}=m(),{token:Ke,isLoggedOut:Ve,isSent:Fe,isPricingAuth:He}=b(),{messages:We,isGenerating:Ge,setMessages:Je,setStatus:ze,setLimitData:qe,setError:Qe}=p(),{documents:Ye,isUploading:Ze,documentError:et,onFileUpload:tt,setDocuments:nt,setDocumentError:st}=y(),{studio:ot}=H(),{scrollStartSession:it,scrollEndSession:rt,scrollToBottom:at}=x({auto:!0}),{artifacts:lt,currentPopupType:ct,setArtifacts:dt,setCurrentArtifact:ut}=j(),{height:mt}=v(),pt=h(),[ft,gt]=r(""),[ht,vt]=r(!1),[bt,yt]=r(!1),[xt,jt]=r(null),[It,wt]=r(null),[Ot,kt]=r(!1),[Nt,St]=r(!1),[Ct,_t]=r(0),Et=a(null),Ut=a(""),Tt=a(null),At=a(null),Pt=a(null),Dt=a([]),Lt=a(null),Rt=a(null),Mt=a(null),$t=a(null),Bt=a(new Set),Xt=a(null),Kt=Math.max(.4*mt,100),{speechTranscript:Vt,isSpeechListening:Ft,isSpeechProcessing:Ht,isSpeechSupported:Wt,onStartListening:Gt,onStopListening:Jt}=W(),[zt]=w("(max-width: 480px)"),qt=I(),{isHover:Qt}=qt,Yt=e(qt,["isHover"]),Zt=I(),{isHover:en}=Zt,tn=e(Zt,["isHover"]),nn=I(),{isHover:sn}=nn,on=e(nn,["isHover"]),rn=g(),an=f(),ln="undefined"!=typeof window?window.location.hostname:"",cn="undefined"!=typeof window?window.location.href:"",dn="undefined"!=typeof window&&window.self!==window.top,un=ln.includes("pickaxe.co")&&!cn.includes("https://studio.pickaxe.co/_embed")&&!dn,mn=null!==(re=null===(ie=null==ke?void 0:ke.documentuploadtype)||void 0===ie?void 0:ie.startsWith("enduserupload"))&&void 0!==re&&re,pn=Wt&&(null==ke?void 0:ke.enablevoicetotext),fn=J(we),gn="chat-input"===Oe&&Ue&&!Fe,hn="chat-input"===Oe&&He&&Ve&&Fe,vn=l((e=>{const t=R(e);return!!t&&(Qe(""),qe(null),Re(t.status),Be(t.accessGroup),Me(t.upgradeGroups),$e(t.upgradeUrl),!0)}),[Qe,qe,Re,Me,$e,Be]),bn=null!==(ae=null==ke?void 0:ke.placeholdertext)&&void 0!==ae?ae:Te?"بماذا تريد أن تتحدث؟":(null==Ce?void 0:Ce["what-do-you-want-to-talk-about"])||"What do you want to talk about?",yn=ht||bt,xn=l((()=>t(void 0,void 0,void 0,(function*(){kt(!1);try{const e=yield fetch(`${process.env.NEXT_PUBLIC_PICKAXE_API_URL}/get_user`,Object.assign(Object.assign({method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(Object.assign({studioId:null==ke?void 0:ke.studioid},Ke?{studioSessionToken:Ke}:xe?{sender:xe}:{sender:X()}))},(!process.env.NODE_ENV||"development"===process.env.NODE_ENV)&&Object.assign({},process.env.NEXT_PUBLIC_PICKAXE_SESSION_TOKEN&&{headers:{"Content-Type":"application/json","x-pickaxe-session-token":process.env.NEXT_PUBLIC_PICKAXE_SESSION_TOKEN}})),un&&{credentials:"include"})),t=yield e.json();(null==t?void 0:t.studioUser)&&(jt(t.studioUser),wt(t.url))}catch(e){console.error("Failed to fetch studio user:",e)}finally{kt(!0)}}))),[un,null==ke?void 0:ke.studioid,xe,Ke]);c((()=>{xn()}),[xn]);const jn=Number(null!==(le=null==Pe?void 0:Pe.limit)&&void 0!==le?le:0),In="string"==typeof(null==Pe?void 0:Pe.limitInterval)?Pe.limitInterval:null,wn=!!(null==ot?void 0:ot.data.usage)&&ot.data.usage.isCredits,On=d((()=>ee({studioUser:xt,deploymentId:we,portalId:Ie})),[we,Ie,xt]);c((()=>{fn&&Ue&&ye&&Bt.current.add(ye)}),[Ue,ye,fn]);const kn=l((()=>{var e,t,n;return{studioId:null==ke?void 0:ke.studioid,userEmail:Y(xt,"email"),userId:null!==(e=Y(xt,"userId"))&&void 0!==e?e:Y(xt,"userid"),sessionId:ye,deploymentId:we,deploymentType:Oe,portalId:Ie,accessGroupId:null!==(t=null==Pe?void 0:Pe.accessGroupId)&&void 0!==t?t:null,pickaxeId:be,sender:xe,senderType:je,origin:ve,metadata:null!==(n=K(we))&&void 0!==n?n:null}}),[null==Pe?void 0:Pe.accessGroupId,we,Oe,ve,null==ke?void 0:ke.studioid,be,Ie,xe,je,ye,xt]),Nn=l((()=>!!(fn&&Ot&&ye)&&(!!Bt.current.has(ye)&&(V(kn()),Bt.current.delete(ye),!0))),[kn,Ot,ye,fn]);c((()=>{if(!Ot||!ye)return;Nn();const e=Xt.current;(null==e?void 0:e.sessionId)===ye&&(F(Object.assign(Object.assign(Object.assign({},e),kn()),{message:e.message,documentIds:e.documentIds,uploadedModelImages:e.uploadedModelImages,hasUploadedDocuments:e.hasUploadedDocuments,isHidden:e.isHidden})),Xt.current=null)}),[Nn,kn,Ot,ye]);const Sn={currentUses:Z(null==xt?void 0:xt.currentUses),extraUses:Z(null==xt?void 0:xt.extraUses)},Cn=On.scope?{currentUses:null!==(de=Z(null===(ce=On.record)||void 0===ce?void 0:ce.currentUses))&&void 0!==de?de:0,extraUses:null!==(me=Z(null===(ue=On.record)||void 0===ue?void 0:ue.extraUses))&&void 0!==me?me:0}:{currentUses:0,extraUses:0},_n=Y(xt,"type"),En="guest"===_n||!_n&&Ve?Cn:Sn;c((()=>{let e=!0;return t(void 0,void 0,void 0,(function*(){var t;if(wn&&(null===(t=null==ot?void 0:ot.data)||void 0===t?void 0:t.workspaceId))try{const t=yield L.get(`/cost_per_run?workspaceId=${ot.data.workspaceId}`,{withCredentials:!1});e&&_t(1e4*(Number(t.data.costPerRun)||0))}catch(t){console.error("Failed to fetch average cost per run:",t),e&&_t(0)}else e&&_t(0)})),()=>{e=!1}}),[wn,null===(pe=null==ot?void 0:ot.data)||void 0===pe?void 0:pe.workspaceId]);const Un=(({currentUses:e,extraUses:t,limit:n,limitInterval:s})=>{const o=Number(null!=e?e:0),i=Number(null!=t?t:0);return n===G||i===G?G:"one_time"===s?Math.max(0,i-o):(console.log("Calculating remaining balance with limit:",n,"currentUses:",o,"extraUses:",i),Math.max(0,n-o)+i)})({currentUses:En.currentUses,extraUses:En.extraUses,limit:jn,limitInterval:In}),Tn=Un===G?G:Math.max(0,Math.ceil(Un)),An=(({extraUses:e,limit:t,limitInterval:n})=>{const s=Number(null!=e?e:0);return t===G||s===G?G:"one_time"===n?Math.max(0,s):Math.max(0,t)+Math.max(0,s)})({extraUses:En.extraUses,limit:jn,limitInterval:In}),Pn=An===G?G:Math.ceil(.05*An),Dn=wn?Math.ceil(5*Ct):5,Ln=Pn===G?G:Math.max(Pn,Dn),Rn=d((()=>!!xt&&(!Nt&&(Tn!==G&&Tn<=Ln))),[Nt,Ln,Tn,xt]),Mn=(null===(fe=null==Pe?void 0:Pe.upgrade)||void 0===fe?void 0:fe.isLinkToCustomURL)&&"string"==typeof Pe.upgrade.limitLink&&Pe.upgrade.limitLink.trim().length>0?Pe.upgrade.limitLink.trim():null,$n=Mn&&"string"==typeof(null===(ge=null==Pe?void 0:Pe.upgrade)||void 0===ge?void 0:ge.limitCTA)&&Pe.upgrade.limitCTA.trim().length>0?Pe.upgrade.limitCTA:(null==Ce?void 0:Ce["pricing.upgrade"])||(null==Ce?void 0:Ce.upgrade)||"Upgrade",Bn=d((()=>{var e,t,n;return!!Ue&&(!!ke&&(!pt.isLoading&&(!((null!==(t=null===(e=pt.data)||void 0===e?void 0:e.messages.length)&&void 0!==t?t:0)>1)&&(!!(null===(n=ke.icebreakers)||void 0===n?void 0:n.length)&&(!Ae&&!gn)))))}),[ke,Ue,Ae,gn,pt.data,pt.isLoading]),Xn=d((()=>{if(Ge||Ze)return!1;const e=mn&&Ye.length>0&&Ye.every((e=>"finished"===e.status));return!(!ft.trim()&&!e)&&Ye.every((e=>"finished"===e.status||e.isInsertedAsRaw))}),[mn,Ge,Ze,ft,Ye]);u(oe,(()=>({onSubmit:Kn}))),c((()=>{Le(Bn)}),[Bn]),c((()=>{var e;if(i){const t=Array.from(We),n=null===(e=t[t.length-2].parts.find((e=>"text"===e.type)))||void 0===e?void 0:e.content;Kn(n,!0)}}),[i]),c((()=>{if(!Mt.current||!ne)return;const e=new ResizeObserver((e=>{for(const t of e)ne(t.contentRect.height)}));return e.observe(Mt.current),()=>{e.disconnect()}}),[ne]),c((()=>{if(!Ft)return;const e=Ut.current?`${Ut.current} `:"";gt(`${e}${Vt}`)}),[Vt,Ft]),c((()=>{if(!Lt.current)return;(()=>{if(!Lt.current)return;let e=Lt.current.scrollHeight>52;ft.includes("\n")||Ye.length?e=!0:ft.trim()||(e=!1),vt(e)})()}),[ft,Ye]),c((()=>{const e=Lt.current,t=Rt.current;if(!e||!t||ht||ft.includes("\n"))return void yt(!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=ft||bn,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;yt(i>l)}),[ft,ht,bn]);const Kn=(e,n=!1)=>t(void 0,void 0,void 0,(function*(){var t,s,o,i;let r=null;try{if(Ge||Ze)return;const a=Ye.filter((e=>"finished"===e.status&&!e.isInsertedAsRaw)),l=a.map((e=>e.documentId)).filter(Boolean),c=a.filter((e=>"image"===e.type)).map((e=>{const t=e.name.split(".").pop()||"";return{documentId:e.documentId,extension:t}})),d=null!=e?e:ft,u=null!==(s=null===(t=null==ke?void 0:ke.documentuploadtype)||void 0===t?void 0:t.startsWith("enduserupload"))&&void 0!==s&&s&&l.length>0;if(!d&&!u)return;Qe(""),st(""),qe(null),gt(""),De(!1),ze("fetching"),it(),at();const m=[...n?Array.from(We.slice(0,We.length-1)):Array.from(We),...n?[]:[{id:We.length+1,role:"user",parts:[{type:"text",content:d,isVisible:!0}],documentIds:u?l:[]}],{id:We.length+(n?0:2),role:"assistant",parts:[],documentIds:[]}];Je(m),at(),u&&nt([]);const p=K(we),f="undefined"!=typeof crypto&&"randomUUID"in crypto?crypto.randomUUID():`submission-${Date.now()}-${Math.random().toString(36).slice(2)}`;r=f,At.current=f,Pt.current=null,Dt.current=[];const g=yield fetch(`${process.env.NEXT_PUBLIC_PICKAXE_API_URL}/submit`,Object.assign({method:"POST",body:JSON.stringify(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({origin:ve,pickaxeId:be,sessionId:ye,submissionId:f,senderType:je,value:d},u&&{documentIds:l}),xe&&{sender:xe}),Ke&&{studioSessionToken:Ke}),!Ke&&!xe&&{sender:X()}),Ie&&{portalId:Ie}),we&&{deploymentId:we}),p&&{metadata:p}),u&&c.length>0?{uploadedModelImages:c}:{})),headers:Object.assign(Object.assign({},(!process.env.NODE_ENV||"development"===process.env.NODE_ENV)&&Object.assign({},process.env.NEXT_PUBLIC_PICKAXE_SESSION_TOKEN&&{"x-pickaxe-session-token":process.env.NEXT_PUBLIC_PICKAXE_SESSION_TOKEN})),{"x-request-sent-at":(new Date).toISOString()})},un&&{credentials:"include"})),h=yield g.json();if(!h.success){if(h.limitData){const e=new Error(h.error||h.message||(null==Ce?void 0:Ce["failed-to-start-generation"])||"Failed to start generation");throw e.limitData=h.limitData,e}if(vn(h))return;throw new Error(h.error||h.message||(null==Ce?void 0:Ce["failed-to-start-generation"])||"Failed to start generation")}const v=null!==(o=h.submissionId)&&void 0!==o?o:f;r=v,At.current=v;const b=()=>Pt.current===v;if(b())return;fn&&Ue&&ye&&Bt.current.add(ye);const y=Object.assign(Object.assign({},kn()),{message:d,documentIds:u?l:[],uploadedModelImages:u?c:[],hasUploadedDocuments:u,isHidden:n,metadata:null!=p?p:null});Ot?(Nn(),F(y)):Xt.current=y,ze("streaming"),$t.current=new AbortController;const x=m.length-1,j=[];let I=[...null!=lt?lt:[]],w=0,O=!1,k="";for(;!O;)try{const e=yield fetch(`${process.env.NEXT_PUBLIC_PICKAXE_API_URL}/stream/${v}?index=${w}`,{signal:null===(i=$t.current)||void 0===i?void 0:i.signal,headers:{"Cache-Control":"no-cache",Connection:"keep-alive"}});if(!e.body)throw new Error("No response body");const t=e.body.getReader();Tt.current=t;const n=new TextDecoder,s=S({onEvent:e=>{var t,n;if(b())O=!0;else if(e.event&&"ping"!==e.event&&w++,"stop"!==e.event){if("error"===e.event){const t=JSON.parse(e.data);if(t.limitData)return qe(t.limitData),Qe(""),void(O=!0);const n=t.error||t.message||(null==Ce?void 0:Ce["something-went-wrong"])||"Something went wrong.";return vn(t)||Qe(n),void(O=!0)}if("delta"===e.event){const s=JSON.parse(e.data);if("data-error"===s.type&&se){const e=s.data.error;if("string"==typeof e){if(/['"]type['"]\s*:\s*['"]unauthorized_smithery['"]/.test(e)){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 O=!0,se({smitheryId: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 O=!0,se({smitheryId:t.qualifiedName,serverId:t.serverId,name:t.name}),new Error("STOP_STREAM")}}else if("text-start"===s.type)k="",j.push({type:"text",content:"",isVisible:null===(t=s.isVisible)||void 0===t||t});else if("text-delta"===s.type)k+=s.delta,j[j.length-1].content=k;else if("text-end"===s.type)k="";else if("reasoning-start"===s.type)k="",j.push({type:"reasoning",content:"",isVisible:null===(n=s.isVisible)||void 0===n||n});else if("reasoning-delta"===s.type)k+=s.delta,j[j.length-1].content=k;else if("reasoning-end"===s.type)k="";else if(s.type.startsWith("data-")){const e=s;j.push({type:e.type,content:JSON.stringify(e.data),isVisible:!0})}Dt.current=z(j),Je([...m.slice(0,x),Object.assign(Object.assign({},m[m.length-1]),{id:We.length+1,role:"assistant",parts:j})])}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"})),dt([...I]),ct.startsWith("inline")||ut({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"})),dt(I),ct.startsWith("inline")||ut({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"})),dt(I),ct.startsWith("inline")||ut({id:t.id,version:t.version})}else if("artifact_content"===e.event){const t=JSON.parse(e.data),n=t.token.replace(/\u200B/g,"");I=I.map((e=>e.id===t.id&&e.version===t.version?Object.assign(Object.assign({},e),{content:e.content+n,status:"streaming"}):e)),dt(I)}else if("artifact_finished"===e.event){const t=JSON.parse(e.data);dt(I.map((e=>e.id===t.id?Object.assign(Object.assign({},e),{status:"finished"}):e)))}else if("error"===e.event){const t=JSON.parse(e.data);if(t.limitData)return qe(t.limitData),Qe(""),void(O=!0);const n=t.error||t.message||(null==Ce?void 0:Ce["something-went-wrong-try-again"])||"Something went wrong, please try again.";if(vn(t))return void(O=!0);Qe(n)}else"stop"===e.event&&(O=!0)}else O=!0}});for(;;){if(b()){O=!0,t.cancel().catch((()=>{}));break}const{value:e,done:o}=yield t.read();if(b()){O=!0,t.cancel().catch((()=>{}));break}if(o)break;s.feed(n.decode(e))}O||b()||(yield new Promise((e=>setTimeout(e,1e3))))}catch(e){if("STOP_STREAM"===e.message||q(e)||b())return void(O=!0);console.warn("Stream connection lost, retrying...",e),yield new Promise((e=>setTimeout(e,1e3)))}null==Xe||Xe(ye)}catch(e){if(q(e))return;if(e.limitData)qe(e.limitData),Qe("");else{let t=D(e)||"";t&&!t.includes("Unexpected token 'A',")||(t=(null==Ce?void 0:Ce["high-traffic-try-again-later"])||"Oops! We're experiencing high traffic at the moment. Please try again later."),vn(t)||Qe(t)}}finally{const e=!r||At.current===r;at(),e&&(ze("idle"),rt(),Tt.current=null),r&&e&&(At.current=null,Dt.current=[]),yield xn()}}));return hn?null:n("div",Object.assign({className:M("flex w-full flex-shrink-0 flex-col items-center",!gn&&"px-4 pb-8"),dir:Te?"rtl":"ltr"},{children:s("div",Object.assign({className:"flex w-full max-w-[800px] flex-col"},{children:[s("div",Object.assign({ref:Mt,className:M("relative flex flex-col w-full justify-end gap-y-3 py-[3px]","block"===Ne.formFieldStyle&&"shadow"),style:Object.assign(Object.assign({},an),{maxHeight:`${Kt}px`,overflowY:"auto"})},{children:[Rn&&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:an.backgroundColor?`${an.backgroundColor}E6`:void 0,borderColor:Se.text+"20",color:Se.text,borderTopRightRadius:Ne.cornerRadius+"px",borderTopLeftRadius:Ne.cornerRadius+"px"}},{children:[n("div",Object.assign({className:"flex items-center gap-2 text-sm font-medium"},{children:s("span",{children:[Tn.toLocaleString()," ",wn?(null==Ce?void 0:Ce.credits)||"Credits":(null==Ce?void 0:Ce.uses)||"Uses"," ",(null==Ce?void 0:Ce.remaining)||"remaining"]})})),s("div",Object.assign({className:"flex items-center gap-3"},{children:[n("button",Object.assign({className:"rounded-md px-3 py-1.5 text-xs font-semibold transition-opacity hover:opacity-90",style:{backgroundColor:Se.accent,color:Se.accentText},onClick:e=>{if(e.preventDefault(),e.stopPropagation(),Mn)return void window.open(Mn,"_blank","noopener,noreferrer");const t=$({baseUrl:It,accessGroupId:null==Pe?void 0:Pe.accessGroupId});t&&(B()?window.open(t):location.href=t)}},{children:$n})),n("button",Object.assign({className:"flex h-6 w-6 items-center justify-center rounded-full opacity-60 transition-opacity hover:opacity-100",onClick:()=>St(!0)},{children:n("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:2,stroke:"currentColor",className:"h-4 w-4"},{children:n("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M6 18L18 6M6 6l12 12"})}))}))]}))]})),!Ge&&Ye.length>0&&n(T,{className:"p-4 pb-0",isDisabled:Ge}),s("div",Object.assign({className:"relative flex w-full flex-col"},{children:[Ft&&s("div",Object.assign({className:"absolute left-4 top-1/2 flex -translate-y-1/2 select-none items-center gap-x-2"},{children:[n("span",{className:"h-2 w-2 animate-pulse rounded-full bg-c-secondary",style:{backgroundColor:null!==(he=Se.accent)&&void 0!==he?he:"#ff0000"}}),n("span",Object.assign({className:"text-sm text-c-secondary font-semilight",style:{color:Se.text+"90"}},{children:(null==Ce?void 0:Ce.listening)||"Listening..."}))]})),n(A,Object.assign({ref:Lt,className:M(rn.i1,"py-3.5 max-h-60 px-4 w-full border-transparent bg-transparent",!ft.trim()&&!ft.includes("\n")&&"overflow-hidden text-ellipsis whitespace-nowrap placeholder:whitespace-normal placeholder:overflow-visible",Te?"text-right":"text-left",yn&&"mb-12",Ft&&"text-transparent"),value:ft,placeholder:bn,onChange:e=>{gt(e)},onKeyDown:e=>{Ee||zt||"Enter"===e.key&&(e.shiftKey||(e.preventDefault(),Ze||Ge||Kn()))},onPaste:e=>t(void 0,void 0,void 0,(function*(){const t=Array.from(e.clipboardData.files||[]);if(t.length>0){if(!mn)return;e.preventDefault(),De(!1),yield tt(t)}}))},Q&&{onFocus:Q},te&&{onBlur:te},{dir:Te?"rtl":"ltr"})),n("div",Object.assign({ref:Rt,className:M("flex items-center gap-2 absolute right-0 z-2 transition-all duration-200 ease-in-out",yn?"bottom-0 mb-2.5":"top-1/2 -translate-y-1/2"),style:Object.assign(Object.assign({},!yn&&an.backgroundColor&&{backgroundColor:an.backgroundColor}),{borderTopRightRadius:Ne.cornerRadius+"px",borderBottomRightRadius:Ne.cornerRadius+"px"})},{children:Ge?n("button",Object.assign({className:"flex h-8 w-8 items-center mr-2 justify-center rounded-full outline-none transition-colors duration-200 ease-in-out",onClick:()=>{const e=At.current;e&&(Pt.current=e,(e=>{t(void 0,void 0,void 0,(function*(){if(!(e=null!=e?e:At.current))return;const t=z(Dt.current);try{yield fetch(`${process.env.NEXT_PUBLIC_PICKAXE_API_URL}/cancel/${e}`,Object.assign({method:"POST",headers:Object.assign(Object.assign({"Content-Type":"application/json"},(!process.env.NODE_ENV||"development"===process.env.NODE_ENV)&&Object.assign({},process.env.NEXT_PUBLIC_PICKAXE_SESSION_TOKEN&&{"x-pickaxe-session-token":process.env.NEXT_PUBLIC_PICKAXE_SESSION_TOKEN})),{"x-request-sent-at":(new Date).toISOString()}),body:JSON.stringify({outputMessageParts:t})},un&&{credentials:"include"}))}catch(e){console.warn("Failed to cancel submission",e)}}))})(e)),$t.current&&($t.current.abort(),$t.current=null),Tt.current&&(Tt.current.cancel().catch((()=>{})),Tt.current=null),ze("idle")},style:{backgroundColor:Se.accent,color:Se.accentText}},{children:n(U,{className:"h-4 w-4 shrink-0"})})):Ft?n("button",Object.assign({className:"flex h-8 w-8 items-center mr-2 justify-center rounded-full outline-none transition-colors duration-200 ease-in-out",onClick:Jt,style:{backgroundColor:Se.accent,color:Se.accentText}},{children:n(U,{className:"h-4 w-4 shrink-0"})})):s(o,{children:[mn&&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:en?Se.accent+"10":void 0,color:en?Se.accent:Se.accent+"80"},disabled:Ze||Ge,onClick:()=>{var e;return null===(e=Et.current)||void 0===e?void 0:e.click()}},tn,{children:[n("input",{id:"file-upload",ref:Et,type:"file",accept:[...O,...k,...N].join(", "),multiple:!0,hidden:!0,className:"hidden",onChange:e=>t(void 0,void 0,void 0,(function*(){De(!1),yield tt(Array.from(e.target.files||[])),e.target.value=""}))}),n(C,{className:"h-6 w-6 shrink-0"})]})),pn&&n("button",Object.assign({className:"disabled:cursor-default flex h-8 w-8 items-center justify-center rounded-full outline-none transition-colors duration-200 ease-in-out",style:{backgroundColor:Ft?Se.accent:sn?Se.accent+"10":void 0,color:Ft?Se.accentText:sn?Se.accent:Se.accent+"80"},disabled:Ze||Ge||Ht,onClick:()=>{Ft?Jt():(Ut.current=ft,Gt(_e||"en-US"))}},on,{children:n(E,{className:"h-5 w-5 shrink-0"})})),n("button",Object.assign({className:"flex h-8 w-8 items-center mr-2 justify-center rounded-full outline-none transition-colors duration-200 ease-in-out disabled:cursor-default",style:{backgroundColor:Qt||Xn?Se.accent:Se.accent+"10",color:Qt||Xn?Se.accentText:Se.accent+"80"},disabled:!Xn,onClick:()=>Kn()},Yt,{children:n(_,{className:M("h-6 w-6 shrink-0",Te&&"scale-x-[-1] transform")})}))]})}))]}))]})),et&&n(P,{error:et,className:"mt-3"})]}))}))}));te.displayName="Input";export{te as default};
1
+ import{__rest as e,__awaiter as t}from"../../../_virtual/_tslib.js";import{jsx as n,jsxs as s,Fragment as o}from"react/jsx-runtime";import{forwardRef as i,useState as r,useRef as a,useCallback as l,useEffect as c,useMemo as d,useImperativeHandle as u}from"react";import{usePickaxeContext as m}from"../../../hooks/pickaxe/usePickaxeContext.js";import{useResponseContext as p}from"../../../hooks/pickaxe/useResponseContext.js";import{useStyleInput as f}from"../../../hooks/studio/useStyleInput.js";import{useStyleFontSize as g}from"../../../hooks/studio/useStyleFontSize.js";import{useConversation as h}from"../../../hooks/pickaxe/useConversation.js";import{useDimensionContext as v}from"../../../hooks/pickaxe/useDimensionContext.js";import{useAuthContext as b}from"../Addons/Auth/hooks/useAuthContext.js";import{useDocument as y}from"../Addons/Document/hooks/useDocument.js";import{useScroll as x}from"../Addons/Scroll/hooks/useScroll.js";import{useArtifactContext as j}from"../Addons/Artifact/hooks/useArtifactContext.js";import{useHover as I}from"../../../hooks/core/useHover.js";import{useMediaQuery as w}from"../../../hooks/core/useMediaQuery.js";import{allowedFileMimeTypes as O,allowedImageMimeTypes as k,additionalAllowedFileExtensions as N}from"../../../common/documents.js";import{createParser as S}from"eventsource-parser";import C from"../../Icons/attach-vertical.svg.js";import E from"../../Icons/arrow-right.svg.js";import _ from"../../Icons/microphone.svg.js";import U from"../../Icons/stop.svg.js";import T from"../Addons/Document/List.js";import A from"../../Core/Textarea.js";import P from"../../Core/ErrorAlert.js";import D from"../../../common/error.js";import{pickaxeApi2 as L}from"../../../common/api/pickaxe.js";import{getValidationFailure as R}from"../../../common/validation.js";import M from"../../../common/cn.js";import{buildUpgradeUrl as $,isInIframe as B,initializeEmbedUserId as X}from"../../../common/utils.js";import{getPickaxeConfigMetadata as K}from"../../../common/pickaxeConfig.js";import{fireDeploymentSessionInitializedWebhook as V,fireDeploymentFirstMessageSubmittedWebhook as F}from"../../../common/deploymentWebhooks.js";import{useStudio as H}from"../../../hooks/studio/useStudio.js";import{useSpeech as W}from"../../../hooks/pickaxe/useSpeech.js";import{STUDIO_INFINITY_VALUE as G}from"../common/PickaxeCommon.js";const J=e=>"string"==typeof e&&e.trim().length>0,z=e=>e.map((e=>Object.assign({},e))),q=e=>e instanceof Error&&("AbortError"===e.name||"BodyStreamBuffer was aborted"===e.message),Q=(e,t)=>{if(e&&"object"==typeof e)return e[t]},Y=(e,t)=>{const n=Q(e,t);return J(n)?n:null},Z=e=>{const t=Number(e);return Number.isFinite(t)?t:void 0},ee=({studioUser:e,deploymentId:t,portalId:n})=>{var s,o;const i=Array.isArray(Q(e,"uses"))?Q(e,"uses"):[],r=(({deploymentId:e,portalId:t})=>J(e)?{type:"deployment",id:e}:J(t)?{type:"portal",id:t}:null)({deploymentId:t,portalId:n});if(!r)return{scope:r,record:null};const a=null!==(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}},te=i((({resubmitPrompt:i,onFocus:Q,onBlur:te,onInputHeightChange:ne,initSmitheryAuthData:se},oe)=>{var ie,re,ae,le,ce,de,ue,me,pe,fe,ge,he;const{origin:ve,pickaxeId:be,sessionId:ye,sender:xe,senderType:je,portalId:Ie,deploymentId:we,deploymentType:Oe,pickaxe:ke,styles:Ne,colors:Se,translations:Ce,locale:Ee,forceMobile:_e,isNewChat:Ue,isRtl:Te,isShowFeedbackMessage:Ae,accessGroup:Pe,setIsNewChat:De,setIsShowIceBreaker:Le,setValidationStatus:Re,setValidationUpgradeGroups:Me,setValidationUpgradeUrl:$e,setAccessGroup:Be,onGenerateComplete:Xe}=m(),{token:Ke,isLoggedOut:Ve,isSent:Fe,isPricingAuth:He}=b(),{messages:We,isGenerating:Ge,setMessages:Je,setStatus:ze,setLimitData:qe,setError:Qe}=p(),{documents:Ye,isUploading:Ze,documentError:et,onFileUpload:tt,setDocuments:nt,setDocumentError:st}=y(),{studio:ot}=H(),{scrollStartSession:it,scrollEndSession:rt,scrollToBottom:at}=x({auto:!0}),{artifacts:lt,currentPopupType:ct,setArtifacts:dt,setCurrentArtifact:ut}=j(),{height:mt}=v(),pt=h(),[ft,gt]=r(""),[ht,vt]=r(!1),[bt,yt]=r(!1),[xt,jt]=r(null),[It,wt]=r(null),[Ot,kt]=r(!1),[Nt,St]=r(!1),[Ct,Et]=r(0),_t=a(null),Ut=a(""),Tt=a(null),At=a(null),Pt=a(null),Dt=a([]),Lt=a(null),Rt=a(null),Mt=a(null),$t=a(null),Bt=a(new Set),Xt=a(null),Kt=Math.max(.4*mt,100),{speechTranscript:Vt,isSpeechListening:Ft,isSpeechProcessing:Ht,isSpeechSupported:Wt,onStartListening:Gt,onStopListening:Jt}=W(),[zt]=w("(max-width: 480px)"),qt=I(),{isHover:Qt}=qt,Yt=e(qt,["isHover"]),Zt=I(),{isHover:en}=Zt,tn=e(Zt,["isHover"]),nn=I(),{isHover:sn}=nn,on=e(nn,["isHover"]),rn=g(),an=f(),ln="undefined"!=typeof window?window.location.hostname:"",cn="undefined"!=typeof window?window.location.href:"",dn="undefined"!=typeof window&&window.self!==window.top,un=ln.includes("pickaxe.co")&&!cn.includes("https://studio.pickaxe.co/_embed")&&!dn,mn=null!==(re=null===(ie=null==ke?void 0:ke.documentuploadtype)||void 0===ie?void 0:ie.startsWith("enduserupload"))&&void 0!==re&&re,pn=Wt&&(null==ke?void 0:ke.enablevoicetotext),fn=J(we),gn="chat-input"===Oe&&Ue&&!Fe,hn="chat-input"===Oe&&He&&Ve&&Fe,vn=l((e=>{const t=R(e);return!!t&&(Qe(""),qe(null),Re(t.status),Be(t.accessGroup),Me(t.upgradeGroups),$e(t.upgradeUrl),!0)}),[Qe,qe,Re,Me,$e,Be]),bn=null!==(ae=null==ke?void 0:ke.placeholdertext)&&void 0!==ae?ae:Te?"بماذا تريد أن تتحدث؟":(null==Ce?void 0:Ce["what-do-you-want-to-talk-about"])||"What do you want to talk about?",yn=ht||bt,xn=l((()=>t(void 0,void 0,void 0,(function*(){kt(!1);try{const e=yield fetch(`${process.env.NEXT_PUBLIC_PICKAXE_API2_URL}/user`,Object.assign(Object.assign({method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(Object.assign({studioId:null==ke?void 0:ke.studioid},Ke?{studioSessionToken:Ke}:xe?{sender:xe}:{sender:X()}))},(!process.env.NODE_ENV||"development"===process.env.NODE_ENV)&&Object.assign({},process.env.NEXT_PUBLIC_PICKAXE_SESSION_TOKEN&&{headers:{"Content-Type":"application/json","x-pickaxe-session-token":process.env.NEXT_PUBLIC_PICKAXE_SESSION_TOKEN}})),un&&{credentials:"include"})),t=yield e.json();(null==t?void 0:t.studioUser)&&(jt(t.studioUser),wt(t.url))}catch(e){console.error("Failed to fetch studio user:",e)}finally{kt(!0)}}))),[un,null==ke?void 0:ke.studioid,xe,Ke]);c((()=>{xn()}),[xn]);const jn=Number(null!==(le=null==Pe?void 0:Pe.limit)&&void 0!==le?le:0),In="string"==typeof(null==Pe?void 0:Pe.limitInterval)?Pe.limitInterval:null,wn=!!(null==ot?void 0:ot.data.usage)&&ot.data.usage.isCredits,On=d((()=>ee({studioUser:xt,deploymentId:we,portalId:Ie})),[we,Ie,xt]);c((()=>{fn&&Ue&&ye&&Bt.current.add(ye)}),[Ue,ye,fn]);const kn=l((()=>{var e,t,n;return{studioId:null==ke?void 0:ke.studioid,userEmail:Y(xt,"email"),userId:null!==(e=Y(xt,"userId"))&&void 0!==e?e:Y(xt,"userid"),sessionId:ye,deploymentId:we,deploymentType:Oe,portalId:Ie,accessGroupId:null!==(t=null==Pe?void 0:Pe.accessGroupId)&&void 0!==t?t:null,pickaxeId:be,sender:xe,senderType:je,origin:ve,metadata:null!==(n=K(we))&&void 0!==n?n:null}}),[null==Pe?void 0:Pe.accessGroupId,we,Oe,ve,null==ke?void 0:ke.studioid,be,Ie,xe,je,ye,xt]),Nn=l((()=>!!(fn&&Ot&&ye)&&(!!Bt.current.has(ye)&&(V(kn()),Bt.current.delete(ye),!0))),[kn,Ot,ye,fn]);c((()=>{if(!Ot||!ye)return;Nn();const e=Xt.current;(null==e?void 0:e.sessionId)===ye&&(F(Object.assign(Object.assign(Object.assign({},e),kn()),{message:e.message,documentIds:e.documentIds,uploadedModelImages:e.uploadedModelImages,hasUploadedDocuments:e.hasUploadedDocuments,isHidden:e.isHidden})),Xt.current=null)}),[Nn,kn,Ot,ye]);const Sn={currentUses:Z(null==xt?void 0:xt.currentUses),extraUses:Z(null==xt?void 0:xt.extraUses)},Cn=On.scope?{currentUses:null!==(de=Z(null===(ce=On.record)||void 0===ce?void 0:ce.currentUses))&&void 0!==de?de:0,extraUses:null!==(me=Z(null===(ue=On.record)||void 0===ue?void 0:ue.extraUses))&&void 0!==me?me:0}:{currentUses:0,extraUses:0},En=Y(xt,"type"),_n="guest"===En||!En&&Ve?Cn:Sn;c((()=>{let e=!0;return t(void 0,void 0,void 0,(function*(){var t;if(wn&&(null===(t=null==ot?void 0:ot.data)||void 0===t?void 0:t.workspaceId))try{const t=yield L.get(`/cost_per_run?workspaceId=${ot.data.workspaceId}`,{withCredentials:!1});e&&Et(1e4*(Number(t.data.costPerRun)||0))}catch(t){console.error("Failed to fetch average cost per run:",t),e&&Et(0)}else e&&Et(0)})),()=>{e=!1}}),[wn,null===(pe=null==ot?void 0:ot.data)||void 0===pe?void 0:pe.workspaceId]);const Un=(({currentUses:e,extraUses:t,limit:n,limitInterval:s})=>{const o=Number(null!=e?e:0),i=Number(null!=t?t:0);return n===G||i===G?G:"one_time"===s?Math.max(0,i-o):(console.log("Calculating remaining balance with limit:",n,"currentUses:",o,"extraUses:",i),Math.max(0,n-o)+i)})({currentUses:_n.currentUses,extraUses:_n.extraUses,limit:jn,limitInterval:In}),Tn=Un===G?G:Math.max(0,Math.ceil(Un)),An=(({extraUses:e,limit:t,limitInterval:n})=>{const s=Number(null!=e?e:0);return t===G||s===G?G:"one_time"===n?Math.max(0,s):Math.max(0,t)+Math.max(0,s)})({extraUses:_n.extraUses,limit:jn,limitInterval:In}),Pn=An===G?G:Math.ceil(.05*An),Dn=wn?Math.ceil(5*Ct):5,Ln=Pn===G?G:Math.max(Pn,Dn),Rn=d((()=>!!xt&&(!Nt&&(Tn!==G&&Tn<=Ln))),[Nt,Ln,Tn,xt]),Mn=(null===(fe=null==Pe?void 0:Pe.upgrade)||void 0===fe?void 0:fe.isLinkToCustomURL)&&"string"==typeof Pe.upgrade.limitLink&&Pe.upgrade.limitLink.trim().length>0?Pe.upgrade.limitLink.trim():null,$n=Mn&&"string"==typeof(null===(ge=null==Pe?void 0:Pe.upgrade)||void 0===ge?void 0:ge.limitCTA)&&Pe.upgrade.limitCTA.trim().length>0?Pe.upgrade.limitCTA:(null==Ce?void 0:Ce["pricing.upgrade"])||(null==Ce?void 0:Ce.upgrade)||"Upgrade",Bn=d((()=>{var e,t,n;return!!Ue&&(!!ke&&(!pt.isLoading&&(!((null!==(t=null===(e=pt.data)||void 0===e?void 0:e.messages.length)&&void 0!==t?t:0)>1)&&(!!(null===(n=ke.icebreakers)||void 0===n?void 0:n.length)&&(!Ae&&!gn)))))}),[ke,Ue,Ae,gn,pt.data,pt.isLoading]),Xn=d((()=>{if(Ge||Ze)return!1;const e=mn&&Ye.length>0&&Ye.every((e=>"finished"===e.status));return!(!ft.trim()&&!e)&&Ye.every((e=>"finished"===e.status||e.isInsertedAsRaw))}),[mn,Ge,Ze,ft,Ye]);u(oe,(()=>({onSubmit:Kn}))),c((()=>{Le(Bn)}),[Bn]),c((()=>{var e;if(i){const t=Array.from(We),n=null===(e=t[t.length-2].parts.find((e=>"text"===e.type)))||void 0===e?void 0:e.content;Kn(n,!0)}}),[i]),c((()=>{if(!Mt.current||!ne)return;const e=new ResizeObserver((e=>{for(const t of e)ne(t.contentRect.height)}));return e.observe(Mt.current),()=>{e.disconnect()}}),[ne]),c((()=>{if(!Ft)return;const e=Ut.current?`${Ut.current} `:"";gt(`${e}${Vt}`)}),[Vt,Ft]),c((()=>{if(!Lt.current)return;(()=>{if(!Lt.current)return;let e=Lt.current.scrollHeight>52;ft.includes("\n")||Ye.length?e=!0:ft.trim()||(e=!1),vt(e)})()}),[ft,Ye]),c((()=>{const e=Lt.current,t=Rt.current;if(!e||!t||ht||ft.includes("\n"))return void yt(!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=ft||bn,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;yt(i>l)}),[ft,ht,bn]);const Kn=(e,n=!1)=>t(void 0,void 0,void 0,(function*(){var t,s,o,i;let r=null;try{if(Ge||Ze)return;const a=Ye.filter((e=>"finished"===e.status&&!e.isInsertedAsRaw)),l=a.map((e=>e.documentId)).filter(Boolean),c=a.filter((e=>"image"===e.type)).map((e=>{const t=e.name.split(".").pop()||"";return{documentId:e.documentId,extension:t}})),d=null!=e?e:ft,u=null!==(s=null===(t=null==ke?void 0:ke.documentuploadtype)||void 0===t?void 0:t.startsWith("enduserupload"))&&void 0!==s&&s&&l.length>0;if(!d&&!u)return;Qe(""),st(""),qe(null),gt(""),De(!1),ze("fetching"),it(),at();const m=[...n?Array.from(We.slice(0,We.length-1)):Array.from(We),...n?[]:[{id:We.length+1,role:"user",parts:[{type:"text",content:d,isVisible:!0}],documentIds:u?l:[]}],{id:We.length+(n?0:2),role:"assistant",parts:[],documentIds:[]}];Je(m),at(),u&&nt([]);const p=K(we),f="undefined"!=typeof crypto&&"randomUUID"in crypto?crypto.randomUUID():`submission-${Date.now()}-${Math.random().toString(36).slice(2)}`;r=f,At.current=f,Pt.current=null,Dt.current=[];const g=yield fetch(`${process.env.NEXT_PUBLIC_PICKAXE_API_URL}/submit`,Object.assign({method:"POST",body:JSON.stringify(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({origin:ve,pickaxeId:be,sessionId:ye,submissionId:f,senderType:je,value:d},u&&{documentIds:l}),xe&&{sender:xe}),Ke&&{studioSessionToken:Ke}),!Ke&&!xe&&{sender:X()}),Ie&&{portalId:Ie}),we&&{deploymentId:we}),p&&{metadata:p}),u&&c.length>0?{uploadedModelImages:c}:{})),headers:Object.assign(Object.assign({},(!process.env.NODE_ENV||"development"===process.env.NODE_ENV)&&Object.assign({},process.env.NEXT_PUBLIC_PICKAXE_SESSION_TOKEN&&{"x-pickaxe-session-token":process.env.NEXT_PUBLIC_PICKAXE_SESSION_TOKEN})),{"x-request-sent-at":(new Date).toISOString()})},un&&{credentials:"include"})),h=yield g.json();if(!h.success){if(h.limitData){const e=new Error(h.error||h.message||(null==Ce?void 0:Ce["failed-to-start-generation"])||"Failed to start generation");throw e.limitData=h.limitData,e}if(vn(h))return;throw new Error(h.error||h.message||(null==Ce?void 0:Ce["failed-to-start-generation"])||"Failed to start generation")}const v=null!==(o=h.submissionId)&&void 0!==o?o:f;r=v,At.current=v;const b=()=>Pt.current===v;if(b())return;fn&&Ue&&ye&&Bt.current.add(ye);const y=Object.assign(Object.assign({},kn()),{message:d,documentIds:u?l:[],uploadedModelImages:u?c:[],hasUploadedDocuments:u,isHidden:n,metadata:null!=p?p:null});Ot?(Nn(),F(y)):Xt.current=y,ze("streaming"),$t.current=new AbortController;const x=m.length-1,j=[];let I=[...null!=lt?lt:[]],w=0,O=!1,k="";for(;!O;)try{const e=yield fetch(`${process.env.NEXT_PUBLIC_PICKAXE_API_URL}/stream/${v}?index=${w}`,{signal:null===(i=$t.current)||void 0===i?void 0:i.signal,headers:{"Cache-Control":"no-cache",Connection:"keep-alive"}});if(!e.body)throw new Error("No response body");const t=e.body.getReader();Tt.current=t;const n=new TextDecoder,s=S({onEvent:e=>{var t,n;if(b())O=!0;else if(e.event&&"ping"!==e.event&&w++,"stop"!==e.event){if("error"===e.event){const t=JSON.parse(e.data);if(t.limitData)return qe(t.limitData),Qe(""),void(O=!0);const n=t.error||t.message||(null==Ce?void 0:Ce["something-went-wrong"])||"Something went wrong.";return vn(t)||Qe(n),void(O=!0)}if("delta"===e.event){const s=JSON.parse(e.data);if("data-error"===s.type&&se){const e=s.data.error;if("string"==typeof e){if(/['"]type['"]\s*:\s*['"]unauthorized_smithery['"]/.test(e)){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 O=!0,se({smitheryId: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 O=!0,se({smitheryId:t.qualifiedName,serverId:t.serverId,name:t.name}),new Error("STOP_STREAM")}}else if("text-start"===s.type)k="",j.push({type:"text",content:"",isVisible:null===(t=s.isVisible)||void 0===t||t});else if("text-delta"===s.type)k+=s.delta,j[j.length-1].content=k;else if("text-end"===s.type)k="";else if("reasoning-start"===s.type)k="",j.push({type:"reasoning",content:"",isVisible:null===(n=s.isVisible)||void 0===n||n});else if("reasoning-delta"===s.type)k+=s.delta,j[j.length-1].content=k;else if("reasoning-end"===s.type)k="";else if(s.type.startsWith("data-")){const e=s;j.push({type:e.type,content:JSON.stringify(e.data),isVisible:!0})}Dt.current=z(j),Je([...m.slice(0,x),Object.assign(Object.assign({},m[m.length-1]),{id:We.length+1,role:"assistant",parts:j})])}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"})),dt([...I]),ct.startsWith("inline")||ut({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"})),dt(I),ct.startsWith("inline")||ut({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"})),dt(I),ct.startsWith("inline")||ut({id:t.id,version:t.version})}else if("artifact_content"===e.event){const t=JSON.parse(e.data),n=t.token.replace(/\u200B/g,"");I=I.map((e=>e.id===t.id&&e.version===t.version?Object.assign(Object.assign({},e),{content:e.content+n,status:"streaming"}):e)),dt(I)}else if("artifact_finished"===e.event){const t=JSON.parse(e.data);dt(I.map((e=>e.id===t.id?Object.assign(Object.assign({},e),{status:"finished"}):e)))}else if("error"===e.event){const t=JSON.parse(e.data);if(t.limitData)return qe(t.limitData),Qe(""),void(O=!0);const n=t.error||t.message||(null==Ce?void 0:Ce["something-went-wrong-try-again"])||"Something went wrong, please try again.";if(vn(t))return void(O=!0);Qe(n)}else"stop"===e.event&&(O=!0)}else O=!0}});for(;;){if(b()){O=!0,t.cancel().catch((()=>{}));break}const{value:e,done:o}=yield t.read();if(b()){O=!0,t.cancel().catch((()=>{}));break}if(o)break;s.feed(n.decode(e))}O||b()||(yield new Promise((e=>setTimeout(e,1e3))))}catch(e){if("STOP_STREAM"===e.message||q(e)||b())return void(O=!0);console.warn("Stream connection lost, retrying...",e),yield new Promise((e=>setTimeout(e,1e3)))}null==Xe||Xe(ye)}catch(e){if(q(e))return;if(e.limitData)qe(e.limitData),Qe("");else{let t=D(e)||"";t&&!t.includes("Unexpected token 'A',")||(t=(null==Ce?void 0:Ce["high-traffic-try-again-later"])||"Oops! We're experiencing high traffic at the moment. Please try again later."),vn(t)||Qe(t)}}finally{const e=!r||At.current===r;at(),e&&(ze("idle"),rt(),Tt.current=null),r&&e&&(At.current=null,Dt.current=[]),yield xn()}}));return hn?null:n("div",Object.assign({className:M("flex w-full flex-shrink-0 flex-col items-center",!gn&&"px-4 pb-8"),dir:Te?"rtl":"ltr"},{children:s("div",Object.assign({className:"flex w-full max-w-[800px] flex-col"},{children:[s("div",Object.assign({ref:Mt,className:M("relative flex flex-col w-full justify-end gap-y-3 py-[3px]","block"===Ne.formFieldStyle&&"shadow"),style:Object.assign(Object.assign({},an),{maxHeight:`${Kt}px`,overflowY:"auto"})},{children:[Rn&&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:an.backgroundColor?`${an.backgroundColor}E6`:void 0,borderColor:Se.text+"20",color:Se.text,borderTopRightRadius:Ne.cornerRadius+"px",borderTopLeftRadius:Ne.cornerRadius+"px"}},{children:[n("div",Object.assign({className:"flex items-center gap-2 text-sm font-medium"},{children:s("span",{children:[Tn.toLocaleString()," ",wn?(null==Ce?void 0:Ce.credits)||"Credits":(null==Ce?void 0:Ce.uses)||"Uses"," ",(null==Ce?void 0:Ce.remaining)||"remaining"]})})),s("div",Object.assign({className:"flex items-center gap-3"},{children:[n("button",Object.assign({className:"rounded-md px-3 py-1.5 text-xs font-semibold transition-opacity hover:opacity-90",style:{backgroundColor:Se.accent,color:Se.accentText},onClick:e=>{if(e.preventDefault(),e.stopPropagation(),Mn)return void window.open(Mn,"_blank","noopener,noreferrer");const t=$({baseUrl:It,accessGroupId:null==Pe?void 0:Pe.accessGroupId});t&&(B()?window.open(t):location.href=t)}},{children:$n})),n("button",Object.assign({className:"flex h-6 w-6 items-center justify-center rounded-full opacity-60 transition-opacity hover:opacity-100",onClick:()=>St(!0)},{children:n("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:2,stroke:"currentColor",className:"h-4 w-4"},{children:n("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M6 18L18 6M6 6l12 12"})}))}))]}))]})),!Ge&&Ye.length>0&&n(T,{className:"p-4 pb-0",isDisabled:Ge}),s("div",Object.assign({className:"relative flex w-full flex-col"},{children:[Ft&&s("div",Object.assign({className:"absolute left-4 top-1/2 flex -translate-y-1/2 select-none items-center gap-x-2"},{children:[n("span",{className:"h-2 w-2 animate-pulse rounded-full bg-c-secondary",style:{backgroundColor:null!==(he=Se.accent)&&void 0!==he?he:"#ff0000"}}),n("span",Object.assign({className:"text-sm text-c-secondary font-semilight",style:{color:Se.text+"90"}},{children:(null==Ce?void 0:Ce.listening)||"Listening..."}))]})),n(A,Object.assign({ref:Lt,className:M(rn.i1,"py-3.5 max-h-60 px-4 w-full border-transparent bg-transparent",!ft.trim()&&!ft.includes("\n")&&"overflow-hidden text-ellipsis whitespace-nowrap placeholder:whitespace-normal placeholder:overflow-visible",Te?"text-right":"text-left",yn&&"mb-12",Ft&&"text-transparent"),value:ft,placeholder:bn,onChange:e=>{gt(e)},onKeyDown:e=>{_e||zt||"Enter"===e.key&&(e.shiftKey||(e.preventDefault(),Ze||Ge||Kn()))},onPaste:e=>t(void 0,void 0,void 0,(function*(){const t=Array.from(e.clipboardData.files||[]);if(t.length>0){if(!mn)return;e.preventDefault(),De(!1),yield tt(t)}}))},Q&&{onFocus:Q},te&&{onBlur:te},{dir:Te?"rtl":"ltr"})),n("div",Object.assign({ref:Rt,className:M("flex items-center gap-2 absolute right-0 z-2 transition-all duration-200 ease-in-out",yn?"bottom-0 mb-2.5":"top-1/2 -translate-y-1/2"),style:Object.assign(Object.assign({},!yn&&an.backgroundColor&&{backgroundColor:an.backgroundColor}),{borderTopRightRadius:Ne.cornerRadius+"px",borderBottomRightRadius:Ne.cornerRadius+"px"})},{children:Ge?n("button",Object.assign({className:"flex h-8 w-8 items-center mr-2 justify-center rounded-full outline-none transition-colors duration-200 ease-in-out",onClick:()=>{const e=At.current;e&&(Pt.current=e,(e=>{t(void 0,void 0,void 0,(function*(){if(!(e=null!=e?e:At.current))return;const t=z(Dt.current);try{yield fetch(`${process.env.NEXT_PUBLIC_PICKAXE_API_URL}/cancel/${e}`,Object.assign({method:"POST",headers:Object.assign(Object.assign({"Content-Type":"application/json"},(!process.env.NODE_ENV||"development"===process.env.NODE_ENV)&&Object.assign({},process.env.NEXT_PUBLIC_PICKAXE_SESSION_TOKEN&&{"x-pickaxe-session-token":process.env.NEXT_PUBLIC_PICKAXE_SESSION_TOKEN})),{"x-request-sent-at":(new Date).toISOString()}),body:JSON.stringify({outputMessageParts:t})},un&&{credentials:"include"}))}catch(e){console.warn("Failed to cancel submission",e)}}))})(e)),$t.current&&($t.current.abort(),$t.current=null),Tt.current&&(Tt.current.cancel().catch((()=>{})),Tt.current=null),ze("idle")},style:{backgroundColor:Se.accent,color:Se.accentText}},{children:n(U,{className:"h-4 w-4 shrink-0"})})):Ft?n("button",Object.assign({className:"flex h-8 w-8 items-center mr-2 justify-center rounded-full outline-none transition-colors duration-200 ease-in-out",onClick:Jt,style:{backgroundColor:Se.accent,color:Se.accentText}},{children:n(U,{className:"h-4 w-4 shrink-0"})})):s(o,{children:[mn&&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:en?Se.accent+"10":void 0,color:en?Se.accent:Se.accent+"80"},disabled:Ze||Ge,onClick:()=>{var e;return null===(e=_t.current)||void 0===e?void 0:e.click()}},tn,{children:[n("input",{id:"file-upload",ref:_t,type:"file",accept:[...O,...k,...N].join(", "),multiple:!0,hidden:!0,className:"hidden",onChange:e=>t(void 0,void 0,void 0,(function*(){De(!1),yield tt(Array.from(e.target.files||[])),e.target.value=""}))}),n(C,{className:"h-6 w-6 shrink-0"})]})),pn&&n("button",Object.assign({className:"disabled:cursor-default flex h-8 w-8 items-center justify-center rounded-full outline-none transition-colors duration-200 ease-in-out",style:{backgroundColor:Ft?Se.accent:sn?Se.accent+"10":void 0,color:Ft?Se.accentText:sn?Se.accent:Se.accent+"80"},disabled:Ze||Ge||Ht,onClick:()=>{Ft?Jt():(Ut.current=ft,Gt(Ee||"en-US"))}},on,{children:n(_,{className:"h-5 w-5 shrink-0"})})),n("button",Object.assign({className:"flex h-8 w-8 items-center mr-2 justify-center rounded-full outline-none transition-colors duration-200 ease-in-out disabled:cursor-default",style:{backgroundColor:Qt||Xn?Se.accent:Se.accent+"10",color:Qt||Xn?Se.accentText:Se.accent+"80"},disabled:!Xn,onClick:()=>Kn()},Yt,{children:n(E,{className:M("h-6 w-6 shrink-0",Te&&"scale-x-[-1] transform")})}))]})}))]}))]})),et&&n(P,{error:et,className:"mt-3"})]}))}))}));te.displayName="Input";export{te as default};
@@ -1 +1 @@
1
- import{__awaiter as e}from"../../../_virtual/_tslib.js";import{jsxs as t,jsx as o,Fragment as i}from"react/jsx-runtime";import{useState as r,useRef as n,useEffect as s,useCallback as a}from"react";import{usePickaxeContext as l}from"../../../hooks/pickaxe/usePickaxeContext.js";import{useAuthContext as c}from"../Addons/Auth/hooks/useAuthContext.js";import{useDimensionContext as d}from"../../../hooks/pickaxe/useDimensionContext.js";import{useDocument as m}from"../Addons/Document/hooks/useDocument.js";import{useScrollContext as u}from"../Addons/Scroll/hooks/useScrollContext.js";import{useStyleFontSize as p}from"../../../hooks/studio/useStyleFontSize.js";import f from"../../../hooks/core/useScrollToBottomVisibility.js";import h from"./History/index.js";import v from"./Input.js";import g from"../../Icons/attach-vertical.svg.js";import x from"../../../common/cn.js";import b from"../../../common/api/pickaxe.js";import{v4 as k}from"uuid";import{StudioTip as j}from"../../Core/StudioTip.js";import y from"../common/ScrollToBottomButton.js";import{useResponseContext as I}from"../../../hooks/pickaxe/useResponseContext.js";import{NavPill as w,EditableNavPill as D,HistoryPill as C}from"../Addons/Navbar/NavPill.js";import S from"../../Icons/history.svg.js";const N=()=>{var N,T;const{deploymentType:A,isNewChat:F,setIsNewChat:O,sessionId:P,setSessionId:_,setLastSessionId:H,pickaxeId:z,sender:B,pickaxe:E,styles:R,isEmbed:L,translations:G}=l(),{isSent:V}=c(),{width:U,height:W,setDimension:q}=d(),{setDocuments:J,onFileUpload:K}=m(),{scrollContainerRef:M,isLocked:Q,setIsLocked:X}=u(),{isGenerating:Y,messages:Z}=I(),$=p(),[ee,te]=r(0),[oe,ie]=r(!1),[re,ne]=r(!1),se=n(null),ae=n(null),le=n(0),[ce,de]=r(null),[me,ue]=r(!1),pe=(null==G?void 0:G["new-chat"])||"New chat",fe="chat-input"===A&&F&&!V,he=null!==(T=null===(N=null==E?void 0:E.documentuploadtype)||void 0===N?void 0:N.startsWith("enduserupload"))&&void 0!==T&&T,{hasScrollableContent:ve,isNearBottom:ge}=f(M);s((()=>()=>{J([])}),[]);const xe=a((()=>{if(!z||!B)return;const t=(o=0)=>e(void 0,void 0,void 0,(function*(){var e;try{const t=yield b.post("/get_pickaxe_conversation",{sessionId:P,userId:B});if(t.data&&t.data.success){const e=t.data.title;if(e&&"Conversation Title"!==e)return void ke(e)}else console.error("Failed to load conversation:",null===(e=t.data)||void 0===e?void 0:e.error)}catch(e){console.error("Error fetching conversation:",e)}o<20&&setTimeout((()=>t(o+1)),3e3)}));t()}),[z,B,P]);s((()=>{Y||F||!P||xe()}),[Y,F,P,xe]),s((()=>{if(!se.current)return;const e=new ResizeObserver((e=>{for(const t of e){const{width:e,height:o}=t.contentRect;q(parseInt(e.toFixed(0)),parseInt(o.toFixed(0)))}}));return e.observe(se.current),()=>{e.disconnect()}}),[q]);const[be,ke]=r(pe),je=(null==E?void 0:E.formtitle)||"Pickaxe",ye=(null==E?void 0:E.coverphoto)||void 0,[Ie,we]=r(!1);s((()=>{const e=!fe&&!L&&R.portalTheme&&(Z.filter((e=>"user"===e.role)).length>0||oe||!F);we(null!=e&&e)}),[fe,L,oe,F,Z,R.portalTheme]);const De=a((()=>{M.current&&(X(!0),M.current.scrollTo({top:M.current.scrollHeight,behavior:"smooth"}))}),[M,X]);return t("div",Object.assign({ref:se,className:"relative flex h-full w-full flex-col items-center overflow-hidden",onDragEnter:e=>{e.preventDefault(),e.stopPropagation(),he&&(le.current+=1,e.dataTransfer.items&&e.dataTransfer.items.length>0&&ne(!0))},onDragLeave:e=>{e.preventDefault(),e.stopPropagation(),he&&(le.current-=1,0===le.current&&ne(!1))},onDragOver:e=>{e.preventDefault(),e.stopPropagation()},onDrop:t=>e(void 0,void 0,void 0,(function*(){if(t.preventDefault(),t.stopPropagation(),ne(!1),le.current=0,!he)return;const e=Array.from(t.dataTransfer.files||[]);e.length>0&&(O(!1),yield K(e))}))},{children:[re&&t("div",Object.assign({className:"absolute inset-0 z-50 flex flex-col items-center justify-center rounded-lg bg-white/80 backdrop-blur-sm transition-all duration-300"},{children:[o("div",Object.assign({className:"flex h-24 w-24 items-center justify-center rounded-full bg-white shadow-lg animate-bounce text-black"},{children:o(g,{className:"h-10 w-10"})})),o("h3",Object.assign({className:x($.h3,"mt-6 font-semibold text-c-primary text-black")},{children:(null==G?void 0:G["drop-files-to-upload"])||"Drop files to upload"})),o("p",Object.assign({className:x($.b2,"mt-2 opacity-60 text-black")},{children:(null==G?void 0:G["add-anything-to-the-conversation"])||"Add anything to the conversation"}))]})),fe?o(v,{}):t(i,{children:[Ie&&t("div",Object.assign({className:x("direct-link"===A?"absolute top-4 left-4 md:top-6 md:left-6 z-40 flex items-center gap-2 animate-in fade-in slide-in-from-top-4 duration-500":"w-full max-w-3xl mt-6 px-4 md:px-0 flex justify-start z-30 mb-4 animate-in fade-in slide-in-from-top-4 duration-500 gap-2","dark"===R.portalTheme?"glass-dark ":"")},{children:[o(w,{text:je,icon:ye}),F||be===pe?o(w,{text:be}):o(D,{text:be,sessionId:P,onRename:t=>e(void 0,void 0,void 0,(function*(){if(P)try{yield b.post("/edit_conversation_name",{sessionId:P,name:t,userId:B}),ke(t)}catch(e){console.error("Error renaming chat:",e),alert((null==G?void 0:G["failed-rename-chat"])||"Failed to rename chat.")}})),onDelete:()=>e(void 0,void 0,void 0,(function*(){if(P&&window.confirm((null==G?void 0:G["delete-confirm"])||"Are you sure you want to delete this conversation?"))try{yield b.post("/delete_pickaxe_conversation",{sessionId:P,userId:B}),O(!0),_(k()),ke(pe)}catch(e){console.error("Error deleting chat:",e),alert((null==G?void 0:G["failed-delete-chat"])||"Failed to delete chat.")}})),isDarkGlass:"dark"===R.portalTheme}),o(j,Object.assign({content:G["chat-history"]||"Chat History",align:"bottom",containerClassName:"inline-flex shrink-0"},{children:o(C,{icon:o(S,{}),onClick:()=>{_(""),H(P)}})}))]})),o(h,{additionalScrollHeight:ee,isForceHideInfo:W<=545||U<=350||oe,isInputFocused:oe,onSubmit:t=>e(void 0,void 0,void 0,(function*(){ae.current&&ae.current.onSubmit(t)})),smitheryAuthData:ce,resubmitPrompt:()=>{de(null),ue(!0)}}),o(y,{isVisible:ve&&!Q&&!ge,bottom:ee+65,onClick:De}),o(v,{ref:ae,onFocus:()=>ie(!0),onBlur:()=>ie(!1),onInputHeightChange:te,initSmitheryAuthData:e=>de(e),resubmitPrompt:me})]})]}))};export{N as default};
1
+ import{__awaiter as t}from"../../../_virtual/_tslib.js";import{jsxs as e,jsx as o,Fragment as i}from"react/jsx-runtime";import{useState as r,useRef as n,useEffect as s,useCallback as a}from"react";import{usePickaxeContext as l}from"../../../hooks/pickaxe/usePickaxeContext.js";import{useAuthContext as c}from"../Addons/Auth/hooks/useAuthContext.js";import{useDimensionContext as d}from"../../../hooks/pickaxe/useDimensionContext.js";import{useDocument as m}from"../Addons/Document/hooks/useDocument.js";import{useScrollContext as u}from"../Addons/Scroll/hooks/useScrollContext.js";import{useStyleFontSize as p}from"../../../hooks/studio/useStyleFontSize.js";import f from"../../../hooks/core/useScrollToBottomVisibility.js";import h from"./History/index.js";import v from"./Input.js";import g from"../../Icons/attach-vertical.svg.js";import x from"../../../common/cn.js";import{pickaxeApi2 as b}from"../../../common/api/pickaxe.js";import{v4 as k}from"uuid";import{StudioTip as j}from"../../Core/StudioTip.js";import y from"../common/ScrollToBottomButton.js";import{useResponseContext as I}from"../../../hooks/pickaxe/useResponseContext.js";import{NavPill as w,EditableNavPill as D,HistoryPill as C}from"../Addons/Navbar/NavPill.js";import S from"../../Icons/history.svg.js";const N=()=>{var N,T;const{deploymentType:A,isNewChat:F,setIsNewChat:O,sessionId:P,setSessionId:H,setLastSessionId:z,pickaxeId:B,sender:E,pickaxe:R,styles:L,isEmbed:G,translations:V}=l(),{isSent:_}=c(),{width:U,height:W,setDimension:q}=d(),{setDocuments:J,onFileUpload:K}=m(),{scrollContainerRef:M,isLocked:Q,setIsLocked:X}=u(),{isGenerating:Y,messages:Z}=I(),$=p(),[tt,et]=r(0),[ot,it]=r(!1),[rt,nt]=r(!1),st=n(null),at=n(null),lt=n(0),[ct,dt]=r(null),[mt,ut]=r(!1),pt=(null==V?void 0:V["new-chat"])||"New chat",ft="chat-input"===A&&F&&!_,ht=null!==(T=null===(N=null==R?void 0:R.documentuploadtype)||void 0===N?void 0:N.startsWith("enduserupload"))&&void 0!==T&&T,{hasScrollableContent:vt,isNearBottom:gt}=f(M);s((()=>()=>{J([])}),[]);const xt=a((()=>{if(!B||!E)return;const e=(o=0)=>t(void 0,void 0,void 0,(function*(){var t;try{const e=yield b.post("/conversation/title",{sessionId:P,userId:E});if(e.data&&e.data.success){const t=e.data.title;if(t&&"Conversation Title"!==t)return void kt(t)}else console.error("Failed to load conversation:",null===(t=e.data)||void 0===t?void 0:t.error)}catch(t){console.error("Error fetching conversation:",t)}o<20&&setTimeout((()=>e(o+1)),3e3)}));e()}),[B,E,P]);s((()=>{Y||F||!P||xt()}),[Y,F,P,xt]),s((()=>{if(!st.current)return;const t=new ResizeObserver((t=>{for(const e of t){const{width:t,height:o}=e.contentRect;q(parseInt(t.toFixed(0)),parseInt(o.toFixed(0)))}}));return t.observe(st.current),()=>{t.disconnect()}}),[q]);const[bt,kt]=r(pt),jt=(null==R?void 0:R.formtitle)||"Pickaxe",yt=(null==R?void 0:R.coverphoto)||void 0,[It,wt]=r(!1);s((()=>{const t=!ft&&!G&&L.portalTheme&&(Z.filter((t=>"user"===t.role)).length>0||ot||!F);wt(null!=t&&t)}),[ft,G,ot,F,Z,L.portalTheme]);const Dt=a((()=>{M.current&&(X(!0),M.current.scrollTo({top:M.current.scrollHeight,behavior:"smooth"}))}),[M,X]);return e("div",Object.assign({ref:st,className:"relative flex h-full w-full flex-col items-center overflow-hidden",onDragEnter:t=>{t.preventDefault(),t.stopPropagation(),ht&&(lt.current+=1,t.dataTransfer.items&&t.dataTransfer.items.length>0&&nt(!0))},onDragLeave:t=>{t.preventDefault(),t.stopPropagation(),ht&&(lt.current-=1,0===lt.current&&nt(!1))},onDragOver:t=>{t.preventDefault(),t.stopPropagation()},onDrop:e=>t(void 0,void 0,void 0,(function*(){if(e.preventDefault(),e.stopPropagation(),nt(!1),lt.current=0,!ht)return;const t=Array.from(e.dataTransfer.files||[]);t.length>0&&(O(!1),yield K(t))}))},{children:[rt&&e("div",Object.assign({className:"absolute inset-0 z-50 flex flex-col items-center justify-center rounded-lg bg-white/80 backdrop-blur-sm transition-all duration-300"},{children:[o("div",Object.assign({className:"flex h-24 w-24 items-center justify-center rounded-full bg-white shadow-lg animate-bounce text-black"},{children:o(g,{className:"h-10 w-10"})})),o("h3",Object.assign({className:x($.h3,"mt-6 font-semibold text-c-primary text-black")},{children:(null==V?void 0:V["drop-files-to-upload"])||"Drop files to upload"})),o("p",Object.assign({className:x($.b2,"mt-2 opacity-60 text-black")},{children:(null==V?void 0:V["add-anything-to-the-conversation"])||"Add anything to the conversation"}))]})),ft?o(v,{}):e(i,{children:[It&&e("div",Object.assign({className:x("direct-link"===A?"absolute top-4 left-4 md:top-6 md:left-6 z-40 flex items-center gap-2 animate-in fade-in slide-in-from-top-4 duration-500":"w-full max-w-3xl mt-6 px-4 md:px-0 flex justify-start z-30 mb-4 animate-in fade-in slide-in-from-top-4 duration-500 gap-2","dark"===L.portalTheme?"glass-dark ":"")},{children:[o(w,{text:jt,icon:yt}),F||bt===pt?o(w,{text:bt}):o(D,{text:bt,sessionId:P,onRename:e=>t(void 0,void 0,void 0,(function*(){if(P)try{yield b.patch("/conversation/title",{sessionId:P,name:e,userId:E}),kt(e)}catch(t){console.error("Error renaming chat:",t),alert((null==V?void 0:V["failed-rename-chat"])||"Failed to rename chat.")}})),onDelete:()=>t(void 0,void 0,void 0,(function*(){if(P&&window.confirm((null==V?void 0:V["delete-confirm"])||"Are you sure you want to delete this conversation?"))try{yield b.delete("/conversation",{data:{sessionId:P,userId:E}}),O(!0),H(k()),kt(pt)}catch(t){console.error("Error deleting chat:",t),alert((null==V?void 0:V["failed-delete-chat"])||"Failed to delete chat.")}})),isDarkGlass:"dark"===L.portalTheme}),o(j,Object.assign({content:V["chat-history"]||"Chat History",align:"bottom",containerClassName:"inline-flex shrink-0"},{children:o(C,{icon:o(S,{}),onClick:()=>{H(""),z(P)}})}))]})),o(h,{additionalScrollHeight:tt,isForceHideInfo:W<=545||U<=350||ot,isInputFocused:ot,onSubmit:e=>t(void 0,void 0,void 0,(function*(){at.current&&at.current.onSubmit(e)})),smitheryAuthData:ct,resubmitPrompt:()=>{dt(null),ut(!0)}}),o(y,{isVisible:vt&&!Q&&!gt,bottom:tt+65,onClick:Dt}),o(v,{ref:at,onFocus:()=>it(!0),onBlur:()=>it(!1),onInputHeightChange:et,initSmitheryAuthData:t=>dt(t),resubmitPrompt:mt})]})]}))};export{N as default};
@@ -1 +1 @@
1
- import{__awaiter as e}from"../../../../_virtual/_tslib.js";import{jsxs as s,jsx as o,Fragment as t}from"react/jsx-runtime";import{useState as n,useRef as a,useEffect as i,useMemo as r}from"react";import{usePickaxeContext as l}from"../../../../hooks/pickaxe/usePickaxeContext.js";import{useResponseContext as c}from"../../../../hooks/pickaxe/useResponseContext.js";import{useDocument as d}from"../../Addons/Document/hooks/useDocument.js";import{format as m}from"date-fns";import p from"../../../../common/api/pickaxe.js";import{Check as u,X as h,MoreHorizontal as b,Pencil as g}from"lucide-react";import v from"../../../Icons/trash-2.svg.js";import f from"../../../Icons/chat.svg.js";import y from"../../../Icons/copy.svg.js";import x from"../../../Icons/copied.svg.js";import j from"../../../Icons/expand.svg.js";import w from"../../../Icons/collapse.svg.js";import{PickaxeMarkdown as k}from"../../common/PickaxeMarkdown/index.js";import{PickaxeMarkdownRenderer as N}from"../../common/PickaxeMarkdown/Renderer.js";import{getSuppressedRichPreviewUrls as C}from"../../common/PickaxeMessageParts/index.js";import O from"../../../../common/cn.js";const _=({item:_,onDelete:I})=>{const{pickaxe:P,sender:M,colors:R,translations:D,styles:E,isRtl:T,disableCss:q,disableHtml:F,disableJs:S,setSessionId:$,setIsNewChat:A}=l(),{setMessages:H}=c(),{setDocuments:J}=d(),[z,L]=n(!1),[B,K]=n(!1),[U,G]=n(!1),[Q,V]=n(!1),[W,X]=n(!1),Y=a(null),[Z,ee]=n(_.shortSummary||_.summary||(null==D?void 0:D["conversation-name"])||"Conversation name"),[se,oe]=n("");i((()=>{ee(_.shortSummary||_.summary||(null==D?void 0:D["conversation-name"])||"Conversation name")}),[_.shortSummary,_.summary,D]),i((()=>{const e=e=>{Y.current&&!Y.current.contains(e.target)&&L(!1)};return document.addEventListener("mousedown",e),()=>document.removeEventListener("mousedown",e)}),[]);const te=r((()=>_?"FORM"===_.pickaxeType&&0===_.messages.length?_.question.responseParts?_.question.responseParts.length:0:_.messages.length:0),[_]),ne=r((()=>m(new Date(_.updatedAt),"MMM dd, yyy hh:mm a")),[_]),ae=r((()=>{var e;const s=(null==D?void 0:D["not-available"])||"n/a";if("FORM"===_.pickaxeType){if(_.messages&&0!==_.messages.length){const e=_.messages.find((e=>"user"===e.role));return e?e.parts[0].content:""}const o=null!==(e=_.question.inputs)&&void 0!==e?e:[];return W?o.map((e=>`<div style="display: flex; flex-direction: column; margin-bottom: 1em;">\n <p style="font-weight: 600; opacity: 0.9;">${e.question}</p>\n <p style="opacity: 0.8;">${e.answer||s}</p>\n</div>`)).join(""):o.map((e=>`${e.question}: ${e.answer||s}`)).join(" | ")}const o=_.messages.find((e=>"user"===e.role));return o?o.parts[0].content:""}),[_,W,D]),ie=r((()=>{var e,s,o,t;return"FORM"===_.pickaxeType?_.messages&&0!==_.messages.length?null!==(s=null===(e=_.messages.find((e=>"assistant"===e.role)))||void 0===e?void 0:e.parts)&&void 0!==s?s:[]:_.question.responseParts:null!==(t=null===(o=_.messages.find((e=>"assistant"===e.role)))||void 0===o?void 0:o.parts)&&void 0!==t?t:[]}),[_]),re=r((()=>ie.filter((e=>"text"===e.type)).map((e=>e.content)).join(" ")),[ie]),le=r((()=>C(ie)),[ie]),ce=()=>{K(!1),oe("")},de=()=>e(void 0,void 0,void 0,(function*(){if(se.trim()){G(!0);try{yield p.post("/edit_conversation_name",{sessionId:_.sessionId,name:se,userId:M}),ee(se),K(!1)}catch(e){console.error("Error updating conversation name:",e),alert((null==D?void 0:D["failed-update-name"])||"Failed to update name.")}finally{G(!1)}}}));return s("div",Object.assign({className:"flex flex-col overflow-hidden transition duration-300 hover:shadow w-full shrink-0 border",style:{borderColor:R.secondary,borderRadius:E.cornerRadius}},{children:[o("div",Object.assign({className:"flex items-center justify-between px-4 py-3 h-[44px]",style:{backgroundColor:R.primary,color:R.text}},{children:B?s("div",Object.assign({className:"flex items-center w-full gap-2",onClick:e=>e.stopPropagation()},{children:[o("input",{autoFocus:!0,type:"text",value:se,onChange:e=>oe(e.target.value),onKeyDown:e=>{"Enter"===e.key&&de(),"Escape"===e.key&&ce()},className:"flex-1 text-inherit px-2 py-1 rounded border focus:outline-none focus:ring-0 text-sm",style:{backgroundColor:R.primary,borderColor:R.secondary}}),o("button",Object.assign({onClick:de,disabled:U,className:"p-1 rounded hover:bg-black/20 transition-colors",title:(null==D?void 0:D.save)||"Save"},{children:o(u,{className:"h-4 w-4"})})),o("button",Object.assign({onClick:ce,disabled:U,className:"p-1 rounded hover:bg-black/20 transition-colors",title:(null==D?void 0:D.cancel)||"Cancel"},{children:o(h,{className:"h-4 w-4"})}))]})):s(t,{children:[o("h3",Object.assign({className:"font-bold text-lg truncate pr-2 flex-1 min-w-0 select-none"},{children:Z})),s("div",Object.assign({className:"flex items-center gap-1 shrink-0"},{children:[o("button",Object.assign({onClick:e=>{e.stopPropagation(),X(!W)},className:"p-1 rounded-full transition-colors hover:bg-black/10",title:W?(null==D?void 0:D.collapse)||"Collapse":(null==D?void 0:D.expand)||"Expand"},{children:o(W?w:j,{className:"h-4 w-4"})})),s("div",Object.assign({className:"relative"},{children:[o("button",Object.assign({onClick:e=>{e.stopPropagation(),L(!z)},className:"p-1 rounded-full transition-colors hover:bg-black/10"},{children:o(b,{className:"h-6 w-6"})})),z&&s("div",Object.assign({ref:Y,className:"absolute right-0 top-8 w-48 rounded-xl shadow-xl z-40 border overflow-hidden animate-in fade-in zoom-in-95 duration-100",style:{backgroundColor:R.secondary,color:R.secondaryText,borderColor:R.primary}},{children:[s("button",Object.assign({onClick:e=>{e.stopPropagation(),oe(Z),K(!0),L(!1)},className:"w-full text-left px-4 py-3 flex items-center gap-3 transition-all hover:brightness-95 border-b",style:{borderBottomColor:R.primary}},{children:[o(g,{className:"h-4 w-4"}),o("span",Object.assign({className:"font-medium text-sm"},{children:(null==D?void 0:D["rename-chat"])||"Rename chat"}))]})),s("button",Object.assign({onClick:s=>{s.stopPropagation(),e(void 0,void 0,void 0,(function*(){if(window.confirm((null==D?void 0:D["delete-confirm"])||"Are you sure you want to delete this conversation?")){L(!1);try{yield p.post("/delete_pickaxe_conversation",{sessionId:_.sessionId,userId:M}),I&&I(_.sessionId)}catch(e){console.error("Error deleting conversation:",e),alert((null==D?void 0:D["failed-delete-conversation"])||"Failed to delete conversation.")}}}))},className:"w-full text-left px-4 py-3 flex items-center gap-3 transition-all hover:brightness-95"},{children:[o(v,{className:"h-4 w-4"}),o("span",Object.assign({className:"font-medium text-sm"},{children:(null==D?void 0:D["delete-chat"])||"Delete chat"}))]}))]}))]}))]}))]})})),s("div",Object.assign({className:O("px-4 py-5 flex flex-col justify-between transition-all duration-200 ease-in-out",W?"h-auto min-h-[130px]":"h-[130px]"),style:{backgroundColor:R.secondary,color:R.secondaryText}},{children:[s("div",Object.assign({className:"flex flex-col"},{children:[o("div",Object.assign({className:O("w-full",W?"mb-0":"mb-2")},{children:o(k,Object.assign({theme:E.theme,colors:R},T&&{rtl:!0},F&&{disableHtml:!0},S&&{disableJs:!0},q&&{disableCss:!0},{children:o(N,{style:{display:"block"},className:O("w-full",!W&&["[&_*]:!font-semibold mb-0.5 h-5 truncate [&_p]:inline [&_p]:m-0","[&_*]:!inline","[&_*]:!m-0 [&_*]:!p-0","[&_*]:!text-sm","[&_*]:!leading-none","[&_img]:hidden [&_hr]:hidden [&_br]:hidden"],W&&"[&_*]:!text-sm [&_*]:!font-semibold mb-0.5 [&_p]:!m-0"),value:ae})}))})),o("div",Object.assign({className:"w-full"},{children:o(k,Object.assign({theme:E.theme,colors:R},T&&{rtl:!0},F&&{disableHtml:!0},S&&{disableJs:!0},q&&{disableCss:!0},{children:o(N,{style:{display:"block"},className:O("w-full text-sm",!W&&["font-normal h-5 opacity-80 truncate [&_p]:inline [&_p]:m-0","[&_*]:!inline","[&_*]:!m-0 [&_*]:!p-0","[&_*]:!text-sm","[&_*]:!leading-none","[&_img]:hidden [&_hr]:hidden [&_br]:hidden"],W&&"font-normal opacity-90 mt-2 border-t pt-2 border-dashed"),value:re,suppressedRichPreviewUrls:le})}))}))]})),s("div",Object.assign({className:"flex items-center justify-between mt-4 pt-2 border-t border-transparent"},{children:[s("div",Object.assign({className:"flex items-center gap-4"},{children:[((null==P?void 0:P.chatflag)||!(null==P?void 0:P.chatflag)&&(null==P?void 0:P.enablechatresponses))&&s("div",Object.assign({className:"flex items-center gap-1.5 opacity-70 hover:opacity-100 cursor-pointer transition-opacity",onClick:e=>{var s;e.stopPropagation(),s=_.sessionId,J([]),H([]),A(!1),$(s)},title:(null==D?void 0:D["open-chat"])||"Open Chat"},{children:[o(f,{className:"h-4 w-4"}),o("span",Object.assign({className:"text-sm font-medium"},{children:te}))]})),o("button",Object.assign({className:"transition-colors "+(Q?"opacity-100":"opacity-70 hover:opacity-100"),onClick:e=>{e.stopPropagation(),navigator.clipboard.writeText(re),V(!0),setTimeout((()=>{V(!1)}),2e3)},title:Q?(null==D?void 0:D.copied)||"Copied!":(null==D?void 0:D["copy-assistant-message"])||"Copy assistant message"},{children:Q?o(x,{className:"h-4 w-4",style:{color:R.accent},fill:R.accent}):o(y,{className:"h-4 w-4"})}))]})),o("span",Object.assign({className:"text-xs font-semibold uppercase opacity-30 whitespace-nowrap"},{children:ne}))]}))]}))]}))};export{_ as default};
1
+ import{__awaiter as e}from"../../../../_virtual/_tslib.js";import{jsxs as s,jsx as o,Fragment as t}from"react/jsx-runtime";import{useState as n,useRef as a,useEffect as i,useMemo as l}from"react";import{usePickaxeContext as r}from"../../../../hooks/pickaxe/usePickaxeContext.js";import{useResponseContext as c}from"../../../../hooks/pickaxe/useResponseContext.js";import{useDocument as d}from"../../Addons/Document/hooks/useDocument.js";import{format as m}from"date-fns";import{pickaxeApi2 as p}from"../../../../common/api/pickaxe.js";import{Check as u,X as h,MoreHorizontal as v,Pencil as b}from"lucide-react";import g from"../../../Icons/trash-2.svg.js";import f from"../../../Icons/chat.svg.js";import y from"../../../Icons/copy.svg.js";import x from"../../../Icons/copied.svg.js";import j from"../../../Icons/expand.svg.js";import w from"../../../Icons/collapse.svg.js";import{PickaxeMarkdown as k}from"../../common/PickaxeMarkdown/index.js";import{PickaxeMarkdownRenderer as N}from"../../common/PickaxeMarkdown/Renderer.js";import{getSuppressedRichPreviewUrls as C}from"../../common/PickaxeMessageParts/index.js";import O from"../../../../common/cn.js";const _=({item:_,onDelete:I})=>{const{pickaxe:P,sender:M,colors:R,translations:q,styles:D,isRtl:E,disableCss:T,disableHtml:F,disableJs:S,setSessionId:$,setIsNewChat:A}=r(),{setMessages:H}=c(),{setDocuments:J}=d(),[z,L]=n(!1),[B,K]=n(!1),[U,G]=n(!1),[Q,V]=n(!1),[W,X]=n(!1),Y=a(null),[Z,ee]=n(_.shortSummary||_.summary||(null==q?void 0:q["conversation-name"])||"Conversation name"),[se,oe]=n("");i((()=>{ee(_.shortSummary||_.summary||(null==q?void 0:q["conversation-name"])||"Conversation name")}),[_.shortSummary,_.summary,q]),i((()=>{const e=e=>{Y.current&&!Y.current.contains(e.target)&&L(!1)};return document.addEventListener("mousedown",e),()=>document.removeEventListener("mousedown",e)}),[]);const te=l((()=>_?"FORM"===_.pickaxeType?_.question?0===_.messages.length?_.question.responseParts?_.question.responseParts.length:0:_.messages.length:0:_.messages.length:0),[_]),ne=l((()=>m(new Date(_.updatedAt),"MMM dd, yyy hh:mm a")),[_]),ae=l((()=>{var e,s;const o=(null==q?void 0:q["not-available"])||"n/a";if("FORM"===_.pickaxeType){if(_.messages&&0!==_.messages.length){const e=_.messages.find((e=>"user"===e.role));return e?e.parts[0].content:""}const t=null!==(s=null===(e=_.question)||void 0===e?void 0:e.inputs)&&void 0!==s?s:[];return W?t.map((e=>`<div style="display: flex; flex-direction: column; margin-bottom: 1em;">\n <p style="font-weight: 600; opacity: 0.9;">${e.question}</p>\n <p style="opacity: 0.8;">${e.answer||o}</p>\n</div>`)).join(""):t.map((e=>`${e.question}: ${e.answer||o}`)).join(" | ")}const t=_.messages.find((e=>"user"===e.role));return t?t.parts[0].content:""}),[_,W,q]),ie=l((()=>{var e,s,o,t,n,a;return"FORM"===_.pickaxeType?_.messages&&0!==_.messages.length?null!==(s=null===(e=_.messages.find((e=>"assistant"===e.role)))||void 0===e?void 0:e.parts)&&void 0!==s?s:[]:null!==(t=null===(o=_.question)||void 0===o?void 0:o.responseParts)&&void 0!==t?t:[]:null!==(a=null===(n=_.messages.find((e=>"assistant"===e.role)))||void 0===n?void 0:n.parts)&&void 0!==a?a:[]}),[_]),le=l((()=>ie.filter((e=>"text"===e.type)).map((e=>e.content)).join(" ")),[ie]),re=l((()=>C(ie)),[ie]),ce=()=>{K(!1),oe("")},de=()=>e(void 0,void 0,void 0,(function*(){if(se.trim()){G(!0);try{yield p.patch("/conversation/title",{sessionId:_.sessionId,name:se,userId:M}),ee(se),K(!1)}catch(e){console.error("Error updating conversation name:",e),alert((null==q?void 0:q["failed-update-name"])||"Failed to update name.")}finally{G(!1)}}}));return s("div",Object.assign({className:"flex flex-col overflow-hidden transition duration-300 hover:shadow w-full shrink-0 border",style:{borderColor:R.secondary,borderRadius:D.cornerRadius}},{children:[o("div",Object.assign({className:"flex items-center justify-between px-4 py-3 h-[44px]",style:{backgroundColor:R.primary,color:R.text}},{children:B?s("div",Object.assign({className:"flex items-center w-full gap-2",onClick:e=>e.stopPropagation()},{children:[o("input",{autoFocus:!0,type:"text",value:se,onChange:e=>oe(e.target.value),onKeyDown:e=>{"Enter"===e.key&&de(),"Escape"===e.key&&ce()},className:"flex-1 text-inherit px-2 py-1 rounded border focus:outline-none focus:ring-0 text-sm",style:{backgroundColor:R.primary,borderColor:R.secondary}}),o("button",Object.assign({onClick:de,disabled:U,className:"p-1 rounded hover:bg-black/20 transition-colors",title:(null==q?void 0:q.save)||"Save"},{children:o(u,{className:"h-4 w-4"})})),o("button",Object.assign({onClick:ce,disabled:U,className:"p-1 rounded hover:bg-black/20 transition-colors",title:(null==q?void 0:q.cancel)||"Cancel"},{children:o(h,{className:"h-4 w-4"})}))]})):s(t,{children:[o("h3",Object.assign({className:"font-bold text-lg truncate pr-2 flex-1 min-w-0 select-none"},{children:Z})),s("div",Object.assign({className:"flex items-center gap-1 shrink-0"},{children:[o("button",Object.assign({onClick:e=>{e.stopPropagation(),X(!W)},className:"p-1 rounded-full transition-colors hover:bg-black/10",title:W?(null==q?void 0:q.collapse)||"Collapse":(null==q?void 0:q.expand)||"Expand"},{children:o(W?w:j,{className:"h-4 w-4"})})),s("div",Object.assign({className:"relative"},{children:[o("button",Object.assign({onClick:e=>{e.stopPropagation(),L(!z)},className:"p-1 rounded-full transition-colors hover:bg-black/10"},{children:o(v,{className:"h-6 w-6"})})),z&&s("div",Object.assign({ref:Y,className:"absolute right-0 top-8 w-48 rounded-xl shadow-xl z-40 border overflow-hidden animate-in fade-in zoom-in-95 duration-100",style:{backgroundColor:R.secondary,color:R.secondaryText,borderColor:R.primary}},{children:[s("button",Object.assign({onClick:e=>{e.stopPropagation(),oe(Z),K(!0),L(!1)},className:"w-full text-left px-4 py-3 flex items-center gap-3 transition-all hover:brightness-95 border-b",style:{borderBottomColor:R.primary}},{children:[o(b,{className:"h-4 w-4"}),o("span",Object.assign({className:"font-medium text-sm"},{children:(null==q?void 0:q["rename-chat"])||"Rename chat"}))]})),s("button",Object.assign({onClick:s=>{s.stopPropagation(),e(void 0,void 0,void 0,(function*(){if(window.confirm((null==q?void 0:q["delete-confirm"])||"Are you sure you want to delete this conversation?")){L(!1);try{yield p.delete("/conversation",{data:{sessionId:_.sessionId,userId:M}}),I&&I(_.sessionId)}catch(e){console.error("Error deleting conversation:",e),alert((null==q?void 0:q["failed-delete-conversation"])||"Failed to delete conversation.")}}}))},className:"w-full text-left px-4 py-3 flex items-center gap-3 transition-all hover:brightness-95"},{children:[o(g,{className:"h-4 w-4"}),o("span",Object.assign({className:"font-medium text-sm"},{children:(null==q?void 0:q["delete-chat"])||"Delete chat"}))]}))]}))]}))]}))]})})),s("div",Object.assign({className:O("px-4 py-5 flex flex-col justify-between transition-all duration-200 ease-in-out",W?"h-auto min-h-[130px]":"h-[130px]"),style:{backgroundColor:R.secondary,color:R.secondaryText}},{children:[s("div",Object.assign({className:"flex flex-col"},{children:[o("div",Object.assign({className:O("w-full",W?"mb-0":"mb-2")},{children:o(k,Object.assign({theme:D.theme,colors:R},E&&{rtl:!0},F&&{disableHtml:!0},S&&{disableJs:!0},T&&{disableCss:!0},{children:o(N,{style:{display:"block"},className:O("w-full",!W&&["[&_*]:!font-semibold mb-0.5 h-5 truncate [&_p]:inline [&_p]:m-0","[&_*]:!inline","[&_*]:!m-0 [&_*]:!p-0","[&_*]:!text-sm","[&_*]:!leading-none","[&_img]:hidden [&_hr]:hidden [&_br]:hidden"],W&&"[&_*]:!text-sm [&_*]:!font-semibold mb-0.5 [&_p]:!m-0"),value:ae})}))})),o("div",Object.assign({className:"w-full"},{children:o(k,Object.assign({theme:D.theme,colors:R},E&&{rtl:!0},F&&{disableHtml:!0},S&&{disableJs:!0},T&&{disableCss:!0},{children:o(N,{style:{display:"block"},className:O("w-full text-sm",!W&&["font-normal h-5 opacity-80 truncate [&_p]:inline [&_p]:m-0","[&_*]:!inline","[&_*]:!m-0 [&_*]:!p-0","[&_*]:!text-sm","[&_*]:!leading-none","[&_img]:hidden [&_hr]:hidden [&_br]:hidden"],W&&"font-normal opacity-90 mt-2 border-t pt-2 border-dashed"),value:le,suppressedRichPreviewUrls:re})}))}))]})),s("div",Object.assign({className:"flex items-center justify-between mt-4 pt-2 border-t border-transparent"},{children:[s("div",Object.assign({className:"flex items-center gap-4"},{children:[((null==P?void 0:P.chatflag)||!(null==P?void 0:P.chatflag)&&(null==P?void 0:P.enablechatresponses))&&s("div",Object.assign({className:"flex items-center gap-1.5 opacity-70 hover:opacity-100 cursor-pointer transition-opacity",onClick:e=>{var s;e.stopPropagation(),s=_.sessionId,J([]),H([]),A(!1),$(s)},title:(null==q?void 0:q["open-chat"])||"Open Chat"},{children:[o(f,{className:"h-4 w-4"}),o("span",Object.assign({className:"text-sm font-medium"},{children:te}))]})),o("button",Object.assign({className:"transition-colors "+(Q?"opacity-100":"opacity-70 hover:opacity-100"),onClick:e=>{e.stopPropagation(),navigator.clipboard.writeText(le),V(!0),setTimeout((()=>{V(!1)}),2e3)},title:Q?(null==q?void 0:q.copied)||"Copied!":(null==q?void 0:q["copy-assistant-message"])||"Copy assistant message"},{children:Q?o(x,{className:"h-4 w-4",style:{color:R.accent},fill:R.accent}):o(y,{className:"h-4 w-4"})}))]})),o("span",Object.assign({className:"text-xs font-semibold uppercase opacity-30 whitespace-nowrap"},{children:ne}))]}))]}))]}))};export{_ as default};
@@ -1 +1 @@
1
- import{jsxs as e,jsx as s}from"react/jsx-runtime";import{useMemo as o}from"react";import{usePickaxeContext as t}from"../../../../hooks/pickaxe/usePickaxeContext.js";import{useResponseContext as i}from"../../../../hooks/pickaxe/useResponseContext.js";import{useStyleFontSize as n}from"../../../../hooks/studio/useStyleFontSize.js";import{useScrollContext as a}from"../../Addons/Scroll/hooks/useScrollContext.js";import{useDocument as l}from"../../Addons/Document/hooks/useDocument.js";import{useArtifact as r}from"../../Addons/Artifact/hooks/useArtifact.js";import{PickaxeMarkdown as c}from"../../common/PickaxeMarkdown/index.js";import{format as d}from"date-fns";import m from"../../common/PickaxeIcon.js";import p from"../../Addons/Scroll/ScrollLockView.js";import h from"../../common/PickaxeMessageParts/index.js";import f from"../../common/PickaxeMessageActions.js";import u from"../../../../common/cn.js";const x=()=>{var x;const{pickaxe:b,styles:g,colors:v,misc:j,translations:y,disableHtml:k,disableJs:w,disableCss:N,isRtl:C,setSessionId:O,setIsNewChat:I}=t(),{response:A,isGenerating:S}=i(),{scrollTargetRef:D}=a(),{setDocuments:P}=l(),{onLoadArtifact:M}=r(),$=n(),R=o((()=>d(A?A.sentAt:new Date,"hh:mm a MMM dd, yy")),[A]),T=o((()=>{var e;if(!A)return"";const s=(null==y?void 0:y["not-available"])||"n/a";return(null!==(e=A.question.inputs)&&void 0!==e?e:[]).map((e=>`<div style="display: flex; flex-direction: column; margin-bottom: 1em;">\n <p style="font-weight: 500;">${e.question}</p>\n <p>${e.answer||s}</p>\n</div>`)).join("")}),[A,y]);return A?e("div",Object.assign({ref:D,className:"flex flex-col shadow-black transition duration-300 hover:shadow"},{children:[s("div",Object.assign({className:"flex gap-x-3 overflow-hidden px-4 py-5",style:{backgroundColor:v.primary,color:v.text}},{children:e("div",Object.assign({className:"flex flex-col gap-y-1 overflow-x-auto pb-[6px] scrollbar scrollbar-thin"},{children:[s("input",{id:`${A.sessionId}-input`,type:"checkbox",className:"peer hidden",defaultChecked:T.length<280}),s("div",{className:"danger-html hidden flex-col opacity-50 peer-checked:flex",dangerouslySetInnerHTML:{__html:T}}),s("label",Object.assign({htmlFor:`${A.sessionId}-input`,className:u($.b3,"mt-1 flex shrink-0 whitespace-nowrap font-semibold text-[#228DD7] peer-checked:hidden hover:cursor-pointer"),style:{color:v.accent}},{children:(null==y?void 0:y["see-input"])||"See input"})),s("label",Object.assign({htmlFor:`${A.sessionId}-input`,className:u($.b3,"hidden shrink-0 whitespace-nowrap font-semibold text-[#228DD7] peer-checked:flex hover:cursor-pointer"),style:{color:v.accent}},{children:(null==y?void 0:y["hide-input"])||"Hide input"}))]}))})),e("div",Object.assign({className:"flex gap-x-3 px-4 py-5",style:{backgroundColor:v.secondary,color:v.secondaryText}},{children:[j.isChatImage&&s(m,{src:null==b?void 0:b.chaticon,alt:`${null==b?void 0:b.formtitle}'s Chat Icon`,width:24,height:24,className:"h-6 w-6 pt-1",textColor:v.secondaryText}),e("div",Object.assign({className:"flex w-full flex-col gap-y-2"},{children:[s(c,Object.assign({theme:g.theme,colors:v},C&&{rtl:!0},k&&{disableHtml:!0},w&&{disableJs:!0},N&&{disableCss:!0},{disableReasoning:null!==(x=null==b?void 0:b.enablereasoningdisplay)&&void 0!==x&&x,onArtifactClick:M},{children:s(h,{className:"overflow-x-auto pb-2 font-semilight scrollbar scrollbar-thin",parts:A.question.responseParts})})),s("div",Object.assign({className:"flex flex-col"},{children:S?s("div",Object.assign({className:"flex items-center gap-x-2 rounded"},{children:Array.from({length:3}).map(((e,o)=>s("div",{className:u("h-1.5 w-1.5 animate-dot rounded-full",1===o&&"animate-dot-down"),style:{backgroundColor:v.secondaryText}},o)))})):e("div",Object.assign({className:"flex flex-wrap items-center justify-between gap-x-3 gap-y-1"},{children:[s("div",Object.assign({className:"flex items-center gap-3"},{children:s(f,{content:A.question.responseParts.filter((e=>e.isVisible&&"text"===e.type)).map((e=>e.content)).join("\n"),sessionId:A.sessionId,messagesCount:A.messageCount+1,onOpenChat:()=>{return e=A.sessionId,P([]),I(!1),void O(e);var e},isReadOut:!1})})),s("div",Object.assign({className:"flex shrink-0 grow justify-end"},{children:s("p",Object.assign({className:u($.b3,"font-semibold uppercase opacity-30")},{children:R}))}))]}))}))]}))]})),s(p,{})]})):null};export{x as default};
1
+ import{jsxs as e,jsx as s}from"react/jsx-runtime";import{useMemo as o}from"react";import{usePickaxeContext as t}from"../../../../hooks/pickaxe/usePickaxeContext.js";import{useResponseContext as i}from"../../../../hooks/pickaxe/useResponseContext.js";import{useStyleFontSize as n}from"../../../../hooks/studio/useStyleFontSize.js";import{useScrollContext as l}from"../../Addons/Scroll/hooks/useScrollContext.js";import{useDocument as a}from"../../Addons/Document/hooks/useDocument.js";import{useArtifact as r}from"../../Addons/Artifact/hooks/useArtifact.js";import{PickaxeMarkdown as c}from"../../common/PickaxeMarkdown/index.js";import{format as d}from"date-fns";import m from"../../common/PickaxeIcon.js";import p from"../../Addons/Scroll/ScrollLockView.js";import h from"../../common/PickaxeMessageParts/index.js";import u from"../../common/PickaxeMessageActions.js";import f from"../../../../common/cn.js";const x=()=>{var x,b,g,v,j;const{pickaxe:y,styles:k,colors:w,misc:N,translations:C,disableHtml:O,disableJs:I,disableCss:A,isRtl:S,setSessionId:D,setIsNewChat:P}=t(),{response:M,isGenerating:$}=i(),{scrollTargetRef:R}=l(),{setDocuments:T}=a(),{onLoadArtifact:q}=r(),H=n(),F=o((()=>d(M?M.sentAt:new Date,"hh:mm a MMM dd, yy")),[M]),L=o((()=>{var e,s;if(!M)return"";const o=(null==C?void 0:C["not-available"])||"n/a";return(null!==(s=null===(e=M.question)||void 0===e?void 0:e.inputs)&&void 0!==s?s:[]).map((e=>`<div style="display: flex; flex-direction: column; margin-bottom: 1em;">\n <p style="font-weight: 500;">${e.question}</p>\n <p>${e.answer||o}</p>\n</div>`)).join("")}),[M,C]);return M?e("div",Object.assign({ref:R,className:"flex flex-col shadow-black transition duration-300 hover:shadow"},{children:[s("div",Object.assign({className:"flex gap-x-3 overflow-hidden px-4 py-5",style:{backgroundColor:w.primary,color:w.text}},{children:e("div",Object.assign({className:"flex flex-col gap-y-1 overflow-x-auto pb-[6px] scrollbar scrollbar-thin"},{children:[s("input",{id:`${M.sessionId}-input`,type:"checkbox",className:"peer hidden",defaultChecked:L.length<280}),s("div",{className:"danger-html hidden flex-col opacity-50 peer-checked:flex",dangerouslySetInnerHTML:{__html:L}}),s("label",Object.assign({htmlFor:`${M.sessionId}-input`,className:f(H.b3,"mt-1 flex shrink-0 whitespace-nowrap font-semibold text-[#228DD7] peer-checked:hidden hover:cursor-pointer"),style:{color:w.accent}},{children:(null==C?void 0:C["see-input"])||"See input"})),s("label",Object.assign({htmlFor:`${M.sessionId}-input`,className:f(H.b3,"hidden shrink-0 whitespace-nowrap font-semibold text-[#228DD7] peer-checked:flex hover:cursor-pointer"),style:{color:w.accent}},{children:(null==C?void 0:C["hide-input"])||"Hide input"}))]}))})),e("div",Object.assign({className:"flex gap-x-3 px-4 py-5",style:{backgroundColor:w.secondary,color:w.secondaryText}},{children:[N.isChatImage&&s(m,{src:null==y?void 0:y.chaticon,alt:`${null==y?void 0:y.formtitle}'s Chat Icon`,width:24,height:24,className:"h-6 w-6 pt-1",textColor:w.secondaryText}),e("div",Object.assign({className:"flex w-full flex-col gap-y-2"},{children:[s(c,Object.assign({theme:k.theme,colors:w},S&&{rtl:!0},O&&{disableHtml:!0},I&&{disableJs:!0},A&&{disableCss:!0},{disableReasoning:null!==(x=null==y?void 0:y.enablereasoningdisplay)&&void 0!==x&&x,onArtifactClick:q},{children:s(h,{className:"overflow-x-auto pb-2 font-semilight scrollbar scrollbar-thin",parts:null!==(g=null===(b=M.question)||void 0===b?void 0:b.responseParts)&&void 0!==g?g:[]})})),s("div",Object.assign({className:"flex flex-col"},{children:$?s("div",Object.assign({className:"flex items-center gap-x-2 rounded"},{children:Array.from({length:3}).map(((e,o)=>s("div",{className:f("h-1.5 w-1.5 animate-dot rounded-full",1===o&&"animate-dot-down"),style:{backgroundColor:w.secondaryText}},o)))})):e("div",Object.assign({className:"flex flex-wrap items-center justify-between gap-x-3 gap-y-1"},{children:[s("div",Object.assign({className:"flex items-center gap-3"},{children:s(u,{content:(null!==(j=null===(v=M.question)||void 0===v?void 0:v.responseParts)&&void 0!==j?j:[]).filter((e=>e.isVisible&&"text"===e.type)).map((e=>e.content)).join("\n"),sessionId:M.sessionId,messagesCount:M.messageCount+1,onOpenChat:()=>{return e=M.sessionId,T([]),P(!1),void D(e);var e},isReadOut:!1})})),s("div",Object.assign({className:"flex shrink-0 grow justify-end"},{children:s("p",Object.assign({className:f(H.b3,"font-semibold uppercase opacity-30")},{children:F}))}))]}))}))]}))]})),s(p,{})]})):null};export{x as default};
@@ -1 +1 @@
1
- import{__awaiter as e}from"../../../_virtual/_tslib.js";import{jsxs as i,jsx as t}from"react/jsx-runtime";import{useCallback as s,useMemo as o}from"react";import{usePickaxeContext as r}from"../../../hooks/pickaxe/usePickaxeContext.js";import n from"./PickaxeButton.js";import{STUDIO_INFINITY_VALUE as l,intervalToSuffix as a}from"./PickaxeCommon.js";import{currencyOptions as c}from"./PickaxeCurrency.js";import{Avatar as d,AvatarImage as u,AvatarFallback as m}from"./PickaxeAvatar.js";import{useAuthContext as p}from"../Addons/Auth/hooks/useAuthContext.js";import f from"../../../common/api/pickaxe.js";import{buildUpgradeUrl as x,isInIframe as v}from"../../../common/utils.js";import{useResponseContext as g}from"../../../hooks/pickaxe/useResponseContext.js";import{useStudio as h}from"../../../hooks/studio/useStudio.js";const b=({data:b,children:j,upgradeUrl:k})=>{const{limitData:y}=g(),{studio:N}=h(),{colors:O,sender:w,pickaxe:C,translations:I,setValidationStatus:S,setStripeAccountId:U,setClientSecret:_}=r(),{token:A,setRedirectUrl:T}=p(),L=s(((e,i)=>{var t;return null!==(t=null==I?void 0:I[e])&&void 0!==t?t:i}),[I]),P=o((()=>{var e,i;return null!==(i=null!==(e=b.displayName)&&void 0!==e?e:b.name)&&void 0!==i?i:""}),[b]),R=o((()=>{var e,i;return null!==(i=null!==(e=b.displayDescription)&&void 0!==e?e:b.description)&&void 0!==i?i:""}),[b]),G=!!(null==N?void 0:N.data.usage)&&N.data.usage.isCredits,B=o((()=>{var e;const{price:i,priceInterval:t,currency:s}=b;if(!i)return{price:L("pricing.free",L("free","Free")),suffix:""};const o=a(null!=t?t:null,!0);return{price:`${(null!==(e=c.find((e=>e.id===s)))&&void 0!==e?e:c[0]).symbol}${i.toLocaleString()}`,suffix:o}}),[b,L]),D=o((()=>{const{limit:e,limitInterval:i}=b;if(e===l)return{limit:L("pricing.unlimited",L("unlimited","Unlimited")),suffix:""};const t=a(null!=i?i:null,!0);return{limit:e.toLocaleString(),suffix:t}}),[b,L]);return i("div",Object.assign({className:"relative flex min-h-[260px] w-[220px] shrink-0 snap-center flex-col justify-between rounded-xl border p-4 shadow-sm",style:{backgroundColor:O.secondary,color:O.secondaryText}},{children:[j,i("div",Object.assign({className:"flex flex-col"},{children:[i("div",Object.assign({className:"flex flex-col"},{children:[b.image&&i(d,Object.assign({className:"h-8 w-8"},{children:[t(u,{src:b.image,alt:P}),t(m,{})]})),t("p",Object.assign({className:"mt-2 text-sm font-semibold line-clamp-1",title:P},{children:P})),Boolean(R)&&t("p",Object.assign({className:"mt-1 text-[10px] opacity-70 line-clamp-2 leading-tight"},{children:R})),i("p",Object.assign({className:"mt-2 text-base font-semibold"},{children:[B.price,t("span",Object.assign({className:"text-xs font-normal opacity-70"},{children:B.suffix}))]}))]})),i("div",Object.assign({className:"mt-3 flex flex-col border-t py-2",style:{borderTopColor:O.secondaryText}},{children:[t("span",Object.assign({className:"text-[10px] font-bold opacity-50"},{children:G?(null==I?void 0:I.credits_upper)||"CREDITS":(null==I?void 0:I.uses_upper)||"USES"})),i("p",Object.assign({className:"text-base font-semibold"},{children:[D.limit,t("span",Object.assign({className:"text-xs font-normal opacity-70"},{children:D.suffix}))]}))]}))]})),t(n,Object.assign({variant:"primary",className:"w-full mt-2 min-h-[32px] text-xs",onClick:()=>e(void 0,void 0,void 0,(function*(){if(A)e(void 0,void 0,void 0,(function*(){try{const e=yield f.post("/access_group_checkout",{data:{studioUserId:w||void 0,studioId:null==C?void 0:C.studioid,accessGroupId:b.accessGroupId,successUrl:document.URL,isEmbed:v(),studioSessionToken:A}}),{success:i,url:t,clientSecret:s,stripeAccountId:o,error:r}=e.data;i?v()?s&&o?(U(o),_(s),S("stripe_checkout")):t&&window.open(t,"_blank"):t&&(window.location.href=t):alert(r)}catch(e){alert(e)}}));else{const e=x(Object.assign({baseUrl:k||(null==y?void 0:y.limitLink),accessGroupId:b.accessGroupId},!v()&&{redirectUrl:document.URL}));v()?(T(e||null),S("login_required")):e&&(window.location.href=e)}}))},{children:b.ctaButtonText||L("pricing.upgrade",L("upgrade","Upgrade"))}))]}))};export{b as default};
1
+ import{__awaiter as e}from"../../../_virtual/_tslib.js";import{jsxs as i,jsx as t}from"react/jsx-runtime";import{useCallback as s,useMemo as o}from"react";import{usePickaxeContext as r}from"../../../hooks/pickaxe/usePickaxeContext.js";import n from"./PickaxeButton.js";import{STUDIO_INFINITY_VALUE as l,intervalToSuffix as a}from"./PickaxeCommon.js";import{currencyOptions as c}from"./PickaxeCurrency.js";import{Avatar as d,AvatarImage as u,AvatarFallback as m}from"./PickaxeAvatar.js";import{useAuthContext as p}from"../Addons/Auth/hooks/useAuthContext.js";import{pickaxeApi2 as f}from"../../../common/api/pickaxe.js";import{buildUpgradeUrl as x,isInIframe as v}from"../../../common/utils.js";import{useResponseContext as g}from"../../../hooks/pickaxe/useResponseContext.js";import{useStudio as h}from"../../../hooks/studio/useStudio.js";const b=({data:b,children:j,upgradeUrl:k})=>{const{limitData:y}=g(),{studio:N}=h(),{colors:O,sender:w,pickaxe:C,translations:I,setValidationStatus:S,setStripeAccountId:U,setClientSecret:_}=r(),{token:A,setRedirectUrl:T}=p(),L=s(((e,i)=>{var t;return null!==(t=null==I?void 0:I[e])&&void 0!==t?t:i}),[I]),P=o((()=>{var e,i;return null!==(i=null!==(e=b.displayName)&&void 0!==e?e:b.name)&&void 0!==i?i:""}),[b]),R=o((()=>{var e,i;return null!==(i=null!==(e=b.displayDescription)&&void 0!==e?e:b.description)&&void 0!==i?i:""}),[b]),G=!!(null==N?void 0:N.data.usage)&&N.data.usage.isCredits,B=o((()=>{var e;const{price:i,priceInterval:t,currency:s}=b;if(!i)return{price:L("pricing.free",L("free","Free")),suffix:""};const o=a(null!=t?t:null,!0);return{price:`${(null!==(e=c.find((e=>e.id===s)))&&void 0!==e?e:c[0]).symbol}${i.toLocaleString()}`,suffix:o}}),[b,L]),D=o((()=>{const{limit:e,limitInterval:i}=b;if(e===l)return{limit:L("pricing.unlimited",L("unlimited","Unlimited")),suffix:""};const t=a(null!=i?i:null,!0);return{limit:e.toLocaleString(),suffix:t}}),[b,L]);return i("div",Object.assign({className:"relative flex min-h-[260px] w-[220px] shrink-0 snap-center flex-col justify-between rounded-xl border p-4 shadow-sm",style:{backgroundColor:O.secondary,color:O.secondaryText}},{children:[j,i("div",Object.assign({className:"flex flex-col"},{children:[i("div",Object.assign({className:"flex flex-col"},{children:[b.image&&i(d,Object.assign({className:"h-8 w-8"},{children:[t(u,{src:b.image,alt:P}),t(m,{})]})),t("p",Object.assign({className:"mt-2 text-sm font-semibold line-clamp-1",title:P},{children:P})),Boolean(R)&&t("p",Object.assign({className:"mt-1 text-[10px] opacity-70 line-clamp-2 leading-tight"},{children:R})),i("p",Object.assign({className:"mt-2 text-base font-semibold"},{children:[B.price,t("span",Object.assign({className:"text-xs font-normal opacity-70"},{children:B.suffix}))]}))]})),i("div",Object.assign({className:"mt-3 flex flex-col border-t py-2",style:{borderTopColor:O.secondaryText}},{children:[t("span",Object.assign({className:"text-[10px] font-bold opacity-50"},{children:G?(null==I?void 0:I.credits_upper)||"CREDITS":(null==I?void 0:I.uses_upper)||"USES"})),i("p",Object.assign({className:"text-base font-semibold"},{children:[D.limit,t("span",Object.assign({className:"text-xs font-normal opacity-70"},{children:D.suffix}))]}))]}))]})),t(n,Object.assign({variant:"primary",className:"w-full mt-2 min-h-[32px] text-xs",onClick:()=>e(void 0,void 0,void 0,(function*(){if(A)e(void 0,void 0,void 0,(function*(){try{const e=yield f.post("/access/checkout",{data:{studioUserId:w||void 0,studioId:null==C?void 0:C.studioid,accessGroupId:b.accessGroupId,successUrl:document.URL,isEmbed:v(),studioSessionToken:A}}),{success:i,url:t,clientSecret:s,stripeAccountId:o,error:r}=e.data;i?v()?s&&o?(U(o),_(s),S("stripe_checkout")):t&&window.open(t,"_blank"):t&&(window.location.href=t):alert(r)}catch(e){alert(e)}}));else{const e=x(Object.assign({baseUrl:k||(null==y?void 0:y.limitLink),accessGroupId:b.accessGroupId},!v()&&{redirectUrl:document.URL}));v()?(T(e||null),S("login_required")):e&&(window.location.href=e)}}))},{children:b.ctaButtonText||L("pricing.upgrade",L("upgrade","Upgrade"))}))]}))};export{b as default};
@@ -1 +1 @@
1
- import{__awaiter as e}from"../../../_virtual/_tslib.js";import{jsx as o,jsxs as s}from"react/jsx-runtime";import{useState as i,useMemo as t,useEffect as r}from"react";import{AnimatePresence as l}from"framer-motion";import{usePickaxeContext as n}from"../../../hooks/pickaxe/usePickaxeContext.js";import{useResponseContext as a}from"../../../hooks/pickaxe/useResponseContext.js";import{useStyleFontSize as c}from"../../../hooks/studio/useStyleFontSize.js";import{isInIframe as d,buildUpgradeUrl as u}from"../../../common/utils.js";import m from"../../Icons/circle-exclamation.svg.js";import p from"../../Core/SpringTransition.js";import v from"../../Core/HtmlRenderer.js";import f from"./PickaxeButton.js";import x from"../../../common/cn.js";import b from"../../../common/api/pickaxe.js";import{useAuthContext as g}from"../Addons/Auth/hooks/useAuthContext.js";import h from"./AccessGroupCardPreview.js";import{useStudio as y}from"../../../hooks/studio/useStudio.js";import{currencyOptions as k}from"./PickaxeCurrency.js";const j=({price:e,uses:i,isCredits:t,isSelected:r,costPerRun:l,onClick:n,colors:a,currencySymbol:c})=>{const d=`${c}${e}`,u={backgroundColor:a.secondary,color:a.secondaryText,borderColor:r?a.secondaryText:"rgba(0,0,0,0.1)"},m=t&&l?Math.ceil(i/l):0;return s("button",t?Object.assign({onClick:n,className:x("flex min-w-[200px] shrink-0 cursor-pointer flex-col rounded-[16px] px-6 py-5 text-left transition-all duration-200",r?"border-2 shadow-sm":"border opacity-80 hover:opacity-100"),style:u},{children:[s("div",Object.assign({className:"mb-4 flex items-center gap-2"},{children:[o("span",Object.assign({className:"text-[24px] font-semibold tracking-tight"},{children:d})),s("span",Object.assign({className:"text-[14px] font-light opacity-80"},{children:["/",i.toLocaleString()," credits"]}))]})),o("div",{className:"mb-4 h-[1px] w-full",style:{backgroundColor:a.secondaryText,opacity:.15}}),s("span",Object.assign({className:"text-[14px] italic opacity-70"},{children:["~ ",void 0!==m&&m>0?m.toLocaleString():"..."," ","runs"]}))]}):Object.assign({onClick:n,className:x("flex shrink-0 cursor-pointer items-center justify-center gap-2 rounded-[16px] px-5 py-3 transition-all duration-200",r?"border-2 shadow-sm":"border opacity-80 hover:opacity-100"),style:u},{children:[o("span",Object.assign({className:"text-[24px] font-semibold tracking-tight"},{children:d})),s("span",Object.assign({className:"text-[14px] font-light opacity-80"},{children:["/",i.toLocaleString()," uses"]}))]}))},w=(e,o)=>{var s,i;const t=Number(o?null!==(s=e.credits)&&void 0!==s?s:e.uses:null!==(i=e.uses)&&void 0!==i?i:e.credits);return Number.isFinite(t)?t:0},C=e=>{const o=Number(e.price);return Number.isFinite(o)?o:0},N=({className:N,iconClassName:O,htmlClassName:S})=>{var A,U,_,I;const{colors:L,pickaxe:P,sender:R,translations:G,setValidationStatus:T,setClientSecret:B,setStripeAccountId:F}=n(),{token:$,setRedirectUrl:M}=g(),{limitData:q}=a(),{studio:z}=y(),D=c(),[E,H]=i(0),[V,J]=i(null),K=null==z?void 0:z.data,Q=null==K?void 0:K.usage,W=Boolean(null==Q?void 0:Q.isCredits),X=null!==(U=null===(A=k.find((e=>e.id===(null==K?void 0:K.currency))))||void 0===A?void 0:A.symbol)&&void 0!==U?U:k[0].symbol,Y="string"==typeof(null==q?void 0:q.customLink)?q.customLink.trim():"",Z=t((()=>{if(Y)return[];const e=W?null==Q?void 0:Q.availableCredits:null==Q?void 0:Q.availableUses;if(Array.isArray(e)&&e.length>0)return e;const o=null==q?void 0:q.buyUses;return Array.isArray(o)?o:[]}),[Y,W,null==q?void 0:q.buyUses,null==Q?void 0:Q.availableCredits,null==Q?void 0:Q.availableUses]);r((()=>{H(0)}),[Z]);const ee=Z.length>0,oe=ee?Z[E]:void 0,se=oe?w(oe,W):0,ie=oe?C(oe):0;r((()=>{let o=!0;return e(void 0,void 0,void 0,(function*(){if(Y)J(null);else if(null==K?void 0:K.workspaceId)try{const e=yield b.get(`/cost_per_run?workspaceId=${K.workspaceId}`,{withCredentials:!1});if(o){const o=1e4*e.data.costPerRun||0;J(o)}}catch(e){console.error("Failed to fetch cost per run:",e),o&&J(0)}else J(0)})),()=>{o=!1}}),[Y,null==K?void 0:K.workspaceId,J]);const te=Y,re=(null===(_=null==q?void 0:q.limitCTA)||void 0===_?void 0:_.trim())||(null==G?void 0:G["pricing.upgrade"])||(null==G?void 0:G.upgrade)||"Upgrade",le=!Y&&Array.isArray(null==q?void 0:q.upgradeGroups)&&(null==q?void 0:q.upgradeGroups)&&(null==q?void 0:q.upgradeGroups.length)>0;return q?o(l,{children:s(p,Object.assign({className:x("flex flex-col gap-5 w-full",N)},{children:[s("div",Object.assign({className:"flex flex-col sm:flex-row gap-4 items-start sm:items-center justify-between rounded-lg p-3 bg-opacity-5",style:{backgroundColor:L.secondary}},{children:[s("div",Object.assign({className:"flex gap-3 items-start"},{children:[o(m,{className:x("h-5 w-5 shrink-0 mt-0.5",O),style:{color:L.accent}}),o(v,{className:x(D.b2,"font-semibold leading-relaxed text-sm",S),style:{color:L.text},html:q.limitMessage||""})]})),te&&o(f,Object.assign({variant:"primary",className:"whitespace-nowrap min-h-[32px] w-full sm:w-auto text-sm",onClick:()=>e(void 0,void 0,void 0,(function*(){window.open(te,"_blank","noopener,noreferrer")}))},{children:re}))]})),le&&s("div",Object.assign({className:"flex flex-col gap-2"},{children:[o("h3",Object.assign({className:"text-xs font-bold opacity-70 uppercase px-1",style:{color:L.text}},{children:(null==G?void 0:G["available-plans"])||"Available Plans"})),o("div",Object.assign({className:"flex flex-row gap-3 overflow-x-auto pb-4 pt-1 snap-x scrollbar-thin"},{children:null===(I=q.upgradeGroups)||void 0===I?void 0:I.map(((e,s)=>o(h,{data:e},e.accessGroupId||s)))}))]})),ee&&oe&&s("div",Object.assign({className:"flex flex-col gap-3"},{children:[s("h3",Object.assign({className:"text-xs font-bold opacity-70 uppercase px-1",style:{color:L.text}},{children:[(null==G?void 0:G.buy)||"Buy"," ",W?(null==G?void 0:G.credits)||"Credits":(null==G?void 0:G.uses)||"Uses"]})),o("div",Object.assign({className:"flex flex-row gap-3 overflow-x-auto pb-2 pt-1 snap-x scrollbar-thin"},{children:Z.map(((e,s)=>o(j,{price:C(e),uses:w(e,W),isCredits:W,costPerRun:V||void 0,isSelected:s===E,onClick:()=>H(s),colors:L,currencySymbol:X},s)))})),s(f,Object.assign({variant:"primary",className:"w-full py-3 text-sm font-bold shadow-md",onClick:()=>e(void 0,void 0,void 0,(function*(){if($){var o,s;o=se,s=ie,e(void 0,void 0,void 0,(function*(){try{const e=yield b.post("/get_extra_usage_payment_link",{data:{sender:R||void 0,studioSessionToken:$,studioId:null==P?void 0:P.studioid,cost:s,isEmbed:d(),extraUses:o,successUrl:document.URL}}),{success:i,url:t,clientSecret:r,stripeAccountId:l,error:n}=e.data;i?d()?r&&l?(F(l),B(r),T("stripe_checkout")):t&&window.open(t,"_blank"):t&&(window.location.href=t):alert(n)}catch(e){alert(e)}}))}else{const e=q.limitLink||te;if(d())M(e||null),T("login_required");else{const o=u({baseUrl:e,redirectUrl:document.URL});o&&(window.location.href=o)}}}))},{children:[(null==G?void 0:G.buy)||"Buy"," ",se.toLocaleString()," ",W?(null==G?void 0:G.credits)||"Credits":(null==G?void 0:G.uses)||"Uses"," ","for ",X,ie]}))]}))]}))}):null};export{N as default};
1
+ import{__awaiter as e}from"../../../_virtual/_tslib.js";import{jsx as o,jsxs as s}from"react/jsx-runtime";import{useState as i,useMemo as t,useEffect as r}from"react";import{AnimatePresence as l}from"framer-motion";import{usePickaxeContext as n}from"../../../hooks/pickaxe/usePickaxeContext.js";import{useResponseContext as a}from"../../../hooks/pickaxe/useResponseContext.js";import{useStyleFontSize as c}from"../../../hooks/studio/useStyleFontSize.js";import{isInIframe as d,buildUpgradeUrl as u}from"../../../common/utils.js";import m from"../../Icons/circle-exclamation.svg.js";import p from"../../Core/SpringTransition.js";import v from"../../Core/HtmlRenderer.js";import f from"./PickaxeButton.js";import x from"../../../common/cn.js";import{pickaxeApi2 as b}from"../../../common/api/pickaxe.js";import{useAuthContext as g}from"../Addons/Auth/hooks/useAuthContext.js";import h from"./AccessGroupCardPreview.js";import{useStudio as y}from"../../../hooks/studio/useStudio.js";import{currencyOptions as k}from"./PickaxeCurrency.js";const j=({price:e,uses:i,isCredits:t,isSelected:r,costPerRun:l,onClick:n,colors:a,currencySymbol:c})=>{const d=`${c}${e}`,u={backgroundColor:a.secondary,color:a.secondaryText,borderColor:r?a.secondaryText:"rgba(0,0,0,0.1)"},m=t&&l?Math.ceil(i/l):0;return s("button",t?Object.assign({onClick:n,className:x("flex min-w-[200px] shrink-0 cursor-pointer flex-col rounded-[16px] px-6 py-5 text-left transition-all duration-200",r?"border-2 shadow-sm":"border opacity-80 hover:opacity-100"),style:u},{children:[s("div",Object.assign({className:"mb-4 flex items-center gap-2"},{children:[o("span",Object.assign({className:"text-[24px] font-semibold tracking-tight"},{children:d})),s("span",Object.assign({className:"text-[14px] font-light opacity-80"},{children:["/",i.toLocaleString()," credits"]}))]})),o("div",{className:"mb-4 h-[1px] w-full",style:{backgroundColor:a.secondaryText,opacity:.15}}),s("span",Object.assign({className:"text-[14px] italic opacity-70"},{children:["~ ",void 0!==m&&m>0?m.toLocaleString():"..."," ","runs"]}))]}):Object.assign({onClick:n,className:x("flex shrink-0 cursor-pointer items-center justify-center gap-2 rounded-[16px] px-5 py-3 transition-all duration-200",r?"border-2 shadow-sm":"border opacity-80 hover:opacity-100"),style:u},{children:[o("span",Object.assign({className:"text-[24px] font-semibold tracking-tight"},{children:d})),s("span",Object.assign({className:"text-[14px] font-light opacity-80"},{children:["/",i.toLocaleString()," uses"]}))]}))},w=(e,o)=>{var s,i;const t=Number(o?null!==(s=e.credits)&&void 0!==s?s:e.uses:null!==(i=e.uses)&&void 0!==i?i:e.credits);return Number.isFinite(t)?t:0},C=e=>{const o=Number(e.price);return Number.isFinite(o)?o:0},N=({className:N,iconClassName:O,htmlClassName:S})=>{var A,U,_,I;const{colors:L,pickaxe:P,sender:R,translations:G,setValidationStatus:T,setClientSecret:B,setStripeAccountId:F}=n(),{token:$,setRedirectUrl:M}=g(),{limitData:q}=a(),{studio:z}=y(),D=c(),[E,H]=i(0),[V,J]=i(null),K=null==z?void 0:z.data,Q=null==K?void 0:K.usage,W=Boolean(null==Q?void 0:Q.isCredits),X=null!==(U=null===(A=k.find((e=>e.id===(null==K?void 0:K.currency))))||void 0===A?void 0:A.symbol)&&void 0!==U?U:k[0].symbol,Y="string"==typeof(null==q?void 0:q.customLink)?q.customLink.trim():"",Z=t((()=>{if(Y)return[];const e=W?null==Q?void 0:Q.availableCredits:null==Q?void 0:Q.availableUses;if(Array.isArray(e)&&e.length>0)return e;const o=null==q?void 0:q.buyUses;return Array.isArray(o)?o:[]}),[Y,W,null==q?void 0:q.buyUses,null==Q?void 0:Q.availableCredits,null==Q?void 0:Q.availableUses]);r((()=>{H(0)}),[Z]);const ee=Z.length>0,oe=ee?Z[E]:void 0,se=oe?w(oe,W):0,ie=oe?C(oe):0;r((()=>{let o=!0;return e(void 0,void 0,void 0,(function*(){if(Y)J(null);else if(null==K?void 0:K.workspaceId)try{const e=yield b.get(`/cost_per_run?workspaceId=${K.workspaceId}`,{withCredentials:!1});if(o){const o=1e4*e.data.costPerRun||0;J(o)}}catch(e){console.error("Failed to fetch cost per run:",e),o&&J(0)}else J(0)})),()=>{o=!1}}),[Y,null==K?void 0:K.workspaceId,J]);const te=Y,re=(null===(_=null==q?void 0:q.limitCTA)||void 0===_?void 0:_.trim())||(null==G?void 0:G["pricing.upgrade"])||(null==G?void 0:G.upgrade)||"Upgrade",le=!Y&&Array.isArray(null==q?void 0:q.upgradeGroups)&&(null==q?void 0:q.upgradeGroups)&&(null==q?void 0:q.upgradeGroups.length)>0;return q?o(l,{children:s(p,Object.assign({className:x("flex flex-col gap-5 w-full",N)},{children:[s("div",Object.assign({className:"flex flex-col sm:flex-row gap-4 items-start sm:items-center justify-between rounded-lg p-3 bg-opacity-5",style:{backgroundColor:L.secondary}},{children:[s("div",Object.assign({className:"flex gap-3 items-start"},{children:[o(m,{className:x("h-5 w-5 shrink-0 mt-0.5",O),style:{color:L.accent}}),o(v,{className:x(D.b2,"font-semibold leading-relaxed text-sm",S),style:{color:L.text},html:q.limitMessage||""})]})),te&&o(f,Object.assign({variant:"primary",className:"whitespace-nowrap min-h-[32px] w-full sm:w-auto text-sm",onClick:()=>e(void 0,void 0,void 0,(function*(){window.open(te,"_blank","noopener,noreferrer")}))},{children:re}))]})),le&&s("div",Object.assign({className:"flex flex-col gap-2"},{children:[o("h3",Object.assign({className:"text-xs font-bold opacity-70 uppercase px-1",style:{color:L.text}},{children:(null==G?void 0:G["available-plans"])||"Available Plans"})),o("div",Object.assign({className:"flex flex-row gap-3 overflow-x-auto pb-4 pt-1 snap-x scrollbar-thin"},{children:null===(I=q.upgradeGroups)||void 0===I?void 0:I.map(((e,s)=>o(h,{data:e},e.accessGroupId||s)))}))]})),ee&&oe&&s("div",Object.assign({className:"flex flex-col gap-3"},{children:[s("h3",Object.assign({className:"text-xs font-bold opacity-70 uppercase px-1",style:{color:L.text}},{children:[(null==G?void 0:G.buy)||"Buy"," ",W?(null==G?void 0:G.credits)||"Credits":(null==G?void 0:G.uses)||"Uses"]})),o("div",Object.assign({className:"flex flex-row gap-3 overflow-x-auto pb-2 pt-1 snap-x scrollbar-thin"},{children:Z.map(((e,s)=>o(j,{price:C(e),uses:w(e,W),isCredits:W,costPerRun:V||void 0,isSelected:s===E,onClick:()=>H(s),colors:L,currencySymbol:X},s)))})),s(f,Object.assign({variant:"primary",className:"w-full py-3 text-sm font-bold shadow-md",onClick:()=>e(void 0,void 0,void 0,(function*(){if($){var o,s;o=se,s=ie,e(void 0,void 0,void 0,(function*(){try{const e=yield b.post("/billing/extra_usage_payment_link",{data:{sender:R||void 0,studioSessionToken:$,studioId:null==P?void 0:P.studioid,cost:s,isEmbed:d(),extraUses:o,successUrl:document.URL}}),{success:i,url:t,clientSecret:r,stripeAccountId:l,error:n}=e.data;i?d()?r&&l?(F(l),B(r),T("stripe_checkout")):t&&window.open(t,"_blank"):t&&(window.location.href=t):alert(n)}catch(e){alert(e)}}))}else{const e=q.limitLink||te;if(d())M(e||null),T("login_required");else{const o=u({baseUrl:e,redirectUrl:document.URL});o&&(window.location.href=o)}}}))},{children:[(null==G?void 0:G.buy)||"Buy"," ",se.toLocaleString()," ",W?(null==G?void 0:G.credits)||"Credits":(null==G?void 0:G.uses)||"Uses"," ","for ",X,ie]}))]}))]}))}):null};export{N as default};
@@ -1 +1 @@
1
- import{__awaiter as e}from"../../../_virtual/_tslib.js";import{jsxs as t,jsx as o}from"react/jsx-runtime";import{useState as i,useRef as n,useMemo as r,useEffect as s}from"react";import l from"../../../common/error.js";import{Client as c}from"../../../node_modules/.pnpm/@modelcontextprotocol_sdk@1.20.2/node_modules/@modelcontextprotocol/sdk/dist/esm/client/index.js";import{StreamableHTTPClientTransport as a}from"../../../node_modules/.pnpm/@modelcontextprotocol_sdk@1.20.2/node_modules/@modelcontextprotocol/sdk/dist/esm/client/streamableHttp.js";import d from"../../Core/Button.js";import m from"../../Core/ErrorAlert.js";import{SmitheryAuthProvider as u}from"./SmitheryAuthProvider.js";import{v4 as p}from"uuid";import f from"../../../common/api/api.js";import{usePickaxeContext as h}from"../../../hooks/pickaxe/usePickaxeContext.js";import{isPickaxeDomain as v}from"../../../common/api/pickaxe.js";import{encryptFernet as g}from"../../../common/fernet.js";const x=({serverId:x,smitheryId:b,name:j,resubmitPrompt:_})=>{const{sender:O,translations:k}=h(),[N,y]=i(!0),[I,E]=i(!1),[S,C]=i(null),w=n(null),P=r((()=>p()),[]);s((()=>{let t=null;return I&&(t=setInterval((()=>e(void 0,void 0,void 0,(function*(){const e=yield f.post("/oauth/handshake/check",{sessionId:P}),{success:o,code:i}=e.data;if("failed"===i)return C((null==k?void 0:k["auth-failed"])||"Auth failed"),E(!1),void(t&&clearInterval(t));if(i&&o){t&&clearInterval(t);try{if(!w.current)throw new Error("Transport not available for finalization.");yield w.current.finishAuth(i)}catch(e){return console.error(e),C((null==k?void 0:k["failed-to-finalize-authentication"])||"Failed to finalize authentication."),void E(!1)}const e=localStorage.getItem("mcp_tokens"),o=localStorage.getItem("mcp_client");e&&o&&T(JSON.parse(e),JSON.parse(o))}}))),1e3)),()=>{t&&clearInterval(t)}}),[I]);const T=(t,o)=>e(void 0,void 0,void 0,(function*(){try{yield f.post("/mcp/user/save",{tokens:yield g(JSON.stringify(t)),clientId:o.client_id,serverId:x,userId:O},Object.assign(Object.assign({},(!process.env.NODE_ENV||"development"===process.env.NODE_ENV)&&Object.assign({},process.env.NEXT_PUBLIC_PICKAXE_SESSION_TOKEN&&{headers:{"x-pickaxe-session-token":process.env.NEXT_PUBLIC_PICKAXE_SESSION_TOKEN}})),v&&{credentials:"include"})),localStorage.removeItem("mcp_tokens"),localStorage.removeItem("mcp_client"),y(!1),_()}catch(e){C(l(e))}}));return N?t("div",Object.assign({className:"w-full bg-white border border-c-sep rounded-lg shadow-sm p-4 flex flex-col gap-4"},{children:[t("div",Object.assign({className:"flex flex-col gap-1"},{children:[o("h3",Object.assign({className:"font-semibold text-black/80 text-lg"},{children:(null==k?void 0:k["authentication-required"])||"Authentication Required"})),t("p",Object.assign({className:"text-black/60 text-sm"},{children:[(null==k?void 0:k["smithery-auth-description-prefix"])||"The tool you are trying to use requires authentication with"," ",o("span",Object.assign({className:"font-semibold text-black/80"},{children:j||b})),"."]}))]})),S&&o(m,{error:S}),t("div",Object.assign({className:"flex justify-end gap-2"},{children:[o(d,Object.assign({variant:"secondary",onClick:()=>y(!1),className:"text-sm px-3 h-9"},{children:(null==k?void 0:k.dismiss)||"Dismiss"})),o(d,Object.assign({variant:"primary",loadingText:(null==k?void 0:k.connecting)||"Connecting...",isLoading:I,onClick:()=>e(void 0,void 0,void 0,(function*(){if(!I)if("LOGGED OUT"!==O)try{C(null),E(!0);const e=new u(P),t=new a(new URL(`https://server.smithery.ai/${b}/mcp`),{authProvider:e});w.current=t;const o=new c({name:"Pickaxe",version:"1.0.0"});yield o.connect(t)}catch(e){console.log(l(e))}else C((null==k?void 0:k["must-be-logged-in-to-connect-smithery"])||"You must be logged in to connect Smithery MCPs.")})),className:"text-sm px-3 h-9"},{children:(null==k?void 0:k.connect)||"Connect"}))]}))]})):null};export{x as default};
1
+ import{__awaiter as e}from"../../../_virtual/_tslib.js";import{jsxs as t,jsx as o}from"react/jsx-runtime";import{useState as i,useRef as n,useMemo as r,useEffect as s}from"react";import l from"../../../common/error.js";import{Client as c}from"../../../node_modules/.pnpm/@modelcontextprotocol_sdk@1.20.2/node_modules/@modelcontextprotocol/sdk/dist/esm/client/index.js";import{StreamableHTTPClientTransport as a}from"../../../node_modules/.pnpm/@modelcontextprotocol_sdk@1.20.2/node_modules/@modelcontextprotocol/sdk/dist/esm/client/streamableHttp.js";import d from"../../Core/Button.js";import m from"../../Core/ErrorAlert.js";import{SmitheryAuthProvider as u}from"./SmitheryAuthProvider.js";import{v4 as p}from"uuid";import{api2 as f}from"../../../common/api/api.js";import{pickaxeApi2 as h,isPickaxeDomain as v}from"../../../common/api/pickaxe.js";import{usePickaxeContext as g}from"../../../hooks/pickaxe/usePickaxeContext.js";import{encryptFernet as x}from"../../../common/fernet.js";const b=({serverId:b,smitheryId:j,name:_,resubmitPrompt:O})=>{const{sender:k,translations:N}=g(),[y,I]=i(!0),[E,S]=i(!1),[C,w]=i(null),P=n(null),T=r((()=>p()),[]);s((()=>{let t=null;return E&&(t=setInterval((()=>e(void 0,void 0,void 0,(function*(){const e=yield f.post("/oauth/handshake/check",{sessionId:T}),{success:o,code:i}=e.data;if("failed"===i)return w((null==N?void 0:N["auth-failed"])||"Auth failed"),S(!1),void(t&&clearInterval(t));if(i&&o){t&&clearInterval(t);try{if(!P.current)throw new Error("Transport not available for finalization.");yield P.current.finishAuth(i)}catch(e){return console.error(e),w((null==N?void 0:N["failed-to-finalize-authentication"])||"Failed to finalize authentication."),void S(!1)}const e=localStorage.getItem("mcp_tokens"),o=localStorage.getItem("mcp_client");e&&o&&A(JSON.parse(e),JSON.parse(o))}}))),1e3)),()=>{t&&clearInterval(t)}}),[E]);const A=(t,o)=>e(void 0,void 0,void 0,(function*(){try{yield h.post("/mcp/user/save",{tokens:yield x(JSON.stringify(t)),clientId:o.client_id,serverId:b,userId:k},Object.assign(Object.assign({},(!process.env.NODE_ENV||"development"===process.env.NODE_ENV)&&Object.assign({},process.env.NEXT_PUBLIC_PICKAXE_SESSION_TOKEN&&{headers:{"x-pickaxe-session-token":process.env.NEXT_PUBLIC_PICKAXE_SESSION_TOKEN}})),v&&{credentials:"include"})),localStorage.removeItem("mcp_tokens"),localStorage.removeItem("mcp_client"),I(!1),O()}catch(e){w(l(e))}}));return y?t("div",Object.assign({className:"w-full bg-white border border-c-sep rounded-lg shadow-sm p-4 flex flex-col gap-4"},{children:[t("div",Object.assign({className:"flex flex-col gap-1"},{children:[o("h3",Object.assign({className:"font-semibold text-black/80 text-lg"},{children:(null==N?void 0:N["authentication-required"])||"Authentication Required"})),t("p",Object.assign({className:"text-black/60 text-sm"},{children:[(null==N?void 0:N["smithery-auth-description-prefix"])||"The tool you are trying to use requires authentication with"," ",o("span",Object.assign({className:"font-semibold text-black/80"},{children:_||j})),"."]}))]})),C&&o(m,{error:C}),t("div",Object.assign({className:"flex justify-end gap-2"},{children:[o(d,Object.assign({variant:"secondary",onClick:()=>I(!1),className:"text-sm px-3 h-9"},{children:(null==N?void 0:N.dismiss)||"Dismiss"})),o(d,Object.assign({variant:"primary",loadingText:(null==N?void 0:N.connecting)||"Connecting...",isLoading:E,onClick:()=>e(void 0,void 0,void 0,(function*(){if(!E)if("LOGGED OUT"!==k)try{w(null),S(!0);const e=new u(T),t=new a(new URL(`https://server.smithery.ai/${j}/mcp`),{authProvider:e});P.current=t;const o=new c({name:"Pickaxe",version:"1.0.0"});yield o.connect(t)}catch(e){console.log(l(e))}else w((null==N?void 0:N["must-be-logged-in-to-connect-smithery"])||"You must be logged in to connect Smithery MCPs.")})),className:"text-sm px-3 h-9"},{children:(null==N?void 0:N.connect)||"Connect"}))]}))]})):null};export{b as default};