@gehennawu/dsh-service 1.9.2 → 1.9.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.en.md +14 -7
- package/README.md +14 -7
- package/client.js +1 -1
- package/index.js +260 -70
- package/package.json +1 -1
- package/quota-routes.js +10 -1
package/client.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
window.__ModuleLoader__.load({id:"@gehennawu/dsh-service",factory:e=>{var t={},a=t;Object.defineProperty(a,Symbol.toStringTag,{value:"Module"});const r=e("react"),n="dsh-service",s={years:[2025,2026],papers:{2025:"https://www.gov.cn/zhengce/zhengceku/202411/content_6986383.htm",2026:"https://www.gov.cn/zhengce/zhengceku/202511/content_7047091.htm"},offDays:{"2025-01-01":"new-year","2025-01-28":"spring-festival","2025-01-29":"spring-festival","2025-01-30":"spring-festival","2025-01-31":"spring-festival","2025-02-01":"spring-festival","2025-02-02":"spring-festival","2025-02-03":"spring-festival","2025-02-04":"spring-festival","2025-04-04":"qingming","2025-04-05":"qingming","2025-04-06":"qingming","2025-05-01":"labour-day","2025-05-02":"labour-day","2025-05-03":"labour-day","2025-05-04":"labour-day","2025-05-05":"labour-day","2025-05-31":"dragon-boat","2025-06-01":"dragon-boat","2025-06-02":"dragon-boat","2025-10-01":"mid-autumn","2025-10-02":"mid-autumn","2025-10-03":"mid-autumn","2025-10-04":"mid-autumn","2025-10-05":"mid-autumn","2025-10-06":"mid-autumn","2025-10-07":"mid-autumn","2025-10-08":"mid-autumn","2026-01-01":"new-year","2026-01-02":"new-year","2026-01-03":"new-year","2026-02-15":"spring-festival","2026-02-16":"spring-festival","2026-02-17":"spring-festival","2026-02-18":"spring-festival","2026-02-19":"spring-festival","2026-02-20":"spring-festival","2026-02-21":"spring-festival","2026-02-22":"spring-festival","2026-02-23":"spring-festival","2026-04-04":"qingming","2026-04-05":"qingming","2026-04-06":"qingming","2026-05-01":"labour-day","2026-05-02":"labour-day","2026-05-03":"labour-day","2026-05-04":"labour-day","2026-05-05":"labour-day","2026-06-19":"dragon-boat","2026-06-20":"dragon-boat","2026-06-21":"dragon-boat","2026-09-25":"mid-autumn","2026-09-26":"mid-autumn","2026-09-27":"mid-autumn","2026-10-01":"national-day","2026-10-02":"national-day","2026-10-03":"national-day","2026-10-04":"national-day","2026-10-05":"national-day","2026-10-06":"national-day","2026-10-07":"national-day"}},i={openai:{v:"-0.04 -0.145 24.08 24.08",m:'<path d="M9.205 8.658v-2.26c0-.19.072-.333.238-.428l4.543-2.616c.619-.357 1.356-.523 2.117-.523 2.854 0 4.662 2.212 4.662 4.566 0 .167 0 .357-.024.547l-4.71-2.759a.797.797 0 00-.856 0l-5.97 3.473zm10.609 8.8V12.06c0-.333-.143-.57-.429-.737l-5.97-3.473 1.95-1.118a.433.433 0 01.476 0l4.543 2.617c1.309.76 2.189 2.378 2.189 3.948 0 1.808-1.07 3.473-2.76 4.163zM7.802 12.703l-1.95-1.142c-.167-.095-.239-.238-.239-.428V5.899c0-2.545 1.95-4.472 4.591-4.472 1 0 1.927.333 2.712.928L8.23 5.067c-.285.166-.428.404-.428.737v6.898zM12 15.128l-2.795-1.57v-3.33L12 8.658l2.795 1.57v3.33L12 15.128zm1.796 7.23c-1 0-1.927-.332-2.712-.927l4.686-2.712c.285-.166.428-.404.428-.737v-6.898l1.974 1.142c.167.095.238.238.238.428v5.233c0 2.545-1.974 4.472-4.614 4.472zm-5.637-5.303l-4.544-2.617c-1.308-.761-2.188-2.378-2.188-3.948A4.482 4.482 0 014.21 6.327v5.423c0 .333.143.571.428.738l5.947 3.449-1.95 1.118a.432.432 0 01-.476 0zm-.262 3.9c-2.688 0-4.662-2.021-4.662-4.519 0-.19.024-.38.047-.57l4.686 2.71c.286.167.571.167.856 0l5.97-3.448v2.26c0 .19-.07.333-.237.428l-4.543 2.616c-.619.357-1.356.523-2.117.523zm5.899 2.83a5.947 5.947 0 005.827-4.756C22.287 18.339 24 15.84 24 13.296c0-1.665-.713-3.282-1.998-4.448.119-.5.19-.999.19-1.498 0-3.401-2.759-5.947-5.946-5.947-.642 0-1.26.095-1.88.31A5.962 5.962 0 0010.205 0a5.947 5.947 0 00-5.827 4.757C1.713 5.447 0 7.945 0 10.49c0 1.666.713 3.283 1.998 4.448-.119.5-.19 1-.19 1.499 0 3.401 2.759 5.946 5.946 5.946.642 0 1.26-.095 1.88-.309a5.96 5.96 0 004.162 1.713z"></path>',c:0},anthropic:{v:"-0.04 -0.285 24.08 24.08",m:'<path d="M13.827 3.52h3.603L24 20h-3.603l-6.57-16.48zm-7.258 0h3.767L16.906 20h-3.674l-1.343-3.461H5.017l-1.344 3.46H0L6.57 3.522zm4.132 9.959L8.453 7.687 6.205 13.48H10.7z"></path>',c:0},gemini:{v:"0.94 1.01 22.05 22.05",m:'<path d="M20.616 10.835a14.147 14.147 0 01-4.45-3.001 14.111 14.111 0 01-3.678-6.452.503.503 0 00-.975 0 14.134 14.134 0 01-3.679 6.452 14.155 14.155 0 01-4.45 3.001c-.65.28-1.318.505-2.002.678a.502.502 0 000 .975c.684.172 1.35.397 2.002.677a14.147 14.147 0 014.45 3.001 14.112 14.112 0 013.679 6.453.502.502 0 00.975 0c.172-.685.397-1.351.677-2.003a14.145 14.145 0 013.001-4.45 14.113 14.113 0 016.453-3.678.503.503 0 000-.975 13.245 13.245 0 01-2.003-.678z" fill="#3186FF"></path><path d="M20.616 10.835a14.147 14.147 0 01-4.45-3.001 14.111 14.111 0 01-3.678-6.452.503.503 0 00-.975 0 14.134 14.134 0 01-3.679 6.452 14.155 14.155 0 01-4.45 3.001c-.65.28-1.318.505-2.002.678a.502.502 0 000 .975c.684.172 1.35.397 2.002.677a14.147 14.147 0 014.45 3.001 14.112 14.112 0 013.679 6.453.502.502 0 00.975 0c.172-.685.397-1.351.677-2.003a14.145 14.145 0 013.001-4.45 14.113 14.113 0 016.453-3.678.503.503 0 000-.975 13.245 13.245 0 01-2.003-.678z" fill="url(#lobe-icons-gemini-0-_R_0_)"></path><path d="M20.616 10.835a14.147 14.147 0 01-4.45-3.001 14.111 14.111 0 01-3.678-6.452.503.503 0 00-.975 0 14.134 14.134 0 01-3.679 6.452 14.155 14.155 0 01-4.45 3.001c-.65.28-1.318.505-2.002.678a.502.502 0 000 .975c.684.172 1.35.397 2.002.677a14.147 14.147 0 014.45 3.001 14.112 14.112 0 013.679 6.453.502.502 0 00.975 0c.172-.685.397-1.351.677-2.003a14.145 14.145 0 013.001-4.45 14.113 14.113 0 016.453-3.678.503.503 0 000-.975 13.245 13.245 0 01-2.003-.678z" fill="url(#lobe-icons-gemini-1-_R_0_)"></path><path d="M20.616 10.835a14.147 14.147 0 01-4.45-3.001 14.111 14.111 0 01-3.678-6.452.503.503 0 00-.975 0 14.134 14.134 0 01-3.679 6.452 14.155 14.155 0 01-4.45 3.001c-.65.28-1.318.505-2.002.678a.502.502 0 000 .975c.684.172 1.35.397 2.002.677a14.147 14.147 0 014.45 3.001 14.112 14.112 0 013.679 6.453.502.502 0 00.975 0c.172-.685.397-1.351.677-2.003a14.145 14.145 0 013.001-4.45 14.113 14.113 0 016.453-3.678.503.503 0 000-.975 13.245 13.245 0 01-2.003-.678z" fill="url(#lobe-icons-gemini-2-_R_0_)"></path><defs><linearGradient gradientUnits="userSpaceOnUse" id="lobe-icons-gemini-0-_R_0_" x1="7" x2="11" y1="15.5" y2="12"><stop stop-color="#08B962"></stop><stop offset="1" stop-color="#08B962" stop-opacity="0"></stop></linearGradient><linearGradient gradientUnits="userSpaceOnUse" id="lobe-icons-gemini-1-_R_0_" x1="8" x2="11.5" y1="5.5" y2="11"><stop stop-color="#F94543"></stop><stop offset="1" stop-color="#F94543" stop-opacity="0"></stop></linearGradient><linearGradient gradientUnits="userSpaceOnUse" id="lobe-icons-gemini-2-_R_0_" x1="3.5" x2="17.5" y1="13.5" y2="12"><stop stop-color="#FABC12"></stop><stop offset=".46" stop-color="#FABC12" stop-opacity="0"></stop></linearGradient></defs>',c:1},vertexai:{v:"-0.04 -0.04 24.08 24.08",m:'<path d="M11.995 20.216a1.892 1.892 0 100 3.785 1.892 1.892 0 000-3.785zm0 2.806a.927.927 0 11.927-.914.914.914 0 01-.927.914z"></path><path clip-rule="evenodd" d="M21.687 14.144c.237.038.452.16.605.344a.978.978 0 01-.18 1.3l-8.24 6.082a1.892 1.892 0 00-1.147-1.508l8.28-6.08a.991.991 0 01.682-.138z"></path><path clip-rule="evenodd" d="M10.122 21.842l-8.217-6.066a.952.952 0 01-.206-1.287.978.978 0 011.287-.206l8.28 6.08a1.893 1.893 0 00-1.144 1.479z"></path><path d="M4.273 4.475a.978.978 0 01-.965-.965V1.09a.978.978 0 111.943 0v2.42a.978.978 0 01-.978.965zM4.247 13.034a.978.978 0 100-1.956.978.978 0 000 1.956zM4.247 10.19a.978.978 0 100-1.956.978.978 0 000 1.956zM4.247 7.332a.978.978 0 100-1.956.978.978 0 000 1.956z"></path><path d="M19.718 7.307a.978.978 0 01-.965-.979v-2.42a.965.965 0 011.93 0v2.42a.964.964 0 01-.965.979zM19.743 13.047a.978.978 0 100-1.956.978.978 0 000 1.956zM19.743 10.151a.978.978 0 100-1.956.978.978 0 000 1.956zM19.743 2.068a.978.978 0 100-1.956.978.978 0 000 1.956z"></path><path d="M11.995 15.917a.978.978 0 01-.965-.965v-2.459a.978.978 0 011.943 0v2.433a.976.976 0 01-.978.991zM11.995 18.762a.978.978 0 100-1.956.978.978 0 000 1.956zM11.995 10.64a.978.978 0 100-1.956.978.978 0 000 1.956zM11.995 7.783a.978.978 0 100-1.956.978.978 0 000 1.956z"></path><path d="M15.856 10.177a.978.978 0 01-.965-.965v-2.42a.977.977 0 011.702-.763.979.979 0 01.241.763v2.42a.978.978 0 01-.978.965zM15.869 4.913a.978.978 0 100-1.956.978.978 0 000 1.956zM15.869 15.853a.978.978 0 100-1.956.978.978 0 000 1.956zM15.869 12.996a.978.978 0 100-1.956.978.978 0 000 1.956z"></path><path d="M8.121 15.853a.978.978 0 100-1.956.978.978 0 000 1.956zM8.121 7.783a.978.978 0 100-1.956.978.978 0 000 1.956zM8.121 4.913a.978.978 0 100-1.957.978.978 0 000 1.957zM8.134 12.996a.978.978 0 01-.978-.94V9.611a.965.965 0 011.93 0v2.445a.966.966 0 01-.952.94z"></path>',c:0},xai:{v:"0.94 0.94 22.12 22.12",m:'<path d="M6.469 8.776L16.512 23h-4.464L2.005 8.776H6.47zm-.004 7.9l2.233 3.164L6.467 23H2l4.465-6.324zM22 2.582V23h-3.659V7.764L22 2.582zM22 1l-9.952 14.095-2.233-3.163L17.533 1H22z"></path>',c:0},mistral:{v:"-0.04 -0.075 24.08 24.08",m:'<path d="M3.428 3.4h3.429v3.428H3.428V3.4zm13.714 0h3.43v3.428h-3.43V3.4z" fill="gold"></path><path d="M3.428 6.828h6.857v3.429H3.429V6.828zm10.286 0h6.857v3.429h-6.857V6.828z" fill="#FFAF00"></path><path d="M3.428 10.258h17.144v3.428H3.428v-3.428z" fill="#FF8205"></path><path d="M3.428 13.686h3.429v3.428H3.428v-3.428zm6.858 0h3.429v3.428h-3.429v-3.428zm6.856 0h3.43v3.428h-3.43v-3.428z" fill="#FA500F"></path><path d="M0 17.114h10.286v3.429H0v-3.429zm13.714 0H24v3.429H13.714v-3.429z" fill="#E10500"></path>',c:1},deepseek:{v:"-0.04 -0.215 24.08 24.08",m:'<path d="M23.748 4.482c-.254-.124-.364.113-.512.234-.051.039-.094.09-.137.136-.372.397-.806.657-1.373.626-.829-.046-1.537.214-2.163.848-.133-.782-.575-1.248-1.247-1.548-.352-.156-.708-.311-.955-.65-.172-.241-.219-.51-.305-.774-.055-.16-.11-.323-.293-.35-.2-.031-.278.136-.356.276-.313.572-.434 1.202-.422 1.84.027 1.436.633 2.58 1.838 3.393.137.093.172.187.129.323-.082.28-.18.552-.266.833-.055.179-.137.217-.329.14a5.526 5.526 0 01-1.736-1.18c-.857-.828-1.631-1.742-2.597-2.458a11.365 11.365 0 00-.689-.471c-.985-.957.13-1.743.388-1.836.27-.098.093-.432-.779-.428-.872.004-1.67.295-2.687.684a3.055 3.055 0 01-.465.137 9.597 9.597 0 00-2.883-.102c-1.885.21-3.39 1.102-4.497 2.623C.082 8.606-.231 10.684.152 12.85c.403 2.284 1.569 4.175 3.36 5.653 1.858 1.533 3.997 2.284 6.438 2.14 1.482-.085 3.133-.284 4.994-1.86.47.234.962.327 1.78.397.63.059 1.236-.03 1.705-.128.735-.156.684-.837.419-.961-2.155-1.004-1.682-.595-2.113-.926 1.096-1.296 2.746-2.642 3.392-7.003.05-.347.007-.565 0-.845-.004-.17.035-.237.23-.256a4.173 4.173 0 001.545-.475c1.396-.763 1.96-2.015 2.093-3.517.02-.23-.004-.467-.247-.588zM11.581 18c-2.089-1.642-3.102-2.183-3.52-2.16-.392.024-.321.471-.235.763.09.288.207.486.371.739.114.167.192.416-.113.603-.673.416-1.842-.14-1.897-.167-1.361-.802-2.5-1.86-3.301-3.307-.774-1.393-1.224-2.887-1.298-4.482-.02-.386.093-.522.477-.592a4.696 4.696 0 011.529-.039c2.132.312 3.946 1.265 5.468 2.774.868.86 1.525 1.887 2.202 2.891.72 1.066 1.494 2.082 2.48 2.914.348.292.625.514.891.677-.802.09-2.14.11-3.054-.614zm1-6.44a.306.306 0 01.415-.287.302.302 0 01.2.288.306.306 0 01-.31.307.303.303 0 01-.304-.308zm3.11 1.596c-.2.081-.399.151-.59.16a1.245 1.245 0 01-.798-.254c-.274-.23-.47-.358-.552-.758a1.73 1.73 0 01.016-.588c.07-.327-.008-.537-.239-.727-.187-.156-.426-.199-.688-.199a.559.559 0 01-.254-.078c-.11-.054-.2-.19-.114-.358.028-.054.16-.186.192-.21.356-.202.767-.136 1.146.016.352.144.618.408 1.001.782.391.451.462.576.685.914.176.265.336.537.445.848.067.195-.019.354-.25.452z" fill="#4D6BFE"></path>',c:1,o:1.15},moonshot:{v:"-0.04 -0.04 24.08 24.08",m:'<path d="M1.052 16.916l9.539 2.552a21.007 21.007 0 00.06 2.033l5.956 1.593a11.997 11.997 0 01-5.586.865l-.18-.016-.044-.004-.084-.009-.094-.01a11.605 11.605 0 01-.157-.02l-.107-.014-.11-.016a11.962 11.962 0 01-.32-.051l-.042-.008-.075-.013-.107-.02-.07-.015-.093-.019-.075-.016-.095-.02-.097-.023-.094-.022-.068-.017-.088-.022-.09-.024-.095-.025-.082-.023-.109-.03-.062-.02-.084-.025-.093-.028-.105-.034-.058-.019-.08-.026-.09-.031-.066-.024a6.293 6.293 0 01-.044-.015l-.068-.025-.101-.037-.057-.022-.08-.03-.087-.035-.088-.035-.079-.032-.095-.04-.063-.028-.063-.027a5.655 5.655 0 01-.041-.018l-.066-.03-.103-.047-.052-.024-.096-.046-.062-.03-.084-.04-.086-.044-.093-.047-.052-.027-.103-.055-.057-.03-.058-.032a6.49 6.49 0 01-.046-.026l-.094-.053-.06-.034-.051-.03-.072-.041-.082-.05-.093-.056-.052-.032-.084-.053-.061-.039-.079-.05-.07-.047-.053-.035a7.785 7.785 0 01-.054-.036l-.044-.03-.044-.03a6.066 6.066 0 01-.04-.028l-.057-.04-.076-.054-.069-.05-.074-.054-.056-.042-.076-.057-.076-.059-.086-.067-.045-.035-.064-.052-.074-.06-.089-.073-.046-.039-.046-.039a7.516 7.516 0 01-.043-.037l-.045-.04-.061-.053-.07-.062-.068-.06-.062-.058-.067-.062-.053-.05-.088-.084a13.28 13.28 0 01-.099-.097l-.029-.028-.041-.042-.069-.07-.05-.051-.05-.053a6.457 6.457 0 01-.168-.179l-.08-.088-.062-.07-.071-.08-.042-.049-.053-.062-.058-.068-.046-.056a7.175 7.175 0 01-.027-.033l-.045-.055-.066-.082-.041-.052-.05-.064-.02-.025a11.99 11.99 0 01-1.44-2.402zm-1.02-5.794l11.353 3.037a20.468 20.468 0 00-.469 2.011l10.817 2.894a12.076 12.076 0 01-1.845 2.005L.657 15.923l-.016-.046-.035-.104a11.965 11.965 0 01-.05-.153l-.007-.023a11.896 11.896 0 01-.207-.741l-.03-.126-.018-.08-.021-.097-.018-.081-.018-.09-.017-.084-.018-.094c-.026-.141-.05-.283-.071-.426l-.017-.118-.011-.083-.013-.102a12.01 12.01 0 01-.019-.161l-.005-.047a12.12 12.12 0 01-.034-2.145zm1.593-5.15l11.948 3.196c-.368.605-.705 1.231-1.01 1.875l11.295 3.022c-.142.82-.368 1.612-.668 2.365l-11.55-3.09L.124 10.26l.015-.1.008-.049.01-.067.015-.087.018-.098c.026-.148.056-.295.088-.442l.028-.124.02-.085.024-.097c.022-.09.045-.18.07-.268l.028-.102.023-.083.03-.1.025-.082.03-.096.026-.082.031-.095a11.896 11.896 0 011.01-2.232zm4.442-4.4L17.352 4.59a20.77 20.77 0 00-1.688 1.721l7.823 2.093c.267.852.442 1.744.513 2.665L2.106 5.213l.045-.065.027-.04.04-.055.046-.065.055-.076.054-.072.064-.086.05-.065.057-.073.055-.07.06-.074.055-.069.065-.077.054-.066.066-.077.053-.06.072-.082.053-.06.067-.074.054-.058.073-.078.058-.06.063-.067.168-.17.1-.098.059-.056.076-.071a12.084 12.084 0 012.272-1.677zM12.017 0h.097l.082.001.069.001.054.002.068.002.046.001.076.003.047.002.06.003.054.002.087.005.105.007.144.011.088.007.044.004.077.008.082.008.047.005.102.012.05.006.108.014.081.01.042.006.065.01.207.032.07.012.065.011.14.026.092.018.11.022.046.01.075.016.041.01L14.7.3l.042.01.065.015.049.012.071.017.096.024.112.03.113.03.113.032.05.015.07.02.078.024.073.023.05.016.05.016.076.025.099.033.102.036.048.017.064.023.093.034.11.041.116.045.1.04.047.02.06.024.041.018.063.026.04.018.057.025.11.048.1.046.074.035.075.036.06.028.092.046.091.045.102.052.053.028.049.026.046.024.06.033.041.022.052.029.088.05.106.06.087.051.057.034.053.032.096.059.088.055.098.062.036.024.064.041.084.056.04.027.062.042.062.043.023.017c.054.037.108.075.161.114l.083.06.065.048.056.043.086.065.082.064.04.03.05.041.086.069.079.065.085.071c.712.6 1.353 1.283 1.909 2.031L7.222.994l.062-.027.065-.028.081-.034.086-.035c.113-.045.227-.09.341-.131l.096-.035.093-.033.084-.03.096-.031c.087-.03.176-.058.264-.085l.091-.027.086-.025.102-.03.085-.023.1-.026L9.04.37l.09-.023.091-.022.095-.022.09-.02.098-.021.091-.02.095-.018.092-.018.1-.018.091-.016.098-.017.092-.014.097-.015.092-.013.102-.013.091-.012.105-.012.09-.01.105-.01c.093-.01.186-.018.28-.024l.106-.008.09-.005.11-.006.093-.004.1-.004.097-.002.099-.002.197-.002z"></path>',c:0},kimi:{v:"-0.0667 -0.0667 40.1333 40.1333",m:'<rect width="40" height="40" rx="10" fill="#121316"/><path d="M31.6957 7.11414C32.8305 7.11414 33.7505 8.0341 33.7505 9.16893V9.16893C33.7505 10.3038 32.8305 11.2237 31.6957 11.2237L29.8826 11.2237C29.7491 11.2237 29.6409 11.1155 29.6409 10.982L29.6409 9.16893C29.6409 8.0341 30.5609 7.11414 31.6957 7.11414V7.11414Z" fill="#1783FF"/><path d="M20.1757 19.0798L27.9302 11.3864C28.0761 11.2413 27.9939 10.9498 27.8056 10.9498H23.633C23.5877 10.9498 23.5438 10.9683 23.5084 11.0038L15.1533 19.2911C15.023 19.4192 14.8304 19.305 14.8304 19.0998V11.1951C14.8304 11.0593 14.7411 10.9498 14.6321 10.9498H11.7569C11.6478 10.9498 11.5586 11.0593 11.5586 11.1951V28.2387C11.5586 28.3745 11.6478 28.484 11.7569 28.484H14.6321C14.7411 28.484 14.8304 28.3745 14.8304 28.2387V24.7661C14.8304 24.6921 14.8573 24.6211 14.904 24.5748L17.4945 22.0047C17.5568 21.943 17.6432 21.9337 17.7126 21.98L24.6414 27.0786C25.7759 27.8423 27.0436 28.3112 28.331 28.4501C28.4458 28.4624 28.5449 28.3483 28.5449 28.2048V24.9343C28.5449 24.8093 28.4698 24.7075 28.3693 24.6921C27.6115 24.5733 26.8722 24.2802 26.2037 23.8297L20.2054 19.487C20.0808 19.4037 20.0652 19.1893 20.1757 19.0798Z" fill="#FFFFFF"/>',c:1},minimax:{v:"-0.04 -0.04 24.08 24.08",m:'<defs><linearGradient id="lobe-icons-minimax-_R_0_" x1="0%" x2="100.182%" y1="50.057%" y2="50.057%"><stop offset="0%" stop-color="#E2167E"></stop><stop offset="100%" stop-color="#FE603C"></stop></linearGradient></defs><path d="M16.278 2c1.156 0 2.093.927 2.093 2.07v12.501a.74.74 0 00.744.709.74.74 0 00.743-.709V9.099a2.06 2.06 0 012.071-2.049A2.06 2.06 0 0124 9.1v6.561a.649.649 0 01-.652.645.649.649 0 01-.653-.645V9.1a.762.762 0 00-.766-.758.762.762 0 00-.766.758v7.472a2.037 2.037 0 01-2.048 2.026 2.037 2.037 0 01-2.048-2.026v-12.5a.785.785 0 00-.788-.753.785.785 0 00-.789.752l-.001 15.904A2.037 2.037 0 0113.441 22a2.037 2.037 0 01-2.048-2.026V18.04c0-.356.292-.645.652-.645.36 0 .652.289.652.645v1.934c0 .263.142.506.372.638.23.131.514.131.744 0a.734.734 0 00.372-.638V4.07c0-1.143.937-2.07 2.093-2.07zm-5.674 0c1.156 0 2.093.927 2.093 2.07v11.523a.648.648 0 01-.652.645.648.648 0 01-.652-.645V4.07a.785.785 0 00-.789-.78.785.785 0 00-.789.78v14.013a2.06 2.06 0 01-2.07 2.048 2.06 2.06 0 01-2.071-2.048V9.1a.762.762 0 00-.766-.758.762.762 0 00-.766.758v3.8a2.06 2.06 0 01-2.071 2.049A2.06 2.06 0 010 12.9v-1.378c0-.357.292-.646.652-.646.36 0 .653.29.653.646V12.9c0 .418.343.757.766.757s.766-.339.766-.757V9.099a2.06 2.06 0 012.07-2.048 2.06 2.06 0 012.071 2.048v8.984c0 .419.343.758.767.758.423 0 .766-.339.766-.758V4.07c0-1.143.937-2.07 2.093-2.07z" fill="url(#lobe-icons-minimax-_R_0_)" fill-rule="nonzero"></path>',c:1},zhipu:{v:"-0.04 -0.04 24.08 24.08",m:'<path d="M11.991 23.503a.24.24 0 00-.244.248.24.24 0 00.244.249.24.24 0 00.245-.249.24.24 0 00-.22-.247l-.025-.001zM9.671 5.365a1.697 1.697 0 011.099 2.132l-.071.172-.016.04-.018.054c-.07.16-.104.32-.104.498-.035.71.47 1.279 1.186 1.314h.366c1.309.053 2.338 1.173 2.286 2.523-.052 1.332-1.152 2.38-2.478 2.327h-.174c-.715.018-1.274.64-1.239 1.368 0 .124.018.23.053.337.209.373.54.658.96.8.75.23 1.517-.125 1.9-.782l.018-.035c.402-.64 1.17-.96 1.92-.711.854.284 1.378 1.226 1.099 2.167a1.661 1.661 0 01-2.077 1.102 1.711 1.711 0 01-.907-.711l-.017-.035c-.2-.323-.463-.58-.851-.711l-.056-.018a1.646 1.646 0 00-1.954.746 1.66 1.66 0 01-1.065.764 1.677 1.677 0 01-1.989-1.279c-.209-.906.332-1.83 1.257-2.043a1.51 1.51 0 01.296-.035h.018c.68-.071 1.151-.622 1.116-1.333a1.307 1.307 0 00-.227-.693 2.515 2.515 0 01-.366-1.403 2.39 2.39 0 01.366-1.208c.14-.195.21-.444.227-.693.018-.71-.506-1.261-1.186-1.332l-.07-.018a1.43 1.43 0 01-.299-.07l-.05-.019a1.7 1.7 0 01-1.047-2.114 1.68 1.68 0 012.094-1.101zm-5.575 10.11c.26-.264.639-.367.994-.27.355.096.633.379.728.74.095.362-.007.748-.267 1.013-.402.41-1.053.41-1.455 0a1.062 1.062 0 010-1.482zm14.845-.294c.359-.09.738.024.992.297.254.274.344.665.237 1.025-.107.36-.396.634-.756.718-.551.128-1.1-.22-1.23-.781a1.05 1.05 0 01.757-1.26zm-.064-4.39c.314.32.49.753.49 1.206 0 .452-.176.886-.49 1.206-.315.32-.74.5-1.185.5-.444 0-.87-.18-1.184-.5a1.727 1.727 0 010-2.412 1.654 1.654 0 012.369 0zm-11.243.163c.364.484.447 1.128.218 1.691a1.665 1.665 0 01-2.188.923c-.855-.36-1.26-1.358-.907-2.228a1.68 1.68 0 011.33-1.038c.593-.08 1.183.169 1.547.652zm11.545-4.221c.368 0 .708.2.892.524.184.324.184.724 0 1.048a1.026 1.026 0 01-.892.524c-.568 0-1.03-.47-1.03-1.048 0-.579.462-1.048 1.03-1.048zm-14.358 0c.368 0 .707.2.891.524.184.324.184.724 0 1.048a1.026 1.026 0 01-.891.524c-.569 0-1.03-.47-1.03-1.048 0-.579.461-1.048 1.03-1.048zm10.031-1.475c.925 0 1.675.764 1.675 1.706s-.75 1.705-1.675 1.705-1.674-.763-1.674-1.705c0-.942.75-1.706 1.674-1.706zm-2.626-.684c.362-.082.653-.356.761-.718a1.062 1.062 0 00-.238-1.028 1.017 1.017 0 00-.996-.294c-.547.14-.881.7-.752 1.257.13.558.675.907 1.225.783zm0 16.876c.359-.087.644-.36.75-.72a1.062 1.062 0 00-.237-1.019 1.018 1.018 0 00-.985-.301 1.037 1.037 0 00-.762.717c-.108.361-.017.754.239 1.028.245.263.606.377.953.305l.043-.01zM17.19 3.5a.631.631 0 00.628-.64c0-.355-.279-.64-.628-.64a.631.631 0 00-.628.64c0 .355.28.64.628.64zm-10.38 0a.631.631 0 00.628-.64c0-.355-.28-.64-.628-.64a.631.631 0 00-.628.64c0 .355.279.64.628.64zm-5.182 7.852a.631.631 0 00-.628.64c0 .354.28.639.628.639a.63.63 0 00.627-.606l.001-.034a.62.62 0 00-.628-.64zm5.182 9.13a.631.631 0 00-.628.64c0 .355.279.64.628.64a.631.631 0 00.628-.64c0-.355-.28-.64-.628-.64zm10.38.018a.631.631 0 00-.628.64c0 .355.28.64.628.64a.631.631 0 00.628-.64c0-.355-.279-.64-.628-.64zm5.182-9.148a.631.631 0 00-.628.64c0 .354.279.639.628.639a.631.631 0 00.628-.64c0-.355-.28-.64-.628-.64zm-.384-4.992a.24.24 0 00.244-.249.24.24 0 00-.244-.249.24.24 0 00-.244.249c0 .142.122.249.244.249zM11.991.497a.24.24 0 00.245-.248A.24.24 0 0011.99 0a.24.24 0 00-.244.249c0 .133.108.236.223.247l.021.001zM2.011 6.36a.24.24 0 00.245-.249.24.24 0 00-.244-.249.24.24 0 00-.244.249.24.24 0 00.244.249zm0 11.263a.24.24 0 00-.243.248.24.24 0 00.244.249.24.24 0 00.244-.249.252.252 0 00-.244-.248zm19.995-.018a.24.24 0 00-.245.248.24.24 0 00.245.25.24.24 0 00.244-.25.252.252 0 00-.244-.248z" fill="#3859FF" fill-rule="nonzero"></path>',c:1,o:1.2},xiaomi:{v:"-0.8533 -0.8533 513.7067 513.7067",m:'<path fill="#FF6900" d="M458.634 53.496C410.33 5.378 340.875 0 256 0c-84.982 0-154.542 5.44-202.826 53.688C4.897 101.916 0 171.364 0 256.249c0 84.899 4.897 154.368 53.194 202.613C101.475 507.117 171.027 512 256 512c84.974 0 154.514-4.884 202.795-53.139 48.294-48.254 53.205-117.714 53.205-202.613 0-84.72-4.964-154.243-53.366-202.479z"/><path fill="#FFF" d="M404.554 158.605c1.759 0 3.223 1.417 3.223 3.161v189.386c0 1.715-1.464 3.139-3.223 3.139H363.058c-1.781 0-3.228-1.424-3.228-3.139V161.766c0-1.743 1.446-3.161 3.228-3.161h41.496zM224.476 158.605c31.303 0 64.033 1.435 80.176 17.589 15.871 15.897 17.59 47.549 17.656 78.286v96.671c0 1.715-1.446 3.139-3.219 3.139h-41.49c-1.777 0-3.229-1.424-3.229-3.139V252.817c-.044-17.167-1.031-34.81-9.884-43.692-7.62-7.641-21.839-9.391-36.625-9.754h-75.21c-1.764 0-3.208 1.419-3.208 3.136v148.645c0 1.715-1.462 3.139-3.237 3.139H107.9c-1.774 0-3.201-1.424-3.201-3.139V161.766c0-1.743 1.426-3.161 3.201-3.161h116.576zm9.287 75.427c1.766 0 3.201 1.413 3.201 3.143v113.977c0 1.715-1.436 3.139-3.201 3.139h-43.584c-1.792 0-3.228-1.424-3.228-3.139V237.175c0-1.73 1.436-3.143 3.228-3.143h43.584z"/>',c:1},nvidia:{v:"1.99 0.975 22.05 22.05",m:'<path d="M10.212 8.976V7.62c.127-.01.256-.017.388-.021 3.596-.117 5.957 3.184 5.957 3.184s-2.548 3.647-5.282 3.647a3.227 3.227 0 01-1.063-.175v-4.109c1.4.174 1.681.812 2.523 2.258l1.873-1.627a4.905 4.905 0 00-3.67-1.846 6.594 6.594 0 00-.729.044m0-4.476v2.025c.13-.01.259-.019.388-.024 5.002-.174 8.261 4.226 8.261 4.226s-3.743 4.69-7.643 4.69c-.338 0-.675-.031-1.007-.092v1.25c.278.038.558.057.838.057 3.629 0 6.253-1.91 8.794-4.169.421.347 2.146 1.193 2.501 1.564-2.416 2.083-8.048 3.763-11.24 3.763-.308 0-.603-.02-.894-.048V19.5H24v-15H10.21zm0 9.756v1.068c-3.356-.616-4.287-4.21-4.287-4.21a7.173 7.173 0 014.287-2.138v1.172h-.005a3.182 3.182 0 00-2.502 1.178s.615 2.276 2.507 2.931m-5.961-3.3c1.436-1.935 3.604-3.148 5.961-3.336V6.523C5.81 6.887 2 10.723 2 10.723s2.158 6.427 8.21 7.015v-1.166C5.77 16 4.25 10.958 4.25 10.958h-.002z" fill="#74B71B" fill-rule="nonzero"></path>',c:1},huggingface:{v:"0.94 0.94 22.12 22.12",m:'<path d="M16.781 3.277c2.997 1.704 4.844 4.851 4.844 8.258 0 .995-.155 1.955-.443 2.857a1.332 1.332 0 011.125.4 1.41 1.41 0 01.2 1.723c.204.165.352.385.428.632l.017.062c.06.222.12.69-.2 1.166.244.37.279.836.093 1.236-.255.57-.893 1.018-2.128 1.5l-.202.078-.131.048c-.478.173-.89.295-1.061.345l-.086.024c-.89.243-1.808.375-2.732.394-1.32 0-2.3-.36-2.923-1.067a9.852 9.852 0 01-3.18.018C9.778 21.647 8.802 22 7.494 22a11.249 11.249 0 01-2.541-.343l-.221-.06-.273-.08a16.574 16.574 0 01-1.175-.405c-1.237-.483-1.875-.93-2.13-1.501-.186-.4-.151-.867.093-1.236a1.42 1.42 0 01-.2-1.166c.069-.273.226-.516.447-.694a1.41 1.41 0 01.2-1.722c.233-.248.557-.391.917-.407l.078-.001a9.385 9.385 0 01-.44-2.85c0-3.407 1.847-6.554 4.844-8.258a9.822 9.822 0 019.687 0zM4.188 14.758c.125.687 2.357 2.35 2.14 2.707-.19.315-.796-.239-.948-.386l-.041-.04-.168-.147c-.561-.479-2.304-1.9-2.74-1.432-.43.46.119.859 1.055 1.42l.784.467.136.083c1.045.643 1.12.84.95 1.113-.188.295-3.07-2.1-3.34-1.083-.27 1.011 2.942 1.304 2.744 2.006-.2.7-2.265-1.324-2.685-.537-.425.79 2.913 1.718 2.94 1.725l.16.04.175.042c1.227.284 3.565.65 4.435-.604.673-.973.64-1.709-.248-2.61l-.057-.057c-.945-.928-1.495-2.288-1.495-2.288l-.017-.058-.025-.072c-.082-.22-.284-.639-.63-.584-.46.073-.798 1.21.12 1.933l.05.038c.977.721-.195 1.21-.573.534l-.058-.104-.143-.25c-.463-.799-1.282-2.111-1.739-2.397-.532-.332-.907-.148-.782.541zm14.842-.541c-.533.335-1.563 2.074-1.94 2.751a.613.613 0 01-.687.302.436.436 0 01-.176-.098.303.303 0 01-.049-.06l-.014-.028-.008-.02-.007-.019-.003-.013-.003-.017a.289.289 0 01-.004-.048c0-.12.071-.266.25-.427.026-.024.054-.047.084-.07l.047-.036c.022-.016.043-.032.063-.049.883-.71.573-1.81.131-1.917l-.031-.006-.056-.004a.368.368 0 00-.062.006l-.028.005-.042.014-.039.017-.028.015-.028.019-.036.027-.023.02c-.173.158-.273.428-.31.542l-.016.054s-.53 1.309-1.439 2.234l-.054.054c-.365.358-.596.69-.702 1.018-.143.437-.066.868.21 1.353.055.097.117.195.187.296.882 1.275 3.282.876 4.494.59l.286-.07.25-.074c.276-.084.736-.233 1.2-.42l.188-.077.065-.028.064-.028.124-.056.081-.038c.529-.252.964-.543.994-.827l.001-.036a.299.299 0 00-.037-.139c-.094-.176-.271-.212-.491-.168l-.045.01c-.044.01-.09.024-.136.04l-.097.035-.054.022c-.559.23-1.238.705-1.607.745h.006a.452.452 0 01-.05.003h-.024l-.024-.003-.023-.005c-.068-.016-.116-.06-.14-.142a.22.22 0 01-.005-.1c.062-.345.958-.595 1.713-.91l.066-.028c.528-.224.97-.483.985-.832v-.04a.47.47 0 00-.016-.098c-.048-.18-.175-.251-.36-.251-.785 0-2.55 1.36-2.92 1.36-.025 0-.048-.007-.058-.024a.6.6 0 01-.046-.088c-.1-.238.068-.462 1.06-1.066l.209-.126c.538-.32 1.01-.588 1.341-.831.29-.212.475-.406.503-.6l.003-.028c.008-.113-.038-.227-.147-.344a.266.266 0 00-.07-.054l-.034-.015-.013-.005a.403.403 0 00-.13-.02c-.162 0-.369.07-.595.18-.637.313-1.431.952-1.826 1.285l-.249.215-.033.033c-.08.078-.288.27-.493.386l-.071.037-.041.019a.535.535 0 01-.122.036h.005a.346.346 0 01-.031.003l.01-.001-.013.001c-.079.005-.145-.021-.19-.095a.113.113 0 01-.014-.065c.027-.465 2.034-1.991 2.152-2.642l.009-.048c.1-.65-.271-.817-.791-.493zM11.938 2.984c-4.798 0-8.688 3.829-8.688 8.55 0 .692.083 1.364.24 2.008l.008-.009c.252-.298.612-.46 1.017-.46.355.008.699.117.993.312.22.14.465.384.715.694.261-.372.69-.598 1.15-.605.852 0 1.367.728 1.562 1.383l.047.105.06.127c.192.396.595 1.139 1.143 1.68 1.06 1.04 1.324 2.115.8 3.266a8.865 8.865 0 002.024-.014c-.505-1.12-.26-2.17.74-3.186l.066-.066c.695-.684 1.157-1.69 1.252-1.912.195-.655.708-1.383 1.56-1.383.46.007.889.233 1.15.605.25-.31.495-.553.718-.694a1.87 1.87 0 01.99-.312c.357 0 .682.126.925.36.14-.61.215-1.245.215-1.898 0-4.722-3.89-8.55-8.687-8.55zm1.857 8.926l.439-.212c.553-.264.89-.383.89.152 0 1.093-.771 3.208-3.155 3.262h-.184c-2.325-.052-3.116-2.06-3.156-3.175l-.001-.087c0-1.107 1.452.586 3.25.586.716 0 1.379-.272 1.917-.526zm4.017-3.143c.45 0 .813.358.813.8 0 .441-.364.8-.813.8a.806.806 0 01-.812-.8c0-.442.364-.8.812-.8zm-11.624 0c.448 0 .812.358.812.8 0 .441-.364.8-.812.8a.806.806 0 01-.813-.8c0-.442.364-.8.813-.8zm7.79-.841c.32-.384.846-.54 1.33-.394.483.146.83.564.878 1.06.048.495-.212.97-.659 1.203-.322.168-.447-.477-.767-.585l.002-.003c-.287-.098-.772.362-.925.079a1.215 1.215 0 01.14-1.36zm-4.323 0c.322.384.377.92.14 1.36-.152.283-.64-.177-.925-.079l.003.003c-.108.036-.194.134-.273.24l-.118.165c-.11.15-.22.262-.377.18a1.226 1.226 0 01-.658-1.204c.048-.495.395-.913.878-1.059a1.262 1.262 0 011.33.394z"></path>',c:0},qwen:{v:"0.94 0.94 22.12 22.12",m:'<path d="M12.604 1.34c.393.69.784 1.382 1.174 2.075a.18.18 0 00.157.091h5.552c.174 0 .322.11.446.327l1.454 2.57c.19.337.24.478.024.837-.26.43-.513.864-.76 1.3l-.367.658c-.106.196-.223.28-.04.512l2.652 4.637c.172.301.111.494-.043.77-.437.785-.882 1.564-1.335 2.34-.159.272-.352.375-.68.37-.777-.016-1.552-.01-2.327.016a.099.099 0 00-.081.05 575.097 575.097 0 01-2.705 4.74c-.169.293-.38.363-.725.364-.997.003-2.002.004-3.017.002a.537.537 0 01-.465-.271l-1.335-2.323a.09.09 0 00-.083-.049H4.982c-.285.03-.553-.001-.805-.092l-1.603-2.77a.543.543 0 01-.002-.54l1.207-2.12a.198.198 0 000-.197 550.951 550.951 0 01-1.875-3.272l-.79-1.395c-.16-.31-.173-.496.095-.965.465-.813.927-1.625 1.387-2.436.132-.234.304-.334.584-.335a338.3 338.3 0 012.589-.001.124.124 0 00.107-.063l2.806-4.895a.488.488 0 01.422-.246c.524-.001 1.053 0 1.583-.006L11.704 1c.341-.003.724.032.9.34zm-3.432.403a.06.06 0 00-.052.03L6.254 6.788a.157.157 0 01-.135.078H3.253c-.056 0-.07.025-.041.074l5.81 10.156c.025.042.013.062-.034.063l-2.795.015a.218.218 0 00-.2.116l-1.32 2.31c-.044.078-.021.118.068.118l5.716.008c.046 0 .08.02.104.061l1.403 2.454c.046.081.092.082.139 0l5.006-8.76.783-1.382a.055.055 0 01.096 0l1.424 2.53a.122.122 0 00.107.062l2.763-.02a.04.04 0 00.035-.02.041.041 0 000-.04l-2.9-5.086a.108.108 0 010-.113l.293-.507 1.12-1.977c.024-.041.012-.062-.035-.062H9.2c-.059 0-.073-.026-.043-.077l1.434-2.505a.107.107 0 000-.114L9.225 1.774a.06.06 0 00-.053-.031zm6.29 8.02c.046 0 .058.02.034.06l-.832 1.465-2.613 4.585a.056.056 0 01-.05.029.058.058 0 01-.05-.029L8.498 9.841c-.02-.034-.01-.052.028-.054l.216-.012 6.722-.012z" fill="url(#lobe-icons-qwen-_R_0_)" fill-rule="nonzero"></path><defs><linearGradient id="lobe-icons-qwen-_R_0_" x1="0%" x2="100%" y1="0%" y2="0%"><stop offset="0%" stop-color="#6336E7" stop-opacity=".84"></stop><stop offset="100%" stop-color="#6F69F7" stop-opacity=".84"></stop></linearGradient></defs>',c:1},openrouter:{v:"-0.04 0.275 24.08 24.08",m:'<path d="M18.654 3.87a5.087 5.087 0 110 10.174L23.7 19.09c.64.641.187 1.737-.72 1.737H8.48a8.479 8.479 0 010-16.958h10.175zM8.479 7.26a5.087 5.087 0 100 10.176 5.087 5.087 0 000-10.175z"></path>',c:0},vercel:{v:"-0.04 -1.65 24.08 24.08",m:'<path d="M12 0l12 20.785H0L12 0z"></path>',c:0},cloudflare:{v:"-0.04 0.45 24.08 24.08",m:'<path d="M16.493 17.4c.135-.52.08-.983-.161-1.338-.215-.328-.592-.519-1.05-.519l-8.663-.109a.148.148 0 01-.135-.082c-.027-.054-.027-.109-.027-.163.027-.082.108-.164.189-.164l8.744-.11c1.05-.054 2.153-.9 2.556-1.937l.511-1.31c.027-.055.027-.11.027-.164C17.92 8.91 15.66 7 12.942 7c-2.503 0-4.628 1.638-5.381 3.903a2.432 2.432 0 00-1.803-.491c-1.21.109-2.153 1.092-2.287 2.32-.027.328 0 .628.054.9C1.56 13.688 0 15.326 0 17.319c0 .19.027.355.027.545 0 .082.08.137.161.137h15.983c.08 0 .188-.055.215-.164l.107-.437" fill="#F38020"></path><path d="M19.238 11.75h-.242c-.054 0-.108.054-.135.109l-.35 1.2c-.134.52-.08.983.162 1.338.215.328.592.518 1.05.518l1.855.11c.054 0 .108.027.135.082.027.054.027.109.027.163-.027.082-.108.164-.188.164l-1.91.11c-1.05.054-2.153.9-2.557 1.937l-.134.355c-.027.055.026.137.107.137h6.592c.081 0 .162-.055.162-.137.107-.41.188-.846.188-1.31-.027-2.62-2.153-4.777-4.762-4.777" fill="#FCAD32"></path>',c:1},bedrock:{v:"1.465 0.94 22.12 22.12",m:'<path d="M13.05 15.513h3.08c.214 0 .389.177.389.394v1.82a1.704 1.704 0 011.296 1.661c0 .943-.755 1.708-1.685 1.708-.931 0-1.686-.765-1.686-1.708 0-.807.554-1.484 1.297-1.662v-1.425h-2.69v4.663a.395.395 0 01-.188.338l-2.69 1.641a.385.385 0 01-.405-.002l-4.926-3.086a.395.395 0 01-.185-.336V16.3L2.196 14.87A.395.395 0 012 14.555L2 14.528V9.406c0-.14.073-.27.192-.34l2.465-1.462V4.448c0-.129.062-.249.165-.322l.021-.014L9.77 1.058a.385.385 0 01.407 0l2.69 1.675a.395.395 0 01.185.336V7.6h3.856V5.683a1.704 1.704 0 01-1.296-1.662c0-.943.755-1.708 1.685-1.708.931 0 1.685.765 1.685 1.708 0 .807-.553 1.484-1.296 1.662v2.311a.391.391 0 01-.389.394h-4.245v1.806h6.624a1.69 1.69 0 011.64-1.313c.93 0 1.685.764 1.685 1.707 0 .943-.754 1.708-1.685 1.708a1.69 1.69 0 01-1.64-1.314H13.05v1.937h4.953l.915 1.18a1.66 1.66 0 01.84-.227c.931 0 1.685.764 1.685 1.707 0 .943-.754 1.708-1.685 1.708-.93 0-1.685-.765-1.685-1.708 0-.346.102-.668.276-.937l-.724-.935H13.05v1.806zM9.973 1.856L7.93 3.122V6.09h-.778V3.604L5.435 4.669v2.945l2.11 1.36L9.712 7.61V5.334h.778V7.83c0 .136-.07.263-.184.335L7.963 9.638v2.081l1.422 1.009-.446.646-1.406-.998-1.53 1.005-.423-.66 1.605-1.055v-1.99L5.038 8.29l-2.26 1.34v1.676l1.972-1.189.398.677-2.37 1.429V14.3l2.166 1.258 2.27-1.368.397.677-2.176 1.311V19.3l1.876 1.175 2.365-1.426.398.678-2.017 1.216 1.918 1.201 2.298-1.403v-5.78l-4.758 2.893-.4-.675 5.158-3.136V3.289L9.972 1.856zM16.13 18.47a.913.913 0 00-.908.92c0 .507.406.918.908.918a.913.913 0 00.907-.919.913.913 0 00-.907-.92zm3.63-3.81a.913.913 0 00-.908.92c0 .508.406.92.907.92a.913.913 0 00.908-.92.913.913 0 00-.908-.92zm1.555-4.99a.913.913 0 00-.908.92c0 .507.407.918.908.918a.913.913 0 00.907-.919.913.913 0 00-.907-.92zM17.296 3.1a.913.913 0 00-.907.92c0 .508.406.92.907.92a.913.913 0 00.908-.92.913.913 0 00-.908-.92z"></path>',c:0},azure:{v:"0.38 0.135 23.66 23.66",m:'<path d="M18.397 15.296H7.4a.51.51 0 00-.347.882l7.066 6.595c.206.192.477.298.758.298h6.226l-2.706-7.775z" fill-opacity=".75"></path><path d="M8.295.857c-.477 0-.9.304-1.053.756L.495 21.605a1.11 1.11 0 001.052 1.466h5.43c.477 0 .9-.304 1.053-.755l1.341-3.975-2.318-2.163a.51.51 0 01.347-.882h3L15.271.857H8.295z" fill-opacity=".5"></path><path d="M17.193 1.613a1.11 1.11 0 00-1.052-.756h-7.81.035c.477 0 .9.304 1.052.756l6.748 19.992a1.11 1.11 0 01-1.052 1.466h-.12 7.895a1.11 1.11 0 001.052-1.466L17.193 1.613z"></path>',c:0},together:{v:"-0.04 0.625 24.15 24.15",m:'<path d="M23.197 4.503A6 6 0 0015 2.307a5.973 5.973 0 00-2.995 4.933l5.996.008v.515h-5.996c.039.937.298 1.87.8 2.74a6 6 0 1010.39-6z"></path><path d="M.805 4.5A6 6 0 003 12.697a5.972 5.972 0 005.77.127L5.779 7.627l.446-.257 2.997 5.192A6 6 0 10.804 4.5z"></path><path d="M12 23.894a6 6 0 005.999-6c0-2.13-1.1-3.996-2.775-5.06l-3.005 5.189-.444-.258 2.997-5.192A6 6 0 1012 23.894z"></path>',c:0},fireworks:{v:"-0.04 -1.02 24.08 24.08",m:'<path clip-rule="evenodd" d="M14.8 5l-2.801 6.795L9.195 5H7.397l3.072 7.428a1.64 1.64 0 003.038.002L16.598 5H14.8zm1.196 10.352l5.124-5.244-.699-1.669-5.596 5.739a1.664 1.664 0 00-.343 1.807 1.642 1.642 0 001.516 1.012L16 17l8-.02-.699-1.669-7.303.041h-.002zM2.88 10.104l.699-1.669 5.596 5.739c.468.479.603 1.189.343 1.807a1.643 1.643 0 01-1.516 1.012l-8-.018-.002.002.699-1.669 7.303.042-5.122-5.246z"></path>',c:0},baseten:{v:"-0.04 -0.04 24.08 24.08",m:'<path d="M2.316 4.8h14.682v4.8H7.31a.302.302 0 00-.308.3v4.2c0 .171.14.3.308.3h9.688v4.8h-4.686a.302.302 0 00-.308.3v4.2c0 .171.141.3.308.3h4.378a.297.297 0 00.308-.3v-4.5h4.694a.302.302 0 00.308-.3v-4.2c0-.171-.14-.3-.308-.3h-4.694V9.6h4.694A.302.302 0 0022 9.3V5.1c0-.171-.14-.3-.308-.3h-4.694V.3c0-.171-.14-.3-.308-.3H2.316A.31.31 0 002 .3v4.2c0 .171.14.3.316.3z"></path>',c:0},cerebras:{v:"0.87 1.29 21.42 21.42",m:'<path clip-rule="evenodd" d="M14.121 2.701a9.299 9.299 0 000 18.598V22.7c-5.91 0-10.7-4.791-10.7-10.701S8.21 1.299 14.12 1.299V2.7zm4.752 3.677A7.353 7.353 0 109.42 17.643l-.901 1.074a8.754 8.754 0 01-1.08-12.334 8.755 8.755 0 0112.335-1.08l-.901 1.075zm-2.255.844a5.407 5.407 0 00-5.048 9.563l-.656 1.24a6.81 6.81 0 016.358-12.043l-.654 1.24zM14.12 8.539a3.46 3.46 0 100 6.922v1.402a4.863 4.863 0 010-9.726v1.402z" fill="#F15A29" fill-rule="evenodd"></path><path d="M15.407 10.836a2.24 2.24 0 00-.51-.409 1.084 1.084 0 00-.544-.152c-.255 0-.483.047-.684.14a1.58 1.58 0 00-.84.912c-.074.203-.11.416-.11.631 0 .218.036.43.11.631a1.594 1.594 0 00.84.913c.2.093.43.14.684.14.216 0 .417-.046.602-.135.188-.09.35-.225.475-.392l.928 1.006c-.14.14-.3.261-.482.363a3.367 3.367 0 01-1.083.38c-.17.026-.317.04-.44.04a3.315 3.315 0 01-1.182-.21 2.825 2.825 0 01-.961-.597 2.816 2.816 0 01-.644-.929 2.987 2.987 0 01-.238-1.21c0-.444.08-.847.238-1.21.15-.35.368-.666.643-.929.278-.261.605-.464.962-.596a3.315 3.315 0 011.182-.21c.355 0 .712.068 1.072.204.361.138.685.36.944.649l-.962.97z"></path>',c:1},groq:{v:"1.99 1.99 20.02 20.02",m:'<path d="M12.036 2c-3.853-.035-7 3-7.036 6.781-.035 3.782 3.055 6.872 6.908 6.907h2.42v-2.566h-2.292c-2.407.028-4.38-1.866-4.408-4.23-.029-2.362 1.901-4.298 4.308-4.326h.1c2.407 0 4.358 1.915 4.365 4.278v6.305c0 2.342-1.944 4.25-4.323 4.279a4.375 4.375 0 01-3.033-1.252l-1.851 1.818A7 7 0 0012.029 22h.092c3.803-.056 6.858-3.083 6.879-6.816v-6.5C18.907 4.963 15.817 2 12.036 2z"></path>',c:0},github:{v:"-0.04 -0.53 24.08 24.08",m:'<path d="M12 0c6.63 0 12 5.276 12 11.79-.001 5.067-3.29 9.567-8.175 11.187-.6.118-.825-.25-.825-.56 0-.398.015-1.665.015-3.242 0-1.105-.375-1.813-.81-2.181 2.67-.295 5.475-1.297 5.475-5.822 0-1.297-.465-2.344-1.23-3.169.12-.295.54-1.503-.12-3.125 0 0-1.005-.324-3.3 1.209a11.32 11.32 0 00-3-.398c-1.02 0-2.04.133-3 .398-2.295-1.518-3.3-1.209-3.3-1.209-.66 1.622-.24 2.83-.12 3.125-.765.825-1.23 1.887-1.23 3.169 0 4.51 2.79 5.527 5.46 5.822-.345.294-.66.81-.765 1.577-.69.31-2.415.81-3.495-.973-.225-.354-.9-1.223-1.845-1.209-1.005.015-.405.56.015.781.51.28 1.095 1.327 1.23 1.666.24.663 1.02 1.93 4.035 1.385 0 .988.015 1.916.015 2.196 0 .31-.225.664-.825.56C3.303 21.374-.003 16.867 0 11.791 0 5.276 5.37 0 12 0z"></path>',c:0},opencode:{v:"1.99 1.99 20.02 20.02",m:'<path d="M16 6H8v12h8V6zm4 16H4V2h16v20z"></path>',c:0},commandcode:{v:"-11.5383 -11.5383 23.0767 23.0767",m:'<g fill="none" stroke="#000" stroke-width="1.85"><path d="M-7.6 -4.6H7.6M-7.6 4.6H7.6M-4.6 -7.6V7.6M4.6 -7.6V7.6"/><circle cx="-7.6" cy="-7.6" r="3"/><circle cx="7.6" cy="-7.6" r="3"/><circle cx="-7.6" cy="7.6" r="3"/><circle cx="7.6" cy="7.6" r="3"/></g>',c:0,o:.9},cliproxy:{v:"-18.9525 -18.9525 37.905 37.905",m:'<path fill="none" stroke="currentColor" stroke-width="1.9" stroke-linejoin="round" d="M 0 -18 Q -5.8 -5.8 -18 0 Q -5.8 5.8 0 18 Q 5.8 5.8 18 0 Q 5.8 -5.8 0 -18 Z"/><g transform="scale(-0.835, 0.835) translate(-12, -12)"><path fill="currentColor" d="M9.205 8.658v-2.26c0-.19.072-.333.238-.428l4.543-2.616c.619-.357 1.356-.523 2.117-.523 2.854 0 4.662 2.212 4.662 4.566 0 .167 0 .357-.024.547l-4.71-2.759a.797.797 0 00-.856 0l-5.97 3.473zm10.609 8.8V12.06c0-.333-.143-.57-.429-.737l-5.97-3.473 1.95-1.118a.433.433 0 01.476 0l4.543 2.617c1.309.76 2.189 2.378 2.189 3.948 0 1.808-1.07 3.473-2.76 4.163zM7.802 12.703l-1.95-1.142c-.167-.095-.239-.238-.239-.428V5.899c0-2.545 1.95-4.472 4.591-4.472 1 0 1.927.333 2.712.928L8.23 5.067c-.285.166-.428.404-.428.737v6.898zM12 15.128l-2.795-1.57v-3.33L12 8.658l2.795 1.57v3.33L12 15.128zm1.796 7.23c-1 0-1.927-.332-2.712-.927l4.686-2.712c.285-.166.428-.404.428-.737v-6.898l1.974 1.142c.167.095.238.238.238.428v5.233c0 2.545-1.974 4.472-4.614 4.472zm-5.637-5.303l-4.544-2.617c-1.308-.761-2.188-2.378-2.188-3.948A4.482 4.482 0 014.21 6.327v5.423c0 .333.143.571.428.738l5.947 3.449-1.95 1.118a.432.432 0 01-.476 0zm-.262 3.9c-2.688 0-4.662-2.021-4.662-4.519 0-.19.024-.38.047-.57l4.686 2.71c.286.167.571.167.856 0l5.97-3.448v2.26c0 .19-.07.333-.237.428l-4.543 2.616c-.619.357-1.356.523-2.117.523zm5.899 2.83a5.947 5.947 0 005.827-4.756C22.287 18.339 24 15.84 24 13.296c0-1.665-.713-3.282-1.998-4.448.119-.5.19-.999.19-1.498 0-3.401-2.759-5.947-5.946-5.947-.642 0-1.26.095-1.88.31A5.962 5.962 0 0010.205 0a5.947 5.947 0 00-5.827 4.757C1.713 5.447 0 7.945 0 10.49c0 1.666.713 3.283 1.998 4.448-.119.5-.19 1-.19 1.499 0 3.401 2.759 5.946 5.946 5.946.642 0 1.26-.095 1.88-.309a5.96 5.96 0 004.162 1.713z"/></g>',c:0},ollama:{v:"0.94 0.94 22.12 22.12",m:'<path d="M7.905 1.09c.216.085.411.225.588.41.295.306.544.744.734 1.263.191.522.315 1.1.362 1.68a5.054 5.054 0 012.049-.636l.051-.004c.87-.07 1.73.087 2.48.474.101.053.2.11.297.17.05-.569.172-1.134.36-1.644.19-.52.439-.957.733-1.264a1.67 1.67 0 01.589-.41c.257-.1.53-.118.796-.042.401.114.745.368 1.016.737.248.337.434.769.561 1.287.23.934.27 2.163.115 3.645l.053.04.026.019c.757.576 1.284 1.397 1.563 2.35.435 1.487.216 3.155-.534 4.088l-.018.021.002.003c.417.762.67 1.567.724 2.4l.002.03c.064 1.065-.2 2.137-.814 3.19l-.007.01.01.024c.472 1.157.62 2.322.438 3.486l-.006.039a.651.651 0 01-.747.536.648.648 0 01-.54-.742c.167-1.033.01-2.069-.48-3.123a.643.643 0 01.04-.617l.004-.006c.604-.924.854-1.83.8-2.72-.046-.779-.325-1.544-.8-2.273a.644.644 0 01.18-.886l.009-.006c.243-.159.467-.565.58-1.12a4.229 4.229 0 00-.095-1.974c-.205-.7-.58-1.284-1.105-1.683-.595-.454-1.383-.673-2.38-.61a.653.653 0 01-.632-.371c-.314-.665-.772-1.141-1.343-1.436a3.288 3.288 0 00-1.772-.332c-1.245.099-2.343.801-2.67 1.686a.652.652 0 01-.61.425c-1.067.002-1.893.252-2.497.703-.522.39-.878.935-1.066 1.588a4.07 4.07 0 00-.068 1.886c.112.558.331 1.02.582 1.269l.008.007c.212.207.257.53.109.785-.36.622-.629 1.549-.673 2.44-.05 1.018.186 1.902.719 2.536l.016.019a.643.643 0 01.095.69c-.576 1.236-.753 2.252-.562 3.052a.652.652 0 01-1.269.298c-.243-1.018-.078-2.184.473-3.498l.014-.035-.008-.012a4.339 4.339 0 01-.598-1.309l-.005-.019a5.764 5.764 0 01-.177-1.785c.044-.91.278-1.842.622-2.59l.012-.026-.002-.002c-.293-.418-.51-.953-.63-1.545l-.005-.024a5.352 5.352 0 01.093-2.49c.262-.915.777-1.701 1.536-2.269.06-.045.123-.09.186-.132-.159-1.493-.119-2.73.112-3.67.127-.518.314-.95.562-1.287.27-.368.614-.622 1.015-.737.266-.076.54-.059.797.042zm4.116 9.09c.936 0 1.8.313 2.446.855.63.527 1.005 1.235 1.005 1.94 0 .888-.406 1.58-1.133 2.022-.62.375-1.451.557-2.403.557-1.009 0-1.871-.259-2.493-.734-.617-.47-.963-1.13-.963-1.845 0-.707.398-1.417 1.056-1.946.668-.537 1.55-.849 2.485-.849zm0 .896a3.07 3.07 0 00-1.916.65c-.461.37-.722.835-.722 1.25 0 .428.21.829.61 1.134.455.347 1.124.548 1.943.548.799 0 1.473-.147 1.932-.426.463-.28.7-.686.7-1.257 0-.423-.246-.89-.683-1.256-.484-.405-1.14-.643-1.864-.643zm.662 1.21l.004.004c.12.151.095.37-.056.49l-.292.23v.446a.375.375 0 01-.376.373.375.375 0 01-.376-.373v-.46l-.271-.218a.347.347 0 01-.052-.49.353.353 0 01.494-.051l.215.172.22-.174a.353.353 0 01.49.051zm-5.04-1.919c.478 0 .867.39.867.871a.87.87 0 01-.868.871.87.87 0 01-.867-.87.87.87 0 01.867-.872zm8.706 0c.48 0 .868.39.868.871a.87.87 0 01-.868.871.87.87 0 01-.867-.87.87.87 0 01.867-.872zM7.44 2.3l-.003.002a.659.659 0 00-.285.238l-.005.006c-.138.189-.258.467-.348.832-.17.692-.216 1.631-.124 2.782.43-.128.899-.208 1.404-.237l.01-.001.019-.034c.046-.082.095-.161.148-.239.123-.771.022-1.692-.253-2.444-.134-.364-.297-.65-.453-.813a.628.628 0 00-.107-.09L7.44 2.3zm9.174.04l-.002.001a.628.628 0 00-.107.09c-.156.163-.32.45-.453.814-.29.794-.387 1.776-.23 2.572l.058.097.008.014h.03a5.184 5.184 0 011.466.212c.086-1.124.038-2.043-.128-2.722-.09-.365-.21-.643-.349-.832l-.004-.006a.659.659 0 00-.285-.239h-.004z"></path>',c:0},vllm:{v:"-0.355 -0.04 23.1 23.1",m:'<path d="M0 4.973h9.324V23L0 4.973z"></path><path d="M13.986 4.351L22.378 0l-6.216 23H9.324l4.662-18.649z"></path>',c:0},lmstudio:{v:"-0.04 -0.32 24.08 24.08",m:'<path d="M2.84 2a1.273 1.273 0 100 2.547h14.107a1.273 1.273 0 100-2.547H2.84zM7.935 5.33a1.273 1.273 0 000 2.548H22.04a1.274 1.274 0 000-2.547H7.935zM3.624 9.935c0-.704.57-1.274 1.274-1.274h14.106a1.274 1.274 0 010 2.547H4.898c-.703 0-1.274-.57-1.274-1.273zM1.273 12.188a1.273 1.273 0 100 2.547H15.38a1.274 1.274 0 000-2.547H1.273zM3.624 16.792c0-.704.57-1.274 1.274-1.274h14.106a1.273 1.273 0 110 2.547H4.898c-.703 0-1.274-.57-1.274-1.273zM13.029 18.849a1.273 1.273 0 100 2.547h9.698a1.273 1.273 0 100-2.547h-9.698z" fill-opacity=".3"></path><path d="M2.84 2a1.273 1.273 0 100 2.547h10.287a1.274 1.274 0 000-2.547H2.84zM7.935 5.33a1.273 1.273 0 000 2.548H18.22a1.274 1.274 0 000-2.547H7.935zM3.624 9.935c0-.704.57-1.274 1.274-1.274h10.286a1.273 1.273 0 010 2.547H4.898c-.703 0-1.274-.57-1.274-1.273zM1.273 12.188a1.273 1.273 0 100 2.547H11.56a1.274 1.274 0 000-2.547H1.273zM3.624 16.792c0-.704.57-1.274 1.274-1.274h10.286a1.273 1.273 0 110 2.547H4.898c-.703 0-1.274-.57-1.274-1.273zM13.029 18.849a1.273 1.273 0 100 2.547h5.78a1.273 1.273 0 100-2.547h-5.78z"></path>',c:0},perplexity:{v:"-0.04 -0.04 24.08 24.08",m:'<path d="M19.785 0v7.272H22.5V17.62h-2.935V24l-7.037-6.194v6.145h-1.091v-6.152L4.392 24v-6.465H1.5V7.188h2.884V0l7.053 6.494V.19h1.09v6.49L19.786 0zm-7.257 9.044v7.319l5.946 5.234V14.44l-5.946-5.397zm-1.099-.08l-5.946 5.398v7.235l5.946-5.234V8.965zm8.136 7.58h1.844V8.349H13.46l6.105 5.54v2.655zm-8.982-8.28H2.59v8.195h1.8v-2.576l6.192-5.62zM5.475 2.476v4.71h5.115l-5.115-4.71zm13.219 0l-5.115 4.71h5.115v-4.71z"></path>',c:0},cohere:{v:"0.94 0.905 22.12 22.12",m:'<path clip-rule="evenodd" d="M8.128 14.099c.592 0 1.77-.033 3.398-.703 1.897-.781 5.672-2.2 8.395-3.656 1.905-1.018 2.74-2.366 2.74-4.18A4.56 4.56 0 0018.1 1H7.549A6.55 6.55 0 001 7.55c0 3.617 2.745 6.549 7.128 6.549z"></path><path clip-rule="evenodd" d="M9.912 18.61a4.387 4.387 0 012.705-4.052l3.323-1.38c3.361-1.394 7.06 1.076 7.06 4.715a5.104 5.104 0 01-5.105 5.104l-3.597-.001a4.386 4.386 0 01-4.386-4.387z"></path><path d="M4.776 14.962A3.775 3.775 0 001 18.738v.489a3.776 3.776 0 007.551 0v-.49a3.775 3.775 0 00-3.775-3.775z"></path>',c:0},ai21:{v:"-0.04 0.45 23.1 23.1",m:'<path d="M6.47 17l-.367-1.189H2.718L2.35 17H0l3.398-9.789h2.026L8.864 17H6.47zm-2.052-6.993l-1.17 4.028H5.56l-1.142-4.028zm4.707-2.796h2.23V17h-2.23V7.211zM11.955 15c.1-.483.277-.946.524-1.37.214-.359.482-.68.795-.951.32-.273.658-.52 1.013-.741.28-.168.54-.33.781-.483.222-.14.433-.296.632-.468.172-.148.317-.325.428-.525.107-.199.16-.423.157-.65 0-.392-.104-.674-.313-.846a1.176 1.176 0 00-.775-.259 1.207 1.207 0 00-.863.329c-.231.219-.347.585-.347 1.098H11.8a3.387 3.387 0 01.224-1.245c.146-.377.371-.716.66-.993.306-.29.667-.514 1.06-.657A4.04 4.04 0 0115.183 7c.42-.002.84.057 1.244.175.376.107.73.287 1.04.531.305.246.55.562.714.923.185.419.275.875.265 1.335.005.39-.084.774-.259 1.12-.167.328-.38.63-.632.894-.246.259-.517.49-.808.693-.29.2-.554.37-.789.51-.326.224-.596.417-.809.58a3.872 3.872 0 00-.51.455 1.229 1.229 0 00-.265.434 1.633 1.633 0 00-.074.517h4.078V17h-6.606a9.24 9.24 0 01.183-2zM18.8 8.93a5.05 5.05 0 001.135-.105c.25-.049.484-.156.686-.314.163-.139.28-.324.34-.532.068-.25.1-.51.095-.77H23V17h-2.243v-6.475H18.8V8.93z"></path>',c:0},voyage:{v:"0.45 -0.04 24.08 24.08",m:'<path d="M5.407 0v.066a.974.974 0 00-.048.245c-.011.11-.016.208-.016.295 0 .339.043.715.128 1.13.097.405.274.912.531 1.524l7.125 16.366L20.011 3.39c.161-.404.333-.846.515-1.327.182-.48.273-.966.273-1.458a1.406 1.406 0 00-.096-.54V0H24v.066c-.204.207-.45.578-.74 1.114-.29.535-.606 1.195-.949 1.982L13.095 24h-1.287L3.075 3.965c-.204-.47-.418-.923-.644-1.36-.214-.437-.418-.83-.61-1.18-.194-.36-.365-.66-.515-.9A5.666 5.666 0 001 .064V0h4.407z"></path>',c:0},deepinfra:{v:"-0.04 -0.04 24.08 24.08",m:'<path d="M3.294 7.821A2.297 2.297 0 011 5.527a2.297 2.297 0 012.294-2.295A2.297 2.297 0 015.59 5.527 2.297 2.297 0 013.294 7.82zm0-3.688a1.396 1.396 0 000 2.79 1.396 1.396 0 000-2.79zM3.294 14.293A2.297 2.297 0 011 11.998a2.297 2.297 0 012.294-2.294 2.297 2.297 0 012.295 2.294 2.297 2.297 0 01-2.295 2.295zm0-3.688a1.395 1.395 0 000 2.788 1.395 1.395 0 100-2.788zM3.294 20.761A2.297 2.297 0 011 18.467a2.297 2.297 0 012.294-2.295 2.297 2.297 0 012.295 2.295 2.297 2.297 0 01-2.295 2.294zm0-3.688a1.396 1.396 0 000 2.79 1.396 1.396 0 000-2.79zM20.738 7.821a2.297 2.297 0 01-2.295-2.294 2.297 2.297 0 012.294-2.295 2.297 2.297 0 012.295 2.295 2.297 2.297 0 01-2.294 2.294zm0-3.688a1.396 1.396 0 101.395 1.395c0-.77-.626-1.395-1.395-1.395zM20.738 14.293a2.297 2.297 0 01-2.295-2.295 2.297 2.297 0 012.294-2.294 2.297 2.297 0 012.295 2.294 2.297 2.297 0 01-2.294 2.295zm0-3.688c-.769 0-1.395.625-1.395 1.393a1.396 1.396 0 002.79 0c0-.77-.626-1.393-1.395-1.393zM20.738 20.761a2.297 2.297 0 01-2.295-2.294 2.297 2.297 0 012.294-2.295 2.297 2.297 0 012.295 2.295 2.297 2.297 0 01-2.294 2.294zm0-3.688a1.396 1.396 0 101.395 1.395c0-.77-.626-1.395-1.395-1.395zM12.016 11.057a2.297 2.297 0 01-2.294-2.294 2.297 2.297 0 012.294-2.295 2.297 2.297 0 012.295 2.295 2.297 2.297 0 01-2.295 2.294zm0-3.688a1.396 1.396 0 101.395 1.395c0-.77-.625-1.395-1.395-1.395zM12.017 4.589a2.297 2.297 0 01-2.295-2.295A2.297 2.297 0 0112.017 0a2.297 2.297 0 012.294 2.294 2.297 2.297 0 01-2.294 2.295zm0-3.688a1.396 1.396 0 101.395 1.395c0-.77-.626-1.395-1.395-1.395zM12.017 17.529a2.297 2.297 0 01-2.295-2.295 2.297 2.297 0 012.295-2.294 2.297 2.297 0 012.294 2.294 2.297 2.297 0 01-2.294 2.295zm0-3.688a1.396 1.396 0 101.395 1.395c0-.77-.626-1.395-1.395-1.395zM12.016 24a2.297 2.297 0 01-2.294-2.295 2.297 2.297 0 012.294-2.294 2.297 2.297 0 012.295 2.294A2.297 2.297 0 0112.016 24zm0-3.688a1.396 1.396 0 101.395 1.395c0-.77-.625-1.395-1.395-1.395z"></path><path d="M8.363 8.222a.742.742 0 01-.277-.053l-1.494-.596a.75.75 0 11.557-1.392l1.493.595a.75.75 0 01-.278 1.446h-.001zM8.363 14.566a.743.743 0 01-.277-.053l-1.494-.595a.75.75 0 11.557-1.393l1.493.596a.75.75 0 01-.278 1.445h-.001zM17.124 11.397a.741.741 0 01-.277-.054l-1.493-.595a.75.75 0 11.555-1.392l1.493.595a.75.75 0 01-.278 1.446zM17.124 5.05a.744.744 0 01-.277-.054L15.354 4.4a.75.75 0 01.555-1.392l1.493.596a.75.75 0 01-.278 1.445zM17.124 17.739a.743.743 0 01-.277-.053l-1.494-.596a.75.75 0 11.556-1.392l1.493.596a.75.75 0 01-.278 1.445zM6.91 17.966a.75.75 0 01-.279-1.445l1.494-.595a.749.749 0 11.556 1.392l-1.493.595a.743.743 0 01-.277.053H6.91zM6.91 11.66a.75.75 0 01-.279-1.446l1.494-.595a.75.75 0 01.556 1.392l-1.493.595a.743.743 0 01-.277.053H6.91zM6.91 5.033a.75.75 0 01-.279-1.446l1.494-.595a.75.75 0 01.556 1.392l-1.493.596a.744.744 0 01-.277.053H6.91zM8.363 21.364a.743.743 0 01-.277-.053l-1.494-.596a.75.75 0 01.555-1.392l1.494.595a.75.75 0 01-.278 1.446zM15.63 8.223a.75.75 0 01-.278-1.447l1.494-.595a.75.75 0 01.556 1.393l-1.494.595a.744.744 0 01-.276.054h-.002zM15.63 14.567a.75.75 0 01-.278-1.446l1.494-.596a.75.75 0 01.556 1.394l-1.494.595a.743.743 0 01-.276.053h-.002zM15.63 21.363a.749.749 0 01-.278-1.445l1.494-.595a.75.75 0 11.555 1.392l-1.494.595a.741.741 0 01-.277.053z"></path>',c:0},sambanova:{v:"0.94 0.94 22.12 22.12",m:'<path d="M23 23h-1.223V8.028c0-3.118-2.568-5.806-5.744-5.806H8.027c-3.176 0-5.744 2.565-5.744 5.686 0 3.119 2.568 5.684 5.744 5.684h.794c1.346 0 2.445 1.1 2.445 2.444 0 1.346-1.1 2.446-2.445 2.446H1v-1.223h7.761c.671 0 1.223-.551 1.223-1.16 0-.67-.552-1.16-1.223-1.16h-.794C4.177 14.872 1 11.756 1 7.909 1 4.058 4.176 1 8.027 1h8.066C19.88 1 23 4.239 23 8.028V23z"></path><path d="M8.884 12.672c1.71.06 3.361 1.588 3.361 3.422 0 1.833-1.528 3.421-3.421 3.421H1v1.223h7.761c2.568 0 4.705-2.077 4.705-4.644 0-.672-.123-1.283-.43-1.894-.245-.551-.67-1.1-1.099-1.528-.489-.429-1.039-.734-1.65-.977-.525-.175-1.048-.193-1.594-.212-.218-.008-.441-.016-.669-.034-.428 0-1.406-.245-1.956-.61a3.369 3.369 0 01-1.223-1.406c-.183-.489-.305-.977-.305-1.528A3.417 3.417 0 017.96 4.482h8.066c1.895 0 3.422 1.65 3.422 3.483v15.032h1.223V8.027c0-2.568-2.077-4.768-4.645-4.768h-8c-2.568 0-4.705 2.077-4.705 4.646 0 .67.123 1.282.43 1.894a4.45 4.45 0 001.099 1.528c.429.428 1.039.734 1.588.976.306.123.611.183.976.246.857.06 1.406.123 1.466.123h.003z"></path><path d="M1 23h7.761v-.003c3.85 0 7.03-3.116 7.09-7.026 0-3.79-3.117-6.906-6.967-6.906H8.09c-.672 0-1.222-.552-1.222-1.16 0-.608.487-1.16 1.159-1.16h8.069c.608 0 1.159.611 1.159 1.283v14.97h1.223V8.024c0-1.345-1.1-2.505-2.445-2.505H7.967a2.451 2.451 0 00-2.445 2.445 2.45 2.45 0 002.445 2.445h.794c3.176 0 5.744 2.568 5.744 5.684s-2.568 5.684-5.744 5.684H1V23z"></path>',c:0},novita:{v:"-0.04 -0.46 24.08 24.08",m:'<path clip-rule="evenodd" d="M9.167 4.17v5.665L0 19.003h9.167v-5.666l5.666 5.666H24L9.167 4.17z"></path>',c:0},hyperbolic:{v:"-0.04 -0.04 24.08 24.08",m:'<path d="M.193 19.503a2.413 2.413 0 00-.186.925c0 1.317 1.112 2.518 2.95 3.437a1.337 1.337 0 001.838-.738l2.049-4.93c.359-.857.642-1.745.846-2.652-3.795.637-6.656 2.092-7.448 3.872l-.032.076-.017.01zm7.49-11.047a15.981 15.981 0 00-.846-2.653L4.79.873a1.34 1.34 0 00-1.84-.738C1.112 1.054 0 2.256 0 3.573c0 .317.064.631.186.924v.01l.032.077c.81 1.78 3.67 3.234 7.466 3.872zM21.049.136c1.838.918 2.95 2.12 2.95 3.436a2.454 2.454 0 01-.196.925l-.027.063c-.785 1.792-3.653 3.254-7.46 3.896.204-.907.487-1.795.846-2.653L19.21.873a1.337 1.337 0 011.839-.738zm-4.722 15.409c.201.906.48 1.793.837 2.65l2.048 4.932a1.338 1.338 0 001.838.738c1.839-.92 2.951-2.12 2.951-3.437a2.446 2.446 0 00-.186-.925l-.027-.062c-.782-1.792-3.66-3.256-7.46-3.896zm-.129-6.04c2.695-.415 4.935-1.223 6.48-2.278L22.24 8.28a9.755 9.755 0 000 7.437l.435 1.048c-1.547-1.055-3.787-1.855-6.479-2.275l-.07-.01A27.196 27.196 0 0012 14.172c-1.377-.002-2.752.1-4.114.307l-.071.01c-2.693.413-4.933 1.222-6.48 2.277l.437-1.05a9.755 9.755 0 000-7.437l-.437-1.052c1.54 1.06 3.78 1.863 6.473 2.278l.071.01c2.734.407 5.513.407 8.246 0l.071-.01z" fill="#594CE9"></path>',c:1},targon:{v:"0.7604 0.6875 24.0625 24.0625",m:'<path clip-rule="evenodd" d="M20.297.7H5.289A4.496 4.496 0 00.793 5.195v15.007a4.496 4.496 0 004.496 4.496h15.008a4.496 4.496 0 004.496-4.496V5.196A4.497 4.497 0 0020.297.699zm-.518 5.134a.03.03 0 01.036-.01.03.03 0 01.018.024c.005.04.009.08.01.12.012.61.015 1.221.01 1.832a4.442 4.442 0 01-.547 2.138 4.162 4.162 0 01-2.277 1.882c-.34.12-.691.189-1.053.205-3.392.004-6.784.004-10.177 0-.071-.004-.149-.04-.159-.11a.156.156 0 01-.001-.014c-.03-1.067.317-1.988 1.042-2.764a3.855 3.855 0 012.43-1.208c2.016-.016 4.033-.025 6.05-.026.484-.025.963-.09 1.437-.195a5.856 5.856 0 001.737-.632c.208-.11.409-.233.6-.368.205-.156.394-.33.566-.524.094-.116.186-.233.278-.35zm.023 6.28c-.006-.042-.056-.05-.08-.016a4.68 4.68 0 01-.199.252 4.758 4.758 0 01-1.098.887 7.493 7.493 0 01-3.343.89l-5.907.05a2.735 2.735 0 00-.687.078 3.83 3.83 0 00-.76.293 4.08 4.08 0 00-1.536 1.398 4.007 4.007 0 00-.605 2.117c.002.037.01.074.021.11.022.048.06.074.113.076 3.417.004 6.834.004 10.25 0a7.12 7.12 0 00.327-.031 4.264 4.264 0 001.627-.627 4.071 4.071 0 001.761-2.498c.094-.425.137-.855.132-1.29 0-.563-.005-1.127-.016-1.69z"></path>',c:0},parasail:{v:"-0.04 -0.04 24.08 24.08",m:'<path d="M0 15.852c4.5 0 8.147 3.648 8.147 8.148H0v-8.148z"></path><path clip-rule="evenodd" d="M0 7.688v.018C9 7.706 16.294 15 16.294 24h.019l-.018-.036c3.33-.2 8.864-2.447 7.49-9.58A19.95 19.95 0 009.61.213C2.482-1.155.235 4.374.036 7.704L0 7.688z"></path>',c:0},lambda:{v:"1.99 1.99 20.02 20.02",m:'<path d="M2 2h20v20H2V2zm1.768 18.237h16.459V3.761H3.768v16.476zm3.515-14.91l3.479 6.176-3.871 7.154h2.493l2.58-4.883 2.747 4.883h2.54L9.82 5.324l-2.538.002z"></path>',c:0},fal:{v:"-0.04 -0.04 24.08 24.08",m:'<path clip-rule="evenodd" d="M15.477 0c.415 0 .749.338.788.752a7.775 7.775 0 006.985 6.984c.413.04.752.373.752.788v6.952c0 .415-.338.748-.752.788a7.775 7.775 0 00-6.985 6.984c-.04.414-.373.752-.788.752H8.525c-.416 0-.749-.338-.789-.752a7.775 7.775 0 00-6.984-6.984c-.414-.04-.752-.373-.752-.788V8.524c0-.415.338-.748.752-.788A7.775 7.775 0 007.736.752C7.776.338 8.11 0 8.526 0h6.95zM4.819 11.98a7.226 7.226 0 007.223 7.23 7.226 7.226 0 007.223-7.23c0-3.994-3.234-7.23-7.223-7.23a7.227 7.227 0 00-7.223 7.23z" fill="#EC0648" fill-rule="evenodd"></path>',c:1},replicate:{v:"1.99 1.99 20.02 20.02",m:'<path d="M22 10.552v2.26h-7.932V22H11.54V10.552H22zM22 2v2.264H4.528V22H2V2h20zm0 4.276V8.54H9.296V22H6.768V6.276H22z"></path>',c:0},midjourney:{v:"-0.04 -0.04 24.08 24.08",m:'<path d="M22.369 17.676c-1.387 1.259-3.17 2.378-5.332 3.417.044.03.086.057.13.083l.018.01.019.012c.216.123.42.184.641.184.222 0 .426-.061.642-.184l.018-.011.019-.011c.14-.084.266-.178.492-.366l.178-.148c.279-.232.426-.342.625-.456.304-.174.612-.266.949-.266.337 0 .645.092.949.266l.023.014c.188.109.334.219.602.442l.178.148c.221.184.346.278.483.36l.028.017.018.01c.21.12.407.181.62.185h.022a.31.31 0 110 .618c-.337 0-.645-.092-.95-.266a3.137 3.137 0 01-.09-.054l-.022-.014-.022-.013-.02-.014a5.356 5.356 0 01-.49-.377l-.159-.132a3.836 3.836 0 00-.483-.36l-.027-.017-.019-.01a1.256 1.256 0 00-.641-.185c-.222 0-.426.061-.641.184l-.02.011-.018.011c-.14.084-.266.178-.492.366l-.158.132a5.125 5.125 0 01-.51.39l-.022.014-.022.014-.09.054a1.868 1.868 0 01-.95.266c-.337 0-.644-.092-.949-.266a3.137 3.137 0 01-.09-.054l-.022-.014-.022-.013-.026-.017a4.881 4.881 0 01-.425-.325.308.308 0 01-.12-.1l-.098-.081a3.836 3.836 0 00-.483-.36l-.027-.017-.019-.01a1.256 1.256 0 00-.641-.185c-.222 0-.426.061-.642.184l-.018.011-.019.011c-.14.084-.266.178-.492.366l-.158.132a5.125 5.125 0 01-.51.39l-.023.014-.022.014-.09.054A1.868 1.868 0 0112 22c-.337 0-.645-.092-.949-.266a3.137 3.137 0 01-.09-.054l-.022-.014-.022-.013-.021-.014a5.356 5.356 0 01-.49-.377l-.158-.132a3.836 3.836 0 00-.483-.36l-.028-.017-.018-.01a1.256 1.256 0 00-.642-.185c-.221 0-.425.061-.641.184l-.019.011-.018.011c-.141.084-.266.178-.492.366l-.158.132a5.125 5.125 0 01-.511.39l-.022.014-.022.014-.09.054a1.868 1.868 0 01-.986.264c-.746-.09-1.319-.38-1.89-.866l-.035-.03c-.047-.041-.118-.106-.192-.174l-.196-.181-.107-.1-.011-.01a1.531 1.531 0 00-.336-.253.313.313 0 00-.095-.03h-.005c-.119.022-.238.059-.361.11a.308.308 0 01-.077.061l-.008.005a.309.309 0 01-.126.034 5.66 5.66 0 00-.774.518l-.416.324-.055.043a6.542 6.542 0 01-.324.236c-.305.207-.552.315-.8.315a.31.31 0 01-.01-.618h.01c.09 0 .235-.062.438-.198l.04-.027c.077-.054.163-.117.27-.199l.385-.301.06-.047c.268-.206.506-.373.73-.505l-.633-1.21a.309.309 0 01.254-.451l20.287-1.305a.309.309 0 01.228.537zm-1.118.14L2.369 19.03l.423.809c.128-.045.256-.078.388-.1a.31.31 0 01.052-.005c.132 0 .26.032.386.093.153.073.294.179.483.35l.016.015.092.086.144.134.097.089c.065.06.125.114.16.144.485.418.948.658 1.554.736h.011a1.25 1.25 0 00.6-.172l.021-.011.019-.011.018-.011c.141-.084.266-.178.492-.366l.178-.148c.279-.232.426-.342.625-.456.305-.174.612-.266.95-.266.336 0 .644.092.948.266l.023.014c.188.109.335.219.603.442l.177.148c.222.184.346.278.484.36l.027.017.019.01c.215.124.42.185.641.185.222 0 .426-.061.641-.184l.019-.011.018-.011c.141-.084.267-.178.493-.366l.177-.148c.28-.232.427-.342.626-.456.304-.174.612-.266.949-.266.337 0 .644.092.949.266l.025.015c.187.109.334.22.603.443 1.867-.878 3.448-1.811 4.73-2.832l.02-.016zM3.653 2.026C6.073 3.06 8.69 4.941 10.8 7.258c2.46 2.7 4.109 5.828 4.637 9.149a.31.31 0 01-.421.335c-2.348-.945-4.54-1.258-6.59-1.02-1.739.2-3.337.792-4.816 1.703-.294.182-.62-.182-.405-.454 1.856-2.355 2.581-4.99 2.343-7.794-.195-2.292-1.031-4.61-2.284-6.709a.31.31 0 01.388-.442zM10.04 4.45c1.778.543 3.892 2.102 5.782 4.243 1.984 2.248 3.552 4.934 4.347 7.582a.31.31 0 01-.401.38l-.022-.01-.386-.154a10.594 10.594 0 00-.291-.112l-.016-.006c-.68-.247-1.199-.291-1.944-.101a.31.31 0 01-.375-.218C15.378 11.123 13.073 7.276 9.775 5c-.291-.201-.072-.653.266-.55zM4.273 2.996l.008.015c1.028 1.94 1.708 4.031 1.885 6.113.213 2.513-.31 4.906-1.673 7.092l-.02.031.003-.001c1.198-.581 2.47-.969 3.825-1.132l.055-.006c1.981-.23 4.083.029 6.309.837l.066.025-.007-.039c-.593-2.95-2.108-5.737-4.31-8.179l-.07-.078c-1.785-1.96-3.944-3.6-6.014-4.65l-.057-.028zm7.92 3.238l.048.048c2.237 2.295 3.885 5.431 4.974 9.191l.038.132.022-.004c.71-.133 1.284-.063 1.963.18l.027.01.066.024.046.018-.025-.073c-.811-2.307-2.208-4.62-3.936-6.594l-.058-.065c-1.02-1.155-2.103-2.132-3.15-2.856l-.015-.011z"></path>',c:0},stability:{v:"0.94 0.94 22.12 22.12",m:'<path d="M7.223 21c4.252 0 7.018-2.22 7.018-5.56 0-2.59-1.682-4.236-4.69-4.918l-1.93-.571c-1.694-.375-2.683-.825-2.45-1.975.194-.957.773-1.497 2.122-1.497 4.285 0 5.873 1.497 5.873 1.497v-3.6S11.62 3 7.293 3C3.213 3 1 5.07 1 8.273c0 2.59 1.534 4.097 4.645 4.812l.334.083c.473.144 1.112.335 1.916.572 1.59.375 1.999.773 1.999 1.966 0 1.09-1.15 1.71-2.67 1.71C2.841 17.416 1 15.231 1 15.231v3.989S2.152 21 7.223 21z"></path><path d="M20.374 20.73c1.505 0 2.626-1.073 2.626-2.526 0-1.484-1.089-2.526-2.626-2.526-1.505 0-2.594 1.042-2.594 2.526 0 1.484 1.089 2.526 2.594 2.526z"></path>',c:0},suno:{v:"-0.04 -0.04 24.08 24.08",m:'<path d="M16.5 0C20.642 0 24 5.373 24 12h-9c0 6.627-3.358 12-7.5 12C3.358 24 0 18.627 0 12h9c0-6.627 3.358-12 7.5-12z"></path>',c:0},elevenlabs:{v:"-0.04 -0.04 24.08 24.08",m:'<path d="M5 0h5v24H5V0zM14 0h5v24h-5V0z"></path>',c:0},fishaudio:{v:"-0.04 0.45 24.08 24.08",m:'<path d="M23.556 12.189c.244 0 .444.126.444.28v.951c0 .154-.2.28-.444.28s-.444-.126-.444-.28v-.952c0-.153.2-.279.444-.279zm-1.764.372c.244 0 .444.126.444.28v2.095c0 .153-.2.279-.444.279-.245 0-.444-.126-.444-.28V12.84c0-.153.2-.28.444-.28zm-1.765.434c.244 0 .444.125.444.279v2.355c0 .154-.2.28-.444.28s-.444-.126-.444-.28v-2.355c0-.154.2-.28.444-.28zm-1.764.359c.244 0 .444.125.444.279v2.33c0 .153-.2.279-.444.279s-.444-.126-.444-.28v-2.33c0-.153.2-.278.444-.278zm-1.765.316c.245 0 .444.126.444.28v2.017c0 .154-.2.28-.444.28s-.444-.126-.444-.28V13.95c0-.154.2-.28.444-.28zm-1.755 1.287c.244 0 .444.125.444.28v.64c0 .153-.2.278-.444.278s-.444-.125-.444-.279v-.64c0-.154.2-.28.444-.28z" opacity=".35"></path><path d="M23.556 9.63c.244 0 .444.125.444.279v1.575c0 .154-.2.28-.444.28s-.444-.126-.444-.28V9.909c0-.154.2-.28.444-.28zm-1.764-1.058c.244 0 .444.125.444.28v2.81c0 .153-.2.278-.444.278-.245 0-.444-.125-.444-.279v-2.81c0-.154.2-.28.444-.28zm-1.765-.398c.244 0 .444.126.444.28v3.667c0 .153-.2.28-.444.28s-.444-.127-.444-.28V8.453c0-.153.2-.28.444-.28zM18.263 8c.244 0 .444.126.444.28v4.29c0 .154-.2.28-.444.28s-.444-.126-.444-.28V8.28c0-.154.2-.28.444-.28zm-1.765.109c.245 0 .444.126.444.28v4.355c0 .154-.2.28-.444.28s-.444-.126-.444-.28V8.388c0-.153.2-.28.444-.28zm-1.755.273c.244 0 .444.125.444.28v5.434c0 .153-.2.28-.444.28s-.444-.126-.444-.28V8.66c0-.154.2-.28.444-.28zm-1.801.463c.244 0 .444.125.444.279v6.162c0 .154-.2.28-.444.28s-.444-.126-.444-.28V9.124c0-.154.2-.28.444-.28zm-1.764.784c.244 0 .444.126.444.28v5.928c0 .154-.2.28-.444.28-.245 0-.444-.126-.444-.28V9.909c0-.154.2-.28.444-.28zm-1.765 1.022c.245 0 .444.126.444.28v5.161c0 .154-.2.28-.444.28s-.444-.126-.444-.28V10.93c0-.154.2-.28.444-.28zm-1.764.706c.244 0 .444.126.444.28v5.084c0 .153-.2.279-.444.279s-.444-.126-.444-.28v-5.083c0-.154.2-.28.444-.28zm-1.756.585c.245 0 .444.126.444.28v2.705c0 .154-.2.28-.444.28s-.444-.126-.444-.28v-2.706c0-.153.2-.279.444-.279zM4.076 9.304c.244 0 .444.126.444.28v3.771c0 .154-.2.28-.444.28s-.444-.126-.444-.28V9.584c0-.154.2-.28.444-.28zm-1.814.247c.244 0 .443.126.443.28v1.16c0 .153-.2.279-.443.279-.245 0-.444-.126-.444-.28V9.83c0-.153.2-.279.444-.279zM.444 9.395c.244 0 .444.126.444.28v.523c0 .153-.2.279-.444.279S0 10.351 0 10.197v-.522c0-.154.2-.28.444-.28zm5.45-.442c.244 0 .443.126.443.28v.392c0 .154-.2.28-.444.28s-.444-.126-.444-.28v-.393c0-.154.2-.28.444-.28z"></path>',c:0},assemblyai:{v:"-0.04 -0.145 24.08 24.08",m:'<path d="M10.595 1.5a3.695 3.695 0 00-3.444 2.355L0 22.26h5.432l5.629-14.486h.002a.96.96 0 011.782 0h.75V4.835h-1.393L13.498 1.5h-2.902z"></path><path d="M7.151 3.855a3.695 3.695 0 013.26-2.35l-.002-.005H13.405c1.524 0 2.893.936 3.444 2.355L24 22.26h-5.525L11.54 4.413a2.528 2.528 0 00-4.609.006l.22-.564z"></path>',c:0},siliconcloud:{v:"-0.04 0.205 24.08 24.08",m:'<path clip-rule="evenodd" d="M22.956 6.521H12.522c-.577 0-1.044.468-1.044 1.044v3.13c0 .577-.466 1.044-1.043 1.044H1.044c-.577 0-1.044.467-1.044 1.044v4.174C0 17.533.467 18 1.044 18h10.434c.577 0 1.044-.467 1.044-1.043v-3.13c0-.578.466-1.044 1.043-1.044h9.391c.577 0 1.044-.467 1.044-1.044V7.565c0-.576-.467-1.044-1.044-1.044z" fill="#6E29F6" fill-rule="evenodd"></path>',c:1},volcengine:{v:"0.87 -0.04 22.05 22.05",m:'<path d="M7.29 5.36L3.148 21.737a.215.215 0 00.203.261h8.29a.214.214 0 00.215-.261L7.7 5.359a.214.214 0 00-.41 0z" fill-opacity=".5"></path><path clip-rule="evenodd" d="M4.553 16.18l-1.406 5.558a.214.214 0 00.203.261h2.42-4.551a.214.214 0 01-.214-.26l2.275-8.961a.214.214 0 01.409 0l.864 3.402z"></path><path d="M14.44.15a.214.214 0 00-.41 0L8.366 21.739a.214.214 0 00.214.261H19.9a.214.214 0 00.215-.261L14.44.151z" fill-opacity=".5"></path><path clip-rule="evenodd" d="M16.694 22h3.207a.215.215 0 00.214-.262l-1.839-6.993 1.164-4.592a.214.214 0 01.411 0l2.951 11.586a.214.214 0 01-.214.261h-5.894z"></path><path d="M10.278 7.741L6.685 21.736a.214.214 0 00.214.264h7.17a.216.216 0 00.214-.166.216.216 0 000-.098L10.687 7.742a.214.214 0 00-.409 0z"></path>',c:0},doubao:{v:"0.135 -0.04 24.08 24.08",m:'<path d="M5.31 15.756c.172-3.75 1.883-5.999 2.549-6.739-3.26 2.058-5.425 5.658-6.358 8.308v1.12C1.501 21.513 4.226 24 7.59 24a6.59 6.59 0 002.2-.375c.353-.12.7-.248 1.039-.378.913-.899 1.65-1.91 2.243-2.992-4.877 2.431-7.974.072-7.763-4.5l.002.001z" fill-opacity=".5"></path><path d="M22.57 10.283c-1.212-.901-4.109-2.404-7.397-2.8.295 3.792.093 8.766-2.1 12.773a12.782 12.782 0 01-2.244 2.992c3.764-1.448 6.746-3.457 8.596-5.219 2.82-2.683 3.353-5.178 3.361-6.66a2.737 2.737 0 00-.216-1.084v-.002zM14.303 1.867C12.955.7 11.248 0 9.39 0 7.532 0 5.883.677 4.545 1.807 2.791 3.29 1.627 5.557 1.5 8.125v9.201c.932-2.65 3.097-6.25 6.357-8.307.5-.318 1.025-.595 1.569-.829 1.883-.801 3.878-.932 5.746-.706-.222-2.83-.718-5.002-.87-5.617h.001z"></path><path d="M17.305 4.961a199.47 199.47 0 01-1.08-1.094c-.202-.213-.398-.419-.586-.622l-1.333-1.378c.151.615.648 2.786.869 5.617 3.288.395 6.185 1.898 7.396 2.8-1.306-1.275-3.475-3.487-5.266-5.323z" fill-opacity=".5"></path>',c:0},hunyuan:{v:"-0.04 -0.04 24.08 24.08",m:'<path d="M12 0c6.627 0 12 5.373 12 12s-5.373 12-12 12S0 18.627 0 12 5.373 0 12 0zm1.652 1.123l-.01-.001c.533.097 1.023.233 1.41.404 6.084 2.683 7.396 9.214 1.601 14.338a3.781 3.781 0 01-5.337-.328 3.654 3.654 0 01-.884-3.044c-1.934.6-3.295 2.305-3.524 4.45-.204 1.912.324 4.044 2.056 5.634l.245.067C10.1 22.876 11.036 23 12 23c6.075 0 11-4.925 11-11 0-5.513-4.056-10.08-9.348-10.877zM2.748 6.21c-.178.269-.348.536-.51.803l-.235.394.078-.167A10.957 10.957 0 001 12c0 4.919 3.228 9.083 7.682 10.49l.214.065C3.523 18.528 2.84 14.149 6.47 8.68A2.234 2.234 0 102.748 6.21zm10.157-5.172c4.408 1.33 3.61 5.41 2.447 6.924-.86 1.117-2.922 1.46-3.708 2.238-.666.657-1.077 1.462-1.212 2.291A5.303 5.303 0 0112 12.258a5.672 5.672 0 001.404-11.169 10.51 10.51 0 00-.5-.052z"></path>',c:0},yuanbao:{v:"-0.04 -0.04 24.08 24.08",m:'<path d="M12.014.648c-6.628 0-12 5.09-12 11.367 0 6.277 5.372 11.366 12 11.366s12-5.09 12-11.366c0-6.277-5.372-11.367-12-11.367zm5.849 15.481c-4.305 3.1-10.584 2.523-13.481-1.444-2.86-3.918-1.351-9.703 2.685-13.02-1.866 1.676-2.67 5.01-1.282 6.909 1.471 2.015 4.794 1.746 6.958.113 2.435-1.84 6.036-1.794 7.234.954.91 2.208.067 4.93-2.114 6.487v.001z"></path><path d="M14.81 14.914a.669.669 0 01-.536-.269l-1.02-1.37a.67.67 0 01.005-.807l1.021-1.328a.669.669 0 011.06.814l-.713.926.72.964a.67.67 0 01-.534 1.067l-.002.003zM10.877 12.913c0 1.797-.357 2.135-1.162 2.135-.805 0-1.162-.338-1.162-2.135 0-1.798.357-2.136 1.162-2.136.805 0 1.162.338 1.162 2.136z"></path>',c:0},stepfun:{v:"-0.04 -0.04 24.08 24.08",m:'<path d="M12 0C5.372 0 0 5.372 0 12s5.372 12 12 12 12-5.372 12-12S18.628 0 12 0zM8.762 19.614H4.376v-4.386h4.386v4.386zm5.423 0H9.798v-4.386h4.387v4.386zm0-5.42H9.798V9.81h4.387v4.386zm0-5.418H9.798V4.39h4.387v4.386zm5.422-.004h-4.386V4.386h4.386v4.386z"></path>',c:0},sensenova:{v:"0.975 0.94 22.12 22.12",m:'<path d="M23 8.333h-7.333v7.334H23V8.333z"></path><path d="M1 1v14.667h7.333V8.333h7.334V1H1z" fill-opacity=".33"></path><path d="M14.038 4.333h.17l1.459 1.456v.17l-1.63-1.626zM13.224 4.333h.17l2.273 2.268v.17l-2.443-2.438zM12.41 4.333h.17l3.087 3.08v.17l-3.257-3.25zM11.596 4.333h.17l3.9 3.892v.108h-.06l-4.01-4zM10.782 4.333h.17l4.01 4h-.17l-4.01-4zM9.968 4.333h.17l4.009 4h-.17l-4.01-4zM9.154 4.333h.17l4.009 4h-.17l-4.01-4zM8.34 4.333h.17l4.01 4h-.17l-4.01-4zM7.521 4.333h.17l4.01 4h-.17l-4.01-4zM6.707 4.333h.17l4.01 4h-.17l-4.01-4zM5.892 4.333h.17l4.009 4h-.17l-4.01-4zM5.077 4.333h.17l4.01 4h-.17l-4.01-4zM4.333 4.403v-.07h.1l4.01 4h-.11v.06l-4-3.99zM4.333 5.215v-.17l4 3.991v.17l-4-3.99zM4.333 6.027v-.17l4 3.991v.17l-4-3.99zM4.333 6.84v-.17l4 3.99v.17l-4-3.99zM4.333 7.652v-.17l4 3.99v.17l-4-3.99zM4.333 8.464v-.17l4 3.99v.17l-4-3.99zM4.333 9.276v-.17l4 3.991v.17l-4-3.991zM4.333 10.088v-.17l4 3.991v.17l-4-3.991zM4.333 10.9v-.17l4 3.991v.17l-4-3.991zM4.333 11.712v-.17l4 3.991v.134h-.036l-3.964-3.955zM4.333 12.526v-.17l3.318 3.31h-.17l-3.148-3.14zM4.333 13.34v-.169l2.502 2.496h-.17L4.333 13.34zM4.333 14.152v-.169l1.688 1.684h-.17l-1.518-1.514zM4.333 14.965v-.17l.874.872h-.17l-.704-.702zM15.667 5.146l-.815-.813h.17l.645.644v.169z"></path><path d="M23 15.667h-7.333V23H23v-7.333z" fill-opacity=".33"></path><path d="M15.667 15.667H8.333V23h7.334v-7.333z"></path>',c:0},baichuan:{v:"-0.04 0.975 22.05 22.05",m:'<path d="M7.333 2h-3.2l-2 4.333V17.8L0 22h5.2l2.028-4.2L7.333 2zm7.334 0h-5.2v20h5.2V2zM16.8 7.733H22V22h-5.2V7.733zM22 2h-5.2v4.133H22V2z"></path>',c:0},yi:{v:"1.99 1.99 20.02 20.02",m:'<path d="M18.62 13.927c.611 0 1.107.505 1.107 1.128v5.817c0 .623-.496 1.128-1.108 1.128a1.118 1.118 0 01-1.108-1.128v-5.817c0-.623.496-1.128 1.108-1.128zM16.59 3.052a1.094 1.094 0 011.562-.129c.466.404.522 1.116.126 1.59l-5.938 7.111v9.147c0 .624-.496 1.129-1.108 1.129a1.118 1.118 0 01-1.108-1.129v-9.477l.003-.088.01-.087c.015-.232.102-.462.261-.654l6.192-7.413zM2.906 2.256a1.094 1.094 0 011.559.157l4.387 5.45a1.142 1.142 0 01-.155 1.587 1.094 1.094 0 01-1.559-.157l-4.387-5.45a1.144 1.144 0 01.06-1.498l.095-.09z"></path><ellipse cx="20.146" cy="10.692" rx="1.354" ry="1.379"></ellipse>',c:0},codex:{v:"-0.04 -0.04 24.08 24.08",m:'<path clip-rule="evenodd" d="M8.086.457a6.105 6.105 0 013.046-.415c1.333.153 2.521.72 3.564 1.7a.117.117 0 00.107.029c1.408-.346 2.762-.224 4.061.366l.063.03.154.076c1.357.703 2.33 1.77 2.918 3.198.278.679.418 1.388.421 2.126a5.655 5.655 0 01-.18 1.631.167.167 0 00.04.155 5.982 5.982 0 011.578 2.891c.385 1.901-.01 3.615-1.183 5.14l-.182.22a6.063 6.063 0 01-2.934 1.851.162.162 0 00-.108.102c-.255.736-.511 1.364-.987 1.992-1.199 1.582-2.962 2.462-4.948 2.451-1.583-.008-2.986-.587-4.21-1.736a.145.145 0 00-.14-.032c-.518.167-1.04.191-1.604.185a5.924 5.924 0 01-2.595-.622 6.058 6.058 0 01-2.146-1.781c-.203-.269-.404-.522-.551-.821a7.74 7.74 0 01-.495-1.283 6.11 6.11 0 01-.017-3.064.166.166 0 00.008-.074.115.115 0 00-.037-.064 5.958 5.958 0 01-1.38-2.202 5.196 5.196 0 01-.333-1.589 6.915 6.915 0 01.188-2.132c.45-1.484 1.309-2.648 2.577-3.493.282-.188.55-.334.802-.438.286-.12.573-.22.861-.304a.129.129 0 00.087-.087A6.016 6.016 0 015.635 2.31C6.315 1.464 7.132.846 8.086.457zm-.804 7.85a.848.848 0 00-1.473.842l1.694 2.965-1.688 2.848a.849.849 0 001.46.864l1.94-3.272a.849.849 0 00.007-.854l-1.94-3.393zm5.446 6.24a.849.849 0 000 1.695h4.848a.849.849 0 000-1.696h-4.848z"></path>',c:0},grok:{v:"0.03 0.065 23.94 23.94",m:'<path d="M9.27 15.29l7.978-5.897c.391-.29.95-.177 1.137.272.98 2.369.542 5.215-1.41 7.169-1.951 1.954-4.667 2.382-7.149 1.406l-2.711 1.257c3.889 2.661 8.611 2.003 11.562-.953 2.341-2.344 3.066-5.539 2.388-8.42l.006.007c-.983-4.232.242-5.924 2.75-9.383.06-.082.12-.164.179-.248l-3.301 3.305v-.01L9.267 15.292M7.623 16.723c-2.792-2.67-2.31-6.801.071-9.184 1.761-1.763 4.647-2.483 7.166-1.425l2.705-1.25a7.808 7.808 0 00-1.829-1A8.975 8.975 0 005.984 5.83c-2.533 2.536-3.33 6.436-1.962 9.764 1.022 2.487-.653 4.246-2.34 6.022-.599.63-1.199 1.259-1.682 1.925l7.62-6.815"></path>',c:0}},o={openai:"openai","openai-codex":"openai",anthropic:"anthropic",google:"gemini","google-vertex":"vertexai",xai:"xai",mistral:"mistral",deepseek:"deepseek",moonshotai:"moonshot","moonshotai-cn":"moonshot","kimi-coding":"kimi",minimax:"minimax","minimax-cn":"minimax",zai:"zhipu","zai-coding-cn":"zhipu",xiaomi:"xiaomi","xiaomi-token-plan-ams":"xiaomi","xiaomi-token-plan-cn":"xiaomi","xiaomi-token-plan-sgp":"xiaomi",nvidia:"nvidia",huggingface:"huggingface","qwen-token-plan":"qwen","qwen-token-plan-cn":"qwen","qwen-token-plan-individual":"qwen",openrouter:"openrouter","vercel-ai-gateway":"vercel","cloudflare-ai-gateway":"cloudflare","cloudflare-workers-ai":"cloudflare","amazon-bedrock":"bedrock","azure-openai-responses":"azure",together:"together",fireworks:"fireworks",baseten:"baseten",cerebras:"cerebras",groq:"groq","github-copilot":"github",opencode:"opencode","opencode-go":"opencode","command-goat":"commandcode",commandcode:"commandcode","command-code":"commandcode",cliproxy:"cliproxy",ollama:"ollama",vllm:"vllm",lmstudio:"lmstudio",perplexity:"perplexity",cohere:"cohere",ai21:"ai21",voyage:"voyage",deepinfra:"deepinfra",sambanova:"sambanova",novita:"novita",hyperbolic:"hyperbolic",targon:"targon",parasail:"parasail",lambda:"lambda",fal:"fal",replicate:"replicate",midjourney:"midjourney",stability:"stability",suno:"suno",elevenlabs:"elevenlabs",fishaudio:"fishaudio",assemblyai:"assemblyai",siliconcloud:"siliconcloud",volcengine:"volcengine",doubao:"doubao",hunyuan:"hunyuan",yuanbao:"yuanbao",stepfun:"stepfun",sensenova:"sensenova",baichuan:"baichuan",yi:"yi",codex:"codex",grok:"grok",gemini:"gemini"},l=[["openrouter","openrouter"],["opencode-go","opencode"],["opencode","opencode"],["openai-codex","openai"],["openai","openai"],["azure","azure"],["bedrock","bedrock"],["anthropic","anthropic"],["claude","anthropic"],["gemini","gemini"],["google","gemini"],["vertex","vertexai"],["deepseek","deepseek"],["moonshot","moonshot"],["kimi","kimi"],["minimax","minimax"],["zhipu","zhipu"],["zai","zhipu"],["glm","zhipu"],["xiaomi","xiaomi"],["mimo","xiaomi"],["qwen","qwen"],["nvidia","nvidia"],["huggingface","huggingface"],["vercel","vercel"],["cloudflare","cloudflare"],["together","together"],["fireworks","fireworks"],["baseten","baseten"],["cerebras","cerebras"],["groq","groq"],["github","github"],["copilot","github"],["perplexity","perplexity"],["cohere","cohere"],["ollama","ollama"],["vllm","vllm"],["lmstudio","lmstudio"],["siliconcloud","siliconcloud"],["siliconflow","siliconcloud"],["volcengine","volcengine"],["doubao","doubao"],["hunyuan","hunyuan"],["yuanbao","yuanbao"],["stepfun","stepfun"],["sensenova","sensenova"],["baichuan","baichuan"],["xai","xai"],["grok","grok"],["mistral","mistral"]],d="data-dshsvc-model-icon",c="data-dshsvc-model-icon-seat",u="--dshsvc-model-icon",p="--dshsvc-model-icon-size",m=(e,t)=>{const a=`<svg xmlns="http://www.w3.org/2000/svg" viewBox="${e.v||"0 0 24 24"}"${t?' fill="#000" color="#000"':""}>${e.m}</svg>`;return`url("data:image/svg+xml,${encodeURIComponent(a)}")`},g={snapshot:{providers:[],serverTime:0},listeners:new Set,subscribe(e){return this.listeners.add(e),()=>this.listeners.delete(e)},getSnapshot(){return this.snapshot},publish(e){this.snapshot=e;for(const e of[...this.listeners])try{e()}catch(e){}}},h=e=>{if("string"!=typeof e||""===e)return!1;const t=e.trim().toLowerCase();try{if("object"!=typeof g||null===g||"function"!=typeof g.getSnapshot)return!1;const e=g.getSnapshot();return(Array.isArray(e?.providers)?e.providers:[]).some(e=>("string"==typeof e?.provider?e.provider.trim().toLowerCase():"")===t&&!0===e.adapted&&"cliproxy"===e.kind&&(void 0===e.kindSource||"config"===e.kindSource))}catch(e){return!1}},v=(e,t={})=>{if("string"!=typeof e||""===e)return null;const a=e.trim().toLowerCase();if(""===a)return null;const r=!0===t.forComposer,n="boolean"==typeof t.isCliproxyAdapted?t.isCliproxyAdapted:h(a);if(n&&void 0!==i.cliproxy)return{slug:"cliproxy",spec:i.cliproxy};const s=e=>"cliproxy"===e&&r&&!n;if("cpa"===a)return null;const d=o[a];if(void 0!==d&&void 0!==i[d])return s(d)?null:{slug:d,spec:i[d]};for(const[e,t]of l)if((a===e||a.startsWith(e+"-")||a.startsWith(e+"_")||a.startsWith(e+"."))&&!s(t)&&void 0!==i[t])return{slug:t,spec:i[t]};if(void 0!==i[a])return s(a)?null:{slug:a,spec:i[a]};for(const e of a.split(/[-_.]/))if(""!==e&&void 0!==i[e]){if(s(e))continue;return{slug:e,spec:i[e]}}return null},b=`\n/* 宽态:模型名前加厂家图标(::before 是触发钮 flex 行的首个子项)。\n 官方 triggerIcon 在宽态本就 display:none,故宽态不会与官方图标重复。 */\n/* 必须限定 button:[class*="_7KE1Ra_trigger"] 是子串匹配,会同时命中\n _7KE1Ra_triggerLabel / _7KE1Ra_triggerEffort —— 首版真机就是这样在模型名和\n 推理等级上各多画了一枚图标(三枚并排)。限定标签既修命中面,又把特异性\n 提到 (0,3,2),顺带稳赢 mobile.css 的 (0,2,1)。 */\nhtml [${c}][${d}] button[class*="_7KE1Ra_trigger"]::before {\n content: '' !important;\n flex: none !important;\n display: block !important;\n /* 尺寸对齐额度圆环:圆环可见外径 13px(14px 的 SVG 盒,外圈 r=5.5 + 2 描边)。\n 图标是实心块面、圆环是细描边环,同直径下实心更重,故基准取略小的 15px 让\n 「视觉重量」相当(真机像素量测校准,见 scripts/measure-icon-ink.mjs)。\n 能定一个统一数字的前提是生成期已把每个图标的 viewBox 收紧到真实绘制范围——\n 否则各品牌留白不同,同一个数字画出来大小参差(⌘ 曾经只占 55%)。\n 变量留给「形状填充率」这一层:满框形状(如 ⌘)即使外接尺寸相同也更显大,\n 由数据里的光学系数 o 单独修正,见生成器 OPTICAL_SCALE。 */\n width: var(${p}, 15px) !important;\n height: var(${p}, 15px) !important;\n background-color: currentColor !important;\n -webkit-mask: var(${u}) center/contain no-repeat !important;\n mask: var(${u}) center/contain no-repeat !important;\n}\n/* 彩色档:原样上品牌色(去掉 mask,改用 background-image)。\n 选择器必须同样带上 [${d}] 保持特异性 (0,3,2) 与上方单色规则平齐,\n 以保证 !important 级联下后定义的 mask:none / transparent 胜出。 */\nhtml [${c}="color"][${d}] button[class*="_7KE1Ra_trigger"]::before {\n background-color: transparent !important;\n -webkit-mask: none !important;\n mask: none !important;\n background-image: var(${u}) !important;\n background-position: center !important;\n background-size: contain !important;\n background-repeat: no-repeat !important;\n}\n/* 窄态「替换」:我方图标已表达厂家,官方那枚通用 IconDataOutline16 必须让位,\n 否则两枚图标并排。两条门覆盖两种进入图标态的方式:\n ① ≤480px —— 本插件移动端显式把模型钮收成图标的那一档;\n ② 官方自己的容器查询 —— 容器 ≤360px 时官方本就切到图标态。\n 两态都只在「已适配」时才有官方图标要藏:属性是 JS 按 provider 命中后才挂的,\n 未命中渠道官方图标完全照旧。\n **选择器必须同时带两个自有属性**(而不是只带 seat 属性):mobile.css 里那条\n 「移动端作用域属性 + triggerIcon → display:block!important」与本规则同为\n !important、特异性也同为 (0,2,1),而 mobile.css 在样式表顺序上排在后面——\n 平局由顺序裁决,官方图标就会赢回来(真机实测:窄态出现两枚图标)。\n 多带一个自身属性把特异性提到 (0,3,1),即与插入顺序解耦,不依赖谁先挂。\n 刻意不引用移动端作用域属性:本规则与移动端适配开关无关(关掉移动端适配、\n 窄窗口下官方同样会收成图标),也避免与移动端引擎的挂载断言互相牵连。 */\n@media (max-width: 480px) {\n html [${c}][${d}] [class*="_7KE1Ra_triggerIcon"] { display: none !important; }\n}\n@container (width<=360px) {\n html [${c}][${d}] [class*="_7KE1Ra_triggerIcon"] { display: none !important; }\n}\n`,f=(e,t,a)=>{try{null!=e&&"function"==typeof e.setAttribute&&e.setAttribute(t,a)}catch(e){}},y=(e,t)=>{try{null!=e&&"function"==typeof e.removeAttribute&&e.removeAttribute(t)}catch(e){}},x=(e,t,a)=>{try{null!=e&&e.style&&"function"==typeof e.style.setProperty&&e.style.setProperty(t,a)}catch(e){}},k=(e,t)=>{try{null!=e&&e.style&&"function"==typeof e.style.removeProperty&&e.style.removeProperty(t)}catch(e){}},w="@gehennawu/dsh-service/editor",E=["md","markdown","mdx","txt","text","log","ini","toml","conf","cfg","env","json","jsonc","json5","yml","yaml","xml","csv","tsv","diff","patch","ts","mts","cts","js","mjs","cjs","jsx","tsx","vue","svelte","astro","css","scss","sass","less","html","htm","sh","bash","zsh","fish","ps1","bat","cmd","py","pyi","rb","go","rs","java","kt","kts","c","h","cc","cpp","cxx","hpp","hh","cs","php","sql","swift","lua","pl","pm","r","dart","scala","clj","ex","exs","erl","hs","ml","nim","zig","vim","el","emacs","lisp","scm","gradle","properties","dockerfile","makefile","gitignore","gitattributes","gitconfig","editorconfig","npmrc","nvmrc","eslintignore","prettierignore"],S="data-dshsvc-editor-entry",q="data-dshsvc-editor-menu-item",C="[data-document-viewer-menu]",z=()=>{try{return"undefined"==typeof document||null===document?null:document}catch(e){return null}},A=(e,t)=>{try{return Array.from(e.querySelectorAll(t))}catch(e){return[]}},T=e=>String(e?.textContent??"").trim(),M=e=>({borderRadius:e,cornerShape:"round"}),I=e=>{let t="";try{const a=e.search(/[?#]/),r=(-1===a?e:e.slice(0,a)).slice(e.lastIndexOf("/")+1);t=decodeURIComponent(r)}catch(e){return!1}const a=t.toLowerCase();return E.some(e=>a.endsWith("."+e)||a===e)},H=e=>{if(null==e)return null;try{if("function"==typeof e.closest){const t=e.closest("[data-document-preview]");if(null!=t){const e=t.querySelector(C);if(null!=e)return e}}}catch(e){}try{let t="function"==typeof e.closest?e.parentElement:e.parentNode;const a=z();for(;null!=t&&t!==a&&"function"==typeof t.querySelector;){const e=t.querySelector(C);if(null!=e)return e;t=t.parentNode}}catch(e){}return null},O=new Set;let R={isAlive:()=>!1,dispose:()=>{}};const L=(e,t,a={})=>{const r=a?.menu;if(null===e||null==r)return!1;const n="function"==typeof a?.isAlive?a.isAlive:()=>!0;if(!n())return!1;const s=()=>A(e,'[role="menuitem"], [role="option"]').find(e=>!((e,t)=>{try{return"function"==typeof e?.getAttribute&&null!==e.getAttribute(t)}catch(e){return!1}})(e,q)&&t(T(e))),i=e=>{try{e.click()}catch(e){return!1}return!0};let o=0;try{o=A(e,C).length}catch(e){o=0}if(o<=1){const e=s();if(void 0!==e)return i(e)}try{r.click()}catch(e){return!1}if(!n())return!1;const l=s();if(void 0!==l)return i(l);let d=12;const c=()=>{d<=0||!n()||(d-=1,"function"==typeof setTimeout&&setTimeout(()=>{if(n()){try{const e=s();if(void 0!==e)return void i(e)}catch(e){}c()}},60))};return c(),!1},N={"nav.label":"服务控制","nav.restart":"重启","features.cardTitle":"服务控制(dsh-service)","features.cardHint":"控制可选功能和外部能力。开关立即生效,无需重启。","features.external":"外部能力","features.healthDiagnostics":"健康诊断","features.modelUsage":"模型统计","features.quotaLookup":"额度查询","features.backupMaintenance":"备份维护","features.taskNotifications":"任务通知","features.healthz":"/healthz 探活端点","features.skillManager":"技能管理","features.readOnly":"当前设置不可写。","tabs.skills":"技能","tabs.subagent":"子代理","tabs.sessions":"会话管理","features.subagentRoute":"子代理模型","features.mobileAdaptation":"移动端适配","features.sessionManager":"会话管理","sessions.title":"会话管理","sessions.filter.all":"全部","sessions.filter.archived":"仅归档","sessions.filter.deleted":"已删除","sessions.filter.subagent":"仅子代理","sessions.refresh":"刷新","sessions.batch.enter":"批量选择","sessions.batch.exit":"退出批量","sessions.batch.selectAll":"全选","sessions.batch.clearAll":"取消全选","sessions.batch.selectSubagents":"选中子代理","sessions.batch.selected":"已选择 {count} 项","sessions.batch.selectRow":"选择会话:{title}","sessions.batch.export":"导出 ({count})","sessions.batch.archive":"归档 ({count})","sessions.batch.unarchive":"恢复 ({count})","sessions.batch.delete":"删除 ({count})","sessions.batch.clear":"清除 ({count})","sessions.batch.completed":"已完成{action}:{count} 项","sessions.batch.failed":"{action}完成 {done}/{total} 项;{error}","sessions.batch.deleteTitle":"删除 {count} 个会话","sessions.batch.deleteBody":"将永久删除以下已归档会话的日志文件,删除后不可恢复。","sessions.batch.deleteItem":"{title}({bytes})","sessions.batch.clearTitle":"清除 {count} 条已删除记录","sessions.batch.clearBody":"确定要清除以下 {count} 条已删除记录吗?清除后将从记录列表中永久移除。","sessions.status.loading":"加载中…","sessions.status.working":"处理中…","sessions.status.unavailableTime":"时间未知","sessions.glyph.expand":"▸","sessions.glyph.collapse":"▾","sessions.glyph.back":"←","sessions.search.placeholder":"搜索对话内容…","sessions.search.archivedOnly":"仅搜归档","sessions.sort.createdDesc":"创建时间倒序","sessions.sort.createdAsc":"创建时间正序","sessions.sort.title":"按标题","sessions.sort.project":"按项目","sessions.projectGroup.countOne":"1 个会话","sessions.projectGroup.countMany":"{count} 个会话","sessions.projectGroup.noCwd":"(无工作区)","sessions.row.live":"运行中","sessions.row.archived":"已归档","sessions.row.deleted":"已删除","sessions.row.subagent":"子代理","sessions.subagent.hostLegacy":"当前插件宿主较旧,列表未携带子代理标志;升级插件并重启 dsh 后「仅子代理」才会生效","sessions.row.events":"{count} 条事件","sessions.row.noTitle":"(无标题)","sessions.action.view":"查看","sessions.action.export":"导出","sessions.action.archive":"归档","sessions.action.unarchive":"恢复","sessions.action.delete":"删除","sessions.action.clear":"清除","sessions.empty.all":"没有会话","sessions.empty.archived":"没有归档会话","sessions.empty.deleted":"暂无删除记录","sessions.empty.search":"没有命中「{query}」","sessions.error.load":"加载失败:{error}","sessions.error.feature-disabled":"会话管理功能已在设置中关闭","sessions.error.network":"网络错误:无法连接宿主","sessions.error.session-not-found":"会话不存在或已被删除","sessions.error.live-session-rejected":"会话正在运行,无法删除","sessions.error.session-not-archived":"仅已归档会话可以删除","sessions.error.unknown-delete-plan":"删除请求已失效,请重新发起","sessions.error.invalid-session-ids":"无效的会话标识","sessions.error.unarchive-unsupported":"当前宿主不支持恢复归档(需要 DSH ≥ 0.1.6)","sessions.error.export-failed":"导出失败:{error}","sessions.detail.back":"返回列表","sessions.detail.open":"在官方会话中打开","sessions.detail.archiveDisabled":"归档会话/空白会话无法在官方界面打开","sessions.detail.exportAll":"导出全部 ZIP","sessions.detail.exporting":"正在导出…","sessions.detail.loadMore":"加载更多({remaining})","sessions.detail.noMore":"已加载全部 {total} 条事件","sessions.detail.noise":"系统事件","sessions.detail.noiseBlock":"{count} 条系统事件","sessions.detail.noiseExpand":"展开全部","sessions.detail.noiseCollapse":"收起","sessions.detail.toolBlock":"{count} 条工具消息","sessions.detail.toolCollapse":"收起","sessions.detail.cwd":"{cwd}","sessions.detail.created":"创建于 {time}","sessions.md.copy":"复制","sessions.md.copied":"已复制","sessions.md.footnotes":"脚注","sessions.hit.title":"命中 {count} 条","sessions.hit.return":"返回搜索结果","sessions.hit.badge":"命中","sessions.hit.prev":"◀ 上一个","sessions.hit.next":"下一个 ▶","sessions.hit.inSession":"本会话 {count} 处命中","sessions.delete.title":"删除会话","sessions.delete.body":"将永久删除以下会话的日志文件,删除后不可恢复。","sessions.delete.consequence.log":"删除会话日志({bytes})","sessions.delete.consequence.sidebar":"会话从官方侧栏隐藏","sessions.delete.confirm":"确认删除","sessions.delete.cancel":"取消","sessions.delete.done":"已删除","sessions.clear.title":"清除已删除记录","sessions.clear.body":"确定要清除该条已删除记录吗?清除后将从记录列表中永久移除。","sessions.clear.confirm":"确认清除","sessions.clear.cancel":"取消","sessions.export.includes":"含子代理与附件","sessions.navToggle":"设置页左列显示「会话管理」入口","sessions.oneWay":"归档不可恢复","sessions.oneWayHint":"归档后会话从官方侧栏隐藏;官方不支持恢复归档,只能通过本面板删除。","mobile.fab.label":"打开侧栏菜单","mobile.debug.title":"移动端诊断","mobile.debug.viewport":"视口","mobile.debug.drawer":"抽屉","mobile.debug.sidebarPanel":"右栏","mobile.debug.details":"预览列","mobile.debug.rightbar":"右栏","mobile.debug.errors":"JS 错误","mobile.debug.stateOn":"开","mobile.debug.stateOff":"关","mobile.debug.immersive":"沉浸","mobile.debug.immersive.reason.gesture":"滑动回显","mobile.debug.immersive.reason.arrival":"到底回显","mobile.debug.immersive.reason.focus":"聚焦回显","mobile.debug.immersive.reason.button":"回底钮回显","mobile.debug.edge":"边缘","mobile.debug.edge.fieldStart":"起","mobile.debug.edge.fieldMoves":"动","mobile.debug.edge.fieldLast":"末","mobile.debug.edge.fieldCancel":"消","mobile.debug.edge.fieldReason":"因","mobile.debug.edge.open":"开","mobile.debug.edge.leftOpen":"左开","mobile.debug.edge.rightOpen":"右开","mobile.debug.edge.leftClose":"左关","mobile.debug.edge.rightClose":"右关","mobile.debug.edge.reason.multiTouch":"多指","mobile.debug.edge.reason.modal":"模态","mobile.debug.edge.reason.hScroll":"横滚","mobile.debug.edge.reason.noPoint":"无触点","mobile.debug.edge.reason.absentRight":"右栏缺席","mobile.debug.edge.reason.badButton":"右栏钮不可用","mobile.debug.edge.reason.noTracker":"无追踪","conversation.jump.previousReply":"上一条用户回复","subagent.title":"子代理模型","subagent.loading":"读取配置…","subagent.hint":"控制未显式指定模型的子代理所用模型;显式指定的不受影响。切换模式不会清除已保存的自定义模型与回退列表,切回「自定义」即恢复。","subagent.mode.label":"模式","subagent.mode.inherit":"初始(不干预)","subagent.mode.inherit.desc":"不注入任何路由,保持宿主原生继承行为:子代理使用会话创建时烘焙的默认模型。","subagent.mode.follow":"跟随主模型","subagent.mode.follow.desc":"每次派生时读取主对话当前实际使用的模型(最近一次请求的渠道)并注入。","subagent.mode.custom":"自定义","subagent.mode.custom.desc":"所有未显式指定模型的子代理固定使用下方选择的模型。","subagent.provider":"供应商","subagent.model":"模型","subagent.reasoningEffort":"思考等级","subagent.reasoningEffort.default":"使用模型默认(不指定)","subagent.reasoningEffort.unavailable":"该模型未声明可选思考等级","subagent.modelsEmpty":"模型清单为空:无法解析宿主 LLM 渠道。","subagent.save":"保存","subagent.saved":"已保存","subagent.reset":"重置回初始配置","subagent.saving":"保存中…","subagent.unavailable":"宿主未提供子代理注册表(subagents 服务缺席),配置不会生效。","subagent.error":"操作失败:{error}","subagent.error.feature-disabled":"子代理模型功能已在设置中关闭","subagent.error.llm-unavailable":"宿主 LLM 服务不可用","subagent.error.unknown-mode":"未知模式","subagent.error.invalid-model-route":"供应商或模型不在宿主清单内","subagent.error.invalid-reasoning-effort":"思考等级不受该模型支持,请重新选择","subagent.error.network":"网络错误:无法连接宿主","subagent.fallback.title":"回退模型(按顺序)","subagent.fallback.item":"回退 {index}","subagent.fallback.hint":"第一路由不可用时(渠道已卸载、额度查询判定不可服务)依次尝试回退;全部不可用则回落原生继承,不让派生失败。","subagent.fallback.add":"添加回退","subagent.fallback.sort":"调整排序","subagent.fallback.sort.done":"完成排序","subagent.fallback.remove":"移除","subagent.fallback.up":"上移","subagent.fallback.down":"下移","subagent.fallback.empty":"未添加回退:第一路由不可用时子代理回落到原生继承。","subagent.fallback.limit":"已达上限({max} 个)","subagent.error.invalid-fallback-route":"回退条目不在宿主清单内,请重新选择","subagent.dock.label":"子代理:","subagent.dock.title":"输入框下方显示子代理信息","skills.error":"操作失败:{error}","skills.error.feature-disabled":"技能管理功能已在设置中关闭","skills.error.network":"网络错误,请稍后重试","skills.error.read-only-source":"该条目位于只读来源,无法修改","skills.error.unknown-skill":"技能未找到,列表可能已变化,请刷新重试","skills.error.invalid-skill":"条目当前无效:{reason}","skills.error.invalid-field":"开关字段无效","skills.error.invalid-enable":"开关值无效","skills.error.invalid-model-route":"模型路由无效,请重新选择模型","skills.error.invalid-description":"描述不能为空","skills.error.describe-timeout":"模型生成超时(90 秒)","skills.error.empty-output":"模型未产出正文(结束原因:{kind})","skills.error.batch-cancelled":"已取消","skills.error.entry-changed":"条目在运行中发生变化,已跳过","skills.error.unknown-batch-plan":"批量计划已失效,请重新生成","skills.error.batch-already-done":"该批量计划已完成","skills.error.batch-already-cancelled":"该批量计划已取消","skills.error.annotated-confirm-required":"已注释技能需再次确认后才能被覆盖","skills.empty":"未发现任何技能","skills.filter":"按名称过滤…","skills.expandAll":"全部展开","skills.collapseAll":"全部折叠","skills.colon":":","skills.group.auto":"自动加载","skills.group.manual":"仅手动调用","skills.group.disabled":"完全停用","skills.source.project-dsh":"项目 .dsh","skills.source.project-agents":"项目 .agents","skills.source.user-dsh":"用户 DSH","skills.source.user-agents":"用户 .agents","skills.source.bundled":"内置","skills.source.custom":"自定义目录","skills.badge.shadowed":"被同名遮蔽","skills.badge.readonly":"只读","skills.badge.annotated":"已注释","skills.note.stale":"正文已变更,待重新补全","skills.note.remove":"移除 AI 注释","skills.note.panelOnly":"注释仅保存在本面板展示,不写入 SKILL.md。","skills.log.title":"运行日志","skills.log.located":"已定位技能 {name}(文件 {chars} 字符)","skills.log.attempt":"第 {n}/{total} 次生成:调用 {route}","skills.log.received":"输出接收完成({chars} 字符),解析 JSON…","skills.log.parsed":"解析成功,草稿就绪","skills.log.failed-retry":"失败:{message},自动重试","skills.log.failed":"失败:{message}","skills.log.wait":"等待模型输出… {secs}s","skills.log.first-delta":"模型已开始返回","skills.log.first-reasoning":"模型已开始返回(先输出推理)","skills.log.progress":"已接收 {chars} 字符","skills.log.finish-reasoning-only":"模型结束:{kind}(仅推理 {chars} 字符,未产出正文)","skills.log.finish-empty":"模型结束:{kind}(无任何输出)","skills.log.block-extract":"从整块输出提取正文({chars} 字符)","skills.log.item-start":"开始生成注释…","skills.batch.toggle":"批量注释","skills.batch.collapse":"收起","skills.batch.already":"已有批量任务在进行中,请等待完成或先取消","skills.invalid.legacy":"存在旧版调用键,已从模型目录剔除","skills.invalid.other":"无效条目:{reason}","skills.fix.legacy":"一键修复旧键","skills.switch.model":"对模型可见","skills.switch.user":"可被 / 调用","skills.switch.confirm":"再次点击生效","skills.describe.button":"AI 补全说明","skills.describe.title":"AI 补全说明 — {name}","skills.describe.model":"模型","skills.describe.models.loading":"获取模型列表…","skills.describe.models.empty":"未发现已配置模型","skills.describe.run":"生成草稿","skills.describe.running":"生成中…","skills.apply.title":"保存 AI 注释 — {name}","skills.apply.description":"描述","skills.apply.usage":"用法","skills.apply.old":"旧","skills.apply.new":"新","skills.apply.confirm":"保存注释","skills.apply.done":"注释已保存","skills.apply.keepusage":"(保留现有)","skills.llm.unavailable":"宿主 LLM 服务不可用,无法 AI 补全。","skills.batch.title":"批量补全技能说明","skills.batch.hint":"逐条调用所选模型为未注释或正文有变的技能生成说明;已注释技能在计划中单列,再次确认后才会被覆盖。结果仅存插件内并展示在条目下方。","skills.batch.plan":"生成计划","skills.batch.candidates":"候选 {count} 项","skills.batch.estBytes":"约发送 {size} 内容","skills.batch.skipped":"跳过 {count} 项(无效 / 被遮蔽)","skills.batch.annotated":"已注释将覆盖 {count} 项","skills.batch.annotatedList":"将覆盖清单","skills.batch.forceConfirm":"确认强制补全(覆盖 {count} 项已注释)","skills.skippedList":"跳过清单","skills.skip.shadowed":"被遮蔽","skills.skip.invalid":"无效({reason})","skills.skip.reason.missing-frontmatter":"缺 frontmatter","skills.skip.reason.missing-name":"缺 name","skills.skip.reason.invalid-name":"name 不合法","skills.skip.reason.missing-description":"缺 description","skills.skip.reason.too-large":"文件过大","skills.skip.reason.legacy-invocation-key":"旧版调用键","skills.batch.start":"开始批量补全","skills.batch.progress":"进度 {done}/{total}","skills.batch.current":"当前:{name}","skills.batch.cancel":"取消","skills.batch.phase.idle":"空闲","skills.batch.phase.planned":"待开始(核对候选后点击「开始批量补全」)","skills.batch.phase.running":"进行中","skills.batch.phase.done":"已完成","skills.batch.phase.cancelled":"已取消","skills.batch.failures":"失败 {count} 项","skills.batch.no-candidates":"没有需要补全的候选","skills.batch.model":"模型","overlay.label":"服务重启状态","recovery.waiting.title":"服务重启中…","recovery.waiting.body":"正在等待新的 DSH Web 进程启动,已等待 {seconds} 秒。","recovery.timeout.title":"服务尚未恢复","recovery.timeout.body":"已等待 60 秒。请确认外部进程管理器已正确配置,或手动刷新页面重试。","recovery.manual":"手动刷新","health.title":"运行状况","health.uptime":"运行时间","health.rss":"内存 RSS","health.platform":"平台","health.nodeVersion":"Node 版本","health.liveSessions":"存活会话","health.persistedSessions":"持久化会话","health.activeAgents":"活跃 Agent","health.activeJobs":"后台任务","health.uptimeValue":"{hours} 小时 {minutes} 分钟","health.error":"无法读取运行状况","health.check":"立即健康检查","health.checking":"检查中…","health.overall.ok":"正常","health.overall.warning":"警告","health.overall.error":"错误","health.alert.title":"健康提醒","health.alert.diagnostics":"检查结果存在{status},请查看下方异常项。","health.status.ok":"正常","health.status.warning":"警告","health.status.error":"错误","health.status.info":"信息","health.check.session-storage":"会话存储","health.check.workspace-registry":"工作区注册表","health.check.dsh-home":"DSH_HOME","health.check.backup-storage":"备份存储","health.check.tar":"tar","health.check.permissions":"文件权限","health.check.runtime-env":"运行环境","health.check.node-version":"Node 运行时","health.detail.runtime-env.managed":"由{kind}管理,重启后会自动拉起","health.detail.runtime-env.declared":"已通过 DSH_SERVICE_RUNTIME_ENV 声明由外部进程管理器管理","health.detail.runtime-env.manual":"疑似终端手动启动,重启后不会自动拉起;一键升级已改为不自动退出","health.detail.runtime-env.unknown":"未检测到进程管理器,无法确认重启后是否自动拉起;如实际有,可设置 DSH_SERVICE_RUNTIME_ENV=managed 声明","health.detail.node-version.ok":"{version},满足 ≥{required} 要求","health.detail.node-version.warning":"{version} 低于插件要求的 {required}.x,建议升级 Node","health.detail.session-storage.ok":"可用,共 {count} 个会话快照","health.detail.workspace-registry.ok":"可用,共 {count} 个工作区","health.detail.dsh-home.ok":"目录可访问,权限模式 {mode}","health.detail.backup-storage.empty":"备份目录可用,当前暂无备份","health.detail.backup-storage.ok":"备份目录可用,共 {count} 个备份,占用 {size}","health.detail.tar.ok":"tar 可执行文件可用","health.detail.permissions.ok":"文件权限检查正常,未发现异常","health.detail.permissions.warning":"发现 {count} 个文件或目录权限异常","health.detail.generic":"{status}","health.check.plugins":"插件","health.detail.plugins.unavailable":"插件体检不可用(宿主未暴露 Loader)","health.detail.plugins.ok":"共 {total} 个插件,状态正常","plugin.issue.failed":"{failed} 个插件失败","plugin.issue.pending":"{pending} 个插件未就绪","plugin.issue.info":"{count} 个插件状态需确认","plugin.state.pending":"等待依赖","plugin.state.loading":"加载中","plugin.state.failed":"失败","plugin.state.disposed":"已释放","plugin.state.unknown":"未知状态","plugin.state.unloading":"卸载中","plugin.missingDeps":"依赖缺失:{deps}","plugin.error":"错误:{error}","plugin.restart":"重新加载","plugin.restarting":"重新加载中…","plugin.restartConfirm":"确认重新加载","plugin.restartHint":"重新加载「{name}」,其启动逻辑将重新执行,失败状态会随之刷新。","plugin.restartCancel":"取消","plugin.restartFailed":"重新加载失败:{detail}","plugin.error.unknown-plugin":"未找到该插件","plugin.error.loader-unavailable":"宿主 Loader 不可用","plugin.error.plugin-disabled":"插件已停用,无法重新加载","plugin.error.not-failed":"该插件未处于失败状态","plugin.error.restart-failed":"重新加载后仍然失败","health.check.plugin-compat":"插件兼容性","health.detail.plugin-compat.unavailable":"插件兼容性检查不可用(宿主未暴露 Loader)","health.detail.plugin-compat.ok":"已扫描 {total} 个插件,未发现对已变更接口的引用","plugin.compat.kind.broken":"可能不兼容","plugin.compat.kind.soft":"为兼容旧版保留","plugin.compat.kind.declared":"声明残留","plugin.compat.kind.unknown":"未能扫描","plugin.compat.issue.broken":"{count} 个插件可能不兼容","plugin.compat.issue.soft":"{count} 个插件为兼容旧版保留了退役接口","plugin.compat.issue.declared":"{count} 个插件仅声明残留(代码未引用)","plugin.compat.issue.unknown":"{count} 个插件未能扫描","plugin.compat.declared":"声明了已移除的接口但代码未引用——官方加载器对缺失供应商静默跳过,当前无害,可提示作者清理","plugin.compat.badge.active":"当前版本已生效","plugin.compat.badge.future":"当前正常(升级至 DSH ≥ {since} 后生效)","plugin.compat.category.package-removed":"依赖包已移除","plugin.compat.category.slot-retired":"槽位已退役","plugin.compat.category.method-removed":"方法已移除","plugin.compat.category.event-removed":"事件已废弃","plugin.compat.category.hash-migrated":"样式前缀漂移","plugin.compat.category.attribute-removed":"DOM属性已删除","plugin.compat.meta.since":"影响版本:DSH ≥ {since}","plugin.compat.meta.reason":"变更背景","plugin.compat.meta.impact":"潜在影响","plugin.compat.meta.advice":"适配建议","plugin.compat.reason.client-runtime":"DSH 0.1.2-alpha.2 官方 web roster 移除客户端供应商 @deepseek-ai/dsh-client-runtime","plugin.compat.impact.client-runtime":"浏览器半加载器等待缺失供应商,导致插件卡在 pending 状态无法激活","plugin.compat.advice.client-runtime":"在 package.json 的 dsh.client.inject 中移除该依赖声明","plugin.compat.reason.sqlite-persistence":"DSH 0.1.2-alpha.3 移除 SQLite 会话持久化包,官方仅交付 JSONL","plugin.compat.impact.sqlite-persistence":"引入该包会导致模块解析失败或启动异常","plugin.compat.advice.sqlite-persistence":"移除对 sqlite persistence 的依赖,改用官方 JSONL 或公共会话接口","plugin.compat.reason.code-runtime":"DSH 0.1.6-alpha.1 代码执行包更名重构,由 ptc-runtime 取代","plugin.compat.impact.code-runtime":"依赖该包的代码执行器无法加载","plugin.compat.advice.code-runtime":"更新为新版 @deepseek-ai/dsh-ptc-runtime","plugin.compat.reason.e2b-runtime":"DSH 0.1.6-alpha.1 移除内置 E2B 沙箱后端","plugin.compat.impact.e2b-runtime":"依赖该包的沙箱逻辑无法加载","plugin.compat.advice.e2b-runtime":"改用官方推荐的执行环境或外部 MCP","plugin.compat.reason.session-start-event":"DSH 0.1.6-alpha.1 统一生命周期事件派发,移除「agent/session-start」事件","plugin.compat.impact.session-start-event":"事件监听永不触发,导致时序挂钩逻辑失效","plugin.compat.advice.session-start-event":"改用 ctx.on 监听 agent/created 事件并在 payload 中读取 source","plugin.compat.reason.chat-hash":"DSH 0.1.2-alpha.2 聊天视图独立拆包,CSS Module 前缀漂移(Md3f7G_ → EvIC1a_)","plugin.compat.impact.chat-hash":"写死旧类名前缀的选择器无法命中目标 DOM","plugin.compat.advice.chat-hash":'改用词干后缀模糊匹配(如 [class*="_toBottomSlot"])',"plugin.compat.reason.stats-hash":"DSH 0.1.2-alpha.2 统计条样式前缀由 FJxK0a_ 漂移至 -NDN2W_","plugin.compat.impact.stats-hash":"写死该类名的选择器匹配失败","plugin.compat.advice.stats-hash":"改用词干匹配,或在 0.1.5+ 适配新版 StatsPills 胶囊","plugin.compat.reason.time-hover-root":"DSH 0.1.2-alpha.2 移除 data-time-hover-root 属性","plugin.compat.impact.time-hover-root":"依赖该属性定位回合时间的脚本扑空","plugin.compat.advice.time-hover-root":"改用官方稳定的 [data-turn-tail] 属性定位回合尾部","plugin.compat.reason.settings-plugin-item":"DSH 0.1.6-alpha.2 设置面板重构,移除了 settings.plugin.item 槽位","plugin.compat.impact.settings-plugin-item":"配置卡片不会在设置页渲染;插件本体运行正常","plugin.compat.advice.settings-plugin-item":"迁移至独立插件页槽位 plugins.bundle.config,或保留双版本注册","plugin.compat.reason.sessions-open-method":"DSH 0.1.6-alpha.2 引入会话生命周期管理,ISessions 移除 open 方法","plugin.compat.impact.sessions-open-method":"调用 sessions.open 方法静默无响应或抛错","plugin.compat.advice.sessions-open-method":"改用 uiWorkspace.openSession 或保留两层降级调用","plugin.compat.break.client-runtime":"声明了已移除的客户端供应商 @deepseek-ai/dsh-client-runtime(0.1.2-alpha.2 起官方 roster 移除,浏览器半可能无法挂载)","plugin.compat.break.sqlite-persistence":"依赖已移除的会话持久化后端 @deepseek-ai/dsh-session-persistence-sqlite(0.1.2-alpha.3 起官方仅交付 JSONL)","plugin.compat.break.code-runtime":"依赖已移除的代码执行后端 @deepseek-ai/dsh-code-runtime(0.1.6-alpha.1 起由 ptc-runtime 取代)","plugin.compat.break.e2b-runtime":"依赖已移除的沙箱执行器 @deepseek-ai/dsh-e2b(0.1.6-alpha.1 起官方移除内置 E2B)","plugin.compat.break.session-start-event":"监听已移除的会话生命周期事件 agent/session-start(0.1.6-alpha.1 起由 agent/created 携带 source 统一取代)","plugin.compat.break.settings-plugin-item":"为兼容老版本宿主保留了已退役的设置页槽位 settings.plugin.item(0.1.6-alpha.2 起新版宿主不再渲染该槽位,配置卡片改由插件管理页 plugins.bundle.config 承载;插件本体照常运行,仅配置入口位置变化,无需处理)","plugin.compat.break.sessions-open-method":"调用已移除的命令式会话打开方法 sessions.open(0.1.6-alpha.2 起 ISessions 移除该方法,点击无响应,官方改由 ui-workspace 的 openSession 承载)","plugin.compat.break.chat-hash":"引用已迁移的聊天界面旧样式前缀(Md3f7G_,0.1.2-alpha.2 起漂移至 EvIC1a_)","plugin.compat.break.stats-hash":"引用已迁移的统计条旧样式前缀(FJxK0a_,0.1.2-alpha.2 起漂移至 -NDN2W_)","plugin.compat.break.time-hover-root":"使用已移除的元素属性 data-time-hover-root(0.1.2-alpha.2 起由 data-turn-tail 取代)","plugin.compat.unknown.unresolved":"包清单不可解析","plugin.compat.unknown.missing-entry":"未找到可扫描的入口文件","plugin.compat.unknown.too-large":"入口文件超过扫描上限(4 MiB)","tabs.overview":"概览","tabs.notify":"通知","tabs.health":"健康诊断","tabs.usage":"模型统计","tabs.quota":"额度查询","overview.container":"进程与运行环境","overview.errors":"报错信息","overview.status.normal":"所有系统运行正常","overview.status.info":"有 {count} 条提示","overview.status.warning":"有 {count} 项需要注意","overview.status.error":"有 {count} 项需要处理","overview.backupEmpty":"还没有备份,建议创建一份","overview.resetCardExpiring":"重置卡 24 小时内到期:{cards}","overview.updateAvailable":"检测到新版本可用","tabs.backup":"备份维护","tabs.restart":"重启","tabs.maintenance":"维护","tabs.configuration":"配置","tabs.features":"功能","tabs.notifications":"通知","tabs.navOrder":"设置栏标签","config.navOrder.title":"设置栏标签排序与显隐","config.navOrder.moveUp":"上移","config.navOrder.moveDown":"下移","config.navOrder.visible":"显示","config.navOrder.hidden":"隐藏","config.navOrder.locked":"当前面板(不可隐藏)","config.navOrder.reset":"恢复默认排序","config.navOrder.saved":"已保存","config.navOrder.save":"保存排序","config.navOrder.empty":"未检测到已注册的设置栏标签","maintenance.empty":"所有维护子页均已关闭。可在「配置 → 功能」中开启备份、技能、子代理或会话管理。","config.notificationsDisabled":"任务通知功能已在「功能」页关闭,以下设置仅作展示;重新开启后通知才会生效。","features.group.runtime":"运行与观测","features.group.maintenance":"维护","features.group.interaction":"交互","page.configuration.desc":"功能开关与任务通知设置。","tabs.alert.title":"服务控制提醒","tabs.alert.body":"以下功能需要处理:{tabs}","tabs.alert.join":"、","tabs.alert.dot":"此标签存在故障提醒","permissions.title":"文件权限","permissions.description":"检查 Agent 能否读写并进入 DSH_HOME 与工作区。深检跳过 .git;修复补充当前用户所需权限并保留执行位。","permissions.target":"目标属主:{owner}","permissions.repair":"修复权限","permissions.repairing":"修复中…","permissions.confirm":"确认修复","permissions.confirmHint":"跳过 .git,递归恢复当前用户属主并补充 Agent 读写权限,保留已有执行位。","permissions.cancel":"取消","permissions.show":"权限与修复","permissions.hide":"收起","permissions.error":"权限操作失败","permissions.summary.ok":"{count} 个根目录检查正常","permissions.summary.warning":"发现 {count} 个根目录异常","permissions.showDetails":"查看详情","permissions.hideDetails":"隐藏详情","permissions.deep":"深度检查","permissions.deepChecking":"扫描中…","permissions.deepSummary":"扫描 {scanned} 项,用时 {duration} ms;目录不可编辑 {directories},文件不可编辑 {files},无法读取 {unreadable}。","backup.title":"备份管理","backup.description":"备份会话、配置与插件 profile 清单,不含 node_modules 与凭据;不自动清理。","backup.create":"创建备份","backup.creating":"创建中…","backup.progress.copy":"正在复制会话数据({current}/{total})…","backup.progress.archive":"正在打包归档({current}/{total})…","backup.progress.validate":"正在校验归档({current}/{total})…","backup.progress.publish":"正在发布备份({current}/{total})…","backup.total":"总体积:{size}","backup.empty":"还没有备份。","backup.delete":"删除","backup.confirm":"确认删除","backup.confirmHint":"确认删除这个备份?此操作无法撤销。","backup.cancel":"取消","backup.error":"备份操作失败","backup.export":"导出","backup.exporting":"导出中…","backup.exportError":"备份导出失败","backup.restore":"恢复","backup.inspecting":"检查中…","backup.restoreConfirm":"确认恢复","backup.restoreHint":"完整性检查通过。确认后会按下方计划覆盖数据;提交前宿主会再次检查归档和当前目标是否发生变化。","backup.restoreError":"备份恢复失败","backup.integrity.ok":"完整性检查通过","backup.integrity.invalid":"归档不可恢复","backup.integrity.summary":"共 {entries} 个条目,解压后 {size};会话文件 {sessions},配置文件 {config},profile 清单 {profiles}。","backup.plan.sessions":"会话目录将整体替换","backup.plan.config":"配置覆盖 {replace} 项,移除 {remove} 项","backup.plan.profiles":"覆盖 {count} 个 profile 的 package.json,保留 node_modules 与其他文件","backup.plan.expires":"恢复计划有效至 {time}","backup.manualRestartTitle":"恢复完成,需要手动重启","backup.manualRestartBody":"数据已恢复,但当前进程仍在运行旧状态。请在运行 dsh 的终端按 Ctrl+C,然后重新启动 dsh。","backup.error.backup-gzip-invalid":"归档不是有效的 gzip 文件或已损坏。","backup.error.backup-tar-invalid":"tar 结构或校验和无效。","backup.error.backup-entry-traversal":"归档含越界或不安全路径。","backup.error.backup-entry-absolute":"归档含绝对路径。","backup.error.backup-entry-link":"归档含符号链接或硬链接。","backup.error.backup-entry-type":"归档含不支持的特殊条目。","backup.error.backup-entry-platform":"归档包含其他系统不兼容的文件名。","backup.error.backup-entry-unexpected":"归档含备份范围外的文件。","backup.error.backup-profile-invalid":"profile package.json 无效。","backup.error.backup-section-missing":"归档缺少必要分区。","backup.error.backup-size-limit":"归档超过安全大小或条目限制。","backup.error.backup-archive-invalid":"归档未通过完整性检查。","backup.error.backup-archive-incomplete":"归档内容与备份源不一致(有文件未被完整收录),未发布。","backup.error.backup-source-changed":"会话正在写入,备份未完成,请稍后重试。","backup.error.backup-source-unsafe":"备份源含符号链接或特殊文件,已拒绝创建。","backup.error.tar-failed":"归档工具执行失败,请检查 tar/gzip 是否可用。","backup.error.active-work":"检测到运行中的工作,暂不能恢复。","backup.error.restore-plan-expired":"恢复计划已过期,请重新检查。","backup.error.restore-source-changed":"备份归档在确认前发生变化,请重新检查。","backup.error.restore-target-changed":"当前数据在确认前发生变化,请重新检查。","backup.error.restore-target-unsafe":"当前目标含不安全的链接或特殊文件。","backup.import":"导入备份","backup.importing":"导入中…","backup.showRecords":"展开备份记录","backup.hideRecords":"收起备份记录","version.title":"版本信息","version.current":"DSH:","version.plugin":"dsh-service:","version.loading":"加载中…","version.dsh.supportBound":"(适配 DSH 0.1.1-rc.2 ~ 0.1.6-alpha.2)","update.check":"检查更新","update.checking":"检查中…","update.current":"已是最新版本","update.available":"有新版本:{version}","update.installedPendingRestart":"已安装 {version},重启后生效","update.detailsButton":"查看详情","update.detailsHide":"收起","update.unavailable":"暂时无法检查最新版本","update.unpublished":"尚未发布可检查版本","health.recheck":"重新诊断","update.details.current":"当前版本:{version}","update.details.latest":"最新版本:{version}","update.channelStable":"正式版","update.channelPreview":"预览版","update.channelAlpha":"Alpha 版","update.upgrade":"升级插件","update.upgrading":"升级中…","update.upgradeError":"插件升级失败","update.upgradeErrorDetail":"插件升级失败({detail})","update.upgradeSuccess":"升级成功,服务重启中…","update.guardActiveWork":"有活动中的会话或后台任务,请处理完毕后再升级","update.guardLinkInstall":"插件通过 link: 安装(开发模式),不能从 registry 一键升级;请更新源码仓库后重启","update.guardFileInstall":"插件通过 file: 安装,不能从 registry 一键升级","update.guardNoNewer":"registry 最新版不高于当前版本,已拒绝可能回退的升级","update.guardNoProfile":"没有找到安装了本插件的 profile,无法定位升级目标","update.guardAmbiguous":"多个 profile 都安装了本插件且无法确定当前加载的副本,已中止","update.guardStale":"命令报告成功但安装版本没有变化(可能被 pnpm 安全等待期拦下),保持当前版本不重启","update.guardUnreadable":"命令成功但无法确认安装后的版本,已中止重启","update.failPnpmMissing":"找不到 pnpm,无法执行升级;请先安装 pnpm 再重试","update.failNetwork":"拉取依赖时网络临时失败,请稍后重试","update.failFetchTimeout":"下载超时(网络较慢或安装包较大),请稍后重试","update.failReleaseAge":"新版本被 pnpm 安全等待期拦截,已自动放行重试仍失败","update.failHoist":"profile 的 node_modules 由不同版本的 pnpm 创建,已重建重试仍失败","update.failAddingToRoot":"pnpm 拒绝在 workspace 根目录安装(缺少 -w)","update.failNotWorkspace":"profile 不是 pnpm workspace 却传入了 -w","update.failIgnoredBuilds":"依赖构建脚本被 pnpm 默认拦截,无法完成升级","env.kind.docker":"Docker 容器","env.kind.container":"容器(containerd/Kubernetes)","env.kind.systemd":"systemd 服务","env.kind.pm2":"pm2","env.kind.supervisord":"supervisord","env.kind.kubernetes":"Kubernetes","env.kind.declared":"外部进程管理器(手动指定)","update.manualConfirmTitle":"升级前请确认:当前疑似手动启动环境","update.manualConfirm":"未检测到进程管理器。升级完成后 DSH 不会自动重启。","update.manualProceed":"仍要升级","update.manualRestartTitle":"升级完成,需要手动重启","update.manualRestartBody":"新版本已安装,但当前进程仍在运行旧版本。请在运行 dsh 的终端窗口按 Ctrl+C(或直接关闭窗口),然后重新启动 dsh。","restart.title":"服务重启","restart.description":"重启 dsh web 进程。运行中的工作会中断,持久化会话可恢复。","restart.button":"重启 dsh web","restart.sending":"发送中…","restart.confirm":"确认重启","restart.force":"仍要重启","restart.cancel":"取消","restart.sent":"重启指令已发出。","restart.sentHint":"页面连接即将断开,服务恢复后将自动刷新。","restart.idleHint":"当前没有检测到运行中的工作。确认后将断开连接,等待服务自动重启。","restart.manualWarn":"当前疑似终端手动启动环境:确认后进程将退出且不会自动拉起,需要你手动重新运行 dsh。","restart.sentManualHint":"当前为手动启动环境,服务不会自动拉起;请在原终端重新运行 dsh 后刷新。","restart.navToggle":"设置页左列显示「重启」入口","restart.navToggleHint":"默认关闭;开启后在设置页左侧标签列底部显示快捷重启入口","activity.agent":"Agent","activity.job":"后台任务","activity.terminal":"终端","activity.warning":"检测到 {count} 项运行中的工作,重启将中断。","activity.item":"{type}:{label} ({status})","error.update":"检查失败","error.activity":"检查运行状态失败","error.restart":"重启失败","error.instance":"重启响应缺少进程实例标识","usage.title":"模型使用","usage.tooltip.date":"日期:{date}","usage.tooltip.input":"输入 {value} token","usage.tooltip.output":"输出 {value} token","usage.tooltip.cache":"缓存命中 {value} token","usage.axis":"token 纵轴","usage.models.more":"展开其余 {count} 个模型","usage.models.less":"收起模型列表","usage.modelScope.today":"今日","usage.modelScope.week":"近 7 天","usage.modelScope.all":"累计","usage.modelSortHint.today":"按今日 token 从多到少排列","usage.modelSortHint.week":"按近 7 天 token 从多到少排列","usage.modelSortHint.all":"按累计 token 从多到少排列","usage.modelBar.today":"{model}:今日 {total} token","usage.modelBar.week":"{model}:近 7 天 {total} token","usage.modelBar.all":"{model}:累计 {total} token","usage.refresh":"刷新统计","usage.refreshing":"刷新中…","usage.empty":"尚未建立使用统计索引。点击刷新统计开始只读建立索引。","usage.error":"无法读取模型使用统计","usage.allProjects":"全部项目","usage.chartSummary":"七天内累计用量 {total} token","usage.barDay":"{day} 总用量 {total} token","usage.total":"token 总量","usage.steps":"成功模型步骤","usage.stepsValue":"{count} 次","usage.modelLine":"{steps}次 · 缓存命中 {hitRate} · 输入 {input} token · 输出 {output} token","usage.input":"输入 token","usage.output":"输出 token","usage.cache":"缓存 token","usage.hitRate":"缓存命中率","usage.today":"今日","usage.sevenDays":"近 7 天","usage.errors.title":"模型报错","usage.errors.toggle":"模型报错({count} 类)","usage.errors.recent":"最近 24 小时","usage.errors.empty":"最近 24 小时没有记录到模型报错。","usage.toolErrors.title":"工具报错","usage.toolErrors.toggle":"工具报错({count} 类)","usage.toolErrors.empty":"最近 24 小时没有记录到工具报错。","usage.errors.count":"{count} 次","usage.failures.global":"全局会话统计(不受项目筛选影响):成功统计 {successful} 个会话,跳过 {failed} 个会话。","usage.failures.staleHint":"统计结果可能包含无法重新读取会话的旧缓存数据;这些数据已保留但可能过期。","usage.failures.show":"查看跳过会话详情","usage.failures.hide":"收起跳过会话详情","usage.failures.id":"会话 ID","usage.failures.code":"错误类型","usage.failures.message":"原因","usage.failures.stale":"保留上次统计(已过期,仍计入总量)","usage.failures.notStale":"无可用缓存,未计入统计","usage.failures.reason.format-migration-failed":"会话格式转换被拒绝。","usage.failures.reason.session-read-failed":"无法打开或读取会话。","usage.failures.reason.session-fold-failed":"无法统计会话事件。","notification.title":"通知","notification.description":"主会话任务结束,或会话需要授权、抉择时发送浏览器通知;子代理完成任务不通知。","notification.enable":"开启通知","notification.enabled":"通知已开启","notification.disable":"关闭通知","notification.denied":"通知权限被拒绝","notification.master":"通知总开关","notification.done":"任务结束通知","notification.input":"授权与提问通知","notification.doneTitle":"任务完成","notification.doneBody":"{title} 已完成本轮任务","notification.inputTitle":"需要你的确认","notification.inputBody":"{title}({kind})","notification.kind.approval":"等待授权","notification.kind.plan-review":"等待审阅计划","notification.kind.question":"等待选择答案","notification.bellOn":"通知开启","notification.bellOff":"通知关闭","notification.bellShow":"显示输入框旁的铃铛图标","quota.cardTitle":"额度查询","quota.navToggle":"设置页左列显示「额度查询」入口","quota.navToggleHint":"开启后在设置页左侧标签列底部显示「额度查询」快捷入口","quota.window.rolling":"滚动 5 小时","quota.window.tokens-limit-u3-n5":"5 小时 Token","quota.window.tokens-limit-u6-n1":"本周 Token","quota.window.tokens-limit":"Token 额度","quota.window.time-limit-u5-n1":"MCP 配额","quota.window.time-limit":"MCP 配额","quota.window.credit-limit":"点数额度","quota.window.credits":"已用额度","quota.window.balance":"余额","quota.window.weekly":"本周","quota.window.monthly":"本月","quota.window.codex-5h":"5 小时","quota.window.codex-day":"本日","quota.window.codex-week":"本周","quota.window.codex-month":"本月","quota.window.gemini-5h":"5 小时","quota.window.gemini-week":"本周","quota.window.claude-5h":"5 小时","quota.window.claude-week":"本周","quota.panel.title":"额度用量","quota.resetCard.more":"另有 {count} 张","quota.resetCard.less":"收起","quota.panel.used":"已用","quota.panel.remaining":"剩余","quota.ring.label":"额度查询","quota.gauge.baseline":"基准满额","quota.gauge.calibrate":"设当前为满额","quota.gauge.calibrateTip":"将当前余额 {amount} 设为 100% 满额基准","quota.gauge.ratio":"余量 {percent}%","quota.filter.showAll":"查看全部额度 ({count})","quota.filter.currentOnly":"仅看当前模型","quota.updated":"更新于 {time}","quota.refreshing":"刷新中…","quota.empty":"暂无数据","quota.resetIn":"重置于 {time}","quota.window.stale":"缓存","quota.window.staleTip":"该账号实时查询失败,显示的是 CPA 上次缓存的快照(非实时值)","quota.family.gemini":"Gemini","quota.family.claude":"Claude","quota.family.codex":"Codex","quota.family.other":"其他","quota.resetCard.title":"重置卡","quota.resetCard.codexTitle":"Codex 重置卡","quota.resetCard.expires":"{date} 到期","quota.resetCard.expired":"已过期","quota.resetCard.edit":"添加重置卡","quota.advanced":"配置","quota.resetCard.dateLabel":"到期日期","quota.resetCard.nameLabel":"名称(可选)","quota.resetCard.add":"添加","quota.resetCard.cancel":"取消","quota.resetCard.remove":"移除","quota.retryAt":"{time} 后可重试","quota.refresh":"刷新","quota.reorder":"调整排序与显隐","quota.order.title":"额度卡排序与显隐","quota.order.hint":"可通过拖拽或点击上下箭头调整卡片顺序;关闭开关可隐藏不常用卡片(隐藏只影响展示,不影响查询)。","quota.order.allHidden":"所有已适配卡片都被隐藏了;在「调整排序与显隐」里打开开关即可恢复显示。","quota.usageLink":"打开官网用量页","quota.adapt":"适配","quota.kind.opencode-go":"OpenCode Go","quota.kind.zai-coding-cn":"智谱 GLM Coding Plan","quota.kind.openrouter":"OpenRouter","quota.kind.kimi":"Kimi / Moonshot","quota.kind.siliconflow":"硅基流动","quota.kind.deepseek":"DeepSeek 开放平台","quota.kind.stepfun":"StepFun 余额","quota.kind.stepfun-step-plan":"StepFun Step Plan 订阅","quota.kind.cliproxy":"CLIProxyAPI 账号额度","quota.kind.xiaomi-token-plan-cn":"小米 MiMo Token Plan","quota.kind.command-goat":"Command Code 账号额度","quota.window.total_token":"套餐总额度","quota.window.compensation_total_token":"补偿积分","quota.window.plan-name":"订阅套餐","quota.window.credit-pool":"月度 Credit 池","quota.window.topup-credit":"加油包 Credit","quota.window.five-hour":"5 小时额度","quota.window.period-spend":"本周期已用","quota.error.no-subscription":"当前账号没有生效中的订阅额度","quota.error.credential-rejected":"凭据被上游拒绝,请重新填写(控制台类渠道请重新从浏览器复制登录态)","quota.credential.editCookie":"填写控制台 Cookie(网页登录态)","quota.credential.editToken":"填写控制台令牌(Oasis-Token,浏览器登录态)","quota.kindAuto":"自动识别","quota.noAdapted":"暂无已适配的供应商,可在下方手动适配","quota.disable":"停用查询","quota.followAuto":"跟随自动识别","quota.addAdapt":"手动适配:","quota.addPickProvider":"选择供应商","quota.addPickKind":"选择类型","quota.saveFailed":"保存失败:{error}","quota.unknownProvider":"未知供应商","quota.error.credential-missing":"凭据未配置(请在 DSH 凭据中设置对应 API key)","quota.error.no-base-url":"该供应商未配置 baseURL","quota.error.credentials-unavailable":"凭据服务不可用","quota.error.http-status":"上游返回错误状态","quota.error.network":"网络错误","quota.error.network-transient":"网络不稳定(已自动重试)","quota.error.timeout":"请求超时","quota.error.bad-payload":"响应格式异常","quota.error.mgmt-disabled":"CLIProxyAPI 管理面未启用(未设置 remote-management secret-key)","quota.error.host-not-pinned":"baseURL 与适配时记录的域名不一致,请重新保存适配","quota.error.upstream-status":"上游官方接口返回错误状态","quota.error.upstream-error":"上游服务故障(额度接口报错,稍后自动重试)","quota.credential.edit":"填写 API 密钥","quota.credential.editManagement":"填写管理密钥(网页登录的 key)","quota.credential.nameLabel":"凭据名称","quota.credential.valueLabel":"密钥值","quota.credential.save":"保存","quota.credential.primary":"主名(别名存一即可)","quota.credential.clear":"清除已存","quota.credential.clearConfirm":"再次点击清除","quota.credential.configured":"已配置","quota.credential.notConfigured":"未配置","quota.credential.saveFailed":"凭据保存失败:{error}","quota.credential.unknown-hint":"未知凭据名","quota.credential.invalid-value":"密钥值不能为空","quota.credential.credentials-unavailable":"凭据服务不可用","quota.error.unknown":"未知错误","quota.unadapted":"该供应商未适配,请先在下方选择类型","quota.unit.day":"{count} 天","quota.unit.hour":"{count} 小时","quota.unit.minute":"{count} 分钟","quota.window.granted-balance":"赠送余额(未过期)","quota.peak.nowIdle":"当前空闲时段 · 半价计费","quota.peak.nowPeak":"当前高峰时段 · 标准价","quota.peak.untilIdle":"{time} 转空闲({dur}后)","quota.peak.untilPeak":"{time} 转高峰({dur}后)","quota.peak.tag.peak":"忙时","quota.peak.tag.idle":"闲时","quota.peak.caption":"空闲时段价格为高峰时段价格的一半。高峰时段:北京时间周一至周五(不含中国法定节假日)09:00–12:00、14:00–18:00;其余时段,包括周末及中国法定节假日全天均为空闲时段。","quota.peak.caption.degraded":"暂未收录 {year} 年的中国法定节假日安排,本年度按「周一至周五 09:00–12:00、14:00–18:00」估算,节假日期内可能显示为高峰;更新插件后即可自动收录当年安排。","quota.peak.caption.zai":"非高峰时段模型调用按基础积分的 50% 抵扣。高峰时段:每周一至周五 14:00–18:00(UTC+8);其余时间为非高峰时段,周六和周日全天空闲。","features.fileEditor":"右栏文件编辑","features.modelProviderIcons":"模型厂家图标","editor.viewer":"编辑","editor.loading":"正在读取文件…","editor.preview":"预览","editor.save":"保存","editor.saving":"保存中…","editor.saved":"已保存","editor.unsaved":"未保存","editor.reload":"重新加载","editor.undo":"撤销保存","editor.keyHint":"Ctrl/Cmd + S 保存","editor.conflict.title":"磁盘内容已变化,保存被拒绝","editor.conflict.body":"文件在打开后被其他改动覆盖(Agent 或其他窗口写入)。重新加载会丢弃你的修改,覆盖会把当前编辑内容直接写盘。","editor.conflict.reload":"重新加载(丢弃修改)","editor.conflict.overwrite":"用我的内容覆盖","editor.confirm.previewTitle":"返回预览","editor.confirm.previewBody":"有未保存的修改,返回官方预览将丢弃这些修改。","editor.confirm.saveBack":"保存并返回","editor.confirm.discardBack":"丢弃并返回","editor.confirm.reloadTitle":"重新加载","editor.confirm.reloadBody":"有未保存的修改,重新加载将丢弃这些修改并读取磁盘当前内容。","editor.confirm.reloadGo":"丢弃并重新加载","editor.confirm.undoTitle":"撤销保存","editor.confirm.undoBody":"将把文件恢复为本次保存之前的内容;未保存的修改会一并丢弃。","editor.confirm.cancel":"继续编辑","editor.undoConflict.title":"无法自动撤销","editor.undoConflict.body":"磁盘内容在本次保存之后又发生了变化,不能自动恢复为保存前内容;可重新加载查看当前内容。","editor.undoConflict.dismiss":"关闭","editor.readonlyHint":"只读","editor.retry":"重试","editor.error.file-not-found":"文件不存在(可能已被移动或删除)。","editor.error.not-regular-file":"这不是普通文件,无法编辑。","editor.error.too-large":"文件超过 {limit},右栏编辑器只读:请用其他预览器查看。","editor.error.binary-file":"不是 UTF-8 文本文件,右栏编辑器无法编辑。","editor.error.session-not-live":"该会话当前未激活,无法编辑(可切换到其他预览器查看)。","editor.error.file-forbidden":"当前会话的沙箱策略不允许写入这个文件。","editor.error.unavailable":"宿主文件服务不可用,暂时无法编辑。","editor.error.invalid-address":"文件地址无法识别,无法编辑。","editor.error.file-stale":"磁盘内容已变化,请重新加载后再保存。","editor.error.file-failed":"读写失败,请重试。","editor.error.feature-disabled":"「右栏文件编辑」已在插件配置里关闭。","editor.error.internal":"操作失败,请重试。"},D={"nav.label":"Service Control","nav.restart":"Restart","features.cardTitle":"Service control (dsh-service)","features.cardHint":"Controls optional features and external capabilities. Switches apply instantly without restart.","features.external":"External capabilities","features.healthDiagnostics":"Health diagnostics","features.modelUsage":"Model statistics","features.quotaLookup":"Quota lookup","features.backupMaintenance":"Backup maintenance","features.taskNotifications":"Task notifications","features.healthz":"/healthz liveness endpoint","features.skillManager":"Skill manager","features.readOnly":"These settings are read-only.","tabs.skills":"Skills","tabs.subagent":"Subagents","tabs.sessions":"Sessions","features.subagentRoute":"Subagent model","features.mobileAdaptation":"Mobile adaptation","features.sessionManager":"Session manager","sessions.title":"Session manager","sessions.filter.all":"All","sessions.filter.archived":"Archived","sessions.filter.deleted":"Deleted","sessions.filter.subagent":"Subagents only","sessions.refresh":"Refresh","sessions.batch.enter":"Select multiple","sessions.batch.exit":"Exit selection","sessions.batch.selectAll":"Select all","sessions.batch.clearAll":"Clear all","sessions.batch.selectSubagents":"Select subagents","sessions.batch.selected":"{count} selected","sessions.batch.selectRow":"Select session: {title}","sessions.batch.export":"Export ({count})","sessions.batch.archive":"Archive ({count})","sessions.batch.unarchive":"Unarchive ({count})","sessions.batch.delete":"Delete ({count})","sessions.batch.clear":"Clear ({count})","sessions.batch.completed":"{action} completed for {count}","sessions.batch.failed":"{action} completed for {done}/{total}; {error}","sessions.batch.deleteTitle":"Delete {count} sessions","sessions.batch.deleteBody":"This permanently deletes the logs of the archived sessions below. This cannot be undone.","sessions.batch.deleteItem":"{title} ({bytes})","sessions.batch.clearTitle":"Clear {count} deleted records","sessions.batch.clearBody":"Are you sure you want to clear the following {count} deleted records? They will be permanently removed from the record list.","sessions.status.loading":"Loading…","sessions.status.working":"Working…","sessions.status.unavailableTime":"Time unavailable","sessions.glyph.expand":"▸","sessions.glyph.collapse":"▾","sessions.glyph.back":"←","sessions.search.placeholder":"Search conversation content…","sessions.search.archivedOnly":"Search archived only","sessions.sort.createdDesc":"Created (newest first)","sessions.sort.createdAsc":"Created (oldest first)","sessions.sort.title":"By title","sessions.sort.project":"By project","sessions.projectGroup.countOne":"1 session","sessions.projectGroup.countMany":"{count} sessions","sessions.projectGroup.noCwd":"(no workspace)","sessions.row.live":"Running","sessions.row.archived":"Archived","sessions.row.deleted":"Deleted","sessions.row.subagent":"Subagent","sessions.subagent.hostLegacy":"The plugin host is outdated and the list carries no subagent flags; upgrade the plugin and restart dsh for “Subagents only” to take effect","sessions.row.events":"{count} events","sessions.row.noTitle":"(No title)","sessions.action.view":"View","sessions.action.export":"Export","sessions.action.archive":"Archive","sessions.action.unarchive":"Unarchive","sessions.action.delete":"Delete","sessions.action.clear":"Clear","sessions.empty.all":"No sessions","sessions.empty.archived":"No archived sessions","sessions.empty.deleted":"No deleted sessions yet","sessions.empty.search":"No matches for “{query}”","sessions.error.load":"Load failed: {error}","sessions.error.feature-disabled":"Session manager is disabled in settings","sessions.error.network":"Network error: cannot reach the host","sessions.error.session-not-found":"Session not found or already deleted","sessions.error.live-session-rejected":"Session is running and cannot be deleted","sessions.error.session-not-archived":"Only archived sessions can be deleted","sessions.error.unknown-delete-plan":"Delete request expired, please retry","sessions.error.invalid-session-ids":"Invalid session IDs","sessions.error.unarchive-unsupported":"Unarchiving is not supported by current host (requires DSH ≥ 0.1.6)","sessions.error.export-failed":"Export failed: {error}","sessions.detail.back":"Back to list","sessions.detail.open":"Open in official view","sessions.detail.archiveDisabled":"Archived or blank sessions cannot be opened in the official view","sessions.detail.exportAll":"Export full ZIP","sessions.detail.exporting":"Exporting…","sessions.detail.loadMore":"Load more ({remaining})","sessions.detail.noMore":"All {total} events loaded","sessions.detail.noise":"System events","sessions.detail.noiseBlock":"{count} system events","sessions.detail.noiseExpand":"Expand all","sessions.detail.noiseCollapse":"Collapse","sessions.detail.toolBlock":"{count} tool messages","sessions.detail.toolCollapse":"Collapse","sessions.detail.cwd":"{cwd}","sessions.detail.created":"Created {time}","sessions.md.copy":"Copy","sessions.md.copied":"Copied","sessions.md.footnotes":"Footnotes","sessions.hit.title":"{count} hits","sessions.hit.return":"Back to search results","sessions.hit.badge":"HIT","sessions.hit.prev":"◀ Prev","sessions.hit.next":"Next ▶","sessions.hit.inSession":"{count} matches in this session","sessions.delete.title":"Delete session","sessions.delete.body":"This permanently deletes the session log below. This cannot be undone.","sessions.delete.consequence.log":"Delete session log ({bytes})","sessions.delete.consequence.sidebar":"Session disappears from the official sidebar","sessions.delete.confirm":"Delete","sessions.delete.cancel":"Cancel","sessions.delete.done":"Deleted","sessions.clear.title":"Clear deleted record","sessions.clear.body":"Are you sure you want to clear this deleted record? It will be permanently removed from the record list.","sessions.clear.confirm":"Clear","sessions.clear.cancel":"Cancel","sessions.export.includes":"Includes subagents and attachments","sessions.navToggle":"Show “Sessions” entry in the settings sidebar","sessions.oneWay":"Archiving cannot be undone","sessions.oneWayHint":"Archived sessions are hidden from the official sidebar; the official UI cannot unarchive, deletion here is the only way out.","mobile.fab.label":"Open sidebar menu","mobile.debug.title":"Mobile diagnostics","mobile.debug.viewport":"Viewport","mobile.debug.drawer":"Drawer","mobile.debug.sidebarPanel":"Side panel","mobile.debug.details":"Details","mobile.debug.rightbar":"Rightbar","mobile.debug.errors":"JS errors","mobile.debug.stateOn":"on","mobile.debug.stateOff":"off","mobile.debug.immersive":"Immersive","mobile.debug.immersive.reason.gesture":"swipe","mobile.debug.immersive.reason.arrival":"arrival","mobile.debug.immersive.reason.focus":"focus","mobile.debug.immersive.reason.button":"to-bottom","mobile.debug.edge":"Edge","mobile.debug.edge.fieldStart":"start","mobile.debug.edge.fieldMoves":"moves","mobile.debug.edge.fieldLast":"last","mobile.debug.edge.fieldCancel":"cancel","mobile.debug.edge.fieldReason":"reason","mobile.debug.edge.open":"open","mobile.debug.edge.leftOpen":"open L","mobile.debug.edge.rightOpen":"open R","mobile.debug.edge.leftClose":"close L","mobile.debug.edge.rightClose":"close R","mobile.debug.edge.reason.multiTouch":"multi-touch","mobile.debug.edge.reason.modal":"modal","mobile.debug.edge.reason.hScroll":"h-scroll","mobile.debug.edge.reason.noPoint":"no point","mobile.debug.edge.reason.absentRight":"right sidebar absent","mobile.debug.edge.reason.badButton":"right sidebar toggle unavailable","mobile.debug.edge.reason.noTracker":"no tracker","conversation.jump.previousReply":"Previous user message","subagent.title":"Subagent model","subagent.loading":"Reading configuration…","subagent.hint":'Controls the model used by subagents without an explicit model; explicitly specified ones are unaffected. Switching modes keeps the saved custom model and fallback list; switch back to "Custom" to reuse them.',"subagent.mode.label":"Mode","subagent.mode.inherit":"Default (no override)","subagent.mode.inherit.desc":"Injects nothing and keeps the native inheritance: subagents use the model baked in when the session was created.","subagent.mode.follow":"Follow main model","subagent.mode.follow.desc":"Each delegation reads the model the main conversation actually uses right now (route of its latest request) and injects it.","subagent.mode.custom":"Custom","subagent.mode.custom.desc":"Every delegation without an explicit model uses the model selected below.","subagent.provider":"Provider","subagent.model":"Model","subagent.reasoningEffort":"Reasoning effort","subagent.reasoningEffort.default":"Use model default (unspecified)","subagent.reasoningEffort.unavailable":"This model does not declare selectable reasoning levels","subagent.modelsEmpty":"Model list is empty: host LLM channels cannot be resolved.","subagent.save":"Save","subagent.saved":"Saved","subagent.reset":"Reset to default","subagent.saving":"Saving…","subagent.unavailable":"The host exposes no subagents registry (service missing); this configuration has no effect.","subagent.error":"Operation failed: {error}","subagent.error.feature-disabled":"Subagent model is switched off in settings","subagent.error.llm-unavailable":"Host LLM service is unavailable","subagent.error.unknown-mode":"Unknown mode","subagent.error.invalid-model-route":"Provider or model is not in the host catalog","subagent.error.invalid-reasoning-effort":"This reasoning effort is not supported by the selected model; choose another","subagent.error.network":"Network error: cannot reach the host","subagent.fallback.title":"Fallback models (in order)","subagent.fallback.item":"Fallback {index}","subagent.fallback.hint":"When the primary route is unavailable (channel unloaded, or quota state marks it unserviceable), try fallbacks in order; if none works, fall back to native inheritance instead of failing the delegation.","subagent.fallback.add":"Add fallback","subagent.fallback.sort":"Reorder","subagent.fallback.sort.done":"Done","subagent.fallback.remove":"Remove","subagent.fallback.up":"Move up","subagent.fallback.down":"Move down","subagent.fallback.empty":"No fallbacks: delegations fall back to native inheritance when the primary route is unavailable.","subagent.fallback.limit":"Limit reached ({max})","subagent.error.invalid-fallback-route":"Fallback entry is not in the host catalog, please choose again","subagent.dock.label":"Subagents: ","subagent.dock.title":"Show subagent info under the composer","skills.error":"Operation failed: {error}","skills.error.feature-disabled":"Skill manager is switched off in settings","skills.error.network":"Network error, try again later","skills.error.read-only-source":"This entry lives in a read-only source","skills.error.unknown-skill":"Skill not found; the list may have changed, refresh and retry","skills.error.invalid-skill":"Entry is currently invalid: {reason}","skills.error.invalid-field":"Invalid switch field","skills.error.invalid-enable":"Invalid switch value","skills.error.invalid-model-route":"Invalid model route; pick a model again","skills.error.invalid-description":"Description cannot be empty","skills.error.describe-timeout":"Model generation timed out (90s)","skills.error.empty-output":"Model produced no body output (finish: {kind})","skills.error.batch-cancelled":"Cancelled","skills.error.entry-changed":"Entry changed during the run; skipped","skills.error.unknown-batch-plan":"Batch plan is stale; regenerate it","skills.error.batch-already-done":"That batch already finished","skills.error.batch-already-cancelled":"That batch was already cancelled","skills.error.annotated-confirm-required":"Annotated skills need an explicit confirm before being overwritten","skills.empty":"No skills found","skills.filter":"Filter by name…","skills.expandAll":"Expand all","skills.collapseAll":"Collapse all","skills.colon":": ","skills.group.auto":"Auto-loaded","skills.group.manual":"Manual only","skills.group.disabled":"Fully disabled","skills.source.project-dsh":"Project .dsh","skills.source.project-agents":"Project .agents","skills.source.user-dsh":"User DSH","skills.source.user-agents":"User .agents","skills.source.bundled":"Bundled","skills.source.custom":"Custom dir","skills.badge.shadowed":"Shadowed","skills.badge.readonly":"Read-only","skills.badge.annotated":"Annotated","skills.note.stale":"Body changed; refill needed","skills.note.remove":"Remove AI note","skills.note.panelOnly":"Notes are stored and shown in this panel only; SKILL.md is never modified.","skills.log.title":"Run log","skills.log.located":"Located skill {name} ({chars} chars)","skills.log.attempt":"Attempt {n}/{total}: calling {route}","skills.log.received":"Output received ({chars} chars), parsing JSON…","skills.log.parsed":"Parsed OK, draft ready","skills.log.failed-retry":"Failed: {message}, retrying","skills.log.failed":"Failed: {message}","skills.log.wait":"Waiting for model output… {secs}s","skills.log.first-delta":"Model started returning","skills.log.first-reasoning":"Model started returning (reasoning first)","skills.log.progress":"Received {chars} chars","skills.log.finish-reasoning-only":"Finished: {kind} (only {chars} reasoning chars, no body)","skills.log.finish-empty":"Finished: {kind} (no output)","skills.log.block-extract":"Extracted body from whole block ({chars} chars)","skills.log.item-start":"Generating note…","skills.batch.toggle":"Batch annotate","skills.batch.collapse":"Collapse","skills.batch.already":"A batch is already running; wait for it or cancel first","skills.invalid.legacy":"Legacy invocation keys present; excluded from the model catalog","skills.invalid.other":"Invalid entry: {reason}","skills.fix.legacy":"Fix legacy keys","skills.switch.model":"Visible to model","skills.switch.user":"Invocable via /","skills.switch.confirm":"Click again to apply","skills.describe.button":"Fill with AI","skills.describe.title":"Fill metadata with AI — {name}","skills.describe.model":"Model","skills.describe.models.loading":"Loading models…","skills.describe.models.empty":"No configured models found","skills.describe.run":"Generate draft","skills.describe.running":"Generating…","skills.apply.title":"Save AI note — {name}","skills.apply.description":"Description","skills.apply.usage":"Usage","skills.apply.old":"Old","skills.apply.new":"New","skills.apply.confirm":"Save note","skills.apply.done":"Note saved","skills.apply.keepusage":"(keep existing)","skills.llm.unavailable":"Host LLM service unavailable; AI fill disabled.","skills.batch.title":"Batch-fill skill descriptions","skills.batch.hint":"Call the selected model per skill to draft explanations for uncommented or changed skills; annotated skills are listed separately and are only overwritten after an explicit confirm. Results stay in the plugin and render below the entry.","skills.batch.plan":"Plan batch","skills.batch.candidates":"{count} candidates","skills.batch.estBytes":"~{size} of content will be sent","skills.batch.skipped":"{count} skipped (invalid / shadowed)","skills.batch.annotated":"{count} annotated will be overwritten","skills.batch.annotatedList":"To be overwritten","skills.batch.forceConfirm":"Confirm forced refill ({count} annotated)","skills.skippedList":"Skipped","skills.skip.shadowed":"shadowed","skills.skip.invalid":"invalid ({reason})","skills.skip.reason.missing-frontmatter":"no frontmatter","skills.skip.reason.missing-name":"missing name","skills.skip.reason.invalid-name":"invalid name","skills.skip.reason.missing-description":"missing description","skills.skip.reason.too-large":"file too large","skills.skip.reason.legacy-invocation-key":"legacy invocation keys","skills.batch.start":"Start batch","skills.batch.progress":"Progress {done}/{total}","skills.batch.current":"Current: {name}","skills.batch.cancel":"Cancel","skills.batch.phase.idle":"Idle","skills.batch.phase.planned":"Planned — review candidates, then press Start","skills.batch.phase.running":"Running","skills.batch.phase.done":"Done","skills.batch.phase.cancelled":"Cancelled","skills.batch.failures":"{count} failed","skills.batch.no-candidates":"Nothing to fill","skills.batch.model":"Model","overlay.label":"Service restart status","recovery.waiting.title":"Restarting service…","recovery.waiting.body":"Waiting for a new DSH Web process. Elapsed: {seconds} seconds.","recovery.timeout.title":"Service has not recovered","recovery.timeout.body":"Waited 60 seconds. Check the external process manager, or refresh the page manually.","recovery.manual":"Manual reload","health.title":"Health","health.uptime":"Uptime","health.rss":"Memory RSS","health.platform":"Platform","health.nodeVersion":"Node version","health.liveSessions":"Live sessions","health.persistedSessions":"Persisted sessions","health.activeAgents":"Active agents","health.activeJobs":"Background jobs","health.uptimeValue":"{hours} h {minutes} min","health.error":"Could not read health metrics","health.check":"Run health check","health.checking":"Checking…","health.overall.ok":"Healthy","health.overall.warning":"Warning","health.overall.error":"Error","health.alert.title":"Health alert","health.alert.diagnostics":"The health check reported {status}. Review the affected items below.","health.status.ok":"Healthy","health.status.warning":"Warning","health.status.error":"Error","health.status.info":"Info","health.check.session-storage":"Session storage","health.check.workspace-registry":"Workspace registry","health.check.dsh-home":"DSH_HOME","health.check.backup-storage":"Backup storage","health.check.tar":"tar","health.check.permissions":"File permissions","health.check.runtime-env":"Runtime environment","health.check.node-version":"Node runtime","health.detail.runtime-env.managed":"Managed by {kind}; the process restarts automatically after exit","health.detail.runtime-env.declared":"Declared externally managed via DSH_SERVICE_RUNTIME_ENV","health.detail.runtime-env.manual":"Likely a manual terminal launch — nothing restarts the process after exit; one-click upgrade already keeps it running","health.detail.runtime-env.unknown":"No process manager detected, so automatic restart cannot be confirmed; set DSH_SERVICE_RUNTIME_ENV=managed if one exists","health.detail.node-version.ok":"{version}, meets the >={required} requirement","health.detail.node-version.warning":"{version} is below the required {required}.x; upgrading Node is recommended","health.detail.session-storage.ok":"Available, with {count} session snapshots","health.detail.workspace-registry.ok":"Available, with {count} workspaces","health.detail.dsh-home.ok":"Directory is accessible with mode {mode}","health.detail.backup-storage.empty":"Backup directory is available; no backups exist yet","health.detail.backup-storage.ok":"Backup directory is available, with {count} backups using {size}","health.detail.tar.ok":"The tar executable is available","health.detail.permissions.ok":"Permission check passed with no anomalies","health.detail.permissions.warning":"Found {count} file or directory permission anomalies","health.detail.generic":"{status}","health.check.plugins":"Plugins","health.detail.plugins.unavailable":"Plugin health check unavailable (host loader is not exposed)","health.detail.plugins.ok":"{total} plugins healthy","plugin.issue.failed":"{failed} failed plugin(s)","plugin.issue.pending":"{pending} pending plugin(s)","plugin.issue.info":"{count} plugin state(s) need review","plugin.state.pending":"Waiting","plugin.state.loading":"Loading","plugin.state.failed":"Failed","plugin.state.disposed":"Disposed","plugin.state.unknown":"Unknown state","plugin.state.unloading":"Unloading","plugin.missingDeps":"Missing deps: {deps}","plugin.error":"Error: {error}","plugin.restart":"Reload","plugin.restarting":"Reloading…","plugin.restartConfirm":"Confirm reload","plugin.restartHint":'Reloading "{name}" re-runs its startup logic; the failure state refreshes afterwards.',"plugin.restartCancel":"Cancel","plugin.restartFailed":"Reload failed: {detail}","plugin.error.unknown-plugin":"Plugin not found","plugin.error.loader-unavailable":"Host loader unavailable","plugin.error.plugin-disabled":"The plugin is disabled and cannot be reloaded","plugin.error.not-failed":"The plugin is not in a failed state","plugin.error.restart-failed":"Still failed after reload","health.check.plugin-compat":"Plugin compatibility","health.detail.plugin-compat.unavailable":"Plugin compatibility check unavailable (host loader is not exposed)","health.detail.plugin-compat.ok":"Scanned {total} plugins; no references to changed interfaces","plugin.compat.kind.broken":"Possibly incompatible","plugin.compat.kind.soft":"Kept for backward compatibility","plugin.compat.kind.declared":"Stale declaration","plugin.compat.kind.unknown":"Not scanned","plugin.compat.issue.broken":"{count} plugin(s) possibly incompatible","plugin.compat.issue.soft":"{count} plugin(s) keep retired interfaces for backward compatibility","plugin.compat.issue.declared":"{count} plugin(s) with stale declarations only (not referenced in code)","plugin.compat.issue.unknown":"{count} plugin(s) could not be scanned","plugin.compat.declared":"Declares a removed interface but never references it in code — the official loader silently skips missing suppliers, so this is harmless today and only signals the author to clean up","plugin.compat.badge.active":"Active in current DSH","plugin.compat.badge.future":"Normal now (triggers upon DSH ≥ {since})","plugin.compat.category.package-removed":"Package removed","plugin.compat.category.slot-retired":"Slot retired","plugin.compat.category.method-removed":"Method removed","plugin.compat.category.event-removed":"Event removed","plugin.compat.category.hash-migrated":"CSS hash migrated","plugin.compat.category.attribute-removed":"DOM attribute removed","plugin.compat.meta.since":"Impacts: DSH ≥ {since}","plugin.compat.meta.reason":"Reason","plugin.compat.meta.impact":"Impact","plugin.compat.meta.advice":"Advice","plugin.compat.reason.client-runtime":"Official web roster dropped @deepseek-ai/dsh-client-runtime in DSH 0.1.2-alpha.2","plugin.compat.impact.client-runtime":"Browser loader waits for missing supplier, causing the plugin to hang in pending state","plugin.compat.advice.client-runtime":"Remove the package from dsh.client.inject in package.json","plugin.compat.reason.sqlite-persistence":"Official SQLite session persistence package was dropped in DSH 0.1.2-alpha.3; JSONL is the only official provider","plugin.compat.impact.sqlite-persistence":"Importing this package causes resolution failure or startup crashes","plugin.compat.advice.sqlite-persistence":"Drop the dependency on sqlite persistence and use standard JSONL or public session APIs","plugin.compat.reason.code-runtime":"Code execution package was renamed and refactored in DSH 0.1.6-alpha.1, replaced by ptc-runtime","plugin.compat.impact.code-runtime":"Code execution engines depending on this package fail to load","plugin.compat.advice.code-runtime":"Upgrade to @deepseek-ai/dsh-ptc-runtime","plugin.compat.reason.e2b-runtime":"Built-in E2B sandbox backend was removed in DSH 0.1.6-alpha.1","plugin.compat.impact.e2b-runtime":"Sandbox logic depending on this package fails to load","plugin.compat.advice.e2b-runtime":"Use official execution environments or external MCP servers","plugin.compat.reason.session-start-event":"Lifecycle event dispatch was unified in DSH 0.1.6-alpha.1 (agent/session-start was removed)","plugin.compat.impact.session-start-event":"Event listeners never fire, breaking timing hooks","plugin.compat.advice.session-start-event":"Listen to agent/created via ctx.on and inspect payload.source","plugin.compat.reason.chat-hash":"Chat view was split into dsh-client-ui-chat in DSH 0.1.2-alpha.2, shifting CSS module prefix (Md3f7G_ → EvIC1a_)","plugin.compat.impact.chat-hash":"Selectors hardcoding the old class prefix fail to match target DOM elements","plugin.compat.advice.chat-hash":'Use stem suffix matching (e.g. [class*="_toBottomSlot"])',"plugin.compat.reason.stats-hash":"Status line view moved into chat package in DSH 0.1.2-alpha.2, changing class prefix from FJxK0a_ to -NDN2W_","plugin.compat.impact.stats-hash":"Hardcoded selectors fail to find status line elements","plugin.compat.advice.stats-hash":"Use stem matching, or adapt to StatsPills on DSH 0.1.5+","plugin.compat.reason.time-hover-root":"Turn timestamp interaction was overhauled in DSH 0.1.2-alpha.2, deleting data-time-hover-root DOM attribute","plugin.compat.impact.time-hover-root":"Scripts relying on this attribute to locate turn timestamps fail","plugin.compat.advice.time-hover-root":"Use the stable [data-turn-tail] attribute instead","plugin.compat.reason.settings-plugin-item":"Settings panel was redesigned in DSH 0.1.6-alpha.2, retiring the settings.plugin.item slot","plugin.compat.impact.settings-plugin-item":"Configuration cards no longer render inside the settings dialog; plugin core runs normally","plugin.compat.advice.settings-plugin-item":"Migrate to the dedicated plugins page slot plugins.bundle.config, or register both for compatibility","plugin.compat.reason.sessions-open-method":"Session lifecycle management was introduced in DSH 0.1.6-alpha.2, removing the imperative ISessions.open method","plugin.compat.impact.sessions-open-method":"Calling the sessions.open method fails silently or throws","plugin.compat.advice.sessions-open-method":"Use uiWorkspace.openSession or keep dual-level fallbacks","plugin.compat.break.client-runtime":"Declares the removed client supplier @deepseek-ai/dsh-client-runtime (dropped from the official roster in 0.1.2-alpha.2; the browser half may fail to mount)","plugin.compat.break.sqlite-persistence":"Depends on the removed session persistence backend @deepseek-ai/dsh-session-persistence-sqlite (JSONL is the only official provider since 0.1.2-alpha.3)","plugin.compat.break.code-runtime":"Depends on the removed code runtime backend @deepseek-ai/dsh-code-runtime (replaced by ptc-runtime in 0.1.6-alpha.1)","plugin.compat.break.e2b-runtime":"Depends on the removed sandbox backend @deepseek-ai/dsh-e2b (built-in E2B removed in 0.1.6-alpha.1)","plugin.compat.break.session-start-event":"Listens to the removed lifecycle event agent/session-start (replaced by agent/created with source in 0.1.6-alpha.1)","plugin.compat.break.settings-plugin-item":"Keeps the retired settings page slot settings.plugin.item for compatibility with older hosts (new hosts stopped rendering it in 0.1.6-alpha.2 — the config card is hosted via plugins.bundle.config; the plugin runs normally with only the config entry relocated, no action needed)","plugin.compat.break.sessions-open-method":"Calls the removed imperative session-open method sessions.open (removed from ISessions in 0.1.6-alpha.2, clicks do nothing; the official ui-workspace openSession replaces it)","plugin.compat.break.chat-hash":"References the old chat UI style prefix (Md3f7G_, migrated to EvIC1a_ since 0.1.2-alpha.2)","plugin.compat.break.stats-hash":"References the old status-line style prefix (FJxK0a_, migrated to -NDN2W_ since 0.1.2-alpha.2)","plugin.compat.break.time-hover-root":"Uses the removed attribute data-time-hover-root (replaced by data-turn-tail in 0.1.2-alpha.2)","plugin.compat.unknown.unresolved":"Package manifest could not be resolved","plugin.compat.unknown.missing-entry":"No scannable entry file found","plugin.compat.unknown.too-large":"Entry file exceeds the 4 MiB scan limit","tabs.overview":"Overview","tabs.notify":"Notifications","tabs.health":"Health","tabs.usage":"Models","tabs.quota":"Quota lookup","overview.container":"Process and runtime","overview.errors":"Errors","overview.status.normal":"All systems nominal","overview.status.info":"You have {count} note(s)","overview.status.warning":"You have {count} item(s) to review","overview.status.error":"You have {count} item(s) needing attention","overview.backupEmpty":"No backups yet — consider creating one","overview.resetCardExpiring":"Reset card expires within 24 hours: {cards}","overview.updateAvailable":"A new version is available","tabs.backup":"Backup","tabs.restart":"Restart","tabs.maintenance":"Maintenance","tabs.configuration":"Configuration","tabs.features":"Features","tabs.notifications":"Notifications","tabs.navOrder":"Settings Nav","config.navOrder.title":"Settings Navigation Order & Visibility","config.navOrder.moveUp":"Move up","config.navOrder.moveDown":"Move down","config.navOrder.visible":"Visible","config.navOrder.hidden":"Hidden","config.navOrder.locked":"Current panel (locked)","config.navOrder.reset":"Reset to default","config.navOrder.saved":"Saved","config.navOrder.save":"Save order","config.navOrder.empty":"No registered settings tabs detected","maintenance.empty":"All maintenance pages are disabled. Enable backup, skills, subagents, or session management under “Configuration → Features”.","config.notificationsDisabled":"Task notifications are turned off on the Features page; these settings are shown for reference only until re-enabled.","features.group.runtime":"Runtime and observation","features.group.maintenance":"Maintenance","features.group.interaction":"Interaction","page.configuration.desc":"Feature switches and task notification settings.","tabs.alert.title":"Service control alert","tabs.alert.body":"These areas need attention: {tabs}","tabs.alert.join":", ","tabs.alert.dot":"Alert on this tab","permissions.title":"File permissions","permissions.description":"Checks whether the Agent can read, write, and enter DSH_HOME and workspaces. Deep scans skip .git; repair adds only the needed permissions and keeps execute bits.","permissions.target":"Target owner: {owner}","permissions.repair":"Repair permissions","permissions.repairing":"Repairing…","permissions.confirm":"Confirm repair","permissions.confirmHint":"Skips .git, restores ownership to the current user, adds Agent read/write access, and keeps existing execute bits.","permissions.cancel":"Cancel","permissions.show":"Permissions & repair","permissions.hide":"Collapse","permissions.error":"Permission operation failed","permissions.summary.ok":"{count} root path(s) passed the check","permissions.summary.warning":"{count} root path(s) need attention","permissions.showDetails":"Show details","permissions.hideDetails":"Hide details","permissions.deep":"Deep check","permissions.deepChecking":"Scanning…","permissions.deepSummary":"Scanned {scanned} entries in {duration} ms; non-editable directories {directories}, non-editable files {files}, unreadable {unreadable}.","backup.title":"Backup management","backup.description":"Backs up sessions, config, and plugin profiles — no node_modules or credentials; never auto-pruned.","backup.create":"Create backup","backup.creating":"Creating…","backup.progress.copy":"Copying session data ({current}/{total})…","backup.progress.archive":"Packing archive ({current}/{total})…","backup.progress.validate":"Verifying archive ({current}/{total})…","backup.progress.publish":"Publishing backup ({current}/{total})…","backup.total":"Total size: {size}","backup.empty":"No backups yet.","backup.delete":"Delete","backup.confirm":"Confirm delete","backup.confirmHint":"Delete this backup? This cannot be undone.","backup.cancel":"Cancel","backup.error":"Backup operation failed","backup.export":"Export","backup.exporting":"Exporting…","backup.exportError":"Backup export failed","backup.restore":"Restore","backup.inspecting":"Inspecting…","backup.restoreConfirm":"Confirm restore","backup.restoreHint":"The integrity check passed. Confirm to apply the plan below; the host will recheck the archive and current targets immediately before committing.","backup.restoreError":"Backup restore failed","backup.integrity.ok":"Integrity check passed","backup.integrity.invalid":"Archive cannot be restored","backup.integrity.summary":"{entries} entries, {size} expanded; {sessions} session file(s), {config} config file(s), {profiles} profile manifest(s).","backup.plan.sessions":"The sessions directory will be replaced in full","backup.plan.config":"Replace {replace} config file(s), remove {remove}","backup.plan.profiles":"Replace package.json for {count} profile(s); keep node_modules and all other files","backup.plan.expires":"Restore plan expires at {time}","backup.manualRestartTitle":"Restore completed — manual restart required","backup.manualRestartBody":"The data is restored, but the current process is still running its old state. Press Ctrl+C in the terminal running dsh, then start dsh again.","backup.error.backup-gzip-invalid":"The archive is not a valid gzip file or is damaged.","backup.error.backup-tar-invalid":"The tar structure or checksum is invalid.","backup.error.backup-entry-traversal":"The archive contains an unsafe path traversal.","backup.error.backup-entry-absolute":"The archive contains an absolute path.","backup.error.backup-entry-link":"The archive contains a symbolic or hard link.","backup.error.backup-entry-type":"The archive contains an unsupported special entry.","backup.error.backup-entry-platform":"The archive contains a filename incompatible with another platform.","backup.error.backup-entry-unexpected":"The archive contains files outside the backup scope.","backup.error.backup-profile-invalid":"A profile package.json is invalid.","backup.error.backup-section-missing":"The archive is missing a required section.","backup.error.backup-size-limit":"The archive exceeds a safe size or entry limit.","backup.error.backup-archive-invalid":"The archive failed its integrity check.","backup.error.backup-archive-incomplete":"The archive does not match the backup source (a file was not captured completely), so it was not published.","backup.error.backup-source-changed":"A session is being written; the backup was not completed. Try again shortly.","backup.error.backup-source-unsafe":"The backup source contains a link or special file, so creation was refused.","backup.error.tar-failed":"The archive tool failed. Check that tar and gzip are available.","backup.error.active-work":"Running work was detected; restore is blocked for now.","backup.error.restore-plan-expired":"The restore plan expired. Inspect the backup again.","backup.error.restore-source-changed":"The backup changed before confirmation. Inspect it again.","backup.error.restore-target-changed":"Current data changed before confirmation. Inspect it again.","backup.error.restore-target-unsafe":"A restore target contains an unsafe link or special file.","backup.import":"Import backup","backup.importing":"Importing…","backup.showRecords":"Show backup records","backup.hideRecords":"Hide backup records","version.title":"Version information","version.current":"DSH: ","version.plugin":"dsh-service: ","version.loading":"Loading…","version.dsh.supportBound":" (Adapted for DSH 0.1.1-rc.2 ~ 0.1.6-alpha.2)","update.check":"Check for updates","update.checking":"Checking…","update.current":"Up to date","update.available":"New version: {version}","update.installedPendingRestart":"Installed {version} — restart to take effect","update.detailsButton":"View details","update.detailsHide":"Collapse","update.unavailable":"Latest version is temporarily unavailable","update.unpublished":"No published version is available to check","health.recheck":"Run again","update.details.current":"Current version: {version}","update.details.latest":"Latest version: {version}","update.channelStable":"Stable","update.channelPreview":"Preview","update.channelAlpha":"Alpha","update.upgrade":"Upgrade plugin","update.upgrading":"Upgrading…","update.upgradeError":"Plugin upgrade failed","update.upgradeErrorDetail":"Plugin upgrade failed ({detail})","update.upgradeSuccess":"Upgrade successful, restarting…","update.guardActiveWork":"Active sessions or background tasks are running; resolve them before upgrading","update.guardLinkInstall":"Installed via link: (development mode) — cannot one-click upgrade from the registry; update the source checkout and restart","update.guardFileInstall":"Installed via file: — cannot one-click upgrade from the registry","update.guardNoNewer":"The registry latest is not higher than the current version; refused a possible downgrade","update.guardNoProfile":"No profile with this plugin installed was found to target the upgrade at","update.guardAmbiguous":"Several profiles install this plugin and the loaded copy could not be determined; aborted","update.guardStale":"The command reported success but the installed version did not change (pnpm safety wait likely blocked it); keeping the current version without restarting","update.guardUnreadable":"The command succeeded but the installed version could not be confirmed; the restart was cancelled","update.failPnpmMissing":"pnpm was not found, so the upgrade cannot run; install pnpm first and retry","update.failNetwork":"A transient network failure occurred while fetching dependencies; please retry shortly","update.failFetchTimeout":"Download timed out (slow network or large package); please retry later","update.failReleaseAge":"The new release is blocked by pnpm's fresh-release safety wait; one automatic bypass retry also failed","update.failHoist":"This profile's node_modules was created by a different pnpm major; the rebuild retry also failed","update.failAddingToRoot":"pnpm refused to add at the workspace root (missing -w)","update.failNotWorkspace":"-w was passed but the profile is not a pnpm workspace","update.failIgnoredBuilds":"Dependency build scripts are blocked by pnpm by default, so the upgrade could not finish","env.kind.docker":"Docker container","env.kind.container":"Container (containerd/Kubernetes)","env.kind.systemd":"systemd service","env.kind.pm2":"pm2","env.kind.supervisord":"supervisord","env.kind.kubernetes":"Kubernetes","env.kind.declared":"External process manager (declared manually)","update.manualConfirmTitle":"Confirm before upgrading: manual launch suspected","update.manualConfirm":"No process manager detected. DSH will not restart automatically after the upgrade.","update.manualProceed":"Upgrade anyway","update.manualRestartTitle":"Upgrade finished — manual restart required","update.manualRestartBody":"The new version is installed, but the current process still runs the old one. Press Ctrl+C in the terminal running dsh (or simply close the window), then start dsh again.","restart.title":"Service restart","restart.description":"Restarts the dsh web process. Running work is interrupted; persisted sessions recover.","restart.button":"Restart dsh web","restart.sending":"Sending…","restart.confirm":"Confirm restart","restart.force":"Force restart","restart.cancel":"Cancel","restart.sent":"Restart request sent.","restart.sentHint":"The connection will close shortly. The page will reload automatically after recovery.","restart.idleHint":"No active work was detected. Confirm to disconnect and wait for the service to restart.","restart.manualWarn":"This looks like a manual terminal launch: once confirmed the process exits and nothing restarts it — you must run dsh again yourself.","restart.sentManualHint":"Manual start detected — the service will not relaunch itself. Rerun dsh in the original terminal, then refresh.","restart.navToggle":'Show "Restart" entry in settings left nav',"restart.navToggleHint":"Off by default; when enabled, a quick-restart entry appears at the bottom of the settings left navigation","activity.agent":"Agent","activity.job":"Background job","activity.terminal":"Terminal","activity.warning":"Detected {count} active items; restart interrupts them.","activity.item":"{type}: {label} ({status})","error.update":"Update check failed","error.activity":"Could not check active work","error.restart":"Restart failed","error.instance":"Restart response is missing the process instance ID","usage.title":"Model usage","usage.tooltip.date":"Date: {date}","usage.tooltip.input":"Input {value} token","usage.tooltip.output":"Output {value} token","usage.tooltip.cache":"Cache hit {value} token","usage.axis":"token vertical axis","usage.models.more":"Show {count} more models","usage.models.less":"Collapse model list","usage.modelScope.today":"Today","usage.modelScope.week":"Last 7 days","usage.modelScope.all":"All time","usage.modelSortHint.today":"Sorted by tokens used today, largest first","usage.modelSortHint.week":"Sorted by tokens in the last 7 days, largest first","usage.modelSortHint.all":"Sorted by all-time tokens, largest first","usage.modelBar.today":"{model}: {total} tokens today","usage.modelBar.week":"{model}: {total} tokens in the last 7 days","usage.modelBar.all":"{model}: {total} tokens in total","usage.refresh":"Refresh usage","usage.refreshing":"Refreshing…","usage.empty":"No usage index yet. Select Refresh usage to build the read-only index.","usage.error":"Could not read model usage","usage.allProjects":"All projects","usage.chartSummary":"Total usage over seven days: {total} tokens","usage.barDay":"{day} total {total} tokens","usage.total":"Total tokens","usage.steps":"Successful model steps","usage.stepsValue":"{count} times","usage.modelLine":"{steps} times · Cache hit {hitRate} · Input {input} token · Output {output} token","usage.input":"Input token","usage.output":"Output token","usage.cache":"Cache token","usage.hitRate":"Cache hit rate","usage.today":"Today","usage.sevenDays":"Last 7 days","usage.errors.title":"Model errors","usage.errors.toggle":"Model errors ({count} types)","usage.errors.recent":"Last 24 hours","usage.errors.empty":"No model errors were recorded in the last 24 hours.","usage.toolErrors.title":"Tool errors","usage.toolErrors.toggle":"Tool errors ({count} types)","usage.toolErrors.empty":"No tool errors were recorded in the last 24 hours.","usage.errors.count":"{count} occurrence(s)","usage.failures.global":"Global session indexing (not affected by project filter): {successful} sessions indexed successfully, {failed} skipped.","usage.failures.staleHint":"Totals may include retained cached data from sessions that could not be read again; it may be stale.","usage.failures.show":"Show skipped session details","usage.failures.hide":"Hide skipped session details","usage.failures.id":"Session ID","usage.failures.code":"Error type","usage.failures.message":"Reason","usage.failures.stale":"Retained stale statistics (included in totals)","usage.failures.notStale":"No cached data, excluded from totals","usage.failures.reason.format-migration-failed":"Session format migration was refused.","usage.failures.reason.session-read-failed":"Session could not be opened or read.","usage.failures.reason.session-fold-failed":"Session events could not be indexed.","notification.title":"Notifications","notification.description":"Browser notifications when a root task finishes or approval/choice is needed; subagent completion stays silent.","notification.enable":"Enable notifications","notification.enabled":"Notifications enabled","notification.disable":"Disable notifications","notification.denied":"Notification permission denied","notification.master":"Master switch","notification.done":"Task completion","notification.input":"Approvals & questions","notification.doneTitle":"Task complete","notification.doneBody":"{title} has finished its turn","notification.inputTitle":"Your attention needed","notification.inputBody":"{title} — {kind}","notification.kind.approval":"approval requested","notification.kind.plan-review":"plan review requested","notification.kind.question":"answer requested","notification.bellOn":"Notifications on","notification.bellOff":"Notifications off","notification.bellShow":"Show composer bell icon","quota.cardTitle":"Quota lookup","quota.navToggle":'Show "Quota lookup" entry in settings left nav',"quota.navToggleHint":'When enabled, a "Quota lookup" entry appears at the bottom of the settings left navigation',"quota.window.rolling":"5h rolling","quota.window.tokens-limit-u3-n5":"5-hour tokens","quota.window.tokens-limit-u6-n1":"Weekly tokens","quota.window.tokens-limit":"Token quota","quota.window.time-limit-u5-n1":"MCP quota","quota.window.time-limit":"MCP quota","quota.window.credit-limit":"Credit quota","quota.window.credits":"Credits used","quota.window.balance":"Balance","quota.window.weekly":"This week","quota.window.monthly":"This month","quota.window.codex-5h":"5-hour","quota.window.codex-day":"Daily","quota.window.codex-week":"Weekly","quota.window.codex-month":"Monthly","quota.window.gemini-5h":"5-hour","quota.window.gemini-week":"Weekly","quota.window.claude-5h":"5-hour","quota.window.claude-week":"Weekly","quota.panel.title":"Quota usage","quota.resetCard.more":"{count} more","quota.resetCard.less":"Collapse","quota.panel.used":"Used","quota.panel.remaining":"Remaining","quota.ring.label":"Quota lookup","quota.gauge.baseline":"Baseline full","quota.gauge.calibrate":"Set current as full","quota.gauge.calibrateTip":"Set current balance {amount} as the 100% baseline","quota.gauge.ratio":"{percent}% remaining","quota.filter.showAll":"Show all quotas ({count})","quota.filter.currentOnly":"Current model only","quota.updated":"Updated {time}","quota.refreshing":"Refreshing…","quota.empty":"No data yet","quota.resetIn":"Resets in {time}","quota.window.stale":"cached","quota.window.staleTip":"Live query failed for this account; showing CPA's last cached snapshot (not realtime)","quota.family.gemini":"Gemini","quota.family.claude":"Claude","quota.family.codex":"Codex","quota.family.other":"Other","quota.resetCard.title":"Reset card","quota.resetCard.codexTitle":"Codex reset cards","quota.resetCard.expires":"expires {date}","quota.resetCard.expired":"expired","quota.resetCard.edit":"Add reset card","quota.advanced":"Configuration","quota.resetCard.dateLabel":"Expiry date","quota.resetCard.nameLabel":"Name (optional)","quota.resetCard.add":"Add","quota.resetCard.cancel":"Cancel","quota.resetCard.remove":"Remove","quota.retryAt":"Retry allowed after {time}","quota.refresh":"Refresh","quota.reorder":"Reorder & visibility","quota.order.title":"Quota card order & visibility","quota.order.hint":"Drag items or click the arrows to reorder; toggle off to hide cards you rarely need (hiding only affects display, not querying).","quota.order.allHidden":"All adapted cards are hidden; turn a toggle back on under “Reorder & visibility” to show them again.","quota.usageLink":"Open the official usage page","quota.adapt":"Adapt","quota.kind.opencode-go":"OpenCode Go","quota.kind.zai-coding-cn":"Zhipu GLM Coding Plan","quota.kind.openrouter":"OpenRouter","quota.kind.kimi":"Kimi / Moonshot","quota.kind.siliconflow":"SiliconFlow","quota.kind.cliproxy":"CLIProxyAPI accounts","quota.kind.deepseek":"DeepSeek Platform","quota.kind.stepfun":"StepFun Balance","quota.kind.stepfun-step-plan":"StepFun Step Plan","quota.kind.xiaomi-token-plan-cn":"Xiaomi MiMo Token Plan","quota.kind.command-goat":"Command Code account quota","quota.window.total_token":"Plan total quota","quota.window.compensation_total_token":"Compensation credits","quota.window.plan-name":"Subscription plan","quota.window.credit-pool":"Monthly credit pool","quota.window.topup-credit":"Top-up credit","quota.window.five-hour":"5-hour quota","quota.window.period-spend":"Spent this period","quota.error.no-subscription":"No active quota subscription on this account","quota.error.credential-rejected":"Credential rejected by upstream; enter it again (for console types, copy the browser session again)","quota.credential.editCookie":"Set console cookie (web session)","quota.credential.editToken":"Set console token (Oasis-Token, browser session)","quota.kindAuto":"Auto-detected","quota.noAdapted":"No adapted providers yet — adapt manually below","quota.disable":"Disable","quota.followAuto":"Follow auto-detect","quota.addAdapt":"Manual adapt:","quota.addPickProvider":"Pick provider","quota.addPickKind":"Pick type","quota.saveFailed":"Save failed: {error}","quota.unknownProvider":"Unknown provider","quota.error.credential-missing":"Credential missing (set the API key in DSH credentials)","quota.error.no-base-url":"This provider has no baseURL configured","quota.error.credentials-unavailable":"Credential service unavailable","quota.error.http-status":"Upstream returned an error status","quota.error.network":"Network error","quota.error.network-transient":"Unstable network (auto-retried)","quota.error.timeout":"Request timed out","quota.error.bad-payload":"Unexpected response format","quota.error.mgmt-disabled":"CLIProxyAPI management API disabled (remote-management secret-key not set)","quota.error.host-not-pinned":"baseURL differs from the domain recorded when adapting; save the adapter again","quota.error.upstream-status":"Upstream official API returned an error status","quota.error.upstream-error":"Upstream service error (quota API failed; retrying automatically)","quota.credential.edit":"Set API credential","quota.credential.editManagement":"Set management key (web login key)","quota.credential.nameLabel":"Credential name","quota.credential.valueLabel":"Secret value","quota.credential.save":"Save","quota.credential.primary":"primary (one alias is enough)","quota.credential.clear":"Clear stored","quota.credential.clearConfirm":"Click again to clear","quota.credential.configured":"configured","quota.credential.notConfigured":"not set","quota.credential.saveFailed":"Failed to save credential: {error}","quota.credential.unknown-hint":"Unknown credential name","quota.credential.invalid-value":"Secret value must not be empty","quota.credential.credentials-unavailable":"Credential service unavailable","quota.error.unknown":"Unknown error","quota.unadapted":"Not adapted: pick a provider kind below first","quota.unit.day":"{count} d","quota.unit.hour":"{count} h","quota.unit.minute":"{count} min","quota.window.granted-balance":"Granted balance (unexpired)","quota.peak.nowIdle":"Off-peak now · half price","quota.peak.nowPeak":"Peak now · standard price","quota.peak.untilIdle":"Half price from {time} (in {dur})","quota.peak.untilPeak":"Peak pricing from {time} (in {dur})","quota.peak.tag.peak":"Peak","quota.peak.tag.idle":"Off-peak","quota.peak.caption":"Off-peak price is half the peak price. Peak hours (GMT+8): Mon–Fri 09:00–12:00 and 14:00–18:00, excluding Chinese public holidays. All other times — including all day on weekends and Chinese public holidays — are off-peak.","quota.peak.caption.degraded":'The {year} Chinese public holiday schedule is not yet included; this year is estimated as "Mon–Fri 09:00–12:00 and 14:00–18:00", so holidays may still show as peak. Updating the plugin picks up the current year\'s schedule automatically.',"quota.peak.caption.zai":"Off-peak calls deduct 50% of the base credits. Peak hours: Mon–Fri 14:00–18:00 (UTC+8). All other times are off-peak, including all day Saturday and Sunday.","features.fileEditor":"Right-Sidebar file editing","features.modelProviderIcons":"Model provider icons","editor.viewer":"Edit","editor.loading":"Reading file…","editor.preview":"Preview","editor.save":"Save","editor.saving":"Saving…","editor.saved":"Saved","editor.unsaved":"Unsaved","editor.reload":"Reload","editor.undo":"Undo save","editor.keyHint":"Ctrl/Cmd + S to save","editor.conflict.title":"The file changed on disk; save rejected","editor.conflict.body":"Another change (an Agent or another window) overwrote this file after it was opened. Reload discards your edits; overwrite writes the current editor content to disk.","editor.conflict.reload":"Reload (discard edits)","editor.conflict.overwrite":"Overwrite with mine","editor.confirm.previewTitle":"Back to preview","editor.confirm.previewBody":"You have unsaved changes; going back to the preview discards them.","editor.confirm.saveBack":"Save & back","editor.confirm.discardBack":"Discard & back","editor.confirm.reloadTitle":"Reload","editor.confirm.reloadBody":"You have unsaved changes; reloading discards them and reads the current disk content.","editor.confirm.reloadGo":"Discard & reload","editor.confirm.undoTitle":"Undo save","editor.confirm.undoBody":"This restores the file to its content before the last save; unsaved changes are discarded as well.","editor.confirm.cancel":"Keep editing","editor.undoConflict.title":"Cannot undo automatically","editor.undoConflict.body":"The file changed on disk again after your save, so the previous content cannot be restored automatically; reload to see the current content.","editor.undoConflict.dismiss":"Dismiss","editor.readonlyHint":"Read-only","editor.retry":"Retry","editor.error.file-not-found":"The file does not exist (it may have been moved or deleted).","editor.error.not-regular-file":"This is not a regular file and cannot be edited.","editor.error.too-large":"The file exceeds {limit}; the right-Sidebar editor is read-only. Use another viewer.","editor.error.binary-file":"This is not a UTF-8 text file, so the right-Sidebar editor cannot edit it.","editor.error.session-not-live":"This session is not active right now, so it cannot be edited (switch to another viewer to read it).","editor.error.file-forbidden":"The sandbox policy of this session does not allow writing this file.","editor.error.unavailable":"The host file service is unavailable, so editing is not possible right now.","editor.error.invalid-address":"The file address is not recognized, so it cannot be edited.","editor.error.file-stale":"The file changed on disk; reload before saving again.","editor.error.file-failed":"Read or write failed. Please retry.","editor.error.feature-disabled":"“Right-Sidebar file editing” is turned off in the plugin configuration.","editor.error.internal":"The operation failed. Please retry."},$="%3Csvg xmlns=%27http://www.w3.org/2000/svg%27 width=%2724%27 height=%2724%27 viewBox=%270 0 24 24%27 fill=%27none%27 stroke=%27black%27 stroke-width=%272%27 stroke-linecap=%27round%27 stroke-linejoin=%27round%27%3E",W="%3C/svg%3E",j=e=>'-webkit-mask:url("data:image/svg+xml,'+$+e+W+'") center/contain no-repeat;mask:url("data:image/svg+xml,'+$+e+W+'") center/contain no-repeat',B={service:[["rect",{width:"20",height:"8",x:"2",y:"2",rx:"2"}],["rect",{width:"20",height:"8",x:"2",y:"14",rx:"2"}],["line",{x1:"6",x2:"6.01",y1:"6",y2:"6"}],["line",{x1:"6",x2:"6.01",y1:"18",y2:"18"}]],overview:[["rect",{x:"3",y:"3",width:"7",height:"9",rx:"1"}],["rect",{x:"14",y:"3",width:"7",height:"5",rx:"1"}],["rect",{x:"14",y:"12",width:"7",height:"9",rx:"1"}],["rect",{x:"3",y:"16",width:"7",height:"5",rx:"1"}]],notify:[["path",{d:"M10.268 21a2 2 0 0 0 3.464 0"}],["path",{d:"M16.8607 4.4824A6 6 0 0 0 6 8C6 12.499 4.589 13.956 3.262 15.326"}],["path",{d:"M3.262 15.326A1 1 0 0 0 4 17H20A1 1 0 0 0 20.74 15.327C20.209 14.779 19.665 14.218 19.203 13.454"}]],health:[["path",{d:"M20 13c0 5-3.5 7.5-7.66 8.95a1 1 0 0 1-.67-.01C7.5 20.5 4 18 4 13V6a1 1 0 0 1 1-1c2 0 4.5-1.2 6.24-2.72a1.17 1.17 0 0 1 1.52 0C14.51 3.81 17 5 19 5a1 1 0 0 1 1 1z"}],["path",{d:"m9 12 2 2 4-4"}]],usage:[["path",{d:"M3 3v16a2 2 0 0 0 2 2h16"}],["path",{d:"M18 17V9"}],["path",{d:"M13 17V5"}],["path",{d:"M8 17v-3"}]],quota:[["path",{d:"m12 14 4-4"}],["path",{d:"M3.34 19a10 10 0 1 1 17.32 0"}]],backup:[["rect",{x:"2",y:"3",width:"20",height:"5",rx:"1"}],["path",{d:"M4 8v11a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8"}],["path",{d:"M10 12h4"}]],skills:[["path",{d:"M4 19.5A2.5 2.5 0 0 1 6.5 17H20"}],["path",{d:"M6.5 2H20v20H6.5A2.5 2.5 0 0 1 4 19.5v-15A2.5 2.5 0 0 1 6.5 2z"}]],subagent:[["path",{d:"M12 8V4H8"}],["rect",{width:"16",height:"12",x:"4",y:"8",rx:"2"}],["path",{d:"M2 14h2"}],["path",{d:"M20 14h2"}],["path",{d:"M15 13v2"}],["path",{d:"M9 13v2"}]],sessions:[["path",{d:"M21 15a2 2 0 0 1-2 2H7l-4 4V5a2 2 0 0 1 2-2h14a2 2 0 0 1 2 2z"}],["path",{d:"m9 10 2 2 4-4"}]],restart:[["path",{d:"M12 2v10"}],["path",{d:"M18.4 6.6a9 9 0 1 1-12.77.04"}]],maintenance:[["path",{d:"M14.7 6.3a1 1 0 0 0 0 1.4l1.6 1.6a1 1 0 0 0 1.4 0l3.77-3.77a6 6 0 0 1-7.94 7.94l-6.91 6.91a2.12 2.12 0 0 1-3-3l6.91-6.91a6 6 0 0 1 7.94-7.94l-3.76 3.76z"}]],configuration:[["path",{d:"M20 7h-9"}],["path",{d:"M14 17H5"}],["circle",{cx:"17",cy:"17",r:"3"}],["circle",{cx:"7",cy:"7",r:"3"}]]},_=e=>e.map(([e,t])=>"%3C"+e+Object.entries(t).map(([e,t])=>` ${e}=%27${t}%27`).join("")+"/%3E").join(""),P=_(B.service),V=_(B.quota),F=_(B.restart),U=_(B.sessions);function K({name:e}){const t=B[e];return void 0===t?null:r.createElement("svg",{viewBox:"0 0 24 24",width:13,height:13,fill:"none",stroke:"currentColor",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":"true",style:{flexShrink:0,display:"block"}},t.map(([e,t],a)=>r.createElement(e,Object.assign({key:a},t))))}let G=()=>{};function Q(e){if(!Array.isArray(e))return[];const t=[],a=new Map;for(const r of e){if(null===r||"object"!=typeof r)continue;const e="string"==typeof r.provider&&""!==r.provider?r.provider:void 0,n="string"==typeof r.model&&""!==r.model?r.model:void 0;if(void 0===e||void 0===n)continue;const s="string"==typeof r.reasoningEffort&&""!==r.reasoningEffort?r.reasoningEffort:void 0,i=e+"\0"+n+"\0"+(s??"");let o=a.get(i);void 0===o&&(o={provider:e,model:n,...void 0!==s?{reasoningEffort:s}:{},count:0},a.set(i,o),t.push(o)),o.count+=1}return t}function Y(e){return(Array.isArray(e)?e:[]).map(e=>{if(null===e||"object"!=typeof e)return"";const t="string"==typeof e.provider?e.provider:"",a="string"==typeof e.model?e.model:"",r="string"==typeof e.reasoningEffort&&""!==e.reasoningEffort?e.reasoningEffort:void 0;return`${t}/${a}${void 0!==r?` (${r})`:""}${Number.isFinite(e.count)&&e.count>1?` ×${e.count}`:""}`}).filter(e=>""!==e).join(" · ")}function J(e){if(!e||!1!==e.ok||"object"!=typeof e.error||null===e.error)return e;const t="string"==typeof e.error.details?.detail?e.error.details.detail:e.detail,a="string"==typeof e.error.message?e.error.message:e.error.code;return{...e,error:a||"unknown",...void 0!==t?{detail:t}:{}}}const Z={minHeight:"var(--dsh-svc-control-h, 36px)",padding:"6px 14px",borderRadius:"var(--dsh-svc-radius-control)",border:"1px solid transparent",cursor:"pointer",fontSize:"13px",fontWeight:550,transition:"border-color 120ms ease, color 120ms ease, background 120ms ease",lineHeight:"20px"},X=e=>"primary"===e?{...Z,background:"var(--dsh-svc-brand)",borderColor:"var(--dsh-svc-brand)",color:"var(--dsh-svc-brand-text)"}:"danger"===e?{...Z,background:"var(--dsh-svc-danger)",borderColor:"var(--dsh-svc-danger)",color:"var(--dsh-svc-brand-text)"}:"dangerGhost"===e?{...Z,background:"transparent",color:"var(--dsh-svc-danger)",borderColor:"var(--dsh-svc-danger)"}:"brandGhost"===e?{...Z,background:"transparent",color:"var(--dsh-svc-brand)",borderColor:"var(--dsh-svc-brand)"}:"ghost"===e?{...Z,background:"transparent",color:"var(--dsh-svc-text)",borderColor:"var(--dsh-svc-border-strong)"}:"neutral"===e?{...Z,background:"var(--dsh-svc-page-bg)",color:"var(--dsh-svc-text)",borderColor:"var(--dsh-svc-border-strong)"}:{...Z,background:"var(--dsh-svc-content-bg)",color:"var(--dsh-svc-text)",borderColor:"var(--dsh-svc-border-strong)"},ee=e=>Object.assign({},Z,{background:"transparent",color:"var(--dsh-svc-text)",borderColor:"var(--dsh-svc-border-strong)",minHeight:"28px",padding:"4px 10px",fontSize:"12px",borderRadius:"var(--dsh-svc-radius-control)"},e),te=(e,t)=>Object.assign({display:"inline-flex",alignItems:"center",flex:"none",fontSize:"10px",lineHeight:"16px",padding:"1px 6px",...M(999),whiteSpace:"nowrap",...{success:{background:"rgba(16,185,129,0.16)",color:"var(--dsh-svc-success)"},warning:{background:"rgba(198,128,0,0.14)",color:"var(--dsh-svc-warning)"},danger:{background:"rgba(220,38,38,0.12)",color:"var(--dsh-svc-danger)"},info:{background:"rgba(37,99,235,0.10)",color:"var(--dsh-svc-info)"},neutral:{background:"var(--dsh-svc-page-bg)",color:"var(--dsh-svc-text-muted)"}}[e]||{}},t),ae=e=>Object.assign({background:"var(--dsh-svc-surface-bg)",color:"var(--dsh-svc-text)",border:"1px solid var(--dsh-svc-border)",borderRadius:"var(--dsh-svc-radius-control)",padding:"10px"},e);function re({ctx:e,rpcCall:t,t:a,useTranslation:n,restartNavToggle:s}){const{useState:i,useEffect:o}=r,l=new Set;let d={status:"idle",elapsedMs:0},c=0;const u=e=>{d=e;for(const t of l)t(e)},p=new Set;let m={stage:0,activity:null,busy:!1,error:null};const g=e=>{m=e;for(const t of p)t(e)},h=()=>{const[e,t]=i(m);return o(()=>(p.add(t),t(m),()=>p.delete(t)),[]),e},v=new Set;let b=null;const f=()=>{const[e,t]=i(b);return o(()=>(v.add(t),t(b),()=>v.delete(t)),[]),e},y=new Set;let x=null;let k=null;const w=()=>(null===k&&(k=t("version",{}).then(e=>(e&&e.ok&&((e=>{const t=e?e.runtimeEnv:void 0;null!==t&&"object"==typeof t&&"boolean"==typeof t.manualStartLikely&&(void 0!==t.supervisorKind&&null!==t.supervisorKind&&"string"!=typeof t.supervisorKind||(e=>{b=e;for(const t of v)t(e)})({platform:"string"==typeof t.platform?t.platform:"",supervisorKind:void 0===t.supervisorKind||null===t.supervisorKind?null:t.supervisorKind,manualStartLikely:t.manualStartLikely}))})(e.value),(e=>{const t=e?e.installedVersion:void 0,a="string"==typeof t&&t.length>0&&t.length<=64&&!/\s/.test(t)?t:null;a!==x&&(e=>{x=e;for(const t of y)t(e)})(a)})(e.value)),e)).catch(()=>(k=null,null))),k),E=()=>(k=null,w());let S=null;const q=async e=>{const t=await(!0===e?E():w()),a=t&&t.ok?t.value&&t.value.instanceId:void 0;"string"==typeof a&&0!==a.length&&(null!==S?a!==S&&window.location.reload():S=a)};let C=!1;const z=async()=>{g({...m,busy:!0,error:null});try{const e=await t("activity",{});if(e&&!1===e.ok)throw console.error("dsh-service: activity check failed",e.error),new Error(a("error.activity"));const r=e&&e.value?e.value:{hasActive:!1,items:[]};g({...m,activity:r,stage:r.hasActive?3:1,busy:!1,error:null})}catch(e){g({...m,error:e&&e.message?String(e.message):String(e),stage:0,busy:!1})}},A=async e=>{g({...m,busy:!0,error:null});try{const r=await t("web",{force:!0===e});if(r&&!1===r.ok){if("active-work"===r.error&&r.value)return void g({...m,activity:r.value,stage:3,busy:!1,error:null});throw console.error("dsh-service: restart failed",r.error),new Error(a("error.restart"))}const n=r&&r.value?r.value.instanceId:void 0;if("string"!=typeof n||0===n.length)throw new Error(a("error.instance"));g({...m,stage:2,busy:!1,error:null}),T(n).catch(e=>console.error("dsh-service: recovery failed",e))}catch(e){g({...m,error:e&&e.message?String(e.message):String(e),stage:0,busy:!1})}},T=async a=>{const r=++c;let n=0,s=1e3;for(u({status:"waiting",elapsedMs:n});n<6e4&&r===c;){const i=Math.min(s,6e4-n);try{await e.timer.timeout(i)}catch(e){return}if(r!==c)return;n+=i,u({status:"waiting",elapsedMs:n});try{const e=await t("version",{}),r=e&&e.ok?e.value&&e.value.instanceId:void 0;if("string"==typeof r&&r.length>0&&r!==a)return void window.location.reload()}catch(e){}if(n>=6e4)return void u({status:"timeout",elapsedMs:n});s=Math.min(2*s,1e4)}};e.effect(()=>()=>{c+=1,l.clear(),p.clear(),v.clear()},"dsh-service recovery"),e.effect(()=>{const t=e.on("connection/reset",()=>{q(!0).catch(()=>{})});return q(!1).catch(()=>{}),t},"dsh-service process identity");const I="@deepseek-ai/dsh",H=(e,t)=>"string"==typeof t&&0!==t.length&&/^[0-9A-Za-z.+_-]+$/.test(t)?`${e}${t}`:null,O=(e,t,a)=>{const n=`version-dsh-channel-${e}-${t}`;return a?r.createElement("a",{"data-testid":n,href:a,target:"_blank",rel:"noreferrer",style:{color:"var(--dsw-alias-brand-primary)",textDecoration:"underline",marginLeft:"10px"}},t):r.createElement("span",{"data-testid":n,style:{marginLeft:"10px"}},t)},R=(e,t,a)=>r.createElement("div",{style:{whiteSpace:"nowrap",lineHeight:1.7}},e("latest"===t?"update.channelStable":"next"===t?"update.channelPreview":"update.channelAlpha")," ",r.createElement("span",{"data-testid":`version-dsh-channel-${t}`,style:{marginLeft:"4px"}},a||"—"),O(t,"npmjs",H(`https://www.npmjs.com/package/${I}/v/`,a)),O(t,"npmmirror",H(`https://www.npmmirror.com/package/${I}/home?version=`,a))),L="0.1.6-alpha.3",N=e=>{if("string"!=typeof e)return null;const t=/^(\d+)\.(\d+)\.(\d+)(?:-([0-9A-Za-z.-]+))?$/.exec(e);return t?{major:Number(t[1]),minor:Number(t[2]),patch:Number(t[3]),pre:t[4]?t[4].split("."):null}:null},D=e=>/^\d+$/.test(e)?Number(e):e,$=(e,t)=>{const a=N(e),r=N(t);if(!a||!r)return null;for(const e of["major","minor","patch"])if(a[e]!==r[e])return a[e]<r[e]?-1:1;if(null===a.pre&&null===r.pre)return 0;if(null===a.pre)return 1;if(null===r.pre)return-1;const n=Math.min(a.pre.length,r.pre.length);for(let e=0;e<n;e+=1){const t=D(a.pre[e]),n=D(r.pre[e]);if(t!==n)return"number"==typeof t&&"number"==typeof n||"string"==typeof t&&"string"==typeof n?t<n?-1:1:"number"==typeof t?-1:1}return a.pre.length<r.pre.length?-1:a.pre.length===r.pre.length?0:1};function W(){const e=(()=>{const[e,t]=i(d);return o(()=>(l.add(t),t(d),()=>l.delete(t)),[]),e})(),t=n();if("idle"===e.status)return null;const a="timeout"===e.status;return r.createElement("div",{style:{position:"fixed",inset:0,zIndex:1e4,display:"flex",alignItems:"center",justifyContent:"center",padding:"24px",background:"rgba(12, 14, 20, 0.72)",backdropFilter:"blur(4px)",pointerEvents:"auto"}},r.createElement("div",{style:{width:"min(420px, 100%)",padding:"24px",borderRadius:"12px",background:"var(--dsw-alias-bg-overlay)",color:"var(--dsw-alias-label-primary)",border:"1px solid var(--dsw-alias-border-l2)",boxShadow:"0 18px 60px rgba(0,0,0,0.35)",textAlign:"center"}},r.createElement("div",{style:{fontSize:"18px",fontWeight:700,marginBottom:"10px"}},t(a?"recovery.timeout.title":"recovery.waiting.title")),r.createElement("p",{style:{margin:0,fontSize:"13px",lineHeight:1.7,color:"var(--dsw-alias-label-secondary)"}},a?t("recovery.timeout.body"):t("recovery.waiting.body",{seconds:Math.floor(e.elapsedMs/1e3)})),a?r.createElement("button",{style:Object.assign({},ee(),{marginTop:"16px",padding:"7px 16px"}),onClick:()=>window.location.reload()},t("recovery.manual")):null))}return{DSH_NOT_SUPPORTED_FROM:L,RestartOverlay:function(){return r.createElement(W,null)},RestartSection:function({showNavToggle:e}){const t=n(),a=h(),i=f();o(()=>{w()},[]);const[l,d]=s.useEnabled(),c=X("danger"),u=X("dangerGhost"),p=X("ghost"),v={color:"var(--dsw-alias-label-secondary)",fontSize:"12px",marginTop:"8px",lineHeight:1.5},b={padding:"4px 0 14px",marginBottom:"12px",color:"var(--dsw-alias-label-primary)"},y=ae(),x={fontSize:"14px",fontWeight:700,margin:"0 0 8px",color:"var(--dsw-alias-label-primary)"};if(2===a.stage)return r.createElement("div",{"data-testid":"restart-card",style:b},r.createElement("div",{style:x},t("restart.title")),r.createElement("p",{style:{margin:0,fontSize:"13px"}},t("restart.sent")),r.createElement("p",{style:v},t(null!==i&&!0===i.manualStartLikely?"restart.sentManualHint":"restart.sentHint")));const k={agent:t("activity.agent"),job:t("activity.job"),terminal:t("activity.terminal")},E=a.activity&&Array.isArray(a.activity.items)?a.activity.items:[],S=null!==i&&!0===i.manualStartLikely?r.createElement("p",{"data-testid":"restart-manual-warn",style:Object.assign({},v,{color:"var(--dsw-alias-state-warn-primary)",margin:"6px 0 0"})},t("restart.manualWarn")):null,q=3===a.stage?r.createElement("div",{style:{marginTop:"12px",padding:"10px 12px",borderRadius:"6px",background:"rgba(211,51,51,0.1)",border:"1px solid rgba(211,51,51,0.35)"}},r.createElement("p",{style:{margin:"0 0 8px",color:"var(--dsw-alias-state-error-primary)",fontSize:"13px",fontWeight:600}},t("activity.warning",{count:E.length})),r.createElement("ul",{style:{margin:0,paddingLeft:"20px",fontSize:"12px",lineHeight:1.7}},E.map(e=>r.createElement("li",{key:e.type+":"+e.id},t("activity.item",{type:k[e.type]||e.type,label:e.label,status:e.status}))))):null;return r.createElement("div",{"data-testid":"restart-card",style:b},r.createElement("div",{style:x},t("restart.title")),r.createElement("div",{"data-testid":"restart-region",style:y},r.createElement("p",{style:{margin:0,fontSize:"13px"}},t("restart.description")),S,q,r.createElement("div",{style:{display:"flex",alignItems:"center",gap:"8px",marginTop:"12px",flexWrap:"wrap"}},0===a.stage?r.createElement("button",{style:u,"data-variant":"dangerGhost",onClick:z,disabled:a.busy},t(a.busy?"update.checking":"restart.button")):1===a.stage?[r.createElement("button",{key:"confirm",style:c,"data-variant":"danger",onClick:()=>A(!1),disabled:a.busy},t(a.busy?"restart.sending":"restart.confirm")),r.createElement("button",{key:"cancel",style:p,onClick:()=>g({...m,activity:null,stage:0,busy:!1,error:null}),disabled:a.busy},t("restart.cancel"))]:3===a.stage?[r.createElement("button",{key:"force",style:c,"data-variant":"danger",onClick:()=>A(!0),disabled:a.busy},t(a.busy?"restart.sending":"restart.force")),r.createElement("button",{key:"cancel",style:p,onClick:()=>g({...m,activity:null,stage:0,busy:!1,error:null}),disabled:a.busy},t("restart.cancel"))]:null),1===a.stage?r.createElement("p",{style:v},t("restart.idleHint")):null,a.error?r.createElement("p",{style:Object.assign({},v,{color:"var(--dsw-alias-state-error-primary)"})},String(a.error)):null,e?r.createElement("div",{style:{marginTop:"12px",paddingTop:"10px",borderTop:"1px solid var(--dsw-alias-border-l1)",display:"flex",alignItems:"center",justifyContent:"space-between",gap:"12px"}},r.createElement("div",{style:{display:"flex",flexDirection:"column",gap:"2px"}},r.createElement("span",{style:{fontSize:"13px",color:"var(--dsw-alias-label-primary)"}},t("restart.navToggle")),r.createElement("span",{style:v},t("restart.navToggleHint"))),r.createElement("button",{type:"button",role:"switch","data-testid":"restart-nav-switch","aria-checked":String(l),onClick:()=>d(!l),style:{width:"34px",height:"20px",...M("10px"),padding:0,flexShrink:0,position:"relative",border:"1px solid "+(l?"var(--dsw-alias-state-success-primary)":"var(--dsw-alias-border-l2)"),background:l?"var(--dsw-alias-state-success-primary)":"var(--dsw-alias-bg-layer-2)",cursor:"pointer",lineHeight:0}},r.createElement("span",{style:{position:"absolute",top:"1px",left:l?"15px":"1px",width:"16px",height:"16px",...M("50%"),background:l?"#fff":"var(--dsw-alias-label-tertiary)"}}))):null))},channelLines:(e,t)=>r.createElement("div",{style:{margin:"4px 0",fontSize:"12px",lineHeight:1.7,color:"var(--dsw-alias-label-secondary)",display:"flex",flexDirection:"column",gap:"6px"}},R(e,"latest",t&&t.latest),R(e,"next",t&&t.next),...t&&Object.prototype.hasOwnProperty.call(t,"alpha")?[R(e,"alpha",t.alpha)]:[]),compareSemver:$,fetchVersionSnapshot:w,isDshUnsupported:e=>{const t=$(e,L);return null!==t&&t>=0},refreshVersionSnapshot:E,startRecovery:T,useInstalledVersion:()=>{const[e,t]=i(x);return o(()=>(y.add(t),t(x),()=>y.delete(t)),[]),e},useRestartFlow:h,useRuntimeEnv:f,isUpgradeInFlight:()=>C,setUpgradeInFlight:e=>{C=e},getRuntimeEnvState:()=>b}}function ne({ctx:e,t,featureEnabled:a,createConversationNav:r}){const n={active:!1,mq:null,mqHandler:null,frameObserver:null,mountObserver:null,workspaceObserver:null,errorHandler:null,resizeHandler:null,styleTag:null,backdrop:null,fab:null,debugChip:null,debugEnabled:!1,errorCount:0,drawerOpen:!1,detailsOpen:!1,rightbarOpen:!1,workspaceOpen:!1,edgeGesture:null,edgeTelemetry:null,lastFabDisplay:null,lastBackdropDisplay:null,immersive:!1,repinTimer:null,repinAnchor:null,repinToBottom:!1,chatAvailable:!1,chatScrollLastY:null,gestureAt:0,immersiveAcc:0,immersiveLockDir:null,zoneArmed:null,arrivalDone:!1,lastRevealReason:null,headerEl:null,headerRO:null},s=r(),i=()=>{try{return"function"==typeof e.get?e.get("layout"):void 0}catch(e){return}},o=()=>{if(n.detailsOpen){const e=i();if(void 0!==e)try{e.closeDetails()}catch(e){}n.detailsOpen=!1}const e=n.drawerOpen||n.workspaceOpen||n.rightbarOpen?"none":"flex";null!==n.fab&&n.lastFabDisplay!==e&&(n.lastFabDisplay=e,n.fab.style.display=e);const t=n.drawerOpen?"block":"none";null!==n.backdrop&&n.lastBackdropDisplay!==t&&(n.lastBackdropDisplay=t,n.backdrop.style.display=t),n.debugEnabled&&null!==n.debugChip&&V()};let l=!1;const d=()=>{const e=document.querySelector("[data-dshsvc-frame]");n.drawerOpen=null!==e&&!e.hasAttribute("data-sidebar-collapsed"),n.rightbarOpen=C();const t=i(),a=void 0!==t&&"function"==typeof t.openRightbar||n.rightbarOpen;n.detailsOpen=!a&&null!==e&&!e.hasAttribute("data-details-collapsed"),n.workspaceOpen=!1;try{for(const e of document.querySelectorAll('[class*="nArs4W_panel"]')){const t="string"==typeof e.className?e.className:"";if(/nArs4W_panelHidden/.test(t))continue;const a=e.getBoundingClientRect();if(a.width>0&&a.left<window.innerWidth-2&&"hidden"!==getComputedStyle(e).visibility){n.workspaceOpen=!0;break}}}catch(e){n.workspaceOpen=!1}y()},c=e=>{const t=document.documentElement.style;(e=>"function"==typeof e.setProperty)(t)&&t.setProperty("--dshsvc-header-h",`${Math.max(0,Math.round(e))}px`)},u=()=>{let e=null;try{e=document.querySelector("[data-conversation-scroll]")}catch(e){return null}if(null===e||!1===e.isConnected)return null;let t=e.parentNode;if(null===t||t===document.documentElement)return null;let a=null;try{a=t.getAttribute("data-phase")}catch(e){}let r=t;for(let e=0;null===a&&e<2&&(r=null==r?null:r.parentNode,null!==r&&r!==document.documentElement);e+=1){try{a=r.getAttribute("data-phase")}catch(e){break}null!==a&&(t=r)}return{scroller:e,rootEl:t,phase:a}},p=(e,t)=>{if(t<=0||null===e||void 0===e.children||null===e.children)return null;for(const a of e.children||[]){if("HEADER"===("string"==typeof a.tagName?a.tagName.toUpperCase():""))return a;const e=p(a,t-1);if(null!==e)return e}return null},m=(e,t)=>{let a=t;for(;null!=a;){if(a===e)return!0;a=a.parentNode}return!1},g=()=>{n.repinTimer=null;const e=n.repinAnchor,t=n.repinToBottom;n.repinAnchor=null,n.repinToBottom=!1;const a=u();if(null!==a&&null!==a.scroller)try{const r=Number(a.scroller.scrollTop),n=Number(a.scroller.scrollHeight),s=Number(a.scroller.clientHeight);if(!Number.isFinite(r)||!Number.isFinite(n)||!Number.isFinite(s))return;const i=Math.max(0,n-s);if(t){if(i-r>80)return;return void(a.scroller.scrollTop=i)}if(null===e)return;if(r<e-4)return;a.scroller.scrollTop=i}catch(e){}},h=(e,t=!1)=>{v(),n.repinAnchor=e,n.repinToBottom=t;try{n.repinTimer=setTimeout(g,260)}catch(e){g()}},v=()=>{if(n.repinAnchor=null,n.repinToBottom=!1,null!==n.repinTimer){try{clearTimeout(n.repinTimer)}catch(e){}n.repinTimer=null}},b=(e,t=null)=>{if(n.active&&n.chatAvailable||(e=!1),n.immersive===e)return;const a=!e&&(()=>{const e=u();if(null===e||null===e.scroller)return!1;try{const t=Number(e.scroller.scrollTop),a=Number(e.scroller.scrollHeight),r=Number(e.scroller.clientHeight);return!!(Number.isFinite(t)&&Number.isFinite(a)&&Number.isFinite(r))&&a-r-t<=80}catch(e){return!1}})()?Number((u()||{}).scroller?.scrollTop):null,r=null!==a&&Number.isFinite(a);n.immersive=e,e||null===t||(n.lastRevealReason=t);const s=document.documentElement;try{e?s.setAttribute("data-dshsvc-immersive",""):s.removeAttribute("data-dshsvc-immersive")}catch(e){}e?v():r&&h(a),n.debugEnabled&&V()},f=()=>{n.chatScrollLastY=null,n.immersiveAcc=0,n.immersiveLockDir=null,n.zoneArmed=null,n.arrivalDone=!1,b(!1)},y=()=>{const e=u();let t=!1;if(null!==e&&"active"===e.phase){(e=>{const t=null!==e?e.rootEl:null;if(null===t||void 0===t.children)return n.headerEl;if(null!==n.headerEl&&n.headerEl.isConnected){try{n.headerEl.setAttribute("data-dshsvc-chat-header","")}catch(e){}return n.headerEl}let a=null;for(const e of t.children||[])if("HEADER"===("string"==typeof e.tagName?e.tagName.toUpperCase():"")){a=e;break}if(null===a)for(const e of t.children||[]){const t=p(e,3);if(null!==t){a=t;break}}null!==a&&(a.setAttribute("data-dshsvc-chat-header",""),n.headerEl=a,(e=>{if("function"==typeof ResizeObserver&&(null===n.headerRO||n.headerRO.__el!==e)){if(null!==n.headerRO)try{n.headerRO.disconnect()}catch(e){}try{const t=new ResizeObserver(()=>{try{const t=e.offsetHeight;"number"==typeof t&&t>0&&c(t)}catch(e){}});t.__el=e,t.observe(e),n.headerRO=t;const a=e.offsetHeight;"number"==typeof a&&a>0&&c(a)}catch(e){n.headerRO=null}}})(a))})(e);const a=(()=>{try{return document.querySelector("[data-composer-seat]")}catch(e){return null}})();if(null!==a&&m(e.scroller,a)){let a=NaN,r=NaN,n=NaN;try{a=Number(e.scroller.scrollTop),r=Number(e.scroller.scrollHeight),n=Number(e.scroller.clientHeight)}catch(e){}t=Number.isFinite(a)&&Number.isFinite(r)&&Number.isFinite(n)&&r-n>24}}n.chatAvailable=t,t||f()},x=e=>{if(!n.active||!n.chatAvailable)return;let t=NaN,a=NaN,r=NaN;try{t=Number(e.scrollTop),a=Number(e.scrollHeight),r=Number(e.clientHeight)}catch(e){return}if(!Number.isFinite(t)||!Number.isFinite(a)||!Number.isFinite(r))return;const s=null===n.chatScrollLastY?t:n.chatScrollLastY,i=t-s;if(n.chatScrollLastY=t,!(()=>{const e=Date.now();return n.gestureAt>0&&e-n.gestureAt<=800})()||Math.abs(i)>200)return void(n.immersiveAcc=0);if(n.immersive&&i<0&&s+r>=a-1)return n.immersiveAcc=0,n.immersiveLockDir=-1,void b(!1,"gesture");const o=t+r>=a-80;if(null===n.zoneArmed&&(n.zoneArmed=o),!1===n.zoneArmed&&o&&!n.arrivalDone&&n.immersive&&i>0)return n.arrivalDone=!0,n.immersiveAcc=0,n.immersiveLockDir=1,void b(!1,"arrival");const l=Math.sign(i);if(0!==l&&null!==n.immersiveLockDir){if(l!==-n.immersiveLockDir)return void(n.immersiveAcc=0);n.immersiveLockDir=null}(n.immersiveAcc>0&&i<0||n.immersiveAcc<0&&i>0)&&(n.immersiveAcc=0),n.immersiveAcc+=i,n.immersiveAcc>240?n.immersiveAcc=240:n.immersiveAcc<-240&&(n.immersiveAcc=-240),n.immersiveAcc>=64?(n.immersiveAcc=0,n.immersiveLockDir=1,b(!0)):n.immersiveAcc<=-24&&(n.immersiveAcc=0,n.immersiveLockDir=-1,b(!1,"gesture"))},k=()=>{n.gestureAt=Date.now(),n.immersiveLockDir=null,n.zoneArmed=null,n.arrivalDone=!1},w=e=>{try{const t=null!=e&&void 0!==e.touches&&null!==e.touches&&e.touches.length>0?e.touches:null!=e?e.changedTouches:null;if(null==t||0===t.length)return null;const a=Number(t[0].clientX),r=Number(t[0].clientY);return Number.isFinite(a)&&Number.isFinite(r)?{x:a,y:r}:null}catch(e){return null}},E=()=>{try{const e=document.querySelector("[data-dshsvc-frame]");return null===e||e.hasAttribute("data-sidebar-collapsed")}catch(e){return!0}},S=()=>{try{return"function"==typeof e.get?e.get("sidebarRight"):void 0}catch(e){return}},q=()=>{try{if(null!==document.querySelector("[data-sidebar-right-expand], [data-sidebar-right-toggle], [data-sidebar-right-panel]"))return!0}catch(e){}const e=S();return void 0!==e&&"function"==typeof e.toggleExpanded&&void 0!==e.active()},C=()=>{if(!q())return!1;const e=S();if(void 0!==e&&"function"==typeof e.isExpanded)try{const t=e.isExpanded();if("boolean"==typeof t)return t}catch(e){}try{if(null!==document.querySelector("[data-sidebar-right-open]"))return!0}catch(e){}try{if(null!==document.querySelector("[data-sidebar-right-expand]"))return!1}catch(e){}try{const e=document.querySelector("[data-dshsvc-frame]");if(null!==e&&!e.hasAttribute("data-rightbar-collapsed"))return!0}catch(e){}return!1},z=e=>{try{let t=e;for(let e=0;null!=t&&e<8;e+=1){if(t===document.body||t===document.documentElement)return!1;if("number"==typeof t.scrollWidth&&"number"==typeof t.clientWidth&&t.scrollWidth>t.clientWidth+1){if("function"!=typeof getComputedStyle)return!0;const e=getComputedStyle(t),a=null!=e?String(e.overflowX||""):"";if("auto"===a||"scroll"===a||"overlay"===a)return!0}t=t.parentNode}}catch(e){}return!1},A="open",T="left-close",M="right-close",I="left-open",H="right-open",O="multi-touch",R="modal",L="h-scroll",N="no-point",D="right-absent",$="toggle-unavailable",W="no-tracker",j={left:{opened:()=>!E(),toggle:()=>{const e=i();if(void 0===e)return!1;try{return e.toggleSidebar(),!0}catch(e){return!1}}},right:{opened:()=>C(),toggle:e=>(e=>{try{const t=e?document.querySelector("[data-sidebar-right-expand]"):document.querySelector("[data-sidebar-right-open] [data-sidebar-right-toggle]")||(C()?document.querySelector("[data-sidebar-right-toggle]"):null);if(null!==t&&"function"==typeof t.click)return t.click(),!0}catch(e){}const t=S();if(void 0!==t&&"function"==typeof t.toggleExpanded)try{if("function"!=typeof t.isExpanded||t.isExpanded()!==e)return t.toggleExpanded(),!0}catch(e){}const a=i();if(void 0!==a)try{if(e&&"function"==typeof a.openRightbar)return a.openRightbar(!1,!0),!0;if(!e&&"function"==typeof a.closeRightbar)return a.closeRightbar(),!0}catch(e){}return!1})(e)}},B=(e,t,a)=>{if(null===e||e.fired||null===t)return!1;const r=t.x-e.startX,s=t.y-e.startY;if(Math.abs(s)>Math.abs(r)&&Math.abs(s)>12)return n.edgeGesture=null,!1;let i=null,o=!1,l=null;if(e.kind===A){if(r>=a)i="left",o=!0,l=I;else if(r<=-a&&(i="right",o=!0,l=H,!q()))return null!==n.edgeTelemetry&&(n.edgeTelemetry.reason=D),!0}else e.kind===T?r<=-a&&(i="left",l=T):e.kind===M&&r>=a&&(i="right",l=M);if(null===i)return!1;const d=((e,t)=>{const a=j[e];return void 0!==a&&a.opened()!==t&&!0===a.toggle(t)})(i,o);return e.fired=!0,null!==n.edgeTelemetry&&(n.edgeTelemetry.fired=d,n.edgeTelemetry.kind=l,d||l!==H||(n.edgeTelemetry.reason=$)),!0},_=[["scroll",e=>{if(!n.active)return;let t=e&&e.target;for(let e=0;null!=t&&e<6;e+=1){if("function"==typeof t.hasAttribute)try{if(t.hasAttribute("data-conversation-scroll"))return void x(t)}catch(e){}t=t.parentNode}},{capture:!0,passive:!0}],["touchstart",k,{capture:!0,passive:!0}],["touchmove",k,{capture:!0,passive:!0}],["touchstart",e=>{if(!n.active)return;n.edgeGesture=null;const t=n.debugEnabled?{start:"—",kind:"—",moves:0,last:"—",cancel:"—",fired:!1}:null;n.edgeTelemetry=t;try{if(null!=e&&void 0!==e.touches&&null!==e.touches&&e.touches.length>1)return void(null!==t&&(t.kind=O))}catch(e){}if((()=>{try{return null!==document.querySelector('[role="dialog"][aria-modal="true"]')}catch(e){return!1}})())return void(null!==t&&(t.kind=R));const a=w(e);if(null===a)return void(null!==t&&(t.kind=N));null!==t&&(t.start=`${Math.round(a.x)},${Math.round(a.y)}`);const r=!E(),s=q()&&C();if(r||s)return z(e?.target)?void(null!==t&&(t.kind=L)):(n.edgeGesture={kind:r?T:M,edge:null,startX:a.x,startY:a.y,at:Date.now(),fired:!1},void(null!==t&&(t.kind=r?T:M)));if(z(e?.target))return void(null!==t&&(t.kind=L));const i=Number(window.innerWidth);let o=null;a.x<=32?o="left":Number.isFinite(i)&&a.x>=i-32&&(o="right"),n.edgeGesture={kind:A,edge:o,startX:a.x,startY:a.y,at:Date.now(),fired:!1},null!==t&&(t.kind="left"===o?I:"right"===o?H:A),n.debugEnabled&&V()},{capture:!0,passive:!0}],["touchmove",e=>{const t=n.edgeGesture;if(null===t||t.fired)return;try{if(null!=e&&void 0!==e.touches&&null!==e.touches&&e.touches.length>1)return n.edgeGesture=null,null!==n.edgeTelemetry&&(n.edgeTelemetry.reason=O),void(n.debugEnabled&&V())}catch(e){}const a=w(e),r=n.edgeTelemetry;null!==r&&null!==a&&(r.moves+=1,r.last=`${Math.round(a.x-t.startX)},${Math.round(a.y-t.startY)}`);const s=B(t,a,56);n.debugEnabled&&s&&V()},{capture:!0,passive:!0}],["touchend",e=>{const t=n.edgeGesture;if(null===t||t.fired)return void(n.edgeGesture=null);const a="open"===t.kind&&null!==t.edge,r=a?w(e):null;a&&null!==r&&Date.now()-t.at<=260&&B(t,r,32),n.edgeGesture=null,n.debugEnabled&&t.fired&&V()},{capture:!0,passive:!0}],["touchcancel",e=>{const t=n.edgeGesture,a=n.edgeTelemetry;if(null===t)return null!==a&&(a.cancel=W),void(n.debugEnabled&&V());const r="open"===t.kind&&null!==t.edge,s=w(e);null!==a&&null!==s&&(a.cancel=`${Math.round(s.x-t.startX)},${Math.round(s.y-t.startY)}`),r&&B(t,s,6),n.edgeGesture=null,n.debugEnabled&&V()},{capture:!0,passive:!0}],["wheel",k,{capture:!0,passive:!0}],["focusin",e=>{if(!n.active)return;let t=null;try{t=document.querySelector("[data-composer-seat]")}catch(e){return}null!==t&&m(t,e?.target)&&(n.immersiveAcc=0,n.immersive&&b(!1,"focus"))},{capture:!0}],["click",e=>{n.active&&n.chatAvailable&&n.immersive&&s.isToBottomButton(e&&e.target)&&(n.immersiveAcc=0,n.immersiveLockDir=1,b(!1,"button"),h(null,!0))},{capture:!0}]];let P=!1;const V=()=>{const e=n.debugChip;if(null===e)return;const a=e=>t(e?"mobile.debug.stateOn":"mobile.debug.stateOff"),r=[[`${t("mobile.debug.viewport")} ${window.innerWidth}×${window.innerHeight}`,`≤1023 ${a(n.active)}`,`${t("mobile.debug.drawer")} ${a(n.drawerOpen)}`,`${t("mobile.debug.details")} ${a(n.detailsOpen)}`,`${t("mobile.debug.rightbar")} ${a(n.rightbarOpen)}`,`${t("mobile.debug.immersive")} ${a(n.immersive)}`+(null===n.lastRevealReason?"":`(${s=n.lastRevealReason,"gesture"===s?t("mobile.debug.immersive.reason.gesture"):"arrival"===s?t("mobile.debug.immersive.reason.arrival"):"focus"===s?t("mobile.debug.immersive.reason.focus"):"button"===s?t("mobile.debug.immersive.reason.button"):s})`),`${t("mobile.debug.errors")} ${n.errorCount}`].join(" · ")];var s;const i=e=>e===I?t("mobile.debug.edge.leftOpen"):e===H?t("mobile.debug.edge.rightOpen"):e===T?t("mobile.debug.edge.leftClose"):e===M?t("mobile.debug.edge.rightClose"):e===A?t("mobile.debug.edge.open"):e===O?t("mobile.debug.edge.reason.multiTouch"):e===R?t("mobile.debug.edge.reason.modal"):e===L?t("mobile.debug.edge.reason.hScroll"):e===N?t("mobile.debug.edge.reason.noPoint"):e===D?t("mobile.debug.edge.reason.absentRight"):e===$?t("mobile.debug.edge.reason.badButton"):e===W?t("mobile.debug.edge.reason.noTracker"):e,o=n.edgeTelemetry;if(null!==o&&void 0!==o.start){let e=`${t("mobile.debug.edge")} ${t("mobile.debug.edge.fieldStart")}(${o.start}) ${i(o.kind)} ${t("mobile.debug.edge.fieldMoves")}${o.moves} ${t("mobile.debug.edge.fieldLast")}(${o.last}) ${t("mobile.debug.edge.fieldCancel")}(${i(o.cancel)})`;void 0!==o.reason&&(e+=` ${t("mobile.debug.edge.fieldReason")}(${i(o.reason)})`),o.fired&&(e+=" ✓"),r.push(e)}e.textContent=r.join("\n")},F=()=>{if(null!==n.fab)return!0;if(!(()=>{const e=document.querySelector("[data-shell-overlay]"),t=null!==e?e.parentNode:null;if(null===t||t===document.documentElement)return!1;t.setAttribute("data-dshsvc-frame","");let a=!1,r=!1,n=!1,s=!1;for(const e of t.children){const t="string"==typeof e.className?e.className:"";!a&&/sidebarCol/.test(t)?(e.setAttribute("data-dshsvc-sidebar",""),a=!0):!r&&/centerCol/.test(t)?(e.setAttribute("data-dshsvc-center",""),r=!0):!n&&/detailsCol/.test(t)?(e.setAttribute("data-dshsvc-details",""),n=!0):!s&&/rightbarCol/.test(t)&&(e.setAttribute("data-dshsvc-rightbar",""),s=!0)}return!0})())return!1;n.backdrop=document.createElement("div"),n.backdrop.setAttribute("data-dshsvc-backdrop",""),n.backdrop.setAttribute("aria-hidden","true"),Object.assign(n.backdrop.style,{position:"fixed",inset:"0",zIndex:"31",display:"none",background:"rgba(0,0,0,.42)",backdropFilter:"blur(1px)"}),n.backdrop.addEventListener("click",()=>{const e=i();void 0!==e&&n.drawerOpen&&e.toggleSidebar()}),document.body.appendChild(n.backdrop),n.fab=document.createElement("button"),n.fab.type="button",n.fab.setAttribute("data-dshsvc-fab",""),n.fab.setAttribute("aria-label",t("mobile.fab.label")),Object.assign(n.fab.style,{position:"fixed",left:"calc(env(safe-area-inset-left, 0px) + 10px)",top:"calc(env(safe-area-inset-top, 0px) + 12px)",width:"32px",height:"32px",borderRadius:"16px",zIndex:"33",display:"flex",alignItems:"center",justifyContent:"center",border:"none",background:"transparent",color:"var(--dsw-alias-label-primary)",padding:"0",cursor:"pointer",touchAction:"manipulation"}),n.fab.innerHTML='<svg width="18" height="18" viewBox="0 0 16 16" fill="none" aria-hidden="true"><rect x="1.75" y="2.75" width="12.5" height="10.5" rx="2" stroke="currentColor" stroke-width="1.5"/><line x1="6.25" y1="3.5" x2="6.25" y2="12.5" stroke="currentColor" stroke-width="1.5"/></svg>',n.fab.addEventListener("click",()=>{const e=i();void 0!==e&&e.toggleSidebar()}),document.body.appendChild(n.fab),d();try{n.workspaceObserver=new MutationObserver(()=>{(()=>{if(!l&&n.active){l=!0,setTimeout(()=>{if(l=!1,n.active)try{d(),o()}catch(e){}},50);for(const e of[400,900])setTimeout(()=>{if(n.active)try{d(),o()}catch(e){}},e)}})()}),n.workspaceObserver.observe(document.body,{attributes:!0,childList:!0,subtree:!0})}catch(e){n.workspaceObserver=null}n.frameObserver=new MutationObserver(()=>{d(),o()});const e=document.querySelector("[data-dshsvc-frame]");return null!==e&&n.frameObserver.observe(e,{attributes:!0,attributeFilter:["data-sidebar-collapsed","data-details-collapsed","data-rightbar-collapsed"]}),null!==n.mountObserver&&(n.mountObserver.disconnect(),n.mountObserver=null),o(),!0},U=()=>{if(!n.active)return;if(n.active=!1,n.drawerOpen=!1,n.detailsOpen=!1,n.rightbarOpen=!1,n.edgeGesture=null,n.edgeTelemetry=null,(()=>{if(P){P=!1;for(const[e,t,a]of _)try{document.documentElement.removeEventListener(e,t,a)}catch(e){}}})(),document.documentElement.removeAttribute("data-dshsvc-mobile"),document.documentElement.removeAttribute("data-dshsvc-immersive"),null!==n.headerRO){try{n.headerRO.disconnect()}catch(e){}n.headerRO=null}n.headerEl=null,null!==n.frameObserver&&(n.frameObserver.disconnect(),n.frameObserver=null),null!==n.workspaceObserver&&(n.workspaceObserver.disconnect(),n.workspaceObserver=null),null!==n.mountObserver&&(n.mountObserver.disconnect(),n.mountObserver=null),null!==n.errorHandler&&window.removeEventListener("error",n.errorHandler),null!==n.resizeHandler&&window.removeEventListener("resize",n.resizeHandler),n.errorHandler=null,n.resizeHandler=null;for(const e of[n.styleTag,n.backdrop,n.fab,n.debugChip])null!==e&&e.isConnected&&e.remove();for(const e of document.querySelectorAll("[data-dshsvc-frame],[data-dshsvc-sidebar],[data-dshsvc-center],[data-dshsvc-details],[data-dshsvc-rightbar],[data-dshsvc-chat-header]"))e.removeAttribute("data-dshsvc-frame"),e.removeAttribute("data-dshsvc-sidebar"),e.removeAttribute("data-dshsvc-center"),e.removeAttribute("data-dshsvc-details"),e.removeAttribute("data-dshsvc-rightbar"),e.removeAttribute("data-dshsvc-chat-header");const e=(()=>{try{return document.documentElement.style}catch(e){return null}})();if(null!==e)try{e.removeProperty("--dshsvc-header-h")}catch(t){e["--dshsvc-header-h"]=""}n.styleTag=null,n.backdrop=null,n.fab=null,v(),n.debugChip=null,n.debugEnabled=!1,f()},K=()=>{a("mobileAdaptation")&&n.mmqMatches()?(()=>{if(n.active)return;if(void 0===i())return;n.active=!0,document.documentElement.setAttribute("data-dshsvc-mobile",""),(()=>{for(const e of document.querySelectorAll('meta[name="viewport"]')){const t=e.getAttribute("content")||"";/(^|,)\s*viewport-fit\s*=/.test(t)||e.setAttribute("content",""===t.trim()?"viewport-fit=cover":t.trim()+", viewport-fit=cover")}})(),n.styleTag=document.createElement("style"),n.styleTag.dataset.plugin="@gehennawu/dsh-service",n.styleTag.dataset.pluginCss="@gehennawu/dsh-service/mobile.css",n.styleTag.textContent='\n/* 侧栏/详情列改 absolute 后会退出 grid 排版流,中列会被自动放置进第 1 轨\n (0px)而整屏变黑 —— 三列必须用 grid-column 显式钉位,绝不依赖子元素顺序。 */\nhtml[data-dshsvc-mobile] [data-dshsvc-frame] { grid-template-columns: 0px minmax(0, 1fr) 0px !important; }\n/* 0.1.5+ 右栏列(rightbarCol):官方右栏自有窄屏语义(<768 开=浮层全屏 portal 到\n body,闭=0 轨),第三轨改 auto 让官方宽度生效——钉 0px 会把 push 态面板挤没。\n :has 特异性高于上一条,天然覆盖;旧宿主无 rightbar 标记时仍走 0px 模板。 */\nhtml[data-dshsvc-mobile] [data-dshsvc-frame]:has([data-dshsvc-rightbar]) { grid-template-columns: 0px minmax(0, 1fr) auto !important; }\nhtml[data-dshsvc-mobile] [data-dshsvc-sidebar] { grid-column: 1 !important; grid-row: 1 !important; }\nhtml[data-dshsvc-mobile] [data-dshsvc-center] { grid-column: 2 !important; grid-row: 1 !important; }\nhtml[data-dshsvc-mobile] [data-dshsvc-details] { grid-column: 3 !important; grid-row: 1 !important; }\nhtml[data-dshsvc-mobile] [data-dshsvc-rightbar] { grid-column: 3 !important; grid-row: 1 !important; }\n/* 侧栏/详情列 → overlay 抽屉。两条铁律:\n ① 隐藏禁用 transform —— 设置模态(未 portal)长在本列子树里,\n transform 会成为其 fixed 定位的包含块;\n ② 离屏偏移必须用 vw 长度而非百分比 —— 这些列带显式 grid-column 钉位\n (修中列黑屏所需),绝对定位子项的包含块会变成那格 grid area(0px 宽),\n 百分比对 0 取值全变 0,元素被超约束解算推回屏内盖住会话。 */\nhtml[data-dshsvc-mobile] [data-dshsvc-sidebar] {\n position: absolute !important;\n top: 0 !important;\n bottom: 0 !important;\n left: calc(-100vw - 24px) !important;\n /* 外壳 sidebar slot 的原生展开内容固定 280px;外层也必须同宽,否则右侧\n 会露出一条只有 sidebarCol 背景、没有内容的空带。窄于 280px 时按视口裁切。 */\n width: min(100vw, 280px) !important;\n border-right: none !important;\n z-index: 32;\n transition: left var(--ds-transition-duration-slow, .25s) var(--ds-ease-in-out, ease);\n}\nhtml[data-dshsvc-mobile] [data-dshsvc-frame]:not([data-sidebar-collapsed]) [data-dshsvc-sidebar] {\n left: 0 !important;\n box-shadow: 8px 0 32px rgba(0, 0, 0, .22);\n}\n/* 详情列(预览/文件树)→ 移动端永久离屏。官方 computeColumns 在窄视口恒为\n 0 宽(原生手机本就不显示该列),抽屉化只会用空态盖住会话且关闭路径\n 与 backdrop/抽屉状态纠缠(真机反馈)。引擎在激活与属性观察时会自愈式\n closeDetails(),保证 store 也是干净的关闭态。 */\nhtml[data-dshsvc-mobile] [data-dshsvc-details] {\n position: absolute !important;\n top: 0 !important;\n bottom: 0 !important;\n right: calc(-100vw - 24px) !important;\n width: min(92vw, 420px) !important;\n z-index: 30;\n}\n/* 模态 → 全屏面板:外壳 portal 根是 fixed inset:0 flex 容器(无 transform,\n 无 containing-block 陷阱),dialog 改 absolute 四边拉满即可。\n 真机反馈:底部 sheet 顶部留空难看 → 顶部贴顶、圆角归零;\n 刘海/home 条遮挡由 dialog 自身 env() padding 补回。 */\nhtml[data-dshsvc-mobile] div[role="presentation"]:has(> [role="dialog"][aria-modal="true"]) {\n padding: 0 !important;\n}\nhtml[data-dshsvc-mobile] [role="dialog"][aria-modal="true"] {\n position: absolute !important;\n top: 0 !important;\n right: 0 !important;\n bottom: 0 !important;\n left: 0 !important;\n margin: 0 !important;\n width: 100% !important;\n max-width: none !important;\n max-height: none !important;\n height: 100% !important;\n border-radius: 0 !important;\n overflow: hidden auto !important;\n flex-direction: column !important;\n padding-top: env(safe-area-inset-top, 0px) !important;\n padding-bottom: env(safe-area-inset-bottom, 0px) !important;\n}\n/* 插件市场(dshmarket)在 ≤560px 媒体查询里把设置导航 display:none 藏掉\n 独占面板(其自有 CSS:[role=dialog]:has([data-dsh-market-root])>nav),\n 手机上会把用户困在市场分区 —— 用更高优先级把横滑标签条顶回来。 */\nhtml[data-dshsvc-mobile] [role="dialog"]:has([data-dsh-market-root]) > nav { display: flex !important; }\n/* 设置页标签条:nav 从 188px 竖列变顶部横滑条(宽度与列向必须显式推翻)。\n 右侧留 52px 给钉到角落的关闭钮。 */\nhtml[data-dshsvc-mobile] [role="dialog"] nav {\n flex-direction: row !important;\n align-items: center !important;\n gap: 6px !important;\n width: auto !important;\n flex: none !important;\n padding: 8px 52px 0 12px !important;\n overflow-x: auto !important;\n overflow-y: hidden !important;\n border-right: none !important;\n border-bottom: 1px solid var(--dsw-alias-border-l2);\n}\nhtml[data-dshsvc-mobile] [role="dialog"] nav > div { flex: none !important; }\nhtml[data-dshsvc-mobile] [role="dialog"] [class*="navList"] { flex-direction: row !important; }\nhtml[data-dshsvc-mobile] [role="dialog"] [class*="navCell"] { white-space: nowrap !important; flex: none !important; }\n/* 关闭钮钉到设置页右上角并压到面板顶层(原生在内容区头行、导航条下方,\n 会被横滑条/内容重叠遮挡——用户点名要顶层);加不透明圆形底衬保证任何\n 内容上都可辨识,底衬与钮同节点、随之置顶。类哈希 VOzbGW_ 取自\n dsh-client-ui-settings-general SettingsRoot.module.css(rc.2),升级需复核 */\nhtml[data-dshsvc-mobile] [role="dialog"][aria-modal="true"] [class*="VOzbGW_close"] {\n position: absolute !important;\n top: calc(env(safe-area-inset-top, 0px) + 9px) !important;\n right: 10px !important;\n z-index: 60;\n background-color: var(--dsw-specific-menu, var(--dsw-alias-bg-layer-1)) !important;\n border: 1px solid var(--dsw-alias-border-l2) !important;\n border-radius: 999px !important;\n corner-shape: round !important;\n box-shadow: var(--dsw-shadow-lv2, 0 4px 12px rgba(0, 0, 0, .12)) !important;\n}\n/* 设置内容列利用率:手机全屏后内容仍被\n 宿主 options 24px → 插件看板卡 12px → 汇总小卡 10px 的多层内边距套娃收窄\n (单侧 ~46px、约一成屏宽)。只收紧间距不动物料:options 是宿主滚动容器、\n 全分区生效(24→14);看板/图表卡按 testid 收紧;汇总行禁折行——label/value\n 两个 span 在窄卡会被 flex 按比例收缩成 40~70px 盒子导致短标签折行\n (2026-09-18 真机 360/390px 实测),nowrap 后装不下时值列省略兜底。 */\nhtml[data-dshsvc-mobile] [class*="VOzbGW_options"] { padding: 0 14px 18px !important; }\nhtml[data-dshsvc-mobile] [data-testid="usage-statistics-region"] { padding: 8px !important; }\nhtml[data-dshsvc-mobile] [data-testid="usage-chart"] { padding: 8px 8px 2px !important; }\nhtml[data-dshsvc-mobile] [data-testid^="usage-summary-"] { column-gap: 8px !important; }\nhtml[data-dshsvc-mobile] [data-testid^="usage-summary-"] > span { white-space: nowrap !important; }\nhtml[data-dshsvc-mobile] [data-testid^="usage-summary-"] > span:last-child {\n min-width: 0 !important;\n overflow: hidden !important;\n text-overflow: ellipsis !important;\n}\n/* 设置/任意模态打开时藏抽屉钮:抽屉列自带 z-index:32 层叠上下文会把模态的\n z1000 封顶在 32,body 级 z33 的钮反而浮在设置页上(真机实测)。:has 不支持时\n 退化为旧行为(钮仍显示),无副作用。 */\nhtml[data-dshsvc-mobile] body:has([role="dialog"][aria-modal="true"]) [data-dshsvc-fab] {\n display: none !important;\n}\n/* composer 底行单行紧凑:外壳原生 flex-wrap:wrap 在窄屏把图标/模型名折成两行。\n 收紧间距 + 禁换行 + 最宽触发钮限宽省略。类哈希 uV2eYG_/Sh0Q9G_/pXSMma_ 取自\n dsh-client-ui-conversation composer(rc.2,0.1.6-alpha.1 漂移至 JObwrW_ 并存),升级需复核。 */\nhtml[data-dshsvc-mobile] [class*="uV2eYG_row"] {\n flex-wrap: nowrap !important;\n column-gap: 4px !important;\n padding-left: 10px !important;\n padding-right: 10px !important;\n}\nhtml[data-dshsvc-mobile] [class*="uV2eYG_row"] > * { min-width: 0 !important; }\nhtml[data-dshsvc-mobile] [class*="uV2eYG_tools"],\nhtml[data-dshsvc-mobile] [class*="uV2eYG_modes"],\nhtml[data-dshsvc-mobile] [class*="uV2eYG_trailing"] { gap: 6px !important; min-width: 0 !important; }\nhtml[data-dshsvc-mobile] [class*="uV2eYG_trailing"] { margin-left: auto !important; }\nhtml[data-dshsvc-mobile] [class*="Sh0Q9G_trigger"],\nhtml[data-dshsvc-mobile] [class*="JObwrW_trigger"] { max-width: 38vw !important; }\nhtml[data-dshsvc-mobile] [class*="pXSMma_workspace"] { max-width: 30vw !important; }\n/* 模型选择按钮收成图标(用户点名,2026-09-15):官方 ModelSelect 只在容器\n ≤360px 时把 triggerLabel/triggerEffort 换成 triggerIcon,而查询容器正是上面\n 这条底行——本插件移动端把中列拉满、收回官方 56px sidebar rail,428~440px\n 机型的行内容盒达 368~378px,官方规则永不触发,手机上常显模型名。这里显式\n 按官方窄容器形态收成图标(唯一被藏起来的是「名称」这一处视觉信息:官方\n trigger 自带含模型名的 aria-label,读屏照旧)。\n 媒体查询门是必需的:移动端适配覆盖 ≤1023px,481px 以上行内足够宽,官方\n 语义本就是「放得下就显示名称」;480 = 官方等效临界视口(360 + 56 rail +\n 32 clearance + 16 row padding ≈ 464~474)的安全上界。类哈希 _7KE1Ra_ 取自\n dsh-client-ui-model-selection ModelSelect.module.css(rc.2),升级需复核。 */\n@media (max-width: 480px) {\n html[data-dshsvc-mobile] [class*="_7KE1Ra_triggerIcon"] { display: block !important; }\n html[data-dshsvc-mobile] [class*="_7KE1Ra_triggerLabel"],\n html[data-dshsvc-mobile] [class*="_7KE1Ra_triggerEffort"] { display: none !important; }\n}\n/* 工作区侧板(fixed z25 层内的 nArs4W_panel z40)开屏后会盖住它自己的外部\n 开关钮(tab bar 行 nArs4W_toggleButton)——手机上抽屉一开就再没有任何\n 可点的关闭入口(真机反馈「关不上」本体)。把开关钮提到面板之上,\n 恢复「同一颗钮开/关」语义。 */\nhtml[data-dshsvc-mobile] [class*="nArs4W_toggleButton"] {\n position: relative !important;\n z-index: 45 !important;\n}\n/* 会话底部统计条(composer 下方两枚统计:轮/步/tok/s | tok/缓存命中):\n 官方这条行自带左右各 32px 内边距 + 12px 列间距,手机上先吃掉 76px;两枚 pill\n 完整显示需 ~380px,于是官方让它们各自收缩、把每枚的文字截断(0.1.5-rc.2 的\n 截断落在每枚 pill 自己的 bOPqQW_label 上)。用户点名(2026-09-15):「不要换行,\n 保持一行、把空间利用最大化」。\n 修法:只收紧这条行自身的内边距/间距,两枚 pill 按需分宽、共占满整行——始终一行,\n 装得下时零截断(≥~420px 视口),装不下时按比例各让一点(比官方的固定截断少一个\n 数量级),不换行、不横向滚动。\n 旧宿主(0.1.2-alpha.2 ~ 0.1.4)的单行横滑规则(NDN2W_root)原样保留。 */\n/* 统计条与外部上下文圆环的单行布局:\n 0.1.6 官方把上下文圆环(JObwrW_root / JObwrW_trigger)移入输入框外部下方的\n uV2eYG_dock,与统计胶囊(bOPqQW_root)并列,挤占了移动端可用宽度。\n 修法:\n ① 收紧 uV2eYG_root 两侧内边距至 8px,uV2eYG_dock 间距收至 3px;换行保持开启——\n 圆环与统计胶囊共占第一行,插件的子代理累计行(flex-basis:100%,见 apply.js svcStyle)\n 独占第二行,官方条目之间仍不换行;\n ② 降低统计条与上下文圆环字号至 11px(≤375px 极窄视口阶梯降至 10px),行高 16px;\n ③ 收紧 pill 内边距、sep 间隔及 svg 尺寸(11px),上下文圆环内边距收至 1px 3px;\n 保证从 360px 起所有移动端视口下统计与上下文圆环均零截断、单行排开。\n 旧宿主(0.1.2-alpha.2 ~ 0.1.4)的单行横滑规则(NDN2W_root)原样保留。 */\nhtml[data-dshsvc-mobile] [class*="uV2eYG_root"] {\n padding-left: 8px !important;\n padding-right: 8px !important;\n}\nhtml[data-dshsvc-mobile] [class*="uV2eYG_dock"] {\n gap: 0 3px !important;\n max-width: 100% !important;\n flex-wrap: wrap !important;\n justify-content: center !important;\n}\nhtml[data-dshsvc-mobile] [class*="NDN2W_root"] {\n overflow-x: auto !important;\n overflow-y: hidden !important;\n text-overflow: clip !important;\n -webkit-overflow-scrolling: touch;\n scrollbar-width: none !important;\n}\nhtml[data-dshsvc-mobile] [class*="NDN2W_root"]::-webkit-scrollbar { display: none !important; }\nhtml[data-dshsvc-mobile] [class*="bOPqQW_root"] {\n flex-wrap: nowrap !important;\n padding-left: 2px !important;\n padding-right: 2px !important;\n column-gap: 3px !important;\n font-size: 11px !important;\n line-height: 16px !important;\n}\nhtml[data-dshsvc-mobile] [class*="bOPqQW_root"] > * { flex: 1 1 auto !important; min-width: 0 !important; }\nhtml[data-dshsvc-mobile] [class*="bOPqQW_pill"] {\n min-width: 0 !important;\n padding-left: 2px !important;\n padding-right: 2px !important;\n gap: 2px !important;\n font-size: 11px !important;\n line-height: 16px !important;\n}\nhtml[data-dshsvc-mobile] [class*="bOPqQW_pill"] svg {\n width: 11px !important;\n height: 11px !important;\n flex: none !important;\n}\nhtml[data-dshsvc-mobile] [class*="bOPqQW_sep"] {\n margin: 0 1px !important;\n}\nhtml[data-dshsvc-mobile] [class*="bOPqQW_label"] {\n overflow: hidden !important;\n text-overflow: ellipsis !important;\n white-space: nowrap !important;\n}\nhtml[data-dshsvc-mobile] [class*="JObwrW_root"] {\n flex: none !important;\n min-width: 0 !important;\n}\nhtml[data-dshsvc-mobile] [class*="JObwrW_trigger"] {\n font-size: 11px !important;\n line-height: 16px !important;\n padding: 1px 3px !important;\n gap: 2px !important;\n}\nhtml[data-dshsvc-mobile] [class*="JObwrW_trigger"] svg {\n width: 11px !important;\n height: 11px !important;\n flex: none !important;\n}\nhtml[data-dshsvc-mobile] [data-dsh-service-subagent-models-dock] {\n font-size: 11px !important;\n line-height: 16px !important;\n padding: 1px 2px !important;\n}\n@media (max-width: 375px) {\n html[data-dshsvc-mobile] [class*="bOPqQW_root"],\n html[data-dshsvc-mobile] [class*="bOPqQW_pill"],\n html[data-dshsvc-mobile] [class*="JObwrW_trigger"],\n html[data-dshsvc-mobile] [data-dsh-service-subagent-models-dock] {\n font-size: 10px !important;\n }\n}\n/* Assistant 回合尾部的运行元信息行(MessageIconActions)使用官方目录属性\n data-chat-flow-kind="turn-tail" 定位,内层兜底走回合尾节点自带的稳定\n data-turn-tail(0.1.2-alpha.2 起 data-time-hover-root 已删除):\n 「带 data-turn-tail 的节点」的最后一个子项 = actions 行,其最后一个 span =\n end-clock 时间文本(bundle 源码核实:clock:"end" 渲染在 children 末位)。\n 行容器 min-width:0、时间文本可收缩并省略,以免移动端时间信息把复制/分支\n 按钮挤出可视区域。 */\nhtml[data-dshsvc-mobile] [data-chat-flow-kind="turn-tail"] [data-turn-tail] > :last-child {\n min-width: 0 !important;\n max-width: 100% !important;\n}\nhtml[data-dshsvc-mobile] [data-chat-flow-kind="turn-tail"] [data-turn-tail] > :last-child > span:last-child {\n flex: 1 1 auto !important;\n min-width: 0 !important;\n white-space: nowrap !important;\n overflow: hidden !important;\n text-overflow: ellipsis !important;\n padding-inline: 2px !important;\n}\n/* 回到底部按钮簇(官方 *_toBottom 词干后缀,rc.2 Md3f7G_ → 0.1.2-alpha.2 EvIC1a_,\n 自有上箭头 data-dshsvc-user-jump):\n 移动端右侧还有约一行留白(scroll 的 --dsh-composer-side-clearance 侧清理),\n 纯位移右移贴边(transform 只动绘制不动布局,sticky 定位不受影响)。\n :not([class*="Slot"]) 排除命名含 Slot 的 sticky 槽层,只移按钮本体。\n 方向:正 translateX 向右;位移量 = 侧清理 +16(scroll 右 padding)再留 4px 缓冲。 */\nhtml[data-dshsvc-mobile] [class*="_toBottom"]:not([class*="Slot"]),\nhtml[data-dshsvc-mobile] [data-dshsvc-user-jump] {\n transform: translateX(calc(var(--dsh-composer-side-clearance, 16px) + 16px - 4px)) !important;\n}\n/* 左上角抽屉钮:悬停/按压用外壳交互底色;会话头部预留按钮位防遮面包屑 */\nhtml[data-dshsvc-mobile] [data-dshsvc-fab]:hover,\nhtml[data-dshsvc-mobile] [data-dshsvc-fab]:active { background: var(--dsw-alias-interactive-bg-hover) !important; }\nhtml[data-dshsvc-mobile] [data-dshsvc-frame] > :nth-child(2) header { padding: 10px 20px 0 46px !important; }\n/* 会话顶栏移动端适配:\n titleRow 里 标题crumb / 「N 个子代理」计数芯片 / 预设芯片(创造模式)互相挤压——\n 官方 crumbs 自带 overflow:hidden,放不下的尾部被**硬裁**:计数芯片拦腰截断\n (真机 390px 实测裁掉 49px,视觉即「1 个子代…」),标题缩到 ~119px。\n 只收紧固定几何 + 改收缩优先级,不重挂 DOM、不藏任何信息:\n ① 头部右内边距 28→20:corner 钮自带 margin-right:-16px 悬出,20 仍留 4px 边距;\n ② 更多操作钮的 utilities 左距 20→4(blank 空头部该层 :empty 隐藏,不受影响);\n ③ titleCluster 列距 10→6;\n ④ 计数组(分隔符+计数触发钮)列距 10→4,并 flex:none 不可挤压——标题按钮\n 自带 overflow:hidden + ellipsis(min-content=0)天生是收缩担当,让省出的\n 宽度全部归标题;计数文案与触发钮 aria-label(「N 个子代理」)原样保留。\n :not(:has(switcherTrigger)) 守卫带 lineage 切换器的根(其内部自有\n min-width:0 收缩链,钉死会溢出);:has 不支持时整条失效,退回官方行为。\n 类哈希 wSkVaW_ 取自 dsh-client-ui-conversation ConversationRoot.module.css、\n ZKlsPq_ 取自 dsh-client-ui-subagent SubagentHeaderLineage.module.css\n (均 0.1.6-alpha.2),升级需复核。 */\nhtml[data-dshsvc-mobile] [class*="wSkVaW_headerUtilities"] { margin-left: 4px !important; }\nhtml[data-dshsvc-mobile] [class*="wSkVaW_titleCluster"] { gap: 6px !important; }\nhtml[data-dshsvc-mobile] [class*="ZKlsPq_root"] { gap: 4px !important; }\nhtml[data-dshsvc-mobile] [class*="ZKlsPq_root"]:not(:has([class*="ZKlsPq_switcherTrigger"])) { flex: none !important; }\n/* 动作芯片泊位 v2(模式回标题行,子代理+任务下标签行\n 右锚成对;官方标签行没有第三方挂载点,泊位=自有 CSS absolute 定位):\n · 标签行官方 gap 36→20,标签内容尾 ≈126px;\n · 任务芯片(QsffPG_root,运行中带箭头自然宽 ~151.5px)right:106 —— 右侧 90px\n 让给子代理芯片(带箭头 81.5~87.5px,「1~99 个」,间隔 8.5~2.5px),右锚成\n 「[任务][子代理]」两枚一排(第三方插件将来若也泊到此带,右缘 16px 起排不受影响);\n max-width calc(100vw − 240px) 封顶(右距 106 + 标签尾 126 + 8 缓冲),\n ≤360 档计数文字按省略优雅降级(320 档省 ~71px)、绝不压到对话/轨迹;\n · 子代理芯片(ZKlsPq_root)right:16 最贴右;泊离标题后分隔符「/」失去对象,隐藏;\n · 计数文字 nowrap+ellipsis 可省;下拉箭头保留,320~360 档文字省略加深,\n 但开合指示不丢;\n · 两枚芯片的下拉菜单(锚在各自 root 上 top:100%+5、left:0)改右锚展开并按\n 视口封顶(max-width 100vw−122 = 任务右距 106 + 16 边距),否则贴右泊位时\n 336px 菜单会越出屏幕(390 档实测左越 46px);\n · 预设芯片(SVAs4q_label)不再泊动——随官方 headerActions 留在标题行\n (「模式=会话身份」与标题同级),第三方动作芯片同样留官方原位不受泊位管辖;\n 子代理计数离开 crumbs 后标题吃满整行(390 档 198px);\n · ≤560 门:561~1023 行宽足够(标题 ≥115px),保持官方在流。blank 空头部\n :not 守卫不泊。类哈希 QsffPG_ 取自 dsh-client-ui-jobs JobListAction.module.css\n (0.1.6-alpha.2),升级需复核。 */\n@media (max-width: 560px) {\n html[data-dshsvc-mobile] [data-dshsvc-frame] > :nth-child(2) header:not([class*="wSkVaW_headerBlank"]) { position: relative !important; }\n html[data-dshsvc-mobile] [class*="wSkVaW_tabs"] { gap: 20px !important; }\n html[data-dshsvc-mobile] [class*="QsffPG_root"],\n html[data-dshsvc-mobile] [class*="ZKlsPq_root"]:not(:has([class*="ZKlsPq_switcherTrigger"])) {\n position: absolute !important;\n bottom: 4px !important;\n z-index: 2;\n }\n html[data-dshsvc-mobile] [class*="QsffPG_root"] {\n right: 106px !important;\n max-width: calc(100vw - 240px) !important;\n }\n html[data-dshsvc-mobile] [class*="ZKlsPq_root"]:not(:has([class*="ZKlsPq_switcherTrigger"])) {\n right: 16px !important;\n }\n /* 分隔符/箭头/收缩只作用于已泊出的子代理根;带 lineage 切换器而留在\n crumbs 里的根(:has 守卫排除的那支)保持官方形态不受影响。 */\n html[data-dshsvc-mobile] [class*="ZKlsPq_root"]:not(:has([class*="ZKlsPq_switcherTrigger"])) [class*="ZKlsPq_separator"] { display: none !important; }\n html[data-dshsvc-mobile] [class*="QsffPG_trigger"],\n html[data-dshsvc-mobile] [class*="ZKlsPq_root"]:not(:has([class*="ZKlsPq_switcherTrigger"])) [class*="ZKlsPq_trigger"] { min-width: 0 !important; max-width: 100% !important; }\n html[data-dshsvc-mobile] [class*="QsffPG_trigger"] > svg:last-child,\n html[data-dshsvc-mobile] [class*="ZKlsPq_root"]:not(:has([class*="ZKlsPq_switcherTrigger"])) [class*="ZKlsPq_trigger"] > svg:last-child { flex: none !important; }\n html[data-dshsvc-mobile] [class*="QsffPG_count"] {\n min-width: 0 !important;\n flex: 0 1 auto !important;\n margin: 0 2px !important;\n white-space: nowrap !important;\n overflow: hidden !important;\n text-overflow: ellipsis !important;\n }\n html[data-dshsvc-mobile] [class*="QsffPG_menu"],\n html[data-dshsvc-mobile] [class*="ZKlsPq_menu"] {\n left: auto !important;\n right: 0 !important;\n max-width: calc(100vw - 122px) !important;\n }\n /* 预设芯片右靠:margin-left:auto 把 crumbs 与\n 动作组之间的全部富余收到中间——标题贴左、模式芯片贴住更多钮(间距 4px),\n 标题长短变化时芯片位置稳定不飘。 */\n html[data-dshsvc-mobile] header:not([class*="wSkVaW_headerBlank"]) [class*="wSkVaW_headerActions"] { margin-left: auto !important; }\n}\n/* Agent Team 弹窗右锚:修复移动端面板右侧超出视口。\n 面板 = 官方 @deepseek-ai/dsh-experimental-client-ui-agent-team 的 TeamAction,\n 注册在 conversation.session.header.actions(与任务/子代理芯片同槽)。它自己的\n CSS 是 position:absolute; left:0; top:calc(100% + 5px);\n width:min(560px,100vw - 32px)——**左锚在触发钮左缘**,而该槽位在移动端位于\n 头部右侧(右锚泊位之外),面板便整体右移越屏:真机实测 320~560px 越出\n 112~352px、768/1023 越出 198/140px(面板右缘 = 触发钮左缘 + 面板宽)。\n\n 修法(三条规则,均基于稳定属性而非类哈希):\n ① 面板的包含块要落在**头部**而不是触发钮:会话头部在 ≥561px 官方为 static,\n 而 .root{position:relative} 会让面板锚在触发钮上 → 引擎已打的\n data-dshsvc-chat-header 上补 position:relative(≤560 档泊位组已设过,\n 这里把覆盖面扩到整个移动端,幂等),再把 TeamAction 根改 static 把\n 包含块让给头部;\n ② 面板本身改右锚:left:auto + right:16px,与它自带的\n 100vw − 32px 宽度公式(两侧各 16px)对称,并补 max-width 封顶以防\n 官方改宽。桌面 ≥1024 引擎拆卸、标记与属性同时下线 → 官方几何逐字不变。\n\n 选右锚而非 fixed:沉浸态头部带 transform(translateY(-100%)),被变换的\n 祖先会成为 fixed 后代的包含块——本文件顶部记载的 containing-block 陷阱;\n 真机实测 fixed 变体在沉浸态随头部一起位移(top 84→-68),与 absolute 无异,\n 却另外硬编码了一份纵向几何。右锚复用头部包含块,两者行为一致且不写死 top。 */\nhtml[data-dshsvc-mobile] [data-dshsvc-chat-header] { position: relative !important; }\nhtml[data-dshsvc-mobile] [data-team-action] { position: static !important; }\nhtml[data-dshsvc-mobile] [data-team-action] [role="dialog"] {\n left: auto !important;\n right: 16px !important;\n max-width: calc(100vw - 32px) !important;\n}\n/* 刘海安全区:viewport-fit=cover 后由 env() 补回遮挡区 */\nhtml[data-dshsvc-mobile] body {\n padding-top: env(safe-area-inset-top, 0px);\n padding-bottom: env(safe-area-inset-bottom, 0px);\n box-sizing: border-box;\n}\n/* 双击缩放与 iOS 聚焦放大 */\nhtml[data-dshsvc-mobile] button,\nhtml[data-dshsvc-mobile] a,\nhtml[data-dshsvc-mobile] [role="button"],\nhtml[data-dshsvc-mobile] input,\nhtml[data-dshsvc-mobile] textarea,\nhtml[data-dshsvc-mobile] select { touch-action: manipulation; }\nhtml[data-dshsvc-mobile] input:not([type="checkbox"]):not([type="radio"]):not([type="button"]):not([type="submit"]):not([type="reset"]),\nhtml[data-dshsvc-mobile] textarea { font-size: max(16px, 1em) !important; }\n/* composer 防挤压:真机反馈后迭代。0.1.5-rc.2 起外壳已无含 "toolbar"/"inputTriggers"\n 的类名(活页面命中 0,2026-09-15 死规则审计),两条泛化规则删除;只留仍命中的\n "composer"(composerSeat 等)——min-width:0 + max-width:100% 防子项撑破容器。 */\nhtml[data-dshsvc-mobile] [class*="composer" i] { min-width: 0 !important; max-width: 100% !important; }\n/* —— 滑动沉浸(v0.36;2026-09-15 几何返工)——\n 原先用 transform: translateY(115%) 把 composer 座滑出视口:**变换后的视觉溢出会被\n 计入滚动容器的可滚动区域**(实测 +147px),于是「沉浸态滑到底」时内容被抬高、底部露出\n 291px 空带(用户反馈「对话框和输出空一大段」);回显时这 147px 又消失,滚动位置随之\n 错位、最后一段被输入框压住(用户反馈「输出跑到对话框下面去了」)。\n 现改为沉浸时把该座**移出文档流**(让出 128px 占位、内容真正铺满整屏)+ 淡出:既不加\n 可滚动溢出,也不改 --dsh-composer-height(ResizeObserver 仍读到座高,外壳的浮钮偏移\n 与贴底锚定不受影响)。回显侧因占位收回会改变可滚动长度,由 setImmersive 做「贴底补偿」。 */\nhtml[data-dshsvc-mobile] [data-composer-seat] {\n transition: opacity var(--ds-transition-duration-slow, .25s) var(--ds-ease-in-out, ease) !important;\n}\nhtml[data-dshsvc-mobile][data-dshsvc-immersive] [data-composer-seat] {\n position: absolute !important;\n left: 0 !important;\n right: 0 !important;\n bottom: 0 !important;\n opacity: 0 !important;\n visibility: hidden !important;\n pointer-events: none !important;\n}\n/* 会话头部(面包屑+视图标签)在滚动体外面,藏在根列里:translateY(-100%) 上滑出\n data-phase=active 根的 overflow:hidden 裁剪区,负 margin-top 用引擎测得的高度\n (--dshsvc-header-h,ResizeObserver 实时校正;老内核无 RO 时回退常量)补位,\n 否则留一条空带。 */\nhtml[data-dshsvc-mobile] [data-dshsvc-chat-header] {\n transition: transform var(--ds-transition-duration-slow, .25s) var(--ds-ease-in-out, ease),\n margin-top var(--ds-transition-duration-slow, .25s) var(--ds-ease-in-out, ease);\n}\nhtml[data-dshsvc-mobile][data-dshsvc-immersive] [data-dshsvc-chat-header] {\n transform: translateY(-100%) !important;\n margin-top: calc(0px - var(--dshsvc-header-h, 76px)) !important;\n}\n@media (prefers-reduced-motion: reduce) {\n html[data-dshsvc-mobile][data-dshsvc-immersive] [data-composer-seat],\n html[data-dshsvc-mobile][data-dshsvc-immersive] [data-dshsvc-chat-header],\n html[data-dshsvc-mobile] [data-dshsvc-chat-header] { transition: none !important; }\n}\n',document.head.appendChild(n.styleTag),F()||(()=>{if(null===n.mountObserver&&"function"==typeof MutationObserver)try{n.mountObserver=new MutationObserver(()=>{F()}),n.mountObserver.observe(document.documentElement,{childList:!0,subtree:!0})}catch(e){n.mountObserver=null}})(),(()=>{if(!P){P=!0;for(const[e,t,a]of _)try{document.documentElement.addEventListener(e,t,a)}catch(e){}}})(),y();let e=!1;try{e=new URLSearchParams(window.location.search).has("dshsvc-mobile-debug")}catch(e){}e&&(n.debugEnabled=!0,n.errorHandler=()=>{n.errorCount+=1,V()},window.addEventListener("error",n.errorHandler),n.resizeHandler=()=>V(),window.addEventListener("resize",n.resizeHandler),n.debugChip=document.createElement("div"),n.debugChip.setAttribute("data-dshsvc-debug",""),Object.assign(n.debugChip.style,{position:"fixed",left:"8px",bottom:"calc(env(safe-area-inset-bottom, 0px) + 8px)",zIndex:"60",maxWidth:"94vw",padding:"4px 8px",borderRadius:"8px",font:"11px/1.5 var(--ds-font-family-code, monospace)",background:"var(--dsw-alias-bg-layer-2, #333)",color:"var(--dsw-alias-label-primary, #eee)",pointerEvents:"none",whiteSpace:"pre-wrap",overflow:"hidden",textOverflow:"ellipsis"}),n.debugChip.title=t("mobile.debug.title"),document.body.appendChild(n.debugChip),V()),o()})():U()};try{n.mq=window.matchMedia("(max-width: 1023px)")}catch(e){n.mq=null}return n.mmqMatches=()=>{try{return null!==n.mq&&!0===n.mq.matches}catch(e){return!1}},null!==n.mq&&(n.mqHandler=()=>K(),"function"==typeof n.mq.addEventListener?n.mq.addEventListener("change",n.mqHandler):"function"==typeof n.mq.addListener&&n.mq.addListener(n.mqHandler)),{evaluate:K,dispose:()=>{U(),null!==n.mq&&null!==n.mqHandler&&("function"==typeof n.mq.removeEventListener?n.mq.removeEventListener("change",n.mqHandler):"function"==typeof n.mq.removeListener&&n.mq.removeListener("change",n.mqHandler)),n.mqHandler=null}}}const se=()=>{const e=e=>{if("function"==typeof e.hasAttribute)try{return e.hasAttribute("data-conversation-scroll")}catch(e){return!1}try{return null!==e.attributes&&"function"==typeof e.attributes.getNamedItem&&null!==e.attributes.getNamedItem("data-conversation-scroll")}catch(e){return!1}};return{toBottomSlot:()=>{try{return document.querySelector('[class*="_toBottomSlot"]')}catch(e){return null}},toBottomButton:e=>{try{return e.querySelector('[class*="_toBottom"]:not([class*="Slot"])')}catch(e){return null}},isToBottomButton:e=>{try{return null!=e&&"function"==typeof e.closest&&null!==e.closest('[class*="_toBottom"]:not([class*="Slot"])')}catch(e){return!1}},scrollportOf:t=>{try{let a=t;for(;null!==a&&a!==document.documentElement&&!e(a);)a=a.parentNode;return null!==a&&a!==document.documentElement?a:t.parentNode}catch(e){return null}},officialTurnNavigatorVisible:e=>{try{if("function"!=typeof getComputedStyle)return!1;if(null===e||"function"!=typeof e.querySelector)return!1;const t=e.querySelector('[class*="_rail"]');return null!==t&&"none"!==getComputedStyle(t).display}catch(e){return!1}},userRows:e=>{const t=[];try{if("function"!=typeof e.querySelectorAll)return t;for(const a of e.querySelectorAll('[data-chat-flow-kind="user"]'))t.push(a)}catch(e){}return t},flowTopOf:(e,t)=>{try{return t.getBoundingClientRect().top-e.getBoundingClientRect().top}catch(e){return 0}},loadOlderButton:e=>{try{return"function"==typeof e.querySelector?e.querySelector('[class*="_older"] button'):null}catch(e){return null}}}};return a.inject=["slots","connection","timer","locale","sessions","settingsScope"],a.apply=function(t){const{useState:a,useEffect:i,useRef:o}=r,l=(e,a)=>Promise.resolve(t.connection.rpc.call("/dsh-service",e,a)).then(J);let h;"undefined"!=typeof document&&document.head&&(h=document.createElement("style"),h.dataset.plugin="@gehennawu/dsh-service",h.dataset.pluginCss="@gehennawu/dsh-service/theme-tokens.css",h.textContent=["body{--dsh-svc-page-bg:#f4f5f7;--dsh-svc-content-bg:var(--dsw-alias-bg-layer-2,#ffffff);--dsh-svc-raised-bg:var(--dsw-alias-bg-layer-3,#ffffff);--dsh-svc-text:var(--dsw-alias-label-primary,#202124);--dsh-svc-text-muted:var(--dsw-alias-label-secondary,#6b7280);--dsh-svc-border:var(--dsw-alias-border-l1,#e5e7eb);--dsh-svc-brand:var(--dsw-alias-brand-primary,#2563eb);--dsh-svc-brand-text:var(--dsw-alias-label-primary-foreground,#ffffff);--dsh-svc-info:#2563eb;--dsh-svc-success:var(--dsw-alias-state-success-primary,#16a34a);--dsh-svc-warning:var(--dsw-alias-state-warn-primary,#d97706);--dsh-svc-danger:var(--dsw-alias-state-error-primary,#dc2626)}","body{--dsh-svc-card-bg:#eceef1}","body{--dsh-svc-border-strong:#b9c0ca}","body[data-ds-dark-theme]{--dsh-svc-border-strong:#52565f}","body[data-ds-dark-theme]{--dsh-svc-card-bg:var(--dsw-alias-bg-layer-2,#202126)}","body[data-ds-dark-theme]{--dsh-svc-page-bg:var(--dsw-alias-bg-layer-1,#17181c);--dsh-svc-content-bg:var(--dsw-alias-bg-layer-2,#202126);--dsh-svc-raised-bg:var(--dsw-alias-bg-layer-3,#292a31);--dsh-svc-text:var(--dsw-alias-label-primary,#f3f4f6);--dsh-svc-text-muted:var(--dsw-alias-label-secondary,#a1a1aa);--dsh-svc-border:var(--dsw-alias-border-l1,#3f414a)}","body[data-ds-dark-theme]{--dsh-svc-brand-text:#111318}",":root{--dsh-svc-space-1:4px;--dsh-svc-space-2:8px;--dsh-svc-space-3:12px;--dsh-svc-space-4:16px;--dsh-svc-space-5:20px;--dsh-svc-space-6:24px;--dsh-svc-space-8:32px;--dsh-svc-radius-control:8px;--dsh-svc-radius-card:12px;--dsh-svc-radius-panel:16px;--dsh-svc-radius-pill:999px;--dsh-svc-control-h:36px;--dsh-svc-control-h-compact:32px;--dsh-svc-control-h-primary:40px;--dsh-svc-content-max:800px;--dsh-svc-dur-fast:120ms;--dsh-svc-dur-view:170ms;--dsh-svc-font-mono:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace}","body{--dsh-svc-surface-bg:var(--dsh-svc-card-bg);--dsh-svc-tab-active-bg:var(--dsh-svc-text);--dsh-svc-tab-active-danger:var(--dsh-svc-text);--dsh-svc-tab-active-text:#ffffff}","body[data-ds-dark-theme]{--dsh-svc-tab-active-text:#111318}","[data-dsh-service-nav]>svg:first-child,[data-dsh-service-quota-nav]>svg:first-child,[data-dsh-service-restart-nav]>svg:first-child,[data-dsh-service-sessions-nav]>svg:first-child{display:none}","[data-dsh-service-nav]::before,[data-dsh-service-quota-nav]::before,[data-dsh-service-restart-nav]::before,[data-dsh-service-sessions-nav]::before{content:'';flex:none;width:16px;height:16px;background:currentColor}","[data-dsh-service-nav]::before{"+j(P)+"}","[data-dsh-service-quota-nav]::before{"+j(V)+"}","[data-dsh-service-sessions-nav]::before{"+j(U)+"}","[data-dsh-service-restart-nav]::before{"+j(F)+"}","@media (max-width:640px){","[data-dshsvc-root] .dshsvc-tabs{flex-wrap:nowrap;overflow-x:auto;overflow-y:hidden;scrollbar-width:none;-webkit-overflow-scrolling:touch;padding:3px}","[data-dshsvc-root] .dshsvc-tabs::-webkit-scrollbar{display:none}","[data-dshsvc-root] .dshsvc-tab{padding:9px 13px;min-height:36px;box-sizing:border-box;font-size:13px;white-space:nowrap;flex:none}","[data-dshsvc-root] .dshsvc-tab svg{flex:none}","}",'[data-dshsvc-root] [data-testid="version-card"]{container-type:inline-size;container-name:dshsvc-version}',"@container dshsvc-version (max-width:480px){","[data-dshsvc-root] .dshsvc-version-row{gap:6px !important;padding:12px 2px !important}","[data-dshsvc-root] .dshsvc-version-identity{flex-basis:100%;display:block}","[data-dshsvc-root] .dshsvc-version-identity>a,[data-dshsvc-root] .dshsvc-version-identity>code{margin-left:0 !important;white-space:normal !important;overflow-wrap:anywhere}","[data-dshsvc-root] .dshsvc-version-note{display:inline}","[data-dshsvc-root] .dshsvc-version-status{flex-basis:100%;justify-content:flex-start !important}","}","@keyframes dshsv-locate-flash{0%,100%{background-color:rgba(198,128,0,0.10)}30%,70%{background-color:rgba(198,128,0,0.45)}}.dshsv-locate-flash{animation:dshsv-locate-flash 2s ease}",'[class*="uV2eYG_dock"]:has([data-dsh-service-subagent-models-dock]){flex-wrap:wrap;width:100%;row-gap:0}',"[data-dshsvc-root]{color:var(--dsh-svc-text);font-size:14px;line-height:1.55;background:var(--dsh-svc-page-bg);border-radius:var(--dsh-svc-radius-card);padding:2px}","[data-dshsvc-root] .dshsvc-page{width:100%;max-width:var(--dsh-svc-content-max);margin:0 auto}",'[data-dshsvc-root] button:focus-visible,[data-dshsvc-root] [role="switch"]:focus-visible,[data-dshsvc-root] select:focus-visible,[data-dshsvc-root] input:focus-visible{outline:2px solid var(--dsh-svc-brand);outline-offset:2px;border-radius:var(--dsh-svc-radius-control)}',"@media (prefers-reduced-motion:reduce){[data-dshsvc-root] *,[data-dshsvc-root] *::before,[data-dshsvc-root] *::after{transition-duration:0.01ms !important;animation-duration:0.01ms !important}}",'[data-testid^="sessions-project-header-"]{transition:background var(--dsh-svc-dur-fast,120ms)}','[data-testid^="sessions-project-header-"]:hover{background:var(--dsw-alias-bg-layer-3,#f2f3f5)}',"[data-dshsvc-root] .dshsvc-tabs{display:flex;align-items:center;flex-wrap:wrap;gap:2px;width:100%;box-sizing:border-box;border:0.5px solid var(--dsh-svc-border);border-radius:var(--dsh-svc-radius-card);overflow:hidden}","[data-dshsvc-root] .dshsvc-tab{position:relative;display:inline-flex;align-items:center;gap:5px;padding:8px 12px;margin:0;border:0;border-radius:0;background:transparent;color:var(--dsh-svc-text-muted);font:inherit;font-size:12px;font-weight:550;line-height:16px;cursor:pointer;transition:color var(--dsh-svc-dur-fast) ease,background var(--dsh-svc-dur-fast) ease}",'[data-dshsvc-root] .dshsvc-tab[aria-selected="true"]{background:var(--dsh-svc-tab-active-bg);color:var(--dsh-svc-tab-active-text);font-weight:650;border-radius:8px}',"[data-dshsvc-root] .dshsvc-subtabs{display:flex;flex-wrap:wrap;gap:2px;margin:10px 0 0;border-bottom:1px solid var(--dsh-svc-border)}","[data-dshsvc-root] .dshsvc-subtab{appearance:none;background:transparent;border:0;border-bottom:2px solid transparent;border-radius:0;padding:8px 10px;font:inherit;font-size:13px;font-weight:550;color:var(--dsh-svc-text-muted);cursor:pointer;transition:color var(--dsh-svc-dur-fast) ease,border-color var(--dsh-svc-dur-fast) ease}",'[data-dshsvc-root] .dshsvc-subtab[aria-selected="true"]{color:var(--dsh-svc-brand);border-bottom-color:var(--dsh-svc-brand);font-weight:700}',"[data-dshsvc-root] .dshsvc-page-header{margin:14px 2px 2px}","[data-dshsvc-root] .dshsvc-page-header-row{display:flex;align-items:center;justify-content:space-between;gap:var(--dsh-svc-space-3);flex-wrap:wrap}"].join(""),document.head.appendChild(h)),t.effect(()=>()=>{h&&h.remove()},"dsh-service theme styles"),t.effect(()=>t.locale.register(n,{zh:N,en:D}),"dsh-service dictionaries");const $=t.locale.bind(n),W=()=>"zh"===t.locale?.getSnapshot?.()?.active?"zh":"en",B=(e,t={})=>{const a=Number(e);return Number.isFinite(a)?!0===t.billions&&a>=1e9?Math.round(a/1e8)/10+"B":a>=1e6?Math.round(a/1e5)/10+"M":a>=1e3?Math.round(a/100)/10+"K":a.toLocaleString():t.invalid??""},_={healthDiagnostics:!0,modelUsage:!0,quotaLookup:!0,backupMaintenance:!0,taskNotifications:!0,healthz:!0,skillManager:!0,subagentRoute:!0,subagentModelsDock:!0,mobileAdaptation:!1,sessionManager:!0,fileEditor:!0,modelProviderIcons:!0},Z=t.settingsScope.bind({namespace:n}),ie=()=>Z.getSnapshot(),oe=e=>!1!==Object.assign({},_,ie().value||{})[e],le=()=>{const[e,t]=r.useState(ie());return r.useEffect(()=>Z.subscribe(()=>t(ie())),[]),{snapshot:e,value:Object.assign({},_,e.value||{})}};t.effect(()=>function(e){if("undefined"==typeof document||!document.body)return()=>{};let t=!1,a=null,r=null,n=null;const s=()=>{t||null!==a||("function"==typeof requestAnimationFrame?a=requestAnimationFrame(()=>{a=null,i()}):i())},i=()=>{if(t)return;const a="function"==typeof document.querySelector?document.querySelector('[role="dialog"] nav'):null;if(a!==r&&(null!==n&&n.disconnect(),n=null,r=a,null!==r&&(n=new MutationObserver(s),n.observe(r,{childList:!0,subtree:!0,characterData:!0}))),null===r)return;const i="function"==typeof r.querySelectorAll?r.querySelectorAll("button"):document.querySelectorAll('[role="dialog"] nav button');for(const t of i){const a=(t.textContent||"").trim();for(const r of e){const e=String(r.label()||"").trim();e&&a===e?t.setAttribute(r.attr,""):t.removeAttribute(r.attr)}}G()};i();const o=new MutationObserver(s);return o.observe(document.body,{childList:!0,subtree:!0}),()=>{t=!0,o.disconnect(),null!==n&&n.disconnect(),n=null,r=null,null!==a&&"function"==typeof cancelAnimationFrame&&cancelAnimationFrame(a),a=null;for(const t of e)for(const e of document.querySelectorAll("["+t.attr+"]"))e.removeAttribute(t.attr)}}([{attr:"data-dsh-service-nav",label:()=>$("nav.label")},{attr:"data-dsh-service-quota-nav",label:()=>$("tabs.quota")},{attr:"data-dsh-service-restart-nav",label:()=>$("nav.restart")},{attr:"data-dsh-service-sessions-nav",label:()=>$("tabs.sessions")}]),"dsh-service settings nav icons");const{settingsNavBackend:de,createSectionBackendSync:ce,SETTINGS_NAV_MAX_ITEMS:ue,getRawSettingsSections:pe,navOrderListeners:me,notifyNavOrderChanged:ge,readSettingsNavHidden:he,readSettingsNavOrder:ve,resolveSectionLabel:be,writeSettingsNavHidden:fe,writeSettingsNavOrder:ye,ensureSettingsNavBackendSynced:xe}=function({ctx:e,rpcCall:t}){const a="dsh-service-settings-nav-order",r="dsh-service-settings-nav-hidden",n=/^[A-Za-z0-9._-]{1,64}$/,s=(e,t,a={})=>{try{const r=localStorage.getItem(e);if(!r)return t;const s=JSON.parse(r);return!Array.isArray(s)||s.length>64?t:s.every(e=>"string"==typeof e&&n.test(e))?!0===a.excludeHost?s.filter(e=>"dsh-service"!==e):s:t}catch(e){return t}},i=()=>s(a,null),o=e=>{try{null===e?localStorage.removeItem(a):localStorage.setItem(a,JSON.stringify(e))}catch(e){}},l=()=>s(r,[],{excludeHost:!0}),d=e=>{try{if(null===e||0===e.length)localStorage.removeItem(r);else{const t=e.filter(e=>"dsh-service"!==e);localStorage.setItem(r,JSON.stringify(t))}}catch(e){}};let c=0;const u=new Set,p=()=>{try{const t=e.slots?._core;if(t&&"function"==typeof t.record)return t.record("settings.section")||null}catch(e){}return null},m=e=>{const t=new Set;try{const a=e&&e.listeners;if(a&&"function"==typeof a[Symbol.iterator])for(const e of a)"function"==typeof e&&t.add(e)}catch(e){}return t},g=()=>{c++;const t=p(),a=new Set;for(const e of u)a.add(e);for(const e of m(t))a.add(e);const r=e=>{if(u.has(e))return!0;const t=p();return m(t).has(e)};for(const e of a)if("function"==typeof e&&r(e))try{e()}catch(e){}try{if(t){const a=e.slots?._core;a&&"function"==typeof a.markDirty&&a.markDirty("settings.section",t),a&&"function"==typeof a.flush&&a.flush()}}catch(e){}try{if("function"==typeof e.slots?.register){const t=e.slots.register({name:"settings.section",id:"__dsh_nav_bump__"},()=>null);"function"==typeof t&&t()}}catch(e){}G()};let h=null,v=null;if(e.slots&&"function"==typeof e.slots.entries){const t=e.slots.entries.bind(e.slots);h=t;const a="function"==typeof e.slots.getVersion?e.slots.getVersion.bind(e.slots):null,r="function"==typeof e.slots.subscribe?e.slots.subscribe.bind(e.slots):null;e.slots.entries=function(e){const a=t(e);if("settings.section"!==e)return a;const r=i(),n=l(),s=new Set(n),o=a.filter(e=>{const t=e.options?.id??e.options?.key??"";return"__dsh_nav_bump__"!==t&&("dsh-service"===t||!s.has(t))});return r&&0!==r.length?o.map(e=>{const t=e.options?.id??e.options?.key??"",a=r.indexOf(t),n=-1!==a?10*a:1e4+(e.options?.order??0);return Object.assign({},e,{options:Object.assign({},e.options,{order:n})})}):o},a&&(e.slots.getVersion=function(e){const t=a(e);return"settings.section"===e?t+1e5*c:t});const n=new Set;r&&(e.slots.subscribe=function(e,t){if("settings.section"===e){u.add(t);const a=r(e,t),s=()=>{n.delete(s)&&(u.delete(t),"function"==typeof a&&a())};return n.add(s),s}return r(e,t)}),v=()=>{e.slots.entries=t,a&&(e.slots.getVersion=a),r&&(e.slots.subscribe=r);for(const e of Array.from(n))e();u.clear()}}e.effect(()=>()=>{v&&v()},"dsh-service settings nav slot wrapping");const b=()=>{let t=[];return h?t=h("settings.section"):"function"==typeof e.slots?.entries&&(t=e.slots.entries("settings.section")),t.filter(e=>"__dsh_nav_bump__"!==(e.options?.id??e.options?.key))},f=e=>{if(!e)return"";const t=e.label;if("function"==typeof t)try{const e=t();if(e)return String(e)}catch(e){}else if("string"==typeof t&&t)return t;return String(e.id??e.key??"")};G=()=>{if("undefined"==typeof document||!document.body)return;const e="function"==typeof document.querySelector?document.querySelector('[role="dialog"] nav'):null;if(!e)return;k();const t="function"==typeof e.querySelectorAll?e.querySelectorAll("button"):[];if(!t||0===t.length)return;const a=l(),r=new Set(a),n=i(),s=b(),o=new Map;for(const e of s){const t=e.options?.id??e.options?.key??"";if(!t||"__dsh_nav_bump__"===t)continue;const a=f(e.options);a&&o.set(a.trim(),t),o.set(t,t)}for(const e of t){const t=t=>{if("function"!=typeof e.getAttribute)return null;try{return e.getAttribute(t)}catch(e){return null}},a=t=>"function"==typeof e.hasAttribute?e.hasAttribute(t):!(!e.attrs||"function"!=typeof e.attrs.has)&&e.attrs.has(t),s="function"==typeof e.querySelector?e.querySelector("span"):null,i=(s?s.textContent:e.textContent||"").trim(),l=(t("title")||"").trim(),d=(t("aria-label")||"").trim(),c=o.get(i)||o.get(l)||o.get(d)||null;if(c){if(t("data-dsh-section-id")!==c&&"function"==typeof e.setAttribute)try{e.setAttribute("data-dsh-section-id",c)}catch(e){}if(e.style)if("dsh-service"===c?e.style.display="":r.has(c)?e.style.display="none":e.style.display="",n&&n.length>0){const t=n.indexOf(c);e.style.order=-1!==t?String(t):"9999"}else e.style.order=""}else{if(a("data-dsh-section-id")&&"function"==typeof e.removeAttribute)try{e.removeAttribute("data-dsh-section-id")}catch(e){}e.style&&(e.style.display="",e.style.order="")}}const d=e.children,c="function"==typeof e.querySelector&&(e.querySelector('[class*="navList"]')||d&&d[1])||null;c&&c.style&&n&&n.length>0&&(c.style.display="flex")};const y=({section:e,readOrder:a,readHidden:r,writeLocal:n})=>{const s={synced:!1,pushPending:!1},i=(a,r)=>{t("config-set",{section:e,value:{order:a,hidden:r}}).then(e=>{e&&!0===e.ok||(s.pushPending=!0)}).catch(()=>{s.pushPending=!0})},o=()=>{t("config-set",{section:e,value:null}).then(e=>{e&&!0===e.ok||(s.pushPending=!0)}).catch(()=>{s.pushPending=!0})},l=()=>{const e=a(),t=r();e&&e.length>0||t&&t.length>0?i(e,t):o()};return{persist:i,persistReset:o,ensureSynced:()=>{s.synced?s.pushPending&&(s.pushPending=!1,l()):(s.synced=!0,(async()=>{try{const a=await t("config-get",{section:e});if(!a||!0!==a.ok||void 0===a.value)return void(s.synced=!1);if(s.pushPending)return s.pushPending=!1,void l();const r=a.value;if(null!==r&&"object"==typeof r&&(Array.isArray(r.order)||Array.isArray(r.hidden)))return void n(Array.isArray(r.order)?r.order:null,Array.isArray(r.hidden)?r.hidden:[]);l()}catch(e){s.synced=!1}})())}}},x=y({section:"settingsNav",readOrder:()=>i(),readHidden:()=>l(),writeLocal:(e,t)=>{o(e),d(t),g()}}),k=x.ensureSynced;return{settingsNavBackend:x,createSectionBackendSync:y,SETTINGS_NAV_MAX_ITEMS:64,getRawSettingsSections:b,navOrderListeners:u,notifyNavOrderChanged:g,readSettingsNavHidden:l,readSettingsNavOrder:i,resolveSectionLabel:f,writeSettingsNavHidden:d,writeSettingsNavOrder:o,ensureSettingsNavBackendSynced:k}}({ctx:t,rpcCall:l}),ke=de.persist,we=de.persistReset,Ee=()=>{const[,e]=a(t.locale.getSnapshot());return i(()=>t.locale.subscribe(()=>e(t.locale.getSnapshot())),[]),$},{SubagentModelsDock:Se}=function({ctx:e,rpcCall:t,useTranslation:a}){const{useState:n,useEffect:s}=r,i=new Map,o=new Map,l=new Map,d=(e,a=!1)=>{if("string"!=typeof e||""===e)return Promise.resolve([]);const r=Date.now();if(!a&&r-(o.get(e)??0)<1e4)return Promise.resolve(i.get(e)??[]);let n=l.get(e);return void 0===n&&(n=t("subagent-dispatches",{parentId:e,limit:400}).then(t=>{const a=t&&!0===t.ok&&Array.isArray(t.value?.records)?t.value.records:[],r=[];for(const e of a)null!==e&&"object"==typeof e&&r.push(e);return i.set(e,r),o.set(e,Date.now()),r}).catch(()=>(o.set(e,Date.now()),null)),l.set(e,n),n.finally(()=>l.delete(e)).catch(()=>{})),n};return{SubagentModelsDock:function(t){const o=a(),[l,c]=n("");return s(()=>{let a=!1;const r="string"==typeof t.sessionId?t.sessionId:void 0;if(void 0===r)return void c("");const n=()=>{const e=Q(i.get(r)??[]);c(0===e.length?"":`${o("subagent.dock.label")}${Y(e)}`)},s=()=>d(r).then(e=>!a&&(n(),null!==e)).catch(()=>(a||c(""),!1));s();const l=()=>{a||(d(r,!0).then(()=>{a||n()}).catch(()=>{a||c("")}),u=e.timer?.timeout?.(l,2e4))};let u;return Promise.resolve(s()).then(t=>{!a&&t&&(u=e.timer?.timeout?.(l,2e4))}),()=>{a=!0,"function"==typeof u&&u()}},[t.sessionId]),""===l?null:r.createElement("div",{"data-testid":"subagent-models-dock","data-dsh-service-subagent-models-dock":!0,style:{boxSizing:"border-box",flex:"0 0 100%",order:1,textAlign:"center",fontSize:"12px",lineHeight:"18px",color:"var(--dsh-svc-text-muted, var(--dsw-alias-label-secondary, #6b7280))",padding:"0 4px",whiteSpace:"nowrap",overflow:"hidden",textOverflow:"ellipsis",maxWidth:"100%"}},l)}}}({ctx:t,rpcCall:l,useTranslation:Ee}),qe=["overview","usage","quota","diagnostics","maintenance","configuration"],Ce={overview:"tabs.overview",usage:"tabs.usage",quota:"tabs.quota",diagnostics:"tabs.health",maintenance:"tabs.maintenance",configuration:"tabs.configuration"},ze={usage:"modelUsage",quota:"quotaLookup",diagnostics:"healthDiagnostics"},Ae=["sessions","skills","subagent","backup","restart"],Te={sessions:"tabs.sessions",skills:"tabs.skills",subagent:"tabs.subagent",backup:"tabs.backup",restart:"tabs.restart"},Me={sessions:"sessionManager",skills:"skillManager",subagent:"subagentRoute",backup:"backupMaintenance"},Ie=e=>Ae.filter(t=>void 0===Me[t]||!1!==e[Me[t]]).map(e=>({id:e,labelKey:Te[e]})),He=(e,t)=>{const a=Ie(t);return 0===a.length?null:a.some(t=>t.id===e)?e:a[0].id},Oe=[{id:"features",labelKey:"tabs.features"},{id:"notifications",labelKey:"tabs.notifications"},{id:"navOrder",labelKey:"tabs.navOrder"}],Re={configuration:"page.configuration.desc"};function Le({title:e,description:t,action:a,secondary:n}){return r.createElement("header",{"data-testid":"svc-page-header",className:"dshsvc-page-header"},r.createElement("div",{className:"dshsvc-page-header-row"},r.createElement("h2",{className:"dshsvc-page-title",style:{margin:0,fontSize:"18px",fontWeight:700,lineHeight:1.4,color:"var(--dsh-svc-text)"}},e),null!=a?a:null,null!=n?r.createElement("div",{className:"dshsvc-page-secondary",style:{display:"flex",alignItems:"center",gap:"8px",flexWrap:"wrap"}},n):null),t?r.createElement("p",{className:"dshsvc-page-desc",style:{margin:"2px 0 0",fontSize:"12px",color:"var(--dsh-svc-text-muted)",lineHeight:1.5}},t):null)}function Ne({items:e,activeId:t,onChange:a,testIdPrefix:n,variant:s,dotLabel:i,ariaLabel:o}){const l="sub"===s;return r.createElement("div",{role:"tablist","aria-label":o,className:l?"dshsvc-subtabs":"dshsvc-tabs","data-testid":n+"-list"},e.map(e=>{const s=e.id===t,o=l?s?{color:"var(--dsh-svc-brand)",borderBottom:"2px solid var(--dsh-svc-brand)",fontWeight:700}:null:s?{background:"var(--dsh-svc-tab-active-bg)",color:"var(--dsh-svc-tab-active-text)",fontWeight:650,borderRadius:"8px"}:null;return r.createElement("button",{key:e.id,type:"button",role:"tab","aria-selected":String(s),"data-testid":n+"-"+e.id,className:l?"dshsvc-subtab":"dshsvc-tab",style:o,onClick:()=>a(e.id)},void 0!==e.icon?r.createElement(K,{name:e.icon}):null,e.label,e.warning?r.createElement("span",{"data-testid":"tab-dot-"+e.id,"aria-label":i,style:{position:"absolute",top:"-3px",right:"-3px",width:"8px",height:"8px",...M("50%"),background:"var(--dsw-alias-state-warn-primary)",boxShadow:"0 0 0 2px var(--dsw-alias-bg-layer-1)"}}):null,e.badge?r.createElement("span",{"data-testid":e.badge.testid,style:{position:"absolute",top:"-7px",right:"-10px",fontSize:"9px",lineHeight:"14px",padding:"0 4px",...M("999px"),background:"var(--dsw-alias-state-warn-primary)",color:"var(--dsh-svc-brand-text)",fontWeight:700}},e.badge.text):null)}))}const{notifyState:De,useNotifyState:$e,NOTIFY_KIND_KEYS:We,fireNotification:je,subscribeBellVisible:Be}=function(){const{useState:e,useEffect:t}=r,a={current:{enabled:!1,done:!0,input:!0,bellVisible:!0}};try{a.current.enabled="true"===localStorage.getItem("dsh-service-notify")}catch(e){}try{a.current.done="false"!==localStorage.getItem("dsh-service-notify-done")}catch(e){}try{a.current.input="false"!==localStorage.getItem("dsh-service-notify-input")}catch(e){}try{a.current.bellVisible="false"!==localStorage.getItem("dsh-service-notify-bell")}catch(e){}const n=new Set,s=new Set,i=(e,t)=>{try{localStorage.setItem(e,t?"true":"false")}catch(e){}},o=()=>{for(const e of n)e()},l=e=>{a.current.bellVisible=!0===e,i("dsh-service-notify-bell",a.current.bellVisible),(()=>{for(const e of s)e()})()};return{notifyState:a,useNotifyState:()=>{const[,t]=e(0),[d,c]=e(a.current.enabled),[u,p]=e(a.current.done),[m,g]=e(a.current.input),[h,v]=e(a.current.bellVisible);return r.useEffect(()=>{const e=()=>{c(a.current.enabled),p(a.current.done),g(a.current.input),v(a.current.bellVisible),t(e=>e+1)};return n.add(e),s.add(e),()=>{n.delete(e),s.delete(e)}},[]),{enabled:d,done:u,input:m,bell:h,setEnabled:e=>{return t=e,a.current.enabled=t,i("dsh-service-notify",t),void o();var t},setDone:e=>{return t=e,a.current.done=t,i("dsh-service-notify-done",t),void o();var t},setInput:e=>{return t=e,a.current.input=t,i("dsh-service-notify-input",t),void o();var t},setBell:l}},NOTIFY_KIND_KEYS:{approval:"notification.kind.approval","plan-review":"notification.kind.plan-review",question:"notification.kind.question"},fireNotification:(e,t)=>{if("undefined"!=typeof Notification&&"granted"===Notification.permission)try{const a=new Notification(e,{body:t});a.onclick=()=>{try{window.focus()}catch(e){}try{a.close()}catch(e){}}}catch(e){}},subscribeBellVisible:e=>(s.add(e),()=>s.delete(e))}}(),_e=({storageKey:e,legacyStorageKey:r,sectionId:n,order:s,labelKey:o,feature:l,renderContent:d})=>{let c=!1;try{let t=localStorage.getItem(e);if(null===t&&void 0!==r){const a=localStorage.getItem(r);if(null!==a){try{localStorage.setItem(e,a)}catch(e){}t=a}}c="true"===t}catch(e){}let u=null;const p=new Set,m=()=>{u&&(u(),u=null),c&&(void 0===l||oe(l))&&(u=t.slots.register({name:"settings.section",id:n,order:s,label:()=>$(o)},d))},g=t=>{c=!0===t;try{localStorage.setItem(e,c?"true":"false")}catch(e){}m(),"function"==typeof ge&&ge();for(const e of p)e()};return{sync:m,setEnabled:g,useEnabled:()=>{const[e,t]=a(c);return i(()=>{const e=()=>t(c);return p.add(e),t(c),()=>p.delete(e)},[]),[e,g]},disposeEntry:()=>{u&&(u(),u=null)}}},Pe=_e({storageKey:"dsh-service-shortcut-restart",legacyStorageKey:"dsh-service-restart-nav",sectionId:"dsh-service-restart",order:499,labelKey:"nav.restart",renderContent:()=>r.createElement(Ye,null)}),Ve=_e({storageKey:"dsh-service-shortcut-quota",legacyStorageKey:"dsh-service-quota-nav",sectionId:"dsh-service-quota",order:498,labelKey:"tabs.quota",feature:"quotaLookup",renderContent:()=>r.createElement(Ca,null)}),Fe=_e({storageKey:"dsh-service-shortcut-sessions",legacyStorageKey:"dsh-service-sessions-nav",sectionId:"dsh-service-sessions",order:495,labelKey:"tabs.sessions",feature:"sessionManager",renderContent:()=>r.createElement(Na,null)}),Ue=()=>{try{if("function"==typeof t.get)return t.get("modelDirectories")}catch(e){}},Ke={runningSessionIds:new Set},{DSH_NOT_SUPPORTED_FROM:Ge,RestartOverlay:Qe,RestartSection:Ye,channelLines:Je,compareSemver:Ze,fetchVersionSnapshot:Xe,isDshUnsupported:et,refreshVersionSnapshot:tt,startRecovery:at,useInstalledVersion:rt,useRestartFlow:nt,useRuntimeEnv:st,isUpgradeInFlight:it,setUpgradeInFlight:ot,getRuntimeEnvState:lt}=re({ctx:t,rpcCall:l,t:$,useTranslation:Ee,restartNavToggle:Pe}),{QUOTA_KIND_OPTIONS:dt,acquireQuotaLoop:ct,applyQuotaCardOrder:ut,formatClockTime:pt,formatShortDate:mt,humanizeDuration:gt,subscribeQuotaCards:ht,commitQuotaCards:vt,resetQuotaCards:bt,ensureQuotaCardsSynced:ft,quotaWindowDisplayLabel:yt,quotaWindowValueText:xt,readQuotaCardHidden:kt,readQuotaCardOrder:wt,releaseQuotaLoop:Et,quotaExtractBalance:St,resolveBalanceBaseline:qt,setManualBalanceBaseline:Ct,computeBalanceGaugeState:zt,fetchQuotaSnapshot:At}=function({ctx:e,rpcCall:t,featureEnabled:a,getModelDirectories:n,sessionActivity:s,createSectionBackendSync:i,SETTINGS_NAV_MAX_ITEMS:o,formatCompactCount:l}){const{useState:d,useEffect:c}=r,u="dsh-service-quota-card-order",p="dsh-service-quota-card-hidden",m=(e,t)=>{try{const a=localStorage.getItem(e);if(!a)return t;const r=JSON.parse(a);return!Array.isArray(r)||r.length>o?t:r.every(e=>"string"==typeof e&&""!==e.trim()&&e.trim().length<=128)?r.map(e=>e.trim()):t}catch(e){return t}},h=()=>m(u,[]),v=()=>m(p,[]),b=e=>{try{null===e?localStorage.removeItem(u):localStorage.setItem(u,JSON.stringify(e.slice(0,o)))}catch(e){}},f=e=>{try{null===e||0===e.length?localStorage.removeItem(p):localStorage.setItem(p,JSON.stringify(e.slice(0,o)))}catch(e){}},y=new Set,x=()=>{for(const e of y)try{e()}catch(e){}},k=i({section:"quotaCards",readOrder:()=>h(),readHidden:()=>v(),writeLocal:(e,t)=>{b(e),f(t),x()}});let w=null,E=null;function S(e){return"all"===e?.scope?{scope:"all"}:{providers:Array.isArray(e?.providers)?[...new Set(e.providers.filter(e=>"string"==typeof e&&""!==e))].sort():[]}}async function q(a={providers:[]}){const r=S(a);return null!==w?(n=E,s=r,E="all"===n?.scope||"all"===s?.scope?{scope:"all"}:S({providers:[...n?.providers??[],...s?.providers??[]]}),w):(w=Promise.resolve().then(async()=>{try{const a=await t("quota",r);if(!0===a?.ok&&a.value&&"object"==typeof a.value&&Array.isArray(a.value.providers))return g.publish(a.value),function(t,a={providers:[]}){Array.isArray(t?.providers)&&t.providers.some(e=>!0===e.adapted&&!0===e.refreshing)&&0!==T.refs?null!==z.dispose||z.pulls>=A.length||(z.dispose=e.timer.timeout(()=>{z.dispose=null,q(a)},A[z.pulls]),z.pulls+=1):z.pulls=0}(a.value,r),!0}catch(e){}return!1}).finally(()=>{w=null;const e=E;E=null,null!==e&&q(e)}),w);var n,s}function C(){const e=n();if(void 0===e||"function"!=typeof e.directoryFor)return[];const t=[];for(const a of s.runningSessionIds)try{const r=e.directoryFor(a)?.store?.getSnapshot?.()?.current;"string"==typeof r?.provider&&""!==r.provider&&t.push(r.provider)}catch(e){}return[...new Set(t)]}const z={pulls:0,dispose:null},A=[800,2400,4800,8e3,12e3],T={refs:0,allRefs:0,running:!1};e.effect(()=>()=>{null!==z.dispose&&z.dispose()},"dsh-service quota snapshot disposal");const M="dsh-service-quota-balance-baseline";function I(){try{const e=localStorage.getItem(M);if(!e)return{};const t=JSON.parse(e);return null===t||"object"!=typeof t||Array.isArray(t)?{}:t}catch(e){return{}}}function H(e){try{e&&0!==Object.keys(e).length?localStorage.setItem(M,JSON.stringify(e)):localStorage.removeItem(M)}catch(e){}}return{QUOTA_KIND_OPTIONS:["opencode-go","zai-coding-cn","openrouter","kimi","siliconflow","deepseek","stepfun","stepfun-step-plan","xiaomi-token-plan-cn","cliproxy","command-goat"],acquireQuotaLoop:function(e={}){a("quotaLookup")&&(T.refs+=1,!0===e.all&&(T.allRefs+=1),!0===e.all?q({scope:"all"}):function(){if(!a("quotaLookup")||0===T.refs||!0===T.running)return;const e=T.allRefs>0?{scope:"all"}:{providers:C()};"all"!==e.scope&&0===e.providers.length||(T.running=!0,Promise.resolve(q(e)).catch(()=>!1).then(()=>{T.running=!1}))}())},applyQuotaCardOrder:function(e,t){const a=new Map(t.map((e,t)=>[e,t]));return e.map((e,r)=>({row:e,key:a.has(e.provider)?a.get(e.provider):t.length+r})).sort((e,t)=>e.key-t.key).map(e=>e.row)},formatClockTime:function(e){try{return new Date(e).toLocaleTimeString([],{hour:"2-digit",minute:"2-digit",hourCycle:"h23"})}catch(e){return""}},formatShortDate:function(e){const t=new Date(e),a=e=>String(e).padStart(2,"0");return`${t.getFullYear()}-${a(t.getMonth()+1)}-${a(t.getDate())}`},humanizeDuration:function(e,t){const a=Math.max(0,Math.floor(e/6e4)),r=Math.floor(a/1440),n=Math.floor(a%1440/60),s=a%60,i=[];return r>0&&i.push(t("quota.unit.day",{count:r})),n>0&&i.push(t("quota.unit.hour",{count:n})),s>0&&i.push(t("quota.unit.minute",{count:s})),0===i.length&&i.push(t("quota.unit.minute",{count:0})),i.slice(0,2).join(" ")},subscribeQuotaCards:e=>(y.add(e),()=>y.delete(e)),commitQuotaCards:(e,t)=>{b(e),f(t),x(),k.persist(e,t)},resetQuotaCards:()=>{b(null),f(null),x(),k.persistReset()},ensureQuotaCardsSynced:()=>k.ensureSynced(),quotaWindowDisplayLabel:function(e,t){const a="string"==typeof e.kindKey&&""!==e.kindKey,r=a?e.kindKey:e.id;let n=t(`quota.window.${r}`);if(n===`quota.window.${r}`)if(a){const a=t(`quota.window.${e.id}`);n=a!==`quota.window.${e.id}`?a:r}else n=function(e,t){const a=t(`quota.window.${e}`);if(a!==`quota.window.${e}`)return a;const r=String(e).split("-"),n=r.length>=2?`${r[0]}-${r[1]}`:r[0],s=t(`quota.window.${n}`);return s===`quota.window.${n}`?e:s}(e.id,t);const s="string"==typeof e.label?e.label.trim():"";return""!==s?`${s} · ${n}`:n},quotaWindowValueText:function(e){const t=`${e.percent}%`,a=Number(e.used),r=Number(e.limit);return!Number.isFinite(a)||!Number.isFinite(r)||r<=0?t:"usd"===e.unit?`${t} · $${a.toFixed(2)} / $${r.toFixed(2)}`:`${t} · ${l(a,{billions:!0})} / ${l(r,{billions:!0})}`},readQuotaCardHidden:v,readQuotaCardOrder:h,releaseQuotaLoop:function(e={}){(a("quotaLookup")||0!==T.refs)&&(T.refs=Math.max(0,T.refs-1),!0===e.all&&(T.allRefs=Math.max(0,T.allRefs-1)),T.refs>0||null!==z.dispose&&(z.dispose(),z.dispose=null))},quotaExtractBalance:function(e){if(!Array.isArray(e)||0===e.length)return null;const t=e.find(e=>"balance"===e.kindKey)||e.find(e=>"string"==typeof e.id&&e.id.startsWith("balance"))||e.find(e=>"string"==typeof e.text&&/^[¥$€£]|\b(CNY|USD|EUR|GBP)\b/.test(e.text));if(!t||"string"!=typeof t.text)return null;const a=t.text.trim();let r="CNY",n="¥";a.startsWith("$")||"USD"===t.label||a.toUpperCase().includes("USD")?(r="USD",n="$"):a.startsWith("€")||"EUR"===t.label||a.toUpperCase().includes("EUR")?(r="EUR",n="€"):(a.startsWith("£")||"GBP"===t.label||a.toUpperCase().includes("GBP"))&&(r="GBP",n="£");const s=a.replace(/[^0-9.]/g,""),i=Number(s);return Number.isFinite(i)?{amount:i,currency:r,symbol:n,rawText:a,window:t}:null},resolveBalanceBaseline:function(e,t,a){if("string"!=typeof e||""===e||!Number.isFinite(t))return null;const r="USD"===a?5:20,n=I(),s=n[e];let i=r;if(s&&"number"==typeof s.baseline&&Number.isFinite(s.baseline)){i=s.baseline;const a="number"==typeof s.lastBalance?s.lastBalance:i;t>i||t>a+.5?(i=Math.max(t,r),n[e]={baseline:i,lastBalance:t,updatedAt:Date.now()},H(n)):Math.abs(t-a)>.001&&(n[e]={...s,lastBalance:t,updatedAt:Date.now()},H(n))}else i=Math.max(t,r),n[e]={baseline:i,lastBalance:t,updatedAt:Date.now()},H(n);return i},setManualBalanceBaseline:function(e,t,a){if("string"!=typeof e||""===e||!Number.isFinite(t)||t<=0)return null;const r=Math.round(100*t)/100,n=I();return n[e]={baseline:r,lastBalance:t,updatedAt:Date.now()},H(n),r},computeBalanceGaugeState:function(e,t,a){const r=Number.isFinite(t)&&t>0?t:"USD"===a?5:20,n=e/r*100,s=Math.min(100,Math.max(0,Math.round(n))),i="USD"===a?e<=.5:e<=2,o="USD"===a?e>=10:e>=50;let l="high",d="var(--dsw-alias-state-success-primary)";return e<=0||i?(l="low",d="var(--dsw-alias-state-error-primary)"):s<20?o?(l="mid",d="var(--dsw-alias-state-warn-primary)"):(l="low",d="var(--dsw-alias-state-error-primary)"):s<50?(l="mid",d="var(--dsw-alias-state-warn-primary)"):(l="high",d="var(--dsw-alias-state-success-primary)"),{ratio:s,gear:l,color:d,needleAngle:s/100*180-90,baseline:r,isExtremeLow:i,isComfortableHigh:o}},fetchQuotaSnapshot:q}}({ctx:t,rpcCall:l,featureEnabled:oe,getModelDirectories:Ue,sessionActivity:Ke,createSectionBackendSync:ce,SETTINGS_NAV_MAX_ITEMS:ue,formatCompactCount:B});!function({ctx:e,sessionActivity:t,t:a,featureEnabled:r,featureScope:n,notifyState:s,fireNotification:i,NOTIFY_KIND_KEYS:o}){if(e.sessions&&"function"==typeof e.sessions.list?.subscribe){const l=new Map;let d=!1,c=null,u=null;const p=t=>{if(null!=t&&void 0!==t.uiSession)return t.uiSession;try{if("function"==typeof e.get)return e.get("uiSession")}catch(e){}};let m,g=null;const h=new Map;let v=!1,b=null,f=null;const y=()=>{null!==b&&(b(),b=null),null!==f&&(f(),f=null),h.clear(),v=!1},x=()=>m??p(),k=()=>{const n=e.sessions.list.getSnapshot();if(n&&n.byId)if(t.runningSessionIds=new Set(Object.entries(n.byId).filter(([,e])=>!0===e.running).map(([e])=>e)),d){for(const[e,t]of Object.entries(n.byId)){const n={running:!0===t.running},o=l.get(e);void 0!==o&&o.running&&!n.running&&"subagent"!==t.origin&&r("taskNotifications")&&s.current.enabled&&s.current.done&&i(a("notification.doneTitle"),a("notification.doneBody",{title:t.displayTitle||e})),l.set(e,n)}for(const e of[...l.keys()])e in n.byId||l.delete(e)}else{d=!0;for(const[e,t]of Object.entries(n.byId))l.set(e,{running:!0===t.running})}},w=()=>{const t=x();if(!t||"function"!=typeof t.sessionStatus?.subscribe)return;const n=t.sessionStatus.getSnapshot();if(n&&"function"==typeof n.entries)if(v){for(const[t,l]of n.entries()){const n={pending:void 0!==l?.pendingInteraction},d=h.get(t);if(void 0!==d&&!d.pending&&n.pending&&r("taskNotifications")&&s.current.enabled&&s.current.input){const r=o[l.pendingInteraction.kind],n=r?a(r):String(l.pendingInteraction.kind),s=e.sessions.list.getSnapshot().byId[t];i(a("notification.inputTitle"),a("notification.inputBody",{title:s?.displayTitle||t,kind:n}))}h.set(t,n)}for(const e of[...h.keys()])n.has(e)||h.delete(e)}else{v=!0;for(const[e,t]of n.entries())h.set(e,{pending:void 0!==t?.pendingInteraction})}},E=()=>{null!==c&&(c(),c=null),null!==u&&(u(),u=null),y(),l.clear(),d=!1,t.runningSessionIds=new Set},S=()=>{const t=x();t&&"function"==typeof t.sessionStatus?.subscribe&&r("taskNotifications")?null===b&&(b=t.sessionStatus.subscribe(()=>w()),f=e.on("connection/reset",()=>{h.clear(),v=!1}),w()):null!==b&&y()},q=()=>{r("taskNotifications")||r("quotaLookup")?(null===c&&(c=e.sessions.list.subscribe(()=>k()),u=e.on("connection/reset",()=>{l.clear(),d=!1}),k()),S()):E()};"function"==typeof e.inject&&(g=e.inject(["uiSession"],e=>(y(),m=p(e),S(),()=>{m=void 0,y()}))),q();const C=n.subscribe(q);e.effect(()=>()=>{if(C(),"function"==typeof g)try{g()}catch(e){}E()},"dsh-service: shared session observation")}}({ctx:t,sessionActivity:Ke,t:$,featureEnabled:oe,featureScope:Z,notifyState:De,fireNotification:je,NOTIFY_KIND_KEYS:We});const Tt=Object.assign(Object.create(null),{deepseek:{segments:[[540,720],[840,1080]],captionKey:"quota.peak.caption",holidays:!0},"zai-coding-cn":{segments:[[840,1080]],captionKey:"quota.peak.caption.zai",holidays:!1}}),Mt="#f0952f",It="var(--dsw-alias-state-success-primary)",Ht=3e4,Ot=(()=>{let e=0;const t=Array.isArray(s?.years)?s.years:[];for(const a of t){const t=Number(a);Number.isFinite(t)&&t>e&&(e=t)}return 0===e?8:Math.max(8,Math.ceil((new Date(Date.UTC(e,11,31)).getTime()-Date.now())/864e5)+8)})(),Rt=new Set(Array.isArray(s?.years)?s.years.map(e=>String(e)):[]),Lt=s?.offDays&&"object"==typeof s.offDays?s.offDays:{};function Nt(e){const t=new Date(e+288e5),a=e=>String(e).padStart(2,"0");return`${t.getUTCFullYear()}-${a(t.getUTCMonth()+1)}-${a(t.getUTCDate())}`}function Dt(e){return Rt.has(e)}function $t(e,t){const a=function(e){const t=new Date(e+288e5);return{dayIndex:t.getUTCDay(),minutesOfDay:60*t.getUTCHours()+t.getUTCMinutes()}}(t);if(0===a.dayIndex||6===a.dayIndex)return!1;if(!0===e.holidays){const e=Nt(t);if(Dt(e.slice(0,4))&&function(e){return"string"==typeof Lt[e]}(e))return!1}return e.segments.some(([e,t])=>a.minutesOfDay>=e&&a.minutesOfDay<t)}function Wt(e){const t=new Date(e+288e5),a=e=>String(e).padStart(2,"0");return`${a(t.getUTCHours())}:${a(t.getUTCMinutes())}`}function jt(e,t){return!1===Array.isArray(t)||0===t.length?null:Tt[e?.kind]??null}function Bt({showCaption:e,schedule:n}){const s=Ee(),[o,l]=a(Date.now());i(()=>{let e=!1,a=null;const r=()=>{e||(a=t.timer.timeout(()=>{l(Date.now()),r()},Ht))};return r(),()=>{e=!0,null!=a&&a()}},[]);const d=$t(n,o),c=function(e,t){const a=new Date(t+288e5);a.setUTCHours(0,0,0,0);const r=a.getTime()-288e5,n=e.segments.flat(),s=[];let i=$t(e,t);for(let a=0;a<=Ot&&s.length<2;a++){const o=r+864e5*a,l=n.map(e=>o+6e4*e);l.push(o+864e5);for(const a of l){if(a<=t)continue;const r=$t(e,a);if(r!==i&&(s.push(a),i=r,s.length>=2))return s}}return s}(n,o),u=c[0]??null,p=d?Mt:It,m=s(d?"quota.peak.nowPeak":"quota.peak.nowIdle"),g=Nt(o),h=!0===n.holidays&&!Dt(g.slice(0,4)),v=e=>Math.round(e/1440*1e6)/1e4;return r.createElement("div",{"data-testid":"quota-peak-timeline",style:{display:"flex",flexDirection:"column",gap:"4px"}},r.createElement("div",{style:{display:"flex",alignItems:"center",flexWrap:"wrap",gap:"6px",minHeight:"16px"}},r.createElement("span",{"data-testid":"quota-peak-state","data-in-peak":String(d),style:{display:"inline-flex",alignItems:"center",gap:"5px",fontSize:"12px",lineHeight:"16px",color:p,whiteSpace:"nowrap",flexShrink:0}},r.createElement("span",{style:{width:"7px",height:"7px",...M("50%"),background:p,flexShrink:0}}),m),null!==u?r.createElement("span",{"data-testid":"quota-peak-next",style:{marginLeft:"auto",fontSize:"11px",lineHeight:"16px",color:"var(--dsw-alias-label-tertiary)",whiteSpace:"nowrap"}},s(d?"quota.peak.untilIdle":"quota.peak.untilPeak",{time:Wt(u),dur:gt(u-o,s)})):null),r.createElement("div",{"data-testid":"quota-peak-bar",style:{position:"relative",height:"14px",...M(999),overflow:"hidden",background:"var(--dsw-alias-interactive-bg-hover)"}},(c.length>0?[{peak:d,weight:c[0]-o},...c.length>1?[{peak:!d,weight:c[1]-c[0]}]:[]]:[{peak:d,weight:1}]).map((e,t,a)=>{const n=a.reduce((e,t)=>e+t.weight,0),i=v(e.weight/n*1440);return r.createElement("span",{key:t,"data-testid":`quota-peak-segment-${t}`,"data-peak":String(e.peak),style:{position:"absolute",top:0,bottom:0,left:`${0===t?0:v(a[0].weight/n*1440)}%`,width:`${i}%`,background:e.peak?Mt:It,overflow:"hidden"}},i>=11?r.createElement("span",{style:{position:"absolute",inset:0,textAlign:"center",fontSize:"9px",lineHeight:"14px",fontWeight:500,color:"rgba(255,255,255,0.95)"}},s(e.peak?"quota.peak.tag.peak":"quota.peak.tag.idle")):null)}),r.createElement("span",{"data-testid":"quota-peak-now",style:{position:"absolute",top:0,bottom:0,left:0,width:"3px",borderRadius:"3px",background:"var(--dsw-specific-menu)"}})),!0===e?r.createElement("div",{"data-testid":"quota-peak-caption",style:{fontSize:"11px",lineHeight:1.6,color:"var(--dsw-alias-label-tertiary)",marginTop:"2px"}},s(n.captionKey)):null,!0===e&&h?r.createElement("div",{"data-testid":"quota-peak-caption-degraded",style:{fontSize:"11px",lineHeight:1.6,color:"var(--dsw-alias-label-tertiary)",marginTop:"2px"}},s("quota.peak.caption.degraded",{year:g.slice(0,4)})):null)}function _t(e){if("string"!=typeof e)return null;const t=e.trim();if(""===t)return null;const a=Date.parse(t);return Number.isFinite(a)?/^\d{4}-\d{2}-\d{2}$/.test(t)?a+864e5-1:a:null}function Pt(e,t){const a="string"==typeof e.expiresAt&&""!==e.expiresAt.trim()?e.expiresAt.trim():"",r=_t(a),n=null!==r&&r<Date.now();let s="";if(""!==a){let e=a;null!==r&&(e=a.length>10?`${mt(r)} ${pt(r)}`:mt(r),e=n?`${e} ${t("quota.resetCard.expired")}`:t("quota.resetCard.expires",{date:e})),s=e}const i="string"==typeof e.label&&""!==e.label?` · ${e.label}`:"";return{expired:n,title:`${t("quota.resetCard.title")}${i}`,expiry:s,iconColor:n?"var(--dsw-alias-state-warn-primary)":"var(--dsw-alias-state-success-primary)",textColor:n?"var(--dsw-alias-state-warn-primary)":"var(--dsw-alias-label-secondary)"}}function Vt(e,t=Date.now()){return(Array.isArray(e)?e:[]).map((e,a)=>{const r=_t(e?.expiresAt);return{card:e,index:a,key:null!==r&&r>=t?r:Number.POSITIVE_INFINITY}}).sort((e,t)=>e.key-t.key||e.index-t.index).map(e=>e.card)}function Ft(e,t){const a="string"==typeof e?.errorCode?e.errorCode:"",r=a.indexOf(":"),n=-1===r?a:a.slice(0,r),s=-1===r?"":a.slice(r+1),i=[/^\d{3}$/.test(s)?`HTTP ${s}`:void 0,"string"==typeof e?.errorEndpoint&&""!==e.errorEndpoint?e.errorEndpoint:void 0,"string"==typeof e?.errorAccount&&""!==e.errorAccount?e.errorAccount:void 0,"string"==typeof e?.errorDetail&&""!==e.errorDetail?e.errorDetail:void 0].filter(e=>void 0!==e),o="number"==typeof e?.nextAllowedAt&&e.nextAllowedAt>Date.now()?` · ${t("quota.retryAt",{time:pt(e.nextAllowedAt)})}`:"";return`${function(e,t){const a=`quota.error.${e}`,r=t(a);return r===a?t("quota.error.unknown"):r}(n,t)}${i.length>0?` (${i.join(" · ")})`:""}${o}`}function Ut(e,t,a){const n=null!=a,s=yt(e,t),i={color:"var(--dsw-alias-label-secondary)",minWidth:0,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},o={color:"var(--dsw-alias-label-primary)",fontWeight:500,fontVariantNumeric:"tabular-nums",whiteSpace:"nowrap",flexShrink:0};let l=null;if("string"==typeof e.resetsAt){const s=Date.parse(e.resetsAt);Number.isFinite(s)&&s>Date.now()&&(l=r.createElement("div",{"data-testid":n?`quota-card-reset-${a}-${e.id}`:`quota-reset-${e.id}`,style:{fontSize:"11px",lineHeight:"16px",color:"var(--dsw-alias-label-tertiary)"}},t("quota.resetIn",{time:gt(s-Date.now(),t)})))}return"string"==typeof e.text?r.createElement("div",{key:e.id,...n?{"data-testid":`quota-card-window-${a}-${e.id}`}:{}},r.createElement("div",{style:{display:"flex",justifyContent:"space-between",gap:"10px",fontSize:"12px",lineHeight:"18px"}},r.createElement("span",{style:i,title:s},s),r.createElement("span",{"data-testid":n?`quota-card-text-${a}-${e.id}`:`quota-text-${e.id}`,style:o},e.text)),l):r.createElement("div",{key:e.id,...n?{"data-testid":`quota-card-window-${a}-${e.id}`}:{}},r.createElement("div",{"data-value":e.percent,style:{display:"flex",justifyContent:"space-between",gap:"10px",fontSize:"12px",lineHeight:"18px"}},r.createElement("span",{style:i,title:s},s),r.createElement("span",{style:{display:"flex",alignItems:"center",gap:"6px",flexShrink:0}},r.createElement("span",{style:o},xt(e)),!0===e.stale?r.createElement("span",{"data-testid":n?`quota-card-stale-${a}-${e.id}`:`quota-stale-${e.id}`,title:t("quota.window.staleTip"),style:te("warning",{padding:"1px 7px",flexShrink:0})},t("quota.window.stale")):null)),function(e,t,a,n){const s=!0===n?t<=20:t>=80;return r.createElement("div",{"data-testid":e,style:{height:"4px",...M(999),background:"var(--dsw-alias-interactive-bg-hover)",overflow:"hidden"}},r.createElement("div",{style:{height:"100%",width:`${Math.max(0,Math.min(100,t))}%`,...M(999),background:s?"var(--dsw-alias-state-warn-primary)":"var(--dsw-alias-state-success-primary)"}}))}(n?`quota-card-bar-${a}-${e.id}`:`quota-window-bar-${e.id}`,e.percent,0,!0===e.remaining),l)}let Kt=null;try{const t=e("react-dom");null!=t&&"function"==typeof t.createPortal&&(Kt=t.createPortal)}catch(e){Kt=null}function Gt(){if("undefined"==typeof window||null===window)return!1;if("function"==typeof window.matchMedia){const e=window.matchMedia("(max-width: 1023px)");return"boolean"==typeof e.matches&&e.matches}return"number"==typeof window.innerWidth&&window.innerWidth<=1023}const Qt=["gemini","claude","codex"];function Yt(e){const t=String(e?.kindKey?e.kindKey:e?.id??"").toLowerCase();return t.includes("gemini")?"gemini":t.includes("claude")||t.includes("gpt-oss")?"claude":t.includes("codex")||t.includes("chatgpt")?"codex":"other"}function Jt(e){const t=new Map;for(const a of e){const e=Yt(a),r=t.get(e)||[];r.push(a),t.set(e,r)}const a=[];for(const e of[...Qt,"other"]){const r=t.get(e);r&&r.length>0&&a.push({family:e,windows:r})}return a}function Zt(e){const{balanceInfo:t,gaugeState:n,onCalibrate:s,translate:i}=e,[o,l]=a(!1),d=n.needleAngle,c=`${t.symbol}${n.baseline.toFixed(2)}`,u=t.rawText;return r.createElement("div",{"data-testid":"quota-big-fuel-gauge",style:{display:"flex",flexDirection:"column",alignItems:"center",marginTop:"8px",marginBottom:"8px",padding:"10px 4px 8px",borderRadius:"10px",background:"var(--dsw-alias-surface-l1, rgba(127, 127, 127, 0.05))",border:"1px solid var(--dsw-alias-border-l1, rgba(127, 127, 127, 0.1))"}},r.createElement("svg",{viewBox:"0 0 180 96",width:"180",height:"96",style:{overflow:"visible",display:"block"},"aria-hidden":!0},r.createElement("path",{d:"M 25 82 A 65 65 0 0 1 155 82",fill:"none",stroke:"var(--dsw-alias-border-l2)",strokeWidth:"7",strokeLinecap:"round"}),r.createElement("path",{d:"M 25 82 A 65 65 0 0 1 37.4 43.8",fill:"none",stroke:"var(--dsw-alias-state-error-primary)",strokeWidth:"7",strokeLinecap:"round"}),r.createElement("path",{d:"M 37.4 43.8 A 65 65 0 0 1 90 17",fill:"none",stroke:"var(--dsw-alias-state-warn-primary)",strokeWidth:"7"}),r.createElement("path",{d:"M 90 17 A 65 65 0 0 1 155 82",fill:"none",stroke:"var(--dsw-alias-state-success-primary)",strokeWidth:"7",strokeLinecap:"round"}),r.createElement("text",{x:"18",y:"86",fontSize:"11",fontWeight:"700",fill:"var(--dsw-alias-state-error-primary)",textAnchor:"end"},"E"),r.createElement("text",{x:"162",y:"86",fontSize:"11",fontWeight:"700",fill:"var(--dsw-alias-state-success-primary)",textAnchor:"start"},"F"),r.createElement("line",{x1:"90",y1:"17",x2:"90",y2:"23",stroke:"var(--dsw-specific-menu)",strokeWidth:"1.5"}),r.createElement("circle",{cx:"90",cy:"82",r:"7",fill:"var(--dsw-alias-label-secondary)"}),r.createElement("g",{style:{transformOrigin:"90px 82px",transform:`rotate(${d}deg)`,transition:"transform 0.4s cubic-bezier(0.2, 0.8, 0.2, 1)"}},r.createElement("line",{x1:"90",y1:"82",x2:"90",y2:"26",stroke:"var(--dsw-alias-label-primary)",strokeWidth:"2.4",strokeLinecap:"round"}),r.createElement("circle",{cx:"90",cy:"27",r:"1.8",fill:n.color})),r.createElement("circle",{cx:"90",cy:"82",r:"3.5",fill:"var(--dsw-specific-menu)"})),r.createElement("div",{style:{display:"flex",flexDirection:"column",alignItems:"center",marginTop:"-6px",gap:"2px"}},r.createElement("div",{"data-testid":"quota-gauge-balance-text",style:{fontSize:"20px",fontWeight:700,color:"var(--dsw-alias-label-primary)",lineHeight:"26px"}},u),r.createElement("div",{style:{fontSize:"11px",color:n.color,fontWeight:600}},i("quota.gauge.ratio",{percent:n.ratio})),r.createElement("div",{style:{display:"flex",alignItems:"center",gap:"6px",marginTop:"4px",fontSize:"11px",color:"var(--dsw-alias-label-tertiary)"}},r.createElement("span",null,`${i("quota.gauge.baseline")}: ${c}`),r.createElement("button",{type:"button","data-testid":"quota-gauge-calibrate-btn",title:i("quota.gauge.calibrateTip",{amount:u}),onClick:s,onMouseEnter:()=>l(!0),onMouseLeave:()=>l(!1),style:{background:"none",border:"none",padding:"1px 4px",fontSize:"11px",color:"var(--dsw-alias-brand-primary)",cursor:"pointer",textDecoration:o?"underline":"none"}},`[${i("quota.gauge.calibrate")}]`))))}function Xt(e){const n=Ee(),[s,l]=a(g.getSnapshot());i(()=>g.subscribe(()=>l(g.getSnapshot())),[]);const[d,c]=a(new Set),u=e=>c(t=>{const a=new Set(t);return a.has(e)?a.delete(e):a.add(e),a}),[p,m]=a(!1),h=e&&e.directoryStore,v=e&&"string"==typeof e.sessionId&&""!==e.sessionId?e.sessionId:void 0,[b,f]=a(null),y=null!=h?h:b;i(()=>{if(null!=h)return;if(void 0===v)return;let e=!1,a=null;const r=[250,500,1e3,2e3,4e3,8e3,15e3],n=s=>{if(e)return;let i=null;try{i=Ue()}catch(e){i=null}if(null==i||"function"!=typeof i.directoryFor)return;let o=null;try{o=i.directoryFor(v)}catch(e){o=null}if(null==o||void 0===o.store||null===o.store)s>=r.length||(a=t.timer.timeout(()=>{a=null,n(s+1)},r[s]));else{f(o.store);try{const e=o.load();e&&"function"==typeof e.catch&&e.catch(()=>{})}catch(e){}}};return n(0),()=>{e=!0,null!==a&&a()}},[h,v]),i(()=>{if(y)return ct(),Et},[y]);const[x,k]=a(y?y.getSnapshot():null);i(()=>{if(y)return k(y.getSnapshot()),y.subscribe(()=>k(y.getSnapshot()))},[y]),i(()=>{y&&(null===x||null==x?.current)&&e&&"function"==typeof e.loadDirectory&&e.loadDirectory()},[y,x,e&&e.loadDirectory]);const[w,E]=a(!1),S=o(null),q=o(null),[C,z]=a(Gt);i(()=>{if("undefined"==typeof window||null===window||"function"!=typeof window.matchMedia)return;const e=window.matchMedia("(max-width: 1023px)"),t=()=>z(e.matches);return t(),"function"==typeof e.addEventListener?e.addEventListener("change",t):"function"==typeof e.addListener&&e.addListener(t),()=>{"function"==typeof e.removeEventListener?e.removeEventListener("change",t):"function"==typeof e.removeListener&&e.removeListener(t)}},[]);const[A,T]=a(!1),I=x?.current?.provider??null,H=x?.current?.model??null,O=null!==I?(s.providers||[]).find(e=>e.provider===I&&!0===e.adapted):null,R=Array.isArray(O?.windows)?O.windows:[],L="cliproxy"===O?.kind?function(e){if("string"!=typeof e||""===e.trim())return null;const t=e.trim().toLowerCase();return t.includes("claude")||t.includes("gpt-oss")?"claude":t.includes("gemini")?"gemini":t.includes("codex")||t.includes("gpt")||t.includes("chatgpt")||/(?:^|[-_/])o[134](?:[-_/]|$)/.test(t)?"codex":null}(H):null,N="claude"===L?"Claude":"gemini"===L?"Gemini":"codex"===L?"Codex":null,D=null!==L?R.filter(e=>function(e,t){return!t||Yt(e)===t}(e,L)):R,$=D.length>0&&!A?D:R,W=(D.length>0?D:R).filter(e=>"number"==typeof e.percent),j=e=>!0===e.remaining?100-e.percent:e.percent,B=W.length>0?W.reduce((e,t)=>j(t)>j(e)?t:e,W[0]):null,_=null===B?St($):null,P=null!==_,[,V]=a(0),F=P?qt(I,_.amount,_.currency):0,U=P?zt(_.amount,F,_.currency):null;i(()=>{T(!1)},[I,H,w]);const K=o(new Set);i(()=>{if(null===I)return;const e=(s.providers||[]).find(e=>e.provider===I&&!0===e.adapted);(void 0===e||!1===Array.isArray(e.windows)&&!0!==e.refreshing&&void 0===e.errorCode)&&!K.current.has(I)&&(K.current.add(I),At({providers:[I]}))},[I,s]),i(()=>{if(!w||"undefined"==typeof document)return;const e=e=>{S.current&&e.target instanceof Node&&S.current.contains(e.target)||q.current&&e.target instanceof Node&&q.current.contains(e.target)||E(!1)},t=e=>{"Escape"===e.key&&E(!1)};return document.addEventListener("pointerdown",e),document.addEventListener("keydown",t),()=>{document.removeEventListener("pointerdown",e),document.removeEventListener("keydown",t)}},[w]);const G=w&&C&&null!==Kt&&"undefined"!=typeof document&&null!==document.body&&void 0!==document.body,[Q,Y]=a(null);if(i(()=>{if(!w||!G)return;const e=()=>{if(S.current&&"function"==typeof S.current.getBoundingClientRect&&"undefined"!=typeof window)try{const e=S.current.getBoundingClientRect();e&&"number"==typeof e.top&&Number.isFinite(e.top)&&Y(Math.max(16,Math.round(window.innerHeight-e.top+8)))}catch(e){}};return e(),"undefined"!=typeof window&&"function"==typeof window.addEventListener&&(window.addEventListener("resize",e),window.addEventListener("scroll",e,!0)),()=>{"undefined"!=typeof window&&"function"==typeof window.removeEventListener&&(window.removeEventListener("resize",e),window.removeEventListener("scroll",e,!0))}},[w,G]),null==O)return null;const J=null===B?0:B.percent,Z=null!==B,X=!Z||!0===B.remaining,ee=n(X?"quota.panel.remaining":"quota.panel.used"),te=P?U.color:(X?J<=20:J>=80)?"var(--dsw-alias-state-warn-primary)":"var(--dsw-alias-state-success-primary)",ae=2*Math.PI*5.5,re=O?.displayName||I,ne=N?`${re} · ${N}`:re,se=Z?`${n("quota.ring.label")} · ${ne} · ${ee} ${J}%`:`${n("quota.ring.label")} · ${ne}`,ie=void 0!==O.errorCode?r.createElement("div",{style:{marginTop:"8px",fontSize:"12px",lineHeight:"18px",color:"var(--dsw-alias-state-error-primary)"}},Ft(O,n)):null,oe=!0===O.refreshing||"number"==typeof O.fetchedAt?r.createElement("div",{style:{marginTop:"8px",fontSize:"11px",color:"var(--dsw-alias-label-tertiary)"}},!0===O.refreshing?n("quota.refreshing"):n("quota.updated",{time:pt(O.fetchedAt)})):null,le=jt(O,R),de=r.createElement("button",{type:"button","data-testid":"quota-ring-trigger","aria-label":se,"aria-haspopup":"dialog","aria-expanded":w,title:se,onClick:()=>{const e=!w;if(e&&S.current&&"function"==typeof S.current.getBoundingClientRect&&"undefined"!=typeof window)try{const e=S.current.getBoundingClientRect();e&&"number"==typeof e.top&&Number.isFinite(e.top)&&Y(Math.max(16,Math.round(window.innerHeight-e.top+8)))}catch(e){}E(e),e&&At({providers:null===I?[]:[I]})},style:{width:"28px",height:"28px",border:"none",...M("999px"),background:"transparent",cursor:"pointer",display:"grid",placeItems:"center",padding:0,color:"var(--dsw-alias-label-secondary)"}},P?r.createElement("svg",{viewBox:"0 0 20 20",width:"17",height:"17","aria-hidden":!0,style:{display:"block"}},r.createElement("path",{d:"M 3.8 15 A 7.5 7.5 0 1 1 16.2 15",fill:"none",stroke:"var(--dsw-alias-border-l3)",strokeWidth:"2.2",strokeLinecap:"round"}),r.createElement("path",{d:"high"===U.gear?"M 3.8 15 A 7.5 7.5 0 1 1 16.2 15":"mid"===U.gear?"M 3.8 15 A 7.5 7.5 0 0 1 10 3.0":"M 3.8 15 A 7.5 7.5 0 0 1 2.6 9.2",fill:"none",stroke:U.color,strokeWidth:"2.2",strokeLinecap:"round"}),r.createElement("circle",{cx:"10",cy:"10.5",r:"2.0",fill:U.color}),r.createElement("line",{x1:"10",y1:"10.5",x2:"high"===U.gear?"13.9":"mid"===U.gear?"10":"6.1",y2:"high"===U.gear?"8.25":"mid"===U.gear?"5.5":"12.8",stroke:U.color,strokeWidth:"2.0",strokeLinecap:"round"})):r.createElement("svg",{viewBox:"0 0 14 14",width:"14",height:"14","aria-hidden":!0},r.createElement("circle",{cx:"7",cy:"7",r:5.5,fill:"none",stroke:"var(--dsw-alias-border-l3)",strokeWidth:"2"}),r.createElement("circle",{cx:"7",cy:"7",r:5.5,fill:"none",stroke:te,strokeWidth:"2",strokeLinecap:"round",strokeDasharray:`${ae*J/100} ${ae}`,transform:"rotate(-90 7 7)"}))),ce=w?r.createElement("div",{ref:q,role:"dialog","aria-label":n("quota.panel.title"),"data-testid":"quota-ring-panel",style:G?{position:"fixed",left:"50%",bottom:(null!==Q?Q:80)+"px",transform:"translateX(-50%)",zIndex:1e3,boxSizing:"border-box",width:"min(280px, calc(100vw - 32px))",maxHeight:`min(560px, calc(100dvh - ${(null!==Q?Q:80)+16}px))`,overflowY:"auto",padding:"12px",borderRadius:"12px",background:"var(--dsw-specific-menu)",border:"1px solid var(--dsw-alias-border-inverted)",boxShadow:"var(--dsw-shadow-lv3)"}:{position:"absolute",bottom:"calc(100% + 8px)",right:0,zIndex:100,boxSizing:"border-box",width:"max-content",minWidth:"240px",maxWidth:"min(480px, calc(100vw - 32px))",padding:"12px",borderRadius:"12px",background:"var(--dsw-specific-menu)",border:"1px solid var(--dsw-alias-border-inverted)",boxShadow:"var(--dsw-shadow-lv3)"}},r.createElement("div",{style:{display:"flex",alignItems:"baseline",gap:"6px"}},r.createElement("span",{style:{fontSize:"12px",color:"var(--dsw-alias-label-tertiary)"}},ee),r.createElement("span",{style:{marginLeft:"auto",fontSize:"11px",color:"var(--dsw-alias-label-secondary)"}},ne)),...P?[r.createElement(Zt,{key:"panel-big-fuel-gauge",balanceInfo:_,gaugeState:U,onCalibrate:()=>{P&&I&&_&&null!==Ct(I,_.amount,_.currency)&&V(e=>e+1)},translate:n})]:[],r.createElement("div",{style:{marginTop:P?"4px":"10px",display:"flex",flexDirection:"column",gap:"8px"}},(()=>{const e="cliproxy"!==O?.kind||!A&&null!==L?null:Jt($);return e&&e.length>1?e.map((e,t)=>r.createElement("div",{key:`ring-family-${e.family}`,"data-testid":`quota-ring-family-${e.family}`,style:{display:"flex",flexDirection:"column",gap:"6px",marginTop:0===t?"0":"4px",paddingTop:0===t?"0":"8px",borderTop:0===t?"none":"1px solid var(--dsw-alias-border-l1)"}},r.createElement("div",{"data-testid":`quota-ring-family-title-${e.family}`,style:{fontSize:"11px",fontWeight:600,color:"var(--dsw-alias-label-secondary)"}},n("quota.family."+e.family)),e.windows.map(e=>Ut(e,n,null)))):$.map(e=>Ut(e,n,null))})()),R.length>D.length&&D.length>0?r.createElement("div",{style:{marginTop:"6px",textAlign:"center"}},r.createElement("button",{type:"button","data-testid":"quota-ring-toggle-all",onClick:()=>T(!A),style:{fontSize:"11px",color:"var(--dsw-alias-brand-primary)",background:"transparent",border:"none",cursor:"pointer",padding:"2px 6px",textDecoration:"underline"}},A?n("quota.filter.currentOnly"):n("quota.filter.showAll",{count:R.length}))):null,...null!==le?[r.createElement(Bt,{key:"panel-peak-timeline",showCaption:!1,schedule:le})]:[],...(()=>{const e=function(e,t=Date.now()){if(!Array.isArray(e)||0===e.length)return[];const a=[],r=new Map;for(const t of e){const e="string"==typeof t?.account?t.account.trim():"",n=""===e?"\0provider":e;let s=r.get(n);void 0===s&&(s=a.length,r.set(n,s),a.push({account:e,cards:[]})),a[s].cards.push(t)}for(const e of a)e.cards=Vt(e.cards,t);return a}(O.resetCards);return 0===e.length?[]:[r.createElement("div",{key:"panel-reset-cards","data-testid":"panel-reset-cards",style:{marginTop:"10px",paddingTop:"8px",borderTop:"1px solid var(--dsw-alias-border-l1)",display:"flex",flexDirection:"column",gap:"6px"}},"cliproxy"===O?.kind?r.createElement("button",{key:"panel-reset-title",type:"button","data-testid":"quota-panel-reset-title","aria-expanded":String(p),onClick:()=>m(!p),style:{display:"flex",alignItems:"center",alignSelf:"flex-start",fontSize:"11px",fontWeight:600,color:"var(--dsw-alias-label-secondary)",background:"transparent",border:"none",cursor:"pointer",padding:0,textAlign:"left"}},`${p?"▾":"▸"} ${n("quota.resetCard.codexTitle")}`):null,..."cliproxy"!==O?.kind||p?e.map((t,a)=>{const s=d.has(`panel:${a}`),i=s?t.cards:t.cards.slice(0,1),o=t.cards.length-i.length,l=""!==t.account?t.account:n("quota.resetCard.title");return r.createElement("div",{key:`panel-reset-group-${a}`,"data-testid":`quota-panel-reset-group-${a}`,style:{display:"flex",flexDirection:"column",gap:"2px"}},e.length>1||""!==t.account?r.createElement("div",{"data-testid":`quota-panel-reset-owner-${a}`,title:l,style:{fontSize:"11px",color:"var(--dsw-alias-label-secondary)",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"}},l):null,i.map((e,t)=>{const s=Pt(e,n);return r.createElement("div",{key:`panel-reset-card-${t}`,"data-testid":`quota-panel-reset-card-${a}-${t}`,style:{display:"flex",alignItems:"center",gap:"6px",fontSize:"11px",lineHeight:"16px",color:s.textColor}},r.createElement("svg",{width:12,height:12,viewBox:"0 0 24 24",fill:"none",stroke:s.iconColor,strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":!0,style:{flexShrink:0}},r.createElement("rect",{x:2,y:5,width:20,height:14,rx:2}),r.createElement("line",{x1:2,y1:10,x2:22,y2:10})),r.createElement("span",{style:{minWidth:0,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"}},""!==s.expiry?`${s.title} · ${s.expiry}`:s.title))}),o>0?r.createElement("button",{type:"button","data-testid":`quota-panel-reset-more-${a}`,onClick:()=>u(`panel:${a}`),style:{alignSelf:"flex-start",fontSize:"11px",color:"var(--dsw-alias-brand-primary)",background:"transparent",border:"none",cursor:"pointer",padding:"0 2px",textDecoration:"underline"}},n("quota.resetCard.more",{count:o})):null,s&&t.cards.length>1?r.createElement("button",{type:"button","data-testid":`quota-panel-reset-less-${a}`,onClick:()=>u(`panel:${a}`),style:{alignSelf:"flex-start",fontSize:"11px",color:"var(--dsw-alias-label-secondary)",background:"transparent",border:"none",cursor:"pointer",padding:"0 2px",textDecoration:"underline"}},n("quota.resetCard.less")):null)}):[])]})(),ie,oe):null;return r.createElement("span",{ref:S,style:{position:"relative",display:"inline-flex"}},de,G?Kt(ce,document.body):ce)}function ea(){const e=Ee(),{snapshot:t}=le(),[a,n]=r.useState(!1),s="ready"===t.status&&!0===t.writable;return r.createElement("li",{style:{listStyle:"none",border:"1px solid "+(a?"var(--dsw-alias-label-dimmed)":"var(--dsw-alias-border-l2)"),borderRadius:"12px",color:"var(--dsw-alias-label-primary)",background:a?"var(--dsw-alias-bg-layer-2)":"var(--dsw-alias-bg-layer-3)"}},r.createElement("button",{type:"button","data-testid":"feature-card-toggle","aria-expanded":String(a),onClick:()=>n(!a),style:{appearance:"none",width:"100%",display:"flex",alignItems:"center",gap:"12px",padding:"14px 16px",border:0,borderRadius:"12px",background:"transparent",color:"inherit",font:"inherit",textAlign:"left",cursor:"pointer"}},r.createElement("span",{style:{display:"flex",minWidth:0,flex:1,flexDirection:"column",gap:"4px"}},r.createElement("span",{style:{fontSize:"15px",fontWeight:600,lineHeight:1.4}},e("features.cardTitle")),r.createElement("span",{style:{fontSize:"13px",lineHeight:1.5,color:"var(--dsw-alias-label-tertiary)"}},e("features.cardHint"))),r.createElement("svg",{viewBox:"0 0 14 14",width:14,height:14,"aria-hidden":"true",style:{flex:"none",color:"var(--dsw-alias-label-tertiary)",transform:a?"rotate(180deg)":"none",transition:"transform .16s"}},r.createElement("path",{d:"M3 5.25 7 9l4-3.75",fill:"none",stroke:"currentColor",strokeWidth:1.4,strokeLinecap:"round",strokeLinejoin:"round"}))),a?r.createElement("div",{style:{margin:"0 16px",padding:"12px 0 8px",borderTop:"1px solid var(--dsw-alias-border-l2)"}},r.createElement(aa,null),s?null:r.createElement("p",{style:{margin:"6px 0 0",fontSize:"11px",color:"var(--dsw-alias-label-tertiary)"}},e("features.readOnly"))):null)}const ta=[["features.group.runtime",["healthDiagnostics","modelUsage","quotaLookup"],!0],["features.group.maintenance",["backupMaintenance","skillManager","subagentRoute","sessionManager"],!0],["features.group.interaction",["taskNotifications","mobileAdaptation","modelProviderIcons","fileEditor"],!0],["features.external",["healthz"],!1]];function aa(){const e=Ee(),{snapshot:t,value:n}=le(),[s,i]=a(""),o="ready"===t.status&&!0===t.writable,l=t=>r.createElement("div",{key:t,style:{display:"flex",alignItems:"center",justifyContent:"space-between",gap:"14px",padding:"7px 0"}},r.createElement("span",{style:{fontSize:"13px",color:"var(--dsw-alias-label-primary)"}},e("features."+t)),r.createElement("button",{type:"button",role:"switch","data-testid":"feature-switch-"+t,"aria-checked":String(!1!==n[t]),disabled:!o||s===t,onClick:async()=>{i(t);try{await Z.set(t,!1===n[t])}catch(e){}i("")},style:{width:"34px",height:"20px",...M("10px"),padding:0,flexShrink:0,position:"relative",border:"1px solid "+(!1!==n[t]?"var(--dsw-alias-state-success-primary)":"var(--dsw-alias-border-l2)"),background:!1!==n[t]?"var(--dsw-alias-state-success-primary)":"var(--dsw-alias-bg-layer-2)",cursor:o&&""===s?"pointer":"default",opacity:o?1:.5,lineHeight:0}},r.createElement("span",{style:{position:"absolute",top:"1px",left:!1!==n[t]?"15px":"1px",width:"16px",height:"16px",...M("50%"),background:!1!==n[t]?"#fff":"var(--dsw-alias-label-tertiary)"}})));return r.createElement("div",null,ta.map(([t,a])=>r.createElement("div",{key:t,style:{marginTop:"10px"}},r.createElement("div",{style:{fontSize:"12px",fontWeight:700,marginBottom:"2px"}},e(t)),a.map(l))))}function ra(){const e=Ee(),[n,s]=a(ve()),[l,d]=a(he()),[c,u]=a(!1),[p,m]=a(null),g=o(null),[,h]=a(0),v=()=>{u(!0),null!==g.current&&g.current(),g.current=t.timer.timeout(()=>{g.current=null,u(!1)},2e3)};i(()=>()=>{null!==g.current&&g.current(),g.current=null},[]),i(()=>{if("function"==typeof t.slots?.subscribe)return t.slots.subscribe("settings.section",()=>h(e=>e+1))},[]),i(()=>{const e=()=>{s(ve()),d(he())};return me.add(e),()=>me.delete(e)},[]);const b=pe(),f=new Map;for(const e of b){const t=e.options?.id??e.options?.key??"";t&&!f.has(t)&&f.set(t,{id:t,label:be(e.options),defaultOrder:e.options?.order??0})}let y=[];if(n&&n.length>0)for(const e of n)f.has(e)&&(y.push(f.get(e)),f.delete(e));const x=Array.from(f.values()).sort((e,t)=>e.defaultOrder-t.defaultOrder);y=y.concat(x);const k=(e,t)=>{if(e<0||t<0||e>=y.length||t>=y.length||e===t)return;const a=y.map(e=>e.id),[r]=a.splice(e,1);a.splice(t,0,r),s(a),ye(a),ge(),ke(a,Array.isArray(l)?l:[])},w=new Set(Array.isArray(l)?l:[]);return r.createElement("div",{"data-testid":"config-nav-order-page",style:{display:"flex",flexDirection:"column",gap:"12px",marginTop:"10px"}},r.createElement("div",{style:{display:"flex",alignItems:"flex-start",justifyContent:"space-between",gap:"12px",flexWrap:"wrap"}},r.createElement("div",{style:{minWidth:0,flex:"1 1 260px"}},r.createElement("div",{"data-testid":"nav-order-title",style:{fontSize:"14px",fontWeight:700,color:"var(--dsw-alias-label-primary)"}},e("config.navOrder.title"))),r.createElement("div",{style:{display:"flex",alignItems:"center",gap:"10px",flexWrap:"wrap"}},c?r.createElement("span",{"data-testid":"nav-order-saved-tip",style:{fontSize:"12px",color:"var(--dsw-alias-state-success-primary)"}},"✓ "+e("config.navOrder.saved")):null,r.createElement("button",{type:"button","data-testid":"nav-order-reset",onClick:()=>{s(null),d([]),ye(null),fe(null),ge(),v(),we()},style:X("ghost")},e("config.navOrder.reset")),r.createElement("button",{type:"button","data-testid":"nav-order-save",onClick:()=>{const e=y.map(e=>e.id);s(e),ye(e),fe(l),ge(),v(),ke(e,Array.isArray(l)?l:[])},style:X("primary")},e("config.navOrder.save")))),0===y.length?r.createElement("div",{style:{padding:"16px",textAlign:"center",color:"var(--dsw-alias-label-tertiary)",fontSize:"13px"}},e("config.navOrder.empty")):r.createElement("div",{"data-testid":"nav-order-list",style:{display:"flex",flexDirection:"column",gap:"8px"}},y.map((t,a)=>{const s="dsh-service"===t.id||!w.has(t.id),i="dsh-service"===t.id,o=p===a;return r.createElement("div",{key:t.id,"data-testid":"nav-order-item-"+t.id,draggable:!0,onDragStart:e=>{try{e.dataTransfer.setData("text/plain",String(a)),e.dataTransfer.effectAllowed="move"}catch(e){}m(a)},onDragOver:e=>{e.preventDefault();try{e.dataTransfer.dropEffect="move"}catch(e){}},onDrop:e=>{e.preventDefault();let t=a;try{const a=e.dataTransfer.getData("text/plain");t=Number.parseInt(a,10)}catch(e){}Number.isNaN(t)||t===a||k(t,a),m(null)},onDragEnd:()=>m(null),style:{display:"flex",alignItems:"center",justifyContent:"space-between",gap:"12px",padding:"9px 14px",borderRadius:"var(--dsh-svc-radius-control, 8px)",border:"1px solid "+(o?"var(--dsh-svc-brand)":"var(--dsw-alias-border-l1)"),background:o?"var(--dsw-alias-interactive-bg-hover)":"var(--dsh-svc-card-bg)",opacity:s?1:.5,transition:"border-color 120ms, background 120ms, opacity 120ms",cursor:"grab",userSelect:"none"}},r.createElement("div",{style:{display:"flex",alignItems:"center",gap:"10px",minWidth:0}},r.createElement("span",{style:{color:"var(--dsw-alias-label-tertiary)",fontSize:"13px",cursor:"grab",letterSpacing:"-1px"},"aria-hidden":"true"},"⋮⋮"),r.createElement("span",{style:{fontSize:"13px",fontWeight:550,color:"var(--dsw-alias-label-primary)",whiteSpace:"nowrap",overflow:"hidden",textOverflow:"ellipsis"}},t.label||t.id),r.createElement("span",{style:{fontSize:"11px",padding:"1px 6px",borderRadius:"4px",background:"var(--dsw-alias-bg-layer-2)",color:"var(--dsw-alias-label-tertiary)",fontFamily:"monospace"}},t.id),i?r.createElement("span",{style:{fontSize:"11px",padding:"1px 6px",borderRadius:"4px",background:"rgba(59,130,246,0.12)",color:"var(--dsh-svc-brand)",fontWeight:500}},e("config.navOrder.locked")):null),r.createElement("div",{style:{display:"flex",alignItems:"center",gap:"8px",flexShrink:0}},r.createElement("button",{type:"button","data-testid":"nav-order-up-"+t.id,"aria-label":e("config.navOrder.moveUp"),title:e("config.navOrder.moveUp"),disabled:0===a,onClick:e=>{e.stopPropagation(),k(a,a-1)},style:{display:"inline-flex",alignItems:"center",justifyContent:"center",width:"24px",height:"24px",padding:0,borderRadius:"6px",border:"1px solid var(--dsw-alias-border-l2)",background:"var(--dsw-alias-bg-layer-2)",color:0===a?"var(--dsw-alias-label-tertiary)":"var(--dsw-alias-label-primary)",cursor:0===a?"default":"pointer",opacity:0===a?.35:1,fontSize:"12px",lineHeight:"24px"}},"↑"),r.createElement("button",{type:"button","data-testid":"nav-order-down-"+t.id,"aria-label":e("config.navOrder.moveDown"),title:e("config.navOrder.moveDown"),disabled:a===y.length-1,onClick:e=>{e.stopPropagation(),k(a,a+1)},style:{display:"inline-flex",alignItems:"center",justifyContent:"center",width:"24px",height:"24px",padding:0,borderRadius:"6px",border:"1px solid var(--dsw-alias-border-l2)",background:"var(--dsw-alias-bg-layer-2)",color:a===y.length-1?"var(--dsw-alias-label-tertiary)":"var(--dsw-alias-label-primary)",cursor:a===y.length-1?"default":"pointer",opacity:a===y.length-1?.35:1,fontSize:"12px",lineHeight:"24px"}},"↓"),r.createElement("button",{type:"button",role:"switch","data-testid":"nav-order-toggle-"+t.id,"aria-checked":String(s),"aria-label":e(s?"config.navOrder.visible":"config.navOrder.hidden"),title:e(i?"config.navOrder.locked":s?"config.navOrder.visible":"config.navOrder.hidden"),disabled:i,onClick:e=>{e.stopPropagation(),(e=>{if("dsh-service"===e)return;const t=Array.isArray(l)?l:[],a=new Set(t);a.has(e)?a.delete(e):a.add(e);const r=Array.from(a);d(r),fe(r),ge(),ke(Array.isArray(n)?n:null,r)})(t.id)},style:{width:"34px",height:"20px",...M("10px"),padding:0,position:"relative",flexShrink:0,border:"1px solid "+(s?"var(--dsw-alias-state-success-primary)":"var(--dsw-alias-border-l2)"),background:s?"var(--dsw-alias-state-success-primary)":"var(--dsw-alias-bg-layer-2)",cursor:i?"not-allowed":"pointer",opacity:i?.6:1,lineHeight:0}},r.createElement("span",{style:{position:"absolute",top:"1px",left:s?"15px":"1px",width:"16px",height:"16px",...M("50%"),background:s?"#fff":"var(--dsw-alias-label-tertiary)",transition:"left 120ms ease"}}))))})))}const na=["inherit","follow","custom"],sa="dsh-service-subagent-route-cache",ia=e=>null!==e&&"object"==typeof e&&"string"==typeof e.provider&&"string"==typeof e.id;function oa(){try{const e=JSON.parse(localStorage.getItem(sa)||"null");return null===e||"object"!=typeof e?null:na.includes(e.mode)&&Array.isArray(e.models)&&e.models.every(ia)?{mode:e.mode,provider:"string"==typeof e.provider?e.provider:"",model:"string"==typeof e.model?e.model:"",reasoningEffort:"string"==typeof e.reasoningEffort?e.reasoningEffort:"",fallbacks:Array.isArray(e.fallbacks)?e.fallbacks:[],models:e.models,...null!==e.current&&"object"==typeof e.current?{current:e.current}:{},..."boolean"==typeof e.available?{available:e.available}:{}}:null}catch(e){return null}}function la(){const e=Ee(),{useState:t,useEffect:a}=r,n=r.useRef(null);null===n.current&&(n.current={cached:oa()});const s=!1!==le().value.subagentModelsDock,i=n.current.cached,[o,d]=t(i),[c,u]=t(null!==i?i.mode:"inherit"),[p,m]=t(null!==i?i.provider:""),[g,h]=t(null!==i?i.model:""),[v,b]=t(!0),[f,y]=t(!1),[x,k]=t(0),[w,E]=t(""),[S,q]=t(null!==i?i.reasoningEffort:""),[C,z]=t(null!==i?i.fallbacks:[]),[A,T]=t(!1),I={color:"var(--dsw-alias-label-secondary)",fontSize:"12px",marginTop:"8px",lineHeight:1.5},H={fontSize:"12px",padding:"4px 8px",borderRadius:"6px",border:"1px solid var(--dsw-alias-border-l2)",background:"var(--dsw-alias-bg-layer-2)",color:"var(--dsw-alias-label-primary)",maxWidth:"100%"},O=async()=>{b(!0);try{const e=await l("subagent-route",{});e.ok?(d(e.value),u(e.value.mode),z(Array.isArray(e.value.fallbacks)?e.value.fallbacks:[]),"string"==typeof e.value.provider&&m(e.value.provider),"string"==typeof e.value.model&&h(e.value.model),q("string"==typeof e.value.reasoningEffort?e.value.reasoningEffort:""),function(e){if(null!==e&&"object"==typeof e&&na.includes(e.mode)&&Array.isArray(e.models))try{localStorage.setItem(sa,JSON.stringify({mode:e.mode,provider:"string"==typeof e.provider?e.provider:"",model:"string"==typeof e.model?e.model:"",reasoningEffort:"string"==typeof e.reasoningEffort?e.reasoningEffort:"",fallbacks:Array.isArray(e.fallbacks)?e.fallbacks:[],models:e.models.filter(ia),...null!==e.current&&"object"==typeof e.current?{current:e.current}:{},..."boolean"==typeof e.available?{available:e.available}:{}}))}catch(e){}}(e.value),E("")):E(e.error||"unknown")}catch(e){E("network")}finally{b(!1)}};a(()=>{O()},[]);const R=null!==o&&Array.isArray(o.models)?o.models:[],L=[],N={};for(const e of R)void 0===N[e.provider]&&(N[e.provider]=e.providerName,L.push(e.provider));const D=e=>R.filter(t=>t.provider===e),$=e=>{const t=[],a=new Set;for(const r of e?.reasoning?.efforts??[]){if(null===r||"object"!=typeof r)continue;const e="string"==typeof r.id?r.id:"";""===e||a.has(e)||(a.add(e),t.push({id:e,name:"string"==typeof r.name&&""!==r.name?r.name:e,description:"string"==typeof r.description&&""!==r.description?r.description:void 0}))}return t},W=L.includes(p)?p:L[0]??"",j=D(W),B=j.some(e=>e.id===g)?g:j[0]?.id??"",_=j.find(e=>e.id===B)??null,P=$(_),V=P.some(e=>e.id===S)?S:"",F=(e,t)=>{z(a=>a.map((a,r)=>r===e?{...a,...t}:a))},U=(e,t)=>{z(a=>{const r=e+t;if(r<0||r>=a.length)return a;const n=[...a],s=n.splice(e,1)[0];return n.splice(r,0,s),n})};a(()=>{A&&C.length<2&&T(!1)},[C.length]);const K=async e=>{y(!0),E("");try{const t=("custom"===e||"follow"===e)&&C.length>0?{fallbacks:C}:{},a="custom"===e?{mode:"custom",provider:W,model:B,...""!==V?{reasoningEffort:V}:{},...t}:{mode:e,...t},r=await l("subagent-route-save",a);r.ok?(k(e=>e+1),await O()):E(r.error||"unknown")}catch(e){E("network")}finally{y(!1)}},G=(e,t,a,n)=>r.createElement("button",{type:"button","data-testid":e,disabled:t||f,onClick:a,style:{fontSize:"12px",lineHeight:"14px",width:"24px",height:"24px",padding:0,borderRadius:"6px",border:"1px solid var(--dsh-svc-border-strong)",background:"transparent",color:"var(--dsh-svc-text)",cursor:t||f?"default":"pointer",opacity:t||f?.55:1}},n),Q={fontSize:"12px",color:"var(--dsw-alias-label-secondary)",width:"88px",flexShrink:0};return r.createElement("div",{"data-testid":"subagent-section",style:{padding:"4px 0 14px",marginBottom:"12px",color:"var(--dsw-alias-label-primary)"}},r.createElement("div",{style:{fontSize:"14px",fontWeight:700}},e("subagent.title")),r.createElement("p",{style:I},e("subagent.hint")),r.createElement("div",{"data-testid":"subagent-dock-toggle-row",style:{display:"flex",alignItems:"center",gap:"10px",marginTop:"12px",padding:"10px 12px",border:"1px solid var(--dsh-svc-border)",borderRadius:"8px",background:"var(--dsh-svc-raised-bg)"}},r.createElement("div",{style:{flex:1,minWidth:0}},r.createElement("div",{style:{fontSize:"13px",fontWeight:600,color:"var(--dsw-alias-label-primary)"}},e("subagent.dock.title"))),r.createElement("button",{type:"button",role:"switch","aria-checked":String(s),"data-testid":"subagent-dock-toggle",onClick:()=>{Z.set("subagentModelsDock",!s).catch(()=>{})},style:{width:"34px",height:"20px",...M("10px"),padding:0,flexShrink:0,position:"relative",border:"1px solid "+(s?"var(--dsw-alias-state-success-primary)":"var(--dsw-alias-border-l2)"),background:s?"var(--dsw-alias-state-success-primary)":"var(--dsw-alias-bg-layer-2)",cursor:"pointer",lineHeight:0}},r.createElement("span",{style:{position:"absolute",top:"1px",left:s?"15px":"1px",width:"16px",height:"16px",...M("50%"),background:s?"#fff":"var(--dsw-alias-label-tertiary)",transition:"left 150ms ease"}}))),null!==o&&!1===o.available?r.createElement("p",{"data-testid":"subagent-unavailable",style:{...I,color:"var(--dsw-alias-state-warn-primary)"}},e("subagent.unavailable")):null,v&&null===o?r.createElement("p",{"data-testid":"subagent-loading",style:I},e("subagent.loading")):null,r.createElement("div",{"data-testid":"subagent-modes",style:{display:"flex",gap:"8px",marginTop:"12px",flexWrap:"wrap"}},na.map(t=>r.createElement("button",{type:"button",key:t,"data-testid":"subagent-mode-"+t,"aria-pressed":String(c===t),disabled:v,onClick:()=>u(t),style:Object.assign({},ee(),{cursor:v?"default":"pointer",background:c===t?"var(--dsh-svc-tab-active-bg)":"transparent",color:c===t?"var(--dsh-svc-tab-active-text)":"var(--dsh-svc-text)",opacity:v?.55:1})},e("subagent.mode."+t)))),r.createElement("p",{"data-testid":"subagent-mode-desc",style:{...I,marginTop:"8px"}},e("subagent.mode."+c+".desc")),"custom"===c?r.createElement("div",{"data-testid":"subagent-custom",style:{marginTop:"8px"}},r.createElement("div",{style:{display:"flex",alignItems:"center",gap:"10px",marginTop:"4px"}},r.createElement("span",{style:Q},e("subagent.provider")),r.createElement("select",{"data-testid":"subagent-provider",value:W,disabled:0===L.length||f,onChange:e=>m(e.target.value),style:H},L.map(e=>r.createElement("option",{key:e,value:e},N[e]??e)))),r.createElement("div",{style:{display:"flex",alignItems:"center",gap:"10px",marginTop:"4px"}},r.createElement("span",{style:Q},e("subagent.model")),r.createElement("select",{"data-testid":"subagent-model",value:B,disabled:0===j.length||f,onChange:e=>h(e.target.value),style:H},j.map(e=>r.createElement("option",{key:e.id,value:e.id},e.name??e.id)))),""!==B?r.createElement("div",{"data-testid":"subagent-reasoning-row",style:{display:"flex",alignItems:"center",gap:"10px",marginTop:"4px",flexWrap:"wrap"}},r.createElement("span",{style:Q},e("subagent.reasoningEffort")),r.createElement("select",{"data-testid":"subagent-reasoning-effort",value:V,disabled:f||0===P.length,onChange:e=>q(e.target.value),style:H},r.createElement("option",{value:""},e("subagent.reasoningEffort.default")),...P.map(e=>r.createElement("option",{key:e.id,value:e.id,...void 0!==e.description?{title:e.description}:{}},e.name))),0===P.length?r.createElement("span",{"data-testid":"subagent-reasoning-effort-unavailable",style:{fontSize:"12px",color:"var(--dsw-alias-state-warn-primary)"}},e("subagent.reasoningEffort.unavailable")):null):null):null,"custom"!==c||0!==R.length||v?null:r.createElement("p",{"data-testid":"subagent-models-empty",style:{...I,color:"var(--dsw-alias-state-warn-primary)"}},e("subagent.modelsEmpty")),"custom"===c||"follow"===c?r.createElement("div",{"data-testid":"subagent-fallback-block",style:{marginTop:"14px",borderTop:"1px solid var(--dsh-svc-border)",paddingTop:"12px"}},r.createElement("div",{style:{fontSize:"13px",fontWeight:700}},e("subagent.fallback.title")),r.createElement("p",{style:I},e("subagent.fallback.hint")),0===C.length?r.createElement("p",{"data-testid":"subagent-fallback-empty",style:{...I,color:"var(--dsw-alias-label-secondary)"}},e("subagent.fallback.empty")):null,C.map((t,a)=>{const n=L.includes(t.provider),s=n?D(t.provider):[],i=s.find(e=>e.id===t.model)??null,o=$(i),l=o.map(e=>e.id);return r.createElement("div",{key:a,"data-testid":"subagent-fallback-row",style:{marginTop:"8px",border:"1px solid var(--dsh-svc-border)",borderRadius:"8px",padding:"7px 10px 8px"}},r.createElement("div",{style:{display:"flex",alignItems:"center",gap:"8px",marginBottom:"2px"}},r.createElement("span",{style:{fontSize:"12px",fontWeight:600,color:"var(--dsw-alias-label-primary)"}},e("subagent.fallback.item",{index:String(a+1)})),r.createElement("span",{style:{marginLeft:"auto"}}),((e,t,a,n,s=!1)=>r.createElement("button",{type:"button","data-testid":e,disabled:t||f,onClick:a,style:{fontSize:"12px",padding:"3px 8px",borderRadius:"6px",border:"1px solid "+(s?"var(--dsw-alias-state-error-primary)":"var(--dsh-svc-border-strong)"),background:"transparent",color:s?"var(--dsw-alias-state-error-primary)":"var(--dsh-svc-text)",cursor:t||f?"default":"pointer",opacity:t||f?.55:1}},n))("subagent-fallback-remove-"+a,!1,()=>(e=>{z(t=>t.filter((t,a)=>a!==e))})(a),e("subagent.fallback.remove"),!0),A?G("subagent-fallback-up-"+a,0===a,()=>U(a,-1),"▲"):null,A?G("subagent-fallback-down-"+a,a===C.length-1,()=>U(a,1),"▼"):null),r.createElement("div",{style:{display:"flex",alignItems:"center",gap:"10px",marginTop:"4px"}},r.createElement("span",{style:Q},e("subagent.provider")),r.createElement("select",{"data-testid":"subagent-fallback-provider-"+a,value:n?t.provider:"",disabled:f,onChange:e=>{const t=e.target.value;F(a,{provider:t,model:D(t)[0]?.id??""})},style:H},r.createElement("option",{value:""},""),L.map(e=>r.createElement("option",{key:e,value:e},N[e]??e)))),r.createElement("div",{style:{display:"flex",alignItems:"center",gap:"10px",marginTop:"4px"}},r.createElement("span",{style:Q},e("subagent.model")),r.createElement("select",{"data-testid":"subagent-fallback-model-"+a,value:s.some(e=>e.id===t.model)?t.model:"",disabled:0===s.length||f,onChange:e=>{const r=e.target.value,n=s.find(e=>e.id===r)??null,i=$(n).map(e=>e.id);F(a,{model:r,..."string"!=typeof t.reasoningEffort||""===t.reasoningEffort||i.includes(t.reasoningEffort)?{}:{reasoningEffort:void 0}})},style:H},s.map(e=>r.createElement("option",{key:e.id,value:e.id},e.name??e.id)))),o.length>0?r.createElement("div",{"data-testid":"subagent-fallback-reasoning-row",style:{display:"flex",alignItems:"center",gap:"10px",marginTop:"4px"}},r.createElement("span",{style:Q},e("subagent.reasoningEffort")),r.createElement("select",{"data-testid":"subagent-fallback-effort-"+a,value:l.includes(t.reasoningEffort)?t.reasoningEffort:"",disabled:f,onChange:e=>F(a,{reasoningEffort:""===e.target.value?void 0:e.target.value}),style:H},r.createElement("option",{value:""},e("subagent.reasoningEffort.default")),...o.map(e=>r.createElement("option",{key:e.id,value:e.id,...void 0!==e.description?{title:e.description}:{}},e.name)))):r.createElement("span",{"data-testid":"subagent-fallback-effort-unavailable-"+a,style:{display:"inline-block",marginTop:"4px",fontSize:"12px",color:"var(--dsw-alias-state-warn-primary)"}},e("subagent.reasoningEffort.unavailable")))}),C.length>=10?r.createElement("p",{"data-testid":"subagent-fallback-limit",style:{...I,color:"var(--dsw-alias-state-warn-primary)"}},e("subagent.fallback.limit",{max:String(10)})):r.createElement("div",{style:{display:"flex",gap:"10px",marginTop:"8px",flexWrap:"wrap"}},r.createElement("button",{type:"button","data-testid":"subagent-fallback-add",disabled:f||0===L.length,onClick:()=>{z(e=>{if(e.length>=10)return e;const t=L[0]??"";return[...e,{provider:t,model:D(t)[0]?.id??""}]})},style:{fontSize:"12px",padding:"5px 12px",borderRadius:"var(--dsh-svc-radius-control)",border:"1px dashed var(--dsh-svc-border-strong)",background:"transparent",color:"var(--dsh-svc-text)",cursor:f||0===L.length?"default":"pointer",opacity:f||0===L.length?.55:1}},e("subagent.fallback.add")),C.length>1?r.createElement("button",{type:"button","data-testid":"subagent-fallback-sort",disabled:f,onClick:()=>T(e=>!e),style:{fontSize:"12px",padding:"5px 12px",borderRadius:"var(--dsh-svc-radius-control)",border:"1px solid var(--dsh-svc-border-strong)",background:A?"var(--dsh-svc-tab-active-bg)":"transparent",color:A?"var(--dsh-svc-tab-active-text)":"var(--dsh-svc-text)",cursor:f?"default":"pointer",opacity:f?.55:1}},e(A?"subagent.fallback.sort.done":"subagent.fallback.sort")):null)):null,""!==w?r.createElement("p",{"data-testid":"subagent-error",style:{...I,color:"var(--dsw-alias-state-error-primary)"}},function(e,t){return"feature-disabled"===t?e("subagent.error.feature-disabled"):"llm-unavailable"===t?e("subagent.error.llm-unavailable"):"unknown-mode"===t?e("subagent.error.unknown-mode"):"invalid-model-route"===t?e("subagent.error.invalid-model-route"):"invalid-reasoning-effort"===t?e("subagent.error.invalid-reasoning-effort"):"network"===t?e("subagent.error.network"):t}(e,w)):null,x>0&&""===w?r.createElement("p",{"data-testid":"subagent-saved",style:{...I,color:"var(--dsw-alias-state-success-primary)"}},"✓ "+e("subagent.saved")):null,r.createElement("div",{style:{display:"flex",gap:"10px",marginTop:"12px",flexWrap:"wrap"}},r.createElement("button",{type:"button","data-testid":"subagent-save",disabled:f||v||"custom"===c&&(""===W||""===B),onClick:()=>{K(c)},style:{fontSize:"12px",padding:"6px 16px",borderRadius:"var(--dsh-svc-radius-control)",border:"1px solid transparent",background:"var(--dsw-alias-brand-primary)",color:"var(--dsh-svc-brand-text)",cursor:f?"default":"pointer",opacity:f||v||"custom"===c&&(""===W||""===B)?.55:1}},e(f?"subagent.saving":"subagent.save")),"inherit"!==c?r.createElement("button",{type:"button","data-testid":"subagent-reset",disabled:f||v,onClick:()=>{u("inherit"),K("inherit")},style:{fontSize:"12px",padding:"6px 14px",borderRadius:"var(--dsh-svc-radius-control)",border:"1px solid var(--dsw-alias-state-error-primary)",background:"transparent",color:"var(--dsw-alias-state-error-primary)",cursor:f?"default":"pointer",opacity:f||v?.55:1}},e("subagent.reset")):null))}const da="dsh-service-skills-model",ca=(e,t)=>l(e,t);function ua(e){return e.provider+"\0"+e.id}function pa(){try{const e=JSON.parse(localStorage.getItem(da)||"null");if(e&&"string"==typeof e.provider&&"string"==typeof e.model)return e}catch(e){}return null}const ma=(e,t)=>{let a=function(e,t){const a="object"==typeof t&&null!==t?t:pa();if(null!==a){const t=e.find(e=>e.provider===a.provider&&e.id===a.model);if(void 0!==t)return t}return e[0]??null}(e,pa());return null===a&&void 0!==t&&(a=e.find(e=>e.provider===t.provider&&e.id===t.model)??null),a},{adoptSkillsBatchStatus:ga,cancelSkillsBatchShared:ha,changeSkillsBatchModel:va,fetchSkillsBatchModels:ba,planSkillsBatchShared:fa,publishSkillsBatch:ya,skillsBatchListDirtyRef:xa,startSkillsBatchShared:ka,useSkillsBatch:wa}=function({ctx:e,rpcCall:t,featureEnabled:a,featureScope:n,currentUiLocale:s,SKILLS_MODEL_STORAGE_KEY:i,skillModelKey:o,resolveSkillModelChoice:l}){const{useState:d,useEffect:c}=r;let u=null,p=null,m=null,g=null,h="";const v={current:!1};let b=null,f=null,y=!1;const x="dsh-service-skills-batch-pending",k=new Set,w=()=>{for(const e of k)e()},E=e=>{try{e?localStorage.setItem(x,"true"):localStorage.removeItem(x)}catch(e){}},S=e=>{E("planned"===e||"running"===e)},q=()=>{null!==b&&(clearInterval(b),b=null)},C=(e=!0)=>{if(null!==u&&"running"===u.phase&&a("skillManager")&&null===b){const a=async()=>{try{const e=await t("skills-batch-status",{});if(!e.ok)return;const a=null!==u?u.phase:null;u=e.value,S(e.value.phase),"running"===a&&"running"!==e.value.phase&&(q(),v.current=!0),w()}catch(e){}};e&&a(),b=setInterval(()=>{a()},2e3)}},z=async()=>{if(null!==m)return m;try{const e=await t("skills-models",{});if(!e.ok)return m=[],m;m=e.value.models??[],null===g&&(g=l(m,e.value.current))}catch(e){m=[]}return m},A=()=>y?Promise.resolve(u):(null!==f||(f=(async()=>{try{const e=await t("skills-batch-status",{});e.ok&&(y=!0,S(e.value.phase),"idle"!==e.value.phase&&(u=e.value,C(!1),w()))}catch(e){}return u})().finally(()=>{f=null})),f);return e.effect(()=>{const e=n.subscribe(()=>{a("skillManager")||q()});return()=>{e(),q()}},"dsh-service skills batch polling lifecycle"),(()=>{try{return"true"===localStorage.getItem(x)}catch(e){return!1}})()&&A(),{adoptSkillsBatchStatus:A,cancelSkillsBatchShared:async()=>{try{await t("skills-batch-cancel",{}),E(!1)}catch(e){}},changeSkillsBatchModel:e=>{const t=(m??[]).find(t=>o(t)===e)??null;if(g=t,null!==t)try{localStorage.setItem(i,JSON.stringify({provider:t.provider,model:t.id}))}catch(e){}w()},fetchSkillsBatchModels:z,planSkillsBatchShared:async()=>{if(h="",w(),0===(await z()).length||null===g)return h="models-empty",w(),!1;try{localStorage.setItem(i,JSON.stringify({provider:g.provider,model:g.id}))}catch(e){}const e=await t("skills-batch-plan",{provider:g.provider,model:g.id});if(!e.ok)return h=e.error||"unknown",w(),!1;p={...e.value,modelItem:g};const a=Array.isArray(e.value.annotated)?e.value.annotated.length:0;return u={phase:"planned",total:e.value.candidates.length+a,done:0,failures:[],current:null,estBytes:e.value.estBytes,logs:[]},S("planned"),C(),w(),!0},publishSkillsBatch:w,skillsBatchListDirtyRef:v,startSkillsBatchShared:async(e=!1)=>{if(null===p||null===u)return!1;const a=await t("skills-batch-run",{planId:p.planId,lang:s(),...!0===e?{forceAnnotated:!0}:{}});return a.ok?(u={...u,phase:"running"},S("running"),C(),w(),!0):(h=a.error||"unknown",w(),!1)},useSkillsBatch:()=>{const[,e]=d(0);return c(()=>{const t=()=>e(e=>e+1);return k.add(t),()=>k.delete(t)},[]),{batch:u,plan:p,models:m,modelItem:g,error:h}}}}({ctx:t,rpcCall:l,featureEnabled:oe,featureScope:Z,currentUiLocale:W,SKILLS_MODEL_STORAGE_KEY:da,skillModelKey:ua,resolveSkillModelChoice:ma}),Ea=(e,t)=>{if(null===t||"object"!=typeof t)return String(t);const a=new Date(t.at),r=e=>String(e).padStart(2,"0"),n=Number.isFinite(a.getTime())?r(a.getHours())+":"+r(a.getMinutes())+":"+r(a.getSeconds()):"--:--:--",s="skills.log."+t.code,i=e(s,t.params??{});return"["+n+"]"+(void 0!==t.name?" ["+t.name+"]":"")+" "+(i===s?t.code:i)};function Sa(e,t){if("models-empty"===t)return e("skills.describe.models.empty");if("llm-unavailable"===t)return e("skills.llm.unavailable");if("batch-already-running"===t)return e("skills.batch.already");if("feature-disabled"===t)return e("skills.error.feature-disabled");if("network"===t)return e("skills.error.network");if("read-only-source"===t)return e("skills.error.read-only-source");if("unknown-skill"===t)return e("skills.error.unknown-skill");if("invalid-field"===t)return e("skills.error.invalid-field");if("invalid-enable"===t)return e("skills.error.invalid-enable");if("invalid-model-route"===t)return e("skills.error.invalid-model-route");if("invalid-description"===t)return e("skills.error.invalid-description");if("describe-timeout"===t)return e("skills.error.describe-timeout");if("batch-cancelled"===t)return e("skills.error.batch-cancelled");if("entry-changed"===t)return e("skills.error.entry-changed");if("unknown-batch-plan"===t)return e("skills.error.unknown-batch-plan");if("batch-already-done"===t)return e("skills.error.batch-already-done");if("batch-already-cancelled"===t)return e("skills.error.batch-already-cancelled");if("annotated-confirm-required"===t)return e("skills.error.annotated-confirm-required");if("string"==typeof t&&t.startsWith("empty-output")){const a=t.slice(13);return e("skills.error.empty-output",{kind:""===a?"?":a})}return"string"==typeof t&&t.startsWith("invalid-skill")?e("skills.error.invalid-skill",{reason:t.startsWith("invalid-skill:")?t.slice(14):""}):e("skills.error",{error:t})}function qa(){const e=Ee(),[t,n]=a(null),[s,o]=a(""),[l,d]=a(!0),[c,u]=a(""),[p,m]=a([]),[g,h]=a(null),[v,b]=a(null),[f,y]=a(!1),[x,k]=a([]),[w,E]=a(!1),[S,q]=a(!1),[C,z]=a(!1),[A,T]=a(!1),{batch:I,plan:H,models:O,modelItem:R,error:L}=wa(),N=null!==I?I.phase:null;i(()=>{E("running"===N)},[N]);const D=async()=>{d(!0);try{const e=await ca("skills-list",{});e.ok?(n(e.value),o("")):o(e.error||"unknown")}catch(e){o("network")}finally{d(!1)}};i(()=>{D(),ga(),ba().then(ya)},[]),i(()=>{null===I||"done"!==I.phase&&"cancelled"!==I.phase||!xa.current||(xa.current=!1,D())},[null!==I&&I.phase]),i(()=>{if(null===v||!v.busy)return;const e=v.entry.id;let t;const a=async()=>{try{const t=await ca("skills-describe-log",{id:e});t.ok&&k(t.value.logs??[])}catch(e){}};return a(),t=setInterval(()=>{a()},800),()=>clearInterval(t)},[null!==v&&v.busy]),i(()=>{if(null===v||v.busy)return;const e=v.entry.id;(async()=>{try{const t=await ca("skills-describe-log",{id:e});t.ok&&k(t.value.logs??[])}catch(e){}})()},[null!==v&&v.busy]);const $=e=>{n(t=>null===t?t:{...t,entries:t.entries.map(t=>t.id===e.id?e:t)})};i(()=>{if(null===g)return;const e=setTimeout(()=>h(null),3e3);return()=>clearTimeout(e)},[g]),i(()=>{if(!C)return;const e=setTimeout(()=>z(!1),3e3);return()=>clearTimeout(e)},[C]),i(()=>{z(!1)},[N,H]);const j=async(e,t)=>{const a=e.id+":"+t;if(g!==a)return void h(a);h(null);const r="model"===t?!0!==e.invocation.model:!0!==e.invocation.user;try{const a=await ca("skills-toggle",{id:e.id,field:t,enable:r});a.ok?$(a.value.entry):o(a.error+(a.detail?":"+a.detail:"")||"unknown")}catch(e){o("network")}},B={color:"var(--dsw-alias-label-secondary)",fontSize:"12px",marginTop:"8px",lineHeight:1.5},_=(e,t)=>r.createElement("span",{key:e,style:te("warn"===t?"warning":"danger"===t?"danger":"neutral",{marginLeft:"6px",padding:"1px 7px",verticalAlign:"middle"})},e),P=(e,t)=>r.createElement("button",{type:"button",role:"switch","data-testid":t.testid,"aria-checked":String(e),title:t.title,disabled:t.disabled,onClick:t.onClick,style:{width:"34px",height:"20px",...M("10px"),padding:0,flexShrink:0,position:"relative",cursor:t.disabled?"default":"pointer",lineHeight:0,border:"1px solid "+(t.armed?"var(--dsw-alias-state-warn-primary)":e?"var(--dsw-alias-state-success-primary)":"var(--dsw-alias-border-l2)"),background:t.armed?"transparent":e?"var(--dsw-alias-state-success-primary)":"var(--dsw-alias-bg-layer-2)",opacity:t.disabled?.5:1}},r.createElement("span",{style:{position:"absolute",top:"1px",left:e&&!t.armed?"15px":"1px",width:"16px",height:"16px",...M("50%"),background:t.armed?"var(--dsw-alias-state-warn-primary)":e?"#fff":"var(--dsw-alias-label-tertiary)"}})),V={border:"1px solid var(--dsh-alias-border-l2)",borderRadius:"10px",padding:"11px 13px",marginBottom:"8px",background:"var(--dsh-svc-card-bg)"},F=(t,a,n)=>0===a.length?null:r.createElement("div",{"data-testid":t,style:{marginTop:"9px",padding:"7px 10px",borderRadius:"7px",background:"var(--dsw-alias-bg-layer-3)",border:"1px solid var(--dsw-alias-border-l2)",maxHeight:"130px",overflowY:"auto"}},n?r.createElement("div",{style:{fontSize:"11px",fontWeight:700,color:"var(--dsw-alias-label-secondary)",marginBottom:"3px"}},e("skills.log.title")):null,...a.map((e,t)=>r.createElement("div",{key:t,style:{fontSize:"11px",lineHeight:1.6,color:"var(--dsw-alias-label-tertiary)",fontFamily:"ui-monospace, SFMono-Regular, Menlo, monospace",overflowWrap:"anywhere"}},e))),U=t=>{if(null===v)return null;const a=t??v.entry,{models:n,modelItem:s,draft:i,busy:o,error:l,applied:d}=v,c=null===i?null:[["description",void 0!==a.note?a.note.description:"",i.description],["usage",void 0!==a.note?a.note.usage:"",""===i.usage?null:i.usage]].map(([t,a,n])=>r.createElement("div",{key:t,"data-testid":"skill-diff-"+t,style:{marginBottom:"9px"}},r.createElement("div",{style:{fontSize:"12px",fontWeight:700,marginBottom:"3px"}},e("skills.apply."+t)),r.createElement("div",{style:{fontSize:"12px",color:"var(--dsw-alias-label-tertiary)",textDecoration:"line-through",lineHeight:1.45}},e("skills.apply.old")+":"+(""===a?"—":a)),r.createElement("div",{style:{fontSize:"12px",color:"var(--dsw-alias-label-primary)",lineHeight:1.45}},e("skills.apply.new")+":"+(null===n?e("skills.apply.keepusage"):n))));return r.createElement("div",{key:"skill-describe-"+a.id,"data-testid":"skill-describe-dialog",style:{border:"1px solid var(--dsw-alias-border-l1)",borderRadius:"12px",padding:"14px 16px",marginBottom:"14px",background:"var(--dsh-svc-raised-bg)"}},r.createElement("div",{style:{display:"flex",alignItems:"center",justifyContent:"space-between",gap:"10px"}},r.createElement("div",{style:{fontSize:"14px",fontWeight:700}},e("skills.describe.title",{name:a.name})),r.createElement("button",{type:"button",onClick:()=>b(null),style:{border:0,background:"transparent",color:"var(--dsw-alias-label-tertiary)",cursor:"pointer",fontSize:"15px"}},"✕")),null===n&&""===l?r.createElement("p",{style:B},e("skills.describe.models.loading")):null,null!==n&&0===n.length?r.createElement("p",{style:B},e("skills.describe.models.empty")):null,null!==n&&n.length>0?r.createElement("div",{style:{display:"flex",alignItems:"center",gap:"8px",marginTop:"10px",flexWrap:"wrap"}},r.createElement("span",{style:{fontSize:"12px",color:"var(--dsw-alias-label-secondary)"}},e("skills.describe.model")),r.createElement("select",{"data-testid":"skill-describe-model",value:null===s?"":ua(s),onChange:e=>b(t=>null===t?t:{...t,modelItem:n.find(t=>ua(t)===e.target.value)??null}),style:{fontSize:"12px",padding:"4px 8px",borderRadius:"6px",border:"1px solid var(--dsw-alias-border-l2)",background:"var(--dsw-alias-bg-layer-2)",color:"var(--dsw-alias-label-primary)",maxWidth:"100%"}},n.map(e=>r.createElement("option",{key:ua(e),value:ua(e)},e.providerName+" / "+e.name))),null===i?r.createElement("button",{type:"button","data-testid":"skill-describe-run",disabled:o||null===s,onClick:()=>{(async()=>{if(null===v||null===v.modelItem)return;const{entry:e,modelItem:t}=v;b(e=>({...e,busy:!0,error:""}));const a=await ca("skills-describe",{id:e.id,provider:t.provider,model:t.id,lang:W()});if(a.ok){try{localStorage.setItem(da,JSON.stringify({provider:t.provider,model:t.id}))}catch(e){}b(e=>({...e,draft:a.value.draft,busy:!1}))}else b(e=>({...e,busy:!1,error:a.error+(a.detail?":"+a.detail:"")}))})()},style:Object.assign({},X("neutral"),{fontSize:"12px",minHeight:"28px",padding:"4px 12px",cursor:o?"default":"pointer",opacity:o||null===s?.55:1})},e(o?"skills.describe.running":"skills.describe.run")):null):null,""!==l?r.createElement("p",{"data-testid":"skill-describe-error",style:{...B,color:"var(--dsw-alias-state-error-primary)"}},Sa(e,l)):null,F("skill-describe-log",x.map(t=>Ea(e,t))),c,d?r.createElement("p",{"data-testid":"skill-apply-done",style:{...B,color:"var(--dsw-alias-state-success-primary)"}},"✓ "+e("skills.apply.done")):null,null===i||d?null:r.createElement("p",{"data-testid":"skill-note-disclaimer",style:{...B,fontSize:"11px"}},e("skills.note.panelOnly")),null===i||d?null:r.createElement("button",{type:"button","data-testid":"skill-apply-confirm",disabled:o,onClick:()=>{(async()=>{if(null===v||null===v.draft||null===v.modelItem)return;const{entry:e,draft:t,modelItem:a}=v;b(e=>({...e,busy:!0}));const r=await ca("skills-note-save",{id:e.id,patch:{description:t.description,usage:t.usage},model:a.provider+"/"+a.id});r.ok?($(r.value.entry),b(e=>({...e,busy:!1,applied:!0}))):b(e=>({...e,busy:!1,error:r.error||"unknown"}))})()},style:{fontSize:"12px",padding:"6px 16px",borderRadius:"var(--dsh-svc-radius-control)",border:"1px solid transparent",background:"var(--dsw-alias-brand-primary)",color:"var(--dsh-svc-brand-text)",cursor:o?"default":"pointer",opacity:o?.55:1}},e("skills.apply.confirm")))},K=c.trim().toLowerCase(),G=null===t?[]:""===K?t.entries:t.entries.filter(e=>e.name.toLowerCase().includes(K)),Q=G.length>0&&G.every(e=>p.includes(e.id)),[Y,J]=a(!1);return i(()=>{null===I||"running"!==I.phase&&"planned"!==I.phase||J(!0)},[null!==I&&I.phase]),r.createElement("div",{"data-testid":"skills-section"},r.createElement("div",{style:{display:"flex",alignItems:"center",justifyContent:"space-between",gap:"12px",flexWrap:"wrap"}},r.createElement("input",{"data-testid":"skills-filter",value:c,placeholder:e("skills.filter"),onChange:e=>u(e.target.value),style:{fontSize:"12px",padding:"6px 10px",borderRadius:"7px",border:"1px solid var(--dsw-alias-border-l2)",background:"var(--dsw-alias-bg-layer-2)",color:"var(--dsw-alias-label-primary)",width:"200px"}}),r.createElement("div",{style:{display:"flex",alignItems:"center",gap:"10px",flexWrap:"wrap"}},r.createElement("button",{type:"button","data-testid":"skills-expand-all","data-variant":"neutral",disabled:0===G.length,style:Object.assign({},X("neutral"),{minHeight:"28px",padding:"4px 10px",fontSize:"12px",cursor:0===G.length?"default":"pointer",opacity:0===G.length?.55:1}),onClick:()=>(()=>{const e=G.map(e=>e.id);m(Q?t=>t.filter(t=>!e.includes(t)):t=>e.reduce((e,t)=>e.includes(t)?e:e.concat([t]),t))})()},e(Q?"skills.collapseAll":"skills.expandAll")),r.createElement("button",{type:"button","data-testid":"skills-refresh","data-variant":"neutral",style:Object.assign({},X("neutral"),{minHeight:"28px",padding:"4px 10px",fontSize:"12px"}),onClick:()=>{D()}},"↻"))),l&&null===t?r.createElement("p",{style:B},"…"):null,""!==s||""!==L?r.createElement("p",{"data-testid":"skills-error",style:{...B,color:"var(--dsw-alias-state-error-primary)"}},Sa(e,""!==s?s:L)):null,null!==t&&t.llmAvailable?r.createElement("button",{type:"button","data-testid":"skills-batch-toggle","aria-expanded":String(Y),onClick:()=>J(e=>!e),style:{margin:"0 0 12px",fontSize:"12px",padding:"6px 14px",borderRadius:"var(--dsh-svc-radius-control)",border:"1px solid "+(Y?"var(--dsw-alias-label-dimmed)":"var(--dsh-svc-border-strong)"),background:"transparent",color:"var(--dsw-alias-label-primary)",cursor:"pointer"}},(Y?"▾ ":"▸ ")+e("skills.batch.toggle")):null,Y&&null!==t&&t.llmAvailable?(()=>{const t=null!==I&&"planned"===I.phase&&null===H?"idle":null!==I?I.phase:"idle",a=t,n=null!==I&&I.total>0?Math.round(I.done/I.total*100):0,s=Array.isArray(H?.annotated)?H.annotated.length:0;return r.createElement("div",{"data-testid":"skills-batch-card",style:{border:"1px solid var(--dsw-alias-border-l2)",borderRadius:"12px",padding:"13px 15px",margin:"14px 0"}},r.createElement("div",{style:{display:"flex",alignItems:"center",justifyContent:"space-between",gap:"10px"}},r.createElement("div",{style:{fontSize:"13.5px",fontWeight:700}},e("skills.batch.title")),r.createElement("button",{type:"button","data-testid":"skills-batch-collapse",onClick:()=>J(!1),style:{border:0,background:"transparent",color:"var(--dsw-alias-label-tertiary)",cursor:"pointer",fontSize:"12px"}},e("skills.batch.collapse")+" ▴")),r.createElement("p",{style:{...B,marginTop:"4px"}},e("skills.batch.hint")),r.createElement("div",{style:{display:"flex",alignItems:"center",gap:"10px",marginTop:"9px",flexWrap:"wrap"}},null!==O&&O.length>0?r.createElement("label",{style:{display:"flex",alignItems:"center",gap:"6px",fontSize:"12px",color:"var(--dsw-alias-label-secondary)"}},e("skills.batch.model"),r.createElement("select",{"data-testid":"skills-batch-model",value:null===R?"":ua(R),disabled:f||null!==I&&"running"===I.phase,onChange:e=>va(e.target.value),style:{fontSize:"12px",padding:"4px 8px",borderRadius:"6px",border:"1px solid var(--dsw-alias-border-l2)",background:"var(--dsw-alias-bg-layer-2)",color:"var(--dsw-alias-label-primary)",maxWidth:"100%"}},O.map(e=>r.createElement("option",{key:ua(e),value:ua(e)},e.providerName+" / "+e.name)))):null,"idle"===t||"done"===t||"cancelled"===t?r.createElement("button",{type:"button","data-testid":"skills-batch-plan",disabled:f,onClick:()=>{(async()=>{y(!0);try{await fa()}finally{y(!1)}})()},style:Object.assign({},X("neutral"),{cursor:f?"default":"pointer",opacity:f?.55:1})},e("skills.batch.plan")):null,null!==H?r.createElement("span",{"data-testid":"skills-batch-candidates",style:{fontSize:"12px",color:"var(--dsw-alias-label-secondary)"}},e("skills.batch.candidates",{count:H.candidates.length})+(H.estBytes>0?" · "+e("skills.batch.estBytes",{size:(i=H.estBytes,i>=1048576?(i/1024/1024).toFixed(1)+" MB":i>=1024?(i/1024).toFixed(1)+" KB":String(i)+" B")}):"")+(s>0?" · "+e("skills.batch.annotated",{count:s}):"")+" · "+e("skills.batch.skipped",{count:H.skipped.length})):null,null!==H&&"planned"===t?r.createElement("button",{type:"button","data-testid":"skills-batch-start",disabled:f||0===H.candidates.length&&0===s,onClick:()=>{(async()=>{const e=Array.isArray(H?.annotated)?H.annotated.length:0;if(e>0&&!C)z(!0);else{z(!1),y(!0);try{await ka(e>0)}finally{y(!1)}}})()},title:C?e("skills.switch.confirm"):void 0,style:{fontSize:"12px",padding:"5px 14px",borderRadius:"var(--dsh-svc-radius-control)",border:"1px solid transparent",background:C?"var(--dsh-svc-warning)":"var(--dsw-alias-brand-primary)",color:"var(--dsh-svc-brand-text)",cursor:f?"default":"pointer",opacity:f?.55:1}},C&&s>0?e("skills.batch.forceConfirm",{count:s}):e("skills.batch.start")):null,null!==I&&"running"===I.phase?r.createElement("button",{type:"button","data-testid":"skills-batch-cancel",onClick:()=>{(async()=>{await ha()})()},style:{fontSize:"12px",padding:"4px 12px",borderRadius:"var(--dsh-svc-radius-control)",border:"1px solid var(--dsw-alias-state-error-primary)",background:"transparent",color:"var(--dsw-alias-state-error-primary)",cursor:"pointer"}},e("skills.batch.cancel")):null,null!==I?r.createElement("span",{"data-testid":"skills-batch-phase",style:{fontSize:"12px",color:"var(--dsw-alias-label-tertiary)"}},e("skills.batch.phase."+a)):null),null!==H&&0===H.candidates.length&&0===s?r.createElement("p",{style:B},e("skills.batch.no-candidates")):null,null===H||0===H.skipped.length?null:r.createElement("div",{"data-testid":"skills-batch-skipped",style:{marginTop:"6px"}},r.createElement("button",{type:"button","data-testid":"skills-batch-skipped-toggle",onClick:()=>q(e=>!e),style:{border:0,background:"transparent",color:"var(--dsw-alias-label-tertiary)",cursor:"pointer",fontSize:"11.5px",padding:0}},(S?"▾ ":"▸ ")+e("skills.skippedList")+"("+H.skipped.length+")"),S?r.createElement("div",{style:{marginTop:"4px",fontSize:"11.5px",lineHeight:1.6,color:"var(--dsw-alias-label-tertiary)"}},H.skipped.map((t,a)=>r.createElement("div",{key:t.id??a,"data-testid":"skills-batch-skipped-item"},(""===t.name?t.id:t.name)+e("skills.colon")+(t=>{if("shadowed"===t)return e("skills.skip.shadowed");if("string"==typeof t&&t.startsWith("legacy-invocation-key"))return e("skills.skip.reason.legacy-invocation-key");const a=e("skills.skip.reason."+t);return a==="skills.skip.reason."+t?t:a})(t.reason)))):null),(()=>{const t=Array.isArray(H?.annotated)?H.annotated:[];return null===H||0===t.length?null:r.createElement("div",{"data-testid":"skills-batch-annotated",style:{marginTop:"6px"}},r.createElement("button",{type:"button","data-testid":"skills-batch-annotated-toggle",onClick:()=>T(e=>!e),style:{border:0,background:"transparent",color:"var(--dsw-alias-label-tertiary)",cursor:"pointer",fontSize:"11.5px",padding:0}},(A?"▾ ":"▸ ")+e("skills.batch.annotatedList")+"("+t.length+")"),A?r.createElement("div",{style:{marginTop:"4px",fontSize:"11.5px",lineHeight:1.6,color:"var(--dsh-svc-warning)"}},t.map((e,t)=>r.createElement("div",{key:e.id??t,"data-testid":"skills-batch-annotated-item"},""===e.name?e.id:e.name))):null)})(),null!==I&&I.total>0&&"idle"!==t?(()=>{const t=Array.isArray(I.failures)&&I.failures.length>0?r.createElement("div",{"data-testid":"skills-batch-failures",style:{marginTop:"7px",fontSize:"11.5px",color:"var(--dsw-alias-state-error-primary)",lineHeight:1.5}},e("skills.batch.failures",{count:I.failures.length})+":"+I.failures.map(e=>e.name+"("+e.reason+")").join("、")):null,a=Array.isArray(I.logs)?I.logs:[],s=0===a.length?null:r.createElement("div",null,r.createElement("button",{type:"button","data-testid":"skills-batch-log-toggle",onClick:()=>E(e=>!e),style:{marginTop:"7px",border:0,background:"transparent",color:"var(--dsw-alias-label-tertiary)",cursor:"pointer",fontSize:"11.5px",padding:0}},(w?"▾ ":"▸ ")+e("skills.log.title")+"("+a.length+")"),w?F("skills-batch-log",a.slice(-30).map(t=>Ea(e,t)),!1):null);return r.createElement("div",{style:{marginTop:"10px"}},r.createElement("div",{"data-testid":"skills-batch-progress",style:{fontSize:"12px",color:"var(--dsw-alias-label-secondary)",marginBottom:"4px"}},e("skills.batch.progress",{done:I.done,total:I.total})+(null!==I.current?" · "+e("skills.batch.current",{name:I.current}):"")),r.createElement("div",{style:{height:"6px",borderRadius:"3px",background:"var(--dsw-alias-bg-layer-3)",overflow:"hidden"}},r.createElement("div",{style:{height:"100%",width:n+"%",background:"var(--dsw-alias-state-success-primary)",transition:"width .3s"}})),t,s)})():null);var i})():null,(()=>{if(null===t||0===t.entries.length)return r.createElement("p",{style:B},e("skills.empty"));const a=G.filter(e=>void 0!==e.invalid),n=G.filter(e=>void 0===e.invalid),s=[["skills.group.auto",n.filter(e=>e.invocation.model)],["skills.group.manual",n.filter(e=>!e.invocation.model&&e.invocation.user)],["skills.group.disabled",n.filter(e=>!e.invocation.model&&!e.invocation.user)]],i=a=>{const n=(a=>{const n=p.includes(a.id),s="string"==typeof a.invalid&&a.invalid.startsWith("legacy-invocation-key:"),i=r.createElement("div",{style:{fontSize:"14px",fontWeight:650,color:"var(--dsw-alias-label-primary)",overflowWrap:"anywhere"}},a.name,_(e("skills.source."+a.source)==="skills.source."+a.source?a.source:e("skills.source."+a.source)),a.shadowed?_(e("skills.badge.shadowed"),"warn"):null,a.writable?null:_(e("skills.badge.readonly"),"danger"),a.annotated?_(e("skills.badge.annotated")):null),l=r.createElement("div",{style:{fontSize:"12px",color:"var(--dsw-alias-label-secondary)",marginTop:"3px",lineHeight:1.45,overflowWrap:"anywhere"}},a.description),d=""===a.usage?null:r.createElement("div",{style:{fontSize:"12px",color:"var(--dsw-alias-label-tertiary)",marginTop:"2px",lineHeight:1.45,overflowWrap:"anywhere"}},e("skills.apply.usage")+":"+a.usage),c=void 0!==a.note?r.createElement("div",{"data-testid":"skill-note-"+a.name,style:{marginTop:"5px",padding:"6px 9px",borderRadius:"7px",background:"var(--dsh-svc-raised-bg)",border:"1px solid var(--dsw-alias-border-l2)",fontSize:"11.5px",lineHeight:1.55,color:"var(--dsw-alias-label-secondary)",display:"flex",gap:"8px",alignItems:"flex-start"}},r.createElement("div",{style:{minWidth:0,flex:1}},!0===a.note.stale?r.createElement("div",{style:{marginBottom:"3px",color:"var(--dsw-alias-state-warn-primary)"}},"⚠ "+e("skills.note.stale")):null,r.createElement("div",{style:{overflowWrap:"anywhere"}},r.createElement("span",{style:{fontWeight:700,color:"var(--dsw-alias-label-primary)"}},e("skills.apply.description")+":"),r.createElement("span",null,a.note.description)),""===a.note.usage?null:r.createElement("div",{style:{overflowWrap:"anywhere",marginTop:"3px"}},r.createElement("span",{style:{fontWeight:700,color:"var(--dsw-alias-label-primary)"}},e("skills.apply.usage")+":"),r.createElement("span",null,a.note.usage))),r.createElement("button",{type:"button","data-testid":"skill-note-remove-"+a.name,onClick:()=>{(async e=>{const t=await ca("skills-note-clear",{id:e.id});t.ok?$(t.value.entry):o(t.error||"unknown")})(a)},title:e("skills.note.remove"),style:{border:0,background:"transparent",color:"var(--dsw-alias-label-tertiary)",cursor:"pointer",fontSize:"13px",flexShrink:0,lineHeight:1}},"✕")):null,u=void 0!==a.invalid?r.createElement("div",{style:{fontSize:"12px",color:"var(--dsw-alias-state-warn-primary)",marginTop:"4px",display:"flex",alignItems:"center",gap:"8px",flexWrap:"wrap"}},"⚠ ",s?e("skills.invalid.legacy"):e("skills.invalid.other",{reason:a.invalid}),s&&a.writable?r.createElement("button",{type:"button","data-testid":"skill-fix-"+a.name,onClick:()=>{(async e=>{const t=e.id+":fix";if(g===t){h(null);try{const t=await ca("skills-fix-keys",{id:e.id});t.ok?$(t.value.entry):o(t.error+(t.detail?":"+t.detail:"")||"unknown")}catch(e){o("network")}}else h(t)})(a)},title:g===a.id+":fix"?e("skills.switch.confirm"):void 0,style:{fontSize:"11px",padding:"2px 9px",borderRadius:"var(--dsh-svc-radius-control)",border:"1px solid var(--dsw-alias-state-warn-primary)",background:g===a.id+":fix"?"rgba(198,128,0,0.14)":"transparent",color:"var(--dsw-alias-state-warn-primary)",cursor:"pointer"}},g===a.id+":fix"?e("skills.switch.confirm"):e("skills.fix.legacy")):null):null,v=void 0===a.invalid?r.createElement("div",{style:{display:"flex",flexDirection:"column",gap:"7px",alignItems:"flex-end",flexShrink:0}},r.createElement("label",{style:{display:"flex",alignItems:"center",gap:"7px",fontSize:"11.5px",color:"var(--dsw-alias-label-secondary)"}},e("skills.switch.model"),P(a.invocation.model,{testid:"skill-switch-model-"+a.name,disabled:!a.writable,armed:g===a.id+":model",title:g===a.id+":model"?e("skills.switch.confirm"):void 0,onClick:()=>{j(a,"model")}})),r.createElement("label",{style:{display:"flex",alignItems:"center",gap:"7px",fontSize:"11.5px",color:"var(--dsw-alias-label-secondary)"}},e("skills.switch.user"),P(a.invocation.user,{testid:"skill-switch-user-"+a.name,disabled:!a.writable,armed:g===a.id+":user",title:g===a.id+":user"?e("skills.switch.confirm"):void 0,onClick:()=>{j(a,"user")}})),null!==t&&t.llmAvailable?r.createElement("button",{type:"button","data-testid":"skill-describe-"+a.name,onClick:()=>{(async e=>{const t=pa();b({entry:e,models:null,modelItem:null,draft:null,busy:!1,error:"",applied:!1,preferred:t}),k([]);const a=await ca("skills-models",{});if(!a.ok)return void b(e=>({...e,error:a.error||"unknown"}));const r=a.value.models??[];b(e=>({...e,models:r,modelItem:ma(r,a.value.current)}))})(a)},style:Object.assign({},ee(),{fontSize:"11px",padding:"3px 10px"})},"✨ "+e("skills.describe.button")):null):null,f=r.createElement("button",{type:"button","data-testid":"skill-header-"+a.name,"aria-expanded":String(n),onClick:()=>{return e=a.id,m(t=>t.includes(e)?t.filter(t=>t!==e):t.concat([e]));var e},style:{display:"flex",alignItems:"flex-start",gap:"8px",width:"100%",padding:0,border:0,background:"transparent",color:"inherit",textAlign:"left",cursor:"pointer"}},r.createElement("span",{"aria-hidden":"true",style:{flexShrink:0,fontSize:"11px",lineHeight:"20px",color:"var(--dsw-alias-label-tertiary)"}},n?"▾":"▸"),r.createElement("div",{style:{minWidth:0,flex:1}},i)),y=n?r.createElement("div",{"data-testid":"skill-body-"+a.name,style:{marginTop:"2px"}},r.createElement("div",{style:{display:"flex",gap:"12px",alignItems:"flex-start",justifyContent:"space-between"}},r.createElement("div",{style:{minWidth:0,flex:1}},l,d),v),c):null;return r.createElement("div",{key:a.id,"data-testid":"skill-entry-"+a.name,style:V},f,u,y)})(a);return null!==v&&v.entry.id===a.id?[n,U(a)]:[n]};return r.createElement("div",null,a.length>0?r.createElement("div",{"data-testid":"skills-invalid-group",style:{marginBottom:"12px"}},a.flatMap(i)):null,s.map(([t,a])=>0===a.length?null:r.createElement("div",{key:t,"data-testid":"skills-group-"+t.split(".").pop(),style:{marginBottom:"14px"}},r.createElement("div",{style:{fontSize:"12px",fontWeight:700,margin:"0 0 7px",color:"var(--dsw-alias-label-secondary)"}},e(t)+" · "+a.length),a.flatMap(i))))})())}function Ca(){return r.createElement(Da,null)}function za(e){if("number"!=typeof e||!Number.isFinite(e)||e<0)return"";if(0===e)return"0 B";const t=["B","KB","MB","GB"];let a=e,r=0;for(;a>=1024&&r<t.length-1;)a/=1024,r+=1;return(0===r?String(a):a.toFixed(1))+" "+t[r]}function Aa(e,t){if("number"!=typeof e||e<=0)return t("sessions.status.unavailableTime");try{return new Date(e).toLocaleString()}catch(t){return String(e)}}function Ta(e,t){if("string"!=typeof t){const e=t&&"object"==typeof t?t:{};return"string"==typeof e.message&&""!==e.message?e.message:"string"==typeof e.code&&""!==e.code?e.code:"unknown"}return"feature-disabled"===t?e("sessions.error.feature-disabled"):"session-not-found"===t?e("sessions.error.session-not-found"):"live-session-rejected"===t?e("sessions.error.live-session-rejected"):"session-not-archived"===t?e("sessions.error.session-not-archived"):"unknown-delete-plan"===t?e("sessions.error.unknown-delete-plan"):"invalid-session-ids"===t?e("sessions.error.invalid-session-ids"):"unarchive-unsupported"===t?e("sessions.error.unarchive-unsupported"):"network"===t?e("sessions.error.network"):t}const Ma={all:void 0,archived:void 0,deleted:void 0},Ia=new Map,Ha=[Symbol.for("react.memo"),Symbol.for("react.forward_ref"),Symbol.for("react.lazy")],Oa=e=>"function"==typeof e||null!==e&&"object"==typeof e&&"symbol"==typeof e.$$typeof&&Ha.includes(e.$$typeof);let Ra=null;const La=e=>{const t=e("sessions.md.copy"),a=e("sessions.md.copied"),r=e("sessions.md.footnotes");return{code:{copyLabel:"string"==typeof t&&""!==t?t:"Copy",copiedLabel:"string"==typeof a&&""!==a?a:"Copied"},footnotes:"string"==typeof r&&""!==r?r:"Footnotes"}};try{const t=e("@deepseek-ai/dsh-client-ui-primitives");let a=null==t?null:t.MarkdownText;if(Oa(a))Ra=a;else if(null!==a&&"object"==typeof a)if(a="function"==typeof a.default?a.default:"function"==typeof a.MarkdownText?a.MarkdownText:null,Oa(a))Ra=a;else{let e=String(typeof a);try{e+=" keys=["+Object.keys(a).join(",")+"]"}catch(e){}console.warn("[dsh-service-md] MarkdownText is an unexpected value ("+e+") — falling back to plain text")}else console.warn("[dsh-service-md] ui-primitives seed present, but MarkdownText unavailable ("+typeof a+") — falling back to plain text")}catch(e){console.warn("[dsh-service-md] ui-primitives require failed: "+(e&&e.message?e.message:String(e)))}function Na(){const e=Ee(),{useState:a,useEffect:n,useRef:s}=r,[i,o]=Fe.useEnabled(),d=Ma.archived,[c,u]=a(void 0!==d?d:null),[p,m]=a(void 0===d),[g,h]=a(""),[v,b]=a(Object.fromEntries(Ia)),f=s(new Set),[y,x]=a("archived"),[k,w]=a(!1),[E,S]=a("createdDesc"),[q,C]=a([]),[z,A]=a(!1),[T,I]=a([]),[H,O]=a(""),[R,L]=a(!1),[N,D]=a(!1),[$,W]=a(null),[j,B]=a(null),[_,P]=a(!1),[V,F]=a(""),[U,K]=a({}),G=s(null),Q=()=>y+"\0"+E+"\0"+H+"\0"+(R?1:0),[Y,J]=a(""),[Z,ae]=a(""),[re,ne]=a(""),[se,ie]=a(""),[oe,le]=a(""),[de,ce]=a(null),[ue,pe]=a(!1),[me,ge]=a(""),[he,ve]=a(0),[be,fe]=a(null),[ye,xe]=a(!1),[ke,we]=a(""),[Se,qe]=a(""),[Ce,ze]=a(""),[Ae,Te]=a(""),Me={color:"var(--dsw-alias-label-secondary)",fontSize:"12px",marginTop:"8px",lineHeight:1.5},Ie=ee(),He=Object.assign({},Ie,{background:"transparent",borderColor:"var(--dsw-alias-state-error-primary)",color:"var(--dsw-alias-state-error-primary)"}),Oe=Object.assign({},Ie,{background:"var(--dsw-alias-state-error-primary)",borderColor:"transparent",color:"var(--dsh-svc-brand-text)"}),Re=e=>"archived"===e?"archived":"deleted"===e?"deleted":"all",Le=s(y);Le.current=y;const Ne=async(t,a={})=>{const r=void 0!==t?t:Re(y),n=Ma[r],s=!a.force&&void 0!==n;if(s){if(u(n),h(""),m(!1),!0!==a.silent)return}else m(!0);try{const t=await l("sessions-list",{scope:r});t.ok?(Ma[r]=t.value,Re(Le.current)===r&&(u(t.value),h(""))):s&&a.silent||h(Ta(e,t.error||"unknown"))}catch(t){s&&a.silent||h(e("sessions.error.network"))}finally{s&&a.silent||m(!1)}};n(()=>{Ne("archived",{silent:!0})},[]),n(()=>{if(null===c)return;const e=Array.isArray(c.items)?c.items:[],t=[];for(const a of e){const e=a.id;void 0!==v[e]||f.current.has(e)||(f.current.add(e),t.push(e))}if(0===t.length)return;let a=!1;const r=async e=>{try{const t=await l("sessions-bytes",{ids:e});if(a)return;const r=t&&t.ok&&t.value&&"object"==typeof t.value.bytes?t.value.bytes:{};if(Object.keys(r).length>0){for(const t of e)void 0!==r[t]&&Ia.set(t,r[t]);b(t=>{const a={...t};for(const t of e)void 0!==r[t]&&(a[t]=r[t]);return a})}}catch(e){}finally{if(!a)for(const t of e)f.current.delete(t)}};for(let e=0;e<t.length;e+=100)r(t.slice(e,e+100));return()=>{a=!0;for(const e of t)f.current.delete(e)}},[c]),n(()=>{if("deleted"!==y){if(""!==H.trim())return t.timer.timeout(()=>{(async e=>{if(""!==e.trim()){D(!0);try{const t=await l("sessions-search",{query:e.trim(),scope:R?"archived":"all"});t.ok?W(t.value):W({available:!0,query:e,scope:"all",hits:[],error:t.error})}catch(t){W({available:!0,query:e,scope:R?"archived":"all",hits:[],error:"network"})}finally{D(!1)}}else W(null)})(H)},300);W(null)}},[H,R,y]);const De=(e,t,a,r,n)=>{A(!1),I([]),ie(""),le(""),fe(null),we("");const s=function(e){let t=null!=e&&e.currentTarget?e.currentTarget:null;const a="undefined"!=typeof document?document:null;for(;null!=t&&1===t.nodeType;){let e="";if(null!==a&&a.defaultView&&"function"==typeof a.defaultView.getComputedStyle)try{const r=a.defaultView.getComputedStyle(t);e=r?String(r.overflowY||""):""}catch(e){}else t.style&&(e=String(t.style.overflowY||t.style.overflow||""));if(("auto"===e||"scroll"===e||"overlay"===e)&&"number"==typeof t.scrollHeight&&"number"==typeof t.clientHeight&&t.scrollHeight>t.clientHeight+1)return t;t=t.parentNode}return null}(r);if(null!==s&&(G.current={key:Q(),container:s,scrollTop:s.scrollTop}),K({}),B({sessionId:e,view:t||"events",cursor:void 0,items:[],total:0,hitItems:a||null,loadedTitle:"",centerSeq:void 0}),F(""),P(!1),"search"===(t||"events")&&Array.isArray(a)&&a.length>0){const t=Number.isSafeInteger(n)?Number(n):Number(a[0].seq);We(e,Number.isSafeInteger(t)?t:0)}else $e(e,void 0,t||"events")},$e=async(t,a,r)=>{P(!0);try{const n=await l("sessions-view",{id:t,cursor:a});n.ok?(B(e=>{const s=null===e?{}:e,i=void 0===a?n.value.items||[]:[...s.items||[],...n.value.items||[]];return{...s,sessionId:t,view:r||s.view||"events",cursor:n.value.nextCursor,items:i,total:n.value.total,loadedTitle:s.loadedTitle||(n.value.session&&n.value.session.id,"")}}),F("")):F(Ta(e,n.error||"unknown"))}catch(t){F(e("sessions.error.network"))}finally{P(!1)}},We=async(t,a)=>{P(!0),F("");try{const r=await l("sessions-view",{id:t,center:a});r.ok?(B(e=>{const n=null===e?{}:e;return{...n,sessionId:t,view:"search",cursor:r.value.nextCursor,items:r.value.items||[],total:r.value.total,centerSeq:Number.isSafeInteger(r.value.centerSeq)?r.value.centerSeq:a,loadedTitle:n.loadedTitle||""}}),F("")):F(Ta(e,r.error||"unknown"))}catch(t){F(e("sessions.error.network"))}finally{P(!1)}},je=async t=>{try{const a=await l("sessions-export",{id:t});if(!a.ok)return{ok:!1,error:Ta(e,a.error||"unknown")};const r=a.value.url,n=await fetch(r,{method:"HEAD"});if(!n.ok)return{ok:!1,error:e("sessions.error.export-failed",{error:"HTTP "+n.status})};const s=document.createElement("a");return s.href=r,s.download="dsh-session-"+t.replace(/[^A-Za-z0-9_-]/g,"_")+".zip",s.click(),{ok:!0}}catch(t){return{ok:!1,error:e("sessions.error.network")}}},Be=async e=>{J(e),ae("");const t=await je(e);return t.ok||ae(t.error),J(""),t},_e=async t=>{try{const a=await l("sessions-archive",{id:t});return a.ok?((e=>{const t=Ma.all;void 0!==t&&Array.isArray(t.items)&&(Ma.all={...t,items:t.items.map(t=>t.id===e?{...t,archived:!0}:t)});const a=Ma.archived;if(void 0!==a&&Array.isArray(a.items)){const r=a.items.some(t=>t.id===e),n=t?.items?.find(t=>t.id===e);Ma.archived=r?{...a,items:a.items.map(t=>t.id===e?{...t,archived:!0}:t)}:void 0!==n?{...a,items:[{...n,archived:!0},...a.items]}:a}u(t=>null!==t&&Array.isArray(t.items)?{...t,items:t.items.map(t=>t.id===e?{...t,archived:!0}:t)}:t)})(t),{ok:!0}):{ok:!1,error:Ta(e,a.error||"unknown")}}catch(t){return{ok:!1,error:e("sessions.error.network")}}},Pe=async t=>{try{const a=await l("sessions-unarchive",{id:t});return a.ok?((e=>{const t=Ma.all;void 0!==t&&Array.isArray(t.items)&&(Ma.all={...t,items:t.items.map(t=>t.id===e?{...t,archived:!1}:t)});const a=Ma.archived;void 0!==a&&Array.isArray(a.items)&&(Ma.archived={...a,items:a.items.filter(t=>t.id!==e)}),u(t=>null!==t&&Array.isArray(t.items)?"archived"===Le.current?{...t,items:t.items.filter(t=>t.id!==e)}:{...t,items:t.items.map(t=>t.id===e?{...t,archived:!1}:t)}:t)})(t),{ok:!0}):{ok:!1,error:Ta(e,a.error||"unknown")}}catch(t){return{ok:!1,error:e("sessions.error.network")}}},Ve=e=>{const t=e?.id??"";if(""===t)return;const a=null!==c&&Array.isArray(c.items)?c.items.find(e=>e.id===t):void 0,r={id:t,title:"string"==typeof e?.title?e.title:a?.title??"",cwd:e?.cwd??a?.cwd??null,deletedAt:Date.now()};for(const e of["all","archived"]){const a=Ma[e];void 0!==a&&Array.isArray(a.items)&&(Ma[e]={...a,items:a.items.filter(e=>e.id!==t)})}const n=Ma.deleted;void 0!==n&&(Ma.deleted={...n,deleted:[r,...(Array.isArray(n.deleted)?n.deleted:[]).filter(e=>e.id!==t)]}),Ia.delete(t),u(e=>{if(null===e)return e;const a=Array.isArray(e.items)?e.items:[];return{...e,items:a.filter(e=>e.id!==t),deleted:[r,...(Array.isArray(e.deleted)?e.deleted:[]).filter(e=>e.id!==t)]}}),b(e=>{const a={...e};return delete a[t],a}),f.current.delete(t)};n(()=>{he>0&&B(null)},[he]),n(()=>{if(null!==j)return;const e=G.current;if(G.current=null,null===e)return;if(e.key!==Q())return;if(null===e.container||void 0===e.container)return;const t="number"==typeof e.scrollTop?e.scrollTop:0;try{"number"==typeof e.container.scrollTop&&(e.container.scrollTop=t)}catch(e){}},[j]);const Ue=null!==j&&"search"===j.view?j.centerSeq:null,Ke=null!==j&&"search"===j.view&&Array.isArray(j.items)?j.items.length:0;n(()=>{if(null!==Ue&&"number"==typeof Ue)return function(e){if("undefined"==typeof document||null===document)return()=>{};try{const a=document.querySelector('[data-testid="sessions-jump-target-'+e+'"]');if(null==a)return()=>{};try{a.scrollIntoView({behavior:"smooth",block:"center"})}catch(e){try{a.scrollIntoView()}catch(e){}}if(a.classList&&"function"==typeof a.classList.add){a.classList.add("dshsv-locate-flash");const e=t.timer.timeout(()=>{try{a.classList&&"function"==typeof a.classList.remove&&a.classList.remove("dshsv-locate-flash")}catch(e){}},2e3);return()=>{e();try{a.classList&&"function"==typeof a.classList.remove&&a.classList.remove("dshsv-locate-flash")}catch(e){}}}}catch(e){}return()=>{}}(Ue)},[Ue,Ke]);const Ge=(()=>{if(null===c)return[];if("deleted"===y)return(Array.isArray(c.deleted)?c.deleted:[]).slice().sort((e,t)=>(t.deletedAt||0)-(e.deletedAt||0)).map(e=>({...e,_deleted:!0,archived:!0}));let e=(Array.isArray(c.items)?c.items:[]).slice();return k&&(e=e.filter(e=>!0===e.subagent)),"createdAsc"===E?e.sort((e,t)=>(e.createdAt||0)-(t.createdAt||0)):"title"===E?e.sort((e,t)=>String(e.title||"").localeCompare(String(t.title||""))):"project"===E?e.sort((e,t)=>String(e.cwd||"").localeCompare(String(t.cwd||""))||(t.createdAt||0)-(e.createdAt||0)):e.sort((e,t)=>(t.createdAt||0)-(e.createdAt||0)),e})(),Qe=""!==H.trim()?[]:"deleted"===y?Ge.map(e=>e.id):Ge.filter(e=>!0!==e._deleted).map(e=>e.id),Ye=new Set(T),Je=Ge.filter(e=>Ye.has(e.id)),Ze=Je.filter(e=>!0!==e._deleted),Xe=Je.filter(e=>!0!==e._deleted&&!0!==e.live&&!0!==e.archived),et=Je.filter(e=>!0!==e._deleted&&!0===e.archived),tt=Je.filter(e=>!0!==e._deleted&&!0!==e.live&&!0===e.archived),at=Je.filter(e=>!0===e._deleted),rt=Qe.length>0&&Qe.every(e=>Ye.has(e));n(()=>{if(!z)return;const e=new Set(Qe);I(t=>{const a=t.filter(t=>e.has(t));return a.length===t.length?t:a})},[c,y,z,k]);const nt=()=>{A(!1),I([]),ie(""),le("")},st=e=>{I(t=>t.includes(e)?t.filter(t=>t!==e):[...t,e])},it="deleted"===y?[]:Ge.filter(e=>!0===e.subagent).map(e=>e.id),ot=t=>{const a=!0===t._deleted,n=t.id,s=a?t.title||e("sessions.row.noTitle"):""!==t.title?t.title:e("sessions.row.noTitle"),i=!0===t.live,o=a||!0===t.archived,d=Ye.has(n),u=(()=>{const e=v[n];return"number"==typeof e&&e>0?za(e):null})(),p=[i?e("sessions.row.live"):o?e("sessions.row.archived"):null,a?e("sessions.row.deleted"):null,t.cwd?e("sessions.detail.cwd",{cwd:t.cwd}):null,a?t.deletedAt?Aa(t.deletedAt,e):null:u].filter(Boolean),m=[];return a?m.push(r.createElement("button",{key:"clear",type:"button","data-testid":"sessions-row-clear-"+n,style:He,onClick:()=>{(e=>{null!==be||ye||(we(""),fe({batch:!1,items:[{id:e.id,title:e.title}]}))})(t)}},e("sessions.action.clear"))):(m.push(r.createElement("button",{key:"view",type:"button","data-testid":"sessions-row-view-"+n,style:Ie,onClick:e=>De(n,"events",null,e)},e("sessions.action.view"))),m.push(r.createElement("button",{key:"export",type:"button","data-testid":"sessions-row-export-"+n,style:Ie,disabled:Y===n,onClick:()=>{Be(n)}},e(Y===n?"sessions.detail.exporting":"sessions.action.export"))),i||o||m.push(r.createElement("button",{key:"archive",type:"button","data-testid":"sessions-row-archive-"+n,style:Ie,disabled:Se===n,onClick:()=>{(async e=>{qe(e),Te("");const t=await _e(e);t.ok||Te(t.error),qe("")})(n)}},e(Se===n?"sessions.status.working":"sessions.action.archive"))),o&&!1!==c?.canUnarchive&&m.push(r.createElement("button",{key:"unarchive",type:"button","data-testid":"sessions-row-unarchive-"+n,style:Ie,disabled:Ce===n,onClick:()=>{(async e=>{ze(e),Te("");const t=await Pe(e);t.ok||Te(t.error),ze("")})(n)}},e(Ce===n?"sessions.status.working":"sessions.action.unarchive"))),!i&&o&&m.push(r.createElement("button",{key:"delete",type:"button","data-testid":"sessions-row-delete-"+n,style:He,onClick:()=>{(async t=>{if(null===de&&!ue){ge("");try{const a=await l("sessions-delete-plan",{id:t});a.ok?ce(a.value):ge(Ta(e,a.error||"unknown"))}catch(t){ge(e("sessions.error.network"))}}})(n)}},e("sessions.action.delete")))),r.createElement("div",{key:n,"data-testid":"sessions-row-"+n,"data-selected":z&&d?"true":void 0,onClick:z?()=>st(n):void 0,style:{display:"flex",alignItems:"center",justifyContent:"space-between",gap:"10px",padding:z?"9px 2px 9px 8px":"9px 2px",borderBottom:"1px solid var(--dsh-svc-border)",background:"transparent",borderRadius:"4px",boxShadow:z&&d?"inset 3px 0 0 var(--dsw-alias-brand-primary)":"none",cursor:z?"pointer":"default"}},r.createElement("div",{style:{display:"flex",alignItems:"center",gap:"9px",minWidth:0,flex:"1 1 auto"}},z?r.createElement("input",{type:"checkbox","data-testid":"sessions-select-"+n,"aria-label":e("sessions.batch.selectRow",{title:s}),checked:d,onClick:e=>e.stopPropagation(),onChange:()=>st(n),style:{width:"16px",height:"16px",flexShrink:0,accentColor:"var(--dsw-alias-brand-primary)",cursor:"pointer"}}):null,r.createElement("div",{style:{minWidth:0}},r.createElement("div",{style:{display:"flex",alignItems:"center",gap:"6px",flexWrap:"wrap"}},r.createElement("span",{style:{fontSize:"13px",fontWeight:600,color:"var(--dsw-alias-label-primary)",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"}},s),i?r.createElement("span",{"data-testid":"sessions-tag-live-"+n,style:te("success")},e("sessions.row.live")):null,o?r.createElement("span",{"data-testid":"sessions-tag-archived-"+n,style:te("warning")},e("sessions.row.archived")):null,a?r.createElement("span",{style:te("danger")},e("sessions.row.deleted")):null,a||!0!==t.subagent?null:r.createElement("span",{"data-testid":"sessions-tag-subagent-"+n,style:te("info")},e("sessions.row.subagent"))),r.createElement("div",{"data-testid":"sessions-meta-"+n,style:{fontSize:"11.5px",color:"var(--dsw-alias-label-tertiary)",marginTop:"3px"}},p.join(" · ")))),z?null:r.createElement("div",{style:{display:"flex",alignItems:"center",gap:"6px",flexShrink:0,flexWrap:"wrap",justifyContent:"flex-end"}},...m))},lt=(t,a)=>{const n=!0===t.noise,s="string"==typeof t.text&&""!==t.text?r.createElement("div",{"data-testid":"sessions-event-text-"+t.seq,style:{marginTop:"4px"}},null!==Ra?r.createElement(Ra,{text:t.text,labels:La(e)}):r.createElement("div",{style:{fontSize:"12px",lineHeight:1.55,color:"var(--dsw-alias-label-primary)",whiteSpace:"pre-wrap",wordBreak:"break-word"}},t.text)):null;return r.createElement("div",{key:String(t.seq),"data-testid":"sessions-event-"+t.seq,style:{padding:"8px 10px",borderRadius:"8px",border:"1px solid var(--dsw-alias-border-l1)",background:n?"transparent":"var(--dsw-alias-bg-layer-3)",marginBottom:"5px"}},r.createElement("div",{style:{display:"flex",alignItems:"center",gap:"8px",fontSize:"11px",color:"var(--dsw-alias-label-tertiary)"}},r.createElement("span",{"data-testid":"sessions-event-type-"+t.seq,style:{fontWeight:600,color:n?"inherit":"var(--dsw-alias-label-secondary)"}},n?e("sessions.detail.noise"):t.type),t.time?r.createElement("span",null,Aa(t.time,e)):null),s)};return r.createElement("div",null,r.createElement("div",{style:{fontSize:"14px",fontWeight:700,margin:"0 0 8px",color:"var(--dsw-alias-label-primary)"}},e("sessions.title")),r.createElement("div",{"data-testid":"sessions-nav-toggle",style:{margin:"2px 0 8px"}},r.createElement("div",{style:{display:"flex",alignItems:"center",justifyContent:"space-between",gap:"12px"}},r.createElement("div",{style:{display:"flex",flexDirection:"column",gap:"2px"}},r.createElement("span",{style:{fontSize:"13px",color:"var(--dsw-alias-label-primary)"}},e("sessions.navToggle"))),r.createElement("button",{type:"button",role:"switch","data-testid":"sessions-nav-switch","aria-checked":String(i),onClick:()=>o(!i),style:{width:"34px",height:"20px",...M("10px"),padding:0,flexShrink:0,position:"relative",border:"1px solid "+(i?"var(--dsw-alias-state-success-primary)":"var(--dsw-alias-border-l2)"),background:i?"var(--dsw-alias-state-success-primary)":"var(--dsw-alias-bg-layer-2)",cursor:"pointer",lineHeight:0}},r.createElement("span",{style:{position:"absolute",top:"1px",left:i?"15px":"1px",width:"16px",height:"16px",...M("50%"),background:i?"#fff":"var(--dsw-alias-label-tertiary)"}})))),r.createElement("div",{style:{display:"flex",alignItems:"center",gap:"8px",flexWrap:"wrap",margin:"0 0 10px"}},["all","archived","deleted"].map(t=>r.createElement("button",{key:t,type:"button","data-testid":"sessions-filter-"+t,style:{...Ie,background:y===t?"var(--dsh-svc-tab-active-bg)":"transparent",color:y===t?"var(--dsh-svc-tab-active-text)":"var(--dsw-alias-label-primary)",fontWeight:y===t?650:400},onClick:()=>(e=>{e!==y&&(x(e),A(!1),I([]),ie(""),le(""),O(""),W(null),B(null),fe(null),we(""),Ne(e))})(t)},e("sessions.filter."+t))),r.createElement("select",{"data-testid":"sessions-sort",style:{fontSize:"12px",padding:"4px 8px",borderRadius:"6px",border:"1px solid var(--dsw-alias-border-l2)",background:"var(--dsw-alias-bg-layer-2)",color:"var(--dsw-alias-label-primary)",maxWidth:"100%"},value:E,onChange:e=>S(e.target.value)},r.createElement("option",{value:"createdDesc"},e("sessions.sort.createdDesc")),r.createElement("option",{value:"createdAsc"},e("sessions.sort.createdAsc")),r.createElement("option",{value:"title"},e("sessions.sort.title")),r.createElement("option",{value:"project"},e("sessions.sort.project"))),r.createElement("button",{type:"button","data-testid":"sessions-refresh","data-variant":"neutral",style:Object.assign({},X("neutral"),{minHeight:"28px",padding:"4px 10px",fontSize:"12px"}),onClick:()=>{Ne(void 0,{force:!0})}},e("sessions.refresh")),null===j&&""===H.trim()?r.createElement("button",{type:"button","data-testid":"sessions-batch-toggle","data-variant":z?"primary":"neutral",style:Object.assign({},X(z?"primary":"neutral"),{minHeight:"28px",padding:"4px 10px",fontSize:"12px"}),onClick:z?nt:()=>{A(!0),I([]),ie(""),le("")}},e(z?"sessions.batch.exit":"sessions.batch.enter")):null),null===j&&z?r.createElement("div",{"data-testid":"sessions-batch-bar",style:{display:"flex",alignItems:"center",gap:"8px",flexWrap:"wrap",margin:"0 0 10px",padding:"8px 10px",border:"1px solid var(--dsw-alias-border-l1)",borderRadius:"8px",background:"var(--dsw-alias-bg-layer-3)"}},r.createElement("button",{type:"button","data-testid":"sessions-select-all",style:Ie,disabled:0===Qe.length||""!==re||ue||ye,onClick:()=>{I(rt?[]:Qe.slice())}},e(rt?"sessions.batch.clearAll":"sessions.batch.selectAll")),"deleted"!==y&&it.length>0?r.createElement("button",{type:"button","data-testid":"sessions-batch-select-subagents",style:Ie,disabled:""!==re||ue||ye,onClick:()=>{I(e=>{const t=it.filter(t=>!e.includes(t));return 0===t.length?e:[...e,...t]})}},e("sessions.batch.selectSubagents")):null,r.createElement("span",{"data-testid":"sessions-selected-count",style:{fontSize:"12px",color:"var(--dsw-alias-label-secondary)",marginRight:"auto"}},e("sessions.batch.selected",{count:T.length})),"deleted"===y?r.createElement("button",{type:"button","data-testid":"sessions-batch-clear",style:He,disabled:0===at.length||""!==re||ue||ye,onClick:()=>{null!==be||ye||0===at.length||(we(""),fe({batch:!0,items:at.map(e=>({id:e.id,title:e.title}))}))}},e("sessions.batch.clear",{count:at.length})):[r.createElement("button",{key:"export",type:"button","data-testid":"sessions-batch-export",style:Ie,disabled:0===Ze.length||""!==re||ue||ye,onClick:()=>{(async()=>{if(""!==re||0===Ze.length)return;ne("export"),ie(""),le("");let t=0,a="";for(const e of Ze){const r=await je(e.id);r.ok?t+=1:""===a&&(a=r.error)}""===a?ie(e("sessions.batch.completed",{action:e("sessions.action.export"),count:t})):le(e("sessions.batch.failed",{action:e("sessions.action.export"),done:t,total:Ze.length,error:a})),ne("")})()}},"export"===re?e("sessions.status.working"):e("sessions.batch.export",{count:Ze.length})),r.createElement("button",{key:"archive",type:"button","data-testid":"sessions-batch-archive",style:Ie,disabled:0===Xe.length||""!==re||ue||ye,onClick:()=>{(async()=>{if(""!==re||0===Xe.length)return;ne("archive"),ie(""),le("");let t=0,a="";const r=Xe.map(e=>e.id),n=[];for(const e of r){const r=await _e(e);r.ok?(t+=1,n.push(e)):""===a&&(a=r.error)}n.length>0&&I(e=>e.filter(e=>!n.includes(e))),""===a?ie(e("sessions.batch.completed",{action:e("sessions.action.archive"),count:t})):le(e("sessions.batch.failed",{action:e("sessions.action.archive"),done:t,total:r.length,error:a})),ne("")})()}},"archive"===re?e("sessions.status.working"):e("sessions.batch.archive",{count:Xe.length})),!1!==c?.canUnarchive?r.createElement("button",{key:"unarchive",type:"button","data-testid":"sessions-batch-unarchive",style:Ie,disabled:0===et.length||""!==re||ue||ye,onClick:()=>{(async()=>{if(""!==re||0===et.length)return;ne("unarchive"),ie(""),le("");let t=0,a="";const r=et.map(e=>e.id),n=[];for(const e of r){const r=await Pe(e);r.ok?(t+=1,n.push(e)):""===a&&(a=r.error)}n.length>0&&I(e=>e.filter(e=>!n.includes(e))),""===a?ie(e("sessions.batch.completed",{action:e("sessions.action.unarchive"),count:t})):le(e("sessions.batch.failed",{action:e("sessions.action.unarchive"),done:t,total:r.length,error:a})),ne("")})()}},"unarchive"===re?e("sessions.status.working"):e("sessions.batch.unarchive",{count:et.length})):null,r.createElement("button",{key:"delete",type:"button","data-testid":"sessions-batch-delete",style:He,disabled:0===tt.length||""!==re||ue||ye,onClick:()=>{(async()=>{if(""!==re||null!==de||0===tt.length)return;ne("delete-plan"),ie(""),le("");const t=[];let a="";for(const r of tt)try{const n=await l("sessions-delete-plan",{id:r.id});n.ok?t.push(n.value):""===a&&(a=Ta(e,n.error||"unknown"))}catch(t){""===a&&(a=e("sessions.error.network"))}ne(""),""===a&&t.length===tt.length?ce({batch:!0,plans:t,sessions:t.map(e=>e.session),consequences:["deletes-session-log"]}):le(e("sessions.batch.failed",{action:e("sessions.action.delete"),done:t.length,total:tt.length,error:a||e("sessions.error.network")}))})()}},"delete-plan"===re?e("sessions.status.working"):e("sessions.batch.delete",{count:tt.length}))]):null,null===j&&"deleted"!==y?r.createElement("div",{style:{display:"flex",gap:"8px",alignItems:"center",marginBottom:"10px",flexWrap:"wrap"}},r.createElement("input",{"data-testid":"sessions-search-input",type:"text",placeholder:e("sessions.search.placeholder"),value:H,onChange:e=>{z&&nt(),O(e.target.value)},style:{fontSize:"12px",padding:"6px 10px",borderRadius:"7px",border:"1px solid var(--dsw-alias-border-l2)",background:"var(--dsw-alias-bg-layer-2)",color:"var(--dsw-alias-label-primary)",width:"100%",boxSizing:"border-box"}}),r.createElement("label",{style:{display:"flex",alignItems:"center",gap:"5px",fontSize:"12px",color:"var(--dsw-alias-label-secondary)",whiteSpace:"nowrap"}},r.createElement("input",{type:"checkbox","data-testid":"sessions-search-archived",checked:R,onChange:e=>L(e.target.checked)}),e("sessions.search.archivedOnly")),r.createElement("label",{style:{display:"flex",alignItems:"center",gap:"5px",fontSize:"12px",color:"var(--dsw-alias-label-secondary)",whiteSpace:"nowrap"}},r.createElement("input",{type:"checkbox","data-testid":"sessions-filter-subagent",checked:k,onChange:e=>w(e.target.checked)}),e("sessions.filter.subagent"))):null,""!==Ae?r.createElement("p",{style:{...Me,color:"var(--dsw-alias-state-error-primary)"}},Ae+(!1!==c?.canUnarchive?"":" · "+e("sessions.oneWayHint"))):null,""!==Z?r.createElement("p",{style:{...Me,color:"var(--dsw-alias-state-error-primary)"}},Z):null,""!==se?r.createElement("p",{"data-testid":"sessions-batch-result",style:{...Me,color:"var(--dsw-alias-state-success-primary)"}},se):null,""!==oe?r.createElement("p",{"data-testid":"sessions-batch-error",style:{...Me,color:"var(--dsw-alias-state-error-primary)"}},oe):null,(()=>{const t=null!==c&&Array.isArray(c.items)?c.items:[];return k&&"deleted"!==y&&t.length>0&&t.every(e=>void 0===e.subagent)?r.createElement("p",{"data-testid":"sessions-subagent-legacy-hint",style:{...Me,color:"var(--dsh-svc-warning)"}},e("sessions.subagent.hostLegacy")):null})(),(()=>{if(null===j)return null;const a=null!==c&&Array.isArray(c.items)?c.items.find(e=>e.id===j.sessionId):void 0,n=""!==H&&"search"===j.view&&null!==$?$.hits.find(e=>e.sessionId===j.sessionId)?.title||"":void 0!==a&&""!==a.title?a.title:"",s=null!==c&&Array.isArray(c.items)?c.items.find(e=>e.id===j.sessionId):void 0,i="search"===j.view&&Array.isArray(j.hitItems)?j.hitItems.map(e=>Number(e.seq)).filter(e=>Number.isSafeInteger(e)):[],o="search"===j.view&&"number"==typeof j.centerSeq?i.indexOf(j.centerSeq):-1,l=o>0?i[o-1]:void 0,d=o>=0&&o<i.length-1?i[o+1]:void 0,u=new Set(i),p={noise:{testId:"sessions-noisewall-",countKey:"sessions.detail.noiseBlock",collapseKey:"sessions.detail.noiseCollapse"},tool:{testId:"sessions-toolwall-",countKey:"sessions.detail.toolBlock",collapseKey:"sessions.detail.toolCollapse"}},m=(t,a)=>{const n=(t,n)=>null!==a&&a.has(Number(t.seq))?r.createElement("div",{key:"jump-"+t.seq,"data-testid":"sessions-jump-target-"+t.seq,style:{borderRadius:"8px",border:"1px solid rgba(198,128,0,0.55)",background:"rgba(198,128,0,0.10)",padding:"6px 8px",marginBottom:"6px"}},r.createElement("div",{"data-testid":"sessions-jump-badge-"+t.seq,style:{fontSize:"10.5px",fontWeight:700,color:"var(--dsw-alias-state-warn-primary)",marginBottom:"3px"}},e("sessions.hit.badge")),lt(t)):lt(t);return function(e){const t=[],a=Array.isArray(e)?e:[];for(let e=0;e<a.length;e+=1){const r=a[e],n=!0===r.noise?"noise":!0===r.tool?"tool":null;if(null===n){t.push(r);continue}const s=t[t.length-1];void 0!==s&&s._block===n?(s.count+=1,s.lastSeq=r.seq,s.lastIndex=e):t.push({_block:n,count:1,firstSeq:r.seq,lastSeq:r.seq,firstIndex:e,lastIndex:e})}return t}(t).map((s,i)=>{if(void 0!==s._block){const i=p[s._block],o=Array.isArray(t)?t.slice(s.firstIndex,s.lastIndex+1):[],l=U[s.firstSeq],d=null!==a&&o.some(e=>a.has(Number(e.seq))),c=void 0===l?d:!0===l;return r.createElement("div",{key:s._block+"-"+s.firstSeq,"data-testid":i.testId+s.firstSeq,style:{padding:"6px 10px",borderRadius:"8px",border:"1px solid var(--dsw-alias-border-l1)",background:"transparent",marginBottom:"5px"}},r.createElement("button",{type:"button","data-testid":i.testId+"toggle-"+s.firstSeq,style:{...Ie,border:0,padding:0,color:"var(--dsw-alias-label-tertiary)",fontSize:"11px"},onClick:()=>((e,t)=>K(a=>({...a,[e]:!t})))(s.firstSeq,c)},e(c?"sessions.glyph.collapse":"sessions.glyph.expand")+" "+e(c?i.collapseKey:i.countKey,{count:s.count})),c&&o.length>0?r.createElement("div",{style:{marginTop:"6px"}},o.map(e=>n(e))):null)}return n(s)})};return r.createElement("div",{"data-testid":"sessions-detail"},r.createElement("div",{style:{display:"flex",alignItems:"center",gap:"8px",flexWrap:"wrap",marginBottom:"10px"}},r.createElement("button",{type:"button","data-testid":"sessions-detail-back",style:Ie,onClick:()=>B(null)},e("sessions.glyph.back")+" "+e("sessions.detail.back")),r.createElement("span",{style:{fontSize:"14px",fontWeight:700,color:"var(--dsw-alias-label-primary)",minWidth:0}},""!==n?n:e("sessions.row.noTitle")),s?.archived?r.createElement("span",{title:e("sessions.detail.archiveDisabled"),style:{fontSize:"11px",color:"var(--dsw-alias-label-tertiary)"}},e("sessions.detail.archiveDisabled")):r.createElement("button",{type:"button","data-testid":"sessions-detail-open",style:Ie,onClick:()=>{try{(t.get?.("uiWorkspace")?.openSession??t.sessions?.open)?.(j.sessionId)}catch(e){}}},e("sessions.detail.open")),r.createElement("button",{type:"button","data-testid":"sessions-detail-export",style:Ie,disabled:Y===j.sessionId,onClick:()=>{Be(j.sessionId)}},Y===j.sessionId?e("sessions.detail.exporting"):e("sessions.detail.exportAll"))),"search"===j.view&&null!==j.hitItems?r.createElement("div",{"data-testid":"sessions-jump-view",style:{marginBottom:"10px"}},r.createElement("div",{style:{display:"flex",alignItems:"center",gap:"6px",flexWrap:"wrap",marginBottom:"6px"}},r.createElement("button",{type:"button","data-testid":"sessions-detail-return-search",style:Ie,onClick:()=>B(null)},e("sessions.glyph.back")+" "+e("sessions.hit.return")),r.createElement("span",{style:{fontSize:"11.5px",color:"var(--dsw-alias-label-tertiary)"}},e("sessions.hit.inSession",{count:Array.isArray(j.hitItems)?j.hitItems.length:0})),r.createElement("button",{type:"button","data-testid":"sessions-jump-prev",style:Ie,disabled:void 0===l||_,onClick:()=>{void 0!==l&&We(j.sessionId,l)}},e("sessions.hit.prev")),r.createElement("button",{type:"button","data-testid":"sessions-jump-next",style:Ie,disabled:void 0===d||_,onClick:()=>{void 0!==d&&We(j.sessionId,d)}},e("sessions.hit.next"))),r.createElement("div",{style:{display:"flex",gap:"4px",flexWrap:"wrap",marginBottom:"8px"}},i.map(e=>r.createElement("button",{key:e,type:"button","data-testid":"sessions-jump-chip-"+e,style:{...Ie,padding:"1px 8px",fontSize:"11px",...M("999px"),background:e===j.centerSeq?"var(--dsh-svc-tab-active-bg)":"transparent",color:e===j.centerSeq?"var(--dsh-svc-tab-active-text)":"var(--dsw-alias-label-secondary)"},onClick:()=>{We(j.sessionId,e)}},"#"+e))),_&&0===j.items.length?r.createElement("p",{style:Me},e("sessions.status.loading")):null,m(j.items,u),void 0!==j.cursor&&j.items.length>0?r.createElement("button",{type:"button","data-testid":"sessions-detail-more",style:Ie,disabled:_,onClick:()=>{$e(j.sessionId,j.cursor,j.view)}},e("sessions.detail.loadMore",{remaining:Math.max(0,j.total-j.items.length)})):null,void 0===j.cursor&&j.items.length>0?r.createElement("p",{style:Me},e("sessions.detail.noMore",{total:j.total})):null):null,""!==V?r.createElement("p",{style:{...Me,color:"var(--dsw-alias-state-error-primary)"}},V):null,"search"!==j.view?m(j.items,null):null,"search"!==j.view&&void 0!==j.cursor?r.createElement("button",{type:"button","data-testid":"sessions-detail-more",style:Ie,disabled:_,onClick:()=>{$e(j.sessionId,j.cursor,j.view)}},e("sessions.detail.loadMore",{remaining:Math.max(0,j.total-j.items.length)})):null,"search"!==j.view&&void 0===j.cursor&&j.items.length>0?r.createElement("p",{style:Me},e("sessions.detail.noMore",{total:j.total})):null)})()??(()=>{if(p)return r.createElement("p",{style:Me},e("sessions.status.loading"));if(""!==g)return r.createElement("p",{"data-testid":"sessions-error",style:{...Me,color:"var(--dsw-alias-state-error-primary)"}},g);if(""!==H.trim()&&"deleted"!==y)return null===$?r.createElement("p",{style:Me},e(N?"sessions.status.loading":"sessions.search.placeholder")):$.error?r.createElement("p",{style:{...Me,color:"var(--dsw-alias-state-error-primary)"}},Ta(e,$.error)):0===$.hits.length?r.createElement("p",{style:Me},e("sessions.empty.search",{query:H})):$.hits.map(t=>r.createElement("div",{key:t.sessionId,"data-testid":"sessions-hit-"+t.sessionId,style:{padding:"9px 10px",borderRadius:"8px",border:"1px solid var(--dsw-alias-border-l1)",background:"var(--dsw-alias-bg-layer-3)",marginBottom:"6px"}},r.createElement("button",{type:"button","data-testid":"sessions-hit-open-"+t.sessionId,style:{...Ie,border:0,padding:0,textAlign:"left",display:"inline",maxWidth:"100%"},onClick:e=>De(t.sessionId,"search",t.items,e)},r.createElement("span",{style:{fontWeight:600,color:"var(--dsw-alias-label-primary)"}},""!==t.title?t.title:e("sessions.row.noTitle")),r.createElement("span",{style:{color:"var(--dsw-alias-label-secondary)",marginLeft:"6px",fontSize:"11.5px"}},e("sessions.hit.title",{count:t.items.length}))),t.items.length>1?r.createElement("div",{style:{display:"flex",gap:"4px",flexWrap:"wrap",marginTop:"5px"}},t.items.map(e=>r.createElement("button",{key:e.seq,type:"button","data-testid":"sessions-hit-seq-"+t.sessionId+"-"+e.seq,style:{...Ie,padding:"1px 8px",fontSize:"11px",...M("999px"),color:"var(--dsw-alias-label-tertiary)"},onClick:a=>De(t.sessionId,"search",t.items,a,Number(e.seq))},"#"+e.seq))):null,t.items.slice(0,1).map((e,a)=>r.createElement("div",{key:a,"data-testid":"sessions-hit-snippet-"+t.sessionId,style:{fontSize:"12px",color:"var(--dsw-alias-label-secondary)",marginTop:"5px",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"}},function(e,t,a){const n="string"==typeof e?e:"",s="string"==typeof t?t.trim().split(/\s+/).filter(Boolean):[];if(""===n||0===s.length)return n;let i;try{i=new RegExp(s.map(e=>e.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")).join("\\s+"),"gi")}catch(e){return n}const o=[];let l,d=0,c=0;for(;null!==(l=i.exec(n));)l.index>d&&o.push(n.slice(d,l.index)),o.push(r.createElement("mark",{key:a+"-"+c,"data-testid":a+"-"+c,style:{background:"rgba(198,128,0,0.24)",color:"inherit",borderRadius:"3px",padding:"0 1px"}},l[0])),d=l.index+l[0].length,c+=1;return 0===o.length?n:(d<n.length&&o.push(n.slice(d)),o)}(e.snippet,$.query||H,"sessions-hit-highlight-"+t.sessionId)))));if(0===Ge.length){const t="archived"===y?"sessions.empty.archived":"deleted"===y?"sessions.empty.deleted":"sessions.empty.all";return r.createElement("p",{style:Me},e(t))}if("project"!==E||"deleted"===y)return Ge.map(ot);const t=[];for(const e of Ge){const a=String(e.cwd||""),r=t.length>0&&t[t.length-1].project===a?t[t.length-1]:null;null===r?t.push({project:a,items:[e]}):r.items.push(e)}return t.map((t,a)=>{const n=!q.includes(t.project);return r.createElement("div",{key:"project-group-"+(""===t.project?"__none__":t.project),"data-testid":"sessions-project-group-"+a,style:{marginBottom:"14px"}},r.createElement("div",{"data-testid":"sessions-project-header-"+a,"data-project":t.project,"data-collapsed":n?"true":"false",role:"button","aria-expanded":String(!n),onClick:()=>{return e=t.project,C(t=>t.includes(e)?t.filter(t=>t!==e):[...t,e]);var e},style:{display:"flex",alignItems:"baseline",gap:"8px",margin:"0 2px 4px",padding:"2px 5px",borderRadius:"6px",cursor:"pointer",userSelect:"none"}},r.createElement("span",{style:{fontSize:"11px",color:"var(--dsw-alias-label-tertiary)",flex:"none"}},e(n?"sessions.glyph.expand":"sessions.glyph.collapse")),r.createElement("span",{style:{fontSize:"11.5px",fontWeight:650,color:"var(--dsw-alias-label-secondary)",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"}},""===t.project?e("sessions.projectGroup.noCwd"):t.project),r.createElement("span",{"data-testid":"sessions-project-count-"+a,style:{fontSize:"11px",color:"var(--dsw-alias-label-tertiary)",flexShrink:0}},1===t.items.length?e("sessions.projectGroup.countOne"):e("sessions.projectGroup.countMany",{count:t.items.length}))),n?null:t.items.map(ot))})})(),(()=>{if(null===de)return null;const t=!0===de.batch&&Array.isArray(de.sessions)?de.sessions:null,a=null===t&&de.session||{};return r.createElement("div",{"data-testid":"sessions-delete-modal",style:{position:"fixed",inset:0,zIndex:1200,display:"flex",alignItems:"center",justifyContent:"center",background:"rgba(0,0,0,0.45)"}},r.createElement("div",{style:{width:"min(480px, calc(100vw - 32px))",background:"var(--dsw-alias-bg-layer-2)",border:"1px solid var(--dsw-alias-border-l2)",borderRadius:"14px",padding:"18px",boxShadow:"0 12px 40px rgba(0,0,0,0.25)"}},r.createElement("div",{style:{fontSize:"15px",fontWeight:700,color:"var(--dsw-alias-label-primary)",marginBottom:"8px"}},null===t?e("sessions.delete.title"):e("sessions.batch.deleteTitle",{count:t.length})),r.createElement("p",{style:{fontSize:"13px",color:"var(--dsw-alias-label-secondary)",lineHeight:1.5,margin:"0 0 10px"}},e(null===t?"sessions.delete.body":"sessions.batch.deleteBody")),null===t?r.createElement("div",{style:{fontSize:"13px",fontWeight:600,color:"var(--dsw-alias-label-primary)",marginBottom:"6px"}},a.title||e("sessions.row.noTitle")):r.createElement("ul",{"data-testid":"sessions-batch-delete-list",style:{margin:"0 0 12px",paddingLeft:"18px",maxHeight:"220px",overflowY:"auto",fontSize:"12px",color:"var(--dsw-alias-label-secondary)",lineHeight:1.7}},t.map(t=>r.createElement("li",{key:t.id},e("sessions.batch.deleteItem",{title:t.title||e("sessions.row.noTitle"),bytes:za(t.bytes)})))),null===t?r.createElement("ul",{style:{margin:"0 0 12px",paddingLeft:"18px",fontSize:"12px",color:"var(--dsw-alias-label-secondary)",lineHeight:1.7}},r.createElement("li",null,e("sessions.delete.consequence.log",{bytes:za(a.bytes)})),de.consequences&&de.consequences.includes("hides-from-official-sidebar")?r.createElement("li",null,e("sessions.delete.consequence.sidebar")):null):null,""!==me?r.createElement("p",{style:{...Me,color:"var(--dsw-alias-state-error-primary)"}},me):null,r.createElement("div",{style:{display:"flex",justifyContent:"flex-end",gap:"8px"}},r.createElement("button",{type:"button","data-testid":"sessions-delete-cancel",style:Ie,disabled:ue,onClick:()=>{ce(null),ge("")}},e("sessions.delete.cancel")),r.createElement("button",{type:"button","data-testid":"sessions-delete-confirm",style:Oe,disabled:ue,onClick:()=>{(async()=>{if(null===de||ue)return;pe(!0),ge("");const t=!0===de.batch&&Array.isArray(de.plans)?de.plans:[de];let a=0,r="";for(const n of t)try{const t=await l("sessions-delete",{planId:n.planId});t.ok?(a+=1,Ve(n.session)):""===r&&(r=Ta(e,t.error||"unknown"))}catch(t){""===r&&(r=e("sessions.error.network"))}!0===de.batch?(ce(null),ve(e=>e+1),""===r?(ie(e("sessions.batch.completed",{action:e("sessions.action.delete"),count:a})),le("")):(ie(""),le(e("sessions.batch.failed",{action:e("sessions.action.delete"),done:a,total:t.length,error:r})))):""===r?(ce(null),ve(e=>e+1)):ge(r),pe(!1)})()}},e(ue?"sessions.status.working":"sessions.delete.confirm")))))})(),(()=>{if(null===be)return null;const t=!0===be.batch,a=Array.isArray(be.items)?be.items:[],n=a.length;return r.createElement("div",{"data-testid":"sessions-clear-modal",style:{position:"fixed",inset:0,zIndex:1200,display:"flex",alignItems:"center",justifyContent:"center",background:"rgba(0,0,0,0.45)"}},r.createElement("div",{style:{width:"min(480px, calc(100vw - 32px))",background:"var(--dsw-alias-bg-layer-2)",border:"1px solid var(--dsw-alias-border-l2)",borderRadius:"14px",padding:"18px",boxShadow:"0 12px 40px rgba(0,0,0,0.25)"}},r.createElement("div",{style:{fontSize:"15px",fontWeight:700,color:"var(--dsw-alias-label-primary)",marginBottom:"8px"}},t?e("sessions.batch.clearTitle",{count:n}):e("sessions.clear.title")),r.createElement("p",{style:{fontSize:"13px",color:"var(--dsw-alias-label-secondary)",lineHeight:1.5,margin:"0 0 10px"}},t?e("sessions.batch.clearBody",{count:n}):e("sessions.clear.body")),t?r.createElement("ul",{"data-testid":"sessions-clear-list",style:{margin:"0 0 12px",paddingLeft:"18px",maxHeight:"220px",overflowY:"auto",fontSize:"12px",color:"var(--dsw-alias-label-secondary)",lineHeight:1.7}},a.map(t=>r.createElement("li",{key:t.id},t.title||e("sessions.row.noTitle")))):r.createElement("div",{style:{fontSize:"13px",fontWeight:600,color:"var(--dsw-alias-label-primary)",marginBottom:"12px"}},a[0]?.title||e("sessions.row.noTitle")),""!==ke?r.createElement("p",{style:{...Me,color:"var(--dsw-alias-state-error-primary)"}},ke):null,r.createElement("div",{style:{display:"flex",justifyContent:"flex-end",gap:"8px"}},r.createElement("button",{type:"button","data-testid":"sessions-clear-cancel",style:Ie,disabled:ye,onClick:()=>{fe(null),we("")}},e("sessions.clear.cancel")),r.createElement("button",{type:"button","data-testid":"sessions-clear-confirm",style:Oe,disabled:ye,onClick:()=>{(async()=>{if(null===be||ye)return;xe(!0),we("");const t=(Array.isArray(be.items)?be.items:[]).map(e=>e.id),a=!0===be.batch;try{const r=await l("sessions-clear-deleted",{ids:t});if(r.ok)(e=>{const t=new Set(e),a=Ma.deleted;void 0!==a&&Array.isArray(a.deleted)&&(Ma.deleted={...a,deleted:a.deleted.filter(e=>!t.has(e.id))}),u(e=>{if(null===e)return e;const a=Array.isArray(e.deleted)?e.deleted:[];return{...e,deleted:a.filter(e=>!t.has(e.id))}}),I(e=>e.filter(e=>!t.has(e)))})(t),fe(null),a&&(ie(e("sessions.batch.completed",{action:e("sessions.action.clear"),count:t.length})),le(""));else{const n=Ta(e,r.error||"unknown");a?le(e("sessions.batch.failed",{action:e("sessions.action.clear"),done:0,total:t.length,error:n})):we(n)}}catch(r){const n=e("sessions.error.network");a?le(e("sessions.batch.failed",{action:e("sessions.action.clear"),done:0,total:t.length,error:n})):we(n)}finally{xe(!1)}})()}},e(ye?"sessions.status.working":"sessions.clear.confirm")))))})())}function Da(){const e=Ee(),{value:n}=le(),[s,d]=Ve.useEnabled(),c={color:"var(--dsw-alias-label-secondary)",fontSize:"12px",marginTop:"8px",lineHeight:1.5},[u,p]=a(g.getSnapshot());i(()=>g.subscribe(()=>p(g.getSnapshot())),[]),i(()=>(ct({all:!0}),()=>Et({all:!0})),[]);const[h,b]=a(new Set),f=e=>b(t=>{const a=new Set(t);return a.has(e)?a.delete(e):a.add(e),a});i(()=>(ft(),ht(()=>{P(wt()),F(kt())})),[]);const[y,x]=a(""),k=u.providers||[],[w,E]=a(null),[S,q]=a(null),[C,z]=a({expiresAt:"",label:""}),A=(e,t="")=>{E({provider:e.provider,account:t}),z({expiresAt:"",label:""})},[T,I]=a(null),[H,O]=a({name:"",value:""}),[R,L]=a(!1);i(()=>{if(!R)return;const e=setTimeout(()=>L(!1),3e3);return()=>clearTimeout(e)},[R]);const N=()=>{I(null),O({name:"",value:""}),L(!1)},D=t=>{const a=String(t?.error??""),r=["unknown-hint","invalid-value","credentials-unavailable"].includes(a)?e(`quota.credential.${a}`):`${a}${t?.detail?` (${t.detail})`:""}`;return e("quota.credential.saveFailed",{error:r})},$=async()=>{if(null!==w){x("");try{const t={provider:w.provider};"string"==typeof w.account&&""!==w.account&&(t.account=w.account),""!==C.expiresAt&&(t.expiresAt=C.expiresAt),""!==C.label&&(t.label=C.label);const a=await l("quota-reset-card",t);if(!0!==a?.ok)return void x(e("quota.saveFailed",{error:String(a?.error??"")}));z({expiresAt:"",label:""}),await At({scope:"all"})}catch(t){const a=t instanceof Error&&"string"==typeof t.message&&""!==t.message.trim()?t.message.trim():"network";x(e("quota.saveFailed",{error:a}))}}},W=async t=>{x("");try{const a=await l("quota-refresh",{provider:t});if(!0!==a?.ok)return void x("unknown-provider"===a?.error?e("quota.unknownProvider"):"not-adapted"===a?.error?e("quota.unadapted"):e("quota.saveFailed",{error:String(a?.error??"")}));await At({scope:"all"})}catch(t){x(e("quota.saveFailed",{error:"network"}))}},j=async t=>{x("");try{const a=await l("quota-config",t);if(!0!==a?.ok)return void x("unknown-provider"===a?.error?e("quota.unknownProvider"):e("quota.saveFailed",{error:String(a?.error??"")}));await At({scope:"all"})}catch(t){x(e("quota.saveFailed",{error:"network"}))}},B=(e,t)=>j({provider:e,kind:t}),[_,P]=a(wt()),[V,F]=a(kt()),[U,K]=a(!1),[G,Q]=a(!1),[Y,J]=a(null),Z=o(null);i(()=>()=>{null!==Z.current&&Z.current(),Z.current=null},[]);const ae=ut(k.filter(e=>!0===e.adapted),_),re=new Set(V),ne=ae.filter(e=>!re.has(e.provider)),se=k.filter(e=>!0!==e.adapted),ie={fontSize:"12px",padding:"3px 6px",borderRadius:"6px",border:"1px solid var(--dsw-alias-border-l2)",background:"var(--dsw-alias-bg-layer-2)",color:"var(--dsw-alias-label-primary)"},oe=()=>{Q(!0),null!==Z.current&&Z.current(),Z.current=t.timer.timeout(()=>{Z.current=null,Q(!1)},2e3)},de=(e,t)=>{P(e),F(t),vt(e,t)},ce=ut(ae,_).map(e=>({id:e.provider,label:e.displayName||e.provider})),ue=(e,t)=>{const a=ce.map(e=>e.id),r=a.indexOf(e),n=r+t;r<0||n<0||n>=a.length||r===n||(a.splice(n,0,a.splice(r,1)[0]),de(a,V))},[pe,me]=a(""),[ge,he]=a("");return r.createElement("div",{"data-testid":"remote-quota-card",style:{marginTop:"18px"}},r.createElement("div",{style:{display:"flex",alignItems:"center",justifyContent:"space-between",gap:"12px",marginBottom:"8px"}},r.createElement("div",{style:Object.assign({},{fontSize:"14px",fontWeight:700,margin:"0 0 8px",color:"var(--dsw-alias-label-primary)"},{margin:0})},e("quota.cardTitle")),r.createElement("div",{style:{display:"flex",alignItems:"center",gap:"10px",minWidth:0}},r.createElement("span",{style:{fontSize:"12px",lineHeight:1.5,color:"var(--dsw-alias-label-secondary)",textAlign:"right"}},e("quota.navToggleHint")),r.createElement("button",{type:"button",role:"switch","data-testid":"quota-nav-switch","aria-checked":String(s),"aria-label":e("quota.navToggle"),title:e("quota.navToggle"),onClick:()=>d(!s),style:{width:"34px",height:"20px",...M("10px"),padding:0,flexShrink:0,position:"relative",border:"1px solid "+(s?"var(--dsw-alias-state-success-primary)":"var(--dsw-alias-border-l2)"),background:s?"var(--dsw-alias-state-success-primary)":"var(--dsw-alias-bg-layer-2)",cursor:"pointer",lineHeight:0}},r.createElement("span",{style:{position:"absolute",top:"1px",left:s?"15px":"1px",width:"16px",height:"16px",...M("50%"),background:s?"#fff":"var(--dsw-alias-label-tertiary)"}})))),""!==y?r.createElement("p",{"data-testid":"quota-config-error",style:Object.assign({},c,{color:"var(--dsw-alias-state-error-primary)"})},y):null,...ae.length>=2?[r.createElement("div",{key:"quota-reorder-row",style:{display:"flex",justifyContent:"flex-end",margin:"2px 0 8px"}},r.createElement("button",{type:"button","data-testid":"quota-reorder-toggle","aria-expanded":String(U),title:e("quota.reorder"),onClick:()=>K(!U),style:{fontSize:"12px",lineHeight:"20px",padding:"2px 12px",...M(999),border:"1px solid "+(U?"var(--dsw-alias-brand-primary)":"var(--dsh-svc-border-strong)"),background:"transparent",color:U?"var(--dsw-alias-brand-primary)":"var(--dsw-alias-label-primary)",cursor:"pointer"}},e("quota.reorder")))]:[],U&&ae.length>=2?r.createElement("div",{"data-testid":"quota-card-order-panel",style:{display:"flex",flexDirection:"column",gap:"10px",margin:"0 0 12px",padding:"10px 12px 12px",borderRadius:"8px",border:"1px solid var(--dsw-alias-border-l1)",background:"var(--dsh-svc-raised-bg)"}},r.createElement("div",{style:{display:"flex",alignItems:"flex-start",justifyContent:"space-between",gap:"12px",flexWrap:"wrap"}},r.createElement("div",{style:{minWidth:0,flex:"1 1 240px"}},r.createElement("div",{"data-testid":"quota-card-order-title",style:{fontSize:"13px",fontWeight:700,color:"var(--dsw-alias-label-primary)"}},e("quota.order.title")),r.createElement("div",{style:{marginTop:"3px",fontSize:"12px",lineHeight:1.6,color:"var(--dsw-alias-label-secondary)"}},e("quota.order.hint"))),r.createElement("div",{style:{display:"flex",alignItems:"center",gap:"8px",flexWrap:"wrap"}},G?r.createElement("span",{"data-testid":"quota-card-order-saved",style:{fontSize:"12px",color:"var(--dsw-alias-state-success-primary)"}},"✓ "+e("config.navOrder.saved")):null,r.createElement("button",{type:"button","data-testid":"quota-card-order-reset",onClick:()=>{P([]),F([]),bt(),oe()},style:X("ghost")},e("config.navOrder.reset")),r.createElement("button",{type:"button","data-testid":"quota-card-order-save",onClick:()=>{de(ce.map(e=>e.id),V),oe()},style:X("primary")},e("config.navOrder.save")))),r.createElement("div",{"data-testid":"quota-card-order-list",style:{display:"flex",flexDirection:"column",gap:"8px"}},ce.map((t,a)=>{const n=!re.has(t.id),s=Y===a;return r.createElement("div",{key:t.id,"data-testid":"quota-card-order-item-"+t.id,draggable:!0,onDragStart:e=>{try{e.dataTransfer.setData("text/plain",String(a)),e.dataTransfer.effectAllowed="move"}catch(e){}J(a)},onDragOver:e=>{e.preventDefault();try{e.dataTransfer.dropEffect="move"}catch(e){}},onDrop:e=>{e.preventDefault();let t=a;try{const a=e.dataTransfer.getData("text/plain");t=Number.parseInt(a,10)}catch(e){}if(!Number.isNaN(t)&&t!==a){const e=ce.map(e=>e.id),[r]=e.splice(t,1);e.splice(a,0,r),de(e,V)}J(null)},onDragEnd:()=>J(null),style:{display:"flex",alignItems:"center",justifyContent:"space-between",gap:"12px",padding:"7px 10px",borderRadius:"var(--dsh-svc-radius-control, 8px)",border:"1px solid "+(s?"var(--dsw-alias-brand-primary)":"var(--dsw-alias-border-l1)"),background:s?"var(--dsw-alias-interactive-bg-hover)":"var(--dsh-svc-card-bg)",opacity:n?1:.5,transition:"border-color 120ms, background 120ms, opacity 120ms",cursor:"grab",userSelect:"none"}},r.createElement("div",{style:{display:"flex",alignItems:"center",gap:"8px",minWidth:0}},r.createElement("span",{style:{color:"var(--dsw-alias-label-tertiary)",fontSize:"13px",letterSpacing:"-1px"},"aria-hidden":"true"},"⋮⋮"),r.createElement("span",{style:{fontSize:"13px",fontWeight:550,color:"var(--dsw-alias-label-primary)",whiteSpace:"nowrap",overflow:"hidden",textOverflow:"ellipsis"}},t.label)),r.createElement("div",{style:{display:"flex",alignItems:"center",gap:"8px",flexShrink:0}},r.createElement("button",{type:"button","data-testid":"quota-card-order-up-"+t.id,"aria-label":e("config.navOrder.moveUp"),title:e("config.navOrder.moveUp"),disabled:0===a,onClick:e=>{e.stopPropagation(),ue(t.id,-1)},style:{display:"inline-flex",alignItems:"center",justifyContent:"center",width:"24px",height:"24px",padding:0,borderRadius:"6px",border:"1px solid var(--dsw-alias-border-l2)",background:"var(--dsw-alias-bg-layer-2)",color:0===a?"var(--dsw-alias-label-tertiary)":"var(--dsw-alias-label-primary)",cursor:0===a?"default":"pointer",opacity:0===a?.35:1,fontSize:"12px",lineHeight:"24px"}},"↑"),r.createElement("button",{type:"button","data-testid":"quota-card-order-down-"+t.id,"aria-label":e("config.navOrder.moveDown"),title:e("config.navOrder.moveDown"),disabled:a===ce.length-1,onClick:e=>{e.stopPropagation(),ue(t.id,1)},style:{display:"inline-flex",alignItems:"center",justifyContent:"center",width:"24px",height:"24px",padding:0,borderRadius:"6px",border:"1px solid var(--dsw-alias-border-l2)",background:"var(--dsw-alias-bg-layer-2)",color:a===ce.length-1?"var(--dsw-alias-label-tertiary)":"var(--dsw-alias-label-primary)",cursor:a===ce.length-1?"default":"pointer",opacity:a===ce.length-1?.35:1,fontSize:"12px",lineHeight:"24px"}},"↓"),r.createElement("button",{type:"button",role:"switch","data-testid":"quota-card-order-toggle-"+t.id,"aria-checked":String(n),"aria-label":e(n?"config.navOrder.visible":"config.navOrder.hidden"),title:e(n?"config.navOrder.visible":"config.navOrder.hidden"),onClick:e=>{e.stopPropagation(),(e=>{const t=new Set(V);t.has(e)?t.delete(e):t.add(e),de(ce.map(e=>e.id),Array.from(t))})(t.id)},style:{width:"34px",height:"20px",...M("10px"),padding:0,position:"relative",flexShrink:0,border:"1px solid "+(n?"var(--dsw-alias-state-success-primary)":"var(--dsw-alias-border-l2)"),background:n?"var(--dsw-alias-state-success-primary)":"var(--dsw-alias-bg-layer-2)",cursor:"pointer",lineHeight:0}},r.createElement("span",{style:{position:"absolute",top:"1px",left:n?"15px":"1px",width:"16px",height:"16px",...M("50%"),background:n?"#fff":"var(--dsw-alias-label-tertiary)",transition:"left 120ms ease"}}))))}))):null,0===ae.length?r.createElement("p",{style:c},e("quota.noAdapted")):0===ne.length?r.createElement("p",{"data-testid":"quota-cards-all-hidden",style:c},e("quota.order.allHidden")):r.createElement("div",{"data-testid":"quota-card-list",style:{display:"flex",flexDirection:"column",gap:"10px"}},ne.map((t,a)=>{const s=r.createElement("span",{style:{fontWeight:600,fontSize:"12px",overflowWrap:"anywhere"}},!1===n.modelProviderIcons?null:((e,t=14,a={},n)=>{if("string"!=typeof e||""===e)return null;const s=v(e,{forComposer:!0});if(null===s)return null;const i=1!==s.spec.c,o=m(s.spec,i),l={display:"inline-block",width:`${t}px`,height:`${t}px`,flexShrink:0,...a},d=`${o} center / contain no-repeat`;return i?(l.backgroundColor="currentColor",l.WebkitMask=d,l.mask=d):(l.backgroundImage=o,l.backgroundPosition="center",l.backgroundSize="contain",l.backgroundRepeat="no-repeat"),r.createElement("span",{..."string"==typeof n&&""!==n?{"data-testid":n}:{},"data-dshsvc-model-icon":s.slug,"aria-hidden":!0,style:l})})(t.provider,14,{verticalAlign:"-2px",marginRight:"5px"},`quota-provider-icon-${t.provider}`),"string"==typeof t.usageUrl&&""!==t.usageUrl?r.createElement("a",{"data-testid":`quota-usage-link-${t.provider}`,href:t.usageUrl,target:"_blank",rel:"noreferrer",title:e("quota.usageLink"),style:{color:"var(--dsw-alias-brand-primary)",textDecoration:"underline"}},t.displayName||t.provider):t.displayName||t.provider,"auto"===t.kindSource?r.createElement("span",{"data-testid":`quota-auto-tag-${t.provider}`,style:te("neutral",{marginLeft:"6px",verticalAlign:"middle"})},e("quota.kindAuto")):null),i=Array.isArray(t.windows)?t.windows:[],o=S===t.provider,d=(e,t)=>String(e).toLowerCase().replace(/[^a-z0-9]+/g,"-").replace(/^-+|-+$/g,"").slice(0,48)||`acct-${t}`,c=i.map(a=>Ut(a,e,t.provider)),u=Array.isArray(t.resetCards)?t.resetCards:[],p=u.filter(e=>"string"!=typeof e.account||""===e.account),g=(a,n)=>{const s=Pt(a,e),i="string"==typeof a.id&&""!==a.id?a.id:`idx-${n}`,d="string"==typeof a.account&&""!==a.account?` · ${a.account}`:"";return r.createElement("div",{key:i,"data-testid":`quota-reset-card-${t.provider}-${i}`,style:{display:"flex",alignItems:"center",gap:"8px",fontSize:"11px",lineHeight:"16px",color:s.textColor}},r.createElement("svg",{width:12,height:12,viewBox:"0 0 24 24",fill:"none",stroke:s.iconColor,strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":!0,style:{flexShrink:0}},r.createElement("rect",{x:2,y:5,width:20,height:14,rx:2}),r.createElement("line",{x1:2,y1:10,x2:22,y2:10})),r.createElement("span",{style:{display:"flex",flexDirection:"column",gap:"2px"}},r.createElement("span",null,`${s.title}${d}`),""!==s.expiry?r.createElement("span",null,s.expiry):null),o?r.createElement("button",{type:"button","data-testid":`quota-remove-${t.provider}-${i}`,onClick:()=>(async(t,a)=>{x("");try{await l("quota-reset-card",{provider:t,remove:!0,id:a}),await At({scope:"all"})}catch(t){x(e("quota.saveFailed",{error:"network"}))}})(t.provider,i),style:{fontSize:"11px",padding:"2px 10px",...M(999),border:"1px solid var(--dsw-alias-state-error-primary)",background:"transparent",color:"var(--dsw-alias-state-error-primary)",cursor:"pointer",flexShrink:0,whiteSpace:"nowrap"}},e("quota.resetCard.remove")):null)},b=p.map(g),y=u.filter(e=>"string"==typeof e.account&&""!==e.account),k=[],_=new Map;for(const e of y)_.has(e.account)||(_.set(e.account,[]),k.push(e.account)),_.get(e.account).push(e);const P=(a,n,s)=>r.createElement("div",{key:`codex-account-${n}`,"data-testid":`quota-cpa-account-${t.provider}-${n}`,style:{display:"flex",flexDirection:"column",gap:"10px"}},s.length>0?r.createElement("div",{style:{display:"flex",flexDirection:"column",gap:"14px"}},s):null,...((a,n)=>{const s=Vt(_.get(a)??[]),i=`card:${t.provider}:${n}`,o=h.has(i),l=o?s:s.slice(0,1),d=s.length-l.length;return[...l.map(g),d>0?r.createElement("button",{key:"reset-more",type:"button","data-testid":`quota-reset-more-${t.provider}-${n}`,onClick:()=>f(i),style:{alignSelf:"flex-start",fontSize:"11px",color:"var(--dsw-alias-brand-primary)",background:"transparent",border:"none",cursor:"pointer",padding:"0 2px",textDecoration:"underline"}},e("quota.resetCard.more",{count:d})):null,o&&s.length>1?r.createElement("button",{key:"reset-less",type:"button","data-testid":`quota-reset-less-${t.provider}-${n}`,onClick:()=>f(i),style:{alignSelf:"flex-start",fontSize:"11px",color:"var(--dsw-alias-label-secondary)",background:"transparent",border:"none",cursor:"pointer",padding:"0 2px",textDecoration:"underline"}},e("quota.resetCard.less")):null]})(a,n),o?r.createElement("div",{key:"reset-add-row",style:{display:"flex"}},r.createElement("button",{type:"button","data-testid":`quota-card-edit-${t.provider}-${n}`,onClick:()=>A(t,a),style:{fontSize:"12px",lineHeight:"20px",padding:"4px 14px",...M(999),border:"1px solid var(--dsh-svc-border-strong)",background:"transparent",color:"var(--dsw-alias-label-primary)",cursor:"pointer",width:"auto",minWidth:0,overflow:"visible",flex:"0 0 auto",whiteSpace:"nowrap"}},e("quota.resetCard.edit"))):null,U(a,n)),V={fontSize:"12px",padding:"3px 6px",borderRadius:"6px",border:"1px solid var(--dsw-alias-border-l2)",background:"var(--dsw-alias-bg-layer-2)",color:"var(--dsw-alias-label-primary)",width:"130px"},F=(e,t,a,n)=>r.createElement("label",{style:{display:"flex",flexDirection:"column",gap:"2px",fontSize:"11px",color:"var(--dsw-alias-label-secondary)"}},e,r.createElement("input",{type:a,"data-testid":t,value:C[n],onChange:e=>z({...C,[n]:e.target.value}),style:V})),U=(a,n)=>{const s="string"==typeof a?a:"";if(!o||null===w||w.provider!==t.provider)return null;if(("string"==typeof w.account?w.account:"")!==s)return null;const i=void 0===n?"":`-${n}`;return r.createElement("div",{key:`reset-editor${i}`,"data-testid":`quota-reset-editor-${t.provider}${i}`,style:{display:"flex",flexWrap:"wrap",gap:"10px",alignItems:"flex-end",padding:"8px 10px",borderRadius:"8px",background:"var(--dsh-svc-raised-bg)"}},F(e("quota.resetCard.dateLabel"),"quota-reset-input-date","datetime-local","expiresAt"),F(e("quota.resetCard.nameLabel"),"quota-reset-input-name","text","label"),r.createElement("button",{type:"button","data-testid":"quota-reset-card-save",onClick:$,style:{minHeight:"28px",padding:"4px 12px",borderRadius:"7px",border:"1px solid var(--dsw-alias-brand-primary)",background:"var(--dsw-alias-brand-primary)",color:"var(--dsh-svc-brand-text)",cursor:"pointer",fontSize:"12px"}},e("quota.resetCard.add")),r.createElement("button",{type:"button","data-testid":"quota-reset-cancel",onClick:()=>E(null),style:ee()},e("quota.resetCard.cancel")))};let K;const G=()=>0===k.length?null:r.createElement("div",{style:{display:"flex",flexDirection:"column",gap:"10px"}},k.map((e,t)=>P(e,d(e,t),[])));if(!0===t.refreshing&&0===i.length)K=r.createElement("div",{style:{display:"flex",flexDirection:"column",gap:"10px"}},r.createElement("span",{style:{fontSize:"12px",color:"var(--dsw-alias-label-tertiary)"}},e("quota.refreshing")),G());else if(void 0!==t.errorCode&&0===i.length)K=r.createElement("div",{style:{display:"flex",flexDirection:"column",gap:"10px"}},r.createElement("span",{"data-testid":`quota-error-${t.provider}`,style:{fontSize:"12px",color:"var(--dsw-alias-state-error-primary)"}},Ft(t,e)),G());else if(i.length>0){const a=a=>{const r=[],n=new Map;for(const e of a.windows){const t="string"==typeof e.label?e.label.trim():"";let a=n.get(t);void 0===a&&(a=r.length,n.set(t,a),r.push({account:t,windows:[]})),r[a].windows.push(e)}for(const e of k)n.has(e)||(n.set(e,r.length),r.push({account:e,windows:[]}));return r.map((a,r)=>P(a.account,d(a.account,r),a.windows.map(a=>Ut(a,e,t.provider))))},n="cliproxy"===t.kind?Jt(i):null;K=n&&n.length>0?r.createElement("div",{"data-testid":`quota-card-families-${t.provider}`,style:{display:"flex",flexDirection:"column",gap:"10px"}},n.map((n,s)=>r.createElement("div",{key:`family-${n.family}`,"data-testid":`quota-card-family-${t.provider}-${n.family}`,style:{display:"flex",flexDirection:"column",gap:"10px",marginTop:0===s?"0":"4px",paddingTop:0===s?"0":"10px",borderTop:0===s?"none":"1px solid var(--dsw-alias-border-l1)"}},r.createElement("div",{"data-testid":`quota-card-family-title-${t.provider}-${n.family}`,style:{fontSize:"12px",fontWeight:600,color:"var(--dsw-alias-label-primary)"}},e("quota.family."+n.family)),"codex"===n.family?r.createElement("div",{style:{display:"flex",flexDirection:"column",gap:"14px"}},a(n)):r.createElement("div",{style:{display:"flex",flexDirection:"column",gap:"14px"}},n.windows.map(a=>Ut(a,e,t.provider)))))):r.createElement("div",{style:{display:"flex",flexDirection:"column",gap:"14px"}},c)}else K=r.createElement("span",{style:{fontSize:"12px",color:"var(--dsw-alias-label-tertiary)"}},e("quota.empty"));const Q=jt(t,i),Y=null!==Q?r.createElement(Bt,{key:"peak-timeline",showCaption:!0,schedule:Q}):null;return r.createElement("div",{key:t.provider,"data-testid":`quota-provider-card-${t.provider}`,style:{display:"flex",flexDirection:"column",gap:"8px",padding:"10px 12px 12px",borderRadius:"8px",border:"1px solid var(--dsw-alias-border-l1)",background:"var(--dsh-svc-card-bg)"}},r.createElement("div",{style:{display:"flex",justifyContent:"space-between",alignItems:"baseline",gap:"10px"}},s,r.createElement("div",{style:{display:"flex",alignItems:"center",gap:"5px"}},r.createElement("button",{type:"button","data-testid":`quota-refresh-${t.provider}`,"aria-label":e("quota.refresh"),title:e("quota.refresh"),disabled:!0===t.refreshing,onClick:()=>W(t.provider),style:{display:"inline-flex",alignItems:"center",justifyContent:"center",padding:"2px",border:"none",background:"transparent",color:!0===t.refreshing?"var(--dsw-alias-label-tertiary)":"var(--dsw-alias-label-secondary)",cursor:!0===t.refreshing?"default":"pointer",opacity:!0===t.refreshing?.45:1}},r.createElement("svg",{width:12,height:12,viewBox:"0 0 24 24",fill:"currentColor","aria-hidden":!0},r.createElement("path",{d:"M17.65 6.35A7.95 7.95 0 0 0 12 4a8 8 0 1 0 7.73 10h-2.08A6 6 0 1 1 12 6c1.66 0 3.14.69 4.22 1.77L13 11h7V4l-2.35 2.35z"}))),"number"==typeof t.fetchedAt?r.createElement("span",{style:{fontSize:"11px",color:"var(--dsw-alias-label-tertiary)"}},e("quota.updated",{time:pt(t.fetchedAt)})):null)),K,...null!==Y?[Y]:[],r.createElement("div",{key:"advanced-toggle-row",style:{display:"flex",marginTop:"2px"}},r.createElement("button",{type:"button","data-testid":`quota-advanced-toggle-${t.provider}`,"aria-expanded":String(o),onClick:()=>q(o?null:t.provider),style:{fontSize:"11px",lineHeight:"20px",padding:"2px 10px",...M(999),border:"1px solid var(--dsh-svc-border-strong)",background:"transparent",color:"var(--dsw-alias-label-primary)",cursor:"pointer"}},`${o?"▾":"▸"} ${e("quota.advanced")}`)),...o&&"unconfigured"===t.status&&Array.isArray(t.credentialHints)&&t.credentialHints.length>0?(()=>{const a=null!==T&&T.provider===t.provider,n=t.credentialHints,s=n.some(e=>e.name===H.name)?H.name:n[0]?.name??"",i=n.find(e=>e.name===s);return[a?r.createElement("div",{key:"cred-editor","data-testid":`quota-cred-editor-${t.provider}`,style:{display:"flex",flexWrap:"wrap",gap:"10px",alignItems:"flex-end",padding:"8px 10px",borderRadius:"8px",background:"var(--dsh-svc-raised-bg)"}},n.length>1?r.createElement("label",{style:{display:"flex",flexDirection:"column",gap:"2px",fontSize:"11px",color:"var(--dsw-alias-label-secondary)"}},e("quota.credential.nameLabel"),r.createElement("select",{"data-testid":"quota-cred-name-select",value:s,onChange:e=>{O({...H,name:e.target.value}),L(!1)},style:ie},n.map((t,a)=>r.createElement("option",{key:t.name,value:t.name},`${t.name}${0===a?` · ${e("quota.credential.primary")}`:""} · ${!0===t.configured?e("quota.credential.configured"):e("quota.credential.notConfigured")}`)))):r.createElement("span",{style:{fontSize:"11px",color:"var(--dsw-alias-label-tertiary)",alignSelf:"center"}},`${s}${!0===i?.configured?` · ${e("quota.credential.configured")}`:""}`),r.createElement("label",{style:{display:"flex",flexDirection:"column",gap:"2px",fontSize:"11px",color:"var(--dsw-alias-label-secondary)"}},e("quota.credential.valueLabel"),r.createElement("input",{type:"password","data-testid":"quota-cred-input-value",value:H.value,onChange:e=>O({...H,value:e.target.value}),autoComplete:"off",style:V})),r.createElement("button",{type:"button","data-testid":"quota-cred-save",onClick:()=>(async t=>{x("");try{const e=await l("quota-credential-set",{provider:t,name:H.name,value:H.value});if(!0!==e?.ok)return void x(D(e));N(),await W(t)}catch(t){x(e("quota.saveFailed",{error:"network"}))}})(t.provider),disabled:""===H.value.trim(),style:{minHeight:"28px",padding:"4px 12px",borderRadius:"var(--dsh-svc-radius-control)",border:"1px solid var(--dsw-alias-brand-primary)",background:""===H.value.trim()?"transparent":"var(--dsw-alias-brand-primary)",color:""===H.value.trim()?"var(--dsw-alias-label-tertiary)":"var(--dsh-svc-brand-text)",cursor:""===H.value.trim()?"default":"pointer",fontSize:"12px"}},e("quota.credential.save")),...!0===i?.configured&&!1!==i?.writable?[r.createElement("button",{type:"button",key:"cred-clear","data-testid":"quota-cred-clear",title:R?e("quota.credential.clearConfirm"):void 0,onClick:()=>{R?(L(!1),(async(t,a)=>{x("");try{const e=await l("quota-credential-unset",{provider:t,name:a});if(!0!==e?.ok)return void x(D(e));await W(t)}catch(t){x(e("quota.saveFailed",{error:"network"}))}})(t.provider,s)):L(!0)},style:{minHeight:"28px",padding:"4px 12px",borderRadius:"var(--dsh-svc-radius-control)",border:"1px solid var(--dsw-alias-state-error-primary)",background:R?"var(--dsw-alias-state-error-primary)":"transparent",color:R?"var(--dsh-svc-brand-text)":"var(--dsw-alias-state-error-primary)",cursor:"pointer",fontSize:"12px",whiteSpace:"nowrap"}},e(R?"quota.credential.clearConfirm":"quota.credential.clear"))]:[],r.createElement("button",{type:"button","data-testid":"quota-cred-cancel",onClick:N,style:ee()},e("quota.resetCard.cancel"))):r.createElement("div",{key:"cred-entry",style:{display:"flex"}},r.createElement("button",{type:"button","data-testid":`quota-cred-edit-${t.provider}`,onClick:()=>(e=>{const t=Array.isArray(e.credentialHints)?e.credentialHints:[];E(null),I({provider:e.provider}),O({name:(t.find(e=>!0===e.configured)??t[0])?.name??"",value:""}),L(!1)})(t),style:{fontSize:"12px",lineHeight:"20px",padding:"4px 14px",...M(999),border:"1px solid var(--dsw-alias-brand-primary)",background:"transparent",color:"var(--dsw-alias-brand-primary)",cursor:"pointer",width:"auto",minWidth:0,overflow:"visible",flex:"0 0 auto",whiteSpace:"nowrap"}},e(`quota.credential.${"string"==typeof t.credentialEntryKey&&""!==t.credentialEntryKey?t.credentialEntryKey:"edit"}`)))]})():[],...b,U(""),...o?[r.createElement("div",{key:"advanced-footer",style:{display:"flex",alignItems:"center",gap:"8px",flexWrap:"wrap"}},r.createElement("select",{"data-testid":`quota-kind-select-${t.provider}`,value:t.kind,"aria-label":`${e("quota.adapt")} · ${t.displayName||t.provider}`,onChange:e=>{var a;""===e.target.value?B(t.provider,null):"__auto__"===e.target.value?(a=t.provider,j({provider:a,clear:!0})):B(t.provider,e.target.value)},style:ie},dt.map(t=>r.createElement("option",{key:t,value:t},e(`quota.kind.${t}`))),r.createElement("option",{value:"__auto__"},e("quota.followAuto")),r.createElement("option",{value:""},e("quota.disable")))),..."zai-coding-cn"===t.kind?[r.createElement("div",{key:"reset-add-row",style:{display:"flex"}},r.createElement("button",{type:"button","data-testid":`quota-card-edit-${t.provider}`,onClick:()=>A(t),style:{fontSize:"12px",lineHeight:"20px",padding:"4px 14px",...M(999),border:"1px solid var(--dsh-svc-border-strong)",background:"transparent",color:"var(--dsw-alias-label-primary)",cursor:"pointer",width:"auto",minWidth:0,overflow:"visible",flex:"0 0 auto",whiteSpace:"nowrap"}},e("quota.resetCard.edit")))]:[]]:[])})),...se.length>0?[r.createElement("div",{key:"quota-add-adapt","data-testid":"quota-add-adapt",style:{display:"flex",alignItems:"center",flexWrap:"wrap",gap:"8px",marginTop:ae.length>0?"2px":"4px",paddingTop:"10px",borderTop:"1px solid var(--dsw-alias-border-l1)"}},r.createElement("span",{style:{fontSize:"11px",color:"var(--dsw-alias-label-tertiary)"}},e("quota.addAdapt")),r.createElement("select",{"data-testid":"quota-add-provider",value:pe,onChange:e=>me(e.target.value),style:ie},r.createElement("option",{value:""},e("quota.addPickProvider")),se.map(e=>r.createElement("option",{key:e.provider,value:e.provider},e.displayName||e.provider))),r.createElement("select",{"data-testid":"quota-add-kind",value:ge,onChange:e=>he(e.target.value),style:ie},r.createElement("option",{value:""},e("quota.addPickKind")),dt.map(t=>r.createElement("option",{key:t,value:t},e(`quota.kind.${t}`)))),r.createElement("button",{type:"button","data-testid":"quota-add-submit",disabled:""===pe||""===ge,onClick:()=>{B(pe,ge),me(""),he("")},style:{fontSize:"12px",padding:"3px 12px",borderRadius:"7px",border:"1px solid var(--dsw-alias-brand-primary)",background:""===pe||""===ge?"transparent":"var(--dsw-alias-brand-primary)",color:""===pe||""===ge?"var(--dsw-alias-label-tertiary)":"var(--dsh-svc-brand-text)",cursor:""===pe||""===ge?"default":"pointer"}},e("quota.adapt")))]:[])}function $a(){const e=Ee(),{value:n}=le(),[s,d]=a(null),[c,u]=a(null),[p,m]=a(null),[g,h]=a(!1),[v,b]=a(0),[f,y]=a(null),[x,k]=a(null),[w,E]=a(null),[S,q]=a(null),[C,z]=a(!1),[A,T]=a(!1),[I,H]=a(null),[O,R]=a(!1),[L,N]=a(!1),[D,$]=a(null),[W,j]=a(!1),[_,P]=a({items:[],totalBytes:0}),[V,F]=a(!1),[U,K]=a(null),G=o(0),[Q,Y]=a(null),[J,Z]=a(null),[te,re]=a(null),[ne,se]=a(null),[ie,de]=a(null),[ce,ue]=a(!1),[pe,me]=a(!1),[ge,he]=a(!1),[ve,be]=a(!1),[fe,ye]=a(null),[ke,we]=a(null),[Se,Ae]=a(null),[Te,Me]=a(null),[De,We]=a(null),[je,Be]=a(!1),[_e,Pe]=a(null),[Ve,Fe]=a(!1),[Ue,Ke]=a(!1),[Qe,dt]=a(null),[ct,ut]=a(!1),[pt,mt]=a(!1),[gt,ht]=a(null),[vt,bt]=a("all"),[ft,yt]=a(!1),[xt,kt]=a(!1),[wt,Et]=a(!1),[St,qt]=a("today"),[Ct,zt]=a("overview"),[At,Tt]=a(!1),Mt=nt(),It=st(),Ht=rt(),Ot={timezoneOffsetMinutes:(new Date).getTimezoneOffset()};i(()=>{xe()},[]),i(()=>{Xe().then(e=>{e&&e.ok&&(ye(e.value.current),we(e.value.pluginVersion||null))})},[]);const Rt=t=>{t&&!1!==t.ok?(Ae(t.value),Me(null)):Me(e("update.unavailable"))};i(()=>{let t=!0;return l("check-update",{}).then(e=>{t&&Rt(e)}).catch(()=>{t&&Me(e("update.unavailable"))}),()=>{t=!1}},[]),i(()=>{if(!oe("healthDiagnostics"))return()=>{};let t=!0;return l("permissions-plan",{}).then(a=>{t&&(a&&!1!==a.ok?q(a.value):H(e("permissions.error")))}).catch(()=>{t&&H(e("permissions.error"))}),()=>{t=!1}},[n.healthDiagnostics]),i(()=>{if(!oe("modelUsage"))return()=>{};let t=!0;return l("usage",Ot).then(async a=>{if(t)if(a&&!1!==a.ok){if(Pe(null),Fe(!1),We(a.value),!(a.value.updatedAt>0&&Date.now()-a.value.updatedAt<=3e5))try{const e=await l("usage-refresh",Ot);t&&e&&e.ok&&(Pe(null),Fe(!1),We(e.value))}catch(e){}}else Pe(e("usage.error"))}).catch(()=>{t&&Pe(e("usage.error"))}),()=>{t=!1}},[n.modelUsage]),i(()=>{if(!oe("backupMaintenance"))return()=>{};let t=!0;return l("backup-list",{}).then(a=>{t&&(a&&!1!==a.ok?P(a.value):Y(e("backup.error")))}).catch(()=>{t&&Y(e("backup.error"))}),()=>{t=!1}},[n.backupMaintenance]),i(()=>{let a=!0,r=()=>{};const n=async()=>{try{const e=await l("health",{});if(!a)return;if(!e||!1===e.ok)throw new Error(e&&e.error?e.error:"health failed");d(e.value),u(null)}catch(t){if(!a)return;u(e("health.error"))}a&&(r=t.timer.timeout(n,5e3))};return n(),()=>{a=!1,r()}},[]);const Lt=async(t=!1)=>{if(oe("healthDiagnostics")&&!(!t&&v>0&&Date.now()-v<=3e4)){h(!0);try{const e=await l("diagnostics",{});if(!e||!1===e.ok)throw new Error("diagnostics failed");m(e.value),b(Date.now())}catch(t){u(e("health.error"))}finally{h(!1)}}},Nt=async()=>{Be(!0),Pe(null);try{const e=await l("usage-refresh",Ot);if(!e||!1===e.ok)throw new Error("usage refresh failed");We(e.value)}catch(t){Pe(e("usage.error"))}finally{Be(!1)}},Dt=t=>{const a="backup.error."+String(t||""),r=e(a);return r===a?e("backup.restoreError"):r},$t=async()=>{if(ie&&!V){F(!0),Y(null);try{const e=await l("backup-restore-commit",{planId:ie.planId});if(!e||!1===e.ok)throw Object.assign(new Error("backup restore failed"),{code:e?.error});if(re(null),se(null),de(null),!0===e.value?.restart?.requiresManualRestart)ue(!0);else{const t=e.value?.restart?.previousInstanceId||e.value?.previousInstanceId;"string"==typeof t&&t.length>0&&at(t).catch(()=>{})}}catch(e){de(null),Y(Dt(e?.code))}finally{F(!1)}}},Wt=()=>{V||(re(null),se(null),de(null))},jt={"active-work":"update.guardActiveWork","link-install":"update.guardLinkInstall","file-install":"update.guardFileInstall","no-newer-version":"update.guardNoNewer","no-profile-found":"update.guardNoProfile","ambiguous-profile":"update.guardAmbiguous","upgrade-stale":"update.guardStale","installed-version-unreadable":"update.guardUnreadable","pnpm-missing":"update.failPnpmMissing","transient-network":"update.failNetwork","fetch-timeout":"update.failFetchTimeout","release-age-violation":"update.failReleaseAge","hoist-pattern-diff":"update.failHoist","adding-to-root":"update.failAddingToRoot","not-a-workspace":"update.failNotWorkspace","ignored-builds":"update.failIgnoredBuilds"},Bt=async()=>{if(!it()){ot(!0);try{let t=It;if(null===t&&(await Xe(),t=lt()),!ct&&null!==t&&!0===t.manualStartLikely)return dt(null),void ut(!0);ut(!1),Ke(!0),dt(null);const a=await Xe(),r=a&&a.ok?a.value.instanceId:void 0,n=await l("upgrade",{});if(!n||!1===n.ok){const t=n&&"string"==typeof n.error?n.error.trim():"",a="string"==typeof t&&t.length>0?jt[t]:void 0;return void dt(void 0!==a?e(a):e("update.upgradeErrorDetail",{detail:t||"upgrade failed"}))}n.value&&!0===n.value.requiresManualRestart?mt(!0):"string"==typeof r&&r.length>0&&at(r).catch(()=>{}),tt().catch(()=>{}),(async()=>{const e=await l("check-update",{}).catch(()=>null);e&&Rt(e)})().catch(()=>{})}catch(t){const a=t instanceof Error&&"string"==typeof t.message&&"upgrade failed"!==t.message?t.message.trim():"";console.error("dsh-service: upgrade failed",a||t),dt(a?e("update.upgradeErrorDetail",{detail:a}):e("update.upgradeError"))}finally{ot(!1),Ke(!1)}}},_t=X(),Pt=(X("primary"),X("brandGhost")),Vt=X("neutral"),Ft=X("danger"),Ut=X("dangerGhost"),Kt=X("ghost"),Gt=Object.assign({},_t,{background:"transparent",color:"var(--dsw-alias-label-primary)",border:0,borderTop:"1px solid var(--dsw-alias-border-l1)",borderRadius:0,padding:"10px 2px",width:"100%",textAlign:"left",fontWeight:600}),Qt={display:"flex",alignItems:"center",gap:"8px",marginTop:"12px",flexWrap:"wrap"},Yt={color:"var(--dsw-alias-label-secondary)",fontSize:"12px",marginTop:"8px",lineHeight:1.5},Jt={padding:"4px 0 14px",marginBottom:"12px",color:"var(--dsw-alias-label-primary)"},Zt=ae(),Xt={background:"transparent",color:"var(--dsw-alias-label-secondary)",border:0,borderBottom:"2px solid transparent",padding:"8px 10px",cursor:"pointer",fontSize:"13px",fontWeight:550,transition:"color 120ms, border-color 120ms"},ea={color:"var(--dsw-alias-brand-primary)",borderBottom:"2px solid var(--dsw-alias-brand-primary)",fontWeight:700},ta=Object.assign({},Xt,{padding:"3px 6px",fontSize:"11px"}),na={fontSize:"14px",fontWeight:700,margin:"0 0 8px",color:"var(--dsw-alias-label-primary)"},sa=e=>{const t=Number(e);return t<1024?t+" B":t<1048576?Math.round(t/102.4)/10+" KB":t<1073741824?Math.round(t/1048576*10)/10+" MB":Math.round(t/1073741824*10)/10+" GB"},ia=(t,a)=>r.createElement("div",{key:t,style:{padding:"8px 10px",borderRadius:"6px",background:"var(--dsh-svc-raised-bg)",color:"var(--dsw-alias-label-primary)",border:"1px solid var(--dsw-alias-border-l1)"}},r.createElement("div",{style:{color:"var(--dsw-alias-label-secondary)",fontSize:"11px",marginBottom:"2px"}},e(t)),r.createElement("div",{style:{fontSize:"14px",fontWeight:600}},a)),oa=e=>{const t=e=>String(e).padStart(2,"0");return`${e.getFullYear()}-${t(e.getMonth()+1)}-${t(e.getDate())}`},da=[];for(let e=6;e>=0;e-=1){const t=new Date;t.setHours(0,0,0,0),t.setDate(t.getDate()-e),da.push({key:oa(t),label:`${t.getMonth()+1}/${t.getDate()}`})}const ca=[["inputTokens","usage.input","#79aaf7"],["outputTokens","usage.output","#f1b35b"],["cacheTokens","usage.cache","#48c7b0"]],ua=e=>{const t=De&&De.days?De.days[e]:null;if(!t)return{steps:0,inputTokens:0,outputTokens:0,cacheReadTokens:0,cacheWriteTokens:0,cacheHitRate:0};if("all"===vt)return t.totals;const a=t.projects.find(e=>e.id===vt);return a?a.totals:{steps:0,inputTokens:0,outputTokens:0,cacheReadTokens:0,cacheWriteTokens:0,cacheHitRate:0}},pa=e=>{const t=Number(e.inputTokens||0)+Number(e.cacheReadTokens||0)+Number(e.cacheWriteTokens||0);return 0===t?0:Number(e.cacheReadTokens||0)/t},ma=e=>Number(e.inputTokens||0)+Number(e.outputTokens||0)+Number(e.cacheReadTokens||0)+Number(e.cacheWriteTokens||0),ga=(e,t)=>"cacheTokens"===t?e.cacheReadTokens+e.cacheWriteTokens:e[t]||0,ha=e=>B(e,{invalid:"0"}),va=(t,a)=>"cacheHitRate"===a?(100*Number(t)).toFixed(1)+"%":"steps"===a?e("usage.stepsValue",{count:Number(t).toLocaleString()}):ha(t),ba=da.map(e=>ua(e.key)),fa=ba.map(e=>ca.reduce((t,[a])=>t+ga(e,a),0)),ya=Math.max(1,...fa),xa=[ya,.75*ya,.5*ya,.25*ya,0],ka=ua(da[6].key),Ea=da.reduce((e,t)=>{const a=ua(t.key);return e.steps+=a.steps||0,e.inputTokens+=a.inputTokens||0,e.outputTokens+=a.outputTokens||0,e.cacheReadTokens+=a.cacheReadTokens||0,e.cacheWriteTokens+=a.cacheWriteTokens||0,e},{steps:0,inputTokens:0,outputTokens:0,cacheReadTokens:0,cacheWriteTokens:0}),Sa=Ea.inputTokens+Ea.cacheReadTokens+Ea.cacheWriteTokens;Ea.cacheHitRate=0===Sa?0:Ea.cacheReadTokens/Sa;const Ca="all"===vt?(De?.projects||[]).map(e=>e.id):[vt],za=(e,t)=>{const a=e.get(t.id)||{id:t.id,steps:0,inputTokens:0,outputTokens:0,cacheReadTokens:0,cacheWriteTokens:0};a.steps+=t.totals.steps||0,a.inputTokens+=t.totals.inputTokens||0,a.outputTokens+=t.totals.outputTokens||0,a.cacheReadTokens+=t.totals.cacheReadTokens||0,a.cacheWriteTokens+=t.totals.cacheWriteTokens||0,e.set(t.id,a)},Aa=new Map,Ta=new Map,Ma=new Map,Ia=new Set(da.map(e=>e.key)),Ha=da[da.length-1].key;for(const[e,t]of Object.entries(De?.days||{})){const a=[Ma];Ia.has(e)&&a.push(Ta),e===Ha&&a.push(Aa);for(const e of t.projects)if(Ca.includes(e.id))for(const t of e.models)for(const e of a)za(e,t)}const Oa=t=>{const a=String(t.detail??"");if("session-storage"===t.id&&"ok"===t.status)return e("health.detail.session-storage.ok",{count:a});if("workspace-registry"===t.id&&"ok"===t.status)return e("health.detail.workspace-registry.ok",{count:a});if("dsh-home"===t.id&&"ok"===t.status)return e("health.detail.dsh-home.ok",{mode:a});if("backup-storage"===t.id){const[t="0",r="0"]=a.split(":");return 0===Number(t)?e("health.detail.backup-storage.empty"):e("health.detail.backup-storage.ok",{count:t,size:sa(r)})}if("tar"===t.id&&"ok"===t.status)return e("health.detail.tar.ok");if("permissions"===t.id)return e("ok"===t.status?"health.detail.permissions.ok":"health.detail.permissions.warning",{count:a||"0"});if("runtime-env"===t.id)return"manual"===a?e("health.detail.runtime-env.manual"):"declared"===a?e("health.detail.runtime-env.declared"):"unknown"===a?e("health.detail.runtime-env.unknown"):e("health.detail.runtime-env.managed",{kind:e(`env.kind.${a}`)});if("node-version"===t.id){const[r="",n=""]=a.split(":");return e("ok"===t.status?"health.detail.node-version.ok":"health.detail.node-version.warning",{version:r,required:n})}if("plugins"===t.id){if("unavailable"===a)return e("health.detail.plugins.unavailable");const[r,n,s,i]=a.split(":");if("ok"===t.status)return e("health.detail.plugins.ok",{total:r});const o=[];return(Number(n)||0)>0&&o.push(e("plugin.issue.failed",{failed:n})),(Number(s)||0)>0&&o.push(e("plugin.issue.pending",{pending:s})),(Number(i)||0)>0&&o.push(e("plugin.issue.info",{count:i})),o.join(",")}if("plugin-compat"===t.id){if("unavailable"===a)return e("health.detail.plugin-compat.unavailable");const r=a.split(":"),n=r[0],s=r[1],i=r[2],o=r[3],l=r[4]||"0";if("ok"===t.status&&0===(Number(i)||0)&&0===(Number(l)||0))return e("health.detail.plugin-compat.ok",{total:n});const d=[];return(Number(s)||0)>0&&d.push(e("plugin.compat.issue.broken",{count:s})),(Number(l)||0)>0&&d.push(e("plugin.compat.issue.soft",{count:l})),(Number(i)||0)>0&&d.push(e("plugin.compat.issue.declared",{count:i})),(Number(o)||0)>0&&d.push(e("plugin.compat.issue.unknown",{count:o})),d.join(",")}return e("health.detail.generic",{status:e(`health.status.${t.status}`)})},Ra=(t,a,n)=>r.createElement("div",{style:{padding:"10px",borderRadius:"7px",background:"var(--dsw-alias-bg-layer-2)",color:"var(--dsw-alias-label-primary)"}},r.createElement("div",{style:{fontSize:"12px",fontWeight:700,marginBottom:"5px"}},e(a)),(e=>[["usage.total",ha(ga(e,"inputTokens")+ga(e,"outputTokens")+ga(e,"cacheTokens"))],...ca.map(([t,a])=>[a,ha(ga(e,t))]),["usage.steps",va(e.steps,"steps")],["usage.hitRate",va(e.cacheHitRate,"cacheHitRate")]])(n).map(([a,n],s)=>r.createElement("div",{key:a,"data-testid":`usage-summary-${t}-${s}`,style:{display:"flex",justifyContent:"space-between",gap:"12px",padding:"4px 0",fontSize:"12px",borderTop:0===s?0:"1px solid var(--dsw-alias-border-l1)"}},r.createElement("span",{style:{color:"var(--dsw-alias-label-secondary)"}},e(a)),r.createElement("span",{style:{fontWeight:650}},n)))),La=[...("today"===St?Aa:"all"===St?Ma:Ta).values()].sort((e,t)=>ma(t)-ma(e)||t.steps-e.steps||e.id.localeCompare(t.id)),$a=wt?La:La.slice(0,3),Wa=Math.max(0,La.length-3),ja=Math.max(1,...$a.map(e=>ma(e))),Ba=e=>(e||[]).filter(e=>"all"===vt||e.projectId===vt).sort((e,t)=>t.count-e.count||e.key.localeCompare(t.key)),_a=Ba(De?.errors?.models),Pa=Ba(De?.errors?.tools),Va=Array.isArray(De?.failedSessions)?De.failedSessions:[],Fa=Number.isFinite(Number(De?.successfulSessions))?Number(De.successfulSessions):Math.max(0,Number(De?.indexedSessions||0)-Va.filter(e=>e&&!0===e.stale).length),Ua=0===Va.length?null:r.createElement("div",{"data-testid":"usage-failure-warning",style:{marginTop:"10px",padding:"10px 12px",borderRadius:"8px",border:"1px solid var(--dsh-svc-warning)",background:"var(--dsh-svc-raised-bg)",color:"var(--dsh-svc-text)"}},r.createElement("div",{style:{fontSize:"12px",lineHeight:1.5,fontWeight:650}},e("usage.failures.global",{successful:Fa.toLocaleString(),failed:Va.length.toLocaleString()})),Va.some(e=>e&&!0===e.stale)?r.createElement("div",{style:{marginTop:"4px",fontSize:"11px",lineHeight:1.5,color:"var(--dsh-svc-text-muted)"}},e("usage.failures.staleHint")):null,r.createElement("button",{type:"button","data-testid":"usage-failure-details-toggle","aria-expanded":String(Ve),style:Object.assign({},Gt,{marginTop:"5px",padding:0}),onClick:()=>Fe(e=>!e)},`${Ve?"▾":"▸"} ${e(Ve?"usage.failures.hide":"usage.failures.show")}`),Ve?r.createElement("div",{"data-testid":"usage-failure-details",style:{display:"grid",gap:"6px",marginTop:"8px"}},Va.map((t,a)=>{const n=t&&"object"==typeof t?t:{};return r.createElement("div",{key:`${String(n.id||"unknown")}:${a}`,style:{padding:"7px 9px",borderRadius:"6px",border:"1px solid var(--dsh-svc-border)",background:"var(--dsh-svc-card-bg)",fontSize:"11px",lineHeight:1.5}},r.createElement("div",{style:{overflowWrap:"anywhere"}},`${e("usage.failures.id")}: ${"string"==typeof n.id&&""!==n.id?n.id:"—"}`),r.createElement("div",{style:{overflowWrap:"anywhere"}},`${e("usage.failures.code")}: ${"string"==typeof n.code&&""!==n.code?n.code:"—"}`),r.createElement("div",{style:{overflowWrap:"anywhere",color:"var(--dsh-svc-text-muted)"}},`${e("usage.failures.message")}: ${["format-migration-failed","session-read-failed","session-fold-failed"].includes(n.code)?e(`usage.failures.reason.${n.code}`):"string"==typeof n.message&&""!==n.message?n.message:"—"}`),r.createElement("div",{style:{marginTop:"2px",color:"var(--dsh-svc-warning)"}},e(!0===n.stale?"usage.failures.stale":"usage.failures.notStale")))})):null),Ka=(t,a)=>r.createElement("div",{key:t,style:{display:"grid",gap:"6px",marginTop:"8px"}},0===a.length?r.createElement("p",{style:Yt},e("model"===t?"usage.errors.empty":"usage.toolErrors.empty")):a.map(a=>r.createElement("div",{key:`${t}:${a.projectId}:${a.key}`,style:{padding:"8px 10px",borderRadius:"6px",background:"var(--dsw-alias-bg-layer-2)",border:"1px solid var(--dsw-alias-state-error-primary)",color:"var(--dsw-alias-label-primary)",fontSize:"12px"}},r.createElement("div",{style:{display:"flex",justifyContent:"space-between",gap:"8px",fontWeight:600}},r.createElement("span",null,"model"===t?`${a.provider}/${a.model} · ${a.code}${null===a.status?"":` · ${a.status}`}`:`${a.tool} · ${a.code}`),r.createElement("span",null,e("usage.errors.count",{count:a.count}))),r.createElement("div",{style:{color:"var(--dsw-alias-label-secondary)",marginTop:"3px",overflowWrap:"anywhere"}},a.message)))),Ga=r.createElement("div",{key:"usage-section","data-testid":"usage-card",style:Jt},De&&Array.isArray(De.projects)&&De.projects.length>0?r.createElement("div",{"data-testid":"usage-project-tabs",style:{display:"flex",flexWrap:"wrap",gap:"14px",marginBottom:"12px",borderBottom:"1px solid var(--dsw-alias-border-l1)"}},r.createElement("button",{style:Object.assign({},Xt,"all"===vt?ea:{color:"var(--dsw-alias-label-secondary)",borderBottom:"2px solid transparent"}),onClick:()=>bt("all")},e("usage.allProjects")),De.projects.map(e=>r.createElement("button",{key:e.id,style:Object.assign({},Xt,vt===e.id?ea:{color:"var(--dsw-alias-label-secondary)",borderBottom:"2px solid transparent"}),onClick:()=>bt(e.id)},e.title))):null,Ua,De&&De.indexedSessions>0?r.createElement("div",{"data-testid":"usage-statistics-region",style:Object.assign({},Zt,{padding:"12px",borderRadius:"9px"})},r.createElement("div",{"data-testid":"usage-region-header",style:{display:"flex",alignItems:"center",justifyContent:"space-between",gap:"10px",flexWrap:"wrap",marginBottom:"8px"}},r.createElement("div",{style:{display:"flex",gap:"14px",flexWrap:"wrap",fontSize:"11px"}},ca.map(([,t,a])=>r.createElement("span",{key:t,style:{display:"inline-flex",alignItems:"center",gap:"5px"}},r.createElement("span",{style:{width:"9px",height:"9px",borderRadius:"2px",background:a}}),e(t)))),r.createElement("button",{type:"button","data-testid":"usage-refresh","data-variant":"neutral",style:Vt,onClick:Nt,disabled:je},e(je?"usage.refreshing":"usage.refresh"))),r.createElement("div",{"data-testid":"usage-chart",style:{position:"relative",display:"grid",gridTemplateColumns:"42px minmax(0, 1fr)",height:"180px",padding:"12px 10px 4px",borderRadius:"8px",background:"var(--dsh-svc-raised-bg)",color:"var(--dsw-alias-label-primary)",border:"1px solid var(--dsw-alias-border-l1)",borderBottom:"1px solid var(--dsw-alias-border-l2)"}},r.createElement("div",{"data-testid":"usage-y-axis","aria-label":e("usage.axis"),style:{position:"relative",height:"144px",fontSize:"10px",color:"var(--dsw-alias-label-secondary)"}},xa.map((e,t)=>r.createElement("span",{key:t,style:{position:"absolute",right:"7px",top:25*t+"%",transform:4===t?"translateY(-100%)":"translateY(-50%)"}},ha(e)))),r.createElement("div",{"data-testid":"usage-plot",style:{position:"relative",height:"164px"}},r.createElement("div",{style:{position:"absolute",inset:"0 0 20px",display:"flex",alignItems:"end",gap:"8px",borderBottom:"1px solid var(--dsw-alias-border-l2)"}},xa.map((e,t)=>r.createElement("div",{key:t,"data-testid":`usage-grid-${t}`,style:{position:"absolute",left:0,right:0,top:25*t+"%",borderTop:"1px solid var(--dsw-alias-border-l1)",pointerEvents:"none"}})),da.map((t,a)=>r.createElement("div",{key:t.key,"aria-label":e("usage.barDay",{day:t.label,total:ha(fa[a])}),style:{position:"relative",zIndex:1,flex:1,minWidth:0,alignSelf:"end"}},r.createElement("div",{"data-testid":`usage-bar-${t.key}`,style:{height:`${Math.max(2,fa[a]/ya*144)}px`,display:"flex",flexDirection:"column-reverse",justifyContent:"flex-start",borderRadius:"4px 4px 0 0",overflow:"hidden"}},ca.map(([e,n,s])=>{const i=ga(ba[a],e),o=0===fa[a]?0:i/fa[a]*100,l=`${t.key}-${e}`,d=gt&>.id===l;return r.createElement("div",{key:e,"data-testid":`usage-segment-${l}`,"data-value":i,onMouseEnter:e=>ht({id:l,date:t.key,totals:ba[a],x:e.clientX,y:e.clientY}),onMouseMove:e=>ht(t=>t&&t.id===l?Object.assign({},t,{x:e.clientX,y:e.clientY}):t),onMouseLeave:()=>ht(null),style:{height:`${o}%`,minHeight:i>0?"2px":0,background:s,opacity:gt&&!d?.42:1,cursor:i>0?"pointer":"default",transition:"opacity 120ms ease"}})}))))),r.createElement("div",{"data-testid":"usage-x-axis",style:{position:"absolute",left:0,right:0,bottom:"0",height:"20px",display:"flex",gap:"8px",alignItems:"end"}},da.map(e=>r.createElement("div",{key:e.key,style:{flex:1,minWidth:0,textAlign:"center",fontSize:"10px",color:"var(--dsw-alias-label-secondary)"}},e.label))))),r.createElement("div",{"data-testid":"usage-chart-summary",style:{position:"absolute",width:"1px",height:"1px",overflow:"hidden",clip:"rect(0 0 0 0)",whiteSpace:"nowrap"}},e("usage.chartSummary",{total:ha(fa.reduce((e,t)=>e+t,0))})),gt?r.createElement("div",{"data-testid":"usage-tooltip",style:{position:"fixed",left:`${gt.x+12}px`,top:`${gt.y+12}px`,zIndex:1e3,pointerEvents:"none",padding:"7px 9px",borderRadius:"6px",background:"var(--dsw-alias-bg-overlay)",color:"var(--dsw-alias-label-primary)",border:"1px solid var(--dsw-alias-border-l2)",boxShadow:"0 4px 12px rgba(0,0,0,0.2)",fontSize:"12px",fontWeight:600,whiteSpace:"pre-line",textAlign:"left"}},`${e("usage.tooltip.date",{date:gt.date})}\n${e("usage.tooltip.input",{value:Number(gt.totals.inputTokens||0).toLocaleString()})}\n${e("usage.tooltip.output",{value:Number(gt.totals.outputTokens||0).toLocaleString()})}\n${e("usage.tooltip.cache",{value:Number((gt.totals.cacheReadTokens||0)+(gt.totals.cacheWriteTokens||0)).toLocaleString()})}`):null,r.createElement("div",{style:{display:"grid",gridTemplateColumns:"repeat(2, minmax(0, 1fr))",gap:"8px",marginTop:"10px"}},Ra("today","usage.today",ka),Ra("seven","usage.sevenDays",Ea)),r.createElement("div",{"data-testid":"usage-model-list",style:{marginTop:"10px",padding:"8px 10px",borderRadius:"8px",background:"var(--dsh-svc-raised-bg)",border:"1px solid var(--dsw-alias-border-l1)"}},r.createElement("div",{style:{display:"flex",justifyContent:"space-between",alignItems:"center",gap:"8px",flexWrap:"wrap",marginBottom:"4px"}},r.createElement("div",{"data-testid":"usage-model-sort-hint",style:{fontSize:"11px",color:"var(--dsw-alias-label-secondary)"}},e(`usage.modelSortHint.${St}`)),r.createElement("div",{"data-testid":"usage-model-scope-tabs",style:{display:"flex",gap:"2px"}},["today","week","all"].map(t=>r.createElement("button",{key:t,"data-testid":`usage-model-scope-${t}`,style:Object.assign({},ta,St===t?ea:{color:"var(--dsw-alias-label-secondary)",borderBottom:"2px solid transparent"}),onClick:()=>qt(t)},e(`usage.modelScope.${t}`))))),$a.map((t,a)=>{const n=ma(t),s=Math.round(n/ja*1e4)/100+"%";return r.createElement("div",{key:t.id,"data-testid":`usage-model-row-${t.id}`,style:{padding:"8px 2px",borderTop:0===a?0:"1px solid var(--dsw-alias-border-l1)"}},r.createElement("div",{style:{display:"flex",justifyContent:"space-between",gap:"12px",alignItems:"baseline",fontSize:"12px"}},r.createElement("span",{style:{overflowWrap:"anywhere"}},t.id),r.createElement("span",{style:{fontWeight:650,whiteSpace:"nowrap"}},ha(n))),r.createElement("div",{"data-testid":`usage-model-bar-${t.id}`,"data-value":n,"aria-label":e(`usage.modelBar.${St}`,{model:t.id,total:ha(n)}),style:{height:"8px",borderRadius:"4px",marginTop:"6px",overflow:"hidden",background:"var(--dsw-alias-border-l1)"}},r.createElement("div",{style:{display:"flex",height:"100%",width:s}},ca.map(([e,,a])=>{const s=((e,t)=>"cacheTokens"===t?Number(e.cacheReadTokens||0)+Number(e.cacheWriteTokens||0):Number(e[t]||0))(t,e);return s>0?r.createElement("div",{key:e,"data-testid":`usage-model-segment-${t.id}-${e}`,style:{width:s/n*100+"%",background:a}}):null}))),r.createElement("div",{style:{color:"var(--dsw-alias-label-secondary)",fontSize:"11px",marginTop:"4px",textAlign:"right"}},e("usage.modelLine",{steps:Number(t.steps||0).toLocaleString(),hitRate:va(pa(t),"cacheHitRate"),input:ha(t.inputTokens),output:ha(t.outputTokens)})))}),Wa>0?r.createElement("button",{style:Object.assign({},Gt,{borderTop:"1px solid var(--dsw-alias-border-l1)",marginTop:"2px"}),onClick:()=>Et(e=>!e)},`${wt?"▾":"▸"} ${e(wt?"usage.models.less":"usage.models.more",{count:Wa})}`):null)):r.createElement("p",{style:Yt},_e||e("usage.empty")),...De&&De.indexedSessions>0?[]:[r.createElement("div",{key:"usage-refresh-fallback",style:Qt},r.createElement("button",{style:Vt,"data-variant":"neutral",onClick:Nt,disabled:je},e(je?"usage.refreshing":"usage.refresh")))]),Qa=s&&"string"==typeof s.platform&&s.platform?`${{win32:"Windows",darwin:"macOS",linux:"Linux",freebsd:"FreeBSD",openbsd:"OpenBSD"}[s.platform]||s.platform}${"string"==typeof s.arch&&s.arch?` · ${s.arch}`:""}`:"—",Ya=r.createElement("div",{key:"container-info",style:{marginTop:"18px"}},r.createElement("div",{style:na},e("overview.container")),s?r.createElement("div",{"data-testid":"health-display",style:Object.assign({},Zt,{display:"grid",gridTemplateColumns:"repeat(2, minmax(0, 1fr))",gap:"8px"})},ia("health.platform",Qa),ia("health.nodeVersion","string"==typeof s.nodeVersion&&s.nodeVersion?s.nodeVersion:"—"),ia("health.uptime",(t=>{const a=Math.floor(Number(t)/60);return e("health.uptimeValue",{hours:Math.floor(a/60),minutes:a%60})})(s.uptimeSeconds)),ia("health.rss",(e=>{const t=Number(e)/1048576;return(Math.round(10*t)/10).toLocaleString(void 0,{maximumFractionDigits:1})+" MB"})(s.rssBytes)),ia("health.liveSessions",String(s.liveSessions)),ia("health.persistedSessions",String(s.persistedSessions)),ia("health.activeAgents",String(s.activeAgents)),ia("health.activeJobs",String(s.activeJobs))):r.createElement("p",{style:Yt},c||e("version.loading"))),Ja=r.createElement("div",{key:"overview-errors",style:{marginTop:"18px"}},r.createElement("div",{"data-testid":"overview-errors-title",style:na},e("overview.errors")),r.createElement("div",{"data-testid":"overview-errors-region",style:Zt},r.createElement("div",{style:Object.assign({},Yt,{margin:"-3px 0 7px"})},e("usage.errors.recent")),r.createElement("div",{style:{display:"grid",gap:"7px"}},r.createElement("div",null,r.createElement("button",{style:Gt,onClick:()=>yt(e=>!e)},`${ft?"▾":"▸"} ${e("usage.errors.toggle",{count:_a.length})}`),ft?r.createElement("div",{style:{padding:"0 2px 8px"}},Ka("model",_a)):null),r.createElement("div",null,r.createElement("button",{style:Gt,onClick:()=>kt(e=>!e)},`${xt?"▾":"▸"} ${e("usage.toolErrors.toggle",{count:Pa.length})}`),xt?r.createElement("div",{style:{padding:"0 2px 8px"}},Ka("tool",Pa)):null)))),Za=r.createElement("div",{"data-testid":"health-diagnostics-region",style:Zt},p&&"ok"!==p.status?r.createElement("div",{style:{marginTop:"10px",padding:"9px 11px",borderRadius:"7px",background:"error"===p.status?"rgba(211,51,51,0.1)":"rgba(198,128,0,0.12)",border:"1px solid "+("error"===p.status?"rgba(211,51,51,0.3)":"rgba(198,128,0,0.3)")}},r.createElement("div",{style:{fontSize:"12px",fontWeight:700}},e("health.alert.title")),r.createElement("div",{style:Yt},e("health.alert.diagnostics",{status:e("health.overall."+p.status)}))):null,p?r.createElement("div",{"data-testid":"health-check-list",style:Object.assign({},Zt,{marginTop:"10px",padding:"8px 10px"})},p.checks.map((t,a)=>{const n="error"===t.status||"warning"===t.status&&!0!==t.advisory,s="ok"===t.status?"var(--dsh-svc-success)":"warning"===t.status?"var(--dsh-svc-warning)":"info"===t.status?"var(--dsh-svc-info)":"var(--dsh-svc-danger)";return r.createElement("div",{key:t.id,style:{display:"flex",alignItems:"flex-start",gap:"9px",padding:"9px 10px",borderRadius:"6px",borderTop:0===a?0:"1px solid var(--dsh-svc-border)",background:n?"error"===t.status?"rgba(211,51,51,0.08)":"rgba(198,128,0,0.10)":"transparent"}},r.createElement("span",{"aria-hidden":"true",style:{flex:"none",width:"7px",height:"7px",...M("50%"),marginTop:"5px",background:s}}),r.createElement("div",{style:{minWidth:0,flex:1}},r.createElement("div",{style:{fontSize:"12px",fontWeight:n?650:550,color:"var(--dsh-svc-text)"}},e("health.check."+t.id)),r.createElement("div",{style:{fontSize:"11px",lineHeight:1.5,marginTop:"2px",color:"ok"===t.status?"var(--dsh-svc-text-muted)":n?"error"===t.status?"var(--dsh-svc-danger)":"var(--dsh-svc-warning)":"var(--dsh-svc-text-muted)"}},Oa(t))))})):null),Xa=Array.isArray(p?.pluginIssues)?p.pluginIssues:[],er=0===Xa.length?null:r.createElement("div",{"data-testid":"plugin-issue-list",style:{marginTop:"6px",padding:"8px 10px",borderRadius:"6px",border:"1px solid var(--dsh-svc-border)",background:"var(--dsh-svc-raised-bg)"}},Xa.map((t,a)=>{const n="failed"===t.phase,s="disposed"===t.phase||"unknown"===t.phase,i=n?"var(--dsh-svc-danger)":s?"var(--dsh-svc-info)":"var(--dsh-svc-warning)",o=f===t.entryId,d=x===t.entryId;return r.createElement("div",{key:t.entryId,"data-testid":`plugin-issue-${t.entryId}`,style:{display:"flex",alignItems:"flex-start",gap:"9px",padding:"8px 2px",borderTop:0===a?0:"1px solid var(--dsh-svc-border)"}},r.createElement("span",{"aria-hidden":"true",style:{flex:"none",width:"7px",height:"7px",...M("50%"),marginTop:"6px",background:i}}),r.createElement("div",{style:{minWidth:0,flex:1}},r.createElement("div",{style:{display:"flex",alignItems:"baseline",gap:"8px",flexWrap:"wrap"}},r.createElement("span",{style:{fontFamily:"var(--ds-font-family-code, monospace)",fontSize:"12px",fontWeight:600,overflowWrap:"anywhere",color:"var(--dsw-alias-label-primary)"}},t.moduleName),r.createElement("span",{style:{fontSize:"11px",fontWeight:650,color:i}},e("plugin.state."+t.phase))),void 0!==t.error&&null!==t.error?r.createElement("div",{style:{fontSize:"11px",marginTop:"3px",color:"var(--dsh-svc-danger)",lineHeight:1.5,overflowWrap:"anywhere"}},e("plugin.error",{error:t.error})):null,void 0!==t.missingDeps&&t.missingDeps.length>0?r.createElement("div",{style:{fontSize:"11px",marginTop:"3px",color:"var(--dsh-svc-warning)",lineHeight:1.5,overflowWrap:"anywhere"}},e("plugin.missingDeps",{deps:t.missingDeps.join(", ")})):null,n?r.createElement("div",{style:{marginTop:"6px"}},o?r.createElement("div",{style:{padding:"8px 10px",borderRadius:"6px",border:"1px solid var(--dsw-alias-state-error-primary)",background:"rgba(211,51,51,0.08)"}},r.createElement("p",{style:Object.assign({},Yt,{margin:"0 0 6px",color:"var(--dsw-alias-state-error-primary)"})},e("plugin.restartHint",{name:t.moduleName})),r.createElement("div",{style:{display:"flex",gap:"8px"}},r.createElement("button",{type:"button","data-testid":`plugin-restart-confirm-${t.entryId}`,style:Ft,disabled:d,onClick:()=>(async t=>{if(null!==t&&"object"==typeof t&&null===x){k(t.entryId),E(null);try{const e=await l("plugin-restart",{entryId:t.entryId});if(!e||!0!==e.ok)throw Object.assign(new Error("plugin restart failed"),{code:e?.error});y(null),await Lt(!0)}catch(t){y(null),E((t=>{const a="string"==typeof t&&t.length>0?t:"internal-error";if(a.startsWith("restart-failed:")){const t=a.slice(15).trim(),r=e("plugin.error.restart-failed");return e("plugin.restartFailed",{detail:""===t?r:`${r}(${t})`})}const r={"unknown-plugin":"plugin.error.unknown-plugin","loader-unavailable":"plugin.error.loader-unavailable","plugin-disabled":"plugin.error.plugin-disabled","not-failed":"plugin.error.not-failed"}[a];return e("plugin.restartFailed",{detail:void 0===r?a:e(r)})})(t?.code??String(t?.message||t)))}finally{k(null)}}})(t)},e(d?"plugin.restarting":"plugin.restartConfirm")),r.createElement("button",{type:"button",style:Kt,disabled:d,onClick:()=>{y(null),E(null)}},e("plugin.restartCancel")))):r.createElement("button",{type:"button","data-testid":`plugin-restart-${t.entryId}`,style:Ut,disabled:d,onClick:()=>{y(t.entryId),E(null)}},e(d?"plugin.restarting":"plugin.restart"))):null,w?r.createElement("p",{"data-testid":"plugin-restart-error",style:Object.assign({},Yt,{margin:"4px 0 0",color:"var(--dsw-alias-state-error-primary)"})},w):null))})),tr=null!==p?.pluginCompat&&"object"==typeof p?.pluginCompat?p.pluginCompat:null,ar=Array.isArray(tr?.issues)?tr.issues:[],rr=Array.isArray(tr?.soft)?tr.soft:[],nr=Array.isArray(tr?.declaredOnly)?tr.declaredOnly:[],sr=Array.isArray(tr?.unknown)?tr.unknown:[],ir={broken:0,soft:1,declared:2,unknown:3},or={"client-runtime":{since:"0.1.2-alpha.2",kind:"package-removed"},"sqlite-persistence":{since:"0.1.2-alpha.3",kind:"package-removed"},"code-runtime":{since:"0.1.6-alpha.1",kind:"package-removed"},"e2b-runtime":{since:"0.1.6-alpha.1",kind:"package-removed"},"session-start-event":{since:"0.1.6-alpha.1",kind:"event-removed"},"chat-hash":{since:"0.1.2-alpha.2",kind:"hash-migrated"},"stats-hash":{since:"0.1.2-alpha.2",kind:"hash-migrated"},"time-hover-root":{since:"0.1.2-alpha.2",kind:"attribute-removed"},"settings-plugin-item":{since:"0.1.6-alpha.2",kind:"slot-retired"},"sessions-open-method":{since:"0.1.6-alpha.2",kind:"method-removed"}},lr=[...ar.map(e=>({kind:"broken",moduleName:e.moduleName,breaks:e.breaks})),...rr.map(e=>({kind:"soft",moduleName:e.moduleName,breaks:e.breaks})),...nr.map(e=>({kind:"declared",moduleName:e.moduleName,breaks:e.breaks})),...sr.map(e=>({kind:"unknown",moduleName:e.moduleName,reason:e.reason}))],dr=new Map;for(const e of lr){const t=dr.get(e.moduleName);void 0===t?dr.set(e.moduleName,[e]):t.push(e)}const cr=t=>"broken"===t.kind||"soft"===t.kind?t.breaks.map(t=>e("plugin.compat.break."+t)).join(";"):"declared"===t.kind?e("plugin.compat.declared"):e(`plugin.compat.unknown.${t.reason}`),ur=[...dr].map(([e,t],a)=>{const r=[...t].sort((e,t)=>ir[e.kind]-ir[t.kind]);return{key:`${r[0].kind}-${a}`,moduleName:e,findings:r}}),pr=null===tr||0===ur.length?null:r.createElement("div",{"data-testid":"plugin-compat-list",style:{marginTop:"6px",padding:"8px 10px",borderRadius:"6px",border:"1px solid var(--dsh-svc-border)",background:"var(--dsh-svc-raised-bg)"}},ur.map((t,a)=>{const n="broken"===t.findings[0].kind?"var(--dsh-svc-warning)":"var(--dsh-svc-info)";return r.createElement("div",{key:t.key,"data-testid":`plugin-compat-row-${a}`,style:{display:"flex",alignItems:"flex-start",gap:"9px",padding:"8px 2px",borderTop:0===a?0:"1px solid var(--dsh-svc-border)"}},r.createElement("span",{"aria-hidden":"true",style:{flex:"none",width:"7px",height:"7px",...M("50%"),marginTop:"7.5px",background:n}}),r.createElement("div",{style:{minWidth:0,flex:1}},r.createElement("span",{style:{fontFamily:"var(--ds-font-family-code, monospace)",fontSize:"12px",fontWeight:600,lineHeight:"17px",overflowWrap:"anywhere",color:"var(--dsw-alias-label-primary)"}},t.moduleName),t.findings.flatMap((n,s)=>{const i=Array.isArray(n.breaks)&&n.breaks.length>0?n.breaks.map((i,o)=>{const l=or[i],d=l?.since,c=l?.kind,u=!d||!fe||Ze(fe,d)>=0,p="plugin.compat.category."+c,m=e(p)!==p?e(p):c,g=u?e("plugin.compat.badge.active"):e("plugin.compat.badge.future",{since:d||""}),h="plugin.compat.reason."+i,v="plugin.compat.impact."+i,b="plugin.compat.advice."+i,f=e(h)!==h,y=e(v)!==v,x=e(b)!==b;return r.createElement("div",{key:`${t.key}-${n.kind}-detail-${o}`,"data-testid":`plugin-compat-detail-${a}-${s}-${o}`,style:{marginTop:"5px",padding:"6px 10px",borderRadius:"6px",background:u?"rgba(230, 162, 60, 0.05)":"rgba(64, 158, 255, 0.05)",border:"1px solid "+(u?"rgba(230, 162, 60, 0.25)":"rgba(64, 158, 255, 0.25)"),fontSize:"11px",lineHeight:1.6}},r.createElement("div",{style:{display:"flex",alignItems:"center",gap:"6px",flexWrap:"wrap",marginBottom:"3px"}},m?r.createElement("span",{style:{fontWeight:650,padding:"1px 5px",borderRadius:"3px",background:u?"var(--dsh-svc-warning)":"var(--dsh-svc-info)",color:"#fff",fontSize:"10px"}},m):null,d?r.createElement("span",{style:{padding:"1px 5px",borderRadius:"3px",background:"var(--dsh-svc-border)",color:"var(--dsw-alias-label-primary)",fontSize:"10px",fontFamily:"var(--ds-font-family-code, monospace)",fontWeight:600}},`DSH ≥ ${d}`):null,r.createElement("span",{style:{color:u?"var(--dsh-svc-warning)":"var(--dsh-svc-info)",fontSize:"10px",fontWeight:600}},g)),f?r.createElement("div",{style:{color:"var(--dsw-alias-label-secondary)",marginTop:"2px"}},r.createElement("strong",{style:{color:"var(--dsw-alias-label-primary)",marginRight:"4px"}},e("plugin.compat.meta.reason")+":"),e(h)):null,y?r.createElement("div",{style:{color:"var(--dsw-alias-label-secondary)",marginTop:"2px"}},r.createElement("strong",{style:{color:"var(--dsw-alias-label-primary)",marginRight:"4px"}},e("plugin.compat.meta.impact")+":"),e(v)):null,x?r.createElement("div",{style:{color:"var(--dsw-alias-label-secondary)",marginTop:"2px"}},r.createElement("strong",{style:{color:"var(--dsw-alias-label-primary)",marginRight:"4px"}},e("plugin.compat.meta.advice")+":"),e(b)):null)}):[];return[r.createElement("div",{key:`${t.key}-${n.kind}-kind`,"data-testid":`plugin-compat-kind-${a}-${s}`,style:{fontSize:"11px",fontWeight:650,marginTop:0===s?"3px":"7px",color:"broken"===n.kind?"var(--dsh-svc-warning)":"var(--dsh-svc-info)"}},e("plugin.compat.kind."+n.kind)),r.createElement("div",{key:`${t.key}-${n.kind}-text`,"data-testid":`plugin-compat-line-${a}-${s}`,style:{fontSize:"11px",marginTop:"1px",lineHeight:1.6,overflowWrap:"anywhere",color:"broken"===n.kind?"var(--dsh-svc-warning)":"var(--dsh-svc-text-muted)"}},cr(n)),...i]})))})),mr=S&&!0===S.supported?S.items.filter(e=>!1===e.writable).length:0,gr=mr>0||D&&(D.ownerIssues>0||D.directoryModeIssues>0||D.fileModeIssues>0||D.unreadable>0),hr=S&&!0===S.supported?r.createElement("div",{key:"permissions-section",style:{marginTop:"18px"}},r.createElement("div",{style:{display:"flex",alignItems:"center",justifyContent:"space-between",gap:"10px",flexWrap:"wrap"}},r.createElement("div",{style:na},e("permissions.title")),r.createElement("button",{type:"button","data-testid":"permissions-toggle","aria-expanded":String(L),onClick:()=>N(e=>!e),style:{fontSize:"12px",lineHeight:"20px",padding:"2px 12px",...M(999),border:"1px solid var(--dsh-svc-border-strong)",background:"transparent",color:mr>0?"var(--dsw-alias-state-warn-primary)":"var(--dsw-alias-label-primary)",cursor:"pointer"}},`${L?"▾":"▸"} ${e(L?"permissions.hide":"permissions.show")}${mr>0?` · ${mr}`:""}`)),L?r.createElement("div",{style:Object.assign({},Zt,{marginTop:"4px"})},r.createElement("p",{style:Yt},e("permissions.description")),mr>0?r.createElement("div",{style:{marginTop:"8px",padding:"9px 11px",borderRadius:"7px",background:"rgba(198,128,0,0.12)",border:"1px solid rgba(198,128,0,0.3)"}},r.createElement("div",{style:{fontSize:"12px",fontWeight:700}},e("health.alert.title")),r.createElement("div",{style:Yt},e("permissions.summary.warning",{count:mr}))):null,r.createElement("p",{style:Object.assign({},Yt,{fontWeight:600,color:mr>0?"var(--dsw-alias-state-warn-primary)":"var(--dsw-alias-label-primary)"})},e(mr>0?"permissions.summary.warning":"permissions.summary.ok",{count:mr>0?mr:S.items.length})),r.createElement("p",{style:Object.assign({},Yt,{fontWeight:600})},e("permissions.target",{owner:S.targetOwner})),r.createElement("div",{style:{display:"flex",gap:"8px",flexWrap:"wrap"}},r.createElement("button",{style:Vt,onClick:()=>R(e=>!e)},e(O?"permissions.hideDetails":"permissions.showDetails")),r.createElement("button",{style:Vt,"data-variant":"neutral",onClick:async()=>{if(S&&!0===S.supported){j(!0),H(null);try{const e=await l("permissions-deep",{planId:S.planId});if(!e||!1===e.ok)throw new Error("deep permission check failed");$(e.value)}catch(t){H(e("permissions.error"))}finally{j(!1)}}},disabled:W},e(W?"permissions.deepChecking":"permissions.deep"))),D?r.createElement("p",{style:Yt},e("permissions.deepSummary",{scanned:D.scanned,duration:D.durationMs,owner:D.ownerIssues,directories:D.directoryModeIssues,files:D.fileModeIssues,unreadable:D.unreadable})):null,O?r.createElement("div",{style:{display:"grid",gap:"8px",marginTop:"8px"}},S.items.map(e=>r.createElement("div",{key:e.path,style:{padding:"9px 10px",borderRadius:"6px",border:"1px solid var(--dsw-alias-border-l1)",background:"var(--dsh-svc-raised-bg)",color:"var(--dsw-alias-label-primary)"}},r.createElement("div",{style:{fontSize:"12px",fontWeight:600}},e.label),r.createElement("div",{style:{fontFamily:"monospace",fontSize:"11px",color:"var(--dsw-alias-label-secondary)",overflowWrap:"anywhere"}},e.path),r.createElement("div",{style:{fontFamily:"monospace",fontSize:"12px",marginTop:"3px"}},`${e.owner} · ${e.mode}`)))):null,C?r.createElement("div",{style:{marginTop:"10px"}},r.createElement("p",{style:Object.assign({},Yt,{color:"var(--dsw-alias-state-error-primary)"})},e("permissions.confirmHint")),r.createElement("div",{style:{display:"flex",gap:"8px"}},r.createElement("button",{style:Ft,disabled:A,onClick:async()=>{if(S&&!0===S.supported){T(!0),H(null);try{const e=await l("permissions-repair",{planId:S.planId});if(!e||!1===e.ok)throw new Error("permission repair failed");q(e.value),z(!1)}catch(t){H(e("permissions.error"))}finally{T(!1)}}}},e(A?"permissions.repairing":"permissions.confirm")),r.createElement("button",{style:Kt,disabled:A,onClick:()=>z(!1)},e("permissions.cancel")))):gr?r.createElement("button",{style:Object.assign({},Ut,{marginTop:"10px"}),"data-variant":"dangerGhost",disabled:A,onClick:()=>z(!0)},e("permissions.repair")):null,I?r.createElement("p",{style:Object.assign({},Yt,{color:"var(--dsw-alias-state-error-primary)"})},I):null):null):null,vr=r.createElement("div",{key:"health-section","data-testid":"health-card",style:Jt},Za,er,pr,hr),br=V&&!0===U?.active,fr=br&&U.phase||"copy",yr={copy:1,archive:2,validate:3,publish:4}[fr]||1,xr=(()=>{if(!br)return 0;const e=Number(U.totalBytes)||0;let t;if("copy"===fr)t=e>0?Math.min(30,Math.floor(U.copiedBytes/e*30)):0;else if("archive"===fr){const a=e>0?Math.min(1,Number(U.archiveBytes)/e):0;t=Math.min(70,30+Math.floor(40*a))}else t="validate"===fr?70:100;const a=Math.max(G.current,t);return G.current=a,a})(),kr=br?"copy"===fr?`${sa(U.copiedBytes)} / ${sa(U.totalBytes)}`:U.archiveBytes>0?sa(U.archiveBytes):"":"",wr=r.createElement("div",{key:"backup-section"},r.createElement("div",{style:na},e("backup.title")),r.createElement("div",{style:Object.assign({},Zt,{marginTop:"4px"})},r.createElement("p",{style:Yt},e("backup.description")),r.createElement("div",{style:{display:"flex",gap:"8px",marginTop:"12px",flexWrap:"wrap"}},r.createElement("button",{style:Object.assign({},Pt,{flex:1,minWidth:0,display:"inline-flex",alignItems:"center",justifyContent:"center",textAlign:"center"}),"data-variant":"brandGhost",onClick:async()=>{F(!0),Y(null),K(null),G.current=0;let e=!1,a=()=>{};const r=async()=>{if(!e){try{const t=await l("backup-progress",{});!e&&t&&t.ok&&K(!0===t.value?.active?t.value:null)}catch(e){}e||(a=t.timer.timeout(r,400))}};r();try{const e=await l("backup-create",{});if(!e||!1===e.ok)throw Object.assign(new Error("backup failed"),{code:e?.error});P({items:e.value.items,totalBytes:e.value.totalBytes})}catch(e){Y(Dt(e?.code))}finally{e=!0,a(),K(null),F(!1)}},disabled:V},e(V?"backup.creating":"backup.create")),r.createElement("label",{style:Object.assign({},Vt,{flex:1,minWidth:0,display:"inline-flex",alignItems:"center",justifyContent:"center",textAlign:"center",cursor:ge?"default":"pointer"})},e(ge?"backup.importing":"backup.import"),r.createElement("input",{type:"file",accept:".tar.gz,application/gzip",disabled:ge,onChange:t=>{const a=t.target.files&&t.target.files[0];if(t.target.value="",!a)return;he(!0),Y(null);const r=new FileReader;r.onload=async()=>{try{const e=new Uint8Array(r.result);let t="";for(let a=0;a<e.length;a+=32768)t+=String.fromCharCode(...e.subarray(a,a+32768));const n=await l("backup-import",{name:a.name,data:btoa(t)});if(!n||!1===n.ok)throw Object.assign(new Error("backup import failed"),{code:n?.error});P(n.value)}catch(t){Y(t?.code?Dt(t.code):e("backup.error"))}finally{he(!1)}},r.onerror=()=>{he(!1),Y(e("backup.error"))},r.readAsArrayBuffer(a)},style:{display:"none"}}))),V&&!0===U?.active?r.createElement("div",{"data-testid":"backup-progress",style:{marginTop:"10px"}},r.createElement("div",{style:{display:"flex",justifyContent:"space-between",gap:"8px",fontSize:"11px",color:"var(--dsw-alias-label-secondary)"}},r.createElement("span",null,e("backup.progress."+fr,{current:yr,total:4})),r.createElement("span",null,kr)),r.createElement("div",{style:{marginTop:"5px",height:"6px",...M("999px"),background:"var(--dsh-svc-raised-bg)",border:"1px solid var(--dsw-alias-border-l1)",overflow:"hidden"}},r.createElement("div",{style:{height:"100%",width:xr+"%",background:"var(--dsw-alias-brand-primary)",transition:"width 240ms ease"}}))):null,r.createElement("p",{style:Yt},e("backup.total",{size:sa(_.totalBytes)})),ce?r.createElement("div",{"data-testid":"backup-manual-restart",style:{marginTop:"10px",padding:"10px 12px",borderRadius:"8px",border:"1px solid var(--dsw-alias-state-warn-primary)",background:"rgba(198,128,0,0.10)"}},r.createElement("div",{style:{fontWeight:650,color:"var(--dsw-alias-state-warn-primary)"}},e("backup.manualRestartTitle")),r.createElement("p",{style:Object.assign({},Yt,{margin:"4px 0 0"})},e("backup.manualRestartBody"))):null,Q?r.createElement("p",{style:Object.assign({},Yt,{color:"var(--dsw-alias-state-error-primary)"})},Q):null,0===_.items.length?r.createElement("p",{style:Yt},e("backup.empty")):_.items.length>10?r.createElement("button",{style:Object.assign({},Kt,{marginTop:"8px"}),onClick:()=>be(e=>!e)},e(ve?"backup.hideRecords":"backup.showRecords")):null,_.items.length>0&&(_.items.length<=10||ve)?r.createElement("div",{style:{marginTop:"10px",display:"grid",gap:"8px"}},_.items.map(t=>r.createElement("div",{key:t.id,style:{padding:"9px 2px",borderBottom:"1px solid var(--dsh-svc-border)",color:"var(--dsw-alias-label-primary)"}},r.createElement("div",{style:{display:"flex",justifyContent:"space-between",gap:"12px",alignItems:"flex-start"}},r.createElement("div",null,r.createElement("div",{style:{fontFamily:"monospace",fontSize:"12px",overflowWrap:"anywhere"}},t.name),r.createElement("div",{style:{color:"var(--dsw-alias-label-secondary)",fontSize:"11px",marginTop:"3px"}},`${sa(t.sizeBytes)} · ${new Date(t.createdAt).toLocaleString()}`)),r.createElement("div",{style:{display:"flex",gap:"6px",flexShrink:0}},J===t.id||te===t.id?null:r.createElement("button",{style:ee(),disabled:pe||V,onClick:()=>(async t=>{me(!0),Y(null);try{const e=await l("backup-export",{id:t});if(!e||!1===e.ok)throw new Error("export failed");const a=document.createElement("a");a.href=e.value.url,a.download=e.value.name,document.body.appendChild(a),a.click(),document.body.removeChild(a)}catch(t){Y(e("backup.exportError"))}finally{me(!1)}})(t.id)},e(pe?"backup.exporting":"backup.export")),J===t.id||te===t.id?null:r.createElement("button",{style:ee(),disabled:V,onClick:()=>(async e=>{F(!0),Y(null),ue(!1),se(null),de(null),re(e);try{const t=await l("backup-inspect",{id:e});if(!t||!1===t.ok)throw Object.assign(new Error("backup inspect failed"),{code:t?.error});if(se(t.value),!0!==t.value.validForRestore)return;const a=await l("backup-restore-prepare",{id:e});if(!a||!1===a.ok)throw Object.assign(new Error("backup prepare failed"),{code:a?.error});de(a.value)}catch(e){Y(Dt(e?.code))}finally{F(!1)}})(t.id)},e(V&&te===t.id?"backup.inspecting":"backup.restore")),J===t.id||te===t.id?null:r.createElement("button",{style:Object.assign({},Ut,{minHeight:"28px",padding:"4px 9px"}),"data-variant":"dangerGhost",disabled:V,onClick:()=>Z(t.id)},e("backup.delete")))),J===t.id?r.createElement("div",{style:{marginTop:"8px"}},r.createElement("p",{style:Object.assign({},Yt,{color:"var(--dsw-alias-state-error-primary)",margin:"0 0 6px"})},e("backup.confirmHint")),r.createElement("div",{style:{display:"flex",gap:"8px"}},r.createElement("button",{style:Ft,disabled:V,onClick:()=>(async t=>{F(!0),Y(null);try{const e=await l("backup-delete",{id:t});if(!e||!1===e.ok)throw new Error("backup failed");P(e.value),Z(null)}catch(t){Y(e("backup.error"))}finally{F(!1)}})(t.id)},e("backup.confirm")),r.createElement("button",{style:Kt,disabled:V,onClick:()=>Z(null)},e("backup.cancel")))):te===t.id?r.createElement("div",{"data-testid":"backup-restore-preflight",style:{marginTop:"8px",padding:"10px",borderRadius:"8px",border:"1px solid var(--dsh-svc-border)",background:"var(--dsh-svc-raised-bg)"}},V&&null===ne?r.createElement("p",{style:Yt},e("backup.inspecting")):null!==ne?r.createElement("div",null,r.createElement("div",{style:{fontWeight:650,color:ne.validForRestore?"var(--dsh-svc-success)":"var(--dsh-svc-danger)"}},e(ne.validForRestore?"backup.integrity.ok":"backup.integrity.invalid")),r.createElement("p",{style:Object.assign({},Yt,{margin:"4px 0 0"})},e("backup.integrity.summary",{entries:ne.archive?.entryCount||0,size:sa(ne.archive?.logicalBytes||0),sessions:ne.sections?.sessions?.files||0,config:ne.sections?.config?.files?.length||0,profiles:ne.sections?.profiles?.count||0})),!0!==ne.validForRestore?r.createElement("ul",{style:Object.assign({},Yt,{margin:"6px 0 0",paddingLeft:"18px",color:"var(--dsh-svc-danger)"})},(ne.issues||[]).map((e,t)=>r.createElement("li",{key:t},Dt(e.code)))):null):null,null!==ie?r.createElement("div",{style:{marginTop:"8px"}},r.createElement("p",{style:Object.assign({},Yt,{color:"var(--dsw-alias-state-warn-primary)",margin:"0 0 6px"})},e("backup.restoreHint")),r.createElement("ul",{style:Object.assign({},Yt,{margin:"0 0 8px",paddingLeft:"18px"})},r.createElement("li",null,e("backup.plan.sessions")),r.createElement("li",null,e("backup.plan.config",{replace:ie.targets?.config?.replace?.length||0,remove:ie.targets?.config?.remove?.length||0})),r.createElement("li",null,e("backup.plan.profiles",{count:ie.targets?.profiles?.upsert?.length||0}))),r.createElement("p",{style:Object.assign({},Yt,{margin:"0 0 8px"})},e("backup.plan.expires",{time:new Date(ie.expiresAt).toLocaleTimeString()})),r.createElement("div",{style:{display:"flex",gap:"8px"}},r.createElement("button",{style:Ft,disabled:V,onClick:$t},e("backup.restoreConfirm")),r.createElement("button",{style:Kt,disabled:V,onClick:Wt},e("backup.cancel")))):r.createElement("button",{style:Kt,disabled:V,onClick:Wt},e("backup.cancel"))):null))):null)),Er=(t,a,n,s,i,o,l,d)=>{const c=s?s.restartPending?e("update.installedPendingRestart",{version:s.current||n||""}):"unpublished"===s.status?e("update.unpublished"):"unavailable"===s.status?e("update.unavailable"):s.upToDate?e("update.current"):e("update.available",{version:s.latest}):Te||e("update.checking"),u=s?s.restartPending?"var(--dsw-alias-state-warn-primary)":s.upToDate?"var(--dsw-alias-state-success-primary)":"var(--dsw-alias-state-warn-primary)":"var(--dsw-alias-label-secondary)",p=o&&s&&"unpublished"!==s.status&&"unavailable"!==s.status&&!s.upToDate?r.createElement("button",{type:"button",title:e(At?"update.detailsHide":"update.detailsButton"),style:{background:"transparent",border:0,padding:0,cursor:"pointer",display:"inline-flex",alignItems:"center",gap:"5px",fontSize:"12px",fontWeight:600,color:u},onClick:()=>Tt(e=>!e)},(m=At,r.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",width:12,height:12,viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:3,strokeLinecap:"round",strokeLinejoin:"round",style:{display:"block",transition:"transform 150ms ease",transform:m?"rotate(90deg)":"none"}},r.createElement("path",{d:"M9 6l6 6-6 6"}))),r.createElement("span",null,c)):r.createElement("div",{style:{color:u,fontWeight:600}},c);var m;return r.createElement("div",{key:t,className:"dshsvc-version-row",style:{display:"flex",flexWrap:"wrap",justifyContent:"space-between",alignItems:"center",gap:"8px 16px",padding:"10px 2px",borderTop:l?"1px solid var(--dsw-alias-border-l1)":0}},r.createElement("div",{className:"dshsvc-version-identity",style:{display:"flex",alignItems:"center",gap:"8px",flexWrap:"wrap",minWidth:0}},r.createElement("span",{style:{fontSize:"13px",fontWeight:650,whiteSpace:"nowrap"}},`${a} `),s?.url?r.createElement("a",{"data-testid":`version-${t}-link`,href:s.url,target:"_blank",rel:"noreferrer",style:{color:"var(--dsw-alias-label-primary)",textDecoration:"underline",fontSize:"12px",whiteSpace:"nowrap",marginLeft:"16px"}},s.current||n||e("version.loading")):r.createElement("code",{style:{fontSize:"12px",color:"var(--dsw-alias-label-primary)",marginLeft:"16px",whiteSpace:"nowrap"}},s?.current||n||e("version.loading")),d?r.createElement("div",{className:"dshsvc-version-note",style:{minWidth:0,lineHeight:1.5,overflowWrap:"anywhere"}},d):null),r.createElement("div",{className:"dshsvc-version-status",style:{display:"flex",flexWrap:"wrap",alignItems:"center",justifyContent:"flex-end",gap:"8px",fontSize:"12px",minWidth:0,overflowWrap:"anywhere"}},p,i||null))},Sr=Se?.dsh,qr=Sr&&"unpublished"!==Sr.status&&"unavailable"!==Sr.status&&!Sr.upToDate,Cr=et(fe),zr=Se?.plugin&&!Se.plugin.upToDate&&"available"===Se.plugin.status,Ar=1===Ze(Ht,ke||Se?.plugin?.current||null),Tr=pt||Ar,Mr=Tr&&null!==Ht?Object.assign({},Se?.plugin,{current:Ht,restartPending:!0}):Se?.plugin,Ir=!zr||Tr||ct?null:r.createElement("button",{style:Object.assign({},Vt,{minHeight:"24px",padding:"2px 8px",fontSize:"11px"}),disabled:Ue,onClick:Bt},e(Ue?"update.upgrading":"update.upgrade")),Hr=pt||Ar&&null!==It&&!0===It.manualStartLikely,Or=r.createElement("span",{key:"dsh-support-bound","data-testid":"version-dsh-support-bound",style:{fontSize:"12px",lineHeight:1.4,marginLeft:"2px",padding:Cr?"1px 6px":0,borderRadius:"4px",color:Cr?"var(--dsw-alias-state-error-primary)":"var(--dsw-alias-label-secondary)",background:Cr?"rgba(211,51,51,0.08)":"transparent",border:Cr?"1px solid rgba(211,51,51,0.3)":0,fontWeight:Cr?650:400,whiteSpace:"normal"}},e("version.dsh.supportBound",{limit:Ge})),Rr=r.createElement("div",{key:"version-card","data-testid":"version-card",style:Jt},r.createElement("div",{key:"title",style:na},e("version.title")),r.createElement("div",{style:Zt},Er("plugin","dsh-service",ke,Mr,Ir,!1,!1,Or),Er("dsh","DSH",fe,Sr,null,!0===qr,!0),At?r.createElement("div",{"data-testid":"version-channel-details",style:{marginTop:"6px",paddingTop:"8px",borderTop:"1px solid var(--dsw-alias-border-l1)",fontSize:"12px",lineHeight:1.7,color:"var(--dsw-alias-label-secondary)",display:"flex",flexDirection:"column",gap:"6px"}},r.createElement("div",null,e("update.details.current",{version:Sr?.current||fe||"—"})),r.createElement("div",null,e("update.details.latest",{version:Sr?.latest||"—"})),Je(e,Sr?.tags)):null,ct?r.createElement("div",{"data-testid":"upgrade-manual-confirm",style:{marginTop:"10px",padding:"10px 12px",borderRadius:"6px",background:"rgba(211,51,51,0.08)",border:"1px solid rgba(211,51,51,0.3)"}},r.createElement("p",{style:{margin:"0 0 6px",color:"var(--dsw-alias-state-error-primary)",fontSize:"13px",fontWeight:600}},e("update.manualConfirmTitle")),r.createElement("p",{style:Object.assign({},Yt,{margin:"0 0 8px"})},e("update.manualConfirm")),r.createElement("div",{style:Qt},r.createElement("button",{style:Ut,"data-variant":"dangerGhost",disabled:Ue,onClick:Bt},e(Ue?"update.upgrading":"update.manualProceed")),r.createElement("button",{style:Kt,disabled:Ue,onClick:()=>ut(!1)},e("restart.cancel")))):null,Hr?r.createElement("div",{"data-testid":"upgrade-manual-pending",style:{marginTop:"10px",padding:"10px 12px",borderRadius:"6px",border:"1px solid var(--dsw-alias-state-warn-primary)",background:"var(--dsh-svc-raised-bg)"}},r.createElement("p",{style:{margin:"0 0 4px",color:"var(--dsw-alias-state-warn-primary)",fontSize:"13px",fontWeight:650}},e("update.manualRestartTitle")),r.createElement("p",{style:Object.assign({},Yt,{margin:0})},e("update.manualRestartBody"))):null,Qe?r.createElement("p",{style:Object.assign({},Yt,{color:"var(--dsw-alias-state-error-primary)",margin:"4px 0 0"})},Qe):null)),Lr=r.createElement(Ye,{showNavToggle:!0}),{enabled:Nr,done:Dr,input:$r,bell:Wr,setEnabled:jr,setDone:Br,setInput:_r,setBell:Pr}=$e(),Vr="undefined"!=typeof Notification,Fr=Vr?Notification.permission:"denied",Ur=(e,t,a,n,s,i)=>r.createElement("div",{"data-testid":e,style:{display:"flex",alignItems:"center",justifyContent:"space-between",gap:"12px",padding:"5px 0"}},r.createElement("div",{style:{display:"flex",flexDirection:"column",gap:"2px"}},r.createElement("span",{style:{fontSize:"13px",color:"var(--dsw-alias-label-primary)"}},t),a?r.createElement("span",{style:Yt},a):null),((e,t,a)=>r.createElement("button",{type:"button",role:"switch","aria-checked":String(!0===e),"aria-disabled":a?"true":void 0,onClick:a?void 0:()=>t(!e),style:{width:"34px",height:"20px",...M("10px"),padding:0,flexShrink:0,position:"relative",border:"1px solid "+(e?"var(--dsw-alias-state-success-primary)":"var(--dsw-alias-border-l2)"),background:e?"var(--dsw-alias-state-success-primary)":"var(--dsw-alias-bg-layer-2)",cursor:a?"default":"pointer",opacity:a?.5:1,lineHeight:0}},r.createElement("span",{style:{position:"absolute",top:"1px",left:e?"15px":"1px",width:"16px",height:"16px",...M("50%"),background:e?"#fff":"var(--dsw-alias-label-tertiary)"}})))(n,s,i)),Kr=Vr?r.createElement("div",{style:{marginTop:"18px"}},r.createElement("div",{style:na},e("notification.title")),r.createElement("div",{style:Object.assign({},Zt,{marginTop:"4px"})},r.createElement("p",{style:Yt},e("notification.description")),"granted"!==Fr?r.createElement("div",{style:{marginTop:"8px",display:"flex",alignItems:"center",gap:"8px"}},r.createElement("button",{style:Vt,onClick:()=>{Notification.requestPermission().then(e=>{"granted"===e&&jr(!0)})}},e("notification.enable")),r.createElement("span",{style:Yt},"denied"===Fr?e("notification.denied"):"")):r.createElement("div",{style:{marginTop:"8px",display:"flex",flexDirection:"column"}},Ur("notify-row-master",e("notification.master"),null,Nr,jr,!1),Ur("notify-row-done",e("notification.done"),null,Dr,Br,!Nr),Ur("notify-row-input",e("notification.input"),null,$r,_r,!Nr),Ur("notify-row-bell",e("notification.bellShow"),null,Wr,Pr,!1)))):null,Gr=null!=Se&&(Se.dsh&&!1===Se.dsh.upToDate||Se.plugin&&!1===Se.plugin.upToDate),Qr=null!==_&&!V&&!Q,Yr=(p?.checks||[]).filter(e=>"error"===e.status||"warning"===e.status&&!0!==e.advisory&&"permissions"!==e.id),Jr=[];c&&Jr.push({level:"error",text:c}),_e&&Jr.push({level:"error",text:_e}),Q&&Jr.push({level:"error",text:Q}),Mt.error&&Jr.push({level:"error",text:String(Mt.error)}),I&&Jr.push({level:"error",text:I});for(const t of Yr)Jr.push({level:"error"===t.status?"error":"warning",text:e(`health.check.${t.id}`)+":"+Oa(t)});mr>0&&Jr.push({level:"warning",text:e("permissions.summary.warning",{count:mr})}),Gr&&Jr.push({level:"info",text:e("overview.updateAvailable")}),Qr&&0===_.items.length&&Jr.push({level:"info",text:e("overview.backupEmpty")});const Zr=Array.isArray(s?.resetCardsExpiringSoon)?s.resetCardsExpiringSoon:[];if(Zr.length>0){const t=Zr.map(e=>"string"==typeof e.label&&""!==e.label?e.label:e.provider).filter(e=>"string"==typeof e&&""!==e);Jr.push({level:"info",text:e("overview.resetCardExpiring",{cards:t.join("、")})})}const Xr=Jr.some(e=>"error"===e.level)?"error":Jr.some(e=>"warning"===e.level)?"warning":Jr.some(e=>"info"===e.level)?"info":"normal",en="normal"===Xr?e("overview.status.normal"):e(`overview.status.${Xr}`,{count:Jr.length}),tn=r.createElement("div",{"data-testid":"overview-status",style:Object.assign({},Zt,{display:"flex",alignItems:"center",gap:"10px"})},r.createElement("span",{"aria-hidden":"true",style:{flex:"none",width:"10px",height:"10px",...M("50%"),background:"normal"===Xr?"var(--dsh-svc-success)":"warning"===Xr?"var(--dsh-svc-warning)":"error"===Xr?"var(--dsh-svc-danger)":"var(--dsh-svc-info)"}}),r.createElement("span",{style:{fontSize:"13px",fontWeight:600,color:"var(--dsh-svc-text)"}},en)),an=0===Jr.length?null:r.createElement("div",{"data-testid":"overview-actionables",style:Object.assign({},Zt,{marginTop:"10px",padding:"4px 10px"})},Jr.map((e,t)=>r.createElement("div",{key:`${e.level}-${t}`,style:{display:"flex",alignItems:"center",gap:"8px",padding:"6px 2px",fontSize:"12px",borderTop:0===t?0:"1px solid var(--dsh-svc-border)"}},r.createElement("span",{"aria-hidden":"true",style:{flex:"none",width:"7px",height:"7px",...M("50%"),background:"error"===e.level?"var(--dsh-svc-danger)":"warning"===e.level?"var(--dsh-svc-warning)":"var(--dsh-svc-info)"}}),r.createElement("span",{style:{color:"var(--dsh-svc-text)"}},e.text)))),rn=r.createElement("div",null,tn,an,Rr,Ya,_a.length>0||Pa.length>0?Ja:null),nn=r.createElement("div",{key:"maintenance-card","data-testid":"maintenance-card",style:Jt},wr),sn=!0===p?.checks?.some(e=>"error"===e.status||"warning"===e.status&&!0!==e.advisory),{batch:on}=wa(),ln={overview:!1,usage:Boolean(_e),quota:!1,diagnostics:Boolean(c||I||sn||mr>0),maintenance:Boolean(Q||Mt.error),configuration:!1},[dn,cn]=a("subagent"),[un,pn]=a("features");i(()=>{let e=null;try{e=localStorage.getItem("dsh-service-maintenance-tab")}catch(e){}cn(null===e?"subagent":He(e,n))},[]);const mn=((e,t)=>qe.filter(t=>void 0===ze[t]||!1!==e[ze[t]]).map(e=>({id:e,labelKey:Ce[e],warning:void 0!==t&&!0===t[e]})))(n,ln),gn=Ie(n),hn=mn.filter(e=>e.warning).map(t=>e(t.labelKey)),vn=mn.some(e=>e.id===Ct)?Ct:"overview",bn=He(dn,n),fn="overview"===vn?rn:"usage"===vn?Ga:"quota"===vn?r.createElement(Da,null):"diagnostics"===vn?vr:"maintenance"===vn?null===bn?r.createElement("div",{"data-testid":"maintenance-empty",style:Zt},e("maintenance.empty")):"restart"===bn?Lr:"backup"===bn?nn:"skills"===bn?r.createElement(qa,null):"subagent"===bn?r.createElement(la,null):r.createElement(Na,null):"notifications"===un?r.createElement("div",{"data-testid":"config-notifications-page",style:!1===n.taskNotifications?{opacity:.55}:void 0},Kr,...!1===n.taskNotifications?[r.createElement("p",{key:"notify-off-hint",style:Object.assign({},Yt,{marginTop:"8px"})},e("config.notificationsDisabled"))]:[]):"navOrder"===un?r.createElement(ra,null):r.createElement(aa,null);return r.createElement("div",{"data-testid":"service-panel-root","data-dshsvc-root":"","data-dshsvc-page":vn,className:"dshsvc-page"},hn.length>0?r.createElement("div",{role:"alert",style:{marginBottom:"12px",padding:"11px 13px",borderRadius:"8px",background:"rgba(198,128,0,0.16)",border:"1px solid rgba(198,128,0,0.48)"}},r.createElement("div",{style:{fontSize:"13px",fontWeight:700}},e("tabs.alert.title")),r.createElement("div",{style:Object.assign({},Yt,{marginTop:"3px"})},e("tabs.alert.body",{tabs:hn.join(e("tabs.alert.join"))}))):null,r.createElement(Ne,{items:mn.map(t=>({id:t.id,label:e(t.labelKey),icon:"diagnostics"===t.id?"health":t.id,warning:t.warning,badge:"maintenance"===t.id&&null!==on&&"running"===on.phase?{testid:"skills-tab-badge",text:on.done+"/"+on.total}:null})),activeId:vn,onChange:e=>{zt(e),"diagnostics"===e&&Lt(!1)},testIdPrefix:"service-tab",dotLabel:e("tabs.alert.dot"),ariaLabel:e("nav.label")}),r.createElement(Le,{title:e(Ce[vn]),description:void 0!==Re[vn]?e(Re[vn]):null,action:"diagnostics"===vn?r.createElement("button",{type:"button","data-testid":"diagnostics-recheck","data-variant":"neutral",style:Vt,onClick:()=>Lt(!0),disabled:g},e(g?"health.checking":p?"health.recheck":"health.check")):null}),"maintenance"===vn&&gn.length>0?r.createElement(Ne,{items:gn.map(t=>({id:t.id,label:e(t.labelKey)})),activeId:bn,onChange:e=>{cn(e);try{localStorage.setItem("dsh-service-maintenance-tab",e)}catch(e){}},testIdPrefix:"maintenance-tab",variant:"sub",ariaLabel:e("tabs.maintenance")}):null,"configuration"===vn?r.createElement(Ne,{items:Oe.map(t=>({id:t.id,label:e(t.labelKey)})),activeId:un,onChange:pn,testIdPrefix:"config-tab",variant:"sub",ariaLabel:e("tabs.configuration")}):null,r.createElement("div",{"data-testid":"tab-panel",style:{padding:"14px 2px 2px",color:"var(--dsw-alias-label-primary)"}},fn))}null!==Ra&&console.info("[dsh-service-md] session detail markdown renderer ready");const Wa=["M10.268 21a2 2 0 0 0 3.464 0","m15 8 2 2 4-4","M16.8607 4.4824A6 6 0 0 0 6 8C6 12.499 4.589 13.956 3.262 15.326","M3.262 15.326A1 1 0 0 0 4 17H20A1 1 0 0 0 20.74 15.327C20.209 14.779 19.665 14.218 19.203 13.454"],ja=["M10.268 21a2 2 0 0 0 3.464 0","M17 17H4a1 1 0 0 1-.74-1.673C4.59 13.956 6 12.499 6 8a6 6 0 0 1 .258-1.742","m2 2 20 20","M8.668 3.01A6 6 0 0 1 18 8c0 2.687.77 4.653 1.707 6.05"];function Ba(){const{enabled:e,setEnabled:t}=$e(),a=Ee();return r.createElement("button",{type:"button",title:a(e?"notification.bellOn":"notification.bellOff"),style:{background:"transparent",border:0,cursor:"pointer",padding:"2px 4px",color:"inherit",opacity:e?1:.45,lineHeight:0},onClick:()=>{"undefined"!=typeof Notification&&("granted"===Notification.permission?t(!e):Notification.requestPermission().then(e=>{"granted"===e&&t(!0)}))}},(n=e,r.createElement("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",strokeLinejoin:"round",style:{display:"block"}},(n?Wa:ja).map(function(e,t){return r.createElement("path",{key:t,d:e})}))));var n}t.slots.inject("conversation.input.left",()=>{let e=null;const a=()=>{null!==e&&(e(),e=null),oe("taskNotifications")&&De.current.bellVisible&&(e=t.slots.register({name:"conversation.input.left",id:"dsh-service-notify",order:90,label:()=>$("notification.bellOn")},()=>r.createElement(Ba,null)))};a();const n=Z.subscribe(a),s=Be(a);return()=>{n(),s(),null!==e&&e()}}),t.slots.inject("settings.plugin.item",()=>t.slots.register({name:"settings.plugin.item",id:"dsh-service",key:"dsh-service",order:40},()=>r.createElement(ea,null))),t.slots.inject("plugins.bundle.config",()=>t.slots.register({name:"plugins.bundle.config",key:"@gehennawu/dsh-service"},e=>"page"===e?.view?r.createElement(ea,null):null)),t.slots.inject("settings.section",()=>{const e=t.slots.register({name:"settings.section",id:"dsh-service",order:99,label:()=>$("nav.label")},()=>r.createElement($a,null));Pe.sync(),Ve.sync(),Fe.sync();const a=Z.subscribe(Ve.sync),n=Z.subscribe(Fe.sync);return()=>{a(),n(),e(),Pe.disposeEntry(),Ve.disposeEntry(),Fe.disposeEntry()}}),t.slots.inject("shell.overlay",()=>t.slots.register({name:"shell.overlay",id:"dsh-service-restart",order:100,label:()=>$("overlay.label")},()=>r.createElement(Qe,null))),t.slots.inject("conversation.input.right",()=>{let e=null;const a=()=>{null!==e&&(e(),e=null),oe("quotaLookup")&&(e=t.slots.register({name:"conversation.input.right",id:"dsh-service-quota-ring",order:95,label:()=>$("quota.ring.label"),inject:e=>{if(null==e)return{};try{const t=Ue();if(void 0===t||"function"!=typeof t.directoryFor)return{sessionId:e};const a=t.directoryFor(e);return{sessionId:e,directoryStore:a.store,loadDirectory:()=>{try{const e=a.load();e&&"function"==typeof e.catch&&e.catch(()=>{})}catch(e){}}}}catch(t){return{sessionId:e}}}},e=>r.createElement(Xt,e)))};a();const n=Z.subscribe(a);return()=>{n(),null!==e&&e()}}),t.slots.inject("conversation.composer.dock",()=>{let e=null;const a=()=>{null!==e&&(e(),e=null),oe("subagentRoute")&&oe("subagentModelsDock")&&(e=t.slots.register({name:"conversation.composer.dock",id:"dsh-service-subagent-models-dock",order:60,label:()=>$("subagent.dock.label"),inject:e=>({sessionId:e})},e=>r.createElement(Se,e)))};a();const n=Z.subscribe(a);return()=>{n(),null!==e&&e()}});const _a=E,Pa=(e,t)=>{const a="editor.error."+("string"==typeof t&&""!==t?t:"internal"),r=e(a,{limit:"2 MiB"});return r===a?e("editor.error.internal"):r},Va=[],Fa=e=>{const t=Va[e];try{t.button.remove()}catch(e){}Va.splice(e,1)},Ua=()=>{for(;Va.length>0;)Fa(Va.length-1)},Ka=()=>{const e=z();if(null===e)return;const t=$("editor.viewer"),a=oe("fileEditor"),r=a?A(e,C):[];for(let e=Va.length-1;e>=0;e-=1){const a=Va[e];r.includes(a.menu)&&T(a.menu)!==t||Fa(e)}if(a){for(const e of Va)if(e.button.textContent!==t){e.button.textContent=t;try{e.button.setAttribute("aria-label",t),e.button.setAttribute("title",t)}catch(e){}}for(const a of r){if(T(a)===t)continue;if(Va.some(e=>e.menu===a))continue;const r=a.parentNode;if(null==r||"function"!=typeof e.createElement||"function"!=typeof r.insertBefore)continue;const n=e.createElement("button");n.type="button",n.setAttribute(S,""),n.setAttribute("aria-label",t),n.setAttribute("title",t),n.textContent=t,Object.assign(n.style,{minHeight:"22px",marginRight:"4px",padding:"1px 8px",border:"1px solid var(--dsw-alias-border-l2)",borderRadius:"var(--dsh-svc-radius-control, 6px)",background:"transparent",color:"var(--dsw-alias-label-secondary)",font:"inherit",fontSize:"12px",lineHeight:"18px",cursor:"pointer",flex:"none"}),n.addEventListener("click",a=>{try{a?.preventDefault?.()}catch(e){}try{a?.stopPropagation?.()}catch(e){}L(e,e=>e===t,{menu:H(n),isAlive:()=>R.isAlive()})}),r.insertBefore(n,a),Va.push({menu:a,button:n})}}};function Ga(e){const t=Ee(),a="string"==typeof e?.tab?.contentId?e.tab.contentId:"";if(!a.startsWith("dsh-resource://file/")||!I(a))return null;const n=z();return(null===n?[]:A(n,C)).some(e=>T(e)===t("editor.viewer"))?null:r.createElement("button",{type:"button",role:"menuitem","data-testid":"file-editor-menu-item",[q]:"",onClick:()=>{try{e?.dismiss?.()}catch(e){}const a=z(),r=null===a?[]:A(a,C);1===r.length&&L(a,e=>e===t("editor.viewer"),{menu:r[0],isAlive:()=>R.isAlive()})},style:{display:"block",width:"100%",textAlign:"left",padding:"6px 10px",border:0,background:"transparent",color:"var(--dsw-alias-label-primary)",font:"inherit",fontSize:"12px",lineHeight:"18px",cursor:"pointer",whiteSpace:"nowrap"}},t("editor.viewer"))}function Qa(e){const t=Ee(),a="string"==typeof e?.resourceAddress?e.resourceAddress:"",n=!1!==e?.wrap,s=e?.content,[i,o]=r.useState({phase:"loading",text:"",version:"",path:"",bytes:0,error:""}),[d,c]=r.useState(null),[u,p]=r.useState(!1),[m,g]=r.useState(""),[h,v]=r.useState(null),[b,f]=r.useState(null),[y,x]=r.useState(null),k=r.useRef(0),w=r.useRef(s),E=r.useRef(i),S=r.useRef(null),q=r.useRef(!1),C=r.useRef(null),A=r.useRef(null),T=r.useRef(null),M=e=>{E.current=e,o(e)},I=e=>{S.current=e,c(e)},O=e=>{q.current=e,p(e)},N=e=>{C.current=e,f(e)},D=()=>(k.current+=1,k.current),$=e=>k.current===e,W=()=>{if(!0===q.current)return;const e=D();M({phase:"loading",text:"",version:"",path:"",bytes:0,error:""}),I(null),v(null),N(null),g(""),O(!1),l("file-read",{address:a}).then(t=>{if(!$(e))return;if(!t||!0!==t.ok)return void M({phase:"error",text:"",version:"",path:"",bytes:0,error:"string"==typeof t?.error?t.error:"internal"});const a=t.value||{};M({phase:"ready",text:"string"==typeof a.text?a.text:"",version:"string"==typeof a.version?a.version:"",path:"string"==typeof a.path?a.path:"",bytes:Number.isFinite(a.bytes)?a.bytes:0,error:""})}).catch(()=>{$(e)&&M({phase:"error",text:"",version:"",path:"",bytes:0,error:"internal"})})},j=(e,t,r={})=>{const n="undo"===r?.kind?"undo":"save";if(!0===q.current)return;if("string"!=typeof e)return;const s=D();O(!0),g(""),l("file-write",{address:a,text:e,version:t,force:!0===r?.force}).then(a=>{if(!$(s))return;if(O(!1),!a||!0!==a.ok){const e="string"==typeof a?.error?a.error:"internal";return"file-stale"===e?void v({kind:n}):void g(e)}const i=a.value||{},o="string"==typeof i.version&&""!==i.version?i.version:"string"==typeof t?t:"",l=E.current;M({phase:"ready",text:e,version:o,path:"string"==typeof i.path&&""!==i.path?i.path:l.path,bytes:Number.isFinite(i.bytes)?i.bytes:l.bytes,error:""}),N("undo"===n?null:"string"==typeof i.before?{text:i.before,version:o}:null);const d=S.current;null===d||d===e?(I(null),v(null),g("saved"),"preview"===r?.leaveAfter&&K()):v(null)}).catch(()=>{$(s)&&(O(!1),g("internal"))})};r.useEffect(()=>(w.current=s,W(),()=>{k.current+=1}),[a]),r.useEffect(()=>{if(w.current===s)return;if(w.current=s,!0===q.current)return;const e=S.current;null!==e&&e!==E.current.text||W()},[s]);const B=null!==d&&d!==i.text,_="error"===i.phase?i.error:"",P=!0===u?t("editor.saving"):!0===B?t("editor.unsaved"):"saved"===m?t("editor.saved"):"",V=!0===u?"var(--dsw-alias-label-secondary)":!0===B?"var(--dsw-alias-state-warn-primary)":"var(--dsw-alias-state-success-primary)",F=e=>({minHeight:"26px",padding:"2px 9px",fontSize:"12px",borderRadius:"var(--dsh-svc-radius-control, 6px)",border:"1px solid "+("primary"===e?"var(--dsh-svc-brand)":"var(--dsw-alias-border-l2)"),background:"primary"===e?"var(--dsh-svc-brand)":"transparent",color:"primary"===e?"var(--dsh-svc-brand-text)":"var(--dsw-alias-label-primary)",cursor:"pointer"}),U=(e,a,n,s,i)=>r.createElement("button",{type:"button","data-testid":e,disabled:!0===i,onClick:n,style:Object.assign(F(s),!0===i?{opacity:.5,cursor:"default"}:{})},t(a)),K=()=>{const e=H(A.current);return null!=e&&L(z(),e=>e!==t("editor.viewer"),{menu:e,isAlive:()=>R.isAlive()})},G=r.createElement("div",{style:{display:"flex",alignItems:"center",gap:"8px",flexWrap:"wrap",padding:"6px 10px",borderBottom:"1px solid var(--dsw-alias-border-l1)",fontSize:"12px"}},r.createElement("span",{"data-testid":"file-editor-path",title:""!==i.path?i.path:a,style:{flex:"1 1 90px",minWidth:0,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",fontFamily:"var(--ds-font-family-code, monospace)",color:"var(--dsw-alias-label-secondary)"}},""!==i.path?i.path:a),""!==P?r.createElement("span",{"data-testid":"file-editor-status",role:"status","aria-live":"polite",style:{flex:"none",fontWeight:600,color:V}},P):null,r.createElement("span",{style:{display:"flex",gap:"6px",marginLeft:"auto",flex:"none"}},U("file-editor-preview","editor.preview",()=>{!0!==q.current&&(!0!==B?K():x("preview"))},"ghost",u),null!==b?U("file-editor-undo","editor.undo",()=>{!0!==q.current&&null!==b&&x("undo")},"ghost",u):null,U("file-editor-reload","editor.reload",()=>{!0!==q.current&&(!0!==B?W():x("reload"))},"ghost",u),U("file-editor-save","editor.save",()=>j(S.current??i.text,i.version,{kind:"save"}),"primary",u||!B))),Q=null!==h&&"save"===h.kind?r.createElement("div",{"data-testid":"file-editor-conflict",style:{margin:"8px 10px 0",padding:"8px 10px",borderRadius:"8px",border:"1px solid var(--dsw-alias-state-warn-primary)",background:"var(--dsh-svc-raised-bg, transparent)",fontSize:"12px",lineHeight:1.6}},r.createElement("div",{style:{fontWeight:700,color:"var(--dsw-alias-state-warn-primary)"}},t("editor.conflict.title")),r.createElement("p",{style:{margin:"4px 0 8px",color:"var(--dsw-alias-label-secondary)"}},t("editor.conflict.body")),r.createElement("div",{style:{display:"flex",gap:"8px",flexWrap:"wrap"}},U("file-editor-conflict-reload","editor.conflict.reload",()=>W(),"ghost",u),U("file-editor-conflict-overwrite","editor.conflict.overwrite",()=>j(S.current??i.text,i.version,{kind:"save",force:!0}),"primary",u))):null,Y=null!==h&&"undo"===h.kind?r.createElement("div",{"data-testid":"file-editor-undo-conflict",style:{margin:"8px 10px 0",padding:"8px 10px",borderRadius:"8px",border:"1px solid var(--dsw-alias-state-warn-primary)",background:"var(--dsh-svc-raised-bg, transparent)",fontSize:"12px",lineHeight:1.6}},r.createElement("div",{style:{fontWeight:700,color:"var(--dsw-alias-state-warn-primary)"}},t("editor.undoConflict.title")),r.createElement("p",{style:{margin:"4px 0 8px",color:"var(--dsw-alias-label-secondary)"}},t("editor.undoConflict.body")),r.createElement("div",{style:{display:"flex",gap:"8px",flexWrap:"wrap"}},U("file-editor-undo-conflict-reload","editor.conflict.reload",()=>W(),"ghost",u),U("file-editor-undo-conflict-dismiss","editor.undoConflict.dismiss",()=>v(null),"ghost",!1))):null,J={preview:"editor.confirm.previewTitle",reload:"editor.confirm.reloadTitle",undo:"editor.confirm.undoTitle"},Z=null===y?null:r.createElement("div",{"data-testid":"file-editor-confirm",role:"alertdialog","aria-label":t(J[y]??"editor.confirm.previewTitle"),style:{margin:"8px 10px 0",padding:"8px 10px",borderRadius:"8px",border:"1px solid var(--dsw-alias-border-l2)",background:"var(--dsh-svc-raised-bg, transparent)",fontSize:"12px",lineHeight:1.6}},r.createElement("div",{style:{fontWeight:700}},t(J[y]??"editor.confirm.previewTitle")),r.createElement("p",{style:{margin:"4px 0 8px",color:"var(--dsw-alias-label-secondary)"}},t({preview:"editor.confirm.previewBody",reload:"editor.confirm.reloadBody",undo:"editor.confirm.undoBody"}[y]??"editor.confirm.previewBody")),r.createElement("div",{style:{display:"flex",gap:"8px",flexWrap:"wrap"}},"preview"===y?U("file-editor-confirm-save","editor.confirm.saveBack",()=>{x(null),j(S.current??i.text,i.version,{kind:"save",leaveAfter:"preview"})},"primary",u):null,"undo"===y?U("file-editor-confirm-save","editor.undo",()=>(()=>{const e=C.current;x(null),null!=e&&(I(null),j(e.text,e.version,{kind:"undo"}))})(),"primary",u):null,"reload"===y?U("file-editor-confirm-discard","editor.confirm.reloadGo",()=>{x(null),W()},"primary",u):null,"preview"===y?U("file-editor-confirm-discard","editor.confirm.discardBack",()=>{x(null),K()},"ghost",!1):null,U("file-editor-confirm-cancel","editor.confirm.cancel",()=>(()=>{x(null);try{T.current?.focus?.()}catch(e){}})(),"ghost",!1))),X=""===m||"saved"===m?null:r.createElement("p",{"data-testid":"file-editor-notice",style:{margin:"8px 10px 0",fontSize:"12px",color:"var(--dsw-alias-state-error-primary)"}},Pa(t,m)),ee="loading"===i.phase?r.createElement("p",{"data-testid":"file-editor-loading",style:{margin:"12px 10px",fontSize:"12px",color:"var(--dsw-alias-label-tertiary)"}},t("editor.loading")):"error"===i.phase?r.createElement("div",{"data-testid":"file-editor-error",style:{margin:"12px 10px",fontSize:"12px",lineHeight:1.6,color:"var(--dsw-alias-label-secondary)"}},r.createElement("p",{style:{margin:"0 0 8px"}},Pa(t,_)),U("file-editor-retry","editor.retry",()=>W(),"ghost",!1)):r.createElement("textarea",{"data-testid":"file-editor-textarea",ref:T,"aria-label":t("editor.viewer"),value:null!==d?d:i.text,spellCheck:!1,onChange:e=>I("string"==typeof e?.target?.value?e.target.value:""),onKeyDown:e=>{!0!==e?.ctrlKey&&!0!==e?.metaKey||"s"!==e?.key&&"S"!==e?.key||(e.preventDefault(),!0!==q.current&&B&&j(S.current??i.text,i.version,{kind:"save"}))},style:{flex:"1 1 auto",minHeight:"160px",margin:0,padding:"8px 10px",border:0,outline:"none",resize:"none",background:"transparent",color:"var(--dsw-alias-label-primary)",fontFamily:"var(--ds-font-family-code, monospace)",fontSize:"12px",lineHeight:1.6,tabSize:2,whiteSpace:n?"pre-wrap":"pre",overflow:"auto",overflowWrap:n?"anywhere":"normal"}});return r.createElement("div",{"data-dshsvc-editor":"",ref:A,style:{display:"flex",flexDirection:"column",height:"100%",minHeight:0,color:"var(--dsw-alias-label-primary)"}},G,Z,Q,Y,X,ee,r.createElement("div",{style:{flex:"none",padding:"4px 10px 6px",fontSize:"11px",color:"var(--dsw-alias-label-tertiary)"}},t("editor.keyHint")))}const Ya=()=>{if(!oe("fileEditor"))return;const e=[],a=e=>{if(null!=e&&void 0!==e.documentPreviews)return e.documentPreviews;try{return"function"==typeof t.get?t.get("documentPreviews"):void 0}catch(e){return}},s=a=>{if(null==a||"function"!=typeof a.register)return;let s=null;try{s=a.register({id:w,extensions:_a,priority:"builtin",title:()=>$("editor.viewer"),loading:"text-pages",wrap:!0})}catch(e){return}e.push(s),e.push(t.slots.inject("sidebar.right.tab.document",()=>t.slots.register({name:"sidebar.right.tab.document",key:w,locale:n},Qa))),e.push(t.slots.inject("sidebar.right.tab.menu.item",()=>t.slots.register({name:"sidebar.right.tab.menu.item",id:"dsh-service-editor",order:40},e=>r.createElement(Ga,e)))),e.push((()=>{R=(()=>{const e={alive:!0};return O.add(e),{isAlive:()=>!0===e.alive,dispose:()=>{e.alive=!1,O.delete(e)}}})(),Ka();let e=()=>{};try{if("function"==typeof t.locale?.subscribe){const a=t.locale.subscribe(()=>{try{Ka()}catch(e){}});"function"==typeof a&&(e=a)}}catch(e){}const a=z();if(null===a||"function"!=typeof MutationObserver)return()=>{e(),Ua()};let r=!1;const n=()=>{r||(r=!0,Promise.resolve().then(()=>{r=!1;try{Ka()}catch(e){}}))};let s=null;try{s=new MutationObserver(n),s.observe(a.documentElement??a.body??a,{childList:!0,subtree:!0,characterData:!0})}catch(e){s=null}return()=>{try{s?.disconnect()}catch(e){}e(),Ua(),R.dispose(),(()=>{for(const e of O)e.alive=!1;O.clear()})()}})())};return"function"==typeof t.inject?e.push(t.inject(["documentPreviews"],e=>{s(a(e))})):s(a(void 0)),()=>{for(const t of e)try{t()}catch(e){}}};t.effect(()=>{let e=oe("fileEditor"),t=!0===e?Ya():void 0;const a=Z.subscribe(()=>{const a=oe("fileEditor");a!==e&&(e=a,"function"==typeof t&&t(),t=!0===a?Ya():void 0)});return()=>{a(),"function"==typeof t&&t()}},"dsh-service file editor");const Ja=(()=>{const e={observer:null,btn:null,styleTag:null,retryTimer:null,retryLeft:0,scrollHandler:null,rafId:null,slotRO:null},a=se(),r=()=>{if(null!==e.retryTimer){try{e.retryTimer()}catch(e){}e.retryTimer=null}},n=()=>{if(null!==e.btn&&e.btn.isConnected)try{const t=a.toBottomSlot();if(null===t)return;const r=a.scrollportOf(t);if(null===r||"function"!=typeof r.querySelectorAll)return;let n=!1;for(const e of a.userRows(r))if(a.flowTopOf(r,e)<4){n=!0;break}const i=null!==a.loadOlderButton(r);e.btn.style.display=n||i?"flex":"none",s()}catch(e){}},s=()=>{if(null!==e.btn&&e.btn.isConnected)try{const t=a.toBottomSlot();if(null===t||"function"!=typeof t.querySelector)return;const r=a.toBottomButton(t);let n=0;if(null!==r){const e=t.getBoundingClientRect().right,a=r.getBoundingClientRect().right;n=Math.max(0,Math.round(e-a))}const s=`${n}px`;e.btn.style.right!==s&&(e.btn.style.right=s)}catch(e){}},i=()=>{if(null===e.btn||!e.btn.isConnected)try{const i=a.toBottomSlot();if(null===i||"function"!=typeof i.appendChild||"function"!=typeof i.querySelector)return;const o=a.toBottomButton(i),l=document.createElement("button");l.type="button",l.setAttribute("data-dshsvc-user-jump",""),l.setAttribute("aria-label",$("conversation.jump.previousReply"));let d=0;try{if(null!==o){const e=i.getBoundingClientRect().right,t=o.getBoundingClientRect().right;d=Math.max(0,Math.round(e-t))}}catch(e){}Object.assign(l.style,{position:"absolute",right:`${d}px`,bottom:"42px",zIndex:"1",width:"34px",height:"34px",padding:"0",cursor:"pointer",border:"1px solid var(--dsw-alias-border-l2)",background:"var(--dsw-alias-button-floating-fill)",color:"var(--dsw-alias-label-primary)",boxShadow:"var(--dsw-shadow-lv2)",...M("100px"),display:"flex",alignItems:"center",justifyContent:"center",pointerEvents:"auto"}),l.innerHTML=(e=>{try{const t=a.toBottomButton(e),r=null!==t?t.querySelector("svg"):null;if(null!==r&&"string"==typeof r.outerHTML)return r.outerHTML.replace(/<svg/i,'<svg style="transform:rotate(180deg)"')}catch(e){}return'<svg width="14" height="14" viewBox="0 0 14 14" fill="none" aria-hidden="true"><path d="M7 10.5V3.5M3.5 7 7 3.5 10.5 7" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/></svg>'})(i),l.addEventListener("click",()=>{const n=a.scrollportOf(i);if(null===n||"function"!=typeof n.querySelectorAll)return;const s=Number(n.scrollTop)||0,o=()=>{e.retryTimer=null;const r=Number(n.scrollTop)||0;if(Math.abs(r-s)>40)try{n.scrollTop=s}catch(e){}const i=a.userRows(n);let l=null;for(let e=i.length-1;e>=0;e-=1)if(a.flowTopOf(n,i[e])<4){l=i[e];break}if(null!==l){const e=Math.max(0,s+a.flowTopOf(n,l)-12);try{n.scrollTop=e}catch(e){}return}if(e.retryLeft<=0)return;e.retryLeft-=1;const d=a.loadOlderButton(n);if(null!==d){if(!0!==d.disabled)try{d.click()}catch(e){}e.retryTimer=t.timer.timeout(o,220)}};r(),e.retryLeft=20,o()}),i.appendChild(l),e.btn=l,(()=>{if("function"==typeof ResizeObserver){if(null!==e.slotRO){try{e.slotRO.disconnect()}catch(e){}e.slotRO=null}try{const t=a.toBottomSlot();if(null===t)return;const r=new ResizeObserver(()=>{s()});r.observe(t),e.slotRO=r}catch(t){e.slotRO=null}}})(),n()}catch(e){}};return{start:()=>{try{if(null===e.styleTag){const t=document.createElement("style");t.dataset.plugin="@gehennawu/dsh-service",t.dataset.pluginCss="@gehennawu/dsh-service/user-jump.css",t.textContent="[data-dshsvc-user-jump]:hover,[data-dshsvc-user-jump]:active{background:var(--dsw-alias-button-floating-hover)!important}",document.head.appendChild(t),e.styleTag=t}}catch(e){}if(i(),null===e.observer){try{e.observer=new MutationObserver(()=>{i(),n()}),e.observer.observe(document.documentElement,{childList:!0,subtree:!0})}catch(t){e.observer=null}if(null===e.scrollHandler)try{e.scrollHandler=()=>{if("function"==typeof requestAnimationFrame){if(null!==e.rafId)return;e.rafId=requestAnimationFrame(()=>{e.rafId=null,n()})}else n()},document.documentElement.addEventListener("scroll",e.scrollHandler,!0)}catch(t){e.scrollHandler=null}}},stop:()=>{if(r(),null!==e.slotRO){try{e.slotRO.disconnect()}catch(e){}e.slotRO=null}if(null!==e.scrollHandler){try{document.documentElement.removeEventListener("scroll",e.scrollHandler,!0)}catch(e){}e.scrollHandler=null}if(null!==e.rafId){try{cancelAnimationFrame(e.rafId)}catch(e){}e.rafId=null}if(null!==e.observer){try{e.observer.disconnect()}catch(e){}e.observer=null}if(null!==e.btn){try{e.btn.remove()}catch(e){}e.btn=null}if(null!==e.styleTag){try{e.styleTag.remove()}catch(e){}e.styleTag=null}}}})();t.effect(()=>(Ja.start(),()=>Ja.stop()),"dsh-service user reply jump");const Za=(({ctx:e,getModelDirectories:t})=>{const a={styleTag:null,observer:null,observerCreated:!1,unsubscribe:null,unsubscribeSessions:null,unsubscribeQuota:null,seat:null,lastProvider:null,lastSession:void 0,disposed:!1},r=()=>{try{const t=e.sessions;if(t&&t.list&&"function"==typeof t.list.getSnapshot){const e=t.list.getSnapshot();if(e&&"string"==typeof e.current&&""!==e.current)return e.current;if(e&&e.byId){const t=Object.values(e.byId).find(e=>(e?.retainedBy?.mainView??0)>0);if(t&&"string"==typeof t.id&&""!==t.id)return t.id;if(t&&"string"==typeof t.sessionId&&""!==t.sessionId)return t.sessionId;const a=Object.keys(e.byId);if(1===a.length)return a[0]}}}catch(e){}},n=()=>{if(a.disposed)return;const e=(()=>{const e=z();if(null===e)return null;try{return e.querySelector("[data-composer-seat]")}catch(e){return null}})();if(null===e)return void(a.seat=null);a.seat=e,r()!==a.lastSession&&(a.lastProvider=null,i(),o());const n=(()=>{const e=r();if(null==e)return null;try{const a=t();if(void 0===a||"function"!=typeof a.directoryFor)return null;const r=a.directoryFor(e),n=r&&r.store&&"function"==typeof r.store.getSnapshot?r.store.getSnapshot():null,s=n&&n.current?n.current.provider:void 0;return"string"==typeof s&&""!==s?s:null}catch(e){return null}})();if(n===a.lastProvider&&((e,t)=>{try{return null!=e&&"function"==typeof e.hasAttribute&&!0===e.hasAttribute(t)}catch(e){return!1}})(e,c))return;a.lastProvider=n;const s=null===n?null:v(n,{forComposer:!0});if(null===s)return y(e,d),y(e,c),k(e,u),void k(e,p);const l=1!==s.spec.c;x(e,u,m(s.spec,l));const g="number"==typeof s.spec.o&&s.spec.o>0?s.spec.o:1;1===g?k(e,p):x(e,p,`${(15*g).toFixed(2)}px`),f(e,d,s.slug),f(e,c,l?"mono":"color")},s=e=>{y(e,d),y(e,c),k(e,u),k(e,p)},i=()=>{null!==a.seat&&s(a.seat);const e=z();if(null!==e&&"function"==typeof e.querySelectorAll){let t=[];try{t=Array.from(e.querySelectorAll(`[${c}]`))}catch(e){t=[]}for(const e of t)s(e)}a.seat=null,a.lastProvider=null},o=()=>{if(null!==a.unsubscribe){try{a.unsubscribe()}catch(e){}a.unsubscribe=null}const e=r();if(a.lastSession=e,null!=e)try{const r=t();if(void 0===r||"function"!=typeof r.directoryFor)return;const s=r.directoryFor(e);if(s&&s.store&&"function"==typeof s.store.subscribe){const e=s.store.subscribe(()=>n());if(a.unsubscribe="function"==typeof e?e:null,"function"==typeof s.load)try{const e=s.load();e&&"function"==typeof e.catch&&e.catch(()=>{})}catch(e){}}}catch(e){}};return{start:()=>{const t=z();if(null===a.styleTag&&null!==t)try{const e=t.createElement("style");e.dataset.plugin="@gehennawu/dsh-service",e.dataset.pluginCss="@gehennawu/dsh-service/model-icons.css",e.textContent=b,t.head.appendChild(e),a.styleTag=e}catch(e){}if((()=>{if(null===a.unsubscribeQuota)try{if(void 0===g||"function"!=typeof g.subscribe)return;const e=g.subscribe(()=>{a.disposed||(a.lastProvider=null,n())});a.unsubscribeQuota="function"==typeof e?e:null}catch(e){}})(),(()=>{if(null===a.unsubscribeSessions)try{const t=e.sessions;if(!t||!t.list||"function"!=typeof t.list.subscribe)return;const s=t.list.subscribe(()=>{a.disposed||r()!==a.lastSession&&(a.lastProvider=null,i(),o(),n())});a.unsubscribeSessions="function"==typeof s?s:null}catch(e){}})(),o(),n(),null===a.observer&&null!==t&&"function"==typeof MutationObserver&&!a.observerCreated){a.observerCreated=!0;try{a.observer=new MutationObserver(()=>{null===a.seat||"function"!=typeof t.contains||t.contains(a.seat)||(a.seat=null,a.lastProvider=null),n()}),a.observer.observe(t.documentElement,{childList:!0,subtree:!0})}catch(e){a.observer=null}}},stop:()=>{if(a.disposed=!0,null!==a.unsubscribe){try{a.unsubscribe()}catch(e){}a.unsubscribe=null}if(null!==a.unsubscribeSessions){try{a.unsubscribeSessions()}catch(e){}a.unsubscribeSessions=null}if(null!==a.unsubscribeQuota){try{a.unsubscribeQuota()}catch(e){}a.unsubscribeQuota=null}if(null!==a.observer){try{a.observer.disconnect()}catch(e){}a.observer=null}if(i(),null!==a.styleTag){try{a.styleTag.remove()}catch(e){}a.styleTag=null}},apply:n,clear:i}})({ctx:t,getModelDirectories:Ue});t.effect(()=>{let e=!1;const t=()=>{const t=oe("modelProviderIcons");t&&!e?(e=!0,Za.start()):!t&&e&&(e=!1,Za.stop())},a=Z.subscribe(t);return t(),()=>{a(),e&&Za.stop()}},"dsh-service model provider icons");const Xa=ne({ctx:t,t:$,featureEnabled:oe,createConversationNav:se});t.effect(()=>{const e=Z.subscribe(()=>Xa.evaluate());return Xa.evaluate(),()=>{e(),Xa.dispose()}},"dsh-service mobile adaptation")},a.subagentLine={aggregateSubagentRoutes:Q,subagentRouteListText:Y},a.fileEditor={id:w,extensions:E,selectViewerItem:L,editorExtensionMatches:I,attr:S,menuItemAttr:q},a.modelProviderIcons={resolve:v,dataUri:m,attr:d,seatAttr:c,sizeVar:p,basePx:15,css:b,slugs:Object.keys(i),providerCount:Object.keys(o).length,isCliproxyAdapted:h,quotaStore:g},t}});
|
|
1
|
+
window.__ModuleLoader__.load({id:"@gehennawu/dsh-service",factory:e=>{var t={},a=t;Object.defineProperty(a,Symbol.toStringTag,{value:"Module"});const r=e("react"),n="dsh-service",s={years:[2025,2026],papers:{2025:"https://www.gov.cn/zhengce/zhengceku/202411/content_6986383.htm",2026:"https://www.gov.cn/zhengce/zhengceku/202511/content_7047091.htm"},offDays:{"2025-01-01":"new-year","2025-01-28":"spring-festival","2025-01-29":"spring-festival","2025-01-30":"spring-festival","2025-01-31":"spring-festival","2025-02-01":"spring-festival","2025-02-02":"spring-festival","2025-02-03":"spring-festival","2025-02-04":"spring-festival","2025-04-04":"qingming","2025-04-05":"qingming","2025-04-06":"qingming","2025-05-01":"labour-day","2025-05-02":"labour-day","2025-05-03":"labour-day","2025-05-04":"labour-day","2025-05-05":"labour-day","2025-05-31":"dragon-boat","2025-06-01":"dragon-boat","2025-06-02":"dragon-boat","2025-10-01":"mid-autumn","2025-10-02":"mid-autumn","2025-10-03":"mid-autumn","2025-10-04":"mid-autumn","2025-10-05":"mid-autumn","2025-10-06":"mid-autumn","2025-10-07":"mid-autumn","2025-10-08":"mid-autumn","2026-01-01":"new-year","2026-01-02":"new-year","2026-01-03":"new-year","2026-02-15":"spring-festival","2026-02-16":"spring-festival","2026-02-17":"spring-festival","2026-02-18":"spring-festival","2026-02-19":"spring-festival","2026-02-20":"spring-festival","2026-02-21":"spring-festival","2026-02-22":"spring-festival","2026-02-23":"spring-festival","2026-04-04":"qingming","2026-04-05":"qingming","2026-04-06":"qingming","2026-05-01":"labour-day","2026-05-02":"labour-day","2026-05-03":"labour-day","2026-05-04":"labour-day","2026-05-05":"labour-day","2026-06-19":"dragon-boat","2026-06-20":"dragon-boat","2026-06-21":"dragon-boat","2026-09-25":"mid-autumn","2026-09-26":"mid-autumn","2026-09-27":"mid-autumn","2026-10-01":"national-day","2026-10-02":"national-day","2026-10-03":"national-day","2026-10-04":"national-day","2026-10-05":"national-day","2026-10-06":"national-day","2026-10-07":"national-day"}},i={openai:{v:"-0.04 -0.145 24.08 24.08",m:'<path d="M9.205 8.658v-2.26c0-.19.072-.333.238-.428l4.543-2.616c.619-.357 1.356-.523 2.117-.523 2.854 0 4.662 2.212 4.662 4.566 0 .167 0 .357-.024.547l-4.71-2.759a.797.797 0 00-.856 0l-5.97 3.473zm10.609 8.8V12.06c0-.333-.143-.57-.429-.737l-5.97-3.473 1.95-1.118a.433.433 0 01.476 0l4.543 2.617c1.309.76 2.189 2.378 2.189 3.948 0 1.808-1.07 3.473-2.76 4.163zM7.802 12.703l-1.95-1.142c-.167-.095-.239-.238-.239-.428V5.899c0-2.545 1.95-4.472 4.591-4.472 1 0 1.927.333 2.712.928L8.23 5.067c-.285.166-.428.404-.428.737v6.898zM12 15.128l-2.795-1.57v-3.33L12 8.658l2.795 1.57v3.33L12 15.128zm1.796 7.23c-1 0-1.927-.332-2.712-.927l4.686-2.712c.285-.166.428-.404.428-.737v-6.898l1.974 1.142c.167.095.238.238.238.428v5.233c0 2.545-1.974 4.472-4.614 4.472zm-5.637-5.303l-4.544-2.617c-1.308-.761-2.188-2.378-2.188-3.948A4.482 4.482 0 014.21 6.327v5.423c0 .333.143.571.428.738l5.947 3.449-1.95 1.118a.432.432 0 01-.476 0zm-.262 3.9c-2.688 0-4.662-2.021-4.662-4.519 0-.19.024-.38.047-.57l4.686 2.71c.286.167.571.167.856 0l5.97-3.448v2.26c0 .19-.07.333-.237.428l-4.543 2.616c-.619.357-1.356.523-2.117.523zm5.899 2.83a5.947 5.947 0 005.827-4.756C22.287 18.339 24 15.84 24 13.296c0-1.665-.713-3.282-1.998-4.448.119-.5.19-.999.19-1.498 0-3.401-2.759-5.947-5.946-5.947-.642 0-1.26.095-1.88.31A5.962 5.962 0 0010.205 0a5.947 5.947 0 00-5.827 4.757C1.713 5.447 0 7.945 0 10.49c0 1.666.713 3.283 1.998 4.448-.119.5-.19 1-.19 1.499 0 3.401 2.759 5.946 5.946 5.946.642 0 1.26-.095 1.88-.309a5.96 5.96 0 004.162 1.713z"></path>',c:0},anthropic:{v:"-0.04 -0.285 24.08 24.08",m:'<path d="M13.827 3.52h3.603L24 20h-3.603l-6.57-16.48zm-7.258 0h3.767L16.906 20h-3.674l-1.343-3.461H5.017l-1.344 3.46H0L6.57 3.522zm4.132 9.959L8.453 7.687 6.205 13.48H10.7z"></path>',c:0},gemini:{v:"0.94 1.01 22.05 22.05",m:'<path d="M20.616 10.835a14.147 14.147 0 01-4.45-3.001 14.111 14.111 0 01-3.678-6.452.503.503 0 00-.975 0 14.134 14.134 0 01-3.679 6.452 14.155 14.155 0 01-4.45 3.001c-.65.28-1.318.505-2.002.678a.502.502 0 000 .975c.684.172 1.35.397 2.002.677a14.147 14.147 0 014.45 3.001 14.112 14.112 0 013.679 6.453.502.502 0 00.975 0c.172-.685.397-1.351.677-2.003a14.145 14.145 0 013.001-4.45 14.113 14.113 0 016.453-3.678.503.503 0 000-.975 13.245 13.245 0 01-2.003-.678z" fill="#3186FF"></path><path d="M20.616 10.835a14.147 14.147 0 01-4.45-3.001 14.111 14.111 0 01-3.678-6.452.503.503 0 00-.975 0 14.134 14.134 0 01-3.679 6.452 14.155 14.155 0 01-4.45 3.001c-.65.28-1.318.505-2.002.678a.502.502 0 000 .975c.684.172 1.35.397 2.002.677a14.147 14.147 0 014.45 3.001 14.112 14.112 0 013.679 6.453.502.502 0 00.975 0c.172-.685.397-1.351.677-2.003a14.145 14.145 0 013.001-4.45 14.113 14.113 0 016.453-3.678.503.503 0 000-.975 13.245 13.245 0 01-2.003-.678z" fill="url(#lobe-icons-gemini-0-_R_0_)"></path><path d="M20.616 10.835a14.147 14.147 0 01-4.45-3.001 14.111 14.111 0 01-3.678-6.452.503.503 0 00-.975 0 14.134 14.134 0 01-3.679 6.452 14.155 14.155 0 01-4.45 3.001c-.65.28-1.318.505-2.002.678a.502.502 0 000 .975c.684.172 1.35.397 2.002.677a14.147 14.147 0 014.45 3.001 14.112 14.112 0 013.679 6.453.502.502 0 00.975 0c.172-.685.397-1.351.677-2.003a14.145 14.145 0 013.001-4.45 14.113 14.113 0 016.453-3.678.503.503 0 000-.975 13.245 13.245 0 01-2.003-.678z" fill="url(#lobe-icons-gemini-1-_R_0_)"></path><path d="M20.616 10.835a14.147 14.147 0 01-4.45-3.001 14.111 14.111 0 01-3.678-6.452.503.503 0 00-.975 0 14.134 14.134 0 01-3.679 6.452 14.155 14.155 0 01-4.45 3.001c-.65.28-1.318.505-2.002.678a.502.502 0 000 .975c.684.172 1.35.397 2.002.677a14.147 14.147 0 014.45 3.001 14.112 14.112 0 013.679 6.453.502.502 0 00.975 0c.172-.685.397-1.351.677-2.003a14.145 14.145 0 013.001-4.45 14.113 14.113 0 016.453-3.678.503.503 0 000-.975 13.245 13.245 0 01-2.003-.678z" fill="url(#lobe-icons-gemini-2-_R_0_)"></path><defs><linearGradient gradientUnits="userSpaceOnUse" id="lobe-icons-gemini-0-_R_0_" x1="7" x2="11" y1="15.5" y2="12"><stop stop-color="#08B962"></stop><stop offset="1" stop-color="#08B962" stop-opacity="0"></stop></linearGradient><linearGradient gradientUnits="userSpaceOnUse" id="lobe-icons-gemini-1-_R_0_" x1="8" x2="11.5" y1="5.5" y2="11"><stop stop-color="#F94543"></stop><stop offset="1" stop-color="#F94543" stop-opacity="0"></stop></linearGradient><linearGradient gradientUnits="userSpaceOnUse" id="lobe-icons-gemini-2-_R_0_" x1="3.5" x2="17.5" y1="13.5" y2="12"><stop stop-color="#FABC12"></stop><stop offset=".46" stop-color="#FABC12" stop-opacity="0"></stop></linearGradient></defs>',c:1},vertexai:{v:"-0.04 -0.04 24.08 24.08",m:'<path d="M11.995 20.216a1.892 1.892 0 100 3.785 1.892 1.892 0 000-3.785zm0 2.806a.927.927 0 11.927-.914.914.914 0 01-.927.914z"></path><path clip-rule="evenodd" d="M21.687 14.144c.237.038.452.16.605.344a.978.978 0 01-.18 1.3l-8.24 6.082a1.892 1.892 0 00-1.147-1.508l8.28-6.08a.991.991 0 01.682-.138z"></path><path clip-rule="evenodd" d="M10.122 21.842l-8.217-6.066a.952.952 0 01-.206-1.287.978.978 0 011.287-.206l8.28 6.08a1.893 1.893 0 00-1.144 1.479z"></path><path d="M4.273 4.475a.978.978 0 01-.965-.965V1.09a.978.978 0 111.943 0v2.42a.978.978 0 01-.978.965zM4.247 13.034a.978.978 0 100-1.956.978.978 0 000 1.956zM4.247 10.19a.978.978 0 100-1.956.978.978 0 000 1.956zM4.247 7.332a.978.978 0 100-1.956.978.978 0 000 1.956z"></path><path d="M19.718 7.307a.978.978 0 01-.965-.979v-2.42a.965.965 0 011.93 0v2.42a.964.964 0 01-.965.979zM19.743 13.047a.978.978 0 100-1.956.978.978 0 000 1.956zM19.743 10.151a.978.978 0 100-1.956.978.978 0 000 1.956zM19.743 2.068a.978.978 0 100-1.956.978.978 0 000 1.956z"></path><path d="M11.995 15.917a.978.978 0 01-.965-.965v-2.459a.978.978 0 011.943 0v2.433a.976.976 0 01-.978.991zM11.995 18.762a.978.978 0 100-1.956.978.978 0 000 1.956zM11.995 10.64a.978.978 0 100-1.956.978.978 0 000 1.956zM11.995 7.783a.978.978 0 100-1.956.978.978 0 000 1.956z"></path><path d="M15.856 10.177a.978.978 0 01-.965-.965v-2.42a.977.977 0 011.702-.763.979.979 0 01.241.763v2.42a.978.978 0 01-.978.965zM15.869 4.913a.978.978 0 100-1.956.978.978 0 000 1.956zM15.869 15.853a.978.978 0 100-1.956.978.978 0 000 1.956zM15.869 12.996a.978.978 0 100-1.956.978.978 0 000 1.956z"></path><path d="M8.121 15.853a.978.978 0 100-1.956.978.978 0 000 1.956zM8.121 7.783a.978.978 0 100-1.956.978.978 0 000 1.956zM8.121 4.913a.978.978 0 100-1.957.978.978 0 000 1.957zM8.134 12.996a.978.978 0 01-.978-.94V9.611a.965.965 0 011.93 0v2.445a.966.966 0 01-.952.94z"></path>',c:0},xai:{v:"0.94 0.94 22.12 22.12",m:'<path d="M6.469 8.776L16.512 23h-4.464L2.005 8.776H6.47zm-.004 7.9l2.233 3.164L6.467 23H2l4.465-6.324zM22 2.582V23h-3.659V7.764L22 2.582zM22 1l-9.952 14.095-2.233-3.163L17.533 1H22z"></path>',c:0},mistral:{v:"-0.04 -0.075 24.08 24.08",m:'<path d="M3.428 3.4h3.429v3.428H3.428V3.4zm13.714 0h3.43v3.428h-3.43V3.4z" fill="gold"></path><path d="M3.428 6.828h6.857v3.429H3.429V6.828zm10.286 0h6.857v3.429h-6.857V6.828z" fill="#FFAF00"></path><path d="M3.428 10.258h17.144v3.428H3.428v-3.428z" fill="#FF8205"></path><path d="M3.428 13.686h3.429v3.428H3.428v-3.428zm6.858 0h3.429v3.428h-3.429v-3.428zm6.856 0h3.43v3.428h-3.43v-3.428z" fill="#FA500F"></path><path d="M0 17.114h10.286v3.429H0v-3.429zm13.714 0H24v3.429H13.714v-3.429z" fill="#E10500"></path>',c:1},deepseek:{v:"-0.04 -0.215 24.08 24.08",m:'<path d="M23.748 4.482c-.254-.124-.364.113-.512.234-.051.039-.094.09-.137.136-.372.397-.806.657-1.373.626-.829-.046-1.537.214-2.163.848-.133-.782-.575-1.248-1.247-1.548-.352-.156-.708-.311-.955-.65-.172-.241-.219-.51-.305-.774-.055-.16-.11-.323-.293-.35-.2-.031-.278.136-.356.276-.313.572-.434 1.202-.422 1.84.027 1.436.633 2.58 1.838 3.393.137.093.172.187.129.323-.082.28-.18.552-.266.833-.055.179-.137.217-.329.14a5.526 5.526 0 01-1.736-1.18c-.857-.828-1.631-1.742-2.597-2.458a11.365 11.365 0 00-.689-.471c-.985-.957.13-1.743.388-1.836.27-.098.093-.432-.779-.428-.872.004-1.67.295-2.687.684a3.055 3.055 0 01-.465.137 9.597 9.597 0 00-2.883-.102c-1.885.21-3.39 1.102-4.497 2.623C.082 8.606-.231 10.684.152 12.85c.403 2.284 1.569 4.175 3.36 5.653 1.858 1.533 3.997 2.284 6.438 2.14 1.482-.085 3.133-.284 4.994-1.86.47.234.962.327 1.78.397.63.059 1.236-.03 1.705-.128.735-.156.684-.837.419-.961-2.155-1.004-1.682-.595-2.113-.926 1.096-1.296 2.746-2.642 3.392-7.003.05-.347.007-.565 0-.845-.004-.17.035-.237.23-.256a4.173 4.173 0 001.545-.475c1.396-.763 1.96-2.015 2.093-3.517.02-.23-.004-.467-.247-.588zM11.581 18c-2.089-1.642-3.102-2.183-3.52-2.16-.392.024-.321.471-.235.763.09.288.207.486.371.739.114.167.192.416-.113.603-.673.416-1.842-.14-1.897-.167-1.361-.802-2.5-1.86-3.301-3.307-.774-1.393-1.224-2.887-1.298-4.482-.02-.386.093-.522.477-.592a4.696 4.696 0 011.529-.039c2.132.312 3.946 1.265 5.468 2.774.868.86 1.525 1.887 2.202 2.891.72 1.066 1.494 2.082 2.48 2.914.348.292.625.514.891.677-.802.09-2.14.11-3.054-.614zm1-6.44a.306.306 0 01.415-.287.302.302 0 01.2.288.306.306 0 01-.31.307.303.303 0 01-.304-.308zm3.11 1.596c-.2.081-.399.151-.59.16a1.245 1.245 0 01-.798-.254c-.274-.23-.47-.358-.552-.758a1.73 1.73 0 01.016-.588c.07-.327-.008-.537-.239-.727-.187-.156-.426-.199-.688-.199a.559.559 0 01-.254-.078c-.11-.054-.2-.19-.114-.358.028-.054.16-.186.192-.21.356-.202.767-.136 1.146.016.352.144.618.408 1.001.782.391.451.462.576.685.914.176.265.336.537.445.848.067.195-.019.354-.25.452z" fill="#4D6BFE"></path>',c:1,o:1.15},moonshot:{v:"-0.04 -0.04 24.08 24.08",m:'<path d="M1.052 16.916l9.539 2.552a21.007 21.007 0 00.06 2.033l5.956 1.593a11.997 11.997 0 01-5.586.865l-.18-.016-.044-.004-.084-.009-.094-.01a11.605 11.605 0 01-.157-.02l-.107-.014-.11-.016a11.962 11.962 0 01-.32-.051l-.042-.008-.075-.013-.107-.02-.07-.015-.093-.019-.075-.016-.095-.02-.097-.023-.094-.022-.068-.017-.088-.022-.09-.024-.095-.025-.082-.023-.109-.03-.062-.02-.084-.025-.093-.028-.105-.034-.058-.019-.08-.026-.09-.031-.066-.024a6.293 6.293 0 01-.044-.015l-.068-.025-.101-.037-.057-.022-.08-.03-.087-.035-.088-.035-.079-.032-.095-.04-.063-.028-.063-.027a5.655 5.655 0 01-.041-.018l-.066-.03-.103-.047-.052-.024-.096-.046-.062-.03-.084-.04-.086-.044-.093-.047-.052-.027-.103-.055-.057-.03-.058-.032a6.49 6.49 0 01-.046-.026l-.094-.053-.06-.034-.051-.03-.072-.041-.082-.05-.093-.056-.052-.032-.084-.053-.061-.039-.079-.05-.07-.047-.053-.035a7.785 7.785 0 01-.054-.036l-.044-.03-.044-.03a6.066 6.066 0 01-.04-.028l-.057-.04-.076-.054-.069-.05-.074-.054-.056-.042-.076-.057-.076-.059-.086-.067-.045-.035-.064-.052-.074-.06-.089-.073-.046-.039-.046-.039a7.516 7.516 0 01-.043-.037l-.045-.04-.061-.053-.07-.062-.068-.06-.062-.058-.067-.062-.053-.05-.088-.084a13.28 13.28 0 01-.099-.097l-.029-.028-.041-.042-.069-.07-.05-.051-.05-.053a6.457 6.457 0 01-.168-.179l-.08-.088-.062-.07-.071-.08-.042-.049-.053-.062-.058-.068-.046-.056a7.175 7.175 0 01-.027-.033l-.045-.055-.066-.082-.041-.052-.05-.064-.02-.025a11.99 11.99 0 01-1.44-2.402zm-1.02-5.794l11.353 3.037a20.468 20.468 0 00-.469 2.011l10.817 2.894a12.076 12.076 0 01-1.845 2.005L.657 15.923l-.016-.046-.035-.104a11.965 11.965 0 01-.05-.153l-.007-.023a11.896 11.896 0 01-.207-.741l-.03-.126-.018-.08-.021-.097-.018-.081-.018-.09-.017-.084-.018-.094c-.026-.141-.05-.283-.071-.426l-.017-.118-.011-.083-.013-.102a12.01 12.01 0 01-.019-.161l-.005-.047a12.12 12.12 0 01-.034-2.145zm1.593-5.15l11.948 3.196c-.368.605-.705 1.231-1.01 1.875l11.295 3.022c-.142.82-.368 1.612-.668 2.365l-11.55-3.09L.124 10.26l.015-.1.008-.049.01-.067.015-.087.018-.098c.026-.148.056-.295.088-.442l.028-.124.02-.085.024-.097c.022-.09.045-.18.07-.268l.028-.102.023-.083.03-.1.025-.082.03-.096.026-.082.031-.095a11.896 11.896 0 011.01-2.232zm4.442-4.4L17.352 4.59a20.77 20.77 0 00-1.688 1.721l7.823 2.093c.267.852.442 1.744.513 2.665L2.106 5.213l.045-.065.027-.04.04-.055.046-.065.055-.076.054-.072.064-.086.05-.065.057-.073.055-.07.06-.074.055-.069.065-.077.054-.066.066-.077.053-.06.072-.082.053-.06.067-.074.054-.058.073-.078.058-.06.063-.067.168-.17.1-.098.059-.056.076-.071a12.084 12.084 0 012.272-1.677zM12.017 0h.097l.082.001.069.001.054.002.068.002.046.001.076.003.047.002.06.003.054.002.087.005.105.007.144.011.088.007.044.004.077.008.082.008.047.005.102.012.05.006.108.014.081.01.042.006.065.01.207.032.07.012.065.011.14.026.092.018.11.022.046.01.075.016.041.01L14.7.3l.042.01.065.015.049.012.071.017.096.024.112.03.113.03.113.032.05.015.07.02.078.024.073.023.05.016.05.016.076.025.099.033.102.036.048.017.064.023.093.034.11.041.116.045.1.04.047.02.06.024.041.018.063.026.04.018.057.025.11.048.1.046.074.035.075.036.06.028.092.046.091.045.102.052.053.028.049.026.046.024.06.033.041.022.052.029.088.05.106.06.087.051.057.034.053.032.096.059.088.055.098.062.036.024.064.041.084.056.04.027.062.042.062.043.023.017c.054.037.108.075.161.114l.083.06.065.048.056.043.086.065.082.064.04.03.05.041.086.069.079.065.085.071c.712.6 1.353 1.283 1.909 2.031L7.222.994l.062-.027.065-.028.081-.034.086-.035c.113-.045.227-.09.341-.131l.096-.035.093-.033.084-.03.096-.031c.087-.03.176-.058.264-.085l.091-.027.086-.025.102-.03.085-.023.1-.026L9.04.37l.09-.023.091-.022.095-.022.09-.02.098-.021.091-.02.095-.018.092-.018.1-.018.091-.016.098-.017.092-.014.097-.015.092-.013.102-.013.091-.012.105-.012.09-.01.105-.01c.093-.01.186-.018.28-.024l.106-.008.09-.005.11-.006.093-.004.1-.004.097-.002.099-.002.197-.002z"></path>',c:0},kimi:{v:"-0.0667 -0.0667 40.1333 40.1333",m:'<rect width="40" height="40" rx="10" fill="#121316"/><path d="M31.6957 7.11414C32.8305 7.11414 33.7505 8.0341 33.7505 9.16893V9.16893C33.7505 10.3038 32.8305 11.2237 31.6957 11.2237L29.8826 11.2237C29.7491 11.2237 29.6409 11.1155 29.6409 10.982L29.6409 9.16893C29.6409 8.0341 30.5609 7.11414 31.6957 7.11414V7.11414Z" fill="#1783FF"/><path d="M20.1757 19.0798L27.9302 11.3864C28.0761 11.2413 27.9939 10.9498 27.8056 10.9498H23.633C23.5877 10.9498 23.5438 10.9683 23.5084 11.0038L15.1533 19.2911C15.023 19.4192 14.8304 19.305 14.8304 19.0998V11.1951C14.8304 11.0593 14.7411 10.9498 14.6321 10.9498H11.7569C11.6478 10.9498 11.5586 11.0593 11.5586 11.1951V28.2387C11.5586 28.3745 11.6478 28.484 11.7569 28.484H14.6321C14.7411 28.484 14.8304 28.3745 14.8304 28.2387V24.7661C14.8304 24.6921 14.8573 24.6211 14.904 24.5748L17.4945 22.0047C17.5568 21.943 17.6432 21.9337 17.7126 21.98L24.6414 27.0786C25.7759 27.8423 27.0436 28.3112 28.331 28.4501C28.4458 28.4624 28.5449 28.3483 28.5449 28.2048V24.9343C28.5449 24.8093 28.4698 24.7075 28.3693 24.6921C27.6115 24.5733 26.8722 24.2802 26.2037 23.8297L20.2054 19.487C20.0808 19.4037 20.0652 19.1893 20.1757 19.0798Z" fill="#FFFFFF"/>',c:1},minimax:{v:"-0.04 -0.04 24.08 24.08",m:'<defs><linearGradient id="lobe-icons-minimax-_R_0_" x1="0%" x2="100.182%" y1="50.057%" y2="50.057%"><stop offset="0%" stop-color="#E2167E"></stop><stop offset="100%" stop-color="#FE603C"></stop></linearGradient></defs><path d="M16.278 2c1.156 0 2.093.927 2.093 2.07v12.501a.74.74 0 00.744.709.74.74 0 00.743-.709V9.099a2.06 2.06 0 012.071-2.049A2.06 2.06 0 0124 9.1v6.561a.649.649 0 01-.652.645.649.649 0 01-.653-.645V9.1a.762.762 0 00-.766-.758.762.762 0 00-.766.758v7.472a2.037 2.037 0 01-2.048 2.026 2.037 2.037 0 01-2.048-2.026v-12.5a.785.785 0 00-.788-.753.785.785 0 00-.789.752l-.001 15.904A2.037 2.037 0 0113.441 22a2.037 2.037 0 01-2.048-2.026V18.04c0-.356.292-.645.652-.645.36 0 .652.289.652.645v1.934c0 .263.142.506.372.638.23.131.514.131.744 0a.734.734 0 00.372-.638V4.07c0-1.143.937-2.07 2.093-2.07zm-5.674 0c1.156 0 2.093.927 2.093 2.07v11.523a.648.648 0 01-.652.645.648.648 0 01-.652-.645V4.07a.785.785 0 00-.789-.78.785.785 0 00-.789.78v14.013a2.06 2.06 0 01-2.07 2.048 2.06 2.06 0 01-2.071-2.048V9.1a.762.762 0 00-.766-.758.762.762 0 00-.766.758v3.8a2.06 2.06 0 01-2.071 2.049A2.06 2.06 0 010 12.9v-1.378c0-.357.292-.646.652-.646.36 0 .653.29.653.646V12.9c0 .418.343.757.766.757s.766-.339.766-.757V9.099a2.06 2.06 0 012.07-2.048 2.06 2.06 0 012.071 2.048v8.984c0 .419.343.758.767.758.423 0 .766-.339.766-.758V4.07c0-1.143.937-2.07 2.093-2.07z" fill="url(#lobe-icons-minimax-_R_0_)" fill-rule="nonzero"></path>',c:1},zhipu:{v:"-0.04 -0.04 24.08 24.08",m:'<path d="M11.991 23.503a.24.24 0 00-.244.248.24.24 0 00.244.249.24.24 0 00.245-.249.24.24 0 00-.22-.247l-.025-.001zM9.671 5.365a1.697 1.697 0 011.099 2.132l-.071.172-.016.04-.018.054c-.07.16-.104.32-.104.498-.035.71.47 1.279 1.186 1.314h.366c1.309.053 2.338 1.173 2.286 2.523-.052 1.332-1.152 2.38-2.478 2.327h-.174c-.715.018-1.274.64-1.239 1.368 0 .124.018.23.053.337.209.373.54.658.96.8.75.23 1.517-.125 1.9-.782l.018-.035c.402-.64 1.17-.96 1.92-.711.854.284 1.378 1.226 1.099 2.167a1.661 1.661 0 01-2.077 1.102 1.711 1.711 0 01-.907-.711l-.017-.035c-.2-.323-.463-.58-.851-.711l-.056-.018a1.646 1.646 0 00-1.954.746 1.66 1.66 0 01-1.065.764 1.677 1.677 0 01-1.989-1.279c-.209-.906.332-1.83 1.257-2.043a1.51 1.51 0 01.296-.035h.018c.68-.071 1.151-.622 1.116-1.333a1.307 1.307 0 00-.227-.693 2.515 2.515 0 01-.366-1.403 2.39 2.39 0 01.366-1.208c.14-.195.21-.444.227-.693.018-.71-.506-1.261-1.186-1.332l-.07-.018a1.43 1.43 0 01-.299-.07l-.05-.019a1.7 1.7 0 01-1.047-2.114 1.68 1.68 0 012.094-1.101zm-5.575 10.11c.26-.264.639-.367.994-.27.355.096.633.379.728.74.095.362-.007.748-.267 1.013-.402.41-1.053.41-1.455 0a1.062 1.062 0 010-1.482zm14.845-.294c.359-.09.738.024.992.297.254.274.344.665.237 1.025-.107.36-.396.634-.756.718-.551.128-1.1-.22-1.23-.781a1.05 1.05 0 01.757-1.26zm-.064-4.39c.314.32.49.753.49 1.206 0 .452-.176.886-.49 1.206-.315.32-.74.5-1.185.5-.444 0-.87-.18-1.184-.5a1.727 1.727 0 010-2.412 1.654 1.654 0 012.369 0zm-11.243.163c.364.484.447 1.128.218 1.691a1.665 1.665 0 01-2.188.923c-.855-.36-1.26-1.358-.907-2.228a1.68 1.68 0 011.33-1.038c.593-.08 1.183.169 1.547.652zm11.545-4.221c.368 0 .708.2.892.524.184.324.184.724 0 1.048a1.026 1.026 0 01-.892.524c-.568 0-1.03-.47-1.03-1.048 0-.579.462-1.048 1.03-1.048zm-14.358 0c.368 0 .707.2.891.524.184.324.184.724 0 1.048a1.026 1.026 0 01-.891.524c-.569 0-1.03-.47-1.03-1.048 0-.579.461-1.048 1.03-1.048zm10.031-1.475c.925 0 1.675.764 1.675 1.706s-.75 1.705-1.675 1.705-1.674-.763-1.674-1.705c0-.942.75-1.706 1.674-1.706zm-2.626-.684c.362-.082.653-.356.761-.718a1.062 1.062 0 00-.238-1.028 1.017 1.017 0 00-.996-.294c-.547.14-.881.7-.752 1.257.13.558.675.907 1.225.783zm0 16.876c.359-.087.644-.36.75-.72a1.062 1.062 0 00-.237-1.019 1.018 1.018 0 00-.985-.301 1.037 1.037 0 00-.762.717c-.108.361-.017.754.239 1.028.245.263.606.377.953.305l.043-.01zM17.19 3.5a.631.631 0 00.628-.64c0-.355-.279-.64-.628-.64a.631.631 0 00-.628.64c0 .355.28.64.628.64zm-10.38 0a.631.631 0 00.628-.64c0-.355-.28-.64-.628-.64a.631.631 0 00-.628.64c0 .355.279.64.628.64zm-5.182 7.852a.631.631 0 00-.628.64c0 .354.28.639.628.639a.63.63 0 00.627-.606l.001-.034a.62.62 0 00-.628-.64zm5.182 9.13a.631.631 0 00-.628.64c0 .355.279.64.628.64a.631.631 0 00.628-.64c0-.355-.28-.64-.628-.64zm10.38.018a.631.631 0 00-.628.64c0 .355.28.64.628.64a.631.631 0 00.628-.64c0-.355-.279-.64-.628-.64zm5.182-9.148a.631.631 0 00-.628.64c0 .354.279.639.628.639a.631.631 0 00.628-.64c0-.355-.28-.64-.628-.64zm-.384-4.992a.24.24 0 00.244-.249.24.24 0 00-.244-.249.24.24 0 00-.244.249c0 .142.122.249.244.249zM11.991.497a.24.24 0 00.245-.248A.24.24 0 0011.99 0a.24.24 0 00-.244.249c0 .133.108.236.223.247l.021.001zM2.011 6.36a.24.24 0 00.245-.249.24.24 0 00-.244-.249.24.24 0 00-.244.249.24.24 0 00.244.249zm0 11.263a.24.24 0 00-.243.248.24.24 0 00.244.249.24.24 0 00.244-.249.252.252 0 00-.244-.248zm19.995-.018a.24.24 0 00-.245.248.24.24 0 00.245.25.24.24 0 00.244-.25.252.252 0 00-.244-.248z" fill="#3859FF" fill-rule="nonzero"></path>',c:1,o:1.2},xiaomi:{v:"-0.8533 -0.8533 513.7067 513.7067",m:'<path fill="#FF6900" d="M458.634 53.496C410.33 5.378 340.875 0 256 0c-84.982 0-154.542 5.44-202.826 53.688C4.897 101.916 0 171.364 0 256.249c0 84.899 4.897 154.368 53.194 202.613C101.475 507.117 171.027 512 256 512c84.974 0 154.514-4.884 202.795-53.139 48.294-48.254 53.205-117.714 53.205-202.613 0-84.72-4.964-154.243-53.366-202.479z"/><path fill="#FFF" d="M404.554 158.605c1.759 0 3.223 1.417 3.223 3.161v189.386c0 1.715-1.464 3.139-3.223 3.139H363.058c-1.781 0-3.228-1.424-3.228-3.139V161.766c0-1.743 1.446-3.161 3.228-3.161h41.496zM224.476 158.605c31.303 0 64.033 1.435 80.176 17.589 15.871 15.897 17.59 47.549 17.656 78.286v96.671c0 1.715-1.446 3.139-3.219 3.139h-41.49c-1.777 0-3.229-1.424-3.229-3.139V252.817c-.044-17.167-1.031-34.81-9.884-43.692-7.62-7.641-21.839-9.391-36.625-9.754h-75.21c-1.764 0-3.208 1.419-3.208 3.136v148.645c0 1.715-1.462 3.139-3.237 3.139H107.9c-1.774 0-3.201-1.424-3.201-3.139V161.766c0-1.743 1.426-3.161 3.201-3.161h116.576zm9.287 75.427c1.766 0 3.201 1.413 3.201 3.143v113.977c0 1.715-1.436 3.139-3.201 3.139h-43.584c-1.792 0-3.228-1.424-3.228-3.139V237.175c0-1.73 1.436-3.143 3.228-3.143h43.584z"/>',c:1},nvidia:{v:"1.99 0.975 22.05 22.05",m:'<path d="M10.212 8.976V7.62c.127-.01.256-.017.388-.021 3.596-.117 5.957 3.184 5.957 3.184s-2.548 3.647-5.282 3.647a3.227 3.227 0 01-1.063-.175v-4.109c1.4.174 1.681.812 2.523 2.258l1.873-1.627a4.905 4.905 0 00-3.67-1.846 6.594 6.594 0 00-.729.044m0-4.476v2.025c.13-.01.259-.019.388-.024 5.002-.174 8.261 4.226 8.261 4.226s-3.743 4.69-7.643 4.69c-.338 0-.675-.031-1.007-.092v1.25c.278.038.558.057.838.057 3.629 0 6.253-1.91 8.794-4.169.421.347 2.146 1.193 2.501 1.564-2.416 2.083-8.048 3.763-11.24 3.763-.308 0-.603-.02-.894-.048V19.5H24v-15H10.21zm0 9.756v1.068c-3.356-.616-4.287-4.21-4.287-4.21a7.173 7.173 0 014.287-2.138v1.172h-.005a3.182 3.182 0 00-2.502 1.178s.615 2.276 2.507 2.931m-5.961-3.3c1.436-1.935 3.604-3.148 5.961-3.336V6.523C5.81 6.887 2 10.723 2 10.723s2.158 6.427 8.21 7.015v-1.166C5.77 16 4.25 10.958 4.25 10.958h-.002z" fill="#74B71B" fill-rule="nonzero"></path>',c:1},huggingface:{v:"0.94 0.94 22.12 22.12",m:'<path d="M16.781 3.277c2.997 1.704 4.844 4.851 4.844 8.258 0 .995-.155 1.955-.443 2.857a1.332 1.332 0 011.125.4 1.41 1.41 0 01.2 1.723c.204.165.352.385.428.632l.017.062c.06.222.12.69-.2 1.166.244.37.279.836.093 1.236-.255.57-.893 1.018-2.128 1.5l-.202.078-.131.048c-.478.173-.89.295-1.061.345l-.086.024c-.89.243-1.808.375-2.732.394-1.32 0-2.3-.36-2.923-1.067a9.852 9.852 0 01-3.18.018C9.778 21.647 8.802 22 7.494 22a11.249 11.249 0 01-2.541-.343l-.221-.06-.273-.08a16.574 16.574 0 01-1.175-.405c-1.237-.483-1.875-.93-2.13-1.501-.186-.4-.151-.867.093-1.236a1.42 1.42 0 01-.2-1.166c.069-.273.226-.516.447-.694a1.41 1.41 0 01.2-1.722c.233-.248.557-.391.917-.407l.078-.001a9.385 9.385 0 01-.44-2.85c0-3.407 1.847-6.554 4.844-8.258a9.822 9.822 0 019.687 0zM4.188 14.758c.125.687 2.357 2.35 2.14 2.707-.19.315-.796-.239-.948-.386l-.041-.04-.168-.147c-.561-.479-2.304-1.9-2.74-1.432-.43.46.119.859 1.055 1.42l.784.467.136.083c1.045.643 1.12.84.95 1.113-.188.295-3.07-2.1-3.34-1.083-.27 1.011 2.942 1.304 2.744 2.006-.2.7-2.265-1.324-2.685-.537-.425.79 2.913 1.718 2.94 1.725l.16.04.175.042c1.227.284 3.565.65 4.435-.604.673-.973.64-1.709-.248-2.61l-.057-.057c-.945-.928-1.495-2.288-1.495-2.288l-.017-.058-.025-.072c-.082-.22-.284-.639-.63-.584-.46.073-.798 1.21.12 1.933l.05.038c.977.721-.195 1.21-.573.534l-.058-.104-.143-.25c-.463-.799-1.282-2.111-1.739-2.397-.532-.332-.907-.148-.782.541zm14.842-.541c-.533.335-1.563 2.074-1.94 2.751a.613.613 0 01-.687.302.436.436 0 01-.176-.098.303.303 0 01-.049-.06l-.014-.028-.008-.02-.007-.019-.003-.013-.003-.017a.289.289 0 01-.004-.048c0-.12.071-.266.25-.427.026-.024.054-.047.084-.07l.047-.036c.022-.016.043-.032.063-.049.883-.71.573-1.81.131-1.917l-.031-.006-.056-.004a.368.368 0 00-.062.006l-.028.005-.042.014-.039.017-.028.015-.028.019-.036.027-.023.02c-.173.158-.273.428-.31.542l-.016.054s-.53 1.309-1.439 2.234l-.054.054c-.365.358-.596.69-.702 1.018-.143.437-.066.868.21 1.353.055.097.117.195.187.296.882 1.275 3.282.876 4.494.59l.286-.07.25-.074c.276-.084.736-.233 1.2-.42l.188-.077.065-.028.064-.028.124-.056.081-.038c.529-.252.964-.543.994-.827l.001-.036a.299.299 0 00-.037-.139c-.094-.176-.271-.212-.491-.168l-.045.01c-.044.01-.09.024-.136.04l-.097.035-.054.022c-.559.23-1.238.705-1.607.745h.006a.452.452 0 01-.05.003h-.024l-.024-.003-.023-.005c-.068-.016-.116-.06-.14-.142a.22.22 0 01-.005-.1c.062-.345.958-.595 1.713-.91l.066-.028c.528-.224.97-.483.985-.832v-.04a.47.47 0 00-.016-.098c-.048-.18-.175-.251-.36-.251-.785 0-2.55 1.36-2.92 1.36-.025 0-.048-.007-.058-.024a.6.6 0 01-.046-.088c-.1-.238.068-.462 1.06-1.066l.209-.126c.538-.32 1.01-.588 1.341-.831.29-.212.475-.406.503-.6l.003-.028c.008-.113-.038-.227-.147-.344a.266.266 0 00-.07-.054l-.034-.015-.013-.005a.403.403 0 00-.13-.02c-.162 0-.369.07-.595.18-.637.313-1.431.952-1.826 1.285l-.249.215-.033.033c-.08.078-.288.27-.493.386l-.071.037-.041.019a.535.535 0 01-.122.036h.005a.346.346 0 01-.031.003l.01-.001-.013.001c-.079.005-.145-.021-.19-.095a.113.113 0 01-.014-.065c.027-.465 2.034-1.991 2.152-2.642l.009-.048c.1-.65-.271-.817-.791-.493zM11.938 2.984c-4.798 0-8.688 3.829-8.688 8.55 0 .692.083 1.364.24 2.008l.008-.009c.252-.298.612-.46 1.017-.46.355.008.699.117.993.312.22.14.465.384.715.694.261-.372.69-.598 1.15-.605.852 0 1.367.728 1.562 1.383l.047.105.06.127c.192.396.595 1.139 1.143 1.68 1.06 1.04 1.324 2.115.8 3.266a8.865 8.865 0 002.024-.014c-.505-1.12-.26-2.17.74-3.186l.066-.066c.695-.684 1.157-1.69 1.252-1.912.195-.655.708-1.383 1.56-1.383.46.007.889.233 1.15.605.25-.31.495-.553.718-.694a1.87 1.87 0 01.99-.312c.357 0 .682.126.925.36.14-.61.215-1.245.215-1.898 0-4.722-3.89-8.55-8.687-8.55zm1.857 8.926l.439-.212c.553-.264.89-.383.89.152 0 1.093-.771 3.208-3.155 3.262h-.184c-2.325-.052-3.116-2.06-3.156-3.175l-.001-.087c0-1.107 1.452.586 3.25.586.716 0 1.379-.272 1.917-.526zm4.017-3.143c.45 0 .813.358.813.8 0 .441-.364.8-.813.8a.806.806 0 01-.812-.8c0-.442.364-.8.812-.8zm-11.624 0c.448 0 .812.358.812.8 0 .441-.364.8-.812.8a.806.806 0 01-.813-.8c0-.442.364-.8.813-.8zm7.79-.841c.32-.384.846-.54 1.33-.394.483.146.83.564.878 1.06.048.495-.212.97-.659 1.203-.322.168-.447-.477-.767-.585l.002-.003c-.287-.098-.772.362-.925.079a1.215 1.215 0 01.14-1.36zm-4.323 0c.322.384.377.92.14 1.36-.152.283-.64-.177-.925-.079l.003.003c-.108.036-.194.134-.273.24l-.118.165c-.11.15-.22.262-.377.18a1.226 1.226 0 01-.658-1.204c.048-.495.395-.913.878-1.059a1.262 1.262 0 011.33.394z"></path>',c:0},qwen:{v:"0.94 0.94 22.12 22.12",m:'<path d="M12.604 1.34c.393.69.784 1.382 1.174 2.075a.18.18 0 00.157.091h5.552c.174 0 .322.11.446.327l1.454 2.57c.19.337.24.478.024.837-.26.43-.513.864-.76 1.3l-.367.658c-.106.196-.223.28-.04.512l2.652 4.637c.172.301.111.494-.043.77-.437.785-.882 1.564-1.335 2.34-.159.272-.352.375-.68.37-.777-.016-1.552-.01-2.327.016a.099.099 0 00-.081.05 575.097 575.097 0 01-2.705 4.74c-.169.293-.38.363-.725.364-.997.003-2.002.004-3.017.002a.537.537 0 01-.465-.271l-1.335-2.323a.09.09 0 00-.083-.049H4.982c-.285.03-.553-.001-.805-.092l-1.603-2.77a.543.543 0 01-.002-.54l1.207-2.12a.198.198 0 000-.197 550.951 550.951 0 01-1.875-3.272l-.79-1.395c-.16-.31-.173-.496.095-.965.465-.813.927-1.625 1.387-2.436.132-.234.304-.334.584-.335a338.3 338.3 0 012.589-.001.124.124 0 00.107-.063l2.806-4.895a.488.488 0 01.422-.246c.524-.001 1.053 0 1.583-.006L11.704 1c.341-.003.724.032.9.34zm-3.432.403a.06.06 0 00-.052.03L6.254 6.788a.157.157 0 01-.135.078H3.253c-.056 0-.07.025-.041.074l5.81 10.156c.025.042.013.062-.034.063l-2.795.015a.218.218 0 00-.2.116l-1.32 2.31c-.044.078-.021.118.068.118l5.716.008c.046 0 .08.02.104.061l1.403 2.454c.046.081.092.082.139 0l5.006-8.76.783-1.382a.055.055 0 01.096 0l1.424 2.53a.122.122 0 00.107.062l2.763-.02a.04.04 0 00.035-.02.041.041 0 000-.04l-2.9-5.086a.108.108 0 010-.113l.293-.507 1.12-1.977c.024-.041.012-.062-.035-.062H9.2c-.059 0-.073-.026-.043-.077l1.434-2.505a.107.107 0 000-.114L9.225 1.774a.06.06 0 00-.053-.031zm6.29 8.02c.046 0 .058.02.034.06l-.832 1.465-2.613 4.585a.056.056 0 01-.05.029.058.058 0 01-.05-.029L8.498 9.841c-.02-.034-.01-.052.028-.054l.216-.012 6.722-.012z" fill="url(#lobe-icons-qwen-_R_0_)" fill-rule="nonzero"></path><defs><linearGradient id="lobe-icons-qwen-_R_0_" x1="0%" x2="100%" y1="0%" y2="0%"><stop offset="0%" stop-color="#6336E7" stop-opacity=".84"></stop><stop offset="100%" stop-color="#6F69F7" stop-opacity=".84"></stop></linearGradient></defs>',c:1},openrouter:{v:"-0.04 0.275 24.08 24.08",m:'<path d="M18.654 3.87a5.087 5.087 0 110 10.174L23.7 19.09c.64.641.187 1.737-.72 1.737H8.48a8.479 8.479 0 010-16.958h10.175zM8.479 7.26a5.087 5.087 0 100 10.176 5.087 5.087 0 000-10.175z"></path>',c:0},vercel:{v:"-0.04 -1.65 24.08 24.08",m:'<path d="M12 0l12 20.785H0L12 0z"></path>',c:0},cloudflare:{v:"-0.04 0.45 24.08 24.08",m:'<path d="M16.493 17.4c.135-.52.08-.983-.161-1.338-.215-.328-.592-.519-1.05-.519l-8.663-.109a.148.148 0 01-.135-.082c-.027-.054-.027-.109-.027-.163.027-.082.108-.164.189-.164l8.744-.11c1.05-.054 2.153-.9 2.556-1.937l.511-1.31c.027-.055.027-.11.027-.164C17.92 8.91 15.66 7 12.942 7c-2.503 0-4.628 1.638-5.381 3.903a2.432 2.432 0 00-1.803-.491c-1.21.109-2.153 1.092-2.287 2.32-.027.328 0 .628.054.9C1.56 13.688 0 15.326 0 17.319c0 .19.027.355.027.545 0 .082.08.137.161.137h15.983c.08 0 .188-.055.215-.164l.107-.437" fill="#F38020"></path><path d="M19.238 11.75h-.242c-.054 0-.108.054-.135.109l-.35 1.2c-.134.52-.08.983.162 1.338.215.328.592.518 1.05.518l1.855.11c.054 0 .108.027.135.082.027.054.027.109.027.163-.027.082-.108.164-.188.164l-1.91.11c-1.05.054-2.153.9-2.557 1.937l-.134.355c-.027.055.026.137.107.137h6.592c.081 0 .162-.055.162-.137.107-.41.188-.846.188-1.31-.027-2.62-2.153-4.777-4.762-4.777" fill="#FCAD32"></path>',c:1},bedrock:{v:"1.465 0.94 22.12 22.12",m:'<path d="M13.05 15.513h3.08c.214 0 .389.177.389.394v1.82a1.704 1.704 0 011.296 1.661c0 .943-.755 1.708-1.685 1.708-.931 0-1.686-.765-1.686-1.708 0-.807.554-1.484 1.297-1.662v-1.425h-2.69v4.663a.395.395 0 01-.188.338l-2.69 1.641a.385.385 0 01-.405-.002l-4.926-3.086a.395.395 0 01-.185-.336V16.3L2.196 14.87A.395.395 0 012 14.555L2 14.528V9.406c0-.14.073-.27.192-.34l2.465-1.462V4.448c0-.129.062-.249.165-.322l.021-.014L9.77 1.058a.385.385 0 01.407 0l2.69 1.675a.395.395 0 01.185.336V7.6h3.856V5.683a1.704 1.704 0 01-1.296-1.662c0-.943.755-1.708 1.685-1.708.931 0 1.685.765 1.685 1.708 0 .807-.553 1.484-1.296 1.662v2.311a.391.391 0 01-.389.394h-4.245v1.806h6.624a1.69 1.69 0 011.64-1.313c.93 0 1.685.764 1.685 1.707 0 .943-.754 1.708-1.685 1.708a1.69 1.69 0 01-1.64-1.314H13.05v1.937h4.953l.915 1.18a1.66 1.66 0 01.84-.227c.931 0 1.685.764 1.685 1.707 0 .943-.754 1.708-1.685 1.708-.93 0-1.685-.765-1.685-1.708 0-.346.102-.668.276-.937l-.724-.935H13.05v1.806zM9.973 1.856L7.93 3.122V6.09h-.778V3.604L5.435 4.669v2.945l2.11 1.36L9.712 7.61V5.334h.778V7.83c0 .136-.07.263-.184.335L7.963 9.638v2.081l1.422 1.009-.446.646-1.406-.998-1.53 1.005-.423-.66 1.605-1.055v-1.99L5.038 8.29l-2.26 1.34v1.676l1.972-1.189.398.677-2.37 1.429V14.3l2.166 1.258 2.27-1.368.397.677-2.176 1.311V19.3l1.876 1.175 2.365-1.426.398.678-2.017 1.216 1.918 1.201 2.298-1.403v-5.78l-4.758 2.893-.4-.675 5.158-3.136V3.289L9.972 1.856zM16.13 18.47a.913.913 0 00-.908.92c0 .507.406.918.908.918a.913.913 0 00.907-.919.913.913 0 00-.907-.92zm3.63-3.81a.913.913 0 00-.908.92c0 .508.406.92.907.92a.913.913 0 00.908-.92.913.913 0 00-.908-.92zm1.555-4.99a.913.913 0 00-.908.92c0 .507.407.918.908.918a.913.913 0 00.907-.919.913.913 0 00-.907-.92zM17.296 3.1a.913.913 0 00-.907.92c0 .508.406.92.907.92a.913.913 0 00.908-.92.913.913 0 00-.908-.92z"></path>',c:0},azure:{v:"0.38 0.135 23.66 23.66",m:'<path d="M18.397 15.296H7.4a.51.51 0 00-.347.882l7.066 6.595c.206.192.477.298.758.298h6.226l-2.706-7.775z" fill-opacity=".75"></path><path d="M8.295.857c-.477 0-.9.304-1.053.756L.495 21.605a1.11 1.11 0 001.052 1.466h5.43c.477 0 .9-.304 1.053-.755l1.341-3.975-2.318-2.163a.51.51 0 01.347-.882h3L15.271.857H8.295z" fill-opacity=".5"></path><path d="M17.193 1.613a1.11 1.11 0 00-1.052-.756h-7.81.035c.477 0 .9.304 1.052.756l6.748 19.992a1.11 1.11 0 01-1.052 1.466h-.12 7.895a1.11 1.11 0 001.052-1.466L17.193 1.613z"></path>',c:0},together:{v:"-0.04 0.625 24.15 24.15",m:'<path d="M23.197 4.503A6 6 0 0015 2.307a5.973 5.973 0 00-2.995 4.933l5.996.008v.515h-5.996c.039.937.298 1.87.8 2.74a6 6 0 1010.39-6z"></path><path d="M.805 4.5A6 6 0 003 12.697a5.972 5.972 0 005.77.127L5.779 7.627l.446-.257 2.997 5.192A6 6 0 10.804 4.5z"></path><path d="M12 23.894a6 6 0 005.999-6c0-2.13-1.1-3.996-2.775-5.06l-3.005 5.189-.444-.258 2.997-5.192A6 6 0 1012 23.894z"></path>',c:0},fireworks:{v:"-0.04 -1.02 24.08 24.08",m:'<path clip-rule="evenodd" d="M14.8 5l-2.801 6.795L9.195 5H7.397l3.072 7.428a1.64 1.64 0 003.038.002L16.598 5H14.8zm1.196 10.352l5.124-5.244-.699-1.669-5.596 5.739a1.664 1.664 0 00-.343 1.807 1.642 1.642 0 001.516 1.012L16 17l8-.02-.699-1.669-7.303.041h-.002zM2.88 10.104l.699-1.669 5.596 5.739c.468.479.603 1.189.343 1.807a1.643 1.643 0 01-1.516 1.012l-8-.018-.002.002.699-1.669 7.303.042-5.122-5.246z"></path>',c:0},baseten:{v:"-0.04 -0.04 24.08 24.08",m:'<path d="M2.316 4.8h14.682v4.8H7.31a.302.302 0 00-.308.3v4.2c0 .171.14.3.308.3h9.688v4.8h-4.686a.302.302 0 00-.308.3v4.2c0 .171.141.3.308.3h4.378a.297.297 0 00.308-.3v-4.5h4.694a.302.302 0 00.308-.3v-4.2c0-.171-.14-.3-.308-.3h-4.694V9.6h4.694A.302.302 0 0022 9.3V5.1c0-.171-.14-.3-.308-.3h-4.694V.3c0-.171-.14-.3-.308-.3H2.316A.31.31 0 002 .3v4.2c0 .171.14.3.316.3z"></path>',c:0},cerebras:{v:"0.87 1.29 21.42 21.42",m:'<path clip-rule="evenodd" d="M14.121 2.701a9.299 9.299 0 000 18.598V22.7c-5.91 0-10.7-4.791-10.7-10.701S8.21 1.299 14.12 1.299V2.7zm4.752 3.677A7.353 7.353 0 109.42 17.643l-.901 1.074a8.754 8.754 0 01-1.08-12.334 8.755 8.755 0 0112.335-1.08l-.901 1.075zm-2.255.844a5.407 5.407 0 00-5.048 9.563l-.656 1.24a6.81 6.81 0 016.358-12.043l-.654 1.24zM14.12 8.539a3.46 3.46 0 100 6.922v1.402a4.863 4.863 0 010-9.726v1.402z" fill="#F15A29" fill-rule="evenodd"></path><path d="M15.407 10.836a2.24 2.24 0 00-.51-.409 1.084 1.084 0 00-.544-.152c-.255 0-.483.047-.684.14a1.58 1.58 0 00-.84.912c-.074.203-.11.416-.11.631 0 .218.036.43.11.631a1.594 1.594 0 00.84.913c.2.093.43.14.684.14.216 0 .417-.046.602-.135.188-.09.35-.225.475-.392l.928 1.006c-.14.14-.3.261-.482.363a3.367 3.367 0 01-1.083.38c-.17.026-.317.04-.44.04a3.315 3.315 0 01-1.182-.21 2.825 2.825 0 01-.961-.597 2.816 2.816 0 01-.644-.929 2.987 2.987 0 01-.238-1.21c0-.444.08-.847.238-1.21.15-.35.368-.666.643-.929.278-.261.605-.464.962-.596a3.315 3.315 0 011.182-.21c.355 0 .712.068 1.072.204.361.138.685.36.944.649l-.962.97z"></path>',c:1},groq:{v:"1.99 1.99 20.02 20.02",m:'<path d="M12.036 2c-3.853-.035-7 3-7.036 6.781-.035 3.782 3.055 6.872 6.908 6.907h2.42v-2.566h-2.292c-2.407.028-4.38-1.866-4.408-4.23-.029-2.362 1.901-4.298 4.308-4.326h.1c2.407 0 4.358 1.915 4.365 4.278v6.305c0 2.342-1.944 4.25-4.323 4.279a4.375 4.375 0 01-3.033-1.252l-1.851 1.818A7 7 0 0012.029 22h.092c3.803-.056 6.858-3.083 6.879-6.816v-6.5C18.907 4.963 15.817 2 12.036 2z"></path>',c:0},github:{v:"-0.04 -0.53 24.08 24.08",m:'<path d="M12 0c6.63 0 12 5.276 12 11.79-.001 5.067-3.29 9.567-8.175 11.187-.6.118-.825-.25-.825-.56 0-.398.015-1.665.015-3.242 0-1.105-.375-1.813-.81-2.181 2.67-.295 5.475-1.297 5.475-5.822 0-1.297-.465-2.344-1.23-3.169.12-.295.54-1.503-.12-3.125 0 0-1.005-.324-3.3 1.209a11.32 11.32 0 00-3-.398c-1.02 0-2.04.133-3 .398-2.295-1.518-3.3-1.209-3.3-1.209-.66 1.622-.24 2.83-.12 3.125-.765.825-1.23 1.887-1.23 3.169 0 4.51 2.79 5.527 5.46 5.822-.345.294-.66.81-.765 1.577-.69.31-2.415.81-3.495-.973-.225-.354-.9-1.223-1.845-1.209-1.005.015-.405.56.015.781.51.28 1.095 1.327 1.23 1.666.24.663 1.02 1.93 4.035 1.385 0 .988.015 1.916.015 2.196 0 .31-.225.664-.825.56C3.303 21.374-.003 16.867 0 11.791 0 5.276 5.37 0 12 0z"></path>',c:0},opencode:{v:"1.99 1.99 20.02 20.02",m:'<path d="M16 6H8v12h8V6zm4 16H4V2h16v20z"></path>',c:0},commandcode:{v:"-11.5383 -11.5383 23.0767 23.0767",m:'<g fill="none" stroke="#000" stroke-width="1.85"><path d="M-7.6 -4.6H7.6M-7.6 4.6H7.6M-4.6 -7.6V7.6M4.6 -7.6V7.6"/><circle cx="-7.6" cy="-7.6" r="3"/><circle cx="7.6" cy="-7.6" r="3"/><circle cx="-7.6" cy="7.6" r="3"/><circle cx="7.6" cy="7.6" r="3"/></g>',c:0,o:.9},cliproxy:{v:"-18.9525 -18.9525 37.905 37.905",m:'<path fill="none" stroke="currentColor" stroke-width="1.9" stroke-linejoin="round" d="M 0 -18 Q -5.8 -5.8 -18 0 Q -5.8 5.8 0 18 Q 5.8 5.8 18 0 Q 5.8 -5.8 0 -18 Z"/><g transform="scale(-0.835, 0.835) translate(-12, -12)"><path fill="currentColor" d="M9.205 8.658v-2.26c0-.19.072-.333.238-.428l4.543-2.616c.619-.357 1.356-.523 2.117-.523 2.854 0 4.662 2.212 4.662 4.566 0 .167 0 .357-.024.547l-4.71-2.759a.797.797 0 00-.856 0l-5.97 3.473zm10.609 8.8V12.06c0-.333-.143-.57-.429-.737l-5.97-3.473 1.95-1.118a.433.433 0 01.476 0l4.543 2.617c1.309.76 2.189 2.378 2.189 3.948 0 1.808-1.07 3.473-2.76 4.163zM7.802 12.703l-1.95-1.142c-.167-.095-.239-.238-.239-.428V5.899c0-2.545 1.95-4.472 4.591-4.472 1 0 1.927.333 2.712.928L8.23 5.067c-.285.166-.428.404-.428.737v6.898zM12 15.128l-2.795-1.57v-3.33L12 8.658l2.795 1.57v3.33L12 15.128zm1.796 7.23c-1 0-1.927-.332-2.712-.927l4.686-2.712c.285-.166.428-.404.428-.737v-6.898l1.974 1.142c.167.095.238.238.238.428v5.233c0 2.545-1.974 4.472-4.614 4.472zm-5.637-5.303l-4.544-2.617c-1.308-.761-2.188-2.378-2.188-3.948A4.482 4.482 0 014.21 6.327v5.423c0 .333.143.571.428.738l5.947 3.449-1.95 1.118a.432.432 0 01-.476 0zm-.262 3.9c-2.688 0-4.662-2.021-4.662-4.519 0-.19.024-.38.047-.57l4.686 2.71c.286.167.571.167.856 0l5.97-3.448v2.26c0 .19-.07.333-.237.428l-4.543 2.616c-.619.357-1.356.523-2.117.523zm5.899 2.83a5.947 5.947 0 005.827-4.756C22.287 18.339 24 15.84 24 13.296c0-1.665-.713-3.282-1.998-4.448.119-.5.19-.999.19-1.498 0-3.401-2.759-5.947-5.946-5.947-.642 0-1.26.095-1.88.31A5.962 5.962 0 0010.205 0a5.947 5.947 0 00-5.827 4.757C1.713 5.447 0 7.945 0 10.49c0 1.666.713 3.283 1.998 4.448-.119.5-.19 1-.19 1.499 0 3.401 2.759 5.946 5.946 5.946.642 0 1.26-.095 1.88-.309a5.96 5.96 0 004.162 1.713z"/></g>',c:0},ollama:{v:"0.94 0.94 22.12 22.12",m:'<path d="M7.905 1.09c.216.085.411.225.588.41.295.306.544.744.734 1.263.191.522.315 1.1.362 1.68a5.054 5.054 0 012.049-.636l.051-.004c.87-.07 1.73.087 2.48.474.101.053.2.11.297.17.05-.569.172-1.134.36-1.644.19-.52.439-.957.733-1.264a1.67 1.67 0 01.589-.41c.257-.1.53-.118.796-.042.401.114.745.368 1.016.737.248.337.434.769.561 1.287.23.934.27 2.163.115 3.645l.053.04.026.019c.757.576 1.284 1.397 1.563 2.35.435 1.487.216 3.155-.534 4.088l-.018.021.002.003c.417.762.67 1.567.724 2.4l.002.03c.064 1.065-.2 2.137-.814 3.19l-.007.01.01.024c.472 1.157.62 2.322.438 3.486l-.006.039a.651.651 0 01-.747.536.648.648 0 01-.54-.742c.167-1.033.01-2.069-.48-3.123a.643.643 0 01.04-.617l.004-.006c.604-.924.854-1.83.8-2.72-.046-.779-.325-1.544-.8-2.273a.644.644 0 01.18-.886l.009-.006c.243-.159.467-.565.58-1.12a4.229 4.229 0 00-.095-1.974c-.205-.7-.58-1.284-1.105-1.683-.595-.454-1.383-.673-2.38-.61a.653.653 0 01-.632-.371c-.314-.665-.772-1.141-1.343-1.436a3.288 3.288 0 00-1.772-.332c-1.245.099-2.343.801-2.67 1.686a.652.652 0 01-.61.425c-1.067.002-1.893.252-2.497.703-.522.39-.878.935-1.066 1.588a4.07 4.07 0 00-.068 1.886c.112.558.331 1.02.582 1.269l.008.007c.212.207.257.53.109.785-.36.622-.629 1.549-.673 2.44-.05 1.018.186 1.902.719 2.536l.016.019a.643.643 0 01.095.69c-.576 1.236-.753 2.252-.562 3.052a.652.652 0 01-1.269.298c-.243-1.018-.078-2.184.473-3.498l.014-.035-.008-.012a4.339 4.339 0 01-.598-1.309l-.005-.019a5.764 5.764 0 01-.177-1.785c.044-.91.278-1.842.622-2.59l.012-.026-.002-.002c-.293-.418-.51-.953-.63-1.545l-.005-.024a5.352 5.352 0 01.093-2.49c.262-.915.777-1.701 1.536-2.269.06-.045.123-.09.186-.132-.159-1.493-.119-2.73.112-3.67.127-.518.314-.95.562-1.287.27-.368.614-.622 1.015-.737.266-.076.54-.059.797.042zm4.116 9.09c.936 0 1.8.313 2.446.855.63.527 1.005 1.235 1.005 1.94 0 .888-.406 1.58-1.133 2.022-.62.375-1.451.557-2.403.557-1.009 0-1.871-.259-2.493-.734-.617-.47-.963-1.13-.963-1.845 0-.707.398-1.417 1.056-1.946.668-.537 1.55-.849 2.485-.849zm0 .896a3.07 3.07 0 00-1.916.65c-.461.37-.722.835-.722 1.25 0 .428.21.829.61 1.134.455.347 1.124.548 1.943.548.799 0 1.473-.147 1.932-.426.463-.28.7-.686.7-1.257 0-.423-.246-.89-.683-1.256-.484-.405-1.14-.643-1.864-.643zm.662 1.21l.004.004c.12.151.095.37-.056.49l-.292.23v.446a.375.375 0 01-.376.373.375.375 0 01-.376-.373v-.46l-.271-.218a.347.347 0 01-.052-.49.353.353 0 01.494-.051l.215.172.22-.174a.353.353 0 01.49.051zm-5.04-1.919c.478 0 .867.39.867.871a.87.87 0 01-.868.871.87.87 0 01-.867-.87.87.87 0 01.867-.872zm8.706 0c.48 0 .868.39.868.871a.87.87 0 01-.868.871.87.87 0 01-.867-.87.87.87 0 01.867-.872zM7.44 2.3l-.003.002a.659.659 0 00-.285.238l-.005.006c-.138.189-.258.467-.348.832-.17.692-.216 1.631-.124 2.782.43-.128.899-.208 1.404-.237l.01-.001.019-.034c.046-.082.095-.161.148-.239.123-.771.022-1.692-.253-2.444-.134-.364-.297-.65-.453-.813a.628.628 0 00-.107-.09L7.44 2.3zm9.174.04l-.002.001a.628.628 0 00-.107.09c-.156.163-.32.45-.453.814-.29.794-.387 1.776-.23 2.572l.058.097.008.014h.03a5.184 5.184 0 011.466.212c.086-1.124.038-2.043-.128-2.722-.09-.365-.21-.643-.349-.832l-.004-.006a.659.659 0 00-.285-.239h-.004z"></path>',c:0},vllm:{v:"-0.355 -0.04 23.1 23.1",m:'<path d="M0 4.973h9.324V23L0 4.973z"></path><path d="M13.986 4.351L22.378 0l-6.216 23H9.324l4.662-18.649z"></path>',c:0},lmstudio:{v:"-0.04 -0.32 24.08 24.08",m:'<path d="M2.84 2a1.273 1.273 0 100 2.547h14.107a1.273 1.273 0 100-2.547H2.84zM7.935 5.33a1.273 1.273 0 000 2.548H22.04a1.274 1.274 0 000-2.547H7.935zM3.624 9.935c0-.704.57-1.274 1.274-1.274h14.106a1.274 1.274 0 010 2.547H4.898c-.703 0-1.274-.57-1.274-1.273zM1.273 12.188a1.273 1.273 0 100 2.547H15.38a1.274 1.274 0 000-2.547H1.273zM3.624 16.792c0-.704.57-1.274 1.274-1.274h14.106a1.273 1.273 0 110 2.547H4.898c-.703 0-1.274-.57-1.274-1.273zM13.029 18.849a1.273 1.273 0 100 2.547h9.698a1.273 1.273 0 100-2.547h-9.698z" fill-opacity=".3"></path><path d="M2.84 2a1.273 1.273 0 100 2.547h10.287a1.274 1.274 0 000-2.547H2.84zM7.935 5.33a1.273 1.273 0 000 2.548H18.22a1.274 1.274 0 000-2.547H7.935zM3.624 9.935c0-.704.57-1.274 1.274-1.274h10.286a1.273 1.273 0 010 2.547H4.898c-.703 0-1.274-.57-1.274-1.273zM1.273 12.188a1.273 1.273 0 100 2.547H11.56a1.274 1.274 0 000-2.547H1.273zM3.624 16.792c0-.704.57-1.274 1.274-1.274h10.286a1.273 1.273 0 110 2.547H4.898c-.703 0-1.274-.57-1.274-1.273zM13.029 18.849a1.273 1.273 0 100 2.547h5.78a1.273 1.273 0 100-2.547h-5.78z"></path>',c:0},perplexity:{v:"-0.04 -0.04 24.08 24.08",m:'<path d="M19.785 0v7.272H22.5V17.62h-2.935V24l-7.037-6.194v6.145h-1.091v-6.152L4.392 24v-6.465H1.5V7.188h2.884V0l7.053 6.494V.19h1.09v6.49L19.786 0zm-7.257 9.044v7.319l5.946 5.234V14.44l-5.946-5.397zm-1.099-.08l-5.946 5.398v7.235l5.946-5.234V8.965zm8.136 7.58h1.844V8.349H13.46l6.105 5.54v2.655zm-8.982-8.28H2.59v8.195h1.8v-2.576l6.192-5.62zM5.475 2.476v4.71h5.115l-5.115-4.71zm13.219 0l-5.115 4.71h5.115v-4.71z"></path>',c:0},cohere:{v:"0.94 0.905 22.12 22.12",m:'<path clip-rule="evenodd" d="M8.128 14.099c.592 0 1.77-.033 3.398-.703 1.897-.781 5.672-2.2 8.395-3.656 1.905-1.018 2.74-2.366 2.74-4.18A4.56 4.56 0 0018.1 1H7.549A6.55 6.55 0 001 7.55c0 3.617 2.745 6.549 7.128 6.549z"></path><path clip-rule="evenodd" d="M9.912 18.61a4.387 4.387 0 012.705-4.052l3.323-1.38c3.361-1.394 7.06 1.076 7.06 4.715a5.104 5.104 0 01-5.105 5.104l-3.597-.001a4.386 4.386 0 01-4.386-4.387z"></path><path d="M4.776 14.962A3.775 3.775 0 001 18.738v.489a3.776 3.776 0 007.551 0v-.49a3.775 3.775 0 00-3.775-3.775z"></path>',c:0},ai21:{v:"-0.04 0.45 23.1 23.1",m:'<path d="M6.47 17l-.367-1.189H2.718L2.35 17H0l3.398-9.789h2.026L8.864 17H6.47zm-2.052-6.993l-1.17 4.028H5.56l-1.142-4.028zm4.707-2.796h2.23V17h-2.23V7.211zM11.955 15c.1-.483.277-.946.524-1.37.214-.359.482-.68.795-.951.32-.273.658-.52 1.013-.741.28-.168.54-.33.781-.483.222-.14.433-.296.632-.468.172-.148.317-.325.428-.525.107-.199.16-.423.157-.65 0-.392-.104-.674-.313-.846a1.176 1.176 0 00-.775-.259 1.207 1.207 0 00-.863.329c-.231.219-.347.585-.347 1.098H11.8a3.387 3.387 0 01.224-1.245c.146-.377.371-.716.66-.993.306-.29.667-.514 1.06-.657A4.04 4.04 0 0115.183 7c.42-.002.84.057 1.244.175.376.107.73.287 1.04.531.305.246.55.562.714.923.185.419.275.875.265 1.335.005.39-.084.774-.259 1.12-.167.328-.38.63-.632.894-.246.259-.517.49-.808.693-.29.2-.554.37-.789.51-.326.224-.596.417-.809.58a3.872 3.872 0 00-.51.455 1.229 1.229 0 00-.265.434 1.633 1.633 0 00-.074.517h4.078V17h-6.606a9.24 9.24 0 01.183-2zM18.8 8.93a5.05 5.05 0 001.135-.105c.25-.049.484-.156.686-.314.163-.139.28-.324.34-.532.068-.25.1-.51.095-.77H23V17h-2.243v-6.475H18.8V8.93z"></path>',c:0},voyage:{v:"0.45 -0.04 24.08 24.08",m:'<path d="M5.407 0v.066a.974.974 0 00-.048.245c-.011.11-.016.208-.016.295 0 .339.043.715.128 1.13.097.405.274.912.531 1.524l7.125 16.366L20.011 3.39c.161-.404.333-.846.515-1.327.182-.48.273-.966.273-1.458a1.406 1.406 0 00-.096-.54V0H24v.066c-.204.207-.45.578-.74 1.114-.29.535-.606 1.195-.949 1.982L13.095 24h-1.287L3.075 3.965c-.204-.47-.418-.923-.644-1.36-.214-.437-.418-.83-.61-1.18-.194-.36-.365-.66-.515-.9A5.666 5.666 0 001 .064V0h4.407z"></path>',c:0},deepinfra:{v:"-0.04 -0.04 24.08 24.08",m:'<path d="M3.294 7.821A2.297 2.297 0 011 5.527a2.297 2.297 0 012.294-2.295A2.297 2.297 0 015.59 5.527 2.297 2.297 0 013.294 7.82zm0-3.688a1.396 1.396 0 000 2.79 1.396 1.396 0 000-2.79zM3.294 14.293A2.297 2.297 0 011 11.998a2.297 2.297 0 012.294-2.294 2.297 2.297 0 012.295 2.294 2.297 2.297 0 01-2.295 2.295zm0-3.688a1.395 1.395 0 000 2.788 1.395 1.395 0 100-2.788zM3.294 20.761A2.297 2.297 0 011 18.467a2.297 2.297 0 012.294-2.295 2.297 2.297 0 012.295 2.295 2.297 2.297 0 01-2.295 2.294zm0-3.688a1.396 1.396 0 000 2.79 1.396 1.396 0 000-2.79zM20.738 7.821a2.297 2.297 0 01-2.295-2.294 2.297 2.297 0 012.294-2.295 2.297 2.297 0 012.295 2.295 2.297 2.297 0 01-2.294 2.294zm0-3.688a1.396 1.396 0 101.395 1.395c0-.77-.626-1.395-1.395-1.395zM20.738 14.293a2.297 2.297 0 01-2.295-2.295 2.297 2.297 0 012.294-2.294 2.297 2.297 0 012.295 2.294 2.297 2.297 0 01-2.294 2.295zm0-3.688c-.769 0-1.395.625-1.395 1.393a1.396 1.396 0 002.79 0c0-.77-.626-1.393-1.395-1.393zM20.738 20.761a2.297 2.297 0 01-2.295-2.294 2.297 2.297 0 012.294-2.295 2.297 2.297 0 012.295 2.295 2.297 2.297 0 01-2.294 2.294zm0-3.688a1.396 1.396 0 101.395 1.395c0-.77-.626-1.395-1.395-1.395zM12.016 11.057a2.297 2.297 0 01-2.294-2.294 2.297 2.297 0 012.294-2.295 2.297 2.297 0 012.295 2.295 2.297 2.297 0 01-2.295 2.294zm0-3.688a1.396 1.396 0 101.395 1.395c0-.77-.625-1.395-1.395-1.395zM12.017 4.589a2.297 2.297 0 01-2.295-2.295A2.297 2.297 0 0112.017 0a2.297 2.297 0 012.294 2.294 2.297 2.297 0 01-2.294 2.295zm0-3.688a1.396 1.396 0 101.395 1.395c0-.77-.626-1.395-1.395-1.395zM12.017 17.529a2.297 2.297 0 01-2.295-2.295 2.297 2.297 0 012.295-2.294 2.297 2.297 0 012.294 2.294 2.297 2.297 0 01-2.294 2.295zm0-3.688a1.396 1.396 0 101.395 1.395c0-.77-.626-1.395-1.395-1.395zM12.016 24a2.297 2.297 0 01-2.294-2.295 2.297 2.297 0 012.294-2.294 2.297 2.297 0 012.295 2.294A2.297 2.297 0 0112.016 24zm0-3.688a1.396 1.396 0 101.395 1.395c0-.77-.625-1.395-1.395-1.395z"></path><path d="M8.363 8.222a.742.742 0 01-.277-.053l-1.494-.596a.75.75 0 11.557-1.392l1.493.595a.75.75 0 01-.278 1.446h-.001zM8.363 14.566a.743.743 0 01-.277-.053l-1.494-.595a.75.75 0 11.557-1.393l1.493.596a.75.75 0 01-.278 1.445h-.001zM17.124 11.397a.741.741 0 01-.277-.054l-1.493-.595a.75.75 0 11.555-1.392l1.493.595a.75.75 0 01-.278 1.446zM17.124 5.05a.744.744 0 01-.277-.054L15.354 4.4a.75.75 0 01.555-1.392l1.493.596a.75.75 0 01-.278 1.445zM17.124 17.739a.743.743 0 01-.277-.053l-1.494-.596a.75.75 0 11.556-1.392l1.493.596a.75.75 0 01-.278 1.445zM6.91 17.966a.75.75 0 01-.279-1.445l1.494-.595a.749.749 0 11.556 1.392l-1.493.595a.743.743 0 01-.277.053H6.91zM6.91 11.66a.75.75 0 01-.279-1.446l1.494-.595a.75.75 0 01.556 1.392l-1.493.595a.743.743 0 01-.277.053H6.91zM6.91 5.033a.75.75 0 01-.279-1.446l1.494-.595a.75.75 0 01.556 1.392l-1.493.596a.744.744 0 01-.277.053H6.91zM8.363 21.364a.743.743 0 01-.277-.053l-1.494-.596a.75.75 0 01.555-1.392l1.494.595a.75.75 0 01-.278 1.446zM15.63 8.223a.75.75 0 01-.278-1.447l1.494-.595a.75.75 0 01.556 1.393l-1.494.595a.744.744 0 01-.276.054h-.002zM15.63 14.567a.75.75 0 01-.278-1.446l1.494-.596a.75.75 0 01.556 1.394l-1.494.595a.743.743 0 01-.276.053h-.002zM15.63 21.363a.749.749 0 01-.278-1.445l1.494-.595a.75.75 0 11.555 1.392l-1.494.595a.741.741 0 01-.277.053z"></path>',c:0},sambanova:{v:"0.94 0.94 22.12 22.12",m:'<path d="M23 23h-1.223V8.028c0-3.118-2.568-5.806-5.744-5.806H8.027c-3.176 0-5.744 2.565-5.744 5.686 0 3.119 2.568 5.684 5.744 5.684h.794c1.346 0 2.445 1.1 2.445 2.444 0 1.346-1.1 2.446-2.445 2.446H1v-1.223h7.761c.671 0 1.223-.551 1.223-1.16 0-.67-.552-1.16-1.223-1.16h-.794C4.177 14.872 1 11.756 1 7.909 1 4.058 4.176 1 8.027 1h8.066C19.88 1 23 4.239 23 8.028V23z"></path><path d="M8.884 12.672c1.71.06 3.361 1.588 3.361 3.422 0 1.833-1.528 3.421-3.421 3.421H1v1.223h7.761c2.568 0 4.705-2.077 4.705-4.644 0-.672-.123-1.283-.43-1.894-.245-.551-.67-1.1-1.099-1.528-.489-.429-1.039-.734-1.65-.977-.525-.175-1.048-.193-1.594-.212-.218-.008-.441-.016-.669-.034-.428 0-1.406-.245-1.956-.61a3.369 3.369 0 01-1.223-1.406c-.183-.489-.305-.977-.305-1.528A3.417 3.417 0 017.96 4.482h8.066c1.895 0 3.422 1.65 3.422 3.483v15.032h1.223V8.027c0-2.568-2.077-4.768-4.645-4.768h-8c-2.568 0-4.705 2.077-4.705 4.646 0 .67.123 1.282.43 1.894a4.45 4.45 0 001.099 1.528c.429.428 1.039.734 1.588.976.306.123.611.183.976.246.857.06 1.406.123 1.466.123h.003z"></path><path d="M1 23h7.761v-.003c3.85 0 7.03-3.116 7.09-7.026 0-3.79-3.117-6.906-6.967-6.906H8.09c-.672 0-1.222-.552-1.222-1.16 0-.608.487-1.16 1.159-1.16h8.069c.608 0 1.159.611 1.159 1.283v14.97h1.223V8.024c0-1.345-1.1-2.505-2.445-2.505H7.967a2.451 2.451 0 00-2.445 2.445 2.45 2.45 0 002.445 2.445h.794c3.176 0 5.744 2.568 5.744 5.684s-2.568 5.684-5.744 5.684H1V23z"></path>',c:0},novita:{v:"-0.04 -0.46 24.08 24.08",m:'<path clip-rule="evenodd" d="M9.167 4.17v5.665L0 19.003h9.167v-5.666l5.666 5.666H24L9.167 4.17z"></path>',c:0},hyperbolic:{v:"-0.04 -0.04 24.08 24.08",m:'<path d="M.193 19.503a2.413 2.413 0 00-.186.925c0 1.317 1.112 2.518 2.95 3.437a1.337 1.337 0 001.838-.738l2.049-4.93c.359-.857.642-1.745.846-2.652-3.795.637-6.656 2.092-7.448 3.872l-.032.076-.017.01zm7.49-11.047a15.981 15.981 0 00-.846-2.653L4.79.873a1.34 1.34 0 00-1.84-.738C1.112 1.054 0 2.256 0 3.573c0 .317.064.631.186.924v.01l.032.077c.81 1.78 3.67 3.234 7.466 3.872zM21.049.136c1.838.918 2.95 2.12 2.95 3.436a2.454 2.454 0 01-.196.925l-.027.063c-.785 1.792-3.653 3.254-7.46 3.896.204-.907.487-1.795.846-2.653L19.21.873a1.337 1.337 0 011.839-.738zm-4.722 15.409c.201.906.48 1.793.837 2.65l2.048 4.932a1.338 1.338 0 001.838.738c1.839-.92 2.951-2.12 2.951-3.437a2.446 2.446 0 00-.186-.925l-.027-.062c-.782-1.792-3.66-3.256-7.46-3.896zm-.129-6.04c2.695-.415 4.935-1.223 6.48-2.278L22.24 8.28a9.755 9.755 0 000 7.437l.435 1.048c-1.547-1.055-3.787-1.855-6.479-2.275l-.07-.01A27.196 27.196 0 0012 14.172c-1.377-.002-2.752.1-4.114.307l-.071.01c-2.693.413-4.933 1.222-6.48 2.277l.437-1.05a9.755 9.755 0 000-7.437l-.437-1.052c1.54 1.06 3.78 1.863 6.473 2.278l.071.01c2.734.407 5.513.407 8.246 0l.071-.01z" fill="#594CE9"></path>',c:1},targon:{v:"0.7604 0.6875 24.0625 24.0625",m:'<path clip-rule="evenodd" d="M20.297.7H5.289A4.496 4.496 0 00.793 5.195v15.007a4.496 4.496 0 004.496 4.496h15.008a4.496 4.496 0 004.496-4.496V5.196A4.497 4.497 0 0020.297.699zm-.518 5.134a.03.03 0 01.036-.01.03.03 0 01.018.024c.005.04.009.08.01.12.012.61.015 1.221.01 1.832a4.442 4.442 0 01-.547 2.138 4.162 4.162 0 01-2.277 1.882c-.34.12-.691.189-1.053.205-3.392.004-6.784.004-10.177 0-.071-.004-.149-.04-.159-.11a.156.156 0 01-.001-.014c-.03-1.067.317-1.988 1.042-2.764a3.855 3.855 0 012.43-1.208c2.016-.016 4.033-.025 6.05-.026.484-.025.963-.09 1.437-.195a5.856 5.856 0 001.737-.632c.208-.11.409-.233.6-.368.205-.156.394-.33.566-.524.094-.116.186-.233.278-.35zm.023 6.28c-.006-.042-.056-.05-.08-.016a4.68 4.68 0 01-.199.252 4.758 4.758 0 01-1.098.887 7.493 7.493 0 01-3.343.89l-5.907.05a2.735 2.735 0 00-.687.078 3.83 3.83 0 00-.76.293 4.08 4.08 0 00-1.536 1.398 4.007 4.007 0 00-.605 2.117c.002.037.01.074.021.11.022.048.06.074.113.076 3.417.004 6.834.004 10.25 0a7.12 7.12 0 00.327-.031 4.264 4.264 0 001.627-.627 4.071 4.071 0 001.761-2.498c.094-.425.137-.855.132-1.29 0-.563-.005-1.127-.016-1.69z"></path>',c:0},parasail:{v:"-0.04 -0.04 24.08 24.08",m:'<path d="M0 15.852c4.5 0 8.147 3.648 8.147 8.148H0v-8.148z"></path><path clip-rule="evenodd" d="M0 7.688v.018C9 7.706 16.294 15 16.294 24h.019l-.018-.036c3.33-.2 8.864-2.447 7.49-9.58A19.95 19.95 0 009.61.213C2.482-1.155.235 4.374.036 7.704L0 7.688z"></path>',c:0},lambda:{v:"1.99 1.99 20.02 20.02",m:'<path d="M2 2h20v20H2V2zm1.768 18.237h16.459V3.761H3.768v16.476zm3.515-14.91l3.479 6.176-3.871 7.154h2.493l2.58-4.883 2.747 4.883h2.54L9.82 5.324l-2.538.002z"></path>',c:0},fal:{v:"-0.04 -0.04 24.08 24.08",m:'<path clip-rule="evenodd" d="M15.477 0c.415 0 .749.338.788.752a7.775 7.775 0 006.985 6.984c.413.04.752.373.752.788v6.952c0 .415-.338.748-.752.788a7.775 7.775 0 00-6.985 6.984c-.04.414-.373.752-.788.752H8.525c-.416 0-.749-.338-.789-.752a7.775 7.775 0 00-6.984-6.984c-.414-.04-.752-.373-.752-.788V8.524c0-.415.338-.748.752-.788A7.775 7.775 0 007.736.752C7.776.338 8.11 0 8.526 0h6.95zM4.819 11.98a7.226 7.226 0 007.223 7.23 7.226 7.226 0 007.223-7.23c0-3.994-3.234-7.23-7.223-7.23a7.227 7.227 0 00-7.223 7.23z" fill="#EC0648" fill-rule="evenodd"></path>',c:1},replicate:{v:"1.99 1.99 20.02 20.02",m:'<path d="M22 10.552v2.26h-7.932V22H11.54V10.552H22zM22 2v2.264H4.528V22H2V2h20zm0 4.276V8.54H9.296V22H6.768V6.276H22z"></path>',c:0},midjourney:{v:"-0.04 -0.04 24.08 24.08",m:'<path d="M22.369 17.676c-1.387 1.259-3.17 2.378-5.332 3.417.044.03.086.057.13.083l.018.01.019.012c.216.123.42.184.641.184.222 0 .426-.061.642-.184l.018-.011.019-.011c.14-.084.266-.178.492-.366l.178-.148c.279-.232.426-.342.625-.456.304-.174.612-.266.949-.266.337 0 .645.092.949.266l.023.014c.188.109.334.219.602.442l.178.148c.221.184.346.278.483.36l.028.017.018.01c.21.12.407.181.62.185h.022a.31.31 0 110 .618c-.337 0-.645-.092-.95-.266a3.137 3.137 0 01-.09-.054l-.022-.014-.022-.013-.02-.014a5.356 5.356 0 01-.49-.377l-.159-.132a3.836 3.836 0 00-.483-.36l-.027-.017-.019-.01a1.256 1.256 0 00-.641-.185c-.222 0-.426.061-.641.184l-.02.011-.018.011c-.14.084-.266.178-.492.366l-.158.132a5.125 5.125 0 01-.51.39l-.022.014-.022.014-.09.054a1.868 1.868 0 01-.95.266c-.337 0-.644-.092-.949-.266a3.137 3.137 0 01-.09-.054l-.022-.014-.022-.013-.026-.017a4.881 4.881 0 01-.425-.325.308.308 0 01-.12-.1l-.098-.081a3.836 3.836 0 00-.483-.36l-.027-.017-.019-.01a1.256 1.256 0 00-.641-.185c-.222 0-.426.061-.642.184l-.018.011-.019.011c-.14.084-.266.178-.492.366l-.158.132a5.125 5.125 0 01-.51.39l-.023.014-.022.014-.09.054A1.868 1.868 0 0112 22c-.337 0-.645-.092-.949-.266a3.137 3.137 0 01-.09-.054l-.022-.014-.022-.013-.021-.014a5.356 5.356 0 01-.49-.377l-.158-.132a3.836 3.836 0 00-.483-.36l-.028-.017-.018-.01a1.256 1.256 0 00-.642-.185c-.221 0-.425.061-.641.184l-.019.011-.018.011c-.141.084-.266.178-.492.366l-.158.132a5.125 5.125 0 01-.511.39l-.022.014-.022.014-.09.054a1.868 1.868 0 01-.986.264c-.746-.09-1.319-.38-1.89-.866l-.035-.03c-.047-.041-.118-.106-.192-.174l-.196-.181-.107-.1-.011-.01a1.531 1.531 0 00-.336-.253.313.313 0 00-.095-.03h-.005c-.119.022-.238.059-.361.11a.308.308 0 01-.077.061l-.008.005a.309.309 0 01-.126.034 5.66 5.66 0 00-.774.518l-.416.324-.055.043a6.542 6.542 0 01-.324.236c-.305.207-.552.315-.8.315a.31.31 0 01-.01-.618h.01c.09 0 .235-.062.438-.198l.04-.027c.077-.054.163-.117.27-.199l.385-.301.06-.047c.268-.206.506-.373.73-.505l-.633-1.21a.309.309 0 01.254-.451l20.287-1.305a.309.309 0 01.228.537zm-1.118.14L2.369 19.03l.423.809c.128-.045.256-.078.388-.1a.31.31 0 01.052-.005c.132 0 .26.032.386.093.153.073.294.179.483.35l.016.015.092.086.144.134.097.089c.065.06.125.114.16.144.485.418.948.658 1.554.736h.011a1.25 1.25 0 00.6-.172l.021-.011.019-.011.018-.011c.141-.084.266-.178.492-.366l.178-.148c.279-.232.426-.342.625-.456.305-.174.612-.266.95-.266.336 0 .644.092.948.266l.023.014c.188.109.335.219.603.442l.177.148c.222.184.346.278.484.36l.027.017.019.01c.215.124.42.185.641.185.222 0 .426-.061.641-.184l.019-.011.018-.011c.141-.084.267-.178.493-.366l.177-.148c.28-.232.427-.342.626-.456.304-.174.612-.266.949-.266.337 0 .644.092.949.266l.025.015c.187.109.334.22.603.443 1.867-.878 3.448-1.811 4.73-2.832l.02-.016zM3.653 2.026C6.073 3.06 8.69 4.941 10.8 7.258c2.46 2.7 4.109 5.828 4.637 9.149a.31.31 0 01-.421.335c-2.348-.945-4.54-1.258-6.59-1.02-1.739.2-3.337.792-4.816 1.703-.294.182-.62-.182-.405-.454 1.856-2.355 2.581-4.99 2.343-7.794-.195-2.292-1.031-4.61-2.284-6.709a.31.31 0 01.388-.442zM10.04 4.45c1.778.543 3.892 2.102 5.782 4.243 1.984 2.248 3.552 4.934 4.347 7.582a.31.31 0 01-.401.38l-.022-.01-.386-.154a10.594 10.594 0 00-.291-.112l-.016-.006c-.68-.247-1.199-.291-1.944-.101a.31.31 0 01-.375-.218C15.378 11.123 13.073 7.276 9.775 5c-.291-.201-.072-.653.266-.55zM4.273 2.996l.008.015c1.028 1.94 1.708 4.031 1.885 6.113.213 2.513-.31 4.906-1.673 7.092l-.02.031.003-.001c1.198-.581 2.47-.969 3.825-1.132l.055-.006c1.981-.23 4.083.029 6.309.837l.066.025-.007-.039c-.593-2.95-2.108-5.737-4.31-8.179l-.07-.078c-1.785-1.96-3.944-3.6-6.014-4.65l-.057-.028zm7.92 3.238l.048.048c2.237 2.295 3.885 5.431 4.974 9.191l.038.132.022-.004c.71-.133 1.284-.063 1.963.18l.027.01.066.024.046.018-.025-.073c-.811-2.307-2.208-4.62-3.936-6.594l-.058-.065c-1.02-1.155-2.103-2.132-3.15-2.856l-.015-.011z"></path>',c:0},stability:{v:"0.94 0.94 22.12 22.12",m:'<path d="M7.223 21c4.252 0 7.018-2.22 7.018-5.56 0-2.59-1.682-4.236-4.69-4.918l-1.93-.571c-1.694-.375-2.683-.825-2.45-1.975.194-.957.773-1.497 2.122-1.497 4.285 0 5.873 1.497 5.873 1.497v-3.6S11.62 3 7.293 3C3.213 3 1 5.07 1 8.273c0 2.59 1.534 4.097 4.645 4.812l.334.083c.473.144 1.112.335 1.916.572 1.59.375 1.999.773 1.999 1.966 0 1.09-1.15 1.71-2.67 1.71C2.841 17.416 1 15.231 1 15.231v3.989S2.152 21 7.223 21z"></path><path d="M20.374 20.73c1.505 0 2.626-1.073 2.626-2.526 0-1.484-1.089-2.526-2.626-2.526-1.505 0-2.594 1.042-2.594 2.526 0 1.484 1.089 2.526 2.594 2.526z"></path>',c:0},suno:{v:"-0.04 -0.04 24.08 24.08",m:'<path d="M16.5 0C20.642 0 24 5.373 24 12h-9c0 6.627-3.358 12-7.5 12C3.358 24 0 18.627 0 12h9c0-6.627 3.358-12 7.5-12z"></path>',c:0},elevenlabs:{v:"-0.04 -0.04 24.08 24.08",m:'<path d="M5 0h5v24H5V0zM14 0h5v24h-5V0z"></path>',c:0},fishaudio:{v:"-0.04 0.45 24.08 24.08",m:'<path d="M23.556 12.189c.244 0 .444.126.444.28v.951c0 .154-.2.28-.444.28s-.444-.126-.444-.28v-.952c0-.153.2-.279.444-.279zm-1.764.372c.244 0 .444.126.444.28v2.095c0 .153-.2.279-.444.279-.245 0-.444-.126-.444-.28V12.84c0-.153.2-.28.444-.28zm-1.765.434c.244 0 .444.125.444.279v2.355c0 .154-.2.28-.444.28s-.444-.126-.444-.28v-2.355c0-.154.2-.28.444-.28zm-1.764.359c.244 0 .444.125.444.279v2.33c0 .153-.2.279-.444.279s-.444-.126-.444-.28v-2.33c0-.153.2-.278.444-.278zm-1.765.316c.245 0 .444.126.444.28v2.017c0 .154-.2.28-.444.28s-.444-.126-.444-.28V13.95c0-.154.2-.28.444-.28zm-1.755 1.287c.244 0 .444.125.444.28v.64c0 .153-.2.278-.444.278s-.444-.125-.444-.279v-.64c0-.154.2-.28.444-.28z" opacity=".35"></path><path d="M23.556 9.63c.244 0 .444.125.444.279v1.575c0 .154-.2.28-.444.28s-.444-.126-.444-.28V9.909c0-.154.2-.28.444-.28zm-1.764-1.058c.244 0 .444.125.444.28v2.81c0 .153-.2.278-.444.278-.245 0-.444-.125-.444-.279v-2.81c0-.154.2-.28.444-.28zm-1.765-.398c.244 0 .444.126.444.28v3.667c0 .153-.2.28-.444.28s-.444-.127-.444-.28V8.453c0-.153.2-.28.444-.28zM18.263 8c.244 0 .444.126.444.28v4.29c0 .154-.2.28-.444.28s-.444-.126-.444-.28V8.28c0-.154.2-.28.444-.28zm-1.765.109c.245 0 .444.126.444.28v4.355c0 .154-.2.28-.444.28s-.444-.126-.444-.28V8.388c0-.153.2-.28.444-.28zm-1.755.273c.244 0 .444.125.444.28v5.434c0 .153-.2.28-.444.28s-.444-.126-.444-.28V8.66c0-.154.2-.28.444-.28zm-1.801.463c.244 0 .444.125.444.279v6.162c0 .154-.2.28-.444.28s-.444-.126-.444-.28V9.124c0-.154.2-.28.444-.28zm-1.764.784c.244 0 .444.126.444.28v5.928c0 .154-.2.28-.444.28-.245 0-.444-.126-.444-.28V9.909c0-.154.2-.28.444-.28zm-1.765 1.022c.245 0 .444.126.444.28v5.161c0 .154-.2.28-.444.28s-.444-.126-.444-.28V10.93c0-.154.2-.28.444-.28zm-1.764.706c.244 0 .444.126.444.28v5.084c0 .153-.2.279-.444.279s-.444-.126-.444-.28v-5.083c0-.154.2-.28.444-.28zm-1.756.585c.245 0 .444.126.444.28v2.705c0 .154-.2.28-.444.28s-.444-.126-.444-.28v-2.706c0-.153.2-.279.444-.279zM4.076 9.304c.244 0 .444.126.444.28v3.771c0 .154-.2.28-.444.28s-.444-.126-.444-.28V9.584c0-.154.2-.28.444-.28zm-1.814.247c.244 0 .443.126.443.28v1.16c0 .153-.2.279-.443.279-.245 0-.444-.126-.444-.28V9.83c0-.153.2-.279.444-.279zM.444 9.395c.244 0 .444.126.444.28v.523c0 .153-.2.279-.444.279S0 10.351 0 10.197v-.522c0-.154.2-.28.444-.28zm5.45-.442c.244 0 .443.126.443.28v.392c0 .154-.2.28-.444.28s-.444-.126-.444-.28v-.393c0-.154.2-.28.444-.28z"></path>',c:0},assemblyai:{v:"-0.04 -0.145 24.08 24.08",m:'<path d="M10.595 1.5a3.695 3.695 0 00-3.444 2.355L0 22.26h5.432l5.629-14.486h.002a.96.96 0 011.782 0h.75V4.835h-1.393L13.498 1.5h-2.902z"></path><path d="M7.151 3.855a3.695 3.695 0 013.26-2.35l-.002-.005H13.405c1.524 0 2.893.936 3.444 2.355L24 22.26h-5.525L11.54 4.413a2.528 2.528 0 00-4.609.006l.22-.564z"></path>',c:0},siliconcloud:{v:"-0.04 0.205 24.08 24.08",m:'<path clip-rule="evenodd" d="M22.956 6.521H12.522c-.577 0-1.044.468-1.044 1.044v3.13c0 .577-.466 1.044-1.043 1.044H1.044c-.577 0-1.044.467-1.044 1.044v4.174C0 17.533.467 18 1.044 18h10.434c.577 0 1.044-.467 1.044-1.043v-3.13c0-.578.466-1.044 1.043-1.044h9.391c.577 0 1.044-.467 1.044-1.044V7.565c0-.576-.467-1.044-1.044-1.044z" fill="#6E29F6" fill-rule="evenodd"></path>',c:1},volcengine:{v:"0.87 -0.04 22.05 22.05",m:'<path d="M7.29 5.36L3.148 21.737a.215.215 0 00.203.261h8.29a.214.214 0 00.215-.261L7.7 5.359a.214.214 0 00-.41 0z" fill-opacity=".5"></path><path clip-rule="evenodd" d="M4.553 16.18l-1.406 5.558a.214.214 0 00.203.261h2.42-4.551a.214.214 0 01-.214-.26l2.275-8.961a.214.214 0 01.409 0l.864 3.402z"></path><path d="M14.44.15a.214.214 0 00-.41 0L8.366 21.739a.214.214 0 00.214.261H19.9a.214.214 0 00.215-.261L14.44.151z" fill-opacity=".5"></path><path clip-rule="evenodd" d="M16.694 22h3.207a.215.215 0 00.214-.262l-1.839-6.993 1.164-4.592a.214.214 0 01.411 0l2.951 11.586a.214.214 0 01-.214.261h-5.894z"></path><path d="M10.278 7.741L6.685 21.736a.214.214 0 00.214.264h7.17a.216.216 0 00.214-.166.216.216 0 000-.098L10.687 7.742a.214.214 0 00-.409 0z"></path>',c:0},doubao:{v:"0.135 -0.04 24.08 24.08",m:'<path d="M5.31 15.756c.172-3.75 1.883-5.999 2.549-6.739-3.26 2.058-5.425 5.658-6.358 8.308v1.12C1.501 21.513 4.226 24 7.59 24a6.59 6.59 0 002.2-.375c.353-.12.7-.248 1.039-.378.913-.899 1.65-1.91 2.243-2.992-4.877 2.431-7.974.072-7.763-4.5l.002.001z" fill-opacity=".5"></path><path d="M22.57 10.283c-1.212-.901-4.109-2.404-7.397-2.8.295 3.792.093 8.766-2.1 12.773a12.782 12.782 0 01-2.244 2.992c3.764-1.448 6.746-3.457 8.596-5.219 2.82-2.683 3.353-5.178 3.361-6.66a2.737 2.737 0 00-.216-1.084v-.002zM14.303 1.867C12.955.7 11.248 0 9.39 0 7.532 0 5.883.677 4.545 1.807 2.791 3.29 1.627 5.557 1.5 8.125v9.201c.932-2.65 3.097-6.25 6.357-8.307.5-.318 1.025-.595 1.569-.829 1.883-.801 3.878-.932 5.746-.706-.222-2.83-.718-5.002-.87-5.617h.001z"></path><path d="M17.305 4.961a199.47 199.47 0 01-1.08-1.094c-.202-.213-.398-.419-.586-.622l-1.333-1.378c.151.615.648 2.786.869 5.617 3.288.395 6.185 1.898 7.396 2.8-1.306-1.275-3.475-3.487-5.266-5.323z" fill-opacity=".5"></path>',c:0},hunyuan:{v:"-0.04 -0.04 24.08 24.08",m:'<path d="M12 0c6.627 0 12 5.373 12 12s-5.373 12-12 12S0 18.627 0 12 5.373 0 12 0zm1.652 1.123l-.01-.001c.533.097 1.023.233 1.41.404 6.084 2.683 7.396 9.214 1.601 14.338a3.781 3.781 0 01-5.337-.328 3.654 3.654 0 01-.884-3.044c-1.934.6-3.295 2.305-3.524 4.45-.204 1.912.324 4.044 2.056 5.634l.245.067C10.1 22.876 11.036 23 12 23c6.075 0 11-4.925 11-11 0-5.513-4.056-10.08-9.348-10.877zM2.748 6.21c-.178.269-.348.536-.51.803l-.235.394.078-.167A10.957 10.957 0 001 12c0 4.919 3.228 9.083 7.682 10.49l.214.065C3.523 18.528 2.84 14.149 6.47 8.68A2.234 2.234 0 102.748 6.21zm10.157-5.172c4.408 1.33 3.61 5.41 2.447 6.924-.86 1.117-2.922 1.46-3.708 2.238-.666.657-1.077 1.462-1.212 2.291A5.303 5.303 0 0112 12.258a5.672 5.672 0 001.404-11.169 10.51 10.51 0 00-.5-.052z"></path>',c:0},yuanbao:{v:"-0.04 -0.04 24.08 24.08",m:'<path d="M12.014.648c-6.628 0-12 5.09-12 11.367 0 6.277 5.372 11.366 12 11.366s12-5.09 12-11.366c0-6.277-5.372-11.367-12-11.367zm5.849 15.481c-4.305 3.1-10.584 2.523-13.481-1.444-2.86-3.918-1.351-9.703 2.685-13.02-1.866 1.676-2.67 5.01-1.282 6.909 1.471 2.015 4.794 1.746 6.958.113 2.435-1.84 6.036-1.794 7.234.954.91 2.208.067 4.93-2.114 6.487v.001z"></path><path d="M14.81 14.914a.669.669 0 01-.536-.269l-1.02-1.37a.67.67 0 01.005-.807l1.021-1.328a.669.669 0 011.06.814l-.713.926.72.964a.67.67 0 01-.534 1.067l-.002.003zM10.877 12.913c0 1.797-.357 2.135-1.162 2.135-.805 0-1.162-.338-1.162-2.135 0-1.798.357-2.136 1.162-2.136.805 0 1.162.338 1.162 2.136z"></path>',c:0},stepfun:{v:"-0.04 -0.04 24.08 24.08",m:'<path d="M12 0C5.372 0 0 5.372 0 12s5.372 12 12 12 12-5.372 12-12S18.628 0 12 0zM8.762 19.614H4.376v-4.386h4.386v4.386zm5.423 0H9.798v-4.386h4.387v4.386zm0-5.42H9.798V9.81h4.387v4.386zm0-5.418H9.798V4.39h4.387v4.386zm5.422-.004h-4.386V4.386h4.386v4.386z"></path>',c:0},sensenova:{v:"0.975 0.94 22.12 22.12",m:'<path d="M23 8.333h-7.333v7.334H23V8.333z"></path><path d="M1 1v14.667h7.333V8.333h7.334V1H1z" fill-opacity=".33"></path><path d="M14.038 4.333h.17l1.459 1.456v.17l-1.63-1.626zM13.224 4.333h.17l2.273 2.268v.17l-2.443-2.438zM12.41 4.333h.17l3.087 3.08v.17l-3.257-3.25zM11.596 4.333h.17l3.9 3.892v.108h-.06l-4.01-4zM10.782 4.333h.17l4.01 4h-.17l-4.01-4zM9.968 4.333h.17l4.009 4h-.17l-4.01-4zM9.154 4.333h.17l4.009 4h-.17l-4.01-4zM8.34 4.333h.17l4.01 4h-.17l-4.01-4zM7.521 4.333h.17l4.01 4h-.17l-4.01-4zM6.707 4.333h.17l4.01 4h-.17l-4.01-4zM5.892 4.333h.17l4.009 4h-.17l-4.01-4zM5.077 4.333h.17l4.01 4h-.17l-4.01-4zM4.333 4.403v-.07h.1l4.01 4h-.11v.06l-4-3.99zM4.333 5.215v-.17l4 3.991v.17l-4-3.99zM4.333 6.027v-.17l4 3.991v.17l-4-3.99zM4.333 6.84v-.17l4 3.99v.17l-4-3.99zM4.333 7.652v-.17l4 3.99v.17l-4-3.99zM4.333 8.464v-.17l4 3.99v.17l-4-3.99zM4.333 9.276v-.17l4 3.991v.17l-4-3.991zM4.333 10.088v-.17l4 3.991v.17l-4-3.991zM4.333 10.9v-.17l4 3.991v.17l-4-3.991zM4.333 11.712v-.17l4 3.991v.134h-.036l-3.964-3.955zM4.333 12.526v-.17l3.318 3.31h-.17l-3.148-3.14zM4.333 13.34v-.169l2.502 2.496h-.17L4.333 13.34zM4.333 14.152v-.169l1.688 1.684h-.17l-1.518-1.514zM4.333 14.965v-.17l.874.872h-.17l-.704-.702zM15.667 5.146l-.815-.813h.17l.645.644v.169z"></path><path d="M23 15.667h-7.333V23H23v-7.333z" fill-opacity=".33"></path><path d="M15.667 15.667H8.333V23h7.334v-7.333z"></path>',c:0},baichuan:{v:"-0.04 0.975 22.05 22.05",m:'<path d="M7.333 2h-3.2l-2 4.333V17.8L0 22h5.2l2.028-4.2L7.333 2zm7.334 0h-5.2v20h5.2V2zM16.8 7.733H22V22h-5.2V7.733zM22 2h-5.2v4.133H22V2z"></path>',c:0},yi:{v:"1.99 1.99 20.02 20.02",m:'<path d="M18.62 13.927c.611 0 1.107.505 1.107 1.128v5.817c0 .623-.496 1.128-1.108 1.128a1.118 1.118 0 01-1.108-1.128v-5.817c0-.623.496-1.128 1.108-1.128zM16.59 3.052a1.094 1.094 0 011.562-.129c.466.404.522 1.116.126 1.59l-5.938 7.111v9.147c0 .624-.496 1.129-1.108 1.129a1.118 1.118 0 01-1.108-1.129v-9.477l.003-.088.01-.087c.015-.232.102-.462.261-.654l6.192-7.413zM2.906 2.256a1.094 1.094 0 011.559.157l4.387 5.45a1.142 1.142 0 01-.155 1.587 1.094 1.094 0 01-1.559-.157l-4.387-5.45a1.144 1.144 0 01.06-1.498l.095-.09z"></path><ellipse cx="20.146" cy="10.692" rx="1.354" ry="1.379"></ellipse>',c:0},codex:{v:"-0.04 -0.04 24.08 24.08",m:'<path clip-rule="evenodd" d="M8.086.457a6.105 6.105 0 013.046-.415c1.333.153 2.521.72 3.564 1.7a.117.117 0 00.107.029c1.408-.346 2.762-.224 4.061.366l.063.03.154.076c1.357.703 2.33 1.77 2.918 3.198.278.679.418 1.388.421 2.126a5.655 5.655 0 01-.18 1.631.167.167 0 00.04.155 5.982 5.982 0 011.578 2.891c.385 1.901-.01 3.615-1.183 5.14l-.182.22a6.063 6.063 0 01-2.934 1.851.162.162 0 00-.108.102c-.255.736-.511 1.364-.987 1.992-1.199 1.582-2.962 2.462-4.948 2.451-1.583-.008-2.986-.587-4.21-1.736a.145.145 0 00-.14-.032c-.518.167-1.04.191-1.604.185a5.924 5.924 0 01-2.595-.622 6.058 6.058 0 01-2.146-1.781c-.203-.269-.404-.522-.551-.821a7.74 7.74 0 01-.495-1.283 6.11 6.11 0 01-.017-3.064.166.166 0 00.008-.074.115.115 0 00-.037-.064 5.958 5.958 0 01-1.38-2.202 5.196 5.196 0 01-.333-1.589 6.915 6.915 0 01.188-2.132c.45-1.484 1.309-2.648 2.577-3.493.282-.188.55-.334.802-.438.286-.12.573-.22.861-.304a.129.129 0 00.087-.087A6.016 6.016 0 015.635 2.31C6.315 1.464 7.132.846 8.086.457zm-.804 7.85a.848.848 0 00-1.473.842l1.694 2.965-1.688 2.848a.849.849 0 001.46.864l1.94-3.272a.849.849 0 00.007-.854l-1.94-3.393zm5.446 6.24a.849.849 0 000 1.695h4.848a.849.849 0 000-1.696h-4.848z"></path>',c:0},grok:{v:"0.03 0.065 23.94 23.94",m:'<path d="M9.27 15.29l7.978-5.897c.391-.29.95-.177 1.137.272.98 2.369.542 5.215-1.41 7.169-1.951 1.954-4.667 2.382-7.149 1.406l-2.711 1.257c3.889 2.661 8.611 2.003 11.562-.953 2.341-2.344 3.066-5.539 2.388-8.42l.006.007c-.983-4.232.242-5.924 2.75-9.383.06-.082.12-.164.179-.248l-3.301 3.305v-.01L9.267 15.292M7.623 16.723c-2.792-2.67-2.31-6.801.071-9.184 1.761-1.763 4.647-2.483 7.166-1.425l2.705-1.25a7.808 7.808 0 00-1.829-1A8.975 8.975 0 005.984 5.83c-2.533 2.536-3.33 6.436-1.962 9.764 1.022 2.487-.653 4.246-2.34 6.022-.599.63-1.199 1.259-1.682 1.925l7.62-6.815"></path>',c:0}},o={openai:"openai","openai-codex":"openai",anthropic:"anthropic",google:"gemini","google-vertex":"vertexai",xai:"xai",mistral:"mistral",deepseek:"deepseek",moonshotai:"moonshot","moonshotai-cn":"moonshot","kimi-coding":"kimi",minimax:"minimax","minimax-cn":"minimax",zai:"zhipu","zai-coding-cn":"zhipu",xiaomi:"xiaomi","xiaomi-token-plan-ams":"xiaomi","xiaomi-token-plan-cn":"xiaomi","xiaomi-token-plan-sgp":"xiaomi",nvidia:"nvidia",huggingface:"huggingface","qwen-token-plan":"qwen","qwen-token-plan-cn":"qwen","qwen-token-plan-individual":"qwen",openrouter:"openrouter","vercel-ai-gateway":"vercel","cloudflare-ai-gateway":"cloudflare","cloudflare-workers-ai":"cloudflare","amazon-bedrock":"bedrock","azure-openai-responses":"azure",together:"together",fireworks:"fireworks",baseten:"baseten",cerebras:"cerebras",groq:"groq","github-copilot":"github",opencode:"opencode","opencode-go":"opencode","command-goat":"commandcode",commandcode:"commandcode","command-code":"commandcode",cliproxy:"cliproxy",ollama:"ollama",vllm:"vllm",lmstudio:"lmstudio",perplexity:"perplexity",cohere:"cohere",ai21:"ai21",voyage:"voyage",deepinfra:"deepinfra",sambanova:"sambanova",novita:"novita",hyperbolic:"hyperbolic",targon:"targon",parasail:"parasail",lambda:"lambda",fal:"fal",replicate:"replicate",midjourney:"midjourney",stability:"stability",suno:"suno",elevenlabs:"elevenlabs",fishaudio:"fishaudio",assemblyai:"assemblyai",siliconcloud:"siliconcloud",volcengine:"volcengine",doubao:"doubao",hunyuan:"hunyuan",yuanbao:"yuanbao",stepfun:"stepfun",sensenova:"sensenova",baichuan:"baichuan",yi:"yi",codex:"codex",grok:"grok",gemini:"gemini"},l=[["openrouter","openrouter"],["opencode-go","opencode"],["opencode","opencode"],["openai-codex","openai"],["openai","openai"],["azure","azure"],["bedrock","bedrock"],["anthropic","anthropic"],["claude","anthropic"],["gemini","gemini"],["google","gemini"],["vertex","vertexai"],["deepseek","deepseek"],["moonshot","moonshot"],["kimi","kimi"],["minimax","minimax"],["zhipu","zhipu"],["zai","zhipu"],["glm","zhipu"],["xiaomi","xiaomi"],["mimo","xiaomi"],["qwen","qwen"],["nvidia","nvidia"],["huggingface","huggingface"],["vercel","vercel"],["cloudflare","cloudflare"],["together","together"],["fireworks","fireworks"],["baseten","baseten"],["cerebras","cerebras"],["groq","groq"],["github","github"],["copilot","github"],["perplexity","perplexity"],["cohere","cohere"],["ollama","ollama"],["vllm","vllm"],["lmstudio","lmstudio"],["siliconcloud","siliconcloud"],["siliconflow","siliconcloud"],["volcengine","volcengine"],["doubao","doubao"],["hunyuan","hunyuan"],["yuanbao","yuanbao"],["stepfun","stepfun"],["sensenova","sensenova"],["baichuan","baichuan"],["xai","xai"],["grok","grok"],["mistral","mistral"]],d="data-dshsvc-model-icon",c="data-dshsvc-model-icon-seat",u="--dshsvc-model-icon",p="--dshsvc-model-icon-size",m=(e,t)=>{const a=`<svg xmlns="http://www.w3.org/2000/svg" viewBox="${e.v||"0 0 24 24"}"${t?' fill="#000" color="#000"':""}>${e.m}</svg>`;return`url("data:image/svg+xml,${encodeURIComponent(a)}")`},g={snapshot:{providers:[],serverTime:0},listeners:new Set,subscribe(e){return this.listeners.add(e),()=>this.listeners.delete(e)},getSnapshot(){return this.snapshot},publish(e){this.snapshot=e;for(const e of[...this.listeners])try{e()}catch(e){}}},h={"opencode-go":"opencode","zai-coding-cn":"zhipu",openrouter:"openrouter",kimi:"kimi",siliconflow:"siliconcloud",deepseek:"deepseek",cliproxy:"cliproxy","xiaomi-token-plan-cn":"xiaomi",stepfun:"stepfun","stepfun-step-plan":"stepfun","command-goat":"commandcode"},v=e=>{if("string"!=typeof e||""===e)return null;const t=e.trim().toLowerCase();try{if("object"!=typeof g||null===g||"function"!=typeof g.getSnapshot)return null;const e=g.getSnapshot(),a=(Array.isArray(e?.providers)?e.providers:[]).find(e=>("string"==typeof e?.provider?e.provider.trim().toLowerCase():"")===t&&!0===e.adapted&&(void 0===e.kindSource||"config"===e.kindSource));return void 0!==a&&"string"==typeof a.kind?a.kind:null}catch(e){return null}},f=(e,t={})=>{if("string"!=typeof e||""===e)return null;const a=e.trim().toLowerCase();if(""===a)return null;const r=!0===t.forComposer,n="string"==typeof t.quotaKind?t.quotaKind:null===t.quotaKind?null:v(a),s="cliproxy"===n,d=e=>"cliproxy"===e&&r&&!s,c=o[a];if(void 0!==c&&void 0!==i[c])return d(c)?null:{slug:c,spec:i[c]};for(const[e,t]of l)if((a===e||a.startsWith(e+"-")||a.startsWith(e+"_")||a.startsWith(e+"."))&&!d(t)&&void 0!==i[t])return{slug:t,spec:i[t]};if(void 0!==i[a])return d(a)?null:{slug:a,spec:i[a]};for(const e of a.split(/[-_.]/))if(""!==e&&void 0!==i[e]){if(d(e))continue;return{slug:e,spec:i[e]}}const u=null===n?void 0:h[n];return void 0!==u&&void 0!==i[u]?d(u)?null:{slug:u,spec:i[u]}:null},b=`\n/* 宽态:模型名前加厂家图标(::before 是触发钮 flex 行的首个子项)。\n 官方 triggerIcon 在宽态本就 display:none,故宽态不会与官方图标重复。 */\n/* 必须限定 button:[class*="_7KE1Ra_trigger"] 是子串匹配,会同时命中\n _7KE1Ra_triggerLabel / _7KE1Ra_triggerEffort —— 首版真机就是这样在模型名和\n 推理等级上各多画了一枚图标(三枚并排)。限定标签既修命中面,又把特异性\n 提到 (0,3,2),顺带稳赢 mobile.css 的 (0,2,1)。 */\nhtml [${c}][${d}] button[class*="_7KE1Ra_trigger"]::before {\n content: '' !important;\n flex: none !important;\n display: block !important;\n /* 尺寸对齐额度圆环:圆环可见外径 13px(14px 的 SVG 盒,外圈 r=5.5 + 2 描边)。\n 图标是实心块面、圆环是细描边环,同直径下实心更重,故基准取略小的 15px 让\n 「视觉重量」相当(真机像素量测校准,见 scripts/measure-icon-ink.mjs)。\n 能定一个统一数字的前提是生成期已把每个图标的 viewBox 收紧到真实绘制范围——\n 否则各品牌留白不同,同一个数字画出来大小参差(⌘ 曾经只占 55%)。\n 变量留给「形状填充率」这一层:满框形状(如 ⌘)即使外接尺寸相同也更显大,\n 由数据里的光学系数 o 单独修正,见生成器 OPTICAL_SCALE。 */\n width: var(${p}, 15px) !important;\n height: var(${p}, 15px) !important;\n background-color: currentColor !important;\n -webkit-mask: var(${u}) center/contain no-repeat !important;\n mask: var(${u}) center/contain no-repeat !important;\n}\n/* 彩色档:原样上品牌色(去掉 mask,改用 background-image)。\n 选择器必须同样带上 [${d}] 保持特异性 (0,3,2) 与上方单色规则平齐,\n 以保证 !important 级联下后定义的 mask:none / transparent 胜出。 */\nhtml [${c}="color"][${d}] button[class*="_7KE1Ra_trigger"]::before {\n background-color: transparent !important;\n -webkit-mask: none !important;\n mask: none !important;\n background-image: var(${u}) !important;\n background-position: center !important;\n background-size: contain !important;\n background-repeat: no-repeat !important;\n}\n/* 窄态「替换」:我方图标已表达厂家,官方那枚通用 IconDataOutline16 必须让位,\n 否则两枚图标并排。两条门覆盖两种进入图标态的方式:\n ① ≤480px —— 本插件移动端显式把模型钮收成图标的那一档;\n ② 官方自己的容器查询 —— 容器 ≤360px 时官方本就切到图标态。\n 两态都只在「已适配」时才有官方图标要藏:属性是 JS 按 provider 命中后才挂的,\n 未命中渠道官方图标完全照旧。\n **选择器必须同时带两个自有属性**(而不是只带 seat 属性):mobile.css 里那条\n 「移动端作用域属性 + triggerIcon → display:block!important」与本规则同为\n !important、特异性也同为 (0,2,1),而 mobile.css 在样式表顺序上排在后面——\n 平局由顺序裁决,官方图标就会赢回来(真机实测:窄态出现两枚图标)。\n 多带一个自身属性把特异性提到 (0,3,1),即与插入顺序解耦,不依赖谁先挂。\n 刻意不引用移动端作用域属性:本规则与移动端适配开关无关(关掉移动端适配、\n 窄窗口下官方同样会收成图标),也避免与移动端引擎的挂载断言互相牵连。 */\n@media (max-width: 480px) {\n html [${c}][${d}] [class*="_7KE1Ra_triggerIcon"] { display: none !important; }\n}\n@container (width<=360px) {\n html [${c}][${d}] [class*="_7KE1Ra_triggerIcon"] { display: none !important; }\n}\n`,y=(e,t,a)=>{try{null!=e&&"function"==typeof e.setAttribute&&e.setAttribute(t,a)}catch(e){}},x=(e,t)=>{try{null!=e&&"function"==typeof e.removeAttribute&&e.removeAttribute(t)}catch(e){}},k=(e,t,a)=>{try{null!=e&&e.style&&"function"==typeof e.style.setProperty&&e.style.setProperty(t,a)}catch(e){}},w=(e,t)=>{try{null!=e&&e.style&&"function"==typeof e.style.removeProperty&&e.style.removeProperty(t)}catch(e){}},E="@gehennawu/dsh-service/editor",S=["md","markdown","mdx","txt","text","log","ini","toml","conf","cfg","env","json","jsonc","json5","yml","yaml","xml","csv","tsv","diff","patch","ts","mts","cts","js","mjs","cjs","jsx","tsx","vue","svelte","astro","css","scss","sass","less","html","htm","sh","bash","zsh","fish","ps1","bat","cmd","py","pyi","rb","go","rs","java","kt","kts","c","h","cc","cpp","cxx","hpp","hh","cs","php","sql","swift","lua","pl","pm","r","dart","scala","clj","ex","exs","erl","hs","ml","nim","zig","vim","el","emacs","lisp","scm","gradle","properties","dockerfile","makefile","gitignore","gitattributes","gitconfig","editorconfig","npmrc","nvmrc","eslintignore","prettierignore"],q="data-dshsvc-editor-entry",C="data-dshsvc-editor-menu-item",z="[data-document-viewer-menu]",A=()=>{try{return"undefined"==typeof document||null===document?null:document}catch(e){return null}},T=(e,t)=>{try{return Array.from(e.querySelectorAll(t))}catch(e){return[]}},M=e=>String(e?.textContent??"").trim(),I=e=>({borderRadius:e,cornerShape:"round"}),O=e=>{let t="";try{const a=e.search(/[?#]/),r=(-1===a?e:e.slice(0,a)).slice(e.lastIndexOf("/")+1);t=decodeURIComponent(r)}catch(e){return!1}const a=t.toLowerCase();return S.some(e=>a.endsWith("."+e)||a===e)},H=e=>{if(null==e)return null;try{if("function"==typeof e.closest){const t=e.closest("[data-document-preview]");if(null!=t){const e=t.querySelector(z);if(null!=e)return e}}}catch(e){}try{let t="function"==typeof e.closest?e.parentElement:e.parentNode;const a=A();for(;null!=t&&t!==a&&"function"==typeof t.querySelector;){const e=t.querySelector(z);if(null!=e)return e;t=t.parentNode}}catch(e){}return null},R=new Set;let D={isAlive:()=>!1,dispose:()=>{}};const N=(e,t,a={})=>{const r=a?.menu;if(null===e||null==r)return!1;const n="function"==typeof a?.isAlive?a.isAlive:()=>!0;if(!n())return!1;const s=()=>T(e,'[role="menuitem"], [role="option"]').find(e=>!((e,t)=>{try{return"function"==typeof e?.getAttribute&&null!==e.getAttribute(t)}catch(e){return!1}})(e,C)&&t(M(e))),i=e=>{try{e.click()}catch(e){return!1}return!0};let o=0;try{o=T(e,z).length}catch(e){o=0}if(o<=1){const e=s();if(void 0!==e)return i(e)}try{r.click()}catch(e){return!1}if(!n())return!1;const l=s();if(void 0!==l)return i(l);let d=12;const c=()=>{d<=0||!n()||(d-=1,"function"==typeof setTimeout&&setTimeout(()=>{if(n()){try{const e=s();if(void 0!==e)return void i(e)}catch(e){}c()}},60))};return c(),!1},L={"nav.label":"服务控制","nav.restart":"重启","features.cardTitle":"服务控制(dsh-service)","features.cardHint":"控制可选功能和外部能力。开关立即生效,无需重启。","features.external":"外部能力","features.healthDiagnostics":"健康诊断","features.modelUsage":"模型统计","features.quotaLookup":"额度查询","features.backupMaintenance":"备份维护","features.taskNotifications":"任务通知","features.healthz":"/healthz 探活端点","features.skillManager":"技能管理","features.readOnly":"当前设置不可写。","tabs.skills":"技能","tabs.subagent":"子代理","tabs.sessions":"会话管理","features.subagentRoute":"子代理模型","features.mobileAdaptation":"移动端适配","features.sessionManager":"会话管理","sessions.title":"会话管理","sessions.filter.all":"全部","sessions.filter.archived":"仅归档","sessions.filter.deleted":"已删除","sessions.filter.subagent":"仅子代理","sessions.refresh":"刷新","sessions.batch.enter":"批量选择","sessions.batch.exit":"退出批量","sessions.batch.selectAll":"全选","sessions.batch.clearAll":"取消全选","sessions.batch.selectSubagents":"选中子代理","sessions.batch.selected":"已选择 {count} 项","sessions.batch.selectRow":"选择会话:{title}","sessions.batch.export":"导出 ({count})","sessions.batch.archive":"归档 ({count})","sessions.batch.unarchive":"恢复 ({count})","sessions.batch.delete":"删除 ({count})","sessions.batch.clear":"清除 ({count})","sessions.batch.completed":"已完成{action}:{count} 项","sessions.batch.failed":"{action}完成 {done}/{total} 项;{error}","sessions.batch.deleteTitle":"删除 {count} 个会话","sessions.batch.deleteBody":"将永久删除以下已归档会话的日志文件,删除后不可恢复。","sessions.batch.deleteItem":"{title}({bytes})","sessions.batch.clearTitle":"清除 {count} 条已删除记录","sessions.batch.clearBody":"确定要清除以下 {count} 条已删除记录吗?清除后将从记录列表中永久移除。","sessions.status.loading":"加载中…","sessions.status.working":"处理中…","sessions.status.unavailableTime":"时间未知","sessions.glyph.expand":"▸","sessions.glyph.collapse":"▾","sessions.glyph.back":"←","sessions.search.placeholder":"搜索对话内容…","sessions.search.archivedOnly":"仅搜归档","sessions.sort.createdDesc":"创建时间倒序","sessions.sort.createdAsc":"创建时间正序","sessions.sort.title":"按标题","sessions.sort.project":"按项目","sessions.projectGroup.countOne":"1 个会话","sessions.projectGroup.countMany":"{count} 个会话","sessions.projectGroup.noCwd":"(无工作区)","sessions.row.live":"运行中","sessions.row.archived":"已归档","sessions.row.deleted":"已删除","sessions.row.subagent":"子代理","sessions.subagent.hostLegacy":"当前插件宿主较旧,列表未携带子代理标志;升级插件并重启 dsh 后「仅子代理」才会生效","sessions.row.events":"{count} 条事件","sessions.row.noTitle":"(无标题)","sessions.action.view":"查看","sessions.action.export":"导出","sessions.action.archive":"归档","sessions.action.unarchive":"恢复","sessions.action.delete":"删除","sessions.action.clear":"清除","sessions.empty.all":"没有会话","sessions.empty.archived":"没有归档会话","sessions.empty.deleted":"暂无删除记录","sessions.empty.search":"没有命中「{query}」","sessions.error.load":"加载失败:{error}","sessions.error.feature-disabled":"会话管理功能已在设置中关闭","sessions.error.network":"网络错误:无法连接宿主","sessions.error.session-not-found":"会话不存在或已被删除","sessions.error.live-session-rejected":"会话正在运行,无法删除","sessions.error.session-not-archived":"仅已归档会话可以删除","sessions.error.unknown-delete-plan":"删除请求已失效,请重新发起","sessions.error.invalid-session-ids":"无效的会话标识","sessions.error.unarchive-unsupported":"当前宿主不支持恢复归档(需要 DSH ≥ 0.1.6)","sessions.error.export-failed":"导出失败:{error}","sessions.detail.back":"返回列表","sessions.detail.open":"在官方会话中打开","sessions.detail.archiveDisabled":"归档会话/空白会话无法在官方界面打开","sessions.detail.exportAll":"导出全部 ZIP","sessions.detail.exporting":"正在导出…","sessions.detail.loadMore":"加载更多({remaining})","sessions.detail.noMore":"已加载全部 {total} 条事件","sessions.detail.noise":"系统事件","sessions.detail.noiseBlock":"{count} 条系统事件","sessions.detail.noiseExpand":"展开全部","sessions.detail.noiseCollapse":"收起","sessions.detail.toolBlock":"{count} 条工具消息","sessions.detail.toolCollapse":"收起","sessions.detail.cwd":"{cwd}","sessions.detail.created":"创建于 {time}","sessions.md.copy":"复制","sessions.md.copied":"已复制","sessions.md.footnotes":"脚注","sessions.hit.title":"命中 {count} 条","sessions.hit.return":"返回搜索结果","sessions.hit.badge":"命中","sessions.hit.prev":"◀ 上一个","sessions.hit.next":"下一个 ▶","sessions.hit.inSession":"本会话 {count} 处命中","sessions.delete.title":"删除会话","sessions.delete.body":"将永久删除以下会话的日志文件,删除后不可恢复。","sessions.delete.consequence.log":"删除会话日志({bytes})","sessions.delete.consequence.sidebar":"会话从官方侧栏隐藏","sessions.delete.confirm":"确认删除","sessions.delete.cancel":"取消","sessions.delete.done":"已删除","sessions.clear.title":"清除已删除记录","sessions.clear.body":"确定要清除该条已删除记录吗?清除后将从记录列表中永久移除。","sessions.clear.confirm":"确认清除","sessions.clear.cancel":"取消","sessions.export.includes":"含子代理与附件","sessions.navToggle":"设置页左列显示「会话管理」入口","sessions.oneWay":"归档不可恢复","sessions.oneWayHint":"归档后会话从官方侧栏隐藏;官方不支持恢复归档,只能通过本面板删除。","mobile.fab.label":"打开侧栏菜单","mobile.debug.title":"移动端诊断","mobile.debug.viewport":"视口","mobile.debug.drawer":"抽屉","mobile.debug.sidebarPanel":"右栏","mobile.debug.details":"预览列","mobile.debug.rightbar":"右栏","mobile.debug.errors":"JS 错误","mobile.debug.stateOn":"开","mobile.debug.stateOff":"关","mobile.debug.immersive":"沉浸","mobile.debug.immersive.reason.gesture":"滑动回显","mobile.debug.immersive.reason.arrival":"到底回显","mobile.debug.immersive.reason.focus":"聚焦回显","mobile.debug.immersive.reason.button":"回底钮回显","mobile.debug.edge":"边缘","mobile.debug.edge.fieldStart":"起","mobile.debug.edge.fieldMoves":"动","mobile.debug.edge.fieldLast":"末","mobile.debug.edge.fieldCancel":"消","mobile.debug.edge.fieldReason":"因","mobile.debug.edge.open":"开","mobile.debug.edge.leftOpen":"左开","mobile.debug.edge.rightOpen":"右开","mobile.debug.edge.leftClose":"左关","mobile.debug.edge.rightClose":"右关","mobile.debug.edge.reason.multiTouch":"多指","mobile.debug.edge.reason.modal":"模态","mobile.debug.edge.reason.hScroll":"横滚","mobile.debug.edge.reason.noPoint":"无触点","mobile.debug.edge.reason.absentRight":"右栏缺席","mobile.debug.edge.reason.badButton":"右栏钮不可用","mobile.debug.edge.reason.noTracker":"无追踪","conversation.jump.previousReply":"上一条用户回复","subagent.title":"子代理模型","subagent.loading":"读取配置…","subagent.hint":"控制未显式指定模型的子代理所用模型;显式指定的不受影响。切换模式不会清除已保存的自定义模型与回退列表,切回「自定义」即恢复。","subagent.mode.label":"模式","subagent.mode.inherit":"初始(不干预)","subagent.mode.inherit.desc":"不注入任何路由,保持宿主原生继承行为:子代理使用会话创建时烘焙的默认模型。","subagent.mode.follow":"跟随主模型","subagent.mode.follow.desc":"每次派生时读取主对话当前实际使用的模型(最近一次请求的渠道)并注入。","subagent.mode.custom":"自定义","subagent.mode.custom.desc":"所有未显式指定模型的子代理固定使用下方选择的模型。","subagent.provider":"供应商","subagent.model":"模型","subagent.reasoningEffort":"思考等级","subagent.reasoningEffort.default":"使用模型默认(不指定)","subagent.reasoningEffort.unavailable":"该模型未声明可选思考等级","subagent.modelsEmpty":"模型清单为空:无法解析宿主 LLM 渠道。","subagent.save":"保存","subagent.saved":"已保存","subagent.reset":"重置回初始配置","subagent.saving":"保存中…","subagent.unavailable":"宿主未提供子代理注册表(subagents 服务缺席),配置不会生效。","subagent.error":"操作失败:{error}","subagent.error.feature-disabled":"子代理模型功能已在设置中关闭","subagent.error.llm-unavailable":"宿主 LLM 服务不可用","subagent.error.unknown-mode":"未知模式","subagent.error.invalid-model-route":"供应商或模型不在宿主清单内","subagent.error.invalid-reasoning-effort":"思考等级不受该模型支持,请重新选择","subagent.error.network":"网络错误:无法连接宿主","subagent.fallback.title":"回退模型(按顺序)","subagent.fallback.item":"回退 {index}","subagent.fallback.hint":"第一路由不可用时(渠道已卸载、额度查询判定不可服务)依次尝试回退;全部不可用则回落原生继承,不让派生失败。","subagent.fallback.add":"添加回退","subagent.fallback.sort":"调整排序","subagent.fallback.sort.done":"完成排序","subagent.fallback.remove":"移除","subagent.fallback.up":"上移","subagent.fallback.down":"下移","subagent.fallback.empty":"未添加回退:第一路由不可用时子代理回落到原生继承。","subagent.fallback.limit":"已达上限({max} 个)","subagent.error.invalid-fallback-route":"回退条目不在宿主清单内,请重新选择","subagent.dock.label":"子代理:","subagent.dock.title":"输入框下方显示子代理信息","skills.error":"操作失败:{error}","skills.error.feature-disabled":"技能管理功能已在设置中关闭","skills.error.network":"网络错误,请稍后重试","skills.error.read-only-source":"该条目位于只读来源,无法修改","skills.error.unknown-skill":"技能未找到,列表可能已变化,请刷新重试","skills.error.invalid-skill":"条目当前无效:{reason}","skills.error.invalid-field":"开关字段无效","skills.error.invalid-enable":"开关值无效","skills.error.invalid-model-route":"模型路由无效,请重新选择模型","skills.error.invalid-description":"描述不能为空","skills.error.describe-timeout":"模型生成超时(90 秒)","skills.error.empty-output":"模型未产出正文(结束原因:{kind})","skills.error.batch-cancelled":"已取消","skills.error.entry-changed":"条目在运行中发生变化,已跳过","skills.error.unknown-batch-plan":"批量计划已失效,请重新生成","skills.error.batch-already-done":"该批量计划已完成","skills.error.batch-already-cancelled":"该批量计划已取消","skills.error.annotated-confirm-required":"已注释技能需再次确认后才能被覆盖","skills.empty":"未发现任何技能","skills.filter":"按名称过滤…","skills.expandAll":"全部展开","skills.collapseAll":"全部折叠","skills.colon":":","skills.group.auto":"自动加载","skills.group.manual":"仅手动调用","skills.group.disabled":"完全停用","skills.source.project-dsh":"项目 .dsh","skills.source.project-agents":"项目 .agents","skills.source.user-dsh":"用户 DSH","skills.source.user-agents":"用户 .agents","skills.source.bundled":"内置","skills.source.custom":"自定义目录","skills.badge.shadowed":"被同名遮蔽","skills.badge.readonly":"只读","skills.badge.annotated":"已注释","skills.note.stale":"正文已变更,待重新补全","skills.note.remove":"移除 AI 注释","skills.note.panelOnly":"注释仅保存在本面板展示,不写入 SKILL.md。","skills.log.title":"运行日志","skills.log.located":"已定位技能 {name}(文件 {chars} 字符)","skills.log.attempt":"第 {n}/{total} 次生成:调用 {route}","skills.log.received":"输出接收完成({chars} 字符),解析 JSON…","skills.log.parsed":"解析成功,草稿就绪","skills.log.failed-retry":"失败:{message},自动重试","skills.log.failed":"失败:{message}","skills.log.wait":"等待模型输出… {secs}s","skills.log.first-delta":"模型已开始返回","skills.log.first-reasoning":"模型已开始返回(先输出推理)","skills.log.progress":"已接收 {chars} 字符","skills.log.finish-reasoning-only":"模型结束:{kind}(仅推理 {chars} 字符,未产出正文)","skills.log.finish-empty":"模型结束:{kind}(无任何输出)","skills.log.block-extract":"从整块输出提取正文({chars} 字符)","skills.log.item-start":"开始生成注释…","skills.batch.toggle":"批量注释","skills.batch.collapse":"收起","skills.batch.already":"已有批量任务在进行中,请等待完成或先取消","skills.invalid.legacy":"存在旧版调用键,已从模型目录剔除","skills.invalid.other":"无效条目:{reason}","skills.fix.legacy":"一键修复旧键","skills.switch.model":"对模型可见","skills.switch.user":"可被 / 调用","skills.switch.confirm":"再次点击生效","skills.describe.button":"AI 补全说明","skills.describe.title":"AI 补全说明 — {name}","skills.describe.model":"模型","skills.describe.models.loading":"获取模型列表…","skills.describe.models.empty":"未发现已配置模型","skills.describe.run":"生成草稿","skills.describe.running":"生成中…","skills.apply.title":"保存 AI 注释 — {name}","skills.apply.description":"描述","skills.apply.usage":"用法","skills.apply.old":"旧","skills.apply.new":"新","skills.apply.confirm":"保存注释","skills.apply.done":"注释已保存","skills.apply.keepusage":"(保留现有)","skills.llm.unavailable":"宿主 LLM 服务不可用,无法 AI 补全。","skills.batch.title":"批量补全技能说明","skills.batch.hint":"逐条调用所选模型为未注释或正文有变的技能生成说明;已注释技能在计划中单列,再次确认后才会被覆盖。结果仅存插件内并展示在条目下方。","skills.batch.plan":"生成计划","skills.batch.candidates":"候选 {count} 项","skills.batch.estBytes":"约发送 {size} 内容","skills.batch.skipped":"跳过 {count} 项(无效 / 被遮蔽)","skills.batch.annotated":"已注释将覆盖 {count} 项","skills.batch.annotatedList":"将覆盖清单","skills.batch.forceConfirm":"确认强制补全(覆盖 {count} 项已注释)","skills.skippedList":"跳过清单","skills.skip.shadowed":"被遮蔽","skills.skip.invalid":"无效({reason})","skills.skip.reason.missing-frontmatter":"缺 frontmatter","skills.skip.reason.missing-name":"缺 name","skills.skip.reason.invalid-name":"name 不合法","skills.skip.reason.missing-description":"缺 description","skills.skip.reason.too-large":"文件过大","skills.skip.reason.legacy-invocation-key":"旧版调用键","skills.batch.start":"开始批量补全","skills.batch.progress":"进度 {done}/{total}","skills.batch.current":"当前:{name}","skills.batch.cancel":"取消","skills.batch.phase.idle":"空闲","skills.batch.phase.planned":"待开始(核对候选后点击「开始批量补全」)","skills.batch.phase.running":"进行中","skills.batch.phase.done":"已完成","skills.batch.phase.cancelled":"已取消","skills.batch.failures":"失败 {count} 项","skills.batch.no-candidates":"没有需要补全的候选","skills.batch.model":"模型","overlay.label":"服务重启状态","recovery.waiting.title":"服务重启中…","recovery.waiting.body":"正在等待新的 DSH Web 进程启动,已等待 {seconds} 秒。","recovery.timeout.title":"服务尚未恢复","recovery.timeout.body":"已等待 60 秒。请确认外部进程管理器已正确配置,或手动刷新页面重试。","recovery.manual":"手动刷新","health.title":"运行状况","health.uptime":"运行时间","health.rss":"内存 RSS","health.platform":"平台","health.nodeVersion":"Node 版本","health.liveSessions":"存活会话","health.persistedSessions":"持久化会话","health.activeAgents":"活跃 Agent","health.activeJobs":"后台任务","health.uptimeValue":"{hours} 小时 {minutes} 分钟","health.error":"无法读取运行状况","health.check":"立即健康检查","health.checking":"检查中…","health.overall.ok":"正常","health.overall.warning":"警告","health.overall.error":"错误","health.alert.title":"健康提醒","health.alert.diagnostics":"检查结果存在{status},请查看下方异常项。","health.status.ok":"正常","health.status.warning":"警告","health.status.error":"错误","health.status.info":"信息","health.check.session-storage":"会话存储","health.check.workspace-registry":"工作区注册表","health.check.dsh-home":"DSH_HOME","health.check.backup-storage":"备份存储","health.check.tar":"tar","health.check.permissions":"文件权限","health.check.runtime-env":"运行环境","health.check.node-version":"Node 运行时","health.detail.runtime-env.managed":"由{kind}管理,重启后会自动拉起","health.detail.runtime-env.declared":"已通过 DSH_SERVICE_RUNTIME_ENV 声明由外部进程管理器管理","health.detail.runtime-env.manual":"疑似终端手动启动,重启后不会自动拉起;一键升级已改为不自动退出","health.detail.runtime-env.unknown":"未检测到进程管理器,无法确认重启后是否自动拉起;如实际有,可设置 DSH_SERVICE_RUNTIME_ENV=managed 声明","health.detail.node-version.ok":"{version},满足 ≥{required} 要求","health.detail.node-version.warning":"{version} 低于插件要求的 {required}.x,建议升级 Node","health.detail.session-storage.ok":"可用,共 {count} 个会话快照","health.detail.workspace-registry.ok":"可用,共 {count} 个工作区","health.detail.dsh-home.ok":"目录可访问,权限模式 {mode}","health.detail.backup-storage.empty":"备份目录可用,当前暂无备份","health.detail.backup-storage.ok":"备份目录可用,共 {count} 个备份,占用 {size}","health.detail.tar.ok":"tar 可执行文件可用","health.detail.permissions.ok":"文件权限检查正常,未发现异常","health.detail.permissions.warning":"发现 {count} 个文件或目录权限异常","health.detail.generic":"{status}","health.check.usage-index":"使用统计索引","health.detail.usage-index.never":"尚未建立统计索引,打开模型统计页后开始只读建立","health.detail.usage-index.unavailable":"统计索引暂不可读","health.detail.usage-index.ok":"已索引 {indexed} 个会话,更新于 {updated}","health.detail.usage-index.warning":"{failed} 个会话未能索引(统计少算),已索引 {indexed} 个,更新于 {updated}","health.check.notification-permission":"通知权限","health.detail.notification-permission.granted":"浏览器已授权系统通知","health.detail.notification-permission.default":"浏览器尚未授权系统通知,可在「配置 → 通知」中启用","health.detail.notification-permission.denied":"浏览器已拒绝系统通知,需在浏览器站点设置里恢复","health.detail.notification-permission.unsupported":"当前浏览器不支持系统通知","health.check.plugins":"插件","health.detail.plugins.unavailable":"插件体检不可用(宿主未暴露 Loader)","health.detail.plugins.ok":"共 {total} 个插件,状态正常","plugin.issue.failed":"{failed} 个插件失败","plugin.issue.pending":"{pending} 个插件未就绪","plugin.issue.info":"{count} 个插件状态需确认","plugin.state.pending":"等待依赖","plugin.state.loading":"加载中","plugin.state.failed":"失败","plugin.state.disposed":"已释放","plugin.state.unknown":"未知状态","plugin.state.unloading":"卸载中","plugin.missingDeps":"依赖缺失:{deps}","plugin.error":"错误:{error}","plugin.restart":"重新加载","plugin.restarting":"重新加载中…","plugin.restartConfirm":"确认重新加载","plugin.restartHint":"重新加载「{name}」,其启动逻辑将重新执行,失败状态会随之刷新。","plugin.restartCancel":"取消","plugin.restartFailed":"重新加载失败:{detail}","plugin.error.unknown-plugin":"未找到该插件","plugin.error.loader-unavailable":"宿主 Loader 不可用","plugin.error.plugin-disabled":"插件已停用,无法重新加载","plugin.error.not-failed":"该插件未处于失败状态","plugin.error.restart-failed":"重新加载后仍然失败","health.check.plugin-compat":"插件兼容性","health.detail.plugin-compat.unavailable":"插件兼容性检查不可用(宿主未暴露 Loader)","health.detail.plugin-compat.ok":"已扫描 {total} 个插件,未发现对已变更接口的引用","plugin.compat.kind.broken":"可能不兼容","plugin.compat.kind.soft":"为兼容旧版保留","plugin.compat.kind.declared":"声明残留","plugin.compat.kind.unknown":"未能扫描","plugin.compat.issue.broken":"{count} 个插件可能不兼容","plugin.compat.issue.soft":"{count} 个插件为兼容旧版保留了退役接口","plugin.compat.issue.declared":"{count} 个插件仅声明残留(代码未引用)","plugin.compat.issue.unknown":"{count} 个插件未能扫描","plugin.compat.declared":"声明了已移除的接口但代码未引用——官方加载器对缺失供应商静默跳过,当前无害,可提示作者清理","plugin.compat.badge.active":"当前版本已生效","plugin.compat.badge.future":"当前正常(升级至 DSH ≥ {since} 后生效)","plugin.compat.category.package-removed":"依赖包已移除","plugin.compat.category.slot-retired":"槽位已退役","plugin.compat.category.method-removed":"方法已移除","plugin.compat.category.event-removed":"事件已废弃","plugin.compat.category.hash-migrated":"样式前缀漂移","plugin.compat.category.attribute-removed":"DOM属性已删除","plugin.compat.meta.since":"影响版本:DSH ≥ {since}","plugin.compat.meta.reason":"变更背景","plugin.compat.meta.impact":"潜在影响","plugin.compat.meta.advice":"适配建议","plugin.compat.reason.client-runtime":"DSH 0.1.2-alpha.2 官方 web roster 移除客户端供应商 @deepseek-ai/dsh-client-runtime","plugin.compat.impact.client-runtime":"浏览器半加载器等待缺失供应商,导致插件卡在 pending 状态无法激活","plugin.compat.advice.client-runtime":"在 package.json 的 dsh.client.inject 中移除该依赖声明","plugin.compat.reason.sqlite-persistence":"DSH 0.1.2-alpha.3 移除 SQLite 会话持久化包,官方仅交付 JSONL","plugin.compat.impact.sqlite-persistence":"引入该包会导致模块解析失败或启动异常","plugin.compat.advice.sqlite-persistence":"移除对 sqlite persistence 的依赖,改用官方 JSONL 或公共会话接口","plugin.compat.reason.code-runtime":"DSH 0.1.6-alpha.1 代码执行包更名重构,由 ptc-runtime 取代","plugin.compat.impact.code-runtime":"依赖该包的代码执行器无法加载","plugin.compat.advice.code-runtime":"更新为新版 @deepseek-ai/dsh-ptc-runtime","plugin.compat.reason.e2b-runtime":"DSH 0.1.6-alpha.1 移除内置 E2B 沙箱后端","plugin.compat.impact.e2b-runtime":"依赖该包的沙箱逻辑无法加载","plugin.compat.advice.e2b-runtime":"改用官方推荐的执行环境或外部 MCP","plugin.compat.reason.session-start-event":"DSH 0.1.6-alpha.1 统一生命周期事件派发,移除「agent/session-start」事件","plugin.compat.impact.session-start-event":"事件监听永不触发,导致时序挂钩逻辑失效","plugin.compat.advice.session-start-event":"改用 ctx.on 监听 agent/created 事件并在 payload 中读取 source","plugin.compat.reason.chat-hash":"DSH 0.1.2-alpha.2 聊天视图独立拆包,CSS Module 前缀漂移(Md3f7G_ → EvIC1a_)","plugin.compat.impact.chat-hash":"写死旧类名前缀的选择器无法命中目标 DOM","plugin.compat.advice.chat-hash":'改用词干后缀模糊匹配(如 [class*="_toBottomSlot"])',"plugin.compat.reason.stats-hash":"DSH 0.1.2-alpha.2 统计条样式前缀由 FJxK0a_ 漂移至 -NDN2W_","plugin.compat.impact.stats-hash":"写死该类名的选择器匹配失败","plugin.compat.advice.stats-hash":"改用词干匹配,或在 0.1.5+ 适配新版 StatsPills 胶囊","plugin.compat.reason.time-hover-root":"DSH 0.1.2-alpha.2 移除 data-time-hover-root 属性","plugin.compat.impact.time-hover-root":"依赖该属性定位回合时间的脚本扑空","plugin.compat.advice.time-hover-root":"改用官方稳定的 [data-turn-tail] 属性定位回合尾部","plugin.compat.reason.settings-plugin-item":"DSH 0.1.6-alpha.2 设置面板重构,移除了 settings.plugin.item 槽位","plugin.compat.impact.settings-plugin-item":"配置卡片不会在设置页渲染;插件本体运行正常","plugin.compat.advice.settings-plugin-item":"迁移至独立插件页槽位 plugins.bundle.config,或保留双版本注册","plugin.compat.reason.sessions-open-method":"DSH 0.1.6-alpha.2 引入会话生命周期管理,ISessions 移除 open 方法","plugin.compat.impact.sessions-open-method":"调用 sessions.open 方法静默无响应或抛错","plugin.compat.advice.sessions-open-method":"改用 uiWorkspace.openSession 或保留两层降级调用","plugin.compat.break.client-runtime":"声明了已移除的客户端供应商 @deepseek-ai/dsh-client-runtime(0.1.2-alpha.2 起官方 roster 移除,浏览器半可能无法挂载)","plugin.compat.break.sqlite-persistence":"依赖已移除的会话持久化后端 @deepseek-ai/dsh-session-persistence-sqlite(0.1.2-alpha.3 起官方仅交付 JSONL)","plugin.compat.break.code-runtime":"依赖已移除的代码执行后端 @deepseek-ai/dsh-code-runtime(0.1.6-alpha.1 起由 ptc-runtime 取代)","plugin.compat.break.e2b-runtime":"依赖已移除的沙箱执行器 @deepseek-ai/dsh-e2b(0.1.6-alpha.1 起官方移除内置 E2B)","plugin.compat.break.session-start-event":"监听已移除的会话生命周期事件 agent/session-start(0.1.6-alpha.1 起由 agent/created 携带 source 统一取代)","plugin.compat.break.settings-plugin-item":"为兼容老版本宿主保留了已退役的设置页槽位 settings.plugin.item(0.1.6-alpha.2 起新版宿主不再渲染该槽位,配置卡片改由插件管理页 plugins.bundle.config 承载;插件本体照常运行,仅配置入口位置变化,无需处理)","plugin.compat.break.sessions-open-method":"调用已移除的命令式会话打开方法 sessions.open(0.1.6-alpha.2 起 ISessions 移除该方法,点击无响应,官方改由 ui-workspace 的 openSession 承载)","plugin.compat.break.chat-hash":"引用已迁移的聊天界面旧样式前缀(Md3f7G_,0.1.2-alpha.2 起漂移至 EvIC1a_)","plugin.compat.break.stats-hash":"引用已迁移的统计条旧样式前缀(FJxK0a_,0.1.2-alpha.2 起漂移至 -NDN2W_)","plugin.compat.break.time-hover-root":"使用已移除的元素属性 data-time-hover-root(0.1.2-alpha.2 起由 data-turn-tail 取代)","plugin.compat.unknown.unresolved":"包清单不可解析","plugin.compat.unknown.missing-entry":"未找到可扫描的入口文件","plugin.compat.unknown.too-large":"入口文件超过扫描上限(4 MiB)","tabs.overview":"概览","tabs.notify":"通知","tabs.health":"健康诊断","tabs.usage":"模型统计","tabs.quota":"额度查询","overview.container":"进程与运行环境","overview.errors":"报错信息","overview.status.normal":"所有系统运行正常","overview.status.info":"有 {count} 条提示","overview.status.warning":"有 {count} 项需要注意","overview.status.error":"有 {count} 项需要处理","overview.backupEmpty":"还没有备份,建议创建一份","overview.updateAvailable":"检测到新版本可用","tabs.backup":"备份维护","tabs.restart":"重启","tabs.maintenance":"维护","tabs.configuration":"配置","tabs.features":"功能","tabs.notifications":"通知","tabs.navOrder":"设置栏标签","config.navOrder.title":"设置栏标签排序与显隐","config.navOrder.moveUp":"上移","config.navOrder.moveDown":"下移","config.navOrder.visible":"显示","config.navOrder.hidden":"隐藏","config.navOrder.locked":"当前面板(不可隐藏)","config.navOrder.reset":"恢复默认排序","config.navOrder.saved":"已保存","config.navOrder.save":"保存排序","config.navOrder.empty":"未检测到已注册的设置栏标签","maintenance.empty":"所有维护子页均已关闭。可在「配置 → 功能」中开启备份、技能、子代理或会话管理。","config.notificationsDisabled":"任务通知功能已在「功能」页关闭,以下设置仅作展示;重新开启后通知才会生效。","features.group.runtime":"运行与观测","features.group.maintenance":"维护","features.group.interaction":"交互","page.configuration.desc":"功能开关与任务通知设置。","tabs.alert.title":"服务控制提醒","tabs.alert.body":"以下功能需要处理:{tabs}","tabs.alert.join":"、","tabs.alert.dot":"此标签存在故障提醒","permissions.title":"文件权限","permissions.description":"检查 Agent 能否读写并进入 DSH_HOME 与工作区。深检跳过 .git;修复补充当前用户所需权限并保留执行位。","permissions.target":"目标属主:{owner}","permissions.repair":"修复权限","permissions.repairing":"修复中…","permissions.confirm":"确认修复","permissions.confirmHint":"跳过 .git,递归恢复当前用户属主并补充 Agent 读写权限,保留已有执行位。","permissions.cancel":"取消","permissions.show":"权限与修复","permissions.hide":"收起","permissions.error":"权限操作失败","permissions.summary.ok":"{count} 个根目录检查正常","permissions.summary.warning":"发现 {count} 个根目录异常","permissions.showDetails":"查看详情","permissions.hideDetails":"隐藏详情","permissions.deep":"深度检查","permissions.deepChecking":"扫描中…","permissions.deepSummary":"扫描 {scanned} 项,用时 {duration} ms;目录不可编辑 {directories},文件不可编辑 {files},无法读取 {unreadable}。","backup.title":"备份管理","backup.description":"备份会话、配置与插件 profile 清单,不含 node_modules 与凭据;不自动清理。","backup.create":"创建备份","backup.creating":"创建中…","backup.progress.copy":"正在复制会话数据({current}/{total})…","backup.progress.archive":"正在打包归档({current}/{total})…","backup.progress.validate":"正在校验归档({current}/{total})…","backup.progress.publish":"正在发布备份({current}/{total})…","backup.total":"总体积:{size}","backup.empty":"还没有备份。","backup.delete":"删除","backup.confirm":"确认删除","backup.confirmHint":"确认删除这个备份?此操作无法撤销。","backup.cancel":"取消","backup.error":"备份操作失败","backup.export":"导出","backup.exporting":"导出中…","backup.exportError":"备份导出失败","backup.restore":"恢复","backup.inspecting":"检查中…","backup.restoreConfirm":"确认恢复","backup.restoreHint":"完整性检查通过。确认后会按下方计划覆盖数据;提交前宿主会再次检查归档和当前目标是否发生变化。","backup.restoreError":"备份恢复失败","backup.integrity.ok":"完整性检查通过","backup.integrity.invalid":"归档不可恢复","backup.integrity.summary":"共 {entries} 个条目,解压后 {size};会话文件 {sessions},配置文件 {config},profile 清单 {profiles}。","backup.plan.sessions":"会话目录将整体替换","backup.plan.config":"配置覆盖 {replace} 项,移除 {remove} 项","backup.plan.profiles":"覆盖 {count} 个 profile 的 package.json,保留 node_modules 与其他文件","backup.plan.expires":"恢复计划有效至 {time}","backup.manualRestartTitle":"恢复完成,需要手动重启","backup.manualRestartBody":"数据已恢复,但当前进程仍在运行旧状态。请在运行 dsh 的终端按 Ctrl+C,然后重新启动 dsh。","backup.error.backup-gzip-invalid":"归档不是有效的 gzip 文件或已损坏。","backup.error.backup-tar-invalid":"tar 结构或校验和无效。","backup.error.backup-entry-traversal":"归档含越界或不安全路径。","backup.error.backup-entry-absolute":"归档含绝对路径。","backup.error.backup-entry-link":"归档含符号链接或硬链接。","backup.error.backup-entry-type":"归档含不支持的特殊条目。","backup.error.backup-entry-platform":"归档包含其他系统不兼容的文件名。","backup.error.backup-entry-unexpected":"归档含备份范围外的文件。","backup.error.backup-profile-invalid":"profile package.json 无效。","backup.error.backup-section-missing":"归档缺少必要分区。","backup.error.backup-size-limit":"归档超过安全大小或条目限制。","backup.error.backup-archive-invalid":"归档未通过完整性检查。","backup.error.backup-archive-incomplete":"归档内容与备份源不一致(有文件未被完整收录),未发布。","backup.error.backup-source-changed":"会话正在写入,备份未完成,请稍后重试。","backup.error.backup-source-unsafe":"备份源含符号链接或特殊文件,已拒绝创建。","backup.error.tar-failed":"归档工具执行失败,请检查 tar/gzip 是否可用。","backup.error.active-work":"检测到运行中的工作,暂不能恢复。","backup.error.restore-plan-expired":"恢复计划已过期,请重新检查。","backup.error.restore-source-changed":"备份归档在确认前发生变化,请重新检查。","backup.error.restore-target-changed":"当前数据在确认前发生变化,请重新检查。","backup.error.restore-target-unsafe":"当前目标含不安全的链接或特殊文件。","backup.import":"导入备份","backup.importing":"导入中…","backup.showRecords":"展开备份记录","backup.hideRecords":"收起备份记录","version.title":"版本信息","version.current":"DSH:","version.plugin":"dsh-service:","version.loading":"加载中…","version.dsh.supportBound":"(适配 DSH 0.1.1-rc.2 ~ 0.1.6-alpha.2)","update.check":"检查更新","update.checking":"检查中…","update.current":"已是最新版本","update.available":"有新版本:{version}","update.installedPendingRestart":"已安装 {version},重启后生效","update.detailsButton":"查看详情","update.detailsHide":"收起","update.unavailable":"暂时无法检查最新版本","update.unpublished":"尚未发布可检查版本","health.recheck":"重新诊断","update.details.current":"当前版本:{version}","update.details.latest":"最新版本:{version}","update.channelStable":"正式版","update.channelPreview":"预览版","update.channelAlpha":"Alpha 版","update.upgrade":"升级插件","update.upgrading":"升级中…","update.upgradeError":"插件升级失败","update.upgradeErrorDetail":"插件升级失败({detail})","update.upgradeSuccess":"升级成功,服务重启中…","update.guardActiveWork":"有活动中的会话或后台任务,请处理完毕后再升级","update.guardLinkInstall":"插件通过 link: 安装(开发模式),不能从 registry 一键升级;请更新源码仓库后重启","update.guardFileInstall":"插件通过 file: 安装,不能从 registry 一键升级","update.guardNoNewer":"registry 最新版不高于当前版本,已拒绝可能回退的升级","update.guardNoProfile":"没有找到安装了本插件的 profile,无法定位升级目标","update.guardAmbiguous":"多个 profile 都安装了本插件且无法确定当前加载的副本,已中止","update.guardStale":"命令报告成功但安装版本没有变化(可能被 pnpm 安全等待期拦下),保持当前版本不重启","update.guardUnreadable":"命令成功但无法确认安装后的版本,已中止重启","update.failPnpmMissing":"找不到 pnpm,无法执行升级;请先安装 pnpm 再重试","update.failNetwork":"拉取依赖时网络临时失败,请稍后重试","update.failFetchTimeout":"下载超时(网络较慢或安装包较大),请稍后重试","update.failReleaseAge":"新版本被 pnpm 安全等待期拦截,已自动放行重试仍失败","update.failHoist":"profile 的 node_modules 由不同版本的 pnpm 创建,已重建重试仍失败","update.failAddingToRoot":"pnpm 拒绝在 workspace 根目录安装(缺少 -w)","update.failNotWorkspace":"profile 不是 pnpm workspace 却传入了 -w","update.failIgnoredBuilds":"依赖构建脚本被 pnpm 默认拦截,无法完成升级","env.kind.docker":"Docker 容器","env.kind.container":"容器(containerd/Kubernetes)","env.kind.systemd":"systemd 服务","env.kind.pm2":"pm2","env.kind.supervisord":"supervisord","env.kind.kubernetes":"Kubernetes","env.kind.declared":"外部进程管理器(手动指定)","update.manualConfirmTitle":"升级前请确认:当前疑似手动启动环境","update.manualConfirm":"未检测到进程管理器。升级完成后 DSH 不会自动重启。","update.manualProceed":"仍要升级","update.manualRestartTitle":"升级完成,需要手动重启","update.manualRestartBody":"新版本已安装,但当前进程仍在运行旧版本。请在运行 dsh 的终端窗口按 Ctrl+C(或直接关闭窗口),然后重新启动 dsh。","restart.title":"服务重启","restart.description":"重启 dsh web 进程。运行中的工作会中断,持久化会话可恢复。","restart.button":"重启 dsh web","restart.sending":"发送中…","restart.confirm":"确认重启","restart.force":"仍要重启","restart.cancel":"取消","restart.sent":"重启指令已发出。","restart.sentHint":"页面连接即将断开,服务恢复后将自动刷新。","restart.idleHint":"当前没有检测到运行中的工作。确认后将断开连接,等待服务自动重启。","restart.manualWarn":"当前疑似终端手动启动环境:确认后进程将退出且不会自动拉起,需要你手动重新运行 dsh。","restart.sentManualHint":"当前为手动启动环境,服务不会自动拉起;请在原终端重新运行 dsh 后刷新。","restart.navToggle":"设置页左列显示「重启」入口","restart.navToggleHint":"默认关闭;开启后在设置页左侧标签列底部显示快捷重启入口","activity.agent":"Agent","activity.job":"后台任务","activity.terminal":"终端","activity.warning":"检测到 {count} 项运行中的工作,重启将中断。","activity.item":"{type}:{label} ({status})","error.update":"检查失败","error.activity":"检查运行状态失败","error.restart":"重启失败","error.instance":"重启响应缺少进程实例标识","usage.title":"模型使用","usage.tooltip.date":"日期:{date}","usage.tooltip.input":"输入 {value} token","usage.tooltip.output":"输出 {value} token","usage.tooltip.cache":"缓存命中 {value} token","usage.tooltip.total":"token 总量 {value}","usage.tooltip.steps":"成功模型步骤 {value} 次","usage.tooltip.hitRate":"缓存命中率 {value}","usage.axis":"token 纵轴","usage.models.more":"展开其余 {count} 个模型","usage.models.less":"收起模型列表","usage.modelScope.today":"今日","usage.modelScope.week":"近 7 天","usage.modelScope.all":"累计","usage.modelSortHint.today":"按今日 token 从多到少排列","usage.modelSortHint.week":"按近 7 天 token 从多到少排列","usage.modelSortHint.all":"按累计 token 从多到少排列","usage.modelBar.today":"{model}:今日 {total} token","usage.modelBar.week":"{model}:近 7 天 {total} token","usage.modelBar.all":"{model}:累计 {total} token","usage.refresh":"刷新统计","usage.refreshing":"刷新中…","usage.empty":"尚未建立使用统计索引。点击刷新统计开始只读建立索引。","usage.error":"无法读取模型使用统计","usage.allProjects":"全部项目","usage.chartSummary":"七天内累计用量 {total} token","usage.barDay":"{day} 总用量 {total} token","usage.total":"token 总量","usage.steps":"成功模型步骤","usage.stepsValue":"{count} 次","usage.modelLine":"{steps}次 · 缓存命中 {hitRate} · 输入 {input} token · 输出 {output} token","usage.input":"输入 token","usage.output":"输出 token","usage.cache":"缓存 token","usage.hitRate":"缓存命中率","usage.today":"今日","usage.sevenDays":"近 7 天","usage.heatmap.title":"每日用量日历","usage.heatmap.gridLabel":"每日 token 用量热力日历","usage.heatmap.cell":"{date}:{total} token · {steps} 次模型步骤","usage.heatmap.hourTitle":"用量打卡图(星期 × 小时)","usage.heatmap.hourGridLabel":"按星期与小时的 token 用量打卡图","usage.heatmap.hourCell":"{weekday} {hour} 时:{total} token · {steps} 次模型步骤","usage.heatmap.scope.day":"每日","usage.heatmap.scope.hour":"小时","usage.heatmap.less":"少","usage.heatmap.more":"多","usage.errors.title":"模型报错","usage.errors.toggle":"模型报错({count} 类)","usage.errors.recent":"最近 48 小时","usage.errors.empty":"最近 48 小时没有记录到模型报错。","usage.toolErrors.title":"工具报错","usage.toolErrors.toggle":"工具报错({count} 类)","usage.toolErrors.empty":"最近 48 小时没有记录到工具报错。","usage.errors.count":"{count} 次","usage.failures.global":"全局会话统计(不受项目筛选影响):成功统计 {successful} 个会话,跳过 {failed} 个会话。","usage.failures.staleHint":"统计结果可能包含无法重新读取会话的旧缓存数据;这些数据已保留但可能过期。","usage.failures.show":"查看跳过会话详情","usage.failures.hide":"收起跳过会话详情","usage.failures.id":"会话 ID","usage.failures.code":"错误类型","usage.failures.message":"原因","usage.failures.stale":"保留上次统计(已过期,仍计入总量)","usage.failures.notStale":"无可用缓存,未计入统计","usage.failures.reason.format-migration-failed":"会话格式转换被拒绝。","usage.failures.reason.session-read-failed":"无法打开或读取会话。","usage.failures.reason.session-fold-failed":"无法统计会话事件。","notification.title":"通知","notification.description":"主会话任务结束,或会话需要授权、抉择时发送浏览器通知;子代理完成任务不通知。","notification.enable":"开启通知","notification.enabled":"通知已开启","notification.disable":"关闭通知","notification.denied":"通知权限被拒绝","notification.master":"通知总开关","notification.done":"任务结束通知","notification.input":"授权与提问通知","notification.doneTitle":"任务完成","notification.doneBody":"{title} 已完成本轮任务","notification.inputTitle":"需要你的确认","notification.inputBody":"{title}({kind})","notification.kind.approval":"等待授权","notification.kind.plan-review":"等待审阅计划","notification.kind.question":"等待选择答案","notification.bellOn":"通知开启","notification.bellOff":"通知关闭","notification.bellShow":"显示输入框旁的铃铛图标","quota.cardTitle":"额度查询","quota.navToggle":"设置页左列显示「额度查询」入口","quota.navToggleHint":"开启后在设置页左侧标签列底部显示「额度查询」快捷入口","quota.window.rolling":"滚动 5 小时","quota.window.tokens-limit-u3-n5":"5 小时 Token","quota.window.tokens-limit-u6-n1":"本周 Token","quota.window.tokens-limit":"Token 额度","quota.window.time-limit-u5-n1":"MCP 配额","quota.window.time-limit":"MCP 配额","quota.window.credit-limit":"点数额度","quota.window.credits":"已用额度","quota.window.balance":"余额","quota.window.weekly":"本周","quota.window.monthly":"本月","quota.window.codex-5h":"5 小时","quota.window.codex-day":"本日","quota.window.codex-week":"本周","quota.window.codex-month":"本月","quota.window.gemini-5h":"5 小时","quota.window.gemini-week":"本周","quota.window.claude-5h":"5 小时","quota.window.claude-week":"本周","quota.panel.title":"额度用量","quota.resetCard.more":"另有 {count} 张","quota.resetCard.less":"收起","quota.panel.used":"已用","quota.panel.remaining":"剩余","quota.ring.label":"额度查询","quota.gauge.baseline":"基准满额","quota.gauge.calibrate":"设当前为满额","quota.gauge.calibrateTip":"将当前余额 {amount} 设为 100% 满额基准","quota.gauge.ratio":"余量 {percent}%","quota.filter.showAll":"查看全部额度 ({count})","quota.filter.currentOnly":"仅看当前模型","quota.updated":"更新于 {time}","quota.refreshing":"刷新中…","quota.empty":"暂无数据","quota.resetIn":"重置于 {time}","quota.window.stale":"缓存","quota.window.staleTip":"该账号实时查询失败,显示的是 CPA 上次缓存的快照(非实时值)","quota.family.gemini":"Gemini","quota.family.claude":"Claude","quota.family.codex":"Codex","quota.family.other":"其他","quota.resetCard.title":"重置卡","quota.resetCard.codexTitle":"Codex 重置卡","quota.resetCard.expires":"{date} 到期","quota.resetCard.expired":"已过期","quota.resetCard.edit":"添加重置卡","quota.advanced":"配置","quota.resetCard.dateLabel":"到期日期","quota.resetCard.nameLabel":"名称(可选)","quota.resetCard.add":"添加","quota.resetCard.cancel":"取消","quota.resetCard.remove":"移除","quota.retryAt":"{time} 后可重试","quota.refresh":"刷新","quota.reorder":"调整排序与显隐","quota.order.title":"额度卡排序与显隐","quota.order.hint":"可通过拖拽或点击上下箭头调整卡片顺序;关闭开关可隐藏不常用卡片(隐藏只影响展示,不影响查询)。","quota.order.allHidden":"所有已适配卡片都被隐藏了;在「调整排序与显隐」里打开开关即可恢复显示。","quota.usageLink":"打开官网用量页","quota.adapt":"适配","quota.kind.opencode-go":"OpenCode Go","quota.kind.zai-coding-cn":"智谱 GLM Coding Plan","quota.kind.openrouter":"OpenRouter","quota.kind.kimi":"Kimi / Moonshot","quota.kind.siliconflow":"硅基流动","quota.kind.deepseek":"DeepSeek 开放平台","quota.kind.stepfun":"StepFun 余额","quota.kind.stepfun-step-plan":"StepFun Step Plan 订阅","quota.kind.cliproxy":"CLIProxyAPI 账号额度","quota.kind.xiaomi-token-plan-cn":"小米 MiMo Token Plan","quota.kind.command-goat":"Command Code 账号额度","quota.window.total_token":"套餐总额度","quota.window.compensation_total_token":"补偿积分","quota.window.plan-name":"订阅套餐","quota.window.credit-pool":"月度 Credit 池","quota.window.topup-credit":"加油包 Credit","quota.window.five-hour":"5 小时额度","quota.window.period-spend":"本周期已用","quota.error.no-subscription":"当前账号没有生效中的订阅额度","quota.error.credential-rejected":"凭据被上游拒绝,请重新填写(控制台类渠道请重新从浏览器复制登录态)","quota.credential.editCookie":"填写控制台 Cookie(网页登录态)","quota.credential.editToken":"填写控制台令牌(Oasis-Token,浏览器登录态)","quota.kindAuto":"自动识别","quota.noAdapted":"暂无已适配的供应商,可在下方手动适配","quota.disable":"停用查询","quota.followAuto":"跟随自动识别","quota.addAdapt":"手动适配:","quota.addPickProvider":"选择供应商","quota.addPickKind":"选择类型","quota.saveFailed":"保存失败:{error}","quota.unknownProvider":"未知供应商","quota.error.credential-missing":"凭据未配置(请在 DSH 凭据中设置对应 API key)","quota.error.no-base-url":"该供应商未配置 baseURL","quota.error.credentials-unavailable":"凭据服务不可用","quota.error.http-status":"上游返回错误状态","quota.error.network":"网络错误","quota.error.network-transient":"网络不稳定(已自动重试)","quota.error.timeout":"请求超时","quota.error.bad-payload":"响应格式异常","quota.error.mgmt-disabled":"CLIProxyAPI 管理面未启用(未设置 remote-management secret-key)","quota.error.host-not-pinned":"baseURL 与适配时记录的域名不一致,请重新保存适配","quota.error.upstream-status":"上游官方接口返回错误状态","quota.error.upstream-error":"上游服务故障(额度接口报错,稍后自动重试)","quota.credential.edit":"填写 API 密钥","quota.credential.editManagement":"填写管理密钥(网页登录的 key)","quota.credential.nameLabel":"凭据名称","quota.credential.valueLabel":"密钥值","quota.credential.save":"保存","quota.credential.primary":"主名(别名存一即可)","quota.credential.clear":"清除已存","quota.credential.clearConfirm":"再次点击清除","quota.credential.configured":"已配置","quota.credential.notConfigured":"未配置","quota.credential.saveFailed":"凭据保存失败:{error}","quota.credential.unknown-hint":"未知凭据名","quota.credential.invalid-value":"密钥值不能为空","quota.credential.credentials-unavailable":"凭据服务不可用","quota.error.unknown":"未知错误","quota.unadapted":"该供应商未适配,请先在下方选择类型","quota.unit.day":"{count} 天","quota.unit.hour":"{count} 小时","quota.unit.minute":"{count} 分钟","quota.window.granted-balance":"赠送余额(未过期)","quota.peak.nowIdle":"当前空闲时段 · 半价计费","quota.peak.nowPeak":"当前高峰时段 · 标准价","quota.peak.untilIdle":"{time} 转空闲({dur}后)","quota.peak.untilPeak":"{time} 转高峰({dur}后)","quota.peak.tag.peak":"忙时","quota.peak.tag.idle":"闲时","quota.peak.caption":"空闲时段价格为高峰时段价格的一半。高峰时段:北京时间周一至周五(不含中国法定节假日)09:00–12:00、14:00–18:00;其余时段,包括周末及中国法定节假日全天均为空闲时段。","quota.peak.caption.degraded":"暂未收录 {year} 年的中国法定节假日安排,本年度按「周一至周五 09:00–12:00、14:00–18:00」估算,节假日期内可能显示为高峰;更新插件后即可自动收录当年安排。","quota.peak.caption.zai":"非高峰时段模型调用按基础积分的 50% 抵扣。高峰时段:每周一至周五 14:00–18:00(UTC+8);其余时间为非高峰时段,周六和周日全天空闲。","features.fileEditor":"右栏文件编辑","features.modelProviderIcons":"模型厂家图标","editor.viewer":"编辑","editor.loading":"正在读取文件…","editor.preview":"预览","editor.save":"保存","editor.saving":"保存中…","editor.saved":"已保存","editor.unsaved":"未保存","editor.reload":"重新加载","editor.undo":"撤销保存","editor.keyHint":"Ctrl/Cmd + S 保存","editor.conflict.title":"磁盘内容已变化,保存被拒绝","editor.conflict.body":"文件在打开后被其他改动覆盖(Agent 或其他窗口写入)。重新加载会丢弃你的修改,覆盖会把当前编辑内容直接写盘。","editor.conflict.reload":"重新加载(丢弃修改)","editor.conflict.overwrite":"用我的内容覆盖","editor.confirm.previewTitle":"返回预览","editor.confirm.previewBody":"有未保存的修改,返回官方预览将丢弃这些修改。","editor.confirm.saveBack":"保存并返回","editor.confirm.discardBack":"丢弃并返回","editor.confirm.reloadTitle":"重新加载","editor.confirm.reloadBody":"有未保存的修改,重新加载将丢弃这些修改并读取磁盘当前内容。","editor.confirm.reloadGo":"丢弃并重新加载","editor.confirm.undoTitle":"撤销保存","editor.confirm.undoBody":"将把文件恢复为本次保存之前的内容;未保存的修改会一并丢弃。","editor.confirm.cancel":"继续编辑","editor.undoConflict.title":"无法自动撤销","editor.undoConflict.body":"磁盘内容在本次保存之后又发生了变化,不能自动恢复为保存前内容;可重新加载查看当前内容。","editor.undoConflict.dismiss":"关闭","editor.readonlyHint":"只读","editor.retry":"重试","editor.error.file-not-found":"文件不存在(可能已被移动或删除)。","editor.error.not-regular-file":"这不是普通文件,无法编辑。","editor.error.too-large":"文件超过 {limit},右栏编辑器只读:请用其他预览器查看。","editor.error.binary-file":"不是 UTF-8 文本文件,右栏编辑器无法编辑。","editor.error.session-not-live":"该会话当前未激活,无法编辑(可切换到其他预览器查看)。","editor.error.file-forbidden":"当前会话的沙箱策略不允许写入这个文件。","editor.error.unavailable":"宿主文件服务不可用,暂时无法编辑。","editor.error.invalid-address":"文件地址无法识别,无法编辑。","editor.error.file-stale":"磁盘内容已变化,请重新加载后再保存。","editor.error.file-failed":"读写失败,请重试。","editor.error.feature-disabled":"「右栏文件编辑」已在插件配置里关闭。","editor.error.internal":"操作失败,请重试。"},$={"nav.label":"Service Control","nav.restart":"Restart","features.cardTitle":"Service control (dsh-service)","features.cardHint":"Controls optional features and external capabilities. Switches apply instantly without restart.","features.external":"External capabilities","features.healthDiagnostics":"Health diagnostics","features.modelUsage":"Model statistics","features.quotaLookup":"Quota lookup","features.backupMaintenance":"Backup maintenance","features.taskNotifications":"Task notifications","features.healthz":"/healthz liveness endpoint","features.skillManager":"Skill manager","features.readOnly":"These settings are read-only.","tabs.skills":"Skills","tabs.subagent":"Subagents","tabs.sessions":"Sessions","features.subagentRoute":"Subagent model","features.mobileAdaptation":"Mobile adaptation","features.sessionManager":"Session manager","sessions.title":"Session manager","sessions.filter.all":"All","sessions.filter.archived":"Archived","sessions.filter.deleted":"Deleted","sessions.filter.subagent":"Subagents only","sessions.refresh":"Refresh","sessions.batch.enter":"Select multiple","sessions.batch.exit":"Exit selection","sessions.batch.selectAll":"Select all","sessions.batch.clearAll":"Clear all","sessions.batch.selectSubagents":"Select subagents","sessions.batch.selected":"{count} selected","sessions.batch.selectRow":"Select session: {title}","sessions.batch.export":"Export ({count})","sessions.batch.archive":"Archive ({count})","sessions.batch.unarchive":"Unarchive ({count})","sessions.batch.delete":"Delete ({count})","sessions.batch.clear":"Clear ({count})","sessions.batch.completed":"{action} completed for {count}","sessions.batch.failed":"{action} completed for {done}/{total}; {error}","sessions.batch.deleteTitle":"Delete {count} sessions","sessions.batch.deleteBody":"This permanently deletes the logs of the archived sessions below. This cannot be undone.","sessions.batch.deleteItem":"{title} ({bytes})","sessions.batch.clearTitle":"Clear {count} deleted records","sessions.batch.clearBody":"Are you sure you want to clear the following {count} deleted records? They will be permanently removed from the record list.","sessions.status.loading":"Loading…","sessions.status.working":"Working…","sessions.status.unavailableTime":"Time unavailable","sessions.glyph.expand":"▸","sessions.glyph.collapse":"▾","sessions.glyph.back":"←","sessions.search.placeholder":"Search conversation content…","sessions.search.archivedOnly":"Search archived only","sessions.sort.createdDesc":"Created (newest first)","sessions.sort.createdAsc":"Created (oldest first)","sessions.sort.title":"By title","sessions.sort.project":"By project","sessions.projectGroup.countOne":"1 session","sessions.projectGroup.countMany":"{count} sessions","sessions.projectGroup.noCwd":"(no workspace)","sessions.row.live":"Running","sessions.row.archived":"Archived","sessions.row.deleted":"Deleted","sessions.row.subagent":"Subagent","sessions.subagent.hostLegacy":"The plugin host is outdated and the list carries no subagent flags; upgrade the plugin and restart dsh for “Subagents only” to take effect","sessions.row.events":"{count} events","sessions.row.noTitle":"(No title)","sessions.action.view":"View","sessions.action.export":"Export","sessions.action.archive":"Archive","sessions.action.unarchive":"Unarchive","sessions.action.delete":"Delete","sessions.action.clear":"Clear","sessions.empty.all":"No sessions","sessions.empty.archived":"No archived sessions","sessions.empty.deleted":"No deleted sessions yet","sessions.empty.search":"No matches for “{query}”","sessions.error.load":"Load failed: {error}","sessions.error.feature-disabled":"Session manager is disabled in settings","sessions.error.network":"Network error: cannot reach the host","sessions.error.session-not-found":"Session not found or already deleted","sessions.error.live-session-rejected":"Session is running and cannot be deleted","sessions.error.session-not-archived":"Only archived sessions can be deleted","sessions.error.unknown-delete-plan":"Delete request expired, please retry","sessions.error.invalid-session-ids":"Invalid session IDs","sessions.error.unarchive-unsupported":"Unarchiving is not supported by current host (requires DSH ≥ 0.1.6)","sessions.error.export-failed":"Export failed: {error}","sessions.detail.back":"Back to list","sessions.detail.open":"Open in official view","sessions.detail.archiveDisabled":"Archived or blank sessions cannot be opened in the official view","sessions.detail.exportAll":"Export full ZIP","sessions.detail.exporting":"Exporting…","sessions.detail.loadMore":"Load more ({remaining})","sessions.detail.noMore":"All {total} events loaded","sessions.detail.noise":"System events","sessions.detail.noiseBlock":"{count} system events","sessions.detail.noiseExpand":"Expand all","sessions.detail.noiseCollapse":"Collapse","sessions.detail.toolBlock":"{count} tool messages","sessions.detail.toolCollapse":"Collapse","sessions.detail.cwd":"{cwd}","sessions.detail.created":"Created {time}","sessions.md.copy":"Copy","sessions.md.copied":"Copied","sessions.md.footnotes":"Footnotes","sessions.hit.title":"{count} hits","sessions.hit.return":"Back to search results","sessions.hit.badge":"HIT","sessions.hit.prev":"◀ Prev","sessions.hit.next":"Next ▶","sessions.hit.inSession":"{count} matches in this session","sessions.delete.title":"Delete session","sessions.delete.body":"This permanently deletes the session log below. This cannot be undone.","sessions.delete.consequence.log":"Delete session log ({bytes})","sessions.delete.consequence.sidebar":"Session disappears from the official sidebar","sessions.delete.confirm":"Delete","sessions.delete.cancel":"Cancel","sessions.delete.done":"Deleted","sessions.clear.title":"Clear deleted record","sessions.clear.body":"Are you sure you want to clear this deleted record? It will be permanently removed from the record list.","sessions.clear.confirm":"Clear","sessions.clear.cancel":"Cancel","sessions.export.includes":"Includes subagents and attachments","sessions.navToggle":"Show “Sessions” entry in the settings sidebar","sessions.oneWay":"Archiving cannot be undone","sessions.oneWayHint":"Archived sessions are hidden from the official sidebar; the official UI cannot unarchive, deletion here is the only way out.","mobile.fab.label":"Open sidebar menu","mobile.debug.title":"Mobile diagnostics","mobile.debug.viewport":"Viewport","mobile.debug.drawer":"Drawer","mobile.debug.sidebarPanel":"Side panel","mobile.debug.details":"Details","mobile.debug.rightbar":"Rightbar","mobile.debug.errors":"JS errors","mobile.debug.stateOn":"on","mobile.debug.stateOff":"off","mobile.debug.immersive":"Immersive","mobile.debug.immersive.reason.gesture":"swipe","mobile.debug.immersive.reason.arrival":"arrival","mobile.debug.immersive.reason.focus":"focus","mobile.debug.immersive.reason.button":"to-bottom","mobile.debug.edge":"Edge","mobile.debug.edge.fieldStart":"start","mobile.debug.edge.fieldMoves":"moves","mobile.debug.edge.fieldLast":"last","mobile.debug.edge.fieldCancel":"cancel","mobile.debug.edge.fieldReason":"reason","mobile.debug.edge.open":"open","mobile.debug.edge.leftOpen":"open L","mobile.debug.edge.rightOpen":"open R","mobile.debug.edge.leftClose":"close L","mobile.debug.edge.rightClose":"close R","mobile.debug.edge.reason.multiTouch":"multi-touch","mobile.debug.edge.reason.modal":"modal","mobile.debug.edge.reason.hScroll":"h-scroll","mobile.debug.edge.reason.noPoint":"no point","mobile.debug.edge.reason.absentRight":"right sidebar absent","mobile.debug.edge.reason.badButton":"right sidebar toggle unavailable","mobile.debug.edge.reason.noTracker":"no tracker","conversation.jump.previousReply":"Previous user message","subagent.title":"Subagent model","subagent.loading":"Reading configuration…","subagent.hint":'Controls the model used by subagents without an explicit model; explicitly specified ones are unaffected. Switching modes keeps the saved custom model and fallback list; switch back to "Custom" to reuse them.',"subagent.mode.label":"Mode","subagent.mode.inherit":"Default (no override)","subagent.mode.inherit.desc":"Injects nothing and keeps the native inheritance: subagents use the model baked in when the session was created.","subagent.mode.follow":"Follow main model","subagent.mode.follow.desc":"Each delegation reads the model the main conversation actually uses right now (route of its latest request) and injects it.","subagent.mode.custom":"Custom","subagent.mode.custom.desc":"Every delegation without an explicit model uses the model selected below.","subagent.provider":"Provider","subagent.model":"Model","subagent.reasoningEffort":"Reasoning effort","subagent.reasoningEffort.default":"Use model default (unspecified)","subagent.reasoningEffort.unavailable":"This model does not declare selectable reasoning levels","subagent.modelsEmpty":"Model list is empty: host LLM channels cannot be resolved.","subagent.save":"Save","subagent.saved":"Saved","subagent.reset":"Reset to default","subagent.saving":"Saving…","subagent.unavailable":"The host exposes no subagents registry (service missing); this configuration has no effect.","subagent.error":"Operation failed: {error}","subagent.error.feature-disabled":"Subagent model is switched off in settings","subagent.error.llm-unavailable":"Host LLM service is unavailable","subagent.error.unknown-mode":"Unknown mode","subagent.error.invalid-model-route":"Provider or model is not in the host catalog","subagent.error.invalid-reasoning-effort":"This reasoning effort is not supported by the selected model; choose another","subagent.error.network":"Network error: cannot reach the host","subagent.fallback.title":"Fallback models (in order)","subagent.fallback.item":"Fallback {index}","subagent.fallback.hint":"When the primary route is unavailable (channel unloaded, or quota state marks it unserviceable), try fallbacks in order; if none works, fall back to native inheritance instead of failing the delegation.","subagent.fallback.add":"Add fallback","subagent.fallback.sort":"Reorder","subagent.fallback.sort.done":"Done","subagent.fallback.remove":"Remove","subagent.fallback.up":"Move up","subagent.fallback.down":"Move down","subagent.fallback.empty":"No fallbacks: delegations fall back to native inheritance when the primary route is unavailable.","subagent.fallback.limit":"Limit reached ({max})","subagent.error.invalid-fallback-route":"Fallback entry is not in the host catalog, please choose again","subagent.dock.label":"Subagents: ","subagent.dock.title":"Show subagent info under the composer","skills.error":"Operation failed: {error}","skills.error.feature-disabled":"Skill manager is switched off in settings","skills.error.network":"Network error, try again later","skills.error.read-only-source":"This entry lives in a read-only source","skills.error.unknown-skill":"Skill not found; the list may have changed, refresh and retry","skills.error.invalid-skill":"Entry is currently invalid: {reason}","skills.error.invalid-field":"Invalid switch field","skills.error.invalid-enable":"Invalid switch value","skills.error.invalid-model-route":"Invalid model route; pick a model again","skills.error.invalid-description":"Description cannot be empty","skills.error.describe-timeout":"Model generation timed out (90s)","skills.error.empty-output":"Model produced no body output (finish: {kind})","skills.error.batch-cancelled":"Cancelled","skills.error.entry-changed":"Entry changed during the run; skipped","skills.error.unknown-batch-plan":"Batch plan is stale; regenerate it","skills.error.batch-already-done":"That batch already finished","skills.error.batch-already-cancelled":"That batch was already cancelled","skills.error.annotated-confirm-required":"Annotated skills need an explicit confirm before being overwritten","skills.empty":"No skills found","skills.filter":"Filter by name…","skills.expandAll":"Expand all","skills.collapseAll":"Collapse all","skills.colon":": ","skills.group.auto":"Auto-loaded","skills.group.manual":"Manual only","skills.group.disabled":"Fully disabled","skills.source.project-dsh":"Project .dsh","skills.source.project-agents":"Project .agents","skills.source.user-dsh":"User DSH","skills.source.user-agents":"User .agents","skills.source.bundled":"Bundled","skills.source.custom":"Custom dir","skills.badge.shadowed":"Shadowed","skills.badge.readonly":"Read-only","skills.badge.annotated":"Annotated","skills.note.stale":"Body changed; refill needed","skills.note.remove":"Remove AI note","skills.note.panelOnly":"Notes are stored and shown in this panel only; SKILL.md is never modified.","skills.log.title":"Run log","skills.log.located":"Located skill {name} ({chars} chars)","skills.log.attempt":"Attempt {n}/{total}: calling {route}","skills.log.received":"Output received ({chars} chars), parsing JSON…","skills.log.parsed":"Parsed OK, draft ready","skills.log.failed-retry":"Failed: {message}, retrying","skills.log.failed":"Failed: {message}","skills.log.wait":"Waiting for model output… {secs}s","skills.log.first-delta":"Model started returning","skills.log.first-reasoning":"Model started returning (reasoning first)","skills.log.progress":"Received {chars} chars","skills.log.finish-reasoning-only":"Finished: {kind} (only {chars} reasoning chars, no body)","skills.log.finish-empty":"Finished: {kind} (no output)","skills.log.block-extract":"Extracted body from whole block ({chars} chars)","skills.log.item-start":"Generating note…","skills.batch.toggle":"Batch annotate","skills.batch.collapse":"Collapse","skills.batch.already":"A batch is already running; wait for it or cancel first","skills.invalid.legacy":"Legacy invocation keys present; excluded from the model catalog","skills.invalid.other":"Invalid entry: {reason}","skills.fix.legacy":"Fix legacy keys","skills.switch.model":"Visible to model","skills.switch.user":"Invocable via /","skills.switch.confirm":"Click again to apply","skills.describe.button":"Fill with AI","skills.describe.title":"Fill metadata with AI — {name}","skills.describe.model":"Model","skills.describe.models.loading":"Loading models…","skills.describe.models.empty":"No configured models found","skills.describe.run":"Generate draft","skills.describe.running":"Generating…","skills.apply.title":"Save AI note — {name}","skills.apply.description":"Description","skills.apply.usage":"Usage","skills.apply.old":"Old","skills.apply.new":"New","skills.apply.confirm":"Save note","skills.apply.done":"Note saved","skills.apply.keepusage":"(keep existing)","skills.llm.unavailable":"Host LLM service unavailable; AI fill disabled.","skills.batch.title":"Batch-fill skill descriptions","skills.batch.hint":"Call the selected model per skill to draft explanations for uncommented or changed skills; annotated skills are listed separately and are only overwritten after an explicit confirm. Results stay in the plugin and render below the entry.","skills.batch.plan":"Plan batch","skills.batch.candidates":"{count} candidates","skills.batch.estBytes":"~{size} of content will be sent","skills.batch.skipped":"{count} skipped (invalid / shadowed)","skills.batch.annotated":"{count} annotated will be overwritten","skills.batch.annotatedList":"To be overwritten","skills.batch.forceConfirm":"Confirm forced refill ({count} annotated)","skills.skippedList":"Skipped","skills.skip.shadowed":"shadowed","skills.skip.invalid":"invalid ({reason})","skills.skip.reason.missing-frontmatter":"no frontmatter","skills.skip.reason.missing-name":"missing name","skills.skip.reason.invalid-name":"invalid name","skills.skip.reason.missing-description":"missing description","skills.skip.reason.too-large":"file too large","skills.skip.reason.legacy-invocation-key":"legacy invocation keys","skills.batch.start":"Start batch","skills.batch.progress":"Progress {done}/{total}","skills.batch.current":"Current: {name}","skills.batch.cancel":"Cancel","skills.batch.phase.idle":"Idle","skills.batch.phase.planned":"Planned — review candidates, then press Start","skills.batch.phase.running":"Running","skills.batch.phase.done":"Done","skills.batch.phase.cancelled":"Cancelled","skills.batch.failures":"{count} failed","skills.batch.no-candidates":"Nothing to fill","skills.batch.model":"Model","overlay.label":"Service restart status","recovery.waiting.title":"Restarting service…","recovery.waiting.body":"Waiting for a new DSH Web process. Elapsed: {seconds} seconds.","recovery.timeout.title":"Service has not recovered","recovery.timeout.body":"Waited 60 seconds. Check the external process manager, or refresh the page manually.","recovery.manual":"Manual reload","health.title":"Health","health.uptime":"Uptime","health.rss":"Memory RSS","health.platform":"Platform","health.nodeVersion":"Node version","health.liveSessions":"Live sessions","health.persistedSessions":"Persisted sessions","health.activeAgents":"Active agents","health.activeJobs":"Background jobs","health.uptimeValue":"{hours} h {minutes} min","health.error":"Could not read health metrics","health.check":"Run health check","health.checking":"Checking…","health.overall.ok":"Healthy","health.overall.warning":"Warning","health.overall.error":"Error","health.alert.title":"Health alert","health.alert.diagnostics":"The health check reported {status}. Review the affected items below.","health.status.ok":"Healthy","health.status.warning":"Warning","health.status.error":"Error","health.status.info":"Info","health.check.session-storage":"Session storage","health.check.workspace-registry":"Workspace registry","health.check.dsh-home":"DSH_HOME","health.check.backup-storage":"Backup storage","health.check.tar":"tar","health.check.permissions":"File permissions","health.check.runtime-env":"Runtime environment","health.check.node-version":"Node runtime","health.detail.runtime-env.managed":"Managed by {kind}; the process restarts automatically after exit","health.detail.runtime-env.declared":"Declared externally managed via DSH_SERVICE_RUNTIME_ENV","health.detail.runtime-env.manual":"Likely a manual terminal launch — nothing restarts the process after exit; one-click upgrade already keeps it running","health.detail.runtime-env.unknown":"No process manager detected, so automatic restart cannot be confirmed; set DSH_SERVICE_RUNTIME_ENV=managed if one exists","health.detail.node-version.ok":"{version}, meets the >={required} requirement","health.detail.node-version.warning":"{version} is below the required {required}.x; upgrading Node is recommended","health.detail.session-storage.ok":"Available, with {count} session snapshots","health.detail.workspace-registry.ok":"Available, with {count} workspaces","health.detail.dsh-home.ok":"Directory is accessible with mode {mode}","health.detail.backup-storage.empty":"Backup directory is available; no backups exist yet","health.detail.backup-storage.ok":"Backup directory is available, with {count} backups using {size}","health.detail.tar.ok":"The tar executable is available","health.detail.permissions.ok":"Permission check passed with no anomalies","health.detail.permissions.warning":"Found {count} file or directory permission anomalies","health.detail.generic":"{status}","health.check.usage-index":"Usage index","health.detail.usage-index.never":"No usage index yet; open the Model usage page to build it read-only","health.detail.usage-index.unavailable":"The usage index could not be read","health.detail.usage-index.ok":"{indexed} sessions indexed, updated {updated}","health.detail.usage-index.warning":"{failed} session(s) could not be indexed (usage is undercounted); {indexed} indexed, updated {updated}","health.check.notification-permission":"Notification permission","health.detail.notification-permission.granted":"The browser is allowed to show system notifications","health.detail.notification-permission.default":"The browser has not granted system notifications yet; enable them under Configuration → Notifications","health.detail.notification-permission.denied":"The browser blocked system notifications; restore them in the site settings","health.detail.notification-permission.unsupported":"This browser does not support system notifications","health.check.plugins":"Plugins","health.detail.plugins.unavailable":"Plugin health check unavailable (host loader is not exposed)","health.detail.plugins.ok":"{total} plugins healthy","plugin.issue.failed":"{failed} failed plugin(s)","plugin.issue.pending":"{pending} pending plugin(s)","plugin.issue.info":"{count} plugin state(s) need review","plugin.state.pending":"Waiting","plugin.state.loading":"Loading","plugin.state.failed":"Failed","plugin.state.disposed":"Disposed","plugin.state.unknown":"Unknown state","plugin.state.unloading":"Unloading","plugin.missingDeps":"Missing deps: {deps}","plugin.error":"Error: {error}","plugin.restart":"Reload","plugin.restarting":"Reloading…","plugin.restartConfirm":"Confirm reload","plugin.restartHint":'Reloading "{name}" re-runs its startup logic; the failure state refreshes afterwards.',"plugin.restartCancel":"Cancel","plugin.restartFailed":"Reload failed: {detail}","plugin.error.unknown-plugin":"Plugin not found","plugin.error.loader-unavailable":"Host loader unavailable","plugin.error.plugin-disabled":"The plugin is disabled and cannot be reloaded","plugin.error.not-failed":"The plugin is not in a failed state","plugin.error.restart-failed":"Still failed after reload","health.check.plugin-compat":"Plugin compatibility","health.detail.plugin-compat.unavailable":"Plugin compatibility check unavailable (host loader is not exposed)","health.detail.plugin-compat.ok":"Scanned {total} plugins; no references to changed interfaces","plugin.compat.kind.broken":"Possibly incompatible","plugin.compat.kind.soft":"Kept for backward compatibility","plugin.compat.kind.declared":"Stale declaration","plugin.compat.kind.unknown":"Not scanned","plugin.compat.issue.broken":"{count} plugin(s) possibly incompatible","plugin.compat.issue.soft":"{count} plugin(s) keep retired interfaces for backward compatibility","plugin.compat.issue.declared":"{count} plugin(s) with stale declarations only (not referenced in code)","plugin.compat.issue.unknown":"{count} plugin(s) could not be scanned","plugin.compat.declared":"Declares a removed interface but never references it in code — the official loader silently skips missing suppliers, so this is harmless today and only signals the author to clean up","plugin.compat.badge.active":"Active in current DSH","plugin.compat.badge.future":"Normal now (triggers upon DSH ≥ {since})","plugin.compat.category.package-removed":"Package removed","plugin.compat.category.slot-retired":"Slot retired","plugin.compat.category.method-removed":"Method removed","plugin.compat.category.event-removed":"Event removed","plugin.compat.category.hash-migrated":"CSS hash migrated","plugin.compat.category.attribute-removed":"DOM attribute removed","plugin.compat.meta.since":"Impacts: DSH ≥ {since}","plugin.compat.meta.reason":"Reason","plugin.compat.meta.impact":"Impact","plugin.compat.meta.advice":"Advice","plugin.compat.reason.client-runtime":"Official web roster dropped @deepseek-ai/dsh-client-runtime in DSH 0.1.2-alpha.2","plugin.compat.impact.client-runtime":"Browser loader waits for missing supplier, causing the plugin to hang in pending state","plugin.compat.advice.client-runtime":"Remove the package from dsh.client.inject in package.json","plugin.compat.reason.sqlite-persistence":"Official SQLite session persistence package was dropped in DSH 0.1.2-alpha.3; JSONL is the only official provider","plugin.compat.impact.sqlite-persistence":"Importing this package causes resolution failure or startup crashes","plugin.compat.advice.sqlite-persistence":"Drop the dependency on sqlite persistence and use standard JSONL or public session APIs","plugin.compat.reason.code-runtime":"Code execution package was renamed and refactored in DSH 0.1.6-alpha.1, replaced by ptc-runtime","plugin.compat.impact.code-runtime":"Code execution engines depending on this package fail to load","plugin.compat.advice.code-runtime":"Upgrade to @deepseek-ai/dsh-ptc-runtime","plugin.compat.reason.e2b-runtime":"Built-in E2B sandbox backend was removed in DSH 0.1.6-alpha.1","plugin.compat.impact.e2b-runtime":"Sandbox logic depending on this package fails to load","plugin.compat.advice.e2b-runtime":"Use official execution environments or external MCP servers","plugin.compat.reason.session-start-event":"Lifecycle event dispatch was unified in DSH 0.1.6-alpha.1 (agent/session-start was removed)","plugin.compat.impact.session-start-event":"Event listeners never fire, breaking timing hooks","plugin.compat.advice.session-start-event":"Listen to agent/created via ctx.on and inspect payload.source","plugin.compat.reason.chat-hash":"Chat view was split into dsh-client-ui-chat in DSH 0.1.2-alpha.2, shifting CSS module prefix (Md3f7G_ → EvIC1a_)","plugin.compat.impact.chat-hash":"Selectors hardcoding the old class prefix fail to match target DOM elements","plugin.compat.advice.chat-hash":'Use stem suffix matching (e.g. [class*="_toBottomSlot"])',"plugin.compat.reason.stats-hash":"Status line view moved into chat package in DSH 0.1.2-alpha.2, changing class prefix from FJxK0a_ to -NDN2W_","plugin.compat.impact.stats-hash":"Hardcoded selectors fail to find status line elements","plugin.compat.advice.stats-hash":"Use stem matching, or adapt to StatsPills on DSH 0.1.5+","plugin.compat.reason.time-hover-root":"Turn timestamp interaction was overhauled in DSH 0.1.2-alpha.2, deleting data-time-hover-root DOM attribute","plugin.compat.impact.time-hover-root":"Scripts relying on this attribute to locate turn timestamps fail","plugin.compat.advice.time-hover-root":"Use the stable [data-turn-tail] attribute instead","plugin.compat.reason.settings-plugin-item":"Settings panel was redesigned in DSH 0.1.6-alpha.2, retiring the settings.plugin.item slot","plugin.compat.impact.settings-plugin-item":"Configuration cards no longer render inside the settings dialog; plugin core runs normally","plugin.compat.advice.settings-plugin-item":"Migrate to the dedicated plugins page slot plugins.bundle.config, or register both for compatibility","plugin.compat.reason.sessions-open-method":"Session lifecycle management was introduced in DSH 0.1.6-alpha.2, removing the imperative ISessions.open method","plugin.compat.impact.sessions-open-method":"Calling the sessions.open method fails silently or throws","plugin.compat.advice.sessions-open-method":"Use uiWorkspace.openSession or keep dual-level fallbacks","plugin.compat.break.client-runtime":"Declares the removed client supplier @deepseek-ai/dsh-client-runtime (dropped from the official roster in 0.1.2-alpha.2; the browser half may fail to mount)","plugin.compat.break.sqlite-persistence":"Depends on the removed session persistence backend @deepseek-ai/dsh-session-persistence-sqlite (JSONL is the only official provider since 0.1.2-alpha.3)","plugin.compat.break.code-runtime":"Depends on the removed code runtime backend @deepseek-ai/dsh-code-runtime (replaced by ptc-runtime in 0.1.6-alpha.1)","plugin.compat.break.e2b-runtime":"Depends on the removed sandbox backend @deepseek-ai/dsh-e2b (built-in E2B removed in 0.1.6-alpha.1)","plugin.compat.break.session-start-event":"Listens to the removed lifecycle event agent/session-start (replaced by agent/created with source in 0.1.6-alpha.1)","plugin.compat.break.settings-plugin-item":"Keeps the retired settings page slot settings.plugin.item for compatibility with older hosts (new hosts stopped rendering it in 0.1.6-alpha.2 — the config card is hosted via plugins.bundle.config; the plugin runs normally with only the config entry relocated, no action needed)","plugin.compat.break.sessions-open-method":"Calls the removed imperative session-open method sessions.open (removed from ISessions in 0.1.6-alpha.2, clicks do nothing; the official ui-workspace openSession replaces it)","plugin.compat.break.chat-hash":"References the old chat UI style prefix (Md3f7G_, migrated to EvIC1a_ since 0.1.2-alpha.2)","plugin.compat.break.stats-hash":"References the old status-line style prefix (FJxK0a_, migrated to -NDN2W_ since 0.1.2-alpha.2)","plugin.compat.break.time-hover-root":"Uses the removed attribute data-time-hover-root (replaced by data-turn-tail in 0.1.2-alpha.2)","plugin.compat.unknown.unresolved":"Package manifest could not be resolved","plugin.compat.unknown.missing-entry":"No scannable entry file found","plugin.compat.unknown.too-large":"Entry file exceeds the 4 MiB scan limit","tabs.overview":"Overview","tabs.notify":"Notifications","tabs.health":"Health","tabs.usage":"Models","tabs.quota":"Quota lookup","overview.container":"Process and runtime","overview.errors":"Errors","overview.status.normal":"All systems nominal","overview.status.info":"You have {count} note(s)","overview.status.warning":"You have {count} item(s) to review","overview.status.error":"You have {count} item(s) needing attention","overview.backupEmpty":"No backups yet — consider creating one","overview.updateAvailable":"A new version is available","tabs.backup":"Backup","tabs.restart":"Restart","tabs.maintenance":"Maintenance","tabs.configuration":"Configuration","tabs.features":"Features","tabs.notifications":"Notifications","tabs.navOrder":"Settings Nav","config.navOrder.title":"Settings Navigation Order & Visibility","config.navOrder.moveUp":"Move up","config.navOrder.moveDown":"Move down","config.navOrder.visible":"Visible","config.navOrder.hidden":"Hidden","config.navOrder.locked":"Current panel (locked)","config.navOrder.reset":"Reset to default","config.navOrder.saved":"Saved","config.navOrder.save":"Save order","config.navOrder.empty":"No registered settings tabs detected","maintenance.empty":"All maintenance pages are disabled. Enable backup, skills, subagents, or session management under “Configuration → Features”.","config.notificationsDisabled":"Task notifications are turned off on the Features page; these settings are shown for reference only until re-enabled.","features.group.runtime":"Runtime and observation","features.group.maintenance":"Maintenance","features.group.interaction":"Interaction","page.configuration.desc":"Feature switches and task notification settings.","tabs.alert.title":"Service control alert","tabs.alert.body":"These areas need attention: {tabs}","tabs.alert.join":", ","tabs.alert.dot":"Alert on this tab","permissions.title":"File permissions","permissions.description":"Checks whether the Agent can read, write, and enter DSH_HOME and workspaces. Deep scans skip .git; repair adds only the needed permissions and keeps execute bits.","permissions.target":"Target owner: {owner}","permissions.repair":"Repair permissions","permissions.repairing":"Repairing…","permissions.confirm":"Confirm repair","permissions.confirmHint":"Skips .git, restores ownership to the current user, adds Agent read/write access, and keeps existing execute bits.","permissions.cancel":"Cancel","permissions.show":"Permissions & repair","permissions.hide":"Collapse","permissions.error":"Permission operation failed","permissions.summary.ok":"{count} root path(s) passed the check","permissions.summary.warning":"{count} root path(s) need attention","permissions.showDetails":"Show details","permissions.hideDetails":"Hide details","permissions.deep":"Deep check","permissions.deepChecking":"Scanning…","permissions.deepSummary":"Scanned {scanned} entries in {duration} ms; non-editable directories {directories}, non-editable files {files}, unreadable {unreadable}.","backup.title":"Backup management","backup.description":"Backs up sessions, config, and plugin profiles — no node_modules or credentials; never auto-pruned.","backup.create":"Create backup","backup.creating":"Creating…","backup.progress.copy":"Copying session data ({current}/{total})…","backup.progress.archive":"Packing archive ({current}/{total})…","backup.progress.validate":"Verifying archive ({current}/{total})…","backup.progress.publish":"Publishing backup ({current}/{total})…","backup.total":"Total size: {size}","backup.empty":"No backups yet.","backup.delete":"Delete","backup.confirm":"Confirm delete","backup.confirmHint":"Delete this backup? This cannot be undone.","backup.cancel":"Cancel","backup.error":"Backup operation failed","backup.export":"Export","backup.exporting":"Exporting…","backup.exportError":"Backup export failed","backup.restore":"Restore","backup.inspecting":"Inspecting…","backup.restoreConfirm":"Confirm restore","backup.restoreHint":"The integrity check passed. Confirm to apply the plan below; the host will recheck the archive and current targets immediately before committing.","backup.restoreError":"Backup restore failed","backup.integrity.ok":"Integrity check passed","backup.integrity.invalid":"Archive cannot be restored","backup.integrity.summary":"{entries} entries, {size} expanded; {sessions} session file(s), {config} config file(s), {profiles} profile manifest(s).","backup.plan.sessions":"The sessions directory will be replaced in full","backup.plan.config":"Replace {replace} config file(s), remove {remove}","backup.plan.profiles":"Replace package.json for {count} profile(s); keep node_modules and all other files","backup.plan.expires":"Restore plan expires at {time}","backup.manualRestartTitle":"Restore completed — manual restart required","backup.manualRestartBody":"The data is restored, but the current process is still running its old state. Press Ctrl+C in the terminal running dsh, then start dsh again.","backup.error.backup-gzip-invalid":"The archive is not a valid gzip file or is damaged.","backup.error.backup-tar-invalid":"The tar structure or checksum is invalid.","backup.error.backup-entry-traversal":"The archive contains an unsafe path traversal.","backup.error.backup-entry-absolute":"The archive contains an absolute path.","backup.error.backup-entry-link":"The archive contains a symbolic or hard link.","backup.error.backup-entry-type":"The archive contains an unsupported special entry.","backup.error.backup-entry-platform":"The archive contains a filename incompatible with another platform.","backup.error.backup-entry-unexpected":"The archive contains files outside the backup scope.","backup.error.backup-profile-invalid":"A profile package.json is invalid.","backup.error.backup-section-missing":"The archive is missing a required section.","backup.error.backup-size-limit":"The archive exceeds a safe size or entry limit.","backup.error.backup-archive-invalid":"The archive failed its integrity check.","backup.error.backup-archive-incomplete":"The archive does not match the backup source (a file was not captured completely), so it was not published.","backup.error.backup-source-changed":"A session is being written; the backup was not completed. Try again shortly.","backup.error.backup-source-unsafe":"The backup source contains a link or special file, so creation was refused.","backup.error.tar-failed":"The archive tool failed. Check that tar and gzip are available.","backup.error.active-work":"Running work was detected; restore is blocked for now.","backup.error.restore-plan-expired":"The restore plan expired. Inspect the backup again.","backup.error.restore-source-changed":"The backup changed before confirmation. Inspect it again.","backup.error.restore-target-changed":"Current data changed before confirmation. Inspect it again.","backup.error.restore-target-unsafe":"A restore target contains an unsafe link or special file.","backup.import":"Import backup","backup.importing":"Importing…","backup.showRecords":"Show backup records","backup.hideRecords":"Hide backup records","version.title":"Version information","version.current":"DSH: ","version.plugin":"dsh-service: ","version.loading":"Loading…","version.dsh.supportBound":" (Adapted for DSH 0.1.1-rc.2 ~ 0.1.6-alpha.2)","update.check":"Check for updates","update.checking":"Checking…","update.current":"Up to date","update.available":"New version: {version}","update.installedPendingRestart":"Installed {version} — restart to take effect","update.detailsButton":"View details","update.detailsHide":"Collapse","update.unavailable":"Latest version is temporarily unavailable","update.unpublished":"No published version is available to check","health.recheck":"Run again","update.details.current":"Current version: {version}","update.details.latest":"Latest version: {version}","update.channelStable":"Stable","update.channelPreview":"Preview","update.channelAlpha":"Alpha","update.upgrade":"Upgrade plugin","update.upgrading":"Upgrading…","update.upgradeError":"Plugin upgrade failed","update.upgradeErrorDetail":"Plugin upgrade failed ({detail})","update.upgradeSuccess":"Upgrade successful, restarting…","update.guardActiveWork":"Active sessions or background tasks are running; resolve them before upgrading","update.guardLinkInstall":"Installed via link: (development mode) — cannot one-click upgrade from the registry; update the source checkout and restart","update.guardFileInstall":"Installed via file: — cannot one-click upgrade from the registry","update.guardNoNewer":"The registry latest is not higher than the current version; refused a possible downgrade","update.guardNoProfile":"No profile with this plugin installed was found to target the upgrade at","update.guardAmbiguous":"Several profiles install this plugin and the loaded copy could not be determined; aborted","update.guardStale":"The command reported success but the installed version did not change (pnpm safety wait likely blocked it); keeping the current version without restarting","update.guardUnreadable":"The command succeeded but the installed version could not be confirmed; the restart was cancelled","update.failPnpmMissing":"pnpm was not found, so the upgrade cannot run; install pnpm first and retry","update.failNetwork":"A transient network failure occurred while fetching dependencies; please retry shortly","update.failFetchTimeout":"Download timed out (slow network or large package); please retry later","update.failReleaseAge":"The new release is blocked by pnpm's fresh-release safety wait; one automatic bypass retry also failed","update.failHoist":"This profile's node_modules was created by a different pnpm major; the rebuild retry also failed","update.failAddingToRoot":"pnpm refused to add at the workspace root (missing -w)","update.failNotWorkspace":"-w was passed but the profile is not a pnpm workspace","update.failIgnoredBuilds":"Dependency build scripts are blocked by pnpm by default, so the upgrade could not finish","env.kind.docker":"Docker container","env.kind.container":"Container (containerd/Kubernetes)","env.kind.systemd":"systemd service","env.kind.pm2":"pm2","env.kind.supervisord":"supervisord","env.kind.kubernetes":"Kubernetes","env.kind.declared":"External process manager (declared manually)","update.manualConfirmTitle":"Confirm before upgrading: manual launch suspected","update.manualConfirm":"No process manager detected. DSH will not restart automatically after the upgrade.","update.manualProceed":"Upgrade anyway","update.manualRestartTitle":"Upgrade finished — manual restart required","update.manualRestartBody":"The new version is installed, but the current process still runs the old one. Press Ctrl+C in the terminal running dsh (or simply close the window), then start dsh again.","restart.title":"Service restart","restart.description":"Restarts the dsh web process. Running work is interrupted; persisted sessions recover.","restart.button":"Restart dsh web","restart.sending":"Sending…","restart.confirm":"Confirm restart","restart.force":"Force restart","restart.cancel":"Cancel","restart.sent":"Restart request sent.","restart.sentHint":"The connection will close shortly. The page will reload automatically after recovery.","restart.idleHint":"No active work was detected. Confirm to disconnect and wait for the service to restart.","restart.manualWarn":"This looks like a manual terminal launch: once confirmed the process exits and nothing restarts it — you must run dsh again yourself.","restart.sentManualHint":"Manual start detected — the service will not relaunch itself. Rerun dsh in the original terminal, then refresh.","restart.navToggle":'Show "Restart" entry in settings left nav',"restart.navToggleHint":"Off by default; when enabled, a quick-restart entry appears at the bottom of the settings left navigation","activity.agent":"Agent","activity.job":"Background job","activity.terminal":"Terminal","activity.warning":"Detected {count} active items; restart interrupts them.","activity.item":"{type}: {label} ({status})","error.update":"Update check failed","error.activity":"Could not check active work","error.restart":"Restart failed","error.instance":"Restart response is missing the process instance ID","usage.title":"Model usage","usage.tooltip.date":"Date: {date}","usage.tooltip.input":"Input {value} token","usage.tooltip.output":"Output {value} token","usage.tooltip.cache":"Cache hit {value} token","usage.tooltip.total":"Total tokens {value}","usage.tooltip.steps":"Successful model steps {value}","usage.tooltip.hitRate":"Cache hit rate {value}","usage.axis":"token vertical axis","usage.models.more":"Show {count} more models","usage.models.less":"Collapse model list","usage.modelScope.today":"Today","usage.modelScope.week":"Last 7 days","usage.modelScope.all":"All time","usage.modelSortHint.today":"Sorted by tokens used today, largest first","usage.modelSortHint.week":"Sorted by tokens in the last 7 days, largest first","usage.modelSortHint.all":"Sorted by all-time tokens, largest first","usage.modelBar.today":"{model}: {total} tokens today","usage.modelBar.week":"{model}: {total} tokens in the last 7 days","usage.modelBar.all":"{model}: {total} tokens in total","usage.refresh":"Refresh usage","usage.refreshing":"Refreshing…","usage.empty":"No usage index yet. Select Refresh usage to build the read-only index.","usage.error":"Could not read model usage","usage.allProjects":"All projects","usage.chartSummary":"Total usage over seven days: {total} tokens","usage.barDay":"{day} total {total} tokens","usage.total":"Total tokens","usage.steps":"Successful model steps","usage.stepsValue":"{count} times","usage.modelLine":"{steps} times · Cache hit {hitRate} · Input {input} token · Output {output} token","usage.input":"Input token","usage.output":"Output token","usage.cache":"Cache token","usage.hitRate":"Cache hit rate","usage.today":"Today","usage.sevenDays":"Last 7 days","usage.heatmap.title":"Daily usage calendar","usage.heatmap.gridLabel":"Daily token usage heatmap calendar","usage.heatmap.cell":"{date}: {total} tokens · {steps} model steps","usage.heatmap.hourTitle":"Usage punch card (weekday × hour)","usage.heatmap.hourGridLabel":"Token usage punch card by weekday and hour","usage.heatmap.hourCell":"{weekday} {hour}:00: {total} tokens · {steps} model steps","usage.heatmap.scope.day":"Daily","usage.heatmap.scope.hour":"Hourly","usage.heatmap.less":"Less","usage.heatmap.more":"More","usage.errors.title":"Model errors","usage.errors.toggle":"Model errors ({count} types)","usage.errors.recent":"Last 48 hours","usage.errors.empty":"No model errors were recorded in the last 48 hours.","usage.toolErrors.title":"Tool errors","usage.toolErrors.toggle":"Tool errors ({count} types)","usage.toolErrors.empty":"No tool errors were recorded in the last 48 hours.","usage.errors.count":"{count} occurrence(s)","usage.failures.global":"Global session indexing (not affected by project filter): {successful} sessions indexed successfully, {failed} skipped.","usage.failures.staleHint":"Totals may include retained cached data from sessions that could not be read again; it may be stale.","usage.failures.show":"Show skipped session details","usage.failures.hide":"Hide skipped session details","usage.failures.id":"Session ID","usage.failures.code":"Error type","usage.failures.message":"Reason","usage.failures.stale":"Retained stale statistics (included in totals)","usage.failures.notStale":"No cached data, excluded from totals","usage.failures.reason.format-migration-failed":"Session format migration was refused.","usage.failures.reason.session-read-failed":"Session could not be opened or read.","usage.failures.reason.session-fold-failed":"Session events could not be indexed.","notification.title":"Notifications","notification.description":"Browser notifications when a root task finishes or approval/choice is needed; subagent completion stays silent.","notification.enable":"Enable notifications","notification.enabled":"Notifications enabled","notification.disable":"Disable notifications","notification.denied":"Notification permission denied","notification.master":"Master switch","notification.done":"Task completion","notification.input":"Approvals & questions","notification.doneTitle":"Task complete","notification.doneBody":"{title} has finished its turn","notification.inputTitle":"Your attention needed","notification.inputBody":"{title} — {kind}","notification.kind.approval":"approval requested","notification.kind.plan-review":"plan review requested","notification.kind.question":"answer requested","notification.bellOn":"Notifications on","notification.bellOff":"Notifications off","notification.bellShow":"Show composer bell icon","quota.cardTitle":"Quota lookup","quota.navToggle":'Show "Quota lookup" entry in settings left nav',"quota.navToggleHint":'When enabled, a "Quota lookup" entry appears at the bottom of the settings left navigation',"quota.window.rolling":"5h rolling","quota.window.tokens-limit-u3-n5":"5-hour tokens","quota.window.tokens-limit-u6-n1":"Weekly tokens","quota.window.tokens-limit":"Token quota","quota.window.time-limit-u5-n1":"MCP quota","quota.window.time-limit":"MCP quota","quota.window.credit-limit":"Credit quota","quota.window.credits":"Credits used","quota.window.balance":"Balance","quota.window.weekly":"This week","quota.window.monthly":"This month","quota.window.codex-5h":"5-hour","quota.window.codex-day":"Daily","quota.window.codex-week":"Weekly","quota.window.codex-month":"Monthly","quota.window.gemini-5h":"5-hour","quota.window.gemini-week":"Weekly","quota.window.claude-5h":"5-hour","quota.window.claude-week":"Weekly","quota.panel.title":"Quota usage","quota.resetCard.more":"{count} more","quota.resetCard.less":"Collapse","quota.panel.used":"Used","quota.panel.remaining":"Remaining","quota.ring.label":"Quota lookup","quota.gauge.baseline":"Baseline full","quota.gauge.calibrate":"Set current as full","quota.gauge.calibrateTip":"Set current balance {amount} as the 100% baseline","quota.gauge.ratio":"{percent}% remaining","quota.filter.showAll":"Show all quotas ({count})","quota.filter.currentOnly":"Current model only","quota.updated":"Updated {time}","quota.refreshing":"Refreshing…","quota.empty":"No data yet","quota.resetIn":"Resets in {time}","quota.window.stale":"cached","quota.window.staleTip":"Live query failed for this account; showing CPA's last cached snapshot (not realtime)","quota.family.gemini":"Gemini","quota.family.claude":"Claude","quota.family.codex":"Codex","quota.family.other":"Other","quota.resetCard.title":"Reset card","quota.resetCard.codexTitle":"Codex reset cards","quota.resetCard.expires":"expires {date}","quota.resetCard.expired":"expired","quota.resetCard.edit":"Add reset card","quota.advanced":"Configuration","quota.resetCard.dateLabel":"Expiry date","quota.resetCard.nameLabel":"Name (optional)","quota.resetCard.add":"Add","quota.resetCard.cancel":"Cancel","quota.resetCard.remove":"Remove","quota.retryAt":"Retry allowed after {time}","quota.refresh":"Refresh","quota.reorder":"Reorder & visibility","quota.order.title":"Quota card order & visibility","quota.order.hint":"Drag items or click the arrows to reorder; toggle off to hide cards you rarely need (hiding only affects display, not querying).","quota.order.allHidden":"All adapted cards are hidden; turn a toggle back on under “Reorder & visibility” to show them again.","quota.usageLink":"Open the official usage page","quota.adapt":"Adapt","quota.kind.opencode-go":"OpenCode Go","quota.kind.zai-coding-cn":"Zhipu GLM Coding Plan","quota.kind.openrouter":"OpenRouter","quota.kind.kimi":"Kimi / Moonshot","quota.kind.siliconflow":"SiliconFlow","quota.kind.cliproxy":"CLIProxyAPI accounts","quota.kind.deepseek":"DeepSeek Platform","quota.kind.stepfun":"StepFun Balance","quota.kind.stepfun-step-plan":"StepFun Step Plan","quota.kind.xiaomi-token-plan-cn":"Xiaomi MiMo Token Plan","quota.kind.command-goat":"Command Code account quota","quota.window.total_token":"Plan total quota","quota.window.compensation_total_token":"Compensation credits","quota.window.plan-name":"Subscription plan","quota.window.credit-pool":"Monthly credit pool","quota.window.topup-credit":"Top-up credit","quota.window.five-hour":"5-hour quota","quota.window.period-spend":"Spent this period","quota.error.no-subscription":"No active quota subscription on this account","quota.error.credential-rejected":"Credential rejected by upstream; enter it again (for console types, copy the browser session again)","quota.credential.editCookie":"Set console cookie (web session)","quota.credential.editToken":"Set console token (Oasis-Token, browser session)","quota.kindAuto":"Auto-detected","quota.noAdapted":"No adapted providers yet — adapt manually below","quota.disable":"Disable","quota.followAuto":"Follow auto-detect","quota.addAdapt":"Manual adapt:","quota.addPickProvider":"Pick provider","quota.addPickKind":"Pick type","quota.saveFailed":"Save failed: {error}","quota.unknownProvider":"Unknown provider","quota.error.credential-missing":"Credential missing (set the API key in DSH credentials)","quota.error.no-base-url":"This provider has no baseURL configured","quota.error.credentials-unavailable":"Credential service unavailable","quota.error.http-status":"Upstream returned an error status","quota.error.network":"Network error","quota.error.network-transient":"Unstable network (auto-retried)","quota.error.timeout":"Request timed out","quota.error.bad-payload":"Unexpected response format","quota.error.mgmt-disabled":"CLIProxyAPI management API disabled (remote-management secret-key not set)","quota.error.host-not-pinned":"baseURL differs from the domain recorded when adapting; save the adapter again","quota.error.upstream-status":"Upstream official API returned an error status","quota.error.upstream-error":"Upstream service error (quota API failed; retrying automatically)","quota.credential.edit":"Set API credential","quota.credential.editManagement":"Set management key (web login key)","quota.credential.nameLabel":"Credential name","quota.credential.valueLabel":"Secret value","quota.credential.save":"Save","quota.credential.primary":"primary (one alias is enough)","quota.credential.clear":"Clear stored","quota.credential.clearConfirm":"Click again to clear","quota.credential.configured":"configured","quota.credential.notConfigured":"not set","quota.credential.saveFailed":"Failed to save credential: {error}","quota.credential.unknown-hint":"Unknown credential name","quota.credential.invalid-value":"Secret value must not be empty","quota.credential.credentials-unavailable":"Credential service unavailable","quota.error.unknown":"Unknown error","quota.unadapted":"Not adapted: pick a provider kind below first","quota.unit.day":"{count} d","quota.unit.hour":"{count} h","quota.unit.minute":"{count} min","quota.window.granted-balance":"Granted balance (unexpired)","quota.peak.nowIdle":"Off-peak now · half price","quota.peak.nowPeak":"Peak now · standard price","quota.peak.untilIdle":"Half price from {time} (in {dur})","quota.peak.untilPeak":"Peak pricing from {time} (in {dur})","quota.peak.tag.peak":"Peak","quota.peak.tag.idle":"Off-peak","quota.peak.caption":"Off-peak price is half the peak price. Peak hours (GMT+8): Mon–Fri 09:00–12:00 and 14:00–18:00, excluding Chinese public holidays. All other times — including all day on weekends and Chinese public holidays — are off-peak.","quota.peak.caption.degraded":'The {year} Chinese public holiday schedule is not yet included; this year is estimated as "Mon–Fri 09:00–12:00 and 14:00–18:00", so holidays may still show as peak. Updating the plugin picks up the current year\'s schedule automatically.',"quota.peak.caption.zai":"Off-peak calls deduct 50% of the base credits. Peak hours: Mon–Fri 14:00–18:00 (UTC+8). All other times are off-peak, including all day Saturday and Sunday.","features.fileEditor":"Right-Sidebar file editing","features.modelProviderIcons":"Model provider icons","editor.viewer":"Edit","editor.loading":"Reading file…","editor.preview":"Preview","editor.save":"Save","editor.saving":"Saving…","editor.saved":"Saved","editor.unsaved":"Unsaved","editor.reload":"Reload","editor.undo":"Undo save","editor.keyHint":"Ctrl/Cmd + S to save","editor.conflict.title":"The file changed on disk; save rejected","editor.conflict.body":"Another change (an Agent or another window) overwrote this file after it was opened. Reload discards your edits; overwrite writes the current editor content to disk.","editor.conflict.reload":"Reload (discard edits)","editor.conflict.overwrite":"Overwrite with mine","editor.confirm.previewTitle":"Back to preview","editor.confirm.previewBody":"You have unsaved changes; going back to the preview discards them.","editor.confirm.saveBack":"Save & back","editor.confirm.discardBack":"Discard & back","editor.confirm.reloadTitle":"Reload","editor.confirm.reloadBody":"You have unsaved changes; reloading discards them and reads the current disk content.","editor.confirm.reloadGo":"Discard & reload","editor.confirm.undoTitle":"Undo save","editor.confirm.undoBody":"This restores the file to its content before the last save; unsaved changes are discarded as well.","editor.confirm.cancel":"Keep editing","editor.undoConflict.title":"Cannot undo automatically","editor.undoConflict.body":"The file changed on disk again after your save, so the previous content cannot be restored automatically; reload to see the current content.","editor.undoConflict.dismiss":"Dismiss","editor.readonlyHint":"Read-only","editor.retry":"Retry","editor.error.file-not-found":"The file does not exist (it may have been moved or deleted).","editor.error.not-regular-file":"This is not a regular file and cannot be edited.","editor.error.too-large":"The file exceeds {limit}; the right-Sidebar editor is read-only. Use another viewer.","editor.error.binary-file":"This is not a UTF-8 text file, so the right-Sidebar editor cannot edit it.","editor.error.session-not-live":"This session is not active right now, so it cannot be edited (switch to another viewer to read it).","editor.error.file-forbidden":"The sandbox policy of this session does not allow writing this file.","editor.error.unavailable":"The host file service is unavailable, so editing is not possible right now.","editor.error.invalid-address":"The file address is not recognized, so it cannot be edited.","editor.error.file-stale":"The file changed on disk; reload before saving again.","editor.error.file-failed":"Read or write failed. Please retry.","editor.error.feature-disabled":"“Right-Sidebar file editing” is turned off in the plugin configuration.","editor.error.internal":"The operation failed. Please retry."},W="%3Csvg xmlns=%27http://www.w3.org/2000/svg%27 width=%2724%27 height=%2724%27 viewBox=%270 0 24 24%27 fill=%27none%27 stroke=%27black%27 stroke-width=%272%27 stroke-linecap=%27round%27 stroke-linejoin=%27round%27%3E",j="%3C/svg%3E",B=e=>'-webkit-mask:url("data:image/svg+xml,'+W+e+j+'") center/contain no-repeat;mask:url("data:image/svg+xml,'+W+e+j+'") center/contain no-repeat',_={service:[["rect",{width:"20",height:"8",x:"2",y:"2",rx:"2"}],["rect",{width:"20",height:"8",x:"2",y:"14",rx:"2"}],["line",{x1:"6",x2:"6.01",y1:"6",y2:"6"}],["line",{x1:"6",x2:"6.01",y1:"18",y2:"18"}]],overview:[["rect",{x:"3",y:"3",width:"7",height:"9",rx:"1"}],["rect",{x:"14",y:"3",width:"7",height:"5",rx:"1"}],["rect",{x:"14",y:"12",width:"7",height:"9",rx:"1"}],["rect",{x:"3",y:"16",width:"7",height:"5",rx:"1"}]],notify:[["path",{d:"M10.268 21a2 2 0 0 0 3.464 0"}],["path",{d:"M16.8607 4.4824A6 6 0 0 0 6 8C6 12.499 4.589 13.956 3.262 15.326"}],["path",{d:"M3.262 15.326A1 1 0 0 0 4 17H20A1 1 0 0 0 20.74 15.327C20.209 14.779 19.665 14.218 19.203 13.454"}]],health:[["path",{d:"M20 13c0 5-3.5 7.5-7.66 8.95a1 1 0 0 1-.67-.01C7.5 20.5 4 18 4 13V6a1 1 0 0 1 1-1c2 0 4.5-1.2 6.24-2.72a1.17 1.17 0 0 1 1.52 0C14.51 3.81 17 5 19 5a1 1 0 0 1 1 1z"}],["path",{d:"m9 12 2 2 4-4"}]],usage:[["path",{d:"M3 3v16a2 2 0 0 0 2 2h16"}],["path",{d:"M18 17V9"}],["path",{d:"M13 17V5"}],["path",{d:"M8 17v-3"}]],quota:[["path",{d:"m12 14 4-4"}],["path",{d:"M3.34 19a10 10 0 1 1 17.32 0"}]],backup:[["rect",{x:"2",y:"3",width:"20",height:"5",rx:"1"}],["path",{d:"M4 8v11a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8"}],["path",{d:"M10 12h4"}]],skills:[["path",{d:"M4 19.5A2.5 2.5 0 0 1 6.5 17H20"}],["path",{d:"M6.5 2H20v20H6.5A2.5 2.5 0 0 1 4 19.5v-15A2.5 2.5 0 0 1 6.5 2z"}]],subagent:[["path",{d:"M12 8V4H8"}],["rect",{width:"16",height:"12",x:"4",y:"8",rx:"2"}],["path",{d:"M2 14h2"}],["path",{d:"M20 14h2"}],["path",{d:"M15 13v2"}],["path",{d:"M9 13v2"}]],sessions:[["path",{d:"M21 15a2 2 0 0 1-2 2H7l-4 4V5a2 2 0 0 1 2-2h14a2 2 0 0 1 2 2z"}],["path",{d:"m9 10 2 2 4-4"}]],restart:[["path",{d:"M12 2v10"}],["path",{d:"M18.4 6.6a9 9 0 1 1-12.77.04"}]],maintenance:[["path",{d:"M14.7 6.3a1 1 0 0 0 0 1.4l1.6 1.6a1 1 0 0 0 1.4 0l3.77-3.77a6 6 0 0 1-7.94 7.94l-6.91 6.91a2.12 2.12 0 0 1-3-3l6.91-6.91a6 6 0 0 1 7.94-7.94l-3.76 3.76z"}]],configuration:[["path",{d:"M20 7h-9"}],["path",{d:"M14 17H5"}],["circle",{cx:"17",cy:"17",r:"3"}],["circle",{cx:"7",cy:"7",r:"3"}]]},P=e=>e.map(([e,t])=>"%3C"+e+Object.entries(t).map(([e,t])=>` ${e}=%27${t}%27`).join("")+"/%3E").join(""),V=P(_.service),F=P(_.quota),U=P(_.restart),K=P(_.sessions);function G({name:e}){const t=_[e];return void 0===t?null:r.createElement("svg",{viewBox:"0 0 24 24",width:13,height:13,fill:"none",stroke:"currentColor",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":"true",style:{flexShrink:0,display:"block"}},t.map(([e,t],a)=>r.createElement(e,Object.assign({key:a},t))))}let Y=()=>{};function Q(e){if(!Array.isArray(e))return[];const t=[],a=new Map;for(const r of e){if(null===r||"object"!=typeof r)continue;const e="string"==typeof r.provider&&""!==r.provider?r.provider:void 0,n="string"==typeof r.model&&""!==r.model?r.model:void 0;if(void 0===e||void 0===n)continue;const s="string"==typeof r.reasoningEffort&&""!==r.reasoningEffort?r.reasoningEffort:void 0,i=e+"\0"+n+"\0"+(s??"");let o=a.get(i);void 0===o&&(o={provider:e,model:n,...void 0!==s?{reasoningEffort:s}:{},count:0},a.set(i,o),t.push(o)),o.count+=1}return t}function J(e){return(Array.isArray(e)?e:[]).map(e=>{if(null===e||"object"!=typeof e)return"";const t="string"==typeof e.provider?e.provider:"",a="string"==typeof e.model?e.model:"",r="string"==typeof e.reasoningEffort&&""!==e.reasoningEffort?e.reasoningEffort:void 0;return`${t}/${a}${void 0!==r?` (${r})`:""}${Number.isFinite(e.count)&&e.count>1?` ×${e.count}`:""}`}).filter(e=>""!==e).join(" · ")}function Z(e){if(!e||!1!==e.ok||"object"!=typeof e.error||null===e.error)return e;const t="string"==typeof e.error.details?.detail?e.error.details.detail:e.detail,a="string"==typeof e.error.message?e.error.message:e.error.code;return{...e,error:a||"unknown",...void 0!==t?{detail:t}:{}}}const X={minHeight:"var(--dsh-svc-control-h, 36px)",padding:"6px 14px",borderRadius:"var(--dsh-svc-radius-control)",border:"1px solid transparent",cursor:"pointer",fontSize:"13px",fontWeight:550,transition:"border-color 120ms ease, color 120ms ease, background 120ms ease",lineHeight:"20px"},ee=e=>"primary"===e?{...X,background:"var(--dsh-svc-brand)",borderColor:"var(--dsh-svc-brand)",color:"var(--dsh-svc-brand-text)"}:"danger"===e?{...X,background:"var(--dsh-svc-danger)",borderColor:"var(--dsh-svc-danger)",color:"var(--dsh-svc-brand-text)"}:"dangerGhost"===e?{...X,background:"transparent",color:"var(--dsh-svc-danger)",borderColor:"var(--dsh-svc-danger)"}:"brandGhost"===e?{...X,background:"transparent",color:"var(--dsh-svc-brand)",borderColor:"var(--dsh-svc-brand)"}:"ghost"===e?{...X,background:"transparent",color:"var(--dsh-svc-text)",borderColor:"var(--dsh-svc-border-strong)"}:"neutral"===e?{...X,background:"var(--dsh-svc-page-bg)",color:"var(--dsh-svc-text)",borderColor:"var(--dsh-svc-border-strong)"}:{...X,background:"var(--dsh-svc-content-bg)",color:"var(--dsh-svc-text)",borderColor:"var(--dsh-svc-border-strong)"},te=e=>Object.assign({},X,{background:"transparent",color:"var(--dsh-svc-text)",borderColor:"var(--dsh-svc-border-strong)",minHeight:"28px",padding:"4px 10px",fontSize:"12px",borderRadius:"var(--dsh-svc-radius-control)"},e),ae=(e,t)=>Object.assign({display:"inline-flex",alignItems:"center",flex:"none",fontSize:"10px",lineHeight:"16px",padding:"1px 6px",...I(999),whiteSpace:"nowrap",...{success:{background:"rgba(16,185,129,0.16)",color:"var(--dsh-svc-success)"},warning:{background:"rgba(198,128,0,0.14)",color:"var(--dsh-svc-warning)"},danger:{background:"rgba(220,38,38,0.12)",color:"var(--dsh-svc-danger)"},info:{background:"rgba(37,99,235,0.10)",color:"var(--dsh-svc-info)"},neutral:{background:"var(--dsh-svc-page-bg)",color:"var(--dsh-svc-text-muted)"}}[e]||{}},t),re=e=>Object.assign({background:"var(--dsh-svc-surface-bg)",color:"var(--dsh-svc-text)",border:"1px solid var(--dsh-svc-border)",borderRadius:"var(--dsh-svc-radius-control)",padding:"10px"},e),ne=e=>Object.assign({padding:"4px 0 14px",marginBottom:"12px",color:"var(--dsw-alias-label-primary)"},e);function se({ctx:e,rpcCall:t,t:a,useTranslation:n,restartNavToggle:s}){const{useState:i,useEffect:o}=r,l=new Set;let d={status:"idle",elapsedMs:0},c=0;const u=e=>{d=e;for(const t of l)t(e)},p=new Set;let m={stage:0,activity:null,busy:!1,error:null};const g=e=>{m=e;for(const t of p)t(e)},h=()=>{const[e,t]=i(m);return o(()=>(p.add(t),t(m),()=>p.delete(t)),[]),e},v=new Set;let f=null;const b=()=>{const[e,t]=i(f);return o(()=>(v.add(t),t(f),()=>v.delete(t)),[]),e},y=new Set;let x=null;let k=null;const w=()=>(null===k&&(k=t("version",{}).then(e=>(e&&e.ok&&((e=>{const t=e?e.runtimeEnv:void 0;null!==t&&"object"==typeof t&&"boolean"==typeof t.manualStartLikely&&(void 0!==t.supervisorKind&&null!==t.supervisorKind&&"string"!=typeof t.supervisorKind||(e=>{f=e;for(const t of v)t(e)})({platform:"string"==typeof t.platform?t.platform:"",supervisorKind:void 0===t.supervisorKind||null===t.supervisorKind?null:t.supervisorKind,manualStartLikely:t.manualStartLikely}))})(e.value),(e=>{const t=e?e.installedVersion:void 0,a="string"==typeof t&&t.length>0&&t.length<=64&&!/\s/.test(t)?t:null;a!==x&&(e=>{x=e;for(const t of y)t(e)})(a)})(e.value)),e)).catch(()=>(k=null,null))),k),E=()=>(k=null,w());let S=null;const q=async e=>{const t=await(!0===e?E():w()),a=t&&t.ok?t.value&&t.value.instanceId:void 0;"string"==typeof a&&0!==a.length&&(null!==S?a!==S&&window.location.reload():S=a)};let C=!1;const z=async()=>{g({...m,busy:!0,error:null});try{const e=await t("activity",{});if(e&&!1===e.ok)throw console.error("dsh-service: activity check failed",e.error),new Error(a("error.activity"));const r=e&&e.value?e.value:{hasActive:!1,items:[]};g({...m,activity:r,stage:r.hasActive?3:1,busy:!1,error:null})}catch(e){g({...m,error:e&&e.message?String(e.message):String(e),stage:0,busy:!1})}},A=async e=>{g({...m,busy:!0,error:null});try{const r=await t("web",{force:!0===e});if(r&&!1===r.ok){if("active-work"===r.error&&r.value)return void g({...m,activity:r.value,stage:3,busy:!1,error:null});throw console.error("dsh-service: restart failed",r.error),new Error(a("error.restart"))}const n=r&&r.value?r.value.instanceId:void 0;if("string"!=typeof n||0===n.length)throw new Error(a("error.instance"));g({...m,stage:2,busy:!1,error:null}),T(n).catch(e=>console.error("dsh-service: recovery failed",e))}catch(e){g({...m,error:e&&e.message?String(e.message):String(e),stage:0,busy:!1})}},T=async a=>{const r=++c;let n=0,s=1e3;for(u({status:"waiting",elapsedMs:n});n<6e4&&r===c;){const i=Math.min(s,6e4-n);try{await e.timer.timeout(i)}catch(e){return}if(r!==c)return;n+=i,u({status:"waiting",elapsedMs:n});try{const e=await t("version",{}),r=e&&e.ok?e.value&&e.value.instanceId:void 0;if("string"==typeof r&&r.length>0&&r!==a)return void window.location.reload()}catch(e){}if(n>=6e4)return void u({status:"timeout",elapsedMs:n});s=Math.min(2*s,1e4)}};e.effect(()=>()=>{c+=1,l.clear(),p.clear(),v.clear()},"dsh-service recovery"),e.effect(()=>{const t=e.on("connection/reset",()=>{q(!0).catch(()=>{})});return q(!1).catch(()=>{}),t},"dsh-service process identity");const M="@deepseek-ai/dsh",O=(e,t)=>"string"==typeof t&&0!==t.length&&/^[0-9A-Za-z.+_-]+$/.test(t)?`${e}${t}`:null,H=(e,t,a)=>{const n=`version-dsh-channel-${e}-${t}`;return a?r.createElement("a",{"data-testid":n,href:a,target:"_blank",rel:"noreferrer",style:{color:"var(--dsw-alias-brand-primary)",textDecoration:"underline",marginLeft:"10px"}},t):r.createElement("span",{"data-testid":n,style:{marginLeft:"10px"}},t)},R=(e,t,a)=>r.createElement("div",{style:{whiteSpace:"nowrap",lineHeight:1.7}},e("latest"===t?"update.channelStable":"next"===t?"update.channelPreview":"update.channelAlpha")," ",r.createElement("span",{"data-testid":`version-dsh-channel-${t}`,style:{marginLeft:"4px"}},a||"—"),H(t,"npmjs",O(`https://www.npmjs.com/package/${M}/v/`,a)),H(t,"npmmirror",O(`https://www.npmmirror.com/package/${M}/home?version=`,a))),D="0.1.6-alpha.3",N=e=>{if("string"!=typeof e)return null;const t=/^(\d+)\.(\d+)\.(\d+)(?:-([0-9A-Za-z.-]+))?$/.exec(e);return t?{major:Number(t[1]),minor:Number(t[2]),patch:Number(t[3]),pre:t[4]?t[4].split("."):null}:null},L=e=>/^\d+$/.test(e)?Number(e):e,$=(e,t)=>{const a=N(e),r=N(t);if(!a||!r)return null;for(const e of["major","minor","patch"])if(a[e]!==r[e])return a[e]<r[e]?-1:1;if(null===a.pre&&null===r.pre)return 0;if(null===a.pre)return 1;if(null===r.pre)return-1;const n=Math.min(a.pre.length,r.pre.length);for(let e=0;e<n;e+=1){const t=L(a.pre[e]),n=L(r.pre[e]);if(t!==n)return"number"==typeof t&&"number"==typeof n||"string"==typeof t&&"string"==typeof n?t<n?-1:1:"number"==typeof t?-1:1}return a.pre.length<r.pre.length?-1:a.pre.length===r.pre.length?0:1};function W(){const e=(()=>{const[e,t]=i(d);return o(()=>(l.add(t),t(d),()=>l.delete(t)),[]),e})(),t=n();if("idle"===e.status)return null;const a="timeout"===e.status;return r.createElement("div",{style:{position:"fixed",inset:0,zIndex:1e4,display:"flex",alignItems:"center",justifyContent:"center",padding:"24px",background:"rgba(12, 14, 20, 0.72)",backdropFilter:"blur(4px)",pointerEvents:"auto"}},r.createElement("div",{style:{width:"min(420px, 100%)",padding:"24px",borderRadius:"12px",background:"var(--dsw-alias-bg-overlay)",color:"var(--dsw-alias-label-primary)",border:"1px solid var(--dsw-alias-border-l2)",boxShadow:"0 18px 60px rgba(0,0,0,0.35)",textAlign:"center"}},r.createElement("div",{style:{fontSize:"18px",fontWeight:700,marginBottom:"10px"}},t(a?"recovery.timeout.title":"recovery.waiting.title")),r.createElement("p",{style:{margin:0,fontSize:"13px",lineHeight:1.7,color:"var(--dsw-alias-label-secondary)"}},a?t("recovery.timeout.body"):t("recovery.waiting.body",{seconds:Math.floor(e.elapsedMs/1e3)})),a?r.createElement("button",{style:Object.assign({},te(),{marginTop:"16px",padding:"7px 16px"}),onClick:()=>window.location.reload()},t("recovery.manual")):null))}return{DSH_NOT_SUPPORTED_FROM:D,RestartOverlay:function(){return r.createElement(W,null)},RestartSection:function({showNavToggle:e}){const t=n(),a=h(),i=b();o(()=>{w()},[]);const[l,d]=s.useEnabled(),c=ee("danger"),u=ee("dangerGhost"),p=ee("ghost"),v={color:"var(--dsw-alias-label-secondary)",fontSize:"12px",marginTop:"8px",lineHeight:1.5},f=ne(),y=re(),x={fontSize:"14px",fontWeight:700,margin:"0 0 8px",color:"var(--dsw-alias-label-primary)"};if(2===a.stage)return r.createElement("div",{"data-testid":"restart-card",style:f},r.createElement("div",{style:x},t("restart.title")),r.createElement("p",{style:{margin:0,fontSize:"13px"}},t("restart.sent")),r.createElement("p",{style:v},t(null!==i&&!0===i.manualStartLikely?"restart.sentManualHint":"restart.sentHint")));const k={agent:t("activity.agent"),job:t("activity.job"),terminal:t("activity.terminal")},E=a.activity&&Array.isArray(a.activity.items)?a.activity.items:[],S=null!==i&&!0===i.manualStartLikely?r.createElement("p",{"data-testid":"restart-manual-warn",style:Object.assign({},v,{color:"var(--dsw-alias-state-warn-primary)",margin:"6px 0 0"})},t("restart.manualWarn")):null,q=3===a.stage?r.createElement("div",{style:{marginTop:"12px",padding:"10px 12px",borderRadius:"6px",background:"rgba(211,51,51,0.1)",border:"1px solid rgba(211,51,51,0.35)"}},r.createElement("p",{style:{margin:"0 0 8px",color:"var(--dsw-alias-state-error-primary)",fontSize:"13px",fontWeight:600}},t("activity.warning",{count:E.length})),r.createElement("ul",{style:{margin:0,paddingLeft:"20px",fontSize:"12px",lineHeight:1.7}},E.map(e=>r.createElement("li",{key:e.type+":"+e.id},t("activity.item",{type:k[e.type]||e.type,label:e.label,status:e.status}))))):null;return r.createElement("div",{"data-testid":"restart-card",style:f},r.createElement("div",{style:x},t("restart.title")),r.createElement("div",{"data-testid":"restart-region",style:y},r.createElement("p",{style:{margin:0,fontSize:"13px"}},t("restart.description")),S,q,r.createElement("div",{style:{display:"flex",alignItems:"center",gap:"8px",marginTop:"12px",flexWrap:"wrap"}},0===a.stage?r.createElement("button",{style:u,"data-variant":"dangerGhost",onClick:z,disabled:a.busy},t(a.busy?"update.checking":"restart.button")):1===a.stage?[r.createElement("button",{key:"confirm",style:c,"data-variant":"danger",onClick:()=>A(!1),disabled:a.busy},t(a.busy?"restart.sending":"restart.confirm")),r.createElement("button",{key:"cancel",style:p,onClick:()=>g({...m,activity:null,stage:0,busy:!1,error:null}),disabled:a.busy},t("restart.cancel"))]:3===a.stage?[r.createElement("button",{key:"force",style:c,"data-variant":"danger",onClick:()=>A(!0),disabled:a.busy},t(a.busy?"restart.sending":"restart.force")),r.createElement("button",{key:"cancel",style:p,onClick:()=>g({...m,activity:null,stage:0,busy:!1,error:null}),disabled:a.busy},t("restart.cancel"))]:null),1===a.stage?r.createElement("p",{style:v},t("restart.idleHint")):null,a.error?r.createElement("p",{style:Object.assign({},v,{color:"var(--dsw-alias-state-error-primary)"})},String(a.error)):null,e?r.createElement("div",{style:{marginTop:"12px",paddingTop:"10px",borderTop:"1px solid var(--dsw-alias-border-l1)",display:"flex",alignItems:"center",justifyContent:"space-between",gap:"12px"}},r.createElement("div",{style:{display:"flex",flexDirection:"column",gap:"2px"}},r.createElement("span",{style:{fontSize:"13px",color:"var(--dsw-alias-label-primary)"}},t("restart.navToggle")),r.createElement("span",{style:v},t("restart.navToggleHint"))),r.createElement("button",{type:"button",role:"switch","data-testid":"restart-nav-switch","aria-checked":String(l),onClick:()=>d(!l),style:{width:"34px",height:"20px",...I("10px"),padding:0,flexShrink:0,position:"relative",border:"1px solid "+(l?"var(--dsw-alias-state-success-primary)":"var(--dsw-alias-border-l2)"),background:l?"var(--dsw-alias-state-success-primary)":"var(--dsw-alias-bg-layer-2)",cursor:"pointer",lineHeight:0}},r.createElement("span",{style:{position:"absolute",top:"1px",left:l?"15px":"1px",width:"16px",height:"16px",...I("50%"),background:l?"#fff":"var(--dsw-alias-label-tertiary)"}}))):null))},channelLines:(e,t)=>r.createElement("div",{style:{margin:"4px 0",fontSize:"12px",lineHeight:1.7,color:"var(--dsw-alias-label-secondary)",display:"flex",flexDirection:"column",gap:"6px"}},R(e,"latest",t&&t.latest),R(e,"next",t&&t.next),...t&&Object.prototype.hasOwnProperty.call(t,"alpha")?[R(e,"alpha",t.alpha)]:[]),compareSemver:$,fetchVersionSnapshot:w,isDshUnsupported:e=>{const t=$(e,D);return null!==t&&t>=0},refreshVersionSnapshot:E,startRecovery:T,useInstalledVersion:()=>{const[e,t]=i(x);return o(()=>(y.add(t),t(x),()=>y.delete(t)),[]),e},useRestartFlow:h,useRuntimeEnv:b,isUpgradeInFlight:()=>C,setUpgradeInFlight:e=>{C=e},getRuntimeEnvState:()=>f}}function ie({ctx:e,t,featureEnabled:a,createConversationNav:r}){const n={active:!1,mq:null,mqHandler:null,frameObserver:null,mountObserver:null,workspaceObserver:null,errorHandler:null,resizeHandler:null,styleTag:null,backdrop:null,fab:null,debugChip:null,debugEnabled:!1,errorCount:0,drawerOpen:!1,detailsOpen:!1,rightbarOpen:!1,workspaceOpen:!1,edgeGesture:null,edgeTelemetry:null,lastFabDisplay:null,lastBackdropDisplay:null,immersive:!1,repinTimer:null,repinAnchor:null,repinToBottom:!1,chatAvailable:!1,chatScrollLastY:null,gestureAt:0,immersiveAcc:0,immersiveLockDir:null,zoneArmed:null,arrivalDone:!1,lastRevealReason:null,headerEl:null,headerRO:null},s=r(),i=()=>{try{return"function"==typeof e.get?e.get("layout"):void 0}catch(e){return}},o=()=>{if(n.detailsOpen){const e=i();if(void 0!==e)try{e.closeDetails()}catch(e){}n.detailsOpen=!1}const e=n.drawerOpen||n.workspaceOpen||n.rightbarOpen?"none":"flex";null!==n.fab&&n.lastFabDisplay!==e&&(n.lastFabDisplay=e,n.fab.style.display=e);const t=n.drawerOpen?"block":"none";null!==n.backdrop&&n.lastBackdropDisplay!==t&&(n.lastBackdropDisplay=t,n.backdrop.style.display=t),n.debugEnabled&&null!==n.debugChip&&V()};let l=!1;const d=()=>{const e=document.querySelector("[data-dshsvc-frame]");n.drawerOpen=null!==e&&!e.hasAttribute("data-sidebar-collapsed"),n.rightbarOpen=C();const t=i(),a=void 0!==t&&"function"==typeof t.openRightbar||n.rightbarOpen;n.detailsOpen=!a&&null!==e&&!e.hasAttribute("data-details-collapsed"),n.workspaceOpen=!1;try{for(const e of document.querySelectorAll('[class*="nArs4W_panel"]')){const t="string"==typeof e.className?e.className:"";if(/nArs4W_panelHidden/.test(t))continue;const a=e.getBoundingClientRect();if(a.width>0&&a.left<window.innerWidth-2&&"hidden"!==getComputedStyle(e).visibility){n.workspaceOpen=!0;break}}}catch(e){n.workspaceOpen=!1}y()},c=e=>{const t=document.documentElement.style;(e=>"function"==typeof e.setProperty)(t)&&t.setProperty("--dshsvc-header-h",`${Math.max(0,Math.round(e))}px`)},u=()=>{let e=null;try{e=document.querySelector("[data-conversation-scroll]")}catch(e){return null}if(null===e||!1===e.isConnected)return null;let t=e.parentNode;if(null===t||t===document.documentElement)return null;let a=null;try{a=t.getAttribute("data-phase")}catch(e){}let r=t;for(let e=0;null===a&&e<2&&(r=null==r?null:r.parentNode,null!==r&&r!==document.documentElement);e+=1){try{a=r.getAttribute("data-phase")}catch(e){break}null!==a&&(t=r)}return{scroller:e,rootEl:t,phase:a}},p=(e,t)=>{if(t<=0||null===e||void 0===e.children||null===e.children)return null;for(const a of e.children||[]){if("HEADER"===("string"==typeof a.tagName?a.tagName.toUpperCase():""))return a;const e=p(a,t-1);if(null!==e)return e}return null},m=(e,t)=>{let a=t;for(;null!=a;){if(a===e)return!0;a=a.parentNode}return!1},g=()=>{n.repinTimer=null;const e=n.repinAnchor,t=n.repinToBottom;n.repinAnchor=null,n.repinToBottom=!1;const a=u();if(null!==a&&null!==a.scroller)try{const r=Number(a.scroller.scrollTop),n=Number(a.scroller.scrollHeight),s=Number(a.scroller.clientHeight);if(!Number.isFinite(r)||!Number.isFinite(n)||!Number.isFinite(s))return;const i=Math.max(0,n-s);if(t){if(i-r>80)return;return void(a.scroller.scrollTop=i)}if(null===e)return;if(r<e-4)return;a.scroller.scrollTop=i}catch(e){}},h=(e,t=!1)=>{v(),n.repinAnchor=e,n.repinToBottom=t;try{n.repinTimer=setTimeout(g,260)}catch(e){g()}},v=()=>{if(n.repinAnchor=null,n.repinToBottom=!1,null!==n.repinTimer){try{clearTimeout(n.repinTimer)}catch(e){}n.repinTimer=null}},f=(e,t=null)=>{if(n.active&&n.chatAvailable||(e=!1),n.immersive===e)return;const a=!e&&(()=>{const e=u();if(null===e||null===e.scroller)return!1;try{const t=Number(e.scroller.scrollTop),a=Number(e.scroller.scrollHeight),r=Number(e.scroller.clientHeight);return!!(Number.isFinite(t)&&Number.isFinite(a)&&Number.isFinite(r))&&a-r-t<=80}catch(e){return!1}})()?Number((u()||{}).scroller?.scrollTop):null,r=null!==a&&Number.isFinite(a);n.immersive=e,e||null===t||(n.lastRevealReason=t);const s=document.documentElement;try{e?s.setAttribute("data-dshsvc-immersive",""):s.removeAttribute("data-dshsvc-immersive")}catch(e){}e?v():r&&h(a),n.debugEnabled&&V()},b=()=>{n.chatScrollLastY=null,n.immersiveAcc=0,n.immersiveLockDir=null,n.zoneArmed=null,n.arrivalDone=!1,f(!1)},y=()=>{const e=u();let t=!1;if(null!==e&&"active"===e.phase){(e=>{const t=null!==e?e.rootEl:null;if(null===t||void 0===t.children)return n.headerEl;if(null!==n.headerEl&&n.headerEl.isConnected){try{n.headerEl.setAttribute("data-dshsvc-chat-header","")}catch(e){}return n.headerEl}let a=null;for(const e of t.children||[])if("HEADER"===("string"==typeof e.tagName?e.tagName.toUpperCase():"")){a=e;break}if(null===a)for(const e of t.children||[]){const t=p(e,3);if(null!==t){a=t;break}}null!==a&&(a.setAttribute("data-dshsvc-chat-header",""),n.headerEl=a,(e=>{if("function"==typeof ResizeObserver&&(null===n.headerRO||n.headerRO.__el!==e)){if(null!==n.headerRO)try{n.headerRO.disconnect()}catch(e){}try{const t=new ResizeObserver(()=>{try{const t=e.offsetHeight;"number"==typeof t&&t>0&&c(t)}catch(e){}});t.__el=e,t.observe(e),n.headerRO=t;const a=e.offsetHeight;"number"==typeof a&&a>0&&c(a)}catch(e){n.headerRO=null}}})(a))})(e);const a=(()=>{try{return document.querySelector("[data-composer-seat]")}catch(e){return null}})();if(null!==a&&m(e.scroller,a)){let a=NaN,r=NaN,n=NaN;try{a=Number(e.scroller.scrollTop),r=Number(e.scroller.scrollHeight),n=Number(e.scroller.clientHeight)}catch(e){}t=Number.isFinite(a)&&Number.isFinite(r)&&Number.isFinite(n)&&r-n>24}}n.chatAvailable=t,t||b()},x=e=>{if(!n.active||!n.chatAvailable)return;let t=NaN,a=NaN,r=NaN;try{t=Number(e.scrollTop),a=Number(e.scrollHeight),r=Number(e.clientHeight)}catch(e){return}if(!Number.isFinite(t)||!Number.isFinite(a)||!Number.isFinite(r))return;const s=null===n.chatScrollLastY?t:n.chatScrollLastY,i=t-s;if(n.chatScrollLastY=t,!(()=>{const e=Date.now();return n.gestureAt>0&&e-n.gestureAt<=800})()||Math.abs(i)>200)return void(n.immersiveAcc=0);if(n.immersive&&i<0&&s+r>=a-1)return n.immersiveAcc=0,n.immersiveLockDir=-1,void f(!1,"gesture");const o=t+r>=a-80;if(null===n.zoneArmed&&(n.zoneArmed=o),!1===n.zoneArmed&&o&&!n.arrivalDone&&n.immersive&&i>0)return n.arrivalDone=!0,n.immersiveAcc=0,n.immersiveLockDir=1,void f(!1,"arrival");const l=Math.sign(i);if(0!==l&&null!==n.immersiveLockDir){if(l!==-n.immersiveLockDir)return void(n.immersiveAcc=0);n.immersiveLockDir=null}(n.immersiveAcc>0&&i<0||n.immersiveAcc<0&&i>0)&&(n.immersiveAcc=0),n.immersiveAcc+=i,n.immersiveAcc>240?n.immersiveAcc=240:n.immersiveAcc<-240&&(n.immersiveAcc=-240),n.immersiveAcc>=64?(n.immersiveAcc=0,n.immersiveLockDir=1,f(!0)):n.immersiveAcc<=-24&&(n.immersiveAcc=0,n.immersiveLockDir=-1,f(!1,"gesture"))},k=()=>{n.gestureAt=Date.now(),n.immersiveLockDir=null,n.zoneArmed=null,n.arrivalDone=!1},w=e=>{try{const t=null!=e&&void 0!==e.touches&&null!==e.touches&&e.touches.length>0?e.touches:null!=e?e.changedTouches:null;if(null==t||0===t.length)return null;const a=Number(t[0].clientX),r=Number(t[0].clientY);return Number.isFinite(a)&&Number.isFinite(r)?{x:a,y:r}:null}catch(e){return null}},E=()=>{try{const e=document.querySelector("[data-dshsvc-frame]");return null===e||e.hasAttribute("data-sidebar-collapsed")}catch(e){return!0}},S=()=>{try{return"function"==typeof e.get?e.get("sidebarRight"):void 0}catch(e){return}},q=()=>{try{if(null!==document.querySelector("[data-sidebar-right-expand], [data-sidebar-right-toggle], [data-sidebar-right-panel]"))return!0}catch(e){}const e=S();return void 0!==e&&"function"==typeof e.toggleExpanded&&void 0!==e.active()},C=()=>{if(!q())return!1;const e=S();if(void 0!==e&&"function"==typeof e.isExpanded)try{const t=e.isExpanded();if("boolean"==typeof t)return t}catch(e){}try{if(null!==document.querySelector("[data-sidebar-right-open]"))return!0}catch(e){}try{if(null!==document.querySelector("[data-sidebar-right-expand]"))return!1}catch(e){}try{const e=document.querySelector("[data-dshsvc-frame]");if(null!==e&&!e.hasAttribute("data-rightbar-collapsed"))return!0}catch(e){}return!1},z=e=>{try{let t=e;for(let e=0;null!=t&&e<8;e+=1){if(t===document.body||t===document.documentElement)return!1;if("number"==typeof t.scrollWidth&&"number"==typeof t.clientWidth&&t.scrollWidth>t.clientWidth+1){if("function"!=typeof getComputedStyle)return!0;const e=getComputedStyle(t),a=null!=e?String(e.overflowX||""):"";if("auto"===a||"scroll"===a||"overlay"===a)return!0}t=t.parentNode}}catch(e){}return!1},A="open",T="left-close",M="right-close",I="left-open",O="right-open",H="multi-touch",R="modal",D="h-scroll",N="no-point",L="right-absent",$="toggle-unavailable",W="no-tracker",j={left:{opened:()=>!E(),toggle:()=>{const e=i();if(void 0===e)return!1;try{return e.toggleSidebar(),!0}catch(e){return!1}}},right:{opened:()=>C(),toggle:e=>(e=>{try{const t=e?document.querySelector("[data-sidebar-right-expand]"):document.querySelector("[data-sidebar-right-open] [data-sidebar-right-toggle]")||(C()?document.querySelector("[data-sidebar-right-toggle]"):null);if(null!==t&&"function"==typeof t.click)return t.click(),!0}catch(e){}const t=S();if(void 0!==t&&"function"==typeof t.toggleExpanded)try{if("function"!=typeof t.isExpanded||t.isExpanded()!==e)return t.toggleExpanded(),!0}catch(e){}const a=i();if(void 0!==a)try{if(e&&"function"==typeof a.openRightbar)return a.openRightbar(!1,!0),!0;if(!e&&"function"==typeof a.closeRightbar)return a.closeRightbar(),!0}catch(e){}return!1})(e)}},B=(e,t,a)=>{if(null===e||e.fired||null===t)return!1;const r=t.x-e.startX,s=t.y-e.startY;if(Math.abs(s)>Math.abs(r)&&Math.abs(s)>12)return n.edgeGesture=null,!1;let i=null,o=!1,l=null;if(e.kind===A){if(r>=a)i="left",o=!0,l=I;else if(r<=-a&&(i="right",o=!0,l=O,!q()))return null!==n.edgeTelemetry&&(n.edgeTelemetry.reason=L),!0}else e.kind===T?r<=-a&&(i="left",l=T):e.kind===M&&r>=a&&(i="right",l=M);if(null===i)return!1;const d=((e,t)=>{const a=j[e];return void 0!==a&&a.opened()!==t&&!0===a.toggle(t)})(i,o);return e.fired=!0,null!==n.edgeTelemetry&&(n.edgeTelemetry.fired=d,n.edgeTelemetry.kind=l,d||l!==O||(n.edgeTelemetry.reason=$)),!0},_=[["scroll",e=>{if(!n.active)return;let t=e&&e.target;for(let e=0;null!=t&&e<6;e+=1){if("function"==typeof t.hasAttribute)try{if(t.hasAttribute("data-conversation-scroll"))return void x(t)}catch(e){}t=t.parentNode}},{capture:!0,passive:!0}],["touchstart",k,{capture:!0,passive:!0}],["touchmove",k,{capture:!0,passive:!0}],["touchstart",e=>{if(!n.active)return;n.edgeGesture=null;const t=n.debugEnabled?{start:"—",kind:"—",moves:0,last:"—",cancel:"—",fired:!1}:null;n.edgeTelemetry=t;try{if(null!=e&&void 0!==e.touches&&null!==e.touches&&e.touches.length>1)return void(null!==t&&(t.kind=H))}catch(e){}if((()=>{try{return null!==document.querySelector('[role="dialog"][aria-modal="true"]')}catch(e){return!1}})())return void(null!==t&&(t.kind=R));const a=w(e);if(null===a)return void(null!==t&&(t.kind=N));null!==t&&(t.start=`${Math.round(a.x)},${Math.round(a.y)}`);const r=!E(),s=q()&&C();if(r||s)return z(e?.target)?void(null!==t&&(t.kind=D)):(n.edgeGesture={kind:r?T:M,edge:null,startX:a.x,startY:a.y,at:Date.now(),fired:!1},void(null!==t&&(t.kind=r?T:M)));if(z(e?.target))return void(null!==t&&(t.kind=D));const i=Number(window.innerWidth);let o=null;a.x<=32?o="left":Number.isFinite(i)&&a.x>=i-32&&(o="right"),n.edgeGesture={kind:A,edge:o,startX:a.x,startY:a.y,at:Date.now(),fired:!1},null!==t&&(t.kind="left"===o?I:"right"===o?O:A),n.debugEnabled&&V()},{capture:!0,passive:!0}],["touchmove",e=>{const t=n.edgeGesture;if(null===t||t.fired)return;try{if(null!=e&&void 0!==e.touches&&null!==e.touches&&e.touches.length>1)return n.edgeGesture=null,null!==n.edgeTelemetry&&(n.edgeTelemetry.reason=H),void(n.debugEnabled&&V())}catch(e){}const a=w(e),r=n.edgeTelemetry;null!==r&&null!==a&&(r.moves+=1,r.last=`${Math.round(a.x-t.startX)},${Math.round(a.y-t.startY)}`);const s=B(t,a,56);n.debugEnabled&&s&&V()},{capture:!0,passive:!0}],["touchend",e=>{const t=n.edgeGesture;if(null===t||t.fired)return void(n.edgeGesture=null);const a="open"===t.kind&&null!==t.edge,r=a?w(e):null;a&&null!==r&&Date.now()-t.at<=260&&B(t,r,32),n.edgeGesture=null,n.debugEnabled&&t.fired&&V()},{capture:!0,passive:!0}],["touchcancel",e=>{const t=n.edgeGesture,a=n.edgeTelemetry;if(null===t)return null!==a&&(a.cancel=W),void(n.debugEnabled&&V());const r="open"===t.kind&&null!==t.edge,s=w(e);null!==a&&null!==s&&(a.cancel=`${Math.round(s.x-t.startX)},${Math.round(s.y-t.startY)}`),r&&B(t,s,6),n.edgeGesture=null,n.debugEnabled&&V()},{capture:!0,passive:!0}],["wheel",k,{capture:!0,passive:!0}],["focusin",e=>{if(!n.active)return;let t=null;try{t=document.querySelector("[data-composer-seat]")}catch(e){return}null!==t&&m(t,e?.target)&&(n.immersiveAcc=0,n.immersive&&f(!1,"focus"))},{capture:!0}],["click",e=>{n.active&&n.chatAvailable&&n.immersive&&s.isToBottomButton(e&&e.target)&&(n.immersiveAcc=0,n.immersiveLockDir=1,f(!1,"button"),h(null,!0))},{capture:!0}]];let P=!1;const V=()=>{const e=n.debugChip;if(null===e)return;const a=e=>t(e?"mobile.debug.stateOn":"mobile.debug.stateOff"),r=[[`${t("mobile.debug.viewport")} ${window.innerWidth}×${window.innerHeight}`,`≤1023 ${a(n.active)}`,`${t("mobile.debug.drawer")} ${a(n.drawerOpen)}`,`${t("mobile.debug.details")} ${a(n.detailsOpen)}`,`${t("mobile.debug.rightbar")} ${a(n.rightbarOpen)}`,`${t("mobile.debug.immersive")} ${a(n.immersive)}`+(null===n.lastRevealReason?"":`(${s=n.lastRevealReason,"gesture"===s?t("mobile.debug.immersive.reason.gesture"):"arrival"===s?t("mobile.debug.immersive.reason.arrival"):"focus"===s?t("mobile.debug.immersive.reason.focus"):"button"===s?t("mobile.debug.immersive.reason.button"):s})`),`${t("mobile.debug.errors")} ${n.errorCount}`].join(" · ")];var s;const i=e=>e===I?t("mobile.debug.edge.leftOpen"):e===O?t("mobile.debug.edge.rightOpen"):e===T?t("mobile.debug.edge.leftClose"):e===M?t("mobile.debug.edge.rightClose"):e===A?t("mobile.debug.edge.open"):e===H?t("mobile.debug.edge.reason.multiTouch"):e===R?t("mobile.debug.edge.reason.modal"):e===D?t("mobile.debug.edge.reason.hScroll"):e===N?t("mobile.debug.edge.reason.noPoint"):e===L?t("mobile.debug.edge.reason.absentRight"):e===$?t("mobile.debug.edge.reason.badButton"):e===W?t("mobile.debug.edge.reason.noTracker"):e,o=n.edgeTelemetry;if(null!==o&&void 0!==o.start){let e=`${t("mobile.debug.edge")} ${t("mobile.debug.edge.fieldStart")}(${o.start}) ${i(o.kind)} ${t("mobile.debug.edge.fieldMoves")}${o.moves} ${t("mobile.debug.edge.fieldLast")}(${o.last}) ${t("mobile.debug.edge.fieldCancel")}(${i(o.cancel)})`;void 0!==o.reason&&(e+=` ${t("mobile.debug.edge.fieldReason")}(${i(o.reason)})`),o.fired&&(e+=" ✓"),r.push(e)}e.textContent=r.join("\n")},F=()=>{if(null!==n.fab)return!0;if(!(()=>{const e=document.querySelector("[data-shell-overlay]"),t=null!==e?e.parentNode:null;if(null===t||t===document.documentElement)return!1;t.setAttribute("data-dshsvc-frame","");let a=!1,r=!1,n=!1,s=!1;for(const e of t.children){const t="string"==typeof e.className?e.className:"";!a&&/sidebarCol/.test(t)?(e.setAttribute("data-dshsvc-sidebar",""),a=!0):!r&&/centerCol/.test(t)?(e.setAttribute("data-dshsvc-center",""),r=!0):!n&&/detailsCol/.test(t)?(e.setAttribute("data-dshsvc-details",""),n=!0):!s&&/rightbarCol/.test(t)&&(e.setAttribute("data-dshsvc-rightbar",""),s=!0)}return!0})())return!1;n.backdrop=document.createElement("div"),n.backdrop.setAttribute("data-dshsvc-backdrop",""),n.backdrop.setAttribute("aria-hidden","true"),Object.assign(n.backdrop.style,{position:"fixed",inset:"0",zIndex:"31",display:"none",background:"rgba(0,0,0,.42)",backdropFilter:"blur(1px)"}),n.backdrop.addEventListener("click",()=>{const e=i();void 0!==e&&n.drawerOpen&&e.toggleSidebar()}),document.body.appendChild(n.backdrop),n.fab=document.createElement("button"),n.fab.type="button",n.fab.setAttribute("data-dshsvc-fab",""),n.fab.setAttribute("aria-label",t("mobile.fab.label")),Object.assign(n.fab.style,{position:"fixed",left:"calc(env(safe-area-inset-left, 0px) + 10px)",top:"calc(env(safe-area-inset-top, 0px) + 12px)",width:"32px",height:"32px",borderRadius:"16px",zIndex:"33",display:"flex",alignItems:"center",justifyContent:"center",border:"none",background:"transparent",color:"var(--dsw-alias-label-primary)",padding:"0",cursor:"pointer",touchAction:"manipulation"}),n.fab.innerHTML='<svg width="18" height="18" viewBox="0 0 16 16" fill="none" aria-hidden="true"><rect x="1.75" y="2.75" width="12.5" height="10.5" rx="2" stroke="currentColor" stroke-width="1.5"/><line x1="6.25" y1="3.5" x2="6.25" y2="12.5" stroke="currentColor" stroke-width="1.5"/></svg>',n.fab.addEventListener("click",()=>{const e=i();void 0!==e&&e.toggleSidebar()}),document.body.appendChild(n.fab),d();try{n.workspaceObserver=new MutationObserver(()=>{(()=>{if(!l&&n.active){l=!0,setTimeout(()=>{if(l=!1,n.active)try{d(),o()}catch(e){}},50);for(const e of[400,900])setTimeout(()=>{if(n.active)try{d(),o()}catch(e){}},e)}})()}),n.workspaceObserver.observe(document.body,{attributes:!0,childList:!0,subtree:!0})}catch(e){n.workspaceObserver=null}n.frameObserver=new MutationObserver(()=>{d(),o()});const e=document.querySelector("[data-dshsvc-frame]");return null!==e&&n.frameObserver.observe(e,{attributes:!0,attributeFilter:["data-sidebar-collapsed","data-details-collapsed","data-rightbar-collapsed"]}),null!==n.mountObserver&&(n.mountObserver.disconnect(),n.mountObserver=null),o(),!0},U=()=>{if(!n.active)return;if(n.active=!1,n.drawerOpen=!1,n.detailsOpen=!1,n.rightbarOpen=!1,n.edgeGesture=null,n.edgeTelemetry=null,(()=>{if(P){P=!1;for(const[e,t,a]of _)try{document.documentElement.removeEventListener(e,t,a)}catch(e){}}})(),document.documentElement.removeAttribute("data-dshsvc-mobile"),document.documentElement.removeAttribute("data-dshsvc-immersive"),null!==n.headerRO){try{n.headerRO.disconnect()}catch(e){}n.headerRO=null}n.headerEl=null,null!==n.frameObserver&&(n.frameObserver.disconnect(),n.frameObserver=null),null!==n.workspaceObserver&&(n.workspaceObserver.disconnect(),n.workspaceObserver=null),null!==n.mountObserver&&(n.mountObserver.disconnect(),n.mountObserver=null),null!==n.errorHandler&&window.removeEventListener("error",n.errorHandler),null!==n.resizeHandler&&window.removeEventListener("resize",n.resizeHandler),n.errorHandler=null,n.resizeHandler=null;for(const e of[n.styleTag,n.backdrop,n.fab,n.debugChip])null!==e&&e.isConnected&&e.remove();for(const e of document.querySelectorAll("[data-dshsvc-frame],[data-dshsvc-sidebar],[data-dshsvc-center],[data-dshsvc-details],[data-dshsvc-rightbar],[data-dshsvc-chat-header]"))e.removeAttribute("data-dshsvc-frame"),e.removeAttribute("data-dshsvc-sidebar"),e.removeAttribute("data-dshsvc-center"),e.removeAttribute("data-dshsvc-details"),e.removeAttribute("data-dshsvc-rightbar"),e.removeAttribute("data-dshsvc-chat-header");const e=(()=>{try{return document.documentElement.style}catch(e){return null}})();if(null!==e)try{e.removeProperty("--dshsvc-header-h")}catch(t){e["--dshsvc-header-h"]=""}n.styleTag=null,n.backdrop=null,n.fab=null,v(),n.debugChip=null,n.debugEnabled=!1,b()},K=()=>{a("mobileAdaptation")&&n.mmqMatches()?(()=>{if(n.active)return;if(void 0===i())return;n.active=!0,document.documentElement.setAttribute("data-dshsvc-mobile",""),(()=>{for(const e of document.querySelectorAll('meta[name="viewport"]')){const t=e.getAttribute("content")||"";/(^|,)\s*viewport-fit\s*=/.test(t)||e.setAttribute("content",""===t.trim()?"viewport-fit=cover":t.trim()+", viewport-fit=cover")}})(),n.styleTag=document.createElement("style"),n.styleTag.dataset.plugin="@gehennawu/dsh-service",n.styleTag.dataset.pluginCss="@gehennawu/dsh-service/mobile.css",n.styleTag.textContent='\n/* 侧栏/详情列改 absolute 后会退出 grid 排版流,中列会被自动放置进第 1 轨\n (0px)而整屏变黑 —— 三列必须用 grid-column 显式钉位,绝不依赖子元素顺序。 */\nhtml[data-dshsvc-mobile] [data-dshsvc-frame] { grid-template-columns: 0px minmax(0, 1fr) 0px !important; }\n/* 0.1.5+ 右栏列(rightbarCol):官方右栏自有窄屏语义(<768 开=浮层全屏 portal 到\n body,闭=0 轨),第三轨改 auto 让官方宽度生效——钉 0px 会把 push 态面板挤没。\n :has 特异性高于上一条,天然覆盖;旧宿主无 rightbar 标记时仍走 0px 模板。 */\nhtml[data-dshsvc-mobile] [data-dshsvc-frame]:has([data-dshsvc-rightbar]) { grid-template-columns: 0px minmax(0, 1fr) auto !important; }\nhtml[data-dshsvc-mobile] [data-dshsvc-sidebar] { grid-column: 1 !important; grid-row: 1 !important; }\nhtml[data-dshsvc-mobile] [data-dshsvc-center] { grid-column: 2 !important; grid-row: 1 !important; }\nhtml[data-dshsvc-mobile] [data-dshsvc-details] { grid-column: 3 !important; grid-row: 1 !important; }\nhtml[data-dshsvc-mobile] [data-dshsvc-rightbar] { grid-column: 3 !important; grid-row: 1 !important; }\n/* 侧栏/详情列 → overlay 抽屉。两条铁律:\n ① 隐藏禁用 transform —— 设置模态(未 portal)长在本列子树里,\n transform 会成为其 fixed 定位的包含块;\n ② 离屏偏移必须用 vw 长度而非百分比 —— 这些列带显式 grid-column 钉位\n (修中列黑屏所需),绝对定位子项的包含块会变成那格 grid area(0px 宽),\n 百分比对 0 取值全变 0,元素被超约束解算推回屏内盖住会话。 */\nhtml[data-dshsvc-mobile] [data-dshsvc-sidebar] {\n position: absolute !important;\n top: 0 !important;\n bottom: 0 !important;\n left: calc(-100vw - 24px) !important;\n /* 外壳 sidebar slot 的原生展开内容固定 280px;外层也必须同宽,否则右侧\n 会露出一条只有 sidebarCol 背景、没有内容的空带。窄于 280px 时按视口裁切。 */\n width: min(100vw, 280px) !important;\n border-right: none !important;\n z-index: 32;\n transition: left var(--ds-transition-duration-slow, .25s) var(--ds-ease-in-out, ease);\n}\nhtml[data-dshsvc-mobile] [data-dshsvc-frame]:not([data-sidebar-collapsed]) [data-dshsvc-sidebar] {\n left: 0 !important;\n box-shadow: 8px 0 32px rgba(0, 0, 0, .22);\n}\n/* 详情列(预览/文件树)→ 移动端永久离屏。官方 computeColumns 在窄视口恒为\n 0 宽(原生手机本就不显示该列),抽屉化只会用空态盖住会话且关闭路径\n 与 backdrop/抽屉状态纠缠(真机反馈)。引擎在激活与属性观察时会自愈式\n closeDetails(),保证 store 也是干净的关闭态。 */\nhtml[data-dshsvc-mobile] [data-dshsvc-details] {\n position: absolute !important;\n top: 0 !important;\n bottom: 0 !important;\n right: calc(-100vw - 24px) !important;\n width: min(92vw, 420px) !important;\n z-index: 30;\n}\n/* 模态 → 全屏面板:外壳 portal 根是 fixed inset:0 flex 容器(无 transform,\n 无 containing-block 陷阱),dialog 改 absolute 四边拉满即可。\n 真机反馈:底部 sheet 顶部留空难看 → 顶部贴顶、圆角归零;\n 刘海/home 条遮挡由 dialog 自身 env() padding 补回。 */\nhtml[data-dshsvc-mobile] div[role="presentation"]:has(> [role="dialog"][aria-modal="true"]) {\n padding: 0 !important;\n}\nhtml[data-dshsvc-mobile] [role="dialog"][aria-modal="true"] {\n position: absolute !important;\n top: 0 !important;\n right: 0 !important;\n bottom: 0 !important;\n left: 0 !important;\n margin: 0 !important;\n width: 100% !important;\n max-width: none !important;\n max-height: none !important;\n height: 100% !important;\n border-radius: 0 !important;\n overflow: hidden auto !important;\n flex-direction: column !important;\n padding-top: env(safe-area-inset-top, 0px) !important;\n padding-bottom: env(safe-area-inset-bottom, 0px) !important;\n}\n/* 插件市场(dshmarket)在 ≤560px 媒体查询里把设置导航 display:none 藏掉\n 独占面板(其自有 CSS:[role=dialog]:has([data-dsh-market-root])>nav),\n 手机上会把用户困在市场分区 —— 用更高优先级把横滑标签条顶回来。 */\nhtml[data-dshsvc-mobile] [role="dialog"]:has([data-dsh-market-root]) > nav { display: flex !important; }\n/* 设置页标签条:nav 从 188px 竖列变顶部横滑条(宽度与列向必须显式推翻)。\n 右侧留 52px 给钉到角落的关闭钮。 */\nhtml[data-dshsvc-mobile] [role="dialog"] nav {\n flex-direction: row !important;\n align-items: center !important;\n gap: 6px !important;\n width: auto !important;\n flex: none !important;\n padding: 8px 52px 0 12px !important;\n overflow-x: auto !important;\n overflow-y: hidden !important;\n border-right: none !important;\n border-bottom: 1px solid var(--dsw-alias-border-l2);\n}\nhtml[data-dshsvc-mobile] [role="dialog"] nav > div { flex: none !important; }\nhtml[data-dshsvc-mobile] [role="dialog"] [class*="navList"] { flex-direction: row !important; }\nhtml[data-dshsvc-mobile] [role="dialog"] [class*="navCell"] { white-space: nowrap !important; flex: none !important; }\n/* 关闭钮钉到设置页右上角并压到面板顶层(原生在内容区头行、导航条下方,\n 会被横滑条/内容重叠遮挡——用户点名要顶层);加不透明圆形底衬保证任何\n 内容上都可辨识,底衬与钮同节点、随之置顶。类哈希 VOzbGW_ 取自\n dsh-client-ui-settings-general SettingsRoot.module.css(rc.2),升级需复核 */\nhtml[data-dshsvc-mobile] [role="dialog"][aria-modal="true"] [class*="VOzbGW_close"] {\n position: absolute !important;\n top: calc(env(safe-area-inset-top, 0px) + 9px) !important;\n right: 10px !important;\n z-index: 60;\n background-color: var(--dsw-specific-menu, var(--dsw-alias-bg-layer-1)) !important;\n border: 1px solid var(--dsw-alias-border-l2) !important;\n border-radius: 999px !important;\n corner-shape: round !important;\n box-shadow: var(--dsw-shadow-lv2, 0 4px 12px rgba(0, 0, 0, .12)) !important;\n}\n/* 设置内容列利用率:手机全屏后内容仍被\n 宿主 options 24px → 插件看板卡 12px → 汇总小卡 10px 的多层内边距套娃收窄\n (单侧 ~46px、约一成屏宽)。只收紧间距不动物料:options 是宿主滚动容器、\n 全分区生效(24→14);看板/图表卡按 testid 收紧;汇总行禁折行——label/value\n 两个 span 在窄卡会被 flex 按比例收缩成 40~70px 盒子导致短标签折行\n (2026-09-18 真机 360/390px 实测),nowrap 后装不下时值列省略兜底。 */\nhtml[data-dshsvc-mobile] [class*="VOzbGW_options"] { padding: 0 14px 18px !important; }\nhtml[data-dshsvc-mobile] [data-testid="usage-statistics-region"] { padding: 8px !important; }\nhtml[data-dshsvc-mobile] [data-testid="usage-chart"] { padding: 8px 8px 2px !important; }\nhtml[data-dshsvc-mobile] [data-testid^="usage-summary-"] { column-gap: 8px !important; }\nhtml[data-dshsvc-mobile] [data-testid^="usage-summary-"] > span { white-space: nowrap !important; }\nhtml[data-dshsvc-mobile] [data-testid^="usage-summary-"] > span:last-child {\n min-width: 0 !important;\n overflow: hidden !important;\n text-overflow: ellipsis !important;\n}\n/* 设置/任意模态打开时藏抽屉钮:抽屉列自带 z-index:32 层叠上下文会把模态的\n z1000 封顶在 32,body 级 z33 的钮反而浮在设置页上(真机实测)。:has 不支持时\n 退化为旧行为(钮仍显示),无副作用。 */\nhtml[data-dshsvc-mobile] body:has([role="dialog"][aria-modal="true"]) [data-dshsvc-fab] {\n display: none !important;\n}\n/* composer 底行单行紧凑:外壳原生 flex-wrap:wrap 在窄屏把图标/模型名折成两行。\n 收紧间距 + 禁换行 + 最宽触发钮限宽省略。类哈希 uV2eYG_/Sh0Q9G_/pXSMma_ 取自\n dsh-client-ui-conversation composer(rc.2,0.1.6-alpha.1 漂移至 JObwrW_ 并存),升级需复核。 */\nhtml[data-dshsvc-mobile] [class*="uV2eYG_row"] {\n flex-wrap: nowrap !important;\n column-gap: 4px !important;\n padding-left: 10px !important;\n padding-right: 10px !important;\n}\nhtml[data-dshsvc-mobile] [class*="uV2eYG_row"] > * { min-width: 0 !important; }\nhtml[data-dshsvc-mobile] [class*="uV2eYG_tools"],\nhtml[data-dshsvc-mobile] [class*="uV2eYG_modes"],\nhtml[data-dshsvc-mobile] [class*="uV2eYG_trailing"] { gap: 6px !important; min-width: 0 !important; }\nhtml[data-dshsvc-mobile] [class*="uV2eYG_trailing"] { margin-left: auto !important; }\nhtml[data-dshsvc-mobile] [class*="Sh0Q9G_trigger"],\nhtml[data-dshsvc-mobile] [class*="JObwrW_trigger"] { max-width: 38vw !important; }\nhtml[data-dshsvc-mobile] [class*="pXSMma_workspace"] { max-width: 30vw !important; }\n/* 模型选择按钮收成图标(用户点名,2026-09-15):官方 ModelSelect 只在容器\n ≤360px 时把 triggerLabel/triggerEffort 换成 triggerIcon,而查询容器正是上面\n 这条底行——本插件移动端把中列拉满、收回官方 56px sidebar rail,428~440px\n 机型的行内容盒达 368~378px,官方规则永不触发,手机上常显模型名。这里显式\n 按官方窄容器形态收成图标(唯一被藏起来的是「名称」这一处视觉信息:官方\n trigger 自带含模型名的 aria-label,读屏照旧)。\n 媒体查询门是必需的:移动端适配覆盖 ≤1023px,481px 以上行内足够宽,官方\n 语义本就是「放得下就显示名称」;480 = 官方等效临界视口(360 + 56 rail +\n 32 clearance + 16 row padding ≈ 464~474)的安全上界。类哈希 _7KE1Ra_ 取自\n dsh-client-ui-model-selection ModelSelect.module.css(rc.2),升级需复核。 */\n@media (max-width: 480px) {\n html[data-dshsvc-mobile] [class*="_7KE1Ra_triggerIcon"] { display: block !important; }\n html[data-dshsvc-mobile] [class*="_7KE1Ra_triggerLabel"],\n html[data-dshsvc-mobile] [class*="_7KE1Ra_triggerEffort"] { display: none !important; }\n}\n/* 工作区侧板(fixed z25 层内的 nArs4W_panel z40)开屏后会盖住它自己的外部\n 开关钮(tab bar 行 nArs4W_toggleButton)——手机上抽屉一开就再没有任何\n 可点的关闭入口(真机反馈「关不上」本体)。把开关钮提到面板之上,\n 恢复「同一颗钮开/关」语义。 */\nhtml[data-dshsvc-mobile] [class*="nArs4W_toggleButton"] {\n position: relative !important;\n z-index: 45 !important;\n}\n/* 会话底部统计条(composer 下方两枚统计:轮/步/tok/s | tok/缓存命中):\n 官方这条行自带左右各 32px 内边距 + 12px 列间距,手机上先吃掉 76px;两枚 pill\n 完整显示需 ~380px,于是官方让它们各自收缩、把每枚的文字截断(0.1.5-rc.2 的\n 截断落在每枚 pill 自己的 bOPqQW_label 上)。用户点名(2026-09-15):「不要换行,\n 保持一行、把空间利用最大化」。\n 修法:只收紧这条行自身的内边距/间距,两枚 pill 按需分宽、共占满整行——始终一行,\n 装得下时零截断(≥~420px 视口),装不下时按比例各让一点(比官方的固定截断少一个\n 数量级),不换行、不横向滚动。\n 旧宿主(0.1.2-alpha.2 ~ 0.1.4)的单行横滑规则(NDN2W_root)原样保留。 */\n/* 统计条与外部上下文圆环的单行布局:\n 0.1.6 官方把上下文圆环(JObwrW_root / JObwrW_trigger)移入输入框外部下方的\n uV2eYG_dock,与统计胶囊(bOPqQW_root)并列,挤占了移动端可用宽度。\n 修法:\n ① 收紧 uV2eYG_root 两侧内边距至 8px,uV2eYG_dock 间距收至 3px;换行保持开启——\n 圆环与统计胶囊共占第一行,插件的子代理累计行(flex-basis:100%,见 apply.js svcStyle)\n 独占第二行,官方条目之间仍不换行;\n ② 降低统计条与上下文圆环字号至 11px(≤375px 极窄视口阶梯降至 10px),行高 16px;\n ③ 收紧 pill 内边距、sep 间隔及 svg 尺寸(11px),上下文圆环内边距收至 1px 3px;\n 保证从 360px 起所有移动端视口下统计与上下文圆环均零截断、单行排开。\n 旧宿主(0.1.2-alpha.2 ~ 0.1.4)的单行横滑规则(NDN2W_root)原样保留。 */\nhtml[data-dshsvc-mobile] [class*="uV2eYG_root"] {\n padding-left: 8px !important;\n padding-right: 8px !important;\n}\nhtml[data-dshsvc-mobile] [class*="uV2eYG_dock"] {\n gap: 0 3px !important;\n max-width: 100% !important;\n flex-wrap: wrap !important;\n justify-content: center !important;\n}\nhtml[data-dshsvc-mobile] [class*="NDN2W_root"] {\n overflow-x: auto !important;\n overflow-y: hidden !important;\n text-overflow: clip !important;\n -webkit-overflow-scrolling: touch;\n scrollbar-width: none !important;\n}\nhtml[data-dshsvc-mobile] [class*="NDN2W_root"]::-webkit-scrollbar { display: none !important; }\nhtml[data-dshsvc-mobile] [class*="bOPqQW_root"] {\n flex-wrap: nowrap !important;\n padding-left: 2px !important;\n padding-right: 2px !important;\n column-gap: 3px !important;\n font-size: 11px !important;\n line-height: 16px !important;\n}\nhtml[data-dshsvc-mobile] [class*="bOPqQW_root"] > * { flex: 1 1 auto !important; min-width: 0 !important; }\nhtml[data-dshsvc-mobile] [class*="bOPqQW_pill"] {\n min-width: 0 !important;\n padding-left: 2px !important;\n padding-right: 2px !important;\n gap: 2px !important;\n font-size: 11px !important;\n line-height: 16px !important;\n}\nhtml[data-dshsvc-mobile] [class*="bOPqQW_pill"] svg {\n width: 11px !important;\n height: 11px !important;\n flex: none !important;\n}\nhtml[data-dshsvc-mobile] [class*="bOPqQW_sep"] {\n margin: 0 1px !important;\n}\nhtml[data-dshsvc-mobile] [class*="bOPqQW_label"] {\n overflow: hidden !important;\n text-overflow: ellipsis !important;\n white-space: nowrap !important;\n}\nhtml[data-dshsvc-mobile] [class*="JObwrW_root"] {\n flex: none !important;\n min-width: 0 !important;\n}\nhtml[data-dshsvc-mobile] [class*="JObwrW_trigger"] {\n font-size: 11px !important;\n line-height: 16px !important;\n padding: 1px 3px !important;\n gap: 2px !important;\n}\nhtml[data-dshsvc-mobile] [class*="JObwrW_trigger"] svg {\n width: 11px !important;\n height: 11px !important;\n flex: none !important;\n}\nhtml[data-dshsvc-mobile] [data-dsh-service-subagent-models-dock] {\n font-size: 11px !important;\n line-height: 16px !important;\n padding: 1px 2px !important;\n}\n@media (max-width: 375px) {\n html[data-dshsvc-mobile] [class*="bOPqQW_root"],\n html[data-dshsvc-mobile] [class*="bOPqQW_pill"],\n html[data-dshsvc-mobile] [class*="JObwrW_trigger"],\n html[data-dshsvc-mobile] [data-dsh-service-subagent-models-dock] {\n font-size: 10px !important;\n }\n}\n/* Assistant 回合尾部的运行元信息行(MessageIconActions)使用官方目录属性\n data-chat-flow-kind="turn-tail" 定位,内层兜底走回合尾节点自带的稳定\n data-turn-tail(0.1.2-alpha.2 起 data-time-hover-root 已删除):\n 「带 data-turn-tail 的节点」的最后一个子项 = actions 行,其最后一个 span =\n end-clock 时间文本(bundle 源码核实:clock:"end" 渲染在 children 末位)。\n 行容器 min-width:0、时间文本可收缩并省略,以免移动端时间信息把复制/分支\n 按钮挤出可视区域。 */\nhtml[data-dshsvc-mobile] [data-chat-flow-kind="turn-tail"] [data-turn-tail] > :last-child {\n min-width: 0 !important;\n max-width: 100% !important;\n}\nhtml[data-dshsvc-mobile] [data-chat-flow-kind="turn-tail"] [data-turn-tail] > :last-child > span:last-child {\n flex: 1 1 auto !important;\n min-width: 0 !important;\n white-space: nowrap !important;\n overflow: hidden !important;\n text-overflow: ellipsis !important;\n padding-inline: 2px !important;\n}\n/* 回到底部按钮簇(官方 *_toBottom 词干后缀,rc.2 Md3f7G_ → 0.1.2-alpha.2 EvIC1a_,\n 自有上箭头 data-dshsvc-user-jump):\n 移动端右侧还有约一行留白(scroll 的 --dsh-composer-side-clearance 侧清理),\n 纯位移右移贴边(transform 只动绘制不动布局,sticky 定位不受影响)。\n :not([class*="Slot"]) 排除命名含 Slot 的 sticky 槽层,只移按钮本体。\n 方向:正 translateX 向右;位移量 = 侧清理 +16(scroll 右 padding)再留 4px 缓冲。 */\nhtml[data-dshsvc-mobile] [class*="_toBottom"]:not([class*="Slot"]),\nhtml[data-dshsvc-mobile] [data-dshsvc-user-jump] {\n transform: translateX(calc(var(--dsh-composer-side-clearance, 16px) + 16px - 4px)) !important;\n}\n/* 左上角抽屉钮:悬停/按压用外壳交互底色;会话头部预留按钮位防遮面包屑 */\nhtml[data-dshsvc-mobile] [data-dshsvc-fab]:hover,\nhtml[data-dshsvc-mobile] [data-dshsvc-fab]:active { background: var(--dsw-alias-interactive-bg-hover) !important; }\nhtml[data-dshsvc-mobile] [data-dshsvc-frame] > :nth-child(2) header { padding: 10px 20px 0 46px !important; }\n/* 会话顶栏移动端适配:\n titleRow 里 标题crumb / 「N 个子代理」计数芯片 / 预设芯片(创造模式)互相挤压——\n 官方 crumbs 自带 overflow:hidden,放不下的尾部被**硬裁**:计数芯片拦腰截断\n (真机 390px 实测裁掉 49px,视觉即「1 个子代…」),标题缩到 ~119px。\n 只收紧固定几何 + 改收缩优先级,不重挂 DOM、不藏任何信息:\n ① 头部右内边距 28→20:corner 钮自带 margin-right:-16px 悬出,20 仍留 4px 边距;\n ② 更多操作钮的 utilities 左距 20→4(blank 空头部该层 :empty 隐藏,不受影响);\n ③ titleCluster 列距 10→6;\n ④ 计数组(分隔符+计数触发钮)列距 10→4,并 flex:none 不可挤压——标题按钮\n 自带 overflow:hidden + ellipsis(min-content=0)天生是收缩担当,让省出的\n 宽度全部归标题;计数文案与触发钮 aria-label(「N 个子代理」)原样保留。\n :not(:has(switcherTrigger)) 守卫带 lineage 切换器的根(其内部自有\n min-width:0 收缩链,钉死会溢出);:has 不支持时整条失效,退回官方行为。\n 类哈希 wSkVaW_ 取自 dsh-client-ui-conversation ConversationRoot.module.css、\n ZKlsPq_ 取自 dsh-client-ui-subagent SubagentHeaderLineage.module.css\n (均 0.1.6-alpha.2),升级需复核。 */\nhtml[data-dshsvc-mobile] [class*="wSkVaW_headerUtilities"] { margin-left: 4px !important; }\nhtml[data-dshsvc-mobile] [class*="wSkVaW_titleCluster"] { gap: 6px !important; }\nhtml[data-dshsvc-mobile] [class*="ZKlsPq_root"] { gap: 4px !important; }\nhtml[data-dshsvc-mobile] [class*="ZKlsPq_root"]:not(:has([class*="ZKlsPq_switcherTrigger"])) { flex: none !important; }\n/* 动作芯片泊位 v2(模式回标题行,子代理+任务下标签行\n 右锚成对;官方标签行没有第三方挂载点,泊位=自有 CSS absolute 定位):\n · 标签行官方 gap 36→20,标签内容尾 ≈126px;\n · 任务芯片(QsffPG_root,运行中带箭头自然宽 ~151.5px)right:106 —— 右侧 90px\n 让给子代理芯片(带箭头 81.5~87.5px,「1~99 个」,间隔 8.5~2.5px),右锚成\n 「[任务][子代理]」两枚一排(第三方插件将来若也泊到此带,右缘 16px 起排不受影响);\n max-width calc(100vw − 240px) 封顶(右距 106 + 标签尾 126 + 8 缓冲),\n ≤360 档计数文字按省略优雅降级(320 档省 ~71px)、绝不压到对话/轨迹;\n · 子代理芯片(ZKlsPq_root)right:16 最贴右;泊离标题后分隔符「/」失去对象,隐藏;\n · 计数文字 nowrap+ellipsis 可省;下拉箭头保留,320~360 档文字省略加深,\n 但开合指示不丢;\n · 两枚芯片的下拉菜单(锚在各自 root 上 top:100%+5、left:0)改右锚展开并按\n 视口封顶(max-width 100vw−122 = 任务右距 106 + 16 边距),否则贴右泊位时\n 336px 菜单会越出屏幕(390 档实测左越 46px);\n · 预设芯片(SVAs4q_label)不再泊动——随官方 headerActions 留在标题行\n (「模式=会话身份」与标题同级),第三方动作芯片同样留官方原位不受泊位管辖;\n 子代理计数离开 crumbs 后标题吃满整行(390 档 198px);\n · ≤560 门:561~1023 行宽足够(标题 ≥115px),保持官方在流。blank 空头部\n :not 守卫不泊。类哈希 QsffPG_ 取自 dsh-client-ui-jobs JobListAction.module.css\n (0.1.6-alpha.2),升级需复核。 */\n@media (max-width: 560px) {\n html[data-dshsvc-mobile] [data-dshsvc-frame] > :nth-child(2) header:not([class*="wSkVaW_headerBlank"]) { position: relative !important; }\n html[data-dshsvc-mobile] [class*="wSkVaW_tabs"] { gap: 20px !important; }\n html[data-dshsvc-mobile] [class*="QsffPG_root"],\n html[data-dshsvc-mobile] [class*="ZKlsPq_root"]:not(:has([class*="ZKlsPq_switcherTrigger"])) {\n position: absolute !important;\n bottom: 4px !important;\n z-index: 2;\n }\n html[data-dshsvc-mobile] [class*="QsffPG_root"] {\n right: 106px !important;\n max-width: calc(100vw - 240px) !important;\n }\n html[data-dshsvc-mobile] [class*="ZKlsPq_root"]:not(:has([class*="ZKlsPq_switcherTrigger"])) {\n right: 16px !important;\n }\n /* 分隔符/箭头/收缩只作用于已泊出的子代理根;带 lineage 切换器而留在\n crumbs 里的根(:has 守卫排除的那支)保持官方形态不受影响。 */\n html[data-dshsvc-mobile] [class*="ZKlsPq_root"]:not(:has([class*="ZKlsPq_switcherTrigger"])) [class*="ZKlsPq_separator"] { display: none !important; }\n html[data-dshsvc-mobile] [class*="QsffPG_trigger"],\n html[data-dshsvc-mobile] [class*="ZKlsPq_root"]:not(:has([class*="ZKlsPq_switcherTrigger"])) [class*="ZKlsPq_trigger"] { min-width: 0 !important; max-width: 100% !important; }\n html[data-dshsvc-mobile] [class*="QsffPG_trigger"] > svg:last-child,\n html[data-dshsvc-mobile] [class*="ZKlsPq_root"]:not(:has([class*="ZKlsPq_switcherTrigger"])) [class*="ZKlsPq_trigger"] > svg:last-child { flex: none !important; }\n html[data-dshsvc-mobile] [class*="QsffPG_count"] {\n min-width: 0 !important;\n flex: 0 1 auto !important;\n margin: 0 2px !important;\n white-space: nowrap !important;\n overflow: hidden !important;\n text-overflow: ellipsis !important;\n }\n html[data-dshsvc-mobile] [class*="QsffPG_menu"],\n html[data-dshsvc-mobile] [class*="ZKlsPq_menu"] {\n left: auto !important;\n right: 0 !important;\n max-width: calc(100vw - 122px) !important;\n }\n /* 预设芯片右靠:margin-left:auto 把 crumbs 与\n 动作组之间的全部富余收到中间——标题贴左、模式芯片贴住更多钮(间距 4px),\n 标题长短变化时芯片位置稳定不飘。 */\n html[data-dshsvc-mobile] header:not([class*="wSkVaW_headerBlank"]) [class*="wSkVaW_headerActions"] { margin-left: auto !important; }\n}\n/* Agent Team 弹窗右锚:修复移动端面板右侧超出视口。\n 面板 = 官方 @deepseek-ai/dsh-experimental-client-ui-agent-team 的 TeamAction,\n 注册在 conversation.session.header.actions(与任务/子代理芯片同槽)。它自己的\n CSS 是 position:absolute; left:0; top:calc(100% + 5px);\n width:min(560px,100vw - 32px)——**左锚在触发钮左缘**,而该槽位在移动端位于\n 头部右侧(右锚泊位之外),面板便整体右移越屏:真机实测 320~560px 越出\n 112~352px、768/1023 越出 198/140px(面板右缘 = 触发钮左缘 + 面板宽)。\n\n 修法(三条规则,均基于稳定属性而非类哈希):\n ① 面板的包含块要落在**头部**而不是触发钮:会话头部在 ≥561px 官方为 static,\n 而 .root{position:relative} 会让面板锚在触发钮上 → 引擎已打的\n data-dshsvc-chat-header 上补 position:relative(≤560 档泊位组已设过,\n 这里把覆盖面扩到整个移动端,幂等),再把 TeamAction 根改 static 把\n 包含块让给头部;\n ② 面板本身改右锚:left:auto + right:16px,与它自带的\n 100vw − 32px 宽度公式(两侧各 16px)对称,并补 max-width 封顶以防\n 官方改宽。桌面 ≥1024 引擎拆卸、标记与属性同时下线 → 官方几何逐字不变。\n\n 选右锚而非 fixed:沉浸态头部带 transform(translateY(-100%)),被变换的\n 祖先会成为 fixed 后代的包含块——本文件顶部记载的 containing-block 陷阱;\n 真机实测 fixed 变体在沉浸态随头部一起位移(top 84→-68),与 absolute 无异,\n 却另外硬编码了一份纵向几何。右锚复用头部包含块,两者行为一致且不写死 top。 */\nhtml[data-dshsvc-mobile] [data-dshsvc-chat-header] { position: relative !important; }\nhtml[data-dshsvc-mobile] [data-team-action] { position: static !important; }\nhtml[data-dshsvc-mobile] [data-team-action] [role="dialog"] {\n left: auto !important;\n right: 16px !important;\n max-width: calc(100vw - 32px) !important;\n}\n/* 刘海安全区:viewport-fit=cover 后由 env() 补回遮挡区 */\nhtml[data-dshsvc-mobile] body {\n padding-top: env(safe-area-inset-top, 0px);\n padding-bottom: env(safe-area-inset-bottom, 0px);\n box-sizing: border-box;\n}\n/* 双击缩放与 iOS 聚焦放大 */\nhtml[data-dshsvc-mobile] button,\nhtml[data-dshsvc-mobile] a,\nhtml[data-dshsvc-mobile] [role="button"],\nhtml[data-dshsvc-mobile] input,\nhtml[data-dshsvc-mobile] textarea,\nhtml[data-dshsvc-mobile] select { touch-action: manipulation; }\nhtml[data-dshsvc-mobile] input:not([type="checkbox"]):not([type="radio"]):not([type="button"]):not([type="submit"]):not([type="reset"]),\nhtml[data-dshsvc-mobile] textarea { font-size: max(16px, 1em) !important; }\n/* composer 防挤压:真机反馈后迭代。0.1.5-rc.2 起外壳已无含 "toolbar"/"inputTriggers"\n 的类名(活页面命中 0,2026-09-15 死规则审计),两条泛化规则删除;只留仍命中的\n "composer"(composerSeat 等)——min-width:0 + max-width:100% 防子项撑破容器。 */\nhtml[data-dshsvc-mobile] [class*="composer" i] { min-width: 0 !important; max-width: 100% !important; }\n/* —— 滑动沉浸(v0.36;2026-09-15 几何返工)——\n 原先用 transform: translateY(115%) 把 composer 座滑出视口:**变换后的视觉溢出会被\n 计入滚动容器的可滚动区域**(实测 +147px),于是「沉浸态滑到底」时内容被抬高、底部露出\n 291px 空带(用户反馈「对话框和输出空一大段」);回显时这 147px 又消失,滚动位置随之\n 错位、最后一段被输入框压住(用户反馈「输出跑到对话框下面去了」)。\n 现改为沉浸时把该座**移出文档流**(让出 128px 占位、内容真正铺满整屏)+ 淡出:既不加\n 可滚动溢出,也不改 --dsh-composer-height(ResizeObserver 仍读到座高,外壳的浮钮偏移\n 与贴底锚定不受影响)。回显侧因占位收回会改变可滚动长度,由 setImmersive 做「贴底补偿」。 */\nhtml[data-dshsvc-mobile] [data-composer-seat] {\n transition: opacity var(--ds-transition-duration-slow, .25s) var(--ds-ease-in-out, ease) !important;\n}\nhtml[data-dshsvc-mobile][data-dshsvc-immersive] [data-composer-seat] {\n position: absolute !important;\n left: 0 !important;\n right: 0 !important;\n bottom: 0 !important;\n opacity: 0 !important;\n visibility: hidden !important;\n pointer-events: none !important;\n}\n/* 会话头部(面包屑+视图标签)在滚动体外面,藏在根列里:translateY(-100%) 上滑出\n data-phase=active 根的 overflow:hidden 裁剪区,负 margin-top 用引擎测得的高度\n (--dshsvc-header-h,ResizeObserver 实时校正;老内核无 RO 时回退常量)补位,\n 否则留一条空带。 */\nhtml[data-dshsvc-mobile] [data-dshsvc-chat-header] {\n transition: transform var(--ds-transition-duration-slow, .25s) var(--ds-ease-in-out, ease),\n margin-top var(--ds-transition-duration-slow, .25s) var(--ds-ease-in-out, ease);\n}\nhtml[data-dshsvc-mobile][data-dshsvc-immersive] [data-dshsvc-chat-header] {\n transform: translateY(-100%) !important;\n margin-top: calc(0px - var(--dshsvc-header-h, 76px)) !important;\n}\n@media (prefers-reduced-motion: reduce) {\n html[data-dshsvc-mobile][data-dshsvc-immersive] [data-composer-seat],\n html[data-dshsvc-mobile][data-dshsvc-immersive] [data-dshsvc-chat-header],\n html[data-dshsvc-mobile] [data-dshsvc-chat-header] { transition: none !important; }\n}\n',document.head.appendChild(n.styleTag),F()||(()=>{if(null===n.mountObserver&&"function"==typeof MutationObserver)try{n.mountObserver=new MutationObserver(()=>{F()}),n.mountObserver.observe(document.documentElement,{childList:!0,subtree:!0})}catch(e){n.mountObserver=null}})(),(()=>{if(!P){P=!0;for(const[e,t,a]of _)try{document.documentElement.addEventListener(e,t,a)}catch(e){}}})(),y();let e=!1;try{e=new URLSearchParams(window.location.search).has("dshsvc-mobile-debug")}catch(e){}e&&(n.debugEnabled=!0,n.errorHandler=()=>{n.errorCount+=1,V()},window.addEventListener("error",n.errorHandler),n.resizeHandler=()=>V(),window.addEventListener("resize",n.resizeHandler),n.debugChip=document.createElement("div"),n.debugChip.setAttribute("data-dshsvc-debug",""),Object.assign(n.debugChip.style,{position:"fixed",left:"8px",bottom:"calc(env(safe-area-inset-bottom, 0px) + 8px)",zIndex:"60",maxWidth:"94vw",padding:"4px 8px",borderRadius:"8px",font:"11px/1.5 var(--ds-font-family-code, monospace)",background:"var(--dsw-alias-bg-layer-2, #333)",color:"var(--dsw-alias-label-primary, #eee)",pointerEvents:"none",whiteSpace:"pre-wrap",overflow:"hidden",textOverflow:"ellipsis"}),n.debugChip.title=t("mobile.debug.title"),document.body.appendChild(n.debugChip),V()),o()})():U()};try{n.mq=window.matchMedia("(max-width: 1023px)")}catch(e){n.mq=null}return n.mmqMatches=()=>{try{return null!==n.mq&&!0===n.mq.matches}catch(e){return!1}},null!==n.mq&&(n.mqHandler=()=>K(),"function"==typeof n.mq.addEventListener?n.mq.addEventListener("change",n.mqHandler):"function"==typeof n.mq.addListener&&n.mq.addListener(n.mqHandler)),{evaluate:K,dispose:()=>{U(),null!==n.mq&&null!==n.mqHandler&&("function"==typeof n.mq.removeEventListener?n.mq.removeEventListener("change",n.mqHandler):"function"==typeof n.mq.removeListener&&n.mq.removeListener("change",n.mqHandler)),n.mqHandler=null}}}const oe=()=>{const e=e=>{if("function"==typeof e.hasAttribute)try{return e.hasAttribute("data-conversation-scroll")}catch(e){return!1}try{return null!==e.attributes&&"function"==typeof e.attributes.getNamedItem&&null!==e.attributes.getNamedItem("data-conversation-scroll")}catch(e){return!1}};return{toBottomSlot:()=>{try{return document.querySelector('[class*="_toBottomSlot"]')}catch(e){return null}},toBottomButton:e=>{try{return e.querySelector('[class*="_toBottom"]:not([class*="Slot"])')}catch(e){return null}},isToBottomButton:e=>{try{return null!=e&&"function"==typeof e.closest&&null!==e.closest('[class*="_toBottom"]:not([class*="Slot"])')}catch(e){return!1}},scrollportOf:t=>{try{let a=t;for(;null!==a&&a!==document.documentElement&&!e(a);)a=a.parentNode;return null!==a&&a!==document.documentElement?a:t.parentNode}catch(e){return null}},officialTurnNavigatorVisible:e=>{try{if("function"!=typeof getComputedStyle)return!1;if(null===e||"function"!=typeof e.querySelector)return!1;const t=e.querySelector('[class*="_rail"]');return null!==t&&"none"!==getComputedStyle(t).display}catch(e){return!1}},userRows:e=>{const t=[];try{if("function"!=typeof e.querySelectorAll)return t;for(const a of e.querySelectorAll('[data-chat-flow-kind="user"]'))t.push(a)}catch(e){}return t},flowTopOf:(e,t)=>{try{return t.getBoundingClientRect().top-e.getBoundingClientRect().top}catch(e){return 0}},loadOlderButton:e=>{try{return"function"==typeof e.querySelector?e.querySelector('[class*="_older"] button'):null}catch(e){return null}}}};return a.inject=["slots","connection","timer","locale","sessions","settingsScope"],a.apply=function(t){const{useState:a,useEffect:i,useRef:o}=r,l=new Set(["quota","quota-reset-card","health"]),h=(e,a)=>{const r=null===a||"object"!=typeof a||Array.isArray(a)?{}:a,n=l.has(e)&&void 0===r.timezoneOffsetMinutes?{...r,timezoneOffsetMinutes:(new Date).getTimezoneOffset()}:r,s=l.has(e)?{...n,timeZone:Intl.DateTimeFormat().resolvedOptions().timeZone}:n;if("quota-reset-card"===e&&"string"==typeof s.expiresAt&&/^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}(:\d{2}(\.\d{1,3})?)?$/.test(s.expiresAt)){const e=new Date(s.expiresAt);Number.isFinite(e.getTime())&&(s.expiresAt=e.toISOString())}return Promise.resolve(t.connection.rpc.call("/dsh-service",e,s)).then(Z)};let v;"undefined"!=typeof document&&document.head&&(v=document.createElement("style"),v.dataset.plugin="@gehennawu/dsh-service",v.dataset.pluginCss="@gehennawu/dsh-service/theme-tokens.css",v.textContent=["body{--dsh-svc-page-bg:#f4f5f7;--dsh-svc-content-bg:var(--dsw-alias-bg-layer-2,#ffffff);--dsh-svc-raised-bg:var(--dsw-alias-bg-layer-3,#ffffff);--dsh-svc-text:var(--dsw-alias-label-primary,#202124);--dsh-svc-text-muted:var(--dsw-alias-label-secondary,#6b7280);--dsh-svc-border:var(--dsw-alias-border-l1,#e5e7eb);--dsh-svc-brand:var(--dsw-alias-brand-primary,#2563eb);--dsh-svc-brand-text:var(--dsw-alias-label-primary-foreground,#ffffff);--dsh-svc-info:#2563eb;--dsh-svc-success:var(--dsw-alias-state-success-primary,#16a34a);--dsh-svc-warning:var(--dsw-alias-state-warn-primary,#d97706);--dsh-svc-danger:var(--dsw-alias-state-error-primary,#dc2626)}","body{--dsh-svc-card-bg:#eceef1}","body{--dsh-svc-border-strong:#b9c0ca}","body[data-ds-dark-theme]{--dsh-svc-border-strong:#52565f}","body[data-ds-dark-theme]{--dsh-svc-card-bg:var(--dsw-alias-bg-layer-2,#202126)}","body[data-ds-dark-theme]{--dsh-svc-page-bg:var(--dsw-alias-bg-layer-1,#17181c);--dsh-svc-content-bg:var(--dsw-alias-bg-layer-2,#202126);--dsh-svc-raised-bg:var(--dsw-alias-bg-layer-3,#292a31);--dsh-svc-text:var(--dsw-alias-label-primary,#f3f4f6);--dsh-svc-text-muted:var(--dsw-alias-label-secondary,#a1a1aa);--dsh-svc-border:var(--dsw-alias-border-l1,#3f414a)}","body[data-ds-dark-theme]{--dsh-svc-brand-text:#111318}",":root{--dsh-svc-space-1:4px;--dsh-svc-space-2:8px;--dsh-svc-space-3:12px;--dsh-svc-space-4:16px;--dsh-svc-space-5:20px;--dsh-svc-space-6:24px;--dsh-svc-space-8:32px;--dsh-svc-radius-control:8px;--dsh-svc-radius-card:12px;--dsh-svc-radius-panel:16px;--dsh-svc-radius-pill:999px;--dsh-svc-control-h:36px;--dsh-svc-control-h-compact:32px;--dsh-svc-control-h-primary:40px;--dsh-svc-content-max:800px;--dsh-svc-dur-fast:120ms;--dsh-svc-dur-view:170ms;--dsh-svc-font-mono:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace}","body{--dsh-svc-surface-bg:var(--dsh-svc-card-bg);--dsh-svc-tab-active-bg:var(--dsh-svc-text);--dsh-svc-tab-active-danger:var(--dsh-svc-text);--dsh-svc-tab-active-text:#ffffff}","body[data-ds-dark-theme]{--dsh-svc-tab-active-text:#111318}","[data-dsh-service-nav]>svg:first-child,[data-dsh-service-quota-nav]>svg:first-child,[data-dsh-service-restart-nav]>svg:first-child,[data-dsh-service-sessions-nav]>svg:first-child{display:none}","[data-dsh-service-nav]::before,[data-dsh-service-quota-nav]::before,[data-dsh-service-restart-nav]::before,[data-dsh-service-sessions-nav]::before{content:'';flex:none;width:16px;height:16px;background:currentColor}","[data-dsh-service-nav]::before{"+B(V)+"}","[data-dsh-service-quota-nav]::before{"+B(F)+"}","[data-dsh-service-sessions-nav]::before{"+B(K)+"}","[data-dsh-service-restart-nav]::before{"+B(U)+"}","@media (max-width:640px){","[data-dshsvc-root] .dshsvc-tabs{flex-wrap:nowrap;overflow-x:auto;overflow-y:hidden;scrollbar-width:none;-webkit-overflow-scrolling:touch;padding:3px}","[data-dshsvc-root] .dshsvc-tabs::-webkit-scrollbar{display:none}","[data-dshsvc-root] .dshsvc-tab{padding:9px 13px;min-height:36px;box-sizing:border-box;font-size:13px;white-space:nowrap;flex:none}","[data-dshsvc-root] .dshsvc-tab svg{flex:none}","}",'[data-dshsvc-root] [data-testid="version-card"]{container-type:inline-size;container-name:dshsvc-version}',"@container dshsvc-version (max-width:480px){","[data-dshsvc-root] .dshsvc-version-row{gap:6px !important;padding:12px 2px !important}","[data-dshsvc-root] .dshsvc-version-identity{flex-basis:100%;display:block}","[data-dshsvc-root] .dshsvc-version-identity>a,[data-dshsvc-root] .dshsvc-version-identity>code{margin-left:0 !important;white-space:normal !important;overflow-wrap:anywhere}","[data-dshsvc-root] .dshsvc-version-note{display:inline}","[data-dshsvc-root] .dshsvc-version-status{flex-basis:100%;justify-content:flex-start !important}","}","@keyframes dshsv-locate-flash{0%,100%{background-color:rgba(198,128,0,0.10)}30%,70%{background-color:rgba(198,128,0,0.45)}}.dshsv-locate-flash{animation:dshsv-locate-flash 2s ease}",'[class*="uV2eYG_dock"]:has([data-dsh-service-subagent-models-dock]){flex-wrap:wrap;width:100%;row-gap:0}',"[data-dshsvc-root]{color:var(--dsh-svc-text);font-size:14px;line-height:1.55;background:var(--dsh-svc-page-bg);border-radius:var(--dsh-svc-radius-card);padding:2px}","[data-dshsvc-root] .dshsvc-page{width:100%;max-width:var(--dsh-svc-content-max);margin:0 auto}",'[data-dshsvc-root] button:focus-visible,[data-dshsvc-root] [role="switch"]:focus-visible,[data-dshsvc-root] select:focus-visible,[data-dshsvc-root] input:focus-visible{outline:2px solid var(--dsh-svc-brand);outline-offset:2px;border-radius:var(--dsh-svc-radius-control)}',"@media (prefers-reduced-motion:reduce){[data-dshsvc-root] *,[data-dshsvc-root] *::before,[data-dshsvc-root] *::after{transition-duration:0.01ms !important;animation-duration:0.01ms !important}}",'[data-testid^="sessions-project-header-"]{transition:background var(--dsh-svc-dur-fast,120ms)}','[data-testid^="sessions-project-header-"]:hover{background:var(--dsw-alias-bg-layer-3,#f2f3f5)}',"[data-dshsvc-root] .dshsvc-tabs{display:flex;align-items:center;flex-wrap:wrap;gap:2px;width:100%;box-sizing:border-box;border:0.5px solid var(--dsh-svc-border);border-radius:var(--dsh-svc-radius-card);overflow:hidden}","[data-dshsvc-root] .dshsvc-tab{position:relative;display:inline-flex;align-items:center;gap:5px;padding:8px 12px;margin:0;border:0;border-radius:0;background:transparent;color:var(--dsh-svc-text-muted);font:inherit;font-size:12px;font-weight:550;line-height:16px;cursor:pointer;transition:color var(--dsh-svc-dur-fast) ease,background var(--dsh-svc-dur-fast) ease}",'[data-dshsvc-root] .dshsvc-tab[aria-selected="true"]{background:var(--dsh-svc-tab-active-bg);color:var(--dsh-svc-tab-active-text);font-weight:650;border-radius:8px}',"[data-dshsvc-root] .dshsvc-subtabs{display:flex;flex-wrap:wrap;gap:2px;margin:10px 0 0;border-bottom:1px solid var(--dsh-svc-border)}","[data-dshsvc-root] .dshsvc-subtab{appearance:none;background:transparent;border:0;border-bottom:2px solid transparent;border-radius:0;padding:8px 10px;font:inherit;font-size:13px;font-weight:550;color:var(--dsh-svc-text-muted);cursor:pointer;transition:color var(--dsh-svc-dur-fast) ease,border-color var(--dsh-svc-dur-fast) ease}",'[data-dshsvc-root] .dshsvc-subtab[aria-selected="true"]{color:var(--dsh-svc-brand);border-bottom-color:var(--dsh-svc-brand);font-weight:700}',"[data-dshsvc-root] .dshsvc-page-header{margin:14px 2px 2px}","[data-dshsvc-root] .dshsvc-page-header-row{display:flex;align-items:center;justify-content:space-between;gap:var(--dsh-svc-space-3);flex-wrap:wrap}"].join(""),document.head.appendChild(v)),t.effect(()=>()=>{v&&v.remove()},"dsh-service theme styles"),t.effect(()=>t.locale.register(n,{zh:L,en:$}),"dsh-service dictionaries");const W=t.locale.bind(n),j=()=>"zh"===t.locale?.getSnapshot?.()?.active?"zh":"en",_=(e,t={})=>{const a=Number(e);return Number.isFinite(a)?!0===t.billions&&a>=1e9?Math.round(a/1e8)/10+"B":a>=1e6?Math.round(a/1e5)/10+"M":a>=1e3?Math.round(a/100)/10+"K":a.toLocaleString():t.invalid??""},P={healthDiagnostics:!0,modelUsage:!0,quotaLookup:!0,backupMaintenance:!0,taskNotifications:!0,healthz:!0,skillManager:!0,subagentRoute:!0,subagentModelsDock:!0,mobileAdaptation:!1,sessionManager:!0,fileEditor:!0,modelProviderIcons:!0},X=t.settingsScope.bind({namespace:n}),le=()=>X.getSnapshot(),de=e=>!1!==Object.assign({},P,le().value||{})[e],ce=()=>{const[e,t]=r.useState(le());return r.useEffect(()=>X.subscribe(()=>t(le())),[]),{snapshot:e,value:Object.assign({},P,e.value||{})}};t.effect(()=>function(e){if("undefined"==typeof document||!document.body)return()=>{};let t=!1,a=null,r=null,n=null;const s=()=>{t||null!==a||("function"==typeof requestAnimationFrame?a=requestAnimationFrame(()=>{a=null,i()}):i())},i=()=>{if(t)return;const a="function"==typeof document.querySelector?document.querySelector('[role="dialog"] nav'):null;if(a!==r&&(null!==n&&n.disconnect(),n=null,r=a,null!==r&&(n=new MutationObserver(s),n.observe(r,{childList:!0,subtree:!0,characterData:!0}))),null===r)return;const i="function"==typeof r.querySelectorAll?r.querySelectorAll("button"):document.querySelectorAll('[role="dialog"] nav button');for(const t of i){const a=(t.textContent||"").trim();for(const r of e){const e=String(r.label()||"").trim();e&&a===e?t.setAttribute(r.attr,""):t.removeAttribute(r.attr)}}Y()};i();const o=new MutationObserver(s);return o.observe(document.body,{childList:!0,subtree:!0}),()=>{t=!0,o.disconnect(),null!==n&&n.disconnect(),n=null,r=null,null!==a&&"function"==typeof cancelAnimationFrame&&cancelAnimationFrame(a),a=null;for(const t of e)for(const e of document.querySelectorAll("["+t.attr+"]"))e.removeAttribute(t.attr)}}([{attr:"data-dsh-service-nav",label:()=>W("nav.label")},{attr:"data-dsh-service-quota-nav",label:()=>W("tabs.quota")},{attr:"data-dsh-service-restart-nav",label:()=>W("nav.restart")},{attr:"data-dsh-service-sessions-nav",label:()=>W("tabs.sessions")}]),"dsh-service settings nav icons");const{settingsNavBackend:ue,createSectionBackendSync:pe,SETTINGS_NAV_MAX_ITEMS:me,getRawSettingsSections:ge,navOrderListeners:he,notifyNavOrderChanged:ve,readSettingsNavHidden:fe,readSettingsNavOrder:be,resolveSectionLabel:ye,writeSettingsNavHidden:xe,writeSettingsNavOrder:ke,ensureSettingsNavBackendSynced:we}=function({ctx:e,rpcCall:t}){const a="dsh-service-settings-nav-order",r="dsh-service-settings-nav-hidden",n=/^[A-Za-z0-9._-]{1,64}$/,s=(e,t,a={})=>{try{const r=localStorage.getItem(e);if(!r)return t;const s=JSON.parse(r);return!Array.isArray(s)||s.length>64?t:s.every(e=>"string"==typeof e&&n.test(e))?!0===a.excludeHost?s.filter(e=>"dsh-service"!==e):s:t}catch(e){return t}},i=()=>s(a,null),o=e=>{try{null===e?localStorage.removeItem(a):localStorage.setItem(a,JSON.stringify(e))}catch(e){}},l=()=>s(r,[],{excludeHost:!0}),d=e=>{try{if(null===e||0===e.length)localStorage.removeItem(r);else{const t=e.filter(e=>"dsh-service"!==e);localStorage.setItem(r,JSON.stringify(t))}}catch(e){}};let c=0;const u=new Set,p=()=>{try{const t=e.slots?._core;if(t&&"function"==typeof t.record)return t.record("settings.section")||null}catch(e){}return null},m=e=>{const t=new Set;try{const a=e&&e.listeners;if(a&&"function"==typeof a[Symbol.iterator])for(const e of a)"function"==typeof e&&t.add(e)}catch(e){}return t},g=()=>{c++;const t=p(),a=new Set;for(const e of u)a.add(e);for(const e of m(t))a.add(e);const r=e=>{if(u.has(e))return!0;const t=p();return m(t).has(e)};for(const e of a)if("function"==typeof e&&r(e))try{e()}catch(e){}try{if(t){const a=e.slots?._core;a&&"function"==typeof a.markDirty&&a.markDirty("settings.section",t),a&&"function"==typeof a.flush&&a.flush()}}catch(e){}try{if("function"==typeof e.slots?.register){const t=e.slots.register({name:"settings.section",id:"__dsh_nav_bump__"},()=>null);"function"==typeof t&&t()}}catch(e){}Y()};let h=null,v=null;if(e.slots&&"function"==typeof e.slots.entries){const t=e.slots.entries.bind(e.slots);h=t;const a="function"==typeof e.slots.getVersion?e.slots.getVersion.bind(e.slots):null,r="function"==typeof e.slots.subscribe?e.slots.subscribe.bind(e.slots):null;e.slots.entries=function(e){const a=t(e);if("settings.section"!==e)return a;const r=i(),n=l(),s=new Set(n),o=a.filter(e=>{const t=e.options?.id??e.options?.key??"";return"__dsh_nav_bump__"!==t&&("dsh-service"===t||!s.has(t))});return r&&0!==r.length?o.map(e=>{const t=e.options?.id??e.options?.key??"",a=r.indexOf(t),n=-1!==a?10*a:1e4+(e.options?.order??0);return Object.assign({},e,{options:Object.assign({},e.options,{order:n})})}):o},a&&(e.slots.getVersion=function(e){const t=a(e);return"settings.section"===e?t+1e5*c:t});const n=new Set;r&&(e.slots.subscribe=function(e,t){if("settings.section"===e){u.add(t);const a=r(e,t),s=()=>{n.delete(s)&&(u.delete(t),"function"==typeof a&&a())};return n.add(s),s}return r(e,t)}),v=()=>{e.slots.entries=t,a&&(e.slots.getVersion=a),r&&(e.slots.subscribe=r);for(const e of Array.from(n))e();u.clear()}}e.effect(()=>()=>{v&&v()},"dsh-service settings nav slot wrapping");const f=()=>{let t=[];return h?t=h("settings.section"):"function"==typeof e.slots?.entries&&(t=e.slots.entries("settings.section")),t.filter(e=>"__dsh_nav_bump__"!==(e.options?.id??e.options?.key))},b=e=>{if(!e)return"";const t=e.label;if("function"==typeof t)try{const e=t();if(e)return String(e)}catch(e){}else if("string"==typeof t&&t)return t;return String(e.id??e.key??"")};Y=()=>{if("undefined"==typeof document||!document.body)return;const e="function"==typeof document.querySelector?document.querySelector('[role="dialog"] nav'):null;if(!e)return;k();const t="function"==typeof e.querySelectorAll?e.querySelectorAll("button"):[];if(!t||0===t.length)return;const a=l(),r=new Set(a),n=i(),s=f(),o=new Map;for(const e of s){const t=e.options?.id??e.options?.key??"";if(!t||"__dsh_nav_bump__"===t)continue;const a=b(e.options);a&&o.set(a.trim(),t),o.set(t,t)}for(const e of t){const t=t=>{if("function"!=typeof e.getAttribute)return null;try{return e.getAttribute(t)}catch(e){return null}},a=t=>"function"==typeof e.hasAttribute?e.hasAttribute(t):!(!e.attrs||"function"!=typeof e.attrs.has)&&e.attrs.has(t),s="function"==typeof e.querySelector?e.querySelector("span"):null,i=(s?s.textContent:e.textContent||"").trim(),l=(t("title")||"").trim(),d=(t("aria-label")||"").trim(),c=o.get(i)||o.get(l)||o.get(d)||null;if(c){if(t("data-dsh-section-id")!==c&&"function"==typeof e.setAttribute)try{e.setAttribute("data-dsh-section-id",c)}catch(e){}if(e.style)if("dsh-service"===c?e.style.display="":r.has(c)?e.style.display="none":e.style.display="",n&&n.length>0){const t=n.indexOf(c);e.style.order=-1!==t?String(t):"9999"}else e.style.order=""}else{if(a("data-dsh-section-id")&&"function"==typeof e.removeAttribute)try{e.removeAttribute("data-dsh-section-id")}catch(e){}e.style&&(e.style.display="",e.style.order="")}}const d=e.children,c="function"==typeof e.querySelector&&(e.querySelector('[class*="navList"]')||d&&d[1])||null;c&&c.style&&n&&n.length>0&&(c.style.display="flex")};const y=({section:e,readOrder:a,readHidden:r,writeLocal:n})=>{const s={synced:!1,pushPending:!1},i=(a,r)=>{t("config-set",{section:e,value:{order:a,hidden:r}}).then(e=>{e&&!0===e.ok||(s.pushPending=!0)}).catch(()=>{s.pushPending=!0})},o=()=>{t("config-set",{section:e,value:null}).then(e=>{e&&!0===e.ok||(s.pushPending=!0)}).catch(()=>{s.pushPending=!0})},l=()=>{const e=a(),t=r();e&&e.length>0||t&&t.length>0?i(e,t):o()};return{persist:i,persistReset:o,ensureSynced:()=>{s.synced?s.pushPending&&(s.pushPending=!1,l()):(s.synced=!0,(async()=>{try{const a=await t("config-get",{section:e});if(!a||!0!==a.ok||void 0===a.value)return void(s.synced=!1);if(s.pushPending)return s.pushPending=!1,void l();const r=a.value;if(null!==r&&"object"==typeof r&&(Array.isArray(r.order)||Array.isArray(r.hidden)))return void n(Array.isArray(r.order)?r.order:null,Array.isArray(r.hidden)?r.hidden:[]);l()}catch(e){s.synced=!1}})())}}},x=y({section:"settingsNav",readOrder:()=>i(),readHidden:()=>l(),writeLocal:(e,t)=>{o(e),d(t),g()}}),k=x.ensureSynced;return{settingsNavBackend:x,createSectionBackendSync:y,SETTINGS_NAV_MAX_ITEMS:64,getRawSettingsSections:f,navOrderListeners:u,notifyNavOrderChanged:g,readSettingsNavHidden:l,readSettingsNavOrder:i,resolveSectionLabel:b,writeSettingsNavHidden:d,writeSettingsNavOrder:o,ensureSettingsNavBackendSynced:k}}({ctx:t,rpcCall:h}),Ee=ue.persist,Se=ue.persistReset,qe=()=>{const[,e]=a(t.locale.getSnapshot());return i(()=>t.locale.subscribe(()=>e(t.locale.getSnapshot())),[]),W},{SubagentModelsDock:Ce}=function({ctx:e,rpcCall:t,useTranslation:a}){const{useState:n,useEffect:s}=r,i=new Map,o=new Map,l=new Map,d=(e,a=!1)=>{if("string"!=typeof e||""===e)return Promise.resolve([]);const r=Date.now();if(!a&&r-(o.get(e)??0)<1e4)return Promise.resolve(i.get(e)??[]);let n=l.get(e);return void 0===n&&(n=t("subagent-dispatches",{parentId:e,limit:400}).then(t=>{const a=t&&!0===t.ok&&Array.isArray(t.value?.records)?t.value.records:[],r=[];for(const e of a)null!==e&&"object"==typeof e&&r.push(e);return i.set(e,r),o.set(e,Date.now()),r}).catch(()=>(o.set(e,Date.now()),null)),l.set(e,n),n.finally(()=>l.delete(e)).catch(()=>{})),n};return{SubagentModelsDock:function(t){const o=a(),[l,c]=n("");return s(()=>{let a=!1;const r="string"==typeof t.sessionId?t.sessionId:void 0;if(void 0===r)return void c("");const n=()=>{const e=Q(i.get(r)??[]);c(0===e.length?"":`${o("subagent.dock.label")}${J(e)}`)},s=()=>d(r).then(e=>!a&&(n(),null!==e)).catch(()=>(a||c(""),!1));s();const l=()=>{a||(d(r,!0).then(()=>{a||n()}).catch(()=>{a||c("")}),u=e.timer?.timeout?.(l,2e4))};let u;return Promise.resolve(s()).then(t=>{!a&&t&&(u=e.timer?.timeout?.(l,2e4))}),()=>{a=!0,"function"==typeof u&&u()}},[t.sessionId]),""===l?null:r.createElement("div",{"data-testid":"subagent-models-dock","data-dsh-service-subagent-models-dock":!0,style:{boxSizing:"border-box",flex:"0 0 100%",order:1,textAlign:"center",fontSize:"12px",lineHeight:"18px",color:"var(--dsh-svc-text-muted, var(--dsw-alias-label-secondary, #6b7280))",padding:"0 4px",whiteSpace:"nowrap",overflow:"hidden",textOverflow:"ellipsis",maxWidth:"100%"}},l)}}}({ctx:t,rpcCall:h,useTranslation:qe}),ze=["overview","usage","quota","diagnostics","maintenance","configuration"],Ae={overview:"tabs.overview",usage:"tabs.usage",quota:"tabs.quota",diagnostics:"tabs.health",maintenance:"tabs.maintenance",configuration:"tabs.configuration"},Te={usage:"modelUsage",quota:"quotaLookup",diagnostics:"healthDiagnostics"},Me=["sessions","skills","subagent","backup","restart"],Ie={sessions:"tabs.sessions",skills:"tabs.skills",subagent:"tabs.subagent",backup:"tabs.backup",restart:"tabs.restart"},Oe={sessions:"sessionManager",skills:"skillManager",subagent:"subagentRoute",backup:"backupMaintenance"},He=e=>Me.filter(t=>void 0===Oe[t]||!1!==e[Oe[t]]).map(e=>({id:e,labelKey:Ie[e]})),Re=(e,t)=>{const a=He(t);return 0===a.length?null:a.some(t=>t.id===e)?e:a[0].id},De=[{id:"features",labelKey:"tabs.features"},{id:"notifications",labelKey:"tabs.notifications"},{id:"navOrder",labelKey:"tabs.navOrder"}],Ne={configuration:"page.configuration.desc"};function Le({title:e,description:t,action:a,secondary:n}){return r.createElement("header",{"data-testid":"svc-page-header",className:"dshsvc-page-header"},r.createElement("div",{className:"dshsvc-page-header-row"},r.createElement("h2",{className:"dshsvc-page-title",style:{margin:0,fontSize:"18px",fontWeight:700,lineHeight:1.4,color:"var(--dsh-svc-text)"}},e),null!=a?a:null,null!=n?r.createElement("div",{className:"dshsvc-page-secondary",style:{display:"flex",alignItems:"center",gap:"8px",flexWrap:"wrap"}},n):null),t?r.createElement("p",{className:"dshsvc-page-desc",style:{margin:"2px 0 0",fontSize:"12px",color:"var(--dsh-svc-text-muted)",lineHeight:1.5}},t):null)}function $e({items:e,activeId:t,onChange:a,testIdPrefix:n,variant:s,dotLabel:i,ariaLabel:o}){const l="sub"===s;return r.createElement("div",{role:"tablist","aria-label":o,className:l?"dshsvc-subtabs":"dshsvc-tabs","data-testid":n+"-list"},e.map(e=>{const s=e.id===t,o=l?s?{color:"var(--dsh-svc-brand)",borderBottom:"2px solid var(--dsh-svc-brand)",fontWeight:700}:null:s?{background:"var(--dsh-svc-tab-active-bg)",color:"var(--dsh-svc-tab-active-text)",fontWeight:650,borderRadius:"8px"}:null;return r.createElement("button",{key:e.id,type:"button",role:"tab","aria-selected":String(s),"data-testid":n+"-"+e.id,className:l?"dshsvc-subtab":"dshsvc-tab",style:o,onClick:()=>a(e.id)},void 0!==e.icon?r.createElement(G,{name:e.icon}):null,e.label,e.warning?r.createElement("span",{"data-testid":"tab-dot-"+e.id,"aria-label":i,style:{position:"absolute",top:"-3px",right:"-3px",width:"8px",height:"8px",...I("50%"),background:"var(--dsw-alias-state-warn-primary)",boxShadow:"0 0 0 2px var(--dsw-alias-bg-layer-1)"}}):null,e.badge?r.createElement("span",{"data-testid":e.badge.testid,style:{position:"absolute",top:"-7px",right:"-10px",fontSize:"9px",lineHeight:"14px",padding:"0 4px",...I("999px"),background:"var(--dsw-alias-state-warn-primary)",color:"var(--dsh-svc-brand-text)",fontWeight:700}},e.badge.text):null)}))}const{notifyState:We,useNotifyState:je,NOTIFY_KIND_KEYS:Be,fireNotification:_e,subscribeBellVisible:Pe}=function(){const{useState:e,useEffect:t}=r,a={current:{enabled:!1,done:!0,input:!0,bellVisible:!0}};try{a.current.enabled="true"===localStorage.getItem("dsh-service-notify")}catch(e){}try{a.current.done="false"!==localStorage.getItem("dsh-service-notify-done")}catch(e){}try{a.current.input="false"!==localStorage.getItem("dsh-service-notify-input")}catch(e){}try{a.current.bellVisible="false"!==localStorage.getItem("dsh-service-notify-bell")}catch(e){}const n=new Set,s=new Set,i=(e,t)=>{try{localStorage.setItem(e,t?"true":"false")}catch(e){}},o=()=>{for(const e of n)e()},l=e=>{a.current.bellVisible=!0===e,i("dsh-service-notify-bell",a.current.bellVisible),(()=>{for(const e of s)e()})()};return{notifyState:a,useNotifyState:()=>{const[,t]=e(0),[d,c]=e(a.current.enabled),[u,p]=e(a.current.done),[m,g]=e(a.current.input),[h,v]=e(a.current.bellVisible);return r.useEffect(()=>{const e=()=>{c(a.current.enabled),p(a.current.done),g(a.current.input),v(a.current.bellVisible),t(e=>e+1)};return n.add(e),s.add(e),()=>{n.delete(e),s.delete(e)}},[]),{enabled:d,done:u,input:m,bell:h,setEnabled:e=>{return t=e,a.current.enabled=t,i("dsh-service-notify",t),void o();var t},setDone:e=>{return t=e,a.current.done=t,i("dsh-service-notify-done",t),void o();var t},setInput:e=>{return t=e,a.current.input=t,i("dsh-service-notify-input",t),void o();var t},setBell:l}},NOTIFY_KIND_KEYS:{approval:"notification.kind.approval","plan-review":"notification.kind.plan-review",question:"notification.kind.question"},fireNotification:(e,t)=>{if("undefined"!=typeof Notification&&"granted"===Notification.permission)try{const a=new Notification(e,{body:t});a.onclick=()=>{try{window.focus()}catch(e){}try{a.close()}catch(e){}}}catch(e){}},subscribeBellVisible:e=>(s.add(e),()=>s.delete(e))}}(),Ve=({storageKey:e,legacyStorageKey:r,sectionId:n,order:s,labelKey:o,feature:l,renderContent:d})=>{let c=!1;try{let t=localStorage.getItem(e);if(null===t&&void 0!==r){const a=localStorage.getItem(r);if(null!==a){try{localStorage.setItem(e,a)}catch(e){}t=a}}c="true"===t}catch(e){}let u=null;const p=new Set,m=()=>{u&&(u(),u=null),c&&(void 0===l||de(l))&&(u=t.slots.register({name:"settings.section",id:n,order:s,label:()=>W(o)},d))},g=t=>{c=!0===t;try{localStorage.setItem(e,c?"true":"false")}catch(e){}m(),"function"==typeof ve&&ve();for(const e of p)e()};return{sync:m,setEnabled:g,useEnabled:()=>{const[e,t]=a(c);return i(()=>{const e=()=>t(c);return p.add(e),t(c),()=>p.delete(e)},[]),[e,g]},disposeEntry:()=>{u&&(u(),u=null)}}},Fe=Ve({storageKey:"dsh-service-shortcut-restart",legacyStorageKey:"dsh-service-restart-nav",sectionId:"dsh-service-restart",order:499,labelKey:"nav.restart",renderContent:()=>r.createElement(Ze,null)}),Ue=Ve({storageKey:"dsh-service-shortcut-quota",legacyStorageKey:"dsh-service-quota-nav",sectionId:"dsh-service-quota",order:498,labelKey:"tabs.quota",feature:"quotaLookup",renderContent:()=>r.createElement(Aa,null)}),Ke=Ve({storageKey:"dsh-service-shortcut-sessions",legacyStorageKey:"dsh-service-sessions-nav",sectionId:"dsh-service-sessions",order:495,labelKey:"tabs.sessions",feature:"sessionManager",renderContent:()=>r.createElement($a,null)}),Ge=()=>{try{if("function"==typeof t.get)return t.get("modelDirectories")}catch(e){}},Ye={runningSessionIds:new Set},{DSH_NOT_SUPPORTED_FROM:Qe,RestartOverlay:Je,RestartSection:Ze,channelLines:Xe,compareSemver:et,fetchVersionSnapshot:tt,isDshUnsupported:at,refreshVersionSnapshot:rt,startRecovery:nt,useInstalledVersion:st,useRestartFlow:it,useRuntimeEnv:ot,isUpgradeInFlight:lt,setUpgradeInFlight:dt,getRuntimeEnvState:ct}=se({ctx:t,rpcCall:h,t:W,useTranslation:qe,restartNavToggle:Fe}),{QUOTA_KIND_OPTIONS:ut,acquireQuotaLoop:pt,applyQuotaCardOrder:mt,formatClockTime:gt,formatShortDate:ht,humanizeDuration:vt,subscribeQuotaCards:ft,commitQuotaCards:bt,resetQuotaCards:yt,ensureQuotaCardsSynced:xt,quotaWindowDisplayLabel:kt,quotaWindowValueText:wt,readQuotaCardHidden:Et,readQuotaCardOrder:St,releaseQuotaLoop:qt,quotaExtractBalance:Ct,resolveBalanceBaseline:zt,setManualBalanceBaseline:At,computeBalanceGaugeState:Tt,fetchQuotaSnapshot:Mt}=function({ctx:e,rpcCall:t,featureEnabled:a,getModelDirectories:n,sessionActivity:s,createSectionBackendSync:i,SETTINGS_NAV_MAX_ITEMS:o,formatCompactCount:l}){const{useState:d,useEffect:c}=r,u="dsh-service-quota-card-order",p="dsh-service-quota-card-hidden",m=(e,t)=>{try{const a=localStorage.getItem(e);if(!a)return t;const r=JSON.parse(a);return!Array.isArray(r)||r.length>o?t:r.every(e=>"string"==typeof e&&""!==e.trim()&&e.trim().length<=128)?r.map(e=>e.trim()):t}catch(e){return t}},h=()=>m(u,[]),v=()=>m(p,[]),f=e=>{try{null===e?localStorage.removeItem(u):localStorage.setItem(u,JSON.stringify(e.slice(0,o)))}catch(e){}},b=e=>{try{null===e||0===e.length?localStorage.removeItem(p):localStorage.setItem(p,JSON.stringify(e.slice(0,o)))}catch(e){}},y=new Set,x=()=>{for(const e of y)try{e()}catch(e){}},k=i({section:"quotaCards",readOrder:()=>h(),readHidden:()=>v(),writeLocal:(e,t)=>{f(e),b(t),x()}});let w=null,E=null;function S(e){return"all"===e?.scope?{scope:"all"}:{providers:Array.isArray(e?.providers)?[...new Set(e.providers.filter(e=>"string"==typeof e&&""!==e))].sort():[]}}async function q(a={providers:[]}){const r=S(a);return null!==w?(n=E,s=r,E="all"===n?.scope||"all"===s?.scope?{scope:"all"}:S({providers:[...n?.providers??[],...s?.providers??[]]}),w):(w=Promise.resolve().then(async()=>{try{const a=await t("quota",r);if(!0===a?.ok&&a.value&&"object"==typeof a.value&&Array.isArray(a.value.providers))return g.publish(a.value),function(t,a={providers:[]}){Array.isArray(t?.providers)&&t.providers.some(e=>!0===e.adapted&&!0===e.refreshing)&&0!==T.refs?null!==z.dispose||z.pulls>=A.length||(z.dispose=e.timer.timeout(()=>{z.dispose=null,q(a)},A[z.pulls]),z.pulls+=1):z.pulls=0}(a.value,r),!0}catch(e){}return!1}).finally(()=>{w=null;const e=E;E=null,null!==e&&q(e)}),w);var n,s}function C(){const e=n();if(void 0===e||"function"!=typeof e.directoryFor)return[];const t=[];for(const a of s.runningSessionIds)try{const r=e.directoryFor(a)?.store?.getSnapshot?.()?.current;"string"==typeof r?.provider&&""!==r.provider&&t.push(r.provider)}catch(e){}return[...new Set(t)]}const z={pulls:0,dispose:null},A=[800,2400,4800,8e3,12e3],T={refs:0,allRefs:0,running:!1};e.effect(()=>()=>{null!==z.dispose&&z.dispose()},"dsh-service quota snapshot disposal");const M="dsh-service-quota-balance-baseline";function I(){try{const e=localStorage.getItem(M);if(!e)return{};const t=JSON.parse(e);return null===t||"object"!=typeof t||Array.isArray(t)?{}:t}catch(e){return{}}}function O(e){try{e&&0!==Object.keys(e).length?localStorage.setItem(M,JSON.stringify(e)):localStorage.removeItem(M)}catch(e){}}return{QUOTA_KIND_OPTIONS:["opencode-go","zai-coding-cn","openrouter","kimi","siliconflow","deepseek","stepfun","stepfun-step-plan","xiaomi-token-plan-cn","cliproxy","command-goat"],acquireQuotaLoop:function(e={}){a("quotaLookup")&&(T.refs+=1,!0===e.all&&(T.allRefs+=1),!0===e.all?q({scope:"all"}):function(){if(!a("quotaLookup")||0===T.refs||!0===T.running)return;const e=T.allRefs>0?{scope:"all"}:{providers:C()};"all"!==e.scope&&0===e.providers.length||(T.running=!0,Promise.resolve(q(e)).catch(()=>!1).then(()=>{T.running=!1}))}())},applyQuotaCardOrder:function(e,t){const a=new Map(t.map((e,t)=>[e,t]));return e.map((e,r)=>({row:e,key:a.has(e.provider)?a.get(e.provider):t.length+r})).sort((e,t)=>e.key-t.key).map(e=>e.row)},formatClockTime:function(e){try{return new Date(e).toLocaleTimeString([],{hour:"2-digit",minute:"2-digit",hourCycle:"h23"})}catch(e){return""}},formatShortDate:function(e){const t=new Date(e),a=e=>String(e).padStart(2,"0");return`${t.getFullYear()}-${a(t.getMonth()+1)}-${a(t.getDate())}`},humanizeDuration:function(e,t){const a=Math.max(0,Math.floor(e/6e4)),r=Math.floor(a/1440),n=Math.floor(a%1440/60),s=a%60,i=[];return r>0&&i.push(t("quota.unit.day",{count:r})),n>0&&i.push(t("quota.unit.hour",{count:n})),s>0&&i.push(t("quota.unit.minute",{count:s})),0===i.length&&i.push(t("quota.unit.minute",{count:0})),i.slice(0,2).join(" ")},subscribeQuotaCards:e=>(y.add(e),()=>y.delete(e)),commitQuotaCards:(e,t)=>{f(e),b(t),x(),k.persist(e,t)},resetQuotaCards:()=>{f(null),b(null),x(),k.persistReset()},ensureQuotaCardsSynced:()=>k.ensureSynced(),quotaWindowDisplayLabel:function(e,t){const a="string"==typeof e.kindKey&&""!==e.kindKey,r=a?e.kindKey:e.id;let n=t(`quota.window.${r}`);if(n===`quota.window.${r}`)if(a){const a=t(`quota.window.${e.id}`);n=a!==`quota.window.${e.id}`?a:r}else n=function(e,t){const a=t(`quota.window.${e}`);if(a!==`quota.window.${e}`)return a;const r=String(e).split("-"),n=r.length>=2?`${r[0]}-${r[1]}`:r[0],s=t(`quota.window.${n}`);return s===`quota.window.${n}`?e:s}(e.id,t);const s="string"==typeof e.label?e.label.trim():"";return""!==s?`${s} · ${n}`:n},quotaWindowValueText:function(e){const t=`${e.percent}%`,a=Number(e.used),r=Number(e.limit);return!Number.isFinite(a)||!Number.isFinite(r)||r<=0?t:"usd"===e.unit?`${t} · $${a.toFixed(2)} / $${r.toFixed(2)}`:`${t} · ${l(a,{billions:!0})} / ${l(r,{billions:!0})}`},readQuotaCardHidden:v,readQuotaCardOrder:h,releaseQuotaLoop:function(e={}){(a("quotaLookup")||0!==T.refs)&&(T.refs=Math.max(0,T.refs-1),!0===e.all&&(T.allRefs=Math.max(0,T.allRefs-1)),T.refs>0||null!==z.dispose&&(z.dispose(),z.dispose=null))},quotaExtractBalance:function(e){if(!Array.isArray(e)||0===e.length)return null;const t=e.find(e=>"balance"===e.kindKey)||e.find(e=>"string"==typeof e.id&&e.id.startsWith("balance"))||e.find(e=>"string"==typeof e.text&&/^[¥$€£]|\b(CNY|USD|EUR|GBP)\b/.test(e.text));if(!t||"string"!=typeof t.text)return null;const a=t.text.trim();let r="CNY",n="¥";a.startsWith("$")||"USD"===t.label||a.toUpperCase().includes("USD")?(r="USD",n="$"):a.startsWith("€")||"EUR"===t.label||a.toUpperCase().includes("EUR")?(r="EUR",n="€"):(a.startsWith("£")||"GBP"===t.label||a.toUpperCase().includes("GBP"))&&(r="GBP",n="£");const s=a.replace(/[^0-9.]/g,""),i=Number(s);return Number.isFinite(i)?{amount:i,currency:r,symbol:n,rawText:a,window:t}:null},resolveBalanceBaseline:function(e,t,a){if("string"!=typeof e||""===e||!Number.isFinite(t))return null;const r="USD"===a?5:20,n=I(),s=n[e];let i=r;if(s&&"number"==typeof s.baseline&&Number.isFinite(s.baseline)){i=s.baseline;const a="number"==typeof s.lastBalance?s.lastBalance:i;t>i||t>a+.5?(i=Math.max(t,r),n[e]={baseline:i,lastBalance:t,updatedAt:Date.now()},O(n)):Math.abs(t-a)>.001&&(n[e]={...s,lastBalance:t,updatedAt:Date.now()},O(n))}else i=Math.max(t,r),n[e]={baseline:i,lastBalance:t,updatedAt:Date.now()},O(n);return i},setManualBalanceBaseline:function(e,t,a){if("string"!=typeof e||""===e||!Number.isFinite(t)||t<=0)return null;const r=Math.round(100*t)/100,n=I();return n[e]={baseline:r,lastBalance:t,updatedAt:Date.now()},O(n),r},computeBalanceGaugeState:function(e,t,a){const r=Number.isFinite(t)&&t>0?t:"USD"===a?5:20,n=e/r*100,s=Math.min(100,Math.max(0,Math.round(n))),i="USD"===a?e<=.5:e<=2,o="USD"===a?e>=10:e>=50;let l="high",d="var(--dsw-alias-state-success-primary)";return e<=0||i?(l="low",d="var(--dsw-alias-state-error-primary)"):s<20?o?(l="mid",d="var(--dsw-alias-state-warn-primary)"):(l="low",d="var(--dsw-alias-state-error-primary)"):s<50?(l="mid",d="var(--dsw-alias-state-warn-primary)"):(l="high",d="var(--dsw-alias-state-success-primary)"),{ratio:s,gear:l,color:d,needleAngle:s/100*180-90,baseline:r,isExtremeLow:i,isComfortableHigh:o}},fetchQuotaSnapshot:q}}({ctx:t,rpcCall:h,featureEnabled:de,getModelDirectories:Ge,sessionActivity:Ye,createSectionBackendSync:pe,SETTINGS_NAV_MAX_ITEMS:me,formatCompactCount:_});!function({ctx:e,sessionActivity:t,t:a,featureEnabled:r,featureScope:n,notifyState:s,fireNotification:i,NOTIFY_KIND_KEYS:o}){if(e.sessions&&"function"==typeof e.sessions.list?.subscribe){const l=new Map;let d=!1,c=null,u=null;const p=t=>{if(null!=t&&void 0!==t.uiSession)return t.uiSession;try{if("function"==typeof e.get)return e.get("uiSession")}catch(e){}};let m,g=null;const h=new Map;let v=!1,f=null,b=null;const y=()=>{null!==f&&(f(),f=null),null!==b&&(b(),b=null),h.clear(),v=!1},x=()=>m??p(),k=()=>{const n=e.sessions.list.getSnapshot();if(n&&n.byId)if(t.runningSessionIds=new Set(Object.entries(n.byId).filter(([,e])=>!0===e.running).map(([e])=>e)),d){for(const[e,t]of Object.entries(n.byId)){const n={running:!0===t.running},o=l.get(e);void 0!==o&&o.running&&!n.running&&"subagent"!==t.origin&&r("taskNotifications")&&s.current.enabled&&s.current.done&&i(a("notification.doneTitle"),a("notification.doneBody",{title:t.displayTitle||e})),l.set(e,n)}for(const e of[...l.keys()])e in n.byId||l.delete(e)}else{d=!0;for(const[e,t]of Object.entries(n.byId))l.set(e,{running:!0===t.running})}},w=()=>{const t=x();if(!t||"function"!=typeof t.sessionStatus?.subscribe)return;const n=t.sessionStatus.getSnapshot();if(n&&"function"==typeof n.entries)if(v){for(const[t,l]of n.entries()){const n={pending:void 0!==l?.pendingInteraction},d=h.get(t);if(void 0!==d&&!d.pending&&n.pending&&r("taskNotifications")&&s.current.enabled&&s.current.input){const r=o[l.pendingInteraction.kind],n=r?a(r):String(l.pendingInteraction.kind),s=e.sessions.list.getSnapshot().byId[t];i(a("notification.inputTitle"),a("notification.inputBody",{title:s?.displayTitle||t,kind:n}))}h.set(t,n)}for(const e of[...h.keys()])n.has(e)||h.delete(e)}else{v=!0;for(const[e,t]of n.entries())h.set(e,{pending:void 0!==t?.pendingInteraction})}},E=()=>{null!==c&&(c(),c=null),null!==u&&(u(),u=null),y(),l.clear(),d=!1,t.runningSessionIds=new Set},S=()=>{const t=x();t&&"function"==typeof t.sessionStatus?.subscribe&&r("taskNotifications")?null===f&&(f=t.sessionStatus.subscribe(()=>w()),b=e.on("connection/reset",()=>{h.clear(),v=!1}),w()):null!==f&&y()},q=()=>{r("taskNotifications")||r("quotaLookup")?(null===c&&(c=e.sessions.list.subscribe(()=>k()),u=e.on("connection/reset",()=>{l.clear(),d=!1}),k()),S()):E()};"function"==typeof e.inject&&(g=e.inject(["uiSession"],e=>(y(),m=p(e),S(),()=>{m=void 0,y()}))),q();const C=n.subscribe(q);e.effect(()=>()=>{if(C(),"function"==typeof g)try{g()}catch(e){}E()},"dsh-service: shared session observation")}}({ctx:t,sessionActivity:Ye,t:W,featureEnabled:de,featureScope:X,notifyState:We,fireNotification:_e,NOTIFY_KIND_KEYS:Be});const It=Object.assign(Object.create(null),{deepseek:{segments:[[540,720],[840,1080]],captionKey:"quota.peak.caption",holidays:!0},"zai-coding-cn":{segments:[[840,1080]],captionKey:"quota.peak.caption.zai",holidays:!1}}),Ot="#f0952f",Ht="var(--dsw-alias-state-success-primary)",Rt=3e4,Dt=(()=>{let e=0;const t=Array.isArray(s?.years)?s.years:[];for(const a of t){const t=Number(a);Number.isFinite(t)&&t>e&&(e=t)}return 0===e?8:Math.max(8,Math.ceil((new Date(Date.UTC(e,11,31)).getTime()-Date.now())/864e5)+8)})(),Nt=new Set(Array.isArray(s?.years)?s.years.map(e=>String(e)):[]),Lt=s?.offDays&&"object"==typeof s.offDays?s.offDays:{};function $t(e){const t=new Date(e+288e5),a=e=>String(e).padStart(2,"0");return`${t.getUTCFullYear()}-${a(t.getUTCMonth()+1)}-${a(t.getUTCDate())}`}function Wt(e){return Nt.has(e)}function jt(e,t){const a=function(e){const t=new Date(e+288e5);return{dayIndex:t.getUTCDay(),minutesOfDay:60*t.getUTCHours()+t.getUTCMinutes()}}(t);if(0===a.dayIndex||6===a.dayIndex)return!1;if(!0===e.holidays){const e=$t(t);if(Wt(e.slice(0,4))&&function(e){return"string"==typeof Lt[e]}(e))return!1}return e.segments.some(([e,t])=>a.minutesOfDay>=e&&a.minutesOfDay<t)}function Bt(e){const t=new Date(e+288e5),a=e=>String(e).padStart(2,"0");return`${a(t.getUTCHours())}:${a(t.getUTCMinutes())}`}function _t(e,t){return!1===Array.isArray(t)||0===t.length?null:It[e?.kind]??null}function Pt({showCaption:e,schedule:n}){const s=qe(),[o,l]=a(Date.now());i(()=>{let e=!1,a=null;const r=()=>{e||(a=t.timer.timeout(()=>{l(Date.now()),r()},Rt))};return r(),()=>{e=!0,null!=a&&a()}},[]);const d=jt(n,o),c=function(e,t){const a=new Date(t+288e5);a.setUTCHours(0,0,0,0);const r=a.getTime()-288e5,n=e.segments.flat(),s=[];let i=jt(e,t);for(let a=0;a<=Dt&&s.length<2;a++){const o=r+864e5*a,l=n.map(e=>o+6e4*e);l.push(o+864e5);for(const a of l){if(a<=t)continue;const r=jt(e,a);if(r!==i&&(s.push(a),i=r,s.length>=2))return s}}return s}(n,o),u=c[0]??null,p=d?Ot:Ht,m=s(d?"quota.peak.nowPeak":"quota.peak.nowIdle"),g=$t(o),h=!0===n.holidays&&!Wt(g.slice(0,4)),v=e=>Math.round(e/1440*1e6)/1e4;return r.createElement("div",{"data-testid":"quota-peak-timeline",style:{display:"flex",flexDirection:"column",gap:"4px"}},r.createElement("div",{style:{display:"flex",alignItems:"center",flexWrap:"wrap",gap:"6px",minHeight:"16px"}},r.createElement("span",{"data-testid":"quota-peak-state","data-in-peak":String(d),style:{display:"inline-flex",alignItems:"center",gap:"5px",fontSize:"12px",lineHeight:"16px",color:p,whiteSpace:"nowrap",flexShrink:0}},r.createElement("span",{style:{width:"7px",height:"7px",...I("50%"),background:p,flexShrink:0}}),m),null!==u?r.createElement("span",{"data-testid":"quota-peak-next",style:{marginLeft:"auto",fontSize:"11px",lineHeight:"16px",color:"var(--dsw-alias-label-tertiary)",whiteSpace:"nowrap"}},s(d?"quota.peak.untilIdle":"quota.peak.untilPeak",{time:Bt(u),dur:vt(u-o,s)})):null),r.createElement("div",{"data-testid":"quota-peak-bar",style:{position:"relative",height:"14px",...I(999),overflow:"hidden",background:"var(--dsw-alias-interactive-bg-hover)"}},(c.length>0?[{peak:d,weight:c[0]-o},...c.length>1?[{peak:!d,weight:c[1]-c[0]}]:[]]:[{peak:d,weight:1}]).map((e,t,a)=>{const n=a.reduce((e,t)=>e+t.weight,0),i=v(e.weight/n*1440);return r.createElement("span",{key:t,"data-testid":`quota-peak-segment-${t}`,"data-peak":String(e.peak),style:{position:"absolute",top:0,bottom:0,left:`${0===t?0:v(a[0].weight/n*1440)}%`,width:`${i}%`,background:e.peak?Ot:Ht,overflow:"hidden"}},i>=11?r.createElement("span",{style:{position:"absolute",inset:0,textAlign:"center",fontSize:"9px",lineHeight:"14px",fontWeight:500,color:"rgba(255,255,255,0.95)"}},s(e.peak?"quota.peak.tag.peak":"quota.peak.tag.idle")):null)}),r.createElement("span",{"data-testid":"quota-peak-now",style:{position:"absolute",top:0,bottom:0,left:0,width:"3px",borderRadius:"3px",background:"var(--dsw-specific-menu)"}})),!0===e?r.createElement("div",{"data-testid":"quota-peak-caption",style:{fontSize:"11px",lineHeight:1.6,color:"var(--dsw-alias-label-tertiary)",marginTop:"2px"}},s(n.captionKey)):null,!0===e&&h?r.createElement("div",{"data-testid":"quota-peak-caption-degraded",style:{fontSize:"11px",lineHeight:1.6,color:"var(--dsw-alias-label-tertiary)",marginTop:"2px"}},s("quota.peak.caption.degraded",{year:g.slice(0,4)})):null)}function Vt(e){if("string"!=typeof e)return null;const t=e.trim();if(""===t)return null;const a=Date.parse(/^\d{4}-\d{2}-\d{2}$/.test(t)?`${t}T23:59:59.999`:t);return Number.isFinite(a)?a:null}function Ft(e,t){const a="string"==typeof e.expiresAt&&""!==e.expiresAt.trim()?e.expiresAt.trim():"",r=Vt(a),n=null!==r&&r<Date.now();let s="";if(""!==a){let e=a;null!==r&&(e=a.length>10?`${ht(r)} ${gt(r)}`:ht(r),e=n?`${e} ${t("quota.resetCard.expired")}`:t("quota.resetCard.expires",{date:e})),s=e}const i="string"==typeof e.label&&""!==e.label?` · ${e.label}`:"";return{expired:n,title:`${t("quota.resetCard.title")}${i}`,expiry:s,iconColor:n?"var(--dsw-alias-state-warn-primary)":"var(--dsw-alias-state-success-primary)",textColor:n?"var(--dsw-alias-state-warn-primary)":"var(--dsw-alias-label-secondary)"}}function Ut(e,t=Date.now()){return(Array.isArray(e)?e:[]).map((e,a)=>{const r=Vt(e?.expiresAt);return{card:e,index:a,key:null!==r&&r>=t?r:Number.POSITIVE_INFINITY}}).sort((e,t)=>e.key-t.key||e.index-t.index).map(e=>e.card)}function Kt(e,t){const a="string"==typeof e?.errorCode?e.errorCode:"",r=a.indexOf(":"),n=-1===r?a:a.slice(0,r),s=-1===r?"":a.slice(r+1),i=[/^\d{3}$/.test(s)?`HTTP ${s}`:void 0,"string"==typeof e?.errorEndpoint&&""!==e.errorEndpoint?e.errorEndpoint:void 0,"string"==typeof e?.errorAccount&&""!==e.errorAccount?e.errorAccount:void 0,"string"==typeof e?.errorDetail&&""!==e.errorDetail?e.errorDetail:void 0].filter(e=>void 0!==e),o="number"==typeof e?.nextAllowedAt&&e.nextAllowedAt>Date.now()?` · ${t("quota.retryAt",{time:gt(e.nextAllowedAt)})}`:"";return`${function(e,t){const a=`quota.error.${e}`,r=t(a);return r===a?t("quota.error.unknown"):r}(n,t)}${i.length>0?` (${i.join(" · ")})`:""}${o}`}function Gt(e,t,a){const n=null!=a,s=kt(e,t),i={color:"var(--dsw-alias-label-secondary)",minWidth:0,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},o={color:"var(--dsw-alias-label-primary)",fontWeight:500,fontVariantNumeric:"tabular-nums",whiteSpace:"nowrap",flexShrink:0};let l=null;if("string"==typeof e.resetsAt){const s=Date.parse(e.resetsAt);Number.isFinite(s)&&s>Date.now()&&(l=r.createElement("div",{"data-testid":n?`quota-card-reset-${a}-${e.id}`:`quota-reset-${e.id}`,style:{fontSize:"11px",lineHeight:"16px",color:"var(--dsw-alias-label-tertiary)"}},t("quota.resetIn",{time:vt(s-Date.now(),t)})))}return"string"==typeof e.text?r.createElement("div",{key:e.id,...n?{"data-testid":`quota-card-window-${a}-${e.id}`}:{}},r.createElement("div",{style:{display:"flex",justifyContent:"space-between",gap:"10px",fontSize:"12px",lineHeight:"18px"}},r.createElement("span",{style:i,title:s},s),r.createElement("span",{"data-testid":n?`quota-card-text-${a}-${e.id}`:`quota-text-${e.id}`,style:o},e.text)),l):r.createElement("div",{key:e.id,...n?{"data-testid":`quota-card-window-${a}-${e.id}`}:{}},r.createElement("div",{"data-value":e.percent,style:{display:"flex",justifyContent:"space-between",gap:"10px",fontSize:"12px",lineHeight:"18px"}},r.createElement("span",{style:i,title:s},s),r.createElement("span",{style:{display:"flex",alignItems:"center",gap:"6px",flexShrink:0}},r.createElement("span",{style:o},wt(e)),!0===e.stale?r.createElement("span",{"data-testid":n?`quota-card-stale-${a}-${e.id}`:`quota-stale-${e.id}`,title:t("quota.window.staleTip"),style:ae("warning",{padding:"1px 7px",flexShrink:0})},t("quota.window.stale")):null)),function(e,t,a,n){const s=!0===n?t<=20:t>=80;return r.createElement("div",{"data-testid":e,style:{height:"4px",...I(999),background:"var(--dsw-alias-interactive-bg-hover)",overflow:"hidden"}},r.createElement("div",{style:{height:"100%",width:`${Math.max(0,Math.min(100,t))}%`,...I(999),background:s?"var(--dsw-alias-state-warn-primary)":"var(--dsw-alias-state-success-primary)"}}))}(n?`quota-card-bar-${a}-${e.id}`:`quota-window-bar-${e.id}`,e.percent,0,!0===e.remaining),l)}let Yt=null;try{const t=e("react-dom");null!=t&&"function"==typeof t.createPortal&&(Yt=t.createPortal)}catch(e){Yt=null}function Qt(){if("undefined"==typeof window||null===window)return!1;if("function"==typeof window.matchMedia){const e=window.matchMedia("(max-width: 1023px)");return"boolean"==typeof e.matches&&e.matches}return"number"==typeof window.innerWidth&&window.innerWidth<=1023}const Jt=["gemini","claude","codex"];function Zt(e){const t=String(e?.kindKey?e.kindKey:e?.id??"").toLowerCase();return t.includes("gemini")?"gemini":t.includes("claude")||t.includes("gpt-oss")?"claude":t.includes("codex")||t.includes("chatgpt")?"codex":"other"}function Xt(e){const t=new Map;for(const a of e){const e=Zt(a),r=t.get(e)||[];r.push(a),t.set(e,r)}const a=[];for(const e of[...Jt,"other"]){const r=t.get(e);r&&r.length>0&&a.push({family:e,windows:r})}return a}function ea(e){const{balanceInfo:t,gaugeState:n,onCalibrate:s,translate:i}=e,[o,l]=a(!1),d=n.needleAngle,c=`${t.symbol}${n.baseline.toFixed(2)}`,u=t.rawText;return r.createElement("div",{"data-testid":"quota-big-fuel-gauge",style:{display:"flex",flexDirection:"column",alignItems:"center",marginTop:"8px",marginBottom:"8px",padding:"10px 4px 8px",borderRadius:"10px",background:"var(--dsw-alias-surface-l1, rgba(127, 127, 127, 0.05))",border:"1px solid var(--dsw-alias-border-l1, rgba(127, 127, 127, 0.1))"}},r.createElement("svg",{viewBox:"0 0 180 96",width:"180",height:"96",style:{overflow:"visible",display:"block"},"aria-hidden":!0},r.createElement("path",{d:"M 25 82 A 65 65 0 0 1 155 82",fill:"none",stroke:"var(--dsw-alias-border-l2)",strokeWidth:"7",strokeLinecap:"round"}),r.createElement("path",{d:"M 25 82 A 65 65 0 0 1 37.4 43.8",fill:"none",stroke:"var(--dsw-alias-state-error-primary)",strokeWidth:"7",strokeLinecap:"round"}),r.createElement("path",{d:"M 37.4 43.8 A 65 65 0 0 1 90 17",fill:"none",stroke:"var(--dsw-alias-state-warn-primary)",strokeWidth:"7"}),r.createElement("path",{d:"M 90 17 A 65 65 0 0 1 155 82",fill:"none",stroke:"var(--dsw-alias-state-success-primary)",strokeWidth:"7",strokeLinecap:"round"}),r.createElement("text",{x:"18",y:"86",fontSize:"11",fontWeight:"700",fill:"var(--dsw-alias-state-error-primary)",textAnchor:"end"},"E"),r.createElement("text",{x:"162",y:"86",fontSize:"11",fontWeight:"700",fill:"var(--dsw-alias-state-success-primary)",textAnchor:"start"},"F"),r.createElement("line",{x1:"90",y1:"17",x2:"90",y2:"23",stroke:"var(--dsw-specific-menu)",strokeWidth:"1.5"}),r.createElement("circle",{cx:"90",cy:"82",r:"7",fill:"var(--dsw-alias-label-secondary)"}),r.createElement("g",{style:{transformOrigin:"90px 82px",transform:`rotate(${d}deg)`,transition:"transform 0.4s cubic-bezier(0.2, 0.8, 0.2, 1)"}},r.createElement("line",{x1:"90",y1:"82",x2:"90",y2:"26",stroke:"var(--dsw-alias-label-primary)",strokeWidth:"2.4",strokeLinecap:"round"}),r.createElement("circle",{cx:"90",cy:"27",r:"1.8",fill:n.color})),r.createElement("circle",{cx:"90",cy:"82",r:"3.5",fill:"var(--dsw-specific-menu)"})),r.createElement("div",{style:{display:"flex",flexDirection:"column",alignItems:"center",marginTop:"-6px",gap:"2px"}},r.createElement("div",{"data-testid":"quota-gauge-balance-text",style:{fontSize:"20px",fontWeight:700,color:"var(--dsw-alias-label-primary)",lineHeight:"26px"}},u),r.createElement("div",{style:{fontSize:"11px",color:n.color,fontWeight:600}},i("quota.gauge.ratio",{percent:n.ratio})),r.createElement("div",{style:{display:"flex",alignItems:"center",gap:"6px",marginTop:"4px",fontSize:"11px",color:"var(--dsw-alias-label-tertiary)"}},r.createElement("span",null,`${i("quota.gauge.baseline")}: ${c}`),r.createElement("button",{type:"button","data-testid":"quota-gauge-calibrate-btn",title:i("quota.gauge.calibrateTip",{amount:u}),onClick:s,onMouseEnter:()=>l(!0),onMouseLeave:()=>l(!1),style:{background:"none",border:"none",padding:"1px 4px",fontSize:"11px",color:"var(--dsw-alias-brand-primary)",cursor:"pointer",textDecoration:o?"underline":"none"}},`[${i("quota.gauge.calibrate")}]`))))}function ta(e){const n=qe(),[s,l]=a(g.getSnapshot());i(()=>g.subscribe(()=>l(g.getSnapshot())),[]);const[d,c]=a(new Set),u=e=>c(t=>{const a=new Set(t);return a.has(e)?a.delete(e):a.add(e),a}),[p,m]=a(!1),h=e&&e.directoryStore,v=e&&"string"==typeof e.sessionId&&""!==e.sessionId?e.sessionId:void 0,[f,b]=a(null),y=null!=h?h:f;i(()=>{if(null!=h)return;if(void 0===v)return;let e=!1,a=null;const r=[250,500,1e3,2e3,4e3,8e3,15e3],n=s=>{if(e)return;let i=null;try{i=Ge()}catch(e){i=null}if(null==i||"function"!=typeof i.directoryFor)return;let o=null;try{o=i.directoryFor(v)}catch(e){o=null}if(null==o||void 0===o.store||null===o.store)s>=r.length||(a=t.timer.timeout(()=>{a=null,n(s+1)},r[s]));else{b(o.store);try{const e=o.load();e&&"function"==typeof e.catch&&e.catch(()=>{})}catch(e){}}};return n(0),()=>{e=!0,null!==a&&a()}},[h,v]),i(()=>{if(y)return pt(),qt},[y]);const[x,k]=a(y?y.getSnapshot():null);i(()=>{if(y)return k(y.getSnapshot()),y.subscribe(()=>k(y.getSnapshot()))},[y]),i(()=>{y&&(null===x||null==x?.current)&&e&&"function"==typeof e.loadDirectory&&e.loadDirectory()},[y,x,e&&e.loadDirectory]);const[w,E]=a(!1),S=o(null),q=o(null),[C,z]=a(Qt);i(()=>{if("undefined"==typeof window||null===window||"function"!=typeof window.matchMedia)return;const e=window.matchMedia("(max-width: 1023px)"),t=()=>z(e.matches);return t(),"function"==typeof e.addEventListener?e.addEventListener("change",t):"function"==typeof e.addListener&&e.addListener(t),()=>{"function"==typeof e.removeEventListener?e.removeEventListener("change",t):"function"==typeof e.removeListener&&e.removeListener(t)}},[]);const[A,T]=a(!1),M=x?.current?.provider??null,O=x?.current?.model??null,H=null!==M?(s.providers||[]).find(e=>e.provider===M&&!0===e.adapted):null,R=Array.isArray(H?.windows)?H.windows:[],D="cliproxy"===H?.kind?function(e){if("string"!=typeof e||""===e.trim())return null;const t=e.trim().toLowerCase();return t.includes("claude")||t.includes("gpt-oss")?"claude":t.includes("gemini")?"gemini":t.includes("codex")||t.includes("gpt")||t.includes("chatgpt")||/(?:^|[-_/])o[134](?:[-_/]|$)/.test(t)?"codex":null}(O):null,N="claude"===D?"Claude":"gemini"===D?"Gemini":"codex"===D?"Codex":null,L=null!==D?R.filter(e=>function(e,t){return!t||Zt(e)===t}(e,D)):R,$=L.length>0&&!A?L:R,W=(L.length>0?L:R).filter(e=>"number"==typeof e.percent),j=e=>!0===e.remaining?100-e.percent:e.percent,B=W.length>0?W.reduce((e,t)=>j(t)>j(e)?t:e,W[0]):null,_=null===B?Ct($):null,P=null!==_,[,V]=a(0),F=P?zt(M,_.amount,_.currency):0,U=P?Tt(_.amount,F,_.currency):null;i(()=>{T(!1)},[M,O,w]);const K=o(new Set);i(()=>{if(null===M)return;const e=(s.providers||[]).find(e=>e.provider===M&&!0===e.adapted);(void 0===e||!1===Array.isArray(e.windows)&&!0!==e.refreshing&&void 0===e.errorCode)&&!K.current.has(M)&&(K.current.add(M),Mt({providers:[M]}))},[M,s]),i(()=>{if(!w||"undefined"==typeof document)return;const e=e=>{S.current&&e.target instanceof Node&&S.current.contains(e.target)||q.current&&e.target instanceof Node&&q.current.contains(e.target)||E(!1)},t=e=>{"Escape"===e.key&&E(!1)};return document.addEventListener("pointerdown",e),document.addEventListener("keydown",t),()=>{document.removeEventListener("pointerdown",e),document.removeEventListener("keydown",t)}},[w]);const G=w&&C&&null!==Yt&&"undefined"!=typeof document&&null!==document.body&&void 0!==document.body,[Y,Q]=a(null);if(i(()=>{if(!w||!G)return;const e=()=>{if(S.current&&"function"==typeof S.current.getBoundingClientRect&&"undefined"!=typeof window)try{const e=S.current.getBoundingClientRect();e&&"number"==typeof e.top&&Number.isFinite(e.top)&&Q(Math.max(16,Math.round(window.innerHeight-e.top+8)))}catch(e){}};return e(),"undefined"!=typeof window&&"function"==typeof window.addEventListener&&(window.addEventListener("resize",e),window.addEventListener("scroll",e,!0)),()=>{"undefined"!=typeof window&&"function"==typeof window.removeEventListener&&(window.removeEventListener("resize",e),window.removeEventListener("scroll",e,!0))}},[w,G]),null==H)return null;const J=null===B?0:B.percent,Z=null!==B,X=!Z||!0===B.remaining,ee=n(X?"quota.panel.remaining":"quota.panel.used"),te=P?U.color:(X?J<=20:J>=80)?"var(--dsw-alias-state-warn-primary)":"var(--dsw-alias-state-success-primary)",ae=2*Math.PI*5.5,re=H?.displayName||M,ne=N?`${re} · ${N}`:re,se=Z?`${n("quota.ring.label")} · ${ne} · ${ee} ${J}%`:`${n("quota.ring.label")} · ${ne}`,ie=void 0!==H.errorCode?r.createElement("div",{style:{marginTop:"8px",fontSize:"12px",lineHeight:"18px",color:"var(--dsw-alias-state-error-primary)"}},Kt(H,n)):null,oe=!0===H.refreshing||"number"==typeof H.fetchedAt?r.createElement("div",{style:{marginTop:"8px",fontSize:"11px",color:"var(--dsw-alias-label-tertiary)"}},!0===H.refreshing?n("quota.refreshing"):n("quota.updated",{time:gt(H.fetchedAt)})):null,le=_t(H,R),de=r.createElement("button",{type:"button","data-testid":"quota-ring-trigger","aria-label":se,"aria-haspopup":"dialog","aria-expanded":w,title:se,onClick:()=>{const e=!w;if(e&&S.current&&"function"==typeof S.current.getBoundingClientRect&&"undefined"!=typeof window)try{const e=S.current.getBoundingClientRect();e&&"number"==typeof e.top&&Number.isFinite(e.top)&&Q(Math.max(16,Math.round(window.innerHeight-e.top+8)))}catch(e){}E(e),e&&Mt({providers:null===M?[]:[M]})},style:{width:"28px",height:"28px",border:"none",...I("999px"),background:"transparent",cursor:"pointer",display:"grid",placeItems:"center",padding:0,color:"var(--dsw-alias-label-secondary)"}},P?r.createElement("svg",{viewBox:"0 0 20 20",width:"17",height:"17","aria-hidden":!0,style:{display:"block"}},r.createElement("path",{d:"M 3.8 15 A 7.5 7.5 0 1 1 16.2 15",fill:"none",stroke:"var(--dsw-alias-border-l3)",strokeWidth:"2.2",strokeLinecap:"round"}),r.createElement("path",{d:"high"===U.gear?"M 3.8 15 A 7.5 7.5 0 1 1 16.2 15":"mid"===U.gear?"M 3.8 15 A 7.5 7.5 0 0 1 10 3.0":"M 3.8 15 A 7.5 7.5 0 0 1 2.6 9.2",fill:"none",stroke:U.color,strokeWidth:"2.2",strokeLinecap:"round"}),r.createElement("circle",{cx:"10",cy:"10.5",r:"2.0",fill:U.color}),r.createElement("line",{x1:"10",y1:"10.5",x2:"high"===U.gear?"13.9":"mid"===U.gear?"10":"6.1",y2:"high"===U.gear?"8.25":"mid"===U.gear?"5.5":"12.8",stroke:U.color,strokeWidth:"2.0",strokeLinecap:"round"})):r.createElement("svg",{viewBox:"0 0 14 14",width:"14",height:"14","aria-hidden":!0},r.createElement("circle",{cx:"7",cy:"7",r:5.5,fill:"none",stroke:"var(--dsw-alias-border-l3)",strokeWidth:"2"}),r.createElement("circle",{cx:"7",cy:"7",r:5.5,fill:"none",stroke:te,strokeWidth:"2",strokeLinecap:"round",strokeDasharray:`${ae*J/100} ${ae}`,transform:"rotate(-90 7 7)"}))),ce=w?r.createElement("div",{ref:q,role:"dialog","aria-label":n("quota.panel.title"),"data-testid":"quota-ring-panel",style:G?{position:"fixed",left:"50%",bottom:(null!==Y?Y:80)+"px",transform:"translateX(-50%)",zIndex:1e3,boxSizing:"border-box",width:"min(280px, calc(100vw - 32px))",maxHeight:`min(560px, calc(100dvh - ${(null!==Y?Y:80)+16}px))`,overflowY:"auto",padding:"12px",borderRadius:"12px",background:"var(--dsw-specific-menu)",border:"1px solid var(--dsw-alias-border-inverted)",boxShadow:"var(--dsw-shadow-lv3)"}:{position:"absolute",bottom:"calc(100% + 8px)",right:0,zIndex:100,boxSizing:"border-box",width:"max-content",minWidth:"240px",maxWidth:"min(480px, calc(100vw - 32px))",padding:"12px",borderRadius:"12px",background:"var(--dsw-specific-menu)",border:"1px solid var(--dsw-alias-border-inverted)",boxShadow:"var(--dsw-shadow-lv3)"}},r.createElement("div",{style:{display:"flex",alignItems:"baseline",gap:"6px"}},r.createElement("span",{style:{fontSize:"12px",color:"var(--dsw-alias-label-tertiary)"}},ee),r.createElement("span",{style:{marginLeft:"auto",fontSize:"11px",color:"var(--dsw-alias-label-secondary)"}},ne)),...P?[r.createElement(ea,{key:"panel-big-fuel-gauge",balanceInfo:_,gaugeState:U,onCalibrate:()=>{P&&M&&_&&null!==At(M,_.amount,_.currency)&&V(e=>e+1)},translate:n})]:[],r.createElement("div",{style:{marginTop:P?"4px":"10px",display:"flex",flexDirection:"column",gap:"8px"}},(()=>{const e="cliproxy"!==H?.kind||!A&&null!==D?null:Xt($);return e&&e.length>1?e.map((e,t)=>r.createElement("div",{key:`ring-family-${e.family}`,"data-testid":`quota-ring-family-${e.family}`,style:{display:"flex",flexDirection:"column",gap:"6px",marginTop:0===t?"0":"4px",paddingTop:0===t?"0":"8px",borderTop:0===t?"none":"1px solid var(--dsw-alias-border-l1)"}},r.createElement("div",{"data-testid":`quota-ring-family-title-${e.family}`,style:{fontSize:"11px",fontWeight:600,color:"var(--dsw-alias-label-secondary)"}},n("quota.family."+e.family)),e.windows.map(e=>Gt(e,n,null)))):$.map(e=>Gt(e,n,null))})()),R.length>L.length&&L.length>0?r.createElement("div",{style:{marginTop:"6px",textAlign:"center"}},r.createElement("button",{type:"button","data-testid":"quota-ring-toggle-all",onClick:()=>T(!A),style:{fontSize:"11px",color:"var(--dsw-alias-brand-primary)",background:"transparent",border:"none",cursor:"pointer",padding:"2px 6px",textDecoration:"underline"}},A?n("quota.filter.currentOnly"):n("quota.filter.showAll",{count:R.length}))):null,...null!==le?[r.createElement(Pt,{key:"panel-peak-timeline",showCaption:!1,schedule:le})]:[],...(()=>{const e=function(e,t=Date.now()){if(!Array.isArray(e)||0===e.length)return[];const a=[],r=new Map;for(const t of e){const e="string"==typeof t?.account?t.account.trim():"",n=""===e?"\0provider":e;let s=r.get(n);void 0===s&&(s=a.length,r.set(n,s),a.push({account:e,cards:[]})),a[s].cards.push(t)}for(const e of a)e.cards=Ut(e.cards,t);return a}(H.resetCards);return 0===e.length?[]:[r.createElement("div",{key:"panel-reset-cards","data-testid":"panel-reset-cards",style:{marginTop:"10px",paddingTop:"8px",borderTop:"1px solid var(--dsw-alias-border-l1)",display:"flex",flexDirection:"column",gap:"6px"}},"cliproxy"===H?.kind?r.createElement("button",{key:"panel-reset-title",type:"button","data-testid":"quota-panel-reset-title","aria-expanded":String(p),onClick:()=>m(!p),style:{display:"flex",alignItems:"center",alignSelf:"flex-start",fontSize:"11px",fontWeight:600,color:"var(--dsw-alias-label-secondary)",background:"transparent",border:"none",cursor:"pointer",padding:0,textAlign:"left"}},`${p?"▾":"▸"} ${n("quota.resetCard.codexTitle")}`):null,..."cliproxy"!==H?.kind||p?e.map((t,a)=>{const s=d.has(`panel:${a}`),i=s?t.cards:t.cards.slice(0,1),o=t.cards.length-i.length,l=""!==t.account?t.account:n("quota.resetCard.title");return r.createElement("div",{key:`panel-reset-group-${a}`,"data-testid":`quota-panel-reset-group-${a}`,style:{display:"flex",flexDirection:"column",gap:"2px"}},e.length>1||""!==t.account?r.createElement("div",{"data-testid":`quota-panel-reset-owner-${a}`,title:l,style:{fontSize:"11px",color:"var(--dsw-alias-label-secondary)",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"}},l):null,i.map((e,t)=>{const s=Ft(e,n);return r.createElement("div",{key:`panel-reset-card-${t}`,"data-testid":`quota-panel-reset-card-${a}-${t}`,style:{display:"flex",alignItems:"center",gap:"6px",fontSize:"11px",lineHeight:"16px",color:s.textColor}},r.createElement("svg",{width:12,height:12,viewBox:"0 0 24 24",fill:"none",stroke:s.iconColor,strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":!0,style:{flexShrink:0}},r.createElement("rect",{x:2,y:5,width:20,height:14,rx:2}),r.createElement("line",{x1:2,y1:10,x2:22,y2:10})),r.createElement("span",{style:{minWidth:0,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"}},""!==s.expiry?`${s.title} · ${s.expiry}`:s.title))}),o>0?r.createElement("button",{type:"button","data-testid":`quota-panel-reset-more-${a}`,onClick:()=>u(`panel:${a}`),style:{alignSelf:"flex-start",fontSize:"11px",color:"var(--dsw-alias-brand-primary)",background:"transparent",border:"none",cursor:"pointer",padding:"0 2px",textDecoration:"underline"}},n("quota.resetCard.more",{count:o})):null,s&&t.cards.length>1?r.createElement("button",{type:"button","data-testid":`quota-panel-reset-less-${a}`,onClick:()=>u(`panel:${a}`),style:{alignSelf:"flex-start",fontSize:"11px",color:"var(--dsw-alias-label-secondary)",background:"transparent",border:"none",cursor:"pointer",padding:"0 2px",textDecoration:"underline"}},n("quota.resetCard.less")):null)}):[])]})(),ie,oe):null;return r.createElement("span",{ref:S,style:{position:"relative",display:"inline-flex"}},de,G?Yt(ce,document.body):ce)}function aa(){const e=qe(),{snapshot:t}=ce(),[a,n]=r.useState(!1),s="ready"===t.status&&!0===t.writable;return r.createElement("li",{style:{listStyle:"none",border:"1px solid "+(a?"var(--dsw-alias-label-dimmed)":"var(--dsw-alias-border-l2)"),borderRadius:"12px",color:"var(--dsw-alias-label-primary)",background:a?"var(--dsw-alias-bg-layer-2)":"var(--dsw-alias-bg-layer-3)"}},r.createElement("button",{type:"button","data-testid":"feature-card-toggle","aria-expanded":String(a),onClick:()=>n(!a),style:{appearance:"none",width:"100%",display:"flex",alignItems:"center",gap:"12px",padding:"14px 16px",border:0,borderRadius:"12px",background:"transparent",color:"inherit",font:"inherit",textAlign:"left",cursor:"pointer"}},r.createElement("span",{style:{display:"flex",minWidth:0,flex:1,flexDirection:"column",gap:"4px"}},r.createElement("span",{style:{fontSize:"15px",fontWeight:600,lineHeight:1.4}},e("features.cardTitle")),r.createElement("span",{style:{fontSize:"13px",lineHeight:1.5,color:"var(--dsw-alias-label-tertiary)"}},e("features.cardHint"))),r.createElement("svg",{viewBox:"0 0 14 14",width:14,height:14,"aria-hidden":"true",style:{flex:"none",color:"var(--dsw-alias-label-tertiary)",transform:a?"rotate(180deg)":"none",transition:"transform .16s"}},r.createElement("path",{d:"M3 5.25 7 9l4-3.75",fill:"none",stroke:"currentColor",strokeWidth:1.4,strokeLinecap:"round",strokeLinejoin:"round"}))),a?r.createElement("div",{style:{margin:"0 16px",padding:"12px 0 8px",borderTop:"1px solid var(--dsw-alias-border-l2)"}},r.createElement(na,null),s?null:r.createElement("p",{style:{margin:"6px 0 0",fontSize:"11px",color:"var(--dsw-alias-label-tertiary)"}},e("features.readOnly"))):null)}const ra=[["features.group.runtime",["healthDiagnostics","modelUsage","quotaLookup"],!0],["features.group.maintenance",["backupMaintenance","skillManager","subagentRoute","sessionManager"],!0],["features.group.interaction",["taskNotifications","mobileAdaptation","modelProviderIcons","fileEditor"],!0],["features.external",["healthz"],!1]];function na(){const e=qe(),{snapshot:t,value:n}=ce(),[s,i]=a(""),o="ready"===t.status&&!0===t.writable,l=t=>r.createElement("div",{key:t,style:{display:"flex",alignItems:"center",justifyContent:"space-between",gap:"14px",padding:"7px 0"}},r.createElement("span",{style:{fontSize:"13px",color:"var(--dsw-alias-label-primary)"}},e("features."+t)),r.createElement("button",{type:"button",role:"switch","data-testid":"feature-switch-"+t,"aria-checked":String(!1!==n[t]),disabled:!o||s===t,onClick:async()=>{i(t);try{await X.set(t,!1===n[t])}catch(e){}i("")},style:{width:"34px",height:"20px",...I("10px"),padding:0,flexShrink:0,position:"relative",border:"1px solid "+(!1!==n[t]?"var(--dsw-alias-state-success-primary)":"var(--dsw-alias-border-l2)"),background:!1!==n[t]?"var(--dsw-alias-state-success-primary)":"var(--dsw-alias-bg-layer-2)",cursor:o&&""===s?"pointer":"default",opacity:o?1:.5,lineHeight:0}},r.createElement("span",{style:{position:"absolute",top:"1px",left:!1!==n[t]?"15px":"1px",width:"16px",height:"16px",...I("50%"),background:!1!==n[t]?"#fff":"var(--dsw-alias-label-tertiary)"}})));return r.createElement("div",null,ra.map(([t,a])=>r.createElement("div",{key:t,style:{marginTop:"10px"}},r.createElement("div",{style:{fontSize:"12px",fontWeight:700,marginBottom:"2px"}},e(t)),a.map(l))))}function sa(){const e=qe(),[n,s]=a(be()),[l,d]=a(fe()),[c,u]=a(!1),[p,m]=a(null),g=o(null),[,h]=a(0),v=()=>{u(!0),null!==g.current&&g.current(),g.current=t.timer.timeout(()=>{g.current=null,u(!1)},2e3)};i(()=>()=>{null!==g.current&&g.current(),g.current=null},[]),i(()=>{if("function"==typeof t.slots?.subscribe)return t.slots.subscribe("settings.section",()=>h(e=>e+1))},[]),i(()=>{const e=()=>{s(be()),d(fe())};return he.add(e),()=>he.delete(e)},[]);const f=ge(),b=new Map;for(const e of f){const t=e.options?.id??e.options?.key??"";t&&!b.has(t)&&b.set(t,{id:t,label:ye(e.options),defaultOrder:e.options?.order??0})}let y=[];if(n&&n.length>0)for(const e of n)b.has(e)&&(y.push(b.get(e)),b.delete(e));const x=Array.from(b.values()).sort((e,t)=>e.defaultOrder-t.defaultOrder);y=y.concat(x);const k=(e,t)=>{if(e<0||t<0||e>=y.length||t>=y.length||e===t)return;const a=y.map(e=>e.id),[r]=a.splice(e,1);a.splice(t,0,r),s(a),ke(a),ve(),Ee(a,Array.isArray(l)?l:[])},w=new Set(Array.isArray(l)?l:[]);return r.createElement("div",{"data-testid":"config-nav-order-page",style:{display:"flex",flexDirection:"column",gap:"12px"}},r.createElement("div",{style:{display:"flex",alignItems:"flex-start",justifyContent:"space-between",gap:"12px",flexWrap:"wrap"}},r.createElement("div",{style:{minWidth:0,flex:"1 1 260px"}},r.createElement("div",{"data-testid":"nav-order-title",style:{fontSize:"14px",fontWeight:700,color:"var(--dsw-alias-label-primary)"}},e("config.navOrder.title"))),r.createElement("div",{style:{display:"flex",alignItems:"center",gap:"10px",flexWrap:"wrap"}},c?r.createElement("span",{"data-testid":"nav-order-saved-tip",style:{fontSize:"12px",color:"var(--dsw-alias-state-success-primary)"}},"✓ "+e("config.navOrder.saved")):null,r.createElement("button",{type:"button","data-testid":"nav-order-reset",onClick:()=>{s(null),d([]),ke(null),xe(null),ve(),v(),Se()},style:ee("ghost")},e("config.navOrder.reset")),r.createElement("button",{type:"button","data-testid":"nav-order-save",onClick:()=>{const e=y.map(e=>e.id);s(e),ke(e),xe(l),ve(),v(),Ee(e,Array.isArray(l)?l:[])},style:ee("primary")},e("config.navOrder.save")))),0===y.length?r.createElement("div",{style:{padding:"16px",textAlign:"center",color:"var(--dsw-alias-label-tertiary)",fontSize:"13px"}},e("config.navOrder.empty")):r.createElement("div",{"data-testid":"nav-order-list",style:{display:"flex",flexDirection:"column",gap:"8px"}},y.map((t,a)=>{const s="dsh-service"===t.id||!w.has(t.id),i="dsh-service"===t.id,o=p===a;return r.createElement("div",{key:t.id,"data-testid":"nav-order-item-"+t.id,draggable:!0,onDragStart:e=>{try{e.dataTransfer.setData("text/plain",String(a)),e.dataTransfer.effectAllowed="move"}catch(e){}m(a)},onDragOver:e=>{e.preventDefault();try{e.dataTransfer.dropEffect="move"}catch(e){}},onDrop:e=>{e.preventDefault();let t=a;try{const a=e.dataTransfer.getData("text/plain");t=Number.parseInt(a,10)}catch(e){}Number.isNaN(t)||t===a||k(t,a),m(null)},onDragEnd:()=>m(null),style:{display:"flex",alignItems:"center",justifyContent:"space-between",gap:"12px",padding:"9px 14px",borderRadius:"var(--dsh-svc-radius-control, 8px)",border:"1px solid "+(o?"var(--dsh-svc-brand)":"var(--dsw-alias-border-l1)"),background:o?"var(--dsw-alias-interactive-bg-hover)":"var(--dsh-svc-card-bg)",opacity:s?1:.5,transition:"border-color 120ms, background 120ms, opacity 120ms",cursor:"grab",userSelect:"none"}},r.createElement("div",{style:{display:"flex",alignItems:"center",gap:"10px",minWidth:0}},r.createElement("span",{style:{color:"var(--dsw-alias-label-tertiary)",fontSize:"13px",cursor:"grab",letterSpacing:"-1px"},"aria-hidden":"true"},"⋮⋮"),r.createElement("span",{style:{fontSize:"13px",fontWeight:550,color:"var(--dsw-alias-label-primary)",whiteSpace:"nowrap",overflow:"hidden",textOverflow:"ellipsis"}},t.label||t.id),r.createElement("span",{style:{fontSize:"11px",padding:"1px 6px",borderRadius:"4px",background:"var(--dsw-alias-bg-layer-2)",color:"var(--dsw-alias-label-tertiary)",fontFamily:"monospace"}},t.id),i?r.createElement("span",{style:{fontSize:"11px",padding:"1px 6px",borderRadius:"4px",background:"rgba(59,130,246,0.12)",color:"var(--dsh-svc-brand)",fontWeight:500}},e("config.navOrder.locked")):null),r.createElement("div",{style:{display:"flex",alignItems:"center",gap:"8px",flexShrink:0}},r.createElement("button",{type:"button","data-testid":"nav-order-up-"+t.id,"aria-label":e("config.navOrder.moveUp"),title:e("config.navOrder.moveUp"),disabled:0===a,onClick:e=>{e.stopPropagation(),k(a,a-1)},style:{display:"inline-flex",alignItems:"center",justifyContent:"center",width:"24px",height:"24px",padding:0,borderRadius:"6px",border:"1px solid var(--dsw-alias-border-l2)",background:"var(--dsw-alias-bg-layer-2)",color:0===a?"var(--dsw-alias-label-tertiary)":"var(--dsw-alias-label-primary)",cursor:0===a?"default":"pointer",opacity:0===a?.35:1,fontSize:"12px",lineHeight:"24px"}},"↑"),r.createElement("button",{type:"button","data-testid":"nav-order-down-"+t.id,"aria-label":e("config.navOrder.moveDown"),title:e("config.navOrder.moveDown"),disabled:a===y.length-1,onClick:e=>{e.stopPropagation(),k(a,a+1)},style:{display:"inline-flex",alignItems:"center",justifyContent:"center",width:"24px",height:"24px",padding:0,borderRadius:"6px",border:"1px solid var(--dsw-alias-border-l2)",background:"var(--dsw-alias-bg-layer-2)",color:a===y.length-1?"var(--dsw-alias-label-tertiary)":"var(--dsw-alias-label-primary)",cursor:a===y.length-1?"default":"pointer",opacity:a===y.length-1?.35:1,fontSize:"12px",lineHeight:"24px"}},"↓"),r.createElement("button",{type:"button",role:"switch","data-testid":"nav-order-toggle-"+t.id,"aria-checked":String(s),"aria-label":e(s?"config.navOrder.visible":"config.navOrder.hidden"),title:e(i?"config.navOrder.locked":s?"config.navOrder.visible":"config.navOrder.hidden"),disabled:i,onClick:e=>{e.stopPropagation(),(e=>{if("dsh-service"===e)return;const t=Array.isArray(l)?l:[],a=new Set(t);a.has(e)?a.delete(e):a.add(e);const r=Array.from(a);d(r),xe(r),ve(),Ee(Array.isArray(n)?n:null,r)})(t.id)},style:{width:"34px",height:"20px",...I("10px"),padding:0,position:"relative",flexShrink:0,border:"1px solid "+(s?"var(--dsw-alias-state-success-primary)":"var(--dsw-alias-border-l2)"),background:s?"var(--dsw-alias-state-success-primary)":"var(--dsw-alias-bg-layer-2)",cursor:i?"not-allowed":"pointer",opacity:i?.6:1,lineHeight:0}},r.createElement("span",{style:{position:"absolute",top:"1px",left:s?"15px":"1px",width:"16px",height:"16px",...I("50%"),background:s?"#fff":"var(--dsw-alias-label-tertiary)",transition:"left 120ms ease"}}))))})))}const ia=["inherit","follow","custom"],oa="dsh-service-subagent-route-cache",la=e=>null!==e&&"object"==typeof e&&"string"==typeof e.provider&&"string"==typeof e.id;function da(){try{const e=JSON.parse(localStorage.getItem(oa)||"null");return null===e||"object"!=typeof e?null:ia.includes(e.mode)&&Array.isArray(e.models)&&e.models.every(la)?{mode:e.mode,provider:"string"==typeof e.provider?e.provider:"",model:"string"==typeof e.model?e.model:"",reasoningEffort:"string"==typeof e.reasoningEffort?e.reasoningEffort:"",fallbacks:Array.isArray(e.fallbacks)?e.fallbacks:[],models:e.models,...null!==e.current&&"object"==typeof e.current?{current:e.current}:{},..."boolean"==typeof e.available?{available:e.available}:{}}:null}catch(e){return null}}function ca(){const e=qe(),{useState:t,useEffect:a}=r,n=r.useRef(null);null===n.current&&(n.current={cached:da()});const s=!1!==ce().value.subagentModelsDock,i=n.current.cached,[o,l]=t(i),[d,c]=t(null!==i?i.mode:"inherit"),[u,p]=t(null!==i?i.provider:""),[m,g]=t(null!==i?i.model:""),[v,f]=t(!0),[b,y]=t(!1),[x,k]=t(0),[w,E]=t(""),[S,q]=t(null!==i?i.reasoningEffort:""),[C,z]=t(null!==i?i.fallbacks:[]),[A,T]=t(!1),M={color:"var(--dsw-alias-label-secondary)",fontSize:"12px",marginTop:"8px",lineHeight:1.5},O={fontSize:"12px",padding:"4px 8px",borderRadius:"6px",border:"1px solid var(--dsw-alias-border-l2)",background:"var(--dsw-alias-bg-layer-2)",color:"var(--dsw-alias-label-primary)",maxWidth:"100%"},H=async()=>{f(!0);try{const e=await h("subagent-route",{});e.ok?(l(e.value),c(e.value.mode),z(Array.isArray(e.value.fallbacks)?e.value.fallbacks:[]),"string"==typeof e.value.provider&&p(e.value.provider),"string"==typeof e.value.model&&g(e.value.model),q("string"==typeof e.value.reasoningEffort?e.value.reasoningEffort:""),function(e){if(null!==e&&"object"==typeof e&&ia.includes(e.mode)&&Array.isArray(e.models))try{localStorage.setItem(oa,JSON.stringify({mode:e.mode,provider:"string"==typeof e.provider?e.provider:"",model:"string"==typeof e.model?e.model:"",reasoningEffort:"string"==typeof e.reasoningEffort?e.reasoningEffort:"",fallbacks:Array.isArray(e.fallbacks)?e.fallbacks:[],models:e.models.filter(la),...null!==e.current&&"object"==typeof e.current?{current:e.current}:{},..."boolean"==typeof e.available?{available:e.available}:{}}))}catch(e){}}(e.value),E("")):E(e.error||"unknown")}catch(e){E("network")}finally{f(!1)}};a(()=>{H()},[]);const R=null!==o&&Array.isArray(o.models)?o.models:[],D=[],N={};for(const e of R)void 0===N[e.provider]&&(N[e.provider]=e.providerName,D.push(e.provider));const L=e=>R.filter(t=>t.provider===e),$=e=>{const t=[],a=new Set;for(const r of e?.reasoning?.efforts??[]){if(null===r||"object"!=typeof r)continue;const e="string"==typeof r.id?r.id:"";""===e||a.has(e)||(a.add(e),t.push({id:e,name:"string"==typeof r.name&&""!==r.name?r.name:e,description:"string"==typeof r.description&&""!==r.description?r.description:void 0}))}return t},W=D.includes(u)?u:D[0]??"",j=L(W),B=j.some(e=>e.id===m)?m:j[0]?.id??"",_=j.find(e=>e.id===B)??null,P=$(_),V=P.some(e=>e.id===S)?S:"",F=(e,t)=>{z(a=>a.map((a,r)=>r===e?{...a,...t}:a))},U=(e,t)=>{z(a=>{const r=e+t;if(r<0||r>=a.length)return a;const n=[...a],s=n.splice(e,1)[0];return n.splice(r,0,s),n})};a(()=>{A&&C.length<2&&T(!1)},[C.length]);const K=async e=>{y(!0),E("");try{const t=("custom"===e||"follow"===e)&&C.length>0?{fallbacks:C}:{},a="custom"===e?{mode:"custom",provider:W,model:B,...""!==V?{reasoningEffort:V}:{},...t}:{mode:e,...t},r=await h("subagent-route-save",a);r.ok?(k(e=>e+1),await H()):E(r.error||"unknown")}catch(e){E("network")}finally{y(!1)}},G=ne(),Y=(e,t,a,n)=>r.createElement("button",{type:"button","data-testid":e,disabled:t||b,onClick:a,style:{fontSize:"12px",lineHeight:"14px",width:"24px",height:"24px",padding:0,borderRadius:"6px",border:"1px solid var(--dsh-svc-border-strong)",background:"transparent",color:"var(--dsh-svc-text)",cursor:t||b?"default":"pointer",opacity:t||b?.55:1}},n),Q={fontSize:"12px",color:"var(--dsw-alias-label-secondary)",width:"88px",flexShrink:0};return r.createElement("div",{"data-testid":"subagent-section",style:G},r.createElement("div",{style:{fontSize:"14px",fontWeight:700}},e("subagent.title")),r.createElement("p",{style:M},e("subagent.hint")),r.createElement("div",{"data-testid":"subagent-dock-toggle-row",style:{display:"flex",alignItems:"center",gap:"10px",marginTop:"12px",padding:"10px 12px",border:"1px solid var(--dsh-svc-border)",borderRadius:"8px",background:"var(--dsh-svc-raised-bg)"}},r.createElement("div",{style:{flex:1,minWidth:0}},r.createElement("div",{style:{fontSize:"13px",fontWeight:600,color:"var(--dsw-alias-label-primary)"}},e("subagent.dock.title"))),r.createElement("button",{type:"button",role:"switch","aria-checked":String(s),"data-testid":"subagent-dock-toggle",onClick:()=>{X.set("subagentModelsDock",!s).catch(()=>{})},style:{width:"34px",height:"20px",...I("10px"),padding:0,flexShrink:0,position:"relative",border:"1px solid "+(s?"var(--dsw-alias-state-success-primary)":"var(--dsw-alias-border-l2)"),background:s?"var(--dsw-alias-state-success-primary)":"var(--dsw-alias-bg-layer-2)",cursor:"pointer",lineHeight:0}},r.createElement("span",{style:{position:"absolute",top:"1px",left:s?"15px":"1px",width:"16px",height:"16px",...I("50%"),background:s?"#fff":"var(--dsw-alias-label-tertiary)",transition:"left 150ms ease"}}))),null!==o&&!1===o.available?r.createElement("p",{"data-testid":"subagent-unavailable",style:{...M,color:"var(--dsw-alias-state-warn-primary)"}},e("subagent.unavailable")):null,v&&null===o?r.createElement("p",{"data-testid":"subagent-loading",style:M},e("subagent.loading")):null,r.createElement("div",{"data-testid":"subagent-modes",style:{display:"flex",gap:"8px",marginTop:"12px",flexWrap:"wrap"}},ia.map(t=>r.createElement("button",{type:"button",key:t,"data-testid":"subagent-mode-"+t,"aria-pressed":String(d===t),disabled:v,onClick:()=>c(t),style:Object.assign({},te(),{cursor:v?"default":"pointer",background:d===t?"var(--dsh-svc-tab-active-bg)":"transparent",color:d===t?"var(--dsh-svc-tab-active-text)":"var(--dsh-svc-text)",opacity:v?.55:1})},e("subagent.mode."+t)))),r.createElement("p",{"data-testid":"subagent-mode-desc",style:{...M,marginTop:"8px"}},e("subagent.mode."+d+".desc")),"custom"===d?r.createElement("div",{"data-testid":"subagent-custom",style:{marginTop:"8px"}},r.createElement("div",{style:{display:"flex",alignItems:"center",gap:"10px",marginTop:"4px"}},r.createElement("span",{style:Q},e("subagent.provider")),r.createElement("select",{"data-testid":"subagent-provider",value:W,disabled:0===D.length||b,onChange:e=>p(e.target.value),style:O},D.map(e=>r.createElement("option",{key:e,value:e},N[e]??e)))),r.createElement("div",{style:{display:"flex",alignItems:"center",gap:"10px",marginTop:"4px"}},r.createElement("span",{style:Q},e("subagent.model")),r.createElement("select",{"data-testid":"subagent-model",value:B,disabled:0===j.length||b,onChange:e=>g(e.target.value),style:O},j.map(e=>r.createElement("option",{key:e.id,value:e.id},e.name??e.id)))),""!==B?r.createElement("div",{"data-testid":"subagent-reasoning-row",style:{display:"flex",alignItems:"center",gap:"10px",marginTop:"4px",flexWrap:"wrap"}},r.createElement("span",{style:Q},e("subagent.reasoningEffort")),r.createElement("select",{"data-testid":"subagent-reasoning-effort",value:V,disabled:b||0===P.length,onChange:e=>q(e.target.value),style:O},r.createElement("option",{value:""},e("subagent.reasoningEffort.default")),...P.map(e=>r.createElement("option",{key:e.id,value:e.id,...void 0!==e.description?{title:e.description}:{}},e.name))),0===P.length?r.createElement("span",{"data-testid":"subagent-reasoning-effort-unavailable",style:{fontSize:"12px",color:"var(--dsw-alias-state-warn-primary)"}},e("subagent.reasoningEffort.unavailable")):null):null):null,"custom"!==d||0!==R.length||v?null:r.createElement("p",{"data-testid":"subagent-models-empty",style:{...M,color:"var(--dsw-alias-state-warn-primary)"}},e("subagent.modelsEmpty")),"custom"===d||"follow"===d?r.createElement("div",{"data-testid":"subagent-fallback-block",style:{marginTop:"14px",borderTop:"1px solid var(--dsh-svc-border)",paddingTop:"12px"}},r.createElement("div",{style:{fontSize:"13px",fontWeight:700}},e("subagent.fallback.title")),r.createElement("p",{style:M},e("subagent.fallback.hint")),0===C.length?r.createElement("p",{"data-testid":"subagent-fallback-empty",style:{...M,color:"var(--dsw-alias-label-secondary)"}},e("subagent.fallback.empty")):null,C.map((t,a)=>{const n=D.includes(t.provider),s=n?L(t.provider):[],i=s.find(e=>e.id===t.model)??null,o=$(i),l=o.map(e=>e.id);return r.createElement("div",{key:a,"data-testid":"subagent-fallback-row",style:{marginTop:"8px",border:"1px solid var(--dsh-svc-border)",borderRadius:"8px",padding:"7px 10px 8px"}},r.createElement("div",{style:{display:"flex",alignItems:"center",gap:"8px",marginBottom:"2px"}},r.createElement("span",{style:{fontSize:"12px",fontWeight:600,color:"var(--dsw-alias-label-primary)"}},e("subagent.fallback.item",{index:String(a+1)})),r.createElement("span",{style:{marginLeft:"auto"}}),((e,t,a,n,s=!1)=>r.createElement("button",{type:"button","data-testid":e,disabled:t||b,onClick:a,style:{fontSize:"12px",padding:"3px 8px",borderRadius:"6px",border:"1px solid "+(s?"var(--dsw-alias-state-error-primary)":"var(--dsh-svc-border-strong)"),background:"transparent",color:s?"var(--dsw-alias-state-error-primary)":"var(--dsh-svc-text)",cursor:t||b?"default":"pointer",opacity:t||b?.55:1}},n))("subagent-fallback-remove-"+a,!1,()=>(e=>{z(t=>t.filter((t,a)=>a!==e))})(a),e("subagent.fallback.remove"),!0),A?Y("subagent-fallback-up-"+a,0===a,()=>U(a,-1),"▲"):null,A?Y("subagent-fallback-down-"+a,a===C.length-1,()=>U(a,1),"▼"):null),r.createElement("div",{style:{display:"flex",alignItems:"center",gap:"10px",marginTop:"4px"}},r.createElement("span",{style:Q},e("subagent.provider")),r.createElement("select",{"data-testid":"subagent-fallback-provider-"+a,value:n?t.provider:"",disabled:b,onChange:e=>{const t=e.target.value;F(a,{provider:t,model:L(t)[0]?.id??""})},style:O},r.createElement("option",{value:""},""),D.map(e=>r.createElement("option",{key:e,value:e},N[e]??e)))),r.createElement("div",{style:{display:"flex",alignItems:"center",gap:"10px",marginTop:"4px"}},r.createElement("span",{style:Q},e("subagent.model")),r.createElement("select",{"data-testid":"subagent-fallback-model-"+a,value:s.some(e=>e.id===t.model)?t.model:"",disabled:0===s.length||b,onChange:e=>{const r=e.target.value,n=s.find(e=>e.id===r)??null,i=$(n).map(e=>e.id);F(a,{model:r,..."string"!=typeof t.reasoningEffort||""===t.reasoningEffort||i.includes(t.reasoningEffort)?{}:{reasoningEffort:void 0}})},style:O},s.map(e=>r.createElement("option",{key:e.id,value:e.id},e.name??e.id)))),o.length>0?r.createElement("div",{"data-testid":"subagent-fallback-reasoning-row",style:{display:"flex",alignItems:"center",gap:"10px",marginTop:"4px"}},r.createElement("span",{style:Q},e("subagent.reasoningEffort")),r.createElement("select",{"data-testid":"subagent-fallback-effort-"+a,value:l.includes(t.reasoningEffort)?t.reasoningEffort:"",disabled:b,onChange:e=>F(a,{reasoningEffort:""===e.target.value?void 0:e.target.value}),style:O},r.createElement("option",{value:""},e("subagent.reasoningEffort.default")),...o.map(e=>r.createElement("option",{key:e.id,value:e.id,...void 0!==e.description?{title:e.description}:{}},e.name)))):r.createElement("span",{"data-testid":"subagent-fallback-effort-unavailable-"+a,style:{display:"inline-block",marginTop:"4px",fontSize:"12px",color:"var(--dsw-alias-state-warn-primary)"}},e("subagent.reasoningEffort.unavailable")))}),C.length>=10?r.createElement("p",{"data-testid":"subagent-fallback-limit",style:{...M,color:"var(--dsw-alias-state-warn-primary)"}},e("subagent.fallback.limit",{max:String(10)})):r.createElement("div",{style:{display:"flex",gap:"10px",marginTop:"8px",flexWrap:"wrap"}},r.createElement("button",{type:"button","data-testid":"subagent-fallback-add",disabled:b||0===D.length,onClick:()=>{z(e=>{if(e.length>=10)return e;const t=D[0]??"";return[...e,{provider:t,model:L(t)[0]?.id??""}]})},style:{fontSize:"12px",padding:"5px 12px",borderRadius:"var(--dsh-svc-radius-control)",border:"1px dashed var(--dsh-svc-border-strong)",background:"transparent",color:"var(--dsh-svc-text)",cursor:b||0===D.length?"default":"pointer",opacity:b||0===D.length?.55:1}},e("subagent.fallback.add")),C.length>1?r.createElement("button",{type:"button","data-testid":"subagent-fallback-sort",disabled:b,onClick:()=>T(e=>!e),style:{fontSize:"12px",padding:"5px 12px",borderRadius:"var(--dsh-svc-radius-control)",border:"1px solid var(--dsh-svc-border-strong)",background:A?"var(--dsh-svc-tab-active-bg)":"transparent",color:A?"var(--dsh-svc-tab-active-text)":"var(--dsh-svc-text)",cursor:b?"default":"pointer",opacity:b?.55:1}},e(A?"subagent.fallback.sort.done":"subagent.fallback.sort")):null)):null,""!==w?r.createElement("p",{"data-testid":"subagent-error",style:{...M,color:"var(--dsw-alias-state-error-primary)"}},function(e,t){return"feature-disabled"===t?e("subagent.error.feature-disabled"):"llm-unavailable"===t?e("subagent.error.llm-unavailable"):"unknown-mode"===t?e("subagent.error.unknown-mode"):"invalid-model-route"===t?e("subagent.error.invalid-model-route"):"invalid-reasoning-effort"===t?e("subagent.error.invalid-reasoning-effort"):"network"===t?e("subagent.error.network"):t}(e,w)):null,x>0&&""===w?r.createElement("p",{"data-testid":"subagent-saved",style:{...M,color:"var(--dsw-alias-state-success-primary)"}},"✓ "+e("subagent.saved")):null,r.createElement("div",{style:{display:"flex",gap:"10px",marginTop:"12px",flexWrap:"wrap"}},r.createElement("button",{type:"button","data-testid":"subagent-save",disabled:b||v||"custom"===d&&(""===W||""===B),onClick:()=>{K(d)},style:{fontSize:"12px",padding:"6px 16px",borderRadius:"var(--dsh-svc-radius-control)",border:"1px solid transparent",background:"var(--dsw-alias-brand-primary)",color:"var(--dsh-svc-brand-text)",cursor:b?"default":"pointer",opacity:b||v||"custom"===d&&(""===W||""===B)?.55:1}},e(b?"subagent.saving":"subagent.save")),"inherit"!==d?r.createElement("button",{type:"button","data-testid":"subagent-reset",disabled:b||v,onClick:()=>{c("inherit"),K("inherit")},style:{fontSize:"12px",padding:"6px 14px",borderRadius:"var(--dsh-svc-radius-control)",border:"1px solid var(--dsw-alias-state-error-primary)",background:"transparent",color:"var(--dsw-alias-state-error-primary)",cursor:b?"default":"pointer",opacity:b||v?.55:1}},e("subagent.reset")):null))}const ua="dsh-service-skills-model",pa=(e,t)=>h(e,t);function ma(e){return e.provider+"\0"+e.id}function ga(){try{const e=JSON.parse(localStorage.getItem(ua)||"null");if(e&&"string"==typeof e.provider&&"string"==typeof e.model)return e}catch(e){}return null}const ha=(e,t)=>{let a=function(e,t){const a="object"==typeof t&&null!==t?t:ga();if(null!==a){const t=e.find(e=>e.provider===a.provider&&e.id===a.model);if(void 0!==t)return t}return e[0]??null}(e,ga());return null===a&&void 0!==t&&(a=e.find(e=>e.provider===t.provider&&e.id===t.model)??null),a},{adoptSkillsBatchStatus:va,cancelSkillsBatchShared:fa,changeSkillsBatchModel:ba,fetchSkillsBatchModels:ya,planSkillsBatchShared:xa,publishSkillsBatch:ka,skillsBatchListDirtyRef:wa,startSkillsBatchShared:Ea,useSkillsBatch:Sa}=function({ctx:e,rpcCall:t,featureEnabled:a,featureScope:n,currentUiLocale:s,SKILLS_MODEL_STORAGE_KEY:i,skillModelKey:o,resolveSkillModelChoice:l}){const{useState:d,useEffect:c}=r;let u=null,p=null,m=null,g=null,h="";const v={current:!1};let f=null,b=null,y=!1;const x="dsh-service-skills-batch-pending",k=new Set,w=()=>{for(const e of k)e()},E=e=>{try{e?localStorage.setItem(x,"true"):localStorage.removeItem(x)}catch(e){}},S=e=>{E("planned"===e||"running"===e)},q=()=>{null!==f&&(clearInterval(f),f=null)},C=(e=!0)=>{if(null!==u&&"running"===u.phase&&a("skillManager")&&null===f){const a=async()=>{try{const e=await t("skills-batch-status",{});if(!e.ok)return;const a=null!==u?u.phase:null;u=e.value,S(e.value.phase),"running"===a&&"running"!==e.value.phase&&(q(),v.current=!0),w()}catch(e){}};e&&a(),f=setInterval(()=>{a()},2e3)}},z=async()=>{if(null!==m)return m;try{const e=await t("skills-models",{});if(!e.ok)return m=[],m;m=e.value.models??[],null===g&&(g=l(m,e.value.current))}catch(e){m=[]}return m},A=()=>y?Promise.resolve(u):(null!==b||(b=(async()=>{try{const e=await t("skills-batch-status",{});e.ok&&(y=!0,S(e.value.phase),"idle"!==e.value.phase&&(u=e.value,C(!1),w()))}catch(e){}return u})().finally(()=>{b=null})),b);return e.effect(()=>{const e=n.subscribe(()=>{a("skillManager")||q()});return()=>{e(),q()}},"dsh-service skills batch polling lifecycle"),(()=>{try{return"true"===localStorage.getItem(x)}catch(e){return!1}})()&&A(),{adoptSkillsBatchStatus:A,cancelSkillsBatchShared:async()=>{try{await t("skills-batch-cancel",{}),E(!1)}catch(e){}},changeSkillsBatchModel:e=>{const t=(m??[]).find(t=>o(t)===e)??null;if(g=t,null!==t)try{localStorage.setItem(i,JSON.stringify({provider:t.provider,model:t.id}))}catch(e){}w()},fetchSkillsBatchModels:z,planSkillsBatchShared:async()=>{if(h="",w(),0===(await z()).length||null===g)return h="models-empty",w(),!1;try{localStorage.setItem(i,JSON.stringify({provider:g.provider,model:g.id}))}catch(e){}const e=await t("skills-batch-plan",{provider:g.provider,model:g.id});if(!e.ok)return h=e.error||"unknown",w(),!1;p={...e.value,modelItem:g};const a=Array.isArray(e.value.annotated)?e.value.annotated.length:0;return u={phase:"planned",total:e.value.candidates.length+a,done:0,failures:[],current:null,estBytes:e.value.estBytes,logs:[]},S("planned"),C(),w(),!0},publishSkillsBatch:w,skillsBatchListDirtyRef:v,startSkillsBatchShared:async(e=!1)=>{if(null===p||null===u)return!1;const a=await t("skills-batch-run",{planId:p.planId,lang:s(),...!0===e?{forceAnnotated:!0}:{}});return a.ok?(u={...u,phase:"running"},S("running"),C(),w(),!0):(h=a.error||"unknown",w(),!1)},useSkillsBatch:()=>{const[,e]=d(0);return c(()=>{const t=()=>e(e=>e+1);return k.add(t),()=>k.delete(t)},[]),{batch:u,plan:p,models:m,modelItem:g,error:h}}}}({ctx:t,rpcCall:h,featureEnabled:de,featureScope:X,currentUiLocale:j,SKILLS_MODEL_STORAGE_KEY:ua,skillModelKey:ma,resolveSkillModelChoice:ha}),qa=(e,t)=>{if(null===t||"object"!=typeof t)return String(t);const a=new Date(t.at),r=e=>String(e).padStart(2,"0"),n=Number.isFinite(a.getTime())?r(a.getHours())+":"+r(a.getMinutes())+":"+r(a.getSeconds()):"--:--:--",s="skills.log."+t.code,i=e(s,t.params??{});return"["+n+"]"+(void 0!==t.name?" ["+t.name+"]":"")+" "+(i===s?t.code:i)};function Ca(e,t){if("models-empty"===t)return e("skills.describe.models.empty");if("llm-unavailable"===t)return e("skills.llm.unavailable");if("batch-already-running"===t)return e("skills.batch.already");if("feature-disabled"===t)return e("skills.error.feature-disabled");if("network"===t)return e("skills.error.network");if("read-only-source"===t)return e("skills.error.read-only-source");if("unknown-skill"===t)return e("skills.error.unknown-skill");if("invalid-field"===t)return e("skills.error.invalid-field");if("invalid-enable"===t)return e("skills.error.invalid-enable");if("invalid-model-route"===t)return e("skills.error.invalid-model-route");if("invalid-description"===t)return e("skills.error.invalid-description");if("describe-timeout"===t)return e("skills.error.describe-timeout");if("batch-cancelled"===t)return e("skills.error.batch-cancelled");if("entry-changed"===t)return e("skills.error.entry-changed");if("unknown-batch-plan"===t)return e("skills.error.unknown-batch-plan");if("batch-already-done"===t)return e("skills.error.batch-already-done");if("batch-already-cancelled"===t)return e("skills.error.batch-already-cancelled");if("annotated-confirm-required"===t)return e("skills.error.annotated-confirm-required");if("string"==typeof t&&t.startsWith("empty-output")){const a=t.slice(13);return e("skills.error.empty-output",{kind:""===a?"?":a})}return"string"==typeof t&&t.startsWith("invalid-skill")?e("skills.error.invalid-skill",{reason:t.startsWith("invalid-skill:")?t.slice(14):""}):e("skills.error",{error:t})}function za(){const e=qe(),[t,n]=a(null),[s,o]=a(""),[l,d]=a(!0),[c,u]=a(""),[p,m]=a([]),[g,h]=a(null),[v,f]=a(null),[b,y]=a(!1),[x,k]=a([]),[w,E]=a(!1),[S,q]=a(!1),[C,z]=a(!1),[A,T]=a(!1),{batch:M,plan:O,models:H,modelItem:R,error:D}=Sa(),N=null!==M?M.phase:null;i(()=>{E("running"===N)},[N]);const L=async()=>{d(!0);try{const e=await pa("skills-list",{});e.ok?(n(e.value),o("")):o(e.error||"unknown")}catch(e){o("network")}finally{d(!1)}};i(()=>{L(),va(),ya().then(ka)},[]),i(()=>{null===M||"done"!==M.phase&&"cancelled"!==M.phase||!wa.current||(wa.current=!1,L())},[null!==M&&M.phase]),i(()=>{if(null===v||!v.busy)return;const e=v.entry.id;let t;const a=async()=>{try{const t=await pa("skills-describe-log",{id:e});t.ok&&k(t.value.logs??[])}catch(e){}};return a(),t=setInterval(()=>{a()},800),()=>clearInterval(t)},[null!==v&&v.busy]),i(()=>{if(null===v||v.busy)return;const e=v.entry.id;(async()=>{try{const t=await pa("skills-describe-log",{id:e});t.ok&&k(t.value.logs??[])}catch(e){}})()},[null!==v&&v.busy]);const $=e=>{n(t=>null===t?t:{...t,entries:t.entries.map(t=>t.id===e.id?e:t)})};i(()=>{if(null===g)return;const e=setTimeout(()=>h(null),3e3);return()=>clearTimeout(e)},[g]),i(()=>{if(!C)return;const e=setTimeout(()=>z(!1),3e3);return()=>clearTimeout(e)},[C]),i(()=>{z(!1)},[N,O]);const W=async(e,t)=>{const a=e.id+":"+t;if(g!==a)return void h(a);h(null);const r="model"===t?!0!==e.invocation.model:!0!==e.invocation.user;try{const a=await pa("skills-toggle",{id:e.id,field:t,enable:r});a.ok?$(a.value.entry):o(a.error+(a.detail?":"+a.detail:"")||"unknown")}catch(e){o("network")}},B={color:"var(--dsw-alias-label-secondary)",fontSize:"12px",marginTop:"8px",lineHeight:1.5},_=(e,t)=>r.createElement("span",{key:e,style:ae("warn"===t?"warning":"danger"===t?"danger":"neutral",{marginLeft:"6px",padding:"1px 7px",verticalAlign:"middle"})},e),P=(e,t)=>r.createElement("button",{type:"button",role:"switch","data-testid":t.testid,"aria-checked":String(e),title:t.title,disabled:t.disabled,onClick:t.onClick,style:{width:"34px",height:"20px",...I("10px"),padding:0,flexShrink:0,position:"relative",cursor:t.disabled?"default":"pointer",lineHeight:0,border:"1px solid "+(t.armed?"var(--dsw-alias-state-warn-primary)":e?"var(--dsw-alias-state-success-primary)":"var(--dsw-alias-border-l2)"),background:t.armed?"transparent":e?"var(--dsw-alias-state-success-primary)":"var(--dsw-alias-bg-layer-2)",opacity:t.disabled?.5:1}},r.createElement("span",{style:{position:"absolute",top:"1px",left:e&&!t.armed?"15px":"1px",width:"16px",height:"16px",...I("50%"),background:t.armed?"var(--dsw-alias-state-warn-primary)":e?"#fff":"var(--dsw-alias-label-tertiary)"}})),V={border:"1px solid var(--dsh-alias-border-l2)",borderRadius:"10px",padding:"11px 13px",marginBottom:"8px",background:"var(--dsh-svc-card-bg)"},F=(t,a,n)=>0===a.length?null:r.createElement("div",{"data-testid":t,style:{marginTop:"9px",padding:"7px 10px",borderRadius:"7px",background:"var(--dsw-alias-bg-layer-3)",border:"1px solid var(--dsw-alias-border-l2)",maxHeight:"130px",overflowY:"auto"}},n?r.createElement("div",{style:{fontSize:"11px",fontWeight:700,color:"var(--dsw-alias-label-secondary)",marginBottom:"3px"}},e("skills.log.title")):null,...a.map((e,t)=>r.createElement("div",{key:t,style:{fontSize:"11px",lineHeight:1.6,color:"var(--dsw-alias-label-tertiary)",fontFamily:"ui-monospace, SFMono-Regular, Menlo, monospace",overflowWrap:"anywhere"}},e))),U=t=>{if(null===v)return null;const a=t??v.entry,{models:n,modelItem:s,draft:i,busy:o,error:l,applied:d}=v,c=null===i?null:[["description",void 0!==a.note?a.note.description:"",i.description],["usage",void 0!==a.note?a.note.usage:"",""===i.usage?null:i.usage]].map(([t,a,n])=>r.createElement("div",{key:t,"data-testid":"skill-diff-"+t,style:{marginBottom:"9px"}},r.createElement("div",{style:{fontSize:"12px",fontWeight:700,marginBottom:"3px"}},e("skills.apply."+t)),r.createElement("div",{style:{fontSize:"12px",color:"var(--dsw-alias-label-tertiary)",textDecoration:"line-through",lineHeight:1.45}},e("skills.apply.old")+":"+(""===a?"—":a)),r.createElement("div",{style:{fontSize:"12px",color:"var(--dsw-alias-label-primary)",lineHeight:1.45}},e("skills.apply.new")+":"+(null===n?e("skills.apply.keepusage"):n))));return r.createElement("div",{key:"skill-describe-"+a.id,"data-testid":"skill-describe-dialog",style:{border:"1px solid var(--dsw-alias-border-l1)",borderRadius:"12px",padding:"14px 16px",marginBottom:"14px",background:"var(--dsh-svc-raised-bg)"}},r.createElement("div",{style:{display:"flex",alignItems:"center",justifyContent:"space-between",gap:"10px"}},r.createElement("div",{style:{fontSize:"14px",fontWeight:700}},e("skills.describe.title",{name:a.name})),r.createElement("button",{type:"button",onClick:()=>f(null),style:{border:0,background:"transparent",color:"var(--dsw-alias-label-tertiary)",cursor:"pointer",fontSize:"15px"}},"✕")),null===n&&""===l?r.createElement("p",{style:B},e("skills.describe.models.loading")):null,null!==n&&0===n.length?r.createElement("p",{style:B},e("skills.describe.models.empty")):null,null!==n&&n.length>0?r.createElement("div",{style:{display:"flex",alignItems:"center",gap:"8px",marginTop:"10px",flexWrap:"wrap"}},r.createElement("span",{style:{fontSize:"12px",color:"var(--dsw-alias-label-secondary)"}},e("skills.describe.model")),r.createElement("select",{"data-testid":"skill-describe-model",value:null===s?"":ma(s),onChange:e=>f(t=>null===t?t:{...t,modelItem:n.find(t=>ma(t)===e.target.value)??null}),style:{fontSize:"12px",padding:"4px 8px",borderRadius:"6px",border:"1px solid var(--dsw-alias-border-l2)",background:"var(--dsw-alias-bg-layer-2)",color:"var(--dsw-alias-label-primary)",maxWidth:"100%"}},n.map(e=>r.createElement("option",{key:ma(e),value:ma(e)},e.providerName+" / "+e.name))),null===i?r.createElement("button",{type:"button","data-testid":"skill-describe-run",disabled:o||null===s,onClick:()=>{(async()=>{if(null===v||null===v.modelItem)return;const{entry:e,modelItem:t}=v;f(e=>({...e,busy:!0,error:""}));const a=await pa("skills-describe",{id:e.id,provider:t.provider,model:t.id,lang:j()});if(a.ok){try{localStorage.setItem(ua,JSON.stringify({provider:t.provider,model:t.id}))}catch(e){}f(e=>({...e,draft:a.value.draft,busy:!1}))}else f(e=>({...e,busy:!1,error:a.error+(a.detail?":"+a.detail:"")}))})()},style:Object.assign({},ee("neutral"),{fontSize:"12px",minHeight:"28px",padding:"4px 12px",cursor:o?"default":"pointer",opacity:o||null===s?.55:1})},e(o?"skills.describe.running":"skills.describe.run")):null):null,""!==l?r.createElement("p",{"data-testid":"skill-describe-error",style:{...B,color:"var(--dsw-alias-state-error-primary)"}},Ca(e,l)):null,F("skill-describe-log",x.map(t=>qa(e,t))),c,d?r.createElement("p",{"data-testid":"skill-apply-done",style:{...B,color:"var(--dsw-alias-state-success-primary)"}},"✓ "+e("skills.apply.done")):null,null===i||d?null:r.createElement("p",{"data-testid":"skill-note-disclaimer",style:{...B,fontSize:"11px"}},e("skills.note.panelOnly")),null===i||d?null:r.createElement("button",{type:"button","data-testid":"skill-apply-confirm",disabled:o,onClick:()=>{(async()=>{if(null===v||null===v.draft||null===v.modelItem)return;const{entry:e,draft:t,modelItem:a}=v;f(e=>({...e,busy:!0}));const r=await pa("skills-note-save",{id:e.id,patch:{description:t.description,usage:t.usage},model:a.provider+"/"+a.id});r.ok?($(r.value.entry),f(e=>({...e,busy:!1,applied:!0}))):f(e=>({...e,busy:!1,error:r.error||"unknown"}))})()},style:{fontSize:"12px",padding:"6px 16px",borderRadius:"var(--dsh-svc-radius-control)",border:"1px solid transparent",background:"var(--dsw-alias-brand-primary)",color:"var(--dsh-svc-brand-text)",cursor:o?"default":"pointer",opacity:o?.55:1}},e("skills.apply.confirm")))},K=c.trim().toLowerCase(),G=null===t?[]:""===K?t.entries:t.entries.filter(e=>e.name.toLowerCase().includes(K)),Y=G.length>0&&G.every(e=>p.includes(e.id)),[Q,J]=a(!1);return i(()=>{null===M||"running"!==M.phase&&"planned"!==M.phase||J(!0)},[null!==M&&M.phase]),r.createElement("div",{"data-testid":"skills-section",style:ne()},r.createElement("div",{style:{display:"flex",alignItems:"center",justifyContent:"space-between",gap:"12px",flexWrap:"wrap"}},r.createElement("input",{"data-testid":"skills-filter",value:c,placeholder:e("skills.filter"),onChange:e=>u(e.target.value),style:{fontSize:"12px",padding:"6px 10px",borderRadius:"7px",border:"1px solid var(--dsw-alias-border-l2)",background:"var(--dsw-alias-bg-layer-2)",color:"var(--dsw-alias-label-primary)",width:"200px"}}),r.createElement("div",{style:{display:"flex",alignItems:"center",gap:"10px",flexWrap:"wrap"}},r.createElement("button",{type:"button","data-testid":"skills-expand-all","data-variant":"neutral",disabled:0===G.length,style:Object.assign({},ee("neutral"),{minHeight:"28px",padding:"4px 10px",fontSize:"12px",cursor:0===G.length?"default":"pointer",opacity:0===G.length?.55:1}),onClick:()=>(()=>{const e=G.map(e=>e.id);m(Y?t=>t.filter(t=>!e.includes(t)):t=>e.reduce((e,t)=>e.includes(t)?e:e.concat([t]),t))})()},e(Y?"skills.collapseAll":"skills.expandAll")),r.createElement("button",{type:"button","data-testid":"skills-refresh","data-variant":"neutral",style:Object.assign({},ee("neutral"),{minHeight:"28px",padding:"4px 10px",fontSize:"12px"}),onClick:()=>{L()}},"↻"))),l&&null===t?r.createElement("p",{style:B},"…"):null,""!==s||""!==D?r.createElement("p",{"data-testid":"skills-error",style:{...B,color:"var(--dsw-alias-state-error-primary)"}},Ca(e,""!==s?s:D)):null,null!==t&&t.llmAvailable?r.createElement("button",{type:"button","data-testid":"skills-batch-toggle","aria-expanded":String(Q),onClick:()=>J(e=>!e),style:{margin:"0 0 12px",fontSize:"12px",padding:"6px 14px",borderRadius:"var(--dsh-svc-radius-control)",border:"1px solid "+(Q?"var(--dsw-alias-label-dimmed)":"var(--dsh-svc-border-strong)"),background:"transparent",color:"var(--dsw-alias-label-primary)",cursor:"pointer"}},(Q?"▾ ":"▸ ")+e("skills.batch.toggle")):null,Q&&null!==t&&t.llmAvailable?(()=>{const t=null!==M&&"planned"===M.phase&&null===O?"idle":null!==M?M.phase:"idle",a=t,n=null!==M&&M.total>0?Math.round(M.done/M.total*100):0,s=Array.isArray(O?.annotated)?O.annotated.length:0;return r.createElement("div",{"data-testid":"skills-batch-card",style:{border:"1px solid var(--dsw-alias-border-l2)",borderRadius:"12px",padding:"13px 15px",margin:"14px 0"}},r.createElement("div",{style:{display:"flex",alignItems:"center",justifyContent:"space-between",gap:"10px"}},r.createElement("div",{style:{fontSize:"13.5px",fontWeight:700}},e("skills.batch.title")),r.createElement("button",{type:"button","data-testid":"skills-batch-collapse",onClick:()=>J(!1),style:{border:0,background:"transparent",color:"var(--dsw-alias-label-tertiary)",cursor:"pointer",fontSize:"12px"}},e("skills.batch.collapse")+" ▴")),r.createElement("p",{style:{...B,marginTop:"4px"}},e("skills.batch.hint")),r.createElement("div",{style:{display:"flex",alignItems:"center",gap:"10px",marginTop:"9px",flexWrap:"wrap"}},null!==H&&H.length>0?r.createElement("label",{style:{display:"flex",alignItems:"center",gap:"6px",fontSize:"12px",color:"var(--dsw-alias-label-secondary)"}},e("skills.batch.model"),r.createElement("select",{"data-testid":"skills-batch-model",value:null===R?"":ma(R),disabled:b||null!==M&&"running"===M.phase,onChange:e=>ba(e.target.value),style:{fontSize:"12px",padding:"4px 8px",borderRadius:"6px",border:"1px solid var(--dsw-alias-border-l2)",background:"var(--dsw-alias-bg-layer-2)",color:"var(--dsw-alias-label-primary)",maxWidth:"100%"}},H.map(e=>r.createElement("option",{key:ma(e),value:ma(e)},e.providerName+" / "+e.name)))):null,"idle"===t||"done"===t||"cancelled"===t?r.createElement("button",{type:"button","data-testid":"skills-batch-plan",disabled:b,onClick:()=>{(async()=>{y(!0);try{await xa()}finally{y(!1)}})()},style:Object.assign({},ee("neutral"),{cursor:b?"default":"pointer",opacity:b?.55:1})},e("skills.batch.plan")):null,null!==O?r.createElement("span",{"data-testid":"skills-batch-candidates",style:{fontSize:"12px",color:"var(--dsw-alias-label-secondary)"}},e("skills.batch.candidates",{count:O.candidates.length})+(O.estBytes>0?" · "+e("skills.batch.estBytes",{size:(i=O.estBytes,i>=1048576?(i/1024/1024).toFixed(1)+" MB":i>=1024?(i/1024).toFixed(1)+" KB":String(i)+" B")}):"")+(s>0?" · "+e("skills.batch.annotated",{count:s}):"")+" · "+e("skills.batch.skipped",{count:O.skipped.length})):null,null!==O&&"planned"===t?r.createElement("button",{type:"button","data-testid":"skills-batch-start",disabled:b||0===O.candidates.length&&0===s,onClick:()=>{(async()=>{const e=Array.isArray(O?.annotated)?O.annotated.length:0;if(e>0&&!C)z(!0);else{z(!1),y(!0);try{await Ea(e>0)}finally{y(!1)}}})()},title:C?e("skills.switch.confirm"):void 0,style:{fontSize:"12px",padding:"5px 14px",borderRadius:"var(--dsh-svc-radius-control)",border:"1px solid transparent",background:C?"var(--dsh-svc-warning)":"var(--dsw-alias-brand-primary)",color:"var(--dsh-svc-brand-text)",cursor:b?"default":"pointer",opacity:b?.55:1}},C&&s>0?e("skills.batch.forceConfirm",{count:s}):e("skills.batch.start")):null,null!==M&&"running"===M.phase?r.createElement("button",{type:"button","data-testid":"skills-batch-cancel",onClick:()=>{(async()=>{await fa()})()},style:{fontSize:"12px",padding:"4px 12px",borderRadius:"var(--dsh-svc-radius-control)",border:"1px solid var(--dsw-alias-state-error-primary)",background:"transparent",color:"var(--dsw-alias-state-error-primary)",cursor:"pointer"}},e("skills.batch.cancel")):null,null!==M?r.createElement("span",{"data-testid":"skills-batch-phase",style:{fontSize:"12px",color:"var(--dsw-alias-label-tertiary)"}},e("skills.batch.phase."+a)):null),null!==O&&0===O.candidates.length&&0===s?r.createElement("p",{style:B},e("skills.batch.no-candidates")):null,null===O||0===O.skipped.length?null:r.createElement("div",{"data-testid":"skills-batch-skipped",style:{marginTop:"6px"}},r.createElement("button",{type:"button","data-testid":"skills-batch-skipped-toggle",onClick:()=>q(e=>!e),style:{border:0,background:"transparent",color:"var(--dsw-alias-label-tertiary)",cursor:"pointer",fontSize:"11.5px",padding:0}},(S?"▾ ":"▸ ")+e("skills.skippedList")+"("+O.skipped.length+")"),S?r.createElement("div",{style:{marginTop:"4px",fontSize:"11.5px",lineHeight:1.6,color:"var(--dsw-alias-label-tertiary)"}},O.skipped.map((t,a)=>r.createElement("div",{key:t.id??a,"data-testid":"skills-batch-skipped-item"},(""===t.name?t.id:t.name)+e("skills.colon")+(t=>{if("shadowed"===t)return e("skills.skip.shadowed");if("string"==typeof t&&t.startsWith("legacy-invocation-key"))return e("skills.skip.reason.legacy-invocation-key");const a=e("skills.skip.reason."+t);return a==="skills.skip.reason."+t?t:a})(t.reason)))):null),(()=>{const t=Array.isArray(O?.annotated)?O.annotated:[];return null===O||0===t.length?null:r.createElement("div",{"data-testid":"skills-batch-annotated",style:{marginTop:"6px"}},r.createElement("button",{type:"button","data-testid":"skills-batch-annotated-toggle",onClick:()=>T(e=>!e),style:{border:0,background:"transparent",color:"var(--dsw-alias-label-tertiary)",cursor:"pointer",fontSize:"11.5px",padding:0}},(A?"▾ ":"▸ ")+e("skills.batch.annotatedList")+"("+t.length+")"),A?r.createElement("div",{style:{marginTop:"4px",fontSize:"11.5px",lineHeight:1.6,color:"var(--dsh-svc-warning)"}},t.map((e,t)=>r.createElement("div",{key:e.id??t,"data-testid":"skills-batch-annotated-item"},""===e.name?e.id:e.name))):null)})(),null!==M&&M.total>0&&"idle"!==t?(()=>{const t=Array.isArray(M.failures)&&M.failures.length>0?r.createElement("div",{"data-testid":"skills-batch-failures",style:{marginTop:"7px",fontSize:"11.5px",color:"var(--dsw-alias-state-error-primary)",lineHeight:1.5}},e("skills.batch.failures",{count:M.failures.length})+":"+M.failures.map(e=>e.name+"("+e.reason+")").join("、")):null,a=Array.isArray(M.logs)?M.logs:[],s=0===a.length?null:r.createElement("div",null,r.createElement("button",{type:"button","data-testid":"skills-batch-log-toggle",onClick:()=>E(e=>!e),style:{marginTop:"7px",border:0,background:"transparent",color:"var(--dsw-alias-label-tertiary)",cursor:"pointer",fontSize:"11.5px",padding:0}},(w?"▾ ":"▸ ")+e("skills.log.title")+"("+a.length+")"),w?F("skills-batch-log",a.slice(-30).map(t=>qa(e,t)),!1):null);return r.createElement("div",{style:{marginTop:"10px"}},r.createElement("div",{"data-testid":"skills-batch-progress",style:{fontSize:"12px",color:"var(--dsw-alias-label-secondary)",marginBottom:"4px"}},e("skills.batch.progress",{done:M.done,total:M.total})+(null!==M.current?" · "+e("skills.batch.current",{name:M.current}):"")),r.createElement("div",{style:{height:"6px",borderRadius:"3px",background:"var(--dsw-alias-bg-layer-3)",overflow:"hidden"}},r.createElement("div",{style:{height:"100%",width:n+"%",background:"var(--dsw-alias-state-success-primary)",transition:"width .3s"}})),t,s)})():null);var i})():null,(()=>{if(null===t||0===t.entries.length)return r.createElement("p",{style:B},e("skills.empty"));const a=G.filter(e=>void 0!==e.invalid),n=G.filter(e=>void 0===e.invalid),s=[["skills.group.auto",n.filter(e=>e.invocation.model)],["skills.group.manual",n.filter(e=>!e.invocation.model&&e.invocation.user)],["skills.group.disabled",n.filter(e=>!e.invocation.model&&!e.invocation.user)]],i=a=>{const n=(a=>{const n=p.includes(a.id),s="string"==typeof a.invalid&&a.invalid.startsWith("legacy-invocation-key:"),i=r.createElement("div",{style:{fontSize:"14px",fontWeight:650,color:"var(--dsw-alias-label-primary)",overflowWrap:"anywhere"}},a.name,_(e("skills.source."+a.source)==="skills.source."+a.source?a.source:e("skills.source."+a.source)),a.shadowed?_(e("skills.badge.shadowed"),"warn"):null,a.writable?null:_(e("skills.badge.readonly"),"danger"),a.annotated?_(e("skills.badge.annotated")):null),l=r.createElement("div",{style:{fontSize:"12px",color:"var(--dsw-alias-label-secondary)",marginTop:"3px",lineHeight:1.45,overflowWrap:"anywhere"}},a.description),d=""===a.usage?null:r.createElement("div",{style:{fontSize:"12px",color:"var(--dsw-alias-label-tertiary)",marginTop:"2px",lineHeight:1.45,overflowWrap:"anywhere"}},e("skills.apply.usage")+":"+a.usage),c=void 0!==a.note?r.createElement("div",{"data-testid":"skill-note-"+a.name,style:{marginTop:"5px",padding:"6px 9px",borderRadius:"7px",background:"var(--dsh-svc-raised-bg)",border:"1px solid var(--dsw-alias-border-l2)",fontSize:"11.5px",lineHeight:1.55,color:"var(--dsw-alias-label-secondary)",display:"flex",gap:"8px",alignItems:"flex-start"}},r.createElement("div",{style:{minWidth:0,flex:1}},!0===a.note.stale?r.createElement("div",{style:{marginBottom:"3px",color:"var(--dsw-alias-state-warn-primary)"}},"⚠ "+e("skills.note.stale")):null,r.createElement("div",{style:{overflowWrap:"anywhere"}},r.createElement("span",{style:{fontWeight:700,color:"var(--dsw-alias-label-primary)"}},e("skills.apply.description")+":"),r.createElement("span",null,a.note.description)),""===a.note.usage?null:r.createElement("div",{style:{overflowWrap:"anywhere",marginTop:"3px"}},r.createElement("span",{style:{fontWeight:700,color:"var(--dsw-alias-label-primary)"}},e("skills.apply.usage")+":"),r.createElement("span",null,a.note.usage))),r.createElement("button",{type:"button","data-testid":"skill-note-remove-"+a.name,onClick:()=>{(async e=>{const t=await pa("skills-note-clear",{id:e.id});t.ok?$(t.value.entry):o(t.error||"unknown")})(a)},title:e("skills.note.remove"),style:{border:0,background:"transparent",color:"var(--dsw-alias-label-tertiary)",cursor:"pointer",fontSize:"13px",flexShrink:0,lineHeight:1}},"✕")):null,u=void 0!==a.invalid?r.createElement("div",{style:{fontSize:"12px",color:"var(--dsw-alias-state-warn-primary)",marginTop:"4px",display:"flex",alignItems:"center",gap:"8px",flexWrap:"wrap"}},"⚠ ",s?e("skills.invalid.legacy"):e("skills.invalid.other",{reason:a.invalid}),s&&a.writable?r.createElement("button",{type:"button","data-testid":"skill-fix-"+a.name,onClick:()=>{(async e=>{const t=e.id+":fix";if(g===t){h(null);try{const t=await pa("skills-fix-keys",{id:e.id});t.ok?$(t.value.entry):o(t.error+(t.detail?":"+t.detail:"")||"unknown")}catch(e){o("network")}}else h(t)})(a)},title:g===a.id+":fix"?e("skills.switch.confirm"):void 0,style:{fontSize:"11px",padding:"2px 9px",borderRadius:"var(--dsh-svc-radius-control)",border:"1px solid var(--dsw-alias-state-warn-primary)",background:g===a.id+":fix"?"rgba(198,128,0,0.14)":"transparent",color:"var(--dsw-alias-state-warn-primary)",cursor:"pointer"}},g===a.id+":fix"?e("skills.switch.confirm"):e("skills.fix.legacy")):null):null,v=void 0===a.invalid?r.createElement("div",{style:{display:"flex",flexDirection:"column",gap:"7px",alignItems:"flex-end",flexShrink:0}},r.createElement("label",{style:{display:"flex",alignItems:"center",gap:"7px",fontSize:"11.5px",color:"var(--dsw-alias-label-secondary)"}},e("skills.switch.model"),P(a.invocation.model,{testid:"skill-switch-model-"+a.name,disabled:!a.writable,armed:g===a.id+":model",title:g===a.id+":model"?e("skills.switch.confirm"):void 0,onClick:()=>{W(a,"model")}})),r.createElement("label",{style:{display:"flex",alignItems:"center",gap:"7px",fontSize:"11.5px",color:"var(--dsw-alias-label-secondary)"}},e("skills.switch.user"),P(a.invocation.user,{testid:"skill-switch-user-"+a.name,disabled:!a.writable,armed:g===a.id+":user",title:g===a.id+":user"?e("skills.switch.confirm"):void 0,onClick:()=>{W(a,"user")}})),null!==t&&t.llmAvailable?r.createElement("button",{type:"button","data-testid":"skill-describe-"+a.name,onClick:()=>{(async e=>{const t=ga();f({entry:e,models:null,modelItem:null,draft:null,busy:!1,error:"",applied:!1,preferred:t}),k([]);const a=await pa("skills-models",{});if(!a.ok)return void f(e=>({...e,error:a.error||"unknown"}));const r=a.value.models??[];f(e=>({...e,models:r,modelItem:ha(r,a.value.current)}))})(a)},style:Object.assign({},te(),{fontSize:"11px",padding:"3px 10px"})},"✨ "+e("skills.describe.button")):null):null,b=r.createElement("button",{type:"button","data-testid":"skill-header-"+a.name,"aria-expanded":String(n),onClick:()=>{return e=a.id,m(t=>t.includes(e)?t.filter(t=>t!==e):t.concat([e]));var e},style:{display:"flex",alignItems:"flex-start",gap:"8px",width:"100%",padding:0,border:0,background:"transparent",color:"inherit",textAlign:"left",cursor:"pointer"}},r.createElement("span",{"aria-hidden":"true",style:{flexShrink:0,fontSize:"11px",lineHeight:"20px",color:"var(--dsw-alias-label-tertiary)"}},n?"▾":"▸"),r.createElement("div",{style:{minWidth:0,flex:1}},i)),y=n?r.createElement("div",{"data-testid":"skill-body-"+a.name,style:{marginTop:"2px"}},r.createElement("div",{style:{display:"flex",gap:"12px",alignItems:"flex-start",justifyContent:"space-between"}},r.createElement("div",{style:{minWidth:0,flex:1}},l,d),v),c):null;return r.createElement("div",{key:a.id,"data-testid":"skill-entry-"+a.name,style:V},b,u,y)})(a);return null!==v&&v.entry.id===a.id?[n,U(a)]:[n]};return r.createElement("div",null,a.length>0?r.createElement("div",{"data-testid":"skills-invalid-group",style:{marginBottom:"12px"}},a.flatMap(i)):null,s.map(([t,a])=>0===a.length?null:r.createElement("div",{key:t,"data-testid":"skills-group-"+t.split(".").pop(),style:{marginBottom:"14px"}},r.createElement("div",{style:{fontSize:"12px",fontWeight:700,margin:"0 0 7px",color:"var(--dsw-alias-label-secondary)"}},e(t)+" · "+a.length),a.flatMap(i))))})())}function Aa(){return r.createElement(Wa,null)}function Ta(e){if("number"!=typeof e||!Number.isFinite(e)||e<0)return"";if(0===e)return"0 B";const t=["B","KB","MB","GB"];let a=e,r=0;for(;a>=1024&&r<t.length-1;)a/=1024,r+=1;return(0===r?String(a):a.toFixed(1))+" "+t[r]}function Ma(e,t){if("number"!=typeof e||e<=0)return t("sessions.status.unavailableTime");try{return new Date(e).toLocaleString()}catch(t){return String(e)}}function Ia(e,t){if("string"!=typeof t){const e=t&&"object"==typeof t?t:{};return"string"==typeof e.message&&""!==e.message?e.message:"string"==typeof e.code&&""!==e.code?e.code:"unknown"}return"feature-disabled"===t?e("sessions.error.feature-disabled"):"session-not-found"===t?e("sessions.error.session-not-found"):"live-session-rejected"===t?e("sessions.error.live-session-rejected"):"session-not-archived"===t?e("sessions.error.session-not-archived"):"unknown-delete-plan"===t?e("sessions.error.unknown-delete-plan"):"invalid-session-ids"===t?e("sessions.error.invalid-session-ids"):"unarchive-unsupported"===t?e("sessions.error.unarchive-unsupported"):"network"===t?e("sessions.error.network"):t}const Oa={all:void 0,archived:void 0,deleted:void 0},Ha=new Map,Ra=[Symbol.for("react.memo"),Symbol.for("react.forward_ref"),Symbol.for("react.lazy")],Da=e=>"function"==typeof e||null!==e&&"object"==typeof e&&"symbol"==typeof e.$$typeof&&Ra.includes(e.$$typeof);let Na=null;const La=e=>{const t=e("sessions.md.copy"),a=e("sessions.md.copied"),r=e("sessions.md.footnotes");return{code:{copyLabel:"string"==typeof t&&""!==t?t:"Copy",copiedLabel:"string"==typeof a&&""!==a?a:"Copied"},footnotes:"string"==typeof r&&""!==r?r:"Footnotes"}};try{const t=e("@deepseek-ai/dsh-client-ui-primitives");let a=null==t?null:t.MarkdownText;if(Da(a))Na=a;else if(null!==a&&"object"==typeof a)if(a="function"==typeof a.default?a.default:"function"==typeof a.MarkdownText?a.MarkdownText:null,Da(a))Na=a;else{let e=String(typeof a);try{e+=" keys=["+Object.keys(a).join(",")+"]"}catch(e){}console.warn("[dsh-service-md] MarkdownText is an unexpected value ("+e+") — falling back to plain text")}else console.warn("[dsh-service-md] ui-primitives seed present, but MarkdownText unavailable ("+typeof a+") — falling back to plain text")}catch(e){console.warn("[dsh-service-md] ui-primitives require failed: "+(e&&e.message?e.message:String(e)))}function $a(){const e=qe(),{useState:a,useEffect:n,useRef:s}=r,[i,o]=Ke.useEnabled(),l=Oa.archived,[d,c]=a(void 0!==l?l:null),[u,p]=a(void 0===l),[m,g]=a(""),[v,f]=a(Object.fromEntries(Ha)),b=s(new Set),[y,x]=a("archived"),[k,w]=a(!1),[E,S]=a("createdDesc"),[q,C]=a([]),[z,A]=a(!1),[T,M]=a([]),[O,H]=a(""),[R,D]=a(!1),[N,L]=a(!1),[$,W]=a(null),[j,B]=a(null),[_,P]=a(!1),[V,F]=a(""),[U,K]=a({}),G=s(null),Y=()=>y+"\0"+E+"\0"+O+"\0"+(R?1:0),[Q,J]=a(""),[Z,X]=a(""),[re,se]=a(""),[ie,oe]=a(""),[le,de]=a(""),[ce,ue]=a(null),[pe,me]=a(!1),[ge,he]=a(""),[ve,fe]=a(0),[be,ye]=a(null),[xe,ke]=a(!1),[we,Ee]=a(""),[Se,Ce]=a(""),[ze,Ae]=a(""),[Te,Me]=a(""),Ie={color:"var(--dsw-alias-label-secondary)",fontSize:"12px",marginTop:"8px",lineHeight:1.5},Oe=te(),He=Object.assign({},Oe,{background:"transparent",borderColor:"var(--dsw-alias-state-error-primary)",color:"var(--dsw-alias-state-error-primary)"}),Re=Object.assign({},Oe,{background:"var(--dsw-alias-state-error-primary)",borderColor:"transparent",color:"var(--dsh-svc-brand-text)"}),De=e=>"archived"===e?"archived":"deleted"===e?"deleted":"all",Ne=s(y);Ne.current=y;const Le=async(t,a={})=>{const r=void 0!==t?t:De(y),n=Oa[r],s=!a.force&&void 0!==n;if(s){if(c(n),g(""),p(!1),!0!==a.silent)return}else p(!0);try{const t=await h("sessions-list",{scope:r});t.ok?(Oa[r]=t.value,De(Ne.current)===r&&(c(t.value),g(""))):s&&a.silent||g(Ia(e,t.error||"unknown"))}catch(t){s&&a.silent||g(e("sessions.error.network"))}finally{s&&a.silent||p(!1)}};n(()=>{Le("archived",{silent:!0})},[]),n(()=>{if(null===d)return;const e=Array.isArray(d.items)?d.items:[],t=[];for(const a of e){const e=a.id;void 0!==v[e]||b.current.has(e)||(b.current.add(e),t.push(e))}if(0===t.length)return;let a=!1;const r=async e=>{try{const t=await h("sessions-bytes",{ids:e});if(a)return;const r=t&&t.ok&&t.value&&"object"==typeof t.value.bytes?t.value.bytes:{};if(Object.keys(r).length>0){for(const t of e)void 0!==r[t]&&Ha.set(t,r[t]);f(t=>{const a={...t};for(const t of e)void 0!==r[t]&&(a[t]=r[t]);return a})}}catch(e){}finally{if(!a)for(const t of e)b.current.delete(t)}};for(let e=0;e<t.length;e+=100)r(t.slice(e,e+100));return()=>{a=!0;for(const e of t)b.current.delete(e)}},[d]),n(()=>{if("deleted"!==y){if(""!==O.trim())return t.timer.timeout(()=>{(async e=>{if(""!==e.trim()){L(!0);try{const t=await h("sessions-search",{query:e.trim(),scope:R?"archived":"all"});t.ok?W(t.value):W({available:!0,query:e,scope:"all",hits:[],error:t.error})}catch(t){W({available:!0,query:e,scope:R?"archived":"all",hits:[],error:"network"})}finally{L(!1)}}else W(null)})(O)},300);W(null)}},[O,R,y]);const $e=(e,t,a,r,n)=>{A(!1),M([]),oe(""),de(""),ye(null),Ee("");const s=function(e){let t=null!=e&&e.currentTarget?e.currentTarget:null;const a="undefined"!=typeof document?document:null;for(;null!=t&&1===t.nodeType;){let e="";if(null!==a&&a.defaultView&&"function"==typeof a.defaultView.getComputedStyle)try{const r=a.defaultView.getComputedStyle(t);e=r?String(r.overflowY||""):""}catch(e){}else t.style&&(e=String(t.style.overflowY||t.style.overflow||""));if(("auto"===e||"scroll"===e||"overlay"===e)&&"number"==typeof t.scrollHeight&&"number"==typeof t.clientHeight&&t.scrollHeight>t.clientHeight+1)return t;t=t.parentNode}return null}(r);if(null!==s&&(G.current={key:Y(),container:s,scrollTop:s.scrollTop}),K({}),B({sessionId:e,view:t||"events",cursor:void 0,items:[],total:0,hitItems:a||null,loadedTitle:"",centerSeq:void 0}),F(""),P(!1),"search"===(t||"events")&&Array.isArray(a)&&a.length>0){const t=Number.isSafeInteger(n)?Number(n):Number(a[0].seq);je(e,Number.isSafeInteger(t)?t:0)}else We(e,void 0,t||"events")},We=async(t,a,r)=>{P(!0);try{const n=await h("sessions-view",{id:t,cursor:a});n.ok?(B(e=>{const s=null===e?{}:e,i=void 0===a?n.value.items||[]:[...s.items||[],...n.value.items||[]];return{...s,sessionId:t,view:r||s.view||"events",cursor:n.value.nextCursor,items:i,total:n.value.total,loadedTitle:s.loadedTitle||(n.value.session&&n.value.session.id,"")}}),F("")):F(Ia(e,n.error||"unknown"))}catch(t){F(e("sessions.error.network"))}finally{P(!1)}},je=async(t,a)=>{P(!0),F("");try{const r=await h("sessions-view",{id:t,center:a});r.ok?(B(e=>{const n=null===e?{}:e;return{...n,sessionId:t,view:"search",cursor:r.value.nextCursor,items:r.value.items||[],total:r.value.total,centerSeq:Number.isSafeInteger(r.value.centerSeq)?r.value.centerSeq:a,loadedTitle:n.loadedTitle||""}}),F("")):F(Ia(e,r.error||"unknown"))}catch(t){F(e("sessions.error.network"))}finally{P(!1)}},Be=async t=>{try{const a=await h("sessions-export",{id:t});if(!a.ok)return{ok:!1,error:Ia(e,a.error||"unknown")};const r=a.value.url,n=await fetch(r,{method:"HEAD"});if(!n.ok)return{ok:!1,error:e("sessions.error.export-failed",{error:"HTTP "+n.status})};const s=document.createElement("a");return s.href=r,s.download="dsh-session-"+t.replace(/[^A-Za-z0-9_-]/g,"_")+".zip",s.click(),{ok:!0}}catch(t){return{ok:!1,error:e("sessions.error.network")}}},_e=async e=>{J(e),X("");const t=await Be(e);return t.ok||X(t.error),J(""),t},Pe=async t=>{try{const a=await h("sessions-archive",{id:t});return a.ok?((e=>{const t=Oa.all;void 0!==t&&Array.isArray(t.items)&&(Oa.all={...t,items:t.items.map(t=>t.id===e?{...t,archived:!0}:t)});const a=Oa.archived;if(void 0!==a&&Array.isArray(a.items)){const r=a.items.some(t=>t.id===e),n=t?.items?.find(t=>t.id===e);Oa.archived=r?{...a,items:a.items.map(t=>t.id===e?{...t,archived:!0}:t)}:void 0!==n?{...a,items:[{...n,archived:!0},...a.items]}:a}c(t=>null!==t&&Array.isArray(t.items)?{...t,items:t.items.map(t=>t.id===e?{...t,archived:!0}:t)}:t)})(t),{ok:!0}):{ok:!1,error:Ia(e,a.error||"unknown")}}catch(t){return{ok:!1,error:e("sessions.error.network")}}},Ve=async t=>{try{const a=await h("sessions-unarchive",{id:t});return a.ok?((e=>{const t=Oa.all;void 0!==t&&Array.isArray(t.items)&&(Oa.all={...t,items:t.items.map(t=>t.id===e?{...t,archived:!1}:t)});const a=Oa.archived;void 0!==a&&Array.isArray(a.items)&&(Oa.archived={...a,items:a.items.filter(t=>t.id!==e)}),c(t=>null!==t&&Array.isArray(t.items)?"archived"===Ne.current?{...t,items:t.items.filter(t=>t.id!==e)}:{...t,items:t.items.map(t=>t.id===e?{...t,archived:!1}:t)}:t)})(t),{ok:!0}):{ok:!1,error:Ia(e,a.error||"unknown")}}catch(t){return{ok:!1,error:e("sessions.error.network")}}},Fe=e=>{const t=e?.id??"";if(""===t)return;const a=null!==d&&Array.isArray(d.items)?d.items.find(e=>e.id===t):void 0,r={id:t,title:"string"==typeof e?.title?e.title:a?.title??"",cwd:e?.cwd??a?.cwd??null,deletedAt:Date.now()};for(const e of["all","archived"]){const a=Oa[e];void 0!==a&&Array.isArray(a.items)&&(Oa[e]={...a,items:a.items.filter(e=>e.id!==t)})}const n=Oa.deleted;void 0!==n&&(Oa.deleted={...n,deleted:[r,...(Array.isArray(n.deleted)?n.deleted:[]).filter(e=>e.id!==t)]}),Ha.delete(t),c(e=>{if(null===e)return e;const a=Array.isArray(e.items)?e.items:[];return{...e,items:a.filter(e=>e.id!==t),deleted:[r,...(Array.isArray(e.deleted)?e.deleted:[]).filter(e=>e.id!==t)]}}),f(e=>{const a={...e};return delete a[t],a}),b.current.delete(t)};n(()=>{ve>0&&B(null)},[ve]),n(()=>{if(null!==j)return;const e=G.current;if(G.current=null,null===e)return;if(e.key!==Y())return;if(null===e.container||void 0===e.container)return;const t="number"==typeof e.scrollTop?e.scrollTop:0;try{"number"==typeof e.container.scrollTop&&(e.container.scrollTop=t)}catch(e){}},[j]);const Ue=null!==j&&"search"===j.view?j.centerSeq:null,Ge=null!==j&&"search"===j.view&&Array.isArray(j.items)?j.items.length:0;n(()=>{if(null!==Ue&&"number"==typeof Ue)return function(e){if("undefined"==typeof document||null===document)return()=>{};try{const a=document.querySelector('[data-testid="sessions-jump-target-'+e+'"]');if(null==a)return()=>{};try{a.scrollIntoView({behavior:"smooth",block:"center"})}catch(e){try{a.scrollIntoView()}catch(e){}}if(a.classList&&"function"==typeof a.classList.add){a.classList.add("dshsv-locate-flash");const e=t.timer.timeout(()=>{try{a.classList&&"function"==typeof a.classList.remove&&a.classList.remove("dshsv-locate-flash")}catch(e){}},2e3);return()=>{e();try{a.classList&&"function"==typeof a.classList.remove&&a.classList.remove("dshsv-locate-flash")}catch(e){}}}}catch(e){}return()=>{}}(Ue)},[Ue,Ge]);const Ye=(()=>{if(null===d)return[];if("deleted"===y)return(Array.isArray(d.deleted)?d.deleted:[]).slice().sort((e,t)=>(t.deletedAt||0)-(e.deletedAt||0)).map(e=>({...e,_deleted:!0,archived:!0}));let e=(Array.isArray(d.items)?d.items:[]).slice();return k&&(e=e.filter(e=>!0===e.subagent)),"createdAsc"===E?e.sort((e,t)=>(e.createdAt||0)-(t.createdAt||0)):"title"===E?e.sort((e,t)=>String(e.title||"").localeCompare(String(t.title||""))):"project"===E?e.sort((e,t)=>String(e.cwd||"").localeCompare(String(t.cwd||""))||(t.createdAt||0)-(e.createdAt||0)):e.sort((e,t)=>(t.createdAt||0)-(e.createdAt||0)),e})(),Qe=""!==O.trim()?[]:"deleted"===y?Ye.map(e=>e.id):Ye.filter(e=>!0!==e._deleted).map(e=>e.id),Je=new Set(T),Ze=Ye.filter(e=>Je.has(e.id)),Xe=Ze.filter(e=>!0!==e._deleted),et=Ze.filter(e=>!0!==e._deleted&&!0!==e.live&&!0!==e.archived),tt=Ze.filter(e=>!0!==e._deleted&&!0===e.archived),at=Ze.filter(e=>!0!==e._deleted&&!0!==e.live&&!0===e.archived),rt=Ze.filter(e=>!0===e._deleted),nt=Qe.length>0&&Qe.every(e=>Je.has(e));n(()=>{if(!z)return;const e=new Set(Qe);M(t=>{const a=t.filter(t=>e.has(t));return a.length===t.length?t:a})},[d,y,z,k]);const st=()=>{A(!1),M([]),oe(""),de("")},it=e=>{M(t=>t.includes(e)?t.filter(t=>t!==e):[...t,e])},ot="deleted"===y?[]:Ye.filter(e=>!0===e.subagent).map(e=>e.id),lt=t=>{const a=!0===t._deleted,n=t.id,s=a?t.title||e("sessions.row.noTitle"):""!==t.title?t.title:e("sessions.row.noTitle"),i=!0===t.live,o=a||!0===t.archived,l=Je.has(n),c=(()=>{const e=v[n];return"number"==typeof e&&e>0?Ta(e):null})(),u=[i?e("sessions.row.live"):o?e("sessions.row.archived"):null,a?e("sessions.row.deleted"):null,t.cwd?e("sessions.detail.cwd",{cwd:t.cwd}):null,a?t.deletedAt?Ma(t.deletedAt,e):null:c].filter(Boolean),p=[];return a?p.push(r.createElement("button",{key:"clear",type:"button","data-testid":"sessions-row-clear-"+n,style:He,onClick:()=>{(e=>{null!==be||xe||(Ee(""),ye({batch:!1,items:[{id:e.id,title:e.title}]}))})(t)}},e("sessions.action.clear"))):(p.push(r.createElement("button",{key:"view",type:"button","data-testid":"sessions-row-view-"+n,style:Oe,onClick:e=>$e(n,"events",null,e)},e("sessions.action.view"))),p.push(r.createElement("button",{key:"export",type:"button","data-testid":"sessions-row-export-"+n,style:Oe,disabled:Q===n,onClick:()=>{_e(n)}},e(Q===n?"sessions.detail.exporting":"sessions.action.export"))),i||o||p.push(r.createElement("button",{key:"archive",type:"button","data-testid":"sessions-row-archive-"+n,style:Oe,disabled:Se===n,onClick:()=>{(async e=>{Ce(e),Me("");const t=await Pe(e);t.ok||Me(t.error),Ce("")})(n)}},e(Se===n?"sessions.status.working":"sessions.action.archive"))),o&&!1!==d?.canUnarchive&&p.push(r.createElement("button",{key:"unarchive",type:"button","data-testid":"sessions-row-unarchive-"+n,style:Oe,disabled:ze===n,onClick:()=>{(async e=>{Ae(e),Me("");const t=await Ve(e);t.ok||Me(t.error),Ae("")})(n)}},e(ze===n?"sessions.status.working":"sessions.action.unarchive"))),!i&&o&&p.push(r.createElement("button",{key:"delete",type:"button","data-testid":"sessions-row-delete-"+n,style:He,onClick:()=>{(async t=>{if(null===ce&&!pe){he("");try{const a=await h("sessions-delete-plan",{id:t});a.ok?ue(a.value):he(Ia(e,a.error||"unknown"))}catch(t){he(e("sessions.error.network"))}}})(n)}},e("sessions.action.delete")))),r.createElement("div",{key:n,"data-testid":"sessions-row-"+n,"data-selected":z&&l?"true":void 0,onClick:z?()=>it(n):void 0,style:{display:"flex",alignItems:"center",justifyContent:"space-between",gap:"10px",padding:z?"9px 2px 9px 8px":"9px 2px",borderBottom:"1px solid var(--dsh-svc-border)",background:"transparent",borderRadius:"4px",boxShadow:z&&l?"inset 3px 0 0 var(--dsw-alias-brand-primary)":"none",cursor:z?"pointer":"default"}},r.createElement("div",{style:{display:"flex",alignItems:"center",gap:"9px",minWidth:0,flex:"1 1 auto"}},z?r.createElement("input",{type:"checkbox","data-testid":"sessions-select-"+n,"aria-label":e("sessions.batch.selectRow",{title:s}),checked:l,onClick:e=>e.stopPropagation(),onChange:()=>it(n),style:{width:"16px",height:"16px",flexShrink:0,accentColor:"var(--dsw-alias-brand-primary)",cursor:"pointer"}}):null,r.createElement("div",{style:{minWidth:0}},r.createElement("div",{style:{display:"flex",alignItems:"center",gap:"6px",flexWrap:"wrap"}},r.createElement("span",{style:{fontSize:"13px",fontWeight:600,color:"var(--dsw-alias-label-primary)",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"}},s),i?r.createElement("span",{"data-testid":"sessions-tag-live-"+n,style:ae("success")},e("sessions.row.live")):null,o?r.createElement("span",{"data-testid":"sessions-tag-archived-"+n,style:ae("warning")},e("sessions.row.archived")):null,a?r.createElement("span",{style:ae("danger")},e("sessions.row.deleted")):null,a||!0!==t.subagent?null:r.createElement("span",{"data-testid":"sessions-tag-subagent-"+n,style:ae("info")},e("sessions.row.subagent"))),r.createElement("div",{"data-testid":"sessions-meta-"+n,style:{fontSize:"11.5px",color:"var(--dsw-alias-label-tertiary)",marginTop:"3px"}},u.join(" · ")))),z?null:r.createElement("div",{style:{display:"flex",alignItems:"center",gap:"6px",flexShrink:0,flexWrap:"wrap",justifyContent:"flex-end"}},...p))},dt=(t,a)=>{const n=!0===t.noise,s="string"==typeof t.text&&""!==t.text?r.createElement("div",{"data-testid":"sessions-event-text-"+t.seq,style:{marginTop:"4px"}},null!==Na?r.createElement(Na,{text:t.text,labels:La(e)}):r.createElement("div",{style:{fontSize:"12px",lineHeight:1.55,color:"var(--dsw-alias-label-primary)",whiteSpace:"pre-wrap",wordBreak:"break-word"}},t.text)):null;return r.createElement("div",{key:String(t.seq),"data-testid":"sessions-event-"+t.seq,style:{padding:"8px 10px",borderRadius:"8px",border:"1px solid var(--dsw-alias-border-l1)",background:n?"transparent":"var(--dsw-alias-bg-layer-3)",marginBottom:"5px"}},r.createElement("div",{style:{display:"flex",alignItems:"center",gap:"8px",fontSize:"11px",color:"var(--dsw-alias-label-tertiary)"}},r.createElement("span",{"data-testid":"sessions-event-type-"+t.seq,style:{fontWeight:600,color:n?"inherit":"var(--dsw-alias-label-secondary)"}},n?e("sessions.detail.noise"):t.type),t.time?r.createElement("span",null,Ma(t.time,e)):null),s)};return r.createElement("div",{"data-testid":"sessions-section",style:ne()},r.createElement("div",{style:{fontSize:"14px",fontWeight:700,margin:"0 0 8px",color:"var(--dsw-alias-label-primary)"}},e("sessions.title")),r.createElement("div",{"data-testid":"sessions-nav-toggle",style:{margin:"2px 0 8px"}},r.createElement("div",{style:{display:"flex",alignItems:"center",justifyContent:"space-between",gap:"12px"}},r.createElement("div",{style:{display:"flex",flexDirection:"column",gap:"2px"}},r.createElement("span",{style:{fontSize:"13px",color:"var(--dsw-alias-label-primary)"}},e("sessions.navToggle"))),r.createElement("button",{type:"button",role:"switch","data-testid":"sessions-nav-switch","aria-checked":String(i),onClick:()=>o(!i),style:{width:"34px",height:"20px",...I("10px"),padding:0,flexShrink:0,position:"relative",border:"1px solid "+(i?"var(--dsw-alias-state-success-primary)":"var(--dsw-alias-border-l2)"),background:i?"var(--dsw-alias-state-success-primary)":"var(--dsw-alias-bg-layer-2)",cursor:"pointer",lineHeight:0}},r.createElement("span",{style:{position:"absolute",top:"1px",left:i?"15px":"1px",width:"16px",height:"16px",...I("50%"),background:i?"#fff":"var(--dsw-alias-label-tertiary)"}})))),r.createElement("div",{style:{display:"flex",alignItems:"center",gap:"8px",flexWrap:"wrap",margin:"0 0 10px"}},["all","archived","deleted"].map(t=>r.createElement("button",{key:t,type:"button","data-testid":"sessions-filter-"+t,style:{...Oe,background:y===t?"var(--dsh-svc-tab-active-bg)":"transparent",color:y===t?"var(--dsh-svc-tab-active-text)":"var(--dsw-alias-label-primary)",fontWeight:y===t?650:400},onClick:()=>(e=>{e!==y&&(x(e),A(!1),M([]),oe(""),de(""),H(""),W(null),B(null),ye(null),Ee(""),Le(e))})(t)},e("sessions.filter."+t))),r.createElement("select",{"data-testid":"sessions-sort",style:{fontSize:"12px",padding:"4px 8px",borderRadius:"6px",border:"1px solid var(--dsw-alias-border-l2)",background:"var(--dsw-alias-bg-layer-2)",color:"var(--dsw-alias-label-primary)",maxWidth:"100%"},value:E,onChange:e=>S(e.target.value)},r.createElement("option",{value:"createdDesc"},e("sessions.sort.createdDesc")),r.createElement("option",{value:"createdAsc"},e("sessions.sort.createdAsc")),r.createElement("option",{value:"title"},e("sessions.sort.title")),r.createElement("option",{value:"project"},e("sessions.sort.project"))),r.createElement("button",{type:"button","data-testid":"sessions-refresh","data-variant":"neutral",style:Object.assign({},ee("neutral"),{minHeight:"28px",padding:"4px 10px",fontSize:"12px"}),onClick:()=>{Le(void 0,{force:!0})}},e("sessions.refresh")),null===j&&""===O.trim()?r.createElement("button",{type:"button","data-testid":"sessions-batch-toggle","data-variant":z?"primary":"neutral",style:Object.assign({},ee(z?"primary":"neutral"),{minHeight:"28px",padding:"4px 10px",fontSize:"12px"}),onClick:z?st:()=>{A(!0),M([]),oe(""),de("")}},e(z?"sessions.batch.exit":"sessions.batch.enter")):null),null===j&&z?r.createElement("div",{"data-testid":"sessions-batch-bar",style:{display:"flex",alignItems:"center",gap:"8px",flexWrap:"wrap",margin:"0 0 10px",padding:"8px 10px",border:"1px solid var(--dsw-alias-border-l1)",borderRadius:"8px",background:"var(--dsw-alias-bg-layer-3)"}},r.createElement("button",{type:"button","data-testid":"sessions-select-all",style:Oe,disabled:0===Qe.length||""!==re||pe||xe,onClick:()=>{M(nt?[]:Qe.slice())}},e(nt?"sessions.batch.clearAll":"sessions.batch.selectAll")),"deleted"!==y&&ot.length>0?r.createElement("button",{type:"button","data-testid":"sessions-batch-select-subagents",style:Oe,disabled:""!==re||pe||xe,onClick:()=>{M(e=>{const t=ot.filter(t=>!e.includes(t));return 0===t.length?e:[...e,...t]})}},e("sessions.batch.selectSubagents")):null,r.createElement("span",{"data-testid":"sessions-selected-count",style:{fontSize:"12px",color:"var(--dsw-alias-label-secondary)",marginRight:"auto"}},e("sessions.batch.selected",{count:T.length})),"deleted"===y?r.createElement("button",{type:"button","data-testid":"sessions-batch-clear",style:He,disabled:0===rt.length||""!==re||pe||xe,onClick:()=>{null!==be||xe||0===rt.length||(Ee(""),ye({batch:!0,items:rt.map(e=>({id:e.id,title:e.title}))}))}},e("sessions.batch.clear",{count:rt.length})):[r.createElement("button",{key:"export",type:"button","data-testid":"sessions-batch-export",style:Oe,disabled:0===Xe.length||""!==re||pe||xe,onClick:()=>{(async()=>{if(""!==re||0===Xe.length)return;se("export"),oe(""),de("");let t=0,a="";for(const e of Xe){const r=await Be(e.id);r.ok?t+=1:""===a&&(a=r.error)}""===a?oe(e("sessions.batch.completed",{action:e("sessions.action.export"),count:t})):de(e("sessions.batch.failed",{action:e("sessions.action.export"),done:t,total:Xe.length,error:a})),se("")})()}},"export"===re?e("sessions.status.working"):e("sessions.batch.export",{count:Xe.length})),r.createElement("button",{key:"archive",type:"button","data-testid":"sessions-batch-archive",style:Oe,disabled:0===et.length||""!==re||pe||xe,onClick:()=>{(async()=>{if(""!==re||0===et.length)return;se("archive"),oe(""),de("");let t=0,a="";const r=et.map(e=>e.id),n=[];for(const e of r){const r=await Pe(e);r.ok?(t+=1,n.push(e)):""===a&&(a=r.error)}n.length>0&&M(e=>e.filter(e=>!n.includes(e))),""===a?oe(e("sessions.batch.completed",{action:e("sessions.action.archive"),count:t})):de(e("sessions.batch.failed",{action:e("sessions.action.archive"),done:t,total:r.length,error:a})),se("")})()}},"archive"===re?e("sessions.status.working"):e("sessions.batch.archive",{count:et.length})),!1!==d?.canUnarchive?r.createElement("button",{key:"unarchive",type:"button","data-testid":"sessions-batch-unarchive",style:Oe,disabled:0===tt.length||""!==re||pe||xe,onClick:()=>{(async()=>{if(""!==re||0===tt.length)return;se("unarchive"),oe(""),de("");let t=0,a="";const r=tt.map(e=>e.id),n=[];for(const e of r){const r=await Ve(e);r.ok?(t+=1,n.push(e)):""===a&&(a=r.error)}n.length>0&&M(e=>e.filter(e=>!n.includes(e))),""===a?oe(e("sessions.batch.completed",{action:e("sessions.action.unarchive"),count:t})):de(e("sessions.batch.failed",{action:e("sessions.action.unarchive"),done:t,total:r.length,error:a})),se("")})()}},"unarchive"===re?e("sessions.status.working"):e("sessions.batch.unarchive",{count:tt.length})):null,r.createElement("button",{key:"delete",type:"button","data-testid":"sessions-batch-delete",style:He,disabled:0===at.length||""!==re||pe||xe,onClick:()=>{(async()=>{if(""!==re||null!==ce||0===at.length)return;se("delete-plan"),oe(""),de("");const t=[];let a="";for(const r of at)try{const n=await h("sessions-delete-plan",{id:r.id});n.ok?t.push(n.value):""===a&&(a=Ia(e,n.error||"unknown"))}catch(t){""===a&&(a=e("sessions.error.network"))}se(""),""===a&&t.length===at.length?ue({batch:!0,plans:t,sessions:t.map(e=>e.session),consequences:["deletes-session-log"]}):de(e("sessions.batch.failed",{action:e("sessions.action.delete"),done:t.length,total:at.length,error:a||e("sessions.error.network")}))})()}},"delete-plan"===re?e("sessions.status.working"):e("sessions.batch.delete",{count:at.length}))]):null,null===j&&"deleted"!==y?r.createElement("div",{style:{display:"flex",gap:"8px",alignItems:"center",marginBottom:"10px",flexWrap:"wrap"}},r.createElement("input",{"data-testid":"sessions-search-input",type:"text",placeholder:e("sessions.search.placeholder"),value:O,onChange:e=>{z&&st(),H(e.target.value)},style:{fontSize:"12px",padding:"6px 10px",borderRadius:"7px",border:"1px solid var(--dsw-alias-border-l2)",background:"var(--dsw-alias-bg-layer-2)",color:"var(--dsw-alias-label-primary)",width:"100%",boxSizing:"border-box"}}),r.createElement("label",{style:{display:"flex",alignItems:"center",gap:"5px",fontSize:"12px",color:"var(--dsw-alias-label-secondary)",whiteSpace:"nowrap"}},r.createElement("input",{type:"checkbox","data-testid":"sessions-search-archived",checked:R,onChange:e=>D(e.target.checked)}),e("sessions.search.archivedOnly")),r.createElement("label",{style:{display:"flex",alignItems:"center",gap:"5px",fontSize:"12px",color:"var(--dsw-alias-label-secondary)",whiteSpace:"nowrap"}},r.createElement("input",{type:"checkbox","data-testid":"sessions-filter-subagent",checked:k,onChange:e=>w(e.target.checked)}),e("sessions.filter.subagent"))):null,""!==Te?r.createElement("p",{style:{...Ie,color:"var(--dsw-alias-state-error-primary)"}},Te+(!1!==d?.canUnarchive?"":" · "+e("sessions.oneWayHint"))):null,""!==Z?r.createElement("p",{style:{...Ie,color:"var(--dsw-alias-state-error-primary)"}},Z):null,""!==ie?r.createElement("p",{"data-testid":"sessions-batch-result",style:{...Ie,color:"var(--dsw-alias-state-success-primary)"}},ie):null,""!==le?r.createElement("p",{"data-testid":"sessions-batch-error",style:{...Ie,color:"var(--dsw-alias-state-error-primary)"}},le):null,(()=>{const t=null!==d&&Array.isArray(d.items)?d.items:[];return k&&"deleted"!==y&&t.length>0&&t.every(e=>void 0===e.subagent)?r.createElement("p",{"data-testid":"sessions-subagent-legacy-hint",style:{...Ie,color:"var(--dsh-svc-warning)"}},e("sessions.subagent.hostLegacy")):null})(),(()=>{if(null===j)return null;const a=null!==d&&Array.isArray(d.items)?d.items.find(e=>e.id===j.sessionId):void 0,n=""!==O&&"search"===j.view&&null!==$?$.hits.find(e=>e.sessionId===j.sessionId)?.title||"":void 0!==a&&""!==a.title?a.title:"",s=null!==d&&Array.isArray(d.items)?d.items.find(e=>e.id===j.sessionId):void 0,i="search"===j.view&&Array.isArray(j.hitItems)?j.hitItems.map(e=>Number(e.seq)).filter(e=>Number.isSafeInteger(e)):[],o="search"===j.view&&"number"==typeof j.centerSeq?i.indexOf(j.centerSeq):-1,l=o>0?i[o-1]:void 0,c=o>=0&&o<i.length-1?i[o+1]:void 0,u=new Set(i),p={noise:{testId:"sessions-noisewall-",countKey:"sessions.detail.noiseBlock",collapseKey:"sessions.detail.noiseCollapse"},tool:{testId:"sessions-toolwall-",countKey:"sessions.detail.toolBlock",collapseKey:"sessions.detail.toolCollapse"}},m=(t,a)=>{const n=(t,n)=>null!==a&&a.has(Number(t.seq))?r.createElement("div",{key:"jump-"+t.seq,"data-testid":"sessions-jump-target-"+t.seq,style:{borderRadius:"8px",border:"1px solid rgba(198,128,0,0.55)",background:"rgba(198,128,0,0.10)",padding:"6px 8px",marginBottom:"6px"}},r.createElement("div",{"data-testid":"sessions-jump-badge-"+t.seq,style:{fontSize:"10.5px",fontWeight:700,color:"var(--dsw-alias-state-warn-primary)",marginBottom:"3px"}},e("sessions.hit.badge")),dt(t)):dt(t);return function(e){const t=[],a=Array.isArray(e)?e:[];for(let e=0;e<a.length;e+=1){const r=a[e],n=!0===r.noise?"noise":!0===r.tool?"tool":null;if(null===n){t.push(r);continue}const s=t[t.length-1];void 0!==s&&s._block===n?(s.count+=1,s.lastSeq=r.seq,s.lastIndex=e):t.push({_block:n,count:1,firstSeq:r.seq,lastSeq:r.seq,firstIndex:e,lastIndex:e})}return t}(t).map((s,i)=>{if(void 0!==s._block){const i=p[s._block],o=Array.isArray(t)?t.slice(s.firstIndex,s.lastIndex+1):[],l=U[s.firstSeq],d=null!==a&&o.some(e=>a.has(Number(e.seq))),c=void 0===l?d:!0===l;return r.createElement("div",{key:s._block+"-"+s.firstSeq,"data-testid":i.testId+s.firstSeq,style:{padding:"6px 10px",borderRadius:"8px",border:"1px solid var(--dsw-alias-border-l1)",background:"transparent",marginBottom:"5px"}},r.createElement("button",{type:"button","data-testid":i.testId+"toggle-"+s.firstSeq,style:{...Oe,border:0,padding:0,color:"var(--dsw-alias-label-tertiary)",fontSize:"11px"},onClick:()=>((e,t)=>K(a=>({...a,[e]:!t})))(s.firstSeq,c)},e(c?"sessions.glyph.collapse":"sessions.glyph.expand")+" "+e(c?i.collapseKey:i.countKey,{count:s.count})),c&&o.length>0?r.createElement("div",{style:{marginTop:"6px"}},o.map(e=>n(e))):null)}return n(s)})};return r.createElement("div",{"data-testid":"sessions-detail"},r.createElement("div",{style:{display:"flex",alignItems:"center",gap:"8px",flexWrap:"wrap",marginBottom:"10px"}},r.createElement("button",{type:"button","data-testid":"sessions-detail-back",style:Oe,onClick:()=>B(null)},e("sessions.glyph.back")+" "+e("sessions.detail.back")),r.createElement("span",{style:{fontSize:"14px",fontWeight:700,color:"var(--dsw-alias-label-primary)",minWidth:0}},""!==n?n:e("sessions.row.noTitle")),s?.archived?r.createElement("span",{title:e("sessions.detail.archiveDisabled"),style:{fontSize:"11px",color:"var(--dsw-alias-label-tertiary)"}},e("sessions.detail.archiveDisabled")):r.createElement("button",{type:"button","data-testid":"sessions-detail-open",style:Oe,onClick:()=>{try{(t.get?.("uiWorkspace")?.openSession??t.sessions?.open)?.(j.sessionId)}catch(e){}}},e("sessions.detail.open")),r.createElement("button",{type:"button","data-testid":"sessions-detail-export",style:Oe,disabled:Q===j.sessionId,onClick:()=>{_e(j.sessionId)}},Q===j.sessionId?e("sessions.detail.exporting"):e("sessions.detail.exportAll"))),"search"===j.view&&null!==j.hitItems?r.createElement("div",{"data-testid":"sessions-jump-view",style:{marginBottom:"10px"}},r.createElement("div",{style:{display:"flex",alignItems:"center",gap:"6px",flexWrap:"wrap",marginBottom:"6px"}},r.createElement("button",{type:"button","data-testid":"sessions-detail-return-search",style:Oe,onClick:()=>B(null)},e("sessions.glyph.back")+" "+e("sessions.hit.return")),r.createElement("span",{style:{fontSize:"11.5px",color:"var(--dsw-alias-label-tertiary)"}},e("sessions.hit.inSession",{count:Array.isArray(j.hitItems)?j.hitItems.length:0})),r.createElement("button",{type:"button","data-testid":"sessions-jump-prev",style:Oe,disabled:void 0===l||_,onClick:()=>{void 0!==l&&je(j.sessionId,l)}},e("sessions.hit.prev")),r.createElement("button",{type:"button","data-testid":"sessions-jump-next",style:Oe,disabled:void 0===c||_,onClick:()=>{void 0!==c&&je(j.sessionId,c)}},e("sessions.hit.next"))),r.createElement("div",{style:{display:"flex",gap:"4px",flexWrap:"wrap",marginBottom:"8px"}},i.map(e=>r.createElement("button",{key:e,type:"button","data-testid":"sessions-jump-chip-"+e,style:{...Oe,padding:"1px 8px",fontSize:"11px",...I("999px"),background:e===j.centerSeq?"var(--dsh-svc-tab-active-bg)":"transparent",color:e===j.centerSeq?"var(--dsh-svc-tab-active-text)":"var(--dsw-alias-label-secondary)"},onClick:()=>{je(j.sessionId,e)}},"#"+e))),_&&0===j.items.length?r.createElement("p",{style:Ie},e("sessions.status.loading")):null,m(j.items,u),void 0!==j.cursor&&j.items.length>0?r.createElement("button",{type:"button","data-testid":"sessions-detail-more",style:Oe,disabled:_,onClick:()=>{We(j.sessionId,j.cursor,j.view)}},e("sessions.detail.loadMore",{remaining:Math.max(0,j.total-j.items.length)})):null,void 0===j.cursor&&j.items.length>0?r.createElement("p",{style:Ie},e("sessions.detail.noMore",{total:j.total})):null):null,""!==V?r.createElement("p",{style:{...Ie,color:"var(--dsw-alias-state-error-primary)"}},V):null,"search"!==j.view?m(j.items,null):null,"search"!==j.view&&void 0!==j.cursor?r.createElement("button",{type:"button","data-testid":"sessions-detail-more",style:Oe,disabled:_,onClick:()=>{We(j.sessionId,j.cursor,j.view)}},e("sessions.detail.loadMore",{remaining:Math.max(0,j.total-j.items.length)})):null,"search"!==j.view&&void 0===j.cursor&&j.items.length>0?r.createElement("p",{style:Ie},e("sessions.detail.noMore",{total:j.total})):null)})()??(()=>{if(u)return r.createElement("p",{style:Ie},e("sessions.status.loading"));if(""!==m)return r.createElement("p",{"data-testid":"sessions-error",style:{...Ie,color:"var(--dsw-alias-state-error-primary)"}},m);if(""!==O.trim()&&"deleted"!==y)return null===$?r.createElement("p",{style:Ie},e(N?"sessions.status.loading":"sessions.search.placeholder")):$.error?r.createElement("p",{style:{...Ie,color:"var(--dsw-alias-state-error-primary)"}},Ia(e,$.error)):0===$.hits.length?r.createElement("p",{style:Ie},e("sessions.empty.search",{query:O})):$.hits.map(t=>r.createElement("div",{key:t.sessionId,"data-testid":"sessions-hit-"+t.sessionId,style:{padding:"9px 10px",borderRadius:"8px",border:"1px solid var(--dsw-alias-border-l1)",background:"var(--dsw-alias-bg-layer-3)",marginBottom:"6px"}},r.createElement("button",{type:"button","data-testid":"sessions-hit-open-"+t.sessionId,style:{...Oe,border:0,padding:0,textAlign:"left",display:"inline",maxWidth:"100%"},onClick:e=>$e(t.sessionId,"search",t.items,e)},r.createElement("span",{style:{fontWeight:600,color:"var(--dsw-alias-label-primary)"}},""!==t.title?t.title:e("sessions.row.noTitle")),r.createElement("span",{style:{color:"var(--dsw-alias-label-secondary)",marginLeft:"6px",fontSize:"11.5px"}},e("sessions.hit.title",{count:t.items.length}))),t.items.length>1?r.createElement("div",{style:{display:"flex",gap:"4px",flexWrap:"wrap",marginTop:"5px"}},t.items.map(e=>r.createElement("button",{key:e.seq,type:"button","data-testid":"sessions-hit-seq-"+t.sessionId+"-"+e.seq,style:{...Oe,padding:"1px 8px",fontSize:"11px",...I("999px"),color:"var(--dsw-alias-label-tertiary)"},onClick:a=>$e(t.sessionId,"search",t.items,a,Number(e.seq))},"#"+e.seq))):null,t.items.slice(0,1).map((e,a)=>r.createElement("div",{key:a,"data-testid":"sessions-hit-snippet-"+t.sessionId,style:{fontSize:"12px",color:"var(--dsw-alias-label-secondary)",marginTop:"5px",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"}},function(e,t,a){const n="string"==typeof e?e:"",s="string"==typeof t?t.trim().split(/\s+/).filter(Boolean):[];if(""===n||0===s.length)return n;let i;try{i=new RegExp(s.map(e=>e.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")).join("\\s+"),"gi")}catch(e){return n}const o=[];let l,d=0,c=0;for(;null!==(l=i.exec(n));)l.index>d&&o.push(n.slice(d,l.index)),o.push(r.createElement("mark",{key:a+"-"+c,"data-testid":a+"-"+c,style:{background:"rgba(198,128,0,0.24)",color:"inherit",borderRadius:"3px",padding:"0 1px"}},l[0])),d=l.index+l[0].length,c+=1;return 0===o.length?n:(d<n.length&&o.push(n.slice(d)),o)}(e.snippet,$.query||O,"sessions-hit-highlight-"+t.sessionId)))));if(0===Ye.length){const t="archived"===y?"sessions.empty.archived":"deleted"===y?"sessions.empty.deleted":"sessions.empty.all";return r.createElement("p",{style:Ie},e(t))}if("project"!==E||"deleted"===y)return Ye.map(lt);const t=[];for(const e of Ye){const a=String(e.cwd||""),r=t.length>0&&t[t.length-1].project===a?t[t.length-1]:null;null===r?t.push({project:a,items:[e]}):r.items.push(e)}return t.map((t,a)=>{const n=!q.includes(t.project);return r.createElement("div",{key:"project-group-"+(""===t.project?"__none__":t.project),"data-testid":"sessions-project-group-"+a,style:{marginBottom:"14px"}},r.createElement("div",{"data-testid":"sessions-project-header-"+a,"data-project":t.project,"data-collapsed":n?"true":"false",role:"button","aria-expanded":String(!n),onClick:()=>{return e=t.project,C(t=>t.includes(e)?t.filter(t=>t!==e):[...t,e]);var e},style:{display:"flex",alignItems:"baseline",gap:"8px",margin:"0 2px 4px",padding:"2px 5px",borderRadius:"6px",cursor:"pointer",userSelect:"none"}},r.createElement("span",{style:{fontSize:"11px",color:"var(--dsw-alias-label-tertiary)",flex:"none"}},e(n?"sessions.glyph.expand":"sessions.glyph.collapse")),r.createElement("span",{style:{fontSize:"11.5px",fontWeight:650,color:"var(--dsw-alias-label-secondary)",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"}},""===t.project?e("sessions.projectGroup.noCwd"):t.project),r.createElement("span",{"data-testid":"sessions-project-count-"+a,style:{fontSize:"11px",color:"var(--dsw-alias-label-tertiary)",flexShrink:0}},1===t.items.length?e("sessions.projectGroup.countOne"):e("sessions.projectGroup.countMany",{count:t.items.length}))),n?null:t.items.map(lt))})})(),(()=>{if(null===ce)return null;const t=!0===ce.batch&&Array.isArray(ce.sessions)?ce.sessions:null,a=null===t&&ce.session||{};return r.createElement("div",{"data-testid":"sessions-delete-modal",style:{position:"fixed",inset:0,zIndex:1200,display:"flex",alignItems:"center",justifyContent:"center",background:"rgba(0,0,0,0.45)"}},r.createElement("div",{style:{width:"min(480px, calc(100vw - 32px))",background:"var(--dsw-alias-bg-layer-2)",border:"1px solid var(--dsw-alias-border-l2)",borderRadius:"14px",padding:"18px",boxShadow:"0 12px 40px rgba(0,0,0,0.25)"}},r.createElement("div",{style:{fontSize:"15px",fontWeight:700,color:"var(--dsw-alias-label-primary)",marginBottom:"8px"}},null===t?e("sessions.delete.title"):e("sessions.batch.deleteTitle",{count:t.length})),r.createElement("p",{style:{fontSize:"13px",color:"var(--dsw-alias-label-secondary)",lineHeight:1.5,margin:"0 0 10px"}},e(null===t?"sessions.delete.body":"sessions.batch.deleteBody")),null===t?r.createElement("div",{style:{fontSize:"13px",fontWeight:600,color:"var(--dsw-alias-label-primary)",marginBottom:"6px"}},a.title||e("sessions.row.noTitle")):r.createElement("ul",{"data-testid":"sessions-batch-delete-list",style:{margin:"0 0 12px",paddingLeft:"18px",maxHeight:"220px",overflowY:"auto",fontSize:"12px",color:"var(--dsw-alias-label-secondary)",lineHeight:1.7}},t.map(t=>r.createElement("li",{key:t.id},e("sessions.batch.deleteItem",{title:t.title||e("sessions.row.noTitle"),bytes:Ta(t.bytes)})))),null===t?r.createElement("ul",{style:{margin:"0 0 12px",paddingLeft:"18px",fontSize:"12px",color:"var(--dsw-alias-label-secondary)",lineHeight:1.7}},r.createElement("li",null,e("sessions.delete.consequence.log",{bytes:Ta(a.bytes)})),ce.consequences&&ce.consequences.includes("hides-from-official-sidebar")?r.createElement("li",null,e("sessions.delete.consequence.sidebar")):null):null,""!==ge?r.createElement("p",{style:{...Ie,color:"var(--dsw-alias-state-error-primary)"}},ge):null,r.createElement("div",{style:{display:"flex",justifyContent:"flex-end",gap:"8px"}},r.createElement("button",{type:"button","data-testid":"sessions-delete-cancel",style:Oe,disabled:pe,onClick:()=>{ue(null),he("")}},e("sessions.delete.cancel")),r.createElement("button",{type:"button","data-testid":"sessions-delete-confirm",style:Re,disabled:pe,onClick:()=>{(async()=>{if(null===ce||pe)return;me(!0),he("");const t=!0===ce.batch&&Array.isArray(ce.plans)?ce.plans:[ce];let a=0,r="";for(const n of t)try{const t=await h("sessions-delete",{planId:n.planId});t.ok?(a+=1,Fe(n.session)):""===r&&(r=Ia(e,t.error||"unknown"))}catch(t){""===r&&(r=e("sessions.error.network"))}!0===ce.batch?(ue(null),fe(e=>e+1),""===r?(oe(e("sessions.batch.completed",{action:e("sessions.action.delete"),count:a})),de("")):(oe(""),de(e("sessions.batch.failed",{action:e("sessions.action.delete"),done:a,total:t.length,error:r})))):""===r?(ue(null),fe(e=>e+1)):he(r),me(!1)})()}},e(pe?"sessions.status.working":"sessions.delete.confirm")))))})(),(()=>{if(null===be)return null;const t=!0===be.batch,a=Array.isArray(be.items)?be.items:[],n=a.length;return r.createElement("div",{"data-testid":"sessions-clear-modal",style:{position:"fixed",inset:0,zIndex:1200,display:"flex",alignItems:"center",justifyContent:"center",background:"rgba(0,0,0,0.45)"}},r.createElement("div",{style:{width:"min(480px, calc(100vw - 32px))",background:"var(--dsw-alias-bg-layer-2)",border:"1px solid var(--dsw-alias-border-l2)",borderRadius:"14px",padding:"18px",boxShadow:"0 12px 40px rgba(0,0,0,0.25)"}},r.createElement("div",{style:{fontSize:"15px",fontWeight:700,color:"var(--dsw-alias-label-primary)",marginBottom:"8px"}},t?e("sessions.batch.clearTitle",{count:n}):e("sessions.clear.title")),r.createElement("p",{style:{fontSize:"13px",color:"var(--dsw-alias-label-secondary)",lineHeight:1.5,margin:"0 0 10px"}},t?e("sessions.batch.clearBody",{count:n}):e("sessions.clear.body")),t?r.createElement("ul",{"data-testid":"sessions-clear-list",style:{margin:"0 0 12px",paddingLeft:"18px",maxHeight:"220px",overflowY:"auto",fontSize:"12px",color:"var(--dsw-alias-label-secondary)",lineHeight:1.7}},a.map(t=>r.createElement("li",{key:t.id},t.title||e("sessions.row.noTitle")))):r.createElement("div",{style:{fontSize:"13px",fontWeight:600,color:"var(--dsw-alias-label-primary)",marginBottom:"12px"}},a[0]?.title||e("sessions.row.noTitle")),""!==we?r.createElement("p",{style:{...Ie,color:"var(--dsw-alias-state-error-primary)"}},we):null,r.createElement("div",{style:{display:"flex",justifyContent:"flex-end",gap:"8px"}},r.createElement("button",{type:"button","data-testid":"sessions-clear-cancel",style:Oe,disabled:xe,onClick:()=>{ye(null),Ee("")}},e("sessions.clear.cancel")),r.createElement("button",{type:"button","data-testid":"sessions-clear-confirm",style:Re,disabled:xe,onClick:()=>{(async()=>{if(null===be||xe)return;ke(!0),Ee("");const t=(Array.isArray(be.items)?be.items:[]).map(e=>e.id),a=!0===be.batch;try{const r=await h("sessions-clear-deleted",{ids:t});if(r.ok)(e=>{const t=new Set(e),a=Oa.deleted;void 0!==a&&Array.isArray(a.deleted)&&(Oa.deleted={...a,deleted:a.deleted.filter(e=>!t.has(e.id))}),c(e=>{if(null===e)return e;const a=Array.isArray(e.deleted)?e.deleted:[];return{...e,deleted:a.filter(e=>!t.has(e.id))}}),M(e=>e.filter(e=>!t.has(e)))})(t),ye(null),a&&(oe(e("sessions.batch.completed",{action:e("sessions.action.clear"),count:t.length})),de(""));else{const n=Ia(e,r.error||"unknown");a?de(e("sessions.batch.failed",{action:e("sessions.action.clear"),done:0,total:t.length,error:n})):Ee(n)}}catch(r){const n=e("sessions.error.network");a?de(e("sessions.batch.failed",{action:e("sessions.action.clear"),done:0,total:t.length,error:n})):Ee(n)}finally{ke(!1)}})()}},e(xe?"sessions.status.working":"sessions.clear.confirm")))))})())}function Wa(){const e=qe(),{value:n}=ce(),[s,l]=Ue.useEnabled(),d={color:"var(--dsw-alias-label-secondary)",fontSize:"12px",marginTop:"8px",lineHeight:1.5},[c,u]=a(g.getSnapshot());i(()=>g.subscribe(()=>u(g.getSnapshot())),[]),i(()=>(pt({all:!0}),()=>qt({all:!0})),[]);const[p,v]=a(new Set),b=e=>v(t=>{const a=new Set(t);return a.has(e)?a.delete(e):a.add(e),a});i(()=>(xt(),ft(()=>{P(St()),F(Et())})),[]);const[y,x]=a(""),k=c.providers||[],[w,E]=a(null),[S,q]=a(null),[C,z]=a({expiresAt:"",label:""}),A=(e,t="")=>{E({provider:e.provider,account:t}),z({expiresAt:"",label:""})},[T,M]=a(null),[O,H]=a({name:"",value:""}),[R,D]=a(!1);i(()=>{if(!R)return;const e=setTimeout(()=>D(!1),3e3);return()=>clearTimeout(e)},[R]);const N=()=>{M(null),H({name:"",value:""}),D(!1)},L=t=>{const a=String(t?.error??""),r=["unknown-hint","invalid-value","credentials-unavailable"].includes(a)?e(`quota.credential.${a}`):`${a}${t?.detail?` (${t.detail})`:""}`;return e("quota.credential.saveFailed",{error:r})},$=async()=>{if(null!==w){x("");try{const t={provider:w.provider};"string"==typeof w.account&&""!==w.account&&(t.account=w.account),""!==C.expiresAt&&(t.expiresAt=C.expiresAt),""!==C.label&&(t.label=C.label);const a=await h("quota-reset-card",t);if(!0!==a?.ok)return void x(e("quota.saveFailed",{error:String(a?.error??"")}));z({expiresAt:"",label:""}),await Mt({scope:"all"})}catch(t){const a=t instanceof Error&&"string"==typeof t.message&&""!==t.message.trim()?t.message.trim():"network";x(e("quota.saveFailed",{error:a}))}}},W=async t=>{x("");try{const a=await h("quota-refresh",{provider:t});if(!0!==a?.ok)return void x("unknown-provider"===a?.error?e("quota.unknownProvider"):"not-adapted"===a?.error?e("quota.unadapted"):e("quota.saveFailed",{error:String(a?.error??"")}));await Mt({scope:"all"})}catch(t){x(e("quota.saveFailed",{error:"network"}))}},j=async t=>{x("");try{const a=await h("quota-config",t);if(!0!==a?.ok)return void x("unknown-provider"===a?.error?e("quota.unknownProvider"):e("quota.saveFailed",{error:String(a?.error??"")}));await Mt({scope:"all"})}catch(t){x(e("quota.saveFailed",{error:"network"}))}},B=(e,t)=>j({provider:e,kind:t}),[_,P]=a(St()),[V,F]=a(Et()),[U,K]=a(!1),[G,Y]=a(!1),[Q,J]=a(null),Z=o(null);i(()=>()=>{null!==Z.current&&Z.current(),Z.current=null},[]);const X=mt(k.filter(e=>!0===e.adapted),_),re=new Set(V),se=X.filter(e=>!re.has(e.provider)),ie=k.filter(e=>!0!==e.adapted),oe={fontSize:"12px",padding:"3px 6px",borderRadius:"6px",border:"1px solid var(--dsw-alias-border-l2)",background:"var(--dsw-alias-bg-layer-2)",color:"var(--dsw-alias-label-primary)"},le=()=>{Y(!0),null!==Z.current&&Z.current(),Z.current=t.timer.timeout(()=>{Z.current=null,Y(!1)},2e3)},de=(e,t)=>{P(e),F(t),bt(e,t)},ue=mt(X,_).map(e=>({id:e.provider,label:e.displayName||e.provider})),pe=(e,t)=>{const a=ue.map(e=>e.id),r=a.indexOf(e),n=r+t;r<0||n<0||n>=a.length||r===n||(a.splice(n,0,a.splice(r,1)[0]),de(a,V))},[me,ge]=a(""),[he,ve]=a("");return r.createElement("div",{"data-testid":"remote-quota-card",style:ne()},r.createElement("div",{style:{display:"flex",alignItems:"center",justifyContent:"space-between",gap:"12px",marginBottom:"8px"}},r.createElement("div",{style:Object.assign({},{fontSize:"14px",fontWeight:700,margin:"0 0 8px",color:"var(--dsw-alias-label-primary)"},{margin:0})},e("quota.cardTitle")),r.createElement("div",{style:{display:"flex",alignItems:"center",gap:"10px",minWidth:0}},r.createElement("span",{style:{fontSize:"12px",lineHeight:1.5,color:"var(--dsw-alias-label-secondary)",textAlign:"right"}},e("quota.navToggleHint")),r.createElement("button",{type:"button",role:"switch","data-testid":"quota-nav-switch","aria-checked":String(s),"aria-label":e("quota.navToggle"),title:e("quota.navToggle"),onClick:()=>l(!s),style:{width:"34px",height:"20px",...I("10px"),padding:0,flexShrink:0,position:"relative",border:"1px solid "+(s?"var(--dsw-alias-state-success-primary)":"var(--dsw-alias-border-l2)"),background:s?"var(--dsw-alias-state-success-primary)":"var(--dsw-alias-bg-layer-2)",cursor:"pointer",lineHeight:0}},r.createElement("span",{style:{position:"absolute",top:"1px",left:s?"15px":"1px",width:"16px",height:"16px",...I("50%"),background:s?"#fff":"var(--dsw-alias-label-tertiary)"}})))),""!==y?r.createElement("p",{"data-testid":"quota-config-error",style:Object.assign({},d,{color:"var(--dsw-alias-state-error-primary)"})},y):null,...X.length>=2?[r.createElement("div",{key:"quota-reorder-row",style:{display:"flex",justifyContent:"flex-end",margin:"2px 0 8px"}},r.createElement("button",{type:"button","data-testid":"quota-reorder-toggle","aria-expanded":String(U),title:e("quota.reorder"),onClick:()=>K(!U),style:{fontSize:"12px",lineHeight:"20px",padding:"2px 12px",...I(999),border:"1px solid "+(U?"var(--dsw-alias-brand-primary)":"var(--dsh-svc-border-strong)"),background:"transparent",color:U?"var(--dsw-alias-brand-primary)":"var(--dsw-alias-label-primary)",cursor:"pointer"}},e("quota.reorder")))]:[],U&&X.length>=2?r.createElement("div",{"data-testid":"quota-card-order-panel",style:{display:"flex",flexDirection:"column",gap:"10px",margin:"0 0 12px",padding:"10px 12px 12px",borderRadius:"8px",border:"1px solid var(--dsw-alias-border-l1)",background:"var(--dsh-svc-raised-bg)"}},r.createElement("div",{style:{display:"flex",alignItems:"flex-start",justifyContent:"space-between",gap:"12px",flexWrap:"wrap"}},r.createElement("div",{style:{minWidth:0,flex:"1 1 240px"}},r.createElement("div",{"data-testid":"quota-card-order-title",style:{fontSize:"13px",fontWeight:700,color:"var(--dsw-alias-label-primary)"}},e("quota.order.title")),r.createElement("div",{style:{marginTop:"3px",fontSize:"12px",lineHeight:1.6,color:"var(--dsw-alias-label-secondary)"}},e("quota.order.hint"))),r.createElement("div",{style:{display:"flex",alignItems:"center",gap:"8px",flexWrap:"wrap"}},G?r.createElement("span",{"data-testid":"quota-card-order-saved",style:{fontSize:"12px",color:"var(--dsw-alias-state-success-primary)"}},"✓ "+e("config.navOrder.saved")):null,r.createElement("button",{type:"button","data-testid":"quota-card-order-reset",onClick:()=>{P([]),F([]),yt(),le()},style:ee("ghost")},e("config.navOrder.reset")),r.createElement("button",{type:"button","data-testid":"quota-card-order-save",onClick:()=>{de(ue.map(e=>e.id),V),le()},style:ee("primary")},e("config.navOrder.save")))),r.createElement("div",{"data-testid":"quota-card-order-list",style:{display:"flex",flexDirection:"column",gap:"8px"}},ue.map((t,a)=>{const n=!re.has(t.id),s=Q===a;return r.createElement("div",{key:t.id,"data-testid":"quota-card-order-item-"+t.id,draggable:!0,onDragStart:e=>{try{e.dataTransfer.setData("text/plain",String(a)),e.dataTransfer.effectAllowed="move"}catch(e){}J(a)},onDragOver:e=>{e.preventDefault();try{e.dataTransfer.dropEffect="move"}catch(e){}},onDrop:e=>{e.preventDefault();let t=a;try{const a=e.dataTransfer.getData("text/plain");t=Number.parseInt(a,10)}catch(e){}if(!Number.isNaN(t)&&t!==a){const e=ue.map(e=>e.id),[r]=e.splice(t,1);e.splice(a,0,r),de(e,V)}J(null)},onDragEnd:()=>J(null),style:{display:"flex",alignItems:"center",justifyContent:"space-between",gap:"12px",padding:"7px 10px",borderRadius:"var(--dsh-svc-radius-control, 8px)",border:"1px solid "+(s?"var(--dsw-alias-brand-primary)":"var(--dsw-alias-border-l1)"),background:s?"var(--dsw-alias-interactive-bg-hover)":"var(--dsh-svc-card-bg)",opacity:n?1:.5,transition:"border-color 120ms, background 120ms, opacity 120ms",cursor:"grab",userSelect:"none"}},r.createElement("div",{style:{display:"flex",alignItems:"center",gap:"8px",minWidth:0}},r.createElement("span",{style:{color:"var(--dsw-alias-label-tertiary)",fontSize:"13px",letterSpacing:"-1px"},"aria-hidden":"true"},"⋮⋮"),r.createElement("span",{style:{fontSize:"13px",fontWeight:550,color:"var(--dsw-alias-label-primary)",whiteSpace:"nowrap",overflow:"hidden",textOverflow:"ellipsis"}},t.label)),r.createElement("div",{style:{display:"flex",alignItems:"center",gap:"8px",flexShrink:0}},r.createElement("button",{type:"button","data-testid":"quota-card-order-up-"+t.id,"aria-label":e("config.navOrder.moveUp"),title:e("config.navOrder.moveUp"),disabled:0===a,onClick:e=>{e.stopPropagation(),pe(t.id,-1)},style:{display:"inline-flex",alignItems:"center",justifyContent:"center",width:"24px",height:"24px",padding:0,borderRadius:"6px",border:"1px solid var(--dsw-alias-border-l2)",background:"var(--dsw-alias-bg-layer-2)",color:0===a?"var(--dsw-alias-label-tertiary)":"var(--dsw-alias-label-primary)",cursor:0===a?"default":"pointer",opacity:0===a?.35:1,fontSize:"12px",lineHeight:"24px"}},"↑"),r.createElement("button",{type:"button","data-testid":"quota-card-order-down-"+t.id,"aria-label":e("config.navOrder.moveDown"),title:e("config.navOrder.moveDown"),disabled:a===ue.length-1,onClick:e=>{e.stopPropagation(),pe(t.id,1)},style:{display:"inline-flex",alignItems:"center",justifyContent:"center",width:"24px",height:"24px",padding:0,borderRadius:"6px",border:"1px solid var(--dsw-alias-border-l2)",background:"var(--dsw-alias-bg-layer-2)",color:a===ue.length-1?"var(--dsw-alias-label-tertiary)":"var(--dsw-alias-label-primary)",cursor:a===ue.length-1?"default":"pointer",opacity:a===ue.length-1?.35:1,fontSize:"12px",lineHeight:"24px"}},"↓"),r.createElement("button",{type:"button",role:"switch","data-testid":"quota-card-order-toggle-"+t.id,"aria-checked":String(n),"aria-label":e(n?"config.navOrder.visible":"config.navOrder.hidden"),title:e(n?"config.navOrder.visible":"config.navOrder.hidden"),onClick:e=>{e.stopPropagation(),(e=>{const t=new Set(V);t.has(e)?t.delete(e):t.add(e),de(ue.map(e=>e.id),Array.from(t))})(t.id)},style:{width:"34px",height:"20px",...I("10px"),padding:0,position:"relative",flexShrink:0,border:"1px solid "+(n?"var(--dsw-alias-state-success-primary)":"var(--dsw-alias-border-l2)"),background:n?"var(--dsw-alias-state-success-primary)":"var(--dsw-alias-bg-layer-2)",cursor:"pointer",lineHeight:0}},r.createElement("span",{style:{position:"absolute",top:"1px",left:n?"15px":"1px",width:"16px",height:"16px",...I("50%"),background:n?"#fff":"var(--dsw-alias-label-tertiary)",transition:"left 120ms ease"}}))))}))):null,0===X.length?r.createElement("p",{style:d},e("quota.noAdapted")):0===se.length?r.createElement("p",{"data-testid":"quota-cards-all-hidden",style:d},e("quota.order.allHidden")):r.createElement("div",{"data-testid":"quota-card-list",style:{display:"flex",flexDirection:"column",gap:"10px"}},se.map((t,a)=>{const s=r.createElement("span",{style:{fontWeight:600,fontSize:"12px",overflowWrap:"anywhere"}},!1===n.modelProviderIcons?null:((e,t=14,a={},n)=>{if("string"!=typeof e||""===e)return null;const s=f(e,{forComposer:!0});if(null===s)return null;const i=1!==s.spec.c,o=m(s.spec,i),l={display:"inline-block",width:`${t}px`,height:`${t}px`,flexShrink:0,...a},d=`${o} center / contain no-repeat`;return i?(l.backgroundColor="currentColor",l.WebkitMask=d,l.mask=d):(l.backgroundImage=o,l.backgroundPosition="center",l.backgroundSize="contain",l.backgroundRepeat="no-repeat"),r.createElement("span",{..."string"==typeof n&&""!==n?{"data-testid":n}:{},"data-dshsvc-model-icon":s.slug,"aria-hidden":!0,style:l})})(t.provider,14,{verticalAlign:"-2px",marginRight:"5px"},`quota-provider-icon-${t.provider}`),"string"==typeof t.usageUrl&&""!==t.usageUrl?r.createElement("a",{"data-testid":`quota-usage-link-${t.provider}`,href:t.usageUrl,target:"_blank",rel:"noreferrer",title:e("quota.usageLink"),style:{color:"var(--dsw-alias-brand-primary)",textDecoration:"underline"}},t.displayName||t.provider):t.displayName||t.provider,"auto"===t.kindSource?r.createElement("span",{"data-testid":`quota-auto-tag-${t.provider}`,style:ae("neutral",{marginLeft:"6px",verticalAlign:"middle"})},e("quota.kindAuto")):null),i=Array.isArray(t.windows)?t.windows:[],o=S===t.provider,l=(e,t)=>String(e).toLowerCase().replace(/[^a-z0-9]+/g,"-").replace(/^-+|-+$/g,"").slice(0,48)||`acct-${t}`,d=i.map(a=>Gt(a,e,t.provider)),c=Array.isArray(t.resetCards)?t.resetCards:[],u=c.filter(e=>"string"!=typeof e.account||""===e.account),g=(a,n)=>{const s=Ft(a,e),i="string"==typeof a.id&&""!==a.id?a.id:`idx-${n}`,l="string"==typeof a.account&&""!==a.account?` · ${a.account}`:"";return r.createElement("div",{key:i,"data-testid":`quota-reset-card-${t.provider}-${i}`,style:{display:"flex",alignItems:"center",gap:"8px",fontSize:"11px",lineHeight:"16px",color:s.textColor}},r.createElement("svg",{width:12,height:12,viewBox:"0 0 24 24",fill:"none",stroke:s.iconColor,strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":!0,style:{flexShrink:0}},r.createElement("rect",{x:2,y:5,width:20,height:14,rx:2}),r.createElement("line",{x1:2,y1:10,x2:22,y2:10})),r.createElement("span",{style:{display:"flex",flexDirection:"column",gap:"2px"}},r.createElement("span",null,`${s.title}${l}`),""!==s.expiry?r.createElement("span",null,s.expiry):null),o?r.createElement("button",{type:"button","data-testid":`quota-remove-${t.provider}-${i}`,onClick:()=>(async(t,a)=>{x("");try{await h("quota-reset-card",{provider:t,remove:!0,id:a}),await Mt({scope:"all"})}catch(t){x(e("quota.saveFailed",{error:"network"}))}})(t.provider,i),style:{fontSize:"11px",padding:"2px 10px",...I(999),border:"1px solid var(--dsw-alias-state-error-primary)",background:"transparent",color:"var(--dsw-alias-state-error-primary)",cursor:"pointer",flexShrink:0,whiteSpace:"nowrap"}},e("quota.resetCard.remove")):null)},v=u.map(g),y=c.filter(e=>"string"==typeof e.account&&""!==e.account),k=[],_=new Map;for(const e of y)_.has(e.account)||(_.set(e.account,[]),k.push(e.account)),_.get(e.account).push(e);const P=(a,n,s)=>r.createElement("div",{key:`codex-account-${n}`,"data-testid":`quota-cpa-account-${t.provider}-${n}`,style:{display:"flex",flexDirection:"column",gap:"10px"}},s.length>0?r.createElement("div",{style:{display:"flex",flexDirection:"column",gap:"14px"}},s):null,...((a,n)=>{const s=Ut(_.get(a)??[]),i=`card:${t.provider}:${n}`,o=p.has(i),l=o?s:s.slice(0,1),d=s.length-l.length;return[...l.map(g),d>0?r.createElement("button",{key:"reset-more",type:"button","data-testid":`quota-reset-more-${t.provider}-${n}`,onClick:()=>b(i),style:{alignSelf:"flex-start",fontSize:"11px",color:"var(--dsw-alias-brand-primary)",background:"transparent",border:"none",cursor:"pointer",padding:"0 2px",textDecoration:"underline"}},e("quota.resetCard.more",{count:d})):null,o&&s.length>1?r.createElement("button",{key:"reset-less",type:"button","data-testid":`quota-reset-less-${t.provider}-${n}`,onClick:()=>b(i),style:{alignSelf:"flex-start",fontSize:"11px",color:"var(--dsw-alias-label-secondary)",background:"transparent",border:"none",cursor:"pointer",padding:"0 2px",textDecoration:"underline"}},e("quota.resetCard.less")):null]})(a,n),o?r.createElement("div",{key:"reset-add-row",style:{display:"flex"}},r.createElement("button",{type:"button","data-testid":`quota-card-edit-${t.provider}-${n}`,onClick:()=>A(t,a),style:{fontSize:"12px",lineHeight:"20px",padding:"4px 14px",...I(999),border:"1px solid var(--dsh-svc-border-strong)",background:"transparent",color:"var(--dsw-alias-label-primary)",cursor:"pointer",width:"auto",minWidth:0,overflow:"visible",flex:"0 0 auto",whiteSpace:"nowrap"}},e("quota.resetCard.edit"))):null,U(a,n)),V={fontSize:"12px",padding:"3px 6px",borderRadius:"6px",border:"1px solid var(--dsw-alias-border-l2)",background:"var(--dsw-alias-bg-layer-2)",color:"var(--dsw-alias-label-primary)",width:"130px"},F=(e,t,a,n)=>r.createElement("label",{style:{display:"flex",flexDirection:"column",gap:"2px",fontSize:"11px",color:"var(--dsw-alias-label-secondary)"}},e,r.createElement("input",{type:a,"data-testid":t,value:C[n],onChange:e=>z({...C,[n]:e.target.value}),style:V})),U=(a,n)=>{const s="string"==typeof a?a:"";if(!o||null===w||w.provider!==t.provider)return null;if(("string"==typeof w.account?w.account:"")!==s)return null;const i=void 0===n?"":`-${n}`;return r.createElement("div",{key:`reset-editor${i}`,"data-testid":`quota-reset-editor-${t.provider}${i}`,style:{display:"flex",flexWrap:"wrap",gap:"10px",alignItems:"flex-end",padding:"8px 10px",borderRadius:"8px",background:"var(--dsh-svc-raised-bg)"}},F(e("quota.resetCard.dateLabel"),"quota-reset-input-date","datetime-local","expiresAt"),F(e("quota.resetCard.nameLabel"),"quota-reset-input-name","text","label"),r.createElement("button",{type:"button","data-testid":"quota-reset-card-save",onClick:$,style:{minHeight:"28px",padding:"4px 12px",borderRadius:"7px",border:"1px solid var(--dsw-alias-brand-primary)",background:"var(--dsw-alias-brand-primary)",color:"var(--dsh-svc-brand-text)",cursor:"pointer",fontSize:"12px"}},e("quota.resetCard.add")),r.createElement("button",{type:"button","data-testid":"quota-reset-cancel",onClick:()=>E(null),style:te()},e("quota.resetCard.cancel")))};let K;const G=()=>0===k.length?null:r.createElement("div",{style:{display:"flex",flexDirection:"column",gap:"10px"}},k.map((e,t)=>P(e,l(e,t),[])));if(!0===t.refreshing&&0===i.length)K=r.createElement("div",{style:{display:"flex",flexDirection:"column",gap:"10px"}},r.createElement("span",{style:{fontSize:"12px",color:"var(--dsw-alias-label-tertiary)"}},e("quota.refreshing")),G());else if(void 0!==t.errorCode&&0===i.length)K=r.createElement("div",{style:{display:"flex",flexDirection:"column",gap:"10px"}},r.createElement("span",{"data-testid":`quota-error-${t.provider}`,style:{fontSize:"12px",color:"var(--dsw-alias-state-error-primary)"}},Kt(t,e)),G());else if(i.length>0){const a=a=>{const r=[],n=new Map;for(const e of a.windows){const t="string"==typeof e.label?e.label.trim():"";let a=n.get(t);void 0===a&&(a=r.length,n.set(t,a),r.push({account:t,windows:[]})),r[a].windows.push(e)}for(const e of k)n.has(e)||(n.set(e,r.length),r.push({account:e,windows:[]}));return r.map((a,r)=>P(a.account,l(a.account,r),a.windows.map(a=>Gt(a,e,t.provider))))},n="cliproxy"===t.kind?Xt(i):null;K=n&&n.length>0?r.createElement("div",{"data-testid":`quota-card-families-${t.provider}`,style:{display:"flex",flexDirection:"column",gap:"10px"}},n.map((n,s)=>r.createElement("div",{key:`family-${n.family}`,"data-testid":`quota-card-family-${t.provider}-${n.family}`,style:{display:"flex",flexDirection:"column",gap:"10px",marginTop:0===s?"0":"4px",paddingTop:0===s?"0":"10px",borderTop:0===s?"none":"1px solid var(--dsw-alias-border-l1)"}},r.createElement("div",{"data-testid":`quota-card-family-title-${t.provider}-${n.family}`,style:{fontSize:"12px",fontWeight:600,color:"var(--dsw-alias-label-primary)"}},e("quota.family."+n.family)),"codex"===n.family?r.createElement("div",{style:{display:"flex",flexDirection:"column",gap:"14px"}},a(n)):r.createElement("div",{style:{display:"flex",flexDirection:"column",gap:"14px"}},n.windows.map(a=>Gt(a,e,t.provider)))))):r.createElement("div",{style:{display:"flex",flexDirection:"column",gap:"14px"}},d)}else K=r.createElement("span",{style:{fontSize:"12px",color:"var(--dsw-alias-label-tertiary)"}},e("quota.empty"));const Y=_t(t,i),Q=null!==Y?r.createElement(Pt,{key:"peak-timeline",showCaption:!0,schedule:Y}):null;return r.createElement("div",{key:t.provider,"data-testid":`quota-provider-card-${t.provider}`,style:{display:"flex",flexDirection:"column",gap:"8px",padding:"10px 12px 12px",borderRadius:"8px",border:"1px solid var(--dsw-alias-border-l1)",background:"var(--dsh-svc-card-bg)"}},r.createElement("div",{style:{display:"flex",justifyContent:"space-between",alignItems:"baseline",gap:"10px"}},s,r.createElement("div",{style:{display:"flex",alignItems:"center",gap:"5px"}},r.createElement("button",{type:"button","data-testid":`quota-refresh-${t.provider}`,"aria-label":e("quota.refresh"),title:e("quota.refresh"),disabled:!0===t.refreshing,onClick:()=>W(t.provider),style:{display:"inline-flex",alignItems:"center",justifyContent:"center",padding:"2px",border:"none",background:"transparent",color:!0===t.refreshing?"var(--dsw-alias-label-tertiary)":"var(--dsw-alias-label-secondary)",cursor:!0===t.refreshing?"default":"pointer",opacity:!0===t.refreshing?.45:1}},r.createElement("svg",{width:12,height:12,viewBox:"0 0 24 24",fill:"currentColor","aria-hidden":!0},r.createElement("path",{d:"M17.65 6.35A7.95 7.95 0 0 0 12 4a8 8 0 1 0 7.73 10h-2.08A6 6 0 1 1 12 6c1.66 0 3.14.69 4.22 1.77L13 11h7V4l-2.35 2.35z"}))),"number"==typeof t.fetchedAt?r.createElement("span",{style:{fontSize:"11px",color:"var(--dsw-alias-label-tertiary)"}},e("quota.updated",{time:gt(t.fetchedAt)})):null)),K,...null!==Q?[Q]:[],r.createElement("div",{key:"advanced-toggle-row",style:{display:"flex",marginTop:"2px"}},r.createElement("button",{type:"button","data-testid":`quota-advanced-toggle-${t.provider}`,"aria-expanded":String(o),onClick:()=>q(o?null:t.provider),style:{fontSize:"11px",lineHeight:"20px",padding:"2px 10px",...I(999),border:"1px solid var(--dsh-svc-border-strong)",background:"transparent",color:"var(--dsw-alias-label-primary)",cursor:"pointer"}},`${o?"▾":"▸"} ${e("quota.advanced")}`)),...o&&"unconfigured"===t.status&&Array.isArray(t.credentialHints)&&t.credentialHints.length>0?(()=>{const a=null!==T&&T.provider===t.provider,n=t.credentialHints,s=n.some(e=>e.name===O.name)?O.name:n[0]?.name??"",i=n.find(e=>e.name===s);return[a?r.createElement("div",{key:"cred-editor","data-testid":`quota-cred-editor-${t.provider}`,style:{display:"flex",flexWrap:"wrap",gap:"10px",alignItems:"flex-end",padding:"8px 10px",borderRadius:"8px",background:"var(--dsh-svc-raised-bg)"}},n.length>1?r.createElement("label",{style:{display:"flex",flexDirection:"column",gap:"2px",fontSize:"11px",color:"var(--dsw-alias-label-secondary)"}},e("quota.credential.nameLabel"),r.createElement("select",{"data-testid":"quota-cred-name-select",value:s,onChange:e=>{H({...O,name:e.target.value}),D(!1)},style:oe},n.map((t,a)=>r.createElement("option",{key:t.name,value:t.name},`${t.name}${0===a?` · ${e("quota.credential.primary")}`:""} · ${!0===t.configured?e("quota.credential.configured"):e("quota.credential.notConfigured")}`)))):r.createElement("span",{style:{fontSize:"11px",color:"var(--dsw-alias-label-tertiary)",alignSelf:"center"}},`${s}${!0===i?.configured?` · ${e("quota.credential.configured")}`:""}`),r.createElement("label",{style:{display:"flex",flexDirection:"column",gap:"2px",fontSize:"11px",color:"var(--dsw-alias-label-secondary)"}},e("quota.credential.valueLabel"),r.createElement("input",{type:"password","data-testid":"quota-cred-input-value",value:O.value,onChange:e=>H({...O,value:e.target.value}),autoComplete:"off",style:V})),r.createElement("button",{type:"button","data-testid":"quota-cred-save",onClick:()=>(async t=>{x("");try{const e=await h("quota-credential-set",{provider:t,name:O.name,value:O.value});if(!0!==e?.ok)return void x(L(e));N(),await W(t)}catch(t){x(e("quota.saveFailed",{error:"network"}))}})(t.provider),disabled:""===O.value.trim(),style:{minHeight:"28px",padding:"4px 12px",borderRadius:"var(--dsh-svc-radius-control)",border:"1px solid var(--dsw-alias-brand-primary)",background:""===O.value.trim()?"transparent":"var(--dsw-alias-brand-primary)",color:""===O.value.trim()?"var(--dsw-alias-label-tertiary)":"var(--dsh-svc-brand-text)",cursor:""===O.value.trim()?"default":"pointer",fontSize:"12px"}},e("quota.credential.save")),...!0===i?.configured&&!1!==i?.writable?[r.createElement("button",{type:"button",key:"cred-clear","data-testid":"quota-cred-clear",title:R?e("quota.credential.clearConfirm"):void 0,onClick:()=>{R?(D(!1),(async(t,a)=>{x("");try{const e=await h("quota-credential-unset",{provider:t,name:a});if(!0!==e?.ok)return void x(L(e));await W(t)}catch(t){x(e("quota.saveFailed",{error:"network"}))}})(t.provider,s)):D(!0)},style:{minHeight:"28px",padding:"4px 12px",borderRadius:"var(--dsh-svc-radius-control)",border:"1px solid var(--dsw-alias-state-error-primary)",background:R?"var(--dsw-alias-state-error-primary)":"transparent",color:R?"var(--dsh-svc-brand-text)":"var(--dsw-alias-state-error-primary)",cursor:"pointer",fontSize:"12px",whiteSpace:"nowrap"}},e(R?"quota.credential.clearConfirm":"quota.credential.clear"))]:[],r.createElement("button",{type:"button","data-testid":"quota-cred-cancel",onClick:N,style:te()},e("quota.resetCard.cancel"))):r.createElement("div",{key:"cred-entry",style:{display:"flex"}},r.createElement("button",{type:"button","data-testid":`quota-cred-edit-${t.provider}`,onClick:()=>(e=>{const t=Array.isArray(e.credentialHints)?e.credentialHints:[];E(null),M({provider:e.provider}),H({name:(t.find(e=>!0===e.configured)??t[0])?.name??"",value:""}),D(!1)})(t),style:{fontSize:"12px",lineHeight:"20px",padding:"4px 14px",...I(999),border:"1px solid var(--dsw-alias-brand-primary)",background:"transparent",color:"var(--dsw-alias-brand-primary)",cursor:"pointer",width:"auto",minWidth:0,overflow:"visible",flex:"0 0 auto",whiteSpace:"nowrap"}},e(`quota.credential.${"string"==typeof t.credentialEntryKey&&""!==t.credentialEntryKey?t.credentialEntryKey:"edit"}`)))]})():[],...v,U(""),...o?[r.createElement("div",{key:"advanced-footer",style:{display:"flex",alignItems:"center",gap:"8px",flexWrap:"wrap"}},r.createElement("select",{"data-testid":`quota-kind-select-${t.provider}`,value:t.kind,"aria-label":`${e("quota.adapt")} · ${t.displayName||t.provider}`,onChange:e=>{var a;""===e.target.value?B(t.provider,null):"__auto__"===e.target.value?(a=t.provider,j({provider:a,clear:!0})):B(t.provider,e.target.value)},style:oe},ut.map(t=>r.createElement("option",{key:t,value:t},e(`quota.kind.${t}`))),r.createElement("option",{value:"__auto__"},e("quota.followAuto")),r.createElement("option",{value:""},e("quota.disable")))),..."zai-coding-cn"===t.kind?[r.createElement("div",{key:"reset-add-row",style:{display:"flex"}},r.createElement("button",{type:"button","data-testid":`quota-card-edit-${t.provider}`,onClick:()=>A(t),style:{fontSize:"12px",lineHeight:"20px",padding:"4px 14px",...I(999),border:"1px solid var(--dsh-svc-border-strong)",background:"transparent",color:"var(--dsw-alias-label-primary)",cursor:"pointer",width:"auto",minWidth:0,overflow:"visible",flex:"0 0 auto",whiteSpace:"nowrap"}},e("quota.resetCard.edit")))]:[]]:[])})),...ie.length>0?[r.createElement("div",{key:"quota-add-adapt","data-testid":"quota-add-adapt",style:{display:"flex",alignItems:"center",flexWrap:"wrap",gap:"8px",marginTop:X.length>0?"2px":"4px",paddingTop:"10px",borderTop:"1px solid var(--dsw-alias-border-l1)"}},r.createElement("span",{style:{fontSize:"11px",color:"var(--dsw-alias-label-tertiary)"}},e("quota.addAdapt")),r.createElement("select",{"data-testid":"quota-add-provider",value:me,onChange:e=>ge(e.target.value),style:oe},r.createElement("option",{value:""},e("quota.addPickProvider")),ie.map(e=>r.createElement("option",{key:e.provider,value:e.provider},e.displayName||e.provider))),r.createElement("select",{"data-testid":"quota-add-kind",value:he,onChange:e=>ve(e.target.value),style:oe},r.createElement("option",{value:""},e("quota.addPickKind")),ut.map(t=>r.createElement("option",{key:t,value:t},e(`quota.kind.${t}`)))),r.createElement("button",{type:"button","data-testid":"quota-add-submit",disabled:""===me||""===he,onClick:()=>{B(me,he),ge(""),ve("")},style:{fontSize:"12px",padding:"3px 12px",borderRadius:"7px",border:"1px solid var(--dsw-alias-brand-primary)",background:""===me||""===he?"transparent":"var(--dsw-alias-brand-primary)",color:""===me||""===he?"var(--dsw-alias-label-tertiary)":"var(--dsh-svc-brand-text)",cursor:""===me||""===he?"default":"pointer"}},e("quota.adapt")))]:[])}function ja(){const e=qe(),{value:n}=ce(),[s,l]=a(null),[d,c]=a(null),[u,p]=a(null),[m,g]=a(!1),[v,f]=a(0),[b,y]=a(null),[x,k]=a(null),[w,E]=a(null),[S,q]=a(null),[C,z]=a(!1),[A,T]=a(!1),[M,O]=a(null),[H,R]=a(!1),[D,N]=a(!1),[L,$]=a(null),[W,B]=a(!1),[P,V]=a({items:[],totalBytes:0}),[F,U]=a(!1),[K,G]=a(null),Y=o(0),[Q,J]=a(null),[Z,X]=a(null),[ae,se]=a(null),[ie,oe]=a(null),[le,ue]=a(null),[pe,me]=a(!1),[ge,he]=a(!1),[ve,fe]=a(!1),[be,ye]=a(!1),[xe,ke]=a(null),[Ee,Se]=a(null),[Ce,Me]=a(null),[Ie,Oe]=a(null),[We,Be]=a(null),[_e,Pe]=a(!1),[Ve,Fe]=a(null),[Ue,Ke]=a(!1),[Ge,Ye]=a(!1),[Je,ut]=a(null),[pt,mt]=a(!1),[vt,ft]=a(!1),[bt,yt]=a(null),[xt,kt]=a(null),[wt,Et]=a("day"),[St,qt]=a("all"),Ct=o(null),[zt,At]=a(!1),[Tt,Mt]=a(!1),[It,Ot]=a(!1),[Ht,Rt]=a("today"),[Dt,Nt]=a("overview"),[Lt,$t]=a(!1),Wt=it(),jt=ot(),Bt=st(),_t={timezoneOffsetMinutes:(new Date).getTimezoneOffset()};i(()=>{we()},[]),i(()=>{tt().then(e=>{e&&e.ok&&(ke(e.value.current),Se(e.value.pluginVersion||null))})},[]);const Pt=t=>{t&&!1!==t.ok?(Me(t.value),Oe(null)):Oe(e("update.unavailable"))};i(()=>{let t=!0;return h("check-update",{}).then(e=>{t&&Pt(e)}).catch(()=>{t&&Oe(e("update.unavailable"))}),()=>{t=!1}},[]),i(()=>{if(!de("healthDiagnostics"))return()=>{};let t=!0;return h("permissions-plan",{}).then(a=>{t&&(a&&!1!==a.ok?q(a.value):O(e("permissions.error")))}).catch(()=>{t&&O(e("permissions.error"))}),()=>{t=!1}},[n.healthDiagnostics]),i(()=>{if(!de("modelUsage"))return()=>{};let t=!0;return h("usage",_t).then(async a=>{if(t)if(a&&!1!==a.ok){if(Fe(null),Ke(!1),Be(a.value),!(a.value.updatedAt>0&&Date.now()-a.value.updatedAt<=3e5))try{const e=await h("usage-refresh",_t);t&&e&&e.ok&&(Fe(null),Ke(!1),Be(e.value))}catch(e){}}else Fe(e("usage.error"))}).catch(()=>{t&&Fe(e("usage.error"))}),()=>{t=!1}},[n.modelUsage]),i(()=>{if(!de("backupMaintenance"))return()=>{};let t=!0;return h("backup-list",{}).then(a=>{t&&(a&&!1!==a.ok?V(a.value):J(e("backup.error")))}).catch(()=>{t&&J(e("backup.error"))}),()=>{t=!1}},[n.backupMaintenance]),i(()=>{let a=!0,r=()=>{};const n=async()=>{try{const e=await h("health",{});if(!a)return;if(!e||!1===e.ok)throw new Error(e&&e.error?e.error:"health failed");l(e.value),c(null)}catch(t){if(!a)return;c(e("health.error"))}a&&(r=t.timer.timeout(n,5e3))};return n(),()=>{a=!1,r()}},[]);const Vt=async(t=!1)=>{if(de("healthDiagnostics")&&!(!t&&v>0&&Date.now()-v<=3e4)){g(!0);try{const e=await h("diagnostics",{});if(!e||!1===e.ok)throw new Error("diagnostics failed");p(e.value),f(Date.now())}catch(t){c(e("health.error"))}finally{g(!1)}}},Ft=async()=>{Pe(!0),Fe(null);try{const e=await h("usage-refresh",_t);if(!e||!1===e.ok)throw new Error("usage refresh failed");Be(e.value)}catch(t){Fe(e("usage.error"))}finally{Pe(!1)}},Ut=t=>{const a="backup.error."+String(t||""),r=e(a);return r===a?e("backup.restoreError"):r},Kt=async()=>{if(le&&!F){U(!0),J(null);try{const e=await h("backup-restore-commit",{planId:le.planId});if(!e||!1===e.ok)throw Object.assign(new Error("backup restore failed"),{code:e?.error});if(se(null),oe(null),ue(null),!0===e.value?.restart?.requiresManualRestart)me(!0);else{const t=e.value?.restart?.previousInstanceId||e.value?.previousInstanceId;"string"==typeof t&&t.length>0&&nt(t).catch(()=>{})}}catch(e){ue(null),J(Ut(e?.code))}finally{U(!1)}}},Gt=()=>{F||(se(null),oe(null),ue(null))},Yt={"active-work":"update.guardActiveWork","link-install":"update.guardLinkInstall","file-install":"update.guardFileInstall","no-newer-version":"update.guardNoNewer","no-profile-found":"update.guardNoProfile","ambiguous-profile":"update.guardAmbiguous","upgrade-stale":"update.guardStale","installed-version-unreadable":"update.guardUnreadable","pnpm-missing":"update.failPnpmMissing","transient-network":"update.failNetwork","fetch-timeout":"update.failFetchTimeout","release-age-violation":"update.failReleaseAge","hoist-pattern-diff":"update.failHoist","adding-to-root":"update.failAddingToRoot","not-a-workspace":"update.failNotWorkspace","ignored-builds":"update.failIgnoredBuilds"},Qt=async()=>{if(!lt()){dt(!0);try{let t=jt;if(null===t&&(await tt(),t=ct()),!pt&&null!==t&&!0===t.manualStartLikely)return ut(null),void mt(!0);mt(!1),Ye(!0),ut(null);const a=await tt(),r=a&&a.ok?a.value.instanceId:void 0,n=await h("upgrade",{});if(!n||!1===n.ok){const t=n&&"string"==typeof n.error?n.error.trim():"",a="string"==typeof t&&t.length>0?Yt[t]:void 0;return void ut(void 0!==a?e(a):e("update.upgradeErrorDetail",{detail:t||"upgrade failed"}))}n.value&&!0===n.value.requiresManualRestart?ft(!0):"string"==typeof r&&r.length>0&&nt(r).catch(()=>{}),rt().catch(()=>{}),(async()=>{const e=await h("check-update",{}).catch(()=>null);e&&Pt(e)})().catch(()=>{})}catch(t){const a=t instanceof Error&&"string"==typeof t.message&&"upgrade failed"!==t.message?t.message.trim():"";console.error("dsh-service: upgrade failed",a||t),ut(a?e("update.upgradeErrorDetail",{detail:a}):e("update.upgradeError"))}finally{dt(!1),Ye(!1)}}},Jt=ee(),Zt=(ee("primary"),ee("brandGhost")),Xt=ee("neutral"),ea=ee("danger"),ta=ee("dangerGhost"),aa=ee("ghost"),ra=Object.assign({},Jt,{background:"transparent",color:"var(--dsw-alias-label-primary)",border:0,borderTop:"1px solid var(--dsw-alias-border-l1)",borderRadius:0,padding:"10px 2px",width:"100%",textAlign:"left",fontWeight:600}),ia={display:"flex",alignItems:"center",gap:"8px",marginTop:"12px",flexWrap:"wrap"},oa={color:"var(--dsw-alias-label-secondary)",fontSize:"12px",marginTop:"8px",lineHeight:1.5},la=ne(),da=re(),ua={background:"transparent",color:"var(--dsw-alias-label-secondary)",border:0,borderBottom:"2px solid transparent",padding:"8px 10px",cursor:"pointer",fontSize:"13px",fontWeight:550,transition:"color 120ms, border-color 120ms"},pa={color:"var(--dsw-alias-brand-primary)",borderBottom:"2px solid var(--dsw-alias-brand-primary)",fontWeight:700},ma=Object.assign({},ua,{padding:"3px 6px",fontSize:"11px"}),ga={fontSize:"14px",fontWeight:700,margin:"0 0 8px",color:"var(--dsw-alias-label-primary)"},ha=e=>{const t=Number(e);return t<1024?t+" B":t<1048576?Math.round(t/102.4)/10+" KB":t<1073741824?Math.round(t/1048576*10)/10+" MB":Math.round(t/1073741824*10)/10+" GB"},va=(t,a)=>r.createElement("div",{key:t,style:{padding:"8px 10px",borderRadius:"6px",background:"var(--dsh-svc-raised-bg)",color:"var(--dsw-alias-label-primary)",border:"1px solid var(--dsw-alias-border-l1)"}},r.createElement("div",{style:{color:"var(--dsw-alias-label-secondary)",fontSize:"11px",marginBottom:"2px"}},e(t)),r.createElement("div",{style:{fontSize:"14px",fontWeight:600}},a)),fa=e=>{const t=e=>String(e).padStart(2,"0");return`${e.getFullYear()}-${t(e.getMonth()+1)}-${t(e.getDate())}`},ba=[];for(let e=6;e>=0;e-=1){const t=new Date;t.setHours(0,0,0,0),t.setDate(t.getDate()-e),ba.push({key:fa(t),label:`${t.getMonth()+1}/${t.getDate()}`})}const ya=[["inputTokens","usage.input","#79aaf7"],["outputTokens","usage.output","#f1b35b"],["cacheTokens","usage.cache","#48c7b0"]],xa=e=>{const t=We&&We.days?We.days[e]:null;if(!t)return{steps:0,inputTokens:0,outputTokens:0,cacheReadTokens:0,cacheWriteTokens:0,cacheHitRate:0};if("all"===St)return t.totals;const a=t.projects.find(e=>e.id===St);return a?a.totals:{steps:0,inputTokens:0,outputTokens:0,cacheReadTokens:0,cacheWriteTokens:0,cacheHitRate:0}},ka=e=>{const t=Number(e.inputTokens||0)+Number(e.cacheReadTokens||0)+Number(e.cacheWriteTokens||0);return 0===t?0:Number(e.cacheReadTokens||0)/t},wa=e=>Number(e.inputTokens||0)+Number(e.outputTokens||0)+Number(e.cacheReadTokens||0)+Number(e.cacheWriteTokens||0),Ea=(e,t)=>"cacheTokens"===t?e.cacheReadTokens+e.cacheWriteTokens:e[t]||0,qa=e=>_(e,{invalid:"0"}),Ca=(t,a)=>"cacheHitRate"===a?(100*Number(t)).toFixed(1)+"%":"steps"===a?e("usage.stepsValue",{count:Number(t).toLocaleString()}):qa(t),Aa=ba.map(e=>xa(e.key)),Ta=Aa.map(e=>ya.reduce((t,[a])=>t+Ea(e,a),0)),Ma=Math.max(1,...Ta),Ia=[Ma,.75*Ma,.5*Ma,.25*Ma,0],Oa=xa(ba[6].key),Ha=ba.reduce((e,t)=>{const a=xa(t.key);return e.steps+=a.steps||0,e.inputTokens+=a.inputTokens||0,e.outputTokens+=a.outputTokens||0,e.cacheReadTokens+=a.cacheReadTokens||0,e.cacheWriteTokens+=a.cacheWriteTokens||0,e},{steps:0,inputTokens:0,outputTokens:0,cacheReadTokens:0,cacheWriteTokens:0}),Ra=Ha.inputTokens+Ha.cacheReadTokens+Ha.cacheWriteTokens;Ha.cacheHitRate=0===Ra?0:Ha.cacheReadTokens/Ra;const Da="zh"===j()?"zh-CN":"en-US",Na=e=>{const[t,a,r]=e.split("-").map(Number);return new Date(t,a-1,r)},La=e=>e.toLocaleDateString(Da,{month:"short",day:"numeric"}),ja=e=>e.toLocaleDateString(Da,{month:"short"}),Ba=`${We?.updatedAt||0}:${St}:${Da}:${fa(new Date)}`;if(!Ct.current||Ct.current.key!==Ba){const e=Object.keys(We?.days||{}).filter(e=>/^\d{4}-\d{2}-\d{2}$/.test(e)&&Number.isFinite(Na(e).getTime())),t=new Map;for(const a of e){const e=xa(a);t.set(a,{total:ya.reduce((t,[a])=>t+Ea(e,a),0),steps:Number(e.steps||0)})}const a=[],r=new Date;if(r.setHours(0,0,0,0),e.length>0){const t=e.map(Na).reduce((e,t)=>t<e?t:e),n=new Date(r);n.setDate(n.getDate()-(n.getDay()+6)%7);const s=new Date(n);s.setDate(s.getDate()-133);const i=new Date(t);i.setDate(i.getDate()-(i.getDay()+6)%7);for(const e=new Date(i<s?s:i);e<=r;e.setDate(e.getDate()+1))a.push(new Date(e))}const n=a.reduce((e,a)=>Math.max(e,t.get(fa(a))?.total||0),0),s=[];for(let e=0;e<a.length;e+=7){const t=a.slice(e,e+7),r=t[0],n=0===e?null:a[e-7];s.push({key:fa(r),monthLabel:null!==n&&n.getMonth()===r.getMonth()?"":ja(r),days:t})}const i=new Date(2024,0,1),o=[0,1,2,3,4,5,6].map(e=>{const t=new Date(i);return t.setDate(t.getDate()+e),t.toLocaleDateString(Da,{weekday:"short"})}),l="all"===St?(We?.projects||[]).map(e=>e.id):[St],d=e=>("all"===St?e.totals:(e.projects||[]).find(e=>e.id===St)?.totals)||{steps:0,inputTokens:0,outputTokens:0,cacheReadTokens:0,cacheWriteTokens:0},c=Array.isArray(We?.hours)?We.hours:[],u=new Map;for(const e of c){const t=Number(e?.weekday),a=Number(e?.hour);if(!Number.isInteger(t)||!Number.isInteger(a)||t<0||t>6||a<0||a>23)continue;const r=d(e);u.set(`${t}-${a}`,{total:ya.reduce((e,[t])=>e+Ea(r,t),0),steps:Number(r.steps||0)})}const p=[...u.values()].reduce((e,t)=>Math.max(e,t.total),0),m=e=>e<=0||n<=0?0:e<=.25*n?1:e<=.5*n?2:e<=.75*n?3:4,g=e=>e<=0||p<=0?0:e<=.25*p?1:e<=.5*p?2:e<=.75*p?3:4,h=e=>({id:e,steps:0,inputTokens:0,outputTokens:0,cacheReadTokens:0,cacheWriteTokens:0}),v=(e,t)=>{const a=e.get(t.id)||h(t.id);a.steps+=t.totals.steps||0,a.inputTokens+=t.totals.inputTokens||0,a.outputTokens+=t.totals.outputTokens||0,a.cacheReadTokens+=t.totals.cacheReadTokens||0,a.cacheWriteTokens+=t.totals.cacheWriteTokens||0,e.set(t.id,a)},f=new Map,b=new Map,y=new Map,x=new Set(ba.map(e=>e.key)),k=ba[ba.length-1].key;for(const[e,t]of Object.entries(We?.days||{})){const a=[y];x.has(e)&&a.push(b),e===k&&a.push(f);for(const e of t.projects)if(l.includes(e.id))for(const t of e.models)for(const e of a)v(e,t)}Ct.current={key:Ba,heatTotalsByDay:t,heatDays:a,heatMax:n,heatColumns:s,heatWeekdays:o,heatLevel:m,punchBuckets:c,punchBySlot:u,punchMax:p,punchLevel:g,modelTodayTotals:f,modelWeekTotals:b,modelAllTotals:y}}const _a=e=>e<=0?1:[1,.25,.45,.7,1][e],{heatTotalsByDay:Pa,heatDays:Va,heatMax:Fa,heatColumns:Ua,heatWeekdays:Ka,heatLevel:Ga,punchBuckets:Ya,punchBySlot:Qa,punchMax:Ja,punchLevel:Za,modelTodayTotals:Xa,modelWeekTotals:er,modelAllTotals:tr}=Ct.current,ar=t=>{const a=String(t.detail??"");if("usage-index"===t.id){if("never"===a)return e("health.detail.usage-index.never");if("unavailable"===a)return e("health.detail.usage-index.unavailable");const[t="0",r="0",n="0"]=a.split(":"),s=Number(n),i={failed:t,indexed:r,updated:s>0?`${ht(s)} ${gt(s)}`:"—"};return e(Number(t)>0?"health.detail.usage-index.warning":"health.detail.usage-index.ok",i)}if("session-storage"===t.id&&"ok"===t.status)return e("health.detail.session-storage.ok",{count:a});if("workspace-registry"===t.id&&"ok"===t.status)return e("health.detail.workspace-registry.ok",{count:a});if("dsh-home"===t.id&&"ok"===t.status)return e("health.detail.dsh-home.ok",{mode:a});if("backup-storage"===t.id){const[t="0",r="0"]=a.split(":");return 0===Number(t)?e("health.detail.backup-storage.empty"):e("health.detail.backup-storage.ok",{count:t,size:ha(r)})}if("tar"===t.id&&"ok"===t.status)return e("health.detail.tar.ok");if("permissions"===t.id)return e("ok"===t.status?"health.detail.permissions.ok":"health.detail.permissions.warning",{count:a||"0"});if("runtime-env"===t.id)return"manual"===a?e("health.detail.runtime-env.manual"):"declared"===a?e("health.detail.runtime-env.declared"):"unknown"===a?e("health.detail.runtime-env.unknown"):e("health.detail.runtime-env.managed",{kind:e(`env.kind.${a}`)});if("node-version"===t.id){const[r="",n=""]=a.split(":");return e("ok"===t.status?"health.detail.node-version.ok":"health.detail.node-version.warning",{version:r,required:n})}if("plugins"===t.id){if("unavailable"===a)return e("health.detail.plugins.unavailable");const[r,n,s,i]=a.split(":");if("ok"===t.status)return e("health.detail.plugins.ok",{total:r});const o=[];return(Number(n)||0)>0&&o.push(e("plugin.issue.failed",{failed:n})),(Number(s)||0)>0&&o.push(e("plugin.issue.pending",{pending:s})),(Number(i)||0)>0&&o.push(e("plugin.issue.info",{count:i})),o.join(",")}if("plugin-compat"===t.id){if("unavailable"===a)return e("health.detail.plugin-compat.unavailable");const r=a.split(":"),n=r[0],s=r[1],i=r[2],o=r[3],l=r[4]||"0";if("ok"===t.status&&0===(Number(i)||0)&&0===(Number(l)||0))return e("health.detail.plugin-compat.ok",{total:n});const d=[];return(Number(s)||0)>0&&d.push(e("plugin.compat.issue.broken",{count:s})),(Number(l)||0)>0&&d.push(e("plugin.compat.issue.soft",{count:l})),(Number(i)||0)>0&&d.push(e("plugin.compat.issue.declared",{count:i})),(Number(o)||0)>0&&d.push(e("plugin.compat.issue.unknown",{count:o})),d.join(",")}return e("health.detail.generic",{status:e(`health.status.${t.status}`)})},rr=(t,a,n)=>r.createElement("div",{style:{padding:"10px",borderRadius:"7px",background:"var(--dsw-alias-bg-layer-2)",color:"var(--dsw-alias-label-primary)"}},r.createElement("div",{style:{fontSize:"12px",fontWeight:700,marginBottom:"5px"}},e(a)),(e=>[["usage.total",qa(Ea(e,"inputTokens")+Ea(e,"outputTokens")+Ea(e,"cacheTokens"))],...ya.map(([t,a])=>[a,qa(Ea(e,t))]),["usage.steps",Ca(e.steps,"steps")],["usage.hitRate",Ca(e.cacheHitRate,"cacheHitRate")]])(n).map(([a,n],s)=>r.createElement("div",{key:a,"data-testid":`usage-summary-${t}-${s}`,style:{display:"flex",justifyContent:"space-between",gap:"12px",padding:"4px 0",fontSize:"12px",borderTop:0===s?0:"1px solid var(--dsw-alias-border-l1)"}},r.createElement("span",{style:{color:"var(--dsw-alias-label-secondary)"}},e(a)),r.createElement("span",{style:{fontWeight:650}},n)))),nr=[...("today"===Ht?Xa:"all"===Ht?tr:er).values()].sort((e,t)=>wa(t)-wa(e)||t.steps-e.steps||e.id.localeCompare(t.id)),sr=It?nr:nr.slice(0,3),ir=Math.max(0,nr.length-3),or=Math.max(1,...sr.map(e=>wa(e))),lr=e=>(e||[]).filter(e=>"all"===St||e.projectId===St).sort((e,t)=>t.count-e.count||e.key.localeCompare(t.key)),dr=lr(We?.errors?.models),cr=lr(We?.errors?.tools),ur=Array.isArray(We?.failedSessions)?We.failedSessions:[],pr=Number.isFinite(Number(We?.successfulSessions))?Number(We.successfulSessions):Math.max(0,Number(We?.indexedSessions||0)-ur.filter(e=>e&&!0===e.stale).length),mr=0===ur.length?null:r.createElement("div",{"data-testid":"usage-failure-warning",style:{marginTop:"10px",padding:"10px 12px",borderRadius:"8px",border:"1px solid var(--dsh-svc-warning)",background:"var(--dsh-svc-raised-bg)",color:"var(--dsh-svc-text)"}},r.createElement("div",{style:{fontSize:"12px",lineHeight:1.5,fontWeight:650}},e("usage.failures.global",{successful:pr.toLocaleString(),failed:ur.length.toLocaleString()})),ur.some(e=>e&&!0===e.stale)?r.createElement("div",{style:{marginTop:"4px",fontSize:"11px",lineHeight:1.5,color:"var(--dsh-svc-text-muted)"}},e("usage.failures.staleHint")):null,r.createElement("button",{type:"button","data-testid":"usage-failure-details-toggle","aria-expanded":String(Ue),style:Object.assign({},ra,{marginTop:"5px",padding:0}),onClick:()=>Ke(e=>!e)},`${Ue?"▾":"▸"} ${e(Ue?"usage.failures.hide":"usage.failures.show")}`),Ue?r.createElement("div",{"data-testid":"usage-failure-details",style:{display:"grid",gap:"6px",marginTop:"8px"}},ur.map((t,a)=>{const n=t&&"object"==typeof t?t:{};return r.createElement("div",{key:`${String(n.id||"unknown")}:${a}`,style:{padding:"7px 9px",borderRadius:"6px",border:"1px solid var(--dsh-svc-border)",background:"var(--dsh-svc-card-bg)",fontSize:"11px",lineHeight:1.5}},r.createElement("div",{style:{overflowWrap:"anywhere"}},`${e("usage.failures.id")}: ${"string"==typeof n.id&&""!==n.id?n.id:"—"}`),r.createElement("div",{style:{overflowWrap:"anywhere"}},`${e("usage.failures.code")}: ${"string"==typeof n.code&&""!==n.code?n.code:"—"}`),r.createElement("div",{style:{overflowWrap:"anywhere",color:"var(--dsh-svc-text-muted)"}},`${e("usage.failures.message")}: ${["format-migration-failed","session-read-failed","session-fold-failed"].includes(n.code)?e(`usage.failures.reason.${n.code}`):"string"==typeof n.message&&""!==n.message?n.message:"—"}`),r.createElement("div",{style:{marginTop:"2px",color:"var(--dsh-svc-warning)"}},e(!0===n.stale?"usage.failures.stale":"usage.failures.notStale")))})):null),gr=(t,a)=>r.createElement("div",{key:t,style:{display:"grid",gap:"6px",marginTop:"8px"}},0===a.length?r.createElement("p",{style:oa},e("model"===t?"usage.errors.empty":"usage.toolErrors.empty")):a.map(a=>r.createElement("div",{key:`${t}:${a.projectId}:${a.key}`,style:{padding:"8px 10px",borderRadius:"6px",background:"var(--dsw-alias-bg-layer-2)",border:"1px solid var(--dsw-alias-state-error-primary)",color:"var(--dsw-alias-label-primary)",fontSize:"12px"}},r.createElement("div",{style:{display:"flex",justifyContent:"space-between",gap:"8px",fontWeight:600}},r.createElement("span",null,"model"===t?`${a.provider}/${a.model} · ${a.code}${null===a.status?"":` · ${a.status}`}`:`${a.tool} · ${a.code}`),r.createElement("span",null,e("usage.errors.count",{count:a.count}))),r.createElement("div",{style:{color:"var(--dsw-alias-label-secondary)",marginTop:"3px",overflowWrap:"anywhere"}},a.message)))),hr=r.createElement("div",{"data-testid":"usage-heatmap-scope-tabs",style:{display:"flex",gap:"2px"}},["day","hour"].map(t=>r.createElement("button",{key:t,type:"button","data-testid":`usage-heatmap-scope-${t}`,style:Object.assign({},ma,wt===t?pa:{color:"var(--dsw-alias-label-secondary)",borderBottom:"2px solid transparent"}),onClick:()=>Et(t)},e(`usage.heatmap.scope.${t}`)))),vr=r.createElement("div",{style:{display:"flex",gap:"8px",alignItems:"flex-start",overflowX:"auto",paddingBottom:"2px"}},r.createElement("div",{"aria-hidden":"true",style:{display:"flex",flexDirection:"column",gap:"4px",flex:"none",paddingTop:"19px"}},Ka.map((e,t)=>r.createElement("div",{key:t,style:{height:"16px",fontSize:"11px",lineHeight:"16px",color:"var(--dsw-alias-label-secondary)"}},e))),r.createElement("div",{style:{display:"flex",flexDirection:"column",gap:"4px",minWidth:0,flex:"none"}},r.createElement("div",{"aria-hidden":"true",style:{display:"flex",gap:"4px",height:"15px"}},Array.from({length:24},(e,t)=>r.createElement("div",{key:`hour-${t}`,style:{width:"16px",flex:"none",fontSize:"10px",lineHeight:"15px",color:"var(--dsw-alias-label-secondary)",whiteSpace:"nowrap"}},(e=>e%3==0?String(e).padStart(2,"0"):"")(t)))),r.createElement("div",{"data-testid":"usage-punch-grid",role:"img","aria-label":e("usage.heatmap.hourGridLabel"),style:{display:"flex",flexDirection:"column",gap:"4px"}},[0,1,2,3,4,5,6].map(t=>r.createElement("div",{key:t,style:{display:"flex",gap:"4px"}},Array.from({length:24},(a,n)=>r.createElement("div",((t,a)=>{const r=Qa.get(`${t}-${a}`)||{total:0,steps:0},n=Za(r.total),s=e("usage.heatmap.hourCell",{weekday:Ka[t],hour:String(a).padStart(2,"0"),total:qa(r.total),steps:Number(r.steps||0).toLocaleString()});return{key:`${t}-${a}`,"data-testid":`usage-punch-cell-${t}-${a}`,"data-value":r.total,"data-level":n,"aria-label":s,onMouseEnter:e=>kt({id:`punch-${t}-${a}`,label:s,x:e.clientX,y:e.clientY}),onMouseMove:e=>kt(r=>r&&r.id===`punch-${t}-${a}`?r.x===e.clientX&&r.y===e.clientY?r:Object.assign({},r,{x:e.clientX,y:e.clientY}):r),onMouseLeave:()=>kt(null),style:{width:"16px",height:"16px",borderRadius:"3px",flex:"none",cursor:r.total>0?"pointer":"default",background:r.total>0?"var(--dsh-svc-success)":"var(--dsw-alias-border-l1)",opacity:_a(n)}}})(t,n)))))))),fr=0===Va.length&&0===Ya.length?null:r.createElement("div",{key:"usage-heatmap","data-testid":"usage-heatmap",style:{marginTop:"10px",padding:"8px 10px 10px",borderRadius:"8px",background:"var(--dsh-svc-raised-bg)",border:"1px solid var(--dsw-alias-border-l1)"}},r.createElement("div",{style:{display:"flex",justifyContent:"space-between",alignItems:"baseline",gap:"10px",flexWrap:"wrap",marginBottom:"8px"}},r.createElement("div",{"data-testid":"usage-heatmap-title",style:{fontSize:"12px",fontWeight:650}},e("hour"===wt?"usage.heatmap.hourTitle":"usage.heatmap.title")),hr),"hour"===wt?vr:r.createElement("div",{style:{display:"flex",gap:"8px",alignItems:"flex-start",overflowX:"auto",paddingBottom:"2px"}},r.createElement("div",{"aria-hidden":"true",style:{display:"flex",flexDirection:"column",gap:"4px",flex:"none",paddingTop:"19px"}},Ka.map((e,t)=>r.createElement("div",{key:t,style:{height:"20px",fontSize:"11px",lineHeight:"20px",color:"var(--dsw-alias-label-secondary)"}},t%2==0?e:""))),r.createElement("div",{style:{display:"flex",flexDirection:"column",gap:"4px",minWidth:0,flex:"none"}},r.createElement("div",{"aria-hidden":"true",style:{display:"flex",gap:"4px",height:"15px"}},Ua.map(e=>r.createElement("div",{key:`month-${e.key}`,style:{width:"20px",flex:"none",fontSize:"11px",lineHeight:"15px",color:"var(--dsw-alias-label-secondary)",whiteSpace:"nowrap"}},e.monthLabel))),r.createElement("div",{"data-testid":"usage-heatmap-grid",role:"img","aria-label":e("usage.heatmap.gridLabel"),style:{display:"flex",gap:"4px"}},Ua.map(t=>r.createElement("div",{key:t.key,style:{display:"flex",flexDirection:"column",gap:"4px",flex:"none"}},t.days.map(t=>r.createElement("div",(t=>{const a=Pa.get(fa(t))||{total:0,steps:0},r=Ga(a.total),n=e("usage.heatmap.cell",{date:La(t),total:qa(a.total),steps:Number(a.steps||0).toLocaleString()});return{key:fa(t),"data-testid":`usage-heatmap-cell-${fa(t)}`,"data-value":a.total,"data-level":r,"aria-label":n,onMouseEnter:e=>kt({id:fa(t),label:n,x:e.clientX,y:e.clientY}),onMouseMove:e=>kt(a=>a&&a.id===fa(t)?a.x===e.clientX&&a.y===e.clientY?a:Object.assign({},a,{x:e.clientX,y:e.clientY}):a),onMouseLeave:()=>kt(null),style:{width:"20px",height:"20px",borderRadius:"4px",flex:"none",cursor:a.total>0?"pointer":"default",background:a.total>0?"var(--dsh-svc-success)":"var(--dsw-alias-border-l1)",opacity:_a(r)}}})(t)))))))),r.createElement("div",{style:{display:"flex",justifyContent:"flex-end",alignItems:"center",gap:"5px",marginTop:"8px",fontSize:"11px",color:"var(--dsw-alias-label-secondary)"}},r.createElement("span",null,e("usage.heatmap.less")),[0,1,2,3,4].map(e=>r.createElement("span",{key:e,"data-testid":`usage-heatmap-legend-${e}`,style:{width:"12px",height:"12px",borderRadius:"3px",background:0===e?"var(--dsw-alias-border-l1)":"var(--dsh-svc-success)",opacity:_a(e)}})),r.createElement("span",null,e("usage.heatmap.more"))),xt?r.createElement("div",{"data-testid":"usage-heatmap-tooltip",style:{position:"fixed",left:`${xt.x+12}px`,top:`${xt.y+12}px`,zIndex:1e3,pointerEvents:"none",padding:"7px 9px",borderRadius:"6px",background:"var(--dsw-alias-bg-overlay)",color:"var(--dsw-alias-label-primary)",border:"1px solid var(--dsw-alias-border-l2)",boxShadow:"0 4px 12px rgba(0,0,0,0.2)",fontSize:"12px",fontWeight:600,whiteSpace:"pre-line",textAlign:"left"}},xt.label):null),br=r.createElement("div",{key:"usage-section","data-testid":"usage-card",style:la},We&&Array.isArray(We.projects)&&We.projects.length>0?r.createElement("div",{"data-testid":"usage-project-tabs",style:{display:"flex",flexWrap:"wrap",gap:"14px",marginBottom:"12px",borderBottom:"1px solid var(--dsw-alias-border-l1)"}},r.createElement("button",{style:Object.assign({},ua,"all"===St?pa:{color:"var(--dsw-alias-label-secondary)",borderBottom:"2px solid transparent"}),onClick:()=>qt("all")},e("usage.allProjects")),We.projects.filter(e=>!0!==e.missing).map(e=>r.createElement("button",{key:e.id,style:Object.assign({},ua,St===e.id?pa:{color:"var(--dsw-alias-label-secondary)",borderBottom:"2px solid transparent"}),onClick:()=>qt(e.id)},e.title))):null,mr,We&&We.indexedSessions>0?r.createElement("div",{"data-testid":"usage-statistics-region",style:Object.assign({},da,{padding:"12px",borderRadius:"9px"})},r.createElement("div",{"data-testid":"usage-region-header",style:{display:"flex",alignItems:"center",justifyContent:"space-between",gap:"10px",flexWrap:"wrap",marginBottom:"8px"}},r.createElement("div",{style:{display:"flex",gap:"14px",flexWrap:"wrap",fontSize:"11px"}},ya.map(([,t,a])=>r.createElement("span",{key:t,style:{display:"inline-flex",alignItems:"center",gap:"5px"}},r.createElement("span",{style:{width:"9px",height:"9px",borderRadius:"2px",background:a}}),e(t)))),r.createElement("button",{type:"button","data-testid":"usage-refresh","data-variant":"neutral",style:Xt,onClick:Ft,disabled:_e},e(_e?"usage.refreshing":"usage.refresh"))),r.createElement("div",{"data-testid":"usage-chart",style:{position:"relative",display:"grid",gridTemplateColumns:"42px minmax(0, 1fr)",height:"180px",padding:"12px 10px 4px",borderRadius:"8px",background:"var(--dsh-svc-raised-bg)",color:"var(--dsw-alias-label-primary)",border:"1px solid var(--dsw-alias-border-l1)",borderBottom:"1px solid var(--dsw-alias-border-l2)"}},r.createElement("div",{"data-testid":"usage-y-axis","aria-label":e("usage.axis"),style:{position:"relative",height:"144px",fontSize:"10px",color:"var(--dsw-alias-label-secondary)"}},Ia.map((e,t)=>r.createElement("span",{key:t,style:{position:"absolute",right:"7px",top:25*t+"%",transform:4===t?"translateY(-100%)":"translateY(-50%)"}},qa(e)))),r.createElement("div",{"data-testid":"usage-plot",style:{position:"relative",height:"164px"}},r.createElement("div",{style:{position:"absolute",inset:"0 0 20px",display:"flex",alignItems:"end",gap:"8px",borderBottom:"1px solid var(--dsw-alias-border-l2)"}},Ia.map((e,t)=>r.createElement("div",{key:t,"data-testid":`usage-grid-${t}`,style:{position:"absolute",left:0,right:0,top:25*t+"%",borderTop:"1px solid var(--dsw-alias-border-l1)",pointerEvents:"none"}})),ba.map((t,a)=>r.createElement("div",{key:t.key,"aria-label":e("usage.barDay",{day:t.label,total:qa(Ta[a])}),style:{position:"relative",zIndex:1,flex:1,minWidth:0,alignSelf:"end"}},r.createElement("div",{"data-testid":`usage-bar-${t.key}`,style:{height:`${Math.max(2,Ta[a]/Ma*144)}px`,display:"flex",flexDirection:"column-reverse",justifyContent:"flex-start",borderRadius:"4px 4px 0 0",overflow:"hidden"}},ya.map(([e,n,s])=>{const i=Ea(Aa[a],e),o=0===Ta[a]?0:i/Ta[a]*100,l=`${t.key}-${e}`,d=bt&&bt.id===l;return r.createElement("div",{key:e,"data-testid":`usage-segment-${l}`,"data-value":i,onMouseEnter:e=>yt({id:l,date:t.key,totals:Aa[a],x:e.clientX,y:e.clientY}),onMouseMove:e=>yt(t=>t&&t.id===l?t.x===e.clientX&&t.y===e.clientY?t:Object.assign({},t,{x:e.clientX,y:e.clientY}):t),onMouseLeave:()=>yt(null),style:{height:`${o}%`,minHeight:i>0?"2px":0,background:s,opacity:bt&&!d?.42:1,cursor:i>0?"pointer":"default",transition:"opacity 120ms ease"}})}))))),r.createElement("div",{"data-testid":"usage-x-axis",style:{position:"absolute",left:0,right:0,bottom:"0",height:"20px",display:"flex",gap:"8px",alignItems:"end"}},ba.map(e=>r.createElement("div",{key:e.key,style:{flex:1,minWidth:0,textAlign:"center",fontSize:"10px",color:"var(--dsw-alias-label-secondary)"}},e.label))))),r.createElement("div",{"data-testid":"usage-chart-summary",style:{position:"absolute",width:"1px",height:"1px",overflow:"hidden",clip:"rect(0 0 0 0)",whiteSpace:"nowrap"}},e("usage.chartSummary",{total:qa(Ta.reduce((e,t)=>e+t,0))})),bt?r.createElement("div",{"data-testid":"usage-tooltip",style:{position:"fixed",left:`${bt.x+12}px`,top:`${bt.y+12}px`,zIndex:1e3,pointerEvents:"none",padding:"7px 9px",borderRadius:"6px",background:"var(--dsw-alias-bg-overlay)",color:"var(--dsw-alias-label-primary)",border:"1px solid var(--dsw-alias-border-l2)",boxShadow:"0 4px 12px rgba(0,0,0,0.2)",fontSize:"12px",fontWeight:600,whiteSpace:"pre-line",textAlign:"left"}},(()=>{const t=bt.totals||{},a=Ea(t,"inputTokens")+Ea(t,"outputTokens")+Ea(t,"cacheTokens"),r=Number(t.inputTokens||0)+Number(t.cacheReadTokens||0)+Number(t.cacheWriteTokens||0),n=Number.isFinite(Number(t.cacheHitRate))?Number(t.cacheHitRate):0===r?0:Number(t.cacheReadTokens||0)/r;return`${e("usage.tooltip.date",{date:bt.date})}\n${e("usage.tooltip.input",{value:Number(t.inputTokens||0).toLocaleString()})}\n${e("usage.tooltip.output",{value:Number(t.outputTokens||0).toLocaleString()})}\n${e("usage.tooltip.cache",{value:Number((t.cacheReadTokens||0)+(t.cacheWriteTokens||0)).toLocaleString()})}\n${e("usage.tooltip.total",{value:qa(a)})}\n${e("usage.tooltip.steps",{value:Number(t.steps||0).toLocaleString()})}\n${e("usage.tooltip.hitRate",{value:(100*n).toFixed(1)+"%"})}`})()):null,r.createElement("div",{style:{display:"grid",gridTemplateColumns:"repeat(2, minmax(0, 1fr))",gap:"8px",marginTop:"10px"}},rr("today","usage.today",Oa),rr("seven","usage.sevenDays",Ha)),r.createElement("div",{"data-testid":"usage-model-list",style:{marginTop:"10px",padding:"8px 10px",borderRadius:"8px",background:"var(--dsh-svc-raised-bg)",border:"1px solid var(--dsw-alias-border-l1)"}},r.createElement("div",{style:{display:"flex",justifyContent:"space-between",alignItems:"center",gap:"8px",flexWrap:"wrap",marginBottom:"4px"}},r.createElement("div",{"data-testid":"usage-model-sort-hint",style:{fontSize:"11px",color:"var(--dsw-alias-label-secondary)"}},e(`usage.modelSortHint.${Ht}`)),r.createElement("div",{"data-testid":"usage-model-scope-tabs",style:{display:"flex",gap:"2px"}},["today","week","all"].map(t=>r.createElement("button",{key:t,"data-testid":`usage-model-scope-${t}`,style:Object.assign({},ma,Ht===t?pa:{color:"var(--dsw-alias-label-secondary)",borderBottom:"2px solid transparent"}),onClick:()=>Rt(t)},e(`usage.modelScope.${t}`))))),sr.map((t,a)=>{const n=wa(t),s=Math.round(n/or*1e4)/100+"%";return r.createElement("div",{key:t.id,"data-testid":`usage-model-row-${t.id}`,style:{padding:"8px 2px",borderTop:0===a?0:"1px solid var(--dsw-alias-border-l1)"}},r.createElement("div",{style:{display:"flex",justifyContent:"space-between",gap:"12px",alignItems:"baseline",fontSize:"12px"}},r.createElement("span",{style:{overflowWrap:"anywhere"}},t.id),r.createElement("span",{style:{fontWeight:650,whiteSpace:"nowrap"}},qa(n))),r.createElement("div",{"data-testid":`usage-model-bar-${t.id}`,"data-value":n,"aria-label":e(`usage.modelBar.${Ht}`,{model:t.id,total:qa(n)}),style:{height:"8px",borderRadius:"4px",marginTop:"6px",overflow:"hidden",background:"var(--dsw-alias-border-l1)"}},r.createElement("div",{style:{display:"flex",height:"100%",width:s}},ya.map(([e,,a])=>{const s=((e,t)=>"cacheTokens"===t?Number(e.cacheReadTokens||0)+Number(e.cacheWriteTokens||0):Number(e[t]||0))(t,e);return s>0?r.createElement("div",{key:e,"data-testid":`usage-model-segment-${t.id}-${e}`,style:{width:s/n*100+"%",background:a}}):null}))),r.createElement("div",{style:{color:"var(--dsw-alias-label-secondary)",fontSize:"11px",marginTop:"4px",textAlign:"right"}},e("usage.modelLine",{steps:Number(t.steps||0).toLocaleString(),hitRate:Ca(ka(t),"cacheHitRate"),input:qa(t.inputTokens),output:qa(t.outputTokens)})))}),ir>0?r.createElement("button",{style:Object.assign({},ra,{borderTop:"1px solid var(--dsw-alias-border-l1)",marginTop:"2px"}),onClick:()=>Ot(e=>!e)},`${It?"▾":"▸"} ${e(It?"usage.models.less":"usage.models.more",{count:ir})}`):null),fr):r.createElement("p",{style:oa},Ve||e("usage.empty")),...We&&We.indexedSessions>0?[]:[r.createElement("div",{key:"usage-refresh-fallback",style:ia},r.createElement("button",{style:Xt,"data-variant":"neutral",onClick:Ft,disabled:_e},e(_e?"usage.refreshing":"usage.refresh")))]),yr=s&&"string"==typeof s.platform&&s.platform?`${{win32:"Windows",darwin:"macOS",linux:"Linux",freebsd:"FreeBSD",openbsd:"OpenBSD"}[s.platform]||s.platform}${"string"==typeof s.arch&&s.arch?` · ${s.arch}`:""}`:"—",xr=r.createElement("div",{key:"container-info",style:la},r.createElement("div",{style:ga},e("overview.container")),s?r.createElement("div",{"data-testid":"health-display",style:Object.assign({},da,{display:"grid",gridTemplateColumns:"repeat(2, minmax(0, 1fr))",gap:"8px"})},va("health.platform",yr),va("health.nodeVersion","string"==typeof s.nodeVersion&&s.nodeVersion?s.nodeVersion:"—"),va("health.uptime",(t=>{const a=Math.floor(Number(t)/60);return e("health.uptimeValue",{hours:Math.floor(a/60),minutes:a%60})})(s.uptimeSeconds)),va("health.rss",(e=>{const t=Number(e)/1048576;return(Math.round(10*t)/10).toLocaleString(void 0,{maximumFractionDigits:1})+" MB"})(s.rssBytes)),va("health.liveSessions",String(s.liveSessions)),va("health.persistedSessions",String(s.persistedSessions)),va("health.activeAgents",String(s.activeAgents)),va("health.activeJobs",String(s.activeJobs))):r.createElement("p",{style:oa},d||e("version.loading"))),kr=r.createElement("div",{key:"overview-errors",style:la},r.createElement("div",{"data-testid":"overview-errors-title",style:ga},e("overview.errors")),r.createElement("div",{"data-testid":"overview-errors-region",style:da},r.createElement("div",{style:Object.assign({},oa,{margin:"-3px 0 7px"})},e("usage.errors.recent")),r.createElement("div",{style:{display:"grid",gap:"7px"}},r.createElement("div",null,r.createElement("button",{style:ra,onClick:()=>At(e=>!e)},`${zt?"▾":"▸"} ${e("usage.errors.toggle",{count:dr.length})}`),zt?r.createElement("div",{style:{padding:"0 2px 8px"}},gr("model",dr)):null),r.createElement("div",null,r.createElement("button",{style:ra,onClick:()=>Mt(e=>!e)},`${Tt?"▾":"▸"} ${e("usage.toolErrors.toggle",{count:cr.length})}`),Tt?r.createElement("div",{style:{padding:"0 2px 8px"}},gr("tool",cr)):null)))),wr=(t,a,n)=>{const s="error"===t.status||"warning"===t.status&&!0!==t.advisory,i="ok"===t.status?"var(--dsh-svc-success)":"warning"===t.status?"var(--dsh-svc-warning)":"info"===t.status?"var(--dsh-svc-info)":"var(--dsh-svc-danger)";return r.createElement("div",{key:t.id,"data-testid":`health-check-${t.id}`,style:{display:"flex",alignItems:"flex-start",gap:"9px",padding:"9px 10px",borderRadius:"6px",borderTop:0===a?0:"1px solid var(--dsh-svc-border)",background:s?"error"===t.status?"rgba(211,51,51,0.08)":"rgba(198,128,0,0.10)":"transparent"}},r.createElement("span",{"aria-hidden":"true",style:{flex:"none",width:"7px",height:"7px",...I("50%"),marginTop:"5px",background:i}}),r.createElement("div",{style:{minWidth:0,flex:1}},r.createElement("div",{style:{fontSize:"12px",fontWeight:s?650:550,color:"var(--dsh-svc-text)"}},e("health.check."+t.id)),r.createElement("div",{style:{fontSize:"11px",lineHeight:1.5,marginTop:"2px",color:"ok"===t.status?"var(--dsh-svc-text-muted)":s?"error"===t.status?"var(--dsh-svc-danger)":"var(--dsh-svc-warning)":"var(--dsh-svc-text-muted)"}},n)))},Er=!1===n.taskNotifications?null:"undefined"==typeof Notification?{status:"info",detail:e("health.detail.notification-permission.unsupported")}:"granted"===Notification.permission?{status:"ok",detail:e("health.detail.notification-permission.granted")}:{status:"warning",detail:e("denied"===Notification.permission?"health.detail.notification-permission.denied":"health.detail.notification-permission.default")},Sr=r.createElement("div",{"data-testid":"health-diagnostics-region",style:da},u&&"ok"!==u.status?r.createElement("div",{style:{marginTop:"10px",padding:"9px 11px",borderRadius:"7px",background:"error"===u.status?"rgba(211,51,51,0.1)":"rgba(198,128,0,0.12)",border:"1px solid "+("error"===u.status?"rgba(211,51,51,0.3)":"rgba(198,128,0,0.3)")}},r.createElement("div",{style:{fontSize:"12px",fontWeight:700}},e("health.alert.title")),r.createElement("div",{style:oa},e("health.alert.diagnostics",{status:e("health.overall."+u.status)}))):null,u?r.createElement("div",{"data-testid":"health-check-list",style:Object.assign({},da,{marginTop:"10px",padding:"8px 10px"})},...u.checks.map((e,t)=>wr(e,t,ar(e))),...null===Er?[]:[wr({id:"notification-permission",status:Er.status},u.checks.length,Er.detail)]):null),qr=Array.isArray(u?.pluginIssues)?u.pluginIssues:[],Cr=0===qr.length?null:r.createElement("div",{"data-testid":"plugin-issue-list",style:{marginTop:"6px",padding:"8px 10px",borderRadius:"6px",border:"1px solid var(--dsh-svc-border)",background:"var(--dsh-svc-raised-bg)"}},qr.map((t,a)=>{const n="failed"===t.phase,s="disposed"===t.phase||"unknown"===t.phase,i=n?"var(--dsh-svc-danger)":s?"var(--dsh-svc-info)":"var(--dsh-svc-warning)",o=b===t.entryId,l=x===t.entryId;return r.createElement("div",{key:t.entryId,"data-testid":`plugin-issue-${t.entryId}`,style:{display:"flex",alignItems:"flex-start",gap:"9px",padding:"8px 2px",borderTop:0===a?0:"1px solid var(--dsh-svc-border)"}},r.createElement("span",{"aria-hidden":"true",style:{flex:"none",width:"7px",height:"7px",...I("50%"),marginTop:"6px",background:i}}),r.createElement("div",{style:{minWidth:0,flex:1}},r.createElement("div",{style:{display:"flex",alignItems:"baseline",gap:"8px",flexWrap:"wrap"}},r.createElement("span",{style:{fontFamily:"var(--ds-font-family-code, monospace)",fontSize:"12px",fontWeight:600,overflowWrap:"anywhere",color:"var(--dsw-alias-label-primary)"}},t.moduleName),r.createElement("span",{style:{fontSize:"11px",fontWeight:650,color:i}},e("plugin.state."+t.phase))),void 0!==t.error&&null!==t.error?r.createElement("div",{style:{fontSize:"11px",marginTop:"3px",color:"var(--dsh-svc-danger)",lineHeight:1.5,overflowWrap:"anywhere"}},e("plugin.error",{error:t.error})):null,void 0!==t.missingDeps&&t.missingDeps.length>0?r.createElement("div",{style:{fontSize:"11px",marginTop:"3px",color:"var(--dsh-svc-warning)",lineHeight:1.5,overflowWrap:"anywhere"}},e("plugin.missingDeps",{deps:t.missingDeps.join(", ")})):null,n?r.createElement("div",{style:{marginTop:"6px"}},o?r.createElement("div",{style:{padding:"8px 10px",borderRadius:"6px",border:"1px solid var(--dsw-alias-state-error-primary)",background:"rgba(211,51,51,0.08)"}},r.createElement("p",{style:Object.assign({},oa,{margin:"0 0 6px",color:"var(--dsw-alias-state-error-primary)"})},e("plugin.restartHint",{name:t.moduleName})),r.createElement("div",{style:{display:"flex",gap:"8px"}},r.createElement("button",{type:"button","data-testid":`plugin-restart-confirm-${t.entryId}`,style:ea,disabled:l,onClick:()=>(async t=>{if(null!==t&&"object"==typeof t&&null===x){k(t.entryId),E(null);try{const e=await h("plugin-restart",{entryId:t.entryId});if(!e||!0!==e.ok)throw Object.assign(new Error("plugin restart failed"),{code:e?.error});y(null),await Vt(!0)}catch(t){y(null),E((t=>{const a="string"==typeof t&&t.length>0?t:"internal-error";if(a.startsWith("restart-failed:")){const t=a.slice(15).trim(),r=e("plugin.error.restart-failed");return e("plugin.restartFailed",{detail:""===t?r:`${r}(${t})`})}const r={"unknown-plugin":"plugin.error.unknown-plugin","loader-unavailable":"plugin.error.loader-unavailable","plugin-disabled":"plugin.error.plugin-disabled","not-failed":"plugin.error.not-failed"}[a];return e("plugin.restartFailed",{detail:void 0===r?a:e(r)})})(t?.code??String(t?.message||t)))}finally{k(null)}}})(t)},e(l?"plugin.restarting":"plugin.restartConfirm")),r.createElement("button",{type:"button",style:aa,disabled:l,onClick:()=>{y(null),E(null)}},e("plugin.restartCancel")))):r.createElement("button",{type:"button","data-testid":`plugin-restart-${t.entryId}`,style:ta,disabled:l,onClick:()=>{y(t.entryId),E(null)}},e(l?"plugin.restarting":"plugin.restart"))):null,w?r.createElement("p",{"data-testid":"plugin-restart-error",style:Object.assign({},oa,{margin:"4px 0 0",color:"var(--dsw-alias-state-error-primary)"})},w):null))})),zr=null!==u?.pluginCompat&&"object"==typeof u?.pluginCompat?u.pluginCompat:null,Ar=Array.isArray(zr?.issues)?zr.issues:[],Tr=Array.isArray(zr?.soft)?zr.soft:[],Mr=Array.isArray(zr?.declaredOnly)?zr.declaredOnly:[],Ir=Array.isArray(zr?.unknown)?zr.unknown:[],Or={broken:0,soft:1,declared:2,unknown:3},Hr={"client-runtime":{since:"0.1.2-alpha.2",kind:"package-removed"},"sqlite-persistence":{since:"0.1.2-alpha.3",kind:"package-removed"},"code-runtime":{since:"0.1.6-alpha.1",kind:"package-removed"},"e2b-runtime":{since:"0.1.6-alpha.1",kind:"package-removed"},"session-start-event":{since:"0.1.6-alpha.1",kind:"event-removed"},"chat-hash":{since:"0.1.2-alpha.2",kind:"hash-migrated"},"stats-hash":{since:"0.1.2-alpha.2",kind:"hash-migrated"},"time-hover-root":{since:"0.1.2-alpha.2",kind:"attribute-removed"},"settings-plugin-item":{since:"0.1.6-alpha.2",kind:"slot-retired"},"sessions-open-method":{since:"0.1.6-alpha.2",kind:"method-removed"}},Rr=[...Ar.map(e=>({kind:"broken",moduleName:e.moduleName,breaks:e.breaks})),...Tr.map(e=>({kind:"soft",moduleName:e.moduleName,breaks:e.breaks})),...Mr.map(e=>({kind:"declared",moduleName:e.moduleName,breaks:e.breaks})),...Ir.map(e=>({kind:"unknown",moduleName:e.moduleName,reason:e.reason}))],Dr=new Map;for(const e of Rr){const t=Dr.get(e.moduleName);void 0===t?Dr.set(e.moduleName,[e]):t.push(e)}const Nr=t=>"broken"===t.kind||"soft"===t.kind?t.breaks.map(t=>e("plugin.compat.break."+t)).join(";"):"declared"===t.kind?e("plugin.compat.declared"):e(`plugin.compat.unknown.${t.reason}`),Lr=[...Dr].map(([e,t],a)=>{const r=[...t].sort((e,t)=>Or[e.kind]-Or[t.kind]);return{key:`${r[0].kind}-${a}`,moduleName:e,findings:r}}),$r=null===zr||0===Lr.length?null:r.createElement("div",{"data-testid":"plugin-compat-list",style:{marginTop:"6px",padding:"8px 10px",borderRadius:"6px",border:"1px solid var(--dsh-svc-border)",background:"var(--dsh-svc-raised-bg)"}},Lr.map((t,a)=>{const n="broken"===t.findings[0].kind?"var(--dsh-svc-warning)":"var(--dsh-svc-info)";return r.createElement("div",{key:t.key,"data-testid":`plugin-compat-row-${a}`,style:{display:"flex",alignItems:"flex-start",gap:"9px",padding:"8px 2px",borderTop:0===a?0:"1px solid var(--dsh-svc-border)"}},r.createElement("span",{"aria-hidden":"true",style:{flex:"none",width:"7px",height:"7px",...I("50%"),marginTop:"7.5px",background:n}}),r.createElement("div",{style:{minWidth:0,flex:1}},r.createElement("span",{style:{fontFamily:"var(--ds-font-family-code, monospace)",fontSize:"12px",fontWeight:600,lineHeight:"17px",overflowWrap:"anywhere",color:"var(--dsw-alias-label-primary)"}},t.moduleName),t.findings.flatMap((n,s)=>{const i=Array.isArray(n.breaks)&&n.breaks.length>0?n.breaks.map((i,o)=>{const l=Hr[i],d=l?.since,c=l?.kind,u=!d||!xe||et(xe,d)>=0,p="plugin.compat.category."+c,m=e(p)!==p?e(p):c,g=u?e("plugin.compat.badge.active"):e("plugin.compat.badge.future",{since:d||""}),h="plugin.compat.reason."+i,v="plugin.compat.impact."+i,f="plugin.compat.advice."+i,b=e(h)!==h,y=e(v)!==v,x=e(f)!==f;return r.createElement("div",{key:`${t.key}-${n.kind}-detail-${o}`,"data-testid":`plugin-compat-detail-${a}-${s}-${o}`,style:{marginTop:"5px",padding:"6px 10px",borderRadius:"6px",background:u?"rgba(230, 162, 60, 0.05)":"rgba(64, 158, 255, 0.05)",border:"1px solid "+(u?"rgba(230, 162, 60, 0.25)":"rgba(64, 158, 255, 0.25)"),fontSize:"11px",lineHeight:1.6}},r.createElement("div",{style:{display:"flex",alignItems:"center",gap:"6px",flexWrap:"wrap",marginBottom:"3px"}},m?r.createElement("span",{style:{fontWeight:650,padding:"1px 5px",borderRadius:"3px",background:u?"var(--dsh-svc-warning)":"var(--dsh-svc-info)",color:"#fff",fontSize:"10px"}},m):null,d?r.createElement("span",{style:{padding:"1px 5px",borderRadius:"3px",background:"var(--dsh-svc-border)",color:"var(--dsw-alias-label-primary)",fontSize:"10px",fontFamily:"var(--ds-font-family-code, monospace)",fontWeight:600}},`DSH ≥ ${d}`):null,r.createElement("span",{style:{color:u?"var(--dsh-svc-warning)":"var(--dsh-svc-info)",fontSize:"10px",fontWeight:600}},g)),b?r.createElement("div",{style:{color:"var(--dsw-alias-label-secondary)",marginTop:"2px"}},r.createElement("strong",{style:{color:"var(--dsw-alias-label-primary)",marginRight:"4px"}},e("plugin.compat.meta.reason")+":"),e(h)):null,y?r.createElement("div",{style:{color:"var(--dsw-alias-label-secondary)",marginTop:"2px"}},r.createElement("strong",{style:{color:"var(--dsw-alias-label-primary)",marginRight:"4px"}},e("plugin.compat.meta.impact")+":"),e(v)):null,x?r.createElement("div",{style:{color:"var(--dsw-alias-label-secondary)",marginTop:"2px"}},r.createElement("strong",{style:{color:"var(--dsw-alias-label-primary)",marginRight:"4px"}},e("plugin.compat.meta.advice")+":"),e(f)):null)}):[];return[r.createElement("div",{key:`${t.key}-${n.kind}-kind`,"data-testid":`plugin-compat-kind-${a}-${s}`,style:{fontSize:"11px",fontWeight:650,marginTop:0===s?"3px":"7px",color:"broken"===n.kind?"var(--dsh-svc-warning)":"var(--dsh-svc-info)"}},e("plugin.compat.kind."+n.kind)),r.createElement("div",{key:`${t.key}-${n.kind}-text`,"data-testid":`plugin-compat-line-${a}-${s}`,style:{fontSize:"11px",marginTop:"1px",lineHeight:1.6,overflowWrap:"anywhere",color:"broken"===n.kind?"var(--dsh-svc-warning)":"var(--dsh-svc-text-muted)"}},Nr(n)),...i]})))})),Wr=S&&!0===S.supported?S.items.filter(e=>!1===e.writable).length:0,jr=Wr>0||L&&(L.ownerIssues>0||L.directoryModeIssues>0||L.fileModeIssues>0||L.unreadable>0),Br=S&&!0===S.supported?r.createElement("div",{key:"permissions-section",style:{marginTop:"18px"}},r.createElement("div",{style:{display:"flex",alignItems:"center",justifyContent:"space-between",gap:"10px",flexWrap:"wrap"}},r.createElement("div",{style:ga},e("permissions.title")),r.createElement("button",{type:"button","data-testid":"permissions-toggle","aria-expanded":String(D),onClick:()=>N(e=>!e),style:{fontSize:"12px",lineHeight:"20px",padding:"2px 12px",...I(999),border:"1px solid var(--dsh-svc-border-strong)",background:"transparent",color:Wr>0?"var(--dsw-alias-state-warn-primary)":"var(--dsw-alias-label-primary)",cursor:"pointer"}},`${D?"▾":"▸"} ${e(D?"permissions.hide":"permissions.show")}${Wr>0?` · ${Wr}`:""}`)),D?r.createElement("div",{style:Object.assign({},da,{marginTop:"4px"})},r.createElement("p",{style:oa},e("permissions.description")),Wr>0?r.createElement("div",{style:{marginTop:"8px",padding:"9px 11px",borderRadius:"7px",background:"rgba(198,128,0,0.12)",border:"1px solid rgba(198,128,0,0.3)"}},r.createElement("div",{style:{fontSize:"12px",fontWeight:700}},e("health.alert.title")),r.createElement("div",{style:oa},e("permissions.summary.warning",{count:Wr}))):null,r.createElement("p",{style:Object.assign({},oa,{fontWeight:600,color:Wr>0?"var(--dsw-alias-state-warn-primary)":"var(--dsw-alias-label-primary)"})},e(Wr>0?"permissions.summary.warning":"permissions.summary.ok",{count:Wr>0?Wr:S.items.length})),r.createElement("p",{style:Object.assign({},oa,{fontWeight:600})},e("permissions.target",{owner:S.targetOwner})),r.createElement("div",{style:{display:"flex",gap:"8px",flexWrap:"wrap"}},r.createElement("button",{style:Xt,onClick:()=>R(e=>!e)},e(H?"permissions.hideDetails":"permissions.showDetails")),r.createElement("button",{style:Xt,"data-variant":"neutral",onClick:async()=>{if(S&&!0===S.supported){B(!0),O(null);try{const e=await h("permissions-deep",{planId:S.planId});if(!e||!1===e.ok)throw new Error("deep permission check failed");$(e.value)}catch(t){O(e("permissions.error"))}finally{B(!1)}}},disabled:W},e(W?"permissions.deepChecking":"permissions.deep"))),L?r.createElement("p",{style:oa},e("permissions.deepSummary",{scanned:L.scanned,duration:L.durationMs,owner:L.ownerIssues,directories:L.directoryModeIssues,files:L.fileModeIssues,unreadable:L.unreadable})):null,H?r.createElement("div",{style:{display:"grid",gap:"8px",marginTop:"8px"}},S.items.map(e=>r.createElement("div",{key:e.path,style:{padding:"9px 10px",borderRadius:"6px",border:"1px solid var(--dsw-alias-border-l1)",background:"var(--dsh-svc-raised-bg)",color:"var(--dsw-alias-label-primary)"}},r.createElement("div",{style:{fontSize:"12px",fontWeight:600}},e.label),r.createElement("div",{style:{fontFamily:"monospace",fontSize:"11px",color:"var(--dsw-alias-label-secondary)",overflowWrap:"anywhere"}},e.path),r.createElement("div",{style:{fontFamily:"monospace",fontSize:"12px",marginTop:"3px"}},`${e.owner} · ${e.mode}`)))):null,C?r.createElement("div",{style:{marginTop:"10px"}},r.createElement("p",{style:Object.assign({},oa,{color:"var(--dsw-alias-state-error-primary)"})},e("permissions.confirmHint")),r.createElement("div",{style:{display:"flex",gap:"8px"}},r.createElement("button",{style:ea,disabled:A,onClick:async()=>{if(S&&!0===S.supported){T(!0),O(null);try{const e=await h("permissions-repair",{planId:S.planId});if(!e||!1===e.ok)throw new Error("permission repair failed");q(e.value),z(!1)}catch(t){O(e("permissions.error"))}finally{T(!1)}}}},e(A?"permissions.repairing":"permissions.confirm")),r.createElement("button",{style:aa,disabled:A,onClick:()=>z(!1)},e("permissions.cancel")))):jr?r.createElement("button",{style:Object.assign({},ta,{marginTop:"10px"}),"data-variant":"dangerGhost",disabled:A,onClick:()=>z(!0)},e("permissions.repair")):null,M?r.createElement("p",{style:Object.assign({},oa,{color:"var(--dsw-alias-state-error-primary)"})},M):null):null):null,_r=r.createElement("div",{key:"health-section","data-testid":"health-card",style:la},Sr,Cr,$r,Br),Pr=F&&!0===K?.active,Vr=Pr&&K.phase||"copy",Fr={copy:1,archive:2,validate:3,publish:4}[Vr]||1,Ur=(()=>{if(!Pr)return 0;const e=Number(K.totalBytes)||0;let t;if("copy"===Vr)t=e>0?Math.min(30,Math.floor(K.copiedBytes/e*30)):0;else if("archive"===Vr){const a=e>0?Math.min(1,Number(K.archiveBytes)/e):0;t=Math.min(70,30+Math.floor(40*a))}else t="validate"===Vr?70:100;const a=Math.max(Y.current,t);return Y.current=a,a})(),Kr=Pr?"copy"===Vr?`${ha(K.copiedBytes)} / ${ha(K.totalBytes)}`:K.archiveBytes>0?ha(K.archiveBytes):"":"",Gr=r.createElement("div",{key:"backup-section"},r.createElement("div",{style:ga},e("backup.title")),r.createElement("div",{style:Object.assign({},da,{marginTop:"4px"})},r.createElement("p",{style:oa},e("backup.description")),r.createElement("div",{style:{display:"flex",gap:"8px",marginTop:"12px",flexWrap:"wrap"}},r.createElement("button",{style:Object.assign({},Zt,{flex:1,minWidth:0,display:"inline-flex",alignItems:"center",justifyContent:"center",textAlign:"center"}),"data-variant":"brandGhost",onClick:async()=>{U(!0),J(null),G(null),Y.current=0;let e=!1,a=()=>{};const r=async()=>{if(!e){try{const t=await h("backup-progress",{});!e&&t&&t.ok&&G(!0===t.value?.active?t.value:null)}catch(e){}e||(a=t.timer.timeout(r,400))}};r();try{const e=await h("backup-create",{});if(!e||!1===e.ok)throw Object.assign(new Error("backup failed"),{code:e?.error});V({items:e.value.items,totalBytes:e.value.totalBytes})}catch(e){J(Ut(e?.code))}finally{e=!0,a(),G(null),U(!1)}},disabled:F},e(F?"backup.creating":"backup.create")),r.createElement("label",{style:Object.assign({},Xt,{flex:1,minWidth:0,display:"inline-flex",alignItems:"center",justifyContent:"center",textAlign:"center",cursor:ve?"default":"pointer"})},e(ve?"backup.importing":"backup.import"),r.createElement("input",{type:"file",accept:".tar.gz,application/gzip",disabled:ve,onChange:t=>{const a=t.target.files&&t.target.files[0];if(t.target.value="",!a)return;fe(!0),J(null);const r=new FileReader;r.onload=async()=>{try{const e=new Uint8Array(r.result);let t="";for(let a=0;a<e.length;a+=32768)t+=String.fromCharCode(...e.subarray(a,a+32768));const n=await h("backup-import",{name:a.name,data:btoa(t)});if(!n||!1===n.ok)throw Object.assign(new Error("backup import failed"),{code:n?.error});V(n.value)}catch(t){J(t?.code?Ut(t.code):e("backup.error"))}finally{fe(!1)}},r.onerror=()=>{fe(!1),J(e("backup.error"))},r.readAsArrayBuffer(a)},style:{display:"none"}}))),F&&!0===K?.active?r.createElement("div",{"data-testid":"backup-progress",style:{marginTop:"10px"}},r.createElement("div",{style:{display:"flex",justifyContent:"space-between",gap:"8px",fontSize:"11px",color:"var(--dsw-alias-label-secondary)"}},r.createElement("span",null,e("backup.progress."+Vr,{current:Fr,total:4})),r.createElement("span",null,Kr)),r.createElement("div",{style:{marginTop:"5px",height:"6px",...I("999px"),background:"var(--dsh-svc-raised-bg)",border:"1px solid var(--dsw-alias-border-l1)",overflow:"hidden"}},r.createElement("div",{style:{height:"100%",width:Ur+"%",background:"var(--dsw-alias-brand-primary)",transition:"width 240ms ease"}}))):null,r.createElement("p",{style:oa},e("backup.total",{size:ha(P.totalBytes)})),pe?r.createElement("div",{"data-testid":"backup-manual-restart",style:{marginTop:"10px",padding:"10px 12px",borderRadius:"8px",border:"1px solid var(--dsw-alias-state-warn-primary)",background:"rgba(198,128,0,0.10)"}},r.createElement("div",{style:{fontWeight:650,color:"var(--dsw-alias-state-warn-primary)"}},e("backup.manualRestartTitle")),r.createElement("p",{style:Object.assign({},oa,{margin:"4px 0 0"})},e("backup.manualRestartBody"))):null,Q?r.createElement("p",{style:Object.assign({},oa,{color:"var(--dsw-alias-state-error-primary)"})},Q):null,0===P.items.length?r.createElement("p",{style:oa},e("backup.empty")):P.items.length>10?r.createElement("button",{style:Object.assign({},aa,{marginTop:"8px"}),onClick:()=>ye(e=>!e)},e(be?"backup.hideRecords":"backup.showRecords")):null,P.items.length>0&&(P.items.length<=10||be)?r.createElement("div",{style:{marginTop:"10px",display:"grid",gap:"8px"}},P.items.map(t=>r.createElement("div",{key:t.id,style:{padding:"9px 2px",borderBottom:"1px solid var(--dsh-svc-border)",color:"var(--dsw-alias-label-primary)"}},r.createElement("div",{style:{display:"flex",justifyContent:"space-between",gap:"12px",alignItems:"flex-start"}},r.createElement("div",null,r.createElement("div",{style:{fontFamily:"monospace",fontSize:"12px",overflowWrap:"anywhere"}},t.name),r.createElement("div",{style:{color:"var(--dsw-alias-label-secondary)",fontSize:"11px",marginTop:"3px"}},`${ha(t.sizeBytes)} · ${new Date(t.createdAt).toLocaleString()}`)),r.createElement("div",{style:{display:"flex",gap:"6px",flexShrink:0}},Z===t.id||ae===t.id?null:r.createElement("button",{style:te(),disabled:ge||F,onClick:()=>(async t=>{he(!0),J(null);try{const e=await h("backup-export",{id:t});if(!e||!1===e.ok)throw new Error("export failed");const a=document.createElement("a");a.href=e.value.url,a.download=e.value.name,document.body.appendChild(a),a.click(),document.body.removeChild(a)}catch(t){J(e("backup.exportError"))}finally{he(!1)}})(t.id)},e(ge?"backup.exporting":"backup.export")),Z===t.id||ae===t.id?null:r.createElement("button",{style:te(),disabled:F,onClick:()=>(async e=>{U(!0),J(null),me(!1),oe(null),ue(null),se(e);try{const t=await h("backup-inspect",{id:e});if(!t||!1===t.ok)throw Object.assign(new Error("backup inspect failed"),{code:t?.error});if(oe(t.value),!0!==t.value.validForRestore)return;const a=await h("backup-restore-prepare",{id:e});if(!a||!1===a.ok)throw Object.assign(new Error("backup prepare failed"),{code:a?.error});ue(a.value)}catch(e){J(Ut(e?.code))}finally{U(!1)}})(t.id)},e(F&&ae===t.id?"backup.inspecting":"backup.restore")),Z===t.id||ae===t.id?null:r.createElement("button",{style:Object.assign({},ta,{minHeight:"28px",padding:"4px 9px"}),"data-variant":"dangerGhost",disabled:F,onClick:()=>X(t.id)},e("backup.delete")))),Z===t.id?r.createElement("div",{style:{marginTop:"8px"}},r.createElement("p",{style:Object.assign({},oa,{color:"var(--dsw-alias-state-error-primary)",margin:"0 0 6px"})},e("backup.confirmHint")),r.createElement("div",{style:{display:"flex",gap:"8px"}},r.createElement("button",{style:ea,disabled:F,onClick:()=>(async t=>{U(!0),J(null);try{const e=await h("backup-delete",{id:t});if(!e||!1===e.ok)throw new Error("backup failed");V(e.value),X(null)}catch(t){J(e("backup.error"))}finally{U(!1)}})(t.id)},e("backup.confirm")),r.createElement("button",{style:aa,disabled:F,onClick:()=>X(null)},e("backup.cancel")))):ae===t.id?r.createElement("div",{"data-testid":"backup-restore-preflight",style:{marginTop:"8px",padding:"10px",borderRadius:"8px",border:"1px solid var(--dsh-svc-border)",background:"var(--dsh-svc-raised-bg)"}},F&&null===ie?r.createElement("p",{style:oa},e("backup.inspecting")):null!==ie?r.createElement("div",null,r.createElement("div",{style:{fontWeight:650,color:ie.validForRestore?"var(--dsh-svc-success)":"var(--dsh-svc-danger)"}},e(ie.validForRestore?"backup.integrity.ok":"backup.integrity.invalid")),r.createElement("p",{style:Object.assign({},oa,{margin:"4px 0 0"})},e("backup.integrity.summary",{entries:ie.archive?.entryCount||0,size:ha(ie.archive?.logicalBytes||0),sessions:ie.sections?.sessions?.files||0,config:ie.sections?.config?.files?.length||0,profiles:ie.sections?.profiles?.count||0})),!0!==ie.validForRestore?r.createElement("ul",{style:Object.assign({},oa,{margin:"6px 0 0",paddingLeft:"18px",color:"var(--dsh-svc-danger)"})},(ie.issues||[]).map((e,t)=>r.createElement("li",{key:t},Ut(e.code)))):null):null,null!==le?r.createElement("div",{style:{marginTop:"8px"}},r.createElement("p",{style:Object.assign({},oa,{color:"var(--dsw-alias-state-warn-primary)",margin:"0 0 6px"})},e("backup.restoreHint")),r.createElement("ul",{style:Object.assign({},oa,{margin:"0 0 8px",paddingLeft:"18px"})},r.createElement("li",null,e("backup.plan.sessions")),r.createElement("li",null,e("backup.plan.config",{replace:le.targets?.config?.replace?.length||0,remove:le.targets?.config?.remove?.length||0})),r.createElement("li",null,e("backup.plan.profiles",{count:le.targets?.profiles?.upsert?.length||0}))),r.createElement("p",{style:Object.assign({},oa,{margin:"0 0 8px"})},e("backup.plan.expires",{time:new Date(le.expiresAt).toLocaleTimeString()})),r.createElement("div",{style:{display:"flex",gap:"8px"}},r.createElement("button",{style:ea,disabled:F,onClick:Kt},e("backup.restoreConfirm")),r.createElement("button",{style:aa,disabled:F,onClick:Gt},e("backup.cancel")))):r.createElement("button",{style:aa,disabled:F,onClick:Gt},e("backup.cancel"))):null))):null)),Yr=(t,a,n,s,i,o,l,d)=>{const c=s?s.restartPending?e("update.installedPendingRestart",{version:s.current||n||""}):"unpublished"===s.status?e("update.unpublished"):"unavailable"===s.status?e("update.unavailable"):s.upToDate?e("update.current"):e("update.available",{version:s.latest}):Ie||e("update.checking"),u=s?s.restartPending?"var(--dsw-alias-state-warn-primary)":s.upToDate?"var(--dsw-alias-state-success-primary)":"var(--dsw-alias-state-warn-primary)":"var(--dsw-alias-label-secondary)",p=o&&s&&"unpublished"!==s.status&&"unavailable"!==s.status&&!s.upToDate?r.createElement("button",{type:"button",title:e(Lt?"update.detailsHide":"update.detailsButton"),style:{background:"transparent",border:0,padding:0,cursor:"pointer",display:"inline-flex",alignItems:"center",gap:"5px",fontSize:"12px",fontWeight:600,color:u},onClick:()=>$t(e=>!e)},(m=Lt,r.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",width:12,height:12,viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:3,strokeLinecap:"round",strokeLinejoin:"round",style:{display:"block",transition:"transform 150ms ease",transform:m?"rotate(90deg)":"none"}},r.createElement("path",{d:"M9 6l6 6-6 6"}))),r.createElement("span",null,c)):r.createElement("div",{style:{color:u,fontWeight:600}},c);var m;return r.createElement("div",{key:t,className:"dshsvc-version-row",style:{display:"flex",flexWrap:"wrap",justifyContent:"space-between",alignItems:"center",gap:"8px 16px",padding:"10px 2px",borderTop:l?"1px solid var(--dsw-alias-border-l1)":0}},r.createElement("div",{className:"dshsvc-version-identity",style:{display:"flex",alignItems:"center",gap:"8px",flexWrap:"wrap",minWidth:0}},r.createElement("span",{style:{fontSize:"13px",fontWeight:650,whiteSpace:"nowrap"}},`${a} `),s?.url?r.createElement("a",{"data-testid":`version-${t}-link`,href:s.url,target:"_blank",rel:"noreferrer",style:{color:"var(--dsw-alias-label-primary)",textDecoration:"underline",fontSize:"12px",whiteSpace:"nowrap",marginLeft:"16px"}},s.current||n||e("version.loading")):r.createElement("code",{style:{fontSize:"12px",color:"var(--dsw-alias-label-primary)",marginLeft:"16px",whiteSpace:"nowrap"}},s?.current||n||e("version.loading")),d?r.createElement("div",{className:"dshsvc-version-note",style:{minWidth:0,lineHeight:1.5,overflowWrap:"anywhere"}},d):null),r.createElement("div",{className:"dshsvc-version-status",style:{display:"flex",flexWrap:"wrap",alignItems:"center",justifyContent:"flex-end",gap:"8px",fontSize:"12px",minWidth:0,overflowWrap:"anywhere"}},p,i||null))},Qr=Ce?.dsh,Jr=Qr&&"unpublished"!==Qr.status&&"unavailable"!==Qr.status&&!Qr.upToDate,Zr=at(xe),Xr=Ce?.plugin&&!Ce.plugin.upToDate&&"available"===Ce.plugin.status,en=1===et(Bt,Ee||Ce?.plugin?.current||null),tn=vt||en,an=tn&&null!==Bt?Object.assign({},Ce?.plugin,{current:Bt,restartPending:!0}):Ce?.plugin,rn=!Xr||tn||pt?null:r.createElement("button",{style:Object.assign({},Xt,{minHeight:"24px",padding:"2px 8px",fontSize:"11px"}),disabled:Ge,onClick:Qt},e(Ge?"update.upgrading":"update.upgrade")),nn=vt||en&&null!==jt&&!0===jt.manualStartLikely,sn=r.createElement("span",{key:"dsh-support-bound","data-testid":"version-dsh-support-bound",style:{fontSize:"12px",lineHeight:1.4,marginLeft:"2px",padding:Zr?"1px 6px":0,borderRadius:"4px",color:Zr?"var(--dsw-alias-state-error-primary)":"var(--dsw-alias-label-secondary)",background:Zr?"rgba(211,51,51,0.08)":"transparent",border:Zr?"1px solid rgba(211,51,51,0.3)":0,fontWeight:Zr?650:400,whiteSpace:"normal"}},e("version.dsh.supportBound",{limit:Qe})),on=r.createElement("div",{key:"version-card","data-testid":"version-card",style:la},r.createElement("div",{key:"title",style:ga},e("version.title")),r.createElement("div",{style:da},Yr("plugin","dsh-service",Ee,an,rn,!1,!1,sn),Yr("dsh","DSH",xe,Qr,null,!0===Jr,!0),Lt?r.createElement("div",{"data-testid":"version-channel-details",style:{marginTop:"6px",paddingTop:"8px",borderTop:"1px solid var(--dsw-alias-border-l1)",fontSize:"12px",lineHeight:1.7,color:"var(--dsw-alias-label-secondary)",display:"flex",flexDirection:"column",gap:"6px"}},r.createElement("div",null,e("update.details.current",{version:Qr?.current||xe||"—"})),r.createElement("div",null,e("update.details.latest",{version:Qr?.latest||"—"})),Xe(e,Qr?.tags)):null,pt?r.createElement("div",{"data-testid":"upgrade-manual-confirm",style:{marginTop:"10px",padding:"10px 12px",borderRadius:"6px",background:"rgba(211,51,51,0.08)",border:"1px solid rgba(211,51,51,0.3)"}},r.createElement("p",{style:{margin:"0 0 6px",color:"var(--dsw-alias-state-error-primary)",fontSize:"13px",fontWeight:600}},e("update.manualConfirmTitle")),r.createElement("p",{style:Object.assign({},oa,{margin:"0 0 8px"})},e("update.manualConfirm")),r.createElement("div",{style:ia},r.createElement("button",{style:ta,"data-variant":"dangerGhost",disabled:Ge,onClick:Qt},e(Ge?"update.upgrading":"update.manualProceed")),r.createElement("button",{style:aa,disabled:Ge,onClick:()=>mt(!1)},e("restart.cancel")))):null,nn?r.createElement("div",{"data-testid":"upgrade-manual-pending",style:{marginTop:"10px",padding:"10px 12px",borderRadius:"6px",border:"1px solid var(--dsw-alias-state-warn-primary)",background:"var(--dsh-svc-raised-bg)"}},r.createElement("p",{style:{margin:"0 0 4px",color:"var(--dsw-alias-state-warn-primary)",fontSize:"13px",fontWeight:650}},e("update.manualRestartTitle")),r.createElement("p",{style:Object.assign({},oa,{margin:0})},e("update.manualRestartBody"))):null,Je?r.createElement("p",{style:Object.assign({},oa,{color:"var(--dsw-alias-state-error-primary)",margin:"4px 0 0"})},Je):null)),ln=r.createElement(Ze,{showNavToggle:!0}),{enabled:dn,done:cn,input:un,bell:pn,setEnabled:mn,setDone:gn,setInput:hn,setBell:vn}=je(),fn="undefined"!=typeof Notification,bn=fn?Notification.permission:"denied",yn=(e,t,a,n,s,i)=>r.createElement("div",{"data-testid":e,style:{display:"flex",alignItems:"center",justifyContent:"space-between",gap:"12px",padding:"5px 0"}},r.createElement("div",{style:{display:"flex",flexDirection:"column",gap:"2px"}},r.createElement("span",{style:{fontSize:"13px",color:"var(--dsw-alias-label-primary)"}},t),a?r.createElement("span",{style:oa},a):null),((e,t,a)=>r.createElement("button",{type:"button",role:"switch","aria-checked":String(!0===e),"aria-disabled":a?"true":void 0,onClick:a?void 0:()=>t(!e),style:{width:"34px",height:"20px",...I("10px"),padding:0,flexShrink:0,position:"relative",border:"1px solid "+(e?"var(--dsw-alias-state-success-primary)":"var(--dsw-alias-border-l2)"),background:e?"var(--dsw-alias-state-success-primary)":"var(--dsw-alias-bg-layer-2)",cursor:a?"default":"pointer",opacity:a?.5:1,lineHeight:0}},r.createElement("span",{style:{position:"absolute",top:"1px",left:e?"15px":"1px",width:"16px",height:"16px",...I("50%"),background:e?"#fff":"var(--dsw-alias-label-tertiary)"}})))(n,s,i)),xn=fn?r.createElement("div",null,r.createElement("div",{style:ga},e("notification.title")),r.createElement("div",{style:Object.assign({},da,{marginTop:"4px"})},r.createElement("p",{style:oa},e("notification.description")),"granted"!==bn?r.createElement("div",{style:{marginTop:"8px",display:"flex",alignItems:"center",gap:"8px"}},r.createElement("button",{style:Xt,onClick:()=>{Notification.requestPermission().then(e=>{"granted"===e&&mn(!0)})}},e("notification.enable")),r.createElement("span",{style:oa},"denied"===bn?e("notification.denied"):"")):r.createElement("div",{style:{marginTop:"8px",display:"flex",flexDirection:"column"}},yn("notify-row-master",e("notification.master"),null,dn,mn,!1),yn("notify-row-done",e("notification.done"),null,cn,gn,!dn),yn("notify-row-input",e("notification.input"),null,un,hn,!dn),yn("notify-row-bell",e("notification.bellShow"),null,pn,vn,!1)))):null,kn=null!=Ce&&(Ce.dsh&&!1===Ce.dsh.upToDate||Ce.plugin&&!1===Ce.plugin.upToDate),wn=null!==P&&!F&&!Q,En=(u?.checks||[]).filter(e=>"error"===e.status||"warning"===e.status&&!0!==e.advisory&&"permissions"!==e.id),Sn=[];d&&Sn.push({level:"error",text:d}),Ve&&Sn.push({level:"error",text:Ve}),Q&&Sn.push({level:"error",text:Q}),Wt.error&&Sn.push({level:"error",text:String(Wt.error)}),M&&Sn.push({level:"error",text:M});for(const t of En)Sn.push({level:"error"===t.status?"error":"warning",text:e(`health.check.${t.id}`)+":"+ar(t)});Wr>0&&Sn.push({level:"warning",text:e("permissions.summary.warning",{count:Wr})}),kn&&Sn.push({level:"info",text:e("overview.updateAvailable")}),wn&&0===P.items.length&&Sn.push({level:"info",text:e("overview.backupEmpty")});const qn=Sn.some(e=>"error"===e.level)?"error":Sn.some(e=>"warning"===e.level)?"warning":Sn.some(e=>"info"===e.level)?"info":"normal",Cn="normal"===qn?e("overview.status.normal"):e(`overview.status.${qn}`,{count:Sn.length}),zn=r.createElement("div",{"data-testid":"overview-status",style:Object.assign({},da,{display:"flex",alignItems:"center",gap:"10px"})},r.createElement("span",{"aria-hidden":"true",style:{flex:"none",width:"10px",height:"10px",...I("50%"),background:"normal"===qn?"var(--dsh-svc-success)":"warning"===qn?"var(--dsh-svc-warning)":"error"===qn?"var(--dsh-svc-danger)":"var(--dsh-svc-info)"}}),r.createElement("span",{style:{fontSize:"13px",fontWeight:600,color:"var(--dsh-svc-text)"}},Cn)),An=0===Sn.length?null:r.createElement("div",{"data-testid":"overview-actionables",style:Object.assign({},da,{marginTop:"10px",padding:"4px 10px"})},Sn.map((e,t)=>r.createElement("div",{key:`${e.level}-${t}`,style:{display:"flex",alignItems:"center",gap:"8px",padding:"6px 2px",fontSize:"12px",borderTop:0===t?0:"1px solid var(--dsh-svc-border)"}},r.createElement("span",{"aria-hidden":"true",style:{flex:"none",width:"7px",height:"7px",...I("50%"),background:"error"===e.level?"var(--dsh-svc-danger)":"warning"===e.level?"var(--dsh-svc-warning)":"var(--dsh-svc-info)"}}),r.createElement("span",{style:{color:"var(--dsh-svc-text)"}},e.text)))),Tn=r.createElement("div",null,zn,An,on,xr,dr.length>0||cr.length>0?kr:null),Mn=r.createElement("div",{key:"maintenance-card","data-testid":"maintenance-card",style:la},Gr),In=!0===u?.checks?.some(e=>"error"===e.status||"warning"===e.status&&!0!==e.advisory),{batch:On}=Sa(),Hn={overview:!1,usage:Boolean(Ve),quota:!1,diagnostics:Boolean(d||M||In||Wr>0),maintenance:Boolean(Q||Wt.error),configuration:!1},[Rn,Dn]=a("subagent"),[Nn,Ln]=a("features");i(()=>{let e=null;try{e=localStorage.getItem("dsh-service-maintenance-tab")}catch(e){}Dn(null===e?"subagent":Re(e,n))},[]);const $n=((e,t)=>ze.filter(t=>void 0===Te[t]||!1!==e[Te[t]]).map(e=>({id:e,labelKey:Ae[e],warning:void 0!==t&&!0===t[e]})))(n,Hn),Wn=He(n),jn=$n.filter(e=>e.warning).map(t=>e(t.labelKey)),Bn=$n.some(e=>e.id===Dt)?Dt:"overview",_n=Re(Rn,n),Pn="overview"===Bn?Tn:"usage"===Bn?br:"quota"===Bn?r.createElement(Wa,null):"diagnostics"===Bn?_r:"maintenance"===Bn?null===_n?r.createElement("div",{"data-testid":"maintenance-empty",style:da},e("maintenance.empty")):"restart"===_n?ln:"backup"===_n?Mn:"skills"===_n?r.createElement(za,null):"subagent"===_n?r.createElement(ca,null):r.createElement($a,null):"notifications"===Nn?r.createElement("div",{"data-testid":"config-notifications-page",style:Object.assign({},la,!1===n.taskNotifications?{opacity:.55}:{})},xn,...!1===n.taskNotifications?[r.createElement("p",{key:"notify-off-hint",style:Object.assign({},oa,{marginTop:"8px"})},e("config.notificationsDisabled"))]:[]):"navOrder"===Nn?r.createElement(sa,null):r.createElement("div",{style:la},r.createElement(na,null));return r.createElement("div",{"data-testid":"service-panel-root","data-dshsvc-root":"","data-dshsvc-page":Bn,className:"dshsvc-page"},jn.length>0?r.createElement("div",{role:"alert",style:{marginBottom:"12px",padding:"11px 13px",borderRadius:"8px",background:"rgba(198,128,0,0.16)",border:"1px solid rgba(198,128,0,0.48)"}},r.createElement("div",{style:{fontSize:"13px",fontWeight:700}},e("tabs.alert.title")),r.createElement("div",{style:Object.assign({},oa,{marginTop:"3px"})},e("tabs.alert.body",{tabs:jn.join(e("tabs.alert.join"))}))):null,r.createElement($e,{items:$n.map(t=>({id:t.id,label:e(t.labelKey),icon:"diagnostics"===t.id?"health":t.id,warning:t.warning,badge:"maintenance"===t.id&&null!==On&&"running"===On.phase?{testid:"skills-tab-badge",text:On.done+"/"+On.total}:null})),activeId:Bn,onChange:e=>{Nt(e),"diagnostics"===e&&Vt(!1)},testIdPrefix:"service-tab",dotLabel:e("tabs.alert.dot"),ariaLabel:e("nav.label")}),r.createElement(Le,{title:e(Ae[Bn]),description:void 0!==Ne[Bn]?e(Ne[Bn]):null,action:"diagnostics"===Bn?r.createElement("button",{type:"button","data-testid":"diagnostics-recheck","data-variant":"neutral",style:Xt,onClick:()=>Vt(!0),disabled:m},e(m?"health.checking":u?"health.recheck":"health.check")):null}),"maintenance"===Bn&&Wn.length>0?r.createElement($e,{items:Wn.map(t=>({id:t.id,label:e(t.labelKey)})),activeId:_n,onChange:e=>{Dn(e);try{localStorage.setItem("dsh-service-maintenance-tab",e)}catch(e){}},testIdPrefix:"maintenance-tab",variant:"sub",ariaLabel:e("tabs.maintenance")}):null,"configuration"===Bn?r.createElement($e,{items:De.map(t=>({id:t.id,label:e(t.labelKey)})),activeId:Nn,onChange:Ln,testIdPrefix:"config-tab",variant:"sub",ariaLabel:e("tabs.configuration")}):null,r.createElement("div",{"data-testid":"tab-panel",style:{padding:"14px 2px 2px",color:"var(--dsw-alias-label-primary)"}},Pn))}null!==Na&&console.info("[dsh-service-md] session detail markdown renderer ready");const Ba=["M10.268 21a2 2 0 0 0 3.464 0","m15 8 2 2 4-4","M16.8607 4.4824A6 6 0 0 0 6 8C6 12.499 4.589 13.956 3.262 15.326","M3.262 15.326A1 1 0 0 0 4 17H20A1 1 0 0 0 20.74 15.327C20.209 14.779 19.665 14.218 19.203 13.454"],_a=["M10.268 21a2 2 0 0 0 3.464 0","M17 17H4a1 1 0 0 1-.74-1.673C4.59 13.956 6 12.499 6 8a6 6 0 0 1 .258-1.742","m2 2 20 20","M8.668 3.01A6 6 0 0 1 18 8c0 2.687.77 4.653 1.707 6.05"];function Pa(){const{enabled:e,setEnabled:t}=je(),a=qe();return r.createElement("button",{type:"button",title:a(e?"notification.bellOn":"notification.bellOff"),style:{background:"transparent",border:0,cursor:"pointer",padding:"2px 4px",color:"inherit",opacity:e?1:.45,lineHeight:0},onClick:()=>{"undefined"!=typeof Notification&&("granted"===Notification.permission?t(!e):Notification.requestPermission().then(e=>{"granted"===e&&t(!0)}))}},(n=e,r.createElement("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",strokeLinejoin:"round",style:{display:"block"}},(n?Ba:_a).map(function(e,t){return r.createElement("path",{key:t,d:e})}))));var n}t.slots.inject("conversation.input.left",()=>{let e=null;const a=()=>{null!==e&&(e(),e=null),de("taskNotifications")&&We.current.bellVisible&&(e=t.slots.register({name:"conversation.input.left",id:"dsh-service-notify",order:90,label:()=>W("notification.bellOn")},()=>r.createElement(Pa,null)))};a();const n=X.subscribe(a),s=Pe(a);return()=>{n(),s(),null!==e&&e()}}),t.slots.inject("settings.plugin.item",()=>t.slots.register({name:"settings.plugin.item",id:"dsh-service",key:"dsh-service",order:40},()=>r.createElement(aa,null))),t.slots.inject("plugins.bundle.config",()=>t.slots.register({name:"plugins.bundle.config",key:"@gehennawu/dsh-service"},e=>"page"===e?.view?r.createElement(aa,null):null)),t.slots.inject("settings.section",()=>{const e=t.slots.register({name:"settings.section",id:"dsh-service",order:99,label:()=>W("nav.label")},()=>r.createElement(ja,null));Fe.sync(),Ue.sync(),Ke.sync();const a=X.subscribe(Ue.sync),n=X.subscribe(Ke.sync);return()=>{a(),n(),e(),Fe.disposeEntry(),Ue.disposeEntry(),Ke.disposeEntry()}}),t.slots.inject("shell.overlay",()=>t.slots.register({name:"shell.overlay",id:"dsh-service-restart",order:100,label:()=>W("overlay.label")},()=>r.createElement(Je,null))),t.slots.inject("conversation.input.right",()=>{let e=null;const a=()=>{null!==e&&(e(),e=null),de("quotaLookup")&&(e=t.slots.register({name:"conversation.input.right",id:"dsh-service-quota-ring",order:95,label:()=>W("quota.ring.label"),inject:e=>{if(null==e)return{};try{const t=Ge();if(void 0===t||"function"!=typeof t.directoryFor)return{sessionId:e};const a=t.directoryFor(e);return{sessionId:e,directoryStore:a.store,loadDirectory:()=>{try{const e=a.load();e&&"function"==typeof e.catch&&e.catch(()=>{})}catch(e){}}}}catch(t){return{sessionId:e}}}},e=>r.createElement(ta,e)))};a();const n=X.subscribe(a);return()=>{n(),null!==e&&e()}}),t.slots.inject("conversation.composer.dock",()=>{let e=null;const a=()=>{null!==e&&(e(),e=null),de("subagentRoute")&&de("subagentModelsDock")&&(e=t.slots.register({name:"conversation.composer.dock",id:"dsh-service-subagent-models-dock",order:60,label:()=>W("subagent.dock.label"),inject:e=>({sessionId:e})},e=>r.createElement(Ce,e)))};a();const n=X.subscribe(a);return()=>{n(),null!==e&&e()}});const Va=S,Fa=(e,t)=>{const a="editor.error."+("string"==typeof t&&""!==t?t:"internal"),r=e(a,{limit:"2 MiB"});return r===a?e("editor.error.internal"):r},Ua=[],Ka=e=>{const t=Ua[e];try{t.button.remove()}catch(e){}Ua.splice(e,1)},Ga=()=>{for(;Ua.length>0;)Ka(Ua.length-1)},Ya=()=>{const e=A();if(null===e)return;const t=W("editor.viewer"),a=de("fileEditor"),r=a?T(e,z):[];for(let e=Ua.length-1;e>=0;e-=1){const a=Ua[e];r.includes(a.menu)&&M(a.menu)!==t||Ka(e)}if(a){for(const e of Ua)if(e.button.textContent!==t){e.button.textContent=t;try{e.button.setAttribute("aria-label",t),e.button.setAttribute("title",t)}catch(e){}}for(const a of r){if(M(a)===t)continue;if(Ua.some(e=>e.menu===a))continue;const r=a.parentNode;if(null==r||"function"!=typeof e.createElement||"function"!=typeof r.insertBefore)continue;const n=e.createElement("button");n.type="button",n.setAttribute(q,""),n.setAttribute("aria-label",t),n.setAttribute("title",t),n.textContent=t,Object.assign(n.style,{minHeight:"22px",marginRight:"4px",padding:"1px 8px",border:"1px solid var(--dsw-alias-border-l2)",borderRadius:"var(--dsh-svc-radius-control, 6px)",background:"transparent",color:"var(--dsw-alias-label-secondary)",font:"inherit",fontSize:"12px",lineHeight:"18px",cursor:"pointer",flex:"none"}),n.addEventListener("click",a=>{try{a?.preventDefault?.()}catch(e){}try{a?.stopPropagation?.()}catch(e){}N(e,e=>e===t,{menu:H(n),isAlive:()=>D.isAlive()})}),r.insertBefore(n,a),Ua.push({menu:a,button:n})}}};function Qa(e){const t=qe(),a="string"==typeof e?.tab?.contentId?e.tab.contentId:"";if(!a.startsWith("dsh-resource://file/")||!O(a))return null;const n=A();return(null===n?[]:T(n,z)).some(e=>M(e)===t("editor.viewer"))?null:r.createElement("button",{type:"button",role:"menuitem","data-testid":"file-editor-menu-item",[C]:"",onClick:()=>{try{e?.dismiss?.()}catch(e){}const a=A(),r=null===a?[]:T(a,z);1===r.length&&N(a,e=>e===t("editor.viewer"),{menu:r[0],isAlive:()=>D.isAlive()})},style:{display:"block",width:"100%",textAlign:"left",padding:"6px 10px",border:0,background:"transparent",color:"var(--dsw-alias-label-primary)",font:"inherit",fontSize:"12px",lineHeight:"18px",cursor:"pointer",whiteSpace:"nowrap"}},t("editor.viewer"))}function Ja(e){const t=qe(),a="string"==typeof e?.resourceAddress?e.resourceAddress:"",n=!1!==e?.wrap,s=e?.content,[i,o]=r.useState({phase:"loading",text:"",version:"",path:"",bytes:0,error:""}),[l,d]=r.useState(null),[c,u]=r.useState(!1),[p,m]=r.useState(""),[g,v]=r.useState(null),[f,b]=r.useState(null),[y,x]=r.useState(null),k=r.useRef(0),w=r.useRef(s),E=r.useRef(i),S=r.useRef(null),q=r.useRef(!1),C=r.useRef(null),z=r.useRef(null),T=r.useRef(null),M=e=>{E.current=e,o(e)},I=e=>{S.current=e,d(e)},O=e=>{q.current=e,u(e)},R=e=>{C.current=e,b(e)},L=()=>(k.current+=1,k.current),$=e=>k.current===e,W=()=>{if(!0===q.current)return;const e=L();M({phase:"loading",text:"",version:"",path:"",bytes:0,error:""}),I(null),v(null),R(null),m(""),O(!1),h("file-read",{address:a}).then(t=>{if(!$(e))return;if(!t||!0!==t.ok)return void M({phase:"error",text:"",version:"",path:"",bytes:0,error:"string"==typeof t?.error?t.error:"internal"});const a=t.value||{};M({phase:"ready",text:"string"==typeof a.text?a.text:"",version:"string"==typeof a.version?a.version:"",path:"string"==typeof a.path?a.path:"",bytes:Number.isFinite(a.bytes)?a.bytes:0,error:""})}).catch(()=>{$(e)&&M({phase:"error",text:"",version:"",path:"",bytes:0,error:"internal"})})},j=(e,t,r={})=>{const n="undo"===r?.kind?"undo":"save";if(!0===q.current)return;if("string"!=typeof e)return;const s=L();O(!0),m(""),h("file-write",{address:a,text:e,version:t,force:!0===r?.force}).then(a=>{if(!$(s))return;if(O(!1),!a||!0!==a.ok){const e="string"==typeof a?.error?a.error:"internal";return"file-stale"===e?void v({kind:n}):void m(e)}const i=a.value||{},o="string"==typeof i.version&&""!==i.version?i.version:"string"==typeof t?t:"",l=E.current;M({phase:"ready",text:e,version:o,path:"string"==typeof i.path&&""!==i.path?i.path:l.path,bytes:Number.isFinite(i.bytes)?i.bytes:l.bytes,error:""}),R("undo"===n?null:"string"==typeof i.before?{text:i.before,version:o}:null);const d=S.current;null===d||d===e?(I(null),v(null),m("saved"),"preview"===r?.leaveAfter&&K()):v(null)}).catch(()=>{$(s)&&(O(!1),m("internal"))})};r.useEffect(()=>(w.current=s,W(),()=>{k.current+=1}),[a]),r.useEffect(()=>{if(w.current===s)return;if(w.current=s,!0===q.current)return;const e=S.current;null!==e&&e!==E.current.text||W()},[s]);const B=null!==l&&l!==i.text,_="error"===i.phase?i.error:"",P=!0===c?t("editor.saving"):!0===B?t("editor.unsaved"):"saved"===p?t("editor.saved"):"",V=!0===c?"var(--dsw-alias-label-secondary)":!0===B?"var(--dsw-alias-state-warn-primary)":"var(--dsw-alias-state-success-primary)",F=e=>({minHeight:"26px",padding:"2px 9px",fontSize:"12px",borderRadius:"var(--dsh-svc-radius-control, 6px)",border:"1px solid "+("primary"===e?"var(--dsh-svc-brand)":"var(--dsw-alias-border-l2)"),background:"primary"===e?"var(--dsh-svc-brand)":"transparent",color:"primary"===e?"var(--dsh-svc-brand-text)":"var(--dsw-alias-label-primary)",cursor:"pointer"}),U=(e,a,n,s,i)=>r.createElement("button",{type:"button","data-testid":e,disabled:!0===i,onClick:n,style:Object.assign(F(s),!0===i?{opacity:.5,cursor:"default"}:{})},t(a)),K=()=>{const e=H(z.current);return null!=e&&N(A(),e=>e!==t("editor.viewer"),{menu:e,isAlive:()=>D.isAlive()})},G=r.createElement("div",{style:{display:"flex",alignItems:"center",gap:"8px",flexWrap:"wrap",padding:"6px 10px",borderBottom:"1px solid var(--dsw-alias-border-l1)",fontSize:"12px"}},r.createElement("span",{"data-testid":"file-editor-path",title:""!==i.path?i.path:a,style:{flex:"1 1 90px",minWidth:0,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",fontFamily:"var(--ds-font-family-code, monospace)",color:"var(--dsw-alias-label-secondary)"}},""!==i.path?i.path:a),""!==P?r.createElement("span",{"data-testid":"file-editor-status",role:"status","aria-live":"polite",style:{flex:"none",fontWeight:600,color:V}},P):null,r.createElement("span",{style:{display:"flex",gap:"6px",marginLeft:"auto",flex:"none"}},U("file-editor-preview","editor.preview",()=>{!0!==q.current&&(!0!==B?K():x("preview"))},"ghost",c),null!==f?U("file-editor-undo","editor.undo",()=>{!0!==q.current&&null!==f&&x("undo")},"ghost",c):null,U("file-editor-reload","editor.reload",()=>{!0!==q.current&&(!0!==B?W():x("reload"))},"ghost",c),U("file-editor-save","editor.save",()=>j(S.current??i.text,i.version,{kind:"save"}),"primary",c||!B))),Y=null!==g&&"save"===g.kind?r.createElement("div",{"data-testid":"file-editor-conflict",style:{margin:"8px 10px 0",padding:"8px 10px",borderRadius:"8px",border:"1px solid var(--dsw-alias-state-warn-primary)",background:"var(--dsh-svc-raised-bg, transparent)",fontSize:"12px",lineHeight:1.6}},r.createElement("div",{style:{fontWeight:700,color:"var(--dsw-alias-state-warn-primary)"}},t("editor.conflict.title")),r.createElement("p",{style:{margin:"4px 0 8px",color:"var(--dsw-alias-label-secondary)"}},t("editor.conflict.body")),r.createElement("div",{style:{display:"flex",gap:"8px",flexWrap:"wrap"}},U("file-editor-conflict-reload","editor.conflict.reload",()=>W(),"ghost",c),U("file-editor-conflict-overwrite","editor.conflict.overwrite",()=>j(S.current??i.text,i.version,{kind:"save",force:!0}),"primary",c))):null,Q=null!==g&&"undo"===g.kind?r.createElement("div",{"data-testid":"file-editor-undo-conflict",style:{margin:"8px 10px 0",padding:"8px 10px",borderRadius:"8px",border:"1px solid var(--dsw-alias-state-warn-primary)",background:"var(--dsh-svc-raised-bg, transparent)",fontSize:"12px",lineHeight:1.6}},r.createElement("div",{style:{fontWeight:700,color:"var(--dsw-alias-state-warn-primary)"}},t("editor.undoConflict.title")),r.createElement("p",{style:{margin:"4px 0 8px",color:"var(--dsw-alias-label-secondary)"}},t("editor.undoConflict.body")),r.createElement("div",{style:{display:"flex",gap:"8px",flexWrap:"wrap"}},U("file-editor-undo-conflict-reload","editor.conflict.reload",()=>W(),"ghost",c),U("file-editor-undo-conflict-dismiss","editor.undoConflict.dismiss",()=>v(null),"ghost",!1))):null,J={preview:"editor.confirm.previewTitle",reload:"editor.confirm.reloadTitle",undo:"editor.confirm.undoTitle"},Z=null===y?null:r.createElement("div",{"data-testid":"file-editor-confirm",role:"alertdialog","aria-label":t(J[y]??"editor.confirm.previewTitle"),style:{margin:"8px 10px 0",padding:"8px 10px",borderRadius:"8px",border:"1px solid var(--dsw-alias-border-l2)",background:"var(--dsh-svc-raised-bg, transparent)",fontSize:"12px",lineHeight:1.6}},r.createElement("div",{style:{fontWeight:700}},t(J[y]??"editor.confirm.previewTitle")),r.createElement("p",{style:{margin:"4px 0 8px",color:"var(--dsw-alias-label-secondary)"}},t({preview:"editor.confirm.previewBody",reload:"editor.confirm.reloadBody",undo:"editor.confirm.undoBody"}[y]??"editor.confirm.previewBody")),r.createElement("div",{style:{display:"flex",gap:"8px",flexWrap:"wrap"}},"preview"===y?U("file-editor-confirm-save","editor.confirm.saveBack",()=>{x(null),j(S.current??i.text,i.version,{kind:"save",leaveAfter:"preview"})},"primary",c):null,"undo"===y?U("file-editor-confirm-save","editor.undo",()=>(()=>{const e=C.current;x(null),null!=e&&(I(null),j(e.text,e.version,{kind:"undo"}))})(),"primary",c):null,"reload"===y?U("file-editor-confirm-discard","editor.confirm.reloadGo",()=>{x(null),W()},"primary",c):null,"preview"===y?U("file-editor-confirm-discard","editor.confirm.discardBack",()=>{x(null),K()},"ghost",!1):null,U("file-editor-confirm-cancel","editor.confirm.cancel",()=>(()=>{x(null);try{T.current?.focus?.()}catch(e){}})(),"ghost",!1))),X=""===p||"saved"===p?null:r.createElement("p",{"data-testid":"file-editor-notice",style:{margin:"8px 10px 0",fontSize:"12px",color:"var(--dsw-alias-state-error-primary)"}},Fa(t,p)),ee="loading"===i.phase?r.createElement("p",{"data-testid":"file-editor-loading",style:{margin:"12px 10px",fontSize:"12px",color:"var(--dsw-alias-label-tertiary)"}},t("editor.loading")):"error"===i.phase?r.createElement("div",{"data-testid":"file-editor-error",style:{margin:"12px 10px",fontSize:"12px",lineHeight:1.6,color:"var(--dsw-alias-label-secondary)"}},r.createElement("p",{style:{margin:"0 0 8px"}},Fa(t,_)),U("file-editor-retry","editor.retry",()=>W(),"ghost",!1)):r.createElement("textarea",{"data-testid":"file-editor-textarea",ref:T,"aria-label":t("editor.viewer"),value:null!==l?l:i.text,spellCheck:!1,onChange:e=>I("string"==typeof e?.target?.value?e.target.value:""),onKeyDown:e=>{!0!==e?.ctrlKey&&!0!==e?.metaKey||"s"!==e?.key&&"S"!==e?.key||(e.preventDefault(),!0!==q.current&&B&&j(S.current??i.text,i.version,{kind:"save"}))},style:{flex:"1 1 auto",minHeight:"160px",margin:0,padding:"8px 10px",border:0,outline:"none",resize:"none",background:"transparent",color:"var(--dsw-alias-label-primary)",fontFamily:"var(--ds-font-family-code, monospace)",fontSize:"12px",lineHeight:1.6,tabSize:2,whiteSpace:n?"pre-wrap":"pre",overflow:"auto",overflowWrap:n?"anywhere":"normal"}});return r.createElement("div",{"data-dshsvc-editor":"",ref:z,style:{display:"flex",flexDirection:"column",height:"100%",minHeight:0,color:"var(--dsw-alias-label-primary)"}},G,Z,Y,Q,X,ee,r.createElement("div",{style:{flex:"none",padding:"4px 10px 6px",fontSize:"11px",color:"var(--dsw-alias-label-tertiary)"}},t("editor.keyHint")))}const Za=()=>{if(!de("fileEditor"))return;const e=[],a=e=>{if(null!=e&&void 0!==e.documentPreviews)return e.documentPreviews;try{return"function"==typeof t.get?t.get("documentPreviews"):void 0}catch(e){return}},s=a=>{if(null==a||"function"!=typeof a.register)return;let s=null;try{s=a.register({id:E,extensions:Va,priority:"builtin",title:()=>W("editor.viewer"),loading:"text-pages",wrap:!0})}catch(e){return}e.push(s),e.push(t.slots.inject("sidebar.right.tab.document",()=>t.slots.register({name:"sidebar.right.tab.document",key:E,locale:n},Ja))),e.push(t.slots.inject("sidebar.right.tab.menu.item",()=>t.slots.register({name:"sidebar.right.tab.menu.item",id:"dsh-service-editor",order:40},e=>r.createElement(Qa,e)))),e.push((()=>{D=(()=>{const e={alive:!0};return R.add(e),{isAlive:()=>!0===e.alive,dispose:()=>{e.alive=!1,R.delete(e)}}})(),Ya();let e=()=>{};try{if("function"==typeof t.locale?.subscribe){const a=t.locale.subscribe(()=>{try{Ya()}catch(e){}});"function"==typeof a&&(e=a)}}catch(e){}const a=A();if(null===a||"function"!=typeof MutationObserver)return()=>{e(),Ga()};let r=!1;const n=()=>{r||(r=!0,Promise.resolve().then(()=>{r=!1;try{Ya()}catch(e){}}))};let s=null;try{s=new MutationObserver(n),s.observe(a.documentElement??a.body??a,{childList:!0,subtree:!0,characterData:!0})}catch(e){s=null}return()=>{try{s?.disconnect()}catch(e){}e(),Ga(),D.dispose(),(()=>{for(const e of R)e.alive=!1;R.clear()})()}})())};return"function"==typeof t.inject?e.push(t.inject(["documentPreviews"],e=>{s(a(e))})):s(a(void 0)),()=>{for(const t of e)try{t()}catch(e){}}};t.effect(()=>{let e=de("fileEditor"),t=!0===e?Za():void 0;const a=X.subscribe(()=>{const a=de("fileEditor");a!==e&&(e=a,"function"==typeof t&&t(),t=!0===a?Za():void 0)});return()=>{a(),"function"==typeof t&&t()}},"dsh-service file editor");const Xa=(()=>{const e={observer:null,btn:null,styleTag:null,retryTimer:null,retryLeft:0,scrollHandler:null,rafId:null,slotRO:null},a=oe(),r=()=>{if(null!==e.retryTimer){try{e.retryTimer()}catch(e){}e.retryTimer=null}},n=()=>{if(null!==e.btn&&e.btn.isConnected)try{const t=a.toBottomSlot();if(null===t)return;const r=a.scrollportOf(t);if(null===r||"function"!=typeof r.querySelectorAll)return;let n=!1;for(const e of a.userRows(r))if(a.flowTopOf(r,e)<4){n=!0;break}const i=null!==a.loadOlderButton(r);e.btn.style.display=n||i?"flex":"none",s()}catch(e){}},s=()=>{if(null!==e.btn&&e.btn.isConnected)try{const t=a.toBottomSlot();if(null===t||"function"!=typeof t.querySelector)return;const r=a.toBottomButton(t);let n=0;if(null!==r){const e=t.getBoundingClientRect().right,a=r.getBoundingClientRect().right;n=Math.max(0,Math.round(e-a))}const s=`${n}px`;e.btn.style.right!==s&&(e.btn.style.right=s)}catch(e){}},i=()=>{if(null===e.btn||!e.btn.isConnected)try{const i=a.toBottomSlot();if(null===i||"function"!=typeof i.appendChild||"function"!=typeof i.querySelector)return;const o=a.toBottomButton(i),l=document.createElement("button");l.type="button",l.setAttribute("data-dshsvc-user-jump",""),l.setAttribute("aria-label",W("conversation.jump.previousReply"));let d=0;try{if(null!==o){const e=i.getBoundingClientRect().right,t=o.getBoundingClientRect().right;d=Math.max(0,Math.round(e-t))}}catch(e){}Object.assign(l.style,{position:"absolute",right:`${d}px`,bottom:"42px",zIndex:"1",width:"34px",height:"34px",padding:"0",cursor:"pointer",border:"1px solid var(--dsw-alias-border-l2)",background:"var(--dsw-alias-button-floating-fill)",color:"var(--dsw-alias-label-primary)",boxShadow:"var(--dsw-shadow-lv2)",...I("100px"),display:"flex",alignItems:"center",justifyContent:"center",pointerEvents:"auto"}),l.innerHTML=(e=>{try{const t=a.toBottomButton(e),r=null!==t?t.querySelector("svg"):null;if(null!==r&&"string"==typeof r.outerHTML)return r.outerHTML.replace(/<svg/i,'<svg style="transform:rotate(180deg)"')}catch(e){}return'<svg width="14" height="14" viewBox="0 0 14 14" fill="none" aria-hidden="true"><path d="M7 10.5V3.5M3.5 7 7 3.5 10.5 7" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/></svg>'})(i),l.addEventListener("click",()=>{const n=a.scrollportOf(i);if(null===n||"function"!=typeof n.querySelectorAll)return;const s=Number(n.scrollTop)||0,o=()=>{e.retryTimer=null;const r=Number(n.scrollTop)||0;if(Math.abs(r-s)>40)try{n.scrollTop=s}catch(e){}const i=a.userRows(n);let l=null;for(let e=i.length-1;e>=0;e-=1)if(a.flowTopOf(n,i[e])<4){l=i[e];break}if(null!==l){const e=Math.max(0,s+a.flowTopOf(n,l)-12);try{n.scrollTop=e}catch(e){}return}if(e.retryLeft<=0)return;e.retryLeft-=1;const d=a.loadOlderButton(n);if(null!==d){if(!0!==d.disabled)try{d.click()}catch(e){}e.retryTimer=t.timer.timeout(o,220)}};r(),e.retryLeft=20,o()}),i.appendChild(l),e.btn=l,(()=>{if("function"==typeof ResizeObserver){if(null!==e.slotRO){try{e.slotRO.disconnect()}catch(e){}e.slotRO=null}try{const t=a.toBottomSlot();if(null===t)return;const r=new ResizeObserver(()=>{s()});r.observe(t),e.slotRO=r}catch(t){e.slotRO=null}}})(),n()}catch(e){}};return{start:()=>{try{if(null===e.styleTag){const t=document.createElement("style");t.dataset.plugin="@gehennawu/dsh-service",t.dataset.pluginCss="@gehennawu/dsh-service/user-jump.css",t.textContent="[data-dshsvc-user-jump]:hover,[data-dshsvc-user-jump]:active{background:var(--dsw-alias-button-floating-hover)!important}",document.head.appendChild(t),e.styleTag=t}}catch(e){}if(i(),null===e.observer){try{e.observer=new MutationObserver(()=>{i(),n()}),e.observer.observe(document.documentElement,{childList:!0,subtree:!0})}catch(t){e.observer=null}if(null===e.scrollHandler)try{e.scrollHandler=()=>{if("function"==typeof requestAnimationFrame){if(null!==e.rafId)return;e.rafId=requestAnimationFrame(()=>{e.rafId=null,n()})}else n()},document.documentElement.addEventListener("scroll",e.scrollHandler,!0)}catch(t){e.scrollHandler=null}}},stop:()=>{if(r(),null!==e.slotRO){try{e.slotRO.disconnect()}catch(e){}e.slotRO=null}if(null!==e.scrollHandler){try{document.documentElement.removeEventListener("scroll",e.scrollHandler,!0)}catch(e){}e.scrollHandler=null}if(null!==e.rafId){try{cancelAnimationFrame(e.rafId)}catch(e){}e.rafId=null}if(null!==e.observer){try{e.observer.disconnect()}catch(e){}e.observer=null}if(null!==e.btn){try{e.btn.remove()}catch(e){}e.btn=null}if(null!==e.styleTag){try{e.styleTag.remove()}catch(e){}e.styleTag=null}}}})();t.effect(()=>(Xa.start(),()=>Xa.stop()),"dsh-service user reply jump");const er=(({ctx:e,getModelDirectories:t})=>{const a={styleTag:null,observer:null,observerCreated:!1,unsubscribe:null,unsubscribeSessions:null,unsubscribeQuota:null,seat:null,lastProvider:null,lastSession:void 0,disposed:!1},r=()=>{try{const t=e.sessions;if(t&&t.list&&"function"==typeof t.list.getSnapshot){const e=t.list.getSnapshot();if(e&&"string"==typeof e.current&&""!==e.current)return e.current;if(e&&e.byId){const t=Object.values(e.byId).find(e=>(e?.retainedBy?.mainView??0)>0);if(t&&"string"==typeof t.id&&""!==t.id)return t.id;if(t&&"string"==typeof t.sessionId&&""!==t.sessionId)return t.sessionId;const a=Object.keys(e.byId);if(1===a.length)return a[0]}}}catch(e){}},n=()=>{if(a.disposed)return;const e=(()=>{const e=A();if(null===e)return null;try{return e.querySelector("[data-composer-seat]")}catch(e){return null}})();if(null===e)return void(a.seat=null);a.seat=e,r()!==a.lastSession&&(a.lastProvider=null,i(),o());const n=(()=>{const e=r();if(null==e)return null;try{const a=t();if(void 0===a||"function"!=typeof a.directoryFor)return null;const r=a.directoryFor(e),n=r&&r.store&&"function"==typeof r.store.getSnapshot?r.store.getSnapshot():null,s=n&&n.current?n.current.provider:void 0;return"string"==typeof s&&""!==s?s:null}catch(e){return null}})();if(n===a.lastProvider&&((e,t)=>{try{return null!=e&&"function"==typeof e.hasAttribute&&!0===e.hasAttribute(t)}catch(e){return!1}})(e,c))return;a.lastProvider=n;const s=null===n?null:f(n,{forComposer:!0});if(null===s)return x(e,d),x(e,c),w(e,u),void w(e,p);const l=1!==s.spec.c;k(e,u,m(s.spec,l));const g="number"==typeof s.spec.o&&s.spec.o>0?s.spec.o:1;1===g?w(e,p):k(e,p,`${(15*g).toFixed(2)}px`),y(e,d,s.slug),y(e,c,l?"mono":"color")},s=e=>{x(e,d),x(e,c),w(e,u),w(e,p)},i=()=>{null!==a.seat&&s(a.seat);const e=A();if(null!==e&&"function"==typeof e.querySelectorAll){let t=[];try{t=Array.from(e.querySelectorAll(`[${c}]`))}catch(e){t=[]}for(const e of t)s(e)}a.seat=null,a.lastProvider=null},o=()=>{if(null!==a.unsubscribe){try{a.unsubscribe()}catch(e){}a.unsubscribe=null}const e=r();if(a.lastSession=e,null!=e)try{const r=t();if(void 0===r||"function"!=typeof r.directoryFor)return;const s=r.directoryFor(e);if(s&&s.store&&"function"==typeof s.store.subscribe){const e=s.store.subscribe(()=>n());if(a.unsubscribe="function"==typeof e?e:null,"function"==typeof s.load)try{const e=s.load();e&&"function"==typeof e.catch&&e.catch(()=>{})}catch(e){}}}catch(e){}};return{start:()=>{const t=A();if(null===a.styleTag&&null!==t)try{const e=t.createElement("style");e.dataset.plugin="@gehennawu/dsh-service",e.dataset.pluginCss="@gehennawu/dsh-service/model-icons.css",e.textContent=b,t.head.appendChild(e),a.styleTag=e}catch(e){}if((()=>{if(null===a.unsubscribeQuota)try{if(void 0===g||"function"!=typeof g.subscribe)return;const e=g.subscribe(()=>{a.disposed||(a.lastProvider=null,n())});a.unsubscribeQuota="function"==typeof e?e:null}catch(e){}})(),(()=>{if(null===a.unsubscribeSessions)try{const t=e.sessions;if(!t||!t.list||"function"!=typeof t.list.subscribe)return;const s=t.list.subscribe(()=>{a.disposed||r()!==a.lastSession&&(a.lastProvider=null,i(),o(),n())});a.unsubscribeSessions="function"==typeof s?s:null}catch(e){}})(),o(),n(),null===a.observer&&null!==t&&"function"==typeof MutationObserver&&!a.observerCreated){a.observerCreated=!0;try{a.observer=new MutationObserver(()=>{null===a.seat||"function"!=typeof t.contains||t.contains(a.seat)||(a.seat=null,a.lastProvider=null),n()}),a.observer.observe(t.documentElement,{childList:!0,subtree:!0})}catch(e){a.observer=null}}},stop:()=>{if(a.disposed=!0,null!==a.unsubscribe){try{a.unsubscribe()}catch(e){}a.unsubscribe=null}if(null!==a.unsubscribeSessions){try{a.unsubscribeSessions()}catch(e){}a.unsubscribeSessions=null}if(null!==a.unsubscribeQuota){try{a.unsubscribeQuota()}catch(e){}a.unsubscribeQuota=null}if(null!==a.observer){try{a.observer.disconnect()}catch(e){}a.observer=null}if(i(),null!==a.styleTag){try{a.styleTag.remove()}catch(e){}a.styleTag=null}},apply:n,clear:i}})({ctx:t,getModelDirectories:Ge});t.effect(()=>{let e=!1;const t=()=>{const t=de("modelProviderIcons");t&&!e?(e=!0,er.start()):!t&&e&&(e=!1,er.stop())},a=X.subscribe(t);return t(),()=>{a(),e&&er.stop()}},"dsh-service model provider icons");const tr=ie({ctx:t,t:W,featureEnabled:de,createConversationNav:oe});t.effect(()=>{const e=X.subscribe(()=>tr.evaluate());return tr.evaluate(),()=>{e(),tr.dispose()}},"dsh-service mobile adaptation")},a.subagentLine={aggregateSubagentRoutes:Q,subagentRouteListText:J},a.fileEditor={id:E,extensions:S,selectViewerItem:N,editorExtensionMatches:O,attr:q,menuItemAttr:C},a.modelProviderIcons={resolve:f,dataUri:m,attr:d,seatAttr:c,sizeVar:p,basePx:15,css:b,slugs:Object.keys(i),providerCount:Object.keys(o).length,quotaAdaptedKind:v,quotaKindSlugs:h,quotaStore:g},t}});
|