@chatcode/cco-better-sidebar 0.18.0-rc.3 → 0.18.0-rc.4

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.
Files changed (36) hide show
  1. package/README.md +5 -1
  2. package/README_EN.md +5 -1
  3. package/lib/client-editor.js +315 -258
  4. package/lib/client-mermaid.js +298 -256
  5. package/lib/client-registry.js +1097 -460
  6. package/lib/client-terminal.js +318 -261
  7. package/lib/client.js +1110 -473
  8. package/lib/index.js +47 -1
  9. package/lib/types/client/PluginMarketSettingsSection.d.ts +7 -0
  10. package/lib/types/client/PluginMarketView.d.ts +7 -0
  11. package/lib/types/client/api.d.ts +15 -0
  12. package/lib/types/client/builtins/tabs.d.ts +6 -3
  13. package/lib/types/client/locales.d.ts +21 -0
  14. package/lib/types/client/plugin-market-catalog.d.ts +25 -0
  15. package/lib/types/client/ui-tweaks/index.d.ts +1 -1
  16. package/lib/types/client/ui-tweaks/typography.d.ts +9 -0
  17. package/lib/types/plugin-market-api.d.ts +5 -0
  18. package/lib/types/plugin-market-shared.d.ts +37 -0
  19. package/lib/types/ui-tweaks/config.d.ts +5 -6
  20. package/package.json +1 -1
  21. package/src/client/PluginMarketSettingsSection.tsx +55 -0
  22. package/src/client/PluginMarketView.module.css +35 -0
  23. package/src/client/PluginMarketView.tsx +154 -0
  24. package/src/client/api.ts +7 -0
  25. package/src/client/builtins/tabs.tsx +16 -3
  26. package/src/client/index.tsx +10 -1
  27. package/src/client/locales-ja.ts +21 -0
  28. package/src/client/locales.ts +42 -0
  29. package/src/client/plugin-market-catalog.ts +90 -0
  30. package/src/client/ui-tweaks/branding.tsx +15 -7
  31. package/src/client/ui-tweaks/index.tsx +36 -99
  32. package/src/client/ui-tweaks/typography.ts +38 -0
  33. package/src/index.ts +2 -0
  34. package/src/plugin-market-api.ts +42 -0
  35. package/src/plugin-market-shared.ts +21 -0
  36. package/src/ui-tweaks/config.ts +10 -10
package/lib/client.js CHANGED
@@ -2006,6 +2006,27 @@ window.__ModuleLoader__.load({
2006
2006
  */
2007
2007
  /** The ja dictionary (key-set-equal to zh, enforced by the type annotation in locales.ts). */
2008
2008
  const ja$1 = {
2009
+ pluginMarketTitle: "プラグインマーケット",
2010
+ pluginMarketProjectDirectory: "プロジェクトディレクトリ:{path}",
2011
+ pluginMarketInstalledTab: "インストール済み",
2012
+ pluginMarketRefresh: "更新",
2013
+ pluginMarketLoading: "プラグインを読み込み中…",
2014
+ pluginMarketRefreshing: "一覧を更新中…",
2015
+ pluginMarketEmpty: "プラグインはありません。",
2016
+ pluginMarketBack: "戻る",
2017
+ pluginMarketInstall: "インストール",
2018
+ pluginMarketUninstall: "アンインストール",
2019
+ pluginMarketProject: "プロジェクト",
2020
+ pluginMarketUser: "ユーザー",
2021
+ pluginMarketInstalled: "プラグインをインストールしました。",
2022
+ pluginMarketUninstalled: "プラグインをアンインストールしました。",
2023
+ pluginMarketSubtitle: "マーケットを参照し、プロジェクトまたはユーザー環境にインストールします。",
2024
+ pluginMarketSearch: "マーケットやプラグインを検索",
2025
+ pluginMarketDefault: "デフォルト",
2026
+ pluginMarketBrowse: "プラグインを見る",
2027
+ pluginMarketNoDescription: "説明なし",
2028
+ pluginMarketInstalling: "インストール中…",
2029
+ pluginMarketUninstalling: "アンインストール中…",
2009
2030
  accountMenuSettings: "設定",
2010
2031
  accountMenuLogout: "ログアウト",
2011
2032
  accountMenuLabel: "アカウントメニュー",
@@ -9582,6 +9603,27 @@ window.__ModuleLoader__.load({
9582
9603
  */
9583
9604
  /** The zh dictionary (also registered into the ChatCode CLI locale registry under {@link LOCALE_NS}). */
9584
9605
  const zh$1 = {
9606
+ pluginMarketTitle: "插件市场",
9607
+ pluginMarketProjectDirectory: "项目目录:{path}",
9608
+ pluginMarketInstalledTab: "已安装",
9609
+ pluginMarketRefresh: "刷新",
9610
+ pluginMarketLoading: "正在加载插件…",
9611
+ pluginMarketRefreshing: "正在刷新列表…",
9612
+ pluginMarketEmpty: "暂无插件。",
9613
+ pluginMarketBack: "返回",
9614
+ pluginMarketInstall: "安装",
9615
+ pluginMarketUninstall: "卸载",
9616
+ pluginMarketProject: "项目级",
9617
+ pluginMarketUser: "用户级",
9618
+ pluginMarketInstalled: "插件安装成功。",
9619
+ pluginMarketUninstalled: "插件卸载成功。",
9620
+ pluginMarketSubtitle: "浏览插件市场,选择安装到当前项目或用户环境。",
9621
+ pluginMarketSearch: "搜索市场或插件",
9622
+ pluginMarketDefault: "默认",
9623
+ pluginMarketBrowse: "查看插件",
9624
+ pluginMarketNoDescription: "暂无描述",
9625
+ pluginMarketInstalling: "安装中…",
9626
+ pluginMarketUninstalling: "卸载中…",
9585
9627
  accountMenuSettings: "设置",
9586
9628
  accountMenuLogout: "退出登录",
9587
9629
  accountMenuLabel: "账户菜单",
@@ -10052,6 +10094,27 @@ window.__ModuleLoader__.load({
10052
10094
  };
10053
10095
  /** The en dictionary (key-set-equal to zh, enforced by the type annotation). */
10054
10096
  const en$1 = {
10097
+ pluginMarketTitle: "Plugin marketplace",
10098
+ pluginMarketProjectDirectory: "Project directory: {path}",
10099
+ pluginMarketInstalledTab: "Installed",
10100
+ pluginMarketRefresh: "Refresh",
10101
+ pluginMarketLoading: "Loading plugins…",
10102
+ pluginMarketRefreshing: "Refreshing list…",
10103
+ pluginMarketEmpty: "No plugins.",
10104
+ pluginMarketBack: "Back",
10105
+ pluginMarketInstall: "Install",
10106
+ pluginMarketUninstall: "Uninstall",
10107
+ pluginMarketProject: "Project",
10108
+ pluginMarketUser: "User",
10109
+ pluginMarketInstalled: "Plugin installed.",
10110
+ pluginMarketUninstalled: "Plugin uninstalled.",
10111
+ pluginMarketSubtitle: "Browse marketplaces and install plugins for your project or user.",
10112
+ pluginMarketSearch: "Search marketplaces or plugins",
10113
+ pluginMarketDefault: "Default",
10114
+ pluginMarketBrowse: "Browse plugins",
10115
+ pluginMarketNoDescription: "No description",
10116
+ pluginMarketInstalling: "Installing…",
10117
+ pluginMarketUninstalling: "Uninstalling…",
10055
10118
  accountMenuSettings: "Settings",
10056
10119
  accountMenuLogout: "Log out",
10057
10120
  accountMenuLabel: "Account menu",
@@ -12089,305 +12152,305 @@ window.__ModuleLoader__.load({
12089
12152
  }
12090
12153
  //#endregion
12091
12154
  //#region \0dsh-css:/Users/shiguifeng/IdeaProjects/chonggou/DSH-better-sidebar/src/client/sidebar.module.css.mjs
12092
- const css$5 = ".FV0QMq_releaseNotesOverlay{z-index:120;pointer-events:auto;background:color-mix(in srgb, var(--dsw-alias-bg-base) 72%, transparent);place-items:center;padding:24px;display:grid;position:fixed;inset:0}.FV0QMq_releaseNotesDialog{width:min(720px,100%);max-height:min(760px,100vh - 48px);color:var(--dsw-alias-label-primary);background:var(--dsw-alias-bg-layer-1);border:1px solid var(--dsw-alias-border-l1);border-radius:12px;flex-direction:column;display:flex;overflow:hidden}.FV0QMq_releaseNotesHeader,.FV0QMq_releaseNotesFooter{align-items:center;padding:16px 20px;display:flex}.FV0QMq_releaseNotesHeader{border-bottom:1px solid var(--dsw-alias-border-l1);justify-content:space-between;gap:16px}.FV0QMq_releaseNotesHeader h2{font:var(--dsw-font-s-18);margin:0}.FV0QMq_releaseNotesContent{min-height:120px;font:var(--dsw-font-s-14);padding:20px;overflow:auto}.FV0QMq_releaseNotesFooter{border-top:1px solid var(--dsw-alias-border-l1);justify-content:flex-end}.FV0QMq_releaseNotesIconButton,.FV0QMq_releaseNotesButton{border:1px solid var(--dsw-alias-border-l1);color:var(--dsw-alias-label-primary);background:var(--dsw-alias-bg-layer-2);cursor:pointer}.FV0QMq_releaseNotesIconButton:hover,.FV0QMq_releaseNotesButton:hover{background:var(--dsw-alias-interactive-bg-hover)}.FV0QMq_releaseNotesIconButton{width:32px;height:32px;font:var(--dsw-font-s-18);border-radius:50%;padding:0}.FV0QMq_releaseNotesButton{min-width:84px;min-height:36px;font:var(--dsw-font-s-14);border-radius:8px;padding:6px 16px}.FV0QMq_updateList{flex-direction:column;gap:10px;margin:0;padding:0;list-style:none;display:flex}.FV0QMq_updateList li{font:var(--dsw-font-s-14);justify-content:space-between;align-items:center;gap:16px;display:flex}.FV0QMq_updateVersions{font-variant-numeric:tabular-nums;color:var(--dsw-alias-label-secondary)}.FV0QMq_updateOk{color:var(--dsw-alias-state-success-primary)}.FV0QMq_updateError,.FV0QMq_updateErrorText{color:var(--dsw-alias-state-error-primary)}.FV0QMq_updateErrorText{white-space:pre-wrap;font:var(--dsw-font-s-14);margin:12px 0 0}.FV0QMq_updateCommand{background:var(--dsw-alias-bg-layer-3);font-family:var(--dsw-font-code,var(--ds-font-family-code,monospace));white-space:pre-wrap;word-break:break-all;user-select:all;border-radius:6px;margin:8px 0 0;padding:8px 10px;font-size:12px;overflow-x:auto}.FV0QMq_updateSettingsRow{justify-content:space-between;align-items:center;gap:16px;display:flex}.FV0QMq_updateSettingsText{flex-direction:column;gap:2px;min-width:0;display:flex}.FV0QMq_updateSettingsTitle{font:var(--dsw-font-s-14)}.FV0QMq_updateSettingsDesc{font:var(--dsw-font-s-13);color:var(--dsw-alias-label-secondary)}.FV0QMq_updateSettingsBlock{flex-direction:column;gap:12px;display:flex}.FV0QMq_updateBody{font:var(--dsw-font-s-14);margin:20px 0 0}.FV0QMq_updateFooter{justify-content:flex-end;gap:8px;margin-top:4px;display:flex}.FV0QMq_updateInline{border:1px solid var(--dsw-alias-border-l1);background:var(--dsw-alias-bg-layer-2);border-radius:8px;padding:16px}[data-dsh-panel-host]{z-index:25;pointer-events:none;position:fixed;inset:0;overflow:clip}[data-dsh-panel-host][data-dsh-panel-host-degraded]{position:absolute;top:0;left:0}[data-dsh-pinned-sessions]{flex:none;min-width:0}.FV0QMq_pinnedSessions{border-bottom:1px solid var(--dsw-alias-border-l1);margin:0 0 6px;padding:4px 0 6px}.FV0QMq_pinnedSessionsHeading{height:36px;color:var(--dsw-alias-label-primary);font:var(--dsw-font-s-14);align-items:center;padding:0 4px;display:flex}.FV0QMq_pinnedSessionsList{gap:1px;display:grid}[data-slot=sidebar\\.workspaces] [class*=_sessionRow][data-dsh-session-pinned]{display:none}.FV0QMq_pinnedSessionRow{border-radius:8px;align-items:center;min-width:0;height:32px;display:flex;position:relative}.FV0QMq_pinnedSessionRow:hover,.FV0QMq_pinnedSessionRow:focus-within{background:var(--dsw-alias-interactive-bg-hover)}.FV0QMq_pinnedSessionOpen,.FV0QMq_pinnedSessionMore,.FV0QMq_pinnedSessionMenu button{font:inherit;cursor:pointer;border:0}.FV0QMq_pinnedSessionOpen{min-width:0;height:100%;color:var(--dsw-alias-label-primary);text-align:left;font:var(--dsw-font-s-14);background:0 0;flex:1;align-items:center;gap:8px;padding:0 6px 0 8px;display:flex}.FV0QMq_pinnedSessionOpen[aria-current=page]{color:var(--dsw-alias-brand-primary)}.FV0QMq_pinnedSessionDot{background:var(--dsw-alias-label-tertiary);border-radius:50%;flex:none;width:6px;height:6px}.FV0QMq_pinnedSessionDot[data-running]{background:var(--dsw-alias-state-success-primary)}.FV0QMq_pinnedSessionTitle{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.FV0QMq_pinnedSessionMore{width:28px;height:28px;color:var(--dsw-alias-label-secondary);letter-spacing:1px;background:0 0;border-radius:50%;justify-content:center;align-items:center;margin-right:2px;padding:0;display:inline-flex}.FV0QMq_pinnedSessionMore:hover,.FV0QMq_pinnedSessionMore[aria-expanded=true]{background:var(--dsw-alias-interactive-bg-hover);color:var(--dsw-alias-label-primary)}.FV0QMq_pinnedSessionMenu{z-index:1101;box-sizing:border-box;border:1px solid var(--dsw-alias-border-inverted);background:var(--dsw-alias-bg-layer-2);border-radius:10px;min-width:150px;padding:4px;position:absolute;top:calc(100% + 2px);right:0}.FV0QMq_pinnedSessionMenu button{width:100%;min-height:32px;color:var(--dsw-alias-label-primary);text-align:left;font:var(--dsw-font-xxs-12);background:0 0;border-radius:7px;align-items:center;gap:8px;padding:5px 8px;display:flex}.FV0QMq_pinnedSessionMenu button:hover{background:var(--dsw-alias-interactive-bg-hover)}.FV0QMq_pinnedSessionMenuDivider{background:var(--dsw-alias-border-l1);height:1px;margin:4px}.FV0QMq_accountMenu{z-index:3;box-sizing:border-box;width:var(--dsh-account-menu-width,280px);border-top:1px solid var(--dsw-alias-border-l2);border-right:1px solid var(--dsw-alias-border-l2);background:var(--dsw-alias-bg-layer-1);pointer-events:auto;position:absolute;bottom:0;left:0}.FV0QMq_accountTrigger,.FV0QMq_accountItem{color:var(--dsw-alias-fg-base);font:inherit;cursor:pointer;border:0}.FV0QMq_accountTrigger{box-sizing:border-box;width:100%;min-height:52px;padding:10px 14px max(10px, env(safe-area-inset-bottom));background:var(--dsw-alias-bg-layer-1);font-family:var(--dsw-font-family-body);font-size:var(--dsw-font-size-body-sm);line-height:var(--dsw-font-line-height-body-sm);transition:background var(--ds-transition-duration-slow) var(--ds-ease-in-out);border-radius:0;align-items:center;gap:8px;display:flex}.FV0QMq_accountTrigger:hover,.FV0QMq_accountTrigger[aria-expanded=true]{background:var(--dsw-alias-bg-hover)}.FV0QMq_accountTrigger:focus-visible,.FV0QMq_accountItem:focus-visible{outline:2px solid var(--dsw-alias-border-accent);outline-offset:2px}.FV0QMq_accountAvatar{background:var(--dsw-alias-bg-layer-3);border:1px solid var(--dsw-alias-border-l2);width:28px;height:28px;color:var(--dsw-alias-fg-accent);border-radius:50%;flex:none;place-items:center;font-weight:600;display:grid;position:relative}.FV0QMq_accountName{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.FV0QMq_accountDropdown{box-sizing:border-box;border:1px solid var(--dsw-alias-border-l2);background:var(--dsw-alias-bg-layer-2);z-index:1;border-radius:12px;width:min(252px,100% - 16px);padding:10px 8px 8px;display:grid;position:absolute;bottom:calc(100% + 8px);left:8px}.FV0QMq_accountDropdownHeader{min-height:36px;font-family:var(--dsw-font-family-body);font-size:var(--dsw-font-size-body-sm);line-height:var(--dsw-font-line-height-body-sm);align-items:center;gap:8px;padding:0 8px 8px;display:flex}.FV0QMq_accountMenuDivider{background:var(--dsw-alias-border-l2);height:1px;margin:0 4px 6px}.FV0QMq_accountItem{text-align:left;min-height:32px;font:var(--dsw-font-s-14);background:0 0;border-radius:7px;align-items:center;gap:8px;padding:0 10px;display:flex}.FV0QMq_accountItem:hover{background:var(--dsw-alias-bg-hover)}.FV0QMq_accountPresence{box-sizing:content-box;border:2px solid var(--dsw-alias-bg-layer-2);background:var(--dsw-alias-fg-accent);border-radius:50%;flex:none;width:6px;height:6px;margin-left:auto}.FV0QMq_accountTrigger .FV0QMq_accountPresence{border-color:var(--dsw-alias-bg-layer-1)}.FV0QMq_toggleCluster{top:var(--dsh-native-sidebar-toggle-top,calc(3px + env(safe-area-inset-top)));z-index:45;pointer-events:auto;flex-direction:row;gap:4px;display:flex;position:absolute;right:10px}.FV0QMq_toggleClusterNative{z-index:auto;flex:none;align-items:center;position:static;inset:auto}button[data-dsh-better-sidebar-toggle]{display:none}body:not([data-dsh-native-sidebar-toggle]) .FV0QMq_panel:not(.FV0QMq_panelHidden) .FV0QMq_tabBar{padding-right:var(--dsh-sidebar-toggle-reserve,188px)}.FV0QMq_toggleButton{width:28px;height:28px;color:var(--dsw-alias-label-secondary);cursor:pointer;transition:background var(--ds-transition-duration-slow) var(--ds-ease-in-out), color var(--ds-transition-duration-slow) var(--ds-ease-in-out);background:0 0;border:none;border-radius:50%;justify-content:center;align-items:center;display:flex}.FV0QMq_manualButton{min-width:94px;height:28px;color:var(--dsw-alias-label-secondary);font:var(--dsw-font-xxs-12);white-space:nowrap;cursor:pointer;transition:background var(--ds-transition-duration-slow) var(--ds-ease-in-out), color var(--ds-transition-duration-slow) var(--ds-ease-in-out);background:0 0;border:none;border-radius:6px;flex:none;justify-content:center;align-items:center;gap:6px;margin-right:4px;padding:0 10px;display:inline-flex}.FV0QMq_manualButton:hover,.FV0QMq_toggleButton:hover:not(:disabled):not([aria-disabled=true]){background:var(--dsw-alias-interactive-bg-hover);color:var(--dsw-alias-label-primary)}.FV0QMq_toggleButton:disabled,.FV0QMq_toggleButton[aria-disabled=true]{opacity:.4;cursor:default}.FV0QMq_panel{box-sizing:border-box;z-index:40;pointer-events:auto;background:var(--dsw-alias-bg-layer-1);border-left:1px solid var(--dsw-alias-border-l2);padding-bottom:env(safe-area-inset-bottom);transition:transform var(--ds-transition-duration-slow) var(--ds-ease-in-out), width var(--ds-transition-duration-slow) var(--ds-ease-in-out);flex-direction:column;display:flex;position:absolute;top:0;bottom:0;right:0}.FV0QMq_panelHidden{pointer-events:none;visibility:hidden;transition:transform var(--ds-transition-duration-slow) var(--ds-ease-in-out), width var(--ds-transition-duration-slow) var(--ds-ease-in-out), visibility 0s linear var(--ds-transition-duration-slow);transform:translate(102%)}.FV0QMq_panel[data-dragging]{transition:none}.FV0QMq_panelResize{cursor:col-resize;z-index:2;touch-action:none;width:8px;position:absolute;top:0;bottom:0;left:-4px}.FV0QMq_panelResizeActive{background:var(--dsw-alias-interactive-bg-hover-accent)}.FV0QMq_panelBody{flex:1;min-width:0;min-height:0;display:flex}.FV0QMq_bottomPanel{z-index:40;background:var(--dsw-alias-bg-layer-1);border-top:1px solid var(--dsw-alias-border-l2);pointer-events:auto;padding-bottom:env(safe-area-inset-bottom);transition:transform var(--ds-transition-duration-slow) var(--ds-ease-in-out), height var(--ds-transition-duration-slow) var(--ds-ease-in-out);flex-direction:column;display:flex;position:absolute;bottom:0}.FV0QMq_bottomPanelHidden{pointer-events:none;visibility:hidden;transition:transform var(--ds-transition-duration-slow) var(--ds-ease-in-out), height var(--ds-transition-duration-slow) var(--ds-ease-in-out), visibility 0s linear var(--ds-transition-duration-slow);transform:translateY(102%)}.FV0QMq_bottomPanel[data-dragging]{transition:none}.FV0QMq_panel,.FV0QMq_bottomPanel{contain:layout style}body[data-dsh-sidebar-dragging] .FV0QMq_panel,body[data-dsh-sidebar-dragging] .FV0QMq_bottomPanel{will-change:transform}.FV0QMq_bottomResize{cursor:row-resize;z-index:2;touch-action:none;height:8px;position:absolute;top:-4px;left:0;right:0}.FV0QMq_bottomResizeActive{background:var(--dsw-alias-interactive-bg-hover-accent)}.FV0QMq_bottomClose{z-index:4;width:28px;height:28px;color:var(--dsw-alias-label-secondary);cursor:pointer;background:0 0;border:none;border-radius:50%;flex:none;justify-content:center;align-items:center;padding:0;display:inline-flex;position:absolute;top:3px;right:6px}.FV0QMq_bottomClose:hover:not(:disabled){background:var(--dsw-alias-interactive-bg-hover);color:var(--dsw-alias-label-primary)}.FV0QMq_bottomPanel .FV0QMq_tabBar{padding-right:40px}.FV0QMq_floatWindow{z-index:42;pointer-events:auto;background:var(--dsw-alias-bg-layer-1);border:1px solid var(--dsw-alias-border-l2);box-shadow:var(--dsw-shadow-lv3);contain:layout style;border-radius:8px;flex-direction:column;display:flex;position:absolute;overflow:hidden}.FV0QMq_floatWindowDragging{will-change:left, top, width, height}.FV0QMq_floatHeader{height:34px;font:var(--dsw-font-xxs-12);color:var(--dsw-alias-label-secondary);background:var(--dsw-alias-bg-layer-1);border-bottom:1px solid var(--dsw-alias-border-l1);cursor:grab;user-select:none;flex:none;align-items:center;gap:4px;padding:0 4px 0 10px;display:flex}.FV0QMq_floatWindowDragging .FV0QMq_floatHeader{cursor:grabbing}.FV0QMq_floatTitle{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;overflow:hidden}.FV0QMq_floatClose{width:18px;height:18px;color:var(--dsw-alias-label-tertiary);cursor:pointer;background:0 0;border:none;border-radius:4px;flex:none;justify-content:center;align-items:center;padding:0;display:inline-flex}.FV0QMq_floatClose:hover{background:var(--dsw-alias-interactive-bg-hover);color:var(--dsw-alias-label-primary)}.FV0QMq_floatContent{flex-direction:column;flex:1;min-width:0;min-height:0;display:flex;overflow:hidden}.FV0QMq_floatResize{z-index:2;cursor:nwse-resize;touch-action:none;width:14px;height:14px;position:absolute;bottom:0;right:0}.FV0QMq_floatResize:hover{background:var(--dsw-alias-interactive-bg-hover-accent)}.FV0QMq_pane[data-dsh-float-dock-over]{outline:2px dashed var(--dsw-alias-interactive-bg-hover-accent);outline-offset:-2px}.FV0QMq_floatDropHint{z-index:46;pointer-events:none;border:2px dashed var(--dsw-alias-interactive-bg-hover-accent);background:color-mix(in srgb, var(--dsw-alias-interactive-bg-hover-accent) 12%, transparent);border-radius:8px;justify-content:center;align-items:center;display:flex;position:absolute}.FV0QMq_floatDropHintLabel{font:var(--dsw-font-xxs-12);color:var(--dsw-alias-label-primary);background:var(--dsw-alias-bg-layer-1);border:1px solid var(--dsw-alias-border-l2);border-radius:999px;padding:4px 12px}.FV0QMq_toggleCluster,.FV0QMq_toggleButton,.FV0QMq_manualButton,.FV0QMq_tabBar,.FV0QMq_floatHeader{-webkit-app-region:no-drag}body[data-dsh-title-bar-compat] .FV0QMq_toggleCluster{top:var(--dsh-native-sidebar-toggle-top,calc(var(--dsh-title-bar-strip,40px) + 3px))}body[data-dsh-title-bar-compat] .FV0QMq_panel{padding-top:var(--dsh-title-bar-strip,40px)}.FV0QMq_cornerHandle{left:-6px;bottom:calc(var(--dsh-sidebar-height,0px) + 6px);z-index:2;cursor:nwse-resize;touch-action:none;width:12px;height:12px;position:absolute}.FV0QMq_cornerHandle:hover,.FV0QMq_cornerHandle[data-dragging]{background:var(--dsw-alias-interactive-bg-hover-accent)}.FV0QMq_iconButton{width:28px;height:28px;color:var(--dsw-alias-label-secondary);cursor:pointer;background:0 0;border:none;border-radius:50%;flex:none;justify-content:center;align-items:center;padding:0;display:inline-flex}.FV0QMq_iconButton:hover:not(:disabled){background:var(--dsw-alias-interactive-bg-hover);color:var(--dsw-alias-label-primary)}.FV0QMq_iconButton:disabled{opacity:.4;cursor:default}.FV0QMq_workbench,.FV0QMq_split{flex:1;min-width:0;min-height:0;display:flex}.FV0QMq_splitRow{flex-direction:row}.FV0QMq_splitCol{flex-direction:column}.FV0QMq_splitChild{display:flex;position:relative;overflow:hidden}.FV0QMq_divider{z-index:3;touch-action:none;flex:none;position:relative}.FV0QMq_dividerRow:after,.FV0QMq_dividerCol:after{content:\"\";background:var(--dsw-alias-border-l2);transition:background var(--ds-transition-duration-slow) var(--ds-ease-in-out);position:absolute}.FV0QMq_dividerRow{cursor:col-resize;width:7px;margin:0 -2px}.FV0QMq_dividerRow:after{width:1px;top:0;bottom:0;left:50%;transform:translate(-50%)}.FV0QMq_dividerCol{cursor:row-resize;height:7px;margin:-2px 0}.FV0QMq_dividerCol:after{height:1px;top:50%;left:0;right:0;transform:translateY(-50%)}.FV0QMq_divider:hover:after,.FV0QMq_dividerActive:after{background:var(--dsw-alias-interactive-bg-hover-accent)}.FV0QMq_pane{background:var(--dsw-alias-bg-base);flex-direction:column;flex:1;min-width:0;min-height:0;display:flex;position:relative}.FV0QMq_paneDrop{outline:1px solid var(--dsw-alias-interactive-bg-hover-accent);outline-offset:-1px}.FV0QMq_dropOverlay{z-index:6;pointer-events:none;background:var(--dsw-alias-interactive-bg-hover-accent);opacity:.5;position:absolute}.FV0QMq_dropLeft{width:25%;top:0;bottom:0;left:0}.FV0QMq_dropRight{width:25%;top:0;bottom:0;right:0}.FV0QMq_dropUp{height:25%;top:0;left:0;right:0}.FV0QMq_dropDown{height:25%;bottom:0;left:0;right:0}.FV0QMq_dropCenter{outline:2px dashed var(--dsw-alias-interactive-bg-hover-accent);outline-offset:-2px;background:0 0;inset:25%}.FV0QMq_paneContent{flex-direction:column;flex:1;min-height:0;display:flex;overflow:hidden}.FV0QMq_paneTab{flex-direction:column;flex:1;min-height:0;display:flex}.FV0QMq_paneTabHidden{display:none}.FV0QMq_paneEmptyCards{flex:1;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));align-content:start;gap:8px;min-height:0;padding:12px;display:grid;overflow:hidden}.FV0QMq_paneCard{border:1px solid var(--dsw-alias-border-l1);background:var(--dsw-alias-bg-layer-1);min-width:0;color:var(--dsw-alias-label-secondary);font:var(--dsw-font-xxs-strong-12);cursor:pointer;text-align:center;border-radius:8px;flex-direction:column;justify-content:center;align-items:center;gap:6px;padding:12px 8px;display:flex}.FV0QMq_paneCard:hover:not(:disabled){background:var(--dsw-alias-interactive-bg-hover);color:var(--dsw-alias-label-primary);border-color:var(--dsw-alias-border-l2)}.FV0QMq_paneCard:disabled{opacity:.45;cursor:default}.FV0QMq_tabBar{border-bottom:1px solid var(--dsw-alias-border-l1);background:var(--dsw-alias-bg-layer-1);flex:none;align-items:stretch;height:34px;display:flex}.FV0QMq_tabBarDrop{outline:1px dashed var(--dsw-alias-interactive-bg-hover-accent);outline-offset:-1px}.FV0QMq_tabList{scrollbar-width:none;flex:1;min-width:0;display:flex;overflow-x:auto}.FV0QMq_tabList::-webkit-scrollbar{display:none}.FV0QMq_tab{min-width:64px;max-width:160px;font:var(--dsw-font-xxs-12);color:var(--dsw-alias-label-secondary);border-right:1px solid var(--dsw-alias-border-l1);cursor:pointer;user-select:none;background:0 0;flex:none;align-items:center;gap:4px;padding:0 4px 0 10px;display:flex}.FV0QMq_tab:hover{background:var(--dsw-alias-interactive-bg-hover)}.FV0QMq_tabActive{color:var(--dsw-alias-label-primary);background:var(--dsw-alias-interactive-bg-active)}.FV0QMq_tabTitle{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;overflow:hidden}.FV0QMq_tabBadge{min-width:16px;height:15px;font:var(--dsw-font-xxxs-strong-11);background:var(--dsw-alias-interactive-bg-hover);color:var(--dsw-alias-brand-primary);border-radius:8px;flex:none;justify-content:center;align-items:center;padding:0 4px;display:inline-flex}.FV0QMq_tabClose{width:18px;height:18px;color:var(--dsw-alias-label-tertiary);cursor:pointer;background:0 0;border:none;border-radius:4px;flex:none;justify-content:center;align-items:center;padding:0;display:inline-flex}.FV0QMq_tabClose:hover{background:var(--dsw-alias-interactive-bg-hover);color:var(--dsw-alias-label-primary)}.FV0QMq_tabBarPlus{background:var(--dsw-alias-bg-layer-1);width:22px;height:22px;color:var(--dsw-alias-label-tertiary);cursor:pointer;border:none;border-radius:5px;flex:none;justify-content:center;align-self:center;align-items:center;margin:0 6px;padding:0;display:inline-flex;position:sticky;right:0}.FV0QMq_tabBarPlus:hover{background:var(--dsw-alias-interactive-bg-hover);color:var(--dsw-alias-label-primary)}.FV0QMq_pinnedTab{color:var(--dsw-alias-label-tertiary);font-style:italic}.FV0QMq_pinnedTab:hover{color:var(--dsw-alias-label-secondary)}.FV0QMq_explorer{flex-direction:column;flex:1;min-height:0;display:flex}.FV0QMq_explorerHeader{flex:none;justify-content:space-between;align-items:center;gap:8px;height:36px;padding:0 8px 0 12px;display:flex}.FV0QMq_explorerRoot{font:var(--dsw-font-s-14);color:var(--dsw-alias-label-secondary);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.FV0QMq_explorerBody{flex:1;min-height:0;padding:4px 8px 8px;overflow:hidden auto}.FV0QMq_explorerRow{box-sizing:border-box;width:100%;max-width:100%;height:34px;font:var(--dsw-font-s-14);color:var(--dsw-alias-label-primary);text-align:left;cursor:pointer;white-space:nowrap;animation:FV0QMq_dsh-row-in .15s var(--ds-ease-in-out);background:0 0;border:none;border-radius:8px;align-items:center;gap:6px;padding:0 8px;display:flex}.FV0QMq_explorerRow:hover{background:var(--dsw-alias-interactive-bg-hover)}.FV0QMq_explorerRowRevealed{background:var(--dsw-alias-state-business-tertiary)}.FV0QMq_explorerRowRevealed+.FV0QMq_explorerRowRevealed{border-top-left-radius:0;border-top-right-radius:0}.FV0QMq_explorerRowRevealed:has(+.FV0QMq_explorerRowRevealed){border-bottom-right-radius:0;border-bottom-left-radius:0}.FV0QMq_explorerDir{font:var(--dsw-font-s-strong-14)}.FV0QMq_explorerHidden{opacity:.45}.FV0QMq_explorerSymlink{color:var(--dsw-alias-label-tertiary);flex:none}.FV0QMq_explorerBroken .FV0QMq_explorerName{color:var(--dsw-alias-state-error-primary)}.FV0QMq_explorerName{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.FV0QMq_explorerRef{border:1px solid var(--dsw-alias-border-l1);background:var(--dsw-alias-bg-layer-2);height:20px;color:var(--dsw-alias-label-tertiary);font:var(--dsw-font-xxxs-strong-11);cursor:pointer;border-radius:999px;flex:none;align-items:center;padding:0 8px;display:none}.FV0QMq_explorerRef:hover{background:var(--dsw-alias-interactive-bg-hover);color:var(--dsw-alias-label-primary)}.FV0QMq_explorerRow:hover .FV0QMq_explorerRef,.FV0QMq_explorerRow:focus-within .FV0QMq_explorerRef{display:inline-flex}.FV0QMq_explorerCopied{font:var(--dsw-font-xxxs-11);color:var(--dsw-alias-label-tertiary);flex:none}.FV0QMq_explorerError{font:var(--dsw-font-xxs-12);color:var(--dsw-alias-state-error-primary);cursor:default}@keyframes FV0QMq_dsh-row-in{0%{opacity:0}}.FV0QMq_explorerEmpty{font:var(--dsw-font-xxs-12);color:var(--dsw-alias-label-tertiary);text-align:center;padding:16px}.FV0QMq_explorerRowDropTarget{background:var(--dsw-alias-interactive-bg-hover);outline:1px dashed var(--dsw-alias-interactive-bg-hover-accent);outline-offset:-1px}.FV0QMq_uploadDropZone{z-index:1001;pointer-events:none;border:2px dashed var(--dsw-alias-interactive-bg-hover-accent);box-shadow:0 0 0 200vmax var(--dsw-alias-bg-mask-drop);animation:FV0QMq_dsh-row-in .15s var(--ds-ease-in-out);border-radius:10px;justify-content:center;align-items:flex-start;padding:12px;display:flex;position:fixed}.FV0QMq_uploadDropHero{flex-direction:column;align-items:center;gap:10px;max-width:100%;padding-top:8px;display:flex}.FV0QMq_uploadDropZonePill{border:1px solid var(--dsw-alias-border-l2);background:var(--dsw-alias-bg-layer-2);max-width:100%;box-shadow:var(--dsw-shadow-lv2);color:var(--dsw-alias-label-primary);font:var(--dsw-font-xxs-strong-12);border-radius:999px;align-items:center;gap:6px;padding:6px 12px;display:flex}.FV0QMq_uploadDropZoneText{white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.FV0QMq_uploadDropChatHint{z-index:1002;pointer-events:none;animation:FV0QMq_dsh-row-in .15s var(--ds-ease-in-out);justify-content:center;align-items:center;padding:24px;display:flex;position:fixed;top:0;bottom:0;left:0}.FV0QMq_uploadDropChatCard{text-align:center;max-width:100%;color:var(--dsw-alias-label-primary);font:var(--dsw-font-s-strong-14);flex-direction:column;align-items:center;gap:12px;display:flex}.FV0QMq_uploadOverlay{z-index:30;background:var(--dsw-alias-bg-mask-1);backdrop-filter:var(--dsw-mask-blur);animation:FV0QMq_dsh-row-in .15s var(--ds-ease-in-out);justify-content:center;align-items:center;display:flex;position:absolute;inset:0}.FV0QMq_uploadOverlayCard{border:1px solid var(--dsw-alias-border-inverted);background:var(--dsw-alias-bg-layer-2);min-width:280px;max-width:min(420px,100% - 48px);box-shadow:var(--dsw-shadow-lv3);border-radius:24px;flex-direction:column;gap:12px;padding:20px 24px;display:flex}.FV0QMq_uploadOverlayTitle{font:var(--dsw-font-s-strong-14);color:var(--dsw-alias-label-primary);align-items:center;gap:8px;display:flex}.FV0QMq_uploadOverlayTitle>svg{flex:none}.FV0QMq_uploadOverlayTitle>span{white-space:nowrap;text-overflow:ellipsis;min-width:0;overflow:hidden}.FV0QMq_uploadOverlayProgress{background:var(--dsw-alias-border-l2);border-radius:3px;height:6px;overflow:hidden}.FV0QMq_uploadOverlayProgressFill{background:var(--dsw-alias-interactive-bg-hover-accent);height:100%;transition:width .15s var(--ds-ease-in-out);border-radius:3px}.FV0QMq_uploadOverlayStatus{min-height:1em;font:var(--dsw-font-xxs-12);font-variant-numeric:tabular-nums;color:var(--dsw-alias-label-tertiary);white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.FV0QMq_uploadOverlayCancel{border:1px solid var(--dsw-alias-border-l2);height:28px;color:var(--dsw-alias-label-primary);font:var(--dsw-font-xxs-strong-12);cursor:pointer;background:0 0;border-radius:8px;align-self:flex-end;padding:0 14px}.FV0QMq_uploadOverlayCancel:hover:not(:disabled){background:var(--dsw-alias-interactive-bg-hover);border-color:var(--dsw-alias-border-l2)}.FV0QMq_uploadOverlayCancel:disabled{opacity:.4;cursor:default}.FV0QMq_editor{flex-direction:column;flex:1;min-height:0;display:flex}.FV0QMq_editorHeader{border-bottom:1px solid var(--dsw-alias-border-l1);flex:none;align-items:center;gap:6px;padding:6px 8px;display:flex}.FV0QMq_editorTitle{min-width:0;font:var(--dsw-font-xxs-strong-12);color:var(--dsw-alias-label-secondary);text-overflow:ellipsis;white-space:nowrap;flex:1;overflow:hidden}.FV0QMq_editorPathInput{box-sizing:border-box;border:1px solid var(--dsw-alias-border-l1);background:var(--dsw-alias-bg-layer-1);min-width:0;height:28px;color:var(--dsw-alias-label-primary);font:var(--dsw-font-xxs-12);border-radius:6px;flex:1;padding:0 10px}.FV0QMq_editorPathInput:focus{border-color:var(--dsw-alias-border-l2);outline:none}.FV0QMq_editorTreeToggleActive{color:var(--dsw-alias-label-primary);background:var(--dsw-alias-interactive-bg-active)}.FV0QMq_editorBody{flex:1;min-height:0;display:flex}.FV0QMq_editorMain{flex-direction:column;flex:1;min-width:0;min-height:0;display:flex}.FV0QMq_editorTreeDock{border-left:1px solid var(--dsw-alias-border-l1);flex:none;min-height:0;display:flex;position:relative}.FV0QMq_editorTreeResize{cursor:col-resize;touch-action:none;z-index:3;width:6px;position:absolute;top:0;bottom:0;left:0}.FV0QMq_editorTreeResize:hover{background:var(--dsw-alias-border-l2)}.FV0QMq_editorTreePanel{flex-direction:column;flex:1;min-width:0;min-height:0;display:flex;position:relative}.FV0QMq_editorTreePanelFull{flex:1}.FV0QMq_editorTreeSearch{border-bottom:1px solid var(--dsw-alias-border-l1);flex:none;align-items:center;gap:6px;padding:6px 8px;display:flex}.FV0QMq_editorSearchInput{border:1px solid var(--dsw-alias-border-l1);background:var(--dsw-alias-bg-layer-1);min-width:0;height:26px;color:var(--dsw-alias-label-primary);font:var(--dsw-font-xxs-12);border-radius:6px;flex:1;padding:0 10px}.FV0QMq_editorSearchInput:focus{border-color:var(--dsw-alias-border-l2);outline:none}.FV0QMq_editorSearchHint{font:var(--dsw-font-xxs-12);color:var(--dsw-alias-label-tertiary);padding:8px 12px}.FV0QMq_editorSearchResult{width:100%;color:var(--dsw-alias-label-primary);font:var(--dsw-font-xxs-12);text-align:left;cursor:pointer;text-overflow:ellipsis;white-space:nowrap;background:0 0;border:none;border-radius:6px;padding:4px 8px;display:block;overflow:hidden}.FV0QMq_editorSearchResult:hover{background:var(--dsw-alias-interactive-bg-hover)}.FV0QMq_editorStatus{font:var(--dsw-font-xxxs-11);color:var(--dsw-alias-label-tertiary)}.FV0QMq_editorStatusError{color:var(--dsw-alias-state-error-primary)}.FV0QMq_dirtyDot{background:var(--dsw-alias-state-warn-primary);border-radius:50%;flex:none;width:7px;height:7px}.FV0QMq_editorPlaceholder{font:var(--dsw-font-xxs-12);color:var(--dsw-alias-label-tertiary);text-align:center;flex:1;justify-content:center;align-items:center;padding:16px;display:flex}.FV0QMq_orphanedType{opacity:.7;overflow-wrap:anywhere;margin-top:8px;font-size:12px;display:block}.FV0QMq_editorBinary{text-align:center;flex-direction:column;flex:1;justify-content:center;align-items:center;gap:12px;padding:24px 16px;display:flex}.FV0QMq_editorBinaryNotice{font:var(--dsw-font-xxs-12);color:var(--dsw-alias-label-tertiary)}.FV0QMq_editorDownloadLink{border:1px solid var(--dsw-alias-border-l2);background:var(--dsw-alias-bg-layer-2);color:var(--dsw-alias-label-primary);font:var(--dsw-font-xxs-strong-12);cursor:pointer;transition:background var(--ds-transition-duration-slow) var(--ds-ease-in-out), border-color var(--ds-transition-duration-slow) var(--ds-ease-in-out);border-radius:6px;align-items:center;gap:6px;padding:6px 14px;text-decoration:none;display:inline-flex}.FV0QMq_editorDownloadLink:hover{background:var(--dsw-alias-interactive-bg-hover);border-color:var(--dsw-alias-border-l2)}.FV0QMq_editorError{font:var(--dsw-font-xxs-12);color:var(--dsw-alias-state-error-primary);padding:12px 16px}.FV0QMq_fenceError{font:var(--dsw-font-xxs-12);color:var(--dsw-alias-state-error-primary);flex-wrap:wrap;align-items:center;gap:8px;padding:8px 16px;display:flex}.FV0QMq_editorBanner{font:var(--dsw-font-xxxs-11);color:var(--dsw-alias-state-warn-label);background:var(--dsw-alias-state-warn-tertiary);flex:none;padding:4px 8px}.FV0QMq_sandboxStatus{font:var(--dsw-font-xxxs-11);flex:none;align-items:center;gap:8px;padding:4px 10px;display:flex}.FV0QMq_sandboxStatusOn{color:var(--dsw-alias-label-secondary);background:var(--dsw-alias-bg-layer-1);border-bottom:1px solid var(--dsw-alias-border-l1)}.FV0QMq_sandboxStatusOff{color:var(--dsw-alias-state-error-primary);background:color-mix(in srgb, var(--dsw-alias-state-error-primary) 10%, transparent);border-bottom:1px solid color-mix(in srgb, var(--dsw-alias-state-error-primary) 45%, transparent)}.FV0QMq_sandboxDot{background:var(--dsw-alias-state-success-primary);border-radius:50%;flex:none;width:6px;height:6px}.FV0QMq_sandboxStatusOff .FV0QMq_sandboxDot{background:var(--dsw-alias-state-error-primary)}.FV0QMq_sandboxStatusText{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;overflow:hidden}.FV0QMq_sandboxAction{border:1px solid var(--dsw-alias-border-l2);font:inherit;color:inherit;cursor:pointer;background:0 0;border-radius:6px;flex:none;padding:2px 8px}.FV0QMq_sandboxAction:hover{background:var(--dsw-alias-interactive-bg-hover)}.FV0QMq_editorHtml{background:var(--dsw-alias-bg-base);border:none;flex:1;width:100%;min-height:0}.FV0QMq_browser{flex-direction:column;flex:1;min-height:0;display:flex}.FV0QMq_browserBar{border-bottom:1px solid var(--dsw-alias-border-l1);flex:none;align-items:center;gap:4px;padding:6px 8px;display:flex}.FV0QMq_browserInput{border:1px solid var(--dsw-alias-border-l1);background:var(--dsw-alias-bg-layer-1);min-width:0;height:28px;color:var(--dsw-alias-label-primary);font:var(--dsw-font-xxs-12);border-radius:6px;flex:1;padding:0 10px}.FV0QMq_browserInput:focus{border-color:var(--dsw-alias-border-l2);outline:none}.FV0QMq_browserMessage{font:var(--dsw-font-xxxs-11);color:var(--dsw-alias-state-warn-label);background:var(--dsw-alias-state-warn-tertiary);flex:none;padding:4px 12px}.FV0QMq_browserFrame{background:var(--dsw-alias-bg-base);border:none;flex:1;width:100%;min-height:0}.FV0QMq_browserStart{text-align:center;min-height:0;font:var(--dsw-font-xs-13);color:var(--dsw-alias-label-tertiary);flex:1;justify-content:center;align-items:center;padding:20px;display:flex}.FV0QMq_browserBlocked{text-align:center;min-height:0;color:var(--dsw-alias-state-warn-primary);flex-direction:column;flex:1;justify-content:center;align-items:center;gap:6px;padding:24px;display:flex}.FV0QMq_browserBlockedTitle{font:var(--dsw-font-xxs-strong-12);color:var(--dsw-alias-label-primary)}.FV0QMq_browserBlockedDesc{max-width:280px;font:var(--dsw-font-xxxs-11);color:var(--dsw-alias-label-secondary)}.FV0QMq_browserBlockedActions{gap:8px;margin-top:6px;display:flex}.FV0QMq_browserBlockedButton{border:1px solid var(--dsw-alias-border-l2);background:var(--dsw-alias-bg-layer-1);color:var(--dsw-alias-label-primary);font:var(--dsw-font-xxxs-11);cursor:pointer;border-radius:6px;padding:4px 12px}.FV0QMq_browserBlockedButton:hover{background:var(--dsw-alias-interactive-bg-hover)}.FV0QMq_editorCm{background:0 0;flex:1;min-height:0;overflow:hidden}.FV0QMq_editorCmHidden{display:none}.FV0QMq_editorCm .cm-editor{height:100%}.FV0QMq_editorCm .cm-scroller{padding:12px 16px}.FV0QMq_editorCm .cm-editor.cm-focused{outline:none}.FV0QMq_editorModeToggle{border:1px solid var(--dsw-alias-border-l1);background:var(--dsw-alias-bg-layer-1);border-radius:6px;flex:none;align-items:center;gap:2px;padding:2px;display:inline-flex}.FV0QMq_editorModeButton{color:var(--dsw-alias-label-tertiary);font:var(--dsw-font-xxxs-11);cursor:pointer;background:0 0;border:none;border-radius:4px;padding:2px 8px}.FV0QMq_editorModeButton:hover{color:var(--dsw-alias-label-primary)}.FV0QMq_editorModeActive{background:var(--dsw-alias-bg-base);color:var(--dsw-alias-label-primary)}.FV0QMq_editorImageWrap{flex:1;justify-content:center;align-items:center;min-height:0;padding:12px;display:flex;overflow:auto}.FV0QMq_editorImage{object-fit:contain;max-width:100%;max-height:100%}.FV0QMq_editorMd{min-height:0;font:var(--dsw-font-xs-13);flex:1;padding:12px 16px;overflow-y:auto}.FV0QMq_mermaidWrap{border:1px solid var(--dsw-alias-border-l1);background:var(--dsw-alias-bg-layer-1);border-radius:6px;margin:6px 0;overflow:hidden}.FV0QMq_mermaidHeader{border-bottom:1px solid var(--dsw-alias-border-l1);background:var(--dsw-alias-bg-layer-2);justify-content:space-between;align-items:center;gap:6px;padding:4px 8px;display:flex}.FV0QMq_mermaidInfo{font:var(--dsw-font-xxxs-strong-11);color:var(--dsw-alias-label-tertiary)}.FV0QMq_mermaidCopy{height:20px;color:var(--dsw-alias-label-secondary);font:var(--dsw-font-xxxs-11);cursor:pointer;background:0 0;border:none;border-radius:4px;align-items:center;gap:4px;padding:0 6px;display:inline-flex}.FV0QMq_mermaidCopy:hover{background:var(--dsw-alias-interactive-bg-hover);color:var(--dsw-alias-label-primary)}.FV0QMq_mermaidBody{cursor:zoom-in;justify-content:center;padding:10px;display:flex;overflow:auto}.FV0QMq_mermaidBody svg{max-width:100%;height:auto}.FV0QMq_mermaidError{border-bottom:1px solid var(--dsw-alias-border-l1);color:var(--dsw-alias-state-error-primary);font:var(--dsw-font-xxxs-11);padding:6px 10px}.FV0QMq_mermaidCode{font:var(--dsw-font-xxxs-11);margin:0;padding:8px 10px;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;overflow:auto}.FV0QMq_mermaidMarkdown .md-code-block[data-mermaid-processed]{display:contents}.FV0QMq_mermaidModal{z-index:1000;background:var(--dsw-alias-bg-mask-1);backdrop-filter:blur(2px);flex-direction:column;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.FV0QMq_mermaidModalToolbar{z-index:10;gap:8px;display:flex;position:absolute;top:16px;right:16px}.FV0QMq_mermaidModalButton{border:1px solid var(--dsw-alias-border-l1);background:var(--dsw-alias-bg-layer-2);width:36px;height:36px;color:var(--dsw-alias-label-primary);font:var(--dsw-font-xs-strong-13);cursor:pointer;border-radius:8px;justify-content:center;align-items:center;display:inline-flex}.FV0QMq_mermaidModalButton:hover{background:var(--dsw-alias-interactive-bg-hover)}.FV0QMq_mermaidModalStage{justify-content:center;align-items:center;width:90vw;height:80vh;display:flex;position:relative;overflow:hidden}.FV0QMq_mermaidModalStage svg{cursor:grab;transform-origin:50%;user-select:none;-webkit-user-drag:none;background:var(--dsw-alias-bg-layer-1);border-radius:12px;max-width:none;max-height:none;padding:16px}.FV0QMq_mermaidModalStage svg:active{cursor:grabbing}.FV0QMq_mermaidModalHint{color:var(--dsw-alias-label-tertiary);font:var(--dsw-font-xxxs-11);pointer-events:none;position:absolute;bottom:16px;left:50%;transform:translate(-50%)}.FV0QMq_selectionPopup{z-index:60;border:1px solid var(--dsw-alias-border-l1);background:var(--dsw-alias-bg-layer-2);height:28px;color:var(--dsw-alias-label-primary);font:var(--dsw-font-xxxs-strong-11);white-space:nowrap;cursor:pointer;border-radius:6px;align-items:center;padding:0 10px;display:inline-flex;position:fixed;transform:translate(-50%,calc(-100% - 8px))}.FV0QMq_selectionPopup:hover{background:var(--dsw-alias-interactive-bg-hover)}.FV0QMq_editorPdf{background:var(--dsw-alias-bg-base);flex-direction:column;flex:1;min-height:0;display:flex}.FV0QMq_editorPdfToolbar{border-bottom:1px solid var(--dsw-alias-border-l1);flex:none;justify-content:flex-end;padding:6px 8px;display:flex}.FV0QMq_editorPdfStage{flex:1;min-height:0;display:flex;position:relative}.FV0QMq_editorPdfFrame{background:var(--dsw-alias-bg-base);border:none;flex:1;width:100%;min-height:0}.FV0QMq_editorPdfFrameBlocked{pointer-events:none}.FV0QMq_editorPdfDragShield{z-index:4;pointer-events:none;background:0 0;position:absolute;inset:0}.FV0QMq_editorPdfDragShieldActive{pointer-events:auto}body[data-dsh-tab-dragging] .FV0QMq_editorPdfFrame{pointer-events:none!important}body[data-dsh-tab-dragging] .FV0QMq_editorPdfDragShield{pointer-events:auto!important}.FV0QMq_terminalWrap{background:var(--dsw-alias-bg-base);flex-direction:column;flex:1;min-height:0;display:flex;position:relative}.FV0QMq_terminal{flex:1;min-height:0;padding:6px 4px 6px 8px}.FV0QMq_terminal .xterm{height:100%}.FV0QMq_terminalBanner{font:var(--dsw-font-xxxs-11);color:var(--dsw-alias-state-warn-label);background:var(--dsw-alias-state-warn-tertiary);flex-wrap:wrap;flex:none;align-items:center;gap:8px;padding:3px 10px;display:flex}.FV0QMq_terminalBannerUrl{word-break:break-all;opacity:.85;flex-basis:100%;font-family:ui-monospace,SFMono-Regular,Menlo,monospace}.FV0QMq_boundaryError{z-index:50;background:var(--dsw-alias-bg-layer-1);border-left:1px solid var(--dsw-alias-border-l2);font:var(--dsw-font-xxs-12);color:var(--dsw-alias-state-error-primary);flex-direction:column;align-items:flex-start;gap:8px;padding:16px;display:flex;position:fixed;top:0;bottom:0;right:0;overflow:auto}.FV0QMq_terminalRetry{border:1px solid var(--dsw-alias-border-l2);background:var(--dsw-alias-bg-layer-2);color:var(--dsw-alias-label-secondary);font:var(--dsw-font-xxxs-strong-11);cursor:pointer;border-radius:999px;flex:none;padding:1px 8px}.FV0QMq_terminalRetry:hover{background:var(--dsw-alias-interactive-bg-hover);color:var(--dsw-alias-label-primary)}.FV0QMq_terminalDepsBanner{font:var(--dsw-font-xxs-12);color:var(--dsw-alias-state-warn-label);background:var(--dsw-alias-state-warn-tertiary);flex-direction:column;flex:none;gap:6px;padding:10px;display:flex}.FV0QMq_terminalDepsTitle{font:var(--dsw-font-xxs-strong-12);color:var(--dsw-alias-state-warn-primary)}.FV0QMq_terminalDepsHint{opacity:.9}.FV0QMq_terminalDepsCommandRow{align-items:flex-start;gap:8px;display:flex}.FV0QMq_terminalRepairCommand{white-space:pre-wrap;word-break:break-all;user-select:text;min-width:0;color:var(--dsw-alias-label-primary);background:var(--dsw-alias-bg-layer-2);border:1px solid var(--dsw-alias-border-l2);border-radius:4px;flex:1;max-height:160px;margin:0;padding:6px 8px;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:11px;line-height:1.5;overflow:auto}.FV0QMq_terminalDepsNote{opacity:.85}.FV0QMq_terminalDepsActions{align-items:center;gap:8px;display:flex}.FV0QMq_tabBoundaryError{min-height:0;font:var(--dsw-font-xxs-12);color:var(--dsw-alias-state-error-primary);flex-direction:column;flex:1;align-items:flex-start;gap:8px;padding:12px 16px;display:flex;overflow:auto}.FV0QMq_git{flex-direction:column;flex:1;min-width:0;min-height:0;display:flex;overflow:hidden auto}.FV0QMq_gitHeader{flex:none;align-items:center;gap:8px;height:36px;padding:0 8px 0 12px;display:flex}.FV0QMq_gitWorktreeRow{flex:none;align-items:center;gap:8px;padding:6px 8px 0 12px;display:flex}.FV0QMq_gitWorktreeLabel{color:var(--dsw-alias-label-tertiary);font:var(--dsw-font-xxxs-11);flex:none}.FV0QMq_gitBranchSelect{border:1px solid var(--dsw-alias-border-l2);background:var(--dsw-alias-bg-base);min-width:0;height:26px;color:var(--dsw-alias-label-primary);font:var(--dsw-font-xxs-12);border-radius:6px;flex:1;padding:0 6px}.FV0QMq_gitSection{border-top:1px solid var(--dsw-alias-border-l1)}.FV0QMq_gitSectionHeader{font:var(--dsw-font-xxxs-strong-11);color:var(--dsw-alias-label-tertiary);text-transform:uppercase;justify-content:space-between;align-items:center;padding:6px 12px 4px;display:flex}.FV0QMq_gitLink{font:var(--dsw-font-xxxs-11);color:var(--dsw-alias-brand-primary);cursor:pointer;background:0 0;border:none;padding:0}.FV0QMq_gitLink:hover:not(:disabled){text-decoration:underline}.FV0QMq_gitLink:disabled{opacity:.4;cursor:default}.FV0QMq_gitRow{min-height:34px;animation:FV0QMq_dsh-row-in .15s var(--ds-ease-in-out);border-radius:8px;align-items:center;gap:6px;margin:0 6px;padding:0 8px;display:flex}.FV0QMq_gitRow:hover{background:var(--dsw-alias-interactive-bg-hover)}.FV0QMq_gitRowSelected{background:var(--dsw-alias-interactive-bg-active)}.FV0QMq_gitRowMain{cursor:pointer;text-align:left;background:0 0;border:none;flex:1;align-items:center;gap:8px;min-width:0;padding:3px 0;display:flex}.FV0QMq_gitBadge{width:20px;height:16px;font:var(--dsw-font-xxxs-strong-11);background:var(--dsw-alias-interactive-bg-hover);color:var(--dsw-alias-label-secondary);border-radius:4px;flex:none;justify-content:center;align-items:center;display:inline-flex}.FV0QMq_gitName{text-overflow:ellipsis;white-space:nowrap;min-width:0;font:var(--dsw-font-s-14);color:var(--dsw-alias-label-primary);flex:1;overflow:hidden}.FV0QMq_gitEmpty{font:var(--dsw-font-xxs-12);color:var(--dsw-alias-label-tertiary);padding:4px 12px 8px}.FV0QMq_gitPlaceholder{font:var(--dsw-font-xxs-12);color:var(--dsw-alias-label-tertiary);text-align:center;padding:16px}.FV0QMq_gitError{font:var(--dsw-font-xxs-12);color:var(--dsw-alias-state-error-primary);white-space:pre-wrap;padding:8px 12px}.FV0QMq_gitDiff{border-top:1px solid var(--dsw-alias-border-l1);padding:8px}.FV0QMq_gitDiffTab{flex-direction:column;flex:1;min-width:0;min-height:0;display:flex;overflow:hidden auto}.FV0QMq_gitDiffTabHeader{border-bottom:1px solid var(--dsw-alias-border-l1);flex:none;align-items:center;gap:8px;height:36px;padding:0 8px 0 12px;display:flex}.FV0QMq_gitDiffTabTitle{text-overflow:ellipsis;white-space:nowrap;min-width:0;font:var(--dsw-font-xxs-strong-12);color:var(--dsw-alias-label-primary);flex:1;overflow:hidden}.FV0QMq_gitDiffFile{width:100%;color:inherit;text-align:left;cursor:pointer;background:0 0;border:0;align-items:baseline;gap:6px;padding:8px 2px 2px;display:flex}.FV0QMq_gitDiffFile:disabled{cursor:default}.FV0QMq_gitDiffFile:hover:not(:disabled){background:var(--dsw-alias-interactive-bg-hover)}.FV0QMq_gitDiffFileChevron{color:var(--dsw-alias-label-tertiary);flex:none;transform:rotate(0)}.FV0QMq_gitDiffFileChevronExpanded{transform:rotate(90deg)}.FV0QMq_gitDiffFilePath{font:var(--dsw-font-xxs-strong-12);color:var(--dsw-alias-label-primary);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.FV0QMq_gitDiffFileOld{font:var(--dsw-font-xxxs-11);color:var(--dsw-alias-label-tertiary);text-overflow:ellipsis;white-space:nowrap;flex:none;max-width:40%;overflow:hidden}.FV0QMq_gitDiffFileTag{border:1px solid var(--dsw-alias-border-l2);font:var(--dsw-font-xxxs-strong-11);color:var(--dsw-alias-label-secondary);border-radius:999px;flex:none;padding:0 6px}.FV0QMq_gitDiffHunk{font:var(--dsw-font-markdown-code-block-small);color:var(--dsw-alias-label-tertiary);gap:8px;padding:3px 2px;display:flex}.FV0QMq_gitDiffHunkHeader{color:var(--dsw-alias-label-secondary);flex:none}.FV0QMq_gitDiffHunkSection{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.FV0QMq_gitDiffLine{font:var(--dsw-font-markdown-code-block-small);white-space:pre-wrap;overflow-wrap:anywhere;align-items:stretch;min-width:0;line-height:20px;display:flex}.FV0QMq_gitDiffNum{text-align:right;width:36px;color:var(--dsw-alias-label-tertiary);user-select:none;flex:none;padding-right:8px}.FV0QMq_gitDiffCode{flex:1;min-width:0;overflow:visible}.FV0QMq_gitDiffCtx{color:var(--dsw-alias-label-primary)}.FV0QMq_gitDiffDel{color:var(--dsw-alias-state-error-primary);background:color-mix(in srgb, var(--dsw-alias-state-error-primary) 12%, transparent)}.FV0QMq_gitDiffAdd{color:var(--dsw-alias-state-success-primary);background:color-mix(in srgb, var(--dsw-alias-state-success-primary) 12%, transparent)}.FV0QMq_gitDiffMeta{padding-left:2px}.FV0QMq_gitDiffMetaText{font:var(--dsw-font-xxxs-11);color:var(--dsw-alias-label-tertiary);font-style:italic}.FV0QMq_gitDiffExpand{width:100%;font:var(--dsw-font-xxs-12);color:var(--dsw-alias-brand-primary);cursor:pointer;text-align:center;background:0 0;border:none;margin:4px 0;display:block}.FV0QMq_gitDiffExpand:hover{background:var(--dsw-alias-interactive-bg-hover)}.FV0QMq_gitConfirmDesc{font:var(--dsw-font-s-14);color:var(--dsw-alias-label-primary);white-space:pre-wrap;margin:0}.FV0QMq_gitCommit{border-top:1px solid var(--dsw-alias-border-l1);align-items:center;gap:6px;padding:8px 12px;display:flex}.FV0QMq_gitCommitInput{flex:1;min-width:0}.FV0QMq_gitCommitButton{background:var(--dsw-alias-button-primary-fill);height:26px;color:var(--dsw-alias-label-primary-inverted);font:var(--dsw-font-xxs-strong-12);cursor:pointer;border:none;border-radius:6px;flex:none;padding:0 12px}.FV0QMq_gitCommitButton:hover:not(:disabled){background:var(--dsw-alias-button-primary-hover)}.FV0QMq_gitCommitButton:disabled{opacity:.45;cursor:default}.FV0QMq_gitLogRow{cursor:pointer;border-radius:8px;flex-direction:column;gap:2px;padding:5px 12px;display:flex}.FV0QMq_gitLogRow:hover{background:var(--dsw-alias-interactive-bg-hover)}.FV0QMq_gitLogLine1{align-items:baseline;gap:8px;min-width:0;display:flex}.FV0QMq_gitLogHash{font:var(--dsw-font-markdown-code-block-small);color:var(--dsw-alias-label-tertiary);flex:none}.FV0QMq_gitLogLine2{flex-wrap:wrap;align-items:center;gap:6px;min-width:0;display:flex}.FV0QMq_gitLogRef{border:1px solid var(--dsw-alias-border-l2);font:var(--dsw-font-xxxs-strong-11);color:var(--dsw-alias-brand-primary);white-space:nowrap;border-radius:999px;flex:none;padding:0 5px}.FV0QMq_gitLogSubject{text-overflow:ellipsis;white-space:nowrap;min-width:0;font:var(--dsw-font-s-14);color:var(--dsw-alias-label-primary);flex:1;overflow:hidden}.FV0QMq_gitLogMeta{font:var(--dsw-font-xxxs-11);color:var(--dsw-alias-label-tertiary)}.FV0QMq_gitLogMore{border:1px solid var(--dsw-alias-border-l2);width:calc(100% - 24px);font:var(--dsw-font-xxs-12);color:var(--dsw-alias-label-secondary);cursor:pointer;background:0 0;border-radius:6px;margin:4px 12px 8px;padding:6px 0;display:block}.FV0QMq_gitLogMore:hover:not(:disabled){background:var(--dsw-alias-interactive-bg-hover);color:var(--dsw-alias-label-primary)}.FV0QMq_gitLogMore:disabled{opacity:.5;cursor:default}.FV0QMq_producedRow{flex-wrap:wrap;align-items:center;gap:8px;padding:4px 0;display:flex}.FV0QMq_producedLabel{font:var(--dsw-font-xxs-12);color:var(--dsw-alias-label-tertiary)}.FV0QMq_producedChip{border:1px solid var(--dsw-alias-border-l2);background:var(--dsw-alias-bg-layer-2);max-width:200px;color:var(--dsw-alias-label-secondary);font:var(--dsw-font-xxs-12);cursor:pointer;border-radius:999px;align-items:center;gap:4px;padding:2px 8px;display:inline-flex;overflow:hidden}.FV0QMq_producedChip:hover{background:var(--dsw-alias-interactive-bg-hover);color:var(--dsw-alias-label-primary)}.FV0QMq_producedChip span{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.FV0QMq_producedMore{font:var(--dsw-font-xxs-12);color:var(--dsw-alias-label-tertiary)}.FV0QMq_toggleButton:focus-visible,.FV0QMq_manualButton:focus-visible,.FV0QMq_bottomClose:focus-visible,.FV0QMq_iconButton:focus-visible,.FV0QMq_tab:focus-visible,.FV0QMq_tabClose:focus-visible,.FV0QMq_tabBarPlus:focus-visible,.FV0QMq_paneCard:focus-visible,.FV0QMq_explorerRow:focus-visible,.FV0QMq_explorerRef:focus-visible,.FV0QMq_gitRowMain:focus-visible,.FV0QMq_gitLink:focus-visible,.FV0QMq_gitCommitButton:focus-visible,.FV0QMq_gitLogRow:focus-visible,.FV0QMq_gitLogMore:focus-visible,.FV0QMq_gitDiffFile:focus-visible,.FV0QMq_gitDiffExpand:focus-visible,.FV0QMq_terminalRetry:focus-visible,.FV0QMq_editorModeButton:focus-visible,.FV0QMq_editorDownloadLink:focus-visible,.FV0QMq_editorPptxButton:focus-visible,.FV0QMq_editorDocxZoomRange:focus-visible{outline:2px solid var(--dsw-alias-interactive-bg-hover-accent);outline-offset:-1px}@media (prefers-reduced-motion:reduce){.FV0QMq_panel,.FV0QMq_panelHidden,.FV0QMq_bottomPanel,.FV0QMq_bottomPanelHidden,.FV0QMq_toggleCluster,.FV0QMq_toggleButton,.FV0QMq_tab,.FV0QMq_tabBarPlus,.FV0QMq_paneCard,.FV0QMq_explorerRow,.FV0QMq_gitRow,.FV0QMq_divider,.FV0QMq_dividerRow:after,.FV0QMq_dividerCol:after{transition:none;animation:none}}@media (width<=767px){.FV0QMq_panel:not(.FV0QMq_panelHidden) .FV0QMq_tabBar{padding-right:148px}.FV0QMq_tab{min-width:48px;max-width:128px}}.FV0QMq_openWithLabel{align-items:center;gap:8px;width:100%;min-width:0;display:flex}.FV0QMq_openWithName{text-overflow:ellipsis;white-space:nowrap;flex:auto;min-width:0;overflow:hidden}.FV0QMq_openWithChevron{color:var(--dsw-alias-label-tertiary);flex:none}.FV0QMq_openWithPin{width:20px;height:20px;color:var(--dsw-alias-label-tertiary);cursor:pointer;border-radius:6px;flex:none;justify-content:center;align-items:center;display:inline-flex}.FV0QMq_openWithPin:hover{background:var(--dsw-alias-interactive-bg-hover);color:var(--dsw-alias-label-primary)}.FV0QMq_openWithPinActive{color:var(--dsw-alias-state-business-primary)}.FV0QMq_editorHtmlBlock{margin:8px 0}.FV0QMq_editorHtmlBlock img,.FV0QMq_editorHtmlBlock video{max-width:100%}.FV0QMq_editorHtmlBlock details{margin:4px 0;padding:4px 0}.FV0QMq_editorHtmlBlock summary{cursor:pointer}.FV0QMq_tocBar{z-index:3;pointer-events:none;justify-content:flex-end;height:0;display:flex;position:sticky;top:0}.FV0QMq_tocButton{pointer-events:auto;border:1px solid var(--dsw-alias-border-l1);background:var(--dsw-alias-bg-layer-1);width:26px;height:26px;color:var(--dsw-alias-label-secondary);cursor:pointer;border-radius:6px;justify-content:center;align-items:center;margin:4px 2px 0 0;padding:0;display:inline-flex}.FV0QMq_tocButton:hover{background:var(--dsw-alias-interactive-bg-hover);color:var(--dsw-alias-label-primary)}.FV0QMq_tocPanel{border:1px solid var(--dsw-alias-border-l1);background:var(--dsw-alias-bg-layer-2);width:min(300px,82%);max-height:60vh;box-shadow:var(--dsw-shadow-lv2);pointer-events:auto;border-radius:8px;flex-direction:column;padding:4px;display:flex;position:absolute;top:32px;right:2px;overflow-y:auto}.FV0QMq_tocItem{min-width:0;color:var(--dsw-alias-label-secondary);font:var(--dsw-font-xxs-12);text-align:left;cursor:pointer;background:0 0;border:none;border-radius:6px;align-items:baseline;gap:8px;padding:4px 8px;display:flex}.FV0QMq_tocItem:hover{background:var(--dsw-alias-interactive-bg-hover);color:var(--dsw-alias-label-primary)}.FV0QMq_tocItem[data-level=\"2\"]{padding-left:18px}.FV0QMq_tocItem[data-level=\"3\"]{padding-left:28px}.FV0QMq_tocItem[data-level=\"4\"]{padding-left:38px}.FV0QMq_tocItem[data-level=\"5\"]{padding-left:48px}.FV0QMq_tocItem[data-level=\"6\"]{padding-left:58px}.FV0QMq_tocItemLevel{font:var(--dsw-font-xxxs-11);color:var(--dsw-alias-label-tertiary);flex:none}.FV0QMq_tocItemText{text-overflow:ellipsis;white-space:nowrap;flex:auto;min-width:0;overflow:hidden}@keyframes FV0QMq_dsh-toc-flash{0%,60%{background:var(--dsw-alias-interactive-bg-hover)}to{background:0 0}}.FV0QMq_tocFlash{border-radius:4px;animation:1.2s ease-out FV0QMq_dsh-toc-flash}.FV0QMq_chatcodeGate{z-index:2147483000;isolation:isolate;background-color:var(--dsw-alias-tooltip-bg);background-image:linear-gradient(135deg, var(--dsw-alias-tooltip-bg) 0%, var(--dsw-alias-brand-primary) 48%, var(--dsw-alias-tooltip-bg) 100%);color:var(--dsw-alias-fg-base);pointer-events:auto;place-items:center;padding:24px;display:grid;position:fixed;inset:0;overflow:hidden}.FV0QMq_chatcodeGateCard{box-sizing:border-box;border:1px solid var(--dsw-alias-border-l2);background:linear-gradient(145deg, var(--dsw-alias-bg-layer-2), var(--dsw-alias-bg-layer-1));width:min(460px,100%);box-shadow:var(--dsw-shadow-lv3);text-align:center;border-radius:20px;padding:40px 36px;position:relative}.FV0QMq_chatcodeGateContent{position:relative}.FV0QMq_chatcodeGateCard h1{font:var(--dsw-font-heading-lg);letter-spacing:-.02em;margin:0 0 12px;font-size:clamp(32px,5vw,46px);line-height:1.1}.FV0QMq_chatcodeGateCard p{max-width:29em;color:var(--dsw-alias-label-secondary);font:var(--dsw-font-s-14);margin:0 auto;line-height:1.7}.FV0QMq_chatcodeGateError{border:1px solid color-mix(in srgb, var(--dsw-alias-fg-error) 36%, var(--dsw-alias-border-l2));background:color-mix(in srgb, var(--dsw-alias-fg-error) 8%, transparent);border-radius:10px;padding:9px 11px;position:relative;color:var(--dsw-alias-fg-error)!important;font:var(--dsw-font-xxs-12)!important;margin-top:16px!important;line-height:1.5!important}.FV0QMq_chatcodeGateActions{justify-content:center;gap:10px;margin:28px 0 14px;display:flex;position:relative}.FV0QMq_chatcodeGateActions button,.FV0QMq_chatcodeGateCard a{border:1px solid var(--dsw-alias-border-l2);background:var(--dsw-alias-bg-layer-2);min-height:42px;color:var(--dsw-alias-fg-base);font:var(--dsw-font-xxs-strong-12);cursor:pointer;transition:transform var(--ds-transition-duration-slow) var(--ds-ease-in-out), background var(--ds-transition-duration-slow) var(--ds-ease-in-out), border-color var(--ds-transition-duration-slow) var(--ds-ease-in-out);border-radius:10px;padding:9px 17px}.FV0QMq_chatcodeGateActions button:first-child{border-color:var(--dsw-alias-state-error-primary);background:var(--dsw-alias-state-error-primary);min-width:152px;min-height:46px;color:var(--dsw-alias-label-primary-inverted)}.FV0QMq_chatcodeGateActions button:first-child:hover:not(:disabled){box-shadow:var(--dsw-shadow-lv2);transform:translateY(-2px);border-color:var(--dsw-alias-state-error-primary)!important;background:var(--dsw-alias-state-error-primary)!important;color:var(--dsw-alias-label-primary-inverted)!important}.FV0QMq_chatcodeGateActions button:not(:first-child):hover:not(:disabled),.FV0QMq_chatcodeGateCard a:hover{border-color:var(--dsw-alias-button-primary-hover);background:var(--dsw-alias-button-primary-hover);color:var(--dsw-alias-label-primary-inverted);transform:translateY(-1px)}.FV0QMq_chatcodeGateActions button:disabled{cursor:default;opacity:.55}.FV0QMq_chatcodeGateCard a{align-items:center;text-decoration:none;display:inline-flex;position:relative}.FV0QMq_chatcodeGateActions button:focus-visible,.FV0QMq_chatcodeGateCard a:focus-visible{outline:2px solid var(--dsw-alias-border-accent);outline-offset:3px}@media (width<=480px){.FV0QMq_chatcodeGate{padding:16px}.FV0QMq_chatcodeGateCard{padding:32px 24px}.FV0QMq_chatcodeGateActions{flex-direction:column;align-items:stretch}.FV0QMq_chatcodeGateActions button,.FV0QMq_chatcodeGateCard a{justify-content:center}}";
12093
- const tagId$5 = "@chatcode/cco-better-sidebar/sidebar.module.css";
12094
- if (typeof document !== "undefined" && document.querySelector("style[data-plugin-css=" + JSON.stringify(tagId$5) + "]") === null) {
12155
+ const css$6 = ".FV0QMq_releaseNotesOverlay{z-index:120;pointer-events:auto;background:color-mix(in srgb, var(--dsw-alias-bg-base) 72%, transparent);place-items:center;padding:24px;display:grid;position:fixed;inset:0}.FV0QMq_releaseNotesDialog{width:min(720px,100%);max-height:min(760px,100vh - 48px);color:var(--dsw-alias-label-primary);background:var(--dsw-alias-bg-layer-1);border:1px solid var(--dsw-alias-border-l1);border-radius:12px;flex-direction:column;display:flex;overflow:hidden}.FV0QMq_releaseNotesHeader,.FV0QMq_releaseNotesFooter{align-items:center;padding:16px 20px;display:flex}.FV0QMq_releaseNotesHeader{border-bottom:1px solid var(--dsw-alias-border-l1);justify-content:space-between;gap:16px}.FV0QMq_releaseNotesHeader h2{font:var(--dsw-font-s-18);margin:0}.FV0QMq_releaseNotesContent{min-height:120px;font:var(--dsw-font-s-14);padding:20px;overflow:auto}.FV0QMq_releaseNotesFooter{border-top:1px solid var(--dsw-alias-border-l1);justify-content:flex-end}.FV0QMq_releaseNotesIconButton,.FV0QMq_releaseNotesButton{border:1px solid var(--dsw-alias-border-l1);color:var(--dsw-alias-label-primary);background:var(--dsw-alias-bg-layer-2);cursor:pointer}.FV0QMq_releaseNotesIconButton:hover,.FV0QMq_releaseNotesButton:hover{background:var(--dsw-alias-interactive-bg-hover)}.FV0QMq_releaseNotesIconButton{width:32px;height:32px;font:var(--dsw-font-s-18);border-radius:50%;padding:0}.FV0QMq_releaseNotesButton{min-width:84px;min-height:36px;font:var(--dsw-font-s-14);border-radius:8px;padding:6px 16px}.FV0QMq_updateList{flex-direction:column;gap:10px;margin:0;padding:0;list-style:none;display:flex}.FV0QMq_updateList li{font:var(--dsw-font-s-14);justify-content:space-between;align-items:center;gap:16px;display:flex}.FV0QMq_updateVersions{font-variant-numeric:tabular-nums;color:var(--dsw-alias-label-secondary)}.FV0QMq_updateOk{color:var(--dsw-alias-state-success-primary)}.FV0QMq_updateError,.FV0QMq_updateErrorText{color:var(--dsw-alias-state-error-primary)}.FV0QMq_updateErrorText{white-space:pre-wrap;font:var(--dsw-font-s-14);margin:12px 0 0}.FV0QMq_updateCommand{background:var(--dsw-alias-bg-layer-3);font-family:var(--dsw-font-code,var(--ds-font-family-code,monospace));white-space:pre-wrap;word-break:break-all;user-select:all;border-radius:6px;margin:8px 0 0;padding:8px 10px;font-size:12px;overflow-x:auto}.FV0QMq_updateSettingsRow{justify-content:space-between;align-items:center;gap:16px;display:flex}.FV0QMq_updateSettingsText{flex-direction:column;gap:2px;min-width:0;display:flex}.FV0QMq_updateSettingsTitle{font:var(--dsw-font-s-14)}.FV0QMq_updateSettingsDesc{font:var(--dsw-font-s-13);color:var(--dsw-alias-label-secondary)}.FV0QMq_updateSettingsBlock{flex-direction:column;gap:12px;display:flex}.FV0QMq_updateBody{font:var(--dsw-font-s-14);margin:20px 0 0}.FV0QMq_updateFooter{justify-content:flex-end;gap:8px;margin-top:4px;display:flex}.FV0QMq_updateInline{border:1px solid var(--dsw-alias-border-l1);background:var(--dsw-alias-bg-layer-2);border-radius:8px;padding:16px}[data-dsh-panel-host]{z-index:25;pointer-events:none;position:fixed;inset:0;overflow:clip}[data-dsh-panel-host][data-dsh-panel-host-degraded]{position:absolute;top:0;left:0}[data-dsh-pinned-sessions]{flex:none;min-width:0}.FV0QMq_pinnedSessions{border-bottom:1px solid var(--dsw-alias-border-l1);margin:0 0 6px;padding:4px 0 6px}.FV0QMq_pinnedSessionsHeading{height:36px;color:var(--dsw-alias-label-primary);font:var(--dsw-font-s-14);align-items:center;padding:0 4px;display:flex}.FV0QMq_pinnedSessionsList{gap:1px;display:grid}[data-slot=sidebar\\.workspaces] [class*=_sessionRow][data-dsh-session-pinned]{display:none}.FV0QMq_pinnedSessionRow{border-radius:8px;align-items:center;min-width:0;height:32px;display:flex;position:relative}.FV0QMq_pinnedSessionRow:hover,.FV0QMq_pinnedSessionRow:focus-within{background:var(--dsw-alias-interactive-bg-hover)}.FV0QMq_pinnedSessionOpen,.FV0QMq_pinnedSessionMore,.FV0QMq_pinnedSessionMenu button{font:inherit;cursor:pointer;border:0}.FV0QMq_pinnedSessionOpen{min-width:0;height:100%;color:var(--dsw-alias-label-primary);text-align:left;font:var(--dsw-font-s-14);background:0 0;flex:1;align-items:center;gap:8px;padding:0 6px 0 8px;display:flex}.FV0QMq_pinnedSessionOpen[aria-current=page]{color:var(--dsw-alias-brand-primary)}.FV0QMq_pinnedSessionDot{background:var(--dsw-alias-label-tertiary);border-radius:50%;flex:none;width:6px;height:6px}.FV0QMq_pinnedSessionDot[data-running]{background:var(--dsw-alias-state-success-primary)}.FV0QMq_pinnedSessionTitle{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.FV0QMq_pinnedSessionMore{width:28px;height:28px;color:var(--dsw-alias-label-secondary);letter-spacing:1px;background:0 0;border-radius:50%;justify-content:center;align-items:center;margin-right:2px;padding:0;display:inline-flex}.FV0QMq_pinnedSessionMore:hover,.FV0QMq_pinnedSessionMore[aria-expanded=true]{background:var(--dsw-alias-interactive-bg-hover);color:var(--dsw-alias-label-primary)}.FV0QMq_pinnedSessionMenu{z-index:1101;box-sizing:border-box;border:1px solid var(--dsw-alias-border-inverted);background:var(--dsw-alias-bg-layer-2);border-radius:10px;min-width:150px;padding:4px;position:absolute;top:calc(100% + 2px);right:0}.FV0QMq_pinnedSessionMenu button{width:100%;min-height:32px;color:var(--dsw-alias-label-primary);text-align:left;font:var(--dsw-font-xxs-12);background:0 0;border-radius:7px;align-items:center;gap:8px;padding:5px 8px;display:flex}.FV0QMq_pinnedSessionMenu button:hover{background:var(--dsw-alias-interactive-bg-hover)}.FV0QMq_pinnedSessionMenuDivider{background:var(--dsw-alias-border-l1);height:1px;margin:4px}.FV0QMq_accountMenu{z-index:3;box-sizing:border-box;width:var(--dsh-account-menu-width,280px);border-top:1px solid var(--dsw-alias-border-l2);border-right:1px solid var(--dsw-alias-border-l2);background:var(--dsw-alias-bg-layer-1);pointer-events:auto;position:absolute;bottom:0;left:0}.FV0QMq_accountTrigger,.FV0QMq_accountItem{color:var(--dsw-alias-fg-base);font:inherit;cursor:pointer;border:0}.FV0QMq_accountTrigger{box-sizing:border-box;width:100%;min-height:52px;padding:10px 14px max(10px, env(safe-area-inset-bottom));background:var(--dsw-alias-bg-layer-1);font-family:var(--dsw-font-family-body);font-size:var(--dsw-font-size-body-sm);line-height:var(--dsw-font-line-height-body-sm);transition:background var(--ds-transition-duration-slow) var(--ds-ease-in-out);border-radius:0;align-items:center;gap:8px;display:flex}.FV0QMq_accountTrigger:hover,.FV0QMq_accountTrigger[aria-expanded=true]{background:var(--dsw-alias-bg-hover)}.FV0QMq_accountTrigger:focus-visible,.FV0QMq_accountItem:focus-visible{outline:2px solid var(--dsw-alias-border-accent);outline-offset:2px}.FV0QMq_accountAvatar{background:var(--dsw-alias-bg-layer-3);border:1px solid var(--dsw-alias-border-l2);width:28px;height:28px;color:var(--dsw-alias-fg-accent);border-radius:50%;flex:none;place-items:center;font-weight:600;display:grid;position:relative}.FV0QMq_accountName{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.FV0QMq_accountDropdown{box-sizing:border-box;border:1px solid var(--dsw-alias-border-l2);background:var(--dsw-alias-bg-layer-2);z-index:1;border-radius:12px;width:min(252px,100% - 16px);padding:10px 8px 8px;display:grid;position:absolute;bottom:calc(100% + 8px);left:8px}.FV0QMq_accountDropdownHeader{min-height:36px;font-family:var(--dsw-font-family-body);font-size:var(--dsw-font-size-body-sm);line-height:var(--dsw-font-line-height-body-sm);align-items:center;gap:8px;padding:0 8px 8px;display:flex}.FV0QMq_accountMenuDivider{background:var(--dsw-alias-border-l2);height:1px;margin:0 4px 6px}.FV0QMq_accountItem{text-align:left;min-height:32px;font:var(--dsw-font-s-14);background:0 0;border-radius:7px;align-items:center;gap:8px;padding:0 10px;display:flex}.FV0QMq_accountItem:hover{background:var(--dsw-alias-bg-hover)}.FV0QMq_accountPresence{box-sizing:content-box;border:2px solid var(--dsw-alias-bg-layer-2);background:var(--dsw-alias-fg-accent);border-radius:50%;flex:none;width:6px;height:6px;margin-left:auto}.FV0QMq_accountTrigger .FV0QMq_accountPresence{border-color:var(--dsw-alias-bg-layer-1)}.FV0QMq_toggleCluster{top:var(--dsh-native-sidebar-toggle-top,calc(3px + env(safe-area-inset-top)));z-index:45;pointer-events:auto;flex-direction:row;gap:4px;display:flex;position:absolute;right:10px}.FV0QMq_toggleClusterNative{z-index:auto;flex:none;align-items:center;position:static;inset:auto}button[data-dsh-better-sidebar-toggle]{display:none}body:not([data-dsh-native-sidebar-toggle]) .FV0QMq_panel:not(.FV0QMq_panelHidden) .FV0QMq_tabBar{padding-right:var(--dsh-sidebar-toggle-reserve,188px)}.FV0QMq_toggleButton{width:28px;height:28px;color:var(--dsw-alias-label-secondary);cursor:pointer;transition:background var(--ds-transition-duration-slow) var(--ds-ease-in-out), color var(--ds-transition-duration-slow) var(--ds-ease-in-out);background:0 0;border:none;border-radius:50%;justify-content:center;align-items:center;display:flex}.FV0QMq_manualButton{min-width:94px;height:28px;color:var(--dsw-alias-label-secondary);font:var(--dsw-font-xxs-12);white-space:nowrap;cursor:pointer;transition:background var(--ds-transition-duration-slow) var(--ds-ease-in-out), color var(--ds-transition-duration-slow) var(--ds-ease-in-out);background:0 0;border:none;border-radius:6px;flex:none;justify-content:center;align-items:center;gap:6px;margin-right:4px;padding:0 10px;display:inline-flex}.FV0QMq_manualButton:hover,.FV0QMq_toggleButton:hover:not(:disabled):not([aria-disabled=true]){background:var(--dsw-alias-interactive-bg-hover);color:var(--dsw-alias-label-primary)}.FV0QMq_toggleButton:disabled,.FV0QMq_toggleButton[aria-disabled=true]{opacity:.4;cursor:default}.FV0QMq_panel{box-sizing:border-box;z-index:40;pointer-events:auto;background:var(--dsw-alias-bg-layer-1);border-left:1px solid var(--dsw-alias-border-l2);padding-bottom:env(safe-area-inset-bottom);transition:transform var(--ds-transition-duration-slow) var(--ds-ease-in-out), width var(--ds-transition-duration-slow) var(--ds-ease-in-out);flex-direction:column;display:flex;position:absolute;top:0;bottom:0;right:0}.FV0QMq_panelHidden{pointer-events:none;visibility:hidden;transition:transform var(--ds-transition-duration-slow) var(--ds-ease-in-out), width var(--ds-transition-duration-slow) var(--ds-ease-in-out), visibility 0s linear var(--ds-transition-duration-slow);transform:translate(102%)}.FV0QMq_panel[data-dragging]{transition:none}.FV0QMq_panelResize{cursor:col-resize;z-index:2;touch-action:none;width:8px;position:absolute;top:0;bottom:0;left:-4px}.FV0QMq_panelResizeActive{background:var(--dsw-alias-interactive-bg-hover-accent)}.FV0QMq_panelBody{flex:1;min-width:0;min-height:0;display:flex}.FV0QMq_bottomPanel{z-index:40;background:var(--dsw-alias-bg-layer-1);border-top:1px solid var(--dsw-alias-border-l2);pointer-events:auto;padding-bottom:env(safe-area-inset-bottom);transition:transform var(--ds-transition-duration-slow) var(--ds-ease-in-out), height var(--ds-transition-duration-slow) var(--ds-ease-in-out);flex-direction:column;display:flex;position:absolute;bottom:0}.FV0QMq_bottomPanelHidden{pointer-events:none;visibility:hidden;transition:transform var(--ds-transition-duration-slow) var(--ds-ease-in-out), height var(--ds-transition-duration-slow) var(--ds-ease-in-out), visibility 0s linear var(--ds-transition-duration-slow);transform:translateY(102%)}.FV0QMq_bottomPanel[data-dragging]{transition:none}.FV0QMq_panel,.FV0QMq_bottomPanel{contain:layout style}body[data-dsh-sidebar-dragging] .FV0QMq_panel,body[data-dsh-sidebar-dragging] .FV0QMq_bottomPanel{will-change:transform}.FV0QMq_bottomResize{cursor:row-resize;z-index:2;touch-action:none;height:8px;position:absolute;top:-4px;left:0;right:0}.FV0QMq_bottomResizeActive{background:var(--dsw-alias-interactive-bg-hover-accent)}.FV0QMq_bottomClose{z-index:4;width:28px;height:28px;color:var(--dsw-alias-label-secondary);cursor:pointer;background:0 0;border:none;border-radius:50%;flex:none;justify-content:center;align-items:center;padding:0;display:inline-flex;position:absolute;top:3px;right:6px}.FV0QMq_bottomClose:hover:not(:disabled){background:var(--dsw-alias-interactive-bg-hover);color:var(--dsw-alias-label-primary)}.FV0QMq_bottomPanel .FV0QMq_tabBar{padding-right:40px}.FV0QMq_floatWindow{z-index:42;pointer-events:auto;background:var(--dsw-alias-bg-layer-1);border:1px solid var(--dsw-alias-border-l2);box-shadow:var(--dsw-shadow-lv3);contain:layout style;border-radius:8px;flex-direction:column;display:flex;position:absolute;overflow:hidden}.FV0QMq_floatWindowDragging{will-change:left, top, width, height}.FV0QMq_floatHeader{height:34px;font:var(--dsw-font-xxs-12);color:var(--dsw-alias-label-secondary);background:var(--dsw-alias-bg-layer-1);border-bottom:1px solid var(--dsw-alias-border-l1);cursor:grab;user-select:none;flex:none;align-items:center;gap:4px;padding:0 4px 0 10px;display:flex}.FV0QMq_floatWindowDragging .FV0QMq_floatHeader{cursor:grabbing}.FV0QMq_floatTitle{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;overflow:hidden}.FV0QMq_floatClose{width:18px;height:18px;color:var(--dsw-alias-label-tertiary);cursor:pointer;background:0 0;border:none;border-radius:4px;flex:none;justify-content:center;align-items:center;padding:0;display:inline-flex}.FV0QMq_floatClose:hover{background:var(--dsw-alias-interactive-bg-hover);color:var(--dsw-alias-label-primary)}.FV0QMq_floatContent{flex-direction:column;flex:1;min-width:0;min-height:0;display:flex;overflow:hidden}.FV0QMq_floatResize{z-index:2;cursor:nwse-resize;touch-action:none;width:14px;height:14px;position:absolute;bottom:0;right:0}.FV0QMq_floatResize:hover{background:var(--dsw-alias-interactive-bg-hover-accent)}.FV0QMq_pane[data-dsh-float-dock-over]{outline:2px dashed var(--dsw-alias-interactive-bg-hover-accent);outline-offset:-2px}.FV0QMq_floatDropHint{z-index:46;pointer-events:none;border:2px dashed var(--dsw-alias-interactive-bg-hover-accent);background:color-mix(in srgb, var(--dsw-alias-interactive-bg-hover-accent) 12%, transparent);border-radius:8px;justify-content:center;align-items:center;display:flex;position:absolute}.FV0QMq_floatDropHintLabel{font:var(--dsw-font-xxs-12);color:var(--dsw-alias-label-primary);background:var(--dsw-alias-bg-layer-1);border:1px solid var(--dsw-alias-border-l2);border-radius:999px;padding:4px 12px}.FV0QMq_toggleCluster,.FV0QMq_toggleButton,.FV0QMq_manualButton,.FV0QMq_tabBar,.FV0QMq_floatHeader{-webkit-app-region:no-drag}body[data-dsh-title-bar-compat] .FV0QMq_toggleCluster{top:var(--dsh-native-sidebar-toggle-top,calc(var(--dsh-title-bar-strip,40px) + 3px))}body[data-dsh-title-bar-compat] .FV0QMq_panel{padding-top:var(--dsh-title-bar-strip,40px)}.FV0QMq_cornerHandle{left:-6px;bottom:calc(var(--dsh-sidebar-height,0px) + 6px);z-index:2;cursor:nwse-resize;touch-action:none;width:12px;height:12px;position:absolute}.FV0QMq_cornerHandle:hover,.FV0QMq_cornerHandle[data-dragging]{background:var(--dsw-alias-interactive-bg-hover-accent)}.FV0QMq_iconButton{width:28px;height:28px;color:var(--dsw-alias-label-secondary);cursor:pointer;background:0 0;border:none;border-radius:50%;flex:none;justify-content:center;align-items:center;padding:0;display:inline-flex}.FV0QMq_iconButton:hover:not(:disabled){background:var(--dsw-alias-interactive-bg-hover);color:var(--dsw-alias-label-primary)}.FV0QMq_iconButton:disabled{opacity:.4;cursor:default}.FV0QMq_workbench,.FV0QMq_split{flex:1;min-width:0;min-height:0;display:flex}.FV0QMq_splitRow{flex-direction:row}.FV0QMq_splitCol{flex-direction:column}.FV0QMq_splitChild{display:flex;position:relative;overflow:hidden}.FV0QMq_divider{z-index:3;touch-action:none;flex:none;position:relative}.FV0QMq_dividerRow:after,.FV0QMq_dividerCol:after{content:\"\";background:var(--dsw-alias-border-l2);transition:background var(--ds-transition-duration-slow) var(--ds-ease-in-out);position:absolute}.FV0QMq_dividerRow{cursor:col-resize;width:7px;margin:0 -2px}.FV0QMq_dividerRow:after{width:1px;top:0;bottom:0;left:50%;transform:translate(-50%)}.FV0QMq_dividerCol{cursor:row-resize;height:7px;margin:-2px 0}.FV0QMq_dividerCol:after{height:1px;top:50%;left:0;right:0;transform:translateY(-50%)}.FV0QMq_divider:hover:after,.FV0QMq_dividerActive:after{background:var(--dsw-alias-interactive-bg-hover-accent)}.FV0QMq_pane{background:var(--dsw-alias-bg-base);flex-direction:column;flex:1;min-width:0;min-height:0;display:flex;position:relative}.FV0QMq_paneDrop{outline:1px solid var(--dsw-alias-interactive-bg-hover-accent);outline-offset:-1px}.FV0QMq_dropOverlay{z-index:6;pointer-events:none;background:var(--dsw-alias-interactive-bg-hover-accent);opacity:.5;position:absolute}.FV0QMq_dropLeft{width:25%;top:0;bottom:0;left:0}.FV0QMq_dropRight{width:25%;top:0;bottom:0;right:0}.FV0QMq_dropUp{height:25%;top:0;left:0;right:0}.FV0QMq_dropDown{height:25%;bottom:0;left:0;right:0}.FV0QMq_dropCenter{outline:2px dashed var(--dsw-alias-interactive-bg-hover-accent);outline-offset:-2px;background:0 0;inset:25%}.FV0QMq_paneContent{flex-direction:column;flex:1;min-height:0;display:flex;overflow:hidden}.FV0QMq_paneTab{flex-direction:column;flex:1;min-height:0;display:flex}.FV0QMq_paneTabHidden{display:none}.FV0QMq_paneEmptyCards{flex:1;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));align-content:start;gap:8px;min-height:0;padding:12px;display:grid;overflow:hidden}.FV0QMq_paneCard{border:1px solid var(--dsw-alias-border-l1);background:var(--dsw-alias-bg-layer-1);min-width:0;color:var(--dsw-alias-label-secondary);font:var(--dsw-font-xxs-strong-12);cursor:pointer;text-align:center;border-radius:8px;flex-direction:column;justify-content:center;align-items:center;gap:6px;padding:12px 8px;display:flex}.FV0QMq_paneCard:hover:not(:disabled){background:var(--dsw-alias-interactive-bg-hover);color:var(--dsw-alias-label-primary);border-color:var(--dsw-alias-border-l2)}.FV0QMq_paneCard:disabled{opacity:.45;cursor:default}.FV0QMq_tabBar{border-bottom:1px solid var(--dsw-alias-border-l1);background:var(--dsw-alias-bg-layer-1);flex:none;align-items:stretch;height:34px;display:flex}.FV0QMq_tabBarDrop{outline:1px dashed var(--dsw-alias-interactive-bg-hover-accent);outline-offset:-1px}.FV0QMq_tabList{scrollbar-width:none;flex:1;min-width:0;display:flex;overflow-x:auto}.FV0QMq_tabList::-webkit-scrollbar{display:none}.FV0QMq_tab{min-width:64px;max-width:160px;font:var(--dsw-font-xxs-12);color:var(--dsw-alias-label-secondary);border-right:1px solid var(--dsw-alias-border-l1);cursor:pointer;user-select:none;background:0 0;flex:none;align-items:center;gap:4px;padding:0 4px 0 10px;display:flex}.FV0QMq_tab:hover{background:var(--dsw-alias-interactive-bg-hover)}.FV0QMq_tabActive{color:var(--dsw-alias-label-primary);background:var(--dsw-alias-interactive-bg-active)}.FV0QMq_tabTitle{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;overflow:hidden}.FV0QMq_tabBadge{min-width:16px;height:15px;font:var(--dsw-font-xxxs-strong-11);background:var(--dsw-alias-interactive-bg-hover);color:var(--dsw-alias-brand-primary);border-radius:8px;flex:none;justify-content:center;align-items:center;padding:0 4px;display:inline-flex}.FV0QMq_tabClose{width:18px;height:18px;color:var(--dsw-alias-label-tertiary);cursor:pointer;background:0 0;border:none;border-radius:4px;flex:none;justify-content:center;align-items:center;padding:0;display:inline-flex}.FV0QMq_tabClose:hover{background:var(--dsw-alias-interactive-bg-hover);color:var(--dsw-alias-label-primary)}.FV0QMq_tabBarPlus{background:var(--dsw-alias-bg-layer-1);width:22px;height:22px;color:var(--dsw-alias-label-tertiary);cursor:pointer;border:none;border-radius:5px;flex:none;justify-content:center;align-self:center;align-items:center;margin:0 6px;padding:0;display:inline-flex;position:sticky;right:0}.FV0QMq_tabBarPlus:hover{background:var(--dsw-alias-interactive-bg-hover);color:var(--dsw-alias-label-primary)}.FV0QMq_pinnedTab{color:var(--dsw-alias-label-tertiary);font-style:italic}.FV0QMq_pinnedTab:hover{color:var(--dsw-alias-label-secondary)}.FV0QMq_explorer{flex-direction:column;flex:1;min-height:0;display:flex}.FV0QMq_explorerHeader{flex:none;justify-content:space-between;align-items:center;gap:8px;height:36px;padding:0 8px 0 12px;display:flex}.FV0QMq_explorerRoot{font:var(--dsw-font-s-14);color:var(--dsw-alias-label-secondary);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.FV0QMq_explorerBody{flex:1;min-height:0;padding:4px 8px 8px;overflow:hidden auto}.FV0QMq_explorerRow{box-sizing:border-box;width:100%;max-width:100%;height:34px;font:var(--dsw-font-s-14);color:var(--dsw-alias-label-primary);text-align:left;cursor:pointer;white-space:nowrap;animation:FV0QMq_dsh-row-in .15s var(--ds-ease-in-out);background:0 0;border:none;border-radius:8px;align-items:center;gap:6px;padding:0 8px;display:flex}.FV0QMq_explorerRow:hover{background:var(--dsw-alias-interactive-bg-hover)}.FV0QMq_explorerRowRevealed{background:var(--dsw-alias-state-business-tertiary)}.FV0QMq_explorerRowRevealed+.FV0QMq_explorerRowRevealed{border-top-left-radius:0;border-top-right-radius:0}.FV0QMq_explorerRowRevealed:has(+.FV0QMq_explorerRowRevealed){border-bottom-right-radius:0;border-bottom-left-radius:0}.FV0QMq_explorerDir{font:var(--dsw-font-s-strong-14)}.FV0QMq_explorerHidden{opacity:.45}.FV0QMq_explorerSymlink{color:var(--dsw-alias-label-tertiary);flex:none}.FV0QMq_explorerBroken .FV0QMq_explorerName{color:var(--dsw-alias-state-error-primary)}.FV0QMq_explorerName{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.FV0QMq_explorerRef{border:1px solid var(--dsw-alias-border-l1);background:var(--dsw-alias-bg-layer-2);height:20px;color:var(--dsw-alias-label-tertiary);font:var(--dsw-font-xxxs-strong-11);cursor:pointer;border-radius:999px;flex:none;align-items:center;padding:0 8px;display:none}.FV0QMq_explorerRef:hover{background:var(--dsw-alias-interactive-bg-hover);color:var(--dsw-alias-label-primary)}.FV0QMq_explorerRow:hover .FV0QMq_explorerRef,.FV0QMq_explorerRow:focus-within .FV0QMq_explorerRef{display:inline-flex}.FV0QMq_explorerCopied{font:var(--dsw-font-xxxs-11);color:var(--dsw-alias-label-tertiary);flex:none}.FV0QMq_explorerError{font:var(--dsw-font-xxs-12);color:var(--dsw-alias-state-error-primary);cursor:default}@keyframes FV0QMq_dsh-row-in{0%{opacity:0}}.FV0QMq_explorerEmpty{font:var(--dsw-font-xxs-12);color:var(--dsw-alias-label-tertiary);text-align:center;padding:16px}.FV0QMq_explorerRowDropTarget{background:var(--dsw-alias-interactive-bg-hover);outline:1px dashed var(--dsw-alias-interactive-bg-hover-accent);outline-offset:-1px}.FV0QMq_uploadDropZone{z-index:1001;pointer-events:none;border:2px dashed var(--dsw-alias-interactive-bg-hover-accent);box-shadow:0 0 0 200vmax var(--dsw-alias-bg-mask-drop);animation:FV0QMq_dsh-row-in .15s var(--ds-ease-in-out);border-radius:10px;justify-content:center;align-items:flex-start;padding:12px;display:flex;position:fixed}.FV0QMq_uploadDropHero{flex-direction:column;align-items:center;gap:10px;max-width:100%;padding-top:8px;display:flex}.FV0QMq_uploadDropZonePill{border:1px solid var(--dsw-alias-border-l2);background:var(--dsw-alias-bg-layer-2);max-width:100%;box-shadow:var(--dsw-shadow-lv2);color:var(--dsw-alias-label-primary);font:var(--dsw-font-xxs-strong-12);border-radius:999px;align-items:center;gap:6px;padding:6px 12px;display:flex}.FV0QMq_uploadDropZoneText{white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.FV0QMq_uploadDropChatHint{z-index:1002;pointer-events:none;animation:FV0QMq_dsh-row-in .15s var(--ds-ease-in-out);justify-content:center;align-items:center;padding:24px;display:flex;position:fixed;top:0;bottom:0;left:0}.FV0QMq_uploadDropChatCard{text-align:center;max-width:100%;color:var(--dsw-alias-label-primary);font:var(--dsw-font-s-strong-14);flex-direction:column;align-items:center;gap:12px;display:flex}.FV0QMq_uploadOverlay{z-index:30;background:var(--dsw-alias-bg-mask-1);backdrop-filter:var(--dsw-mask-blur);animation:FV0QMq_dsh-row-in .15s var(--ds-ease-in-out);justify-content:center;align-items:center;display:flex;position:absolute;inset:0}.FV0QMq_uploadOverlayCard{border:1px solid var(--dsw-alias-border-inverted);background:var(--dsw-alias-bg-layer-2);min-width:280px;max-width:min(420px,100% - 48px);box-shadow:var(--dsw-shadow-lv3);border-radius:24px;flex-direction:column;gap:12px;padding:20px 24px;display:flex}.FV0QMq_uploadOverlayTitle{font:var(--dsw-font-s-strong-14);color:var(--dsw-alias-label-primary);align-items:center;gap:8px;display:flex}.FV0QMq_uploadOverlayTitle>svg{flex:none}.FV0QMq_uploadOverlayTitle>span{white-space:nowrap;text-overflow:ellipsis;min-width:0;overflow:hidden}.FV0QMq_uploadOverlayProgress{background:var(--dsw-alias-border-l2);border-radius:3px;height:6px;overflow:hidden}.FV0QMq_uploadOverlayProgressFill{background:var(--dsw-alias-interactive-bg-hover-accent);height:100%;transition:width .15s var(--ds-ease-in-out);border-radius:3px}.FV0QMq_uploadOverlayStatus{min-height:1em;font:var(--dsw-font-xxs-12);font-variant-numeric:tabular-nums;color:var(--dsw-alias-label-tertiary);white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.FV0QMq_uploadOverlayCancel{border:1px solid var(--dsw-alias-border-l2);height:28px;color:var(--dsw-alias-label-primary);font:var(--dsw-font-xxs-strong-12);cursor:pointer;background:0 0;border-radius:8px;align-self:flex-end;padding:0 14px}.FV0QMq_uploadOverlayCancel:hover:not(:disabled){background:var(--dsw-alias-interactive-bg-hover);border-color:var(--dsw-alias-border-l2)}.FV0QMq_uploadOverlayCancel:disabled{opacity:.4;cursor:default}.FV0QMq_editor{flex-direction:column;flex:1;min-height:0;display:flex}.FV0QMq_editorHeader{border-bottom:1px solid var(--dsw-alias-border-l1);flex:none;align-items:center;gap:6px;padding:6px 8px;display:flex}.FV0QMq_editorTitle{min-width:0;font:var(--dsw-font-xxs-strong-12);color:var(--dsw-alias-label-secondary);text-overflow:ellipsis;white-space:nowrap;flex:1;overflow:hidden}.FV0QMq_editorPathInput{box-sizing:border-box;border:1px solid var(--dsw-alias-border-l1);background:var(--dsw-alias-bg-layer-1);min-width:0;height:28px;color:var(--dsw-alias-label-primary);font:var(--dsw-font-xxs-12);border-radius:6px;flex:1;padding:0 10px}.FV0QMq_editorPathInput:focus{border-color:var(--dsw-alias-border-l2);outline:none}.FV0QMq_editorTreeToggleActive{color:var(--dsw-alias-label-primary);background:var(--dsw-alias-interactive-bg-active)}.FV0QMq_editorBody{flex:1;min-height:0;display:flex}.FV0QMq_editorMain{flex-direction:column;flex:1;min-width:0;min-height:0;display:flex}.FV0QMq_editorTreeDock{border-left:1px solid var(--dsw-alias-border-l1);flex:none;min-height:0;display:flex;position:relative}.FV0QMq_editorTreeResize{cursor:col-resize;touch-action:none;z-index:3;width:6px;position:absolute;top:0;bottom:0;left:0}.FV0QMq_editorTreeResize:hover{background:var(--dsw-alias-border-l2)}.FV0QMq_editorTreePanel{flex-direction:column;flex:1;min-width:0;min-height:0;display:flex;position:relative}.FV0QMq_editorTreePanelFull{flex:1}.FV0QMq_editorTreeSearch{border-bottom:1px solid var(--dsw-alias-border-l1);flex:none;align-items:center;gap:6px;padding:6px 8px;display:flex}.FV0QMq_editorSearchInput{border:1px solid var(--dsw-alias-border-l1);background:var(--dsw-alias-bg-layer-1);min-width:0;height:26px;color:var(--dsw-alias-label-primary);font:var(--dsw-font-xxs-12);border-radius:6px;flex:1;padding:0 10px}.FV0QMq_editorSearchInput:focus{border-color:var(--dsw-alias-border-l2);outline:none}.FV0QMq_editorSearchHint{font:var(--dsw-font-xxs-12);color:var(--dsw-alias-label-tertiary);padding:8px 12px}.FV0QMq_editorSearchResult{width:100%;color:var(--dsw-alias-label-primary);font:var(--dsw-font-xxs-12);text-align:left;cursor:pointer;text-overflow:ellipsis;white-space:nowrap;background:0 0;border:none;border-radius:6px;padding:4px 8px;display:block;overflow:hidden}.FV0QMq_editorSearchResult:hover{background:var(--dsw-alias-interactive-bg-hover)}.FV0QMq_editorStatus{font:var(--dsw-font-xxxs-11);color:var(--dsw-alias-label-tertiary)}.FV0QMq_editorStatusError{color:var(--dsw-alias-state-error-primary)}.FV0QMq_dirtyDot{background:var(--dsw-alias-state-warn-primary);border-radius:50%;flex:none;width:7px;height:7px}.FV0QMq_editorPlaceholder{font:var(--dsw-font-xxs-12);color:var(--dsw-alias-label-tertiary);text-align:center;flex:1;justify-content:center;align-items:center;padding:16px;display:flex}.FV0QMq_orphanedType{opacity:.7;overflow-wrap:anywhere;margin-top:8px;font-size:12px;display:block}.FV0QMq_editorBinary{text-align:center;flex-direction:column;flex:1;justify-content:center;align-items:center;gap:12px;padding:24px 16px;display:flex}.FV0QMq_editorBinaryNotice{font:var(--dsw-font-xxs-12);color:var(--dsw-alias-label-tertiary)}.FV0QMq_editorDownloadLink{border:1px solid var(--dsw-alias-border-l2);background:var(--dsw-alias-bg-layer-2);color:var(--dsw-alias-label-primary);font:var(--dsw-font-xxs-strong-12);cursor:pointer;transition:background var(--ds-transition-duration-slow) var(--ds-ease-in-out), border-color var(--ds-transition-duration-slow) var(--ds-ease-in-out);border-radius:6px;align-items:center;gap:6px;padding:6px 14px;text-decoration:none;display:inline-flex}.FV0QMq_editorDownloadLink:hover{background:var(--dsw-alias-interactive-bg-hover);border-color:var(--dsw-alias-border-l2)}.FV0QMq_editorError{font:var(--dsw-font-xxs-12);color:var(--dsw-alias-state-error-primary);padding:12px 16px}.FV0QMq_fenceError{font:var(--dsw-font-xxs-12);color:var(--dsw-alias-state-error-primary);flex-wrap:wrap;align-items:center;gap:8px;padding:8px 16px;display:flex}.FV0QMq_editorBanner{font:var(--dsw-font-xxxs-11);color:var(--dsw-alias-state-warn-label);background:var(--dsw-alias-state-warn-tertiary);flex:none;padding:4px 8px}.FV0QMq_sandboxStatus{font:var(--dsw-font-xxxs-11);flex:none;align-items:center;gap:8px;padding:4px 10px;display:flex}.FV0QMq_sandboxStatusOn{color:var(--dsw-alias-label-secondary);background:var(--dsw-alias-bg-layer-1);border-bottom:1px solid var(--dsw-alias-border-l1)}.FV0QMq_sandboxStatusOff{color:var(--dsw-alias-state-error-primary);background:color-mix(in srgb, var(--dsw-alias-state-error-primary) 10%, transparent);border-bottom:1px solid color-mix(in srgb, var(--dsw-alias-state-error-primary) 45%, transparent)}.FV0QMq_sandboxDot{background:var(--dsw-alias-state-success-primary);border-radius:50%;flex:none;width:6px;height:6px}.FV0QMq_sandboxStatusOff .FV0QMq_sandboxDot{background:var(--dsw-alias-state-error-primary)}.FV0QMq_sandboxStatusText{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;overflow:hidden}.FV0QMq_sandboxAction{border:1px solid var(--dsw-alias-border-l2);font:inherit;color:inherit;cursor:pointer;background:0 0;border-radius:6px;flex:none;padding:2px 8px}.FV0QMq_sandboxAction:hover{background:var(--dsw-alias-interactive-bg-hover)}.FV0QMq_editorHtml{background:var(--dsw-alias-bg-base);border:none;flex:1;width:100%;min-height:0}.FV0QMq_browser{flex-direction:column;flex:1;min-height:0;display:flex}.FV0QMq_browserBar{border-bottom:1px solid var(--dsw-alias-border-l1);flex:none;align-items:center;gap:4px;padding:6px 8px;display:flex}.FV0QMq_browserInput{border:1px solid var(--dsw-alias-border-l1);background:var(--dsw-alias-bg-layer-1);min-width:0;height:28px;color:var(--dsw-alias-label-primary);font:var(--dsw-font-xxs-12);border-radius:6px;flex:1;padding:0 10px}.FV0QMq_browserInput:focus{border-color:var(--dsw-alias-border-l2);outline:none}.FV0QMq_browserMessage{font:var(--dsw-font-xxxs-11);color:var(--dsw-alias-state-warn-label);background:var(--dsw-alias-state-warn-tertiary);flex:none;padding:4px 12px}.FV0QMq_browserFrame{background:var(--dsw-alias-bg-base);border:none;flex:1;width:100%;min-height:0}.FV0QMq_browserStart{text-align:center;min-height:0;font:var(--dsw-font-xs-13);color:var(--dsw-alias-label-tertiary);flex:1;justify-content:center;align-items:center;padding:20px;display:flex}.FV0QMq_browserBlocked{text-align:center;min-height:0;color:var(--dsw-alias-state-warn-primary);flex-direction:column;flex:1;justify-content:center;align-items:center;gap:6px;padding:24px;display:flex}.FV0QMq_browserBlockedTitle{font:var(--dsw-font-xxs-strong-12);color:var(--dsw-alias-label-primary)}.FV0QMq_browserBlockedDesc{max-width:280px;font:var(--dsw-font-xxxs-11);color:var(--dsw-alias-label-secondary)}.FV0QMq_browserBlockedActions{gap:8px;margin-top:6px;display:flex}.FV0QMq_browserBlockedButton{border:1px solid var(--dsw-alias-border-l2);background:var(--dsw-alias-bg-layer-1);color:var(--dsw-alias-label-primary);font:var(--dsw-font-xxxs-11);cursor:pointer;border-radius:6px;padding:4px 12px}.FV0QMq_browserBlockedButton:hover{background:var(--dsw-alias-interactive-bg-hover)}.FV0QMq_editorCm{background:0 0;flex:1;min-height:0;overflow:hidden}.FV0QMq_editorCmHidden{display:none}.FV0QMq_editorCm .cm-editor{height:100%}.FV0QMq_editorCm .cm-scroller{padding:12px 16px}.FV0QMq_editorCm .cm-editor.cm-focused{outline:none}.FV0QMq_editorModeToggle{border:1px solid var(--dsw-alias-border-l1);background:var(--dsw-alias-bg-layer-1);border-radius:6px;flex:none;align-items:center;gap:2px;padding:2px;display:inline-flex}.FV0QMq_editorModeButton{color:var(--dsw-alias-label-tertiary);font:var(--dsw-font-xxxs-11);cursor:pointer;background:0 0;border:none;border-radius:4px;padding:2px 8px}.FV0QMq_editorModeButton:hover{color:var(--dsw-alias-label-primary)}.FV0QMq_editorModeActive{background:var(--dsw-alias-bg-base);color:var(--dsw-alias-label-primary)}.FV0QMq_editorImageWrap{flex:1;justify-content:center;align-items:center;min-height:0;padding:12px;display:flex;overflow:auto}.FV0QMq_editorImage{object-fit:contain;max-width:100%;max-height:100%}.FV0QMq_editorMd{min-height:0;font:var(--dsw-font-xs-13);flex:1;padding:12px 16px;overflow-y:auto}.FV0QMq_mermaidWrap{border:1px solid var(--dsw-alias-border-l1);background:var(--dsw-alias-bg-layer-1);border-radius:6px;margin:6px 0;overflow:hidden}.FV0QMq_mermaidHeader{border-bottom:1px solid var(--dsw-alias-border-l1);background:var(--dsw-alias-bg-layer-2);justify-content:space-between;align-items:center;gap:6px;padding:4px 8px;display:flex}.FV0QMq_mermaidInfo{font:var(--dsw-font-xxxs-strong-11);color:var(--dsw-alias-label-tertiary)}.FV0QMq_mermaidCopy{height:20px;color:var(--dsw-alias-label-secondary);font:var(--dsw-font-xxxs-11);cursor:pointer;background:0 0;border:none;border-radius:4px;align-items:center;gap:4px;padding:0 6px;display:inline-flex}.FV0QMq_mermaidCopy:hover{background:var(--dsw-alias-interactive-bg-hover);color:var(--dsw-alias-label-primary)}.FV0QMq_mermaidBody{cursor:zoom-in;justify-content:center;padding:10px;display:flex;overflow:auto}.FV0QMq_mermaidBody svg{max-width:100%;height:auto}.FV0QMq_mermaidError{border-bottom:1px solid var(--dsw-alias-border-l1);color:var(--dsw-alias-state-error-primary);font:var(--dsw-font-xxxs-11);padding:6px 10px}.FV0QMq_mermaidCode{font:var(--dsw-font-xxxs-11);margin:0;padding:8px 10px;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;overflow:auto}.FV0QMq_mermaidMarkdown .md-code-block[data-mermaid-processed]{display:contents}.FV0QMq_mermaidModal{z-index:1000;background:var(--dsw-alias-bg-mask-1);backdrop-filter:blur(2px);flex-direction:column;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.FV0QMq_mermaidModalToolbar{z-index:10;gap:8px;display:flex;position:absolute;top:16px;right:16px}.FV0QMq_mermaidModalButton{border:1px solid var(--dsw-alias-border-l1);background:var(--dsw-alias-bg-layer-2);width:36px;height:36px;color:var(--dsw-alias-label-primary);font:var(--dsw-font-xs-strong-13);cursor:pointer;border-radius:8px;justify-content:center;align-items:center;display:inline-flex}.FV0QMq_mermaidModalButton:hover{background:var(--dsw-alias-interactive-bg-hover)}.FV0QMq_mermaidModalStage{justify-content:center;align-items:center;width:90vw;height:80vh;display:flex;position:relative;overflow:hidden}.FV0QMq_mermaidModalStage svg{cursor:grab;transform-origin:50%;user-select:none;-webkit-user-drag:none;background:var(--dsw-alias-bg-layer-1);border-radius:12px;max-width:none;max-height:none;padding:16px}.FV0QMq_mermaidModalStage svg:active{cursor:grabbing}.FV0QMq_mermaidModalHint{color:var(--dsw-alias-label-tertiary);font:var(--dsw-font-xxxs-11);pointer-events:none;position:absolute;bottom:16px;left:50%;transform:translate(-50%)}.FV0QMq_selectionPopup{z-index:60;border:1px solid var(--dsw-alias-border-l1);background:var(--dsw-alias-bg-layer-2);height:28px;color:var(--dsw-alias-label-primary);font:var(--dsw-font-xxxs-strong-11);white-space:nowrap;cursor:pointer;border-radius:6px;align-items:center;padding:0 10px;display:inline-flex;position:fixed;transform:translate(-50%,calc(-100% - 8px))}.FV0QMq_selectionPopup:hover{background:var(--dsw-alias-interactive-bg-hover)}.FV0QMq_editorPdf{background:var(--dsw-alias-bg-base);flex-direction:column;flex:1;min-height:0;display:flex}.FV0QMq_editorPdfToolbar{border-bottom:1px solid var(--dsw-alias-border-l1);flex:none;justify-content:flex-end;padding:6px 8px;display:flex}.FV0QMq_editorPdfStage{flex:1;min-height:0;display:flex;position:relative}.FV0QMq_editorPdfFrame{background:var(--dsw-alias-bg-base);border:none;flex:1;width:100%;min-height:0}.FV0QMq_editorPdfFrameBlocked{pointer-events:none}.FV0QMq_editorPdfDragShield{z-index:4;pointer-events:none;background:0 0;position:absolute;inset:0}.FV0QMq_editorPdfDragShieldActive{pointer-events:auto}body[data-dsh-tab-dragging] .FV0QMq_editorPdfFrame{pointer-events:none!important}body[data-dsh-tab-dragging] .FV0QMq_editorPdfDragShield{pointer-events:auto!important}.FV0QMq_terminalWrap{background:var(--dsw-alias-bg-base);flex-direction:column;flex:1;min-height:0;display:flex;position:relative}.FV0QMq_terminal{flex:1;min-height:0;padding:6px 4px 6px 8px}.FV0QMq_terminal .xterm{height:100%}.FV0QMq_terminalBanner{font:var(--dsw-font-xxxs-11);color:var(--dsw-alias-state-warn-label);background:var(--dsw-alias-state-warn-tertiary);flex-wrap:wrap;flex:none;align-items:center;gap:8px;padding:3px 10px;display:flex}.FV0QMq_terminalBannerUrl{word-break:break-all;opacity:.85;flex-basis:100%;font-family:ui-monospace,SFMono-Regular,Menlo,monospace}.FV0QMq_boundaryError{z-index:50;background:var(--dsw-alias-bg-layer-1);border-left:1px solid var(--dsw-alias-border-l2);font:var(--dsw-font-xxs-12);color:var(--dsw-alias-state-error-primary);flex-direction:column;align-items:flex-start;gap:8px;padding:16px;display:flex;position:fixed;top:0;bottom:0;right:0;overflow:auto}.FV0QMq_terminalRetry{border:1px solid var(--dsw-alias-border-l2);background:var(--dsw-alias-bg-layer-2);color:var(--dsw-alias-label-secondary);font:var(--dsw-font-xxxs-strong-11);cursor:pointer;border-radius:999px;flex:none;padding:1px 8px}.FV0QMq_terminalRetry:hover{background:var(--dsw-alias-interactive-bg-hover);color:var(--dsw-alias-label-primary)}.FV0QMq_terminalDepsBanner{font:var(--dsw-font-xxs-12);color:var(--dsw-alias-state-warn-label);background:var(--dsw-alias-state-warn-tertiary);flex-direction:column;flex:none;gap:6px;padding:10px;display:flex}.FV0QMq_terminalDepsTitle{font:var(--dsw-font-xxs-strong-12);color:var(--dsw-alias-state-warn-primary)}.FV0QMq_terminalDepsHint{opacity:.9}.FV0QMq_terminalDepsCommandRow{align-items:flex-start;gap:8px;display:flex}.FV0QMq_terminalRepairCommand{white-space:pre-wrap;word-break:break-all;user-select:text;min-width:0;color:var(--dsw-alias-label-primary);background:var(--dsw-alias-bg-layer-2);border:1px solid var(--dsw-alias-border-l2);border-radius:4px;flex:1;max-height:160px;margin:0;padding:6px 8px;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:11px;line-height:1.5;overflow:auto}.FV0QMq_terminalDepsNote{opacity:.85}.FV0QMq_terminalDepsActions{align-items:center;gap:8px;display:flex}.FV0QMq_tabBoundaryError{min-height:0;font:var(--dsw-font-xxs-12);color:var(--dsw-alias-state-error-primary);flex-direction:column;flex:1;align-items:flex-start;gap:8px;padding:12px 16px;display:flex;overflow:auto}.FV0QMq_git{flex-direction:column;flex:1;min-width:0;min-height:0;display:flex;overflow:hidden auto}.FV0QMq_gitHeader{flex:none;align-items:center;gap:8px;height:36px;padding:0 8px 0 12px;display:flex}.FV0QMq_gitWorktreeRow{flex:none;align-items:center;gap:8px;padding:6px 8px 0 12px;display:flex}.FV0QMq_gitWorktreeLabel{color:var(--dsw-alias-label-tertiary);font:var(--dsw-font-xxxs-11);flex:none}.FV0QMq_gitBranchSelect{border:1px solid var(--dsw-alias-border-l2);background:var(--dsw-alias-bg-base);min-width:0;height:26px;color:var(--dsw-alias-label-primary);font:var(--dsw-font-xxs-12);border-radius:6px;flex:1;padding:0 6px}.FV0QMq_gitSection{border-top:1px solid var(--dsw-alias-border-l1)}.FV0QMq_gitSectionHeader{font:var(--dsw-font-xxxs-strong-11);color:var(--dsw-alias-label-tertiary);text-transform:uppercase;justify-content:space-between;align-items:center;padding:6px 12px 4px;display:flex}.FV0QMq_gitLink{font:var(--dsw-font-xxxs-11);color:var(--dsw-alias-brand-primary);cursor:pointer;background:0 0;border:none;padding:0}.FV0QMq_gitLink:hover:not(:disabled){text-decoration:underline}.FV0QMq_gitLink:disabled{opacity:.4;cursor:default}.FV0QMq_gitRow{min-height:34px;animation:FV0QMq_dsh-row-in .15s var(--ds-ease-in-out);border-radius:8px;align-items:center;gap:6px;margin:0 6px;padding:0 8px;display:flex}.FV0QMq_gitRow:hover{background:var(--dsw-alias-interactive-bg-hover)}.FV0QMq_gitRowSelected{background:var(--dsw-alias-interactive-bg-active)}.FV0QMq_gitRowMain{cursor:pointer;text-align:left;background:0 0;border:none;flex:1;align-items:center;gap:8px;min-width:0;padding:3px 0;display:flex}.FV0QMq_gitBadge{width:20px;height:16px;font:var(--dsw-font-xxxs-strong-11);background:var(--dsw-alias-interactive-bg-hover);color:var(--dsw-alias-label-secondary);border-radius:4px;flex:none;justify-content:center;align-items:center;display:inline-flex}.FV0QMq_gitName{text-overflow:ellipsis;white-space:nowrap;min-width:0;font:var(--dsw-font-s-14);color:var(--dsw-alias-label-primary);flex:1;overflow:hidden}.FV0QMq_gitEmpty{font:var(--dsw-font-xxs-12);color:var(--dsw-alias-label-tertiary);padding:4px 12px 8px}.FV0QMq_gitPlaceholder{font:var(--dsw-font-xxs-12);color:var(--dsw-alias-label-tertiary);text-align:center;padding:16px}.FV0QMq_gitError{font:var(--dsw-font-xxs-12);color:var(--dsw-alias-state-error-primary);white-space:pre-wrap;padding:8px 12px}.FV0QMq_gitDiff{border-top:1px solid var(--dsw-alias-border-l1);padding:8px}.FV0QMq_gitDiffTab{flex-direction:column;flex:1;min-width:0;min-height:0;display:flex;overflow:hidden auto}.FV0QMq_gitDiffTabHeader{border-bottom:1px solid var(--dsw-alias-border-l1);flex:none;align-items:center;gap:8px;height:36px;padding:0 8px 0 12px;display:flex}.FV0QMq_gitDiffTabTitle{text-overflow:ellipsis;white-space:nowrap;min-width:0;font:var(--dsw-font-xxs-strong-12);color:var(--dsw-alias-label-primary);flex:1;overflow:hidden}.FV0QMq_gitDiffFile{width:100%;color:inherit;text-align:left;cursor:pointer;background:0 0;border:0;align-items:baseline;gap:6px;padding:8px 2px 2px;display:flex}.FV0QMq_gitDiffFile:disabled{cursor:default}.FV0QMq_gitDiffFile:hover:not(:disabled){background:var(--dsw-alias-interactive-bg-hover)}.FV0QMq_gitDiffFileChevron{color:var(--dsw-alias-label-tertiary);flex:none;transform:rotate(0)}.FV0QMq_gitDiffFileChevronExpanded{transform:rotate(90deg)}.FV0QMq_gitDiffFilePath{font:var(--dsw-font-xxs-strong-12);color:var(--dsw-alias-label-primary);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.FV0QMq_gitDiffFileOld{font:var(--dsw-font-xxxs-11);color:var(--dsw-alias-label-tertiary);text-overflow:ellipsis;white-space:nowrap;flex:none;max-width:40%;overflow:hidden}.FV0QMq_gitDiffFileTag{border:1px solid var(--dsw-alias-border-l2);font:var(--dsw-font-xxxs-strong-11);color:var(--dsw-alias-label-secondary);border-radius:999px;flex:none;padding:0 6px}.FV0QMq_gitDiffHunk{font:var(--dsw-font-markdown-code-block-small);color:var(--dsw-alias-label-tertiary);gap:8px;padding:3px 2px;display:flex}.FV0QMq_gitDiffHunkHeader{color:var(--dsw-alias-label-secondary);flex:none}.FV0QMq_gitDiffHunkSection{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.FV0QMq_gitDiffLine{font:var(--dsw-font-markdown-code-block-small);white-space:pre-wrap;overflow-wrap:anywhere;align-items:stretch;min-width:0;line-height:20px;display:flex}.FV0QMq_gitDiffNum{text-align:right;width:36px;color:var(--dsw-alias-label-tertiary);user-select:none;flex:none;padding-right:8px}.FV0QMq_gitDiffCode{flex:1;min-width:0;overflow:visible}.FV0QMq_gitDiffCtx{color:var(--dsw-alias-label-primary)}.FV0QMq_gitDiffDel{color:var(--dsw-alias-state-error-primary);background:color-mix(in srgb, var(--dsw-alias-state-error-primary) 12%, transparent)}.FV0QMq_gitDiffAdd{color:var(--dsw-alias-state-success-primary);background:color-mix(in srgb, var(--dsw-alias-state-success-primary) 12%, transparent)}.FV0QMq_gitDiffMeta{padding-left:2px}.FV0QMq_gitDiffMetaText{font:var(--dsw-font-xxxs-11);color:var(--dsw-alias-label-tertiary);font-style:italic}.FV0QMq_gitDiffExpand{width:100%;font:var(--dsw-font-xxs-12);color:var(--dsw-alias-brand-primary);cursor:pointer;text-align:center;background:0 0;border:none;margin:4px 0;display:block}.FV0QMq_gitDiffExpand:hover{background:var(--dsw-alias-interactive-bg-hover)}.FV0QMq_gitConfirmDesc{font:var(--dsw-font-s-14);color:var(--dsw-alias-label-primary);white-space:pre-wrap;margin:0}.FV0QMq_gitCommit{border-top:1px solid var(--dsw-alias-border-l1);align-items:center;gap:6px;padding:8px 12px;display:flex}.FV0QMq_gitCommitInput{flex:1;min-width:0}.FV0QMq_gitCommitButton{background:var(--dsw-alias-button-primary-fill);height:26px;color:var(--dsw-alias-label-primary-inverted);font:var(--dsw-font-xxs-strong-12);cursor:pointer;border:none;border-radius:6px;flex:none;padding:0 12px}.FV0QMq_gitCommitButton:hover:not(:disabled){background:var(--dsw-alias-button-primary-hover)}.FV0QMq_gitCommitButton:disabled{opacity:.45;cursor:default}.FV0QMq_gitLogRow{cursor:pointer;border-radius:8px;flex-direction:column;gap:2px;padding:5px 12px;display:flex}.FV0QMq_gitLogRow:hover{background:var(--dsw-alias-interactive-bg-hover)}.FV0QMq_gitLogLine1{align-items:baseline;gap:8px;min-width:0;display:flex}.FV0QMq_gitLogHash{font:var(--dsw-font-markdown-code-block-small);color:var(--dsw-alias-label-tertiary);flex:none}.FV0QMq_gitLogLine2{flex-wrap:wrap;align-items:center;gap:6px;min-width:0;display:flex}.FV0QMq_gitLogRef{border:1px solid var(--dsw-alias-border-l2);font:var(--dsw-font-xxxs-strong-11);color:var(--dsw-alias-brand-primary);white-space:nowrap;border-radius:999px;flex:none;padding:0 5px}.FV0QMq_gitLogSubject{text-overflow:ellipsis;white-space:nowrap;min-width:0;font:var(--dsw-font-s-14);color:var(--dsw-alias-label-primary);flex:1;overflow:hidden}.FV0QMq_gitLogMeta{font:var(--dsw-font-xxxs-11);color:var(--dsw-alias-label-tertiary)}.FV0QMq_gitLogMore{border:1px solid var(--dsw-alias-border-l2);width:calc(100% - 24px);font:var(--dsw-font-xxs-12);color:var(--dsw-alias-label-secondary);cursor:pointer;background:0 0;border-radius:6px;margin:4px 12px 8px;padding:6px 0;display:block}.FV0QMq_gitLogMore:hover:not(:disabled){background:var(--dsw-alias-interactive-bg-hover);color:var(--dsw-alias-label-primary)}.FV0QMq_gitLogMore:disabled{opacity:.5;cursor:default}.FV0QMq_producedRow{flex-wrap:wrap;align-items:center;gap:8px;padding:4px 0;display:flex}.FV0QMq_producedLabel{font:var(--dsw-font-xxs-12);color:var(--dsw-alias-label-tertiary)}.FV0QMq_producedChip{border:1px solid var(--dsw-alias-border-l2);background:var(--dsw-alias-bg-layer-2);max-width:200px;color:var(--dsw-alias-label-secondary);font:var(--dsw-font-xxs-12);cursor:pointer;border-radius:999px;align-items:center;gap:4px;padding:2px 8px;display:inline-flex;overflow:hidden}.FV0QMq_producedChip:hover{background:var(--dsw-alias-interactive-bg-hover);color:var(--dsw-alias-label-primary)}.FV0QMq_producedChip span{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.FV0QMq_producedMore{font:var(--dsw-font-xxs-12);color:var(--dsw-alias-label-tertiary)}.FV0QMq_toggleButton:focus-visible,.FV0QMq_manualButton:focus-visible,.FV0QMq_bottomClose:focus-visible,.FV0QMq_iconButton:focus-visible,.FV0QMq_tab:focus-visible,.FV0QMq_tabClose:focus-visible,.FV0QMq_tabBarPlus:focus-visible,.FV0QMq_paneCard:focus-visible,.FV0QMq_explorerRow:focus-visible,.FV0QMq_explorerRef:focus-visible,.FV0QMq_gitRowMain:focus-visible,.FV0QMq_gitLink:focus-visible,.FV0QMq_gitCommitButton:focus-visible,.FV0QMq_gitLogRow:focus-visible,.FV0QMq_gitLogMore:focus-visible,.FV0QMq_gitDiffFile:focus-visible,.FV0QMq_gitDiffExpand:focus-visible,.FV0QMq_terminalRetry:focus-visible,.FV0QMq_editorModeButton:focus-visible,.FV0QMq_editorDownloadLink:focus-visible,.FV0QMq_editorPptxButton:focus-visible,.FV0QMq_editorDocxZoomRange:focus-visible{outline:2px solid var(--dsw-alias-interactive-bg-hover-accent);outline-offset:-1px}@media (prefers-reduced-motion:reduce){.FV0QMq_panel,.FV0QMq_panelHidden,.FV0QMq_bottomPanel,.FV0QMq_bottomPanelHidden,.FV0QMq_toggleCluster,.FV0QMq_toggleButton,.FV0QMq_tab,.FV0QMq_tabBarPlus,.FV0QMq_paneCard,.FV0QMq_explorerRow,.FV0QMq_gitRow,.FV0QMq_divider,.FV0QMq_dividerRow:after,.FV0QMq_dividerCol:after{transition:none;animation:none}}@media (width<=767px){.FV0QMq_panel:not(.FV0QMq_panelHidden) .FV0QMq_tabBar{padding-right:148px}.FV0QMq_tab{min-width:48px;max-width:128px}}.FV0QMq_openWithLabel{align-items:center;gap:8px;width:100%;min-width:0;display:flex}.FV0QMq_openWithName{text-overflow:ellipsis;white-space:nowrap;flex:auto;min-width:0;overflow:hidden}.FV0QMq_openWithChevron{color:var(--dsw-alias-label-tertiary);flex:none}.FV0QMq_openWithPin{width:20px;height:20px;color:var(--dsw-alias-label-tertiary);cursor:pointer;border-radius:6px;flex:none;justify-content:center;align-items:center;display:inline-flex}.FV0QMq_openWithPin:hover{background:var(--dsw-alias-interactive-bg-hover);color:var(--dsw-alias-label-primary)}.FV0QMq_openWithPinActive{color:var(--dsw-alias-state-business-primary)}.FV0QMq_editorHtmlBlock{margin:8px 0}.FV0QMq_editorHtmlBlock img,.FV0QMq_editorHtmlBlock video{max-width:100%}.FV0QMq_editorHtmlBlock details{margin:4px 0;padding:4px 0}.FV0QMq_editorHtmlBlock summary{cursor:pointer}.FV0QMq_tocBar{z-index:3;pointer-events:none;justify-content:flex-end;height:0;display:flex;position:sticky;top:0}.FV0QMq_tocButton{pointer-events:auto;border:1px solid var(--dsw-alias-border-l1);background:var(--dsw-alias-bg-layer-1);width:26px;height:26px;color:var(--dsw-alias-label-secondary);cursor:pointer;border-radius:6px;justify-content:center;align-items:center;margin:4px 2px 0 0;padding:0;display:inline-flex}.FV0QMq_tocButton:hover{background:var(--dsw-alias-interactive-bg-hover);color:var(--dsw-alias-label-primary)}.FV0QMq_tocPanel{border:1px solid var(--dsw-alias-border-l1);background:var(--dsw-alias-bg-layer-2);width:min(300px,82%);max-height:60vh;box-shadow:var(--dsw-shadow-lv2);pointer-events:auto;border-radius:8px;flex-direction:column;padding:4px;display:flex;position:absolute;top:32px;right:2px;overflow-y:auto}.FV0QMq_tocItem{min-width:0;color:var(--dsw-alias-label-secondary);font:var(--dsw-font-xxs-12);text-align:left;cursor:pointer;background:0 0;border:none;border-radius:6px;align-items:baseline;gap:8px;padding:4px 8px;display:flex}.FV0QMq_tocItem:hover{background:var(--dsw-alias-interactive-bg-hover);color:var(--dsw-alias-label-primary)}.FV0QMq_tocItem[data-level=\"2\"]{padding-left:18px}.FV0QMq_tocItem[data-level=\"3\"]{padding-left:28px}.FV0QMq_tocItem[data-level=\"4\"]{padding-left:38px}.FV0QMq_tocItem[data-level=\"5\"]{padding-left:48px}.FV0QMq_tocItem[data-level=\"6\"]{padding-left:58px}.FV0QMq_tocItemLevel{font:var(--dsw-font-xxxs-11);color:var(--dsw-alias-label-tertiary);flex:none}.FV0QMq_tocItemText{text-overflow:ellipsis;white-space:nowrap;flex:auto;min-width:0;overflow:hidden}@keyframes FV0QMq_dsh-toc-flash{0%,60%{background:var(--dsw-alias-interactive-bg-hover)}to{background:0 0}}.FV0QMq_tocFlash{border-radius:4px;animation:1.2s ease-out FV0QMq_dsh-toc-flash}.FV0QMq_chatcodeGate{z-index:2147483000;isolation:isolate;background-color:var(--dsw-alias-tooltip-bg);background-image:linear-gradient(135deg, var(--dsw-alias-tooltip-bg) 0%, var(--dsw-alias-brand-primary) 48%, var(--dsw-alias-tooltip-bg) 100%);color:var(--dsw-alias-fg-base);pointer-events:auto;place-items:center;padding:24px;display:grid;position:fixed;inset:0;overflow:hidden}.FV0QMq_chatcodeGateCard{box-sizing:border-box;border:1px solid var(--dsw-alias-border-l2);background:linear-gradient(145deg, var(--dsw-alias-bg-layer-2), var(--dsw-alias-bg-layer-1));width:min(460px,100%);box-shadow:var(--dsw-shadow-lv3);text-align:center;border-radius:20px;padding:40px 36px;position:relative}.FV0QMq_chatcodeGateContent{position:relative}.FV0QMq_chatcodeGateCard h1{font:var(--dsw-font-heading-lg);letter-spacing:-.02em;margin:0 0 12px;font-size:clamp(32px,5vw,46px);line-height:1.1}.FV0QMq_chatcodeGateCard p{max-width:29em;color:var(--dsw-alias-label-secondary);font:var(--dsw-font-s-14);margin:0 auto;line-height:1.7}.FV0QMq_chatcodeGateError{border:1px solid color-mix(in srgb, var(--dsw-alias-fg-error) 36%, var(--dsw-alias-border-l2));background:color-mix(in srgb, var(--dsw-alias-fg-error) 8%, transparent);border-radius:10px;padding:9px 11px;position:relative;color:var(--dsw-alias-fg-error)!important;font:var(--dsw-font-xxs-12)!important;margin-top:16px!important;line-height:1.5!important}.FV0QMq_chatcodeGateActions{justify-content:center;gap:10px;margin:28px 0 14px;display:flex;position:relative}.FV0QMq_chatcodeGateActions button,.FV0QMq_chatcodeGateCard a{border:1px solid var(--dsw-alias-border-l2);background:var(--dsw-alias-bg-layer-2);min-height:42px;color:var(--dsw-alias-fg-base);font:var(--dsw-font-xxs-strong-12);cursor:pointer;transition:transform var(--ds-transition-duration-slow) var(--ds-ease-in-out), background var(--ds-transition-duration-slow) var(--ds-ease-in-out), border-color var(--ds-transition-duration-slow) var(--ds-ease-in-out);border-radius:10px;padding:9px 17px}.FV0QMq_chatcodeGateActions button:first-child{border-color:var(--dsw-alias-state-error-primary);background:var(--dsw-alias-state-error-primary);min-width:152px;min-height:46px;color:var(--dsw-alias-label-primary-inverted)}.FV0QMq_chatcodeGateActions button:first-child:hover:not(:disabled){box-shadow:var(--dsw-shadow-lv2);transform:translateY(-2px);border-color:var(--dsw-alias-state-error-primary)!important;background:var(--dsw-alias-state-error-primary)!important;color:var(--dsw-alias-label-primary-inverted)!important}.FV0QMq_chatcodeGateActions button:not(:first-child):hover:not(:disabled),.FV0QMq_chatcodeGateCard a:hover{border-color:var(--dsw-alias-button-primary-hover);background:var(--dsw-alias-button-primary-hover);color:var(--dsw-alias-label-primary-inverted);transform:translateY(-1px)}.FV0QMq_chatcodeGateActions button:disabled{cursor:default;opacity:.55}.FV0QMq_chatcodeGateCard a{align-items:center;text-decoration:none;display:inline-flex;position:relative}.FV0QMq_chatcodeGateActions button:focus-visible,.FV0QMq_chatcodeGateCard a:focus-visible{outline:2px solid var(--dsw-alias-border-accent);outline-offset:3px}@media (width<=480px){.FV0QMq_chatcodeGate{padding:16px}.FV0QMq_chatcodeGateCard{padding:32px 24px}.FV0QMq_chatcodeGateActions{flex-direction:column;align-items:stretch}.FV0QMq_chatcodeGateActions button,.FV0QMq_chatcodeGateCard a{justify-content:center}}";
12156
+ const tagId$6 = "@chatcode/cco-better-sidebar/sidebar.module.css";
12157
+ if (typeof document !== "undefined" && document.querySelector("style[data-plugin-css=" + JSON.stringify(tagId$6) + "]") === null) {
12095
12158
  const tag = document.createElement("style");
12096
12159
  tag.dataset.plugin = "@chatcode/cco-better-sidebar";
12097
- tag.dataset.pluginCss = tagId$5;
12098
- tag.textContent = css$5;
12160
+ tag.dataset.pluginCss = tagId$6;
12161
+ tag.textContent = css$6;
12099
12162
  document.head.appendChild(tag);
12100
12163
  }
12101
12164
  var sidebar_module_css_default = {
12102
- "pane": "FV0QMq_pane",
12103
- "pinnedTab": "FV0QMq_pinnedTab",
12104
- "uploadOverlayProgressFill": "FV0QMq_uploadOverlayProgressFill",
12105
- "editorSearchInput": "FV0QMq_editorSearchInput",
12106
- "gitSection": "FV0QMq_gitSection",
12107
- "pinnedSessionTitle": "FV0QMq_pinnedSessionTitle",
12108
- "explorerRowDropTarget": "FV0QMq_explorerRowDropTarget",
12109
- "editorPdf": "FV0QMq_editorPdf",
12110
- "editorError": "FV0QMq_editorError",
12111
- "gitDiffTabTitle": "FV0QMq_gitDiffTabTitle",
12112
- "gitDiffFileTag": "FV0QMq_gitDiffFileTag",
12113
- "floatWindow": "FV0QMq_floatWindow",
12114
- "gitDiffTab": "FV0QMq_gitDiffTab",
12115
- "bottomPanelHidden": "FV0QMq_bottomPanelHidden",
12165
+ "paneDrop": "FV0QMq_paneDrop",
12166
+ "gitLogMore": "FV0QMq_gitLogMore",
12167
+ "sandboxDot": "FV0QMq_sandboxDot",
12168
+ "releaseNotesIconButton": "FV0QMq_releaseNotesIconButton",
12169
+ "browserMessage": "FV0QMq_browserMessage",
12170
+ "gitLogLine1": "FV0QMq_gitLogLine1",
12171
+ "floatHeader": "FV0QMq_floatHeader",
12172
+ "mermaidMarkdown": "FV0QMq_mermaidMarkdown",
12173
+ "editorMain": "FV0QMq_editorMain",
12174
+ "boundaryError": "FV0QMq_boundaryError",
12175
+ "editorPdfToolbar": "FV0QMq_editorPdfToolbar",
12176
+ "producedChip": "FV0QMq_producedChip",
12177
+ "dropUp": "FV0QMq_dropUp",
12178
+ "toggleCluster": "FV0QMq_toggleCluster",
12179
+ "floatClose": "FV0QMq_floatClose",
12180
+ "workbench": "FV0QMq_workbench",
12181
+ "editorTreeResize": "FV0QMq_editorTreeResize",
12182
+ "browserBlockedTitle": "FV0QMq_browserBlockedTitle",
12116
12183
  "releaseNotesHeader": "FV0QMq_releaseNotesHeader",
12117
- "gitWorktreeRow": "FV0QMq_gitWorktreeRow",
12118
- "terminalWrap": "FV0QMq_terminalWrap",
12119
- "editorSearchHint": "FV0QMq_editorSearchHint",
12120
- "updateSettingsTitle": "FV0QMq_updateSettingsTitle",
12121
- "splitCol": "FV0QMq_splitCol",
12122
- "terminalDepsCommandRow": "FV0QMq_terminalDepsCommandRow",
12123
- "sandboxAction": "FV0QMq_sandboxAction",
12184
+ "updateList": "FV0QMq_updateList",
12185
+ "uploadDropZoneText": "FV0QMq_uploadDropZoneText",
12186
+ "uploadOverlayCard": "FV0QMq_uploadOverlayCard",
12187
+ "editorMd": "FV0QMq_editorMd",
12188
+ "browserInput": "FV0QMq_browserInput",
12189
+ "mermaidModalHint": "FV0QMq_mermaidModalHint",
12190
+ "gitRowMain": "FV0QMq_gitRowMain",
12191
+ "gitDiffMeta": "FV0QMq_gitDiffMeta",
12192
+ "paneContent": "FV0QMq_paneContent",
12193
+ "updateSettingsBlock": "FV0QMq_updateSettingsBlock",
12194
+ "editorBinary": "FV0QMq_editorBinary",
12195
+ "paneTab": "FV0QMq_paneTab",
12196
+ "terminal": "FV0QMq_terminal",
12197
+ "openWithPin": "FV0QMq_openWithPin",
12124
12198
  "gitDiffExpand": "FV0QMq_gitDiffExpand",
12125
- "tabTitle": "FV0QMq_tabTitle",
12126
- "terminalDepsNote": "FV0QMq_terminalDepsNote",
12127
- "mermaidError": "FV0QMq_mermaidError",
12128
- "explorerBroken": "FV0QMq_explorerBroken",
12129
- "dropOverlay": "FV0QMq_dropOverlay",
12130
- "mermaidWrap": "FV0QMq_mermaidWrap",
12131
- "gitHeader": "FV0QMq_gitHeader",
12132
- "releaseNotesContent": "FV0QMq_releaseNotesContent",
12133
- "gitDiffHunkHeader": "FV0QMq_gitDiffHunkHeader",
12199
+ "fenceError": "FV0QMq_fenceError",
12200
+ "uploadDropZonePill": "FV0QMq_uploadDropZonePill",
12201
+ "terminalRepairCommand": "FV0QMq_terminalRepairCommand",
12202
+ "dirtyDot": "FV0QMq_dirtyDot",
12203
+ "gitDiffTab": "FV0QMq_gitDiffTab",
12204
+ "sandboxStatusOn": "FV0QMq_sandboxStatusOn",
12134
12205
  "updateCommand": "FV0QMq_updateCommand",
12135
- "sandboxStatusText": "FV0QMq_sandboxStatusText",
12136
- "uploadOverlayCancel": "FV0QMq_uploadOverlayCancel",
12137
- "editorTreeSearch": "FV0QMq_editorTreeSearch",
12138
- "mermaidCode": "FV0QMq_mermaidCode",
12139
- "pinnedSessionOpen": "FV0QMq_pinnedSessionOpen",
12140
- "gitLogMore": "FV0QMq_gitLogMore",
12141
- "editorCm": "FV0QMq_editorCm",
12142
- "editorModeToggle": "FV0QMq_editorModeToggle",
12143
- "explorerRowRevealed": "FV0QMq_explorerRowRevealed",
12144
- "orphanedType": "FV0QMq_orphanedType",
12145
- "editor": "FV0QMq_editor",
12146
- "git": "FV0QMq_git",
12147
- "pinnedSessionMore": "FV0QMq_pinnedSessionMore",
12148
- "updateSettingsRow": "FV0QMq_updateSettingsRow",
12149
- "uploadDropHero": "FV0QMq_uploadDropHero",
12150
12206
  "gitRowSelected": "FV0QMq_gitRowSelected",
12151
- "editorImage": "FV0QMq_editorImage",
12152
- "terminalDepsActions": "FV0QMq_terminalDepsActions",
12153
- "sandboxStatusOn": "FV0QMq_sandboxStatusOn",
12154
- "pinnedSessionRow": "FV0QMq_pinnedSessionRow",
12155
- "editorPlaceholder": "FV0QMq_editorPlaceholder",
12156
- "dividerCol": "FV0QMq_dividerCol",
12157
- "paneTabHidden": "FV0QMq_paneTabHidden",
12158
- "mermaidModalToolbar": "FV0QMq_mermaidModalToolbar",
12159
- "tabBarDrop": "FV0QMq_tabBarDrop",
12160
- "editorMd": "FV0QMq_editorMd",
12161
- "tabBarPlus": "FV0QMq_tabBarPlus",
12162
- "editorBinaryNotice": "FV0QMq_editorBinaryNotice",
12163
- "dividerRow": "FV0QMq_dividerRow",
12164
- "gitDiffHunkSection": "FV0QMq_gitDiffHunkSection",
12165
- "editorHtml": "FV0QMq_editorHtml",
12166
- "gitRowMain": "FV0QMq_gitRowMain",
12167
- "splitRow": "FV0QMq_splitRow",
12207
+ "toggleButton": "FV0QMq_toggleButton",
12208
+ "gitDiffFile": "FV0QMq_gitDiffFile",
12209
+ "gitLogSubject": "FV0QMq_gitLogSubject",
12210
+ "accountAvatar": "FV0QMq_accountAvatar",
12211
+ "gitLogHash": "FV0QMq_gitLogHash",
12168
12212
  "editorStatusError": "FV0QMq_editorStatusError",
12169
- "uploadOverlayStatus": "FV0QMq_uploadOverlayStatus",
12170
- "updateFooter": "FV0QMq_updateFooter",
12171
- "releaseNotesDialog": "FV0QMq_releaseNotesDialog",
12172
- "accountPresence": "FV0QMq_accountPresence",
12173
- "splitChild": "FV0QMq_splitChild",
12174
- "dropDown": "FV0QMq_dropDown",
12175
- "tabBadge": "FV0QMq_tabBadge",
12176
- "mermaidBody": "FV0QMq_mermaidBody",
12177
- "gitBranchSelect": "FV0QMq_gitBranchSelect",
12178
- "chatcodeGateContent": "FV0QMq_chatcodeGateContent",
12179
- "toggleCluster": "FV0QMq_toggleCluster",
12180
- "uploadDropZoneText": "FV0QMq_uploadDropZoneText",
12181
- "dropLeft": "FV0QMq_dropLeft",
12182
- "editorPathInput": "FV0QMq_editorPathInput",
12183
- "gitRow": "FV0QMq_gitRow",
12184
- "gitBadge": "FV0QMq_gitBadge",
12185
- "dropUp": "FV0QMq_dropUp",
12186
- "gitConfirmDesc": "FV0QMq_gitConfirmDesc",
12187
- "gitLink": "FV0QMq_gitLink",
12188
- "updateOk": "FV0QMq_updateOk",
12189
- "fenceError": "FV0QMq_fenceError",
12190
- "gitDiffCtx": "FV0QMq_gitDiffCtx",
12191
- "openWithLabel": "FV0QMq_openWithLabel",
12192
- "boundaryError": "FV0QMq_boundaryError",
12193
- "accountName": "FV0QMq_accountName",
12194
- "manualButton": "FV0QMq_manualButton",
12195
- "terminalDepsTitle": "FV0QMq_terminalDepsTitle",
12196
- "editorDocxZoomRange": "FV0QMq_editorDocxZoomRange",
12197
- "tocBar": "FV0QMq_tocBar",
12198
- "gitDiffTabHeader": "FV0QMq_gitDiffTabHeader",
12199
- "editorDownloadLink": "FV0QMq_editorDownloadLink",
12200
- "editorPptxButton": "FV0QMq_editorPptxButton",
12201
- "sandboxStatus": "FV0QMq_sandboxStatus",
12213
+ "pinnedSessionDot": "FV0QMq_pinnedSessionDot",
12214
+ "producedRow": "FV0QMq_producedRow",
12215
+ "editorPlaceholder": "FV0QMq_editorPlaceholder",
12202
12216
  "explorerSymlink": "FV0QMq_explorerSymlink",
12203
- "selectionPopup": "FV0QMq_selectionPopup",
12204
- "editorBanner": "FV0QMq_editorBanner",
12205
- "terminal": "FV0QMq_terminal",
12206
- "explorerDir": "FV0QMq_explorerDir",
12207
- "paneCard": "FV0QMq_paneCard",
12208
- "updateSettingsBlock": "FV0QMq_updateSettingsBlock",
12209
- "browserStart": "FV0QMq_browserStart",
12210
- "gitDiffHunk": "FV0QMq_gitDiffHunk",
12211
- "explorerEmpty": "FV0QMq_explorerEmpty",
12212
- "accountMenuDivider": "FV0QMq_accountMenuDivider",
12213
- "gitDiffMeta": "FV0QMq_gitDiffMeta",
12214
- "bottomClose": "FV0QMq_bottomClose",
12215
- "updateBody": "FV0QMq_updateBody",
12216
- "tabClose": "FV0QMq_tabClose",
12217
- "editorTreePanelFull": "FV0QMq_editorTreePanelFull",
12218
- "browserBlocked": "FV0QMq_browserBlocked",
12219
- "editorTreeResize": "FV0QMq_editorTreeResize",
12220
- "editorModeButton": "FV0QMq_editorModeButton",
12221
- "mermaidCopy": "FV0QMq_mermaidCopy",
12222
- "gitSectionHeader": "FV0QMq_gitSectionHeader",
12223
- "gitCommit": "FV0QMq_gitCommit",
12224
- "tocItemLevel": "FV0QMq_tocItemLevel",
12225
- "floatDropHint": "FV0QMq_floatDropHint",
12226
12217
  "browserBlockedButton": "FV0QMq_browserBlockedButton",
12227
- "editorPdfFrameBlocked": "FV0QMq_editorPdfFrameBlocked",
12228
- "openWithPinActive": "FV0QMq_openWithPinActive",
12229
- "pinnedSessionsList": "FV0QMq_pinnedSessionsList",
12230
- "pinnedSessionDot": "FV0QMq_pinnedSessionDot",
12231
- "floatDropHintLabel": "FV0QMq_floatDropHintLabel",
12232
- "editorPdfToolbar": "FV0QMq_editorPdfToolbar",
12233
- "terminalDepsBanner": "FV0QMq_terminalDepsBanner",
12234
- "explorerRow": "FV0QMq_explorerRow",
12235
- "editorCmHidden": "FV0QMq_editorCmHidden",
12236
- "mermaidInfo": "FV0QMq_mermaidInfo",
12237
- "gitDiffMetaText": "FV0QMq_gitDiffMetaText",
12238
- "gitCommitButton": "FV0QMq_gitCommitButton",
12239
- "sandboxStatusOff": "FV0QMq_sandboxStatusOff",
12218
+ "editorHtmlBlock": "FV0QMq_editorHtmlBlock",
12219
+ "gitWorktreeLabel": "FV0QMq_gitWorktreeLabel",
12240
12220
  "editorModeActive": "FV0QMq_editorModeActive",
12241
- "accountAvatar": "FV0QMq_accountAvatar",
12242
- "paneTab": "FV0QMq_paneTab",
12243
- "floatContent": "FV0QMq_floatContent",
12244
- "browserMessage": "FV0QMq_browserMessage",
12245
- "iconButton": "FV0QMq_iconButton",
12246
- "panelResize": "FV0QMq_panelResize",
12247
- "tocFlash": "FV0QMq_tocFlash",
12248
- "explorerError": "FV0QMq_explorerError",
12249
- "pinnedSessionMenu": "FV0QMq_pinnedSessionMenu",
12250
- "tocItem": "FV0QMq_tocItem",
12251
- "tab": "FV0QMq_tab",
12252
- "explorer": "FV0QMq_explorer",
12253
- "panelHidden": "FV0QMq_panelHidden",
12254
- "panelBody": "FV0QMq_panelBody",
12255
- "gitDiff": "FV0QMq_gitDiff",
12256
- "editorMain": "FV0QMq_editorMain",
12257
- "explorerBody": "FV0QMq_explorerBody",
12258
- "updateSettingsDesc": "FV0QMq_updateSettingsDesc",
12259
- "gitDiffLine": "FV0QMq_gitDiffLine",
12260
- "uploadDropChatHint": "FV0QMq_uploadDropChatHint",
12261
- "openWithName": "FV0QMq_openWithName",
12262
- "openWithChevron": "FV0QMq_openWithChevron",
12263
- "gitLogLine2": "FV0QMq_gitLogLine2",
12264
- "floatTitle": "FV0QMq_floatTitle",
12265
- "mermaidModalStage": "FV0QMq_mermaidModalStage",
12266
- "editorPdfDragShieldActive": "FV0QMq_editorPdfDragShieldActive",
12221
+ "editorDocxZoomRange": "FV0QMq_editorDocxZoomRange",
12222
+ "uploadOverlayCancel": "FV0QMq_uploadOverlayCancel",
12267
12223
  "accountItem": "FV0QMq_accountItem",
12268
- "explorerName": "FV0QMq_explorerName",
12269
- "editorHeader": "FV0QMq_editorHeader",
12270
- "sandboxDot": "FV0QMq_sandboxDot",
12271
- "browserBlockedTitle": "FV0QMq_browserBlockedTitle",
12272
- "explorerHeader": "FV0QMq_explorerHeader",
12273
- "dividerActive": "FV0QMq_dividerActive",
12274
- "gitName": "FV0QMq_gitName",
12275
- "gitDiffCode": "FV0QMq_gitDiffCode",
12224
+ "bottomPanelHidden": "FV0QMq_bottomPanelHidden",
12276
12225
  "dropCenter": "FV0QMq_dropCenter",
12277
- "gitDiffDel": "FV0QMq_gitDiffDel",
12278
- "floatHeader": "FV0QMq_floatHeader",
12279
- "gitLogLine1": "FV0QMq_gitLogLine1",
12280
- "producedRow": "FV0QMq_producedRow",
12281
- "explorerRoot": "FV0QMq_explorerRoot",
12282
- "openWithPin": "FV0QMq_openWithPin",
12283
- "uploadOverlayCard": "FV0QMq_uploadOverlayCard",
12284
- "chatcodeGateError": "FV0QMq_chatcodeGateError",
12285
- "chatcodeGateCard": "FV0QMq_chatcodeGateCard",
12286
- "uploadOverlayProgress": "FV0QMq_uploadOverlayProgress",
12287
- "uploadDropChatCard": "FV0QMq_uploadDropChatCard",
12288
- "releaseNotesIconButton": "FV0QMq_releaseNotesIconButton",
12289
- "browserInput": "FV0QMq_browserInput",
12290
- "terminalRepairCommand": "FV0QMq_terminalRepairCommand",
12291
- "paneContent": "FV0QMq_paneContent",
12292
- "gitDiffFile": "FV0QMq_gitDiffFile",
12293
- "gitDiffFileChevronExpanded": "FV0QMq_gitDiffFileChevronExpanded",
12226
+ "mermaidModalStage": "FV0QMq_mermaidModalStage",
12294
12227
  "explorerRef": "FV0QMq_explorerRef",
12295
- "updateSettingsText": "FV0QMq_updateSettingsText",
12296
- "toggleButton": "FV0QMq_toggleButton",
12297
- "paneEmptyCards": "FV0QMq_paneEmptyCards",
12298
- "editorPdfStage": "FV0QMq_editorPdfStage",
12299
- "terminalDepsHint": "FV0QMq_terminalDepsHint",
12300
- "gitLogHash": "FV0QMq_gitLogHash",
12301
- "tocItemText": "FV0QMq_tocItemText",
12302
- "gitLogMeta": "FV0QMq_gitLogMeta",
12303
- "tabBar": "FV0QMq_tabBar",
12304
- "uploadDropZone": "FV0QMq_uploadDropZone",
12305
- "uploadDropZonePill": "FV0QMq_uploadDropZonePill",
12306
- "panelResizeActive": "FV0QMq_panelResizeActive",
12307
- "producedMore": "FV0QMq_producedMore",
12308
- "updateErrorText": "FV0QMq_updateErrorText",
12309
- "pinnedSessionMenuDivider": "FV0QMq_pinnedSessionMenuDivider",
12228
+ "editorPdfDragShield": "FV0QMq_editorPdfDragShield",
12229
+ "uploadDropHero": "FV0QMq_uploadDropHero",
12310
12230
  "uploadOverlayTitle": "FV0QMq_uploadOverlayTitle",
12311
- "browserBar": "FV0QMq_browserBar",
12312
- "gitDiffFilePath": "FV0QMq_gitDiffFilePath",
12313
- "accountDropdown": "FV0QMq_accountDropdown",
12314
- "bottomResizeActive": "FV0QMq_bottomResizeActive",
12315
- "releaseNotesButton": "FV0QMq_releaseNotesButton",
12316
- "updateError": "FV0QMq_updateError",
12317
- "bottomResize": "FV0QMq_bottomResize",
12318
- "gitError": "FV0QMq_gitError",
12319
- "accountTrigger": "FV0QMq_accountTrigger",
12320
- "mermaidModalHint": "FV0QMq_mermaidModalHint",
12321
- "gitWorktreeLabel": "FV0QMq_gitWorktreeLabel",
12322
- "editorSearchResult": "FV0QMq_editorSearchResult",
12323
- "gitDiffAdd": "FV0QMq_gitDiffAdd",
12231
+ "floatTitle": "FV0QMq_floatTitle",
12232
+ "gitRow": "FV0QMq_gitRow",
12233
+ "floatWindowDragging": "FV0QMq_floatWindowDragging",
12234
+ "releaseNotesOverlay": "FV0QMq_releaseNotesOverlay",
12235
+ "gitLink": "FV0QMq_gitLink",
12236
+ "panelResizeActive": "FV0QMq_panelResizeActive",
12237
+ "browserStart": "FV0QMq_browserStart",
12238
+ "pinnedSessions": "FV0QMq_pinnedSessions",
12239
+ "accountPresence": "FV0QMq_accountPresence",
12240
+ "toggleClusterNative": "FV0QMq_toggleClusterNative",
12241
+ "gitLogMeta": "FV0QMq_gitLogMeta",
12242
+ "editorTreeDock": "FV0QMq_editorTreeDock",
12243
+ "mermaidCopy": "FV0QMq_mermaidCopy",
12244
+ "gitDiffDel": "FV0QMq_gitDiffDel",
12245
+ "browser": "FV0QMq_browser",
12246
+ "dropOverlay": "FV0QMq_dropOverlay",
12247
+ "updateSettingsDesc": "FV0QMq_updateSettingsDesc",
12248
+ "openWithChevron": "FV0QMq_openWithChevron",
12249
+ "mermaidModalToolbar": "FV0QMq_mermaidModalToolbar",
12250
+ "sandboxAction": "FV0QMq_sandboxAction",
12251
+ "gitHeader": "FV0QMq_gitHeader",
12252
+ "releaseNotesDialog": "FV0QMq_releaseNotesDialog",
12253
+ "editorHtml": "FV0QMq_editorHtml",
12254
+ "terminalBanner": "FV0QMq_terminalBanner",
12255
+ "terminalDepsActions": "FV0QMq_terminalDepsActions",
12256
+ "mermaidHeader": "FV0QMq_mermaidHeader",
12324
12257
  "gitPlaceholder": "FV0QMq_gitPlaceholder",
12325
- "explorerHidden": "FV0QMq_explorerHidden",
12326
- "paneDrop": "FV0QMq_paneDrop",
12327
- "editorTitle": "FV0QMq_editorTitle",
12258
+ "chatcodeGateContent": "FV0QMq_chatcodeGateContent",
12328
12259
  "gitLogRow": "FV0QMq_gitLogRow",
12329
- "dsh-toc-flash": "FV0QMq_dsh-toc-flash",
12330
- "editorStatus": "FV0QMq_editorStatus",
12331
- "editorBody": "FV0QMq_editorBody",
12332
- "browserBlockedDesc": "FV0QMq_browserBlockedDesc",
12333
- "accountMenu": "FV0QMq_accountMenu",
12334
- "gitDiffFileChevron": "FV0QMq_gitDiffFileChevron",
12335
- "chatcodeGate": "FV0QMq_chatcodeGate",
12336
- "explorerCopied": "FV0QMq_explorerCopied",
12337
- "gitLogRef": "FV0QMq_gitLogRef",
12260
+ "updateError": "FV0QMq_updateError",
12261
+ "pinnedSessionTitle": "FV0QMq_pinnedSessionTitle",
12262
+ "sandboxStatusOff": "FV0QMq_sandboxStatusOff",
12263
+ "gitDiff": "FV0QMq_gitDiff",
12264
+ "accountTrigger": "FV0QMq_accountTrigger",
12265
+ "floatWindow": "FV0QMq_floatWindow",
12266
+ "explorerEmpty": "FV0QMq_explorerEmpty",
12267
+ "terminalDepsTitle": "FV0QMq_terminalDepsTitle",
12268
+ "editorPathInput": "FV0QMq_editorPathInput",
12269
+ "dsh-row-in": "FV0QMq_dsh-row-in",
12270
+ "gitLogLine2": "FV0QMq_gitLogLine2",
12271
+ "cornerHandle": "FV0QMq_cornerHandle",
12272
+ "tabBarPlus": "FV0QMq_tabBarPlus",
12273
+ "explorerRow": "FV0QMq_explorerRow",
12274
+ "pinnedSessionMore": "FV0QMq_pinnedSessionMore",
12338
12275
  "accountDropdownHeader": "FV0QMq_accountDropdownHeader",
12339
- "panel": "FV0QMq_panel",
12340
- "divider": "FV0QMq_divider",
12341
- "editorHtmlBlock": "FV0QMq_editorHtmlBlock",
12342
- "tocButton": "FV0QMq_tocButton",
12276
+ "bottomResizeActive": "FV0QMq_bottomResizeActive",
12277
+ "browserFrame": "FV0QMq_browserFrame",
12278
+ "editorPptxButton": "FV0QMq_editorPptxButton",
12279
+ "updateSettingsRow": "FV0QMq_updateSettingsRow",
12280
+ "uploadDropChatCard": "FV0QMq_uploadDropChatCard",
12343
12281
  "pinnedSessionsHeading": "FV0QMq_pinnedSessionsHeading",
12282
+ "panel": "FV0QMq_panel",
12283
+ "dividerRow": "FV0QMq_dividerRow",
12344
12284
  "split": "FV0QMq_split",
12345
- "terminalBanner": "FV0QMq_terminalBanner",
12346
- "editorBinary": "FV0QMq_editorBinary",
12347
- "releaseNotesFooter": "FV0QMq_releaseNotesFooter",
12348
- "gitDiffFileOld": "FV0QMq_gitDiffFileOld",
12349
- "tabBoundaryError": "FV0QMq_tabBoundaryError",
12285
+ "gitError": "FV0QMq_gitError",
12286
+ "gitLogRef": "FV0QMq_gitLogRef",
12287
+ "mermaidModalButton": "FV0QMq_mermaidModalButton",
12288
+ "openWithLabel": "FV0QMq_openWithLabel",
12289
+ "tocButton": "FV0QMq_tocButton",
12290
+ "editor": "FV0QMq_editor",
12291
+ "paneTabHidden": "FV0QMq_paneTabHidden",
12292
+ "tabActive": "FV0QMq_tabActive",
12293
+ "gitConfirmDesc": "FV0QMq_gitConfirmDesc",
12294
+ "gitCommitInput": "FV0QMq_gitCommitInput",
12295
+ "sandboxStatusText": "FV0QMq_sandboxStatusText",
12296
+ "iconButton": "FV0QMq_iconButton",
12297
+ "editorCmHidden": "FV0QMq_editorCmHidden",
12298
+ "tabBarDrop": "FV0QMq_tabBarDrop",
12299
+ "uploadOverlayStatus": "FV0QMq_uploadOverlayStatus",
12300
+ "tocItemText": "FV0QMq_tocItemText",
12301
+ "gitDiffFileChevron": "FV0QMq_gitDiffFileChevron",
12302
+ "updateFooter": "FV0QMq_updateFooter",
12303
+ "tabBar": "FV0QMq_tabBar",
12304
+ "chatcodeGateError": "FV0QMq_chatcodeGateError",
12305
+ "editorPdf": "FV0QMq_editorPdf",
12306
+ "accountDropdown": "FV0QMq_accountDropdown",
12307
+ "terminalRetry": "FV0QMq_terminalRetry",
12308
+ "uploadDropChatHint": "FV0QMq_uploadDropChatHint",
12350
12309
  "mermaidModal": "FV0QMq_mermaidModal",
12351
- "producedLabel": "FV0QMq_producedLabel",
12310
+ "updateSettingsTitle": "FV0QMq_updateSettingsTitle",
12311
+ "updateInline": "FV0QMq_updateInline",
12352
12312
  "editorTreeToggleActive": "FV0QMq_editorTreeToggleActive",
12353
- "gitLogSubject": "FV0QMq_gitLogSubject",
12354
- "mermaidHeader": "FV0QMq_mermaidHeader",
12355
- "updateVersions": "FV0QMq_updateVersions",
12356
- "browserBlockedActions": "FV0QMq_browserBlockedActions",
12357
- "bottomPanel": "FV0QMq_bottomPanel",
12313
+ "mermaidCode": "FV0QMq_mermaidCode",
12314
+ "editorBanner": "FV0QMq_editorBanner",
12315
+ "gitDiffCtx": "FV0QMq_gitDiffCtx",
12316
+ "pinnedSessionRow": "FV0QMq_pinnedSessionRow",
12317
+ "updateBody": "FV0QMq_updateBody",
12318
+ "tabList": "FV0QMq_tabList",
12319
+ "explorerRowDropTarget": "FV0QMq_explorerRowDropTarget",
12320
+ "editorStatus": "FV0QMq_editorStatus",
12321
+ "editorDownloadLink": "FV0QMq_editorDownloadLink",
12322
+ "openWithPinActive": "FV0QMq_openWithPinActive",
12323
+ "editorModeButton": "FV0QMq_editorModeButton",
12324
+ "panelBody": "FV0QMq_panelBody",
12325
+ "editorBinaryNotice": "FV0QMq_editorBinaryNotice",
12326
+ "pinnedSessionMenu": "FV0QMq_pinnedSessionMenu",
12327
+ "mermaidWrap": "FV0QMq_mermaidWrap",
12328
+ "terminalDepsCommandRow": "FV0QMq_terminalDepsCommandRow",
12329
+ "dividerActive": "FV0QMq_dividerActive",
12330
+ "mermaidBody": "FV0QMq_mermaidBody",
12331
+ "panelResize": "FV0QMq_panelResize",
12332
+ "editorModeToggle": "FV0QMq_editorModeToggle",
12333
+ "pinnedTab": "FV0QMq_pinnedTab",
12358
12334
  "floatResize": "FV0QMq_floatResize",
12359
- "producedChip": "FV0QMq_producedChip",
12360
- "dropRight": "FV0QMq_dropRight",
12361
- "floatClose": "FV0QMq_floatClose",
12362
- "updateInline": "FV0QMq_updateInline",
12363
- "editorPdfDragShield": "FV0QMq_editorPdfDragShield",
12335
+ "editorError": "FV0QMq_editorError",
12336
+ "browserBlockedActions": "FV0QMq_browserBlockedActions",
12337
+ "tocItem": "FV0QMq_tocItem",
12338
+ "dropDown": "FV0QMq_dropDown",
12339
+ "releaseNotesButton": "FV0QMq_releaseNotesButton",
12340
+ "gitDiffFileOld": "FV0QMq_gitDiffFileOld",
12341
+ "tocItemLevel": "FV0QMq_tocItemLevel",
12342
+ "gitName": "FV0QMq_gitName",
12343
+ "gitWorktreeRow": "FV0QMq_gitWorktreeRow",
12344
+ "browserBar": "FV0QMq_browserBar",
12345
+ "explorerCopied": "FV0QMq_explorerCopied",
12346
+ "editorBody": "FV0QMq_editorBody",
12347
+ "updateOk": "FV0QMq_updateOk",
12348
+ "bottomResize": "FV0QMq_bottomResize",
12349
+ "orphanedType": "FV0QMq_orphanedType",
12350
+ "selectionPopup": "FV0QMq_selectionPopup",
12351
+ "browserBlocked": "FV0QMq_browserBlocked",
12352
+ "explorerError": "FV0QMq_explorerError",
12353
+ "floatDropHintLabel": "FV0QMq_floatDropHintLabel",
12354
+ "git": "FV0QMq_git",
12364
12355
  "tocPanel": "FV0QMq_tocPanel",
12365
- "dsh-row-in": "FV0QMq_dsh-row-in",
12366
- "workbench": "FV0QMq_workbench",
12367
- "releaseNotesOverlay": "FV0QMq_releaseNotesOverlay",
12368
- "editorTreePanel": "FV0QMq_editorTreePanel",
12369
- "browser": "FV0QMq_browser",
12370
- "browserFrame": "FV0QMq_browserFrame",
12371
- "terminalRetry": "FV0QMq_terminalRetry",
12356
+ "editorHeader": "FV0QMq_editorHeader",
12372
12357
  "gitEmpty": "FV0QMq_gitEmpty",
12373
- "toggleClusterNative": "FV0QMq_toggleClusterNative",
12374
- "cornerHandle": "FV0QMq_cornerHandle",
12358
+ "editorSearchResult": "FV0QMq_editorSearchResult",
12359
+ "releaseNotesContent": "FV0QMq_releaseNotesContent",
12360
+ "explorerRoot": "FV0QMq_explorerRoot",
12361
+ "gitBadge": "FV0QMq_gitBadge",
12362
+ "gitDiffHunk": "FV0QMq_gitDiffHunk",
12363
+ "uploadOverlay": "FV0QMq_uploadOverlay",
12364
+ "updateSettingsText": "FV0QMq_updateSettingsText",
12365
+ "gitDiffHunkHeader": "FV0QMq_gitDiffHunkHeader",
12366
+ "explorerRowRevealed": "FV0QMq_explorerRowRevealed",
12367
+ "editorTreePanelFull": "FV0QMq_editorTreePanelFull",
12368
+ "gitBranchSelect": "FV0QMq_gitBranchSelect",
12369
+ "chatcodeGateCard": "FV0QMq_chatcodeGateCard",
12370
+ "pinnedSessionsList": "FV0QMq_pinnedSessionsList",
12371
+ "updateErrorText": "FV0QMq_updateErrorText",
12372
+ "explorerBody": "FV0QMq_explorerBody",
12373
+ "gitSection": "FV0QMq_gitSection",
12374
+ "splitCol": "FV0QMq_splitCol",
12375
+ "gitDiffNum": "FV0QMq_gitDiffNum",
12376
+ "accountMenu": "FV0QMq_accountMenu",
12377
+ "dropRight": "FV0QMq_dropRight",
12378
+ "terminalDepsBanner": "FV0QMq_terminalDepsBanner",
12379
+ "accountName": "FV0QMq_accountName",
12380
+ "updateVersions": "FV0QMq_updateVersions",
12381
+ "tabTitle": "FV0QMq_tabTitle",
12382
+ "terminalDepsHint": "FV0QMq_terminalDepsHint",
12383
+ "gitDiffTabHeader": "FV0QMq_gitDiffTabHeader",
12384
+ "gitDiffLine": "FV0QMq_gitDiffLine",
12385
+ "gitCommitButton": "FV0QMq_gitCommitButton",
12386
+ "paneCard": "FV0QMq_paneCard",
12387
+ "accountMenuDivider": "FV0QMq_accountMenuDivider",
12388
+ "uploadOverlayProgressFill": "FV0QMq_uploadOverlayProgressFill",
12389
+ "mermaidInfo": "FV0QMq_mermaidInfo",
12390
+ "editorTitle": "FV0QMq_editorTitle",
12391
+ "gitDiffFilePath": "FV0QMq_gitDiffFilePath",
12392
+ "gitDiffFileTag": "FV0QMq_gitDiffFileTag",
12393
+ "releaseNotesFooter": "FV0QMq_releaseNotesFooter",
12394
+ "tocBar": "FV0QMq_tocBar",
12395
+ "explorerHidden": "FV0QMq_explorerHidden",
12396
+ "editorSearchInput": "FV0QMq_editorSearchInput",
12397
+ "explorerName": "FV0QMq_explorerName",
12398
+ "divider": "FV0QMq_divider",
12399
+ "gitCommit": "FV0QMq_gitCommit",
12400
+ "explorerBroken": "FV0QMq_explorerBroken",
12401
+ "sandboxStatus": "FV0QMq_sandboxStatus",
12375
12402
  "editorPdfFrame": "FV0QMq_editorPdfFrame",
12376
- "uploadOverlay": "FV0QMq_uploadOverlay",
12377
- "tabActive": "FV0QMq_tabActive",
12378
12403
  "chatcodeGateActions": "FV0QMq_chatcodeGateActions",
12379
- "pinnedSessions": "FV0QMq_pinnedSessions",
12404
+ "editorImage": "FV0QMq_editorImage",
12405
+ "splitRow": "FV0QMq_splitRow",
12406
+ "manualButton": "FV0QMq_manualButton",
12407
+ "editorPdfDragShieldActive": "FV0QMq_editorPdfDragShieldActive",
12408
+ "editorTreePanel": "FV0QMq_editorTreePanel",
12409
+ "terminalDepsNote": "FV0QMq_terminalDepsNote",
12410
+ "editorPdfFrameBlocked": "FV0QMq_editorPdfFrameBlocked",
12411
+ "dsh-toc-flash": "FV0QMq_dsh-toc-flash",
12412
+ "gitDiffCode": "FV0QMq_gitDiffCode",
12413
+ "gitDiffMetaText": "FV0QMq_gitDiffMetaText",
12414
+ "gitSectionHeader": "FV0QMq_gitSectionHeader",
12415
+ "bottomClose": "FV0QMq_bottomClose",
12416
+ "browserBlockedDesc": "FV0QMq_browserBlockedDesc",
12417
+ "splitChild": "FV0QMq_splitChild",
12418
+ "editorTreeSearch": "FV0QMq_editorTreeSearch",
12419
+ "gitDiffAdd": "FV0QMq_gitDiffAdd",
12420
+ "panelHidden": "FV0QMq_panelHidden",
12421
+ "editorPdfStage": "FV0QMq_editorPdfStage",
12422
+ "producedMore": "FV0QMq_producedMore",
12423
+ "mermaidError": "FV0QMq_mermaidError",
12424
+ "terminalBannerUrl": "FV0QMq_terminalBannerUrl",
12425
+ "tocFlash": "FV0QMq_tocFlash",
12426
+ "chatcodeGate": "FV0QMq_chatcodeGate",
12427
+ "openWithName": "FV0QMq_openWithName",
12428
+ "tabClose": "FV0QMq_tabClose",
12429
+ "bottomPanel": "FV0QMq_bottomPanel",
12430
+ "floatContent": "FV0QMq_floatContent",
12431
+ "uploadOverlayProgress": "FV0QMq_uploadOverlayProgress",
12432
+ "explorerDir": "FV0QMq_explorerDir",
12380
12433
  "editorImageWrap": "FV0QMq_editorImageWrap",
12381
- "updateList": "FV0QMq_updateList",
12382
- "editorTreeDock": "FV0QMq_editorTreeDock",
12383
- "floatWindowDragging": "FV0QMq_floatWindowDragging",
12384
- "dirtyDot": "FV0QMq_dirtyDot",
12385
- "gitDiffNum": "FV0QMq_gitDiffNum",
12386
- "mermaidModalButton": "FV0QMq_mermaidModalButton",
12387
- "gitCommitInput": "FV0QMq_gitCommitInput",
12388
- "tabList": "FV0QMq_tabList",
12389
- "mermaidMarkdown": "FV0QMq_mermaidMarkdown",
12390
- "terminalBannerUrl": "FV0QMq_terminalBannerUrl"
12434
+ "editorCm": "FV0QMq_editorCm",
12435
+ "floatDropHint": "FV0QMq_floatDropHint",
12436
+ "explorer": "FV0QMq_explorer",
12437
+ "gitDiffHunkSection": "FV0QMq_gitDiffHunkSection",
12438
+ "gitDiffFileChevronExpanded": "FV0QMq_gitDiffFileChevronExpanded",
12439
+ "pinnedSessionMenuDivider": "FV0QMq_pinnedSessionMenuDivider",
12440
+ "editorSearchHint": "FV0QMq_editorSearchHint",
12441
+ "paneEmptyCards": "FV0QMq_paneEmptyCards",
12442
+ "pane": "FV0QMq_pane",
12443
+ "uploadDropZone": "FV0QMq_uploadDropZone",
12444
+ "dropLeft": "FV0QMq_dropLeft",
12445
+ "pinnedSessionOpen": "FV0QMq_pinnedSessionOpen",
12446
+ "dividerCol": "FV0QMq_dividerCol",
12447
+ "explorerHeader": "FV0QMq_explorerHeader",
12448
+ "producedLabel": "FV0QMq_producedLabel",
12449
+ "tab": "FV0QMq_tab",
12450
+ "tabBoundaryError": "FV0QMq_tabBoundaryError",
12451
+ "gitDiffTabTitle": "FV0QMq_gitDiffTabTitle",
12452
+ "terminalWrap": "FV0QMq_terminalWrap",
12453
+ "tabBadge": "FV0QMq_tabBadge"
12391
12454
  };
12392
12455
  //#endregion
12393
12456
  //#region src/client/intercept.tsx
@@ -12649,6 +12712,21 @@ window.__ModuleLoader__.load({
12649
12712
  }
12650
12713
  /** The sidebar API surface (session scope threaded through every call). */
12651
12714
  const api = {
12715
+ pluginMarketContext: (scope, signal) => call("plugins.context", scopePayload(scope, {}), signal),
12716
+ pluginMarketplaces: (signal) => call("plugins.marketplaces", {}, signal),
12717
+ pluginCatalog: (marketplaceId, signal) => call("plugins.catalog", {
12718
+ marketplaceId,
12719
+ includeMetadata: true
12720
+ }, signal),
12721
+ pluginsInstalled: (scope, signal) => call("plugins.installed", scopePayload(scope, {}), signal),
12722
+ pluginInstall: (scope, pluginId, installScope) => call("plugins.install", scopePayload(scope, {
12723
+ pluginId,
12724
+ scope: installScope
12725
+ })),
12726
+ pluginUninstall: (scope, pluginId, installScope) => call("plugins.uninstall", scopePayload(scope, {
12727
+ pluginId,
12728
+ scope: installScope
12729
+ })),
12652
12730
  chatcodeStatus: (signal) => call("chatcode.status", {}, signal),
12653
12731
  chatcodeStart: () => call("chatcode.start", {}),
12654
12732
  chatcodeCancel: (sessionId) => call("chatcode.cancel", { sessionId }),
@@ -14949,82 +15027,82 @@ window.__ModuleLoader__.load({
14949
15027
  }
14950
15028
  //#endregion
14951
15029
  //#region \0dsh-css:/Users/shiguifeng/IdeaProjects/chonggou/DSH-better-sidebar/src/client/SideCardSection.module.css.mjs
14952
- const css$4 = ".N4aF0W_section{flex-direction:column;gap:16px;width:100%;max-width:760px;display:flex}.N4aF0W_intro{color:var(--dsw-alias-label-tertiary);margin:0;padding:0 2px;font-size:13px;line-height:20px}.N4aF0W_group{box-sizing:border-box;border:1px solid var(--dsw-alias-border-l2);background:var(--dsw-alias-bg-layer-3);border-radius:16px;flex-direction:column;flex:none;gap:8px;padding:20px;display:flex}.N4aF0W_groupHeading{color:var(--dsw-alias-label-primary);align-items:baseline;gap:7px;padding:0 2px 6px;font-size:13px;font-weight:600;line-height:20px;display:flex}.N4aF0W_count{background:var(--dsw-alias-accent-soft,var(--dsw-alias-bg-layer-2));color:var(--dsw-alias-label-secondary);font-variant-numeric:tabular-nums;border-radius:999px;padding:1px 8px;font-size:11px;font-weight:500;line-height:16px}.N4aF0W_grid{grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:12px;display:grid}.N4aF0W_card{border:1px solid var(--dsw-alias-border-l2);min-height:106px;font:inherit;color:inherit;cursor:pointer;background:0 0;border-radius:12px;flex-direction:column;transition:background .12s,border-color .12s;display:flex;position:relative;overflow:hidden}.N4aF0W_card:not(.N4aF0W_cardOn):hover{background:var(--dsw-alias-interactive-bg-hover);border-color:var(--dsw-alias-label-dimmed)}.N4aF0W_cardOn{border-color:color-mix(in srgb, var(--dsw-alias-button-primary-fill) 45%, transparent);background:var(--dsw-alias-interactive-bg-active)}.N4aF0W_cardMain{border-radius:inherit;width:100%;font:inherit;color:inherit;text-align:left;cursor:pointer;background:0 0;border:0;flex-direction:column;flex:1;gap:6px;padding:12px;display:flex}.N4aF0W_cardMain:focus-visible,.N4aF0W_cardSettings:focus-visible,.N4aF0W_rowGear:focus-visible{outline:2px solid var(--dsw-alias-border-l4);outline-offset:2px}.N4aF0W_cardTop{align-items:center;gap:8px;min-width:0;min-height:28px;display:flex}.N4aF0W_cardIconChip{border:1px solid var(--dsw-alias-border-l2);background:var(--dsw-alias-bg-layer-2);width:28px;height:28px;color:var(--dsw-alias-label-tertiary);border-radius:8px;flex:none;justify-content:center;align-items:center;display:inline-flex}.N4aF0W_cardOn .N4aF0W_cardIconChip{border-color:color-mix(in srgb, var(--dsw-alias-button-primary-fill) 35%, transparent);background:color-mix(in srgb, var(--dsw-alias-button-primary-fill) 12%, transparent);color:var(--dsw-alias-button-primary-fill)}.N4aF0W_cardTitle{min-width:0;color:var(--dsw-alias-label-secondary);white-space:nowrap;text-overflow:ellipsis;flex:1;font-size:13px;font-weight:600;line-height:20px;overflow:hidden}.N4aF0W_cardOn .N4aF0W_cardTitle{color:var(--dsw-alias-label-primary)}.N4aF0W_cardSwitch{flex:none;align-items:center;display:inline-flex}.N4aF0W_cardSwitchTrack{box-sizing:border-box;background:var(--dsw-alias-bg-layer-2);border:1px solid var(--dsw-alias-border-l2);border-radius:8px;align-items:center;width:30px;height:16px;padding:2px;transition:background .15s,border-color .15s;display:inline-flex}.N4aF0W_cardSwitchThumb{background:var(--dsw-alias-label-tertiary);border-radius:50%;width:10px;height:10px;transition:transform .15s,background .15s;display:block}.N4aF0W_cardOn .N4aF0W_cardSwitchTrack{border-color:var(--dsw-alias-button-primary-fill);background:var(--dsw-alias-button-primary-fill)}.N4aF0W_cardOn .N4aF0W_cardSwitchThumb{background:var(--dsw-alias-bg-layer-3);transform:translate(14px)}.N4aF0W_cardDesc{color:var(--dsw-alias-label-tertiary);white-space:nowrap;text-overflow:ellipsis;font-size:11px;line-height:16px;overflow:hidden}.N4aF0W_addCard{border-style:dashed;border-color:var(--dsw-alias-border-l2);text-align:left;align-items:flex-start;padding:12px}.N4aF0W_addCard:hover{background:var(--dsw-alias-interactive-bg-hover);border-color:var(--dsw-alias-interactive-bg-hover-accent);color:var(--dsw-alias-label-primary)}.N4aF0W_addCard:hover .N4aF0W_cardTitle{color:var(--dsw-alias-label-primary)}.N4aF0W_addCard:hover .N4aF0W_cardIconChip{border-color:color-mix(in srgb, var(--dsw-alias-button-primary-fill) 35%, transparent);color:var(--dsw-alias-button-primary-fill)}.N4aF0W_addCard:focus-visible{outline:2px solid var(--dsw-alias-border-l4);outline-offset:2px}.N4aF0W_cardOn .N4aF0W_cardDesc{color:var(--dsw-alias-label-secondary)}.N4aF0W_cardSettings{border:0;border-top:1px solid var(--dsw-alias-border-l1);width:100%;color:var(--dsw-alias-label-secondary);font:inherit;text-align:left;cursor:pointer;background:0 0;align-items:center;gap:6px;padding:6px 12px;font-size:11px;font-weight:500;line-height:16px;transition:background .12s,color .12s;display:flex}.N4aF0W_cardOn .N4aF0W_cardSettings{border-top-color:color-mix(in srgb, var(--dsw-alias-button-primary-fill) 18%, transparent)}.N4aF0W_cardSettings:hover{background:var(--dsw-alias-interactive-bg-hover-accent);color:var(--dsw-alias-brand-primary)}.N4aF0W_rowGear{border:1px solid var(--dsw-alias-border-l2);width:22px;height:22px;color:var(--dsw-alias-label-secondary);cursor:pointer;background:0 0;border-radius:6px;flex:none;justify-content:center;align-items:center;padding:0;transition:background .12s,border-color .12s,color .12s;display:inline-flex}.N4aF0W_rowGear:hover{border-color:var(--dsw-alias-interactive-bg-hover-accent);background:var(--dsw-alias-interactive-bg-hover-accent);color:var(--dsw-alias-brand-primary)}.N4aF0W_row{border-bottom:1px solid var(--dsw-alias-border-l2);justify-content:space-between;align-items:center;gap:16px;padding:12px 2px;display:flex}.N4aF0W_row:last-child{border-bottom:none}.N4aF0W_rowText{flex-direction:column;gap:4px;min-width:0;display:flex}.N4aF0W_title{color:var(--dsw-alias-label-primary);font-size:14px;line-height:22px}.N4aF0W_desc{color:var(--dsw-alias-label-tertiary);font-size:12px;line-height:18px}.N4aF0W_switch{cursor:pointer;flex:none;display:inline-flex;position:relative}.N4aF0W_switchInput{opacity:0;width:1px;height:1px;margin:0;position:absolute}.N4aF0W_switchTrack{box-sizing:border-box;border:1px solid var(--dsw-alias-border-l2);background:var(--dsw-alias-bg-layer-2);border-radius:10px;align-items:center;width:36px;height:20px;padding:2px;transition:background .15s,border-color .15s;display:inline-flex}.N4aF0W_switchThumb{background:var(--dsw-alias-label-tertiary);border-radius:50%;width:14px;height:14px;transition:transform .15s,background .15s;display:block}.N4aF0W_switch:hover .N4aF0W_switchTrack{border-color:var(--dsw-alias-label-dimmed)}.N4aF0W_switchInput:checked+.N4aF0W_switchTrack{border-color:var(--dsw-alias-button-primary-fill);background:var(--dsw-alias-button-primary-fill)}.N4aF0W_switchInput:checked+.N4aF0W_switchTrack .N4aF0W_switchThumb{background:var(--dsw-alias-bg-layer-3);transform:translate(16px)}.N4aF0W_switchInput:focus-visible+.N4aF0W_switchTrack{outline:2px solid var(--dsw-alias-state-business-primary);outline-offset:2px}.N4aF0W_control{flex:none;align-items:center;gap:6px;display:flex}.N4aF0W_percentInput{width:76px}.N4aF0W_typedInput{width:200px}.N4aF0W_typedInputNumber{width:76px}.N4aF0W_selectAnchor{border:1px solid var(--dsw-alias-border-l2);background:var(--dsw-alias-bg-layer-3);max-width:220px;color:var(--dsw-alias-label-primary);cursor:pointer;border-radius:8px;align-items:center;gap:6px;padding:4px 8px;font-size:13px;line-height:20px;display:flex}.N4aF0W_selectAnchor:hover{border-color:var(--dsw-alias-label-dimmed)}.N4aF0W_selectAnchorIcon{flex:none;display:inline-flex}.N4aF0W_selectAnchorText{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.N4aF0W_selectOption{align-items:center;gap:10px;min-width:200px;display:flex}.N4aF0W_selectOptionIcon{color:var(--dsw-alias-label-secondary);flex:none;display:inline-flex}.N4aF0W_selectOptionText{flex-direction:column;min-width:0;display:flex}.N4aF0W_suffix{color:var(--dsw-alias-label-secondary);font-size:14px;line-height:22px}.N4aF0W_cssTextArea{box-sizing:border-box;border:1px solid var(--dsw-alias-border-l2);background:var(--dsw-alias-bg-layer-3);width:100%;min-height:120px;color:var(--dsw-alias-label-primary);font-family:var(--ds-font-family-code,monospace);resize:vertical;border-radius:8px;padding:8px 10px;font-size:12px;line-height:1.6}.N4aF0W_cssTextArea:focus-visible{outline:2px solid var(--dsw-alias-state-business-primary);outline-offset:2px}.N4aF0W_popupDialog.N4aF0W_popupDialog{width:min(460px,100%)}.N4aF0W_popupRows{box-sizing:border-box;scrollbar-width:thin;scrollbar-color:var(--dsw-alias-scrollbar-bg-l2,transparent) transparent;flex-direction:column;gap:8px;width:100%;max-height:min(52vh,440px);padding-right:4px;display:flex;overflow:hidden auto}.N4aF0W_popupRows::-webkit-scrollbar{width:6px}.N4aF0W_popupRows::-webkit-scrollbar-thumb{background:var(--dsw-alias-scrollbar-bg-l2,var(--dsw-alias-border-l2));border-radius:3px}.N4aF0W_popupRows::-webkit-scrollbar-thumb:hover{background:var(--dsw-alias-scrollbar-hover-l2,var(--dsw-alias-label-dimmed))}.N4aF0W_popupRow{border:1px solid var(--dsw-alias-border-l2);background:var(--dsw-alias-bg-layer-3);border-radius:12px;flex:none;justify-content:space-between;align-items:center;gap:16px;min-width:0;padding:12px 14px;transition:border-color .16s,background .16s;display:flex}.N4aF0W_popupRow:hover{border-color:var(--dsw-alias-label-dimmed)}.N4aF0W_done{appearance:none;font:inherit;cursor:pointer;background:var(--dsw-alias-label-primary);color:var(--dsw-alias-bg-layer-3);border:1px solid #0000;border-radius:8px;padding:5px 14px;font-size:13px;line-height:1.5}.N4aF0W_done:focus-visible{outline:2px solid var(--dsw-alias-brand-primary);outline-offset:1px}.N4aF0W_error{color:var(--dsw-alias-state-error-primary);padding:10px 0 2px;font-size:12px;line-height:17px}.N4aF0W_pluginModal.N4aF0W_pluginModal{width:min(560px,100%)}.N4aF0W_pluginList{flex-direction:column;gap:12px;width:100%;display:flex}.N4aF0W_pluginTopicBtn{appearance:none;border:1px solid var(--dsw-alias-border-l2);width:100%;font:inherit;color:var(--dsw-alias-label-secondary);background:var(--dsw-alias-bg-layer-1);cursor:pointer;border-radius:8px;padding:6px 12px;font-size:12px;line-height:18px}.N4aF0W_pluginTopicBtn:hover{background:var(--dsw-alias-interactive-bg-hover);border-color:var(--dsw-alias-interactive-bg-hover-accent);color:var(--dsw-alias-label-primary)}.N4aF0W_pluginTopicBtn:focus-visible{outline:2px solid var(--dsw-alias-border-l4);outline-offset:1px}.N4aF0W_pluginEmpty{color:var(--dsw-alias-label-tertiary);padding:20px 2px;font-size:12px;line-height:18px}.N4aF0W_pluginEntry{border:1px solid var(--dsw-alias-border-l2);background:var(--dsw-alias-bg-layer-1);border-radius:12px;flex-direction:column;gap:4px;padding:12px;display:flex}.N4aF0W_pluginEntryHead{justify-content:space-between;align-items:center;gap:12px;display:flex}.N4aF0W_pluginEntryActions{flex:none;align-items:center;gap:6px;display:inline-flex}.N4aF0W_pluginJumpBtn{appearance:none;border:1px solid var(--dsw-alias-border-l2);font:inherit;cursor:pointer;color:var(--dsw-alias-label-secondary);background:0 0;border-radius:8px;flex:none;padding:3px 12px;font-size:12px;line-height:1.5}.N4aF0W_pluginJumpBtn:hover{background:var(--dsw-alias-interactive-bg-hover);border-color:var(--dsw-alias-interactive-bg-hover-accent);color:var(--dsw-alias-label-primary)}.N4aF0W_pluginJumpBtn:focus-visible{outline:2px solid var(--dsw-alias-border-l4);outline-offset:1px}.N4aF0W_pluginName{appearance:none;min-width:0;font:inherit;color:var(--dsw-alias-label-primary);text-align:left;text-overflow:ellipsis;white-space:nowrap;cursor:pointer;background:0 0;border:0;padding:0;font-size:13px;font-weight:600;line-height:20px;text-decoration:none;overflow:hidden}.N4aF0W_pluginName:hover{color:var(--dsw-alias-button-primary-fill);text-decoration:underline}.N4aF0W_pluginDesc{color:var(--dsw-alias-label-secondary);font-size:12px;line-height:18px}.N4aF0W_pluginInstall{color:var(--dsw-alias-label-secondary);background:var(--dsw-alias-bg-layer-2);border:1px solid var(--dsw-alias-border-l1);white-space:nowrap;border-radius:8px;padding:6px 10px;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:11px;line-height:16px;display:block;overflow-x:auto}.N4aF0W_pluginCopyBtn{appearance:none;font:inherit;cursor:pointer;background:var(--dsw-alias-label-primary);color:var(--dsw-alias-bg-layer-3);border:1px solid #0000;border-radius:8px;flex:none;padding:3px 12px;font-size:12px;line-height:1.5}.N4aF0W_pluginCopyBtn:hover{background:var(--dsw-alias-button-primary-hover)}.N4aF0W_pluginCopyBtn:focus-visible{outline:2px solid var(--dsw-alias-brand-primary);outline-offset:1px}@media (prefers-reduced-motion:reduce){.N4aF0W_card,.N4aF0W_cardSettings,.N4aF0W_cardSwitchTrack,.N4aF0W_cardSwitchThumb,.N4aF0W_rowGear,.N4aF0W_popupRow,.N4aF0W_switchTrack,.N4aF0W_switchThumb{transition:none}}.N4aF0W_pluginSearch{box-sizing:border-box;appearance:none;border:1px solid var(--dsw-alias-border-l2);width:100%;font:inherit;color:var(--dsw-alias-label-primary);background:var(--dsw-alias-bg-layer-1);border-radius:8px;padding:6px 10px;font-size:12px;line-height:18px}.N4aF0W_pluginSearch::placeholder{color:var(--dsw-alias-label-tertiary)}.N4aF0W_pluginSearch:focus-visible{outline:2px solid var(--dsw-alias-border-l4);outline-offset:1px}.N4aF0W_pluginEntries{flex-direction:column;gap:10px;max-height:46vh;padding-right:2px;display:flex;overflow:hidden auto}.N4aF0W_pluginGroup{flex-direction:column;gap:8px;display:flex}.N4aF0W_pluginGroupHeading{color:var(--dsw-alias-label-secondary);padding:2px 2px 0;font-size:12px;font-weight:600;line-height:18px}.N4aF0W_openWithEditorRow{grid-template-columns:1fr 1.5fr auto auto;align-items:center;gap:8px;min-width:0;display:grid}.N4aF0W_openWithEditorInput,.N4aF0W_openWithEditorTemplate{box-sizing:border-box;border:1px solid var(--dsw-alias-border-l2);background:var(--dsw-alias-bg-layer-3);width:100%;min-width:0;color:var(--dsw-alias-label-primary);font:inherit;border-radius:8px;padding:5px 8px;font-size:13px;line-height:20px}.N4aF0W_openWithEditorInput:focus-visible,.N4aF0W_openWithEditorTemplate:focus-visible{outline:2px solid var(--dsw-alias-state-business-primary);outline-offset:1px}.N4aF0W_openWithFamily{color:var(--dsw-alias-label-secondary);white-space:nowrap;cursor:pointer;align-items:center;gap:5px;font-size:12px;display:inline-flex}.N4aF0W_openWithRemove{color:var(--dsw-alias-label-tertiary);cursor:pointer;background:0 0;border:none;border-radius:8px;justify-content:center;align-items:center;padding:4px;display:inline-flex}.N4aF0W_openWithRemove:hover{color:var(--dsw-alias-state-error-primary);background:var(--dsw-alias-bg-layer-2)}.N4aF0W_openWithHint{color:var(--dsw-alias-state-error-primary);padding:0 2px;font-size:12px;line-height:17px}";
14953
- const tagId$4 = "@chatcode/cco-better-sidebar/SideCardSection.module.css";
14954
- if (typeof document !== "undefined" && document.querySelector("style[data-plugin-css=" + JSON.stringify(tagId$4) + "]") === null) {
15030
+ const css$5 = ".N4aF0W_section{flex-direction:column;gap:16px;width:100%;max-width:760px;display:flex}.N4aF0W_intro{color:var(--dsw-alias-label-tertiary);margin:0;padding:0 2px;font-size:13px;line-height:20px}.N4aF0W_group{box-sizing:border-box;border:1px solid var(--dsw-alias-border-l2);background:var(--dsw-alias-bg-layer-3);border-radius:16px;flex-direction:column;flex:none;gap:8px;padding:20px;display:flex}.N4aF0W_groupHeading{color:var(--dsw-alias-label-primary);align-items:baseline;gap:7px;padding:0 2px 6px;font-size:13px;font-weight:600;line-height:20px;display:flex}.N4aF0W_count{background:var(--dsw-alias-accent-soft,var(--dsw-alias-bg-layer-2));color:var(--dsw-alias-label-secondary);font-variant-numeric:tabular-nums;border-radius:999px;padding:1px 8px;font-size:11px;font-weight:500;line-height:16px}.N4aF0W_grid{grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:12px;display:grid}.N4aF0W_card{border:1px solid var(--dsw-alias-border-l2);min-height:106px;font:inherit;color:inherit;cursor:pointer;background:0 0;border-radius:12px;flex-direction:column;transition:background .12s,border-color .12s;display:flex;position:relative;overflow:hidden}.N4aF0W_card:not(.N4aF0W_cardOn):hover{background:var(--dsw-alias-interactive-bg-hover);border-color:var(--dsw-alias-label-dimmed)}.N4aF0W_cardOn{border-color:color-mix(in srgb, var(--dsw-alias-button-primary-fill) 45%, transparent);background:var(--dsw-alias-interactive-bg-active)}.N4aF0W_cardMain{border-radius:inherit;width:100%;font:inherit;color:inherit;text-align:left;cursor:pointer;background:0 0;border:0;flex-direction:column;flex:1;gap:6px;padding:12px;display:flex}.N4aF0W_cardMain:focus-visible,.N4aF0W_cardSettings:focus-visible,.N4aF0W_rowGear:focus-visible{outline:2px solid var(--dsw-alias-border-l4);outline-offset:2px}.N4aF0W_cardTop{align-items:center;gap:8px;min-width:0;min-height:28px;display:flex}.N4aF0W_cardIconChip{border:1px solid var(--dsw-alias-border-l2);background:var(--dsw-alias-bg-layer-2);width:28px;height:28px;color:var(--dsw-alias-label-tertiary);border-radius:8px;flex:none;justify-content:center;align-items:center;display:inline-flex}.N4aF0W_cardOn .N4aF0W_cardIconChip{border-color:color-mix(in srgb, var(--dsw-alias-button-primary-fill) 35%, transparent);background:color-mix(in srgb, var(--dsw-alias-button-primary-fill) 12%, transparent);color:var(--dsw-alias-button-primary-fill)}.N4aF0W_cardTitle{min-width:0;color:var(--dsw-alias-label-secondary);white-space:nowrap;text-overflow:ellipsis;flex:1;font-size:13px;font-weight:600;line-height:20px;overflow:hidden}.N4aF0W_cardOn .N4aF0W_cardTitle{color:var(--dsw-alias-label-primary)}.N4aF0W_cardSwitch{flex:none;align-items:center;display:inline-flex}.N4aF0W_cardSwitchTrack{box-sizing:border-box;background:var(--dsw-alias-bg-layer-2);border:1px solid var(--dsw-alias-border-l2);border-radius:8px;align-items:center;width:30px;height:16px;padding:2px;transition:background .15s,border-color .15s;display:inline-flex}.N4aF0W_cardSwitchThumb{background:var(--dsw-alias-label-tertiary);border-radius:50%;width:10px;height:10px;transition:transform .15s,background .15s;display:block}.N4aF0W_cardOn .N4aF0W_cardSwitchTrack{border-color:var(--dsw-alias-button-primary-fill);background:var(--dsw-alias-button-primary-fill)}.N4aF0W_cardOn .N4aF0W_cardSwitchThumb{background:var(--dsw-alias-bg-layer-3);transform:translate(14px)}.N4aF0W_cardDesc{color:var(--dsw-alias-label-tertiary);white-space:nowrap;text-overflow:ellipsis;font-size:11px;line-height:16px;overflow:hidden}.N4aF0W_addCard{border-style:dashed;border-color:var(--dsw-alias-border-l2);text-align:left;align-items:flex-start;padding:12px}.N4aF0W_addCard:hover{background:var(--dsw-alias-interactive-bg-hover);border-color:var(--dsw-alias-interactive-bg-hover-accent);color:var(--dsw-alias-label-primary)}.N4aF0W_addCard:hover .N4aF0W_cardTitle{color:var(--dsw-alias-label-primary)}.N4aF0W_addCard:hover .N4aF0W_cardIconChip{border-color:color-mix(in srgb, var(--dsw-alias-button-primary-fill) 35%, transparent);color:var(--dsw-alias-button-primary-fill)}.N4aF0W_addCard:focus-visible{outline:2px solid var(--dsw-alias-border-l4);outline-offset:2px}.N4aF0W_cardOn .N4aF0W_cardDesc{color:var(--dsw-alias-label-secondary)}.N4aF0W_cardSettings{border:0;border-top:1px solid var(--dsw-alias-border-l1);width:100%;color:var(--dsw-alias-label-secondary);font:inherit;text-align:left;cursor:pointer;background:0 0;align-items:center;gap:6px;padding:6px 12px;font-size:11px;font-weight:500;line-height:16px;transition:background .12s,color .12s;display:flex}.N4aF0W_cardOn .N4aF0W_cardSettings{border-top-color:color-mix(in srgb, var(--dsw-alias-button-primary-fill) 18%, transparent)}.N4aF0W_cardSettings:hover{background:var(--dsw-alias-interactive-bg-hover-accent);color:var(--dsw-alias-brand-primary)}.N4aF0W_rowGear{border:1px solid var(--dsw-alias-border-l2);width:22px;height:22px;color:var(--dsw-alias-label-secondary);cursor:pointer;background:0 0;border-radius:6px;flex:none;justify-content:center;align-items:center;padding:0;transition:background .12s,border-color .12s,color .12s;display:inline-flex}.N4aF0W_rowGear:hover{border-color:var(--dsw-alias-interactive-bg-hover-accent);background:var(--dsw-alias-interactive-bg-hover-accent);color:var(--dsw-alias-brand-primary)}.N4aF0W_row{border-bottom:1px solid var(--dsw-alias-border-l2);justify-content:space-between;align-items:center;gap:16px;padding:12px 2px;display:flex}.N4aF0W_row:last-child{border-bottom:none}.N4aF0W_rowText{flex-direction:column;gap:4px;min-width:0;display:flex}.N4aF0W_title{color:var(--dsw-alias-label-primary);font-size:14px;line-height:22px}.N4aF0W_desc{color:var(--dsw-alias-label-tertiary);font-size:12px;line-height:18px}.N4aF0W_switch{cursor:pointer;flex:none;display:inline-flex;position:relative}.N4aF0W_switchInput{opacity:0;width:1px;height:1px;margin:0;position:absolute}.N4aF0W_switchTrack{box-sizing:border-box;border:1px solid var(--dsw-alias-border-l2);background:var(--dsw-alias-bg-layer-2);border-radius:10px;align-items:center;width:36px;height:20px;padding:2px;transition:background .15s,border-color .15s;display:inline-flex}.N4aF0W_switchThumb{background:var(--dsw-alias-label-tertiary);border-radius:50%;width:14px;height:14px;transition:transform .15s,background .15s;display:block}.N4aF0W_switch:hover .N4aF0W_switchTrack{border-color:var(--dsw-alias-label-dimmed)}.N4aF0W_switchInput:checked+.N4aF0W_switchTrack{border-color:var(--dsw-alias-button-primary-fill);background:var(--dsw-alias-button-primary-fill)}.N4aF0W_switchInput:checked+.N4aF0W_switchTrack .N4aF0W_switchThumb{background:var(--dsw-alias-bg-layer-3);transform:translate(16px)}.N4aF0W_switchInput:focus-visible+.N4aF0W_switchTrack{outline:2px solid var(--dsw-alias-state-business-primary);outline-offset:2px}.N4aF0W_control{flex:none;align-items:center;gap:6px;display:flex}.N4aF0W_percentInput{width:76px}.N4aF0W_typedInput{width:200px}.N4aF0W_typedInputNumber{width:76px}.N4aF0W_selectAnchor{border:1px solid var(--dsw-alias-border-l2);background:var(--dsw-alias-bg-layer-3);max-width:220px;color:var(--dsw-alias-label-primary);cursor:pointer;border-radius:8px;align-items:center;gap:6px;padding:4px 8px;font-size:13px;line-height:20px;display:flex}.N4aF0W_selectAnchor:hover{border-color:var(--dsw-alias-label-dimmed)}.N4aF0W_selectAnchorIcon{flex:none;display:inline-flex}.N4aF0W_selectAnchorText{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.N4aF0W_selectOption{align-items:center;gap:10px;min-width:200px;display:flex}.N4aF0W_selectOptionIcon{color:var(--dsw-alias-label-secondary);flex:none;display:inline-flex}.N4aF0W_selectOptionText{flex-direction:column;min-width:0;display:flex}.N4aF0W_suffix{color:var(--dsw-alias-label-secondary);font-size:14px;line-height:22px}.N4aF0W_cssTextArea{box-sizing:border-box;border:1px solid var(--dsw-alias-border-l2);background:var(--dsw-alias-bg-layer-3);width:100%;min-height:120px;color:var(--dsw-alias-label-primary);font-family:var(--ds-font-family-code,monospace);resize:vertical;border-radius:8px;padding:8px 10px;font-size:12px;line-height:1.6}.N4aF0W_cssTextArea:focus-visible{outline:2px solid var(--dsw-alias-state-business-primary);outline-offset:2px}.N4aF0W_popupDialog.N4aF0W_popupDialog{width:min(460px,100%)}.N4aF0W_popupRows{box-sizing:border-box;scrollbar-width:thin;scrollbar-color:var(--dsw-alias-scrollbar-bg-l2,transparent) transparent;flex-direction:column;gap:8px;width:100%;max-height:min(52vh,440px);padding-right:4px;display:flex;overflow:hidden auto}.N4aF0W_popupRows::-webkit-scrollbar{width:6px}.N4aF0W_popupRows::-webkit-scrollbar-thumb{background:var(--dsw-alias-scrollbar-bg-l2,var(--dsw-alias-border-l2));border-radius:3px}.N4aF0W_popupRows::-webkit-scrollbar-thumb:hover{background:var(--dsw-alias-scrollbar-hover-l2,var(--dsw-alias-label-dimmed))}.N4aF0W_popupRow{border:1px solid var(--dsw-alias-border-l2);background:var(--dsw-alias-bg-layer-3);border-radius:12px;flex:none;justify-content:space-between;align-items:center;gap:16px;min-width:0;padding:12px 14px;transition:border-color .16s,background .16s;display:flex}.N4aF0W_popupRow:hover{border-color:var(--dsw-alias-label-dimmed)}.N4aF0W_done{appearance:none;font:inherit;cursor:pointer;background:var(--dsw-alias-label-primary);color:var(--dsw-alias-bg-layer-3);border:1px solid #0000;border-radius:8px;padding:5px 14px;font-size:13px;line-height:1.5}.N4aF0W_done:focus-visible{outline:2px solid var(--dsw-alias-brand-primary);outline-offset:1px}.N4aF0W_error{color:var(--dsw-alias-state-error-primary);padding:10px 0 2px;font-size:12px;line-height:17px}.N4aF0W_pluginModal.N4aF0W_pluginModal{width:min(560px,100%)}.N4aF0W_pluginList{flex-direction:column;gap:12px;width:100%;display:flex}.N4aF0W_pluginTopicBtn{appearance:none;border:1px solid var(--dsw-alias-border-l2);width:100%;font:inherit;color:var(--dsw-alias-label-secondary);background:var(--dsw-alias-bg-layer-1);cursor:pointer;border-radius:8px;padding:6px 12px;font-size:12px;line-height:18px}.N4aF0W_pluginTopicBtn:hover{background:var(--dsw-alias-interactive-bg-hover);border-color:var(--dsw-alias-interactive-bg-hover-accent);color:var(--dsw-alias-label-primary)}.N4aF0W_pluginTopicBtn:focus-visible{outline:2px solid var(--dsw-alias-border-l4);outline-offset:1px}.N4aF0W_pluginEmpty{color:var(--dsw-alias-label-tertiary);padding:20px 2px;font-size:12px;line-height:18px}.N4aF0W_pluginEntry{border:1px solid var(--dsw-alias-border-l2);background:var(--dsw-alias-bg-layer-1);border-radius:12px;flex-direction:column;gap:4px;padding:12px;display:flex}.N4aF0W_pluginEntryHead{justify-content:space-between;align-items:center;gap:12px;display:flex}.N4aF0W_pluginEntryActions{flex:none;align-items:center;gap:6px;display:inline-flex}.N4aF0W_pluginJumpBtn{appearance:none;border:1px solid var(--dsw-alias-border-l2);font:inherit;cursor:pointer;color:var(--dsw-alias-label-secondary);background:0 0;border-radius:8px;flex:none;padding:3px 12px;font-size:12px;line-height:1.5}.N4aF0W_pluginJumpBtn:hover{background:var(--dsw-alias-interactive-bg-hover);border-color:var(--dsw-alias-interactive-bg-hover-accent);color:var(--dsw-alias-label-primary)}.N4aF0W_pluginJumpBtn:focus-visible{outline:2px solid var(--dsw-alias-border-l4);outline-offset:1px}.N4aF0W_pluginName{appearance:none;min-width:0;font:inherit;color:var(--dsw-alias-label-primary);text-align:left;text-overflow:ellipsis;white-space:nowrap;cursor:pointer;background:0 0;border:0;padding:0;font-size:13px;font-weight:600;line-height:20px;text-decoration:none;overflow:hidden}.N4aF0W_pluginName:hover{color:var(--dsw-alias-button-primary-fill);text-decoration:underline}.N4aF0W_pluginDesc{color:var(--dsw-alias-label-secondary);font-size:12px;line-height:18px}.N4aF0W_pluginInstall{color:var(--dsw-alias-label-secondary);background:var(--dsw-alias-bg-layer-2);border:1px solid var(--dsw-alias-border-l1);white-space:nowrap;border-radius:8px;padding:6px 10px;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:11px;line-height:16px;display:block;overflow-x:auto}.N4aF0W_pluginCopyBtn{appearance:none;font:inherit;cursor:pointer;background:var(--dsw-alias-label-primary);color:var(--dsw-alias-bg-layer-3);border:1px solid #0000;border-radius:8px;flex:none;padding:3px 12px;font-size:12px;line-height:1.5}.N4aF0W_pluginCopyBtn:hover{background:var(--dsw-alias-button-primary-hover)}.N4aF0W_pluginCopyBtn:focus-visible{outline:2px solid var(--dsw-alias-brand-primary);outline-offset:1px}@media (prefers-reduced-motion:reduce){.N4aF0W_card,.N4aF0W_cardSettings,.N4aF0W_cardSwitchTrack,.N4aF0W_cardSwitchThumb,.N4aF0W_rowGear,.N4aF0W_popupRow,.N4aF0W_switchTrack,.N4aF0W_switchThumb{transition:none}}.N4aF0W_pluginSearch{box-sizing:border-box;appearance:none;border:1px solid var(--dsw-alias-border-l2);width:100%;font:inherit;color:var(--dsw-alias-label-primary);background:var(--dsw-alias-bg-layer-1);border-radius:8px;padding:6px 10px;font-size:12px;line-height:18px}.N4aF0W_pluginSearch::placeholder{color:var(--dsw-alias-label-tertiary)}.N4aF0W_pluginSearch:focus-visible{outline:2px solid var(--dsw-alias-border-l4);outline-offset:1px}.N4aF0W_pluginEntries{flex-direction:column;gap:10px;max-height:46vh;padding-right:2px;display:flex;overflow:hidden auto}.N4aF0W_pluginGroup{flex-direction:column;gap:8px;display:flex}.N4aF0W_pluginGroupHeading{color:var(--dsw-alias-label-secondary);padding:2px 2px 0;font-size:12px;font-weight:600;line-height:18px}.N4aF0W_openWithEditorRow{grid-template-columns:1fr 1.5fr auto auto;align-items:center;gap:8px;min-width:0;display:grid}.N4aF0W_openWithEditorInput,.N4aF0W_openWithEditorTemplate{box-sizing:border-box;border:1px solid var(--dsw-alias-border-l2);background:var(--dsw-alias-bg-layer-3);width:100%;min-width:0;color:var(--dsw-alias-label-primary);font:inherit;border-radius:8px;padding:5px 8px;font-size:13px;line-height:20px}.N4aF0W_openWithEditorInput:focus-visible,.N4aF0W_openWithEditorTemplate:focus-visible{outline:2px solid var(--dsw-alias-state-business-primary);outline-offset:1px}.N4aF0W_openWithFamily{color:var(--dsw-alias-label-secondary);white-space:nowrap;cursor:pointer;align-items:center;gap:5px;font-size:12px;display:inline-flex}.N4aF0W_openWithRemove{color:var(--dsw-alias-label-tertiary);cursor:pointer;background:0 0;border:none;border-radius:8px;justify-content:center;align-items:center;padding:4px;display:inline-flex}.N4aF0W_openWithRemove:hover{color:var(--dsw-alias-state-error-primary);background:var(--dsw-alias-bg-layer-2)}.N4aF0W_openWithHint{color:var(--dsw-alias-state-error-primary);padding:0 2px;font-size:12px;line-height:17px}";
15031
+ const tagId$5 = "@chatcode/cco-better-sidebar/SideCardSection.module.css";
15032
+ if (typeof document !== "undefined" && document.querySelector("style[data-plugin-css=" + JSON.stringify(tagId$5) + "]") === null) {
14955
15033
  const tag = document.createElement("style");
14956
15034
  tag.dataset.plugin = "@chatcode/cco-better-sidebar";
14957
- tag.dataset.pluginCss = tagId$4;
14958
- tag.textContent = css$4;
15035
+ tag.dataset.pluginCss = tagId$5;
15036
+ tag.textContent = css$5;
14959
15037
  document.head.appendChild(tag);
14960
15038
  }
14961
15039
  var SideCardSection_module_css_default = {
14962
- "pluginEntry": "N4aF0W_pluginEntry",
14963
- "openWithEditorInput": "N4aF0W_openWithEditorInput",
14964
- "intro": "N4aF0W_intro",
14965
- "selectOptionIcon": "N4aF0W_selectOptionIcon",
14966
- "pluginList": "N4aF0W_pluginList",
14967
15040
  "typedInputNumber": "N4aF0W_typedInputNumber",
14968
- "addCard": "N4aF0W_addCard",
14969
- "typedInput": "N4aF0W_typedInput",
14970
- "pluginEmpty": "N4aF0W_pluginEmpty",
14971
- "openWithEditorRow": "N4aF0W_openWithEditorRow",
14972
- "section": "N4aF0W_section",
14973
- "cardOn": "N4aF0W_cardOn",
14974
- "selectAnchor": "N4aF0W_selectAnchor",
14975
- "cardDesc": "N4aF0W_cardDesc",
14976
- "desc": "N4aF0W_desc",
14977
- "switchThumb": "N4aF0W_switchThumb",
14978
- "pluginEntryActions": "N4aF0W_pluginEntryActions",
14979
- "pluginModal": "N4aF0W_pluginModal",
14980
- "popupRows": "N4aF0W_popupRows",
14981
- "percentInput": "N4aF0W_percentInput",
14982
- "switch": "N4aF0W_switch",
14983
- "openWithFamily": "N4aF0W_openWithFamily",
14984
- "groupHeading": "N4aF0W_groupHeading",
14985
- "rowText": "N4aF0W_rowText",
14986
- "pluginCopyBtn": "N4aF0W_pluginCopyBtn",
14987
15041
  "cardMain": "N4aF0W_cardMain",
14988
- "pluginSearch": "N4aF0W_pluginSearch",
14989
- "pluginEntries": "N4aF0W_pluginEntries",
14990
- "title": "N4aF0W_title",
15042
+ "card": "N4aF0W_card",
15043
+ "rowGear": "N4aF0W_rowGear",
14991
15044
  "selectOption": "N4aF0W_selectOption",
15045
+ "switchTrack": "N4aF0W_switchTrack",
15046
+ "pluginDesc": "N4aF0W_pluginDesc",
15047
+ "selectAnchorText": "N4aF0W_selectAnchorText",
15048
+ "done": "N4aF0W_done",
15049
+ "popupRows": "N4aF0W_popupRows",
15050
+ "pluginEntryActions": "N4aF0W_pluginEntryActions",
15051
+ "pluginJumpBtn": "N4aF0W_pluginJumpBtn",
15052
+ "selectAnchor": "N4aF0W_selectAnchor",
15053
+ "group": "N4aF0W_group",
14992
15054
  "error": "N4aF0W_error",
14993
- "pluginName": "N4aF0W_pluginName",
14994
- "card": "N4aF0W_card",
14995
- "switchInput": "N4aF0W_switchInput",
14996
- "cardSwitchTrack": "N4aF0W_cardSwitchTrack",
14997
- "pluginGroupHeading": "N4aF0W_pluginGroupHeading",
14998
- "popupDialog": "N4aF0W_popupDialog",
14999
- "control": "N4aF0W_control",
15000
15055
  "pluginTopicBtn": "N4aF0W_pluginTopicBtn",
15056
+ "pluginEntries": "N4aF0W_pluginEntries",
15001
15057
  "pluginEntryHead": "N4aF0W_pluginEntryHead",
15002
- "selectOptionText": "N4aF0W_selectOptionText",
15058
+ "pluginGroupHeading": "N4aF0W_pluginGroupHeading",
15059
+ "switchInput": "N4aF0W_switchInput",
15060
+ "switchThumb": "N4aF0W_switchThumb",
15003
15061
  "openWithRemove": "N4aF0W_openWithRemove",
15004
- "row": "N4aF0W_row",
15005
- "done": "N4aF0W_done",
15006
- "cardSwitch": "N4aF0W_cardSwitch",
15007
15062
  "grid": "N4aF0W_grid",
15063
+ "cardDesc": "N4aF0W_cardDesc",
15064
+ "openWithEditorInput": "N4aF0W_openWithEditorInput",
15065
+ "pluginModal": "N4aF0W_pluginModal",
15066
+ "pluginEmpty": "N4aF0W_pluginEmpty",
15008
15067
  "selectAnchorIcon": "N4aF0W_selectAnchorIcon",
15009
- "pluginInstall": "N4aF0W_pluginInstall",
15010
- "rowGear": "N4aF0W_rowGear",
15011
- "switchTrack": "N4aF0W_switchTrack",
15012
- "group": "N4aF0W_group",
15013
- "cssTextArea": "N4aF0W_cssTextArea",
15014
- "openWithEditorTemplate": "N4aF0W_openWithEditorTemplate",
15015
- "selectAnchorText": "N4aF0W_selectAnchorText",
15016
- "pluginGroup": "N4aF0W_pluginGroup",
15017
- "pluginDesc": "N4aF0W_pluginDesc",
15018
- "pluginJumpBtn": "N4aF0W_pluginJumpBtn",
15019
- "openWithHint": "N4aF0W_openWithHint",
15020
- "cardSwitchThumb": "N4aF0W_cardSwitchThumb",
15021
- "count": "N4aF0W_count",
15068
+ "desc": "N4aF0W_desc",
15069
+ "switch": "N4aF0W_switch",
15070
+ "intro": "N4aF0W_intro",
15022
15071
  "cardTitle": "N4aF0W_cardTitle",
15023
- "suffix": "N4aF0W_suffix",
15024
15072
  "cardSettings": "N4aF0W_cardSettings",
15073
+ "cardOn": "N4aF0W_cardOn",
15074
+ "groupHeading": "N4aF0W_groupHeading",
15075
+ "cardSwitchThumb": "N4aF0W_cardSwitchThumb",
15076
+ "openWithEditorTemplate": "N4aF0W_openWithEditorTemplate",
15077
+ "pluginInstall": "N4aF0W_pluginInstall",
15078
+ "addCard": "N4aF0W_addCard",
15079
+ "control": "N4aF0W_control",
15080
+ "rowText": "N4aF0W_rowText",
15025
15081
  "cardTop": "N4aF0W_cardTop",
15082
+ "count": "N4aF0W_count",
15083
+ "pluginCopyBtn": "N4aF0W_pluginCopyBtn",
15084
+ "row": "N4aF0W_row",
15085
+ "suffix": "N4aF0W_suffix",
15086
+ "pluginEntry": "N4aF0W_pluginEntry",
15087
+ "popupRow": "N4aF0W_popupRow",
15088
+ "popupDialog": "N4aF0W_popupDialog",
15089
+ "cardSwitchTrack": "N4aF0W_cardSwitchTrack",
15090
+ "pluginSearch": "N4aF0W_pluginSearch",
15091
+ "typedInput": "N4aF0W_typedInput",
15092
+ "openWithFamily": "N4aF0W_openWithFamily",
15093
+ "cssTextArea": "N4aF0W_cssTextArea",
15094
+ "cardSwitch": "N4aF0W_cardSwitch",
15026
15095
  "cardIconChip": "N4aF0W_cardIconChip",
15027
- "popupRow": "N4aF0W_popupRow"
15096
+ "pluginName": "N4aF0W_pluginName",
15097
+ "openWithEditorRow": "N4aF0W_openWithEditorRow",
15098
+ "openWithHint": "N4aF0W_openWithHint",
15099
+ "selectOptionText": "N4aF0W_selectOptionText",
15100
+ "percentInput": "N4aF0W_percentInput",
15101
+ "selectOptionIcon": "N4aF0W_selectOptionIcon",
15102
+ "pluginGroup": "N4aF0W_pluginGroup",
15103
+ "section": "N4aF0W_section",
15104
+ "title": "N4aF0W_title",
15105
+ "pluginList": "N4aF0W_pluginList"
15028
15106
  };
15029
15107
  //#endregion
15030
15108
  //#region src/client/open-with-settings.tsx
@@ -16971,27 +17049,483 @@ window.__ModuleLoader__.load({
16971
17049
  children: t("browserEmbedBlocked", { host })
16972
17050
  }),
16973
17051
  /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
16974
- className: sidebar_module_css_default.browserBlockedDesc,
16975
- children: t("browserEmbedBlockedDesc")
16976
- }),
16977
- /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
16978
- className: sidebar_module_css_default.browserBlockedActions,
16979
- children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)("button", {
16980
- type: "button",
16981
- className: sidebar_module_css_default.browserBlockedButton,
16982
- onClick: onOpenInBrowser,
16983
- children: t("browserOpenExternal")
16984
- }), /* @__PURE__ */ (0, react_jsx_runtime.jsx)("button", {
17052
+ className: sidebar_module_css_default.browserBlockedDesc,
17053
+ children: t("browserEmbedBlockedDesc")
17054
+ }),
17055
+ /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
17056
+ className: sidebar_module_css_default.browserBlockedActions,
17057
+ children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)("button", {
17058
+ type: "button",
17059
+ className: sidebar_module_css_default.browserBlockedButton,
17060
+ onClick: onOpenInBrowser,
17061
+ children: t("browserOpenExternal")
17062
+ }), /* @__PURE__ */ (0, react_jsx_runtime.jsx)("button", {
17063
+ type: "button",
17064
+ className: sidebar_module_css_default.browserBlockedButton,
17065
+ onClick: onLoadAnyway,
17066
+ children: t("browserEmbedAnyway")
17067
+ })]
17068
+ })
17069
+ ]
17070
+ });
17071
+ }
17072
+ //#endregion
17073
+ //#region \0dsh-css:/Users/shiguifeng/IdeaProjects/chonggou/DSH-better-sidebar/src/client/PluginMarketView.module.css.mjs
17074
+ const css$4 = ".wFPghq_root{box-sizing:border-box;height:100%;color:var(--dsw-alias-label-primary);font:var(--dsw-font-s-14);padding:4px;overflow:auto}.wFPghq_head{justify-content:space-between;align-items:flex-start;gap:16px;margin-bottom:8px;display:flex}.wFPghq_head>span{box-sizing:border-box;flex:1;min-width:220px;max-width:380px}.wFPghq_title{margin:0;font-size:16px;font-weight:600;line-height:24px}.wFPghq_subtitle,.wFPghq_project,.wFPghq_meta,.wFPghq_state{color:var(--dsw-alias-label-tertiary);margin:2px 0;font-size:12px;line-height:18px}.wFPghq_project{overflow-wrap:anywhere}.wFPghq_toolbar{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;margin:16px 0 12px;display:flex}.wFPghq_tabs{flex-wrap:wrap;align-items:center;gap:4px;display:flex}.wFPghq_tabs button{white-space:nowrap}.wFPghq_tabs button[aria-pressed=true]{background:var(--dsw-alias-interactive-bg-hover);color:var(--dsw-alias-label-primary);font-weight:600}.wFPghq_breadcrumb{color:var(--dsw-alias-label-secondary);overflow-wrap:anywhere;align-items:center;gap:8px;margin:4px 0 12px;display:flex}.wFPghq_breadcrumb button{white-space:nowrap;flex-shrink:0}.wFPghq_breadcrumb>span:last-child{min-width:0}.wFPghq_warning{border:1px solid var(--dsw-alias-border-l2);color:var(--dsw-alias-label-secondary);border-radius:8px;margin:10px 0;padding:8px 10px;font-size:12px}.wFPghq_error,.wFPghq_notice{overflow-wrap:anywhere;border-radius:8px;margin:10px 0;padding:8px 10px;font-size:12px}.wFPghq_error{color:var(--dsw-alias-state-danger-primary);background:var(--dsw-alias-state-danger-bg)}.wFPghq_notice{color:var(--dsw-alias-state-success-primary);background:var(--dsw-alias-state-success-bg)}.wFPghq_grid{grid-template-columns:repeat(auto-fill,minmax(min(100%,260px),1fr));gap:10px;margin-top:12px;display:grid}.wFPghq_card{border:1px solid var(--dsw-alias-border-l2);background:var(--dsw-alias-bg-layer-1);border-radius:10px;flex-direction:column;min-width:0;min-height:150px;padding:12px;display:flex}.wFPghq_cardHead{justify-content:space-between;align-items:center;gap:8px;display:flex}.wFPghq_card h3{overflow-wrap:anywhere;margin:0;font-size:14px;font-weight:600;line-height:20px}.wFPghq_description{color:var(--dsw-alias-label-secondary);-webkit-line-clamp:3;overflow-wrap:anywhere;-webkit-box-orient:vertical;flex:1;margin:8px 0;font-size:12px;line-height:18px;display:-webkit-box;overflow:hidden}.wFPghq_meta{overflow-wrap:anywhere;min-height:18px}.wFPghq_actions{flex-wrap:wrap;gap:8px;margin-top:8px;display:flex}.wFPghq_projectInstall.wFPghq_projectInstall{background:var(--dsw-alias-button-primary-fill);color:var(--dsw-alias-label-primary-foreground)}.wFPghq_projectInstall.wFPghq_projectInstall:hover:not(:disabled){background-color:var(--dsw-alias-button-primary-fill)!important;color:var(--dsw-alias-label-primary-foreground)!important}.wFPghq_marketCard{text-align:left;color:inherit;font:inherit;cursor:pointer;width:100%}.wFPghq_marketCard:hover:not(:disabled){border-color:var(--dsw-alias-border-l1);background:var(--dsw-alias-interactive-bg-hover)}.wFPghq_marketCard:disabled{cursor:not-allowed;opacity:.5}.wFPghq_spinning{animation:1s linear infinite wFPghq_marketRefresh;display:inline-flex}@keyframes wFPghq_marketRefresh{to{transform:rotate(360deg)}}@media (prefers-reduced-motion:reduce){.wFPghq_spinning{animation:none}}.wFPghq_marketCard:focus-visible{outline:2px solid var(--dsw-alias-state-business-primary);outline-offset:2px}.wFPghq_enter{color:var(--dsw-alias-label-secondary);justify-content:space-between;align-items:center;gap:8px;font-size:12px;line-height:18px;display:flex}@media (width<=640px){.wFPghq_head{flex-direction:column}.wFPghq_head>span{width:100%;min-width:0;max-width:none}}";
17075
+ const tagId$4 = "@chatcode/cco-better-sidebar/PluginMarketView.module.css";
17076
+ if (typeof document !== "undefined" && document.querySelector("style[data-plugin-css=" + JSON.stringify(tagId$4) + "]") === null) {
17077
+ const tag = document.createElement("style");
17078
+ tag.dataset.plugin = "@chatcode/cco-better-sidebar";
17079
+ tag.dataset.pluginCss = tagId$4;
17080
+ tag.textContent = css$4;
17081
+ document.head.appendChild(tag);
17082
+ }
17083
+ var PluginMarketView_module_css_default = {
17084
+ "meta": "wFPghq_meta",
17085
+ "warning": "wFPghq_warning",
17086
+ "marketRefresh": "wFPghq_marketRefresh",
17087
+ "root": "wFPghq_root",
17088
+ "head": "wFPghq_head",
17089
+ "error": "wFPghq_error",
17090
+ "tabs": "wFPghq_tabs",
17091
+ "projectInstall": "wFPghq_projectInstall",
17092
+ "enter": "wFPghq_enter",
17093
+ "state": "wFPghq_state",
17094
+ "cardHead": "wFPghq_cardHead",
17095
+ "notice": "wFPghq_notice",
17096
+ "card": "wFPghq_card",
17097
+ "title": "wFPghq_title",
17098
+ "grid": "wFPghq_grid",
17099
+ "description": "wFPghq_description",
17100
+ "actions": "wFPghq_actions",
17101
+ "toolbar": "wFPghq_toolbar",
17102
+ "subtitle": "wFPghq_subtitle",
17103
+ "project": "wFPghq_project",
17104
+ "breadcrumb": "wFPghq_breadcrumb",
17105
+ "marketCard": "wFPghq_marketCard",
17106
+ "spinning": "wFPghq_spinning"
17107
+ };
17108
+ //#endregion
17109
+ //#region src/client/PluginMarketView.tsx
17110
+ /** Two catalog levels with project/user actions directly on plugin cards. */
17111
+ function PluginMarketView({ scope, visible, catalog }) {
17112
+ const snapshot = (0, react.useSyncExternalStore)(catalog.subscribe, catalog.getSnapshot);
17113
+ const [marketId, setMarketId] = (0, react.useState)(null);
17114
+ const [tab, setTab] = (0, react.useState)("markets");
17115
+ const [query, setQuery] = (0, react.useState)("");
17116
+ const [installed, setInstalled] = (0, react.useState)([]);
17117
+ const [recordsReady, setRecordsReady] = (0, react.useState)(false);
17118
+ const [recordsError, setRecordsError] = (0, react.useState)("");
17119
+ const [message, setMessage] = (0, react.useState)();
17120
+ const [working, setWorking] = (0, react.useState)();
17121
+ const [revision, setRevision] = (0, react.useState)(0);
17122
+ const pending = (0, react.useRef)(false);
17123
+ const breadcrumbNode = (0, react.useRef)(null);
17124
+ const mutationVersion = (0, react.useRef)(0);
17125
+ const focusBack = (0, react.useRef)(false);
17126
+ const scopeKey = `${scope.sessionId}\0${scope.cwd ?? ""}`;
17127
+ const latestScope = (0, react.useRef)(scopeKey);
17128
+ latestScope.current = scopeKey;
17129
+ const markets = snapshot.markets?.data?.marketplaces ?? [];
17130
+ const market = markets.find((item) => item.id === marketId);
17131
+ const catalogEntry = tab === "markets" && marketId ? snapshot.plugins[marketId] : snapshot.markets;
17132
+ const loading = snapshot.refresh?.status === "loading" || tab === "markets" && (!catalogEntry || catalogEntry.status === "loading");
17133
+ const blocked = loading || snapshot.refresh?.status === "error";
17134
+ (0, react.useEffect)(() => {
17135
+ if (!visible) return;
17136
+ catalog.start();
17137
+ if (tab === "markets" && marketId) catalog.ensure(marketId);
17138
+ }, [
17139
+ catalog,
17140
+ visible,
17141
+ tab,
17142
+ marketId
17143
+ ]);
17144
+ (0, react.useEffect)(() => {
17145
+ setQuery("");
17146
+ }, [tab, marketId]);
17147
+ (0, react.useEffect)(() => {
17148
+ if (focusBack.current) {
17149
+ breadcrumbNode.current?.querySelector("button")?.focus();
17150
+ focusBack.current = false;
17151
+ }
17152
+ }, [marketId]);
17153
+ (0, react.useEffect)(() => {
17154
+ setInstalled([]);
17155
+ setRecordsReady(false);
17156
+ setRecordsError("");
17157
+ setMessage(void 0);
17158
+ }, [scopeKey]);
17159
+ (0, react.useEffect)(() => {
17160
+ if (!visible) return;
17161
+ const controller = new AbortController();
17162
+ let active = true;
17163
+ let reading = false;
17164
+ const read = async () => {
17165
+ if (pending.current || reading) return;
17166
+ reading = true;
17167
+ const version = mutationVersion.current;
17168
+ try {
17169
+ const records = await api.pluginsInstalled(scope, controller.signal);
17170
+ if (active && !pending.current && version === mutationVersion.current) {
17171
+ setInstalled(records);
17172
+ setRecordsReady(true);
17173
+ setRecordsError("");
17174
+ }
17175
+ } catch (cause) {
17176
+ if (active && version === mutationVersion.current) setRecordsError(cause instanceof Error ? cause.message : String(cause));
17177
+ } finally {
17178
+ reading = false;
17179
+ }
17180
+ };
17181
+ read();
17182
+ const timer = setInterval(() => {
17183
+ read();
17184
+ }, 2e3);
17185
+ return () => {
17186
+ active = false;
17187
+ clearInterval(timer);
17188
+ controller.abort();
17189
+ };
17190
+ }, [
17191
+ scopeKey,
17192
+ visible,
17193
+ revision
17194
+ ]);
17195
+ const perform = async (plugin, installScope) => {
17196
+ const refreshStatus = catalog.getSnapshot().refresh?.status;
17197
+ if (pending.current || !recordsReady || blocked || refreshStatus === "loading" || refreshStatus === "error") return;
17198
+ const key = scopeKey;
17199
+ const present = installed.some((item) => item.id === plugin.id && item.scope === installScope);
17200
+ pending.current = true;
17201
+ mutationVersion.current++;
17202
+ setWorking({
17203
+ id: plugin.id,
17204
+ scope: installScope
17205
+ });
17206
+ setMessage(void 0);
17207
+ try {
17208
+ if (present) await api.pluginUninstall(scope, plugin.id, installScope);
17209
+ else await api.pluginInstall(scope, plugin.id, installScope);
17210
+ const records = await api.pluginsInstalled(scope);
17211
+ if (latestScope.current === key) {
17212
+ setInstalled(records);
17213
+ setRecordsReady(true);
17214
+ setRecordsError("");
17215
+ setMessage({
17216
+ text: t(present ? "pluginMarketUninstalled" : "pluginMarketInstalled"),
17217
+ error: false
17218
+ });
17219
+ }
17220
+ } catch (cause) {
17221
+ if (latestScope.current === key) setMessage({
17222
+ text: cause instanceof Error ? cause.message : String(cause),
17223
+ error: true
17224
+ });
17225
+ } finally {
17226
+ pending.current = false;
17227
+ setWorking(void 0);
17228
+ }
17229
+ };
17230
+ const refresh = () => {
17231
+ if (loading || pending.current) return;
17232
+ catalog.refresh(tab === "markets" && marketId ? marketId : void 0);
17233
+ setRevision((value) => value + 1);
17234
+ setMessage(void 0);
17235
+ };
17236
+ const term = query.trim().toLocaleLowerCase();
17237
+ const matches = (item) => `${item.name} ${item.description}`.toLocaleLowerCase().includes(term);
17238
+ const filteredPlugins = (tab === "installed" ? [...new Map(installed.map((item) => [item.id, item])).values()] : marketId ? snapshot.plugins[marketId]?.data ?? [] : []).filter(matches);
17239
+ const filteredMarkets = markets.filter(matches);
17240
+ const showMarkets = tab === "markets" && !marketId;
17241
+ const error = snapshot.refresh?.error || (tab === "markets" ? catalogEntry?.error : "") || recordsError;
17242
+ const warning = [snapshot.markets?.data?.warning, marketId ? snapshot.plugins[marketId]?.warning : ""].filter(Boolean).join("\n");
17243
+ const hasData = tab === "installed" ? recordsReady : !!catalogEntry?.data;
17244
+ return /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("section", {
17245
+ className: PluginMarketView_module_css_default.root,
17246
+ "aria-label": t("pluginMarketTitle"),
17247
+ "aria-busy": loading,
17248
+ "data-chatcode-plugin-market": true,
17249
+ children: [
17250
+ /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("header", {
17251
+ className: PluginMarketView_module_css_default.head,
17252
+ children: [/* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", { children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)("h2", {
17253
+ className: PluginMarketView_module_css_default.title,
17254
+ children: t("pluginMarketTitle")
17255
+ }), /* @__PURE__ */ (0, react_jsx_runtime.jsx)("p", {
17256
+ className: PluginMarketView_module_css_default.subtitle,
17257
+ children: t("pluginMarketSubtitle")
17258
+ })] }), /* @__PURE__ */ (0, react_jsx_runtime.jsx)(_deepseek_ai_dsh_client_ui_primitives.Input, {
17259
+ disabled: blocked,
17260
+ value: query,
17261
+ onChange: (event) => setQuery(event.target.value),
17262
+ placeholder: t("pluginMarketSearch"),
17263
+ "aria-label": t("pluginMarketSearch")
17264
+ })]
17265
+ }),
17266
+ scope.cwd ? /* @__PURE__ */ (0, react_jsx_runtime.jsx)("p", {
17267
+ className: PluginMarketView_module_css_default.project,
17268
+ children: t("pluginMarketProjectDirectory", { path: scope.cwd })
17269
+ }) : null,
17270
+ /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
17271
+ className: PluginMarketView_module_css_default.toolbar,
17272
+ children: [/* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
17273
+ className: PluginMarketView_module_css_default.tabs,
17274
+ children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)(_deepseek_ai_dsh_client_ui_primitives.Button, {
17275
+ size: "sm",
17276
+ variant: "ghost",
17277
+ disabled: blocked,
17278
+ "aria-pressed": tab === "markets",
17279
+ onClick: () => setTab("markets"),
17280
+ children: t("pluginMarketTitle")
17281
+ }), /* @__PURE__ */ (0, react_jsx_runtime.jsx)(_deepseek_ai_dsh_client_ui_primitives.Button, {
17282
+ size: "sm",
17283
+ variant: "ghost",
17284
+ disabled: blocked,
17285
+ "aria-pressed": tab === "installed",
17286
+ onClick: () => setTab("installed"),
17287
+ children: t("pluginMarketInstalledTab")
17288
+ })]
17289
+ }), /* @__PURE__ */ (0, react_jsx_runtime.jsxs)(_deepseek_ai_dsh_client_ui_primitives.Button, {
17290
+ size: "sm",
17291
+ variant: "outline",
17292
+ "aria-label": t("pluginMarketRefresh"),
17293
+ disabled: snapshot.markets?.status === "loading" || loading || !!working,
17294
+ onClick: refresh,
17295
+ children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", {
17296
+ "aria-hidden": "true",
17297
+ className: loading ? PluginMarketView_module_css_default.spinning : void 0,
17298
+ children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(IconRefreshOutline14, {})
17299
+ }), t(loading ? "pluginMarketRefreshing" : "pluginMarketRefresh")]
17300
+ })]
17301
+ }),
17302
+ warning && tab === "markets" ? /* @__PURE__ */ (0, react_jsx_runtime.jsx)("p", {
17303
+ className: PluginMarketView_module_css_default.warning,
17304
+ role: "status",
17305
+ children: warning
17306
+ }) : null,
17307
+ error ? /* @__PURE__ */ (0, react_jsx_runtime.jsx)("p", {
17308
+ className: PluginMarketView_module_css_default.error,
17309
+ role: "status",
17310
+ children: error
17311
+ }) : null,
17312
+ message ? /* @__PURE__ */ (0, react_jsx_runtime.jsx)("p", {
17313
+ className: message.error ? PluginMarketView_module_css_default.error : PluginMarketView_module_css_default.notice,
17314
+ role: "status",
17315
+ children: message.text
17316
+ }) : null,
17317
+ tab === "markets" && marketId ? /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
17318
+ ref: breadcrumbNode,
17319
+ className: PluginMarketView_module_css_default.breadcrumb,
17320
+ children: [
17321
+ /* @__PURE__ */ (0, react_jsx_runtime.jsxs)(_deepseek_ai_dsh_client_ui_primitives.Button, {
17322
+ size: "sm",
17323
+ variant: "ghost",
17324
+ disabled: blocked,
17325
+ onClick: () => setMarketId(null),
17326
+ children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)(IconChevronLeftOutline14, {}), t("pluginMarketBack")]
17327
+ }),
17328
+ /* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", {
17329
+ "aria-hidden": "true",
17330
+ children: "/"
17331
+ }),
17332
+ /* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", { children: market?.name ?? marketId })
17333
+ ]
17334
+ }) : null,
17335
+ loading ? /* @__PURE__ */ (0, react_jsx_runtime.jsx)("p", {
17336
+ className: PluginMarketView_module_css_default.state,
17337
+ role: "status",
17338
+ children: t(hasData ? "pluginMarketRefreshing" : "pluginMarketLoading")
17339
+ }) : null,
17340
+ /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
17341
+ className: PluginMarketView_module_css_default.grid,
17342
+ "aria-busy": loading,
17343
+ children: showMarkets ? filteredMarkets.map((item) => /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("button", {
16985
17344
  type: "button",
16986
- className: sidebar_module_css_default.browserBlockedButton,
16987
- onClick: onLoadAnyway,
16988
- children: t("browserEmbedAnyway")
16989
- })]
16990
- })
17345
+ disabled: blocked,
17346
+ className: `${PluginMarketView_module_css_default.card} ${PluginMarketView_module_css_default.marketCard}`,
17347
+ onClick: () => {
17348
+ focusBack.current = true;
17349
+ setMarketId(item.id);
17350
+ },
17351
+ children: [
17352
+ /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
17353
+ className: PluginMarketView_module_css_default.cardHead,
17354
+ children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)("h3", { children: item.name }), item.official ? /* @__PURE__ */ (0, react_jsx_runtime.jsx)(_deepseek_ai_dsh_client_ui_primitives.Pill, { children: t("pluginMarketDefault") }) : null]
17355
+ }),
17356
+ /* @__PURE__ */ (0, react_jsx_runtime.jsx)("p", {
17357
+ className: PluginMarketView_module_css_default.description,
17358
+ children: item.description || t("pluginMarketNoDescription")
17359
+ }),
17360
+ /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("span", {
17361
+ className: PluginMarketView_module_css_default.enter,
17362
+ children: [t("pluginMarketBrowse"), /* @__PURE__ */ (0, react_jsx_runtime.jsx)(IconChevronRightOutline14, {})]
17363
+ })
17364
+ ]
17365
+ }, item.id)) : filteredPlugins.map((item) => {
17366
+ const records = installed.filter((record) => record.id === item.id);
17367
+ const marketName = markets.find((value) => value.id === item.marketplaceId)?.name ?? item.marketplaceId;
17368
+ return /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("article", {
17369
+ className: PluginMarketView_module_css_default.card,
17370
+ "aria-label": item.name,
17371
+ "data-plugin-id": item.id,
17372
+ children: [
17373
+ /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
17374
+ className: PluginMarketView_module_css_default.cardHead,
17375
+ children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)("h3", { children: item.name }), records.length ? /* @__PURE__ */ (0, react_jsx_runtime.jsx)(_deepseek_ai_dsh_client_ui_primitives.Pill, { children: t("pluginMarketInstalledTab") }) : null]
17376
+ }),
17377
+ /* @__PURE__ */ (0, react_jsx_runtime.jsx)("p", {
17378
+ className: PluginMarketView_module_css_default.description,
17379
+ children: item.description || t("pluginMarketNoDescription")
17380
+ }),
17381
+ /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("p", {
17382
+ className: PluginMarketView_module_css_default.meta,
17383
+ children: [marketName, tab === "installed" && records[0]?.version ? ` · ${records[0].version}` : ""]
17384
+ }),
17385
+ /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
17386
+ className: PluginMarketView_module_css_default.actions,
17387
+ children: ["project", "user"].map((installScope) => {
17388
+ const present = records.some((record) => record.scope === installScope);
17389
+ const busy = working?.id === item.id && working.scope === installScope;
17390
+ return /* @__PURE__ */ (0, react_jsx_runtime.jsxs)(_deepseek_ai_dsh_client_ui_primitives.Button, {
17391
+ size: "sm",
17392
+ variant: installScope === "project" && !present ? "primary" : "outline",
17393
+ className: installScope === "project" && !present ? PluginMarketView_module_css_default.projectInstall : void 0,
17394
+ disabled: blocked || !!working || !recordsReady,
17395
+ onClick: () => {
17396
+ perform(item, installScope);
17397
+ },
17398
+ children: [
17399
+ t(busy ? present ? "pluginMarketUninstalling" : "pluginMarketInstalling" : present ? "pluginMarketUninstall" : "pluginMarketInstall"),
17400
+ " · ",
17401
+ t(installScope === "project" ? "pluginMarketProject" : "pluginMarketUser")
17402
+ ]
17403
+ }, installScope);
17404
+ })
17405
+ })
17406
+ ]
17407
+ }, item.id);
17408
+ })
17409
+ }),
17410
+ !loading && hasData && (showMarkets ? filteredMarkets : filteredPlugins).length === 0 ? /* @__PURE__ */ (0, react_jsx_runtime.jsx)("p", {
17411
+ className: PluginMarketView_module_css_default.state,
17412
+ children: t("pluginMarketEmpty")
17413
+ }) : null
16991
17414
  ]
16992
17415
  });
16993
17416
  }
16994
17417
  //#endregion
17418
+ //#region src/client/plugin-market-catalog.ts
17419
+ /** App-lifetime remote catalogs, shared by Settings and the sidebar tab. */
17420
+ function createPluginMarketCatalog() {
17421
+ let snapshot = { plugins: {} };
17422
+ let disposed = false;
17423
+ const listeners = /* @__PURE__ */ new Set();
17424
+ const controllers = /* @__PURE__ */ new Set();
17425
+ const requests = /* @__PURE__ */ new Map();
17426
+ const publish = (next) => {
17427
+ if (disposed) return;
17428
+ snapshot = next;
17429
+ listeners.forEach((listener) => listener());
17430
+ };
17431
+ const load = (key, current, update, request) => {
17432
+ if (disposed) return Promise.resolve(void 0);
17433
+ const pending = requests.get(key);
17434
+ if (pending) return pending;
17435
+ const entry = {
17436
+ status: "loading",
17437
+ data: current()?.data
17438
+ };
17439
+ const controller = new AbortController();
17440
+ controllers.add(controller);
17441
+ update(entry);
17442
+ const result = request(controller.signal).then(({ data, warning }) => {
17443
+ if (current() === entry) update({
17444
+ status: "ready",
17445
+ data,
17446
+ ...warning ? { warning } : {}
17447
+ });
17448
+ }, (cause) => {
17449
+ const error = cause instanceof Error ? cause.message : String(cause);
17450
+ if (current() === entry) update({
17451
+ status: "error",
17452
+ data: entry.data,
17453
+ error
17454
+ });
17455
+ return error;
17456
+ }).finally(() => {
17457
+ controllers.delete(controller);
17458
+ requests.delete(key);
17459
+ });
17460
+ requests.set(key, result);
17461
+ return result;
17462
+ };
17463
+ const markets = (force = false) => {
17464
+ if (!force && snapshot.markets) return Promise.resolve(void 0);
17465
+ return load("markets", () => snapshot.markets, (entry) => publish({
17466
+ ...snapshot,
17467
+ markets: entry
17468
+ }), async (signal) => ({ data: await api.pluginMarketplaces(signal) }));
17469
+ };
17470
+ const plugins = (id, force = false) => {
17471
+ if (!force && snapshot.plugins[id]) return Promise.resolve(void 0);
17472
+ return load(`plugins:${id}`, () => snapshot.plugins[id], (entry) => publish({
17473
+ ...snapshot,
17474
+ plugins: {
17475
+ ...snapshot.plugins,
17476
+ [id]: entry
17477
+ }
17478
+ }), async (signal) => {
17479
+ const result = await api.pluginCatalog(id, signal);
17480
+ return Array.isArray(result) ? { data: result } : {
17481
+ data: result.plugins,
17482
+ warning: result.warning
17483
+ };
17484
+ });
17485
+ };
17486
+ return {
17487
+ subscribe: (listener) => {
17488
+ listeners.add(listener);
17489
+ return () => {
17490
+ listeners.delete(listener);
17491
+ };
17492
+ },
17493
+ getSnapshot: () => snapshot,
17494
+ start: () => {
17495
+ markets();
17496
+ },
17497
+ ensure: (id) => {
17498
+ plugins(id);
17499
+ },
17500
+ refresh: (id) => {
17501
+ if (disposed || snapshot.refresh?.status === "loading") return;
17502
+ const ids = new Set(Object.keys(snapshot.plugins));
17503
+ if (id) ids.add(id);
17504
+ publish({
17505
+ ...snapshot,
17506
+ refresh: { status: "loading" }
17507
+ });
17508
+ Promise.all([markets(true), ...[...ids].map((key) => plugins(key, true))]).then((results) => {
17509
+ const errors = [...new Set(results.filter((value) => value !== void 0))];
17510
+ publish({
17511
+ ...snapshot,
17512
+ refresh: errors.length ? {
17513
+ status: "error",
17514
+ error: errors.join("\n")
17515
+ } : { status: "ready" }
17516
+ });
17517
+ });
17518
+ },
17519
+ dispose: () => {
17520
+ disposed = true;
17521
+ controllers.forEach((controller) => controller.abort());
17522
+ controllers.clear();
17523
+ requests.clear();
17524
+ listeners.clear();
17525
+ }
17526
+ };
17527
+ }
17528
+ //#endregion
16995
17529
  //#region src/client/builtins/tabs.tsx
16996
17530
  /**
16997
17531
  * Lazy wrapper over the terminal view: xterm (and its stylesheet) is fetched
@@ -17015,8 +17549,9 @@ window.__ModuleLoader__.load({
17015
17549
  function uiTerminalCount(state) {
17016
17550
  return allLeaves(state.splits).flatMap((leaf) => leaf.tabs).filter((tab) => tab.type === "terminal" && !isAgentTabId(tab.id)).length;
17017
17551
  }
17018
- /** The 5 built-in tab descriptors. */
17552
+ /** The 6 built-in tab descriptors. */
17019
17553
  function builtinTabs(ctx, options = {}) {
17554
+ const pluginMarketCatalog = options.pluginMarketCatalog ?? createPluginMarketCatalog();
17020
17555
  return [
17021
17556
  {
17022
17557
  id: "editor",
@@ -17188,6 +17723,18 @@ window.__ModuleLoader__.load({
17188
17723
  }),
17189
17724
  component: (props) => /* @__PURE__ */ (0, react_jsx_runtime.jsx)(BrowserView, { ...props })
17190
17725
  },
17726
+ {
17727
+ id: "plugin-market",
17728
+ title: () => t("pluginMarketTitle"),
17729
+ icon: (size) => /* @__PURE__ */ (0, react_jsx_runtime.jsx)(IconGlobeOutline16, { size }),
17730
+ order: 60,
17731
+ single: true,
17732
+ component: ({ scope, visible }) => /* @__PURE__ */ (0, react_jsx_runtime.jsx)(PluginMarketView, {
17733
+ scope,
17734
+ visible,
17735
+ catalog: pluginMarketCatalog
17736
+ })
17737
+ },
17191
17738
  {
17192
17739
  id: "diff",
17193
17740
  title: () => t("git"),
@@ -21730,21 +22277,21 @@ window.__ModuleLoader__.load({
21730
22277
  document.head.appendChild(tag);
21731
22278
  }
21732
22279
  var CodingPlanModelsSettings_module_css_default = {
21733
- "description": "kn_HcG_description",
22280
+ "status": "kn_HcG_status",
21734
22281
  "modelId": "kn_HcG_modelId",
21735
- "selected": "kn_HcG_selected",
21736
22282
  "group": "kn_HcG_group",
21737
- "refresh": "kn_HcG_refresh",
21738
- "modelSelected": "kn_HcG_modelSelected",
21739
- "headingRow": "kn_HcG_headingRow",
21740
- "heading": "kn_HcG_heading",
21741
- "model": "kn_HcG_model",
21742
- "modelName": "kn_HcG_modelName",
22283
+ "description": "kn_HcG_description",
21743
22284
  "models": "kn_HcG_models",
21744
- "status": "kn_HcG_status",
22285
+ "heading": "kn_HcG_heading",
21745
22286
  "modelTop": "kn_HcG_modelTop",
22287
+ "modelSelected": "kn_HcG_modelSelected",
22288
+ "model": "kn_HcG_model",
22289
+ "headingRow": "kn_HcG_headingRow",
21746
22290
  "meta": "kn_HcG_meta",
21747
- "modelDescription": "kn_HcG_modelDescription"
22291
+ "refresh": "kn_HcG_refresh",
22292
+ "modelDescription": "kn_HcG_modelDescription",
22293
+ "modelName": "kn_HcG_modelName",
22294
+ "selected": "kn_HcG_selected"
21748
22295
  };
21749
22296
  //#endregion
21750
22297
  //#region src/client/CodingPlanModelsSettings.tsx
@@ -22913,48 +23460,48 @@ window.__ModuleLoader__.load({
22913
23460
  document.head.appendChild(tag);
22914
23461
  }
22915
23462
  var UsageHeatmapSection_module_css_default = {
22916
- "todayLabel": "iUwB6a_todayLabel",
22917
- "total": "iUwB6a_total",
22918
- "tooltipDate": "iUwB6a_tooltipDate",
22919
- "overview": "iUwB6a_overview",
22920
- "todayDot": "iUwB6a_todayDot",
22921
- "legend": "iUwB6a_legend",
22922
- "tooltipToday": "iUwB6a_tooltipToday",
23463
+ "cellToday": "iUwB6a_cellToday",
23464
+ "cell": "iUwB6a_cell",
22923
23465
  "gridBody": "iUwB6a_gridBody",
22924
- "spin": "iUwB6a_spin",
22925
- "statValue": "iUwB6a_statValue",
22926
- "statLabel": "iUwB6a_statLabel",
23466
+ "tooltipSplit": "iUwB6a_tooltipSplit",
23467
+ "empty": "iUwB6a_empty",
23468
+ "stateError": "iUwB6a_stateError",
23469
+ "monthNav": "iUwB6a_monthNav",
23470
+ "tooltip": "iUwB6a_tooltip",
22927
23471
  "totalNumber": "iUwB6a_totalNumber",
23472
+ "weekdays": "iUwB6a_weekdays",
23473
+ "todayDot": "iUwB6a_todayDot",
23474
+ "dshSidebarUsageSpin": "iUwB6a_dshSidebarUsageSpin",
22928
23475
  "totalValue": "iUwB6a_totalValue",
22929
- "grid": "iUwB6a_grid",
22930
- "legendSwatch": "iUwB6a_legendSwatch",
22931
- "tooltip": "iUwB6a_tooltip",
22932
- "refreshButton": "iUwB6a_refreshButton",
22933
- "monthButton": "iUwB6a_monthButton",
22934
23476
  "cellFuture": "iUwB6a_cellFuture",
23477
+ "grid": "iUwB6a_grid",
23478
+ "state": "iUwB6a_state",
22935
23479
  "headerRow": "iUwB6a_headerRow",
22936
- "totalUnit": "iUwB6a_totalUnit",
22937
- "tooltipSplit": "iUwB6a_tooltipSplit",
23480
+ "monthButton": "iUwB6a_monthButton",
22938
23481
  "cellHover": "iUwB6a_cellHover",
22939
- "empty": "iUwB6a_empty",
23482
+ "monthLabel": "iUwB6a_monthLabel",
23483
+ "overview": "iUwB6a_overview",
23484
+ "tooltipToday": "iUwB6a_tooltipToday",
23485
+ "cellTokens": "iUwB6a_cellTokens",
23486
+ "legend": "iUwB6a_legend",
23487
+ "group": "iUwB6a_group",
22940
23488
  "footer": "iUwB6a_footer",
22941
- "stat": "iUwB6a_stat",
22942
- "tooltipBelow": "iUwB6a_tooltipBelow",
22943
23489
  "retry": "iUwB6a_retry",
22944
- "dshSidebarUsageSpin": "iUwB6a_dshSidebarUsageSpin",
22945
- "cellTokens": "iUwB6a_cellTokens",
22946
- "weekdays": "iUwB6a_weekdays",
22947
- "cellToday": "iUwB6a_cellToday",
22948
- "tooltipTokens": "iUwB6a_tooltipTokens",
22949
- "monthLabel": "iUwB6a_monthLabel",
23490
+ "total": "iUwB6a_total",
23491
+ "refreshButton": "iUwB6a_refreshButton",
23492
+ "todayLabel": "iUwB6a_todayLabel",
23493
+ "statValue": "iUwB6a_statValue",
23494
+ "legendSwatch": "iUwB6a_legendSwatch",
23495
+ "section": "iUwB6a_section",
22950
23496
  "stats": "iUwB6a_stats",
23497
+ "statLabel": "iUwB6a_statLabel",
23498
+ "tooltipTokens": "iUwB6a_tooltipTokens",
22951
23499
  "cellDay": "iUwB6a_cellDay",
22952
- "cell": "iUwB6a_cell",
22953
- "stateError": "iUwB6a_stateError",
22954
- "section": "iUwB6a_section",
22955
- "group": "iUwB6a_group",
22956
- "monthNav": "iUwB6a_monthNav",
22957
- "state": "iUwB6a_state"
23500
+ "tooltipBelow": "iUwB6a_tooltipBelow",
23501
+ "stat": "iUwB6a_stat",
23502
+ "totalUnit": "iUwB6a_totalUnit",
23503
+ "tooltipDate": "iUwB6a_tooltipDate",
23504
+ "spin": "iUwB6a_spin"
22958
23505
  };
22959
23506
  //#endregion
22960
23507
  //#region src/client/UsageHeatmapSection.tsx
@@ -23330,34 +23877,34 @@ window.__ModuleLoader__.load({
23330
23877
  document.head.appendChild(tag);
23331
23878
  }
23332
23879
  var AiRatioSection_module_css_default = {
23333
- "queryRow": "JtMahq_queryRow",
23334
- "stateError": "JtMahq_stateError",
23335
- "overview": "JtMahq_overview",
23336
- "card": "JtMahq_card",
23337
- "addedValue": "JtMahq_addedValue",
23880
+ "dateCell": "JtMahq_dateCell",
23881
+ "pager": "JtMahq_pager",
23882
+ "section": "JtMahq_section",
23883
+ "tableHeading": "JtMahq_tableHeading",
23338
23884
  "dash": "JtMahq_dash",
23339
- "exportButton": "JtMahq_exportButton",
23885
+ "card": "JtMahq_card",
23886
+ "adoptedValue": "JtMahq_adoptedValue",
23340
23887
  "ratioCardHigh": "JtMahq_ratioCardHigh",
23341
- "cardRatio": "JtMahq_cardRatio",
23342
23888
  "ratioCardLow": "JtMahq_ratioCardLow",
23343
- "primaryButton": "JtMahq_primaryButton",
23344
- "tableHeading": "JtMahq_tableHeading",
23889
+ "state": "JtMahq_state",
23890
+ "stateError": "JtMahq_stateError",
23891
+ "num": "JtMahq_num",
23345
23892
  "ratioBar": "JtMahq_ratioBar",
23346
- "cardValue": "JtMahq_cardValue",
23347
- "adoptedValue": "JtMahq_adoptedValue",
23893
+ "pageInfo": "JtMahq_pageInfo",
23894
+ "queryRow": "JtMahq_queryRow",
23895
+ "addedValue": "JtMahq_addedValue",
23896
+ "ratioValue": "JtMahq_ratioValue",
23348
23897
  "dateInput": "JtMahq_dateInput",
23898
+ "exportButton": "JtMahq_exportButton",
23899
+ "cardValue": "JtMahq_cardValue",
23900
+ "cardRatio": "JtMahq_cardRatio",
23901
+ "primaryButton": "JtMahq_primaryButton",
23349
23902
  "cardLabel": "JtMahq_cardLabel",
23350
- "commitsValue": "JtMahq_commitsValue",
23351
- "ratioValue": "JtMahq_ratioValue",
23352
- "pageInfo": "JtMahq_pageInfo",
23353
- "tableWrap": "JtMahq_tableWrap",
23354
23903
  "table": "JtMahq_table",
23355
- "section": "JtMahq_section",
23904
+ "overview": "JtMahq_overview",
23356
23905
  "aiValue": "JtMahq_aiValue",
23357
- "pager": "JtMahq_pager",
23358
- "state": "JtMahq_state",
23359
- "num": "JtMahq_num",
23360
- "dateCell": "JtMahq_dateCell"
23906
+ "commitsValue": "JtMahq_commitsValue",
23907
+ "tableWrap": "JtMahq_tableWrap"
23361
23908
  };
23362
23909
  //#endregion
23363
23910
  //#region src/client/AiRatioSection.tsx
@@ -23954,6 +24501,77 @@ window.__ModuleLoader__.load({
23954
24501
  });
23955
24502
  }
23956
24503
  //#endregion
24504
+ //#region src/client/PluginMarketSettingsSection.tsx
24505
+ /** Replace the product's market settings seat through the public slot API. */
24506
+ function PluginMarketSettingsSection({ ctx, catalog }) {
24507
+ const sessionId = useCurrentSessionId(ctx) ?? "";
24508
+ const sessions = (0, react.useSyncExternalStore)((0, react.useCallback)((listener) => ctx.sessions.list.subscribe(listener), [ctx]), (0, react.useCallback)(() => ctx.sessions.list.getSnapshot(), [ctx]));
24509
+ (0, react.useSyncExternalStore)((0, react.useCallback)((listener) => ctx.locale.subscribe(listener), [ctx]), (0, react.useCallback)(() => ctx.locale.getSnapshot(), [ctx]));
24510
+ const cwd = sessions.byId[sessionId]?.cwd;
24511
+ const key = `${sessionId}\0${cwd ?? ""}`;
24512
+ const [context, setContext] = (0, react.useState)();
24513
+ const [error, setError] = (0, react.useState)("");
24514
+ const [revision, setRevision] = (0, react.useState)(0);
24515
+ (0, react.useEffect)(() => {
24516
+ const controller = new AbortController();
24517
+ let active = true;
24518
+ setError("");
24519
+ api.pluginMarketContext({
24520
+ sessionId,
24521
+ cwd
24522
+ }, controller.signal).then((scope) => {
24523
+ if (active) setContext({
24524
+ key,
24525
+ scope
24526
+ });
24527
+ }).catch((cause) => {
24528
+ if (active) setError(cause instanceof Error ? cause.message : String(cause));
24529
+ });
24530
+ return () => {
24531
+ active = false;
24532
+ controller.abort();
24533
+ };
24534
+ }, [
24535
+ sessionId,
24536
+ cwd,
24537
+ revision
24538
+ ]);
24539
+ return /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
24540
+ "data-chatcode-plugin-market-settings": true,
24541
+ children: context?.key === key ? /* @__PURE__ */ (0, react_jsx_runtime.jsx)(PluginMarketView, {
24542
+ scope: context.scope,
24543
+ catalog,
24544
+ visible: true
24545
+ }, key) : error ? /* @__PURE__ */ (0, react_jsx_runtime.jsxs)(react_jsx_runtime.Fragment, { children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)("p", {
24546
+ role: "status",
24547
+ children: error
24548
+ }), /* @__PURE__ */ (0, react_jsx_runtime.jsx)("button", {
24549
+ type: "button",
24550
+ onClick: () => setRevision((value) => value + 1),
24551
+ children: t("pluginMarketRefresh")
24552
+ })] }) : /* @__PURE__ */ (0, react_jsx_runtime.jsx)("p", {
24553
+ role: "status",
24554
+ children: t("pluginMarketLoading")
24555
+ })
24556
+ });
24557
+ }
24558
+ function registerPluginMarketSettings(ctx, catalog) {
24559
+ ctx.slots.inject("settings.section", () => ctx.slots.register({
24560
+ name: "settings.section",
24561
+ id: "market",
24562
+ order: 40,
24563
+ priority: -10,
24564
+ label: () => t("pluginMarketTitle"),
24565
+ inject: () => ({
24566
+ ctx,
24567
+ catalog
24568
+ })
24569
+ }, ({ ctx, catalog }) => /* @__PURE__ */ (0, react_jsx_runtime.jsx)(RenderBoundary, { children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(PluginMarketSettingsSection, {
24570
+ ctx,
24571
+ catalog
24572
+ }) })));
24573
+ }
24574
+ //#endregion
23957
24575
  //#region \0dsh-css:/Users/shiguifeng/IdeaProjects/chonggou/DSH-better-sidebar/src/client/layout.css.mjs
23958
24576
  const css = "/**\n * Layout push: when a panel is open it OCCUPIES the layout instead of\n * floating over it — the app shell (#root, the AppFrame three-column grid)\n * gives up space. Only the center column is flexible (1fr), so the right\n * panel's width squeeze (margin-right on #root) lands exactly on the\n * conversation output and the input bar, like a VSCode sidebar.\n *\n * The width rides `calc(100% - var(...))` instead of a bare margin on a\n * full-width box: some desktop shells (DSH Desktop, #208) set #root to\n * width:100%, where a margin would overflow the viewport additively —\n * the calc keeps the box at exactly 100% minus the push in every shell.\n * Width and margin transition in lockstep (same variable, same duration\n * and easing), so expand/collapse animates the content width exactly as\n * the bare-margin version did.\n *\n * The bottom panel squeezes ONLY the center column — it must not cover the\n * app's own left sidebar or the right panel. The anchor is the frame's\n * center grid item through stable slot/data attributes, not a positional\n * path: current hosts put [data-slot=\"main\"] directly inside the center\n * column, while earlier hosts exposed [data-pane=\"conversation\"] or a\n * [data-slot=\"conversation\"] child. A stretched grid item shrinks by its\n * margins, so the conversation content (output + input bar) lifts without\n * touching the sidebars.\n *\n * The sizes ride CSS variables updated by the Sidebar shell (0 while\n * collapsed); expand/collapse animates both the margins and the panel\n * slides on the same theme duration. Drags disable the transition so the\n * layout tracks the pointer.\n */\n#root {\n margin-right: var(--dsh-sidebar-width, 0px);\n width: calc(100% - var(--dsh-sidebar-width, 0px));\n transition:\n margin-right var(--ds-transition-duration-slow) var(--ds-ease-in-out),\n width var(--ds-transition-duration-slow) var(--ds-ease-in-out);\n}\n\n/* The AppFrame's center column, anchored by data attributes (see above).\n Composite selector: current DSH puts `[data-slot=\"main\"]` directly inside\n the center grid item; earlier shells name the item\n `[data-pane=\"conversation\"]` or put `[data-slot=\"conversation\"]` inside it.\n Every selector resolves to that same center element. */\n#root :has(> [data-slot=\"main\"]),\n#root [data-dsh-frame] > [data-pane=\"conversation\"],\n#root :has(> [data-slot=\"conversation\"]) {\n margin-bottom: var(--dsh-sidebar-height, 0px);\n /* Grid/flex items default to min-height:auto. A long unbreakable token\n (OAuth URL) then grows this column past the viewport and clips the\n composer + left-rail Settings row. min-height:0 lets the cell shrink;\n overflow-wrap lets the token wrap instead of forcing its intrinsic\n size. The host's own descendants remain responsible for scrolling. */\n min-height: 0;\n overflow-wrap: anywhere;\n transition: margin-bottom var(--ds-transition-duration-slow) var(--ds-ease-in-out);\n}\n\n/* On older hosts, a collapsed sidebar puts the fallback cluster in the\n top-right corner. Push the DSH session header's right padding out so its\n utilities yield instead of hiding under the cluster. Current DSH hosts put\n the controls directly beside the Session log action and set\n data-dsh-native-sidebar-toggle, so this rule stays inactive. The Sidebar\n shell publishes the required reserve; 188px is the older-host fallback. Anchor on\n the header's slot host wrapper ([data-slot=\"conversation.session.header\"])\n rather than a positional path: DSH 0.1.x nests the header several levels\n under the center column. The Sidebar shell toggles the body attributes with\n the host capability and panel open state. */\nbody[data-dsh-sidebar-collapsed]:not([data-dsh-native-sidebar-toggle]) [data-slot=\"conversation.session.header\"] > header {\n padding-right: var(--dsh-sidebar-toggle-reserve, 188px);\n}\n\nbody[data-dsh-sidebar-dragging] #root,\nbody[data-dsh-sidebar-dragging] #root :has(> [data-slot=\"main\"]),\nbody[data-dsh-sidebar-dragging] #root [data-dsh-frame] > [data-pane=\"conversation\"],\nbody[data-dsh-sidebar-dragging] #root :has(> [data-slot=\"conversation\"]) {\n transition: none;\n}\n\n/* DSH 0.1.x gives external settings sections a generic gear and exposes no\n icon field in the settings.section contract. settings-nav-icon.ts marks\n only this plugin's localized row; render the requested Lucide\n gallery-horizontal-end SVG as a currentColor mask so it follows the native\n nav hover/active colors without changing the shell's 16px icon rhythm. */\n[data-dsh-better-sidebar-settings-nav] > svg:first-child {\n display: none;\n}\n\n[data-dsh-better-sidebar-settings-nav]::before {\n content: '';\n flex: none;\n width: 16px;\n height: 16px;\n background: currentColor;\n -webkit-mask: url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M2 7v10'/%3E%3Cpath d='M6 5v14'/%3E%3Crect width='12' height='18' x='10' y='3' rx='2'/%3E%3C/svg%3E\") center / contain no-repeat;\n mask: url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M2 7v10'/%3E%3Cpath d='M6 5v14'/%3E%3Crect width='12' height='18' x='10' y='3' rx='2'/%3E%3C/svg%3E\") center / contain no-repeat;\n}\n\n/* Some host/plugin settings rows receive their SVG only after the global\n plugin group is expanded. Paint stable fallbacks immediately so the nav\n never opens with blank icon slots; a late host SVG is hidden to avoid a\n duplicate. */\n[data-dsh-better-sidebar-general-nav] > svg:first-child,\n[data-dsh-better-sidebar-plugin-market-nav] > svg:first-child,\n[data-dsh-better-sidebar-ui-tweaks-nav] > svg:first-child,\n[data-dsh-better-sidebar-skill-market-nav] > svg:first-child {\n display: none;\n}\n\n[data-dsh-better-sidebar-general-nav]::before,\n[data-dsh-better-sidebar-plugin-market-nav]::before,\n[data-dsh-better-sidebar-ui-tweaks-nav]::before,\n[data-dsh-better-sidebar-skill-market-nav]::before {\n content: '';\n flex: none;\n width: 16px;\n height: 16px;\n background: currentColor;\n}\n\n[data-dsh-better-sidebar-general-nav]::before {\n -webkit-mask: url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round'%3E%3Ccircle cx='12' cy='12' r='3'/%3E%3Cpath d='M12 2v3M12 19v3M2 12h3M19 12h3M4.9 4.9 7 7M17 17l2.1 2.1M19.1 4.9 17 7M7 17l-2.1 2.1'/%3E%3C/svg%3E\") center / contain no-repeat;\n mask: url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round'%3E%3Ccircle cx='12' cy='12' r='3'/%3E%3Cpath d='M12 2v3M12 19v3M2 12h3M19 12h3M4.9 4.9 7 7M17 17l2.1 2.1M19.1 4.9 17 7M7 17l-2.1 2.1'/%3E%3C/svg%3E\") center / contain no-repeat;\n}\n\n[data-dsh-better-sidebar-plugin-market-nav]::before {\n -webkit-mask: url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linejoin='round'%3E%3Crect x='3' y='3' width='7' height='7' rx='1'/%3E%3Crect x='14' y='3' width='7' height='7' rx='1'/%3E%3Crect x='3' y='14' width='7' height='7' rx='1'/%3E%3Crect x='14' y='14' width='7' height='7' rx='1'/%3E%3C/svg%3E\") center / contain no-repeat;\n mask: url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linejoin='round'%3E%3Crect x='3' y='3' width='7' height='7' rx='1'/%3E%3Crect x='14' y='3' width='7' height='7' rx='1'/%3E%3Crect x='3' y='14' width='7' height='7' rx='1'/%3E%3Crect x='14' y='14' width='7' height='7' rx='1'/%3E%3C/svg%3E\") center / contain no-repeat;\n}\n\n[data-dsh-better-sidebar-ui-tweaks-nav]::before {\n -webkit-mask: url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round'%3E%3Cpath d='M4 21v-7M4 10V3M12 21v-9M12 8V3M20 21v-5M20 12V3M1 14h6M9 8h6M17 16h6'/%3E%3C/svg%3E\") center / contain no-repeat;\n mask: url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round'%3E%3Cpath d='M4 21v-7M4 10V3M12 21v-9M12 8V3M20 21v-5M20 12V3M1 14h6M9 8h6M17 16h6'/%3E%3C/svg%3E\") center / contain no-repeat;\n}\n\n[data-dsh-better-sidebar-skill-market-nav]::before {\n -webkit-mask: url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m12 3-1.7 4.3L6 9l4.3 1.7L12 15l1.7-4.3L18 9l-4.3-1.7Z'/%3E%3Cpath d='m5 15-.8 2.2L2 18l2.2.8L5 21l.8-2.2L8 18l-2.2-.8Z'/%3E%3Cpath d='m19 14-1 2.5-2.5 1L18 18.5l1 2.5 1-2.5 2.5-1-2.5-1Z'/%3E%3C/svg%3E\") center / contain no-repeat;\n mask: url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m12 3-1.7 4.3L6 9l4.3 1.7L12 15l1.7-4.3L18 9l-4.3-1.7Z'/%3E%3Cpath d='m5 15-.8 2.2L2 18l2.2.8L5 21l.8-2.2L8 18l-2.2-.8Z'/%3E%3Cpath d='m19 14-1 2.5-2.5 1L18 18.5l1 2.5 1-2.5 2.5-1-2.5-1Z'/%3E%3C/svg%3E\") center / contain no-repeat;\n}\n\n/* The \"Token 用量\" heatmap section's nav row: same marker scheme as above,\n painting a calendar glyph (Lucide calendar-days) — a month of days is the\n section's whole subject. */\n[data-dsh-better-sidebar-usage-nav] > svg:first-child {\n display: none;\n}\n\n[data-dsh-better-sidebar-usage-nav]::before {\n content: '';\n flex: none;\n width: 16px;\n height: 16px;\n background: currentColor;\n -webkit-mask: url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect width='18' height='18' x='3' y='4' rx='2'/%3E%3Cpath d='M16 2v4'/%3E%3Cpath d='M8 2v4'/%3E%3Cpath d='M3 10h18'/%3E%3Cpath d='M8 14h.01'/%3E%3Cpath d='M12 14h.01'/%3E%3Cpath d='M16 14h.01'/%3E%3Cpath d='M8 18h.01'/%3E%3Cpath d='M12 18h.01'/%3E%3Cpath d='M16 18h.01'/%3E%3C/svg%3E\") center / contain no-repeat;\n mask: url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect width='18' height='18' x='3' y='4' rx='2'/%3E%3Cpath d='M16 2v4'/%3E%3Cpath d='M8 2v4'/%3E%3Cpath d='M3 10h18'/%3E%3Cpath d='M8 14h.01'/%3E%3Cpath d='M12 14h.01'/%3E%3Cpath d='M16 14h.01'/%3E%3Cpath d='M8 18h.01'/%3E%3Cpath d='M12 18h.01'/%3E%3Cpath d='M16 18h.01'/%3E%3C/svg%3E\") center / contain no-repeat;\n}\n\n[data-dsh-better-sidebar-ai-ratio-nav] > svg:first-child {\n display: none;\n}\n\n[data-dsh-better-sidebar-ai-ratio-nav]::before {\n content: '';\n flex: none;\n width: 16px;\n height: 16px;\n background: currentColor;\n -webkit-mask: url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='none'%3E%3Cpath d='M2.25 13.75h11.5M4.5 13.75v-3.5M7.5 13.75v-6.5M10.5 13.75v-4.5' stroke='black' stroke-width='1.5' stroke-linecap='round'/%3E%3Cpath d='M13 .9l.5 1.6 1.6.5-1.6.5-.5 1.6-.5-1.6-1.6-.5 1.6-.5z' fill='black'/%3E%3C/svg%3E\") center / contain no-repeat;\n mask: url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='none'%3E%3Cpath d='M2.25 13.75h11.5M4.5 13.75v-3.5M7.5 13.75v-6.5M10.5 13.75v-4.5' stroke='black' stroke-width='1.5' stroke-linecap='round'/%3E%3Cpath d='M13 .9l.5 1.6 1.6.5-1.6.5-.5 1.6-.5-1.6-1.6-.5 1.6-.5z' fill='black'/%3E%3C/svg%3E\") center / contain no-repeat;\n}\n\n/* The \"更新\" section's nav row: same marker scheme, painting an upward\n arrow (Lucide arrow-up) — an upgrade/one-click-update is the section's\n whole purpose. */\n[data-dsh-better-sidebar-update-nav] > svg:first-child {\n display: none;\n}\n\n[data-dsh-better-sidebar-update-nav]::before {\n content: '';\n flex: none;\n width: 16px;\n height: 16px;\n background: currentColor;\n -webkit-mask: url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m5 12 7-7 7 7'/%3E%3Cpath d='M12 19V5'/%3E%3C/svg%3E\") center / contain no-repeat;\n mask: url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m5 12 7-7 7 7'/%3E%3Cpath d='M12 19V5'/%3E%3C/svg%3E\") center / contain no-repeat;\n}\n\n@media (prefers-reduced-motion: reduce) {\n #root,\n #root :has(> [data-slot=\"main\"]),\n #root [data-dsh-frame] > [data-pane=\"conversation\"],\n #root :has(> [data-slot=\"conversation\"]) {\n transition: none;\n }\n}\n\n[data-dsh-hidden-runtime-context] {\n display: none !important;\n}\n";
23959
24577
  const tagId = "@chatcode/cco-better-sidebar/layout.css";
@@ -28537,6 +29155,8 @@ to{transform:translateX(-8px)}
28537
29155
  const HERO_TITLE = "与世界,深一度对话";
28538
29156
  const LEGACY_HOST_BRAND_TEXT = /DSH\s*(?:Local\s*Build|本地构建)|DeepSeek\s*Harness|ChatCode\s*CLI/giu;
28539
29157
  const LEGACY_HOST_BRAND_LABEL_TEXT = /^(?:DSH\s*(?:Local\s*Build|本地构建)|ChatCode\s*CLI)$/iu;
29158
+ const BRAND_SURFACE = "[class*=\"brandIdentity\"],[class*=\"brandName\"],[class*=\"headline\"],.dut-sidebar-brand-name";
29159
+ const USER_CONTENT = "input,textarea,[contenteditable],[role=\"textbox\"],pre,code,script,style";
28540
29160
  const HOST_BUILD_VERSION_TEXT = /^v?\d+\.\d+\.\d+(?:[-+][0-9a-z.-]+)*$/iu;
28541
29161
  const HERO_HEADLINE = /探索未至之境/u;
28542
29162
  const HERO_PREVIEW_TEXT = /^(?:预览版|Preview)$/iu;
@@ -28619,6 +29239,7 @@ body[data-ds-dark-theme] .dut-unicom-primary-action:not(:hover){background:#9B0B
28619
29239
  .dut-settings-logo{width:19px;height:19px;object-fit:contain}
28620
29240
  `;
28621
29241
  function hasPrimaryLabel(button) {
29242
+ if (button.closest("[data-chatcode-plugin-market], [data-plugin-module]")) return false;
28622
29243
  const label = `${button.textContent ?? ""} ${button.getAttribute("aria-label") ?? ""} ${button.title}`.trim().toLowerCase();
28623
29244
  return /(?:^|\s)(new session|send|install)(?:\s|$)|新会话|发送|(?:^|\s)安装(?:\s|$)/u.test(label);
28624
29245
  }
@@ -28687,17 +29308,21 @@ body[data-ds-dark-theme] .dut-unicom-primary-action:not(:hover){background:#9B0B
28687
29308
  badge.classList.add("dut-hero-preview");
28688
29309
  badge.setAttribute("aria-hidden", "true");
28689
29310
  });
28690
- document.querySelectorAll("body *").forEach((element) => {
28691
- if (element.childElementCount !== 0 || !LEGACY_HOST_BRAND_LABEL_TEXT.test(element.textContent?.trim() ?? "")) return;
28692
- if (element.textContent !== PROJECT_NAME) element.textContent = PROJECT_NAME;
28693
- element.classList.add("dut-brand-title");
28694
- replaceLogoBesideBrandLabel(element);
28695
- hideVersionBesideBrandLabel(element);
29311
+ document.querySelectorAll(BRAND_SURFACE).forEach((surface) => {
29312
+ surface.querySelectorAll("*").forEach((element) => {
29313
+ if (element.closest(USER_CONTENT) !== null) return;
29314
+ if (element.childElementCount !== 0 || !LEGACY_HOST_BRAND_LABEL_TEXT.test(element.textContent?.trim() ?? "")) return;
29315
+ if (element.textContent !== PROJECT_NAME) element.textContent = PROJECT_NAME;
29316
+ element.classList.add("dut-brand-title");
29317
+ replaceLogoBesideBrandLabel(element);
29318
+ hideVersionBesideBrandLabel(element);
29319
+ });
28696
29320
  });
28697
29321
  const walker = document.createTreeWalker(document.body, NodeFilter.SHOW_TEXT);
28698
29322
  let node;
28699
29323
  while ((node = walker.nextNode()) !== null) {
28700
- if (node.parentElement?.closest("script,style") !== null) continue;
29324
+ const parent = node.parentElement;
29325
+ if (parent === null || parent.closest(USER_CONTENT) !== null || parent.closest(BRAND_SURFACE) === null) continue;
28701
29326
  if (LEGACY_HOST_BRAND_TEXT.test(node.data)) {
28702
29327
  LEGACY_HOST_BRAND_TEXT.lastIndex = 0;
28703
29328
  node.data = node.data.replace(LEGACY_HOST_BRAND_TEXT, PROJECT_NAME);
@@ -28766,6 +29391,44 @@ body[data-ds-dark-theme] .dut-unicom-primary-action:not(:hover){background:#9B0B
28766
29391
  };
28767
29392
  }
28768
29393
  //#endregion
29394
+ //#region src/client/ui-tweaks/typography.ts
29395
+ /** Font overrides for the conversation, preserving the live theme families. */
29396
+ /**
29397
+ * Apply the UI Tweaks size and spacing preferences to the host's prose tokens.
29398
+ * @param fontSize - Selected body size in pixels.
29399
+ * @param lineHeight - Vertical-spacing unit; 16 retains the normal rhythm.
29400
+ * @param codeFontSize - Selected code-block size in pixels.
29401
+ * @returns Theme-token overrides for a runtime stylesheet.
29402
+ */
29403
+ function buildFontCss(fontSize, lineHeight, codeFontSize) {
29404
+ const parts = [];
29405
+ const base = "var(--dsw-font-markdown-base-font-family, var(--dsw-font-family))";
29406
+ const code = "var(--dsw-font-markdown-code-block-font-family, var(--ds-font-family-code))";
29407
+ const token = (name, size, leading, family, weight = 400, style = "normal") => {
29408
+ const line = Math.max(12, Math.round(leading * (lineHeight / 16)));
29409
+ parts.push(`--${name}:${style} ${weight} ${size}px/${line}px ${family}`);
29410
+ parts.push(`--${name}-font-size:${size}px`);
29411
+ parts.push(`--${name}-line-height:${line}px`);
29412
+ parts.push(`--${name}-font-weight:${weight}`);
29413
+ parts.push(`--${name}-font-style:${style}`);
29414
+ };
29415
+ const bodyLine = fontSize + 10;
29416
+ token("dsw-font-markdown-base", fontSize, bodyLine, base);
29417
+ token("dsw-font-markdown-base-strong", fontSize, bodyLine, base, 600);
29418
+ token("dsw-font-markdown-base-italic", fontSize, bodyLine, base, 400, "italic");
29419
+ token("dsw-font-markdown-base-strong-italic", fontSize, bodyLine, base, 600, "italic");
29420
+ token("dsw-font-markdown-h1", fontSize + 4, bodyLine + 4, base, 600);
29421
+ token("dsw-font-markdown-h2", fontSize + 2, bodyLine + 2, base, 600);
29422
+ token("dsw-font-markdown-h3", fontSize + 1, bodyLine + 1, base, 600);
29423
+ token("dsw-font-markdown-h4", fontSize, bodyLine, base, 600);
29424
+ token("dsw-font-markdown-table", fontSize, bodyLine, base);
29425
+ token("dsw-font-markdown-table-head", fontSize, bodyLine, base, 500);
29426
+ token("dsw-font-markdown-code", codeFontSize, codeFontSize + 7, "var(--dsw-font-markdown-code-font-family, var(--ds-font-family-code))");
29427
+ token("dsw-font-markdown-code-block", codeFontSize, codeFontSize + 7, code);
29428
+ token("dsw-font-markdown-code-block-small", Math.max(8, codeFontSize - 2), codeFontSize + 3, code);
29429
+ return `body{${parts.join(";")}}`;
29430
+ }
29431
+ //#endregion
28769
29432
  //#region src/client/ui-tweaks/index.tsx
28770
29433
  /**
28771
29434
  * dsh-ui-tweaks — browser half.
@@ -28777,12 +29440,12 @@ body[data-ds-dark-theme] .dut-unicom-primary-action:not(:hover){background:#9B0B
28777
29440
  */
28778
29441
  const NS = "ui-tweaks";
28779
29442
  const SETTINGS_ROUTE = "/_dsh/ui-tweaks/settings";
28780
- const DEFAULT_FONT_SIZE = 16;
29443
+ const DEFAULT_FONT_SIZE = 14;
28781
29444
  const MIN_FONT_SIZE = 10;
28782
29445
  const MAX_FONT_SIZE = 32;
28783
29446
  /** Legacy: code font as a percentage of the message font size (81% = stock 13/16). */
28784
29447
  const DEFAULT_CODE_FONT_SCALE = 81;
28785
- /** Absolute code font size (px): 13 matches the host default at a 16px body. */
29448
+ /** Default absolute code-block size, paired with 14px prose. */
28786
29449
  const DEFAULT_CODE_FONT_SIZE = 13;
28787
29450
  const MIN_CODE_FONT_SIZE = 8;
28788
29451
  const MAX_CODE_FONT_SIZE = 32;
@@ -28800,7 +29463,7 @@ body[data-ds-dark-theme] .dut-unicom-primary-action:not(:hover){background:#9B0B
28800
29463
  fontSize: "Message font size",
28801
29464
  fontSizeHint: `Number between ${MIN_FONT_SIZE} and ${MAX_FONT_SIZE}; applies to message text, headings, tables and code.`,
28802
29465
  codeFontSize: "Code font size",
28803
- codeFontSizeHint: `Absolute code size in px (${MIN_CODE_FONT_SIZE}–${MAX_CODE_FONT_SIZE}); ${DEFAULT_CODE_FONT_SIZE}px is ChatCode CLI's default at a 16px body. Applies to code blocks; inline code follows proportionally.`,
29466
+ codeFontSizeHint: `Absolute code size in px (${MIN_CODE_FONT_SIZE}–${MAX_CODE_FONT_SIZE}); ${DEFAULT_CODE_FONT_SIZE}px is ChatCode CLI's default at a 14px body. Applies to code blocks; inline code follows proportionally.`,
28804
29467
  lineHeight: "Line spacing",
28805
29468
  lineHeightHint: `Base vertical spacing in px: gaps between message rows (Think ↔ tool cards) and blocks inside one reply, plus text line-height, paragraph and list margins, all scale from it; ${DEFAULT_LINE_HEIGHT} is ChatCode CLI's default.`,
28806
29469
  tableStyle: "Table style",
@@ -28997,7 +29660,7 @@ body[data-ds-dark-theme] .dut-unicom-primary-action:not(:hover){background:#9B0B
28997
29660
  fontSize: "消息字体大小",
28998
29661
  fontSizeHint: `取值 ${MIN_FONT_SIZE}–${MAX_FONT_SIZE},作用于消息正文、标题、表格与代码。`,
28999
29662
  codeFontSize: "代码字号",
29000
- codeFontSizeHint: `代码绝对字号,取值 ${MIN_CODE_FONT_SIZE}–${MAX_CODE_FONT_SIZE}px;${DEFAULT_CODE_FONT_SIZE}px 为 ChatCode CLI 默认(正文 16 时)。作用于代码块,行内代码按比例跟随。`,
29663
+ codeFontSizeHint: `代码绝对字号,取值 ${MIN_CODE_FONT_SIZE}–${MAX_CODE_FONT_SIZE}px;${DEFAULT_CODE_FONT_SIZE}px 为 ChatCode CLI 默认(正文 14 时)。作用于代码块,行内代码按比例跟随。`,
29001
29664
  lineHeight: "行高",
29002
29665
  lineHeightHint: `回复区垂直间距的基准值:消息之间(如 Think ↔ 工具卡片)、回复内块之间、正文行高、段落与列表边距都按它缩放;取值 ${MIN_LINE_HEIGHT}–${MAX_LINE_HEIGHT}px,${DEFAULT_LINE_HEIGHT} 为 ChatCode CLI 默认。`,
29003
29666
  tableStyle: "表格样式",
@@ -29186,9 +29849,10 @@ body[data-ds-dark-theme] .dut-unicom-primary-action:not(:hover){background:#9B0B
29186
29849
  };
29187
29850
  function resolveValue(value) {
29188
29851
  const fontSize = typeof value?.fontSize === "number" ? value.fontSize : DEFAULT_FONT_SIZE;
29852
+ const codeFontScale = value?.codeFontScale ?? DEFAULT_CODE_FONT_SCALE;
29189
29853
  return {
29190
29854
  fontSize,
29191
- codeFontSize: typeof value?.codeFontSize === "number" ? Math.min(MAX_CODE_FONT_SIZE, Math.max(MIN_CODE_FONT_SIZE, value.codeFontSize)) : Math.max(8, Math.round(fontSize * (13 / 16) * ((value?.codeFontScale ?? DEFAULT_CODE_FONT_SCALE) / DEFAULT_CODE_FONT_SCALE))),
29855
+ codeFontSize: typeof value?.codeFontSize === "number" ? Math.min(MAX_CODE_FONT_SIZE, Math.max(MIN_CODE_FONT_SIZE, value.codeFontSize)) : codeFontScale === DEFAULT_CODE_FONT_SCALE ? DEFAULT_CODE_FONT_SIZE : Math.max(8, Math.round(fontSize * (13 / 16) * (codeFontScale / DEFAULT_CODE_FONT_SCALE))),
29192
29856
  lineHeight: typeof value?.lineHeight === "number" ? value.lineHeight : DEFAULT_LINE_HEIGHT,
29193
29857
  tableStyle: value?.tableStyle === "claude" ? "claude" : "default",
29194
29858
  gitBarEnabled: value?.gitBarEnabled ?? false,
@@ -29206,41 +29870,6 @@ body[data-ds-dark-theme] .dut-unicom-primary-action:not(:hover){background:#9B0B
29206
29870
  notifySound: value?.notifySound ?? false
29207
29871
  };
29208
29872
  }
29209
- /** Scale one theme px value proportionally to the chosen base size. */
29210
- function rel(base, fontSize) {
29211
- return Math.max(8, Math.round(base / DEFAULT_FONT_SIZE * fontSize));
29212
- }
29213
- /** Rebuild the markdown font tokens for the chosen base size, keeping the theme faces. */
29214
- function buildFontCss(fontSize, lineHeight, codeFontSize) {
29215
- const cs = getComputedStyle(document.body);
29216
- const fam = (name, fallback) => {
29217
- const value = cs.getPropertyValue(name).trim();
29218
- return value.length > 0 ? value : fallback;
29219
- };
29220
- const base = fam("--dsw-font-markdown-base-font-family", "-apple-system, BlinkMacSystemFont, \"Segoe UI\", sans-serif");
29221
- const code = fam("--dsw-font-markdown-code-font-family", "\"SF Mono\", Consolas, monospace");
29222
- const codeBlock = fam("--dsw-font-markdown-code-block-font-family", "\"SF Mono\", Consolas, monospace");
29223
- const parts = [];
29224
- const token = (shorthand, size, baseLine, family) => {
29225
- const line = Math.max(12, Math.round(baseLine / DEFAULT_FONT_SIZE * fontSize * (lineHeight / DEFAULT_LINE_HEIGHT)));
29226
- parts.push(`--${shorthand}:${size}px/${line}px ${family}`);
29227
- parts.push(`--${shorthand}-font-size:${size}px`);
29228
- parts.push(`--${shorthand}-line-height:${line}px`);
29229
- };
29230
- const codePx = (blockRatio) => Math.max(8, Math.round(codeFontSize * blockRatio));
29231
- token("dsw-font-markdown-base", fontSize, 28, base);
29232
- token("dsw-font-markdown-base-strong", fontSize, 28, base);
29233
- token("dsw-font-markdown-base-italic", fontSize, 28, base);
29234
- token("dsw-font-markdown-base-strong-italic", fontSize, 28, base);
29235
- token("dsw-font-markdown-h1", rel(24, fontSize), 34, base);
29236
- token("dsw-font-markdown-h2", rel(22, fontSize), 32, base);
29237
- token("dsw-font-markdown-h3", rel(20, fontSize), 30, base);
29238
- token("dsw-font-markdown-h4", fontSize, 28, base);
29239
- token("dsw-font-markdown-code", codePx(14 / 13), 22, code);
29240
- token("dsw-font-markdown-code-block", codePx(1), 22, codeBlock);
29241
- token("dsw-font-markdown-code-block-small", codePx(12 / 13), 18, codeBlock);
29242
- return `body{${parts.join(";")}}`;
29243
- }
29244
29873
  /**
29245
29874
  * Claude Desktop-ish markdown table look: light-gray rounded cell cards with
29246
29875
  * small gaps, no borders. Cells share the theme's inline-code background and
@@ -29248,7 +29877,7 @@ body[data-ds-dark-theme] .dut-unicom-primary-action:not(:hover){background:#9B0B
29248
29877
  * renderer, so headers and cells always match.
29249
29878
  */
29250
29879
  const CLAUDE_TABLE_CSS = `
29251
- div[data-slot="conversation.chat.node"] table{
29880
+ div[data-slot="conversation.chat.node"] [class*="_markdown"]:not([data-markdown-variant="compact"]) table{
29252
29881
  border-collapse:separate !important;
29253
29882
  border-spacing:3px !important;
29254
29883
  width:100% !important;
@@ -29259,7 +29888,7 @@ div[data-slot="conversation.chat.node"] table{
29259
29888
  border:none !important;
29260
29889
  font-size:var(--dsw-font-markdown-base-font-size) !important;
29261
29890
  }
29262
- div[data-slot="conversation.chat.node"] table thead th{
29891
+ div[data-slot="conversation.chat.node"] [class*="_markdown"]:not([data-markdown-variant="compact"]) table thead th{
29263
29892
  background:var(--dsw-alias-markdown-inline-code) !important;
29264
29893
  color:inherit !important;
29265
29894
  font-weight:400 !important;
@@ -29268,7 +29897,7 @@ div[data-slot="conversation.chat.node"] table thead th{
29268
29897
  border:none !important;
29269
29898
  border-radius:6px !important;
29270
29899
  }
29271
- div[data-slot="conversation.chat.node"] table tbody td{
29900
+ div[data-slot="conversation.chat.node"] [class*="_markdown"]:not([data-markdown-variant="compact"]) table tbody td{
29272
29901
  background:var(--dsw-alias-markdown-inline-code) !important;
29273
29902
  color:inherit !important;
29274
29903
  font-size:inherit !important;
@@ -29277,8 +29906,8 @@ div[data-slot="conversation.chat.node"] table tbody td{
29277
29906
  border:none !important;
29278
29907
  border-radius:6px !important;
29279
29908
  }
29280
- div[data-slot="conversation.chat.node"] table code,
29281
- div[data-slot="conversation.chat.node"] table pre{
29909
+ div[data-slot="conversation.chat.node"] [class*="_markdown"]:not([data-markdown-variant="compact"]) table code,
29910
+ div[data-slot="conversation.chat.node"] [class*="_markdown"]:not([data-markdown-variant="compact"]) table pre{
29282
29911
  background:transparent !important;
29283
29912
  border:none !important;
29284
29913
  box-shadow:none !important;
@@ -29287,24 +29916,23 @@ div[data-slot="conversation.chat.node"] table pre{
29287
29916
  function buildRuntimeCss(value) {
29288
29917
  const rules = [];
29289
29918
  rules.push(buildFontCss(value.fontSize, value.lineHeight, value.codeFontSize));
29290
- rules.push(`[data-chat-flow-kind="user"] [class^="_text_"],[data-chat-flow-kind="steering"] [class^="_text_"],[data-pending-steering] [class^="_text_"]{font-size:var(--dsw-font-markdown-base-font-size) !important}`);
29291
- rules.push(`[data-composer-card="true"] textarea,[data-composer-card="true"] [data-input-backdrop],[data-composer-card="true"] [data-input-mirror]{font-size:var(--dsw-font-markdown-base-font-size) !important}`);
29292
- rules.push(`[data-composer-card="true"] textarea::placeholder{font-size:var(--dsw-font-markdown-base-font-size) !important}`);
29293
- rules.push(`div[data-slot="conversation.chat.node"] table th,div[data-slot="conversation.chat.node"] table td{font-size:var(--dsw-font-markdown-base-font-size) !important}`);
29294
- const stockCodeBlock = value.fontSize * (13 / 16);
29919
+ rules.push(`[data-chat-flow-kind="user"] [class*="_bubble"],[data-chat-flow-kind="steering"] [class*="_bubble"],[data-pending-steering] [class*="_bubble"]{font-size:var(--dsw-font-markdown-base-font-size) !important;line-height:var(--dsw-font-markdown-base-line-height) !important}`);
29920
+ rules.push(`[data-composer-card]{font:var(--dsw-font-markdown-base) !important}`);
29921
+ rules.push(`div[data-slot="conversation.chat.node"] [class*="_markdown"]:not([data-markdown-variant="compact"]) table th,div[data-slot="conversation.chat.node"] [class*="_markdown"]:not([data-markdown-variant="compact"]) table td{font-size:var(--dsw-font-markdown-base-font-size) !important;line-height:var(--dsw-font-markdown-base-line-height) !important}`);
29922
+ const stockCodeBlock = value.fontSize * (13 / 14);
29295
29923
  if (Math.abs(value.codeFontSize - stockCodeBlock) > .5) {
29296
- const em = (.875 * (value.codeFontSize / stockCodeBlock)).toFixed(3);
29297
- rules.push(`div[data-slot="conversation.chat.node"] div[class*="_markdown_"] :not(pre)>code{font-size:${em}em !important}`);
29924
+ const em = (.92 * (value.codeFontSize / stockCodeBlock)).toFixed(3);
29925
+ rules.push(`div[data-slot="conversation.chat.node"] div[class*="_markdown"]:not([data-markdown-variant="compact"]) :not(pre)>code{font-size:${em}em !important}`);
29298
29926
  }
29299
29927
  if (value.lineHeight !== DEFAULT_LINE_HEIGHT) {
29300
29928
  const n = value.lineHeight;
29301
- const md = `div[data-slot="conversation.chat.node"] div[class*="_markdown_"]`;
29302
- const liGap = Math.max(2, Math.round(6 * n / DEFAULT_LINE_HEIGHT));
29929
+ const md = `div[data-slot="conversation.chat.node"] div[class*="_markdown"]:not([data-markdown-variant="compact"])`;
29930
+ const liGap = Math.max(2, Math.round(4 * n / DEFAULT_LINE_HEIGHT));
29303
29931
  const liPGap = Math.max(2, Math.round(8 * n / DEFAULT_LINE_HEIGHT));
29304
- rules.push(`div[data-slot="conversation.view"] .Md3f7G_column{gap:${n}px !important}`);
29305
- rules.push(`div[data-slot="conversation.chat.node"] .Sxvs8a_body{gap:${n}px !important}`);
29306
- rules.push(`${md} p{margin:${n}px 0 !important}`);
29307
- rules.push(`${md} ul,${md} ol{margin:${n}px 0 !important}`);
29932
+ rules.push(`div[data-slot="conversation.view"] [data-chat-flow]{gap:${n}px !important}`);
29933
+ rules.push(`div[data-slot="conversation.chat.node"] [data-assistant-body]{--dsh-assistant-block-gap:${n}px}`);
29934
+ rules.push(`${md} p{margin:${Math.round(.75 * n)}px 0 !important}`);
29935
+ rules.push(`${md} ul,${md} ol{margin:${Math.round(.75 * n)}px 0 !important}`);
29308
29936
  rules.push(`${md} pre{margin:${n}px 0 !important}`);
29309
29937
  const codePad = Math.max(4, Math.round(16 * n / DEFAULT_LINE_HEIGHT));
29310
29938
  rules.push(`${md} pre{padding-top:${codePad}px !important;padding-bottom:${codePad}px !important}`);
@@ -29314,7 +29942,7 @@ div[data-slot="conversation.chat.node"] table pre{
29314
29942
  }
29315
29943
  rules.push(`${md} li:not(:first-child){margin-top:${liGap}px !important}`);
29316
29944
  rules.push(`${md} li>p{margin:${liPGap}px 0 !important}`);
29317
- rules.push(`${md} h1,${md} h2,${md} h3{margin:${2 * n}px 0 ${n}px !important}`);
29945
+ rules.push(`${md} h1,${md} h2,${md} h3{margin:${Math.round(1.5 * n)}px 0 ${Math.round(.75 * n)}px !important}`);
29318
29946
  rules.push(`${md} h4,${md} h5,${md} h6{margin:${n}px 0 !important}`);
29319
29947
  rules.push(`${md} hr{margin:${2 * n}px 0 !important}`);
29320
29948
  rules.push(`${md} blockquote{margin:${n}px 0 0 !important}`);
@@ -30827,6 +31455,11 @@ div[data-slot="conversation.chat.node"] table pre{
30827
31455
  };
30828
31456
  }, "dsh-better-sidebar: better-locale lazy integration");
30829
31457
  const sidebarStore = createSidebarStore();
31458
+ const pluginMarketCatalog = createPluginMarketCatalog();
31459
+ ctx.effect(() => {
31460
+ pluginMarketCatalog.start();
31461
+ return () => pluginMarketCatalog.dispose();
31462
+ }, "dsh-better-sidebar: plugin catalogs");
30830
31463
  ctx.effect(() => installSessionPins(ctx, sidebarStore), "dsh-better-sidebar: session pins");
30831
31464
  const service = createBetterSidebarService(sidebarStore);
30832
31465
  ctx.provide("betterSidebar", service);
@@ -30839,7 +31472,10 @@ div[data-slot="conversation.chat.node"] table pre{
30839
31472
  const tabs = allLeaves(snapshot.state.splits).concat(allLeaves(snapshot.state.bottomSplits)).flatMap((leaf) => leaf.tabs);
30840
31473
  for (const tab of tabs) if (tab.type === "terminal" && !isAgentTabId(tab.id) && tab.title === fallbackTitle) service.updateTab(tab.id, { title: name });
30841
31474
  }).catch(() => {});
30842
- ctx.effect(() => registerBuiltins(ctx, service, { terminalTitle: () => terminalTitle }), "dsh-better-sidebar: register built-in tabs and viewers");
31475
+ ctx.effect(() => registerBuiltins(ctx, service, {
31476
+ terminalTitle: () => terminalTitle,
31477
+ pluginMarketCatalog
31478
+ }), "dsh-better-sidebar: register built-in tabs and viewers");
30843
31479
  const fail = (phase, error) => {
30844
31480
  console.error(`[dsh-better-sidebar] ${phase} error:`, error);
30845
31481
  try {
@@ -31047,6 +31683,7 @@ div[data-slot="conversation.chat.node"] table pre{
31047
31683
  "Skill marketplace",
31048
31684
  "Skill Market"
31049
31685
  ], SKILL_MARKET_NAV_MARKER), "dsh-better-sidebar: skill market navigation icon fallback");
31686
+ registerPluginMarketSettings(ctx, pluginMarketCatalog);
31050
31687
  ctx.slots.inject("settings.section", () => ctx.slots.register({
31051
31688
  name: "settings.section",
31052
31689
  id: "better-sidebar",