@auto-ai/agent 2.1.182 → 2.1.187
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/safe-a/404/index.html +1 -1
- package/dist/safe-a/404.html +1 -1
- package/dist/safe-a/_next/static/chunks/074a7a892d554827.js +1 -0
- package/dist/safe-a/_next/static/chunks/{e42498eec0c8d570.js → 0fde2a8866dd02fc.js} +1 -1
- package/dist/safe-a/_next/static/chunks/26f5809c84b263c0.css +7 -0
- package/dist/safe-a/_next/static/chunks/2ba468c7afb852bd.js +1 -0
- package/dist/safe-a/_next/static/chunks/{5434628aad5e5bc3.js → 2bac8f0a4e762326.js} +1 -1
- package/dist/safe-a/_next/static/chunks/{7f341bc0fb5ff708.js → 2d7f6aa6628bccd0.js} +1 -1
- package/dist/safe-a/_next/static/chunks/33678ff357855160.js +1 -0
- package/dist/safe-a/_next/static/chunks/5022180fa579a73a.js +1 -0
- package/dist/safe-a/_next/static/chunks/518d4c901787979a.js +1 -0
- package/dist/safe-a/_next/static/chunks/811897ffb3636359.js +1 -0
- package/dist/safe-a/_next/static/chunks/96feacf5b8cde310.js +1 -0
- package/dist/safe-a/_next/static/chunks/a56ab101155b1427.js +1 -0
- package/dist/safe-a/_next/static/chunks/a5b851b271052e89.js +1 -0
- package/dist/safe-a/_next/static/chunks/a6aafbc087d75717.js +1 -0
- package/dist/safe-a/_next/static/chunks/ceead8f438e931f7.js +1 -0
- package/dist/safe-a/_next/static/chunks/d16ae4f1eb111da5.js +1 -0
- package/dist/safe-a/_next/static/chunks/d47487bdc4a277fd.css +1 -0
- package/dist/safe-a/_next/static/chunks/e00679a7df05e016.js +1 -0
- package/dist/safe-a/_next/static/chunks/f1dde9052e8d1d3d.js +1 -0
- package/dist/safe-a/index.html +2 -2
- package/dist/safe-a/index.txt +26 -27
- package/dist/safe-a/manage/about/index.html +2 -2
- package/dist/safe-a/manage/about/index.txt +11 -11
- package/dist/safe-a/manage/env/index.html +2 -2
- package/dist/safe-a/manage/env/index.txt +13 -13
- package/dist/safe-a/manage/geelib/index.html +2 -2
- package/dist/safe-a/manage/geelib/index.txt +13 -13
- package/dist/safe-a/manage/general/index.html +2 -2
- package/dist/safe-a/manage/general/index.txt +11 -11
- package/dist/safe-a/manage/git/index.html +2 -2
- package/dist/safe-a/manage/git/index.txt +13 -13
- package/dist/safe-a/manage/im/index.html +2 -2
- package/dist/safe-a/manage/im/index.txt +13 -13
- package/dist/safe-a/manage/index.html +2 -2
- package/dist/safe-a/manage/index.txt +8 -8
- package/dist/safe-a/manage/library/index.html +2 -2
- package/dist/safe-a/manage/library/index.txt +11 -11
- package/dist/safe-a/manage/mcp/index.html +2 -2
- package/dist/safe-a/manage/mcp/index.txt +11 -11
- package/dist/safe-a/manage/permissions/index.html +2 -2
- package/dist/safe-a/manage/permissions/index.txt +11 -11
- package/dist/safe-a/manage/skills/index.html +2 -2
- package/dist/safe-a/manage/skills/index.txt +11 -11
- package/dist/safe-a/manage/system/index.html +2 -2
- package/dist/safe-a/manage/system/index.txt +13 -13
- package/dist/safe-a/manage/task/index.html +2 -2
- package/dist/safe-a/manage/task/index.txt +11 -11
- package/dist/safe-a/manage/teams/index.html +2 -2
- package/dist/safe-a/manage/teams/index.txt +11 -11
- package/dist/safe-a/manage/tools/index.html +2 -2
- package/dist/safe-a/manage/tools/index.txt +11 -11
- package/dist/ws-test/ws-test.css +89 -1
- package/dist/ws-test/ws-test.html +1 -0
- package/dist/ws-test/ws-test.js +276 -26
- package/mcps-runtime/claude-ws-channel/.mcp.json +18 -0
- package/mcps-runtime/claude-ws-channel/server/boot.mjs +30 -0
- package/mcps-runtime/claude-ws-channel/server/gateway.bundle.mjs +410306 -0
- package/mcps-runtime/claude-ws-channel/server/index.mjs +144 -0
- package/package.json +6 -6
- package/dist/safe-a/_next/static/chunks/044a195f3374d4b6.js +0 -1
- package/dist/safe-a/_next/static/chunks/0a7d5a51593d8c2f.js +0 -1
- package/dist/safe-a/_next/static/chunks/12fa90667e8fb0e3.js +0 -1
- package/dist/safe-a/_next/static/chunks/4682815462207a37.js +0 -1
- package/dist/safe-a/_next/static/chunks/5b44bdce5e5ebd06.js +0 -1
- package/dist/safe-a/_next/static/chunks/5b50a8c524507ee0.js +0 -1
- package/dist/safe-a/_next/static/chunks/66cdfa3e49dc50f3.js +0 -1
- package/dist/safe-a/_next/static/chunks/6b646b7144f0eb9e.js +0 -1
- package/dist/safe-a/_next/static/chunks/804376464cecbc36.css +0 -7
- package/dist/safe-a/_next/static/chunks/812fc979171f7ded.js +0 -1
- package/dist/safe-a/_next/static/chunks/8f31f818efd25c0f.js +0 -1
- package/dist/safe-a/_next/static/chunks/9edf76a11bf93bcc.js +0 -1
- package/dist/safe-a/_next/static/chunks/b63afdaa820ddad4.js +0 -1
- package/dist/safe-a/_next/static/chunks/b9590be9854a83fb.js +0 -1
- package/dist/safe-a/_next/static/chunks/dc7a9ce680ab0ce4.css +0 -1
- package/dist/safe-a/_next/static/chunks/dd98ccfeaf6ec72e.js +0 -1
- package/dist/safe-a/_next/static/chunks/e847138f5b487d3d.js +0 -1
- package/dist/safe-a/_next/static/chunks/f3c9f6b778f4cf1a.js +0 -1
- package/dist/safe-a/_next/static/chunks/fa686b4028e991a5.js +0 -1
- /package/dist/safe-a/_next/static/{CAF1wzpCLjCuxKaGvx09h → BDdAEI0K2Jg8YCxVKfY0_}/_buildManifest.js +0 -0
- /package/dist/safe-a/_next/static/{CAF1wzpCLjCuxKaGvx09h → BDdAEI0K2Jg8YCxVKfY0_}/_clientMiddlewareManifest.json +0 -0
- /package/dist/safe-a/_next/static/{CAF1wzpCLjCuxKaGvx09h → BDdAEI0K2Jg8YCxVKfY0_}/_ssgManifest.js +0 -0
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
@font-face{font-family:Sora;font-style:normal;font-weight:100 800;font-display:swap;src:url(../media/b886574ba42c3409-s.1f4af8e6.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,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:Sora;font-style:normal;font-weight:100 800;font-display:swap;src:url(../media/c41ca59f1c34ba31-s.p.e20f337c.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Sora Fallback;src:local(Arial);ascent-override:85.29%;descent-override:25.5%;line-gap-override:0.0%;size-adjust:113.73%}.sora_a6e0e515-module__NbNjtG__className{font-family:Sora,Sora Fallback;font-style:normal}.sora_a6e0e515-module__NbNjtG__variable{--font-display:"Sora","Sora Fallback"}
|
|
2
|
-
@font-face{font-family:DM Sans;font-style:normal;font-weight:100 1000;font-display:swap;src:url(../media/c3cb240f9c892514-s.d8e4bce2.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,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:DM Sans;font-style:normal;font-weight:100 1000;font-display:swap;src:url(../media/5c285b27cdda1fe8-s.p.a62025f2.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:DM Sans Fallback;src:local(Arial);ascent-override:94.9%;descent-override:29.66%;line-gap-override:0.0%;size-adjust:104.53%}.dm_sans_fa25cdfd-module__fB5nTW__className{font-family:DM Sans,DM Sans Fallback;font-style:normal}.dm_sans_fa25cdfd-module__fB5nTW__variable{--font-body:"DM Sans","DM Sans Fallback"}
|
|
3
|
-
@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:100 800;font-display:swap;src:url(../media/13bf9871fe164e7f-s.f2220059.woff2)format("woff2");unicode-range:U+460-52F,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(../media/cc545e633e20c56d-s.f6f1950f.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:100 800;font-display:swap;src:url(../media/71b036adf157cdcf-s.bd5f4d11.woff2)format("woff2");unicode-range:U+370-377,U+37A-37F,U+384-38A,U+38C,U+38E-3A1,U+3A3-3FF}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:100 800;font-display:swap;src:url(../media/89b21bb081cb7469-s.51c18f09.woff2)format("woff2");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:100 800;font-display:swap;src:url(../media/3fe682a82f50d426-s.23358719.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,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(../media/70bc3e132a0a741e-s.p.15008bfb.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,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.0%;size-adjust:134.59%}.jetbrains_mono_2b1eae20-module__XfFTLG__className{font-family:JetBrains Mono,JetBrains Mono Fallback;font-style:normal}.jetbrains_mono_2b1eae20-module__XfFTLG__variable{--font-mono:"JetBrains Mono","JetBrains Mono Fallback"}
|
|
4
|
-
:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--ds-bg:#fff;--ds-main-tint:#fbfbfc;--ds-sidebar:#f1f1f1;--ds-border:#efefef;--ds-border-hover:#d1d5db;--ds-icon-btn-disabled:var(--text-secondary);--ds-text:#111827;--ds-muted:#6b7280;--ds-accent:#1db887;--ds-accent-hover:#18a578;--ds-item-hover:#ededed;--ds-item-active:#e8e8e8;--ds-item-bg-hover:#efeeeb;--ds-ok:#059669;--ds-danger:#dc2626;--ds-log-bg:#f8f9fb;--ds-log-border:#e5e7eb;--ds-radius:14px;--ds-radius-sm:10px;--green:#3ddc84;--green-dark:#009f6b;--green-light:#ecf7f2;--green-dim:#1a4a30;--blue:#4a9eff;--blue-dim:#0d2a4a;--amber:#ffb547;--amber-dim:#3a2a0a;--red:#ff5f5f;--red-dim:#3a1010;--purple:#b07fff;--cyan:#4ae3d4;--ts:#567;--border-light:rgba(255,255,255,.5);--border-mid:rgba(255,255,255,.18);--text-primary:#f0ede8;--text-secondary:#a8a8a2;--text-tertiary:#6e6e68;--text-placeholder:#9ca3af;--icon-color:#3f3f46;--avatar-bg:#9a3b32;--surface-1:#fff;--surface-2:#f5f5f5;--surface-3:#f9f9f9;--surface-4:#eceef2;--surface-5:#e8e8e8;--border-subtle:#eceef2;--border-default:#efefef;--border-hover:#d1d5db;--border-code:#cecece;--border-focus:var(--ds-accent);--shadow-sm:0 1px 3px rgba(15,23,42,.06),0 1px 2px rgba(15,23,42,.04);--shadow-md:0 4px 16px rgba(15,23,42,.08),0 2px 4px rgba(15,23,42,.04);--shadow-lg:0 12px 40px rgba(15,23,42,.1),0 4px 12px rgba(15,23,42,.06);--shadow-float:0 20px 60px rgba(15,23,42,.15),0 8px 20px rgba(15,23,42,.08);--shadow-sidebar:2px 0 12px rgba(15,23,42,.03);--shadow-composer:0 4px 20px rgba(15,23,42,.07),0 0 0 .5px rgba(15,23,42,.06);--shadow-composer-hover:0 4px 20px rgba(15,23,42,.07),0 0 0 .5px rgba(15,23,42,.12);--shadow-composer-focus:0 12px 32px rgba(15,23,42,.18),0 0 0 .5px rgba(15,23,42,.22);--shadow-send:0 2px 8px rgba(29,184,135,.35);--btn-radius:10px;--btn-radius-sm:6px;--btn-radius-lg:14px;--btn-radius-pill:999px;--btn-height:36px;--btn-height-sm:28px;--text-xs:.6875rem;--text-sm:.75rem;--text-base:.875rem;--text-lg:1rem;--text-xl:1.25rem;--font-display:"Sora","PingFang SC","Microsoft YaHei",sans-serif;--font-body:"DM Sans","PingFang SC","Microsoft YaHei",sans-serif;--font-mono:"JetBrains Mono","SF Mono","Consolas",monospace;--space-1:.25rem;--space-1-5:.375rem;--space-2:.5rem;--space-3:.75rem;--space-4:1rem;--space-5:1.25rem;--space-6:1.5rem;--space-8:2rem;--ring-focus:0 0 0 2px var(--ds-bg),0 0 0 4px var(--ds-accent);--ring-focus-sm:0 0 0 2px rgba(29,184,135,.25);--ring-focus-inset:inset 0 0 0 2px rgba(29,184,135,.25);--ds-scrollbar:rgba(0,0,0,.15);--ds-scrollbar-hover:rgba(0,0,0,.25);--calendar-day-bg:#fff;--calendar-day-text:#1f2329;--calendar-day-hover-bg:#f0fdf4;--calendar-day-hover-text:#16a34a;--calendar-day-today-text:#16a34a;--calendar-day-today-border:#16a34a;--calendar-day-selected-bg:#10b981;--calendar-day-selected-text:#fff;--calendar-day-disabled-bg:#f3f4f6;--calendar-day-disabled-text:#9ca3af}.chat-md{color:var(--ds-text)}.chat-md :first-child{margin-top:0}.chat-md :last-child{margin-bottom:0}.chat-md h1,.chat-md h2,.chat-md h3{margin:.75em 0 .35em;font-weight:600;line-height:1.5}.chat-md hr{background:var(--border-hover);border:none;height:1px}.chat-md p{margin:.5em 0;line-height:2}.chat-md ul,.chat-md ol{margin:.5em 0;padding-left:1.35rem}.chat-md ul li,.chat-md ol li{line-height:2}.chat-md pre{padding:var(--space-3)var(--space-3);background:var(--surface-3);border:1px solid var(--border-default);color:var(--ds-text);font-size:var(--text-xs);border-radius:8px;margin:.65em 0;overflow-x:auto}.chat-md pre code{color:inherit;font-size:inherit;background:0 0;padding:0;line-height:2}.chat-md code{background:var(--surface-3);color:var(--ds-text);border-radius:4px;padding:.12em .35em;font-family:ui-monospace,monospace;font-size:.84em}.chat-md table{width:-moz-fit-content;width:fit-content;min-width:100%}.chat-md table tr:last-child th,.chat-md table tr:last-child td{border-bottom:none}.chat-md table th,.chat-md table td{text-align:left;border-bottom:1px solid var(--ds-border);padding:.8em 1em}.chat-md .chat-code-block{border:none;border-radius:10px;margin:0 0 .65em;overflow:hidden}.chat-md .chat-code-block pre{border:none;border-radius:0;margin:0;background:var(--surface-3)!important}.chat-md .chat-code-head{background:rgba(255,255,255,.03);border-bottom:1px solid rgba(255,255,255,.05);justify-content:space-between;align-items:center;gap:.5rem;display:flex}.chat-md .chat-code-title{font-size:var(--text-xs);text-transform:uppercase;letter-spacing:.04em;color:var(--ds-text);font-family:ui-monospace,monospace}.chat-md .chat-code-copy-btn{border:1px solid var(--border-default);background:var(--surface-5);color:var(--ds-text);font-size:var(--text-xs);padding:var(--space-1)var(--space-2);cursor:pointer;border-radius:6px;line-height:1;transition:all .15s}.chat-md .chat-code-copy-btn:hover{background:var(--surface-4)}.chat-md .chat-code-copy-btn.is-copied{border-color:var(--ds-ok);color:var(--ds-ok)}.chat-md blockquote{border-left:3px solid var(--border-hover);color:var(--ds-muted);margin:1em 0;padding-left:.85rem}.dark .chat-md code{background:rgba(255,255,255,.08)}.dark{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--ds-bg:#0f1117;--ds-main-tint:#16181d;--ds-sidebar:#1a1d23;--ds-border:#2a2d35;--ds-border-hover:#3a3d45;--ds-text:#e8e8ec;--ds-muted:#8b8d96;--ds-accent:#2dd4a8;--ds-accent-hover:#34d399;--ds-item-hover:#23262e;--ds-item-active:#2a2d38;--ds-item-bg-hover:#262930;--ds-ok:#34d399;--ds-danger:#f87171;--ds-log-bg:#1a1d23;--ds-log-border:#2a2d35;--font-display:"Sora","PingFang SC","Microsoft YaHei",sans-serif;--font-body:"DM Sans","PingFang SC","Microsoft YaHei",sans-serif;--font-mono:"JetBrains Mono","SF Mono","Consolas",monospace;--text-placeholder:#6b7280;--icon-color:#a1a1aa;--surface-1:#16181d;--surface-2:#1e2128;--surface-3:#262930;--surface-4:#2f3340;--border-subtle:#2a2d35;--border-default:#2a2d35;--border-hover:#3f4250;--text-primary:#e8e8ec;--text-secondary:#8b8d96;--shadow-sm:0 1px 3px rgba(0,0,0,.2),0 1px 2px rgba(0,0,0,.15);--shadow-md:0 4px 16px rgba(0,0,0,.25),0 2px 4px rgba(0,0,0,.2);--shadow-lg:0 12px 40px rgba(0,0,0,.3),0 4px 12px rgba(0,0,0,.25);--shadow-float:0 20px 60px rgba(0,0,0,.4),0 8px 20px rgba(0,0,0,.3);--shadow-sidebar:2px 0 12px rgba(0,0,0,.3);--shadow-composer:0 .25rem 1.25rem rgba(0,0,0,.3),0 0 0 .5px rgba(255,255,255,.06);--shadow-composer-hover:0 .25rem 1.25rem rgba(0,0,0,.3),0 0 0 .5px rgba(255,255,255,.1);--shadow-composer-focus:0 .75rem 2rem rgba(0,0,0,.65),0 0 0 .5px rgba(255,255,255,.2);--shadow-send:0 2px 8px rgba(45,212,168,.35);--ring-focus-sm:0 0 0 2px rgba(45,212,168,.25);--ring-focus-inset:inset 0 0 0 2px rgba(45,212,168,.25);--ds-scrollbar:rgba(255,255,255,.15);--ds-scrollbar-hover:rgba(255,255,255,.25);--btn-radius:10px;--btn-radius-sm:6px;--btn-radius-lg:14px;--btn-radius-pill:999px;--btn-height:36px;--btn-height-sm:28px;--text-xs:.6875rem;--text-sm:.75rem;--text-base:.875rem;--text-lg:1rem;--text-xl:1.25rem;--space-1:.25rem;--space-2:.5rem;--space-3:.75rem;--space-4:1rem;--space-5:1.25rem;--space-6:1.5rem;--space-8:2rem}*{box-sizing:border-box;scrollbar-width:thin;scrollbar-color:var(--ds-scrollbar)transparent}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background-color:var(--ds-scrollbar);border-radius:999px}::-webkit-scrollbar-thumb:hover{background-color:var(--ds-scrollbar-hover)}html{scroll-behavior:smooth}html,body{height:100%;margin:0}body{font-family:var(--font-body);background:var(--ds-bg);color:var(--ds-text);line-height:1.5;overflow:hidden}a{color:var(--ds-accent)}.app{height:100%;min-height:0;display:flex}.app .lucide{width:16px;height:16px;color:var(--icon-color)}.app [data-slot=button] .lucide,.app .icon-tooltip-btn .lucide{width:auto;height:auto;color:inherit}.stage-thread-flyout{border-left:0 solid var(--ds-border);background:var(--surface-2);flex-shrink:0;width:0;min-height:0;transition:width .3s cubic-bezier(.4,0,.2,1);position:relative;overflow:hidden}.stage-thread-flyout.is-open{width:var(--stage-flyout-width,760px);border-left-width:1px;border-left-color:var(--ds-border)}.stage-thread-flyout.is-open.is-resizing{border-left-color:var(--ds-accent)}.stage-thread-flyout.is-open:has(.stage-thread-flyout-resize:hover){border-left-color:var(--ds-accent)}.stage-thread-flyout.is-resizing{transition:none}.stage-thread-flyout-resize{z-index:2;cursor:col-resize;touch-action:none;justify-content:center;align-items:center;width:12px;height:100%;display:flex;position:absolute;top:0;left:0;transform:translate(-50%)}.stage-thread-flyout-resize-bar{border:1px solid var(--ds-border);background:var(--ds-border-hover);border-radius:999px;width:8px;height:24px}.stage-thread-flyout.is-resizing .stage-thread-flyout-resize-bar,.stage-thread-flyout-resize:hover .stage-thread-flyout-resize-bar{border-color:var(--ds-ok);background:var(--ds-item-hover)}.stage-thread-flyout-inner{width:var(--stage-flyout-width,760px);flex-direction:column;height:100%;min-height:0;display:flex}.stage-thread-flyout-header{align-items:center;gap:var(--space-2);padding:var(--space-3)var(--space-3)var(--space-2);border-bottom:1px solid var(--ds-border);flex-shrink:0;display:flex}.stage-thread-flyout-title{text-overflow:ellipsis;white-space:nowrap;min-width:0;font-size:var(--text-base);color:var(--ds-text);flex:1;margin:0;font-weight:600;line-height:1.4;overflow:hidden}.stage-thread-flyout-close{flex-shrink:0}.stage-thread-flyout-body{min-height:0;padding:var(--space-3);flex:1;overflow-y:auto}.stage-thread-flyout-body.stage-thread-flyout-body--ds-bg{background:var(--ds-bg)}.stage-thread-flyout:has(.stage-thread-flyout-body--ds-bg){background:var(--ds-bg)}.sidebar{background:var(--surface-2);border-right:1px solid var(--ds-border);width:min(288px,42vw);min-width:0;box-shadow:var(--shadow-sidebar);flex-direction:column;flex-shrink:0;display:flex}.sidebar.is-collapsed{width:52px}.sidebar-collapsed-actions{align-items:center;gap:var(--space-2);padding-top:var(--space-3);flex-direction:column;flex:1;display:flex}.sidebar-collapsed-icon-btn{cursor:pointer;background:0 0;border:0;border-radius:10px;justify-content:center;align-items:center;width:32px;height:32px;transition:background .15s;display:inline-flex}.sidebar-collapsed-icon-btn:hover{background:var(--surface-3)}.sidebar-collapsed-icon-btn:focus-visible{box-shadow:var(--ring-focus);outline:none}.sidebar-brand{padding:var(--space-4)var(--space-4)var(--space-3);border-bottom:1px solid var(--ds-border);flex-shrink:0}.sidebar-brand-title-row{align-items:center;gap:.25rem;min-width:0;display:flex}.sidebar-brand .logo{min-width:0;font-size:var(--text-lg);color:var(--ds-text);letter-spacing:-.02em;flex:1;font-weight:700;line-height:1.2}.sidebar-brand-ws{margin-top:var(--space-2);border-top:1px solid var(--ds-border);padding-top:.45rem}.sidebar-brand-ws-title{font-size:var(--text-xs);color:var(--ds-text);margin-bottom:var(--space-1);letter-spacing:.02em;font-weight:600}.sidebar-brand-ws-label{font-size:var(--text-xs);color:var(--ds-muted);margin-bottom:var(--space-1);display:block}.sidebar-brand-model-input{box-sizing:border-box;width:100%;margin-bottom:var(--space-1)}.btn-bind-save--brand{padding:var(--space-1)var(--space-2);border-radius:var(--btn-radius-sm);font-size:var(--text-xs);margin-top:0}.sidebar-icon-btn{border-radius:var(--btn-radius-sm);width:1.85rem;height:1.85rem;color:var(--ds-muted);cursor:pointer;background:0 0;border:none;flex-shrink:0;justify-content:center;align-items:center;margin:0;padding:0;transition:all .35s;display:inline-flex}.sidebar-icon-btn:hover{background:var(--ds-item-bg-hover)}.sidebar-icon-btn:focus-visible{box-shadow:var(--ring-focus);outline:none}.sidebar-icon-btn svg{display:block}.sidebar-icon-btn .ic{font-size:var(--text-lg);color:currentColor;font-weight:300;line-height:1}.btn-primary{box-sizing:border-box;height:34px;padding:0 var(--space-4);border-radius:var(--btn-radius);background:var(--ds-accent);color:#fff;cursor:pointer;font-weight:500;font-size:var(--text-sm);border:none;justify-content:center;align-items:center;margin:0;display:inline-flex}.btn-primary:hover{background:var(--ds-accent-hover)}.btn-primary:disabled{opacity:.45;cursor:not-allowed}.sidebar-drawer-meta{font-size:var(--text-xs);color:var(--ds-muted);padding:0 var(--space-1)var(--space-2);border-bottom:1px solid var(--ds-log-border);margin-bottom:var(--space-1);flex-shrink:0;line-height:1.45}#sessionList{min-height:0;padding:var(--space-1)0 var(--space-1);flex:1;overflow-x:hidden;overflow-y:auto}.session-group-label{font-size:var(--text-xs);color:var(--ds-muted);padding:var(--space-2)var(--space-1)var(--space-1);font-weight:500}.sidebar-drawer-item{border-radius:var(--ds-radius-sm);margin:var(--space-1)0;border:1px solid transparent;align-items:center;transition:background .15s,border-color .15s,box-shadow .15s;display:flex;position:relative}.sidebar-drawer-item:hover{background:var(--ds-item-active)}.sidebar-drawer-list{padding:var(--space-1)0 var(--space-1);flex-direction:column;display:flex}.sidebar-drawer-item-label{min-width:0;padding:var(--space-2)var(--space-1)var(--space-2)var(--space-3);font-size:var(--text-sm);color:var(--ds-text);word-break:break-word;flex:1;align-items:center;font-family:ui-monospace,monospace;font-weight:500;display:flex}.sidebar-drawer-empty{font-size:var(--text-xs);color:var(--ds-muted);padding:var(--space-2)var(--space-2)var(--space-2);line-height:1.45}.session-item.active{background:var(--ds-item-active);box-shadow:var(--shadow-sm)}.session-item-main{min-width:0;padding:var(--space-1-5)var(--space-1)var(--space-1-5)var(--space-3);cursor:pointer;text-align:left;color:inherit;font:inherit;background:0 0;border:none;flex:1}.session-item-title{color:var(--ds-text);-webkit-line-clamp:1;word-break:break-word;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.session-item-sub{font-size:var(--text-xs);color:var(--ds-muted);margin-top:.2rem;font-family:ui-monospace,monospace}.session-menu-wrap{padding:2px var(--space-3)0 0;opacity:0;pointer-events:none;flex-shrink:0;align-items:flex-start;transition:opacity .15s;display:flex;position:relative}.sidebar-drawer-item:hover .session-menu-wrap,.session-item.active .session-menu-wrap{opacity:1;pointer-events:auto}.session-menu-btn{color:var(--ds-muted);cursor:pointer;font-size:var(--text-lg);letter-spacing:.06em;opacity:.65;background:0 0;border:none;padding:0;font-weight:500}.sidebar-drawer-item:hover .session-menu-btn,.session-item.active .session-menu-btn,.session-menu-wrap.open .session-menu-btn{opacity:1;color:var(--ds-text)}.session-menu-btn:focus-visible{opacity:1;color:var(--ds-text)}.session-dropdown{z-index:80;background:var(--ds-bg);border:1px solid var(--ds-border);min-width:9.5rem;box-shadow:var(--shadow-md);padding:var(--space-1)0;border-radius:10px;display:none;position:absolute;top:2rem;right:.15rem}.session-menu-wrap.open .session-dropdown{display:block}.session-dropdown button{text-align:left;width:100%;padding:var(--space-2)var(--space-3);border-radius:var(--btn-radius-sm);color:var(--ds-text);font-size:var(--text-sm);cursor:pointer;background:0 0;border:none;display:block}.session-dropdown button:hover{background:var(--ds-item-hover)}.session-dropdown button.danger{color:var(--ds-danger);background:color-mix(in srgb,var(--ds-danger)8%,transparent);border:1px solid color-mix(in srgb,var(--ds-danger)30%,transparent)}.dark .session-dropdown button.danger{background:color-mix(in srgb,var(--ds-danger)12%,transparent);border:1px solid color-mix(in srgb,var(--ds-danger)40%,transparent)}.sidebar-drawers{flex-direction:column;flex:1;min-height:0;display:flex;overflow-x:hidden;overflow-y:auto}details.sidebar-drawer{z-index:0;flex-direction:column;flex:none;min-height:0;display:flex;position:relative}details.sidebar-drawer[open]{z-index:1}details.sidebar-drawer>summary{cursor:pointer;-webkit-user-select:none;-moz-user-select:none;user-select:none;min-height:36px;padding:var(--space-1)var(--space-3);font-size:var(--text-xs);color:var(--ds-text);justify-content:space-between;align-items:center;gap:.5rem;margin:.35rem .25rem 0;font-weight:600;list-style:none;display:flex;position:relative}details.sidebar-drawer>summary::-webkit-details-marker{display:none}details.sidebar-drawer>summary:hover{background:#f1f1f1;border-radius:16px}.drawer-summary-title{letter-spacing:-.01em}.drawer-chevron{font-size:var(--text-xs);color:var(--ds-muted);flex-shrink:0;transition:transform .2s}details.sidebar-drawer:not([open])>summary .drawer-chevron{transform:rotate(-90deg)}details.sidebar-drawer .sidebar-drawer-body{padding:0 var(--space-3)var(--space-3);overflow:auto}@keyframes fadeSlideUp{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}details.sidebar-drawer[open] .sidebar-drawer-body{animation:.2s ease-out fadeSlideUp}details.sidebar-drawer .sidebar-drawer-body.sidebar-drawer-body--tools,details.sidebar-drawer .sidebar-drawer-body.sidebar-drawer-body--skills,details.sidebar-drawer .sidebar-drawer-body.sidebar-drawer-body--mcp{max-height:none;overflow:visible}.drawer-bind-block--solo .sidebar-drawer-list.agent-bind-chips{min-height:200px;max-height:min(40vh,400px);overflow-x:hidden;overflow-y:auto}.sidebar-drawer-body--sessions{flex-direction:column;padding-bottom:.5rem;display:flex;overflow:hidden}.session-summary-actions{flex-shrink:0;align-items:center;gap:.35rem;display:flex}.sidebar-drawer-body--tools,.sidebar-drawer-body--skills,.sidebar-drawer-body--mcp{flex-direction:column;display:flex}.agent-md-editor{min-height:min(50vh,420px);padding:var(--space-3)var(--space-4);resize:vertical;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;font-size:var(--text-base);color:var(--ds-text);background:var(--ds-log-bg);box-sizing:border-box;border:none;flex:1;margin:0;line-height:1.5}.tool-files-meta{font-size:var(--text-xs);color:var(--ds-muted);word-break:break-all}.tool-files-state{font-size:var(--text-sm);color:var(--ds-muted);padding:var(--space-2)var(--space-1)}.tool-files-list{flex-direction:column;gap:.5rem;display:flex}.tool-files-item{border:1px solid var(--ds-border);background:var(--ds-bg);padding:var(--space-2)var(--space-3);border-radius:10px;justify-content:space-between;align-items:center;gap:.7rem;display:flex}.tool-files-main{flex:1;min-width:0}.tool-files-name{font-size:var(--text-lg);color:var(--ds-text);white-space:nowrap;text-overflow:ellipsis;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;overflow:hidden}.tool-files-sub{margin-top:var(--space-1);font-size:var(--text-xs);color:var(--ds-muted);white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.tool-files-download{box-sizing:border-box;height:34px;padding:0 var(--space-3);border-radius:var(--btn-radius);border:1px solid var(--ds-border);background:var(--ds-bg);color:var(--ds-text);font-size:var(--text-sm);cursor:pointer;flex-shrink:0;justify-content:center;align-items:center;text-decoration:none;display:inline-flex}.runtime-pkg-row-actions{flex-shrink:0;align-items:center;gap:.45rem;display:flex}.runtime-pkg-row-action{box-shadow:none;color:var(--ds-accent);font-size:var(--text-sm);cursor:pointer;background:0 0;border:none;margin:0;padding:0;font-weight:400;line-height:1.25}.agent-md-editor:focus{box-shadow:var(--ring-focus-inset);outline:none}.tool-files-download:hover:not(:disabled){border-color:var(--ds-item-hover);background:var(--ds-item-hover);color:var(--ds-accent)}.tool-files-download:disabled{opacity:.45;cursor:not-allowed}.runtime-pkg-row-action:hover:not(:disabled){color:var(--ds-accent);background:0 0;border:none}.runtime-pkg-row-action:disabled{opacity:.45;cursor:not-allowed;color:var(--ds-accent)}.env-form-table-body{flex:1;min-height:min(46vh,420px);max-height:min(58vh,560px);padding:0;overflow-x:hidden;overflow-y:auto}.env-form-group-title{padding:0 var(--space-1);font-size:var(--text-xs);color:var(--ds-text);border-left:3px solid var(--ds-accent);padding-left:var(--space-2);margin:.65rem 0 .45rem;font-weight:600}.env-form-group-title:first-child{margin-top:.15rem}.env-form-row{margin-bottom:var(--space-2);grid-template-columns:minmax(200px,38%) 1fr;align-items:center;gap:.65rem .85rem;display:grid}.env-form-label{font-size:var(--text-xs);color:var(--ds-text);text-align:right;padding-right:var(--space-1);word-break:break-word;line-height:1.35}.env-form-field{min-width:0}.env-form-value{box-sizing:border-box;width:100%;padding:var(--space-2)var(--space-2);border:1px solid var(--ds-border);font-size:var(--text-xs);background:var(--ds-bg);color:var(--ds-text);border-radius:8px;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace}.env-form-value:focus{border-color:var(--border-focus);box-shadow:var(--ring-focus-sm);outline:none}.btn-env-design{padding:var(--space-1)var(--space-3);border-radius:var(--btn-radius);color:var(--ds-accent);cursor:pointer;background:0 0;border:none;justify-content:center;align-items:center;margin:0;font-family:inherit;display:inline-flex}.btn-env-design:hover{background:var(--surface-3)}.btn-env-design:focus-visible{box-shadow:var(--ring-focus);outline:none}.btn-env-design--icon{width:28px;height:28px;padding:0}.btn-agent-md-cancel{box-sizing:border-box;height:34px;padding:0 var(--space-3);border-radius:var(--btn-radius);border:1px solid var(--ds-border);background:var(--ds-bg);color:var(--ds-text);font-size:var(--text-sm);cursor:pointer;justify-content:center;align-items:center;display:inline-flex}.btn-agent-md-cancel:hover{background:var(--ds-item-hover)}.main{background:var(--ds-main-tint);flex-direction:column;flex:1;min-width:0;min-height:0;display:flex}.main-content{flex-direction:column;flex:1;min-width:880px;min-height:0;display:flex}.main.manage-main{padding:var(--space-6)}.manage-page-title{font-size:var(--text-xl);color:var(--ds-text);letter-spacing:-.02em;margin:0;font-weight:600;line-height:1.3}.manage-page-desc{font-size:var(--text-base);color:var(--ds-muted);margin-top:var(--space-2);word-break:break-all;font-family:inherit}.main.is-draft-session .composer{padding:var(--space-5)0 var(--space-6);flex:1;justify-content:center;align-items:center;display:flex}.main.is-draft-session .composer-inner.is-draft-session{flex-direction:column;justify-content:center;display:flex}.main-header{padding:var(--space-4)clamp(var(--space-4),3vw,var(--space-6))var(--space-4);background:var(--ds-bg);flex-shrink:0}.main-header-top{flex-wrap:wrap;align-items:flex-start;gap:.5rem .75rem;display:flex}.system-settings{padding:var(--space-1)var(--space-2);border:1px solid var(--ds-border);background:var(--ds-main-tint);border-radius:10px;align-items:center;gap:.45rem;margin-left:auto;display:inline-flex}.system-settings-label{color:var(--ds-muted);flex-shrink:0;justify-content:center;align-items:center;display:inline-flex}.system-settings-label svg{display:block}.system-settings-icon-btn{border:1px solid var(--ds-border);width:1.95rem;height:1.95rem;color:var(--ds-muted);cursor:pointer;background:0 0;border-radius:10px;justify-content:center;align-items:center;transition:color .15s,background .15s,border-color .15s;display:inline-flex}.system-settings-icon-btn:hover{color:var(--ds-text);background:var(--ds-item-hover);border-color:var(--border-hover)}.system-settings-icon-btn:focus-visible{box-shadow:var(--ring-focus);outline:none}.system-settings-icon-btn svg{display:block}.btn-system-settings{box-sizing:border-box;height:34px;padding:0 var(--space-2);border:1px solid var(--ds-border);background:var(--ds-bg);color:var(--ds-text);border-radius:var(--btn-radius);font-size:var(--text-xs);cursor:pointer;white-space:nowrap;justify-content:center;align-items:center;display:inline-flex}.btn-system-settings:hover{background:var(--ds-item-hover)}.main-header h1{font-size:var(--text-md);color:var(--ds-text);letter-spacing:-.02em;margin:0;font-weight:400;line-height:1.3}.main-header .mode-pill{font-size:var(--text-xs);color:var(--ds-muted);padding:var(--space-1)var(--space-2);background:var(--ds-main-tint);border:1px solid var(--ds-border);border-radius:999px;align-items:center;font-weight:500;display:inline-flex}.main-header .sub{font-size:var(--text-xs);color:var(--ds-muted);margin-top:var(--space-2);word-break:break-all;padding:var(--space-1)var(--space-2);border-radius:var(--ds-radius-sm);background:var(--ds-log-bg);border:1px solid var(--ds-log-border);max-width:100%;font-family:ui-monospace,monospace}.main-header .sub:empty{display:none}.main-scroll{scrollbar-gutter:stable;flex-direction:column;flex:1;min-height:0;padding:0;display:flex;overflow-x:hidden;overflow-y:auto}.main-body{flex-direction:column;flex:none;width:100%;display:flex}.chat-thread{width:100%;max-width:800px;padding:var(--space-3)clamp(var(--space-3),2vw,var(--space-6))var(--space-4);box-sizing:border-box;flex:none;margin-left:auto;margin-right:auto;overflow:visible}.chat-placeholder{font-size:var(--text-sm);color:var(--ds-muted);text-align:center;padding:var(--space-8)var(--space-4);max-width:800px;margin:0 auto}@keyframes msgIn{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}.chat-msg{max-width:100%;padding:var(--space-1)var(--space-1);border-radius:var(--ds-radius-sm);font-size:14px;line-height:1.55;animation:.25s ease-out both msgIn}.chat-streaming{animation:none}.chat-msg-user{white-space:pre-wrap;word-break:break-word}.chat-msg-system{color:#92400e;font-size:var(--text-sm);background:#fffbeb;border:1px solid #fde68a}.dark .chat-msg-system{color:#fbbf24;background:rgba(180,120,0,.12);border-color:rgba(251,191,36,.25)}.chat-msg-label{font-size:var(--text-xs);text-transform:uppercase;letter-spacing:.04em;color:var(--ds-muted);margin:0 var(--space-3).35rem;align-items:center;gap:2px;font-weight:600;display:inline-flex}.schedule-tool-card{border:1px solid color-mix(in srgb,var(--ds-accent)30%,var(--ds-border));border-radius:var(--ds-radius-sm);background:color-mix(in srgb,var(--ds-accent)10%,var(--ds-main-tint));color:var(--ds-text);margin:.375rem 0;padding:.625rem .75rem}.schedule-tool-card.is-fired{opacity:.82}.schedule-tool-card.is-error{border-color:color-mix(in srgb,var(--ds-danger)45%,var(--ds-border));background:color-mix(in srgb,var(--ds-danger)10%,var(--ds-main-tint))}.schedule-tool-card-head{font-size:var(--text-sm);align-items:center;gap:.375rem;font-weight:600;display:flex}.schedule-tool-card-id{color:var(--ds-muted);font-family:var(--font-mono);font-size:var(--text-xs);margin-left:auto}.schedule-tool-card-prompt{border-radius:var(--ds-radius-sm);background:color-mix(in srgb,var(--ds-bg)55%,transparent);margin-top:.5rem;padding:.5rem}.schedule-tool-card-prompt-label{color:var(--ds-muted);font-size:var(--text-xs);margin-bottom:.125rem}.schedule-tool-card-prompt-body{white-space:pre-wrap;word-break:break-word;font-family:var(--font-mono);font-size:var(--text-sm)}.schedule-tool-card-meta{color:var(--ds-muted);font-size:var(--text-xs);flex-wrap:wrap;gap:.375rem .75rem;margin-top:.5rem;display:flex}.schedule-tool-card-meta em{color:var(--ds-text);font-style:normal}.schedule-tool-card-error{border-radius:var(--ds-radius-sm);background:color-mix(in srgb,var(--ds-danger)12%,transparent);color:var(--ds-danger);font-size:var(--text-sm);margin-top:.5rem;padding:.5rem}.scheduled-turn{margin:.875rem 0}.scheduled-turn-divider{color:var(--ds-muted);font-size:var(--text-xs);align-items:center;gap:.5rem;display:flex}.scheduled-turn-divider:before,.scheduled-turn-divider:after{content:"";border-top:1px dashed color-mix(in srgb,var(--border-default)30%,var(--border-hover));flex:1;height:1px}.scheduled-turn-divider em{font-style:normal}.scheduled-turn-task-id{color:var(--ds-muted);font-family:var(--font-mono)}.scheduled-turn-dispatch{border-radius:var(--ds-radius-sm);background:color-mix(in srgb,var(--border-light)8%,var(--ds-border));margin:.5rem 0 .75rem;padding:.5rem .75rem}.scheduled-turn-dispatch-head{color:var(--ds-muted);font-size:var(--text-xs);align-items:center;gap:.25rem;margin-bottom:.25rem;font-weight:600;display:flex}.scheduled-turn-dispatch-body{white-space:pre-wrap;word-break:break-word;color:var(--ds-text);font-family:var(--font-mono);font-size:var(--text-sm)}.scheduled-turn-body{flex-direction:column;gap:.75rem;display:flex}.chat-streaming .stream-pulse{display:none}@keyframes cursorBlink{0%,to{opacity:1}50%{opacity:0}}.stream-cursor{background:var(--ds-accent);border-radius:6px;flex-shrink:0;width:6px;height:6px;animation:1s ease-in-out infinite cursorBlink;display:inline-block}@keyframes backdropIn{0%{opacity:0}to{opacity:1}}@keyframes modalIn{0%{opacity:0;transform:scale(.97)translateY(6px)}to{opacity:1;transform:scale(1)translateY(0)}}@keyframes streamDot{0%,to{opacity:.35}50%{opacity:1}}.loading-sweep{background:linear-gradient(90deg,#555 0%,#555 40%,#fff 50%,#555 60%,#555 100%) 0 0/200% 100%;-webkit-text-fill-color:transparent;-webkit-background-clip:text;background-clip:text;animation:2s linear infinite sweep}@keyframes sweep{0%{background-position:100% 0}to{background-position:-100% 0}}details.raw-log-drawer{border-top:1px solid var(--ds-border);background:var(--ds-bg);flex-shrink:0}details.raw-log-drawer>summary{cursor:pointer;-webkit-user-select:none;-moz-user-select:none;user-select:none;padding:var(--space-2)clamp(var(--space-3),2vw,var(--space-6));font-size:var(--text-xs);color:var(--ds-muted);background:var(--ds-main-tint);justify-content:space-between;align-items:center;font-weight:500;list-style:none;display:flex}details.raw-log-drawer>summary::-webkit-details-marker{display:none}details.raw-log-drawer>summary:hover{color:var(--ds-text)}details.raw-log-drawer[open]>summary{border-bottom:1px solid var(--ds-border)}.raw-log-chevron{font-size:var(--text-xs);transition:transform .2s}details.raw-log-drawer[open] .raw-log-chevron{transform:rotate(-180deg)}.raw-log-body{flex-direction:column;max-height:min(32vh,320px);display:flex;overflow:hidden}#log{min-height:0;max-height:min(32vh,320px);font-family:ui-monospace,SF Mono,Consolas,monospace;font-size:var(--text-xs);white-space:pre-wrap;word-break:break-word;padding:var(--space-3)clamp(var(--space-3),2vw,var(--space-6));background:var(--ds-log-bg);color:#374151;border:none;flex:1;margin:0;line-height:1.45;overflow:auto}label.f{font-size:var(--text-xs);color:var(--ds-muted);margin-bottom:var(--space-1);display:block}.ws-config-hidden{clip:rect(0,0,0,0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}#status.conn-status{max-width:min(40vw,18rem);font-size:var(--text-xs);border:1px solid transparent;border-radius:9999px;align-items:center;padding:2px 10px;font-weight:500;line-height:1.45;display:inline-flex}#status.conn-status.idle{color:var(--ds-muted);background-color:rgba(107,114,128,.1);border-color:rgba(107,114,128,.28)}#status.conn-status.connecting{color:#2563eb;background-color:rgba(37,99,235,.1);border-color:rgba(37,99,235,.32)}#status.conn-status.pending{color:#b45309;background-color:rgba(245,158,11,.12);border-color:rgba(245,158,11,.35)}#status.conn-status.ready{color:var(--ds-ok);background-color:rgba(5,150,105,.1);border-color:rgba(5,150,105,.32)}#status.conn-status.disconnected{color:#6b7280;background-color:rgba(75,85,99,.08);border-color:rgba(75,85,99,.24)}#status.conn-status.working{color:#0369a1;background-color:rgba(14,165,233,.1);border-color:rgba(14,165,233,.32)}#status.conn-status.err{color:var(--ds-danger);background-color:rgba(220,38,38,.08);border-color:rgba(220,38,38,.28)}.api-retry-banner{padding:var(--space-2)var(--space-3);background:#fff8e8;border:1px solid #f1d7a1;border-radius:10px}.api-retry-banner-text{font-size:var(--text-xs);color:#8a5a11}.api-retry-banner-progress{background:rgba(138,90,17,.18);border-radius:999px;height:4px;margin-top:6px;overflow:hidden}.api-retry-banner-progress>span{background:#d69a2c;height:100%;display:block}.api-retry-failed{justify-content:space-between;align-items:center;gap:var(--space-2);padding:var(--space-2)var(--space-3);background:#fff4f4;border:1px solid #f3c5c5;border-radius:10px;display:flex}.api-retry-failed-text{font-size:var(--text-xs);color:#b13c3c}.api-retry-failed-btn{border-radius:var(--btn-radius);background:var(--surface-1);color:#8d2f2f;font-size:var(--text-xs);padding:var(--space-2)var(--space-3);border:1px solid #e4b1b1;line-height:1}.api-retry-failed-btn:hover{background:#fff7f7}.prompt-session-info{font-size:var(--text-xs);color:var(--ds-muted);white-space:nowrap;text-overflow:ellipsis;text-align:right;flex-shrink:1;min-width:0;max-width:62%;font-family:ui-monospace,monospace;overflow:hidden}.composer{padding:var(--space-2)0 var(--space-3);background:var(--ds-main-tint);flex-shrink:0}.composer-inner{width:100%;padding:0 clamp(var(--space-3),2vw,var(--space-6));margin:0}.composer-tool-files-inline{border:1px solid var(--border-default);background:var(--surface-2);border-bottom:none;border-radius:8px 8px 0 0;margin:0 .95rem;overflow:hidden}.composer-tool-files-inline-head{padding:var(--space-1)var(--space-3)0;font-size:var(--text-xs);color:var(--ds-text);align-items:center;gap:.35rem;display:flex}.composer-tool-files-inline-chevron{color:var(--ds-muted);transition:transform .28s;display:inline-flex}.composer-tool-files-inline-chevron.is-expanded{transform:rotate(90deg)}.composer-tool-files-inline-panel-wrap{grid-template-rows:0fr;transition:grid-template-rows .28s;display:grid}.composer-tool-files-inline.is-expanded .composer-tool-files-inline-panel-wrap{grid-template-rows:1fr}.composer-tool-files-inline-panel-inner{min-height:0;overflow:hidden}.composer-tool-files-inline-title{font-size:var(--text-sm);font-weight:400}.composer-tool-files-inline-loading{font-size:var(--text-xs);color:var(--ds-muted);margin-left:auto}.composer-tool-files-inline-panel{padding:0 var(--space-2);opacity:0;border-top:1px solid transparent;transition:opacity .22s,padding .28s,border-color .28s}.composer-tool-files-inline.is-expanded .composer-tool-files-inline-panel{border-top-color:var(--ds-border);padding:var(--space-2)var(--space-2);opacity:1}.composer-tool-files-inline-list{flex-direction:column;gap:.35rem;max-height:220px;display:flex;overflow-y:auto}.composer-tool-files-inline-item{padding:var(--space-2)var(--space-2)0;justify-content:space-between;align-items:center;gap:.5rem;display:flex}.composer-tool-files-inline-main{align-items:baseline;gap:.45rem;min-width:0;display:flex}.composer-tool-files-inline-name{max-width:100%;font-size:var(--text-sm);color:var(--ds-text);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.composer-tool-files-inline-size{font-size:var(--text-xs);color:var(--ds-muted);flex-shrink:0}.composer-tool-files-inline-download{border-radius:var(--btn-radius);width:28px;height:28px;color:var(--ds-text);background:var(--surface-1);justify-content:center;align-items:center;display:inline-flex}.composer-tool-files-inline-download:hover{background:var(--ds-item-hover)}.composer-tool-files-inline-state{padding:var(--space-1)var(--space-1);font-size:var(--text-sm);color:var(--ds-muted)}.composer-tool-files-inline-state.is-error{color:var(--ds-danger)}.composer-card{border-color:var(--border-hover);background:var(--surface-1);padding:var(--space-3);border-radius:20px;transition:box-shadow .2s,border-color .2s}.composer-card.is-draft-session{min-height:100px}.composer-draft-title{margin-bottom:var(--space-2);padding-left:var(--space-1);font-size:var(--text-xl);color:var(--ds-text);font-weight:600;line-height:1.2}.composer-card:focus-within{border-color:var(--border-default)}.composer-card label.f{margin-bottom:var(--space-1);padding-left:var(--space-2);color:#4b5563;font-weight:500}.composer-input-shell{align-items:center;gap:.4rem;display:flex;position:relative}.composer-upload-toast{z-index:2;border-radius:var(--radius);color:#166534;background:#ecfdf5;border:1px solid #86efac;margin-top:.35rem;padding:.35rem .5rem;font-size:.75rem;position:absolute;bottom:-2px;left:0;right:0;transform:translateY(100%)}.composer-upload-toast.is-error{color:#b91c1c;background:#fef2f2;border-color:#fecaca}.composer-card textarea#prompt{resize:none;min-height:30px;max-height:180px;font:inherit;font-size:var(--text-base);padding:var(--space-1)var(--space-1);color:var(--ds-text);background:0 0;border:none;border-radius:0;outline:none;flex:1;line-height:1.4}.composer-card textarea#prompt:hover,.composer-card textarea#prompt:focus{box-shadow:none;border:none;outline:none}.composer-card textarea#prompt:focus-visible{box-shadow:none;border:none;outline:none}.composer-card textarea#prompt::placeholder{color:var(--text-placeholder)}.composer-tools-left{flex:1;align-items:center;gap:.35rem;min-width:0;display:flex}.composer-tools-right{flex-shrink:0;align-items:center;gap:.35rem;display:flex}.composer-model-field{width:220px;position:relative}.composer-model-input{box-sizing:border-box;width:180px;height:2.2rem;padding:0 var(--space-2);border:1px solid var(--ds-border);background:var(--ds-main-tint);color:var(--ds-text);font-size:var(--text-base);border-radius:8px;outline:none;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;transition:border-color .12s,background-color .12s,box-shadow .12s}.composer-model-input::placeholder{color:var(--text-placeholder);font-family:inherit}.composer-model-input:focus-visible{border-color:var(--border-focus);box-shadow:var(--ring-focus-sm)}.composer-model-field:has(.composer-model-suggestions.is-open) .composer-model-input{border-color:var(--border-focus);box-shadow:var(--ring-focus-sm)}.composer-allow-ask-select,.composer-mode-select{box-sizing:border-box;width:78px;height:2.2rem;padding:0 var(--space-2);border:1px solid var(--ds-border);background:var(--ds-main-tint);color:var(--ds-text);font-size:var(--text-base);border-radius:8px;outline:none;transition:border-color .12s,background-color .12s,box-shadow .12s}.composer-mode-select{width:auto;min-width:140px;max-width:180px}.composer-rich-select-trigger-label,.composer-mode-select-label{text-align:left;flex:1;min-width:0}.composer-rich-select-content{border-color:var(--ds-border);background:var(--ds-bg);min-width:280px;box-shadow:var(--shadow-md);border-radius:12px}.composer-rich-select-content>div{min-width:280px;padding:var(--space-2)}.composer-rich-select-panel-label{padding:var(--space-1)var(--space-2)var(--space-2);font-size:var(--text-base);color:var(--ds-muted);font-weight:500;line-height:1.25}.composer-rich-select-item{gap:var(--space-3);font-size:var(--text-base);margin-bottom:2px}.composer-rich-select-item:last-child{margin-bottom:0}.composer-rich-select-item-icon{width:1.25rem;color:var(--ds-text);justify-content:center;align-items:center;display:flex}.composer-rich-select-item-title{color:var(--ds-text)}.composer-rich-select-item-desc{color:var(--ds-muted)}.composer-rich-select-item-check{color:var(--ds-accent)}.composer-allow-ask-select[data-state=open],.composer-mode-select[data-state=open]{border-color:var(--border-focus);box-shadow:var(--ring-focus-sm)}.composer-allow-ask-select:focus-visible{border-color:var(--border-focus);box-shadow:var(--ring-focus-sm)}.composer-mode-select:focus-visible{border-color:var(--border-focus);box-shadow:var(--ring-focus-sm)}.composer-model-suggestions{width:max(300px,100%);min-width:300px;padding:var(--space-2);border:1px solid var(--ds-border);background:var(--ds-bg);max-height:min(360px,48vh);box-shadow:var(--shadow-md);z-index:50;border-radius:12px;margin:0 0 6px;list-style:none;display:none;position:absolute;bottom:100%;left:0;overflow:auto}.composer-model-suggestions.is-open{display:block}.composer-model-suggestion-item{align-items:center;gap:var(--space-2);cursor:pointer;border-radius:8px;margin:0;padding:.625rem 2.25rem .625rem .75rem;display:flex;position:relative}.composer-model-suggestion-item:last-of-type{border-bottom:none}.composer-model-suggestion-body{flex-direction:column;flex:1;gap:2px;min-width:0;display:flex}.composer-model-suggestion-title{font-size:var(--text-base);color:var(--ds-text);font-weight:500;line-height:1.5}.composer-model-suggestion-desc{font-size:var(--text-xs);color:var(--ds-muted);font-weight:400;line-height:1.4}.composer-model-suggestion-check{color:var(--ds-accent-hover);flex-shrink:0;justify-content:center;align-items:center;display:flex;position:absolute;top:50%;right:.75rem;transform:translateY(-50%)}.composer-model-suggestion-check svg{color:var(--ds-accent-hover)!important}.composer-model-suggestion-item.is-selected{background:var(--ds-item-active)}.composer-model-suggestion-item:hover,.composer-model-suggestion-item.is-active{background:var(--surface-2)}.composer-model-suggestions .composer-model-suggest-empty{font-size:var(--text-xs);color:var(--ds-muted);cursor:default;font-family:inherit;line-height:1.625}.composer-model-suggestions .composer-model-suggest-empty:hover{color:var(--ds-muted);background:0 0}.composer-plus-btn,.composer-icon-btn{color:#3f3f46;cursor:pointer;background:0 0;border:none;border-radius:9999px;justify-content:center;align-items:center;width:2rem;height:2rem;display:inline-flex}.composer-plus-btn:hover{background:var(--surface-3)}.composer-icon-btn:hover:not(:disabled){background:0 0}.composer-icon-btn:disabled{opacity:.4;cursor:not-allowed}.btn-send-circle{background:var(--ds-accent);width:2rem;height:2rem;color:var(--surface-1);font-size:var(--text-lg);cursor:pointer;box-shadow:var(--shadow-send);border:none;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;line-height:1;display:flex}.btn-send-circle:hover:not(:disabled){background:var(--ds-accent-hover)}.btn-send-circle:disabled{opacity:.4;cursor:not-allowed;box-shadow:none}.btn-abort-text{padding:var(--space-1)var(--space-3);border-radius:var(--btn-radius);color:var(--ds-muted);font-size:var(--text-xs);cursor:pointer;background:0 0;border:1px solid transparent}.btn-abort-text:hover:not(:disabled){color:var(--ds-text);background:var(--ds-sidebar)}.btn-abort-text:disabled{opacity:.4;cursor:not-allowed}.page-footer-note{text-align:center;font-size:var(--text-xs);color:var(--ds-muted);padding:var(--space-2)var(--space-4)0;letter-spacing:.02em}.page-footer-note--compact{font-size:var(--text-xs);padding:var(--space-1)var(--space-3)0;letter-spacing:.01em}.main-scroll-draft{flex:1;min-height:0}.main-body-draft{flex-direction:column;flex:1;min-width:0;min-height:0;display:flex}.draft-session-hero{min-width:0}.main-header-action-btn{font-size:var(--text-xs);padding:var(--space-1)var(--space-3);border-radius:var(--btn-radius);border:1px solid var(--ds-border);background:var(--ds-bg);color:var(--ds-muted);cursor:not-allowed;opacity:.65}.composer-draft-pill{border:1px solid var(--ds-border);background:var(--ds-bg);color:var(--ds-text);font-size:var(--text-base);padding:var(--space-1)var(--space-3);cursor:pointer;border-radius:999px;transition:background .15s,border-color .15s}.composer-draft-pill:hover{background:var(--ds-item-hover);border-color:var(--border-hover)}.drawer-bind-block{margin-bottom:var(--space-2);border-bottom:1px solid var(--ds-border);font-size:var(--text-xs);padding-bottom:.5rem}.drawer-bind-block--solo{border-bottom:none;margin-bottom:0;padding-bottom:0}.drawer-bind-head{justify-content:space-between;align-items:center;gap:.35rem;display:flex}.drawer-bind-head.sidebar-drawer-meta{font-size:var(--text-xs);padding-top:.15rem}.drawer-bind-head strong{color:var(--ds-text);font-weight:600}.agent-bind-model-input{box-sizing:border-box;width:100%;padding:var(--space-1);border:1px solid var(--ds-border);background:var(--ds-bg);color:var(--ds-text);font-size:var(--text-xs);border-radius:2px}.btn-bind-save{margin-top:var(--space-1);width:100%;padding:var(--space-2)var(--space-1);border-radius:var(--btn-radius-sm);border:1px solid var(--ds-border);background:var(--ds-bg);color:var(--ds-text);font-size:var(--text-xs);cursor:pointer}.btn-bind-save:hover:not(:disabled){background:var(--ds-main-tint)}.btn-bind-save:disabled{opacity:.5;cursor:not-allowed}.agent-picker-search{box-sizing:border-box;width:100%;padding:var(--space-2);border:1px solid var(--ds-border);font-size:var(--text-xs);border-radius:8px}.agent-picker-scroll{max-height:min(42vh,280px);padding:var(--space-1)var(--space-3);overflow:auto}.agent-picker-item{padding:var(--space-3)0;border-bottom:1px solid rgba(92,91,91,.06);align-items:flex-start;gap:.45rem;display:flex}.agent-picker-item:last-child{border-bottom:none}.agent-picker-item label{cursor:pointer;font-size:var(--text-xs);flex:1;line-height:1.35}.status-dot{border-radius:9999px;flex-shrink:0;width:4px;height:4px;display:inline-block;position:relative}.net-status-online{color:var(--ds-ok);background-color:var(--ds-ok)}.net-status-online:after{border:1px solid var(--ds-ok);content:"";border-radius:50%;width:8px;height:8px;animation:1.2s ease-in-out infinite antStatusProcessing;display:inline-block;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.net-status-error{color:#9b4040;background-color:#9b4040}.net-status-idle{color:#e0e0e0;background-color:#e0e0e0}@keyframes antStatusProcessing{0%{opacity:.9;transform:translate(-50%,-50%)scale(.8)}70%{opacity:.2;transform:translate(-50%,-50%)scale(1.2)}to{opacity:0;transform:translate(-50%,-50%)scale(1.2)}}.tool-running-gradient{color:transparent;background-image:linear-gradient(90deg,#343d52 0%,#6b7280 35%,#343d52 70%);background-size:220% 100%;-webkit-background-clip:text;background-clip:text;animation:1.4s linear infinite toolRunningGradientShift}@keyframes toolRunningGradientShift{0%{background-position:0%}to{background-position:200%}}.type-badge{font-size:var(--text-xs);letter-spacing:.08em;text-transform:uppercase;white-space:nowrap;border-radius:2px;padding:1px 6px;font-weight:500}.badge-connect{color:var(--red);background:rgba(255,95,95,.15)}.badge-session{color:var(--blue);background:rgba(74,158,255,.15)}.badge-messages{color:var(--purple);background:rgba(176,127,255,.15)}.badge-ready{color:var(--green);background:rgba(61,220,132,.15)}.badge-turn{color:var(--amber);background:rgba(255,181,71,.15)}.chat-agent-timeline .agent-timeline-label-row{align-items:center;gap:8px;margin-bottom:4px;display:flex}.chat-agent-timeline .agent-timeline-label-hint{font-size:var(--text-xs);color:var(--ds-muted,var(--color-text-tertiary,#6b7280))}.chat-agent-timeline .tag{font-size:var(--text-xs);letter-spacing:.04em;text-transform:uppercase;border-radius:4px;flex-shrink:0;padding:2px 7px;font-weight:500}.chat-agent-timeline .tag-tool{color:#185fa5;background:#e6f1fb}.chat-agent-timeline .tag-text{color:#3b6d11;background:#eaf3de}.chat-agent-timeline .tag-final{color:#854f0b;background:#faeeda}.chat-agent-timeline .agent-timeline-thinking{font-size:var(--text-base);color:var(--ds-text,var(--color-text-primary,#555));padding:2px 0;line-height:1.75}.chat-agent-timeline .agent-timeline-thinking--final{color:var(--ds-muted,var(--color-text-secondary,#6b7280))}.chat-agent-timeline .agent-timeline-thinking code{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;font-size:var(--text-xs);background:var(--ds-surface-2,var(--color-background-secondary,#f3f4f6));color:var(--ds-text,var(--color-text-primary,#111));border-radius:4px;padding:1px 5px}.chat-agent-timeline .agent-timeline-tool-panel{background:var(--ds-bg,var(--color-background-primary,#fff));border:.5px solid rgba(0,0,0,.1);border-radius:8px;overflow:hidden}.chat-agent-timeline .agent-timeline-tool-panel--running{border-color:rgba(34,48,68,.55)}.chat-agent-timeline .agent-timeline-tool-panel--error{border-color:rgba(163,45,45,.45)}.chat-agent-timeline .agent-timeline-tool-panel--done{border-color:rgba(0,0,0,.12)}.chat-agent-timeline .agent-timeline-tool-header{background:var(--ds-surface-2,var(--color-background-secondary,#f5f5f5));width:100%;padding:var(--space-2)var(--space-3);text-align:left;border:0;justify-content:space-between;align-items:center;gap:6px;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;transition:color .15s,background .15s;display:flex}.chat-agent-timeline .agent-timeline-tool-header--running{color:#185fa5;background:#e6f1fb}.chat-agent-timeline .agent-timeline-tool-header--running .agent-timeline-tool-meta,.chat-agent-timeline .agent-timeline-tool-header--running .agent-timeline-tool-calls{color:rgba(24,95,165,.88)}.chat-agent-timeline .agent-timeline-tool-header--error{color:#a32d2d;background:rgba(163,45,45,.08)}.chat-agent-timeline .agent-timeline-tool-header--done{color:#606878;background:rgba(0,0,0,.02)}.chat-agent-timeline .agent-timeline-tool-header .agent-timeline-tool-title{font-size:var(--text-sm);font-weight:500}.chat-agent-timeline .agent-timeline-tool-header .agent-timeline-tool-meta{font-size:var(--text-xs);color:#343d52}.chat-agent-timeline .agent-timeline-tool-header .agent-timeline-tool-calls{font-size:var(--text-xs);color:#343d52;flex-shrink:0}.chat-agent-timeline .agent-timeline-dot-tool{border-color:#185fa5}.chat-agent-timeline .agent-timeline-dot-text{border-color:#3b6d11}.chat-agent-timeline .agent-timeline-dot-final{border-color:#854f0b}.chat-agent-timeline .agent-timeline-dot-blocked{border:1.5px solid var(--ds-accent-hover);color:var(--ds-accent-hover);font-size:10px;animation:1.2s ease-in-out infinite agent-timeline-dot-blink}@keyframes agent-timeline-dot-blink{0%,to{opacity:1}50%{opacity:.2}}.tr-ok{border:1.4px solid #3b6d11;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:13px;height:13px;display:flex}.tr-ok svg{width:7px;height:7px}.tr-err{border:1.4px solid #a32d2d;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:13px;height:13px;display:flex}.tr-err svg{width:7px;height:7px}.agent-timeline-summary-bar{text-align:left;background:0 0;border:0;border-radius:8px;align-items:center;gap:8px;width:100%;padding:0;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;display:flex;position:relative}.agent-timeline-summary-bar.streaming-collapsed:before{content:"";border-radius:inherit;pointer-events:none;animation:1.8s ease-in-out infinite agent-timeline-pulse-ring;position:absolute;top:-2px;bottom:-2px;left:-2px;right:-2px;box-shadow:inset 0 0 0 1px rgba(99,130,230,.55)}.agent-timeline-summary-bar:hover .agent-timeline-summary-title{color:var(--ds-muted);background:var(--ds-item-active)}.agent-timeline-summary-title{text-overflow:ellipsis;white-space:nowrap;max-width:220px;font-size:var(--text-sm);color:var(--ds-muted);cursor:pointer;flex-shrink:0;font-weight:500;overflow:hidden}.agent-timeline-summary-title.streaming-active{position:relative}.agent-timeline-summary-title.streaming-active:after{content:"";pointer-events:none;background:linear-gradient(90deg,transparent,rgba(255,255,255,.22),transparent);width:50%;height:100%;animation:2s linear infinite agent-timeline-shimmer-sweep;position:absolute;top:0;left:-60%}.agent-timeline-summary-detail{text-overflow:ellipsis;white-space:nowrap;min-width:0;font-size:var(--text-xs);color:var(--ds-text);flex:1;overflow:hidden}.agent-timeline-summary-detail:hover{color:var(--ds-muted)}.agent-timeline-summary-count{font-size:var(--text-xs);color:var(--ds-text);flex-shrink:0}.agent-timeline-summary-arrow{color:var(--ds-muted);flex-shrink:0}@keyframes agent-timeline-pulse-ring{0%,to{opacity:0;box-shadow:inset 0 0 0 1px rgba(99,130,230,0)}50%{opacity:1;box-shadow:inset 0 0 0 1.5px rgba(99,130,230,.65)}}@keyframes agent-timeline-shimmer-sweep{0%{left:-60%}to{left:130%}}.dark .agent-timeline-summary-title.streaming-active:after{background:linear-gradient(90deg,transparent,rgba(255,255,255,.08),transparent)}.slideHighlight:after{content:"";background:linear-gradient(90deg,transparent,var(--highlight),transparent);filter:blur(8px);pointer-events:none;width:40%;height:100%;animation:3s ease-in-out infinite slideHighlight;position:absolute;top:0;left:0}@keyframes slideHighlight{0%{transform:translate(-100%)}to{transform:translate(250%)}}@keyframes agent-block-dot-pulse{50%{opacity:.45}}.agent-block-status-dot--pulse{animation:1.2s ease-in-out infinite agent-block-dot-pulse}.main.settings-main{padding:0}.side-nav-shell{flex:1;min-width:0;min-height:0;display:flex}.side-nav{border-right:1px solid var(--ds-border);width:220px;padding:var(--space-4)var(--space-2);background:var(--ds-bg);flex-direction:column;flex-shrink:0;display:flex;overflow-y:auto}.side-nav-title{font-size:var(--text-md);color:var(--ds-text);padding:var(--space-1)var(--space-3);margin-bottom:var(--space-2);letter-spacing:-.01em;font-weight:600}.side-nav-groups{gap:var(--space-4);flex-direction:column;flex:1;display:flex}.side-nav-group{flex-direction:column;gap:2px;display:flex}.side-nav-item{align-items:center;gap:var(--space-2);width:100%;height:36px;padding:var(--space-2)var(--space-3);border-radius:var(--ds-radius-sm);font-size:var(--text-base);color:var(--ds-text);text-align:left;cursor:pointer;background:0 0;border:none;transition:background .15s;display:flex}.side-nav-item:hover{background:var(--ds-item-active);color:var(--ds-text)}.side-nav-item:focus-visible{box-shadow:0 0 0 2px var(--ds-accent);outline:none}.side-nav-item.is-active{background:var(--ds-border);font-weight:600}.side-nav-item-icon{color:var(--ds-muted);font-size:var(--text-sm);flex-shrink:0;justify-content:center;align-items:center;display:flex}.is-active .side-nav-item-icon{color:var(--ds-accent)}.side-nav-item-label{min-width:0;font-size:var(--text-base);flex:1}.side-nav-bottom{padding-top:var(--space-2);border-top:1px solid var(--ds-border);flex-direction:column;gap:2px;margin-top:auto;display:flex}.side-nav-content{min-width:0;min-height:0;padding:clamp(var(--space-4),3vw,var(--space-6));flex-direction:column;flex:1;display:flex;overflow-y:auto}.icon-tooltip-btn:disabled,.icon-tooltip-btn[disabled]{color:var(--ds-icon-btn-disabled);cursor:not-allowed}.icon-tooltip-btn:disabled:hover,.icon-tooltip-btn[disabled]:hover{color:var(--ds-icon-btn-disabled)}.icon-tooltip-btn:disabled svg,.icon-tooltip-btn[disabled] svg{color:var(--ds-icon-btn-disabled)!important;stroke:var(--ds-icon-btn-disabled)!important}.icon-tooltip-btn:disabled svg path,.icon-tooltip-btn[disabled] svg path{fill:none!important;stroke:var(--ds-icon-btn-disabled)!important}
|
|
5
|
-
@property --tw-animation-delay{syntax:"*";inherits:false;initial-value:0s}@property --tw-animation-direction{syntax:"*";inherits:false;initial-value:normal}@property --tw-animation-duration{syntax:"*";inherits:false}@property --tw-animation-fill-mode{syntax:"*";inherits:false;initial-value:none}@property --tw-animation-iteration-count{syntax:"*";inherits:false;initial-value:1}@property --tw-enter-blur{syntax:"*";inherits:false;initial-value:0}@property --tw-enter-opacity{syntax:"*";inherits:false;initial-value:1}@property --tw-enter-rotate{syntax:"*";inherits:false;initial-value:0}@property --tw-enter-scale{syntax:"*";inherits:false;initial-value:1}@property --tw-enter-translate-x{syntax:"*";inherits:false;initial-value:0}@property --tw-enter-translate-y{syntax:"*";inherits:false;initial-value:0}@property --tw-exit-blur{syntax:"*";inherits:false;initial-value:0}@property --tw-exit-opacity{syntax:"*";inherits:false;initial-value:1}@property --tw-exit-rotate{syntax:"*";inherits:false;initial-value:0}@property --tw-exit-scale{syntax:"*";inherits:false;initial-value:1}@property --tw-exit-translate-x{syntax:"*";inherits:false;initial-value:0}@property --tw-exit-translate-y{syntax:"*";inherits:false;initial-value:0}@theme inline{--animation-delay-0: 0s; --animation-delay-75: 75ms; --animation-delay-100: .1s; --animation-delay-150: .15s; --animation-delay-200: .2s; --animation-delay-300: .3s; --animation-delay-500: .5s; --animation-delay-700: .7s; --animation-delay-1000: 1s; --animation-repeat-0: 0; --animation-repeat-1: 1; --animation-repeat-infinite: infinite; --animation-direction-normal: normal; --animation-direction-reverse: reverse; --animation-direction-alternate: alternate; --animation-direction-alternate-reverse: alternate-reverse; --animation-fill-mode-none: none; --animation-fill-mode-forwards: forwards; --animation-fill-mode-backwards: backwards; --animation-fill-mode-both: both; --percentage-0: 0; --percentage-5: .05; --percentage-10: .1; --percentage-15: .15; --percentage-20: .2; --percentage-25: .25; --percentage-30: .3; --percentage-35: .35; --percentage-40: .4; --percentage-45: .45; --percentage-50: .5; --percentage-55: .55; --percentage-60: .6; --percentage-65: .65; --percentage-70: .7; --percentage-75: .75; --percentage-80: .8; --percentage-85: .85; --percentage-90: .9; --percentage-95: .95; --percentage-100: 1; --percentage-translate-full: 1; --animate-in: enter var(--tw-animation-duration,var(--tw-duration,.15s))var(--tw-ease,ease)var(--tw-animation-delay,0s)var(--tw-animation-iteration-count,1)var(--tw-animation-direction,normal)var(--tw-animation-fill-mode,none); --animate-out: exit var(--tw-animation-duration,var(--tw-duration,.15s))var(--tw-ease,ease)var(--tw-animation-delay,0s)var(--tw-animation-iteration-count,1)var(--tw-animation-direction,normal)var(--tw-animation-fill-mode,none); @keyframes enter { from { opacity: var(--tw-enter-opacity,1); transform: translate3d(var(--tw-enter-translate-x,0),var(--tw-enter-translate-y,0),0)scale3d(var(--tw-enter-scale,1),var(--tw-enter-scale,1),var(--tw-enter-scale,1))rotate(var(--tw-enter-rotate,0)); filter: blur(var(--tw-enter-blur,0)); }}@keyframes exit { to { opacity: var(--tw-exit-opacity,1); transform: translate3d(var(--tw-exit-translate-x,0),var(--tw-exit-translate-y,0),0)scale3d(var(--tw-exit-scale,1),var(--tw-exit-scale,1),var(--tw-exit-scale,1))rotate(var(--tw-exit-rotate,0)); filter: blur(var(--tw-exit-blur,0)); }}--animate-accordion-down: accordion-down var(--tw-animation-duration,var(--tw-duration,.2s))var(--tw-ease,ease-out)var(--tw-animation-delay,0s)var(--tw-animation-iteration-count,1)var(--tw-animation-direction,normal)var(--tw-animation-fill-mode,none); --animate-accordion-up: accordion-up var(--tw-animation-duration,var(--tw-duration,.2s))var(--tw-ease,ease-out)var(--tw-animation-delay,0s)var(--tw-animation-iteration-count,1)var(--tw-animation-direction,normal)var(--tw-animation-fill-mode,none); --animate-collapsible-down: collapsible-down var(--tw-animation-duration,var(--tw-duration,.2s))var(--tw-ease,ease-out)var(--tw-animation-delay,0s)var(--tw-animation-iteration-count,1)var(--tw-animation-direction,normal)var(--tw-animation-fill-mode,none); --animate-collapsible-up: collapsible-up var(--tw-animation-duration,var(--tw-duration,.2s))var(--tw-ease,ease-out)var(--tw-animation-delay,0s)var(--tw-animation-iteration-count,1)var(--tw-animation-direction,normal)var(--tw-animation-fill-mode,none); @keyframes accordion-down { from { height: 0; }to { height: var(--radix-accordion-content-height,var(--bits-accordion-content-height,var(--reka-accordion-content-height,var(--kb-accordion-content-height,var(--ngp-accordion-content-height,auto))))); }}@keyframes accordion-up { from { height: var(--radix-accordion-content-height,var(--bits-accordion-content-height,var(--reka-accordion-content-height,var(--kb-accordion-content-height,var(--ngp-accordion-content-height,auto))))); }to { height: 0; }}@keyframes collapsible-down { from { height: 0; }to { height: var(--radix-collapsible-content-height,var(--bits-collapsible-content-height,var(--reka-collapsible-content-height,var(--kb-collapsible-content-height,auto)))); }}@keyframes collapsible-up { from { height: var(--radix-collapsible-content-height,var(--bits-collapsible-content-height,var(--reka-collapsible-content-height,var(--kb-collapsible-content-height,auto)))); }to { height: 0; }}--animate-caret-blink: caret-blink 1.25s ease-out infinite; @keyframes caret-blink { 0%,70%,100% { opacity: 1; }20%,50% { opacity: 0; }}}@utility animation-duration-*{--tw-animation-duration: calc(--value(number)*1ms); --tw-animation-duration: --value(--animation-duration-*,[duration],"initial",[*]); animation-duration: calc(--value(number)*1ms); animation-duration: --value(--animation-duration-*,[duration],"initial",[*]);}@utility delay-*{animation-delay: calc(--value(number)*1ms); animation-delay: --value(--animation-delay-*,[duration],"initial",[*]); --tw-animation-delay: calc(--value(number)*1ms); --tw-animation-delay: --value(--animation-delay-*,[duration],"initial",[*]);}@utility repeat-*{animation-iteration-count: --value(--animation-repeat-*,number,"initial",[*]); --tw-animation-iteration-count: --value(--animation-repeat-*,number,"initial",[*]);}@utility direction-*{animation-direction: --value(--animation-direction-*,"initial",[*]); --tw-animation-direction: --value(--animation-direction-*,"initial",[*]);}@utility fill-mode-*{animation-fill-mode: --value(--animation-fill-mode-*,"initial",[*]); --tw-animation-fill-mode: --value(--animation-fill-mode-*,"initial",[*]);}@utility running{animation-play-state: running;}@utility paused{animation-play-state: paused;}@utility play-state-*{animation-play-state: --value("initial",[*]);}@utility blur-in{--tw-enter-blur: 20px;}@utility blur-in-*{--tw-enter-blur: calc(--value(number)*1px); --tw-enter-blur: --value(--blur-*,[*]);}@utility blur-out{--tw-exit-blur: 20px;}@utility blur-out-*{--tw-exit-blur: calc(--value(number)*1px); --tw-exit-blur: --value(--blur-*,[*]);}@utility fade-in{--tw-enter-opacity: 0;}@utility fade-in-*{--tw-enter-opacity: calc(--value(number)/100); --tw-enter-opacity: --value(--percentage-*,[*]);}@utility fade-out{--tw-exit-opacity: 0;}@utility fade-out-*{--tw-exit-opacity: calc(--value(number)/100); --tw-exit-opacity: --value(--percentage-*,[*]);}@utility zoom-in{--tw-enter-scale: 0;}@utility zoom-in-*{--tw-enter-scale: calc(--value(number)*1%); --tw-enter-scale: calc(--value(ratio)); --tw-enter-scale: --value(--percentage-*,[*]);}@utility -zoom-in-*{--tw-enter-scale: calc(--value(number)*-1%); --tw-enter-scale: calc(--value(ratio)*-1); --tw-enter-scale: --value(--percentage-*,[*]);}@utility zoom-out{--tw-exit-scale: 0;}@utility zoom-out-*{--tw-exit-scale: calc(--value(number)*1%); --tw-exit-scale: calc(--value(ratio)); --tw-exit-scale: --value(--percentage-*,[*]);}@utility -zoom-out-*{--tw-exit-scale: calc(--value(number)*-1%); --tw-exit-scale: calc(--value(ratio)*-1); --tw-exit-scale: --value(--percentage-*,[*]);}@utility spin-in{--tw-enter-rotate: 30deg;}@utility spin-in-*{--tw-enter-rotate: calc(--value(number)*1deg); --tw-enter-rotate: calc(--value(ratio)*360deg); --tw-enter-rotate: --value(--rotate-*,[*]);}@utility -spin-in{--tw-enter-rotate: -30deg;}@utility -spin-in-*{--tw-enter-rotate: calc(--value(number)*-1deg); --tw-enter-rotate: calc(--value(ratio)*-360deg); --tw-enter-rotate: --value(--rotate-*,[*]);}@utility spin-out{--tw-exit-rotate: 30deg;}@utility spin-out-*{--tw-exit-rotate: calc(--value(number)*1deg); --tw-exit-rotate: calc(--value(ratio)*360deg); --tw-exit-rotate: --value(--rotate-*,[*]);}@utility -spin-out{--tw-exit-rotate: -30deg;}@utility -spin-out-*{--tw-exit-rotate: calc(--value(number)*-1deg); --tw-exit-rotate: calc(--value(ratio)*-360deg); --tw-exit-rotate: --value(--rotate-*,[*]);}@utility slide-in-from-top{--tw-enter-translate-y: -100%;}@utility slide-in-from-top-*{--tw-enter-translate-y: calc(--value(integer)*var(--spacing)*-1); --tw-enter-translate-y: calc(--value(--percentage-*,--percentage-translate-*)*-100%); --tw-enter-translate-y: calc(--value(ratio)*-100%); --tw-enter-translate-y: calc(--value(--translate-*,[percentage],[length])*-1);}@utility slide-in-from-bottom{--tw-enter-translate-y: 100%;}@utility slide-in-from-bottom-*{--tw-enter-translate-y: calc(--value(integer)*var(--spacing)); --tw-enter-translate-y: calc(--value(--percentage-*,--percentage-translate-*)*100%); --tw-enter-translate-y: calc(--value(ratio)*100%); --tw-enter-translate-y: --value(--translate-*,[percentage],[length]);}@utility slide-in-from-left{--tw-enter-translate-x: -100%;}@utility slide-in-from-left-*{--tw-enter-translate-x: calc(--value(integer)*var(--spacing)*-1); --tw-enter-translate-x: calc(--value(--percentage-*,--percentage-translate-*)*-100%); --tw-enter-translate-x: calc(--value(ratio)*-100%); --tw-enter-translate-x: calc(--value(--translate-*,[percentage],[length])*-1);}@utility slide-in-from-right{--tw-enter-translate-x: 100%;}@utility slide-in-from-right-*{--tw-enter-translate-x: calc(--value(integer)*var(--spacing)); --tw-enter-translate-x: calc(--value(--percentage-*,--percentage-translate-*)*100%); --tw-enter-translate-x: calc(--value(ratio)*100%); --tw-enter-translate-x: --value(--translate-*,[percentage],[length]);}@utility slide-in-from-start{&:dir(ltr){ --tw-enter-translate-x: -100%; }&:dir(rtl){ --tw-enter-translate-x: 100%; }}@utility slide-in-from-start-*{&:where(:dir(ltr),[dir="ltr"],[dir="ltr"]*){ --tw-enter-translate-x: calc(--value(integer)*var(--spacing)*-1); --tw-enter-translate-x: calc(--value(--percentage-*,--percentage-translate-*)*-100%); --tw-enter-translate-x: calc(--value(ratio)*-100%); --tw-enter-translate-x: calc(--value(--translate-*,[percentage],[length])*-1); }&:where(:dir(rtl),[dir="rtl"],[dir="rtl"]*){ --tw-enter-translate-x: calc(--value(integer)*var(--spacing)); --tw-enter-translate-x: calc(--value(--percentage-*,--percentage-translate-*)*100%); --tw-enter-translate-x: calc(--value(ratio)*100%); --tw-enter-translate-x: --value(--translate-*,[percentage],[length]); }}@utility slide-in-from-end{&:dir(ltr){ --tw-enter-translate-x: 100%; }&:dir(rtl){ --tw-enter-translate-x: -100%; }}@utility slide-in-from-end-*{&:where(:dir(ltr),[dir="ltr"],[dir="ltr"]*){ --tw-enter-translate-x: calc(--value(integer)*var(--spacing)); --tw-enter-translate-x: calc(--value(--percentage-*,--percentage-translate-*)*100%); --tw-enter-translate-x: calc(--value(ratio)*100%); --tw-enter-translate-x: --value(--translate-*,[percentage],[length]); }&:where(:dir(rtl),[dir="rtl"],[dir="rtl"]*){ --tw-enter-translate-x: calc(--value(integer)*var(--spacing)*-1); --tw-enter-translate-x: calc(--value(--percentage-*,--percentage-translate-*)*-100%); --tw-enter-translate-x: calc(--value(ratio)*-100%); --tw-enter-translate-x: calc(--value(--translate-*,[percentage],[length])*-1); }}@utility slide-out-to-top{--tw-exit-translate-y: -100%;}@utility slide-out-to-top-*{--tw-exit-translate-y: calc(--value(integer)*var(--spacing)*-1); --tw-exit-translate-y: calc(--value(--percentage-*,--percentage-translate-*)*-100%); --tw-exit-translate-y: calc(--value(ratio)*-100%); --tw-exit-translate-y: calc(--value(--translate-*,[percentage],[length])*-1);}@utility slide-out-to-bottom{--tw-exit-translate-y: 100%;}@utility slide-out-to-bottom-*{--tw-exit-translate-y: calc(--value(integer)*var(--spacing)); --tw-exit-translate-y: calc(--value(--percentage-*,--percentage-translate-*)*100%); --tw-exit-translate-y: calc(--value(ratio)*100%); --tw-exit-translate-y: --value(--translate-*,[percentage],[length]);}@utility slide-out-to-left{--tw-exit-translate-x: -100%;}@utility slide-out-to-left-*{--tw-exit-translate-x: calc(--value(integer)*var(--spacing)*-1); --tw-exit-translate-x: calc(--value(--percentage-*,--percentage-translate-*)*-100%); --tw-exit-translate-x: calc(--value(ratio)*-100%); --tw-exit-translate-x: calc(--value(--translate-*,[percentage],[length])*-1);}@utility slide-out-to-right{--tw-exit-translate-x: 100%;}@utility slide-out-to-right-*{--tw-exit-translate-x: calc(--value(integer)*var(--spacing)); --tw-exit-translate-x: calc(--value(--percentage-*,--percentage-translate-*)*100%); --tw-exit-translate-x: calc(--value(ratio)*100%); --tw-exit-translate-x: --value(--translate-*,[percentage],[length]);}@utility slide-out-to-start{&:dir(ltr){ --tw-exit-translate-x: -100%; }&:dir(rtl){ --tw-exit-translate-x: 100%; }}@utility slide-out-to-start-*{&:where(:dir(ltr),[dir="ltr"],[dir="ltr"]*){ --tw-exit-translate-x: calc(--value(integer)*var(--spacing)*-1); --tw-exit-translate-x: calc(--value(--percentage-*,--percentage-translate-*)*-100%); --tw-exit-translate-x: calc(--value(ratio)*-100%); --tw-exit-translate-x: calc(--value(--translate-*,[percentage],[length])*-1); }&:where(:dir(rtl),[dir="rtl"],[dir="rtl"]*){ --tw-exit-translate-x: calc(--value(integer)*var(--spacing)); --tw-exit-translate-x: calc(--value(--percentage-*,--percentage-translate-*)*100%); --tw-exit-translate-x: calc(--value(ratio)*100%); --tw-exit-translate-x: --value(--translate-*,[percentage],[length]); }}@utility slide-out-to-end{&:dir(ltr){ --tw-exit-translate-x: 100%; }&:dir(rtl){ --tw-exit-translate-x: -100%; }}@utility slide-out-to-end-*{&:where(:dir(ltr),[dir="ltr"],[dir="ltr"]*){ --tw-exit-translate-x: calc(--value(integer)*var(--spacing)); --tw-exit-translate-x: calc(--value(--percentage-*,--percentage-translate-*)*100%); --tw-exit-translate-x: calc(--value(ratio)*100%); --tw-exit-translate-x: --value(--translate-*,[percentage],[length]); }&:where(:dir(rtl),[dir="rtl"],[dir="rtl"]*){ --tw-exit-translate-x: calc(--value(integer)*var(--spacing)*-1); --tw-exit-translate-x: calc(--value(--percentage-*,--percentage-translate-*)*-100%); --tw-exit-translate-x: calc(--value(ratio)*-100%); --tw-exit-translate-x: calc(--value(--translate-*,[percentage],[length])*-1); }}
|
|
6
|
-
@theme inline{@keyframes accordion-down { from { height: 0; }to { height: var(--radix-accordion-content-height,var(--accordion-panel-height,auto)); }}@keyframes accordion-up { from { height: var(--radix-accordion-content-height,var(--accordion-panel-height,auto)); }to { height: 0; }}}@custom-variant data-open{&:where([data-state="open"]),&:where([data-open]:not([data-open="false"])){ @slot; }}@custom-variant data-closed{&:where([data-state="closed"]),&:where([data-closed]:not([data-closed="false"])){ @slot; }}@custom-variant data-checked{&:where([data-state="checked"]),&:where([data-checked]:not([data-checked="false"])){ @slot; }}@custom-variant data-unchecked{&:where([data-state="unchecked"]),&:where([data-unchecked]:not([data-unchecked="false"])){ @slot; }}@custom-variant data-selected{&:where([data-selected="true"]){ @slot; }}@custom-variant data-disabled{&:where([data-disabled="true"]),&:where([data-disabled]:not([data-disabled="false"])){ @slot; }}@custom-variant data-active{&:where([data-state="active"]),&:where([data-active]:not([data-active="false"])){ @slot; }}@custom-variant data-horizontal{&:where([data-orientation="horizontal"]){ @slot; }}@custom-variant data-vertical{&:where([data-orientation="vertical"]){ @slot; }}@utility no-scrollbar{-ms-overflow-style: none; scrollbar-width: none;&::-webkit-scrollbar { display: none; }}
|
|
7
|
-
@font-face{font-display:block;font-family:KaTeX_AMS;font-style:normal;font-weight:400;src:url(../media/KaTeX_AMS-Regular.c30af439.woff2)format("woff2"),url(../media/KaTeX_AMS-Regular.e6a3cada.woff)format("woff"),url(../media/KaTeX_AMS-Regular.892f691b.ttf)format("truetype")}@font-face{font-display:block;font-family:KaTeX_Caligraphic;font-style:normal;font-weight:700;src:url(../media/KaTeX_Caligraphic-Bold.db991531.woff2)format("woff2"),url(../media/KaTeX_Caligraphic-Bold.2f97783e.woff)format("woff"),url(../media/KaTeX_Caligraphic-Bold.a36b8125.ttf)format("truetype")}@font-face{font-display:block;font-family:KaTeX_Caligraphic;font-style:normal;font-weight:400;src:url(../media/KaTeX_Caligraphic-Regular.c20eee08.woff2)format("woff2"),url(../media/KaTeX_Caligraphic-Regular.2b13f013.woff)format("woff"),url(../media/KaTeX_Caligraphic-Regular.7c50032c.ttf)format("truetype")}@font-face{font-display:block;font-family:KaTeX_Fraktur;font-style:normal;font-weight:700;src:url(../media/KaTeX_Fraktur-Bold.d514bd28.woff2)format("woff2"),url(../media/KaTeX_Fraktur-Bold.5fa2f5e4.woff)format("woff"),url(../media/KaTeX_Fraktur-Bold.e311399d.ttf)format("truetype")}@font-face{font-display:block;font-family:KaTeX_Fraktur;font-style:normal;font-weight:400;src:url(../media/KaTeX_Fraktur-Regular.5d62e468.woff2)format("woff2"),url(../media/KaTeX_Fraktur-Regular.18139813.woff)format("woff"),url(../media/KaTeX_Fraktur-Regular.2a73476d.ttf)format("truetype")}@font-face{font-display:block;font-family:KaTeX_Main;font-style:normal;font-weight:700;src:url(../media/KaTeX_Main-Bold.f4e2828d.woff2)format("woff2"),url(../media/KaTeX_Main-Bold.c24b5ba7.woff)format("woff"),url(../media/KaTeX_Main-Bold.6d137c77.ttf)format("truetype")}@font-face{font-display:block;font-family:KaTeX_Main;font-style:italic;font-weight:700;src:url(../media/KaTeX_Main-BoldItalic.f1884480.woff2)format("woff2"),url(../media/KaTeX_Main-BoldItalic.079b33ae.woff)format("woff"),url(../media/KaTeX_Main-BoldItalic.c003d3ec.ttf)format("truetype")}@font-face{font-display:block;font-family:KaTeX_Main;font-style:italic;font-weight:400;src:url(../media/KaTeX_Main-Italic.a3746929.woff2)format("woff2"),url(../media/KaTeX_Main-Italic.26a3619b.woff)format("woff"),url(../media/KaTeX_Main-Italic.61da3e93.ttf)format("truetype")}@font-face{font-display:block;font-family:KaTeX_Main;font-style:normal;font-weight:400;src:url(../media/KaTeX_Main-Regular.12644167.woff2)format("woff2"),url(../media/KaTeX_Main-Regular.d511f158.woff)format("woff"),url(../media/KaTeX_Main-Regular.876b86ad.ttf)format("truetype")}@font-face{font-display:block;font-family:KaTeX_Math;font-style:italic;font-weight:700;src:url(../media/KaTeX_Math-BoldItalic.5c6a6a93.woff2)format("woff2"),url(../media/KaTeX_Math-BoldItalic.ad4dffd5.woff)format("woff"),url(../media/KaTeX_Math-BoldItalic.e73b3bf0.ttf)format("truetype")}@font-face{font-display:block;font-family:KaTeX_Math;font-style:italic;font-weight:400;src:url(../media/KaTeX_Math-Italic.d8564edb.woff2)format("woff2"),url(../media/KaTeX_Math-Italic.1cd2c488.woff)format("woff"),url(../media/KaTeX_Math-Italic.03974bc4.ttf)format("truetype")}@font-face{font-display:block;font-family:KaTeX_SansSerif;font-style:normal;font-weight:700;src:url(../media/KaTeX_SansSerif-Bold.a03f9428.woff2)format("woff2"),url(../media/KaTeX_SansSerif-Bold.ff51ef5c.woff)format("woff"),url(../media/KaTeX_SansSerif-Bold.d4608ed5.ttf)format("truetype")}@font-face{font-display:block;font-family:KaTeX_SansSerif;font-style:italic;font-weight:400;src:url(../media/KaTeX_SansSerif-Italic.9245afda.woff2)format("woff2"),url(../media/KaTeX_SansSerif-Italic.8ed740d6.woff)format("woff"),url(../media/KaTeX_SansSerif-Italic.c0b22b1e.ttf)format("truetype")}@font-face{font-display:block;font-family:KaTeX_SansSerif;font-style:normal;font-weight:400;src:url(../media/KaTeX_SansSerif-Regular.128c9bc2.woff2)format("woff2"),url(../media/KaTeX_SansSerif-Regular.ee7b0a16.woff)format("woff"),url(../media/KaTeX_SansSerif-Regular.156dbd4e.ttf)format("truetype")}@font-face{font-display:block;font-family:KaTeX_Script;font-style:normal;font-weight:400;src:url(../media/KaTeX_Script-Regular.186c7155.woff2)format("woff2"),url(../media/KaTeX_Script-Regular.afc2fd5a.woff)format("woff"),url(../media/KaTeX_Script-Regular.00d9a561.ttf)format("truetype")}@font-face{font-display:block;font-family:KaTeX_Size1;font-style:normal;font-weight:400;src:url(../media/KaTeX_Size1-Regular.4450ef36.woff2)format("woff2"),url(../media/KaTeX_Size1-Regular.e5bf4c74.woff)format("woff"),url(../media/KaTeX_Size1-Regular.9aaff96b.ttf)format("truetype")}@font-face{font-display:block;font-family:KaTeX_Size2;font-style:normal;font-weight:400;src:url(../media/KaTeX_Size2-Regular.6a97527b.woff2)format("woff2"),url(../media/KaTeX_Size2-Regular.8fbd32af.woff)format("woff"),url(../media/KaTeX_Size2-Regular.f11810ed.ttf)format("truetype")}@font-face{font-display:block;font-family:KaTeX_Size3;font-style:normal;font-weight:400;src:url(../media/KaTeX_Size3-Regular.54b7ce9d.woff2)format("woff2"),url(../media/KaTeX_Size3-Regular.45ae8eba.woff)format("woff"),url(../media/KaTeX_Size3-Regular.9812ade2.ttf)format("truetype")}@font-face{font-display:block;font-family:KaTeX_Size4;font-style:normal;font-weight:400;src:url(../media/KaTeX_Size4-Regular.927fc5b9.woff2)format("woff2"),url(../media/KaTeX_Size4-Regular.b211e3d3.woff)format("woff"),url(../media/KaTeX_Size4-Regular.44a4d487.ttf)format("truetype")}@font-face{font-display:block;font-family:KaTeX_Typewriter;font-style:normal;font-weight:400;src:url(../media/KaTeX_Typewriter-Regular.ff99d643.woff2)format("woff2"),url(../media/KaTeX_Typewriter-Regular.68b6c3a9.woff)format("woff"),url(../media/KaTeX_Typewriter-Regular.a1a7ff52.ttf)format("truetype")}.katex{text-indent:0;text-rendering:auto;font:1.21em/1.2 KaTeX_Main,Times New Roman,serif;position:relative}.katex *{border-color:currentColor;-ms-high-contrast-adjust:none!important}.katex .katex-version:after{content:"0.16.47"}.katex .katex-mathml{clip-path:inset(50%);border:0;width:1px;height:1px;padding:0;position:absolute;overflow:hidden}.katex .katex-html>.newline{display:block}.katex .base{white-space:nowrap;width:min-content;position:relative}.katex .base,.katex .strut{display:inline-block}.katex .textbf{font-weight:700}.katex .textit{font-style:italic}.katex .textrm{font-family:KaTeX_Main}.katex .textsf{font-family:KaTeX_SansSerif}.katex .texttt{font-family:KaTeX_Typewriter}.katex .mathnormal{font-family:KaTeX_Math;font-style:italic}.katex .mathit{font-family:KaTeX_Main;font-style:italic}.katex .mathrm{font-style:normal}.katex .mathbf{font-family:KaTeX_Main;font-weight:700}.katex .boldsymbol{font-family:KaTeX_Math;font-style:italic;font-weight:700}.katex .amsrm,.katex .mathbb,.katex .textbb{font-family:KaTeX_AMS}.katex .mathcal{font-family:KaTeX_Caligraphic}.katex .mathfrak,.katex .textfrak{font-family:KaTeX_Fraktur}.katex .mathboldfrak,.katex .textboldfrak{font-family:KaTeX_Fraktur;font-weight:700}.katex .mathtt{font-family:KaTeX_Typewriter}.katex .mathscr,.katex .textscr{font-family:KaTeX_Script}.katex .mathsf,.katex .textsf{font-family:KaTeX_SansSerif}.katex .mathboldsf,.katex .textboldsf{font-family:KaTeX_SansSerif;font-weight:700}.katex .mathitsf,.katex .mathsfit,.katex .textitsf{font-family:KaTeX_SansSerif;font-style:italic}.katex .mainrm{font-family:KaTeX_Main;font-style:normal}.katex .vlist-t{border-collapse:collapse;table-layout:fixed;display:inline-table}.katex .vlist-r{display:table-row}.katex .vlist{vertical-align:bottom;display:table-cell;position:relative}.katex .vlist>span{height:0;display:block;position:relative}.katex .vlist>span>span{display:inline-block}.katex .vlist>span>.pstrut{width:0;overflow:hidden}.katex .vlist-t2{margin-right:-2px}.katex .vlist-s{vertical-align:bottom;width:2px;min-width:2px;font-size:1px;display:table-cell}.katex .vbox{flex-direction:column;align-items:baseline;display:inline-flex}.katex .hbox{width:100%}.katex .hbox,.katex .thinbox{flex-direction:row;display:inline-flex}.katex .thinbox{width:0;max-width:0}.katex .msupsub{text-align:left}.katex .mfrac>span>span{text-align:center}.katex .mfrac .frac-line{border-bottom-style:solid;width:100%;display:inline-block}.katex .hdashline,.katex .hline,.katex .mfrac .frac-line,.katex .overline .overline-line,.katex .rule,.katex .underline .underline-line{min-height:1px}.katex .mspace{display:inline-block}.katex .smash{line-height:0;display:inline}.katex .clap,.katex .llap,.katex .rlap{width:0;position:relative}.katex .clap>.inner,.katex .llap>.inner,.katex .rlap>.inner{position:absolute}.katex .clap>.fix,.katex .llap>.fix,.katex .rlap>.fix{display:inline-block}.katex .llap>.inner{right:0}.katex .clap>.inner,.katex .rlap>.inner{left:0}.katex .clap>.inner>span{margin-left:-50%;margin-right:50%}.katex .rule{border:0 solid;display:inline-block;position:relative}.katex .hline,.katex .overline .overline-line,.katex .underline .underline-line{border-bottom-style:solid;width:100%;display:inline-block}.katex .hdashline{border-bottom-style:dashed;width:100%;display:inline-block}.katex .sqrt>.root{margin-left:.277778em;margin-right:-.555556em}.katex .fontsize-ensurer.reset-size1.size1,.katex .sizing.reset-size1.size1{font-size:1em}.katex .fontsize-ensurer.reset-size1.size2,.katex .sizing.reset-size1.size2{font-size:1.2em}.katex .fontsize-ensurer.reset-size1.size3,.katex .sizing.reset-size1.size3{font-size:1.4em}.katex .fontsize-ensurer.reset-size1.size4,.katex .sizing.reset-size1.size4{font-size:1.6em}.katex .fontsize-ensurer.reset-size1.size5,.katex .sizing.reset-size1.size5{font-size:1.8em}.katex .fontsize-ensurer.reset-size1.size6,.katex .sizing.reset-size1.size6{font-size:2em}.katex .fontsize-ensurer.reset-size1.size7,.katex .sizing.reset-size1.size7{font-size:2.4em}.katex .fontsize-ensurer.reset-size1.size8,.katex .sizing.reset-size1.size8{font-size:2.88em}.katex .fontsize-ensurer.reset-size1.size9,.katex .sizing.reset-size1.size9{font-size:3.456em}.katex .fontsize-ensurer.reset-size1.size10,.katex .sizing.reset-size1.size10{font-size:4.148em}.katex .fontsize-ensurer.reset-size1.size11,.katex .sizing.reset-size1.size11{font-size:4.976em}.katex .fontsize-ensurer.reset-size2.size1,.katex .sizing.reset-size2.size1{font-size:.833333em}.katex .fontsize-ensurer.reset-size2.size2,.katex .sizing.reset-size2.size2{font-size:1em}.katex .fontsize-ensurer.reset-size2.size3,.katex .sizing.reset-size2.size3{font-size:1.16667em}.katex .fontsize-ensurer.reset-size2.size4,.katex .sizing.reset-size2.size4{font-size:1.33333em}.katex .fontsize-ensurer.reset-size2.size5,.katex .sizing.reset-size2.size5{font-size:1.5em}.katex .fontsize-ensurer.reset-size2.size6,.katex .sizing.reset-size2.size6{font-size:1.66667em}.katex .fontsize-ensurer.reset-size2.size7,.katex .sizing.reset-size2.size7{font-size:2em}.katex .fontsize-ensurer.reset-size2.size8,.katex .sizing.reset-size2.size8{font-size:2.4em}.katex .fontsize-ensurer.reset-size2.size9,.katex .sizing.reset-size2.size9{font-size:2.88em}.katex .fontsize-ensurer.reset-size2.size10,.katex .sizing.reset-size2.size10{font-size:3.45667em}.katex .fontsize-ensurer.reset-size2.size11,.katex .sizing.reset-size2.size11{font-size:4.14667em}.katex .fontsize-ensurer.reset-size3.size1,.katex .sizing.reset-size3.size1{font-size:.714286em}.katex .fontsize-ensurer.reset-size3.size2,.katex .sizing.reset-size3.size2{font-size:.857143em}.katex .fontsize-ensurer.reset-size3.size3,.katex .sizing.reset-size3.size3{font-size:1em}.katex .fontsize-ensurer.reset-size3.size4,.katex .sizing.reset-size3.size4{font-size:1.14286em}.katex .fontsize-ensurer.reset-size3.size5,.katex .sizing.reset-size3.size5{font-size:1.28571em}.katex .fontsize-ensurer.reset-size3.size6,.katex .sizing.reset-size3.size6{font-size:1.42857em}.katex .fontsize-ensurer.reset-size3.size7,.katex .sizing.reset-size3.size7{font-size:1.71429em}.katex .fontsize-ensurer.reset-size3.size8,.katex .sizing.reset-size3.size8{font-size:2.05714em}.katex .fontsize-ensurer.reset-size3.size9,.katex .sizing.reset-size3.size9{font-size:2.46857em}.katex .fontsize-ensurer.reset-size3.size10,.katex .sizing.reset-size3.size10{font-size:2.96286em}.katex .fontsize-ensurer.reset-size3.size11,.katex .sizing.reset-size3.size11{font-size:3.55429em}.katex .fontsize-ensurer.reset-size4.size1,.katex .sizing.reset-size4.size1{font-size:.625em}.katex .fontsize-ensurer.reset-size4.size2,.katex .sizing.reset-size4.size2{font-size:.75em}.katex .fontsize-ensurer.reset-size4.size3,.katex .sizing.reset-size4.size3{font-size:.875em}.katex .fontsize-ensurer.reset-size4.size4,.katex .sizing.reset-size4.size4{font-size:1em}.katex .fontsize-ensurer.reset-size4.size5,.katex .sizing.reset-size4.size5{font-size:1.125em}.katex .fontsize-ensurer.reset-size4.size6,.katex .sizing.reset-size4.size6{font-size:1.25em}.katex .fontsize-ensurer.reset-size4.size7,.katex .sizing.reset-size4.size7{font-size:1.5em}.katex .fontsize-ensurer.reset-size4.size8,.katex .sizing.reset-size4.size8{font-size:1.8em}.katex .fontsize-ensurer.reset-size4.size9,.katex .sizing.reset-size4.size9{font-size:2.16em}.katex .fontsize-ensurer.reset-size4.size10,.katex .sizing.reset-size4.size10{font-size:2.5925em}.katex .fontsize-ensurer.reset-size4.size11,.katex .sizing.reset-size4.size11{font-size:3.11em}.katex .fontsize-ensurer.reset-size5.size1,.katex .sizing.reset-size5.size1{font-size:.555556em}.katex .fontsize-ensurer.reset-size5.size2,.katex .sizing.reset-size5.size2{font-size:.666667em}.katex .fontsize-ensurer.reset-size5.size3,.katex .sizing.reset-size5.size3{font-size:.777778em}.katex .fontsize-ensurer.reset-size5.size4,.katex .sizing.reset-size5.size4{font-size:.888889em}.katex .fontsize-ensurer.reset-size5.size5,.katex .sizing.reset-size5.size5{font-size:1em}.katex .fontsize-ensurer.reset-size5.size6,.katex .sizing.reset-size5.size6{font-size:1.11111em}.katex .fontsize-ensurer.reset-size5.size7,.katex .sizing.reset-size5.size7{font-size:1.33333em}.katex .fontsize-ensurer.reset-size5.size8,.katex .sizing.reset-size5.size8{font-size:1.6em}.katex .fontsize-ensurer.reset-size5.size9,.katex .sizing.reset-size5.size9{font-size:1.92em}.katex .fontsize-ensurer.reset-size5.size10,.katex .sizing.reset-size5.size10{font-size:2.30444em}.katex .fontsize-ensurer.reset-size5.size11,.katex .sizing.reset-size5.size11{font-size:2.76444em}.katex .fontsize-ensurer.reset-size6.size1,.katex .sizing.reset-size6.size1{font-size:.5em}.katex .fontsize-ensurer.reset-size6.size2,.katex .sizing.reset-size6.size2{font-size:.6em}.katex .fontsize-ensurer.reset-size6.size3,.katex .sizing.reset-size6.size3{font-size:.7em}.katex .fontsize-ensurer.reset-size6.size4,.katex .sizing.reset-size6.size4{font-size:.8em}.katex .fontsize-ensurer.reset-size6.size5,.katex .sizing.reset-size6.size5{font-size:.9em}.katex .fontsize-ensurer.reset-size6.size6,.katex .sizing.reset-size6.size6{font-size:1em}.katex .fontsize-ensurer.reset-size6.size7,.katex .sizing.reset-size6.size7{font-size:1.2em}.katex .fontsize-ensurer.reset-size6.size8,.katex .sizing.reset-size6.size8{font-size:1.44em}.katex .fontsize-ensurer.reset-size6.size9,.katex .sizing.reset-size6.size9{font-size:1.728em}.katex .fontsize-ensurer.reset-size6.size10,.katex .sizing.reset-size6.size10{font-size:2.074em}.katex .fontsize-ensurer.reset-size6.size11,.katex .sizing.reset-size6.size11{font-size:2.488em}.katex .fontsize-ensurer.reset-size7.size1,.katex .sizing.reset-size7.size1{font-size:.416667em}.katex .fontsize-ensurer.reset-size7.size2,.katex .sizing.reset-size7.size2{font-size:.5em}.katex .fontsize-ensurer.reset-size7.size3,.katex .sizing.reset-size7.size3{font-size:.583333em}.katex .fontsize-ensurer.reset-size7.size4,.katex .sizing.reset-size7.size4{font-size:.666667em}.katex .fontsize-ensurer.reset-size7.size5,.katex .sizing.reset-size7.size5{font-size:.75em}.katex .fontsize-ensurer.reset-size7.size6,.katex .sizing.reset-size7.size6{font-size:.833333em}.katex .fontsize-ensurer.reset-size7.size7,.katex .sizing.reset-size7.size7{font-size:1em}.katex .fontsize-ensurer.reset-size7.size8,.katex .sizing.reset-size7.size8{font-size:1.2em}.katex .fontsize-ensurer.reset-size7.size9,.katex .sizing.reset-size7.size9{font-size:1.44em}.katex .fontsize-ensurer.reset-size7.size10,.katex .sizing.reset-size7.size10{font-size:1.72833em}.katex .fontsize-ensurer.reset-size7.size11,.katex .sizing.reset-size7.size11{font-size:2.07333em}.katex .fontsize-ensurer.reset-size8.size1,.katex .sizing.reset-size8.size1{font-size:.347222em}.katex .fontsize-ensurer.reset-size8.size2,.katex .sizing.reset-size8.size2{font-size:.416667em}.katex .fontsize-ensurer.reset-size8.size3,.katex .sizing.reset-size8.size3{font-size:.486111em}.katex .fontsize-ensurer.reset-size8.size4,.katex .sizing.reset-size8.size4{font-size:.555556em}.katex .fontsize-ensurer.reset-size8.size5,.katex .sizing.reset-size8.size5{font-size:.625em}.katex .fontsize-ensurer.reset-size8.size6,.katex .sizing.reset-size8.size6{font-size:.694444em}.katex .fontsize-ensurer.reset-size8.size7,.katex .sizing.reset-size8.size7{font-size:.833333em}.katex .fontsize-ensurer.reset-size8.size8,.katex .sizing.reset-size8.size8{font-size:1em}.katex .fontsize-ensurer.reset-size8.size9,.katex .sizing.reset-size8.size9{font-size:1.2em}.katex .fontsize-ensurer.reset-size8.size10,.katex .sizing.reset-size8.size10{font-size:1.44028em}.katex .fontsize-ensurer.reset-size8.size11,.katex .sizing.reset-size8.size11{font-size:1.72778em}.katex .fontsize-ensurer.reset-size9.size1,.katex .sizing.reset-size9.size1{font-size:.289352em}.katex .fontsize-ensurer.reset-size9.size2,.katex .sizing.reset-size9.size2{font-size:.347222em}.katex .fontsize-ensurer.reset-size9.size3,.katex .sizing.reset-size9.size3{font-size:.405093em}.katex .fontsize-ensurer.reset-size9.size4,.katex .sizing.reset-size9.size4{font-size:.462963em}.katex .fontsize-ensurer.reset-size9.size5,.katex .sizing.reset-size9.size5{font-size:.520833em}.katex .fontsize-ensurer.reset-size9.size6,.katex .sizing.reset-size9.size6{font-size:.578704em}.katex .fontsize-ensurer.reset-size9.size7,.katex .sizing.reset-size9.size7{font-size:.694444em}.katex .fontsize-ensurer.reset-size9.size8,.katex .sizing.reset-size9.size8{font-size:.833333em}.katex .fontsize-ensurer.reset-size9.size9,.katex .sizing.reset-size9.size9{font-size:1em}.katex .fontsize-ensurer.reset-size9.size10,.katex .sizing.reset-size9.size10{font-size:1.20023em}.katex .fontsize-ensurer.reset-size9.size11,.katex .sizing.reset-size9.size11{font-size:1.43981em}.katex .fontsize-ensurer.reset-size10.size1,.katex .sizing.reset-size10.size1{font-size:.24108em}.katex .fontsize-ensurer.reset-size10.size2,.katex .sizing.reset-size10.size2{font-size:.289296em}.katex .fontsize-ensurer.reset-size10.size3,.katex .sizing.reset-size10.size3{font-size:.337512em}.katex .fontsize-ensurer.reset-size10.size4,.katex .sizing.reset-size10.size4{font-size:.385728em}.katex .fontsize-ensurer.reset-size10.size5,.katex .sizing.reset-size10.size5{font-size:.433944em}.katex .fontsize-ensurer.reset-size10.size6,.katex .sizing.reset-size10.size6{font-size:.48216em}.katex .fontsize-ensurer.reset-size10.size7,.katex .sizing.reset-size10.size7{font-size:.578592em}.katex .fontsize-ensurer.reset-size10.size8,.katex .sizing.reset-size10.size8{font-size:.694311em}.katex .fontsize-ensurer.reset-size10.size9,.katex .sizing.reset-size10.size9{font-size:.833173em}.katex .fontsize-ensurer.reset-size10.size10,.katex .sizing.reset-size10.size10{font-size:1em}.katex .fontsize-ensurer.reset-size10.size11,.katex .sizing.reset-size10.size11{font-size:1.19961em}.katex .fontsize-ensurer.reset-size11.size1,.katex .sizing.reset-size11.size1{font-size:.200965em}.katex .fontsize-ensurer.reset-size11.size2,.katex .sizing.reset-size11.size2{font-size:.241158em}.katex .fontsize-ensurer.reset-size11.size3,.katex .sizing.reset-size11.size3{font-size:.281351em}.katex .fontsize-ensurer.reset-size11.size4,.katex .sizing.reset-size11.size4{font-size:.321543em}.katex .fontsize-ensurer.reset-size11.size5,.katex .sizing.reset-size11.size5{font-size:.361736em}.katex .fontsize-ensurer.reset-size11.size6,.katex .sizing.reset-size11.size6{font-size:.401929em}.katex .fontsize-ensurer.reset-size11.size7,.katex .sizing.reset-size11.size7{font-size:.482315em}.katex .fontsize-ensurer.reset-size11.size8,.katex .sizing.reset-size11.size8{font-size:.578778em}.katex .fontsize-ensurer.reset-size11.size9,.katex .sizing.reset-size11.size9{font-size:.694534em}.katex .fontsize-ensurer.reset-size11.size10,.katex .sizing.reset-size11.size10{font-size:.833601em}.katex .fontsize-ensurer.reset-size11.size11,.katex .sizing.reset-size11.size11{font-size:1em}.katex .delimsizing.size1{font-family:KaTeX_Size1}.katex .delimsizing.size2{font-family:KaTeX_Size2}.katex .delimsizing.size3{font-family:KaTeX_Size3}.katex .delimsizing.size4{font-family:KaTeX_Size4}.katex .delimsizing.mult .delim-size1>span{font-family:KaTeX_Size1}.katex .delimsizing.mult .delim-size4>span{font-family:KaTeX_Size4}.katex .nulldelimiter{width:.12em;display:inline-block}.katex .delimcenter,.katex .op-symbol{position:relative}.katex .op-symbol.small-op{font-family:KaTeX_Size1}.katex .op-symbol.large-op{font-family:KaTeX_Size2}.katex .accent>.vlist-t,.katex .op-limits>.vlist-t{text-align:center}.katex .accent .accent-body{position:relative}.katex .accent .accent-body:not(.accent-full){width:0}.katex .overlay{display:block}.katex .mtable .vertical-separator{min-width:1px;display:inline-block}.katex .mtable .arraycolsep{display:inline-block}.katex .mtable .col-align-c>.vlist-t{text-align:center}.katex .mtable .col-align-l>.vlist-t{text-align:left}.katex .mtable .col-align-r>.vlist-t{text-align:right}.katex .svg-align{text-align:left}.katex svg{fill:currentColor;stroke:currentColor;height:inherit;width:100%;display:block;position:absolute}.katex svg path{stroke:none}.katex svg{fill-rule:nonzero;fill-opacity:1;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1}.katex img{border-style:none;min-width:0;max-width:none;min-height:0;max-height:none}.katex .stretchy{width:100%;display:block;position:relative;overflow:hidden}.katex .stretchy:after,.katex .stretchy:before{content:""}.katex .hide-tail{width:100%;position:relative;overflow:hidden}.katex .halfarrow-left{width:50.2%;position:absolute;left:0;overflow:hidden}.katex .halfarrow-right{width:50.2%;position:absolute;right:0;overflow:hidden}.katex .brace-left{width:25.1%;position:absolute;left:0;overflow:hidden}.katex .brace-center{width:50%;position:absolute;left:25%;overflow:hidden}.katex .brace-right{width:25.1%;position:absolute;right:0;overflow:hidden}.katex .x-arrow-pad{padding:0 .5em}.katex .cd-arrow-pad{padding:0 .55556em 0 .27778em}.katex .mover,.katex .munder,.katex .x-arrow{text-align:center}.katex .boxpad{padding:0 .3em}.katex .fbox,.katex .fcolorbox{box-sizing:border-box;border:.04em solid}.katex .cancel-pad{padding:0 .2em}.katex .cancel-lap{margin-left:-.2em;margin-right:-.2em}.katex .sout{border-bottom-style:solid;border-bottom-width:.08em}.katex .angl{box-sizing:border-box;border-top:.049em solid;border-right:.049em solid;margin-right:.03889em}.katex .anglpad{padding:0 .03889em}.katex .eqn-num:before{content:"(" counter(katexEqnNo)")";counter-increment:katexEqnNo}.katex .mml-eqn-num:before{content:"(" counter(mmlEqnNo)")";counter-increment:mmlEqnNo}.katex .mtr-glue{width:50%}.katex .cd-vert-arrow{display:inline-block;position:relative}.katex .cd-label-left{text-align:left;display:inline-block;position:absolute;right:calc(50% + .3em)}.katex .cd-label-right{text-align:right;display:inline-block;position:absolute;left:calc(50% + .3em)}.katex-display{text-align:center;margin:1em 0;display:block}.katex-display>.katex{text-align:center;white-space:nowrap;display:block}.katex-display>.katex>.katex-html{display:block;position:relative}.katex-display>.katex>.katex-html>.tag{position:absolute;right:0}.katex-display.leqno>.katex>.katex-html>.tag{left:0;right:auto}.katex-display.fleqn>.katex{text-align:left;padding-left:2em}body{counter-reset:katexEqnNo mmlEqnNo}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
(globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,18566,(e,t,n)=>{t.exports=e.r(76562)},85570,e=>{"use strict";e.s(["WorkspaceRuntimeContext",()=>n,"useWorkspaceRuntime",()=>r]);var t=e.i(71645);let n=(0,t.createContext)(null);function r(){let e=(0,t.useContext)(n);if(!e)throw Error("useWorkspaceRuntime must be used within WorkspaceShell");return e}},18253,e=>{"use strict";e.s(["useGuardedAppNavigation",()=>s]);var t=e.i(71645),n=e.i(18566),r=e.i(61196);function s(){let e=(0,n.useRouter)(),s=(0,r.useStageThreadFlyoutStore)(e=>e.confirmNavigateAway);return{push:(0,t.useCallback)(async t=>{await s(t)&&e.push(t)},[s,e]),router:e}}},67585,(e,t,n)=>{"use strict";Object.defineProperty(n,"__esModule",{value:!0}),Object.defineProperty(n,"BailoutToCSR",{enumerable:!0,get:function(){return s}});let r=e.r(32061);function s(e){let{reason:t,children:n}=e;if("undefined"==typeof window)throw Object.defineProperty(new r.BailoutToCSRError(t),"__NEXT_ERROR_CODE",{value:"E394",enumerable:!1,configurable:!0});return n}},9885,(e,t,n)=>{"use strict";function r(e){return e.split("/").map(e=>encodeURIComponent(e)).join("/")}Object.defineProperty(n,"__esModule",{value:!0}),Object.defineProperty(n,"encodeURIPath",{enumerable:!0,get:function(){return r}})},52157,(e,t,n)=>{"use strict";Object.defineProperty(n,"__esModule",{value:!0}),Object.defineProperty(n,"PreloadChunks",{enumerable:!0,get:function(){return l}});let r=e.r(18050),s=e.r(74080),a=e.r(63599),i=e.r(9885);function l(e){let{moduleIds:t}=e;if("undefined"!=typeof window)return null;let n=a.workAsyncStorage.getStore();if(void 0===n)return null;let l=[];if(n.reactLoadableManifest&&t){let e=n.reactLoadableManifest;for(let n of t){if(!e[n])continue;let t=e[n].files;l.push(...t)}}return 0===l.length?null:(0,r.jsx)(r.Fragment,{children:l.map(e=>{let t=n.assetPrefix+"/_next/"+(0,i.encodeURIPath)(e);return e.endsWith(".css")?(0,r.jsx)("link",{precedence:"dynamic",href:t,rel:"stylesheet",as:"style"},e):((0,s.preload)(t,{as:"script",fetchPriority:"low"}),null)})})}},69093,(e,t,n)=>{"use strict";Object.defineProperty(n,"__esModule",{value:!0}),Object.defineProperty(n,"default",{enumerable:!0,get:function(){return u}});let r=e.r(18050),s=e.r(71645),a=e.r(67585),i=e.r(52157);function l(e){return{default:e&&"default"in e?e.default:e}}let o={loader:()=>Promise.resolve(l(()=>null)),loading:null,ssr:!0},u=function(e){let t={...o,...e},n=(0,s.lazy)(()=>t.loader().then(l)),u=t.loading;function d(e){let l=u?(0,r.jsx)(u,{isLoading:!0,pastDelay:!0,error:null}):null,o=!t.ssr||!!t.loading,d=o?s.Suspense:s.Fragment,c=t.ssr?(0,r.jsxs)(r.Fragment,{children:["undefined"==typeof window?(0,r.jsx)(i.PreloadChunks,{moduleIds:t.modules}):null,(0,r.jsx)(n,{...e})]}):(0,r.jsx)(a.BailoutToCSR,{reason:"next/dynamic",children:(0,r.jsx)(n,{...e})});return(0,r.jsx)(d,{...o?{fallback:l}:{},children:c})}return d.displayName="LoadableComponent",d}},70703,(e,t,n)=>{"use strict";Object.defineProperty(n,"__esModule",{value:!0}),Object.defineProperty(n,"default",{enumerable:!0,get:function(){return s}});let r=e.r(55682)._(e.r(69093));function s(e,t){var n;let s={};"function"==typeof e&&(s.loader=e);let a={...s,...t};return(0,r.default)({...a,modules:null==(n=a.loadableGenerated)?void 0:n.modules})}("function"==typeof n.default||"object"==typeof n.default&&null!==n.default)&&void 0===n.default.__esModule&&(Object.defineProperty(n.default,"__esModule",{value:!0}),Object.assign(n.default,n),t.exports=n.default)},82787,e=>{"use strict";e.s(["MANAGE_DEFAULT_HREF",()=>p,"getBridgeSidebarManageRoutes",()=>g,"getManageRoute",()=>f,"isManageRouteEnabled",()=>m,"isManageSideNavPath",()=>h],82787);var t=e.i(70703),n=e.i(71645),r=e.i(18050),s=e.i(87968),a=e.i(75157);function i(e){let{className:t}=e;return(0,r.jsxs)("div",{className:(0,a.cn)("flex min-h-[40vh] flex-1 items-center justify-center gap-2 text-zinc-500",t),children:[(0,r.jsx)(s.Spinner,{})," 加载中"]})}function l(){return(0,r.jsx)("div",{className:"flex min-h-0 min-w-0 flex-1 flex-col items-center justify-center text-[var(--ds-muted)]",children:"即将上线"})}var o=e.i(97249);function u(e){return(0,t.default)(e,{loading:()=>(0,n.createElement)(i)})}let d=[{key:"task",slug:"task",label:"定时任务",title:"定时任务",description:"管理计划执行的任务与触发记录。",chrome:"feature",icon:"Task",enabled:!0,headerIcon:"Calendar",visibleInNav:!1,visibleInBridgeSidebar:!0,Component:u(()=>e.A(94065).then(e=>({default:e.TaskView})))},{key:"mcp",slug:"mcp",label:"MCP",title:"MCP管理",description:"管理外部工具与数据源。可以导入、编辑、移除或禁用 MCP 服务。",chrome:"feature",icon:"Mcp",headerIcon:"Mcp",enabled:!0,visibleInNav:!1,visibleInBridgeSidebar:!0,Component:u(()=>e.A(72234).then(e=>({default:e.McpManageView})))},{key:"tools",slug:"tools",label:"Tools",title:"Tools管理",description:"管理当前 Agent 已挂载的Tools列表",chrome:"feature",icon:"Tool",headerIcon:"Tool",enabled:!0,visibleInNav:!1,visibleInBridgeSidebar:!0,Component:u(()=>e.A(58332).then(e=>({default:e.ToolsManageView})))},{key:"skills",slug:"skills",label:"Skills",title:"Skills管理",description:"管理当前 Agent 已挂载的Skill",chrome:"feature",icon:"Skill",enabled:!0,headerIcon:"Skill",visibleInNav:!1,visibleInBridgeSidebar:!0,Component:u(()=>e.A(48583).then(e=>({default:e.SkillsManageView})))},{key:"teams",slug:"teams",label:"Agent / Teams",title:"Agent / Teams 管理",description:"管理 Agent / Teams 团队与协作编排。",chrome:"feature",icon:"Teams",enabled:!0,visibleInNav:!1,headerIcon:"Agent2",visibleInBridgeSidebar:!0,Component:u(()=>e.A(2578).then(e=>({default:e.TeamsView})))},{key:"library",slug:"library",label:"资料库",title:"资料库",description:"管理当前 Agent 的资料库",chrome:"feature",icon:"Library",enabled:!0,visibleInNav:!1,headerIcon:"Library",visibleInBridgeSidebar:!0,Component:u(()=>e.A(14928).then(e=>({default:e.LibraryView})))},{key:"env",slug:"env",label:"服务商",title:"服务商",description:"管理 API 服务商以访问模型。",chrome:"side-nav",icon:"Server",enabled:!0,visibleInNav:!0,Component:u(()=>e.A(1861).then(e=>({default:e.EnvManageView})))},{key:"git",slug:"git",label:"Git 设置",title:"Git 设置",description:"管理 Git 仓库与版本控制配置。",chrome:"side-nav",icon:"Brackets",enabled:!0,visibleInNav:!0,Component:u(()=>e.A(83330).then(e=>({default:e.GitManageView})))},{key:"geelib",slug:"geelib",label:"Geelib 设置",title:"Geelib 设置",description:"管理极库云集成与任务同步配置。",chrome:"side-nav",icon:"Detail",enabled:!0,visibleInNav:!0,Component:u(()=>e.A(94540).then(e=>({default:e.GeelibManageView})))},{key:"im",slug:"im",label:"IM 设置",title:"IM 设置",description:"管理即时通讯与消息通知配置。",chrome:"side-nav",icon:"MessageCircleQuestion",enabled:!0,visibleInNav:!0,Component:u(()=>e.A(70287).then(e=>({default:e.ImManageView})))},{key:"system",slug:"system",label:"系统设置",title:"系统设置",description:"管理系统级参数与运行配置。",chrome:"side-nav",icon:"Settings",enabled:!0,visibleInNav:!0,Component:u(()=>e.A(21363).then(e=>({default:e.SystemManageView})))},{key:"permissions",slug:"permissions",label:"权限",title:"权限",description:"管理平台访问权限与角色策略。",chrome:"side-nav",enabled:!1,visibleInNav:!1,Component:l},{key:"general",slug:"general",label:"通用",title:"通用",description:"平台通用配置与偏好设置。",chrome:"side-nav",enabled:!1,visibleInNav:!1,Component:l},{key:"about",slug:"about",label:"关于",title:"关于",description:"版本信息与平台说明。",chrome:"side-nav",enabled:!0,visibleInNav:!1,Component:l}].map(e=>{var t,n;let{children:r,...s}=e;return{...s,href:(0,o.buildSettingsHref)(e.slug),...r?{children:(t=e.slug,n=e.chrome,r.map(e=>{var r,s;let a="".concat(t,"/").concat(e.slug);return{...e,slug:a,href:(0,o.buildSettingsHref)(a),chrome:null!=(r=e.chrome)?r:n,enabled:null==(s=e.enabled)||s,visibleInNav:!1}}))}:{}}});function c(e){return e.Component}let p=function(){var e,t,n,r,s,a;let i=null!=(n=null!=(t=null!=(e=d.find(e=>e.enabled&&e.visibleInNav&&"side-nav"===e.chrome))?e:d.find(e=>e.enabled&&"side-nav"===e.chrome))?t:d.find(e=>"side-nav"===e.chrome))?n:d[0],l=null!=(a=null==(r=i.children)?void 0:r.find(e=>e.enabled))?a:null==(s=i.children)?void 0:s[0];if(l)return l;if(c(i))return i;let o=d.find(e=>c(e));return o||d.flatMap(e=>{var t;return null!=(t=e.children)?t:[]})[0]}().href;function f(e){return d.find(t=>t.key===e)}function g(){return d.filter(e=>e.enabled&&!0===e.visibleInBridgeSidebar&&void 0!==e.icon).map(e=>{let{key:t,label:n,href:r,icon:s,headerIcon:a}=e;return{key:t,label:n,href:r,icon:s,headerIcon:null!=a?a:s}})}function m(e){var t;return(null===(t=(0,o.getSettingsRouteByPathname)(e,function(){let e=[];for(let n of d){var t;c(n)&&e.push(n),(null==(t=n.children)?void 0:t.length)&&e.push(...n.children)}return e}()))||void 0===t?void 0:t.enabled)!==!1}function h(e){if(!e)return!1;let t=d.filter(e=>"side-nav"===e.chrome);return(0,o.isSettingsRoutePath)(e,t)}},21199,41143,e=>{"use strict";e.s(["WorkspaceShell",()=>K],21199);var t=e.i(18050),n=e.i(71645),r=e.i(18566),s=e.i(65934),a=e.i(36845),i=e.i(20090);let l={EVENT:{SESSION_META:"session.meta",SESSION_READY:"session.ready",SESSION_ERROR:"session.error",QUERY_PROGRESS:"query.progress",CONVERSATION_DELTA:"conversation.delta",RUN_LIFECYCLE:"run.lifecycle",HISTORY_REPLAY:"history.replay",TURN_TERMINAL:"turn.terminal",PERMISSION_REQUEST:"permission.request"}};e.s(["SCHEDULE_TOOL_NAME",()=>o,"buildScheduledTaskIndex",()=>f,"parseScheduleToolResult",()=>p,"partitionScheduledSegments",()=>g,"retainScheduledTriggerFlag",()=>d,"withScheduledTriggerMeta",()=>u],41143);let o="ScheduleTool";function u(e,t,n){return e&&"object"==typeof e&&(t||n)?{...e,...t?{__scheduledTrigger:!0}:{},...n?{__turnId:n}:{}}:e}function d(e,t){if(!e||"object"!=typeof e)return t;let n=e.data,r=!!n&&"object"==typeof n&&!0===n.scheduledTrigger,s=!0===e.scheduledTrigger||!0===e.__scheduledTrigger,a="string"==typeof e.turnId?e.turnId:"",i="string"==typeof e.__turnId?e.__turnId:"";return r||s||a||i?{...t,...r||s?{__scheduledTrigger:!0}:{},...a||i?{__turnId:a||i}:{}}:t}function c(e){return!!e&&"object"==typeof e&&!0===e.__scheduledTrigger}function p(e,t){if("string"==typeof e)try{let t=JSON.parse(e);if(t&&"object"==typeof t)return t}catch(e){}if(e&&"object"==typeof e)return e;if(t&&"object"==typeof t){let e=t.toolUseResult;if(e&&"object"==typeof e)return e}return null}function f(e){let t=new Map,n=new Map;for(let c of e){let e=v(c);for(let m of function(e){if(!e||"object"!=typeof e)return[];let t=e.message,n=null==t?void 0:t.content;return Array.isArray(n)?n.filter(e=>!!e&&"object"==typeof e):[]}(c)){var r,s,a,i,l,u,d,f,g,b;if("tool_use"===m.type&&m.name===o){let t="string"==typeof m.id?m.id:"";if(!t)continue;let r=(b=m.input)&&"object"==typeof b?b:{},s=function(e){if(null==e||""===e)return;let t=Number(e);return Number.isFinite(t)?t:void 0}(r.delayMinutes);n.set(t,{toolUseId:t,id:r.id,prompt:null!=(a=r.prompt)?a:"",delayMinutes:s,createdAt:e,status:"cancel"===r.action?"cancelled":"scheduled"});continue}if("tool_result"!==m.type||"string"!=typeof m.tool_use_id)continue;let h=n.get(m.tool_use_id);if(!h)continue;let v=p(m.content,c);if(!v){n.delete(m.tool_use_id);continue}let S=v.id||h.id||"pending-".concat(m.tool_use_id),y={id:S,prompt:null!=(i=h.prompt)?i:"",fireAt:null!=(u=null!=(l=null==(r=v.scheduleClock)?void 0:r.utcIso)?l:null==(s=v.scheduleClock)?void 0:s.localDateTime)?u:"",createdAt:null!=(d=h.createdAt)?d:"",delayMinutes:null!=(f=v.delayMinutes)?f:h.delayMinutes,cron:v.cron,recurring:v.recurring,status:v.error?"failed":null!=(g=h.status)?g:"scheduled"};t.set(S,y),n.delete(m.tool_use_id)}}for(let n of e){if(!c(n)||"user"!==m(n))continue;let e=h(n);if(e){for(let r of t.values())if(r.prompt===e&&"scheduled"===r.status){r.status="fired",r.firedTurnId=function(e){if(!e||"object"!=typeof e)return"";let t=e.__turnId;return"string"==typeof t?t:""}(n);break}}}return t}function g(e,t){let n=new Map,r=new Set,s=0;for(;s<e.length;){var a;if(!c(e[s])){s+=1;continue}let i=s,l=[];for(;s<e.length&&c(e[s]);)l.push(e[s]),s+=1;let o=s-1,u=null!=(a=l.filter(e=>"user"===m(e)).map(e=>h(e)).find(e=>e.trim().length>0))?a:"",d=v(l[0]),p=l.filter(e=>"user"!==m(e)),f=function(e,t){if(e&&t.trim()){for(let n of e.values())if(n.prompt===t)return n.id}}(t,u);n.set(i,{kind:"scheduledTurn",startIndex:i,endIndex:o,dispatchedPrompt:u,triggeredAt:d,taskId:f,assistantMessages:p});for(let e=i+1;e<=o;e+=1)r.add(e)}return{scheduledStarts:n,consumed:r}}function m(e){if(!e||"object"!=typeof e)return"";let t=e.type;if("string"==typeof t)return t;let n=e.message;return"string"==typeof(null==n?void 0:n.role)?n.role:""}function h(e){if(!e||"object"!=typeof e)return"";let t=e.message,n=null==t?void 0:t.content;return"string"==typeof n?n:Array.isArray(n)?n.map(e=>e&&"object"==typeof e?"text"===e.type&&"string"==typeof e.text?e.text:"markdown"===e.type&&"string"==typeof e.content?e.content:"":"").filter(Boolean).join("\n").trim():""}function v(e){var t;if(!e||"object"!=typeof e)return"";let n=e.message,r=n&&"object"==typeof n?n.timestamp:void 0,s=null!=(t=null!=r?r:e.timestamp)?t:e.ts;return"string"==typeof s?s:""}var b=e.i(70074),S=e.i(55227);function y(e){let t=Number(e);return Number.isFinite(t)?Math.max(0,Math.floor(t)):0}function x(e){let t=e&&"object"==typeof e?Number(e.protocolVersion):NaN;return"object"==typeof e&&null!==e&&"protocolVersion"in e&&Number.isFinite(t)&&3===t&&"string"==typeof e.type}let A=new Map;function j(e){if(!e||"object"!=typeof e)return"";if(("string"==typeof e.type?e.type:"unknown")===l.EVENT.TURN_TERMINAL){let t="string"==typeof e.resultText?e.resultText:"",n="string"==typeof e.reason?e.reason:"";return"resolved"==("resolved"===e.status?"resolved":"failed")?t:"turn.terminal failed: ".concat(n||"unknown")}try{return"```json\n".concat(JSON.stringify(e,null,2).slice(0,8e3),"\n```")}catch(t){return String(e)}}var N=e.i(87243),k=e.i(50711);async function I(e,t,n){var r;let a=String(e||"").trim();if(!a)return!1;let i=s.useAppStore.getState();if(a===(i.agentId.trim()||"qihoo"))return!1;let l=(null==n||null==(r=n.displayName)?void 0:r.trim())||a;i.startDraftSession(),i.resetAgentConfig(),i.setAgentId(a),i.setCurrentWorkspaceAgent({id:a,displayName:l});try{await t.loadSessions()}catch(e){}t.loadAgentConfig();let o=s.useAppStore.getState().sessionId.trim();return t.preferReconnect?t.reconnect():t.switchSession(o,a),!0}var w=e.i(92413),C=e.i(55146),T=e.i(72064),E=e.i(46798),R=e.i(19455),_=e.i(85570),M=e.i(97249),P=e.i(75157),L=e.i(8279),O=e.i(52727),D=e.i(18253);function z(e){let{collapsed:r,onGoToSettings:a}=e,{push:i}=(0,D.useGuardedAppNavigation)(),l=(0,s.useAppStore)(e=>e.currentWorkspaceAgent),o=(0,s.useAppStore)(e=>e.agentId),u=(0,s.useAppStore)(e=>e.wsUrl),d=(0,s.useAppStore)(e=>e.apiBase),c=(0,s.useAppStore)(e=>e.setCurrentWorkspaceAgent),{switchWorkspaceAgent:p}=(0,_.useWorkspaceRuntime)(),f=o.trim()||"qihoo",g=(null==l?void 0:l.id)===f&&l.displayName.trim()||f,m=(0,L.initialsFromLabel)(g),[h,v]=(0,n.useState)(!1),[b,S]=(0,n.useState)([]),[y,x]=(0,n.useState)(!1),[A,j]=(0,n.useState)(null),N=(0,n.useRef)(null),k=(0,n.useCallback)(()=>{N.current&&(clearTimeout(N.current),N.current=null)},[]),I=(0,n.useCallback)(()=>{k(),v(!0)},[k]),w=(0,n.useCallback)(()=>{k(),N.current=setTimeout(()=>{v(!1),N.current=null},120)},[k]),C=(0,n.useCallback)(()=>{v(!1),null==a||a()},[a]),z=(0,n.useCallback)(async e=>{let t=e.id.trim();v(!1),t&&t!==f&&await p(t,e.displayName)&&i((0,M.buildAppNavHref)("/",{ensureAgent:!0,agent:t,preserveSessionId:!1}))},[f,i,p]);(0,n.useEffect)(()=>{if(!h)return;let e=!1;return x(!0),j(null),S([]),(0,O.listAgents)(u,d).then(t=>{e||S(t)}).catch(t=>{e||j(String(t))}).finally(()=>{e||x(!1)}),()=>{e=!0}},[h,u,d]),(0,n.useEffect)(()=>{if(!b.length)return;let e=b.find(e=>e.id===f);e&&((null==l?void 0:l.id)!==e.id||l.displayName!==e.displayName)&&c(e)},[b,f,l,c]),(0,n.useEffect)(()=>()=>{N.current&&clearTimeout(N.current)},[]);let W=(0,t.jsx)(E.TooltipProvider,{delayDuration:150,side:r?"right":void 0,children:(0,t.jsxs)(E.Tooltip,{children:[(0,t.jsx)(E.TooltipTrigger,{asChild:!0,children:(0,t.jsx)(R.Button,{type:"button",variant:"plain",size:r?"icon":"icon-sm",className:(0,P.cn)(r?"sidebar-collapsed-icon-btn !rounded-[10px] text-zinc-700":"text-[var(--ds-muted)] hover:bg-[var(--ds-item-hover)] focus-visible:ring-2 focus-visible:ring-[var(--ds-accent)]"),"aria-label":"设置",onClick:C,children:(0,t.jsx)(T.default,{name:"Settings",size:16,strokeWidth:1.75,className:(0,P.cn)("shrink-0",r&&"text-zinc-700")})})}),(0,t.jsx)(E.TooltipContent,{side:r?"right":"top",children:(0,t.jsx)("p",{children:"设置"})})]})});return(0,t.jsxs)("div",{className:(0,P.cn)("shrink-0 border-t border-solid border-[var(--ds-border)] transition",r?"flex w-full flex-col items-center gap-1 p-[1rem_.75rem]":"flex items-center gap-2 p-[1rem_.75rem]"),onClick:r?e=>e.stopPropagation():void 0,children:[r?W:null,(0,t.jsxs)("div",{className:(0,P.cn)("relative min-w-0",!r&&"flex-1"),onMouseEnter:I,onMouseLeave:w,children:[(0,t.jsxs)("div",{className:(0,P.cn)("flex min-w-0 cursor-pointer items-center gap-2 rounded-lg px-0.5 py-0.5",r&&"w-full justify-center"),children:[(0,t.jsx)("span",{className:"inline-flex h-7 w-7 shrink-0 items-center justify-center rounded-full text-xs font-semibold text-white",style:{background:"var(--avatar-bg)"},children:m}),r?null:(0,t.jsx)("span",{className:"min-w-0 truncate text-[var(--ds-text)]",children:g})]}),h?(0,t.jsx)("div",{className:"absolute bottom-full left-0 z-50 pb-2 shadow-[var(--shadow-float)]",onMouseEnter:I,onMouseLeave:w,children:(0,t.jsx)("div",{className:(0,P.cn)("flex max-h-[300px] w-[260px] max-w-[min(100vw-24px,260px)] flex-col overflow-hidden rounded-[var(--ds-radius-sm)] border border-solid border-[var(--ds-border)] bg-[var(--ds-bg)]","shadow-[var(--shadow-float)]"),children:(0,t.jsx)("div",{className:"min-h-0 flex-1 overflow-y-auto p-1.5",role:"listbox","aria-label":"切换 Agent",children:y?(0,t.jsx)("div",{className:"px-2 py-3 text-[var(--ds-muted)]",children:"加载中…"}):A?(0,t.jsxs)("div",{className:"px-2 py-3 text-red-600",children:["加载失败: ",A]}):0===b.length?(0,t.jsx)("div",{className:"px-2 py-3 text-[var(--ds-muted)]",children:"暂无 agent"}):b.map(e=>{let n=e.id===f,r=(0,L.initialsFromLabel)(e.displayName);return(0,t.jsxs)("button",{type:"button",role:"option",className:"flex w-full cursor-pointer items-center gap-2 rounded-xl border-0 bg-transparent px-2 py-2 text-left hover:bg-[var(--ds-item-hover)] focus-visible:outline-none","aria-selected":n,onClick:()=>z(e),children:[(0,t.jsx)("span",{className:"inline-flex h-8 w-8 shrink-0 items-center justify-center rounded-full text-xs font-semibold text-white",style:{background:"var(--avatar-bg)"},children:r}),(0,t.jsxs)("span",{className:"min-w-0 flex-1 leading-tight",children:[(0,t.jsx)("span",{className:"block truncate text-[var(--ds-text)]",children:e.displayName}),e.displayName!==e.id?(0,t.jsx)("span",{className:"block truncate text-xs text-[var(--ds-muted)]",children:e.id}):null]}),n?(0,t.jsx)("span",{className:"shrink-0","aria-label":"当前 Agent",children:(0,t.jsx)(T.default,{name:"Check",size:16,className:"text-[var(--ds-accent)]"})}):null]},e.id)})})})}):null]}),r?null:W]})}var W=e.i(82787);let B="bridge-sidebar-collapsed",F=[];function U(e){let{onNewSession:a,onSelectSession:i,deleteSessionById:l}=e,{push:o,router:u}=(0,D.useGuardedAppNavigation)(),d=(0,r.usePathname)(),c=(0,s.useAppStore)(e=>e.lastSessions),p=(0,s.useAppStore)(e=>e.sessionId),f=(0,s.useAppStore)(e=>{var t;return null!=(t=e.messagesByRun.main)?t:F}),g=(0,s.useAppStore)(e=>e.pendingPrompt),m=(0,n.useMemo)(()=>{var e;if(!p||c.some(e=>e.sessionId===p))return c;let t=f.find(e=>{var t;return(null==(t=e.message)?void 0:t.type)==="user"});if(!t&&!g)return c;let n="新对话";return g?n=g:"string"==typeof(null==t||null==(e=t.message)?void 0:e.message)&&(n=t.message.message),[{sessionId:p,summary:n,lastModified:Date.now(),createdAt:Date.now()},...c]},[c,p,f,g]),h=(0,s.useAppStore)(e=>e.brand),v=(0,s.useAppStore)(e=>e.agentId),[b,S]=(0,n.useState)(!1),y=(0,n.useRef)(!1),[x,A]=(0,n.useState)(null),[j,N]=(0,n.useState)(!0),k=(0,n.useMemo)(()=>(0,W.getBridgeSidebarManageRoutes)(),[]),I=(0,n.useCallback)((e,t)=>(0,M.buildAppNavHref)(e,{ensureAgent:null==t?void 0:t.ensureAgent,agent:v,preserveSessionId:"/"===e&&!(null==t?void 0:t.clearSessionId),sessionId:null==t?void 0:t.sessionId}),[v]),R=(0,n.useCallback)(e=>{let t=(0,M.normalizeAppPathname)(d),n=(0,M.normalizeAppPathname)(e);return t===n||t.startsWith("".concat(n,"/"))},[d]),_=(0,n.useCallback)(e=>{o(I(e,{ensureAgent:!0}))},[o,I]);(0,n.useEffect)(()=>{let e,t,n=[...["env","add-account"].flatMap(e=>{var t;let n=null==(t=(0,W.getManageRoute)(e))?void 0:t.href;return n?[I(n,{ensureAgent:!0})]:[]}),...k.map(e=>I(e.href,{ensureAgent:!0}))],r=()=>{for(let e of n)try{u.prefetch(e)}catch(e){}};return"requestIdleCallback"in window?e=window.requestIdleCallback(r,{timeout:2500}):t=setTimeout(r,200),()=>{void 0!==e&&window.cancelIdleCallback(e),void 0!==t&&clearTimeout(t)}},[u,I,k]),(0,n.useEffect)(()=>{try{let e=window.localStorage.getItem(B);"true"===e&&S(!0)}catch(e){}finally{y.current=!0}},[]),(0,n.useEffect)(()=>{if(y.current)try{window.localStorage.setItem(B,String(b))}catch(e){}},[b]),(0,n.useEffect)(()=>{if(!x)return;let e=e=>{let t=e.target;!(!(t instanceof Element)||t.closest("[data-session-menu-wrap]"))&&(t.closest('[data-slot="dropdown-menu-content"]')||A(null))};return document.addEventListener("pointerdown",e,!0),()=>document.removeEventListener("pointerdown",e,!0)},[x]);let P=(0,n.useCallback)(()=>{o(I(W.MANAGE_DEFAULT_HREF,{ensureAgent:!0}))},[o,I]);return(0,t.jsx)("aside",{className:"sidebar ".concat(b?"is-collapsed h-dvh max-h-dvh min-h-0 self-start":""),"data-region":"sidebar-panels",onClick:()=>{b&&S(!1)},children:b?(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)("div",{className:"flex min-h-0 flex-1 flex-col items-center gap-[10px] overflow-y-auto overscroll-contain pt-3",children:(0,t.jsxs)(E.TooltipProvider,{side:"right",children:[(0,t.jsx)("div",{className:"group relative flex h-8 w-8 shrink-0 cursor-pointer items-center justify-center",onClick:e=>e.stopPropagation(),children:(0,t.jsx)("div",{className:"pointer-events-none absolute inset-0 flex items-center justify-center transition-opacity group-hover:pointer-events-auto group-hover:opacity-100",children:(0,t.jsxs)(E.Tooltip,{children:[(0,t.jsx)(E.TooltipTrigger,{asChild:!0,children:(0,t.jsx)("button",{type:"button",className:"sidebar-collapsed-icon-btn",title:"展开侧边栏","aria-label":"展开侧边栏",onClick:e=>{e.preventDefault(),e.stopPropagation(),S(!1)},children:(0,t.jsx)(T.default,{name:"Layout",size:17,color:"#8f8f8f"})})}),(0,t.jsx)(E.TooltipContent,{children:(0,t.jsx)("p",{children:"展开侧边栏"})})]})})}),(0,t.jsxs)(E.Tooltip,{children:[(0,t.jsx)(E.TooltipTrigger,{asChild:!0,children:(0,t.jsx)("button",{type:"button",className:"sidebar-collapsed-icon-btn",title:"新聊天","aria-label":"新聊天",onClick:e=>{e.preventDefault(),e.stopPropagation(),a(),o(I("/",{clearSessionId:!0}))},children:(0,t.jsx)(T.default,{name:"Add",size:16,className:"text-zinc-700"})})}),(0,t.jsx)(E.TooltipContent,{children:(0,t.jsx)("p",{children:"新聊天"})})]}),k.map(e=>{let n=R(e.href);return(0,t.jsxs)(E.Tooltip,{children:[(0,t.jsx)(E.TooltipTrigger,{asChild:!0,children:(0,t.jsx)("button",{type:"button",className:"sidebar-collapsed-icon-btn ".concat(n?"bg-[var(--ds-item-active)] text-[var(--ds-accent)]":""),title:e.label,"aria-label":e.label,"aria-current":n?"page":void 0,onClick:t=>{t.preventDefault(),t.stopPropagation(),_(e.href)},children:(0,t.jsx)(T.default,{name:e.icon,size:16,className:n?"text-[var(--ds-accent)]":"text-zinc-700",strokeWidth:1.2})})}),(0,t.jsx)(E.TooltipContent,{children:(0,t.jsx)("p",{children:e.label})})]},e.key)})]})}),(0,t.jsx)("div",{className:"w-full shrink-0",onClick:e=>e.stopPropagation(),children:(0,t.jsx)(z,{collapsed:!0,onGoToSettings:P})})]}):(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)("div",{className:"sidebar-brand",children:(0,t.jsxs)("div",{className:"sidebar-brand-title-row flex items-center justify-between",children:[(0,t.jsx)("div",{className:"logo flex min-w-0 items-center gap-2",children:(0,t.jsx)("span",{className:"truncate text-zinc-900",children:h})}),(0,t.jsx)(E.TooltipProvider,{side:"right",children:(0,t.jsxs)(E.Tooltip,{children:[(0,t.jsx)(E.TooltipTrigger,{asChild:!0,children:(0,t.jsx)("button",{type:"button",className:"sidebar-icon-btn",title:"收起侧边栏","aria-label":"收起侧边栏",onClick:e=>{e.preventDefault(),e.stopPropagation(),S(!0)},children:(0,t.jsx)(T.default,{name:"Layout",size:17,color:"#8f8f8f"})})}),(0,t.jsx)(E.TooltipContent,{children:(0,t.jsx)("p",{children:"收起侧边栏"})})]})})]})}),(0,t.jsx)("div",{className:"new-chat",children:(0,t.jsxs)("div",{className:"mb-4 ml-2 mr-2 mt-2 flex cursor-pointer items-center gap-2.5 rounded-2xl px-2 py-2 text-zinc-700 transition-colors hover:bg-white/70",title:"开启新对话","aria-label":"开启新对话",onClick:e=>{e.preventDefault(),a(),o(I("/",{clearSessionId:!0}))},children:[(0,t.jsx)("span",{className:"flex h-8 w-8 shrink-0 items-center justify-center rounded-full bg-[var(--ds-item-active)] text-[var(--ds-accent)]","aria-hidden":!0,children:(0,t.jsx)("svg",{xmlns:"http://www.w3.org/2000/svg",width:"16",height:"16",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",children:(0,t.jsx)("path",{d:"M12 5v14M5 12h14"})})}),(0,t.jsx)("span",{className:"min-w-0 font-medium",children:"新会话"})]})}),(0,t.jsx)("div",{className:"sidebar-drawers px-[10px]",children:k.map(e=>{let n=R(e.href);return(0,t.jsxs)("div",{className:"m-[.45rem_0_0] flex cursor-pointer items-center rounded-[var(--ds-radius-sm)] p-[.45rem_.75rem] ".concat(n?"bg-[var(--ds-item-active)] text-[var(--ds-accent)]":"hover:bg-[var(--ds-item-active)] hover:text-zinc-900"),role:"button",tabIndex:0,"aria-current":n?"page":void 0,onClick:t=>{t.preventDefault(),t.stopPropagation(),_(e.href)},onKeyDown:t=>{("Enter"===t.key||" "===t.key)&&_(e.href)},children:[(0,t.jsx)(T.default,{name:e.icon,size:16,className:"mr-3 text-zinc-700",strokeWidth:1.2}),(0,t.jsx)("span",{className:"text-zinc-900",children:e.label})]},e.key)})}),(0,t.jsx)("div",{className:"sidebar-drawers",children:(0,t.jsxs)("div",{className:"sidebar-drawer m-[.35rem_.35rem_0] mt-4",children:[(0,t.jsxs)("button",{type:"button",className:"flex w-full cursor-pointer items-center !border-none !bg-transparent p-[.45rem_.75rem] text-left text-[12px] font-[600] text-zinc-400 hover:text-zinc-600 focus:outline-none focus-visible:ring-2 focus-visible:ring-[var(--ds-accent)] focus-visible:ring-offset-2","aria-expanded":j,"aria-controls":"sessionList","aria-label":j?"收起历史会话列表":"展开历史会话列表",onClick:()=>{N(e=>!e)},children:["历史会话",j?(0,t.jsx)(T.default,{name:"ChevronDown",size:12,strokeWidth:1,className:"ml-1 shrink-0 text-[var(--ds-muted)]"}):(0,t.jsx)(T.default,{name:"ChevronRight",size:12,strokeWidth:1,className:"ml-1 shrink-0 text-[var(--ds-muted)]"})]}),j?(0,t.jsx)("div",{className:"sidebar-drawer-body sidebar-drawer-body--sessions",children:(0,t.jsx)("div",{id:"sessionList",children:m.length?(0,w.groupSessionsByMonth)(m).map(e=>(0,t.jsx)("div",{children:e.items.map(e=>{let n=e.sessionId===p.trim();return(0,t.jsxs)("div",{className:"sidebar-drawer-item session-item ".concat(n?"active":""),children:[(0,t.jsx)("button",{type:"button",className:"session-item-main",onClick:t=>{t.stopPropagation(),i(e.sessionId),o(I("/",{sessionId:e.sessionId}))},children:(0,t.jsx)("div",{className:"session-item-title",children:(0,w.sessionTitle)(e)})}),(0,t.jsx)("div",{className:"session-menu-wrap","data-session-menu-wrap":"",onClick:t=>{t.stopPropagation(),t.target===t.currentTarget&&A(t=>t===e.sessionId?null:e.sessionId)},children:(0,t.jsxs)(C.DropdownMenu,{open:x===e.sessionId,onOpenChange:e=>{e||A(null)},children:[(0,t.jsx)(C.DropdownMenuTrigger,{type:"button",className:"session-menu-btn","aria-label":"更多",onClick:t=>{t.stopPropagation(),A(t=>t===e.sessionId?null:e.sessionId)},children:(0,t.jsx)(T.default,{name:"More",size:16,className:"text-[var(--ds-muted)]"})}),(0,t.jsxs)(C.DropdownMenuContent,{align:"end",side:"bottom",sideOffset:6,className:"w-[172px] min-w-[172px] rounded-[var(--ds-radius-sm)] border border-[var(--ds-border)] bg-[var(--ds-bg)] p-1.5",children:[(0,t.jsxs)(C.DropdownMenuItem,{className:"h-9 rounded-xl px-2.5 text-[var(--ds-text)] hover:bg-[var(--ds-item-active)] focus:bg-[var(--ds-item-hover)]",onClick:()=>{navigator.clipboard.writeText(e.sessionId)},children:[(0,t.jsx)(T.default,{name:"Clipboard",size:16,className:"text-[var(--ds-muted)]"}),"复制完整 ID"]}),(0,t.jsx)(C.DropdownMenuSeparator,{className:"mx-1 my-1 bg-[var(--ds-border)]"}),(0,t.jsxs)(C.DropdownMenuItem,{variant:"destructive",className:"h-9 rounded-xl px-2.5 hover:bg-[#fff1f1] focus:bg-[#fff1f1]",onClick:()=>{(async()=>{let t=e.sessionId===p.trim(),n=await l(e.sessionId);t&&n&&o(I("/",{clearSessionId:!0}))})()},children:[(0,t.jsx)(T.default,{name:"Trash2",size:16}),"删除会话"]})]})]})})]},e.sessionId)})},e.key)):(0,t.jsx)("p",{className:"sidebar-drawer-empty",children:"(暂无会话)"})})}):null]})}),(0,t.jsx)(z,{collapsed:!1,onGoToSettings:P})]})})}var V=e.i(61196);function G(){let e=(0,V.useStageThreadFlyoutStore)(e=>e.open),r=(0,V.useStageThreadFlyoutStore)(e=>e.title),s=(0,V.useStageThreadFlyoutStore)(e=>e.content),a=(0,V.useStageThreadFlyoutStore)(e=>e.width),i=(0,V.useStageThreadFlyoutStore)(e=>e.hideHeader),l=(0,V.useStageThreadFlyoutStore)(e=>e.bodyClassName),o=(0,V.useStageThreadFlyoutStore)(e=>e.requestCloseFlyout),[u,d]=(0,n.useState)(a),[c,p]=(0,n.useState)(!1);(0,n.useEffect)(()=>{if(!e)return;let t=e=>{"Escape"===e.key&&o()};return window.addEventListener("keydown",t),()=>{window.removeEventListener("keydown",t)}},[e,o]),(0,n.useEffect)(()=>{e&&d((0,V.clampStageThreadFlyoutWidth)(a))},[e,a]);let f=(0,n.useCallback)(e=>{e.preventDefault();let t=e.currentTarget;t.setPointerCapture(e.pointerId),p(!0);let n=e.clientX,r=e=>{let t=n-e.clientX;d((0,V.clampStageThreadFlyoutWidth)(u+t))},s=()=>{p(!1),t.removeEventListener("pointermove",r),t.removeEventListener("pointerup",s),t.removeEventListener("pointercancel",s),document.body.style.cursor="",document.body.style.userSelect=""};document.body.style.cursor="col-resize",document.body.style.userSelect="none",t.addEventListener("pointermove",r),t.addEventListener("pointerup",s),t.addEventListener("pointercancel",s)},[u]);return(0,t.jsx)("aside",{className:(0,P.cn)("stage-thread-flyout",e&&"is-open",c&&"is-resizing"),"data-region":"stage-thread-flyout","aria-hidden":!e,style:{"--stage-flyout-width":"".concat(u,"px")},children:e?(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)("div",{className:"stage-thread-flyout-resize",role:"separator","aria-orientation":"vertical","aria-valuenow":u,"aria-valuemin":V.STAGE_THREAD_FLYOUT_MIN_WIDTH,"aria-valuemax":V.STAGE_THREAD_FLYOUT_MAX_WIDTH,"aria-label":"调整面板宽度",onPointerDown:f,children:(0,t.jsx)("span",{className:"stage-thread-flyout-resize-bar","aria-hidden":!0})}),(0,t.jsxs)("div",{className:"stage-thread-flyout-inner",children:[i?null:(0,t.jsxs)("header",{className:"stage-thread-flyout-header",children:[r?(0,t.jsx)("h2",{className:"stage-thread-flyout-title",children:r}):(0,t.jsx)("span",{className:"stage-thread-flyout-title","aria-hidden":!0}),(0,t.jsx)(R.Button,{type:"button",variant:"plain-outline",size:"icon-sm",className:"stage-thread-flyout-close shrink-0 cursor-pointer !pl-0 !pr-0","aria-label":"关闭",onClick:()=>void o(),children:(0,t.jsx)(T.default,{name:"X",size:16})})]}),(0,t.jsx)("div",{className:(0,P.cn)("stage-thread-flyout-body",l),children:s})]})]}):null})}var q=e.i(94606);function H(){let e=(0,r.usePathname)(),t=(0,r.useRouter)(),s=(0,n.useRef)(null),a=(0,n.useRef)(!1);return(0,n.useEffect)(()=>{if(a.current)return;let n=s.current;if(s.current=e,!n||n===e)return;let{open:r,guardRoute:i,isDirty:l,closeFlyout:o}=V.useStageThreadFlyoutStore.getState();if(r&&(0,q.isLeavingFlyoutGuardRoute)(i,n,e)){if(!(0,q.shouldConfirmFlyoutRouteChange)(i,n,e,l))return void o();a.current=!0,t.replace(n),(0,q.confirmDiscardFlyoutChanges)().then(r=>{a.current=!1,r?(o(),t.push(e),s.current=e):s.current=n})}},[e,t]),null}function Q(e){let{children:n,mainClassName:r,mainRegion:s,sidebar:a}=e;return(0,t.jsxs)("div",{className:"app","data-ui-layer":"presentation","data-topology":"local-first",children:[(0,t.jsx)(U,{onNewSession:a.onNewSession,onSelectSession:a.onSelectSession,onSaveAgentConfig:a.onSaveAgentConfig,deleteSessionById:a.deleteSessionById}),(0,t.jsx)("main",{className:(0,P.cn)("main overflow-x-auto",r),"data-region":s,children:(0,t.jsx)("div",{className:"main-content",children:n})}),(0,t.jsx)(G,{}),(0,t.jsx)(H,{})]})}function Y(){let e=(0,s.useAppStore)(e=>e.wsUrl),t=(0,s.useAppStore)(e=>e.apiBase),r=(0,s.useAppStore)(e=>e.agentId),i=(0,s.useAppStore)(e=>e.agentSelectionResolved),l=(0,s.useAppStore)(e=>e.setWsUrl),o=(0,s.useAppStore)(e=>e.setAgentId),{loadSessions:u,loadAgentConfig:d}=(0,N.useSession)();return(0,n.useLayoutEffect)(()=>{s.useAppStore.getState().wsUrl.trim()||l((0,a.defaultWsUrl)())},[l]),(0,n.useLayoutEffect)(()=>{(0,M.syncRuntimeAgentWithUrl)(s.useAppStore.getState().agentId,o)},[r,o]),(0,n.useEffect)(()=>{if(!e.trim())return;let t=!1;return(async()=>{let e=s.useAppStore.getState();e.setAgentSelectionResolved(!1),e.setAgentSelectionError(null);let n=(0,M.readAgentFromLocationSearch)().trim()||e.agentId.trim();try{var r;let s=await (0,O.listAgents)(e.wsUrl,e.apiBase);if(t)return;if(!s.length){e.setAgentSelectionError("暂无可用 Agent"),e.setAgentSelectionResolved(!1);return}let a=null!=(r=s.find(e=>e.id===n))?r:s[0];if(!a){e.setAgentSelectionError("暂无可用 Agent"),e.setAgentSelectionResolved(!1);return}e.agentId.trim()!==a.id&&e.setAgentId(a.id),e.setCurrentWorkspaceAgent(a),(0,M.replaceRuntimeAgentInUrl)(a.id),e.setAgentSelectionResolved(!0)}catch(n){if(t)return;e.setAgentSelectionError(n instanceof Error?n.message:String(n)),e.setAgentSelectionResolved(!1)}})(),()=>{t=!0}},[e,t,r]),(0,n.useEffect)(()=>{i&&(u(),d())},[i,r,e,t,u,d]),null}function J(){let e=(0,r.useSearchParams)(),t=(0,s.useAppStore)(e=>e.setAgentId),a=(0,s.useAppStore)(e=>e.setAgentSelectionResolved);return(0,n.useLayoutEffect)(()=>{var n;let r=null==(n=e.get("agent"))?void 0:n.trim();r&&r!==s.useAppStore.getState().agentId.trim()&&(a(!1),t(r))},[e,t,a]),null}function X(){return(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(Y,{}),(0,t.jsx)(n.Suspense,{fallback:null,children:(0,t.jsx)(J,{})})]})}function K(e){let{children:o}=e,d=(0,r.usePathname)(),c=function(e){if(!e)return!1;let t=(0,M.normalizeAppPathname)(e);return"/manage"===t||t.startsWith("/manage/")}(d),p=(0,W.isManageSideNavPath)(d),f=(0,s.useAppStore)(e=>e.wsUrl),g=(0,s.useAppStore)(e=>e.apiBase),m=(0,s.useAppStore)(e=>e.agentId),h=(0,s.useAppStore)(e=>e.sessionId),v=(0,s.useAppStore)(e=>e.sessionViewMode),w=(0,s.useAppStore)(e=>e.setSessionId),C=(0,s.useAppStore)(e=>e.setSessionViewMode),T=(0,s.useAppStore)(e=>e.setPendingHistoryRefresh),{loadSessions:E,loadAgentConfig:R,deleteSessionById:P}=(0,N.useSession)(),L=(0,k.usePersistAgentConfig)(),{reconnect:O,switchSession:D,sendPrompt:z,sendAbort:B,sendReloadAgentConfig:F,sendRestartSubprocess:U,sendPermissionResponse:V}=function(e){let t=(0,n.useRef)(null),r=(0,n.useRef)(""),o=(0,n.useRef)(0),d=(0,n.useRef)(0),c=(0,n.useRef)(0),p=(0,n.useRef)(new Map),f=(0,n.useRef)(null==e?void 0:e.onSession);f.current=null==e?void 0:e.onSession;let g=(0,n.useRef)(null==e?void 0:e.onQueryIdle);g.current=null==e?void 0:e.onQueryIdle;let m=(0,s.useAppStore)(e=>e.wsUrl),h=(0,s.useAppStore)(e=>e.agentSelectionResolved),v=(0,n.useCallback)(()=>(o.current+=1,o.current),[]),N=(0,n.useCallback)(()=>{if(t.current){let e=t.current;t.current.close(),(0,i.clearActiveWebSocket)(e),t.current=null}let e=s.useAppStore.getState();e.setWsConnected(!1),e.setBridgeReady(!1),e.resetApiErrorState(),e.setAssistantGenerating(!1),e.setTurnRunning(!1),p.current.clear()},[]),k=(0,n.useCallback)((e,t)=>{var n,a,i,o,c,m,h,S,y;let x=(null==t?void 0:t.httpReplay)===!0,N=s.useAppStore.getState(),I=(e.runId||"main").trim()||"main",w="string"==typeof e.agent_name?e.agent_name.trim():"";w&&p.current.set(I,w);let C=function(t,n){let r=!(arguments.length>2)||void 0===arguments[2]||arguments[2],s=r&&e.data&&"object"==typeof e.data&&"string"==typeof e.data.sourceAgent?e.data.sourceAgent.trim():"",a=p.current.get(I)||"";return t||s||a||n},T=String(null!=(n=e.sessionId)?n:"").trim()||r.current.trim()||N.sessionId.trim()||"unknown",E="".concat(d.current,":").concat(T);if(e.eventId&&function(e,t){var n;let r=t||"default",s=null!=(n=A.get(r))?n:new Set;if(s.has(e))return!0;if(s.add(e),s.size>4096)for(let e of Array.from(s).slice(0,2048))s.delete(e);return A.set(r,s),!1}(e.eventId,E))return void N.appendLog("dedup","eventId=".concat(e.eventId," 已忽略"));switch(N.appendLog(x?"← replay":"←",e),e.type){case l.EVENT.SESSION_META:{let t=e.data,n=String(null!=(i=null!=(a=t.sessionId)?a:e.sessionId)?i:""),s=N.sessionId.trim();if(r.current){if(n&&n!==s)return void N.appendLog("switchSession","忽略过期 session.meta incoming=".concat(n," current=").concat(s));r.current=""}t.agent&&N.setBrandAgent(String(t.agent)),N.setSessionContextPercent(function(e){if(!e||"object"!=typeof e)return null;let t=Number(e.percentage);if(Number.isFinite(t))return Math.max(0,Math.round(10*t)/10);let n=Number(e.totalTokens),r=Number(e.rawMaxTokens);return Number.isFinite(n)&&Number.isFinite(r)&&r>0?Math.max(0,Math.round(n/r*1e3)/10):null}(t.contextUsage)),n&&(N.setSessionId(n),null==(o=f.current)||o.call(f,n));break}case l.EVENT.SESSION_READY:{N.resetApiErrorState();let t=e.data;r.current&&N.sessionId.trim()===r.current&&(r.current=""),N.markReady(),t.agent&&N.setBrandAgent(String(t.agent));break}case l.EVENT.SESSION_ERROR:{let t=e.data,n=null!=(c=t.message)?c:JSON.stringify(t);N.setAssistantGenerating(!1),N.setTurnRunning(!1),N.setStatus("错误: ".concat(String(n)),"err");break}case l.EVENT.QUERY_PROGRESS:{N.resetApiErrorState();let t=String(null!=(m=e.data.phase)?m:"");"idle"===t?(N.setQueryPhase(""),N.bridgeReady&&N.setStatus("已就绪","ready"),null==(h=g.current)||h.call(g)):(N.setQueryPhase(t),N.setStatus("查询阶段: ".concat(t,"…"),"working"));break}case l.EVENT.CONVERSATION_DELTA:{N.resetApiErrorState();let t=e.data;if(!t.action)break;if("message_added"===t.action||"message_updated"===t.action||"message_removed"===t.action||"tool_call"===t.action||"tool_result"===t.action||"message_completed"===t.action){if(!x&&r.current){let t=String(null!=(S=e.sessionId)?S:"").trim(),n=r.current.trim(),s=N.sessionId.trim();if(t&&t!==n&&t!==s){N.appendLog("switchSession","忽略切换过程中的过期 conversation.delta incoming=".concat(t," pending=").concat(n," current=").concat(s));break}}let n={eventId:e.eventId,action:t.action,index:t.index,message:u(t.message,!0===t.scheduledTrigger||!0===e.scheduledTrigger,"string"==typeof e.turnId?e.turnId:"")},s=C("",I),a=v();N.applyRunMessageDelta({...n,runId:I,sourceAgent:s,ts:"string"==typeof e.ts?e.ts:"",arrivalSeq:a})}"message_completed"===t.action&&N.setStreamBuffer("");break}case l.EVENT.RUN_LIFECYCLE:{let t=e.data,n="string"==typeof t.event&&t.event||("string"==typeof t.state?t.state:"");if("replay.start"===n||"replay.end"===n)break;N.setRunLifecycleData({event:n,message:t.message});let r=C("string"==typeof t.sourceAgent?t.sourceAgent.trim():"","system",!1),s=j(t);s.trim()&&N.appendSourceAgentMessage({key:"string"==typeof e.eventId?e.eventId:"lc-".concat(Date.now()),source:r,runId:I,correlationId:"",status:"resolved",text:s,ts:"string"==typeof e.ts?e.ts:"",arrivalSeq:v()}),"configReloaded"===n&&N.setStatus("已重新加载 agent.md / agent.json",(0,b.resolveInfoStatusClass)(N.bridgeReady,N.wsConnected));break}case l.EVENT.HISTORY_REPLAY:{let n=e.data;if(Array.isArray(n.events))for(let e=0;e<n.events.length;e+=1){let r=n.events[e];r&&"object"==typeof r&&r.type!==l.EVENT.HISTORY_REPLAY&&k(r,t)}break}case l.EVENT.TURN_TERMINAL:{N.resetApiErrorState(),N.setStreamBuffer(""),N.setAssistantGenerating(!1),N.setTurnRunning(!1),N.setQueryPhase("");let t=e.data;N.setTurnTerminalData({status:t.status,resultText:t.resultText,reason:t.reason});let n=s.useAppStore.getState();"resolved"===t.status?n.setStatus("本轮结束(可继续发送)",(0,b.resolveInfoStatusClass)(n.bridgeReady,n.wsConnected)):"failed"===t.status?n.setStatus("本轮失败: ".concat(null!=(y=t.reason)?y:"未知错误"),"err"):"cancelled"===t.status?n.setStatus("本轮已取消",(0,b.resolveInfoStatusClass)(n.bridgeReady,n.wsConnected)):n.setStatus("本轮结束(可继续发送)",(0,b.resolveInfoStatusClass)(n.bridgeReady,n.wsConnected));let r=C("string"==typeof t.sourceAgent?t.sourceAgent.trim():"","main"===I?"main":"unknown-agent",!1),a="string"==typeof t.correlationId?t.correlationId:"",i=j({type:l.EVENT.TURN_TERMINAL,status:t.status,reason:t.reason,resultText:t.resultText});n.appendSourceAgentMessage({key:"string"==typeof e.eventId?e.eventId:"terminal-".concat(Date.now()),source:r,runId:I,correlationId:a,status:"resolved"===t.status?"resolved":"failed",text:i,ts:"string"==typeof e.ts?e.ts:"",arrivalSeq:v()});break}case l.EVENT.PERMISSION_REQUEST:{let t=e.data,n="string"==typeof t.requestId?t.requestId.trim():"";if(!n)break;N.enqueuePermissionRequest({requestId:n,toolName:"string"==typeof t.toolName?t.toolName:"tool",description:"string"==typeof t.description?t.description:"",input:null!=t.input?t.input:{},runId:I})}}},[v]),I=(0,n.useCallback)(e=>{var t,n,a,i,l,o;let u=s.useAppStore.getState(),d=String(null!=(t=e.type)?t:"");if("system"===d&&"api_error"===e.subtype){let t=y(e.retryAttempt),n=y(e.maxRetries),r=y(e.retryInMs),s=Date.now()+r,a=n>0&&t>=n?"failed":r>=1e4?"retrying":"loading";u.setApiErrorState({phase:a,retryAttempt:t,maxRetries:n,retryInMs:r,retryUntilTs:s}),u.appendLog("api_error",{uuid:"string"==typeof e.uuid?e.uuid:"",retryAttempt:t,maxRetries:n,retryInMs:r});return}switch(d){case"messages":if(r.current)return void u.appendLog("switchSession","忽略切换过程中的 messages 回包");u.resetApiErrorState(),u.setMessages(Array.isArray(e.messages)?e.messages:[]),u.setStreamBuffer("");break;case"queryProgress":{u.resetApiErrorState();let t=String(null!=(n=e.phase)?n:"");"idle"===t?(u.setQueryPhase(""),u.bridgeReady&&u.setStatus("已就绪","ready"),null==(a=g.current)||a.call(g)):(u.setQueryPhase(t),u.setStatus("查询阶段: ".concat(t,"…"),"working"));break}case"streamText":{u.resetApiErrorState();let t="string"==typeof e.text?e.text:"";u.setAssistantGenerating(!1),u.setStreamBuffer(t);let n=t.length>160?"".concat(t.slice(0,160),"…"):t;u.appendLog("←",{type:"streamText",len:t.length,preview:n||"(空)"});break}case"ready":u.resetApiErrorState(),r.current&&u.sessionId.trim()===r.current&&(r.current=""),u.markReady(),e.agent&&u.setBrandAgent(String(e.agent));break;case"session":{let t=String(null!=(i=e.sessionId)?i:""),n=u.sessionId.trim();if(r.current){if(t&&t!==n)return void u.appendLog("switchSession","忽略过期 session 回包 incoming=".concat(t," current=").concat(n));r.current=""}e.agent&&u.setBrandAgent(String(e.agent)),t&&(u.setSessionId(t),null==(l=f.current)||l.call(f,t));break}case"error":u.setAssistantGenerating(!1),u.setTurnRunning(!1),u.setStatus("错误: ".concat(String(null!=(o=e.message)?o:JSON.stringify(e))),"err");break;case"turnComplete":{u.resetApiErrorState(),u.setStreamBuffer(""),u.setAssistantGenerating(!1),u.setTurnRunning(!1),u.setQueryPhase("");let e=s.useAppStore.getState();e.setStatus("本轮结束(可继续发送)",(0,b.resolveInfoStatusClass)(e.bridgeReady,e.wsConnected));break}case"agentConfigReloaded":{let e=s.useAppStore.getState();e.setStatus("已重新加载 agent.md / agent.json",(0,b.resolveInfoStatusClass)(e.bridgeReady,e.wsConnected))}}},[]),w=(0,n.useCallback)(async(e,t)=>{let n=e.trim();if(!n)return;let r=s.useAppStore.getState(),a=r.agentId.trim()||"qihoo";try{let{envelopes:e,messageCount:s}=await (0,S.loadSessionReplay)(r.wsUrl,r.apiBase,a,n);if(t!==c.current)return;let i={httpReplay:!0};for(let t=0;t<e.length;t+=1){let n=e[t];n&&x(n)&&k(n,i)}r.appendLog("session-replay-http",{sessionId:n,messageCount:s,envelopeCount:e.length})}catch(e){if(t!==c.current)return;r.appendLog("session-replay-http",String(e)),r.setStatus("历史回放失败: ".concat(e),"err")}},[k]),C=(0,n.useCallback)(()=>{let e,n=s.useAppStore.getState();if(!n.agentSelectionResolved||t.current&&(0,i.isWebSocketOpen)(t.current)&&n.bridgeReady)return;if(t.current){let e=t.current;try{e.close()}catch(e){}(0,i.clearActiveWebSocket)(e),t.current=null}n.markConnecting(),n.resetApiErrorState(),n.resetChat(),n.clearLog(),o.current=0,p.current.clear(),d.current+=1,A.clear();let r=n.agentId.trim()||"qihoo",l=n.sessionId.trim();l&&w(l,++c.current);let u=(0,a.buildWsUrlWithQuery)(n.wsUrl,n.sessionId,r);n.appendLog("connect",u);try{t.current=e=new WebSocket(u),(0,i.setActiveWebSocket)(e)}catch(e){n.markConnectionError("连接失败: ".concat(e)),n.appendLog("error",String(e));return}e.onopen=function(){t.current===this&&s.useAppStore.getState().markConnected()},e.onclose=function(){(null==t.current||t.current===this)&&(s.useAppStore.getState().markDisconnected(),(0,i.clearActiveWebSocket)(this),t.current===this&&(t.current=null))},e.onerror=function(){t.current===this&&(s.useAppStore.getState().markConnectionError("WebSocket 错误"),s.useAppStore.getState().appendLog("error","websocket error"))},e.onmessage=function(e){let n,r=s.useAppStore.getState();try{n=JSON.parse(e.data)}catch(t){r.appendLog("raw",e.data);return}this===t.current&&(x(n)?k(n):null!==n&&"object"==typeof n&&(r.appendLog("←",n),I(n)))}},[k,I,w]),T=(0,n.useCallback)(()=>{N(),C()},[N,C]),E=(0,n.useCallback)((e,n)=>{let a=s.useAppStore.getState(),l=String(e||"").trim(),u=String(n||a.agentId||"").trim()||"qihoo",f=t.current,g=(0,i.isWebSocketOpen)(f);if(a.resetChat(),a.clearLog(),a.setSessionContextPercent(null),o.current=0,a.setBridgeReady(!1),a.resetApiErrorState(),a.setStatus("正在切换 session…","working"),p.current.clear(),d.current+=1,l&&g&&w(l,++c.current),r.current=l,!g)return void T();try{let e={type:"switchSession",sessionId:l,agent:u};f.send(JSON.stringify(e)),a.appendLog("→",e)}catch(e){a.appendLog("error","switchSession 发送失败: ".concat(String(e))),T()}},[T,w]);(0,n.useEffect)(()=>h?(C(),()=>{N()}):void N(),[m,h,C,N]);let R=(0,n.useCallback)(e=>{let n=t.current;(0,i.isWebSocketOpen)(n)&&(n.send(JSON.stringify(e)),s.useAppStore.getState().appendLog("→",e))},[]),_=(0,n.useCallback)(e=>{let t=String(null!=e?e:"").trim();t&&(s.useAppStore.getState().setAssistantGenerating(!0),s.useAppStore.getState().setTurnRunning(!0),s.useAppStore.getState().setPendingPrompt(t)),R({type:"prompt",text:e})},[R]),M=(0,n.useCallback)(()=>{R({type:"abort"})},[R]),P=(0,n.useCallback)(()=>{R({type:"reloadAgentConfig"})},[R]),L=(0,n.useCallback)(e=>{R({type:"restartSubprocess",reason:null!=e?e:"persist-session-overrides"})},[R]),O=(0,n.useCallback)(()=>{R({type:"reloadAgentPrompt"})},[R]);return{wsRef:t,disconnectIfOpen:N,connectWebSocket:C,reconnect:T,switchSession:E,sendPrompt:_,sendAbort:M,sendReloadAgentConfig:P,sendRestartSubprocess:L,sendReloadAgentPrompt:O,sendPermissionResponse:(0,n.useCallback)((e,t)=>{let n=String(e||"").trim();n&&R({type:"permission.response",requestId:n,behavior:t})},[R]),sendInit:(0,n.useCallback)(e=>{R({type:"init",...e})},[R])}}({onSession:()=>{E()},onQueryIdle:()=>{E()}}),G=(0,n.useCallback)((e,t)=>I(e,{switchSession:D,reconnect:O,loadSessions:E,loadAgentConfig:R,preferReconnect:c},{displayName:t}),[D,O,E,R,c]),q=(0,n.useMemo)(()=>({reconnect:O,switchSession:D,switchWorkspaceAgent:G,sendPrompt:z,sendAbort:B,sendReloadAgentConfig:F,sendRestartSubprocess:U,sendPermissionResponse:V}),[O,D,G,z,B,F,U,V]),H=p?"settings-main":c?"manage-main":"draft"===v?"is-draft-session":void 0;return(0,t.jsxs)(_.WorkspaceRuntimeContext.Provider,{value:q,children:[(0,t.jsx)(X,{}),(0,t.jsxs)("div",{className:"ws-config-hidden","aria-hidden":!0,children:[(0,t.jsx)("input",{readOnly:!0,hidden:!0,value:f}),(0,t.jsx)("input",{readOnly:!0,hidden:!0,value:g}),(0,t.jsx)("input",{readOnly:!0,hidden:!0,value:h}),(0,t.jsx)("input",{readOnly:!0,hidden:!0,value:m})]}),(0,t.jsx)(Q,{mainClassName:H,mainRegion:p?"settings-shell":c?"manage-shell":"chat-shell",sidebar:{onNewSession:()=>{w(""),C("draft"),T(!1),c?O():D("",m)},onSelectSession:e=>{w(e),C("history"),T(!1),c?O():D(e,m)},onSaveAgentConfig:()=>void L({silent:!1}),deleteSessionById:async e=>{let t=await P(e);return t&&(c?O():D("",m)),t}},children:o})]})}},41796,e=>{"use strict";e.s(["SideNavShell",()=>d]);var t=e.i(18050),n=e.i(18566),r=e.i(72064),s=e.i(65934),a=e.i(75157),i=e.i(97249),l=e.i(51419),o=e.i(18253);function u(e,t){if(!t)return!1;let n=(0,i.normalizeAppPathname)(t),r=(0,i.normalizeAppPathname)(e);return n===r||n.startsWith("".concat(r,"/"))}function d(e){var d;let{title:c,navGroups:p,tabs:f,activeTabValue:g,tabVariant:m,bottomItems:h,children:v}=e,b=(0,n.usePathname)(),{push:S}=(0,o.useGuardedAppNavigation)(),y=(0,s.useAppStore)(e=>e.agentId),x=e=>{S((0,i.buildAppNavHref)(e,{ensureAgent:!0,agent:y}))},A=!!(m&&(null==f?void 0:f.length)),j=null!=g?g:null==f||null==(d=f[0])?void 0:d.value;return(0,t.jsxs)("div",{className:"side-nav-shell",children:[(0,t.jsxs)("nav",{className:"side-nav","aria-label":null!=c?c:"导航",children:[c?(0,t.jsx)("div",{className:"side-nav-title",children:c}):null,(0,t.jsx)("div",{className:"side-nav-groups",children:p.map((e,n)=>(0,t.jsx)("div",{className:"side-nav-group",children:e.items.map(e=>{let n=u(e.href,b);return(0,t.jsxs)("button",{type:"button",className:(0,a.cn)("side-nav-item",n&&"is-active"),"aria-current":n?"page":void 0,onClick:()=>x(e.href),children:[e.icon?(0,t.jsx)("span",{className:"side-nav-item-icon","aria-hidden":!0,children:(0,t.jsx)(r.default,{name:e.icon,size:16,className:"text-zinc-700",strokeWidth:1})}):null,(0,t.jsx)("span",{className:"side-nav-item-label",children:e.label})]},e.href)})},n))}),h&&h.length>0?(0,t.jsx)("div",{className:"side-nav-bottom",children:h.map(e=>{let n=u(e.href,b);return(0,t.jsxs)("button",{type:"button",className:(0,a.cn)("side-nav-item",n&&"is-active"),"aria-current":n?"page":void 0,onClick:()=>x(e.href),children:[e.icon?(0,t.jsx)("span",{className:"side-nav-item-icon","aria-hidden":!0,children:(0,t.jsx)(r.default,{name:e.icon,size:16,className:"text-zinc-700",strokeWidth:1})}):null,(0,t.jsx)("span",{className:"side-nav-item-label",children:e.label})]},e.href)})}):null]}),(0,t.jsx)("section",{className:"side-nav-content",children:A?(0,t.jsx)(l.AppTabs,{tabs:null!=f?f:[],value:j,onChange:x,listVariant:m,listClassName:"pill"===m?"mx-auto":void 0,contentClassName:"flex min-h-0 min-w-0 flex-1 flex-col",children:v}):v})]})}}]);
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
(globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,36413,e=>{"use strict";e.s(["StatusBadge",()=>i],36413);var t=e.i(18050),r=e.i(25913),a=e.i(75157);let l=(0,r.cva)("inline-flex shrink-0 items-center justify-center rounded-full border px-2 py-0.5 text-xs font-medium whitespace-nowrap transition-colors focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px] [&>svg]:pointer-events-none [&>svg]:size-3",{variants:{variant:{default:"border-transparent bg-primary text-primary-foreground",secondary:"border-transparent bg-secondary text-secondary-foreground",destructive:"border-transparent bg-destructive text-white",outline:"text-foreground"}},defaultVariants:{variant:"default"}});function n(e){let{className:r,variant:n,...s}=e;return(0,t.jsx)("span",{"data-slot":"badge",className:(0,a.cn)(l({variant:n}),r),...s})}let s={success:{root:"border-transparent bg-[var(--green-light)] text-[var(--green-dark)]",dot:"bg-[var(--ds-ok)]"},danger:{root:"border-transparent bg-[#fef2f2] text-[var(--ds-danger)]",dot:"bg-[var(--ds-danger)]"},default:{root:"border-transparent bg-[var(--surface-2)] text-[var(--ds-muted)]",dot:"bg-[var(--ds-muted)]"},progress:{root:"border-transparent bg-[color-mix(in_srgb,var(--blue)_12%,var(--surface-1))] text-[var(--blue)]",dot:"bg-[var(--blue)]"},warning:{root:"border-transparent bg-[color-mix(in_srgb,var(--amber)_14%,var(--surface-1))] text-[var(--amber)]",dot:"bg-[var(--amber)]"}};function i(e){let{tone:r="default",showDot:l=!0,dotClassName:i,className:o,children:c,...d}=e,u=s[r];return(0,t.jsxs)(n,{variant:"outline",className:(0,a.cn)("gap-1.5",u.root,o),...d,children:[l?(0,t.jsx)("span",{className:(0,a.cn)("size-1.5 shrink-0 rounded-full",u.dot,i),"aria-hidden":!0}):null,c]})}},92715,e=>{"use strict";e.s(["AppTable",()=>u],92715);var t=e.i(18050),r=e.i(85413),a=e.i(71645),l=e.i(75157);let n=a.forwardRef((e,r)=>{let{className:a,...n}=e;return(0,t.jsx)("div",{className:"relative w-full overflow-auto",children:(0,t.jsx)("table",{ref:r,className:(0,l.cn)("w-full caption-bottom border-collapse",a),...n})})});n.displayName="Table";let s=a.forwardRef((e,r)=>{let{className:a,...n}=e;return(0,t.jsx)("thead",{ref:r,className:(0,l.cn)("[&_tr]:table [&_tr]:w-full [&_tr]:table-fixed [&_tr]:border-b",a),...n})});s.displayName="TableHeader";let i=a.forwardRef((e,r)=>{let{className:n,viewportFit:s=!0,viewportReserveBottom:i=16,viewportPaginationReserve:o=0,style:c,...d}=e,u=a.useRef(null),m=a.useCallback(e=>{u.current=e,"function"==typeof r?r(e):r&&(r.current=e)},[r]),[p,f]=a.useState(void 0);return a.useLayoutEffect(()=>{var e,t;if(!s)return void f(void 0);let r=()=>{var e,t;let r=u.current;if(!r)return;let a=r.getBoundingClientRect().top;f(Math.max(80,Math.floor((null!=(t=null==(e=window.visualViewport)?void 0:e.height)?t:window.innerHeight)-a-(i+o))))};r();let a=new ResizeObserver(()=>{r()});try{a.observe(document.body)}catch(e){}return window.addEventListener("resize",r),null==(e=window.visualViewport)||e.addEventListener("resize",r),null==(t=window.visualViewport)||t.addEventListener("scroll",r),window.addEventListener("scroll",r,!0),()=>{var e,t;a.disconnect(),window.removeEventListener("resize",r),null==(e=window.visualViewport)||e.removeEventListener("resize",r),null==(t=window.visualViewport)||t.removeEventListener("scroll",r),window.removeEventListener("scroll",r,!0)}},[s,i,o]),(0,t.jsx)("tbody",{ref:m,className:(0,l.cn)("block overflow-y-auto [&_tr:last-child]:border-b-0 [&_tr:last-child_td]:border-b-0 [&_tr]:table [&_tr]:w-full [&_tr]:table-fixed",n),style:s&&void 0!==p?{...c,maxHeight:p}:c,...d})});i.displayName="TableBody";let o=a.forwardRef((e,r)=>{let{className:a,hoverable:n=!0,...s}=e;return(0,t.jsx)("tr",{ref:r,className:(0,l.cn)("border-b transition-colors [&>td]:transition-colors data-[state=selected]:[&>td]:!bg-[var(--ds-item-active)]",n&&"group/table-row",a),...s})});o.displayName="TableRow";let c=a.forwardRef((e,r)=>{let{className:a,...n}=e;return(0,t.jsx)("th",{ref:r,className:(0,l.cn)("h-10 border-b border-[var(--border-subtle)] bg-[var(--surface-2)] px-3 text-left align-middle text-[14px] font-medium !text-[var(--ds-text)] text-muted-foreground",a),...n})});c.displayName="TableHead";let d=a.forwardRef((e,r)=>{let{className:a,...n}=e;return(0,t.jsx)("td",{ref:r,className:(0,l.cn)("border-x-0 border-b border-t-0 border-solid border-[var(--border-subtle)] p-3 align-middle transition-colors group-has-[td:hover]/table-row:!bg-[var(--ds-item-hover)]",a),...n})});function u(e){let{rows:a,columns:u,getRowKey:m,className:p,rowClassName:f,headerRowClassName:b,emptyText:g,emptyNode:v,bodyProps:x}=e;return(0,t.jsx)("div",{className:(0,l.cn)("overflow-hidden border border-[var(--ds-border)]",p),children:(0,t.jsxs)(n,{children:[(0,t.jsx)(s,{children:(0,t.jsx)(o,{className:(0,l.cn)("bg-[var(--ds-main-tint)] hover:bg-[var(--ds-main-tint)]",b),children:u.map(e=>(0,t.jsx)(c,{className:e.headerClassName,children:e.title},e.key))})}),(0,t.jsx)(i,{...x,children:a.length?a.map(e=>(0,t.jsx)(o,{className:"function"==typeof f?f(e):f,children:u.map(r=>(0,t.jsx)(d,{className:r.cellClassName,children:r.render(e)},r.key))},m(e))):(0,t.jsx)(o,{hoverable:!1,children:(0,t.jsx)(d,{colSpan:u.length,className:"py-6",children:null!=v?v:(0,t.jsx)(r.Empty,{text:g})})})})]})})}d.displayName="TableCell"},62427,e=>{"use strict";e.s(["clearRuntimeMcpItemConfig",()=>w,"deleteRuntimeMcp",()=>m,"deleteRuntimeSkill",()=>j,"deleteRuntimeTool",()=>u,"exportRuntimeMcpUrl",()=>f,"exportRuntimeSkillUrl",()=>N,"exportRuntimeToolUrl",()=>p,"importRuntimeMcp",()=>g,"importRuntimeTool",()=>b,"installCloudSkill",()=>C,"listBaseSkills",()=>n,"listCloudSkillCatalog",()=>k,"listInstalledSkills",()=>s,"listInstalledTools",()=>l,"listMcpServers",()=>a,"listRuntimeMcpPackages",()=>d,"listRuntimeTools",()=>c,"loadBaseSkillMd",()=>i,"loadRemoteMcpJson",()=>v,"loadRuntimeMcpItemConfig",()=>h,"saveBaseSkillMd",()=>o,"saveRemoteMcpJson",()=>x,"saveRuntimeMcpItemConfig",()=>y]);var t=e.i(29250),r=e.i(36845);async function a(e,a,l){let n=await (0,t.get)((0,r.buildMcpServersListUrl)(e,a,l));return{servers:Array.isArray(n.servers)?n.servers:[]}}async function l(e,a,l){let n=await (0,t.get)((0,r.buildToolInstalledListUrl)(e,a,l));return{tools:Array.isArray(n.tools)?n.tools:[]}}async function n(e,a,l){let n=await (0,t.get)((0,r.buildSkillBaseListUrl)(e,a,l));return{skills:Array.isArray(n.skills)?n.skills:[]}}async function s(e,a,l){let n=await (0,t.get)((0,r.buildSkillInstalledListUrl)(e,a,l));return{skills:Array.isArray(n.skills)?n.skills:[]}}async function i(e,a,l,n){return(0,t.get)((0,r.buildBaseSkillMdUrl)(e,a,l,n))}async function o(e,a,l,n,s){await (0,t.put)((0,r.buildBaseSkillMdUrl)(e,a,l,n),{content:s})}async function c(e,a,l){let n=await (0,t.get)((0,r.buildToolsRuntimeFilesUrl)(e,a,l));return{runtimeToolsDir:"string"==typeof n.runtimeToolsDir?n.runtimeToolsDir:"",items:Array.isArray(n.items)?n.items.filter(e=>!!(e&&e.id)):[]}}async function d(e,a,l){let n=await (0,t.get)((0,r.buildMcpRuntimeFilesUrl)(e,a,l));return{mcpRuntimeDir:"string"==typeof n.mcpRuntimeDir?n.mcpRuntimeDir:"",items:Array.isArray(n.items)?n.items.filter(e=>!!(e&&e.id)):[]}}async function u(e,a,l,n){return(0,t.del)((0,r.buildToolsRuntimeDeleteUrl)(e,a,l,n))}async function m(e,a,l,n){return(0,t.del)((0,r.buildMcpRuntimeDeleteUrl)(e,a,l,n))}function p(e,t,a,l){return(0,r.buildToolsRuntimeExportUrl)(e,t,a,l)}function f(e,t,a,l){return(0,r.buildMcpRuntimeExportUrl)(e,t,a,l)}async function b(e,a,l,n){let s=new FormData;return s.append("file",n),(0,t.post)((0,r.buildToolsRuntimeImportUrl)(e,a,l),s,{type:"file"})}async function g(e,a,l,n){let s=new FormData;return s.append("file",n),(0,t.post)((0,r.buildMcpRuntimeImportUrl)(e,a,l),s,{type:"file"})}async function v(e,a,l){return(0,t.get)((0,r.buildRemoteMcpJsonUrl)(e,a,l))}async function x(e,a,l,n){await (0,t.post)((0,r.buildRemoteMcpJsonUrl)(e,a,l),{content:n})}async function h(e,a,l,n,s){return(0,t.get)((0,r.buildRuntimeMcpItemConfigUrl)(e,a,l,n,s))}async function y(e,a,l,n,s,i){await (0,t.put)((0,r.buildRuntimeMcpItemConfigUrl)(e,a,l,n,s),{server:i})}async function w(e,a,l,n,s){await (0,t.del)((0,r.buildRuntimeMcpItemConfigUrl)(e,a,l,n,s))}async function j(e,a,l,n){return(0,t.del)((0,r.buildSkillsRuntimeDeleteUrl)(e,a,l,n))}function N(e,t,a,l){return(0,r.buildSkillsRuntimeExportUrl)(e,t,a,l)}async function k(e,a,l,n,s,i){let o=await (0,t.get)((0,r.buildCloudSkillCatalogUrl)(e,a,l,n,s,i));return{items:Array.isArray(o.items)?o.items:[],totalPages:Number(o.totalPages||0)}}async function C(e,a,l,n){await (0,t.post)((0,r.buildCloudSkillInstallUrl)(e,a,l),{id:n})}},53925,e=>{"use strict";e.s(["ResourceImportDialog",()=>u],53925);var t=e.i(18050),r=e.i(71645),a=e.i(72064),l=e.i(75157),n=e.i(19455);function s(e){return e<1024?"".concat(e," B"):e<1048576?"".concat((e/1024).toFixed(1)," KB"):"".concat((e/1048576).toFixed(1)," MB")}function i(e){let{uploadUrl:i,accept:o,disabled:c=!1,multiple:d=!1,maxFileSize:u=0x3200000,autoUpload:m=!1,method:p="POST",transport:f="xhr",fieldName:b="file",headers:g,extraFormData:v,autoRetryTimes:x=0,autoRetryDelayMs:h=800,selectionOnly:y=!1,className:w,emptyTitle:j="点击或拖拽文件到此处",emptyHint:N="支持上传文件",onFilesChange:k,onUploadSuccess:C,onUploadError:R,onValidationError:T}=e,S=r.useId(),U=r.useRef(null),M=r.useRef(new Map),A=r.useRef(new Map),D=r.useRef([]),[z,I]=r.useState(!1),[B,E]=r.useState([]),L=r.useMemo(()=>o?o.split(",").map(e=>e.trim().toLowerCase()).filter(Boolean):[],[o]);r.useEffect(()=>{D.current=B,null==k||k(B)},[B,k]),r.useEffect(()=>()=>{for(let e of M.current.values())e.abort();for(let e of A.current.values())e.abort();for(let e of D.current)e.previewUrl&&URL.revokeObjectURL(e.previewUrl)},[]);let _=r.useCallback((e,t)=>{E(r=>r.map(r=>r.id===e?{...r,...t}:r))},[]),O=r.useCallback(async(e,t)=>{let r=D.current.find(t=>t.id===e);if(!r||c)return;_(e,{status:t>0?"retrying":"uploading",progress:0,error:"",retryCount:t});let a=new FormData;if(v)for(let[e,t]of Object.entries(v))a.append(e,t);a.append(b,r.file);try{let t="";if("fetch"===f){let r=new AbortController;A.current.set(e,r);let l=await fetch(i,{method:p,headers:g,body:a,signal:r.signal}),n=await l.text();try{t=n?JSON.parse(n):""}catch(e){t=n}if(!l.ok)throw Error("上传失败:".concat(l.status," ").concat(l.statusText))}else t=await new Promise((t,r)=>{let l=new XMLHttpRequest;if(M.current.set(e,l),l.open(p,i,!0),g)for(let[e,t]of Object.entries(g))l.setRequestHeader(e,t);l.upload.onprogress=t=>{if(!t.lengthComputable)return;let r=Math.min(100,Math.round(t.loaded/t.total*100));_(e,{progress:r})},l.onerror=()=>r(Error("网络异常,上传失败")),l.onabort=()=>r(Error("__ABORTED__")),l.onload=()=>{l.status>=200&&l.status<300?t(function(e){let t=e.responseText||"";try{return JSON.parse(t)}catch(e){return t}}(l)):r(Error("上传失败:".concat(l.status," ").concat(l.statusText)))},l.send(a)});_(e,{status:"success",progress:100,error:""});let r=D.current.find(t=>t.id===e);r&&(null==C||C(r,t))}catch(l){let r=l instanceof Error?l.message:String(l);if("__ABORTED__"===r)return void _(e,{status:"selected",progress:0,error:""});if(t<x){_(e,{status:"retrying",error:"重试中(".concat(t+1,"/").concat(x,")")}),await new Promise(e=>window.setTimeout(e,h)),await O(e,t+1);return}_(e,{status:"error",error:r});let a=D.current.find(t=>t.id===e);a&&(null==R||R(a,r))}finally{M.current.delete(e),A.current.delete(e)}},[h,x,c,v,b,g,p,R,C,f,_,i]),F=r.useCallback(e=>{O(e,0)},[O]),P=r.useCallback(e=>{var t,r;null==(t=M.current.get(e))||t.abort(),null==(r=A.current.get(e))||r.abort()},[]),H=r.useCallback(()=>{for(let e of D.current)("selected"===e.status||"error"===e.status)&&F(e.id)},[F]),V=r.useCallback(e=>{if(c||!e.length)return;let t=new Set(D.current.map(e=>"".concat(e.file.name,"::").concat(e.file.size))),r=[];for(let a of e){let e="".concat(a.name,"::").concat(a.size);if(!t.has(e)){if(!function(e,t){if(!t.length)return!0;let r=e.name.toLowerCase(),a=(e.type||"").toLowerCase();return t.some(e=>e.startsWith(".")?r.endsWith(e):e.endsWith("/*")?a.startsWith("".concat(e.slice(0,-1))):a===e)}(a,L)){null==T||T("文件类型不支持:".concat(a.name));continue}if(a.size>u){null==T||T("文件过大(最大 ".concat(s(u),"):").concat(a.name));continue}t.add(e),r.push({id:"".concat(Date.now(),"-").concat(Math.random().toString(36).slice(2,8)),file:a,status:"selected",progress:0,error:"",retryCount:0,previewUrl:a.type.startsWith("image/")?URL.createObjectURL(a):""})}}if(!r.length)return;let a=d?[...D.current,...r]:[r[r.length-1]];if(!d)for(let e of D.current)e.previewUrl&&URL.revokeObjectURL(e.previewUrl);if(E(a),m&&!y)for(let e of r)F(e.id)},[L,m,c,u,d,T,y,F]),J=r.useCallback(e=>{let t=e.target.files;t&&(V(Array.from(t)),e.target.value="")},[V]),K=r.useCallback(e=>{var t;e.preventDefault(),e.stopPropagation(),I(!1),c||V(Array.from(null!=(t=e.dataTransfer.files)?t:[]))},[V,c]);return(0,t.jsxs)("div",{className:(0,l.cn)("flex min-h-0 w-full flex-col gap-3",w),children:[(0,t.jsx)("input",{ref:U,id:S,type:"file",hidden:!0,accept:o,multiple:d,disabled:c,onChange:J}),(0,t.jsxs)("label",{htmlFor:S,onDragOver:e=>{e.preventDefault(),c||I(!0)},onDragLeave:e=>{e.preventDefault(),I(!1)},onDrop:K,className:(0,l.cn)("flex min-h-[124px] cursor-pointer flex-col items-center justify-center gap-1 rounded-lg border border-dashed border-[var(--ds-border)] px-4 py-6 text-center transition-colors hover:border-[var(--ds-border-hover)] hover:bg-[var(--ds-main-tint)]",z&&"bg-[var(--ds-accent)]/5 border-[var(--ds-accent)]",c&&"cursor-not-allowed opacity-60"),children:[(0,t.jsx)(a.default,{name:"Upload",size:20,className:"text-[var(--ds-muted)]"}),(0,t.jsx)("div",{className:"text-[var(--ds-text)]",children:j}),(0,t.jsx)("div",{className:"text-[var(--ds-muted)]",children:N})]}),B.length?(0,t.jsx)("div",{className:"space-y-2",children:B.map(e=>(0,t.jsx)("div",{className:"rounded-md border border-[var(--ds-border)] p-2.5",children:(0,t.jsxs)("div",{className:"flex items-start justify-between gap-3",children:[(0,t.jsxs)("div",{className:"min-w-0 flex-1",children:[(0,t.jsx)("div",{className:"truncate text-[var(--ds-text)]",children:e.file.name}),(0,t.jsx)("div",{className:"text-[var(--ds-muted)]",children:s(e.file.size)}),e.previewUrl?(0,t.jsx)("img",{src:e.previewUrl,alt:e.file.name,className:"mt-2 h-14 w-14 rounded object-cover"}):null,"uploading"===e.status||"retrying"===e.status?(0,t.jsx)("div",{className:"mt-2 h-1.5 w-full overflow-hidden rounded bg-[var(--ds-main-tint)]",children:(0,t.jsx)("div",{className:"h-full bg-[var(--ds-accent)] transition-all",style:{width:"".concat(e.progress,"%")}})}):null,"error"===e.status?(0,t.jsx)("div",{className:"mt-1 text-[var(--ds-danger)]",children:e.error||"上传失败"}):null]}),y?null:(0,t.jsxs)("div",{className:"flex items-center gap-1",children:["success"===e.status?(0,t.jsx)(a.default,{name:"CheckCircle2",size:16,className:"text-[var(--ds-accent)]"}):null,"selected"===e.status||"error"===e.status?(0,t.jsxs)(n.Button,{type:"button",size:"sm",variant:"outline",disabled:c,onClick:()=>F(e.id),children:["error"===e.status?(0,t.jsx)(a.default,{name:"RefreshCw",size:14,className:"mr-1"}):null,"error"===e.status?"重试":"上传"]}):null,"uploading"===e.status||"retrying"===e.status?(0,t.jsxs)(n.Button,{type:"button",size:"sm",variant:"outline",onClick:()=>P(e.id),children:[(0,t.jsx)(a.default,{name:"XCircle",size:14,className:"mr-1"}),"取消"]}):null]})]})},e.id))}):null,!y&&!m&&B.some(e=>"selected"===e.status||"error"===e.status)?(0,t.jsx)("div",{className:"flex justify-end",children:(0,t.jsx)(n.Button,{type:"button",size:"sm",onClick:H,disabled:c,children:"上传"})}):null]})}var o=e.i(76639),c=e.i(13354),d=e.i(29250);function u(e){let{open:a,onOpenChange:l,title:s,description:u,uploadUrl:m,resetKey:p}=e,[f,b]=(0,r.useState)(!1),[g,v]=(0,r.useState)(null),x=(0,r.useCallback)(()=>{l(!1),v(null)},[l]),h=(0,r.useCallback)(async()=>{if(!g)return void c.appToast.info("请先选择 zip 文件");let e=new FormData;e.append("file",g),b(!0);try{let t=await (0,d.bridgeFetch)(m,{method:"POST",body:e}),r=Number(t.imported||0),a=Number(t.overwritten||0),l=Array.isArray(t.rejected)?t.rejected.length:0;c.appToast.success("导入完成:导入 ".concat(r,",覆盖 ").concat(a)+(l>0?",拒绝 ".concat(l):"")),x()}catch(e){c.appToast.error("导入失败:".concat(e instanceof Error?e.message:String(e)))}finally{b(!1)}},[x,g,m]);return(0,t.jsx)(o.Dialog,{open:a,onOpenChange:e=>{l(e),e||v(null)},children:(0,t.jsxs)(o.DialogContent,{className:"flex min-h-[320px] max-w-[560px] flex-col",children:[(0,t.jsxs)(o.DialogHeader,{children:[(0,t.jsxs)("div",{children:[(0,t.jsx)(o.DialogTitle,{children:s}),(0,t.jsx)(o.DialogDescription,{children:u})]}),(0,t.jsx)(o.DialogClose,{className:"sidebar-icon-btn","aria-label":"关闭",onClick:x,children:"✕"})]}),(0,t.jsxs)("div",{className:"m-3 flex flex-1 flex-col gap-3",children:[(0,t.jsx)(i,{uploadUrl:m,accept:".zip,application/zip",maxFileSize:0x3200000,multiple:!1,disabled:f,selectionOnly:!0,emptyTitle:"点击或拖拽 zip 文件到此处",emptyHint:"支持 .zip 格式,最大 50MB",onFilesChange:e=>{var t,r;v(null!=(r=null==(t=e[0])?void 0:t.file)?r:null)},onValidationError:e=>{c.appToast.info(e)}},"".concat(a?"open":"closed","-").concat(null!=p?p:m)),(0,t.jsxs)("div",{className:"mt-auto flex justify-end pt-2",children:[(0,t.jsx)(n.Button,{className:"mr-[12px]",type:"button",variant:"plain-outline",size:"lg",onClick:x,children:"取消"}),(0,t.jsx)(n.Button,{type:"button",size:"lg",variant:"default",disabled:f||null==g,onClick:()=>void h(),children:f?"导入中…":"确定"})]})]})]})})}},19573,e=>{"use strict";e.s(["ToolsManageView",()=>N],19573);var t=e.i(18050),r=e.i(71645),a=e.i(65934),l=e.i(87243),n=e.i(13354),s=e.i(50711),i=e.i(19455),o=e.i(94055),c=e.i(94197),d=e.i(92715),u=e.i(36413),m=e.i(72064),p=e.i(93479);function f(e){let{items:a,saveBusy:l,onToggle:n,onExport:s,onRemove:i,className:f}=e,[b,g]=(0,r.useState)(""),v=(0,r.useMemo)(()=>a.filter(e=>(function(e,t){var r,a;let l=t.trim().toLowerCase();if(!l)return!0;let n="system"===e.layer?"系统":"agent"===e.layer?"Agent":"";return"".concat(e.name," ").concat(null!=(r=e.label)?r:""," ").concat(null!=(a=e.description)?a:""," ").concat(n).toLowerCase().includes(l)})(e,b)),[a,b]),x=[{key:"name",title:"名称",headerClassName:"",cellClassName:"",render:e=>{let r=e.label||e.name;return(0,t.jsxs)("span",{className:"inline-flex items-center gap-2",children:[(0,t.jsx)("span",{children:r}),(0,t.jsx)(u.StatusBadge,{tone:e.enabled?"success":"default",children:e.enabled?"启用":"未启用"})]})}},{key:"layer",title:"层级",headerClassName:"w-[88px]",cellClassName:"w-[88px] whitespace-nowrap text-[var(--ds-text)]",render:e=>"system"===e.layer?"系统":"agent"===e.layer?"Agent":"-"},{key:"description",title:"详情",headerClassName:"",cellClassName:"",render:e=>e.description||"-"},{key:"enabled",title:"启用/未启用",headerClassName:"",cellClassName:"whitespace-nowrap text-[var(--ds-text)]",render:e=>(0,t.jsx)("span",{className:"inline-flex items-center gap-2",children:(0,t.jsx)(o.AccentSwitch,{checked:!!e.enabled,disabled:l,onCheckedChange:t=>n(e.name,t),"aria-label":"".concat(e.enabled?"禁用":"启用"," ").concat(e.name)})})},{key:"actions",title:"操作",headerClassName:"w-[128px] ",cellClassName:"w-[128px]",render:e=>{let r=!0===e.canManage;return(0,t.jsxs)("div",{className:"inline-flex items-center justify-end gap-1",children:[(0,t.jsx)(c.IconTooltipButton,{icon:"Download",label:r?"导出":"系统内置工具不可导出",ariaLabel:"导出 ".concat(e.label||e.name),disabled:l||!r,onClick:()=>s(e.name)}),(0,t.jsx)(c.IconTooltipButton,{icon:"Trash2",label:r?"删除":"系统内置工具不可删除",tone:"danger",ariaLabel:"删除 ".concat(e.label||e.name),disabled:l||!r,onClick:()=>{i(e.name)}})]})}}],h=b.trim();return(0,t.jsxs)("div",{className:"flex flex-col gap-3",children:[(0,t.jsxs)("div",{className:"relative max-w-md",children:[(0,t.jsx)(p.Input,{type:"search",value:b,onChange:e=>g(e.target.value),placeholder:"搜索名称 / 详情 / 层级",className:"h-8 pl-8","aria-label":"搜索工具"}),(0,t.jsx)(m.default,{name:"Search",size:16,className:"pointer-events-none absolute left-2.5 top-1/2 -translate-y-1/2 text-[var(--ds-muted)]"})]}),(0,t.jsx)(d.AppTable,{rows:v,columns:x,getRowKey:e=>"tools:".concat(e.name),className:f,emptyText:h?"未找到匹配工具":void 0})]})}var b=e.i(36845),g=e.i(53925);function v(e){let{open:r,onOpenChange:a,wsUrl:l,apiBase:n,agent:s}=e;return(0,t.jsx)(g.ResourceImportDialog,{open:r,onOpenChange:a,title:"导入工具 zip",description:"选择一个 zip 文件并导入到 tools-runtime。",uploadUrl:(0,b.buildToolsRuntimeImportUrl)(l,n,s),resetKey:s})}var x=e.i(68499),h=e.i(56708),y=e.i(62427);function w(e){return(null!=e.packageId?String(e.packageId).trim():"")||e.name}function j(e){let t=null!=e.packageId?String(e.packageId).trim():"";return!0===e.deletable&&t.length>0}function N(){let e=(0,a.useAppStore)(e=>e.wsUrl),o=(0,a.useAppStore)(e=>e.apiBase),c=(0,a.useAppStore)(e=>e.agentConfig),d=(0,a.useAppStore)(e=>e.patchAgentConfig),{currentAgent:u,loadAgentConfig:p}=(0,l.useSession)(),b=(0,s.usePersistAgentConfigField)("tools"),g=c.tools,[N,k]=(0,r.useState)([]),[C,R]=(0,r.useState)(!1),[T,S]=(0,r.useState)(!1),[U,M]=(0,r.useState)(!1);(0,r.useEffect)(()=>{p()},[p]);let A=(0,r.useCallback)(async(e,t)=>{S(!0);try{await b(e,{silent:t})}finally{S(!1)}},[b]),D=(0,r.useCallback)(async()=>{k([]),R(!0);try{var t;let r=await (0,y.listInstalledTools)(e,o,u());k(null!=(t=r.tools)?t:[])}catch(e){k([]),n.appToast.error("加载失败:".concat(e instanceof Error?e.message:String(e)))}finally{R(!1)}},[e,o,u]);(0,r.useEffect)(()=>{D()},[D]);let z=(0,r.useCallback)(e=>N.find(t=>t.name===e),[N]),I=(0,r.useMemo)(()=>N.slice().sort((e,t)=>e.name.localeCompare(t.name)).map(e=>(function(e,t){var r;let a=null!=e.packageName?String(e.packageName).trim():"";return{name:e.name,label:(e.displayName&&e.displayName!==e.name?"".concat(e.displayName," · "):"")+e.name,description:null!=(r=e.searchHint)?r:"",enabled:t,packageId:a,canManage:j({deletable:e.deletable,packageId:a}),layer:e.layer}})(e,g.includes(e.name))),[N,g]),B=(0,r.useCallback)(async t=>{let r=z(t);if(!r||!j({deletable:r.deletable,packageId:r.packageName}))return void n.appToast.error("系统内置工具不可删除");if(await (0,x.confirmAlertDialog)({title:"确认删除工具包?",description:"工具名:".concat(t),confirmText:"删除",cancelText:"取消"}))try{await (0,y.deleteRuntimeTool)(e,o,u(),w({packageId:r.packageName,name:r.name}));let a=g.filter(e=>e!==t);d({tools:a}),await A(a,!0),await D()}catch(e){n.appToast.error("删除失败:".concat(e instanceof Error?e.message:String(e)))}},[z,e,o,u,g,d,A,D]),E=(0,r.useCallback)(t=>{let r=z(t);if(!r||!j({deletable:r.deletable,packageId:r.packageName}))return void n.appToast.error("系统内置工具不可导出");window.open((0,y.exportRuntimeToolUrl)(e,o,u(),w({packageId:r.packageName,name:r.name})),"_blank","noopener")},[z,e,o,u]),L=(0,r.useCallback)((e,t)=>{let r=t?[...new Set([...g,e])].sort():g.filter(t=>t!==e).sort();d({tools:r}),A(r,!0)},[g,d,A]);return(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(h.ManageChromeHeaderActions,{children:(0,t.jsxs)(i.Button,{id:"btnAgentPickerToolImport",type:"button",variant:"plain-outline",size:"lg",className:"inline-flex items-center justify-center gap-1.5",onClick:()=>M(!0),children:[(0,t.jsx)(m.default,{name:"Import",size:16,className:"align-middle"}),"导入自定义工具"]})}),C?(0,t.jsx)("p",{className:"px-3 py-6 text-center text-[var(--ds-muted)]",children:"加载中…"}):(0,t.jsx)(f,{items:I,saveBusy:T,onToggle:L,onExport:E,onRemove:B}),(0,t.jsx)(v,{open:U,onOpenChange:e=>{M(e),e||D()},wsUrl:e,apiBase:o,agent:u()})]})}}]);
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
(globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,94197,e=>{"use strict";e.s(["IconTooltipButton",()=>o]);var t=e.i(18050),r=e.i(72064),n=e.i(19455),i=e.i(46798),a=e.i(75157);let l={muted:"text-[var(--ds-muted)] hover:text-[var(--ds-text)]",danger:"text-red-600 hover:text-red-800 [&_svg]:!text-red-600 hover:[&_svg]:!text-red-800"};function o(e){let{icon:o,label:s,ariaLabel:d,tone:u="muted",disabled:c,className:f,iconClassName:p,onClick:m}=e;return(0,t.jsx)(i.TooltipProvider,{delayDuration:150,children:(0,t.jsxs)(i.Tooltip,{children:[(0,t.jsx)(i.TooltipTrigger,{asChild:!0,children:(0,t.jsx)(n.Button,{type:"button",variant:"plain",size:"icon",className:(0,a.cn)("icon-tooltip-btn","h-4 w-4 border-none p-0",l[u],f),disabled:c,"aria-label":null!=d?d:s,onClick:m,children:(0,t.jsx)(r.default,{name:o,size:16,className:p})})}),(0,t.jsx)(i.TooltipContent,{side:"bottom",align:"center",className:"",children:s})]})})}},56708,e=>{"use strict";e.s(["ManageChromeHeaderActions",()=>o,"ManageFeatureChrome",()=>l]);var t=e.i(18050),r=e.i(71645),n=e.i(74080),i=e.i(72064);let a=(0,r.createContext)(null);function l(e){let{title:n,description:l,children:o,showTitle:s=!0,headerIcon:d}=e,[u,c]=(0,r.useState)(null);return(0,t.jsxs)("div",{className:"manage-page-wrap flex min-h-0 flex-1 flex-col",children:[(0,t.jsxs)("div",{className:"manage-page-header flex shrink-0 items-start justify-between gap-[var(--space-4)] pb-[var(--space-4)]",children:[s?(0,t.jsxs)("div",{className:"manage-page-title-block flex items-center",children:[d&&(0,t.jsx)("div",{className:"mr-[16px] rounded-md bg-[var(--green-light)] px-4 py-3",children:(0,t.jsx)(i.default,{name:d,size:24,className:"text-[var(--green-dark)]",strokeWidth:1.5})}),(0,t.jsxs)("div",{className:"pt-2",children:[(0,t.jsx)("h1",{className:"manage-page-title",children:n}),(0,t.jsx)("p",{className:"manage-page-desc",children:l})]})]}):null,(0,t.jsx)("div",{ref:c,className:"manage-page-header-actions self-start"})]}),(0,t.jsx)("div",{className:"manage-page-body flex min-h-0 min-w-0 flex-1 flex-col",children:(0,t.jsx)(a.Provider,{value:u,children:o})})]})}function o(e){let{children:t}=e,i=(0,r.useContext)(a);return(0,r.useSyncExternalStore)(()=>()=>{},()=>!0,()=>!1)&&i?(0,n.createPortal)(t,i):null}},44039,99650,e=>{"use strict";e.s(["buildGroupAgentEnvFieldValues",()=>o,"buildProjectEnvFormDefaults",()=>n,"groupAgentEnvSchemaByGroup",()=>i,"mergeGroupEnvIntoAgentEnv",()=>l,"normalizeAgentEnvSchema",()=>r,"schemaKeySet",()=>a],44039);let t=["llm","git","geelib","tutui","system"];function r(e){if(!Array.isArray(e))return[];let r=[];for(let n of e){if(!n||"object"!=typeof n)continue;let e="string"==typeof n.key?n.key.trim():"",i="string"==typeof n.group?n.group.trim():"";e&&t.includes(i)&&r.push({key:e,group:i,label:"string"==typeof n.label&&n.label.trim()?n.label.trim():e,placeholder:"string"==typeof n.placeholder?n.placeholder:""})}return r}function n(e,t){let r={};for(let i of e){var n;r[i.key]=null!=(n=t[i.key])?n:""}return r}function i(e){let r={};for(let e of t)r[e]=[];for(let n of e)t.includes(n.group)&&r[n.group].push(n);return r}function a(e){return new Set(e.map(e=>e.key))}function l(e,t,r){let n={...e};for(let e of t){var i;let t=String(null!=(i=r[e.key])?i:"").trim();t?n[e.key]=t:delete n[e.key]}return n}function o(e,t,r){let n={};for(let i of t){let t=e[i.key];if("string"==typeof t&&t.length>0){n[i.key]=t;continue}let a=r[i.key];n[i.key]="string"==typeof a?a:""}return n}e.s(["persistAgentEnv",()=>f],99650);var s=e.i(13354),d=e.i(70074),u=e.i(82136),c=e.i(65934);async function f(e,t,r,n,i,a){var l,o,f,p;let m=c.useAppStore.getState(),g={tools:m.agentConfig.tools.slice(),disallowedTools:m.agentConfig.disallowedTools.slice(),mcpServers:m.agentConfig.mcpServers.slice(),skills:m.agentConfig.skills.slice(),agentTeams:m.agentConfig.agentTeams.slice(),model:m.agentConfig.model,rules:m.agentConfig.rules.slice(),effort:null!=(l=m.agentConfig.effort)?l:null,background:null!=(o=m.agentConfig.background)&&o,isolation:null!=(f=m.agentConfig.isolation)?f:"",whentouse:null!=(p=m.agentConfig.whentouse)?p:"",env:n,llmProviders:m.agentConfig.llmProviders.map(e=>({...e,models:e.models.map(e=>({...e}))})),...a};await (0,u.saveAgentConfig)(e,t,r,g),m.setAgentConfig({...g,env:{...n}}),c.useAppStore.getState().wsConnected&&i();let h=c.useAppStore.getState();h.setStatus("环境变量已保存"+(h.wsConnected?",已请求 worker 重新加载配置":""),(0,d.resolveInfoStatusClass)(h.bridgeReady,h.wsConnected)),s.appToast.success(h.wsConnected?"已保存到 agent.json,并已请求 worker 重新加载配置。":"已保存到 agent.json。重连 WebSocket 后子进程环境将同步。")}},2839,e=>{"use strict";e.s(["Loading",()=>l],2839);var t=e.i(18050),r=e.i(57688);let n={src:e.i(51239).default,width:951,height:482,blurWidth:8,blurHeight:4,blurDataURL:"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAgAAAAECAYAAACzzX7wAAAAj0lEQVR42gGEAHv/AAAAAAANERAObXJwYaGko5N/gYBwDg8PCgAAAAAAAAAAAAMEBAJic2xp2+3m7fL8+P7l6ujjUlhWTAYGBgUAAAAAADM3NTG6x8LB7fr1/vD89/7f9+3+wNXNzycpKB4AAAAAAJ+qpozL2dO/0NvWx9Td2c6gzrzRpcq8u2FpZk8CAgIBCRI7kCfNfAcAAAAASUVORK5CYII="};var i=e.i(87968),a=e.i(75157);function l(e){let{text:l="加载中",className:o,showImage:s=!0,imageSrc:d=n,imageAlt:u="加载中",imageSize:c=180,imageClassName:f}=e,p="string"==typeof d?{width:c,height:c}:{width:d.width,height:d.height};return(0,t.jsxs)("div",{className:(0,a.cn)("flex min-h-[180px] w-full flex-col items-center justify-center gap-2 py-4 text-[var(--ds-muted)]",o),role:"status","aria-live":"polite",children:[s?(0,t.jsx)("span",{className:(0,a.cn)("block shrink-0",f),style:{width:c},children:(0,t.jsx)(r.default,{src:d,alt:u,width:p.width,height:p.height,unoptimized:!0,draggable:!1,sizes:"".concat(c,"px"),className:"h-auto w-full object-contain"})}):null,(0,t.jsxs)("span",{className:"flex items-center",children:[(0,t.jsx)(i.Spinner,{className:"mr-2"}),l]})]})}},96920,e=>{e.v("/app/_next/static/media/no-data.48c973b9.png")},51239,e=>{e.v("/app/_next/static/media/data-loading.be8d921a.png")},93479,e=>{"use strict";e.s(["Input",()=>n]);var t=e.i(18050),r=e.i(75157);function n(e){let{className:n,type:i="text",size:a="default",...l}=e;return(0,t.jsx)("input",{type:i,"data-slot":"input","data-size":a,className:(0,r.cn)("h-9 w-full appearance-none rounded-md border border-solid border-border bg-transparent px-3 text-sm outline-none transition-[color,box-shadow,border-color] duration-150 ease-in-out placeholder:text-muted-foreground hover:border-[var(--border-hover)] focus-visible:border-[var(--border-focus)] focus-visible:[box-shadow:var(--ring-focus-sm)] read-only:focus-visible:border-border read-only:focus-visible:[box-shadow:none] disabled:cursor-not-allowed disabled:opacity-50 disabled:focus-visible:border-border disabled:focus-visible:[box-shadow:none] data-[size=default]:h-9 data-[size=lg]:h-10 data-[size=sm]:h-7",n),...l})}},18581,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"useMergedRef",{enumerable:!0,get:function(){return i}});let n=e.r(71645);function i(e,t){let r=(0,n.useRef)(null),i=(0,n.useRef)(null);return(0,n.useCallback)(n=>{if(null===n){let e=r.current;e&&(r.current=null,e());let t=i.current;t&&(i.current=null,t())}else e&&(r.current=a(e,n)),t&&(i.current=a(t,n))},[e,t])}function a(e,t){if("function"!=typeof e)return e.current=t,()=>{e.current=null};{let r=e(t);return"function"==typeof r?r:()=>e(null)}}("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},88143,(e,t,r)=>{"use strict";function n(e){let{widthInt:t,heightInt:r,blurWidth:n,blurHeight:i,blurDataURL:a,objectFit:l}=e,o=n?40*n:t,s=i?40*i:r,d=o&&s?"viewBox='0 0 "+o+" "+s+"'":"";return"%3Csvg xmlns='http://www.w3.org/2000/svg' "+d+"%3E%3Cfilter id='b' color-interpolation-filters='sRGB'%3E%3CfeGaussianBlur stdDeviation='20'/%3E%3CfeColorMatrix values='1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 100 -1' result='s'/%3E%3CfeFlood x='0' y='0' width='100%25' height='100%25'/%3E%3CfeComposite operator='out' in='s'/%3E%3CfeComposite in2='SourceGraphic'/%3E%3CfeGaussianBlur stdDeviation='20'/%3E%3C/filter%3E%3Cimage width='100%25' height='100%25' x='0' y='0' preserveAspectRatio='"+(d?"none":"contain"===l?"xMidYMid":"cover"===l?"xMidYMid slice":"none")+"' style='filter: url(%23b);' href='"+a+"'/%3E%3C/svg%3E"}Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"getImageBlurSvg",{enumerable:!0,get:function(){return n}})},87690,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),!function(e,t){for(var r in t)Object.defineProperty(e,r,{enumerable:!0,get:t[r]})}(r,{VALID_LOADERS:function(){return n},imageConfigDefault:function(){return i}});let n=["default","imgix","cloudinary","akamai","custom"],i={deviceSizes:[640,750,828,1080,1200,1920,2048,3840],imageSizes:[16,32,48,64,96,128,256,384],path:"/_next/image",loader:"default",loaderFile:"",domains:[],disableStaticImages:!1,minimumCacheTTL:60,formats:["image/webp"],maximumDiskCacheSize:void 0,maximumResponseBody:5e7,dangerouslyAllowSVG:!1,contentSecurityPolicy:"script-src 'none'; frame-src 'none'; sandbox;",contentDispositionType:"attachment",localPatterns:void 0,remotePatterns:[],qualities:void 0,unoptimized:!1}},8927,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"getImgProps",{enumerable:!0,get:function(){return s}}),e.r(33525);let n=e.r(88143),i=e.r(87690),a=["-moz-initial","fill","none","scale-down",void 0];function l(e){return void 0!==e.default}function o(e){return void 0===e?e:"number"==typeof e?Number.isFinite(e)?e:NaN:"string"==typeof e&&/^[0-9]+$/.test(e)?parseInt(e,10):NaN}function s(e,t){var r,s;let d,u,c,{src:f,sizes:p,unoptimized:m=!1,priority:g=!1,loading:h,className:v,quality:b,width:y,height:x,fill:A=!1,style:j,overrideSrc:w,onLoad:C,onLoadingComplete:S,placeholder:k="empty",blurDataURL:_,fetchPriority:E,decoding:N="async",layout:O,objectFit:P,objectPosition:z,lazyBoundary:R,lazyRoot:T,...M}=e,{imgConf:I,showAltText:D,blurComplete:B,defaultLoader:U}=t,L=I||i.imageConfigDefault;if("allSizes"in L)d=L;else{let e=[...L.deviceSizes,...L.imageSizes].sort((e,t)=>e-t),t=L.deviceSizes.sort((e,t)=>e-t),n=null==(r=L.qualities)?void 0:r.sort((e,t)=>e-t);d={...L,allSizes:e,deviceSizes:t,qualities:n}}if(void 0===U)throw Object.defineProperty(Error("images.loaderFile detected but the file is missing default export.\nRead more: https://nextjs.org/docs/messages/invalid-images-config"),"__NEXT_ERROR_CODE",{value:"E163",enumerable:!1,configurable:!0});let G=M.loader||U;delete M.loader,delete M.srcSet;let q="__next_img_default"in G;if(q){if("custom"===d.loader)throw Object.defineProperty(Error('Image with src "'+f+'" is missing "loader" prop.\nRead more: https://nextjs.org/docs/messages/next-image-missing-loader'),"__NEXT_ERROR_CODE",{value:"E252",enumerable:!1,configurable:!0})}else{let e=G;G=t=>{let{config:r,...n}=t;return e(n)}}if(O){"fill"===O&&(A=!0);let e={intrinsic:{maxWidth:"100%",height:"auto"},responsive:{width:"100%",height:"auto"}}[O];e&&(j={...j,...e});let t={responsive:"100vw",fill:"100vw"}[O];t&&!p&&(p=t)}let F="",K=o(y),V=o(x);if((s=f)&&"object"==typeof s&&(l(s)||void 0!==s.src)){let e=l(f)?f.default:f;if(!e.src)throw Object.defineProperty(Error("An object should only be passed to the image component src parameter if it comes from a static image import. It must include src. Received "+JSON.stringify(e)),"__NEXT_ERROR_CODE",{value:"E460",enumerable:!1,configurable:!0});if(!e.height||!e.width)throw Object.defineProperty(Error("An object should only be passed to the image component src parameter if it comes from a static image import. It must include height and width. Received "+JSON.stringify(e)),"__NEXT_ERROR_CODE",{value:"E48",enumerable:!1,configurable:!0});if(u=e.blurWidth,c=e.blurHeight,_=_||e.blurDataURL,F=e.src,!A)if(K||V){if(K&&!V){let t=K/e.width;V=Math.round(e.height*t)}else if(!K&&V){let t=V/e.height;K=Math.round(e.width*t)}}else K=e.width,V=e.height}let H=!g&&("lazy"===h||void 0===h);(!(f="string"==typeof f?f:F)||f.startsWith("data:")||f.startsWith("blob:"))&&(m=!0,H=!1),d.unoptimized&&(m=!0),q&&!d.dangerouslyAllowSVG&&f.split("?",1)[0].endsWith(".svg")&&(m=!0);let W=o(b),J=Object.assign(A?{position:"absolute",height:"100%",width:"100%",left:0,top:0,right:0,bottom:0,objectFit:P,objectPosition:z}:{},D?{}:{color:"transparent"},j),Y=B||"empty"===k?null:"blur"===k?'url("data:image/svg+xml;charset=utf-8,'+(0,n.getImageBlurSvg)({widthInt:K,heightInt:V,blurWidth:u,blurHeight:c,blurDataURL:_||"",objectFit:J.objectFit})+'")':'url("'+k+'")',X=a.includes(J.objectFit)?"fill"===J.objectFit?"100% 100%":"cover":J.objectFit,Q=Y?{backgroundSize:X,backgroundPosition:J.objectPosition||"50% 50%",backgroundRepeat:"no-repeat",backgroundImage:Y}:{},$=function(e){let{config:t,src:r,unoptimized:n,width:i,quality:a,sizes:l,loader:o}=e;if(n)return{src:r,srcSet:void 0,sizes:void 0};let{widths:s,kind:d}=function(e,t,r){let{deviceSizes:n,allSizes:i}=e;if(r){let e=/(^|\s)(1?\d?\d)vw/g,t=[];for(let n;n=e.exec(r);)t.push(parseInt(n[2]));if(t.length){let e=.01*Math.min(...t);return{widths:i.filter(t=>t>=n[0]*e),kind:"w"}}return{widths:i,kind:"w"}}return"number"!=typeof t?{widths:n,kind:"w"}:{widths:[...new Set([t,2*t].map(e=>i.find(t=>t>=e)||i[i.length-1]))],kind:"x"}}(t,i,l),u=s.length-1;return{sizes:l||"w"!==d?l:"100vw",srcSet:s.map((e,n)=>o({config:t,src:r,quality:a,width:e})+" "+("w"===d?e:n+1)+d).join(", "),src:o({config:t,src:r,quality:a,width:s[u]})}}({config:d,src:f,unoptimized:m,width:K,quality:W,sizes:p,loader:G});return{props:{...M,loading:H?"lazy":h,fetchPriority:E,width:K,height:V,decoding:N,className:v,style:{...J,...Q},sizes:$.sizes,srcSet:$.srcSet,src:w||$.src},meta:{unoptimized:m,priority:g,placeholder:k,fill:A}}}},98879,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"default",{enumerable:!0,get:function(){return o}});let n=e.r(71645),i="undefined"==typeof window,a=i?()=>{}:n.useLayoutEffect,l=i?()=>{}:n.useEffect;function o(e){let{headManager:t,reduceComponentsToState:r}=e;function o(){if(t&&t.mountedInstances){let i=n.Children.toArray(Array.from(t.mountedInstances).filter(Boolean));t.updateHead(r(i,e))}}if(i){var s;null==t||null==(s=t.mountedInstances)||s.add(e.children),o()}return a(()=>{var r;return null==t||null==(r=t.mountedInstances)||r.add(e.children),()=>{var r;null==t||null==(r=t.mountedInstances)||r.delete(e.children)}}),a(()=>(t&&(t._pendingUpdate=o),()=>{t&&(t._pendingUpdate=o)})),l(()=>(t&&t._pendingUpdate&&(t._pendingUpdate(),t._pendingUpdate=null),()=>{t&&t._pendingUpdate&&(t._pendingUpdate(),t._pendingUpdate=null)})),null}},58908,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"AmpStateContext",{enumerable:!0,get:function(){return n}});let n=e.r(55682)._(e.r(71645)).default.createContext({})},15986,(e,t,r)=>{"use strict";function n(e){let{ampFirst:t=!1,hybrid:r=!1,hasQuery:n=!1}=void 0===e?{}:e;return t||r&&n}Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"isInAmpMode",{enumerable:!0,get:function(){return n}})},25633,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),!function(e,t){for(var r in t)Object.defineProperty(e,r,{enumerable:!0,get:t[r]})}(r,{default:function(){return g},defaultHead:function(){return c}});let n=e.r(55682),i=e.r(90809),a=e.r(18050),l=i._(e.r(71645)),o=n._(e.r(98879)),s=e.r(58908),d=e.r(42732),u=e.r(15986);function c(e){void 0===e&&(e=!1);let t=[(0,a.jsx)("meta",{charSet:"utf-8"},"charset")];return e||t.push((0,a.jsx)("meta",{name:"viewport",content:"width=device-width"},"viewport")),t}function f(e,t){return"string"==typeof t||"number"==typeof t?e:t.type===l.default.Fragment?e.concat(l.default.Children.toArray(t.props.children).reduce((e,t)=>"string"==typeof t||"number"==typeof t?e:e.concat(t),[])):e.concat(t)}e.r(33525);let p=["name","httpEquiv","charSet","itemProp"];function m(e,t){let{inAmpMode:r}=t;return e.reduce(f,[]).reverse().concat(c(r).reverse()).filter(function(){let e=new Set,t=new Set,r=new Set,n={};return i=>{let a=!0,l=!1;if(i.key&&"number"!=typeof i.key&&i.key.indexOf("$")>0){l=!0;let t=i.key.slice(i.key.indexOf("$")+1);e.has(t)?a=!1:e.add(t)}switch(i.type){case"title":case"base":t.has(i.type)?a=!1:t.add(i.type);break;case"meta":for(let e=0,t=p.length;e<t;e++){let t=p[e];if(i.props.hasOwnProperty(t))if("charSet"===t)r.has(t)?a=!1:r.add(t);else{let e=i.props[t],r=n[t]||new Set;("name"!==t||!l)&&r.has(e)?a=!1:(r.add(e),n[t]=r)}}}return a}}()).reverse().map((e,t)=>{let r=e.key||t;return l.default.cloneElement(e,{key:r})})}let g=function(e){let{children:t}=e,r=(0,l.useContext)(s.AmpStateContext),n=(0,l.useContext)(d.HeadManagerContext);return(0,a.jsx)(o.default,{reduceComponentsToState:m,headManager:n,inAmpMode:(0,u.isInAmpMode)(r),children:t})};("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},18556,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"ImageConfigContext",{enumerable:!0,get:function(){return a}});let n=e.r(55682)._(e.r(71645)),i=e.r(87690),a=n.default.createContext(i.imageConfigDefault)},65856,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"RouterContext",{enumerable:!0,get:function(){return n}});let n=e.r(55682)._(e.r(71645)).default.createContext(null)},1948,(e,t,r)=>{"use strict";function n(e){var t;let{config:r,src:n,width:i,quality:a}=e,l=a||(null==(t=r.qualities)?void 0:t.reduce((e,t)=>Math.abs(t-75)<Math.abs(e-75)?t:e))||75;return r.path+"?url="+encodeURIComponent(n)+"&w="+i+"&q="+l+(n.startsWith("/_next/static/media/"),"")}Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"default",{enumerable:!0,get:function(){return i}}),n.__next_img_default=!0;let i=n},5500,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"Image",{enumerable:!0,get:function(){return x}});let n=e.r(55682),i=e.r(90809),a=e.r(18050),l=i._(e.r(71645)),o=n._(e.r(74080)),s=n._(e.r(25633)),d=e.r(8927),u=e.r(87690),c=e.r(18556);e.r(33525);let f=e.r(65856),p=n._(e.r(1948)),m=e.r(18581),g={deviceSizes:[640,750,828,1080,1200,1920,2048,3840],imageSizes:[16,32,48,64,96,128,256,384],path:"/app/_next/image/",loader:"default",dangerouslyAllowSVG:!1,unoptimized:!1};function h(e,t,r,n,i,a,l){let o=null==e?void 0:e.src;e&&e["data-loaded-src"]!==o&&(e["data-loaded-src"]=o,("decode"in e?e.decode():Promise.resolve()).catch(()=>{}).then(()=>{if(e.parentElement&&e.isConnected){if("empty"!==t&&i(!0),null==r?void 0:r.current){let t=new Event("load");Object.defineProperty(t,"target",{writable:!1,value:e});let n=!1,i=!1;r.current({...t,nativeEvent:t,currentTarget:e,target:e,isDefaultPrevented:()=>n,isPropagationStopped:()=>i,persist:()=>{},preventDefault:()=>{n=!0,t.preventDefault()},stopPropagation:()=>{i=!0,t.stopPropagation()}})}(null==n?void 0:n.current)&&n.current(e)}}))}function v(e){return l.use?{fetchPriority:e}:{fetchpriority:e}}"undefined"==typeof window&&(globalThis.__NEXT_IMAGE_IMPORTED=!0);let b=(0,l.forwardRef)((e,t)=>{let{src:r,srcSet:n,sizes:i,height:o,width:s,decoding:d,className:u,style:c,fetchPriority:f,placeholder:p,loading:g,unoptimized:b,fill:y,onLoadRef:x,onLoadingCompleteRef:A,setBlurComplete:j,setShowAltText:w,sizesInput:C,onLoad:S,onError:k,..._}=e,E=(0,l.useCallback)(e=>{e&&(k&&(e.src=e.src),e.complete&&h(e,p,x,A,j,b,C))},[r,p,x,A,j,k,b,C]),N=(0,m.useMergedRef)(t,E);return(0,a.jsx)("img",{..._,...v(f),loading:g,width:s,height:o,decoding:d,"data-nimg":y?"fill":"1",className:u,style:c,sizes:i,srcSet:n,src:r,ref:N,onLoad:e=>{h(e.currentTarget,p,x,A,j,b,C)},onError:e=>{w(!0),"empty"!==p&&j(!0),k&&k(e)}})});function y(e){let{isAppRouter:t,imgAttributes:r}=e,n={as:"image",imageSrcSet:r.srcSet,imageSizes:r.sizes,crossOrigin:r.crossOrigin,referrerPolicy:r.referrerPolicy,...v(r.fetchPriority)};return t&&o.default.preload?(o.default.preload(r.src,n),null):(0,a.jsx)(s.default,{children:(0,a.jsx)("link",{rel:"preload",href:r.srcSet?void 0:r.src,...n},"__nimg-"+r.src+r.srcSet+r.sizes)})}let x=(0,l.forwardRef)((e,t)=>{let r=(0,l.useContext)(f.RouterContext),n=(0,l.useContext)(c.ImageConfigContext),i=(0,l.useMemo)(()=>{var e;let t=g||n||u.imageConfigDefault,r=[...t.deviceSizes,...t.imageSizes].sort((e,t)=>e-t),i=t.deviceSizes.sort((e,t)=>e-t),a=null==(e=t.qualities)?void 0:e.sort((e,t)=>e-t);return{...t,allSizes:r,deviceSizes:i,qualities:a}},[n]),{onLoad:o,onLoadingComplete:s}=e,m=(0,l.useRef)(o);(0,l.useEffect)(()=>{m.current=o},[o]);let h=(0,l.useRef)(s);(0,l.useEffect)(()=>{h.current=s},[s]);let[v,x]=(0,l.useState)(!1),[A,j]=(0,l.useState)(!1),{props:w,meta:C}=(0,d.getImgProps)(e,{defaultLoader:p.default,imgConf:i,blurComplete:v,showAltText:A});return(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)(b,{...w,unoptimized:C.unoptimized,placeholder:C.placeholder,fill:C.fill,onLoadRef:m,onLoadingCompleteRef:h,setBlurComplete:x,setShowAltText:j,sizesInput:e.sizes,ref:t}),C.priority?(0,a.jsx)(y,{isAppRouter:!r,imgAttributes:w}):null]})});("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},94909,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),!function(e,t){for(var r in t)Object.defineProperty(e,r,{enumerable:!0,get:t[r]})}(r,{default:function(){return s},getImageProps:function(){return o}});let n=e.r(55682),i=e.r(8927),a=e.r(5500),l=n._(e.r(1948));function o(e){let{props:t}=(0,i.getImgProps)(e,{defaultLoader:l.default,imgConf:{deviceSizes:[640,750,828,1080,1200,1920,2048,3840],imageSizes:[16,32,48,64,96,128,256,384],path:"/app/_next/image/",loader:"default",dangerouslyAllowSVG:!1,unoptimized:!1}});for(let[e,r]of Object.entries(t))void 0===r&&delete t[e];return{props:t}}let s=a.Image},57688,(e,t,r)=>{t.exports=e.r(94909)},85413,e=>{"use strict";e.s(["Empty",()=>a],85413);var t=e.i(18050),r=e.i(57688);let n={src:e.i(96920).default,width:973,height:482,blurWidth:8,blurHeight:4,blurDataURL:"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAgAAAAECAYAAACzzX7wAAAAj0lEQVR42gGEAHv/AAAAAAATGRcXg4uIgcjJycORlJOKDxEQDAAAAAAAAAAAAAQEBANfa2Zj5fTu9ff9+/7q8u7uc3p3cgoLCwkAAAAAAEJGRELH1M/S4/jw/tD25v7U9ef+1ubf4jg8OjAAAAAAAHqBfmqxvLiisMG7rK7GvLKxxb2wpbKtoVNYVlADAwMC5U08HYgBOJwAAAAASUVORK5CYII="};var i=e.i(75157);function a(e){let{text:a="暂无数据",className:l,showImage:o=!0,imageSrc:s=n,imageAlt:d="暂无数据",imageSize:u=180,imageClassName:c}=e,f="string"==typeof s?{width:u,height:u}:{width:s.width,height:s.height};return(0,t.jsxs)("div",{className:(0,i.cn)("flex min-h-[180px] w-full flex-col items-center justify-center gap-2 py-4 text-[var(--ds-muted)]",l),role:"status","aria-live":"polite",children:[o?(0,t.jsx)("span",{className:(0,i.cn)("block shrink-0",c),style:{width:u},children:(0,t.jsx)(r.default,{src:s,alt:d,width:f.width,height:f.height,unoptimized:!0,draggable:!1,sizes:"".concat(u,"px"),className:"h-auto w-full object-contain"})}):null,(0,t.jsx)("span",{children:a})]})}},69051,e=>{"use strict";e.s(["loadDemoSingleMessage",()=>l,"loadSystemEnv",()=>n,"saveSystemEnv",()=>i,"saveSystemMcpJson",()=>a]);var t=e.i(29250),r=e.i(36845);async function n(e,n,i){return(0,t.get)((0,r.buildSystemEnvApiUrl)(e,n,i))}async function i(e,n,i,a){await (0,t.patch)((0,r.buildSystemEnvApiUrl)(e,n,i),{content:a})}async function a(e,n,i,a){await (0,t.patch)((0,r.buildSystemMcpJsonApiUrl)(e,n,i),{content:a})}async function l(){return(0,t.get)("/api/demo/single-message")}},62849,e=>{"use strict";e.s(["EnvManageView",()=>E],62849);var t=e.i(18050),r=e.i(71645),n=e.i(56708),i=e.i(19455),a=e.i(72064),l=e.i(2839),o=e.i(76639),s=e.i(93479),d=e.i(13354),u=e.i(87243),c=e.i(67327),f=e.i(44039),p=e.i(99650),m=e.i(94606),g=e.i(75157),h=e.i(69051),v=e.i(65934);let b=[{key:"name",name:"名称",required:!0,placeholder:"例如 OpenAI 主站"},{key:"id",name:"服务商 ID(slug)",required:!0,placeholder:"例如 openai-main"},{key:"provider",name:"协议类型",required:!0,options:[{label:"openai",value:"openai"},{label:"anthropic",value:"anthropic"}]},{key:"baseUrl",name:"接口地址",required:!0,placeholder:"例如 https://api.openai.com/v1"},{key:"apiKey",name:"API秘钥",required:!0,inputType:"password"},{key:"authToken",name:"认证变量",inputType:"password"},{key:"modelId",name:"模型 ID",required:!0,placeholder:"例如 gpt-4o"},{key:"modelLabel",name:"模型展示名(可选)"}],y=new Set(["description"]),x=/^[A-Za-z0-9_-]+$/;function A(){return Object.fromEntries(b.map(e=>{var t,r,n;return[e.key,null!=(n=null==(r=e.options)||null==(t=r[0])?void 0:t.value)?n:""]}))}function j(e){let{open:n,onOpenChange:a,onSaved:j}=e,w=(0,r.useId)(),C=(0,v.useAppStore)(e=>e.wsUrl),S=(0,v.useAppStore)(e=>e.apiBase),k=(0,v.useAppStore)(e=>e.agentConfig),{currentAgent:_,loadAgentConfig:E}=(0,u.useSession)(),{sendReloadAgentConfig:N}=(0,c.useWebSocketSender)(),[O,P]=(0,r.useState)(!0),[z,R]=(0,r.useState)(!1),[T,M]=(0,r.useState)(!1),[I,D]=(0,r.useState)([]),[B,U]=(0,r.useState)(A),L=(0,r.useMemo)(()=>(0,f.schemaKeySet)(I),[I]),G=(0,r.useCallback)(e=>{let t=A();for(let r of b)y.has(r.key)||"string"==typeof e[r.key]&&(t[r.key]=e[r.key]);U(t),M(!1)},[]),q=(0,r.useCallback)(async()=>{try{let e=await (0,h.loadSystemEnv)(C,S,_()),t=(0,f.normalizeAgentEnvSchema)(e.schema);D(t)}catch(e){d.appToast.error("加载环境变量表单配置失败:".concat(e instanceof Error?e.message:String(e))),D([])}},[C,S,_]);(0,r.useEffect)(()=>{n&&(P(!0),Promise.all([E(),q()]).finally(()=>{P(!1)}))},[n,E,q]),(0,r.useEffect)(()=>{n&&!O&&G({...k.env})},[n,k.env,G,O]);let F=(0,r.useCallback)((e,t)=>{M(!0),U(r=>({...r,[e]:t}))},[]),K=(0,r.useCallback)(async e=>{if(e)return void a(!0);(!T||await (0,m.confirmDiscardFlyoutChanges)())&&a(!1)},[T,a]),V=(0,r.useCallback)(async()=>{let e=function(e){for(let r of b){var t;if(r.required&&!String(null!=(t=e[r.key])?t:"").trim())return{ok:!1,message:"请填写".concat(r.name)}}return{ok:!0}}(B);if(!e.ok)return void d.appToast.info(e.message);let t=function(e,t){let r={};for(let i of b){var n;if(y.has(i.key))continue;let a=i.key.trim(),l=String(null!=(n=e[i.key])?n:"");if(l.trim()){if(t.has(a))return{ok:!1,message:"自定义变量不能与固定表单重复:".concat(a)};r[a]=l}}return{ok:!0,env:r}}(B,L);if(!t.ok)return void d.appToast.info(t.message);let r=function(e,t){let r={...e};for(let e of b){var n;if(y.has(e.key))continue;let i=e.key.trim(),a=String(null!=(n=t[e.key])?n:"").trim();a?r[i]=a:delete r[i]}return r}(v.useAppStore.getState().agentConfig.env,B);R(!0);try{await (0,p.persistAgentEnv)(C,S,_(),r,N),M(!1),await (null==j?void 0:j()),a(!1)}catch(e){d.appToast.error("保存环境变量失败:".concat(e instanceof Error?e.message:String(e)))}finally{R(!1)}},[B,L,C,S,_,N,a,j]),H=(0,r.useCallback)(async()=>{let e=v.useAppStore.getState().agentConfig,t=function(e,t){var r,n,i,a,l,o,s;let d=String(null!=(r=e.id)?r:"").trim(),u=String(null!=(n=e.name)?n:"").trim(),c="anthropic"===e.provider?"anthropic":"openai",f=String(null!=(i=e.baseUrl)?i:"").trim(),p=String(null!=(a=e.apiKey)?a:"").trim(),m=String(null!=(l=e.authToken)?l:"").trim(),g=String(null!=(o=e.modelId)?o:"").trim(),h=String(null!=(s=e.modelLabel)?s:"").trim();return d?x.test(d)?t.some(e=>e.id.trim()===d)?{ok:!1,message:"服务商 id 已存在: ".concat(d)}:u?f?p||m?g?{ok:!0,entry:{id:d,name:u,baseUrl:f,apiKey:p,authToken:m,provider:c,models:[{id:g,label:h}],defaultModel:g}}:{ok:!1,message:"请填写模型 ID"}:{ok:!1,message:"API Key 与 Auth Token 至少填写一项"}:{ok:!1,message:"请填写 Base URL"}:{ok:!1,message:"请填写展示名称"}:{ok:!1,message:"服务商 id 仅允许字母数字下划线中划线"}:{ok:!1,message:"请填写服务商 ID"}}(B,e.llmProviders);if(!t.ok)return void d.appToast.info(t.message);R(!0);try{await (0,p.persistAgentEnv)(C,S,_(),e.env,N,{llmProviders:[...e.llmProviders.map(e=>({...e,models:e.models.map(e=>({...e}))})),t.entry]}),U(A()),M(!1),await (null==j?void 0:j())}catch(e){d.appToast.error("添加服务商失败:".concat(e instanceof Error?e.message:String(e)))}finally{R(!1)}},[B,C,S,_,N,j]);return(0,t.jsx)(o.Dialog,{open:n,onOpenChange:e=>void K(e),children:(0,t.jsxs)(o.DialogContent,{"aria-labelledby":w,className:"max-w-4xl",children:[(0,t.jsxs)(o.DialogHeader,{children:[(0,t.jsx)("div",{className:"min-w-0 flex-1",children:(0,t.jsx)(o.DialogTitle,{id:w,children:"添加服务商"})}),(0,t.jsx)(o.DialogClose,{"aria-label":"关闭"})]}),(0,t.jsx)(o.DialogBody,{className:"flex min-h-[420px] flex-col overflow-hidden !py-4",children:O?(0,t.jsx)(l.Loading,{text:"加载中",showImage:!1,className:"min-h-0 flex-1"}):(0,t.jsx)("div",{className:"min-h-0 flex-1 overflow-y-auto",children:(0,t.jsxs)("div",{children:[(0,t.jsx)("div",{className:"divide-y divide-[var(--ds-border)]",children:b.map(e=>{var r,n;let i="custom-env-field-".concat(e.key),a="string"==typeof B[e.key]?B[e.key]:"";return(0,t.jsxs)("div",{className:"flex flex-col gap-2 py-4 first:pt-0",children:[(0,t.jsxs)("label",{className:"text-[var(--ds-text)]",htmlFor:i,children:[e.name,e.required?(0,t.jsx)("span",{className:"ml-0.5 text-destructive",children:"*"}):null]}),e.options?(0,t.jsx)("select",{id:i,className:(0,g.cn)("h-8 rounded-md border border-[var(--ds-border)] bg-[var(--ds-bg)] px-3 text-sm text-[var(--ds-text)] outline-none focus-visible:border-[var(--ds-accent)] focus-visible:ring-2 focus-visible:ring-[color-mix(in_srgb,var(--ds-accent)_18%,transparent)]",e.className),value:a,onChange:t=>F(e.key,t.target.value),children:e.options.map(e=>(0,t.jsx)("option",{value:e.value,children:e.label},e.value))}):(0,t.jsx)(s.Input,{id:i,type:null!=(r=e.inputType)?r:"text",spellCheck:!1,autoComplete:"off",placeholder:null!=(n=e.placeholder)?n:"请输入".concat(e.name),className:(0,g.cn)("border-[var(--ds-border)] bg-[var(--ds-bg)] placeholder:text-[var(--text-placeholder)]",e.className),value:a,onChange:t=>F(e.key,t.target.value)})]},e.key)})}),(0,t.jsx)("div",{className:"flex justify-end pt-4",children:(0,t.jsx)(i.Button,{type:"button",size:"lg",disabled:O||z,onClick:()=>void H(),className:"cursor-pointer",children:z?"添加中…":"添加"})})]})})}),(0,t.jsxs)("div",{className:"flex shrink-0 justify-end gap-2 border-t border-[var(--ds-border)] bg-[var(--ds-sidebar)] px-4 py-3",children:[(0,t.jsx)(i.Button,{type:"button",variant:"plain-outline",size:"lg",disabled:O||z,onClick:()=>void K(!1),className:"cursor-pointer",children:"取消"}),(0,t.jsx)(i.Button,{type:"button",size:"lg",disabled:O||z,onClick:()=>void V(),className:"cursor-pointer",children:z?"保存中…":"保存"})]})]})})}var w=e.i(85413),C=e.i(94197);function S(e){return e.map((e,t)=>{let r=e.models[0];return{id:e.id,name:e.name||e.id,baseUrl:e.baseUrl,model:e.defaultModel||(null==r?void 0:r.label)||(null==r?void 0:r.id)||"",isDefault:0===t}})}function k(e){let{row:r,onSetDefault:n,onTest:a,onEdit:l,onDelete:o}=e,s="".concat(r.baseUrl," · ").concat(r.model);return(0,t.jsxs)("article",{className:(0,g.cn)("group flex w-full items-center gap-4 rounded-xl border border-solid bg-[var(--ds-bg)] px-4 py-3.5 transition-[border-color,box-shadow]",r.isDefault?"border-[color:var(--ds-ok)]":"border-[color:var(--ds-border)] hover:shadow-[0_2px_12px_rgba(0,0,0,0.06)]"),children:[(0,t.jsxs)("div",{className:"flex min-w-0 flex-1 items-center gap-3",children:[(0,t.jsx)("span",{className:(0,g.cn)("size-2 shrink-0 rounded-full",r.isDefault?"bg-[var(--ds-ok)]":"bg-[var(--ds-muted)]"),"aria-hidden":"true"}),(0,t.jsxs)("div",{className:"min-w-0 flex-1",children:[(0,t.jsx)("h3",{className:"truncate font-semibold text-[var(--ds-text)]",children:r.name}),(0,t.jsx)("p",{className:"mt-1 truncate text-[var(--ds-muted)]",title:s,children:s})]})]}),(0,t.jsxs)("div",{className:"pointer-events-none invisible flex shrink-0 items-center opacity-0 transition-opacity group-focus-within:pointer-events-auto group-focus-within:visible group-focus-within:opacity-100 group-hover:pointer-events-auto group-hover:visible group-hover:opacity-100",children:[(0,t.jsx)(i.Button,{type:"button",variant:"plain",size:"sm",disabled:r.isDefault,className:"h-8 cursor-pointer !px-0 text-[var(--ds-text)] hover:text-[var(--ds-accent)] disabled:cursor-not-allowed disabled:text-[var(--ds-muted)] disabled:opacity-60",onClick:()=>n(r.id),children:"设为默认"}),(0,t.jsx)(i.Button,{type:"button",variant:"plain",size:"sm",className:"h-8 cursor-pointer px-2 text-[var(--ds-text)] hover:text-[var(--ds-accent)]",onClick:()=>a(r.id),children:"测试"}),(0,t.jsx)(C.IconTooltipButton,{icon:"Edit",label:"编辑",ariaLabel:"编辑 ".concat(r.name),onClick:()=>l(r.id)}),(0,t.jsx)(C.IconTooltipButton,{icon:"Trash2",label:"删除",tone:"danger",ariaLabel:"删除 ".concat(r.name),onClick:()=>o(r.id)})]})]})}function _(){let e=(0,v.useAppStore)(e=>e.agentConfig.llmProviders),[n,i]=(0,r.useState)(()=>S(e));(0,r.useEffect)(()=>{i(S(e))},[e]);let a=(0,r.useCallback)(e=>{i(t=>t.map(t=>({...t,isDefault:t.id===e}))),d.appToast.success("已设为默认服务商")},[]),l=(0,r.useCallback)(e=>{var t;let r=n.find(t=>t.id===e);d.appToast.info("正在测试「".concat(null!=(t=null==r?void 0:r.name)?t:e,"」连接…"))},[n]),o=(0,r.useCallback)(e=>{var t;let r=n.find(t=>t.id===e);d.appToast.info("编辑「".concat(null!=(t=null==r?void 0:r.name)?t:e,"」功能开发中"))},[n]),s=(0,r.useCallback)(e=>{n.find(t=>t.id===e)&&(i(t=>t.filter(t=>t.id!==e).map((e,t)=>({...e,isDefault:0===t}))),d.appToast.success("已删除服务商"))},[n]);return(0,t.jsx)("div",{className:"mt-4 flex flex-col gap-3",children:0===n.length?(0,t.jsx)(w.Empty,{text:"暂无服务商"}):n.map(e=>(0,t.jsx)(k,{row:e,onSetDefault:a,onTest:l,onEdit:o,onDelete:s},e.id))})}function E(){let[e,l]=(0,r.useState)(!1);return(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(n.ManageChromeHeaderActions,{children:(0,t.jsx)("div",{className:"flex flex-wrap items-center",children:(0,t.jsxs)(i.Button,{type:"button",variant:"plain-outline",size:"lg",onClick:()=>l(!0),className:"mr-[12px]",children:[(0,t.jsx)(a.default,{name:"Create",size:16,className:"align-middle"}),"添加服务商"]})})}),(0,t.jsx)(_,{}),(0,t.jsx)(j,{open:e,onOpenChange:l})]})}}]);
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
(globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,56708,e=>{"use strict";e.s(["ManageChromeHeaderActions",()=>i,"ManageFeatureChrome",()=>n]);var r=e.i(18050),o=e.i(71645),t=e.i(74080),a=e.i(72064);let s=(0,o.createContext)(null);function n(e){let{title:t,description:n,children:i,showTitle:l=!0,headerIcon:d}=e,[c,u]=(0,o.useState)(null);return(0,r.jsxs)("div",{className:"manage-page-wrap flex min-h-0 flex-1 flex-col",children:[(0,r.jsxs)("div",{className:"manage-page-header flex shrink-0 items-start justify-between gap-[var(--space-4)] pb-[var(--space-4)]",children:[l?(0,r.jsxs)("div",{className:"manage-page-title-block flex items-center",children:[d&&(0,r.jsx)("div",{className:"mr-[16px] rounded-md bg-[var(--green-light)] px-4 py-3",children:(0,r.jsx)(a.default,{name:d,size:24,className:"text-[var(--green-dark)]",strokeWidth:1.5})}),(0,r.jsxs)("div",{className:"pt-2",children:[(0,r.jsx)("h1",{className:"manage-page-title",children:t}),(0,r.jsx)("p",{className:"manage-page-desc",children:n})]})]}):null,(0,r.jsx)("div",{ref:u,className:"manage-page-header-actions self-start"})]}),(0,r.jsx)("div",{className:"manage-page-body flex min-h-0 min-w-0 flex-1 flex-col",children:(0,r.jsx)(s.Provider,{value:c,children:i})})]})}function i(e){let{children:r}=e,a=(0,o.useContext)(s);return(0,o.useSyncExternalStore)(()=>()=>{},()=>!0,()=>!1)&&a?(0,t.createPortal)(r,a):null}},93479,e=>{"use strict";e.s(["Input",()=>t]);var r=e.i(18050),o=e.i(75157);function t(e){let{className:t,type:a="text",size:s="default",...n}=e;return(0,r.jsx)("input",{type:a,"data-slot":"input","data-size":s,className:(0,o.cn)("h-9 w-full appearance-none rounded-md border border-solid border-border bg-transparent px-3 text-sm outline-none transition-[color,box-shadow,border-color] duration-150 ease-in-out placeholder:text-muted-foreground hover:border-[var(--border-hover)] focus-visible:border-[var(--border-focus)] focus-visible:[box-shadow:var(--ring-focus-sm)] read-only:focus-visible:border-border read-only:focus-visible:[box-shadow:none] disabled:cursor-not-allowed disabled:opacity-50 disabled:focus-visible:border-border disabled:focus-visible:[box-shadow:none] data-[size=default]:h-9 data-[size=lg]:h-10 data-[size=sm]:h-7",t),...n})}},94197,e=>{"use strict";e.s(["IconTooltipButton",()=>i]);var r=e.i(18050),o=e.i(72064),t=e.i(19455),a=e.i(46798),s=e.i(75157);let n={muted:"text-[var(--ds-muted)] hover:text-[var(--ds-text)]",danger:"text-red-600 hover:text-red-800 [&_svg]:!text-red-600 hover:[&_svg]:!text-red-800"};function i(e){let{icon:i,label:l,ariaLabel:d,tone:c="muted",disabled:u,className:b,iconClassName:x,onClick:f}=e;return(0,r.jsx)(a.TooltipProvider,{delayDuration:150,children:(0,r.jsxs)(a.Tooltip,{children:[(0,r.jsx)(a.TooltipTrigger,{asChild:!0,children:(0,r.jsx)(t.Button,{type:"button",variant:"plain",size:"icon",className:(0,s.cn)("icon-tooltip-btn","h-4 w-4 border-none p-0",n[c],b),disabled:u,"aria-label":null!=d?d:l,onClick:f,children:(0,r.jsx)(o.default,{name:i,size:16,className:x})})}),(0,r.jsx)(a.TooltipContent,{side:"bottom",align:"center",className:"",children:l})]})})}},24687,e=>{"use strict";e.s(["Textarea",()=>t]);var r=e.i(18050),o=e.i(75157);function t(e){let{className:t,...a}=e;return(0,r.jsx)("textarea",{"data-slot":"textarea",className:(0,o.cn)("flex min-h-20 w-full rounded-md border border-solid border-border bg-transparent px-3 py-2 text-sm outline-none transition-[color,box-shadow,border-color] duration-150 ease-in-out placeholder:text-muted-foreground hover:border-[var(--border-hover)] focus-visible:border-[var(--border-focus)] focus-visible:[box-shadow:var(--ring-focus-sm)] read-only:focus-visible:border-border read-only:focus-visible:[box-shadow:none] disabled:cursor-not-allowed disabled:opacity-50 disabled:focus-visible:border-border disabled:focus-visible:[box-shadow:none]",t),...a})}},20783,e=>{"use strict";e.s(["composeRefs",()=>t,"useComposedRefs",()=>a]);var r=e.i(71645);function o(e,r){if("function"==typeof e)return e(r);null!=e&&(e.current=r)}function t(){for(var e=arguments.length,r=Array(e),t=0;t<e;t++)r[t]=arguments[t];return e=>{let t=!1,a=r.map(r=>{let a=o(r,e);return t||"function"!=typeof a||(t=!0),a});if(t)return()=>{for(let e=0;e<a.length;e++){let t=a[e];"function"==typeof t?t():o(r[e],null)}}}}function a(){for(var e=arguments.length,o=Array(e),a=0;a<e;a++)o[a]=arguments[a];return r.useCallback(t(...o),o)}}]);
|