@gehennawu/dsh-service 1.6.3 → 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 +35 -9
- package/README.md +36 -10
- package/backup-integrity.js +1 -1
- package/client.js +1 -1
- package/index.js +217 -16
- package/package.json +2 -2
- package/quota-adapters.js +214 -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=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)},g=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},h=new Set;let b={isAlive:()=>!1,dispose:()=>{}};const v=(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},f={"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.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":"通知","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.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.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.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":"操作失败,请重试。"},y={"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.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","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.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.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.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."},k="%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",x="%3C/svg%3E",w=e=>'-webkit-mask:url("data:image/svg+xml,'+k+e+x+'") center/contain no-repeat;mask:url("data:image/svg+xml,'+k+e+x+'") center/contain no-repeat',E={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"}]]},S=e=>e.map(([e,t])=>"%3C"+e+Object.entries(t).map(([e,t])=>` ${e}=%27${t}%27`).join("")+"/%3E").join(""),q=S(E.service),C=S(E.quota),T=S(E.restart),A=S(E.sessions);function I({name:e}){const t=E[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))))}function R(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 z(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 M(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 O(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:k,useRef:x}=r,E=(e,a)=>Promise.resolve(t.connection.rpc.call("/dsh-service",e,a)).then(O),S=new Map,j=new Map,N=new Map,H=(e,t=!1)=>{if("string"!=typeof e||""===e)return Promise.resolve(new Map);const a=Date.now();if(!t&&a-(j.get(e)??0)<1e4)return Promise.resolve((e=>{const t=S.get(e);return void 0===t?new Map:t.byTurn})(e));let r=N.get(e);return void 0===r&&(r=E("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 S.set(e,{byTurn:r,records:n}),j.set(e,Date.now()),r}).catch(()=>(j.set(e,Date.now()),null)),N.set(e,r),r.finally(()=>N.delete(e)).catch(()=>{})),r};function D(e){const t=V(),[n,s]=a("");return k(()=>{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 H(n).then(i=>{if(a)return;const o=S.get(n),l=(null===i?void 0===o?new Map:o.byTurn:i).get(r),d=z(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")}${M(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 W(e){const n=V(),[s,i]=a("");return k(()=>{let a=!1;const r="string"==typeof e.sessionId?e.sessionId:void 0;if(void 0===r)return void i("");const s=()=>{const e=S.get(r),t=z(void 0===e?[]:e.records);i(0===t.length?"":`${n("subagent.turnTail.label")}${M(t)}`)},o=()=>H(r).then(e=>!a&&(s(),null!==e)).catch(()=>(a||i(""),!1));o();const l=()=>{a||(H(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 $;"undefined"!=typeof document&&document.head&&($=document.createElement("style"),$.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{"+w(q)+"}","[data-dsh-service-quota-nav]::before{"+w(C)+"}","[data-dsh-service-sessions-nav]::before{"+w(A)+"}","[data-dsh-service-restart-nav]::before{"+w(T)+"}","@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($)),t.effect(()=>()=>{$&&$.remove()},"dsh-service theme styles"),t.effect(()=>t.locale.register(n,{zh:f,en:y}),"dsh-service dictionaries");const B=t.locale.bind(n),L=()=>"zh"===t.locale?.getSnapshot?.()?.active?"zh":"en",P=(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??""},F={healthDiagnostics:!0,modelUsage:!0,quotaLookup:!0,backupMaintenance:!0,taskNotifications:!0,healthz:!0,skillManager:!0,subagentRoute:!0,subagentModelsDock:!0,mobileAdaptation:!1,sessionManager:!0,fileEditor:!0},_=t.settingsScope.bind({namespace:n}),U=()=>_.getSnapshot(),K=e=>!1!==Object.assign({},F,U().value||{})[e],G=()=>{const[e,t]=r.useState(U());return r.useEffect(()=>_.subscribe(()=>t(U())),[]),{snapshot:e,value:Object.assign({},F,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)}}};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:()=>B("nav.label")},{attr:"data-dsh-service-quota-nav",label:()=>B("tabs.quota")},{attr:"data-dsh-service-restart-nav",label:()=>B("nav.restart")},{attr:"data-dsh-service-sessions-nav",label:()=>B("tabs.sessions")}]),"dsh-service settings nav icons");const V=()=>{const[,e]=a(t.locale.getSnapshot());return k(()=>t.locale.subscribe(()=>e(t.locale.getSnapshot())),[]),B},Y={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"},J=e=>"primary"===e?{...Y,background:"var(--dsh-svc-brand)",borderColor:"var(--dsh-svc-brand)",color:"var(--dsh-svc-brand-text)"}:"danger"===e?{...Y,background:"var(--dsh-svc-danger)",borderColor:"var(--dsh-svc-danger)",color:"var(--dsh-svc-brand-text)"}:"dangerGhost"===e?{...Y,background:"transparent",color:"var(--dsh-svc-danger)",borderColor:"var(--dsh-svc-danger)"}:"brandGhost"===e?{...Y,background:"transparent",color:"var(--dsh-svc-brand)",borderColor:"var(--dsh-svc-brand)"}:"ghost"===e?{...Y,background:"transparent",color:"var(--dsh-svc-text)",borderColor:"var(--dsh-svc-border-strong)"}:"neutral"===e?{...Y,background:"var(--dsh-svc-page-bg)",color:"var(--dsh-svc-text)",borderColor:"var(--dsh-svc-border-strong)"}:{...Y,background:"var(--dsh-svc-content-bg)",color:"var(--dsh-svc-text)",borderColor:"var(--dsh-svc-border-strong)"},Q=e=>Object.assign({},Y,{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),X=(e,t)=>Object.assign({display:"inline-flex",alignItems:"center",flex:"none",fontSize:"10px",lineHeight:"16px",padding:"1px 6px",borderRadius: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),Z=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),ee=["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"},re=["sessions","skills","subagent","backup","restart"],ne={sessions:"tabs.sessions",skills:"tabs.skills",subagent:"tabs.subagent",backup:"tabs.backup",restart:"tabs.restart"},se={sessions:"sessionManager",skills:"skillManager",subagent:"subagentRoute",backup:"backupMaintenance"},ie=e=>re.filter(t=>void 0===se[t]||!1!==e[se[t]]).map(e=>({id:e,labelKey:ne[e]})),oe=(e,t)=>{const a=ie(t);return 0===a.length?null:a.some(t=>t.id===e)?e:a[0].id},le=[{id:"features",labelKey:"tabs.features"},{id:"notifications",labelKey:"tabs.notifications"}],de={quota:"page.quota.desc",diagnostics:"page.diagnostics.desc",configuration:"page.configuration.desc"};function ce({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 ue({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(I,{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",borderRadius:"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",borderRadius:"999px",background:"var(--dsw-alias-state-warn-primary)",color:"var(--dsh-svc-brand-text)",fontWeight:700}},e.badge.text):null)}))}let pe=!1,me=!0,ge=!0,he=!0;try{pe="true"===localStorage.getItem("dsh-service-notify")}catch(e){}try{me="false"!==localStorage.getItem("dsh-service-notify-done")}catch(e){}try{ge="false"!==localStorage.getItem("dsh-service-notify-input")}catch(e){}try{he="false"!==localStorage.getItem("dsh-service-notify-bell")}catch(e){}const be=new Set,ve=new Set,fe=(e,t)=>{try{localStorage.setItem(e,t?"true":"false")}catch(e){}},ye=()=>{for(const e of be)e()},ke=e=>{he=!0===e,fe("dsh-service-notify-bell",he),(()=>{for(const e of ve)e()})()},xe=()=>{const[,e]=a(0),[t,n]=a(pe),[s,i]=a(me),[o,l]=a(ge),[d,c]=a(he);return r.useEffect(()=>{const t=()=>{n(pe),i(me),l(ge),c(he),e(e=>e+1)};return be.add(t),ve.add(t),()=>{be.delete(t),ve.delete(t)}},[]),{enabled:t,done:s,input:o,bell:d,setEnabled:e=>{return pe=t=e,fe("dsh-service-notify",t),void ye();var t},setDone:e=>{return me=t=e,fe("dsh-service-notify-done",t),void ye();var t},setInput:e=>{return ge=t=e,fe("dsh-service-notify-input",t),void ye();var t},setBell:ke}},we=({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||K(o))&&(c=t.slots.register({name:"settings.section",id:n,order:s,label:()=>B(i)},l))},m=t=>{d=!0===t;try{localStorage.setItem(e,d?"true":"false")}catch(e){}p();for(const e of u)e()};return{sync:p,setEnabled:m,useEnabled:()=>{const[e,t]=a(d);return k(()=>{const e=()=>t(d);return u.add(e),t(d),()=>u.delete(e)},[]),[e,m]},disposeEntry:()=>{c&&(c(),c=null)}}},Ee=we({storageKey:"dsh-service-shortcut-restart",legacyStorageKey:"dsh-service-restart-nav",sectionId:"dsh-service-restart",order:499,labelKey:"nav.restart",renderContent:()=>r.createElement(St,null)}),Se=we({storageKey:"dsh-service-shortcut-quota",legacyStorageKey:"dsh-service-quota-nav",sectionId:"dsh-service-quota",order:498,labelKey:"tabs.quota",feature:"quotaLookup",renderContent:()=>r.createElement(wa,null)}),qe=we({storageKey:"dsh-service-shortcut-sessions",legacyStorageKey:"dsh-service-sessions-nav",sectionId:"dsh-service-sessions",order:495,labelKey:"tabs.sessions",feature:"sessionManager",renderContent:()=>r.createElement(Ma,null)});let Ce=null,Te=null,Ae=null,Ie=null,Re="",ze=!1,Me=null,Oe=null,je=!1;const Ne="dsh-service-skills-batch-pending",He=new Set,De=()=>{for(const e of He)e()},We=e=>{try{e?localStorage.setItem(Ne,"true"):localStorage.removeItem(Ne)}catch(e){}},$e=e=>{We("planned"===e||"running"===e)},Be=()=>{null!==Me&&(clearInterval(Me),Me=null)},Le=(e=!0)=>{if(null!==Ce&&"running"===Ce.phase&&K("skillManager")&&null===Me){const t=async()=>{try{const e=await E("skills-batch-status",{});if(!e.ok)return;const t=null!==Ce?Ce.phase:null;Ce=e.value,$e(e.value.phase),"running"===t&&"running"!==e.value.phase&&(Be(),ze=!0),De()}catch(e){}};e&&t(),Me=setInterval(()=>{t()},2e3)}},Pe=async()=>{if(null!==Ae)return Ae;try{const e=await E("skills-models",{});if(!e.ok)return Ae=[],Ae;Ae=e.value.models??[],null===Ie&&(Ie=fa(Ae,e.value.current))}catch(e){Ae=[]}return Ae},Fe=()=>je?Promise.resolve(Ce):(null!==Oe||(Oe=(async()=>{try{const e=await E("skills-batch-status",{});e.ok&&(je=!0,$e(e.value.phase),"idle"!==e.value.phase&&(Ce=e.value,Le(!1),De()))}catch(e){}return Ce})().finally(()=>{Oe=null})),Oe),_e=()=>{const[,e]=a(0);return k(()=>{const t=()=>e(e=>e+1);return He.add(t),()=>He.delete(t)},[]),{batch:Ce,plan:Te,models:Ae,modelItem:Ie,error:Re}};t.effect(()=>{const e=_.subscribe(()=>{K("skillManager")||Be()});return()=>{e(),Be()}},"dsh-service skills batch polling lifecycle"),(()=>{try{return"true"===localStorage.getItem(Ne)}catch(e){return!1}})()&&Fe();const Ue={approval:"notification.kind.approval","plan-review":"notification.kind.plan-review",question:"notification.kind.question"},Ke=(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){}},Ge=()=>{try{if("function"==typeof t.get)return t.get("modelDirectories")}catch(e){}},Ve={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(Ve.runningSessionIds=new Set(Object.entries(r.byId).filter(([,e])=>!0===e.running).map(([e])=>e)),Ve.anyRunning=Ve.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&&K("taskNotifications")&&pe&&me&&Ke(B("notification.doneTitle"),B("notification.doneBody",{title:a.displayTitle||t})),!n.pending&&r.pending&&K("taskNotifications")&&pe&&ge)){const e=Ue[a.pendingInteraction],r=e?B(e):String(a.pendingInteraction);Ke(B("notification.inputTitle"),B("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);Ve.anyRunning&&Bt()}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,Ve.anyRunning=!1,Ve.runningSessionIds=new Set},o=()=>{K("taskNotifications")||K("quotaLookup")?null===r&&(r=t.sessions.list.subscribe(()=>s()),n=t.on("connection/reset",()=>{e.clear(),a=!1}),s()):i()};o();const l=_.subscribe(o);t.effect(()=>()=>{l(),i()},"dsh-service: shared session observation")}const Ye=new Set;let Je={status:"idle",elapsedMs:0},Qe=0;const Xe=e=>{Je=e;for(const t of Ye)t(e)},Ze=new Set;let et={stage:0,activity:null,busy:!1,error:null};const tt=e=>{et=e;for(const t of Ze)t(e)},at=()=>{const[e,t]=a(et);return k(()=>(Ze.add(t),t(et),()=>Ze.delete(t)),[]),e},rt=new Set;let nt=null;const st=()=>{const[e,t]=a(nt);return k(()=>(rt.add(t),t(nt),()=>rt.delete(t)),[]),e},it=new Set;let ot=null;let lt=null;const dt=()=>(null===lt&&(lt=E("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=>{nt=e;for(const t of rt)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!==ot&&(e=>{ot=e;for(const t of it)t(e)})(a)})(e.value)),e)).catch(()=>(lt=null,null))),lt);let ct=!1;const ut=async()=>{tt({...et,busy:!0,error:null});try{const e=await E("activity",{});if(e&&!1===e.ok)throw console.error("dsh-service: activity check failed",e.error),new Error(B("error.activity"));const t=e&&e.value?e.value:{hasActive:!1,items:[]};tt({...et,activity:t,stage:t.hasActive?3:1,busy:!1,error:null})}catch(e){tt({...et,error:e&&e.message?String(e.message):String(e),stage:0,busy:!1})}},pt=async e=>{tt({...et,busy:!0,error:null});try{const t=await E("web",{force:!0===e});if(t&&!1===t.ok){if("active-work"===t.error&&t.value)return void tt({...et,activity:t.value,stage:3,busy:!1,error:null});throw console.error("dsh-service: restart failed",t.error),new Error(B("error.restart"))}const a=t&&t.value?t.value.instanceId:void 0;if("string"!=typeof a||0===a.length)throw new Error(B("error.instance"));tt({...et,stage:2,busy:!1,error:null}),mt(a).catch(e=>console.error("dsh-service: recovery failed",e))}catch(e){tt({...et,error:e&&e.message?String(e.message):String(e),stage:0,busy:!1})}},mt=async e=>{const a=++Qe;let r=0,n=1e3;for(Xe({status:"waiting",elapsedMs:r});r<6e4&&a===Qe;){const s=Math.min(n,6e4-r);try{await t.timer.timeout(s)}catch(e){return}if(a!==Qe)return;r+=s,Xe({status:"waiting",elapsedMs:r});try{const t=await E("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 Xe({status:"timeout",elapsedMs:r});n=Math.min(2*n,1e4)}};t.effect(()=>()=>{Qe+=1,Ye.clear(),Ze.clear(),rt.clear()},"dsh-service recovery");const gt="@deepseek-ai/dsh",ht=(e,t)=>"string"==typeof t&&0!==t.length&&/^[0-9A-Za-z.+_-]+$/.test(t)?`${e}${t}`:null,bt=(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)},vt=(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||"—"),bt(t,"npmjs",ht(`https://www.npmjs.com/package/${gt}/v/`,a)),bt(t,"npmmirror",ht(`https://www.npmmirror.com/package/${gt}/home?version=`,a))),ft="0.1.6-alpha.2",yt=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,xt=(e,t)=>{const a=yt(e),r=yt(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 wt(){const e=(()=>{const[e,t]=a(Je);return k(()=>(Ye.add(t),t(Je),()=>Ye.delete(t)),[]),e})(),t=V();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({},Q(),{marginTop:"16px",padding:"7px 16px"}),onClick:()=>window.location.reload()},t("recovery.manual")):null))}function Et(){return r.createElement(wt,null)}function St({showNavToggle:e}){const t=V(),a=at(),n=st();k(()=>{dt()},[]);const[s,i]=Ee.useEnabled(),o=J("danger"),l=J("dangerGhost"),d=J("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=Z(),m={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:m},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 g={agent:t("activity.agent"),job:t("activity.job"),terminal:t("activity.terminal")},h=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({},c,{color:"var(--dsw-alias-state-warn-primary)",margin:"6px 0 0"})},t("restart.manualWarn")):null,v=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:h.length})),r.createElement("ul",{style:{margin:0,paddingLeft:"20px",fontSize:"12px",lineHeight:1.7}},h.map(e=>r.createElement("li",{key:e.type+":"+e.id},t("activity.item",{type:g[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:m},t("restart.title")),r.createElement("div",{"data-testid":"restart-region",style:p},r.createElement("p",{style:{margin:0,fontSize:"13px"}},t("restart.description")),b,v,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:ut,disabled:a.busy},t(a.busy?"update.checking":"restart.button")):1===a.stage?[r.createElement("button",{key:"confirm",style:o,"data-variant":"danger",onClick:()=>pt(!1),disabled:a.busy},t(a.busy?"restart.sending":"restart.confirm")),r.createElement("button",{key:"cancel",style:d,onClick:()=>tt({...et,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:()=>pt(!0),disabled:a.busy},t(a.busy?"restart.sending":"restart.force")),r.createElement("button",{key:"cancel",style:d,onClick:()=>tt({...et,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",borderRadius:"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",borderRadius:"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){}}},Ct="dsh-service-quota-poll",Tt=[0,1,2,5,10],At=["opencode-go","zai-coding-cn","openrouter","kimi","siliconflow","deepseek","stepfun","stepfun-step-plan","xiaomi-token-plan-cn","cliproxy"];function It(){try{const e=Number.parseInt(localStorage.getItem(Ct),10);return Tt.includes(e)?e:0}catch(e){return 0}}const Rt="dsh-service-quota-card-order";let zt=null,Mt=null;function Ot(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 jt(e={providers:[]}){const a=Ot(e);return null!==zt?(r=Mt,n=a,Mt="all"===r?.scope||"all"===n?.scope?{scope:"all"}:Ot({providers:[...r?.providers??[],...n?.providers??[]]}),zt):(zt=Promise.resolve().then(async()=>{try{const e=await E("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!==Wt.refs?null!==Ht.dispose||Ht.pulls>=Dt.length||(Ht.dispose=t.timer.timeout(()=>{Ht.dispose=null,jt(a)},Dt[Ht.pulls]),Ht.pulls+=1):Ht.pulls=0}(e.value,a),!0}catch(e){}return!1}).finally(()=>{zt=null;const e=Mt;Mt=null,null!==e&&jt(e)}),zt);var r,n}function Nt(){const e=Ge();if(void 0===e||"function"!=typeof e.directoryFor)return[];const t=[];for(const a of Ve.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 Ht={pulls:0,dispose:null},Dt=[800,2400,4800,8e3,12e3],Wt={refs:0,allRefs:0,nextDispose:null,running:!1,onVisible:void 0},$t=()=>"undefined"!=typeof document&&"hidden"===document.visibilityState;function Bt(){if(!K("quotaLookup")||0===Wt.refs||null!==Wt.nextDispose||It()<=0)return;const e=It();Wt.nextDispose=t.timer.timeout(()=>{Wt.nextDispose=null,Lt()},6e4*e)}function Lt(){if(!K("quotaLookup")||0===Wt.refs||Wt.running)return;const e=Wt.allRefs>0?{scope:"all"}:{providers:Nt()};"all"!==e.scope&&0===e.providers.length||(Wt.running=!0,Promise.resolve(jt(e)).catch(()=>!1).then(()=>{Wt.running=!1,Bt()}))}function Pt(e={}){K("quotaLookup")&&(Wt.refs+=1,!0===e.all&&(Wt.allRefs+=1),!0===e.all?jt({scope:"all"}):Lt(),Bt(),1===Wt.refs&&void 0===Wt.onVisible&&"undefined"!=typeof document&&(Wt.onVisible=()=>{$t()||Lt()},document.addEventListener("visibilitychange",Wt.onVisible)))}function Ft(e={}){(K("quotaLookup")||0!==Wt.refs)&&(Wt.refs=Math.max(0,Wt.refs-1),!0===e.all&&(Wt.allRefs=Math.max(0,Wt.allRefs-1)),Wt.refs>0||(null!==Wt.nextDispose&&(Wt.nextDispose(),Wt.nextDispose=null),null!==Ht.dispose&&(Ht.dispose(),Ht.dispose=null),void 0!==Wt.onVisible&&"undefined"!=typeof document&&(document.removeEventListener("visibilitychange",Wt.onVisible),Wt.onVisible=void 0)))}function _t(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 Ut(e){try{return new Date(e).toLocaleTimeString([],{hour:"2-digit",minute:"2-digit",hourCycle:"h23"})}catch(e){return""}}function Kt(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!==Wt.nextDispose&&Wt.nextDispose(),null!==Ht.dispose&&Ht.dispose(),void 0!==Wt.onVisible&&"undefined"!=typeof document&&document.removeEventListener("visibilitychange",Wt.onVisible)},"dsh-service quota poller disposal");const Gt=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"}}),Vt="#f0952f",Yt="var(--dsw-alias-state-success-primary)",Jt=3e4;function Qt(e){const t=new Date(e+288e5),a=e=>String(e).padStart(2,"0");return`${a(t.getUTCHours())}:${a(t.getUTCMinutes())}`}function Xt(e,t){return!1===Array.isArray(t)||0===t.length?null:Gt[e?.kind]??null}function Zt({showCaption:e,schedule:n}){const s=V(),[i,o]=a(Date.now());k(()=>{let e=!1,a=null;const r=()=>{e||(a=t.timer.timeout(()=>{o(Date.now()),r()},Jt))};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 m=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),g=m[0]??null,h=d?Vt:Yt,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(d),style:{display:"inline-flex",alignItems:"center",gap:"5px",fontSize:"12px",lineHeight:"16px",color:h,whiteSpace:"nowrap",flexShrink:0}},r.createElement("span",{style:{width:"7px",height:"7px",borderRadius:"50%",background:h,flexShrink:0}}),s(d?"quota.peak.nowPeak":"quota.peak.nowIdle")),null!==g?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:Qt(g),dur:_t(g-i,s)})):null),r.createElement("div",{"data-testid":"quota-peak-bar",style:{position:"relative",height:"14px",borderRadius:999,overflow:"hidden",background:"var(--dsw-alias-interactive-bg-hover)"}},(m.length>0?[{peak:d,weight:m[0]-i},...m.length>1?[{peak:!d,weight:m[1]-m[0]}]:[]]:[{peak:d,weight:1}]).map((e,t,a)=>{const n=a.reduce((e,t)=>e+t.weight,0),i=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:`${i}%`,background:e.peak?Vt:Yt,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 ea(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?`${Kt(r)} ${Ut(r)}`:Kt(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:Ut(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};if("string"==typeof e.text)return r.createElement("div",{key:e.id,...n?{"data-testid":`quota-card-window-${a}-${e.id}`}:{},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));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:_t(s-Date.now(),t)})))}return 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:`${t} · ${P(a,{billions:!0})} / ${P(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:X("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",borderRadius:999,background:"var(--dsw-alias-interactive-bg-hover)",overflow:"hidden"}},r.createElement("div",{style:{height:"100%",width:`${Math.max(0,Math.min(100,t))}%`,borderRadius: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 ra=null;try{const t=e("react-dom");null!=t&&"function"==typeof t.createPortal&&(ra=t.createPortal)}catch(e){ra=null}function na(){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 sa=["gemini","claude","codex"];function ia(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 oa(e){const t=new Map;for(const a of e){const e=ia(a),r=t.get(e)||[];r.push(a),t.set(e,r)}const a=[];for(const e of[...sa,"other"]){const r=t.get(e);r&&r.length>0&&a.push({family:e,windows:r})}return a}function la(e){const n=V(),[s,i]=a(qt.getSnapshot());k(()=>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;k(()=>{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=Ge()}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]),k(()=>{if(u)return Pt(),Ft},[u]);const[p,m]=a(u?u.getSnapshot():null);k(()=>{if(u)return m(u.getSnapshot()),u.subscribe(()=>m(u.getSnapshot()))},[u]),k(()=>{u&&(null===p||null==p?.current)&&e&&"function"==typeof e.loadDirectory&&e.loadDirectory()},[u,p,e&&e.loadDirectory]);const[g,h]=a(!1),b=x(null),v=x(null),[f,y]=a(na);k(()=>{if("undefined"==typeof window||null===window||"function"!=typeof window.matchMedia)return;const e=window.matchMedia("(max-width: 1023px)"),t=()=>y(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,E]=a(!1),S=p?.current?.provider??null,q=p?.current?.model??null,C=null!==S?(s.providers||[]).find(e=>e.provider===S&&!0===e.adapted):null,T=Array.isArray(C?.windows)?C.windows:[],A="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"===A?"Claude":"gemini"===A?"Gemini":"codex"===A?"Codex":null,R=null!==A?T.filter(e=>function(e,t){return!t||ia(e)===t}(e,A)):T,z=R.length>0&&!w?R:T,M=(R.length>0?R:T).filter(e=>"number"==typeof e.percent),O=e=>!0===e.remaining?100-e.percent:e.percent,j=M.length>0?M.reduce((e,t)=>O(t)>O(e)?t:e,M[0]):null;k(()=>{E(!1)},[S,q,g]);const N=x(new Set);if(k(()=>{if(null===S)return;const e=(s.providers||[]).find(e=>e.provider===S&&!0===e.adapted);(void 0===e||!1===Array.isArray(e.windows)&&!0!==e.refreshing&&void 0===e.errorCode)&&!N.current.has(S)&&(N.current.add(S),jt({providers:[S]}))},[S,s]),k(()=>{if(!g||"undefined"==typeof document)return;const e=e=>{b.current&&e.target instanceof Node&&b.current.contains(e.target)||v.current&&e.target instanceof Node&&v.current.contains(e.target)||h(!1)},t=e=>{"Escape"===e.key&&h(!1)};return document.addEventListener("pointerdown",e),document.addEventListener("keydown",t),()=>{document.removeEventListener("pointerdown",e),document.removeEventListener("keydown",t)}},[g]),null==C)return null;const H=null===j?0:j.percent,D=null!==j,W=!D||!0===j.remaining,$=n(W?"quota.panel.remaining":"quota.panel.used"),B=(W?H<=20:H>=80)?"var(--dsw-alias-state-warn-primary)":"var(--dsw-alias-state-success-primary)",L=2*Math.PI*5.5,P=C?.displayName||S,F=I?`${P} · ${I}`:P,_=D?`${n("quota.ring.label")} · ${F} · ${$} ${H}%`:`${n("quota.ring.label")} · ${F}`,U=void 0!==C.errorCode?r.createElement("div",{style:{marginTop:"8px",fontSize:"12px",lineHeight:"18px",color:"var(--dsw-alias-state-error-primary)"}},ta(C,n)):null,K=!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:Ut(C.fetchedAt)})):null,G=g&&f&&null!==ra&&"undefined"!=typeof document&&null!==document.body&&void 0!==document.body,Y=Xt(C,T),J=r.createElement("button",{type:"button","data-testid":"quota-ring-trigger","aria-label":_,"aria-haspopup":"dialog","aria-expanded":g,title:_,onClick:()=>{const e=!g;h(e),e&&jt({providers:null===S?[]:[S]})},style:{width:"28px",height:"28px",border:"none",borderRadius:"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:`${L*H/100} ${L}`,transform:"rotate(-90 7 7)"}))),Q=g?r.createElement("div",{ref:v,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)"}},$),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||!w&&null!==A?null:oa(z);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)))):z.map(e=>aa(e,n,null))})()),T.length>R.length&&R.length>0?r.createElement("div",{style:{marginTop:"6px",textAlign:"center"}},r.createElement("button",{type:"button","data-testid":"quota-ring-toggle-all",onClick:()=>E(!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:T.length}))):null,...null!==Y?[r.createElement(Zt,{key:"panel-peak-timeline",showCaption:!1,schedule:Y})]:[],...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=ea(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)}))]:[],U,K):null;return r.createElement("span",{ref:b,style:{position:"relative",display:"inline-flex"}},J,G?ra(Q,document.body):Q)}function da(){const e=V(),{snapshot:t}=G(),[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(ua,null),s?null:r.createElement("p",{style:{margin:"6px 0 0",fontSize:"11px",color:"var(--dsw-alias-label-tertiary)"}},e("features.readOnly"))):null)}const ca=[["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 ua(){const e=V(),{snapshot:t,value:n}=G(),[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 _.set(t,!1===n[t])}catch(e){}i("")},style:{width:"34px",height:"20px",borderRadius:"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",borderRadius:"50%",background:!1!==n[t]?"#fff":"var(--dsw-alias-label-tertiary)"}})));return r.createElement("div",null,ca.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))))}const pa=["inherit","follow","custom"];function ma(){const e=V(),{useState:t,useEffect:a}=r,n=!1!==G().value.subagentModelsDock,[s,i]=t(null),[o,l]=t("inherit"),[d,c]=t(""),[u,p]=t(""),[m,g]=t(!0),[h,b]=t(!1),[v,f]=t(0),[y,k]=t(""),[x,w]=t(""),[S,q]=t([]),[C,T]=t(!1),A={color:"var(--dsw-alias-label-secondary)",fontSize:"12px",marginTop:"8px",lineHeight:1.5},I={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=async()=>{g(!0);try{const e=await E("subagent-route",{});e.ok?(i(e.value),l(e.value.mode),q(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),w("string"==typeof e.value.reasoningEffort?e.value.reasoningEffort:""),k("")):k(e.error||"unknown")}catch(e){k("network")}finally{g(!1)}};a(()=>{R()},[]);const z=null!==s&&Array.isArray(s.models)?s.models:[],M=[],O={};for(const e of z)void 0===O[e.provider]&&(O[e.provider]=e.providerName,M.push(e.provider));const j=e=>z.filter(t=>t.provider===e),N=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},H=M.includes(d)?d:M[0]??"",D=j(H),W=D.some(e=>e.id===u)?u:D[0]?.id??"",$=D.find(e=>e.id===W)??null,B=N($),L=B.some(e=>e.id===x)?x:"",P=(e,t)=>{q(a=>a.map((a,r)=>r===e?{...a,...t}:a))},F=(e,t)=>{q(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(()=>{C&&S.length<2&&T(!1)},[S.length]);const U=async e=>{b(!0),k("");try{const t=("custom"===e||"follow"===e)&&S.length>0?{fallbacks:S}:{},a="custom"===e?{mode:"custom",provider:H,model:W,...""!==L?{reasoningEffort:L}:{},...t}:{mode:e,...t},r=await E("subagent-route-save",a);r.ok?(f(e=>e+1),await R()):k(r.error||"unknown")}catch(e){k("network")}finally{b(!1)}},K=(e,t,a,n)=>r.createElement("button",{type:"button","data-testid":e,disabled:t||h,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||h?"default":"pointer",opacity:t||h?.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:A},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:{...A,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:()=>{_.set("subagentModelsDock",!n).catch(()=>{})},style:{width:"34px",height:"20px",borderRadius:"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",borderRadius:"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:{...A,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"}},pa.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({},Q(),{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:{...A,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:Y},e("subagent.provider")),r.createElement("select",{"data-testid":"subagent-provider",value:H,disabled:0===M.length||h,onChange:e=>c(e.target.value),style:I},M.map(e=>r.createElement("option",{key:e,value:e},O[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:W,disabled:0===D.length||h,onChange:e=>p(e.target.value),style:I},D.map(e=>r.createElement("option",{key:e.id,value:e.id},e.name??e.id)))),""!==W?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:L,disabled:h||0===B.length,onChange:e=>w(e.target.value),style:I},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!==z.length||m?null:r.createElement("p",{"data-testid":"subagent-models-empty",style:{...A,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:A},e("subagent.fallback.hint")),0===S.length?r.createElement("p",{"data-testid":"subagent-fallback-empty",style:{...A,color:"var(--dsw-alias-label-secondary)"}},e("subagent.fallback.empty")):null,S.map((t,a)=>{const n=M.includes(t.provider),s=n?j(t.provider):[],i=s.find(e=>e.id===t.model)??null,o=N(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||h,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||h?"default":"pointer",opacity:t||h?.55:1}},n))("subagent-fallback-remove-"+a,!1,()=>(e=>{q(t=>t.filter((t,a)=>a!==e))})(a),e("subagent.fallback.remove"),!0),C?K("subagent-fallback-up-"+a,0===a,()=>F(a,-1),"▲"):null,C?K("subagent-fallback-down-"+a,a===S.length-1,()=>F(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:h,onChange:e=>{const t=e.target.value;P(a,{provider:t,model:j(t)[0]?.id??""})},style:I},r.createElement("option",{value:""},""),M.map(e=>r.createElement("option",{key:e,value:e},O[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||h,onChange:e=>{const r=e.target.value,n=s.find(e=>e.id===r)??null,i=N(n).map(e=>e.id);P(a,{model:r,..."string"!=typeof t.reasoningEffort||""===t.reasoningEffort||i.includes(t.reasoningEffort)?{}:{reasoningEffort:void 0}})},style:I},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:Y},e("subagent.reasoningEffort")),r.createElement("select",{"data-testid":"subagent-fallback-effort-"+a,value:l.includes(t.reasoningEffort)?t.reasoningEffort:"",disabled:h,onChange:e=>P(a,{reasoningEffort:""===e.target.value?void 0:e.target.value}),style:I},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")))}),S.length>=10?r.createElement("p",{"data-testid":"subagent-fallback-limit",style:{...A,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:h||0===M.length,onClick:()=>{q(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:h||0===M.length?"default":"pointer",opacity:h||0===M.length?.55:1}},e("subagent.fallback.add")),S.length>1?r.createElement("button",{type:"button","data-testid":"subagent-fallback-sort",disabled:h,onClick:()=>T(e=>!e),style:{fontSize:"12px",padding:"5px 12px",borderRadius:"var(--dsh-svc-radius-control)",border:"1px solid var(--dsh-svc-border-strong)",background:C?"var(--dsh-svc-tab-active-bg)":"transparent",color:C?"var(--dsh-svc-tab-active-text)":"var(--dsh-svc-text)",cursor:h?"default":"pointer",opacity:h?.55:1}},e(C?"subagent.fallback.sort.done":"subagent.fallback.sort")):null)):null,""!==y?r.createElement("p",{"data-testid":"subagent-error",style:{...A,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,y)):null,v>0&&""===y?r.createElement("p",{"data-testid":"subagent-saved",style:{...A,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:h||m||"custom"===o&&(""===H||""===W),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:h?"default":"pointer",opacity:h||m||"custom"===o&&(""===H||""===W)?.55:1}},e(h?"subagent.saving":"subagent.save")),"inherit"!==o?r.createElement("button",{type:"button","data-testid":"subagent-reset",disabled:h||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:h?"default":"pointer",opacity:h||m?.55:1}},e("subagent.reset")):null))}const ga="dsh-service-skills-model",ha=(e,t)=>E(e,t);function ba(e){return e.provider+"\0"+e.id}function va(){try{const e=JSON.parse(localStorage.getItem(ga)||"null");if(e&&"string"==typeof e.provider&&"string"==typeof e.model)return e}catch(e){}return null}const fa=(e,t)=>{let a=function(e,t){const a="object"==typeof t&&null!==t?t:va();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,va());return null===a&&void 0!==t&&(a=e.find(e=>e.provider===t.provider&&e.id===t.model)??null),a},ya=(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 ka(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 xa(){const e=V(),[t,n]=a(null),[s,i]=a(""),[o,l]=a(!0),[d,c]=a(""),[u,p]=a(null),[m,g]=a(null),[h,b]=a(!1),[v,f]=a([]),[y,x]=a(!1),[w,S]=a(!1),[q,C]=a(!1),[T,A]=a(!1),{batch:I,plan:R,models:z,modelItem:M,error:O}=_e(),j=null!==I?I.phase:null;k(()=>{x("running"===j)},[j]);const N=async()=>{l(!0);try{const e=await ha("skills-list",{});e.ok?(n(e.value),i("")):i(e.error||"unknown")}catch(e){i("network")}finally{l(!1)}};k(()=>{N(),Fe(),Pe().then(De)},[]),k(()=>{null===I||"done"!==I.phase&&"cancelled"!==I.phase||!ze||(ze=!1,N())},[null!==I&&I.phase]),k(()=>{if(null===m||!m.busy)return;const e=m.entry.id;let t;const a=async()=>{try{const t=await ha("skills-describe-log",{id:e});t.ok&&f(t.value.logs??[])}catch(e){}};return a(),t=setInterval(()=>{a()},800),()=>clearInterval(t)},[null!==m&&m.busy]),k(()=>{if(null===m||m.busy)return;const e=m.entry.id;(async()=>{try{const t=await ha("skills-describe-log",{id:e});t.ok&&f(t.value.logs??[])}catch(e){}})()},[null!==m&&m.busy]);const H=e=>{n(t=>null===t?t:{...t,entries:t.entries.map(t=>t.id===e.id?e:t)})};k(()=>{if(null===u)return;const e=setTimeout(()=>p(null),3e3);return()=>clearTimeout(e)},[u]),k(()=>{if(!q)return;const e=setTimeout(()=>C(!1),3e3);return()=>clearTimeout(e)},[q]),k(()=>{C(!1)},[j,R]);const D=async(e,t)=>{const a=e.id+":"+t;if(u!==a)return void p(a);p(null);const r="model"===t?!0!==e.invocation.model:!0!==e.invocation.user;try{const a=await ha("skills-toggle",{id:e.id,field:t,enable:r});a.ok?H(a.value.entry):i(a.error+(a.detail?":"+a.detail:"")||"unknown")}catch(e){i("network")}},W={color:"var(--dsw-alias-label-secondary)",fontSize:"12px",marginTop:"8px",lineHeight:1.5},$=(e,t)=>r.createElement("span",{key:e,style:X("warn"===t?"warning":"danger"===t?"danger":"neutral",{marginLeft:"6px",padding:"1px 7px",verticalAlign:"middle"})},e),B=(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",borderRadius:"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",borderRadius:"50%",background:t.armed?"var(--dsw-alias-state-warn-primary)":e?"#fff":"var(--dsw-alias-label-tertiary)"}})),P={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))),_=t=>{if(null===m)return null;const a=t??m.entry,{models:n,modelItem:s,draft:i,busy:o,error:l,applied:d}=m,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:()=>g(null),style:{border:0,background:"transparent",color:"var(--dsw-alias-label-tertiary)",cursor:"pointer",fontSize:"15px"}},"✕")),null===n&&""===l?r.createElement("p",{style:W},e("skills.describe.models.loading")):null,null!==n&&0===n.length?r.createElement("p",{style:W},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?"":ba(s),onChange:e=>g(t=>null===t?t:{...t,modelItem:n.find(t=>ba(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:ba(e),value:ba(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===m||null===m.modelItem)return;const{entry:e,modelItem:t}=m;g(e=>({...e,busy:!0,error:""}));const a=await ha("skills-describe",{id:e.id,provider:t.provider,model:t.id,lang:L()});if(a.ok){try{localStorage.setItem(ga,JSON.stringify({provider:t.provider,model:t.id}))}catch(e){}g(e=>({...e,draft:a.value.draft,busy:!1}))}else g(e=>({...e,busy:!1,error:a.error+(a.detail?":"+a.detail:"")}))})()},style:Object.assign({},J("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:{...W,color:"var(--dsw-alias-state-error-primary)"}},ka(e,l)):null,F("skill-describe-log",v.map(t=>ya(e,t))),c,d?r.createElement("p",{"data-testid":"skill-apply-done",style:{...W,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:{...W,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===m||null===m.draft||null===m.modelItem)return;const{entry:e,draft:t,modelItem:a}=m;g(e=>({...e,busy:!0}));const r=await ha("skills-note-save",{id:e.id,patch:{description:t.description,usage:t.usage},model:a.provider+"/"+a.id});r.ok?(H(r.value.entry),g(e=>({...e,busy:!1,applied:!0}))):g(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")))},[U,K]=a(!1);return k(()=>{null===I||"running"!==I.phase&&"planned"!==I.phase||K(!0)},[null!==I&&I.phase]),r.createElement("div",{"data-testid":"skills-section"},r.createElement("div",{style:{display:"flex",alignItems:"center",justifyContent:"space-between",gap:"12px",flexWrap:"wrap"}},r.createElement("input",{"data-testid":"skills-filter",value: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-refresh","data-variant":"neutral",style:Object.assign({},J("neutral"),{minHeight:"28px",padding:"4px 10px",fontSize:"12px"}),onClick:()=>{N()}},"↻"))),o&&null===t?r.createElement("p",{style:W},"…"):null,""!==s||""!==O?r.createElement("p",{"data-testid":"skills-error",style:{...W,color:"var(--dsw-alias-state-error-primary)"}},ka(e,""!==s?s:O)):null,null!==t&&t.llmAvailable?r.createElement("button",{type:"button","data-testid":"skills-batch-toggle","aria-expanded":String(U),onClick:()=>K(e=>!e),style:{margin:"0 0 12px",fontSize:"12px",padding:"6px 14px",borderRadius:"var(--dsh-svc-radius-control)",border:"1px solid "+(U?"var(--dsw-alias-label-dimmed)":"var(--dsh-svc-border-strong)"),background:"transparent",color:"var(--dsw-alias-label-primary)",cursor:"pointer"}},(U?"▾ ":"▸ ")+e("skills.batch.toggle")):null,U&&null!==t&&t.llmAvailable?(()=>{const t=null!==I&&"planned"===I.phase&&null===R?"idle":null!==I?I.phase:"idle",a=t,n=null!==I&&I.total>0?Math.round(I.done/I.total*100):0,s=Array.isArray(R?.annotated)?R.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:()=>K(!1),style:{border:0,background:"transparent",color:"var(--dsw-alias-label-tertiary)",cursor:"pointer",fontSize:"12px"}},e("skills.batch.collapse")+" ▴")),r.createElement("p",{style:{...W,marginTop:"4px"}},e("skills.batch.hint")),r.createElement("div",{style:{display:"flex",alignItems:"center",gap:"10px",marginTop:"9px",flexWrap:"wrap"}},null!==z&&z.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===M?"":ba(M),disabled:h||null!==I&&"running"===I.phase,onChange:e=>(e=>{const t=(Ae??[]).find(t=>ba(t)===e)??null;if(Ie=t,null!==t)try{localStorage.setItem(ga,JSON.stringify({provider:t.provider,model:t.id}))}catch(e){}De()})(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%"}},z.map(e=>r.createElement("option",{key:ba(e),value:ba(e)},e.providerName+" / "+e.name)))):null,"idle"===t||"done"===t||"cancelled"===t?r.createElement("button",{type:"button","data-testid":"skills-batch-plan",disabled:h,onClick:()=>{(async()=>{b(!0);try{await(async()=>{if(Re="",De(),0===(await Pe()).length||null===Ie)return Re="models-empty",De(),!1;try{localStorage.setItem(ga,JSON.stringify({provider:Ie.provider,model:Ie.id}))}catch(e){}const e=await E("skills-batch-plan",{provider:Ie.provider,model:Ie.id});if(!e.ok)return Re=e.error||"unknown",De(),!1;Te={...e.value,modelItem:Ie};const t=Array.isArray(e.value.annotated)?e.value.annotated.length:0;return Ce={phase:"planned",total:e.value.candidates.length+t,done:0,failures:[],current:null,estBytes:e.value.estBytes,logs:[]},$e("planned"),Le(),De(),!0})()}finally{b(!1)}})()},style:Object.assign({},J("neutral"),{cursor:h?"default":"pointer",opacity:h?.55:1})},e("skills.batch.plan")):null,null!==R?r.createElement("span",{"data-testid":"skills-batch-candidates",style:{fontSize:"12px",color:"var(--dsw-alias-label-secondary)"}},e("skills.batch.candidates",{count:R.candidates.length})+(R.estBytes>0?" · "+e("skills.batch.estBytes",{size:(i=R.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:R.skipped.length})):null,null!==R&&"planned"===t?r.createElement("button",{type:"button","data-testid":"skills-batch-start",disabled:h||0===R.candidates.length&&0===s,onClick:()=>{(async()=>{const e=Array.isArray(R?.annotated)?R.annotated.length:0;if(e>0&&!q)C(!0);else{C(!1),b(!0);try{await(async(e=!1)=>{if(null===Te||null===Ce)return!1;const t=await E("skills-batch-run",{planId:Te.planId,lang:L(),...!0===e?{forceAnnotated:!0}:{}});return t.ok?(Ce={...Ce,phase:"running"},$e("running"),Le(),De(),!0):(Re=t.error||"unknown",De(),!1)})(e>0)}finally{b(!1)}}})()},title:q?e("skills.switch.confirm"):void 0,style:{fontSize:"12px",padding:"5px 14px",borderRadius:"var(--dsh-svc-radius-control)",border:"1px solid transparent",background:q?"var(--dsh-svc-warning)":"var(--dsw-alias-brand-primary)",color:"var(--dsh-svc-brand-text)",cursor:h?"default":"pointer",opacity:h?.55:1}},q&&s>0?e("skills.batch.forceConfirm",{count:s}):e("skills.batch.start")):null,null!==I&&"running"===I.phase?r.createElement("button",{type:"button","data-testid":"skills-batch-cancel",onClick:()=>{(async()=>{await(async()=>{try{await E("skills-batch-cancel",{}),We(!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!==I?r.createElement("span",{"data-testid":"skills-batch-phase",style:{fontSize:"12px",color:"var(--dsw-alias-label-tertiary)"}},e("skills.batch.phase."+a)):null),null!==R&&0===R.candidates.length&&0===s?r.createElement("p",{style:W},e("skills.batch.no-candidates")):null,null===R||0===R.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:()=>S(e=>!e),style:{border:0,background:"transparent",color:"var(--dsw-alias-label-tertiary)",cursor:"pointer",fontSize:"11.5px",padding:0}},(w?"▾ ":"▸ ")+e("skills.skippedList")+"("+R.skipped.length+")"),w?r.createElement("div",{style:{marginTop:"4px",fontSize:"11.5px",lineHeight:1.6,color:"var(--dsw-alias-label-tertiary)"}},R.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(R?.annotated)?R.annotated:[];return null===R||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:()=>A(e=>!e),style:{border:0,background:"transparent",color:"var(--dsw-alias-label-tertiary)",cursor:"pointer",fontSize:"11.5px",padding:0}},(T?"▾ ":"▸ ")+e("skills.batch.annotatedList")+"("+t.length+")"),T?r.createElement("div",{style:{marginTop:"4px",fontSize:"11.5px",lineHeight:1.6,color:"var(--dsh-svc-warning)"}},t.map((e,t)=>r.createElement("div",{key:e.id??t,"data-testid":"skills-batch-annotated-item"},""===e.name?e.id:e.name))):null)})(),null!==I&&I.total>0&&"idle"!==t?(()=>{const t=Array.isArray(I.failures)&&I.failures.length>0?r.createElement("div",{"data-testid":"skills-batch-failures",style:{marginTop:"7px",fontSize:"11.5px",color:"var(--dsw-alias-state-error-primary)",lineHeight:1.5}},e("skills.batch.failures",{count:I.failures.length})+":"+I.failures.map(e=>e.name+"("+e.reason+")").join("、")):null,a=Array.isArray(I.logs)?I.logs:[],s=0===a.length?null:r.createElement("div",null,r.createElement("button",{type:"button","data-testid":"skills-batch-log-toggle",onClick:()=>x(e=>!e),style:{marginTop:"7px",border:0,background:"transparent",color:"var(--dsw-alias-label-tertiary)",cursor:"pointer",fontSize:"11.5px",padding:0}},(y?"▾ ":"▸ ")+e("skills.log.title")+"("+a.length+")"),y?F("skills-batch-log",a.slice(-30).map(t=>ya(e,t)),!1):null);return r.createElement("div",{style:{marginTop:"10px"}},r.createElement("div",{"data-testid":"skills-batch-progress",style:{fontSize:"12px",color:"var(--dsw-alias-label-secondary)",marginBottom:"4px"}},e("skills.batch.progress",{done:I.done,total:I.total})+(null!==I.current?" · "+e("skills.batch.current",{name:I.current}):"")),r.createElement("div",{style:{height:"6px",borderRadius:"3px",background:"var(--dsw-alias-bg-layer-3)",overflow:"hidden"}},r.createElement("div",{style:{height:"100%",width:n+"%",background:"var(--dsw-alias-state-success-primary)",transition:"width .3s"}})),t,s)})():null);var i})():null,(()=>{if(null===t||0===t.entries.length)return r.createElement("p",{style:W},e("skills.empty"));const a=d.trim().toLowerCase(),n=""===a?t.entries:t.entries.filter(e=>e.name.toLowerCase().includes(a)),s=n.filter(e=>void 0!==e.invalid),o=n.filter(e=>void 0===e.invalid),l=[["skills.group.auto",o.filter(e=>e.invocation.model)],["skills.group.manual",o.filter(e=>!e.invocation.model&&e.invocation.user)],["skills.group.disabled",o.filter(e=>!e.invocation.model&&!e.invocation.user)]],c=a=>{const n=(a=>{const n="string"==typeof a.invalid&&a.invalid.startsWith("legacy-invocation-key:"),s=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),o=r.createElement("div",{style:{fontSize:"12px",color:"var(--dsw-alias-label-secondary)",marginTop:"3px",lineHeight:1.45,overflowWrap:"anywhere"}},a.description),l=""===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),d=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 ha("skills-note-clear",{id:e.id});t.ok?H(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,c=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"}},"⚠ ",n?e("skills.invalid.legacy"):e("skills.invalid.other",{reason:a.invalid}),n&&a.writable?r.createElement("button",{type:"button","data-testid":"skill-fix-"+a.name,onClick:()=>{(async e=>{const t=e.id+":fix";if(u===t){p(null);try{const t=await ha("skills-fix-keys",{id:e.id});t.ok?H(t.value.entry):i(t.error+(t.detail?":"+t.detail:"")||"unknown")}catch(e){i("network")}}else p(t)})(a)},title:u===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:u===a.id+":fix"?"rgba(198,128,0,0.14)":"transparent",color:"var(--dsw-alias-state-warn-primary)",cursor:"pointer"}},u===a.id+":fix"?e("skills.switch.confirm"):e("skills.fix.legacy")):null):null,m=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"),B(a.invocation.model,{testid:"skill-switch-model-"+a.name,disabled:!a.writable,armed:u===a.id+":model",title:u===a.id+":model"?e("skills.switch.confirm"):void 0,onClick:()=>{D(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"),B(a.invocation.user,{testid:"skill-switch-user-"+a.name,disabled:!a.writable,armed:u===a.id+":user",title:u===a.id+":user"?e("skills.switch.confirm"):void 0,onClick:()=>{D(a,"user")}})),null!==t&&t.llmAvailable?r.createElement("button",{type:"button","data-testid":"skill-describe-"+a.name,onClick:()=>{(async e=>{const t=va();g({entry:e,models:null,modelItem:null,draft:null,busy:!1,error:"",applied:!1,preferred:t}),f([]);const a=await ha("skills-models",{});if(!a.ok)return void g(e=>({...e,error:a.error||"unknown"}));const r=a.value.models??[];g(e=>({...e,models:r,modelItem:fa(r,a.value.current)}))})(a)},style:Object.assign({},Q(),{fontSize:"11px",padding:"3px 10px"})},"✨ "+e("skills.describe.button")):null):null;return r.createElement("div",{key:a.id,"data-testid":"skill-entry-"+a.name,style:P},r.createElement("div",{style:{display:"flex",gap:"12px",alignItems:"flex-start",justifyContent:"space-between"}},r.createElement("div",{style:{minWidth:0,flex:1}},s,o,l,c),m),d)})(a);return null!==m&&m.entry.id===a.id?[n,_(a)]:[n]};return r.createElement("div",null,s.length>0?r.createElement("div",{"data-testid":"skills-invalid-group",style:{marginBottom:"12px"}},s.flatMap(c)):null,l.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(c))))})())}function wa(){return r.createElement(Oa,null)}function Ea(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 Sa(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 qa(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 Ca={all:void 0,archived:void 0,deleted:void 0},Ta=new Map,Aa=[Symbol.for("react.memo"),Symbol.for("react.forward_ref"),Symbol.for("react.lazy")],Ia=e=>"function"==typeof e||null!==e&&"object"==typeof e&&"symbol"==typeof e.$$typeof&&Aa.includes(e.$$typeof);let Ra=null;const za=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(Ia(a))Ra=a;else if(null!==a&&"object"==typeof a)if(a="function"==typeof a.default?a.default:"function"==typeof a.MarkdownText?a.MarkdownText:null,Ia(a))Ra=a;else{let e=String(typeof a);try{e+=" keys=["+Object.keys(a).join(",")+"]"}catch(e){}console.warn("[dsh-service-md] MarkdownText is an unexpected value ("+e+") — falling back to plain text")}else console.warn("[dsh-service-md] ui-primitives seed present, but MarkdownText unavailable ("+typeof a+") — falling back to plain text")}catch(e){console.warn("[dsh-service-md] ui-primitives require failed: "+(e&&e.message?e.message:String(e)))}function Ma(){const e=V(),{useState:a,useEffect:n,useRef:s}=r,[i,o]=qe.useEnabled(),l=Ca.archived,[d,c]=a(void 0!==l?l:null),[u,p]=a(void 0===l),[m,g]=a(""),[h,b]=a(Object.fromEntries(Ta)),v=s(new Set),[f,y]=a("archived"),[k,x]=a(!1),[w,S]=a("createdDesc"),[q,C]=a([]),[T,A]=a(!1),[I,R]=a([]),[z,M]=a(""),[O,j]=a(!1),[N,H]=a(!1),[D,W]=a(null),[$,B]=a(null),[L,P]=a(!1),[F,_]=a(""),[U,K]=a({}),G=s(null),Y=()=>f+"\0"+w+"\0"+z+"\0"+(O?1:0),[Z,ee]=a(""),[te,ae]=a(""),[re,ne]=a(""),[se,ie]=a(""),[oe,le]=a(""),[de,ce]=a(null),[ue,pe]=a(!1),[me,ge]=a(""),[he,be]=a(0),[ve,fe]=a(null),[ye,ke]=a(!1),[xe,we]=a(""),[Ee,Se]=a(""),[Ce,Te]=a(""),[Ae,Ie]=a(""),Re={color:"var(--dsw-alias-label-secondary)",fontSize:"12px",marginTop:"8px",lineHeight:1.5},ze=Q(),Me=Object.assign({},ze,{background:"transparent",borderColor:"var(--dsw-alias-state-error-primary)",color:"var(--dsw-alias-state-error-primary)"}),Oe=Object.assign({},ze,{background:"var(--dsw-alias-state-error-primary)",borderColor:"transparent",color:"var(--dsh-svc-brand-text)"}),je=e=>"archived"===e?"archived":"deleted"===e?"deleted":"all",Ne=s(f);Ne.current=f;const He=async(t,a={})=>{const r=void 0!==t?t:je(f),n=Ca[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 E("sessions-list",{scope:r});t.ok?(Ca[r]=t.value,je(Ne.current)===r&&(c(t.value),g(""))):s&&a.silent||g(qa(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!==h[e]||v.current.has(e)||(v.current.add(e),t.push(e))}if(0===t.length)return;let a=!1;const r=async e=>{try{const t=await E("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]&&Ta.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)v.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)v.current.delete(e)}},[d]),n(()=>{if("deleted"!==f){if(""!==z.trim())return t.timer.timeout(()=>{(async e=>{if(""!==e.trim()){H(!0);try{const t=await E("sessions-search",{query:e.trim(),scope:O?"archived":"all"});t.ok?W(t.value):W({available:!0,query:e,scope:"all",hits:[],error:t.error})}catch(t){W({available:!0,query:e,scope:O?"archived":"all",hits:[],error:"network"})}finally{H(!1)}}else W(null)})(z)},300);W(null)}},[z,O,f]);const De=(e,t,a,r,n)=>{A(!1),R([]),ie(""),le(""),fe(null),we("");const s=function(e){let t=null!=e&&e.currentTarget?e.currentTarget:null;const a="undefined"!=typeof document?document:null;for(;null!=t&&1===t.nodeType;){let e="";if(null!==a&&a.defaultView&&"function"==typeof a.defaultView.getComputedStyle)try{const r=a.defaultView.getComputedStyle(t);e=r?String(r.overflowY||""):""}catch(e){}else t.style&&(e=String(t.style.overflowY||t.style.overflow||""));if(("auto"===e||"scroll"===e||"overlay"===e)&&"number"==typeof t.scrollHeight&&"number"==typeof t.clientHeight&&t.scrollHeight>t.clientHeight+1)return t;t=t.parentNode}return null}(r);if(null!==s&&(G.current={key: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}),_(""),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 We(e,void 0,t||"events")},We=async(t,a,r)=>{P(!0);try{const n=await E("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,"")}}),_("")):_(qa(e,n.error||"unknown"))}catch(t){_(e("sessions.error.network"))}finally{P(!1)}},$e=async(t,a)=>{P(!0),_("");try{const r=await E("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||""}}),_("")):_(qa(e,r.error||"unknown"))}catch(t){_(e("sessions.error.network"))}finally{P(!1)}},Be=async t=>{try{const a=await E("sessions-export",{id:t});if(!a.ok)return{ok:!1,error:qa(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")}}},Le=async e=>{ee(e),ae("");const t=await Be(e);return t.ok||ae(t.error),ee(""),t},Pe=async t=>{try{const a=await E("sessions-archive",{id:t});return a.ok?((e=>{const t=Ca.all;void 0!==t&&Array.isArray(t.items)&&(Ca.all={...t,items:t.items.map(t=>t.id===e?{...t,archived:!0}:t)});const a=Ca.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);Ca.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:qa(e,a.error||"unknown")}}catch(t){return{ok:!1,error:e("sessions.error.network")}}},Fe=async t=>{try{const a=await E("sessions-unarchive",{id:t});return a.ok?((e=>{const t=Ca.all;void 0!==t&&Array.isArray(t.items)&&(Ca.all={...t,items:t.items.map(t=>t.id===e?{...t,archived:!1}:t)});const a=Ca.archived;void 0!==a&&Array.isArray(a.items)&&(Ca.archived={...a,items:a.items.filter(t=>t.id!==e)}),c(t=>null!==t&&Array.isArray(t.items)?"archived"===Ne.current?{...t,items:t.items.filter(t=>t.id!==e)}:{...t,items:t.items.map(t=>t.id===e?{...t,archived:!1}:t)}:t)})(t),{ok:!0}):{ok:!1,error:qa(e,a.error||"unknown")}}catch(t){return{ok:!1,error:e("sessions.error.network")}}},_e=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=Ca[e];void 0!==a&&Array.isArray(a.items)&&(Ca[e]={...a,items:a.items.filter(e=>e.id!==t)})}const n=Ca.deleted;void 0!==n&&(Ca.deleted={...n,deleted:[r,...(Array.isArray(n.deleted)?n.deleted:[]).filter(e=>e.id!==t)]}),Ta.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)]}}),b(e=>{const a={...e};return delete a[t],a}),v.current.delete(t)};n(()=>{he>0&&B(null)},[he]),n(()=>{if(null!==$)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){}},[$]);const Ue=null!==$&&"search"===$.view?$.centerSeq:null,Ke=null!==$&&"search"===$.view&&Array.isArray($.items)?$.items.length:0;n(()=>{if(null!==Ue&&"number"==typeof Ue)return function(e){if("undefined"==typeof document||null===document)return()=>{};try{const a=document.querySelector('[data-testid="sessions-jump-target-'+e+'"]');if(null==a)return()=>{};try{a.scrollIntoView({behavior:"smooth",block:"center"})}catch(e){try{a.scrollIntoView()}catch(e){}}if(a.classList&&"function"==typeof a.classList.add){a.classList.add("dshsv-locate-flash");const e=t.timer.timeout(()=>{try{a.classList&&"function"==typeof a.classList.remove&&a.classList.remove("dshsv-locate-flash")}catch(e){}},2e3);return()=>{e();try{a.classList&&"function"==typeof a.classList.remove&&a.classList.remove("dshsv-locate-flash")}catch(e){}}}}catch(e){}return()=>{}}(Ue)},[Ue,Ke]);const Ge=(()=>{if(null===d)return[];if("deleted"===f)return(Array.isArray(d.deleted)?d.deleted:[]).slice().sort((e,t)=>(t.deletedAt||0)-(e.deletedAt||0)).map(e=>({...e,_deleted:!0,archived:!0}));let e=(Array.isArray(d.items)?d.items:[]).slice();return k&&(e=e.filter(e=>!0===e.subagent)),"createdAsc"===w?e.sort((e,t)=>(e.createdAt||0)-(t.createdAt||0)):"title"===w?e.sort((e,t)=>String(e.title||"").localeCompare(String(t.title||""))):"project"===w?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})(),Ve=""!==z.trim()?[]:"deleted"===f?Ge.map(e=>e.id):Ge.filter(e=>!0!==e._deleted).map(e=>e.id),Ye=new Set(I),Je=Ge.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=Ve.length>0&&Ve.every(e=>Ye.has(e));n(()=>{if(!T)return;const e=new Set(Ve);R(t=>{const a=t.filter(t=>e.has(t));return a.length===t.length?t:a})},[d,f,T,k]);const rt=()=>{A(!1),R([]),ie(""),le("")},nt=e=>{R(t=>t.includes(e)?t.filter(t=>t!==e):[...t,e])},st="deleted"===f?[]:Ge.filter(e=>!0===e.subagent).map(e=>e.id),it=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=h[n];return"number"==typeof e&&e>0?Ea(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?Sa(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:Me,onClick:()=>{(e=>{null!==ve||ye||(we(""),fe({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:Z===n,onClick:()=>{Le(n)}},e(Z===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:Ee===n,onClick:()=>{(async e=>{Se(e),Ie("");const t=await Pe(e);t.ok||Ie(t.error),Se("")})(n)}},e(Ee===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 Fe(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:Me,onClick:()=>{(async t=>{if(null===de&&!ue){ge("");try{const a=await E("sessions-delete-plan",{id:t});a.ok?ce(a.value):ge(qa(e,a.error||"unknown"))}catch(t){ge(e("sessions.error.network"))}}})(n)}},e("sessions.action.delete")))),r.createElement("div",{key:n,"data-testid":"sessions-row-"+n,"data-selected":T&&l?"true":void 0,onClick:T?()=>nt(n):void 0,style:{display:"flex",alignItems:"center",justifyContent:"space-between",gap:"10px",padding:T?"9px 2px 9px 8px":"9px 2px",borderBottom:"1px solid var(--dsh-svc-border)",background:"transparent",borderRadius:"4px",boxShadow:T&&l?"inset 3px 0 0 var(--dsw-alias-brand-primary)":"none",cursor:T?"pointer":"default"}},r.createElement("div",{style:{display:"flex",alignItems:"center",gap:"9px",minWidth:0,flex:"1 1 auto"}},T?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:()=>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:X("success")},e("sessions.row.live")):null,o?r.createElement("span",{"data-testid":"sessions-tag-archived-"+n,style:X("warning")},e("sessions.row.archived")):null,a?r.createElement("span",{style:X("danger")},e("sessions.row.deleted")):null,a||!0!==t.subagent?null:r.createElement("span",{"data-testid":"sessions-tag-subagent-"+n,style:X("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(" · ")))),T?null:r.createElement("div",{style:{display:"flex",alignItems:"center",gap:"6px",flexShrink:0,flexWrap:"wrap",justifyContent:"flex-end"}},...p))},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!==Ra?r.createElement(Ra,{text:t.text,labels:za(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,Sa(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:Re},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:Re},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",borderRadius:"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",borderRadius:"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:f===t?"var(--dsh-svc-tab-active-bg)":"transparent",color:f===t?"var(--dsh-svc-tab-active-text)":"var(--dsw-alias-label-primary)",fontWeight:f===t?650:400},onClick:()=>(e=>{e!==f&&(y(e),A(!1),R([]),ie(""),le(""),M(""),W(null),B(null),fe(null),we(""),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:w,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({},J("neutral"),{minHeight:"28px",padding:"4px 10px",fontSize:"12px"}),onClick:()=>{He(void 0,{force:!0})}},e("sessions.refresh")),null===$&&""===z.trim()?r.createElement("button",{type:"button","data-testid":"sessions-batch-toggle","data-variant":T?"primary":"neutral",style:Object.assign({},J(T?"primary":"neutral"),{minHeight:"28px",padding:"4px 10px",fontSize:"12px"}),onClick:T?rt:()=>{A(!0),R([]),ie(""),le("")}},e(T?"sessions.batch.exit":"sessions.batch.enter")):null),null===$&&T?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===Ve.length||""!==re||ue||ye,onClick:()=>{R(at?[]:Ve.slice())}},e(at?"sessions.batch.clearAll":"sessions.batch.selectAll")),"deleted"!==f&&st.length>0?r.createElement("button",{type:"button","data-testid":"sessions-batch-select-subagents",style:ze,disabled:""!==re||ue||ye,onClick:()=>{R(e=>{const t=st.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:I.length})),"deleted"===f?r.createElement("button",{type:"button","data-testid":"sessions-batch-clear",style:Me,disabled:0===tt.length||""!==re||ue||ye,onClick:()=>{null!==ve||ye||0===tt.length||(we(""),fe({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:ze,disabled:0===Qe.length||""!==re||ue||ye,onClick:()=>{(async()=>{if(""!==re||0===Qe.length)return;ne("export"),ie(""),le("");let t=0,a="";for(const e of Qe){const r=await Be(e.id);r.ok?t+=1:""===a&&(a=r.error)}""===a?ie(e("sessions.batch.completed",{action:e("sessions.action.export"),count:t})):le(e("sessions.batch.failed",{action:e("sessions.action.export"),done:t,total:Qe.length,error:a})),ne("")})()}},"export"===re?e("sessions.status.working"):e("sessions.batch.export",{count:Qe.length})),r.createElement("button",{key:"archive",type:"button","data-testid":"sessions-batch-archive",style:ze,disabled:0===Xe.length||""!==re||ue||ye,onClick:()=>{(async()=>{if(""!==re||0===Xe.length)return;ne("archive"),ie(""),le("");let t=0,a="";const r=Xe.map(e=>e.id),n=[];for(const e of r){const r=await Pe(e);r.ok?(t+=1,n.push(e)):""===a&&(a=r.error)}n.length>0&&R(e=>e.filter(e=>!n.includes(e))),""===a?ie(e("sessions.batch.completed",{action:e("sessions.action.archive"),count:t})):le(e("sessions.batch.failed",{action:e("sessions.action.archive"),done:t,total:r.length,error:a})),ne("")})()}},"archive"===re?e("sessions.status.working"):e("sessions.batch.archive",{count:Xe.length})),!1!==d?.canUnarchive?r.createElement("button",{key:"unarchive",type:"button","data-testid":"sessions-batch-unarchive",style:ze,disabled:0===Ze.length||""!==re||ue||ye,onClick:()=>{(async()=>{if(""!==re||0===Ze.length)return;ne("unarchive"),ie(""),le("");let t=0,a="";const r=Ze.map(e=>e.id),n=[];for(const e of r){const r=await Fe(e);r.ok?(t+=1,n.push(e)):""===a&&(a=r.error)}n.length>0&&R(e=>e.filter(e=>!n.includes(e))),""===a?ie(e("sessions.batch.completed",{action:e("sessions.action.unarchive"),count:t})):le(e("sessions.batch.failed",{action:e("sessions.action.unarchive"),done:t,total:r.length,error:a})),ne("")})()}},"unarchive"===re?e("sessions.status.working"):e("sessions.batch.unarchive",{count:Ze.length})):null,r.createElement("button",{key:"delete",type:"button","data-testid":"sessions-batch-delete",style:Me,disabled:0===et.length||""!==re||ue||ye,onClick:()=>{(async()=>{if(""!==re||null!==de||0===et.length)return;ne("delete-plan"),ie(""),le("");const t=[];let a="";for(const r of et)try{const n=await E("sessions-delete-plan",{id:r.id});n.ok?t.push(n.value):""===a&&(a=qa(e,n.error||"unknown"))}catch(t){""===a&&(a=e("sessions.error.network"))}ne(""),""===a&&t.length===et.length?ce({batch:!0,plans:t,sessions:t.map(e=>e.session),consequences:["deletes-session-log"]}):le(e("sessions.batch.failed",{action:e("sessions.action.delete"),done:t.length,total:et.length,error:a||e("sessions.error.network")}))})()}},"delete-plan"===re?e("sessions.status.working"):e("sessions.batch.delete",{count:et.length}))]):null,null===$&&"deleted"!==f?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:z,onChange:e=>{T&&rt(),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:O,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:k,onChange:e=>x(e.target.checked)}),e("sessions.filter.subagent"))):null,""!==Ae?r.createElement("p",{style:{...Re,color:"var(--dsw-alias-state-error-primary)"}},Ae+(!1!==d?.canUnarchive?"":" · "+e("sessions.oneWayHint"))):null,""!==te?r.createElement("p",{style:{...Re,color:"var(--dsw-alias-state-error-primary)"}},te):null,""!==se?r.createElement("p",{"data-testid":"sessions-batch-result",style:{...Re,color:"var(--dsw-alias-state-success-primary)"}},se):null,""!==oe?r.createElement("p",{"data-testid":"sessions-batch-error",style:{...Re,color:"var(--dsw-alias-state-error-primary)"}},oe):null,(()=>{const t=null!==d&&Array.isArray(d.items)?d.items:[];return k&&"deleted"!==f&&t.length>0&&t.every(e=>void 0===e.subagent)?r.createElement("p",{"data-testid":"sessions-subagent-legacy-hint",style:{...Re,color:"var(--dsh-svc-warning)"}},e("sessions.subagent.hostLegacy")):null})(),(()=>{if(null===$)return null;const a=null!==d&&Array.isArray(d.items)?d.items.find(e=>e.id===$.sessionId):void 0,n=""!==z&&"search"===$.view&&null!==D?D.hits.find(e=>e.sessionId===$.sessionId)?.title||"":void 0!==a&&""!==a.title?a.title:"",s=null!==d&&Array.isArray(d.items)?d.items.find(e=>e.id===$.sessionId):void 0,i="search"===$.view&&Array.isArray($.hitItems)?$.hitItems.map(e=>Number(e.seq)).filter(e=>Number.isSafeInteger(e)):[],o="search"===$.view&&"number"==typeof $.centerSeq?i.indexOf($.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")),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],o=Array.isArray(t)?t.slice(s.firstIndex,s.lastIndex+1):[],l=U[s.firstSeq],d=null!==a&&o.some(e=>a.has(Number(e.seq))),c=void 0===l?d:!0===l;return r.createElement("div",{key:s._block+"-"+s.firstSeq,"data-testid":i.testId+s.firstSeq,style:{padding:"6px 10px",borderRadius:"8px",border:"1px solid var(--dsw-alias-border-l1)",background:"transparent",marginBottom:"5px"}},r.createElement("button",{type:"button","data-testid":i.testId+"toggle-"+s.firstSeq,style:{...ze,border:0,padding:0,color:"var(--dsw-alias-label-tertiary)",fontSize:"11px"},onClick:()=>((e,t)=>K(a=>({...a,[e]:!t})))(s.firstSeq,c)},e(c?"sessions.glyph.collapse":"sessions.glyph.expand")+" "+e(c?i.collapseKey:i.countKey,{count:s.count})),c&&o.length>0?r.createElement("div",{style:{marginTop:"6px"}},o.map(e=>n(e))):null)}return n(s)})};return r.createElement("div",{"data-testid":"sessions-detail"},r.createElement("div",{style:{display:"flex",alignItems:"center",gap:"8px",flexWrap:"wrap",marginBottom:"10px"}},r.createElement("button",{type:"button","data-testid":"sessions-detail-back",style: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?.($.sessionId)}catch(e){}}},e("sessions.detail.open")),r.createElement("button",{type:"button","data-testid":"sessions-detail-export",style:ze,disabled:Z===$.sessionId,onClick:()=>{Le($.sessionId)}},Z===$.sessionId?e("sessions.detail.exporting"):e("sessions.detail.exportAll"))),"search"===$.view&&null!==$.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($.hitItems)?$.hitItems.length:0})),r.createElement("button",{type:"button","data-testid":"sessions-jump-prev",style:ze,disabled:void 0===l||L,onClick:()=>{void 0!==l&&$e($.sessionId,l)}},e("sessions.hit.prev")),r.createElement("button",{type:"button","data-testid":"sessions-jump-next",style:ze,disabled:void 0===c||L,onClick:()=>{void 0!==c&&$e($.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",borderRadius:"999px",background:e===$.centerSeq?"var(--dsh-svc-tab-active-bg)":"transparent",color:e===$.centerSeq?"var(--dsh-svc-tab-active-text)":"var(--dsw-alias-label-secondary)"},onClick:()=>{$e($.sessionId,e)}},"#"+e))),L&&0===$.items.length?r.createElement("p",{style:Re},e("sessions.status.loading")):null,m($.items,u),void 0!==$.cursor&&$.items.length>0?r.createElement("button",{type:"button","data-testid":"sessions-detail-more",style:ze,disabled:L,onClick:()=>{We($.sessionId,$.cursor,$.view)}},e("sessions.detail.loadMore",{remaining:Math.max(0,$.total-$.items.length)})):null,void 0===$.cursor&&$.items.length>0?r.createElement("p",{style:Re},e("sessions.detail.noMore",{total:$.total})):null):null,""!==F?r.createElement("p",{style:{...Re,color:"var(--dsw-alias-state-error-primary)"}},F):null,"search"!==$.view?m($.items,null):null,"search"!==$.view&&void 0!==$.cursor?r.createElement("button",{type:"button","data-testid":"sessions-detail-more",style:ze,disabled:L,onClick:()=>{We($.sessionId,$.cursor,$.view)}},e("sessions.detail.loadMore",{remaining:Math.max(0,$.total-$.items.length)})):null,"search"!==$.view&&void 0===$.cursor&&$.items.length>0?r.createElement("p",{style:Re},e("sessions.detail.noMore",{total:$.total})):null)})()??(()=>{if(u)return r.createElement("p",{style:Re},e("sessions.status.loading"));if(""!==m)return r.createElement("p",{"data-testid":"sessions-error",style:{...Re,color:"var(--dsw-alias-state-error-primary)"}},m);if(""!==z.trim()&&"deleted"!==f)return null===D?r.createElement("p",{style:Re},e(N?"sessions.status.loading":"sessions.search.placeholder")):D.error?r.createElement("p",{style:{...Re,color:"var(--dsw-alias-state-error-primary)"}},qa(e,D.error)):0===D.hits.length?r.createElement("p",{style:Re},e("sessions.empty.search",{query:z})):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:{...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",borderRadius:"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,D.query||z,"sessions-hit-highlight-"+t.sessionId)))));if(0===Ge.length){const t="archived"===f?"sessions.empty.archived":"deleted"===f?"sessions.empty.deleted":"sessions.empty.all";return r.createElement("p",{style:Re},e(t))}if("project"!==w||"deleted"===f)return Ge.map(it);const t=[];for(const e of Ge){const a=String(e.cwd||""),r=t.length>0&&t[t.length-1].project===a?t[t.length-1]:null;null===r?t.push({project:a,items:[e]}):r.items.push(e)}return t.map((t,a)=>{const n=!q.includes(t.project);return r.createElement("div",{key:"project-group-"+(""===t.project?"__none__":t.project),"data-testid":"sessions-project-group-"+a,style:{marginBottom:"14px"}},r.createElement("div",{"data-testid":"sessions-project-header-"+a,"data-project":t.project,"data-collapsed":n?"true":"false",role:"button","aria-expanded":String(!n),onClick:()=>{return e=t.project,C(t=>t.includes(e)?t.filter(t=>t!==e):[...t,e]);var e},style:{display:"flex",alignItems:"baseline",gap:"8px",margin:"0 2px 4px",padding:"2px 5px",borderRadius:"6px",cursor:"pointer",userSelect:"none"}},r.createElement("span",{style:{fontSize:"11px",color:"var(--dsw-alias-label-tertiary)",flex:"none"}},e(n?"sessions.glyph.expand":"sessions.glyph.collapse")),r.createElement("span",{style:{fontSize:"11.5px",fontWeight:650,color:"var(--dsw-alias-label-secondary)",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"}},""===t.project?e("sessions.projectGroup.noCwd"):t.project),r.createElement("span",{"data-testid":"sessions-project-count-"+a,style:{fontSize:"11px",color:"var(--dsw-alias-label-tertiary)",flexShrink:0}},1===t.items.length?e("sessions.projectGroup.countOne"):e("sessions.projectGroup.countMany",{count:t.items.length}))),n?null:t.items.map(it))})})(),(()=>{if(null===de)return null;const t=!0===de.batch&&Array.isArray(de.sessions)?de.sessions:null,a=null===t&&de.session||{};return r.createElement("div",{"data-testid":"sessions-delete-modal",style:{position:"fixed",inset:0,zIndex:1200,display:"flex",alignItems:"center",justifyContent:"center",background:"rgba(0,0,0,0.45)"}},r.createElement("div",{style:{width:"min(480px, calc(100vw - 32px))",background:"var(--dsw-alias-bg-layer-2)",border:"1px solid var(--dsw-alias-border-l2)",borderRadius:"14px",padding:"18px",boxShadow:"0 12px 40px rgba(0,0,0,0.25)"}},r.createElement("div",{style:{fontSize:"15px",fontWeight:700,color:"var(--dsw-alias-label-primary)",marginBottom:"8px"}},null===t?e("sessions.delete.title"):e("sessions.batch.deleteTitle",{count:t.length})),r.createElement("p",{style:{fontSize:"13px",color:"var(--dsw-alias-label-secondary)",lineHeight:1.5,margin:"0 0 10px"}},e(null===t?"sessions.delete.body":"sessions.batch.deleteBody")),null===t?r.createElement("div",{style:{fontSize:"13px",fontWeight:600,color:"var(--dsw-alias-label-primary)",marginBottom:"6px"}},a.title||e("sessions.row.noTitle")):r.createElement("ul",{"data-testid":"sessions-batch-delete-list",style:{margin:"0 0 12px",paddingLeft:"18px",maxHeight:"220px",overflowY:"auto",fontSize:"12px",color:"var(--dsw-alias-label-secondary)",lineHeight:1.7}},t.map(t=>r.createElement("li",{key:t.id},e("sessions.batch.deleteItem",{title:t.title||e("sessions.row.noTitle"),bytes:Ea(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:Ea(a.bytes)})),de.consequences&&de.consequences.includes("hides-from-official-sidebar")?r.createElement("li",null,e("sessions.delete.consequence.sidebar")):null):null,""!==me?r.createElement("p",{style:{...Re,color:"var(--dsw-alias-state-error-primary)"}},me):null,r.createElement("div",{style:{display:"flex",justifyContent:"flex-end",gap:"8px"}},r.createElement("button",{type:"button","data-testid":"sessions-delete-cancel",style:ze,disabled:ue,onClick:()=>{ce(null),ge("")}},e("sessions.delete.cancel")),r.createElement("button",{type:"button","data-testid":"sessions-delete-confirm",style:Oe,disabled:ue,onClick:()=>{(async()=>{if(null===de||ue)return;pe(!0),ge("");const t=!0===de.batch&&Array.isArray(de.plans)?de.plans:[de];let a=0,r="";for(const n of t)try{const t=await E("sessions-delete",{planId:n.planId});t.ok?(a+=1,_e(n.session)):""===r&&(r=qa(e,t.error||"unknown"))}catch(t){""===r&&(r=e("sessions.error.network"))}!0===de.batch?(ce(null),be(e=>e+1),""===r?(ie(e("sessions.batch.completed",{action:e("sessions.action.delete"),count:a})),le("")):(ie(""),le(e("sessions.batch.failed",{action:e("sessions.action.delete"),done:a,total:t.length,error:r})))):""===r?(ce(null),be(e=>e+1)):ge(r),pe(!1)})()}},e(ue?"sessions.status.working":"sessions.delete.confirm")))))})(),(()=>{if(null===ve)return null;const t=!0===ve.batch,a=Array.isArray(ve.items)?ve.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")),""!==xe?r.createElement("p",{style:{...Re,color:"var(--dsw-alias-state-error-primary)"}},xe):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:ye,onClick:()=>{fe(null),we("")}},e("sessions.clear.cancel")),r.createElement("button",{type:"button","data-testid":"sessions-clear-confirm",style:Oe,disabled:ye,onClick:()=>{(async()=>{if(null===ve||ye)return;ke(!0),we("");const t=(Array.isArray(ve.items)?ve.items:[]).map(e=>e.id),a=!0===ve.batch;try{const r=await E("sessions-clear-deleted",{ids:t});if(r.ok)(e=>{const t=new Set(e),a=Ca.deleted;void 0!==a&&Array.isArray(a.deleted)&&(Ca.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))}}),R(e=>e.filter(e=>!t.has(e)))})(t),fe(null),a&&(ie(e("sessions.batch.completed",{action:e("sessions.action.clear"),count:t.length})),le(""));else{const n=qa(e,r.error||"unknown");a?le(e("sessions.batch.failed",{action:e("sessions.action.clear"),done:0,total:t.length,error:n})):we(n)}}catch(r){const n=e("sessions.error.network");a?le(e("sessions.batch.failed",{action:e("sessions.action.clear"),done:0,total:t.length,error:n})):we(n)}finally{ke(!1)}})()}},e(ye?"sessions.status.working":"sessions.clear.confirm")))))})())}function Oa(){const e=V(),[t,n]=Se.useEnabled(),s={color:"var(--dsw-alias-label-secondary)",fontSize:"12px",marginTop:"8px",lineHeight:1.5},[i,o]=a(qt.getSnapshot());k(()=>qt.subscribe(()=>o(qt.getSnapshot())),[]),k(()=>(Pt({all:!0}),()=>Ft({all:!0})),[]);const[l,d]=a(It()),[c,u]=a(""),p=i.providers||[],[m,g]=a(null),[h,b]=a(null),[v,f]=a({expiresAt:"",label:""}),[y,x]=a(null),[w,S]=a({name:"",value:""}),[q,C]=a(!1);k(()=>{if(!q)return;const e=setTimeout(()=>C(!1),3e3);return()=>clearTimeout(e)},[q]);const T=()=>{x(null),S({name:"",value:""}),C(!1)},A=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})},I=async()=>{if(null!==m){u("");try{const t={provider:m.provider};""!==v.expiresAt&&(t.expiresAt=v.expiresAt),""!==v.label&&(t.label=v.label);const a=await E("quota-reset-card",t);if(!0!==a?.ok)return void u(e("quota.saveFailed",{error:String(a?.error??"")}));f({expiresAt:"",label:""}),await jt({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}))}}},R=async t=>{u("");try{const a=await E("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 jt({scope:"all"})}catch(t){u(e("quota.saveFailed",{error:"network"}))}},z=async t=>{u("");try{const a=await E("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 jt({scope:"all"})}catch(t){u(e("quota.saveFailed",{error:"network"}))}},M=(e,t)=>z({provider:e,kind:t}),[O,j]=a(function(){try{const e=JSON.parse(localStorage.getItem(Rt)??"null");return Array.isArray(e)?e.filter(e=>"string"==typeof e&&""!==e).slice(0,64):[]}catch(e){return[]}}()),[N,H]=a(!1),D=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),O),W=p.filter(e=>!0!==e.adapted),$={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=D.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(Rt,JSON.stringify(e.slice(0,64)))}catch(e){}}(a))},[L,P]=a(""),[F,_]=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);Tt.includes(t)&&(d(t),function(e){try{localStorage.setItem(Ct,String(e))}catch(e){}}(t),null!==Wt.nextDispose&&(Wt.nextDispose(),Wt.nextDispose=null),Bt())},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(Tt.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",borderRadius:"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",borderRadius:"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,...D.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(N),title:e("quota.reorder"),onClick:()=>H(!N),style:{fontSize:"12px",lineHeight:"20px",padding:"2px 12px",borderRadius:999,border:"1px solid "+(N?"var(--dsw-alias-brand-primary)":"var(--dsh-svc-border-strong)"),background:"transparent",color:N?"var(--dsw-alias-brand-primary)":"var(--dsw-alias-label-primary)",cursor:"pointer"}},e("quota.reorder")))]:[],0===D.length?r.createElement("p",{style:s},e("quota.noAdapted")):r.createElement("div",{"data-testid":"quota-card-list",style:{display:"flex",flexDirection:"column",gap:"10px"}},D.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:X("neutral",{marginLeft:"6px",verticalAlign:"middle"})},e("quota.kindAuto")):null),s=Array.isArray(t.windows)?t.windows:[],i=h===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?oa(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=Xt(t,s),c=null!==d?r.createElement(Zt,{key:"peak-timeline",showCaption:!0,schedule:d}):null,p=Array.isArray(t.resetCards)?t.resetCards.map((a,n)=>{const s=ea(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 E("quota-reset-card",{provider:t,remove:!0,id:a}),await jt({scope:"all"})}catch(t){u(e("quota.saveFailed",{error:"network"}))}})(t.provider,i),style:{fontSize:"11px",padding:"2px 10px",borderRadius: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")))}):[],k=null!==m&&m.provider===t.provider,O={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:v[n],onChange:e=>f({...v,[n]:e.target.value}),style:O}));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"}},...N?[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===D.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===D.length-1?"var(--dsw-alias-label-tertiary)":"var(--dsw-alias-label-secondary)",cursor:a===D.length-1?"default":"pointer",opacity:a===D.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:()=>R(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:Ut(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:()=>b(i?null:t.provider),style:{fontSize:"11px",lineHeight:"20px",padding:"2px 10px",borderRadius: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!==y&&y.provider===t.provider,n=t.credentialHints,s=n.some(e=>e.name===w.name)?w.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=>{S({...w,name:e.target.value}),C(!1)},style:$},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:w.value,onChange:e=>S({...w,value:e.target.value}),autoComplete:"off",style:O})),r.createElement("button",{type:"button","data-testid":"quota-cred-save",onClick:()=>(async t=>{u("");try{const e=await E("quota-credential-set",{provider:t,name:w.name,value:w.value});if(!0!==e?.ok)return void u(A(e));T(),await R(t)}catch(t){u(e("quota.saveFailed",{error:"network"}))}})(t.provider),disabled:""===w.value.trim(),style:{minHeight:"28px",padding:"4px 12px",borderRadius:"var(--dsh-svc-radius-control)",border:"1px solid var(--dsw-alias-brand-primary)",background:""===w.value.trim()?"transparent":"var(--dsw-alias-brand-primary)",color:""===w.value.trim()?"var(--dsw-alias-label-tertiary)":"var(--dsh-svc-brand-text)",cursor:""===w.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:q?e("quota.credential.clearConfirm"):void 0,onClick:()=>{q?(C(!1),(async(t,a)=>{u("");try{const e=await E("quota-credential-unset",{provider:t,name:a});if(!0!==e?.ok)return void u(A(e));await R(t)}catch(t){u(e("quota.saveFailed",{error:"network"}))}})(t.provider,s)):C(!0)},style:{minHeight:"28px",padding:"4px 12px",borderRadius:"var(--dsh-svc-radius-control)",border:"1px solid var(--dsw-alias-state-error-primary)",background:q?"var(--dsw-alias-state-error-primary)":"transparent",color:q?"var(--dsh-svc-brand-text)":"var(--dsw-alias-state-error-primary)",cursor:"pointer",fontSize:"12px",whiteSpace:"nowrap"}},e(q?"quota.credential.clearConfirm":"quota.credential.clear"))]:[],r.createElement("button",{type:"button","data-testid":"quota-cred-cancel",onClick:T,style:Q()},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:[];g(null),x({provider:e.provider}),S({name:(t.find(e=>!0===e.configured)??t[0])?.name??"",value:""}),C(!1)})(t),style:{fontSize:"12px",lineHeight:"20px",padding:"4px 14px",borderRadius: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&&k?[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:I,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:()=>g(null),style:Q()},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,z({provider:a,clear:!0})):M(t.provider,e.target.value)},style:$},At.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=>{g({provider:e.provider}),f({expiresAt:"",label:""})})(t),style:{fontSize:"12px",lineHeight:"20px",padding:"4px 14px",borderRadius: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")))]:[]]:[])})),...W.length>0?[r.createElement("div",{key:"quota-add-adapt","data-testid":"quota-add-adapt",style:{display:"flex",alignItems:"center",flexWrap:"wrap",gap:"8px",marginTop:D.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:L,onChange:e=>P(e.target.value),style:$},r.createElement("option",{value:""},e("quota.addPickProvider")),W.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=>_(e.target.value),style:$},r.createElement("option",{value:""},e("quota.addPickKind")),At.map(t=>r.createElement("option",{key:t,value:t},e(`quota.kind.${t}`)))),r.createElement("button",{type:"button","data-testid":"quota-add-submit",disabled:""===L||""===F,onClick:()=>{M(L,F),P(""),_("")},style:{fontSize:"12px",padding:"3px 12px",borderRadius:"7px",border:"1px solid var(--dsw-alias-brand-primary)",background:""===L||""===F?"transparent":"var(--dsw-alias-brand-primary)",color:""===L||""===F?"var(--dsw-alias-label-tertiary)":"var(--dsh-svc-brand-text)",cursor:""===L||""===F?"default":"pointer"}},e("quota.adapt")))]:[])}function ja(){const e=V(),{value:n}=G(),[s,i]=a(null),[o,l]=a(null),[d,c]=a(null),[u,p]=a(!1),[m,g]=a(0),[h,b]=a(null),[v,f]=a(null),[y,w]=a(null),[S,q]=a(null),[C,T]=a(!1),[A,I]=a(!1),[R,z]=a(null),[M,O]=a(!1),[j,N]=a(!1),[H,D]=a(null),[W,$]=a(!1),[B,L]=a({items:[],totalBytes:0}),[F,_]=a(!1),[U,Y]=a(null),X=x(0),[re,ne]=a(null),[se,pe]=a(null),[me,ge]=a(null),[he,be]=a(null),[ve,fe]=a(null),[ye,ke]=a(!1),[we,Ee]=a(!1),[Se,qe]=a(!1),[Ce,Te]=a(!1),[Ae,Ie]=a(null),[Re,ze]=a(null),[Me,Oe]=a(null),[je,Ne]=a(null),[He,De]=a(null),[We,$e]=a(!1),[Be,Le]=a(null),[Pe,Fe]=a(!1),[Ue,Ke]=a(null),[Ge,Ve]=a(!1),[Ye,Je]=a(!1),[Qe,Xe]=a(null),[Ze,et]=a("all"),[tt,rt]=a(!1),[ut,pt]=a(!1),[gt,ht]=a(!1),[bt,yt]=a("today"),[kt,wt]=a("overview"),[Et,qt]=a(!1),Ct=at(),Tt=st(),At=(()=>{const[e,t]=a(ot);return k(()=>(it.add(t),t(ot),()=>it.delete(t)),[]),e})(),It={timezoneOffsetMinutes:(new Date).getTimezoneOffset()};k(()=>{dt().then(e=>{e&&e.ok&&(Ie(e.value.current),ze(e.value.pluginVersion||null))})},[]);const Rt=t=>{t&&!1!==t.ok?(Oe(t.value),Ne(null)):Ne(e("update.unavailable"))};k(()=>{let t=!0;return E("check-update",{}).then(e=>{t&&Rt(e)}).catch(()=>{t&&Ne(e("update.unavailable"))}),()=>{t=!1}},[]),k(()=>{if(!K("healthDiagnostics"))return()=>{};let t=!0;return E("permissions-plan",{}).then(a=>{t&&(a&&!1!==a.ok?q(a.value):z(e("permissions.error")))}).catch(()=>{t&&z(e("permissions.error"))}),()=>{t=!1}},[n.healthDiagnostics]),k(()=>{if(!K("modelUsage"))return()=>{};let t=!0;return E("usage",It).then(async a=>{if(t)if(a&&!1!==a.ok){if(De(a.value),!(a.value.updatedAt>0&&Date.now()-a.value.updatedAt<=3e5))try{const e=await E("usage-refresh",It);t&&e&&e.ok&&De(e.value)}catch(e){}}else Le(e("usage.error"))}).catch(()=>{t&&Le(e("usage.error"))}),()=>{t=!1}},[n.modelUsage]),k(()=>{if(!K("backupMaintenance"))return()=>{};let t=!0;return E("backup-list",{}).then(a=>{t&&(a&&!1!==a.ok?L(a.value):ne(e("backup.error")))}).catch(()=>{t&&ne(e("backup.error"))}),()=>{t=!1}},[n.backupMaintenance]),k(()=>{let a=!0,r=()=>{};const n=async()=>{try{const e=await E("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 zt=async(t=!1)=>{if(K("healthDiagnostics")&&!(!t&&m>0&&Date.now()-m<=3e4)){p(!0);try{const e=await E("diagnostics",{});if(!e||!1===e.ok)throw new Error("diagnostics failed");c(e.value),g(Date.now())}catch(t){l(e("health.error"))}finally{p(!1)}}},Mt=async()=>{$e(!0),Le(null);try{const e=await E("usage-refresh",It);if(!e||!1===e.ok)throw new Error("usage refresh failed");De(e.value)}catch(t){Le(e("usage.error"))}finally{$e(!1)}},Ot=t=>{const a="backup.error."+String(t||""),r=e(a);return r===a?e("backup.restoreError"):r},jt=async()=>{if(ve&&!F){_(!0),ne(null);try{const e=await E("backup-restore-commit",{planId:ve.planId});if(!e||!1===e.ok)throw Object.assign(new Error("backup restore failed"),{code:e?.error});if(ge(null),be(null),fe(null),!0===e.value?.restart?.requiresManualRestart)ke(!0);else{const t=e.value?.restart?.previousInstanceId||e.value?.previousInstanceId;"string"==typeof t&&t.length>0&&mt(t).catch(()=>{})}}catch(e){fe(null),ne(Ot(e?.code))}finally{_(!1)}}},Nt=()=>{F||(ge(null),be(null),fe(null))},Ht={"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"},Dt=async()=>{if(!ct){ct=!0;try{let t=Tt;if(null===t&&(await dt(),t=nt),!Ge&&null!==t&&!0===t.manualStartLikely)return Ke(null),void Ve(!0);Ve(!1),Fe(!0),Ke(null);const a=await dt(),r=a&&a.ok?a.value.instanceId:void 0,n=await E("upgrade",{});if(!n||!1===n.ok){const t=n&&"string"==typeof n.error?n.error.trim():"",a="string"==typeof t&&t.length>0?Ht[t]:void 0;return void Ke(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&&mt(r).catch(()=>{}),(lt=null,dt()).catch(()=>{}),(async()=>{const e=await E("check-update",{}).catch(()=>null);e&&Rt(e)})().catch(()=>{})}catch(t){const a=t instanceof Error&&"string"==typeof t.message&&"upgrade failed"!==t.message?t.message.trim():"";console.error("dsh-service: upgrade failed",a||t),Ke(a?e("update.upgradeErrorDetail",{detail:a}):e("update.upgradeError"))}finally{ct=!1,Fe(!1)}}},Wt=J(),$t=(J("primary"),J("brandGhost")),Bt=J("neutral"),Lt=J("danger"),Pt=J("dangerGhost"),Ft=J("ghost"),_t=Object.assign({},Wt,{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)"},Vt=Z(),Yt={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"},Jt={color:"var(--dsw-alias-brand-primary)",borderBottom:"2px solid var(--dsw-alias-brand-primary)",fontWeight:700},Qt=Object.assign({},Yt,{padding:"3px 6px",fontSize:"11px"}),Xt={fontSize:"14px",fontWeight:700,margin:"0 0 8px",color:"var(--dsw-alias-label-primary)"},Zt=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"},ea=(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)),ta=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:ta(t),label:`${t.getMonth()+1}/${t.getDate()}`})}const ra=[["inputTokens","usage.input","#79aaf7"],["outputTokens","usage.output","#f1b35b"],["cacheTokens","usage.cache","#48c7b0"]],na=e=>{const t=He&&He.days?He.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}},sa=e=>{const t=Number(e.inputTokens||0)+Number(e.cacheReadTokens||0)+Number(e.cacheWriteTokens||0);return 0===t?0:Number(e.cacheReadTokens||0)/t},ia=e=>Number(e.inputTokens||0)+Number(e.outputTokens||0)+Number(e.cacheReadTokens||0)+Number(e.cacheWriteTokens||0),oa=(e,t)=>"cacheTokens"===t?e.cacheReadTokens+e.cacheWriteTokens:e[t]||0,la=e=>P(e,{invalid:"0"}),da=(t,a)=>"cacheHitRate"===a?(100*Number(t)).toFixed(1)+"%":"steps"===a?e("usage.stepsValue",{count:Number(t).toLocaleString()}):la(t),ca=aa.map(e=>na(e.key)),pa=ca.map(e=>ra.reduce((t,[a])=>t+oa(e,a),0)),ga=Math.max(1,...pa),ha=[ga,.75*ga,.5*ga,.25*ga,0],ba=na(aa[6].key),va=aa.reduce((e,t)=>{const a=na(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"===Ze?(He?.projects||[]).map(e=>e.id):[Ze],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)},wa=new Map,Ea=new Map,Sa=new Map,qa=new Set(aa.map(e=>e.key)),Ca=aa[aa.length-1].key;for(const[e,t]of Object.entries(He?.days||{})){const a=[Sa];qa.has(e)&&a.push(Ea),e===Ca&&a.push(wa);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 Ta=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:Zt(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}`)})},Aa=(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",la(oa(e,"inputTokens")+oa(e,"outputTokens")+oa(e,"cacheTokens"))],...ra.map(([t,a])=>[a,la(oa(e,t))]),["usage.steps",da(e.steps,"steps")],["usage.hitRate",da(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)))),Ia=[...("today"===bt?wa:"all"===bt?Sa:Ea).values()].sort((e,t)=>ia(t)-ia(e)||t.steps-e.steps||e.id.localeCompare(t.id)),Ra=gt?Ia:Ia.slice(0,3),za=Math.max(0,Ia.length-3),ja=Math.max(1,...Ra.map(e=>ia(e))),Na=e=>(e||[]).filter(e=>"all"===Ze||e.projectId===Ze).sort((e,t)=>t.count-e.count||e.key.localeCompare(t.key)),Ha=Na(He?.errors?.models),Da=Na(He?.errors?.tools),Wa=(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)))),$a=r.createElement("div",{key:"usage-section","data-testid":"usage-card",style:Gt},r.createElement("div",{style:Xt},e("usage.structure")),r.createElement("p",{style:Object.assign({},Kt,{marginTop:"-4px"})},e("usage.structureHint")),He&&He.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({},Yt,"all"===Ze?Jt:{color:"var(--dsw-alias-label-secondary)",borderBottom:"2px solid transparent"}),onClick:()=>et("all")},e("usage.allProjects")),He.projects.map(e=>r.createElement("button",{key:e.id,style:Object.assign({},Yt,Ze===e.id?Jt:{color:"var(--dsw-alias-label-secondary)",borderBottom:"2px solid transparent"}),onClick:()=>et(e.id)},e.title))):null,He&&He.indexedSessions>0?r.createElement("div",{"data-testid":"usage-statistics-region",style:Object.assign({},Vt,{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:Bt,onClick:Mt,disabled:We},e(We?"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%)"}},la(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:la(pa[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,pa[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=oa(ca[a],e),o=0===pa[a]?0:i/pa[a]*100,l=`${t.key}-${e}`,d=Qe&&Qe.id===l;return r.createElement("div",{key:e,"data-testid":`usage-segment-${l}`,"data-value":i,onMouseEnter:e=>Xe({id:l,date:t.key,totals:ca[a],x:e.clientX,y:e.clientY}),onMouseMove:e=>Xe(t=>t&&t.id===l?Object.assign({},t,{x:e.clientX,y:e.clientY}):t),onMouseLeave:()=>Xe(null),style:{height:`${o}%`,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:la(pa.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"}},Aa("today","usage.today",ba),Aa("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.${bt}`)),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({},Qt,bt===t?Jt:{color:"var(--dsw-alias-label-secondary)",borderBottom:"2px solid transparent"}),onClick:()=>yt(t)},e(`usage.modelScope.${t}`))))),Ra.map((t,a)=>{const n=ia(t),s=Math.round(n/ja*1e4)/100+"%";return r.createElement("div",{key:t.id,"data-testid":`usage-model-row-${t.id}`,style:{padding:"8px 2px",borderTop:0===a?0:"1px solid var(--dsw-alias-border-l1)"}},r.createElement("div",{style:{display:"flex",justifyContent:"space-between",gap:"12px",alignItems:"baseline",fontSize:"12px"}},r.createElement("span",{style:{overflowWrap:"anywhere"}},t.id),r.createElement("span",{style:{fontWeight:650,whiteSpace:"nowrap"}},la(n))),r.createElement("div",{"data-testid":`usage-model-bar-${t.id}`,"data-value":n,"aria-label":e(`usage.modelBar.${bt}`,{model:t.id,total:la(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:da(sa(t),"cacheHitRate"),input:la(t.inputTokens),output:la(t.outputTokens)})))}),za>0?r.createElement("button",{style:Object.assign({},_t,{borderTop:"1px solid var(--dsw-alias-border-l1)",marginTop:"2px"}),onClick:()=>ht(e=>!e)},`${gt?"▾":"▸"} ${e(gt?"usage.models.less":"usage.models.more",{count:za})}`):null)):r.createElement("p",{style:Kt},Be||e("usage.empty")),...He&&He.indexedSessions>0?[]:[r.createElement("div",{key:"usage-refresh-fallback",style:Ut},r.createElement("button",{style:Bt,"data-variant":"neutral",onClick:Mt,disabled:We},e(We?"usage.refreshing":"usage.refresh")))]),Ba=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}`:""}`:"—",La=r.createElement("div",{key:"container-info",style:{marginTop:"18px"}},r.createElement("div",{style:Xt},e("overview.container")),s?r.createElement("div",{"data-testid":"health-display",style:Object.assign({},Vt,{display:"grid",gridTemplateColumns:"repeat(2, minmax(0, 1fr))",gap:"8px"})},ea("health.platform",Ba),ea("health.nodeVersion","string"==typeof s.nodeVersion&&s.nodeVersion?s.nodeVersion:"—"),ea("health.uptime",(t=>{const a=Math.floor(Number(t)/60);return e("health.uptimeValue",{hours:Math.floor(a/60),minutes:a%60})})(s.uptimeSeconds)),ea("health.rss",(e=>{const t=Number(e)/1048576;return(Math.round(10*t)/10).toLocaleString(void 0,{maximumFractionDigits:1})+" MB"})(s.rssBytes)),ea("health.liveSessions",String(s.liveSessions)),ea("health.persistedSessions",String(s.persistedSessions)),ea("health.activeAgents",String(s.activeAgents)),ea("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:Xt},e("overview.errors")),r.createElement("div",{"data-testid":"overview-errors-region",style:Vt},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:_t,onClick:()=>rt(e=>!e)},`${tt?"▾":"▸"} ${e("usage.errors.toggle",{count:Ha.length})}`),tt?r.createElement("div",{style:{padding:"0 2px 8px"}},Wa("model",Ha)):null),r.createElement("div",null,r.createElement("button",{style:_t,onClick:()=>pt(e=>!e)},`${ut?"▾":"▸"} ${e("usage.toolErrors.toggle",{count:Da.length})}`),ut?r.createElement("div",{style:{padding:"0 2px 8px"}},Wa("tool",Da)):null)))),Fa=r.createElement("div",{"data-testid":"health-diagnostics-region",style:Vt},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({},Vt,{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",borderRadius:"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)"}},Ta(t))))})):null),_a=Array.isArray(d?.pluginIssues)?d.pluginIssues:[],Ua=0===_a.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)"}},_a.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=h===t.entryId,l=v===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",borderRadius:"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:Lt,disabled:l,onClick:()=>(async t=>{if(null!==t&&"object"==typeof t&&null===v){f(t.entryId),w(null);try{const e=await E("plugin-restart",{entryId:t.entryId});if(!e||!0!==e.ok)throw Object.assign(new Error("plugin restart failed"),{code:e?.error});b(null),await zt(!0)}catch(t){b(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{f(null)}}})(t)},e(l?"plugin.restarting":"plugin.restartConfirm")),r.createElement("button",{type:"button",style:Ft,disabled:l,onClick:()=>{b(null),w(null)}},e("plugin.restartCancel")))):r.createElement("button",{type:"button","data-testid":`plugin-restart-${t.entryId}`,style:Pt,disabled:l,onClick:()=>{b(t.entryId),w(null)}},e(l?"plugin.restarting":"plugin.restart"))):null,y?r.createElement("p",{"data-testid":"plugin-restart-error",style:Object.assign({},Kt,{margin:"4px 0 0",color:"var(--dsw-alias-state-error-primary)"})},y):null))})),Ka=null!==d?.pluginCompat&&"object"==typeof d?.pluginCompat?d.pluginCompat:null,Ga=Array.isArray(Ka?.issues)?Ka.issues:[],Va=Array.isArray(Ka?.declaredOnly)?Ka.declaredOnly:[],Ya=Array.isArray(Ka?.unknown)?Ka.unknown:[],Ja=[...Ga.map((e,t)=>({key:`broken-${t}`,kind:"broken",moduleName:e.moduleName,breaks:e.breaks})),...Va.map((e,t)=>({key:`declared-${t}`,kind:"declared",moduleName:e.moduleName})),...Ya.map((e,t)=>({key:`unknown-${t}`,kind:"unknown",moduleName:e.moduleName,reason:e.reason}))],Qa=null===Ka||0===Ja.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)"}},Ja.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",borderRadius:"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)))})),Xa=S&&!0===S.supported?S.items.filter(e=>!1===e.writable).length:0,Za=Xa>0||H&&(H.ownerIssues>0||H.directoryModeIssues>0||H.fileModeIssues>0||H.unreadable>0),er=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:Xt},e("permissions.title")),r.createElement("button",{type:"button","data-testid":"permissions-toggle","aria-expanded":String(j),onClick:()=>N(e=>!e),style:{fontSize:"12px",lineHeight:"20px",padding:"2px 12px",borderRadius:999,border:"1px solid var(--dsh-svc-border-strong)",background:"transparent",color:Xa>0?"var(--dsw-alias-state-warn-primary)":"var(--dsw-alias-label-primary)",cursor:"pointer"}},`${j?"▾":"▸"} ${e(j?"permissions.hide":"permissions.show")}${Xa>0?` · ${Xa}`:""}`)),j?r.createElement("div",{style:Object.assign({},Vt,{marginTop:"4px"})},r.createElement("p",{style:Kt},e("permissions.description")),Xa>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:Xa}))):null,r.createElement("p",{style:Object.assign({},Kt,{fontWeight:600,color:Xa>0?"var(--dsw-alias-state-warn-primary)":"var(--dsw-alias-label-primary)"})},e(Xa>0?"permissions.summary.warning":"permissions.summary.ok",{count:Xa>0?Xa:S.items.length})),r.createElement("p",{style:Object.assign({},Kt,{fontWeight:600})},e("permissions.target",{owner:S.targetOwner})),r.createElement("div",{style:{display:"flex",gap:"8px",flexWrap:"wrap"}},r.createElement("button",{style:Bt,onClick:()=>O(e=>!e)},e(M?"permissions.hideDetails":"permissions.showDetails")),r.createElement("button",{style:Bt,"data-variant":"neutral",onClick:async()=>{if(S&&!0===S.supported){$(!0),z(null);try{const e=await E("permissions-deep",{planId:S.planId});if(!e||!1===e.ok)throw new Error("deep permission check failed");D(e.value)}catch(t){z(e("permissions.error"))}finally{$(!1)}}},disabled:W},e(W?"permissions.deepChecking":"permissions.deep"))),H?r.createElement("p",{style:Kt},e("permissions.deepSummary",{scanned:H.scanned,duration:H.durationMs,owner:H.ownerIssues,directories:H.directoryModeIssues,files:H.fileModeIssues,unreadable:H.unreadable})):null,M?r.createElement("div",{style:{display:"grid",gap:"8px",marginTop:"8px"}},S.items.map(e=>r.createElement("div",{key:e.path,style:{padding:"9px 10px",borderRadius:"6px",border:"1px solid var(--dsw-alias-border-l1)",background:"var(--dsh-svc-raised-bg)",color:"var(--dsw-alias-label-primary)"}},r.createElement("div",{style:{fontSize:"12px",fontWeight:600}},e.label),r.createElement("div",{style:{fontFamily:"monospace",fontSize:"11px",color:"var(--dsw-alias-label-secondary)",overflowWrap:"anywhere"}},e.path),r.createElement("div",{style:{fontFamily:"monospace",fontSize:"12px",marginTop:"3px"}},`${e.owner} · ${e.mode}`)))):null,C?r.createElement("div",{style:{marginTop:"10px"}},r.createElement("p",{style:Object.assign({},Kt,{color:"var(--dsw-alias-state-error-primary)"})},e("permissions.confirmHint")),r.createElement("div",{style:{display:"flex",gap:"8px"}},r.createElement("button",{style:Lt,disabled:A,onClick:async()=>{if(S&&!0===S.supported){I(!0),z(null);try{const e=await E("permissions-repair",{planId:S.planId});if(!e||!1===e.ok)throw new Error("permission repair failed");q(e.value),T(!1)}catch(t){z(e("permissions.error"))}finally{I(!1)}}}},e(A?"permissions.repairing":"permissions.confirm")),r.createElement("button",{style:Ft,disabled:A,onClick:()=>T(!1)},e("permissions.cancel")))):Za?r.createElement("button",{style:Object.assign({},Pt,{marginTop:"10px"}),"data-variant":"dangerGhost",disabled:A,onClick:()=>T(!0)},e("permissions.repair")):null,R?r.createElement("p",{style:Object.assign({},Kt,{color:"var(--dsw-alias-state-error-primary)"})},R):null):null):null,tr=r.createElement("div",{key:"health-section","data-testid":"health-card",style:Gt},Fa,Ua,Qa,er),ar=F&&!0===U?.active,rr=ar&&U.phase||"copy",nr={copy:1,archive:2,validate:3,publish:4}[rr]||1,sr=(()=>{if(!ar)return 0;const e=Number(U.totalBytes)||0;let t;if("copy"===rr)t=e>0?Math.min(30,Math.floor(U.copiedBytes/e*30)):0;else if("archive"===rr){const a=e>0?Math.min(1,Number(U.archiveBytes)/e):0;t=Math.min(70,30+Math.floor(40*a))}else t="validate"===rr?70:100;const a=Math.max(X.current,t);return X.current=a,a})(),ir=ar?"copy"===rr?`${Zt(U.copiedBytes)} / ${Zt(U.totalBytes)}`:U.archiveBytes>0?Zt(U.archiveBytes):"":"",or=r.createElement("div",{key:"backup-section"},r.createElement("div",{style:Xt},e("backup.title")),r.createElement("div",{style:Object.assign({},Vt,{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({},$t,{flex:1,minWidth:0,display:"inline-flex",alignItems:"center",justifyContent:"center",textAlign:"center"}),"data-variant":"brandGhost",onClick:async()=>{_(!0),ne(null),Y(null),X.current=0;let e=!1,a=()=>{};const r=async()=>{if(!e){try{const t=await E("backup-progress",{});!e&&t&&t.ok&&Y(!0===t.value?.active?t.value:null)}catch(e){}e||(a=t.timer.timeout(r,400))}};r();try{const e=await E("backup-create",{});if(!e||!1===e.ok)throw Object.assign(new Error("backup failed"),{code:e?.error});L({items:e.value.items,totalBytes:e.value.totalBytes})}catch(e){ne(Ot(e?.code))}finally{e=!0,a(),Y(null),_(!1)}},disabled:F},e(F?"backup.creating":"backup.create")),r.createElement("label",{style:Object.assign({},Bt,{flex:1,minWidth:0,display:"inline-flex",alignItems:"center",justifyContent:"center",textAlign:"center",cursor:Se?"default":"pointer"})},e(Se?"backup.importing":"backup.import"),r.createElement("input",{type:"file",accept:".tar.gz,application/gzip",disabled:Se,onChange:t=>{const a=t.target.files&&t.target.files[0];if(t.target.value="",!a)return;qe(!0),ne(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 E("backup-import",{name:a.name,data:btoa(t)});if(!n||!1===n.ok)throw Object.assign(new Error("backup import failed"),{code:n?.error});L(n.value)}catch(t){ne(t?.code?Ot(t.code):e("backup.error"))}finally{qe(!1)}},r.onerror=()=>{qe(!1),ne(e("backup.error"))},r.readAsArrayBuffer(a)},style:{display:"none"}}))),F&&!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."+rr,{current:nr,total:4})),r.createElement("span",null,ir)),r.createElement("div",{style:{marginTop:"5px",height:"6px",borderRadius:"999px",background:"var(--dsh-svc-raised-bg)",border:"1px solid var(--dsw-alias-border-l1)",overflow:"hidden"}},r.createElement("div",{style:{height:"100%",width:sr+"%",background:"var(--dsw-alias-brand-primary)",transition:"width 240ms ease"}}))):null,r.createElement("p",{style:Kt},e("backup.total",{size:Zt(B.totalBytes)})),ye?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,re?r.createElement("p",{style:Object.assign({},Kt,{color:"var(--dsw-alias-state-error-primary)"})},re):null,0===B.items.length?r.createElement("p",{style:Kt},e("backup.empty")):B.items.length>10?r.createElement("button",{style:Object.assign({},Ft,{marginTop:"8px"}),onClick:()=>Te(e=>!e)},e(Ce?"backup.hideRecords":"backup.showRecords")):null,B.items.length>0&&(B.items.length<=10||Ce)?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"}},`${Zt(t.sizeBytes)} · ${new Date(t.createdAt).toLocaleString()}`)),r.createElement("div",{style:{display:"flex",gap:"6px",flexShrink:0}},se===t.id||me===t.id?null:r.createElement("button",{style:Q(),disabled:we||F,onClick:()=>(async t=>{Ee(!0),ne(null);try{const e=await E("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){ne(e("backup.exportError"))}finally{Ee(!1)}})(t.id)},e(we?"backup.exporting":"backup.export")),se===t.id||me===t.id?null:r.createElement("button",{style:Q(),disabled:F,onClick:()=>(async e=>{_(!0),ne(null),ke(!1),be(null),fe(null),ge(e);try{const t=await E("backup-inspect",{id:e});if(!t||!1===t.ok)throw Object.assign(new Error("backup inspect failed"),{code:t?.error});if(be(t.value),!0!==t.value.validForRestore)return;const a=await E("backup-restore-prepare",{id:e});if(!a||!1===a.ok)throw Object.assign(new Error("backup prepare failed"),{code:a?.error});fe(a.value)}catch(e){ne(Ot(e?.code))}finally{_(!1)}})(t.id)},e(F&&me===t.id?"backup.inspecting":"backup.restore")),se===t.id||me===t.id?null:r.createElement("button",{style:Object.assign({},Pt,{minHeight:"28px",padding:"4px 9px"}),"data-variant":"dangerGhost",disabled:F,onClick:()=>pe(t.id)},e("backup.delete")))),se===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:Lt,disabled:F,onClick:()=>(async t=>{_(!0),ne(null);try{const e=await E("backup-delete",{id:t});if(!e||!1===e.ok)throw new Error("backup failed");L(e.value),pe(null)}catch(t){ne(e("backup.error"))}finally{_(!1)}})(t.id)},e("backup.confirm")),r.createElement("button",{style:Ft,disabled:F,onClick:()=>pe(null)},e("backup.cancel")))):me===t.id?r.createElement("div",{"data-testid":"backup-restore-preflight",style:{marginTop:"8px",padding:"10px",borderRadius:"8px",border:"1px solid var(--dsh-svc-border)",background:"var(--dsh-svc-raised-bg)"}},F&&null===he?r.createElement("p",{style:Kt},e("backup.inspecting")):null!==he?r.createElement("div",null,r.createElement("div",{style:{fontWeight:650,color:he.validForRestore?"var(--dsh-svc-success)":"var(--dsh-svc-danger)"}},e(he.validForRestore?"backup.integrity.ok":"backup.integrity.invalid")),r.createElement("p",{style:Object.assign({},Kt,{margin:"4px 0 0"})},e("backup.integrity.summary",{entries:he.archive?.entryCount||0,size:Zt(he.archive?.logicalBytes||0),sessions:he.sections?.sessions?.files||0,config:he.sections?.config?.files?.length||0,profiles:he.sections?.profiles?.count||0})),!0!==he.validForRestore?r.createElement("ul",{style:Object.assign({},Kt,{margin:"6px 0 0",paddingLeft:"18px",color:"var(--dsh-svc-danger)"})},(he.issues||[]).map((e,t)=>r.createElement("li",{key:t},Ot(e.code)))):null):null,null!==ve?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:ve.targets?.config?.replace?.length||0,remove:ve.targets?.config?.remove?.length||0})),r.createElement("li",null,e("backup.plan.profiles",{count:ve.targets?.profiles?.upsert?.length||0}))),r.createElement("p",{style:Object.assign({},Kt,{margin:"0 0 8px"})},e("backup.plan.expires",{time:new Date(ve.expiresAt).toLocaleTimeString()})),r.createElement("div",{style:{display:"flex",gap:"8px"}},r.createElement("button",{style:Lt,disabled:F,onClick:jt},e("backup.restoreConfirm")),r.createElement("button",{style:Ft,disabled:F,onClick:Nt},e("backup.cancel")))):r.createElement("button",{style:Ft,disabled:F,onClick:Nt},e("backup.cancel"))):null))):null)),lr=(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}):je||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(Et?"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:()=>qt(e=>!e)},(m=Et,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))},dr=Me?.dsh,cr=dr&&"unpublished"!==dr.status&&"unavailable"!==dr.status&&!dr.upToDate,ur=(e=>{const t=xt(e,ft);return null!==t&&t>=0})(Ae),pr=Me?.plugin&&!Me.plugin.upToDate&&"available"===Me.plugin.status,mr=1===xt(At,Re||Me?.plugin?.current||null),gr=Ye||mr,hr=gr&&null!==At?Object.assign({},Me?.plugin,{current:At,restartPending:!0}):Me?.plugin,br=!pr||gr||Ge?null:r.createElement("button",{style:Object.assign({},Bt,{minHeight:"24px",padding:"2px 8px",fontSize:"11px"}),disabled:Pe,onClick:Dt},e(Pe?"update.upgrading":"update.upgrade")),vr=Ye||mr&&null!==Tt&&!0===Tt.manualStartLikely,fr=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:ft})),yr=r.createElement("div",{key:"version-card","data-testid":"version-card",style:Gt},r.createElement("div",{key:"title",style:Xt},e("version.title")),r.createElement("div",{style:Vt},lr("plugin","dsh-service",Re,hr,br,!1,!1,fr),lr("dsh","DSH",Ae,dr,null,!0===cr,!0),Et?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:dr?.current||Ae||"—"})),r.createElement("div",null,e("update.details.latest",{version:dr?.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"}},vt(e,"latest",t&&t.latest),vt(e,"next",t&&t.next),...t&&Object.prototype.hasOwnProperty.call(t,"alpha")?[vt(e,"alpha",t.alpha)]:[]))(e,dr?.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:Pt,"data-variant":"dangerGhost",disabled:Pe,onClick:Dt},e(Pe?"update.upgrading":"update.manualProceed")),r.createElement("button",{style:Ft,disabled:Pe,onClick:()=>Ve(!1)},e("restart.cancel")))):null,vr?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)),kr=r.createElement(St,{showNavToggle:!0}),{enabled:xr,done:wr,input:Er,bell:Sr,setEnabled:qr,setDone:Cr,setInput:Tr,setBell:Ar}=xe(),Ir="undefined"!=typeof Notification,Rr=Ir?Notification.permission:"denied",zr=(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",borderRadius:"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",borderRadius:"50%",background:e?"#fff":"var(--dsw-alias-label-tertiary)"}})))(n,s,i)),Mr=Ir?r.createElement("div",{style:{marginTop:"18px"}},r.createElement("div",{style:Xt},e("notification.title")),r.createElement("div",{style:Object.assign({},Vt,{marginTop:"4px"})},r.createElement("p",{style:Kt},e("notification.description")),"granted"!==Rr?r.createElement("div",{style:{marginTop:"8px",display:"flex",alignItems:"center",gap:"8px"}},r.createElement("button",{style:Bt,onClick:()=>{Notification.requestPermission().then(e=>{"granted"===e&&qr(!0)})}},e("notification.enable")),r.createElement("span",{style:Kt},"denied"===Rr?e("notification.denied"):"")):r.createElement("div",{style:{marginTop:"8px",display:"flex",flexDirection:"column"}},zr("notify-row-master",e("notification.master"),null,xr,qr,!1),zr("notify-row-done",e("notification.done"),null,wr,Cr,!xr),zr("notify-row-input",e("notification.input"),null,Er,Tr,!xr),zr("notify-row-bell",e("notification.bellShow"),null,Sr,Ar,!1)))):null,Or=null!=Me&&(Me.dsh&&!1===Me.dsh.upToDate||Me.plugin&&!1===Me.plugin.upToDate),jr=null!==B&&!F&&!re,Nr=(d?.checks||[]).filter(e=>"error"===e.status||"warning"===e.status&&!0!==e.advisory&&"permissions"!==e.id),Hr=[];o&&Hr.push({level:"error",text:o}),Be&&Hr.push({level:"error",text:Be}),re&&Hr.push({level:"error",text:re}),Ct.error&&Hr.push({level:"error",text:String(Ct.error)}),R&&Hr.push({level:"error",text:R});for(const t of Nr)Hr.push({level:"error"===t.status?"error":"warning",text:e(`health.check.${t.id}`)+":"+Ta(t)});Xa>0&&Hr.push({level:"warning",text:e("permissions.summary.warning",{count:Xa})}),Or&&Hr.push({level:"info",text:e("overview.updateAvailable")}),jr&&0===B.items.length&&Hr.push({level:"info",text:e("overview.backupEmpty")});const Dr=Hr.some(e=>"error"===e.level)?"error":Hr.some(e=>"warning"===e.level)?"warning":Hr.some(e=>"info"===e.level)?"info":"normal",Wr="normal"===Dr?e("overview.status.normal"):e(`overview.status.${Dr}`,{count:Hr.length}),$r=r.createElement("div",{"data-testid":"overview-status",style:Object.assign({},Vt,{display:"flex",alignItems:"center",gap:"10px"})},r.createElement("span",{"aria-hidden":"true",style:{flex:"none",width:"10px",height:"10px",borderRadius:"50%",background:"normal"===Dr?"var(--dsh-svc-success)":"warning"===Dr?"var(--dsh-svc-warning)":"error"===Dr?"var(--dsh-svc-danger)":"var(--dsh-svc-info)"}}),r.createElement("span",{style:{fontSize:"13px",fontWeight:600,color:"var(--dsh-svc-text)"}},Wr)),Br=0===Hr.length?null:r.createElement("div",{"data-testid":"overview-actionables",style:Object.assign({},Vt,{marginTop:"10px",padding:"4px 10px"})},Hr.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",borderRadius:"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)))),Lr=r.createElement("div",null,$r,Br,yr,La,Ha.length>0||Da.length>0?Pa:null),Pr=r.createElement("div",{key:"maintenance-card","data-testid":"maintenance-card",style:Gt},or),Fr=!0===d?.checks?.some(e=>"error"===e.status||"warning"===e.status&&!0!==e.advisory),{batch:_r}=_e(),Ur={overview:!1,usage:Boolean(Be),quota:!1,diagnostics:Boolean(o||R||Fr||Xa>0),maintenance:Boolean(re||Ct.error),configuration:!1},[Kr,Gr]=a("subagent"),[Vr,Yr]=a("features");k(()=>{let e=null;try{e=localStorage.getItem("dsh-service-maintenance-tab")}catch(e){}Gr(null===e?"subagent":oe(e,n))},[]);const Jr=((e,t)=>ee.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,Ur),Qr=ie(n),Xr=Jr.filter(e=>e.warning).map(t=>e(t.labelKey)),Zr=Jr.some(e=>e.id===kt)?kt:"overview",en=oe(Kr,n),tn="overview"===Zr?Lr:"usage"===Zr?$a:"quota"===Zr?r.createElement(Oa,null):"diagnostics"===Zr?tr:"maintenance"===Zr?null===en?r.createElement("div",{"data-testid":"maintenance-empty",style:Vt},e("maintenance.empty")):"restart"===en?kr:"backup"===en?Pr:"skills"===en?r.createElement(xa,null):"subagent"===en?r.createElement(ma,null):r.createElement(Ma,null):"notifications"===Vr?r.createElement("div",{"data-testid":"config-notifications-page",style:!1===n.taskNotifications?{opacity:.55}:void 0},Mr,...!1===n.taskNotifications?[r.createElement("p",{key:"notify-off-hint",style:Object.assign({},Kt,{marginTop:"8px"})},e("config.notificationsDisabled"))]:[]):r.createElement(ua,null);return r.createElement("div",{"data-testid":"service-panel-root","data-dshsvc-root":"","data-dshsvc-page":Zr,className:"dshsvc-page"},Xr.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:Xr.join(e("tabs.alert.join"))}))):null,r.createElement(ue,{items:Jr.map(t=>({id:t.id,label:e(t.labelKey),icon:"diagnostics"===t.id?"health":t.id,warning:t.warning,badge:"maintenance"===t.id&&null!==_r&&"running"===_r.phase?{testid:"skills-tab-badge",text:_r.done+"/"+_r.total}:null})),activeId:Zr,onChange:e=>{wt(e),"diagnostics"===e&&zt(!1)},testIdPrefix:"service-tab",dotLabel:e("tabs.alert.dot"),ariaLabel:e("nav.label")}),r.createElement(ce,{title:e(te[Zr]),description:void 0!==de[Zr]?e(de[Zr]):null,action:"diagnostics"===Zr?r.createElement("button",{type:"button","data-testid":"diagnostics-recheck","data-variant":"neutral",style:Bt,onClick:()=>zt(!0),disabled:u},e(u?"health.checking":d?"health.recheck":"health.check")):null}),"maintenance"===Zr&&Qr.length>0?r.createElement(ue,{items:Qr.map(t=>({id:t.id,label:e(t.labelKey)})),activeId:en,onChange:e=>{Gr(e);try{localStorage.setItem("dsh-service-maintenance-tab",e)}catch(e){}},testIdPrefix:"maintenance-tab",variant:"sub",ariaLabel:e("tabs.maintenance")}):null,"configuration"===Zr?r.createElement(ue,{items:le.map(t=>({id:t.id,label:e(t.labelKey)})),activeId:Vr,onChange:Yr,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)"}},tn))}null!==Ra&&console.info("[dsh-service-md] session detail markdown renderer ready");const Na=["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"],Ha=["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 Da(){const{enabled:e,setEnabled:t}=xe(),a=V();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?Na:Ha).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),K("taskNotifications")&&he&&(e=t.slots.register({name:"conversation.input.left",id:"dsh-service-notify",order:90,label:()=>B("notification.bellOn")},()=>r.createElement(Da,null)))};a();const n=_.subscribe(a),s=(i=a,ve.add(i),()=>ve.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(da,null))),t.slots.inject("settings.section",()=>{const e=t.slots.register({name:"settings.section",id:"dsh-service",order:99,label:()=>B("nav.label")},()=>r.createElement(ja,null));Ee.sync(),Se.sync(),qe.sync();const a=_.subscribe(Se.sync),n=_.subscribe(qe.sync);return()=>{a(),n(),e(),Ee.disposeEntry(),Se.disposeEntry(),qe.disposeEntry()}}),t.slots.inject("shell.overlay",()=>t.slots.register({name:"shell.overlay",id:"dsh-service-restart",order:100,label:()=>B("overlay.label")},()=>r.createElement(Et,null))),t.slots.inject("conversation.input.right",()=>{let e=null;const a=()=>{null!==e&&(e(),e=null),K("quotaLookup")&&(e=t.slots.register({name:"conversation.input.right",id:"dsh-service-quota-ring",order:95,label:()=>B("quota.ring.label"),inject:e=>{if(null==e)return{};try{const t=Ge();if(void 0===t||"function"!=typeof t.directoryFor)return{sessionId:e};const a=t.directoryFor(e);return{sessionId:e,directoryStore:a.store,loadDirectory:()=>{try{const e=a.load();e&&"function"==typeof e.catch&&e.catch(()=>{})}catch(e){}}}}catch(t){return{sessionId:e}}}},e=>r.createElement(la,e)))};a();const n=_.subscribe(a);return()=>{n(),null!==e&&e()}}),t.slots.inject("conversation.chat.turnTail",()=>{let e=null;const a=()=>{null!==e&&(e(),e=null),K("subagentRoute")&&(e=t.slots.register({name:"conversation.chat.turnTail",id:"dsh-service-subagent-models",select:R},e=>r.createElement(D,e)))};a();const n=_.subscribe(a);return()=>{n(),null!==e&&e()}}),t.slots.inject("conversation.composer.dock",()=>{let e=null;const a=()=>{null!==e&&(e(),e=null),K("subagentRoute")&&K("subagentModelsDock")&&(e=t.slots.register({name:"conversation.composer.dock",id:"dsh-service-subagent-models-dock",order:60,label:()=>B("subagent.turnTail.label"),inject:e=>({sessionId:e})},e=>r.createElement(W,e)))};a();const n=_.subscribe(a);return()=>{n(),null!==e&&e()}});const Wa=i,$a=(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},Ba=[],La=e=>{const t=Ba[e];try{t.button.remove()}catch(e){}Ba.splice(e,1)},Pa=()=>{for(;Ba.length>0;)La(Ba.length-1)},Fa=()=>{const e=c();if(null===e)return;const t=B("editor.viewer"),a=K("fileEditor"),r=a?u(e,d):[];for(let e=Ba.length-1;e>=0;e-=1){const a=Ba[e];r.includes(a.menu)&&p(a.menu)!==t||La(e)}if(a){for(const e of Ba)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(Ba.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){}v(e,e=>e===t,{menu:g(n),isAlive:()=>b.isAlive()})}),r.insertBefore(n,a),Ba.push({menu:a,button:n})}}};function _a(e){const t=V(),a="string"==typeof e?.tab?.contentId?e.tab.contentId:"";if(!a.startsWith("dsh-resource://file/")||!m(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&&v(a,e=>e===t("editor.viewer"),{menu:r[0],isAlive:()=>b.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 Ua(e){const t=V(),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,h]=r.useState(""),[f,y]=r.useState(null),[k,x]=r.useState(null),[w,S]=r.useState(null),q=r.useRef(0),C=r.useRef(s),T=r.useRef(i),A=r.useRef(null),I=r.useRef(!1),R=r.useRef(null),z=r.useRef(null),M=r.useRef(null),O=e=>{T.current=e,o(e)},j=e=>{A.current=e,d(e)},N=e=>{I.current=e,p(e)},H=e=>{R.current=e,x(e)},D=()=>(q.current+=1,q.current),W=e=>q.current===e,$=()=>{if(!0===I.current)return;const e=D();O({phase:"loading",text:"",version:"",path:"",bytes:0,error:""}),j(null),y(null),H(null),h(""),N(!1),E("file-read",{address:a}).then(t=>{if(!W(e))return;if(!t||!0!==t.ok)return void O({phase:"error",text:"",version:"",path:"",bytes:0,error:"string"==typeof t?.error?t.error:"internal"});const a=t.value||{};O({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)&&O({phase:"error",text:"",version:"",path:"",bytes:0,error:"internal"})})},B=(e,t,r={})=>{const n="undo"===r?.kind?"undo":"save";if(!0===I.current)return;if("string"!=typeof e)return;const s=D();N(!0),h(""),E("file-write",{address:a,text:e,version:t,force:!0===r?.force}).then(a=>{if(!W(s))return;if(N(!1),!a||!0!==a.ok){const e="string"==typeof a?.error?a.error:"internal";return"file-stale"===e?void y({kind:n}):void h(e)}const i=a.value||{},o="string"==typeof i.version&&""!==i.version?i.version:"string"==typeof t?t:"",l=T.current;O({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?(j(null),y(null),h("saved"),"preview"===r?.leaveAfter&&G()):y(null)}).catch(()=>{W(s)&&(N(!1),h("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 L=null!==l&&l!==i.text,P="error"===i.phase?i.error:"",F=!0===u?t("editor.saving"):!0===L?t("editor.unsaved"):"saved"===m?t("editor.saved"):"",_=!0===u?"var(--dsw-alias-label-secondary)":!0===L?"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)),G=()=>{const e=g(z.current);return null!=e&&v(c(),e=>e!==t("editor.viewer"),{menu:e,isAlive:()=>b.isAlive()})},Y=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),""!==F?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!==L?G():S("preview"))},"ghost",u),null!==k?K("file-editor-undo","editor.undo",()=>{!0!==I.current&&null!==k&&S("undo")},"ghost",u):null,K("file-editor-reload","editor.reload",()=>{!0!==I.current&&(!0!==L?$():S("reload"))},"ghost",u),K("file-editor-save","editor.save",()=>B(A.current??i.text,i.version,{kind:"save"}),"primary",u||!L))),J=null!==f&&"save"===f.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",()=>B(A.current??i.text,i.version,{kind:"save",force:!0}),"primary",u))):null,Q=null!==f&&"undo"===f.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",()=>y(null),"ghost",!1))):null,X={preview:"editor.confirm.previewTitle",reload:"editor.confirm.reloadTitle",undo:"editor.confirm.undoTitle"},Z=null===w?null:r.createElement("div",{"data-testid":"file-editor-confirm",role:"alertdialog","aria-label":t(X[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(X[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",()=>{S(null),B(A.current??i.text,i.version,{kind:"save",leaveAfter:"preview"})},"primary",u):null,"undo"===w?K("file-editor-confirm-save","editor.undo",()=>(()=>{const e=R.current;S(null),null!=e&&(j(null),B(e.text,e.version,{kind:"undo"}))})(),"primary",u):null,"reload"===w?K("file-editor-confirm-discard","editor.confirm.reloadGo",()=>{S(null),$()},"primary",u):null,"preview"===w?K("file-editor-confirm-discard","editor.confirm.discardBack",()=>{S(null),G()},"ghost",!1):null,K("file-editor-confirm-cancel","editor.confirm.cancel",()=>(()=>{S(null);try{M.current?.focus?.()}catch(e){}})(),"ghost",!1))),ee=""===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)"}},$a(t,m)),te="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"}},$a(t,P)),K("file-editor-retry","editor.retry",()=>$(),"ghost",!1)):r.createElement("textarea",{"data-testid":"file-editor-textarea",ref:M,"aria-label":t("editor.viewer"),value:null!==l?l:i.text,spellCheck:!1,onChange:e=>j("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&&L&&B(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)"}},Y,Z,J,Q,ee,te,r.createElement("div",{style:{flex:"none",padding:"4px 10px 6px",fontSize:"11px",color:"var(--dsw-alias-label-tertiary)"}},t("editor.keyHint")))}const Ka=()=>{if(!K("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:Wa,priority:"builtin",title:()=>B("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},Ua))),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(_a,e)))),e.push((()=>{b=(()=>{const e={alive:!0};return h.add(e),{isAlive:()=>!0===e.alive,dispose:()=>{e.alive=!1,h.delete(e)}}})(),Fa();let e=()=>{};try{if("function"==typeof t.locale?.subscribe){const a=t.locale.subscribe(()=>{try{Fa()}catch(e){}});"function"==typeof a&&(e=a)}}catch(e){}const a=c();if(null===a||"function"!=typeof MutationObserver)return()=>{e(),Pa()};let r=!1;const n=()=>{r||(r=!0,Promise.resolve().then(()=>{r=!1;try{Fa()}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(),Pa(),b.dispose(),(()=>{for(const e of h)e.alive=!1;h.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=K("fileEditor"),t=!0===e?Ka():void 0;const a=_.subscribe(()=>{const a=K("fileEditor");a!==e&&(e=a,"function"==typeof t&&t(),t=!0===a?Ka():void 0)});return()=>{a(),"function"==typeof t&&t()}},"dsh-service file editor");const Ga=()=>{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}}}},Va=(()=>{const e={observer:null,btn:null,styleTag:null,retryTimer:null,retryLeft:0,scrollHandler:null,rafId:null,slotRO:null},a=Ga(),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",B("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)",borderRadius:"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(()=>(Va.start(),()=>Va.stop()),"dsh-service user reply jump");const Ya=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=Ga(),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&&P()};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&&P()},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",R="multi-touch",z="modal",M="h-scroll",O="no-point",j="right-absent",N="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=j),!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=N)),!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=R))}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=O));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=M)):(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=M));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&&P()},{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=R),void(e.debugEnabled&&P())}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&&P()},{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&&P()},{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&&P());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&&P()},{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 P=()=>{const t=e.debugChip;if(null===t)return;const a=e=>B(e?"mobile.debug.stateOn":"mobile.debug.stateOff"),r=[[`${B("mobile.debug.viewport")} ${window.innerWidth}×${window.innerHeight}`,`≤1023 ${a(e.active)}`,`${B("mobile.debug.drawer")} ${a(e.drawerOpen)}`,`${B("mobile.debug.details")} ${a(e.detailsOpen)}`,`${B("mobile.debug.rightbar")} ${a(e.rightbarOpen)}`,`${B("mobile.debug.immersive")} ${a(e.immersive)}`+(null===e.lastRevealReason?"":`(${n=e.lastRevealReason,"gesture"===n?B("mobile.debug.immersive.reason.gesture"):"arrival"===n?B("mobile.debug.immersive.reason.arrival"):"focus"===n?B("mobile.debug.immersive.reason.focus"):"button"===n?B("mobile.debug.immersive.reason.button"):n})`),`${B("mobile.debug.errors")} ${e.errorCount}`].join(" · ")];var n;const s=e=>e===A?B("mobile.debug.edge.leftOpen"):e===I?B("mobile.debug.edge.rightOpen"):e===C?B("mobile.debug.edge.leftClose"):e===T?B("mobile.debug.edge.rightClose"):e===q?B("mobile.debug.edge.open"):e===R?B("mobile.debug.edge.reason.multiTouch"):e===z?B("mobile.debug.edge.reason.modal"):e===M?B("mobile.debug.edge.reason.hScroll"):e===O?B("mobile.debug.edge.reason.noPoint"):e===j?B("mobile.debug.edge.reason.absentRight"):e===N?B("mobile.debug.edge.reason.badButton"):e===H?B("mobile.debug.edge.reason.noTracker"):e,i=e.edgeTelemetry;if(null!==i&&void 0!==i.start){let e=`${B("mobile.debug.edge")} ${B("mobile.debug.edge.fieldStart")}(${i.start}) ${s(i.kind)} ${B("mobile.debug.edge.fieldMoves")}${i.moves} ${B("mobile.debug.edge.fieldLast")}(${i.last}) ${B("mobile.debug.edge.fieldCancel")}(${s(i.cancel)})`;void 0!==i.reason&&(e+=` ${B("mobile.debug.edge.fieldReason")}(${s(i.reason)})`),i.fired&&(e+=" ✓"),r.push(e)}t.textContent=r.join("\n")},F=()=>{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",B("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},_=()=>{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=()=>{K("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 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),F()||(()=>{if(null===e.mountObserver&&"function"==typeof MutationObserver)try{e.mountObserver=new MutationObserver(()=>{F()}),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,P()},window.addEventListener("error",e.errorHandler),e.resizeHandler=()=>P(),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=B("mobile.debug.title"),document.body.appendChild(e.debugChip),P()),n()})():_()};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:()=>{_(),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=_.subscribe(()=>Ya.evaluate());return Ya.evaluate(),()=>{e(),Ya.dispose()}},"dsh-service mobile adaptation")},a.subagentTurnTail={aggregateSubagentRoutes:z,selectSubagentModelsTurnTail:R,subagentRouteListText:M},a.fileEditor={id:s,extensions:i,selectViewerItem:v,editorExtensionMatches:m,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}});
|