@customer-agent/sdk 0.5.8 → 0.5.9-test.b11d65cb70ee

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/sdk.js CHANGED
@@ -1 +1 @@
1
- (function(){var e=`0.5.8`;function t(){typeof window>`u`||(window.__customerAgentVersion=e)}var n=`__customerAgentRuntime`,r=`__customerAgentScript`,i=typeof document<`u`&&document.currentScript instanceof HTMLScriptElement?document.currentScript:null,a=[];t();var o=`idle`,s=null,c=null;function l(e){return typeof e==`object`&&!!e}function u(e){return Array.prototype.slice.call(e)}function d(){let e=i?.src??new URL(`sdk.js`,window.location.href).toString();return new URL(`runtime.es.js`,e).toString()}function f(e){let t=e.CustomerAgent??e.default;if(typeof t!=`function`)throw Error(`CustomerAgent widget runtime module did not export CustomerAgent.`);return Object.assign(t,{[n]:!0})}function p(){if(!s)return;let e=a.splice(0);for(let t of e)t(s)}async function m(){return o===`ready`&&s?s:o===`loading`&&c?await c:(o=`loading`,c=import(d()).then(e=>(s=f(e),window.CustomerAgent=s,o=`ready`,p(),s)).catch(e=>{throw o=`failed`,c=null,console.error(`CustomerAgent widget runtime failed to load.`,e),e}),await c)}function h(e){if(s){e(s);return}a.push(e),m().catch(()=>{})}function g(e,t){h(n=>{let r=n[e];typeof r==`function`&&r(...t)})}function _(e){return h(t=>{t(`boot`,e)}),R}async function v(){return await(await m()).ensureInvitation()}async function y(e){return await(await m()).startInvitation(e)}async function b(){return await(await m()).startInterview()}async function x(e,t){await(await m()).chooseInvitation(e,t)}async function S(e){await(await m()).sendInterviewMessage(e)}async function C(e){return await(await m()).loadInterviewReward(e)}function w(e){g(`update`,[e])}function T(e){g(`show`,[e])}function E(){g(`hide`,[])}function D(e){g(`toggle`,[e])}function O(e){g(`openEntry`,[e])}function k(){g(`shutdown`,[])}function A(e){g(`identify`,[e])}function j(e,t){g(`setContext`,[e,t])}async function M(){return await(await m()).getSession()}function N(){return s?.getSupportState()??null}function P(){return s?.getInterviewState()??null}function F(){return s?.getInterviewSession()??null}function I(){return s?.getState()??null}function L(e,t){let n=!0,r=()=>{};return h(i=>{n&&(r=i.on(e,t))}),()=>{n=!1,r()}}var R={chooseInvitation:x,async ensureInvitation(){let e=await v();if(!e)throw Error(`CustomerAgent widget is not initialized.`);return e},getInterviewState(){let e=P();if(!e)throw Error(`CustomerAgent widget is not initialized.`);return e},getInterviewSession(){return F()},async getSession(){let e=await M();if(!e)throw Error(`CustomerAgent widget is not initialized.`);return e},getState(){let e=I();if(!e)throw Error(`CustomerAgent widget is not initialized.`);return e},getSupportState(){let e=N();if(!e)throw Error(`CustomerAgent widget is not initialized.`);return e},hide:E,identify:A,on:L,openEntry:O,loadInterviewReward:C,sendInterviewMessage:S,setContext:j,show:T,shutdown:k,async startInterview(){let e=await b();if(!e)throw Error(`CustomerAgent widget is not initialized.`);return e},async startInvitation(e){let t=await y(e);if(!t)throw Error(`CustomerAgent widget is not initialized.`);return t},toggle:D,update:w};function z(e,...t){switch(e){case`boot`:return _(t[0]);case`chooseInvitation`:return x(t[0],t[1]);case`ensureInvitation`:return v();case`getSession`:return M();case`getState`:return I();case`getSupportState`:return N();case`getInterviewState`:return P();case`getInterviewSession`:return F();case`hide`:return E();case`identify`:return A(t[0]);case`on`:return L(t[0],t[1]);case`openEntry`:return O(t[0]);case`loadInterviewReward`:return C(t[0]);case`sendInterviewMessage`:return S(t[0]);case`setContext`:return j(t[0],t[1]);case`show`:return T(t[0]);case`shutdown`:return k();case`startInvitation`:return y(t[0]);case`startInterview`:return b();case`toggle`:return D(t[0]);case`update`:return w(t[0]);default:throw Error(`CustomerAgent received an unknown command: ${String(e)}.`)}}var B=Object.assign(z,{[r]:!0,boot:_,chooseInvitation:x,ensureInvitation:v,getInterviewState:P,getInterviewSession:F,getSession:M,getState:I,getSupportState:N,hide:E,identify:A,on:L,openEntry:O,loadInterviewReward:C,sendInterviewMessage:S,setContext:j,show:T,shutdown:k,startInterview:b,startInvitation:y,toggle:D,update:w});function V(e){if(!l(e))return!1;let t=e.q;if(!Array.isArray(t)||t.length===0)return!1;for(let e of t)z(...u(e));return!0}function H(){if(!i)return;let e=i.dataset.appId;e&&B(`boot`,{app_id:e,open_on_init:i.dataset.open===`true`,position:i.dataset.position===`bottom-left`?`bottom-left`:`bottom-right`})}if(typeof window<`u`){let e=window.CustomerAgent;window.CustomerAgent=B,V(e)||H()}})();
1
+ (function(){var e=`0.5.9-test.b11d65cb70ee`;function t(){typeof window>`u`||(window.__customerAgentVersion=e)}var n=`__customerAgentRuntime`,r=`__customerAgentScript`,i=typeof document<`u`&&document.currentScript instanceof HTMLScriptElement?document.currentScript:null,a=[];t();var o=`idle`,s=null,c=null;function l(e){return typeof e==`object`&&!!e}function u(e){return Array.prototype.slice.call(e)}function d(){let e=i?.src??new URL(`sdk.js`,window.location.href).toString();return new URL(`runtime.es.js`,e).toString()}function f(e){let t=e.CustomerAgent??e.default;if(typeof t!=`function`)throw Error(`CustomerAgent widget runtime module did not export CustomerAgent.`);return Object.assign(t,{[n]:!0})}function p(){if(!s)return;let e=a.splice(0);for(let t of e)t(s)}async function m(){return o===`ready`&&s?s:o===`loading`&&c?await c:(o=`loading`,c=import(d()).then(e=>(s=f(e),window.CustomerAgent=s,o=`ready`,p(),s)).catch(e=>{throw o=`failed`,c=null,console.error(`CustomerAgent widget runtime failed to load.`,e),e}),await c)}function h(e){if(s){e(s);return}a.push(e),m().catch(()=>{})}function g(e,t){h(n=>{let r=n[e];typeof r==`function`&&r(...t)})}function _(e){return h(t=>{t(`boot`,e)}),R}async function v(){return await(await m()).ensureInvitation()}async function y(e){return await(await m()).startInvitation(e)}async function b(){return await(await m()).startInterview()}async function x(e,t){await(await m()).chooseInvitation(e,t)}async function S(e){await(await m()).sendInterviewMessage(e)}async function C(e){return await(await m()).loadInterviewReward(e)}function w(e){g(`update`,[e])}function T(e){g(`show`,[e])}function E(){g(`hide`,[])}function D(e){g(`toggle`,[e])}function O(e){g(`openEntry`,[e])}function k(){g(`shutdown`,[])}function A(e){g(`identify`,[e])}function j(e,t){g(`setContext`,[e,t])}async function M(){return await(await m()).getSession()}function N(){return s?.getSupportState()??null}function P(){return s?.getInterviewState()??null}function F(){return s?.getInterviewSession()??null}function I(){return s?.getState()??null}function L(e,t){let n=!0,r=()=>{};return h(i=>{n&&(r=i.on(e,t))}),()=>{n=!1,r()}}var R={chooseInvitation:x,async ensureInvitation(){let e=await v();if(!e)throw Error(`CustomerAgent widget is not initialized.`);return e},getInterviewState(){let e=P();if(!e)throw Error(`CustomerAgent widget is not initialized.`);return e},getInterviewSession(){return F()},async getSession(){let e=await M();if(!e)throw Error(`CustomerAgent widget is not initialized.`);return e},getState(){let e=I();if(!e)throw Error(`CustomerAgent widget is not initialized.`);return e},getSupportState(){let e=N();if(!e)throw Error(`CustomerAgent widget is not initialized.`);return e},hide:E,identify:A,on:L,openEntry:O,loadInterviewReward:C,sendInterviewMessage:S,setContext:j,show:T,shutdown:k,async startInterview(){let e=await b();if(!e)throw Error(`CustomerAgent widget is not initialized.`);return e},async startInvitation(e){let t=await y(e);if(!t)throw Error(`CustomerAgent widget is not initialized.`);return t},toggle:D,update:w};function z(e,...t){switch(e){case`boot`:return _(t[0]);case`chooseInvitation`:return x(t[0],t[1]);case`ensureInvitation`:return v();case`getSession`:return M();case`getState`:return I();case`getSupportState`:return N();case`getInterviewState`:return P();case`getInterviewSession`:return F();case`hide`:return E();case`identify`:return A(t[0]);case`on`:return L(t[0],t[1]);case`openEntry`:return O(t[0]);case`loadInterviewReward`:return C(t[0]);case`sendInterviewMessage`:return S(t[0]);case`setContext`:return j(t[0],t[1]);case`show`:return T(t[0]);case`shutdown`:return k();case`startInvitation`:return y(t[0]);case`startInterview`:return b();case`toggle`:return D(t[0]);case`update`:return w(t[0]);default:throw Error(`CustomerAgent received an unknown command: ${String(e)}.`)}}var B=Object.assign(z,{[r]:!0,boot:_,chooseInvitation:x,ensureInvitation:v,getInterviewState:P,getInterviewSession:F,getSession:M,getState:I,getSupportState:N,hide:E,identify:A,on:L,openEntry:O,loadInterviewReward:C,sendInterviewMessage:S,setContext:j,show:T,shutdown:k,startInterview:b,startInvitation:y,toggle:D,update:w});function V(e){if(!l(e))return!1;let t=e.q;if(!Array.isArray(t)||t.length===0)return!1;for(let e of t)z(...u(e));return!0}function H(){if(!i)return;let e=i.dataset.appId;e&&B(`boot`,{app_id:e,open_on_init:i.dataset.open===`true`,position:i.dataset.position===`bottom-left`?`bottom-left`:`bottom-right`})}if(typeof window<`u`){let e=window.CustomerAgent;window.CustomerAgent=B,V(e)||H()}})();
@@ -1,2 +0,0 @@
1
- import{t as e}from"./constants-DXEyOFKW.js";import{r as t}from"./interviewTypes-Ch2NsXKB.js";import{t as n}from"./i18n-Q8u2wtW4.js";import{r}from"../runtime.es.js";import{t as i}from"./react-CKmEJ8Ba.js";import{A as a,C as o,D as s,E as c,O as l,S as u,T as d,_ as ee,a as f,c as p,d as m,g as h,i as g,j as _,l as v,o as y,p as b,s as x,t as S,u as C,v as w,w as T,y as te}from"./WidgetComposer-BtlsItsm.js";import{n as ne}from"./conversationRegistry-Y5Ouo35n.js";import{t as E}from"./jsx-runtime-S2ZBQkZm.js";import{t as D}from"./classNames-3q0x02_x.js";var O=r(i(),1),k=E();function A(e){return Array.isArray(e.content)?e.content.map(e=>e.type===`text`?e.text:``).filter(Boolean).join(`
2
- `):String(e.content??``)}function j(e){return e instanceof Date&&!Number.isNaN(e.getTime())}function M(e){let t=e.createdAt;if(j(t))return t;if(typeof t==`string`||typeof t==`number`){let e=new Date(t);if(j(e))return e}return new Date}function N(e,t){let r=Math.max(0,Date.now()-e.getTime()),i=6e4,a=60*i,o=24*a;return r<i?t.messages.relative_time_now:r<a?n(t.messages.relative_time_minute,{count:String(Math.floor(r/i))}):r<o?n(t.messages.relative_time_hour,{count:String(Math.floor(r/a))}):n(t.messages.relative_time_day,{count:String(Math.floor(r/o))})}function P(e,t,n,r){let i=[n.getFullYear(),n.getMonth()+1,n.getDate()].map(e=>String(e).padStart(2,`0`)).join(`_`);return`${(e??`Customer Agent`).trim().replace(/[^a-z0-9\u4e00-\u9fa5]+/gi,`_`).replace(/^_+|_+$/g,``)||`Customer_Agent`}_${t}_${i}_${r}.txt`}function F(e){let t=`var(--messenger-conversation-part-radius)`;return{borderBottomLeftRadius:t,borderBottomRightRadius:t,borderTopLeftRadius:t,borderTopRightRadius:t}}function I({controller:n,eventBus:r,locale:i,description:u=i.messages.interview_session_description,isExpanded:f=!1,isOpen:p=!0,onDownloadTranscript:g,onOpenMobileDock:v,onToggleExpanded:y,title:x,transcriptAppName:S=x,visitorName:C=`You`,viewportMode:E=`desktop`}){let[j,I]=(0,O.useState)(()=>n.getState()),[L,R]=(0,O.useState)(!1),[z,B]=(0,O.useState)({}),V=(0,O.useRef)(null),H=(0,O.useRef)(!1),U=(0,O.useRef)(null),W=(0,O.useRef)(new Set),G=(0,O.useRef)(j.phase),K=(0,O.useRef)(!1),q=d({convertMessage:e=>e,isRunning:j.phase===b.SENDING,isSendDisabled:j.phase===b.SENDING||j.phase===b.TERMINAL,messages:j.messages,async onNew(t){let i=A(t).trim(),a=n.getState().sessionId;if(!i||!a)return;let o={conversationId:`interview/session/${a}`,conversationType:`interview`,entryId:`interview/session/${a}`,interviewSessionId:a},s=`interview-user-${Date.now()}`;r?.emit(e.MESSAGE_SENT,{...o,messageId:s,role:`user`}),r?.emit(e.MESSAGE_STARTED,{...o,role:`assistant`});try{await n.sendMessage(i);let t=[...n.getState().messages].reverse().find(e=>e.role===`assistant`);r?.emit(e.MESSAGE_COMPLETED,{...o,messageId:t?.id??`interview-assistant-${Date.now()}`,role:`assistant`})}catch(t){throw r?.emit(e.MESSAGE_FAILED,{...o,role:`assistant`}),t}}}),J=[...j.messages].reverse().find(e=>e.role===`assistant`&&A(e).trim())?.id??null,Y=j.messages.some(e=>A(e).trim());(0,O.useEffect)(()=>n.subscribe(I),[n]),(0,O.useEffect)(()=>{if(!L)return;function e(e){let t=e.target;t instanceof Node&&(U.current?.contains(t)||R(!1))}return document.addEventListener(`pointerdown`,e,!0),()=>document.removeEventListener(`pointerdown`,e,!0)},[L]),(0,O.useEffect)(()=>{if(j.phase===b.TERMINAL&&j.status===t.COMPLETED&&j.sessionId){if(W.current.has(j.sessionId))return;W.current.add(j.sessionId);let t={conversationId:`interview/session/${j.sessionId}`,conversationType:`interview`,entryId:`interview/session/${j.sessionId}`,interviewSessionId:j.sessionId};r?.emit(e.INTERVIEW_SESSION_COMPLETED,{...t,status:j.status}),n.loadReward(j.sessionId).then(n=>{r?.emit(e.INTERVIEW_REWARD_UPDATED,{...t,reward:n})}).catch(e=>{console.error(`CustomerAgent interview reward request failed.`,e)})}},[n,r,j.phase,j.sessionId,j.status]);let X=(0,O.useCallback)(()=>{let e=V.current;if(!e||e.disabled||E===`mobile`)return!1;let t=e.value.length;return e.focus(),e.setSelectionRange(t,t),document.activeElement===e},[E]),Z=(0,O.useCallback)(()=>{let e=0,t=0;function n(){if(K.current&&j.phase===b.ACTIVE){if(X()){K.current=!1;return}e+=1,e<6&&(t=window.requestAnimationFrame(n))}}return t=window.requestAnimationFrame(n),()=>window.cancelAnimationFrame(t)},[X,j.phase]);(0,O.useEffect)(()=>{let e=G.current;G.current=j.phase;let t=V.current?.closest(`form`),n=document.activeElement,r=n instanceof HTMLElement&&!!t?.contains(n);if(j.phase===b.TERMINAL){K.current=!1,r&&n.blur();return}if(j.phase===b.SENDING){e!==b.SENDING&&(K.current=r||e===b.ACTIVE),r&&n.blur();return}if(!(e!==b.SENDING||j.phase!==b.ACTIVE||!K.current))return Z()},[Z,j.phase]);let Q=(0,O.useCallback)(()=>{H.current||!p||E===`mobile`||j.phase!==b.ACTIVE||window.requestAnimationFrame(()=>{H.current||=X()})},[X,p,j.phase,E]);function ae(e){V.current=e,e&&Q()}(0,O.useEffect)(()=>{if(!p){H.current=!1;return}Q()},[Q,p]);function $(e,t){B(n=>({...n,[e]:!t}))}function oe(e,t,n){let r=e.target;r instanceof Element&&r.closest(`a, button`)||$(t,n)}function se(e,t,n){e.key!==`Enter`&&e.key!==` `||(e.preventDefault(),$(t,n))}function ce(){let t=new Date,n=t.getTime(),a=m({conversationName:x,exportedAt:t,exportSourceName:S,locale:i.locale,messages:j.messages.map(e=>({createdAt:M(e),role:e.role===`user`?`user`:`assistant`,text:A(e)})),userSpeaker:C}),o=new Blob([a],{type:`text/plain;charset=utf-8`}),s=URL.createObjectURL(o),c=document.createElement(`a`);c.href=s,c.download=P(S,`interview`,t,n),c.click(),window.setTimeout(()=>URL.revokeObjectURL(s),0),r?.emit(e.TRANSCRIPT_DOWNLOADED,{...j.sessionId?{conversationId:`interview/session/${j.sessionId}`,entryId:`interview/session/${j.sessionId}`,interviewSessionId:j.sessionId}:{},conversationType:`interview`,messageCount:j.messages.length}),g?.()}return(0,k.jsx)(o,{runtime:q,children:(0,k.jsxs)(`div`,{className:`flex min-h-0 flex-1 flex-col bg-bg-canvas`,"aria-label":x,"data-customer-agent-interview-chat":``,children:[(0,k.jsxs)(`header`,{className:D(`grid shrink-0 items-center gap-[var(--messenger-header-gap)] border-b border-border-divider bg-bg-canvas px-[var(--messenger-header-padding-x)] py-[var(--messenger-header-padding-y)]`,E===`mobile`?`grid-cols-[auto_auto_1fr_auto] pl-1`:`grid-cols-[auto_1fr_auto]`),"data-customer-agent-panel-header":``,children:[E===`mobile`?(0,k.jsx)(`button`,{className:`grid h-[var(--messenger-header-button-size)] w-6 cursor-pointer place-items-center rounded-md border-0 bg-transparent p-0 text-text-quaternary transition-colors hover:bg-gray-3 hover:text-text-primary focus-visible:outline-none focus-visible:shadow-none`,"aria-label":`Open conversations`,title:`Open conversations`,type:`button`,onClick:v,children:(0,k.jsx)(s,{size:16})}):null,(0,k.jsx)(`div`,{className:`grid h-[var(--messenger-header-avatar-size)] w-[var(--messenger-header-avatar-size)] place-items-center rounded-full bg-[var(--customer-agent-primary)] text-gray-1 shadow-[0_0_0_1px_var(--border-default)]`,"aria-hidden":`true`,children:(0,k.jsx)(ne,{size:16})}),(0,k.jsxs)(`div`,{className:`flex min-w-0 flex-col justify-center`,children:[(0,k.jsx)(`p`,{className:`m-0 truncate text-[length:var(--messenger-header-title-size)] font-semibold leading-[var(--messenger-header-title-line-height)]`,children:x}),(0,k.jsx)(`span`,{className:`block truncate text-[length:var(--messenger-header-subtitle-size)] leading-[var(--messenger-header-subtitle-line-height)] text-text-tertiary`,children:u})]}),Y||y?(0,k.jsx)(`div`,{className:`relative flex items-center gap-[var(--messenger-header-action-gap)] pr-[var(--messenger-header-button-size)]`,children:(0,k.jsxs)(`div`,{ref:U,onKeyDown:e=>{e.key===`Escape`&&(e.stopPropagation(),R(!1))},children:[(0,k.jsx)(`button`,{className:`grid h-[var(--messenger-header-button-size)] w-[var(--messenger-header-button-size)] cursor-pointer place-items-center rounded-[var(--messenger-header-button-radius)] border-0 bg-transparent text-text-quaternary transition-colors hover:bg-gray-3 hover:text-text-primary focus-visible:outline-none focus-visible:shadow-none data-[state=open]:bg-gray-3 data-[state=open]:text-text-primary`,"aria-expanded":L,"aria-haspopup":`menu`,"aria-label":i.messages.more_options,"data-state":L?`open`:`closed`,title:i.messages.more_options,type:`button`,onClick:()=>R(e=>!e),children:(0,k.jsx)(a,{size:16})}),L?(0,k.jsxs)(`div`,{className:`absolute top-[calc(100%+0.5rem)] right-[var(--messenger-header-button-size)] z-[var(--z-dropdown)] grid min-w-64 gap-1 rounded-lg border border-border-default bg-bg-elevated p-1 text-sm text-text-primary shadow-popover`,role:`menu`,children:[y?(0,k.jsxs)(`button`,{className:`flex w-full cursor-pointer items-center gap-2 rounded-md border-0 bg-transparent px-2 py-1.5 text-left text-sm text-text-secondary transition-colors hover:bg-gray-3 hover:text-text-primary focus-visible:outline-none focus-visible:shadow-[var(--shadow-focus)]`,role:`menuitem`,type:`button`,onClick:()=>{R(!1),y()},children:[f?(0,k.jsx)(c,{size:16}):(0,k.jsx)(l,{size:16}),(0,k.jsx)(`span`,{children:f?i.messages.collapse_window:i.messages.expand_window})]}):null,Y?(0,k.jsxs)(`button`,{className:`flex w-full cursor-pointer items-center gap-2 rounded-md border-0 bg-transparent px-2 py-1.5 text-left text-sm text-text-secondary transition-colors hover:bg-gray-3 hover:text-text-primary focus-visible:outline-none focus-visible:shadow-[var(--shadow-focus)]`,role:`menuitem`,type:`button`,onClick:()=>{R(!1),ce()},children:[(0,k.jsx)(_,{size:16}),(0,k.jsx)(`span`,{children:i.messages.download_transcript})]}):null]}):null]})}):(0,k.jsx)(`div`,{className:`h-[var(--messenger-header-button-size)] w-[var(--messenger-header-button-size)]`,"aria-hidden":`true`})]}),(0,k.jsx)(ee,{className:`relative flex min-h-0 flex-1 flex-col overflow-hidden bg-bg-canvas`,children:(0,k.jsx)(h,{className:`customer-agent-thread-viewport min-h-0 flex-1 overflow-y-auto bg-bg-canvas [scrollbar-width:none] [&::-webkit-scrollbar]:hidden [&>[data-radix-scroll-area-content]]:flex [&>[data-radix-scroll-area-content]]:min-h-full [&>[data-radix-scroll-area-content]]:flex-col [&>[data-radix-scroll-area-content]]:self-stretch [&>[data-radix-scroll-area-content]]:bg-inherit [&>div]:flex [&>div]:min-h-full [&>div]:flex-col [&>div]:self-stretch [&>div]:bg-inherit`,"data-customer-agent-thread-viewport":``,"aria-live":`polite`,autoScroll:!0,role:`log`,children:(0,k.jsxs)(`div`,{className:D(`flex min-h-full flex-col px-[var(--messenger-conversation-horizontal-padding)] pt-3`,`customer-agent-message-list`),"data-customer-agent-message-list":``,children:[(0,k.jsx)(T,{children:({message:e})=>{let t=e,n=A(t),r=e.role===`user`?`user`:`assistant`,a=r===`assistant`,o=t.id??`${r}:${n}`,s=M(t),c=a&&(z[o]??o===J);return n?(0,k.jsxs)(te,{className:r===`user`?`mt-[var(--messenger-conversation-part-stack-gap)] flex max-w-[var(--messenger-conversation-part-max-width)] flex-col self-end items-end`:`mt-[var(--messenger-conversation-part-stack-gap)] flex max-w-[var(--messenger-conversation-part-max-width)] flex-col self-start items-start`,"aria-expanded":a?c:void 0,"data-message-role":r,role:a?`button`:void 0,tabIndex:a?0:void 0,onClick:a?e=>oe(e,o,c):void 0,onKeyDown:a?e=>se(e,o,c):void 0,children:[(0,k.jsx)(`div`,{className:r===`user`?`w-fit max-w-full whitespace-pre-wrap bg-[var(--customer-agent-primary)] px-[var(--messenger-conversation-part-padding-x)] py-[var(--messenger-conversation-part-padding-y)] text-base leading-5 text-gray-1`:`w-fit max-w-full whitespace-pre-wrap bg-gray-3 px-[var(--messenger-conversation-part-padding-x)] py-[var(--messenger-conversation-part-padding-y)] text-base leading-5 text-text-secondary`,style:F(r),children:(0,k.jsx)(w,{children:({part:e})=>e.type===`text`?(0,k.jsx)(`span`,{children:e.text}):null})}),r===`assistant`?(0,k.jsxs)(`span`,{className:D(`overflow-hidden px-[var(--messenger-conversation-part-padding-x)] text-sm leading-5 text-text-tertiary transition-[max-height,opacity,transform,margin] duration-200 ease-out`,c?`mt-1 max-h-5 translate-y-0 opacity-100`:`mt-0 max-h-0 -translate-y-1 opacity-0`),"data-state":c?`visible`:`hidden`,"data-testid":`interview-message-metadata`,children:[x,` · `,i.messages.assistant_author_ai,` ·`,` `,N(s,i)]}):null]}):null}}),j.phase===b.SENDING?(0,k.jsx)(ie,{}):null]})})}),(0,k.jsx)(re,{inputRef:V,isHidden:j.phase===b.SENDING||j.phase===b.TERMINAL,locale:i,onInputRef:ae})]})})}function re({inputRef:e,isHidden:t,locale:n,onInputRef:r}){let i=u().composer,a=C({composerRuntime:i,inputRef:e});return(0,k.jsxs)(x,{className:D(`relative z-[var(--z-composer)] shrink-0 bg-transparent px-[var(--messenger-conversation-horizontal-padding)] pt-0 pb-[max(1rem,calc(1rem+var(--customer-agent-bottom-inset)))]`,`-mt-[var(--messenger-radius)]`),isHidden:t,onSubmit:a.closeEmojiPicker,children:[(0,k.jsx)(y,{inputAriaLabel:n.messages.message_aria_label,inputRef:r,placeholder:n.messages.interview_input_placeholder}),(0,k.jsxs)(S,{children:[(0,k.jsx)(v,{children:(0,k.jsx)(f,{hostRef:a.emojiPickerHostRef,isLoading:a.isEmojiPickerLoading,open:a.isEmojiPickerOpen,onOpenChange:a.onEmojiOpenChange,children:(0,k.jsx)(g,{emojiLabel:n.messages.add_emoji})})}),(0,k.jsx)(p,{sendLabel:n.messages.send_message})]})]})}function ie(){return(0,k.jsx)(`div`,{className:`mt-[var(--messenger-conversation-part-stack-gap)] flex max-w-[var(--messenger-conversation-part-max-width)] flex-col self-start items-start`,"data-message-role":`assistant`,"data-testid":`interview-thinking-bubble`,children:(0,k.jsx)(`div`,{className:`w-fit max-w-full whitespace-pre-wrap bg-gray-3 px-[var(--messenger-conversation-part-padding-x)] py-[var(--messenger-conversation-part-padding-y)] text-base leading-5 text-text-secondary`,style:F(`assistant`),children:(0,k.jsx)(L,{})})})}function L(){return(0,k.jsxs)(`span`,{className:`inline-flex h-5 items-center gap-1 align-middle text-text-quaternary`,"aria-hidden":`true`,children:[(0,k.jsx)(`span`,{className:`h-1.5 w-1.5 animate-[customer-agent-typing-dot-bounce_1.05s_ease-in-out_infinite] rounded-full bg-current`,"data-testid":`interview-thinking-dot`}),(0,k.jsx)(`span`,{className:`h-1.5 w-1.5 animate-[customer-agent-typing-dot-bounce_1.05s_ease-in-out_infinite] rounded-full bg-current [animation-delay:140ms]`,"data-testid":`interview-thinking-dot`}),(0,k.jsx)(`span`,{className:`h-1.5 w-1.5 animate-[customer-agent-typing-dot-bounce_1.05s_ease-in-out_infinite] rounded-full bg-current [animation-delay:280ms]`,"data-testid":`interview-thinking-dot`})]})}export{I as InterviewChatScreen};
@@ -1 +0,0 @@
1
- var e=`0.5.8`;function t(){typeof window>`u`||(window.__customerAgentVersion=e)}var n=Object.freeze({BUG_REPORTED:`support.bug_reported`,CONVERSATION_CREATED:`conversation.created`,ERROR:`error`,FEEDBACK_SUBMITTED:`support.feedback_submitted`,HANDOFF_REQUESTED:`support.handoff_requested`,INTERVIEW_INVITATION_CLOSED:`interview.invitation_closed`,INTERVIEW_INVITATION_LATER:`interview.invitation_later`,INTERVIEW_INVITATION_SHOWN:`interview.invitation_shown`,INTERVIEW_AVAILABLE:`interview.available`,INTERVIEW_REWARD_UPDATED:`interview.reward_updated`,INTERVIEW_STATE_CHANGED:`interview.state_changed`,INTERVIEW_SESSION_COMPLETED:`interview.session_completed`,INTERVIEW_SESSION_STARTED:`interview.session_started`,MESSAGE_COMPLETED:`message.completed`,MESSAGE_FAILED:`message.failed`,MESSAGE_RETRY:`message.retry`,MESSAGE_SEND_FAILED:`message.send_failed`,MESSAGE_SENT:`message.sent`,MESSAGE_STARTED:`message.started`,SUPPORT_STATE_CHANGED:`support.state_changed`,TRANSCRIPT_DOWNLOADED:`transcript.downloaded`,WIDGET_CLOSED:`widget.closed`,WIDGET_COLLAPSED:`widget.collapsed`,WIDGET_EXPANDED:`widget.expanded`,WIDGET_OPENED:`widget.opened`,WIDGET_READY:`widget.ready`});export{t as n,n as t};
@@ -1 +0,0 @@
1
- var e=class extends Error{code;requestId;status;constructor(e,t){super(e),this.name=`CustomerAgentApiError`,this.code=t.code,this.requestId=t.requestId??null,this.status=t.status}};function t(e){return e.replace(/\/+$/g,``)}function n(e){return!!e&&typeof e==`object`&&e.ok===!1&&typeof e.error?.message==`string`}function r(e){return!!e&&typeof e==`object`&&e.ok===!0}async function i(t){let n=await t.text();if(!n)return null;try{return JSON.parse(n)}catch{throw new e(`The server returned an unreadable response.`,{code:`INVALID_RESPONSE`,requestId:t.headers.get(`X-Request-Id`),status:t.status})}}function a(a){let o=t(a);async function s(t){let a=await i(t);if(n(a))throw new e(a.error.message,{code:a.error.code,requestId:a.meta?.requestId??t.headers.get(`X-Request-Id`),status:t.status});if(!t.ok)throw new e(`The server could not complete the request.`,{code:`HTTP_ERROR`,requestId:t.headers.get(`X-Request-Id`),status:t.status});if(!r(a))throw new e(`The server returned an unexpected response.`,{code:`INVALID_RESPONSE`,requestId:t.headers.get(`X-Request-Id`),status:t.status});return{data:a.data,response:t}}async function c(e,t={}){let n=new Headers;return t.method!==`GET`&&n.set(`Content-Type`,`application/json`),t.conversationId&&n.set(`X-Customer-Agent-Conversation-Id`,t.conversationId),await s(await fetch(`${o}${e}`,{body:t.body?JSON.stringify(t.body):void 0,credentials:`omit`,headers:n,method:t.method??`GET`,signal:t.signal}))}async function l(e,t,n={}){let r=new Headers;return n.conversationId&&r.set(`X-Customer-Agent-Conversation-Id`,n.conversationId),await s(await fetch(`${o}${e}`,{body:t,credentials:`omit`,headers:r,method:`POST`,signal:n.signal}))}return{request:c,upload:l}}function o(){return typeof crypto<`u`&&`randomUUID`in crypto?crypto.randomUUID():`ca_${Date.now()}_${Math.random().toString(36).slice(2)}`}function s(){return`https://api.askorainsight.com/api/customer-agent`}function c(e,t){if(!e.app_id)throw Error(`CustomerAgent requires an app_id.`);let{launcher:n,mount:r,...i}=e;return{...i,context:e.context??{},embedded:!!r,launcher:n?{offset:n.offset,placement:n.placement,style:n.style,variables:n.variables}:void 0,widgetId:t}}function l(e){return typeof e==`string`&&e.trim()?e.trim():null}function u(e){let t=l(e.user?.id);return t?JSON.stringify({appId:e.app_id,userId:t}):null}function d(e){let t=u(e);return t?`customer_agent:interview_session:${encodeURIComponent(t)}`:null}function f(e){if(!e||typeof e!=`object`)return!1;let t=e;return typeof t.entryId==`string`&&typeof t.priority==`number`&&typeof t.sessionId==`string`&&typeof t.title==`string`}function p(e){return u(e)}function m(){return{clear(e){let t=d(e);if(t)try{window.localStorage.removeItem(t)}catch{}},read(e){let t=d(e);if(!t)return null;try{let e=window.localStorage.getItem(t);if(!e)return null;let n=JSON.parse(e);return f(n)?n:null}catch{return null}},write(e,t){let n=d(e);if(n)try{window.localStorage.setItem(n,JSON.stringify(t))}catch{}}}}var h=class extends Error{conversationId;constructor(e){super(`The support conversation session is no longer available.`),this.conversationId=e,this.name=`CustomerAgentSessionInvalidatedError`}};function g(e){return typeof e==`string`&&e.trim()?e.trim():null}function _(e){let t=g(e.user?.id),n=g(e.anonymous_id),r=t?`user:${t}`:n?`anonymous:${n}`:`anonymous`;return encodeURIComponent(r)}function v(e){return`customer_agent:conversation_id:${e.app_id}:${_(e)}`}function y(e){return`${e.app_id}::${_(e)}`}function b(e){try{return window.localStorage.getItem(v(e))}catch{return null}}function x(e,t){try{window.localStorage.setItem(v(e),t)}catch{}}function S(e){try{window.localStorage.removeItem(v(e))}catch{}}function C(){try{return window.parent?.location??window.location}catch{return window.location}}function w(){let e=C();return!e?.href||e.href===`about:blank`?{}:{customerOrigin:e.origin,pagePath:`${e.pathname}${e.search}${e.hash}`,pageUrl:e.href}}function T(){return{language:navigator.language,languages:navigator.languages,platform:navigator.platform,screen:{height:window.screen.height,width:window.screen.width},userAgent:navigator.userAgent,viewport:{height:window.innerHeight,width:window.innerWidth}}}function E(e){return Object.fromEntries(Object.entries(e).filter(e=>e[1]!==void 0))}function D(e){return Array.isArray(e)?`[${e.map(e=>D(e)).join(`,`)}]`:e&&typeof e==`object`?`{${Object.entries(e).sort(([e],[t])=>e.localeCompare(t)).map(([e,t])=>`${JSON.stringify(e)}:${D(t)}`).join(`,`)}}`:JSON.stringify(e)}function O(e){return e.anonymous_id??e.user?.id}function k(e){return E({...e.context,...e.user,userId:e.user?.id,visitorId:O(e)})}function A(e){let t=k(e);return{appId:e.app_id,...E({...w(),deviceInfo:T(),locale:e.locale,userContext:Object.keys(t).length?t:void 0,visitorId:O(e),widgetId:e.widgetId})}}function j(e){return{id:e.id,role:e.role,content:e.content,createdAt:new Date(e.createdAt),metadata:{custom:{assistantAuthor:e.assistantAuthor,attachments:e.attachments??[]}},status:e.role===`assistant`?{type:`complete`,reason:`stop`}:void 0}}function M(e){return e.map(j)}var N=class{apiOrigin=null;client=null;lastContextFingerprint=null;session=null;sessionPromise=null;getClient(){let e=s();return(this.apiOrigin!==e||!this.client)&&(this.apiOrigin=e,this.client=a(e),this.lastContextFingerprint=null,this.session=null,this.sessionPromise=null),this.client}clear(e){this.lastContextFingerprint=null,this.session=null,this.sessionPromise=null,S(e)}hydrateSession(e,t){this.session={cacheKey:y(e),conversationId:t.conversationId,messages:t.messages},this.sessionPromise=null,x(e,t.conversationId)}async ensureSession(e,t={}){let n=y(e);if(this.session?.conversationId&&this.session.cacheKey===n)return this.session;if(this.session?.cacheKey!==n&&(this.lastContextFingerprint=null,this.session=null,this.sessionPromise=null),this.sessionPromise)return await this.sessionPromise;let r=b(e);this.sessionPromise=this.startSession(e,r,t);try{return this.session=await this.sessionPromise,this.session}finally{this.sessionPromise=null}}async sendMessage(t,n,r,i,a={}){let o=this.getHydratedSession(t)??await this.ensureSession(t,a);try{let e=await this.postMessage(t,o.conversationId,n,r,i);return this.session?.conversationId===e.conversationId&&(this.session={...this.session,messages:P(this.session.messages,[e.userMessage,e.assistantMessage])}),e}catch(s){if(s instanceof e&&s.code===`NOT_FOUND`){this.clear(t),a.onSessionInvalidated?.(o.conversationId);let e=await this.ensureSession(t,a),s=await this.postMessage(t,e.conversationId,n,r,i);return this.session={...e,messages:P(e.messages,[s.userMessage,s.assistantMessage])},s}throw s}}async refreshSession(t,n){let r=this.getHydratedSession(t);if(!r)return null;try{let{data:e}=await this.getClient().request(`/conversation`,{conversationId:r.conversationId,method:`GET`,signal:n});return this.session={...r,conversationId:e.conversationId,messages:e.messages},x(t,e.conversationId),this.session}catch(n){if(n instanceof e&&n.code===`NOT_FOUND`){let e=r.conversationId;throw this.clear(t),new h(e)}throw n}}async updateContext(e){let t=this.getHydratedSession(e);if(!t)return null;let n=A(e),r=D(n);if(r===this.lastContextFingerprint)return null;let{data:i}=await this.getClient().request(`/context`,{body:{...n,conversationId:t.conversationId},conversationId:t.conversationId,method:`PATCH`});return this.lastContextFingerprint=r,i}async uploadAttachment(e,t,n={}){let r=this.getHydratedSession(e);if(!r)throw Error(`The support conversation session has not been initialized.`);let i=new FormData;i.set(`appId`,e.app_id),i.set(`conversationId`,r.conversationId),i.set(`file`,t);let{data:a}=await this.getClient().upload(`/attachments`,i,{conversationId:r.conversationId});return{filename:a.filename,id:a.attachmentId,mimeType:a.mimeType,sizeBytes:a.sizeBytes,url:a.url}}async startSession(t,n,r={}){let i=this.getClient(),a=A(t);try{let{data:e}=await i.request(`/session`,{body:E({...a,conversationId:n??void 0}),conversationId:n,method:`POST`}),o=e.conversationId;return x(t,o),this.lastContextFingerprint=D(a),n||r.onConversationCreated?.(o),{cacheKey:y(t),conversationId:o,messages:e.messages}}catch(i){if(n&&i instanceof e&&i.code===`NOT_FOUND`)return S(t),await this.startSession(t,null,r);throw i}}async postMessage(e,t,n,r,i){let a=A(e),{data:o}=await this.getClient().request(`/messages`,{body:{...a,attachments:r.length?r:void 0,conversationId:t,message:n},conversationId:t,method:`POST`,signal:i});return this.lastContextFingerprint=D(a),o}getHydratedSession(e){let t=y(e);return this.session?.conversationId&&this.session.cacheKey===t?this.session:null}};function P(e,t){let n=new Map(e.map(e=>[e.id,e]));for(let e of t)n.set(e.id,e);return[...n.values()]}var F=new N,I={AGENTS_CONVERSATIONS:`agents.conversations`,GLOBAL_ERROR:`global.error`,GLOBAL_LOADING:`global.loading`},L={CHAT:`chat`,INTERVIEW_STARTING:`interview.starting`},R=`interview/session/`,z=`support/session/`;function B(e,t){return e.startsWith(t)&&e.length>t.length}function V(e){return B(e,R)}function H(e){return`${z}${e}`}function U(e){return B(e,z)}function W(e){return U(e)?e.slice(16):null}function G(e){return!e||e.name!==I.AGENTS_CONVERSATIONS?!1:e.child.name===L.CHAT&&V(e.child.entryId)}function K(e){return{child:{entryId:e,name:L.CHAT},name:I.AGENTS_CONVERSATIONS}}export{c as _,G as a,a as b,I as c,M as d,F as f,o as g,u as h,V as i,h as l,p as m,H as n,U as o,m as p,W as r,L as s,K as t,A as u,s as v,e as y};