@arbor-education/agent-view-frontend 0.9.4-alpha.0 → 0.10.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.cjs +1 -1
- package/dist/index.d.ts +4 -2
- package/dist/index.js +2 -2
- package/dist/style.css +1 -1
- package/package.json +3 -3
package/dist/index.cjs
CHANGED
|
@@ -6,4 +6,4 @@ ${t}`:"File upload"},Nr=e=>!e.includes(`
|
|
|
6
6
|
|
|
7
7
|
`);d=o.pop()??"";for(const v of o)h(v);if(m){await a.cancel().catch(()=>{});break}}!m&&d.trim()&&h(d)}finally{try{a.releaseLock()}catch{}}const p=m??l;if(!p)throw new Fe(502,null,"Chat stream ended without any events");return p}}const Er=e=>{let t=null;const s=[];for(const a of e.split(`
|
|
8
8
|
`)){const i=a.trimEnd();i.startsWith("event:")?t=i.slice(6).trim():i.startsWith("data:")&&s.push(i.slice(5).trim())}return{event:t,data:s.length>0?s.join(`
|
|
9
|
-
`):null}},Yn=e=>{try{return JSON.parse(e)}catch{return}};function Sr(e,t){const s=new FormData;s.append("body",JSON.stringify(e));for(const a of t)s.append("files",a,a.name);return s}const jr={id:as,author:me.agent,text:"Type a question or upload a file. You can ask it how it's progressing, or send an instruction and it'll act on it."};let Jn=0;const Rr=e=>(Jn+=1,`${e}-${Date.now()}-${Jn}`),Tr=e=>{const t=e.destination?` to ${e.destination}`:"";return`Let's get started on ${e.tripName.trim()||e.destination.trim()||"this task"}${t}. What will you do first?`};class Cs{constructor(t,s,a={}){this.seededChecklist=[],this.client=t,this.agentId=s,this.chatId=a.chatId??s,this.opening=a.openingMessage??jr,this.model=a.model}openingMessage(){return this.opening}async bootstrapConversation(){const t=await this.client.getConversation(this.chatId),s=bs(t.messages);return s.length===0?[this.opening]:s}async start(t){return{...await this.exchange(Tr(t)),phase:$.running}}sendMessage(t,s,a){return this.exchange(t,s,a)}async pause(){await this.client.pauseAgent(this.agentId)}async resume(){await this.client.resumeAgent(this.agentId)}seedChecklist(t){this.seededChecklist=t}async exchange(t,s,a){var A;const i=[{role:mr.user,content:t}];let d="",l=null,m;const h=await this.client.chat(this.agentId,{messages:i,chat_id:this.chatId,...this.model?{model:this.model}:{},moderation_enabled:!0,meta:{feature_id:"agent_view",source:"agent_view_frontend"}},{...s&&s.length>0?{uploadFiles:s}:{},onEvent:o=>{var S;const v=o.message;if((v==null?void 0:v.role)==="assistant"&&v.tool_calls&&v.tool_calls.length>0){const I=Ee.thinkingPhrasesFromToolCalls(v.tool_calls);for(const P of I)P.phrase!==l&&(l=P.phrase,(S=a==null?void 0:a.onThinking)==null||S.call(a,P))}const E=v==null?void 0:v.content;E&&(d=o.is_final?E:d+E),o.is_final&&(m=o)}}),p=m??h,_={id:p.event_id||Rr("msg-agent"),author:me.agent,text:d||p.message.content||"",...(A=p.follow_up_prompts)!=null&&A.length?{followUpPrompts:p.follow_up_prompts}:{}};try{const o=await this.client.getAgentChecklist(this.agentId),{checklist:v}=tn(this.agentId,o);return v.length===0?{message:_}:(this.seededChecklist=v,{message:_,checklist:v})}catch{return{message:_,...this.seededChecklist.length?{checklist:this.seededChecklist}:{}}}}}const In=(e,t)=>s=>{var a,i;return new Cs(e,s.invocation_id,{model:t==null?void 0:t.model,chatId:((a=t==null?void 0:t.resolveChatId)==null?void 0:a.call(t,s))??(t==null?void 0:t.chatId)??s.invocation_id,openingMessage:((i=t==null?void 0:t.resolveOpeningMessage)==null?void 0:i.call(t,s))??(t==null?void 0:t.openingMessage)})},Es=e=>e instanceof Fe?e.message:e instanceof TypeError?"Network error while contacting the agent service.":e instanceof Error&&e.message?e.message:is,Ss=e=>{if(e instanceof Fe){if(e.status===403)return ga;if(e.status===409)return ma;if(e.status===404)return pa}return ha},Ir=e=>{const t={};for(const s of e){const a=Ot(s);if(!a)continue;const i=s.invocation_id??s.id;t[i]=a,t[s.id]=a}return t},Or=e=>JSON.stringify(e),Wt=(e,t)=>JSON.stringify(e)===JSON.stringify(t),js=e=>{const{jwt:t,headers:s,urls:a,scope:i=ls}=e,d=JSON.stringify(s??{}),l=Or(a),m=r.useMemo(()=>({scope:i}),[i]),h=r.useMemo(()=>new nn({token:t,headers:s,urls:a}),[t,l]);r.useLayoutEffect(()=>{h.setHeaders(s)},[h,d]);const[p,_]=r.useState([]),[A,o]=r.useState([]),[v,E]=r.useState({}),[S,I]=r.useState("loading"),[P,j]=r.useState(null),[y,f]=r.useState(0),x=r.useRef(0),R=r.useCallback((N,L)=>{const T=N.map(Ce),F=L.map(Rn),D=Ir(N);_(q=>Wt(q,T)?q:T),o(q=>Wt(q,F)?q:F),E(q=>Wt(q,D)?q:D),I("idle"),j(null)},[]);r.useEffect(()=>{const N=++x.current;I("loading"),j(null),(async()=>{try{const[L,T]=await Promise.all([h.listAgents(m),h.listAgentDefinitions()]);if(N!==x.current)return;R(L,T)}catch(L){if(N!==x.current)return;_([]),o([]),E({}),I("error"),j(Es(L))}})()},[R,h,m,y]);const V=r.useCallback(()=>{f(N=>N+1)},[]),ae=r.useCallback(async()=>{const N=++x.current;try{const[L,T]=await Promise.all([h.listAgents(m),h.listAgentDefinitions()]);if(N!==x.current)return;R(L,T)}catch{}},[R,h,m]),X=r.useCallback(async N=>{const[L,T]=await Promise.all([h.getAgentChecklist(N),h.getAgent(N).catch(()=>null)]);return tn(N,L,T??void 0)},[h]),B=r.useCallback(async N=>h.listAllAgentResources(N),[h]),J=r.useCallback(async({definition:N,invocationName:L})=>{const T=await h.createAgent(N.ref,{invocationName:L}),F=await h.getAgent(T.id),D=Ce(F),q=Ot(F);return _(_e=>[D,..._e]),q&&E(_e=>({..._e,[D.invocation_id]:q,[D.id]:q})),D},[h]),ee=r.useCallback(async N=>{const L=await h.archiveAgent(N),T=Ce(L);return _(F=>F.map(D=>D.id===T.id||D.id===N||D.invocation_id===N?T:D)),T},[h]),pe=r.useCallback(async N=>{const L=await h.unarchiveAgent(N),T=Ce(L);return _(F=>F.map(D=>D.id===T.id||D.id===N||D.invocation_id===N?T:D)),T},[h]),M=r.useCallback(N=>{_(L=>L.filter(T=>T.id!==N&&T.invocation_id!==N))},[]),le=r.useCallback(N=>{_(L=>{const T=L.map(F=>F.id===N.id||F.invocation_id===N.invocation_id?{...F,...N}:F);return Wt(L,T)?L:T})},[]),re=r.useCallback(async N=>{await h.deleteAgent(N),M(N)},[h,M]),ue=r.useMemo(()=>In(h,{resolveOpeningMessage:N=>v[N.invocation_id]??v[N.id]}),[h,v]);return{agents:p,agentDefinitions:A,loadState:S,loadError:P,reload:V,refresh:ae,fetchAgentChecklist:X,fetchAgentResources:B,createAgent:J,archiveAgent:ee,unarchiveAgent:pe,deleteAgent:re,removeAgent:M,replaceAgent:le,chatConnector:ue}},Lr=e=>JSON.stringify(e),Rs=e=>{const{agent:t,jwt:s,headers:a,urls:i,chatId:d}=e,l=JSON.stringify(a??{}),m=Lr(i),h=r.useMemo(()=>new nn({token:s,headers:a,urls:{agent:i.agentUrl,agentChecklist:i.agentChecklistUrl,...i.agentResourcesUrl?{agentResources:i.agentResourcesUrl}:{},...i.agentTimelineUrl?{agentTimeline:i.agentTimelineUrl}:{},agentChat:i.agentChatUrl,agentConversation:i.agentConversationUrl,...i.pauseAgentUrl?{pauseAgent:i.pauseAgentUrl}:{},...i.resumeAgentUrl?{resumeAgent:i.resumeAgentUrl}:{},...i.archiveAgentUrl?{archiveAgent:i.archiveAgentUrl}:{},...i.unarchiveAgentUrl?{unarchiveAgent:i.unarchiveAgentUrl}:{}}}),[s,m]);r.useLayoutEffect(()=>{h.setHeaders(a)},[h,l]);const p=r.useCallback(async f=>Ce(await h.getAgent(f)),[h]),_=r.useCallback(async f=>{const[x,R]=await Promise.all([h.getAgentChecklist(f),h.getAgent(f).catch(()=>null)]);return tn(f,x,R??void 0)},[h]),A=r.useCallback(async f=>h.listAllAgentResources(f),[h]),o=r.useCallback(async f=>h.getAgentContext(f),[h]),v=r.useCallback(async(f,x)=>h.getAgentResourceHtml(f,x),[h]),E=r.useCallback(async f=>{const x=await h.getAgentTimeline(f);return ks(x)},[h]),S=r.useCallback(async(f,x)=>{await h.updateAgent(f,{invocationName:x})},[h]),I=r.useCallback(async f=>Ce(await h.archiveAgent(f)),[h]),P=r.useCallback(async f=>Ce(await h.unarchiveAgent(f)),[h]),j=r.useCallback(async f=>{await h.deleteAgent(f)},[h]);return{connector:r.useMemo(()=>In(h,{chatId:d??t.invocation_id})(t),[h,t.invocation_id,d]),fetchAgent:p,fetchAgentChecklist:_,fetchAgentContext:o,fetchAgentResources:A,fetchAgentResourceHtml:v,fetchAgentTimeline:E,updateAgentInvocationName:S,archiveAgent:I,unarchiveAgent:P,deleteAgent:j}},Pr=3e4,Mr=(e,t)=>{const s=e.hasRunBefore?t||"This trip":e.tripName.trim()||"A new trip",a=e.destination?` to ${e.destination}`:"",i=e.hasRunBefore?" It has run before.":"";return`${s}${a}.${i}`.trim()},Wn=e=>{switch(e){case k.paused:return $.paused;case k.complete:return $.complete;default:return $.running}},yn=e=>e===k.paused,Xn=(e,t)=>{t([Ae(e)])},Ur=(e,t)=>e.length===t.length&&e.every((s,a)=>{const i=t[a];return i!==void 0&&s.id===i.id&&s.text===i.text}),Ts=({agent:e,invocationId:t,open:s,onClose:a,jwt:i,headers:d,agentUrl:l,agentChecklistUrl:m,agentResourcesUrl:h,agentTimelineUrl:p,agentChatUrl:_,agentConversationUrl:A,pauseAgentUrl:o,resumeAgentUrl:v,archiveAgentUrl:E,unarchiveAgentUrl:S,chatId:I,enableUpload:P,adminMode:j=!1,initialBrief:y,initialPhase:f,initialChecklist:x,usePusherToRepoll:R=!1,pusherChannelPrefix:V=jn,pusherKey:ae="",pusherCluster:X="",subscribeToPusher:B,onArchived:J,onUnarchived:ee,onDeleted:pe,onAgentUpdated:M})=>{const[le,re]=r.useState(I??t),[ue,N]=r.useState("chat"),[L,T]=r.useState(!1),{connector:F,fetchAgent:D,fetchAgentChecklist:q,fetchAgentContext:_e,fetchAgentResources:Ge,fetchAgentResourceHtml:Lt,fetchAgentTimeline:ze,updateAgentInvocationName:qe,archiveAgent:Se,unarchiveAgent:je,deleteAgent:ot}=Rs({agent:{...e,invocation_id:t},jwt:i,headers:d,chatId:le,urls:{agentUrl:l,agentChecklistUrl:m,agentResourcesUrl:h,agentTimelineUrl:p,agentChatUrl:_,agentConversationUrl:A,pauseAgentUrl:o,resumeAgentUrl:v,archiveAgentUrl:E,unarchiveAgentUrl:S}}),K=r.useRef(F),[Z,Ve]=r.useState(e.invocation_name),[ct,xe]=r.useState(0),[Re,ut]=r.useState(null),[te,we]=r.useState(f??(y?$.running:Wn(e.status))),[ie,Q]=r.useState([]),[dt,Ke]=r.useState(0),[sn,Te]=r.useState([]),[an,Ye]=r.useState(!1),[Je,Ie]=r.useState(null),[ht,gt]=r.useState(null),[rn,ye]=r.useState(null),[Oe,Le]=r.useState(!1),[mt,We]=r.useState(null),[Pe,Me]=r.useState(null),[ln,pt]=r.useState(!1),[Pt,Xe]=r.useState(null),[oe,Ze]=r.useState(x??null),[Qe,_t]=r.useState(!1),[Mt,ft]=r.useState(null),[Ut,vt]=r.useState(void 0),[Ue,De]=r.useState(!1),[xt,wt]=r.useState(!1),[on,yt]=r.useState(null),[At,Dt]=r.useState(!1),[Ht,$t]=r.useState(!1),[Bt,Ft]=r.useState(!1),[cn,Nt]=r.useState(!1),[un,et]=r.useState(null),[Gt,zt]=r.useState(!1),[dn,tt]=r.useState(!1),[qt,c]=r.useState(null),[b,C]=r.useState(!1),[ne,fe]=r.useState(!1),[nt,de]=r.useState(null),[kt,se]=r.useState(null),[Ps,bt]=r.useState(()=>yn(e.status)),[Ms,On]=r.useState(e.archivedAt??null),G=!!Ms,Ct=!e.usable,[hn,Et]=r.useState(!1),[Vt,Us]=r.useState(!1),[Kt,Ds]=r.useState(!1),Ln=r.useRef(hn),Pn=r.useRef(e.invocation_name),st=r.useRef(e),he=r.useRef(M),Mn=r.useRef(0),Un=r.useRef(0),at=r.useRef(0),St=r.useRef(0);he.current=M,r.useEffect(()=>{On(e.archivedAt??null)},[e.archivedAt]),r.useEffect(()=>{K.current=F},[F]),r.useEffect(()=>{Pn.current=e.invocation_name},[e.invocation_name]),r.useEffect(()=>{st.current=e},[e]),r.useEffect(()=>{Ln.current=hn},[hn]),r.useEffect(()=>{re(I??t),N("chat"),T(!1),Q([]),Ke(g=>g+1),ut(null)},[t,I]),r.useEffect(()=>(at.current+=1,vt(void 0),De(!1),wt(!1),yt(null),()=>{at.current+=1}),[t]),r.useEffect(()=>{bt(yn(e.status))},[e.status,t]),r.useEffect(()=>{if(!s||y||G)return;const g=++St.current;return(async()=>{var w;try{const O=await D(t);if(g!==St.current)return;we(Wn(O.status)),bt(yn(O.status)),st.current=O,(w=he.current)==null||w.call(he,O)}catch{}})(),()=>{St.current+=1}},[s,t,y,G,D]),r.useEffect(()=>{Ve(e.invocation_name),xe(g=>g+1)},[e.invocation_name]),r.useEffect(()=>{G&&N("timeline")},[G]),r.useEffect(()=>{if(!s||y||G)return;const g=K.current.bootstrapConversation;if(!g){Xn(K.current.openingMessage(),Q);return}let w=!1;return Et(!0),(async()=>{try{const O=await g.call(K.current);if(w)return;Q(O.map(Ae))}catch{w||Xn(K.current.openingMessage(),Q)}finally{w||Et(!1)}})(),()=>{w=!0}},[s,y,G,t,le]);const He=r.useCallback(()=>{const g=++Mn.current;(async()=>{var w,O;try{const W=await q(t);if(g!==Mn.current)return;Ze(ce=>W.checklist.length===0&&Array.isArray(ce)&&ce.length>0||JSON.stringify(ce)===JSON.stringify(W.checklist)?ce:W.checklist),ft(null),(O=(w=K.current).seedChecklist)==null||O.call(w,W.checklist)}catch{}})()},[q,t]),$e=r.useCallback(()=>{h&&(async()=>{try{const g=await Ge(t);Te(g),Ie(null)}catch{}})()},[h,Ge,t]),ve=r.useCallback(()=>{if(!p)return;const g=++Un.current;(async()=>{try{const w=await ze(t);if(g!==Un.current)return;Me(O=>JSON.stringify(O)===JSON.stringify(w)?O:w),Xe(null)}catch{}})()},[p,ze,t]),jt=r.useCallback(g=>{const w=K.current.bootstrapConversation;w&&(async()=>{try{const O=await w.call(K.current);if(Ln.current)return;const W=O.map(Ae);let ce=!1;Q(rt=>Ur(rt,W)?rt:(ce=!0,W)),ce&&(g!=null&&g.refreshSidePanelsOnChange)&&(He(),ve())}catch{}})()},[He,ve]),Hs=r.useCallback(g=>{switch(g){case be.checklist:He();return;case be.resources:$e();return;case be.chat:jt();return;case be.timeline:ve();return;case be.all:default:He(),$e(),jt(),ve()}},[He,jt,$e,ve]),$s=xs({enabled:!!(s&&R&&!B),key:ae,cluster:X,isAdmin:j}),Bs=B??$s,Dn=or({enabled:s&&R,channelPrefix:V,agentId:e.id||t,subscribeToPusher:Bs,onRepoll:Hs});r.useEffect(()=>{if(!s||y||G||Dn)return;const g=window.setInterval(()=>{jt({refreshSidePanelsOnChange:!0})},Pr);return()=>{window.clearInterval(g)}},[s,y,G,Dn,t,le,jt]);const Yt=r.useCallback(g=>{var w,O;if(g&&g.length>0){Ze(g),(O=(w=K.current).seedChecklist)==null||O.call(w,g);return}He()},[He]),gn=r.useCallback(g=>{Yt(g.checklist),g.phase&&we(g.phase),$e(),ve()},[Yt,$e,ve]);r.useEffect(()=>{var g,w;!s||y||x&&x.length>0&&((w=(g=K.current).seedChecklist)==null||w.call(g,x))},[s,y,x]),r.useEffect(()=>{if(!s||y)return;let g=!1;return _t(w=>x!=null&&x.length?!1:w||oe===null||oe.length===0),ft(null),(async()=>{var w,O;try{const W=await q(t);if(g)return;x!=null&&x.length||(Ze(W.checklist),(O=(w=K.current).seedChecklist)==null||O.call(w,W.checklist))}catch{!g&&!(x!=null&&x.length)&&ft(Xt)}finally{g||_t(!1)}})(),()=>{g=!0}},[s,t,y,x,q]),r.useEffect(()=>{if(!s||!h)return;let g=!1;return Ye(!0),Ie(null),(async()=>{try{const w=await Ge(t);g||Te(w)}catch{g||Ie(aa)}finally{g||Ye(!1)}})(),()=>{g=!0}},[s,t,h,Ge]);const Fs=r.useCallback(()=>{gt(null),ye(null),We(null),Le(!1)},[]),Gs=r.useCallback(g=>{if(g.misRecordUrl){window.open(g.misRecordUrl,"_blank","noopener,noreferrer");return}gt(g),ye(null),We(null),Le(!0),(async()=>{try{const w=await Lt(t,g.id);ye(w)}catch{We(ra)}finally{Le(!1)}})()},[Lt,t]);r.useEffect(()=>{if(!s||!p)return;let g=!1;return pt(w=>w||Pe===null),Xe(null),(async()=>{try{const w=await ze(t);g||Me(w)}catch{g||Xe(rs)}finally{g||pt(!1)}})(),()=>{g=!0}},[s,t,p,ze]),r.useEffect(()=>{if(!s||!y)return;let g=!1;const w={id:`user-brief-${Date.now()}`,author:me.user,text:Mr(y,Pn.current)};return(async()=>{const O=await K.current.start(y);g||(Q([Ae(K.current.openingMessage()),Ae(w),Ae(O.message)]),Yt(O.checklist),we(O.phase??$.running),$e(),ve())})(),()=>{g=!0}},[s,y,t,Yt,$e,ve]);const mn=I??t,Jt=Pe==null?void 0:Pe.chatSessions,Hn=Jt!=null&&Jt.length?Jt.reduce((g,w)=>Date.parse(w.timestamp)<Date.parse(g.timestamp)?w:g).sessionId:void 0,pn=r.useCallback(()=>{N("chat"),T(!1),le!==mn&&(re(mn),Q([]),Ke(g=>g+1))},[le,mn]),zs=r.useCallback(g=>{if(g===Hn){pn();return}re(g),T(!0),N("chat"),Q([]),Ke(w=>w+1)},[Hn,pn]),qs=r.useCallback(async()=>{var g;se(null),Dt(!0);try{await K.current.pause(),St.current+=1,we($.paused),bt(!0);const w={...st.current,status:k.paused};st.current=w,(g=he.current)==null||g.call(he,w)}catch{se(ia)}finally{Dt(!1)}},[]),Vs=r.useCallback(async()=>{var w;se(null),$t(!0);let g=!1;try{await K.current.resume(),g=!0,St.current+=1,we($.running),bt(!1);const O={...st.current,status:k["generating-a-response"]};st.current=O,(w=he.current)==null||w.call(he,O),Et(!0);const W={id:`wake-${Date.now()}`,author:me.user,text:Bn};Q(rt=>[...rt,Ae(W)]);const ce=await K.current.sendMessage(Bn);Q(rt=>[...rt,Ae(ce.message)]),gn(ce)}catch{se(g?xa:va)}finally{$t(!1),Et(!1)}},[gn]),Ks=r.useCallback(async()=>{se(null),et(null),Ft(!0);try{await Se(t),Nt(!1),J==null||J(),a()}catch{et(Nn),se(Nn)}finally{Ft(!1)}},[t,Se,J,a]),Ys=r.useCallback(async()=>{se(null),c(null),zt(!0);try{await je(t),On(null),we($.paused),bt(!0),N("chat"),tt(!1),ee==null||ee()}catch{c(kn),se(kn)}finally{zt(!1)}},[t,je,ee]),Js=r.useCallback(async()=>{se(null),de(null),C(!0);try{await ot(t),fe(!1),pe==null||pe(),a()}catch(g){de(Ss(g))}finally{C(!1)}},[t,ot,pe,a]),Ws=r.useCallback(g=>{const w=g.trim(),O=Z;if(ut(null),!w){xe(W=>W+1);return}w!==O&&(Ve(w),(async()=>{try{await qe(t,w)}catch{Ve(O),xe(W=>W+1),ut(wa)}})())},[Z,t,qe]),Xs=r.useCallback(()=>{if(!j||Ue||xt)return;const g=++at.current;wt(!0),yt(null),(async()=>{try{const w=await _e(t);if(at.current!==g)return;vt(w),De(!0)}catch{at.current===g&&yt(sa)}finally{at.current===g&&wt(!1)}})()},[j,Ue,xt,_e,t]),Zs=oe;return n.jsxs(n.Fragment,{children:[n.jsxs(u.Modal,{open:s,closeHandler:a,hideCloseButton:!0,className:"agent-workspace",children:[n.jsxs(u.Modal.Header,{className:"agent-workspace__header",children:[n.jsxs("div",{className:"agent-workspace__header-title",children:[n.jsx("span",{className:"agent-workspace__header-avatar","aria-hidden":"true",children:n.jsx(u.Icon,{name:"ask-arbor",size:24})}),n.jsx(u.Modal.Title,{children:G?n.jsx("span",{className:"agent-workspace__header-name",children:Z}):n.jsx(u.EditableText,{className:"agent-workspace__header-name",text:Z,onEditSave:Ws},ct)}),n.jsx("span",{className:Y("agent-workspace__phase",`agent-workspace__phase--${te}`),children:Ca[te]}),G?n.jsx("span",{className:"agent-workspace__phase agent-workspace__phase--archived",children:"Archived"}):null,Re&&n.jsx("p",{className:"agent-workspace__error agent-workspace__name-error",role:"alert",children:Re})]}),n.jsxs("div",{className:"agent-workspace__header-actions",children:[n.jsx(u.Button,{variant:Vt?"secondary":"primary",size:"S",iconLeftName:"clipboard-list",iconLeftScreenReaderText:"Toggle checklist","aria-pressed":!Vt,onClick:()=>Us(g=>!g),children:"Checklist"}),n.jsx(u.Button,{variant:Kt?"secondary":"primary",size:"S",iconLeftName:"files",iconLeftScreenReaderText:"Toggle resources","aria-pressed":!Kt,onClick:()=>Ds(g=>!g),children:"Resources"}),n.jsx(u.Button,{variant:"secondary",size:"S",iconLeftName:"x",iconLeftScreenReaderText:"Close",onClick:a,children:"Close"})]})]}),n.jsxs(u.Modal.Body,{className:Y("agent-workspace__body",{"agent-workspace__body--no-checklist":Vt,"agent-workspace__body--no-resources":Kt}),children:[n.jsxs("section",{className:Y("agent-workspace__panel","agent-workspace__panel--chat",{"agent-workspace__panel--timeline":!!p&&(G||ue==="timeline")}),"aria-label":"Agent",children:[n.jsxs("div",{className:"agent-workspace__panel-header",children:[n.jsx(u.Heading,{level:4,children:"Agent"}),o&&!Ct&&!G&&te===$.running&&n.jsx(u.Button,{className:"agent-workspace__panel-header-action",variant:"secondary-destructive",size:"S",iconLeftName:"circle-x",iconLeftScreenReaderText:"Pause",disabled:At,onClick:()=>void qs(),children:At?"Pausing…":"Pause agent"}),v&&!Ct&&!G&&te===$.paused&&Ps&&n.jsx(u.Button,{className:"agent-workspace__panel-header-action",variant:"secondary",size:"S",iconLeftName:"iteration-ccw",iconLeftScreenReaderText:"Resume",disabled:Ht,onClick:()=>void Vs(),children:Ht?"Resuming…":"Resume agent"}),E&&!Ct&&!G&&n.jsx(u.Button,{className:"agent-workspace__panel-header-action",variant:"secondary",size:"S",iconLeftName:"archive",iconLeftScreenReaderText:"Archive",onClick:()=>{et(null),se(null),Nt(!0)},children:"Archive agent"}),S&&!Ct&&G&&n.jsx(u.Button,{className:"agent-workspace__panel-header-action",variant:"secondary",size:"S",onClick:()=>{c(null),se(null),tt(!0)},children:"Unarchive agent"}),j&&G&&n.jsx(u.Button,{className:"agent-workspace__panel-header-action",variant:"secondary-destructive",size:"S",onClick:()=>{de(null),se(null),fe(!0)},children:"Delete agent"})]}),kt&&n.jsx("p",{className:"agent-workspace__error agent-workspace__lifecycle-error",role:"alert",children:kt}),p&&!G&&n.jsxs(u.Tabs,{className:"agent-workspace__center-tabs","aria-label":"Center panel",children:[n.jsx(u.Tabs.Item,{active:ue==="chat",tabElementProps:{id:"agent-center-tab-chat",onClick:()=>N("chat")},children:"Chat"}),n.jsx(u.Tabs.Item,{active:ue==="timeline",tabElementProps:{id:"agent-center-tab-timeline",onClick:()=>N("timeline")},children:"Timeline"})]}),p&&!G&&ue==="chat"&&L&&n.jsx("div",{className:"agent-workspace__center-back",children:n.jsx(u.Button,{variant:"tertiary",size:"S",iconLeftName:"arrow-left",iconLeftScreenReaderText:"Back to main chat",onClick:pn,children:"Back to main chat"})}),p&&(G||ue==="timeline")&&n.jsx(sr,{timeline:Pe,isLoading:ln,error:Pt,onOpenChatSession:G?void 0:zs}),!G&&n.jsx("div",{className:"agent-workspace__chat-keep-alive",hidden:!!p&&ue!=="chat",children:n.jsx(Ba,{connector:F,phase:te,chatHistory:ie,chatSessionKey:dt,readOnly:Ct,enableUpload:P,onTurn:gn,onAwaitingChange:Et})}),G&&!p&&n.jsx("p",{className:"agent-workspace__timeline-status",role:"status",children:"Chat is not available for archived agents."})]}),!Vt&&n.jsx(Fa,{checklist:Zs,isLoading:Qe,error:Mt,phase:te,adminMode:j,context:Ut,contextLoaded:Ue,contextLoading:xt,contextError:on,onContextSelect:Xs},t),!Kt&&n.jsx(qa,{resources:sn,isLoading:an,error:Je,onOpenResource:Gs}),n.jsx(Ga,{resource:ht,html:rn,isLoading:Oe,error:mt,onClose:Fs})]})]}),n.jsx(us,{open:cn,isInProgress:te===$.running||te===$.paused&&!gs(oe??void 0),isArchiving:Bt,error:un,onCancel:()=>{Bt||(et(null),Nt(!1))},onConfirm:()=>{Ks()}}),n.jsx(hs,{open:dn,isUnarchiving:Gt,error:qt,onCancel:()=>{Gt||(c(null),tt(!1))},onConfirm:()=>{Ys()}}),n.jsx(ds,{open:ne,isDeleting:b,error:nt,onCancel:()=>{b||(de(null),fe(!1))},onConfirm:()=>{Js()}})]})},Dr="Unable to load agent definitions. Please try again.",Hr="Unable to start the agent.",Zn="Loading agents…",$r="Which agent?",Br="Select an agent",Fr="What do you want to call this agent?",Gr="Science Museum Trip, or Governor's Report",zr="Make this something you can easily recognise that relates to the task the agent is carrying out.",Qn="new-agent-invocation-name-hint",es=(e,t)=>{const s=t==null?void 0:t.trim();if(s)return e.find(a=>a.ref===s)},qr=(e,t)=>`${e.replace(/\/+$/,"")}/${encodeURIComponent(t)}`,Is=({open:e,onClose:t,onStart:s,agentDefinitions:a,definitionsState:i="idle",definitionsError:d=null,onRetryDefinitions:l,embedded:m=!1,preselectAgent:h})=>{const[p,_]=r.useState(void 0),[A,o]=r.useState(""),[v,E]=r.useState(!1),[S,I]=r.useState(null),P=[...a].sort((R,V)=>R.display_name.localeCompare(V.display_name)).map(R=>({value:R.ref,label:R.display_name}));r.useEffect(()=>{e&&(o(""),E(!1),I(null),_(es(a,h)))},[e,h]),r.useEffect(()=>{if(!e)return;const R=es(a,h);R&&_(V=>V??R)},[e,h,a]);const j=p!==void 0&&A.trim().length>0,y=r.useCallback(R=>{const V=a.find(ae=>ae.ref===R[0]);V&&_(V)},[a]),f=r.useCallback(async()=>{if(!(!p||!j||v)){E(!0),I(null);try{await s({definition:p,invocationName:A.trim()})}catch(R){I(R instanceof Error?R.message:Hr)}finally{E(!1)}}},[j,p,A,v,s]);if(i==="idle"&&a.length===0||!e)return null;let x;return i==="loading"?x=n.jsxs("div",{className:"new-agent__state","aria-live":"polite",children:[n.jsx(u.Icon,{name:"loader",size:24,color:"var(--color-brand-600)",className:"new-agent__spinner",screenReaderText:Zn}),n.jsx("p",{className:"new-agent__state-message",children:Zn})]}):i==="error"?x=n.jsxs("div",{className:"new-agent__state new-agent__state--error",role:"alert",children:[n.jsx(u.Icon,{name:"triangle-alert",size:24,color:"var(--color-semantic-destructive-600)"}),n.jsx("p",{className:"new-agent__state-message",children:d??Dr}),l?n.jsx(u.Button,{variant:"secondary",size:"S",onClick:l,children:"Try again"}):null]}):x=n.jsxs("form",{className:"new-agent__form","aria-label":"Start an agent",onSubmit:R=>{R.preventDefault(),j&&!v&&f()},children:[n.jsxs("div",{className:"new-agent__type-field",children:[n.jsx("label",{className:"new-agent__type-label",htmlFor:"new-agent-type",children:$r}),n.jsx(u.SelectDropdown,{id:"new-agent-type",placeholder:Br,options:P,selectedValues:p?[p.ref]:[],onSelectionChange:y,"aria-describedBy":p!=null&&p.description?"new-agent-type-description":void 0}),p!=null&&p.description?n.jsx("p",{className:"new-agent__field-hint",id:"new-agent-type-description",children:p.description}):null]}),n.jsxs("div",{className:"new-agent__type-field",children:[n.jsx("label",{className:"new-agent__type-label",htmlFor:"new-agent-invocation-name",children:Fr}),n.jsx("p",{className:"new-agent__field-hint",id:Qn,children:zr}),n.jsx(u.TextInput,{id:"new-agent-invocation-name",value:A,placeholder:Gr,"aria-describedby":Qn,onChange:R=>o(R.target.value)})]}),S?n.jsx("p",{className:"new-agent__error",role:"alert",children:S}):null,n.jsx("div",{className:"new-agent__actions",children:n.jsx(u.Button,{type:"submit",variant:"primary",className:Y("new-agent__start-button",{"new-agent__start-button--starting":v}),disabled:!j||v,iconLeftName:v?"loader":"sparkles",iconLeftScreenReaderText:v?"Starting":void 0,children:v?"Starting…":"Start"})})]}),m?n.jsx("div",{className:Y("new-agent","new-agent--embedded"),children:n.jsx("div",{className:"new-agent__body",children:x})}):n.jsxs(u.Modal,{open:e,closeHandler:t,className:"new-agent",children:[n.jsx(u.Modal.Title,{children:"Start an agent"}),n.jsx(u.Modal.Body,{className:"new-agent__body",children:x})]})},An=e=>{window.location.assign(e)},Vr=({open:e,authToken:t,headers:s,agentDefinitionsUrl:a,agentsUrl:i,closeUrl:d,successUrl:l,viewAgentUrlPrefix:m,preselectAgent:h,onClose:p,onStart:_,embedded:A=!1})=>{const o=JSON.stringify(s??{}),v=r.useMemo(()=>new nn({token:t,headers:s,urls:{agentDefinitions:a,agents:i}}),[t,a,i,o]),[E,S]=r.useState([]),[I,P]=r.useState("loading"),[j,y]=r.useState(null),[f,x]=r.useState(0);r.useEffect(()=>{if(!e)return;let X=!1;return P("loading"),y(null),(async()=>{try{const B=await v.listAgentDefinitions();if(X)return;S(B.map(Rn)),P("idle")}catch(B){if(X)return;S([]),y(Es(B)),P("error")}})(),()=>{X=!0}},[v,e,f]);const R=r.useCallback(()=>{p==null||p(),d&&An(d)},[d,p]),V=r.useCallback(async X=>{const B=await v.createAgent(X.definition.ref,{invocationName:X.invocationName}),J={id:B.id};_==null||_(X,J);const ee=m==null?void 0:m.trim();if(ee){An(qr(ee,B.id));return}l&&An(l)},[v,_,l,m]),ae=r.useCallback(()=>{x(X=>X+1)},[]);return n.jsx(Is,{open:e,onClose:R,onStart:V,agentDefinitions:E,definitionsState:I,definitionsError:j,onRetryDefinitions:ae,embedded:A,preselectAgent:h})},Kr=e=>"agentDefinitionsUrl"in e,Os=e=>Kr(e)?n.jsx(Vr,{...e}):n.jsx(Is,{...e}),Yr=({open:e,onClose:t})=>{const s=r.useId(),a=r.useId();return n.jsxs(u.Modal,{open:e,closeHandler:t,className:"archive-agent-confirm",children:[n.jsx(u.Modal.Header,{className:"archive-agent-confirm__header",children:n.jsx(u.Modal.Title,{id:s,children:Na})}),n.jsxs(u.Modal.Body,{className:"archive-agent-confirm__body",children:[n.jsx("div",{role:"alertdialog","aria-labelledby":s,"aria-describedby":a,children:n.jsx("p",{id:a,className:"archive-agent-confirm__lead",children:ka})}),n.jsx("div",{className:"archive-agent-confirm__actions",children:n.jsx(u.Button,{variant:"secondary",size:"S",onClick:t,children:"Close"})})]})]})},Jr=3,Wr=56,Xr=e=>e.archivedAt?"archived":e.status===k.paused?"paused":null,Zr=e=>{if(e==="archived")return ea;if(e==="paused")return lt[k.paused].statusIcon},Qr=({column:e,overlayIcon:t,label:s})=>{const a=t??e.statusIcon;return a?n.jsx("span",{className:"agent-view__status-indicator",children:n.jsx(u.Icon,{name:a.name,size:16,color:a.color,className:Y({"agent-view__progress-icon--spinning":a.spin}),screenReaderText:s})}):n.jsx("span",{className:Y("agent-view__dot",{[`agent-view__dot--${e.dotModifier}`]:e.dotModifier}),children:n.jsx(u.Dot,{colour:e.dotColour,label:s})})},Ls=({agent:e,agentName:t,column:s,isExpanded:a,isLoading:i,checklist:d,error:l,canArchive:m,canUnarchive:h=!1,canDelete:p=!1,onToggle:_,onViewAgent:A,onArchive:o,onUnarchive:v,onDelete:E})=>{const{id:S,invocation_name:I}=e,P=`agent-card-${S}-header`,j=`agent-card-${S}-progress`,y=Xr(e),f=Zr(y);return n.jsx("li",{className:Y("agent-view__card",{"agent-view__card--expanded":a,"agent-view__card--paused":y==="paused","agent-view__card--archived":y==="archived","agent-view__card--view-only":!e.usable}),children:n.jsxs(u.Card,{spacing:"dense",children:[n.jsx("button",{type:"button",className:"agent-view__card-toggle","aria-expanded":a,"aria-controls":j,"aria-label":I,id:P,onClick:()=>_(S),children:n.jsxs("div",{className:"agent-view__card-content",children:[n.jsx(Qr,{column:s,overlayIcon:f}),n.jsx("span",{className:"agent-view__card-invocation-name",children:I}),n.jsx("span",{className:"agent-view__card-agent-name",children:t}),y==="paused"?n.jsx("span",{className:"agent-view__card-state-pill",children:"Paused"}):null,y==="archived"?n.jsx("span",{className:"agent-view__card-state-pill",children:"Archived"}):null,e.usable?null:n.jsx("span",{className:"agent-view__card-state-pill",children:"View only"}),n.jsx(u.Icon,{name:a?"chevron-up":"chevron-down",size:16,className:"agent-view__card-chevron"})]})}),a&&n.jsxs("div",{id:j,"aria-labelledby":P,className:"agent-view__card-progress",children:[i&&n.jsxs("div",{className:"agent-view__progress-loading","aria-live":"polite",children:[n.jsx(u.Icon,{name:"loader",size:16,color:"var(--color-brand-600)",className:"agent-view__progress-icon--spinning",screenReaderText:it}),n.jsx("span",{children:it})]}),!i&&l&&n.jsx("p",{className:"agent-view__progress-error",role:"alert",children:l}),!i&&!l&&d!==null&&n.jsx(Da,{checklist:d}),!i&&!l&&d===null&&n.jsxs("div",{className:"agent-view__progress-loading","aria-live":"polite",children:[n.jsx(u.Icon,{name:"loader",size:16,color:"var(--color-brand-600)",className:"agent-view__progress-icon--spinning",screenReaderText:it}),n.jsx("span",{children:it})]}),n.jsxs("div",{className:"agent-view__card-actions",children:[m?n.jsx(u.Button,{variant:"secondary",size:"S",iconLeftName:"archive",iconLeftScreenReaderText:"Archive",onClick:()=>o==null?void 0:o(e),children:"Archive"}):h?n.jsx(u.Button,{variant:"secondary",size:"S",onClick:()=>v==null?void 0:v(e),children:"Unarchive"}):p?n.jsx(u.Button,{variant:"secondary-destructive",size:"S",onClick:()=>E==null?void 0:E(e),children:"Delete"}):n.jsx("span",{}),h&&p?n.jsx(u.Button,{variant:"secondary-destructive",size:"S",onClick:()=>E==null?void 0:E(e),children:"Delete"}):null,n.jsx(u.Button,{variant:"secondary",size:"S",onClick:()=>A==null?void 0:A(e),children:"View agent"})]})]})]})})},ei=()=>n.jsx("ul",{className:"agent-view__card-list","aria-hidden":"true",children:Array.from({length:Jr},(e,t)=>n.jsx("li",{className:"agent-view__card agent-view__card--skeleton",children:n.jsx(u.Skeleton,{className:"agent-view__card-skeleton",width:"100%",height:Wr})},t))}),ts=({column:e,agents:t,expandedAgentId:s,loadingAgentId:a,checklistByInvocationId:i,errorByAgentId:d,definitionNameByRef:l,onToggleAgent:m,onViewAgent:h,onArchiveAgent:p,canArchive:_,isLoading:A=!1})=>n.jsxs("section",{className:"agent-view__column","aria-label":e.title,children:[n.jsxs("div",{className:"agent-view__column-header",children:[n.jsx(u.Heading,{level:4,children:e.title}),n.jsx("span",{className:"agent-view__column-count",children:A?0:t.length})]}),A?n.jsx(ei,{}):n.jsx("ul",{className:"agent-view__card-list",children:t.map(o=>n.jsx(Ls,{agent:o,agentName:Zt(o,l),column:e,isExpanded:s===o.id,isLoading:a===o.id,checklist:i[o.invocation_id]??null,error:d[o.id]??null,canArchive:_&&!o.archivedAt&&o.usable,onToggle:m,onViewAgent:h,onArchive:p},o.id))})]}),Zt=(e,t)=>t.get(e.agent_definition_ref)??e.agent_definition_ref.replace(/_/g," "),ti=({jwt:e,headers:t,agentDefinitionsUrl:s,agentsUrl:a,agentUrl:i,agentChecklistUrl:d,agentResourcesUrl:l,agentTimelineUrl:m,agentChatUrl:h,agentConversationUrl:p,pauseAgentUrl:_,resumeAgentUrl:A,archiveAgentUrl:o,unarchiveAgentUrl:v,enableUpload:E,adminMode:S=!1,showHeader:I=!1,institutions:P,usePusherToRepoll:j=!1,pusherChannelPrefix:y=jn,pusherKey:f,pusherCluster:x,subscribeToPusher:R,selectedAgent:V,scope:ae=ls})=>{var qt;const X=r.useMemo(()=>({agentDefinitions:s,agents:a,agent:i,agentChecklist:d,...l?{agentResources:l}:{},...m?{agentTimeline:m}:{},agentChat:h,agentConversation:p,...o?{archiveAgent:o}:{},...v?{unarchiveAgent:v}:{}}),[s,a,i,d,l,m,h,p,o,v]),[B,J]=r.useState(null),ee=B?(qt=P==null?void 0:P.find(c=>c.applicationId===B.application_id))==null?void 0:qt.applicationUrl:void 0,pe=r.useMemo(()=>{const c={...t??{}};return ee?c[Be.arborApplicationUrl]=ee:delete c[Be.arborApplicationUrl],c},[t,ee]),{agents:M,agentDefinitions:le,loadState:re,loadError:ue,reload:N,refresh:L,fetchAgentChecklist:T,createAgent:F,archiveAgent:D,unarchiveAgent:q,deleteAgent:_e,removeAgent:Ge,replaceAgent:Lt}=js({jwt:e,headers:pe,urls:X,scope:ae}),[ze,qe]=r.useState(!1),[Se,je]=r.useState(null),[ot,K]=r.useState(null),[Z,Ve]=r.useState({}),[ct,xe]=r.useState({}),[Re,ut]=r.useState([]),[te,we]=r.useState([]),[ie,Q]=r.useState(null),[dt,Ke]=r.useState(!1),[sn,Te]=r.useState(null),[an,Ye]=r.useState(!1),[Je,Ie]=r.useState(null),[ht,gt]=r.useState(!1),[rn,ye]=r.useState(null),[Oe,Le]=r.useState(null),[mt,We]=r.useState(!1),[Pe,Me]=r.useState(null),[ln,pt]=r.useState(!1),Pt=r.useRef(!1);r.useEffect(()=>{J(c=>{if(!c)return null;const b=M.find(C=>C.id===c.id||C.invocation_id===c.invocation_id||C.invocation_id===c.id);return b||(re==="loading"?c:null)})},[M,re]),r.useEffect(()=>{if(!V||Pt.current||re==="loading")return;Pt.current=!0;const c=M.find(({id:b})=>b===V);if(c){J(c);return}pt(!0)},[V,M,re]);const Xe=r.useMemo(()=>{const c=new Set(M.map(C=>C.application_id)),b=new Map((P??[]).map(C=>[C.applicationId,C.name]));return[...c].sort((C,ne)=>(b.get(C)??C).localeCompare(b.get(ne)??ne)).map(C=>({value:C,label:b.get(C)??C}))},[M,P]),oe=r.useMemo(()=>new Map(le.map(c=>[c.ref,c.display_name])),[le]),Ze=r.useMemo(()=>[...new Set(M.map(b=>Zt(b,oe)))].sort((b,C)=>b.localeCompare(C)).map(b=>({value:b,label:b})),[M,oe]),Qe=r.useMemo(()=>M.filter(c=>!(Re.length>0&&!Re.includes(c.application_id)||te.length>0&&!te.includes(Zt(c,oe)))),[M,oe,te,Re]),_t=Xe.length>1,Mt=Ze.length>1,ft=_t||Mt;r.useEffect(()=>{const c=window.setInterval(()=>{L()},6e4);return()=>{window.clearInterval(c)}},[L]),r.useEffect(()=>{if(M.length===0)return;let c=!1;return(async()=>{const b=await Promise.allSettled(M.map(async C=>{const ne=await T(C.invocation_id);return{agentId:C.id,invocationId:C.invocation_id,checklist:ne.checklist}}));c||(Ve(C=>{const ne={...C};let fe=!1;for(const nt of b){if(nt.status!=="fulfilled")continue;const{invocationId:de,checklist:kt}=nt.value;JSON.stringify(C[de])!==JSON.stringify(kt)&&(ne[de]=kt,fe=!0)}return fe?ne:C}),xe(C=>{const ne={...C};let fe=!1;return b.forEach((nt,de)=>{nt.status==="rejected"&&ne[M[de].id]!==Xt&&(ne[M[de].id]=Xt,fe=!0)}),fe?ne:C}))})(),()=>{c=!0}},[M,T]);const Ut=r.useCallback(async c=>{if(!Z[c.invocation_id]){K(c.id),xe(b=>{const C={...b};return delete C[c.id],C});try{const b=await T(c.invocation_id);Ve(C=>({...C,[c.invocation_id]:b.checklist}))}catch{xe(b=>({...b,[c.id]:Xt}))}finally{K(b=>b===c.id?null:b)}}},[T,Z]),vt=r.useCallback(c=>{if(Se===c){je(null);return}const b=M.find(({id:C})=>C===c);b&&(je(c),Ut(b))},[M,Se,Ut]),Ue=r.useMemo(()=>Qe.filter(c=>!!c.archivedAt),[Qe]),De=r.useMemo(()=>Qe.filter(c=>!c.archivedAt),[Qe]),xt=r.useMemo(()=>{const c={};for(const b of De){const C=vn(b,Z[b.invocation_id]);(c[C]??(c[C]=[])).push(b)}return c},[De,Z]),wt=re==="loading"&&M.length===0,on=De.length>0&&De.some(c=>Z[c.invocation_id]===void 0&&ct[c.id]===void 0),yt=wt||on,At=r.useCallback(c=>{J(c)},[]),Dt=r.useCallback(c=>{Te(null),Q(c)},[]),Ht=r.useCallback(()=>{dt||(Te(null),Q(null))},[dt]),$t=r.useCallback(async()=>{if(ie){Ke(!0),Te(null),xe(c=>{const b={...c};return delete b[ie.id],b});try{await D(ie.invocation_id),J(c=>(c==null?void 0:c.id)===ie.id?null:c),je(ie.id),Ye(!0),Q(null)}catch{Te(Nn)}finally{Ke(!1)}}},[ie,D]),Bt=r.useCallback(c=>{ye(null),Ie(c)},[]),Ft=r.useCallback(()=>{ht||(ye(null),Ie(null))},[ht]),cn=r.useCallback(async()=>{if(Je){gt(!0),ye(null);try{await q(Je.invocation_id),Ie(null)}catch{ye(kn)}finally{gt(!1)}}},[Je,q]),Nt=ie?vn(ie,Z[ie.invocation_id])!==k.complete:!1,un=r.useCallback(async c=>{const b=await F(c);J(b),qe(!1)},[F]),et=r.useCallback(c=>{Me(null),Le(c)},[]),Gt=r.useCallback(()=>{mt||(Me(null),Le(null))},[mt]),zt=r.useCallback(async()=>{if(Oe){We(!0),Me(null);try{await _e(Oe.invocation_id),J(c=>(c==null?void 0:c.id)===Oe.id?null:c),Le(null)}catch(c){Me(Ss(c))}finally{We(!1)}}},[Oe,_e]),dn=r.useCallback(()=>{J(null)},[]),tt={expandedAgentId:Se,loadingAgentId:ot,checklistByInvocationId:Z,errorByAgentId:ct,definitionNameByRef:oe,onToggleAgent:vt,onViewAgent:At,onArchiveAgent:Dt,canArchive:!!o};return n.jsxs("div",{className:"agent-view-frontend agent-view",children:[I&&n.jsxs("div",{className:"agent-view__header",children:[n.jsx(u.Heading,{level:1,children:"Agents"}),n.jsx(u.Button,{variant:"primary",size:"S",iconLeftName:"sparkles",iconLeftScreenReaderText:"Start an agent",onClick:()=>qe(!0),children:"Start an agent"})]}),M.length>0&&ft&&n.jsxs("div",{className:"agent-view__filters",children:[_t&&n.jsxs("div",{className:"agent-view__filter",children:[n.jsx("label",{className:"agent-view__filter-label",htmlFor:"agent-view-institution-filter",children:"Institution"}),n.jsx(u.Combobox,{id:"agent-view-institution-filter",triggerVariant:"button",multiple:!0,searchType:"substring",placeholder:"All institutions",options:Xe,value:Re,onValueChange:ut,showSelectionCountBadge:!0,showClearAll:!0,clearAllLabel:"Clear institutions"})]}),Mt&&n.jsxs("div",{className:"agent-view__filter",children:[n.jsx("label",{className:"agent-view__filter-label",htmlFor:"agent-view-agent-filter",children:"Agent"}),n.jsx(u.Combobox,{id:"agent-view-agent-filter",triggerVariant:"button",multiple:!0,searchType:"substring",placeholder:"All agents",options:Ze,value:te,onValueChange:we,showSelectionCountBadge:!0,showClearAll:!0,clearAllLabel:"Clear agents"})]})]}),re==="error"?n.jsxs("div",{className:"agent-view__state agent-view__state--error",role:"alert",children:[n.jsx(u.Icon,{name:"triangle-alert",size:24,color:"var(--color-semantic-destructive-600)"}),n.jsx("p",{className:"agent-view__state-message",children:ue??is}),n.jsx(u.Button,{variant:"secondary",size:"S",onClick:N,children:"Try again"})]}):yt?n.jsx("div",{className:"agent-view__board","aria-busy":"true","aria-live":"polite",children:$n.map(c=>n.jsx(ts,{column:lt[c],agents:[],isLoading:!0,...tt},c))}):M.length===0?n.jsx(Ta,{}):n.jsxs(n.Fragment,{children:[n.jsx("div",{className:"agent-view__board",children:$n.map(c=>n.jsx(ts,{column:lt[c],agents:xt[c]??[],...tt},c))}),Ue.length>0?n.jsxs("details",{className:"agent-view__archived",open:an,onToggle:c=>{Ye(c.currentTarget.open)},children:[n.jsxs("summary",{className:"agent-view__archived-summary",children:[n.jsx(u.Heading,{level:4,children:"Archived"}),n.jsx("span",{className:"agent-view__column-count",children:Ue.length})]}),n.jsx("ul",{className:"agent-view__card-list agent-view__archived-list",children:Ue.map(c=>n.jsx(Ls,{agent:c,agentName:Zt(c,oe),column:lt[vn(c,Z[c.invocation_id])],isExpanded:Se===c.id,isLoading:ot===c.id,checklist:Z[c.invocation_id]??null,error:ct[c.id]??null,canArchive:!1,canUnarchive:!!v&&c.usable,canDelete:S&&c.usable,onToggle:vt,onViewAgent:At,onUnarchive:Bt,onDelete:et},c.id))})]}):null]}),B&&n.jsx(Ts,{agent:B,invocationId:B.invocation_id,open:!0,jwt:e,headers:pe,agentUrl:i,agentChecklistUrl:d,agentResourcesUrl:l,agentTimelineUrl:m,agentChatUrl:h,agentConversationUrl:p,pauseAgentUrl:_,resumeAgentUrl:A,archiveAgentUrl:o,unarchiveAgentUrl:v,enableUpload:E,adminMode:S,initialChecklist:Z[B.invocation_id]??null,usePusherToRepoll:j,pusherChannelPrefix:y,pusherKey:f,pusherCluster:x,subscribeToPusher:R,onClose:dn,onAgentUpdated:Lt,onArchived:()=>{je(B.id),Ye(!0),L()},onUnarchived:()=>{L()},onDeleted:()=>{Ge(B.invocation_id)}},B.id||B.invocation_id),n.jsx(us,{open:!!ie,isInProgress:Nt,isArchiving:dt,error:sn,onCancel:Ht,onConfirm:()=>{$t()}}),n.jsx(hs,{open:!!Je,isUnarchiving:ht,error:rn,onCancel:Ft,onConfirm:()=>{cn()}}),n.jsx(ds,{open:!!Oe,isDeleting:mt,error:Pe,onCancel:Gt,onConfirm:()=>{zt()}}),n.jsx(Yr,{open:ln,onClose:()=>pt(!1)}),n.jsx(Os,{open:ze,onClose:()=>qe(!1),onStart:un,agentDefinitions:le})]})},ni=(e,t)=>{const s=Date.now(),a=t.trim()||e.agent_intent;return{id:`agent-${s}`,invocation_id:`inv-${s}`,agent_definition_ref:e.ref,agent_intent:e.agent_intent,invocation_name:a,application_id:ta,created_by:na,usable:!0,status:k["generating-a-response"],archivedAt:null,context_ref:null,checklist_ref:null}};exports.AgentMonitorKanban=ti;exports.AgentServiceClient=nn;exports.AgentServiceError=Fe;exports.AgentView=Ts;exports.DEFAULT_PUSHER_CHANNEL_PREFIX=jn;exports.HttpChatConnector=Cs;exports.MESSAGE_TYPE_REPOLL=Cn;exports.NewAgentModal=Os;exports.PUSHER_AGENT_MESSAGE_EVENT=_s;exports.REPOLL_TARGET=be;exports.buildAgentFromDefinition=ni;exports.buildAgentPusherChannel=fs;exports.createHttpChatConnectorFactory=In;exports.formatUserFileChatCardText=Ar;exports.mapApiAgent=Ce;exports.mapApiAgentDefinition=Rn;exports.mapApiAgentStatus=ws;exports.mapApiAgentTimelineResponse=ks;exports.mapApiChecklistEndpointResponse=tn;exports.mapApiChecklistItem=Tn;exports.mapApiChecklistResponse=wr;exports.mapApiChecklistStatus=ys;exports.mapApiConversationMessages=bs;exports.mapApiOpeningMessage=Ot;exports.mapApiResource=As;exports.mapApiResourcesEndpointResponse=Ns;exports.mapApiTripOption=_r;exports.parseConversationContentCaption=yr;exports.parseRepollMessages=vs;exports.useAgentService=js;exports.useAgentWorkspace=Rs;exports.useSubscribeToPusher=xs;
|
|
9
|
+
`):null}},Yn=e=>{try{return JSON.parse(e)}catch{return}};function Sr(e,t){const s=new FormData;s.append("body",JSON.stringify(e));for(const a of t)s.append("files",a,a.name);return s}const jr={id:as,author:me.agent,text:"Type a question or upload a file. You can ask it how it's progressing, or send an instruction and it'll act on it."};let Jn=0;const Rr=e=>(Jn+=1,`${e}-${Date.now()}-${Jn}`),Tr=e=>{const t=e.destination?` to ${e.destination}`:"";return`Let's get started on ${e.tripName.trim()||e.destination.trim()||"this task"}${t}. What will you do first?`};class Cs{constructor(t,s,a={}){this.seededChecklist=[],this.client=t,this.agentId=s,this.chatId=a.chatId??s,this.opening=a.openingMessage??jr,this.model=a.model}openingMessage(){return this.opening}async bootstrapConversation(){const t=await this.client.getConversation(this.chatId),s=bs(t.messages);return s.length===0?[this.opening]:s}async start(t){return{...await this.exchange(Tr(t)),phase:$.running}}sendMessage(t,s,a){return this.exchange(t,s,a)}async pause(){await this.client.pauseAgent(this.agentId)}async resume(){await this.client.resumeAgent(this.agentId)}seedChecklist(t){this.seededChecklist=t}async exchange(t,s,a){var A;const i=[{role:mr.user,content:t}];let d="",l=null,m;const h=await this.client.chat(this.agentId,{messages:i,chat_id:this.chatId,...this.model?{model:this.model}:{},moderation_enabled:!0,meta:{feature_id:"agent_view",source:"agent_view_frontend"}},{...s&&s.length>0?{uploadFiles:s}:{},onEvent:o=>{var S;const v=o.message;if((v==null?void 0:v.role)==="assistant"&&v.tool_calls&&v.tool_calls.length>0){const I=Ee.thinkingPhrasesFromToolCalls(v.tool_calls);for(const P of I)P.phrase!==l&&(l=P.phrase,(S=a==null?void 0:a.onThinking)==null||S.call(a,P))}const E=v==null?void 0:v.content;E&&(d=o.is_final?E:d+E),o.is_final&&(m=o)}}),p=m??h,_={id:p.event_id||Rr("msg-agent"),author:me.agent,text:d||p.message.content||"",...(A=p.follow_up_prompts)!=null&&A.length?{followUpPrompts:p.follow_up_prompts}:{}};try{const o=await this.client.getAgentChecklist(this.agentId),{checklist:v}=tn(this.agentId,o);return v.length===0?{message:_}:(this.seededChecklist=v,{message:_,checklist:v})}catch{return{message:_,...this.seededChecklist.length?{checklist:this.seededChecklist}:{}}}}}const In=(e,t)=>s=>{var a,i;return new Cs(e,s.invocation_id,{model:t==null?void 0:t.model,chatId:((a=t==null?void 0:t.resolveChatId)==null?void 0:a.call(t,s))??(t==null?void 0:t.chatId)??s.invocation_id,openingMessage:((i=t==null?void 0:t.resolveOpeningMessage)==null?void 0:i.call(t,s))??(t==null?void 0:t.openingMessage)})},Es=e=>e instanceof Fe?e.message:e instanceof TypeError?"Network error while contacting the agent service.":e instanceof Error&&e.message?e.message:is,Ss=e=>{if(e instanceof Fe){if(e.status===403)return ga;if(e.status===409)return ma;if(e.status===404)return pa}return ha},Ir=e=>{const t={};for(const s of e){const a=Ot(s);if(!a)continue;const i=s.invocation_id??s.id;t[i]=a,t[s.id]=a}return t},Or=e=>JSON.stringify(e),Wt=(e,t)=>JSON.stringify(e)===JSON.stringify(t),js=e=>{const{jwt:t,headers:s,urls:a,scope:i=ls}=e,d=JSON.stringify(s??{}),l=Or(a),m=r.useMemo(()=>({scope:i}),[i]),h=r.useMemo(()=>new nn({token:t,headers:s,urls:a}),[t,l]);r.useLayoutEffect(()=>{h.setHeaders(s)},[h,d]);const[p,_]=r.useState([]),[A,o]=r.useState([]),[v,E]=r.useState({}),[S,I]=r.useState("loading"),[P,j]=r.useState(null),[y,f]=r.useState(0),x=r.useRef(0),R=r.useCallback((N,L)=>{const T=N.map(Ce),F=L.map(Rn),D=Ir(N);_(q=>Wt(q,T)?q:T),o(q=>Wt(q,F)?q:F),E(q=>Wt(q,D)?q:D),I("idle"),j(null)},[]);r.useEffect(()=>{const N=++x.current;I("loading"),j(null),(async()=>{try{const[L,T]=await Promise.all([h.listAgents(m),h.listAgentDefinitions()]);if(N!==x.current)return;R(L,T)}catch(L){if(N!==x.current)return;_([]),o([]),E({}),I("error"),j(Es(L))}})()},[R,h,m,y]);const V=r.useCallback(()=>{f(N=>N+1)},[]),ae=r.useCallback(async()=>{const N=++x.current;try{const[L,T]=await Promise.all([h.listAgents(m),h.listAgentDefinitions()]);if(N!==x.current)return;R(L,T)}catch{}},[R,h,m]),X=r.useCallback(async N=>{const[L,T]=await Promise.all([h.getAgentChecklist(N),h.getAgent(N).catch(()=>null)]);return tn(N,L,T??void 0)},[h]),B=r.useCallback(async N=>h.listAllAgentResources(N),[h]),J=r.useCallback(async({definition:N,invocationName:L})=>{const T=await h.createAgent(N.ref,{invocationName:L}),F=await h.getAgent(T.id),D=Ce(F),q=Ot(F);return _(_e=>[D,..._e]),q&&E(_e=>({..._e,[D.invocation_id]:q,[D.id]:q})),D},[h]),ee=r.useCallback(async N=>{const L=await h.archiveAgent(N),T=Ce(L);return _(F=>F.map(D=>D.id===T.id||D.id===N||D.invocation_id===N?T:D)),T},[h]),pe=r.useCallback(async N=>{const L=await h.unarchiveAgent(N),T=Ce(L);return _(F=>F.map(D=>D.id===T.id||D.id===N||D.invocation_id===N?T:D)),T},[h]),M=r.useCallback(N=>{_(L=>L.filter(T=>T.id!==N&&T.invocation_id!==N))},[]),le=r.useCallback(N=>{_(L=>{const T=L.map(F=>F.id===N.id||F.invocation_id===N.invocation_id?{...F,...N}:F);return Wt(L,T)?L:T})},[]),re=r.useCallback(async N=>{await h.deleteAgent(N),M(N)},[h,M]),ue=r.useMemo(()=>In(h,{resolveOpeningMessage:N=>v[N.invocation_id]??v[N.id]}),[h,v]);return{agents:p,agentDefinitions:A,loadState:S,loadError:P,reload:V,refresh:ae,fetchAgentChecklist:X,fetchAgentResources:B,createAgent:J,archiveAgent:ee,unarchiveAgent:pe,deleteAgent:re,removeAgent:M,replaceAgent:le,chatConnector:ue}},Lr=e=>JSON.stringify(e),Rs=e=>{const{agent:t,jwt:s,headers:a,urls:i,chatId:d}=e,l=JSON.stringify(a??{}),m=Lr(i),h=r.useMemo(()=>new nn({token:s,headers:a,urls:{agent:i.agentUrl,agentChecklist:i.agentChecklistUrl,...i.agentResourcesUrl?{agentResources:i.agentResourcesUrl}:{},...i.agentTimelineUrl?{agentTimeline:i.agentTimelineUrl}:{},agentChat:i.agentChatUrl,agentConversation:i.agentConversationUrl,...i.pauseAgentUrl?{pauseAgent:i.pauseAgentUrl}:{},...i.resumeAgentUrl?{resumeAgent:i.resumeAgentUrl}:{},...i.archiveAgentUrl?{archiveAgent:i.archiveAgentUrl}:{},...i.unarchiveAgentUrl?{unarchiveAgent:i.unarchiveAgentUrl}:{}}}),[s,m]);r.useLayoutEffect(()=>{h.setHeaders(a)},[h,l]);const p=r.useCallback(async f=>Ce(await h.getAgent(f)),[h]),_=r.useCallback(async f=>{const[x,R]=await Promise.all([h.getAgentChecklist(f),h.getAgent(f).catch(()=>null)]);return tn(f,x,R??void 0)},[h]),A=r.useCallback(async f=>h.listAllAgentResources(f),[h]),o=r.useCallback(async f=>h.getAgentContext(f),[h]),v=r.useCallback(async(f,x)=>h.getAgentResourceHtml(f,x),[h]),E=r.useCallback(async f=>{const x=await h.getAgentTimeline(f);return ks(x)},[h]),S=r.useCallback(async(f,x)=>{await h.updateAgent(f,{invocationName:x})},[h]),I=r.useCallback(async f=>Ce(await h.archiveAgent(f)),[h]),P=r.useCallback(async f=>Ce(await h.unarchiveAgent(f)),[h]),j=r.useCallback(async f=>{await h.deleteAgent(f)},[h]);return{connector:r.useMemo(()=>In(h,{chatId:d??t.invocation_id})(t),[h,t.invocation_id,d]),fetchAgent:p,fetchAgentChecklist:_,fetchAgentContext:o,fetchAgentResources:A,fetchAgentResourceHtml:v,fetchAgentTimeline:E,updateAgentInvocationName:S,archiveAgent:I,unarchiveAgent:P,deleteAgent:j}},Pr=3e4,Mr=(e,t)=>{const s=e.hasRunBefore?t||"This trip":e.tripName.trim()||"A new trip",a=e.destination?` to ${e.destination}`:"",i=e.hasRunBefore?" It has run before.":"";return`${s}${a}.${i}`.trim()},Wn=e=>{switch(e){case k.paused:return $.paused;case k.complete:return $.complete;default:return $.running}},yn=e=>e===k.paused,Xn=(e,t)=>{t([Ae(e)])},Ur=(e,t)=>e.length===t.length&&e.every((s,a)=>{const i=t[a];return i!==void 0&&s.id===i.id&&s.text===i.text}),Ts=({agent:e,invocationId:t,open:s,onClose:a,jwt:i,headers:d,agentUrl:l,agentChecklistUrl:m,agentResourcesUrl:h,agentTimelineUrl:p,agentChatUrl:_,agentConversationUrl:A,pauseAgentUrl:o,resumeAgentUrl:v,archiveAgentUrl:E,unarchiveAgentUrl:S,chatId:I,enableUpload:P,adminMode:j=!1,initialBrief:y,initialPhase:f,initialChecklist:x,usePusherToRepoll:R=!1,pusherChannelPrefix:V=jn,pusherKey:ae="",pusherCluster:X="",subscribeToPusher:B,onArchived:J,onUnarchived:ee,onDeleted:pe,onAgentUpdated:M})=>{const[le,re]=r.useState(I??t),[ue,N]=r.useState("chat"),[L,T]=r.useState(!1),{connector:F,fetchAgent:D,fetchAgentChecklist:q,fetchAgentContext:_e,fetchAgentResources:Ge,fetchAgentResourceHtml:Lt,fetchAgentTimeline:ze,updateAgentInvocationName:qe,archiveAgent:Se,unarchiveAgent:je,deleteAgent:ot}=Rs({agent:{...e,invocation_id:t},jwt:i,headers:d,chatId:le,urls:{agentUrl:l,agentChecklistUrl:m,agentResourcesUrl:h,agentTimelineUrl:p,agentChatUrl:_,agentConversationUrl:A,pauseAgentUrl:o,resumeAgentUrl:v,archiveAgentUrl:E,unarchiveAgentUrl:S}}),K=r.useRef(F),[Z,Ve]=r.useState(e.invocation_name),[ct,xe]=r.useState(0),[Re,ut]=r.useState(null),[te,we]=r.useState(f??(y?$.running:Wn(e.status))),[ie,Q]=r.useState([]),[dt,Ke]=r.useState(0),[sn,Te]=r.useState([]),[an,Ye]=r.useState(!1),[Je,Ie]=r.useState(null),[ht,gt]=r.useState(null),[rn,ye]=r.useState(null),[Oe,Le]=r.useState(!1),[mt,We]=r.useState(null),[Pe,Me]=r.useState(null),[ln,pt]=r.useState(!1),[Pt,Xe]=r.useState(null),[oe,Ze]=r.useState(x??null),[Qe,_t]=r.useState(!1),[Mt,ft]=r.useState(null),[Ut,vt]=r.useState(void 0),[Ue,De]=r.useState(!1),[xt,wt]=r.useState(!1),[on,yt]=r.useState(null),[At,Dt]=r.useState(!1),[Ht,$t]=r.useState(!1),[Bt,Ft]=r.useState(!1),[cn,Nt]=r.useState(!1),[un,et]=r.useState(null),[Gt,zt]=r.useState(!1),[dn,tt]=r.useState(!1),[qt,c]=r.useState(null),[b,C]=r.useState(!1),[ne,fe]=r.useState(!1),[nt,de]=r.useState(null),[kt,se]=r.useState(null),[Ps,bt]=r.useState(()=>yn(e.status)),[Ms,On]=r.useState(e.archivedAt??null),G=!!Ms,Ct=!e.usable,[hn,Et]=r.useState(!1),[Vt,Us]=r.useState(!1),[Kt,Ds]=r.useState(!1),Ln=r.useRef(hn),Pn=r.useRef(e.invocation_name),st=r.useRef(e),he=r.useRef(M),Mn=r.useRef(0),Un=r.useRef(0),at=r.useRef(0),St=r.useRef(0);he.current=M,r.useEffect(()=>{On(e.archivedAt??null)},[e.archivedAt]),r.useEffect(()=>{K.current=F},[F]),r.useEffect(()=>{Pn.current=e.invocation_name},[e.invocation_name]),r.useEffect(()=>{st.current=e},[e]),r.useEffect(()=>{Ln.current=hn},[hn]),r.useEffect(()=>{re(I??t),N("chat"),T(!1),Q([]),Ke(g=>g+1),ut(null)},[t,I]),r.useEffect(()=>(at.current+=1,vt(void 0),De(!1),wt(!1),yt(null),()=>{at.current+=1}),[t]),r.useEffect(()=>{bt(yn(e.status))},[e.status,t]),r.useEffect(()=>{if(!s||y||G)return;const g=++St.current;return(async()=>{var w;try{const O=await D(t);if(g!==St.current)return;we(Wn(O.status)),bt(yn(O.status)),st.current=O,(w=he.current)==null||w.call(he,O)}catch{}})(),()=>{St.current+=1}},[s,t,y,G,D]),r.useEffect(()=>{Ve(e.invocation_name),xe(g=>g+1)},[e.invocation_name]),r.useEffect(()=>{G&&N("timeline")},[G]),r.useEffect(()=>{if(!s||y||G)return;const g=K.current.bootstrapConversation;if(!g){Xn(K.current.openingMessage(),Q);return}let w=!1;return Et(!0),(async()=>{try{const O=await g.call(K.current);if(w)return;Q(O.map(Ae))}catch{w||Xn(K.current.openingMessage(),Q)}finally{w||Et(!1)}})(),()=>{w=!0}},[s,y,G,t,le]);const He=r.useCallback(()=>{const g=++Mn.current;(async()=>{var w,O;try{const W=await q(t);if(g!==Mn.current)return;Ze(ce=>W.checklist.length===0&&Array.isArray(ce)&&ce.length>0||JSON.stringify(ce)===JSON.stringify(W.checklist)?ce:W.checklist),ft(null),(O=(w=K.current).seedChecklist)==null||O.call(w,W.checklist)}catch{}})()},[q,t]),$e=r.useCallback(()=>{h&&(async()=>{try{const g=await Ge(t);Te(g),Ie(null)}catch{}})()},[h,Ge,t]),ve=r.useCallback(()=>{if(!p)return;const g=++Un.current;(async()=>{try{const w=await ze(t);if(g!==Un.current)return;Me(O=>JSON.stringify(O)===JSON.stringify(w)?O:w),Xe(null)}catch{}})()},[p,ze,t]),jt=r.useCallback(g=>{const w=K.current.bootstrapConversation;w&&(async()=>{try{const O=await w.call(K.current);if(Ln.current)return;const W=O.map(Ae);let ce=!1;Q(rt=>Ur(rt,W)?rt:(ce=!0,W)),ce&&(g!=null&&g.refreshSidePanelsOnChange)&&(He(),ve())}catch{}})()},[He,ve]),Hs=r.useCallback(g=>{switch(g){case be.checklist:He();return;case be.resources:$e();return;case be.chat:jt();return;case be.timeline:ve();return;case be.all:default:He(),$e(),jt(),ve()}},[He,jt,$e,ve]),$s=xs({enabled:!!(s&&R&&!B),key:ae,cluster:X,isAdmin:j}),Bs=B??$s,Dn=or({enabled:s&&R,channelPrefix:V,agentId:e.id||t,subscribeToPusher:Bs,onRepoll:Hs});r.useEffect(()=>{if(!s||y||G||Dn)return;const g=window.setInterval(()=>{jt({refreshSidePanelsOnChange:!0})},Pr);return()=>{window.clearInterval(g)}},[s,y,G,Dn,t,le,jt]);const Yt=r.useCallback(g=>{var w,O;if(g&&g.length>0){Ze(g),(O=(w=K.current).seedChecklist)==null||O.call(w,g);return}He()},[He]),gn=r.useCallback(g=>{Yt(g.checklist),g.phase&&we(g.phase),$e(),ve()},[Yt,$e,ve]);r.useEffect(()=>{var g,w;!s||y||x&&x.length>0&&((w=(g=K.current).seedChecklist)==null||w.call(g,x))},[s,y,x]),r.useEffect(()=>{if(!s||y)return;let g=!1;return _t(w=>x!=null&&x.length?!1:w||oe===null||oe.length===0),ft(null),(async()=>{var w,O;try{const W=await q(t);if(g)return;x!=null&&x.length||(Ze(W.checklist),(O=(w=K.current).seedChecklist)==null||O.call(w,W.checklist))}catch{!g&&!(x!=null&&x.length)&&ft(Xt)}finally{g||_t(!1)}})(),()=>{g=!0}},[s,t,y,x,q]),r.useEffect(()=>{if(!s||!h)return;let g=!1;return Ye(!0),Ie(null),(async()=>{try{const w=await Ge(t);g||Te(w)}catch{g||Ie(aa)}finally{g||Ye(!1)}})(),()=>{g=!0}},[s,t,h,Ge]);const Fs=r.useCallback(()=>{gt(null),ye(null),We(null),Le(!1)},[]),Gs=r.useCallback(g=>{if(g.misRecordUrl){window.open(g.misRecordUrl,"_blank","noopener,noreferrer");return}gt(g),ye(null),We(null),Le(!0),(async()=>{try{const w=await Lt(t,g.id);ye(w)}catch{We(ra)}finally{Le(!1)}})()},[Lt,t]);r.useEffect(()=>{if(!s||!p)return;let g=!1;return pt(w=>w||Pe===null),Xe(null),(async()=>{try{const w=await ze(t);g||Me(w)}catch{g||Xe(rs)}finally{g||pt(!1)}})(),()=>{g=!0}},[s,t,p,ze]),r.useEffect(()=>{if(!s||!y)return;let g=!1;const w={id:`user-brief-${Date.now()}`,author:me.user,text:Mr(y,Pn.current)};return(async()=>{const O=await K.current.start(y);g||(Q([Ae(K.current.openingMessage()),Ae(w),Ae(O.message)]),Yt(O.checklist),we(O.phase??$.running),$e(),ve())})(),()=>{g=!0}},[s,y,t,Yt,$e,ve]);const mn=I??t,Jt=Pe==null?void 0:Pe.chatSessions,Hn=Jt!=null&&Jt.length?Jt.reduce((g,w)=>Date.parse(w.timestamp)<Date.parse(g.timestamp)?w:g).sessionId:void 0,pn=r.useCallback(()=>{N("chat"),T(!1),le!==mn&&(re(mn),Q([]),Ke(g=>g+1))},[le,mn]),zs=r.useCallback(g=>{if(g===Hn){pn();return}re(g),T(!0),N("chat"),Q([]),Ke(w=>w+1)},[Hn,pn]),qs=r.useCallback(async()=>{var g;se(null),Dt(!0);try{await K.current.pause(),St.current+=1,we($.paused),bt(!0);const w={...st.current,status:k.paused};st.current=w,(g=he.current)==null||g.call(he,w)}catch{se(ia)}finally{Dt(!1)}},[]),Vs=r.useCallback(async()=>{var w;se(null),$t(!0);let g=!1;try{await K.current.resume(),g=!0,St.current+=1,we($.running),bt(!1);const O={...st.current,status:k["generating-a-response"]};st.current=O,(w=he.current)==null||w.call(he,O),Et(!0);const W={id:`wake-${Date.now()}`,author:me.user,text:Bn};Q(rt=>[...rt,Ae(W)]);const ce=await K.current.sendMessage(Bn);Q(rt=>[...rt,Ae(ce.message)]),gn(ce)}catch{se(g?xa:va)}finally{$t(!1),Et(!1)}},[gn]),Ks=r.useCallback(async()=>{se(null),et(null),Ft(!0);try{await Se(t),Nt(!1),J==null||J(),a()}catch{et(Nn),se(Nn)}finally{Ft(!1)}},[t,Se,J,a]),Ys=r.useCallback(async()=>{se(null),c(null),zt(!0);try{await je(t),On(null),we($.paused),bt(!0),N("chat"),tt(!1),ee==null||ee()}catch{c(kn),se(kn)}finally{zt(!1)}},[t,je,ee]),Js=r.useCallback(async()=>{se(null),de(null),C(!0);try{await ot(t),fe(!1),pe==null||pe(),a()}catch(g){de(Ss(g))}finally{C(!1)}},[t,ot,pe,a]),Ws=r.useCallback(g=>{const w=g.trim(),O=Z;if(ut(null),!w){xe(W=>W+1);return}w!==O&&(Ve(w),(async()=>{try{await qe(t,w)}catch{Ve(O),xe(W=>W+1),ut(wa)}})())},[Z,t,qe]),Xs=r.useCallback(()=>{if(!j||Ue||xt)return;const g=++at.current;wt(!0),yt(null),(async()=>{try{const w=await _e(t);if(at.current!==g)return;vt(w),De(!0)}catch{at.current===g&&yt(sa)}finally{at.current===g&&wt(!1)}})()},[j,Ue,xt,_e,t]),Zs=oe;return n.jsxs(n.Fragment,{children:[n.jsxs(u.Modal,{open:s,closeHandler:a,hideCloseButton:!0,className:"agent-workspace",children:[n.jsxs(u.Modal.Header,{className:"agent-workspace__header",children:[n.jsxs("div",{className:"agent-workspace__header-title",children:[n.jsx("span",{className:"agent-workspace__header-avatar","aria-hidden":"true",children:n.jsx(u.Icon,{name:"ask-arbor",size:24})}),n.jsx(u.Modal.Title,{children:G?n.jsx("span",{className:"agent-workspace__header-name",children:Z}):n.jsx(u.EditableText,{className:"agent-workspace__header-name",text:Z,onEditSave:Ws},ct)}),n.jsx("span",{className:Y("agent-workspace__phase",`agent-workspace__phase--${te}`),children:Ca[te]}),G?n.jsx("span",{className:"agent-workspace__phase agent-workspace__phase--archived",children:"Archived"}):null,Re&&n.jsx("p",{className:"agent-workspace__error agent-workspace__name-error",role:"alert",children:Re})]}),n.jsxs("div",{className:"agent-workspace__header-actions",children:[n.jsx(u.Button,{variant:Vt?"secondary":"primary",size:"S",iconLeftName:"clipboard-list",iconLeftScreenReaderText:"Toggle checklist","aria-pressed":!Vt,onClick:()=>Us(g=>!g),children:"Checklist"}),n.jsx(u.Button,{variant:Kt?"secondary":"primary",size:"S",iconLeftName:"files",iconLeftScreenReaderText:"Toggle resources","aria-pressed":!Kt,onClick:()=>Ds(g=>!g),children:"Resources"}),n.jsx(u.Button,{variant:"secondary",size:"S",iconLeftName:"x",iconLeftScreenReaderText:"Close",onClick:a,children:"Close"})]})]}),n.jsxs(u.Modal.Body,{className:Y("agent-workspace__body",{"agent-workspace__body--no-checklist":Vt,"agent-workspace__body--no-resources":Kt}),children:[n.jsxs("section",{className:Y("agent-workspace__panel","agent-workspace__panel--chat",{"agent-workspace__panel--timeline":!!p&&(G||ue==="timeline")}),"aria-label":"Agent",children:[n.jsxs("div",{className:"agent-workspace__panel-header",children:[n.jsx(u.Heading,{level:4,children:"Agent"}),o&&!Ct&&!G&&te===$.running&&n.jsx(u.Button,{className:"agent-workspace__panel-header-action",variant:"secondary-destructive",size:"S",iconLeftName:"circle-x",iconLeftScreenReaderText:"Pause",disabled:At,onClick:()=>void qs(),children:At?"Pausing…":"Pause agent"}),v&&!Ct&&!G&&te===$.paused&&Ps&&n.jsx(u.Button,{className:"agent-workspace__panel-header-action",variant:"secondary",size:"S",iconLeftName:"iteration-ccw",iconLeftScreenReaderText:"Resume",disabled:Ht,onClick:()=>void Vs(),children:Ht?"Resuming…":"Resume agent"}),E&&!Ct&&!G&&n.jsx(u.Button,{className:"agent-workspace__panel-header-action",variant:"secondary",size:"S",iconLeftName:"archive",iconLeftScreenReaderText:"Archive",onClick:()=>{et(null),se(null),Nt(!0)},children:"Archive agent"}),S&&!Ct&&G&&n.jsx(u.Button,{className:"agent-workspace__panel-header-action",variant:"secondary",size:"S",onClick:()=>{c(null),se(null),tt(!0)},children:"Unarchive agent"}),j&&G&&n.jsx(u.Button,{className:"agent-workspace__panel-header-action",variant:"secondary-destructive",size:"S",onClick:()=>{de(null),se(null),fe(!0)},children:"Delete agent"})]}),kt&&n.jsx("p",{className:"agent-workspace__error agent-workspace__lifecycle-error",role:"alert",children:kt}),p&&!G&&n.jsxs(u.Tabs,{className:"agent-workspace__center-tabs","aria-label":"Center panel",children:[n.jsx(u.Tabs.Item,{active:ue==="chat",tabElementProps:{id:"agent-center-tab-chat",onClick:()=>N("chat")},children:"Chat"}),n.jsx(u.Tabs.Item,{active:ue==="timeline",tabElementProps:{id:"agent-center-tab-timeline",onClick:()=>N("timeline")},children:"Timeline"})]}),p&&!G&&ue==="chat"&&L&&n.jsx("div",{className:"agent-workspace__center-back",children:n.jsx(u.Button,{variant:"tertiary",size:"S",iconLeftName:"arrow-left",iconLeftScreenReaderText:"Back to main chat",onClick:pn,children:"Back to main chat"})}),p&&(G||ue==="timeline")&&n.jsx(sr,{timeline:Pe,isLoading:ln,error:Pt,onOpenChatSession:G?void 0:zs}),!G&&n.jsx("div",{className:"agent-workspace__chat-keep-alive",hidden:!!p&&ue!=="chat",children:n.jsx(Ba,{connector:F,phase:te,chatHistory:ie,chatSessionKey:dt,readOnly:Ct,enableUpload:P,onTurn:gn,onAwaitingChange:Et})}),G&&!p&&n.jsx("p",{className:"agent-workspace__timeline-status",role:"status",children:"Chat is not available for archived agents."})]}),!Vt&&n.jsx(Fa,{checklist:Zs,isLoading:Qe,error:Mt,phase:te,adminMode:j,context:Ut,contextLoaded:Ue,contextLoading:xt,contextError:on,onContextSelect:Xs},t),!Kt&&n.jsx(qa,{resources:sn,isLoading:an,error:Je,onOpenResource:Gs}),n.jsx(Ga,{resource:ht,html:rn,isLoading:Oe,error:mt,onClose:Fs})]})]}),n.jsx(us,{open:cn,isInProgress:te===$.running||te===$.paused&&!gs(oe??void 0),isArchiving:Bt,error:un,onCancel:()=>{Bt||(et(null),Nt(!1))},onConfirm:()=>{Ks()}}),n.jsx(hs,{open:dn,isUnarchiving:Gt,error:qt,onCancel:()=>{Gt||(c(null),tt(!1))},onConfirm:()=>{Ys()}}),n.jsx(ds,{open:ne,isDeleting:b,error:nt,onCancel:()=>{b||(de(null),fe(!1))},onConfirm:()=>{Js()}})]})},Dr="Unable to load agent definitions. Please try again.",Hr="Unable to start the agent.",Zn="Loading agents…",$r="Which agent?",Br="Select an agent",Fr="What do you want to call this agent?",Gr="Science Museum Trip, or Governor's Report",zr="Make this something you can easily recognise that relates to the task the agent is carrying out.",Qn="new-agent-invocation-name-hint",es=(e,t)=>{const s=t==null?void 0:t.trim();if(s)return e.find(a=>a.ref===s)??e.find(a=>a.display_name===s)},qr=(e,t)=>`${e.replace(/\/+$/,"")}/${encodeURIComponent(t)}`,Is=({open:e,onClose:t,onStart:s,agentDefinitions:a,definitionsState:i="idle",definitionsError:d=null,onRetryDefinitions:l,embedded:m=!1,preselectAgent:h})=>{const[p,_]=r.useState(void 0),[A,o]=r.useState(""),[v,E]=r.useState(!1),[S,I]=r.useState(null),P=[...a].sort((R,V)=>R.display_name.localeCompare(V.display_name)).map(R=>({value:R.ref,label:R.display_name}));r.useEffect(()=>{e&&(o(""),E(!1),I(null),_(es(a,h)))},[e,h]),r.useEffect(()=>{if(!e)return;const R=es(a,h);R&&_(V=>V??R)},[e,h,a]);const j=p!==void 0&&A.trim().length>0,y=r.useCallback(R=>{const V=a.find(ae=>ae.ref===R[0]);V&&_(V)},[a]),f=r.useCallback(async()=>{if(!(!p||!j||v)){E(!0),I(null);try{await s({definition:p,invocationName:A.trim()})}catch(R){I(R instanceof Error?R.message:Hr)}finally{E(!1)}}},[j,p,A,v,s]);if(i==="idle"&&a.length===0||!e)return null;let x;return i==="loading"?x=n.jsxs("div",{className:"new-agent__state","aria-live":"polite",children:[n.jsx(u.Icon,{name:"loader",size:24,color:"var(--color-brand-600)",className:"new-agent__spinner",screenReaderText:Zn}),n.jsx("p",{className:"new-agent__state-message",children:Zn})]}):i==="error"?x=n.jsxs("div",{className:"new-agent__state new-agent__state--error",role:"alert",children:[n.jsx(u.Icon,{name:"triangle-alert",size:24,color:"var(--color-semantic-destructive-600)"}),n.jsx("p",{className:"new-agent__state-message",children:d??Dr}),l?n.jsx(u.Button,{variant:"secondary",size:"S",onClick:l,children:"Try again"}):null]}):x=n.jsxs("form",{className:"new-agent__form","aria-label":"Start an agent",onSubmit:R=>{R.preventDefault(),j&&!v&&f()},children:[n.jsxs("div",{className:"new-agent__type-field",children:[n.jsx("label",{className:"new-agent__type-label",htmlFor:"new-agent-type",children:$r}),n.jsx(u.SelectDropdown,{id:"new-agent-type",placeholder:Br,options:P,selectedValues:p?[p.ref]:[],onSelectionChange:y,"aria-describedby":p!=null&&p.description?"new-agent-type-description":void 0}),p!=null&&p.description?n.jsx("p",{className:"new-agent__field-hint",id:"new-agent-type-description",children:p.description}):null]}),n.jsxs("div",{className:"new-agent__type-field",children:[n.jsx("label",{className:"new-agent__type-label",htmlFor:"new-agent-invocation-name",children:Fr}),n.jsx("p",{className:"new-agent__field-hint",id:Qn,children:zr}),n.jsx(u.TextInput,{id:"new-agent-invocation-name",value:A,placeholder:Gr,"aria-describedby":Qn,onChange:R=>o(R.target.value)})]}),S?n.jsx("p",{className:"new-agent__error",role:"alert",children:S}):null,n.jsx("div",{className:"new-agent__actions",children:n.jsx(u.Button,{type:"submit",variant:"primary",className:Y("new-agent__start-button",{"new-agent__start-button--starting":v}),disabled:!j||v,iconLeftName:v?"loader":"sparkles",iconLeftScreenReaderText:v?"Starting":void 0,children:v?"Starting…":"Start"})})]}),m?n.jsx("div",{className:Y("new-agent","new-agent--embedded"),children:n.jsx("div",{className:"new-agent__body",children:x})}):n.jsxs(u.Modal,{open:e,closeHandler:t,className:"new-agent",children:[n.jsx(u.Modal.Title,{children:"Start an agent"}),n.jsx(u.Modal.Body,{className:"new-agent__body",children:x})]})},An=e=>{window.location.assign(e)},Vr=({open:e,authToken:t,headers:s,agentDefinitionsUrl:a,agentsUrl:i,closeUrl:d,successUrl:l,viewAgentUrlPrefix:m,preselectAgent:h,onClose:p,onStart:_,embedded:A=!1})=>{const o=JSON.stringify(s??{}),v=r.useMemo(()=>new nn({token:t,headers:s,urls:{agentDefinitions:a,agents:i}}),[t,a,i,o]),[E,S]=r.useState([]),[I,P]=r.useState("loading"),[j,y]=r.useState(null),[f,x]=r.useState(0);r.useEffect(()=>{if(!e)return;let X=!1;return P("loading"),y(null),(async()=>{try{const B=await v.listAgentDefinitions();if(X)return;S(B.map(Rn)),P("idle")}catch(B){if(X)return;S([]),y(Es(B)),P("error")}})(),()=>{X=!0}},[v,e,f]);const R=r.useCallback(()=>{p==null||p(),d&&An(d)},[d,p]),V=r.useCallback(async X=>{const B=await v.createAgent(X.definition.ref,{invocationName:X.invocationName}),J={id:B.id};_==null||_(X,J);const ee=m==null?void 0:m.trim();if(ee){An(qr(ee,B.id));return}l&&An(l)},[v,_,l,m]),ae=r.useCallback(()=>{x(X=>X+1)},[]);return n.jsx(Is,{open:e,onClose:R,onStart:V,agentDefinitions:E,definitionsState:I,definitionsError:j,onRetryDefinitions:ae,embedded:A,preselectAgent:h})},Kr=e=>"agentDefinitionsUrl"in e,Os=e=>Kr(e)?n.jsx(Vr,{...e}):n.jsx(Is,{...e}),Yr=({open:e,onClose:t})=>{const s=r.useId(),a=r.useId();return n.jsxs(u.Modal,{open:e,closeHandler:t,className:"archive-agent-confirm",children:[n.jsx(u.Modal.Header,{className:"archive-agent-confirm__header",children:n.jsx(u.Modal.Title,{id:s,children:Na})}),n.jsxs(u.Modal.Body,{className:"archive-agent-confirm__body",children:[n.jsx("div",{role:"alertdialog","aria-labelledby":s,"aria-describedby":a,children:n.jsx("p",{id:a,className:"archive-agent-confirm__lead",children:ka})}),n.jsx("div",{className:"archive-agent-confirm__actions",children:n.jsx(u.Button,{variant:"secondary",size:"S",onClick:t,children:"Close"})})]})]})},Jr=3,Wr=56,Xr=e=>e.archivedAt?"archived":e.status===k.paused?"paused":null,Zr=e=>{if(e==="archived")return ea;if(e==="paused")return lt[k.paused].statusIcon},Qr=({column:e,overlayIcon:t,label:s})=>{const a=t??e.statusIcon;return a?n.jsx("span",{className:"agent-view__status-indicator",children:n.jsx(u.Icon,{name:a.name,size:16,color:a.color,className:Y({"agent-view__progress-icon--spinning":a.spin}),screenReaderText:s})}):n.jsx("span",{className:Y("agent-view__dot",{[`agent-view__dot--${e.dotModifier}`]:e.dotModifier}),children:n.jsx(u.Dot,{colour:e.dotColour,label:s})})},Ls=({agent:e,agentName:t,column:s,isExpanded:a,isLoading:i,checklist:d,error:l,canArchive:m,canUnarchive:h=!1,canDelete:p=!1,onToggle:_,onViewAgent:A,onArchive:o,onUnarchive:v,onDelete:E})=>{const{id:S,invocation_name:I}=e,P=`agent-card-${S}-header`,j=`agent-card-${S}-progress`,y=Xr(e),f=Zr(y);return n.jsx("li",{className:Y("agent-view__card",{"agent-view__card--expanded":a,"agent-view__card--paused":y==="paused","agent-view__card--archived":y==="archived","agent-view__card--view-only":!e.usable}),children:n.jsxs(u.Card,{spacing:"dense",children:[n.jsx("button",{type:"button",className:"agent-view__card-toggle","aria-expanded":a,"aria-controls":j,"aria-label":I,id:P,onClick:()=>_(S),children:n.jsxs("div",{className:"agent-view__card-content",children:[n.jsx(Qr,{column:s,overlayIcon:f}),n.jsx("span",{className:"agent-view__card-invocation-name",children:I}),n.jsx("span",{className:"agent-view__card-agent-name",children:t}),y==="paused"?n.jsx("span",{className:"agent-view__card-state-pill",children:"Paused"}):null,y==="archived"?n.jsx("span",{className:"agent-view__card-state-pill",children:"Archived"}):null,e.usable?null:n.jsx("span",{className:"agent-view__card-state-pill",children:"View only"}),n.jsx(u.Icon,{name:a?"chevron-up":"chevron-down",size:16,className:"agent-view__card-chevron"})]})}),a&&n.jsxs("div",{id:j,"aria-labelledby":P,className:"agent-view__card-progress",children:[i&&n.jsxs("div",{className:"agent-view__progress-loading","aria-live":"polite",children:[n.jsx(u.Icon,{name:"loader",size:16,color:"var(--color-brand-600)",className:"agent-view__progress-icon--spinning",screenReaderText:it}),n.jsx("span",{children:it})]}),!i&&l&&n.jsx("p",{className:"agent-view__progress-error",role:"alert",children:l}),!i&&!l&&d!==null&&n.jsx(Da,{checklist:d}),!i&&!l&&d===null&&n.jsxs("div",{className:"agent-view__progress-loading","aria-live":"polite",children:[n.jsx(u.Icon,{name:"loader",size:16,color:"var(--color-brand-600)",className:"agent-view__progress-icon--spinning",screenReaderText:it}),n.jsx("span",{children:it})]}),n.jsxs("div",{className:"agent-view__card-actions",children:[m?n.jsx(u.Button,{variant:"secondary",size:"S",iconLeftName:"archive",iconLeftScreenReaderText:"Archive",onClick:()=>o==null?void 0:o(e),children:"Archive"}):h?n.jsx(u.Button,{variant:"secondary",size:"S",onClick:()=>v==null?void 0:v(e),children:"Unarchive"}):p?n.jsx(u.Button,{variant:"secondary-destructive",size:"S",onClick:()=>E==null?void 0:E(e),children:"Delete"}):n.jsx("span",{}),h&&p?n.jsx(u.Button,{variant:"secondary-destructive",size:"S",onClick:()=>E==null?void 0:E(e),children:"Delete"}):null,n.jsx(u.Button,{variant:"secondary",size:"S",onClick:()=>A==null?void 0:A(e),children:"View agent"})]})]})]})})},ei=()=>n.jsx("ul",{className:"agent-view__card-list","aria-hidden":"true",children:Array.from({length:Jr},(e,t)=>n.jsx("li",{className:"agent-view__card agent-view__card--skeleton",children:n.jsx(u.Skeleton,{className:"agent-view__card-skeleton",width:"100%",height:Wr})},t))}),ts=({column:e,agents:t,expandedAgentId:s,loadingAgentId:a,checklistByInvocationId:i,errorByAgentId:d,definitionNameByRef:l,onToggleAgent:m,onViewAgent:h,onArchiveAgent:p,canArchive:_,isLoading:A=!1})=>n.jsxs("section",{className:"agent-view__column","aria-label":e.title,children:[n.jsxs("div",{className:"agent-view__column-header",children:[n.jsx(u.Heading,{level:4,children:e.title}),n.jsx("span",{className:"agent-view__column-count",children:A?0:t.length})]}),A?n.jsx(ei,{}):n.jsx("ul",{className:"agent-view__card-list",children:t.map(o=>n.jsx(Ls,{agent:o,agentName:Zt(o,l),column:e,isExpanded:s===o.id,isLoading:a===o.id,checklist:i[o.invocation_id]??null,error:d[o.id]??null,canArchive:_&&!o.archivedAt&&o.usable,onToggle:m,onViewAgent:h,onArchive:p},o.id))})]}),Zt=(e,t)=>t.get(e.agent_definition_ref)??e.agent_definition_ref.replace(/_/g," "),ti=({jwt:e,headers:t,agentDefinitionsUrl:s,agentsUrl:a,agentUrl:i,agentChecklistUrl:d,agentResourcesUrl:l,agentTimelineUrl:m,agentChatUrl:h,agentConversationUrl:p,pauseAgentUrl:_,resumeAgentUrl:A,archiveAgentUrl:o,unarchiveAgentUrl:v,enableUpload:E,adminMode:S=!1,showHeader:I=!1,institutions:P,usePusherToRepoll:j=!1,pusherChannelPrefix:y=jn,pusherKey:f,pusherCluster:x,subscribeToPusher:R,selectedAgent:V,scope:ae=ls})=>{var qt;const X=r.useMemo(()=>({agentDefinitions:s,agents:a,agent:i,agentChecklist:d,...l?{agentResources:l}:{},...m?{agentTimeline:m}:{},agentChat:h,agentConversation:p,...o?{archiveAgent:o}:{},...v?{unarchiveAgent:v}:{}}),[s,a,i,d,l,m,h,p,o,v]),[B,J]=r.useState(null),ee=B?(qt=P==null?void 0:P.find(c=>c.applicationId===B.application_id))==null?void 0:qt.applicationUrl:void 0,pe=r.useMemo(()=>{const c={...t??{}};return ee?c[Be.arborApplicationUrl]=ee:delete c[Be.arborApplicationUrl],c},[t,ee]),{agents:M,agentDefinitions:le,loadState:re,loadError:ue,reload:N,refresh:L,fetchAgentChecklist:T,createAgent:F,archiveAgent:D,unarchiveAgent:q,deleteAgent:_e,removeAgent:Ge,replaceAgent:Lt}=js({jwt:e,headers:pe,urls:X,scope:ae}),[ze,qe]=r.useState(!1),[Se,je]=r.useState(null),[ot,K]=r.useState(null),[Z,Ve]=r.useState({}),[ct,xe]=r.useState({}),[Re,ut]=r.useState([]),[te,we]=r.useState([]),[ie,Q]=r.useState(null),[dt,Ke]=r.useState(!1),[sn,Te]=r.useState(null),[an,Ye]=r.useState(!1),[Je,Ie]=r.useState(null),[ht,gt]=r.useState(!1),[rn,ye]=r.useState(null),[Oe,Le]=r.useState(null),[mt,We]=r.useState(!1),[Pe,Me]=r.useState(null),[ln,pt]=r.useState(!1),Pt=r.useRef(!1);r.useEffect(()=>{J(c=>{if(!c)return null;const b=M.find(C=>C.id===c.id||C.invocation_id===c.invocation_id||C.invocation_id===c.id);return b||(re==="loading"?c:null)})},[M,re]),r.useEffect(()=>{if(!V||Pt.current||re==="loading")return;Pt.current=!0;const c=M.find(({id:b})=>b===V);if(c){J(c);return}pt(!0)},[V,M,re]);const Xe=r.useMemo(()=>{const c=new Set(M.map(C=>C.application_id)),b=new Map((P??[]).map(C=>[C.applicationId,C.name]));return[...c].sort((C,ne)=>(b.get(C)??C).localeCompare(b.get(ne)??ne)).map(C=>({value:C,label:b.get(C)??C}))},[M,P]),oe=r.useMemo(()=>new Map(le.map(c=>[c.ref,c.display_name])),[le]),Ze=r.useMemo(()=>[...new Set(M.map(b=>Zt(b,oe)))].sort((b,C)=>b.localeCompare(C)).map(b=>({value:b,label:b})),[M,oe]),Qe=r.useMemo(()=>M.filter(c=>!(Re.length>0&&!Re.includes(c.application_id)||te.length>0&&!te.includes(Zt(c,oe)))),[M,oe,te,Re]),_t=Xe.length>1,Mt=Ze.length>1,ft=_t||Mt;r.useEffect(()=>{const c=window.setInterval(()=>{L()},6e4);return()=>{window.clearInterval(c)}},[L]),r.useEffect(()=>{if(M.length===0)return;let c=!1;return(async()=>{const b=await Promise.allSettled(M.map(async C=>{const ne=await T(C.invocation_id);return{agentId:C.id,invocationId:C.invocation_id,checklist:ne.checklist}}));c||(Ve(C=>{const ne={...C};let fe=!1;for(const nt of b){if(nt.status!=="fulfilled")continue;const{invocationId:de,checklist:kt}=nt.value;JSON.stringify(C[de])!==JSON.stringify(kt)&&(ne[de]=kt,fe=!0)}return fe?ne:C}),xe(C=>{const ne={...C};let fe=!1;return b.forEach((nt,de)=>{nt.status==="rejected"&&ne[M[de].id]!==Xt&&(ne[M[de].id]=Xt,fe=!0)}),fe?ne:C}))})(),()=>{c=!0}},[M,T]);const Ut=r.useCallback(async c=>{if(!Z[c.invocation_id]){K(c.id),xe(b=>{const C={...b};return delete C[c.id],C});try{const b=await T(c.invocation_id);Ve(C=>({...C,[c.invocation_id]:b.checklist}))}catch{xe(b=>({...b,[c.id]:Xt}))}finally{K(b=>b===c.id?null:b)}}},[T,Z]),vt=r.useCallback(c=>{if(Se===c){je(null);return}const b=M.find(({id:C})=>C===c);b&&(je(c),Ut(b))},[M,Se,Ut]),Ue=r.useMemo(()=>Qe.filter(c=>!!c.archivedAt),[Qe]),De=r.useMemo(()=>Qe.filter(c=>!c.archivedAt),[Qe]),xt=r.useMemo(()=>{const c={};for(const b of De){const C=vn(b,Z[b.invocation_id]);(c[C]??(c[C]=[])).push(b)}return c},[De,Z]),wt=re==="loading"&&M.length===0,on=De.length>0&&De.some(c=>Z[c.invocation_id]===void 0&&ct[c.id]===void 0),yt=wt||on,At=r.useCallback(c=>{J(c)},[]),Dt=r.useCallback(c=>{Te(null),Q(c)},[]),Ht=r.useCallback(()=>{dt||(Te(null),Q(null))},[dt]),$t=r.useCallback(async()=>{if(ie){Ke(!0),Te(null),xe(c=>{const b={...c};return delete b[ie.id],b});try{await D(ie.invocation_id),J(c=>(c==null?void 0:c.id)===ie.id?null:c),je(ie.id),Ye(!0),Q(null)}catch{Te(Nn)}finally{Ke(!1)}}},[ie,D]),Bt=r.useCallback(c=>{ye(null),Ie(c)},[]),Ft=r.useCallback(()=>{ht||(ye(null),Ie(null))},[ht]),cn=r.useCallback(async()=>{if(Je){gt(!0),ye(null);try{await q(Je.invocation_id),Ie(null)}catch{ye(kn)}finally{gt(!1)}}},[Je,q]),Nt=ie?vn(ie,Z[ie.invocation_id])!==k.complete:!1,un=r.useCallback(async c=>{const b=await F(c);J(b),qe(!1)},[F]),et=r.useCallback(c=>{Me(null),Le(c)},[]),Gt=r.useCallback(()=>{mt||(Me(null),Le(null))},[mt]),zt=r.useCallback(async()=>{if(Oe){We(!0),Me(null);try{await _e(Oe.invocation_id),J(c=>(c==null?void 0:c.id)===Oe.id?null:c),Le(null)}catch(c){Me(Ss(c))}finally{We(!1)}}},[Oe,_e]),dn=r.useCallback(()=>{J(null)},[]),tt={expandedAgentId:Se,loadingAgentId:ot,checklistByInvocationId:Z,errorByAgentId:ct,definitionNameByRef:oe,onToggleAgent:vt,onViewAgent:At,onArchiveAgent:Dt,canArchive:!!o};return n.jsxs("div",{className:"agent-view-frontend agent-view",children:[I&&n.jsxs("div",{className:"agent-view__header",children:[n.jsx(u.Heading,{level:1,children:"Agents"}),n.jsx(u.Button,{variant:"primary",size:"S",iconLeftName:"sparkles",iconLeftScreenReaderText:"Start an agent",onClick:()=>qe(!0),children:"Start an agent"})]}),M.length>0&&ft&&n.jsxs("div",{className:"agent-view__filters",children:[_t&&n.jsxs("div",{className:"agent-view__filter",children:[n.jsx("label",{className:"agent-view__filter-label",htmlFor:"agent-view-institution-filter",children:"Institution"}),n.jsx(u.Combobox,{id:"agent-view-institution-filter",triggerVariant:"button",multiple:!0,searchType:"substring",placeholder:"All institutions",options:Xe,value:Re,onValueChange:ut,showSelectionCountBadge:!0,showClearAll:!0,clearAllLabel:"Clear institutions"})]}),Mt&&n.jsxs("div",{className:"agent-view__filter",children:[n.jsx("label",{className:"agent-view__filter-label",htmlFor:"agent-view-agent-filter",children:"Agent"}),n.jsx(u.Combobox,{id:"agent-view-agent-filter",triggerVariant:"button",multiple:!0,searchType:"substring",placeholder:"All agents",options:Ze,value:te,onValueChange:we,showSelectionCountBadge:!0,showClearAll:!0,clearAllLabel:"Clear agents"})]})]}),re==="error"?n.jsxs("div",{className:"agent-view__state agent-view__state--error",role:"alert",children:[n.jsx(u.Icon,{name:"triangle-alert",size:24,color:"var(--color-semantic-destructive-600)"}),n.jsx("p",{className:"agent-view__state-message",children:ue??is}),n.jsx(u.Button,{variant:"secondary",size:"S",onClick:N,children:"Try again"})]}):yt?n.jsx("div",{className:"agent-view__board","aria-busy":"true","aria-live":"polite",children:$n.map(c=>n.jsx(ts,{column:lt[c],agents:[],isLoading:!0,...tt},c))}):M.length===0?n.jsx(Ta,{}):n.jsxs(n.Fragment,{children:[n.jsx("div",{className:"agent-view__board",children:$n.map(c=>n.jsx(ts,{column:lt[c],agents:xt[c]??[],...tt},c))}),Ue.length>0?n.jsxs("details",{className:"agent-view__archived",open:an,onToggle:c=>{Ye(c.currentTarget.open)},children:[n.jsxs("summary",{className:"agent-view__archived-summary",children:[n.jsx(u.Heading,{level:4,children:"Archived"}),n.jsx("span",{className:"agent-view__column-count",children:Ue.length})]}),n.jsx("ul",{className:"agent-view__card-list agent-view__archived-list",children:Ue.map(c=>n.jsx(Ls,{agent:c,agentName:Zt(c,oe),column:lt[vn(c,Z[c.invocation_id])],isExpanded:Se===c.id,isLoading:ot===c.id,checklist:Z[c.invocation_id]??null,error:ct[c.id]??null,canArchive:!1,canUnarchive:!!v&&c.usable,canDelete:S&&c.usable,onToggle:vt,onViewAgent:At,onUnarchive:Bt,onDelete:et},c.id))})]}):null]}),B&&n.jsx(Ts,{agent:B,invocationId:B.invocation_id,open:!0,jwt:e,headers:pe,agentUrl:i,agentChecklistUrl:d,agentResourcesUrl:l,agentTimelineUrl:m,agentChatUrl:h,agentConversationUrl:p,pauseAgentUrl:_,resumeAgentUrl:A,archiveAgentUrl:o,unarchiveAgentUrl:v,enableUpload:E,adminMode:S,initialChecklist:Z[B.invocation_id]??null,usePusherToRepoll:j,pusherChannelPrefix:y,pusherKey:f,pusherCluster:x,subscribeToPusher:R,onClose:dn,onAgentUpdated:Lt,onArchived:()=>{je(B.id),Ye(!0),L()},onUnarchived:()=>{L()},onDeleted:()=>{Ge(B.invocation_id)}},B.id||B.invocation_id),n.jsx(us,{open:!!ie,isInProgress:Nt,isArchiving:dt,error:sn,onCancel:Ht,onConfirm:()=>{$t()}}),n.jsx(hs,{open:!!Je,isUnarchiving:ht,error:rn,onCancel:Ft,onConfirm:()=>{cn()}}),n.jsx(ds,{open:!!Oe,isDeleting:mt,error:Pe,onCancel:Gt,onConfirm:()=>{zt()}}),n.jsx(Yr,{open:ln,onClose:()=>pt(!1)}),n.jsx(Os,{open:ze,onClose:()=>qe(!1),onStart:un,agentDefinitions:le})]})},ni=(e,t)=>{const s=Date.now(),a=t.trim()||e.agent_intent;return{id:`agent-${s}`,invocation_id:`inv-${s}`,agent_definition_ref:e.ref,agent_intent:e.agent_intent,invocation_name:a,application_id:ta,created_by:na,usable:!0,status:k["generating-a-response"],archivedAt:null,context_ref:null,checklist_ref:null}};exports.AgentMonitorKanban=ti;exports.AgentServiceClient=nn;exports.AgentServiceError=Fe;exports.AgentView=Ts;exports.DEFAULT_PUSHER_CHANNEL_PREFIX=jn;exports.HttpChatConnector=Cs;exports.MESSAGE_TYPE_REPOLL=Cn;exports.NewAgentModal=Os;exports.PUSHER_AGENT_MESSAGE_EVENT=_s;exports.REPOLL_TARGET=be;exports.buildAgentFromDefinition=ni;exports.buildAgentPusherChannel=fs;exports.createHttpChatConnectorFactory=In;exports.formatUserFileChatCardText=Ar;exports.mapApiAgent=Ce;exports.mapApiAgentDefinition=Rn;exports.mapApiAgentStatus=ws;exports.mapApiAgentTimelineResponse=ks;exports.mapApiChecklistEndpointResponse=tn;exports.mapApiChecklistItem=Tn;exports.mapApiChecklistResponse=wr;exports.mapApiChecklistStatus=ys;exports.mapApiConversationMessages=bs;exports.mapApiOpeningMessage=Ot;exports.mapApiResource=As;exports.mapApiResourcesEndpointResponse=Ns;exports.mapApiTripOption=_r;exports.parseConversationContentCaption=yr;exports.parseRepollMessages=vs;exports.useAgentService=js;exports.useAgentWorkspace=Rs;exports.useSubscribeToPusher=xs;
|
package/dist/index.d.ts
CHANGED
|
@@ -637,7 +637,8 @@ export declare type NewAgentModalControlledProps = {
|
|
|
637
637
|
/** When true, render inline (no design-system Modal portal). */
|
|
638
638
|
embedded?: boolean;
|
|
639
639
|
/**
|
|
640
|
-
* Pre-select a definition by `ref` (API `name` today
|
|
640
|
+
* Pre-select a definition by `ref` (API `name` today; dropdown value), then
|
|
641
|
+
* `display_name` if no `ref` match. Temporary until API `code`.
|
|
641
642
|
*/
|
|
642
643
|
preselectAgent?: string;
|
|
643
644
|
};
|
|
@@ -664,7 +665,8 @@ export declare type NewAgentModalStandaloneProps = {
|
|
|
664
665
|
*/
|
|
665
666
|
viewAgentUrlPrefix?: string;
|
|
666
667
|
/**
|
|
667
|
-
* Pre-select a definition by `ref` (API `name` today
|
|
668
|
+
* Pre-select a definition by `ref` (API `name` today; dropdown value), then
|
|
669
|
+
* `display_name` if no `ref` match. Temporary until API `code`.
|
|
668
670
|
* All definitions remain available; the matching one is selected on open.
|
|
669
671
|
*/
|
|
670
672
|
preselectAgent?: string;
|
package/dist/index.js
CHANGED
|
@@ -3234,7 +3234,7 @@ const Ia = (e, t) => (a) => {
|
|
|
3234
3234
|
}, ri = "Unable to load agent definitions. Please try again.", ii = "Unable to start the agent.", la = "Loading agents…", oi = "Which agent?", li = "Select an agent", ci = "What do you want to call this agent?", di = "Science Museum Trip, or Governor's Report", ui = "Make this something you can easily recognise that relates to the task the agent is carrying out.", ca = "new-agent-invocation-name-hint", da = (e, t) => {
|
|
3235
3235
|
const a = t == null ? void 0 : t.trim();
|
|
3236
3236
|
if (a)
|
|
3237
|
-
return e.find((s) => s.ref === a);
|
|
3237
|
+
return e.find((s) => s.ref === a) ?? e.find((s) => s.display_name === a);
|
|
3238
3238
|
}, hi = (e, t) => `${e.replace(/\/+$/, "")}/${encodeURIComponent(t)}`, Ua = ({
|
|
3239
3239
|
open: e,
|
|
3240
3240
|
onClose: t,
|
|
@@ -3314,7 +3314,7 @@ const Ia = (e, t) => (a) => {
|
|
|
3314
3314
|
options: M,
|
|
3315
3315
|
selectedValues: _ ? [_.ref] : [],
|
|
3316
3316
|
onSelectionChange: A,
|
|
3317
|
-
"aria-
|
|
3317
|
+
"aria-describedby": _ != null && _.description ? "new-agent-type-description" : void 0
|
|
3318
3318
|
}
|
|
3319
3319
|
),
|
|
3320
3320
|
_ != null && _.description ? /* @__PURE__ */ n("p", { className: "new-agent__field-hint", id: "new-agent-type-description", children: _.description }) : null
|
package/dist/style.css
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
.agent-view-frontend{--page-heading-spacing-gap: 0px;--modal-header-spacing-padding: 0px}.agent-workspace{--page-heading-spacing-gap: 0px}.scrollable-region{position:relative;isolation:isolate;display:flex;flex:1;flex-direction:column;min-height:0;min-width:0}.scrollable-region__viewport{flex:1;min-height:0;overflow:hidden auto}.scrollable-region__overlay{position:absolute;z-index:2;pointer-events:none}.scrollable-region__overlay .scrollable-region__edge{pointer-events:auto}.scrollable-region__fade{position:absolute;right:0;left:0;z-index:1;height:40px;pointer-events:none}.scrollable-region__fade--top{top:0;background:linear-gradient(to bottom,var(--color-white, #ffffff) 0%,rgba(255,255,255,0) 100%)}.scrollable-region__fade--bottom{bottom:0;background:linear-gradient(to top,var(--color-white, #ffffff) 0%,rgba(255,255,255,0) 100%)}.scrollable-region__edge{position:absolute;left:50%;z-index:2;display:inline-flex;align-items:center;justify-content:center;width:36px;height:28px;padding:0;color:var(--color-grey-600, #6b6b7b);cursor:pointer;background-color:var(--color-white, #ffffff);border:1px solid var(--card-default-color-border, #e4e4ee);border-radius:999px;box-shadow:0 2px 10px #1f1f2e1a;transform:translate(-50%);transition:color .12s ease,border-color .12s ease,box-shadow .12s ease,transform .12s ease}.scrollable-region__edge:hover{color:var(--color-brand-600);border-color:var(--color-brand-600);box-shadow:0 4px 14px #1f1f2e24}.scrollable-region__edge:focus-visible{outline:2px solid var(--color-brand-600);outline-offset:2px}.scrollable-region__edge--top{top:8px}.scrollable-region__edge--bottom{bottom:8px}.archive-agent-confirm{max-width:480px}.archive-agent-confirm__body{display:flex;flex-direction:column;gap:16px}.archive-agent-confirm__lead,.archive-agent-confirm__progress,.archive-agent-confirm__error{margin:0;font-family:var(--font-family-standard),sans-serif;font-size:14px;line-height:20px;color:var(--color-grey-700)}.archive-agent-confirm__progress{font-weight:var(--font-weight-semi-bold, 600);color:var(--color-grey-900)}.archive-agent-confirm__error{margin-top:12px;color:var(--color-semantic-destructive-600)}.archive-agent-confirm__actions{display:flex;justify-content:flex-end;gap:8px}.ask-arbor-prompt-library{width:100%;box-sizing:border-box}.ask-arbor-prompt-library__grid{display:grid;grid-template-columns:repeat(2,1fr);gap:8px}.ask-arbor-prompt-library__grid-item{display:flex;flex-direction:column;min-width:0}.ask-arbor-prompt-library__grid-item--full-width{grid-column:1/-1}.ask-arbor-prompt-library__expanded-block{width:100%;display:flex;flex-direction:column;min-width:0}.ask-arbor-prompt-library__expanded-block .ask-arbor-prompt-library__category{border-bottom-left-radius:0;border-bottom-right-radius:0}.ask-arbor-prompt-library__expanded-block .ask-arbor-prompt-library__drawer{margin-top:0;border-top-left-radius:0;border-top-right-radius:0}.ask-arbor-prompt-library__category{width:100%;border-radius:8px;border:1px solid #dfdcdb;background:#fff;overflow:hidden;box-sizing:border-box;transition:box-shadow .25s ease;cursor:pointer;height:100%}.ask-arbor-prompt-library__category:hover .ask-arbor-prompt-library__header{border-color:#dfdcdb;background:#f9f8f8}.ask-arbor-prompt-library__category--expanded{box-shadow:0 4px 12px #20202014;height:auto}.ask-arbor-prompt-library__header{display:grid;grid-template-columns:auto 1fr auto;grid-template-rows:auto auto;gap:8px;width:100%;height:100%;padding:14px 16px;cursor:pointer;border-radius:8px;box-sizing:border-box;transition:border-color .15s ease,background .15s ease}.ask-arbor-prompt-library__header:focus{outline:none}.ask-arbor-prompt-library__icon-circle{grid-column:1;grid-row:1;align-self:center;box-sizing:border-box;display:flex;flex-direction:row;align-items:center;justify-content:center;padding:6px;gap:0;width:24px;height:24px;border-radius:6px}.ask-arbor-prompt-library__category--green .ask-arbor-prompt-library__icon-circle{background:#e1eed3;color:#355629}.ask-arbor-prompt-library__category--blue .ask-arbor-prompt-library__icon-circle{background:#daf9ff;color:#227280}.ask-arbor-prompt-library__category--purple .ask-arbor-prompt-library__icon-circle{background:#f0d7e5;color:#cc79a7}.ask-arbor-prompt-library__category--orange .ask-arbor-prompt-library__icon-circle{background:#fef2e4;color:#7c4a0f}.ask-arbor-prompt-library__category--teal .ask-arbor-prompt-library__icon-circle{background:#c6e7e4;color:#40b0a6}.ask-arbor-prompt-library__category--salmon .ask-arbor-prompt-library__icon-circle{background:#efc4bf;color:#ed8a7a}.ask-arbor-prompt-library__category--yellow .ask-arbor-prompt-library__icon-circle{background:#fefad9;color:#7e700b}.ask-arbor-prompt-library__header-text{grid-column:2;grid-row:1;min-width:0;align-self:center}.ask-arbor-prompt-library__title{margin:0;font-size:14px;font-weight:600;color:#3c3735;line-height:1.25;width:100%}.ask-arbor-prompt-library__description{grid-column:1/-1;grid-row:2;margin:0;font-size:12px;font-weight:400;color:#595350;line-height:1.2;width:100%;box-sizing:border-box}.ask-arbor-prompt-library__chevron{grid-column:3;grid-row:1;align-self:center;flex-shrink:0}.ask-arbor-prompt-library__drawer{margin-top:6px;border-radius:0 0 8px 8px;border:1px solid #dfdcdb;border-top:none;background:#fff;box-shadow:0 2px 8px #20202014;box-sizing:border-box;padding:10px;display:flex;flex-direction:column;gap:8px;overflow:hidden;animation:ask-arbor-drawer-enter .25s ease}@keyframes ask-arbor-drawer-enter{0%{opacity:0;transform:translateY(-12px)}to{opacity:1;transform:translateY(0)}}.ask-arbor-prompt-library__prompt-group{display:flex;flex-direction:column;margin-top:5px}.ask-arbor-prompt-library__prompt-group+.ask-arbor-prompt-library__prompt-group{padding-top:10px}.ask-arbor-prompt-library__prompt-group .ds-tag{align-self:flex-start;font-size:12px}.ask-arbor-prompt-library__prompts{display:flex;flex-direction:column;gap:4px;padding-top:10px}.ask-arbor-prompt-library__prompt-row{box-sizing:border-box;display:flex;flex-direction:row;justify-content:space-between;align-items:center;width:calc(100% - 10px);margin-left:10px;margin-right:10px;padding:10px 10px 10px 20px;gap:11px;background:#f9f8f8;border:1px solid #efeeed;border-radius:8px;cursor:pointer;font-size:14px;font-weight:400;color:#3c3735;text-align:left;transition:background .15s ease}.ask-arbor-prompt-library__prompt-row:hover{background:#efeeed}.ask-arbor-prompt-library__prompt-row:focus{outline:none}.ask-arbor-prompt-library__prompt-text{flex:1;min-width:0;font-size:14px;line-height:1.3}.ask-arbor-settings{position:absolute;bottom:100%;right:0;margin-bottom:4px;min-width:160px;padding:2px 0;background:#fff;border:1px solid #dfdcdb;border-radius:8px;box-shadow:0 4px 12px #20202014;z-index:10}.ask-arbor-settings__item{display:flex;flex-direction:row;align-items:center;gap:8px;width:100%;padding:4px 8px;border:none;background:none;font-size:14px;line-height:120%;color:#3c3735;text-align:left;cursor:pointer;text-decoration:none}.ask-arbor-settings__item:hover{background:#efeeed}.ask-arbor-settings__label{flex:1}.ask-arbor-input{display:flex;flex-direction:column;align-items:center;gap:7px;position:relative;width:100%;max-width:548px}.ask-arbor-input__content{display:flex;flex-direction:column;align-items:center;gap:7px;flex:1;min-width:0;width:100%}.ask-arbor-input__file-input{position:absolute;width:0;height:0;opacity:0;overflow:hidden;pointer-events:none}.ask-arbor-input__frame{box-sizing:border-box;display:flex;flex-direction:column;align-items:flex-start;gap:16px;width:100%;min-height:97px;padding:16px;background:#fff;border:1px solid #dfdcdb;border-radius:8px;box-shadow:0 4px 12px #20202014;position:relative}.ask-arbor-input__frame:focus-within{border-color:#68aa22}.ask-arbor-input__frame--dragging{border-color:#ada8a6;border-style:dashed}.ask-arbor-input__frame--dragging-rejected{border-color:#fa9d9d;background:#fde2e2}.ask-arbor-input__drop-overlay{position:absolute;top:0;right:0;bottom:0;left:0;z-index:2;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;border-radius:7px;background:#ffffffeb;pointer-events:none}.ask-arbor-input__drop-overlay--rejected{background:#fde2e2f0}.ask-arbor-input__drop-overlay-text{font-size:14px;line-height:120%;color:#3c3735}.ask-arbor-input__drop-overlay--rejected .ask-arbor-input__drop-overlay-text{color:#9d1010;font-weight:600}.ask-arbor-input__drop-overlay-hint{font-size:12px;line-height:120%;color:#9d1010;text-align:center;max-width:80%}.ask-arbor-input__upload-rejection{position:absolute;top:0;right:0;bottom:0;left:0;z-index:3;display:flex;align-items:center;gap:8px;padding:0 28px 0 16px;border-radius:7px;background:#fde2e2;color:#9d1010;font-size:14px;line-height:120%;cursor:pointer}.ask-arbor-input__upload-rejection-text{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ask-arbor-input__file-cards{display:flex;flex-wrap:wrap;gap:8px;width:100%}.ask-arbor-input__file-cards--hidden{display:none}.ask-arbor-input__file-card{display:inline-flex;align-items:center;gap:6px;max-width:min(100%,280px);min-width:0;overflow:hidden;padding:8px 10px;background:#f9f8f8;border:1px solid #dfdcdb;border-radius:8px;color:#3c3735}.ask-arbor-input__file-card-name{flex:1 1 auto;min-width:0;font-size:13px;line-height:120%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ask-arbor-input__file-card-dismiss{display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;border:none;background:transparent;color:inherit;cursor:pointer;padding:0}.ask-arbor-input__upload-rejection-dismiss{display:inline-flex;align-items:center;justify-content:center;border:none;background:transparent;color:inherit;cursor:pointer;position:absolute;top:50%;right:0;transform:translateY(-50%)}.ask-arbor-input__input-zone{display:flex;flex-direction:column;gap:16px;width:100%}.ask-arbor-input__input-row{display:flex;align-items:center;gap:4px;width:100%;min-height:17px}.ask-arbor-input__textarea{flex:1;min-width:0;border:none;background:transparent;resize:none;font-size:14px;line-height:120%;color:#3c3735;outline:none}.ask-arbor-input__textarea::placeholder{color:#c7c4c3}@supports (field-sizing: content){.ask-arbor-input__textarea{field-sizing:content;max-height:300px}}.ask-arbor-input__bottom-actions{display:flex;justify-content:flex-end;align-items:center;gap:8px;width:100%;height:32px}.ask-arbor-input__actions-right{display:flex;justify-content:flex-end;align-items:center;gap:8px;flex:1}.ask-arbor-input__timer{margin-right:4px;font-size:14px;line-height:120%;color:#3c3735}.ask-arbor-input__settings-wrap{position:relative}.ask-arbor-input__settings-btn--open{background:#efeeed}.ask-arbor-input__disclaimer{width:100%;margin:0;font-size:12px;line-height:120%;color:#3c3735;text-align:center}.chat-message__canvas-table{width:100%;margin:0;min-width:0}.canvas-table__no-data{margin:0;padding:20px;font-size:14px;text-align:center;color:#ada8a6}.canvas-widget-host{display:block;max-width:100%;min-width:0}.canvas-widget{max-width:100%;width:100%;box-sizing:border-box;min-width:0;padding:var(--spacing-small);--ico-text-spacing-gap-horizontal: var(--spacing-small);--ico-text-spacing-gap-vertical: var(--spacing-xsmall)}.canvas-widget .ds-card__content,.canvas-widget .ds-ico-text{align-items:center}.canvas-widget .ds-ico-text__heading{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:100%;font-size:12px;line-height:1.3}.canvas-widget .ds-ico-text__heading .ds-article-card__primary-link{color:inherit;font-family:var(--type-headings-h4-family);font-size:12px;font-weight:var(--type-headings-h4-weight);line-height:1.3;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;display:block;max-width:100%}.canvas-widget .ds-ico-text__paragraph{font-size:12px;line-height:1.3}.canvas-widget.canvas-widget--file,.canvas-widget.canvas-widget--info{background:#daf9ff}.canvas-widget.canvas-widget--warning{background:#fef2e4}.canvas-widget.canvas-widget--error{background:#fde2e2}.chat-message__canvas-element{max-width:100%;margin:8px 0 12px;padding:0;background:#fff;box-sizing:border-box}.chat-message__canvas-element[data-content-type=WIDGET]{max-width:80%;width:100%;margin-right:auto}.chat-message__canvas-element-header{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:4px}.chat-message__canvas-element-title{margin:0;font-size:13px;font-weight:600;line-height:18px;color:#3c3735;min-width:0;flex:1}.chat-message__canvas-element-subtitle{margin:0 0 10px;font-size:12px;line-height:16px;color:#595350}.chat-message__canvas-html{font-size:13px;line-height:18px}.chat-message__canvas-html p{margin:0 0 8px}.chat-message__footer-actions,.chat-message--warning,.chat-message--error,.chat-message--info,.chat-message--agent{max-width:80%;width:auto;margin-right:auto}.chat-message-container{margin-bottom:10px}.chat-message-container--user{display:flex;flex-direction:column;align-items:flex-end;gap:8px;width:100%}.chat-message-container--user .chat-message__canvas-element{max-width:80%;width:100%;min-width:0;align-self:flex-start;margin:0 auto 0 0}.chat-message-container--user:not(:has(.chat-message)){margin-bottom:4px}.chat-message-container--agent{display:inline-flex;flex-direction:column;align-items:stretch;margin-right:auto;min-width:100%}.chat-message-container__content{display:flex;flex-direction:column;width:fit-content;max-width:100%;align-self:flex-start}.chat-message-container__content:has(.chat-message__canvas-element){width:100%}.chat-message{border-radius:5px;padding:10px;position:relative;white-space:pre-wrap;line-height:18px;align-items:center}.chat-message a{text-decoration:none;color:#f7931e;cursor:pointer}.chat-message a:hover{text-decoration:underline}.chat-message--user{background-color:#efeeed;max-width:80%;width:auto;margin-left:auto}.chat-message--agent{padding-left:0}.chat-message--info{background-color:#daf9ff}.chat-message--error{background-color:#fde2e2}.chat-message--warning{background-color:#fef2e4}.chat-message--error,.chat-message--info,.chat-message--warning{display:flex;align-items:flex-start;gap:8px}.chat-message--error .chat-message__icon,.chat-message--info .chat-message__icon,.chat-message--warning .chat-message__icon{flex-shrink:0;width:35px;display:flex;align-items:center;justify-content:center;font-size:25px}.chat-message__footer-actions{display:flex;flex-direction:row;justify-content:flex-start;align-items:flex-start;margin-top:9px;min-width:0;box-sizing:border-box}.chat-message__follow-up-prompts{flex-grow:1;max-width:90%}.chat-message__follow-up-prompts-list{display:flex;flex-flow:row wrap;gap:8px;list-style:none;margin:0;padding:0}.chat-message__follow-up-prompts-list li{max-width:100%}.chat-message__footer-icons{display:flex;flex-direction:row;align-items:center;gap:0;flex:none}.chat-message__feedback{display:flex;flex-direction:row;align-items:center;justify-content:flex-start;padding:0 0 4px;background:#fff;flex:none;align-self:stretch;flex-grow:0;min-width:0}.chat-message__feedback-question{font-weight:400;font-size:14px;line-height:120%;display:flex;align-items:center;color:#3c3735;flex:none;flex-grow:0}.chat-message__feedback-buttons{display:flex;flex-direction:row;align-items:center;padding:0;gap:0;flex:none;flex-grow:0}.chat-message__feedback-button{display:flex;flex-direction:row;justify-content:flex-start;align-items:center;padding:6px 12px;gap:8px;min-height:36px;height:36px;box-sizing:border-box;background:#fff;border:none;cursor:pointer;font-style:normal;font-weight:700;font-size:18px;line-height:120%}.chat-message__feedback-button--up,.chat-message__feedback-button--up .chat-message__feedback-button-icon,.chat-message__feedback-button--up .chat-message__feedback-button-text{color:#3c3735}.chat-message__feedback-button--down{width:180px;color:#595350}.chat-message__feedback-button--down .chat-message__feedback-button-icon,.chat-message__feedback-button--down .chat-message__feedback-button-text{color:#595350}.chat-message__feedback-button--selected.chat-message__feedback-button--up,.chat-message__feedback-button--selected.chat-message__feedback-button--up .chat-message__feedback-button-icon,.chat-message__feedback-button--selected.chat-message__feedback-button--up .chat-message__feedback-button-text{color:#4e801a}.chat-message__feedback-button--selected.chat-message__feedback-button--down,.chat-message__feedback-button--selected.chat-message__feedback-button--down .chat-message__feedback-button-icon,.chat-message__feedback-button--selected.chat-message__feedback-button--down .chat-message__feedback-button-text{color:#b96e16}.chat-message__feedback-button-icon{flex:none;width:18px;height:18px;font-size:18px;line-height:1;display:flex;align-items:center;justify-content:center;color:inherit}.chat-message__feedback-button-icon svg{width:18px;height:18px}.chat-message__feedback-button-text{flex:none;white-space:nowrap;font-size:14px}.chat-message__icon{top:10px}.chat-message--info .chat-message__icon{color:#33aabf}.chat-message--error .chat-message__icon{color:#9d1010}.chat-message--warning .chat-message__icon{color:#b96e16}.keyboard-shortcut-menu{position:absolute;left:0;width:100%;z-index:1000;top:auto;bottom:100%;margin-bottom:8px}.keyboard-shortcut-menu.keyboard-shortcut-menu-below{bottom:auto;top:60%;margin-bottom:0}.keyboard-shortcut-menu.keyboard-shortcut-menu-hidden{opacity:0;pointer-events:none;visibility:hidden}.keyboard-shortcut-menu .keyboard-shortcut-menu__content{border:solid 1px #c7c4c3;background-color:#fff;border-radius:4px;box-shadow:0 3px 3px #dfdcdb;width:100%;max-height:300px;overflow-y:auto}.keyboard-shortcut-menu .keyboard-shortcut-menu__header{display:flex;justify-content:space-between;align-items:center;padding:10px 12px;border-bottom:1px solid #dfdcdb}.keyboard-shortcut-menu .keyboard-shortcut-menu__close{cursor:pointer;padding:0;display:flex;align-items:center;justify-content:center;width:28px;height:28px;background:none;border:none;border-radius:4px}.keyboard-shortcut-menu .keyboard-shortcut-menu__close:hover{background:#efeeed}.keyboard-shortcut-menu .keyboard-shortcut-menu__close:focus-visible{outline:2px solid #68aa22;outline-offset:2px}.keyboard-shortcut-menu .keyboard-shortcut-menu__close-icon{font-size:8px}.keyboard-shortcut-menu .keyboard-shortcut-menu__search{display:flex;align-items:center;padding:8px 0;width:100%}.keyboard-shortcut-menu .keyboard-shortcut-menu__search input{flex:1;border:none;outline:none;font-size:14px;padding:4px 0}.keyboard-shortcut-menu .keyboard-shortcut-menu__items{max-height:200px;overflow-y:auto;list-style-type:none;padding:0;margin:0}.keyboard-shortcut-menu .keyboard-shortcut-menu__item{display:flex;padding:8px 12px;cursor:pointer;transition:background-color .1s ease;text-decoration:none!important;color:inherit;align-items:center;gap:8px}.keyboard-shortcut-menu .keyboard-shortcut-menu__item:hover{background-color:#dfdcdb}.keyboard-shortcut-menu .keyboard-shortcut-menu__item--selected{background-color:#c7c4c3;font-weight:500}.keyboard-shortcut-menu .keyboard-shortcut-menu__item-reference{min-width:100px}.keyboard-shortcut-menu .keyboard-shortcut-menu__item-description{margin-left:8px}.keyboard-shortcut-menu .keyboard-shortcut-menu__item-main{font-weight:800;color:#595350;text-decoration:none!important}.keyboard-shortcut-menu .keyboard-shortcut-menu__item-secondary{color:#776e6a;font-weight:500;text-decoration:none}.keyboard-shortcut-menu .keyboard-shortcut-menu__no-results{padding:12px;color:#ada8a6;text-align:center;font-style:italic}.loading-spinner{display:inline-block;position:relative;width:50px;height:50px;flex-shrink:0}.loading-spinner__inner{position:relative;animation-name:arbor-logo-rotation;animation-duration:1s;animation-iteration-count:infinite;animation-timing-function:ease-in-out;transform-origin:25px 25px}.loading-spinner__circle{height:50px;width:50px;border-radius:100%;opacity:.9;animation-duration:1s;animation-direction:alternate;animation-iteration-count:infinite;animation-timing-function:ease-in-out;position:absolute}.loading-spinner__circle-left{background-color:#7cb93c;animation-name:arbor-logo-left}.loading-spinner__circle-top{background-color:#f7931c;animation-name:arbor-logo-top}.loading-spinner__circle-right{background-color:#deee21;animation-name:arbor-logo-right}.loading-spinner__circle-bottom{background-color:#afd317;animation-name:arbor-logo-bottom}@keyframes arbor-logo-rotation{0%{rotate:0}to{rotate:360deg}}@keyframes arbor-logo-left{0%{left:-25px}to{left:0}}@keyframes arbor-logo-right{0%{left:25px}to{left:0}}@keyframes arbor-logo-top{0%{top:-25px}to{top:0}}@keyframes arbor-logo-bottom{0%{top:25px}to{top:0}}@keyframes chat-panel-notify-button-fade-in{0%{opacity:0}to{opacity:1}}.chat-panel__loading-container{display:flex;flex-direction:column;gap:0;position:relative;left:-5px}.chat-panel__loading-content{display:flex;flex-direction:row;align-items:center}.chat-panel__loading-spinner-container{background-color:#eee;display:flex;justify-content:center;align-items:center;flex-shrink:0;border-radius:4px}.loading-spinner.chat-panel__loading-spinner{flex-shrink:0;transform:scale(.25);width:40px;height:40px;position:relative;left:-1px;top:-1px}.chat-panel__loading-phrase{font-size:14px;color:#3c3735;opacity:1;transition:opacity .3s ease-in-out;flex-grow:1;display:flex;align-items:center}.chat-panel__loading-phrase.fade-out{opacity:0}.chat-panel__loading-phrase.fade-in{opacity:1}.chat-panel__notify-later{margin-left:40px;display:flex;flex-direction:column;align-items:flex-start;gap:12px;animation:chat-panel-notify-button-fade-in .3s ease-in-out forwards}.chat-panel__notify-later-message{font-size:14px;font-weight:400;line-height:1.4;color:#3c3735;margin:0}.chat-panel__notify-later-btn{display:inline-flex;align-items:center;justify-content:center;padding:6px 14px;border-radius:4px;border:1px solid #dfdcdb;background:#fff;font-size:14px;cursor:pointer;color:#3c3735}.chat-panel__notify-later-btn:hover{background:#efeeed}.chat-panel{display:flex;flex-direction:column}.chat-panel .chat-panel__body{flex:1;min-height:0;display:flex;flex-direction:column;overflow:hidden;padding-bottom:20px}.chat-panel .chat-panel__body--no-messages{padding-bottom:0;flex:none}.chat-panel .chat-panel__message-list-wrapper{position:relative;flex:1;min-height:0;display:flex;flex-direction:column;overflow:hidden}.chat-panel .chat-panel-message-list{display:flex;flex-direction:column;list-style-type:none;margin:0;flex:1;min-height:0;overflow-y:auto;padding:0 24px}.chat-panel .chat-panel__body:has(.chat-panel__message-list-wrapper){min-height:calc(100vh - 240px)}.chat-panel .chat-panel__body:has(.chat-panel__message-list-wrapper) .chat-panel__input-container{position:sticky;bottom:0;z-index:1;background-color:#fff}.chat-panel .chat-panel-footer{position:relative;top:-12px}.chat-panel .chat-panel__active-chat-header{display:flex;justify-content:flex-end;align-items:center;width:100%;box-sizing:border-box;margin-bottom:10px;padding:0}.chat-panel .chat-panel__active-chat-header .chat-panel__new-chat-button{display:inline-block;padding:6px 14px;border-radius:4px;font-size:14px;font-weight:600;background-color:#68aa22;color:#fff;text-decoration:none;border:none;cursor:pointer}.chat-panel .chat-panel__active-chat-header .chat-panel__new-chat-button:hover{background-color:#4e801a}.chat-panel .chat-panel__tabs{flex-shrink:0;padding:0 16px}.chat-panel .chat-panel__tab-content{flex:1;min-height:0;overflow-y:auto;display:flex;flex-direction:column;padding-top:16px}.chat-panel .chat-panel__tab-content:has(.chat-panel__tab-panel--recent){padding-top:0}.chat-panel .chat-panel__tab-panel--recent{flex:1;min-height:0;overflow-y:auto}.chat-panel .chat-panel__ai-interactions-loading,.chat-panel .chat-panel__ai-interactions-empty{padding:32px 24px;color:#595350;font-size:14px;text-align:center}.chat-panel .chat-panel__ai-interactions-table{width:100%;margin:0}.chat-panel .chat-panel__ai-interactions-table .ag-row{cursor:pointer}.chat-panel .chat-panel__sample-prompt-container{display:flex;justify-content:space-evenly;padding:0 23px;gap:10px}.chat-panel .chat-panel__sample-prompt{display:flex;text-align:left;border-radius:5.5px;border:1px solid #dfdcdb;padding:12px;cursor:pointer;font-size:14px;flex:1;line-height:19px;background-color:#fff;filter:drop-shadow(0 4px 12px rgba(32,32,32,.08))}.chat-panel .chat-panel__sample-prompt:hover{background-color:#f9f9f9}.chat-panel .chat-panel__daily-prompt{display:flex;text-align:left;border-radius:5.5px;border:1px solid #dfdcdb;padding:12px;cursor:pointer;font-size:14px;flex:1;line-height:19px;background-color:#f8fff1}.chat-panel .chat-panel__daily-prompt:hover{background-color:#e0f5d8}.chat-panel .chat-panel__message-limit{position:absolute;bottom:0;right:0;padding:4px;border-radius:2px;background-color:#efeeed}.chat-panel .chat-panel__input-container{flex-shrink:0;display:flex;gap:9px;padding:7px 24px;min-height:50px}.chat-panel .chat-panel__input-wrapper{position:relative;flex:1;display:flex;flex-direction:column;min-width:0}.chat-panel .chat-panel__input-wrapper .ask-arbor-input{width:100%;max-width:none}.chat-panel .chat-panel__speech-disabled-wrapper{text-align:left;padding-left:20px;padding-bottom:10px;font-style:italic}.chat-panel .chat-panel__chat-intro{flex:1;max-height:140px;display:flex;flex-direction:column;padding:32px 72px}.chat-panel .chat-panel__chat-intro-frame{display:flex;flex-direction:row;justify-content:center;align-items:center;padding:0;gap:12px;flex:none}.chat-panel .chat-panel__chat-intro-icon{display:inline-flex;flex:none;width:40px;height:42px;align-items:center;justify-content:center}.chat-panel .chat-panel__chat-intro-icon svg{width:40px;height:42px}.chat-panel .chat-panel__chat-intro-heading{font-style:normal;font-weight:700;font-size:20px;line-height:120%;display:flex;align-items:center;color:#3c3735;margin:0;flex:none}.chat-panel .chat-panel__chat-intro-body{font-style:normal;font-weight:400;font-size:14px;line-height:120%;display:flex;align-items:center;text-align:center;color:#3c3735;margin:0;flex:none;align-self:stretch;max-width:436px}.chat-panel table{width:100%;border-collapse:separate;border-spacing:0;margin:20px 0;font-size:14px;text-align:left;border:1px solid #dfdcdb;border-radius:4px;overflow:scroll}.chat-panel table thead{background-color:#f9f8f8;border-bottom:1px solid #ada8a6}.chat-panel table thead th{padding:10px;font-weight:700;border-bottom:1px solid #ada8a6}.chat-panel table tbody th{padding-left:10px;border-bottom:1px solid #ada8a6}.chat-panel table tbody tr{height:35px}.chat-panel table tbody tr:nth-child(odd){background-color:#fff}.chat-panel table tbody tr:nth-child(2n){background-color:#f9f8f8}.chat-panel table tbody tr td{padding:10px;border-bottom:1px solid #ada8a6;vertical-align:top}.chat-panel table tbody tr:last-child td{border-bottom:none}.chat-panel .chat-panel__message-tag{background-color:#c7c4c3;font-weight:700}.ds-slideover{top:0;z-index:2147483647;border-left:1px solid #e8e8e8;--slideover-color-background: #fff;--slideover-spacing-padding: 0px}.ds-slideover__contents{overflow:hidden}.canvas-element__subheading{margin:0 0 8px;font-size:12px;line-height:16px}.canvas__element-individual-container-chart{height:250px;width:100%;overflow:visible}.canvas__element-individual-container-chart .dashboard-chart-container{height:100%;width:100%}.canvas__chart-error{display:flex;flex-direction:column;justify-content:center;height:100%;padding:16px;box-sizing:border-box}.canvas__chart-error-message{font-weight:600;margin-bottom:8px}.canvas__chart-error-details{font-size:13px}.resource-preview-slideover__body{display:flex;flex:1;flex-direction:column;min-height:0;height:100%;padding:0 12px 12px;box-sizing:border-box}.resource-preview-slideover__status,.resource-preview-slideover__error{display:flex;align-items:center;gap:8px;margin:0;font-size:14px;line-height:20px;color:var(--color-grey-700, #374151)}.resource-preview-slideover__error{color:var(--color-semantic-danger-700, #b91c1c)}.resource-preview-slideover__frame{flex:1;width:100%;min-height:0;border:1px solid var(--card-default-color-border, #e4e4ee);border-radius:12px;background:var(--color-grey-000, #fff);padding:5px}.agent-workspace{--modal-header-spacing-padding: 16px;width:calc(100vw - 32px);height:calc(100vh - 32px);min-width:unset;max-width:calc(100vw - 32px);max-height:calc(100vh - 32px);overflow:hidden;font-family:var(--font-family-standard),sans-serif}.agent-workspace__header-title{display:flex;align-items:center;gap:12px;min-width:0;flex:1}.agent-workspace__header-title .ds-modal__title{font-size:var(--type-headings-h3-size, 18px);font-weight:var(--type-headings-h3-weight, 600);line-height:var(--type-headings-h3-line-height, 24px);min-width:0}.agent-workspace__header-name{min-width:0;max-width:100%}.agent-workspace__header-avatar{display:inline-flex;align-items:center;justify-content:center;width:32px;height:32px;color:var(--color-brand-600);border-radius:50%}.agent-workspace__header-actions{display:flex;align-items:center;gap:8px}.agent-workspace__phase{padding:2px 10px;font-size:12px;font-weight:var(--font-weight-semi-bold, 600);color:var(--color-grey-600, #6b6b7b);background-color:var(--color-grey-100, #f0f0f3);border-radius:999px}.agent-workspace__phase--running{color:var(--color-brand-600);background-color:var(--color-brand-050)}.agent-workspace__phase--paused{color:var(--color-semantic-warning-600, #b45309);background-color:var(--color-semantic-warning-050, #fff7ed)}.agent-workspace__phase--complete{color:var(--color-semantic-success-600, #15803d);background-color:var(--color-semantic-success-050, #ecfdf3)}.agent-workspace__phase--archived{color:var(--color-grey-700, #4b4b5c);background-color:var(--color-grey-200, #e4e4ee)}.agent-workspace__body{position:relative;display:grid;grid-template-columns:minmax(0,1fr) minmax(220px,1fr) minmax(240px,1fr);gap:16px;flex:1;min-height:0;padding:16px;background-color:var(--color-grey-050, #f7f7f8)}.agent-workspace__body--no-checklist{grid-template-columns:minmax(0,1fr) minmax(240px,1fr)}.agent-workspace__body--no-resources{grid-template-columns:minmax(0,1fr) minmax(220px,1fr)}.agent-workspace__body--no-checklist.agent-workspace__body--no-resources{grid-template-columns:minmax(0,1fr)}.agent-workspace__panel{display:flex;flex-direction:column;min-height:0;background-color:var(--color-white, #ffffff);border:1px solid var(--card-default-color-border, #e4e4ee);border-radius:12px}.agent-workspace__panel--chat{background-color:var(--color-white, #ffffff);overflow:hidden}.agent-workspace__panel--chat.agent-workspace__panel--timeline{overflow:hidden}.agent-workspace__chat-keep-alive:not([hidden]){display:flex;flex:1;flex-direction:column;min-height:0}.agent-workspace__chat-body{display:flex;flex:1;flex-direction:column;min-height:0}.agent-workspace__ask-arbor{display:flex;flex:1;flex-direction:column;min-height:0;padding-top:20px}.agent-workspace__ask-arbor>.scrollable-region{flex:1;min-height:0}.agent-workspace__ask-arbor .chat-panel{flex:1;min-height:0;height:100%;border:none;border-radius:0}.agent-workspace__ask-arbor .chat-panel__body:has(.chat-panel__message-list-wrapper){min-height:0}.agent-workspace__ask-arbor .chat-panel__tabs{display:none}.agent-workspace__ask-arbor .canvas-widget.ds-card__container{--card-spacing-vertical: var(--spacing-small);--card-spacing-horizontal: var(--spacing-small);--card-spacing-gap-vertical: var(--spacing-xsmall);--card-spacing-gap-horizontal: var(--spacing-small);--ico-text-spacing-gap-horizontal: var(--spacing-small);--ico-text-spacing-gap-vertical: var(--spacing-xsmall);padding:var(--spacing-small)}.agent-workspace__ask-arbor .canvas-widget .ds-card__content,.agent-workspace__ask-arbor .canvas-widget .ds-ico-text{align-items:center}.agent-workspace__ask-arbor .canvas-widget .ds-ico-text__heading,.agent-workspace__ask-arbor .canvas-widget .ds-ico-text__heading .ds-article-card__primary-link{font-size:12px;line-height:1.3;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:100%}.agent-workspace__ask-arbor .canvas-widget .ds-ico-text__paragraph{font-size:12px;line-height:1.3}.agent-workspace__ask-arbor .chat-message-container--user:has(.canvas-widget--file)>.chat-message.chat-message--user:not(:has(:not(span))),.agent-workspace__ask-arbor .chat-message-container--user:has(.canvas-widget--file)>.chat-message.chat-message--user:has(>span:only-child:empty){display:none}.agent-workspace__panel-header{display:flex;align-items:center;gap:8px;padding:12px 14px;border-bottom:1px solid var(--card-default-color-border, #e4e4ee)}.agent-workspace__panel-count{margin-left:auto;font-weight:var(--font-weight-semi-bold, 600);color:var(--color-grey-600, #6b6b7b)}.agent-workspace__panel-header-action{margin-left:auto}.agent-workspace__panel-body{display:flex;flex:1;flex-direction:column;min-height:0;overflow:hidden}.agent-workspace__panel-body .scrollable-region__viewport{padding:12px 14px}.agent-workspace__panel-hint{margin:0 0 12px;font-size:13px;line-height:18px;color:var(--color-grey-600, #6b6b7b)}.agent-workspace__chat-scroll{flex:1;min-height:0;padding:20px;overflow-y:auto}.agent-workspace__messages{display:flex;flex-direction:column;gap:16px;margin:0;padding:0;list-style:none}.agent-workspace__message{display:flex;gap:10px;max-width:82%}.agent-workspace__message--user{align-self:flex-end;flex-direction:row-reverse}.agent-workspace__message--system{align-self:center;max-width:100%}.agent-workspace__message-body{display:flex;flex-direction:column;gap:8px;min-width:0}.agent-workspace__bubble{padding:10px 14px;font-size:14px;line-height:20px;white-space:pre-wrap;background-color:var(--color-grey-100, #f0f0f3);border-radius:14px}.agent-workspace__message--agent .agent-workspace__bubble{background-color:var(--color-brand-050);border-bottom-left-radius:4px}.agent-workspace__message--user .agent-workspace__bubble{color:var(--color-white, #ffffff);background-color:var(--color-brand-600);border-bottom-right-radius:4px}.agent-workspace__message--system .agent-workspace__bubble{font-size:13px;color:var(--color-grey-600, #6b6b7b);background-color:var(--color-grey-100, #f0f0f3)}.agent-workspace__chips{display:flex;flex-wrap:wrap;gap:8px}.agent-workspace__chip{padding:6px 12px;font:inherit;font-size:13px;color:var(--color-brand-800);cursor:pointer;background-color:var(--color-white, #ffffff);border:1px solid var(--card-default-color-border, #e4e4ee);border-radius:999px;transition:background-color .15s ease,border-color .15s ease}.agent-workspace__chip:hover{background-color:var(--color-brand-050);border-color:var(--color-brand-600)}.agent-workspace__typing{display:inline-flex;gap:4px;align-items:center}.agent-workspace__typing span{width:6px;height:6px;background-color:var(--color-grey-600, #6b6b7b);border-radius:50%;animation:agent-workspace-typing 1.2s infinite ease-in-out}.agent-workspace__typing span:nth-child(2){animation-delay:.15s}.agent-workspace__typing span:nth-child(3){animation-delay:.3s}.agent-workspace__notice{display:flex;align-items:center;gap:8px;margin:0 16px 12px;padding:10px 14px;font-size:13px;color:var(--color-grey-600, #6b6b7b);background-color:var(--color-grey-050, #f7f7f8);border:1px solid var(--card-default-color-border, #e4e4ee);border-radius:12px}.agent-workspace__composer{display:flex;align-items:flex-end;gap:8px;padding:12px 16px 16px;border-top:1px solid var(--card-default-color-border, #e4e4ee)}.agent-workspace__composer-input{flex:1;max-height:140px}.agent-workspace__file-input{display:none}.agent-workspace__resource-list{display:flex;flex-direction:column;gap:8px;margin:0;padding:0;list-style:none}.agent-workspace__resource-card{display:flex;align-items:flex-start;gap:10px;width:100%;padding:12px;border:1px solid var(--card-default-color-border, #e4e4ee);border-radius:12px;background:var(--color-white, #ffffff);text-align:left;text-decoration:none;color:inherit;cursor:pointer;font:inherit;transition:border-color .15s ease,box-shadow .15s ease}.agent-workspace__resource-card:hover,.agent-workspace__resource-card:focus-visible{border-color:var(--color-brand-600);box-shadow:0 1px 4px #00000014}.agent-workspace__resource-card:focus-visible{outline:2px solid var(--color-brand-600);outline-offset:2px}.agent-workspace__resource-icon{display:inline-flex;align-items:center;justify-content:center;flex:none;width:32px;height:32px;border-radius:8px;background:var(--color-brand-050)}.agent-workspace__resource-icon--document_html,.agent-workspace__resource-icon--file{background:var(--color-semantic-caution-050)}.agent-workspace__resource-icon--link{background:var(--color-semantic-info-050)}.agent-workspace__resource-icon--workflow{background:var(--color-semantic-warning-050)}.agent-workspace__resource-content{display:flex;flex:1;flex-direction:column;gap:4px;min-width:0}.agent-workspace__resource-top{display:flex;align-items:center;justify-content:space-between;gap:8px}.agent-workspace__resource-name{font-size:14px;font-weight:600;line-height:20px;color:var(--color-grey-900, #1f1f2e);overflow-wrap:anywhere}.agent-workspace__resource-badge{flex:none;padding:2px 8px;border-radius:999px;background:var(--color-brand-050);color:var(--color-brand-800);font-size:11px;font-weight:600;line-height:16px;white-space:nowrap}.agent-workspace__resource-badge--document_html,.agent-workspace__resource-badge--file,.agent-workspace__resource-badge--user_file{background:var(--color-semantic-caution-050);color:var(--color-semantic-caution-800)}.agent-workspace__resource-badge--link{background:var(--color-semantic-info-050);color:var(--color-semantic-info-700)}.agent-workspace__resource-badge--workflow{background:var(--color-semantic-warning-050);color:var(--color-semantic-warning-700)}.agent-workspace__resource-open{flex:none;margin-top:2px}.agent-workspace__checklist-tabs{width:100%}.agent-workspace__context-json{margin:0;font-family:var(--font-family-monospace, monospace);font-size:12px;line-height:18px;white-space:pre-wrap;overflow-wrap:anywhere}.agent-workspace__task-group{display:flex;flex-direction:column;gap:8px}.agent-workspace__task-group--following{margin-top:16px;padding-top:16px;border-top:1px solid var(--card-default-color-border, #e4e4ee)}.agent-workspace__task-group-label{margin:0;font-size:12px;font-weight:600;line-height:16px;letter-spacing:.02em;color:var(--color-grey-600, #6b6b7b)}.agent-workspace__task-list{display:flex;flex-direction:column;gap:10px;margin:0;padding:0;list-style:none}.agent-workspace__task-row{display:flex;align-items:flex-start;gap:8px;padding-left:8px}.agent-workspace__task-content{display:flex;flex:1;flex-direction:column;gap:2px;min-width:0}.agent-workspace__task-label{font-size:14px;line-height:20px;color:var(--color-grey-900, #1f1f2e)}.agent-workspace__task-description{font-size:12px;line-height:16px;color:var(--color-grey-600, #6b6b7b)}.agent-workspace__task--hitl .agent-workspace__task-row{padding:8px;background-color:var(--color-semantic-warning-050, #fff7ed);border-radius:8px}.agent-workspace__task-children{display:flex;flex-direction:column;gap:8px;margin:8px 0 0;padding:0 0 0 24px;list-style:none;border-left:2px solid var(--card-default-color-border, #e4e4ee)}.agent-workspace__task-child .agent-workspace__task-label{font-size:13px}.agent-workspace__task-icon--spinning{animation:agent-workspace-icon-spin 1s linear infinite}.agent-workspace__loading,.agent-workspace__empty,.agent-workspace__error{display:flex;gap:8px;align-items:center;margin:0;font-size:14px;color:var(--color-grey-600, #6b6b7b)}.agent-workspace__error{color:var(--color-semantic-destructive-600, #dc2626)}.agent-workspace__lifecycle-error{padding:8px 14px 0}.agent-workspace__name-error{flex:0 1 auto;min-width:0}@media (width <= 900px){.agent-workspace__header{flex-wrap:wrap;gap:12px}.agent-workspace__header-actions{flex-wrap:wrap;justify-content:flex-end}.agent-workspace__body,.agent-workspace__body--no-checklist,.agent-workspace__body--no-resources,.agent-workspace__body--no-checklist.agent-workspace__body--no-resources{grid-template-columns:minmax(0,1fr);grid-auto-rows:auto;align-content:start;overflow:hidden auto}.agent-workspace__panel--chat{height:min(70vh,560px);min-height:320px;flex:none}.agent-workspace__panel--checklist,.agent-workspace__panel--documents{flex:none;min-height:240px;max-height:min(50vh,420px)}}@keyframes agent-workspace-icon-spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@keyframes agent-workspace-typing{0%,60%,to{opacity:.3;transform:translateY(0)}30%{opacity:1;transform:translateY(-3px)}}.agent-workspace__timeline{display:flex;flex:1;flex-direction:column;justify-content:flex-start;min-width:0;min-height:0;padding:16px 24px 24px;overflow:auto}.agent-workspace__timeline-status{margin:0;font-size:14px;line-height:20px;color:var(--color-grey-600, #6b6b7b);text-align:center}.agent-timeline{--agent-timeline-node-size: 32px;--agent-timeline-station-size: 10px;--agent-timeline-track-width: 4px;--agent-timeline-row-gap: 20px;position:relative;display:flex;flex-direction:column;gap:var(--agent-timeline-row-gap);width:100%;max-width:100%;box-sizing:border-box}.agent-timeline__track{position:absolute;top:calc(var(--agent-timeline-node-size) / 2);bottom:calc(var(--agent-timeline-node-size) / 2);left:calc(var(--agent-timeline-node-size) / 2 - var(--agent-timeline-track-width) / 2);width:var(--agent-timeline-track-width);background-color:var(--color-grey-800, #3b3b3b);border-radius:999px}.agent-timeline__station,.agent-timeline__chat-station{position:relative;z-index:2;display:flex;flex-shrink:0;align-items:flex-start;gap:12px;min-height:var(--agent-timeline-node-size);box-sizing:border-box}.agent-timeline__chat-station{z-index:3}.agent-timeline__station-rail{display:inline-flex;flex-shrink:0;align-items:center;justify-content:center;width:var(--agent-timeline-node-size);height:var(--agent-timeline-node-size)}.agent-timeline__station-node{display:block;flex-shrink:0;width:var(--agent-timeline-station-size);height:var(--agent-timeline-station-size);padding:0;cursor:default;background-color:var(--tag-neutral-color-background);border:none;border-radius:50%;box-sizing:border-box}.agent-timeline__station-node--terminus,.agent-timeline__station-node--checklist,.agent-timeline__station-node--status,.agent-timeline__station-node--scheduled-one-off,.agent-timeline__station-node--scheduled-repeating{width:var(--agent-timeline-node-size);height:var(--agent-timeline-node-size);border-radius:50%;box-sizing:border-box}.agent-timeline__station-node--terminus{display:inline-flex;align-items:center;justify-content:center;color:var(--tag-category-blue-color-text);background:var(--tag-category-blue-color-background)}.agent-timeline__station-node--checklist{display:inline-flex;align-items:center;justify-content:center;color:var(--tag-category-purple-color-text);background:var(--tag-category-purple-color-background)}.agent-timeline__station-node--status{display:inline-flex;align-items:center;justify-content:center;color:var(--tag-category-orange-color-text);background:var(--tag-category-orange-color-background)}.agent-timeline__station-node--scheduled-one-off,.agent-timeline__station-node--scheduled-repeating{display:inline-flex;align-items:center;justify-content:center;color:var(--tag-category-blue-color-text);background:var(--tag-category-blue-color-background)}.agent-timeline__station-node--scheduled-repeating{color:var(--tag-category-teal-color-text, var(--tag-category-blue-color-text));background:var(--tag-category-teal-color-background, var(--tag-category-blue-color-background))}.agent-timeline__station-node--note{border:1px solid black}.agent-timeline__label{display:flex;flex:1;flex-direction:column;min-width:0;padding-top:calc((var(--agent-timeline-node-size) - 16px) / 2);font-size:12px;line-height:16px;color:var(--color-grey-900, #1f1f2e)}.agent-timeline__label-type{display:block;font-weight:600}.agent-timeline__label-entry{display:block;margin-top:2px;color:var(--color-grey-600, #6b6b7b);overflow-wrap:break-word;text-transform:lowercase}.agent-timeline__label-entry:first-letter{text-transform:uppercase}.agent-timeline__label-time{display:block;margin-top:2px;color:var(--color-grey-600, #6b6b7b);overflow-wrap:break-word}.agent-timeline__gap{position:relative;z-index:1;display:flex;flex-shrink:0;align-items:center;gap:12px;box-sizing:border-box}.agent-timeline__gap--hours{min-height:28px}.agent-timeline__gap--days{min-height:52px}.agent-timeline__gap--weeks{min-height:80px}.agent-timeline__gap-rail{display:inline-flex;flex-shrink:0;align-items:center;justify-content:center;width:var(--agent-timeline-node-size);height:100%}.agent-timeline__gap-dot{width:6px;height:6px;background-color:var(--color-grey-500, #8a8a96);border-radius:50%}.agent-timeline__gap-label{font-size:11px;font-weight:600;line-height:14px;color:var(--color-grey-600, #6b6b7b);letter-spacing:.02em}.agent-timeline__chat-node{display:inline-flex;flex-shrink:0;align-items:center;justify-content:center;width:var(--agent-timeline-node-size);height:var(--agent-timeline-node-size);padding:0;cursor:pointer;color:var(--tag-category-green-color-text);background:var(--tag-category-green-color-background);border:none;border-radius:50%;box-sizing:border-box}.agent-timeline__chat-node:hover,.agent-timeline__chat-node:focus-visible{outline:2px solid var(--color-mono-black, #202020);outline-offset:2px}.agent-timeline__chat-node--static{cursor:default}.agent-timeline__chat-node--static:hover,.agent-timeline__chat-node--static:focus-visible{outline:none}.agent-workspace__center-tabs{flex-shrink:0;padding:12px 14px 0}.agent-workspace__center-back{display:flex;flex-shrink:0;padding:8px 14px 0}.new-agent{--page-heading-spacing-gap: 0px;width:min(600px,100%);min-width:unset;max-height:calc(100vh - var(--spacing-medium));overflow:hidden;font-family:var(--font-family-standard),sans-serif;color:var(--color-grey-900, #1f1f2e)}.new-agent--embedded{width:100%;max-height:none;overflow:visible;box-sizing:border-box;padding:var(--spacing-large, 16px)}.new-agent__body{display:flex;flex-direction:column;gap:var(--spacing-large)}.new-agent__type-field{display:flex;flex-direction:column;gap:var(--spacing-small)}.new-agent__type-label{font-size:12px;font-weight:var(--font-weight-semi-bold, 600);color:var(--color-grey-600, #6b6b7b)}.new-agent__field-hint{margin:0;font-size:13px;line-height:18px;color:var(--color-grey-600, #6b6b7b)}.new-agent__form{display:flex;flex-direction:column;gap:var(--spacing-large)}.new-agent__actions{display:flex;justify-content:flex-end}.new-agent__start-button--starting .ds-icon{animation:new-agent-spin 1s linear infinite}.new-agent__error{margin:0;font-size:13px;line-height:18px;color:var(--color-danger-600, #c62828)}.new-agent__state{display:flex;flex-direction:column;align-items:center;gap:var(--spacing-medium);padding:var(--spacing-large) 0;text-align:center}.new-agent__state-message{margin:0;font-size:13px;line-height:18px;color:var(--color-grey-600, #6b6b7b)}.new-agent__state--error .new-agent__state-message{color:var(--color-danger-600, #c62828)}.new-agent__spinner{animation:new-agent-spin 1s linear infinite}@keyframes new-agent-spin{to{transform:rotate(360deg)}}.agent-view{--agent-view-column-gap: 16px;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--agent-view-column-gap);width:100%;box-sizing:border-box}.agent-view__header{display:flex;grid-column:1/-1;align-items:center;justify-content:space-between;gap:16px}.agent-view__filters{display:flex;grid-column:1/-1;flex-wrap:wrap;gap:16px}.agent-view__filter{display:flex;flex-direction:column;gap:4px;min-width:220px;max-width:280px;flex:1}.agent-view__filter-label{font-family:var(--font-family-standard),sans-serif;font-size:14px;font-weight:var(--font-weight-semi-bold);line-height:20px;color:var(--color-grey-700)}.agent-view__board{display:grid;grid-column:1/-1;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--agent-view-column-gap);align-items:stretch;width:100%;min-height:600px;border-radius:0}.agent-view__column{display:flex;flex-direction:column;min-height:0;padding:12px;border:1px solid var(--card-default-color-border);border-radius:8px;background-color:var(--card-default-color-background)}.agent-view__column-header{display:flex;align-items:center;gap:8px;margin-bottom:12px}.agent-view__column-count{margin-left:auto;font-family:var(--font-family-standard),sans-serif;font-weight:var(--font-weight-semi-bold);color:var(--color-grey-600)}.agent-view__card-list{list-style:none;margin:0;padding:0;display:flex;flex:1;flex-direction:column;gap:8px;min-height:0;overflow-y:auto}.agent-view__card{list-style:none}.agent-view__card .ds-card__container{box-shadow:0 4px 12px #20202014}.agent-view__card--expanded .ds-card__container{border-color:var(--card-default-color-border)}.agent-view__card--paused .ds-card__container,.agent-view__card--archived .ds-card__container,.agent-view__card--view-only .ds-card__container{background-color:var(--color-grey-050);box-shadow:none}.agent-view__card--skeleton{display:block}.agent-view__card-skeleton{display:block;box-sizing:border-box;border-radius:8px}.agent-view__card-toggle{display:block;width:100%;padding:0;border:0;background:none;cursor:pointer;text-align:left;font:inherit;color:inherit}.agent-view__card-content{display:flex;align-items:center;gap:8px;min-height:40px}.agent-view__card-chevron{margin-left:auto;flex-shrink:0;color:var(--color-grey-600)}.agent-view__card-invocation-name{font-family:var(--type-headings-h4-family),sans-serif;font-size:var(--type-headings-h4-size);font-weight:var(--type-headings-h4-weight);line-height:var(--type-headings-h4-line-height);color:var(--color-grey-900)}.agent-view__card-agent-name,.agent-view__card-state-pill{flex-shrink:0;padding:2px 10px;border-radius:999px;background:var(--color-grey-100);color:var(--color-grey-700);font-size:12px;font-weight:var(--font-weight-semi-bold, 600);line-height:16px;white-space:nowrap}.agent-view__card-state-pill{background:var(--color-grey-200)}.agent-view__card-progress{margin-top:12px;padding-top:12px;border-top:1px solid var(--card-default-color-border)}.agent-view__card-actions{display:flex;justify-content:space-between;align-items:center;margin-top:12px}.agent-view__archived{grid-column:1/-1;padding:12px;border:1px solid var(--card-default-color-border);border-radius:8px;background-color:var(--card-default-color-background)}.agent-view__archived-summary{display:flex;align-items:center;gap:8px;cursor:pointer;list-style:none}.agent-view__archived-summary::-webkit-details-marker{display:none}.agent-view__archived-list{margin-top:12px}.agent-view__progress-scroll{flex:0 1 auto}.agent-view__progress-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px;max-height:500px;overflow-y:auto}.agent-view__progress-item{display:flex;align-items:flex-start;gap:8px;padding-left:8px;font-family:var(--font-family-standard),sans-serif;font-size:14px;line-height:20px}.agent-view__progress-item--complete{color:var(--color-semantic-success-600)}.agent-view__progress-item--failed{color:var(--color-semantic-destructive-600)}.agent-view__progress-item--hitl{padding:8px;border-radius:6px;background-color:var(--color-semantic-warning-050);color:var(--color-semantic-warning-600)}.agent-view__progress-item--generating-a-response,.agent-view__progress-item--to-do{color:var(--color-brand-600)}.agent-view__progress-item-content{display:flex;flex:1;flex-direction:column;gap:2px;min-width:0}.agent-view__progress-label{color:var(--color-grey-900)}.agent-view__progress-description{color:var(--color-grey-600);font-size:12px;line-height:16px}.agent-view__progress-empty,.agent-view__progress-error{margin:0;font-family:var(--font-family-standard),sans-serif;font-size:14px;line-height:20px;color:var(--color-grey-600)}.agent-view__progress-error{color:var(--color-semantic-destructive-600)}.agent-view__progress-loading{display:flex;align-items:center;gap:8px;font-family:var(--font-family-standard),sans-serif;font-size:14px;line-height:20px;color:var(--color-grey-600)}.agent-view__progress-icon--spinning{animation:agent-view-icon-spin 1s linear infinite}.agent-view__status-indicator,.agent-view__dot{display:inline-flex;line-height:0}.agent-view__dot--grey-dark .ds-dot{background-color:var(--color-grey-600)}.agent-view__state{display:flex;grid-column:1/-1;flex-direction:column;align-items:center;justify-content:center;gap:var(--spacing-medium, 12px);width:100%;min-height:240px;padding:var(--spacing-xxlarge, 32px);box-sizing:border-box;border:1px solid var(--card-default-color-border);border-radius:8px;background-color:var(--card-default-color-background);text-align:center}.agent-view__state-message{margin:0;font-family:var(--font-family-standard),sans-serif;font-size:var(--font-size-3-14, 14px);line-height:20px;color:var(--color-grey-700)}.agent-view__state--error .agent-view__state-message{color:var(--color-semantic-destructive-600)}.agent-view__empty{display:grid;grid-column:1/-1;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:var(--spacing-xxlarge, 32px);justify-self:center;align-items:center;width:100%;max-width:1100px;min-height:0;padding:var(--spacing-xxlarge, 32px);box-sizing:border-box;border:1px solid var(--card-default-color-border);border-radius:8px;background-color:var(--card-default-color-background)}.agent-view__empty-content{display:flex;flex-direction:column;gap:var(--spacing-large, 16px);width:100%}.agent-view__empty-content .ds-heading{justify-content:flex-start}.agent-view__empty-lead,.agent-view__empty-hint{margin:0;font-family:var(--font-family-standard),sans-serif;font-size:var(--font-size-3-14, 14px);font-weight:var(--font-weight-regular);line-height:20px;color:var(--color-grey-700)}.agent-view__empty-hint strong{font-weight:var(--font-weight-semi-bold);color:var(--color-grey-900)}.agent-view__empty-columns{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:var(--spacing-medium, 12px)}.agent-view__empty-column{display:flex;align-items:flex-start;gap:var(--spacing-small, 8px)}.agent-view__empty-column-indicator{display:inline-flex;flex-shrink:0;line-height:0;padding-top:2px}.agent-view__empty-column-text{display:flex;flex-direction:column;gap:2px}.agent-view__empty-column-title{font-family:var(--type-headings-h4-family),sans-serif;font-size:var(--type-headings-h4-size);font-weight:var(--type-headings-h4-weight);line-height:var(--type-headings-h4-line-height);color:var(--color-grey-900)}.agent-view__empty-column-description{font-family:var(--font-family-standard),sans-serif;font-size:var(--font-size-3-14, 14px);font-weight:var(--font-weight-regular);line-height:20px;color:var(--color-grey-600)}.agent-view__empty-visual{display:flex;justify-content:center;align-items:center}.agent-view__empty-illustration{width:100%;max-width:360px;height:auto}@media (width <= 600px){.agent-view__empty{grid-template-columns:1fr}.agent-view__empty-visual{order:-1}}@keyframes agent-view-icon-spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}
|
|
1
|
+
.agent-view-frontend{--page-heading-spacing-gap: 0px;--modal-header-spacing-padding: 0px}.agent-workspace{--page-heading-spacing-gap: 0px}.scrollable-region{position:relative;isolation:isolate;display:flex;flex:1;flex-direction:column;min-height:0;min-width:0}.scrollable-region__viewport{flex:1;min-height:0;overflow:hidden auto}.scrollable-region__overlay{position:absolute;z-index:2;pointer-events:none}.scrollable-region__overlay .scrollable-region__edge{pointer-events:auto}.scrollable-region__fade{position:absolute;right:0;left:0;z-index:1;height:40px;pointer-events:none}.scrollable-region__fade--top{top:0;background:linear-gradient(to bottom,var(--color-white, #ffffff) 0%,rgba(255,255,255,0) 100%)}.scrollable-region__fade--bottom{bottom:0;background:linear-gradient(to top,var(--color-white, #ffffff) 0%,rgba(255,255,255,0) 100%)}.scrollable-region__edge{position:absolute;left:50%;z-index:2;display:inline-flex;align-items:center;justify-content:center;width:36px;height:28px;padding:0;color:var(--color-grey-600, #6b6b7b);cursor:pointer;background-color:var(--color-white, #ffffff);border:1px solid var(--card-default-color-border, #e4e4ee);border-radius:999px;box-shadow:0 2px 10px #1f1f2e1a;transform:translate(-50%);transition:color .12s ease,border-color .12s ease,box-shadow .12s ease,transform .12s ease}.scrollable-region__edge:hover{color:var(--color-brand-600);border-color:var(--color-brand-600);box-shadow:0 4px 14px #1f1f2e24}.scrollable-region__edge:focus-visible{outline:2px solid var(--color-brand-600);outline-offset:2px}.scrollable-region__edge--top{top:8px}.scrollable-region__edge--bottom{bottom:8px}.archive-agent-confirm{max-width:480px}.archive-agent-confirm__body{display:flex;flex-direction:column;gap:16px}.archive-agent-confirm__lead,.archive-agent-confirm__progress,.archive-agent-confirm__error{margin:0;font-family:var(--font-family-standard),sans-serif;font-size:14px;line-height:20px;color:var(--color-grey-700)}.archive-agent-confirm__progress{font-weight:var(--font-weight-semi-bold, 600);color:var(--color-grey-900)}.archive-agent-confirm__error{margin-top:12px;color:var(--color-semantic-destructive-600)}.archive-agent-confirm__actions{display:flex;justify-content:flex-end;gap:8px}.ask-arbor-prompt-library{width:100%;box-sizing:border-box}.ask-arbor-prompt-library__grid{display:grid;grid-template-columns:repeat(2,1fr);gap:8px}.ask-arbor-prompt-library__grid-item{display:flex;flex-direction:column;min-width:0}.ask-arbor-prompt-library__grid-item--full-width{grid-column:1/-1}.ask-arbor-prompt-library__expanded-block{width:100%;display:flex;flex-direction:column;min-width:0}.ask-arbor-prompt-library__expanded-block .ask-arbor-prompt-library__category{border-bottom-left-radius:0;border-bottom-right-radius:0}.ask-arbor-prompt-library__expanded-block .ask-arbor-prompt-library__drawer{margin-top:0;border-top-left-radius:0;border-top-right-radius:0}.ask-arbor-prompt-library__category{width:100%;border-radius:8px;border:1px solid #dfdcdb;background:#fff;overflow:hidden;box-sizing:border-box;transition:box-shadow .25s ease;cursor:pointer;height:100%}.ask-arbor-prompt-library__category:hover .ask-arbor-prompt-library__header{border-color:#dfdcdb;background:#f9f8f8}.ask-arbor-prompt-library__category--expanded{box-shadow:0 4px 12px #20202014;height:auto}.ask-arbor-prompt-library__header{display:grid;grid-template-columns:auto 1fr auto;grid-template-rows:auto auto;gap:8px;width:100%;height:100%;padding:14px 16px;cursor:pointer;border-radius:8px;box-sizing:border-box;transition:border-color .15s ease,background .15s ease}.ask-arbor-prompt-library__header:focus{outline:none}.ask-arbor-prompt-library__icon-circle{grid-column:1;grid-row:1;align-self:center;box-sizing:border-box;display:flex;flex-direction:row;align-items:center;justify-content:center;padding:6px;gap:0;width:24px;height:24px;border-radius:6px}.ask-arbor-prompt-library__category--green .ask-arbor-prompt-library__icon-circle{background:#e1eed3;color:#355629}.ask-arbor-prompt-library__category--blue .ask-arbor-prompt-library__icon-circle{background:#daf9ff;color:#227280}.ask-arbor-prompt-library__category--purple .ask-arbor-prompt-library__icon-circle{background:#f0d7e5;color:#cc79a7}.ask-arbor-prompt-library__category--orange .ask-arbor-prompt-library__icon-circle{background:#fef2e4;color:#7c4a0f}.ask-arbor-prompt-library__category--teal .ask-arbor-prompt-library__icon-circle{background:#c6e7e4;color:#40b0a6}.ask-arbor-prompt-library__category--salmon .ask-arbor-prompt-library__icon-circle{background:#efc4bf;color:#ed8a7a}.ask-arbor-prompt-library__category--yellow .ask-arbor-prompt-library__icon-circle{background:#fefad9;color:#7e700b}.ask-arbor-prompt-library__header-text{grid-column:2;grid-row:1;min-width:0;align-self:center}.ask-arbor-prompt-library__title{margin:0;font-size:14px;font-weight:600;color:#3c3735;line-height:1.25;width:100%}.ask-arbor-prompt-library__description{grid-column:1/-1;grid-row:2;margin:0;font-size:12px;font-weight:400;color:#595350;line-height:1.2;width:100%;box-sizing:border-box}.ask-arbor-prompt-library__chevron{grid-column:3;grid-row:1;align-self:center;flex-shrink:0}.ask-arbor-prompt-library__drawer{margin-top:6px;border-radius:0 0 8px 8px;border:1px solid #dfdcdb;border-top:none;background:#fff;box-shadow:0 2px 8px #20202014;box-sizing:border-box;padding:10px;display:flex;flex-direction:column;gap:8px;overflow:hidden;animation:ask-arbor-drawer-enter .25s ease}@keyframes ask-arbor-drawer-enter{0%{opacity:0;transform:translateY(-12px)}to{opacity:1;transform:translateY(0)}}.ask-arbor-prompt-library__prompt-group{display:flex;flex-direction:column;margin-top:5px}.ask-arbor-prompt-library__prompt-group+.ask-arbor-prompt-library__prompt-group{padding-top:10px}.ask-arbor-prompt-library__prompt-group .ds-tag{align-self:flex-start;font-size:12px}.ask-arbor-prompt-library__prompts{display:flex;flex-direction:column;gap:4px;padding-top:10px}.ask-arbor-prompt-library__prompt-row{box-sizing:border-box;display:flex;flex-direction:row;justify-content:space-between;align-items:center;width:calc(100% - 10px);margin-left:10px;margin-right:10px;padding:10px 10px 10px 20px;gap:11px;background:#f9f8f8;border:1px solid #efeeed;border-radius:8px;cursor:pointer;font-size:14px;font-weight:400;color:#3c3735;text-align:left;transition:background .15s ease}.ask-arbor-prompt-library__prompt-row:hover{background:#efeeed}.ask-arbor-prompt-library__prompt-row:focus{outline:none}.ask-arbor-prompt-library__prompt-text{flex:1;min-width:0;font-size:14px;line-height:1.3}.ask-arbor-settings{position:absolute;bottom:100%;right:0;margin-bottom:4px;min-width:160px;padding:2px 0;background:#fff;border:1px solid #dfdcdb;border-radius:8px;box-shadow:0 4px 12px #20202014;z-index:10}.ask-arbor-settings__item{display:flex;flex-direction:row;align-items:center;gap:8px;width:100%;padding:4px 8px;border:none;background:none;font-size:14px;line-height:120%;color:#3c3735;text-align:left;cursor:pointer;text-decoration:none}.ask-arbor-settings__item:hover{background:#efeeed}.ask-arbor-settings__label{flex:1}.ask-arbor-input{display:flex;flex-direction:column;align-items:center;gap:7px;position:relative;width:100%;max-width:548px}.ask-arbor-input__content{display:flex;flex-direction:column;align-items:center;gap:7px;flex:1;min-width:0;width:100%}.ask-arbor-input__file-input{position:absolute;width:0;height:0;opacity:0;overflow:hidden;pointer-events:none}.ask-arbor-input__frame{box-sizing:border-box;display:flex;flex-direction:column;align-items:flex-start;gap:16px;width:100%;min-height:97px;padding:16px;background:#fff;border:1px solid #dfdcdb;border-radius:8px;box-shadow:0 4px 12px #20202014;position:relative}.ask-arbor-input__frame:focus-within{border-color:#68aa22}.ask-arbor-input__frame--dragging{border-color:#ada8a6;border-style:dashed}.ask-arbor-input__frame--dragging-rejected{border-color:#fa9d9d;background:#fde2e2}.ask-arbor-input__drop-overlay{position:absolute;top:0;right:0;bottom:0;left:0;z-index:2;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;border-radius:7px;background:#ffffffeb;pointer-events:none}.ask-arbor-input__drop-overlay--rejected{background:#fde2e2f0}.ask-arbor-input__drop-overlay-text{font-size:14px;line-height:120%;color:#3c3735}.ask-arbor-input__drop-overlay--rejected .ask-arbor-input__drop-overlay-text{color:#9d1010;font-weight:600}.ask-arbor-input__drop-overlay-hint{font-size:12px;line-height:120%;color:#9d1010;text-align:center;max-width:80%}.ask-arbor-input__upload-rejection{position:absolute;top:0;right:0;bottom:0;left:0;z-index:3;display:flex;align-items:center;gap:8px;padding:0 28px 0 16px;border-radius:7px;background:#fde2e2;color:#9d1010;font-size:14px;line-height:120%;cursor:pointer}.ask-arbor-input__upload-rejection-text{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ask-arbor-input__file-cards{display:flex;flex-wrap:wrap;gap:8px;width:100%}.ask-arbor-input__file-cards--hidden{display:none}.ask-arbor-input__file-card{display:inline-flex;align-items:center;gap:6px;max-width:min(100%,280px);min-width:0;overflow:hidden;padding:8px 10px;background:#f9f8f8;border:1px solid #dfdcdb;border-radius:8px;color:#3c3735}.ask-arbor-input__file-card-name{flex:1 1 auto;min-width:0;font-size:13px;line-height:120%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ask-arbor-input__file-card-dismiss{display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;border:none;background:transparent;color:inherit;cursor:pointer;padding:0}.ask-arbor-input__upload-rejection-dismiss{display:inline-flex;align-items:center;justify-content:center;border:none;background:transparent;color:inherit;cursor:pointer;position:absolute;top:50%;right:0;transform:translateY(-50%)}.ask-arbor-input__input-zone{display:flex;flex-direction:column;gap:16px;width:100%}.ask-arbor-input__input-row{display:flex;align-items:center;gap:4px;width:100%;min-height:17px}.ask-arbor-input__textarea{flex:1;min-width:0;border:none;background:transparent;resize:none;font-size:14px;line-height:120%;color:#3c3735;outline:none}.ask-arbor-input__textarea::placeholder{color:#c7c4c3}@supports (field-sizing: content){.ask-arbor-input__textarea{field-sizing:content;max-height:300px}}.ask-arbor-input__bottom-actions{display:flex;justify-content:flex-end;align-items:center;gap:8px;width:100%;height:32px}.ask-arbor-input__actions-right{display:flex;justify-content:flex-end;align-items:center;gap:8px;flex:1}.ask-arbor-input__timer{margin-right:4px;font-size:14px;line-height:120%;color:#3c3735}.ask-arbor-input__settings-wrap{position:relative}.ask-arbor-input__settings-btn--open{background:#efeeed}.ask-arbor-input__disclaimer{width:100%;margin:0;font-size:12px;line-height:120%;color:#3c3735;text-align:center}.chat-message__canvas-table{width:100%;margin:0;min-width:0}.canvas-table__no-data{margin:0;padding:20px;font-size:14px;text-align:center;color:#ada8a6}.canvas-widget-host{display:block;max-width:100%;min-width:0}.canvas-widget{max-width:100%;width:100%;box-sizing:border-box;min-width:0;padding:var(--spacing-small);--ico-text-spacing-gap-horizontal: var(--spacing-small);--ico-text-spacing-gap-vertical: var(--spacing-xsmall)}.canvas-widget .ds-card__content,.canvas-widget .ds-ico-text{align-items:center}.canvas-widget .ds-ico-text__heading{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:100%;font-size:12px;line-height:1.3}.canvas-widget .ds-ico-text__heading .ds-article-card__primary-link{color:inherit;font-family:var(--type-headings-h4-family);font-size:12px;font-weight:var(--type-headings-h4-weight);line-height:1.3;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;display:block;max-width:100%}.canvas-widget .ds-ico-text__paragraph{font-size:12px;line-height:1.3}.canvas-widget.canvas-widget--file,.canvas-widget.canvas-widget--info{background:#daf9ff}.canvas-widget.canvas-widget--warning{background:#fef2e4}.canvas-widget.canvas-widget--error{background:#fde2e2}.chat-message__canvas-element{max-width:100%;margin:8px 0 12px;padding:0;background:#fff;box-sizing:border-box}.chat-message__canvas-element[data-content-type=WIDGET]{max-width:80%;width:100%;margin-right:auto}.chat-message__canvas-element-header{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:4px}.chat-message__canvas-element-title{margin:0;font-size:13px;font-weight:600;line-height:18px;color:#3c3735;min-width:0;flex:1}.chat-message__canvas-element-subtitle{margin:0 0 10px;font-size:12px;line-height:16px;color:#595350}.chat-message__canvas-html{font-size:13px;line-height:18px}.chat-message__canvas-html p{margin:0 0 8px}.chat-message__footer-actions,.chat-message--warning,.chat-message--error,.chat-message--info,.chat-message--agent{max-width:80%;width:auto;margin-right:auto}.chat-message-container{margin-bottom:10px}.chat-message-container--user{display:flex;flex-direction:column;align-items:flex-end;gap:8px;width:100%}.chat-message-container--user .chat-message__canvas-element{max-width:80%;width:100%;min-width:0;align-self:flex-start;margin:0 auto 0 0}.chat-message-container--user:not(:has(.chat-message)){margin-bottom:4px}.chat-message-container--agent{display:inline-flex;flex-direction:column;align-items:stretch;margin-right:auto;min-width:100%}.chat-message-container__content{display:flex;flex-direction:column;width:fit-content;max-width:100%;align-self:flex-start}.chat-message-container__content:has(.chat-message__canvas-element){width:100%}.chat-message{border-radius:5px;padding:10px;position:relative;white-space:pre-wrap;line-height:18px;align-items:center}.chat-message a{text-decoration:none;color:#f7931e;cursor:pointer}.chat-message a:hover{text-decoration:underline}.chat-message--user{background-color:#efeeed;max-width:80%;width:auto;margin-left:auto}.chat-message--agent{padding-left:0}.chat-message--info{background-color:#daf9ff}.chat-message--error{background-color:#fde2e2}.chat-message--warning{background-color:#fef2e4}.chat-message--error,.chat-message--info,.chat-message--warning{display:flex;align-items:flex-start;gap:8px}.chat-message--error .chat-message__icon,.chat-message--info .chat-message__icon,.chat-message--warning .chat-message__icon{flex-shrink:0;width:35px;display:flex;align-items:center;justify-content:center;font-size:25px}.chat-message__footer-actions{display:flex;flex-direction:row;justify-content:flex-start;align-items:flex-start;margin-top:9px;min-width:0;box-sizing:border-box}.chat-message__follow-up-prompts{flex-grow:1;max-width:90%}.chat-message__follow-up-prompts-list{display:flex;flex-flow:row wrap;gap:8px;list-style:none;margin:0;padding:0}.chat-message__follow-up-prompts-list li{max-width:100%}.chat-message__footer-icons{display:flex;flex-direction:row;align-items:center;gap:0;flex:none}.chat-message__feedback{display:flex;flex-direction:row;align-items:center;justify-content:flex-start;padding:0 0 4px;background:#fff;flex:none;align-self:stretch;flex-grow:0;min-width:0}.chat-message__feedback-question{font-weight:400;font-size:14px;line-height:120%;display:flex;align-items:center;color:#3c3735;flex:none;flex-grow:0}.chat-message__feedback-buttons{display:flex;flex-direction:row;align-items:center;padding:0;gap:0;flex:none;flex-grow:0}.chat-message__feedback-button{display:flex;flex-direction:row;justify-content:flex-start;align-items:center;padding:6px 12px;gap:8px;min-height:36px;height:36px;box-sizing:border-box;background:#fff;border:none;cursor:pointer;font-style:normal;font-weight:700;font-size:18px;line-height:120%}.chat-message__feedback-button--up,.chat-message__feedback-button--up .chat-message__feedback-button-icon,.chat-message__feedback-button--up .chat-message__feedback-button-text{color:#3c3735}.chat-message__feedback-button--down{width:180px;color:#595350}.chat-message__feedback-button--down .chat-message__feedback-button-icon,.chat-message__feedback-button--down .chat-message__feedback-button-text{color:#595350}.chat-message__feedback-button--selected.chat-message__feedback-button--up,.chat-message__feedback-button--selected.chat-message__feedback-button--up .chat-message__feedback-button-icon,.chat-message__feedback-button--selected.chat-message__feedback-button--up .chat-message__feedback-button-text{color:#4e801a}.chat-message__feedback-button--selected.chat-message__feedback-button--down,.chat-message__feedback-button--selected.chat-message__feedback-button--down .chat-message__feedback-button-icon,.chat-message__feedback-button--selected.chat-message__feedback-button--down .chat-message__feedback-button-text{color:#b96e16}.chat-message__feedback-button-icon{flex:none;width:18px;height:18px;font-size:18px;line-height:1;display:flex;align-items:center;justify-content:center;color:inherit}.chat-message__feedback-button-icon svg{width:18px;height:18px}.chat-message__feedback-button-text{flex:none;white-space:nowrap;font-size:14px}.chat-message__icon{top:10px}.chat-message--info .chat-message__icon{color:#33aabf}.chat-message--error .chat-message__icon{color:#9d1010}.chat-message--warning .chat-message__icon{color:#b96e16}.keyboard-shortcut-menu{position:absolute;left:0;width:100%;z-index:1000;top:auto;bottom:100%;margin-bottom:8px}.keyboard-shortcut-menu.keyboard-shortcut-menu-below{bottom:auto;top:60%;margin-bottom:0}.keyboard-shortcut-menu.keyboard-shortcut-menu-hidden{opacity:0;pointer-events:none;visibility:hidden}.keyboard-shortcut-menu .keyboard-shortcut-menu__content{border:solid 1px #c7c4c3;background-color:#fff;border-radius:4px;box-shadow:0 3px 3px #dfdcdb;width:100%;max-height:300px;overflow-y:auto}.keyboard-shortcut-menu .keyboard-shortcut-menu__header{display:flex;justify-content:space-between;align-items:center;padding:10px 12px;border-bottom:1px solid #dfdcdb}.keyboard-shortcut-menu .keyboard-shortcut-menu__close{cursor:pointer;padding:0;display:flex;align-items:center;justify-content:center;width:28px;height:28px;background:none;border:none;border-radius:4px}.keyboard-shortcut-menu .keyboard-shortcut-menu__close:hover{background:#efeeed}.keyboard-shortcut-menu .keyboard-shortcut-menu__close:focus-visible{outline:2px solid #68aa22;outline-offset:2px}.keyboard-shortcut-menu .keyboard-shortcut-menu__close-icon{font-size:8px}.keyboard-shortcut-menu .keyboard-shortcut-menu__search{display:flex;align-items:center;padding:8px 0;width:100%}.keyboard-shortcut-menu .keyboard-shortcut-menu__search input{flex:1;border:none;outline:none;font-size:14px;padding:4px 0}.keyboard-shortcut-menu .keyboard-shortcut-menu__items{max-height:200px;overflow-y:auto;list-style-type:none;padding:0;margin:0}.keyboard-shortcut-menu .keyboard-shortcut-menu__item{display:flex;padding:8px 12px;cursor:pointer;transition:background-color .1s ease;text-decoration:none!important;color:inherit;align-items:center;gap:8px}.keyboard-shortcut-menu .keyboard-shortcut-menu__item:hover{background-color:#dfdcdb}.keyboard-shortcut-menu .keyboard-shortcut-menu__item--selected{background-color:#c7c4c3;font-weight:500}.keyboard-shortcut-menu .keyboard-shortcut-menu__item-reference{min-width:100px}.keyboard-shortcut-menu .keyboard-shortcut-menu__item-description{margin-left:8px}.keyboard-shortcut-menu .keyboard-shortcut-menu__item-main{font-weight:800;color:#595350;text-decoration:none!important}.keyboard-shortcut-menu .keyboard-shortcut-menu__item-secondary{color:#776e6a;font-weight:500;text-decoration:none}.keyboard-shortcut-menu .keyboard-shortcut-menu__no-results{padding:12px;color:#ada8a6;text-align:center;font-style:italic}.loading-spinner{display:inline-block;position:relative;width:50px;height:50px;flex-shrink:0}.loading-spinner__inner{position:relative;animation-name:arbor-logo-rotation;animation-duration:1s;animation-iteration-count:infinite;animation-timing-function:ease-in-out;transform-origin:25px 25px}.loading-spinner__circle{height:50px;width:50px;border-radius:100%;opacity:.9;animation-duration:1s;animation-direction:alternate;animation-iteration-count:infinite;animation-timing-function:ease-in-out;position:absolute}.loading-spinner__circle-left{background-color:#7cb93c;animation-name:arbor-logo-left}.loading-spinner__circle-top{background-color:#f7931c;animation-name:arbor-logo-top}.loading-spinner__circle-right{background-color:#deee21;animation-name:arbor-logo-right}.loading-spinner__circle-bottom{background-color:#afd317;animation-name:arbor-logo-bottom}@keyframes arbor-logo-rotation{0%{rotate:0}to{rotate:360deg}}@keyframes arbor-logo-left{0%{left:-25px}to{left:0}}@keyframes arbor-logo-right{0%{left:25px}to{left:0}}@keyframes arbor-logo-top{0%{top:-25px}to{top:0}}@keyframes arbor-logo-bottom{0%{top:25px}to{top:0}}@keyframes chat-panel-notify-button-fade-in{0%{opacity:0}to{opacity:1}}.chat-panel__loading-container{display:flex;flex-direction:column;gap:0;position:relative;left:-5px}.chat-panel__loading-content{display:flex;flex-direction:row;align-items:center}.chat-panel__loading-spinner-container{background-color:#eee;display:flex;justify-content:center;align-items:center;flex-shrink:0;border-radius:4px}.loading-spinner.chat-panel__loading-spinner{flex-shrink:0;transform:scale(.25);width:40px;height:40px;position:relative;left:-1px;top:-1px}.chat-panel__loading-phrase{font-size:14px;color:#3c3735;opacity:1;transition:opacity .3s ease-in-out;flex-grow:1;display:flex;align-items:center}.chat-panel__loading-phrase.fade-out{opacity:0}.chat-panel__loading-phrase.fade-in{opacity:1}.chat-panel__notify-later{margin-left:40px;display:flex;flex-direction:column;align-items:flex-start;gap:12px;animation:chat-panel-notify-button-fade-in .3s ease-in-out forwards}.chat-panel__notify-later-message{font-size:14px;font-weight:400;line-height:1.4;color:#3c3735;margin:0}.chat-panel__notify-later-btn{display:inline-flex;align-items:center;justify-content:center;padding:6px 14px;border-radius:4px;border:1px solid #dfdcdb;background:#fff;font-size:14px;cursor:pointer;color:#3c3735}.chat-panel__notify-later-btn:hover{background:#efeeed}.chat-panel{display:flex;flex-direction:column}.chat-panel .chat-panel__body{flex:1;min-height:0;display:flex;flex-direction:column;overflow:hidden;padding-bottom:20px}.chat-panel .chat-panel__body--no-messages{padding-bottom:0;flex:none}.chat-panel .chat-panel__message-list-wrapper{position:relative;flex:1;min-height:0;display:flex;flex-direction:column;overflow:hidden}.chat-panel .chat-panel-message-list{display:flex;flex-direction:column;list-style-type:none;margin:0;flex:1;min-height:0;overflow-y:auto;padding:0 24px}.chat-panel .chat-panel__body:has(.chat-panel__message-list-wrapper){min-height:calc(100vh - 240px)}.chat-panel .chat-panel__body:has(.chat-panel__message-list-wrapper) .chat-panel__input-container{position:sticky;bottom:0;z-index:1;background-color:#fff}.chat-panel .chat-panel-footer{position:relative;top:-12px}.chat-panel .chat-panel__active-chat-header{display:flex;justify-content:flex-end;align-items:center;width:100%;box-sizing:border-box;margin-bottom:10px;padding:0}.chat-panel .chat-panel__active-chat-header .chat-panel__new-chat-button{display:inline-block;padding:6px 14px;border-radius:4px;font-size:14px;font-weight:600;background-color:#68aa22;color:#fff;text-decoration:none;border:none;cursor:pointer}.chat-panel .chat-panel__active-chat-header .chat-panel__new-chat-button:hover{background-color:#4e801a}.chat-panel .chat-panel__tabs{flex-shrink:0;padding:0 16px}.chat-panel .chat-panel__tab-content{flex:1;min-height:0;overflow-y:auto;display:flex;flex-direction:column;padding-top:16px}.chat-panel .chat-panel__tab-content:has(.chat-panel__tab-panel--recent){padding-top:0}.chat-panel .chat-panel__tab-panel--recent{flex:1;min-height:0;overflow-y:auto}.chat-panel .chat-panel__ai-interactions-loading,.chat-panel .chat-panel__ai-interactions-empty{padding:32px 24px;color:#595350;font-size:14px;text-align:center}.chat-panel .chat-panel__ai-interactions-table{width:100%;margin:0}.chat-panel .chat-panel__ai-interactions-table .ag-row{cursor:pointer}.chat-panel .chat-panel__sample-prompt-container{display:flex;justify-content:space-evenly;padding:0 23px;gap:10px}.chat-panel .chat-panel__sample-prompt{display:flex;text-align:left;border-radius:5.5px;border:1px solid #dfdcdb;padding:12px;cursor:pointer;font-size:14px;flex:1;line-height:19px;background-color:#fff;filter:drop-shadow(0 4px 12px rgba(32,32,32,.08))}.chat-panel .chat-panel__sample-prompt:hover{background-color:#f9f9f9}.chat-panel .chat-panel__daily-prompt{display:flex;text-align:left;border-radius:5.5px;border:1px solid #dfdcdb;padding:12px;cursor:pointer;font-size:14px;flex:1;line-height:19px;background-color:#f8fff1}.chat-panel .chat-panel__daily-prompt:hover{background-color:#e0f5d8}.chat-panel .chat-panel__message-limit{position:absolute;bottom:0;right:0;padding:4px;border-radius:2px;background-color:#efeeed}.chat-panel .chat-panel__input-container{flex-shrink:0;display:flex;gap:9px;padding:7px 24px;min-height:50px}.chat-panel .chat-panel__input-wrapper{position:relative;flex:1;display:flex;flex-direction:column;min-width:0}.chat-panel .chat-panel__input-wrapper .ask-arbor-input{width:100%;max-width:none}.chat-panel .chat-panel__speech-disabled-wrapper{text-align:left;padding-left:20px;padding-bottom:10px;font-style:italic}.chat-panel .chat-panel__chat-intro{flex:1;max-height:140px;display:flex;flex-direction:column;padding:32px 72px}.chat-panel .chat-panel__chat-intro-frame{display:flex;flex-direction:row;justify-content:center;align-items:center;padding:0;gap:12px;flex:none}.chat-panel .chat-panel__chat-intro-icon{display:inline-flex;flex:none;width:40px;height:42px;align-items:center;justify-content:center}.chat-panel .chat-panel__chat-intro-icon svg{width:40px;height:42px}.chat-panel .chat-panel__chat-intro-heading{font-style:normal;font-weight:700;font-size:20px;line-height:120%;display:flex;align-items:center;color:#3c3735;margin:0;flex:none}.chat-panel .chat-panel__chat-intro-body{font-style:normal;font-weight:400;font-size:14px;line-height:120%;display:flex;align-items:center;text-align:center;color:#3c3735;margin:0;flex:none;align-self:stretch;max-width:436px}.chat-panel table{width:100%;border-collapse:separate;border-spacing:0;margin:20px 0;font-size:14px;text-align:left;border:1px solid #dfdcdb;border-radius:4px;overflow:scroll}.chat-panel table thead{background-color:#f9f8f8;border-bottom:1px solid #ada8a6}.chat-panel table thead th{padding:10px;font-weight:700;border-bottom:1px solid #ada8a6}.chat-panel table tbody th{padding-left:10px;border-bottom:1px solid #ada8a6}.chat-panel table tbody tr{height:35px}.chat-panel table tbody tr:nth-child(odd){background-color:#fff}.chat-panel table tbody tr:nth-child(2n){background-color:#f9f8f8}.chat-panel table tbody tr td{padding:10px;border-bottom:1px solid #ada8a6;vertical-align:top}.chat-panel table tbody tr:last-child td{border-bottom:none}.chat-panel .chat-panel__message-tag{background-color:#c7c4c3;font-weight:700}.canvas-element__subheading{margin:0 0 8px;font-size:12px;line-height:16px}.canvas__element-individual-container-chart{height:250px;width:100%;overflow:visible}.canvas__element-individual-container-chart .dashboard-chart-container{height:100%;width:100%}.canvas__chart-error{display:flex;flex-direction:column;justify-content:center;height:100%;padding:16px;box-sizing:border-box}.canvas__chart-error-message{font-weight:600;margin-bottom:8px}.canvas__chart-error-details{font-size:13px}.resource-preview-slideover__body{display:flex;flex:1;flex-direction:column;min-height:0;height:100%;padding:0 12px 12px;box-sizing:border-box}.resource-preview-slideover__status,.resource-preview-slideover__error{display:flex;align-items:center;gap:8px;margin:0;font-size:14px;line-height:20px;color:var(--color-grey-700, #374151)}.resource-preview-slideover__error{color:var(--color-semantic-danger-700, #b91c1c)}.resource-preview-slideover__frame{flex:1;width:100%;min-height:0;border:1px solid var(--card-default-color-border, #e4e4ee);border-radius:12px;background:var(--color-grey-000, #fff);padding:5px}.agent-workspace{--modal-header-spacing-padding: 16px;width:calc(100vw - 32px);height:calc(100vh - 32px);min-width:unset;max-width:calc(100vw - 32px);max-height:calc(100vh - 32px);overflow:hidden;font-family:var(--font-family-standard),sans-serif}.agent-workspace__header-title{display:flex;align-items:center;gap:12px;min-width:0;flex:1}.agent-workspace__header-title .ds-modal__title{font-size:var(--type-headings-h3-size, 18px);font-weight:var(--type-headings-h3-weight, 600);line-height:var(--type-headings-h3-line-height, 24px);min-width:0}.agent-workspace__header-name{min-width:0;max-width:100%}.agent-workspace__header-avatar{display:inline-flex;align-items:center;justify-content:center;width:32px;height:32px;color:var(--color-brand-600);border-radius:50%}.agent-workspace__header-actions{display:flex;align-items:center;gap:8px}.agent-workspace__phase{padding:2px 10px;font-size:12px;font-weight:var(--font-weight-semi-bold, 600);color:var(--color-grey-600, #6b6b7b);background-color:var(--color-grey-100, #f0f0f3);border-radius:999px}.agent-workspace__phase--running{color:var(--color-brand-600);background-color:var(--color-brand-050)}.agent-workspace__phase--paused{color:var(--color-semantic-warning-600, #b45309);background-color:var(--color-semantic-warning-050, #fff7ed)}.agent-workspace__phase--complete{color:var(--color-semantic-success-600, #15803d);background-color:var(--color-semantic-success-050, #ecfdf3)}.agent-workspace__phase--archived{color:var(--color-grey-700, #4b4b5c);background-color:var(--color-grey-200, #e4e4ee)}.agent-workspace__body{position:relative;display:grid;grid-template-columns:minmax(0,1fr) minmax(220px,1fr) minmax(240px,1fr);gap:16px;flex:1;min-height:0;padding:16px;background-color:var(--color-grey-050, #f7f7f8)}.agent-workspace__body--no-checklist{grid-template-columns:minmax(0,1fr) minmax(240px,1fr)}.agent-workspace__body--no-resources{grid-template-columns:minmax(0,1fr) minmax(220px,1fr)}.agent-workspace__body--no-checklist.agent-workspace__body--no-resources{grid-template-columns:minmax(0,1fr)}.agent-workspace__panel{display:flex;flex-direction:column;min-height:0;background-color:var(--color-white, #ffffff);border:1px solid var(--card-default-color-border, #e4e4ee);border-radius:12px}.agent-workspace__panel--chat{background-color:var(--color-white, #ffffff);overflow:hidden}.agent-workspace__panel--chat.agent-workspace__panel--timeline{overflow:hidden}.agent-workspace__chat-keep-alive:not([hidden]){display:flex;flex:1;flex-direction:column;min-height:0}.agent-workspace__chat-body{display:flex;flex:1;flex-direction:column;min-height:0}.agent-workspace__ask-arbor{display:flex;flex:1;flex-direction:column;min-height:0;padding-top:20px}.agent-workspace__ask-arbor>.scrollable-region{flex:1;min-height:0}.agent-workspace__ask-arbor .chat-panel{flex:1;min-height:0;height:100%;border:none;border-radius:0}.agent-workspace__ask-arbor .chat-panel__body:has(.chat-panel__message-list-wrapper){min-height:0}.agent-workspace__ask-arbor .chat-panel__tabs{display:none}.agent-workspace__ask-arbor .canvas-widget.ds-card__container{--card-spacing-vertical: var(--spacing-small);--card-spacing-horizontal: var(--spacing-small);--card-spacing-gap-vertical: var(--spacing-xsmall);--card-spacing-gap-horizontal: var(--spacing-small);--ico-text-spacing-gap-horizontal: var(--spacing-small);--ico-text-spacing-gap-vertical: var(--spacing-xsmall);padding:var(--spacing-small)}.agent-workspace__ask-arbor .canvas-widget .ds-card__content,.agent-workspace__ask-arbor .canvas-widget .ds-ico-text{align-items:center}.agent-workspace__ask-arbor .canvas-widget .ds-ico-text__heading,.agent-workspace__ask-arbor .canvas-widget .ds-ico-text__heading .ds-article-card__primary-link{font-size:12px;line-height:1.3;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:100%}.agent-workspace__ask-arbor .canvas-widget .ds-ico-text__paragraph{font-size:12px;line-height:1.3}.agent-workspace__ask-arbor .chat-message-container--user:has(.canvas-widget--file)>.chat-message.chat-message--user:not(:has(:not(span))),.agent-workspace__ask-arbor .chat-message-container--user:has(.canvas-widget--file)>.chat-message.chat-message--user:has(>span:only-child:empty){display:none}.agent-workspace__panel-header{display:flex;align-items:center;gap:8px;padding:12px 14px;border-bottom:1px solid var(--card-default-color-border, #e4e4ee)}.agent-workspace__panel-count{margin-left:auto;font-weight:var(--font-weight-semi-bold, 600);color:var(--color-grey-600, #6b6b7b)}.agent-workspace__panel-header-action{margin-left:auto}.agent-workspace__panel-body{display:flex;flex:1;flex-direction:column;min-height:0;overflow:hidden}.agent-workspace__panel-body .scrollable-region__viewport{padding:12px 14px}.agent-workspace__panel-hint{margin:0 0 12px;font-size:13px;line-height:18px;color:var(--color-grey-600, #6b6b7b)}.agent-workspace__chat-scroll{flex:1;min-height:0;padding:20px;overflow-y:auto}.agent-workspace__messages{display:flex;flex-direction:column;gap:16px;margin:0;padding:0;list-style:none}.agent-workspace__message{display:flex;gap:10px;max-width:82%}.agent-workspace__message--user{align-self:flex-end;flex-direction:row-reverse}.agent-workspace__message--system{align-self:center;max-width:100%}.agent-workspace__message-body{display:flex;flex-direction:column;gap:8px;min-width:0}.agent-workspace__bubble{padding:10px 14px;font-size:14px;line-height:20px;white-space:pre-wrap;background-color:var(--color-grey-100, #f0f0f3);border-radius:14px}.agent-workspace__message--agent .agent-workspace__bubble{background-color:var(--color-brand-050);border-bottom-left-radius:4px}.agent-workspace__message--user .agent-workspace__bubble{color:var(--color-white, #ffffff);background-color:var(--color-brand-600);border-bottom-right-radius:4px}.agent-workspace__message--system .agent-workspace__bubble{font-size:13px;color:var(--color-grey-600, #6b6b7b);background-color:var(--color-grey-100, #f0f0f3)}.agent-workspace__chips{display:flex;flex-wrap:wrap;gap:8px}.agent-workspace__chip{padding:6px 12px;font:inherit;font-size:13px;color:var(--color-brand-800);cursor:pointer;background-color:var(--color-white, #ffffff);border:1px solid var(--card-default-color-border, #e4e4ee);border-radius:999px;transition:background-color .15s ease,border-color .15s ease}.agent-workspace__chip:hover{background-color:var(--color-brand-050);border-color:var(--color-brand-600)}.agent-workspace__typing{display:inline-flex;gap:4px;align-items:center}.agent-workspace__typing span{width:6px;height:6px;background-color:var(--color-grey-600, #6b6b7b);border-radius:50%;animation:agent-workspace-typing 1.2s infinite ease-in-out}.agent-workspace__typing span:nth-child(2){animation-delay:.15s}.agent-workspace__typing span:nth-child(3){animation-delay:.3s}.agent-workspace__notice{display:flex;align-items:center;gap:8px;margin:0 16px 12px;padding:10px 14px;font-size:13px;color:var(--color-grey-600, #6b6b7b);background-color:var(--color-grey-050, #f7f7f8);border:1px solid var(--card-default-color-border, #e4e4ee);border-radius:12px}.agent-workspace__composer{display:flex;align-items:flex-end;gap:8px;padding:12px 16px 16px;border-top:1px solid var(--card-default-color-border, #e4e4ee)}.agent-workspace__composer-input{flex:1;max-height:140px}.agent-workspace__file-input{display:none}.agent-workspace__resource-list{display:flex;flex-direction:column;gap:8px;margin:0;padding:0;list-style:none}.agent-workspace__resource-card{display:flex;align-items:flex-start;gap:10px;width:100%;padding:12px;border:1px solid var(--card-default-color-border, #e4e4ee);border-radius:12px;background:var(--color-white, #ffffff);text-align:left;text-decoration:none;color:inherit;cursor:pointer;font:inherit;transition:border-color .15s ease,box-shadow .15s ease}.agent-workspace__resource-card:hover,.agent-workspace__resource-card:focus-visible{border-color:var(--color-brand-600);box-shadow:0 1px 4px #00000014}.agent-workspace__resource-card:focus-visible{outline:2px solid var(--color-brand-600);outline-offset:2px}.agent-workspace__resource-icon{display:inline-flex;align-items:center;justify-content:center;flex:none;width:32px;height:32px;border-radius:8px;background:var(--color-brand-050)}.agent-workspace__resource-icon--document_html,.agent-workspace__resource-icon--file{background:var(--color-semantic-caution-050)}.agent-workspace__resource-icon--link{background:var(--color-semantic-info-050)}.agent-workspace__resource-icon--workflow{background:var(--color-semantic-warning-050)}.agent-workspace__resource-content{display:flex;flex:1;flex-direction:column;gap:4px;min-width:0}.agent-workspace__resource-top{display:flex;align-items:center;justify-content:space-between;gap:8px}.agent-workspace__resource-name{font-size:14px;font-weight:600;line-height:20px;color:var(--color-grey-900, #1f1f2e);overflow-wrap:anywhere}.agent-workspace__resource-badge{flex:none;padding:2px 8px;border-radius:999px;background:var(--color-brand-050);color:var(--color-brand-800);font-size:11px;font-weight:600;line-height:16px;white-space:nowrap}.agent-workspace__resource-badge--document_html,.agent-workspace__resource-badge--file,.agent-workspace__resource-badge--user_file{background:var(--color-semantic-caution-050);color:var(--color-semantic-caution-800)}.agent-workspace__resource-badge--link{background:var(--color-semantic-info-050);color:var(--color-semantic-info-700)}.agent-workspace__resource-badge--workflow{background:var(--color-semantic-warning-050);color:var(--color-semantic-warning-700)}.agent-workspace__resource-open{flex:none;margin-top:2px}.agent-workspace__checklist-tabs{width:100%}.agent-workspace__context-json{margin:0;font-family:var(--font-family-monospace, monospace);font-size:12px;line-height:18px;white-space:pre-wrap;overflow-wrap:anywhere}.agent-workspace__task-group{display:flex;flex-direction:column;gap:8px}.agent-workspace__task-group--following{margin-top:16px;padding-top:16px;border-top:1px solid var(--card-default-color-border, #e4e4ee)}.agent-workspace__task-group-label{margin:0;font-size:12px;font-weight:600;line-height:16px;letter-spacing:.02em;color:var(--color-grey-600, #6b6b7b)}.agent-workspace__task-list{display:flex;flex-direction:column;gap:10px;margin:0;padding:0;list-style:none}.agent-workspace__task-row{display:flex;align-items:flex-start;gap:8px;padding-left:8px}.agent-workspace__task-content{display:flex;flex:1;flex-direction:column;gap:2px;min-width:0}.agent-workspace__task-label{font-size:14px;line-height:20px;color:var(--color-grey-900, #1f1f2e)}.agent-workspace__task-description{font-size:12px;line-height:16px;color:var(--color-grey-600, #6b6b7b)}.agent-workspace__task--hitl .agent-workspace__task-row{padding:8px;background-color:var(--color-semantic-warning-050, #fff7ed);border-radius:8px}.agent-workspace__task-children{display:flex;flex-direction:column;gap:8px;margin:8px 0 0;padding:0 0 0 24px;list-style:none;border-left:2px solid var(--card-default-color-border, #e4e4ee)}.agent-workspace__task-child .agent-workspace__task-label{font-size:13px}.agent-workspace__task-icon--spinning{animation:agent-workspace-icon-spin 1s linear infinite}.agent-workspace__loading,.agent-workspace__empty,.agent-workspace__error{display:flex;gap:8px;align-items:center;margin:0;font-size:14px;color:var(--color-grey-600, #6b6b7b)}.agent-workspace__error{color:var(--color-semantic-destructive-600, #dc2626)}.agent-workspace__lifecycle-error{padding:8px 14px 0}.agent-workspace__name-error{flex:0 1 auto;min-width:0}@media (width <= 900px){.agent-workspace__header{flex-wrap:wrap;gap:12px}.agent-workspace__header-actions{flex-wrap:wrap;justify-content:flex-end}.agent-workspace__body,.agent-workspace__body--no-checklist,.agent-workspace__body--no-resources,.agent-workspace__body--no-checklist.agent-workspace__body--no-resources{grid-template-columns:minmax(0,1fr);grid-auto-rows:auto;align-content:start;overflow:hidden auto}.agent-workspace__panel--chat{height:min(70vh,560px);min-height:320px;flex:none}.agent-workspace__panel--checklist,.agent-workspace__panel--documents{flex:none;min-height:240px;max-height:min(50vh,420px)}}@keyframes agent-workspace-icon-spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@keyframes agent-workspace-typing{0%,60%,to{opacity:.3;transform:translateY(0)}30%{opacity:1;transform:translateY(-3px)}}.agent-workspace__timeline{display:flex;flex:1;flex-direction:column;justify-content:flex-start;min-width:0;min-height:0;padding:16px 24px 24px;overflow:auto}.agent-workspace__timeline-status{margin:0;font-size:14px;line-height:20px;color:var(--color-grey-600, #6b6b7b);text-align:center}.agent-timeline{--agent-timeline-node-size: 32px;--agent-timeline-station-size: 10px;--agent-timeline-track-width: 4px;--agent-timeline-row-gap: 20px;position:relative;display:flex;flex-direction:column;gap:var(--agent-timeline-row-gap);width:100%;max-width:100%;box-sizing:border-box}.agent-timeline__track{position:absolute;top:calc(var(--agent-timeline-node-size) / 2);bottom:calc(var(--agent-timeline-node-size) / 2);left:calc(var(--agent-timeline-node-size) / 2 - var(--agent-timeline-track-width) / 2);width:var(--agent-timeline-track-width);background-color:var(--color-grey-800, #3b3b3b);border-radius:999px}.agent-timeline__station,.agent-timeline__chat-station{position:relative;z-index:2;display:flex;flex-shrink:0;align-items:flex-start;gap:12px;min-height:var(--agent-timeline-node-size);box-sizing:border-box}.agent-timeline__chat-station{z-index:3}.agent-timeline__station-rail{display:inline-flex;flex-shrink:0;align-items:center;justify-content:center;width:var(--agent-timeline-node-size);height:var(--agent-timeline-node-size)}.agent-timeline__station-node{display:block;flex-shrink:0;width:var(--agent-timeline-station-size);height:var(--agent-timeline-station-size);padding:0;cursor:default;background-color:var(--tag-neutral-color-background);border:none;border-radius:50%;box-sizing:border-box}.agent-timeline__station-node--terminus,.agent-timeline__station-node--checklist,.agent-timeline__station-node--status,.agent-timeline__station-node--scheduled-one-off,.agent-timeline__station-node--scheduled-repeating{width:var(--agent-timeline-node-size);height:var(--agent-timeline-node-size);border-radius:50%;box-sizing:border-box}.agent-timeline__station-node--terminus{display:inline-flex;align-items:center;justify-content:center;color:var(--tag-category-blue-color-text);background:var(--tag-category-blue-color-background)}.agent-timeline__station-node--checklist{display:inline-flex;align-items:center;justify-content:center;color:var(--tag-category-purple-color-text);background:var(--tag-category-purple-color-background)}.agent-timeline__station-node--status{display:inline-flex;align-items:center;justify-content:center;color:var(--tag-category-orange-color-text);background:var(--tag-category-orange-color-background)}.agent-timeline__station-node--scheduled-one-off,.agent-timeline__station-node--scheduled-repeating{display:inline-flex;align-items:center;justify-content:center;color:var(--tag-category-blue-color-text);background:var(--tag-category-blue-color-background)}.agent-timeline__station-node--scheduled-repeating{color:var(--tag-category-teal-color-text, var(--tag-category-blue-color-text));background:var(--tag-category-teal-color-background, var(--tag-category-blue-color-background))}.agent-timeline__station-node--note{border:1px solid black}.agent-timeline__label{display:flex;flex:1;flex-direction:column;min-width:0;padding-top:calc((var(--agent-timeline-node-size) - 16px) / 2);font-size:12px;line-height:16px;color:var(--color-grey-900, #1f1f2e)}.agent-timeline__label-type{display:block;font-weight:600}.agent-timeline__label-entry{display:block;margin-top:2px;color:var(--color-grey-600, #6b6b7b);overflow-wrap:break-word;text-transform:lowercase}.agent-timeline__label-entry:first-letter{text-transform:uppercase}.agent-timeline__label-time{display:block;margin-top:2px;color:var(--color-grey-600, #6b6b7b);overflow-wrap:break-word}.agent-timeline__gap{position:relative;z-index:1;display:flex;flex-shrink:0;align-items:center;gap:12px;box-sizing:border-box}.agent-timeline__gap--hours{min-height:28px}.agent-timeline__gap--days{min-height:52px}.agent-timeline__gap--weeks{min-height:80px}.agent-timeline__gap-rail{display:inline-flex;flex-shrink:0;align-items:center;justify-content:center;width:var(--agent-timeline-node-size);height:100%}.agent-timeline__gap-dot{width:6px;height:6px;background-color:var(--color-grey-500, #8a8a96);border-radius:50%}.agent-timeline__gap-label{font-size:11px;font-weight:600;line-height:14px;color:var(--color-grey-600, #6b6b7b);letter-spacing:.02em}.agent-timeline__chat-node{display:inline-flex;flex-shrink:0;align-items:center;justify-content:center;width:var(--agent-timeline-node-size);height:var(--agent-timeline-node-size);padding:0;cursor:pointer;color:var(--tag-category-green-color-text);background:var(--tag-category-green-color-background);border:none;border-radius:50%;box-sizing:border-box}.agent-timeline__chat-node:hover,.agent-timeline__chat-node:focus-visible{outline:2px solid var(--color-mono-black, #202020);outline-offset:2px}.agent-timeline__chat-node--static{cursor:default}.agent-timeline__chat-node--static:hover,.agent-timeline__chat-node--static:focus-visible{outline:none}.agent-workspace__center-tabs{flex-shrink:0;padding:12px 14px 0}.agent-workspace__center-back{display:flex;flex-shrink:0;padding:8px 14px 0}.new-agent{--page-heading-spacing-gap: 0px;width:min(600px,100%);min-width:unset;max-height:calc(100vh - var(--spacing-medium));overflow:hidden;font-family:var(--font-family-standard),sans-serif;color:var(--color-grey-900, #1f1f2e)}.new-agent--embedded{width:100%;max-height:none;overflow:visible;box-sizing:border-box;padding:var(--spacing-large, 16px)}.new-agent__body{display:flex;flex-direction:column;gap:var(--spacing-large)}.new-agent__type-field{display:flex;flex-direction:column;gap:var(--spacing-small)}.new-agent__type-label{font-size:12px;font-weight:var(--font-weight-semi-bold, 600);color:var(--color-grey-600, #6b6b7b)}.new-agent__field-hint{margin:0;font-size:13px;line-height:18px;color:var(--color-grey-600, #6b6b7b)}.new-agent__form{display:flex;flex-direction:column;gap:var(--spacing-large)}.new-agent__actions{display:flex;justify-content:flex-end}.new-agent__start-button--starting .ds-icon{animation:new-agent-spin 1s linear infinite}.new-agent__error{margin:0;font-size:13px;line-height:18px;color:var(--color-danger-600, #c62828)}.new-agent__state{display:flex;flex-direction:column;align-items:center;gap:var(--spacing-medium);padding:var(--spacing-large) 0;text-align:center}.new-agent__state-message{margin:0;font-size:13px;line-height:18px;color:var(--color-grey-600, #6b6b7b)}.new-agent__state--error .new-agent__state-message{color:var(--color-danger-600, #c62828)}.new-agent__spinner{animation:new-agent-spin 1s linear infinite}@keyframes new-agent-spin{to{transform:rotate(360deg)}}.agent-view{--agent-view-column-gap: 16px;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--agent-view-column-gap);width:100%;box-sizing:border-box}.agent-view__header{display:flex;grid-column:1/-1;align-items:center;justify-content:space-between;gap:16px}.agent-view__filters{display:flex;grid-column:1/-1;flex-wrap:wrap;gap:16px}.agent-view__filter{display:flex;flex-direction:column;gap:4px;min-width:220px;max-width:280px;flex:1}.agent-view__filter-label{font-family:var(--font-family-standard),sans-serif;font-size:14px;font-weight:var(--font-weight-semi-bold);line-height:20px;color:var(--color-grey-700)}.agent-view__board{display:grid;grid-column:1/-1;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--agent-view-column-gap);align-items:stretch;width:100%;min-height:600px;border-radius:0}.agent-view__column{display:flex;flex-direction:column;min-height:0;padding:12px;border:1px solid var(--card-default-color-border);border-radius:8px;background-color:var(--card-default-color-background)}.agent-view__column-header{display:flex;align-items:center;gap:8px;margin-bottom:12px}.agent-view__column-count{margin-left:auto;font-family:var(--font-family-standard),sans-serif;font-weight:var(--font-weight-semi-bold);color:var(--color-grey-600)}.agent-view__card-list{list-style:none;margin:0;padding:0;display:flex;flex:1;flex-direction:column;gap:8px;min-height:0;overflow-y:auto}.agent-view__card{list-style:none}.agent-view__card .ds-card__container{box-shadow:0 4px 12px #20202014}.agent-view__card--expanded .ds-card__container{border-color:var(--card-default-color-border)}.agent-view__card--paused .ds-card__container,.agent-view__card--archived .ds-card__container,.agent-view__card--view-only .ds-card__container{background-color:var(--color-grey-050);box-shadow:none}.agent-view__card--skeleton{display:block}.agent-view__card-skeleton{display:block;box-sizing:border-box;border-radius:8px}.agent-view__card-toggle{display:block;width:100%;padding:0;border:0;background:none;cursor:pointer;text-align:left;font:inherit;color:inherit}.agent-view__card-content{display:flex;align-items:center;gap:8px;min-height:40px}.agent-view__card-chevron{margin-left:auto;flex-shrink:0;color:var(--color-grey-600)}.agent-view__card-invocation-name{font-family:var(--type-headings-h4-family),sans-serif;font-size:var(--type-headings-h4-size);font-weight:var(--type-headings-h4-weight);line-height:var(--type-headings-h4-line-height);color:var(--color-grey-900)}.agent-view__card-agent-name,.agent-view__card-state-pill{flex-shrink:0;padding:2px 10px;border-radius:999px;background:var(--color-grey-100);color:var(--color-grey-700);font-size:12px;font-weight:var(--font-weight-semi-bold, 600);line-height:16px;white-space:nowrap}.agent-view__card-state-pill{background:var(--color-grey-200)}.agent-view__card-progress{margin-top:12px;padding-top:12px;border-top:1px solid var(--card-default-color-border)}.agent-view__card-actions{display:flex;justify-content:space-between;align-items:center;margin-top:12px}.agent-view__archived{grid-column:1/-1;padding:12px;border:1px solid var(--card-default-color-border);border-radius:8px;background-color:var(--card-default-color-background)}.agent-view__archived-summary{display:flex;align-items:center;gap:8px;cursor:pointer;list-style:none}.agent-view__archived-summary::-webkit-details-marker{display:none}.agent-view__archived-list{margin-top:12px}.agent-view__progress-scroll{flex:0 1 auto}.agent-view__progress-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px;max-height:500px;overflow-y:auto}.agent-view__progress-item{display:flex;align-items:flex-start;gap:8px;padding-left:8px;font-family:var(--font-family-standard),sans-serif;font-size:14px;line-height:20px}.agent-view__progress-item--complete{color:var(--color-semantic-success-600)}.agent-view__progress-item--failed{color:var(--color-semantic-destructive-600)}.agent-view__progress-item--hitl{padding:8px;border-radius:6px;background-color:var(--color-semantic-warning-050);color:var(--color-semantic-warning-600)}.agent-view__progress-item--generating-a-response,.agent-view__progress-item--to-do{color:var(--color-brand-600)}.agent-view__progress-item-content{display:flex;flex:1;flex-direction:column;gap:2px;min-width:0}.agent-view__progress-label{color:var(--color-grey-900)}.agent-view__progress-description{color:var(--color-grey-600);font-size:12px;line-height:16px}.agent-view__progress-empty,.agent-view__progress-error{margin:0;font-family:var(--font-family-standard),sans-serif;font-size:14px;line-height:20px;color:var(--color-grey-600)}.agent-view__progress-error{color:var(--color-semantic-destructive-600)}.agent-view__progress-loading{display:flex;align-items:center;gap:8px;font-family:var(--font-family-standard),sans-serif;font-size:14px;line-height:20px;color:var(--color-grey-600)}.agent-view__progress-icon--spinning{animation:agent-view-icon-spin 1s linear infinite}.agent-view__status-indicator,.agent-view__dot{display:inline-flex;line-height:0}.agent-view__dot--grey-dark .ds-dot{background-color:var(--color-grey-600)}.agent-view__state{display:flex;grid-column:1/-1;flex-direction:column;align-items:center;justify-content:center;gap:var(--spacing-medium, 12px);width:100%;min-height:240px;padding:var(--spacing-xxlarge, 32px);box-sizing:border-box;border:1px solid var(--card-default-color-border);border-radius:8px;background-color:var(--card-default-color-background);text-align:center}.agent-view__state-message{margin:0;font-family:var(--font-family-standard),sans-serif;font-size:var(--font-size-3-14, 14px);line-height:20px;color:var(--color-grey-700)}.agent-view__state--error .agent-view__state-message{color:var(--color-semantic-destructive-600)}.agent-view__empty{display:grid;grid-column:1/-1;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:var(--spacing-xxlarge, 32px);justify-self:center;align-items:center;width:100%;max-width:1100px;min-height:0;padding:var(--spacing-xxlarge, 32px);box-sizing:border-box;border:1px solid var(--card-default-color-border);border-radius:8px;background-color:var(--card-default-color-background)}.agent-view__empty-content{display:flex;flex-direction:column;gap:var(--spacing-large, 16px);width:100%}.agent-view__empty-content .ds-heading{justify-content:flex-start}.agent-view__empty-lead,.agent-view__empty-hint{margin:0;font-family:var(--font-family-standard),sans-serif;font-size:var(--font-size-3-14, 14px);font-weight:var(--font-weight-regular);line-height:20px;color:var(--color-grey-700)}.agent-view__empty-hint strong{font-weight:var(--font-weight-semi-bold);color:var(--color-grey-900)}.agent-view__empty-columns{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:var(--spacing-medium, 12px)}.agent-view__empty-column{display:flex;align-items:flex-start;gap:var(--spacing-small, 8px)}.agent-view__empty-column-indicator{display:inline-flex;flex-shrink:0;line-height:0;padding-top:2px}.agent-view__empty-column-text{display:flex;flex-direction:column;gap:2px}.agent-view__empty-column-title{font-family:var(--type-headings-h4-family),sans-serif;font-size:var(--type-headings-h4-size);font-weight:var(--type-headings-h4-weight);line-height:var(--type-headings-h4-line-height);color:var(--color-grey-900)}.agent-view__empty-column-description{font-family:var(--font-family-standard),sans-serif;font-size:var(--font-size-3-14, 14px);font-weight:var(--font-weight-regular);line-height:20px;color:var(--color-grey-600)}.agent-view__empty-visual{display:flex;justify-content:center;align-items:center}.agent-view__empty-illustration{width:100%;max-width:360px;height:auto}@media (width <= 600px){.agent-view__empty{grid-template-columns:1fr}.agent-view__empty-visual{order:-1}}@keyframes agent-view-icon-spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@arbor-education/agent-view-frontend",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.10.0",
|
|
4
4
|
"description": "Kanban-style agent status board for Arbor AI agents",
|
|
5
5
|
"author": "Rick Bairstow <rick.bairstow@arbor-education.com>",
|
|
6
6
|
"license": "UNLICENSED",
|
|
@@ -49,7 +49,7 @@
|
|
|
49
49
|
"publish:alpha": "npm version prerelease --preid alpha --no-git-tag-version && npm publish --tag alpha --access public"
|
|
50
50
|
},
|
|
51
51
|
"peerDependencies": {
|
|
52
|
-
"@arbor-education/ask-arbor-chat-panel": ">=1.2.
|
|
52
|
+
"@arbor-education/ask-arbor-chat-panel": ">=1.2.7",
|
|
53
53
|
"@arbor-education/design-system.components": ">=0.25.0",
|
|
54
54
|
"react": "^18.0.0",
|
|
55
55
|
"react-dom": "^18.0.0"
|
|
@@ -59,7 +59,7 @@
|
|
|
59
59
|
"pusher-js": "^8.4.0"
|
|
60
60
|
},
|
|
61
61
|
"devDependencies": {
|
|
62
|
-
"@arbor-education/ask-arbor-chat-panel": "1.2.
|
|
62
|
+
"@arbor-education/ask-arbor-chat-panel": "1.2.7",
|
|
63
63
|
"@arbor-education/design-system.components": "^0.25.7",
|
|
64
64
|
"@changesets/changelog-github": "^0.5.2",
|
|
65
65
|
"@changesets/cli": "^2.29.8",
|