jinn-cli 0.7.5 → 0.7.7
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/web/404.html +1 -1
- package/dist/web/_next/static/chunks/app/chat/page-01d396112fbc8623.js +1 -0
- package/dist/web/_next/static/chunks/app/cron/page-9787c557594dc688.js +1 -0
- package/dist/web/_next/static/chunks/app/{layout-45d8b9cc84f9443f.js → layout-497d1e93737edeae.js} +1 -1
- package/dist/web/_next/static/css/29fd6f6f1915cce0.css +1 -0
- package/dist/web/chat.html +1 -1
- package/dist/web/chat.txt +4 -4
- package/dist/web/cron.html +1 -1
- package/dist/web/cron.txt +4 -4
- package/dist/web/index.html +1 -1
- package/dist/web/index.txt +3 -3
- package/dist/web/kanban.html +1 -1
- package/dist/web/kanban.txt +3 -3
- package/dist/web/logs.html +2 -2
- package/dist/web/logs.txt +3 -3
- package/dist/web/org.html +1 -1
- package/dist/web/org.txt +3 -3
- package/dist/web/sessions.html +1 -1
- package/dist/web/sessions.txt +3 -3
- package/dist/web/settings.html +1 -1
- package/dist/web/settings.txt +3 -3
- package/dist/web/skills.html +1 -1
- package/dist/web/skills.txt +3 -3
- package/package.json +1 -1
- package/template/migrations/0.3.0/MIGRATION.md +57 -0
- package/template/migrations/0.3.0/files/config.default.yaml +62 -0
- package/template/migrations/0.3.0/files/docs/mcp.md +108 -0
- package/dist/web/_next/static/chunks/app/chat/page-4cd139bb21a2bfd2.js +0 -1
- package/dist/web/_next/static/chunks/app/cron/page-03f6c20a2336f185.js +0 -1
- package/dist/web/_next/static/css/a2080d6b6696080a.css +0 -1
- /package/dist/web/_next/static/{H5hpAyftmmiG3FRvwixYw → 73aF2gsMYJ-t64sWQw1Av}/_buildManifest.js +0 -0
- /package/dist/web/_next/static/{H5hpAyftmmiG3FRvwixYw → 73aF2gsMYJ-t64sWQw1Av}/_ssgManifest.js +0 -0
package/dist/web/404.html
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
<!DOCTYPE html><!--
|
|
1
|
+
<!DOCTYPE html><!--73aF2gsMYJ_t64sWQw1Av--><html lang="en"><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="/_next/static/css/29fd6f6f1915cce0.css" data-precedence="next"/><link rel="preload" as="script" fetchPriority="low" href="/_next/static/chunks/webpack-2e375360ad2078fe.js"/><script src="/_next/static/chunks/6d25620b-d9f90746a7f2178c.js" async=""></script><script src="/_next/static/chunks/144-548cab85cf18301a.js" async=""></script><script src="/_next/static/chunks/main-app-637478e5d2259005.js" async=""></script><script src="/_next/static/chunks/625-93dc90080662b8f4.js" async=""></script><script src="/_next/static/chunks/155-5843f8840f40f6f8.js" async=""></script><script src="/_next/static/chunks/app/layout-497d1e93737edeae.js" async=""></script><meta name="robots" content="noindex"/><title>404: This page could not be found.</title><meta name="description" content="AI Gateway Dashboard"/><script>(function(){try{var t=localStorage.getItem('jinn-theme')||'dark';if(t==='system'){t=window.matchMedia('(prefers-color-scheme:dark)').matches?'dark':'light'}document.documentElement.setAttribute('data-theme',t)}catch(e){}})()</script><script src="/_next/static/chunks/polyfills-42372ed130431b0a.js" noModule=""></script></head><body><div hidden=""><!--$--><!--/$--></div><div style="font-family:system-ui,"Segoe UI",Roboto,Helvetica,Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji";height:100vh;text-align:center;display:flex;flex-direction:column;align-items:center;justify-content:center"><div><style>body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}</style><h1 class="next-error-h1" style="display:inline-block;margin:0 20px 0 0;padding:0 23px 0 0;font-size:24px;font-weight:500;vertical-align:top;line-height:49px">404</h1><div style="display:inline-block"><h2 style="font-size:14px;font-weight:400;line-height:49px;margin:0">This page could not be found.</h2></div></div></div><!--$--><!--/$--><script src="/_next/static/chunks/webpack-2e375360ad2078fe.js" id="_R_" async=""></script><script>(self.__next_f=self.__next_f||[]).push([0])</script><script>self.__next_f.push([1,"1:\"$Sreact.fragment\"\n2:I[5859,[\"625\",\"static/chunks/625-93dc90080662b8f4.js\",\"155\",\"static/chunks/155-5843f8840f40f6f8.js\",\"177\",\"static/chunks/app/layout-497d1e93737edeae.js\"],\"ClientProviders\"]\n3:I[1015,[],\"\"]\n4:I[3912,[],\"\"]\n5:I[6862,[],\"OutletBoundary\"]\n7:I[1475,[],\"AsyncMetadataOutlet\"]\n9:I[6862,[],\"ViewportBoundary\"]\nb:I[6862,[],\"MetadataBoundary\"]\nc:\"$Sreact.suspense\"\ne:I[1389,[],\"\"]\n:HL[\"/_next/static/css/29fd6f6f1915cce0.css\",\"style\"]\n"])</script><script>self.__next_f.push([1,"0:{\"P\":null,\"b\":\"73aF2gsMYJ-t64sWQw1Av\",\"p\":\"\",\"c\":[\"\",\"_not-found\"],\"i\":false,\"f\":[[[\"\",{\"children\":[\"/_not-found\",{\"children\":[\"__PAGE__\",{}]}]},\"$undefined\",\"$undefined\",true],[\"\",[\"$\",\"$1\",\"c\",{\"children\":[[[\"$\",\"link\",\"0\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/css/29fd6f6f1915cce0.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}]],[\"$\",\"html\",null,{\"lang\":\"en\",\"suppressHydrationWarning\":true,\"children\":[[\"$\",\"head\",null,{\"children\":[\"$\",\"script\",null,{\"dangerouslySetInnerHTML\":{\"__html\":\"(function(){try{var t=localStorage.getItem('jinn-theme')||'dark';if(t==='system'){t=window.matchMedia('(prefers-color-scheme:dark)').matches?'dark':'light'}document.documentElement.setAttribute('data-theme',t)}catch(e){}})()\"}}]}],[\"$\",\"body\",null,{\"children\":[\"$\",\"$L2\",null,{\"children\":[\"$\",\"$L3\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L4\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":\"$undefined\",\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}]}]}]]}]]}],{\"children\":[\"/_not-found\",[\"$\",\"$1\",\"c\",{\"children\":[null,[\"$\",\"$L3\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L4\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":\"$undefined\",\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}]]}],{\"children\":[\"__PAGE__\",[\"$\",\"$1\",\"c\",{\"children\":[[[\"$\",\"title\",null,{\"children\":\"404: This page could not be found.\"}],[\"$\",\"div\",null,{\"style\":{\"fontFamily\":\"system-ui,\\\"Segoe UI\\\",Roboto,Helvetica,Arial,sans-serif,\\\"Apple Color Emoji\\\",\\\"Segoe UI Emoji\\\"\",\"height\":\"100vh\",\"textAlign\":\"center\",\"display\":\"flex\",\"flexDirection\":\"column\",\"alignItems\":\"center\",\"justifyContent\":\"center\"},\"children\":[\"$\",\"div\",null,{\"children\":[[\"$\",\"style\",null,{\"dangerouslySetInnerHTML\":{\"__html\":\"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}\"}}],[\"$\",\"h1\",null,{\"className\":\"next-error-h1\",\"style\":{\"display\":\"inline-block\",\"margin\":\"0 20px 0 0\",\"padding\":\"0 23px 0 0\",\"fontSize\":24,\"fontWeight\":500,\"verticalAlign\":\"top\",\"lineHeight\":\"49px\"},\"children\":404}],[\"$\",\"div\",null,{\"style\":{\"display\":\"inline-block\"},\"children\":[\"$\",\"h2\",null,{\"style\":{\"fontSize\":14,\"fontWeight\":400,\"lineHeight\":\"49px\",\"margin\":0},\"children\":\"This page could not be found.\"}]}]]}]}]],null,[\"$\",\"$L5\",null,{\"children\":[\"$L6\",[\"$\",\"$L7\",null,{\"promise\":\"$@8\"}]]}]]}],{},null,false]},null,false]},null,false],[\"$\",\"$1\",\"h\",{\"children\":[[\"$\",\"meta\",null,{\"name\":\"robots\",\"content\":\"noindex\"}],[[\"$\",\"$L9\",null,{\"children\":\"$La\"}],null],[\"$\",\"$Lb\",null,{\"children\":[\"$\",\"div\",null,{\"hidden\":true,\"children\":[\"$\",\"$c\",null,{\"fallback\":null,\"children\":\"$Ld\"}]}]}]]}],false]],\"m\":\"$undefined\",\"G\":[\"$e\",[]],\"s\":false,\"S\":true}\n"])</script><script>self.__next_f.push([1,"a:[[\"$\",\"meta\",\"0\",{\"charSet\":\"utf-8\"}],[\"$\",\"meta\",\"1\",{\"name\":\"viewport\",\"content\":\"width=device-width, initial-scale=1\"}]]\n6:null\n"])</script><script>self.__next_f.push([1,"8:{\"metadata\":[[\"$\",\"meta\",\"0\",{\"name\":\"description\",\"content\":\"AI Gateway Dashboard\"}]],\"error\":null,\"digest\":\"$undefined\"}\n"])</script><script>self.__next_f.push([1,"d:\"$8:metadata\"\n"])</script></body></html>
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[457],{58:(e,t,r)=>{"use strict";r.d(t,{s:()=>l});var a=r(4130),n=r(4722),s=r(8697);function l(e){let{name:t,size:r=32,className:l,onClick:i}=e,{settings:o}=(0,n.t0)(),c=o.employeeOverrides[t],d=(null==c?void 0:c.emoji)||(0,s.p)(t),u=Math.round(.6*r);return(0,a.jsx)("span",{className:l,onClick:i,role:i?"button":void 0,style:{display:"inline-flex",alignItems:"center",justifyContent:"center",width:r,height:r,fontSize:u,lineHeight:1,borderRadius:"50%",flexShrink:0,cursor:i?"pointer":void 0,userSelect:"none"},children:d})}},2619:(e,t,r)=>{"use strict";r.r(t),r.d(t,{default:()=>ez});var a=r(4130),n=r(7946),s=r(2467),l=r(6654),i=r(2845),o=r(7192),c=r(7053),d=r.n(c),u=r(2784),x=r(263),p=r(8574),h=r(841),m=r(6429),g=r(4535),f=r(937),v=r(4607),b=r(58),y=r(4722);function j(e){let t=e;return(t=(t=(t=(t=(t=(t=(t=(t=(t=t.replace(/@[\w-]+/g,"")).replace(/^#\d+\s*/g,"")).replace(/^#{1,6}\s+/gm,"")).replace(/\*{1,3}|_{1,3}/g,"")).replace(/^>\s*/gm,"")).replace(/`+/g,"")).replace(/^```\w*$/gm,"")).replace(/\[([^\]]*)\]\([^)]*\)/g,"$1")).replace(/\s+/g," ").trim()).length>0&&t[0]!==t[0].toUpperCase()&&(t=t[0].toUpperCase()+t.slice(1)),t}var w=r(3160),k=r(8689),N=r(6063);function S(e){let{...t}=e;return(0,a.jsx)(k.bL,{"data-slot":"context-menu",...t})}function C(e){let{...t}=e;return(0,a.jsx)(k.l9,{"data-slot":"context-menu-trigger",...t})}function I(e){let{className:t,...r}=e;return(0,a.jsx)(k.ZL,{children:(0,a.jsx)(k.UC,{"data-slot":"context-menu-content",className:(0,N.cn)("z-50 max-h-(--radix-context-menu-content-available-height) min-w-[8rem] origin-(--radix-context-menu-content-transform-origin) overflow-x-hidden overflow-y-auto rounded-md border bg-popover p-1 text-popover-foreground shadow-md data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-95 data-[state=open]:animate-in data-[state=open]:fade-in-0 data-[state=open]:zoom-in-95",t),...r})})}function D(e){let{className:t,inset:r,variant:n="default",...s}=e;return(0,a.jsx)(k.q7,{"data-slot":"context-menu-item","data-inset":r,"data-variant":n,className:(0,N.cn)("relative flex cursor-default items-center gap-2 rounded-sm px-2 py-1.5 text-sm outline-hidden select-none focus:bg-accent focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50 data-[inset]:pl-8 data-[variant=destructive]:text-destructive data-[variant=destructive]:focus:bg-destructive/10 data-[variant=destructive]:focus:text-destructive dark:data-[variant=destructive]:focus:bg-destructive/20 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4 [&_svg:not([class*='text-'])]:text-muted-foreground data-[variant=destructive]:*:[svg]:text-destructive!",t),...s})}function M(e){let{className:t,...r}=e;return(0,a.jsx)(k.wv,{"data-slot":"context-menu-separator",className:(0,N.cn)("-mx-1 my-1 h-px bg-border",t),...r})}var L=r(6960);let E="jinn-sidebar-collapsed",z="jinn-sidebar-expanded",A="jinn-pinned-sessions";function T(e){if(!e)return"";let t=new Date(e),r=Date.now()-t.getTime();return r<6e4?"now":r<36e5?"".concat(Math.floor(r/6e4),"m"):r<864e5?new Date(e).toLocaleTimeString("en-US",{hour:"numeric",minute:"2-digit",hour12:!0}):r<1728e5?"yesterday":new Date(e).toLocaleDateString("en-US",{month:"short",day:"numeric"})}function F(){try{let e=localStorage.getItem("jinn-read-sessions");return e?new Set(JSON.parse(e)):new Set}catch(e){return new Set}}function R(e){try{localStorage.setItem(A,JSON.stringify(Array.from(e)))}catch(e){}}function _(e){return"cron"===e.source||(e.sourceRef||"").startsWith("cron:")}function U(e){return e.lastActivity||e.createdAt||""}function W(e){return[...e].sort((e,t)=>U(t).localeCompare(U(e)))}function P(e,t){return"running"===e.status?"var(--system-blue)":"error"===e.status?"var(--system-red)":t.has(e.id)?"var(--text-quaternary)":"var(--system-green)"}function O(e){let{color:t,pulse:r=!1,className:n}=e;return(0,a.jsx)("span",{className:(0,N.cn)("shrink-0 rounded-full",n),style:{background:t,animation:r?"sidebar-pulse 2s ease-in-out infinite":"none",boxShadow:r?"0 0 8px ".concat(t):"none"}})}function B(e){var t;let{selectedId:r,onSelect:s,onNewChat:i,onDelete:o,onSessionsLoaded:c,onEmployeeSessionsAvailable:k}=e,{settings:B}=(0,y.t0)(),K=null!=(t=B.portalName)?t:"Jinn",q=K.toLowerCase(),{data:V,isLoading:H}=(0,w.te)(),J=(0,w.tS)(),Q=(0,w.Q6)(),$=(0,n.useMemo)(()=>{if(!V)return[];let e=V.filter(e=>"web"===e.source||"cron"===e.source||"whatsapp"===e.source||"discord"===e.source||!e.source);return e.sort((e,t)=>{let r=e.lastActivity||e.createdAt||"";return(t.lastActivity||t.createdAt||"").localeCompare(r)}),e},[V]),[G,Y]=(0,n.useState)(""),[X,Z]=(0,n.useState)(null),[ee,et]=(0,n.useState)(new Set),[er,ea]=(0,n.useState)(new Set),[en,es]=(0,n.useState)(new Set),[el,ei]=(0,n.useState)({}),[eo,ec]=(0,n.useState)({}),[ed,eu]=(0,n.useState)(new Map),ex=(0,n.useRef)(c);(0,n.useEffect)(()=>{ex.current=c},[c]),(0,n.useEffect)(()=>{$.length>0&&(0,n.startTransition)(()=>{var e;null==(e=ex.current)||e.call(ex,$)})},[$]),(0,n.useEffect)(()=>{et(F()),ea(function(){try{let e=localStorage.getItem(A);return e?new Set(JSON.parse(e)):new Set}catch(e){return new Set}}()),es(function(){try{let e=localStorage.getItem(E);return e?new Set(JSON.parse(e)):new Set}catch(e){return new Set}}()),ei(function(){try{let e=localStorage.getItem(z);return e?JSON.parse(e):{}}catch(e){return{}}}())},[]),(0,n.useEffect)(()=>{if(r){let e=F();e.add(r);let t=Array.from(e);t.length>500&&t.splice(0,t.length-500),localStorage.setItem("jinn-read-sessions",JSON.stringify(t)),et(e=>{let t=new Set(e);return t.add(r),t})}},[r]),(0,n.useEffect)(()=>{l.F.getOrg().then(async e=>{let t=new Map;await Promise.all(e.employees.map(async e=>{try{let r=await l.F.getEmployee(e);t.set(e,r)}catch(e){}})),eu(t)}).catch(()=>{})},[]);let ep=(0,n.useCallback)(()=>{es(e=>{let t=new Set(e);t.has("cron")?t.delete("cron"):t.add("cron");try{localStorage.setItem(E,JSON.stringify(Array.from(t)))}catch(e){}return t})},[]),eh=(0,n.useCallback)(e=>{ei(t=>{let r={...t,[e]:!t[e]};try{localStorage.setItem(z,JSON.stringify(r))}catch(e){}return r[e]||ec(t=>{if(!t[e])return t;let{[e]:r,...a}=t;return a}),r})},[]),em=(0,n.useCallback)(e=>{ea(t=>{let r=new Set(t);return r.has(e)?r.delete(e):r.add(e),R(r),r})},[]),eg=(0,n.useCallback)(e=>{let t=F();for(let r of e)t.add(r.id);let r=Array.from(t);r.length>500&&r.splice(0,r.length-500),localStorage.setItem("jinn-read-sessions",JSON.stringify(r)),et(t=>{let r=new Set(t);for(let t of e)r.add(t.id);return r})},[]);async function ef(e,t){let a=t.map(e=>e.id);try{await Q.mutateAsync(a),ea(t=>{let r=new Set(t);for(let t of(r.delete("emp:".concat(e)),a))r.delete(t);return R(r),r}),(0,n.startTransition)(()=>{r&&a.includes(r)&&i()})}catch(e){}}async function ev(e){try{await J.mutateAsync(e),ea(t=>{if(!t.has(e))return t;let r=new Set(t);return r.delete(e),R(r),r}),(0,n.startTransition)(()=>{o?o(e):r===e&&i()})}catch(e){}}let eb=G.trim()?$.filter(e=>{let t=G.toLowerCase(),r=e.employee?ed.get(e.employee):void 0;return e.id.toLowerCase().includes(t)||e.employee&&e.employee.toLowerCase().includes(t)||(null==r?void 0:r.displayName)&&r.displayName.toLowerCase().includes(t)||e.title&&e.title.toLowerCase().includes(t)}):$,ey=[],ej=[],ew=new Map;for(let e of eb)if(_(e))ey.push(e);else if(_(e)||e.employee&&e.employee!==q){let t=e.employee;ew.has(t)||ew.set(t,[]),ew.get(t).push(e)}else ej.push(e);let ek=[];for(let[e,t]of ew){let r=W(t);ek.push({type:"employee",employeeName:e,employeeData:ed.get(e),sessions:r,sortKey:U(r[0]),pinKey:"emp:".concat(e)})}if(ej.length>0){let e=W(ej);ek.push({type:"employee",employeeName:q,employeeData:{name:q,displayName:K,emoji:"\uD83D\uDCAC",department:"direct",role:"",rank:"manager",engine:"",model:"",persona:""},sessions:e,sortKey:U(e[0]),pinKey:"emp:".concat(q)})}let eN=ek.filter(e=>er.has(e.pinKey)).sort((e,t)=>t.sortKey.localeCompare(e.sortKey)),eS=ek.filter(e=>!er.has(e.pinKey)).sort((e,t)=>t.sortKey.localeCompare(e.sortKey)),eC=en.has("cron"),eI=W(ey);function eD(e,t){var n,l;let i=e.id===r,o=P(e,ee),c="running"===e.status,d=(n=e.title,l=e.employee,n?"Jinn"!==K&&n.startsWith("Jinn - ")?K+n.slice(4):n:l||K),h=T(U(e)),m=er.has(e.id),g=X===e.id;return(0,a.jsxs)(S,{children:[(0,a.jsx)(C,{asChild:!0,children:(0,a.jsxs)("button",{onClick:()=>{s(e.id),null==k||k(null!=t?t:[e])},onMouseEnter:()=>Z(e.id),onMouseLeave:()=>{X!=="menu:".concat(e.id)&&Z(null)},className:(0,N.cn)("group relative flex w-full items-center gap-2.5 border-l-2 px-4 py-2 text-left transition-colors",t?"pl-12":"pl-6",i?"border-l-[var(--accent)] bg-[var(--fill-secondary)]":"border-l-transparent hover:bg-accent"),children:[(0,a.jsx)(O,{color:o,pulse:c,className:"size-1.5"}),(0,a.jsx)("span",{className:(0,N.cn)("min-w-0 flex-1 truncate text-xs",i?"font-semibold text-foreground":"text-[var(--text-secondary)]"),children:j(d)||"Untitled"}),m?(0,a.jsx)(u.A,{className:(0,N.cn)("size-3 shrink-0 text-[var(--accent)]",g&&"hidden lg:hidden")}):null,(0,a.jsx)("span",{className:(0,N.cn)("shrink-0 text-[10px] text-[var(--text-quaternary)]",g&&"lg:hidden"),children:h}),(0,a.jsx)("button",{onClick:t=>{t.stopPropagation(),Z("menu:".concat(e.id))},className:(0,N.cn)("hidden shrink-0 text-muted-foreground transition-colors hover:text-foreground",g&&"lg:block"),children:(0,a.jsx)(x.A,{className:"size-3.5"})}),X==="menu:".concat(e.id)?(0,a.jsxs)("div",{className:"absolute right-2 top-full z-50 min-w-[140px] overflow-hidden rounded-lg border border-border bg-[var(--material-thick)] py-1 shadow-[var(--shadow-overlay)] backdrop-blur-xl",onMouseLeave:()=>Z(null),children:[(0,a.jsxs)("button",{onClick:t=>{t.stopPropagation(),em(e.id),Z(null)},className:"flex w-full items-center gap-2 px-3 py-1.5 text-left text-xs text-foreground transition-colors hover:bg-accent",children:[(0,a.jsx)(u.A,{className:"size-3"})," ",m?"Unpin":"Pin"]}),(0,a.jsx)("div",{className:"my-0.5 border-t border-border"}),(0,a.jsxs)("button",{onClick:t=>{t.stopPropagation(),Z(null),window.confirm("Delete this session?")&&ev(e.id)},className:"flex w-full items-center gap-2 px-3 py-1.5 text-left text-xs text-[var(--system-red)] transition-colors hover:bg-accent",children:[(0,a.jsx)(p.A,{className:"size-3"})," Delete"]})]}):null]})}),(0,a.jsxs)(I,{children:[(0,a.jsx)(D,{onClick:()=>em(e.id),children:m?"Unpin":"Pin"}),(0,a.jsx)(M,{}),(0,a.jsx)(D,{variant:"destructive",onClick:()=>{window.confirm("Delete this session?")&&ev(e.id)},children:"Delete session"})]})]},e.id)}function eM(e){let t=e.employeeName,n=e.sessions,l=n[0],i=e.employeeData,o=(null==i?void 0:i.displayName)||t.split("-").map(e=>e.charAt(0).toUpperCase()+e.slice(1)).join(" "),c=(null==i?void 0:i.department)||"",d=T(U(l)),h=P(l,ee),m="running"===l.status,g=n.some(e=>e.id===r),f=er.has(e.pinKey),v=X===e.pinKey,y=n.length,j=el[t]||!1,w=n.some(e=>!ee.has(e.id)&&"running"!==e.status&&"error"!==e.status);return(0,a.jsxs)("div",{children:[(0,a.jsxs)(S,{children:[(0,a.jsx)(C,{asChild:!0,children:(0,a.jsxs)("button",{onClick:()=>(function(e){let t=e.employeeName,r=e.sessions;if(r.length>1){let e=el[t]||!1;eh(t),e||(s(r[0].id),null==k||k(r))}else s(r[0].id),null==k||k(r)})(e),onMouseEnter:()=>Z(e.pinKey),onMouseLeave:()=>{X!=="menu:".concat(e.pinKey)&&Z(null)},className:(0,N.cn)("group relative flex w-full items-center gap-3 border-l-2 px-4 py-3 text-left transition-colors",g?"border-l-[var(--accent)] bg-[var(--fill-secondary)]":"border-l-transparent hover:bg-accent"),children:[(0,a.jsxs)("div",{className:"relative flex size-9 shrink-0 items-center justify-center",children:[(0,a.jsx)(b.s,{name:t,size:36}),(0,a.jsx)(O,{color:h,pulse:m,className:"absolute -bottom-0.5 -right-0.5 size-2.5 border-2 border-[var(--sidebar-bg)]"})]}),(0,a.jsxs)("div",{className:"min-w-0 flex-1",children:[(0,a.jsxs)("div",{className:"mb-0.5 flex items-baseline gap-2",children:[(0,a.jsx)("span",{className:(0,N.cn)("min-w-0 flex-1 truncate text-[13px] tracking-[-0.2px] text-foreground",w||g?"font-semibold":"font-medium"),children:o}),(0,a.jsx)("span",{className:(0,N.cn)("shrink-0 text-[10px] text-[var(--text-tertiary)]",v&&"lg:hidden"),children:d}),(0,a.jsx)("button",{onClick:t=>{t.stopPropagation(),Z("menu:".concat(e.pinKey))},className:(0,N.cn)("hidden shrink-0 text-muted-foreground transition-colors hover:text-foreground",v&&"lg:block"),children:(0,a.jsx)(x.A,{className:"size-3.5"})})]}),(0,a.jsxs)("div",{className:"flex items-center gap-1.5 overflow-hidden text-[11px] text-[var(--text-tertiary)]",children:[c?(0,a.jsx)("span",{className:"truncate",children:c}):null,y>1?(0,a.jsxs)("span",{className:"shrink-0 rounded bg-[var(--fill-tertiary)] px-1.5 py-0.5 text-[10px]",children:[y," chats"]}):null,f?(0,a.jsx)(u.A,{className:"size-3 shrink-0 text-[var(--accent)]"}):null]})]}),X==="menu:".concat(e.pinKey)?(0,a.jsxs)("div",{className:"absolute right-2 top-full z-50 min-w-[160px] overflow-hidden rounded-lg border border-border bg-[var(--material-thick)] py-1 shadow-[var(--shadow-overlay)] backdrop-blur-xl",onMouseLeave:()=>Z(null),children:[(0,a.jsxs)("button",{onClick:t=>{t.stopPropagation(),em(e.pinKey),Z(null)},className:"flex w-full items-center gap-2 px-3 py-1.5 text-left text-xs text-foreground transition-colors hover:bg-accent",children:[(0,a.jsx)(u.A,{className:"size-3"})," ",f?"Unpin":"Pin"]}),(0,a.jsx)("button",{onClick:e=>{e.stopPropagation(),eg(n),Z(null)},className:"flex w-full items-center gap-2 px-3 py-1.5 text-left text-xs text-foreground transition-colors hover:bg-accent",children:"Mark all as read"}),(0,a.jsx)("div",{className:"my-0.5 border-t border-border"}),(0,a.jsxs)("button",{onClick:e=>{e.stopPropagation(),Z(null),window.confirm("Delete all ".concat(n.length,' chats with "').concat(o,'"?'))&&ef(t,n)},className:"flex w-full items-center gap-2 px-3 py-1.5 text-left text-xs text-[var(--system-red)] transition-colors hover:bg-accent",children:[(0,a.jsx)(p.A,{className:"size-3"})," Delete all chats"]})]}):null]})}),(0,a.jsxs)(I,{children:[(0,a.jsx)(D,{onClick:()=>em(e.pinKey),children:f?"Unpin":"Pin"}),(0,a.jsx)(D,{onClick:()=>eg(n),children:"Mark all as read"})]})]}),j&&y>1?eo[t]?n.map(e=>eD(e,n)):n.slice(0,5).map(e=>eD(e,n)):null,j&&y>5&&!eo[t]?(0,a.jsxs)("button",{onClick:()=>ec(e=>({...e,[t]:!0})),className:"w-full cursor-pointer px-4 pb-2 pl-12 text-left text-[10px] text-[var(--text-quaternary)] transition-colors hover:text-[var(--text-secondary)]",children:["+",y-5," more"]}):null]},e.pinKey)}return(0,a.jsxs)("div",{className:"jsx-fb767975a1bed37e flex h-full flex-col border-r border-border bg-[var(--sidebar-bg)]",children:[(0,a.jsxs)("div",{className:"jsx-fb767975a1bed37e shrink-0 border-b border-border bg-[var(--material-thick)] px-4 pb-3 pt-3",children:[(0,a.jsxs)("div",{className:"jsx-fb767975a1bed37e mb-2 flex items-center justify-between gap-3",children:[(0,a.jsxs)("div",{className:"jsx-fb767975a1bed37e",children:[(0,a.jsx)("h2",{className:"jsx-fb767975a1bed37e text-xl font-bold tracking-[-0.03em] text-foreground",children:"Chats"}),(0,a.jsx)("p",{className:"jsx-fb767975a1bed37e text-xs text-muted-foreground",children:"Sessions, employees, and cron runs"})]}),(0,a.jsx)("div",{className:"jsx-fb767975a1bed37e flex items-center gap-1.5",children:(0,a.jsxs)(L.$,{size:"sm",className:"gap-1.5",onClick:i,children:[(0,a.jsx)(h.A,{className:"size-3.5"}),"New"]})})]}),(0,a.jsxs)("div",{className:"jsx-fb767975a1bed37e flex items-center gap-2 rounded-[var(--radius-md)] bg-[var(--fill-tertiary)] px-3 py-2",children:[(0,a.jsx)(m.A,{className:"size-3.5 shrink-0 text-[var(--text-tertiary)]"}),(0,a.jsx)("input",{type:"text",value:G,onChange:e=>Y(e.target.value),placeholder:"Search chats...","aria-label":"Search chats",className:"jsx-fb767975a1bed37e min-w-0 flex-1 bg-transparent text-sm text-foreground outline-none placeholder:text-[var(--text-tertiary)]"}),G.trim()?(0,a.jsx)("button",{onClick:()=>Y(""),"aria-label":"Clear search",className:"jsx-fb767975a1bed37e rounded-full p-0.5 text-[var(--text-tertiary)] transition-colors hover:bg-[var(--fill-secondary)] hover:text-foreground",children:(0,a.jsx)(g.A,{className:"size-3"})}):null]})]}),(0,a.jsx)("div",{className:"jsx-fb767975a1bed37e flex-1 overflow-y-auto py-1",children:H?(0,a.jsx)("div",{className:"jsx-fb767975a1bed37e px-4 py-8 text-center text-xs text-[var(--text-quaternary)]",children:"Loading sessions..."}):0===eN.length&&0===eS.length&&0===ey.length?(0,a.jsx)("div",{className:"jsx-fb767975a1bed37e px-4 py-8 text-center text-xs text-[var(--text-quaternary)]",children:G.trim()?"No matching chats":"No conversations yet"}):(0,a.jsxs)(a.Fragment,{children:[eN.map(e=>eM(e)),eS.map(e=>eM(e)),ey.length>0?(0,a.jsxs)("div",{className:"jsx-fb767975a1bed37e "+((0,N.cn)("mt-2",0===eN.length&&0===eS.length&&"mt-0")||""),children:[(0,a.jsxs)("button",{onClick:ep,onMouseEnter:()=>Z("cron-header"),onMouseLeave:()=>Z(null),className:"jsx-fb767975a1bed37e flex w-full items-center gap-2 px-4 py-2 text-left transition-colors hover:bg-accent",children:[(0,a.jsx)(f.A,{className:"size-3.5 text-muted-foreground"}),(0,a.jsx)("span",{className:"jsx-fb767975a1bed37e text-[11px] font-semibold uppercase tracking-[0.18em] text-muted-foreground",children:"Scheduled"}),(0,a.jsx)("span",{className:"jsx-fb767975a1bed37e ml-auto rounded bg-[var(--fill-tertiary)] px-1.5 py-0.5 text-[10px] text-[var(--text-secondary)]",children:ey.length}),(0,a.jsx)(v.A,{className:(0,N.cn)("size-3.5 text-muted-foreground transition-transform",eC&&"-rotate-90")})]}),eC?null:eI.map(e=>eD(e))]}):null]})}),(0,a.jsx)(d(),{id:"fb767975a1bed37e",children:"@keyframes sidebar-pulse{0%,100%{opacity:1;transform:scale(1)}50%{opacity:.55;transform:scale(.85)}}"})]})}var K=r(7756),q=r(5608),V=r(129);let H={running:"bg-blue-500 animate-pulse",error:"bg-red-500",idle:"bg-zinc-500"};function J(e){let{tabs:t,activeIndex:r,onSwitch:s,onClose:l,onNew:i,onPin:o,onMove:c,toolbarActions:d,sidebarCollapsed:u,onToggleSidebar:x}=e,p=(0,n.useRef)(null),[m,f]=(0,n.useState)(null),[v,y]=(0,n.useState)(null),w=e=>{e.currentTarget instanceof HTMLElement&&(e.currentTarget.style.opacity="1"),f(null),y(null)};return(0,a.jsxs)("div",{className:"relative z-[100] flex h-10 shrink-0 items-center border-b border-border bg-[var(--bg-secondary)]",children:[x&&(0,a.jsx)("button",{onClick:x,"aria-label":u?"Show sidebar":"Hide sidebar",className:"flex size-10 shrink-0 items-center justify-center border-r border-border text-muted-foreground transition-colors hover:bg-[var(--fill-quaternary)] hover:text-foreground",children:u?(0,a.jsx)(K.A,{size:15}):(0,a.jsx)(q.A,{size:15})}),t.length>0&&(0,a.jsx)("div",{ref:p,className:"flex min-w-0 flex-1 items-center overflow-x-auto [scrollbar-width:none] [&::-webkit-scrollbar]:hidden",children:t.map((e,t)=>(0,a.jsxs)("button",{onClick:()=>s(t),onDoubleClick:()=>{null==o||o(t)},onMouseDown:e=>{1===e.button&&(e.preventDefault(),l(t))},draggable:!0,onDragStart:e=>{f(t),e.dataTransfer.effectAllowed="move",e.dataTransfer.setData("text/plain",String(t)),e.currentTarget instanceof HTMLElement&&(e.currentTarget.style.opacity="0.5")},onDragEnd:w,onDragOver:e=>{e.preventDefault(),e.dataTransfer.dropEffect="move",t!==m&&y(t)},onDrop:e=>(e.preventDefault(),void(f(null),y(null),null!==m&&m!==t&&(null==c||c(m,t)))),className:(0,N.cn)("group flex h-10 max-w-[180px] shrink-0 items-center gap-1.5 border-r border-border px-3 text-xs whitespace-nowrap transition-colors",t===r?"border-b-2 border-b-[var(--accent)] bg-background text-foreground":"text-muted-foreground hover:bg-[var(--fill-quaternary)] hover:text-foreground",e.unread&&t!==r&&"font-bold",v===t&&null!==m&&m!==t&&"border-l-2 border-l-[var(--accent)]"),children:[(0,a.jsx)("span",{className:"w-1.5 h-1.5 rounded-full shrink-0 ".concat(H[e.status]||H.idle)}),e.employeeName&&(0,a.jsx)(b.s,{name:e.employeeName,size:16}),(0,a.jsx)("span",{className:(0,N.cn)("truncate",e.pinned?"font-medium":"font-normal italic"),children:j(e.label)}),(0,a.jsx)("span",{onClick:e=>{e.stopPropagation(),l(t)},className:"ml-auto rounded-sm p-0.5 opacity-0 transition-all hover:bg-accent hover:text-foreground group-hover:opacity-100",children:(0,a.jsx)(g.A,{size:12})})]},e.sessionId))}),0===t.length&&(0,a.jsx)("div",{className:"flex-1"}),(0,a.jsx)("button",{onClick:i,className:"flex size-10 shrink-0 items-center justify-center text-[var(--text-tertiary)] transition-colors hover:bg-[var(--fill-quaternary)] hover:text-foreground",title:"New Chat",children:(0,a.jsx)(h.A,{size:14})}),d&&(0,a.jsxs)("div",{className:"hidden shrink-0 items-center gap-2 border-l border-border px-3 lg:flex",children:[d,(0,a.jsx)(V.r,{})]})]})}let Q="jinn-intermediate-";function $(e){try{localStorage.removeItem("".concat(Q).concat(e))}catch(e){}}function G(e){let{name:t,size:r,mimeType:n,url:s,isUser:l}=e;return(0,a.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:"var(--space-3)",padding:"var(--space-3) var(--space-4)",borderRadius:"var(--radius-lg)",background:l?"var(--accent)":"var(--material-thin)",border:l?"none":"1px solid var(--separator)",maxWidth:280,minWidth:180},children:[(0,a.jsx)("div",{style:{width:36,height:36,borderRadius:"var(--radius-sm)",background:l?"rgba(0,0,0,0.15)":"var(--fill-tertiary)",display:"flex",alignItems:"center",justifyContent:"center",flexShrink:0,color:l?"#000":"var(--text-secondary)"},children:function(e,t){var r;let n=(null==t||null==(r=t.split(".").pop())?void 0:r.toLowerCase())||"",s="application/pdf"===e||"pdf"===n,l=["doc","docx"].includes(n)||(null==e?void 0:e.includes("wordprocessingml")),i=["txt","csv","json","md"].includes(n)||(null==e?void 0:e.startsWith("text/")),o=["zip","tar","gz","rar","7z"].includes(n);return s?(0,a.jsxs)("svg",{width:"18",height:"18",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:[(0,a.jsx)("path",{d:"M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8z"}),(0,a.jsx)("polyline",{points:"14 2 14 8 20 8"}),(0,a.jsx)("line",{x1:"9",y1:"15",x2:"15",y2:"15"})]}):l?(0,a.jsxs)("svg",{width:"18",height:"18",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:[(0,a.jsx)("path",{d:"M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8z"}),(0,a.jsx)("polyline",{points:"14 2 14 8 20 8"}),(0,a.jsx)("line",{x1:"16",y1:"13",x2:"8",y2:"13"}),(0,a.jsx)("line",{x1:"16",y1:"17",x2:"8",y2:"17"}),(0,a.jsx)("polyline",{points:"10 9 9 9 8 9"})]}):i?(0,a.jsxs)("svg",{width:"18",height:"18",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:[(0,a.jsx)("path",{d:"M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8z"}),(0,a.jsx)("polyline",{points:"14 2 14 8 20 8"})]}):o?(0,a.jsxs)("svg",{width:"18",height:"18",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:[(0,a.jsx)("path",{d:"M21 8v13H3V8"}),(0,a.jsx)("path",{d:"M1 3h22v5H1z"}),(0,a.jsx)("path",{d:"M10 12h4"})]}):(0,a.jsxs)("svg",{width:"18",height:"18",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:[(0,a.jsx)("path",{d:"M13 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V9z"}),(0,a.jsx)("polyline",{points:"13 2 13 9 20 9"})]})}(n,t)}),(0,a.jsxs)("div",{style:{flex:1,minWidth:0},children:[(0,a.jsx)("div",{style:{fontSize:"var(--text-footnote)",fontWeight:"var(--weight-medium)",color:l?"#000":"var(--text-primary)",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:t}),null!=r&&(0,a.jsx)("div",{style:{fontSize:"var(--text-caption2)",color:l?"rgba(0,0,0,0.5)":"var(--text-tertiary)",marginTop:1},children:r<1024?"".concat(r," B"):r<1048576?"".concat((r/1024).toFixed(0)," KB"):"".concat((r/1048576).toFixed(1)," MB")})]}),(0,a.jsx)("a",{href:s,download:t,"aria-label":"Download ".concat(t),style:{width:28,height:28,borderRadius:"50%",background:l?"rgba(0,0,0,0.15)":"var(--fill-secondary)",display:"flex",alignItems:"center",justifyContent:"center",flexShrink:0,color:l?"#000":"var(--text-secondary)",textDecoration:"none"},children:(0,a.jsxs)("svg",{width:"14",height:"14",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:[(0,a.jsx)("path",{d:"M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4"}),(0,a.jsx)("polyline",{points:"7 10 12 15 17 10"}),(0,a.jsx)("line",{x1:"12",y1:"15",x2:"12",y2:"3"})]})})]})}function Y(e){let{src:t,duration:r,waveform:s,isUser:l}=e,i=(0,n.useRef)(null),[o,c]=(0,n.useState)(!1),[d,u]=(0,n.useState)(0),[x,p]=(0,n.useState)(0);(0,n.useEffect)(()=>{let e=new Audio(t);return i.current=e,e.addEventListener("timeupdate",()=>{e.duration&&isFinite(e.duration)&&(u(e.currentTime/e.duration),p(e.currentTime))}),e.addEventListener("ended",()=>{c(!1),u(0),p(0)}),e.addEventListener("pause",()=>c(!1)),e.addEventListener("play",()=>c(!0)),()=>{e.pause(),e.src=""}},[t]);let h=(0,n.useCallback)(()=>{let e=i.current;e&&(o?e.pause():e.play().catch(()=>{}))},[o]),m=s.length>0?s:Array(50).fill(.1),g=o?x:r;return(0,a.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:"var(--space-3)",padding:"var(--space-3) var(--space-4)",borderRadius:"var(--radius-lg)",background:l?"var(--accent)":"var(--material-thin)",border:l?"none":"1px solid var(--separator)",maxWidth:280,minWidth:200},children:[(0,a.jsx)("button",{onClick:h,"aria-label":o?"Pause":"Play",style:{width:28,height:28,borderRadius:"50%",background:l?"rgba(0,0,0,0.2)":"var(--fill-secondary)",border:"none",cursor:"pointer",display:"flex",alignItems:"center",justifyContent:"center",flexShrink:0,color:l?"#000":"var(--text-primary)"},children:o?(0,a.jsxs)("svg",{width:"12",height:"12",viewBox:"0 0 24 24",fill:"currentColor",children:[(0,a.jsx)("rect",{x:"6",y:"4",width:"4",height:"16",rx:"1"}),(0,a.jsx)("rect",{x:"14",y:"4",width:"4",height:"16",rx:"1"})]}):(0,a.jsx)("svg",{width:"12",height:"12",viewBox:"0 0 24 24",fill:"currentColor",children:(0,a.jsx)("polygon",{points:"6,4 20,12 6,20"})})}),(0,a.jsx)("div",{style:{flex:1,display:"flex",alignItems:"center",gap:2,height:28},children:m.map((e,t)=>{let r=t/m.length<=d;return(0,a.jsx)("div",{style:{width:3,borderRadius:1.5,height:"".concat(Math.max(4,24*e),"px"),background:l?r?"rgba(0,0,0,0.7)":"rgba(0,0,0,0.25)":r?"var(--accent)":"var(--fill-primary)",transition:"background 100ms ease",flexShrink:0}},t)})}),(0,a.jsx)("span",{style:{fontSize:"var(--text-caption2)",color:l?"rgba(0,0,0,0.6)":"var(--text-tertiary)",fontVariantNumeric:"tabular-nums",flexShrink:0,minWidth:28,textAlign:"right"},children:function(e){let t=Math.floor(e/60),r=Math.floor(e%60);return"".concat(t,":").concat(r.toString().padStart(2,"0"))}(g)})]})}function X(e){let{msgs:t,isActive:r}=e,[s,l]=(0,n.useState)(!1),i=t.every(e=>e.content.startsWith("Used ")),o=r&&!i?"".concat(t.length," tool").concat(1!==t.length?"s":""," running…"):"".concat(t.length," tool").concat(1!==t.length?"s":""," used");return(0,a.jsxs)("div",{className:"px-[var(--space-4)] mb-[var(--space-1)]",children:[(0,a.jsxs)("button",{onClick:()=>l(e=>!e),className:"flex items-center gap-[var(--space-2)] py-[5px] px-[var(--space-3)] rounded-full bg-[var(--fill-secondary)] border border-[var(--separator)] text-[length:var(--text-caption1)] text-[var(--text-secondary)] cursor-pointer transition-[background] duration-150 ease-in-out hover:bg-[var(--fill-tertiary)]",children:[(0,a.jsx)("svg",{width:"12",height:"12",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",className:"opacity-60",children:(0,a.jsx)("path",{d:"M14.7 6.3a1 1 0 0 0 0 1.4l1.6 1.6a1 1 0 0 0 1.4 0l3.77-3.77a6 6 0 0 1-7.94 7.94l-6.91 6.91a2.12 2.12 0 0 1-3-3l6.91-6.91a6 6 0 0 1 7.94-7.94l-3.76 3.76z"})}),o,r&&!i&&(0,a.jsx)("span",{className:"w-1.5 h-1.5 rounded-full bg-[var(--system-blue)] animate-[jinn-pulse_1.4s_infinite]"}),(0,a.jsx)("svg",{width:"10",height:"10",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2.5",strokeLinecap:"round",strokeLinejoin:"round",className:"transition-transform duration-150 ease-in-out opacity-50 ".concat(s?"rotate-180":"rotate-0"),children:(0,a.jsx)("polyline",{points:"6 9 12 15 18 9"})})]}),s&&(0,a.jsx)("div",{className:"flex flex-wrap gap-[var(--space-1)] mt-[var(--space-1)] pl-[var(--space-1)]",children:t.map(e=>(0,a.jsx)("span",{className:"inline-flex items-center gap-1 py-0.5 px-2 rounded-full bg-[var(--fill-tertiary)] border border-[var(--separator)] text-[length:var(--text-caption2)] text-[var(--text-tertiary)]",children:e.toolCall},e.id))})]})}function Z(e){let t,r=[],n=/(https?:\/\/[^\s<]+[^\s<.,;:!?)}\]'"])|(\*\*(.+?)\*\*)|(`([^`]+)`)|\*([^*]+)\*/g,s=0;for(;null!==(t=n.exec(e));)t.index>s&&r.push(e.slice(s,t.index)),t[1]?r.push((0,a.jsx)("a",{href:t[1],target:"_blank",rel:"noopener noreferrer",className:"text-[var(--system-blue)] underline underline-offset-2",children:t[1]},t.index)):t[2]?r.push((0,a.jsx)("strong",{className:"font-[var(--weight-bold)]",children:t[3]},t.index)):t[4]?r.push((0,a.jsx)("code",{className:"bg-[var(--fill-secondary)] border border-[var(--separator)] rounded-[5px] py-px px-[5px] text-[0.88em] font-['SF_Mono',Menlo,monospace] text-[var(--accent)]",children:t[5]},t.index)):t[6]&&r.push((0,a.jsx)("em",{className:"italic opacity-[0.85]",children:t[6]},t.index)),s=t.index+t[0].length;return s<e.length&&r.push(e.slice(s)),1===r.length?r[0]:(0,a.jsx)(a.Fragment,{children:r})}function ee(e){let{code:t,keyProp:r}=e,[s,l]=(0,n.useState)(!1);return(0,a.jsxs)("div",{className:"relative my-2",children:[(0,a.jsx)("button",{onClick:function(){navigator.clipboard.writeText(t).then(()=>{l(!0),setTimeout(()=>l(!1),1500)})},"aria-label":"Copy code",className:"absolute top-2 right-2 py-0.5 px-2 text-[11px] rounded-[var(--radius-sm)] bg-[var(--fill-secondary)] text-[var(--text-secondary)] border border-[var(--separator)] cursor-pointer",children:s?"Copied!":"Copy"}),(0,a.jsx)("pre",{className:"code-block bg-[var(--fill-tertiary)] border border-[var(--separator)] rounded-[var(--radius-md)] py-[var(--space-3)] px-[var(--space-4)] overflow-x-auto text-[13px] leading-normal font-['SF_Mono',Menlo,monospace] text-[var(--text-primary)]",children:(0,a.jsx)("code",{children:t})})]},r)}function et(e){return/^\|[\s:|-]+\|$/.test(e.trim())}function er(e){return e.trim().replace(/^\|/,"").replace(/\|$/,"").split("|").map(e=>e.trim())}function ea(e){let{headerLine:t,rows:r,keyProp:n}=e,s=er(t),l=r.map(er);return(0,a.jsx)("div",{className:"my-2.5 rounded-[10px] border border-[var(--separator)] overflow-hidden",children:(0,a.jsx)("div",{className:"overflow-x-auto [WebkitOverflowScrolling:touch]",children:(0,a.jsxs)("table",{className:"border-collapse text-[length:var(--text-footnote)] leading-[1.6] w-full min-w-max",children:[(0,a.jsx)("thead",{children:(0,a.jsx)("tr",{className:"bg-[var(--fill-tertiary)]",children:s.map((e,t)=>(0,a.jsx)("th",{className:"text-left py-2.5 px-4 font-semibold text-[var(--text-primary)] border-b border-[var(--separator)] max-w-[280px] break-words",children:Z(e)},t))})}),(0,a.jsx)("tbody",{children:l.map((e,t)=>(0,a.jsx)("tr",{className:t%2==1?"bg-[var(--fill-quaternary,transparent)]":"bg-transparent",children:e.map((e,r)=>(0,a.jsx)("td",{className:"py-2.5 px-4 text-[var(--text-primary)] max-w-[280px] break-words ".concat(t<l.length-1?"border-b border-[var(--separator)]":""),children:Z(e)},r))},t))})]})})},n)}function en(e){if(!e)return null;let t=e.split("\n"),r=[],n=!1,s=[];for(let e=0;e<t.length;e++){let i=t[e];if(i.startsWith("```")){n?(n=!1,r.push((0,a.jsx)(ee,{keyProp:e,code:s.join("\n")},e))):n=!0,s=[];continue}if(n){s.push(i);continue}if(i.trim().startsWith("|")&&i.trim().endsWith("|")&&e+1<t.length&&et(t[e+1])){e++;let n=[];for(;e+1<t.length&&t[e+1].trim().startsWith("|")&&t[e+1].trim().endsWith("|")&&!et(t[e+1]);)e++,n.push(t[e]);r.push((0,a.jsx)(ea,{keyProp:e,headerLine:i,rows:n},"table-".concat(e)));continue}if(""===i.trim()){r.push((0,a.jsx)("div",{className:"h-1.5"},"space-".concat(e)));continue}if(i.match(/^[-*] /)){r.push((0,a.jsxs)("div",{className:"flex gap-[var(--space-2)] mb-0.5",children:[(0,a.jsx)("span",{className:"text-[var(--accent)] shrink-0 mt-px",children:"•"}),(0,a.jsx)("span",{children:Z(i.slice(2))})]},e));continue}if(i.match(/^\d+\. /)){var l;let t=null==(l=i.match(/^(\d+)\. /))?void 0:l[1];r.push((0,a.jsxs)("div",{className:"flex gap-[var(--space-2)] mb-0.5",children:[(0,a.jsxs)("span",{className:"text-[var(--accent)] shrink-0 font-[var(--weight-semibold)] min-w-4",children:[t,"."]}),(0,a.jsx)("span",{children:Z(i.replace(/^\d+\. /,""))})]},e));continue}if(i.startsWith("### ")){r.push((0,a.jsx)("div",{className:"font-[var(--weight-semibold)] text-[length:var(--text-footnote)] mt-[var(--space-2)] mb-0.5",children:Z(i.slice(4))},e));continue}if(i.startsWith("## ")){r.push((0,a.jsx)("div",{className:"font-[var(--weight-bold)] text-[length:var(--text-subheadline)] mt-[var(--space-3)] mb-[3px]",children:Z(i.slice(3))},e));continue}if(i.startsWith("# ")){r.push((0,a.jsx)("div",{className:"font-[var(--weight-bold)] text-[length:var(--text-body)] mt-[var(--space-3)] mb-[var(--space-1)]",children:Z(i.slice(2))},e));continue}r.push((0,a.jsx)("div",{className:"mb-px",children:Z(i)},e))}return n&&s.length>0&&r.push((0,a.jsx)(ee,{keyProp:999,code:s.join("\n")},"trailing-code")),(0,a.jsx)(a.Fragment,{children:r})}function es(e){let t=new Date,r=new Date(e),a=t.toDateString()===r.toDateString(),n=new Date(t);n.setDate(n.getDate()-1);let s=n.toDateString()===r.toDateString(),l=r.toLocaleTimeString("en-US",{hour:"numeric",minute:"2-digit",hour12:!0});return a?"Today ".concat(l):s?"Yesterday ".concat(l):r.toLocaleDateString("en-US",{month:"short",day:"numeric"})+" ".concat(l)}function el(e,t){return 0===t||e[t].timestamp-e[t-1].timestamp>3e5}function ei(e,t){let r=e.filter(e=>"image"===e.type),n=e.filter(e=>"audio"===e.type),s=e.filter(e=>"file"===e.type);return(0,a.jsxs)(a.Fragment,{children:[r.map((e,t)=>(0,a.jsx)("div",{className:"mt-[var(--space-2)] rounded-[var(--radius-lg)] overflow-hidden max-w-[280px]",children:(0,a.jsx)("img",{src:e.url,alt:e.name||"Image",className:"w-full block rounded-[var(--radius-lg)] cursor-pointer",onClick:()=>window.open(e.url,"_blank")})},"img-".concat(t))),n.map((e,r)=>(0,a.jsx)("div",{className:"mt-[var(--space-2)]",children:(0,a.jsx)(Y,{src:e.url,duration:e.duration||0,waveform:e.waveform||[],isUser:t})},"audio-".concat(r))),s.map((e,r)=>(0,a.jsx)("div",{className:"mt-[var(--space-2)]",children:(0,a.jsx)(G,{name:e.name||"File",size:e.size,mimeType:e.mimeType,url:e.url,isUser:t})},"file-".concat(r)))]})}function eo(e){let{messages:t,loading:r,streamingText:s}=e,l=(0,n.useRef)(null),i=(0,n.useRef)(null),o=(0,n.useRef)(0),c=(0,n.useRef)(null);return((0,n.useLayoutEffect)(()=>{var e,r;if(0===t.length){o.current=0,c.current=null;return}let a=(null==(e=t[0])?void 0:e.id)||null,n=null!==c.current&&a!==c.current;0===o.current&&t.length>0||n?i.current&&(i.current.scrollTop=i.current.scrollHeight):null==(r=l.current)||r.scrollIntoView({behavior:"smooth"}),o.current=t.length,c.current=a},[t]),(0,n.useEffect)(()=>{if(r&&t.length>0){var e;null==(e=l.current)||e.scrollIntoView({behavior:"smooth"})}},[r,t.length]),0!==t.length||r)?(0,a.jsxs)("div",{ref:i,className:"chat-messages-scroll flex-1 overflow-y-auto overflow-x-hidden py-[var(--space-3)] pb-[var(--space-6)] bg-[var(--bg)] min-h-0",children:[(function(e){let t=[],r=0;for(;r<e.length;)if("assistant"===e[r].role&&e[r].toolCall){let a=[],n=r;for(;r<e.length&&"assistant"===e[r].role&&e[r].toolCall;)a.push(e[r]),r++;t.push({kind:"tool-group",msgs:a,startIndex:n})}else t.push({kind:"message",msg:e[r],index:r}),r++;return t})(t).map(e=>{if("tool-group"===e.kind){let n=e.msgs[0],s=el(t,e.startIndex),l=e.startIndex>0?t[e.startIndex-1]:null,i=r&&e.startIndex+e.msgs.length===t.length;return(0,a.jsxs)("div",{children:[s&&(0,a.jsx)("div",{className:"text-center py-[var(--space-3)] text-[length:var(--text-caption2)] text-[var(--text-tertiary)]",children:es(n.timestamp)}),!s&&l&&(0,a.jsx)("div",{className:"assistant"!==l.role?"h-[var(--space-4)]":"h-[var(--space-1)]"}),(0,a.jsx)(X,{msgs:e.msgs,isActive:i})]},"tg-".concat(e.startIndex))}let{msg:n,index:s}=e,l="user"===n.role,i="notification"===n.role,o=el(t,s),c=n.media||function(e){let t,r=[],a=/!\[([^\]]*)\]\((https?:\/\/[^)]+\.(jpg|jpeg|png|gif|webp|svg)(\?[^)]*)?)\)/gi;for(;null!==(t=a.exec(e));)r.push({type:"image",url:t[2],name:t[1]||"Image"});let n=RegExp("(?<!\\]\\()https?:\\/\\/\\S+\\.(jpg|jpeg|png|gif|webp)(\\?\\S*)?\\b","gi");for(;null!==(t=n.exec(e));){let e=t[0];r.find(t=>t.url===e)||r.push({type:"image",url:e})}let s=/https?:\/\/\S+\.(mp3|wav|ogg|m4a|aac)(\?\S*)?\b/gi;for(;null!==(t=s.exec(e));)r.push({type:"audio",url:t[0],name:t[0].split("/").pop()});return r}(n.content),d=n.content;return c.length>0&&!n.media&&(c.forEach(e=>{d=(d=d.replace(e.url,"")).replace(/!\[[^\]]*\]\([^)]+\)/g,"")}),d=d.trim()),n.media&&n.media.length>0&&d.startsWith("[")&&d.endsWith("]")&&(d=""),(0,a.jsxs)("div",{children:[o&&(0,a.jsx)("div",{className:"text-center py-[var(--space-3)] text-[length:var(--text-caption2)] text-[var(--text-tertiary)]",children:es(n.timestamp)}),!o&&s>0&&(0,a.jsx)("div",{className:t[s-1].role!==n.role?"h-[var(--space-4)]":"h-[var(--space-1)]"}),i&&(0,a.jsx)("div",{className:"flex justify-center px-[var(--space-4)] mb-[var(--space-1)]",children:(0,a.jsxs)("div",{className:"notification-msg-bubble flex items-start gap-[var(--space-2)] py-[var(--space-3)] px-[var(--space-4)] rounded-[var(--radius-md)] bg-[var(--fill-secondary)] border border-dashed border-[var(--separator)] text-[var(--text-secondary)] text-[length:var(--text-caption1)] leading-[var(--leading-relaxed)] max-w-[85%]",children:[(0,a.jsxs)("svg",{width:"14",height:"14",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",className:"shrink-0 mt-0.5 opacity-60",children:[(0,a.jsx)("path",{d:"M18 8A6 6 0 0 0 6 8c0 7-3 9-3 9h18s-3-2-3-9"}),(0,a.jsx)("path",{d:"M13.73 21a2 2 0 0 1-3.46 0"})]}),(0,a.jsx)("span",{children:en(d)})]})}),l&&(0,a.jsxs)("div",{className:"flex flex-col items-end px-[var(--space-4)] mb-[var(--space-1)]",children:[d&&(0,a.jsx)("div",{className:"user-msg-bubble py-[var(--space-3)] px-[var(--space-4)] rounded-[var(--radius-lg)_var(--radius-lg)_var(--radius-sm)_var(--radius-lg)] bg-[var(--accent)] text-[var(--accent-contrast)] text-[length:var(--text-subheadline)] leading-[var(--leading-relaxed)] font-[var(--weight-medium)] shadow-[var(--shadow-subtle)]",children:en(d)}),c.length>0&&(0,a.jsx)("div",{className:"user-msg-bubble",children:ei(c,!0)})]}),!l&&!i&&(0,a.jsx)("div",{className:"assistant-msg-row flex justify-start px-[var(--space-4)] mb-[var(--space-1)]",children:(0,a.jsxs)("div",{className:"assistant-msg-bubble flex flex-col",children:[d&&(0,a.jsx)("div",{className:"py-[var(--space-3)] px-[var(--space-4)] rounded-[var(--radius-sm)_var(--radius-lg)_var(--radius-lg)_var(--radius-lg)] bg-[var(--material-thin)] border border-[var(--separator)] text-[var(--text-primary)] text-[length:var(--text-subheadline)] leading-[var(--leading-relaxed)]",children:en(d)}),c.length>0&&ei(c,!1)]})})]},n.id||s)}),s&&(0,a.jsx)("div",{className:"assistant-msg-row flex justify-start px-[var(--space-4)] mb-[var(--space-1)]",children:(0,a.jsx)("div",{className:"assistant-msg-bubble flex flex-col",children:(0,a.jsx)("div",{className:"py-[var(--space-3)] px-[var(--space-4)] rounded-[var(--radius-sm)_var(--radius-lg)_var(--radius-lg)_var(--radius-lg)] bg-[var(--material-thin)] border border-[var(--separator)] text-[var(--text-primary)] text-[length:var(--text-subheadline)] leading-[var(--leading-relaxed)]",children:en(function(e){let t=e,r=(t.match(/```/g)||[]).length;if(r%2!=0&&(t+="\n```"),r%2==0){let e=t.replace(/```[\s\S]*?```/g,"");(e.match(/`/g)||[]).length%2!=0&&(t+="`"),(e.match(/\*\*/g)||[]).length%2!=0&&(t+="**")}return t}(s))})})}),r&&!s&&t.length>0&&(0,a.jsxs)("div",{className:"flex items-center gap-1.5 py-1.5 px-[var(--space-4)] mt-[var(--space-1)]",children:[(0,a.jsx)("span",{className:"w-1.5 h-1.5 rounded-full bg-[var(--accent)] animate-[jinn-pulse_1.4s_infinite] shrink-0"}),(0,a.jsx)("span",{className:"text-[length:var(--text-caption1)] text-[var(--text-tertiary)] font-[var(--weight-medium)]",children:"Thinking"})]}),(0,a.jsx)("div",{ref:l}),(0,a.jsx)("style",{children:"\n @keyframes jinn-pulse {\n 0%, 80%, 100% { opacity: 0.3; transform: scale(0.8); }\n 40% { opacity: 1; transform: scale(1); }\n }\n .assistant-msg-bubble { max-width: 100%; overflow-wrap: break-word; word-break: break-word; }\n .user-msg-bubble { max-width: 90%; overflow-wrap: break-word; word-break: break-word; }\n .notification-msg-bubble { overflow-wrap: break-word; word-break: break-word; }\n .assistant-msg-row { padding: 0 var(--space-2) !important; }\n @media (min-width: 1024px) {\n .assistant-msg-bubble { max-width: 75%; }\n .user-msg-bubble { max-width: 75%; }\n .assistant-msg-row { padding: 0 var(--space-4) !important; }\n }\n /* User message contrast fixes — ensure all child elements are visible on accent background */\n .user-msg-bubble code {\n background: rgba(255,255,255,0.2) !important;\n border-color: rgba(255,255,255,0.3) !important;\n color: inherit !important;\n }\n .user-msg-bubble .code-block,\n .user-msg-bubble pre {\n background: rgba(0,0,0,0.2) !important;\n border-color: rgba(255,255,255,0.15) !important;\n color: rgba(255,255,255,0.95) !important;\n }\n .user-msg-bubble a {\n color: inherit !important;\n text-decoration-color: rgba(255,255,255,0.6) !important;\n }\n .user-msg-bubble strong { color: inherit !important; }\n .user-msg-bubble em { color: inherit !important; opacity: 0.9; }\n .user-msg-bubble span { color: inherit !important; }\n .user-msg-bubble div { color: inherit !important; }\n .user-msg-bubble th, .user-msg-bubble td { color: inherit !important; }\n .user-msg-bubble table { border-color: rgba(255,255,255,0.2) !important; }\n .user-msg-bubble th { border-color: rgba(255,255,255,0.2) !important; }\n .user-msg-bubble td { border-color: rgba(255,255,255,0.15) !important; }\n .user-msg-bubble tr { background: transparent !important; }\n .user-msg-bubble thead tr { background: rgba(255,255,255,0.1) !important; }\n /* Selection visibility for user messages */\n .user-msg-bubble ::selection {\n background: rgba(255,255,255,0.35);\n color: inherit;\n }\n .user-msg-bubble ::-moz-selection {\n background: rgba(255,255,255,0.35);\n color: inherit;\n }\n "})]}):(0,a.jsx)("div",{className:"flex-1 flex items-center justify-center",children:(0,a.jsxs)("div",{className:"text-center",children:[(0,a.jsx)("div",{className:"text-[length:var(--text-title3)] font-[var(--weight-semibold)] text-[var(--text-tertiary)]",children:"Start a conversation"}),(0,a.jsx)("div",{className:"text-[length:var(--text-footnote)] text-[var(--text-quaternary)] mt-[var(--space-2)]",children:"Send a message or use /new to begin"})]})})}function ec(e){let{attachments:t,onRemove:r}=e;return 0===t.length?null:(0,a.jsx)("div",{style:{display:"flex",gap:"var(--space-2)",padding:"var(--space-2) var(--space-3)",overflowX:"auto",overflowY:"hidden"},children:t.map((e,t)=>{var n,s;return(0,a.jsxs)("div",{style:{position:"relative",width:56,height:56,flexShrink:0,borderRadius:"var(--radius-sm)",overflow:"hidden",background:"var(--fill-tertiary)",border:"1px solid var(--separator)"},children:["image"===e.type?(0,a.jsx)("img",{src:e.url,alt:e.name||"Preview",style:{width:"100%",height:"100%",objectFit:"cover"}}):(0,a.jsxs)("div",{style:{width:"100%",height:"100%",display:"flex",flexDirection:"column",alignItems:"center",justifyContent:"center",gap:2,padding:4},children:["audio"===e.type?(0,a.jsxs)("svg",{width:"16",height:"16",viewBox:"0 0 24 24",fill:"none",stroke:"var(--text-tertiary)",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:[(0,a.jsx)("path",{d:"M9 18V5l12-2v13"}),(0,a.jsx)("circle",{cx:"6",cy:"18",r:"3"}),(0,a.jsx)("circle",{cx:"18",cy:"16",r:"3"})]}):(0,a.jsxs)("svg",{width:"16",height:"16",viewBox:"0 0 24 24",fill:"none",stroke:"var(--text-tertiary)",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:[(0,a.jsx)("path",{d:"M13 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V9z"}),(0,a.jsx)("polyline",{points:"13 2 13 9 20 9"})]}),(0,a.jsx)("span",{style:{fontSize:8,color:"var(--text-quaternary)",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",maxWidth:"100%",textAlign:"center"},children:(null==(s=e.name)||null==(n=s.split(".").pop())?void 0:n.toUpperCase())||e.type.toUpperCase()})]}),(0,a.jsx)("button",{onClick:()=>r(t),"aria-label":"Remove attachment",style:{position:"absolute",top:2,right:2,width:18,height:18,borderRadius:"50%",background:"rgba(0,0,0,0.6)",border:"none",cursor:"pointer",display:"flex",alignItems:"center",justifyContent:"center",color:"#fff",fontSize:11,lineHeight:1,padding:0},children:(0,a.jsxs)("svg",{width:"10",height:"10",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"3",strokeLinecap:"round",children:[(0,a.jsx)("line",{x1:"18",y1:"6",x2:"6",y2:"18"}),(0,a.jsx)("line",{x1:"6",y1:"6",x2:"18",y2:"18"})]})})]},t)})})}function ed(e){let{open:t,progress:r,onDownload:n,onCancel:s}=e;if(!t)return null;let l=null!==r;return(0,a.jsx)("div",{className:"fixed inset-0 bg-black/50 z-[60] flex items-center justify-center",onClick:l?void 0:s,children:(0,a.jsxs)("div",{className:"bg-[var(--bg)] rounded-[var(--radius-lg)] p-[var(--space-6)] max-w-[400px] w-[90%] shadow-[var(--shadow-overlay)]",onClick:e=>e.stopPropagation(),children:[(0,a.jsx)("div",{className:"w-12 h-12 rounded-[var(--radius-md)] bg-[var(--fill-secondary)] flex items-center justify-center mb-[var(--space-4)]",children:(0,a.jsxs)("svg",{width:"24",height:"24",viewBox:"0 0 24 24",fill:"none",stroke:"var(--text-secondary)",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:[(0,a.jsx)("path",{d:"M12 1a3 3 0 0 0-3 3v8a3 3 0 0 0 6 0V4a3 3 0 0 0-3-3z"}),(0,a.jsx)("path",{d:"M19 10v2a7 7 0 0 1-14 0v-2"}),(0,a.jsx)("line",{x1:"12",y1:"19",x2:"12",y2:"23"}),(0,a.jsx)("line",{x1:"8",y1:"23",x2:"16",y2:"23"})]})}),(0,a.jsx)("h3",{className:"text-[length:var(--text-headline)] font-[var(--weight-bold)] text-[var(--text-primary)] mb-[var(--space-2)]",children:"Enable voice input?"}),(0,a.jsx)("p",{className:"text-[length:var(--text-body)] text-[var(--text-secondary)] mb-[var(--space-5)] leading-[var(--leading-relaxed)]",children:"This will download a speech recognition model (~500MB). Transcription runs locally on your server — no data leaves your network."}),l&&(0,a.jsxs)("div",{className:"mb-[var(--space-5)]",children:[(0,a.jsxs)("div",{className:"flex justify-between mb-[var(--space-2)] text-[length:var(--text-footnote)] text-[var(--text-tertiary)]",children:[(0,a.jsx)("span",{children:"Downloading model…"}),(0,a.jsxs)("span",{children:[r,"%"]})]}),(0,a.jsx)("div",{className:"h-1.5 rounded-[3px] bg-[var(--fill-tertiary)] overflow-hidden",children:(0,a.jsx)("div",{className:"h-full rounded-[3px] bg-[var(--accent)] transition-[width] duration-300 ease-in-out",style:{width:"".concat(r,"%")}})})]}),(0,a.jsxs)("div",{className:"flex gap-[var(--space-3)] justify-end",children:[!l&&(0,a.jsx)("button",{onClick:s,className:"px-[var(--space-4)] py-[var(--space-2)] rounded-[var(--radius-md)] bg-[var(--fill-tertiary)] text-[var(--text-primary)] border-none cursor-pointer text-[length:var(--text-body)]",children:"Cancel"}),(0,a.jsx)("button",{onClick:n,disabled:l,className:"px-[var(--space-4)] py-[var(--space-2)] rounded-[var(--radius-md)] border-none text-[length:var(--text-body)] font-[var(--weight-semibold)] ".concat(l?"bg-[var(--fill-tertiary)] text-[var(--text-tertiary)] cursor-default":"bg-[var(--accent)] text-black cursor-pointer"),children:l?"Downloading…":"Download"})]})]})})}function eu(e){let{analyser:t,width:r=64,height:s=32,color:l="var(--system-red)"}=e,i=(0,n.useRef)(null),o=(0,n.useRef)(0);return(0,n.useEffect)(()=>{let e=i.current;if(!e||!t)return;let a=e.getContext("2d");if(!a)return;let n=t.frequencyBinCount,c=new Uint8Array(n),d=(r-22)/12;return!function e(){o.current=requestAnimationFrame(e),t.getByteFrequencyData(c),a.clearRect(0,0,r,s);for(let e=0;e<12;e++){let t=Math.max(3,c[Math.floor(e/12*(.6*n))]/255*s),r=e*(d+2),i=(s-t)/2;a.fillStyle=l,a.beginPath(),a.roundRect(r,i,d,t,1.5),a.fill()}}(),()=>{cancelAnimationFrame(o.current)}},[t,r,s,l]),(0,a.jsx)("canvas",{ref:i,width:r,height:s,style:{width:r,height:s,display:"block"}})}let ex=[{name:"new",description:"Start a new chat session"},{name:"status",description:"Show current session info"}];async function ep(e){let t,r=e.type.startsWith("image/"),a=e.type.startsWith("audio/");if(r)t=await new Promise((t,r)=>{let a=new Image,n=URL.createObjectURL(e);a.onload=()=>{URL.revokeObjectURL(n);let{width:s,height:l}=a;if(s>1200||l>1200){let e=1200/Math.max(s,l);s=Math.round(s*e),l=Math.round(l*e)}let i=document.createElement("canvas");i.width=s,i.height=l;let o=i.getContext("2d");if(!o)return void r(Error("no canvas context"));o.drawImage(a,0,0,s,l);let c=e.size>5e4?"image/jpeg":"image/png";t(i.toDataURL(c,"image/jpeg"===c?.85:void 0))},a.onerror=()=>{URL.revokeObjectURL(n),r(Error("image load failed"))},a.src=n});else t=await new Promise((t,r)=>{let a=new FileReader;a.onloadend=()=>t(a.result),a.onerror=r,a.readAsDataURL(e)});return{type:r?"image":a?"audio":"file",url:t,name:e.name,mimeType:e.type,size:e.size,file:e}}function eh(e){let{disabled:t,loading:r,onSend:s,onInterrupt:i,onNewSession:o,onStatusRequest:c,skillsVersion:d,events:u,droppedFiles:x,onDroppedFilesConsumed:p}=e,[h,m]=(0,n.useState)(""),[g,f]=(0,n.useState)([]),[v,y]=(0,n.useState)(!1),[j,w]=(0,n.useState)(""),[k,N]=(0,n.useState)(0),[S,C]=(0,n.useState)(ex),[I,D]=(0,n.useState)(!1),[M,L]=(0,n.useState)(""),[E,z]=(0,n.useState)(0),[A,T]=(0,n.useState)([]),F=(0,n.useRef)(null),R=(0,n.useRef)(null),_=(0,n.useRef)(new Map),U=function(e,t){let[r,a]=(0,n.useState)("idle"),[s,i]=(0,n.useState)(null),[o,c]=(0,n.useState)(null),[d,u]=(0,n.useState)(null),[x,p]=(0,n.useState)(["en"]),[h,m]=(0,n.useState)(null),[g,f]=(0,n.useState)(()=>localStorage.getItem("stt-language")||"en"),v=(0,n.useRef)(g);v.current=g;let b=(0,n.useRef)(null),y=(0,n.useRef)(null),j=(0,n.useRef)(null),w=(0,n.useRef)([]),k=(0,n.useRef)(null),N=(0,n.useRef)(null),S=(0,n.useRef)(t);S.current=t,(0,n.useEffect)(()=>{if(!e||0===e.length)return;let t=e[e.length-1];if(!t.event.startsWith("stt:"))return;let r=t.payload;"stt:download:progress"===t.event&&c(Number(r.progress)||0),"stt:download:complete"===t.event&&(c(null),i(!0),a("idle")),"stt:download:error"===t.event&&(c(null),a("idle"))},[e]);let C=(0,n.useCallback)(()=>{var e,t;null==(e=j.current)||e.getTracks().forEach(e=>e.stop()),j.current=null,null==(t=y.current)||t.close().catch(()=>{}),y.current=null,u(null),b.current=null},[]);(0,n.useEffect)(()=>()=>{var e,t,r;k.current&&clearTimeout(k.current),(null==(e=b.current)?void 0:e.state)==="recording"&&b.current.stop(),null==(t=j.current)||t.getTracks().forEach(e=>e.stop()),null==(r=y.current)||r.close().catch(()=>{})},[]);let I=(0,n.useCallback)(async()=>{try{var e;let t=await l.F.sttStatus();return i(t.available),t.downloading&&c(t.progress),(null==(e=t.languages)?void 0:e.length)>0&&(p(t.languages),f(e=>{if(!t.languages.includes(e)){let e=t.languages[0];return localStorage.setItem("stt-language",e),e}return e})),t.available}catch(e){return i(!1),!1}},[]),D=(0,n.useCallback)(async()=>{try{let e=await navigator.mediaDevices.getUserMedia({audio:!0});j.current=e;let t=new AudioContext;y.current=t;let r=t.createMediaStreamSource(e),n=t.createAnalyser();n.fftSize=128,r.connect(n),u(n);let s=MediaRecorder.isTypeSupported("audio/webm;codecs=opus")?"audio/webm;codecs=opus":MediaRecorder.isTypeSupported("audio/mp4")?"audio/mp4":"",i=new MediaRecorder(e,s?{mimeType:s}:void 0);b.current=i,w.current=[],i.ondataavailable=e=>{e.data.size>0&&w.current.push(e.data)},i.onstop=async()=>{C(),a("transcribing");let e=new Blob(w.current,{type:i.mimeType||"audio/webm"});if(w.current=[],0===e.size){var t;a("idle"),null==(t=N.current)||t.call(N,null),N.current=null;return}try{let t=(await l.F.sttTranscribe(e,v.current)).text||null;a("idle"),m(null),N.current?(N.current(t),N.current=null):t&&S.current&&S.current(t)}catch(t){let e=t instanceof Error?t.message:"Transcription failed";m(e),a("error"),N.current&&(N.current(null),N.current=null)}},i.start(5e3),a("recording"),k.current=setTimeout(()=>{var e;(null==(e=b.current)?void 0:e.state)==="recording"&&b.current.stop()},18e5)}catch(e){C(),a("idle")}},[C]),M=(0,n.useCallback)(async()=>{"recording"!==r&&"transcribing"!==r&&("error"===r&&(m(null),a("idle")),await I()?await D():a("no-model"))},[r,I,D]),L=(0,n.useCallback)(async()=>{await D()},[D]),E=(0,n.useCallback)(async()=>b.current&&"inactive"!==b.current.state?(k.current&&(clearTimeout(k.current),k.current=null),new Promise(e=>{var t;N.current=e,(null==(t=b.current)?void 0:t.state)==="recording"?b.current.stop():(C(),a("idle"),N.current=null,e(null))})):(a("idle"),null),[C]),z=(0,n.useCallback)(()=>{var e;k.current&&(clearTimeout(k.current),k.current=null),(null==(e=b.current)?void 0:e.state)==="recording"&&b.current.stop(),C(),w.current=[],a("idle")},[C]),A=(0,n.useCallback)(()=>{c(0),l.F.sttDownload().catch(()=>{c(null)})},[]),T=(0,n.useCallback)(()=>{a("idle"),c(null)},[]),F=(0,n.useCallback)(()=>{a("idle"),m(null)},[]),R=(0,n.useCallback)(()=>{f(e=>{let t=x.indexOf(e),r=x[(t+1)%x.length];return localStorage.setItem("stt-language",r),r})},[x]);return{state:r,available:s,downloadProgress:o,analyser:d,languages:x,selectedLanguage:g,error:h,cycleLanguage:R,handleMicClick:M,startRecording:L,stopRecording:E,cancelRecording:z,startDownload:A,dismissDownload:T,dismissError:F}}(u,e=>{e&&m(t=>t?t+" "+e:e)}),W=(0,n.useRef)(void 0);(0,n.useEffect)(()=>{x&&0!==x.length&&W.current!==x&&(W.current=x,(async()=>{let e=[];for(let t of x)e.push(await ep(t));T(t=>[...t,...e]),null==p||p()})())},[x,p]),(0,n.useEffect)(()=>{l.F.getOrg().then(async e=>{let t=e.employees;Array.isArray(t)&&f(await Promise.all(t.map(async e=>{try{let t=await l.F.getEmployee(e);return{name:t.name,displayName:t.displayName,department:t.department,rank:t.rank,engine:t.engine}}catch(t){return{name:e}}})))}).catch(()=>{})},[]),(0,n.useEffect)(()=>{l.F.getSkills().then(e=>{if(!Array.isArray(e))return;let t=e.filter(e=>!ex.some(t=>t.name===e.name)).map(e=>({name:e.name,description:e.description||"",needsEmployee:"sync"===e.name}));C([...ex,...t])}).catch(()=>{})},[d]);let P=(0,n.useCallback)(e=>{var t;let r=h.lastIndexOf("@");-1!==r&&m(h.slice(0,r)+"@"+e+" "),y(!1),null==(t=F.current)||t.focus()},[h]),O=(0,n.useCallback)(e=>{var t;e.needsEmployee?(m("/"+e.name+" @"),D(!1),w(""),N(0),y(!0)):(m("/"+e.name),D(!1)),null==(t=F.current)||t.focus()},[]);function B(){let e=h.trim(),r=A.length>0;if(!e&&!r||t)return;if("/new"===e){m(""),o();return}if("/status"===e){m(""),c();return}let a=r?[...A]:void 0;m(""),T([]),y(!1),D(!1),F.current&&(F.current.style.height="auto"),s(e,a,!1)}async function K(e){let t=e.target.files;if(!t||0===t.length)return;let r=[];for(let e=0;e<t.length;e++)r.push(await ep(t[e]));T(e=>[...e,...r]),e.target.value=""}async function q(e){var t;let r=null==(t=e.clipboardData)?void 0:t.items;if(r){for(let t=0;t<r.length;t++)if(r[t].type.startsWith("image/")){e.preventDefault();let a=r[t].getAsFile();if(a){let e=await ep(a);T(t=>[...t,e])}return}}}let V=(0,n.useCallback)(e=>{e&&m(t=>t?t+" "+e:e)},[]);async function H(){if("recording"===U.state){var e;let t=await U.stopRecording();V(null!=t?t:""),null==(e=F.current)||e.focus()}else"transcribing"===U.state||U.handleMicClick()}(0,n.useEffect)(()=>{F.current&&(F.current.style.height="auto",F.current.style.height=Math.min(F.current.scrollHeight,120)+"px")},[h]);let J=S.filter(e=>e.name.toLowerCase().startsWith(M)),Q=g.filter(e=>e.name.toLowerCase().includes(j)),$=h.trim().length>0||A.length>0;return(0,a.jsxs)("div",{className:"px-3 sm:px-4 pt-[var(--space-3)] pb-[var(--space-3)] border-t border-t-[var(--separator)] bg-[var(--material-regular)] shrink-0 relative",children:[I&&J.length>0&&(0,a.jsx)("div",{className:"absolute bottom-full left-[var(--space-4)] right-[var(--space-4)] mb-1 bg-[var(--bg)] border border-[var(--separator)] rounded-[var(--radius-md)] shadow-[var(--shadow-lg)] max-h-60 overflow-y-auto z-10",children:J.map((e,t)=>{let r=t===E;return(0,a.jsxs)("button",{ref:e=>{r&&e&&e.scrollIntoView({block:"nearest"})},onClick:()=>O(e),className:"w-full text-left py-[var(--space-2)] px-[var(--space-3)] text-[length:var(--text-footnote)] ".concat(r?"bg-[var(--fill-secondary)]":"bg-transparent"," border-none cursor-pointer flex items-center gap-[var(--space-2)] text-[var(--text-primary)]"),children:[(0,a.jsxs)("span",{className:"font-[family-name:var(--font-mono)] font-[var(--weight-semibold)] text-[var(--accent)] text-[length:var(--text-footnote)]",children:["/",e.name]}),(0,a.jsx)("span",{className:"text-[var(--text-tertiary)] text-[length:var(--text-caption1)]",children:e.description})]},e.name)})}),v&&Q.length>0&&(0,a.jsx)("div",{className:"absolute bottom-full left-[var(--space-4)] right-[var(--space-4)] mb-1 bg-[var(--bg)] border border-[var(--separator)] rounded-[var(--radius-md)] shadow-[var(--shadow-lg)] max-h-40 overflow-y-auto z-10",children:Q.slice(0,8).map((e,t)=>{let r=t===k;return(0,a.jsxs)("button",{ref:e=>{e?_.current.set(t,e):_.current.delete(t),r&&e&&e.scrollIntoView({block:"nearest"})},onClick:()=>P(e.name),className:"w-full text-left py-[var(--space-2)] px-[var(--space-3)] text-[length:var(--text-footnote)] ".concat(r?"bg-[var(--fill-secondary)]":"bg-transparent"," border-none cursor-pointer flex items-center gap-[var(--space-2)] text-[var(--text-primary)]"),children:[(0,a.jsx)(b.s,{name:e.name,size:20}),(0,a.jsxs)("div",{className:"flex-1 min-w-0",children:[(0,a.jsxs)("div",{className:"flex items-center gap-[var(--space-2)]",children:[(0,a.jsx)("span",{className:"font-[var(--weight-semibold)]",children:e.displayName||e.name}),(0,a.jsxs)("span",{className:"font-[family-name:var(--font-mono)] text-[length:var(--text-caption2)] text-[var(--text-tertiary)]",children:["@",e.name]})]}),e.department&&(0,a.jsxs)("div",{className:"text-[length:var(--text-caption2)] text-[var(--text-quaternary)] flex gap-[var(--space-2)] mt-px",children:[(0,a.jsx)("span",{children:e.department}),e.engine&&(0,a.jsx)("span",{className:"text-[var(--accent)] font-[var(--weight-medium)]",children:e.engine})]})]})]},e.name)})}),A.length>0&&(0,a.jsx)("div",{className:"mb-[var(--space-2)]",children:(0,a.jsx)(ec,{attachments:A,onRemove:function(e){T(t=>t.filter((t,r)=>r!==e))}})}),(0,a.jsxs)("div",{className:"flex items-center gap-[var(--space-2)] bg-[var(--fill-secondary)] rounded-[var(--radius-lg)] py-1.5 px-[var(--space-3)] min-h-11 transition-[border-color] duration-200 ease-in-out border ".concat(r?"border-[var(--accent)]":"border-[var(--separator)]"),children:[(0,a.jsx)("button",{"aria-label":"Attach file",onClick:()=>{var e;return null==(e=R.current)?void 0:e.click()},className:"w-8 h-8 shrink-0 rounded-[var(--radius-sm)] flex items-center justify-center bg-transparent border-none cursor-pointer text-[var(--text-secondary)] mb-0",children:(0,a.jsx)("svg",{width:"18",height:"18",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:(0,a.jsx)("path",{d:"M21.44 11.05l-9.19 9.19a6 6 0 0 1-8.49-8.49l9.19-9.19a4 4 0 0 1 5.66 5.66l-9.2 9.19a2 2 0 0 1-2.83-2.83l8.49-8.48"})})}),(0,a.jsx)("input",{ref:R,type:"file",accept:"image/*,audio/*,.pdf,.doc,.docx,.txt,.csv,.json,.zip",multiple:!0,className:"hidden",onChange:K}),(0,a.jsx)("textarea",{ref:F,value:h,onChange:function(e){let t=e.target.value;if(m(t),t.startsWith("/")&&!t.includes(" ")){L(t.slice(1).toLowerCase()),z(0),D(!0),y(!1);return}D(!1);let r=t.lastIndexOf("@");if(-1!==r){let e=t.slice(r+1);if(!e.includes(" ")&&!e.includes("\n")){w(e.toLowerCase()),N(0),y(!0);return}}y(!1)},onKeyDown:function(e){if(I&&J.length>0){let t=J.length;if("ArrowDown"===e.key){e.preventDefault(),z(e=>(e+1)%t);return}if("ArrowUp"===e.key){e.preventDefault(),z(e=>(e-1+t)%t);return}if("Tab"===e.key||"Enter"===e.key){e.preventDefault(),O(J[E]);return}if("Escape"===e.key){e.preventDefault(),D(!1);return}}if(v&&Q.length>0){let t=Math.min(Q.length,8);if("ArrowDown"===e.key){e.preventDefault(),N(e=>(e+1)%t);return}if("ArrowUp"===e.key){e.preventDefault(),N(e=>(e-1+t)%t);return}if("Tab"===e.key||"Enter"===e.key){e.preventDefault(),P(Q[k].name);return}if("Escape"===e.key){e.preventDefault(),y(!1);return}}"Enter"!==e.key||e.shiftKey||(e.preventDefault(),B())},onPaste:q,placeholder:t?"Waiting for response...":"Type a message...",rows:1,disabled:t,className:"flex-1 bg-transparent border-none outline-none resize-none text-[var(--text-primary)] text-[length:var(--text-subheadline)] leading-5 max-h-30 min-h-5 h-5 p-0 m-0 ".concat(t?"opacity-50":"opacity-100"),onInput:e=>{let t=e.target;t.style.height="auto",t.style.height=Math.min(t.scrollHeight,120)+"px"}}),U.languages.length>1&&(0,a.jsx)("button",{"aria-label":"STT language: ".concat(U.selectedLanguage.toUpperCase(),". Click to switch."),onClick:U.cycleLanguage,className:"h-6 px-1.5 shrink-0 rounded-[var(--radius-sm)] flex items-center justify-center bg-[var(--fill-tertiary)] border-none cursor-pointer text-[var(--text-secondary)] text-[11px] font-semibold font-[family-name:var(--font-mono)] tracking-[0.5px] uppercase transition-all duration-150 ease-in-out",title:"Transcription language: ".concat(U.selectedLanguage.toUpperCase(),". Click to cycle."),children:U.selectedLanguage}),(0,a.jsx)("button",{"aria-label":"recording"===U.state?"Stop recording":"transcribing"===U.state?"Transcribing…":"Voice input",onClick:H,disabled:"transcribing"===U.state,className:"w-8 h-8 shrink-0 flex items-center justify-center border-none transition-all duration-150 ease-in-out ".concat("recording"===U.state?"rounded-full bg-[var(--system-red)] text-white cursor-pointer":"rounded-[var(--radius-sm)] bg-transparent text-[var(--text-secondary)] ".concat("transcribing"===U.state?"cursor-wait":"cursor-pointer")),title:"recording"===U.state?"Stop recording":"transcribing"===U.state?"Transcribing…":"Voice input",children:"transcribing"===U.state?(0,a.jsx)("svg",{width:"16",height:"16",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",className:"animate-[stt-spin_1s_linear_infinite]",children:(0,a.jsx)("path",{d:"M12 2a10 10 0 0 1 10 10"})}):(0,a.jsxs)("svg",{width:"16",height:"16",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:[(0,a.jsx)("path",{d:"M12 1a3 3 0 0 0-3 3v8a3 3 0 0 0 6 0V4a3 3 0 0 0-3-3z"}),(0,a.jsx)("path",{d:"M19 10v2a7 7 0 0 1-14 0v-2"}),(0,a.jsx)("line",{x1:"12",y1:"19",x2:"12",y2:"23"}),(0,a.jsx)("line",{x1:"8",y1:"23",x2:"16",y2:"23"})]})}),"recording"===U.state&&U.analyser&&(0,a.jsx)(eu,{analyser:U.analyser,width:64,height:28}),r&&i&&(0,a.jsx)("button",{onClick:i,"aria-label":"Stop",className:"w-8 h-8 rounded-full bg-[var(--system-red)] text-white border-none cursor-pointer flex items-center justify-center shrink-0 transition-all duration-150 ease-in-out",children:(0,a.jsx)("svg",{width:"12",height:"12",viewBox:"0 0 24 24",fill:"currentColor",children:(0,a.jsx)("rect",{x:"4",y:"4",width:"16",height:"16",rx:"2"})})}),(0,a.jsx)("button",{onClick:B,disabled:!$||t,"aria-label":"Send message",className:"w-8 h-8 rounded-full border-none flex items-center justify-center shrink-0 transition-all duration-150 ease-in-out ".concat($?"bg-[var(--accent)] text-[var(--accent-contrast)] cursor-pointer":"bg-[var(--fill-tertiary)] text-[var(--text-quaternary)] cursor-default"),children:(0,a.jsxs)("svg",{width:"16",height:"16",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2.5",strokeLinecap:"round",strokeLinejoin:"round",children:[(0,a.jsx)("line",{x1:"12",y1:"19",x2:"12",y2:"5"}),(0,a.jsx)("polyline",{points:"5 12 12 5 19 12"})]})})]}),(0,a.jsxs)("div",{className:"hidden sm:flex text-[length:var(--text-caption2)] text-[var(--text-quaternary)] text-center mt-[var(--space-1)] justify-center gap-[var(--space-3)]",children:[(0,a.jsx)("span",{children:"Enter to send"}),(0,a.jsx)("span",{children:"/ - commands"}),(0,a.jsx)("span",{children:"@name - mention"})]}),"error"===U.state&&U.error&&(0,a.jsxs)("div",{className:"flex items-center gap-[var(--space-2)] mt-[var(--space-2)] py-[var(--space-2)] px-[var(--space-3)] rounded-[var(--radius-sm)] text-[length:var(--text-caption1)] text-[var(--system-red)]",style:{background:"color-mix(in srgb, var(--system-red) 12%, transparent)"},children:[(0,a.jsxs)("span",{className:"flex-1",children:["Voice input error: ",U.error]}),(0,a.jsx)("button",{onClick:U.dismissError,className:"bg-none border-none cursor-pointer text-[var(--system-red)] text-[length:var(--text-caption1)] font-semibold py-0.5 px-1.5",children:"Dismiss"})]}),(0,a.jsx)(ed,{open:"no-model"===U.state,progress:U.downloadProgress,onDownload:U.startDownload,onCancel:U.dismissDownload}),(0,a.jsx)("style",{children:"\n @keyframes stt-spin {\n from { transform: rotate(0deg); }\n to { transform: rotate(360deg); }\n }\n "})]})}var em=r(687),eg=r(7181);function ef(e){let{sessionId:t,events:r,paused:s=!1}=e,[i,o]=(0,n.useState)([]),[c,d]=(0,n.useState)(s),u=(0,n.useCallback)(async()=>{if(t)try{let e=await l.F.getSessionQueue(t);o(e)}catch(e){}},[t]);(0,n.useEffect)(()=>{u()},[u]),(0,n.useEffect)(()=>{if(!r.length)return;let e=r[r.length-1];if("queue:updated"===e.event){u();let t=e.payload;"boolean"==typeof(null==t?void 0:t.paused)&&d(t.paused)}},[r,u]);let x=i.filter(e=>"pending"===e.status);if(!t||0===x.length)return null;async function h(e){if(t)try{await l.F.cancelQueueItem(t,e),await u()}catch(e){}}async function m(){if(t)try{await l.F.clearSessionQueue(t),o([])}catch(e){}}async function f(){if(t)try{c?(await l.F.resumeSessionQueue(t),d(!1)):(await l.F.pauseSessionQueue(t),d(!0))}catch(e){}}return(0,a.jsxs)("div",{className:"border-t border-[var(--separator)] px-[var(--space-4)] py-[var(--space-2)] bg-[var(--fill-quaternary)] shrink-0",children:[(0,a.jsxs)("div",{className:"flex items-center justify-between mb-[var(--space-1)]",children:[(0,a.jsxs)("span",{className:"text-[length:var(--text-caption2)] font-semibold text-[var(--text-secondary)] uppercase tracking-[0.5px]",children:[x.length," queued ",c&&"\xb7 Paused"]}),(0,a.jsxs)("div",{className:"flex gap-[var(--space-1)]",children:[(0,a.jsx)("button",{onClick:f,title:c?"Resume queue":"Pause queue",className:"bg-transparent border-none cursor-pointer text-[var(--text-secondary)] p-0.5 flex items-center",children:c?(0,a.jsx)(em.A,{size:13}):(0,a.jsx)(eg.A,{size:13})}),(0,a.jsx)("button",{onClick:m,title:"Clear all queued messages",className:"bg-transparent border-none cursor-pointer text-[var(--text-secondary)] p-0.5 flex items-center",children:(0,a.jsx)(p.A,{size:13})})]})]}),(0,a.jsx)("div",{className:"flex flex-col gap-0.5",children:x.map(e=>(0,a.jsxs)("div",{className:"flex items-center gap-[var(--space-2)] px-[var(--space-2)] py-[3px] rounded-[var(--radius-sm)] bg-[var(--fill-tertiary)]",children:[(0,a.jsxs)("span",{className:"text-[length:var(--text-caption2)] text-[var(--text-tertiary)] min-w-4",children:[e.position,"."]}),(0,a.jsx)("span",{className:"flex-1 text-[length:var(--text-caption1)] text-[var(--text-secondary)] overflow-hidden text-ellipsis whitespace-nowrap",children:e.prompt.length>60?e.prompt.slice(0,57)+"...":e.prompt}),(0,a.jsx)("button",{onClick:()=>h(e.id),title:"Cancel this message",className:"bg-transparent border-none cursor-pointer text-[var(--text-tertiary)] p-px flex items-center shrink-0",children:(0,a.jsx)(g.A,{size:11})})]},e.id))})]})}function ev(e){let{input:t}=e,[r,s]=(0,n.useState)(!1),l=JSON.stringify(t,null,2);return l.length>300?(0,a.jsxs)("div",{children:[(0,a.jsx)("button",{onClick:()=>s(e=>!e),className:"mt-1 px-2 py-0.5 text-[11px] rounded bg-white/[0.08] border border-white/[0.12] text-[var(--text-tertiary)] cursor-pointer font-[SF_Mono,Menlo,Cascadia_Code,monospace]",children:r?"collapse input":"show input (".concat(l.length," chars)")}),r&&(0,a.jsx)("pre",{className:"mt-1 px-2.5 py-1.5 bg-white/5 rounded text-xs leading-normal whitespace-pre-wrap break-all text-[var(--text-secondary)] font-[SF_Mono,Menlo,Cascadia_Code,monospace] overflow-x-auto max-h-[400px] overflow-y-auto",children:l})]}):(0,a.jsx)("pre",{className:"mt-1 px-2.5 py-1.5 bg-white/5 rounded text-xs leading-normal whitespace-pre-wrap break-all text-[var(--text-secondary)] font-[SF_Mono,Menlo,Cascadia_Code,monospace] overflow-x-auto",children:l})}function eb(e){let{text:t}=e,[r,s]=(0,n.useState)(!1);return(0,a.jsxs)("div",{className:"mb-1.5",children:[(0,a.jsx)("button",{onClick:()=>s(e=>!e),className:"px-2 py-0.5 text-[11px] rounded bg-white/[0.06] border border-white/10 text-[var(--text-quaternary,var(--text-tertiary))] cursor-pointer font-[SF_Mono,Menlo,Cascadia_Code,monospace] italic",children:r?"hide thinking":"show thinking"}),r&&(0,a.jsx)("div",{className:"mt-1 px-3 py-2 bg-white/[0.04] border-l-2 border-white/10 text-xs leading-relaxed text-[var(--text-quaternary,var(--text-tertiary))] italic whitespace-pre-wrap break-words font-[SF_Mono,Menlo,Cascadia_Code,monospace]",children:t})]})}function ey(e){let{text:t}=e,[r,s]=(0,n.useState)(!1);return t.length>500?(0,a.jsxs)("div",{children:[(0,a.jsx)("button",{onClick:()=>s(e=>!e),className:"mt-1 px-2 py-0.5 text-[11px] rounded bg-white/[0.08] border border-white/[0.12] text-[var(--text-tertiary)] cursor-pointer font-[SF_Mono,Menlo,Cascadia_Code,monospace]",children:r?"collapse output":"show output (".concat(t.length," chars)")}),r&&(0,a.jsx)("pre",{className:"mt-1 px-2.5 py-1.5 bg-white/[0.04] rounded text-xs leading-normal whitespace-pre-wrap break-all text-[var(--text-tertiary)] font-[SF_Mono,Menlo,Cascadia_Code,monospace] overflow-x-auto max-h-[400px] overflow-y-auto",children:t})]}):(0,a.jsx)("pre",{className:"mt-1 px-2.5 py-1.5 bg-white/[0.04] rounded text-xs leading-normal whitespace-pre-wrap break-all text-[var(--text-tertiary)] font-[SF_Mono,Menlo,Cascadia_Code,monospace] overflow-x-auto max-h-[300px] overflow-y-auto",children:t||"(empty)"})}function ej(e){let{block:t}=e;return"thinking"===t.type?(0,a.jsx)(eb,{text:t.text||""}):"tool_use"===t.type?(0,a.jsxs)("div",{className:"mb-2 px-2.5 py-1.5 bg-[rgba(99,179,237,0.08)] border border-[rgba(99,179,237,0.2)] rounded-md",children:[(0,a.jsxs)("div",{className:"text-[11px] font-semibold text-[rgba(99,179,237,0.9)] font-[SF_Mono,Menlo,Cascadia_Code,monospace] mb-0.5 uppercase tracking-wide",children:["tool: ",t.name]}),t.input&&Object.keys(t.input).length>0&&(0,a.jsx)(ev,{input:t.input})]}):"tool_result"===t.type?(0,a.jsxs)("div",{className:"mb-2 px-2.5 py-1.5 bg-white/[0.03] border border-white/[0.08] rounded-md",children:[(0,a.jsx)("div",{className:"text-[11px] font-semibold text-[rgba(160,160,160,0.7)] font-[SF_Mono,Menlo,Cascadia_Code,monospace] mb-0.5 uppercase tracking-wide",children:"result"}),(0,a.jsx)(ey,{text:t.text||""})]}):(0,a.jsx)("div",{className:"whitespace-pre-wrap break-words leading-relaxed text-[var(--text-primary)] mb-1",children:t.text})}function ew(e){let{entry:t}=e,r="user"===t.role;return(0,a.jsxs)("div",{className:"flex gap-2.5 py-2.5 border-b border-white/[0.04]",children:[(0,a.jsx)("div",{className:"shrink-0 w-4 text-[13px] font-bold font-[SF_Mono,Menlo,Cascadia_Code,monospace] pt-px",style:{color:r?"var(--accent)":"rgba(110, 231, 183, 0.8)"},children:r?">":"$"}),(0,a.jsx)("div",{className:"flex-1 min-w-0",children:t.content.map((e,t)=>(0,a.jsx)(ej,{block:e},t))})]})}function ek(e){let{sessionId:t}=e,[r,s]=(0,n.useState)([]),[i,o]=(0,n.useState)(!0),[c,d]=(0,n.useState)(null),u=(0,n.useRef)(null);return((0,n.useEffect)(()=>{t&&(o(!0),d(null),l.F.getSessionTranscript(t).then(e=>{s(e),o(!1)}).catch(e=>{d(e instanceof Error?e.message:"Failed to load transcript"),o(!1)}))},[t]),(0,n.useEffect)(()=>{var e;null==(e=u.current)||e.scrollIntoView({behavior:"instant"})},[r]),i)?(0,a.jsx)("div",{className:"flex-1 flex items-center justify-center bg-[var(--bg-primary,var(--bg))] text-[var(--text-tertiary)] font-[SF_Mono,Menlo,Cascadia_Code,monospace] text-[13px]",children:"loading transcript..."}):c?(0,a.jsxs)("div",{className:"flex-1 flex items-center justify-center bg-[var(--bg-primary,var(--bg))] text-[var(--system-red)] font-[SF_Mono,Menlo,Cascadia_Code,monospace] text-[13px]",children:["error: ",c]}):0===r.length?(0,a.jsx)("div",{className:"flex-1 flex items-center justify-center bg-[var(--bg-primary,var(--bg))] text-[var(--text-tertiary)] font-[SF_Mono,Menlo,Cascadia_Code,monospace] text-[13px]",children:"no transcript available"}):(0,a.jsxs)("div",{className:"flex-1 overflow-y-auto overflow-x-hidden bg-[var(--bg-primary,var(--bg))] p-[var(--space-4)] font-[SF_Mono,Menlo,Cascadia_Code,monospace] text-[13px] leading-normal min-h-0",children:[r.map((e,t)=>(0,a.jsx)(ew,{entry:e},t)),(0,a.jsx)("div",{ref:u})]})}function eN(e){var t;let{sessionId:r,isActive:s,onFocus:i,onSessionCreated:o,onSessionMetaChange:c,onRefresh:d,portalName:u="Jinn",subscribe:x,connectionSeq:p,skillsVersion:h,events:m,viewMode:g="chat",getOnboardingPrompt:f,isStubSession:v,onStubCleared:b}=e,[y,j]=(0,n.useState)([]),[w,k]=(0,n.useState)(!1),N=(0,n.useRef)(""),[S,C]=(0,n.useState)(""),I=(0,n.useRef)(-1),[D,M]=(0,n.useState)(null),L=(0,n.useRef)(r);(0,n.useEffect)(()=>{L.current=r},[r]);let E=(0,n.useCallback)((e,t)=>{if(!t)return;let r=I.current;if(r<0)return;let a=e.slice(r);a.length>0&&function(e,t){try{localStorage.setItem("".concat(Q).concat(e),JSON.stringify(t))}catch(e){}}(t,a)},[]);(0,n.useEffect)(()=>x((e,t)=>{let r=L.current;if(r&&t.sessionId===r){if("session:delta"===e){let e=String(t.type||"text");if("text"===e){let e=String(t.content||"");N.current+=e,C(N.current)}else if("text_snapshot"===e){let e=String(t.content||"");e.length>=N.current.length&&(N.current=e,C(e))}else if("tool_use"===e){if(N.current){let e=N.current;N.current="",C(""),j(t=>{I.current<0&&(I.current=t.length);let a=[...t,{id:crypto.randomUUID(),role:"assistant",content:e,timestamp:Date.now()}];return E(a,r),a})}let e=String(t.toolName||"tool");j(t=>{I.current<0&&(I.current=t.length);let a=[...t,{id:crypto.randomUUID(),role:"assistant",content:"Using ".concat(e),timestamp:Date.now(),toolCall:e}];return E(a,r),a})}else"tool_result"===e&&j(e=>{let t=[...e],a=t[t.length-1];return a&&"assistant"===a.role&&a.toolCall&&(t[t.length-1]={...a,content:"Used ".concat(a.toolCall)}),E(t,r),t})}if("session:notification"===e){let e=String(t.message||"");e&&j(t=>[...t,{id:crypto.randomUUID(),role:"notification",content:e,timestamp:Date.now()}])}if("session:interrupted"===e&&(N.current="",C("")),"session:stopped"===e&&(k(!1),C("")),"session:completed"===e){N.current="",C(""),k(!1),I.current=-1;let e=r||(t.sessionId?String(t.sessionId):null);e&&$(e),t.result&&j(e=>{let r=[...e],a=r[r.length-1];return a&&"assistant"===a.role&&!a.toolCall&&r.pop(),[...r,{id:crypto.randomUUID(),role:"assistant",content:String(t.result),timestamp:Date.now()}]}),t.error&&!t.result&&j(e=>[...e,{id:crypto.randomUUID(),role:"assistant",content:"Error: ".concat(t.error),timestamp:Date.now()}]),null==d||d()}}}),[x,E,d]);let z=(0,n.useCallback)(async e=>{try{let t=await l.F.getSession(e);M(t);let r={engine:t.engine?String(t.engine):void 0,engineSessionId:t.engineSessionId?String(t.engineSessionId):void 0,model:t.model?String(t.model):void 0,title:t.title?String(t.title):void 0,employee:t.employee?String(t.employee):void 0};null==c||c(r);let a=t.messages||t.history||[],n=Array.isArray(a)?a.map(e=>({id:crypto.randomUUID(),role:e.role||"assistant",content:String(e.content||e.text||""),timestamp:e.timestamp?Number(e.timestamp):Date.now()})):[];if("error"===t.status&&t.lastError){let e=n[n.length-1],r="Error: ".concat(String(t.lastError));e&&"assistant"===e.role&&e.content===r||n.push({id:crypto.randomUUID(),role:"assistant",content:r,timestamp:Date.now()})}if("running"===t.status){let t=function(e){try{let t=localStorage.getItem("".concat(Q).concat(e));return t?JSON.parse(t):[]}catch(e){return[]}}(e);t.length>0?(I.current=n.length,j([...n,...t])):(I.current=n.length,j(n)),k(!0)}else $(e),I.current=-1,j(n)}catch(e){j([]),M(null),I.current=-1}},[c]);(0,n.useEffect)(()=>{if(!r){j([]),k(!1),M(null),N.current="",C(""),I.current=-1;return}z(r)},[r,z]),(0,n.useEffect)(()=>{p&&r&&z(r)},[p,r,z]),(0,n.useEffect)(()=>{if(!r||!w)return;let e=setInterval(async()=>{try{let e=await l.F.getSession(r);"running"!==e.status&&(await z(r),k(!1))}catch(e){}},5e3);return()=>clearInterval(e)},[r,w,z]);let A=(0,n.useCallback)(async()=>{if(r)try{await l.F.stopSession(r)}catch(e){}},[r]),T=(0,n.useCallback)(async(e,t,a)=>{let n={id:crypto.randomUUID(),role:"user",content:e,timestamp:Date.now(),media:t};j(e=>(I.current=e.length+1,[...e,n])),k(!0);try{let n;if(t&&t.length>0){let e=t.filter(e=>e.file).map(e=>l.F.uploadFile(e.file));e.length>0&&(n=(await Promise.all(e)).map(e=>e.id))}let s=r;if(s&&v&&f){null==b||b();let t=f(e);await l.F.sendMessage(s,{message:t,attachments:n}),null==d||d()}else if(s)await l.F.sendMessage(s,{message:e,interrupt:a||void 0,attachments:n}),null==d||d();else{let t=await l.F.createSession({source:"web",prompt:e,attachments:n});s=String(t.id),null==o||o(s),null==d||d()}}catch(e){k(!1),j(t=>[...t,{id:crypto.randomUUID(),role:"assistant",content:"Error: ".concat(e instanceof Error?e.message:"Failed to send message"),timestamp:Date.now()}])}},[r,v,f,b,o,d]),F=(0,n.useCallback)(async()=>{if(!r)return void j(e=>[...e,{id:crypto.randomUUID(),role:"assistant",content:"No active session. Send a message to start one.",timestamp:Date.now()}]);try{let e=await l.F.getSession(r),t=["**Session Info**","ID: `".concat(e.id,"`"),"Status: ".concat(e.status||"unknown"),e.employee?"Employee: ".concat(e.employee):null,e.engine?"Engine: ".concat(e.engine):null,e.model?"Model: ".concat(e.model):null,e.createdAt?"Created: ".concat(e.createdAt):null].filter(Boolean).join("\n");j(e=>[...e,{id:crypto.randomUUID(),role:"assistant",content:t,timestamp:Date.now()}])}catch(e){j(e=>[...e,{id:crypto.randomUUID(),role:"assistant",content:"Failed to fetch session status.",timestamp:Date.now()}])}},[r]),R=(0,n.useCallback)(()=>{j([]),k(!1),M(null),N.current="",C(""),I.current=-1},[]),[_,U]=(0,n.useState)(!1),[W,P]=(0,n.useState)(),O=(0,n.useRef)(0),B=(0,n.useCallback)(e=>{e.preventDefault(),e.stopPropagation(),O.current++,e.dataTransfer.types.includes("Files")&&U(!0)},[]),K=(0,n.useCallback)(e=>{e.preventDefault(),e.stopPropagation(),O.current--,0===O.current&&U(!1)},[]),q=(0,n.useCallback)(e=>{e.preventDefault(),e.stopPropagation()},[]),V=(0,n.useCallback)(e=>{e.preventDefault(),e.stopPropagation(),O.current=0,U(!1);let t=Array.from(e.dataTransfer.files);t.length>0&&P(t)},[]);return(0,a.jsxs)("div",{style:{display:"flex",flexDirection:"column",flex:1,overflow:"hidden",background:"var(--bg)",position:"relative"},onClick:i,onDragEnter:B,onDragLeave:K,onDragOver:q,onDrop:V,children:[_&&(0,a.jsx)("div",{style:{position:"absolute",inset:0,zIndex:50,display:"flex",alignItems:"center",justifyContent:"center",background:"color-mix(in srgb, var(--bg) 85%, transparent)",backdropFilter:"blur(4px)",transition:"opacity 150ms ease-in-out"},children:(0,a.jsxs)("div",{style:{border:"2px dashed var(--accent)",borderRadius:"var(--radius-lg)",padding:"48px 64px",display:"flex",flexDirection:"column",alignItems:"center",gap:"12px"},children:[(0,a.jsxs)("svg",{width:"40",height:"40",viewBox:"0 0 24 24",fill:"none",stroke:"var(--accent)",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round",children:[(0,a.jsx)("path",{d:"M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4"}),(0,a.jsx)("polyline",{points:"17 8 12 3 7 8"}),(0,a.jsx)("line",{x1:"12",y1:"3",x2:"12",y2:"15"})]}),(0,a.jsx)("span",{style:{color:"var(--text-secondary)",fontSize:"var(--text-body)"},children:"Drop files here"})]})}),"cli"===g&&r?(0,a.jsx)(ek,{sessionId:r}):(0,a.jsx)(eo,{messages:y,loading:w,streamingText:S}),"chat"===g&&(0,a.jsx)(ef,{sessionId:r,events:m,paused:null!=(t=null==D?void 0:D.paused)&&t}),"chat"===g&&(0,a.jsx)(eh,{disabled:!1,loading:w,onSend:T,onInterrupt:A,onNewSession:R,onStatusRequest:F,skillsVersion:h,events:m,droppedFiles:W,onDroppedFilesConsumed:()=>P(void 0)})]})}let eS="jinn-chat-tabs",eC="jinn-chat-draft-";var eI=r(7122),eD=r(5465),eM=r(7632),eL=r(4139);class eE extends n.Component{static getDerivedStateFromError(e){return{error:e}}componentDidCatch(e,t){console.error("[ChatErrorBoundary]",e.message,"\nComponent stack:",t.componentStack)}render(){if(this.state.error){var e;return(0,a.jsx)(o.M,{children:(0,a.jsxs)("div",{className:"flex h-full flex-col items-center justify-center gap-4 p-8 text-center",children:[(0,a.jsx)("p",{className:"text-lg font-semibold text-[var(--system-red)]",children:"Chat crashed"}),(0,a.jsxs)("pre",{className:"max-w-lg overflow-auto rounded-lg bg-[var(--bg-tertiary)] p-4 text-left text-xs text-muted-foreground",children:[this.state.error.message,"\n",null==(e=this.state.error.stack)?void 0:e.split("\n").slice(0,5).join("\n")]}),(0,a.jsx)("button",{onClick:()=>{this.setState({error:null}),window.location.reload()},className:"rounded-md bg-[var(--accent)] px-4 py-2 text-sm font-medium text-white",children:"Reload"})]})})}return this.props.children}constructor(...e){super(...e),this.state={error:null}}}function ez(){return(0,a.jsx)(eE,{children:(0,a.jsx)(n.Suspense,{fallback:(0,a.jsx)(o.M,{children:(0,a.jsx)("div",{className:"flex h-full items-center justify-center text-muted-foreground",children:"Loading..."})}),children:(0,a.jsx)(eA,{})})})}function eA(){var e;let{settings:t}=(0,y.t0)(),r=null!=(e=t.portalName)?e:"Jinn",[c,d]=(0,n.useState)(null),[u,h]=(0,n.useState)("sidebar"),[m,g]=(0,n.useState)(null),[f,v]=(0,n.useState)([]),b=(0,n.useRef)(!1),[j,k]=(0,n.useState)(()=>"true"===localStorage.getItem("jinn-chat-sidebar-collapsed")),S=(0,n.useCallback)(()=>{window.innerWidth<1024?h(e=>"sidebar"===e?"chat":"sidebar"):k(e=>{let t=!e;return localStorage.setItem("jinn-chat-sidebar-collapsed",String(t)),t})},[]),[C,I]=(0,n.useState)("chat"),[D,M]=(0,n.useState)(!1),[E,z]=(0,n.useState)(!1),[A,T]=(0,n.useState)(null),[F,R]=(0,n.useState)(!1),_=(0,n.useRef)(null),U=(0,n.useRef)(null),{events:W,connectionSeq:P,skillsVersion:O,subscribe:K}=(0,i.G)(),q=function(){let[{tabs:e,activeIndex:t},r]=(0,n.useState)({tabs:[],activeIndex:-1});(0,n.useEffect)(()=>{r(function(){try{let t=localStorage.getItem(eS);if(t){var e;return e=JSON.parse(t),0===e.tabs.length?{tabs:[],activeIndex:-1}:e.activeIndex<0||e.activeIndex>=e.tabs.length?{tabs:e.tabs,activeIndex:0}:e}}catch(e){}return{tabs:[],activeIndex:-1}}())},[]),(0,n.useEffect)(()=>{localStorage.setItem(eS,JSON.stringify({tabs:e,activeIndex:t}))},[e,t]);let a=t>=0?e[t]:null,s=(0,n.useCallback)(e=>{r(t=>{let r=t.tabs.findIndex(t=>t.sessionId===e.sessionId);if(r>=0)return{tabs:t.tabs.map((t,a)=>a===r?{...t,...e,pinned:t.pinned||e.pinned}:t),activeIndex:r};if(!e.pinned){let r=t.tabs.findIndex(e=>!e.pinned);if(r>=0){let a=[...t.tabs];return a[r]={...e,pinned:!1},{tabs:a,activeIndex:r}}}if(t.tabs.length>=12){let r=t.tabs.findIndex(e=>!e.pinned);if(r>=0){let a=[...t.tabs];return a[r]=e,{tabs:a,activeIndex:r}}}return{tabs:[...t.tabs,e],activeIndex:t.tabs.length}})},[]),l=(0,n.useCallback)(e=>{r(t=>{if(e<0||e>=t.tabs.length||t.tabs[e].pinned)return t;let r=t.tabs.map((t,r)=>r===e?{...t,pinned:!0}:t);return{...t,tabs:r}})},[]),i=(0,n.useCallback)(e=>{r(t=>{var r;let a=null==(r=t.tabs[e])?void 0:r.sessionId;a&&localStorage.removeItem(eC+a);let n=t.tabs.filter((t,r)=>r!==e);if(0===n.length)return{tabs:[],activeIndex:-1};let s=t.activeIndex;return t.activeIndex===e?s=Math.min(e,n.length-1):t.activeIndex>e&&(s=t.activeIndex-1),{tabs:n,activeIndex:s}})},[]),o=(0,n.useCallback)(e=>{r(t=>e<0||e>=t.tabs.length?t:{...t,activeIndex:e})},[e.length]),c=(0,n.useCallback)((e,t)=>{r(r=>{if(e===t||e<0||e>=r.tabs.length||t<0||t>=r.tabs.length)return r;let a=[...r.tabs],[n]=a.splice(e,1);a.splice(t,0,n);let s=r.activeIndex;return r.activeIndex===e?s=t:e<r.activeIndex&&t>=r.activeIndex?s=r.activeIndex-1:e>r.activeIndex&&t<=r.activeIndex&&(s=r.activeIndex+1),{tabs:a,activeIndex:s}})},[]),d=(0,n.useCallback)(()=>{r(e=>0===e.tabs.length?e:{...e,activeIndex:(e.activeIndex+1+e.tabs.length)%e.tabs.length})},[e.length]),u=(0,n.useCallback)(()=>{r(e=>0===e.tabs.length?e:{...e,activeIndex:(e.activeIndex-1+e.tabs.length)%e.tabs.length})},[e.length]),x=(0,n.useCallback)(()=>{r(e=>({...e,activeIndex:-1}))},[]),p=(0,n.useCallback)((e,t)=>{t.trim()?localStorage.setItem(eC+e,t):localStorage.removeItem(eC+e)},[]),h=(0,n.useCallback)(e=>localStorage.getItem(eC+e)||"",[]),m=(0,n.useCallback)((e,t)=>{r(r=>{let a=r.tabs.findIndex(t=>t.sessionId===e);if(a<0)return r;let n=r.tabs[a];if(Object.keys(t).every(e=>n[e]===t[e]))return r;let s=r.tabs.map((e,r)=>r===a?{...e,...t}:e);return{...r,tabs:s}})},[]);return(0,n.useMemo)(()=>({tabs:e,activeTab:a,activeIndex:t,openTab:s,closeTab:i,switchTab:o,nextTab:d,prevTab:u,pinTab:l,moveTab:c,clearActiveTab:x,saveDraft:p,loadDraft:h,updateTabStatus:m}),[e,a,t,s,i,o,d,u,l,c,x,p,h,m])}(),V=(0,s.useSearchParams)(),H=(0,n.useRef)(!1),Q=(0,n.useRef)(!1);(0,w.tS)();let G=(0,eI.jE)();(0,n.useEffect)(()=>{if(D||E)return document.addEventListener("mousedown",e),()=>document.removeEventListener("mousedown",e);function e(e){D&&_.current&&!_.current.contains(e.target)&&M(!1),E&&U.current&&!U.current.contains(e.target)&&z(!1)}},[D,E]);let Y=(0,n.useCallback)((e,t)=>{navigator.clipboard.writeText(e),T(t),M(!1),setTimeout(()=>T(null),1500)},[]);function X(){l.F.createStubSession({greeting:"Hey! \uD83D\uDC4B Say hi when you're ready to get started.",title:"Welcome"}).then(e=>{let t=String(e.id);Q.current=!0,d(t),G.invalidateQueries({queryKey:eD.l.sessions.all})}).catch(()=>{})}(0,n.useEffect)(()=>{H.current||("1"===V.get("onboarding")?(H.current=!0,X()):l.F.getOnboarding().then(e=>{e.needed&&!H.current&&(H.current=!0,X())}).catch(()=>{}))},[V]);let{updateTabStatus:Z}=q;(0,n.useEffect)(()=>{c&&m&&Z(c,{label:m.title||m.employee||r,employeeName:m.employee||void 0})},[c,m,r,Z]);let ee=(0,n.useCallback)(e=>{v(e.length>1?e:[])},[]),et=(0,n.useCallback)(e=>{b.current=!1,Q.current=!1,d(e),h("chat"),I("chat"),q.openTab({sessionId:e,label:"Loading...",status:"idle",unread:!1})},[q]),er=(0,n.useCallback)(()=>{b.current=!0,d(null),g(null),h("chat"),v([]),q.clearActiveTab()},[q]),ea=(0,n.useCallback)(e=>{c||H.current||b.current||!(e.length>0)||et(e[0].id)},[c,et]),en=(0,n.useCallback)(e=>{c===e&&(d(null),g(null)),$(e),q.closeTab(q.tabs.findIndex(t=>t.sessionId===e)),R(!1),M(!1)},[c,q]),es=(0,n.useCallback)(e=>{d(e),q.openTab({sessionId:e,label:"New Chat",status:"running",unread:!1,pinned:!0}),G.invalidateQueries({queryKey:eD.l.sessions.all})},[q,G]),el=(0,n.useCallback)(e=>{g(e)},[]),ei=(0,n.useCallback)(()=>{G.invalidateQueries({queryKey:eD.l.sessions.all})},[G]),eo=(0,n.useCallback)(e=>"This is your first time being activated. The user just set up ".concat(r," and opened the web dashboard for the first time.\n\nRead your CLAUDE.md instructions and the onboarding skill at ~/.jinn/skills/onboarding/SKILL.md, then follow the onboarding flow:\n- Greet the user warmly and introduce yourself as ").concat(r,"\n- Briefly explain what you can do (manage cron jobs, hire AI employees, connect to Slack, etc.)\n- Ask the user what they'd like to set up first\n\nThe user said: \"").concat(e,'"'),[r]),ec=(0,n.useCallback)(()=>{Q.current=!1},[]);(0,n.useEffect)(()=>{function e(e){e.metaKey&&"w"===e.key&&(e.preventDefault(),q.activeIndex>=0&&q.closeTab(q.activeIndex)),e.metaKey&&e.shiftKey&&"["===e.key&&(e.preventDefault(),q.prevTab()),e.metaKey&&e.shiftKey&&"]"===e.key&&(e.preventDefault(),q.nextTab()),e.metaKey&&e.altKey&&e.key>="1"&&e.key<="9"&&(e.preventDefault(),q.switchTab(parseInt(e.key)-1))}return window.addEventListener("keydown",e),()=>window.removeEventListener("keydown",e)},[q]),(0,n.useEffect)(()=>{if(q.activeTab&&q.activeTab.sessionId!==c){d(q.activeTab.sessionId),I("chat");return}q.activeTab||!c||b.current||(d(null),g(null),v([]))},[q.activeTab,c]);let ed=c?(0,a.jsxs)("div",{ref:_,className:"relative",children:[(0,a.jsx)("button",{onClick:()=>M(e=>!e),"aria-label":"More options",className:"flex items-center rounded-md p-1 text-muted-foreground transition-colors hover:bg-accent hover:text-foreground",children:(0,a.jsx)(x.A,{className:"size-[18px]"})}),D&&(0,a.jsxs)("div",{className:"absolute right-0 top-full z-[200] mt-1 min-w-[220px] overflow-hidden rounded-[var(--radius-md)] border border-border bg-[var(--material-thick)] shadow-[var(--shadow-overlay)] backdrop-blur-xl",children:[(0,a.jsx)("button",{onClick:()=>Y(c,"id"),className:"block w-full px-3 py-2 text-left text-sm text-foreground transition-colors hover:bg-accent",children:"Copy Session ID"}),(null==m?void 0:m.engineSessionId)&&(0,a.jsx)("button",{onClick:()=>{let e="codex"===m.engine?"codex":"claude";Y("".concat(e," --resume ").concat(m.engineSessionId),"cli")},className:"block w-full px-3 py-2 text-left text-sm text-foreground transition-colors hover:bg-accent",children:"Copy CLI Resume Command"}),(0,a.jsx)("div",{className:"my-0.5 border-t border-border"}),(0,a.jsxs)("button",{onClick:()=>{M(!1),R(!0)},className:"flex w-full items-center gap-2 px-3 py-2 text-left text-sm text-[var(--system-red)] transition-colors hover:bg-accent",children:[(0,a.jsx)(p.A,{className:"size-3.5"}),"Delete Session"]})]})]}):null,eu=(0,a.jsxs)(a.Fragment,{children:[c&&(0,a.jsxs)("div",{className:"flex items-center gap-0.5 rounded-full bg-[var(--fill-tertiary)] p-0.5",children:[(0,a.jsx)("button",{onClick:()=>I("chat"),className:(0,N.cn)("rounded-full px-2.5 py-1 text-[11px] font-medium transition-all","chat"===C?"bg-background text-foreground shadow-sm":"text-muted-foreground hover:text-foreground"),children:"Chat"}),(0,a.jsx)("button",{onClick:()=>I("cli"),className:(0,N.cn)("rounded-full px-2.5 py-1 font-mono text-[11px] font-medium transition-all","cli"===C?"bg-background text-foreground shadow-sm":"text-muted-foreground hover:text-foreground"),children:"CLI"})]}),(0,a.jsx)("div",{className:"hidden lg:block",children:ed}),A&&(0,a.jsxs)("div",{className:"flex items-center gap-1 whitespace-nowrap text-xs font-medium text-[var(--accent)]",children:[(0,a.jsx)(eL.A,{className:"size-3"}),"Copied!"]})]});return(0,a.jsxs)(o.M,{mobileHeaderActions:ed,children:[(0,a.jsxs)("div",{className:"flex overflow-hidden h-full",children:[(0,a.jsx)("div",{className:"hidden h-full shrink-0 overflow-hidden lg:block",style:{width:280*!j,transition:"width 200ms ease-in-out"},children:(0,a.jsx)("div",{className:"h-full w-[280px]",children:(0,a.jsx)(B,{selectedId:c,onSelect:et,onNewChat:er,onDelete:en,onSessionsLoaded:ea,onEmployeeSessionsAvailable:ee})})}),(0,a.jsxs)("div",{className:"min-w-0 flex-1 flex-col overflow-hidden bg-background flex",children:[(0,a.jsx)(J,{tabs:q.tabs,activeIndex:q.activeIndex,onSwitch:q.switchTab,onClose:q.closeTab,onNew:er,onPin:q.pinTab,onMove:q.moveTab,toolbarActions:eu,sidebarCollapsed:"chat"===u||j,onToggleSidebar:S}),(0,a.jsx)("div",{className:"sidebar"===u?"flex-1 overflow-hidden lg:hidden":"hidden",children:(0,a.jsx)(B,{selectedId:c,onSelect:et,onNewChat:er,onDelete:en,onSessionsLoaded:ea,onEmployeeSessionsAvailable:ee})}),(0,a.jsx)("div",{className:(0,N.cn)("flex-1 overflow-hidden flex flex-col","sidebar"===u?"hidden lg:flex":"flex"),children:(0,a.jsx)(eN,{sessionId:c,isActive:!0,onFocus:()=>{},onSessionCreated:es,onSessionMetaChange:el,onRefresh:ei,portalName:r,subscribe:K,connectionSeq:P,skillsVersion:O,events:W,viewMode:C,getOnboardingPrompt:Q.current?eo:void 0,isStubSession:Q.current,onStubCleared:ec})})]})]}),(0,a.jsx)(eM.lG,{open:F&&!!c,onOpenChange:R,children:(0,a.jsxs)(eM.Cf,{showCloseButton:!1,className:"max-w-sm",children:[(0,a.jsxs)(eM.c7,{children:[(0,a.jsx)(eM.L3,{children:"Delete Session?"}),(0,a.jsx)(eM.rr,{children:"This will permanently delete the session and all its messages."})]}),(0,a.jsxs)(eM.Es,{children:[(0,a.jsx)(L.$,{variant:"outline",onClick:()=>R(!1),children:"Cancel"}),(0,a.jsx)(L.$,{variant:"destructive",onClick:()=>c&&en(c),children:"Delete"})]})]})})]})}},7983:(e,t,r)=>{Promise.resolve().then(r.bind(r,2619))},8697:(e,t,r)=>{"use strict";r.d(t,{e:()=>a,p:()=>n});let a=["\uD83E\uDD8A","\uD83D\uDC3C","\uD83E\uDD89","\uD83D\uDC19","\uD83E\uDD88","\uD83D\uDC3A","\uD83E\uDD81","\uD83D\uDC2F","\uD83D\uDC38","\uD83E\uDD8B","\uD83D\uDC1D","\uD83E\uDD9C","\uD83D\uDC2C","\uD83E\uDDA9","\uD83E\uDD9A","\uD83D\uDC3B","\uD83D\uDC28","\uD83E\uDD87","\uD83D\uDC33","\uD83D\uDC27","\uD83E\uDD16","\uD83D\uDC7E","\uD83C\uDF83","\uD83D\uDC7B","\uD83E\uDD84","\uD83D\uDC32","\uD83E\uDDD9","\uD83E\uDDDB","\uD83E\uDDDF","\uD83E\uDD77","\uD83C\uDF35","\uD83C\uDF44","\uD83C\uDF3B","\uD83C\uDF0A","⚡","\uD83D\uDD25","❄️","\uD83C\uDF08","\uD83D\uDC8E","\uD83E\uDE90","\uD83C\uDF55","\uD83C\uDF2E","\uD83C\uDF69","\uD83E\uDDC1","\uD83C\uDF63","\uD83E\uDD51","\uD83C\uDF49","\uD83E\uDED0","\uD83E\uDD65","\uD83C\uDF4B","\uD83C\uDFAF","\uD83C\uDFB8","\uD83C\uDFAE","\uD83C\uDFC6","\uD83D\uDE80","⚔️","\uD83D\uDEE1️","\uD83E\uDDF2","\uD83C\uDFAA","\uD83C\uDFAD","\uD83E\uDDBE","\uD83E\uDDFF","\uD83E\uDEAC","\uD83E\uDEE7","\uD83E\uDDCA","\uD83E\uDEB8","\uD83E\uDD91","\uD83E\uDD9E","\uD83E\uDEB7","\uD83E\uDEBB"];function n(e){let t=0;for(let r=0;r<e.length;r++)t=(t<<5)-t+e.charCodeAt(r)|0;return a[Math.abs(t)%a.length]}}},e=>{e.O(0,[625,51,458,660,155,192,344,144,358],()=>e(e.s=7983)),_N_E=e.O()}]);
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[271],{58:(e,t,a)=>{"use strict";a.d(t,{s:()=>l});var r=a(4130),n=a(4722),s=a(8697);function l(e){let{name:t,size:a=32,className:l,onClick:i}=e,{settings:o}=(0,n.t0)(),c=o.employeeOverrides[t],d=(null==c?void 0:c.emoji)||(0,s.p)(t),x=Math.round(.6*a);return(0,r.jsx)("span",{className:l,onClick:i,role:i?"button":void 0,style:{display:"inline-flex",alignItems:"center",justifyContent:"center",width:a,height:a,fontSize:x,lineHeight:1,borderRadius:"50%",flexShrink:0,cursor:i?"pointer":void 0,userSelect:"none"},children:d})}},3685:(e,t,a)=>{Promise.resolve().then(a.bind(a,4031))},4031:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>w});var r=a(4130),n=a(7946),s=a(6654);let l=["Sundays","Mondays","Tuesdays","Wednesdays","Thursdays","Fridays","Saturdays"];function i(e){if(!e||!e.trim())return"";let t=e.trim().split(/\s+/);if(5!==t.length)return e;let[a,r,n,,s]=t;if("*"===a&&"*"===r&&"*"===n&&"*"===s)return"Every minute";if(a.startsWith("*/")&&"*"===r&&"*"===n&&"*"===s){let e=parseInt(a.slice(2),10);if(!isNaN(e))return"Every ".concat(e," minutes")}if("*"!==a&&"*"===r&&"*"===n&&"*"===s)return"Every hour";let i=parseInt(r,10),o=parseInt(a,10);if(isNaN(i)||isNaN(o))return e;let c=0===o?function(e,t){let a=0===t?"":":".concat(String(t).padStart(2,"0"));return"".concat(e%12||12).concat(a," ").concat(e<12?"AM":"PM")}(i,o):"".concat(i%12||12,":").concat(String(o).padStart(2,"0")," ").concat(i<12?"AM":"PM");if(n.startsWith("*/")&&"*"===s){let e=parseInt(n.slice(2),10);if(!isNaN(e))return"Every ".concat(e," days at ").concat(c)}if("*"!==n&&"*"===s){let e=parseInt(n,10);if(!isNaN(e))return"Monthly on the ".concat(e).concat(1===e?"st":2===e?"nd":3===e?"rd":"th"," at ").concat(c)}if("*"===n&&"1-5"===s)return"Weekdays at ".concat(c);if("*"===n){let e=parseInt(s,10);if(!isNaN(e)&&e>=0&&e<=6)return"".concat(l[e]," at ").concat(c)}return"*"===n&&"*"===s?"Daily at ".concat(c):e}var o=a(7192),c=a(8565),d=a(9664),x=a(6063);function u(e){let{className:t,width:a,height:n,style:s,...l}=e;return(0,r.jsx)("div",{className:(0,x.cn)("animate-shimmer rounded-md",t),style:{background:"linear-gradient(90deg, var(--fill-secondary) 25%, var(--fill-tertiary) 50%, var(--fill-secondary) 75%)",backgroundSize:"200% 100%",width:a,height:n,...s},...l})}let v=["Mon","Tue","Wed","Thu","Fri","Sat","Sun"],p=["Monday","Tuesday","Wednesday","Thursday","Friday","Saturday","Sunday"],m={1:0,2:1,3:2,4:3,5:4,6:5,0:6};function h(e){let{slot:t,rect:a,containerRect:n}=e,s=t.cron.enabled?"var(--system-green)":"var(--text-tertiary)",l=a.top-n.top-8,o=a.left-n.left+a.width/2;return(0,r.jsxs)("div",{className:"absolute pointer-events-none z-[100] min-w-[200px] max-w-[300px] bg-[var(--material-regular)] border border-[var(--separator)] rounded-[var(--radius-md)] px-[var(--space-4)] py-[var(--space-3)] text-[length:var(--text-caption1)] text-[var(--text-primary)]",style:{top:l,left:o,transform:"translate(-50%, -100%)",boxShadow:"0 8px 24px rgba(0,0,0,0.4), 0 2px 8px rgba(0,0,0,0.2)"},children:[(0,r.jsx)("div",{className:"absolute w-2.5 h-2.5 bg-[var(--material-regular)] border-r border-b border-[var(--separator)]",style:{bottom:-5,left:"50%",transform:"translateX(-50%) rotate(45deg)"}}),(0,r.jsx)("div",{className:"font-bold text-[length:var(--text-footnote)] mb-[var(--space-1)] pl-[var(--space-2)]",style:{borderLeft:"3px solid ".concat(s)},children:t.cron.name}),(0,r.jsx)("div",{className:"text-[var(--text-secondary)] text-[length:var(--text-caption1)] mb-[var(--space-2)]",children:i(t.cron.schedule)}),(0,r.jsx)("div",{className:"font-[family-name:var(--font-mono)] text-[length:var(--text-caption2)] text-[var(--text-tertiary)] mb-[var(--space-2)]",children:t.cron.schedule}),(0,r.jsxs)("div",{className:"flex items-center gap-[var(--space-2)] text-[length:var(--text-caption1)]",children:[(0,r.jsx)("span",{className:"w-[7px] h-[7px] rounded-full shrink-0",style:{background:t.cron.enabled?"var(--system-green)":"var(--text-tertiary)"}}),(0,r.jsx)("span",{className:"font-medium",style:{color:t.cron.enabled?"var(--system-green)":"var(--text-tertiary)"},children:t.cron.enabled?"Enabled":"Disabled"}),t.cron.employee&&(0,r.jsx)("span",{className:"text-[var(--text-tertiary)] ml-[var(--space-1)]",children:t.cron.employee})]})]})}function g(e){let{crons:t}=e,[a,s]=(0,n.useState)(null),l=(0,n.useRef)(null),[o,c]=(0,n.useState)(null),d=(0,n.useCallback)(()=>{l.current&&c(l.current.getBoundingClientRect())},[]);(0,n.useEffect)(()=>{if(d(),l.current)return window.addEventListener("resize",d,{passive:!0}),()=>{window.removeEventListener("resize",d)}},[d]);let{slotsByDayHour:x,activeHours:u}=(0,n.useMemo)(()=>{let e=new Map,a=new Set;for(let r of t){if(!r.enabled)continue;let t=function(e){let t;if(!e||!e.trim())return null;let a=e.trim().split(/\s+/);if(5!==a.length)return null;let[r,n,,,s]=a,l=parseInt(r,10),i=parseInt(n,10);if(isNaN(l)||isNaN(i))return null;if("*"===s)t=[0,1,2,3,4,5,6];else if("1-5"===s)t=[1,2,3,4,5];else if("0-6"===s||"0,1,2,3,4,5,6"===s)t=[0,1,2,3,4,5,6];else if(s.includes(",")){if(0===(t=s.split(",").map(Number).filter(e=>!isNaN(e)&&e>=0&&e<=6)).length)return null}else{let e=parseInt(s,10);if(isNaN(e)||e<0||e>6)return null;t=[e]}return{hour:i,minute:l,days:t}}(r.schedule);if(t)for(let n of t.days){let s=m[n];if(void 0===s)continue;let l="".concat(s,"-").concat(t.hour),i=e.get(l)||[];i.push({cron:r,hour:t.hour,minute:t.minute,col:s}),e.set(l,i),a.add(t.hour)}}for(let[t,a]of e)e.set(t,a.sort((e,t)=>e.minute-t.minute||e.cron.name.localeCompare(t.cron.name)));return{slotsByDayHour:e,activeHours:Array.from(a).sort((e,t)=>e-t)}},[t]),g=new Date,f=m[g.getDay()],b=g.getHours(),y=g.getMinutes()/60,j=(0,n.useMemo)(()=>{let e=new Map;for(let a of u){let r=0;for(let e=0;e<7;e++){var t;let n="".concat(e,"-").concat(a),s=(null==(t=x.get(n))?void 0:t.length)||0;s>r&&(r=s)}e.set(a,r)}return e},[u,x]);return((0,n.useEffect)(()=>{if(!a)return;let e=()=>s(null);return document.addEventListener("click",e),()=>document.removeEventListener("click",e)},[a]),0===u.length)?(0,r.jsxs)("div",{className:"flex flex-col items-center justify-center h-[200px] text-[var(--text-secondary)] gap-[var(--space-2)]",children:[(0,r.jsxs)("svg",{width:"32",height:"32",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round",className:"text-[var(--text-tertiary)] mb-[var(--space-2)]",children:[(0,r.jsx)("rect",{x:"3",y:"4",width:"18",height:"18",rx:"2",ry:"2"}),(0,r.jsx)("line",{x1:"16",y1:"2",x2:"16",y2:"6"}),(0,r.jsx)("line",{x1:"8",y1:"2",x2:"8",y2:"6"}),(0,r.jsx)("line",{x1:"3",y1:"10",x2:"21",y2:"10"})]}),(0,r.jsx)("span",{className:"text-[length:var(--text-subheadline)] font-medium",children:"No scheduled jobs to display"}),(0,r.jsx)("span",{className:"text-[length:var(--text-footnote)] text-[var(--text-tertiary)]",children:"Enable some cron jobs to see the weekly schedule"})]}):(0,r.jsxs)("div",{ref:l,className:"relative",onClick:()=>s(null),children:[(0,r.jsxs)("div",{className:"grid grid-cols-[56px_repeat(7,1fr)] bg-[var(--material-regular)] rounded-[var(--radius-md)] border border-[var(--separator)] overflow-hidden",children:[(0,r.jsx)("div",{className:"p-[var(--space-3)_var(--space-2)] border-b border-[var(--separator)] bg-[var(--material-thick)]"}),v.map((e,t)=>{let a=t===f;return(0,r.jsxs)("div",{className:"relative p-[var(--space-3)_var(--space-2)] text-center border-b border-l border-[var(--separator)]",style:{background:a?"var(--accent-fill)":"var(--material-thick)"},children:[(0,r.jsx)("div",{title:p[t],className:"text-[length:var(--text-footnote)] tracking-[0.02em]",style:{fontWeight:a?700:600,color:a?"var(--accent)":"var(--text-primary)"},children:e}),a&&(0,r.jsx)("div",{className:"absolute -bottom-[3px] left-1/2 -translate-x-1/2 w-1.5 h-1.5 rounded-full bg-[var(--accent)] z-[2]"})]},e)}),u.map((e,t)=>{let n=j.get(e)||1,l=8+28*n+(n-1)*4,o=e===b,c=t===u.length-1;return(0,r.jsxs)("div",{className:"contents",children:[(0,r.jsx)("div",{className:"p-[var(--space-2)] flex items-start justify-end relative",style:{borderBottom:c?"none":"1px solid var(--separator)",minHeight:l,background:o?"var(--accent-fill)":void 0},children:(0,r.jsx)("span",{className:"text-[length:var(--text-caption1)] font-[family-name:var(--font-mono)] leading-[1.2] whitespace-nowrap pt-0.5",style:{color:o?"var(--accent)":"var(--text-tertiary)",fontWeight:o?600:400},title:0===e||24===e?"12 AM":12===e?"12 PM":e<12?"".concat(e," AM"):"".concat(e-12," PM"),children:0===e||24===e?"12a":12===e?"12p":e<12?"".concat(e,"a"):"".concat(e-12,"p")})}),Array.from({length:7},(t,n)=>{let u="".concat(n,"-").concat(e),v=x.get(u)||[],p=n===f,m=p&&o;return(0,r.jsxs)("div",{className:"flex flex-col relative border-l border-[var(--separator)]",style:{padding:"".concat(4,"px 4px"),borderBottom:c?"none":"1px solid var(--separator)",minHeight:l,gap:4,background:m?"color-mix(in srgb, var(--accent) 6%, transparent)":p?"color-mix(in srgb, var(--accent) 3%, transparent)":void 0},children:[m&&(0,r.jsx)("div",{className:"absolute left-0 right-0 h-0.5 bg-[var(--system-red)] opacity-80 z-[3] rounded-[1px]",style:{top:"".concat((100*y).toFixed(1),"%")}}),v.map((e,t)=>{let n=e.cron.enabled?"var(--system-green)":"var(--text-tertiary)",l=(null==a?void 0:a.slot.cron.id)===e.cron.id&&(null==a?void 0:a.slot.col)===e.col&&(null==a?void 0:a.slot.hour)===e.hour;return(0,r.jsxs)("button",{type:"button",title:"".concat(e.cron.name," - ").concat(i(e.cron.schedule)),onClick:t=>{t.stopPropagation();let a=t.currentTarget.getBoundingClientRect();d(),l?s(null):s({slot:e,rect:a})},onMouseEnter:t=>(function(e,t){let a=t.currentTarget.getBoundingClientRect();d(),s({slot:e,rect:a})})(e,t),onMouseLeave:()=>s(null),className:"flex items-center gap-[5px] px-1.5 rounded-[var(--radius-sm)] border-none cursor-pointer w-full min-w-0 text-left relative overflow-hidden transition-[background,box-shadow] duration-150 ease-in-out",style:{height:28,background:l?"color-mix(in srgb, ".concat(n," 25%, transparent)"):"color-mix(in srgb, ".concat(n," 12%, transparent)"),borderLeft:"3px solid ".concat(n),boxShadow:l?"0 0 0 1px color-mix(in srgb, ".concat(n," 40%, transparent)"):"none"},children:[(0,r.jsx)("span",{className:"w-1.5 h-1.5 rounded-full shrink-0",style:{background:e.cron.enabled?"var(--system-green)":"var(--text-tertiary)"}}),(0,r.jsx)("span",{className:"text-[length:var(--text-caption2)] font-[family-name:var(--font-mono)] text-[var(--text-tertiary)] shrink-0 leading-none",children:":".concat(String(e.minute).padStart(2,"0"))}),(0,r.jsx)("span",{className:"text-[length:var(--text-caption2)] font-semibold overflow-hidden text-ellipsis whitespace-nowrap min-w-0 flex-1 leading-none",style:{color:n},children:e.cron.name})]},"".concat(u,"-").concat(t))}),0===v.length&&(0,r.jsx)("div",{className:"flex-1"})]},u)})]},e)})]}),a&&o&&(0,r.jsx)(h,{slot:a.slot,rect:a.rect,containerRect:o})]})}function f(e){let{crons:t}=e;if(0===t.length)return(0,r.jsxs)("div",{className:"bg-[var(--material-regular)] border border-[var(--separator)] rounded-[var(--radius-md)] px-6 py-8 text-center",children:[(0,r.jsx)("div",{className:"text-sm font-bold text-[var(--text-primary)] mb-2",children:"No cron jobs configured"}),(0,r.jsx)("div",{className:"text-xs text-[var(--text-secondary)] max-w-[480px] mx-auto leading-[1.6]",children:"Cron jobs will appear here as cards once configured."})]});let a=t.filter(e=>e.enabled),n=t.filter(e=>!e.enabled);return(0,r.jsxs)("div",{children:[a.length>0&&(0,r.jsx)(b,{crons:a,label:"Enabled"}),n.length>0&&(0,r.jsx)(b,{crons:n,label:"Disabled"})]})}function b(e){let{crons:t,label:a}=e;return(0,r.jsxs)("div",{className:"mb-6",children:[(0,r.jsxs)("div",{className:"text-[13px] font-bold text-[var(--text-secondary)] mb-3",children:[a," (",t.length,")"]}),(0,r.jsx)("div",{className:"grid grid-cols-[repeat(auto-fill,minmax(220px,1fr))] gap-2.5",children:t.map(e=>{let t=e.enabled?"var(--system-green)":"var(--text-tertiary)";return(0,r.jsxs)("div",{className:"bg-[var(--material-regular)] rounded-[var(--radius-md)] border border-[var(--separator)] px-3.5 py-2.5",style:{borderLeft:"3px solid ".concat(t)},children:[(0,r.jsxs)("div",{className:"flex items-center gap-1.5 mb-1",children:[(0,r.jsx)("div",{className:"w-[7px] h-[7px] rounded-full shrink-0 ".concat(e.enabled?"bg-[var(--system-green)]":"bg-[var(--text-tertiary)]")}),(0,r.jsx)("div",{className:"text-xs font-semibold text-[var(--text-primary)] whitespace-nowrap overflow-hidden text-ellipsis",children:e.name})]}),(0,r.jsx)("div",{className:"text-[10px] text-[var(--text-secondary)] mb-0.5",children:i(e.schedule)}),(0,r.jsx)("div",{className:"text-[10px] font-[var(--font-mono)] text-[var(--text-tertiary)] mb-1",children:e.schedule}),(0,r.jsxs)("div",{className:"flex flex-wrap gap-1",children:[e.employee&&(0,r.jsx)("span",{className:"inline-block text-[9px] px-1.5 py-px rounded text-[var(--system-blue)]",style:{background:"color-mix(in srgb, var(--system-blue) 15%, transparent)"},children:e.employee}),e.engine&&(0,r.jsx)("span",{className:"inline-block text-[9px] px-1.5 py-px rounded bg-[var(--fill-tertiary)] text-[var(--text-tertiary)]",children:e.engine})]})]},e.id)})})]})}var y=a(58);function j(e){if(!e)return"never";let t=new Date(e);if(isNaN(t.getTime()))return"—";let a=Date.now()-t.getTime(),r=Math.floor(a/6e4),n=Math.floor(a/36e5),s=Math.floor(a/864e5);return r<1?"just now":r<60?"".concat(r,"m ago"):n<24?"".concat(n,"h ago"):"".concat(s,"d ago")}function N(e){let{jobId:t}=e,[a,l]=(0,n.useState)(null),[i,o]=(0,n.useState)(!0);return((0,n.useEffect)(()=>{s.F.getCronRuns(t).then(e=>{l(e.slice(0,5)),o(!1)}).catch(()=>{l([]),o(!1)})},[t]),i)?(0,r.jsxs)("div",{className:"mt-[var(--space-3)]",children:[(0,r.jsx)("div",{className:"text-[length:var(--text-caption1)] text-[var(--text-tertiary)] font-semibold mb-[var(--space-2)]",children:"Recent Runs"}),[1,2,3].map(e=>(0,r.jsx)(u,{className:"h-4 mb-1 w-4/5"},e))]}):a&&0!==a.length?(0,r.jsxs)("div",{className:"mt-[var(--space-3)]",children:[(0,r.jsx)("div",{className:"text-[length:var(--text-caption1)] text-[var(--text-tertiary)] font-semibold mb-[var(--space-2)]",children:"Recent Runs"}),(0,r.jsx)("div",{className:"flex flex-col gap-1",children:a.map((e,t)=>{let a=e.ts||e.startedAt||"",n=e.status||"unknown",s=j(a),l=null!=e.durationMs?function(e){if(e<0||!Number.isFinite(e))return"—";let t=Math.round(e/1e3);if(t<60)return"".concat(t,"s");let a=Math.floor(t/60),r=t%60;if(a<60)return r>0?"".concat(a,"m ").concat(r,"s"):"".concat(a,"m");let n=Math.floor(a/60);return"".concat(n,"h ").concat(a%60,"m")}(e.durationMs):"—";return(0,r.jsxs)("div",{className:"flex items-center gap-[var(--space-2)] text-[length:var(--text-caption2)] min-h-[22px] py-0.5",children:[(0,r.jsx)("span",{className:"w-1.5 h-1.5 rounded-full shrink-0",style:{background:"success"===n||"ok"===n?"var(--system-green)":"error"===n||"failed"===n?"var(--system-red)":"var(--text-tertiary)"}}),(0,r.jsx)("span",{className:"text-[var(--text-tertiary)] min-w-[52px] shrink-0",children:s}),(0,r.jsx)("span",{className:"text-[var(--text-secondary)] min-w-[52px] shrink-0",children:l}),(0,r.jsx)("span",{className:"text-[var(--text-secondary)] capitalize",children:n}),e.error&&(0,r.jsx)("span",{className:"truncate text-[var(--system-red)] min-w-0 flex-1",children:e.error})]},"".concat(a,"-").concat(t))})})]}):(0,r.jsxs)("div",{className:"mt-[var(--space-3)]",children:[(0,r.jsx)("div",{className:"text-[length:var(--text-caption1)] text-[var(--text-tertiary)] font-semibold mb-[var(--space-2)]",children:"Recent Runs"}),(0,r.jsx)("div",{className:"text-[length:var(--text-caption2)] text-[var(--text-tertiary)]",children:"No run history"})]})}function w(){(0,c.i)([{label:"Cron"}]);let[e,t]=(0,n.useState)([]),[a,l]=(0,n.useState)(!0),[x,v]=(0,n.useState)(null),[p,m]=(0,n.useState)("all"),[h,b]=(0,n.useState)(null),[w,M]=(0,n.useState)("just now"),[C,S]=(0,n.useState)(new Date),[E,I]=(0,n.useState)(null),[R,D]=(0,n.useState)(new Map);(0,n.useEffect)(()=>{s.F.getOrg().then(async e=>{let t=new Map;await Promise.all(e.employees.map(async e=>{try{let a=await s.F.getEmployee(e);t.set(e,a)}catch(e){}})),D(t)}).catch(()=>{})},[]);let F=(0,n.useCallback)(()=>{v(null),s.F.getCronJobs().then(e=>{t(e),S(new Date)}).catch(e=>v(e instanceof Error?e.message:"Unknown error")).finally(()=>l(!1))},[]);(0,n.useEffect)(()=>{F();let e=setInterval(F,6e4);return()=>clearInterval(e)},[F]),(0,n.useEffect)(()=>{let e=()=>M(j(C.toISOString()));e();let t=setInterval(e,3e4);return()=>clearInterval(t)},[C]);let T=e.filter(e=>e.enabled).length,L=e.filter(e=>!e.enabled).length,z=e.filter(e=>"enabled"===p?e.enabled:"disabled"!==p||!e.enabled),_=(0,n.useMemo)(()=>{let e=new Map;for(let t of z){let a=t.employee||"_unassigned",r=e.get(a)||[];r.push(t),e.set(a,r)}return e},[z]);return(0,r.jsx)(o.M,{children:(0,r.jsxs)("div",{className:"h-full flex flex-col overflow-hidden bg-[var(--bg)]",children:[(0,r.jsx)("header",{className:"flex-shrink-0 bg-[var(--material-regular)] border-b border-[var(--separator)] px-[var(--space-6)] py-[var(--space-4)]",children:(0,r.jsxs)("div",{className:"flex items-center justify-between",children:[(0,r.jsxs)("div",{children:[(0,r.jsx)("h1",{className:"text-[length:var(--text-title1)] font-bold text-[var(--text-primary)] tracking-tight leading-[1.2]",children:"Cron Jobs"}),!a&&(0,r.jsxs)("p",{className:"text-[length:var(--text-footnote)] text-[var(--text-secondary)] mt-[var(--space-1)]",children:[e.length," total \xb7 ",T," enabled \xb7 ",L," disabled"]})]}),(0,r.jsx)(o.v,{children:(0,r.jsxs)("div",{className:"flex items-center gap-[var(--space-3)]",children:[(0,r.jsxs)("span",{className:"text-[length:var(--text-caption1)] text-[var(--text-tertiary)]",children:["Updated ",w]}),(0,r.jsx)("button",{onClick:F,"aria-label":"Refresh cron data",className:"w-8 h-8 flex items-center justify-center rounded-[var(--radius-sm)] border-none bg-transparent text-[var(--text-tertiary)] cursor-pointer",children:(0,r.jsxs)("svg",{width:"16",height:"16",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:[(0,r.jsx)("path",{d:"M21 2v6h-6"}),(0,r.jsx)("path",{d:"M3 12a9 9 0 0 1 15-6.7L21 8"}),(0,r.jsx)("path",{d:"M3 22v-6h6"}),(0,r.jsx)("path",{d:"M21 12a9 9 0 0 1-15 6.7L3 16"})]})})]})})]})}),(0,r.jsx)("div",{className:"flex-1 overflow-y-auto px-[var(--space-6)] pt-[var(--space-4)] pb-[var(--space-6)]",children:x&&0===e.length?(0,r.jsxs)("div",{className:"bg-[rgba(255,69,58,0.06)] border border-[var(--system-red)] rounded-[var(--radius-md)] p-[var(--space-4)] text-[var(--system-red)] text-[length:var(--text-footnote)] mb-[var(--space-4)]",children:["Failed to load cron jobs: ",x,(0,r.jsx)("button",{onClick:F,className:"ml-[var(--space-3)] underline bg-none border-none text-inherit cursor-pointer text-[length:inherit]",children:"Retry"})]}):a?(0,r.jsxs)("div",{children:[(0,r.jsx)("div",{className:"grid grid-cols-3 gap-[var(--space-3)] mb-[var(--space-4)]",children:[1,2,3].map(e=>(0,r.jsxs)("div",{className:"bg-[var(--material-regular)] border border-[var(--separator)] rounded-[var(--radius-md)] p-[var(--space-4)]",children:[(0,r.jsx)(u,{className:"w-[60px] h-2.5 mb-2"}),(0,r.jsx)(u,{className:"w-20 h-3.5"})]},e))}),[1,2,3,4].map(e=>(0,r.jsx)(u,{className:"h-12 mb-1 rounded-[var(--radius-sm)]"},e))]}):(0,r.jsxs)(d.tU,{defaultValue:"overview",children:[(0,r.jsxs)(d.j7,{variant:"line",children:[(0,r.jsx)(d.Xi,{value:"overview",children:"Overview"}),(0,r.jsx)(d.Xi,{value:"schedule",children:"Schedule"}),(0,r.jsx)(d.Xi,{value:"pipelines",children:"Pipelines"})]}),(0,r.jsxs)(d.av,{value:"overview",children:[(0,r.jsxs)("div",{className:"grid grid-cols-3 gap-[var(--space-3)] mb-[var(--space-4)] mt-[var(--space-4)]",children:[(0,r.jsx)(k,{label:"Total Jobs",value:e.length}),(0,r.jsx)(k,{label:"Enabled",value:T,color:"var(--system-green)"}),(0,r.jsx)(k,{label:"Disabled",value:L,color:"var(--text-tertiary)"})]}),(0,r.jsx)("div",{className:"flex items-center gap-[var(--space-2)] mb-[var(--space-3)]",children:["all","enabled","disabled"].map(t=>{let a=p===t,n="all"===t?e.length:"enabled"===t?T:L;return(0,r.jsxs)("button",{onClick:()=>m(t),className:"rounded-[20px] px-3.5 py-1.5 text-[length:var(--text-footnote)] font-medium border-none cursor-pointer transition-all duration-200 ease-in-out",style:{background:a?"var(--accent-fill)":"var(--fill-secondary)",color:a?"var(--accent)":"var(--text-primary)"},children:[t.charAt(0).toUpperCase()+t.slice(1)," (",n,")"]},t)})}),0===z.length?(0,r.jsxs)("div",{className:"flex flex-col items-center justify-center h-[200px] text-[var(--text-secondary)] gap-[var(--space-2)]",children:[(0,r.jsxs)("svg",{width:"32",height:"32",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round",className:"text-[var(--text-tertiary)] mb-[var(--space-2)]",children:[(0,r.jsx)("circle",{cx:"12",cy:"12",r:"10"}),(0,r.jsx)("polyline",{points:"12 6 12 12 16 14"})]}),(0,r.jsx)("span",{className:"text-[length:var(--text-subheadline)] font-medium",children:0===e.length?"No cron jobs configured":"No jobs match this filter"})]}):(0,r.jsx)("div",{className:"flex flex-col gap-[var(--space-3)]",children:Array.from(_.entries()).map(e=>{let[a,n]=e,l="_unassigned"!==a?R.get(a):null,o=(null==l?void 0:l.displayName)||("_unassigned"===a?"Unassigned":a.split("-").map(e=>e.charAt(0).toUpperCase()+e.slice(1)).join(" "));return(0,r.jsxs)("div",{children:[(0,r.jsxs)("div",{className:"flex items-center gap-[var(--space-2)] mb-[var(--space-2)]",children:["_unassigned"!==a&&(0,r.jsx)(y.s,{name:a,size:20}),(0,r.jsx)("span",{className:"text-[length:var(--text-caption1)] font-[var(--weight-semibold)] text-[var(--text-secondary)]",children:o}),(0,r.jsxs)("span",{className:"text-[length:var(--text-caption2)] text-[var(--text-quaternary)]",children:[n.length," job",1!==n.length?"s":""]})]}),(0,r.jsx)("div",{className:"rounded-[var(--radius-md)] overflow-hidden bg-[var(--material-regular)] border border-[var(--separator)]",children:n.map((e,a)=>{let n=h===e.id;return(0,r.jsxs)("div",{children:[a>0&&(0,r.jsx)("div",{className:"h-px bg-[var(--separator)] mx-[var(--space-4)]"}),(0,r.jsxs)("div",{role:"button",tabIndex:0,"aria-expanded":n,onClick:()=>b(n?null:e.id),onKeyDown:t=>{("Enter"===t.key||" "===t.key)&&(t.preventDefault(),b(n?null:e.id))},className:"flex items-center cursor-pointer min-h-[48px] px-[var(--space-4)] transition-[background] duration-150 ease-in-out",style:{borderLeft:"3px solid ".concat(e.enabled?"var(--system-green)":"transparent")},onMouseEnter:e=>{e.currentTarget.style.background="var(--fill-secondary)"},onMouseLeave:e=>{e.currentTarget.style.background=""},children:[(0,r.jsx)("span",{className:"w-2 h-2 rounded-full shrink-0",style:{background:e.enabled?"var(--system-green)":"var(--text-tertiary)"}}),(0,r.jsxs)("div",{className:"min-w-0 flex-1 ml-3 flex flex-col",children:[(0,r.jsx)("span",{className:"truncate text-[length:var(--text-footnote)] font-semibold text-[var(--text-primary)]",children:e.name}),(0,r.jsx)("span",{className:"text-[length:var(--text-caption1)] text-[var(--text-tertiary)]",children:i(e.schedule)})]}),(0,r.jsxs)("div",{className:"flex items-center shrink-0 gap-[var(--space-2)] ml-auto",children:[e.engine&&(0,r.jsx)("span",{className:"text-[length:var(--text-caption1)] px-2 py-px rounded-xl bg-[var(--fill-tertiary)] text-[var(--text-tertiary)]",children:e.engine}),(0,r.jsx)("button",{onClick:a=>{a.stopPropagation();let r=!e.enabled;s.F.updateCronJob(e.id,{enabled:r}).then(()=>{t(t=>t.map(t=>t.id===e.id?{...t,enabled:r}:t))}).catch(()=>{})},"aria-label":e.enabled?"Disable job":"Enable job",className:"relative inline-flex items-center w-9 h-5 rounded-[10px] border-none cursor-pointer shrink-0 transition-[background] duration-200 ease-in-out",style:{background:e.enabled?"var(--system-green)":"var(--fill-tertiary)"},children:(0,r.jsx)("span",{className:"block w-3.5 h-3.5 rounded-full bg-white transition-transform duration-200 ease-in-out",style:{transform:e.enabled?"translateX(18px)":"translateX(3px)"}})}),(0,r.jsx)("span",{className:"text-[length:var(--text-footnote)] text-[var(--text-tertiary)] transition-transform duration-200 ease-in-out inline-block",style:{transform:n?"rotate(90deg)":"rotate(0deg)"},children:"›"})]})]}),n&&(0,r.jsxs)("div",{className:"px-[var(--space-4)] pb-[var(--space-4)] ml-[3px]",children:[(0,r.jsxs)("div",{className:"grid grid-cols-[auto_1fr] gap-x-[var(--space-4)] gap-y-[var(--space-1)] mt-[var(--space-2)] mb-[var(--space-3)]",children:[(0,r.jsx)("span",{className:"text-[length:var(--text-caption1)] text-[var(--text-tertiary)]",children:"Schedule"}),(0,r.jsxs)("div",{children:[(0,r.jsx)("div",{className:"text-[length:var(--text-caption1)] text-[var(--text-secondary)]",children:i(e.schedule)}),(0,r.jsxs)("div",{className:"text-[length:var(--text-caption2)] font-[family-name:var(--font-mono)] text-[var(--text-tertiary)] mt-0.5",children:[e.schedule,e.timezone&&(0,r.jsxs)("span",{className:"ml-2",children:["(",e.timezone,")"]})]})]}),(0,r.jsx)("span",{className:"text-[length:var(--text-caption1)] text-[var(--text-tertiary)]",children:"Status"}),(0,r.jsx)("span",{className:"text-[length:var(--text-caption1)] font-medium",style:{color:e.enabled?"var(--system-green)":"var(--text-tertiary)"},children:e.enabled?"Enabled":"Disabled"}),e.engine&&(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)("span",{className:"text-[length:var(--text-caption1)] text-[var(--text-tertiary)]",children:"Engine"}),(0,r.jsx)("span",{className:"text-[length:var(--text-caption1)] text-[var(--text-secondary)]",children:e.engine})]}),e.model&&(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)("span",{className:"text-[length:var(--text-caption1)] text-[var(--text-tertiary)]",children:"Model"}),(0,r.jsx)("span",{className:"text-[length:var(--text-caption1)] text-[var(--text-secondary)] font-[family-name:var(--font-mono)]",children:e.model})]})]}),(0,r.jsx)("div",{className:"mb-[var(--space-3)]",children:(0,r.jsx)("button",{onClick:t=>{t.stopPropagation(),I(e.id),s.F.triggerCronJob(e.id).then(()=>{setTimeout(F,2e3)}).catch(()=>{}).finally(()=>{setTimeout(()=>I(null),2e3)})},disabled:E===e.id,className:"inline-flex items-center gap-1.5 px-3.5 py-1.5 rounded-[var(--radius-sm)] border border-[var(--separator)] text-[length:var(--text-caption1)] font-semibold transition-all duration-200 ease-in-out",style:{background:E===e.id?"var(--fill-tertiary)":"var(--material-regular)",color:E===e.id?"var(--system-green)":"var(--text-secondary)",cursor:E===e.id?"default":"pointer"},children:E===e.id?(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)("span",{className:"text-sm",children:"✓"}),"Triggered"]}):(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)("svg",{width:"12",height:"12",viewBox:"0 0 24 24",fill:"currentColor",stroke:"none",children:(0,r.jsx)("polygon",{points:"5,3 19,12 5,21"})}),"Run Now"]})})}),(0,r.jsx)(N,{jobId:e.id})]})]},e.id)})})]},a)})})]}),(0,r.jsx)(d.av,{value:"schedule",children:(0,r.jsx)("div",{className:"mt-[var(--space-4)]",children:(0,r.jsx)(g,{crons:e})})}),(0,r.jsx)(d.av,{value:"pipelines",children:(0,r.jsx)("div",{className:"mt-[var(--space-4)]",children:(0,r.jsx)(f,{crons:e})})})]})})]})})}function k(e){let{label:t,value:a,color:n}=e;return(0,r.jsxs)("div",{className:"bg-[var(--material-regular)] border border-[var(--separator)] rounded-[var(--radius-md)] p-[var(--space-4)]",children:[(0,r.jsx)("div",{className:"text-[length:var(--text-caption1)] text-[var(--text-tertiary)] font-medium mb-[var(--space-1)]",children:t}),(0,r.jsx)("div",{className:"text-[length:var(--text-title2)] font-bold",style:{color:n||"var(--text-primary)"},children:a})]})}},8697:(e,t,a)=>{"use strict";a.d(t,{e:()=>r,p:()=>n});let r=["\uD83E\uDD8A","\uD83D\uDC3C","\uD83E\uDD89","\uD83D\uDC19","\uD83E\uDD88","\uD83D\uDC3A","\uD83E\uDD81","\uD83D\uDC2F","\uD83D\uDC38","\uD83E\uDD8B","\uD83D\uDC1D","\uD83E\uDD9C","\uD83D\uDC2C","\uD83E\uDDA9","\uD83E\uDD9A","\uD83D\uDC3B","\uD83D\uDC28","\uD83E\uDD87","\uD83D\uDC33","\uD83D\uDC27","\uD83E\uDD16","\uD83D\uDC7E","\uD83C\uDF83","\uD83D\uDC7B","\uD83E\uDD84","\uD83D\uDC32","\uD83E\uDDD9","\uD83E\uDDDB","\uD83E\uDDDF","\uD83E\uDD77","\uD83C\uDF35","\uD83C\uDF44","\uD83C\uDF3B","\uD83C\uDF0A","⚡","\uD83D\uDD25","❄️","\uD83C\uDF08","\uD83D\uDC8E","\uD83E\uDE90","\uD83C\uDF55","\uD83C\uDF2E","\uD83C\uDF69","\uD83E\uDDC1","\uD83C\uDF63","\uD83E\uDD51","\uD83C\uDF49","\uD83E\uDED0","\uD83E\uDD65","\uD83C\uDF4B","\uD83C\uDFAF","\uD83C\uDFB8","\uD83C\uDFAE","\uD83C\uDFC6","\uD83D\uDE80","⚔️","\uD83D\uDEE1️","\uD83E\uDDF2","\uD83C\uDFAA","\uD83C\uDFAD","\uD83E\uDDBE","\uD83E\uDDFF","\uD83E\uDEAC","\uD83E\uDEE7","\uD83E\uDDCA","\uD83E\uDEB8","\uD83E\uDD91","\uD83E\uDD9E","\uD83E\uDEB7","\uD83E\uDEBB"];function n(e){let t=0;for(let a=0;a<e.length;a++)t=(t<<5)-t+e.charCodeAt(a)|0;return r[Math.abs(t)%r.length]}},9664:(e,t,a)=>{"use strict";a.d(t,{tU:()=>R,av:()=>L,j7:()=>F,Xi:()=>T});var r=a(4130),n=a(7946),s=a(4322),l=a(3397),i=a(5773),o=a(9458),c=a(4127),d=a(5822),x=a(7058),u=a(4068),v=a(5380),p="Tabs",[m,h]=(0,i.A)(p,[o.RG]),g=(0,o.RG)(),[f,b]=m(p),y=n.forwardRef((e,t)=>{let{__scopeTabs:a,value:n,onValueChange:s,defaultValue:l,orientation:i="horizontal",dir:o,activationMode:c="automatic",...m}=e,h=(0,x.jH)(o),[g,b]=(0,u.i)({prop:n,onChange:s,defaultProp:null!=l?l:"",caller:p});return(0,r.jsx)(f,{scope:a,baseId:(0,v.B)(),value:g,onValueChange:b,orientation:i,dir:h,activationMode:c,children:(0,r.jsx)(d.sG.div,{dir:h,"data-orientation":i,...m,ref:t})})});y.displayName=p;var j="TabsList",N=n.forwardRef((e,t)=>{let{__scopeTabs:a,loop:n=!0,...s}=e,l=b(j,a),i=g(a);return(0,r.jsx)(o.bL,{asChild:!0,...i,orientation:l.orientation,dir:l.dir,loop:n,children:(0,r.jsx)(d.sG.div,{role:"tablist","aria-orientation":l.orientation,...s,ref:t})})});N.displayName=j;var w="TabsTrigger",k=n.forwardRef((e,t)=>{let{__scopeTabs:a,value:n,disabled:s=!1,...i}=e,c=b(w,a),x=g(a),u=S(c.baseId,n),v=E(c.baseId,n),p=n===c.value;return(0,r.jsx)(o.q7,{asChild:!0,...x,focusable:!s,active:p,children:(0,r.jsx)(d.sG.button,{type:"button",role:"tab","aria-selected":p,"aria-controls":v,"data-state":p?"active":"inactive","data-disabled":s?"":void 0,disabled:s,id:u,...i,ref:t,onMouseDown:(0,l.mK)(e.onMouseDown,e=>{s||0!==e.button||!1!==e.ctrlKey?e.preventDefault():c.onValueChange(n)}),onKeyDown:(0,l.mK)(e.onKeyDown,e=>{[" ","Enter"].includes(e.key)&&c.onValueChange(n)}),onFocus:(0,l.mK)(e.onFocus,()=>{let e="manual"!==c.activationMode;p||s||!e||c.onValueChange(n)})})})});k.displayName=w;var M="TabsContent",C=n.forwardRef((e,t)=>{let{__scopeTabs:a,value:s,forceMount:l,children:i,...o}=e,x=b(M,a),u=S(x.baseId,s),v=E(x.baseId,s),p=s===x.value,m=n.useRef(p);return n.useEffect(()=>{let e=requestAnimationFrame(()=>m.current=!1);return()=>cancelAnimationFrame(e)},[]),(0,r.jsx)(c.C,{present:l||p,children:a=>{let{present:n}=a;return(0,r.jsx)(d.sG.div,{"data-state":p?"active":"inactive","data-orientation":x.orientation,role:"tabpanel","aria-labelledby":u,hidden:!n,id:v,tabIndex:0,...o,ref:t,style:{...e.style,animationDuration:m.current?"0s":void 0},children:n&&i})}})});function S(e,t){return"".concat(e,"-trigger-").concat(t)}function E(e,t){return"".concat(e,"-content-").concat(t)}C.displayName=M;var I=a(6063);function R(e){let{className:t,orientation:a="horizontal",...n}=e;return(0,r.jsx)(y,{"data-slot":"tabs","data-orientation":a,orientation:a,className:(0,I.cn)("group/tabs flex gap-2 data-[orientation=horizontal]:flex-col",t),...n})}let D=(0,s.F)("rounded-lg p-[3px] group-data-[orientation=horizontal]/tabs:h-9 data-[variant=line]:rounded-none group/tabs-list text-muted-foreground inline-flex w-fit items-center justify-center group-data-[orientation=vertical]/tabs:h-fit group-data-[orientation=vertical]/tabs:flex-col",{variants:{variant:{default:"bg-muted",line:"gap-1 bg-transparent"}},defaultVariants:{variant:"default"}});function F(e){let{className:t,variant:a="default",...n}=e;return(0,r.jsx)(N,{"data-slot":"tabs-list","data-variant":a,className:(0,I.cn)(D({variant:a}),t),...n})}function T(e){let{className:t,...a}=e;return(0,r.jsx)(k,{"data-slot":"tabs-trigger",className:(0,I.cn)("focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:outline-ring text-foreground/60 hover:text-foreground dark:text-muted-foreground dark:hover:text-foreground relative inline-flex h-[calc(100%-1px)] flex-1 items-center justify-center gap-1.5 rounded-md border border-transparent px-2 py-1 text-sm font-medium whitespace-nowrap transition-all group-data-[orientation=vertical]/tabs:w-full group-data-[orientation=vertical]/tabs:justify-start focus-visible:ring-[3px] focus-visible:outline-1 disabled:pointer-events-none disabled:opacity-50 group-data-[variant=default]/tabs-list:data-[state=active]:shadow-sm group-data-[variant=line]/tabs-list:data-[state=active]:shadow-none [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4","group-data-[variant=line]/tabs-list:bg-transparent group-data-[variant=line]/tabs-list:data-[state=active]:bg-transparent dark:group-data-[variant=line]/tabs-list:data-[state=active]:border-transparent dark:group-data-[variant=line]/tabs-list:data-[state=active]:bg-transparent","data-[state=active]:bg-background dark:data-[state=active]:text-foreground dark:data-[state=active]:border-input dark:data-[state=active]:bg-input/30 data-[state=active]:text-foreground","after:bg-foreground after:absolute after:opacity-0 after:transition-opacity group-data-[orientation=horizontal]/tabs:after:inset-x-0 group-data-[orientation=horizontal]/tabs:after:bottom-[-5px] group-data-[orientation=horizontal]/tabs:after:h-0.5 group-data-[orientation=vertical]/tabs:after:inset-y-0 group-data-[orientation=vertical]/tabs:after:-right-1 group-data-[orientation=vertical]/tabs:after:w-0.5 group-data-[variant=line]/tabs-list:data-[state=active]:after:opacity-100",t),...a})}function L(e){let{className:t,...a}=e;return(0,r.jsx)(C,{"data-slot":"tabs-content",className:(0,I.cn)("flex-1 outline-none",t),...a})}}},e=>{e.O(0,[625,51,458,155,192,344,144,358],()=>e(e.s=3685)),_N_E=e.O()}]);
|
package/dist/web/_next/static/chunks/app/{layout-45d8b9cc84f9443f.js → layout-497d1e93737edeae.js}
RENAMED
|
@@ -1 +1 @@
|
|
|
1
|
-
(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[177],{4874:(e,t,s)=>{"use strict";s.d(t,{ClientProviders:()=>S});var r=s(4130),i=s(7122),a=s(426),n=s(9747),u=s(7991),l=s(5632),o=class extends l.Q{constructor(e={}){super(),this.config=e,this.#e=new Map}#e;build(e,t,s){let r=t.queryKey,i=t.queryHash??(0,a.F$)(r,t),u=this.get(i);return u||(u=new n.X({client:e,queryKey:r,queryHash:i,options:e.defaultQueryOptions(t),state:s,defaultOptions:e.getQueryDefaults(r)}),this.add(u)),u}add(e){this.#e.has(e.queryHash)||(this.#e.set(e.queryHash,e),this.notify({type:"added",query:e}))}remove(e){let t=this.#e.get(e.queryHash);t&&(e.destroy(),t===e&&this.#e.delete(e.queryHash),this.notify({type:"removed",query:e}))}clear(){u.jG.batch(()=>{this.getAll().forEach(e=>{this.remove(e)})})}get(e){return this.#e.get(e)}getAll(){return[...this.#e.values()]}find(e){let t={exact:!0,...e};return this.getAll().find(e=>(0,a.MK)(t,e))}findAll(e={}){let t=this.getAll();return Object.keys(e).length>0?t.filter(t=>(0,a.MK)(e,t)):t}notify(e){u.jG.batch(()=>{this.listeners.forEach(t=>{t(e)})})}onFocus(){u.jG.batch(()=>{this.getAll().forEach(e=>{e.onFocus()})})}onOnline(){u.jG.batch(()=>{this.getAll().forEach(e=>{e.onOnline()})})}},c=s(5094),h=class extends l.Q{constructor(e={}){super(),this.config=e,this.#t=new Set,this.#s=new Map,this.#r=0}#t;#s;#r;build(e,t,s){let r=new c.s({client:e,mutationCache:this,mutationId:++this.#r,options:e.defaultMutationOptions(t),state:s});return this.add(r),r}add(e){this.#t.add(e);let t=d(e);if("string"==typeof t){let s=this.#s.get(t);s?s.push(e):this.#s.set(t,[e])}this.notify({type:"added",mutation:e})}remove(e){if(this.#t.delete(e)){let t=d(e);if("string"==typeof t){let s=this.#s.get(t);if(s)if(s.length>1){let t=s.indexOf(e);-1!==t&&s.splice(t,1)}else s[0]===e&&this.#s.delete(t)}}this.notify({type:"removed",mutation:e})}canRun(e){let t=d(e);if("string"!=typeof t)return!0;{let s=this.#s.get(t),r=s?.find(e=>"pending"===e.state.status);return!r||r===e}}runNext(e){let t=d(e);if("string"!=typeof t)return Promise.resolve();{let s=this.#s.get(t)?.find(t=>t!==e&&t.state.isPaused);return s?.continue()??Promise.resolve()}}clear(){u.jG.batch(()=>{this.#t.forEach(e=>{this.notify({type:"removed",mutation:e})}),this.#t.clear(),this.#s.clear()})}getAll(){return Array.from(this.#t)}find(e){let t={exact:!0,...e};return this.getAll().find(e=>(0,a.nJ)(t,e))}findAll(e={}){return this.getAll().filter(t=>(0,a.nJ)(e,t))}notify(e){u.jG.batch(()=>{this.listeners.forEach(t=>{t(e)})})}resumePausedMutations(){let e=this.getAll().filter(e=>e.state.isPaused);return u.jG.batch(()=>Promise.all(e.map(e=>e.continue().catch(a.lQ))))}};function d(e){return e.options.scope?.id}var f=s(6714),y=s(2201);function p(e){return{onFetch:(t,s)=>{let r=t.options,i=t.fetchOptions?.meta?.fetchMore?.direction,n=t.state.data?.pages||[],u=t.state.data?.pageParams||[],l={pages:[],pageParams:[]},o=0,c=async()=>{let s=!1,c=(0,a.ZM)(t.options,t.fetchOptions),h=async(e,r,i)=>{if(s)return Promise.reject();if(null==r&&e.pages.length)return Promise.resolve(e);let n=(()=>{let e={client:t.client,queryKey:t.queryKey,pageParam:r,direction:i?"backward":"forward",meta:t.options.meta};return(0,a.ox)(e,()=>t.signal,()=>s=!0),e})(),u=await c(n),{maxPages:l}=t.options,o=i?a.ZZ:a.y9;return{pages:o(e.pages,u,l),pageParams:o(e.pageParams,r,l)}};if(i&&n.length){let e="backward"===i,t={pages:n,pageParams:u},s=(e?function(e,{pages:t,pageParams:s}){return t.length>0?e.getPreviousPageParam?.(t[0],t,s[0],s):void 0}:m)(r,t);l=await h(t,s,e)}else{let t=e??n.length;do{let e=0===o?u[0]??r.initialPageParam:m(r,l);if(o>0&&null==e)break;l=await h(l,e),o++}while(o<t)}return l};t.options.persister?t.fetchFn=()=>t.options.persister?.(c,{client:t.client,queryKey:t.queryKey,meta:t.options.meta,signal:t.signal},s):t.fetchFn=c}}}function m(e,{pages:t,pageParams:s}){let r=t.length-1;return t.length>0?e.getNextPageParam(t[r],t,s[r],s):void 0}let g=new class{#i;#a;#n;#u;#l;#o;#c;#h;constructor(e={}){this.#i=e.queryCache||new o,this.#a=e.mutationCache||new h,this.#n=e.defaultOptions||{},this.#u=new Map,this.#l=new Map,this.#o=0}mount(){this.#o++,1===this.#o&&(this.#c=f.m.subscribe(async e=>{e&&(await this.resumePausedMutations(),this.#i.onFocus())}),this.#h=y.t.subscribe(async e=>{e&&(await this.resumePausedMutations(),this.#i.onOnline())}))}unmount(){this.#o--,0===this.#o&&(this.#c?.(),this.#c=void 0,this.#h?.(),this.#h=void 0)}isFetching(e){return this.#i.findAll({...e,fetchStatus:"fetching"}).length}isMutating(e){return this.#a.findAll({...e,status:"pending"}).length}getQueryData(e){let t=this.defaultQueryOptions({queryKey:e});return this.#i.get(t.queryHash)?.state.data}ensureQueryData(e){let t=this.defaultQueryOptions(e),s=this.#i.build(this,t),r=s.state.data;return void 0===r?this.fetchQuery(e):(e.revalidateIfStale&&s.isStaleByTime((0,a.d2)(t.staleTime,s))&&this.prefetchQuery(t),Promise.resolve(r))}getQueriesData(e){return this.#i.findAll(e).map(({queryKey:e,state:t})=>[e,t.data])}setQueryData(e,t,s){let r=this.defaultQueryOptions({queryKey:e}),i=this.#i.get(r.queryHash),n=i?.state.data,u=(0,a.Zw)(t,n);if(void 0!==u)return this.#i.build(this,r).setData(u,{...s,manual:!0})}setQueriesData(e,t,s){return u.jG.batch(()=>this.#i.findAll(e).map(({queryKey:e})=>[e,this.setQueryData(e,t,s)]))}getQueryState(e){let t=this.defaultQueryOptions({queryKey:e});return this.#i.get(t.queryHash)?.state}removeQueries(e){let t=this.#i;u.jG.batch(()=>{t.findAll(e).forEach(e=>{t.remove(e)})})}resetQueries(e,t){let s=this.#i;return u.jG.batch(()=>(s.findAll(e).forEach(e=>{e.reset()}),this.refetchQueries({type:"active",...e},t)))}cancelQueries(e,t={}){let s={revert:!0,...t};return Promise.all(u.jG.batch(()=>this.#i.findAll(e).map(e=>e.cancel(s)))).then(a.lQ).catch(a.lQ)}invalidateQueries(e,t={}){return u.jG.batch(()=>(this.#i.findAll(e).forEach(e=>{e.invalidate()}),e?.refetchType==="none")?Promise.resolve():this.refetchQueries({...e,type:e?.refetchType??e?.type??"active"},t))}refetchQueries(e,t={}){let s={...t,cancelRefetch:t.cancelRefetch??!0};return Promise.all(u.jG.batch(()=>this.#i.findAll(e).filter(e=>!e.isDisabled()&&!e.isStatic()).map(e=>{let t=e.fetch(void 0,s);return s.throwOnError||(t=t.catch(a.lQ)),"paused"===e.state.fetchStatus?Promise.resolve():t}))).then(a.lQ)}fetchQuery(e){let t=this.defaultQueryOptions(e);void 0===t.retry&&(t.retry=!1);let s=this.#i.build(this,t);return s.isStaleByTime((0,a.d2)(t.staleTime,s))?s.fetch(t):Promise.resolve(s.state.data)}prefetchQuery(e){return this.fetchQuery(e).then(a.lQ).catch(a.lQ)}fetchInfiniteQuery(e){return e.behavior=p(e.pages),this.fetchQuery(e)}prefetchInfiniteQuery(e){return this.fetchInfiniteQuery(e).then(a.lQ).catch(a.lQ)}ensureInfiniteQueryData(e){return e.behavior=p(e.pages),this.ensureQueryData(e)}resumePausedMutations(){return y.t.isOnline()?this.#a.resumePausedMutations():Promise.resolve()}getQueryCache(){return this.#i}getMutationCache(){return this.#a}getDefaultOptions(){return this.#n}setDefaultOptions(e){this.#n=e}setQueryDefaults(e,t){this.#u.set((0,a.EN)(e),{queryKey:e,defaultOptions:t})}getQueryDefaults(e){let t=[...this.#u.values()],s={};return t.forEach(t=>{(0,a.Cp)(e,t.queryKey)&&Object.assign(s,t.defaultOptions)}),s}setMutationDefaults(e,t){this.#l.set((0,a.EN)(e),{mutationKey:e,defaultOptions:t})}getMutationDefaults(e){let t=[...this.#l.values()],s={};return t.forEach(t=>{(0,a.Cp)(e,t.mutationKey)&&Object.assign(s,t.defaultOptions)}),s}defaultQueryOptions(e){if(e._defaulted)return e;let t={...this.#n.queries,...this.getQueryDefaults(e.queryKey),...e,_defaulted:!0};return t.queryHash||(t.queryHash=(0,a.F$)(t.queryKey,t)),void 0===t.refetchOnReconnect&&(t.refetchOnReconnect="always"!==t.networkMode),void 0===t.throwOnError&&(t.throwOnError=!!t.suspense),!t.networkMode&&t.persister&&(t.networkMode="offlineFirst"),t.queryFn===a.hT&&(t.enabled=!1),t}defaultMutationOptions(e){return e?._defaulted?e:{...this.#n.mutations,...e?.mutationKey&&this.getMutationDefaults(e.mutationKey),...e,_defaulted:!0}}clear(){this.#i.clear(),this.#a.clear()}}({defaultOptions:{queries:{staleTime:6e4,gcTime:3e5,retry:1,refetchOnWindowFocus:!1}}});var b=s(8838),q=s(4722),v=s(7946),Q=s(3828);let C="jinn-notifications";function O(e){try{localStorage.setItem(C,JSON.stringify(e.slice(0,50)))}catch(e){}}let w=0;var P=s(4723);function j(e){let{children:t}=e,[s,i]=(0,v.useState)([]),[a,n]=(0,v.useState)([]),u=(0,v.useRef)(new Map),l=(0,v.useRef)(!1);(0,v.useEffect)(()=>{i(function(){try{let e=localStorage.getItem(C);if(!e)return[];return JSON.parse(e).slice(0,50)}catch(e){return[]}}())},[]),(0,v.useEffect)(()=>{l.current?O(s):s.length>0&&(l.current=!0)},[s]);let o=(0,v.useCallback)(e=>{n(t=>t.filter(t=>t.id!==e));let t=u.current.get(e);t&&(clearTimeout(t),u.current.delete(e))},[]),c=(0,v.useCallback)((e,t)=>{let s=function(e,t){switch(e){case"session:completed":{let e=t.employee||"Session",s=t.error;if(s)return{type:"error",title:"".concat(e," — Error"),message:s.slice(0,120)};return{type:"success",title:"".concat(e," — Done"),message:"Session completed successfully"}}case"cron:triggered":return{type:"info",title:"Cron Triggered",message:t.name||t.jobId||"Job"};case"cron:reloaded":return{type:"info",title:"Cron Reloaded",message:"Scheduled jobs reloaded"};case"cron:completed":{let e=t.name||t.job||"Job",s=t.error;if(s)return{type:"error",title:"Cron Failed: ".concat(e),message:s.slice(0,120)};return{type:"success",title:"Cron Done: ".concat(e),message:"Scheduled job completed successfully"}}case"slack:message":{let e=t.channel||"",s=t.user||t.userName||"Someone",r=t.text||"";return{type:"info",title:"Slack".concat(e?": ".concat(e):""),message:"".concat(s,": ").concat(r).slice(0,120)}}case"session:started":{let e=t.sessionId||"",s=t.employee||"";return{type:"info",title:"Session Started",message:s?"".concat(s," (").concat(e.slice(0,8),")"):e.slice(0,8)}}default:return null}}(e,t);if(!s)return;let r={...s,id:"n_".concat(Date.now(),"_").concat(++w),timestamp:Date.now(),read:!1};i(e=>[r,...e].slice(0,50)),l.current=!0},[]),h=(0,v.useRef)(c);h.current=c,(0,v.useEffect)(()=>{let e=(0,Q.E)((e,t)=>{h.current(e,t)});return()=>e.close()},[]);let d=(0,v.useCallback)(()=>{i(e=>{let t=e.map(e=>e.read?e:{...e,read:!0});return O(t),t})},[]),f=(0,v.useCallback)(e=>{i(t=>{let s=t.map(t=>t.id===e?{...t,read:!0}:t);return O(s),s})},[]),y=(0,v.useCallback)(()=>{i([]),O([])},[]),p=s.filter(e=>!e.read).length;return(0,r.jsx)(P.V.Provider,{value:{notifications:s,unreadCount:p,toasts:a,pushFromEvent:c,dismissToast:o,markAllRead:d,markRead:f,clearAll:y},children:t})}var D=s(2845),k=s(5465),E=s(8565);function M(){let e=(0,i.jE)(),{subscribe:t}=(0,D.G)(),s=(0,v.useRef)(null),r=(0,v.useRef)(new Set);return(0,v.useEffect)(()=>{let i=t((t,i)=>{switch(t){case"session:started":r.current.add("sessions");break;case"session:completed":case"session:error":case"session:deleted":r.current.add("sessions"),r.current.add("costs"),(null==i?void 0:i.sessionId)&&e.invalidateQueries({queryKey:k.l.sessions.detail(i.sessionId)});break;case"cron:completed":case"cron:error":r.current.add("cron");break;case"skills:changed":r.current.add("skills");break;default:return}s.current&&clearTimeout(s.current),s.current=setTimeout(()=>{for(let t of r.current)switch(t){case"sessions":e.invalidateQueries({queryKey:k.l.sessions.all});break;case"costs":e.invalidateQueries({queryKey:["costs"]});break;case"cron":e.invalidateQueries({queryKey:k.l.cron.all});break;case"skills":e.invalidateQueries({queryKey:k.l.skills.all})}r.current.clear()},500)});return()=>{i(),s.current&&clearTimeout(s.current)}},[t,e]),null}function S(e){let{children:t}=e;return(0,r.jsx)(i.Ht,{client:g,children:(0,r.jsx)(b.N,{children:(0,r.jsx)(E.t,{children:(0,r.jsx)(q.Z6,{children:(0,r.jsxs)(j,{children:[t,(0,r.jsx)(q.Qc,{}),(0,r.jsx)(M,{})]})})})})})}},6787:(e,t,s)=>{Promise.resolve().then(s.bind(s,4874)),Promise.resolve().then(s.t.bind(s,8489,23))},8489:()=>{}},e=>{e.O(0,[930,625,155,344,144,358],()=>e(e.s=6787)),_N_E=e.O()}]);
|
|
1
|
+
(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[177],{5859:(e,t,s)=>{"use strict";s.d(t,{ClientProviders:()=>x});var r=s(4130),i=s(7122),n=s(426),a=s(9747),u=s(7991),l=s(5632),o=class extends l.Q{constructor(e={}){super(),this.config=e,this.#e=new Map}#e;build(e,t,s){let r=t.queryKey,i=t.queryHash??(0,n.F$)(r,t),u=this.get(i);return u||(u=new a.X({client:e,queryKey:r,queryHash:i,options:e.defaultQueryOptions(t),state:s,defaultOptions:e.getQueryDefaults(r)}),this.add(u)),u}add(e){this.#e.has(e.queryHash)||(this.#e.set(e.queryHash,e),this.notify({type:"added",query:e}))}remove(e){let t=this.#e.get(e.queryHash);t&&(e.destroy(),t===e&&this.#e.delete(e.queryHash),this.notify({type:"removed",query:e}))}clear(){u.jG.batch(()=>{this.getAll().forEach(e=>{this.remove(e)})})}get(e){return this.#e.get(e)}getAll(){return[...this.#e.values()]}find(e){let t={exact:!0,...e};return this.getAll().find(e=>(0,n.MK)(t,e))}findAll(e={}){let t=this.getAll();return Object.keys(e).length>0?t.filter(t=>(0,n.MK)(e,t)):t}notify(e){u.jG.batch(()=>{this.listeners.forEach(t=>{t(e)})})}onFocus(){u.jG.batch(()=>{this.getAll().forEach(e=>{e.onFocus()})})}onOnline(){u.jG.batch(()=>{this.getAll().forEach(e=>{e.onOnline()})})}},c=s(5094),h=class extends l.Q{constructor(e={}){super(),this.config=e,this.#t=new Set,this.#s=new Map,this.#r=0}#t;#s;#r;build(e,t,s){let r=new c.s({client:e,mutationCache:this,mutationId:++this.#r,options:e.defaultMutationOptions(t),state:s});return this.add(r),r}add(e){this.#t.add(e);let t=d(e);if("string"==typeof t){let s=this.#s.get(t);s?s.push(e):this.#s.set(t,[e])}this.notify({type:"added",mutation:e})}remove(e){if(this.#t.delete(e)){let t=d(e);if("string"==typeof t){let s=this.#s.get(t);if(s)if(s.length>1){let t=s.indexOf(e);-1!==t&&s.splice(t,1)}else s[0]===e&&this.#s.delete(t)}}this.notify({type:"removed",mutation:e})}canRun(e){let t=d(e);if("string"!=typeof t)return!0;{let s=this.#s.get(t),r=s?.find(e=>"pending"===e.state.status);return!r||r===e}}runNext(e){let t=d(e);if("string"!=typeof t)return Promise.resolve();{let s=this.#s.get(t)?.find(t=>t!==e&&t.state.isPaused);return s?.continue()??Promise.resolve()}}clear(){u.jG.batch(()=>{this.#t.forEach(e=>{this.notify({type:"removed",mutation:e})}),this.#t.clear(),this.#s.clear()})}getAll(){return Array.from(this.#t)}find(e){let t={exact:!0,...e};return this.getAll().find(e=>(0,n.nJ)(t,e))}findAll(e={}){return this.getAll().filter(t=>(0,n.nJ)(e,t))}notify(e){u.jG.batch(()=>{this.listeners.forEach(t=>{t(e)})})}resumePausedMutations(){let e=this.getAll().filter(e=>e.state.isPaused);return u.jG.batch(()=>Promise.all(e.map(e=>e.continue().catch(n.lQ))))}};function d(e){return e.options.scope?.id}var f=s(6714),y=s(2201);function m(e){return{onFetch:(t,s)=>{let r=t.options,i=t.fetchOptions?.meta?.fetchMore?.direction,a=t.state.data?.pages||[],u=t.state.data?.pageParams||[],l={pages:[],pageParams:[]},o=0,c=async()=>{let s=!1,c=(0,n.ZM)(t.options,t.fetchOptions),h=async(e,r,i)=>{if(s)return Promise.reject();if(null==r&&e.pages.length)return Promise.resolve(e);let a=(()=>{let e={client:t.client,queryKey:t.queryKey,pageParam:r,direction:i?"backward":"forward",meta:t.options.meta};return(0,n.ox)(e,()=>t.signal,()=>s=!0),e})(),u=await c(a),{maxPages:l}=t.options,o=i?n.ZZ:n.y9;return{pages:o(e.pages,u,l),pageParams:o(e.pageParams,r,l)}};if(i&&a.length){let e="backward"===i,t={pages:a,pageParams:u},s=(e?function(e,{pages:t,pageParams:s}){return t.length>0?e.getPreviousPageParam?.(t[0],t,s[0],s):void 0}:p)(r,t);l=await h(t,s,e)}else{let t=e??a.length;do{let e=0===o?u[0]??r.initialPageParam:p(r,l);if(o>0&&null==e)break;l=await h(l,e),o++}while(o<t)}return l};t.options.persister?t.fetchFn=()=>t.options.persister?.(c,{client:t.client,queryKey:t.queryKey,meta:t.options.meta,signal:t.signal},s):t.fetchFn=c}}}function p(e,{pages:t,pageParams:s}){let r=t.length-1;return t.length>0?e.getNextPageParam(t[r],t,s[r],s):void 0}let g=new class{#i;#n;#a;#u;#l;#o;#c;#h;constructor(e={}){this.#i=e.queryCache||new o,this.#n=e.mutationCache||new h,this.#a=e.defaultOptions||{},this.#u=new Map,this.#l=new Map,this.#o=0}mount(){this.#o++,1===this.#o&&(this.#c=f.m.subscribe(async e=>{e&&(await this.resumePausedMutations(),this.#i.onFocus())}),this.#h=y.t.subscribe(async e=>{e&&(await this.resumePausedMutations(),this.#i.onOnline())}))}unmount(){this.#o--,0===this.#o&&(this.#c?.(),this.#c=void 0,this.#h?.(),this.#h=void 0)}isFetching(e){return this.#i.findAll({...e,fetchStatus:"fetching"}).length}isMutating(e){return this.#n.findAll({...e,status:"pending"}).length}getQueryData(e){let t=this.defaultQueryOptions({queryKey:e});return this.#i.get(t.queryHash)?.state.data}ensureQueryData(e){let t=this.defaultQueryOptions(e),s=this.#i.build(this,t),r=s.state.data;return void 0===r?this.fetchQuery(e):(e.revalidateIfStale&&s.isStaleByTime((0,n.d2)(t.staleTime,s))&&this.prefetchQuery(t),Promise.resolve(r))}getQueriesData(e){return this.#i.findAll(e).map(({queryKey:e,state:t})=>[e,t.data])}setQueryData(e,t,s){let r=this.defaultQueryOptions({queryKey:e}),i=this.#i.get(r.queryHash),a=i?.state.data,u=(0,n.Zw)(t,a);if(void 0!==u)return this.#i.build(this,r).setData(u,{...s,manual:!0})}setQueriesData(e,t,s){return u.jG.batch(()=>this.#i.findAll(e).map(({queryKey:e})=>[e,this.setQueryData(e,t,s)]))}getQueryState(e){let t=this.defaultQueryOptions({queryKey:e});return this.#i.get(t.queryHash)?.state}removeQueries(e){let t=this.#i;u.jG.batch(()=>{t.findAll(e).forEach(e=>{t.remove(e)})})}resetQueries(e,t){let s=this.#i;return u.jG.batch(()=>(s.findAll(e).forEach(e=>{e.reset()}),this.refetchQueries({type:"active",...e},t)))}cancelQueries(e,t={}){let s={revert:!0,...t};return Promise.all(u.jG.batch(()=>this.#i.findAll(e).map(e=>e.cancel(s)))).then(n.lQ).catch(n.lQ)}invalidateQueries(e,t={}){return u.jG.batch(()=>(this.#i.findAll(e).forEach(e=>{e.invalidate()}),e?.refetchType==="none")?Promise.resolve():this.refetchQueries({...e,type:e?.refetchType??e?.type??"active"},t))}refetchQueries(e,t={}){let s={...t,cancelRefetch:t.cancelRefetch??!0};return Promise.all(u.jG.batch(()=>this.#i.findAll(e).filter(e=>!e.isDisabled()&&!e.isStatic()).map(e=>{let t=e.fetch(void 0,s);return s.throwOnError||(t=t.catch(n.lQ)),"paused"===e.state.fetchStatus?Promise.resolve():t}))).then(n.lQ)}fetchQuery(e){let t=this.defaultQueryOptions(e);void 0===t.retry&&(t.retry=!1);let s=this.#i.build(this,t);return s.isStaleByTime((0,n.d2)(t.staleTime,s))?s.fetch(t):Promise.resolve(s.state.data)}prefetchQuery(e){return this.fetchQuery(e).then(n.lQ).catch(n.lQ)}fetchInfiniteQuery(e){return e.behavior=m(e.pages),this.fetchQuery(e)}prefetchInfiniteQuery(e){return this.fetchInfiniteQuery(e).then(n.lQ).catch(n.lQ)}ensureInfiniteQueryData(e){return e.behavior=m(e.pages),this.ensureQueryData(e)}resumePausedMutations(){return y.t.isOnline()?this.#n.resumePausedMutations():Promise.resolve()}getQueryCache(){return this.#i}getMutationCache(){return this.#n}getDefaultOptions(){return this.#a}setDefaultOptions(e){this.#a=e}setQueryDefaults(e,t){this.#u.set((0,n.EN)(e),{queryKey:e,defaultOptions:t})}getQueryDefaults(e){let t=[...this.#u.values()],s={};return t.forEach(t=>{(0,n.Cp)(e,t.queryKey)&&Object.assign(s,t.defaultOptions)}),s}setMutationDefaults(e,t){this.#l.set((0,n.EN)(e),{mutationKey:e,defaultOptions:t})}getMutationDefaults(e){let t=[...this.#l.values()],s={};return t.forEach(t=>{(0,n.Cp)(e,t.mutationKey)&&Object.assign(s,t.defaultOptions)}),s}defaultQueryOptions(e){if(e._defaulted)return e;let t={...this.#a.queries,...this.getQueryDefaults(e.queryKey),...e,_defaulted:!0};return t.queryHash||(t.queryHash=(0,n.F$)(t.queryKey,t)),void 0===t.refetchOnReconnect&&(t.refetchOnReconnect="always"!==t.networkMode),void 0===t.throwOnError&&(t.throwOnError=!!t.suspense),!t.networkMode&&t.persister&&(t.networkMode="offlineFirst"),t.queryFn===n.hT&&(t.enabled=!1),t}defaultMutationOptions(e){return e?._defaulted?e:{...this.#a.mutations,...e?.mutationKey&&this.getMutationDefaults(e.mutationKey),...e,_defaulted:!0}}clear(){this.#i.clear(),this.#n.clear()}}({defaultOptions:{queries:{staleTime:6e4,gcTime:3e5,retry:1,refetchOnWindowFocus:!1}}});var b=s(8838),q=s(4722),v=s(7946),Q=s(3828);let C="jinn-notifications";function O(e){try{localStorage.setItem(C,JSON.stringify(e.slice(0,50)))}catch(e){}}let w=0;var D=s(4723);function P(e){let{children:t}=e,[s,i]=(0,v.useState)([]),[n,a]=(0,v.useState)([]),u=(0,v.useRef)(new Map),l=(0,v.useRef)(!1);(0,v.useEffect)(()=>{i(function(){try{let e=localStorage.getItem(C);if(!e)return[];return JSON.parse(e).slice(0,50)}catch(e){return[]}}())},[]),(0,v.useEffect)(()=>{l.current?O(s):s.length>0&&(l.current=!0)},[s]);let o=(0,v.useCallback)(e=>{a(t=>t.filter(t=>t.id!==e));let t=u.current.get(e);t&&(clearTimeout(t),u.current.delete(e))},[]),c=(0,v.useCallback)((e,t)=>{let s=function(e,t){switch(e){case"session:completed":{let e=t.employee||"Session",s=t.error;if(s)return{type:"error",title:"".concat(e," — Error"),message:s.slice(0,120)};return{type:"success",title:"".concat(e," — Done"),message:"Session completed successfully"}}case"cron:triggered":return{type:"info",title:"Cron Triggered",message:t.name||t.jobId||"Job"};case"cron:reloaded":return{type:"info",title:"Cron Reloaded",message:"Scheduled jobs reloaded"};case"cron:completed":{let e=t.name||t.job||"Job",s=t.error;if(s)return{type:"error",title:"Cron Failed: ".concat(e),message:s.slice(0,120)};return{type:"success",title:"Cron Done: ".concat(e),message:"Scheduled job completed successfully"}}case"slack:message":{let e=t.channel||"",s=t.user||t.userName||"Someone",r=t.text||"";return{type:"info",title:"Slack".concat(e?": ".concat(e):""),message:"".concat(s,": ").concat(r).slice(0,120)}}case"session:started":{let e=t.sessionId||"",s=t.employee||"";return{type:"info",title:"Session Started",message:s?"".concat(s," (").concat(e.slice(0,8),")"):e.slice(0,8)}}default:return null}}(e,t);if(!s)return;let r={...s,id:"n_".concat(Date.now(),"_").concat(++w),timestamp:Date.now(),read:!1};i(e=>[r,...e].slice(0,50)),l.current=!0},[]),h=(0,v.useRef)(c);h.current=c,(0,v.useEffect)(()=>{let e=(0,Q.E)((e,t)=>{h.current(e,t)});return()=>e.close()},[]);let d=(0,v.useCallback)(()=>{i(e=>{let t=e.map(e=>e.read?e:{...e,read:!0});return O(t),t})},[]),f=(0,v.useCallback)(e=>{i(t=>{let s=t.map(t=>t.id===e?{...t,read:!0}:t);return O(s),s})},[]),y=(0,v.useCallback)(()=>{i([]),O([])},[]),m=s.filter(e=>!e.read).length;return(0,r.jsx)(D.V.Provider,{value:{notifications:s,unreadCount:m,toasts:n,pushFromEvent:c,dismissToast:o,markAllRead:d,markRead:f,clearAll:y},children:t})}var j=s(2845),E=s(5465),k=s(8565);function M(){var e;let{settings:t}=(0,q.t0)(),s=null!=(e=t.portalEmoji)?e:"\uD83E\uDDDE";return(0,v.useEffect)(()=>{let e=document.createElement("canvas");e.width=64,e.height=64;let t=e.getContext("2d");if(!t)return;t.font="52px serif",t.textAlign="center",t.textBaseline="middle",t.fillText(s,32,36);let r=e.toDataURL("image/png"),i=document.querySelector("link[rel='icon']");i||((i=document.createElement("link")).rel="icon",document.head.appendChild(i)),i.type="image/png",i.href=r},[s]),null}function S(){let e=(0,i.jE)(),{subscribe:t}=(0,j.G)(),s=(0,v.useRef)(null),r=(0,v.useRef)(new Set);return(0,v.useEffect)(()=>{let i=t((t,i)=>{switch(t){case"session:started":r.current.add("sessions");break;case"session:completed":case"session:error":case"session:deleted":r.current.add("sessions"),r.current.add("costs"),(null==i?void 0:i.sessionId)&&e.invalidateQueries({queryKey:E.l.sessions.detail(i.sessionId)});break;case"cron:completed":case"cron:error":r.current.add("cron");break;case"skills:changed":r.current.add("skills");break;default:return}s.current&&clearTimeout(s.current),s.current=setTimeout(()=>{for(let t of r.current)switch(t){case"sessions":e.invalidateQueries({queryKey:E.l.sessions.all});break;case"costs":e.invalidateQueries({queryKey:["costs"]});break;case"cron":e.invalidateQueries({queryKey:E.l.cron.all});break;case"skills":e.invalidateQueries({queryKey:E.l.skills.all})}r.current.clear()},500)});return()=>{i(),s.current&&clearTimeout(s.current)}},[t,e]),null}function x(e){let{children:t}=e;return(0,r.jsx)(i.Ht,{client:g,children:(0,r.jsx)(b.N,{children:(0,r.jsx)(k.t,{children:(0,r.jsx)(q.Z6,{children:(0,r.jsxs)(P,{children:[t,(0,r.jsx)(q.Qc,{}),(0,r.jsx)(M,{}),(0,r.jsx)(S,{})]})})})})})}},6787:(e,t,s)=>{Promise.resolve().then(s.bind(s,5859)),Promise.resolve().then(s.t.bind(s,8489,23))},8489:()=>{}},e=>{e.O(0,[930,625,155,344,144,358],()=>e(e.s=6787)),_N_E=e.O()}]);
|