@robzilla1738/agentswarm 0.5.0 → 0.6.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +29 -12
- package/dist/agent.js +2 -1
- package/dist/cli.js +21 -4
- package/dist/config.js +27 -1
- package/dist/executor.js +243 -43
- package/dist/hub.js +69 -3
- package/dist/memory.js +5 -4
- package/dist/pdftext.js +211 -0
- package/dist/prompts.js +23 -15
- package/dist/report.js +37 -0
- package/dist/run.js +8 -0
- package/dist/sandbox.js +11 -0
- package/dist/searchcore.js +55 -2
- package/dist/state.js +34 -6
- package/dist/tools.js +196 -19
- package/dist/util.js +85 -0
- package/dist/webtools.js +145 -15
- package/package.json +1 -1
- package/ui/out/404/index.html +1 -1
- package/ui/out/404.html +1 -1
- package/ui/out/_next/static/chunks/677-721ce1c8b7a6a317.js +1 -0
- package/ui/out/_next/static/chunks/app/run/page-3674e103981703a2.js +1 -0
- package/ui/out/_next/static/chunks/app/settings/page-41a5d8ba43ecfd4a.js +1 -0
- package/ui/out/_next/static/css/{9f7bd82b8e4c762c.css → d95c2ba395730031.css} +1 -1
- package/ui/out/index.html +1 -1
- package/ui/out/index.txt +3 -3
- package/ui/out/run/index.html +1 -1
- package/ui/out/run/index.txt +3 -3
- package/ui/out/settings/index.html +1 -1
- package/ui/out/settings/index.txt +3 -3
- package/ui/out/_next/static/chunks/677-859e8d42add1806b.js +0 -1
- package/ui/out/_next/static/chunks/app/run/page-2420c9e4c963d9b3.js +0 -1
- package/ui/out/_next/static/chunks/app/settings/page-092a6bf42dfde57d.js +0 -1
- /package/ui/out/_next/static/{errjtBR_bKoee8ogLp8xk → 7_pihFubDGD40BCy2ynlr}/_buildManifest.js +0 -0
- /package/ui/out/_next/static/{errjtBR_bKoee8ogLp8xk → 7_pihFubDGD40BCy2ynlr}/_ssgManifest.js +0 -0
package/ui/out/404/index.html
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
<!DOCTYPE html><!--
|
|
1
|
+
<!DOCTYPE html><!--7_pihFubDGD40BCy2ynlr--><html lang="en" class="__variable_73ee6c __variable_3c557b"><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="preload" href="/_next/static/media/4c9affa5bc8f420e-s.p.woff2" as="font" crossorigin="" type="font/woff2"/><link rel="preload" href="/_next/static/media/bb3ef058b751a6ad-s.p.woff2" as="font" crossorigin="" type="font/woff2"/><link rel="stylesheet" href="/_next/static/css/d95c2ba395730031.css" data-precedence="next"/><link rel="preload" as="script" fetchPriority="low" href="/_next/static/chunks/webpack-38639c05c96dbeca.js"/><script src="/_next/static/chunks/4bd1b696-c023c6e3521b1417.js" async=""></script><script src="/_next/static/chunks/255-2aa030c9ba2867e3.js" async=""></script><script src="/_next/static/chunks/main-app-889ed884f8bc78e3.js" async=""></script><meta name="robots" content="noindex"/><meta name="next-size-adjust" content=""/><title>404: This page could not be found.</title><meta name="theme-color" content="#050505"/><title>agentswarm</title><meta name="description" content="A local agent swarm for long-horizon, autonomous work."/><link rel="icon" href="/icon.png?bdc9175d46e1d0aa" type="image/png" sizes="256x256"/><script src="/_next/static/chunks/polyfills-42372ed130431b0a.js" noModule=""></script></head><body><div hidden=""><!--$--><!--/$--></div><script>try{var t=localStorage.getItem("theme");if(t==="light"||t==="dark")document.documentElement.dataset.theme=t}catch(e){}</script><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-38639c05c96dbeca.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[9766,[],\"\"]\n3:I[8924,[],\"\"]\n4:I[4431,[],\"OutletBoundary\"]\n6:I[5278,[],\"AsyncMetadataOutlet\"]\n8:I[4431,[],\"ViewportBoundary\"]\na:I[4431,[],\"MetadataBoundary\"]\nb:\"$Sreact.suspense\"\nd:I[7150,[],\"\"]\n:HL[\"/_next/static/media/4c9affa5bc8f420e-s.p.woff2\",\"font\",{\"crossOrigin\":\"\",\"type\":\"font/woff2\"}]\n:HL[\"/_next/static/media/bb3ef058b751a6ad-s.p.woff2\",\"font\",{\"crossOrigin\":\"\",\"type\":\"font/woff2\"}]\n:HL[\"/_next/static/css/d95c2ba395730031.css\",\"style\"]\n"])</script><script>self.__next_f.push([1,"0:{\"P\":null,\"b\":\"7_pihFubDGD40BCy2ynlr\",\"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/d95c2ba395730031.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}]],[\"$\",\"html\",null,{\"lang\":\"en\",\"className\":\"__variable_73ee6c __variable_3c557b\",\"children\":[\"$\",\"body\",null,{\"children\":[[\"$\",\"script\",null,{\"dangerouslySetInnerHTML\":{\"__html\":\"try{var t=localStorage.getItem(\\\"theme\\\");if(t===\\\"light\\\"||t===\\\"dark\\\")document.documentElement.dataset.theme=t}catch(e){}\"}}],[\"$\",\"$L2\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L3\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":\"$undefined\",\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}]]}]}]]}],{\"children\":[\"/_not-found\",[\"$\",\"$1\",\"c\",{\"children\":[null,[\"$\",\"$L2\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L3\",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,[\"$\",\"$L4\",null,{\"children\":[\"$L5\",[\"$\",\"$L6\",null,{\"promise\":\"$@7\"}]]}]]}],{},null,false]},null,false]},null,false],[\"$\",\"$1\",\"h\",{\"children\":[[\"$\",\"meta\",null,{\"name\":\"robots\",\"content\":\"noindex\"}],[[\"$\",\"$L8\",null,{\"children\":\"$L9\"}],[\"$\",\"meta\",null,{\"name\":\"next-size-adjust\",\"content\":\"\"}]],[\"$\",\"$La\",null,{\"children\":[\"$\",\"div\",null,{\"hidden\":true,\"children\":[\"$\",\"$b\",null,{\"fallback\":null,\"children\":\"$Lc\"}]}]}]]}],false]],\"m\":\"$undefined\",\"G\":[\"$d\",[]],\"s\":false,\"S\":true}\n"])</script><script>self.__next_f.push([1,"9:[[\"$\",\"meta\",\"0\",{\"charSet\":\"utf-8\"}],[\"$\",\"meta\",\"1\",{\"name\":\"viewport\",\"content\":\"width=device-width, initial-scale=1\"}],[\"$\",\"meta\",\"2\",{\"name\":\"theme-color\",\"content\":\"#050505\"}]]\n5:null\n"])</script><script>self.__next_f.push([1,"e:I[622,[],\"IconMark\"]\n7:{\"metadata\":[[\"$\",\"title\",\"0\",{\"children\":\"agentswarm\"}],[\"$\",\"meta\",\"1\",{\"name\":\"description\",\"content\":\"A local agent swarm for long-horizon, autonomous work.\"}],[\"$\",\"link\",\"2\",{\"rel\":\"icon\",\"href\":\"/icon.png?bdc9175d46e1d0aa\",\"type\":\"image/png\",\"sizes\":\"256x256\"}],[\"$\",\"$Le\",\"3\",{}]],\"error\":null,\"digest\":\"$undefined\"}\n"])</script><script>self.__next_f.push([1,"c:\"$7:metadata\"\n"])</script></body></html>
|
package/ui/out/404.html
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
<!DOCTYPE html><!--
|
|
1
|
+
<!DOCTYPE html><!--7_pihFubDGD40BCy2ynlr--><html lang="en" class="__variable_73ee6c __variable_3c557b"><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="preload" href="/_next/static/media/4c9affa5bc8f420e-s.p.woff2" as="font" crossorigin="" type="font/woff2"/><link rel="preload" href="/_next/static/media/bb3ef058b751a6ad-s.p.woff2" as="font" crossorigin="" type="font/woff2"/><link rel="stylesheet" href="/_next/static/css/d95c2ba395730031.css" data-precedence="next"/><link rel="preload" as="script" fetchPriority="low" href="/_next/static/chunks/webpack-38639c05c96dbeca.js"/><script src="/_next/static/chunks/4bd1b696-c023c6e3521b1417.js" async=""></script><script src="/_next/static/chunks/255-2aa030c9ba2867e3.js" async=""></script><script src="/_next/static/chunks/main-app-889ed884f8bc78e3.js" async=""></script><meta name="robots" content="noindex"/><meta name="next-size-adjust" content=""/><title>404: This page could not be found.</title><meta name="theme-color" content="#050505"/><title>agentswarm</title><meta name="description" content="A local agent swarm for long-horizon, autonomous work."/><link rel="icon" href="/icon.png?bdc9175d46e1d0aa" type="image/png" sizes="256x256"/><script src="/_next/static/chunks/polyfills-42372ed130431b0a.js" noModule=""></script></head><body><div hidden=""><!--$--><!--/$--></div><script>try{var t=localStorage.getItem("theme");if(t==="light"||t==="dark")document.documentElement.dataset.theme=t}catch(e){}</script><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-38639c05c96dbeca.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[9766,[],\"\"]\n3:I[8924,[],\"\"]\n4:I[4431,[],\"OutletBoundary\"]\n6:I[5278,[],\"AsyncMetadataOutlet\"]\n8:I[4431,[],\"ViewportBoundary\"]\na:I[4431,[],\"MetadataBoundary\"]\nb:\"$Sreact.suspense\"\nd:I[7150,[],\"\"]\n:HL[\"/_next/static/media/4c9affa5bc8f420e-s.p.woff2\",\"font\",{\"crossOrigin\":\"\",\"type\":\"font/woff2\"}]\n:HL[\"/_next/static/media/bb3ef058b751a6ad-s.p.woff2\",\"font\",{\"crossOrigin\":\"\",\"type\":\"font/woff2\"}]\n:HL[\"/_next/static/css/d95c2ba395730031.css\",\"style\"]\n"])</script><script>self.__next_f.push([1,"0:{\"P\":null,\"b\":\"7_pihFubDGD40BCy2ynlr\",\"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/d95c2ba395730031.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}]],[\"$\",\"html\",null,{\"lang\":\"en\",\"className\":\"__variable_73ee6c __variable_3c557b\",\"children\":[\"$\",\"body\",null,{\"children\":[[\"$\",\"script\",null,{\"dangerouslySetInnerHTML\":{\"__html\":\"try{var t=localStorage.getItem(\\\"theme\\\");if(t===\\\"light\\\"||t===\\\"dark\\\")document.documentElement.dataset.theme=t}catch(e){}\"}}],[\"$\",\"$L2\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L3\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":\"$undefined\",\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}]]}]}]]}],{\"children\":[\"/_not-found\",[\"$\",\"$1\",\"c\",{\"children\":[null,[\"$\",\"$L2\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L3\",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,[\"$\",\"$L4\",null,{\"children\":[\"$L5\",[\"$\",\"$L6\",null,{\"promise\":\"$@7\"}]]}]]}],{},null,false]},null,false]},null,false],[\"$\",\"$1\",\"h\",{\"children\":[[\"$\",\"meta\",null,{\"name\":\"robots\",\"content\":\"noindex\"}],[[\"$\",\"$L8\",null,{\"children\":\"$L9\"}],[\"$\",\"meta\",null,{\"name\":\"next-size-adjust\",\"content\":\"\"}]],[\"$\",\"$La\",null,{\"children\":[\"$\",\"div\",null,{\"hidden\":true,\"children\":[\"$\",\"$b\",null,{\"fallback\":null,\"children\":\"$Lc\"}]}]}]]}],false]],\"m\":\"$undefined\",\"G\":[\"$d\",[]],\"s\":false,\"S\":true}\n"])</script><script>self.__next_f.push([1,"9:[[\"$\",\"meta\",\"0\",{\"charSet\":\"utf-8\"}],[\"$\",\"meta\",\"1\",{\"name\":\"viewport\",\"content\":\"width=device-width, initial-scale=1\"}],[\"$\",\"meta\",\"2\",{\"name\":\"theme-color\",\"content\":\"#050505\"}]]\n5:null\n"])</script><script>self.__next_f.push([1,"e:I[622,[],\"IconMark\"]\n7:{\"metadata\":[[\"$\",\"title\",\"0\",{\"children\":\"agentswarm\"}],[\"$\",\"meta\",\"1\",{\"name\":\"description\",\"content\":\"A local agent swarm for long-horizon, autonomous work.\"}],[\"$\",\"link\",\"2\",{\"rel\":\"icon\",\"href\":\"/icon.png?bdc9175d46e1d0aa\",\"type\":\"image/png\",\"sizes\":\"256x256\"}],[\"$\",\"$Le\",\"3\",{}]],\"error\":null,\"digest\":\"$undefined\"}\n"])</script><script>self.__next_f.push([1,"c:\"$7:metadata\"\n"])</script></body></html>
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[677],{830:(t,e,n)=>{n.d(e,{V:()=>u});var a=n(5155),s=n(2619),r=n.n(s),i=n(2115),o=n(7621),l=n(6420);function c(){let[,t]=(0,i.useState)(0);return(0,a.jsx)("button",{className:"btn btn-ghost btn-sm",title:"Toggle light / dark","aria-label":"Toggle color theme",onClick:()=>{let e="light"===(()=>{if("undefined"==typeof document)return"dark";let t=document.documentElement.dataset.theme;return"light"===t||"dark"===t?t:window.matchMedia("(prefers-color-scheme: light)").matches?"light":"dark"})()?"dark":"light";document.documentElement.dataset.theme=e;try{localStorage.setItem("theme",e)}catch(t){}t(t=>t+1)},children:"◐"})}function u(t){let{right:e,hideLogo:n}=t,[s,u]=(0,i.useState)(null),[d,h]=(0,i.useState)(!0);return(0,i.useEffect)(()=>{let t=!0,e=()=>o.F.health().then(e=>t&&(u(e),h(!0))).catch(()=>t&&h(!1));e();let n=setInterval(e,5e3);return()=>{t=!1,clearInterval(n)}},[]),(0,a.jsxs)("header",{className:"sticky top-0 z-40 flex items-center justify-between px-5 sm:px-8 h-14",style:{background:"color-mix(in oklab, var(--color-bg) 82%, transparent)",backdropFilter:"blur(14px)"},children:[n?(0,a.jsx)("span",{}):(0,a.jsx)(l.gu,{}),(0,a.jsxs)("div",{className:"flex items-center gap-3",children:[!d&&(0,a.jsx)("span",{className:"chip chip-solid",children:"hub offline"}),d&&s&&!s.apiKey&&(0,a.jsx)(r(),{href:"/settings",className:"chip text-ink",style:{borderColor:"rgb(var(--hi) / 0.4)"},children:"no api key"}),e,(0,a.jsx)(c,{}),(0,a.jsx)(r(),{href:"/settings",className:"btn btn-ghost btn-sm",children:"Settings"})]})]})}},4643:(t,e,n)=>{function a(t,e){if(!t.startsWith("/")&&!/^[A-Za-z]:\\/.test(t))return t;let n=t.replace(/^.*?\/runs\/run_[a-z0-9]+\/workspace\/?/,"");if(n!==t)return n||"workspace/";if(e&&t.startsWith(e+"/"))return t.slice(e.length+1);if(e&&t===e)return".";let a=t.split("/").filter(Boolean);return a.length<=2?t:"…/"+a.slice(-2).join("/")}function s(t,e){let n=t.replace(/\s+/g," ").trim(),s=n.match(/ENOENT[^']*'([^']*)'/);if(s)return"file not found: ".concat(a(s[1],e));if(/ENOENT/.test(n))return"file not found";if(/EACCES|EPERM/.test(n))return"permission denied";if(/ETIMEDOUT|timed? ?out/i.test(n))return"timed out";if(/EEXIST/.test(n))return"already exists";if(/EISDIR/.test(n))return"path is a directory";if(/ENOTDIR/.test(n))return"path is not a directory";let r=n.match(/exit(?:ed)?(?: with)? code (\d+)/i);if(r)return"exited with code ".concat(r[1]);let i=n.replace(/^(ERROR|Error)[:\s]+/g,"").trim();return i.length>120?i.slice(0,117)+"…":i||"failed"}n.d(e,{AA:()=>s,XJ:()=>i,_1:()=>a});let r=new Set(["read_file","list_dir","write_file","replace_in_file","save_artifact"]);function i(t){let e=[];for(let s of t){var n,a;let t=e[e.length-1];if(!("result"===s.kind&&s.ok&&(null==t?void 0:t.kind)==="tool"&&t.name===s.name&&t.taskId===s.taskId&&r.has(null!=(n=s.name)?n:""))){if("tool"===s.kind&&(null==t?void 0:t.kind)==="tool"&&t.name===s.name&&t.taskId===s.taskId){e[e.length-1]={...s,id:t.id,count:(null!=(a=t.count)?a:1)+1};continue}e.push(s)}}return e}},6168:(t,e,n)=>{n.d(e,{UK:()=>m,cB:()=>g,Xt:()=>p,Iq:()=>f});var a=n(2115),s=n(7621),r=n(4643);let i={"deepseek-v4-flash":{inMiss:.14,inHit:.0028,out:.28},"deepseek-v4-pro":{inMiss:.435,inHit:.003625,out:.87},"deepseek-chat":{inMiss:.14,inHit:.0028,out:.28},"deepseek-reasoner":{inMiss:.14,inHit:.0028,out:.28}};function o(){return{meta:null,status:"planning",statusReason:"",tasks:new Map,taskOrder:[],agents:new Map,notes:[],conductorLog:[],operatorNotes:[],activity:[],usage:{promptTokens:0,completionTokens:0,cacheHitTokens:0,cacheMissTokens:0},cost:0,budgetSeries:[],planUpdatedAt:0,planExcerpt:"",lastSeq:0,lastT:0}}function l(t,e){var n,a,s;let r=t.usage.promptTokens+t.usage.completionTokens,i=null!=(s=null==(a=t.meta)||null==(n=a.options)?void 0:n.maxTokens)?s:0,o=i>0?Math.max(2e3,.005*i):2e3,l=t.budgetSeries[t.budgetSeries.length-1];if(l&&r-l.tokens<o){l.t=e,l.tokens=r,l.cost=t.cost;return}t.budgetSeries.push({t:e,tokens:r,cost:t.cost}),t.budgetSeries.length>600&&(t.budgetSeries=t.budgetSeries.filter((e,n)=>n%2==0||n===t.budgetSeries.length-1))}function c(t,e){return t.length<=e?t:t.slice(t.length-e)}function u(t,e){t.activity.push(e),t.activity.length>260&&t.activity.splice(0,t.activity.length-260)}function d(t,e,n){var a,s,i,o,l,c,u,d;if(!e||"object"!=typeof e)return"";switch(t){case"shell":return String(null!=(a=e.command)?a:"");case"read_file":case"write_file":case"replace_in_file":case"save_artifact":return(0,r._1)(String(null!=(i=null!=(s=e.path)?s:e.name)?i:""),n);case"web_search":return String(null!=(o=e.query)?o:"");case"fetch_url":return String(null!=(l=e.url)?l:"");case"list_dir":return(0,r._1)(String(null!=(c=e.path)?c:"."),n);case"note":return String(null!=(u=e.text)?u:"");case"spawn_tasks":{let t=Array.isArray(e.tasks)?e.tasks:[];return"".concat(t.length," task(s): ")+t.map(t=>t.title).filter(Boolean).slice(0,4).join(", ")}case"report":return String(null!=(d=e.status)?d:"");default:return Object.values(e).map(String).join(" ").slice(0,120)}}let h=["done","failed","cancelled"];function p(t){let e=(0,a.useRef)(o()),[n,p]=(0,a.useState)(null),[f,g]=(0,a.useState)(!1),[m,k]=(0,a.useState)(null),x=(0,a.useRef)(!1);return(0,a.useEffect)(()=>{if(!t)return;e.current=o(),p(null),k(null);let n=!1,a=null,f=null,m=()=>{x.current&&(x.current=!1,p(function(t){let e=t.taskOrder.map(e=>t.tasks.get(e)).filter(Boolean),n=[...t.agents.values()];return{meta:t.meta,status:t.status,statusReason:t.statusReason,tasks:e,agents:n,activeAgents:n.filter(t=>"running"===t.status),notes:t.notes,conductorLog:t.conductorLog,operatorNotes:t.operatorNotes,activity:t.activity,usage:t.usage,cost:t.cost,budgetSeries:t.budgetSeries,planUpdatedAt:t.planUpdatedAt,finalSummary:t.finalSummary,finalReportPath:t.finalReportPath,lastSeq:t.lastSeq,updatedAt:t.lastT}}(e.current)))},y=setInterval(m,120),v=t=>{!function(t,e){var n,a,s,o,h,p,f,g,m,k,x,y,v,b,S,w,T;if(!(e.seq<=t.lastSeq)||"run.created"===e.type){if(t.lastSeq=Math.max(t.lastSeq,e.seq),"number"==typeof e.t&&(t.lastT=Math.max(t.lastT,e.t)),"string"==typeof e.teamId){if("usage"===e.type){let n=e.usage;t.usage={promptTokens:t.usage.promptTokens+n.promptTokens,completionTokens:t.usage.completionTokens+n.completionTokens,cacheHitTokens:t.usage.cacheHitTokens+n.cacheHitTokens,cacheMissTokens:t.usage.cacheMissTokens+n.cacheMissTokens},"number"==typeof e.cost&&Number.isFinite(e.cost)&&(t.cost=e.cost),l(t,e.t)}else"tool.call"===e.type?u(t,{id:"t".concat(e.seq),t:e.t,agentId:e.agentId,taskId:e.teamId,kind:"tool",name:e.name,text:d(e.name,e.args,null==(n=t.meta)?void 0:n.cwd)}):"note.added"===e.type&&(t.notes.push({t:e.t,taskId:e.taskId,agentId:e.agentId,key:e.key,kind:e.kind,text:e.text,url:"string"==typeof e.url?e.url:void 0}),t.notes.length>500&&t.notes.splice(0,t.notes.length-500));return}switch(e.type){case"run.created":t.meta=e.meta;break;case"run.status":t.status=e.status,e.reason&&(t.statusReason=String(e.reason));break;case"run.resumed":for(let n of Array.isArray(e.resets)?e.resets:[]){let e=t.tasks.get(n);e&&(e.status="pending",e.startedAt=void 0,e.endedAt=void 0,t.tasks.set(n,{...e}))}for(let n of t.agents.values())"running"===n.status&&(n.status="done",n.endedAt=e.t,t.agents.set(n.id,{...n}));t.statusReason="";break;case"task.created":{let n=e.task;t.tasks.has(n.id)||t.taskOrder.push(n.id),t.tasks.set(n.id,{...n}),u(t,{id:"c".concat(e.seq),t:e.t,agentId:"",taskId:n.id,kind:"spawn",text:"".concat(n.id," created \xb7 ").concat(n.title)});break}case"task.status":{let n=t.tasks.get(e.taskId);n&&(n.status=e.status,"number"==typeof e.attempt&&(n.attempt=e.attempt),"running"!==e.status||n.startedAt||(n.startedAt=e.t),["done","failed","blocked"].includes(String(e.status))&&(n.endedAt=e.t),e.reason&&(n.error=String(e.reason)),t.tasks.set(n.id,{...n}));break}case"task.report":{let n=t.tasks.get(e.taskId);n&&(n.report=e.report,n.reportStatus=e.status,n.artifacts=null!=(a=e.artifacts)?a:n.artifacts,Array.isArray(e.keyFacts)&&(n.keyFacts=e.keyFacts),Array.isArray(e.openQuestions)&&(n.openQuestions=e.openQuestions),Array.isArray(e.filesTouched)&&(n.filesTouched=e.filesTouched),Array.isArray(e.sources)&&(n.sources=e.sources),t.tasks.set(n.id,{...n}),u(t,{id:"r".concat(e.seq),t:e.t,agentId:"",taskId:n.id,kind:"report",text:"".concat(n.id," reported (").concat(e.status,")")}));break}case"verify.result":{let n=t.tasks.get(e.taskId);n&&(n.feedback=e.feedback,t.tasks.set(n.id,{...n}));break}case"agent.spawned":t.agents.set(e.agentId,{id:e.agentId,taskId:e.taskId,role:null!=(s=e.role)?s:"agent",model:null!=(o=e.model)?o:"",purpose:null!=(h=e.purpose)?h:"",status:"running",steps:0,startedAt:e.t,lastText:"",lastThink:""});break;case"agent.delta":{let n=t.agents.get(e.agentId);n&&("text"===e.channel?n.lastText=c(n.lastText+e.text,4e3):n.lastThink=c(n.lastThink+e.text,4e3),t.agents.set(n.id,{...n}));break}case"agent.done":{let n=t.agents.get(e.agentId);n&&(n.status="done",n.endedAt=e.t,n.steps=null!=(p=e.steps)?p:n.steps,t.agents.set(n.id,{...n}));break}case"tool.call":{let n=t.agents.get(e.agentId);n&&(n.lastTool=e.name,n.steps++,t.agents.set(n.id,{...n})),u(t,{id:"t".concat(e.seq),t:e.t,agentId:e.agentId,taskId:e.taskId,kind:"tool",name:e.name,text:d(e.name,e.args,null==(f=t.meta)?void 0:f.cwd)});break}case"tool.result":u(t,{id:"x".concat(e.seq),t:e.t,agentId:e.agentId,taskId:e.taskId,kind:"result",name:e.name,ok:e.ok,text:e.ok?String(null!=(m=e.summary)?m:""):(0,r.AA)(String(null!=(k=e.summary)?k:""),null==(g=t.meta)?void 0:g.cwd)});break;case"task.checkpoint":{let n=t.tasks.get(e.taskId);n&&(n.lastCheckpoint=e.summary,t.tasks.set(n.id,{...n}));break}case"team.created":{let n=t.tasks.get(e.taskId);n&&(n.team=!0,t.tasks.set(n.id,{...n})),u(t,{id:"tm".concat(e.seq),t:e.t,agentId:"",taskId:null!=(x=e.taskId)?x:"",kind:"spawn",text:"".concat(e.taskId," runs as a sub-swarm (").concat(null!=(y=e.maxWorkers)?y:"?"," workers)")});break}case"note.added":{let n={t:e.t,taskId:e.taskId,agentId:e.agentId,key:e.key,kind:e.kind,text:e.text,url:"string"==typeof e.url?e.url:void 0};t.notes.push(n),t.notes.length>500&&t.notes.splice(0,t.notes.length-500),u(t,{id:"n".concat(e.seq),t:e.t,agentId:null!=(v=e.agentId)?v:"",taskId:null!=(b=e.taskId)?b:"",kind:"note",text:(n.key?"[".concat(n.key,"] "):"")+n.text});break}case"conductor.say":t.conductorLog.push({t:e.t,text:e.text}),t.conductorLog.length>200&&t.conductorLog.splice(0,t.conductorLog.length-200);break;case"operator.note":t.operatorNotes.push({t:e.t,text:e.text,consumed:!1});break;case"operator.note.consumed":{let e=t.operatorNotes.findIndex(t=>!t.consumed);e>=0&&(t.operatorNotes[e].consumed=!0);break}case"usage":{let n=e.usage;if(t.usage={promptTokens:t.usage.promptTokens+n.promptTokens,completionTokens:t.usage.completionTokens+n.completionTokens,cacheHitTokens:t.usage.cacheHitTokens+n.cacheHitTokens,cacheMissTokens:t.usage.cacheMissTokens+n.cacheMissTokens},"number"==typeof e.cost&&Number.isFinite(e.cost))t.cost=e.cost;else{let a=null!=(w=i[null!=(S=e.model)?S:""])?w:{inMiss:0,inHit:0,out:0},s=n.cacheMissTokens||Math.max(0,n.promptTokens-n.cacheHitTokens);t.cost+=(s*a.inMiss+n.cacheHitTokens*a.inHit+n.completionTokens*a.out)/1e6}l(t,e.t);break}case"plan.updated":t.planUpdatedAt=e.t,t.planExcerpt=String(null!=(T=e.excerpt)?T:"");break;case"run.final":t.finalSummary=e.summary,t.finalReportPath=e.reportPath}}}(e.current,t),x.current=!0,h.includes(e.current.status)&&setTimeout(m,160)},b=()=>{if(f)return;let n=async()=>{try{let n=e.current.lastSeq,{events:a,live:r}=await s.F.events(t,n);for(let t of a)v(t);g(!0),k(r),!r&&h.includes(e.current.status)&&f&&(clearInterval(f),f=null)}catch(t){g(!1)}};n(),f=setInterval(n,1200)};return"undefined"!=typeof EventSource?(()=>{try{a=new EventSource(s.F.streamUrl(t))}catch(t){b();return}a.onopen=()=>g(!0),a.onmessage=t=>{try{v(JSON.parse(t.data))}catch(t){}},a.addEventListener("live",t=>{try{k(!!JSON.parse(t.data).live)}catch(t){}}),a.onerror=()=>{if(g(!1),h.includes(e.current.status)){null==a||a.close();return}f||n||b()}})():b(),()=>{n=!0,clearInterval(y),f&&clearInterval(f),null==a||a.close()}},[t]),{data:n,connected:f,engineLive:m}}function f(){let t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:2500,[e,n]=(0,a.useState)([]),[r,i]=(0,a.useState)(!0),[o,l]=(0,a.useState)(null),[c,u]=(0,a.useState)(0);return(0,a.useEffect)(()=>{let e=!0,a=async()=>{try{let{runs:t}=await s.F.listRuns();e&&(n(t),l(null))}catch(t){e&&l((null==t?void 0:t.message)||"hub unreachable")}finally{e&&i(!1)}};a();let r=setInterval(a,t);return()=>{e=!1,clearInterval(r)}},[t,c]),{runs:e,loading:r,error:o,refresh:()=>u(t=>t+1)}}function g(){let t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:1e3,[e,n]=(0,a.useState)(()=>Date.now());return(0,a.useEffect)(()=>{let e=setInterval(()=>n(Date.now()),t);return()=>clearInterval(e)},[t]),e}function m(){let[t,e]=(0,a.useState)(null),[n,r]=(0,a.useState)(null),i=(0,a.useMemo)(()=>async()=>{try{e(await s.F.getConfig()),r(null)}catch(t){r((null==t?void 0:t.message)||"could not load config")}},[]);return(0,a.useEffect)(()=>{i()},[i]),{config:t,setConfig:e,error:n,reload:i}}},6420:(t,e,n)=>{n.d(e,{Md:()=>u,OQ:()=>d,OW:()=>k,Wh:()=>g,gu:()=>p,i8:()=>y,jT:()=>m,md:()=>f,pF:()=>h,pp:()=>v,si:()=>b,y$:()=>x});var a=n(5155),s=n(2619),r=n.n(s),i=n(2115),o=n(6504),l=n(5459),c=n(7e3);function u(t){let{children:e,compact:n,dim:s}=t;return(0,a.jsx)("div",{className:"prose-report".concat(n?" prose-compact":"").concat(s?" prose-dim":""),children:(0,a.jsx)(o.oz,{remarkPlugins:[l.A],children:e})})}function d(t){let{children:e,lines:n=3}=t,[s,r]=(0,i.useState)(!1),[o,l]=(0,i.useState)(!1),c=(0,i.useRef)(null),u="".concat(Math.round(1.55*n*10)/10,"em");return(0,i.useLayoutEffect)(()=>{let t=c.current;if(!t)return;let e=()=>l(t.scrollHeight>t.clientHeight+2);e();let n=new ResizeObserver(e);return n.observe(t),()=>n.disconnect()},[e,s]),(0,a.jsxs)("div",{children:[(0,a.jsx)("div",{ref:c,className:!s&&o?"clamp-fade":void 0,style:s?void 0:{maxHeight:u,overflow:"hidden"},children:e}),(o||s)&&(0,a.jsx)("button",{onClick:()=>r(t=>!t),className:"text-2xs mt-1 text-ink-faint hover:text-ink transition-colors",children:s?"Show less ▴":"Show more ▾"})]})}function h(t){let{size:e=30}=t;return(0,a.jsx)("img",{src:"/swarm-mark.png",alt:"","aria-hidden":!0,className:"shrink-0 select-none",style:{height:e,width:"auto",filter:"var(--logo-filter)"},draggable:!1})}function p(t){let{small:e}=t;return(0,a.jsxs)(r(),{href:"/",className:"flex items-center gap-2.5",children:[(0,a.jsx)(h,{size:e?24:28}),(0,a.jsx)("span",{className:"font-display",style:{fontSize:e?14:15},children:"agentswarm"})]})}function f(t){let{status:e,size:n=8,pulse:s}=t,r=(0,c.ST)(e),i=null!=s?s:["running","planning","synthesizing","verifying"].includes(e);return(0,a.jsxs)("span",{className:"relative inline-flex",style:{width:n,height:n},children:[i&&(0,a.jsx)("span",{className:"absolute inset-0 rounded-full animate-ping",style:{background:r,opacity:.4}}),(0,a.jsx)("span",{className:"relative rounded-full",style:{width:n,height:n,background:r}})]})}function g(t){let{status:e}=t;if("failed"===e)return(0,a.jsx)("span",{className:"chip chip-solid",children:"✕ failed"});let n=(0,c.ST)(e);return(0,a.jsxs)("span",{className:"chip",style:{color:n,borderColor:"color-mix(in oklab, ".concat(n," 35%, var(--color-border))"),background:"color-mix(in oklab, ".concat(n," 7%, transparent)")},children:[(0,a.jsx)(f,{status:e,size:6}),e]})}function m(t){let{spent:e,cap:n,height:s=5}=t,r=n>0?Math.min(100,e/n*100):0;return(0,a.jsx)("div",{className:"w-full rounded-full overflow-hidden",style:{height:s,background:"rgb(var(--hi) / 0.07)"},children:(0,a.jsx)("div",{className:"h-full rounded-full bg-ink transition-all duration-500",style:{width:"".concat(r,"%"),animation:r>85?"var(--animate-pulse-soft)":void 0}})})}function k(t){let{points:e,width:n=120,height:s=26}=t;if(e.length<2)return null;let r=Math.max(...e),i=Math.min(...e),o=r-i||1,l=n/(e.length-1),c=t=>s-2-(t-i)/o*(s-4),u=e.map((t,e)=>"".concat(0===e?"M":"L").concat((e*l).toFixed(1),",").concat(c(t).toFixed(1))).join(" "),d="".concat(u," L").concat(n,",").concat(s," L0,").concat(s," Z");return(0,a.jsxs)("svg",{width:n,height:s,viewBox:"0 0 ".concat(n," ").concat(s),className:"block","aria-hidden":!0,children:[(0,a.jsx)("path",{d:d,fill:"rgb(var(--hi) / 0.06)",stroke:"none"}),(0,a.jsx)("path",{d:u,fill:"none",stroke:"currentColor",strokeWidth:"1.4",opacity:"0.65"}),(0,a.jsx)("circle",{cx:n,cy:c(e[e.length-1]),r:"2",fill:"currentColor",opacity:"0.9"})]})}function x(t){let{size:e=14,dark:n}=t;return(0,a.jsx)("span",{className:"inline-block rounded-full animate-spin",style:{width:e,height:e,border:n?"1.5px solid color-mix(in srgb, var(--color-bg) 25%, transparent)":"1.5px solid rgb(var(--hi) / 0.18)",borderTopColor:n?"var(--color-bg)":"var(--ink-hi)"}})}function y(t){let{text:e,label:n="Copy"}=t,[s,r]=(0,i.useState)(!1);return(0,a.jsx)("button",{className:"btn btn-sm",onClick:async()=>{try{await navigator.clipboard.writeText("function"==typeof e?e():e),r(!0),setTimeout(()=>r(!1),1500)}catch(t){}},children:s?"Copied ✓":n})}function v(t){let{glyph:e,title:n,sub:s}=t;return(0,a.jsxs)("div",{className:"flex flex-col items-center justify-center py-14 px-6 text-center",children:[(0,a.jsx)("div",{className:"glyph mb-4",style:{width:44,height:44,fontSize:17},children:e}),(0,a.jsx)("div",{className:"font-semibold text-sm text-ink-dim",children:n}),s&&(0,a.jsx)("div",{className:"text-xs mt-1.5 max-w-[340px] leading-relaxed text-ink-faint",children:s})]})}function b(t){var e;let{name:n}=t;return(0,a.jsx)("span",{className:"mono text-ink-faint",children:null!=(e=({shell:"❯",read_file:"▤",write_file:"✎",replace_in_file:"✎",list_dir:"▸",web_search:"⌕",fetch_url:"↓",note:"✦",save_artifact:"↧",report:"✓",spawn_tasks:"⊕",verdict:"◈",submit_final:"■",wait:"∥",finish:"▣"})[null!=n?n:""])?e:"\xb7"})}},7e3:(t,e,n)=>{function a(t){return t?t>=1e9?(t/1e9).toFixed(2)+"B":t>=1e6?(t/1e6).toFixed(2)+"M":t>=1e3?(t/1e3).toFixed(1)+"K":String(Math.round(t)):"0"}function s(t){return t?t<.01?"<$0.01":t<1?"$"+t.toFixed(3):"$"+t.toFixed(2):"$0.00"}function r(t){return t<1024?t+" B":t<1048576?(t/1024).toFixed(1)+" KB":(t/1024/1024).toFixed(1)+" MB"}function i(t){let e=Math.max(0,Math.round(t/1e3));if(e<60)return"".concat(e,"s");let n=Math.floor(e/60);if(n<60)return"".concat(n,"m ").concat(e%60,"s");let a=Math.floor(n/60);return"".concat(a,"h ").concat(n%60,"m")}function o(t,e){let n=Math.max(0,Math.round((e-t)/1e3));if(n<5)return"just now";if(n<60)return"".concat(n,"s ago");let a=Math.floor(n/60);if(a<60)return"".concat(a,"m ago");let s=Math.floor(a/60);return s<24?"".concat(s,"h ago"):"".concat(Math.floor(s/24),"d ago")}function l(t){return new Date(t).toLocaleTimeString([],{hour:"2-digit",minute:"2-digit",second:"2-digit"})}function c(t){return new Date(t).toLocaleTimeString([],{hour:"2-digit",minute:"2-digit",hour12:!1})}n.d(e,{ME:()=>l,MZ:()=>c,S8:()=>s,ST:()=>d,nc:()=>i,rB:()=>o,yj:()=>a,zi:()=>r});let u={pending:"var(--color-ink-faint)",running:"var(--ink-hi)",verifying:"var(--status-warm)",done:"var(--color-ink-dim)",failed:"var(--ink-hi)",blocked:"var(--status-cool)",planning:"var(--ink-hi)",synthesizing:"var(--status-warm)",cancelled:"var(--color-ink-dim)"};function d(t){var e;return null!=(e=u[t])?e:"var(--color-ink-dim)"}},7621:(t,e,n)=>{n.d(e,{F:()=>o});var a=n(5704);function s(){let t=a.env.NEXT_PUBLIC_HUB;if(t)return t.replace(/\/+$/,"");let{protocol:e,hostname:n,port:s}=window.location;return"7780"===s?"".concat(e,"//").concat(n,":7777"):""}async function r(t){let e=await fetch(s()+t,{cache:"no-store"});if(!e.ok)throw Error("".concat(e.status," ").concat((await e.text().catch(()=>"")).slice(0,200)));return e.json()}async function i(t,e){let n=await fetch(s()+t,{method:"POST",headers:{"content-type":"application/json"},body:JSON.stringify(e)});if(!n.ok){let t=await n.text().catch(()=>""),e=t;try{e=JSON.parse(t).error||t}catch(t){}throw Error(e||"".concat(n.status))}return n.json()}let o={health:()=>r("/api/health"),getConfig:()=>r("/api/config"),setConfig:t=>i("/api/config",t),models:()=>r("/api/models"),validate:()=>r("/api/validate"),sandboxTest:t=>i("/api/sandbox/test",t?{runtime:t}:{}),searchTest:()=>i("/api/search/test",{}),crawlTest:()=>i("/api/crawl/test",{}),listDirs:t=>r("/api/fs/dirs".concat(t?"?path=".concat(encodeURIComponent(t)):"")),listRuns:()=>r("/api/runs"),createRun:t=>i("/api/runs",t),getRun:t=>r("/api/runs/".concat(t)),events:(t,e)=>r("/api/runs/".concat(t,"/events?since=").concat(e)),note:(t,e)=>i("/api/runs/".concat(t,"/note"),{text:e}),cancel:t=>i("/api/runs/".concat(t,"/cancel"),{}),resume:t=>i("/api/runs/".concat(t,"/resume"),{}),deleteRun:async t=>{let e=await fetch(s()+"/api/runs/".concat(t),{method:"DELETE"});if(!e.ok){let t=await e.text().catch(()=>""),n=t;try{n=JSON.parse(t).error||t}catch(t){}throw Error(n||"".concat(e.status))}},artifacts:t=>r("/api/runs/".concat(t,"/artifacts")),fetchPlan:async t=>{let e=await fetch(s()+"/api/runs/".concat(t,"/plan"),{cache:"no-store"});return e.ok?e.text():null},artifactUrl:(t,e)=>s()+"/api/runs/".concat(t,"/artifacts/").concat(encodeURIComponent(e)),reportUrl:t=>s()+"/api/runs/".concat(t,"/report"),streamUrl:t=>s()+"/api/runs/".concat(t,"/stream")}}}]);
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[64],{63:(e,t,s)=>{"use strict";var n=s(7260);s.o(n,"useRouter")&&s.d(t,{useRouter:function(){return n.useRouter}}),s.o(n,"useSearchParams")&&s.d(t,{useSearchParams:function(){return n.useSearchParams}})},4218:(e,t,s)=>{Promise.resolve().then(s.bind(s,5182))},5182:(e,t,s)=>{"use strict";s.r(t),s.d(t,{default:()=>X});var n=s(5155),a=s(2619),i=s.n(a),l=s(63),r=s(2115),c=s(6504),d=s(5459),o=s(7621),x=s(7e3),m=s(6420);function h(e){let{id:t,hasFinal:s,live:a}=e,[i,l]=(0,r.useState)(null),[h,u]=(0,r.useState)([]),[f,j]=(0,r.useState)(!0),[g,k]=(0,r.useState)(null),[b,v]=(0,r.useState)(0);return((0,r.useEffect)(()=>{let e=!0;return j(!0),k(null),Promise.all([fetch(o.F.reportUrl(t)).then(e=>e.ok?e.text():404===e.status?null:Promise.reject(Error("HTTP ".concat(e.status)))),o.F.artifacts(t).then(e=>e.artifacts)]).then(t=>{let[s,n]=t;e&&(l(s),u(n),j(!1))}).catch(t=>{e&&(k((null==t?void 0:t.message)||"request failed"),j(!1))}),()=>{e=!1}},[t,s,b]),f)?(0,n.jsxs)("div",{className:"panel p-10 flex items-center justify-center gap-3 text-ink-faint",children:[(0,n.jsx)(m.y$,{})," loading report…"]}):g?(0,n.jsxs)("div",{className:"panel",children:[(0,n.jsx)(m.pp,{glyph:"⚠",title:"Couldn't load the report",sub:"The hub didn't answer (".concat(g,"). Check that swarm serve is still running, then retry.")}),(0,n.jsx)("div",{className:"flex justify-center pb-8 -mt-2",children:(0,n.jsx)("button",{className:"btn btn-sm",onClick:()=>v(e=>e+1),children:"Retry"})})]}):(0,n.jsxs)("div",{className:"space-y-4",children:[(0,n.jsx)("div",{className:"panel overflow-hidden",children:i?(0,n.jsxs)(n.Fragment,{children:[(0,n.jsxs)("div",{className:"flex items-center justify-between gap-3 px-5 sm:px-7 py-3 border-b border-border-soft",style:{background:"rgb(var(--hi) / 0.015)"},children:[(0,n.jsx)("span",{className:"label",children:"Final report"}),(0,n.jsxs)("div",{className:"flex items-center gap-1.5",children:[(0,n.jsx)(m.i8,{text:i,label:"Copy markdown"}),(0,n.jsx)("button",{className:"btn btn-sm",onClick:()=>{if(!i)return;let e=new Blob([i],{type:"text/markdown"}),s=URL.createObjectURL(e),n=document.createElement("a");n.href=s,n.download="".concat(t,"-report.md"),n.click(),URL.revokeObjectURL(s)},children:"Download .md"}),(0,n.jsx)("a",{className:"btn btn-sm",href:o.F.reportUrl(t),target:"_blank",rel:"noreferrer",children:"Raw ↗"})]})]}),(0,n.jsx)("div",{className:"p-5 sm:p-8",children:(0,n.jsx)("div",{className:"prose-report",children:(0,n.jsx)(c.oz,{remarkPlugins:[d.A],children:i})})})]}):(0,n.jsx)(m.pp,{glyph:"▤",title:a?"No report yet":"No final report",sub:a?"The synthesizer composes the final report when the mission finishes — it will appear here automatically.":"This run ended without a synthesized report."})}),h.length>0&&(0,n.jsxs)("div",{className:"panel p-5",children:[(0,n.jsxs)("h3",{className:"label mb-3",children:["Artifacts \xb7 ",h.length]}),(0,n.jsx)("div",{className:"grid grid-cols-1 sm:grid-cols-2 gap-2",children:h.map(e=>(0,n.jsxs)("a",{href:o.F.artifactUrl(t,e.name),target:"_blank",rel:"noreferrer",className:"flex items-center gap-2.5 px-3 py-2.5 tile tile-hover",children:[(0,n.jsx)(p,{name:e.name}),(0,n.jsx)("span",{className:"mono text-xs truncate flex-1 text-ink",children:e.name}),(0,n.jsx)("span",{className:"text-2xs shrink-0 mono text-ink-faint",children:(0,x.zi)(e.size)}),(0,n.jsx)("span",{className:"text-ink-dim",children:"↗"})]},e.name))})]})]})}function p(e){let{name:t}=e,s=t.lastIndexOf("."),a=s>0?t.slice(s+1).toLowerCase().slice(0,4):"file";return(0,n.jsx)("span",{className:"mono shrink-0 uppercase grid place-items-center text-ink-dim",style:{fontSize:9.5,letterSpacing:"0.08em",width:34,height:20,borderRadius:5,background:"rgb(var(--hi) / 0.05)",border:"1px solid var(--color-border)"},children:a})}function u(e){let{id:t,onSent:s}=e,[a,i]=(0,r.useState)(""),[l,c]=(0,r.useState)(!1),[d,x]=(0,r.useState)(!1),m=async()=>{if(a.trim()&&!l){c(!0);try{await o.F.note(t,a.trim()),i(""),x(!0),setTimeout(()=>x(!1),1400),null==s||s()}finally{c(!1)}}};return(0,n.jsxs)("div",{className:"flex items-center gap-2",children:[(0,n.jsx)("input",{className:"input",placeholder:"Steer the conductor — type guidance and press ↵",value:a,onChange:e=>i(e.target.value),onKeyDown:e=>"Enter"===e.key&&m(),style:{fontSize:13,padding:"9px 13px"}}),(0,n.jsx)("button",{className:"btn",disabled:!a.trim()||l,onClick:m,style:{whiteSpace:"nowrap"},children:d?"Sent ✓":"Send"})]})}function f(e){let{id:t,live:s}=e,[a,i]=(0,r.useState)(!1),[l,c]=(0,r.useState)(!1);return s?l?(0,n.jsx)("button",{className:"btn",disabled:!0,style:{padding:"8px 13px"},children:"stopping…"}):a?(0,n.jsxs)("div",{className:"flex items-center gap-1.5",children:[(0,n.jsx)("button",{className:"btn btn-danger",style:{padding:"8px 12px"},onClick:async()=>{c(!0),i(!1);try{await o.F.cancel(t)}catch(e){c(!1)}},children:"Confirm stop"}),(0,n.jsx)("button",{className:"btn",style:{padding:"8px 12px"},onClick:()=>i(!1),children:"Keep"})]}):(0,n.jsx)("button",{className:"btn btn-danger",style:{padding:"8px 13px"},onClick:()=>i(!0),children:"Stop"}):null}var j=s(4643);function g(e){let t=0x811c9dc5;for(let s=0;s<e.length;s++)t^=e.charCodeAt(s),t=Math.imul(t,0x1000193);return t>>>0}let k=["Apis","Vesper","Bumble","Nectar","Pollen","Maja","Melli","Buzz","Wax","Comb","Clover","Sage","Tupelo","Aster","Bryony","Cassia","Dahlia","Elder","Fennel","Heather","Indigo","Juniper","Laurel","Mallow","Nettle","Olive","Poppy","Quince","Rowan","Sylvie","Thistle","Verbena","Willow","Yarrow","Zinnia","Basil","Cedar","Flax","Hazel","Iris","Maple","Reed","Sorrel","Hum","Drone","Scout","Forage","Ember"];function b(e){return k[g(e)%k.length]}function v(e){let{seed:t,size:s=14,className:a}=e,i=g(t),l=g(t+"\xb7"),r=[];for(let e=0;e<5;e++)for(let t=0;t<3;t++){let s=3*e+t;if(!(i>>s&1))continue;let n=l>>s&1?.95:.45;r.push({x:t,y:e,o:n}),t<2&&r.push({x:4-t,y:e,o:n})}return 0===r.length&&r.push({x:2,y:1,o:.95},{x:2,y:2,o:.45},{x:2,y:3,o:.95}),(0,n.jsx)("span",{className:"inline-grid place-items-center shrink-0 ".concat(null!=a?a:""),style:{width:s,height:s,borderRadius:Math.max(4,Math.round(.22*s)),background:"rgb(var(--hi) / 0.05)",border:"1px solid var(--color-border-soft)"},"aria-hidden":!0,children:(0,n.jsx)("svg",{width:Math.round(.62*s),height:Math.round(.62*s),viewBox:"0 0 5 5",shapeRendering:"crispEdges",children:r.map((e,t)=>(0,n.jsx)("rect",{x:e.x,y:e.y,width:1,height:1,fill:"var(--color-ink)",opacity:e.o},t))})})}function N(e){let{runId:t,activity:s,conductorLog:a,notes:i,operatorNotes:l,planUpdatedAt:c,now:d}=e,[o,x]=(0,r.useState)("activity"),m=[{id:"activity",label:"Activity"},{id:"conductor",label:"Conductor",count:a.length+l.length},{id:"blackboard",label:"Blackboard",count:i.length},{id:"plan",label:"Plan"}];return(0,n.jsxs)("div",{className:"panel flex flex-col h-[480px] lg:h-[calc(100vh-88px)] lg:sticky lg:top-[72px]",children:[(0,n.jsx)("div",{className:"flex items-center gap-5 px-4 border-b border-border-soft shrink-0",children:m.map(e=>(0,n.jsxs)("button",{className:"tab","data-active":o===e.id,onClick:()=>x(e.id),children:[e.label,e.count?(0,n.jsx)("span",{className:"mono text-2xs text-ink-faint",children:e.count}):null]},e.id))}),(0,n.jsxs)("div",{className:"flex-1 overflow-hidden relative",children:["activity"===o&&(0,n.jsx)(w,{activity:s,now:d}),"conductor"===o&&(0,n.jsx)(T,{log:a,operatorNotes:l,now:d}),"blackboard"===o&&(0,n.jsx)(M,{notes:i,now:d}),"plan"===o&&(0,n.jsx)(y,{runId:t,planUpdatedAt:c})]})]})}function y(e){let{runId:t,planUpdatedAt:s}=e,[a,i]=(0,r.useState)(null),[l,c]=(0,r.useState)(!1);return((0,r.useEffect)(()=>{let e=!0;return o.F.fetchPlan(t).then(t=>{e&&(i(t),c(!0))}).catch(()=>{e&&c(!0)}),()=>{e=!1}},[t,s]),l)?a?(0,n.jsx)("div",{className:"h-full overflow-y-auto px-4 py-3 text-xs leading-relaxed",children:(0,n.jsx)(m.Md,{compact:!0,dim:!0,children:a})}):(0,n.jsx)(m.pp,{glyph:"◈",title:"No plan yet",sub:"On longer missions the conductor maintains a living plan (mission-plan.md) — it appears here as it evolves."}):(0,n.jsx)(m.pp,{glyph:"◈",title:"Loading plan…",sub:""})}function w(e){let{activity:t,now:s}=e,a=(0,r.useRef)(null),[i,l]=(0,r.useState)(!0),c=(0,r.useMemo)(()=>(0,j.XJ)(t),[t]);return((0,r.useEffect)(()=>{i&&a.current&&(a.current.scrollTop=a.current.scrollHeight)},[t,i]),0===t.length)?(0,n.jsx)(m.pp,{glyph:"❯",title:"No activity yet",sub:"Every agent tool call streams here live."}):(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)("div",{ref:a,onScroll:e=>{let t=e.currentTarget;l(t.scrollHeight-t.scrollTop-t.clientHeight<60)},className:"h-full overflow-y-auto px-3 py-2 space-y-0.5",children:c.map(e=>(0,n.jsx)(S,{item:e},e.id))}),!i&&(0,n.jsx)("button",{onClick:()=>{l(!0),a.current&&(a.current.scrollTop=a.current.scrollHeight)},className:"absolute bottom-3 left-1/2 -translate-x-1/2 btn btn-sm",style:{background:"color-mix(in oklab, var(--color-panel) 92%, transparent)",borderColor:"rgb(var(--hi) / 0.35)",boxShadow:"0 6px 20px -6px rgba(0,0,0,0.6)"},children:"↓ Latest"})]})}function S(e){var t,s,a;let{item:i}=e,l="result"===i.kind,r=null,c=null!=(t=i.text)?t:"",d="text-ink-dim";return"tool"===i.kind?(r=(0,n.jsxs)("span",{className:"mono font-medium text-ink mr-1.5 whitespace-nowrap",children:[(0,n.jsx)(m.si,{name:i.name})," ",i.name,(null!=(s=i.count)?s:1)>1&&(0,n.jsxs)("span",{className:"text-ink-faint",children:[" \xd7",i.count]})]}),d="text-ink-faint"):l?(r=(0,n.jsx)("span",{className:"mr-1.5 ".concat(i.ok?"text-ink-faint":"text-ink-dim"),children:i.ok?"↳":"↳ ✗"}),d=i.ok?"text-ink-faint":"text-ink-dim"):"note"===i.kind?r=(0,n.jsx)("span",{className:"text-ink-dim mr-1.5",children:"✦"}):"spawn"===i.kind?(r=(0,n.jsx)("span",{className:"text-ink mr-1.5",children:"⊕"}),d="text-ink"):"report"===i.kind?r=(0,n.jsx)("span",{className:"text-ink-dim mr-1.5",children:"✓"}):(r=(0,n.jsx)("span",{className:"mono font-medium text-ink mr-1.5",children:i.name}),c=null!=(a=i.text)?a:""),(0,n.jsxs)("div",{className:"flex items-center gap-2 py-1 text-xs leading-snug",style:{animation:"var(--animate-rise)"},title:"".concat(new Date(i.t).toLocaleString()).concat(i.taskId?" \xb7 ".concat(i.taskId," ").concat(b(i.taskId)):" \xb7 conductor").concat(i.name?"\n".concat(i.name):"").concat(c?"\n".concat(c):""),children:[(0,n.jsx)("span",{className:"flex items-center gap-1.5 shrink-0 w-[52px]",children:i.taskId?(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)(v,{seed:i.taskId,size:18}),(0,n.jsx)("span",{className:"mono text-2xs text-ink-faint",children:i.taskId})]}):(0,n.jsx)("span",{className:"mono text-2xs text-ink-faint inline-flex items-center justify-center",style:{width:18},children:"◉"})}),(0,n.jsxs)("span",{className:"min-w-0 flex-1 truncate ".concat(l?"pl-2 border-l border-border-soft":""),children:[r,(0,n.jsx)("span",{className:d,children:c})]}),(0,n.jsx)("span",{className:"mono text-2xs shrink-0 w-[36px] text-right text-ink-faint",children:(0,x.MZ)(i.t)})]})}function T(e){let{log:t,operatorNotes:s,now:a}=e,i=[...t.map(e=>({t:e.t,kind:"say",text:e.text})),...s.map(e=>({t:e.t,kind:"op",text:e.text}))].sort((e,t)=>e.t-t.t),l=(0,r.useRef)(null);return((0,r.useEffect)(()=>{l.current&&(l.current.scrollTop=l.current.scrollHeight)},[i.length]),0===i.length)?(0,n.jsx)(m.pp,{glyph:"◉",title:"Conductor is quiet",sub:"Its decisions and commentary appear here. Send it a note from the header to steer the run."}):(0,n.jsx)("div",{ref:l,className:"h-full overflow-y-auto px-3.5 py-3 space-y-3",children:i.map((e,t)=>(0,n.jsx)("div",{style:{animation:"var(--animate-rise)"},children:"op"===e.kind?(0,n.jsxs)("div",{className:"rounded-lg p-2.5 text-xs",style:{background:"rgb(var(--hi) / 0.05)",border:"1px solid rgb(var(--hi) / 0.18)"},children:[(0,n.jsxs)("div",{className:"label mb-1 text-ink",style:{letterSpacing:"0.12em"},children:["you \xb7 ",(0,x.rB)(e.t,a)]}),(0,n.jsx)("div",{className:"text-ink-dim",children:e.text})]}):(0,n.jsxs)("div",{className:"text-xs leading-relaxed",children:[(0,n.jsxs)("div",{className:"label mb-0.5",style:{letterSpacing:"0.12em"},children:["◉ conductor \xb7 ",(0,x.ME)(e.t)]}),(0,n.jsx)(m.Md,{compact:!0,dim:!0,children:e.text})]})},t))})}function C(e){var t;let{kind:s}=e,a="decision"===s||"conflict"===s;return(0,n.jsxs)("span",{className:"mono shrink-0 uppercase ".concat(a?"chip-solid":""),style:{fontSize:9,letterSpacing:"0.1em",padding:"1px 6px",borderRadius:4,border:a?void 0:"1px solid var(--color-border)"},children:[null!=(t=({decision:"◆",conflict:"≠","open-question":"?",handoff:"⇢",claim:"⚑"})[s])?t:"\xb7"," ",s]})}function M(e){let{notes:t,now:s}=e,[a,i]=(0,r.useState)(""),[l,c]=(0,r.useState)(null),d=(0,r.useMemo)(()=>{let e=new Set;for(let s of t)e.add(s.kind||"finding");return[...e].sort()},[t]),o=(0,r.useMemo)(()=>{let e=a.trim().toLowerCase();return t.filter(t=>(!l||(t.kind||"finding")===l)&&(!e||[t.text,t.key,t.taskId,t.url].some(t=>t&&t.toLowerCase().includes(e))))},[t,a,l]);return 0===t.length?(0,n.jsx)(m.pp,{glyph:"✦",title:"Blackboard is empty",sub:"Durable facts agents post for the rest of the swarm show up here."}):(0,n.jsxs)("div",{className:"h-full flex flex-col",children:[(0,n.jsxs)("div",{className:"px-3.5 pt-2.5 pb-2 space-y-2 shrink-0 border-b border-border-soft",children:[(0,n.jsx)("input",{className:"input",style:{padding:"4px 10px",fontSize:12},placeholder:"Search ".concat(t.length," notes…"),value:a,onChange:e=>i(e.target.value)}),d.length>1&&(0,n.jsx)("div",{className:"flex items-center gap-1.5 flex-wrap",children:d.map(e=>(0,n.jsxs)("button",{onClick:()=>c(l===e?null:e),className:"mono uppercase ".concat(l===e?"chip-solid":"text-ink-faint hover:text-ink-dim"),style:{fontSize:9,letterSpacing:"0.1em",padding:"2px 7px",borderRadius:4,border:l===e?void 0:"1px solid var(--color-border)"},children:[e," ",t.filter(t=>(t.kind||"finding")===e).length]},e))})]}),(0,n.jsxs)("div",{className:"flex-1 overflow-y-auto px-3.5 py-3 space-y-2",children:[0===o.length&&(0,n.jsx)("div",{className:"text-xs text-ink-faint py-4 text-center",children:"No notes match."}),[...o].reverse().map((e,t)=>(0,n.jsxs)("div",{className:"tile p-3 text-xs",style:{animation:"var(--animate-rise)"},children:[(0,n.jsxs)("div",{className:"flex items-baseline gap-2 mb-1.5 text-2xs text-ink-faint",children:[e.kind&&"finding"!==e.kind&&(0,n.jsx)(C,{kind:e.kind}),e.key&&(0,n.jsx)("span",{className:"mono font-semibold text-ink truncate",children:e.key.replace(/[_-]+/g," ")}),e.taskId&&(0,n.jsx)("span",{className:"mono shrink-0",children:e.taskId}),(0,n.jsx)("span",{className:"ml-auto shrink-0",children:(0,x.rB)(e.t,s)})]}),(0,n.jsx)(m.OQ,{lines:5,children:(0,n.jsx)(m.Md,{compact:!0,dim:!0,children:e.text})}),e.url&&(0,n.jsxs)("a",{href:e.url,target:"_blank",rel:"noreferrer",className:"mono text-2xs text-ink-faint hover:text-ink underline underline-offset-2 block truncate mt-1.5",title:e.url,children:["↗ ",e.url.replace(/^https?:\/\//,"")]})]},t))]})]})}function R(e){switch(e){case"done":return"✓";case"failed":return"✗";case"blocked":return"⊘";case"verifying":return"◈";default:return""}}function z(e){return e.replace(/[#*`_>]+/g,"").replace(/\s+/g," ").trim().slice(0,140)}function A(e){var t;let{task:s,agent:a,now:i,onClick:l}=e,r=(0,x.ST)(s.status),c="running"===s.status||"verifying"===s.status,d="verifying"===s.status?"verifier":s.role,o=s.startedAt?(0,x.nc)((null!=(t=s.endedAt)?t:i)-s.startedAt):"";return(0,n.jsxs)("button",{onClick:l,className:"panel panel-hover text-left p-3.5 w-full relative overflow-hidden flex flex-col",style:{animation:"var(--animate-rise)",borderColor:c?"rgb(var(--hi) / 0.16)":void 0,opacity:"pending"===s.status?.75:1},children:[(0,n.jsxs)("div",{className:"flex items-center gap-2 mb-1.5 w-full",children:[(0,n.jsx)(v,{seed:s.id,size:26}),(0,n.jsx)("span",{className:"mono text-2xs font-bold shrink-0",style:{color:r},children:s.id}),(0,n.jsx)("span",{className:"text-2xs font-medium shrink-0 text-ink-dim",children:b(s.id)}),(0,n.jsxs)("span",{className:"text-2xs shrink-0 text-ink-faint",children:["\xb7 ",d]}),s.team&&(0,n.jsx)("span",{title:"runs as a sub-swarm",className:"text-2xs text-ink-dim",children:"⌬"}),s.modelTier&&"default"!==s.modelTier&&(0,n.jsx)("span",{title:"".concat(s.modelTier," model tier"),className:"mono text-2xs shrink-0 text-ink-faint",children:"strong"===s.modelTier?"S":"\xa2"}),s.verify&&(0,n.jsx)("span",{title:"adversarially verified",className:"text-2xs text-ink-dim",children:"⊛"}),s.attempt>1&&(0,n.jsxs)("span",{className:"text-2xs shrink-0 text-ink-dim",children:["retry ",s.attempt]}),(0,n.jsxs)("span",{className:"ml-auto flex items-center gap-1.5 shrink-0",children:[c?(0,n.jsx)(m.y$,{size:11}):(0,n.jsx)("span",{className:"text-sm",style:{color:r},children:R(s.status)}),o&&(0,n.jsx)("span",{className:"mono text-2xs text-ink-faint",children:o})]})]}),(0,n.jsx)("div",{className:"text-sm leading-snug mb-1.5 line-clamp-2 text-ink",children:s.title}),(0,n.jsxs)("div",{className:"flex items-center gap-2 flex-wrap",children:[s.deps.length>0&&(0,n.jsxs)("span",{className:"mono text-2xs text-ink-faint",children:["⇠ ",s.deps.join(", ")]}),s.artifacts.length>0&&(0,n.jsxs)("span",{className:"mono text-2xs text-ink-dim",title:s.artifacts.join(", "),children:["↧ ",s.artifacts.length," artifact",s.artifacts.length>1?"s":""]})]}),c&&a&&(0,n.jsxs)("div",{className:"mt-2 pt-2 text-2xs flex items-start gap-1.5 w-full border-t border-border-soft text-ink-dim",children:[(0,n.jsx)(m.si,{name:a.lastTool}),(0,n.jsxs)("span",{className:"line-clamp-2 text-ink-faint",style:{animation:"var(--animate-pulse-soft)",overflowWrap:"anywhere"},children:[a.lastTool?(0,n.jsx)("span",{className:"mono text-ink-dim",children:a.lastTool}):null,a.lastTool?" \xb7 ":"",function(e){let t=(e.lastText||e.lastThink||"").replace(/\s+/g," ").trim();return t.length>90?"…"+t.slice(t.length-89):t}(a)||"thinking…"]})]}),!c&&"done"===s.status&&s.report&&(0,n.jsx)("div",{className:"mt-1.5 text-2xs line-clamp-2 text-ink-faint",children:z(s.report)}),("failed"===s.status||"blocked"===s.status)&&(s.error||s.feedback)&&(0,n.jsx)("div",{className:"mt-1.5 text-2xs line-clamp-2",style:{color:r},children:z(s.feedback||s.error||"")})]})}function F(e){var t;let{task:s,now:a,onClick:i}=e,l=(0,x.ST)(s.status),r="failed"===s.status||"blocked"===s.status,c=s.startedAt?(0,x.nc)((null!=(t=s.endedAt)?t:a)-s.startedAt):"—",d=r?z(s.feedback||s.error||""):"";return(0,n.jsxs)("button",{onClick:i,className:"flex items-center gap-2.5 w-full text-left px-3 py-2 hover:bg-[rgb(var(--hi)/0.04)] transition-colors",style:{animation:"var(--animate-rise)"},children:[(0,n.jsx)("span",{className:"mono text-sm shrink-0 w-4 text-center ".concat(r?"font-bold":""),style:{color:l},children:R(s.status)}),(0,n.jsx)(v,{seed:s.id,size:20}),(0,n.jsx)("span",{className:"mono text-2xs shrink-0 w-7 ".concat(r?"font-bold text-ink":"text-ink-dim"),children:s.id}),(0,n.jsx)("span",{className:"text-2xs shrink-0 w-16 truncate hidden sm:inline text-ink-dim",children:b(s.id)}),(0,n.jsx)("span",{className:"text-2xs shrink-0 w-20 truncate hidden md:inline text-ink-faint",children:s.role}),(0,n.jsxs)("span",{className:"text-xs truncate flex-1 min-w-0 text-ink",children:[s.title,d&&(0,n.jsx)("span",{className:"ml-2",style:{color:l},children:d})]}),s.attempt>1&&(0,n.jsxs)("span",{className:"text-2xs shrink-0 hidden sm:inline text-ink-faint",children:["retry ",s.attempt]}),(0,n.jsx)("span",{className:"mono text-2xs shrink-0 w-9 text-right text-ink-faint",title:s.artifacts.join(", "),children:s.artifacts.length>0?"↧ ".concat(s.artifacts.length):""}),(0,n.jsx)("span",{className:"mono text-2xs shrink-0 w-14 text-right text-ink-faint",children:c})]})}let E="0 0 22px -6px rgb(var(--hi) / 0.5)",O=["done","failed","blocked"];function L(e){var t,s,a;let{tasks:i,agents:l,status:c,conductorLog:d,finalSummary:o,now:x,onSelect:h,onOpenReport:p}=e,u=(0,r.useMemo)(()=>{let e=new Map;for(let t of i){let s=t.wave||1;e.has(s)||e.set(s,[]),e.get(s).push(t)}return[...e.entries()].sort((e,t)=>e[0]-t[0])},[i]),{preWave:f,tail:j}=(0,r.useMemo)(()=>{let e,t=u.map(e=>{let[t,s]=e;return[t,Math.min(...s.map(e=>e.createdAt))]}),s=new Map;for(let n of d){let a=t.find(e=>{let[,t]=e;return n.t<t+1e3});a?s.set(a[0],n):e=n}return{preWave:s,tail:e}},[u,d]),g=e=>{let t=l.filter(t=>t.taskId===e.id&&"running"===t.status);return t[t.length-1]},k=["planning","running","synthesizing"].includes(c),b="planning"===c&&0===i.length,v=null==(t=u[0])?void 0:t[0],N=null!=(a=void 0!==v?null==(s=f.get(v))?void 0:s.text:void 0)?a:b?null==j?void 0:j.text:void 0;return(0,n.jsxs)("div",{className:"spine flex flex-col gap-6",children:[(0,n.jsx)(I,{status:c,latest:N,taskCount:i.length}),b?(0,n.jsx)("div",{className:"spine-item",children:(0,n.jsx)("div",{className:"panel",children:(0,n.jsx)(m.pp,{glyph:"◌",title:"Conductor is planning…",sub:"Decomposing your mission into the first wave of parallel tasks."})})}):0===i.length?(0,n.jsx)("div",{className:"spine-item",children:(0,n.jsx)("div",{className:"panel",children:(0,n.jsx)(m.pp,{glyph:"◇",title:"No tasks yet",sub:"The conductor hasn't spawned any work."})})}):u.map((e,t)=>{let[s,a]=e;return(0,n.jsxs)(r.Fragment,{children:[t>0&&f.get(s)&&(0,n.jsx)(P,{text:f.get(s).text}),(0,n.jsx)(H,{wave:s,group:a,agentForTask:g,now:x,onSelect:h})]},s)}),!b&&j&&(0,n.jsx)(P,{text:j.text,pulse:k}),!k&&(o?(0,n.jsx)(B,{summary:o,onOpenReport:p}):(0,n.jsx)(W,{status:c}))]})}function I(e){let{status:t,latest:s,taskCount:a}=e,i=["planning","running","synthesizing"].includes(t);return(0,n.jsxs)("div",{className:"spine-item",children:[(0,n.jsx)("span",{className:"spine-node text-ink",style:{boxShadow:i?E:"none",transition:"box-shadow 0.4s"},children:"◉"}),(0,n.jsxs)("div",{className:"flex items-baseline gap-2.5",children:[(0,n.jsx)("span",{className:"font-semibold text-sm tracking-tight text-ink",children:"Conductor"}),(0,n.jsx)("span",{className:"mono text-2xs text-ink-faint",children:"synthesizing"===t?"synthesizing the final report":"orchestrating ".concat(a," task").concat(1!==a?"s":"")})]}),(0,n.jsx)("p",{className:"text-xs leading-snug mt-1 line-clamp-2 text-ink-dim",children:s||(i?"coordinating the swarm…":"idle")})]})}function P(e){let{text:t,pulse:s}=e;return(0,n.jsxs)("div",{className:"spine-item",style:{animation:"var(--animate-rise)"},children:[(0,n.jsx)("span",{className:"spine-node",style:{boxShadow:s?E:void 0,transition:"box-shadow 0.4s"},children:"◉"}),(0,n.jsx)("p",{className:"text-xs leading-snug line-clamp-2 text-ink-dim",style:{minHeight:21,animation:s?"var(--animate-pulse-soft)":void 0},children:t})]})}function H(e){let{wave:t,group:s,agentForTask:a,now:i,onSelect:l}=e,r=s.filter(e=>O.includes(e.status)),c=s.filter(e=>!O.includes(e.status)),d=r.filter(e=>"failed"===e.status).length;return(0,n.jsxs)("div",{className:"spine-item",style:{animation:"var(--animate-rise)"},children:[(0,n.jsx)("span",{className:"spine-node",style:{fontSize:10},children:t}),(0,n.jsxs)("div",{className:"flex items-center gap-3 mb-2.5",style:{minHeight:21},children:[(0,n.jsxs)("span",{className:"label",children:["Wave ",t]}),(0,n.jsxs)("span",{className:"mono text-2xs ".concat(d?"text-ink":"text-ink-faint"),children:[r.length,"/",s.length," settled",d?" \xb7 ".concat(d," failed"):""]}),(0,n.jsx)("span",{className:"flex-1 h-px bg-border-soft"})]}),r.length>0&&(0,n.jsx)("div",{className:"tile divide-y divide-border-soft overflow-hidden",children:r.map(e=>(0,n.jsx)(F,{task:e,now:i,onClick:()=>l(e)},e.id))}),c.length>0&&(0,n.jsx)("div",{className:"grid grid-cols-1 sm:grid-cols-2 gap-3 ".concat(r.length>0?"mt-3":""),children:c.map(e=>(0,n.jsx)(A,{task:e,agent:a(e),now:i,onClick:()=>l(e)},e.id))})]})}function B(e){let{summary:t,onOpenReport:s}=e;return(0,n.jsxs)("div",{className:"spine-item",style:{animation:"var(--animate-rise)"},children:[(0,n.jsx)("span",{className:"spine-node text-ink",children:"✓"}),(0,n.jsxs)("div",{className:"panel p-4",style:{borderColor:"rgb(var(--hi) / 0.22)",background:"rgb(var(--hi) / 0.03)"},children:[(0,n.jsxs)("div",{className:"flex items-center justify-between gap-3 mb-1.5",children:[(0,n.jsx)("div",{className:"label text-ink",children:"✓ Mission summary"}),(0,n.jsx)("button",{className:"btn btn-sm shrink-0",onClick:s,children:"Open full report →"})]}),(0,n.jsx)(m.OQ,{lines:4,children:(0,n.jsx)(m.Md,{compact:!0,children:t})})]})]})}function W(e){let{status:t}=e;return(0,n.jsxs)("div",{className:"spine-item",style:{animation:"var(--animate-rise)"},children:[(0,n.jsx)("span",{className:"spine-node",children:"failed"===t?"✗":"cancelled"===t?"⊘":"■"}),(0,n.jsxs)("p",{className:"text-xs text-ink-faint flex items-center",style:{minHeight:21},children:["run ended — ",t]})]})}function _(e){var t,s;let{runId:a,task:i,agents:l,now:c,onClose:d}=e;if((0,r.useEffect)(()=>{let e=e=>"Escape"===e.key&&d();return window.addEventListener("keydown",e),()=>window.removeEventListener("keydown",e)},[d]),!i)return null;let h=l.filter(e=>e.taskId===i.id),p=h[h.length-1],u=(0,x.ST)(i.status);return(0,n.jsxs)("div",{className:"fixed inset-0 z-50 flex justify-end",style:{animation:"var(--animate-fade-in)"},children:[(0,n.jsx)("div",{className:"absolute inset-0",style:{background:"rgba(0,0,0,0.55)",backdropFilter:"blur(2px)"},onClick:d}),(0,n.jsxs)("div",{className:"relative h-full overflow-y-auto",style:{width:"min(580px, 94vw)",background:"var(--color-bg-soft)",borderLeft:"1px solid var(--color-border)",animation:"var(--animate-slide-in)"},children:[(0,n.jsxs)("div",{className:"sticky top-0 z-10 px-6 pt-5 pb-4 border-b border-border-soft",style:{background:"color-mix(in oklab, var(--color-bg-soft) 88%, transparent)",backdropFilter:"blur(12px)"},children:[(0,n.jsxs)("div",{className:"flex items-start justify-between gap-3 mb-2.5",children:[(0,n.jsxs)("div",{className:"flex items-center gap-2.5 flex-wrap",children:[(0,n.jsx)(v,{seed:i.id,size:30}),(0,n.jsx)("span",{className:"mono font-bold text-lg",style:{color:u},children:i.id}),(0,n.jsx)("span",{className:"text-sm font-medium text-ink-dim",children:b(i.id)}),(0,n.jsx)(m.Wh,{status:i.status}),(0,n.jsx)("span",{className:"text-2xs text-ink-faint",children:i.role})]}),(0,n.jsx)("button",{onClick:d,className:"btn btn-sm shrink-0",children:"esc ✕"})]}),(0,n.jsx)("h2",{className:"text-lg font-semibold leading-snug",children:i.title}),(0,n.jsxs)("div",{className:"flex flex-wrap gap-x-3 gap-y-1 text-2xs mt-1.5 text-ink-faint",children:[(0,n.jsxs)("span",{children:["wave ",i.wave]}),i.team&&(0,n.jsx)("span",{className:"text-ink-dim",children:"⌬ sub-swarm"}),i.modelTier&&"default"!==i.modelTier&&(0,n.jsxs)("span",{className:"mono text-ink-dim",children:[i.modelTier," tier"]}),i.deps.length>0&&(0,n.jsxs)("span",{className:"mono",children:["⇠ ",i.deps.join(", ")]}),i.verify&&(0,n.jsx)("span",{className:"text-ink-dim",children:"⊛ adversarially verified"}),i.attempt>1&&(0,n.jsxs)("span",{className:"text-ink-dim",children:["attempt ",i.attempt]}),i.startedAt&&(0,n.jsx)("span",{className:"mono",children:(0,x.nc)((null!=(t=i.endedAt)?t:c)-i.startedAt)})]})]}),(0,n.jsxs)("div",{className:"px-6 py-5",children:[(0,n.jsx)(Q,{task:i}),(0,n.jsx)(V,{title:"Objective",children:(0,n.jsx)(m.OQ,{lines:3,children:(0,n.jsx)(m.Md,{compact:!0,children:i.objective})})}),i.context&&(0,n.jsx)(V,{title:"Context from the conductor",children:(0,n.jsx)(m.OQ,{lines:3,children:(0,n.jsx)(m.Md,{compact:!0,dim:!0,children:i.context})})}),i.report&&(0,n.jsx)(V,{title:"failed"===(s=i).status||"blocked"===s.status?"Last report (unverified \xb7 attempt ".concat(s.attempt,")"):"verifying"===s.status?"Report (being verified)":"Report",children:(0,n.jsx)("div",{className:"rounded-xl px-4 py-3.5 border border-border-soft",style:{background:"var(--input-bg)"},children:(0,n.jsx)(m.OQ,{lines:10,children:(0,n.jsx)(m.Md,{compact:!0,dim:"failed"===i.status||"blocked"===i.status,children:i.report})})})}),i.keyFacts&&i.keyFacts.length>0&&(0,n.jsx)(V,{title:"Key facts (handoff)",children:(0,n.jsx)("ul",{className:"space-y-1.5",children:i.keyFacts.map((e,t)=>(0,n.jsxs)("li",{className:"flex items-start gap-2 text-xs leading-relaxed text-ink-dim",children:[(0,n.jsx)("span",{className:"text-ink-faint shrink-0",style:{marginTop:1},children:"◆"}),(0,n.jsx)(m.Md,{compact:!0,dim:!0,children:e})]},t))})}),i.openQuestions&&i.openQuestions.length>0&&(0,n.jsx)(V,{title:"Open questions",children:(0,n.jsx)("ul",{className:"space-y-1.5",children:i.openQuestions.map((e,t)=>(0,n.jsxs)("li",{className:"flex items-start gap-2 text-xs leading-relaxed text-ink-faint",children:[(0,n.jsx)("span",{className:"shrink-0",style:{marginTop:1},children:"?"}),(0,n.jsx)(m.Md,{compact:!0,dim:!0,children:e})]},t))})}),i.filesTouched&&i.filesTouched.length>0&&(0,n.jsx)(V,{title:"Files touched \xb7 ".concat(i.filesTouched.length),children:(0,n.jsx)("div",{className:"flex flex-wrap gap-1.5",children:i.filesTouched.map(e=>(0,n.jsx)("span",{className:"chip",children:e},e))})}),i.lastCheckpoint&&"done"!==i.status&&(0,n.jsx)(V,{title:"Latest checkpoint",children:(0,n.jsx)("div",{className:"rounded-xl px-3.5 py-3 border border-border-soft",style:{background:"rgb(var(--hi) / 0.02)"},children:(0,n.jsx)(m.Md,{compact:!0,dim:!0,children:i.lastCheckpoint})})}),i.feedback&&"failed"!==i.status&&"blocked"!==i.status&&(0,n.jsx)(V,{title:"Verifier feedback (previous attempt)",children:(0,n.jsx)("div",{className:"rounded-xl p-3.5",style:{background:"rgb(var(--hi) / 0.03)",border:"1px solid rgb(var(--hi) / 0.16)"},children:(0,n.jsx)(m.OQ,{lines:5,children:(0,n.jsx)(m.Md,{compact:!0,dim:!0,children:i.feedback})})})}),i.artifacts.length>0&&(0,n.jsx)(V,{title:"Artifacts \xb7 ".concat(i.artifacts.length),children:(0,n.jsx)("div",{className:"flex flex-col gap-1.5",children:i.artifacts.map(e=>(0,n.jsxs)("a",{href:o.F.artifactUrl(a,e),target:"_blank",rel:"noreferrer",className:"flex items-center gap-2 px-3 py-2 tile tile-hover text-ink",children:[(0,n.jsx)("span",{className:"mono text-xs truncate flex-1",children:e}),(0,n.jsx)("span",{className:"mono text-2xs text-ink-dim",children:"open ↗"})]},e))})}),h.length>0&&(0,n.jsx)(V,{title:"Agents \xb7 ".concat(h.length),children:(0,n.jsx)("div",{className:"flex flex-col gap-2",children:h.map((e,t)=>(0,n.jsx)(U,{agent:e,now:c,expanded:e===p,attempt:t+1},e.id))})})]})]})]})}function Q(e){var t,s,a,i;let{task:l}=e;if("failed"!==l.status&&"blocked"!==l.status)return null;let r=null!=(a=null==(t=l.error)?void 0:t.trim())?a:"",c=null!=(i=null==(s=l.feedback)?void 0:s.trim())?i:"",d=!!r&&!!c&&(r===c||r.startsWith(c.slice(0,80))||c.startsWith(r.slice(0,80))),o=d?c:r||c;return o?(0,n.jsx)(V,{title:"blocked"===l.status?"Why it's blocked":"Why it failed",children:(0,n.jsxs)("div",{className:"rounded-xl p-3.5",style:{background:"rgb(var(--hi) / 0.05)",border:"1px solid rgb(var(--hi) / 0.22)"},children:[(0,n.jsx)(m.OQ,{lines:6,children:(0,n.jsx)(m.Md,{compact:!0,children:o})}),!d&&r&&c&&(0,n.jsxs)("div",{className:"mt-2.5 pt-2.5 border-t border-border-soft",children:[(0,n.jsx)("div",{className:"label mb-1",children:"Verifier feedback"}),(0,n.jsx)(m.OQ,{lines:6,children:(0,n.jsx)(m.Md,{compact:!0,dim:!0,children:c})})]})]})}):null}function U(e){var t;let{agent:s,now:a,expanded:i,attempt:l}=e,[c,d]=(0,r.useState)(i),o="running"===s.status,h=(0,x.nc)((null!=(t=s.endedAt)?t:a)-s.startedAt);return(0,n.jsxs)("div",{className:"tile overflow-hidden",children:[(0,n.jsxs)("button",{onClick:()=>d(e=>!e),className:"w-full flex items-center gap-2 px-3 py-2.5 text-left",children:[(0,n.jsx)("span",{className:"rounded-full shrink-0",style:{width:7,height:7,background:o?"var(--color-ink)":"var(--color-ink-faint)"}}),(0,n.jsx)("span",{className:"mono text-2xs text-ink-dim",children:s.id}),(0,n.jsx)("span",{className:"text-2xs text-ink-dim",children:s.role}),(0,n.jsxs)("span",{className:"mono text-2xs ml-auto shrink-0 text-ink-faint",children:["#",l," \xb7 ",s.steps," steps \xb7 ",h,o?" \xb7 live":""]}),(0,n.jsx)("span",{className:"text-ink-faint",style:{fontSize:9,transform:c?"rotate(180deg)":"none",transition:"transform 0.15s"},children:"▼"})]}),c&&(0,n.jsxs)("div",{className:"px-3 pb-3 space-y-2.5 border-t border-border-soft",style:{paddingTop:10},children:[s.lastThink&&(0,n.jsxs)("div",{children:[(0,n.jsx)("div",{className:"label mb-1",children:"reasoning"}),(0,n.jsx)("div",{className:"text-xs leading-relaxed whitespace-pre-wrap mono text-ink-faint",style:{maxHeight:180,overflow:"auto"},children:s.lastThink.slice(-1400)})]}),s.lastText&&(0,n.jsxs)("div",{children:[(0,n.jsx)("div",{className:"label mb-1",children:"output"}),(0,n.jsx)("div",{style:{maxHeight:180,overflow:"auto"},children:(0,n.jsx)(m.Md,{compact:!0,dim:!0,children:s.lastText.slice(-1400)})})]}),!s.lastThink&&!s.lastText&&(0,n.jsx)("div",{className:"text-2xs text-ink-faint",children:o?"Waiting for the first output…":"No captured output."}),s.lastTool&&(0,n.jsxs)("div",{className:"text-2xs mono text-ink-faint",children:["last tool: ",s.lastTool]})]})]})}function V(e){let{title:t,children:s}=e;return(0,n.jsxs)("div",{className:"mb-6",children:[(0,n.jsx)("div",{className:"label mb-2",children:t}),s]})}var D=s(830),$=s(6168);function q(){let e=(0,l.useSearchParams)().get("id"),{data:t,connected:s,engineLive:a}=(0,$.Xt)(e),c=(0,$.cB)(1e3),[d,o]=(0,r.useState)(null),[p,j]=(0,r.useState)("swarm"),[g,k]=(0,r.useState)(!1),[b,v]=(0,r.useState)(!1);(0,r.useEffect)(()=>{v(!1);let e=setTimeout(()=>v(!0),8e3);return()=>clearTimeout(e)},[e]);let y=!!t&&["done","failed","cancelled"].includes(t.status);(0,r.useEffect)(()=>{y&&!g&&((null==t?void 0:t.finalSummary)||(null==t?void 0:t.finalReportPath))&&(j("report"),k(!0))},[y,g,null==t?void 0:t.finalSummary,null==t?void 0:t.finalReportPath]);let w=(0,r.useMemo)(()=>{var e;return t&&d&&null!=(e=t.tasks.find(e=>e.id===d))?e:null},[t,d]),S=(0,r.useMemo)(()=>{if(!t)return 0;let e=new Set;for(let s of t.tasks)for(let t of s.artifacts)e.add(t);return t.finalReportPath&&e.add("final-report.md"),e.size},[t]);if(!e)return(0,n.jsxs)("div",{className:"min-h-screen",children:[(0,n.jsx)(D.V,{}),(0,n.jsxs)("div",{className:"max-w-3xl mx-auto p-10 text-center text-ink-dim",children:["No run id. ",(0,n.jsx)(i(),{href:"/",className:"underline",children:"Back to dashboard"})]})]});if(!t||!t.meta)return(0,n.jsxs)("div",{className:"min-h-screen",children:[(0,n.jsx)(D.V,{}),(0,n.jsxs)("div",{className:"max-w-3xl mx-auto p-16 text-center",children:[(0,n.jsxs)("div",{className:"flex items-center justify-center gap-3 text-ink-faint",children:[(0,n.jsx)(m.y$,{})," connecting to run…"]}),b&&(0,n.jsxs)("div",{className:"mt-6 text-sm leading-relaxed text-ink-dim",style:{animation:"var(--animate-rise)"},children:["Still connecting. This run id may not exist, or the hub isn't reachable — check that"," ",(0,n.jsx)("span",{className:"mono text-ink",children:"swarm serve"})," is running.",(0,n.jsx)("div",{className:"mt-3",children:(0,n.jsx)(i(),{href:"/",className:"btn btn-sm",style:{display:"inline-flex"},children:"Back to dashboard"})})]})]})]});let T=t.meta,C=t.usage.promptTokens+t.usage.completionTokens,M=T.options.maxTokens,R=!y,z="failed"===t.status,A=z&&/auth|api key|rejected|401/i.test(t.statusReason||""),F=R&&!1===a,E=(0,x.nc)(((y||F)&&t.updatedAt?t.updatedAt:c)-T.createdAt),O={done:t.tasks.filter(e=>"done"===e.status).length,failed:t.tasks.filter(e=>"failed"===e.status).length,blocked:t.tasks.filter(e=>"blocked"===e.status).length,total:t.tasks.length},I=t.usage.promptTokens>0?Math.round(t.usage.cacheHitTokens/t.usage.promptTokens*100):0,P=[T.options.model,T.sandbox?"isolated workspace":"real directory","".concat(T.options.maxWorkers,"\xd7 parallel"),..."off"!==T.options.verification?["verify ".concat(T.options.verification)]:[]].join(" \xb7 ");return(0,n.jsxs)("div",{className:"min-h-screen",children:[(0,n.jsx)(D.V,{right:(0,n.jsxs)("span",{className:"hidden md:flex items-center gap-2 text-2xs text-ink-faint",children:[(0,n.jsx)(m.md,{status:s?R?"running":t.status:"failed",size:7,pulse:s&&R}),s?R?"live":"loaded":"reconnecting…"]})}),(0,n.jsxs)("main",{className:"max-w-[1400px] mx-auto px-4 sm:px-6 py-5 grid grid-cols-1 lg:grid-cols-[minmax(0,1fr)_380px] gap-5 items-start",children:[(0,n.jsxs)("div",{className:"min-w-0",children:[z&&(0,n.jsxs)(J,{glyph:"✕",title:"This run failed",children:[t.statusReason||"The run ended without completing.",A&&(0,n.jsx)(i(),{href:"/settings",className:"btn btn-sm mt-3",style:{display:"inline-flex"},children:"Fix your API key in Settings"})]}),F&&(0,n.jsxs)(J,{glyph:"◌",title:"Engine process is not running",children:["This run was interrupted before it could finish — the journal shows its last known state. Resuming keeps completed work and re-runs only the tasks that were in flight.",(0,n.jsx)("div",{className:"mt-3",children:(0,n.jsx)(K,{id:e})})]}),(0,n.jsxs)("div",{className:"panel p-4 mb-4",children:[(0,n.jsxs)("div",{className:"flex items-start justify-between gap-4 flex-wrap",children:[(0,n.jsxs)("div",{className:"min-w-0 flex-1",children:[(0,n.jsx)("h1",{className:"text-base font-semibold leading-snug mb-1.5 text-ink",children:T.mission}),(0,n.jsxs)("div",{className:"flex items-center gap-x-3 gap-y-1.5 flex-wrap",children:[(0,n.jsx)(m.Wh,{status:t.status}),(0,n.jsx)("span",{className:"mono text-2xs text-ink-faint",children:P}),(0,n.jsxs)("button",{className:"mono text-2xs text-ink-faint hover:text-ink-dim transition-colors",title:"Copy run id",onClick:()=>{var t;return null==(t=navigator.clipboard)?void 0:t.writeText(e).catch(()=>{})},children:[e," ⧉"]})]}),t.statusReason&&y&&(0,n.jsx)("p",{className:"text-xs mt-2 text-ink-faint",children:t.statusReason})]}),(0,n.jsxs)("div",{className:"flex items-center gap-2 shrink-0",children:[(0,n.jsx)(f,{id:e,live:R&&!F}),(t.finalSummary||y)&&"report"!==p&&(0,n.jsx)("button",{onClick:()=>j("report"),className:"btn",children:"View report"})]})]}),(0,n.jsxs)("div",{className:"mono text-2xs text-ink-faint mt-3 flex flex-wrap items-center gap-x-2 gap-y-1",children:[(0,n.jsxs)("span",{className:"text-ink-dim",children:[O.done,"/",O.total," tasks"]}),O.failed>0&&(0,n.jsxs)("span",{className:"text-ink font-bold",children:[O.failed," failed"]}),O.blocked>0&&(0,n.jsxs)("span",{className:"text-ink font-bold",children:[O.blocked," blocked"]}),(0,n.jsx)("span",{children:"\xb7"}),(0,n.jsxs)("span",{children:[t.activeAgents.length," active"]}),(0,n.jsx)("span",{children:"\xb7"}),(0,n.jsxs)("span",{children:[(0,x.yj)(C)," tok",I>0?" \xb7 ".concat(I,"% cached"):""]}),(0,n.jsx)("span",{children:"\xb7"}),(0,n.jsxs)("span",{title:"total artifacts saved by the swarm",children:["↧ ",S," sources"]}),(0,n.jsx)("span",{children:"\xb7"}),(0,n.jsx)("span",{children:(0,x.S8)(t.cost)}),(0,n.jsx)("span",{children:"\xb7"}),(0,n.jsx)("span",{children:E})]}),(0,n.jsxs)("div",{className:"mt-3 flex items-center gap-3",children:[(0,n.jsx)("div",{className:"flex-1 min-w-0",children:(0,n.jsx)(m.jT,{spent:C,cap:M,height:3})}),t.budgetSeries.length>2&&(0,n.jsx)("span",{className:"shrink-0 text-ink-faint hidden sm:block",title:"token spend over time (".concat((0,x.yj)(C)," total)"),children:(0,n.jsx)(m.OW,{points:t.budgetSeries.map(e=>e.tokens),width:96,height:20})}),(0,n.jsxs)("span",{className:"mono text-2xs text-ink-faint shrink-0",children:[M>0?Math.min(100,Math.round(C/M*100)):0,"% of ",(0,x.yj)(M)]})]}),R&&!F&&(0,n.jsx)("div",{className:"mt-3",children:(0,n.jsx)(u,{id:e})})]}),(0,n.jsxs)("div",{className:"flex items-center gap-6 mb-4 border-b border-border-soft",children:[(0,n.jsx)("button",{className:"tab","data-active":"swarm"===p,onClick:()=>j("swarm"),children:"Swarm"}),(0,n.jsxs)("button",{className:"tab","data-active":"report"===p,onClick:()=>j("report"),children:["Report",t.finalSummary?(0,n.jsx)("span",{className:"text-ink",children:"✓"}):null,S>0&&(0,n.jsx)("span",{className:"mono text-2xs text-ink-faint",children:S})]})]}),"swarm"===p?(0,n.jsx)("div",{className:"min-w-0",children:(0,n.jsx)(L,{tasks:t.tasks,agents:t.agents,status:t.status,conductorLog:t.conductorLog,finalSummary:t.finalSummary,now:c,onSelect:e=>o(e.id),onOpenReport:()=>j("report")})}):(0,n.jsx)(h,{id:e,hasFinal:!!t.finalSummary,live:R})]}),(0,n.jsx)(N,{runId:e,activity:t.activity,conductorLog:t.conductorLog,notes:t.notes,operatorNotes:t.operatorNotes,planUpdatedAt:t.planUpdatedAt,now:c})]}),(0,n.jsx)(_,{runId:e,task:w,agents:t.agents,now:c,onClose:()=>o(null)})]})}function K(e){let{id:t}=e,[s,a]=(0,r.useState)("idle");return(0,n.jsxs)("button",{className:"btn btn-sm",disabled:"resuming"===s,onClick:async()=>{a("resuming");try{await o.F.resume(t)}catch(e){a("error")}},children:["resuming"===s?(0,n.jsx)(m.y$,{size:12}):null,"error"===s?"Resume failed — retry":"Resume run"]})}function J(e){let{glyph:t,title:s,children:a}=e;return(0,n.jsxs)("div",{className:"panel p-4 mb-5 flex items-start gap-3.5",style:{borderColor:"rgb(var(--hi) / 0.28)",background:"rgb(var(--hi) / 0.03)",animation:"var(--animate-rise)"},children:[(0,n.jsx)("span",{className:"glyph shrink-0 text-ink",style:{width:30,height:30,fontSize:13},children:t}),(0,n.jsxs)("div",{className:"flex-1 min-w-0",children:[(0,n.jsx)("div",{className:"font-semibold text-ink",children:s}),(0,n.jsx)("div",{className:"text-sm mt-0.5 leading-relaxed text-ink-dim",children:a})]})]})}function X(){return(0,n.jsx)(r.Suspense,{fallback:(0,n.jsx)("div",{className:"min-h-screen grid place-items-center text-ink-faint",children:(0,n.jsx)(m.y$,{})}),children:(0,n.jsx)(q,{})})}}},e=>{e.O(0,[532,677,441,255,358],()=>e(e.s=4218)),_N_E=e.O()}]);
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[662],{1676:(e,a,l)=>{Promise.resolve().then(l.bind(l,2802))},2802:(e,a,l)=>{"use strict";l.r(a),l.d(a,{default:()=>m});var n=l(5155),t=l(2619),s=l.n(t),i=l(2115),o=l(830),r=l(6420),c=l(7621),d=l(6168);let u=[{key:"maxWorkers",label:"Agents in parallel",min:1,max:32},{key:"maxTasks",label:"Task limit",min:1,max:1e3},{key:"maxStepsPerTask",label:"Steps per task",min:3,max:200},{key:"maxTokensPerRun",label:"Token budget",min:5e4,max:2e9}];function m(){var e,a,l,t,m,f,g,b,j,y,w,N,C,S,K,T,M,A,I,B,P,F,R,U,E,_,q;let{config:V,reload:$,error:O}=(0,d.UK)(),[z,D]=(0,i.useState)([]),[W,G]=(0,i.useState)(!1),[L,H]=(0,i.useState)(!1),[J,Q]=(0,i.useState)(null),[X,Y]=(0,i.useState)(""),[Z,ee]=(0,i.useState)({}),[ea,el]=(0,i.useState)({}),[en,et]=(0,i.useState)({}),[es,ei]=(0,i.useState)({}),[eo,er]=(0,i.useState)({}),[ec,ed]=(0,i.useState)(!1),[eu,em]=(0,i.useState)(null),[ex,ep]=(0,i.useState)(!1),[eh,ev]=(0,i.useState)(null),[ek,ef]=(0,i.useState)(!1),[eg,eb]=(0,i.useState)(null),[ej,ey]=(0,i.useState)(!1),[ew,eN]=(0,i.useState)(null),eC=async e=>{Q(null);try{await c.F.setConfig(e),await $()}catch(e){Q((null==e?void 0:e.message)||"could not remove the key")}},eS=async()=>{ed(!0),em(null);try{em(await c.F.validate())}catch(e){em({status:"unknown",message:(null==e?void 0:e.message)||"request failed"})}finally{ed(!1)}};(0,i.useEffect)(()=>{V&&(ee({provider:V.provider,model:V.model,conductorModel:V.conductorModel,cheapModel:V.cheapModel,strongModel:V.strongModel,maxWorkers:V.maxWorkers,maxTasks:V.maxTasks,maxStepsPerTask:V.maxStepsPerTask,maxTokensPerRun:V.maxTokensPerRun,verification:V.verification,thinking:V.thinking,reasoningEffort:V.reasoningEffort,safeMode:V.safeMode,searchBackend:V.searchBackend,crawlBackend:V.crawlBackend,deepcrawlBaseUrl:V.deepcrawlBaseUrl,sandboxRuntime:V.sandboxRuntime,sandboxImage:V.sandboxImage,e2bTemplate:V.e2bTemplate,vercelTeamId:V.vercelTeamId,vercelProjectId:V.vercelProjectId}),et(Object.fromEntries(V.providers.map(e=>[e.id,e.baseUrl]))))},[V]),(0,i.useEffect)(()=>{c.F.models().then(e=>D(e.models)).catch(()=>{})},[null==V?void 0:V.apiKeySet,null==V?void 0:V.provider]);let eK=(0,i.useMemo)(()=>{var e;return null!=(e=null==V?void 0:V.providers.find(e=>e.id===Z.provider))?e:null==V?void 0:V.providers.find(e=>e.id===V.provider)},[V,Z.provider]),eT=async()=>{for(let e of u){let a=Z[e.key];if(""===a||null===a||!Number.isFinite(Number(a)))return void Q("".concat(e.label," must be a number"))}H(!0),Q(null);try{var e,a,l,n;let t={...Z};for(let a of(X.trim()&&(t.tinyfishApiKey=X.trim()),["e2bApiKey","modalTokenId","modalTokenSecret","vercelToken"]))(null==(e=es[a])?void 0:e.trim())&&(t[a]=es[a].trim());for(let e of["firecrawlApiKey","contextdevApiKey","deepcrawlApiKey"])(null==(a=eo[e])?void 0:a.trim())&&(t[e]=eo[e].trim());let s={};for(let e of null!=(l=null==V?void 0:V.providers)?l:[]){let a={};(null==(n=ea[e.id])?void 0:n.trim())&&(a.apiKey=ea[e.id].trim()),void 0!==en[e.id]&&en[e.id]!==e.baseUrl&&(a.baseUrl=en[e.id]),Object.keys(a).length&&(s[e.id]=a)}Object.keys(s).length&&(t.providers=s),await c.F.setConfig(t),el({}),ei({}),er({}),Y(""),await $(),c.F.models().then(e=>D(e.models)).catch(()=>{}),G(!0),setTimeout(()=>G(!1),1800)}catch(e){Q((null==e?void 0:e.message)||"save failed")}finally{H(!1)}};if(!V)return(0,n.jsxs)("div",{className:"min-h-screen",children:[(0,n.jsx)(o.V,{}),(0,n.jsx)("div",{className:"max-w-2xl mx-auto p-16 flex justify-center text-ink-faint",children:O?(0,n.jsxs)("span",{className:"text-ink",children:["Hub unreachable: ",O]}):(0,n.jsx)(r.y$,{})})]});let eM=z.length?z:null!=(e=null==eK?void 0:eK.knownModels)?e:V.knownModels,eA=e=>{var a;let l=null==(a=V.pricing)?void 0:a[e];return l?"$".concat(l.inMiss,"/M in \xb7 $").concat(l.out,"/M out"):void 0};return(0,n.jsxs)("div",{className:"min-h-screen",children:[(0,n.jsx)(o.V,{}),(0,n.jsxs)("main",{className:"max-w-2xl mx-auto px-5 sm:px-8 py-8 pb-24",children:[(0,n.jsxs)("div",{className:"flex items-baseline gap-3 mb-6",children:[(0,n.jsx)("h1",{className:"text-xl font-display",children:"Settings"}),(0,n.jsx)(s(),{href:"/",className:"text-xs text-ink-faint hover:text-ink-dim transition-colors",children:"← back to missions"})]}),(0,n.jsxs)(p,{title:"Model provider",sub:"Keys are stored locally in ~/.agentswarm/config.json (chmod 600) and only ever sent to the provider's API.",children:[(0,n.jsx)(h,{label:"Provider",children:(0,n.jsx)("select",{className:"input",value:null!=(a=Z.provider)?a:V.provider,onChange:e=>ee({...Z,provider:e.target.value}),children:V.providers.map(e=>(0,n.jsxs)("option",{value:e.id,children:[e.label,e.keySet?" \xb7 key saved":e.keyRequired?"":" \xb7 no key needed"]},e.id))})}),eK&&(0,n.jsxs)(n.Fragment,{children:[eK.note&&(0,n.jsx)("p",{className:"text-xs leading-relaxed text-ink-faint",children:eK.note}),eK.keyRequired?(0,n.jsxs)(h,{label:"".concat(eK.label," API key"),hint:eK.keySet?"current: ".concat(eK.keyMasked):"required",children:[(0,n.jsx)("input",{className:"input mono",type:"password",placeholder:eK.keySet?"•••••• (leave blank to keep)":"paste your key",value:null!=(l=ea[eK.id])?l:"",onChange:e=>el({...ea,[eK.id]:e.target.value}),autoComplete:"off"}),(eK.keyUrl||eK.keySet)&&(0,n.jsxs)("p",{className:"text-2xs mt-1.5 text-ink-faint",children:[eK.keyUrl&&(0,n.jsxs)(n.Fragment,{children:["Get one at"," ",(0,n.jsx)("a",{href:eK.keyUrl,target:"_blank",rel:"noreferrer",className:"text-ink underline underline-offset-2",children:eK.keyUrl.replace(/^https?:\/\//,"")})]}),eK.keySet&&(0,n.jsx)(x,{onClear:()=>eC({providers:{[eK.id]:{apiKey:""}}})})]})]}):(0,n.jsx)("p",{className:"text-xs text-ink-faint",children:"Local server — no API key needed."}),(0,n.jsx)(h,{label:"Base URL",hint:"default: ".concat(eK.defaultBaseUrl),children:(0,n.jsx)("input",{className:"input mono",value:null!=(t=en[eK.id])?t:eK.baseUrl,onChange:e=>et({...en,[eK.id]:e.target.value})})})]}),(0,n.jsxs)("div",{className:"flex items-center gap-3 pt-1 flex-wrap",children:[(0,n.jsxs)("button",{className:"btn",onClick:eS,disabled:ec,children:[ec&&(0,n.jsx)(r.y$,{size:13})," Test connection"]}),eu?(0,n.jsx)("span",{className:"text-xs mono ".concat("ok"===eu.status?"text-ink":"text-ink-dim"),children:"ok"===eu.status?"✓ Connection works":"invalid"===eu.status?"✕ ".concat(eu.message||"key rejected"):"— ".concat(eu.message||"could not verify")}):(0,n.jsx)("span",{className:"text-2xs text-ink-faint",children:"tests the saved provider — save first"})]})]}),(0,n.jsxs)(p,{title:"Models",children:[(0,n.jsxs)("div",{className:"grid grid-cols-1 sm:grid-cols-2 gap-3",children:[(0,n.jsx)(h,{label:"Worker model",hint:"does the tasks",sub:eA(Z.model),children:(0,n.jsx)(v,{value:null!=(m=Z.model)?m:"",options:eM,onChange:e=>ee({...Z,model:e}),listId:"worker-models"})}),(0,n.jsx)(h,{label:"Conductor model",hint:"plans & synthesizes",sub:eA(Z.conductorModel),children:(0,n.jsx)(v,{value:null!=(f=Z.conductorModel)?f:"",options:eM,onChange:e=>ee({...Z,conductorModel:e}),listId:"conductor-models"})})]}),(0,n.jsxs)("div",{className:"grid grid-cols-1 sm:grid-cols-2 gap-3 mt-3",children:[(0,n.jsx)(h,{label:"Cheap tier",hint:'spawn model:"cheap" — scouts, bulk extraction',sub:Z.cheapModel?eA(Z.cheapModel):"blank = worker model",children:(0,n.jsx)(v,{value:null!=(g=Z.cheapModel)?g:"",options:eM,onChange:e=>ee({...Z,cheapModel:e}),listId:"cheap-models"})}),(0,n.jsx)(h,{label:"Strong tier",hint:'spawn model:"strong" — leads, verifiers',sub:Z.strongModel?eA(Z.strongModel):"blank = worker model",children:(0,n.jsx)(v,{value:null!=(b=Z.strongModel)?b:"",options:eM,onChange:e=>ee({...Z,strongModel:e}),listId:"strong-models"})})]}),(0,n.jsxs)("div",{className:"grid grid-cols-2 gap-3 mt-3",children:[(0,n.jsx)(h,{label:"Reasoning effort",hint:"how hard models think",children:(0,n.jsxs)("select",{className:"input",value:Z.reasoningEffort,onChange:e=>ee({...Z,reasoningEffort:e.target.value}),children:[(0,n.jsx)("option",{value:"low",children:"low — fastest"}),(0,n.jsx)("option",{value:"medium",children:"medium"}),(0,n.jsx)("option",{value:"high",children:"high — recommended"}),(0,n.jsx)("option",{value:"max",children:"max — slowest, most careful"})]})}),(0,n.jsx)(h,{label:"Thinking mode",hint:"chain-of-thought",children:(0,n.jsx)(k,{on:!!Z.thinking,onChange:e=>ee({...Z,thinking:e}),label:Z.thinking?"enabled":"disabled"})})]}),(0,n.jsx)("p",{className:"text-2xs leading-relaxed text-ink-faint",children:"Effort maps to what each provider supports; providers without an effort knob simply ignore it."})]}),(0,n.jsxs)(p,{title:"Web search",sub:"Built-in multi-engine search: DuckDuckGo and Bing are scraped in parallel, results are quality-ranked and deduped, and deep mode fetches top pages for quotable passages. A TinyFish key adds a third engine to the mix.",children:[(0,n.jsx)(h,{label:"Search engines",children:(0,n.jsxs)("select",{className:"input",value:null!=(j=Z.searchBackend)?j:"auto",onChange:e=>ee({...Z,searchBackend:e.target.value}),children:[(0,n.jsx)("option",{value:"auto",children:"Auto — all engines, merged"}),(0,n.jsx)("option",{value:"tinyfish",children:"TinyFish only"}),(0,n.jsx)("option",{value:"ddg",children:"Free engines only (DuckDuckGo + Bing)"})]})}),(0,n.jsxs)(h,{label:"TinyFish API key",hint:V.tinyfishKeySet?"current: ".concat(V.tinyfishKeyMasked):"optional — extra hosted engine & fetch",children:[(0,n.jsx)("input",{className:"input mono",type:"password",placeholder:V.tinyfishKeySet?"•••••• (leave blank to keep)":"optional",value:X,onChange:e=>Y(e.target.value),autoComplete:"off"}),(0,n.jsxs)("p",{className:"text-2xs mt-1.5 text-ink-faint",children:["TinyFish: ",(0,n.jsx)("a",{href:"https://docs.tinyfish.ai",target:"_blank",rel:"noreferrer",className:"text-ink underline underline-offset-2",children:"tinyfish.ai"}),V.tinyfishKeySet&&(0,n.jsx)(x,{onClear:()=>eC({tinyfishApiKey:""})})]})]}),(0,n.jsxs)("div",{className:"flex items-center gap-3 pt-1 flex-wrap",children:[(0,n.jsxs)("button",{className:"btn",disabled:ek,onClick:async()=>{ef(!0),eb(null);try{eb(await c.F.searchTest())}catch(e){eb({ok:!1,engines:[{engine:"request",ok:!1,detail:(null==e?void 0:e.message)||"failed"}]})}finally{ef(!1)}},children:[ek&&(0,n.jsx)(r.y$,{size:13})," Test web search"]}),eg?(0,n.jsx)("span",{className:"text-xs mono text-ink-dim",children:eg.engines.map(e=>"".concat(e.ok?"✓":"✕"," ").concat(e.engine," (").concat(e.detail,")")).join(" \xb7 ")}):(0,n.jsx)("span",{className:"text-2xs text-ink-faint",children:"runs one real query per engine — save first"})]})]}),(0,n.jsxs)(p,{title:"Crawl integrations",sub:"Gives agents a crawl_site tool that ingests whole sites as markdown files, and upgrades fetch_url with JS rendering and clean markdown. Auto uses the first configured service (Firecrawl → context.dev → deepcrawl).",children:[(0,n.jsx)(h,{label:"Crawl backend",hint:(null!=(y=Z.crawlBackend)?y:"auto")==="auto"?"currently resolves to: ".concat(null!=(w=V.crawlResolved)?w:"none configured"):void 0,children:(0,n.jsxs)("select",{className:"input",value:null!=(N=Z.crawlBackend)?N:"auto",onChange:e=>ee({...Z,crawlBackend:e.target.value}),children:[(0,n.jsx)("option",{value:"auto",children:"Auto — first configured"}),(0,n.jsxs)("option",{value:"firecrawl",children:["Firecrawl",V.firecrawlKeySet?" \xb7 key saved":""]}),(0,n.jsxs)("option",{value:"contextdev",children:["context.dev",V.contextdevKeySet?" \xb7 key saved":""]}),(0,n.jsxs)("option",{value:"deepcrawl",children:["deepcrawl (custom)",V.deepcrawlKeySet?" \xb7 key saved":""]}),(0,n.jsx)("option",{value:"off",children:"Off — disable crawl_site"})]})}),(0,n.jsxs)("div",{className:"grid grid-cols-1 sm:grid-cols-2 gap-3",children:[(0,n.jsx)(h,{label:"Firecrawl API key",hint:V.firecrawlKeySet?"current: ".concat(V.firecrawlKeyMasked):"firecrawl.dev",children:(0,n.jsx)("input",{className:"input mono",type:"password",autoComplete:"off",placeholder:V.firecrawlKeySet?"•••••• (leave blank to keep)":"fc-...",value:null!=(C=eo.firecrawlApiKey)?C:"",onChange:e=>er({...eo,firecrawlApiKey:e.target.value})})}),(0,n.jsx)(h,{label:"context.dev API key",hint:V.contextdevKeySet?"current: ".concat(V.contextdevKeyMasked):"context.dev",children:(0,n.jsx)("input",{className:"input mono",type:"password",autoComplete:"off",placeholder:V.contextdevKeySet?"•••••• (leave blank to keep)":"api key",value:null!=(S=eo.contextdevApiKey)?S:"",onChange:e=>er({...eo,contextdevApiKey:e.target.value})})}),(0,n.jsx)(h,{label:"deepcrawl API key",hint:V.deepcrawlKeySet?"current: ".concat(V.deepcrawlKeyMasked):"custom crawler",children:(0,n.jsx)("input",{className:"input mono",type:"password",autoComplete:"off",placeholder:V.deepcrawlKeySet?"•••••• (leave blank to keep)":"api key",value:null!=(K=eo.deepcrawlApiKey)?K:"",onChange:e=>er({...eo,deepcrawlApiKey:e.target.value})})}),(0,n.jsx)(h,{label:"deepcrawl base URL",hint:"custom crawler endpoint (POST /crawl)",children:(0,n.jsx)("input",{className:"input mono",placeholder:"https://crawler.example.com",value:null!=(T=Z.deepcrawlBaseUrl)?T:"",onChange:e=>ee({...Z,deepcrawlBaseUrl:e.target.value})})})]}),(V.firecrawlKeySet||V.contextdevKeySet||V.deepcrawlKeySet)&&(0,n.jsxs)("p",{className:"text-2xs text-ink-faint",children:["Remove a saved key:",V.firecrawlKeySet&&(0,n.jsx)(x,{label:"firecrawl",onClear:()=>eC({firecrawlApiKey:""})}),V.contextdevKeySet&&(0,n.jsx)(x,{label:"context.dev",onClear:()=>eC({contextdevApiKey:""})}),V.deepcrawlKeySet&&(0,n.jsx)(x,{label:"deepcrawl",onClear:()=>eC({deepcrawlApiKey:""})})]}),(0,n.jsxs)("div",{className:"flex items-center gap-3 pt-1 flex-wrap",children:[(0,n.jsxs)("button",{className:"btn",disabled:ej,onClick:async()=>{ey(!0),eN(null);try{eN(await c.F.crawlTest())}catch(e){eN({ok:!1,backend:null,detail:(null==e?void 0:e.message)||"request failed"})}finally{ey(!1)}},children:[ej&&(0,n.jsx)(r.y$,{size:13})," Test crawl backend"]}),ew?(0,n.jsx)("span",{className:"text-xs mono ".concat(ew.ok?"text-ink":"text-ink-dim"),children:ew.ok?"✓ ".concat(ew.backend," works — ").concat(ew.detail):"✕ ".concat(null!=(M=ew.backend)?M:"none",": ").concat(ew.detail)}):(0,n.jsx)("span",{className:"text-2xs text-ink-faint",children:"scrapes one page with the saved keys — save first"})]})]}),(0,n.jsxs)(p,{title:"Sandbox",sub:"Where agents execute shell commands for isolated runs. The default is a private per-run workspace on this machine, with nothing to install. Pick a container or cloud runtime for stronger isolation, or Auto to use the strongest one you've configured (E2B → Modal → Vercel → Docker → host).",children:[(0,n.jsx)(h,{label:"Runtime",hint:(null!=(A=Z.sandboxRuntime)?A:"host")==="auto"?"currently resolves to: ".concat(V.sandboxResolved):void 0,children:(0,n.jsxs)("select",{className:"input",value:null!=(I=Z.sandboxRuntime)?I:"host",onChange:e=>ee({...Z,sandboxRuntime:e.target.value}),children:[(0,n.jsx)("option",{value:"host",children:"This machine — isolated workspace (default)"}),(0,n.jsxs)("option",{value:"docker",children:["Local container (Docker)",V.dockerUp?" \xb7 daemon up":" \xb7 daemon not running"]}),(0,n.jsxs)("option",{value:"e2b",children:["E2B cloud",V.e2bKeySet?" \xb7 key saved":""]}),(0,n.jsxs)("option",{value:"modal",children:["Modal cloud",V.modalConfigured?" \xb7 configured":""]}),(0,n.jsxs)("option",{value:"vercel",children:["Vercel sandbox",V.vercelConfigured?" \xb7 configured":""]}),(0,n.jsx)("option",{value:"auto",children:"Auto — strongest available"})]})}),(0,n.jsx)(h,{label:"Container image",hint:"docker & modal runtimes",children:(0,n.jsx)("input",{className:"input mono",value:null!=(B=Z.sandboxImage)?B:"",onChange:e=>ee({...Z,sandboxImage:e.target.value}),placeholder:"node:22-bookworm"})}),(0,n.jsxs)("div",{className:"grid grid-cols-1 sm:grid-cols-2 gap-3",children:[(0,n.jsx)(h,{label:"E2B API key",hint:V.e2bKeySet?"current: ".concat(V.e2bKeyMasked):"e2b.dev",children:(0,n.jsx)("input",{className:"input mono",type:"password",autoComplete:"off",placeholder:V.e2bKeySet?"•••••• (leave blank to keep)":"e2b_...",value:null!=(P=es.e2bApiKey)?P:"",onChange:e=>ei({...es,e2bApiKey:e.target.value})})}),(0,n.jsx)(h,{label:"E2B template",hint:"sandbox template id",children:(0,n.jsx)("input",{className:"input mono",value:null!=(F=Z.e2bTemplate)?F:"",onChange:e=>ee({...Z,e2bTemplate:e.target.value}),placeholder:"base"})}),(0,n.jsx)(h,{label:"Modal token id",hint:V.modalConfigured?"configured":"modal.com",children:(0,n.jsx)("input",{className:"input mono",type:"password",autoComplete:"off",placeholder:V.modalConfigured?"•••••• (leave blank to keep)":"ak-...",value:null!=(R=es.modalTokenId)?R:"",onChange:e=>ei({...es,modalTokenId:e.target.value})})}),(0,n.jsx)(h,{label:"Modal token secret",children:(0,n.jsx)("input",{className:"input mono",type:"password",autoComplete:"off",placeholder:V.modalConfigured?"•••••• (leave blank to keep)":"as-...",value:null!=(U=es.modalTokenSecret)?U:"",onChange:e=>ei({...es,modalTokenSecret:e.target.value})})}),(0,n.jsx)(h,{label:"Vercel token",hint:V.vercelConfigured?"configured":"vercel.com",children:(0,n.jsx)("input",{className:"input mono",type:"password",autoComplete:"off",placeholder:V.vercelConfigured?"•••••• (leave blank to keep)":"access token",value:null!=(E=es.vercelToken)?E:"",onChange:e=>ei({...es,vercelToken:e.target.value})})}),(0,n.jsx)(h,{label:"Vercel team / project",children:(0,n.jsxs)("div",{className:"flex gap-2",children:[(0,n.jsx)("input",{className:"input mono",placeholder:"team id",value:null!=(_=Z.vercelTeamId)?_:"",onChange:e=>ee({...Z,vercelTeamId:e.target.value})}),(0,n.jsx)("input",{className:"input mono",placeholder:"project id",value:null!=(q=Z.vercelProjectId)?q:"",onChange:e=>ee({...Z,vercelProjectId:e.target.value})})]})})]}),(V.e2bKeySet||V.modalConfigured||V.vercelConfigured)&&(0,n.jsxs)("p",{className:"text-2xs text-ink-faint",children:["Remove a saved key:",V.e2bKeySet&&(0,n.jsx)(x,{label:"E2B",onClear:()=>eC({e2bApiKey:""})}),V.modalConfigured&&(0,n.jsx)(x,{label:"Modal",onClear:()=>eC({modalTokenId:"",modalTokenSecret:""})}),V.vercelConfigured&&(0,n.jsx)(x,{label:"Vercel",onClear:()=>eC({vercelToken:""})})]}),(0,n.jsxs)("div",{className:"flex items-center gap-3 pt-1 flex-wrap",children:[(0,n.jsxs)("button",{className:"btn",disabled:ex,onClick:async()=>{ep(!0),ev(null);try{ev(await c.F.sandboxTest("auto"===Z.sandboxRuntime?void 0:Z.sandboxRuntime))}catch(a){var e;ev({kind:null!=(e=Z.sandboxRuntime)?e:"auto",ok:!1,detail:(null==a?void 0:a.message)||"request failed"})}finally{ep(!1)}},children:[ex&&(0,n.jsx)(r.y$,{size:13})," Test sandbox"]}),eh?(0,n.jsx)("span",{className:"text-xs mono ".concat(eh.ok?"text-ink":"text-ink-dim"),children:eh.ok?"✓ ".concat(eh.kind," works"):"✕ ".concat(eh.kind,": ").concat(eh.detail)}):(0,n.jsx)("span",{className:"text-2xs text-ink-faint",children:"boots the saved runtime, runs a command, tears down — save first"})]})]}),(0,n.jsxs)(p,{title:"Swarm defaults",sub:"Starting values for new runs — every launch can override them.",children:[(0,n.jsx)("div",{className:"grid grid-cols-2 sm:grid-cols-4 gap-3",children:u.map(e=>{var a;return(0,n.jsx)(h,{label:e.label,children:(0,n.jsx)("input",{type:"number",className:"input",min:e.min,max:e.max,value:null!=(a=Z[e.key])?a:"",onChange:a=>ee({...Z,[e.key]:""===a.target.value?"":+a.target.value})})},e.key)})}),(0,n.jsxs)("div",{className:"grid grid-cols-2 gap-3 mt-3",children:[(0,n.jsx)(h,{label:"Verification",hint:"verifier agents re-check work",children:(0,n.jsxs)("select",{className:"input",value:Z.verification,onChange:e=>ee({...Z,verification:e.target.value}),children:[(0,n.jsx)("option",{value:"off",children:"off"}),(0,n.jsx)("option",{value:"normal",children:"normal"}),(0,n.jsx)("option",{value:"strict",children:"strict"})]})}),(0,n.jsx)(h,{label:"Safe mode",hint:"block risky shell/paths",children:(0,n.jsx)(k,{on:!!Z.safeMode,onChange:e=>ee({...Z,safeMode:e}),label:Z.safeMode?"on":"off"})})]})]}),(0,n.jsxs)("div",{className:"sticky bottom-0 -mx-5 sm:-mx-8 px-5 sm:px-8 py-4 flex items-center justify-between gap-3",style:{background:"linear-gradient(transparent, color-mix(in oklab, var(--color-bg) 90%, transparent) 30%)",backdropFilter:"blur(8px)"},children:[(0,n.jsx)("span",{className:"text-xs min-w-0 truncate ".concat(J?"text-ink":"text-ink-faint"),children:J||"Changes apply to new runs."}),(0,n.jsx)("button",{className:"btn btn-primary shrink-0",onClick:eT,disabled:L,children:L?(0,n.jsx)(r.y$,{size:13,dark:!0}):W?"Saved ✓":"Save settings"})]})]})]})}function x(e){let{label:a,onClear:l}=e;return(0,n.jsx)("button",{type:"button",className:"ml-2 underline underline-offset-2 hover:text-ink transition-colors",onClick:l,children:a?"clear ".concat(a):"remove saved key"})}function p(e){let{title:a,sub:l,children:t}=e;return(0,n.jsxs)("div",{className:"panel p-5 mb-4",children:[(0,n.jsx)("h2",{className:"font-semibold text-base",children:a}),l?(0,n.jsx)("p",{className:"text-xs mt-0.5 mb-4 leading-relaxed text-ink-faint",children:l}):(0,n.jsx)("div",{className:"mb-4"}),(0,n.jsx)("div",{className:"space-y-3",children:t})]})}function h(e){let{label:a,hint:l,sub:t,children:s}=e;return(0,n.jsxs)("label",{className:"block",children:[(0,n.jsxs)("div",{className:"flex items-baseline justify-between mb-1.5 gap-2",children:[(0,n.jsx)("span",{className:"text-xs font-medium text-ink-dim",children:a}),l&&(0,n.jsx)("span",{className:"text-2xs truncate text-ink-faint",children:l})]}),s,t&&(0,n.jsx)("p",{className:"text-2xs mono mt-1.5 text-ink-faint",children:t})]})}function v(e){let{value:a,options:l,onChange:t,listId:s}=e;return(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)("input",{className:"input mono",value:a,list:s,onChange:e=>t(e.target.value),placeholder:"model id"}),(0,n.jsx)("datalist",{id:s,children:l.map(e=>(0,n.jsx)("option",{value:e},e))})]})}function k(e){let{on:a,onChange:l,label:t}=e;return(0,n.jsxs)("button",{type:"button",onClick:()=>l(!a),className:"input flex items-center justify-between",style:{cursor:"pointer"},children:[(0,n.jsx)("span",{className:a?"text-ink":"text-ink-faint",children:t}),(0,n.jsx)("span",{className:"relative rounded-full transition-colors shrink-0",style:{width:38,height:22,background:a?"#f2f2f2":"#2a2a2a"},children:(0,n.jsx)("span",{className:"absolute rounded-full transition-all",style:{width:16,height:16,top:3,left:a?19:3,background:a?"var(--color-bg)":"var(--color-ink-faint)"}})})]})}}},e=>{e.O(0,[532,677,441,255,358],()=>e(e.s=1676)),_N_E=e.O()}]);
|
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
@font-face{font-family:Manrope;font-style:normal;font-weight:200 800;font-display:swap;src:url(/_next/static/media/438aa629764e75f3-s.woff2) format("woff2");unicode-range:u+0460-052f,u+1c80-1c8a,u+20b4,u+2de0-2dff,u+a640-a69f,u+fe2e-fe2f}@font-face{font-family:Manrope;font-style:normal;font-weight:200 800;font-display:swap;src:url(/_next/static/media/875ae681bfde4580-s.woff2) format("woff2");unicode-range:u+0301,u+0400-045f,u+0490-0491,u+04b0-04b1,u+2116}@font-face{font-family:Manrope;font-style:normal;font-weight:200 800;font-display:swap;src:url(/_next/static/media/51251f8b9793cdb3-s.woff2) format("woff2");unicode-range:u+0370-0377,u+037a-037f,u+0384-038a,u+038c,u+038e-03a1,u+03a3-03ff}@font-face{font-family:Manrope;font-style:normal;font-weight:200 800;font-display:swap;src:url(/_next/static/media/e857b654a2caa584-s.woff2) format("woff2");unicode-range:u+0102-0103,u+0110-0111,u+0128-0129,u+0168-0169,u+01a0-01a1,u+01af-01b0,u+0300-0301,u+0303-0304,u+0308-0309,u+0323,u+0329,u+1ea0-1ef9,u+20ab}@font-face{font-family:Manrope;font-style:normal;font-weight:200 800;font-display:swap;src:url(/_next/static/media/cc978ac5ee68c2b6-s.woff2) format("woff2");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,u+1d00-1dbf,u+1e00-1e9f,u+1ef2-1eff,u+2020,u+20a0-20ab,u+20ad-20c0,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-family:Manrope;font-style:normal;font-weight:200 800;font-display:swap;src:url(/_next/static/media/4c9affa5bc8f420e-s.p.woff2) format("woff2");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-family:Manrope Fallback;src:local("Arial");ascent-override:103.31%;descent-override:29.07%;line-gap-override:0.00%;size-adjust:103.19%}.__className_73ee6c{font-family:Manrope,Manrope Fallback;font-style:normal}.__variable_73ee6c{--font-manrope:"Manrope","Manrope Fallback"}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:100 800;font-display:swap;src:url(/_next/static/media/886030b0b59bc5a7-s.woff2) format("woff2");unicode-range:u+0460-052f,u+1c80-1c8a,u+20b4,u+2de0-2dff,u+a640-a69f,u+fe2e-fe2f}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:100 800;font-display:swap;src:url(/_next/static/media/0aa834ed78bf6d07-s.woff2) format("woff2");unicode-range:u+0301,u+0400-045f,u+0490-0491,u+04b0-04b1,u+2116}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:100 800;font-display:swap;src:url(/_next/static/media/67957d42bae0796d-s.woff2) format("woff2");unicode-range:u+0370-0377,u+037a-037f,u+0384-038a,u+038c,u+038e-03a1,u+03a3-03ff}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:100 800;font-display:swap;src:url(/_next/static/media/f911b923c6adde36-s.woff2) format("woff2");unicode-range:u+0102-0103,u+0110-0111,u+0128-0129,u+0168-0169,u+01a0-01a1,u+01af-01b0,u+0300-0301,u+0303-0304,u+0308-0309,u+0323,u+0329,u+1ea0-1ef9,u+20ab}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:100 800;font-display:swap;src:url(/_next/static/media/939c4f875ee75fbb-s.woff2) format("woff2");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,u+1d00-1dbf,u+1e00-1e9f,u+1ef2-1eff,u+2020,u+20a0-20ab,u+20ad-20c0,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:100 800;font-display:swap;src:url(/_next/static/media/bb3ef058b751a6ad-s.p.woff2) format("woff2");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-family:JetBrains Mono Fallback;src:local("Arial");ascent-override:75.79%;descent-override:22.29%;line-gap-override:0.00%;size-adjust:134.59%}.__className_3c557b{font-family:JetBrains Mono,JetBrains Mono Fallback;font-style:normal}.__variable_3c557b{--font-jbmono:"JetBrains Mono","JetBrains Mono Fallback"}
|
|
2
2
|
|
|
3
|
-
/*! tailwindcss v4.3.0 | MIT License | https://tailwindcss.com */@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,::backdrop,:after,:before{--tw-translate-x:0;--tw-translate-y:0;--tw-translate-z:0;--tw-rotate-x:initial;--tw-rotate-y:initial;--tw-rotate-z:initial;--tw-skew-x:initial;--tw-skew-y:initial;--tw-space-y-reverse:0;--tw-divide-y-reverse:0;--tw-border-style:solid;--tw-leading:initial;--tw-font-weight:initial;--tw-tracking:initial;--tw-blur:initial;--tw-brightness:initial;--tw-contrast:initial;--tw-grayscale:initial;--tw-hue-rotate:initial;--tw-invert:initial;--tw-opacity:initial;--tw-saturate:initial;--tw-sepia:initial;--tw-drop-shadow:initial;--tw-drop-shadow-color:initial;--tw-drop-shadow-alpha:100%;--tw-drop-shadow-size:initial;--tw-duration:initial}}}@layer theme{:host,:root{--font-sans:var(--font-manrope),-apple-system,BlinkMacSystemFont,"Segoe UI",system-ui,sans-serif;--font-mono:var(--font-jbmono),"SF Mono","JetBrains Mono",ui-monospace,monospace;--spacing:.25rem;--container-2xl:42rem;--container-3xl:48rem;--container-6xl:72rem;--text-xs:12px;--text-xs--line-height:1.5;--text-sm:13px;--text-sm--line-height:1.5;--text-base:14px;--text-base--line-height:1.55;--text-lg:16px;--text-lg--line-height:1.45;--text-xl:20px;--text-xl--line-height:1.3;--font-weight-medium:500;--font-weight-semibold:600;--font-weight-bold:700;--tracking-tight:-.025em;--leading-snug:1.375;--leading-relaxed:1.625;--radius-lg:.5rem;--radius-xl:14px;--animate-spin:spin 1s linear infinite;--animate-ping:ping 1s cubic-bezier(0,0,.2,1) infinite;--default-transition-duration:.15s;--default-transition-timing-function:cubic-bezier(.4,0,.2,1);--default-font-family:var(--font-sans);--default-mono-font-family:var(--font-mono);--color-bg:#050505;--color-bg-soft:#0a0a0a;--color-panel:#0c0c0c;--color-border:#262626;--color-border-soft:#191919;--color-ink:#f2f2f2;--color-ink-dim:#b3b3b3;--color-ink-faint:#8c8c8c;--text-2xs:11px;--text-2xs--line-height:1.45;--animate-pulse-soft:pulse-soft 2s ease-in-out infinite;--animate-shimmer:shimmer 2.2s linear infinite;--animate-rise:rise .4s cubic-bezier(.16,1,.3,1);--animate-fade-in:fade-in .15s ease-out;--animate-slide-in:slide-in .22s cubic-bezier(.16,1,.3,1)}}@layer base{*,::backdrop,:after,:before{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}:host,html{-webkit-text-size-adjust:100%;tab-size:4;line-height:1.5;font-family:var(--default-font-family,ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,pre,samp{font-family:var(--default-mono-font-family,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring{outline:auto}progress{vertical-align:baseline}summary{display:list-item}menu,ol,ul{list-style:none}audio,canvas,embed,iframe,img,object,svg,video{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,optgroup,select,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab,red,red)){::placeholder{color:color-mix(in oklab,currentcolor 50%,transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit,::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-day-field,::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-hour-field,::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-millisecond-field,::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){appearance:button}::file-selector-button{appearance:button}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}}@layer components{.panel{background:linear-gradient(180deg,rgb(var(--hi)/.02),rgb(var(--hi)/0));background-color:var(--color-panel);border:1px solid var(--color-border-soft);border-radius:var(--radius-xl)}.panel-hover{transition:border-color .2s,transform .2s,box-shadow .2s}.panel-hover:hover{border-color:rgb(var(--hi)/.22);box-shadow:0 12px 40px -24px rgb(var(--hi)/.25)}.tile{background:rgb(var(--hi)/.02);border:1px solid var(--color-border-soft);border-radius:10px}.tile-hover{transition:border-color .16s,background .16s}.tile-hover:hover{border-color:rgb(var(--hi)/.3)}.spine{position:relative}.spine:before{content:"";background:var(--color-border);width:1px;position:absolute;top:10px;bottom:10px;left:10px}.spine-item{padding-left:34px;position:relative}.spine-node{background:var(--color-bg);width:21px;height:21px;font-family:var(--font-mono);color:var(--color-ink-dim);border-radius:999px;place-items:center;font-size:12px;display:grid;position:absolute;top:0;left:0}@media (max-width:640px){.spine:before{left:7px}.spine-item{padding-left:24px}.spine-node{width:15px;height:15px;font-size:10px}}.collapse-v{grid-template-rows:0fr;transition:grid-template-rows .28s;display:grid}.collapse-v[data-open=true]{grid-template-rows:1fr}.collapse-v>*{min-height:0;overflow:hidden}.font-display{font-family:"Planet Kosmos",var(--font-sans);letter-spacing:.04em;font-weight:400}.label{text-transform:uppercase;letter-spacing:.16em;color:var(--color-ink-faint);font-size:10px}.chip,.label{font-family:var(--font-mono);font-weight:500}.chip{letter-spacing:.02em;border:1px solid var(--color-border);color:var(--color-ink-dim);white-space:nowrap;border-radius:999px;align-items:center;gap:5px;padding:3px 9px;font-size:11px;display:inline-flex}a.chip,button.chip{cursor:pointer;transition:border-color .15s,color .15s}a.chip:hover,button.chip:hover{border-color:rgb(var(--hi)/.35);color:var(--color-ink)}.chip-solid{background:var(--color-ink);border-color:var(--color-ink);color:var(--color-bg);font-weight:700}.tab{font-size:var(--text-sm);color:var(--color-ink-faint);align-items:center;gap:7px;padding:9px 2px 11px;font-weight:500;transition:color .15s;display:inline-flex;position:relative}.tab:hover{color:var(--color-ink-dim)}.tab[data-active=true]{color:var(--color-ink)}.tab[data-active=true]:after{content:"";background:var(--color-ink);border-radius:2px;height:2px;position:absolute;bottom:-1px;left:0;right:0}.mono{font-family:var(--font-mono);font-variant-numeric:tabular-nums}.btn{font-size:var(--text-sm);border:1px solid var(--color-border);color:var(--color-ink);background:rgb(var(--hi)/.02);cursor:pointer;-webkit-user-select:none;user-select:none;white-space:nowrap;border-radius:9px;justify-content:center;align-items:center;gap:7px;padding:8px 15px;font-weight:600;transition:border-color .16s,background .16s,color .16s,filter .16s,transform 60ms;display:inline-flex}.btn:hover{border-color:rgb(var(--hi)/.35)}.btn:active{transform:translateY(1px)}.btn:disabled{opacity:.35;cursor:not-allowed;transform:none}.btn-primary{background:var(--color-ink);color:var(--color-bg);box-shadow:0 8px 28px -14px rgb(var(--hi)/.5);border-color:#0000}.btn-primary:hover{background:var(--ink-hi);border-color:#0000}.btn-ghost{color:var(--color-ink-dim);background:0 0;border-color:#0000}.btn-ghost:hover{background:rgb(var(--hi)/.05);color:var(--color-ink);border-color:#0000}.btn-danger:hover{border-color:rgb(var(--hi)/.6);color:var(--ink-hi);background:rgb(var(--hi)/.06)}.btn-sm{font-size:var(--text-xs);border-radius:7px;padding:5px 10px}.input{background:var(--input-bg);border:1px solid var(--color-border);width:100%;color:var(--color-ink);font-size:var(--text-base);border-radius:9px;outline:none;padding:10px 13px;font-family:inherit;transition:border-color .16s,box-shadow .16s,background .16s}.input:hover{border-color:#f2f2f247}@supports (color:color-mix(in lab,red,red)){.input:hover{border-color:color-mix(in srgb,var(--color-ink) 28%,transparent)}}.input:focus{border-color:rgb(var(--hi)/.45);box-shadow:0 0 0 3px rgb(var(--hi)/.07);background:var(--input-bg-focus)}.input::placeholder{color:var(--color-ink-faint)}.skeleton{background:linear-gradient(90deg,rgb(var(--hi)/.03),rgb(var(--hi)/.07),rgb(var(--hi)/.03));animation:var(--animate-shimmer);background-size:480px 100%}.glyph{font-family:var(--font-mono);color:var(--color-ink-dim);background:rgb(var(--hi)/.03);border:1px solid var(--color-border-soft);border-radius:8px;place-items:center;display:inline-grid}}@layer utilities{.collapse{visibility:collapse}.absolute{position:absolute}.fixed{position:fixed}.relative{position:relative}.sticky{position:sticky}.inset-0{inset:calc(var(--spacing) * 0)}.top-0{top:calc(var(--spacing) * 0)}.bottom-0{bottom:calc(var(--spacing) * 0)}.bottom-3{bottom:calc(var(--spacing) * 3)}.left-1\/2{left:50%}.z-10{z-index:10}.z-40{z-index:40}.z-50{z-index:50}.container{width:100%}@media (min-width:40rem){.container{max-width:40rem}}@media (min-width:48rem){.container{max-width:48rem}}@media (min-width:64rem){.container{max-width:64rem}}@media (min-width:80rem){.container{max-width:80rem}}@media (min-width:96rem){.container{max-width:96rem}}.-mx-5{margin-inline:calc(var(--spacing) * -5)}.mx-auto{margin-inline:auto}.-mt-2{margin-top:calc(var(--spacing) * -2)}.mt-0\.5{margin-top:calc(var(--spacing) * .5)}.mt-1{margin-top:calc(var(--spacing) * 1)}.mt-1\.5{margin-top:calc(var(--spacing) * 1.5)}.mt-2{margin-top:calc(var(--spacing) * 2)}.mt-2\.5{margin-top:calc(var(--spacing) * 2.5)}.mt-3{margin-top:calc(var(--spacing) * 3)}.mt-4{margin-top:calc(var(--spacing) * 4)}.mt-6{margin-top:calc(var(--spacing) * 6)}.mt-8{margin-top:calc(var(--spacing) * 8)}.mt-12{margin-top:calc(var(--spacing) * 12)}.mr-1{margin-right:calc(var(--spacing) * 1)}.mr-1\.5{margin-right:calc(var(--spacing) * 1.5)}.mb-0\.5{margin-bottom:calc(var(--spacing) * .5)}.mb-1{margin-bottom:calc(var(--spacing) * 1)}.mb-1\.5{margin-bottom:calc(var(--spacing) * 1.5)}.mb-2{margin-bottom:calc(var(--spacing) * 2)}.mb-2\.5{margin-bottom:calc(var(--spacing) * 2.5)}.mb-3{margin-bottom:calc(var(--spacing) * 3)}.mb-4{margin-bottom:calc(var(--spacing) * 4)}.mb-5{margin-bottom:calc(var(--spacing) * 5)}.mb-6{margin-bottom:calc(var(--spacing) * 6)}.mb-8{margin-bottom:calc(var(--spacing) * 8)}.ml-2{margin-left:calc(var(--spacing) * 2)}.ml-auto{margin-left:auto}.line-clamp-2{-webkit-line-clamp:2;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.block{display:block}.flex{display:flex}.grid{display:grid}.hidden{display:none}.inline-block{display:inline-block}.inline-flex{display:inline-flex}.inline-grid{display:inline-grid}.table{display:table}.h-14{height:calc(var(--spacing) * 14)}.h-40{height:calc(var(--spacing) * 40)}.h-\[480px\]{height:480px}.h-full{height:100%}.h-px{height:1px}.max-h-52{max-height:calc(var(--spacing) * 52)}.min-h-screen{min-height:100vh}.w-4{width:calc(var(--spacing) * 4)}.w-7{width:calc(var(--spacing) * 7)}.w-9{width:calc(var(--spacing) * 9)}.w-14{width:calc(var(--spacing) * 14)}.w-16{width:calc(var(--spacing) * 16)}.w-20{width:calc(var(--spacing) * 20)}.w-\[36px\]{width:36px}.w-\[52px\]{width:52px}.w-full{width:100%}.max-w-2xl{max-width:var(--container-2xl)}.max-w-3xl{max-width:var(--container-3xl)}.max-w-6xl{max-width:var(--container-6xl)}.max-w-\[340px\]{max-width:340px}.max-w-\[1400px\]{max-width:1400px}.min-w-0{min-width:calc(var(--spacing) * 0)}.flex-1{flex:1}.shrink-0{flex-shrink:0}.-translate-x-1\/2{--tw-translate-x:calc(calc(1 / 2 * 100%) * -1);translate:var(--tw-translate-x) var(--tw-translate-y)}.transform{transform:var(--tw-rotate-x,) var(--tw-rotate-y,) var(--tw-rotate-z,) var(--tw-skew-x,) var(--tw-skew-y,)}.animate-ping{animation:var(--animate-ping)}.animate-spin{animation:var(--animate-spin)}.cursor-pointer{cursor:pointer}.resize-none{resize:none}.grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.flex-col{flex-direction:column}.flex-wrap{flex-wrap:wrap}.place-items-center{place-items:center}.items-baseline{align-items:baseline}.items-center{align-items:center}.items-start{align-items:flex-start}.justify-between{justify-content:space-between}.justify-center{justify-content:center}.justify-end{justify-content:flex-end}.gap-1\.5{gap:calc(var(--spacing) * 1.5)}.gap-2{gap:calc(var(--spacing) * 2)}.gap-2\.5{gap:calc(var(--spacing) * 2.5)}.gap-3{gap:calc(var(--spacing) * 3)}.gap-3\.5{gap:calc(var(--spacing) * 3.5)}.gap-4{gap:calc(var(--spacing) * 4)}.gap-5{gap:calc(var(--spacing) * 5)}.gap-6{gap:calc(var(--spacing) * 6)}:where(.space-y-0\.5>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * .5) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * .5) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-1\.5>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 1.5) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 1.5) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-2>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 2) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 2) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-2\.5>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 2.5) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 2.5) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-3>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 3) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 3) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-4>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 4) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 4) * calc(1 - var(--tw-space-y-reverse)))}.gap-x-2{column-gap:calc(var(--spacing) * 2)}.gap-x-3{column-gap:calc(var(--spacing) * 3)}.gap-y-1{row-gap:calc(var(--spacing) * 1)}.gap-y-1\.5{row-gap:calc(var(--spacing) * 1.5)}:where(.divide-y>:not(:last-child)){--tw-divide-y-reverse:0;border-bottom-style:var(--tw-border-style);border-top-style:var(--tw-border-style);border-top-width:calc(1px * var(--tw-divide-y-reverse));border-bottom-width:calc(1px * calc(1 - var(--tw-divide-y-reverse)))}:where(.divide-border-soft>:not(:last-child)){border-color:var(--color-border-soft)}.truncate{text-overflow:ellipsis;white-space:nowrap}.overflow-hidden,.truncate{overflow:hidden}.overflow-y-auto{overflow-y:auto}.rounded-full{border-radius:3.40282e+38px}.rounded-lg{border-radius:var(--radius-lg)}.rounded-xl{border-radius:var(--radius-xl)}.border{border-style:var(--tw-border-style);border-width:1px}.border-t{border-top-style:var(--tw-border-style);border-top-width:1px}.border-b{border-bottom-style:var(--tw-border-style);border-bottom-width:1px}.border-l{border-left-style:var(--tw-border-style);border-left-width:1px}.border-border-soft{border-color:var(--color-border-soft)}.bg-border-soft{background-color:var(--color-border-soft)}.bg-ink{background-color:var(--color-ink)}.p-2\.5{padding:calc(var(--spacing) * 2.5)}.p-3{padding:calc(var(--spacing) * 3)}.p-3\.5{padding:calc(var(--spacing) * 3.5)}.p-4{padding:calc(var(--spacing) * 4)}.p-5{padding:calc(var(--spacing) * 5)}.p-10{padding:calc(var(--spacing) * 10)}.p-16{padding:calc(var(--spacing) * 16)}.px-3{padding-inline:calc(var(--spacing) * 3)}.px-3\.5{padding-inline:calc(var(--spacing) * 3.5)}.px-4{padding-inline:calc(var(--spacing) * 4)}.px-5{padding-inline:calc(var(--spacing) * 5)}.px-6{padding-inline:calc(var(--spacing) * 6)}.py-1{padding-block:calc(var(--spacing) * 1)}.py-1\.5{padding-block:calc(var(--spacing) * 1.5)}.py-2{padding-block:calc(var(--spacing) * 2)}.py-2\.5{padding-block:calc(var(--spacing) * 2.5)}.py-3{padding-block:calc(var(--spacing) * 3)}.py-3\.5{padding-block:calc(var(--spacing) * 3.5)}.py-4{padding-block:calc(var(--spacing) * 4)}.py-5{padding-block:calc(var(--spacing) * 5)}.py-8{padding-block:calc(var(--spacing) * 8)}.py-14{padding-block:calc(var(--spacing) * 14)}.pt-1{padding-top:calc(var(--spacing) * 1)}.pt-2{padding-top:calc(var(--spacing) * 2)}.pt-2\.5{padding-top:calc(var(--spacing) * 2.5)}.pt-4{padding-top:calc(var(--spacing) * 4)}.pt-5{padding-top:calc(var(--spacing) * 5)}.pb-3{padding-bottom:calc(var(--spacing) * 3)}.pb-4{padding-bottom:calc(var(--spacing) * 4)}.pb-8{padding-bottom:calc(var(--spacing) * 8)}.pb-10{padding-bottom:calc(var(--spacing) * 10)}.pb-24{padding-bottom:calc(var(--spacing) * 24)}.pl-2{padding-left:calc(var(--spacing) * 2)}.text-center{text-align:center}.text-left{text-align:left}.text-right{text-align:right}.text-2xs{font-size:var(--text-2xs);line-height:var(--tw-leading,var(--text-2xs--line-height))}.text-base{font-size:var(--text-base);line-height:var(--tw-leading,var(--text-base--line-height))}.text-lg{font-size:var(--text-lg);line-height:var(--tw-leading,var(--text-lg--line-height))}.text-sm{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}.text-xl{font-size:var(--text-xl);line-height:var(--tw-leading,var(--text-xl--line-height))}.text-xs{font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height))}.leading-relaxed{--tw-leading:var(--leading-relaxed);line-height:var(--leading-relaxed)}.leading-snug{--tw-leading:var(--leading-snug);line-height:var(--leading-snug)}.font-bold{--tw-font-weight:var(--font-weight-bold);font-weight:var(--font-weight-bold)}.font-medium{--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium)}.font-semibold{--tw-font-weight:var(--font-weight-semibold);font-weight:var(--font-weight-semibold)}.tracking-tight{--tw-tracking:var(--tracking-tight);letter-spacing:var(--tracking-tight)}.whitespace-nowrap{white-space:nowrap}.whitespace-pre-wrap{white-space:pre-wrap}.text-ink{color:var(--color-ink)}.text-ink-dim{color:var(--color-ink-dim)}.text-ink-faint{color:var(--color-ink-faint)}.uppercase{text-transform:uppercase}.underline{text-decoration-line:underline}.underline-offset-2{text-underline-offset:2px}.opacity-50{opacity:.5}.filter{filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}.transition{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to,opacity,box-shadow,transform,translate,scale,rotate,filter,-webkit-backdrop-filter,backdrop-filter,display,content-visibility,overlay,pointer-events;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-all{transition-property:all;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-colors{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.duration-500{--tw-duration:.5s;transition-duration:.5s}.select-none{-webkit-user-select:none;user-select:none}@media (hover:hover){.hover\:bg-\[rgb\(var\(--hi\)\/0\.04\)\]:hover{background-color:rgb(var(--hi)/.04)}.hover\:text-ink:hover{color:var(--color-ink)}.hover\:text-ink-dim:hover{color:var(--color-ink-dim)}}@media (min-width:40rem){.sm\:-mx-8{margin-inline:calc(var(--spacing) * -8)}.sm\:inline{display:inline}.sm\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.sm\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.sm\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.sm\:p-6{padding:calc(var(--spacing) * 6)}.sm\:p-8{padding:calc(var(--spacing) * 8)}.sm\:px-6{padding-inline:calc(var(--spacing) * 6)}.sm\:px-7{padding-inline:calc(var(--spacing) * 7)}.sm\:px-8{padding-inline:calc(var(--spacing) * 8)}}@media (min-width:48rem){.md\:flex{display:flex}.md\:inline{display:inline}}@media (min-width:64rem){.lg\:sticky{position:sticky}.lg\:top-\[72px\]{top:72px}.lg\:h-\[calc\(100vh-88px\)\]{height:calc(100vh - 88px)}.lg\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.lg\:grid-cols-\[minmax\(0\,1fr\)_380px\]{grid-template-columns:minmax(0,1fr) 380px}}}@font-face{font-family:Planet Kosmos;src:url(/fonts/PlanetKosmos.ttf)format("truetype");font-weight:400;font-style:normal;font-display:swap}@keyframes pulse-soft{0%,to{opacity:1}50%{opacity:.45}}@keyframes shimmer{0%{background-position:-480px 0}to{background-position:480px 0}}@keyframes rise{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}@keyframes fade-in{0%{opacity:0}to{opacity:1}}@keyframes slide-in{0%{opacity:0;transform:translate(40px)}to{opacity:1;transform:translate(0)}}:root{--hi:255 255 255;--ink-hi:#fff;--input-bg:#00000059;--input-bg-focus:#00000080;--status-warm:#e0e0e0;--status-cool:#c9c9c9;--logo-filter:none;color-scheme:dark}:root[data-theme=light]{--color-bg:#f7f7f5;--color-bg-soft:#efefed;--color-panel:#fff;--color-border:#d6d6d3;--color-border-soft:#e6e6e3;--color-ink:#161616;--color-ink-dim:#4d4d4d;--color-ink-faint:#6f6f6f;--hi:0 0 0;--ink-hi:#000;--input-bg:#0000000a;--input-bg-focus:#00000005;--status-warm:#333;--status-cool:#555;--logo-filter:invert(1);color-scheme:light}@media (prefers-color-scheme:light){:root:not([data-theme]){--color-bg:#f7f7f5;--color-bg-soft:#efefed;--color-panel:#fff;--color-border:#d6d6d3;--color-border-soft:#e6e6e3;--color-ink:#161616;--color-ink-dim:#4d4d4d;--color-ink-faint:#6f6f6f;--hi:0 0 0;--ink-hi:#000;--input-bg:#0000000a;--input-bg-focus:#00000005;--status-warm:#333;--status-cool:#555;--logo-filter:invert(1);color-scheme:light}}*{box-sizing:border-box}body,html{background:var(--color-bg);color:var(--color-ink);font-family:var(--font-sans);-webkit-font-smoothing:antialiased;text-rendering:optimizelegibility;margin:0;padding:0}body{background:radial-gradient(900px 460px at 50% -14%,rgb(var(--hi)/.05),transparent 60%),var(--color-bg);min-height:100vh}::selection{background:rgb(var(--hi)/.25)}:focus-visible{outline:2px solid rgb(var(--hi)/.55);outline-offset:2px;border-radius:6px}.input:focus-visible{outline:none}@media (prefers-reduced-motion:reduce){*,:after,:before{transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background:rgb(var(--hi)/.13);background-clip:padding-box;border:2px solid #0000;border-radius:8px}::-webkit-scrollbar-thumb:hover{background:rgb(var(--hi)/.24);background-clip:padding-box}.prose-report{color:var(--color-ink);line-height:1.7;font-size:var(--text-base)}.prose-report>:first-child{margin-top:0}.prose-report>:last-child{margin-bottom:0}.prose-report h1{letter-spacing:-.015em;border-bottom:1px solid var(--color-border-soft);margin:.2em 0 .7em;padding-bottom:.45em;font-size:1.65em;font-weight:700}.prose-report h2{letter-spacing:-.01em;margin:1.4em 0 .5em;font-size:1.25em;font-weight:700}.prose-report h3{margin:1.1em 0 .4em;font-size:1.05em;font-weight:700}.prose-report p{color:var(--color-ink-dim);margin:.7em 0}.prose-report li{color:var(--color-ink-dim);margin:.3em 0}.prose-report ol,.prose-report ul{margin:.6em 0;padding-left:1.4em}.prose-report li::marker{color:var(--color-ink-faint)}.prose-report code,.prose-report strong{color:var(--color-ink)}.prose-report code{font-family:var(--font-mono);background:rgb(var(--hi)/.07);border-radius:5px;padding:1.5px 6px;font-size:.85em}.prose-report pre{background:var(--input-bg);border:1px solid var(--color-border-soft);border-radius:10px;margin:.9em 0;padding:14px 16px;overflow-x:auto}.prose-report pre code{color:var(--color-ink-dim);background:0 0;padding:0}.prose-report a{color:var(--color-ink);text-underline-offset:3px;text-decoration:underline;-webkit-text-decoration-color:rgb(var(--hi)/.35);text-decoration-color:rgb(var(--hi)/.35)}.prose-report a:hover{-webkit-text-decoration-color:var(--ink-hi);text-decoration-color:var(--ink-hi)}.prose-report table{border-collapse:collapse;width:100%;margin:.9em 0;font-size:.9em;display:block;overflow-x:auto}.prose-report td,.prose-report th{border:1px solid var(--color-border);text-align:left;padding:7px 11px}.prose-report th{background:rgb(var(--hi)/.04);white-space:nowrap;font-family:var(--font-mono);font-size:.9em}.prose-report td{color:var(--color-ink-dim)}.prose-report tr:nth-child(2n) td{background:rgb(var(--hi)/.015)}.prose-report blockquote{border-left:2px solid var(--color-border);color:var(--color-ink-dim);margin:.8em 0;padding-left:14px}.prose-report hr{border:none;border-top:1px solid var(--color-border);margin:1.4em 0}.prose-compact{font-size:var(--text-sm);line-height:1.6}.prose-compact h1{margin:.2em 0 .5em;padding-bottom:.3em;font-size:1.2em}.prose-compact h2{margin:1em 0 .4em;font-size:1.1em}.prose-compact h3{margin:.8em 0 .3em;font-size:1em}.prose-compact p{margin:.5em 0}.prose-compact li{margin:.2em 0}.prose-compact ol,.prose-compact ul{margin:.4em 0;padding-left:1.3em}.prose-compact pre{margin:.6em 0;padding:10px 12px}.clamp-fade{-webkit-mask-image:linear-gradient(#000 55%,#0000);mask-image:linear-gradient(#000 55%,#0000)}.prose-dim{font-size:var(--text-xs)}.prose-dim li,.prose-dim p{color:var(--color-ink-faint)}.prose-dim strong{color:var(--color-ink-dim)}@property --tw-translate-x{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-y{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-z{syntax:"*";inherits:false;initial-value:0}@property --tw-rotate-x{syntax:"*";inherits:false}@property --tw-rotate-y{syntax:"*";inherits:false}@property --tw-rotate-z{syntax:"*";inherits:false}@property --tw-skew-x{syntax:"*";inherits:false}@property --tw-skew-y{syntax:"*";inherits:false}@property --tw-space-y-reverse{syntax:"*";inherits:false;initial-value:0}@property --tw-divide-y-reverse{syntax:"*";inherits:false;initial-value:0}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-leading{syntax:"*";inherits:false}@property --tw-font-weight{syntax:"*";inherits:false}@property --tw-tracking{syntax:"*";inherits:false}@property --tw-blur{syntax:"*";inherits:false}@property --tw-brightness{syntax:"*";inherits:false}@property --tw-contrast{syntax:"*";inherits:false}@property --tw-grayscale{syntax:"*";inherits:false}@property --tw-hue-rotate{syntax:"*";inherits:false}@property --tw-invert{syntax:"*";inherits:false}@property --tw-opacity{syntax:"*";inherits:false}@property --tw-saturate{syntax:"*";inherits:false}@property --tw-sepia{syntax:"*";inherits:false}@property --tw-drop-shadow{syntax:"*";inherits:false}@property --tw-drop-shadow-color{syntax:"*";inherits:false}@property --tw-drop-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-drop-shadow-size{syntax:"*";inherits:false}@property --tw-duration{syntax:"*";inherits:false}@keyframes spin{to{transform:rotate(1turn)}}@keyframes ping{75%,to{opacity:0;transform:scale(2)}}
|
|
3
|
+
/*! tailwindcss v4.3.0 | MIT License | https://tailwindcss.com */@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,::backdrop,:after,:before{--tw-translate-x:0;--tw-translate-y:0;--tw-translate-z:0;--tw-rotate-x:initial;--tw-rotate-y:initial;--tw-rotate-z:initial;--tw-skew-x:initial;--tw-skew-y:initial;--tw-space-y-reverse:0;--tw-divide-y-reverse:0;--tw-border-style:solid;--tw-leading:initial;--tw-font-weight:initial;--tw-tracking:initial;--tw-blur:initial;--tw-brightness:initial;--tw-contrast:initial;--tw-grayscale:initial;--tw-hue-rotate:initial;--tw-invert:initial;--tw-opacity:initial;--tw-saturate:initial;--tw-sepia:initial;--tw-drop-shadow:initial;--tw-drop-shadow-color:initial;--tw-drop-shadow-alpha:100%;--tw-drop-shadow-size:initial;--tw-duration:initial}}}@layer theme{:host,:root{--font-sans:var(--font-manrope),-apple-system,BlinkMacSystemFont,"Segoe UI",system-ui,sans-serif;--font-mono:var(--font-jbmono),"SF Mono","JetBrains Mono",ui-monospace,monospace;--spacing:.25rem;--container-2xl:42rem;--container-3xl:48rem;--container-6xl:72rem;--text-xs:12px;--text-xs--line-height:1.5;--text-sm:13px;--text-sm--line-height:1.5;--text-base:14px;--text-base--line-height:1.55;--text-lg:16px;--text-lg--line-height:1.45;--text-xl:20px;--text-xl--line-height:1.3;--font-weight-medium:500;--font-weight-semibold:600;--font-weight-bold:700;--tracking-tight:-.025em;--leading-snug:1.375;--leading-relaxed:1.625;--radius-lg:.5rem;--radius-xl:14px;--animate-spin:spin 1s linear infinite;--animate-ping:ping 1s cubic-bezier(0,0,.2,1) infinite;--default-transition-duration:.15s;--default-transition-timing-function:cubic-bezier(.4,0,.2,1);--default-font-family:var(--font-sans);--default-mono-font-family:var(--font-mono);--color-bg:#050505;--color-bg-soft:#0a0a0a;--color-panel:#0c0c0c;--color-border:#262626;--color-border-soft:#191919;--color-ink:#f2f2f2;--color-ink-dim:#b3b3b3;--color-ink-faint:#8c8c8c;--text-2xs:11px;--text-2xs--line-height:1.45;--animate-pulse-soft:pulse-soft 2s ease-in-out infinite;--animate-shimmer:shimmer 2.2s linear infinite;--animate-rise:rise .4s cubic-bezier(.16,1,.3,1);--animate-fade-in:fade-in .15s ease-out;--animate-slide-in:slide-in .22s cubic-bezier(.16,1,.3,1)}}@layer base{*,::backdrop,:after,:before{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}:host,html{-webkit-text-size-adjust:100%;tab-size:4;line-height:1.5;font-family:var(--default-font-family,ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,pre,samp{font-family:var(--default-mono-font-family,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring{outline:auto}progress{vertical-align:baseline}summary{display:list-item}menu,ol,ul{list-style:none}audio,canvas,embed,iframe,img,object,svg,video{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,optgroup,select,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab,red,red)){::placeholder{color:color-mix(in oklab,currentcolor 50%,transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit,::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-day-field,::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-hour-field,::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-millisecond-field,::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){appearance:button}::file-selector-button{appearance:button}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}}@layer components{.panel{background:linear-gradient(180deg,rgb(var(--hi)/.02),rgb(var(--hi)/0));background-color:var(--color-panel);border:1px solid var(--color-border-soft);border-radius:var(--radius-xl)}.panel-hover{transition:border-color .2s,transform .2s,box-shadow .2s}.panel-hover:hover{border-color:rgb(var(--hi)/.22);box-shadow:0 12px 40px -24px rgb(var(--hi)/.25)}.tile{background:rgb(var(--hi)/.02);border:1px solid var(--color-border-soft);border-radius:10px}.tile-hover{transition:border-color .16s,background .16s}.tile-hover:hover{border-color:rgb(var(--hi)/.3)}.spine{position:relative}.spine:before{content:"";background:var(--color-border);width:1px;position:absolute;top:10px;bottom:10px;left:10px}.spine-item{padding-left:34px;position:relative}.spine-node{background:var(--color-bg);width:21px;height:21px;font-family:var(--font-mono);color:var(--color-ink-dim);border-radius:999px;place-items:center;font-size:12px;display:grid;position:absolute;top:0;left:0}@media (max-width:640px){.spine:before{left:7px}.spine-item{padding-left:24px}.spine-node{width:15px;height:15px;font-size:10px}}.collapse-v{grid-template-rows:0fr;transition:grid-template-rows .28s;display:grid}.collapse-v[data-open=true]{grid-template-rows:1fr}.collapse-v>*{min-height:0;overflow:hidden}.font-display{font-family:"Planet Kosmos",var(--font-sans);letter-spacing:.04em;font-weight:400}.label{text-transform:uppercase;letter-spacing:.16em;color:var(--color-ink-faint);font-size:10px}.chip,.label{font-family:var(--font-mono);font-weight:500}.chip{letter-spacing:.02em;border:1px solid var(--color-border);color:var(--color-ink-dim);white-space:nowrap;border-radius:999px;align-items:center;gap:5px;padding:3px 9px;font-size:11px;display:inline-flex}a.chip,button.chip{cursor:pointer;transition:border-color .15s,color .15s}a.chip:hover,button.chip:hover{border-color:rgb(var(--hi)/.35);color:var(--color-ink)}.chip-solid{background:var(--color-ink);border-color:var(--color-ink);color:var(--color-bg);font-weight:700}.tab{font-size:var(--text-sm);color:var(--color-ink-faint);align-items:center;gap:7px;padding:9px 2px 11px;font-weight:500;transition:color .15s;display:inline-flex;position:relative}.tab:hover{color:var(--color-ink-dim)}.tab[data-active=true]{color:var(--color-ink)}.tab[data-active=true]:after{content:"";background:var(--color-ink);border-radius:2px;height:2px;position:absolute;bottom:-1px;left:0;right:0}.mono{font-family:var(--font-mono);font-variant-numeric:tabular-nums}.btn{font-size:var(--text-sm);border:1px solid var(--color-border);color:var(--color-ink);background:rgb(var(--hi)/.02);cursor:pointer;-webkit-user-select:none;user-select:none;white-space:nowrap;border-radius:9px;justify-content:center;align-items:center;gap:7px;padding:8px 15px;font-weight:600;transition:border-color .16s,background .16s,color .16s,filter .16s,transform 60ms;display:inline-flex}.btn:hover{border-color:rgb(var(--hi)/.35)}.btn:active{transform:translateY(1px)}.btn:disabled{opacity:.35;cursor:not-allowed;transform:none}.btn-primary{background:var(--color-ink);color:var(--color-bg);box-shadow:0 8px 28px -14px rgb(var(--hi)/.5);border-color:#0000}.btn-primary:hover{background:var(--ink-hi);border-color:#0000}.btn-ghost{color:var(--color-ink-dim);background:0 0;border-color:#0000}.btn-ghost:hover{background:rgb(var(--hi)/.05);color:var(--color-ink);border-color:#0000}.btn-danger:hover{border-color:rgb(var(--hi)/.6);color:var(--ink-hi);background:rgb(var(--hi)/.06)}.btn-sm{font-size:var(--text-xs);border-radius:7px;padding:5px 10px}.input{background:var(--input-bg);border:1px solid var(--color-border);width:100%;color:var(--color-ink);font-size:var(--text-base);border-radius:9px;outline:none;padding:10px 13px;font-family:inherit;transition:border-color .16s,box-shadow .16s,background .16s}.input:hover{border-color:#f2f2f247}@supports (color:color-mix(in lab,red,red)){.input:hover{border-color:color-mix(in srgb,var(--color-ink) 28%,transparent)}}.input:focus{border-color:rgb(var(--hi)/.45);box-shadow:0 0 0 3px rgb(var(--hi)/.07);background:var(--input-bg-focus)}.input::placeholder{color:var(--color-ink-faint)}.skeleton{background:linear-gradient(90deg,rgb(var(--hi)/.03),rgb(var(--hi)/.07),rgb(var(--hi)/.03));animation:var(--animate-shimmer);background-size:480px 100%}.glyph{font-family:var(--font-mono);color:var(--color-ink-dim);background:rgb(var(--hi)/.03);border:1px solid var(--color-border-soft);border-radius:8px;place-items:center;display:inline-grid}}@layer utilities{.collapse{visibility:collapse}.absolute{position:absolute}.fixed{position:fixed}.relative{position:relative}.sticky{position:sticky}.inset-0{inset:calc(var(--spacing) * 0)}.top-0{top:calc(var(--spacing) * 0)}.bottom-0{bottom:calc(var(--spacing) * 0)}.bottom-3{bottom:calc(var(--spacing) * 3)}.left-1\/2{left:50%}.z-10{z-index:10}.z-40{z-index:40}.z-50{z-index:50}.container{width:100%}@media (min-width:40rem){.container{max-width:40rem}}@media (min-width:48rem){.container{max-width:48rem}}@media (min-width:64rem){.container{max-width:64rem}}@media (min-width:80rem){.container{max-width:80rem}}@media (min-width:96rem){.container{max-width:96rem}}.-mx-5{margin-inline:calc(var(--spacing) * -5)}.mx-auto{margin-inline:auto}.-mt-2{margin-top:calc(var(--spacing) * -2)}.mt-0\.5{margin-top:calc(var(--spacing) * .5)}.mt-1{margin-top:calc(var(--spacing) * 1)}.mt-1\.5{margin-top:calc(var(--spacing) * 1.5)}.mt-2{margin-top:calc(var(--spacing) * 2)}.mt-2\.5{margin-top:calc(var(--spacing) * 2.5)}.mt-3{margin-top:calc(var(--spacing) * 3)}.mt-4{margin-top:calc(var(--spacing) * 4)}.mt-6{margin-top:calc(var(--spacing) * 6)}.mt-8{margin-top:calc(var(--spacing) * 8)}.mt-12{margin-top:calc(var(--spacing) * 12)}.mr-1{margin-right:calc(var(--spacing) * 1)}.mr-1\.5{margin-right:calc(var(--spacing) * 1.5)}.mb-0\.5{margin-bottom:calc(var(--spacing) * .5)}.mb-1{margin-bottom:calc(var(--spacing) * 1)}.mb-1\.5{margin-bottom:calc(var(--spacing) * 1.5)}.mb-2{margin-bottom:calc(var(--spacing) * 2)}.mb-2\.5{margin-bottom:calc(var(--spacing) * 2.5)}.mb-3{margin-bottom:calc(var(--spacing) * 3)}.mb-4{margin-bottom:calc(var(--spacing) * 4)}.mb-5{margin-bottom:calc(var(--spacing) * 5)}.mb-6{margin-bottom:calc(var(--spacing) * 6)}.mb-8{margin-bottom:calc(var(--spacing) * 8)}.ml-2{margin-left:calc(var(--spacing) * 2)}.ml-auto{margin-left:auto}.line-clamp-2{-webkit-line-clamp:2;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.block{display:block}.flex{display:flex}.grid{display:grid}.hidden{display:none}.inline-block{display:inline-block}.inline-flex{display:inline-flex}.inline-grid{display:inline-grid}.table{display:table}.h-14{height:calc(var(--spacing) * 14)}.h-40{height:calc(var(--spacing) * 40)}.h-\[480px\]{height:480px}.h-full{height:100%}.h-px{height:1px}.max-h-52{max-height:calc(var(--spacing) * 52)}.min-h-screen{min-height:100vh}.w-4{width:calc(var(--spacing) * 4)}.w-7{width:calc(var(--spacing) * 7)}.w-9{width:calc(var(--spacing) * 9)}.w-14{width:calc(var(--spacing) * 14)}.w-16{width:calc(var(--spacing) * 16)}.w-20{width:calc(var(--spacing) * 20)}.w-\[36px\]{width:36px}.w-\[52px\]{width:52px}.w-full{width:100%}.max-w-2xl{max-width:var(--container-2xl)}.max-w-3xl{max-width:var(--container-3xl)}.max-w-6xl{max-width:var(--container-6xl)}.max-w-\[340px\]{max-width:340px}.max-w-\[1400px\]{max-width:1400px}.min-w-0{min-width:calc(var(--spacing) * 0)}.flex-1{flex:1}.shrink-0{flex-shrink:0}.-translate-x-1\/2{--tw-translate-x:calc(calc(1 / 2 * 100%) * -1);translate:var(--tw-translate-x) var(--tw-translate-y)}.transform{transform:var(--tw-rotate-x,) var(--tw-rotate-y,) var(--tw-rotate-z,) var(--tw-skew-x,) var(--tw-skew-y,)}.animate-ping{animation:var(--animate-ping)}.animate-spin{animation:var(--animate-spin)}.cursor-pointer{cursor:pointer}.resize-none{resize:none}.grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.flex-col{flex-direction:column}.flex-wrap{flex-wrap:wrap}.place-items-center{place-items:center}.items-baseline{align-items:baseline}.items-center{align-items:center}.items-start{align-items:flex-start}.justify-between{justify-content:space-between}.justify-center{justify-content:center}.justify-end{justify-content:flex-end}.gap-1\.5{gap:calc(var(--spacing) * 1.5)}.gap-2{gap:calc(var(--spacing) * 2)}.gap-2\.5{gap:calc(var(--spacing) * 2.5)}.gap-3{gap:calc(var(--spacing) * 3)}.gap-3\.5{gap:calc(var(--spacing) * 3.5)}.gap-4{gap:calc(var(--spacing) * 4)}.gap-5{gap:calc(var(--spacing) * 5)}.gap-6{gap:calc(var(--spacing) * 6)}:where(.space-y-0\.5>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * .5) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * .5) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-1\.5>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 1.5) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 1.5) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-2>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 2) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 2) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-2\.5>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 2.5) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 2.5) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-3>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 3) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 3) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-4>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 4) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 4) * calc(1 - var(--tw-space-y-reverse)))}.gap-x-2{column-gap:calc(var(--spacing) * 2)}.gap-x-3{column-gap:calc(var(--spacing) * 3)}.gap-y-1{row-gap:calc(var(--spacing) * 1)}.gap-y-1\.5{row-gap:calc(var(--spacing) * 1.5)}:where(.divide-y>:not(:last-child)){--tw-divide-y-reverse:0;border-bottom-style:var(--tw-border-style);border-top-style:var(--tw-border-style);border-top-width:calc(1px * var(--tw-divide-y-reverse));border-bottom-width:calc(1px * calc(1 - var(--tw-divide-y-reverse)))}:where(.divide-border-soft>:not(:last-child)){border-color:var(--color-border-soft)}.truncate{text-overflow:ellipsis;white-space:nowrap}.overflow-hidden,.truncate{overflow:hidden}.overflow-y-auto{overflow-y:auto}.rounded-full{border-radius:3.40282e+38px}.rounded-lg{border-radius:var(--radius-lg)}.rounded-xl{border-radius:var(--radius-xl)}.border{border-style:var(--tw-border-style);border-width:1px}.border-t{border-top-style:var(--tw-border-style);border-top-width:1px}.border-b{border-bottom-style:var(--tw-border-style);border-bottom-width:1px}.border-l{border-left-style:var(--tw-border-style);border-left-width:1px}.border-border-soft{border-color:var(--color-border-soft)}.bg-border-soft{background-color:var(--color-border-soft)}.bg-ink{background-color:var(--color-ink)}.p-2\.5{padding:calc(var(--spacing) * 2.5)}.p-3{padding:calc(var(--spacing) * 3)}.p-3\.5{padding:calc(var(--spacing) * 3.5)}.p-4{padding:calc(var(--spacing) * 4)}.p-5{padding:calc(var(--spacing) * 5)}.p-10{padding:calc(var(--spacing) * 10)}.p-16{padding:calc(var(--spacing) * 16)}.px-3{padding-inline:calc(var(--spacing) * 3)}.px-3\.5{padding-inline:calc(var(--spacing) * 3.5)}.px-4{padding-inline:calc(var(--spacing) * 4)}.px-5{padding-inline:calc(var(--spacing) * 5)}.px-6{padding-inline:calc(var(--spacing) * 6)}.py-1{padding-block:calc(var(--spacing) * 1)}.py-1\.5{padding-block:calc(var(--spacing) * 1.5)}.py-2{padding-block:calc(var(--spacing) * 2)}.py-2\.5{padding-block:calc(var(--spacing) * 2.5)}.py-3{padding-block:calc(var(--spacing) * 3)}.py-3\.5{padding-block:calc(var(--spacing) * 3.5)}.py-4{padding-block:calc(var(--spacing) * 4)}.py-5{padding-block:calc(var(--spacing) * 5)}.py-8{padding-block:calc(var(--spacing) * 8)}.py-14{padding-block:calc(var(--spacing) * 14)}.pt-1{padding-top:calc(var(--spacing) * 1)}.pt-2{padding-top:calc(var(--spacing) * 2)}.pt-2\.5{padding-top:calc(var(--spacing) * 2.5)}.pt-4{padding-top:calc(var(--spacing) * 4)}.pt-5{padding-top:calc(var(--spacing) * 5)}.pb-2{padding-bottom:calc(var(--spacing) * 2)}.pb-3{padding-bottom:calc(var(--spacing) * 3)}.pb-4{padding-bottom:calc(var(--spacing) * 4)}.pb-8{padding-bottom:calc(var(--spacing) * 8)}.pb-10{padding-bottom:calc(var(--spacing) * 10)}.pb-24{padding-bottom:calc(var(--spacing) * 24)}.pl-2{padding-left:calc(var(--spacing) * 2)}.text-center{text-align:center}.text-left{text-align:left}.text-right{text-align:right}.text-2xs{font-size:var(--text-2xs);line-height:var(--tw-leading,var(--text-2xs--line-height))}.text-base{font-size:var(--text-base);line-height:var(--tw-leading,var(--text-base--line-height))}.text-lg{font-size:var(--text-lg);line-height:var(--tw-leading,var(--text-lg--line-height))}.text-sm{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}.text-xl{font-size:var(--text-xl);line-height:var(--tw-leading,var(--text-xl--line-height))}.text-xs{font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height))}.leading-relaxed{--tw-leading:var(--leading-relaxed);line-height:var(--leading-relaxed)}.leading-snug{--tw-leading:var(--leading-snug);line-height:var(--leading-snug)}.font-bold{--tw-font-weight:var(--font-weight-bold);font-weight:var(--font-weight-bold)}.font-medium{--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium)}.font-semibold{--tw-font-weight:var(--font-weight-semibold);font-weight:var(--font-weight-semibold)}.tracking-tight{--tw-tracking:var(--tracking-tight);letter-spacing:var(--tracking-tight)}.whitespace-nowrap{white-space:nowrap}.whitespace-pre-wrap{white-space:pre-wrap}.text-ink{color:var(--color-ink)}.text-ink-dim{color:var(--color-ink-dim)}.text-ink-faint{color:var(--color-ink-faint)}.uppercase{text-transform:uppercase}.underline{text-decoration-line:underline}.underline-offset-2{text-underline-offset:2px}.opacity-50{opacity:.5}.filter{filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}.transition{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to,opacity,box-shadow,transform,translate,scale,rotate,filter,-webkit-backdrop-filter,backdrop-filter,display,content-visibility,overlay,pointer-events;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-all{transition-property:all;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-colors{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.duration-500{--tw-duration:.5s;transition-duration:.5s}.select-none{-webkit-user-select:none;user-select:none}@media (hover:hover){.hover\:bg-\[rgb\(var\(--hi\)\/0\.04\)\]:hover{background-color:rgb(var(--hi)/.04)}.hover\:text-ink:hover{color:var(--color-ink)}.hover\:text-ink-dim:hover{color:var(--color-ink-dim)}}@media (min-width:40rem){.sm\:-mx-8{margin-inline:calc(var(--spacing) * -8)}.sm\:block{display:block}.sm\:inline{display:inline}.sm\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.sm\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.sm\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.sm\:p-6{padding:calc(var(--spacing) * 6)}.sm\:p-8{padding:calc(var(--spacing) * 8)}.sm\:px-6{padding-inline:calc(var(--spacing) * 6)}.sm\:px-7{padding-inline:calc(var(--spacing) * 7)}.sm\:px-8{padding-inline:calc(var(--spacing) * 8)}}@media (min-width:48rem){.md\:flex{display:flex}.md\:inline{display:inline}}@media (min-width:64rem){.lg\:sticky{position:sticky}.lg\:top-\[72px\]{top:72px}.lg\:h-\[calc\(100vh-88px\)\]{height:calc(100vh - 88px)}.lg\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.lg\:grid-cols-\[minmax\(0\,1fr\)_380px\]{grid-template-columns:minmax(0,1fr) 380px}}}@font-face{font-family:Planet Kosmos;src:url(/fonts/PlanetKosmos.ttf)format("truetype");font-weight:400;font-style:normal;font-display:swap}@keyframes pulse-soft{0%,to{opacity:1}50%{opacity:.45}}@keyframes shimmer{0%{background-position:-480px 0}to{background-position:480px 0}}@keyframes rise{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}@keyframes fade-in{0%{opacity:0}to{opacity:1}}@keyframes slide-in{0%{opacity:0;transform:translate(40px)}to{opacity:1;transform:translate(0)}}:root{--hi:255 255 255;--ink-hi:#fff;--input-bg:#00000059;--input-bg-focus:#00000080;--status-warm:#e0e0e0;--status-cool:#c9c9c9;--logo-filter:none;color-scheme:dark}:root[data-theme=light]{--color-bg:#f7f7f5;--color-bg-soft:#efefed;--color-panel:#fff;--color-border:#d6d6d3;--color-border-soft:#e6e6e3;--color-ink:#161616;--color-ink-dim:#4d4d4d;--color-ink-faint:#6f6f6f;--hi:0 0 0;--ink-hi:#000;--input-bg:#0000000a;--input-bg-focus:#00000005;--status-warm:#333;--status-cool:#555;--logo-filter:invert(1);color-scheme:light}@media (prefers-color-scheme:light){:root:not([data-theme]){--color-bg:#f7f7f5;--color-bg-soft:#efefed;--color-panel:#fff;--color-border:#d6d6d3;--color-border-soft:#e6e6e3;--color-ink:#161616;--color-ink-dim:#4d4d4d;--color-ink-faint:#6f6f6f;--hi:0 0 0;--ink-hi:#000;--input-bg:#0000000a;--input-bg-focus:#00000005;--status-warm:#333;--status-cool:#555;--logo-filter:invert(1);color-scheme:light}}*{box-sizing:border-box}body,html{background:var(--color-bg);color:var(--color-ink);font-family:var(--font-sans);-webkit-font-smoothing:antialiased;text-rendering:optimizelegibility;margin:0;padding:0}body{background:radial-gradient(900px 460px at 50% -14%,rgb(var(--hi)/.05),transparent 60%),var(--color-bg);min-height:100vh}::selection{background:rgb(var(--hi)/.25)}:focus-visible{outline:2px solid rgb(var(--hi)/.55);outline-offset:2px;border-radius:6px}.input:focus-visible{outline:none}@media (prefers-reduced-motion:reduce){*,:after,:before{transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background:rgb(var(--hi)/.13);background-clip:padding-box;border:2px solid #0000;border-radius:8px}::-webkit-scrollbar-thumb:hover{background:rgb(var(--hi)/.24);background-clip:padding-box}.prose-report{color:var(--color-ink);line-height:1.7;font-size:var(--text-base)}.prose-report>:first-child{margin-top:0}.prose-report>:last-child{margin-bottom:0}.prose-report h1{letter-spacing:-.015em;border-bottom:1px solid var(--color-border-soft);margin:.2em 0 .7em;padding-bottom:.45em;font-size:1.65em;font-weight:700}.prose-report h2{letter-spacing:-.01em;margin:1.4em 0 .5em;font-size:1.25em;font-weight:700}.prose-report h3{margin:1.1em 0 .4em;font-size:1.05em;font-weight:700}.prose-report p{color:var(--color-ink-dim);margin:.7em 0}.prose-report li{color:var(--color-ink-dim);margin:.3em 0}.prose-report ol,.prose-report ul{margin:.6em 0;padding-left:1.4em}.prose-report li::marker{color:var(--color-ink-faint)}.prose-report code,.prose-report strong{color:var(--color-ink)}.prose-report code{font-family:var(--font-mono);background:rgb(var(--hi)/.07);border-radius:5px;padding:1.5px 6px;font-size:.85em}.prose-report pre{background:var(--input-bg);border:1px solid var(--color-border-soft);border-radius:10px;margin:.9em 0;padding:14px 16px;overflow-x:auto}.prose-report pre code{color:var(--color-ink-dim);background:0 0;padding:0}.prose-report a{color:var(--color-ink);text-underline-offset:3px;text-decoration:underline;-webkit-text-decoration-color:rgb(var(--hi)/.35);text-decoration-color:rgb(var(--hi)/.35)}.prose-report a:hover{-webkit-text-decoration-color:var(--ink-hi);text-decoration-color:var(--ink-hi)}.prose-report table{border-collapse:collapse;width:100%;margin:.9em 0;font-size:.9em;display:block;overflow-x:auto}.prose-report td,.prose-report th{border:1px solid var(--color-border);text-align:left;padding:7px 11px}.prose-report th{background:rgb(var(--hi)/.04);white-space:nowrap;font-family:var(--font-mono);font-size:.9em}.prose-report td{color:var(--color-ink-dim)}.prose-report tr:nth-child(2n) td{background:rgb(var(--hi)/.015)}.prose-report blockquote{border-left:2px solid var(--color-border);color:var(--color-ink-dim);margin:.8em 0;padding-left:14px}.prose-report hr{border:none;border-top:1px solid var(--color-border);margin:1.4em 0}.prose-compact{font-size:var(--text-sm);line-height:1.6}.prose-compact h1{margin:.2em 0 .5em;padding-bottom:.3em;font-size:1.2em}.prose-compact h2{margin:1em 0 .4em;font-size:1.1em}.prose-compact h3{margin:.8em 0 .3em;font-size:1em}.prose-compact p{margin:.5em 0}.prose-compact li{margin:.2em 0}.prose-compact ol,.prose-compact ul{margin:.4em 0;padding-left:1.3em}.prose-compact pre{margin:.6em 0;padding:10px 12px}.clamp-fade{-webkit-mask-image:linear-gradient(#000 55%,#0000);mask-image:linear-gradient(#000 55%,#0000)}.prose-dim{font-size:var(--text-xs)}.prose-dim li,.prose-dim p{color:var(--color-ink-faint)}.prose-dim strong{color:var(--color-ink-dim)}@property --tw-translate-x{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-y{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-z{syntax:"*";inherits:false;initial-value:0}@property --tw-rotate-x{syntax:"*";inherits:false}@property --tw-rotate-y{syntax:"*";inherits:false}@property --tw-rotate-z{syntax:"*";inherits:false}@property --tw-skew-x{syntax:"*";inherits:false}@property --tw-skew-y{syntax:"*";inherits:false}@property --tw-space-y-reverse{syntax:"*";inherits:false;initial-value:0}@property --tw-divide-y-reverse{syntax:"*";inherits:false;initial-value:0}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-leading{syntax:"*";inherits:false}@property --tw-font-weight{syntax:"*";inherits:false}@property --tw-tracking{syntax:"*";inherits:false}@property --tw-blur{syntax:"*";inherits:false}@property --tw-brightness{syntax:"*";inherits:false}@property --tw-contrast{syntax:"*";inherits:false}@property --tw-grayscale{syntax:"*";inherits:false}@property --tw-hue-rotate{syntax:"*";inherits:false}@property --tw-invert{syntax:"*";inherits:false}@property --tw-opacity{syntax:"*";inherits:false}@property --tw-saturate{syntax:"*";inherits:false}@property --tw-sepia{syntax:"*";inherits:false}@property --tw-drop-shadow{syntax:"*";inherits:false}@property --tw-drop-shadow-color{syntax:"*";inherits:false}@property --tw-drop-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-drop-shadow-size{syntax:"*";inherits:false}@property --tw-duration{syntax:"*";inherits:false}@keyframes spin{to{transform:rotate(1turn)}}@keyframes ping{75%,to{opacity:0;transform:scale(2)}}
|