@icanbwell/baileyai-chat-ui 1.2.0 → 1.2.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.
- package/README.md +5 -0
- package/dist/baileyai-chat-ui.cjs +2 -2
- package/dist/baileyai-chat-ui.js +412 -408
- package/dist/index.d.ts +13 -2
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -298,6 +298,11 @@ const chat = useBaileyChat({ transport: client, client, model: 'bailey-default',
|
|
|
298
298
|
connection message otherwise) with Retry; error text and titles never reach logs or `title` attributes.
|
|
299
299
|
- `onHistoryClick` is the host override: when both `history` and `onHistoryClick` are given, your callback
|
|
300
300
|
runs and the drawer never mounts. A host that passes neither renders exactly as before.
|
|
301
|
+
- `historyOpen` and `onHistoryOpenChange` let the host control the drawer, e.g. from its own menu while
|
|
302
|
+
`hideMenuButton` hides the panel's. With `historyOpen` set, the drawer shows only while it is `true` and the
|
|
303
|
+
panel reports open and close requests (menu item, back, Escape, New chat, row selected) instead of acting on
|
|
304
|
+
them. Closing returns focus to the input when the panel's "..." menu is hidden. Leave `historyOpen` unset to
|
|
305
|
+
keep the panel-managed state (`onHistoryOpenChange` is then only a notification).
|
|
301
306
|
- Every string is a `labels` key (`historyTitle`, `historyEmptyTitle`, `historySessionExpiredTitle`, and so
|
|
302
307
|
on, all with English defaults). The session-expired wording is a default for copy review. Relative times
|
|
303
308
|
use `Intl.RelativeTimeFormat` with `locale` (default `navigator.language`): a future time shows "now",
|
|
@@ -6,7 +6,7 @@ Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});var e=Object.
|
|
|
6
6
|
|
|
7
7
|
`),n=t.pop()??``,r=[],i=!1;for(let e of t){let t=e.split(`
|
|
8
8
|
`).filter(e=>e.length>0),n=`message`,a=[];for(let e of t)e.startsWith(`event:`)?n=e.slice(6).trim():e.startsWith(`data:`)&&a.push(e.slice(5).trim());if(a.length===0)continue;let o=a.join(`
|
|
9
|
-
`);if(o===`[DONE]`){i=!0;continue}let s;try{s=JSON.parse(o)}catch{s=void 0}let c=s;if(n===`error`){let e=typeof c?.message==`string`?c.message:o;r.push({type:`error`,message:e})}else if(c?.type===`response.output_text.delta`&&typeof c.delta==`string`){let e=T(c.delta);e&&r.push({type:`response.output_text.delta`,delta:e})}else c&&typeof c.type==`string`?r.push(c):n!==`message`&&r.push({type:`info`,message:`${n}: ${o}`})}return{events:r,remainder:n,done:i}}var D=class extends Error{status;kind;constructor(e){super(e.message??O(e),e.cause===void 0?void 0:{cause:e.cause}),this.name=`BaileyApiError`,this.status=e.status,this.kind=e.kind}};function ee(e,t=`Bailey`){switch(e.kind){case`http`:return`${t} request failed (status ${e.status})`;case`timeout`:return`${t} request timed out`;case`aborted`:return`${t} request aborted`;case`invalid-response`:return`${t} returned an unreadable response (status ${e.status})`;default:return`${t} request failed (network error)`}}var O=e=>ee(e),k=class extends Error{operation;constructor(e){super(`Bailey cleanup failed (${e.operation})`),this.name=`BaileyCleanupError`,this.operation=e.operation}},A={inaccurate:!0,unhelpful:!0,unsafe:!0,too_long:!0,other:!0},j=e=>Object.hasOwn(A,e)?e:`other`;function M(e){if(!e||e.rating!==`up`&&e.rating!==`down`)return;let t=(e.reasonCodes??[]).map(j);return{rating:e.rating,...t.length>0?{reasonCodes:t}:{},...e.comment?{comment:e.comment}:{}}}function te(e){let t=[];return e.messages.forEach((e,n)=>{if(e.hidden||e.role!==`user`&&e.role!==`assistant`)return;let r=Date.parse(e.createdAt),i=Number.isNaN(r)?void 0:r,a=e.messageId||`loaded-${n}-${e.role}-${i??0}`,o=e.role===`assistant`?M(e.feedback):void 0;t.push({id:a,role:e.role,content:e.content,streaming:!1,...i===void 0?{}:{createdAt:i},...e.role===`assistant`&&e.messageId?{serverMessageId:e.messageId}:{},...o?{feedback:o}:{}})}),t}var N=e=>e.serverMessageId??e.id;function ne(e){let t=new Set(e.current.map(N)),n=e.earlier.filter(e=>!t.has(N(e)));return n.length===0?e.current:[...n,...e.current]}function P(e){let t=e.sub.trim();if(!t)return!1;let n=`${t}:`;return e.conversationId.startsWith(n)&&e.conversationId.length>n.length}function re(e){let{client:t,getConversationId:n}=e,r=()=>{let e=n();if(!e)throw Error(`no conversation id`);return e};return{async onSubmit(e){let n=r();await t.submitFeedback({conversationId:n,messageId:e.messageId,rating:e.rating,...e.reasonCodes?{reasonCodes:e.reasonCodes}:{},...e.comment?{comment:e.comment}:{}})},async onClear({messageId:e}){let n=r();await t.clearFeedback({conversationId:n,messageId:e})}}}var ie=`baileyai-chat-ui:conversation`;function ae(){return{get:e=>window.sessionStorage.getItem(e),set:(e,t)=>window.sessionStorage.setItem(e,t),remove:e=>window.sessionStorage.removeItem(e)}}function F(){let e=new Map;return{get:t=>e.get(t)??null,set:(t,n)=>void e.set(t,n),remove:t=>void e.delete(t)}}var I=200,oe=100,se=[503,405],L=15e4,R=`bailey`,ce=()=>typeof crypto<`u`&&typeof crypto.randomUUID==`function`?crypto.randomUUID():`bailey-${Date.now()}-${Math.random().toString(36).slice(2)}`,z=(e,t,n,r)=>{if(t===401||t===403)return`${e} isn't reachable with your current login.`;let i=`${e} request failed (status ${t??`network error`}).`,a=(r||n||``).trim();return a?`${i} ${a.length>I?`${a.slice(0,I)}…`:a}`:i};function B(e,t,n){if(e)try{return e.get(t)||void 0}catch(e){n(e,`read`);return}}function le(e,t){t.signal.aborted||typeof e!=`string`||(t.historyStatus=e)}function ue(e,t,n,r){try{e?.set(t,n)}catch(e){r(e,`write`)}}function de(e,t,n){try{e?.remove(t)}catch(e){n(e,`remove`)}}var fe=(e,t)=>t?`${e}:${t}`:e;function pe(e){let{seed:t,sub:n,storage:r,key:i,report:a}=e;if(!n)return t||B(r,i,a);if(t&&P({conversationId:t,sub:n}))return t;let o=B(r,i,a);if(o){if(P({conversationId:o,sub:n}))return o;de(r,i,a)}}var V=({transport:e,model:t,instructions:n,assistantName:r=R,tools:i=[],toolChoice:a,firstUserMessagePrefix:o,onAssistantMessageComplete:s,idleTimeoutMs:c=L,client:u,conversationId:d,sub:f,storage:p,storageKey:m=ie,sendFullTranscript:h=!1,onStorageError:g,onContextLoss:_})=>{let[v,y]=(0,l.useState)([]),[b,x]=(0,l.useState)([]),[S,C]=(0,l.useState)(null),[T,O]=(0,l.useState)(`idle`),[k,A]=(0,l.useState)(null),j=f!==void 0&&f.trim()===``,M=j?void 0:f?.trim()||void 0,N=(0,l.useMemo)(()=>ae(),[]),F=j?null:p===void 0?N:p||null,I=(0,l.useRef)(g),B=(0,l.useRef)(_);(0,l.useEffect)(()=>{I.current=g,B.current=_},[g,_]);let V=(0,l.useCallback)((e,t)=>{try{I.current?.(e,t)}catch{}},[]),me=e=>pe({seed:d,sub:M,storage:F,key:fe(m,M),report:e}),[he]=(0,l.useState)(()=>{let e=[];return{id:me((t,n)=>void e.push({error:t,operation:n})),errors:e}}),[H,U]=(0,l.useState)(he.id),[W,ge]=(0,l.useState)(he.errors.length>0),G=(0,l.useCallback)((e,t)=>{ge(!0),V(e,t)},[V]);(0,l.useEffect)(()=>{he.errors.forEach(({error:e,operation:t})=>V(e,t))},[he,V]),(0,l.useEffect)(()=>{j&&V(Error(`sub is blank`),`key`)},[j,V]);let K=(0,l.useRef)(H),q=(0,l.useRef)({storage:F,key:fe(m,M),sub:M,sendFullTranscript:h});(0,l.useEffect)(()=>{q.current={storage:F,key:fe(m,M),sub:M,sendFullTranscript:h}},[F,m,M,h]);let _e=p===!1?`off`:W||j?`degraded`:`ok`,[ve,ye]=(0,l.useState)(!1),[be,J]=(0,l.useState)(`idle`),[xe,Se]=(0,l.useState)(!1),Y=(0,l.useRef)(0),X=(0,l.useRef)(null),Ce=(0,l.useRef)(null),we=(0,l.useRef)(!1),Z=(0,l.useCallback)(()=>{Y.current+=1,X.current?.abort(),X.current=null,Ce.current=null,we.current=!1,Se(!1),J(`idle`)},[]),Te=(0,l.useRef)(u);(0,l.useEffect)(()=>{Te.current=u},[u]),(0,l.useEffect)(()=>()=>X.current?.abort(),[]);let Ee=(0,l.useRef)(null),De=(0,l.useRef)(``),Oe=(0,l.useRef)(0),ke=(0,l.useRef)([]);(0,l.useEffect)(()=>{ke.current=v},[v]);let Q=(0,l.useRef)([]),Ae=(0,l.useRef)(new Map),$=(0,l.useRef)(new Map),je=(0,l.useRef)(null),Me=(0,l.useCallback)(()=>{je.current!==null&&(clearTimeout(je.current),je.current=null)},[]),Ne=(0,l.useCallback)(e=>{Me(),je.current=setTimeout(()=>{e.abort(new DOMException(`The assistant took too long to respond. Please try again.`,`TimeoutError`))},c)},[Me,c]);(0,l.useEffect)(()=>()=>{Ee.current?.abort(),Me()},[Me]);let Pe=(0,l.useCallback)(({reportedId:e,source:t,turn:n})=>{if(n.signal.aborted||typeof e!=`string`||!e)return;if(t===`event`)n.reportedId=e,n.reportedFromEvent=!0;else if(!n.reportedFromEvent)n.reportedId=e;else return;if(n.heldId||e===K.current)return;let{sub:r,storage:i,key:a}=q.current;(!r||P({conversationId:e,sub:r}))&&(K.current=e,U(e),ue(i,a,e,G))},[G]),Fe=(0,l.useCallback)((e,t,n,r)=>{let i=e=>{n.push(e),x(t=>[...t,e])};if(t.type===`response.output_text.delta`){if(!t.delta)return!1;let n=Ae.current.get(e)??{raw:``,emittedCount:0};n.raw+=t.delta;let{cleanedText:r,matches:a}=w(n.raw),o=r.trim(),s=a.slice(n.emittedCount);if(n.emittedCount=a.length,Ae.current.set(e,n),$.current.set(e,o),y(t=>t.map(t=>t.id===e?{...t,content:o}:t)),s.length>0){let e=Date.now(),t=Oe.current;s.forEach(n=>i({kind:`pseudo_tool_call`,name:n.name,args:n.args,at:e,turnSentAt:t}))}return!0}if(t.type===`response.output_item.added`||t.type===`response.output_item.done`){let n=t.item;if(n.type===`output_image`)return n.image_url&&y(t=>t.map(t=>t.id===e?{...t,parts:[...t.parts??[],{type:`image`,src:n.image_url}]}:t)),!0;if(n.type===`function_call`||n.type===`mcp_call`){let e=Date.now(),r=Oe.current,a=n.name||`unknown_tool`;return i(t.type===`response.output_item.added`?{kind:`tool_start`,name:a,args:n.arguments,at:e,turnSentAt:r,callId:n.call_id,displayName:n.display_name}:{kind:`tool_end`,name:a,args:n.arguments,at:e,turnSentAt:r,callId:n.call_id,displayName:n.display_name,output:n.output,isError:n.is_error,runtimeSeconds:n.runtime_seconds,structuredOutput:n.structured_output}),!0}if(n.type===`llm_call`){let e=Date.now(),r=Oe.current;return i(t.type===`response.output_item.added`?{kind:`llm_call_start`,request:n.request??[],at:e,turnSentAt:r}:{kind:`llm_call_end`,response:n.output,at:e,turnSentAt:r}),!0}return!1}if(t.type===`task.progress`)return i({kind:`progress`,status:t.status,message:t.message,at:Date.now(),turnSentAt:Oe.current}),!0;if(t.type===`response.output_text.done`)return!1;if(t.type===`response.created`)return Pe({reportedId:t.response?.conversation?.id,source:`event`,turn:r}),le(t.response?.conversation?.history_status,r),!1;if(t.type===`response.completed`){Pe({reportedId:t.response?.conversation?.id,source:`event`,turn:r}),le(t.response?.conversation?.history_status,r);let n=typeof t.message_id==`string`&&t.message_id?t.message_id:void 0;n&&y(t=>t.map(t=>t.id===e?{...t,serverMessageId:n}:t));let i=Ae.current.get(e);if(i){let{cleanedText:t}=w(i.raw,{hideOpenBlock:!1}),n=t.trim();n!==$.current.get(e)&&($.current.set(e,n),y(t=>t.map(t=>t.id===e?{...t,content:n}:t)))}return!1}if(t.type===`info`)return i({kind:`info`,message:t.message,at:Date.now(),turnSentAt:Oe.current}),!0;if(t.type===`mcp_app`){let n=t.resourceUri;if(!n)return i({kind:`raw`,eventType:t.type,raw:JSON.stringify(t),at:Date.now(),turnSentAt:Oe.current}),!0;let{html:r,title:a,csp:o,permissions:s,prefersBorder:c,displayMode:l}=t;return y(t=>t.map(t=>t.id===e?{...t,parts:[...t.parts??[],{type:`mcp_app`,html:r,title:a,resourceUri:n,csp:o,permissions:s,prefersBorder:c,displayMode:l}]}:t)),!0}return i({kind:`raw`,eventType:t.type,raw:JSON.stringify(t),at:Date.now(),turnSentAt:Oe.current}),!0},[Pe]),Ie=(0,l.useCallback)(async c=>{O(`streaming`),A(null),ye(!1);let l=Date.now();Oe.current=l;let u=ce(),d={id:u,role:`assistant`,content:``,streaming:!0,createdAt:l};y(e=>[...e,d]),Q.current=[...c,d];let f=c.findIndex(e=>e.role===`user`&&!e.hidden),p=c.map((e,t)=>t===f&&o?{role:e.role,content:`${o}${e.content}`,hidden:e.hidden,titleHint:e.titleHint}:{role:e.role,content:e.content,hidden:e.hidden,titleHint:e.titleHint}),{sendFullTranscript:m}=q.current,h=m?void 0:K.current,g=h?p.slice(-1):p;C({model:t,systemPrompt:n,messages:g,tools:i,toolChoice:a,stream:!0,sentAt:l,streamStats:{chunkCount:0,firstChunkAt:null,lastChunkAt:null}});let _=new AbortController;Ee.current=_,Ne(_);let v={signal:_.signal,heldId:h},b=``,S=null,w=!1,T=!1,k=!1,j=[],M=(e,t)=>{O(`error`),A(e);let n={kind:`error`,message:e,at:Date.now(),turnSentAt:l,...t};j.push(n),x(e=>[...e,n])},te=(e,t)=>{e.forEach(e=>{if(e.type===`error`){S=e.message;let t={kind:`error`,message:e.message,at:Date.now(),turnSentAt:l};j.push(t),x(e=>[...e,t])}else e.type===`response.output_text.delta`&&e.delta&&(k=!0),Fe(u,e,j,v)&&(T=!0)}),t&&(w=!0,y(e=>e.map(e=>e.id===u?{...e,streaming:!1}:e)))};try{let{status:o,text:c,errorMessage:d,errorKind:f,interrupted:p}=await e.streamChat({model:t,instructions:n,input:g,tools:i,toolChoice:a,...h?{conversationId:h}:{},onConversationId:e=>Pe({reportedId:e,source:`header`,turn:v}),signal:_.signal,onChunk:e=>{Ne(_),b+=e;let{events:t,remainder:n,done:r}=E(b);b=n,te(t,r);let i=Date.now();C(e=>e&&e.sentAt===l?{...e,streamStats:{chunkCount:e.streamStats.chunkCount+1,firstChunkAt:e.streamStats.firstChunkAt??i,lastChunkAt:i}}:e)},onRequestId:e=>{C(t=>t&&t.sentAt===l?{...t,requestId:e}:t)},onMessageId:e=>{typeof e==`string`&&e&&y(t=>t.map(t=>t.id===u?{...t,serverMessageId:e}:t))}});if(b.trim()){let{events:e,done:t}=E(`${b}\n\n`);b=``,te(e,t)}if(S){O(`error`),A(S);return}if(f===`timeout`&&!w){M(d||`The assistant took too long to respond. Please try again.`,{source:`client-timeout`});return}if(p&&!w){M(`The connection was interrupted before the answer finished. Try again.`);return}if(o===void 0||o>=400){M(z(r,o,c,d),{httpStatus:o,rawBody:c||void 0});return}let m=v.reportedId,x=m!==h,D=v.historyStatus===`failed`||v.historyStatus===`empty`;if(h&&!v.signal.aborted&&(x||D)){K.current=void 0,U(void 0),de(q.current.storage,q.current.key,G),Z(),ye(!0);try{B.current?.({sentId:h,...m?{reportedId:m}:{},reason:x?`id`:`history`})}catch{}}if(!T){M(`${r} returned an empty response.`);return}if(!k){M(`${r} ran some tools but didn't return an answer. Try asking again.`);return}O(`idle`);let ee=$.current.get(u)??``;C(e=>e&&e.sentAt===l?{...e,response:{content:ee}}:e),s&&await s({id:u,role:`assistant`,content:ee,streaming:!1},j)}catch(e){let t=e;if(t?.name===`TimeoutError`){M(t.message,{source:`client-timeout`});return}if(t?.name===`AbortError`){O(`idle`);return}M(t instanceof D?ee(t,r):t?.message||`${r} request failed.`)}finally{Me();let e=$.current.get(u)??``;Ae.current.delete(u),$.current.delete(u);let t=j.some(e=>e.kind===`tool_start`||e.kind===`tool_end`);y(e=>e.flatMap(e=>e.id===u?e.content||t?[{...e,streaming:!1}]:[]:[e])),Q.current=Q.current.flatMap(t=>t.id===u?e?[{...t,content:e,streaming:!1}]:[]:[t])}},[e,t,n,r,i,a,o,s,Fe,Pe,Ne,Me,G,Z]),Le=(0,l.useCallback)(e=>{ke.current=e,y(e)},[]),Re=(0,l.useCallback)(e=>{let t=e.trim();if(!t)return;De.current=t;let n={id:ce(),role:`user`,content:t,createdAt:Date.now()},r=[...Q.current,n];Q.current=r,Le([...ke.current,n]),Ie(r)},[Ie,Le]),ze=(0,l.useCallback)((e,t)=>{if(T===`streaming`)return;let n=e.trim();if(!n)return;De.current=n;let r=t?.trim(),i={id:ce(),role:`user`,content:n,createdAt:Date.now(),hidden:!0,...r?{titleHint:r}:{}},a=[...Q.current,i];Q.current=a,Ie(a)},[Ie,T]),Be=(0,l.useCallback)(()=>{Ee.current?.abort()},[]),Ve=(0,l.useCallback)(()=>{if(T===`streaming`||!De.current)return;let e=ke.current,t=e[e.length-1],n=t&&t.role===`assistant`?e.slice(0,-1):e;Le(n);let r=Q.current,i=r[r.length-1],a=i&&i.role===`assistant`?r.slice(0,-1):r;Q.current=a,Ie(a)},[Ie,Le,T]),He=(0,l.useCallback)(()=>x([]),[]),Ue=(0,l.useCallback)(()=>{A(null),O(e=>e===`error`?`idle`:e)},[]),We=(0,l.useCallback)(()=>{Ee.current?.abort(),Z(),ye(!1),Le([]),Q.current=[],x([]),C(null),O(`idle`),A(null),De.current=``},[Z,Le]),Ge=(0,l.useCallback)(()=>{We(),K.current=void 0,U(void 0),de(q.current.storage,q.current.key,G)},[We,G]),Ke=(0,l.useRef)(M);(0,l.useEffect)(()=>{let e=Ke.current;if(e===M)return;Ke.current=M,e!==void 0&&We();let t=me(G);K.current=t,U(t)},[M]);let qe=(0,l.useCallback)(e=>{Ee.current?.abort();let t=e.filter(e=>e.role===`user`||e.role===`assistant`).map(e=>({...e,streaming:!1}));Le(t.filter(e=>!e.hidden)),Q.current=t,x([]),C(null),O(`idle`),A(null),De.current=``},[Le]),Je=(0,l.useCallback)(e=>{Z(),qe(e)},[Z,qe]),Ye=(0,l.useCallback)(e=>{K.current=e,U(e),ue(q.current.storage,q.current.key,e,G),ye(!1)},[G]),Xe=(0,l.useCallback)(e=>{let t=e.hasMoreBefore&&e.nextBeforeAbsoluteIndex!==null;Ce.current=t?e.nextBeforeAbsoluteIndex:null,Se(t)},[]),Ze=(0,l.useCallback)(async({conversationId:e})=>{let t=Te.current,{sub:n}=q.current,r=!!e&&(!n||P({conversationId:e,sub:n}));if(!t||!r)throw J(`error`),Error(t?`invalid conversation id`:`no client`);Ee.current?.abort(),Z();let i=Y.current,a=new AbortController;X.current=a,J(`loading`);try{let n=await t.getConversation({conversationId:e,limit:oe,signal:a.signal});if(i!==Y.current)return;qe(te({messages:n.messages})),Ye(e),Xe(n),J(`idle`)}catch(e){if(i!==Y.current)return;throw J(`error`),e}},[Xe,Z,Ye,qe]),Qe=(0,l.useCallback)(async()=>{let e=Te.current,t=K.current,n=Ce.current;if(!e||!t||n===null||we.current)return;let r=Y.current,i=new AbortController;X.current=i,we.current=!0,J(`loading`);try{let a=await e.getConversation({conversationId:t,limit:oe,beforeAbsoluteIndex:n,signal:i.signal});if(r!==Y.current)return;let o=te({messages:a.messages});Q.current=ne({current:Q.current,earlier:o}),y(e=>{let t=ne({current:e,earlier:o});return ke.current=t,t}),Xe(a),J(`idle`)}catch(e){if(r!==Y.current)return;throw J(`error`),e}finally{r===Y.current&&(we.current=!1)}},[Xe]),[$e,et]=(0,l.useState)();return{conversationId:H,persistence:_e,contextLost:ve,messages:v,traceEvents:b,lastRequest:S,status:T,error:k,send:Re,sendHidden:ze,stop:Be,retryLast:Ve,clearTrace:He,clearError:Ue,newChat:Ge,loadMessages:Je,loadConversation:Ze,loadEarlier:Qe,hasEarlier:xe,historyStatus:be,feedback:(0,l.useMemo)(()=>{if(!u||$e===u)return;let e=re({client:u,getConversationId:()=>H}),t=async e=>{try{await e()}catch(e){throw e instanceof D&&se.includes(e.status)&&et(u),e}},n=(e,t)=>y(n=>n.map(n=>n.serverMessageId===e?{...n,feedback:t}:n));return{onSubmit:async r=>{await t(()=>e.onSubmit(r));let{messageId:i,rating:a,reasonCodes:o,comment:s}=r;n(i,{rating:a,...o?{reasonCodes:o}:{},...s?{comment:s}:{}})},onClear:async r=>{await t(()=>e.onClear(r)),n(r.messageId,void 0)}}},[u,H,$e])}},me=e=>e instanceof D?e:new D({status:0,kind:`network`});function he(e){let{pageSize:t,enabled:n=!0}=e,[r,i]=(0,l.useState)([]),[a,o]=(0,l.useState)(n?`loading`:`idle`),[s,c]=(0,l.useState)(null),[u,d]=(0,l.useState)(null),f=(0,l.useRef)(e.client),p=(0,l.useRef)([]);(0,l.useEffect)(()=>{f.current=e.client,p.current=r});let m=(0,l.useRef)(null),h=(0,l.useRef)(null),g=(0,l.useCallback)(async e=>{h.current?.abort();let n=new AbortController;h.current=n,o(`loading`);try{let r=await f.current.listConversations({...t===void 0?{}:{limit:t},cursor:e===`append`?m.current??void 0:void 0,signal:n.signal});if(n.signal.aborted)return;i(t=>{if(e===`replace`)return r.conversations;let n=new Set(t.map(e=>e.conversationId));return[...t,...r.conversations.filter(e=>!n.has(e.conversationId))]}),m.current=r.nextCursor,d(r.nextCursor),c(null),o(`idle`)}catch(e){if(n.signal.aborted)return;c(me(e)),o(`error`)}},[t]);(0,l.useEffect)(()=>{if(n)return g(`replace`),()=>h.current?.abort()},[n,g]);let _=(0,l.useCallback)(()=>g(`replace`),[g]),v=(0,l.useCallback)(async()=>{m.current!==null&&await g(`append`)},[g]),y=(0,l.useCallback)(async({conversationId:e})=>{let t=p.current.findIndex(t=>t.conversationId===e),n=t===-1?void 0:{row:p.current[t],index:t};i(t=>t.filter(t=>t.conversationId!==e));try{await f.current.deleteConversation({conversationId:e})}catch(t){if(!n)throw t;let{row:r,index:a}=n;throw i(t=>{if(t.some(t=>t.conversationId===e))return t;let n=[...t];return n.splice(Math.min(a,n.length),0,r),n}),t}},[]);return{conversations:r,status:a,error:s,hasMore:u!==null,refresh:_,loadMore:v,remove:y}}function H(e){return e.replace(/\/+$/,``)}function U(e,t){let n=new URLSearchParams;for(let[e,r]of Object.entries(t))r!==void 0&&n.set(e,String(r));let r=n.toString();return r?`${e}?${r}`:e}var W={responses(e){return`${H(e)}/responses`},conversations(e,t){return U(`${H(e)}/conversations`,{limit:t.limit,cursor:t.cursor})},conversation(e,t,n){return U(`${H(e)}/conversations/${encodeURIComponent(t)}`,{limit:n.limit,before_absolute_index:n.beforeAbsoluteIndex})},feedback(e,t,n){return`${H(e)}/conversations/${encodeURIComponent(t)}/messages/${encodeURIComponent(n)}/feedback`}};function ge(e){return{status:void 0,text:``,errorMessage:`Request failed`,errorKind:`network`,...e?{errorCause:e.cause}:{}}}var G=`The assistant took too long to respond. Please try again.`;function K(e){return{status:e.status,text:``,errorMessage:G,errorKind:`timeout`,errorCause:e.cause,...e.status===void 0?{}:{interrupted:!0}}}var q=3e4,_e=155e3,ve=`x-chat-id`,ye=`header`,be=`body`,J=`x-request-id`,xe=`x-conversation-id`,Se=`x-message-id`,Y=e=>e&&typeof e==`object`?e:{},X=(e,t=``)=>typeof e==`string`?e:t,Ce=(e,t=0)=>typeof e==`number`?e:t;function we(e){let t=Y(e);return{conversationId:X(t.conversation_id),title:typeof t.title==`string`?t.title:null,status:X(t.status),messageCount:Ce(t.message_count),createdAt:X(t.created_at),updatedAt:X(t.updated_at)}}function Z(e){if(!e||typeof e!=`object`)return null;let t=Y(e);return{rating:X(t.rating),reasonCodes:Array.isArray(t.reason_codes)?t.reason_codes.filter(e=>typeof e==`string`):[],comment:typeof t.comment==`string`?t.comment:null,...typeof t.updated_at==`string`?{updatedAt:t.updated_at}:{}}}function Te(e){let t=Y(e);return{messageId:X(t.message_id),role:X(t.role),content:X(t.content),hidden:t.hidden===!0,createdAt:X(t.created_at),feedback:Z(t.feedback)}}function Ee(e){let t=new AbortController,n=!1,r=setTimeout(()=>{n=!0,t.abort()},e.timeoutMs),i=()=>t.abort(e.caller?.reason);return e.caller?.aborted?i():e.caller?.addEventListener(`abort`,i,{once:!0}),{signal:t.signal,timedOut:()=>n,dispose:()=>{clearTimeout(r),e.caller?.removeEventListener(`abort`,i)}}}function De(e){return e.timedOut()?new D({status:0,kind:`timeout`,cause:e.signal.reason}):new D({status:0,kind:`aborted`})}function Oe(e){let{baseUrl:t,getHeaders:n,onAuthError:r,refreshAuth:i}=e,a=e.requestTimeoutMs??q,o=e.idleTimeoutMs??_e,s=e.conversationVia??ye;if(s!==ye&&s!==be)throw TypeError(`createBaileyClient: conversationVia must be 'header' or 'body'`);let c=e.fetch??((e,t)=>globalThis.fetch(e,t));function l(t){try{e.onCleanupError?.(new k({operation:t}))}catch{}}function u(e){e.kind===`http`&&(e.status===401||e.status===403)&&r?.(e)}async function d(e){if(e.status!==401)return!1;try{await i?.()}catch{return!1}return e.body?.cancel().catch(()=>l(`cancel-response-body`)),!0}async function f(e){let t=Ee({caller:e.signal,timeoutMs:a});try{let r=async()=>{let r;try{r={Accept:`application/json`,...await n()}}catch{throw new D({status:0,kind:`network`})}if(t.signal.aborted)throw De(t);e.body!==void 0&&(r[`Content-Type`]=`application/json`);try{return await c(e.url,{method:e.method,headers:r,...e.body===void 0?{}:{body:JSON.stringify(e.body)},signal:t.signal})}catch(e){throw t.signal.aborted?De(t):new D({status:0,kind:`network`,cause:e})}},i=await r();if(await d(i)&&(i=await r()),!i.ok)throw i.body?.cancel().catch(()=>l(`cancel-response-body`)),new D({status:i.status,kind:`http`});if(i.status===204){if(e.requireJsonBody)throw new D({status:204,kind:`invalid-response`});return}try{let t=await i.json();if(e.requireJsonBody&&(typeof t!=`object`||!t||Array.isArray(t)))throw new D({status:i.status,kind:`invalid-response`});return t}catch(n){if(n instanceof D)throw n;if(t.timedOut()||t.signal.aborted)throw De(t);if(e.requireJsonBody)throw new D({status:i.status,kind:`invalid-response`});return}}catch(e){throw e instanceof D&&u(e),e}finally{t.dispose()}}return{streamChat:async e=>{let r=new AbortController,i=()=>r.abort(e.signal.reason);e.signal.aborted?i():e.signal.addEventListener(`abort`,i,{once:!0});let a,f,p=()=>{clearTimeout(a),a=setTimeout(()=>{f=new DOMException(G,`TimeoutError`),r.abort(f)},o)},m=t=>{if(f&&!e.signal.aborted)return K({cause:f,status:t});throw r.signal.reason};try{p();let i=e.input[e.input.length-1],a={...i?.hidden===!0?{hidden:!0}:{},...i?.titleHint?{title_hint:i.titleHint}:{}},o={model:e.model,instructions:e.instructions,input:e.input.map(({role:e,content:t})=>({role:e,content:t})),stream:!0,...Object.keys(a).length>0?{metadata:a}:{}};e.conversationId&&s===be&&(o.conversation=e.conversationId),e.tools.length>0&&(o.tools=e.tools),e.toolChoice&&(o.tool_choice=e.toolChoice);let f;for(let i=!1;;i=!0){let a;try{a={Accept:`text/event-stream`,...await n()}}catch{return ge()}if(r.signal.aborted)return m();a[`Content-Type`]=`application/json`,e.conversationId&&s===ye&&(a[ve]=e.conversationId);try{f=await c(W.responses(t),{method:`POST`,headers:a,body:JSON.stringify(o),signal:r.signal})}catch(e){return r.signal.aborted?m():ge({cause:e})}if(i||!await d(f))break}let h=f.headers.get(J);h&&e.onRequestId?.(h);let g=f.headers.get(Se);if(g&&e.onMessageId?.(g),!f.ok){u(new D({status:f.status,kind:`http`}));let e=await f.text().catch(()=>``);return{status:f.status,text:e}}let _=f.headers.get(xe);if(_&&e.onConversationId?.(_),!f.body)return{status:f.status,text:``};let v=f.body.getReader(),y=new TextDecoder,b=()=>void v.cancel(r.signal.reason).catch(()=>l(`cancel-stream-reader`));r.signal.addEventListener(`abort`,b,{once:!0});try{for(;;){let{done:t,value:n}=await v.read();if(r.signal.aborted)return m(f.status);if(t){let t=y.decode();t&&e.onChunk(t);break}p(),e.onChunk(y.decode(n,{stream:!0}))}}catch{if(r.signal.aborted)return m(f.status);if(e.signal.aborted)throw e.signal.reason;return{status:f.status,text:``,errorMessage:`Stream interrupted`,interrupted:!0}}return r.signal.removeEventListener(`abort`,b),{status:f.status,text:``}}finally{clearTimeout(a),e.signal.removeEventListener(`abort`,i)}},async listConversations(e={}){let n=Y(await f({method:`GET`,url:W.conversations(t,e),signal:e.signal,requireJsonBody:!0}));return{conversations:Array.isArray(n.conversations)?n.conversations.map(we).filter(e=>e.conversationId!==``):[],nextCursor:typeof n.next_cursor==`string`?n.next_cursor:null}},async getConversation(e){let n=Y(await f({method:`GET`,url:W.conversation(t,e.conversationId,e),signal:e.signal,requireJsonBody:!0}));if(!n.conversation||typeof n.conversation!=`object`)throw new D({status:200,kind:`invalid-response`});return{conversation:we(n.conversation),messages:Array.isArray(n.messages)?n.messages.map(Te):[],hasMoreBefore:n.has_more_before===!0,nextBeforeAbsoluteIndex:typeof n.next_before_absolute_index==`number`?n.next_before_absolute_index:null}},async deleteConversation(e){await f({method:`DELETE`,url:W.conversation(t,e.conversationId,{}),signal:e.signal})},async submitFeedback(e){await f({method:`PUT`,url:W.feedback(t,e.conversationId,e.messageId),body:{rating:e.rating,...e.reasonCodes?{reason_codes:e.reasonCodes}:{},...e.comment===void 0?{}:{comment:e.comment}},signal:e.signal})},async clearFeedback(e){await f({method:`DELETE`,url:W.feedback(t,e.conversationId,e.messageId),signal:e.signal})}}}function ke(...e){return e.filter(e=>!!(e&&e.trim())).join(`
|
|
9
|
+
`);if(o===`[DONE]`){i=!0;continue}let s;try{s=JSON.parse(o)}catch{s=void 0}let c=s;if(n===`error`){let e=typeof c?.message==`string`?c.message:o;r.push({type:`error`,message:e})}else if(c?.type===`response.output_text.delta`&&typeof c.delta==`string`){let e=T(c.delta);e&&r.push({type:`response.output_text.delta`,delta:e})}else c&&typeof c.type==`string`?r.push(c):n!==`message`&&r.push({type:`info`,message:`${n}: ${o}`})}return{events:r,remainder:n,done:i}}var D=class extends Error{status;kind;constructor(e){super(e.message??O(e),e.cause===void 0?void 0:{cause:e.cause}),this.name=`BaileyApiError`,this.status=e.status,this.kind=e.kind}};function ee(e,t=`Bailey`){switch(e.kind){case`http`:return`${t} request failed (status ${e.status})`;case`timeout`:return`${t} request timed out`;case`aborted`:return`${t} request aborted`;case`invalid-response`:return`${t} returned an unreadable response (status ${e.status})`;default:return`${t} request failed (network error)`}}var O=e=>ee(e),k=class extends Error{operation;constructor(e){super(`Bailey cleanup failed (${e.operation})`),this.name=`BaileyCleanupError`,this.operation=e.operation}},A={inaccurate:!0,unhelpful:!0,unsafe:!0,too_long:!0,other:!0},j=e=>Object.hasOwn(A,e)?e:`other`;function M(e){if(!e||e.rating!==`up`&&e.rating!==`down`)return;let t=(e.reasonCodes??[]).map(j);return{rating:e.rating,...t.length>0?{reasonCodes:t}:{},...e.comment?{comment:e.comment}:{}}}function N(e){let t=[];return e.messages.forEach((e,n)=>{if(e.hidden||e.role!==`user`&&e.role!==`assistant`)return;let r=Date.parse(e.createdAt),i=Number.isNaN(r)?void 0:r,a=e.messageId||`loaded-${n}-${e.role}-${i??0}`,o=e.role===`assistant`?M(e.feedback):void 0;t.push({id:a,role:e.role,content:e.content,streaming:!1,...i===void 0?{}:{createdAt:i},...e.role===`assistant`&&e.messageId?{serverMessageId:e.messageId}:{},...o?{feedback:o}:{}})}),t}var P=e=>e.serverMessageId??e.id;function te(e){let t=new Set(e.current.map(P)),n=e.earlier.filter(e=>!t.has(P(e)));return n.length===0?e.current:[...n,...e.current]}function F(e){let t=e.sub.trim();if(!t)return!1;let n=`${t}:`;return e.conversationId.startsWith(n)&&e.conversationId.length>n.length}function ne(e){let{client:t,getConversationId:n}=e,r=()=>{let e=n();if(!e)throw Error(`no conversation id`);return e};return{async onSubmit(e){let n=r();await t.submitFeedback({conversationId:n,messageId:e.messageId,rating:e.rating,...e.reasonCodes?{reasonCodes:e.reasonCodes}:{},...e.comment?{comment:e.comment}:{}})},async onClear({messageId:e}){let n=r();await t.clearFeedback({conversationId:n,messageId:e})}}}var re=`baileyai-chat-ui:conversation`;function ie(){return{get:e=>window.sessionStorage.getItem(e),set:(e,t)=>window.sessionStorage.setItem(e,t),remove:e=>window.sessionStorage.removeItem(e)}}function I(){let e=new Map;return{get:t=>e.get(t)??null,set:(t,n)=>void e.set(t,n),remove:t=>void e.delete(t)}}var ae=200,oe=100,se=[503,405],ce=15e4,L=`bailey`,R=()=>typeof crypto<`u`&&typeof crypto.randomUUID==`function`?crypto.randomUUID():`bailey-${Date.now()}-${Math.random().toString(36).slice(2)}`,le=(e,t,n,r)=>{if(t===401||t===403)return`${e} isn't reachable with your current login.`;let i=`${e} request failed (status ${t??`network error`}).`,a=(r||n||``).trim();return a?`${i} ${a.length>ae?`${a.slice(0,ae)}…`:a}`:i};function z(e,t,n){if(e)try{return e.get(t)||void 0}catch(e){n(e,`read`);return}}function B(e,t){t.signal.aborted||typeof e!=`string`||(t.historyStatus=e)}function ue(e,t,n,r){try{e?.set(t,n)}catch(e){r(e,`write`)}}function de(e,t,n){try{e?.remove(t)}catch(e){n(e,`remove`)}}var fe=(e,t)=>t?`${e}:${t}`:e;function pe(e){let{seed:t,sub:n,storage:r,key:i,report:a}=e;if(!n)return t||z(r,i,a);if(t&&F({conversationId:t,sub:n}))return t;let o=z(r,i,a);if(o){if(F({conversationId:o,sub:n}))return o;de(r,i,a)}}var V=({transport:e,model:t,instructions:n,assistantName:r=L,tools:i=[],toolChoice:a,firstUserMessagePrefix:o,onAssistantMessageComplete:s,idleTimeoutMs:c=ce,client:u,conversationId:d,sub:f,storage:p,storageKey:m=re,sendFullTranscript:h=!1,onStorageError:g,onContextLoss:_})=>{let[v,y]=(0,l.useState)([]),[b,x]=(0,l.useState)([]),[S,C]=(0,l.useState)(null),[T,O]=(0,l.useState)(`idle`),[k,A]=(0,l.useState)(null),j=f!==void 0&&f.trim()===``,M=j?void 0:f?.trim()||void 0,P=(0,l.useMemo)(()=>ie(),[]),I=j?null:p===void 0?P:p||null,ae=(0,l.useRef)(g),z=(0,l.useRef)(_);(0,l.useEffect)(()=>{ae.current=g,z.current=_},[g,_]);let V=(0,l.useCallback)((e,t)=>{try{ae.current?.(e,t)}catch{}},[]),me=e=>pe({seed:d,sub:M,storage:I,key:fe(m,M),report:e}),[he]=(0,l.useState)(()=>{let e=[];return{id:me((t,n)=>void e.push({error:t,operation:n})),errors:e}}),[H,ge]=(0,l.useState)(he.id),[U,_e]=(0,l.useState)(he.errors.length>0),W=(0,l.useCallback)((e,t)=>{_e(!0),V(e,t)},[V]);(0,l.useEffect)(()=>{he.errors.forEach(({error:e,operation:t})=>V(e,t))},[he,V]),(0,l.useEffect)(()=>{j&&V(Error(`sub is blank`),`key`)},[j,V]);let G=(0,l.useRef)(H),K=(0,l.useRef)({storage:I,key:fe(m,M),sub:M,sendFullTranscript:h});(0,l.useEffect)(()=>{K.current={storage:I,key:fe(m,M),sub:M,sendFullTranscript:h}},[I,m,M,h]);let ve=p===!1?`off`:U||j?`degraded`:`ok`,[ye,be]=(0,l.useState)(!1),[xe,q]=(0,l.useState)(`idle`),[Se,Ce]=(0,l.useState)(!1),J=(0,l.useRef)(0),Y=(0,l.useRef)(null),we=(0,l.useRef)(null),Te=(0,l.useRef)(!1),X=(0,l.useCallback)(()=>{J.current+=1,Y.current?.abort(),Y.current=null,we.current=null,Te.current=!1,Ce(!1),q(`idle`)},[]),Ee=(0,l.useRef)(u);(0,l.useEffect)(()=>{Ee.current=u},[u]),(0,l.useEffect)(()=>()=>Y.current?.abort(),[]);let De=(0,l.useRef)(null),Oe=(0,l.useRef)(``),Z=(0,l.useRef)(0),ke=(0,l.useRef)([]);(0,l.useEffect)(()=>{ke.current=v},[v]);let Q=(0,l.useRef)([]),Ae=(0,l.useRef)(new Map),$=(0,l.useRef)(new Map),je=(0,l.useRef)(null),Me=(0,l.useCallback)(()=>{je.current!==null&&(clearTimeout(je.current),je.current=null)},[]),Ne=(0,l.useCallback)(e=>{Me(),je.current=setTimeout(()=>{e.abort(new DOMException(`The assistant took too long to respond. Please try again.`,`TimeoutError`))},c)},[Me,c]);(0,l.useEffect)(()=>()=>{De.current?.abort(),Me()},[Me]);let Pe=(0,l.useCallback)(({reportedId:e,source:t,turn:n})=>{if(n.signal.aborted||typeof e!=`string`||!e)return;if(t===`event`)n.reportedId=e,n.reportedFromEvent=!0;else if(!n.reportedFromEvent)n.reportedId=e;else return;if(n.heldId||e===G.current)return;let{sub:r,storage:i,key:a}=K.current;(!r||F({conversationId:e,sub:r}))&&(G.current=e,ge(e),ue(i,a,e,W))},[W]),Fe=(0,l.useCallback)((e,t,n,r)=>{let i=e=>{n.push(e),x(t=>[...t,e])};if(t.type===`response.output_text.delta`){if(!t.delta)return!1;let n=Ae.current.get(e)??{raw:``,emittedCount:0};n.raw+=t.delta;let{cleanedText:r,matches:a}=w(n.raw),o=r.trim(),s=a.slice(n.emittedCount);if(n.emittedCount=a.length,Ae.current.set(e,n),$.current.set(e,o),y(t=>t.map(t=>t.id===e?{...t,content:o}:t)),s.length>0){let e=Date.now(),t=Z.current;s.forEach(n=>i({kind:`pseudo_tool_call`,name:n.name,args:n.args,at:e,turnSentAt:t}))}return!0}if(t.type===`response.output_item.added`||t.type===`response.output_item.done`){let n=t.item;if(n.type===`output_image`)return n.image_url&&y(t=>t.map(t=>t.id===e?{...t,parts:[...t.parts??[],{type:`image`,src:n.image_url}]}:t)),!0;if(n.type===`function_call`||n.type===`mcp_call`){let e=Date.now(),r=Z.current,a=n.name||`unknown_tool`;return i(t.type===`response.output_item.added`?{kind:`tool_start`,name:a,args:n.arguments,at:e,turnSentAt:r,callId:n.call_id,displayName:n.display_name}:{kind:`tool_end`,name:a,args:n.arguments,at:e,turnSentAt:r,callId:n.call_id,displayName:n.display_name,output:n.output,isError:n.is_error,runtimeSeconds:n.runtime_seconds,structuredOutput:n.structured_output}),!0}if(n.type===`llm_call`){let e=Date.now(),r=Z.current;return i(t.type===`response.output_item.added`?{kind:`llm_call_start`,request:n.request??[],at:e,turnSentAt:r}:{kind:`llm_call_end`,response:n.output,at:e,turnSentAt:r}),!0}return!1}if(t.type===`task.progress`)return i({kind:`progress`,status:t.status,message:t.message,at:Date.now(),turnSentAt:Z.current}),!0;if(t.type===`response.output_text.done`)return!1;if(t.type===`response.created`)return Pe({reportedId:t.response?.conversation?.id,source:`event`,turn:r}),B(t.response?.conversation?.history_status,r),!1;if(t.type===`response.completed`){Pe({reportedId:t.response?.conversation?.id,source:`event`,turn:r}),B(t.response?.conversation?.history_status,r);let n=typeof t.message_id==`string`&&t.message_id?t.message_id:void 0;n&&y(t=>t.map(t=>t.id===e?{...t,serverMessageId:n}:t));let i=Ae.current.get(e);if(i){let{cleanedText:t}=w(i.raw,{hideOpenBlock:!1}),n=t.trim();n!==$.current.get(e)&&($.current.set(e,n),y(t=>t.map(t=>t.id===e?{...t,content:n}:t)))}return!1}if(t.type===`info`)return i({kind:`info`,message:t.message,at:Date.now(),turnSentAt:Z.current}),!0;if(t.type===`mcp_app`){let n=t.resourceUri;if(!n)return i({kind:`raw`,eventType:t.type,raw:JSON.stringify(t),at:Date.now(),turnSentAt:Z.current}),!0;let{html:r,title:a,csp:o,permissions:s,prefersBorder:c,displayMode:l}=t;return y(t=>t.map(t=>t.id===e?{...t,parts:[...t.parts??[],{type:`mcp_app`,html:r,title:a,resourceUri:n,csp:o,permissions:s,prefersBorder:c,displayMode:l}]}:t)),!0}return i({kind:`raw`,eventType:t.type,raw:JSON.stringify(t),at:Date.now(),turnSentAt:Z.current}),!0},[Pe]),Ie=(0,l.useCallback)(async c=>{O(`streaming`),A(null),be(!1);let l=Date.now();Z.current=l;let u=R(),d={id:u,role:`assistant`,content:``,streaming:!0,createdAt:l};y(e=>[...e,d]),Q.current=[...c,d];let f=c.findIndex(e=>e.role===`user`&&!e.hidden),p=c.map((e,t)=>t===f&&o?{role:e.role,content:`${o}${e.content}`,hidden:e.hidden,titleHint:e.titleHint}:{role:e.role,content:e.content,hidden:e.hidden,titleHint:e.titleHint}),{sendFullTranscript:m}=K.current,h=m?void 0:G.current,g=h?p.slice(-1):p;C({model:t,systemPrompt:n,messages:g,tools:i,toolChoice:a,stream:!0,sentAt:l,streamStats:{chunkCount:0,firstChunkAt:null,lastChunkAt:null}});let _=new AbortController;De.current=_,Ne(_);let v={signal:_.signal,heldId:h},b=``,S=null,w=!1,T=!1,k=!1,j=[],M=(e,t)=>{O(`error`),A(e);let n={kind:`error`,message:e,at:Date.now(),turnSentAt:l,...t};j.push(n),x(e=>[...e,n])},N=(e,t)=>{e.forEach(e=>{if(e.type===`error`){S=e.message;let t={kind:`error`,message:e.message,at:Date.now(),turnSentAt:l};j.push(t),x(e=>[...e,t])}else e.type===`response.output_text.delta`&&e.delta&&(k=!0),Fe(u,e,j,v)&&(T=!0)}),t&&(w=!0,y(e=>e.map(e=>e.id===u?{...e,streaming:!1}:e)))};try{let{status:o,text:c,errorMessage:d,errorKind:f,interrupted:p}=await e.streamChat({model:t,instructions:n,input:g,tools:i,toolChoice:a,...h?{conversationId:h}:{},onConversationId:e=>Pe({reportedId:e,source:`header`,turn:v}),signal:_.signal,onChunk:e=>{Ne(_),b+=e;let{events:t,remainder:n,done:r}=E(b);b=n,N(t,r);let i=Date.now();C(e=>e&&e.sentAt===l?{...e,streamStats:{chunkCount:e.streamStats.chunkCount+1,firstChunkAt:e.streamStats.firstChunkAt??i,lastChunkAt:i}}:e)},onRequestId:e=>{C(t=>t&&t.sentAt===l?{...t,requestId:e}:t)},onMessageId:e=>{typeof e==`string`&&e&&y(t=>t.map(t=>t.id===u?{...t,serverMessageId:e}:t))}});if(b.trim()){let{events:e,done:t}=E(`${b}\n\n`);b=``,N(e,t)}if(S){O(`error`),A(S);return}if(f===`timeout`&&!w){M(d||`The assistant took too long to respond. Please try again.`,{source:`client-timeout`});return}if(p&&!w){M(`The connection was interrupted before the answer finished. Try again.`);return}if(o===void 0||o>=400){M(le(r,o,c,d),{httpStatus:o,rawBody:c||void 0});return}let m=v.reportedId,x=m!==h,D=v.historyStatus===`failed`||v.historyStatus===`empty`;if(h&&!v.signal.aborted&&(x||D)){G.current=void 0,ge(void 0),de(K.current.storage,K.current.key,W),X(),be(!0);try{z.current?.({sentId:h,...m?{reportedId:m}:{},reason:x?`id`:`history`})}catch{}}if(!T){M(`${r} returned an empty response.`);return}if(!k){M(`${r} ran some tools but didn't return an answer. Try asking again.`);return}O(`idle`);let ee=$.current.get(u)??``;C(e=>e&&e.sentAt===l?{...e,response:{content:ee}}:e),s&&await s({id:u,role:`assistant`,content:ee,streaming:!1},j)}catch(e){let t=e;if(t?.name===`TimeoutError`){M(t.message,{source:`client-timeout`});return}if(t?.name===`AbortError`){O(`idle`);return}M(t instanceof D?ee(t,r):t?.message||`${r} request failed.`)}finally{Me();let e=$.current.get(u)??``;Ae.current.delete(u),$.current.delete(u);let t=j.some(e=>e.kind===`tool_start`||e.kind===`tool_end`);y(e=>e.flatMap(e=>e.id===u?e.content||t?[{...e,streaming:!1}]:[]:[e])),Q.current=Q.current.flatMap(t=>t.id===u?e?[{...t,content:e,streaming:!1}]:[]:[t])}},[e,t,n,r,i,a,o,s,Fe,Pe,Ne,Me,W,X]),Le=(0,l.useCallback)(e=>{ke.current=e,y(e)},[]),Re=(0,l.useCallback)(e=>{let t=e.trim();if(!t)return;Oe.current=t;let n={id:R(),role:`user`,content:t,createdAt:Date.now()},r=[...Q.current,n];Q.current=r,Le([...ke.current,n]),Ie(r)},[Ie,Le]),ze=(0,l.useCallback)((e,t)=>{if(T===`streaming`)return;let n=e.trim();if(!n)return;Oe.current=n;let r=t?.trim(),i={id:R(),role:`user`,content:n,createdAt:Date.now(),hidden:!0,...r?{titleHint:r}:{}},a=[...Q.current,i];Q.current=a,Ie(a)},[Ie,T]),Be=(0,l.useCallback)(()=>{De.current?.abort()},[]),Ve=(0,l.useCallback)(()=>{if(T===`streaming`||!Oe.current)return;let e=ke.current,t=e[e.length-1],n=t&&t.role===`assistant`?e.slice(0,-1):e;Le(n);let r=Q.current,i=r[r.length-1],a=i&&i.role===`assistant`?r.slice(0,-1):r;Q.current=a,Ie(a)},[Ie,Le,T]),He=(0,l.useCallback)(()=>x([]),[]),Ue=(0,l.useCallback)(()=>{A(null),O(e=>e===`error`?`idle`:e)},[]),We=(0,l.useCallback)(()=>{De.current?.abort(),X(),be(!1),Le([]),Q.current=[],x([]),C(null),O(`idle`),A(null),Oe.current=``},[X,Le]),Ge=(0,l.useCallback)(()=>{We(),G.current=void 0,ge(void 0),de(K.current.storage,K.current.key,W)},[We,W]),Ke=(0,l.useRef)(M);(0,l.useEffect)(()=>{let e=Ke.current;if(e===M)return;Ke.current=M,e!==void 0&&We();let t=me(W);G.current=t,ge(t)},[M]);let qe=(0,l.useCallback)(e=>{De.current?.abort();let t=e.filter(e=>e.role===`user`||e.role===`assistant`).map(e=>({...e,streaming:!1}));Le(t.filter(e=>!e.hidden)),Q.current=t,x([]),C(null),O(`idle`),A(null),Oe.current=``},[Le]),Je=(0,l.useCallback)(e=>{X(),qe(e)},[X,qe]),Ye=(0,l.useCallback)(e=>{G.current=e,ge(e),ue(K.current.storage,K.current.key,e,W),be(!1)},[W]),Xe=(0,l.useCallback)(e=>{let t=e.hasMoreBefore&&e.nextBeforeAbsoluteIndex!==null;we.current=t?e.nextBeforeAbsoluteIndex:null,Ce(t)},[]),Ze=(0,l.useCallback)(async({conversationId:e})=>{let t=Ee.current,{sub:n}=K.current,r=!!e&&(!n||F({conversationId:e,sub:n}));if(!t||!r)throw q(`error`),Error(t?`invalid conversation id`:`no client`);De.current?.abort(),X();let i=J.current,a=new AbortController;Y.current=a,q(`loading`);try{let n=await t.getConversation({conversationId:e,limit:oe,signal:a.signal});if(i!==J.current)return;qe(N({messages:n.messages})),Ye(e),Xe(n),q(`idle`)}catch(e){if(i!==J.current)return;throw q(`error`),e}},[Xe,X,Ye,qe]),Qe=(0,l.useCallback)(async()=>{let e=Ee.current,t=G.current,n=we.current;if(!e||!t||n===null||Te.current)return;let r=J.current,i=new AbortController;Y.current=i,Te.current=!0,q(`loading`);try{let a=await e.getConversation({conversationId:t,limit:oe,beforeAbsoluteIndex:n,signal:i.signal});if(r!==J.current)return;let o=N({messages:a.messages});Q.current=te({current:Q.current,earlier:o}),y(e=>{let t=te({current:e,earlier:o});return ke.current=t,t}),Xe(a),q(`idle`)}catch(e){if(r!==J.current)return;throw q(`error`),e}finally{r===J.current&&(Te.current=!1)}},[Xe]),[$e,et]=(0,l.useState)();return{conversationId:H,persistence:ve,contextLost:ye,messages:v,traceEvents:b,lastRequest:S,status:T,error:k,send:Re,sendHidden:ze,stop:Be,retryLast:Ve,clearTrace:He,clearError:Ue,newChat:Ge,loadMessages:Je,loadConversation:Ze,loadEarlier:Qe,hasEarlier:Se,historyStatus:xe,feedback:(0,l.useMemo)(()=>{if(!u||$e===u)return;let e=ne({client:u,getConversationId:()=>H}),t=async e=>{try{await e()}catch(e){throw e instanceof D&&se.includes(e.status)&&et(u),e}},n=(e,t)=>y(n=>n.map(n=>n.serverMessageId===e?{...n,feedback:t}:n));return{onSubmit:async r=>{await t(()=>e.onSubmit(r));let{messageId:i,rating:a,reasonCodes:o,comment:s}=r;n(i,{rating:a,...o?{reasonCodes:o}:{},...s?{comment:s}:{}})},onClear:async r=>{await t(()=>e.onClear(r)),n(r.messageId,void 0)}}},[u,H,$e])}},me=e=>e instanceof D?e:new D({status:0,kind:`network`});function he(e){let{pageSize:t,enabled:n=!0}=e,[r,i]=(0,l.useState)([]),[a,o]=(0,l.useState)(n?`loading`:`idle`),[s,c]=(0,l.useState)(null),[u,d]=(0,l.useState)(null),f=(0,l.useRef)(e.client),p=(0,l.useRef)([]);(0,l.useEffect)(()=>{f.current=e.client,p.current=r});let m=(0,l.useRef)(null),h=(0,l.useRef)(null),g=(0,l.useCallback)(async e=>{h.current?.abort();let n=new AbortController;h.current=n,o(`loading`);try{let r=await f.current.listConversations({...t===void 0?{}:{limit:t},cursor:e===`append`?m.current??void 0:void 0,signal:n.signal});if(n.signal.aborted)return;i(t=>{if(e===`replace`)return r.conversations;let n=new Set(t.map(e=>e.conversationId));return[...t,...r.conversations.filter(e=>!n.has(e.conversationId))]}),m.current=r.nextCursor,d(r.nextCursor),c(null),o(`idle`)}catch(e){if(n.signal.aborted)return;c(me(e)),o(`error`)}},[t]);(0,l.useEffect)(()=>{if(n)return g(`replace`),()=>h.current?.abort()},[n,g]);let _=(0,l.useCallback)(()=>g(`replace`),[g]),v=(0,l.useCallback)(async()=>{m.current!==null&&await g(`append`)},[g]),y=(0,l.useCallback)(async({conversationId:e})=>{let t=p.current.findIndex(t=>t.conversationId===e),n=t===-1?void 0:{row:p.current[t],index:t};i(t=>t.filter(t=>t.conversationId!==e));try{await f.current.deleteConversation({conversationId:e})}catch(t){if(!n)throw t;let{row:r,index:a}=n;throw i(t=>{if(t.some(t=>t.conversationId===e))return t;let n=[...t];return n.splice(Math.min(a,n.length),0,r),n}),t}},[]);return{conversations:r,status:a,error:s,hasMore:u!==null,refresh:_,loadMore:v,remove:y}}function H(e){return e.replace(/\/+$/,``)}function ge(e,t){let n=new URLSearchParams;for(let[e,r]of Object.entries(t))r!==void 0&&n.set(e,String(r));let r=n.toString();return r?`${e}?${r}`:e}var U={responses(e){return`${H(e)}/responses`},conversations(e,t){return ge(`${H(e)}/conversations`,{limit:t.limit,cursor:t.cursor})},conversation(e,t,n){return ge(`${H(e)}/conversations/${encodeURIComponent(t)}`,{limit:n.limit,before_absolute_index:n.beforeAbsoluteIndex})},feedback(e,t,n){return`${H(e)}/conversations/${encodeURIComponent(t)}/messages/${encodeURIComponent(n)}/feedback`}};function _e(e){return{status:void 0,text:``,errorMessage:`Request failed`,errorKind:`network`,...e?{errorCause:e.cause}:{}}}var W=`The assistant took too long to respond. Please try again.`;function G(e){return{status:e.status,text:``,errorMessage:W,errorKind:`timeout`,errorCause:e.cause,...e.status===void 0?{}:{interrupted:!0}}}var K=3e4,ve=155e3,ye=`x-chat-id`,be=`header`,xe=`body`,q=`x-request-id`,Se=`x-conversation-id`,Ce=`x-message-id`,J=e=>e&&typeof e==`object`?e:{},Y=(e,t=``)=>typeof e==`string`?e:t,we=(e,t=0)=>typeof e==`number`?e:t;function Te(e){let t=J(e);return{conversationId:Y(t.conversation_id),title:typeof t.title==`string`?t.title:null,status:Y(t.status),messageCount:we(t.message_count),createdAt:Y(t.created_at),updatedAt:Y(t.updated_at)}}function X(e){if(!e||typeof e!=`object`)return null;let t=J(e);return{rating:Y(t.rating),reasonCodes:Array.isArray(t.reason_codes)?t.reason_codes.filter(e=>typeof e==`string`):[],comment:typeof t.comment==`string`?t.comment:null,...typeof t.updated_at==`string`?{updatedAt:t.updated_at}:{}}}function Ee(e){let t=J(e);return{messageId:Y(t.message_id),role:Y(t.role),content:Y(t.content),hidden:t.hidden===!0,createdAt:Y(t.created_at),feedback:X(t.feedback)}}function De(e){let t=new AbortController,n=!1,r=setTimeout(()=>{n=!0,t.abort()},e.timeoutMs),i=()=>t.abort(e.caller?.reason);return e.caller?.aborted?i():e.caller?.addEventListener(`abort`,i,{once:!0}),{signal:t.signal,timedOut:()=>n,dispose:()=>{clearTimeout(r),e.caller?.removeEventListener(`abort`,i)}}}function Oe(e){return e.timedOut()?new D({status:0,kind:`timeout`,cause:e.signal.reason}):new D({status:0,kind:`aborted`})}function Z(e){let{baseUrl:t,getHeaders:n,onAuthError:r,refreshAuth:i}=e,a=e.requestTimeoutMs??K,o=e.idleTimeoutMs??ve,s=e.conversationVia??be;if(s!==be&&s!==xe)throw TypeError(`createBaileyClient: conversationVia must be 'header' or 'body'`);let c=e.fetch??((e,t)=>globalThis.fetch(e,t));function l(t){try{e.onCleanupError?.(new k({operation:t}))}catch{}}function u(e){e.kind===`http`&&(e.status===401||e.status===403)&&r?.(e)}async function d(e){if(e.status!==401)return!1;try{await i?.()}catch{return!1}return e.body?.cancel().catch(()=>l(`cancel-response-body`)),!0}async function f(e){let t=De({caller:e.signal,timeoutMs:a});try{let r=async()=>{let r;try{r={Accept:`application/json`,...await n()}}catch{throw new D({status:0,kind:`network`})}if(t.signal.aborted)throw Oe(t);e.body!==void 0&&(r[`Content-Type`]=`application/json`);try{return await c(e.url,{method:e.method,headers:r,...e.body===void 0?{}:{body:JSON.stringify(e.body)},signal:t.signal})}catch(e){throw t.signal.aborted?Oe(t):new D({status:0,kind:`network`,cause:e})}},i=await r();if(await d(i)&&(i=await r()),!i.ok)throw i.body?.cancel().catch(()=>l(`cancel-response-body`)),new D({status:i.status,kind:`http`});if(i.status===204){if(e.requireJsonBody)throw new D({status:204,kind:`invalid-response`});return}try{let t=await i.json();if(e.requireJsonBody&&(typeof t!=`object`||!t||Array.isArray(t)))throw new D({status:i.status,kind:`invalid-response`});return t}catch(n){if(n instanceof D)throw n;if(t.timedOut()||t.signal.aborted)throw Oe(t);if(e.requireJsonBody)throw new D({status:i.status,kind:`invalid-response`});return}}catch(e){throw e instanceof D&&u(e),e}finally{t.dispose()}}return{streamChat:async e=>{let r=new AbortController,i=()=>r.abort(e.signal.reason);e.signal.aborted?i():e.signal.addEventListener(`abort`,i,{once:!0});let a,f,p=()=>{clearTimeout(a),a=setTimeout(()=>{f=new DOMException(W,`TimeoutError`),r.abort(f)},o)},m=t=>{if(f&&!e.signal.aborted)return G({cause:f,status:t});throw r.signal.reason};try{p();let i=e.input[e.input.length-1],a={...i?.hidden===!0?{hidden:!0}:{},...i?.titleHint?{title_hint:i.titleHint}:{}},o={model:e.model,instructions:e.instructions,input:e.input.map(({role:e,content:t})=>({role:e,content:t})),stream:!0,...Object.keys(a).length>0?{metadata:a}:{}};e.conversationId&&s===xe&&(o.conversation=e.conversationId),e.tools.length>0&&(o.tools=e.tools),e.toolChoice&&(o.tool_choice=e.toolChoice);let f;for(let i=!1;;i=!0){let a;try{a={Accept:`text/event-stream`,...await n()}}catch{return _e()}if(r.signal.aborted)return m();a[`Content-Type`]=`application/json`,e.conversationId&&s===be&&(a[ye]=e.conversationId);try{f=await c(U.responses(t),{method:`POST`,headers:a,body:JSON.stringify(o),signal:r.signal})}catch(e){return r.signal.aborted?m():_e({cause:e})}if(i||!await d(f))break}let h=f.headers.get(q);h&&e.onRequestId?.(h);let g=f.headers.get(Ce);if(g&&e.onMessageId?.(g),!f.ok){u(new D({status:f.status,kind:`http`}));let e=await f.text().catch(()=>``);return{status:f.status,text:e}}let _=f.headers.get(Se);if(_&&e.onConversationId?.(_),!f.body)return{status:f.status,text:``};let v=f.body.getReader(),y=new TextDecoder,b=()=>void v.cancel(r.signal.reason).catch(()=>l(`cancel-stream-reader`));r.signal.addEventListener(`abort`,b,{once:!0});try{for(;;){let{done:t,value:n}=await v.read();if(r.signal.aborted)return m(f.status);if(t){let t=y.decode();t&&e.onChunk(t);break}p(),e.onChunk(y.decode(n,{stream:!0}))}}catch{if(r.signal.aborted)return m(f.status);if(e.signal.aborted)throw e.signal.reason;return{status:f.status,text:``,errorMessage:`Stream interrupted`,interrupted:!0}}return r.signal.removeEventListener(`abort`,b),{status:f.status,text:``}}finally{clearTimeout(a),e.signal.removeEventListener(`abort`,i)}},async listConversations(e={}){let n=J(await f({method:`GET`,url:U.conversations(t,e),signal:e.signal,requireJsonBody:!0}));return{conversations:Array.isArray(n.conversations)?n.conversations.map(Te).filter(e=>e.conversationId!==``):[],nextCursor:typeof n.next_cursor==`string`?n.next_cursor:null}},async getConversation(e){let n=J(await f({method:`GET`,url:U.conversation(t,e.conversationId,e),signal:e.signal,requireJsonBody:!0}));if(!n.conversation||typeof n.conversation!=`object`)throw new D({status:200,kind:`invalid-response`});return{conversation:Te(n.conversation),messages:Array.isArray(n.messages)?n.messages.map(Ee):[],hasMoreBefore:n.has_more_before===!0,nextBeforeAbsoluteIndex:typeof n.next_before_absolute_index==`number`?n.next_before_absolute_index:null}},async deleteConversation(e){await f({method:`DELETE`,url:U.conversation(t,e.conversationId,{}),signal:e.signal})},async submitFeedback(e){await f({method:`PUT`,url:U.feedback(t,e.conversationId,e.messageId),body:{rating:e.rating,...e.reasonCodes?{reason_codes:e.reasonCodes}:{},...e.comment===void 0?{}:{comment:e.comment}},signal:e.signal})},async clearFeedback(e){await f({method:`DELETE`,url:U.feedback(t,e.conversationId,e.messageId),signal:e.signal})}}}function ke(...e){return e.filter(e=>!!(e&&e.trim())).join(`
|
|
10
10
|
|
|
11
11
|
`)}var Q=`call_tool`,Ae=`a tool`;function $(e,t){let n={name:e===Q?Ae:e,args:null,viaCallTool:!1};if(!t)return n;let r;try{r=JSON.parse(t)}catch{return n}if(typeof r!=`object`||!r)return n;let i=r;if(e===Q){let e=typeof i.name==`string`?i.name:void 0;if(!e)return n;let t=i.arguments;return{name:e,args:typeof t==`object`&&t?t:null,viaCallTool:!0}}return{name:e,args:i,viaCallTool:!1}}var je=5,Me=e=>e.type===`text`?e.value??``:(e.children??[]).map(Me).join(``),Ne=e=>{if(e.tagName===`a`&&e.properties?.href)return e.properties.href;for(let t of e.children??[]){let e=Ne(t);if(e)return e}},Pe=(e,t)=>(e.children??[]).find(e=>e.tagName===t),Fe=e=>{let t=Me(e),n=Ne(e);return n?{text:t,href:n}:{text:t}},Ie=e=>(e.children??[]).filter(e=>e.type===`element`).map(Fe),Le=e=>{if(e.tagName!==`table`)return null;let t=Pe(e,`thead`),n=t&&Pe(t,`tr`);return{headers:n?Ie(n).map(e=>e.text):[],rows:(Pe(e,`tbody`)?.children??[]).filter(e=>e.tagName===`tr`).map(Ie)}},Re=e=>e.length>5,ze='When a chart would help answer a question (e.g. plotting a trend over time), include a fenced code block tagged `chartjs` containing a JSON object with this exact shape: {"type": "bar" | "line" | "pie" | "doughnut" | "scatter", "title"?: string, "data": {"labels": string[], "datasets": [{"label": string, "data": number[]}]}}. For "scatter" charts, omit "labels" and give each dataset "data" as an array of {"x": number, "y": number} points instead of a number array. "pie" and "doughnut" charts must have exactly one dataset. Do not include any other fields (no "options", no colors) — the app handles styling. Example:\n```chartjs\n{"type": "line", "title": "BP readings", "data": {"labels": ["Jul 14", "Jul 21", "Jul 28"], "datasets": [{"label": "Systolic", "data": [120, 118, 122]}]}}\n```',Be=[`bar`,`line`,`pie`,`doughnut`,`scatter`],Ve=8,He=50,Ue=8,We=500,Ge=e=>typeof e==`object`&&!!e&&typeof e.x==`number`&&typeof e.y==`number`,Ke=e=>{let t;try{t=JSON.parse(e)}catch{return null}if(typeof t!=`object`||!t)return null;let n=t;if(typeof n.type!=`string`||!Be.includes(n.type))return null;let r=n.type;if(n.title!==void 0&&typeof n.title!=`string`)return null;let i=n.title;if(typeof n.data!=`object`||n.data===null)return null;let a=n.data;if(!Array.isArray(a.datasets)||a.datasets.length<1||a.datasets.length>Ve||(r===`pie`||r===`doughnut`)&&a.datasets.length!==1)return null;for(let e of a.datasets)if(typeof e!=`object`||!e||typeof e.label!=`string`||!Array.isArray(e.data))return null;let o=a.datasets;if(r===`scatter`){for(let e of o)if(e.data.length<1||e.data.length>We||!e.data.every(Ge))return null;return{type:r,title:i,data:{datasets:o}}}if(!Array.isArray(a.labels)||!a.labels.every(e=>typeof e==`string`))return null;let s=a.labels,c=r===`pie`||r===`doughnut`?Ue:He;if(s.length<1||s.length>c)return null;for(let e of o)if(e.data.length!==s.length||!e.data.every(e=>typeof e==`number`))return null;return{type:r,title:i,data:{labels:s,datasets:o}}},qe={tool_start:`Tool start`,tool_end:`Tool end`,pseudo_tool_call:`Narrated tool call`,llm_call_start:`LLM call start`,llm_call_end:`LLM call end`,progress:`Progress`,info:`Info`,error:`Error`,raw:`Raw event`};function Je(e){return e.kind!==`tool_start`&&e.kind!==`tool_end`?null:$(e.name,e.args)}function Ye(e,t=Je(e)){return e.kind===`pseudo_tool_call`?e.name:t?.name??null}function Xe(e,t=Je(e)){switch(e.kind){case`tool_start`:return t.viaCallTool?`${t.name} (via call_tool)`:t.name;case`tool_end`:return`${t.viaCallTool?`${t.name} (via call_tool)`:t.name}${e.runtimeSeconds===void 0?``:` — ${e.runtimeSeconds.toFixed(2)}s`}${e.isError?` — failed`:``}`;case`pseudo_tool_call`:return`${e.name} — written as text, not actually called`;case`llm_call_start`:return`LLM call — ${e.request.length} message${e.request.length===1?``:`s`}`;case`llm_call_end`:return`LLM call returned`;case`progress`:return e.message?`${e.status} — ${e.message}`:e.status;case`info`:return e.message;case`error`:return e.httpStatus?`${e.message} (HTTP ${e.httpStatus})`:e.message;case`raw`:return`Unrecognized event: ${e.eventType}`}}function Ze(e,t=Je(e)){return e.kind===`tool_start`||e.kind===`tool_end`?t.args?JSON.stringify(t.args,null,2):e.args??null:e.kind===`pseudo_tool_call`?e.args??null:e.kind===`llm_call_start`?JSON.stringify(e.request,null,2):null}function Qe(e){return e.kind===`tool_end`?e.output??null:e.kind===`llm_call_end`?e.response??null:null}function $e(e){return e.kind===`tool_end`&&e.structuredOutput?JSON.stringify(e.structuredOutput,null,2):null}function et(e){return e.kind===`raw`?e.raw:e.kind===`error`?e.rawBody??null:null}function tt(e){switch(e.kind){case`tool_start`:return`Calling ${$(e.name,e.args).name}...`;case`tool_end`:{let t=$(e.name,e.args).name;return e.isError?`${t} failed`:`${t} returned`}case`pseudo_tool_call`:return`${e.name} (written as text, not called)`;case`llm_call_start`:return`Calling the model...`;case`llm_call_end`:return`Model responded`;case`progress`:return e.message??e.status;case`info`:return e.message;case`error`:return e.source===`client-timeout`?`Timed out: ${e.message}`:`Error: ${e.message}`;case`raw`:return`Unrecognized event: ${e.eventType}`}}function nt(e){let t=new Date(e);return`${String(t.getHours()).padStart(2,`0`)}:${String(t.getMinutes()).padStart(2,`0`)}:${String(t.getSeconds()).padStart(2,`0`)}.${String(t.getMilliseconds()).padStart(3,`0`)}`}function rt(e){if(e<=0)return`+0ms`;if(e<1e3)return`+${Math.round(e)}ms`;let t=e/1e3;if(t<60)return`+${t.toFixed(1)}s`;let n=Math.floor(t/60),r=Math.round(t%60);return`+${n}m${String(r).padStart(2,`0`)}s`}function it(e){return e.map((t,n)=>{let r=Je(t),i=n===0?t.turnSentAt:e[n-1].at;return{key:`${t.at}-${n}`,kind:t.kind,toolName:Ye(t,r),isToolStart:t.kind===`tool_start`,failed:t.kind===`tool_end`&&t.isError===!0,time:nt(t.at),gapMs:t.at-i,label:t.kind===`tool_end`&&t.isError===!0?`Tool failed`:qe[t.kind],summary:Xe(t,r),argsDetail:Ze(t,r),outputDetail:Qe(t),structuredOutputDetail:$e(t),rawDetail:et(t)}})}function at(e){let t=e.filter(e=>e.kind===`tool_end`),n=t.filter(e=>e.kind===`tool_end`&&e.isError),r=e.filter(e=>e.kind===`llm_call_end`),i=e.filter(e=>e.kind===`error`),a=[];return r.length>0&&a.push(`${r.length} LLM call${r.length===1?``:`s`}`),t.length>0&&a.push(`${t.length} tool call${t.length===1?``:`s`}`+(n.length>0?`, ${n.length} failed`:``)),i.length>0&&a.push(`${i.length} stream error${i.length===1?``:`s`}`),a.join(` · `)}function ot(e){let t=[];for(let n of e){let e=t[t.length-1];n.toolName&&e?.type===`group`&&e.toolName===n.toolName?e.rows.push(n):t.push(n.toolName?{type:`group`,toolName:n.toolName,rows:[n]}:{type:`single`,row:n})}return t}function st(e){return e.some(e=>e.kind===`tool_end`&&e.isError||e.kind===`error`)}function ct(e,t){return t===void 0?[]:e.filter(e=>e.turnSentAt===t&&(e.kind===`tool_end`||e.kind===`pseudo_tool_call`||e.kind===`progress`)).map((e,t)=>({key:`${e.at}-${t}`,text:tt(e),toolName:Ye(e)}))}function lt(e,t){if(t===void 0)return[];let n=[];for(let r of e)if(r.turnSentAt===t){if(r.kind===`tool_start`){let e=$(r.name,r.args).name;n.push({key:`step-${n.length}`,callId:r.callId,toolName:e,label:r.displayName||e,status:`running`,startOffsetMs:r.at-t})}else if(r.kind===`tool_end`){let e=$(r.name,r.args).name,i=r.isError?`failed`:`done`,a=n.find(t=>t.status===`running`&&t.callId===r.callId&&t.toolName===e);a?(a.status=i,a.runtimeSeconds=r.runtimeSeconds,a.label=r.displayName||a.label):n.push({key:`step-${n.length}`,callId:r.callId,toolName:e,label:r.displayName||e,status:i,runtimeSeconds:r.runtimeSeconds,startOffsetMs:r.runtimeSeconds===void 0?void 0:Math.max(0,r.at-t-r.runtimeSeconds*1e3)})}}return n}var ut=`/*! tailwindcss v4.3.3 | MIT License | https://tailwindcss.com */
|
|
12
|
-
@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-font-weight:initial;--tw-shadow:0 0 #0000;--tw-shadow-color:initial;--tw-shadow-alpha:100%;--tw-inset-shadow:0 0 #0000;--tw-inset-shadow-color:initial;--tw-inset-shadow-alpha:100%;--tw-ring-color:initial;--tw-ring-shadow:0 0 #0000;--tw-inset-ring-color:initial;--tw-inset-ring-shadow:0 0 #0000;--tw-ring-inset:initial;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-offset-shadow:0 0 #0000;--tw-border-style:solid;--tw-ordinal:initial;--tw-slashed-zero:initial;--tw-numeric-figure:initial;--tw-numeric-spacing:initial;--tw-numeric-fraction:initial;--tw-space-y-reverse:0;--tw-outline-style:solid}}}@layer theme{:root,:host{--font-sans:"Inter", -apple-system, "Segoe UI", Roboto, Arial, sans-serif;--font-mono:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;--color-red-50:oklch(97.1% .013 17.38);--color-red-100:oklch(93.6% .032 17.717);--color-red-200:oklch(88.5% .062 18.334);--color-green-100:oklch(96.2% .044 156.743);--color-green-700:oklch(52.7% .154 150.069);--color-blue-100:oklch(93.2% .032 255.585);--color-blue-700:oklch(48.8% .243 264.376);--color-purple-100:oklch(94.6% .033 307.174);--color-purple-700:oklch(49.6% .265 301.924);--color-gray-50:oklch(98.5% .002 247.839);--color-gray-100:oklch(96.7% .003 264.542);--color-gray-200:oklch(92.8% .006 264.531);--color-gray-400:oklch(70.7% .022 261.325);--color-gray-600:oklch(44.6% .03 256.802);--color-gray-700:oklch(37.3% .034 259.733);--color-black:#000;--color-white:#fff;--spacing:.25rem;--container-3xl:48rem;--text-xs:.75rem;--text-xs--line-height:calc(1 / .75);--text-sm:.875rem;--text-sm--line-height:calc(1.25 / .875);--text-base:1rem;--text-base--line-height:calc(1.5 / 1);--text-lg:1.125rem;--text-lg--line-height:calc(1.75 / 1.125);--text-xl:1.25rem;--text-xl--line-height:calc(1.75 / 1.25);--font-weight-medium:500;--font-weight-semibold:600;--leading-relaxed:1.625;--radius-md:.375rem;--radius-lg:.5rem;--radius-xl:.75rem;--radius-2xl:1rem;--animate-spin:spin 1s linear infinite;--default-transition-duration:.15s;--default-transition-timing-function:cubic-bezier(.4, 0, .2, 1);--color-bailey-accent:#4f46e5;--color-bailey-bubble-bg:#fff;--color-bailey-error:#d32f2f;--color-bailey-border:#e5e5e5;--color-bailey-surface:#fff;--color-bailey-surface-muted:#f9fafb;--color-bailey-text:#000;--color-bailey-text-secondary:#6b6b6b;--color-bailey-tooltip-bg:#000;--color-bailey-tooltip-text:#fff;--color-bailey-page-bg:#eceef4;--color-bailey-heart:#16a34a}}@layer utilities;.bailey-chat-panel{box-sizing:border-box;background-color:var(--color-bailey-page-bg);height:100%;padding:calc(var(--spacing) * 3);font-family:var(--font-sans);flex-direction:column;display:flex;position:relative}.bailey-chat-panel-inner{width:100%;min-height:0;max-width:var(--container-3xl);gap:calc(var(--spacing) * 2);flex-direction:column;flex:1;margin-inline:auto;display:flex;overflow-y:auto}.bailey-chat-transcript{min-height:0;padding:calc(var(--spacing) * 2);padding-bottom:calc(var(--spacing) * 4);flex:1;overflow-y:auto}.bailey-message-row{margin-bottom:calc(var(--spacing) * 3);justify-content:flex-start;display:flex}.bailey-message-row-user{justify-content:flex-end}.bailey-user-message{flex-direction:column;align-items:flex-end;max-width:75%;display:flex}.bailey-message-meta{margin-bottom:var(--spacing);align-items:center;gap:calc(var(--spacing) * 2);font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height));color:var(--color-bailey-text-secondary);display:flex}.bailey-message-meta-name{--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium);color:var(--color-bailey-text)}.bailey-user-bubble{border-radius:var(--radius-2xl);background-color:var(--color-bailey-bubble-bg);max-width:100%;padding-inline:calc(var(--spacing) * 4);padding-block:calc(var(--spacing) * 2);white-space:pre-wrap;color:var(--color-bailey-text);--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a), 0 1px 2px -1px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.bailey-assistant-message{width:100%;padding-inline:var(--spacing)}.bailey-tool-result-image{margin-top:calc(var(--spacing) * 2);border-radius:var(--radius-lg);max-width:100%;height:auto;display:block}.bailey-mcp-app-frame{margin-top:calc(var(--spacing) * 2);border-radius:var(--radius-lg);border-style:var(--tw-border-style);border-width:0;width:100%;height:480px;display:block}.bailey-thinking-hint{align-items:center;gap:calc(var(--spacing) * 2);font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height));color:var(--color-bailey-text-secondary);font-style:italic;display:flex}.bailey-streaming-hint{margin-top:var(--spacing);align-items:center;gap:calc(var(--spacing) * 2);font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height));color:var(--color-bailey-text-secondary);font-style:italic;display:flex}.bailey-message-actions{margin-top:var(--spacing);align-items:center;gap:var(--spacing);flex-wrap:wrap;display:flex}.bailey-empty-state{text-align:center;height:100%;font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height));color:var(--color-bailey-text-secondary);justify-content:center;align-items:center;display:flex}.bailey-suggestions{gap:calc(var(--spacing) * 3);padding:calc(var(--spacing) * 2);flex-direction:column;display:flex}.bailey-chat-transcript[data-suggestions-align=end]{flex-direction:column;display:flex}.bailey-suggestions[data-align=end]{align-items:flex-end;margin-top:auto}.bailey-suggestions-title{padding-inline:var(--spacing);font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height));--tw-font-weight:var(--font-weight-semibold);font-weight:var(--font-weight-semibold);color:var(--color-bailey-text)}.bailey-suggestion-card{cursor:pointer;appearance:none;justify-content:space-between;align-items:center;gap:calc(var(--spacing) * 2);background-color:var(--color-bailey-surface);padding-inline:calc(var(--spacing) * 4);padding-block:calc(var(--spacing) * 3);text-align:left;font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height));color:var(--color-bailey-text);--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a), 0 1px 2px -1px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);transition-property:box-shadow;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration));display:flex}@media (hover:hover){.bailey-suggestion-card:hover{--tw-shadow:0 4px 6px -1px var(--tw-shadow-color,#0000001a), 0 2px 4px -2px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}}.bailey-suggestion-card{border:var(--bailey-suggestion-border,none);border-radius:var(--bailey-suggestion-radius,1rem);font-weight:var(--bailey-suggestion-font-weight,normal)}.bailey-suggestion-icon{height:calc(var(--spacing) * 4);width:calc(var(--spacing) * 4);color:var(--color-bailey-text-secondary);flex-shrink:0}.bailey-privacy-note{border-top-style:var(--tw-border-style);border-top-width:1px;border-color:var(--color-bailey-border);padding-inline:calc(var(--spacing) * 4);padding-top:calc(var(--spacing) * 3);padding-bottom:var(--spacing);text-align:center;font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height));color:var(--color-bailey-text-secondary)}.bailey-privacy-note a{color:var(--color-bailey-text-secondary);text-decoration-line:underline}.bailey-tool-steps-live{margin-top:calc(var(--spacing) * 2);gap:calc(var(--spacing) * 2);flex-direction:column;display:flex}.bailey-activity-line{align-items:center;gap:calc(var(--spacing) * 2);font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height));color:var(--color-bailey-text-secondary);display:flex}.bailey-activity-icon{height:calc(var(--spacing) * 4);width:calc(var(--spacing) * 4);color:var(--color-bailey-accent);flex-shrink:0}.bailey-step-spinner{height:calc(var(--spacing) * 3);width:calc(var(--spacing) * 3);border-style:var(--tw-border-style);border-width:2px;border-color:var(--color-bailey-border);border-top-color:var(--color-bailey-accent);border-radius:2147483647px;flex-shrink:0}@media (prefers-reduced-motion:no-preference){.bailey-step-spinner{animation:var(--animate-spin)}}.bailey-tool-steps-summary{margin-bottom:calc(var(--spacing) * 2);font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height));color:var(--color-bailey-text-secondary)}.bailey-tool-steps-summary>summary{cursor:pointer;-webkit-user-select:none;user-select:none}.bailey-tool-steps-list{margin:0;margin-top:var(--spacing);gap:var(--spacing);flex-direction:column;padding:0;list-style-type:none;display:flex}.bailey-tool-step{align-items:center;gap:calc(var(--spacing) * 2);display:flex}.bailey-tool-step-start{--tw-numeric-spacing:tabular-nums;font-variant-numeric:var(--tw-ordinal,) var(--tw-slashed-zero,) var(--tw-numeric-figure,) var(--tw-numeric-spacing,) var(--tw-numeric-fraction,)}.bailey-tool-step-failed{color:var(--color-bailey-error)}.bailey-error-banner{margin-bottom:calc(var(--spacing) * 2);justify-content:space-between;align-items:center;gap:calc(var(--spacing) * 2);border-radius:var(--radius-md);border-style:var(--tw-border-style);border-width:1px;border-color:var(--color-bailey-error);padding-inline:calc(var(--spacing) * 3);padding-block:calc(var(--spacing) * 2);color:var(--color-bailey-error);display:flex}.bailey-retry-button{cursor:pointer;appearance:none;--tw-border-style:none;font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height));--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium);background-color:#0000;border-style:none;text-decoration-line:underline}.bailey-error-actions{align-items:center;gap:calc(var(--spacing) * 2);display:flex}.bailey-dismiss-button{cursor:pointer;appearance:none;--tw-border-style:none;color:var(--color-bailey-error);background-color:#0000;border-style:none}@media (hover:hover){.bailey-dismiss-button:hover{opacity:.7}}.bailey-input-area{align-items:center;gap:calc(var(--spacing) * 2);display:flex}.bailey-input-row{align-items:center;gap:calc(var(--spacing) * 2);border-style:var(--tw-border-style);background-color:var(--color-bailey-surface);min-width:0;padding-inline:calc(var(--spacing) * 2);padding-block:calc(var(--spacing) * 1.5);--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a), 0 1px 2px -1px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);border-width:1px;flex:1;display:flex}.bailey-input-row:focus-within{border-color:var(--color-bailey-accent)}.bailey-input-row{border-radius:var(--bailey-input-radius,9999px);border-color:var(--bailey-input-border-color,var(--color-bailey-border))}.bailey-input{--tw-border-style:none;min-width:0;padding-inline:calc(var(--spacing) * 3);padding-block:calc(var(--spacing) * 2);--tw-outline-style:none;background-color:#0000;border-style:none;outline-style:none;flex:1}.bailey-input:disabled{opacity:.5}.bailey-send-button,.bailey-stop-button{cursor:pointer;appearance:none;background-color:#0000;border-radius:2147483647px;flex-shrink:0;justify-content:center;align-items:center;display:flex}:is(.bailey-send-button,.bailey-stop-button):disabled{cursor:default;opacity:.4}.bailey-send-button{height:calc(var(--spacing) * 9);width:calc(var(--spacing) * 9);--tw-border-style:none;color:var(--bailey-send-fg,var(--color-bailey-heart));background-color:var(--bailey-send-bg,transparent);border-style:none}@media (hover:hover){.bailey-send-button:hover{background-color:var(--bailey-send-bg-hover,#16a34a1a)}@supports (color:color-mix(in lab, red, red)){.bailey-send-button:hover{background-color:var(--bailey-send-bg-hover,color-mix(in oklab, var(--color-bailey-heart) 10%, transparent))}}}.bailey-send-icon{height:calc(var(--spacing) * 5);width:calc(var(--spacing) * 5)}.bailey-stop-button{height:calc(var(--spacing) * 9);width:calc(var(--spacing) * 9);--tw-border-style:none;color:var(--bailey-stop-fg,var(--color-bailey-error));background-color:var(--bailey-stop-bg,transparent);border-style:none}@media (hover:hover){.bailey-stop-button:hover{background-color:var(--bailey-stop-bg-hover,#d32f2f1a)}@supports (color:color-mix(in lab, red, red)){.bailey-stop-button:hover{background-color:var(--bailey-stop-bg-hover,color-mix(in oklab, var(--color-bailey-error) 10%, transparent))}}}.bailey-stop-icon{height:calc(var(--spacing) * 4);width:calc(var(--spacing) * 4)}.bailey-copy-button{height:calc(var(--spacing) * 7);width:calc(var(--spacing) * 7);cursor:pointer;appearance:none;--tw-border-style:none;color:var(--color-bailey-text-secondary);background-color:#0000;border-style:none;border-radius:2147483647px;justify-content:center;align-items:center;display:flex}@media (hover:hover){.bailey-copy-button:hover{background-color:#0000000d}@supports (color:color-mix(in lab, red, red)){.bailey-copy-button:hover{background-color:color-mix(in oklab, var(--color-black) 5%, transparent)}}.bailey-copy-button:hover{color:var(--color-bailey-text)}}.bailey-copy-icon{height:calc(var(--spacing) * 4);width:calc(var(--spacing) * 4)}.bailey-tooltip-content{padding-inline:calc(var(--spacing) * 2);padding-block:var(--spacing);font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height));background-color:var(--color-bailey-tooltip-bg,#000);color:var(--color-bailey-tooltip-text,#fff);border-radius:.25rem}.bailey-menu-button{height:calc(var(--spacing) * 13);width:calc(var(--spacing) * 13);cursor:pointer;appearance:none;border-style:var(--tw-border-style);border-width:1px;border-color:var(--color-bailey-border);background-color:var(--color-bailey-surface);color:var(--color-bailey-text);--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a), 0 1px 2px -1px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);border-radius:2147483647px;flex-shrink:0;justify-content:center;align-items:center;display:flex}@media (hover:hover){.bailey-menu-button:hover{background-color:var(--color-gray-50)}}.bailey-menu-icon{height:calc(var(--spacing) * 5);width:calc(var(--spacing) * 5)}.bailey-menu-content{z-index:50;min-width:calc(var(--spacing) * 44);border-radius:var(--radius-2xl);background-color:var(--color-white);padding-block:calc(var(--spacing) * 2);font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height));color:var(--color-black);--tw-shadow:0 10px 15px -3px var(--tw-shadow-color,#0000001a), 0 4px 6px -4px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);font-family:var(--font-sans,"Inter", -apple-system, "Segoe UI", Roboto, Arial, sans-serif)}.bailey-menu-item{cursor:pointer;align-items:center;gap:calc(var(--spacing) * 3);padding-inline:calc(var(--spacing) * 4);padding-block:calc(var(--spacing) * 2);--tw-outline-style:none;outline-style:none;display:flex}.bailey-menu-item[data-highlighted]{background-color:var(--color-gray-100)}.bailey-menu-item-icon{height:calc(var(--spacing) * 4);width:calc(var(--spacing) * 4);color:var(--color-gray-600)}.bailey-tooltip-arrow{fill:var(--color-bailey-tooltip-bg,#000)}.bailey-markdown-content table{border-collapse:collapse;width:100%;font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}.bailey-markdown-content th{background-color:var(--color-bailey-surface-muted);padding-inline:calc(var(--spacing) * 3);padding-block:calc(var(--spacing) * 2);text-align:left;--tw-font-weight:var(--font-weight-semibold);font-weight:var(--font-weight-semibold)}.bailey-markdown-content td{border-style:var(--tw-border-style);border-width:1px;border-color:var(--color-bailey-border);padding-inline:calc(var(--spacing) * 3);padding-block:calc(var(--spacing) * 2);vertical-align:top}.bailey-markdown-content tr:nth-child(2n){background-color:var(--color-bailey-surface-muted)}.bailey-markdown-content{font-size:var(--bailey-markdown-font-size,var(--text-sm));line-height:var(--bailey-markdown-line-height,var(--leading-relaxed))}.bailey-markdown-content>:first-child{margin-top:0}.bailey-markdown-content>:last-child{margin-bottom:0}.bailey-markdown-content p{margin-block:var(--bailey-markdown-paragraph-gap,calc(var(--spacing) * 2))}.bailey-markdown-content h1{margin-top:calc(var(--spacing) * 4);margin-bottom:calc(var(--spacing) * 2);font-size:var(--text-xl);line-height:var(--tw-leading,var(--text-xl--line-height));--tw-font-weight:var(--font-weight-semibold);font-weight:var(--font-weight-semibold)}.bailey-markdown-content h2{margin-top:calc(var(--spacing) * 4);margin-bottom:calc(var(--spacing) * 2);font-size:var(--text-lg);line-height:var(--tw-leading,var(--text-lg--line-height));--tw-font-weight:var(--font-weight-semibold);font-weight:var(--font-weight-semibold)}.bailey-markdown-content h3{margin-top:calc(var(--spacing) * 3);margin-bottom:calc(var(--spacing) * 1.5);font-size:var(--text-base);line-height:var(--tw-leading,var(--text-base--line-height));--tw-font-weight:var(--font-weight-semibold);font-weight:var(--font-weight-semibold)}.bailey-markdown-content h4,.bailey-markdown-content h5,.bailey-markdown-content h6{margin-top:calc(var(--spacing) * 3);margin-bottom:calc(var(--spacing) * 1.5);font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height));--tw-font-weight:var(--font-weight-semibold);font-weight:var(--font-weight-semibold)}.bailey-markdown-content ul{margin-block:calc(var(--spacing) * 2);list-style-type:disc}:where(.bailey-markdown-content ul>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(var(--spacing) * var(--tw-space-y-reverse));margin-block-end:calc(var(--spacing) * calc(1 - var(--tw-space-y-reverse)))}.bailey-markdown-content ul{padding-left:calc(var(--spacing) * 5)}.bailey-markdown-content ol{margin-block:calc(var(--spacing) * 2);list-style-type:decimal}:where(.bailey-markdown-content ol>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(var(--spacing) * var(--tw-space-y-reverse));margin-block-end:calc(var(--spacing) * calc(1 - var(--tw-space-y-reverse)))}.bailey-markdown-content ol{padding-left:calc(var(--spacing) * 5)}.bailey-markdown-content a{color:var(--color-bailey-accent);text-underline-offset:2px;text-decoration-line:underline}.bailey-markdown-content code{background-color:var(--color-bailey-surface-muted);padding-inline:var(--spacing);padding-block:calc(var(--spacing) * .5);font-family:var(--font-mono);border-radius:.25rem;font-size:.85em}.bailey-markdown-content pre{margin-block:calc(var(--spacing) * 2);border-radius:var(--radius-md);background-color:var(--color-bailey-surface-muted);padding:calc(var(--spacing) * 2);overflow-x:auto}.bailey-markdown-content pre code{background-color:#0000;padding:0}.bailey-markdown-content blockquote{margin-block:calc(var(--spacing) * 2);border-left-style:var(--tw-border-style);border-left-width:2px;border-color:var(--color-bailey-border);padding-left:calc(var(--spacing) * 3);color:var(--color-bailey-text-secondary);font-style:italic}.bailey-markdown-content hr{margin-block:calc(var(--spacing) * 3);border-color:var(--color-bailey-border)}.bailey-trace-panel{margin-bottom:calc(var(--spacing) * 2)}.bailey-trace-toggle-row{align-items:center;gap:calc(var(--spacing) * 2);display:flex}.bailey-trace-toggle{cursor:pointer;appearance:none;--tw-border-style:none;font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height));color:var(--color-bailey-accent);background-color:#0000;border-style:none}@media (hover:hover){.bailey-trace-toggle:hover{text-decoration-line:underline}}.bailey-trace-toggle-error{color:var(--color-bailey-error)}.bailey-trace-summary{font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height));color:var(--color-bailey-text-secondary)}.bailey-trace-summary-error{color:var(--color-bailey-error)}.bailey-trace-body{margin-top:var(--spacing);max-height:calc(var(--spacing) * 80);overflow-y:auto}.bailey-trace-actions-row{justify-content:flex-end;gap:calc(var(--spacing) * 3);display:flex}.bailey-trace-copy-button{cursor:pointer;appearance:none;--tw-border-style:none;font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height));color:var(--color-bailey-accent);background-color:#0000;border-style:none;text-decoration-line:underline}@media (hover:hover){.bailey-trace-copy-button:hover{text-decoration-line:none}}.bailey-trace-request-details{margin-bottom:var(--spacing);border-radius:var(--radius-md);border-style:var(--tw-border-style);border-width:1px;border-color:var(--color-bailey-border);background-color:var(--color-bailey-surface);padding:calc(var(--spacing) * 2)}.bailey-trace-request-meta{font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height));color:var(--color-bailey-text-secondary);display:block}.bailey-trace-rows{gap:var(--spacing);flex-direction:column;display:flex}.bailey-trace-row{border-radius:var(--radius-md);border-style:var(--tw-border-style);border-width:1px;border-color:var(--color-bailey-border);padding-inline:calc(var(--spacing) * 2);padding-block:var(--spacing);font-family:var(--font-mono);font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height))}.bailey-trace-row-header{align-items:center;gap:calc(var(--spacing) * 2);flex-wrap:wrap;display:flex}.bailey-trace-row-time{color:var(--color-bailey-text-secondary)}.bailey-trace-row-gap{color:var(--color-gray-400)}.bailey-trace-row-summary{word-break:break-all}.bailey-trace-chip{padding-inline:calc(var(--spacing) * 1.5);padding-block:calc(var(--spacing) * .5);--tw-font-weight:var(--font-weight-semibold);font-size:.65rem;font-weight:var(--font-weight-semibold);border-radius:.25rem}.bailey-trace-chip-default{background-color:var(--color-gray-200);color:var(--color-gray-700)}.bailey-trace-chip-info{background-color:var(--color-blue-100);color:var(--color-blue-700)}.bailey-trace-chip-success{background-color:var(--color-green-100);color:var(--color-green-700)}.bailey-trace-chip-secondary{background-color:var(--color-purple-100);color:var(--color-purple-700)}.bailey-trace-chip-error{background-color:var(--color-red-100);color:var(--color-bailey-error)}.bailey-trace-disclosure{margin-top:var(--spacing)}.bailey-trace-disclosure-summary{cursor:pointer;color:var(--color-bailey-text-secondary);font-size:.7rem}.bailey-trace-disclosure-actions{margin-top:var(--spacing);justify-content:flex-end;display:flex}.bailey-trace-disclosure-content{margin-top:var(--spacing);max-height:calc(var(--spacing) * 48);border-style:var(--tw-border-style);border-width:1px;border-color:var(--color-bailey-border);background-color:var(--color-bailey-surface-muted);padding:calc(var(--spacing) * 1.5);word-break:break-all;white-space:pre-wrap;border-radius:.25rem;font-size:.7rem;overflow:auto}.bailey-trace-group{border-radius:var(--radius-md);border-style:var(--tw-border-style);border-width:1px;border-color:var(--color-bailey-border);padding-inline:calc(var(--spacing) * 2);padding-block:var(--spacing)}.bailey-trace-group-summary{cursor:pointer;font-family:var(--font-mono);font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height))}.bailey-trace-group-failed{margin-left:var(--spacing);font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height));color:var(--color-bailey-error)}.bailey-feedback{align-items:center;gap:var(--spacing);font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height));color:var(--color-bailey-text);flex-wrap:wrap;display:flex}.bailey-message-actions>.bailey-feedback{display:contents}.bailey-feedback-thumbs{margin-left:var(--spacing);align-items:center;gap:calc(var(--spacing) * .5);border-left-style:var(--tw-border-style);border-left-width:1px;border-color:var(--color-bailey-border);padding-left:calc(var(--spacing) * 2);display:flex}.bailey-feedback-thumb{height:calc(var(--spacing) * 7);width:calc(var(--spacing) * 7);cursor:pointer;appearance:none;border-radius:var(--radius-lg);--tw-border-style:none;color:var(--color-bailey-text-secondary);background-color:#0000;border-style:none;justify-content:center;align-items:center;display:flex}@media (hover:hover){.bailey-feedback-thumb:hover{background-color:#0000000d}@supports (color:color-mix(in lab, red, red)){.bailey-feedback-thumb:hover{background-color:color-mix(in oklab, var(--color-black) 5%, transparent)}}.bailey-feedback-thumb:hover{color:var(--color-bailey-text)}}.bailey-feedback-thumb:focus-visible{outline-style:var(--tw-outline-style);outline-width:2px;outline-color:var(--color-bailey-accent)}.bailey-feedback-thumb:disabled{cursor:default;opacity:.5}.bailey-feedback-thumb[aria-pressed=true]{background-color:#4f46e51a}@supports (color:color-mix(in lab, red, red)){.bailey-feedback-thumb[aria-pressed=true]{background-color:color-mix(in oklab, var(--color-bailey-accent) 10%, transparent)}}.bailey-feedback-thumb[aria-pressed=true]{color:var(--color-bailey-accent)}.bailey-feedback-icon{height:calc(var(--spacing) * 4);width:calc(var(--spacing) * 4)}.bailey-feedback-status{align-items:center;gap:calc(var(--spacing) * 1.5);font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height));color:var(--color-bailey-text-secondary);display:inline-flex}.bailey-feedback-status:empty{display:none}.bailey-feedback-spinner{height:calc(var(--spacing) * 3);width:calc(var(--spacing) * 3);animation:var(--animate-spin);border-style:var(--tw-border-style);border-width:2px;border-color:var(--color-bailey-border);border-top-color:var(--color-bailey-accent);border-radius:2147483647px;display:inline-block}.bailey-feedback-link{cursor:pointer;appearance:none;--tw-border-style:none;padding-inline:var(--spacing);font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height));color:var(--color-bailey-accent);background-color:#0000;border-style:none;text-decoration-line:underline}.bailey-feedback-link:focus-visible{outline-style:var(--tw-outline-style);outline-width:2px;outline-color:var(--color-bailey-accent)}.bailey-feedback-error{font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height));color:var(--color-bailey-error)}.bailey-feedback-form{margin-top:calc(var(--spacing) * 2);box-sizing:border-box;border-radius:var(--radius-xl);border-style:var(--tw-border-style);border-width:1px;border-color:var(--color-bailey-border);background-color:var(--color-bailey-surface);width:100%;padding:calc(var(--spacing) * 3);flex-basis:100%}.bailey-feedback-reasons{margin:0;margin-bottom:calc(var(--spacing) * 2);--tw-border-style:none;border-style:none;min-width:0;padding:0}.bailey-feedback-legend{margin-bottom:calc(var(--spacing) * 1.5);font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height));--tw-font-weight:var(--font-weight-semibold);font-weight:var(--font-weight-semibold);color:var(--color-bailey-text);padding:0;display:block}.bailey-feedback-chips{gap:calc(var(--spacing) * 1.5);flex-wrap:wrap;display:flex}.bailey-feedback-chip{cursor:pointer;appearance:none;border-style:var(--tw-border-style);border-width:1px;border-color:var(--color-bailey-border);background-color:var(--color-bailey-surface);padding-inline:calc(var(--spacing) * 3);padding-block:var(--spacing);font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height));color:var(--color-bailey-text);border-radius:2147483647px}.bailey-feedback-chip:focus-visible{outline-style:var(--tw-outline-style);outline-width:2px;outline-color:var(--color-bailey-accent)}.bailey-feedback-chip:disabled{cursor:default;opacity:.5}.bailey-feedback-chip[aria-pressed=true]{border-color:var(--color-bailey-accent);background-color:#4f46e51a}@supports (color:color-mix(in lab, red, red)){.bailey-feedback-chip[aria-pressed=true]{background-color:color-mix(in oklab, var(--color-bailey-accent) 10%, transparent)}}.bailey-feedback-chip[aria-pressed=true]{--tw-font-weight:var(--font-weight-semibold);font-weight:var(--font-weight-semibold);color:var(--color-bailey-accent)}.bailey-feedback-textarea{box-sizing:border-box;min-height:calc(var(--spacing) * 18);resize:vertical;border-radius:var(--radius-lg);border-style:var(--tw-border-style);border-width:1px;border-color:var(--color-bailey-border);background-color:var(--color-bailey-surface);width:100%;padding-inline:calc(var(--spacing) * 2.5);padding-block:calc(var(--spacing) * 2);font-family:var(--font-sans);font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height));color:var(--color-bailey-text);display:block}.bailey-feedback-textarea:disabled{opacity:.5}.bailey-feedback-meta{margin-top:calc(var(--spacing) * 1.5);justify-content:space-between;align-items:flex-start;gap:calc(var(--spacing) * 3);font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height));color:var(--color-bailey-text-secondary);display:flex}.bailey-feedback-buttons{margin-top:calc(var(--spacing) * 2.5);justify-content:flex-end;gap:calc(var(--spacing) * 2);display:flex}.bailey-feedback-button{cursor:pointer;appearance:none;border-radius:var(--radius-lg);border-style:var(--tw-border-style);border-width:1px;border-color:var(--color-bailey-border);background-color:var(--color-bailey-surface);padding-inline:calc(var(--spacing) * 3.5);padding-block:calc(var(--spacing) * 1.5);font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height));color:var(--color-bailey-text)}.bailey-feedback-button:focus-visible{outline-style:var(--tw-outline-style);outline-width:2px;outline-color:var(--color-bailey-accent)}.bailey-feedback-button:disabled{cursor:default;opacity:.5}.bailey-feedback-button-primary{border-color:var(--color-bailey-accent);background-color:var(--color-bailey-accent);--tw-font-weight:var(--font-weight-semibold);font-weight:var(--font-weight-semibold);color:var(--color-white)}.bailey-load-earlier{align-items:center;gap:var(--spacing);padding-bottom:calc(var(--spacing) * 2);flex-direction:column;display:flex}.bailey-load-earlier-button{cursor:pointer;appearance:none;border-radius:var(--radius-lg);border-style:var(--tw-border-style);border-width:1px;border-color:var(--color-bailey-border);background-color:var(--color-bailey-surface);padding-inline:calc(var(--spacing) * 3.5);padding-block:calc(var(--spacing) * 1.5);font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height));color:var(--color-bailey-text)}.bailey-load-earlier-button:focus-visible{outline-style:var(--tw-outline-style);outline-width:2px;outline-color:var(--color-bailey-accent)}.bailey-load-earlier-button:disabled{cursor:default;opacity:.5}.bailey-load-earlier-error{font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height));color:var(--color-bailey-error)}.bailey-history-drawer{z-index:10;background-color:var(--color-bailey-surface);font-family:var(--font-sans);color:var(--color-bailey-text);border-radius:14px;flex-direction:column;display:flex;position:absolute;inset:0;overflow:hidden;container-type:inline-size}.bailey-history-header{align-items:center;gap:calc(var(--spacing) * 2);border-bottom-style:var(--tw-border-style);border-bottom-width:1px;border-color:var(--color-bailey-border);padding-inline:calc(var(--spacing) * 3);padding-block:calc(var(--spacing) * 2);display:flex}.bailey-history-heading{text-overflow:ellipsis;white-space:nowrap;--tw-font-weight:var(--font-weight-semibold);min-width:0;font-size:15px;font-weight:var(--font-weight-semibold);--tw-outline-style:none;outline-style:none;flex:1;margin:0;overflow:hidden}.bailey-history-icon-button{height:calc(var(--spacing) * 11);width:calc(var(--spacing) * 11);cursor:pointer;appearance:none;border-radius:var(--radius-lg);--tw-border-style:none;color:var(--color-bailey-text-secondary);background-color:#0000;border-style:none;flex:none;justify-content:center;align-items:center;display:flex}@media (hover:hover){.bailey-history-icon-button:hover{background-color:#0000000d}@supports (color:color-mix(in lab, red, red)){.bailey-history-icon-button:hover{background-color:color-mix(in oklab, var(--color-black) 5%, transparent)}}.bailey-history-icon-button:hover{color:var(--color-bailey-text)}}.bailey-history-icon-button:focus-visible{outline-style:var(--tw-outline-style);outline-width:2px;outline-color:var(--color-bailey-accent)}.bailey-history-icon-button:disabled{cursor:default;opacity:.5}.bailey-history-icon{width:18px;height:18px}.bailey-history-icon-small{height:calc(var(--spacing) * 3.5);width:calc(var(--spacing) * 3.5);flex:none}.bailey-history-button{min-height:calc(var(--spacing) * 11);cursor:pointer;appearance:none;justify-content:center;align-items:center;gap:calc(var(--spacing) * 1.5);border-radius:var(--radius-lg);border-style:var(--tw-border-style);border-width:1px;border-color:var(--color-bailey-border);background-color:var(--color-bailey-surface);padding-inline:calc(var(--spacing) * 3);padding-block:calc(var(--spacing) * 1.5);white-space:nowrap;color:var(--color-bailey-text);font-size:13px;display:inline-flex}.bailey-history-button:focus-visible{outline-style:var(--tw-outline-style);outline-offset:2px;outline-width:2px;outline-color:var(--color-bailey-accent)}.bailey-history-button:disabled{cursor:default;opacity:.5}.bailey-history-button-primary{border-color:var(--color-bailey-accent);background-color:var(--color-bailey-accent);--tw-font-weight:var(--font-weight-semibold);font-weight:var(--font-weight-semibold);color:var(--color-white)}.bailey-history-button-danger{border-color:var(--color-bailey-error);background-color:var(--color-bailey-error);--tw-font-weight:var(--font-weight-semibold);font-weight:var(--font-weight-semibold);color:var(--color-white)}.bailey-history-button-small{font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height))}.bailey-history-body{padding-inline:calc(var(--spacing) * 2);padding-block:calc(var(--spacing) * 1.5);flex:1;overflow-y:auto}.bailey-history-list{margin:0;padding:0;list-style-type:none}.bailey-history-row{border-radius:10px;flex-wrap:wrap;align-items:center;display:flex;position:relative}.bailey-history-row+.bailey-history-row{margin-top:calc(var(--spacing) * .5)}.bailey-history-row:not(.bailey-history-row-active):hover{background-color:var(--color-gray-100)}.bailey-history-row-active{box-shadow:inset 3px 0 0 var(--color-bailey-accent,#4f46e5);background-color:#4f46e514}.bailey-history-select{min-height:calc(var(--spacing) * 11);cursor:pointer;appearance:none;gap:calc(var(--spacing) * .5);--tw-border-style:none;min-width:0;padding-block:calc(var(--spacing) * 2.5);padding-right:calc(var(--spacing) * 2.5);padding-left:calc(var(--spacing) * 3);text-align:left;color:var(--color-bailey-text);background-color:#0000;border-style:none;border-radius:10px;flex-direction:column;flex:1;font-family:inherit;display:flex}.bailey-history-select:focus-visible{outline-style:var(--tw-outline-style);outline-width:2px;outline-color:var(--color-bailey-accent)}.bailey-history-select:disabled{cursor:default;opacity:.6}.bailey-history-row-title{text-overflow:ellipsis;white-space:nowrap;font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height));--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium);overflow:hidden}.bailey-history-meta{align-items:center;gap:calc(var(--spacing) * 1.5);font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height));color:var(--color-bailey-text-secondary);display:flex}.bailey-history-meta>span+.bailey-history-count:before{content:"·";margin-right:.375rem}.bailey-history-current{--tw-font-weight:var(--font-weight-semibold);font-size:11px;font-weight:var(--font-weight-semibold);color:var(--color-bailey-accent)}.bailey-history-delete{margin-right:var(--spacing)}.bailey-history-row-confirming{border-style:var(--tw-border-style);border-width:1px;border-color:var(--color-red-200);background-color:var(--color-red-50)}.bailey-history-confirm{align-items:center;gap:calc(var(--spacing) * 2);min-width:0;padding-block:calc(var(--spacing) * 2);padding-right:calc(var(--spacing) * 2.5);padding-left:calc(var(--spacing) * 3);flex-wrap:wrap;flex:1;display:flex}.bailey-history-confirm-question{--tw-font-weight:var(--font-weight-semibold);min-width:7.5rem;font-size:13px;font-weight:var(--font-weight-semibold);flex:1}.bailey-history-confirm-title{text-overflow:ellipsis;white-space:nowrap;font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height));color:var(--color-bailey-text-secondary);flex-basis:100%;overflow:hidden}.bailey-history-row-failed{border-style:var(--tw-border-style);border-width:1px;border-color:var(--color-red-200);background-color:#fff7f7}.bailey-history-row-error{align-items:center;gap:calc(var(--spacing) * 2);padding-inline:calc(var(--spacing) * 3);padding-bottom:calc(var(--spacing) * 2.5);font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height));color:var(--color-bailey-error);flex-wrap:wrap;flex-basis:100%;display:flex}.bailey-history-state{align-items:center;gap:calc(var(--spacing) * 2);padding-inline:calc(var(--spacing) * 6);padding-block:calc(var(--spacing) * 12);text-align:center;color:var(--color-bailey-text-secondary);flex-direction:column;font-size:13px;display:flex}.bailey-history-state strong{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height));color:var(--color-bailey-text)}.bailey-history-state-icon{height:calc(var(--spacing) * 7);width:calc(var(--spacing) * 7);color:var(--color-gray-400)}.bailey-history-state-error .bailey-history-state-icon{color:var(--color-bailey-error)}.bailey-history-more{padding-top:calc(var(--spacing) * 2.5);padding-bottom:calc(var(--spacing) * 1.5);justify-content:center;display:flex}.bailey-history-inline-error{justify-content:center;align-items:center;gap:calc(var(--spacing) * 2);padding-inline:calc(var(--spacing) * 3);padding-block:calc(var(--spacing) * 2);font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height));color:var(--color-bailey-error);flex-wrap:wrap;display:flex}.bailey-history-status{min-height:calc(var(--spacing) * 9);align-items:center;gap:calc(var(--spacing) * 2);border-top-style:var(--tw-border-style);border-top-width:1px;border-color:var(--color-bailey-border);background-color:var(--color-bailey-surface-muted);padding-inline:calc(var(--spacing) * 3.5);padding-block:calc(var(--spacing) * 2);font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height));color:var(--color-bailey-text-secondary);display:flex}.bailey-history-skeleton{margin-inline:var(--spacing);margin-bottom:calc(var(--spacing) * 1.5);background:linear-gradient(90deg,#f1f1f4 25%,#e6e6ec 50%,#f1f1f4 75%) 0 0/200% 100%;border-radius:10px;height:52px;animation:1.3s infinite bailey-history-shimmer}.bailey-history-spinner{height:calc(var(--spacing) * 3);width:calc(var(--spacing) * 3);border-style:var(--tw-border-style);border-width:2px;border-color:var(--color-bailey-border);border-top-color:var(--color-bailey-accent,#4f46e5);border-radius:2147483647px;animation:.8s linear infinite bailey-history-rotate;display:inline-block}@keyframes bailey-history-shimmer{to{background-position:-200% 0}}@keyframes bailey-history-rotate{to{transform:rotate(360deg)}}@media (prefers-reduced-motion:reduce){.bailey-history-skeleton,.bailey-history-spinner{animation:none}}@container (width<=340px){.bailey-history-new-chat{width:calc(var(--spacing) * 11);padding-inline:0}.bailey-history-new-chat-text,.bailey-history-count{display:none}}@property --tw-font-weight{syntax:"*";inherits:false}@property --tw-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-shadow-color{syntax:"*";inherits:false}@property --tw-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-inset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-shadow-color{syntax:"*";inherits:false}@property --tw-inset-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-ring-color{syntax:"*";inherits:false}@property --tw-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-ring-color{syntax:"*";inherits:false}@property --tw-inset-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-ring-inset{syntax:"*";inherits:false}@property --tw-ring-offset-width{syntax:"<length>";inherits:false;initial-value:0}@property --tw-ring-offset-color{syntax:"*";inherits:false;initial-value:#fff}@property --tw-ring-offset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-ordinal{syntax:"*";inherits:false}@property --tw-slashed-zero{syntax:"*";inherits:false}@property --tw-numeric-figure{syntax:"*";inherits:false}@property --tw-numeric-spacing{syntax:"*";inherits:false}@property --tw-numeric-fraction{syntax:"*";inherits:false}@property --tw-space-y-reverse{syntax:"*";inherits:false;initial-value:0}@property --tw-outline-style{syntax:"*";inherits:false;initial-value:solid}@keyframes spin{to{transform:rotate(360deg)}}`,dt=(0,l.createContext)(void 0),ft=/:root\s*,\s*:host\s*\{([^}]*)\}/,pt=`.bailey-chat-panel,.bailey-menu-content,.bailey-tooltip-content`,mt=/^\s*--color-bailey-([\w-]+)\s*:\s*(.+?)\s*$/,ht=/^(\s*--font-sans\s*:\s*)(.+?)\s*$/,gt=/var\(--color-bailey-([\w-]+)\)/g;function _t(e){let t=e.match(new RegExp(ft,`g`))?.length??0;if(t!==1)throw Error(`Expected exactly one ":root, :host {" rule in the compiled styles.css, found ${t}. Tailwind likely changed how @theme compiles — update this rewrite (and its sibling, scripts/scope-theme-vars.js) before shipping.`);let n=new Map;return e.replace(ft,(e,t)=>`${pt}{${t.split(`;`).filter(e=>{if(!e.trim())return!1;let t=e.match(mt);return t&&n.set(t[1],t[2]),!t}).map(e=>e.replace(ht,`$1var(--bailey-font-sans,$2)`)).join(`;`)}}`).replace(gt,(e,t)=>n.has(t)?`var(--color-bailey-${t},${n.get(t)})`:e)}var vt=_t(ut),yt=`data-source`,bt=`baileyai-chat-ui`,xt=new WeakMap;function St(e){let t=e.getRootNode();return t instanceof ShadowRoot?t:document}function Ct(e){let t=e instanceof ShadowRoot?e:document.head,n=xt.get(e)??0;if(n===0&&!t.querySelector(`style[${yt}="${bt}"]`)){let e=document.createElement(`style`);e.setAttribute(yt,bt),e.textContent=vt,t.appendChild(e)}return xt.set(e,n+1),()=>{let n=(xt.get(e)??1)-1;n<=0?(xt.delete(e),t.querySelector(`style[${yt}="${bt}"]`)?.remove()):xt.set(e,n)}}function wt(e,t=!1){let[n,r]=(0,l.useState)(null);return(0,l.useLayoutEffect)(()=>{if(t)return;let n=e.current;if(!n)return;let i=St(n);return r(i),Ct(i)},[t,e]),n}function Tt(e){let t=(0,l.useContext)(dt),n=t!==void 0,r=wt(e,n);return n?t:r}var Et=(0,l.createContext)(void 0);function Dt({renderTable:e,renderChart:t}={}){return{a:({href:e,children:t})=>!e||!c.n(e)?(0,m.jsx)(m.Fragment,{children:t}):(0,m.jsx)(`a`,{href:e,target:`_blank`,rel:`noopener noreferrer`,children:t}),table:({node:t,children:n})=>{let r=t&&Le(t);if(r&&Re(r.rows)&&e){let t=r.rows.map(e=>e.map(e=>e.href&&!c.n(e.href)?{text:e.text}:e));return(0,m.jsx)(m.Fragment,{children:e({headers:r.headers,rows:t})})}return(0,m.jsx)(`table`,{children:n})},pre:({children:e})=>{let n=(Array.isArray(e)?e[0]:e)?.props;if((n?.className?.split(` `)??[]).includes(`language-chartjs`)&&t){let e=n?.children,r=Ke(Array.isArray(e)?e.join(``):String(e??``));if(r)return(0,m.jsx)(m.Fragment,{children:t(r)})}return(0,m.jsx)(`pre`,{children:e})}}}function Ot({className:e}){return(0,m.jsx)(`svg`,{viewBox:`0 0 24 24`,fill:`currentColor`,className:e,"aria-hidden":`true`,children:(0,m.jsx)(`path`,{d:`M12 20.3s-7.6-4.7-10-9.4C.4 7.7 1.7 4 5.2 3.1c2.2-.6 4.4.4 5.5 2.2 1.2-1.8 3.4-2.8 5.6-2.2 3.5.9 4.8 4.6 3.2 7.8-2.4 4.7-10 9.4-10 9.4z`})})}function kt({className:e}){return(0,m.jsx)(`svg`,{viewBox:`0 0 24 24`,fill:`currentColor`,className:e,"aria-hidden":`true`,children:(0,m.jsx)(`rect`,{x:`6`,y:`6`,width:`12`,height:`12`,rx:`2`})})}function At({className:e}){return(0,m.jsxs)(`svg`,{viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,strokeWidth:2,strokeLinecap:`round`,strokeLinejoin:`round`,className:e,"aria-hidden":`true`,children:[(0,m.jsx)(`path`,{d:`M7 17 17 7`}),(0,m.jsx)(`path`,{d:`M9 7h8v8`})]})}function jt({className:e}){return(0,m.jsxs)(`svg`,{viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,strokeWidth:2,strokeLinecap:`round`,strokeLinejoin:`round`,className:e,"aria-hidden":`true`,children:[(0,m.jsx)(`rect`,{x:`8`,y:`8`,width:`12`,height:`12`,rx:`2`}),(0,m.jsx)(`path`,{d:`M16 8V6a2 2 0 0 0-2-2H6a2 2 0 0 0-2 2v8a2 2 0 0 0 2 2h2`})]})}function Mt({className:e}){return(0,m.jsx)(`svg`,{viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,strokeWidth:2,strokeLinecap:`round`,strokeLinejoin:`round`,className:e,"aria-hidden":`true`,children:(0,m.jsx)(`path`,{d:`M5 12.5 9.5 17 19 7`})})}function Nt({className:e}){return(0,m.jsx)(`svg`,{viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,strokeWidth:2,strokeLinecap:`round`,strokeLinejoin:`round`,className:e,"aria-hidden":`true`,children:(0,m.jsx)(`path`,{d:`m22.7 13.5-2-2-2 2M21 12a9 9 0 1 1-1.245-4.57M12 7v5l3 2`})})}function Pt({className:e}){return(0,m.jsxs)(`svg`,{viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,strokeWidth:2,strokeLinecap:`round`,strokeLinejoin:`round`,className:e,"aria-hidden":`true`,children:[(0,m.jsx)(`circle`,{cx:`12`,cy:`12`,r:`9`}),(0,m.jsx)(`path`,{d:`M8.5 12.5 11 15l4.5-5.5`})]})}function Ft({className:e}){return(0,m.jsxs)(`svg`,{viewBox:`0 0 24 24`,fill:`currentColor`,className:e,"aria-hidden":`true`,children:[(0,m.jsx)(`circle`,{cx:`5`,cy:`12`,r:`1.75`}),(0,m.jsx)(`circle`,{cx:`12`,cy:`12`,r:`1.75`}),(0,m.jsx)(`circle`,{cx:`19`,cy:`12`,r:`1.75`})]})}function It({className:e}){return(0,m.jsx)(`svg`,{viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,strokeWidth:2,strokeLinecap:`round`,strokeLinejoin:`round`,className:e,"aria-hidden":`true`,children:(0,m.jsx)(`path`,{d:`M12 5v14M5 12h14`})})}var Lt=`M7 11v9H4v-9h3zm0 0 4-8c1.7 0 2.7 1.3 2.4 3L13 9h5.5a2 2 0 0 1 2 2.4l-1.3 6.8A2 2 0 0 1 17.2 20H7`,Rt=`M17 13V4h3v9h-3zm0 0-4 8c-1.7 0-2.7-1.3-2.4-3L11 15H5.5a2 2 0 0 1-2-2.4l1.3-6.8A2 2 0 0 1 6.8 4H17`;function zt({className:e,filled:t=!1}){return(0,m.jsx)(`svg`,{viewBox:`0 0 24 24`,fill:t?`currentColor`:`none`,stroke:`currentColor`,strokeWidth:1.8,strokeLinejoin:`round`,className:e,"aria-hidden":`true`,children:(0,m.jsx)(`path`,{d:Lt})})}function Bt({className:e,filled:t=!1}){return(0,m.jsx)(`svg`,{viewBox:`0 0 24 24`,fill:t?`currentColor`:`none`,stroke:`currentColor`,strokeWidth:1.8,strokeLinejoin:`round`,className:e,"aria-hidden":`true`,children:(0,m.jsx)(`path`,{d:Rt})})}function Vt({className:e}){return(0,m.jsx)(`svg`,{viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,strokeWidth:2,strokeLinecap:`round`,strokeLinejoin:`round`,className:e,"aria-hidden":`true`,children:(0,m.jsx)(`path`,{d:`M15 6l-6 6 6 6`})})}function Ht({className:e}){return(0,m.jsx)(`svg`,{viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,strokeWidth:2,strokeLinecap:`round`,strokeLinejoin:`round`,className:e,"aria-hidden":`true`,children:(0,m.jsx)(`path`,{d:`M4 7h16M10 11v6M14 11v6M6 7l1 12a2 2 0 0 0 2 2h6a2 2 0 0 0 2-2l1-12M9 7V4h6v3`})})}function Ut({className:e}){return(0,m.jsxs)(`svg`,{viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,strokeWidth:2,strokeLinecap:`round`,strokeLinejoin:`round`,className:e,"aria-hidden":`true`,children:[(0,m.jsx)(`circle`,{cx:`12`,cy:`12`,r:`9`}),(0,m.jsx)(`path`,{d:`M12 8v5M12 16.5v.01`})]})}var Wt=1500;function Gt({markdown:e,className:t,ariaLabel:n=`copy response as markdown`,tooltipDefaultText:r=`Copy as markdown`,tooltipCopiedText:i=`Copied!`}){let[a,o]=(0,l.useState)(!1),[s,c]=(0,l.useState)(!1),u=(0,l.useRef)(null),d=(0,l.useRef)(null),f=Tt(d);return(0,l.useEffect)(()=>()=>{u.current!==null&&clearTimeout(u.current)},[]),(0,m.jsx)(p.Provider,{delayDuration:200,children:(0,m.jsxs)(p.Root,{open:a||s,onOpenChange:c,children:[(0,m.jsx)(p.Trigger,{asChild:!0,children:(0,m.jsx)(`button`,{ref:d,type:`button`,onClick:async()=>{try{await navigator.clipboard.writeText(e)}catch{return}o(!0),u.current!==null&&clearTimeout(u.current),u.current=setTimeout(()=>o(!1),Wt)},"aria-label":n,className:`bailey-copy-button${t?` ${t}`:``}`,children:a?(0,m.jsx)(Mt,{className:`bailey-copy-icon`}):(0,m.jsx)(jt,{className:`bailey-copy-icon`})})}),(0,m.jsx)(p.Portal,{container:f instanceof ShadowRoot?f:void 0,children:(0,m.jsxs)(p.Content,{side:`top`,className:`bailey-tooltip-content`,children:[a?i:r,(0,m.jsx)(p.Arrow,{className:`bailey-tooltip-arrow`})]})})]})})}async function Kt(e){try{await navigator.clipboard.writeText(e)}catch{}}function qt({text:e,label:t=`Copy`}){return(0,m.jsx)(`button`,{type:`button`,onClick:()=>Kt(e),className:`bailey-trace-copy-button`,children:t})}function Jt(e){if(e.failed||e.kind===`error`)return`bailey-trace-chip bailey-trace-chip-error`;switch(e.kind){case`tool_start`:case`llm_call_start`:return`bailey-trace-chip bailey-trace-chip-info`;case`tool_end`:case`llm_call_end`:return`bailey-trace-chip bailey-trace-chip-success`;case`progress`:return`bailey-trace-chip bailey-trace-chip-secondary`;default:return`bailey-trace-chip bailey-trace-chip-default`}}function Yt({label:e,content:t,copyable:n}){return(0,m.jsxs)(`details`,{className:`bailey-trace-disclosure`,children:[(0,m.jsx)(`summary`,{className:`bailey-trace-disclosure-summary`,children:e}),n&&(0,m.jsx)(`div`,{className:`bailey-trace-disclosure-actions`,children:(0,m.jsx)(qt,{text:t})}),(0,m.jsx)(`pre`,{className:`bailey-trace-disclosure-content`,children:t})]})}function Xt({row:e}){return(0,m.jsxs)(`div`,{className:`bailey-trace-row`,children:[(0,m.jsxs)(`div`,{className:`bailey-trace-row-header`,children:[(0,m.jsx)(`span`,{className:`bailey-trace-row-time`,children:e.time}),(0,m.jsx)(`span`,{className:`bailey-trace-row-gap`,title:`Time since the previous event`,children:rt(e.gapMs)}),(0,m.jsx)(`span`,{className:Jt(e),children:e.label}),(0,m.jsx)(`span`,{className:`bailey-trace-row-summary`,children:e.summary})]}),e.argsDetail&&(0,m.jsx)(Yt,{label:e.kind===`llm_call_start`?`request`:`args`,content:e.argsDetail}),e.outputDetail&&(0,m.jsx)(Yt,{label:e.kind===`llm_call_end`?`response`:`output`,content:e.outputDetail}),e.structuredOutputDetail&&(0,m.jsx)(Yt,{label:`structured output`,content:e.structuredOutputDetail}),e.rawDetail&&(0,m.jsx)(Yt,{label:`raw`,content:e.rawDetail})]})}function Zt(e,t){if(e.chunkCount===0)return`Streamed: no chunks received`;if(e.chunkCount===1||e.firstChunkAt===null)return`Streamed: 1 chunk (not incremental)`;let n=e.firstChunkAt-t,r=(e.lastChunkAt??e.firstChunkAt)-e.firstChunkAt;return`Streamed: ${e.chunkCount} chunks · first chunk after ${n}ms · spread over ${(r/1e3).toFixed(1)}s`}function Qt({request:e}){let t=(0,l.useMemo)(()=>JSON.stringify({model:e.model,instructions:e.systemPrompt,input:e.messages,stream:e.stream,tools:e.tools,toolChoice:e.toolChoice},null,2),[e]);return(0,m.jsxs)(`div`,{className:`bailey-trace-request-details`,children:[(0,m.jsxs)(`span`,{className:`bailey-trace-request-meta`,children:[`Last request — `,e.model,` · `,new Date(e.sentAt).toLocaleTimeString(),e.requestId?` · ${e.requestId}`:``]}),(0,m.jsx)(`span`,{className:`bailey-trace-request-meta`,children:Zt(e.streamStats,e.sentAt)}),(0,m.jsx)(Yt,{label:`System prompt (${e.systemPrompt.length.toLocaleString()} chars)`,content:e.systemPrompt,copyable:!0}),(0,m.jsx)(Yt,{label:`Messages (${e.messages.length})`,content:JSON.stringify(e.messages,null,2),copyable:!0}),e.response&&(0,m.jsx)(Yt,{label:`Response (${e.response.content.length.toLocaleString()} chars)`,content:e.response.content,copyable:!0}),(0,m.jsx)(Yt,{label:`Full payload (JSON)`,content:t,copyable:!0})]})}function $t({events:e,lastRequest:t,onClear:n}){let r=(0,l.useMemo)(()=>it(e),[e]),i=(0,l.useMemo)(()=>ot(r),[r]),a=(0,l.useMemo)(()=>JSON.stringify(e,null,2),[e]);return(0,m.jsxs)(`div`,{className:`bailey-trace-body`,children:[(0,m.jsxs)(`div`,{className:`bailey-trace-actions-row`,children:[e.length>0&&(0,m.jsx)(qt,{text:a,label:`Copy trace as JSON`}),(0,m.jsx)(`button`,{type:`button`,onClick:n,className:`bailey-trace-copy-button`,children:`Clear`})]}),t&&(0,m.jsx)(Qt,{request:t}),(0,m.jsx)(`div`,{className:`bailey-trace-rows`,children:i.map((e,t)=>{if(e.type===`single`)return(0,m.jsx)(Xt,{row:e.row},e.row.key);let n=e.rows.filter(e=>e.isToolStart).length;if(n<=1)return(0,m.jsx)(`div`,{className:`bailey-trace-rows`,children:e.rows.map(e=>(0,m.jsx)(Xt,{row:e},e.key))},`group-${t}`);let r=e.rows.filter(e=>e.failed).length;return(0,m.jsxs)(`details`,{className:`bailey-trace-group`,children:[(0,m.jsxs)(`summary`,{className:`bailey-trace-group-summary`,children:[(0,m.jsx)(`strong`,{children:e.toolName}),` × `,n,r>0&&(0,m.jsxs)(`span`,{className:`bailey-trace-group-failed`,children:[` `,r,` failed`]})]}),(0,m.jsx)(`div`,{className:`bailey-trace-rows`,children:e.rows.map(e=>(0,m.jsx)(Xt,{row:e},e.key))})]},`group-${t}`)})})]})}function en({events:e,lastRequest:t,onClear:n}){let[r,i]=(0,l.useState)(!1),a=(0,l.useMemo)(()=>st(e),[e]),o=(0,l.useMemo)(()=>at(e),[e]);return e.length===0&&!t?null:(0,m.jsxs)(`div`,{className:`bailey-trace-panel`,children:[(0,m.jsxs)(`div`,{className:`bailey-trace-toggle-row`,children:[(0,m.jsxs)(`button`,{type:`button`,onClick:()=>i(e=>!e),"aria-expanded":r,className:a?`bailey-trace-toggle bailey-trace-toggle-error`:`bailey-trace-toggle`,children:[a&&!r?`⚠ `:``,r?`Hide details`:`Show details`,` (`,e.length,`)`]}),o&&(0,m.jsx)(`span`,{className:a?`bailey-trace-summary bailey-trace-summary-error`:`bailey-trace-summary`,children:o})]}),r&&(0,m.jsx)($t,{events:e,lastRequest:t,onClear:n})]})}function tn({src:e,alt:t,className:n}){return c.t(e)?(0,m.jsx)(`img`,{src:e,alt:t??``,className:`bailey-tool-result-image${n?` ${n}`:``}`,referrerPolicy:`no-referrer`}):null}var nn=/^ui:\/\//,rn=2097152,an=new Set([`connectDomains`,`resourceDomains`,`frameDomains`,`baseUriDomains`]),on=new Set([`camera`,`microphone`,`geolocation`,`clipboardWrite`]),sn=(e,t)=>e===void 0?!0:typeof e!=`object`||!e||Array.isArray(e)?!1:Object.keys(e).every(e=>t.has(e)),cn=e=>!(!nn.test(e.resourceUri)||typeof e.html!=`string`||e.html.length===0||e.html.length>rn||!sn(e.csp,an)||!sn(e.permissions,on));function ln({html:e,title:t,resourceUri:n,csp:r,permissions:i,className:a}){return cn({html:e,resourceUri:n,csp:r,permissions:i})?(0,m.jsx)(`iframe`,{title:t??`MCP App`,srcDoc:e,sandbox:`allow-scripts`,referrerPolicy:`no-referrer`,className:`bailey-mcp-app-frame${a?` ${a}`:``}`}):null}function un({toolName:e,resolveActivityIcon:t}){let n=t?.(e);return n===0||n&&n!==!0?(0,m.jsx)(`span`,{className:`bailey-activity-icon`,children:n}):null}function dn({offsetMs:e,labels:t}){let n=rt(e),r=t.toolStepStartedText?.replace(`{offset}`,n);return(0,m.jsx)(`span`,{className:`bailey-tool-step-start`,title:r,"aria-label":r,role:r?`text`:void 0,children:n})}function fn({steps:e,resolveActivityIcon:t}){let n=e.filter(e=>e.status===`running`);return n.length===0?null:(0,m.jsx)(`div`,{className:`bailey-tool-steps-live`,role:`status`,"aria-live":`polite`,children:n.map(e=>(0,m.jsxs)(`div`,{className:`bailey-activity-line`,children:[(0,m.jsx)(un,{toolName:e.toolName,resolveActivityIcon:t}),(0,m.jsx)(`span`,{children:e.label}),(0,m.jsx)(`span`,{className:`bailey-step-spinner`,"aria-hidden":`true`})]},e.key))})}function pn({steps:e,labels:t,resolveActivityIcon:n}){if(e.length===0)return null;let r=e.filter(e=>e.status===`failed`).length,i=e.length===1?t.toolStepsSummaryOne:t.toolStepsSummaryMany.replace(`{count}`,String(e.length)),a=r>0?`${i}${t.toolStepsFailedSuffix.replace(`{failed}`,String(r))}`:i;return(0,m.jsxs)(`details`,{className:`bailey-tool-steps-summary`,children:[(0,m.jsx)(`summary`,{children:a}),(0,m.jsx)(`ul`,{className:`bailey-tool-steps-list`,children:e.map(e=>(0,m.jsxs)(`li`,{className:`bailey-tool-step`,children:[(0,m.jsx)(un,{toolName:e.toolName,resolveActivityIcon:n}),(0,m.jsx)(`span`,{children:e.label}),e.startOffsetMs!==void 0&&(0,m.jsx)(dn,{offsetMs:e.startOffsetMs,labels:t}),e.runtimeSeconds!==void 0&&(0,m.jsx)(`span`,{children:`${e.runtimeSeconds.toFixed(1)}s`}),e.status===`failed`&&(0,m.jsx)(`span`,{className:`bailey-tool-step-failed`,children:t.toolStepFailedText}),e.status===`running`&&(0,m.jsx)(`span`,{children:t.toolStepStoppedText})]},e.key))})]})}var mn=/(Z|[+-]\d{2}:?\d{2})$/i,hn=60,gn=3600,_n=24*gn,vn=30*_n*1e3;function yn(e){return e?Date.parse(mn.test(e)?e:`${e}Z`):NaN}function bn(e){let t=yn(e.iso);if(Number.isNaN(t))return``;let n=e.now??Date.now(),r=Math.max(0,n-t);if(typeof Intl>`u`||typeof Intl.RelativeTimeFormat!=`function`)return e.justNowText??``;if(r>=vn)return new Intl.DateTimeFormat(e.locale,{dateStyle:`medium`}).format(t);let i=r/1e3,a=new Intl.RelativeTimeFormat(e.locale,{numeric:`auto`});return i<hn?a.format(0,`second`):i<gn?a.format(-Math.floor(i/hn),`minute`):i<_n?a.format(-Math.floor(i/gn),`hour`):a.format(-Math.floor(i/_n),`day`)}function xn({client:e,pageSize:t,chat:n,labels:r,locale:i,onClose:a}){let o=he({client:e,pageSize:t}),{loadConversation:s,newChat:c}=n,u=(0,l.useCallback)(e=>s?s(e):Promise.reject(Error(`no loadConversation`)),[s]),d=(0,l.useCallback)(()=>{c(),a({restoreFocusTo:`input`})},[c,a]);return(0,m.jsx)(wn,{conversations:o,activeConversationId:n.conversationId,selectStatus:n.historyStatus,onSelect:u,onActiveDeleted:c,onNewChat:d,onClose:a,labels:r,locale:i})}var Sn=(e,t)=>Object.entries(t).reduce((e,[t,n])=>e.split(`{${t}}`).join(String(n)),e),Cn=e=>!e||e.kind!==`http`?!1:e.status===401||e.status===403;function wn({conversations:e,activeConversationId:t,selectStatus:n,onSelect:r,onActiveDeleted:i,onNewChat:a,onClose:o,labels:s,locale:c,now:u}){let{conversations:d,status:f,error:p,hasMore:h,refresh:g,loadMore:_,remove:v}=e,y=(0,l.useId)(),b=(0,l.useId)(),x=(0,l.useRef)(null),S=(0,l.useRef)(null),C=(0,l.useRef)(null),w=(0,l.useRef)(new Map),T=(0,l.useRef)(new Map),E=(0,l.useRef)(null),D=(0,l.useRef)(null),[ee,O]=(0,l.useState)(null),[k,A]=(0,l.useState)(null),[j,M]=(0,l.useState)(0),[te,N]=(0,l.useState)(!1),[ne,P]=(0,l.useState)(!1),[re,ie]=(0,l.useState)(!1),ae=c??(typeof navigator<`u`?navigator.language:void 0);(0,l.useEffect)(()=>{x.current?.focus()},[]),(0,l.useEffect)(()=>{let e=E.current;if(!e)return;let t=e.kind===`select`?w.current.get(e.id):e.kind===`delete`?T.current.get(e.id):e.kind===`cancel`?C.current:S.current;t&&(t.focus(),E.current=null)}),(0,l.useEffect)(()=>{let e=D.current;e!==null&&f!==`loading`&&(D.current=null,!h&&d.length>e&&(E.current={kind:`select`,id:d[e].conversationId}))},[f,h,d]);let F=()=>{D.current=d.length,_()},I=e=>{E.current={kind:`delete`,id:e},O(null)},oe=e=>{e.key===`Escape`&&(e.stopPropagation(),ee?I(ee):o({restoreFocusTo:`menu`}))},se=async e=>{if(ie(!1),e===t)o({restoreFocusTo:`input`});else{P(!0);try{await r({conversationId:e})}catch{E.current={kind:`select`,id:e},ie(!0),P(!1);return}P(!1),o({restoreFocusTo:`input`})}},L=async e=>{let n=d.findIndex(t=>t.conversationId===e),r=d[n+1]??d[n-1];E.current=r?{kind:`select`,id:r.conversationId}:{kind:`newChat`},O(null),A(null),N(!1),M(e=>e+1);try{await v({conversationId:e}),N(!0),e===t&&i?.()}catch{E.current={kind:`delete`,id:e},A(e)}finally{M(e=>e-1)}},R=f===`loading`&&d.length===0,ce=f===`error`&&d.length===0,z=f===`error`&&d.length>0&&h,B=f===`loading`&&d.length>0,le=ne||n===`loading`,ue=R?s.historyLoadingText:j>0?s.historyDeletingText:te?s.historyDeletedText:d.length>0?Sn(d.length===1?s.historyCountTextOne:s.historyCountTextMany,{count:d.length}):``,de=R||j>0;return(0,m.jsxs)(`section`,{role:`region`,"aria-labelledby":y,className:`bailey-history-drawer`,onKeyDown:oe,children:[(0,m.jsxs)(`div`,{className:`bailey-history-header`,children:[(0,m.jsx)(`button`,{type:`button`,className:`bailey-history-icon-button`,"aria-label":s.historyBackAriaLabel,onClick:()=>o({restoreFocusTo:`menu`}),children:(0,m.jsx)(Vt,{className:`bailey-history-icon`})}),(0,m.jsx)(`h3`,{id:y,ref:x,tabIndex:-1,className:`bailey-history-heading`,children:s.historyTitle}),(0,m.jsxs)(`button`,{ref:S,type:`button`,className:`bailey-history-button bailey-history-new-chat`,"aria-label":s.newChatButtonText,disabled:R,onClick:a,children:[(0,m.jsx)(It,{className:`bailey-history-icon-small`}),(0,m.jsx)(`span`,{className:`bailey-history-new-chat-text`,children:s.newChatButtonText})]})]}),(0,m.jsxs)(`div`,{className:`bailey-history-body`,"aria-busy":R||void 0,children:[R&&(0,m.jsxs)(`div`,{"aria-hidden":`true`,children:[(0,m.jsx)(`div`,{className:`bailey-history-skeleton`}),(0,m.jsx)(`div`,{className:`bailey-history-skeleton`}),(0,m.jsx)(`div`,{className:`bailey-history-skeleton`}),(0,m.jsx)(`div`,{className:`bailey-history-skeleton`})]}),ce&&(0,m.jsxs)(`div`,{role:`alert`,className:`bailey-history-state bailey-history-state-error`,children:[(0,m.jsx)(Ut,{className:`bailey-history-state-icon`}),(0,m.jsx)(`strong`,{children:Cn(p)?s.historySessionExpiredTitle:s.historyErrorTitle}),(0,m.jsx)(`span`,{children:Cn(p)?s.historySessionExpiredDescription:s.historyErrorDescription}),(0,m.jsx)(`button`,{type:`button`,className:`bailey-history-button bailey-history-button-primary`,onClick:()=>void g(),children:s.retryButtonText})]}),!R&&!ce&&d.length===0&&(0,m.jsxs)(`div`,{className:`bailey-history-state`,children:[(0,m.jsx)(Nt,{className:`bailey-history-state-icon`}),(0,m.jsx)(`strong`,{children:s.historyEmptyTitle}),(0,m.jsx)(`span`,{children:s.historyEmptyDescription}),(0,m.jsx)(`button`,{type:`button`,className:`bailey-history-button bailey-history-button-primary`,onClick:a,children:s.historyEmptyCtaText})]}),d.length>0&&(0,m.jsx)(`ul`,{className:`bailey-history-list`,children:d.map(e=>{let n=e.conversationId,r=e.title?.trim()?e.title:s.historyUntitledText,i=n===t;if(ee===n)return(0,m.jsx)(`li`,{className:`bailey-history-row bailey-history-row-confirming`,children:(0,m.jsxs)(`div`,{role:`group`,"aria-labelledby":b,className:`bailey-history-confirm`,children:[(0,m.jsx)(`span`,{id:b,className:`bailey-history-confirm-question`,children:s.historyDeleteConfirmQuestion}),(0,m.jsx)(`span`,{className:`bailey-history-confirm-title`,children:r}),(0,m.jsx)(`button`,{type:`button`,className:`bailey-history-button bailey-history-button-danger`,onClick:()=>void L(n),children:s.historyDeleteConfirmText}),(0,m.jsx)(`button`,{ref:C,type:`button`,className:`bailey-history-button`,onClick:()=>I(n),children:s.historyDeleteCancelText})]})},n);let a=bn({iso:e.updatedAt,locale:ae,now:u?.(),justNowText:s.historyJustNowText}),o=Sn(e.messageCount===1?s.historyMessageCountOne:s.historyMessageCountMany,{count:e.messageCount}),c=k===n;return(0,m.jsxs)(`li`,{className:`bailey-history-row${i?` bailey-history-row-active`:``}${c?` bailey-history-row-failed`:``}`,children:[(0,m.jsxs)(`button`,{type:`button`,ref:e=>{e?w.current.set(n,e):w.current.delete(n)},className:`bailey-history-select`,"aria-current":i?`true`:void 0,"aria-disabled":le||void 0,onClick:()=>{le||se(n)},children:[(0,m.jsx)(`span`,{className:`bailey-history-row-title`,children:r}),(0,m.jsxs)(`span`,{className:`bailey-history-meta`,children:[i&&(0,m.jsxs)(m.Fragment,{children:[(0,m.jsx)(`span`,{className:`bailey-history-current`,children:s.historyCurrentText}),(0,m.jsx)(`span`,{"aria-hidden":`true`,children:`·`})]}),a&&(0,m.jsx)(`span`,{children:a}),(0,m.jsx)(`span`,{className:`bailey-history-count`,children:o})]})]}),(0,m.jsx)(`button`,{type:`button`,ref:e=>{e?T.current.set(n,e):T.current.delete(n)},className:`bailey-history-icon-button bailey-history-delete`,"aria-label":Sn(s.historyDeleteAriaLabel,{title:r}),onClick:()=>{A(null),N(!1),E.current={kind:`cancel`},O(n)},children:(0,m.jsx)(Ht,{className:`bailey-history-icon`})}),c&&(0,m.jsxs)(`div`,{role:`alert`,className:`bailey-history-row-error`,children:[(0,m.jsx)(Ut,{className:`bailey-history-icon-small`}),(0,m.jsx)(`span`,{children:s.historyDeleteFailedText}),(0,m.jsx)(`button`,{type:`button`,className:`bailey-history-button bailey-history-button-small`,onClick:()=>void L(n),children:s.historyDeleteRetryText}),(0,m.jsx)(`button`,{type:`button`,className:`bailey-history-button bailey-history-button-small`,onClick:()=>A(null),children:s.historyDeleteDismissText})]})]},n)})}),re&&(0,m.jsx)(`div`,{role:`alert`,className:`bailey-history-inline-error`,children:s.historySelectErrorText}),h&&d.length>0&&(0,m.jsx)(`div`,{className:`bailey-history-more`,children:z?(0,m.jsxs)(`div`,{role:`alert`,className:`bailey-history-inline-error`,children:[(0,m.jsx)(`span`,{children:s.historyLoadMoreErrorText}),(0,m.jsx)(`button`,{type:`button`,className:`bailey-history-button`,onClick:F,children:s.retryButtonText})]}):(0,m.jsxs)(`button`,{type:`button`,className:`bailey-history-button`,disabled:B,onClick:F,children:[B&&(0,m.jsx)(`span`,{className:`bailey-history-spinner`,"aria-hidden":`true`}),B?s.historyLoadingMoreText:s.historyLoadMoreText]})})]}),(0,m.jsxs)(`div`,{role:`status`,"aria-live":`polite`,className:`bailey-history-status`,children:[de&&(0,m.jsx)(`span`,{className:`bailey-history-spinner`,"aria-hidden":`true`}),ue]})]})}var Tn={newChatButtonText:`New chat`,retryButtonText:`Retry`,historyTitle:`Chat history`,historyBackAriaLabel:`Back to chat`,historyLoadingText:`Loading conversations…`,historyLoadingMoreText:`Loading…`,historyLoadMoreText:`Load more`,historyLoadMoreErrorText:`Couldn't load more conversations.`,historyCountTextOne:`Showing {count} conversation`,historyCountTextMany:`Showing {count} conversations`,historyEmptyTitle:`No conversations yet`,historyEmptyDescription:`Your past conversations will show up here.`,historyEmptyCtaText:`Start a new chat`,historyErrorTitle:`Couldn't load your conversations`,historyErrorDescription:`Check your connection and try again.`,historySessionExpiredTitle:`Your session has expired`,historySessionExpiredDescription:`Sign in again to see your past conversations.`,historySelectErrorText:`Couldn't open this conversation.`,historyUntitledText:`Untitled conversation`,historyCurrentText:`Current`,historyMessageCountOne:`1 message`,historyMessageCountMany:`{count} messages`,historyDeleteAriaLabel:`Delete conversation: {title}`,historyDeleteConfirmQuestion:`Delete this conversation?`,historyDeleteConfirmText:`Delete`,historyDeleteCancelText:`Cancel`,historyDeletingText:`Deleting conversation…`,historyDeletedText:`Conversation deleted`,historyDeleteFailedText:`Couldn't delete this conversation.`,historyDeleteRetryText:`Try again`,historyDeleteDismissText:`Dismiss`,historyJustNowText:`just now`},En={feedbackGroupLabel:`Rate this response`,feedbackThumbsUpAriaLabel:`Good response`,feedbackThumbsDownAriaLabel:`Bad response`,feedbackReasonGroupLabel:`What went wrong?`,feedbackCommentLabel:`Tell us more`,feedbackSubmitText:`Submit`,feedbackCancelText:`Cancel`,feedbackThanksText:`Thanks for your feedback`,feedbackUndoText:`Undo`,feedbackEditText:`Edit`,feedbackAddCommentText:`Add a comment`,feedbackSavingText:`Saving…`,feedbackErrorText:`Couldn't save your feedback. Try again.`,feedbackPrivacyNote:`Your comment is saved with this conversation and may be reviewed by support.`,feedbackReasonInaccurate:`Inaccurate`,feedbackReasonUnhelpful:`Unhelpful`,feedbackReasonUnsafe:`Unsafe`,feedbackReasonTooLong:`Too long`,feedbackReasonOther:`Other`},Dn=2e3,On=[`inaccurate`,`unhelpful`,`unsafe`,`too_long`,`other`],kn={inaccurate:`feedbackReasonInaccurate`,unhelpful:`feedbackReasonUnhelpful`,unsafe:`feedbackReasonUnsafe`,too_long:`feedbackReasonTooLong`,other:`feedbackReasonOther`},An=e=>On.includes(e)?e:`other`;function jn(e){return Array.from(new Set((e??On).map(An)))}function Mn(e){return typeof e==`number`&&e>0?Math.min(Math.floor(e),Dn):Dn}function Nn(e,t){if(e===null||t===null)return e===t;let n=e.reasonCodes??[],r=t.reasonCodes??[];return e.rating===t.rating&&(e.comment??``)===(t.comment??``)&&n.length===r.length&&n.every((e,t)=>e===r[t])}function Pn(e){let t=(0,l.useContext)(Et),n=t&&!t.builtIn?t.claim:void 0,{messageId:r}=e;return(0,l.useLayoutEffect)(()=>n&&r?n(r):void 0,[n,r]),e.messageId?(0,m.jsx)(Fn,{...e},e.messageId):null}function Fn({messageId:e,onSubmit:t,onClear:n,initialRating:r,reasonOptions:i,maxCommentLength:a,labels:o,assistantName:s=`bailey`,className:c}){let u={...En,feedbackCommentPlaceholder:`What should ${s} have said or done differently?`,...o},d=jn(i),f=Mn(a),h=r?{rating:r}:null,[g,_]=(0,l.useState)(h),[v,y]=(0,l.useState)(r??null),[b,x]=(0,l.useState)(!1),[S,C]=(0,l.useState)(`down`),[w,T]=(0,l.useState)([]),[E,D]=(0,l.useState)(``),[ee,O]=(0,l.useState)(!1),[k,A]=(0,l.useState)(!1),[j,M]=(0,l.useState)(!1),[te,N]=(0,l.useState)(!1),ne=(0,l.useRef)(h),P=(0,l.useRef)(null),re=(0,l.useRef)(0),ie=(0,l.useRef)(!1),ae=(0,l.useRef)(!0),F=(0,l.useRef)(null),I=(0,l.useRef)(null),oe=(0,l.useRef)(null),se=(0,l.useRef)(null),L=(0,l.useRef)(null),R=Tt(I),ce=(0,l.useId)(),z=`${ce}-comment`,B=`${ce}-counter`,le=`${ce}-privacy`;(0,l.useEffect)(()=>(ae.current=!0,()=>{ae.current=!1}),[]),(0,l.useEffect)(()=>{b&&L.current?.focus()},[b]),(0,l.useEffect)(()=>{F.current&&!j&&!b&&((F.current===`up`?oe:se).current?.focus(),F.current=null)});let ue=()=>{T([]),D(``)},de=async r=>{try{return r.kind===`clear`?await n({messageId:e}):await t({messageId:e,...r.snapshot}),!0}catch{return!1}},fe=async()=>{if(!ie.current){ie.current=!0,A(!0);try{for(;P.current&&ae.current;){let e=P.current,t=e.kind===`clear`?null:e.snapshot,n=!(e.kind===`submit`&&e.formSubmit)&&Nn(t,ne.current)||await de(e);if(!ae.current)return;let r=P.current?.version!==e.version;(n||!r)&&(n?(ne.current=t,_(t)):(y(ne.current?.rating??null),N(!0)),r||(P.current=null,M(!1),n&&e.kind===`submit`&&e.formSubmit&&(x(!1),O(!0),F.current=e.snapshot.rating)))}}finally{ie.current=!1,ae.current&&A(!1)}}},pe=e=>{re.current+=1,P.current={...e,version:re.current},N(!1),fe()},V=()=>{y(null),x(!1),O(!1),ue(),pe({kind:`clear`})},me=e=>{j||(v===e?V():(y(e),O(!1),ue(),e===`down`?(C(`down`),x(!0)):x(!1),pe({kind:`submit`,snapshot:{rating:e},formSubmit:!1})))},he=e=>{v!==null&&(C(v),T((e?.reasonCodes??[]).map(An)),D(e?.comment??``),N(!1),x(!0))},H=()=>{j||(x(!1),N(!1),ue(),F.current=S)},U=()=>{if(j)return;let e=E.trim(),t=d.filter(e=>w.includes(e)),n={rating:S,...t.length>0?{reasonCodes:t}:{},...e?{comment:e}:{}};M(!0),y(S),pe({kind:`submit`,snapshot:n,formSubmit:!0})},W=e=>{T(t=>t.includes(e)?t.filter(t=>t!==e):[...t,e])},ge=e=>{e.key===`Escape`&&(e.stopPropagation(),H())},G=v!==null&&g?.rating===v&&!k&&!b,K=!!g&&(!!g.comment||(g.reasonCodes?.length??0)>0),q=k?u.feedbackSavingText:G?u.feedbackThanksText:``,_e=e=>{let t=v===e,n=e===`up`?u.feedbackThumbsUpAriaLabel:u.feedbackThumbsDownAriaLabel,r=e===`up`?zt:Bt;return(0,m.jsxs)(p.Root,{children:[(0,m.jsx)(p.Trigger,{asChild:!0,children:(0,m.jsx)(`button`,{ref:e===`up`?oe:se,type:`button`,className:`bailey-feedback-thumb`,"aria-pressed":t,"aria-label":n,"aria-busy":t&&k?!0:void 0,disabled:j,onClick:()=>me(e),children:(0,m.jsx)(r,{className:`bailey-feedback-icon`,filled:t})})}),(0,m.jsx)(p.Portal,{container:R instanceof ShadowRoot?R:void 0,children:(0,m.jsxs)(p.Content,{side:`top`,className:`bailey-tooltip-content`,children:[n,(0,m.jsx)(p.Arrow,{className:`bailey-tooltip-arrow`})]})})]})};return(0,m.jsxs)(`div`,{ref:I,className:`bailey-feedback${c?` ${c}`:``}`,children:[(0,m.jsx)(p.Provider,{delayDuration:200,children:(0,m.jsxs)(`div`,{role:`group`,"aria-label":u.feedbackGroupLabel,"aria-busy":k?!0:void 0,className:`bailey-feedback-thumbs`,children:[_e(`up`),_e(`down`)]})}),(0,m.jsxs)(`span`,{role:`status`,className:`bailey-feedback-status`,children:[k&&(0,m.jsx)(`span`,{className:`bailey-feedback-spinner`,"aria-hidden":`true`}),q]}),G&&(0,m.jsxs)(m.Fragment,{children:[(0,m.jsx)(`button`,{type:`button`,className:`bailey-feedback-link`,onClick:()=>he(g),children:ee||K?u.feedbackEditText:u.feedbackAddCommentText}),(0,m.jsx)(`button`,{type:`button`,className:`bailey-feedback-link`,onClick:V,children:u.feedbackUndoText})]}),te&&(0,m.jsx)(`span`,{role:`alert`,className:`bailey-feedback-error`,children:u.feedbackErrorText}),b&&(0,m.jsxs)(`div`,{className:`bailey-feedback-form`,onKeyDown:ge,children:[d.length>0&&(0,m.jsxs)(`fieldset`,{className:`bailey-feedback-reasons`,children:[(0,m.jsx)(`legend`,{className:`bailey-feedback-legend`,children:u.feedbackReasonGroupLabel}),(0,m.jsx)(`div`,{className:`bailey-feedback-chips`,children:d.map((e,t)=>(0,m.jsx)(`button`,{ref:t===0?e=>{L.current=e}:void 0,type:`button`,className:`bailey-feedback-chip`,"aria-pressed":w.includes(e),disabled:j,onClick:()=>W(e),children:u[kn[e]]},e))})]}),(0,m.jsx)(`label`,{htmlFor:z,className:`bailey-feedback-legend`,children:u.feedbackCommentLabel}),(0,m.jsx)(`textarea`,{id:z,ref:d.length===0?e=>{L.current=e}:void 0,className:`bailey-feedback-textarea`,value:E,maxLength:f,placeholder:u.feedbackCommentPlaceholder,"aria-describedby":`${B} ${le}`,disabled:j,onChange:e=>D(e.target.value.slice(0,f))}),(0,m.jsxs)(`div`,{className:`bailey-feedback-meta`,children:[(0,m.jsx)(`span`,{id:le,className:`bailey-feedback-privacy`,children:u.feedbackPrivacyNote}),(0,m.jsx)(`span`,{id:B,className:`bailey-feedback-counter`,children:`${E.length} / ${f}`})]}),(0,m.jsxs)(`div`,{className:`bailey-feedback-buttons`,children:[(0,m.jsx)(`button`,{type:`button`,className:`bailey-feedback-button`,disabled:j,onClick:H,children:u.feedbackCancelText}),(0,m.jsx)(`button`,{type:`button`,className:`bailey-feedback-button bailey-feedback-button-primary`,disabled:j,onClick:U,children:j?u.feedbackSavingText:u.feedbackSubmitText})]})]})]})}var In=`bailey`,Ln={...Tn,newChatButtonText:`New chat`,newChatAriaLabel:`new chat`,historyAriaLabel:`conversation history`,historyMenuItemText:`Chat history`,menuAriaLabel:`more options`,suggestionsTitle:`Suggested for you`,youLabel:`You`,thinkingHint:`Thinking…`,retryButtonText:`Retry`,dismissErrorAriaLabel:`dismiss error`,sendAriaLabel:`send`,stopButtonText:`Stop`,stopAriaLabel:`stop`,copyButtonAriaLabel:`copy response as markdown`,copyButtonTooltipDefault:`Copy as markdown`,copyButtonTooltipCopied:`Copied!`,toolStepsSummaryOne:`Used 1 agent`,toolStepsSummaryMany:`Used {count} agents`,toolStepsFailedSuffix:`, {failed} failed`,toolStepFailedText:`failed`,toolStepStoppedText:`stopped`,toolStepStartedText:`started {offset} after send`,mcpAppDefaultTitle:`MCP App`,loadEarlierButtonText:`Load earlier messages`,loadEarlierErrorText:`Couldn't load earlier messages.`},Rn=[d.default],zn={...Dt(),p:({children:e})=>(0,m.jsx)(m.Fragment,{children:e})},Bn=(0,l.memo)(function({content:e,components:t}){return(0,m.jsx)(`div`,{className:`bailey-markdown-content`,children:(0,m.jsx)(u.default,{remarkPlugins:Rn,components:t,skipHtml:!0,children:e})})});function Vn(e,t,n){if(e!==`streaming`)return;let r=t.filter(e=>e.turnSentAt===n?.sentAt);return r[r.length-1]}function Hn(e){if(e&&e.kind!==`tool_end`)return tt(e)}function Un(e){let t=new Date(e),n=t.toDateString()===new Date().toDateString(),r=t.toLocaleTimeString([],{hour:`numeric`,minute:`2-digit`});return n?`Today ${r}`:`${t.toLocaleDateString()} ${r}`}function Wn({chat:e,placeholder:t,replyPlaceholder:n,emptyPlaceholder:r,assistantName:i=In,suggestions:a,suggestionsAlign:o=`start`,hideMenuButton:s=!1,onHistoryClick:c,history:d,locale:h,privacyNote:g,resolveActivityIcon:_,sendIcon:v,className:y,height:b,width:x,hideDeveloperDetails:S=!1,renderMessageActions:C,feedback:w,renderTable:T,renderChart:E,renderMcpApp:D,labels:ee,formatMessageTime:O}){let{messages:k,traceEvents:A,lastRequest:j,status:M,error:te,send:N,stop:ne,retryLast:P,clearTrace:re,clearError:ie,newChat:ae}=e,[F,I]=(0,l.useState)(``),[oe,se]=(0,l.useState)(new Map),L=(0,l.useCallback)(e=>{let t=t=>se(n=>{let r=new Map(n),i=(r.get(e)??0)+t;return i>0?r.set(e,i):r.delete(e),r});return t(1),()=>t(-1)},[]),R=(0,l.useMemo)(()=>({builtIn:!1,claim:L}),[L]),ce=(0,l.useMemo)(()=>({builtIn:!0,claim:L}),[L]),z={...Ln,emptyStateMessage:`Ask ${i} a question to get started.`,...ee},B=O??Un,le=(0,l.useRef)(null),ue=(0,l.useRef)(null),de=(0,l.useRef)(null),fe=(0,l.useRef)(null),[pe,V]=(0,l.useState)(!1),me=(0,l.useRef)(null),he=(0,l.useRef)(!1),H=!!c||!!d,U=wt(le),W=(0,l.useRef)(null),ge=(0,l.useRef)(null),G=(0,l.useRef)(!0),K=(0,l.useMemo)(()=>Dt({renderTable:T,renderChart:E}),[T,E]),q=(0,l.useMemo)(()=>Vn(M,A,j),[M,A,j]),_e=Hn(q),ve=q?.kind===`tool_end`?q.at:void 0,ye=k[k.length-1]?.content.length??0,[be,J]=(0,l.useState)(null),xe=be;ve!==void 0&&be?.at!==ve&&(xe={at:ve,length:ye},J(xe));let Se=ve!==void 0&&xe?.at===ve&&ye<=xe.length,Y=_e??(Se?z.thinkingHint:void 0),X=k.length===0,Ce=t??(X?r??`How can ${i} AI help you today?`:n??`Reply to ${i} AI`);(0,l.useEffect)(()=>{let e=ge.current;if(!e)return;let t=()=>{let t=e.scrollHeight-e.scrollTop-e.clientHeight;G.current=t<60};return e.addEventListener(`scroll`,t,{passive:!0}),()=>e.removeEventListener(`scroll`,t)},[]),(0,l.useEffect)(()=>{G.current&&W.current?.scrollIntoView({behavior:M===`streaming`?`auto`:`smooth`,block:`nearest`})},[k,M]);let we=e=>{G.current=!0,N(e)},Z=(0,l.useRef)(null),Te=()=>{let t=ge.current;G.current=!1,Z.current=t?{height:t.scrollHeight,top:t.scrollTop}:null,e.loadEarlier?.().catch(()=>{Z.current=null})};(0,l.useEffect)(()=>{let e=Z.current,t=ge.current;e&&t&&t.scrollHeight!==e.height&&(t.scrollTop=e.top+(t.scrollHeight-e.height),Z.current=null)},[k]),(0,l.useEffect)(()=>{ue.current?.toggleAttribute(`inert`,pe)},[pe]),(0,l.useEffect)(()=>{!pe&&me.current&&((me.current===`input`?de.current:fe.current)?.focus(),me.current=null)},[pe]);let Ee=(0,l.useCallback)(e=>{me.current=e.restoreFocusTo,V(!1)},[]);return(0,m.jsx)(dt.Provider,{value:U,children:(0,m.jsx)(Et.Provider,{value:R,children:(0,m.jsxs)(`div`,{ref:le,className:`bailey-chat-panel${y?` ${y}`:``}`,style:b!==void 0||x!==void 0?{height:b,width:x}:void 0,children:[(0,m.jsxs)(`div`,{className:`bailey-chat-panel-inner`,ref:ue,children:[(0,m.jsxs)(`div`,{className:`bailey-chat-transcript`,ref:ge,"data-suggestions-align":X&&a&&a.length>0?o:void 0,children:[e.hasEarlier&&e.loadEarlier&&(0,m.jsxs)(`div`,{className:`bailey-load-earlier`,children:[(0,m.jsx)(`button`,{type:`button`,className:`bailey-load-earlier-button`,disabled:e.historyStatus===`loading`,onClick:Te,children:z.loadEarlierButtonText}),e.historyStatus===`error`&&(0,m.jsx)(`div`,{role:`alert`,className:`bailey-load-earlier-error`,children:z.loadEarlierErrorText})]}),X&&(a&&a.length>0?(0,m.jsxs)(`div`,{className:`bailey-suggestions`,"data-align":o,children:[z.suggestionsTitle&&(0,m.jsx)(`div`,{className:`bailey-suggestions-title`,children:z.suggestionsTitle}),a.map((e,t)=>(0,m.jsxs)(`button`,{type:`button`,onClick:()=>we(e.value??e.label),className:`bailey-suggestion-card`,children:[(0,m.jsx)(`span`,{children:e.label}),e.icon??(0,m.jsx)(At,{className:`bailey-suggestion-icon`})]},`${e.label}-${t}`))]}):(0,m.jsx)(`div`,{className:`bailey-empty-state`,children:z.emptyStateMessage})),k.map((t,n)=>{let r=t.role===`assistant`&&n===k.length-1,a=M===`streaming`&&r&&t.content===``,o=t.role===`assistant`?lt(A,t.createdAt):[],s=o.some(e=>e.status===`running`);return(0,m.jsx)(`div`,{className:t.role===`user`?`bailey-message-row bailey-message-row-user`:`bailey-message-row`,children:t.role===`user`?(0,m.jsxs)(`div`,{className:`bailey-user-message`,children:[(0,m.jsxs)(`div`,{className:`bailey-message-meta`,children:[(0,m.jsx)(`span`,{className:`bailey-message-meta-name`,children:z.youLabel}),t.createdAt!==void 0&&(0,m.jsx)(`span`,{children:B(t.createdAt)})]}),(0,m.jsx)(`div`,{className:`bailey-user-bubble`,children:t.content})]}):a?s?(0,m.jsx)(fn,{steps:o,resolveActivityIcon:_}):(0,m.jsxs)(`div`,{className:`bailey-thinking-hint`,children:[(0,m.jsx)(`span`,{children:_e??z.thinkingHint}),(0,m.jsx)(`span`,{className:`bailey-step-spinner`,"aria-hidden":`true`})]}):(0,m.jsxs)(`div`,{className:`bailey-assistant-message`,children:[!t.streaming&&(0,m.jsx)(pn,{steps:o,labels:z,resolveActivityIcon:_}),(0,m.jsx)(Bn,{content:t.content,components:K}),t.parts?.map((e,t)=>e.type===`image`?(0,m.jsx)(tn,{src:e.src,alt:e.alt},t):e.type===`mcp_app`?(0,m.jsx)(l.Fragment,{children:D?D(e):(0,m.jsx)(ln,{...e,title:e.title??z.mcpAppDefaultTitle})},t):null),t.streaming&&(0,m.jsx)(fn,{steps:o,resolveActivityIcon:_}),t.streaming&&Y&&!s&&(0,m.jsxs)(`div`,{className:`bailey-streaming-hint`,children:[(0,m.jsx)(`span`,{children:Y}),(0,m.jsx)(`span`,{className:`bailey-step-spinner`,"aria-hidden":`true`})]}),!t.streaming&&(0,m.jsxs)(`div`,{className:`bailey-message-actions`,children:[(0,m.jsx)(Gt,{markdown:t.content,ariaLabel:z.copyButtonAriaLabel,tooltipDefaultText:z.copyButtonTooltipDefault,tooltipCopiedText:z.copyButtonTooltipCopied}),w!==!1&&e.feedback&&e.conversationId&&t.serverMessageId&&!oe.has(t.serverMessageId)&&(0,m.jsx)(Et.Provider,{value:ce,children:(0,m.jsx)(Pn,{...w,assistantName:i,messageId:t.serverMessageId,initialRating:t.feedback?.rating,onSubmit:e.feedback.onSubmit,onClear:e.feedback.onClear})}),C?.(t)]})]})},t.id)}),(0,m.jsx)(`div`,{ref:W})]}),te&&(0,m.jsxs)(`div`,{className:`bailey-error-banner`,role:`alert`,children:[(0,m.jsx)(`span`,{children:te}),(0,m.jsxs)(`div`,{className:`bailey-error-actions`,children:[(0,m.jsx)(`button`,{type:`button`,onClick:P,className:`bailey-retry-button`,children:z.retryButtonText}),(0,m.jsx)(`button`,{type:`button`,onClick:ie,"aria-label":z.dismissErrorAriaLabel,className:`bailey-dismiss-button`,children:`✕`})]})]}),!S&&(0,m.jsx)(en,{events:A,lastRequest:j,onClear:re}),(0,m.jsxs)(`div`,{className:`bailey-input-area`,children:[(0,m.jsxs)(`form`,{onSubmit:e=>{e.preventDefault(),F.trim()&&M!==`streaming`&&(we(F),I(``))},className:`bailey-input-row`,children:[(0,m.jsx)(`input`,{ref:de,type:`text`,placeholder:Ce,"aria-label":Ce,value:F,onChange:e=>I(e.target.value),disabled:M===`streaming`,className:`bailey-input`}),M===`streaming`?(0,m.jsx)(p.Provider,{delayDuration:200,children:(0,m.jsxs)(p.Root,{children:[(0,m.jsx)(p.Trigger,{asChild:!0,children:(0,m.jsx)(`button`,{type:`button`,onClick:ne,"aria-label":z.stopAriaLabel,className:`bailey-stop-button`,children:(0,m.jsx)(kt,{className:`bailey-stop-icon`})})}),(0,m.jsx)(p.Portal,{container:U instanceof ShadowRoot?U:void 0,children:(0,m.jsxs)(p.Content,{side:`top`,className:`bailey-tooltip-content`,children:[z.stopButtonText,(0,m.jsx)(p.Arrow,{className:`bailey-tooltip-arrow`})]})})]})}):(0,m.jsx)(`button`,{type:`submit`,"aria-label":z.sendAriaLabel,disabled:!F.trim(),className:`bailey-send-button`,children:v??(0,m.jsx)(Ot,{className:`bailey-send-icon`})})]}),!s&&(!X||H)&&(0,m.jsxs)(f.Root,{children:[(0,m.jsx)(f.Trigger,{asChild:!0,children:(0,m.jsx)(`button`,{type:`button`,ref:fe,"aria-label":z.menuAriaLabel,className:`bailey-menu-button`,children:(0,m.jsx)(Ft,{className:`bailey-menu-icon`})})}),(0,m.jsx)(f.Portal,{container:U instanceof ShadowRoot?U:void 0,children:(0,m.jsxs)(f.Content,{side:`top`,align:`end`,sideOffset:8,className:`bailey-menu-content`,onCloseAutoFocus:e=>{he.current&&=(e.preventDefault(),!1)},children:[!X&&(0,m.jsxs)(f.Item,{onSelect:()=>ae(),className:`bailey-menu-item`,children:[(0,m.jsx)(It,{className:`bailey-menu-item-icon`}),z.newChatButtonText]}),H&&(0,m.jsxs)(f.Item,{onSelect:()=>{c?c():(he.current=!0,V(!0))},className:`bailey-menu-item`,children:[(0,m.jsx)(Nt,{className:`bailey-menu-item-icon`}),z.historyMenuItemText]})]})})]})]}),(X||g?.alwaysVisible)&&g&&(0,m.jsx)(`div`,{className:`bailey-privacy-note`,children:(0,m.jsx)(u.default,{remarkPlugins:Rn,components:zn,skipHtml:!0,children:g.markdown})})]}),pe&&d&&!c&&(0,m.jsx)(xn,{client:d.client,pageSize:d.pageSize,chat:e,labels:z,locale:h,onClose:Ee})]})})})}var Gn=`0.3.1-pre.2`;exports.ActivityIcon=Pt,exports.ArrowUpRightIcon=At,exports.BAILEYAI_CHAT_UI_VERSION=Gn,exports.BAILEY_CHART_PROMPT_FRAGMENT=ze,exports.BAILEY_TABLE_GRID_ROW_THRESHOLD=je,exports.BaileyApiError=D,exports.BaileyChatPanel=Wn,exports.BaileyCleanupError=k,exports.BaileyFeedbackButtons=Pn,exports.BaileyHistoryDrawer=xn,exports.BaileyTracePanel=en,exports.CopyMarkdownButton=Gt,exports.DEFAULT_CONVERSATION_STORAGE_KEY=ie,exports.HeartIcon=Ot,exports.TRACE_KIND_LABEL=qe,exports.ThumbDownIcon=Bt,exports.ThumbUpIcon=zt,exports.createBaileyClient=Oe,exports.createBaileyFeedbackHandlers=re,exports.createBaileyMarkdownComponents=Dt,exports.createMemoryConversationStorage=F,exports.createSessionConversationStorage=ae,exports.extractPseudoToolCalls=w,exports.extractTableData=Le,exports.formatRelativeTime=bn,exports.formatTraceGap=rt,exports.formatTraceTime=nt,exports.hasTraceFailure=st,exports.isConversationIdForSub=P,exports.isSafeMarkdownUrl=c.n,exports.joinInstructions=ke,exports.mapTranscript=te,exports.mergeEarlierPage=ne,exports.parseBaileyChartSpec=Ke,exports.parseSseFrames=E,exports.resolveToolCall=$,exports.shouldUseGrid=Re,exports.toActivityLines=ct,exports.toToolSteps=lt,exports.toTraceRows=it,exports.toTraceSegments=ot,exports.traceEventArgsDetail=Ze,exports.traceEventHint=tt,exports.traceEventOutputDetail=Qe,exports.traceEventRawDetail=et,exports.traceEventSummary=Xe,exports.traceEventToolName=Ye,exports.traceSummaryLine=at,exports.useBaileyChat=V,exports.useBaileyConversations=he;
|
|
12
|
+
@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-font-weight:initial;--tw-shadow:0 0 #0000;--tw-shadow-color:initial;--tw-shadow-alpha:100%;--tw-inset-shadow:0 0 #0000;--tw-inset-shadow-color:initial;--tw-inset-shadow-alpha:100%;--tw-ring-color:initial;--tw-ring-shadow:0 0 #0000;--tw-inset-ring-color:initial;--tw-inset-ring-shadow:0 0 #0000;--tw-ring-inset:initial;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-offset-shadow:0 0 #0000;--tw-border-style:solid;--tw-ordinal:initial;--tw-slashed-zero:initial;--tw-numeric-figure:initial;--tw-numeric-spacing:initial;--tw-numeric-fraction:initial;--tw-space-y-reverse:0;--tw-outline-style:solid}}}@layer theme{:root,:host{--font-sans:"Inter", -apple-system, "Segoe UI", Roboto, Arial, sans-serif;--font-mono:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;--color-red-50:oklch(97.1% .013 17.38);--color-red-100:oklch(93.6% .032 17.717);--color-red-200:oklch(88.5% .062 18.334);--color-green-100:oklch(96.2% .044 156.743);--color-green-700:oklch(52.7% .154 150.069);--color-blue-100:oklch(93.2% .032 255.585);--color-blue-700:oklch(48.8% .243 264.376);--color-purple-100:oklch(94.6% .033 307.174);--color-purple-700:oklch(49.6% .265 301.924);--color-gray-50:oklch(98.5% .002 247.839);--color-gray-100:oklch(96.7% .003 264.542);--color-gray-200:oklch(92.8% .006 264.531);--color-gray-400:oklch(70.7% .022 261.325);--color-gray-600:oklch(44.6% .03 256.802);--color-gray-700:oklch(37.3% .034 259.733);--color-black:#000;--color-white:#fff;--spacing:.25rem;--container-3xl:48rem;--text-xs:.75rem;--text-xs--line-height:calc(1 / .75);--text-sm:.875rem;--text-sm--line-height:calc(1.25 / .875);--text-base:1rem;--text-base--line-height:calc(1.5 / 1);--text-lg:1.125rem;--text-lg--line-height:calc(1.75 / 1.125);--text-xl:1.25rem;--text-xl--line-height:calc(1.75 / 1.25);--font-weight-medium:500;--font-weight-semibold:600;--leading-relaxed:1.625;--radius-md:.375rem;--radius-lg:.5rem;--radius-xl:.75rem;--radius-2xl:1rem;--animate-spin:spin 1s linear infinite;--default-transition-duration:.15s;--default-transition-timing-function:cubic-bezier(.4, 0, .2, 1);--color-bailey-accent:#4f46e5;--color-bailey-bubble-bg:#fff;--color-bailey-error:#d32f2f;--color-bailey-border:#e5e5e5;--color-bailey-surface:#fff;--color-bailey-surface-muted:#f9fafb;--color-bailey-text:#000;--color-bailey-text-secondary:#6b6b6b;--color-bailey-tooltip-bg:#000;--color-bailey-tooltip-text:#fff;--color-bailey-page-bg:#eceef4;--color-bailey-heart:#16a34a}}@layer utilities;.bailey-chat-panel{box-sizing:border-box;background-color:var(--color-bailey-page-bg);height:100%;padding:calc(var(--spacing) * 3);font-family:var(--font-sans);flex-direction:column;display:flex;position:relative}.bailey-chat-panel-inner{width:100%;min-height:0;max-width:var(--container-3xl);gap:calc(var(--spacing) * 2);flex-direction:column;flex:1;margin-inline:auto;display:flex;overflow-y:auto}.bailey-chat-transcript{min-height:0;padding:calc(var(--spacing) * 2);padding-bottom:calc(var(--spacing) * 4);flex:1;overflow-y:auto}.bailey-message-row{margin-bottom:calc(var(--spacing) * 3);justify-content:flex-start;display:flex}.bailey-message-row-user{justify-content:flex-end}.bailey-user-message{flex-direction:column;align-items:flex-end;max-width:75%;display:flex}.bailey-message-meta{margin-bottom:var(--spacing);align-items:center;gap:calc(var(--spacing) * 2);font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height));color:var(--color-bailey-text-secondary);display:flex}.bailey-message-meta-name{--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium);color:var(--color-bailey-text)}.bailey-user-bubble{border-radius:var(--radius-2xl);background-color:var(--color-bailey-bubble-bg);max-width:100%;padding-inline:calc(var(--spacing) * 4);padding-block:calc(var(--spacing) * 2);white-space:pre-wrap;color:var(--color-bailey-text);--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a), 0 1px 2px -1px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.bailey-assistant-message{width:100%;padding-inline:var(--spacing)}.bailey-tool-result-image{margin-top:calc(var(--spacing) * 2);border-radius:var(--radius-lg);max-width:100%;height:auto;display:block}.bailey-mcp-app-frame{margin-top:calc(var(--spacing) * 2);border-radius:var(--radius-lg);border-style:var(--tw-border-style);border-width:0;width:100%;height:480px;display:block}.bailey-thinking-hint{align-items:center;gap:calc(var(--spacing) * 2);font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height));color:var(--color-bailey-text-secondary);font-style:italic;display:flex}.bailey-streaming-hint{margin-top:var(--spacing);align-items:center;gap:calc(var(--spacing) * 2);font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height));color:var(--color-bailey-text-secondary);font-style:italic;display:flex}.bailey-message-actions{margin-top:var(--spacing);align-items:center;gap:var(--spacing);flex-wrap:wrap;display:flex}.bailey-empty-state{text-align:center;height:100%;font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height));color:var(--color-bailey-text-secondary);justify-content:center;align-items:center;display:flex}.bailey-suggestions{gap:calc(var(--spacing) * 3);padding:calc(var(--spacing) * 2);flex-direction:column;display:flex}.bailey-chat-transcript[data-suggestions-align=end]{flex-direction:column;display:flex}.bailey-suggestions[data-align=end]{align-items:flex-end;margin-top:auto}.bailey-suggestions-title{padding-inline:var(--spacing);font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height));--tw-font-weight:var(--font-weight-semibold);font-weight:var(--font-weight-semibold);color:var(--color-bailey-text)}.bailey-suggestion-card{cursor:pointer;appearance:none;justify-content:space-between;align-items:center;gap:calc(var(--spacing) * 2);background-color:var(--color-bailey-surface);padding-inline:calc(var(--spacing) * 4);padding-block:calc(var(--spacing) * 3);text-align:left;font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height));color:var(--color-bailey-text);--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a), 0 1px 2px -1px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);transition-property:box-shadow;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration));display:flex}@media (hover:hover){.bailey-suggestion-card:hover{--tw-shadow:0 4px 6px -1px var(--tw-shadow-color,#0000001a), 0 2px 4px -2px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}}.bailey-suggestion-card{border:var(--bailey-suggestion-border,none);border-radius:var(--bailey-suggestion-radius,1rem);font-weight:var(--bailey-suggestion-font-weight,normal)}.bailey-suggestion-icon{height:calc(var(--spacing) * 4);width:calc(var(--spacing) * 4);color:var(--color-bailey-text-secondary);flex-shrink:0}.bailey-privacy-note{border-top-style:var(--tw-border-style);border-top-width:1px;border-color:var(--color-bailey-border);padding-inline:calc(var(--spacing) * 4);padding-top:calc(var(--spacing) * 3);padding-bottom:var(--spacing);text-align:center;font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height));color:var(--color-bailey-text-secondary)}.bailey-privacy-note a{color:var(--color-bailey-text-secondary);text-decoration-line:underline}.bailey-tool-steps-live{margin-top:calc(var(--spacing) * 2);gap:calc(var(--spacing) * 2);flex-direction:column;display:flex}.bailey-activity-line{align-items:center;gap:calc(var(--spacing) * 2);font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height));color:var(--color-bailey-text-secondary);display:flex}.bailey-activity-icon{height:calc(var(--spacing) * 4);width:calc(var(--spacing) * 4);color:var(--color-bailey-accent);flex-shrink:0}.bailey-step-spinner{height:calc(var(--spacing) * 3);width:calc(var(--spacing) * 3);border-style:var(--tw-border-style);border-width:2px;border-color:var(--color-bailey-border);border-top-color:var(--color-bailey-accent);border-radius:2147483647px;flex-shrink:0}@media (prefers-reduced-motion:no-preference){.bailey-step-spinner{animation:var(--animate-spin)}}.bailey-tool-steps-summary{margin-bottom:calc(var(--spacing) * 2);font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height));color:var(--color-bailey-text-secondary)}.bailey-tool-steps-summary>summary{cursor:pointer;-webkit-user-select:none;user-select:none}.bailey-tool-steps-list{margin:0;margin-top:var(--spacing);gap:var(--spacing);flex-direction:column;padding:0;list-style-type:none;display:flex}.bailey-tool-step{align-items:center;gap:calc(var(--spacing) * 2);display:flex}.bailey-tool-step-start{--tw-numeric-spacing:tabular-nums;font-variant-numeric:var(--tw-ordinal,) var(--tw-slashed-zero,) var(--tw-numeric-figure,) var(--tw-numeric-spacing,) var(--tw-numeric-fraction,)}.bailey-tool-step-failed{color:var(--color-bailey-error)}.bailey-error-banner{margin-bottom:calc(var(--spacing) * 2);justify-content:space-between;align-items:center;gap:calc(var(--spacing) * 2);border-radius:var(--radius-md);border-style:var(--tw-border-style);border-width:1px;border-color:var(--color-bailey-error);padding-inline:calc(var(--spacing) * 3);padding-block:calc(var(--spacing) * 2);color:var(--color-bailey-error);display:flex}.bailey-retry-button{cursor:pointer;appearance:none;--tw-border-style:none;font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height));--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium);background-color:#0000;border-style:none;text-decoration-line:underline}.bailey-error-actions{align-items:center;gap:calc(var(--spacing) * 2);display:flex}.bailey-dismiss-button{cursor:pointer;appearance:none;--tw-border-style:none;color:var(--color-bailey-error);background-color:#0000;border-style:none}@media (hover:hover){.bailey-dismiss-button:hover{opacity:.7}}.bailey-input-area{align-items:center;gap:calc(var(--spacing) * 2);display:flex}.bailey-input-row{align-items:center;gap:calc(var(--spacing) * 2);border-style:var(--tw-border-style);background-color:var(--color-bailey-surface);min-width:0;padding-inline:calc(var(--spacing) * 2);padding-block:calc(var(--spacing) * 1.5);--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a), 0 1px 2px -1px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);border-width:1px;flex:1;display:flex}.bailey-input-row:focus-within{border-color:var(--color-bailey-accent)}.bailey-input-row{border-radius:var(--bailey-input-radius,9999px);border-color:var(--bailey-input-border-color,var(--color-bailey-border))}.bailey-input{--tw-border-style:none;min-width:0;padding-inline:calc(var(--spacing) * 3);padding-block:calc(var(--spacing) * 2);--tw-outline-style:none;background-color:#0000;border-style:none;outline-style:none;flex:1}.bailey-input:disabled{opacity:.5}.bailey-send-button,.bailey-stop-button{cursor:pointer;appearance:none;background-color:#0000;border-radius:2147483647px;flex-shrink:0;justify-content:center;align-items:center;display:flex}:is(.bailey-send-button,.bailey-stop-button):disabled{cursor:default;opacity:.4}.bailey-send-button{height:calc(var(--spacing) * 9);width:calc(var(--spacing) * 9);--tw-border-style:none;color:var(--bailey-send-fg,var(--color-bailey-heart));background-color:var(--bailey-send-bg,transparent);border-style:none}@media (hover:hover){.bailey-send-button:hover{background-color:var(--bailey-send-bg-hover,#16a34a1a)}@supports (color:color-mix(in lab, red, red)){.bailey-send-button:hover{background-color:var(--bailey-send-bg-hover,color-mix(in oklab, var(--color-bailey-heart) 10%, transparent))}}}.bailey-send-icon{height:calc(var(--spacing) * 5);width:calc(var(--spacing) * 5)}.bailey-stop-button{height:calc(var(--spacing) * 9);width:calc(var(--spacing) * 9);--tw-border-style:none;color:var(--bailey-stop-fg,var(--color-bailey-error));background-color:var(--bailey-stop-bg,transparent);border-style:none}@media (hover:hover){.bailey-stop-button:hover{background-color:var(--bailey-stop-bg-hover,#d32f2f1a)}@supports (color:color-mix(in lab, red, red)){.bailey-stop-button:hover{background-color:var(--bailey-stop-bg-hover,color-mix(in oklab, var(--color-bailey-error) 10%, transparent))}}}.bailey-stop-icon{height:calc(var(--spacing) * 4);width:calc(var(--spacing) * 4)}.bailey-copy-button{height:calc(var(--spacing) * 7);width:calc(var(--spacing) * 7);cursor:pointer;appearance:none;--tw-border-style:none;color:var(--color-bailey-text-secondary);background-color:#0000;border-style:none;border-radius:2147483647px;justify-content:center;align-items:center;display:flex}@media (hover:hover){.bailey-copy-button:hover{background-color:#0000000d}@supports (color:color-mix(in lab, red, red)){.bailey-copy-button:hover{background-color:color-mix(in oklab, var(--color-black) 5%, transparent)}}.bailey-copy-button:hover{color:var(--color-bailey-text)}}.bailey-copy-icon{height:calc(var(--spacing) * 4);width:calc(var(--spacing) * 4)}.bailey-tooltip-content{padding-inline:calc(var(--spacing) * 2);padding-block:var(--spacing);font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height));background-color:var(--color-bailey-tooltip-bg,#000);color:var(--color-bailey-tooltip-text,#fff);border-radius:.25rem}.bailey-menu-button{height:calc(var(--spacing) * 13);width:calc(var(--spacing) * 13);cursor:pointer;appearance:none;border-style:var(--tw-border-style);border-width:1px;border-color:var(--color-bailey-border);background-color:var(--color-bailey-surface);color:var(--color-bailey-text);--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a), 0 1px 2px -1px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);border-radius:2147483647px;flex-shrink:0;justify-content:center;align-items:center;display:flex}@media (hover:hover){.bailey-menu-button:hover{background-color:var(--color-gray-50)}}.bailey-menu-icon{height:calc(var(--spacing) * 5);width:calc(var(--spacing) * 5)}.bailey-menu-content{z-index:50;min-width:calc(var(--spacing) * 44);border-radius:var(--radius-2xl);background-color:var(--color-white);padding-block:calc(var(--spacing) * 2);font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height));color:var(--color-black);--tw-shadow:0 10px 15px -3px var(--tw-shadow-color,#0000001a), 0 4px 6px -4px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);font-family:var(--font-sans,"Inter", -apple-system, "Segoe UI", Roboto, Arial, sans-serif)}.bailey-menu-item{cursor:pointer;align-items:center;gap:calc(var(--spacing) * 3);padding-inline:calc(var(--spacing) * 4);padding-block:calc(var(--spacing) * 2);--tw-outline-style:none;outline-style:none;display:flex}.bailey-menu-item[data-highlighted]{background-color:var(--color-gray-100)}.bailey-menu-item-icon{height:calc(var(--spacing) * 4);width:calc(var(--spacing) * 4);color:var(--color-gray-600)}.bailey-tooltip-arrow{fill:var(--color-bailey-tooltip-bg,#000)}.bailey-markdown-content table{border-collapse:collapse;width:100%;font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}.bailey-markdown-content th{background-color:var(--color-bailey-surface-muted);padding-inline:calc(var(--spacing) * 3);padding-block:calc(var(--spacing) * 2);text-align:left;--tw-font-weight:var(--font-weight-semibold);font-weight:var(--font-weight-semibold)}.bailey-markdown-content td{border-style:var(--tw-border-style);border-width:1px;border-color:var(--color-bailey-border);padding-inline:calc(var(--spacing) * 3);padding-block:calc(var(--spacing) * 2);vertical-align:top}.bailey-markdown-content tr:nth-child(2n){background-color:var(--color-bailey-surface-muted)}.bailey-markdown-content{font-size:var(--bailey-markdown-font-size,var(--text-sm));line-height:var(--bailey-markdown-line-height,var(--leading-relaxed))}.bailey-markdown-content>:first-child{margin-top:0}.bailey-markdown-content>:last-child{margin-bottom:0}.bailey-markdown-content p{margin-block:var(--bailey-markdown-paragraph-gap,calc(var(--spacing) * 2))}.bailey-markdown-content h1{margin-top:calc(var(--spacing) * 4);margin-bottom:calc(var(--spacing) * 2);font-size:var(--text-xl);line-height:var(--tw-leading,var(--text-xl--line-height));--tw-font-weight:var(--font-weight-semibold);font-weight:var(--font-weight-semibold)}.bailey-markdown-content h2{margin-top:calc(var(--spacing) * 4);margin-bottom:calc(var(--spacing) * 2);font-size:var(--text-lg);line-height:var(--tw-leading,var(--text-lg--line-height));--tw-font-weight:var(--font-weight-semibold);font-weight:var(--font-weight-semibold)}.bailey-markdown-content h3{margin-top:calc(var(--spacing) * 3);margin-bottom:calc(var(--spacing) * 1.5);font-size:var(--text-base);line-height:var(--tw-leading,var(--text-base--line-height));--tw-font-weight:var(--font-weight-semibold);font-weight:var(--font-weight-semibold)}.bailey-markdown-content h4,.bailey-markdown-content h5,.bailey-markdown-content h6{margin-top:calc(var(--spacing) * 3);margin-bottom:calc(var(--spacing) * 1.5);font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height));--tw-font-weight:var(--font-weight-semibold);font-weight:var(--font-weight-semibold)}.bailey-markdown-content ul{margin-block:calc(var(--spacing) * 2);list-style-type:disc}:where(.bailey-markdown-content ul>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(var(--spacing) * var(--tw-space-y-reverse));margin-block-end:calc(var(--spacing) * calc(1 - var(--tw-space-y-reverse)))}.bailey-markdown-content ul{padding-left:calc(var(--spacing) * 5)}.bailey-markdown-content ol{margin-block:calc(var(--spacing) * 2);list-style-type:decimal}:where(.bailey-markdown-content ol>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(var(--spacing) * var(--tw-space-y-reverse));margin-block-end:calc(var(--spacing) * calc(1 - var(--tw-space-y-reverse)))}.bailey-markdown-content ol{padding-left:calc(var(--spacing) * 5)}.bailey-markdown-content a{color:var(--color-bailey-accent);text-underline-offset:2px;text-decoration-line:underline}.bailey-markdown-content code{background-color:var(--color-bailey-surface-muted);padding-inline:var(--spacing);padding-block:calc(var(--spacing) * .5);font-family:var(--font-mono);border-radius:.25rem;font-size:.85em}.bailey-markdown-content pre{margin-block:calc(var(--spacing) * 2);border-radius:var(--radius-md);background-color:var(--color-bailey-surface-muted);padding:calc(var(--spacing) * 2);overflow-x:auto}.bailey-markdown-content pre code{background-color:#0000;padding:0}.bailey-markdown-content blockquote{margin-block:calc(var(--spacing) * 2);border-left-style:var(--tw-border-style);border-left-width:2px;border-color:var(--color-bailey-border);padding-left:calc(var(--spacing) * 3);color:var(--color-bailey-text-secondary);font-style:italic}.bailey-markdown-content hr{margin-block:calc(var(--spacing) * 3);border-color:var(--color-bailey-border)}.bailey-trace-panel{margin-bottom:calc(var(--spacing) * 2)}.bailey-trace-toggle-row{align-items:center;gap:calc(var(--spacing) * 2);display:flex}.bailey-trace-toggle{cursor:pointer;appearance:none;--tw-border-style:none;font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height));color:var(--color-bailey-accent);background-color:#0000;border-style:none}@media (hover:hover){.bailey-trace-toggle:hover{text-decoration-line:underline}}.bailey-trace-toggle-error{color:var(--color-bailey-error)}.bailey-trace-summary{font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height));color:var(--color-bailey-text-secondary)}.bailey-trace-summary-error{color:var(--color-bailey-error)}.bailey-trace-body{margin-top:var(--spacing);max-height:calc(var(--spacing) * 80);overflow-y:auto}.bailey-trace-actions-row{justify-content:flex-end;gap:calc(var(--spacing) * 3);display:flex}.bailey-trace-copy-button{cursor:pointer;appearance:none;--tw-border-style:none;font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height));color:var(--color-bailey-accent);background-color:#0000;border-style:none;text-decoration-line:underline}@media (hover:hover){.bailey-trace-copy-button:hover{text-decoration-line:none}}.bailey-trace-request-details{margin-bottom:var(--spacing);border-radius:var(--radius-md);border-style:var(--tw-border-style);border-width:1px;border-color:var(--color-bailey-border);background-color:var(--color-bailey-surface);padding:calc(var(--spacing) * 2)}.bailey-trace-request-meta{font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height));color:var(--color-bailey-text-secondary);display:block}.bailey-trace-rows{gap:var(--spacing);flex-direction:column;display:flex}.bailey-trace-row{border-radius:var(--radius-md);border-style:var(--tw-border-style);border-width:1px;border-color:var(--color-bailey-border);padding-inline:calc(var(--spacing) * 2);padding-block:var(--spacing);font-family:var(--font-mono);font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height))}.bailey-trace-row-header{align-items:center;gap:calc(var(--spacing) * 2);flex-wrap:wrap;display:flex}.bailey-trace-row-time{color:var(--color-bailey-text-secondary)}.bailey-trace-row-gap{color:var(--color-gray-400)}.bailey-trace-row-summary{word-break:break-all}.bailey-trace-chip{padding-inline:calc(var(--spacing) * 1.5);padding-block:calc(var(--spacing) * .5);--tw-font-weight:var(--font-weight-semibold);font-size:.65rem;font-weight:var(--font-weight-semibold);border-radius:.25rem}.bailey-trace-chip-default{background-color:var(--color-gray-200);color:var(--color-gray-700)}.bailey-trace-chip-info{background-color:var(--color-blue-100);color:var(--color-blue-700)}.bailey-trace-chip-success{background-color:var(--color-green-100);color:var(--color-green-700)}.bailey-trace-chip-secondary{background-color:var(--color-purple-100);color:var(--color-purple-700)}.bailey-trace-chip-error{background-color:var(--color-red-100);color:var(--color-bailey-error)}.bailey-trace-disclosure{margin-top:var(--spacing)}.bailey-trace-disclosure-summary{cursor:pointer;color:var(--color-bailey-text-secondary);font-size:.7rem}.bailey-trace-disclosure-actions{margin-top:var(--spacing);justify-content:flex-end;display:flex}.bailey-trace-disclosure-content{margin-top:var(--spacing);max-height:calc(var(--spacing) * 48);border-style:var(--tw-border-style);border-width:1px;border-color:var(--color-bailey-border);background-color:var(--color-bailey-surface-muted);padding:calc(var(--spacing) * 1.5);word-break:break-all;white-space:pre-wrap;border-radius:.25rem;font-size:.7rem;overflow:auto}.bailey-trace-group{border-radius:var(--radius-md);border-style:var(--tw-border-style);border-width:1px;border-color:var(--color-bailey-border);padding-inline:calc(var(--spacing) * 2);padding-block:var(--spacing)}.bailey-trace-group-summary{cursor:pointer;font-family:var(--font-mono);font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height))}.bailey-trace-group-failed{margin-left:var(--spacing);font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height));color:var(--color-bailey-error)}.bailey-feedback{align-items:center;gap:var(--spacing);font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height));color:var(--color-bailey-text);flex-wrap:wrap;display:flex}.bailey-message-actions>.bailey-feedback{display:contents}.bailey-feedback-thumbs{margin-left:var(--spacing);align-items:center;gap:calc(var(--spacing) * .5);border-left-style:var(--tw-border-style);border-left-width:1px;border-color:var(--color-bailey-border);padding-left:calc(var(--spacing) * 2);display:flex}.bailey-feedback-thumb{height:calc(var(--spacing) * 7);width:calc(var(--spacing) * 7);cursor:pointer;appearance:none;border-radius:var(--radius-lg);--tw-border-style:none;color:var(--color-bailey-text-secondary);background-color:#0000;border-style:none;justify-content:center;align-items:center;display:flex}@media (hover:hover){.bailey-feedback-thumb:hover{background-color:#0000000d}@supports (color:color-mix(in lab, red, red)){.bailey-feedback-thumb:hover{background-color:color-mix(in oklab, var(--color-black) 5%, transparent)}}.bailey-feedback-thumb:hover{color:var(--color-bailey-text)}}.bailey-feedback-thumb:focus-visible{outline-style:var(--tw-outline-style);outline-width:2px;outline-color:var(--color-bailey-accent)}.bailey-feedback-thumb:disabled{cursor:default;opacity:.5}.bailey-feedback-thumb[aria-pressed=true]{background-color:#4f46e51a}@supports (color:color-mix(in lab, red, red)){.bailey-feedback-thumb[aria-pressed=true]{background-color:color-mix(in oklab, var(--color-bailey-accent) 10%, transparent)}}.bailey-feedback-thumb[aria-pressed=true]{color:var(--color-bailey-accent)}.bailey-feedback-icon{height:calc(var(--spacing) * 4);width:calc(var(--spacing) * 4)}.bailey-feedback-status{align-items:center;gap:calc(var(--spacing) * 1.5);font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height));color:var(--color-bailey-text-secondary);display:inline-flex}.bailey-feedback-status:empty{display:none}.bailey-feedback-spinner{height:calc(var(--spacing) * 3);width:calc(var(--spacing) * 3);animation:var(--animate-spin);border-style:var(--tw-border-style);border-width:2px;border-color:var(--color-bailey-border);border-top-color:var(--color-bailey-accent);border-radius:2147483647px;display:inline-block}.bailey-feedback-link{cursor:pointer;appearance:none;--tw-border-style:none;padding-inline:var(--spacing);font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height));color:var(--color-bailey-accent);background-color:#0000;border-style:none;text-decoration-line:underline}.bailey-feedback-link:focus-visible{outline-style:var(--tw-outline-style);outline-width:2px;outline-color:var(--color-bailey-accent)}.bailey-feedback-error{font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height));color:var(--color-bailey-error)}.bailey-feedback-form{margin-top:calc(var(--spacing) * 2);box-sizing:border-box;border-radius:var(--radius-xl);border-style:var(--tw-border-style);border-width:1px;border-color:var(--color-bailey-border);background-color:var(--color-bailey-surface);width:100%;padding:calc(var(--spacing) * 3);flex-basis:100%}.bailey-feedback-reasons{margin:0;margin-bottom:calc(var(--spacing) * 2);--tw-border-style:none;border-style:none;min-width:0;padding:0}.bailey-feedback-legend{margin-bottom:calc(var(--spacing) * 1.5);font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height));--tw-font-weight:var(--font-weight-semibold);font-weight:var(--font-weight-semibold);color:var(--color-bailey-text);padding:0;display:block}.bailey-feedback-chips{gap:calc(var(--spacing) * 1.5);flex-wrap:wrap;display:flex}.bailey-feedback-chip{cursor:pointer;appearance:none;border-style:var(--tw-border-style);border-width:1px;border-color:var(--color-bailey-border);background-color:var(--color-bailey-surface);padding-inline:calc(var(--spacing) * 3);padding-block:var(--spacing);font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height));color:var(--color-bailey-text);border-radius:2147483647px}.bailey-feedback-chip:focus-visible{outline-style:var(--tw-outline-style);outline-width:2px;outline-color:var(--color-bailey-accent)}.bailey-feedback-chip:disabled{cursor:default;opacity:.5}.bailey-feedback-chip[aria-pressed=true]{border-color:var(--color-bailey-accent);background-color:#4f46e51a}@supports (color:color-mix(in lab, red, red)){.bailey-feedback-chip[aria-pressed=true]{background-color:color-mix(in oklab, var(--color-bailey-accent) 10%, transparent)}}.bailey-feedback-chip[aria-pressed=true]{--tw-font-weight:var(--font-weight-semibold);font-weight:var(--font-weight-semibold);color:var(--color-bailey-accent)}.bailey-feedback-textarea{box-sizing:border-box;min-height:calc(var(--spacing) * 18);resize:vertical;border-radius:var(--radius-lg);border-style:var(--tw-border-style);border-width:1px;border-color:var(--color-bailey-border);background-color:var(--color-bailey-surface);width:100%;padding-inline:calc(var(--spacing) * 2.5);padding-block:calc(var(--spacing) * 2);font-family:var(--font-sans);font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height));color:var(--color-bailey-text);display:block}.bailey-feedback-textarea:disabled{opacity:.5}.bailey-feedback-meta{margin-top:calc(var(--spacing) * 1.5);justify-content:space-between;align-items:flex-start;gap:calc(var(--spacing) * 3);font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height));color:var(--color-bailey-text-secondary);display:flex}.bailey-feedback-buttons{margin-top:calc(var(--spacing) * 2.5);justify-content:flex-end;gap:calc(var(--spacing) * 2);display:flex}.bailey-feedback-button{cursor:pointer;appearance:none;border-radius:var(--radius-lg);border-style:var(--tw-border-style);border-width:1px;border-color:var(--color-bailey-border);background-color:var(--color-bailey-surface);padding-inline:calc(var(--spacing) * 3.5);padding-block:calc(var(--spacing) * 1.5);font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height));color:var(--color-bailey-text)}.bailey-feedback-button:focus-visible{outline-style:var(--tw-outline-style);outline-width:2px;outline-color:var(--color-bailey-accent)}.bailey-feedback-button:disabled{cursor:default;opacity:.5}.bailey-feedback-button-primary{border-color:var(--color-bailey-accent);background-color:var(--color-bailey-accent);--tw-font-weight:var(--font-weight-semibold);font-weight:var(--font-weight-semibold);color:var(--color-white)}.bailey-load-earlier{align-items:center;gap:var(--spacing);padding-bottom:calc(var(--spacing) * 2);flex-direction:column;display:flex}.bailey-load-earlier-button{cursor:pointer;appearance:none;border-radius:var(--radius-lg);border-style:var(--tw-border-style);border-width:1px;border-color:var(--color-bailey-border);background-color:var(--color-bailey-surface);padding-inline:calc(var(--spacing) * 3.5);padding-block:calc(var(--spacing) * 1.5);font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height));color:var(--color-bailey-text)}.bailey-load-earlier-button:focus-visible{outline-style:var(--tw-outline-style);outline-width:2px;outline-color:var(--color-bailey-accent)}.bailey-load-earlier-button:disabled{cursor:default;opacity:.5}.bailey-load-earlier-error{font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height));color:var(--color-bailey-error)}.bailey-history-drawer{z-index:10;background-color:var(--color-bailey-surface);font-family:var(--font-sans);color:var(--color-bailey-text);border-radius:14px;flex-direction:column;display:flex;position:absolute;inset:0;overflow:hidden;container-type:inline-size}.bailey-history-header{align-items:center;gap:calc(var(--spacing) * 2);border-bottom-style:var(--tw-border-style);border-bottom-width:1px;border-color:var(--color-bailey-border);padding-inline:calc(var(--spacing) * 3);padding-block:calc(var(--spacing) * 2);display:flex}.bailey-history-heading{text-overflow:ellipsis;white-space:nowrap;--tw-font-weight:var(--font-weight-semibold);min-width:0;font-size:15px;font-weight:var(--font-weight-semibold);--tw-outline-style:none;outline-style:none;flex:1;margin:0;overflow:hidden}.bailey-history-icon-button{height:calc(var(--spacing) * 11);width:calc(var(--spacing) * 11);cursor:pointer;appearance:none;border-radius:var(--radius-lg);--tw-border-style:none;color:var(--color-bailey-text-secondary);background-color:#0000;border-style:none;flex:none;justify-content:center;align-items:center;display:flex}@media (hover:hover){.bailey-history-icon-button:hover{background-color:#0000000d}@supports (color:color-mix(in lab, red, red)){.bailey-history-icon-button:hover{background-color:color-mix(in oklab, var(--color-black) 5%, transparent)}}.bailey-history-icon-button:hover{color:var(--color-bailey-text)}}.bailey-history-icon-button:focus-visible{outline-style:var(--tw-outline-style);outline-width:2px;outline-color:var(--color-bailey-accent)}.bailey-history-icon-button:disabled{cursor:default;opacity:.5}.bailey-history-icon{width:18px;height:18px}.bailey-history-icon-small{height:calc(var(--spacing) * 3.5);width:calc(var(--spacing) * 3.5);flex:none}.bailey-history-button{min-height:calc(var(--spacing) * 11);cursor:pointer;appearance:none;justify-content:center;align-items:center;gap:calc(var(--spacing) * 1.5);border-radius:var(--radius-lg);border-style:var(--tw-border-style);border-width:1px;border-color:var(--color-bailey-border);background-color:var(--color-bailey-surface);padding-inline:calc(var(--spacing) * 3);padding-block:calc(var(--spacing) * 1.5);white-space:nowrap;color:var(--color-bailey-text);font-size:13px;display:inline-flex}.bailey-history-button:focus-visible{outline-style:var(--tw-outline-style);outline-offset:2px;outline-width:2px;outline-color:var(--color-bailey-accent)}.bailey-history-button:disabled{cursor:default;opacity:.5}.bailey-history-button-primary{border-color:var(--color-bailey-accent);background-color:var(--color-bailey-accent);--tw-font-weight:var(--font-weight-semibold);font-weight:var(--font-weight-semibold);color:var(--color-white)}.bailey-history-button-danger{border-color:var(--color-bailey-error);background-color:var(--color-bailey-error);--tw-font-weight:var(--font-weight-semibold);font-weight:var(--font-weight-semibold);color:var(--color-white)}.bailey-history-button-small{font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height))}.bailey-history-body{padding-inline:calc(var(--spacing) * 2);padding-block:calc(var(--spacing) * 1.5);flex:1;overflow-y:auto}.bailey-history-list{margin:0;padding:0;list-style-type:none}.bailey-history-row{border-radius:10px;flex-wrap:wrap;align-items:center;display:flex;position:relative}.bailey-history-row+.bailey-history-row{margin-top:calc(var(--spacing) * .5)}.bailey-history-row:not(.bailey-history-row-active):hover{background-color:var(--color-gray-100)}.bailey-history-row-active{box-shadow:inset 3px 0 0 var(--color-bailey-accent,#4f46e5);background-color:#4f46e514}.bailey-history-select{min-height:calc(var(--spacing) * 11);cursor:pointer;appearance:none;gap:calc(var(--spacing) * .5);--tw-border-style:none;min-width:0;padding-block:calc(var(--spacing) * 2.5);padding-right:calc(var(--spacing) * 2.5);padding-left:calc(var(--spacing) * 3);text-align:left;color:var(--color-bailey-text);background-color:#0000;border-style:none;border-radius:10px;flex-direction:column;flex:1;font-family:inherit;display:flex}.bailey-history-select:focus-visible{outline-style:var(--tw-outline-style);outline-width:2px;outline-color:var(--color-bailey-accent)}.bailey-history-select:disabled{cursor:default;opacity:.6}.bailey-history-row-title{text-overflow:ellipsis;white-space:nowrap;font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height));--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium);overflow:hidden}.bailey-history-meta{align-items:center;gap:calc(var(--spacing) * 1.5);font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height));color:var(--color-bailey-text-secondary);display:flex}.bailey-history-meta>span+.bailey-history-count:before{content:"·";margin-right:.375rem}.bailey-history-current{--tw-font-weight:var(--font-weight-semibold);font-size:11px;font-weight:var(--font-weight-semibold);color:var(--color-bailey-accent)}.bailey-history-delete{margin-right:var(--spacing)}.bailey-history-row-confirming{border-style:var(--tw-border-style);border-width:1px;border-color:var(--color-red-200);background-color:var(--color-red-50)}.bailey-history-confirm{align-items:center;gap:calc(var(--spacing) * 2);min-width:0;padding-block:calc(var(--spacing) * 2);padding-right:calc(var(--spacing) * 2.5);padding-left:calc(var(--spacing) * 3);flex-wrap:wrap;flex:1;display:flex}.bailey-history-confirm-question{--tw-font-weight:var(--font-weight-semibold);min-width:7.5rem;font-size:13px;font-weight:var(--font-weight-semibold);flex:1}.bailey-history-confirm-title{text-overflow:ellipsis;white-space:nowrap;font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height));color:var(--color-bailey-text-secondary);flex-basis:100%;overflow:hidden}.bailey-history-row-failed{border-style:var(--tw-border-style);border-width:1px;border-color:var(--color-red-200);background-color:#fff7f7}.bailey-history-row-error{align-items:center;gap:calc(var(--spacing) * 2);padding-inline:calc(var(--spacing) * 3);padding-bottom:calc(var(--spacing) * 2.5);font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height));color:var(--color-bailey-error);flex-wrap:wrap;flex-basis:100%;display:flex}.bailey-history-state{align-items:center;gap:calc(var(--spacing) * 2);padding-inline:calc(var(--spacing) * 6);padding-block:calc(var(--spacing) * 12);text-align:center;color:var(--color-bailey-text-secondary);flex-direction:column;font-size:13px;display:flex}.bailey-history-state strong{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height));color:var(--color-bailey-text)}.bailey-history-state-icon{height:calc(var(--spacing) * 7);width:calc(var(--spacing) * 7);color:var(--color-gray-400)}.bailey-history-state-error .bailey-history-state-icon{color:var(--color-bailey-error)}.bailey-history-more{padding-top:calc(var(--spacing) * 2.5);padding-bottom:calc(var(--spacing) * 1.5);justify-content:center;display:flex}.bailey-history-inline-error{justify-content:center;align-items:center;gap:calc(var(--spacing) * 2);padding-inline:calc(var(--spacing) * 3);padding-block:calc(var(--spacing) * 2);font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height));color:var(--color-bailey-error);flex-wrap:wrap;display:flex}.bailey-history-status{min-height:calc(var(--spacing) * 9);align-items:center;gap:calc(var(--spacing) * 2);border-top-style:var(--tw-border-style);border-top-width:1px;border-color:var(--color-bailey-border);background-color:var(--color-bailey-surface-muted);padding-inline:calc(var(--spacing) * 3.5);padding-block:calc(var(--spacing) * 2);font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height));color:var(--color-bailey-text-secondary);display:flex}.bailey-history-skeleton{margin-inline:var(--spacing);margin-bottom:calc(var(--spacing) * 1.5);background:linear-gradient(90deg,#f1f1f4 25%,#e6e6ec 50%,#f1f1f4 75%) 0 0/200% 100%;border-radius:10px;height:52px;animation:1.3s infinite bailey-history-shimmer}.bailey-history-spinner{height:calc(var(--spacing) * 3);width:calc(var(--spacing) * 3);border-style:var(--tw-border-style);border-width:2px;border-color:var(--color-bailey-border);border-top-color:var(--color-bailey-accent,#4f46e5);border-radius:2147483647px;animation:.8s linear infinite bailey-history-rotate;display:inline-block}@keyframes bailey-history-shimmer{to{background-position:-200% 0}}@keyframes bailey-history-rotate{to{transform:rotate(360deg)}}@media (prefers-reduced-motion:reduce){.bailey-history-skeleton,.bailey-history-spinner{animation:none}}@container (width<=340px){.bailey-history-new-chat{width:calc(var(--spacing) * 11);padding-inline:0}.bailey-history-new-chat-text,.bailey-history-count{display:none}}@property --tw-font-weight{syntax:"*";inherits:false}@property --tw-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-shadow-color{syntax:"*";inherits:false}@property --tw-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-inset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-shadow-color{syntax:"*";inherits:false}@property --tw-inset-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-ring-color{syntax:"*";inherits:false}@property --tw-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-ring-color{syntax:"*";inherits:false}@property --tw-inset-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-ring-inset{syntax:"*";inherits:false}@property --tw-ring-offset-width{syntax:"<length>";inherits:false;initial-value:0}@property --tw-ring-offset-color{syntax:"*";inherits:false;initial-value:#fff}@property --tw-ring-offset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-ordinal{syntax:"*";inherits:false}@property --tw-slashed-zero{syntax:"*";inherits:false}@property --tw-numeric-figure{syntax:"*";inherits:false}@property --tw-numeric-spacing{syntax:"*";inherits:false}@property --tw-numeric-fraction{syntax:"*";inherits:false}@property --tw-space-y-reverse{syntax:"*";inherits:false;initial-value:0}@property --tw-outline-style{syntax:"*";inherits:false;initial-value:solid}@keyframes spin{to{transform:rotate(360deg)}}`,dt=(0,l.createContext)(void 0),ft=/:root\s*,\s*:host\s*\{([^}]*)\}/,pt=`.bailey-chat-panel,.bailey-menu-content,.bailey-tooltip-content`,mt=/^\s*--color-bailey-([\w-]+)\s*:\s*(.+?)\s*$/,ht=/^(\s*--font-sans\s*:\s*)(.+?)\s*$/,gt=/var\(--color-bailey-([\w-]+)\)/g;function _t(e){let t=e.match(new RegExp(ft,`g`))?.length??0;if(t!==1)throw Error(`Expected exactly one ":root, :host {" rule in the compiled styles.css, found ${t}. Tailwind likely changed how @theme compiles — update this rewrite (and its sibling, scripts/scope-theme-vars.js) before shipping.`);let n=new Map;return e.replace(ft,(e,t)=>`${pt}{${t.split(`;`).filter(e=>{if(!e.trim())return!1;let t=e.match(mt);return t&&n.set(t[1],t[2]),!t}).map(e=>e.replace(ht,`$1var(--bailey-font-sans,$2)`)).join(`;`)}}`).replace(gt,(e,t)=>n.has(t)?`var(--color-bailey-${t},${n.get(t)})`:e)}var vt=_t(ut),yt=`data-source`,bt=`baileyai-chat-ui`,xt=new WeakMap;function St(e){let t=e.getRootNode();return t instanceof ShadowRoot?t:document}function Ct(e){let t=e instanceof ShadowRoot?e:document.head,n=xt.get(e)??0;if(n===0&&!t.querySelector(`style[${yt}="${bt}"]`)){let e=document.createElement(`style`);e.setAttribute(yt,bt),e.textContent=vt,t.appendChild(e)}return xt.set(e,n+1),()=>{let n=(xt.get(e)??1)-1;n<=0?(xt.delete(e),t.querySelector(`style[${yt}="${bt}"]`)?.remove()):xt.set(e,n)}}function wt(e,t=!1){let[n,r]=(0,l.useState)(null);return(0,l.useLayoutEffect)(()=>{if(t)return;let n=e.current;if(!n)return;let i=St(n);return r(i),Ct(i)},[t,e]),n}function Tt(e){let t=(0,l.useContext)(dt),n=t!==void 0,r=wt(e,n);return n?t:r}var Et=(0,l.createContext)(void 0);function Dt({renderTable:e,renderChart:t}={}){return{a:({href:e,children:t})=>!e||!c.n(e)?(0,m.jsx)(m.Fragment,{children:t}):(0,m.jsx)(`a`,{href:e,target:`_blank`,rel:`noopener noreferrer`,children:t}),table:({node:t,children:n})=>{let r=t&&Le(t);if(r&&Re(r.rows)&&e){let t=r.rows.map(e=>e.map(e=>e.href&&!c.n(e.href)?{text:e.text}:e));return(0,m.jsx)(m.Fragment,{children:e({headers:r.headers,rows:t})})}return(0,m.jsx)(`table`,{children:n})},pre:({children:e})=>{let n=(Array.isArray(e)?e[0]:e)?.props;if((n?.className?.split(` `)??[]).includes(`language-chartjs`)&&t){let e=n?.children,r=Ke(Array.isArray(e)?e.join(``):String(e??``));if(r)return(0,m.jsx)(m.Fragment,{children:t(r)})}return(0,m.jsx)(`pre`,{children:e})}}}function Ot({className:e}){return(0,m.jsx)(`svg`,{viewBox:`0 0 24 24`,fill:`currentColor`,className:e,"aria-hidden":`true`,children:(0,m.jsx)(`path`,{d:`M12 20.3s-7.6-4.7-10-9.4C.4 7.7 1.7 4 5.2 3.1c2.2-.6 4.4.4 5.5 2.2 1.2-1.8 3.4-2.8 5.6-2.2 3.5.9 4.8 4.6 3.2 7.8-2.4 4.7-10 9.4-10 9.4z`})})}function kt({className:e}){return(0,m.jsx)(`svg`,{viewBox:`0 0 24 24`,fill:`currentColor`,className:e,"aria-hidden":`true`,children:(0,m.jsx)(`rect`,{x:`6`,y:`6`,width:`12`,height:`12`,rx:`2`})})}function At({className:e}){return(0,m.jsxs)(`svg`,{viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,strokeWidth:2,strokeLinecap:`round`,strokeLinejoin:`round`,className:e,"aria-hidden":`true`,children:[(0,m.jsx)(`path`,{d:`M7 17 17 7`}),(0,m.jsx)(`path`,{d:`M9 7h8v8`})]})}function jt({className:e}){return(0,m.jsxs)(`svg`,{viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,strokeWidth:2,strokeLinecap:`round`,strokeLinejoin:`round`,className:e,"aria-hidden":`true`,children:[(0,m.jsx)(`rect`,{x:`8`,y:`8`,width:`12`,height:`12`,rx:`2`}),(0,m.jsx)(`path`,{d:`M16 8V6a2 2 0 0 0-2-2H6a2 2 0 0 0-2 2v8a2 2 0 0 0 2 2h2`})]})}function Mt({className:e}){return(0,m.jsx)(`svg`,{viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,strokeWidth:2,strokeLinecap:`round`,strokeLinejoin:`round`,className:e,"aria-hidden":`true`,children:(0,m.jsx)(`path`,{d:`M5 12.5 9.5 17 19 7`})})}function Nt({className:e}){return(0,m.jsx)(`svg`,{viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,strokeWidth:2,strokeLinecap:`round`,strokeLinejoin:`round`,className:e,"aria-hidden":`true`,children:(0,m.jsx)(`path`,{d:`m22.7 13.5-2-2-2 2M21 12a9 9 0 1 1-1.245-4.57M12 7v5l3 2`})})}function Pt({className:e}){return(0,m.jsxs)(`svg`,{viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,strokeWidth:2,strokeLinecap:`round`,strokeLinejoin:`round`,className:e,"aria-hidden":`true`,children:[(0,m.jsx)(`circle`,{cx:`12`,cy:`12`,r:`9`}),(0,m.jsx)(`path`,{d:`M8.5 12.5 11 15l4.5-5.5`})]})}function Ft({className:e}){return(0,m.jsxs)(`svg`,{viewBox:`0 0 24 24`,fill:`currentColor`,className:e,"aria-hidden":`true`,children:[(0,m.jsx)(`circle`,{cx:`5`,cy:`12`,r:`1.75`}),(0,m.jsx)(`circle`,{cx:`12`,cy:`12`,r:`1.75`}),(0,m.jsx)(`circle`,{cx:`19`,cy:`12`,r:`1.75`})]})}function It({className:e}){return(0,m.jsx)(`svg`,{viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,strokeWidth:2,strokeLinecap:`round`,strokeLinejoin:`round`,className:e,"aria-hidden":`true`,children:(0,m.jsx)(`path`,{d:`M12 5v14M5 12h14`})})}var Lt=`M7 11v9H4v-9h3zm0 0 4-8c1.7 0 2.7 1.3 2.4 3L13 9h5.5a2 2 0 0 1 2 2.4l-1.3 6.8A2 2 0 0 1 17.2 20H7`,Rt=`M17 13V4h3v9h-3zm0 0-4 8c-1.7 0-2.7-1.3-2.4-3L11 15H5.5a2 2 0 0 1-2-2.4l1.3-6.8A2 2 0 0 1 6.8 4H17`;function zt({className:e,filled:t=!1}){return(0,m.jsx)(`svg`,{viewBox:`0 0 24 24`,fill:t?`currentColor`:`none`,stroke:`currentColor`,strokeWidth:1.8,strokeLinejoin:`round`,className:e,"aria-hidden":`true`,children:(0,m.jsx)(`path`,{d:Lt})})}function Bt({className:e,filled:t=!1}){return(0,m.jsx)(`svg`,{viewBox:`0 0 24 24`,fill:t?`currentColor`:`none`,stroke:`currentColor`,strokeWidth:1.8,strokeLinejoin:`round`,className:e,"aria-hidden":`true`,children:(0,m.jsx)(`path`,{d:Rt})})}function Vt({className:e}){return(0,m.jsx)(`svg`,{viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,strokeWidth:2,strokeLinecap:`round`,strokeLinejoin:`round`,className:e,"aria-hidden":`true`,children:(0,m.jsx)(`path`,{d:`M15 6l-6 6 6 6`})})}function Ht({className:e}){return(0,m.jsx)(`svg`,{viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,strokeWidth:2,strokeLinecap:`round`,strokeLinejoin:`round`,className:e,"aria-hidden":`true`,children:(0,m.jsx)(`path`,{d:`M4 7h16M10 11v6M14 11v6M6 7l1 12a2 2 0 0 0 2 2h6a2 2 0 0 0 2-2l1-12M9 7V4h6v3`})})}function Ut({className:e}){return(0,m.jsxs)(`svg`,{viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,strokeWidth:2,strokeLinecap:`round`,strokeLinejoin:`round`,className:e,"aria-hidden":`true`,children:[(0,m.jsx)(`circle`,{cx:`12`,cy:`12`,r:`9`}),(0,m.jsx)(`path`,{d:`M12 8v5M12 16.5v.01`})]})}var Wt=1500;function Gt({markdown:e,className:t,ariaLabel:n=`copy response as markdown`,tooltipDefaultText:r=`Copy as markdown`,tooltipCopiedText:i=`Copied!`}){let[a,o]=(0,l.useState)(!1),[s,c]=(0,l.useState)(!1),u=(0,l.useRef)(null),d=(0,l.useRef)(null),f=Tt(d);return(0,l.useEffect)(()=>()=>{u.current!==null&&clearTimeout(u.current)},[]),(0,m.jsx)(p.Provider,{delayDuration:200,children:(0,m.jsxs)(p.Root,{open:a||s,onOpenChange:c,children:[(0,m.jsx)(p.Trigger,{asChild:!0,children:(0,m.jsx)(`button`,{ref:d,type:`button`,onClick:async()=>{try{await navigator.clipboard.writeText(e)}catch{return}o(!0),u.current!==null&&clearTimeout(u.current),u.current=setTimeout(()=>o(!1),Wt)},"aria-label":n,className:`bailey-copy-button${t?` ${t}`:``}`,children:a?(0,m.jsx)(Mt,{className:`bailey-copy-icon`}):(0,m.jsx)(jt,{className:`bailey-copy-icon`})})}),(0,m.jsx)(p.Portal,{container:f instanceof ShadowRoot?f:void 0,children:(0,m.jsxs)(p.Content,{side:`top`,className:`bailey-tooltip-content`,children:[a?i:r,(0,m.jsx)(p.Arrow,{className:`bailey-tooltip-arrow`})]})})]})})}async function Kt(e){try{await navigator.clipboard.writeText(e)}catch{}}function qt({text:e,label:t=`Copy`}){return(0,m.jsx)(`button`,{type:`button`,onClick:()=>Kt(e),className:`bailey-trace-copy-button`,children:t})}function Jt(e){if(e.failed||e.kind===`error`)return`bailey-trace-chip bailey-trace-chip-error`;switch(e.kind){case`tool_start`:case`llm_call_start`:return`bailey-trace-chip bailey-trace-chip-info`;case`tool_end`:case`llm_call_end`:return`bailey-trace-chip bailey-trace-chip-success`;case`progress`:return`bailey-trace-chip bailey-trace-chip-secondary`;default:return`bailey-trace-chip bailey-trace-chip-default`}}function Yt({label:e,content:t,copyable:n}){return(0,m.jsxs)(`details`,{className:`bailey-trace-disclosure`,children:[(0,m.jsx)(`summary`,{className:`bailey-trace-disclosure-summary`,children:e}),n&&(0,m.jsx)(`div`,{className:`bailey-trace-disclosure-actions`,children:(0,m.jsx)(qt,{text:t})}),(0,m.jsx)(`pre`,{className:`bailey-trace-disclosure-content`,children:t})]})}function Xt({row:e}){return(0,m.jsxs)(`div`,{className:`bailey-trace-row`,children:[(0,m.jsxs)(`div`,{className:`bailey-trace-row-header`,children:[(0,m.jsx)(`span`,{className:`bailey-trace-row-time`,children:e.time}),(0,m.jsx)(`span`,{className:`bailey-trace-row-gap`,title:`Time since the previous event`,children:rt(e.gapMs)}),(0,m.jsx)(`span`,{className:Jt(e),children:e.label}),(0,m.jsx)(`span`,{className:`bailey-trace-row-summary`,children:e.summary})]}),e.argsDetail&&(0,m.jsx)(Yt,{label:e.kind===`llm_call_start`?`request`:`args`,content:e.argsDetail}),e.outputDetail&&(0,m.jsx)(Yt,{label:e.kind===`llm_call_end`?`response`:`output`,content:e.outputDetail}),e.structuredOutputDetail&&(0,m.jsx)(Yt,{label:`structured output`,content:e.structuredOutputDetail}),e.rawDetail&&(0,m.jsx)(Yt,{label:`raw`,content:e.rawDetail})]})}function Zt(e,t){if(e.chunkCount===0)return`Streamed: no chunks received`;if(e.chunkCount===1||e.firstChunkAt===null)return`Streamed: 1 chunk (not incremental)`;let n=e.firstChunkAt-t,r=(e.lastChunkAt??e.firstChunkAt)-e.firstChunkAt;return`Streamed: ${e.chunkCount} chunks · first chunk after ${n}ms · spread over ${(r/1e3).toFixed(1)}s`}function Qt({request:e}){let t=(0,l.useMemo)(()=>JSON.stringify({model:e.model,instructions:e.systemPrompt,input:e.messages,stream:e.stream,tools:e.tools,toolChoice:e.toolChoice},null,2),[e]);return(0,m.jsxs)(`div`,{className:`bailey-trace-request-details`,children:[(0,m.jsxs)(`span`,{className:`bailey-trace-request-meta`,children:[`Last request — `,e.model,` · `,new Date(e.sentAt).toLocaleTimeString(),e.requestId?` · ${e.requestId}`:``]}),(0,m.jsx)(`span`,{className:`bailey-trace-request-meta`,children:Zt(e.streamStats,e.sentAt)}),(0,m.jsx)(Yt,{label:`System prompt (${e.systemPrompt.length.toLocaleString()} chars)`,content:e.systemPrompt,copyable:!0}),(0,m.jsx)(Yt,{label:`Messages (${e.messages.length})`,content:JSON.stringify(e.messages,null,2),copyable:!0}),e.response&&(0,m.jsx)(Yt,{label:`Response (${e.response.content.length.toLocaleString()} chars)`,content:e.response.content,copyable:!0}),(0,m.jsx)(Yt,{label:`Full payload (JSON)`,content:t,copyable:!0})]})}function $t({events:e,lastRequest:t,onClear:n}){let r=(0,l.useMemo)(()=>it(e),[e]),i=(0,l.useMemo)(()=>ot(r),[r]),a=(0,l.useMemo)(()=>JSON.stringify(e,null,2),[e]);return(0,m.jsxs)(`div`,{className:`bailey-trace-body`,children:[(0,m.jsxs)(`div`,{className:`bailey-trace-actions-row`,children:[e.length>0&&(0,m.jsx)(qt,{text:a,label:`Copy trace as JSON`}),(0,m.jsx)(`button`,{type:`button`,onClick:n,className:`bailey-trace-copy-button`,children:`Clear`})]}),t&&(0,m.jsx)(Qt,{request:t}),(0,m.jsx)(`div`,{className:`bailey-trace-rows`,children:i.map((e,t)=>{if(e.type===`single`)return(0,m.jsx)(Xt,{row:e.row},e.row.key);let n=e.rows.filter(e=>e.isToolStart).length;if(n<=1)return(0,m.jsx)(`div`,{className:`bailey-trace-rows`,children:e.rows.map(e=>(0,m.jsx)(Xt,{row:e},e.key))},`group-${t}`);let r=e.rows.filter(e=>e.failed).length;return(0,m.jsxs)(`details`,{className:`bailey-trace-group`,children:[(0,m.jsxs)(`summary`,{className:`bailey-trace-group-summary`,children:[(0,m.jsx)(`strong`,{children:e.toolName}),` × `,n,r>0&&(0,m.jsxs)(`span`,{className:`bailey-trace-group-failed`,children:[` `,r,` failed`]})]}),(0,m.jsx)(`div`,{className:`bailey-trace-rows`,children:e.rows.map(e=>(0,m.jsx)(Xt,{row:e},e.key))})]},`group-${t}`)})})]})}function en({events:e,lastRequest:t,onClear:n}){let[r,i]=(0,l.useState)(!1),a=(0,l.useMemo)(()=>st(e),[e]),o=(0,l.useMemo)(()=>at(e),[e]);return e.length===0&&!t?null:(0,m.jsxs)(`div`,{className:`bailey-trace-panel`,children:[(0,m.jsxs)(`div`,{className:`bailey-trace-toggle-row`,children:[(0,m.jsxs)(`button`,{type:`button`,onClick:()=>i(e=>!e),"aria-expanded":r,className:a?`bailey-trace-toggle bailey-trace-toggle-error`:`bailey-trace-toggle`,children:[a&&!r?`⚠ `:``,r?`Hide details`:`Show details`,` (`,e.length,`)`]}),o&&(0,m.jsx)(`span`,{className:a?`bailey-trace-summary bailey-trace-summary-error`:`bailey-trace-summary`,children:o})]}),r&&(0,m.jsx)($t,{events:e,lastRequest:t,onClear:n})]})}function tn({src:e,alt:t,className:n}){return c.t(e)?(0,m.jsx)(`img`,{src:e,alt:t??``,className:`bailey-tool-result-image${n?` ${n}`:``}`,referrerPolicy:`no-referrer`}):null}var nn=/^ui:\/\//,rn=2097152,an=new Set([`connectDomains`,`resourceDomains`,`frameDomains`,`baseUriDomains`]),on=new Set([`camera`,`microphone`,`geolocation`,`clipboardWrite`]),sn=(e,t)=>e===void 0?!0:typeof e!=`object`||!e||Array.isArray(e)?!1:Object.keys(e).every(e=>t.has(e)),cn=e=>!(!nn.test(e.resourceUri)||typeof e.html!=`string`||e.html.length===0||e.html.length>rn||!sn(e.csp,an)||!sn(e.permissions,on));function ln({html:e,title:t,resourceUri:n,csp:r,permissions:i,className:a}){return cn({html:e,resourceUri:n,csp:r,permissions:i})?(0,m.jsx)(`iframe`,{title:t??`MCP App`,srcDoc:e,sandbox:`allow-scripts`,referrerPolicy:`no-referrer`,className:`bailey-mcp-app-frame${a?` ${a}`:``}`}):null}function un({toolName:e,resolveActivityIcon:t}){let n=t?.(e);return n===0||n&&n!==!0?(0,m.jsx)(`span`,{className:`bailey-activity-icon`,children:n}):null}function dn({offsetMs:e,labels:t}){let n=rt(e),r=t.toolStepStartedText?.replace(`{offset}`,n);return(0,m.jsx)(`span`,{className:`bailey-tool-step-start`,title:r,"aria-label":r,role:r?`text`:void 0,children:n})}function fn({steps:e,resolveActivityIcon:t}){let n=e.filter(e=>e.status===`running`);return n.length===0?null:(0,m.jsx)(`div`,{className:`bailey-tool-steps-live`,role:`status`,"aria-live":`polite`,children:n.map(e=>(0,m.jsxs)(`div`,{className:`bailey-activity-line`,children:[(0,m.jsx)(un,{toolName:e.toolName,resolveActivityIcon:t}),(0,m.jsx)(`span`,{children:e.label}),(0,m.jsx)(`span`,{className:`bailey-step-spinner`,"aria-hidden":`true`})]},e.key))})}function pn({steps:e,labels:t,resolveActivityIcon:n}){if(e.length===0)return null;let r=e.filter(e=>e.status===`failed`).length,i=e.length===1?t.toolStepsSummaryOne:t.toolStepsSummaryMany.replace(`{count}`,String(e.length)),a=r>0?`${i}${t.toolStepsFailedSuffix.replace(`{failed}`,String(r))}`:i;return(0,m.jsxs)(`details`,{className:`bailey-tool-steps-summary`,children:[(0,m.jsx)(`summary`,{children:a}),(0,m.jsx)(`ul`,{className:`bailey-tool-steps-list`,children:e.map(e=>(0,m.jsxs)(`li`,{className:`bailey-tool-step`,children:[(0,m.jsx)(un,{toolName:e.toolName,resolveActivityIcon:n}),(0,m.jsx)(`span`,{children:e.label}),e.startOffsetMs!==void 0&&(0,m.jsx)(dn,{offsetMs:e.startOffsetMs,labels:t}),e.runtimeSeconds!==void 0&&(0,m.jsx)(`span`,{children:`${e.runtimeSeconds.toFixed(1)}s`}),e.status===`failed`&&(0,m.jsx)(`span`,{className:`bailey-tool-step-failed`,children:t.toolStepFailedText}),e.status===`running`&&(0,m.jsx)(`span`,{children:t.toolStepStoppedText})]},e.key))})]})}var mn=/(Z|[+-]\d{2}:?\d{2})$/i,hn=60,gn=3600,_n=24*gn,vn=30*_n*1e3;function yn(e){return e?Date.parse(mn.test(e)?e:`${e}Z`):NaN}function bn(e){let t=yn(e.iso);if(Number.isNaN(t))return``;let n=e.now??Date.now(),r=Math.max(0,n-t);if(typeof Intl>`u`||typeof Intl.RelativeTimeFormat!=`function`)return e.justNowText??``;if(r>=vn)return new Intl.DateTimeFormat(e.locale,{dateStyle:`medium`}).format(t);let i=r/1e3,a=new Intl.RelativeTimeFormat(e.locale,{numeric:`auto`});return i<hn?a.format(0,`second`):i<gn?a.format(-Math.floor(i/hn),`minute`):i<_n?a.format(-Math.floor(i/gn),`hour`):a.format(-Math.floor(i/_n),`day`)}function xn({client:e,pageSize:t,chat:n,labels:r,locale:i,onClose:a}){let o=he({client:e,pageSize:t}),{loadConversation:s,newChat:c}=n,u=(0,l.useCallback)(e=>s?s(e):Promise.reject(Error(`no loadConversation`)),[s]),d=(0,l.useCallback)(()=>{c(),a({restoreFocusTo:`input`})},[c,a]);return(0,m.jsx)(wn,{conversations:o,activeConversationId:n.conversationId,selectStatus:n.historyStatus,onSelect:u,onActiveDeleted:c,onNewChat:d,onClose:a,labels:r,locale:i})}var Sn=(e,t)=>Object.entries(t).reduce((e,[t,n])=>e.split(`{${t}}`).join(String(n)),e),Cn=e=>!e||e.kind!==`http`?!1:e.status===401||e.status===403;function wn({conversations:e,activeConversationId:t,selectStatus:n,onSelect:r,onActiveDeleted:i,onNewChat:a,onClose:o,labels:s,locale:c,now:u}){let{conversations:d,status:f,error:p,hasMore:h,refresh:g,loadMore:_,remove:v}=e,y=(0,l.useId)(),b=(0,l.useId)(),x=(0,l.useRef)(null),S=(0,l.useRef)(null),C=(0,l.useRef)(null),w=(0,l.useRef)(new Map),T=(0,l.useRef)(new Map),E=(0,l.useRef)(null),D=(0,l.useRef)(null),[ee,O]=(0,l.useState)(null),[k,A]=(0,l.useState)(null),[j,M]=(0,l.useState)(0),[N,P]=(0,l.useState)(!1),[te,F]=(0,l.useState)(!1),[ne,re]=(0,l.useState)(!1),ie=c??(typeof navigator<`u`?navigator.language:void 0);(0,l.useEffect)(()=>{x.current?.focus()},[]),(0,l.useEffect)(()=>{let e=E.current;if(!e)return;let t=e.kind===`select`?w.current.get(e.id):e.kind===`delete`?T.current.get(e.id):e.kind===`cancel`?C.current:S.current;t&&(t.focus(),E.current=null)}),(0,l.useEffect)(()=>{let e=D.current;e!==null&&f!==`loading`&&(D.current=null,!h&&d.length>e&&(E.current={kind:`select`,id:d[e].conversationId}))},[f,h,d]);let I=()=>{D.current=d.length,_()},ae=e=>{E.current={kind:`delete`,id:e},O(null)},oe=e=>{e.key===`Escape`&&(e.stopPropagation(),ee?ae(ee):o({restoreFocusTo:`menu`}))},se=async e=>{if(re(!1),e===t)o({restoreFocusTo:`input`});else{F(!0);try{await r({conversationId:e})}catch{E.current={kind:`select`,id:e},re(!0),F(!1);return}F(!1),o({restoreFocusTo:`input`})}},ce=async e=>{let n=d.findIndex(t=>t.conversationId===e),r=d[n+1]??d[n-1];E.current=r?{kind:`select`,id:r.conversationId}:{kind:`newChat`},O(null),A(null),P(!1),M(e=>e+1);try{await v({conversationId:e}),P(!0),e===t&&i?.()}catch{E.current={kind:`delete`,id:e},A(e)}finally{M(e=>e-1)}},L=f===`loading`&&d.length===0,R=f===`error`&&d.length===0,le=f===`error`&&d.length>0&&h,z=f===`loading`&&d.length>0,B=te||n===`loading`,ue=L?s.historyLoadingText:j>0?s.historyDeletingText:N?s.historyDeletedText:d.length>0?Sn(d.length===1?s.historyCountTextOne:s.historyCountTextMany,{count:d.length}):``,de=L||j>0;return(0,m.jsxs)(`section`,{role:`region`,"aria-labelledby":y,className:`bailey-history-drawer`,onKeyDown:oe,children:[(0,m.jsxs)(`div`,{className:`bailey-history-header`,children:[(0,m.jsx)(`button`,{type:`button`,className:`bailey-history-icon-button`,"aria-label":s.historyBackAriaLabel,onClick:()=>o({restoreFocusTo:`menu`}),children:(0,m.jsx)(Vt,{className:`bailey-history-icon`})}),(0,m.jsx)(`h3`,{id:y,ref:x,tabIndex:-1,className:`bailey-history-heading`,children:s.historyTitle}),(0,m.jsxs)(`button`,{ref:S,type:`button`,className:`bailey-history-button bailey-history-new-chat`,"aria-label":s.newChatButtonText,disabled:L,onClick:a,children:[(0,m.jsx)(It,{className:`bailey-history-icon-small`}),(0,m.jsx)(`span`,{className:`bailey-history-new-chat-text`,children:s.newChatButtonText})]})]}),(0,m.jsxs)(`div`,{className:`bailey-history-body`,"aria-busy":L||void 0,children:[L&&(0,m.jsxs)(`div`,{"aria-hidden":`true`,children:[(0,m.jsx)(`div`,{className:`bailey-history-skeleton`}),(0,m.jsx)(`div`,{className:`bailey-history-skeleton`}),(0,m.jsx)(`div`,{className:`bailey-history-skeleton`}),(0,m.jsx)(`div`,{className:`bailey-history-skeleton`})]}),R&&(0,m.jsxs)(`div`,{role:`alert`,className:`bailey-history-state bailey-history-state-error`,children:[(0,m.jsx)(Ut,{className:`bailey-history-state-icon`}),(0,m.jsx)(`strong`,{children:Cn(p)?s.historySessionExpiredTitle:s.historyErrorTitle}),(0,m.jsx)(`span`,{children:Cn(p)?s.historySessionExpiredDescription:s.historyErrorDescription}),(0,m.jsx)(`button`,{type:`button`,className:`bailey-history-button bailey-history-button-primary`,onClick:()=>void g(),children:s.retryButtonText})]}),!L&&!R&&d.length===0&&(0,m.jsxs)(`div`,{className:`bailey-history-state`,children:[(0,m.jsx)(Nt,{className:`bailey-history-state-icon`}),(0,m.jsx)(`strong`,{children:s.historyEmptyTitle}),(0,m.jsx)(`span`,{children:s.historyEmptyDescription}),(0,m.jsx)(`button`,{type:`button`,className:`bailey-history-button bailey-history-button-primary`,onClick:a,children:s.historyEmptyCtaText})]}),d.length>0&&(0,m.jsx)(`ul`,{className:`bailey-history-list`,children:d.map(e=>{let n=e.conversationId,r=e.title?.trim()?e.title:s.historyUntitledText,i=n===t;if(ee===n)return(0,m.jsx)(`li`,{className:`bailey-history-row bailey-history-row-confirming`,children:(0,m.jsxs)(`div`,{role:`group`,"aria-labelledby":b,className:`bailey-history-confirm`,children:[(0,m.jsx)(`span`,{id:b,className:`bailey-history-confirm-question`,children:s.historyDeleteConfirmQuestion}),(0,m.jsx)(`span`,{className:`bailey-history-confirm-title`,children:r}),(0,m.jsx)(`button`,{type:`button`,className:`bailey-history-button bailey-history-button-danger`,onClick:()=>void ce(n),children:s.historyDeleteConfirmText}),(0,m.jsx)(`button`,{ref:C,type:`button`,className:`bailey-history-button`,onClick:()=>ae(n),children:s.historyDeleteCancelText})]})},n);let a=bn({iso:e.updatedAt,locale:ie,now:u?.(),justNowText:s.historyJustNowText}),o=Sn(e.messageCount===1?s.historyMessageCountOne:s.historyMessageCountMany,{count:e.messageCount}),c=k===n;return(0,m.jsxs)(`li`,{className:`bailey-history-row${i?` bailey-history-row-active`:``}${c?` bailey-history-row-failed`:``}`,children:[(0,m.jsxs)(`button`,{type:`button`,ref:e=>{e?w.current.set(n,e):w.current.delete(n)},className:`bailey-history-select`,"aria-current":i?`true`:void 0,"aria-disabled":B||void 0,onClick:()=>{B||se(n)},children:[(0,m.jsx)(`span`,{className:`bailey-history-row-title`,children:r}),(0,m.jsxs)(`span`,{className:`bailey-history-meta`,children:[i&&(0,m.jsxs)(m.Fragment,{children:[(0,m.jsx)(`span`,{className:`bailey-history-current`,children:s.historyCurrentText}),(0,m.jsx)(`span`,{"aria-hidden":`true`,children:`·`})]}),a&&(0,m.jsx)(`span`,{children:a}),(0,m.jsx)(`span`,{className:`bailey-history-count`,children:o})]})]}),(0,m.jsx)(`button`,{type:`button`,ref:e=>{e?T.current.set(n,e):T.current.delete(n)},className:`bailey-history-icon-button bailey-history-delete`,"aria-label":Sn(s.historyDeleteAriaLabel,{title:r}),onClick:()=>{A(null),P(!1),E.current={kind:`cancel`},O(n)},children:(0,m.jsx)(Ht,{className:`bailey-history-icon`})}),c&&(0,m.jsxs)(`div`,{role:`alert`,className:`bailey-history-row-error`,children:[(0,m.jsx)(Ut,{className:`bailey-history-icon-small`}),(0,m.jsx)(`span`,{children:s.historyDeleteFailedText}),(0,m.jsx)(`button`,{type:`button`,className:`bailey-history-button bailey-history-button-small`,onClick:()=>void ce(n),children:s.historyDeleteRetryText}),(0,m.jsx)(`button`,{type:`button`,className:`bailey-history-button bailey-history-button-small`,onClick:()=>A(null),children:s.historyDeleteDismissText})]})]},n)})}),ne&&(0,m.jsx)(`div`,{role:`alert`,className:`bailey-history-inline-error`,children:s.historySelectErrorText}),h&&d.length>0&&(0,m.jsx)(`div`,{className:`bailey-history-more`,children:le?(0,m.jsxs)(`div`,{role:`alert`,className:`bailey-history-inline-error`,children:[(0,m.jsx)(`span`,{children:s.historyLoadMoreErrorText}),(0,m.jsx)(`button`,{type:`button`,className:`bailey-history-button`,onClick:I,children:s.retryButtonText})]}):(0,m.jsxs)(`button`,{type:`button`,className:`bailey-history-button`,disabled:z,onClick:I,children:[z&&(0,m.jsx)(`span`,{className:`bailey-history-spinner`,"aria-hidden":`true`}),z?s.historyLoadingMoreText:s.historyLoadMoreText]})})]}),(0,m.jsxs)(`div`,{role:`status`,"aria-live":`polite`,className:`bailey-history-status`,children:[de&&(0,m.jsx)(`span`,{className:`bailey-history-spinner`,"aria-hidden":`true`}),ue]})]})}var Tn={newChatButtonText:`New chat`,retryButtonText:`Retry`,historyTitle:`Chat history`,historyBackAriaLabel:`Back to chat`,historyLoadingText:`Loading conversations…`,historyLoadingMoreText:`Loading…`,historyLoadMoreText:`Load more`,historyLoadMoreErrorText:`Couldn't load more conversations.`,historyCountTextOne:`Showing {count} conversation`,historyCountTextMany:`Showing {count} conversations`,historyEmptyTitle:`No conversations yet`,historyEmptyDescription:`Your past conversations will show up here.`,historyEmptyCtaText:`Start a new chat`,historyErrorTitle:`Couldn't load your conversations`,historyErrorDescription:`Check your connection and try again.`,historySessionExpiredTitle:`Your session has expired`,historySessionExpiredDescription:`Sign in again to see your past conversations.`,historySelectErrorText:`Couldn't open this conversation.`,historyUntitledText:`Untitled conversation`,historyCurrentText:`Current`,historyMessageCountOne:`1 message`,historyMessageCountMany:`{count} messages`,historyDeleteAriaLabel:`Delete conversation: {title}`,historyDeleteConfirmQuestion:`Delete this conversation?`,historyDeleteConfirmText:`Delete`,historyDeleteCancelText:`Cancel`,historyDeletingText:`Deleting conversation…`,historyDeletedText:`Conversation deleted`,historyDeleteFailedText:`Couldn't delete this conversation.`,historyDeleteRetryText:`Try again`,historyDeleteDismissText:`Dismiss`,historyJustNowText:`just now`},En={feedbackGroupLabel:`Rate this response`,feedbackThumbsUpAriaLabel:`Good response`,feedbackThumbsDownAriaLabel:`Bad response`,feedbackReasonGroupLabel:`What went wrong?`,feedbackCommentLabel:`Tell us more`,feedbackSubmitText:`Submit`,feedbackCancelText:`Cancel`,feedbackThanksText:`Thanks for your feedback`,feedbackUndoText:`Undo`,feedbackEditText:`Edit`,feedbackAddCommentText:`Add a comment`,feedbackSavingText:`Saving…`,feedbackErrorText:`Couldn't save your feedback. Try again.`,feedbackPrivacyNote:`Your comment is saved with this conversation and may be reviewed by support.`,feedbackReasonInaccurate:`Inaccurate`,feedbackReasonUnhelpful:`Unhelpful`,feedbackReasonUnsafe:`Unsafe`,feedbackReasonTooLong:`Too long`,feedbackReasonOther:`Other`},Dn=2e3,On=[`inaccurate`,`unhelpful`,`unsafe`,`too_long`,`other`],kn={inaccurate:`feedbackReasonInaccurate`,unhelpful:`feedbackReasonUnhelpful`,unsafe:`feedbackReasonUnsafe`,too_long:`feedbackReasonTooLong`,other:`feedbackReasonOther`},An=e=>On.includes(e)?e:`other`;function jn(e){return Array.from(new Set((e??On).map(An)))}function Mn(e){return typeof e==`number`&&e>0?Math.min(Math.floor(e),Dn):Dn}function Nn(e,t){if(e===null||t===null)return e===t;let n=e.reasonCodes??[],r=t.reasonCodes??[];return e.rating===t.rating&&(e.comment??``)===(t.comment??``)&&n.length===r.length&&n.every((e,t)=>e===r[t])}function Pn(e){let t=(0,l.useContext)(Et),n=t&&!t.builtIn?t.claim:void 0,{messageId:r}=e;return(0,l.useLayoutEffect)(()=>n&&r?n(r):void 0,[n,r]),e.messageId?(0,m.jsx)(Fn,{...e},e.messageId):null}function Fn({messageId:e,onSubmit:t,onClear:n,initialRating:r,reasonOptions:i,maxCommentLength:a,labels:o,assistantName:s=`bailey`,className:c}){let u={...En,feedbackCommentPlaceholder:`What should ${s} have said or done differently?`,...o},d=jn(i),f=Mn(a),h=r?{rating:r}:null,[g,_]=(0,l.useState)(h),[v,y]=(0,l.useState)(r??null),[b,x]=(0,l.useState)(!1),[S,C]=(0,l.useState)(`down`),[w,T]=(0,l.useState)([]),[E,D]=(0,l.useState)(``),[ee,O]=(0,l.useState)(!1),[k,A]=(0,l.useState)(!1),[j,M]=(0,l.useState)(!1),[N,P]=(0,l.useState)(!1),te=(0,l.useRef)(h),F=(0,l.useRef)(null),ne=(0,l.useRef)(0),re=(0,l.useRef)(!1),ie=(0,l.useRef)(!0),I=(0,l.useRef)(null),ae=(0,l.useRef)(null),oe=(0,l.useRef)(null),se=(0,l.useRef)(null),ce=(0,l.useRef)(null),L=Tt(ae),R=(0,l.useId)(),le=`${R}-comment`,z=`${R}-counter`,B=`${R}-privacy`;(0,l.useEffect)(()=>(ie.current=!0,()=>{ie.current=!1}),[]),(0,l.useEffect)(()=>{b&&ce.current?.focus()},[b]),(0,l.useEffect)(()=>{I.current&&!j&&!b&&((I.current===`up`?oe:se).current?.focus(),I.current=null)});let ue=()=>{T([]),D(``)},de=async r=>{try{return r.kind===`clear`?await n({messageId:e}):await t({messageId:e,...r.snapshot}),!0}catch{return!1}},fe=async()=>{if(!re.current){re.current=!0,A(!0);try{for(;F.current&&ie.current;){let e=F.current,t=e.kind===`clear`?null:e.snapshot,n=!(e.kind===`submit`&&e.formSubmit)&&Nn(t,te.current)||await de(e);if(!ie.current)return;let r=F.current?.version!==e.version;(n||!r)&&(n?(te.current=t,_(t)):(y(te.current?.rating??null),P(!0)),r||(F.current=null,M(!1),n&&e.kind===`submit`&&e.formSubmit&&(x(!1),O(!0),I.current=e.snapshot.rating)))}}finally{re.current=!1,ie.current&&A(!1)}}},pe=e=>{ne.current+=1,F.current={...e,version:ne.current},P(!1),fe()},V=()=>{y(null),x(!1),O(!1),ue(),pe({kind:`clear`})},me=e=>{j||(v===e?V():(y(e),O(!1),ue(),e===`down`?(C(`down`),x(!0)):x(!1),pe({kind:`submit`,snapshot:{rating:e},formSubmit:!1})))},he=e=>{v!==null&&(C(v),T((e?.reasonCodes??[]).map(An)),D(e?.comment??``),P(!1),x(!0))},H=()=>{j||(x(!1),P(!1),ue(),I.current=S)},ge=()=>{if(j)return;let e=E.trim(),t=d.filter(e=>w.includes(e)),n={rating:S,...t.length>0?{reasonCodes:t}:{},...e?{comment:e}:{}};M(!0),y(S),pe({kind:`submit`,snapshot:n,formSubmit:!0})},U=e=>{T(t=>t.includes(e)?t.filter(t=>t!==e):[...t,e])},_e=e=>{e.key===`Escape`&&(e.stopPropagation(),H())},W=v!==null&&g?.rating===v&&!k&&!b,G=!!g&&(!!g.comment||(g.reasonCodes?.length??0)>0),K=k?u.feedbackSavingText:W?u.feedbackThanksText:``,ve=e=>{let t=v===e,n=e===`up`?u.feedbackThumbsUpAriaLabel:u.feedbackThumbsDownAriaLabel,r=e===`up`?zt:Bt;return(0,m.jsxs)(p.Root,{children:[(0,m.jsx)(p.Trigger,{asChild:!0,children:(0,m.jsx)(`button`,{ref:e===`up`?oe:se,type:`button`,className:`bailey-feedback-thumb`,"aria-pressed":t,"aria-label":n,"aria-busy":t&&k?!0:void 0,disabled:j,onClick:()=>me(e),children:(0,m.jsx)(r,{className:`bailey-feedback-icon`,filled:t})})}),(0,m.jsx)(p.Portal,{container:L instanceof ShadowRoot?L:void 0,children:(0,m.jsxs)(p.Content,{side:`top`,className:`bailey-tooltip-content`,children:[n,(0,m.jsx)(p.Arrow,{className:`bailey-tooltip-arrow`})]})})]})};return(0,m.jsxs)(`div`,{ref:ae,className:`bailey-feedback${c?` ${c}`:``}`,children:[(0,m.jsx)(p.Provider,{delayDuration:200,children:(0,m.jsxs)(`div`,{role:`group`,"aria-label":u.feedbackGroupLabel,"aria-busy":k?!0:void 0,className:`bailey-feedback-thumbs`,children:[ve(`up`),ve(`down`)]})}),(0,m.jsxs)(`span`,{role:`status`,className:`bailey-feedback-status`,children:[k&&(0,m.jsx)(`span`,{className:`bailey-feedback-spinner`,"aria-hidden":`true`}),K]}),W&&(0,m.jsxs)(m.Fragment,{children:[(0,m.jsx)(`button`,{type:`button`,className:`bailey-feedback-link`,onClick:()=>he(g),children:ee||G?u.feedbackEditText:u.feedbackAddCommentText}),(0,m.jsx)(`button`,{type:`button`,className:`bailey-feedback-link`,onClick:V,children:u.feedbackUndoText})]}),N&&(0,m.jsx)(`span`,{role:`alert`,className:`bailey-feedback-error`,children:u.feedbackErrorText}),b&&(0,m.jsxs)(`div`,{className:`bailey-feedback-form`,onKeyDown:_e,children:[d.length>0&&(0,m.jsxs)(`fieldset`,{className:`bailey-feedback-reasons`,children:[(0,m.jsx)(`legend`,{className:`bailey-feedback-legend`,children:u.feedbackReasonGroupLabel}),(0,m.jsx)(`div`,{className:`bailey-feedback-chips`,children:d.map((e,t)=>(0,m.jsx)(`button`,{ref:t===0?e=>{ce.current=e}:void 0,type:`button`,className:`bailey-feedback-chip`,"aria-pressed":w.includes(e),disabled:j,onClick:()=>U(e),children:u[kn[e]]},e))})]}),(0,m.jsx)(`label`,{htmlFor:le,className:`bailey-feedback-legend`,children:u.feedbackCommentLabel}),(0,m.jsx)(`textarea`,{id:le,ref:d.length===0?e=>{ce.current=e}:void 0,className:`bailey-feedback-textarea`,value:E,maxLength:f,placeholder:u.feedbackCommentPlaceholder,"aria-describedby":`${z} ${B}`,disabled:j,onChange:e=>D(e.target.value.slice(0,f))}),(0,m.jsxs)(`div`,{className:`bailey-feedback-meta`,children:[(0,m.jsx)(`span`,{id:B,className:`bailey-feedback-privacy`,children:u.feedbackPrivacyNote}),(0,m.jsx)(`span`,{id:z,className:`bailey-feedback-counter`,children:`${E.length} / ${f}`})]}),(0,m.jsxs)(`div`,{className:`bailey-feedback-buttons`,children:[(0,m.jsx)(`button`,{type:`button`,className:`bailey-feedback-button`,disabled:j,onClick:H,children:u.feedbackCancelText}),(0,m.jsx)(`button`,{type:`button`,className:`bailey-feedback-button bailey-feedback-button-primary`,disabled:j,onClick:ge,children:j?u.feedbackSavingText:u.feedbackSubmitText})]})]})]})}var In=`bailey`,Ln={...Tn,newChatButtonText:`New chat`,newChatAriaLabel:`new chat`,historyAriaLabel:`conversation history`,historyMenuItemText:`Chat history`,menuAriaLabel:`more options`,suggestionsTitle:`Suggested for you`,youLabel:`You`,thinkingHint:`Thinking…`,retryButtonText:`Retry`,dismissErrorAriaLabel:`dismiss error`,sendAriaLabel:`send`,stopButtonText:`Stop`,stopAriaLabel:`stop`,copyButtonAriaLabel:`copy response as markdown`,copyButtonTooltipDefault:`Copy as markdown`,copyButtonTooltipCopied:`Copied!`,toolStepsSummaryOne:`Used 1 agent`,toolStepsSummaryMany:`Used {count} agents`,toolStepsFailedSuffix:`, {failed} failed`,toolStepFailedText:`failed`,toolStepStoppedText:`stopped`,toolStepStartedText:`started {offset} after send`,mcpAppDefaultTitle:`MCP App`,loadEarlierButtonText:`Load earlier messages`,loadEarlierErrorText:`Couldn't load earlier messages.`},Rn=[d.default],zn={...Dt(),p:({children:e})=>(0,m.jsx)(m.Fragment,{children:e})},Bn=(0,l.memo)(function({content:e,components:t}){return(0,m.jsx)(`div`,{className:`bailey-markdown-content`,children:(0,m.jsx)(u.default,{remarkPlugins:Rn,components:t,skipHtml:!0,children:e})})});function Vn(e,t,n){if(e!==`streaming`)return;let r=t.filter(e=>e.turnSentAt===n?.sentAt);return r[r.length-1]}function Hn(e){if(e&&e.kind!==`tool_end`)return tt(e)}function Un(e){let t=new Date(e),n=t.toDateString()===new Date().toDateString(),r=t.toLocaleTimeString([],{hour:`numeric`,minute:`2-digit`});return n?`Today ${r}`:`${t.toLocaleDateString()} ${r}`}function Wn({chat:e,placeholder:t,replyPlaceholder:n,emptyPlaceholder:r,assistantName:i=In,suggestions:a,suggestionsAlign:o=`start`,hideMenuButton:s=!1,onHistoryClick:c,history:d,historyOpen:h,onHistoryOpenChange:g,locale:_,privacyNote:v,resolveActivityIcon:y,sendIcon:b,className:x,height:S,width:C,hideDeveloperDetails:w=!1,renderMessageActions:T,feedback:E,renderTable:D,renderChart:ee,renderMcpApp:O,labels:k,formatMessageTime:A}){let{messages:j,traceEvents:M,lastRequest:N,status:P,error:te,send:F,stop:ne,retryLast:re,clearTrace:ie,clearError:I,newChat:ae}=e,[oe,se]=(0,l.useState)(``),[ce,L]=(0,l.useState)(new Map),R=(0,l.useCallback)(e=>{let t=t=>L(n=>{let r=new Map(n),i=(r.get(e)??0)+t;return i>0?r.set(e,i):r.delete(e),r});return t(1),()=>t(-1)},[]),le=(0,l.useMemo)(()=>({builtIn:!1,claim:R}),[R]),z=(0,l.useMemo)(()=>({builtIn:!0,claim:R}),[R]),B={...Ln,emptyStateMessage:`Ask ${i} a question to get started.`,...k},ue=A??Un,de=(0,l.useRef)(null),fe=(0,l.useRef)(null),pe=(0,l.useRef)(null),V=(0,l.useRef)(null),[me,he]=(0,l.useState)(!1),H=h!==void 0,ge=h??me,U=(0,l.useRef)(null),_e=(0,l.useRef)(!1),W=!!c||!!d,G=wt(de),K=(0,l.useRef)(null),ve=(0,l.useRef)(null),ye=(0,l.useRef)(!0),be=(0,l.useMemo)(()=>Dt({renderTable:D,renderChart:ee}),[D,ee]),xe=(0,l.useMemo)(()=>Vn(P,M,N),[P,M,N]),q=Hn(xe),Se=xe?.kind===`tool_end`?xe.at:void 0,Ce=j[j.length-1]?.content.length??0,[J,Y]=(0,l.useState)(null),we=J;Se!==void 0&&J?.at!==Se&&(we={at:Se,length:Ce},Y(we));let Te=Se!==void 0&&we?.at===Se&&Ce<=we.length,X=q??(Te?B.thinkingHint:void 0),Ee=j.length===0,De=t??(Ee?r??`How can ${i} AI help you today?`:n??`Reply to ${i} AI`);(0,l.useEffect)(()=>{let e=ve.current;if(!e)return;let t=()=>{let t=e.scrollHeight-e.scrollTop-e.clientHeight;ye.current=t<60};return e.addEventListener(`scroll`,t,{passive:!0}),()=>e.removeEventListener(`scroll`,t)},[]),(0,l.useEffect)(()=>{ye.current&&K.current?.scrollIntoView({behavior:P===`streaming`?`auto`:`smooth`,block:`nearest`})},[j,P]);let Oe=e=>{ye.current=!0,F(e)},Z=(0,l.useRef)(null),ke=()=>{let t=ve.current;ye.current=!1,Z.current=t?{height:t.scrollHeight,top:t.scrollTop}:null,e.loadEarlier?.().catch(()=>{Z.current=null})};(0,l.useEffect)(()=>{let e=Z.current,t=ve.current;e&&t&&t.scrollHeight!==e.height&&(t.scrollTop=e.top+(t.scrollHeight-e.height),Z.current=null)},[j]);let Q=ge&&!!d&&!c;(0,l.useEffect)(()=>{fe.current?.toggleAttribute(`inert`,Q)},[Q]),(0,l.useEffect)(()=>{!Q&&U.current&&(((U.current===`menu`?V.current:null)??pe.current)?.focus(),U.current=null)},[Q]);let Ae=(0,l.useCallback)(e=>{H||he(e),g?.(e)},[H,g]),$=(0,l.useCallback)(e=>{U.current=e.restoreFocusTo,Ae(!1)},[Ae]);return(0,m.jsx)(dt.Provider,{value:G,children:(0,m.jsx)(Et.Provider,{value:le,children:(0,m.jsxs)(`div`,{ref:de,className:`bailey-chat-panel${x?` ${x}`:``}`,style:S!==void 0||C!==void 0?{height:S,width:C}:void 0,children:[(0,m.jsxs)(`div`,{className:`bailey-chat-panel-inner`,ref:fe,children:[(0,m.jsxs)(`div`,{className:`bailey-chat-transcript`,ref:ve,"data-suggestions-align":Ee&&a&&a.length>0?o:void 0,children:[e.hasEarlier&&e.loadEarlier&&(0,m.jsxs)(`div`,{className:`bailey-load-earlier`,children:[(0,m.jsx)(`button`,{type:`button`,className:`bailey-load-earlier-button`,disabled:e.historyStatus===`loading`,onClick:ke,children:B.loadEarlierButtonText}),e.historyStatus===`error`&&(0,m.jsx)(`div`,{role:`alert`,className:`bailey-load-earlier-error`,children:B.loadEarlierErrorText})]}),Ee&&(a&&a.length>0?(0,m.jsxs)(`div`,{className:`bailey-suggestions`,"data-align":o,children:[B.suggestionsTitle&&(0,m.jsx)(`div`,{className:`bailey-suggestions-title`,children:B.suggestionsTitle}),a.map((e,t)=>(0,m.jsxs)(`button`,{type:`button`,onClick:()=>Oe(e.value??e.label),className:`bailey-suggestion-card`,children:[(0,m.jsx)(`span`,{children:e.label}),e.icon??(0,m.jsx)(At,{className:`bailey-suggestion-icon`})]},`${e.label}-${t}`))]}):(0,m.jsx)(`div`,{className:`bailey-empty-state`,children:B.emptyStateMessage})),j.map((t,n)=>{let r=t.role===`assistant`&&n===j.length-1,a=P===`streaming`&&r&&t.content===``,o=t.role===`assistant`?lt(M,t.createdAt):[],s=o.some(e=>e.status===`running`);return(0,m.jsx)(`div`,{className:t.role===`user`?`bailey-message-row bailey-message-row-user`:`bailey-message-row`,children:t.role===`user`?(0,m.jsxs)(`div`,{className:`bailey-user-message`,children:[(0,m.jsxs)(`div`,{className:`bailey-message-meta`,children:[(0,m.jsx)(`span`,{className:`bailey-message-meta-name`,children:B.youLabel}),t.createdAt!==void 0&&(0,m.jsx)(`span`,{children:ue(t.createdAt)})]}),(0,m.jsx)(`div`,{className:`bailey-user-bubble`,children:t.content})]}):a?s?(0,m.jsx)(fn,{steps:o,resolveActivityIcon:y}):(0,m.jsxs)(`div`,{className:`bailey-thinking-hint`,children:[(0,m.jsx)(`span`,{children:q??B.thinkingHint}),(0,m.jsx)(`span`,{className:`bailey-step-spinner`,"aria-hidden":`true`})]}):(0,m.jsxs)(`div`,{className:`bailey-assistant-message`,children:[!t.streaming&&(0,m.jsx)(pn,{steps:o,labels:B,resolveActivityIcon:y}),(0,m.jsx)(Bn,{content:t.content,components:be}),t.parts?.map((e,t)=>e.type===`image`?(0,m.jsx)(tn,{src:e.src,alt:e.alt},t):e.type===`mcp_app`?(0,m.jsx)(l.Fragment,{children:O?O(e):(0,m.jsx)(ln,{...e,title:e.title??B.mcpAppDefaultTitle})},t):null),t.streaming&&(0,m.jsx)(fn,{steps:o,resolveActivityIcon:y}),t.streaming&&X&&!s&&(0,m.jsxs)(`div`,{className:`bailey-streaming-hint`,children:[(0,m.jsx)(`span`,{children:X}),(0,m.jsx)(`span`,{className:`bailey-step-spinner`,"aria-hidden":`true`})]}),!t.streaming&&(0,m.jsxs)(`div`,{className:`bailey-message-actions`,children:[(0,m.jsx)(Gt,{markdown:t.content,ariaLabel:B.copyButtonAriaLabel,tooltipDefaultText:B.copyButtonTooltipDefault,tooltipCopiedText:B.copyButtonTooltipCopied}),E!==!1&&e.feedback&&e.conversationId&&t.serverMessageId&&!ce.has(t.serverMessageId)&&(0,m.jsx)(Et.Provider,{value:z,children:(0,m.jsx)(Pn,{...E,assistantName:i,messageId:t.serverMessageId,initialRating:t.feedback?.rating,onSubmit:e.feedback.onSubmit,onClear:e.feedback.onClear})}),T?.(t)]})]})},t.id)}),(0,m.jsx)(`div`,{ref:K})]}),te&&(0,m.jsxs)(`div`,{className:`bailey-error-banner`,role:`alert`,children:[(0,m.jsx)(`span`,{children:te}),(0,m.jsxs)(`div`,{className:`bailey-error-actions`,children:[(0,m.jsx)(`button`,{type:`button`,onClick:re,className:`bailey-retry-button`,children:B.retryButtonText}),(0,m.jsx)(`button`,{type:`button`,onClick:I,"aria-label":B.dismissErrorAriaLabel,className:`bailey-dismiss-button`,children:`✕`})]})]}),!w&&(0,m.jsx)(en,{events:M,lastRequest:N,onClear:ie}),(0,m.jsxs)(`div`,{className:`bailey-input-area`,children:[(0,m.jsxs)(`form`,{onSubmit:e=>{e.preventDefault(),oe.trim()&&P!==`streaming`&&(Oe(oe),se(``))},className:`bailey-input-row`,children:[(0,m.jsx)(`input`,{ref:pe,type:`text`,placeholder:De,"aria-label":De,value:oe,onChange:e=>se(e.target.value),disabled:P===`streaming`,className:`bailey-input`}),P===`streaming`?(0,m.jsx)(p.Provider,{delayDuration:200,children:(0,m.jsxs)(p.Root,{children:[(0,m.jsx)(p.Trigger,{asChild:!0,children:(0,m.jsx)(`button`,{type:`button`,onClick:ne,"aria-label":B.stopAriaLabel,className:`bailey-stop-button`,children:(0,m.jsx)(kt,{className:`bailey-stop-icon`})})}),(0,m.jsx)(p.Portal,{container:G instanceof ShadowRoot?G:void 0,children:(0,m.jsxs)(p.Content,{side:`top`,className:`bailey-tooltip-content`,children:[B.stopButtonText,(0,m.jsx)(p.Arrow,{className:`bailey-tooltip-arrow`})]})})]})}):(0,m.jsx)(`button`,{type:`submit`,"aria-label":B.sendAriaLabel,disabled:!oe.trim(),className:`bailey-send-button`,children:b??(0,m.jsx)(Ot,{className:`bailey-send-icon`})})]}),!s&&(!Ee||W)&&(0,m.jsxs)(f.Root,{children:[(0,m.jsx)(f.Trigger,{asChild:!0,children:(0,m.jsx)(`button`,{type:`button`,ref:V,"aria-label":B.menuAriaLabel,className:`bailey-menu-button`,children:(0,m.jsx)(Ft,{className:`bailey-menu-icon`})})}),(0,m.jsx)(f.Portal,{container:G instanceof ShadowRoot?G:void 0,children:(0,m.jsxs)(f.Content,{side:`top`,align:`end`,sideOffset:8,className:`bailey-menu-content`,onCloseAutoFocus:e=>{_e.current&&=(e.preventDefault(),!1)},children:[!Ee&&(0,m.jsxs)(f.Item,{onSelect:()=>ae(),className:`bailey-menu-item`,children:[(0,m.jsx)(It,{className:`bailey-menu-item-icon`}),B.newChatButtonText]}),W&&(0,m.jsxs)(f.Item,{onSelect:()=>{c?c():(_e.current=!0,Ae(!0))},className:`bailey-menu-item`,children:[(0,m.jsx)(Nt,{className:`bailey-menu-item-icon`}),B.historyMenuItemText]})]})})]})]}),(Ee||v?.alwaysVisible)&&v&&(0,m.jsx)(`div`,{className:`bailey-privacy-note`,children:(0,m.jsx)(u.default,{remarkPlugins:Rn,components:zn,skipHtml:!0,children:v.markdown})})]}),Q&&(0,m.jsx)(xn,{client:d.client,pageSize:d.pageSize,chat:e,labels:B,locale:_,onClose:$})]})})})}var Gn=`0.3.1-pre.2`;exports.ActivityIcon=Pt,exports.ArrowUpRightIcon=At,exports.BAILEYAI_CHAT_UI_VERSION=Gn,exports.BAILEY_CHART_PROMPT_FRAGMENT=ze,exports.BAILEY_TABLE_GRID_ROW_THRESHOLD=je,exports.BaileyApiError=D,exports.BaileyChatPanel=Wn,exports.BaileyCleanupError=k,exports.BaileyFeedbackButtons=Pn,exports.BaileyHistoryDrawer=xn,exports.BaileyTracePanel=en,exports.CopyMarkdownButton=Gt,exports.DEFAULT_CONVERSATION_STORAGE_KEY=re,exports.HeartIcon=Ot,exports.TRACE_KIND_LABEL=qe,exports.ThumbDownIcon=Bt,exports.ThumbUpIcon=zt,exports.createBaileyClient=Z,exports.createBaileyFeedbackHandlers=ne,exports.createBaileyMarkdownComponents=Dt,exports.createMemoryConversationStorage=I,exports.createSessionConversationStorage=ie,exports.extractPseudoToolCalls=w,exports.extractTableData=Le,exports.formatRelativeTime=bn,exports.formatTraceGap=rt,exports.formatTraceTime=nt,exports.hasTraceFailure=st,exports.isConversationIdForSub=F,exports.isSafeMarkdownUrl=c.n,exports.joinInstructions=ke,exports.mapTranscript=N,exports.mergeEarlierPage=te,exports.parseBaileyChartSpec=Ke,exports.parseSseFrames=E,exports.resolveToolCall=$,exports.shouldUseGrid=Re,exports.toActivityLines=ct,exports.toToolSteps=lt,exports.toTraceRows=it,exports.toTraceSegments=ot,exports.traceEventArgsDetail=Ze,exports.traceEventHint=tt,exports.traceEventOutputDetail=Qe,exports.traceEventRawDetail=et,exports.traceEventSummary=Xe,exports.traceEventToolName=Ye,exports.traceSummaryLine=at,exports.useBaileyChat=V,exports.useBaileyConversations=he;
|