@gehennawu/dsh-service 1.7.0 → 1.8.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.en.md +23 -6
- package/README.md +24 -7
- package/client.js +1 -1
- package/index.js +36 -1
- package/package.json +2 -2
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="@gehennawu/dsh-service/editor",i=["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"],o="data-dshsvc-editor-entry",l="data-dshsvc-editor-menu-item",d="[data-document-viewer-menu]",c=()=>{try{return"undefined"==typeof document||null===document?null:document}catch(e){return null}},u=(e,t)=>{try{return Array.from(e.querySelectorAll(t))}catch(e){return[]}},p=e=>String(e?.textContent??"").trim(),m=/[\u3040-\u30ff\u3400-\u4dbf\u4e00-\u9fff\uf900-\ufaff\uac00-\ud7af]/,g=(e,t)=>{if("string"!=typeof e)return e;const a=e.split(/\s*\/\s*/);if(2!==a.length)return e;const[r,n]=a;if(""===r||""===n)return e;const s=m.test(r);return s===m.test(n)?e:"zh"===t?s?r:n:s?n:r},h=e=>({borderRadius:e,cornerShape:"round"}),b=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 i.some(e=>a.endsWith("."+e)||a===e)},v=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(d);if(null!=e)return e}}}catch(e){}try{let t="function"==typeof e.closest?e.parentElement:e.parentNode;const a=c();for(;null!=t&&t!==a&&"function"==typeof t.querySelector;){const e=t.querySelector(d);if(null!=e)return e;t=t.parentNode}}catch(e){}return null},f=new Set;let y={isAlive:()=>!1,dispose:()=>{}};const k=(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=()=>u(e,'[role="menuitem"], [role="option"]').find(e=>!((e,t)=>{try{return"function"==typeof e?.getAttribute&&null!==e.getAttribute(t)}catch(e){return!1}})(e,l)&&t(p(e))),i=e=>{try{e.click()}catch(e){return!1}return!0};let o=0;try{o=u(e,d).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 c=s();if(void 0!==c)return i(c);let m=12;const g=()=>{m<=0||!n()||(m-=1,"function"==typeof setTimeout&&setTimeout(()=>{if(n()){try{const e=s();if(void 0!==e)return void i(e)}catch(e){}g()}},60))};return g(),!1},x={"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.hint":"查看、导出、归档与会话搜索;删除仅限已归档。","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.navToggleHint":"默认关闭;开启后在设置页左侧标签列显示会话管理入口","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.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.turnTail.label":"子代理模型:","subagent.turnTail.countOne":"子代理 ×1","subagent.turnTail.countMany":"子代理 ×{count}","subagent.turnTail.unknown":"(模型未记录)","subagent.dock.title":"输入框底部显示子代理信息","subagent.dock.desc":"在对话页输入框下方常驻一行本会话子代理实际使用的模型(20 秒刷新,不受事件折叠影响)。关闭后仅保留回合尾部小字行。","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.issue.broken":"{count} 个插件可能不兼容","plugin.compat.issue.declared":"{count} 个插件仅声明残留(代码未引用)","plugin.compat.issue.unknown":"{count} 个插件未能扫描","plugin.compat.declared":"声明了已移除的接口但代码未引用——官方加载器对缺失供应商静默跳过,当前无害,可提示作者清理","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.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.dragHint":"可通过拖拽或点击上下箭头调整标签顺序;关闭开关可隐藏不常用标签。","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.quota.desc":"查询各供应商额度、余额与重置时间;额度圆环跟随会话模型供应商,查询由宿主节流。","page.diagnostics.desc":"健康检查与运行环境诊断,异常时给出处理建议。","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-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.1)","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.structure":"token 结构","usage.structureHint":"按日期展示输入、输出和缓存 token。","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} 次","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.poll":"自动查询","quota.poll.manual":"仅手动","quota.poll.minute":"{count} 分钟","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.panel.used":"已用","quota.panel.remaining":"剩余","quota.ring.label":"额度查询","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.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.card.moveUp":"上移","quota.card.moveDown":"下移","quota.reorder":"调整排序","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.zai":"非高峰时段模型调用按基础积分的 50% 抵扣。高峰时段:每周一至周五 14:00–18:00(UTC+8);其余时间为非高峰时段,周六和周日全天空闲。","features.fileEditor":"右栏文件编辑","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":"操作失败,请重试。"},w={"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.hint":"View, export, archive, and search sessions; deletion is limited to archived ones.","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.navToggleHint":"Disabled by default; shows the session manager entry at the bottom of the settings sidebar when enabled","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.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.turnTail.label":"Subagent models: ","subagent.turnTail.countOne":"1 subagent","subagent.turnTail.countMany":"{count} subagents","subagent.turnTail.unknown":" (models not recorded)","subagent.dock.title":"Show subagent info under the composer","subagent.dock.desc":"Keeps a session-level line under the composer listing the models your subagents actually used (20s refresh, unaffected by compaction). When off, only the per-turn tail line remains.","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.issue.broken":"{count} plugin(s) possibly incompatible","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.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.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.dragHint":"Drag items or click the arrows to reorder; toggle off to hide unused tabs.","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.quota.desc":"Quota, balance, and reset times across providers; the ring follows the session provider and queries are host-throttled.","page.diagnostics.desc":"Health checks and runtime environment diagnostics.","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-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.1)","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.structure":"token structure","usage.structureHint":"Input, output, and cache token by date.","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)","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":'Off by default; when enabled, a "Quota lookup" entry appears at the bottom of the settings left navigation',"quota.poll":"Auto query","quota.poll.manual":"Manual only","quota.poll.minute":"{count} min","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.panel.used":"Used","quota.panel.remaining":"Remaining","quota.ring.label":"Quota lookup","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.expires":"expires {date}","quota.resetCard.expired":"expired","quota.resetCard.edit":"Add reset card","quota.advanced":"Advanced","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.card.moveUp":"Move up","quota.card.moveDown":"Move down","quota.reorder":"Reorder","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. All other times are off-peak, including all day Saturday and Sunday.","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","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."},E="%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",S="%3C/svg%3E",q=e=>'-webkit-mask:url("data:image/svg+xml,'+E+e+S+'") center/contain no-repeat;mask:url("data:image/svg+xml,'+E+e+S+'") center/contain no-repeat',C={service:[["path",{d:"M4 8h16"}],["path",{d:"M4 16h16"}],["circle",{cx:"9",cy:"8",r:"2.5",fill:"black"}],["circle",{cx:"15",cy:"16",r:"2.5",fill:"black"}]],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"}]]},T=e=>e.map(([e,t])=>"%3C"+e+Object.entries(t).map(([e,t])=>` ${e}=%27${t}%27`).join("")+"/%3E").join(""),A=T(C.service),I=T(C.quota),O=T(C.restart),z=T(C.sessions);function R({name:e}){const t=C[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 M=()=>{};function N(e){const t=e?.turn?.data?.get?.("turn-process");if(null!==t&&"object"==typeof t){const e=Number(t.turn),a=Number(t.subagentCount);return!Number.isFinite(e)||!Number.isFinite(a)||a<=0?null:{turn:e,subagentCount:a}}if("string"!=typeof t)return null;const a=t.split("|");if(""===a[0])return null;const r=Number(a[0]),n=Number(a[8]);return!Number.isFinite(r)||!Number.isFinite(n)||n<=0?null:{turn:r,subagentCount:n}}function j(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 H(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 D(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}:{}}}return a.inject=["slots","connection","timer","locale","sessions","settingsScope"],a.apply=function(t){const{useState:a,useEffect:m,useRef:E}=r,S=(e,a)=>Promise.resolve(t.connection.rpc.call("/dsh-service",e,a)).then(D),C=new Map,T=new Map,W=new Map,$=(e,t=!1)=>{if("string"!=typeof e||""===e)return Promise.resolve(new Map);const a=Date.now();if(!t&&a-(T.get(e)??0)<1e4)return Promise.resolve((e=>{const t=C.get(e);return void 0===t?new Map:t.byTurn})(e));let r=W.get(e);return void 0===r&&(r=S("subagent-dispatches",{parentId:e,limit:400}).then(t=>{const a=t&&!0===t.ok&&Array.isArray(t.value?.records)?t.value.records:[],r=new Map,n=[];for(const e of a){if(null===e||"object"!=typeof e)continue;n.push(e);const t="number"==typeof e.turn&&Number.isFinite(e.turn)?e.turn:void 0;if(void 0===t)continue;let a=r.get(t);void 0===a&&(a=[],r.set(t,a)),a.push(e)}return C.set(e,{byTurn:r,records:n}),T.set(e,Date.now()),r}).catch(()=>(T.set(e,Date.now()),null)),W.set(e,r),r.finally(()=>W.delete(e)).catch(()=>{})),r};function L(e){const t=ke(),[n,s]=a("");return m(()=>{let a=!1;const r=e.matched&&"number"==typeof e.matched.turn?e.matched.turn:void 0,n="string"==typeof e.sessionId?e.sessionId:void 0;if(void 0!==r&&void 0!==n)return $(n).then(i=>{if(a)return;const o=C.get(n),l=(null===i?void 0===o?new Map:o.byTurn:i).get(r),d=j(l);if(0===d.length){if(null===i&&void 0===o)return void s("");const a=Number.isFinite(e.matched.subagentCount)&&e.matched.subagentCount>0?String(e.matched.subagentCount):String(l?.length??1);return void s(`${t("1"===a?"subagent.turnTail.countOne":"subagent.turnTail.countMany",{count:a})}${t("subagent.turnTail.unknown")}`)}s(`${t("subagent.turnTail.label")}${H(d)}`)}).catch(()=>{a||s("")}),()=>{a=!0};s("")},[e.matched&&e.matched.turn,e.sessionId]),""===n?null:r.createElement("div",{"data-testid":"subagent-models-turn-tail","data-dsh-service-subagent-models":!0,style:{fontSize:"12px",lineHeight:"18px",color:"var(--dsh-svc-text-muted, var(--dsw-alias-label-secondary, #6b7280))",padding:"2px 0",whiteSpace:"nowrap",overflow:"hidden",textOverflow:"ellipsis",maxWidth:"100%"}},n)}function B(e){const n=ke(),[s,i]=a("");return m(()=>{let a=!1;const r="string"==typeof e.sessionId?e.sessionId:void 0;if(void 0===r)return void i("");const s=()=>{const e=C.get(r),t=j(void 0===e?[]:e.records);i(0===t.length?"":`${n("subagent.turnTail.label")}${H(t)}`)},o=()=>$(r).then(e=>!a&&(s(),null!==e)).catch(()=>(a||i(""),!1));o();const l=()=>{a||($(r,!0).then(e=>{a||s()}).catch(()=>{a||i("")}),d=t.timer?.timeout?.(l,2e4))};let d;return Promise.resolve(o()).then(e=>{!a&&e&&(d=t.timer?.timeout?.(l,2e4))}),()=>{a=!0,"function"==typeof d&&d()}},[e.sessionId]),""===s?null:r.createElement("div",{"data-testid":"subagent-models-dock","data-dsh-service-subagent-models-dock":!0,style:{fontSize:"12px",lineHeight:"18px",color:"var(--dsh-svc-text-muted, var(--dsw-alias-label-secondary, #6b7280))",padding:"2px 4px",whiteSpace:"nowrap",overflow:"hidden",textOverflow:"ellipsis",maxWidth:"100%"}},s)}let P;"undefined"!=typeof document&&document.head&&(P=document.createElement("style"),P.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{"+q(A)+"}","[data-dsh-service-quota-nav]::before{"+q(I)+"}","[data-dsh-service-sessions-nav]::before{"+q(z)+"}","[data-dsh-service-restart-nav]::before{"+q(O)+"}","@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}","[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(P)),t.effect(()=>()=>{P&&P.remove()},"dsh-service theme styles"),t.effect(()=>t.locale.register(n,{zh:x,en:w}),"dsh-service dictionaries");const _=t.locale.bind(n),F=()=>"zh"===t.locale?.getSnapshot?.()?.active?"zh":"en",U=e=>{const t=e?.options;if(!t)return e;const a=t.label;if("string"==typeof a){const r=g(a,F());return r===a?e:Object.assign({},e,{options:Object.assign({},t,{label:()=>r})})}return"function"==typeof a?Object.assign({},e,{options:Object.assign({},t,{label:()=>g(a(),F())})}):e},K=(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??""},V={healthDiagnostics:!0,modelUsage:!0,quotaLookup:!0,backupMaintenance:!0,taskNotifications:!0,healthz:!0,skillManager:!0,subagentRoute:!0,subagentModelsDock:!0,mobileAdaptation:!1,sessionManager:!0,fileEditor:!0},G=t.settingsScope.bind({namespace:n}),Y=()=>G.getSnapshot(),J=e=>!1!==Object.assign({},V,Y().value||{})[e],Q=()=>{const[e,t]=r.useState(Y());return r.useEffect(()=>G.subscribe(()=>t(Y())),[]),{snapshot:e,value:Object.assign({},V,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)}}M()};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 X="dsh-service-settings-nav-order",Z="dsh-service-settings-nav-hidden",ee=/^[A-Za-z0-9._-]{1,64}$/,te=(e,t,a={})=>{try{const r=localStorage.getItem(e);if(!r)return t;const n=JSON.parse(r);return!Array.isArray(n)||n.length>64?t:n.every(e=>"string"==typeof e&&ee.test(e))?!0===a.excludeHost?n.filter(e=>"dsh-service"!==e):n:t}catch(e){return t}},ae=()=>te(X,null),re=e=>{try{null===e?localStorage.removeItem(X):localStorage.setItem(X,JSON.stringify(e))}catch(e){}},ne=()=>te(Z,[],{excludeHost:!0}),se=e=>{try{if(null===e||0===e.length)localStorage.removeItem(Z);else{const t=e.filter(e=>"dsh-service"!==e);localStorage.setItem(Z,JSON.stringify(t))}}catch(e){}};let ie=0;const oe=new Set,le=()=>{ie++;for(const e of oe)try{e()}catch(e){}try{if("function"==typeof t.slots?.register){const e=t.slots.register({name:"settings.section",id:"__dsh_nav_bump__"},()=>null);"function"==typeof e&&e()}}catch(e){}M()};let de=null,ce=null;if(t.slots&&"function"==typeof t.slots.entries){const e=t.slots.entries.bind(t.slots);de=e;const a="function"==typeof t.slots.getVersion?t.slots.getVersion.bind(t.slots):null,r="function"==typeof t.slots.subscribe?t.slots.subscribe.bind(t.slots):null;t.slots.entries=function(t){const a=e(t);if("settings.section"!==t)return a;const r=ae(),n=ne(),s=new Set(n),i=a.filter(e=>{const t=e.options?.id??e.options?.key??"";return"__dsh_nav_bump__"!==t&&("dsh-service"===t||!s.has(t))}).map(U);return r&&0!==r.length?i.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})})}):i},a&&(t.slots.getVersion=function(e){const t=a(e);return"settings.section"===e?t+1e5*ie:t});const n=new Set;r&&(t.slots.subscribe=function(e,t){if("settings.section"===e){oe.add(t);const a=r(e,t),s=()=>{n.delete(s)&&(oe.delete(t),"function"==typeof a&&a())};return n.add(s),s}return r(e,t)}),ce=()=>{t.slots.entries=e,a&&(t.slots.getVersion=a),r&&(t.slots.subscribe=r);for(const e of Array.from(n))e();oe.clear()}}t.effect(()=>()=>{ce&&ce()},"dsh-service settings nav slot wrapping");const ue=()=>{let e=[];return de?e=de("settings.section"):"function"==typeof t.slots?.entries&&(e=t.slots.entries("settings.section")),e.filter(e=>"__dsh_nav_bump__"!==(e.options?.id??e.options?.key))},pe=e=>{if(!e)return"";const t=e.label;if("function"==typeof t)try{const e=t();if(e)return g(String(e),F())}catch(e){}else if("string"==typeof t&&t)return g(t,F());return String(e.id??e.key??"")};M=()=>{if("undefined"==typeof document||!document.body)return;const e="function"==typeof document.querySelector?document.querySelector('[role="dialog"] nav'):null;if(!e)return;fe();const t="function"==typeof e.querySelectorAll?e.querySelectorAll("button"):[];if(!t||0===t.length)return;const a=ne(),r=new Set(a),n=ae(),s=ue(),i=new Map;for(const e of s){const t=e.options?.id??e.options?.key??"";if(!t||"__dsh_nav_bump__"===t)continue;const a=pe(e.options);a&&i.set(a.trim(),t),i.set(t,t)}for(const e of t){let t=null;const a=t=>"function"==typeof e.hasAttribute?e.hasAttribute(t):!(!e.attrs||"function"!=typeof e.attrs.has)&&e.attrs.has(t);if(a("data-dsh-service-nav")?t="dsh-service":a("data-dsh-service-quota-nav")?t="dsh-service-quota":a("data-dsh-service-restart-nav")?t="dsh-service-restart":a("data-dsh-service-sessions-nav")&&(t="dsh-service-sessions"),!t){const a="function"==typeof e.querySelector?e.querySelector("span"):null,r=(a?a.textContent:e.textContent||"").trim();t=i.get(r)}if(t&&e.style)if("dsh-service"===t?e.style.display="":r.has(t)?e.style.display="none":e.style.display="",n&&n.length>0){const a=n.indexOf(t);e.style.order=-1!==a?String(a):"9999"}else e.style.order=""}const o="function"==typeof e.querySelector?e.querySelector("div"):null;o&&o.style&&n&&n.length>0&&(o.style.display="flex",o.style.flexDirection="column")};let me=!1,ge=!1;const he=(e,t)=>{S("config-set",{section:"settingsNav",value:{order:e,hidden:t}}).then(e=>{e&&!0===e.ok||(ge=!0)}).catch(()=>{ge=!0})},be=()=>{S("config-set",{section:"settingsNav",value:null}).then(e=>{e&&!0===e.ok||(ge=!0)}).catch(()=>{ge=!0})},ve=()=>{const e=ae(),t=ne();e&&e.length>0||t&&t.length>0?he(e,t):be()},fe=()=>{me?ge&&(ge=!1,ve()):(me=!0,ye())},ye=async()=>{try{const e=await S("config-get",{section:"settingsNav"});if(!e||!0!==e.ok||void 0===e.value)return void(me=!1);if(ge)return ge=!1,void ve();if(null!==e.value&&"object"==typeof e.value&&(Array.isArray(e.value.order)||Array.isArray(e.value.hidden))){const t=Array.isArray(e.value.order)?e.value.order:null,a=Array.isArray(e.value.hidden)?e.value.hidden:[];return re(t),se(a),void le()}ve()}catch(e){me=!1}},ke=()=>{const[,e]=a(t.locale.getSnapshot());return m(()=>t.locale.subscribe(()=>e(t.locale.getSnapshot())),[]),_},xe={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"},we=e=>"primary"===e?{...xe,background:"var(--dsh-svc-brand)",borderColor:"var(--dsh-svc-brand)",color:"var(--dsh-svc-brand-text)"}:"danger"===e?{...xe,background:"var(--dsh-svc-danger)",borderColor:"var(--dsh-svc-danger)",color:"var(--dsh-svc-brand-text)"}:"dangerGhost"===e?{...xe,background:"transparent",color:"var(--dsh-svc-danger)",borderColor:"var(--dsh-svc-danger)"}:"brandGhost"===e?{...xe,background:"transparent",color:"var(--dsh-svc-brand)",borderColor:"var(--dsh-svc-brand)"}:"ghost"===e?{...xe,background:"transparent",color:"var(--dsh-svc-text)",borderColor:"var(--dsh-svc-border-strong)"}:"neutral"===e?{...xe,background:"var(--dsh-svc-page-bg)",color:"var(--dsh-svc-text)",borderColor:"var(--dsh-svc-border-strong)"}:{...xe,background:"var(--dsh-svc-content-bg)",color:"var(--dsh-svc-text)",borderColor:"var(--dsh-svc-border-strong)"},Ee=e=>Object.assign({},xe,{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),Se=(e,t)=>Object.assign({display:"inline-flex",alignItems:"center",flex:"none",fontSize:"10px",lineHeight:"16px",padding:"1px 6px",...h(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),qe=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),Ce=["overview","usage","quota","diagnostics","maintenance","configuration"],Te={overview:"tabs.overview",usage:"tabs.usage",quota:"tabs.quota",diagnostics:"tabs.health",maintenance:"tabs.maintenance",configuration:"tabs.configuration"},Ae={usage:"modelUsage",quota:"quotaLookup",diagnostics:"healthDiagnostics"},Ie=["sessions","skills","subagent","backup","restart"],Oe={sessions:"tabs.sessions",skills:"tabs.skills",subagent:"tabs.subagent",backup:"tabs.backup",restart:"tabs.restart"},ze={sessions:"sessionManager",skills:"skillManager",subagent:"subagentRoute",backup:"backupMaintenance"},Re=e=>Ie.filter(t=>void 0===ze[t]||!1!==e[ze[t]]).map(e=>({id:e,labelKey:Oe[e]})),Me=(e,t)=>{const a=Re(t);return 0===a.length?null:a.some(t=>t.id===e)?e:a[0].id},Ne=[{id:"features",labelKey:"tabs.features"},{id:"notifications",labelKey:"tabs.notifications"},{id:"navOrder",labelKey:"tabs.navOrder"}],je={quota:"page.quota.desc",diagnostics:"page.diagnostics.desc",configuration:"page.configuration.desc"};function He({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 De({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(R,{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",...h("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",...h("999px"),background:"var(--dsw-alias-state-warn-primary)",color:"var(--dsh-svc-brand-text)",fontWeight:700}},e.badge.text):null)}))}let We=!1,$e=!0,Le=!0,Be=!0;try{We="true"===localStorage.getItem("dsh-service-notify")}catch(e){}try{$e="false"!==localStorage.getItem("dsh-service-notify-done")}catch(e){}try{Le="false"!==localStorage.getItem("dsh-service-notify-input")}catch(e){}try{Be="false"!==localStorage.getItem("dsh-service-notify-bell")}catch(e){}const Pe=new Set,_e=new Set,Fe=(e,t)=>{try{localStorage.setItem(e,t?"true":"false")}catch(e){}},Ue=()=>{for(const e of Pe)e()},Ke=e=>{Be=!0===e,Fe("dsh-service-notify-bell",Be),(()=>{for(const e of _e)e()})()},Ve=()=>{const[,e]=a(0),[t,n]=a(We),[s,i]=a($e),[o,l]=a(Le),[d,c]=a(Be);return r.useEffect(()=>{const t=()=>{n(We),i($e),l(Le),c(Be),e(e=>e+1)};return Pe.add(t),_e.add(t),()=>{Pe.delete(t),_e.delete(t)}},[]),{enabled:t,done:s,input:o,bell:d,setEnabled:e=>{return We=t=e,Fe("dsh-service-notify",t),void Ue();var t},setDone:e=>{return $e=t=e,Fe("dsh-service-notify-done",t),void Ue();var t},setInput:e=>{return Le=t=e,Fe("dsh-service-notify-input",t),void Ue();var t},setBell:Ke}},Ge=({storageKey:e,legacyStorageKey:r,sectionId:n,order:s,labelKey:i,feature:o,renderContent:l})=>{let d=!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}}d="true"===t}catch(e){}let c=null;const u=new Set,p=()=>{c&&(c(),c=null),d&&(void 0===o||J(o))&&(c=t.slots.register({name:"settings.section",id:n,order:s,label:()=>_(i)},l))},g=t=>{d=!0===t;try{localStorage.setItem(e,d?"true":"false")}catch(e){}p();for(const e of u)e()};return{sync:p,setEnabled:g,useEnabled:()=>{const[e,t]=a(d);return m(()=>{const e=()=>t(d);return u.add(e),t(d),()=>u.delete(e)},[]),[e,g]},disposeEntry:()=>{c&&(c(),c=null)}}},Ye=Ge({storageKey:"dsh-service-shortcut-restart",legacyStorageKey:"dsh-service-restart-nav",sectionId:"dsh-service-restart",order:499,labelKey:"nav.restart",renderContent:()=>r.createElement(Jt,null)}),Je=Ge({storageKey:"dsh-service-shortcut-quota",legacyStorageKey:"dsh-service-quota-nav",sectionId:"dsh-service-quota",order:498,labelKey:"tabs.quota",feature:"quotaLookup",renderContent:()=>r.createElement(Ya,null)}),Qe=Ge({storageKey:"dsh-service-shortcut-sessions",legacyStorageKey:"dsh-service-sessions-nav",sectionId:"dsh-service-sessions",order:495,labelKey:"tabs.sessions",feature:"sessionManager",renderContent:()=>r.createElement(sr,null)});let Xe=null,Ze=null,et=null,tt=null,at="",rt=!1,nt=null,st=null,it=!1;const ot="dsh-service-skills-batch-pending",lt=new Set,dt=()=>{for(const e of lt)e()},ct=e=>{try{e?localStorage.setItem(ot,"true"):localStorage.removeItem(ot)}catch(e){}},ut=e=>{ct("planned"===e||"running"===e)},pt=()=>{null!==nt&&(clearInterval(nt),nt=null)},mt=(e=!0)=>{if(null!==Xe&&"running"===Xe.phase&&J("skillManager")&&null===nt){const t=async()=>{try{const e=await S("skills-batch-status",{});if(!e.ok)return;const t=null!==Xe?Xe.phase:null;Xe=e.value,ut(e.value.phase),"running"===t&&"running"!==e.value.phase&&(pt(),rt=!0),dt()}catch(e){}};e&&t(),nt=setInterval(()=>{t()},2e3)}},gt=async()=>{if(null!==et)return et;try{const e=await S("skills-models",{});if(!e.ok)return et=[],et;et=e.value.models??[],null===tt&&(tt=Ua(et,e.value.current))}catch(e){et=[]}return et},ht=()=>it?Promise.resolve(Xe):(null!==st||(st=(async()=>{try{const e=await S("skills-batch-status",{});e.ok&&(it=!0,ut(e.value.phase),"idle"!==e.value.phase&&(Xe=e.value,mt(!1),dt()))}catch(e){}return Xe})().finally(()=>{st=null})),st),bt=()=>{const[,e]=a(0);return m(()=>{const t=()=>e(e=>e+1);return lt.add(t),()=>lt.delete(t)},[]),{batch:Xe,plan:Ze,models:et,modelItem:tt,error:at}};t.effect(()=>{const e=G.subscribe(()=>{J("skillManager")||pt()});return()=>{e(),pt()}},"dsh-service skills batch polling lifecycle"),(()=>{try{return"true"===localStorage.getItem(ot)}catch(e){return!1}})()&&ht();const vt={approval:"notification.kind.approval","plan-review":"notification.kind.plan-review",question:"notification.kind.question"},ft=(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){}},yt=()=>{try{if("function"==typeof t.get)return t.get("modelDirectories")}catch(e){}},kt={anyRunning:!1,runningSessionIds:new Set};if(t.sessions&&"function"==typeof t.sessions.list?.subscribe){const e=new Map;let a=!1,r=null,n=null;const s=()=>{const r=t.sessions.list.getSnapshot();if(r&&r.byId)if(kt.runningSessionIds=new Set(Object.entries(r.byId).filter(([,e])=>!0===e.running).map(([e])=>e)),kt.anyRunning=kt.runningSessionIds.size>0,a){for(const[t,a]of Object.entries(r.byId)){const r={running:!0===a.running,pending:void 0!==a.pendingInteraction},n=e.get(t);if(void 0!==n&&(n.running&&!r.running&&"subagent"!==a.origin&&J("taskNotifications")&&We&&$e&&ft(_("notification.doneTitle"),_("notification.doneBody",{title:a.displayTitle||t})),!n.pending&&r.pending&&J("taskNotifications")&&We&&Le)){const e=vt[a.pendingInteraction],r=e?_(e):String(a.pendingInteraction);ft(_("notification.inputTitle"),_("notification.inputBody",{title:a.displayTitle||t,kind:r}))}e.set(t,r)}for(const t of[...e.keys()])t in r.byId||e.delete(t);kt.anyRunning&&pa()}else{a=!0;for(const[t,a]of Object.entries(r.byId))e.set(t,{running:!0===a.running,pending:void 0!==a.pendingInteraction})}},i=()=>{null!==r&&(r(),r=null),null!==n&&(n(),n=null),e.clear(),a=!1,kt.anyRunning=!1,kt.runningSessionIds=new Set},o=()=>{J("taskNotifications")||J("quotaLookup")?null===r&&(r=t.sessions.list.subscribe(()=>s()),n=t.on("connection/reset",()=>{e.clear(),a=!1}),s()):i()};o();const l=G.subscribe(o);t.effect(()=>()=>{l(),i()},"dsh-service: shared session observation")}const xt=new Set;let wt={status:"idle",elapsedMs:0},Et=0;const St=e=>{wt=e;for(const t of xt)t(e)},qt=new Set;let Ct={stage:0,activity:null,busy:!1,error:null};const Tt=e=>{Ct=e;for(const t of qt)t(e)},At=()=>{const[e,t]=a(Ct);return m(()=>(qt.add(t),t(Ct),()=>qt.delete(t)),[]),e},It=new Set;let Ot=null;const zt=()=>{const[e,t]=a(Ot);return m(()=>(It.add(t),t(Ot),()=>It.delete(t)),[]),e},Rt=new Set;let Mt=null;let Nt=null;const jt=()=>(null===Nt&&(Nt=S("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=>{Ot=e;for(const t of It)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!==Mt&&(e=>{Mt=e;for(const t of Rt)t(e)})(a)})(e.value)),e)).catch(()=>(Nt=null,null))),Nt);let Ht=!1;const Dt=async()=>{Tt({...Ct,busy:!0,error:null});try{const e=await S("activity",{});if(e&&!1===e.ok)throw console.error("dsh-service: activity check failed",e.error),new Error(_("error.activity"));const t=e&&e.value?e.value:{hasActive:!1,items:[]};Tt({...Ct,activity:t,stage:t.hasActive?3:1,busy:!1,error:null})}catch(e){Tt({...Ct,error:e&&e.message?String(e.message):String(e),stage:0,busy:!1})}},Wt=async e=>{Tt({...Ct,busy:!0,error:null});try{const t=await S("web",{force:!0===e});if(t&&!1===t.ok){if("active-work"===t.error&&t.value)return void Tt({...Ct,activity:t.value,stage:3,busy:!1,error:null});throw console.error("dsh-service: restart failed",t.error),new Error(_("error.restart"))}const a=t&&t.value?t.value.instanceId:void 0;if("string"!=typeof a||0===a.length)throw new Error(_("error.instance"));Tt({...Ct,stage:2,busy:!1,error:null}),$t(a).catch(e=>console.error("dsh-service: recovery failed",e))}catch(e){Tt({...Ct,error:e&&e.message?String(e.message):String(e),stage:0,busy:!1})}},$t=async e=>{const a=++Et;let r=0,n=1e3;for(St({status:"waiting",elapsedMs:r});r<6e4&&a===Et;){const s=Math.min(n,6e4-r);try{await t.timer.timeout(s)}catch(e){return}if(a!==Et)return;r+=s,St({status:"waiting",elapsedMs:r});try{const t=await S("version",{}),a=t&&t.ok?t.value&&t.value.instanceId:void 0;if("string"==typeof a&&a.length>0&&a!==e)return void window.location.reload()}catch(e){}if(r>=6e4)return void St({status:"timeout",elapsedMs:r});n=Math.min(2*n,1e4)}};t.effect(()=>()=>{Et+=1,xt.clear(),qt.clear(),It.clear()},"dsh-service recovery");const Lt="@deepseek-ai/dsh",Bt=(e,t)=>"string"==typeof t&&0!==t.length&&/^[0-9A-Za-z.+_-]+$/.test(t)?`${e}${t}`:null,Pt=(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)},_t=(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||"—"),Pt(t,"npmjs",Bt(`https://www.npmjs.com/package/${Lt}/v/`,a)),Pt(t,"npmmirror",Bt(`https://www.npmmirror.com/package/${Lt}/home?version=`,a))),Ft="0.1.6-alpha.2",Ut=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},Kt=e=>/^\d+$/.test(e)?Number(e):e,Vt=(e,t)=>{const a=Ut(e),r=Ut(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=Kt(a.pre[e]),n=Kt(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 Gt(){const e=(()=>{const[e,t]=a(wt);return m(()=>(xt.add(t),t(wt),()=>xt.delete(t)),[]),e})(),t=ke();if("idle"===e.status)return null;const n="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(n?"recovery.timeout.title":"recovery.waiting.title")),r.createElement("p",{style:{margin:0,fontSize:"13px",lineHeight:1.7,color:"var(--dsw-alias-label-secondary)"}},n?t("recovery.timeout.body"):t("recovery.waiting.body",{seconds:Math.floor(e.elapsedMs/1e3)})),n?r.createElement("button",{style:Object.assign({},Ee(),{marginTop:"16px",padding:"7px 16px"}),onClick:()=>window.location.reload()},t("recovery.manual")):null))}function Yt(){return r.createElement(Gt,null)}function Jt({showNavToggle:e}){const t=ke(),a=At(),n=zt();m(()=>{jt()},[]);const[s,i]=Ye.useEnabled(),o=we("danger"),l=we("dangerGhost"),d=we("ghost"),c={color:"var(--dsw-alias-label-secondary)",fontSize:"12px",marginTop:"8px",lineHeight:1.5},u={padding:"4px 0 14px",marginBottom:"12px",color:"var(--dsw-alias-label-primary)"},p=qe(),g={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:u},r.createElement("div",{style:g},t("restart.title")),r.createElement("p",{style:{margin:0,fontSize:"13px"}},t("restart.sent")),r.createElement("p",{style:c},t(null!==n&&!0===n.manualStartLikely?"restart.sentManualHint":"restart.sentHint")));const b={agent:t("activity.agent"),job:t("activity.job"),terminal:t("activity.terminal")},v=a.activity&&Array.isArray(a.activity.items)?a.activity.items:[],f=null!==n&&!0===n.manualStartLikely?r.createElement("p",{"data-testid":"restart-manual-warn",style:Object.assign({},c,{color:"var(--dsw-alias-state-warn-primary)",margin:"6px 0 0"})},t("restart.manualWarn")):null,y=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:v.length})),r.createElement("ul",{style:{margin:0,paddingLeft:"20px",fontSize:"12px",lineHeight:1.7}},v.map(e=>r.createElement("li",{key:e.type+":"+e.id},t("activity.item",{type:b[e.type]||e.type,label:e.label,status:e.status}))))):null;return r.createElement("div",{"data-testid":"restart-card",style:u},r.createElement("div",{style:g},t("restart.title")),r.createElement("div",{"data-testid":"restart-region",style:p},r.createElement("p",{style:{margin:0,fontSize:"13px"}},t("restart.description")),f,y,r.createElement("div",{style:{display:"flex",alignItems:"center",gap:"8px",marginTop:"12px",flexWrap:"wrap"}},0===a.stage?r.createElement("button",{style:l,"data-variant":"dangerGhost",onClick:Dt,disabled:a.busy},t(a.busy?"update.checking":"restart.button")):1===a.stage?[r.createElement("button",{key:"confirm",style:o,"data-variant":"danger",onClick:()=>Wt(!1),disabled:a.busy},t(a.busy?"restart.sending":"restart.confirm")),r.createElement("button",{key:"cancel",style:d,onClick:()=>Tt({...Ct,activity:null,stage:0,busy:!1,error:null}),disabled:a.busy},t("restart.cancel"))]:3===a.stage?[r.createElement("button",{key:"force",style:o,"data-variant":"danger",onClick:()=>Wt(!0),disabled:a.busy},t(a.busy?"restart.sending":"restart.force")),r.createElement("button",{key:"cancel",style:d,onClick:()=>Tt({...Ct,activity:null,stage:0,busy:!1,error:null}),disabled:a.busy},t("restart.cancel"))]:null),1===a.stage?r.createElement("p",{style:c},t("restart.idleHint")):null,a.error?r.createElement("p",{style:Object.assign({},c,{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:c},t("restart.navToggleHint"))),r.createElement("button",{type:"button",role:"switch","data-testid":"restart-nav-switch","aria-checked":String(s),onClick:()=>i(!s),style:{width:"34px",height:"20px",...h("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",...h("50%"),background:s?"#fff":"var(--dsw-alias-label-tertiary)"}}))):null))}const Qt={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){}}},Xt="dsh-service-quota-poll",Zt=[0,1,2,5,10],ea=["opencode-go","zai-coding-cn","openrouter","kimi","siliconflow","deepseek","stepfun","stepfun-step-plan","xiaomi-token-plan-cn","cliproxy","command-goat"];function ta(){try{const e=Number.parseInt(localStorage.getItem(Xt),10);return Zt.includes(e)?e:0}catch(e){return 0}}const aa="dsh-service-quota-card-order";let ra=null,na=null;function sa(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 ia(e={providers:[]}){const a=sa(e);return null!==ra?(r=na,n=a,na="all"===r?.scope||"all"===n?.scope?{scope:"all"}:sa({providers:[...r?.providers??[],...n?.providers??[]]}),ra):(ra=Promise.resolve().then(async()=>{try{const e=await S("quota",a);if(!0===e?.ok&&e.value&&"object"==typeof e.value&&Array.isArray(e.value.providers))return Qt.publish(e.value),function(e,a={providers:[]}){Array.isArray(e?.providers)&&e.providers.some(e=>!0===e.adapted&&!0===e.refreshing)&&0!==ca.refs?null!==la.dispose||la.pulls>=da.length||(la.dispose=t.timer.timeout(()=>{la.dispose=null,ia(a)},da[la.pulls]),la.pulls+=1):la.pulls=0}(e.value,a),!0}catch(e){}return!1}).finally(()=>{ra=null;const e=na;na=null,null!==e&&ia(e)}),ra);var r,n}function oa(){const e=yt();if(void 0===e||"function"!=typeof e.directoryFor)return[];const t=[];for(const a of kt.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 la={pulls:0,dispose:null},da=[800,2400,4800,8e3,12e3],ca={refs:0,allRefs:0,nextDispose:null,running:!1,onVisible:void 0},ua=()=>"undefined"!=typeof document&&"hidden"===document.visibilityState;function pa(){if(!J("quotaLookup")||0===ca.refs||null!==ca.nextDispose||ta()<=0)return;const e=ta();ca.nextDispose=t.timer.timeout(()=>{ca.nextDispose=null,ma()},6e4*e)}function ma(){if(!J("quotaLookup")||0===ca.refs||ca.running)return;const e=ca.allRefs>0?{scope:"all"}:{providers:oa()};"all"!==e.scope&&0===e.providers.length||(ca.running=!0,Promise.resolve(ia(e)).catch(()=>!1).then(()=>{ca.running=!1,pa()}))}function ga(e={}){J("quotaLookup")&&(ca.refs+=1,!0===e.all&&(ca.allRefs+=1),!0===e.all?ia({scope:"all"}):ma(),pa(),1===ca.refs&&void 0===ca.onVisible&&"undefined"!=typeof document&&(ca.onVisible=()=>{ua()||ma()},document.addEventListener("visibilitychange",ca.onVisible)))}function ha(e={}){(J("quotaLookup")||0!==ca.refs)&&(ca.refs=Math.max(0,ca.refs-1),!0===e.all&&(ca.allRefs=Math.max(0,ca.allRefs-1)),ca.refs>0||(null!==ca.nextDispose&&(ca.nextDispose(),ca.nextDispose=null),null!==la.dispose&&(la.dispose(),la.dispose=null),void 0!==ca.onVisible&&"undefined"!=typeof document&&(document.removeEventListener("visibilitychange",ca.onVisible),ca.onVisible=void 0)))}function ba(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(" ")}function va(e){try{return new Date(e).toLocaleTimeString([],{hour:"2-digit",minute:"2-digit",hourCycle:"h23"})}catch(e){return""}}function fa(e){const t=new Date(e),a=e=>String(e).padStart(2,"0");return`${t.getFullYear()}-${a(t.getMonth()+1)}-${a(t.getDate())}`}t.effect(()=>()=>{null!==ca.nextDispose&&ca.nextDispose(),null!==la.dispose&&la.dispose(),void 0!==ca.onVisible&&"undefined"!=typeof document&&document.removeEventListener("visibilitychange",ca.onVisible)},"dsh-service quota poller disposal");const ya=Object.assign(Object.create(null),{deepseek:{segments:[[540,720],[840,1080]],captionKey:"quota.peak.caption"},"zai-coding-cn":{segments:[[840,1080]],captionKey:"quota.peak.caption.zai"}}),ka="#f0952f",xa="var(--dsw-alias-state-success-primary)",wa=3e4;function Ea(e){const t=new Date(e+288e5),a=e=>String(e).padStart(2,"0");return`${a(t.getUTCHours())}:${a(t.getUTCMinutes())}`}function Sa(e,t){return!1===Array.isArray(t)||0===t.length?null:ya[e?.kind]??null}function qa({showCaption:e,schedule:n}){const s=ke(),[i,o]=a(Date.now());m(()=>{let e=!1,a=null;const r=()=>{e||(a=t.timer.timeout(()=>{o(Date.now()),r()},wa))};return r(),()=>{e=!0,null!=a&&a()}},[]);const l=function(e){const t=new Date(e+288e5);return{dayIndex:t.getUTCDay(),minutesOfDay:60*t.getUTCHours()+t.getUTCMinutes()}}(i),d=(c=n.segments,u=l.dayIndex,p=l.minutesOfDay,0!==u&&6!==u&&c.some(([e,t])=>p>=e&&p<t));var c,u,p;const g=function(e,t){const a=new Date(t+288e5);a.setUTCHours(0,0,0,0);const r=a.getTime()-288e5,n=[];for(let a=0;a<=6&&n.length<2;a++){const s=r+864e5*a,i=new Date(s+288e5).getUTCDay();if(0!==i&&6!==i)for(const a of e.flat()){const e=s+6e4*a;if(!(e<=t)&&(n.push(e),n.length>=2))return n}}return n}(n.segments,i),b=g[0]??null,v=d?ka:xa,f=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:v,whiteSpace:"nowrap",flexShrink:0}},r.createElement("span",{style:{width:"7px",height:"7px",...h("50%"),background:v,flexShrink:0}}),s(d?"quota.peak.nowPeak":"quota.peak.nowIdle")),null!==b?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:Ea(b),dur:ba(b-i,s)})):null),r.createElement("div",{"data-testid":"quota-peak-bar",style:{position:"relative",height:"14px",...h(999),overflow:"hidden",background:"var(--dsw-alias-interactive-bg-hover)"}},(g.length>0?[{peak:d,weight:g[0]-i},...g.length>1?[{peak:!d,weight:g[1]-g[0]}]:[]]:[{peak:d,weight:1}]).map((e,t,a)=>{const n=a.reduce((e,t)=>e+t.weight,0),i=f(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:f(a[0].weight/n*1440)}%`,width:`${i}%`,background:e.peak?ka:xa,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)}function Ca(e,t){const a="string"==typeof e.expiresAt&&""!==e.expiresAt.trim()?e.expiresAt.trim():"",r=""!==a?Date.parse(a):NaN,n=Number.isFinite(r)&&r<Date.now();let s="";if(""!==a){let e=a;Number.isFinite(r)&&(e=a.length>10?`${fa(r)} ${va(r)}`:fa(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}}function Ta(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:va(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 Aa(e,t,a){const n=null!=a,s=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}(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:ba(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},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} · ${K(a,{billions:!0})} / ${K(r,{billions:!0})}`}(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:Se("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",...h(999),background:"var(--dsw-alias-interactive-bg-hover)",overflow:"hidden"}},r.createElement("div",{style:{height:"100%",width:`${Math.max(0,Math.min(100,t))}%`,...h(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 Ia=null;try{const t=e("react-dom");null!=t&&"function"==typeof t.createPortal&&(Ia=t.createPortal)}catch(e){Ia=null}function Oa(){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 za=["gemini","claude","codex"];function Ra(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 Ma(e){const t=new Map;for(const a of e){const e=Ra(a),r=t.get(e)||[];r.push(a),t.set(e,r)}const a=[];for(const e of[...za,"other"]){const r=t.get(e);r&&r.length>0&&a.push({family:e,windows:r})}return a}function Na(e){const n=ke(),[s,i]=a(Qt.getSnapshot());m(()=>Qt.subscribe(()=>i(Qt.getSnapshot())),[]);const o=e&&e.directoryStore,l=e&&"string"==typeof e.sessionId&&""!==e.sessionId?e.sessionId:void 0,[d,c]=a(null),u=null!=o?o:d;m(()=>{if(null!=o)return;if(void 0===l)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=yt()}catch(e){i=null}if(null==i||"function"!=typeof i.directoryFor)return;let o=null;try{o=i.directoryFor(l)}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{c(o.store);try{const e=o.load();e&&"function"==typeof e.catch&&e.catch(()=>{})}catch(e){}}};return n(0),()=>{e=!0,null!==a&&a()}},[o,l]),m(()=>{if(u)return ga(),ha},[u]);const[p,g]=a(u?u.getSnapshot():null);m(()=>{if(u)return g(u.getSnapshot()),u.subscribe(()=>g(u.getSnapshot()))},[u]),m(()=>{u&&(null===p||null==p?.current)&&e&&"function"==typeof e.loadDirectory&&e.loadDirectory()},[u,p,e&&e.loadDirectory]);const[b,v]=a(!1),f=E(null),y=E(null),[k,x]=a(Oa);m(()=>{if("undefined"==typeof window||null===window||"function"!=typeof window.matchMedia)return;const e=window.matchMedia("(max-width: 1023px)"),t=()=>x(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[w,S]=a(!1),q=p?.current?.provider??null,C=p?.current?.model??null,T=null!==q?(s.providers||[]).find(e=>e.provider===q&&!0===e.adapted):null,A=Array.isArray(T?.windows)?T.windows:[],I="cliproxy"===T?.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}(C):null,O="claude"===I?"Claude":"gemini"===I?"Gemini":"codex"===I?"Codex":null,z=null!==I?A.filter(e=>function(e,t){return!t||Ra(e)===t}(e,I)):A,R=z.length>0&&!w?z:A,M=(z.length>0?z:A).filter(e=>"number"==typeof e.percent),N=e=>!0===e.remaining?100-e.percent:e.percent,j=M.length>0?M.reduce((e,t)=>N(t)>N(e)?t:e,M[0]):null;m(()=>{S(!1)},[q,C,b]);const H=E(new Set);if(m(()=>{if(null===q)return;const e=(s.providers||[]).find(e=>e.provider===q&&!0===e.adapted);(void 0===e||!1===Array.isArray(e.windows)&&!0!==e.refreshing&&void 0===e.errorCode)&&!H.current.has(q)&&(H.current.add(q),ia({providers:[q]}))},[q,s]),m(()=>{if(!b||"undefined"==typeof document)return;const e=e=>{f.current&&e.target instanceof Node&&f.current.contains(e.target)||y.current&&e.target instanceof Node&&y.current.contains(e.target)||v(!1)},t=e=>{"Escape"===e.key&&v(!1)};return document.addEventListener("pointerdown",e),document.addEventListener("keydown",t),()=>{document.removeEventListener("pointerdown",e),document.removeEventListener("keydown",t)}},[b]),null==T)return null;const D=null===j?0:j.percent,W=null!==j,$=!W||!0===j.remaining,L=n($?"quota.panel.remaining":"quota.panel.used"),B=($?D<=20:D>=80)?"var(--dsw-alias-state-warn-primary)":"var(--dsw-alias-state-success-primary)",P=2*Math.PI*5.5,_=T?.displayName||q,F=O?`${_} · ${O}`:_,U=W?`${n("quota.ring.label")} · ${F} · ${L} ${D}%`:`${n("quota.ring.label")} · ${F}`,K=void 0!==T.errorCode?r.createElement("div",{style:{marginTop:"8px",fontSize:"12px",lineHeight:"18px",color:"var(--dsw-alias-state-error-primary)"}},Ta(T,n)):null,V=!0===T.refreshing||"number"==typeof T.fetchedAt?r.createElement("div",{style:{marginTop:"8px",fontSize:"11px",color:"var(--dsw-alias-label-tertiary)"}},!0===T.refreshing?n("quota.refreshing"):n("quota.updated",{time:va(T.fetchedAt)})):null,G=b&&k&&null!==Ia&&"undefined"!=typeof document&&null!==document.body&&void 0!==document.body,Y=Sa(T,A),J=r.createElement("button",{type:"button","data-testid":"quota-ring-trigger","aria-label":U,"aria-haspopup":"dialog","aria-expanded":b,title:U,onClick:()=>{const e=!b;v(e),e&&ia({providers:null===q?[]:[q]})},style:{width:"28px",height:"28px",border:"none",...h("999px"),background:"transparent",cursor:"pointer",display:"grid",placeItems:"center",padding:0,color:"var(--dsw-alias-label-secondary)"}},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:B,strokeWidth:"2",strokeLinecap:"round",strokeDasharray:`${P*D/100} ${P}`,transform:"rotate(-90 7 7)"}))),Q=b?r.createElement("div",{ref:y,role:"dialog","aria-label":n("quota.panel.title"),"data-testid":"quota-ring-panel",style:G?{position:"fixed",left:"50%",top:"75%",transform:"translate(-50%, -50%)",zIndex:1e3,boxSizing:"border-box",width:"min(280px, calc(100vw - 32px))",maxHeight:"min(560px, calc(100dvh - 176px))",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)"}},L),r.createElement("span",{style:{marginLeft:"auto",fontSize:"11px",color:"var(--dsw-alias-label-secondary)"}},F)),r.createElement("div",{style:{marginTop:"10px",display:"flex",flexDirection:"column",gap:"8px"}},(()=>{const e="cliproxy"!==T?.kind||!w&&null!==I?null:Ma(R);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=>Aa(e,n,null)))):R.map(e=>Aa(e,n,null))})()),A.length>z.length&&z.length>0?r.createElement("div",{style:{marginTop:"6px",textAlign:"center"}},r.createElement("button",{type:"button","data-testid":"quota-ring-toggle-all",onClick:()=>S(!w),style:{fontSize:"11px",color:"var(--dsw-alias-brand-primary)",background:"transparent",border:"none",cursor:"pointer",padding:"2px 6px",textDecoration:"underline"}},w?n("quota.filter.currentOnly"):n("quota.filter.showAll",{count:A.length}))):null,...null!==Y?[r.createElement(qa,{key:"panel-peak-timeline",showCaption:!1,schedule:Y})]:[],...Array.isArray(T.resetCards)&&T.resetCards.length>0?[r.createElement("div",{key:"panel-reset-cards",style:{marginTop:"8px",display:"flex",flexDirection:"column",gap:"4px"}},T.resetCards.map((e,t)=>{const a=Ca(e,n);return r.createElement("div",{key:t,"data-testid":`quota-panel-reset-card-${t}`,style:{display:"flex",flexDirection:"column",gap:"2px",fontSize:"11px",lineHeight:"16px",color:a.expired?"var(--dsw-alias-state-warn-primary)":"var(--dsw-alias-label-tertiary)"}},r.createElement("span",null,a.title),""!==a.expiry?r.createElement("span",null,a.expiry):null)}))]:[],K,V):null;return r.createElement("span",{ref:f,style:{position:"relative",display:"inline-flex"}},J,G?Ia(Q,document.body):Q)}function ja(){const e=ke(),{snapshot:t}=Q(),[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(Da,null),s?null:r.createElement("p",{style:{margin:"6px 0 0",fontSize:"11px",color:"var(--dsw-alias-label-tertiary)"}},e("features.readOnly"))):null)}const Ha=[["features.group.runtime",["healthDiagnostics","modelUsage","quotaLookup"],!0],["features.group.maintenance",["backupMaintenance","skillManager","subagentRoute","sessionManager"],!0],["features.group.interaction",["taskNotifications","mobileAdaptation","fileEditor"],!0],["features.external",["healthz"],!1]];function Da(){const e=ke(),{snapshot:t,value:n}=Q(),[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 G.set(t,!1===n[t])}catch(e){}i("")},style:{width:"34px",height:"20px",...h("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",...h("50%"),background:!1!==n[t]?"#fff":"var(--dsw-alias-label-tertiary)"}})));return r.createElement("div",null,Ha.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 Wa(){const e=ke(),[n,s]=a(ae()),[i,o]=a(ne()),[l,d]=a(!1),[c,u]=a(null),p=E(null),[,g]=a(0),b=()=>{d(!0),null!==p.current&&p.current(),p.current=t.timer.timeout(()=>{p.current=null,d(!1)},2e3)};m(()=>()=>{null!==p.current&&p.current(),p.current=null},[]),m(()=>{if("function"==typeof t.slots?.subscribe)return t.slots.subscribe("settings.section",()=>g(e=>e+1))},[]),m(()=>{const e=()=>{s(ae()),o(ne())};return oe.add(e),()=>oe.delete(e)},[]);const v=ue(),f=new Map;for(const e of v){const t=e.options?.id??e.options?.key??"";t&&!f.has(t)&&f.set(t,{id:t,label:pe(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 k=Array.from(f.values()).sort((e,t)=>e.defaultOrder-t.defaultOrder);y=y.concat(k);const x=(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),re(a),le(),he(a,Array.isArray(i)?i:[])},w=new Set(Array.isArray(i)?i:[]);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:{marginTop:"4px",fontSize:"12px",lineHeight:1.6,color:"var(--dsw-alias-label-secondary)"}},e("config.navOrder.dragHint"))),r.createElement("div",{style:{display:"flex",alignItems:"center",gap:"10px",flexWrap:"wrap"}},l?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),o([]),re(null),se(null),le(),b(),be()},style:we("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),re(e),se(i),le(),b(),he(e,Array.isArray(i)?i:[])},style:we("primary")},e("config.navOrder.save")))),r.createElement("div",{style:{padding:"10px 14px",borderRadius:"var(--dsh-svc-radius-control, 8px)",background:"var(--dsh-svc-card-bg)",border:"1px solid var(--dsw-alias-border-l1)",fontSize:"12px",lineHeight:1.6,color:"var(--dsw-alias-label-secondary)"}},e("config.navOrder.dragHint")),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),l="dsh-service"===t.id,d=c===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){}u(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||x(t,a),u(null)},onDragEnd:()=>u(null),style:{display:"flex",alignItems:"center",justifyContent:"space-between",gap:"12px",padding:"9px 14px",borderRadius:"var(--dsh-svc-radius-control, 8px)",border:"1px solid "+(d?"var(--dsh-svc-brand)":"var(--dsw-alias-border-l1)"),background:d?"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",flexWrap:"wrap",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",flexShrink:0,maxWidth:"100%"}},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",whiteSpace:"nowrap"}},t.id),l?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(),x(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(),x(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(l?"config.navOrder.locked":s?"config.navOrder.visible":"config.navOrder.hidden"),disabled:l,onClick:e=>{e.stopPropagation(),(e=>{if("dsh-service"===e)return;const t=Array.isArray(i)?i:[],a=new Set(t);a.has(e)?a.delete(e):a.add(e);const r=Array.from(a);o(r),se(r),le(),he(Array.isArray(n)?n:null,r)})(t.id)},style:{width:"34px",height:"20px",...h("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:l?"not-allowed":"pointer",opacity:l?.6:1,lineHeight:0}},r.createElement("span",{style:{position:"absolute",top:"1px",left:s?"15px":"1px",width:"16px",height:"16px",...h("50%"),background:s?"#fff":"var(--dsw-alias-label-tertiary)",transition:"left 120ms ease"}}))))})))}const $a=["inherit","follow","custom"];function La(){const e=ke(),{useState:t,useEffect:a}=r,n=!1!==Q().value.subagentModelsDock,[s,i]=t(null),[o,l]=t("inherit"),[d,c]=t(""),[u,p]=t(""),[m,g]=t(!0),[b,v]=t(!1),[f,y]=t(0),[k,x]=t(""),[w,E]=t(""),[q,C]=t([]),[T,A]=t(!1),I={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%"},z=async()=>{g(!0);try{const e=await S("subagent-route",{});e.ok?(i(e.value),l(e.value.mode),C(Array.isArray(e.value.fallbacks)?e.value.fallbacks:[]),"string"==typeof e.value.provider&&c(e.value.provider),"string"==typeof e.value.model&&p(e.value.model),E("string"==typeof e.value.reasoningEffort?e.value.reasoningEffort:""),x("")):x(e.error||"unknown")}catch(e){x("network")}finally{g(!1)}};a(()=>{z()},[]);const R=null!==s&&Array.isArray(s.models)?s.models:[],M=[],N={};for(const e of R)void 0===N[e.provider]&&(N[e.provider]=e.providerName,M.push(e.provider));const j=e=>R.filter(t=>t.provider===e),H=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},D=M.includes(d)?d:M[0]??"",W=j(D),$=W.some(e=>e.id===u)?u:W[0]?.id??"",L=W.find(e=>e.id===$)??null,B=H(L),P=B.some(e=>e.id===w)?w:"",_=(e,t)=>{C(a=>a.map((a,r)=>r===e?{...a,...t}:a))},F=(e,t)=>{C(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(()=>{T&&q.length<2&&A(!1)},[q.length]);const U=async e=>{v(!0),x("");try{const t=("custom"===e||"follow"===e)&&q.length>0?{fallbacks:q}:{},a="custom"===e?{mode:"custom",provider:D,model:$,...""!==P?{reasoningEffort:P}:{},...t}:{mode:e,...t},r=await S("subagent-route-save",a);r.ok?(y(e=>e+1),await z()):x(r.error||"unknown")}catch(e){x("network")}finally{v(!1)}},K=(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),V={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("p",{style:{...I,marginTop:"2px",marginBottom:0}},e("subagent.dock.desc"))),r.createElement("button",{type:"button",role:"switch","aria-checked":String(n),"data-testid":"subagent-dock-toggle",onClick:()=>{G.set("subagentModelsDock",!n).catch(()=>{})},style:{width:"34px",height:"20px",...h("10px"),padding:0,flexShrink:0,position:"relative",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",...h("50%"),background:n?"#fff":"var(--dsw-alias-label-tertiary)",transition:"left 150ms ease"}}))),null!==s&&!1===s.available?r.createElement("p",{"data-testid":"subagent-unavailable",style:{...I,color:"var(--dsw-alias-state-warn-primary)"}},e("subagent.unavailable")):null,r.createElement("div",{"data-testid":"subagent-modes",style:{display:"flex",gap:"8px",marginTop:"12px",flexWrap:"wrap"}},$a.map(t=>r.createElement("button",{type:"button",key:t,"data-testid":"subagent-mode-"+t,"aria-pressed":String(o===t),disabled:m,onClick:()=>l(t),style:Object.assign({},Ee(),{cursor:m?"default":"pointer",background:o===t?"var(--dsh-svc-tab-active-bg)":"transparent",color:o===t?"var(--dsh-svc-tab-active-text)":"var(--dsh-svc-text)",opacity:m?.55:1})},e("subagent.mode."+t)))),r.createElement("p",{"data-testid":"subagent-mode-desc",style:{...I,marginTop:"8px"}},e("subagent.mode."+o+".desc")),"custom"===o?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:V},e("subagent.provider")),r.createElement("select",{"data-testid":"subagent-provider",value:D,disabled:0===M.length||b,onChange:e=>c(e.target.value),style:O},M.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:V},e("subagent.model")),r.createElement("select",{"data-testid":"subagent-model",value:$,disabled:0===W.length||b,onChange:e=>p(e.target.value),style:O},W.map(e=>r.createElement("option",{key:e.id,value:e.id},e.name??e.id)))),""!==$?r.createElement("div",{"data-testid":"subagent-reasoning-row",style:{display:"flex",alignItems:"center",gap:"10px",marginTop:"4px",flexWrap:"wrap"}},r.createElement("span",{style:V},e("subagent.reasoningEffort")),r.createElement("select",{"data-testid":"subagent-reasoning-effort",value:P,disabled:b||0===B.length,onChange:e=>E(e.target.value),style:O},r.createElement("option",{value:""},e("subagent.reasoningEffort.default")),...B.map(e=>r.createElement("option",{key:e.id,value:e.id,...void 0!==e.description?{title:e.description}:{}},e.name))),0===B.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"!==o||0!==R.length||m?null:r.createElement("p",{"data-testid":"subagent-models-empty",style:{...I,color:"var(--dsw-alias-state-warn-primary)"}},e("subagent.modelsEmpty")),"custom"===o||"follow"===o?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===q.length?r.createElement("p",{"data-testid":"subagent-fallback-empty",style:{...I,color:"var(--dsw-alias-label-secondary)"}},e("subagent.fallback.empty")):null,q.map((t,a)=>{const n=M.includes(t.provider),s=n?j(t.provider):[],i=s.find(e=>e.id===t.model)??null,o=H(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=>{C(t=>t.filter((t,a)=>a!==e))})(a),e("subagent.fallback.remove"),!0),T?K("subagent-fallback-up-"+a,0===a,()=>F(a,-1),"▲"):null,T?K("subagent-fallback-down-"+a,a===q.length-1,()=>F(a,1),"▼"):null),r.createElement("div",{style:{display:"flex",alignItems:"center",gap:"10px",marginTop:"4px"}},r.createElement("span",{style:V},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;_(a,{provider:t,model:j(t)[0]?.id??""})},style:O},r.createElement("option",{value:""},""),M.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:V},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=H(n).map(e=>e.id);_(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:V},e("subagent.reasoningEffort")),r.createElement("select",{"data-testid":"subagent-fallback-effort-"+a,value:l.includes(t.reasoningEffort)?t.reasoningEffort:"",disabled:b,onChange:e=>_(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")))}),q.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:b||0===M.length,onClick:()=>{C(e=>{if(e.length>=10)return e;const t=M[0]??"";return[...e,{provider:t,model:j(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===M.length?"default":"pointer",opacity:b||0===M.length?.55:1}},e("subagent.fallback.add")),q.length>1?r.createElement("button",{type:"button","data-testid":"subagent-fallback-sort",disabled:b,onClick:()=>A(e=>!e),style:{fontSize:"12px",padding:"5px 12px",borderRadius:"var(--dsh-svc-radius-control)",border:"1px solid var(--dsh-svc-border-strong)",background:T?"var(--dsh-svc-tab-active-bg)":"transparent",color:T?"var(--dsh-svc-tab-active-text)":"var(--dsh-svc-text)",cursor:b?"default":"pointer",opacity:b?.55:1}},e(T?"subagent.fallback.sort.done":"subagent.fallback.sort")):null)):null,""!==k?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,k)):null,f>0&&""===k?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:b||m||"custom"===o&&(""===D||""===$),onClick:()=>{U(o)},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||m||"custom"===o&&(""===D||""===$)?.55:1}},e(b?"subagent.saving":"subagent.save")),"inherit"!==o?r.createElement("button",{type:"button","data-testid":"subagent-reset",disabled:b||m,onClick:()=>{l("inherit"),U("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||m?.55:1}},e("subagent.reset")):null))}const Ba="dsh-service-skills-model",Pa=(e,t)=>S(e,t);function _a(e){return e.provider+"\0"+e.id}function Fa(){try{const e=JSON.parse(localStorage.getItem(Ba)||"null");if(e&&"string"==typeof e.provider&&"string"==typeof e.model)return e}catch(e){}return null}const Ua=(e,t)=>{let a=function(e,t){const a="object"==typeof t&&null!==t?t:Fa();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,Fa());return null===a&&void 0!==t&&(a=e.find(e=>e.provider===t.provider&&e.id===t.model)??null),a},Ka=(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 Va(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 Ga(){const e=ke(),[t,n]=a(null),[s,i]=a(""),[o,l]=a(!0),[d,c]=a(""),[u,p]=a([]),[g,b]=a(null),[v,f]=a(null),[y,k]=a(!1),[x,w]=a([]),[E,q]=a(!1),[C,T]=a(!1),[A,I]=a(!1),[O,z]=a(!1),{batch:R,plan:M,models:N,modelItem:j,error:H}=bt(),D=null!==R?R.phase:null;m(()=>{q("running"===D)},[D]);const W=async()=>{l(!0);try{const e=await Pa("skills-list",{});e.ok?(n(e.value),i("")):i(e.error||"unknown")}catch(e){i("network")}finally{l(!1)}};m(()=>{W(),ht(),gt().then(dt)},[]),m(()=>{null===R||"done"!==R.phase&&"cancelled"!==R.phase||!rt||(rt=!1,W())},[null!==R&&R.phase]),m(()=>{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&&w(t.value.logs??[])}catch(e){}};return a(),t=setInterval(()=>{a()},800),()=>clearInterval(t)},[null!==v&&v.busy]),m(()=>{if(null===v||v.busy)return;const e=v.entry.id;(async()=>{try{const t=await Pa("skills-describe-log",{id:e});t.ok&&w(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)})};m(()=>{if(null===g)return;const e=setTimeout(()=>b(null),3e3);return()=>clearTimeout(e)},[g]),m(()=>{if(!A)return;const e=setTimeout(()=>I(!1),3e3);return()=>clearTimeout(e)},[A]),m(()=>{I(!1)},[D,M]);const L=async(e,t)=>{const a=e.id+":"+t;if(g!==a)return void b(a);b(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):i(a.error+(a.detail?":"+a.detail:"")||"unknown")}catch(e){i("network")}},B={color:"var(--dsw-alias-label-secondary)",fontSize:"12px",marginTop:"8px",lineHeight:1.5},P=(e,t)=>r.createElement("span",{key:e,style:Se("warn"===t?"warning":"danger"===t?"danger":"neutral",{marginLeft:"6px",padding:"1px 7px",verticalAlign:"middle"})},e),_=(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",...h("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",...h("50%"),background:t.armed?"var(--dsw-alias-state-warn-primary)":e?"#fff":"var(--dsw-alias-label-tertiary)"}})),U={border:"1px solid var(--dsh-alias-border-l2)",borderRadius:"10px",padding:"11px 13px",marginBottom:"8px",background:"var(--dsh-svc-card-bg)"},K=(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))),V=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?"":_a(s),onChange:e=>f(t=>null===t?t:{...t,modelItem:n.find(t=>_a(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:_a(e),value:_a(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:F()});if(a.ok){try{localStorage.setItem(Ba,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({},we("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)"}},Va(e,l)):null,K("skill-describe-log",x.map(t=>Ka(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")))},G=d.trim().toLowerCase(),Y=null===t?[]:""===G?t.entries:t.entries.filter(e=>e.name.toLowerCase().includes(G)),J=Y.length>0&&Y.every(e=>u.includes(e.id)),[Q,X]=a(!1);return m(()=>{null===R||"running"!==R.phase&&"planned"!==R.phase||X(!0)},[null!==R&&R.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:d,placeholder:e("skills.filter"),onChange:e=>c(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===Y.length,style:Object.assign({},we("neutral"),{minHeight:"28px",padding:"4px 10px",fontSize:"12px",cursor:0===Y.length?"default":"pointer",opacity:0===Y.length?.55:1}),onClick:()=>(()=>{const e=Y.map(e=>e.id);p(J?t=>t.filter(t=>!e.includes(t)):t=>e.reduce((e,t)=>e.includes(t)?e:e.concat([t]),t))})()},e(J?"skills.collapseAll":"skills.expandAll")),r.createElement("button",{type:"button","data-testid":"skills-refresh","data-variant":"neutral",style:Object.assign({},we("neutral"),{minHeight:"28px",padding:"4px 10px",fontSize:"12px"}),onClick:()=>{W()}},"↻"))),o&&null===t?r.createElement("p",{style:B},"…"):null,""!==s||""!==H?r.createElement("p",{"data-testid":"skills-error",style:{...B,color:"var(--dsw-alias-state-error-primary)"}},Va(e,""!==s?s:H)):null,null!==t&&t.llmAvailable?r.createElement("button",{type:"button","data-testid":"skills-batch-toggle","aria-expanded":String(Q),onClick:()=>X(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!==R&&"planned"===R.phase&&null===M?"idle":null!==R?R.phase:"idle",a=t,n=null!==R&&R.total>0?Math.round(R.done/R.total*100):0,s=Array.isArray(M?.annotated)?M.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:()=>X(!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!==N&&N.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===j?"":_a(j),disabled:y||null!==R&&"running"===R.phase,onChange:e=>(e=>{const t=(et??[]).find(t=>_a(t)===e)??null;if(tt=t,null!==t)try{localStorage.setItem(Ba,JSON.stringify({provider:t.provider,model:t.id}))}catch(e){}dt()})(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%"}},N.map(e=>r.createElement("option",{key:_a(e),value:_a(e)},e.providerName+" / "+e.name)))):null,"idle"===t||"done"===t||"cancelled"===t?r.createElement("button",{type:"button","data-testid":"skills-batch-plan",disabled:y,onClick:()=>{(async()=>{k(!0);try{await(async()=>{if(at="",dt(),0===(await gt()).length||null===tt)return at="models-empty",dt(),!1;try{localStorage.setItem(Ba,JSON.stringify({provider:tt.provider,model:tt.id}))}catch(e){}const e=await S("skills-batch-plan",{provider:tt.provider,model:tt.id});if(!e.ok)return at=e.error||"unknown",dt(),!1;Ze={...e.value,modelItem:tt};const t=Array.isArray(e.value.annotated)?e.value.annotated.length:0;return Xe={phase:"planned",total:e.value.candidates.length+t,done:0,failures:[],current:null,estBytes:e.value.estBytes,logs:[]},ut("planned"),mt(),dt(),!0})()}finally{k(!1)}})()},style:Object.assign({},we("neutral"),{cursor:y?"default":"pointer",opacity:y?.55:1})},e("skills.batch.plan")):null,null!==M?r.createElement("span",{"data-testid":"skills-batch-candidates",style:{fontSize:"12px",color:"var(--dsw-alias-label-secondary)"}},e("skills.batch.candidates",{count:M.candidates.length})+(M.estBytes>0?" · "+e("skills.batch.estBytes",{size:(i=M.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:M.skipped.length})):null,null!==M&&"planned"===t?r.createElement("button",{type:"button","data-testid":"skills-batch-start",disabled:y||0===M.candidates.length&&0===s,onClick:()=>{(async()=>{const e=Array.isArray(M?.annotated)?M.annotated.length:0;if(e>0&&!A)I(!0);else{I(!1),k(!0);try{await(async(e=!1)=>{if(null===Ze||null===Xe)return!1;const t=await S("skills-batch-run",{planId:Ze.planId,lang:F(),...!0===e?{forceAnnotated:!0}:{}});return t.ok?(Xe={...Xe,phase:"running"},ut("running"),mt(),dt(),!0):(at=t.error||"unknown",dt(),!1)})(e>0)}finally{k(!1)}}})()},title:A?e("skills.switch.confirm"):void 0,style:{fontSize:"12px",padding:"5px 14px",borderRadius:"var(--dsh-svc-radius-control)",border:"1px solid transparent",background:A?"var(--dsh-svc-warning)":"var(--dsw-alias-brand-primary)",color:"var(--dsh-svc-brand-text)",cursor:y?"default":"pointer",opacity:y?.55:1}},A&&s>0?e("skills.batch.forceConfirm",{count:s}):e("skills.batch.start")):null,null!==R&&"running"===R.phase?r.createElement("button",{type:"button","data-testid":"skills-batch-cancel",onClick:()=>{(async()=>{await(async()=>{try{await S("skills-batch-cancel",{}),ct(!1)}catch(e){}})()})()},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!==R?r.createElement("span",{"data-testid":"skills-batch-phase",style:{fontSize:"12px",color:"var(--dsw-alias-label-tertiary)"}},e("skills.batch.phase."+a)):null),null!==M&&0===M.candidates.length&&0===s?r.createElement("p",{style:B},e("skills.batch.no-candidates")):null,null===M||0===M.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:()=>T(e=>!e),style:{border:0,background:"transparent",color:"var(--dsw-alias-label-tertiary)",cursor:"pointer",fontSize:"11.5px",padding:0}},(C?"▾ ":"▸ ")+e("skills.skippedList")+"("+M.skipped.length+")"),C?r.createElement("div",{style:{marginTop:"4px",fontSize:"11.5px",lineHeight:1.6,color:"var(--dsw-alias-label-tertiary)"}},M.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(M?.annotated)?M.annotated:[];return null===M||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:()=>z(e=>!e),style:{border:0,background:"transparent",color:"var(--dsw-alias-label-tertiary)",cursor:"pointer",fontSize:"11.5px",padding:0}},(O?"▾ ":"▸ ")+e("skills.batch.annotatedList")+"("+t.length+")"),O?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!==R&&R.total>0&&"idle"!==t?(()=>{const t=Array.isArray(R.failures)&&R.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:R.failures.length})+":"+R.failures.map(e=>e.name+"("+e.reason+")").join("、")):null,a=Array.isArray(R.logs)?R.logs:[],s=0===a.length?null:r.createElement("div",null,r.createElement("button",{type:"button","data-testid":"skills-batch-log-toggle",onClick:()=>q(e=>!e),style:{marginTop:"7px",border:0,background:"transparent",color:"var(--dsw-alias-label-tertiary)",cursor:"pointer",fontSize:"11.5px",padding:0}},(E?"▾ ":"▸ ")+e("skills.log.title")+"("+a.length+")"),E?K("skills-batch-log",a.slice(-30).map(t=>Ka(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:R.done,total:R.total})+(null!==R.current?" · "+e("skills.batch.current",{name:R.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=Y.filter(e=>void 0!==e.invalid),n=Y.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)]],o=a=>{const n=(a=>{const n=u.includes(a.id),s="string"==typeof a.invalid&&a.invalid.startsWith("legacy-invocation-key:"),o=r.createElement("div",{style:{fontSize:"14px",fontWeight:650,color:"var(--dsw-alias-label-primary)",overflowWrap:"anywhere"}},a.name,P(e("skills.source."+a.source)==="skills.source."+a.source?a.source:e("skills.source."+a.source)),a.shadowed?P(e("skills.badge.shadowed"),"warn"):null,a.writable?null:P(e("skills.badge.readonly"),"danger"),a.annotated?P(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):i(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,m=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){b(null);try{const t=await Pa("skills-fix-keys",{id:e.id});t.ok?$(t.value.entry):i(t.error+(t.detail?":"+t.detail:"")||"unknown")}catch(e){i("network")}}else b(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,h=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"),_(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:()=>{L(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"),_(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:()=>{L(a,"user")}})),null!==t&&t.llmAvailable?r.createElement("button",{type:"button","data-testid":"skill-describe-"+a.name,onClick:()=>{(async e=>{const t=Fa();f({entry:e,models:null,modelItem:null,draft:null,busy:!1,error:"",applied:!1,preferred:t}),w([]);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:Ua(r,a.value.current)}))})(a)},style:Object.assign({},Ee(),{fontSize:"11px",padding:"3px 10px"})},"✨ "+e("skills.describe.button")):null):null,v=r.createElement("button",{type:"button","data-testid":"skill-header-"+a.name,"aria-expanded":String(n),onClick:()=>{return e=a.id,p(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}},o)),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),h),c):null;return r.createElement("div",{key:a.id,"data-testid":"skill-entry-"+a.name,style:U},v,m,y)})(a);return null!==v&&v.entry.id===a.id?[n,V(a)]:[n]};return r.createElement("div",null,a.length>0?r.createElement("div",{"data-testid":"skills-invalid-group",style:{marginBottom:"12px"}},a.flatMap(o)):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(o))))})())}function Ya(){return r.createElement(ir,null)}function Ja(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 Qa(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 Xa(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 Za={all:void 0,archived:void 0,deleted:void 0},er=new Map,tr=[Symbol.for("react.memo"),Symbol.for("react.forward_ref"),Symbol.for("react.lazy")],ar=e=>"function"==typeof e||null!==e&&"object"==typeof e&&"symbol"==typeof e.$$typeof&&tr.includes(e.$$typeof);let rr=null;const nr=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(ar(a))rr=a;else if(null!==a&&"object"==typeof a)if(a="function"==typeof a.default?a.default:"function"==typeof a.MarkdownText?a.MarkdownText:null,ar(a))rr=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 sr(){const e=ke(),{useState:a,useEffect:n,useRef:s}=r,[i,o]=Qe.useEnabled(),l=Za.archived,[d,c]=a(void 0!==l?l:null),[u,p]=a(void 0===l),[m,g]=a(""),[b,v]=a(Object.fromEntries(er)),f=s(new Set),[y,k]=a("archived"),[x,w]=a(!1),[E,q]=a("createdDesc"),[C,T]=a([]),[A,I]=a(!1),[O,z]=a([]),[R,M]=a(""),[N,j]=a(!1),[H,D]=a(!1),[W,$]=a(null),[L,B]=a(null),[P,_]=a(!1),[F,U]=a(""),[K,V]=a({}),G=s(null),Y=()=>y+"\0"+E+"\0"+R+"\0"+(N?1:0),[J,Q]=a(""),[X,Z]=a(""),[ee,te]=a(""),[ae,re]=a(""),[ne,se]=a(""),[ie,oe]=a(null),[le,de]=a(!1),[ce,ue]=a(""),[pe,me]=a(0),[ge,he]=a(null),[be,ve]=a(!1),[fe,ye]=a(""),[xe,qe]=a(""),[Ce,Te]=a(""),[Ae,Ie]=a(""),Oe={color:"var(--dsw-alias-label-secondary)",fontSize:"12px",marginTop:"8px",lineHeight:1.5},ze=Ee(),Re=Object.assign({},ze,{background:"transparent",borderColor:"var(--dsw-alias-state-error-primary)",color:"var(--dsw-alias-state-error-primary)"}),Me=Object.assign({},ze,{background:"var(--dsw-alias-state-error-primary)",borderColor:"transparent",color:"var(--dsh-svc-brand-text)"}),Ne=e=>"archived"===e?"archived":"deleted"===e?"deleted":"all",je=s(y);je.current=y;const He=async(t,a={})=>{const r=void 0!==t?t:Ne(y),n=Za[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 S("sessions-list",{scope:r});t.ok?(Za[r]=t.value,Ne(je.current)===r&&(c(t.value),g(""))):s&&a.silent||g(Xa(e,t.error||"unknown"))}catch(t){s&&a.silent||g(e("sessions.error.network"))}finally{s&&a.silent||p(!1)}};n(()=>{He("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!==b[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 S("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]&&er.set(t,r[t]);v(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)}},[d]),n(()=>{if("deleted"!==y){if(""!==R.trim())return t.timer.timeout(()=>{(async e=>{if(""!==e.trim()){D(!0);try{const t=await S("sessions-search",{query:e.trim(),scope:N?"archived":"all"});t.ok?$(t.value):$({available:!0,query:e,scope:"all",hits:[],error:t.error})}catch(t){$({available:!0,query:e,scope:N?"archived":"all",hits:[],error:"network"})}finally{D(!1)}}else $(null)})(R)},300);$(null)}},[R,N,y]);const De=(e,t,a,r,n)=>{I(!1),z([]),re(""),se(""),he(null),ye("");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}),V({}),B({sessionId:e,view:t||"events",cursor:void 0,items:[],total:0,hitItems:a||null,loadedTitle:"",centerSeq:void 0}),U(""),_(!1),"search"===(t||"events")&&Array.isArray(a)&&a.length>0){const t=Number.isSafeInteger(n)?Number(n):Number(a[0].seq);$e(e,Number.isSafeInteger(t)?t:0)}else We(e,void 0,t||"events")},We=async(t,a,r)=>{_(!0);try{const n=await S("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,"")}}),U("")):U(Xa(e,n.error||"unknown"))}catch(t){U(e("sessions.error.network"))}finally{_(!1)}},$e=async(t,a)=>{_(!0),U("");try{const r=await S("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||""}}),U("")):U(Xa(e,r.error||"unknown"))}catch(t){U(e("sessions.error.network"))}finally{_(!1)}},Le=async t=>{try{const a=await S("sessions-export",{id:t});if(!a.ok)return{ok:!1,error:Xa(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=>{Q(e),Z("");const t=await Le(e);return t.ok||Z(t.error),Q(""),t},Pe=async t=>{try{const a=await S("sessions-archive",{id:t});return a.ok?((e=>{const t=Za.all;void 0!==t&&Array.isArray(t.items)&&(Za.all={...t,items:t.items.map(t=>t.id===e?{...t,archived:!0}:t)});const a=Za.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);Za.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:Xa(e,a.error||"unknown")}}catch(t){return{ok:!1,error:e("sessions.error.network")}}},_e=async t=>{try{const a=await S("sessions-unarchive",{id:t});return a.ok?((e=>{const t=Za.all;void 0!==t&&Array.isArray(t.items)&&(Za.all={...t,items:t.items.map(t=>t.id===e?{...t,archived:!1}:t)});const a=Za.archived;void 0!==a&&Array.isArray(a.items)&&(Za.archived={...a,items:a.items.filter(t=>t.id!==e)}),c(t=>null!==t&&Array.isArray(t.items)?"archived"===je.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:Xa(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=Za[e];void 0!==a&&Array.isArray(a.items)&&(Za[e]={...a,items:a.items.filter(e=>e.id!==t)})}const n=Za.deleted;void 0!==n&&(Za.deleted={...n,deleted:[r,...(Array.isArray(n.deleted)?n.deleted:[]).filter(e=>e.id!==t)]}),er.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)]}}),v(e=>{const a={...e};return delete a[t],a}),f.current.delete(t)};n(()=>{pe>0&&B(null)},[pe]),n(()=>{if(null!==L)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){}},[L]);const Ue=null!==L&&"search"===L.view?L.centerSeq:null,Ke=null!==L&&"search"===L.view&&Array.isArray(L.items)?L.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 Ve=(()=>{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 x&&(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})(),Ge=""!==R.trim()?[]:"deleted"===y?Ve.map(e=>e.id):Ve.filter(e=>!0!==e._deleted).map(e=>e.id),Ye=new Set(O),Je=Ve.filter(e=>Ye.has(e.id)),Xe=Je.filter(e=>!0!==e._deleted),Ze=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=Ge.length>0&&Ge.every(e=>Ye.has(e));n(()=>{if(!A)return;const e=new Set(Ge);z(t=>{const a=t.filter(t=>e.has(t));return a.length===t.length?t:a})},[d,y,A,x]);const nt=()=>{I(!1),z([]),re(""),se("")},st=e=>{z(t=>t.includes(e)?t.filter(t=>t!==e):[...t,e])},it="deleted"===y?[]:Ve.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,l=Ye.has(n),c=(()=>{const e=b[n];return"number"==typeof e&&e>0?Ja(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?Qa(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:Re,onClick:()=>{(e=>{null!==ge||be||(ye(""),he({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:ze,onClick:e=>De(n,"events",null,e)},e("sessions.action.view"))),p.push(r.createElement("button",{key:"export",type:"button","data-testid":"sessions-row-export-"+n,style:ze,disabled:J===n,onClick:()=>{Be(n)}},e(J===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:ze,disabled:xe===n,onClick:()=>{(async e=>{qe(e),Ie("");const t=await Pe(e);t.ok||Ie(t.error),qe("")})(n)}},e(xe===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:ze,disabled:Ce===n,onClick:()=>{(async e=>{Te(e),Ie("");const t=await _e(e);t.ok||Ie(t.error),Te("")})(n)}},e(Ce===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:Re,onClick:()=>{(async t=>{if(null===ie&&!le){ue("");try{const a=await S("sessions-delete-plan",{id:t});a.ok?oe(a.value):ue(Xa(e,a.error||"unknown"))}catch(t){ue(e("sessions.error.network"))}}})(n)}},e("sessions.action.delete")))),r.createElement("div",{key:n,"data-testid":"sessions-row-"+n,"data-selected":A&&l?"true":void 0,onClick:A?()=>st(n):void 0,style:{display:"flex",alignItems:"center",justifyContent:"space-between",gap:"10px",padding:A?"9px 2px 9px 8px":"9px 2px",borderBottom:"1px solid var(--dsh-svc-border)",background:"transparent",borderRadius:"4px",boxShadow:A&&l?"inset 3px 0 0 var(--dsw-alias-brand-primary)":"none",cursor:A?"pointer":"default"}},r.createElement("div",{style:{display:"flex",alignItems:"center",gap:"9px",minWidth:0,flex:"1 1 auto"}},A?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:()=>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:Se("success")},e("sessions.row.live")):null,o?r.createElement("span",{"data-testid":"sessions-tag-archived-"+n,style:Se("warning")},e("sessions.row.archived")):null,a?r.createElement("span",{style:Se("danger")},e("sessions.row.deleted")):null,a||!0!==t.subagent?null:r.createElement("span",{"data-testid":"sessions-tag-subagent-"+n,style:Se("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(" · ")))),A?null:r.createElement("div",{style:{display:"flex",alignItems:"center",gap:"6px",flexShrink:0,flexWrap:"wrap",justifyContent:"flex-end"}},...p))},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!==rr?r.createElement(rr,{text:t.text,labels:nr(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,Qa(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("p",{style:Oe},e("sessions.hint")),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("span",{style:Oe},e("sessions.navToggleHint"))),r.createElement("button",{type:"button",role:"switch","data-testid":"sessions-nav-switch","aria-checked":String(i),onClick:()=>o(!i),style:{width:"34px",height:"20px",...h("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",...h("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:{...ze,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&&(k(e),I(!1),z([]),re(""),se(""),M(""),$(null),B(null),he(null),ye(""),He(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=>q(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({},we("neutral"),{minHeight:"28px",padding:"4px 10px",fontSize:"12px"}),onClick:()=>{He(void 0,{force:!0})}},e("sessions.refresh")),null===L&&""===R.trim()?r.createElement("button",{type:"button","data-testid":"sessions-batch-toggle","data-variant":A?"primary":"neutral",style:Object.assign({},we(A?"primary":"neutral"),{minHeight:"28px",padding:"4px 10px",fontSize:"12px"}),onClick:A?nt:()=>{I(!0),z([]),re(""),se("")}},e(A?"sessions.batch.exit":"sessions.batch.enter")):null),null===L&&A?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:ze,disabled:0===Ge.length||""!==ee||le||be,onClick:()=>{z(rt?[]:Ge.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:ze,disabled:""!==ee||le||be,onClick:()=>{z(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:O.length})),"deleted"===y?r.createElement("button",{type:"button","data-testid":"sessions-batch-clear",style:Re,disabled:0===at.length||""!==ee||le||be,onClick:()=>{null!==ge||be||0===at.length||(ye(""),he({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:ze,disabled:0===Xe.length||""!==ee||le||be,onClick:()=>{(async()=>{if(""!==ee||0===Xe.length)return;te("export"),re(""),se("");let t=0,a="";for(const e of Xe){const r=await Le(e.id);r.ok?t+=1:""===a&&(a=r.error)}""===a?re(e("sessions.batch.completed",{action:e("sessions.action.export"),count:t})):se(e("sessions.batch.failed",{action:e("sessions.action.export"),done:t,total:Xe.length,error:a})),te("")})()}},"export"===ee?e("sessions.status.working"):e("sessions.batch.export",{count:Xe.length})),r.createElement("button",{key:"archive",type:"button","data-testid":"sessions-batch-archive",style:ze,disabled:0===Ze.length||""!==ee||le||be,onClick:()=>{(async()=>{if(""!==ee||0===Ze.length)return;te("archive"),re(""),se("");let t=0,a="";const r=Ze.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&&z(e=>e.filter(e=>!n.includes(e))),""===a?re(e("sessions.batch.completed",{action:e("sessions.action.archive"),count:t})):se(e("sessions.batch.failed",{action:e("sessions.action.archive"),done:t,total:r.length,error:a})),te("")})()}},"archive"===ee?e("sessions.status.working"):e("sessions.batch.archive",{count:Ze.length})),!1!==d?.canUnarchive?r.createElement("button",{key:"unarchive",type:"button","data-testid":"sessions-batch-unarchive",style:ze,disabled:0===et.length||""!==ee||le||be,onClick:()=>{(async()=>{if(""!==ee||0===et.length)return;te("unarchive"),re(""),se("");let t=0,a="";const r=et.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&&z(e=>e.filter(e=>!n.includes(e))),""===a?re(e("sessions.batch.completed",{action:e("sessions.action.unarchive"),count:t})):se(e("sessions.batch.failed",{action:e("sessions.action.unarchive"),done:t,total:r.length,error:a})),te("")})()}},"unarchive"===ee?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:Re,disabled:0===tt.length||""!==ee||le||be,onClick:()=>{(async()=>{if(""!==ee||null!==ie||0===tt.length)return;te("delete-plan"),re(""),se("");const t=[];let a="";for(const r of tt)try{const n=await S("sessions-delete-plan",{id:r.id});n.ok?t.push(n.value):""===a&&(a=Xa(e,n.error||"unknown"))}catch(t){""===a&&(a=e("sessions.error.network"))}te(""),""===a&&t.length===tt.length?oe({batch:!0,plans:t,sessions:t.map(e=>e.session),consequences:["deletes-session-log"]}):se(e("sessions.batch.failed",{action:e("sessions.action.delete"),done:t.length,total:tt.length,error:a||e("sessions.error.network")}))})()}},"delete-plan"===ee?e("sessions.status.working"):e("sessions.batch.delete",{count:tt.length}))]):null,null===L&&"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:R,onChange:e=>{A&&nt(),M(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:N,onChange:e=>j(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:x,onChange:e=>w(e.target.checked)}),e("sessions.filter.subagent"))):null,""!==Ae?r.createElement("p",{style:{...Oe,color:"var(--dsw-alias-state-error-primary)"}},Ae+(!1!==d?.canUnarchive?"":" · "+e("sessions.oneWayHint"))):null,""!==X?r.createElement("p",{style:{...Oe,color:"var(--dsw-alias-state-error-primary)"}},X):null,""!==ae?r.createElement("p",{"data-testid":"sessions-batch-result",style:{...Oe,color:"var(--dsw-alias-state-success-primary)"}},ae):null,""!==ne?r.createElement("p",{"data-testid":"sessions-batch-error",style:{...Oe,color:"var(--dsw-alias-state-error-primary)"}},ne):null,(()=>{const t=null!==d&&Array.isArray(d.items)?d.items:[];return x&&"deleted"!==y&&t.length>0&&t.every(e=>void 0===e.subagent)?r.createElement("p",{"data-testid":"sessions-subagent-legacy-hint",style:{...Oe,color:"var(--dsh-svc-warning)"}},e("sessions.subagent.hostLegacy")):null})(),(()=>{if(null===L)return null;const a=null!==d&&Array.isArray(d.items)?d.items.find(e=>e.id===L.sessionId):void 0,n=""!==R&&"search"===L.view&&null!==W?W.hits.find(e=>e.sessionId===L.sessionId)?.title||"":void 0!==a&&""!==a.title?a.title:"",s=null!==d&&Array.isArray(d.items)?d.items.find(e=>e.id===L.sessionId):void 0,i="search"===L.view&&Array.isArray(L.hitItems)?L.hitItems.map(e=>Number(e.seq)).filter(e=>Number.isSafeInteger(e)):[],o="search"===L.view&&"number"==typeof L.centerSeq?i.indexOf(L.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")),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=K[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:{...ze,border:0,padding:0,color:"var(--dsw-alias-label-tertiary)",fontSize:"11px"},onClick:()=>((e,t)=>V(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:ze,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:ze,onClick:()=>{try{t.sessions?.open?.(L.sessionId)}catch(e){}}},e("sessions.detail.open")),r.createElement("button",{type:"button","data-testid":"sessions-detail-export",style:ze,disabled:J===L.sessionId,onClick:()=>{Be(L.sessionId)}},J===L.sessionId?e("sessions.detail.exporting"):e("sessions.detail.exportAll"))),"search"===L.view&&null!==L.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:ze,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(L.hitItems)?L.hitItems.length:0})),r.createElement("button",{type:"button","data-testid":"sessions-jump-prev",style:ze,disabled:void 0===l||P,onClick:()=>{void 0!==l&&$e(L.sessionId,l)}},e("sessions.hit.prev")),r.createElement("button",{type:"button","data-testid":"sessions-jump-next",style:ze,disabled:void 0===c||P,onClick:()=>{void 0!==c&&$e(L.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:{...ze,padding:"1px 8px",fontSize:"11px",...h("999px"),background:e===L.centerSeq?"var(--dsh-svc-tab-active-bg)":"transparent",color:e===L.centerSeq?"var(--dsh-svc-tab-active-text)":"var(--dsw-alias-label-secondary)"},onClick:()=>{$e(L.sessionId,e)}},"#"+e))),P&&0===L.items.length?r.createElement("p",{style:Oe},e("sessions.status.loading")):null,m(L.items,u),void 0!==L.cursor&&L.items.length>0?r.createElement("button",{type:"button","data-testid":"sessions-detail-more",style:ze,disabled:P,onClick:()=>{We(L.sessionId,L.cursor,L.view)}},e("sessions.detail.loadMore",{remaining:Math.max(0,L.total-L.items.length)})):null,void 0===L.cursor&&L.items.length>0?r.createElement("p",{style:Oe},e("sessions.detail.noMore",{total:L.total})):null):null,""!==F?r.createElement("p",{style:{...Oe,color:"var(--dsw-alias-state-error-primary)"}},F):null,"search"!==L.view?m(L.items,null):null,"search"!==L.view&&void 0!==L.cursor?r.createElement("button",{type:"button","data-testid":"sessions-detail-more",style:ze,disabled:P,onClick:()=>{We(L.sessionId,L.cursor,L.view)}},e("sessions.detail.loadMore",{remaining:Math.max(0,L.total-L.items.length)})):null,"search"!==L.view&&void 0===L.cursor&&L.items.length>0?r.createElement("p",{style:Oe},e("sessions.detail.noMore",{total:L.total})):null)})()??(()=>{if(u)return r.createElement("p",{style:Oe},e("sessions.status.loading"));if(""!==m)return r.createElement("p",{"data-testid":"sessions-error",style:{...Oe,color:"var(--dsw-alias-state-error-primary)"}},m);if(""!==R.trim()&&"deleted"!==y)return null===W?r.createElement("p",{style:Oe},e(H?"sessions.status.loading":"sessions.search.placeholder")):W.error?r.createElement("p",{style:{...Oe,color:"var(--dsw-alias-state-error-primary)"}},Xa(e,W.error)):0===W.hits.length?r.createElement("p",{style:Oe},e("sessions.empty.search",{query:R})):W.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:{...ze,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:{...ze,padding:"1px 8px",fontSize:"11px",...h("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,W.query||R,"sessions-hit-highlight-"+t.sessionId)))));if(0===Ve.length){const t="archived"===y?"sessions.empty.archived":"deleted"===y?"sessions.empty.deleted":"sessions.empty.all";return r.createElement("p",{style:Oe},e(t))}if("project"!==E||"deleted"===y)return Ve.map(ot);const t=[];for(const e of Ve){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=!C.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,T(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===ie)return null;const t=!0===ie.batch&&Array.isArray(ie.sessions)?ie.sessions:null,a=null===t&&ie.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:Ja(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:Ja(a.bytes)})),ie.consequences&&ie.consequences.includes("hides-from-official-sidebar")?r.createElement("li",null,e("sessions.delete.consequence.sidebar")):null):null,""!==ce?r.createElement("p",{style:{...Oe,color:"var(--dsw-alias-state-error-primary)"}},ce):null,r.createElement("div",{style:{display:"flex",justifyContent:"flex-end",gap:"8px"}},r.createElement("button",{type:"button","data-testid":"sessions-delete-cancel",style:ze,disabled:le,onClick:()=>{oe(null),ue("")}},e("sessions.delete.cancel")),r.createElement("button",{type:"button","data-testid":"sessions-delete-confirm",style:Me,disabled:le,onClick:()=>{(async()=>{if(null===ie||le)return;de(!0),ue("");const t=!0===ie.batch&&Array.isArray(ie.plans)?ie.plans:[ie];let a=0,r="";for(const n of t)try{const t=await S("sessions-delete",{planId:n.planId});t.ok?(a+=1,Fe(n.session)):""===r&&(r=Xa(e,t.error||"unknown"))}catch(t){""===r&&(r=e("sessions.error.network"))}!0===ie.batch?(oe(null),me(e=>e+1),""===r?(re(e("sessions.batch.completed",{action:e("sessions.action.delete"),count:a})),se("")):(re(""),se(e("sessions.batch.failed",{action:e("sessions.action.delete"),done:a,total:t.length,error:r})))):""===r?(oe(null),me(e=>e+1)):ue(r),de(!1)})()}},e(le?"sessions.status.working":"sessions.delete.confirm")))))})(),(()=>{if(null===ge)return null;const t=!0===ge.batch,a=Array.isArray(ge.items)?ge.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")),""!==fe?r.createElement("p",{style:{...Oe,color:"var(--dsw-alias-state-error-primary)"}},fe):null,r.createElement("div",{style:{display:"flex",justifyContent:"flex-end",gap:"8px"}},r.createElement("button",{type:"button","data-testid":"sessions-clear-cancel",style:ze,disabled:be,onClick:()=>{he(null),ye("")}},e("sessions.clear.cancel")),r.createElement("button",{type:"button","data-testid":"sessions-clear-confirm",style:Me,disabled:be,onClick:()=>{(async()=>{if(null===ge||be)return;ve(!0),ye("");const t=(Array.isArray(ge.items)?ge.items:[]).map(e=>e.id),a=!0===ge.batch;try{const r=await S("sessions-clear-deleted",{ids:t});if(r.ok)(e=>{const t=new Set(e),a=Za.deleted;void 0!==a&&Array.isArray(a.deleted)&&(Za.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))}}),z(e=>e.filter(e=>!t.has(e)))})(t),he(null),a&&(re(e("sessions.batch.completed",{action:e("sessions.action.clear"),count:t.length})),se(""));else{const n=Xa(e,r.error||"unknown");a?se(e("sessions.batch.failed",{action:e("sessions.action.clear"),done:0,total:t.length,error:n})):ye(n)}}catch(r){const n=e("sessions.error.network");a?se(e("sessions.batch.failed",{action:e("sessions.action.clear"),done:0,total:t.length,error:n})):ye(n)}finally{ve(!1)}})()}},e(be?"sessions.status.working":"sessions.clear.confirm")))))})())}function ir(){const e=ke(),[t,n]=Je.useEnabled(),s={color:"var(--dsw-alias-label-secondary)",fontSize:"12px",marginTop:"8px",lineHeight:1.5},[i,o]=a(Qt.getSnapshot());m(()=>Qt.subscribe(()=>o(Qt.getSnapshot())),[]),m(()=>(ga({all:!0}),()=>ha({all:!0})),[]);const[l,d]=a(ta()),[c,u]=a(""),p=i.providers||[],[g,b]=a(null),[v,f]=a(null),[y,k]=a({expiresAt:"",label:""}),[x,w]=a(null),[E,q]=a({name:"",value:""}),[C,T]=a(!1);m(()=>{if(!C)return;const e=setTimeout(()=>T(!1),3e3);return()=>clearTimeout(e)},[C]);const A=()=>{w(null),q({name:"",value:""}),T(!1)},I=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})},O=async()=>{if(null!==g){u("");try{const t={provider:g.provider};""!==y.expiresAt&&(t.expiresAt=y.expiresAt),""!==y.label&&(t.label=y.label);const a=await S("quota-reset-card",t);if(!0!==a?.ok)return void u(e("quota.saveFailed",{error:String(a?.error??"")}));k({expiresAt:"",label:""}),await ia({scope:"all"})}catch(t){const a=t instanceof Error&&"string"==typeof t.message&&""!==t.message.trim()?t.message.trim():"network";u(e("quota.saveFailed",{error:a}))}}},z=async t=>{u("");try{const a=await S("quota-refresh",{provider:t});if(!0!==a?.ok)return void u("unknown-provider"===a?.error?e("quota.unknownProvider"):"not-adapted"===a?.error?e("quota.unadapted"):e("quota.saveFailed",{error:String(a?.error??"")}));await ia({scope:"all"})}catch(t){u(e("quota.saveFailed",{error:"network"}))}},R=async t=>{u("");try{const a=await S("quota-config",t);if(!0!==a?.ok)return void u("unknown-provider"===a?.error?e("quota.unknownProvider"):e("quota.saveFailed",{error:String(a?.error??"")}));await ia({scope:"all"})}catch(t){u(e("quota.saveFailed",{error:"network"}))}},M=(e,t)=>R({provider:e,kind:t}),[N,j]=a(function(){try{const e=JSON.parse(localStorage.getItem(aa)??"null");return Array.isArray(e)?e.filter(e=>"string"==typeof e&&""!==e).slice(0,64):[]}catch(e){return[]}}()),[H,D]=a(!1),W=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)}(p.filter(e=>!0===e.adapted),N),$=p.filter(e=>!0!==e.adapted),L={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)"},B=(e,t)=>{const a=W.map(e=>e.provider),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]),j(a),function(e){try{localStorage.setItem(aa,JSON.stringify(e.slice(0,64)))}catch(e){}}(a))},[P,_]=a(""),[F,U]=a("");return r.createElement("div",{"data-testid":"remote-quota-card",style:{marginTop:"18px"}},r.createElement("div",{style:{fontSize:"14px",fontWeight:700,margin:"0 0 8px",color:"var(--dsw-alias-label-primary)"}},e("quota.cardTitle")),r.createElement("div",{style:{display:"flex",alignItems:"center",gap:"8px",marginBottom:"8px"}},r.createElement("label",{htmlFor:"dsh-service-quota-poll-select",style:{fontSize:"12px",color:"var(--dsw-alias-label-secondary)"}},e("quota.poll")),r.createElement("select",{id:"dsh-service-quota-poll-select","data-testid":"quota-poll-select",value:String(l),onChange:e=>{const t=Number.parseInt(e.target.value,10);Zt.includes(t)&&(d(t),function(e){try{localStorage.setItem(Xt,String(e))}catch(e){}}(t),null!==ca.nextDispose&&(ca.nextDispose(),ca.nextDispose=null),pa())},style:{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)"}},[{value:0,label:e("quota.poll.manual")}].concat(Zt.filter(e=>e>0).map(t=>({value:t,label:e("quota.poll.minute",{count:t})}))).map(e=>r.createElement("option",{key:e.value,value:String(e.value)},e.label)))),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)"}},e("quota.navToggle")),r.createElement("span",{style:s},e("quota.navToggleHint"))),r.createElement("button",{type:"button",role:"switch","data-testid":"quota-nav-switch","aria-checked":String(t),onClick:()=>n(!t),style:{width:"34px",height:"20px",...h("10px"),padding:0,flexShrink:0,position:"relative",border:"1px solid "+(t?"var(--dsw-alias-state-success-primary)":"var(--dsw-alias-border-l2)"),background:t?"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:t?"15px":"1px",width:"16px",height:"16px",...h("50%"),background:t?"#fff":"var(--dsw-alias-label-tertiary)"}}))),""!==c?r.createElement("p",{"data-testid":"quota-config-error",style:Object.assign({},s,{color:"var(--dsw-alias-state-error-primary)"})},c):null,...W.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-pressed":String(H),title:e("quota.reorder"),onClick:()=>D(!H),style:{fontSize:"12px",lineHeight:"20px",padding:"2px 12px",...h(999),border:"1px solid "+(H?"var(--dsw-alias-brand-primary)":"var(--dsh-svc-border-strong)"),background:"transparent",color:H?"var(--dsw-alias-brand-primary)":"var(--dsw-alias-label-primary)",cursor:"pointer"}},e("quota.reorder")))]:[],0===W.length?r.createElement("p",{style:s},e("quota.noAdapted")):r.createElement("div",{"data-testid":"quota-card-list",style:{display:"flex",flexDirection:"column",gap:"10px"}},W.map((t,a)=>{const n=r.createElement("span",{style:{fontWeight:600,fontSize:"12px",overflowWrap:"anywhere"}},"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:Se("neutral",{marginLeft:"6px",verticalAlign:"middle"})},e("quota.kindAuto")):null),s=Array.isArray(t.windows)?t.windows:[],i=v===t.provider,o=s.map(a=>Aa(a,e,t.provider));let l;if(!0===t.refreshing&&0===s.length)l=r.createElement("span",{style:{fontSize:"12px",color:"var(--dsw-alias-label-tertiary)"}},e("quota.refreshing"));else if(void 0!==t.errorCode&&0===s.length)l=r.createElement("span",{"data-testid":`quota-error-${t.provider}`,style:{fontSize:"12px",color:"var(--dsw-alias-state-error-primary)"}},Ta(t,e));else if(s.length>0){const a="cliproxy"===t.kind?Ma(s):null;l=a&&a.length>0?r.createElement("div",{"data-testid":`quota-card-families-${t.provider}`,style:{display:"flex",flexDirection:"column",gap:"10px"}},a.map((a,n)=>r.createElement("div",{key:`family-${a.family}`,"data-testid":`quota-card-family-${t.provider}-${a.family}`,style:{display:"flex",flexDirection:"column",gap:"10px",marginTop:0===n?"0":"4px",paddingTop:0===n?"0":"10px",borderTop:0===n?"none":"1px solid var(--dsw-alias-border-l1)"}},r.createElement("div",{"data-testid":`quota-card-family-title-${t.provider}-${a.family}`,style:{fontSize:"12px",fontWeight:600,color:"var(--dsw-alias-label-primary)"}},e("quota.family."+a.family)),r.createElement("div",{style:{display:"flex",flexDirection:"column",gap:"14px"}},a.windows.map(a=>Aa(a,e,t.provider)))))):r.createElement("div",{style:{display:"flex",flexDirection:"column",gap:"14px"}},o)}else l=r.createElement("span",{style:{fontSize:"12px",color:"var(--dsw-alias-label-tertiary)"}},e("quota.empty"));const d=Sa(t,s),c=null!==d?r.createElement(qa,{key:"peak-timeline",showCaption:!0,schedule:d}):null,p=Array.isArray(t.resetCards)?t.resetCards.map((a,n)=>{const s=Ca(a,e),i="string"==typeof a.id&&""!==a.id?a.id:`idx-${n}`;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.expired?"var(--dsw-alias-state-warn-primary)":"var(--dsw-alias-label-tertiary)"}},r.createElement("span",{style:{display:"flex",flexDirection:"column",gap:"2px"}},r.createElement("span",null,s.title),""!==s.expiry?r.createElement("span",null,s.expiry):null),r.createElement("button",{type:"button","data-testid":`quota-remove-${t.provider}-${i}`,onClick:()=>(async(t,a)=>{u("");try{await S("quota-reset-card",{provider:t,remove:!0,id:a}),await ia({scope:"all"})}catch(t){u(e("quota.saveFailed",{error:"network"}))}})(t.provider,i),style:{fontSize:"11px",padding:"2px 10px",...h(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")))}):[],m=null!==g&&g.provider===t.provider,N={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"},j=(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:y[n],onChange:e=>k({...y,[n]:e.target.value}),style:N}));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"}},n,r.createElement("div",{style:{display:"flex",alignItems:"center",gap:"5px"}},...H?[r.createElement("button",{type:"button","data-testid":`quota-move-up-${t.provider}`,"aria-label":e("quota.card.moveUp"),title:e("quota.card.moveUp"),disabled:0===a,onClick:()=>B(t.provider,-1),style:{display:"inline-flex",alignItems:"center",justifyContent:"center",width:"16px",height:"16px",padding:0,border:"none",background:"transparent",color:0===a?"var(--dsw-alias-label-tertiary)":"var(--dsw-alias-label-secondary)",cursor:0===a?"default":"pointer",opacity:0===a?.45:1,fontSize:"12px",lineHeight:"16px"}},"↑"),r.createElement("button",{type:"button","data-testid":`quota-move-down-${t.provider}`,"aria-label":e("quota.card.moveDown"),title:e("quota.card.moveDown"),disabled:a===W.length-1,onClick:()=>B(t.provider,1),style:{display:"inline-flex",alignItems:"center",justifyContent:"center",width:"16px",height:"16px",padding:0,border:"none",background:"transparent",color:a===W.length-1?"var(--dsw-alias-label-tertiary)":"var(--dsw-alias-label-secondary)",cursor:a===W.length-1?"default":"pointer",opacity:a===W.length-1?.45:1,fontSize:"12px",lineHeight:"16px"}},"↓")]:[],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:()=>z(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:va(t.fetchedAt)})):null)),l,...null!==c?[c]:[],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(i),onClick:()=>f(i?null:t.provider),style:{fontSize:"11px",lineHeight:"20px",padding:"2px 10px",...h(999),border:"1px solid var(--dsh-svc-border-strong)",background:"transparent",color:"var(--dsw-alias-label-primary)",cursor:"pointer"}},`${i?"▾":"▸"} ${e("quota.advanced")}`)),...i&&"unconfigured"===t.status&&Array.isArray(t.credentialHints)&&t.credentialHints.length>0?(()=>{const a=null!==x&&x.provider===t.provider,n=t.credentialHints,s=n.some(e=>e.name===E.name)?E.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=>{q({...E,name:e.target.value}),T(!1)},style:L},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:E.value,onChange:e=>q({...E,value:e.target.value}),autoComplete:"off",style:N})),r.createElement("button",{type:"button","data-testid":"quota-cred-save",onClick:()=>(async t=>{u("");try{const e=await S("quota-credential-set",{provider:t,name:E.name,value:E.value});if(!0!==e?.ok)return void u(I(e));A(),await z(t)}catch(t){u(e("quota.saveFailed",{error:"network"}))}})(t.provider),disabled:""===E.value.trim(),style:{minHeight:"28px",padding:"4px 12px",borderRadius:"var(--dsh-svc-radius-control)",border:"1px solid var(--dsw-alias-brand-primary)",background:""===E.value.trim()?"transparent":"var(--dsw-alias-brand-primary)",color:""===E.value.trim()?"var(--dsw-alias-label-tertiary)":"var(--dsh-svc-brand-text)",cursor:""===E.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:C?e("quota.credential.clearConfirm"):void 0,onClick:()=>{C?(T(!1),(async(t,a)=>{u("");try{const e=await S("quota-credential-unset",{provider:t,name:a});if(!0!==e?.ok)return void u(I(e));await z(t)}catch(t){u(e("quota.saveFailed",{error:"network"}))}})(t.provider,s)):T(!0)},style:{minHeight:"28px",padding:"4px 12px",borderRadius:"var(--dsh-svc-radius-control)",border:"1px solid var(--dsw-alias-state-error-primary)",background:C?"var(--dsw-alias-state-error-primary)":"transparent",color:C?"var(--dsh-svc-brand-text)":"var(--dsw-alias-state-error-primary)",cursor:"pointer",fontSize:"12px",whiteSpace:"nowrap"}},e(C?"quota.credential.clearConfirm":"quota.credential.clear"))]:[],r.createElement("button",{type:"button","data-testid":"quota-cred-cancel",onClick:A,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:[];b(null),w({provider:e.provider}),q({name:(t.find(e=>!0===e.configured)??t[0])?.name??"",value:""}),T(!1)})(t),style:{fontSize:"12px",lineHeight:"20px",padding:"4px 14px",...h(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"}`)))]})():[],...p,...i&&m?[r.createElement("div",{key:"reset-editor","data-testid":`quota-reset-editor-${t.provider}`,style:{display:"flex",flexWrap:"wrap",gap:"10px",alignItems:"flex-end",padding:"8px 10px",borderRadius:"8px",background:"var(--dsh-svc-raised-bg)"}},j(e("quota.resetCard.dateLabel"),"quota-reset-input-date","datetime-local","expiresAt"),j(e("quota.resetCard.nameLabel"),"quota-reset-input-name","text","label"),r.createElement("button",{type:"button","data-testid":"quota-reset-card-save",onClick:O,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:()=>b(null),style:Ee()},e("quota.resetCard.cancel")))]:[],...i?[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?M(t.provider,null):"__auto__"===e.target.value?(a=t.provider,R({provider:a,clear:!0})):M(t.provider,e.target.value)},style:L},ea.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:()=>(e=>{b({provider:e.provider}),k({expiresAt:"",label:""})})(t),style:{fontSize:"12px",lineHeight:"20px",padding:"4px 14px",...h(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")))]:[]]:[])})),...$.length>0?[r.createElement("div",{key:"quota-add-adapt","data-testid":"quota-add-adapt",style:{display:"flex",alignItems:"center",flexWrap:"wrap",gap:"8px",marginTop:W.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:P,onChange:e=>_(e.target.value),style:L},r.createElement("option",{value:""},e("quota.addPickProvider")),$.map(e=>r.createElement("option",{key:e.provider,value:e.provider},e.displayName||e.provider))),r.createElement("select",{"data-testid":"quota-add-kind",value:F,onChange:e=>U(e.target.value),style:L},r.createElement("option",{value:""},e("quota.addPickKind")),ea.map(t=>r.createElement("option",{key:t,value:t},e(`quota.kind.${t}`)))),r.createElement("button",{type:"button","data-testid":"quota-add-submit",disabled:""===P||""===F,onClick:()=>{M(P,F),_(""),U("")},style:{fontSize:"12px",padding:"3px 12px",borderRadius:"7px",border:"1px solid var(--dsw-alias-brand-primary)",background:""===P||""===F?"transparent":"var(--dsw-alias-brand-primary)",color:""===P||""===F?"var(--dsw-alias-label-tertiary)":"var(--dsh-svc-brand-text)",cursor:""===P||""===F?"default":"pointer"}},e("quota.adapt")))]:[])}function or(){const e=ke(),{value:n}=Q(),[s,i]=a(null),[o,l]=a(null),[d,c]=a(null),[u,p]=a(!1),[g,b]=a(0),[v,f]=a(null),[y,k]=a(null),[x,w]=a(null),[q,C]=a(null),[T,A]=a(!1),[I,O]=a(!1),[z,R]=a(null),[M,N]=a(!1),[j,H]=a(!1),[D,W]=a(null),[$,L]=a(!1),[B,P]=a({items:[],totalBytes:0}),[_,F]=a(!1),[U,V]=a(null),G=E(0),[Y,X]=a(null),[Z,ee]=a(null),[te,ae]=a(null),[re,ne]=a(null),[se,ie]=a(null),[oe,le]=a(!1),[de,ce]=a(!1),[ue,pe]=a(!1),[me,ge]=a(!1),[he,be]=a(null),[ve,ye]=a(null),[xe,Se]=a(null),[Ie,Oe]=a(null),[ze,We]=a(null),[$e,Le]=a(!1),[Be,Pe]=a(null),[_e,Fe]=a(!1),[Ue,Ke]=a(null),[Ge,Ye]=a(!1),[Je,Qe]=a(!1),[Xe,Ze]=a(null),[et,tt]=a("all"),[at,rt]=a(!1),[nt,st]=a(!1),[it,ot]=a(!1),[lt,dt]=a("today"),[ct,ut]=a("overview"),[pt,mt]=a(!1),gt=At(),ht=zt(),vt=(()=>{const[e,t]=a(Mt);return m(()=>(Rt.add(t),t(Mt),()=>Rt.delete(t)),[]),e})(),ft={timezoneOffsetMinutes:(new Date).getTimezoneOffset()};m(()=>{fe()},[]),m(()=>{jt().then(e=>{e&&e.ok&&(be(e.value.current),ye(e.value.pluginVersion||null))})},[]);const yt=t=>{t&&!1!==t.ok?(Se(t.value),Oe(null)):Oe(e("update.unavailable"))};m(()=>{let t=!0;return S("check-update",{}).then(e=>{t&&yt(e)}).catch(()=>{t&&Oe(e("update.unavailable"))}),()=>{t=!1}},[]),m(()=>{if(!J("healthDiagnostics"))return()=>{};let t=!0;return S("permissions-plan",{}).then(a=>{t&&(a&&!1!==a.ok?C(a.value):R(e("permissions.error")))}).catch(()=>{t&&R(e("permissions.error"))}),()=>{t=!1}},[n.healthDiagnostics]),m(()=>{if(!J("modelUsage"))return()=>{};let t=!0;return S("usage",ft).then(async a=>{if(t)if(a&&!1!==a.ok){if(We(a.value),!(a.value.updatedAt>0&&Date.now()-a.value.updatedAt<=3e5))try{const e=await S("usage-refresh",ft);t&&e&&e.ok&&We(e.value)}catch(e){}}else Pe(e("usage.error"))}).catch(()=>{t&&Pe(e("usage.error"))}),()=>{t=!1}},[n.modelUsage]),m(()=>{if(!J("backupMaintenance"))return()=>{};let t=!0;return S("backup-list",{}).then(a=>{t&&(a&&!1!==a.ok?P(a.value):X(e("backup.error")))}).catch(()=>{t&&X(e("backup.error"))}),()=>{t=!1}},[n.backupMaintenance]),m(()=>{let a=!0,r=()=>{};const n=async()=>{try{const e=await S("health",{});if(!a)return;if(!e||!1===e.ok)throw new Error(e&&e.error?e.error:"health failed");i(e.value),l(null)}catch(t){if(!a)return;l(e("health.error"))}a&&(r=t.timer.timeout(n,5e3))};return n(),()=>{a=!1,r()}},[]);const kt=async(t=!1)=>{if(J("healthDiagnostics")&&!(!t&&g>0&&Date.now()-g<=3e4)){p(!0);try{const e=await S("diagnostics",{});if(!e||!1===e.ok)throw new Error("diagnostics failed");c(e.value),b(Date.now())}catch(t){l(e("health.error"))}finally{p(!1)}}},xt=async()=>{Le(!0),Pe(null);try{const e=await S("usage-refresh",ft);if(!e||!1===e.ok)throw new Error("usage refresh failed");We(e.value)}catch(t){Pe(e("usage.error"))}finally{Le(!1)}},wt=t=>{const a="backup.error."+String(t||""),r=e(a);return r===a?e("backup.restoreError"):r},Et=async()=>{if(se&&!_){F(!0),X(null);try{const e=await S("backup-restore-commit",{planId:se.planId});if(!e||!1===e.ok)throw Object.assign(new Error("backup restore failed"),{code:e?.error});if(ae(null),ne(null),ie(null),!0===e.value?.restart?.requiresManualRestart)le(!0);else{const t=e.value?.restart?.previousInstanceId||e.value?.previousInstanceId;"string"==typeof t&&t.length>0&&$t(t).catch(()=>{})}}catch(e){ie(null),X(wt(e?.code))}finally{F(!1)}}},St=()=>{_||(ae(null),ne(null),ie(null))},qt={"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"},Ct=async()=>{if(!Ht){Ht=!0;try{let t=ht;if(null===t&&(await jt(),t=Ot),!Ge&&null!==t&&!0===t.manualStartLikely)return Ke(null),void Ye(!0);Ye(!1),Fe(!0),Ke(null);const a=await jt(),r=a&&a.ok?a.value.instanceId:void 0,n=await S("upgrade",{});if(!n||!1===n.ok){const t=n&&"string"==typeof n.error?n.error.trim():"",a="string"==typeof t&&t.length>0?qt[t]:void 0;return void Ke(void 0!==a?e(a):e("update.upgradeErrorDetail",{detail:t||"upgrade failed"}))}n.value&&!0===n.value.requiresManualRestart?Qe(!0):"string"==typeof r&&r.length>0&&$t(r).catch(()=>{}),(Nt=null,jt()).catch(()=>{}),(async()=>{const e=await S("check-update",{}).catch(()=>null);e&&yt(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),Ke(a?e("update.upgradeErrorDetail",{detail:a}):e("update.upgradeError"))}finally{Ht=!1,Fe(!1)}}},Tt=we(),It=(we("primary"),we("brandGhost")),Dt=we("neutral"),Wt=we("danger"),Lt=we("dangerGhost"),Bt=we("ghost"),Pt=Object.assign({},Tt,{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}),Ut={display:"flex",alignItems:"center",gap:"8px",marginTop:"12px",flexWrap:"wrap"},Kt={color:"var(--dsw-alias-label-secondary)",fontSize:"12px",marginTop:"8px",lineHeight:1.5},Gt={padding:"4px 0 14px",marginBottom:"12px",color:"var(--dsw-alias-label-primary)"},Yt=qe(),Qt={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"},Xt={color:"var(--dsw-alias-brand-primary)",borderBottom:"2px solid var(--dsw-alias-brand-primary)",fontWeight:700},Zt=Object.assign({},Qt,{padding:"3px 6px",fontSize:"11px"}),ea={fontSize:"14px",fontWeight:700,margin:"0 0 8px",color:"var(--dsw-alias-label-primary)"},ta=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"},aa=(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)),ra=e=>{const t=e=>String(e).padStart(2,"0");return`${e.getFullYear()}-${t(e.getMonth()+1)}-${t(e.getDate())}`},na=[];for(let e=6;e>=0;e-=1){const t=new Date;t.setHours(0,0,0,0),t.setDate(t.getDate()-e),na.push({key:ra(t),label:`${t.getMonth()+1}/${t.getDate()}`})}const sa=[["inputTokens","usage.input","#79aaf7"],["outputTokens","usage.output","#f1b35b"],["cacheTokens","usage.cache","#48c7b0"]],ia=e=>{const t=ze&&ze.days?ze.days[e]:null;if(!t)return{steps:0,inputTokens:0,outputTokens:0,cacheReadTokens:0,cacheWriteTokens:0,cacheHitRate:0};if("all"===et)return t.totals;const a=t.projects.find(e=>e.id===et);return a?a.totals:{steps:0,inputTokens:0,outputTokens:0,cacheReadTokens:0,cacheWriteTokens:0,cacheHitRate:0}},oa=e=>{const t=Number(e.inputTokens||0)+Number(e.cacheReadTokens||0)+Number(e.cacheWriteTokens||0);return 0===t?0:Number(e.cacheReadTokens||0)/t},la=e=>Number(e.inputTokens||0)+Number(e.outputTokens||0)+Number(e.cacheReadTokens||0)+Number(e.cacheWriteTokens||0),da=(e,t)=>"cacheTokens"===t?e.cacheReadTokens+e.cacheWriteTokens:e[t]||0,ca=e=>K(e,{invalid:"0"}),ua=(t,a)=>"cacheHitRate"===a?(100*Number(t)).toFixed(1)+"%":"steps"===a?e("usage.stepsValue",{count:Number(t).toLocaleString()}):ca(t),pa=na.map(e=>ia(e.key)),ma=pa.map(e=>sa.reduce((t,[a])=>t+da(e,a),0)),ga=Math.max(1,...ma),ha=[ga,.75*ga,.5*ga,.25*ga,0],ba=ia(na[6].key),va=na.reduce((e,t)=>{const a=ia(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}),fa=va.inputTokens+va.cacheReadTokens+va.cacheWriteTokens;va.cacheHitRate=0===fa?0:va.cacheReadTokens/fa;const ya="all"===et?(ze?.projects||[]).map(e=>e.id):[et],ka=(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)},xa=new Map,wa=new Map,Ea=new Map,Sa=new Set(na.map(e=>e.key)),qa=na[na.length-1].key;for(const[e,t]of Object.entries(ze?.days||{})){const a=[Ea];Sa.has(e)&&a.push(wa),e===qa&&a.push(xa);for(const e of t.projects)if(ya.includes(e.id))for(const t of e.models)for(const e of a)ka(e,t)}const Ca=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:ta(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,n,s,i]=a.split(":");if("ok"===t.status&&0===(Number(s)||0))return e("health.detail.plugin-compat.ok",{total:r});const o=[];return(Number(n)||0)>0&&o.push(e("plugin.compat.issue.broken",{count:n})),(Number(s)||0)>0&&o.push(e("plugin.compat.issue.declared",{count:s})),(Number(i)||0)>0&&o.push(e("plugin.compat.issue.unknown",{count:i})),o.join(",")}return e("health.detail.generic",{status:e(`health.status.${t.status}`)})},Ta=(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",ca(da(e,"inputTokens")+da(e,"outputTokens")+da(e,"cacheTokens"))],...sa.map(([t,a])=>[a,ca(da(e,t))]),["usage.steps",ua(e.steps,"steps")],["usage.hitRate",ua(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)))),Aa=[...("today"===lt?xa:"all"===lt?Ea:wa).values()].sort((e,t)=>la(t)-la(e)||t.steps-e.steps||e.id.localeCompare(t.id)),Ia=it?Aa:Aa.slice(0,3),Oa=Math.max(0,Aa.length-3),za=Math.max(1,...Ia.map(e=>la(e))),Ra=e=>(e||[]).filter(e=>"all"===et||e.projectId===et).sort((e,t)=>t.count-e.count||e.key.localeCompare(t.key)),Ma=Ra(ze?.errors?.models),Na=Ra(ze?.errors?.tools),ja=(t,a)=>r.createElement("div",{key:t,style:{display:"grid",gap:"6px",marginTop:"8px"}},0===a.length?r.createElement("p",{style:Kt},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)))),Ha=r.createElement("div",{key:"usage-section","data-testid":"usage-card",style:Gt},r.createElement("div",{style:ea},e("usage.structure")),r.createElement("p",{style:Object.assign({},Kt,{marginTop:"-4px"})},e("usage.structureHint")),ze&&ze.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({},Qt,"all"===et?Xt:{color:"var(--dsw-alias-label-secondary)",borderBottom:"2px solid transparent"}),onClick:()=>tt("all")},e("usage.allProjects")),ze.projects.map(e=>r.createElement("button",{key:e.id,style:Object.assign({},Qt,et===e.id?Xt:{color:"var(--dsw-alias-label-secondary)",borderBottom:"2px solid transparent"}),onClick:()=>tt(e.id)},e.title))):null,ze&&ze.indexedSessions>0?r.createElement("div",{"data-testid":"usage-statistics-region",style:Object.assign({},Yt,{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"}},sa.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:Dt,onClick:xt,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)"}},ha.map((e,t)=>r.createElement("span",{key:t,style:{position:"absolute",right:"7px",top:25*t+"%",transform:4===t?"translateY(-100%)":"translateY(-50%)"}},ca(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)"}},ha.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"}})),na.map((t,a)=>r.createElement("div",{key:t.key,"aria-label":e("usage.barDay",{day:t.label,total:ca(ma[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,ma[a]/ga*144)}px`,display:"flex",flexDirection:"column-reverse",justifyContent:"flex-start",borderRadius:"4px 4px 0 0",overflow:"hidden"}},sa.map(([e,n,s])=>{const i=da(pa[a],e),o=0===ma[a]?0:i/ma[a]*100,l=`${t.key}-${e}`,d=Xe&&Xe.id===l;return r.createElement("div",{key:e,"data-testid":`usage-segment-${l}`,"data-value":i,onMouseEnter:e=>Ze({id:l,date:t.key,totals:pa[a],x:e.clientX,y:e.clientY}),onMouseMove:e=>Ze(t=>t&&t.id===l?Object.assign({},t,{x:e.clientX,y:e.clientY}):t),onMouseLeave:()=>Ze(null),style:{height:`${o}%`,minHeight:i>0?"2px":0,background:s,opacity:Xe&&!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"}},na.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:ca(ma.reduce((e,t)=>e+t,0))})),Xe?r.createElement("div",{"data-testid":"usage-tooltip",style:{position:"fixed",left:`${Xe.x+12}px`,top:`${Xe.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:Xe.date})}\n${e("usage.tooltip.input",{value:Number(Xe.totals.inputTokens||0).toLocaleString()})}\n${e("usage.tooltip.output",{value:Number(Xe.totals.outputTokens||0).toLocaleString()})}\n${e("usage.tooltip.cache",{value:Number((Xe.totals.cacheReadTokens||0)+(Xe.totals.cacheWriteTokens||0)).toLocaleString()})}`):null,r.createElement("div",{style:{display:"grid",gridTemplateColumns:"repeat(2, minmax(0, 1fr))",gap:"8px",marginTop:"10px"}},Ta("today","usage.today",ba),Ta("seven","usage.sevenDays",va)),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.${lt}`)),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({},Zt,lt===t?Xt:{color:"var(--dsw-alias-label-secondary)",borderBottom:"2px solid transparent"}),onClick:()=>dt(t)},e(`usage.modelScope.${t}`))))),Ia.map((t,a)=>{const n=la(t),s=Math.round(n/za*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"}},ca(n))),r.createElement("div",{"data-testid":`usage-model-bar-${t.id}`,"data-value":n,"aria-label":e(`usage.modelBar.${lt}`,{model:t.id,total:ca(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}},sa.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:ua(oa(t),"cacheHitRate"),input:ca(t.inputTokens),output:ca(t.outputTokens)})))}),Oa>0?r.createElement("button",{style:Object.assign({},Pt,{borderTop:"1px solid var(--dsw-alias-border-l1)",marginTop:"2px"}),onClick:()=>ot(e=>!e)},`${it?"▾":"▸"} ${e(it?"usage.models.less":"usage.models.more",{count:Oa})}`):null)):r.createElement("p",{style:Kt},Be||e("usage.empty")),...ze&&ze.indexedSessions>0?[]:[r.createElement("div",{key:"usage-refresh-fallback",style:Ut},r.createElement("button",{style:Dt,"data-variant":"neutral",onClick:xt,disabled:$e},e($e?"usage.refreshing":"usage.refresh")))]),$a=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}`:""}`:"—",Ba=r.createElement("div",{key:"container-info",style:{marginTop:"18px"}},r.createElement("div",{style:ea},e("overview.container")),s?r.createElement("div",{"data-testid":"health-display",style:Object.assign({},Yt,{display:"grid",gridTemplateColumns:"repeat(2, minmax(0, 1fr))",gap:"8px"})},aa("health.platform",$a),aa("health.nodeVersion","string"==typeof s.nodeVersion&&s.nodeVersion?s.nodeVersion:"—"),aa("health.uptime",(t=>{const a=Math.floor(Number(t)/60);return e("health.uptimeValue",{hours:Math.floor(a/60),minutes:a%60})})(s.uptimeSeconds)),aa("health.rss",(e=>{const t=Number(e)/1048576;return(Math.round(10*t)/10).toLocaleString(void 0,{maximumFractionDigits:1})+" MB"})(s.rssBytes)),aa("health.liveSessions",String(s.liveSessions)),aa("health.persistedSessions",String(s.persistedSessions)),aa("health.activeAgents",String(s.activeAgents)),aa("health.activeJobs",String(s.activeJobs))):r.createElement("p",{style:Kt},o||e("version.loading"))),Pa=r.createElement("div",{key:"overview-errors",style:{marginTop:"18px"}},r.createElement("div",{"data-testid":"overview-errors-title",style:ea},e("overview.errors")),r.createElement("div",{"data-testid":"overview-errors-region",style:Yt},r.createElement("div",{style:Object.assign({},Kt,{margin:"-3px 0 7px"})},e("usage.errors.recent")),r.createElement("div",{style:{display:"grid",gap:"7px"}},r.createElement("div",null,r.createElement("button",{style:Pt,onClick:()=>rt(e=>!e)},`${at?"▾":"▸"} ${e("usage.errors.toggle",{count:Ma.length})}`),at?r.createElement("div",{style:{padding:"0 2px 8px"}},ja("model",Ma)):null),r.createElement("div",null,r.createElement("button",{style:Pt,onClick:()=>st(e=>!e)},`${nt?"▾":"▸"} ${e("usage.toolErrors.toggle",{count:Na.length})}`),nt?r.createElement("div",{style:{padding:"0 2px 8px"}},ja("tool",Na)):null)))),_a=r.createElement("div",{"data-testid":"health-diagnostics-region",style:Yt},d&&"ok"!==d.status?r.createElement("div",{style:{marginTop:"10px",padding:"9px 11px",borderRadius:"7px",background:"error"===d.status?"rgba(211,51,51,0.1)":"rgba(198,128,0,0.12)",border:"1px solid "+("error"===d.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:Kt},e("health.alert.diagnostics",{status:e("health.overall."+d.status)}))):null,d?r.createElement("div",{"data-testid":"health-check-list",style:Object.assign({},Yt,{marginTop:"10px",padding:"8px 10px"})},d.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",...h("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)"}},Ca(t))))})):null),Fa=Array.isArray(d?.pluginIssues)?d.pluginIssues:[],Ua=0===Fa.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)"}},Fa.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=v===t.entryId,l=y===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",...h("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({},Kt,{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:Wt,disabled:l,onClick:()=>(async t=>{if(null!==t&&"object"==typeof t&&null===y){k(t.entryId),w(null);try{const e=await S("plugin-restart",{entryId:t.entryId});if(!e||!0!==e.ok)throw Object.assign(new Error("plugin restart failed"),{code:e?.error});f(null),await kt(!0)}catch(t){f(null),w((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:Bt,disabled:l,onClick:()=>{f(null),w(null)}},e("plugin.restartCancel")))):r.createElement("button",{type:"button","data-testid":`plugin-restart-${t.entryId}`,style:Lt,disabled:l,onClick:()=>{f(t.entryId),w(null)}},e(l?"plugin.restarting":"plugin.restart"))):null,x?r.createElement("p",{"data-testid":"plugin-restart-error",style:Object.assign({},Kt,{margin:"4px 0 0",color:"var(--dsw-alias-state-error-primary)"})},x):null))})),Ka=null!==d?.pluginCompat&&"object"==typeof d?.pluginCompat?d.pluginCompat:null,Va=Array.isArray(Ka?.issues)?Ka.issues:[],Ya=Array.isArray(Ka?.declaredOnly)?Ka.declaredOnly:[],Ja=Array.isArray(Ka?.unknown)?Ka.unknown:[],Qa=[...Va.map((e,t)=>({key:`broken-${t}`,kind:"broken",moduleName:e.moduleName,breaks:e.breaks})),...Ya.map((e,t)=>({key:`declared-${t}`,kind:"declared",moduleName:e.moduleName})),...Ja.map((e,t)=>({key:`unknown-${t}`,kind:"unknown",moduleName:e.moduleName,reason:e.reason}))],Xa=null===Ka||0===Qa.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)"}},Qa.map((t,a)=>{const n="broken"===t.kind,s=n?"var(--dsh-svc-warning)":"var(--dsh-svc-info)",i=n?t.breaks.map(t=>e("plugin.compat.break."+t)).join(";"):"declared"===t.kind?e("plugin.compat.declared"):e(`plugin.compat.unknown.${t.reason}`);return r.createElement("div",{key:t.key,"data-testid":`plugin-compat-${t.key}`,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",...h("50%"),marginTop:"6px",background:s}}),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),n?r.createElement("span",{style:{fontSize:"11px",fontWeight:650,color:"var(--dsh-svc-warning)"}},e("plugin.compat.issue.broken",{count:1})):"declared"===t.kind?r.createElement("span",{style:{fontSize:"11px",fontWeight:650,color:"var(--dsh-svc-info)"}},e("plugin.compat.issue.declared",{count:1})):null),r.createElement("div",{style:{fontSize:"11px",marginTop:"3px",lineHeight:1.5,overflowWrap:"anywhere",color:n?"var(--dsh-svc-warning)":"var(--dsh-svc-text-muted)"}},i)))})),Za=q&&!0===q.supported?q.items.filter(e=>!1===e.writable).length:0,er=Za>0||D&&(D.ownerIssues>0||D.directoryModeIssues>0||D.fileModeIssues>0||D.unreadable>0),tr=q&&!0===q.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:ea},e("permissions.title")),r.createElement("button",{type:"button","data-testid":"permissions-toggle","aria-expanded":String(j),onClick:()=>H(e=>!e),style:{fontSize:"12px",lineHeight:"20px",padding:"2px 12px",...h(999),border:"1px solid var(--dsh-svc-border-strong)",background:"transparent",color:Za>0?"var(--dsw-alias-state-warn-primary)":"var(--dsw-alias-label-primary)",cursor:"pointer"}},`${j?"▾":"▸"} ${e(j?"permissions.hide":"permissions.show")}${Za>0?` · ${Za}`:""}`)),j?r.createElement("div",{style:Object.assign({},Yt,{marginTop:"4px"})},r.createElement("p",{style:Kt},e("permissions.description")),Za>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:Kt},e("permissions.summary.warning",{count:Za}))):null,r.createElement("p",{style:Object.assign({},Kt,{fontWeight:600,color:Za>0?"var(--dsw-alias-state-warn-primary)":"var(--dsw-alias-label-primary)"})},e(Za>0?"permissions.summary.warning":"permissions.summary.ok",{count:Za>0?Za:q.items.length})),r.createElement("p",{style:Object.assign({},Kt,{fontWeight:600})},e("permissions.target",{owner:q.targetOwner})),r.createElement("div",{style:{display:"flex",gap:"8px",flexWrap:"wrap"}},r.createElement("button",{style:Dt,onClick:()=>N(e=>!e)},e(M?"permissions.hideDetails":"permissions.showDetails")),r.createElement("button",{style:Dt,"data-variant":"neutral",onClick:async()=>{if(q&&!0===q.supported){L(!0),R(null);try{const e=await S("permissions-deep",{planId:q.planId});if(!e||!1===e.ok)throw new Error("deep permission check failed");W(e.value)}catch(t){R(e("permissions.error"))}finally{L(!1)}}},disabled:$},e($?"permissions.deepChecking":"permissions.deep"))),D?r.createElement("p",{style:Kt},e("permissions.deepSummary",{scanned:D.scanned,duration:D.durationMs,owner:D.ownerIssues,directories:D.directoryModeIssues,files:D.fileModeIssues,unreadable:D.unreadable})):null,M?r.createElement("div",{style:{display:"grid",gap:"8px",marginTop:"8px"}},q.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,T?r.createElement("div",{style:{marginTop:"10px"}},r.createElement("p",{style:Object.assign({},Kt,{color:"var(--dsw-alias-state-error-primary)"})},e("permissions.confirmHint")),r.createElement("div",{style:{display:"flex",gap:"8px"}},r.createElement("button",{style:Wt,disabled:I,onClick:async()=>{if(q&&!0===q.supported){O(!0),R(null);try{const e=await S("permissions-repair",{planId:q.planId});if(!e||!1===e.ok)throw new Error("permission repair failed");C(e.value),A(!1)}catch(t){R(e("permissions.error"))}finally{O(!1)}}}},e(I?"permissions.repairing":"permissions.confirm")),r.createElement("button",{style:Bt,disabled:I,onClick:()=>A(!1)},e("permissions.cancel")))):er?r.createElement("button",{style:Object.assign({},Lt,{marginTop:"10px"}),"data-variant":"dangerGhost",disabled:I,onClick:()=>A(!0)},e("permissions.repair")):null,z?r.createElement("p",{style:Object.assign({},Kt,{color:"var(--dsw-alias-state-error-primary)"})},z):null):null):null,ar=r.createElement("div",{key:"health-section","data-testid":"health-card",style:Gt},_a,Ua,Xa,tr),rr=_&&!0===U?.active,nr=rr&&U.phase||"copy",or={copy:1,archive:2,validate:3,publish:4}[nr]||1,lr=(()=>{if(!rr)return 0;const e=Number(U.totalBytes)||0;let t;if("copy"===nr)t=e>0?Math.min(30,Math.floor(U.copiedBytes/e*30)):0;else if("archive"===nr){const a=e>0?Math.min(1,Number(U.archiveBytes)/e):0;t=Math.min(70,30+Math.floor(40*a))}else t="validate"===nr?70:100;const a=Math.max(G.current,t);return G.current=a,a})(),dr=rr?"copy"===nr?`${ta(U.copiedBytes)} / ${ta(U.totalBytes)}`:U.archiveBytes>0?ta(U.archiveBytes):"":"",cr=r.createElement("div",{key:"backup-section"},r.createElement("div",{style:ea},e("backup.title")),r.createElement("div",{style:Object.assign({},Yt,{marginTop:"4px"})},r.createElement("p",{style:Kt},e("backup.description")),r.createElement("div",{style:{display:"flex",gap:"8px",marginTop:"12px",flexWrap:"wrap"}},r.createElement("button",{style:Object.assign({},It,{flex:1,minWidth:0,display:"inline-flex",alignItems:"center",justifyContent:"center",textAlign:"center"}),"data-variant":"brandGhost",onClick:async()=>{F(!0),X(null),V(null),G.current=0;let e=!1,a=()=>{};const r=async()=>{if(!e){try{const t=await S("backup-progress",{});!e&&t&&t.ok&&V(!0===t.value?.active?t.value:null)}catch(e){}e||(a=t.timer.timeout(r,400))}};r();try{const e=await S("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){X(wt(e?.code))}finally{e=!0,a(),V(null),F(!1)}},disabled:_},e(_?"backup.creating":"backup.create")),r.createElement("label",{style:Object.assign({},Dt,{flex:1,minWidth:0,display:"inline-flex",alignItems:"center",justifyContent:"center",textAlign:"center",cursor:ue?"default":"pointer"})},e(ue?"backup.importing":"backup.import"),r.createElement("input",{type:"file",accept:".tar.gz,application/gzip",disabled:ue,onChange:t=>{const a=t.target.files&&t.target.files[0];if(t.target.value="",!a)return;pe(!0),X(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 S("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){X(t?.code?wt(t.code):e("backup.error"))}finally{pe(!1)}},r.onerror=()=>{pe(!1),X(e("backup.error"))},r.readAsArrayBuffer(a)},style:{display:"none"}}))),_&&!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."+nr,{current:or,total:4})),r.createElement("span",null,dr)),r.createElement("div",{style:{marginTop:"5px",height:"6px",...h("999px"),background:"var(--dsh-svc-raised-bg)",border:"1px solid var(--dsw-alias-border-l1)",overflow:"hidden"}},r.createElement("div",{style:{height:"100%",width:lr+"%",background:"var(--dsw-alias-brand-primary)",transition:"width 240ms ease"}}))):null,r.createElement("p",{style:Kt},e("backup.total",{size:ta(B.totalBytes)})),oe?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({},Kt,{margin:"4px 0 0"})},e("backup.manualRestartBody"))):null,Y?r.createElement("p",{style:Object.assign({},Kt,{color:"var(--dsw-alias-state-error-primary)"})},Y):null,0===B.items.length?r.createElement("p",{style:Kt},e("backup.empty")):B.items.length>10?r.createElement("button",{style:Object.assign({},Bt,{marginTop:"8px"}),onClick:()=>ge(e=>!e)},e(me?"backup.hideRecords":"backup.showRecords")):null,B.items.length>0&&(B.items.length<=10||me)?r.createElement("div",{style:{marginTop:"10px",display:"grid",gap:"8px"}},B.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"}},`${ta(t.sizeBytes)} · ${new Date(t.createdAt).toLocaleString()}`)),r.createElement("div",{style:{display:"flex",gap:"6px",flexShrink:0}},Z===t.id||te===t.id?null:r.createElement("button",{style:Ee(),disabled:de||_,onClick:()=>(async t=>{ce(!0),X(null);try{const e=await S("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){X(e("backup.exportError"))}finally{ce(!1)}})(t.id)},e(de?"backup.exporting":"backup.export")),Z===t.id||te===t.id?null:r.createElement("button",{style:Ee(),disabled:_,onClick:()=>(async e=>{F(!0),X(null),le(!1),ne(null),ie(null),ae(e);try{const t=await S("backup-inspect",{id:e});if(!t||!1===t.ok)throw Object.assign(new Error("backup inspect failed"),{code:t?.error});if(ne(t.value),!0!==t.value.validForRestore)return;const a=await S("backup-restore-prepare",{id:e});if(!a||!1===a.ok)throw Object.assign(new Error("backup prepare failed"),{code:a?.error});ie(a.value)}catch(e){X(wt(e?.code))}finally{F(!1)}})(t.id)},e(_&&te===t.id?"backup.inspecting":"backup.restore")),Z===t.id||te===t.id?null:r.createElement("button",{style:Object.assign({},Lt,{minHeight:"28px",padding:"4px 9px"}),"data-variant":"dangerGhost",disabled:_,onClick:()=>ee(t.id)},e("backup.delete")))),Z===t.id?r.createElement("div",{style:{marginTop:"8px"}},r.createElement("p",{style:Object.assign({},Kt,{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:Wt,disabled:_,onClick:()=>(async t=>{F(!0),X(null);try{const e=await S("backup-delete",{id:t});if(!e||!1===e.ok)throw new Error("backup failed");P(e.value),ee(null)}catch(t){X(e("backup.error"))}finally{F(!1)}})(t.id)},e("backup.confirm")),r.createElement("button",{style:Bt,disabled:_,onClick:()=>ee(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)"}},_&&null===re?r.createElement("p",{style:Kt},e("backup.inspecting")):null!==re?r.createElement("div",null,r.createElement("div",{style:{fontWeight:650,color:re.validForRestore?"var(--dsh-svc-success)":"var(--dsh-svc-danger)"}},e(re.validForRestore?"backup.integrity.ok":"backup.integrity.invalid")),r.createElement("p",{style:Object.assign({},Kt,{margin:"4px 0 0"})},e("backup.integrity.summary",{entries:re.archive?.entryCount||0,size:ta(re.archive?.logicalBytes||0),sessions:re.sections?.sessions?.files||0,config:re.sections?.config?.files?.length||0,profiles:re.sections?.profiles?.count||0})),!0!==re.validForRestore?r.createElement("ul",{style:Object.assign({},Kt,{margin:"6px 0 0",paddingLeft:"18px",color:"var(--dsh-svc-danger)"})},(re.issues||[]).map((e,t)=>r.createElement("li",{key:t},wt(e.code)))):null):null,null!==se?r.createElement("div",{style:{marginTop:"8px"}},r.createElement("p",{style:Object.assign({},Kt,{color:"var(--dsw-alias-state-warn-primary)",margin:"0 0 6px"})},e("backup.restoreHint")),r.createElement("ul",{style:Object.assign({},Kt,{margin:"0 0 8px",paddingLeft:"18px"})},r.createElement("li",null,e("backup.plan.sessions")),r.createElement("li",null,e("backup.plan.config",{replace:se.targets?.config?.replace?.length||0,remove:se.targets?.config?.remove?.length||0})),r.createElement("li",null,e("backup.plan.profiles",{count:se.targets?.profiles?.upsert?.length||0}))),r.createElement("p",{style:Object.assign({},Kt,{margin:"0 0 8px"})},e("backup.plan.expires",{time:new Date(se.expiresAt).toLocaleTimeString()})),r.createElement("div",{style:{display:"flex",gap:"8px"}},r.createElement("button",{style:Wt,disabled:_,onClick:Et},e("backup.restoreConfirm")),r.createElement("button",{style:Bt,disabled:_,onClick:St},e("backup.cancel")))):r.createElement("button",{style:Bt,disabled:_,onClick:St},e("backup.cancel"))):null))):null)),ur=(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(pt?"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:()=>mt(e=>!e)},(m=pt,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))},pr=xe?.dsh,mr=pr&&"unpublished"!==pr.status&&"unavailable"!==pr.status&&!pr.upToDate,gr=(e=>{const t=Vt(e,Ft);return null!==t&&t>=0})(he),hr=xe?.plugin&&!xe.plugin.upToDate&&"available"===xe.plugin.status,br=1===Vt(vt,ve||xe?.plugin?.current||null),vr=Je||br,fr=vr&&null!==vt?Object.assign({},xe?.plugin,{current:vt,restartPending:!0}):xe?.plugin,yr=!hr||vr||Ge?null:r.createElement("button",{style:Object.assign({},Dt,{minHeight:"24px",padding:"2px 8px",fontSize:"11px"}),disabled:_e,onClick:Ct},e(_e?"update.upgrading":"update.upgrade")),kr=Je||br&&null!==ht&&!0===ht.manualStartLikely,xr=r.createElement("span",{key:"dsh-support-bound","data-testid":"version-dsh-support-bound",style:{fontSize:"12px",lineHeight:1.4,marginLeft:"2px",padding:gr?"1px 6px":0,borderRadius:"4px",color:gr?"var(--dsw-alias-state-error-primary)":"var(--dsw-alias-label-secondary)",background:gr?"rgba(211,51,51,0.08)":"transparent",border:gr?"1px solid rgba(211,51,51,0.3)":0,fontWeight:gr?650:400,whiteSpace:"normal"}},e("version.dsh.supportBound",{limit:Ft})),wr=r.createElement("div",{key:"version-card","data-testid":"version-card",style:Gt},r.createElement("div",{key:"title",style:ea},e("version.title")),r.createElement("div",{style:Yt},ur("plugin","dsh-service",ve,fr,yr,!1,!1,xr),ur("dsh","DSH",he,pr,null,!0===mr,!0),pt?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:pr?.current||he||"—"})),r.createElement("div",null,e("update.details.latest",{version:pr?.latest||"—"})),((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"}},_t(e,"latest",t&&t.latest),_t(e,"next",t&&t.next),...t&&Object.prototype.hasOwnProperty.call(t,"alpha")?[_t(e,"alpha",t.alpha)]:[]))(e,pr?.tags)):null,Ge?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({},Kt,{margin:"0 0 8px"})},e("update.manualConfirm")),r.createElement("div",{style:Ut},r.createElement("button",{style:Lt,"data-variant":"dangerGhost",disabled:_e,onClick:Ct},e(_e?"update.upgrading":"update.manualProceed")),r.createElement("button",{style:Bt,disabled:_e,onClick:()=>Ye(!1)},e("restart.cancel")))):null,kr?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({},Kt,{margin:0})},e("update.manualRestartBody"))):null,Ue?r.createElement("p",{style:Object.assign({},Kt,{color:"var(--dsw-alias-state-error-primary)",margin:"4px 0 0"})},Ue):null)),Er=r.createElement(Jt,{showNavToggle:!0}),{enabled:Sr,done:qr,input:Cr,bell:Tr,setEnabled:Ar,setDone:Ir,setInput:Or,setBell:zr}=Ve(),Rr="undefined"!=typeof Notification,Mr=Rr?Notification.permission:"denied",Nr=(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:Kt},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",...h("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",...h("50%"),background:e?"#fff":"var(--dsw-alias-label-tertiary)"}})))(n,s,i)),jr=Rr?r.createElement("div",{style:{marginTop:"18px"}},r.createElement("div",{style:ea},e("notification.title")),r.createElement("div",{style:Object.assign({},Yt,{marginTop:"4px"})},r.createElement("p",{style:Kt},e("notification.description")),"granted"!==Mr?r.createElement("div",{style:{marginTop:"8px",display:"flex",alignItems:"center",gap:"8px"}},r.createElement("button",{style:Dt,onClick:()=>{Notification.requestPermission().then(e=>{"granted"===e&&Ar(!0)})}},e("notification.enable")),r.createElement("span",{style:Kt},"denied"===Mr?e("notification.denied"):"")):r.createElement("div",{style:{marginTop:"8px",display:"flex",flexDirection:"column"}},Nr("notify-row-master",e("notification.master"),null,Sr,Ar,!1),Nr("notify-row-done",e("notification.done"),null,qr,Ir,!Sr),Nr("notify-row-input",e("notification.input"),null,Cr,Or,!Sr),Nr("notify-row-bell",e("notification.bellShow"),null,Tr,zr,!1)))):null,Hr=null!=xe&&(xe.dsh&&!1===xe.dsh.upToDate||xe.plugin&&!1===xe.plugin.upToDate),Dr=null!==B&&!_&&!Y,Wr=(d?.checks||[]).filter(e=>"error"===e.status||"warning"===e.status&&!0!==e.advisory&&"permissions"!==e.id),$r=[];o&&$r.push({level:"error",text:o}),Be&&$r.push({level:"error",text:Be}),Y&&$r.push({level:"error",text:Y}),gt.error&&$r.push({level:"error",text:String(gt.error)}),z&&$r.push({level:"error",text:z});for(const t of Wr)$r.push({level:"error"===t.status?"error":"warning",text:e(`health.check.${t.id}`)+":"+Ca(t)});Za>0&&$r.push({level:"warning",text:e("permissions.summary.warning",{count:Za})}),Hr&&$r.push({level:"info",text:e("overview.updateAvailable")}),Dr&&0===B.items.length&&$r.push({level:"info",text:e("overview.backupEmpty")});const Lr=$r.some(e=>"error"===e.level)?"error":$r.some(e=>"warning"===e.level)?"warning":$r.some(e=>"info"===e.level)?"info":"normal",Br="normal"===Lr?e("overview.status.normal"):e(`overview.status.${Lr}`,{count:$r.length}),Pr=r.createElement("div",{"data-testid":"overview-status",style:Object.assign({},Yt,{display:"flex",alignItems:"center",gap:"10px"})},r.createElement("span",{"aria-hidden":"true",style:{flex:"none",width:"10px",height:"10px",...h("50%"),background:"normal"===Lr?"var(--dsh-svc-success)":"warning"===Lr?"var(--dsh-svc-warning)":"error"===Lr?"var(--dsh-svc-danger)":"var(--dsh-svc-info)"}}),r.createElement("span",{style:{fontSize:"13px",fontWeight:600,color:"var(--dsh-svc-text)"}},Br)),_r=0===$r.length?null:r.createElement("div",{"data-testid":"overview-actionables",style:Object.assign({},Yt,{marginTop:"10px",padding:"4px 10px"})},$r.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",...h("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)))),Fr=r.createElement("div",null,Pr,_r,wr,Ba,Ma.length>0||Na.length>0?Pa:null),Ur=r.createElement("div",{key:"maintenance-card","data-testid":"maintenance-card",style:Gt},cr),Kr=!0===d?.checks?.some(e=>"error"===e.status||"warning"===e.status&&!0!==e.advisory),{batch:Vr}=bt(),Gr={overview:!1,usage:Boolean(Be),quota:!1,diagnostics:Boolean(o||z||Kr||Za>0),maintenance:Boolean(Y||gt.error),configuration:!1},[Yr,Jr]=a("subagent"),[Qr,Xr]=a("features");m(()=>{let e=null;try{e=localStorage.getItem("dsh-service-maintenance-tab")}catch(e){}Jr(null===e?"subagent":Me(e,n))},[]);const Zr=((e,t)=>Ce.filter(t=>void 0===Ae[t]||!1!==e[Ae[t]]).map(e=>({id:e,labelKey:Te[e],warning:void 0!==t&&!0===t[e]})))(n,Gr),en=Re(n),tn=Zr.filter(e=>e.warning).map(t=>e(t.labelKey)),an=Zr.some(e=>e.id===ct)?ct:"overview",rn=Me(Yr,n),nn="overview"===an?Fr:"usage"===an?Ha:"quota"===an?r.createElement(ir,null):"diagnostics"===an?ar:"maintenance"===an?null===rn?r.createElement("div",{"data-testid":"maintenance-empty",style:Yt},e("maintenance.empty")):"restart"===rn?Er:"backup"===rn?Ur:"skills"===rn?r.createElement(Ga,null):"subagent"===rn?r.createElement(La,null):r.createElement(sr,null):"notifications"===Qr?r.createElement("div",{"data-testid":"config-notifications-page",style:!1===n.taskNotifications?{opacity:.55}:void 0},jr,...!1===n.taskNotifications?[r.createElement("p",{key:"notify-off-hint",style:Object.assign({},Kt,{marginTop:"8px"})},e("config.notificationsDisabled"))]:[]):"navOrder"===Qr?r.createElement(Wa,null):r.createElement(Da,null);return r.createElement("div",{"data-testid":"service-panel-root","data-dshsvc-root":"","data-dshsvc-page":an,className:"dshsvc-page"},tn.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({},Kt,{marginTop:"3px"})},e("tabs.alert.body",{tabs:tn.join(e("tabs.alert.join"))}))):null,r.createElement(De,{items:Zr.map(t=>({id:t.id,label:e(t.labelKey),icon:"diagnostics"===t.id?"health":t.id,warning:t.warning,badge:"maintenance"===t.id&&null!==Vr&&"running"===Vr.phase?{testid:"skills-tab-badge",text:Vr.done+"/"+Vr.total}:null})),activeId:an,onChange:e=>{ut(e),"diagnostics"===e&&kt(!1)},testIdPrefix:"service-tab",dotLabel:e("tabs.alert.dot"),ariaLabel:e("nav.label")}),r.createElement(He,{title:e(Te[an]),description:void 0!==je[an]?e(je[an]):null,action:"diagnostics"===an?r.createElement("button",{type:"button","data-testid":"diagnostics-recheck","data-variant":"neutral",style:Dt,onClick:()=>kt(!0),disabled:u},e(u?"health.checking":d?"health.recheck":"health.check")):null}),"maintenance"===an&&en.length>0?r.createElement(De,{items:en.map(t=>({id:t.id,label:e(t.labelKey)})),activeId:rn,onChange:e=>{Jr(e);try{localStorage.setItem("dsh-service-maintenance-tab",e)}catch(e){}},testIdPrefix:"maintenance-tab",variant:"sub",ariaLabel:e("tabs.maintenance")}):null,"configuration"===an?r.createElement(De,{items:Ne.map(t=>({id:t.id,label:e(t.labelKey)})),activeId:Qr,onChange:Xr,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)"}},nn))}null!==rr&&console.info("[dsh-service-md] session detail markdown renderer ready");const lr=["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"],dr=["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 cr(){const{enabled:e,setEnabled:t}=Ve(),a=ke();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?lr:dr).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),J("taskNotifications")&&Be&&(e=t.slots.register({name:"conversation.input.left",id:"dsh-service-notify",order:90,label:()=>_("notification.bellOn")},()=>r.createElement(cr,null)))};a();const n=G.subscribe(a),s=(i=a,_e.add(i),()=>_e.delete(i));var i;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(ja,null))),t.slots.inject("settings.section",()=>{const e=t.slots.register({name:"settings.section",id:"dsh-service",order:99,label:()=>_("nav.label")},()=>r.createElement(or,null));Ye.sync(),Je.sync(),Qe.sync();const a=G.subscribe(Je.sync),n=G.subscribe(Qe.sync);return()=>{a(),n(),e(),Ye.disposeEntry(),Je.disposeEntry(),Qe.disposeEntry()}}),t.slots.inject("shell.overlay",()=>t.slots.register({name:"shell.overlay",id:"dsh-service-restart",order:100,label:()=>_("overlay.label")},()=>r.createElement(Yt,null))),t.slots.inject("conversation.input.right",()=>{let e=null;const a=()=>{null!==e&&(e(),e=null),J("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=yt();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(Na,e)))};a();const n=G.subscribe(a);return()=>{n(),null!==e&&e()}}),t.slots.inject("conversation.chat.turnTail",()=>{let e=null;const a=()=>{null!==e&&(e(),e=null),J("subagentRoute")&&(e=t.slots.register({name:"conversation.chat.turnTail",id:"dsh-service-subagent-models",select:N},e=>r.createElement(L,e)))};a();const n=G.subscribe(a);return()=>{n(),null!==e&&e()}}),t.slots.inject("conversation.composer.dock",()=>{let e=null;const a=()=>{null!==e&&(e(),e=null),J("subagentRoute")&&J("subagentModelsDock")&&(e=t.slots.register({name:"conversation.composer.dock",id:"dsh-service-subagent-models-dock",order:60,label:()=>_("subagent.turnTail.label"),inject:e=>({sessionId:e})},e=>r.createElement(B,e)))};a();const n=G.subscribe(a);return()=>{n(),null!==e&&e()}});const ur=i,pr=(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},mr=[],gr=e=>{const t=mr[e];try{t.button.remove()}catch(e){}mr.splice(e,1)},hr=()=>{for(;mr.length>0;)gr(mr.length-1)},br=()=>{const e=c();if(null===e)return;const t=_("editor.viewer"),a=J("fileEditor"),r=a?u(e,d):[];for(let e=mr.length-1;e>=0;e-=1){const a=mr[e];r.includes(a.menu)&&p(a.menu)!==t||gr(e)}if(a){for(const e of mr)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(p(a)===t)continue;if(mr.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(o,""),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){}k(e,e=>e===t,{menu:v(n),isAlive:()=>y.isAlive()})}),r.insertBefore(n,a),mr.push({menu:a,button:n})}}};function vr(e){const t=ke(),a="string"==typeof e?.tab?.contentId?e.tab.contentId:"";if(!a.startsWith("dsh-resource://file/")||!b(a))return null;const n=c();return(null===n?[]:u(n,d)).some(e=>p(e)===t("editor.viewer"))?null:r.createElement("button",{type:"button",role:"menuitem","data-testid":"file-editor-menu-item",[l]:"",onClick:()=>{try{e?.dismiss?.()}catch(e){}const a=c(),r=null===a?[]:u(a,d);1===r.length&&k(a,e=>e===t("editor.viewer"),{menu:r[0],isAlive:()=>y.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 fr(e){const t=ke(),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),[u,p]=r.useState(!1),[m,g]=r.useState(""),[h,b]=r.useState(null),[f,x]=r.useState(null),[w,E]=r.useState(null),q=r.useRef(0),C=r.useRef(s),T=r.useRef(i),A=r.useRef(null),I=r.useRef(!1),O=r.useRef(null),z=r.useRef(null),R=r.useRef(null),M=e=>{T.current=e,o(e)},N=e=>{A.current=e,d(e)},j=e=>{I.current=e,p(e)},H=e=>{O.current=e,x(e)},D=()=>(q.current+=1,q.current),W=e=>q.current===e,$=()=>{if(!0===I.current)return;const e=D();M({phase:"loading",text:"",version:"",path:"",bytes:0,error:""}),N(null),b(null),H(null),g(""),j(!1),S("file-read",{address:a}).then(t=>{if(!W(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(()=>{W(e)&&M({phase:"error",text:"",version:"",path:"",bytes:0,error:"internal"})})},L=(e,t,r={})=>{const n="undo"===r?.kind?"undo":"save";if(!0===I.current)return;if("string"!=typeof e)return;const s=D();j(!0),g(""),S("file-write",{address:a,text:e,version:t,force:!0===r?.force}).then(a=>{if(!W(s))return;if(j(!1),!a||!0!==a.ok){const e="string"==typeof a?.error?a.error:"internal";return"file-stale"===e?void b({kind:n}):void g(e)}const i=a.value||{},o="string"==typeof i.version&&""!==i.version?i.version:"string"==typeof t?t:"",l=T.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:""}),H("undo"===n?null:"string"==typeof i.before?{text:i.before,version:o}:null);const d=A.current;null===d||d===e?(N(null),b(null),g("saved"),"preview"===r?.leaveAfter&&V()):b(null)}).catch(()=>{W(s)&&(j(!1),g("internal"))})};r.useEffect(()=>(C.current=s,$(),()=>{q.current+=1}),[a]),r.useEffect(()=>{if(C.current===s)return;if(C.current=s,!0===I.current)return;const e=A.current;null!==e&&e!==T.current.text||$()},[s]);const B=null!==l&&l!==i.text,P="error"===i.phase?i.error:"",_=!0===u?t("editor.saving"):!0===B?t("editor.unsaved"):"saved"===m?t("editor.saved"):"",F=!0===u?"var(--dsw-alias-label-secondary)":!0===B?"var(--dsw-alias-state-warn-primary)":"var(--dsw-alias-state-success-primary)",U=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"}),K=(e,a,n,s,i)=>r.createElement("button",{type:"button","data-testid":e,disabled:!0===i,onClick:n,style:Object.assign(U(s),!0===i?{opacity:.5,cursor:"default"}:{})},t(a)),V=()=>{const e=v(z.current);return null!=e&&k(c(),e=>e!==t("editor.viewer"),{menu:e,isAlive:()=>y.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),""!==_?r.createElement("span",{"data-testid":"file-editor-status",role:"status","aria-live":"polite",style:{flex:"none",fontWeight:600,color:F}},_):null,r.createElement("span",{style:{display:"flex",gap:"6px",marginLeft:"auto",flex:"none"}},K("file-editor-preview","editor.preview",()=>{!0!==I.current&&(!0!==B?V():E("preview"))},"ghost",u),null!==f?K("file-editor-undo","editor.undo",()=>{!0!==I.current&&null!==f&&E("undo")},"ghost",u):null,K("file-editor-reload","editor.reload",()=>{!0!==I.current&&(!0!==B?$():E("reload"))},"ghost",u),K("file-editor-save","editor.save",()=>L(A.current??i.text,i.version,{kind:"save"}),"primary",u||!B))),Y=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"}},K("file-editor-conflict-reload","editor.conflict.reload",()=>$(),"ghost",u),K("file-editor-conflict-overwrite","editor.conflict.overwrite",()=>L(A.current??i.text,i.version,{kind:"save",force:!0}),"primary",u))):null,J=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"}},K("file-editor-undo-conflict-reload","editor.conflict.reload",()=>$(),"ghost",u),K("file-editor-undo-conflict-dismiss","editor.undoConflict.dismiss",()=>b(null),"ghost",!1))):null,Q={preview:"editor.confirm.previewTitle",reload:"editor.confirm.reloadTitle",undo:"editor.confirm.undoTitle"},X=null===w?null:r.createElement("div",{"data-testid":"file-editor-confirm",role:"alertdialog","aria-label":t(Q[w]??"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(Q[w]??"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"}[w]??"editor.confirm.previewBody")),r.createElement("div",{style:{display:"flex",gap:"8px",flexWrap:"wrap"}},"preview"===w?K("file-editor-confirm-save","editor.confirm.saveBack",()=>{E(null),L(A.current??i.text,i.version,{kind:"save",leaveAfter:"preview"})},"primary",u):null,"undo"===w?K("file-editor-confirm-save","editor.undo",()=>(()=>{const e=O.current;E(null),null!=e&&(N(null),L(e.text,e.version,{kind:"undo"}))})(),"primary",u):null,"reload"===w?K("file-editor-confirm-discard","editor.confirm.reloadGo",()=>{E(null),$()},"primary",u):null,"preview"===w?K("file-editor-confirm-discard","editor.confirm.discardBack",()=>{E(null),V()},"ghost",!1):null,K("file-editor-confirm-cancel","editor.confirm.cancel",()=>(()=>{E(null);try{R.current?.focus?.()}catch(e){}})(),"ghost",!1))),Z=""===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)"}},pr(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"}},pr(t,P)),K("file-editor-retry","editor.retry",()=>$(),"ghost",!1)):r.createElement("textarea",{"data-testid":"file-editor-textarea",ref:R,"aria-label":t("editor.viewer"),value:null!==l?l:i.text,spellCheck:!1,onChange:e=>N("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!==I.current&&B&&L(A.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,X,Y,J,Z,ee,r.createElement("div",{style:{flex:"none",padding:"4px 10px 6px",fontSize:"11px",color:"var(--dsw-alias-label-tertiary)"}},t("editor.keyHint")))}const yr=()=>{if(!J("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}},i=a=>{if(null==a||"function"!=typeof a.register)return;let i=null;try{i=a.register({id:s,extensions:ur,priority:"builtin",title:()=>_("editor.viewer"),loading:"text-pages",wrap:!0})}catch(e){return}e.push(i),e.push(t.slots.inject("sidebar.right.tab.document",()=>t.slots.register({name:"sidebar.right.tab.document",key:s,locale:n},fr))),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(vr,e)))),e.push((()=>{y=(()=>{const e={alive:!0};return f.add(e),{isAlive:()=>!0===e.alive,dispose:()=>{e.alive=!1,f.delete(e)}}})(),br();let e=()=>{};try{if("function"==typeof t.locale?.subscribe){const a=t.locale.subscribe(()=>{try{br()}catch(e){}});"function"==typeof a&&(e=a)}}catch(e){}const a=c();if(null===a||"function"!=typeof MutationObserver)return()=>{e(),hr()};let r=!1;const n=()=>{r||(r=!0,Promise.resolve().then(()=>{r=!1;try{br()}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(),hr(),y.dispose(),(()=>{for(const e of f)e.alive=!1;f.clear()})()}})())};return"function"==typeof t.inject?e.push(t.inject(["documentPreviews"],e=>{i(a(e))})):i(a(void 0)),()=>{for(const t of e)try{t()}catch(e){}}};t.effect(()=>{let e=J("fileEditor"),t=!0===e?yr():void 0;const a=G.subscribe(()=>{const a=J("fileEditor");a!==e&&(e=a,"function"==typeof t&&t(),t=!0===a?yr():void 0)});return()=>{a(),"function"==typeof t&&t()}},"dsh-service file editor");const kr=()=>{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}}}},xr=(()=>{const e={observer:null,btn:null,styleTag:null,retryTimer:null,retryLeft:0,scrollHandler:null,rafId:null,slotRO:null},a=kr(),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)",...h("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(()=>(xr.start(),()=>xr.stop()),"dsh-service user reply jump");const wr=function(){const e={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},a=kr(),r=()=>{try{return"function"==typeof t.get?t.get("layout"):void 0}catch(e){return}},n=()=>{if(e.detailsOpen){const t=r();if(void 0!==t)try{t.closeDetails()}catch(e){}e.detailsOpen=!1}const t=e.drawerOpen||e.workspaceOpen||e.rightbarOpen?"none":"flex";null!==e.fab&&e.lastFabDisplay!==t&&(e.lastFabDisplay=t,e.fab.style.display=t);const a=e.drawerOpen?"block":"none";null!==e.backdrop&&e.lastBackdropDisplay!==a&&(e.lastBackdropDisplay=a,e.backdrop.style.display=a),e.debugEnabled&&null!==e.debugChip&&B()};let s=!1;const i=()=>{const t=document.querySelector("[data-dshsvc-frame]");e.drawerOpen=null!==t&&!t.hasAttribute("data-sidebar-collapsed"),e.rightbarOpen=E();const a=r(),n=void 0!==a&&"function"==typeof a.openRightbar||e.rightbarOpen;e.detailsOpen=!n&&null!==t&&!t.hasAttribute("data-details-collapsed"),e.workspaceOpen=!1;try{for(const t of document.querySelectorAll('[class*="nArs4W_panel"]')){const a="string"==typeof t.className?t.className:"";if(/nArs4W_panelHidden/.test(a))continue;const r=t.getBoundingClientRect();if(r.width>0&&r.left<window.innerWidth-2&&"hidden"!==getComputedStyle(t).visibility){e.workspaceOpen=!0;break}}}catch(t){e.workspaceOpen=!1}b()},o=e=>{const t=document.documentElement.style;(e=>"function"==typeof e.setProperty)(t)&&t.setProperty("--dshsvc-header-h",`${Math.max(0,Math.round(e))}px`)},l=()=>{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}},d=(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=d(a,t-1);if(null!==e)return e}return null},c=(e,t)=>{let a=t;for(;null!=a;){if(a===e)return!0;a=a.parentNode}return!1},u=()=>{e.repinTimer=null;const t=e.repinAnchor,a=e.repinToBottom;e.repinAnchor=null,e.repinToBottom=!1;const r=l();if(null!==r&&null!==r.scroller)try{const e=Number(r.scroller.scrollTop),n=Number(r.scroller.scrollHeight),s=Number(r.scroller.clientHeight);if(!Number.isFinite(e)||!Number.isFinite(n)||!Number.isFinite(s))return;const i=Math.max(0,n-s);if(a){if(i-e>80)return;return void(r.scroller.scrollTop=i)}if(null===t)return;if(e<t-4)return;r.scroller.scrollTop=i}catch(e){}},p=(t,a=!1)=>{m(),e.repinAnchor=t,e.repinToBottom=a;try{e.repinTimer=setTimeout(u,260)}catch(e){u()}},m=()=>{if(e.repinAnchor=null,e.repinToBottom=!1,null!==e.repinTimer){try{clearTimeout(e.repinTimer)}catch(e){}e.repinTimer=null}},g=(t,a=null)=>{if(e.active&&e.chatAvailable||(t=!1),e.immersive===t)return;const r=!t&&(()=>{const e=l();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((l()||{}).scroller?.scrollTop):null,n=null!==r&&Number.isFinite(r);e.immersive=t,t||null===a||(e.lastRevealReason=a);const s=document.documentElement;try{t?s.setAttribute("data-dshsvc-immersive",""):s.removeAttribute("data-dshsvc-immersive")}catch(e){}t?m():n&&p(r),e.debugEnabled&&B()},h=()=>{e.chatScrollLastY=null,e.immersiveAcc=0,e.immersiveLockDir=null,e.zoneArmed=null,e.arrivalDone=!1,g(!1)},b=()=>{const t=l();let a=!1;if(null!==t&&"active"===t.phase){(t=>{const a=null!==t?t.rootEl:null;if(null===a||void 0===a.children)return e.headerEl;if(null!==e.headerEl&&e.headerEl.isConnected){try{e.headerEl.setAttribute("data-dshsvc-chat-header","")}catch(e){}return e.headerEl}let r=null;for(const e of a.children||[])if("HEADER"===("string"==typeof e.tagName?e.tagName.toUpperCase():"")){r=e;break}if(null===r)for(const e of a.children||[]){const t=d(e,3);if(null!==t){r=t;break}}null!==r&&(r.setAttribute("data-dshsvc-chat-header",""),e.headerEl=r,(t=>{if("function"==typeof ResizeObserver&&(null===e.headerRO||e.headerRO.__el!==t)){if(null!==e.headerRO)try{e.headerRO.disconnect()}catch(e){}try{const a=new ResizeObserver(()=>{try{const e=t.offsetHeight;"number"==typeof e&&e>0&&o(e)}catch(e){}});a.__el=t,a.observe(t),e.headerRO=a;const r=t.offsetHeight;"number"==typeof r&&r>0&&o(r)}catch(t){e.headerRO=null}}})(r))})(t);const r=(()=>{try{return document.querySelector("[data-composer-seat]")}catch(e){return null}})();if(null!==r&&c(t.scroller,r)){let e=NaN,r=NaN,n=NaN;try{e=Number(t.scroller.scrollTop),r=Number(t.scroller.scrollHeight),n=Number(t.scroller.clientHeight)}catch(e){}a=Number.isFinite(e)&&Number.isFinite(r)&&Number.isFinite(n)&&r-n>24}}e.chatAvailable=a,a||h()},v=t=>{if(!e.active||!e.chatAvailable)return;let a=NaN,r=NaN,n=NaN;try{a=Number(t.scrollTop),r=Number(t.scrollHeight),n=Number(t.clientHeight)}catch(e){return}if(!Number.isFinite(a)||!Number.isFinite(r)||!Number.isFinite(n))return;const s=null===e.chatScrollLastY?a:e.chatScrollLastY,i=a-s;if(e.chatScrollLastY=a,!(()=>{const t=Date.now();return e.gestureAt>0&&t-e.gestureAt<=800})()||Math.abs(i)>200)return void(e.immersiveAcc=0);if(e.immersive&&i<0&&s+n>=r-1)return e.immersiveAcc=0,e.immersiveLockDir=-1,void g(!1,"gesture");const o=a+n>=r-80;if(null===e.zoneArmed&&(e.zoneArmed=o),!1===e.zoneArmed&&o&&!e.arrivalDone&&e.immersive&&i>0)return e.arrivalDone=!0,e.immersiveAcc=0,e.immersiveLockDir=1,void g(!1,"arrival");const l=Math.sign(i);if(0!==l&&null!==e.immersiveLockDir){if(l!==-e.immersiveLockDir)return void(e.immersiveAcc=0);e.immersiveLockDir=null}(e.immersiveAcc>0&&i<0||e.immersiveAcc<0&&i>0)&&(e.immersiveAcc=0),e.immersiveAcc+=i,e.immersiveAcc>240?e.immersiveAcc=240:e.immersiveAcc<-240&&(e.immersiveAcc=-240),e.immersiveAcc>=64?(e.immersiveAcc=0,e.immersiveLockDir=1,g(!0)):e.immersiveAcc<=-24&&(e.immersiveAcc=0,e.immersiveLockDir=-1,g(!1,"gesture"))},f=()=>{e.gestureAt=Date.now(),e.immersiveLockDir=null,e.zoneArmed=null,e.arrivalDone=!1},y=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}},k=()=>{try{const e=document.querySelector("[data-dshsvc-frame]");return null===e||e.hasAttribute("data-sidebar-collapsed")}catch(e){return!0}},x=()=>{try{return"function"==typeof t.get?t.get("sidebarRight"):void 0}catch(e){return}},w=()=>{try{if(null!==document.querySelector("[data-sidebar-right-expand], [data-sidebar-right-toggle], [data-sidebar-right-panel]"))return!0}catch(e){}const e=x();return void 0!==e&&"function"==typeof e.toggleExpanded&&void 0!==e.active()},E=()=>{if(!w())return!1;const e=x();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},S=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},q="open",C="left-close",T="right-close",A="left-open",I="right-open",O="multi-touch",z="modal",R="h-scroll",M="no-point",N="right-absent",j="toggle-unavailable",H="no-tracker",D={left:{opened:()=>!k(),toggle:()=>{const e=r();if(void 0===e)return!1;try{return e.toggleSidebar(),!0}catch(e){return!1}}},right:{opened:()=>E(),toggle:e=>(e=>{try{const t=e?document.querySelector("[data-sidebar-right-expand]"):document.querySelector("[data-sidebar-right-open] [data-sidebar-right-toggle]")||(E()?document.querySelector("[data-sidebar-right-toggle]"):null);if(null!==t&&"function"==typeof t.click)return t.click(),!0}catch(e){}const t=x();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=r();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)}},W=(t,a,r)=>{if(null===t||t.fired||null===a)return!1;const n=a.x-t.startX,s=a.y-t.startY;if(Math.abs(s)>Math.abs(n)&&Math.abs(s)>12)return e.edgeGesture=null,!1;let i=null,o=!1,l=null;if(t.kind===q){if(n>=r)i="left",o=!0,l=A;else if(n<=-r&&(i="right",o=!0,l=I,!w()))return null!==e.edgeTelemetry&&(e.edgeTelemetry.reason=N),!0}else t.kind===C?n<=-r&&(i="left",l=C):t.kind===T&&n>=r&&(i="right",l=T);if(null===i)return!1;const d=((e,t)=>{const a=D[e];return void 0!==a&&a.opened()!==t&&!0===a.toggle(t)})(i,o);return t.fired=!0,null!==e.edgeTelemetry&&(e.edgeTelemetry.fired=d,e.edgeTelemetry.kind=l,d||l!==I||(e.edgeTelemetry.reason=j)),!0},$=[["scroll",t=>{if(!e.active)return;let a=t&&t.target;for(let e=0;null!=a&&e<6;e+=1){if("function"==typeof a.hasAttribute)try{if(a.hasAttribute("data-conversation-scroll"))return void v(a)}catch(e){}a=a.parentNode}},{capture:!0,passive:!0}],["touchstart",f,{capture:!0,passive:!0}],["touchmove",f,{capture:!0,passive:!0}],["touchstart",t=>{if(!e.active)return;e.edgeGesture=null;const a=e.debugEnabled?{start:"—",kind:"—",moves:0,last:"—",cancel:"—",fired:!1}:null;e.edgeTelemetry=a;try{if(null!=t&&void 0!==t.touches&&null!==t.touches&&t.touches.length>1)return void(null!==a&&(a.kind=O))}catch(e){}if((()=>{try{return null!==document.querySelector('[role="dialog"][aria-modal="true"]')}catch(e){return!1}})())return void(null!==a&&(a.kind=z));const r=y(t);if(null===r)return void(null!==a&&(a.kind=M));null!==a&&(a.start=`${Math.round(r.x)},${Math.round(r.y)}`);const n=!k(),s=w()&&E();if(n||s)return S(t?.target)?void(null!==a&&(a.kind=R)):(e.edgeGesture={kind:n?C:T,edge:null,startX:r.x,startY:r.y,at:Date.now(),fired:!1},void(null!==a&&(a.kind=n?C:T)));if(S(t?.target))return void(null!==a&&(a.kind=R));const i=Number(window.innerWidth);let o=null;r.x<=32?o="left":Number.isFinite(i)&&r.x>=i-32&&(o="right"),e.edgeGesture={kind:q,edge:o,startX:r.x,startY:r.y,at:Date.now(),fired:!1},null!==a&&(a.kind="left"===o?A:"right"===o?I:q),e.debugEnabled&&B()},{capture:!0,passive:!0}],["touchmove",t=>{const a=e.edgeGesture;if(null===a||a.fired)return;try{if(null!=t&&void 0!==t.touches&&null!==t.touches&&t.touches.length>1)return e.edgeGesture=null,null!==e.edgeTelemetry&&(e.edgeTelemetry.reason=O),void(e.debugEnabled&&B())}catch(e){}const r=y(t),n=e.edgeTelemetry;null!==n&&null!==r&&(n.moves+=1,n.last=`${Math.round(r.x-a.startX)},${Math.round(r.y-a.startY)}`);const s=W(a,r,56);e.debugEnabled&&s&&B()},{capture:!0,passive:!0}],["touchend",t=>{const a=e.edgeGesture;if(null===a||a.fired)return void(e.edgeGesture=null);const r="open"===a.kind&&null!==a.edge,n=r?y(t):null;r&&null!==n&&Date.now()-a.at<=260&&W(a,n,32),e.edgeGesture=null,e.debugEnabled&&a.fired&&B()},{capture:!0,passive:!0}],["touchcancel",t=>{const a=e.edgeGesture,r=e.edgeTelemetry;if(null===a)return null!==r&&(r.cancel=H),void(e.debugEnabled&&B());const n="open"===a.kind&&null!==a.edge,s=y(t);null!==r&&null!==s&&(r.cancel=`${Math.round(s.x-a.startX)},${Math.round(s.y-a.startY)}`),n&&W(a,s,6),e.edgeGesture=null,e.debugEnabled&&B()},{capture:!0,passive:!0}],["wheel",f,{capture:!0,passive:!0}],["focusin",t=>{if(!e.active)return;let a=null;try{a=document.querySelector("[data-composer-seat]")}catch(e){return}null!==a&&c(a,t?.target)&&(e.immersiveAcc=0,e.immersive&&g(!1,"focus"))},{capture:!0}],["click",t=>{e.active&&e.chatAvailable&&e.immersive&&a.isToBottomButton(t&&t.target)&&(e.immersiveAcc=0,e.immersiveLockDir=1,g(!1,"button"),p(null,!0))},{capture:!0}]];let L=!1;const B=()=>{const t=e.debugChip;if(null===t)return;const a=e=>_(e?"mobile.debug.stateOn":"mobile.debug.stateOff"),r=[[`${_("mobile.debug.viewport")} ${window.innerWidth}×${window.innerHeight}`,`≤1023 ${a(e.active)}`,`${_("mobile.debug.drawer")} ${a(e.drawerOpen)}`,`${_("mobile.debug.details")} ${a(e.detailsOpen)}`,`${_("mobile.debug.rightbar")} ${a(e.rightbarOpen)}`,`${_("mobile.debug.immersive")} ${a(e.immersive)}`+(null===e.lastRevealReason?"":`(${n=e.lastRevealReason,"gesture"===n?_("mobile.debug.immersive.reason.gesture"):"arrival"===n?_("mobile.debug.immersive.reason.arrival"):"focus"===n?_("mobile.debug.immersive.reason.focus"):"button"===n?_("mobile.debug.immersive.reason.button"):n})`),`${_("mobile.debug.errors")} ${e.errorCount}`].join(" · ")];var n;const s=e=>e===A?_("mobile.debug.edge.leftOpen"):e===I?_("mobile.debug.edge.rightOpen"):e===C?_("mobile.debug.edge.leftClose"):e===T?_("mobile.debug.edge.rightClose"):e===q?_("mobile.debug.edge.open"):e===O?_("mobile.debug.edge.reason.multiTouch"):e===z?_("mobile.debug.edge.reason.modal"):e===R?_("mobile.debug.edge.reason.hScroll"):e===M?_("mobile.debug.edge.reason.noPoint"):e===N?_("mobile.debug.edge.reason.absentRight"):e===j?_("mobile.debug.edge.reason.badButton"):e===H?_("mobile.debug.edge.reason.noTracker"):e,i=e.edgeTelemetry;if(null!==i&&void 0!==i.start){let e=`${_("mobile.debug.edge")} ${_("mobile.debug.edge.fieldStart")}(${i.start}) ${s(i.kind)} ${_("mobile.debug.edge.fieldMoves")}${i.moves} ${_("mobile.debug.edge.fieldLast")}(${i.last}) ${_("mobile.debug.edge.fieldCancel")}(${s(i.cancel)})`;void 0!==i.reason&&(e+=` ${_("mobile.debug.edge.fieldReason")}(${s(i.reason)})`),i.fired&&(e+=" ✓"),r.push(e)}t.textContent=r.join("\n")},P=()=>{if(null!==e.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;e.backdrop=document.createElement("div"),e.backdrop.setAttribute("data-dshsvc-backdrop",""),e.backdrop.setAttribute("aria-hidden","true"),Object.assign(e.backdrop.style,{position:"fixed",inset:"0",zIndex:"31",display:"none",background:"rgba(0,0,0,.42)",backdropFilter:"blur(1px)"}),e.backdrop.addEventListener("click",()=>{const t=r();void 0!==t&&e.drawerOpen&&t.toggleSidebar()}),document.body.appendChild(e.backdrop),e.fab=document.createElement("button"),e.fab.type="button",e.fab.setAttribute("data-dshsvc-fab",""),e.fab.setAttribute("aria-label",_("mobile.fab.label")),Object.assign(e.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"}),e.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>',e.fab.addEventListener("click",()=>{const e=r();void 0!==e&&e.toggleSidebar()}),document.body.appendChild(e.fab),i();try{e.workspaceObserver=new MutationObserver(()=>{(()=>{if(!s&&e.active){s=!0,setTimeout(()=>{if(s=!1,e.active)try{i(),n()}catch(e){}},50);for(const t of[400,900])setTimeout(()=>{if(e.active)try{i(),n()}catch(e){}},t)}})()}),e.workspaceObserver.observe(document.body,{attributes:!0,childList:!0,subtree:!0})}catch(t){e.workspaceObserver=null}e.frameObserver=new MutationObserver(()=>{i(),n()});const t=document.querySelector("[data-dshsvc-frame]");return null!==t&&e.frameObserver.observe(t,{attributes:!0,attributeFilter:["data-sidebar-collapsed","data-details-collapsed","data-rightbar-collapsed"]}),null!==e.mountObserver&&(e.mountObserver.disconnect(),e.mountObserver=null),n(),!0},F=()=>{if(!e.active)return;if(e.active=!1,e.drawerOpen=!1,e.detailsOpen=!1,e.rightbarOpen=!1,e.edgeGesture=null,e.edgeTelemetry=null,(()=>{if(L){L=!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!==e.headerRO){try{e.headerRO.disconnect()}catch(e){}e.headerRO=null}e.headerEl=null,null!==e.frameObserver&&(e.frameObserver.disconnect(),e.frameObserver=null),null!==e.workspaceObserver&&(e.workspaceObserver.disconnect(),e.workspaceObserver=null),null!==e.mountObserver&&(e.mountObserver.disconnect(),e.mountObserver=null),null!==e.errorHandler&&window.removeEventListener("error",e.errorHandler),null!==e.resizeHandler&&window.removeEventListener("resize",e.resizeHandler),e.errorHandler=null,e.resizeHandler=null;for(const t of[e.styleTag,e.backdrop,e.fab,e.debugChip])null!==t&&t.isConnected&&t.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 t=(()=>{try{return document.documentElement.style}catch(e){return null}})();if(null!==t)try{t.removeProperty("--dshsvc-header-h")}catch(e){t["--dshsvc-header-h"]=""}e.styleTag=null,e.backdrop=null,e.fab=null,m(),e.debugChip=null,e.debugEnabled=!1,h()},U=()=>{J("mobileAdaptation")&&e.mmqMatches()?(()=>{if(e.active)return;if(void 0===r())return;e.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")}})(),e.styleTag=document.createElement("style"),e.styleTag.dataset.plugin="@gehennawu/dsh-service",e.styleTag.dataset.pluginCss="@gehennawu/dsh-service/mobile.css",e.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/* 设置/任意模态打开时藏抽屉钮:抽屉列自带 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)原样保留。 */\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}\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}\nhtml[data-dshsvc-mobile] [class*="bOPqQW_label"] {\n overflow: hidden !important;\n text-overflow: ellipsis !important;\n white-space: nowrap !important;\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-left: 46px !important; }\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(e.styleTag),P()||(()=>{if(null===e.mountObserver&&"function"==typeof MutationObserver)try{e.mountObserver=new MutationObserver(()=>{P()}),e.mountObserver.observe(document.documentElement,{childList:!0,subtree:!0})}catch(t){e.mountObserver=null}})(),(()=>{if(!L){L=!0;for(const[e,t,a]of $)try{document.documentElement.addEventListener(e,t,a)}catch(e){}}})(),b();let t=!1;try{t=new URLSearchParams(window.location.search).has("dshsvc-mobile-debug")}catch(e){}t&&(e.debugEnabled=!0,e.errorHandler=()=>{e.errorCount+=1,B()},window.addEventListener("error",e.errorHandler),e.resizeHandler=()=>B(),window.addEventListener("resize",e.resizeHandler),e.debugChip=document.createElement("div"),e.debugChip.setAttribute("data-dshsvc-debug",""),Object.assign(e.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"}),e.debugChip.title=_("mobile.debug.title"),document.body.appendChild(e.debugChip),B()),n()})():F()};try{e.mq=window.matchMedia("(max-width: 1023px)")}catch(t){e.mq=null}return e.mmqMatches=()=>{try{return null!==e.mq&&!0===e.mq.matches}catch(e){return!1}},null!==e.mq&&(e.mqHandler=()=>U(),"function"==typeof e.mq.addEventListener?e.mq.addEventListener("change",e.mqHandler):"function"==typeof e.mq.addListener&&e.mq.addListener(e.mqHandler)),{evaluate:U,dispose:()=>{F(),null!==e.mq&&null!==e.mqHandler&&("function"==typeof e.mq.removeEventListener?e.mq.removeEventListener("change",e.mqHandler):"function"==typeof e.mq.removeListener&&e.mq.removeListener("change",e.mqHandler)),e.mqHandler=null}}}();t.effect(()=>{const e=G.subscribe(()=>wr.evaluate());return wr.evaluate(),()=>{e(),wr.dispose()}},"dsh-service mobile adaptation")},a.subagentTurnTail={aggregateSubagentRoutes:j,selectSubagentModelsTurnTail:N,subagentRouteListText:H},a.settingsNavLabels={localizeBilingualLabel:g},a.fileEditor={id:s,extensions:i,selectViewerItem:k,editorExtensionMatches:b,attr:o,menuItemAttr:l},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={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}},i={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"]],o="data-dshsvc-model-icon",d="data-dshsvc-model-icon-seat",c="--dshsvc-model-icon",u="--dshsvc-model-icon-size",p=(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)}")`},m={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){}}},g=e=>{if("string"!=typeof e||""===e)return!1;const t=e.trim().toLowerCase();try{if("object"!=typeof m||null===m||"function"!=typeof m.getSnapshot)return!1;const e=m.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}},h=(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:g(a);if(n&&void 0!==s.cliproxy)return{slug:"cliproxy",spec:s.cliproxy};const o=e=>"cliproxy"===e&&r&&!n;if("cpa"===a)return null;const d=i[a];if(void 0!==d&&void 0!==s[d])return o(d)?null:{slug:d,spec:s[d]};for(const[e,t]of l)if((a===e||a.startsWith(e+"-")||a.startsWith(e+"_")||a.startsWith(e+"."))&&!o(t)&&void 0!==s[t])return{slug:t,spec:s[t]};if(void 0!==s[a])return o(a)?null:{slug:a,spec:s[a]};for(const e of a.split(/[-_.]/))if(""!==e&&void 0!==s[e]){if(o(e))continue;return{slug:e,spec:s[e]}}return null},v=`\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 [${d}][${o}] 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(${u}, 15px) !important;\n height: var(${u}, 15px) !important;\n background-color: currentColor !important;\n -webkit-mask: var(${c}) center/contain no-repeat !important;\n mask: var(${c}) center/contain no-repeat !important;\n}\n/* 彩色档:原样上品牌色(去掉 mask,改用 background-image)。\n 选择器必须同样带上 [${o}] 保持特异性 (0,3,2) 与上方单色规则平齐,\n 以保证 !important 级联下后定义的 mask:none / transparent 胜出。 */\nhtml [${d}="color"][${o}] button[class*="_7KE1Ra_trigger"]::before {\n background-color: transparent !important;\n -webkit-mask: none !important;\n mask: none !important;\n background-image: var(${c}) !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 [${d}][${o}] [class*="_7KE1Ra_triggerIcon"] { display: none !important; }\n}\n@container (width<=360px) {\n html [${d}][${o}] [class*="_7KE1Ra_triggerIcon"] { display: none !important; }\n}\n`,b=(e,t,a)=>{try{null!=e&&"function"==typeof e.setAttribute&&e.setAttribute(t,a)}catch(e){}},f=(e,t)=>{try{null!=e&&"function"==typeof e.removeAttribute&&e.removeAttribute(t)}catch(e){}},y=(e,t,a)=>{try{null!=e&&e.style&&"function"==typeof e.style.setProperty&&e.style.setProperty(t,a)}catch(e){}},x=(e,t)=>{try{null!=e&&e.style&&"function"==typeof e.style.removeProperty&&e.style.removeProperty(t)}catch(e){}},k="@gehennawu/dsh-service/editor",w=["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"],E="data-dshsvc-editor-entry",S="data-dshsvc-editor-menu-item",z="[data-document-viewer-menu]",q=()=>{try{return"undefined"==typeof document||null===document?null:document}catch(e){return null}},C=(e,t)=>{try{return Array.from(e.querySelectorAll(t))}catch(e){return[]}},A=e=>String(e?.textContent??"").trim(),T=e=>({borderRadius:e,cornerShape:"round"}),M=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 w.some(e=>a.endsWith("."+e)||a===e)},I=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=q();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},H=new Set;let O={isAlive:()=>!1,dispose:()=>{}};const R=(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=()=>C(e,'[role="menuitem"], [role="option"]').find(e=>!((e,t)=>{try{return"function"==typeof e?.getAttribute&&null!==e.getAttribute(t)}catch(e){return!1}})(e,S)&&t(A(e))),i=e=>{try{e.click()}catch(e){return!1}return!0};let l=0;try{l=C(e,z).length}catch(e){l=0}if(l<=1){const e=s();if(void 0!==e)return i(e)}try{r.click()}catch(e){return!1}if(!n())return!1;const o=s();if(void 0!==o)return i(o);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.hint":"查看、导出、归档与会话搜索;删除仅限已归档。","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.navToggleHint":"默认关闭;开启后在设置页左侧标签列显示会话管理入口","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.turnTail.label":"子代理模型:","subagent.turnTail.countOne":"子代理 ×1","subagent.turnTail.countMany":"子代理 ×{count}","subagent.turnTail.unknown":"(模型未记录)","subagent.dock.title":"输入框底部显示子代理信息","subagent.dock.desc":"在对话页输入框下方常驻一行本会话子代理实际使用的模型(20 秒刷新,不受事件折叠影响)。关闭后仅保留回合尾部小字行。","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.issue.broken":"{count} 个插件可能不兼容","plugin.compat.issue.declared":"{count} 个插件仅声明残留(代码未引用)","plugin.compat.issue.unknown":"{count} 个插件未能扫描","plugin.compat.declared":"声明了已移除的接口但代码未引用——官方加载器对缺失供应商静默跳过,当前无害,可提示作者清理","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.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.dragHint":"可通过拖拽或点击上下箭头调整标签顺序;关闭开关可隐藏不常用标签。","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.quota.desc":"查询各供应商额度、余额与重置时间;额度圆环跟随会话模型供应商,查询由宿主节流。","page.diagnostics.desc":"健康检查与运行环境诊断,异常时给出处理建议。","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-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.structure":"token 结构","usage.structureHint":"按日期展示输入、输出和缓存 token。","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} 次","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.poll":"自动查询","quota.poll.manual":"仅手动","quota.poll.minute":"{count} 分钟","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.panel.used":"已用","quota.panel.remaining":"剩余","quota.ring.label":"额度查询","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.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.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":"操作失败,请重试。"},j={"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.hint":"View, export, archive, and search sessions; deletion is limited to archived ones.","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.navToggleHint":"Disabled by default; shows the session manager entry at the bottom of the settings sidebar when enabled","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.turnTail.label":"Subagent models: ","subagent.turnTail.countOne":"1 subagent","subagent.turnTail.countMany":"{count} subagents","subagent.turnTail.unknown":" (models not recorded)","subagent.dock.title":"Show subagent info under the composer","subagent.dock.desc":"Keeps a session-level line under the composer listing the models your subagents actually used (20s refresh, unaffected by compaction). When off, only the per-turn tail line remains.","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.issue.broken":"{count} plugin(s) possibly incompatible","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.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.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.dragHint":"Drag items or click the arrows to reorder; toggle off to hide unused tabs.","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.quota.desc":"Quota, balance, and reset times across providers; the ring follows the session provider and queries are host-throttled.","page.diagnostics.desc":"Health checks and runtime environment diagnostics.","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-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.structure":"token structure","usage.structureHint":"Input, output, and cache token by date.","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)","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":'Off by default; when enabled, a "Quota lookup" entry appears at the bottom of the settings left navigation',"quota.poll":"Auto query","quota.poll.manual":"Manual only","quota.poll.minute":"{count} min","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.panel.used":"Used","quota.panel.remaining":"Remaining","quota.ring.label":"Quota lookup","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.expires":"expires {date}","quota.resetCard.expired":"expired","quota.resetCard.edit":"Add reset card","quota.advanced":"Advanced","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 or polling).","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. All other times are off-peak, including all day Saturday and Sunday.","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."},N="%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",D="%3C/svg%3E",$=e=>'-webkit-mask:url("data:image/svg+xml,'+N+e+D+'") center/contain no-repeat;mask:url("data:image/svg+xml,'+N+e+D+'") center/contain no-repeat',W={service:[["path",{d:"M4 8h16"}],["path",{d:"M4 16h16"}],["circle",{cx:"9",cy:"8",r:"2.5",fill:"black"}],["circle",{cx:"15",cy:"16",r:"2.5",fill:"black"}]],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"}]]},B=e=>e.map(([e,t])=>"%3C"+e+Object.entries(t).map(([e,t])=>` ${e}=%27${t}%27`).join("")+"/%3E").join(""),_=B(W.service),P=B(W.quota),V=B(W.restart),F=B(W.sessions);function U({name:e}){const t=W[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 K=()=>{};function G(e){const t=e?.turn?.data?.get?.("turn-process");if(null!==t&&"object"==typeof t){const e=Number(t.turn),a=Number(t.subagentCount);return!Number.isFinite(e)||!Number.isFinite(a)||a<=0?null:{turn:e,subagentCount:a}}if("string"!=typeof t)return null;const a=t.split("|");if(""===a[0])return null;const r=Number(a[0]),n=Number(a[8]);return!Number.isFinite(r)||!Number.isFinite(n)||n<=0?null:{turn:r,subagentCount:n}}function Y(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 l=a.get(i);void 0===l&&(l={provider:e,model:n,...void 0!==s?{reasoningEffort:s}:{},count:0},a.set(i,l),t.push(l)),l.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 Q(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}:{}}}return a.inject=["slots","connection","timer","locale","sessions","settingsScope"],a.apply=function(t){const{useState:a,useEffect:s,useRef:i}=r,l=(e,a)=>Promise.resolve(t.connection.rpc.call("/dsh-service",e,a)).then(Q),g=new Map,N=new Map,D=new Map,W=(e,t=!1)=>{if("string"!=typeof e||""===e)return Promise.resolve(new Map);const a=Date.now();if(!t&&a-(N.get(e)??0)<1e4)return Promise.resolve((e=>{const t=g.get(e);return void 0===t?new Map:t.byTurn})(e));let r=D.get(e);return void 0===r&&(r=l("subagent-dispatches",{parentId:e,limit:400}).then(t=>{const a=t&&!0===t.ok&&Array.isArray(t.value?.records)?t.value.records:[],r=new Map,n=[];for(const e of a){if(null===e||"object"!=typeof e)continue;n.push(e);const t="number"==typeof e.turn&&Number.isFinite(e.turn)?e.turn:void 0;if(void 0===t)continue;let a=r.get(t);void 0===a&&(a=[],r.set(t,a)),a.push(e)}return g.set(e,{byTurn:r,records:n}),N.set(e,Date.now()),r}).catch(()=>(N.set(e,Date.now()),null)),D.set(e,r),r.finally(()=>D.delete(e)).catch(()=>{})),r};function B(e){const t=Ae(),[n,i]=a(""),l=e.matched&&"number"==typeof e.matched.turn?e.matched:G(e),o=l&&"number"==typeof l.turn?l.turn:void 0;return s(()=>{let a=!1;const r="string"==typeof e.sessionId?e.sessionId:void 0;if(void 0!==o&&void 0!==r)return W(r).then(e=>{if(a)return;const n=g.get(r),s=(null===e?void 0===n?new Map:n.byTurn:e).get(o),d=Y(s);if(0===d.length){if(null===e&&void 0===n)return void i("");const a=Number.isFinite(l?.subagentCount)&&l.subagentCount>0?String(l.subagentCount):String(s?.length??1);return void i(`${t("1"===a?"subagent.turnTail.countOne":"subagent.turnTail.countMany",{count:a})}${t("subagent.turnTail.unknown")}`)}i(`${t("subagent.turnTail.label")}${J(d)}`)}).catch(()=>{a||i("")}),()=>{a=!0};i("")},[o,e.sessionId]),""===n?null:r.createElement("div",{"data-testid":"subagent-models-turn-tail","data-dsh-service-subagent-models":!0,style:{fontSize:"12px",lineHeight:"18px",color:"var(--dsh-svc-text-muted, var(--dsw-alias-label-secondary, #6b7280))",padding:"2px 0",whiteSpace:"nowrap",overflow:"hidden",textOverflow:"ellipsis",maxWidth:"100%"}},n)}function X(e){const n=Ae(),[i,l]=a("");return s(()=>{let a=!1;const r="string"==typeof e.sessionId?e.sessionId:void 0;if(void 0===r)return void l("");const s=()=>{const e=g.get(r),t=Y(void 0===e?[]:e.records);l(0===t.length?"":`${n("subagent.turnTail.label")}${J(t)}`)},i=()=>W(r).then(e=>!a&&(s(),null!==e)).catch(()=>(a||l(""),!1));i();const o=()=>{a||(W(r,!0).then(e=>{a||s()}).catch(()=>{a||l("")}),d=t.timer?.timeout?.(o,2e4))};let d;return Promise.resolve(i()).then(e=>{!a&&e&&(d=t.timer?.timeout?.(o,2e4))}),()=>{a=!0,"function"==typeof d&&d()}},[e.sessionId]),""===i?null:r.createElement("div",{"data-testid":"subagent-models-dock","data-dsh-service-subagent-models-dock":!0,style:{fontSize:"12px",lineHeight:"18px",color:"var(--dsh-svc-text-muted, var(--dsw-alias-label-secondary, #6b7280))",padding:"2px 4px",whiteSpace:"nowrap",overflow:"hidden",textOverflow:"ellipsis",maxWidth:"100%"}},i)}let Z;"undefined"!=typeof document&&document.head&&(Z=document.createElement("style"),Z.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{"+$(_)+"}","[data-dsh-service-quota-nav]::before{"+$(P)+"}","[data-dsh-service-sessions-nav]::before{"+$(F)+"}","[data-dsh-service-restart-nav]::before{"+$(V)+"}","@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}","[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(Z)),t.effect(()=>()=>{Z&&Z.remove()},"dsh-service theme styles"),t.effect(()=>t.locale.register(n,{zh:L,en:j}),"dsh-service dictionaries");const ee=t.locale.bind(n),te=()=>"zh"===t.locale?.getSnapshot?.()?.active?"zh":"en",ae=(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??""},re={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},ne=t.settingsScope.bind({namespace:n}),se=()=>ne.getSnapshot(),ie=e=>!1!==Object.assign({},re,se().value||{})[e],le=()=>{const[e,t]=r.useState(se());return r.useEffect(()=>ne.subscribe(()=>t(se())),[]),{snapshot:e,value:Object.assign({},re,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)}}K()};i();const l=new MutationObserver(s);return l.observe(document.body,{childList:!0,subtree:!0}),()=>{t=!0,l.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:()=>ee("nav.label")},{attr:"data-dsh-service-quota-nav",label:()=>ee("tabs.quota")},{attr:"data-dsh-service-restart-nav",label:()=>ee("nav.restart")},{attr:"data-dsh-service-sessions-nav",label:()=>ee("tabs.sessions")}]),"dsh-service settings nav icons");const oe="dsh-service-settings-nav-order",de="dsh-service-settings-nav-hidden",ce=/^[A-Za-z0-9._-]{1,64}$/,ue=(e,t,a={})=>{try{const r=localStorage.getItem(e);if(!r)return t;const n=JSON.parse(r);return!Array.isArray(n)||n.length>64?t:n.every(e=>"string"==typeof e&&ce.test(e))?!0===a.excludeHost?n.filter(e=>"dsh-service"!==e):n:t}catch(e){return t}},pe=()=>ue(oe,null),me=e=>{try{null===e?localStorage.removeItem(oe):localStorage.setItem(oe,JSON.stringify(e))}catch(e){}},ge=()=>ue(de,[],{excludeHost:!0}),he=e=>{try{if(null===e||0===e.length)localStorage.removeItem(de);else{const t=e.filter(e=>"dsh-service"!==e);localStorage.setItem(de,JSON.stringify(t))}}catch(e){}};let ve=0;const be=new Set,fe=()=>{ve++;for(const e of be)try{e()}catch(e){}try{if("function"==typeof t.slots?.register){const e=t.slots.register({name:"settings.section",id:"__dsh_nav_bump__"},()=>null);"function"==typeof e&&e()}}catch(e){}K()};let ye=null,xe=null;if(t.slots&&"function"==typeof t.slots.entries){const e=t.slots.entries.bind(t.slots);ye=e;const a="function"==typeof t.slots.getVersion?t.slots.getVersion.bind(t.slots):null,r="function"==typeof t.slots.subscribe?t.slots.subscribe.bind(t.slots):null;t.slots.entries=function(t){const a=e(t);if("settings.section"!==t)return a;const r=pe(),n=ge(),s=new Set(n),i=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?i.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})})}):i},a&&(t.slots.getVersion=function(e){const t=a(e);return"settings.section"===e?t+1e5*ve:t});const n=new Set;r&&(t.slots.subscribe=function(e,t){if("settings.section"===e){be.add(t);const a=r(e,t),s=()=>{n.delete(s)&&(be.delete(t),"function"==typeof a&&a())};return n.add(s),s}return r(e,t)}),xe=()=>{t.slots.entries=e,a&&(t.slots.getVersion=a),r&&(t.slots.subscribe=r);for(const e of Array.from(n))e();be.clear()}}t.effect(()=>()=>{xe&&xe()},"dsh-service settings nav slot wrapping");const ke=()=>{let e=[];return ye?e=ye("settings.section"):"function"==typeof t.slots?.entries&&(e=t.slots.entries("settings.section")),e.filter(e=>"__dsh_nav_bump__"!==(e.options?.id??e.options?.key))},we=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??"")};K=()=>{if("undefined"==typeof document||!document.body)return;const e="function"==typeof document.querySelector?document.querySelector('[role="dialog"] nav'):null;if(!e)return;Ce();const t="function"==typeof e.querySelectorAll?e.querySelectorAll("button"):[];if(!t||0===t.length)return;const a=ge(),r=new Set(a),n=pe(),s=ke(),i=new Map;for(const e of s){const t=e.options?.id??e.options?.key??"";if(!t||"__dsh_nav_bump__"===t)continue;const a=we(e.options);a&&i.set(a.trim(),t),i.set(t,t)}for(const e of t){let t=null;const a=t=>"function"==typeof e.hasAttribute?e.hasAttribute(t):!(!e.attrs||"function"!=typeof e.attrs.has)&&e.attrs.has(t);if(a("data-dsh-service-nav")?t="dsh-service":a("data-dsh-service-quota-nav")?t="dsh-service-quota":a("data-dsh-service-restart-nav")?t="dsh-service-restart":a("data-dsh-service-sessions-nav")&&(t="dsh-service-sessions"),!t){const a="function"==typeof e.querySelector?e.querySelector("span"):null,r=(a?a.textContent:e.textContent||"").trim();t=i.get(r)}if(t&&e.style)if("dsh-service"===t?e.style.display="":r.has(t)?e.style.display="none":e.style.display="",n&&n.length>0){const a=n.indexOf(t);e.style.order=-1!==a?String(a):"9999"}else e.style.order=""}const l="function"==typeof e.querySelector?e.querySelector("div"):null;l&&l.style&&n&&n.length>0&&(l.style.display="flex",l.style.flexDirection="column")};const Ee=({section:e,readOrder:t,readHidden:a,writeLocal:r})=>{const n={synced:!1,pushPending:!1},s=(t,a)=>{l("config-set",{section:e,value:{order:t,hidden:a}}).then(e=>{e&&!0===e.ok||(n.pushPending=!0)}).catch(()=>{n.pushPending=!0})},i=()=>{l("config-set",{section:e,value:null}).then(e=>{e&&!0===e.ok||(n.pushPending=!0)}).catch(()=>{n.pushPending=!0})},o=()=>{const e=t(),r=a();e&&e.length>0||r&&r.length>0?s(e,r):i()};return{persist:s,persistReset:i,ensureSynced:()=>{n.synced?n.pushPending&&(n.pushPending=!1,o()):(n.synced=!0,(async()=>{try{const t=await l("config-get",{section:e});if(!t||!0!==t.ok||void 0===t.value)return void(n.synced=!1);if(n.pushPending)return n.pushPending=!1,void o();const a=t.value;if(null!==a&&"object"==typeof a&&(Array.isArray(a.order)||Array.isArray(a.hidden)))return void r(Array.isArray(a.order)?a.order:null,Array.isArray(a.hidden)?a.hidden:[]);o()}catch(e){n.synced=!1}})())}}},Se=Ee({section:"settingsNav",readOrder:()=>pe(),readHidden:()=>ge(),writeLocal:(e,t)=>{me(e),he(t),fe()}}),ze=Se.persist,qe=Se.persistReset,Ce=Se.ensureSynced,Ae=()=>{const[,e]=a(t.locale.getSnapshot());return s(()=>t.locale.subscribe(()=>e(t.locale.getSnapshot())),[]),ee},Te={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"},Me=e=>"primary"===e?{...Te,background:"var(--dsh-svc-brand)",borderColor:"var(--dsh-svc-brand)",color:"var(--dsh-svc-brand-text)"}:"danger"===e?{...Te,background:"var(--dsh-svc-danger)",borderColor:"var(--dsh-svc-danger)",color:"var(--dsh-svc-brand-text)"}:"dangerGhost"===e?{...Te,background:"transparent",color:"var(--dsh-svc-danger)",borderColor:"var(--dsh-svc-danger)"}:"brandGhost"===e?{...Te,background:"transparent",color:"var(--dsh-svc-brand)",borderColor:"var(--dsh-svc-brand)"}:"ghost"===e?{...Te,background:"transparent",color:"var(--dsh-svc-text)",borderColor:"var(--dsh-svc-border-strong)"}:"neutral"===e?{...Te,background:"var(--dsh-svc-page-bg)",color:"var(--dsh-svc-text)",borderColor:"var(--dsh-svc-border-strong)"}:{...Te,background:"var(--dsh-svc-content-bg)",color:"var(--dsh-svc-text)",borderColor:"var(--dsh-svc-border-strong)"},Ie=e=>Object.assign({},Te,{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),He=(e,t)=>Object.assign({display:"inline-flex",alignItems:"center",flex:"none",fontSize:"10px",lineHeight:"16px",padding:"1px 6px",...T(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),Oe=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),Re=["overview","usage","quota","diagnostics","maintenance","configuration"],Le={overview:"tabs.overview",usage:"tabs.usage",quota:"tabs.quota",diagnostics:"tabs.health",maintenance:"tabs.maintenance",configuration:"tabs.configuration"},je={usage:"modelUsage",quota:"quotaLookup",diagnostics:"healthDiagnostics"},Ne=["sessions","skills","subagent","backup","restart"],De={sessions:"tabs.sessions",skills:"tabs.skills",subagent:"tabs.subagent",backup:"tabs.backup",restart:"tabs.restart"},$e={sessions:"sessionManager",skills:"skillManager",subagent:"subagentRoute",backup:"backupMaintenance"},We=e=>Ne.filter(t=>void 0===$e[t]||!1!==e[$e[t]]).map(e=>({id:e,labelKey:De[e]})),Be=(e,t)=>{const a=We(t);return 0===a.length?null:a.some(t=>t.id===e)?e:a[0].id},_e=[{id:"features",labelKey:"tabs.features"},{id:"notifications",labelKey:"tabs.notifications"},{id:"navOrder",labelKey:"tabs.navOrder"}],Pe={quota:"page.quota.desc",diagnostics:"page.diagnostics.desc",configuration:"page.configuration.desc"};function Ve({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 Fe({items:e,activeId:t,onChange:a,testIdPrefix:n,variant:s,dotLabel:i,ariaLabel:l}){const o="sub"===s;return r.createElement("div",{role:"tablist","aria-label":l,className:o?"dshsvc-subtabs":"dshsvc-tabs","data-testid":n+"-list"},e.map(e=>{const s=e.id===t,l=o?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:o?"dshsvc-subtab":"dshsvc-tab",style:l,onClick:()=>a(e.id)},void 0!==e.icon?r.createElement(U,{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",...T("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",...T("999px"),background:"var(--dsw-alias-state-warn-primary)",color:"var(--dsh-svc-brand-text)",fontWeight:700}},e.badge.text):null)}))}let Ue=!1,Ke=!0,Ge=!0,Ye=!0;try{Ue="true"===localStorage.getItem("dsh-service-notify")}catch(e){}try{Ke="false"!==localStorage.getItem("dsh-service-notify-done")}catch(e){}try{Ge="false"!==localStorage.getItem("dsh-service-notify-input")}catch(e){}try{Ye="false"!==localStorage.getItem("dsh-service-notify-bell")}catch(e){}const Je=new Set,Qe=new Set,Xe=(e,t)=>{try{localStorage.setItem(e,t?"true":"false")}catch(e){}},Ze=()=>{for(const e of Je)e()},et=e=>{Ye=!0===e,Xe("dsh-service-notify-bell",Ye),(()=>{for(const e of Qe)e()})()},tt=()=>{const[,e]=a(0),[t,n]=a(Ue),[s,i]=a(Ke),[l,o]=a(Ge),[d,c]=a(Ye);return r.useEffect(()=>{const t=()=>{n(Ue),i(Ke),o(Ge),c(Ye),e(e=>e+1)};return Je.add(t),Qe.add(t),()=>{Je.delete(t),Qe.delete(t)}},[]),{enabled:t,done:s,input:l,bell:d,setEnabled:e=>{return Ue=t=e,Xe("dsh-service-notify",t),void Ze();var t},setDone:e=>{return Ke=t=e,Xe("dsh-service-notify-done",t),void Ze();var t},setInput:e=>{return Ge=t=e,Xe("dsh-service-notify-input",t),void Ze();var t},setBell:et}},at=({storageKey:e,legacyStorageKey:r,sectionId:n,order:i,labelKey:l,feature:o,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===o||ie(o))&&(u=t.slots.register({name:"settings.section",id:n,order:i,label:()=>ee(l)},d))},g=t=>{c=!0===t;try{localStorage.setItem(e,c?"true":"false")}catch(e){}m();for(const e of p)e()};return{sync:m,setEnabled:g,useEnabled:()=>{const[e,t]=a(c);return s(()=>{const e=()=>t(c);return p.add(e),t(c),()=>p.delete(e)},[]),[e,g]},disposeEntry:()=>{u&&(u(),u=null)}}},rt=at({storageKey:"dsh-service-shortcut-restart",legacyStorageKey:"dsh-service-restart-nav",sectionId:"dsh-service-restart",order:499,labelKey:"nav.restart",renderContent:()=>r.createElement(la,null)}),nt=at({storageKey:"dsh-service-shortcut-quota",legacyStorageKey:"dsh-service-quota-nav",sectionId:"dsh-service-quota",order:498,labelKey:"tabs.quota",feature:"quotaLookup",renderContent:()=>r.createElement(fr,null)}),st=at({storageKey:"dsh-service-shortcut-sessions",legacyStorageKey:"dsh-service-sessions-nav",sectionId:"dsh-service-sessions",order:495,labelKey:"tabs.sessions",feature:"sessionManager",renderContent:()=>r.createElement(Ar,null)});let it=null,lt=null,ot=null,dt=null,ct="",ut=!1,pt=null,mt=null,gt=!1;const ht="dsh-service-skills-batch-pending",vt=new Set,bt=()=>{for(const e of vt)e()},ft=e=>{try{e?localStorage.setItem(ht,"true"):localStorage.removeItem(ht)}catch(e){}},yt=e=>{ft("planned"===e||"running"===e)},xt=()=>{null!==pt&&(clearInterval(pt),pt=null)},kt=(e=!0)=>{if(null!==it&&"running"===it.phase&&ie("skillManager")&&null===pt){const t=async()=>{try{const e=await l("skills-batch-status",{});if(!e.ok)return;const t=null!==it?it.phase:null;it=e.value,yt(e.value.phase),"running"===t&&"running"!==e.value.phase&&(xt(),ut=!0),bt()}catch(e){}};e&&t(),pt=setInterval(()=>{t()},2e3)}},wt=async()=>{if(null!==ot)return ot;try{const e=await l("skills-models",{});if(!e.ok)return ot=[],ot;ot=e.value.models??[],null===dt&&(dt=gr(ot,e.value.current))}catch(e){ot=[]}return ot},Et=()=>gt?Promise.resolve(it):(null!==mt||(mt=(async()=>{try{const e=await l("skills-batch-status",{});e.ok&&(gt=!0,yt(e.value.phase),"idle"!==e.value.phase&&(it=e.value,kt(!1),bt()))}catch(e){}return it})().finally(()=>{mt=null})),mt),St=()=>{const[,e]=a(0);return s(()=>{const t=()=>e(e=>e+1);return vt.add(t),()=>vt.delete(t)},[]),{batch:it,plan:lt,models:ot,modelItem:dt,error:ct}};t.effect(()=>{const e=ne.subscribe(()=>{ie("skillManager")||xt()});return()=>{e(),xt()}},"dsh-service skills batch polling lifecycle"),(()=>{try{return"true"===localStorage.getItem(ht)}catch(e){return!1}})()&&Et();const zt={approval:"notification.kind.approval","plan-review":"notification.kind.plan-review",question:"notification.kind.question"},qt=(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){}},Ct=()=>{try{if("function"==typeof t.get)return t.get("modelDirectories")}catch(e){}},At={anyRunning:!1,runningSessionIds:new Set};if(t.sessions&&"function"==typeof t.sessions.list?.subscribe){const e=new Map;let a=!1,r=null,n=null;const s=()=>{const r=t.sessions.list.getSnapshot();if(r&&r.byId)if(At.runningSessionIds=new Set(Object.entries(r.byId).filter(([,e])=>!0===e.running).map(([e])=>e)),At.anyRunning=At.runningSessionIds.size>0,a){for(const[t,a]of Object.entries(r.byId)){const r={running:!0===a.running,pending:void 0!==a.pendingInteraction},n=e.get(t);if(void 0!==n&&(n.running&&!r.running&&"subagent"!==a.origin&&ie("taskNotifications")&&Ue&&Ke&&qt(ee("notification.doneTitle"),ee("notification.doneBody",{title:a.displayTitle||t})),!n.pending&&r.pending&&ie("taskNotifications")&&Ue&&Ge)){const e=zt[a.pendingInteraction],r=e?ee(e):String(a.pendingInteraction);qt(ee("notification.inputTitle"),ee("notification.inputBody",{title:a.displayTitle||t,kind:r}))}e.set(t,r)}for(const t of[...e.keys()])t in r.byId||e.delete(t);At.anyRunning&&Ha()}else{a=!0;for(const[t,a]of Object.entries(r.byId))e.set(t,{running:!0===a.running,pending:void 0!==a.pendingInteraction})}},i=()=>{null!==r&&(r(),r=null),null!==n&&(n(),n=null),e.clear(),a=!1,At.anyRunning=!1,At.runningSessionIds=new Set},l=()=>{ie("taskNotifications")||ie("quotaLookup")?null===r&&(r=t.sessions.list.subscribe(()=>s()),n=t.on("connection/reset",()=>{e.clear(),a=!1}),s()):i()};l();const o=ne.subscribe(l);t.effect(()=>()=>{o(),i()},"dsh-service: shared session observation")}const Tt=new Set;let Mt={status:"idle",elapsedMs:0},It=0;const Ht=e=>{Mt=e;for(const t of Tt)t(e)},Ot=new Set;let Rt={stage:0,activity:null,busy:!1,error:null};const Lt=e=>{Rt=e;for(const t of Ot)t(e)},jt=()=>{const[e,t]=a(Rt);return s(()=>(Ot.add(t),t(Rt),()=>Ot.delete(t)),[]),e},Nt=new Set;let Dt=null;const $t=()=>{const[e,t]=a(Dt);return s(()=>(Nt.add(t),t(Dt),()=>Nt.delete(t)),[]),e},Wt=new Set;let Bt=null;let _t=null;const Pt=()=>(null===_t&&(_t=l("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=>{Dt=e;for(const t of Nt)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!==Bt&&(e=>{Bt=e;for(const t of Wt)t(e)})(a)})(e.value)),e)).catch(()=>(_t=null,null))),_t),Vt=()=>(_t=null,Pt());let Ft=null;const Ut=async e=>{const t=await(!0===e?Vt():Pt()),a=t&&t.ok?t.value&&t.value.instanceId:void 0;"string"==typeof a&&0!==a.length&&(null!==Ft?a!==Ft&&window.location.reload():Ft=a)};let Kt=!1;const Gt=async()=>{Lt({...Rt,busy:!0,error:null});try{const e=await l("activity",{});if(e&&!1===e.ok)throw console.error("dsh-service: activity check failed",e.error),new Error(ee("error.activity"));const t=e&&e.value?e.value:{hasActive:!1,items:[]};Lt({...Rt,activity:t,stage:t.hasActive?3:1,busy:!1,error:null})}catch(e){Lt({...Rt,error:e&&e.message?String(e.message):String(e),stage:0,busy:!1})}},Yt=async e=>{Lt({...Rt,busy:!0,error:null});try{const t=await l("web",{force:!0===e});if(t&&!1===t.ok){if("active-work"===t.error&&t.value)return void Lt({...Rt,activity:t.value,stage:3,busy:!1,error:null});throw console.error("dsh-service: restart failed",t.error),new Error(ee("error.restart"))}const a=t&&t.value?t.value.instanceId:void 0;if("string"!=typeof a||0===a.length)throw new Error(ee("error.instance"));Lt({...Rt,stage:2,busy:!1,error:null}),Jt(a).catch(e=>console.error("dsh-service: recovery failed",e))}catch(e){Lt({...Rt,error:e&&e.message?String(e.message):String(e),stage:0,busy:!1})}},Jt=async e=>{const a=++It;let r=0,n=1e3;for(Ht({status:"waiting",elapsedMs:r});r<6e4&&a===It;){const s=Math.min(n,6e4-r);try{await t.timer.timeout(s)}catch(e){return}if(a!==It)return;r+=s,Ht({status:"waiting",elapsedMs:r});try{const t=await l("version",{}),a=t&&t.ok?t.value&&t.value.instanceId:void 0;if("string"==typeof a&&a.length>0&&a!==e)return void window.location.reload()}catch(e){}if(r>=6e4)return void Ht({status:"timeout",elapsedMs:r});n=Math.min(2*n,1e4)}};t.effect(()=>()=>{It+=1,Tt.clear(),Ot.clear(),Nt.clear()},"dsh-service recovery"),t.effect(()=>{const e=t.on("connection/reset",()=>{Ut(!0).catch(()=>{})});return Ut(!1).catch(()=>{}),e},"dsh-service process identity");const Qt="@deepseek-ai/dsh",Xt=(e,t)=>"string"==typeof t&&0!==t.length&&/^[0-9A-Za-z.+_-]+$/.test(t)?`${e}${t}`:null,Zt=(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)},ea=(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||"—"),Zt(t,"npmjs",Xt(`https://www.npmjs.com/package/${Qt}/v/`,a)),Zt(t,"npmmirror",Xt(`https://www.npmmirror.com/package/${Qt}/home?version=`,a))),ta="0.1.6-alpha.3",aa=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},ra=e=>/^\d+$/.test(e)?Number(e):e,na=(e,t)=>{const a=aa(e),r=aa(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=ra(a.pre[e]),n=ra(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 sa(){const e=(()=>{const[e,t]=a(Mt);return s(()=>(Tt.add(t),t(Mt),()=>Tt.delete(t)),[]),e})(),t=Ae();if("idle"===e.status)return null;const n="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(n?"recovery.timeout.title":"recovery.waiting.title")),r.createElement("p",{style:{margin:0,fontSize:"13px",lineHeight:1.7,color:"var(--dsw-alias-label-secondary)"}},n?t("recovery.timeout.body"):t("recovery.waiting.body",{seconds:Math.floor(e.elapsedMs/1e3)})),n?r.createElement("button",{style:Object.assign({},Ie(),{marginTop:"16px",padding:"7px 16px"}),onClick:()=>window.location.reload()},t("recovery.manual")):null))}function ia(){return r.createElement(sa,null)}function la({showNavToggle:e}){const t=Ae(),a=jt(),n=$t();s(()=>{Pt()},[]);const[i,l]=rt.useEnabled(),o=Me("danger"),d=Me("dangerGhost"),c=Me("ghost"),u={color:"var(--dsw-alias-label-secondary)",fontSize:"12px",marginTop:"8px",lineHeight:1.5},p={padding:"4px 0 14px",marginBottom:"12px",color:"var(--dsw-alias-label-primary)"},m=Oe(),g={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:p},r.createElement("div",{style:g},t("restart.title")),r.createElement("p",{style:{margin:0,fontSize:"13px"}},t("restart.sent")),r.createElement("p",{style:u},t(null!==n&&!0===n.manualStartLikely?"restart.sentManualHint":"restart.sentHint")));const h={agent:t("activity.agent"),job:t("activity.job"),terminal:t("activity.terminal")},v=a.activity&&Array.isArray(a.activity.items)?a.activity.items:[],b=null!==n&&!0===n.manualStartLikely?r.createElement("p",{"data-testid":"restart-manual-warn",style:Object.assign({},u,{color:"var(--dsw-alias-state-warn-primary)",margin:"6px 0 0"})},t("restart.manualWarn")):null,f=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:v.length})),r.createElement("ul",{style:{margin:0,paddingLeft:"20px",fontSize:"12px",lineHeight:1.7}},v.map(e=>r.createElement("li",{key:e.type+":"+e.id},t("activity.item",{type:h[e.type]||e.type,label:e.label,status:e.status}))))):null;return r.createElement("div",{"data-testid":"restart-card",style:p},r.createElement("div",{style:g},t("restart.title")),r.createElement("div",{"data-testid":"restart-region",style:m},r.createElement("p",{style:{margin:0,fontSize:"13px"}},t("restart.description")),b,f,r.createElement("div",{style:{display:"flex",alignItems:"center",gap:"8px",marginTop:"12px",flexWrap:"wrap"}},0===a.stage?r.createElement("button",{style:d,"data-variant":"dangerGhost",onClick:Gt,disabled:a.busy},t(a.busy?"update.checking":"restart.button")):1===a.stage?[r.createElement("button",{key:"confirm",style:o,"data-variant":"danger",onClick:()=>Yt(!1),disabled:a.busy},t(a.busy?"restart.sending":"restart.confirm")),r.createElement("button",{key:"cancel",style:c,onClick:()=>Lt({...Rt,activity:null,stage:0,busy:!1,error:null}),disabled:a.busy},t("restart.cancel"))]:3===a.stage?[r.createElement("button",{key:"force",style:o,"data-variant":"danger",onClick:()=>Yt(!0),disabled:a.busy},t(a.busy?"restart.sending":"restart.force")),r.createElement("button",{key:"cancel",style:c,onClick:()=>Lt({...Rt,activity:null,stage:0,busy:!1,error:null}),disabled:a.busy},t("restart.cancel"))]:null),1===a.stage?r.createElement("p",{style:u},t("restart.idleHint")):null,a.error?r.createElement("p",{style:Object.assign({},u,{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:u},t("restart.navToggleHint"))),r.createElement("button",{type:"button",role:"switch","data-testid":"restart-nav-switch","aria-checked":String(i),onClick:()=>l(!i),style:{width:"34px",height:"20px",...T("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",...T("50%"),background:i?"#fff":"var(--dsw-alias-label-tertiary)"}}))):null))}const oa="dsh-service-quota-poll",da=[0,1,2,5,10],ca=["opencode-go","zai-coding-cn","openrouter","kimi","siliconflow","deepseek","stepfun","stepfun-step-plan","xiaomi-token-plan-cn","cliproxy","command-goat"];function ua(){try{const e=Number.parseInt(localStorage.getItem(oa),10);return da.includes(e)?e:0}catch(e){return 0}}const pa="dsh-service-quota-card-order",ma="dsh-service-quota-card-hidden",ga=(e,t)=>{try{const a=localStorage.getItem(e);if(!a)return t;const r=JSON.parse(a);return!Array.isArray(r)||r.length>64?t:r.every(e=>"string"==typeof e&&""!==e.trim()&&e.trim().length<=128)?r.map(e=>e.trim()):t}catch(e){return t}},ha=()=>ga(pa,[]),va=()=>ga(ma,[]),ba=e=>{try{null===e?localStorage.removeItem(pa):localStorage.setItem(pa,JSON.stringify(e.slice(0,64)))}catch(e){}},fa=e=>{try{null===e||0===e.length?localStorage.removeItem(ma):localStorage.setItem(ma,JSON.stringify(e.slice(0,64)))}catch(e){}};let ya=new Set;const xa=()=>{for(const e of ya)try{e()}catch(e){}},ka=Ee({section:"quotaCards",readOrder:()=>ha(),readHidden:()=>va(),writeLocal:(e,t)=>{ba(e),fa(t),xa()}});function wa(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)}let Ea=null,Sa=null;function za(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 qa(e={providers:[]}){const a=za(e);return null!==Ea?(r=Sa,n=a,Sa="all"===r?.scope||"all"===n?.scope?{scope:"all"}:za({providers:[...r?.providers??[],...n?.providers??[]]}),Ea):(Ea=Promise.resolve().then(async()=>{try{const e=await l("quota",a);if(!0===e?.ok&&e.value&&"object"==typeof e.value&&Array.isArray(e.value.providers))return m.publish(e.value),function(e,a={providers:[]}){Array.isArray(e?.providers)&&e.providers.some(e=>!0===e.adapted&&!0===e.refreshing)&&0!==Ma.refs?null!==Aa.dispose||Aa.pulls>=Ta.length||(Aa.dispose=t.timer.timeout(()=>{Aa.dispose=null,qa(a)},Ta[Aa.pulls]),Aa.pulls+=1):Aa.pulls=0}(e.value,a),!0}catch(e){}return!1}).finally(()=>{Ea=null;const e=Sa;Sa=null,null!==e&&qa(e)}),Ea);var r,n}function Ca(){const e=Ct();if(void 0===e||"function"!=typeof e.directoryFor)return[];const t=[];for(const a of At.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 Aa={pulls:0,dispose:null},Ta=[800,2400,4800,8e3,12e3],Ma={refs:0,allRefs:0,nextDispose:null,running:!1,onVisible:void 0},Ia=()=>"undefined"!=typeof document&&"hidden"===document.visibilityState;function Ha(){if(!ie("quotaLookup")||0===Ma.refs||null!==Ma.nextDispose||ua()<=0)return;const e=ua();Ma.nextDispose=t.timer.timeout(()=>{Ma.nextDispose=null,Oa()},6e4*e)}function Oa(){if(!ie("quotaLookup")||0===Ma.refs||Ma.running)return;const e=Ma.allRefs>0?{scope:"all"}:{providers:Ca()};"all"!==e.scope&&0===e.providers.length||(Ma.running=!0,Promise.resolve(qa(e)).catch(()=>!1).then(()=>{Ma.running=!1,Ha()}))}function Ra(e={}){ie("quotaLookup")&&(Ma.refs+=1,!0===e.all&&(Ma.allRefs+=1),!0===e.all?qa({scope:"all"}):Oa(),Ha(),1===Ma.refs&&void 0===Ma.onVisible&&"undefined"!=typeof document&&(Ma.onVisible=()=>{Ia()||Oa()},document.addEventListener("visibilitychange",Ma.onVisible)))}function La(e={}){(ie("quotaLookup")||0!==Ma.refs)&&(Ma.refs=Math.max(0,Ma.refs-1),!0===e.all&&(Ma.allRefs=Math.max(0,Ma.allRefs-1)),Ma.refs>0||(null!==Ma.nextDispose&&(Ma.nextDispose(),Ma.nextDispose=null),null!==Aa.dispose&&(Aa.dispose(),Aa.dispose=null),void 0!==Ma.onVisible&&"undefined"!=typeof document&&(document.removeEventListener("visibilitychange",Ma.onVisible),Ma.onVisible=void 0)))}function ja(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(" ")}function Na(e){try{return new Date(e).toLocaleTimeString([],{hour:"2-digit",minute:"2-digit",hourCycle:"h23"})}catch(e){return""}}function Da(e){const t=new Date(e),a=e=>String(e).padStart(2,"0");return`${t.getFullYear()}-${a(t.getMonth()+1)}-${a(t.getDate())}`}t.effect(()=>()=>{null!==Ma.nextDispose&&Ma.nextDispose(),null!==Aa.dispose&&Aa.dispose(),void 0!==Ma.onVisible&&"undefined"!=typeof document&&document.removeEventListener("visibilitychange",Ma.onVisible)},"dsh-service quota poller disposal");const $a=Object.assign(Object.create(null),{deepseek:{segments:[[540,720],[840,1080]],captionKey:"quota.peak.caption"},"zai-coding-cn":{segments:[[840,1080]],captionKey:"quota.peak.caption.zai"}}),Wa="#f0952f",Ba="var(--dsw-alias-state-success-primary)",_a=3e4;function Pa(e){const t=new Date(e+288e5),a=e=>String(e).padStart(2,"0");return`${a(t.getUTCHours())}:${a(t.getUTCMinutes())}`}function Va(e,t){return!1===Array.isArray(t)||0===t.length?null:$a[e?.kind]??null}function Fa({showCaption:e,schedule:n}){const i=Ae(),[l,o]=a(Date.now());s(()=>{let e=!1,a=null;const r=()=>{e||(a=t.timer.timeout(()=>{o(Date.now()),r()},_a))};return r(),()=>{e=!0,null!=a&&a()}},[]);const d=function(e){const t=new Date(e+288e5);return{dayIndex:t.getUTCDay(),minutesOfDay:60*t.getUTCHours()+t.getUTCMinutes()}}(l),c=(u=n.segments,p=d.dayIndex,m=d.minutesOfDay,0!==p&&6!==p&&u.some(([e,t])=>m>=e&&m<t));var u,p,m;const g=function(e,t){const a=new Date(t+288e5);a.setUTCHours(0,0,0,0);const r=a.getTime()-288e5,n=[];for(let a=0;a<=6&&n.length<2;a++){const s=r+864e5*a,i=new Date(s+288e5).getUTCDay();if(0!==i&&6!==i)for(const a of e.flat()){const e=s+6e4*a;if(!(e<=t)&&(n.push(e),n.length>=2))return n}}return n}(n.segments,l),h=g[0]??null,v=c?Wa:Ba,b=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(c),style:{display:"inline-flex",alignItems:"center",gap:"5px",fontSize:"12px",lineHeight:"16px",color:v,whiteSpace:"nowrap",flexShrink:0}},r.createElement("span",{style:{width:"7px",height:"7px",...T("50%"),background:v,flexShrink:0}}),i(c?"quota.peak.nowPeak":"quota.peak.nowIdle")),null!==h?r.createElement("span",{"data-testid":"quota-peak-next",style:{marginLeft:"auto",fontSize:"11px",lineHeight:"16px",color:"var(--dsw-alias-label-tertiary)",whiteSpace:"nowrap"}},i(c?"quota.peak.untilIdle":"quota.peak.untilPeak",{time:Pa(h),dur:ja(h-l,i)})):null),r.createElement("div",{"data-testid":"quota-peak-bar",style:{position:"relative",height:"14px",...T(999),overflow:"hidden",background:"var(--dsw-alias-interactive-bg-hover)"}},(g.length>0?[{peak:c,weight:g[0]-l},...g.length>1?[{peak:!c,weight:g[1]-g[0]}]:[]]:[{peak:c,weight:1}]).map((e,t,a)=>{const n=a.reduce((e,t)=>e+t.weight,0),s=b(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:b(a[0].weight/n*1440)}%`,width:`${s}%`,background:e.peak?Wa:Ba,overflow:"hidden"}},s>=11?r.createElement("span",{style:{position:"absolute",inset:0,textAlign:"center",fontSize:"9px",lineHeight:"14px",fontWeight:500,color:"rgba(255,255,255,0.95)"}},i(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"}},i(n.captionKey)):null)}function Ua(e,t){const a="string"==typeof e.expiresAt&&""!==e.expiresAt.trim()?e.expiresAt.trim():"",r=""!==a?Date.parse(a):NaN,n=Number.isFinite(r)&&r<Date.now();let s="";if(""!==a){let e=a;Number.isFinite(r)&&(e=a.length>10?`${Da(r)} ${Na(r)}`:Da(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}}function Ka(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),l="number"==typeof e?.nextAllowedAt&&e.nextAllowedAt>Date.now()?` · ${t("quota.retryAt",{time:Na(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(" · ")})`:""}${l}`}function Ga(e,t,a){const n=null!=a,s=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}(e,t),i={color:"var(--dsw-alias-label-secondary)",minWidth:0,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},l={color:"var(--dsw-alias-label-primary)",fontWeight:500,fontVariantNumeric:"tabular-nums",whiteSpace:"nowrap",flexShrink:0};let o=null;if("string"==typeof e.resetsAt){const s=Date.parse(e.resetsAt);Number.isFinite(s)&&s>Date.now()&&(o=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:ja(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:l},e.text)),o):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:l},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} · ${ae(a,{billions:!0})} / ${ae(r,{billions:!0})}`}(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:He("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",...T(999),background:"var(--dsw-alias-interactive-bg-hover)",overflow:"hidden"}},r.createElement("div",{style:{height:"100%",width:`${Math.max(0,Math.min(100,t))}%`,...T(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),o)}let Ya=null;try{const t=e("react-dom");null!=t&&"function"==typeof t.createPortal&&(Ya=t.createPortal)}catch(e){Ya=null}function Ja(){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 Qa=["gemini","claude","codex"];function Xa(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 Za(e){const t=new Map;for(const a of e){const e=Xa(a),r=t.get(e)||[];r.push(a),t.set(e,r)}const a=[];for(const e of[...Qa,"other"]){const r=t.get(e);r&&r.length>0&&a.push({family:e,windows:r})}return a}function er(e){const n=Ae(),[l,o]=a(m.getSnapshot());s(()=>m.subscribe(()=>o(m.getSnapshot())),[]);const d=e&&e.directoryStore,c=e&&"string"==typeof e.sessionId&&""!==e.sessionId?e.sessionId:void 0,[u,p]=a(null),g=null!=d?d:u;s(()=>{if(null!=d)return;if(void 0===c)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=Ct()}catch(e){i=null}if(null==i||"function"!=typeof i.directoryFor)return;let l=null;try{l=i.directoryFor(c)}catch(e){l=null}if(null==l||void 0===l.store||null===l.store)s>=r.length||(a=t.timer.timeout(()=>{a=null,n(s+1)},r[s]));else{p(l.store);try{const e=l.load();e&&"function"==typeof e.catch&&e.catch(()=>{})}catch(e){}}};return n(0),()=>{e=!0,null!==a&&a()}},[d,c]),s(()=>{if(g)return Ra(),La},[g]);const[h,v]=a(g?g.getSnapshot():null);s(()=>{if(g)return v(g.getSnapshot()),g.subscribe(()=>v(g.getSnapshot()))},[g]),s(()=>{g&&(null===h||null==h?.current)&&e&&"function"==typeof e.loadDirectory&&e.loadDirectory()},[g,h,e&&e.loadDirectory]);const[b,f]=a(!1),y=i(null),x=i(null),[k,w]=a(Ja);s(()=>{if("undefined"==typeof window||null===window||"function"!=typeof window.matchMedia)return;const e=window.matchMedia("(max-width: 1023px)"),t=()=>w(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[E,S]=a(!1),z=h?.current?.provider??null,q=h?.current?.model??null,C=null!==z?(l.providers||[]).find(e=>e.provider===z&&!0===e.adapted):null,A=Array.isArray(C?.windows)?C.windows:[],M="cliproxy"===C?.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}(q):null,I="claude"===M?"Claude":"gemini"===M?"Gemini":"codex"===M?"Codex":null,H=null!==M?A.filter(e=>function(e,t){return!t||Xa(e)===t}(e,M)):A,O=H.length>0&&!E?H:A,R=(H.length>0?H:A).filter(e=>"number"==typeof e.percent),L=e=>!0===e.remaining?100-e.percent:e.percent,j=R.length>0?R.reduce((e,t)=>L(t)>L(e)?t:e,R[0]):null;s(()=>{S(!1)},[z,q,b]);const N=i(new Set);if(s(()=>{if(null===z)return;const e=(l.providers||[]).find(e=>e.provider===z&&!0===e.adapted);(void 0===e||!1===Array.isArray(e.windows)&&!0!==e.refreshing&&void 0===e.errorCode)&&!N.current.has(z)&&(N.current.add(z),qa({providers:[z]}))},[z,l]),s(()=>{if(!b||"undefined"==typeof document)return;const e=e=>{y.current&&e.target instanceof Node&&y.current.contains(e.target)||x.current&&e.target instanceof Node&&x.current.contains(e.target)||f(!1)},t=e=>{"Escape"===e.key&&f(!1)};return document.addEventListener("pointerdown",e),document.addEventListener("keydown",t),()=>{document.removeEventListener("pointerdown",e),document.removeEventListener("keydown",t)}},[b]),null==C)return null;const D=null===j?0:j.percent,$=null!==j,W=!$||!0===j.remaining,B=n(W?"quota.panel.remaining":"quota.panel.used"),_=(W?D<=20:D>=80)?"var(--dsw-alias-state-warn-primary)":"var(--dsw-alias-state-success-primary)",P=2*Math.PI*5.5,V=C?.displayName||z,F=I?`${V} · ${I}`:V,U=$?`${n("quota.ring.label")} · ${F} · ${B} ${D}%`:`${n("quota.ring.label")} · ${F}`,K=void 0!==C.errorCode?r.createElement("div",{style:{marginTop:"8px",fontSize:"12px",lineHeight:"18px",color:"var(--dsw-alias-state-error-primary)"}},Ka(C,n)):null,G=!0===C.refreshing||"number"==typeof C.fetchedAt?r.createElement("div",{style:{marginTop:"8px",fontSize:"11px",color:"var(--dsw-alias-label-tertiary)"}},!0===C.refreshing?n("quota.refreshing"):n("quota.updated",{time:Na(C.fetchedAt)})):null,Y=b&&k&&null!==Ya&&"undefined"!=typeof document&&null!==document.body&&void 0!==document.body,J=Va(C,A),Q=r.createElement("button",{type:"button","data-testid":"quota-ring-trigger","aria-label":U,"aria-haspopup":"dialog","aria-expanded":b,title:U,onClick:()=>{const e=!b;f(e),e&&qa({providers:null===z?[]:[z]})},style:{width:"28px",height:"28px",border:"none",...T("999px"),background:"transparent",cursor:"pointer",display:"grid",placeItems:"center",padding:0,color:"var(--dsw-alias-label-secondary)"}},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:_,strokeWidth:"2",strokeLinecap:"round",strokeDasharray:`${P*D/100} ${P}`,transform:"rotate(-90 7 7)"}))),X=b?r.createElement("div",{ref:x,role:"dialog","aria-label":n("quota.panel.title"),"data-testid":"quota-ring-panel",style:Y?{position:"fixed",left:"50%",top:"75%",transform:"translate(-50%, -50%)",zIndex:1e3,boxSizing:"border-box",width:"min(280px, calc(100vw - 32px))",maxHeight:"min(560px, calc(100dvh - 176px))",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)"}},B),r.createElement("span",{style:{marginLeft:"auto",fontSize:"11px",color:"var(--dsw-alias-label-secondary)"}},F)),r.createElement("div",{style:{marginTop:"10px",display:"flex",flexDirection:"column",gap:"8px"}},(()=>{const e="cliproxy"!==C?.kind||!E&&null!==M?null:Za(O);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=>Ga(e,n,null)))):O.map(e=>Ga(e,n,null))})()),A.length>H.length&&H.length>0?r.createElement("div",{style:{marginTop:"6px",textAlign:"center"}},r.createElement("button",{type:"button","data-testid":"quota-ring-toggle-all",onClick:()=>S(!E),style:{fontSize:"11px",color:"var(--dsw-alias-brand-primary)",background:"transparent",border:"none",cursor:"pointer",padding:"2px 6px",textDecoration:"underline"}},E?n("quota.filter.currentOnly"):n("quota.filter.showAll",{count:A.length}))):null,...null!==J?[r.createElement(Fa,{key:"panel-peak-timeline",showCaption:!1,schedule:J})]:[],...Array.isArray(C.resetCards)&&C.resetCards.length>0?[r.createElement("div",{key:"panel-reset-cards",style:{marginTop:"8px",display:"flex",flexDirection:"column",gap:"4px"}},C.resetCards.map((e,t)=>{const a=Ua(e,n);return r.createElement("div",{key:t,"data-testid":`quota-panel-reset-card-${t}`,style:{display:"flex",flexDirection:"column",gap:"2px",fontSize:"11px",lineHeight:"16px",color:a.expired?"var(--dsw-alias-state-warn-primary)":"var(--dsw-alias-label-tertiary)"}},r.createElement("span",null,a.title),""!==a.expiry?r.createElement("span",null,a.expiry):null)}))]:[],K,G):null;return r.createElement("span",{ref:y,style:{position:"relative",display:"inline-flex"}},Q,Y?Ya(X,document.body):X)}function tr(){const e=Ae(),{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(rr,null),s?null:r.createElement("p",{style:{margin:"6px 0 0",fontSize:"11px",color:"var(--dsw-alias-label-tertiary)"}},e("features.readOnly"))):null)}const ar=[["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 rr(){const e=Ae(),{snapshot:t,value:n}=le(),[s,i]=a(""),l="ready"===t.status&&!0===t.writable,o=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:!l||s===t,onClick:async()=>{i(t);try{await ne.set(t,!1===n[t])}catch(e){}i("")},style:{width:"34px",height:"20px",...T("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:l&&""===s?"pointer":"default",opacity:l?1:.5,lineHeight:0}},r.createElement("span",{style:{position:"absolute",top:"1px",left:!1!==n[t]?"15px":"1px",width:"16px",height:"16px",...T("50%"),background:!1!==n[t]?"#fff":"var(--dsw-alias-label-tertiary)"}})));return r.createElement("div",null,ar.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(o))))}function nr(){const e=Ae(),[n,l]=a(pe()),[o,d]=a(ge()),[c,u]=a(!1),[p,m]=a(null),g=i(null),[,h]=a(0),v=()=>{u(!0),null!==g.current&&g.current(),g.current=t.timer.timeout(()=>{g.current=null,u(!1)},2e3)};s(()=>()=>{null!==g.current&&g.current(),g.current=null},[]),s(()=>{if("function"==typeof t.slots?.subscribe)return t.slots.subscribe("settings.section",()=>h(e=>e+1))},[]),s(()=>{const e=()=>{l(pe()),d(ge())};return be.add(e),()=>be.delete(e)},[]);const b=ke(),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:we(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),l(a),me(a),fe(),ze(a,Array.isArray(o)?o:[])},w=new Set(Array.isArray(o)?o:[]);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:{marginTop:"4px",fontSize:"12px",lineHeight:1.6,color:"var(--dsw-alias-label-secondary)"}},e("config.navOrder.dragHint"))),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:()=>{l(null),d([]),me(null),he(null),fe(),v(),qe()},style:Me("ghost")},e("config.navOrder.reset")),r.createElement("button",{type:"button","data-testid":"nav-order-save",onClick:()=>{const e=y.map(e=>e.id);l(e),me(e),he(o),fe(),v(),ze(e,Array.isArray(o)?o:[])},style:Me("primary")},e("config.navOrder.save")))),r.createElement("div",{style:{padding:"10px 14px",borderRadius:"var(--dsh-svc-radius-control, 8px)",background:"var(--dsh-svc-card-bg)",border:"1px solid var(--dsw-alias-border-l1)",fontSize:"12px",lineHeight:1.6,color:"var(--dsw-alias-label-secondary)"}},e("config.navOrder.dragHint")),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,l=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 "+(l?"var(--dsh-svc-brand)":"var(--dsw-alias-border-l1)"),background:l?"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(o)?o:[],a=new Set(t);a.has(e)?a.delete(e):a.add(e);const r=Array.from(a);d(r),he(r),fe(),ze(Array.isArray(n)?n:null,r)})(t.id)},style:{width:"34px",height:"20px",...T("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",...T("50%"),background:s?"#fff":"var(--dsw-alias-label-tertiary)",transition:"left 120ms ease"}}))))})))}const sr=["inherit","follow","custom"],ir="dsh-service-subagent-route-cache",lr=e=>null!==e&&"object"==typeof e&&"string"==typeof e.provider&&"string"==typeof e.id;function or(){try{const e=JSON.parse(localStorage.getItem(ir)||"null");return null===e||"object"!=typeof e?null:sr.includes(e.mode)&&Array.isArray(e.models)&&e.models.every(lr)?{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 dr(){const e=Ae(),{useState:t,useEffect:a}=r,n=r.useRef(null);null===n.current&&(n.current={cached:or()});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,z]=t(null!==i?i.reasoningEffort:""),[q,C]=t(null!==i?i.fallbacks:[]),[A,M]=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),C(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),z("string"==typeof e.value.reasoningEffort?e.value.reasoningEffort:""),function(e){if(null!==e&&"object"==typeof e&&sr.includes(e.mode)&&Array.isArray(e.models))try{localStorage.setItem(ir,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(lr),...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=[],j={};for(const e of R)void 0===j[e.provider]&&(j[e.provider]=e.providerName,L.push(e.provider));const N=e=>R.filter(t=>t.provider===e),D=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},$=L.includes(p)?p:L[0]??"",W=N($),B=W.some(e=>e.id===g)?g:W[0]?.id??"",_=W.find(e=>e.id===B)??null,P=D(_),V=P.some(e=>e.id===S)?S:"",F=(e,t)=>{C(a=>a.map((a,r)=>r===e?{...a,...t}:a))},U=(e,t)=>{C(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&&q.length<2&&M(!1)},[q.length]);const K=async e=>{y(!0),E("");try{const t=("custom"===e||"follow"===e)&&q.length>0?{fallbacks:q}:{},a="custom"===e?{mode:"custom",provider:$,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),Y={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("p",{style:{...I,marginTop:"2px",marginBottom:0}},e("subagent.dock.desc"))),r.createElement("button",{type:"button",role:"switch","aria-checked":String(s),"data-testid":"subagent-dock-toggle",onClick:()=>{ne.set("subagentModelsDock",!s).catch(()=>{})},style:{width:"34px",height:"20px",...T("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",...T("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"}},sr.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({},Ie(),{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:Y},e("subagent.provider")),r.createElement("select",{"data-testid":"subagent-provider",value:$,disabled:0===L.length||f,onChange:e=>m(e.target.value),style:H},L.map(e=>r.createElement("option",{key:e,value:e},j[e]??e)))),r.createElement("div",{style:{display:"flex",alignItems:"center",gap:"10px",marginTop:"4px"}},r.createElement("span",{style:Y},e("subagent.model")),r.createElement("select",{"data-testid":"subagent-model",value:B,disabled:0===W.length||f,onChange:e=>h(e.target.value),style:H},W.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:Y},e("subagent.reasoningEffort")),r.createElement("select",{"data-testid":"subagent-reasoning-effort",value:V,disabled:f||0===P.length,onChange:e=>z(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===q.length?r.createElement("p",{"data-testid":"subagent-fallback-empty",style:{...I,color:"var(--dsw-alias-label-secondary)"}},e("subagent.fallback.empty")):null,q.map((t,a)=>{const n=L.includes(t.provider),s=n?N(t.provider):[],i=s.find(e=>e.id===t.model)??null,l=D(i),o=l.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=>{C(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===q.length-1,()=>U(a,1),"▼"):null),r.createElement("div",{style:{display:"flex",alignItems:"center",gap:"10px",marginTop:"4px"}},r.createElement("span",{style:Y},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:N(t)[0]?.id??""})},style:H},r.createElement("option",{value:""},""),L.map(e=>r.createElement("option",{key:e,value:e},j[e]??e)))),r.createElement("div",{style:{display:"flex",alignItems:"center",gap:"10px",marginTop:"4px"}},r.createElement("span",{style:Y},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=D(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)))),l.length>0?r.createElement("div",{"data-testid":"subagent-fallback-reasoning-row",style:{display:"flex",alignItems:"center",gap:"10px",marginTop:"4px"}},r.createElement("span",{style:Y},e("subagent.reasoningEffort")),r.createElement("select",{"data-testid":"subagent-fallback-effort-"+a,value:o.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")),...l.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")))}),q.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:()=>{C(e=>{if(e.length>=10)return e;const t=L[0]??"";return[...e,{provider:t,model:N(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")),q.length>1?r.createElement("button",{type:"button","data-testid":"subagent-fallback-sort",disabled:f,onClick:()=>M(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&&(""===$||""===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&&(""===$||""===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 cr="dsh-service-skills-model",ur=(e,t)=>l(e,t);function pr(e){return e.provider+"\0"+e.id}function mr(){try{const e=JSON.parse(localStorage.getItem(cr)||"null");if(e&&"string"==typeof e.provider&&"string"==typeof e.model)return e}catch(e){}return null}const gr=(e,t)=>{let a=function(e,t){const a="object"==typeof t&&null!==t?t:mr();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,mr());return null===a&&void 0!==t&&(a=e.find(e=>e.provider===t.provider&&e.id===t.model)??null),a},hr=(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 vr(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 br(){const e=Ae(),[t,n]=a(null),[i,o]=a(""),[d,c]=a(!0),[u,p]=a(""),[m,g]=a([]),[h,v]=a(null),[b,f]=a(null),[y,x]=a(!1),[k,w]=a([]),[E,S]=a(!1),[z,q]=a(!1),[C,A]=a(!1),[M,I]=a(!1),{batch:H,plan:O,models:R,modelItem:L,error:j}=St(),N=null!==H?H.phase:null;s(()=>{S("running"===N)},[N]);const D=async()=>{c(!0);try{const e=await ur("skills-list",{});e.ok?(n(e.value),o("")):o(e.error||"unknown")}catch(e){o("network")}finally{c(!1)}};s(()=>{D(),Et(),wt().then(bt)},[]),s(()=>{null===H||"done"!==H.phase&&"cancelled"!==H.phase||!ut||(ut=!1,D())},[null!==H&&H.phase]),s(()=>{if(null===b||!b.busy)return;const e=b.entry.id;let t;const a=async()=>{try{const t=await ur("skills-describe-log",{id:e});t.ok&&w(t.value.logs??[])}catch(e){}};return a(),t=setInterval(()=>{a()},800),()=>clearInterval(t)},[null!==b&&b.busy]),s(()=>{if(null===b||b.busy)return;const e=b.entry.id;(async()=>{try{const t=await ur("skills-describe-log",{id:e});t.ok&&w(t.value.logs??[])}catch(e){}})()},[null!==b&&b.busy]);const $=e=>{n(t=>null===t?t:{...t,entries:t.entries.map(t=>t.id===e.id?e:t)})};s(()=>{if(null===h)return;const e=setTimeout(()=>v(null),3e3);return()=>clearTimeout(e)},[h]),s(()=>{if(!C)return;const e=setTimeout(()=>A(!1),3e3);return()=>clearTimeout(e)},[C]),s(()=>{A(!1)},[N,O]);const W=async(e,t)=>{const a=e.id+":"+t;if(h!==a)return void v(a);v(null);const r="model"===t?!0!==e.invocation.model:!0!==e.invocation.user;try{const a=await ur("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:He("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",...T("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",...T("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===b)return null;const a=t??b.entry,{models:n,modelItem:s,draft:i,busy:l,error:o,applied:d}=b,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&&""===o?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?"":pr(s),onChange:e=>f(t=>null===t?t:{...t,modelItem:n.find(t=>pr(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:pr(e),value:pr(e)},e.providerName+" / "+e.name))),null===i?r.createElement("button",{type:"button","data-testid":"skill-describe-run",disabled:l||null===s,onClick:()=>{(async()=>{if(null===b||null===b.modelItem)return;const{entry:e,modelItem:t}=b;f(e=>({...e,busy:!0,error:""}));const a=await ur("skills-describe",{id:e.id,provider:t.provider,model:t.id,lang:te()});if(a.ok){try{localStorage.setItem(cr,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({},Me("neutral"),{fontSize:"12px",minHeight:"28px",padding:"4px 12px",cursor:l?"default":"pointer",opacity:l||null===s?.55:1})},e(l?"skills.describe.running":"skills.describe.run")):null):null,""!==o?r.createElement("p",{"data-testid":"skill-describe-error",style:{...B,color:"var(--dsw-alias-state-error-primary)"}},vr(e,o)):null,F("skill-describe-log",k.map(t=>hr(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:l,onClick:()=>{(async()=>{if(null===b||null===b.draft||null===b.modelItem)return;const{entry:e,draft:t,modelItem:a}=b;f(e=>({...e,busy:!0}));const r=await ur("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:l?"default":"pointer",opacity:l?.55:1}},e("skills.apply.confirm")))},K=u.trim().toLowerCase(),G=null===t?[]:""===K?t.entries:t.entries.filter(e=>e.name.toLowerCase().includes(K)),Y=G.length>0&&G.every(e=>m.includes(e.id)),[J,Q]=a(!1);return s(()=>{null===H||"running"!==H.phase&&"planned"!==H.phase||Q(!0)},[null!==H&&H.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:u,placeholder:e("skills.filter"),onChange:e=>p(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({},Me("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);g(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({},Me("neutral"),{minHeight:"28px",padding:"4px 10px",fontSize:"12px"}),onClick:()=>{D()}},"↻"))),d&&null===t?r.createElement("p",{style:B},"…"):null,""!==i||""!==j?r.createElement("p",{"data-testid":"skills-error",style:{...B,color:"var(--dsw-alias-state-error-primary)"}},vr(e,""!==i?i:j)):null,null!==t&&t.llmAvailable?r.createElement("button",{type:"button","data-testid":"skills-batch-toggle","aria-expanded":String(J),onClick:()=>Q(e=>!e),style:{margin:"0 0 12px",fontSize:"12px",padding:"6px 14px",borderRadius:"var(--dsh-svc-radius-control)",border:"1px solid "+(J?"var(--dsw-alias-label-dimmed)":"var(--dsh-svc-border-strong)"),background:"transparent",color:"var(--dsw-alias-label-primary)",cursor:"pointer"}},(J?"▾ ":"▸ ")+e("skills.batch.toggle")):null,J&&null!==t&&t.llmAvailable?(()=>{const t=null!==H&&"planned"===H.phase&&null===O?"idle":null!==H?H.phase:"idle",a=t,n=null!==H&&H.total>0?Math.round(H.done/H.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:()=>Q(!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!==R&&R.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===L?"":pr(L),disabled:y||null!==H&&"running"===H.phase,onChange:e=>(e=>{const t=(ot??[]).find(t=>pr(t)===e)??null;if(dt=t,null!==t)try{localStorage.setItem(cr,JSON.stringify({provider:t.provider,model:t.id}))}catch(e){}bt()})(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%"}},R.map(e=>r.createElement("option",{key:pr(e),value:pr(e)},e.providerName+" / "+e.name)))):null,"idle"===t||"done"===t||"cancelled"===t?r.createElement("button",{type:"button","data-testid":"skills-batch-plan",disabled:y,onClick:()=>{(async()=>{x(!0);try{await(async()=>{if(ct="",bt(),0===(await wt()).length||null===dt)return ct="models-empty",bt(),!1;try{localStorage.setItem(cr,JSON.stringify({provider:dt.provider,model:dt.id}))}catch(e){}const e=await l("skills-batch-plan",{provider:dt.provider,model:dt.id});if(!e.ok)return ct=e.error||"unknown",bt(),!1;lt={...e.value,modelItem:dt};const t=Array.isArray(e.value.annotated)?e.value.annotated.length:0;return it={phase:"planned",total:e.value.candidates.length+t,done:0,failures:[],current:null,estBytes:e.value.estBytes,logs:[]},yt("planned"),kt(),bt(),!0})()}finally{x(!1)}})()},style:Object.assign({},Me("neutral"),{cursor:y?"default":"pointer",opacity:y?.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:y||0===O.candidates.length&&0===s,onClick:()=>{(async()=>{const e=Array.isArray(O?.annotated)?O.annotated.length:0;if(e>0&&!C)A(!0);else{A(!1),x(!0);try{await(async(e=!1)=>{if(null===lt||null===it)return!1;const t=await l("skills-batch-run",{planId:lt.planId,lang:te(),...!0===e?{forceAnnotated:!0}:{}});return t.ok?(it={...it,phase:"running"},yt("running"),kt(),bt(),!0):(ct=t.error||"unknown",bt(),!1)})(e>0)}finally{x(!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:y?"default":"pointer",opacity:y?.55:1}},C&&s>0?e("skills.batch.forceConfirm",{count:s}):e("skills.batch.start")):null,null!==H&&"running"===H.phase?r.createElement("button",{type:"button","data-testid":"skills-batch-cancel",onClick:()=>{(async()=>{await(async()=>{try{await l("skills-batch-cancel",{}),ft(!1)}catch(e){}})()})()},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!==H?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}},(z?"▾ ":"▸ ")+e("skills.skippedList")+"("+O.skipped.length+")"),z?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:()=>I(e=>!e),style:{border:0,background:"transparent",color:"var(--dsw-alias-label-tertiary)",cursor:"pointer",fontSize:"11.5px",padding:0}},(M?"▾ ":"▸ ")+e("skills.batch.annotatedList")+"("+t.length+")"),M?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!==H&&H.total>0&&"idle"!==t?(()=>{const t=Array.isArray(H.failures)&&H.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:H.failures.length})+":"+H.failures.map(e=>e.name+"("+e.reason+")").join("、")):null,a=Array.isArray(H.logs)?H.logs:[],s=0===a.length?null:r.createElement("div",null,r.createElement("button",{type:"button","data-testid":"skills-batch-log-toggle",onClick:()=>S(e=>!e),style:{marginTop:"7px",border:0,background:"transparent",color:"var(--dsw-alias-label-tertiary)",cursor:"pointer",fontSize:"11.5px",padding:0}},(E?"▾ ":"▸ ")+e("skills.log.title")+"("+a.length+")"),E?F("skills-batch-log",a.slice(-30).map(t=>hr(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:H.done,total:H.total})+(null!==H.current?" · "+e("skills.batch.current",{name:H.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=m.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 ur("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(h===t){v(null);try{const t=await ur("skills-fix-keys",{id:e.id});t.ok?$(t.value.entry):o(t.error+(t.detail?":"+t.detail:"")||"unknown")}catch(e){o("network")}}else v(t)})(a)},title:h===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:h===a.id+":fix"?"rgba(198,128,0,0.14)":"transparent",color:"var(--dsw-alias-state-warn-primary)",cursor:"pointer"}},h===a.id+":fix"?e("skills.switch.confirm"):e("skills.fix.legacy")):null):null,p=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:h===a.id+":model",title:h===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:h===a.id+":user",title:h===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=mr();f({entry:e,models:null,modelItem:null,draft:null,busy:!1,error:"",applied:!1,preferred:t}),w([]);const a=await ur("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:gr(r,a.value.current)}))})(a)},style:Object.assign({},Ie(),{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,g(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),p),c):null;return r.createElement("div",{key:a.id,"data-testid":"skill-entry-"+a.name,style:V},b,u,y)})(a);return null!==b&&b.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 fr(){return r.createElement(Tr,null)}function yr(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 xr(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 kr(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 wr={all:void 0,archived:void 0,deleted:void 0},Er=new Map,Sr=[Symbol.for("react.memo"),Symbol.for("react.forward_ref"),Symbol.for("react.lazy")],zr=e=>"function"==typeof e||null!==e&&"object"==typeof e&&"symbol"==typeof e.$$typeof&&Sr.includes(e.$$typeof);let qr=null;const Cr=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(zr(a))qr=a;else if(null!==a&&"object"==typeof a)if(a="function"==typeof a.default?a.default:"function"==typeof a.MarkdownText?a.MarkdownText:null,zr(a))qr=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 Ar(){const e=Ae(),{useState:a,useEffect:n,useRef:s}=r,[i,o]=st.useEnabled(),d=wr.archived,[c,u]=a(void 0!==d?d:null),[p,m]=a(void 0===d),[g,h]=a(""),[v,b]=a(Object.fromEntries(Er)),f=s(new Set),[y,x]=a("archived"),[k,w]=a(!1),[E,S]=a("createdDesc"),[z,q]=a([]),[C,A]=a(!1),[M,I]=a([]),[H,O]=a(""),[R,L]=a(!1),[j,N]=a(!1),[D,$]=a(null),[W,B]=a(null),[_,P]=a(!1),[V,F]=a(""),[U,K]=a({}),G=s(null),Y=()=>y+"\0"+E+"\0"+H+"\0"+(R?1:0),[J,Q]=a(""),[X,Z]=a(""),[ee,te]=a(""),[ae,re]=a(""),[ne,se]=a(""),[ie,le]=a(null),[oe,de]=a(!1),[ce,ue]=a(""),[pe,me]=a(0),[ge,he]=a(null),[ve,be]=a(!1),[fe,ye]=a(""),[xe,ke]=a(""),[we,Ee]=a(""),[Se,ze]=a(""),qe={color:"var(--dsw-alias-label-secondary)",fontSize:"12px",marginTop:"8px",lineHeight:1.5},Ce=Ie(),Te=Object.assign({},Ce,{background:"transparent",borderColor:"var(--dsw-alias-state-error-primary)",color:"var(--dsw-alias-state-error-primary)"}),Oe=Object.assign({},Ce,{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 je=async(t,a={})=>{const r=void 0!==t?t:Re(y),n=wr[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?(wr[r]=t.value,Re(Le.current)===r&&(u(t.value),h(""))):s&&a.silent||h(kr(e,t.error||"unknown"))}catch(t){s&&a.silent||h(e("sessions.error.network"))}finally{s&&a.silent||m(!1)}};n(()=>{je("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]&&Er.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()){N(!0);try{const t=await l("sessions-search",{query:e.trim(),scope:R?"archived":"all"});t.ok?$(t.value):$({available:!0,query:e,scope:"all",hits:[],error:t.error})}catch(t){$({available:!0,query:e,scope:R?"archived":"all",hits:[],error:"network"})}finally{N(!1)}}else $(null)})(H)},300);$(null)}},[H,R,y]);const Ne=(e,t,a,r,n)=>{A(!1),I([]),re(""),se(""),he(null),ye("");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);$e(e,Number.isSafeInteger(t)?t:0)}else De(e,void 0,t||"events")},De=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(kr(e,n.error||"unknown"))}catch(t){F(e("sessions.error.network"))}finally{P(!1)}},$e=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(kr(e,r.error||"unknown"))}catch(t){F(e("sessions.error.network"))}finally{P(!1)}},We=async t=>{try{const a=await l("sessions-export",{id:t});if(!a.ok)return{ok:!1,error:kr(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=>{Q(e),Z("");const t=await We(e);return t.ok||Z(t.error),Q(""),t},_e=async t=>{try{const a=await l("sessions-archive",{id:t});return a.ok?((e=>{const t=wr.all;void 0!==t&&Array.isArray(t.items)&&(wr.all={...t,items:t.items.map(t=>t.id===e?{...t,archived:!0}:t)});const a=wr.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);wr.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:kr(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=wr.all;void 0!==t&&Array.isArray(t.items)&&(wr.all={...t,items:t.items.map(t=>t.id===e?{...t,archived:!1}:t)});const a=wr.archived;void 0!==a&&Array.isArray(a.items)&&(wr.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:kr(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=wr[e];void 0!==a&&Array.isArray(a.items)&&(wr[e]={...a,items:a.items.filter(e=>e.id!==t)})}const n=wr.deleted;void 0!==n&&(wr.deleted={...n,deleted:[r,...(Array.isArray(n.deleted)?n.deleted:[]).filter(e=>e.id!==t)]}),Er.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(()=>{pe>0&&B(null)},[pe]),n(()=>{if(null!==W)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){}},[W]);const Fe=null!==W&&"search"===W.view?W.centerSeq:null,Ue=null!==W&&"search"===W.view&&Array.isArray(W.items)?W.items.length:0;n(()=>{if(null!==Fe&&"number"==typeof Fe)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()=>{}}(Fe)},[Fe,Ue]);const Ke=(()=>{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})(),Ge=""!==H.trim()?[]:"deleted"===y?Ke.map(e=>e.id):Ke.filter(e=>!0!==e._deleted).map(e=>e.id),Ye=new Set(M),Je=Ke.filter(e=>Ye.has(e.id)),Qe=Je.filter(e=>!0!==e._deleted),Xe=Je.filter(e=>!0!==e._deleted&&!0!==e.live&&!0!==e.archived),Ze=Je.filter(e=>!0!==e._deleted&&!0===e.archived),et=Je.filter(e=>!0!==e._deleted&&!0!==e.live&&!0===e.archived),tt=Je.filter(e=>!0===e._deleted),at=Ge.length>0&&Ge.every(e=>Ye.has(e));n(()=>{if(!C)return;const e=new Set(Ge);I(t=>{const a=t.filter(t=>e.has(t));return a.length===t.length?t:a})},[c,y,C,k]);const rt=()=>{A(!1),I([]),re(""),se("")},nt=e=>{I(t=>t.includes(e)?t.filter(t=>t!==e):[...t,e])},it="deleted"===y?[]:Ke.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,d=Ye.has(n),u=(()=>{const e=v[n];return"number"==typeof e&&e>0?yr(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?xr(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:Te,onClick:()=>{(e=>{null!==ge||ve||(ye(""),he({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:Ce,onClick:e=>Ne(n,"events",null,e)},e("sessions.action.view"))),m.push(r.createElement("button",{key:"export",type:"button","data-testid":"sessions-row-export-"+n,style:Ce,disabled:J===n,onClick:()=>{Be(n)}},e(J===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:Ce,disabled:xe===n,onClick:()=>{(async e=>{ke(e),ze("");const t=await _e(e);t.ok||ze(t.error),ke("")})(n)}},e(xe===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:Ce,disabled:we===n,onClick:()=>{(async e=>{Ee(e),ze("");const t=await Pe(e);t.ok||ze(t.error),Ee("")})(n)}},e(we===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:Te,onClick:()=>{(async t=>{if(null===ie&&!oe){ue("");try{const a=await l("sessions-delete-plan",{id:t});a.ok?le(a.value):ue(kr(e,a.error||"unknown"))}catch(t){ue(e("sessions.error.network"))}}})(n)}},e("sessions.action.delete")))),r.createElement("div",{key:n,"data-testid":"sessions-row-"+n,"data-selected":C&&d?"true":void 0,onClick:C?()=>nt(n):void 0,style:{display:"flex",alignItems:"center",justifyContent:"space-between",gap:"10px",padding:C?"9px 2px 9px 8px":"9px 2px",borderBottom:"1px solid var(--dsh-svc-border)",background:"transparent",borderRadius:"4px",boxShadow:C&&d?"inset 3px 0 0 var(--dsw-alias-brand-primary)":"none",cursor:C?"pointer":"default"}},r.createElement("div",{style:{display:"flex",alignItems:"center",gap:"9px",minWidth:0,flex:"1 1 auto"}},C?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:()=>nt(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:He("success")},e("sessions.row.live")):null,o?r.createElement("span",{"data-testid":"sessions-tag-archived-"+n,style:He("warning")},e("sessions.row.archived")):null,a?r.createElement("span",{style:He("danger")},e("sessions.row.deleted")):null,a||!0!==t.subagent?null:r.createElement("span",{"data-testid":"sessions-tag-subagent-"+n,style:He("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(" · ")))),C?null:r.createElement("div",{style:{display:"flex",alignItems:"center",gap:"6px",flexShrink:0,flexWrap:"wrap",justifyContent:"flex-end"}},...m))},ot=(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!==qr?r.createElement(qr,{text:t.text,labels:Cr(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,xr(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("p",{style:qe},e("sessions.hint")),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("span",{style:qe},e("sessions.navToggleHint"))),r.createElement("button",{type:"button",role:"switch","data-testid":"sessions-nav-switch","aria-checked":String(i),onClick:()=>o(!i),style:{width:"34px",height:"20px",...T("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",...T("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:{...Ce,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([]),re(""),se(""),O(""),$(null),B(null),he(null),ye(""),je(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({},Me("neutral"),{minHeight:"28px",padding:"4px 10px",fontSize:"12px"}),onClick:()=>{je(void 0,{force:!0})}},e("sessions.refresh")),null===W&&""===H.trim()?r.createElement("button",{type:"button","data-testid":"sessions-batch-toggle","data-variant":C?"primary":"neutral",style:Object.assign({},Me(C?"primary":"neutral"),{minHeight:"28px",padding:"4px 10px",fontSize:"12px"}),onClick:C?rt:()=>{A(!0),I([]),re(""),se("")}},e(C?"sessions.batch.exit":"sessions.batch.enter")):null),null===W&&C?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:Ce,disabled:0===Ge.length||""!==ee||oe||ve,onClick:()=>{I(at?[]:Ge.slice())}},e(at?"sessions.batch.clearAll":"sessions.batch.selectAll")),"deleted"!==y&&it.length>0?r.createElement("button",{type:"button","data-testid":"sessions-batch-select-subagents",style:Ce,disabled:""!==ee||oe||ve,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:M.length})),"deleted"===y?r.createElement("button",{type:"button","data-testid":"sessions-batch-clear",style:Te,disabled:0===tt.length||""!==ee||oe||ve,onClick:()=>{null!==ge||ve||0===tt.length||(ye(""),he({batch:!0,items:tt.map(e=>({id:e.id,title:e.title}))}))}},e("sessions.batch.clear",{count:tt.length})):[r.createElement("button",{key:"export",type:"button","data-testid":"sessions-batch-export",style:Ce,disabled:0===Qe.length||""!==ee||oe||ve,onClick:()=>{(async()=>{if(""!==ee||0===Qe.length)return;te("export"),re(""),se("");let t=0,a="";for(const e of Qe){const r=await We(e.id);r.ok?t+=1:""===a&&(a=r.error)}""===a?re(e("sessions.batch.completed",{action:e("sessions.action.export"),count:t})):se(e("sessions.batch.failed",{action:e("sessions.action.export"),done:t,total:Qe.length,error:a})),te("")})()}},"export"===ee?e("sessions.status.working"):e("sessions.batch.export",{count:Qe.length})),r.createElement("button",{key:"archive",type:"button","data-testid":"sessions-batch-archive",style:Ce,disabled:0===Xe.length||""!==ee||oe||ve,onClick:()=>{(async()=>{if(""!==ee||0===Xe.length)return;te("archive"),re(""),se("");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?re(e("sessions.batch.completed",{action:e("sessions.action.archive"),count:t})):se(e("sessions.batch.failed",{action:e("sessions.action.archive"),done:t,total:r.length,error:a})),te("")})()}},"archive"===ee?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:Ce,disabled:0===Ze.length||""!==ee||oe||ve,onClick:()=>{(async()=>{if(""!==ee||0===Ze.length)return;te("unarchive"),re(""),se("");let t=0,a="";const r=Ze.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?re(e("sessions.batch.completed",{action:e("sessions.action.unarchive"),count:t})):se(e("sessions.batch.failed",{action:e("sessions.action.unarchive"),done:t,total:r.length,error:a})),te("")})()}},"unarchive"===ee?e("sessions.status.working"):e("sessions.batch.unarchive",{count:Ze.length})):null,r.createElement("button",{key:"delete",type:"button","data-testid":"sessions-batch-delete",style:Te,disabled:0===et.length||""!==ee||oe||ve,onClick:()=>{(async()=>{if(""!==ee||null!==ie||0===et.length)return;te("delete-plan"),re(""),se("");const t=[];let a="";for(const r of et)try{const n=await l("sessions-delete-plan",{id:r.id});n.ok?t.push(n.value):""===a&&(a=kr(e,n.error||"unknown"))}catch(t){""===a&&(a=e("sessions.error.network"))}te(""),""===a&&t.length===et.length?le({batch:!0,plans:t,sessions:t.map(e=>e.session),consequences:["deletes-session-log"]}):se(e("sessions.batch.failed",{action:e("sessions.action.delete"),done:t.length,total:et.length,error:a||e("sessions.error.network")}))})()}},"delete-plan"===ee?e("sessions.status.working"):e("sessions.batch.delete",{count:et.length}))]):null,null===W&&"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=>{C&&rt(),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,""!==Se?r.createElement("p",{style:{...qe,color:"var(--dsw-alias-state-error-primary)"}},Se+(!1!==c?.canUnarchive?"":" · "+e("sessions.oneWayHint"))):null,""!==X?r.createElement("p",{style:{...qe,color:"var(--dsw-alias-state-error-primary)"}},X):null,""!==ae?r.createElement("p",{"data-testid":"sessions-batch-result",style:{...qe,color:"var(--dsw-alias-state-success-primary)"}},ae):null,""!==ne?r.createElement("p",{"data-testid":"sessions-batch-error",style:{...qe,color:"var(--dsw-alias-state-error-primary)"}},ne):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:{...qe,color:"var(--dsh-svc-warning)"}},e("sessions.subagent.hostLegacy")):null})(),(()=>{if(null===W)return null;const a=null!==c&&Array.isArray(c.items)?c.items.find(e=>e.id===W.sessionId):void 0,n=""!==H&&"search"===W.view&&null!==D?D.hits.find(e=>e.sessionId===W.sessionId)?.title||"":void 0!==a&&""!==a.title?a.title:"",s=null!==c&&Array.isArray(c.items)?c.items.find(e=>e.id===W.sessionId):void 0,i="search"===W.view&&Array.isArray(W.hitItems)?W.hitItems.map(e=>Number(e.seq)).filter(e=>Number.isSafeInteger(e)):[],l="search"===W.view&&"number"==typeof W.centerSeq?i.indexOf(W.centerSeq):-1,o=l>0?i[l-1]:void 0,d=l>=0&&l<i.length-1?i[l+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")),ot(t)):ot(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],l=Array.isArray(t)?t.slice(s.firstIndex,s.lastIndex+1):[],o=U[s.firstSeq],d=null!==a&&l.some(e=>a.has(Number(e.seq))),c=void 0===o?d:!0===o;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:{...Ce,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&&l.length>0?r.createElement("div",{style:{marginTop:"6px"}},l.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:Ce,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:Ce,onClick:()=>{try{(t.get?.("uiWorkspace")?.openSession??t.sessions?.open)?.(W.sessionId)}catch(e){}}},e("sessions.detail.open")),r.createElement("button",{type:"button","data-testid":"sessions-detail-export",style:Ce,disabled:J===W.sessionId,onClick:()=>{Be(W.sessionId)}},J===W.sessionId?e("sessions.detail.exporting"):e("sessions.detail.exportAll"))),"search"===W.view&&null!==W.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:Ce,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(W.hitItems)?W.hitItems.length:0})),r.createElement("button",{type:"button","data-testid":"sessions-jump-prev",style:Ce,disabled:void 0===o||_,onClick:()=>{void 0!==o&&$e(W.sessionId,o)}},e("sessions.hit.prev")),r.createElement("button",{type:"button","data-testid":"sessions-jump-next",style:Ce,disabled:void 0===d||_,onClick:()=>{void 0!==d&&$e(W.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:{...Ce,padding:"1px 8px",fontSize:"11px",...T("999px"),background:e===W.centerSeq?"var(--dsh-svc-tab-active-bg)":"transparent",color:e===W.centerSeq?"var(--dsh-svc-tab-active-text)":"var(--dsw-alias-label-secondary)"},onClick:()=>{$e(W.sessionId,e)}},"#"+e))),_&&0===W.items.length?r.createElement("p",{style:qe},e("sessions.status.loading")):null,m(W.items,u),void 0!==W.cursor&&W.items.length>0?r.createElement("button",{type:"button","data-testid":"sessions-detail-more",style:Ce,disabled:_,onClick:()=>{De(W.sessionId,W.cursor,W.view)}},e("sessions.detail.loadMore",{remaining:Math.max(0,W.total-W.items.length)})):null,void 0===W.cursor&&W.items.length>0?r.createElement("p",{style:qe},e("sessions.detail.noMore",{total:W.total})):null):null,""!==V?r.createElement("p",{style:{...qe,color:"var(--dsw-alias-state-error-primary)"}},V):null,"search"!==W.view?m(W.items,null):null,"search"!==W.view&&void 0!==W.cursor?r.createElement("button",{type:"button","data-testid":"sessions-detail-more",style:Ce,disabled:_,onClick:()=>{De(W.sessionId,W.cursor,W.view)}},e("sessions.detail.loadMore",{remaining:Math.max(0,W.total-W.items.length)})):null,"search"!==W.view&&void 0===W.cursor&&W.items.length>0?r.createElement("p",{style:qe},e("sessions.detail.noMore",{total:W.total})):null)})()??(()=>{if(p)return r.createElement("p",{style:qe},e("sessions.status.loading"));if(""!==g)return r.createElement("p",{"data-testid":"sessions-error",style:{...qe,color:"var(--dsw-alias-state-error-primary)"}},g);if(""!==H.trim()&&"deleted"!==y)return null===D?r.createElement("p",{style:qe},e(j?"sessions.status.loading":"sessions.search.placeholder")):D.error?r.createElement("p",{style:{...qe,color:"var(--dsw-alias-state-error-primary)"}},kr(e,D.error)):0===D.hits.length?r.createElement("p",{style:qe},e("sessions.empty.search",{query:H})):D.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:{...Ce,border:0,padding:0,textAlign:"left",display:"inline",maxWidth:"100%"},onClick:e=>Ne(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:{...Ce,padding:"1px 8px",fontSize:"11px",...T("999px"),color:"var(--dsw-alias-label-tertiary)"},onClick:a=>Ne(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 l=[];let o,d=0,c=0;for(;null!==(o=i.exec(n));)o.index>d&&l.push(n.slice(d,o.index)),l.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"}},o[0])),d=o.index+o[0].length,c+=1;return 0===l.length?n:(d<n.length&&l.push(n.slice(d)),l)}(e.snippet,D.query||H,"sessions-hit-highlight-"+t.sessionId)))));if(0===Ke.length){const t="archived"===y?"sessions.empty.archived":"deleted"===y?"sessions.empty.deleted":"sessions.empty.all";return r.createElement("p",{style:qe},e(t))}if("project"!==E||"deleted"===y)return Ke.map(lt);const t=[];for(const e of Ke){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=!z.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,q(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===ie)return null;const t=!0===ie.batch&&Array.isArray(ie.sessions)?ie.sessions:null,a=null===t&&ie.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:yr(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:yr(a.bytes)})),ie.consequences&&ie.consequences.includes("hides-from-official-sidebar")?r.createElement("li",null,e("sessions.delete.consequence.sidebar")):null):null,""!==ce?r.createElement("p",{style:{...qe,color:"var(--dsw-alias-state-error-primary)"}},ce):null,r.createElement("div",{style:{display:"flex",justifyContent:"flex-end",gap:"8px"}},r.createElement("button",{type:"button","data-testid":"sessions-delete-cancel",style:Ce,disabled:oe,onClick:()=>{le(null),ue("")}},e("sessions.delete.cancel")),r.createElement("button",{type:"button","data-testid":"sessions-delete-confirm",style:Oe,disabled:oe,onClick:()=>{(async()=>{if(null===ie||oe)return;de(!0),ue("");const t=!0===ie.batch&&Array.isArray(ie.plans)?ie.plans:[ie];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=kr(e,t.error||"unknown"))}catch(t){""===r&&(r=e("sessions.error.network"))}!0===ie.batch?(le(null),me(e=>e+1),""===r?(re(e("sessions.batch.completed",{action:e("sessions.action.delete"),count:a})),se("")):(re(""),se(e("sessions.batch.failed",{action:e("sessions.action.delete"),done:a,total:t.length,error:r})))):""===r?(le(null),me(e=>e+1)):ue(r),de(!1)})()}},e(oe?"sessions.status.working":"sessions.delete.confirm")))))})(),(()=>{if(null===ge)return null;const t=!0===ge.batch,a=Array.isArray(ge.items)?ge.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")),""!==fe?r.createElement("p",{style:{...qe,color:"var(--dsw-alias-state-error-primary)"}},fe):null,r.createElement("div",{style:{display:"flex",justifyContent:"flex-end",gap:"8px"}},r.createElement("button",{type:"button","data-testid":"sessions-clear-cancel",style:Ce,disabled:ve,onClick:()=>{he(null),ye("")}},e("sessions.clear.cancel")),r.createElement("button",{type:"button","data-testid":"sessions-clear-confirm",style:Oe,disabled:ve,onClick:()=>{(async()=>{if(null===ge||ve)return;be(!0),ye("");const t=(Array.isArray(ge.items)?ge.items:[]).map(e=>e.id),a=!0===ge.batch;try{const r=await l("sessions-clear-deleted",{ids:t});if(r.ok)(e=>{const t=new Set(e),a=wr.deleted;void 0!==a&&Array.isArray(a.deleted)&&(wr.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),he(null),a&&(re(e("sessions.batch.completed",{action:e("sessions.action.clear"),count:t.length})),se(""));else{const n=kr(e,r.error||"unknown");a?se(e("sessions.batch.failed",{action:e("sessions.action.clear"),done:0,total:t.length,error:n})):ye(n)}}catch(r){const n=e("sessions.error.network");a?se(e("sessions.batch.failed",{action:e("sessions.action.clear"),done:0,total:t.length,error:n})):ye(n)}finally{be(!1)}})()}},e(ve?"sessions.status.working":"sessions.clear.confirm")))))})())}function Tr(){const e=Ae(),{value:n}=le(),[o,d]=nt.useEnabled(),c={color:"var(--dsw-alias-label-secondary)",fontSize:"12px",marginTop:"8px",lineHeight:1.5},[u,g]=a(m.getSnapshot());s(()=>m.subscribe(()=>g(m.getSnapshot())),[]),s(()=>(Ra({all:!0}),()=>La({all:!0})),[]),s(()=>{ka.ensureSynced();const e=()=>{B(ha()),P(va())};return ya.add(e),()=>ya.delete(e)},[]);const[v,b]=a(ua()),[f,y]=a(""),x=u.providers||[],[k,w]=a(null),[E,S]=a(null),[z,q]=a({expiresAt:"",label:""}),[C,A]=a(null),[M,I]=a({name:"",value:""}),[H,O]=a(!1);s(()=>{if(!H)return;const e=setTimeout(()=>O(!1),3e3);return()=>clearTimeout(e)},[H]);const R=()=>{A(null),I({name:"",value:""}),O(!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})},j=async()=>{if(null!==k){y("");try{const t={provider:k.provider};""!==z.expiresAt&&(t.expiresAt=z.expiresAt),""!==z.label&&(t.label=z.label);const a=await l("quota-reset-card",t);if(!0!==a?.ok)return void y(e("quota.saveFailed",{error:String(a?.error??"")}));q({expiresAt:"",label:""}),await qa({scope:"all"})}catch(t){const a=t instanceof Error&&"string"==typeof t.message&&""!==t.message.trim()?t.message.trim():"network";y(e("quota.saveFailed",{error:a}))}}},N=async t=>{y("");try{const a=await l("quota-refresh",{provider:t});if(!0!==a?.ok)return void y("unknown-provider"===a?.error?e("quota.unknownProvider"):"not-adapted"===a?.error?e("quota.unadapted"):e("quota.saveFailed",{error:String(a?.error??"")}));await qa({scope:"all"})}catch(t){y(e("quota.saveFailed",{error:"network"}))}},D=async t=>{y("");try{const a=await l("quota-config",t);if(!0!==a?.ok)return void y("unknown-provider"===a?.error?e("quota.unknownProvider"):e("quota.saveFailed",{error:String(a?.error??"")}));await qa({scope:"all"})}catch(t){y(e("quota.saveFailed",{error:"network"}))}},$=(e,t)=>D({provider:e,kind:t}),[W,B]=a(ha()),[_,P]=a(va()),[V,F]=a(!1),[U,K]=a(!1),[G,Y]=a(null),J=i(null);s(()=>()=>{null!==J.current&&J.current(),J.current=null},[]);const Q=wa(x.filter(e=>!0===e.adapted),W),X=new Set(_),Z=Q.filter(e=>!X.has(e.provider)),ee=x.filter(e=>!0!==e.adapted),te={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)"},ae=()=>{K(!0),null!==J.current&&J.current(),J.current=t.timer.timeout(()=>{J.current=null,K(!1)},2e3)},re=(e,t)=>{B(e),P(t),ba(e),fa(t),xa(),ka.persist(e,t)},ne=wa(Q,W).map(e=>({id:e.provider,label:e.displayName||e.provider})),se=(e,t)=>{const a=ne.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]),re(a,_))},[ie,oe]=a(""),[de,ce]=a("");return r.createElement("div",{"data-testid":"remote-quota-card",style:{marginTop:"18px"}},r.createElement("div",{style:{fontSize:"14px",fontWeight:700,margin:"0 0 8px",color:"var(--dsw-alias-label-primary)"}},e("quota.cardTitle")),r.createElement("div",{style:{display:"flex",alignItems:"center",gap:"8px",marginBottom:"8px"}},r.createElement("label",{htmlFor:"dsh-service-quota-poll-select",style:{fontSize:"12px",color:"var(--dsw-alias-label-secondary)"}},e("quota.poll")),r.createElement("select",{id:"dsh-service-quota-poll-select","data-testid":"quota-poll-select",value:String(v),onChange:e=>{const t=Number.parseInt(e.target.value,10);da.includes(t)&&(b(t),function(e){try{localStorage.setItem(oa,String(e))}catch(e){}}(t),null!==Ma.nextDispose&&(Ma.nextDispose(),Ma.nextDispose=null),Ha())},style:{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)"}},[{value:0,label:e("quota.poll.manual")}].concat(da.filter(e=>e>0).map(t=>({value:t,label:e("quota.poll.minute",{count:t})}))).map(e=>r.createElement("option",{key:e.value,value:String(e.value)},e.label)))),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)"}},e("quota.navToggle")),r.createElement("span",{style:c},e("quota.navToggleHint"))),r.createElement("button",{type:"button",role:"switch","data-testid":"quota-nav-switch","aria-checked":String(o),onClick:()=>d(!o),style:{width:"34px",height:"20px",...T("10px"),padding:0,flexShrink:0,position:"relative",border:"1px solid "+(o?"var(--dsw-alias-state-success-primary)":"var(--dsw-alias-border-l2)"),background:o?"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:o?"15px":"1px",width:"16px",height:"16px",...T("50%"),background:o?"#fff":"var(--dsw-alias-label-tertiary)"}}))),""!==f?r.createElement("p",{"data-testid":"quota-config-error",style:Object.assign({},c,{color:"var(--dsw-alias-state-error-primary)"})},f):null,...Q.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(V),title:e("quota.reorder"),onClick:()=>F(!V),style:{fontSize:"12px",lineHeight:"20px",padding:"2px 12px",...T(999),border:"1px solid "+(V?"var(--dsw-alias-brand-primary)":"var(--dsh-svc-border-strong)"),background:"transparent",color:V?"var(--dsw-alias-brand-primary)":"var(--dsw-alias-label-primary)",cursor:"pointer"}},e("quota.reorder")))]:[],V&&Q.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"}},U?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:()=>{B([]),P([]),ba(null),fa(null),xa(),ka.persistReset(),ae()},style:Me("ghost")},e("config.navOrder.reset")),r.createElement("button",{type:"button","data-testid":"quota-card-order-save",onClick:()=>{re(ne.map(e=>e.id),_),ae()},style:Me("primary")},e("config.navOrder.save")))),r.createElement("div",{"data-testid":"quota-card-order-list",style:{display:"flex",flexDirection:"column",gap:"8px"}},ne.map((t,a)=>{const n=!X.has(t.id),s=G===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){}Y(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=ne.map(e=>e.id),[r]=e.splice(t,1);e.splice(a,0,r),re(e,_)}Y(null)},onDragEnd:()=>Y(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(),se(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===ne.length-1,onClick:e=>{e.stopPropagation(),se(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===ne.length-1?"var(--dsw-alias-label-tertiary)":"var(--dsw-alias-label-primary)",cursor:a===ne.length-1?"default":"pointer",opacity:a===ne.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(_);t.has(e)?t.delete(e):t.add(e),re(ne.map(e=>e.id),Array.from(t))})(t.id)},style:{width:"34px",height:"20px",...T("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",...T("50%"),background:n?"#fff":"var(--dsw-alias-label-tertiary)",transition:"left 120ms ease"}}))))}))):null,0===Q.length?r.createElement("p",{style:c},e("quota.noAdapted")):0===Z.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"}},Z.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=h(e,{forComposer:!0});if(null===s)return null;const i=1!==s.spec.c,l=p(s.spec,i),o={display:"inline-block",width:`${t}px`,height:`${t}px`,flexShrink:0,...a},d=`${l} center / contain no-repeat`;return i?(o.backgroundColor="currentColor",o.WebkitMask=d,o.mask=d):(o.backgroundImage=l,o.backgroundPosition="center",o.backgroundSize="contain",o.backgroundRepeat="no-repeat"),r.createElement("span",{..."string"==typeof n&&""!==n?{"data-testid":n}:{},"data-dshsvc-model-icon":s.slug,"aria-hidden":!0,style:o})})(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:He("neutral",{marginLeft:"6px",verticalAlign:"middle"})},e("quota.kindAuto")):null),i=Array.isArray(t.windows)?t.windows:[],o=E===t.provider,d=i.map(a=>Ga(a,e,t.provider));let c;if(!0===t.refreshing&&0===i.length)c=r.createElement("span",{style:{fontSize:"12px",color:"var(--dsw-alias-label-tertiary)"}},e("quota.refreshing"));else if(void 0!==t.errorCode&&0===i.length)c=r.createElement("span",{"data-testid":`quota-error-${t.provider}`,style:{fontSize:"12px",color:"var(--dsw-alias-state-error-primary)"}},Ka(t,e));else if(i.length>0){const a="cliproxy"===t.kind?Za(i):null;c=a&&a.length>0?r.createElement("div",{"data-testid":`quota-card-families-${t.provider}`,style:{display:"flex",flexDirection:"column",gap:"10px"}},a.map((a,n)=>r.createElement("div",{key:`family-${a.family}`,"data-testid":`quota-card-family-${t.provider}-${a.family}`,style:{display:"flex",flexDirection:"column",gap:"10px",marginTop:0===n?"0":"4px",paddingTop:0===n?"0":"10px",borderTop:0===n?"none":"1px solid var(--dsw-alias-border-l1)"}},r.createElement("div",{"data-testid":`quota-card-family-title-${t.provider}-${a.family}`,style:{fontSize:"12px",fontWeight:600,color:"var(--dsw-alias-label-primary)"}},e("quota.family."+a.family)),r.createElement("div",{style:{display:"flex",flexDirection:"column",gap:"14px"}},a.windows.map(a=>Ga(a,e,t.provider)))))):r.createElement("div",{style:{display:"flex",flexDirection:"column",gap:"14px"}},d)}else c=r.createElement("span",{style:{fontSize:"12px",color:"var(--dsw-alias-label-tertiary)"}},e("quota.empty"));const u=Va(t,i),m=null!==u?r.createElement(Fa,{key:"peak-timeline",showCaption:!0,schedule:u}):null,g=Array.isArray(t.resetCards)?t.resetCards.map((a,n)=>{const s=Ua(a,e),i="string"==typeof a.id&&""!==a.id?a.id:`idx-${n}`;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.expired?"var(--dsw-alias-state-warn-primary)":"var(--dsw-alias-label-tertiary)"}},r.createElement("span",{style:{display:"flex",flexDirection:"column",gap:"2px"}},r.createElement("span",null,s.title),""!==s.expiry?r.createElement("span",null,s.expiry):null),r.createElement("button",{type:"button","data-testid":`quota-remove-${t.provider}-${i}`,onClick:()=>(async(t,a)=>{y("");try{await l("quota-reset-card",{provider:t,remove:!0,id:a}),await qa({scope:"all"})}catch(t){y(e("quota.saveFailed",{error:"network"}))}})(t.provider,i),style:{fontSize:"11px",padding:"2px 10px",...T(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")))}):[],v=null!==k&&k.provider===t.provider,b={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:z[n],onChange:e=>q({...z,[n]:e.target.value}),style:b}));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:()=>N(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:Na(t.fetchedAt)})):null)),c,...null!==m?[m]:[],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:()=>S(o?null:t.provider),style:{fontSize:"11px",lineHeight:"20px",padding:"2px 10px",...T(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!==C&&C.provider===t.provider,n=t.credentialHints,s=n.some(e=>e.name===M.name)?M.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=>{I({...M,name:e.target.value}),O(!1)},style:te},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:M.value,onChange:e=>I({...M,value:e.target.value}),autoComplete:"off",style:b})),r.createElement("button",{type:"button","data-testid":"quota-cred-save",onClick:()=>(async t=>{y("");try{const e=await l("quota-credential-set",{provider:t,name:M.name,value:M.value});if(!0!==e?.ok)return void y(L(e));R(),await N(t)}catch(t){y(e("quota.saveFailed",{error:"network"}))}})(t.provider),disabled:""===M.value.trim(),style:{minHeight:"28px",padding:"4px 12px",borderRadius:"var(--dsh-svc-radius-control)",border:"1px solid var(--dsw-alias-brand-primary)",background:""===M.value.trim()?"transparent":"var(--dsw-alias-brand-primary)",color:""===M.value.trim()?"var(--dsw-alias-label-tertiary)":"var(--dsh-svc-brand-text)",cursor:""===M.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:H?e("quota.credential.clearConfirm"):void 0,onClick:()=>{H?(O(!1),(async(t,a)=>{y("");try{const e=await l("quota-credential-unset",{provider:t,name:a});if(!0!==e?.ok)return void y(L(e));await N(t)}catch(t){y(e("quota.saveFailed",{error:"network"}))}})(t.provider,s)):O(!0)},style:{minHeight:"28px",padding:"4px 12px",borderRadius:"var(--dsh-svc-radius-control)",border:"1px solid var(--dsw-alias-state-error-primary)",background:H?"var(--dsw-alias-state-error-primary)":"transparent",color:H?"var(--dsh-svc-brand-text)":"var(--dsw-alias-state-error-primary)",cursor:"pointer",fontSize:"12px",whiteSpace:"nowrap"}},e(H?"quota.credential.clearConfirm":"quota.credential.clear"))]:[],r.createElement("button",{type:"button","data-testid":"quota-cred-cancel",onClick:R,style:Ie()},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:[];w(null),A({provider:e.provider}),I({name:(t.find(e=>!0===e.configured)??t[0])?.name??"",value:""}),O(!1)})(t),style:{fontSize:"12px",lineHeight:"20px",padding:"4px 14px",...T(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"}`)))]})():[],...g,...o&&v?[r.createElement("div",{key:"reset-editor","data-testid":`quota-reset-editor-${t.provider}`,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:j,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:()=>w(null),style:Ie()},e("quota.resetCard.cancel")))]:[],...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?$(t.provider,null):"__auto__"===e.target.value?(a=t.provider,D({provider:a,clear:!0})):$(t.provider,e.target.value)},style:te},ca.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:()=>(e=>{w({provider:e.provider}),q({expiresAt:"",label:""})})(t),style:{fontSize:"12px",lineHeight:"20px",padding:"4px 14px",...T(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")))]:[]]:[])})),...ee.length>0?[r.createElement("div",{key:"quota-add-adapt","data-testid":"quota-add-adapt",style:{display:"flex",alignItems:"center",flexWrap:"wrap",gap:"8px",marginTop:Q.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:ie,onChange:e=>oe(e.target.value),style:te},r.createElement("option",{value:""},e("quota.addPickProvider")),ee.map(e=>r.createElement("option",{key:e.provider,value:e.provider},e.displayName||e.provider))),r.createElement("select",{"data-testid":"quota-add-kind",value:de,onChange:e=>ce(e.target.value),style:te},r.createElement("option",{value:""},e("quota.addPickKind")),ca.map(t=>r.createElement("option",{key:t,value:t},e(`quota.kind.${t}`)))),r.createElement("button",{type:"button","data-testid":"quota-add-submit",disabled:""===ie||""===de,onClick:()=>{$(ie,de),oe(""),ce("")},style:{fontSize:"12px",padding:"3px 12px",borderRadius:"7px",border:"1px solid var(--dsw-alias-brand-primary)",background:""===ie||""===de?"transparent":"var(--dsw-alias-brand-primary)",color:""===ie||""===de?"var(--dsw-alias-label-tertiary)":"var(--dsh-svc-brand-text)",cursor:""===ie||""===de?"default":"pointer"}},e("quota.adapt")))]:[])}function Mr(){const e=Ae(),{value:n}=le(),[o,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,z]=a(null),[q,C]=a(!1),[A,M]=a(!1),[I,H]=a(null),[O,R]=a(!1),[L,j]=a(!1),[N,D]=a(null),[$,W]=a(!1),[B,_]=a({items:[],totalBytes:0}),[P,V]=a(!1),[F,U]=a(null),K=i(0),[G,Y]=a(null),[J,Q]=a(null),[X,Z]=a(null),[ee,te]=a(null),[re,ne]=a(null),[se,oe]=a(!1),[de,ce]=a(!1),[ue,pe]=a(!1),[me,ge]=a(!1),[he,ve]=a(null),[be,fe]=a(null),[ye,xe]=a(null),[ke,we]=a(null),[Ee,Se]=a(null),[ze,qe]=a(!1),[Te,He]=a(null),[Ne,De]=a(!1),[$e,Ue]=a(null),[Ke,Ge]=a(!1),[Ye,Je]=a(!1),[Qe,Xe]=a(null),[Ze,et]=a("all"),[at,rt]=a(!1),[nt,st]=a(!1),[it,lt]=a(!1),[ot,dt]=a("today"),[ct,ut]=a("overview"),[pt,mt]=a(!1),gt=jt(),ht=$t(),vt=(()=>{const[e,t]=a(Bt);return s(()=>(Wt.add(t),t(Bt),()=>Wt.delete(t)),[]),e})(),bt={timezoneOffsetMinutes:(new Date).getTimezoneOffset()};s(()=>{Ce()},[]),s(()=>{Pt().then(e=>{e&&e.ok&&(ve(e.value.current),fe(e.value.pluginVersion||null))})},[]);const ft=t=>{t&&!1!==t.ok?(xe(t.value),we(null)):we(e("update.unavailable"))};s(()=>{let t=!0;return l("check-update",{}).then(e=>{t&&ft(e)}).catch(()=>{t&&we(e("update.unavailable"))}),()=>{t=!1}},[]),s(()=>{if(!ie("healthDiagnostics"))return()=>{};let t=!0;return l("permissions-plan",{}).then(a=>{t&&(a&&!1!==a.ok?z(a.value):H(e("permissions.error")))}).catch(()=>{t&&H(e("permissions.error"))}),()=>{t=!1}},[n.healthDiagnostics]),s(()=>{if(!ie("modelUsage"))return()=>{};let t=!0;return l("usage",bt).then(async a=>{if(t)if(a&&!1!==a.ok){if(Se(a.value),!(a.value.updatedAt>0&&Date.now()-a.value.updatedAt<=3e5))try{const e=await l("usage-refresh",bt);t&&e&&e.ok&&Se(e.value)}catch(e){}}else He(e("usage.error"))}).catch(()=>{t&&He(e("usage.error"))}),()=>{t=!1}},[n.modelUsage]),s(()=>{if(!ie("backupMaintenance"))return()=>{};let t=!0;return l("backup-list",{}).then(a=>{t&&(a&&!1!==a.ok?_(a.value):Y(e("backup.error")))}).catch(()=>{t&&Y(e("backup.error"))}),()=>{t=!1}},[n.backupMaintenance]),s(()=>{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 yt=async(t=!1)=>{if(ie("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)}}},xt=async()=>{qe(!0),He(null);try{const e=await l("usage-refresh",bt);if(!e||!1===e.ok)throw new Error("usage refresh failed");Se(e.value)}catch(t){He(e("usage.error"))}finally{qe(!1)}},kt=t=>{const a="backup.error."+String(t||""),r=e(a);return r===a?e("backup.restoreError"):r},wt=async()=>{if(re&&!P){V(!0),Y(null);try{const e=await l("backup-restore-commit",{planId:re.planId});if(!e||!1===e.ok)throw Object.assign(new Error("backup restore failed"),{code:e?.error});if(Z(null),te(null),ne(null),!0===e.value?.restart?.requiresManualRestart)oe(!0);else{const t=e.value?.restart?.previousInstanceId||e.value?.previousInstanceId;"string"==typeof t&&t.length>0&&Jt(t).catch(()=>{})}}catch(e){ne(null),Y(kt(e?.code))}finally{V(!1)}}},Et=()=>{P||(Z(null),te(null),ne(null))},zt={"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(!Kt){Kt=!0;try{let t=ht;if(null===t&&(await Pt(),t=Dt),!Ke&&null!==t&&!0===t.manualStartLikely)return Ue(null),void Ge(!0);Ge(!1),De(!0),Ue(null);const a=await Pt(),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?zt[t]:void 0;return void Ue(void 0!==a?e(a):e("update.upgradeErrorDetail",{detail:t||"upgrade failed"}))}n.value&&!0===n.value.requiresManualRestart?Je(!0):"string"==typeof r&&r.length>0&&Jt(r).catch(()=>{}),Vt().catch(()=>{}),(async()=>{const e=await l("check-update",{}).catch(()=>null);e&&ft(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),Ue(a?e("update.upgradeErrorDetail",{detail:a}):e("update.upgradeError"))}finally{Kt=!1,De(!1)}}},Ct=Me(),At=(Me("primary"),Me("brandGhost")),Tt=Me("neutral"),Mt=Me("danger"),It=Me("dangerGhost"),Ht=Me("ghost"),Ot=Object.assign({},Ct,{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}),Rt={display:"flex",alignItems:"center",gap:"8px",marginTop:"12px",flexWrap:"wrap"},Lt={color:"var(--dsw-alias-label-secondary)",fontSize:"12px",marginTop:"8px",lineHeight:1.5},Nt={padding:"4px 0 14px",marginBottom:"12px",color:"var(--dsw-alias-label-primary)"},_t=Oe(),Ft={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"},Ut={color:"var(--dsw-alias-brand-primary)",borderBottom:"2px solid var(--dsw-alias-brand-primary)",fontWeight:700},Gt=Object.assign({},Ft,{padding:"3px 6px",fontSize:"11px"}),Yt={fontSize:"14px",fontWeight:700,margin:"0 0 8px",color:"var(--dsw-alias-label-primary)"},Qt=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"},Xt=(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)),Zt=e=>{const t=e=>String(e).padStart(2,"0");return`${e.getFullYear()}-${t(e.getMonth()+1)}-${t(e.getDate())}`},aa=[];for(let e=6;e>=0;e-=1){const t=new Date;t.setHours(0,0,0,0),t.setDate(t.getDate()-e),aa.push({key:Zt(t),label:`${t.getMonth()+1}/${t.getDate()}`})}const ra=[["inputTokens","usage.input","#79aaf7"],["outputTokens","usage.output","#f1b35b"],["cacheTokens","usage.cache","#48c7b0"]],sa=e=>{const t=Ee&&Ee.days?Ee.days[e]:null;if(!t)return{steps:0,inputTokens:0,outputTokens:0,cacheReadTokens:0,cacheWriteTokens:0,cacheHitRate:0};if("all"===Ze)return t.totals;const a=t.projects.find(e=>e.id===Ze);return a?a.totals:{steps:0,inputTokens:0,outputTokens:0,cacheReadTokens:0,cacheWriteTokens:0,cacheHitRate:0}},ia=e=>{const t=Number(e.inputTokens||0)+Number(e.cacheReadTokens||0)+Number(e.cacheWriteTokens||0);return 0===t?0:Number(e.cacheReadTokens||0)/t},oa=e=>Number(e.inputTokens||0)+Number(e.outputTokens||0)+Number(e.cacheReadTokens||0)+Number(e.cacheWriteTokens||0),da=(e,t)=>"cacheTokens"===t?e.cacheReadTokens+e.cacheWriteTokens:e[t]||0,ca=e=>ae(e,{invalid:"0"}),ua=(t,a)=>"cacheHitRate"===a?(100*Number(t)).toFixed(1)+"%":"steps"===a?e("usage.stepsValue",{count:Number(t).toLocaleString()}):ca(t),pa=aa.map(e=>sa(e.key)),ma=pa.map(e=>ra.reduce((t,[a])=>t+da(e,a),0)),ga=Math.max(1,...ma),ha=[ga,.75*ga,.5*ga,.25*ga,0],va=sa(aa[6].key),ba=aa.reduce((e,t)=>{const a=sa(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}),fa=ba.inputTokens+ba.cacheReadTokens+ba.cacheWriteTokens;ba.cacheHitRate=0===fa?0:ba.cacheReadTokens/fa;const ya="all"===Ze?(Ee?.projects||[]).map(e=>e.id):[Ze],xa=(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)},ka=new Map,wa=new Map,Ea=new Map,Sa=new Set(aa.map(e=>e.key)),za=aa[aa.length-1].key;for(const[e,t]of Object.entries(Ee?.days||{})){const a=[Ea];Sa.has(e)&&a.push(wa),e===za&&a.push(ka);for(const e of t.projects)if(ya.includes(e.id))for(const t of e.models)for(const e of a)xa(e,t)}const qa=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:Qt(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 l=[];return(Number(n)||0)>0&&l.push(e("plugin.issue.failed",{failed:n})),(Number(s)||0)>0&&l.push(e("plugin.issue.pending",{pending:s})),(Number(i)||0)>0&&l.push(e("plugin.issue.info",{count:i})),l.join(",")}if("plugin-compat"===t.id){if("unavailable"===a)return e("health.detail.plugin-compat.unavailable");const[r,n,s,i]=a.split(":");if("ok"===t.status&&0===(Number(s)||0))return e("health.detail.plugin-compat.ok",{total:r});const l=[];return(Number(n)||0)>0&&l.push(e("plugin.compat.issue.broken",{count:n})),(Number(s)||0)>0&&l.push(e("plugin.compat.issue.declared",{count:s})),(Number(i)||0)>0&&l.push(e("plugin.compat.issue.unknown",{count:i})),l.join(",")}return e("health.detail.generic",{status:e(`health.status.${t.status}`)})},Ca=(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",ca(da(e,"inputTokens")+da(e,"outputTokens")+da(e,"cacheTokens"))],...ra.map(([t,a])=>[a,ca(da(e,t))]),["usage.steps",ua(e.steps,"steps")],["usage.hitRate",ua(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)))),Aa=[...("today"===ot?ka:"all"===ot?Ea:wa).values()].sort((e,t)=>oa(t)-oa(e)||t.steps-e.steps||e.id.localeCompare(t.id)),Ta=it?Aa:Aa.slice(0,3),Ma=Math.max(0,Aa.length-3),Ia=Math.max(1,...Ta.map(e=>oa(e))),Ha=e=>(e||[]).filter(e=>"all"===Ze||e.projectId===Ze).sort((e,t)=>t.count-e.count||e.key.localeCompare(t.key)),Oa=Ha(Ee?.errors?.models),Ra=Ha(Ee?.errors?.tools),La=(t,a)=>r.createElement("div",{key:t,style:{display:"grid",gap:"6px",marginTop:"8px"}},0===a.length?r.createElement("p",{style:Lt},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)))),ja=r.createElement("div",{key:"usage-section","data-testid":"usage-card",style:Nt},r.createElement("div",{style:Yt},e("usage.structure")),r.createElement("p",{style:Object.assign({},Lt,{marginTop:"-4px"})},e("usage.structureHint")),Ee&&Array.isArray(Ee.projects)&&Ee.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({},Ft,"all"===Ze?Ut:{color:"var(--dsw-alias-label-secondary)",borderBottom:"2px solid transparent"}),onClick:()=>et("all")},e("usage.allProjects")),Ee.projects.map(e=>r.createElement("button",{key:e.id,style:Object.assign({},Ft,Ze===e.id?Ut:{color:"var(--dsw-alias-label-secondary)",borderBottom:"2px solid transparent"}),onClick:()=>et(e.id)},e.title))):null,Ee&&Ee.indexedSessions>0?r.createElement("div",{"data-testid":"usage-statistics-region",style:Object.assign({},_t,{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"}},ra.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:Tt,onClick:xt,disabled:ze},e(ze?"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)"}},ha.map((e,t)=>r.createElement("span",{key:t,style:{position:"absolute",right:"7px",top:25*t+"%",transform:4===t?"translateY(-100%)":"translateY(-50%)"}},ca(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)"}},ha.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"}})),aa.map((t,a)=>r.createElement("div",{key:t.key,"aria-label":e("usage.barDay",{day:t.label,total:ca(ma[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,ma[a]/ga*144)}px`,display:"flex",flexDirection:"column-reverse",justifyContent:"flex-start",borderRadius:"4px 4px 0 0",overflow:"hidden"}},ra.map(([e,n,s])=>{const i=da(pa[a],e),l=0===ma[a]?0:i/ma[a]*100,o=`${t.key}-${e}`,d=Qe&&Qe.id===o;return r.createElement("div",{key:e,"data-testid":`usage-segment-${o}`,"data-value":i,onMouseEnter:e=>Xe({id:o,date:t.key,totals:pa[a],x:e.clientX,y:e.clientY}),onMouseMove:e=>Xe(t=>t&&t.id===o?Object.assign({},t,{x:e.clientX,y:e.clientY}):t),onMouseLeave:()=>Xe(null),style:{height:`${l}%`,minHeight:i>0?"2px":0,background:s,opacity:Qe&&!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"}},aa.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:ca(ma.reduce((e,t)=>e+t,0))})),Qe?r.createElement("div",{"data-testid":"usage-tooltip",style:{position:"fixed",left:`${Qe.x+12}px`,top:`${Qe.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:Qe.date})}\n${e("usage.tooltip.input",{value:Number(Qe.totals.inputTokens||0).toLocaleString()})}\n${e("usage.tooltip.output",{value:Number(Qe.totals.outputTokens||0).toLocaleString()})}\n${e("usage.tooltip.cache",{value:Number((Qe.totals.cacheReadTokens||0)+(Qe.totals.cacheWriteTokens||0)).toLocaleString()})}`):null,r.createElement("div",{style:{display:"grid",gridTemplateColumns:"repeat(2, minmax(0, 1fr))",gap:"8px",marginTop:"10px"}},Ca("today","usage.today",va),Ca("seven","usage.sevenDays",ba)),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.${ot}`)),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({},Gt,ot===t?Ut:{color:"var(--dsw-alias-label-secondary)",borderBottom:"2px solid transparent"}),onClick:()=>dt(t)},e(`usage.modelScope.${t}`))))),Ta.map((t,a)=>{const n=oa(t),s=Math.round(n/Ia*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"}},ca(n))),r.createElement("div",{"data-testid":`usage-model-bar-${t.id}`,"data-value":n,"aria-label":e(`usage.modelBar.${ot}`,{model:t.id,total:ca(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}},ra.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:ua(ia(t),"cacheHitRate"),input:ca(t.inputTokens),output:ca(t.outputTokens)})))}),Ma>0?r.createElement("button",{style:Object.assign({},Ot,{borderTop:"1px solid var(--dsw-alias-border-l1)",marginTop:"2px"}),onClick:()=>lt(e=>!e)},`${it?"▾":"▸"} ${e(it?"usage.models.less":"usage.models.more",{count:Ma})}`):null)):r.createElement("p",{style:Lt},Te||e("usage.empty")),...Ee&&Ee.indexedSessions>0?[]:[r.createElement("div",{key:"usage-refresh-fallback",style:Rt},r.createElement("button",{style:Tt,"data-variant":"neutral",onClick:xt,disabled:ze},e(ze?"usage.refreshing":"usage.refresh")))]),Na=o&&"string"==typeof o.platform&&o.platform?`${{win32:"Windows",darwin:"macOS",linux:"Linux",freebsd:"FreeBSD",openbsd:"OpenBSD"}[o.platform]||o.platform}${"string"==typeof o.arch&&o.arch?` · ${o.arch}`:""}`:"—",Da=r.createElement("div",{key:"container-info",style:{marginTop:"18px"}},r.createElement("div",{style:Yt},e("overview.container")),o?r.createElement("div",{"data-testid":"health-display",style:Object.assign({},_t,{display:"grid",gridTemplateColumns:"repeat(2, minmax(0, 1fr))",gap:"8px"})},Xt("health.platform",Na),Xt("health.nodeVersion","string"==typeof o.nodeVersion&&o.nodeVersion?o.nodeVersion:"—"),Xt("health.uptime",(t=>{const a=Math.floor(Number(t)/60);return e("health.uptimeValue",{hours:Math.floor(a/60),minutes:a%60})})(o.uptimeSeconds)),Xt("health.rss",(e=>{const t=Number(e)/1048576;return(Math.round(10*t)/10).toLocaleString(void 0,{maximumFractionDigits:1})+" MB"})(o.rssBytes)),Xt("health.liveSessions",String(o.liveSessions)),Xt("health.persistedSessions",String(o.persistedSessions)),Xt("health.activeAgents",String(o.activeAgents)),Xt("health.activeJobs",String(o.activeJobs))):r.createElement("p",{style:Lt},c||e("version.loading"))),$a=r.createElement("div",{key:"overview-errors",style:{marginTop:"18px"}},r.createElement("div",{"data-testid":"overview-errors-title",style:Yt},e("overview.errors")),r.createElement("div",{"data-testid":"overview-errors-region",style:_t},r.createElement("div",{style:Object.assign({},Lt,{margin:"-3px 0 7px"})},e("usage.errors.recent")),r.createElement("div",{style:{display:"grid",gap:"7px"}},r.createElement("div",null,r.createElement("button",{style:Ot,onClick:()=>rt(e=>!e)},`${at?"▾":"▸"} ${e("usage.errors.toggle",{count:Oa.length})}`),at?r.createElement("div",{style:{padding:"0 2px 8px"}},La("model",Oa)):null),r.createElement("div",null,r.createElement("button",{style:Ot,onClick:()=>st(e=>!e)},`${nt?"▾":"▸"} ${e("usage.toolErrors.toggle",{count:Ra.length})}`),nt?r.createElement("div",{style:{padding:"0 2px 8px"}},La("tool",Ra)):null)))),Wa=r.createElement("div",{"data-testid":"health-diagnostics-region",style:_t},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:Lt},e("health.alert.diagnostics",{status:e("health.overall."+p.status)}))):null,p?r.createElement("div",{"data-testid":"health-check-list",style:Object.assign({},_t,{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",...T("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)"}},qa(t))))})):null),Ba=Array.isArray(p?.pluginIssues)?p.pluginIssues:[],_a=0===Ba.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)"}},Ba.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",...T("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({},Lt,{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:Mt,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 yt(!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:Ht,disabled:d,onClick:()=>{y(null),E(null)}},e("plugin.restartCancel")))):r.createElement("button",{type:"button","data-testid":`plugin-restart-${t.entryId}`,style:It,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({},Lt,{margin:"4px 0 0",color:"var(--dsw-alias-state-error-primary)"})},w):null))})),Pa=null!==p?.pluginCompat&&"object"==typeof p?.pluginCompat?p.pluginCompat:null,Va=Array.isArray(Pa?.issues)?Pa.issues:[],Fa=Array.isArray(Pa?.declaredOnly)?Pa.declaredOnly:[],Ua=Array.isArray(Pa?.unknown)?Pa.unknown:[],Ka=[...Va.map((e,t)=>({key:`broken-${t}`,kind:"broken",moduleName:e.moduleName,breaks:e.breaks})),...Fa.map((e,t)=>({key:`declared-${t}`,kind:"declared",moduleName:e.moduleName})),...Ua.map((e,t)=>({key:`unknown-${t}`,kind:"unknown",moduleName:e.moduleName,reason:e.reason}))],Ga=null===Pa||0===Ka.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)"}},Ka.map((t,a)=>{const n="broken"===t.kind,s=n?"var(--dsh-svc-warning)":"var(--dsh-svc-info)",i=n?t.breaks.map(t=>e("plugin.compat.break."+t)).join(";"):"declared"===t.kind?e("plugin.compat.declared"):e(`plugin.compat.unknown.${t.reason}`);return r.createElement("div",{key:t.key,"data-testid":`plugin-compat-${t.key}`,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",...T("50%"),marginTop:"6px",background:s}}),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),n?r.createElement("span",{style:{fontSize:"11px",fontWeight:650,color:"var(--dsh-svc-warning)"}},e("plugin.compat.issue.broken",{count:1})):"declared"===t.kind?r.createElement("span",{style:{fontSize:"11px",fontWeight:650,color:"var(--dsh-svc-info)"}},e("plugin.compat.issue.declared",{count:1})):null),r.createElement("div",{style:{fontSize:"11px",marginTop:"3px",lineHeight:1.5,overflowWrap:"anywhere",color:n?"var(--dsh-svc-warning)":"var(--dsh-svc-text-muted)"}},i)))})),Ya=S&&!0===S.supported?S.items.filter(e=>!1===e.writable).length:0,Ja=Ya>0||N&&(N.ownerIssues>0||N.directoryModeIssues>0||N.fileModeIssues>0||N.unreadable>0),Qa=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:Yt},e("permissions.title")),r.createElement("button",{type:"button","data-testid":"permissions-toggle","aria-expanded":String(L),onClick:()=>j(e=>!e),style:{fontSize:"12px",lineHeight:"20px",padding:"2px 12px",...T(999),border:"1px solid var(--dsh-svc-border-strong)",background:"transparent",color:Ya>0?"var(--dsw-alias-state-warn-primary)":"var(--dsw-alias-label-primary)",cursor:"pointer"}},`${L?"▾":"▸"} ${e(L?"permissions.hide":"permissions.show")}${Ya>0?` · ${Ya}`:""}`)),L?r.createElement("div",{style:Object.assign({},_t,{marginTop:"4px"})},r.createElement("p",{style:Lt},e("permissions.description")),Ya>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:Lt},e("permissions.summary.warning",{count:Ya}))):null,r.createElement("p",{style:Object.assign({},Lt,{fontWeight:600,color:Ya>0?"var(--dsw-alias-state-warn-primary)":"var(--dsw-alias-label-primary)"})},e(Ya>0?"permissions.summary.warning":"permissions.summary.ok",{count:Ya>0?Ya:S.items.length})),r.createElement("p",{style:Object.assign({},Lt,{fontWeight:600})},e("permissions.target",{owner:S.targetOwner})),r.createElement("div",{style:{display:"flex",gap:"8px",flexWrap:"wrap"}},r.createElement("button",{style:Tt,onClick:()=>R(e=>!e)},e(O?"permissions.hideDetails":"permissions.showDetails")),r.createElement("button",{style:Tt,"data-variant":"neutral",onClick:async()=>{if(S&&!0===S.supported){W(!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");D(e.value)}catch(t){H(e("permissions.error"))}finally{W(!1)}}},disabled:$},e($?"permissions.deepChecking":"permissions.deep"))),N?r.createElement("p",{style:Lt},e("permissions.deepSummary",{scanned:N.scanned,duration:N.durationMs,owner:N.ownerIssues,directories:N.directoryModeIssues,files:N.fileModeIssues,unreadable:N.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,q?r.createElement("div",{style:{marginTop:"10px"}},r.createElement("p",{style:Object.assign({},Lt,{color:"var(--dsw-alias-state-error-primary)"})},e("permissions.confirmHint")),r.createElement("div",{style:{display:"flex",gap:"8px"}},r.createElement("button",{style:Mt,disabled:A,onClick:async()=>{if(S&&!0===S.supported){M(!0),H(null);try{const e=await l("permissions-repair",{planId:S.planId});if(!e||!1===e.ok)throw new Error("permission repair failed");z(e.value),C(!1)}catch(t){H(e("permissions.error"))}finally{M(!1)}}}},e(A?"permissions.repairing":"permissions.confirm")),r.createElement("button",{style:Ht,disabled:A,onClick:()=>C(!1)},e("permissions.cancel")))):Ja?r.createElement("button",{style:Object.assign({},It,{marginTop:"10px"}),"data-variant":"dangerGhost",disabled:A,onClick:()=>C(!0)},e("permissions.repair")):null,I?r.createElement("p",{style:Object.assign({},Lt,{color:"var(--dsw-alias-state-error-primary)"})},I):null):null):null,Xa=r.createElement("div",{key:"health-section","data-testid":"health-card",style:Nt},Wa,_a,Ga,Qa),Za=P&&!0===F?.active,er=Za&&F.phase||"copy",tr={copy:1,archive:2,validate:3,publish:4}[er]||1,ar=(()=>{if(!Za)return 0;const e=Number(F.totalBytes)||0;let t;if("copy"===er)t=e>0?Math.min(30,Math.floor(F.copiedBytes/e*30)):0;else if("archive"===er){const a=e>0?Math.min(1,Number(F.archiveBytes)/e):0;t=Math.min(70,30+Math.floor(40*a))}else t="validate"===er?70:100;const a=Math.max(K.current,t);return K.current=a,a})(),sr=Za?"copy"===er?`${Qt(F.copiedBytes)} / ${Qt(F.totalBytes)}`:F.archiveBytes>0?Qt(F.archiveBytes):"":"",ir=r.createElement("div",{key:"backup-section"},r.createElement("div",{style:Yt},e("backup.title")),r.createElement("div",{style:Object.assign({},_t,{marginTop:"4px"})},r.createElement("p",{style:Lt},e("backup.description")),r.createElement("div",{style:{display:"flex",gap:"8px",marginTop:"12px",flexWrap:"wrap"}},r.createElement("button",{style:Object.assign({},At,{flex:1,minWidth:0,display:"inline-flex",alignItems:"center",justifyContent:"center",textAlign:"center"}),"data-variant":"brandGhost",onClick:async()=>{V(!0),Y(null),U(null),K.current=0;let e=!1,a=()=>{};const r=async()=>{if(!e){try{const t=await l("backup-progress",{});!e&&t&&t.ok&&U(!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});_({items:e.value.items,totalBytes:e.value.totalBytes})}catch(e){Y(kt(e?.code))}finally{e=!0,a(),U(null),V(!1)}},disabled:P},e(P?"backup.creating":"backup.create")),r.createElement("label",{style:Object.assign({},Tt,{flex:1,minWidth:0,display:"inline-flex",alignItems:"center",justifyContent:"center",textAlign:"center",cursor:ue?"default":"pointer"})},e(ue?"backup.importing":"backup.import"),r.createElement("input",{type:"file",accept:".tar.gz,application/gzip",disabled:ue,onChange:t=>{const a=t.target.files&&t.target.files[0];if(t.target.value="",!a)return;pe(!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});_(n.value)}catch(t){Y(t?.code?kt(t.code):e("backup.error"))}finally{pe(!1)}},r.onerror=()=>{pe(!1),Y(e("backup.error"))},r.readAsArrayBuffer(a)},style:{display:"none"}}))),P&&!0===F?.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."+er,{current:tr,total:4})),r.createElement("span",null,sr)),r.createElement("div",{style:{marginTop:"5px",height:"6px",...T("999px"),background:"var(--dsh-svc-raised-bg)",border:"1px solid var(--dsw-alias-border-l1)",overflow:"hidden"}},r.createElement("div",{style:{height:"100%",width:ar+"%",background:"var(--dsw-alias-brand-primary)",transition:"width 240ms ease"}}))):null,r.createElement("p",{style:Lt},e("backup.total",{size:Qt(B.totalBytes)})),se?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({},Lt,{margin:"4px 0 0"})},e("backup.manualRestartBody"))):null,G?r.createElement("p",{style:Object.assign({},Lt,{color:"var(--dsw-alias-state-error-primary)"})},G):null,0===B.items.length?r.createElement("p",{style:Lt},e("backup.empty")):B.items.length>10?r.createElement("button",{style:Object.assign({},Ht,{marginTop:"8px"}),onClick:()=>ge(e=>!e)},e(me?"backup.hideRecords":"backup.showRecords")):null,B.items.length>0&&(B.items.length<=10||me)?r.createElement("div",{style:{marginTop:"10px",display:"grid",gap:"8px"}},B.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"}},`${Qt(t.sizeBytes)} · ${new Date(t.createdAt).toLocaleString()}`)),r.createElement("div",{style:{display:"flex",gap:"6px",flexShrink:0}},J===t.id||X===t.id?null:r.createElement("button",{style:Ie(),disabled:de||P,onClick:()=>(async t=>{ce(!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{ce(!1)}})(t.id)},e(de?"backup.exporting":"backup.export")),J===t.id||X===t.id?null:r.createElement("button",{style:Ie(),disabled:P,onClick:()=>(async e=>{V(!0),Y(null),oe(!1),te(null),ne(null),Z(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(te(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});ne(a.value)}catch(e){Y(kt(e?.code))}finally{V(!1)}})(t.id)},e(P&&X===t.id?"backup.inspecting":"backup.restore")),J===t.id||X===t.id?null:r.createElement("button",{style:Object.assign({},It,{minHeight:"28px",padding:"4px 9px"}),"data-variant":"dangerGhost",disabled:P,onClick:()=>Q(t.id)},e("backup.delete")))),J===t.id?r.createElement("div",{style:{marginTop:"8px"}},r.createElement("p",{style:Object.assign({},Lt,{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:Mt,disabled:P,onClick:()=>(async t=>{V(!0),Y(null);try{const e=await l("backup-delete",{id:t});if(!e||!1===e.ok)throw new Error("backup failed");_(e.value),Q(null)}catch(t){Y(e("backup.error"))}finally{V(!1)}})(t.id)},e("backup.confirm")),r.createElement("button",{style:Ht,disabled:P,onClick:()=>Q(null)},e("backup.cancel")))):X===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)"}},P&&null===ee?r.createElement("p",{style:Lt},e("backup.inspecting")):null!==ee?r.createElement("div",null,r.createElement("div",{style:{fontWeight:650,color:ee.validForRestore?"var(--dsh-svc-success)":"var(--dsh-svc-danger)"}},e(ee.validForRestore?"backup.integrity.ok":"backup.integrity.invalid")),r.createElement("p",{style:Object.assign({},Lt,{margin:"4px 0 0"})},e("backup.integrity.summary",{entries:ee.archive?.entryCount||0,size:Qt(ee.archive?.logicalBytes||0),sessions:ee.sections?.sessions?.files||0,config:ee.sections?.config?.files?.length||0,profiles:ee.sections?.profiles?.count||0})),!0!==ee.validForRestore?r.createElement("ul",{style:Object.assign({},Lt,{margin:"6px 0 0",paddingLeft:"18px",color:"var(--dsh-svc-danger)"})},(ee.issues||[]).map((e,t)=>r.createElement("li",{key:t},kt(e.code)))):null):null,null!==re?r.createElement("div",{style:{marginTop:"8px"}},r.createElement("p",{style:Object.assign({},Lt,{color:"var(--dsw-alias-state-warn-primary)",margin:"0 0 6px"})},e("backup.restoreHint")),r.createElement("ul",{style:Object.assign({},Lt,{margin:"0 0 8px",paddingLeft:"18px"})},r.createElement("li",null,e("backup.plan.sessions")),r.createElement("li",null,e("backup.plan.config",{replace:re.targets?.config?.replace?.length||0,remove:re.targets?.config?.remove?.length||0})),r.createElement("li",null,e("backup.plan.profiles",{count:re.targets?.profiles?.upsert?.length||0}))),r.createElement("p",{style:Object.assign({},Lt,{margin:"0 0 8px"})},e("backup.plan.expires",{time:new Date(re.expiresAt).toLocaleTimeString()})),r.createElement("div",{style:{display:"flex",gap:"8px"}},r.createElement("button",{style:Mt,disabled:P,onClick:wt},e("backup.restoreConfirm")),r.createElement("button",{style:Ht,disabled:P,onClick:Et},e("backup.cancel")))):r.createElement("button",{style:Ht,disabled:P,onClick:Et},e("backup.cancel"))):null))):null)),lr=(t,a,n,s,i,l,o,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}):ke||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=l&&s&&"unpublished"!==s.status&&"unavailable"!==s.status&&!s.upToDate?r.createElement("button",{type:"button",title:e(pt?"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:()=>mt(e=>!e)},(m=pt,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:o?"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))},or=ye?.dsh,cr=or&&"unpublished"!==or.status&&"unavailable"!==or.status&&!or.upToDate,ur=(e=>{const t=na(e,ta);return null!==t&&t>=0})(he),pr=ye?.plugin&&!ye.plugin.upToDate&&"available"===ye.plugin.status,mr=1===na(vt,be||ye?.plugin?.current||null),gr=Ye||mr,hr=gr&&null!==vt?Object.assign({},ye?.plugin,{current:vt,restartPending:!0}):ye?.plugin,vr=!pr||gr||Ke?null:r.createElement("button",{style:Object.assign({},Tt,{minHeight:"24px",padding:"2px 8px",fontSize:"11px"}),disabled:Ne,onClick:qt},e(Ne?"update.upgrading":"update.upgrade")),fr=Ye||mr&&null!==ht&&!0===ht.manualStartLikely,yr=r.createElement("span",{key:"dsh-support-bound","data-testid":"version-dsh-support-bound",style:{fontSize:"12px",lineHeight:1.4,marginLeft:"2px",padding:ur?"1px 6px":0,borderRadius:"4px",color:ur?"var(--dsw-alias-state-error-primary)":"var(--dsw-alias-label-secondary)",background:ur?"rgba(211,51,51,0.08)":"transparent",border:ur?"1px solid rgba(211,51,51,0.3)":0,fontWeight:ur?650:400,whiteSpace:"normal"}},e("version.dsh.supportBound",{limit:ta})),xr=r.createElement("div",{key:"version-card","data-testid":"version-card",style:Nt},r.createElement("div",{key:"title",style:Yt},e("version.title")),r.createElement("div",{style:_t},lr("plugin","dsh-service",be,hr,vr,!1,!1,yr),lr("dsh","DSH",he,or,null,!0===cr,!0),pt?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:or?.current||he||"—"})),r.createElement("div",null,e("update.details.latest",{version:or?.latest||"—"})),((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"}},ea(e,"latest",t&&t.latest),ea(e,"next",t&&t.next),...t&&Object.prototype.hasOwnProperty.call(t,"alpha")?[ea(e,"alpha",t.alpha)]:[]))(e,or?.tags)):null,Ke?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({},Lt,{margin:"0 0 8px"})},e("update.manualConfirm")),r.createElement("div",{style:Rt},r.createElement("button",{style:It,"data-variant":"dangerGhost",disabled:Ne,onClick:qt},e(Ne?"update.upgrading":"update.manualProceed")),r.createElement("button",{style:Ht,disabled:Ne,onClick:()=>Ge(!1)},e("restart.cancel")))):null,fr?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({},Lt,{margin:0})},e("update.manualRestartBody"))):null,$e?r.createElement("p",{style:Object.assign({},Lt,{color:"var(--dsw-alias-state-error-primary)",margin:"4px 0 0"})},$e):null)),kr=r.createElement(la,{showNavToggle:!0}),{enabled:wr,done:Er,input:Sr,bell:zr,setEnabled:qr,setDone:Cr,setInput:Mr,setBell:Ir}=tt(),Hr="undefined"!=typeof Notification,Or=Hr?Notification.permission:"denied",Rr=(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:Lt},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",...T("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",...T("50%"),background:e?"#fff":"var(--dsw-alias-label-tertiary)"}})))(n,s,i)),Lr=Hr?r.createElement("div",{style:{marginTop:"18px"}},r.createElement("div",{style:Yt},e("notification.title")),r.createElement("div",{style:Object.assign({},_t,{marginTop:"4px"})},r.createElement("p",{style:Lt},e("notification.description")),"granted"!==Or?r.createElement("div",{style:{marginTop:"8px",display:"flex",alignItems:"center",gap:"8px"}},r.createElement("button",{style:Tt,onClick:()=>{Notification.requestPermission().then(e=>{"granted"===e&&qr(!0)})}},e("notification.enable")),r.createElement("span",{style:Lt},"denied"===Or?e("notification.denied"):"")):r.createElement("div",{style:{marginTop:"8px",display:"flex",flexDirection:"column"}},Rr("notify-row-master",e("notification.master"),null,wr,qr,!1),Rr("notify-row-done",e("notification.done"),null,Er,Cr,!wr),Rr("notify-row-input",e("notification.input"),null,Sr,Mr,!wr),Rr("notify-row-bell",e("notification.bellShow"),null,zr,Ir,!1)))):null,jr=null!=ye&&(ye.dsh&&!1===ye.dsh.upToDate||ye.plugin&&!1===ye.plugin.upToDate),Nr=null!==B&&!P&&!G,Dr=(p?.checks||[]).filter(e=>"error"===e.status||"warning"===e.status&&!0!==e.advisory&&"permissions"!==e.id),$r=[];c&&$r.push({level:"error",text:c}),Te&&$r.push({level:"error",text:Te}),G&&$r.push({level:"error",text:G}),gt.error&&$r.push({level:"error",text:String(gt.error)}),I&&$r.push({level:"error",text:I});for(const t of Dr)$r.push({level:"error"===t.status?"error":"warning",text:e(`health.check.${t.id}`)+":"+qa(t)});Ya>0&&$r.push({level:"warning",text:e("permissions.summary.warning",{count:Ya})}),jr&&$r.push({level:"info",text:e("overview.updateAvailable")}),Nr&&0===B.items.length&&$r.push({level:"info",text:e("overview.backupEmpty")});const Wr=$r.some(e=>"error"===e.level)?"error":$r.some(e=>"warning"===e.level)?"warning":$r.some(e=>"info"===e.level)?"info":"normal",Br="normal"===Wr?e("overview.status.normal"):e(`overview.status.${Wr}`,{count:$r.length}),_r=r.createElement("div",{"data-testid":"overview-status",style:Object.assign({},_t,{display:"flex",alignItems:"center",gap:"10px"})},r.createElement("span",{"aria-hidden":"true",style:{flex:"none",width:"10px",height:"10px",...T("50%"),background:"normal"===Wr?"var(--dsh-svc-success)":"warning"===Wr?"var(--dsh-svc-warning)":"error"===Wr?"var(--dsh-svc-danger)":"var(--dsh-svc-info)"}}),r.createElement("span",{style:{fontSize:"13px",fontWeight:600,color:"var(--dsh-svc-text)"}},Br)),Pr=0===$r.length?null:r.createElement("div",{"data-testid":"overview-actionables",style:Object.assign({},_t,{marginTop:"10px",padding:"4px 10px"})},$r.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",...T("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)))),Vr=r.createElement("div",null,_r,Pr,xr,Da,Oa.length>0||Ra.length>0?$a:null),Fr=r.createElement("div",{key:"maintenance-card","data-testid":"maintenance-card",style:Nt},ir),Ur=!0===p?.checks?.some(e=>"error"===e.status||"warning"===e.status&&!0!==e.advisory),{batch:Kr}=St(),Gr={overview:!1,usage:Boolean(Te),quota:!1,diagnostics:Boolean(c||I||Ur||Ya>0),maintenance:Boolean(G||gt.error),configuration:!1},[Yr,Jr]=a("subagent"),[Qr,Xr]=a("features");s(()=>{let e=null;try{e=localStorage.getItem("dsh-service-maintenance-tab")}catch(e){}Jr(null===e?"subagent":Be(e,n))},[]);const Zr=((e,t)=>Re.filter(t=>void 0===je[t]||!1!==e[je[t]]).map(e=>({id:e,labelKey:Le[e],warning:void 0!==t&&!0===t[e]})))(n,Gr),en=We(n),tn=Zr.filter(e=>e.warning).map(t=>e(t.labelKey)),an=Zr.some(e=>e.id===ct)?ct:"overview",rn=Be(Yr,n),nn="overview"===an?Vr:"usage"===an?ja:"quota"===an?r.createElement(Tr,null):"diagnostics"===an?Xa:"maintenance"===an?null===rn?r.createElement("div",{"data-testid":"maintenance-empty",style:_t},e("maintenance.empty")):"restart"===rn?kr:"backup"===rn?Fr:"skills"===rn?r.createElement(br,null):"subagent"===rn?r.createElement(dr,null):r.createElement(Ar,null):"notifications"===Qr?r.createElement("div",{"data-testid":"config-notifications-page",style:!1===n.taskNotifications?{opacity:.55}:void 0},Lr,...!1===n.taskNotifications?[r.createElement("p",{key:"notify-off-hint",style:Object.assign({},Lt,{marginTop:"8px"})},e("config.notificationsDisabled"))]:[]):"navOrder"===Qr?r.createElement(nr,null):r.createElement(rr,null);return r.createElement("div",{"data-testid":"service-panel-root","data-dshsvc-root":"","data-dshsvc-page":an,className:"dshsvc-page"},tn.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({},Lt,{marginTop:"3px"})},e("tabs.alert.body",{tabs:tn.join(e("tabs.alert.join"))}))):null,r.createElement(Fe,{items:Zr.map(t=>({id:t.id,label:e(t.labelKey),icon:"diagnostics"===t.id?"health":t.id,warning:t.warning,badge:"maintenance"===t.id&&null!==Kr&&"running"===Kr.phase?{testid:"skills-tab-badge",text:Kr.done+"/"+Kr.total}:null})),activeId:an,onChange:e=>{ut(e),"diagnostics"===e&&yt(!1)},testIdPrefix:"service-tab",dotLabel:e("tabs.alert.dot"),ariaLabel:e("nav.label")}),r.createElement(Ve,{title:e(Le[an]),description:void 0!==Pe[an]?e(Pe[an]):null,action:"diagnostics"===an?r.createElement("button",{type:"button","data-testid":"diagnostics-recheck","data-variant":"neutral",style:Tt,onClick:()=>yt(!0),disabled:g},e(g?"health.checking":p?"health.recheck":"health.check")):null}),"maintenance"===an&&en.length>0?r.createElement(Fe,{items:en.map(t=>({id:t.id,label:e(t.labelKey)})),activeId:rn,onChange:e=>{Jr(e);try{localStorage.setItem("dsh-service-maintenance-tab",e)}catch(e){}},testIdPrefix:"maintenance-tab",variant:"sub",ariaLabel:e("tabs.maintenance")}):null,"configuration"===an?r.createElement(Fe,{items:_e.map(t=>({id:t.id,label:e(t.labelKey)})),activeId:Qr,onChange:Xr,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)"}},nn))}null!==qr&&console.info("[dsh-service-md] session detail markdown renderer ready");const Ir=["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"],Hr=["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 Or(){const{enabled:e,setEnabled:t}=tt(),a=Ae();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?Ir:Hr).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),ie("taskNotifications")&&Ye&&(e=t.slots.register({name:"conversation.input.left",id:"dsh-service-notify",order:90,label:()=>ee("notification.bellOn")},()=>r.createElement(Or,null)))};a();const n=ne.subscribe(a),s=(i=a,Qe.add(i),()=>Qe.delete(i));var i;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(tr,null))),t.slots.inject("plugins.bundle.config",()=>t.slots.register({name:"plugins.bundle.config",key:"@gehennawu/dsh-service"},e=>"page"===e?.view?r.createElement(tr,null):null)),t.slots.inject("settings.section",()=>{const e=t.slots.register({name:"settings.section",id:"dsh-service",order:99,label:()=>ee("nav.label")},()=>r.createElement(Mr,null));rt.sync(),nt.sync(),st.sync();const a=ne.subscribe(nt.sync),n=ne.subscribe(st.sync);return()=>{a(),n(),e(),rt.disposeEntry(),nt.disposeEntry(),st.disposeEntry()}}),t.slots.inject("shell.overlay",()=>t.slots.register({name:"shell.overlay",id:"dsh-service-restart",order:100,label:()=>ee("overlay.label")},()=>r.createElement(ia,null))),t.slots.inject("conversation.input.right",()=>{let e=null;const a=()=>{null!==e&&(e(),e=null),ie("quotaLookup")&&(e=t.slots.register({name:"conversation.input.right",id:"dsh-service-quota-ring",order:95,label:()=>ee("quota.ring.label"),inject:e=>{if(null==e)return{};try{const t=Ct();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(er,e)))};a();const n=ne.subscribe(a);return()=>{n(),null!==e&&e()}}),t.slots.inject("conversation.chat.turnTail",()=>{let e=null;const a=()=>{null!==e&&(e(),e=null),ie("subagentRoute")&&(e=t.slots.register({name:"conversation.chat.turnTail",id:"dsh-service-subagent-models",select:G},e=>r.createElement(B,e)))};a();const n=ne.subscribe(a);return()=>{n(),null!==e&&e()}}),t.slots.inject("conversation.composer.dock",()=>{let e=null;const a=()=>{null!==e&&(e(),e=null),ie("subagentRoute")&&ie("subagentModelsDock")&&(e=t.slots.register({name:"conversation.composer.dock",id:"dsh-service-subagent-models-dock",order:60,label:()=>ee("subagent.turnTail.label"),inject:e=>({sessionId:e})},e=>r.createElement(X,e)))};a();const n=ne.subscribe(a);return()=>{n(),null!==e&&e()}});const Rr=w,Lr=(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},jr=[],Nr=e=>{const t=jr[e];try{t.button.remove()}catch(e){}jr.splice(e,1)},Dr=()=>{for(;jr.length>0;)Nr(jr.length-1)},$r=()=>{const e=q();if(null===e)return;const t=ee("editor.viewer"),a=ie("fileEditor"),r=a?C(e,z):[];for(let e=jr.length-1;e>=0;e-=1){const a=jr[e];r.includes(a.menu)&&A(a.menu)!==t||Nr(e)}if(a){for(const e of jr)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(A(a)===t)continue;if(jr.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(E,""),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){}R(e,e=>e===t,{menu:I(n),isAlive:()=>O.isAlive()})}),r.insertBefore(n,a),jr.push({menu:a,button:n})}}};function Wr(e){const t=Ae(),a="string"==typeof e?.tab?.contentId?e.tab.contentId:"";if(!a.startsWith("dsh-resource://file/")||!M(a))return null;const n=q();return(null===n?[]:C(n,z)).some(e=>A(e)===t("editor.viewer"))?null:r.createElement("button",{type:"button",role:"menuitem","data-testid":"file-editor-menu-item",[S]:"",onClick:()=>{try{e?.dismiss?.()}catch(e){}const a=q(),r=null===a?[]:C(a,z);1===r.length&&R(a,e=>e===t("editor.viewer"),{menu:r[0],isAlive:()=>O.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 Br(e){const t=Ae(),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),z=r.useRef(!1),C=r.useRef(null),A=r.useRef(null),T=r.useRef(null),M=e=>{E.current=e,o(e)},H=e=>{S.current=e,c(e)},L=e=>{z.current=e,p(e)},j=e=>{C.current=e,f(e)},N=()=>(k.current+=1,k.current),D=e=>k.current===e,$=()=>{if(!0===z.current)return;const e=N();M({phase:"loading",text:"",version:"",path:"",bytes:0,error:""}),H(null),v(null),j(null),g(""),L(!1),l("file-read",{address:a}).then(t=>{if(!D(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(()=>{D(e)&&M({phase:"error",text:"",version:"",path:"",bytes:0,error:"internal"})})},W=(e,t,r={})=>{const n="undo"===r?.kind?"undo":"save";if(!0===z.current)return;if("string"!=typeof e)return;const s=N();L(!0),g(""),l("file-write",{address:a,text:e,version:t,force:!0===r?.force}).then(a=>{if(!D(s))return;if(L(!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||{},l="string"==typeof i.version&&""!==i.version?i.version:"string"==typeof t?t:"",o=E.current;M({phase:"ready",text:e,version:l,path:"string"==typeof i.path&&""!==i.path?i.path:o.path,bytes:Number.isFinite(i.bytes)?i.bytes:o.bytes,error:""}),j("undo"===n?null:"string"==typeof i.before?{text:i.before,version:l}:null);const d=S.current;null===d||d===e?(H(null),v(null),g("saved"),"preview"===r?.leaveAfter&&K()):v(null)}).catch(()=>{D(s)&&(L(!1),g("internal"))})};r.useEffect(()=>(w.current=s,$(),()=>{k.current+=1}),[a]),r.useEffect(()=>{if(w.current===s)return;if(w.current=s,!0===z.current)return;const e=S.current;null!==e&&e!==E.current.text||$()},[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=I(A.current);return null!=e&&R(q(),e=>e!==t("editor.viewer"),{menu:e,isAlive:()=>O.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!==z.current&&(!0!==B?K():x("preview"))},"ghost",u),null!==b?U("file-editor-undo","editor.undo",()=>{!0!==z.current&&null!==b&&x("undo")},"ghost",u):null,U("file-editor-reload","editor.reload",()=>{!0!==z.current&&(!0!==B?$():x("reload"))},"ghost",u),U("file-editor-save","editor.save",()=>W(S.current??i.text,i.version,{kind:"save"}),"primary",u||!B))),Y=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",()=>$(),"ghost",u),U("file-editor-conflict-overwrite","editor.conflict.overwrite",()=>W(S.current??i.text,i.version,{kind:"save",force:!0}),"primary",u))):null,J=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",()=>$(),"ghost",u),U("file-editor-undo-conflict-dismiss","editor.undoConflict.dismiss",()=>v(null),"ghost",!1))):null,Q={preview:"editor.confirm.previewTitle",reload:"editor.confirm.reloadTitle",undo:"editor.confirm.undoTitle"},X=null===y?null:r.createElement("div",{"data-testid":"file-editor-confirm",role:"alertdialog","aria-label":t(Q[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(Q[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),W(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&&(H(null),W(e.text,e.version,{kind:"undo"}))})(),"primary",u):null,"reload"===y?U("file-editor-confirm-discard","editor.confirm.reloadGo",()=>{x(null),$()},"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))),Z=""===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)"}},Lr(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"}},Lr(t,_)),U("file-editor-retry","editor.retry",()=>$(),"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=>H("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!==z.current&&B&&W(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,X,Y,J,Z,ee,r.createElement("div",{style:{flex:"none",padding:"4px 10px 6px",fontSize:"11px",color:"var(--dsw-alias-label-tertiary)"}},t("editor.keyHint")))}const _r=()=>{if(!ie("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:k,extensions:Rr,priority:"builtin",title:()=>ee("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:k,locale:n},Br))),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(Wr,e)))),e.push((()=>{O=(()=>{const e={alive:!0};return H.add(e),{isAlive:()=>!0===e.alive,dispose:()=>{e.alive=!1,H.delete(e)}}})(),$r();let e=()=>{};try{if("function"==typeof t.locale?.subscribe){const a=t.locale.subscribe(()=>{try{$r()}catch(e){}});"function"==typeof a&&(e=a)}}catch(e){}const a=q();if(null===a||"function"!=typeof MutationObserver)return()=>{e(),Dr()};let r=!1;const n=()=>{r||(r=!0,Promise.resolve().then(()=>{r=!1;try{$r()}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(),Dr(),O.dispose(),(()=>{for(const e of H)e.alive=!1;H.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=ie("fileEditor"),t=!0===e?_r():void 0;const a=ne.subscribe(()=>{const a=ie("fileEditor");a!==e&&(e=a,"function"==typeof t&&t(),t=!0===a?_r():void 0)});return()=>{a(),"function"==typeof t&&t()}},"dsh-service file editor");const Pr=()=>{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}}}},Vr=(()=>{const e={observer:null,btn:null,styleTag:null,retryTimer:null,retryLeft:0,scrollHandler:null,rafId:null,slotRO:null},a=Pr(),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 l=a.toBottomButton(i),o=document.createElement("button");o.type="button",o.setAttribute("data-dshsvc-user-jump",""),o.setAttribute("aria-label",ee("conversation.jump.previousReply"));let d=0;try{if(null!==l){const e=i.getBoundingClientRect().right,t=l.getBoundingClientRect().right;d=Math.max(0,Math.round(e-t))}}catch(e){}Object.assign(o.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)",...T("100px"),display:"flex",alignItems:"center",justifyContent:"center",pointerEvents:"auto"}),o.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),o.addEventListener("click",()=>{const n=a.scrollportOf(i);if(null===n||"function"!=typeof n.querySelectorAll)return;const s=Number(n.scrollTop)||0,l=()=>{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 o=null;for(let e=i.length-1;e>=0;e-=1)if(a.flowTopOf(n,i[e])<4){o=i[e];break}if(null!==o){const e=Math.max(0,s+a.flowTopOf(n,o)-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(l,220)}};r(),e.retryLeft=20,l()}),i.appendChild(o),e.btn=o,(()=>{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(()=>(Vr.start(),()=>Vr.stop()),"dsh-service user reply jump");const Fr=(()=>{const e={styleTag:null,observer:null,observerCreated:!1,unsubscribe:null,unsubscribeSessions:null,unsubscribeQuota:null,seat:null,lastProvider:null,lastSession:void 0,disposed:!1},a=()=>{try{const e=t.sessions;if(e&&e.list&&"function"==typeof e.list.getSnapshot){const t=e.list.getSnapshot();return t&&void 0!==t.current?t.current:void 0}}catch(e){}},r=()=>{if(e.disposed)return;const t=(()=>{const e=q();if(null===e)return null;try{return e.querySelector("[data-composer-seat]")}catch(e){return null}})();if(null===t)return void(e.seat=null);e.seat=t,a()!==e.lastSession&&(e.lastProvider=null,s(),i());const r=(()=>{const e=a();if(null==e)return null;try{const t=Ct();if(void 0===t||"function"!=typeof t.directoryFor)return null;const a=t.directoryFor(e),r=a&&a.store&&"function"==typeof a.store.getSnapshot?a.store.getSnapshot():null,n=r&&r.current?r.current.provider:void 0;return"string"==typeof n&&""!==n?n:null}catch(e){return null}})();if(r===e.lastProvider&&((e,t)=>{try{return null!=e&&"function"==typeof e.hasAttribute&&!0===e.hasAttribute(t)}catch(e){return!1}})(t,d))return;e.lastProvider=r;const n=null===r?null:h(r,{forComposer:!0});if(null===n)return f(t,o),f(t,d),x(t,c),void x(t,u);const l=1!==n.spec.c;y(t,c,p(n.spec,l));const m="number"==typeof n.spec.o&&n.spec.o>0?n.spec.o:1;1===m?x(t,u):y(t,u,`${(15*m).toFixed(2)}px`),b(t,o,n.slug),b(t,d,l?"mono":"color")},n=e=>{f(e,o),f(e,d),x(e,c),x(e,u)},s=()=>{null!==e.seat&&n(e.seat);const t=q();if(null!==t&&"function"==typeof t.querySelectorAll){let e=[];try{e=Array.from(t.querySelectorAll(`[${d}]`))}catch(t){e=[]}for(const t of e)n(t)}e.seat=null,e.lastProvider=null},i=()=>{if(null!==e.unsubscribe){try{e.unsubscribe()}catch(e){}e.unsubscribe=null}const t=a();if(e.lastSession=t,null!=t)try{const a=Ct();if(void 0===a||"function"!=typeof a.directoryFor)return;const n=a.directoryFor(t);if(n&&n.store&&"function"==typeof n.store.subscribe){const t=n.store.subscribe(()=>r());if(e.unsubscribe="function"==typeof t?t:null,"function"==typeof n.load)try{const e=n.load();e&&"function"==typeof e.catch&&e.catch(()=>{})}catch(e){}}}catch(e){}};return{start:()=>{const n=q();if(null===e.styleTag&&null!==n)try{const t=n.createElement("style");t.dataset.plugin="@gehennawu/dsh-service",t.dataset.pluginCss="@gehennawu/dsh-service/model-icons.css",t.textContent=v,n.head.appendChild(t),e.styleTag=t}catch(e){}if((()=>{if(null===e.unsubscribeQuota)try{if(void 0===m||"function"!=typeof m.subscribe)return;const t=m.subscribe(()=>{e.disposed||(e.lastProvider=null,r())});e.unsubscribeQuota="function"==typeof t?t:null}catch(e){}})(),(()=>{if(null===e.unsubscribeSessions)try{const n=t.sessions;if(!n||!n.list||"function"!=typeof n.list.subscribe)return;const l=n.list.subscribe(()=>{e.disposed||a()!==e.lastSession&&(e.lastProvider=null,s(),i(),r())});e.unsubscribeSessions="function"==typeof l?l:null}catch(e){}})(),i(),r(),null===e.observer&&null!==n&&"function"==typeof MutationObserver&&!e.observerCreated){e.observerCreated=!0;try{e.observer=new MutationObserver(()=>{null===e.seat||"function"!=typeof n.contains||n.contains(e.seat)||(e.seat=null,e.lastProvider=null),r()}),e.observer.observe(n.documentElement,{childList:!0,subtree:!0})}catch(t){e.observer=null}}},stop:()=>{if(e.disposed=!0,null!==e.unsubscribe){try{e.unsubscribe()}catch(e){}e.unsubscribe=null}if(null!==e.unsubscribeSessions){try{e.unsubscribeSessions()}catch(e){}e.unsubscribeSessions=null}if(null!==e.unsubscribeQuota){try{e.unsubscribeQuota()}catch(e){}e.unsubscribeQuota=null}if(null!==e.observer){try{e.observer.disconnect()}catch(e){}e.observer=null}if(s(),null!==e.styleTag){try{e.styleTag.remove()}catch(e){}e.styleTag=null}},apply:r,clear:s}})();t.effect(()=>{let e=!1;const t=()=>{const t=ie("modelProviderIcons");t&&!e?(e=!0,Fr.start()):!t&&e&&(e=!1,Fr.stop())},a=ne.subscribe(t);return t(),()=>{a(),e&&Fr.stop()}},"dsh-service model provider icons");const Ur=function(){const e={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},a=Pr(),r=()=>{try{return"function"==typeof t.get?t.get("layout"):void 0}catch(e){return}},n=()=>{if(e.detailsOpen){const t=r();if(void 0!==t)try{t.closeDetails()}catch(e){}e.detailsOpen=!1}const t=e.drawerOpen||e.workspaceOpen||e.rightbarOpen?"none":"flex";null!==e.fab&&e.lastFabDisplay!==t&&(e.lastFabDisplay=t,e.fab.style.display=t);const a=e.drawerOpen?"block":"none";null!==e.backdrop&&e.lastBackdropDisplay!==a&&(e.lastBackdropDisplay=a,e.backdrop.style.display=a),e.debugEnabled&&null!==e.debugChip&&B()};let s=!1;const i=()=>{const t=document.querySelector("[data-dshsvc-frame]");e.drawerOpen=null!==t&&!t.hasAttribute("data-sidebar-collapsed"),e.rightbarOpen=E();const a=r(),n=void 0!==a&&"function"==typeof a.openRightbar||e.rightbarOpen;e.detailsOpen=!n&&null!==t&&!t.hasAttribute("data-details-collapsed"),e.workspaceOpen=!1;try{for(const t of document.querySelectorAll('[class*="nArs4W_panel"]')){const a="string"==typeof t.className?t.className:"";if(/nArs4W_panelHidden/.test(a))continue;const r=t.getBoundingClientRect();if(r.width>0&&r.left<window.innerWidth-2&&"hidden"!==getComputedStyle(t).visibility){e.workspaceOpen=!0;break}}}catch(t){e.workspaceOpen=!1}v()},l=e=>{const t=document.documentElement.style;(e=>"function"==typeof e.setProperty)(t)&&t.setProperty("--dshsvc-header-h",`${Math.max(0,Math.round(e))}px`)},o=()=>{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}},d=(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=d(a,t-1);if(null!==e)return e}return null},c=(e,t)=>{let a=t;for(;null!=a;){if(a===e)return!0;a=a.parentNode}return!1},u=()=>{e.repinTimer=null;const t=e.repinAnchor,a=e.repinToBottom;e.repinAnchor=null,e.repinToBottom=!1;const r=o();if(null!==r&&null!==r.scroller)try{const e=Number(r.scroller.scrollTop),n=Number(r.scroller.scrollHeight),s=Number(r.scroller.clientHeight);if(!Number.isFinite(e)||!Number.isFinite(n)||!Number.isFinite(s))return;const i=Math.max(0,n-s);if(a){if(i-e>80)return;return void(r.scroller.scrollTop=i)}if(null===t)return;if(e<t-4)return;r.scroller.scrollTop=i}catch(e){}},p=(t,a=!1)=>{m(),e.repinAnchor=t,e.repinToBottom=a;try{e.repinTimer=setTimeout(u,260)}catch(e){u()}},m=()=>{if(e.repinAnchor=null,e.repinToBottom=!1,null!==e.repinTimer){try{clearTimeout(e.repinTimer)}catch(e){}e.repinTimer=null}},g=(t,a=null)=>{if(e.active&&e.chatAvailable||(t=!1),e.immersive===t)return;const r=!t&&(()=>{const e=o();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((o()||{}).scroller?.scrollTop):null,n=null!==r&&Number.isFinite(r);e.immersive=t,t||null===a||(e.lastRevealReason=a);const s=document.documentElement;try{t?s.setAttribute("data-dshsvc-immersive",""):s.removeAttribute("data-dshsvc-immersive")}catch(e){}t?m():n&&p(r),e.debugEnabled&&B()},h=()=>{e.chatScrollLastY=null,e.immersiveAcc=0,e.immersiveLockDir=null,e.zoneArmed=null,e.arrivalDone=!1,g(!1)},v=()=>{const t=o();let a=!1;if(null!==t&&"active"===t.phase){(t=>{const a=null!==t?t.rootEl:null;if(null===a||void 0===a.children)return e.headerEl;if(null!==e.headerEl&&e.headerEl.isConnected){try{e.headerEl.setAttribute("data-dshsvc-chat-header","")}catch(e){}return e.headerEl}let r=null;for(const e of a.children||[])if("HEADER"===("string"==typeof e.tagName?e.tagName.toUpperCase():"")){r=e;break}if(null===r)for(const e of a.children||[]){const t=d(e,3);if(null!==t){r=t;break}}null!==r&&(r.setAttribute("data-dshsvc-chat-header",""),e.headerEl=r,(t=>{if("function"==typeof ResizeObserver&&(null===e.headerRO||e.headerRO.__el!==t)){if(null!==e.headerRO)try{e.headerRO.disconnect()}catch(e){}try{const a=new ResizeObserver(()=>{try{const e=t.offsetHeight;"number"==typeof e&&e>0&&l(e)}catch(e){}});a.__el=t,a.observe(t),e.headerRO=a;const r=t.offsetHeight;"number"==typeof r&&r>0&&l(r)}catch(t){e.headerRO=null}}})(r))})(t);const r=(()=>{try{return document.querySelector("[data-composer-seat]")}catch(e){return null}})();if(null!==r&&c(t.scroller,r)){let e=NaN,r=NaN,n=NaN;try{e=Number(t.scroller.scrollTop),r=Number(t.scroller.scrollHeight),n=Number(t.scroller.clientHeight)}catch(e){}a=Number.isFinite(e)&&Number.isFinite(r)&&Number.isFinite(n)&&r-n>24}}e.chatAvailable=a,a||h()},b=t=>{if(!e.active||!e.chatAvailable)return;let a=NaN,r=NaN,n=NaN;try{a=Number(t.scrollTop),r=Number(t.scrollHeight),n=Number(t.clientHeight)}catch(e){return}if(!Number.isFinite(a)||!Number.isFinite(r)||!Number.isFinite(n))return;const s=null===e.chatScrollLastY?a:e.chatScrollLastY,i=a-s;if(e.chatScrollLastY=a,!(()=>{const t=Date.now();return e.gestureAt>0&&t-e.gestureAt<=800})()||Math.abs(i)>200)return void(e.immersiveAcc=0);if(e.immersive&&i<0&&s+n>=r-1)return e.immersiveAcc=0,e.immersiveLockDir=-1,void g(!1,"gesture");const l=a+n>=r-80;if(null===e.zoneArmed&&(e.zoneArmed=l),!1===e.zoneArmed&&l&&!e.arrivalDone&&e.immersive&&i>0)return e.arrivalDone=!0,e.immersiveAcc=0,e.immersiveLockDir=1,void g(!1,"arrival");const o=Math.sign(i);if(0!==o&&null!==e.immersiveLockDir){if(o!==-e.immersiveLockDir)return void(e.immersiveAcc=0);e.immersiveLockDir=null}(e.immersiveAcc>0&&i<0||e.immersiveAcc<0&&i>0)&&(e.immersiveAcc=0),e.immersiveAcc+=i,e.immersiveAcc>240?e.immersiveAcc=240:e.immersiveAcc<-240&&(e.immersiveAcc=-240),e.immersiveAcc>=64?(e.immersiveAcc=0,e.immersiveLockDir=1,g(!0)):e.immersiveAcc<=-24&&(e.immersiveAcc=0,e.immersiveLockDir=-1,g(!1,"gesture"))},f=()=>{e.gestureAt=Date.now(),e.immersiveLockDir=null,e.zoneArmed=null,e.arrivalDone=!1},y=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}},x=()=>{try{const e=document.querySelector("[data-dshsvc-frame]");return null===e||e.hasAttribute("data-sidebar-collapsed")}catch(e){return!0}},k=()=>{try{return"function"==typeof t.get?t.get("sidebarRight"):void 0}catch(e){return}},w=()=>{try{if(null!==document.querySelector("[data-sidebar-right-expand], [data-sidebar-right-toggle], [data-sidebar-right-panel]"))return!0}catch(e){}const e=k();return void 0!==e&&"function"==typeof e.toggleExpanded&&void 0!==e.active()},E=()=>{if(!w())return!1;const e=k();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},S=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},z="open",q="left-close",C="right-close",A="left-open",T="right-open",M="multi-touch",I="modal",H="h-scroll",O="no-point",R="right-absent",L="toggle-unavailable",j="no-tracker",N={left:{opened:()=>!x(),toggle:()=>{const e=r();if(void 0===e)return!1;try{return e.toggleSidebar(),!0}catch(e){return!1}}},right:{opened:()=>E(),toggle:e=>(e=>{try{const t=e?document.querySelector("[data-sidebar-right-expand]"):document.querySelector("[data-sidebar-right-open] [data-sidebar-right-toggle]")||(E()?document.querySelector("[data-sidebar-right-toggle]"):null);if(null!==t&&"function"==typeof t.click)return t.click(),!0}catch(e){}const t=k();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=r();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)}},D=(t,a,r)=>{if(null===t||t.fired||null===a)return!1;const n=a.x-t.startX,s=a.y-t.startY;if(Math.abs(s)>Math.abs(n)&&Math.abs(s)>12)return e.edgeGesture=null,!1;let i=null,l=!1,o=null;if(t.kind===z){if(n>=r)i="left",l=!0,o=A;else if(n<=-r&&(i="right",l=!0,o=T,!w()))return null!==e.edgeTelemetry&&(e.edgeTelemetry.reason=R),!0}else t.kind===q?n<=-r&&(i="left",o=q):t.kind===C&&n>=r&&(i="right",o=C);if(null===i)return!1;const d=((e,t)=>{const a=N[e];return void 0!==a&&a.opened()!==t&&!0===a.toggle(t)})(i,l);return t.fired=!0,null!==e.edgeTelemetry&&(e.edgeTelemetry.fired=d,e.edgeTelemetry.kind=o,d||o!==T||(e.edgeTelemetry.reason=L)),!0},$=[["scroll",t=>{if(!e.active)return;let a=t&&t.target;for(let e=0;null!=a&&e<6;e+=1){if("function"==typeof a.hasAttribute)try{if(a.hasAttribute("data-conversation-scroll"))return void b(a)}catch(e){}a=a.parentNode}},{capture:!0,passive:!0}],["touchstart",f,{capture:!0,passive:!0}],["touchmove",f,{capture:!0,passive:!0}],["touchstart",t=>{if(!e.active)return;e.edgeGesture=null;const a=e.debugEnabled?{start:"—",kind:"—",moves:0,last:"—",cancel:"—",fired:!1}:null;e.edgeTelemetry=a;try{if(null!=t&&void 0!==t.touches&&null!==t.touches&&t.touches.length>1)return void(null!==a&&(a.kind=M))}catch(e){}if((()=>{try{return null!==document.querySelector('[role="dialog"][aria-modal="true"]')}catch(e){return!1}})())return void(null!==a&&(a.kind=I));const r=y(t);if(null===r)return void(null!==a&&(a.kind=O));null!==a&&(a.start=`${Math.round(r.x)},${Math.round(r.y)}`);const n=!x(),s=w()&&E();if(n||s)return S(t?.target)?void(null!==a&&(a.kind=H)):(e.edgeGesture={kind:n?q:C,edge:null,startX:r.x,startY:r.y,at:Date.now(),fired:!1},void(null!==a&&(a.kind=n?q:C)));if(S(t?.target))return void(null!==a&&(a.kind=H));const i=Number(window.innerWidth);let l=null;r.x<=32?l="left":Number.isFinite(i)&&r.x>=i-32&&(l="right"),e.edgeGesture={kind:z,edge:l,startX:r.x,startY:r.y,at:Date.now(),fired:!1},null!==a&&(a.kind="left"===l?A:"right"===l?T:z),e.debugEnabled&&B()},{capture:!0,passive:!0}],["touchmove",t=>{const a=e.edgeGesture;if(null===a||a.fired)return;try{if(null!=t&&void 0!==t.touches&&null!==t.touches&&t.touches.length>1)return e.edgeGesture=null,null!==e.edgeTelemetry&&(e.edgeTelemetry.reason=M),void(e.debugEnabled&&B())}catch(e){}const r=y(t),n=e.edgeTelemetry;null!==n&&null!==r&&(n.moves+=1,n.last=`${Math.round(r.x-a.startX)},${Math.round(r.y-a.startY)}`);const s=D(a,r,56);e.debugEnabled&&s&&B()},{capture:!0,passive:!0}],["touchend",t=>{const a=e.edgeGesture;if(null===a||a.fired)return void(e.edgeGesture=null);const r="open"===a.kind&&null!==a.edge,n=r?y(t):null;r&&null!==n&&Date.now()-a.at<=260&&D(a,n,32),e.edgeGesture=null,e.debugEnabled&&a.fired&&B()},{capture:!0,passive:!0}],["touchcancel",t=>{const a=e.edgeGesture,r=e.edgeTelemetry;if(null===a)return null!==r&&(r.cancel=j),void(e.debugEnabled&&B());const n="open"===a.kind&&null!==a.edge,s=y(t);null!==r&&null!==s&&(r.cancel=`${Math.round(s.x-a.startX)},${Math.round(s.y-a.startY)}`),n&&D(a,s,6),e.edgeGesture=null,e.debugEnabled&&B()},{capture:!0,passive:!0}],["wheel",f,{capture:!0,passive:!0}],["focusin",t=>{if(!e.active)return;let a=null;try{a=document.querySelector("[data-composer-seat]")}catch(e){return}null!==a&&c(a,t?.target)&&(e.immersiveAcc=0,e.immersive&&g(!1,"focus"))},{capture:!0}],["click",t=>{e.active&&e.chatAvailable&&e.immersive&&a.isToBottomButton(t&&t.target)&&(e.immersiveAcc=0,e.immersiveLockDir=1,g(!1,"button"),p(null,!0))},{capture:!0}]];let W=!1;const B=()=>{const t=e.debugChip;if(null===t)return;const a=e=>ee(e?"mobile.debug.stateOn":"mobile.debug.stateOff"),r=[[`${ee("mobile.debug.viewport")} ${window.innerWidth}×${window.innerHeight}`,`≤1023 ${a(e.active)}`,`${ee("mobile.debug.drawer")} ${a(e.drawerOpen)}`,`${ee("mobile.debug.details")} ${a(e.detailsOpen)}`,`${ee("mobile.debug.rightbar")} ${a(e.rightbarOpen)}`,`${ee("mobile.debug.immersive")} ${a(e.immersive)}`+(null===e.lastRevealReason?"":`(${n=e.lastRevealReason,"gesture"===n?ee("mobile.debug.immersive.reason.gesture"):"arrival"===n?ee("mobile.debug.immersive.reason.arrival"):"focus"===n?ee("mobile.debug.immersive.reason.focus"):"button"===n?ee("mobile.debug.immersive.reason.button"):n})`),`${ee("mobile.debug.errors")} ${e.errorCount}`].join(" · ")];var n;const s=e=>e===A?ee("mobile.debug.edge.leftOpen"):e===T?ee("mobile.debug.edge.rightOpen"):e===q?ee("mobile.debug.edge.leftClose"):e===C?ee("mobile.debug.edge.rightClose"):e===z?ee("mobile.debug.edge.open"):e===M?ee("mobile.debug.edge.reason.multiTouch"):e===I?ee("mobile.debug.edge.reason.modal"):e===H?ee("mobile.debug.edge.reason.hScroll"):e===O?ee("mobile.debug.edge.reason.noPoint"):e===R?ee("mobile.debug.edge.reason.absentRight"):e===L?ee("mobile.debug.edge.reason.badButton"):e===j?ee("mobile.debug.edge.reason.noTracker"):e,i=e.edgeTelemetry;if(null!==i&&void 0!==i.start){let e=`${ee("mobile.debug.edge")} ${ee("mobile.debug.edge.fieldStart")}(${i.start}) ${s(i.kind)} ${ee("mobile.debug.edge.fieldMoves")}${i.moves} ${ee("mobile.debug.edge.fieldLast")}(${i.last}) ${ee("mobile.debug.edge.fieldCancel")}(${s(i.cancel)})`;void 0!==i.reason&&(e+=` ${ee("mobile.debug.edge.fieldReason")}(${s(i.reason)})`),i.fired&&(e+=" ✓"),r.push(e)}t.textContent=r.join("\n")},_=()=>{if(null!==e.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;e.backdrop=document.createElement("div"),e.backdrop.setAttribute("data-dshsvc-backdrop",""),e.backdrop.setAttribute("aria-hidden","true"),Object.assign(e.backdrop.style,{position:"fixed",inset:"0",zIndex:"31",display:"none",background:"rgba(0,0,0,.42)",backdropFilter:"blur(1px)"}),e.backdrop.addEventListener("click",()=>{const t=r();void 0!==t&&e.drawerOpen&&t.toggleSidebar()}),document.body.appendChild(e.backdrop),e.fab=document.createElement("button"),e.fab.type="button",e.fab.setAttribute("data-dshsvc-fab",""),e.fab.setAttribute("aria-label",ee("mobile.fab.label")),Object.assign(e.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"}),e.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>',e.fab.addEventListener("click",()=>{const e=r();void 0!==e&&e.toggleSidebar()}),document.body.appendChild(e.fab),i();try{e.workspaceObserver=new MutationObserver(()=>{(()=>{if(!s&&e.active){s=!0,setTimeout(()=>{if(s=!1,e.active)try{i(),n()}catch(e){}},50);for(const t of[400,900])setTimeout(()=>{if(e.active)try{i(),n()}catch(e){}},t)}})()}),e.workspaceObserver.observe(document.body,{attributes:!0,childList:!0,subtree:!0})}catch(t){e.workspaceObserver=null}e.frameObserver=new MutationObserver(()=>{i(),n()});const t=document.querySelector("[data-dshsvc-frame]");return null!==t&&e.frameObserver.observe(t,{attributes:!0,attributeFilter:["data-sidebar-collapsed","data-details-collapsed","data-rightbar-collapsed"]}),null!==e.mountObserver&&(e.mountObserver.disconnect(),e.mountObserver=null),n(),!0},P=()=>{if(!e.active)return;if(e.active=!1,e.drawerOpen=!1,e.detailsOpen=!1,e.rightbarOpen=!1,e.edgeGesture=null,e.edgeTelemetry=null,(()=>{if(W){W=!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!==e.headerRO){try{e.headerRO.disconnect()}catch(e){}e.headerRO=null}e.headerEl=null,null!==e.frameObserver&&(e.frameObserver.disconnect(),e.frameObserver=null),null!==e.workspaceObserver&&(e.workspaceObserver.disconnect(),e.workspaceObserver=null),null!==e.mountObserver&&(e.mountObserver.disconnect(),e.mountObserver=null),null!==e.errorHandler&&window.removeEventListener("error",e.errorHandler),null!==e.resizeHandler&&window.removeEventListener("resize",e.resizeHandler),e.errorHandler=null,e.resizeHandler=null;for(const t of[e.styleTag,e.backdrop,e.fab,e.debugChip])null!==t&&t.isConnected&&t.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 t=(()=>{try{return document.documentElement.style}catch(e){return null}})();if(null!==t)try{t.removeProperty("--dshsvc-header-h")}catch(e){t["--dshsvc-header-h"]=""}e.styleTag=null,e.backdrop=null,e.fab=null,m(),e.debugChip=null,e.debugEnabled=!1,h()},V=()=>{ie("mobileAdaptation")&&e.mmqMatches()?(()=>{if(e.active)return;if(void 0===r())return;e.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")}})(),e.styleTag=document.createElement("style"),e.styleTag.dataset.plugin="@gehennawu/dsh-service",e.styleTag.dataset.pluginCss="@gehennawu/dsh-service/mobile.css",e.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/* 设置/任意模态打开时藏抽屉钮:抽屉列自带 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)原样保留。 */\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}\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}\nhtml[data-dshsvc-mobile] [class*="bOPqQW_label"] {\n overflow: hidden !important;\n text-overflow: ellipsis !important;\n white-space: nowrap !important;\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-left: 46px !important; }\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(e.styleTag),_()||(()=>{if(null===e.mountObserver&&"function"==typeof MutationObserver)try{e.mountObserver=new MutationObserver(()=>{_()}),e.mountObserver.observe(document.documentElement,{childList:!0,subtree:!0})}catch(t){e.mountObserver=null}})(),(()=>{if(!W){W=!0;for(const[e,t,a]of $)try{document.documentElement.addEventListener(e,t,a)}catch(e){}}})(),v();let t=!1;try{t=new URLSearchParams(window.location.search).has("dshsvc-mobile-debug")}catch(e){}t&&(e.debugEnabled=!0,e.errorHandler=()=>{e.errorCount+=1,B()},window.addEventListener("error",e.errorHandler),e.resizeHandler=()=>B(),window.addEventListener("resize",e.resizeHandler),e.debugChip=document.createElement("div"),e.debugChip.setAttribute("data-dshsvc-debug",""),Object.assign(e.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"}),e.debugChip.title=ee("mobile.debug.title"),document.body.appendChild(e.debugChip),B()),n()})():P()};try{e.mq=window.matchMedia("(max-width: 1023px)")}catch(t){e.mq=null}return e.mmqMatches=()=>{try{return null!==e.mq&&!0===e.mq.matches}catch(e){return!1}},null!==e.mq&&(e.mqHandler=()=>V(),"function"==typeof e.mq.addEventListener?e.mq.addEventListener("change",e.mqHandler):"function"==typeof e.mq.addListener&&e.mq.addListener(e.mqHandler)),{evaluate:V,dispose:()=>{P(),null!==e.mq&&null!==e.mqHandler&&("function"==typeof e.mq.removeEventListener?e.mq.removeEventListener("change",e.mqHandler):"function"==typeof e.mq.removeListener&&e.mq.removeListener("change",e.mqHandler)),e.mqHandler=null}}}();t.effect(()=>{const e=ne.subscribe(()=>Ur.evaluate());return Ur.evaluate(),()=>{e(),Ur.dispose()}},"dsh-service mobile adaptation")},a.subagentTurnTail={aggregateSubagentRoutes:Y,selectSubagentModelsTurnTail:G,subagentRouteListText:J},a.fileEditor={id:k,extensions:w,selectViewerItem:R,editorExtensionMatches:M,attr:E,menuItemAttr:S},a.modelProviderIcons={resolve:h,dataUri:p,attr:o,seatAttr:d,sizeVar:u,basePx:15,css:v,slugs:Object.keys(s),providerCount:Object.keys(i).length,isCliproxyAdapted:g,quotaStore:m},t}});
|