dsh-coding-sidebar 1.0.4 → 1.0.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/lib/client.js CHANGED
@@ -1462,7 +1462,7 @@ window.__ModuleLoader__.load({
1462
1462
  if (claimed) return tab;
1463
1463
  }
1464
1464
  }
1465
- const SIDEBAR_SERVICE_VERSION = "1.0.4";
1465
+ const SIDEBAR_SERVICE_VERSION = "1.0.6";
1466
1466
  /**
1467
1467
  * Monotonic capability list consumers use to gate new API usage (features
1468
1468
  * are never removed). Each string names a v0.12.0+ capability:
@@ -9089,6 +9089,12 @@ window.__ModuleLoader__.load({
9089
9089
  browserBack: "后退",
9090
9090
  browserForward: "前进",
9091
9091
  browserStart: "输入网址开始浏览(沙箱模式)",
9092
+ browserLive: "Agent 实况",
9093
+ browserLiveFree: "自由浏览",
9094
+ browserLiveConnecting: "连接 agent 浏览器宿主…",
9095
+ browserLiveDown: "宿主不可达:确认 KCoder 已启动(端口 9223)",
9096
+ browserLiveTargetNone: "暂无打开的页面——agent 发起浏览后此处实时显示",
9097
+ browserLiveFollowLatest: "跟随最新页面",
9092
9098
  browserBlockedScheme: "已阻止:仅支持 http/https 链接",
9093
9099
  browserBlockedLoopback: "已阻止:不允许在浏览器中访问本机或内部地址",
9094
9100
  browserInvalid: "无效的网址",
@@ -9418,6 +9424,12 @@ window.__ModuleLoader__.load({
9418
9424
  browserBack: "Back",
9419
9425
  browserForward: "Forward",
9420
9426
  browserStart: "Enter a URL to start browsing (sandbox mode)",
9427
+ browserLive: "Agent live",
9428
+ browserLiveFree: "Free browse",
9429
+ browserLiveConnecting: "connecting to the agent browser host…",
9430
+ browserLiveDown: "host unreachable: make sure KCoder is running (port 9223)",
9431
+ browserLiveTargetNone: "No open pages yet — they appear here live once the agent browses",
9432
+ browserLiveFollowLatest: "Follow latest",
9421
9433
  browserBlockedScheme: "Blocked: only http/https URLs are allowed",
9422
9434
  browserBlockedLoopback: "Blocked: local and internal addresses cannot be browsed here",
9423
9435
  browserInvalid: "Invalid URL",
@@ -9880,7 +9892,7 @@ window.__ModuleLoader__.load({
9880
9892
  }
9881
9893
  //#endregion
9882
9894
  //#region \0dsh-css:/Users/libing/kk_Projects/dsh-coding-sidebar/src/client/sidebar.module.css.mjs
9883
- const css$4 = "[data-dsh-panel-host]{z-index:25;pointer-events:none;position:fixed;inset:0;overflow:hidden}[data-dsh-panel-host][data-dsh-panel-host-degraded]{position:absolute;top:0;left:0}.S5HVoW_toggleCluster{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}.S5HVoW_panel:not(.S5HVoW_panelHidden) .S5HVoW_tabBar{padding-right:72px}.S5HVoW_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}.S5HVoW_toggleButton:hover:not(:disabled):not([aria-disabled=true]){background:var(--dsw-alias-interactive-bg-hover);color:var(--dsw-alias-label-primary)}.S5HVoW_toggleButton:disabled,.S5HVoW_toggleButton[aria-disabled=true]{opacity:.4;cursor:default}.S5HVoW_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}.S5HVoW_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%)}.S5HVoW_panel[data-dragging]{transition:none}.S5HVoW_panelResize{cursor:col-resize;z-index:2;touch-action:none;width:8px;position:absolute;top:0;bottom:0;left:-4px}.S5HVoW_panelResizeActive{background:var(--dsw-alias-interactive-bg-hover-accent)}.S5HVoW_panelBody{flex:1;min-width:0;min-height:0;display:flex}.S5HVoW_panel{contain:layout style}body[data-dsh-sidebar-dragging] .S5HVoW_panel{will-change:transform}.S5HVoW_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}.S5HVoW_floatWindowDragging{will-change:left, top, width, height}.S5HVoW_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}.S5HVoW_floatWindowDragging .S5HVoW_floatHeader{cursor:grabbing}.S5HVoW_floatTitle{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;overflow:hidden}.S5HVoW_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}.S5HVoW_floatClose:hover{background:var(--dsw-alias-interactive-bg-hover);color:var(--dsw-alias-label-primary)}.S5HVoW_floatContent{flex-direction:column;flex:1;min-width:0;min-height:0;display:flex;overflow:hidden}.S5HVoW_floatResize{z-index:2;cursor:nwse-resize;touch-action:none;width:14px;height:14px;position:absolute;bottom:0;right:0}.S5HVoW_floatResize:hover{background:var(--dsw-alias-interactive-bg-hover-accent)}.S5HVoW_pane[data-dsh-float-dock-over]{outline:2px dashed var(--dsw-alias-interactive-bg-hover-accent);outline-offset:-2px}.S5HVoW_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}.S5HVoW_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}.S5HVoW_toggleCluster,.S5HVoW_toggleButton,.S5HVoW_tabBar,.S5HVoW_floatHeader{-webkit-app-region:no-drag}body[data-dsh-title-bar-compat] .S5HVoW_toggleCluster{top:calc(var(--dsh-title-bar-strip,40px) + 3px)}body[data-dsh-title-bar-compat] .S5HVoW_panel{padding-top:var(--dsh-title-bar-strip,40px)}.S5HVoW_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}.S5HVoW_iconButton:hover:not(:disabled){background:var(--dsw-alias-interactive-bg-hover);color:var(--dsw-alias-label-primary)}.S5HVoW_iconButton:disabled{opacity:.4;cursor:default}.S5HVoW_workbench,.S5HVoW_split{flex:1;min-width:0;min-height:0;display:flex}.S5HVoW_splitRow{flex-direction:row}.S5HVoW_splitCol{flex-direction:column}.S5HVoW_splitChild{display:flex;position:relative;overflow:hidden}.S5HVoW_divider{z-index:3;touch-action:none;flex:none;position:relative}.S5HVoW_dividerRow:after,.S5HVoW_dividerCol:after{content:\"\";background:var(--dsw-alias-border-l2);transition:background var(--ds-transition-duration-slow) var(--ds-ease-in-out);position:absolute}.S5HVoW_dividerRow{cursor:col-resize;width:7px;margin:0 -2px}.S5HVoW_dividerRow:after{width:1px;top:0;bottom:0;left:50%;transform:translate(-50%)}.S5HVoW_dividerCol{cursor:row-resize;height:7px;margin:-2px 0}.S5HVoW_dividerCol:after{height:1px;top:50%;left:0;right:0;transform:translateY(-50%)}.S5HVoW_divider:hover:after,.S5HVoW_dividerActive:after{background:var(--dsw-alias-interactive-bg-hover-accent)}.S5HVoW_pane{background:var(--dsw-alias-bg-base);flex-direction:column;flex:1;min-width:0;min-height:0;display:flex;position:relative}.S5HVoW_paneDrop{outline:1px solid var(--dsw-alias-interactive-bg-hover-accent);outline-offset:-1px}.S5HVoW_dropOverlay{z-index:6;pointer-events:none;background:var(--dsw-alias-interactive-bg-hover-accent);opacity:.5;position:absolute}.S5HVoW_dropLeft{width:25%;top:0;bottom:0;left:0}.S5HVoW_dropRight{width:25%;top:0;bottom:0;right:0}.S5HVoW_dropUp{height:25%;top:0;left:0;right:0}.S5HVoW_dropDown{height:25%;bottom:0;left:0;right:0}.S5HVoW_dropCenter{outline:2px dashed var(--dsw-alias-interactive-bg-hover-accent);outline-offset:-2px;background:0 0;inset:25%}.S5HVoW_paneContent{flex-direction:column;flex:1;min-height:0;display:flex;overflow:hidden}.S5HVoW_paneTab{flex-direction:column;flex:1;min-height:0;display:flex}.S5HVoW_paneTabHidden{display:none}.S5HVoW_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}.S5HVoW_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}.S5HVoW_paneCard:hover:not(:disabled){background:var(--dsw-alias-interactive-bg-hover);color:var(--dsw-alias-label-primary);border-color:var(--dsw-alias-border-l2)}.S5HVoW_paneCard:disabled{opacity:.45;cursor:default}.S5HVoW_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}.S5HVoW_tabBarDrop{outline:1px dashed var(--dsw-alias-interactive-bg-hover-accent);outline-offset:-1px}.S5HVoW_tabList{scrollbar-width:none;flex:1;min-width:0;display:flex;overflow-x:auto}.S5HVoW_tabList::-webkit-scrollbar{display:none}.S5HVoW_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}.S5HVoW_tab:hover{background:var(--dsw-alias-interactive-bg-hover)}.S5HVoW_tabActive{color:var(--dsw-alias-label-primary);background:var(--dsw-alias-interactive-bg-active)}.S5HVoW_tabTitle{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;overflow:hidden}.S5HVoW_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}.S5HVoW_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}.S5HVoW_tabClose:hover{background:var(--dsw-alias-interactive-bg-hover);color:var(--dsw-alias-label-primary)}.S5HVoW_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}.S5HVoW_tabBarPlus:hover{background:var(--dsw-alias-interactive-bg-hover);color:var(--dsw-alias-label-primary)}.S5HVoW_pinnedTab{color:var(--dsw-alias-label-tertiary);font-style:italic}.S5HVoW_pinnedTab:hover{color:var(--dsw-alias-label-secondary)}.S5HVoW_explorer{flex-direction:column;flex:1;min-height:0;display:flex}.S5HVoW_explorerHeader{flex:none;justify-content:space-between;align-items:center;gap:8px;height:36px;padding:0 8px 0 12px;display:flex}.S5HVoW_explorerRoot{font:var(--dsw-font-s-14);color:var(--dsw-alias-label-secondary);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.S5HVoW_explorerBody{flex:1;min-height:0;padding:4px 8px 8px;overflow:hidden auto}.S5HVoW_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:S5HVoW_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}.S5HVoW_explorerRow:hover{background:var(--dsw-alias-interactive-bg-hover)}.S5HVoW_explorerRowRevealed{background:color-mix(in srgb, var(--dsw-alias-interactive-bg-hover-accent) 18%, transparent);box-shadow:inset 2px 0 0 var(--dsw-alias-interactive-bg-hover-accent)}.S5HVoW_explorerDir{font:var(--dsw-font-s-strong-14)}.S5HVoW_explorerHidden{opacity:.45}.S5HVoW_explorerSymlink{color:var(--dsw-alias-label-tertiary);flex:none}.S5HVoW_explorerBroken .S5HVoW_explorerName{color:var(--dsw-alias-state-error-primary)}.S5HVoW_explorerName{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.S5HVoW_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}.S5HVoW_explorerRef:hover{background:var(--dsw-alias-interactive-bg-hover);color:var(--dsw-alias-label-primary)}.S5HVoW_explorerRow:hover .S5HVoW_explorerRef,.S5HVoW_explorerRow:focus-within .S5HVoW_explorerRef{display:inline-flex}.S5HVoW_explorerCopied{font:var(--dsw-font-xxxs-11);color:var(--dsw-alias-label-tertiary);flex:none}.S5HVoW_explorerError{font:var(--dsw-font-xxs-12);color:var(--dsw-alias-state-error-primary);cursor:default}@keyframes S5HVoW_dsh-row-in{0%{opacity:0}}.S5HVoW_explorerEmpty{font:var(--dsw-font-xxs-12);color:var(--dsw-alias-label-tertiary);text-align:center;padding:16px}.S5HVoW_explorerRowDropTarget{background:var(--dsw-alias-interactive-bg-hover);outline:1px dashed var(--dsw-alias-interactive-bg-hover-accent);outline-offset:-1px}.S5HVoW_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:S5HVoW_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}.S5HVoW_uploadDropHero{flex-direction:column;align-items:center;gap:10px;max-width:100%;padding-top:8px;display:flex}.S5HVoW_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}.S5HVoW_uploadDropZoneText{white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.S5HVoW_uploadDropChatHint{z-index:1002;pointer-events:none;animation:S5HVoW_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}.S5HVoW_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}.S5HVoW_uploadOverlay{z-index:30;background:var(--dsw-alias-bg-mask-1);backdrop-filter:var(--dsw-mask-blur);animation:S5HVoW_dsh-row-in .15s var(--ds-ease-in-out);justify-content:center;align-items:center;display:flex;position:absolute;inset:0}.S5HVoW_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}.S5HVoW_uploadOverlayTitle{font:var(--dsw-font-s-strong-14);color:var(--dsw-alias-label-primary);align-items:center;gap:8px;display:flex}.S5HVoW_uploadOverlayTitle>svg{flex:none}.S5HVoW_uploadOverlayTitle>span{white-space:nowrap;text-overflow:ellipsis;min-width:0;overflow:hidden}.S5HVoW_uploadOverlayProgress{background:var(--dsw-alias-border-l2);border-radius:3px;height:6px;overflow:hidden}.S5HVoW_uploadOverlayProgressFill{background:var(--dsw-alias-interactive-bg-hover-accent);height:100%;transition:width .15s var(--ds-ease-in-out);border-radius:3px}.S5HVoW_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}.S5HVoW_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}.S5HVoW_uploadOverlayCancel:hover:not(:disabled){background:var(--dsw-alias-interactive-bg-hover);border-color:var(--dsw-alias-border-l2)}.S5HVoW_uploadOverlayCancel:disabled{opacity:.4;cursor:default}.S5HVoW_editor{flex-direction:column;flex:1;min-height:0;display:flex}.S5HVoW_editorHeader{border-bottom:1px solid var(--dsw-alias-border-l1);flex:none;align-items:center;gap:6px;padding:6px 8px;display:flex}.S5HVoW_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}.S5HVoW_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}.S5HVoW_editorPathInput:focus{border-color:var(--dsw-alias-border-l2);outline:none}.S5HVoW_editorTreeToggleActive{color:var(--dsw-alias-label-primary);background:var(--dsw-alias-interactive-bg-active)}.S5HVoW_editorBody{flex:1;min-height:0;display:flex}.S5HVoW_editorMain{flex-direction:column;flex:1;min-width:0;min-height:0;display:flex}.S5HVoW_editorTreeDock{border-left:1px solid var(--dsw-alias-border-l1);flex:none;min-height:0;display:flex;position:relative}.S5HVoW_editorTreeResize{cursor:col-resize;touch-action:none;z-index:3;width:6px;position:absolute;top:0;bottom:0;left:0}.S5HVoW_editorTreeResize:hover{background:var(--dsw-alias-border-l2)}.S5HVoW_editorTreePanel{flex-direction:column;flex:1;min-width:0;min-height:0;display:flex;position:relative}.S5HVoW_editorTreePanelFull{flex:1}.S5HVoW_editorTreeSearch{border-bottom:1px solid var(--dsw-alias-border-l1);flex:none;align-items:center;gap:6px;padding:6px 8px;display:flex}.S5HVoW_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}.S5HVoW_editorSearchInput:focus{border-color:var(--dsw-alias-border-l2);outline:none}.S5HVoW_editorSearchHint{font:var(--dsw-font-xxs-12);color:var(--dsw-alias-label-tertiary);padding:8px 12px}.S5HVoW_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}.S5HVoW_editorSearchResult:hover{background:var(--dsw-alias-interactive-bg-hover)}.S5HVoW_editorStatus{font:var(--dsw-font-xxxs-11);color:var(--dsw-alias-label-tertiary)}.S5HVoW_editorStatusError{color:var(--dsw-alias-state-error-primary)}.S5HVoW_dirtyDot{background:var(--dsw-alias-state-warn-primary);border-radius:50%;flex:none;width:7px;height:7px}.S5HVoW_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}.S5HVoW_orphanedType{opacity:.7;overflow-wrap:anywhere;margin-top:8px;font-size:12px;display:block}.S5HVoW_editorBinary{text-align:center;flex-direction:column;flex:1;justify-content:center;align-items:center;gap:12px;padding:24px 16px;display:flex}.S5HVoW_editorBinaryNotice{font:var(--dsw-font-xxs-12);color:var(--dsw-alias-label-tertiary)}.S5HVoW_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}.S5HVoW_editorDownloadLink:hover{background:var(--dsw-alias-interactive-bg-hover);border-color:var(--dsw-alias-border-l2)}.S5HVoW_editorError{font:var(--dsw-font-xxs-12);color:var(--dsw-alias-state-error-primary);padding:12px 16px}.S5HVoW_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}.S5HVoW_sandboxStatus{font:var(--dsw-font-xxxs-11);flex:none;align-items:center;gap:8px;padding:4px 10px;display:flex}.S5HVoW_sandboxStatusOn{color:var(--dsw-alias-label-secondary);background:var(--dsw-alias-bg-layer-1);border-bottom:1px solid var(--dsw-alias-border-l1)}.S5HVoW_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)}.S5HVoW_sandboxDot{background:var(--dsw-alias-state-success-primary);border-radius:50%;flex:none;width:6px;height:6px}.S5HVoW_sandboxStatusOff .S5HVoW_sandboxDot{background:var(--dsw-alias-state-error-primary)}.S5HVoW_sandboxStatusText{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;overflow:hidden}.S5HVoW_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}.S5HVoW_sandboxAction:hover{background:var(--dsw-alias-interactive-bg-hover)}.S5HVoW_browser{flex-direction:column;flex:1;min-height:0;display:flex}.S5HVoW_browserBar{border-bottom:1px solid var(--dsw-alias-border-l1);flex:none;align-items:center;gap:4px;padding:6px 8px;display:flex}.S5HVoW_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}.S5HVoW_browserInput:focus{border-color:var(--dsw-alias-border-l2);outline:none}.S5HVoW_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}.S5HVoW_browserFrame{background:var(--dsw-alias-bg-base);border:none;flex:1;width:100%;min-height:0}.S5HVoW_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}.S5HVoW_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}.S5HVoW_browserBlockedTitle{font:var(--dsw-font-xxs-strong-12);color:var(--dsw-alias-label-primary)}.S5HVoW_browserBlockedDesc{max-width:280px;font:var(--dsw-font-xxxs-11);color:var(--dsw-alias-label-secondary)}.S5HVoW_browserBlockedActions{gap:8px;margin-top:6px;display:flex}.S5HVoW_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}.S5HVoW_browserBlockedButton:hover{background:var(--dsw-alias-interactive-bg-hover)}.S5HVoW_editorCm{background:0 0;flex:1;min-height:0;overflow:hidden}.S5HVoW_editorCm .cm-editor{height:100%}.S5HVoW_editorCm .cm-scroller{padding:12px 16px}.S5HVoW_editorCm .cm-editor.cm-focused{outline:none}.S5HVoW_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))}.S5HVoW_selectionPopup:hover{background:var(--dsw-alias-interactive-bg-hover)}.S5HVoW_terminalWrap{background:var(--dsw-alias-bg-base);flex-direction:column;flex:1;min-height:0;display:flex;position:relative}.S5HVoW_terminal{flex:1;min-height:0;padding:6px 4px 6px 8px}.S5HVoW_terminal .xterm{height:100%}.S5HVoW_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}.S5HVoW_terminalBannerUrl{word-break:break-all;opacity:.85;flex-basis:100%;font-family:ui-monospace,SFMono-Regular,Menlo,monospace}.S5HVoW_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}.S5HVoW_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}.S5HVoW_terminalRetry:hover{background:var(--dsw-alias-interactive-bg-hover);color:var(--dsw-alias-label-primary)}.S5HVoW_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}.S5HVoW_terminalDepsTitle{font:var(--dsw-font-xxs-strong-12);color:var(--dsw-alias-state-warn-primary)}.S5HVoW_terminalDepsHint{opacity:.9}.S5HVoW_terminalDepsCommandRow{align-items:flex-start;gap:8px;display:flex}.S5HVoW_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}.S5HVoW_terminalDepsNote{opacity:.85}.S5HVoW_terminalDepsActions{align-items:center;gap:8px;display:flex}.S5HVoW_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}.S5HVoW_git{flex-direction:column;flex:1;min-width:0;min-height:0;display:flex;overflow:hidden auto}.S5HVoW_gitHeader{flex:none;align-items:center;gap:8px;height:36px;padding:0 8px 0 12px;display:flex}.S5HVoW_gitWorktreeRow{flex:none;align-items:center;gap:8px;padding:6px 8px 0 12px;display:flex}.S5HVoW_gitWorktreeLabel{color:var(--dsw-alias-label-tertiary);font:var(--dsw-font-xxxs-11);flex:none}.S5HVoW_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}.S5HVoW_gitSection{border-top:1px solid var(--dsw-alias-border-l1)}.S5HVoW_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}.S5HVoW_gitLink{font:var(--dsw-font-xxxs-11);color:var(--dsw-alias-brand-primary);cursor:pointer;background:0 0;border:none;padding:0}.S5HVoW_gitLink:hover:not(:disabled){text-decoration:underline}.S5HVoW_gitLink:disabled{opacity:.4;cursor:default}.S5HVoW_gitRow{min-height:34px;animation:S5HVoW_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}.S5HVoW_gitRow:hover{background:var(--dsw-alias-interactive-bg-hover)}.S5HVoW_gitRowSelected{background:var(--dsw-alias-interactive-bg-active)}.S5HVoW_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}.S5HVoW_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}.S5HVoW_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}.S5HVoW_gitEmpty{font:var(--dsw-font-xxs-12);color:var(--dsw-alias-label-tertiary);padding:4px 12px 8px}.S5HVoW_gitPlaceholder{font:var(--dsw-font-xxs-12);color:var(--dsw-alias-label-tertiary);text-align:center;padding:16px}.S5HVoW_gitError{font:var(--dsw-font-xxs-12);color:var(--dsw-alias-state-error-primary);white-space:pre-wrap;padding:8px 12px}.S5HVoW_gitDiff{border-top:1px solid var(--dsw-alias-border-l1);padding:8px}.S5HVoW_gitDiffTab{flex-direction:column;flex:1;min-width:0;min-height:0;display:flex;overflow:hidden auto}.S5HVoW_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}.S5HVoW_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}.S5HVoW_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}.S5HVoW_gitDiffFile:disabled{cursor:default}.S5HVoW_gitDiffFile:hover:not(:disabled){background:var(--dsw-alias-interactive-bg-hover)}.S5HVoW_gitDiffFileChevron{color:var(--dsw-alias-label-tertiary);flex:none;transform:rotate(0)}.S5HVoW_gitDiffFileChevronExpanded{transform:rotate(90deg)}.S5HVoW_gitDiffFilePath{font:var(--dsw-font-xxs-strong-12);color:var(--dsw-alias-label-primary);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.S5HVoW_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}.S5HVoW_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}.S5HVoW_gitDiffHunk{font:var(--dsw-font-markdown-code-block-small);color:var(--dsw-alias-label-tertiary);gap:8px;padding:3px 2px;display:flex}.S5HVoW_gitDiffHunkHeader{color:var(--dsw-alias-label-secondary);flex:none}.S5HVoW_gitDiffHunkSection{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.S5HVoW_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}.S5HVoW_gitDiffNum{text-align:right;width:36px;color:var(--dsw-alias-label-tertiary);user-select:none;flex:none;padding-right:8px}.S5HVoW_gitDiffCode{flex:1;min-width:0;overflow:visible}.S5HVoW_gitDiffCtx{color:var(--dsw-alias-label-primary)}.S5HVoW_gitDiffDel{color:var(--dsw-alias-state-error-primary);background:color-mix(in srgb, var(--dsw-alias-state-error-primary) 12%, transparent)}.S5HVoW_gitDiffAdd{color:var(--dsw-alias-state-success-primary);background:color-mix(in srgb, var(--dsw-alias-state-success-primary) 12%, transparent)}.S5HVoW_gitDiffMeta{padding-left:2px}.S5HVoW_gitDiffMetaText{font:var(--dsw-font-xxxs-11);color:var(--dsw-alias-label-tertiary);font-style:italic}.S5HVoW_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}.S5HVoW_gitDiffExpand:hover{background:var(--dsw-alias-interactive-bg-hover)}.S5HVoW_gitConfirmDesc{font:var(--dsw-font-s-14);color:var(--dsw-alias-label-primary);white-space:pre-wrap;margin:0}.S5HVoW_gitCommit{border-top:1px solid var(--dsw-alias-border-l1);align-items:center;gap:6px;padding:8px 12px;display:flex}.S5HVoW_gitCommitInput{flex:1;min-width:0}.S5HVoW_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}.S5HVoW_gitCommitButton:hover:not(:disabled){background:var(--dsw-alias-button-primary-hover)}.S5HVoW_gitCommitButton:disabled{opacity:.45;cursor:default}.S5HVoW_gitLogRow{cursor:pointer;border-radius:8px;flex-direction:column;gap:2px;padding:5px 12px;display:flex}.S5HVoW_gitLogRow:hover{background:var(--dsw-alias-interactive-bg-hover)}.S5HVoW_gitLogLine1{align-items:baseline;gap:8px;min-width:0;display:flex}.S5HVoW_gitLogHash{font:var(--dsw-font-markdown-code-block-small);color:var(--dsw-alias-label-tertiary);flex:none}.S5HVoW_gitLogLine2{flex-wrap:wrap;align-items:center;gap:6px;min-width:0;display:flex}.S5HVoW_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}.S5HVoW_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}.S5HVoW_gitLogMeta{font:var(--dsw-font-xxxs-11);color:var(--dsw-alias-label-tertiary)}.S5HVoW_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}.S5HVoW_gitLogMore:hover:not(:disabled){background:var(--dsw-alias-interactive-bg-hover);color:var(--dsw-alias-label-primary)}.S5HVoW_gitLogMore:disabled{opacity:.5;cursor:default}.S5HVoW_producedRow{flex-wrap:wrap;align-items:center;gap:8px;padding:4px 0;display:flex}.S5HVoW_producedLabel{font:var(--dsw-font-xxs-12);color:var(--dsw-alias-label-tertiary)}.S5HVoW_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}.S5HVoW_producedChip:hover{background:var(--dsw-alias-interactive-bg-hover);color:var(--dsw-alias-label-primary)}.S5HVoW_producedChip span{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.S5HVoW_producedMore{font:var(--dsw-font-xxs-12);color:var(--dsw-alias-label-tertiary)}.S5HVoW_toggleButton:focus-visible,.S5HVoW_iconButton:focus-visible,.S5HVoW_tab:focus-visible,.S5HVoW_tabClose:focus-visible,.S5HVoW_tabBarPlus:focus-visible,.S5HVoW_paneCard:focus-visible,.S5HVoW_explorerRow:focus-visible,.S5HVoW_explorerRef:focus-visible,.S5HVoW_gitRowMain:focus-visible,.S5HVoW_gitLink:focus-visible,.S5HVoW_gitCommitButton:focus-visible,.S5HVoW_gitLogRow:focus-visible,.S5HVoW_gitLogMore:focus-visible,.S5HVoW_gitDiffFile:focus-visible,.S5HVoW_gitDiffExpand:focus-visible,.S5HVoW_terminalRetry:focus-visible,.S5HVoW_editorDownloadLink:focus-visible{outline:2px solid var(--dsw-alias-interactive-bg-hover-accent);outline-offset:-1px}@media (prefers-reduced-motion:reduce){.S5HVoW_panel,.S5HVoW_panelHidden,.S5HVoW_toggleCluster,.S5HVoW_toggleButton,.S5HVoW_tab,.S5HVoW_tabBarPlus,.S5HVoW_paneCard,.S5HVoW_explorerRow,.S5HVoW_gitRow,.S5HVoW_divider,.S5HVoW_dividerRow:after,.S5HVoW_dividerCol:after{transition:none;animation:none}}@media (width<=767px){.S5HVoW_panel:not(.S5HVoW_panelHidden) .S5HVoW_tabBar{padding-right:40px}.S5HVoW_tab{min-width:48px;max-width:128px}}.S5HVoW_openWithLabel{align-items:center;gap:8px;width:100%;min-width:0;display:flex}.S5HVoW_openWithName{text-overflow:ellipsis;white-space:nowrap;flex:auto;min-width:0;overflow:hidden}.S5HVoW_openWithChevron{color:var(--dsw-alias-label-tertiary);flex:none}.S5HVoW_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}.S5HVoW_openWithPin:hover{background:var(--dsw-alias-interactive-bg-hover);color:var(--dsw-alias-label-primary)}.S5HVoW_openWithPinActive{color:var(--dsw-alias-state-business-primary)}@keyframes S5HVoW_dsh-toc-flash{0%,60%{background:var(--dsw-alias-interactive-bg-hover)}to{background:0 0}}";
9895
+ const css$4 = "[data-dsh-panel-host]{z-index:25;pointer-events:none;position:fixed;inset:0;overflow:hidden}[data-dsh-panel-host][data-dsh-panel-host-degraded]{position:absolute;top:0;left:0}.S5HVoW_toggleCluster{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}.S5HVoW_panel:not(.S5HVoW_panelHidden) .S5HVoW_tabBar{padding-right:72px}.S5HVoW_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}.S5HVoW_toggleButton:hover:not(:disabled):not([aria-disabled=true]){background:var(--dsw-alias-interactive-bg-hover);color:var(--dsw-alias-label-primary)}.S5HVoW_toggleButton:disabled,.S5HVoW_toggleButton[aria-disabled=true]{opacity:.4;cursor:default}.S5HVoW_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}.S5HVoW_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%)}.S5HVoW_panel[data-dragging]{transition:none}.S5HVoW_panelResize{cursor:col-resize;z-index:2;touch-action:none;width:8px;position:absolute;top:0;bottom:0;left:-4px}.S5HVoW_panelResizeActive{background:var(--dsw-alias-interactive-bg-hover-accent)}.S5HVoW_panelBody{flex:1;min-width:0;min-height:0;display:flex}.S5HVoW_panel{contain:layout style}body[data-dsh-sidebar-dragging] .S5HVoW_panel{will-change:transform}.S5HVoW_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}.S5HVoW_floatWindowDragging{will-change:left, top, width, height}.S5HVoW_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}.S5HVoW_floatWindowDragging .S5HVoW_floatHeader{cursor:grabbing}.S5HVoW_floatTitle{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;overflow:hidden}.S5HVoW_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}.S5HVoW_floatClose:hover{background:var(--dsw-alias-interactive-bg-hover);color:var(--dsw-alias-label-primary)}.S5HVoW_floatContent{flex-direction:column;flex:1;min-width:0;min-height:0;display:flex;overflow:hidden}.S5HVoW_floatResize{z-index:2;cursor:nwse-resize;touch-action:none;width:14px;height:14px;position:absolute;bottom:0;right:0}.S5HVoW_floatResize:hover{background:var(--dsw-alias-interactive-bg-hover-accent)}.S5HVoW_pane[data-dsh-float-dock-over]{outline:2px dashed var(--dsw-alias-interactive-bg-hover-accent);outline-offset:-2px}.S5HVoW_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}.S5HVoW_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}.S5HVoW_toggleCluster,.S5HVoW_toggleButton,.S5HVoW_tabBar,.S5HVoW_floatHeader{-webkit-app-region:no-drag}body[data-dsh-title-bar-compat] .S5HVoW_toggleCluster{top:calc(var(--dsh-title-bar-strip,40px) + 3px)}body[data-dsh-title-bar-compat] .S5HVoW_panel{padding-top:var(--dsh-title-bar-strip,40px)}.S5HVoW_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}.S5HVoW_iconButton:hover:not(:disabled){background:var(--dsw-alias-interactive-bg-hover);color:var(--dsw-alias-label-primary)}.S5HVoW_iconButton:disabled{opacity:.4;cursor:default}.S5HVoW_workbench,.S5HVoW_split{flex:1;min-width:0;min-height:0;display:flex}.S5HVoW_splitRow{flex-direction:row}.S5HVoW_splitCol{flex-direction:column}.S5HVoW_splitChild{display:flex;position:relative;overflow:hidden}.S5HVoW_divider{z-index:3;touch-action:none;flex:none;position:relative}.S5HVoW_dividerRow:after,.S5HVoW_dividerCol:after{content:\"\";background:var(--dsw-alias-border-l2);transition:background var(--ds-transition-duration-slow) var(--ds-ease-in-out);position:absolute}.S5HVoW_dividerRow{cursor:col-resize;width:7px;margin:0 -2px}.S5HVoW_dividerRow:after{width:1px;top:0;bottom:0;left:50%;transform:translate(-50%)}.S5HVoW_dividerCol{cursor:row-resize;height:7px;margin:-2px 0}.S5HVoW_dividerCol:after{height:1px;top:50%;left:0;right:0;transform:translateY(-50%)}.S5HVoW_divider:hover:after,.S5HVoW_dividerActive:after{background:var(--dsw-alias-interactive-bg-hover-accent)}.S5HVoW_pane{background:var(--dsw-alias-bg-base);flex-direction:column;flex:1;min-width:0;min-height:0;display:flex;position:relative}.S5HVoW_paneDrop{outline:1px solid var(--dsw-alias-interactive-bg-hover-accent);outline-offset:-1px}.S5HVoW_dropOverlay{z-index:6;pointer-events:none;background:var(--dsw-alias-interactive-bg-hover-accent);opacity:.5;position:absolute}.S5HVoW_dropLeft{width:25%;top:0;bottom:0;left:0}.S5HVoW_dropRight{width:25%;top:0;bottom:0;right:0}.S5HVoW_dropUp{height:25%;top:0;left:0;right:0}.S5HVoW_dropDown{height:25%;bottom:0;left:0;right:0}.S5HVoW_dropCenter{outline:2px dashed var(--dsw-alias-interactive-bg-hover-accent);outline-offset:-2px;background:0 0;inset:25%}.S5HVoW_paneContent{flex-direction:column;flex:1;min-height:0;display:flex;overflow:hidden}.S5HVoW_paneTab{flex-direction:column;flex:1;min-height:0;display:flex}.S5HVoW_paneTabHidden{display:none}.S5HVoW_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}.S5HVoW_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}.S5HVoW_paneCard:hover:not(:disabled){background:var(--dsw-alias-interactive-bg-hover);color:var(--dsw-alias-label-primary);border-color:var(--dsw-alias-border-l2)}.S5HVoW_paneCard:disabled{opacity:.45;cursor:default}.S5HVoW_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}.S5HVoW_tabBarDrop{outline:1px dashed var(--dsw-alias-interactive-bg-hover-accent);outline-offset:-1px}.S5HVoW_tabList{scrollbar-width:none;flex:1;min-width:0;display:flex;overflow-x:auto}.S5HVoW_tabList::-webkit-scrollbar{display:none}.S5HVoW_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}.S5HVoW_tab:hover{background:var(--dsw-alias-interactive-bg-hover)}.S5HVoW_tabActive{color:var(--dsw-alias-label-primary);background:var(--dsw-alias-interactive-bg-active)}.S5HVoW_tabTitle{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;overflow:hidden}.S5HVoW_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}.S5HVoW_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}.S5HVoW_tabClose:hover{background:var(--dsw-alias-interactive-bg-hover);color:var(--dsw-alias-label-primary)}.S5HVoW_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}.S5HVoW_tabBarPlus:hover{background:var(--dsw-alias-interactive-bg-hover);color:var(--dsw-alias-label-primary)}.S5HVoW_pinnedTab{color:var(--dsw-alias-label-tertiary);font-style:italic}.S5HVoW_pinnedTab:hover{color:var(--dsw-alias-label-secondary)}.S5HVoW_explorer{flex-direction:column;flex:1;min-height:0;display:flex}.S5HVoW_explorerHeader{flex:none;justify-content:space-between;align-items:center;gap:8px;height:36px;padding:0 8px 0 12px;display:flex}.S5HVoW_explorerRoot{font:var(--dsw-font-s-14);color:var(--dsw-alias-label-secondary);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.S5HVoW_explorerBody{flex:1;min-height:0;padding:4px 8px 8px;overflow:hidden auto}.S5HVoW_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:S5HVoW_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}.S5HVoW_explorerRow:hover{background:var(--dsw-alias-interactive-bg-hover)}.S5HVoW_explorerRowRevealed{background:color-mix(in srgb, var(--dsw-alias-interactive-bg-hover-accent) 18%, transparent);box-shadow:inset 2px 0 0 var(--dsw-alias-interactive-bg-hover-accent)}.S5HVoW_explorerDir{font:var(--dsw-font-s-strong-14)}.S5HVoW_explorerHidden{opacity:.45}.S5HVoW_explorerSymlink{color:var(--dsw-alias-label-tertiary);flex:none}.S5HVoW_explorerBroken .S5HVoW_explorerName{color:var(--dsw-alias-state-error-primary)}.S5HVoW_explorerName{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.S5HVoW_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}.S5HVoW_explorerRef:hover{background:var(--dsw-alias-interactive-bg-hover);color:var(--dsw-alias-label-primary)}.S5HVoW_explorerRow:hover .S5HVoW_explorerRef,.S5HVoW_explorerRow:focus-within .S5HVoW_explorerRef{display:inline-flex}.S5HVoW_explorerCopied{font:var(--dsw-font-xxxs-11);color:var(--dsw-alias-label-tertiary);flex:none}.S5HVoW_explorerError{font:var(--dsw-font-xxs-12);color:var(--dsw-alias-state-error-primary);cursor:default}@keyframes S5HVoW_dsh-row-in{0%{opacity:0}}.S5HVoW_explorerEmpty{font:var(--dsw-font-xxs-12);color:var(--dsw-alias-label-tertiary);text-align:center;padding:16px}.S5HVoW_explorerRowDropTarget{background:var(--dsw-alias-interactive-bg-hover);outline:1px dashed var(--dsw-alias-interactive-bg-hover-accent);outline-offset:-1px}.S5HVoW_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:S5HVoW_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}.S5HVoW_uploadDropHero{flex-direction:column;align-items:center;gap:10px;max-width:100%;padding-top:8px;display:flex}.S5HVoW_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}.S5HVoW_uploadDropZoneText{white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.S5HVoW_uploadDropChatHint{z-index:1002;pointer-events:none;animation:S5HVoW_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}.S5HVoW_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}.S5HVoW_uploadOverlay{z-index:30;background:var(--dsw-alias-bg-mask-1);backdrop-filter:var(--dsw-mask-blur);animation:S5HVoW_dsh-row-in .15s var(--ds-ease-in-out);justify-content:center;align-items:center;display:flex;position:absolute;inset:0}.S5HVoW_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}.S5HVoW_uploadOverlayTitle{font:var(--dsw-font-s-strong-14);color:var(--dsw-alias-label-primary);align-items:center;gap:8px;display:flex}.S5HVoW_uploadOverlayTitle>svg{flex:none}.S5HVoW_uploadOverlayTitle>span{white-space:nowrap;text-overflow:ellipsis;min-width:0;overflow:hidden}.S5HVoW_uploadOverlayProgress{background:var(--dsw-alias-border-l2);border-radius:3px;height:6px;overflow:hidden}.S5HVoW_uploadOverlayProgressFill{background:var(--dsw-alias-interactive-bg-hover-accent);height:100%;transition:width .15s var(--ds-ease-in-out);border-radius:3px}.S5HVoW_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}.S5HVoW_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}.S5HVoW_uploadOverlayCancel:hover:not(:disabled){background:var(--dsw-alias-interactive-bg-hover);border-color:var(--dsw-alias-border-l2)}.S5HVoW_uploadOverlayCancel:disabled{opacity:.4;cursor:default}.S5HVoW_editor{flex-direction:column;flex:1;min-height:0;display:flex}.S5HVoW_editorHeader{border-bottom:1px solid var(--dsw-alias-border-l1);flex:none;align-items:center;gap:6px;padding:6px 8px;display:flex}.S5HVoW_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}.S5HVoW_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}.S5HVoW_editorPathInput:focus{border-color:var(--dsw-alias-border-l2);outline:none}.S5HVoW_editorTreeToggleActive{color:var(--dsw-alias-label-primary);background:var(--dsw-alias-interactive-bg-active)}.S5HVoW_editorBody{flex:1;min-height:0;display:flex}.S5HVoW_editorMain{flex-direction:column;flex:1;min-width:0;min-height:0;display:flex}.S5HVoW_editorTreeDock{border-left:1px solid var(--dsw-alias-border-l1);flex:none;min-height:0;display:flex;position:relative}.S5HVoW_editorTreeResize{cursor:col-resize;touch-action:none;z-index:3;width:6px;position:absolute;top:0;bottom:0;left:0}.S5HVoW_editorTreeResize:hover{background:var(--dsw-alias-border-l2)}.S5HVoW_editorTreePanel{flex-direction:column;flex:1;min-width:0;min-height:0;display:flex;position:relative}.S5HVoW_editorTreePanelFull{flex:1}.S5HVoW_editorTreeSearch{border-bottom:1px solid var(--dsw-alias-border-l1);flex:none;align-items:center;gap:6px;padding:6px 8px;display:flex}.S5HVoW_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}.S5HVoW_editorSearchInput:focus{border-color:var(--dsw-alias-border-l2);outline:none}.S5HVoW_editorSearchHint{font:var(--dsw-font-xxs-12);color:var(--dsw-alias-label-tertiary);padding:8px 12px}.S5HVoW_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}.S5HVoW_editorSearchResult:hover{background:var(--dsw-alias-interactive-bg-hover)}.S5HVoW_editorStatus{font:var(--dsw-font-xxxs-11);color:var(--dsw-alias-label-tertiary)}.S5HVoW_editorStatusError{color:var(--dsw-alias-state-error-primary)}.S5HVoW_dirtyDot{background:var(--dsw-alias-state-warn-primary);border-radius:50%;flex:none;width:7px;height:7px}.S5HVoW_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}.S5HVoW_orphanedType{opacity:.7;overflow-wrap:anywhere;margin-top:8px;font-size:12px;display:block}.S5HVoW_editorBinary{text-align:center;flex-direction:column;flex:1;justify-content:center;align-items:center;gap:12px;padding:24px 16px;display:flex}.S5HVoW_editorBinaryNotice{font:var(--dsw-font-xxs-12);color:var(--dsw-alias-label-tertiary)}.S5HVoW_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}.S5HVoW_editorDownloadLink:hover{background:var(--dsw-alias-interactive-bg-hover);border-color:var(--dsw-alias-border-l2)}.S5HVoW_editorError{font:var(--dsw-font-xxs-12);color:var(--dsw-alias-state-error-primary);padding:12px 16px}.S5HVoW_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}.S5HVoW_sandboxStatus{font:var(--dsw-font-xxxs-11);flex:none;align-items:center;gap:8px;padding:4px 10px;display:flex}.S5HVoW_sandboxStatusOn{color:var(--dsw-alias-label-secondary);background:var(--dsw-alias-bg-layer-1);border-bottom:1px solid var(--dsw-alias-border-l1)}.S5HVoW_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)}.S5HVoW_sandboxDot{background:var(--dsw-alias-state-success-primary);border-radius:50%;flex:none;width:6px;height:6px}.S5HVoW_sandboxStatusOff .S5HVoW_sandboxDot{background:var(--dsw-alias-state-error-primary)}.S5HVoW_sandboxStatusText{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;overflow:hidden}.S5HVoW_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}.S5HVoW_sandboxAction:hover{background:var(--dsw-alias-interactive-bg-hover)}.S5HVoW_browser{flex-direction:column;flex:1;min-height:0;display:flex}.S5HVoW_browserBar{border-bottom:1px solid var(--dsw-alias-border-l1);flex:none;align-items:center;gap:4px;padding:6px 8px;display:flex}.S5HVoW_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}.S5HVoW_browserInput:focus{border-color:var(--dsw-alias-border-l2);outline:none}.S5HVoW_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}.S5HVoW_browserFrame{background:var(--dsw-alias-bg-base);border:none;flex:1;width:100%;min-height:0}.S5HVoW_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}.S5HVoW_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}.S5HVoW_browserBlockedTitle{font:var(--dsw-font-xxs-strong-12);color:var(--dsw-alias-label-primary)}.S5HVoW_browserBlockedDesc{max-width:280px;font:var(--dsw-font-xxxs-11);color:var(--dsw-alias-label-secondary)}.S5HVoW_browserBlockedActions{gap:8px;margin-top:6px;display:flex}.S5HVoW_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}.S5HVoW_browserBlockedButton:hover{background:var(--dsw-alias-interactive-bg-hover)}.S5HVoW_editorCm{background:0 0;flex:1;min-height:0;overflow:hidden}.S5HVoW_editorCm .cm-editor{height:100%}.S5HVoW_editorCm .cm-scroller{padding:12px 16px}.S5HVoW_editorCm .cm-editor.cm-focused{outline:none}.S5HVoW_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))}.S5HVoW_selectionPopup:hover{background:var(--dsw-alias-interactive-bg-hover)}.S5HVoW_terminalWrap{background:var(--dsw-alias-bg-base);flex-direction:column;flex:1;min-height:0;display:flex;position:relative}.S5HVoW_terminal{flex:1;min-height:0;padding:6px 4px 6px 8px}.S5HVoW_terminal .xterm{height:100%}.S5HVoW_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}.S5HVoW_terminalBannerUrl{word-break:break-all;opacity:.85;flex-basis:100%;font-family:ui-monospace,SFMono-Regular,Menlo,monospace}.S5HVoW_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}.S5HVoW_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}.S5HVoW_terminalRetry:hover{background:var(--dsw-alias-interactive-bg-hover);color:var(--dsw-alias-label-primary)}.S5HVoW_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}.S5HVoW_terminalDepsTitle{font:var(--dsw-font-xxs-strong-12);color:var(--dsw-alias-state-warn-primary)}.S5HVoW_terminalDepsHint{opacity:.9}.S5HVoW_terminalDepsCommandRow{align-items:flex-start;gap:8px;display:flex}.S5HVoW_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}.S5HVoW_terminalDepsNote{opacity:.85}.S5HVoW_terminalDepsActions{align-items:center;gap:8px;display:flex}.S5HVoW_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}.S5HVoW_git{flex-direction:column;flex:1;min-width:0;min-height:0;display:flex;overflow:hidden auto}.S5HVoW_gitHeader{flex:none;align-items:center;gap:8px;height:36px;padding:0 8px 0 12px;display:flex}.S5HVoW_gitWorktreeRow{flex:none;align-items:center;gap:8px;padding:6px 8px 0 12px;display:flex}.S5HVoW_gitWorktreeLabel{color:var(--dsw-alias-label-tertiary);font:var(--dsw-font-xxxs-11);flex:none}.S5HVoW_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}.S5HVoW_gitSection{border-top:1px solid var(--dsw-alias-border-l1)}.S5HVoW_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}.S5HVoW_gitLink{font:var(--dsw-font-xxxs-11);color:var(--dsw-alias-brand-primary);cursor:pointer;background:0 0;border:none;padding:0}.S5HVoW_gitLink:hover:not(:disabled){text-decoration:underline}.S5HVoW_gitLink:disabled{opacity:.4;cursor:default}.S5HVoW_gitRow{min-height:34px;animation:S5HVoW_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}.S5HVoW_gitRow:hover{background:var(--dsw-alias-interactive-bg-hover)}.S5HVoW_gitRowSelected{background:var(--dsw-alias-interactive-bg-active)}.S5HVoW_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}.S5HVoW_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}.S5HVoW_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}.S5HVoW_gitEmpty{font:var(--dsw-font-xxs-12);color:var(--dsw-alias-label-tertiary);padding:4px 12px 8px}.S5HVoW_gitPlaceholder{font:var(--dsw-font-xxs-12);color:var(--dsw-alias-label-tertiary);text-align:center;padding:16px}.S5HVoW_gitError{font:var(--dsw-font-xxs-12);color:var(--dsw-alias-state-error-primary);white-space:pre-wrap;padding:8px 12px}.S5HVoW_gitDiff{border-top:1px solid var(--dsw-alias-border-l1);padding:8px}.S5HVoW_gitDiffTab{flex-direction:column;flex:1;min-width:0;min-height:0;display:flex;overflow:hidden auto}.S5HVoW_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}.S5HVoW_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}.S5HVoW_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}.S5HVoW_gitDiffFile:disabled{cursor:default}.S5HVoW_gitDiffFile:hover:not(:disabled){background:var(--dsw-alias-interactive-bg-hover)}.S5HVoW_gitDiffFileChevron{color:var(--dsw-alias-label-tertiary);flex:none;transform:rotate(0)}.S5HVoW_gitDiffFileChevronExpanded{transform:rotate(90deg)}.S5HVoW_gitDiffFilePath{font:var(--dsw-font-xxs-strong-12);color:var(--dsw-alias-label-primary);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.S5HVoW_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}.S5HVoW_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}.S5HVoW_gitDiffHunk{font:var(--dsw-font-markdown-code-block-small);color:var(--dsw-alias-label-tertiary);gap:8px;padding:3px 2px;display:flex}.S5HVoW_gitDiffHunkHeader{color:var(--dsw-alias-label-secondary);flex:none}.S5HVoW_gitDiffHunkSection{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.S5HVoW_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}.S5HVoW_gitDiffNum{text-align:right;width:36px;color:var(--dsw-alias-label-tertiary);user-select:none;flex:none;padding-right:8px}.S5HVoW_gitDiffCode{flex:1;min-width:0;overflow:visible}.S5HVoW_gitDiffCtx{color:var(--dsw-alias-label-primary)}.S5HVoW_gitDiffDel{color:var(--dsw-alias-state-error-primary);background:color-mix(in srgb, var(--dsw-alias-state-error-primary) 12%, transparent)}.S5HVoW_gitDiffAdd{color:var(--dsw-alias-state-success-primary);background:color-mix(in srgb, var(--dsw-alias-state-success-primary) 12%, transparent)}.S5HVoW_gitDiffMeta{padding-left:2px}.S5HVoW_gitDiffMetaText{font:var(--dsw-font-xxxs-11);color:var(--dsw-alias-label-tertiary);font-style:italic}.S5HVoW_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}.S5HVoW_gitDiffExpand:hover{background:var(--dsw-alias-interactive-bg-hover)}.S5HVoW_gitConfirmDesc{font:var(--dsw-font-s-14);color:var(--dsw-alias-label-primary);white-space:pre-wrap;margin:0}.S5HVoW_gitCommit{border-top:1px solid var(--dsw-alias-border-l1);align-items:center;gap:6px;padding:8px 12px;display:flex}.S5HVoW_gitCommitInput{flex:1;min-width:0}.S5HVoW_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}.S5HVoW_gitCommitButton:hover:not(:disabled){background:var(--dsw-alias-button-primary-hover)}.S5HVoW_gitCommitButton:disabled{opacity:.45;cursor:default}.S5HVoW_gitLogRow{cursor:pointer;border-radius:8px;flex-direction:column;gap:2px;padding:5px 12px;display:flex}.S5HVoW_gitLogRow:hover{background:var(--dsw-alias-interactive-bg-hover)}.S5HVoW_gitLogLine1{align-items:baseline;gap:8px;min-width:0;display:flex}.S5HVoW_gitLogHash{font:var(--dsw-font-markdown-code-block-small);color:var(--dsw-alias-label-tertiary);flex:none}.S5HVoW_gitLogLine2{flex-wrap:wrap;align-items:center;gap:6px;min-width:0;display:flex}.S5HVoW_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}.S5HVoW_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}.S5HVoW_gitLogMeta{font:var(--dsw-font-xxxs-11);color:var(--dsw-alias-label-tertiary)}.S5HVoW_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}.S5HVoW_gitLogMore:hover:not(:disabled){background:var(--dsw-alias-interactive-bg-hover);color:var(--dsw-alias-label-primary)}.S5HVoW_gitLogMore:disabled{opacity:.5;cursor:default}.S5HVoW_producedRow{flex-wrap:wrap;align-items:center;gap:8px;padding:4px 0;display:flex}.S5HVoW_producedLabel{font:var(--dsw-font-xxs-12);color:var(--dsw-alias-label-tertiary)}.S5HVoW_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}.S5HVoW_producedChip:hover{background:var(--dsw-alias-interactive-bg-hover);color:var(--dsw-alias-label-primary)}.S5HVoW_producedChip span{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.S5HVoW_producedMore{font:var(--dsw-font-xxs-12);color:var(--dsw-alias-label-tertiary)}.S5HVoW_toggleButton:focus-visible,.S5HVoW_iconButton:focus-visible,.S5HVoW_tab:focus-visible,.S5HVoW_tabClose:focus-visible,.S5HVoW_tabBarPlus:focus-visible,.S5HVoW_paneCard:focus-visible,.S5HVoW_explorerRow:focus-visible,.S5HVoW_explorerRef:focus-visible,.S5HVoW_gitRowMain:focus-visible,.S5HVoW_gitLink:focus-visible,.S5HVoW_gitCommitButton:focus-visible,.S5HVoW_gitLogRow:focus-visible,.S5HVoW_gitLogMore:focus-visible,.S5HVoW_gitDiffFile:focus-visible,.S5HVoW_gitDiffExpand:focus-visible,.S5HVoW_terminalRetry:focus-visible,.S5HVoW_editorDownloadLink:focus-visible{outline:2px solid var(--dsw-alias-interactive-bg-hover-accent);outline-offset:-1px}@media (prefers-reduced-motion:reduce){.S5HVoW_panel,.S5HVoW_panelHidden,.S5HVoW_toggleCluster,.S5HVoW_toggleButton,.S5HVoW_tab,.S5HVoW_tabBarPlus,.S5HVoW_paneCard,.S5HVoW_explorerRow,.S5HVoW_gitRow,.S5HVoW_divider,.S5HVoW_dividerRow:after,.S5HVoW_dividerCol:after{transition:none;animation:none}}@media (width<=767px){.S5HVoW_panel:not(.S5HVoW_panelHidden) .S5HVoW_tabBar{padding-right:40px}.S5HVoW_tab{min-width:48px;max-width:128px}}.S5HVoW_openWithLabel{align-items:center;gap:8px;width:100%;min-width:0;display:flex}.S5HVoW_openWithName{text-overflow:ellipsis;white-space:nowrap;flex:auto;min-width:0;overflow:hidden}.S5HVoW_openWithChevron{color:var(--dsw-alias-label-tertiary);flex:none}.S5HVoW_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}.S5HVoW_openWithPin:hover{background:var(--dsw-alias-interactive-bg-hover);color:var(--dsw-alias-label-primary)}.S5HVoW_openWithPinActive{color:var(--dsw-alias-state-business-primary)}@keyframes S5HVoW_dsh-toc-flash{0%,60%{background:var(--dsw-alias-interactive-bg-hover)}to{background:0 0}}.S5HVoW_browserLive{flex-direction:column;gap:6px;padding:8px 10px;display:flex;position:absolute;inset:0;overflow:hidden}.S5HVoW_browserLiveStatus{opacity:.75;align-items:center;gap:8px;font-size:12px;display:flex}.S5HVoW_browserLiveCanvas{object-fit:contain;border:1px solid var(--dsw-alias-border-l,#80808040);cursor:crosshair;background:#fff;border-radius:8px;flex:1;width:100%;min-height:0}.S5HVoW_browserLiveTarget{max-width:260px;font-size:12px}";
9884
9896
  const tagId$4 = "dsh-coding-sidebar/sidebar.module.css";
9885
9897
  if (typeof document !== "undefined" && document.querySelector("style[data-plugin-css=" + JSON.stringify(tagId$4) + "]") === null) {
9886
9898
  const tag = document.createElement("style");
@@ -9890,203 +9902,207 @@ window.__ModuleLoader__.load({
9890
9902
  document.head.appendChild(tag);
9891
9903
  }
9892
9904
  var sidebar_module_css_default = {
9905
+ "gitWorktreeRow": "S5HVoW_gitWorktreeRow",
9906
+ "openWithPinActive": "S5HVoW_openWithPinActive",
9907
+ "panelResize": "S5HVoW_panelResize",
9908
+ "tabBar": "S5HVoW_tabBar",
9909
+ "browserBar": "S5HVoW_browserBar",
9910
+ "terminalDepsTitle": "S5HVoW_terminalDepsTitle",
9911
+ "browserBlockedTitle": "S5HVoW_browserBlockedTitle",
9912
+ "gitBadge": "S5HVoW_gitBadge",
9913
+ "gitName": "S5HVoW_gitName",
9914
+ "workbench": "S5HVoW_workbench",
9915
+ "sandboxDot": "S5HVoW_sandboxDot",
9916
+ "uploadDropChatCard": "S5HVoW_uploadDropChatCard",
9893
9917
  "selectionPopup": "S5HVoW_selectionPopup",
9894
- "explorerRowDropTarget": "S5HVoW_explorerRowDropTarget",
9895
- "explorer": "S5HVoW_explorer",
9896
- "editorTreePanelFull": "S5HVoW_editorTreePanelFull",
9897
- "panel": "S5HVoW_panel",
9898
- "split": "S5HVoW_split",
9899
- "terminalBannerUrl": "S5HVoW_terminalBannerUrl",
9900
- "explorerName": "S5HVoW_explorerName",
9918
+ "gitPlaceholder": "S5HVoW_gitPlaceholder",
9919
+ "floatContent": "S5HVoW_floatContent",
9920
+ "paneEmptyCards": "S5HVoW_paneEmptyCards",
9921
+ "explorerRowRevealed": "S5HVoW_explorerRowRevealed",
9922
+ "sandboxStatusOff": "S5HVoW_sandboxStatusOff",
9923
+ "producedChip": "S5HVoW_producedChip",
9924
+ "dsh-toc-flash": "S5HVoW_dsh-toc-flash",
9925
+ "dropDown": "S5HVoW_dropDown",
9926
+ "paneTab": "S5HVoW_paneTab",
9927
+ "panelResizeActive": "S5HVoW_panelResizeActive",
9901
9928
  "paneCard": "S5HVoW_paneCard",
9902
- "terminalDepsNote": "S5HVoW_terminalDepsNote",
9903
- "browserStart": "S5HVoW_browserStart",
9904
- "gitSectionHeader": "S5HVoW_gitSectionHeader",
9905
- "floatTitle": "S5HVoW_floatTitle",
9929
+ "tabTitle": "S5HVoW_tabTitle",
9930
+ "editorPlaceholder": "S5HVoW_editorPlaceholder",
9931
+ "editorTreePanel": "S5HVoW_editorTreePanel",
9932
+ "orphanedType": "S5HVoW_orphanedType",
9933
+ "editorTreeSearch": "S5HVoW_editorTreeSearch",
9934
+ "browserFrame": "S5HVoW_browserFrame",
9935
+ "browserBlockedButton": "S5HVoW_browserBlockedButton",
9906
9936
  "gitEmpty": "S5HVoW_gitEmpty",
9907
- "gitDiffTabHeader": "S5HVoW_gitDiffTabHeader",
9908
- "gitDiffHunkHeader": "S5HVoW_gitDiffHunkHeader",
9937
+ "gitDiffLine": "S5HVoW_gitDiffLine",
9938
+ "gitDiffMeta": "S5HVoW_gitDiffMeta",
9939
+ "explorerEmpty": "S5HVoW_explorerEmpty",
9940
+ "paneTabHidden": "S5HVoW_paneTabHidden",
9941
+ "editorTreeResize": "S5HVoW_editorTreeResize",
9942
+ "gitDiffMetaText": "S5HVoW_gitDiffMetaText",
9943
+ "browser": "S5HVoW_browser",
9909
9944
  "gitCommit": "S5HVoW_gitCommit",
9910
- "explorerHeader": "S5HVoW_explorerHeader",
9911
- "floatHeader": "S5HVoW_floatHeader",
9912
- "uploadOverlayCard": "S5HVoW_uploadOverlayCard",
9913
- "gitPlaceholder": "S5HVoW_gitPlaceholder",
9914
- "explorerError": "S5HVoW_explorerError",
9915
- "gitDiffHunkSection": "S5HVoW_gitDiffHunkSection",
9916
- "gitDiffNum": "S5HVoW_gitDiffNum",
9917
- "editorTreeDock": "S5HVoW_editorTreeDock",
9918
- "gitDiffFileOld": "S5HVoW_gitDiffFileOld",
9919
- "gitDiffDel": "S5HVoW_gitDiffDel",
9920
- "sandboxStatusOn": "S5HVoW_sandboxStatusOn",
9921
- "openWithLabel": "S5HVoW_openWithLabel",
9922
- "editorDownloadLink": "S5HVoW_editorDownloadLink",
9945
+ "gitLogSubject": "S5HVoW_gitLogSubject",
9923
9946
  "browserMessage": "S5HVoW_browserMessage",
9947
+ "editor": "S5HVoW_editor",
9948
+ "floatDropHintLabel": "S5HVoW_floatDropHintLabel",
9949
+ "editorTreePanelFull": "S5HVoW_editorTreePanelFull",
9950
+ "terminal": "S5HVoW_terminal",
9924
9951
  "paneDrop": "S5HVoW_paneDrop",
9925
- "dropUp": "S5HVoW_dropUp",
9926
- "floatClose": "S5HVoW_floatClose",
9927
- "sandboxStatusText": "S5HVoW_sandboxStatusText",
9928
- "toggleButton": "S5HVoW_toggleButton",
9929
- "dividerRow": "S5HVoW_dividerRow",
9930
- "gitDiffCode": "S5HVoW_gitDiffCode",
9931
- "splitChild": "S5HVoW_splitChild",
9932
- "openWithPinActive": "S5HVoW_openWithPinActive",
9952
+ "gitWorktreeLabel": "S5HVoW_gitWorktreeLabel",
9953
+ "gitCommitButton": "S5HVoW_gitCommitButton",
9954
+ "dirtyDot": "S5HVoW_dirtyDot",
9955
+ "producedRow": "S5HVoW_producedRow",
9956
+ "gitDiffNum": "S5HVoW_gitDiffNum",
9957
+ "openWithChevron": "S5HVoW_openWithChevron",
9958
+ "browserLiveStatus": "S5HVoW_browserLiveStatus",
9959
+ "openWithPin": "S5HVoW_openWithPin",
9960
+ "tabBarPlus": "S5HVoW_tabBarPlus",
9961
+ "explorerHeader": "S5HVoW_explorerHeader",
9962
+ "explorerSymlink": "S5HVoW_explorerSymlink",
9963
+ "explorerBroken": "S5HVoW_explorerBroken",
9964
+ "pane": "S5HVoW_pane",
9965
+ "explorerRow": "S5HVoW_explorerRow",
9966
+ "uploadOverlayStatus": "S5HVoW_uploadOverlayStatus",
9967
+ "editorDownloadLink": "S5HVoW_editorDownloadLink",
9968
+ "browserInput": "S5HVoW_browserInput",
9969
+ "terminalRepairCommand": "S5HVoW_terminalRepairCommand",
9970
+ "gitSectionHeader": "S5HVoW_gitSectionHeader",
9971
+ "sandboxAction": "S5HVoW_sandboxAction",
9972
+ "gitLogLine1": "S5HVoW_gitLogLine1",
9973
+ "floatHeader": "S5HVoW_floatHeader",
9933
9974
  "git": "S5HVoW_git",
9934
- "tabBarDrop": "S5HVoW_tabBarDrop",
9935
- "editorPlaceholder": "S5HVoW_editorPlaceholder",
9936
- "dividerCol": "S5HVoW_dividerCol",
9937
- "editorSearchHint": "S5HVoW_editorSearchHint",
9938
- "gitLogRef": "S5HVoW_gitLogRef",
9939
9975
  "editorSearchResult": "S5HVoW_editorSearchResult",
9940
- "browserFrame": "S5HVoW_browserFrame",
9941
- "gitLogMeta": "S5HVoW_gitLogMeta",
9942
- "editorPathInput": "S5HVoW_editorPathInput",
9943
- "sandboxStatusOff": "S5HVoW_sandboxStatusOff",
9944
- "gitDiffMetaText": "S5HVoW_gitDiffMetaText",
9945
- "openWithName": "S5HVoW_openWithName",
9976
+ "terminalWrap": "S5HVoW_terminalWrap",
9977
+ "uploadOverlayCard": "S5HVoW_uploadOverlayCard",
9978
+ "gitConfirmDesc": "S5HVoW_gitConfirmDesc",
9979
+ "editorBinary": "S5HVoW_editorBinary",
9980
+ "editorHeader": "S5HVoW_editorHeader",
9946
9981
  "explorerHidden": "S5HVoW_explorerHidden",
9982
+ "browserStart": "S5HVoW_browserStart",
9983
+ "terminalBanner": "S5HVoW_terminalBanner",
9984
+ "terminalDepsHint": "S5HVoW_terminalDepsHint",
9985
+ "panel": "S5HVoW_panel",
9986
+ "editorSearchInput": "S5HVoW_editorSearchInput",
9987
+ "explorerDir": "S5HVoW_explorerDir",
9988
+ "uploadDropZone": "S5HVoW_uploadDropZone",
9989
+ "editorTitle": "S5HVoW_editorTitle",
9990
+ "dropRight": "S5HVoW_dropRight",
9991
+ "dropCenter": "S5HVoW_dropCenter",
9947
9992
  "explorerRoot": "S5HVoW_explorerRoot",
9948
- "gitError": "S5HVoW_gitError",
9949
- "gitCommitButton": "S5HVoW_gitCommitButton",
9950
- "terminalDepsBanner": "S5HVoW_terminalDepsBanner",
9993
+ "uploadOverlay": "S5HVoW_uploadOverlay",
9994
+ "gitDiffFileChevron": "S5HVoW_gitDiffFileChevron",
9995
+ "gitDiffFileTag": "S5HVoW_gitDiffFileTag",
9996
+ "gitDiffTabHeader": "S5HVoW_gitDiffTabHeader",
9951
9997
  "pinnedTab": "S5HVoW_pinnedTab",
9952
- "browserBlocked": "S5HVoW_browserBlocked",
9953
- "openWithChevron": "S5HVoW_openWithChevron",
9954
- "uploadDropZonePill": "S5HVoW_uploadDropZonePill",
9955
- "tabBar": "S5HVoW_tabBar",
9956
- "uploadOverlayProgressFill": "S5HVoW_uploadOverlayProgressFill",
9957
- "dropLeft": "S5HVoW_dropLeft",
9958
- "gitLink": "S5HVoW_gitLink",
9959
- "gitDiffCtx": "S5HVoW_gitDiffCtx",
9960
- "dirtyDot": "S5HVoW_dirtyDot",
9961
- "editorBinaryNotice": "S5HVoW_editorBinaryNotice",
9962
- "editorTreeSearch": "S5HVoW_editorTreeSearch",
9963
- "paneEmptyCards": "S5HVoW_paneEmptyCards",
9964
- "splitRow": "S5HVoW_splitRow",
9965
- "gitLogLine1": "S5HVoW_gitLogLine1",
9966
- "uploadOverlayProgress": "S5HVoW_uploadOverlayProgress",
9967
- "gitDiffMeta": "S5HVoW_gitDiffMeta",
9968
- "editorBinary": "S5HVoW_editorBinary",
9969
- "panelHidden": "S5HVoW_panelHidden",
9970
- "tab": "S5HVoW_tab",
9971
- "floatContent": "S5HVoW_floatContent",
9998
+ "toggleButton": "S5HVoW_toggleButton",
9999
+ "dropUp": "S5HVoW_dropUp",
10000
+ "editorMain": "S5HVoW_editorMain",
9972
10001
  "editorBanner": "S5HVoW_editorBanner",
9973
- "terminalRepairCommand": "S5HVoW_terminalRepairCommand",
9974
- "floatWindow": "S5HVoW_floatWindow",
9975
- "gitSection": "S5HVoW_gitSection",
10002
+ "gitDiffTabTitle": "S5HVoW_gitDiffTabTitle",
10003
+ "tabActive": "S5HVoW_tabActive",
10004
+ "uploadOverlayCancel": "S5HVoW_uploadOverlayCancel",
10005
+ "splitRow": "S5HVoW_splitRow",
10006
+ "explorerError": "S5HVoW_explorerError",
10007
+ "terminalRetry": "S5HVoW_terminalRetry",
10008
+ "producedMore": "S5HVoW_producedMore",
10009
+ "explorer": "S5HVoW_explorer",
10010
+ "tabList": "S5HVoW_tabList",
10011
+ "gitDiffFilePath": "S5HVoW_gitDiffFilePath",
10012
+ "openWithName": "S5HVoW_openWithName",
10013
+ "gitDiffFileOld": "S5HVoW_gitDiffFileOld",
9976
10014
  "splitCol": "S5HVoW_splitCol",
10015
+ "gitLogHash": "S5HVoW_gitLogHash",
10016
+ "divider": "S5HVoW_divider",
10017
+ "dsh-row-in": "S5HVoW_dsh-row-in",
10018
+ "sandboxStatusText": "S5HVoW_sandboxStatusText",
10019
+ "paneContent": "S5HVoW_paneContent",
10020
+ "gitRow": "S5HVoW_gitRow",
10021
+ "explorerRef": "S5HVoW_explorerRef",
10022
+ "browserBlocked": "S5HVoW_browserBlocked",
10023
+ "gitDiff": "S5HVoW_gitDiff",
10024
+ "splitChild": "S5HVoW_splitChild",
10025
+ "gitDiffHunkHeader": "S5HVoW_gitDiffHunkHeader",
10026
+ "browserLiveTarget": "S5HVoW_browserLiveTarget",
10027
+ "floatResize": "S5HVoW_floatResize",
10028
+ "gitLogLine2": "S5HVoW_gitLogLine2",
10029
+ "tabClose": "S5HVoW_tabClose",
10030
+ "editorBody": "S5HVoW_editorBody",
10031
+ "gitBranchSelect": "S5HVoW_gitBranchSelect",
9977
10032
  "gitDiffHunk": "S5HVoW_gitDiffHunk",
10033
+ "editorCm": "S5HVoW_editorCm",
9978
10034
  "floatWindowDragging": "S5HVoW_floatWindowDragging",
9979
- "explorerEmpty": "S5HVoW_explorerEmpty",
9980
- "tabActive": "S5HVoW_tabActive",
9981
- "gitLogMore": "S5HVoW_gitLogMore",
9982
- "boundaryError": "S5HVoW_boundaryError",
9983
- "gitDiffExpand": "S5HVoW_gitDiffExpand",
9984
- "uploadDropZoneText": "S5HVoW_uploadDropZoneText",
9985
- "editorStatus": "S5HVoW_editorStatus",
10035
+ "gitSection": "S5HVoW_gitSection",
9986
10036
  "gitLogRow": "S5HVoW_gitLogRow",
9987
- "explorerCopied": "S5HVoW_explorerCopied",
9988
- "panelResizeActive": "S5HVoW_panelResizeActive",
9989
- "explorerBody": "S5HVoW_explorerBody",
9990
- "gitDiffFileChevron": "S5HVoW_gitDiffFileChevron",
10037
+ "editorSearchHint": "S5HVoW_editorSearchHint",
10038
+ "gitDiffFile": "S5HVoW_gitDiffFile",
9991
10039
  "editorError": "S5HVoW_editorError",
9992
- "explorerDir": "S5HVoW_explorerDir",
9993
- "iconButton": "S5HVoW_iconButton",
9994
- "sandboxStatus": "S5HVoW_sandboxStatus",
9995
- "pane": "S5HVoW_pane",
9996
- "tabBoundaryError": "S5HVoW_tabBoundaryError",
9997
- "gitWorktreeLabel": "S5HVoW_gitWorktreeLabel",
9998
- "gitRowSelected": "S5HVoW_gitRowSelected",
9999
- "tabList": "S5HVoW_tabList",
10000
- "explorerBroken": "S5HVoW_explorerBroken",
10001
- "uploadDropHero": "S5HVoW_uploadDropHero",
10002
- "floatDropHintLabel": "S5HVoW_floatDropHintLabel",
10003
- "paneContent": "S5HVoW_paneContent",
10004
- "explorerSymlink": "S5HVoW_explorerSymlink",
10005
- "sandboxDot": "S5HVoW_sandboxDot",
10006
- "gitRowMain": "S5HVoW_gitRowMain",
10007
- "openWithPin": "S5HVoW_openWithPin",
10008
- "producedLabel": "S5HVoW_producedLabel",
10009
- "editorTreePanel": "S5HVoW_editorTreePanel",
10010
- "producedRow": "S5HVoW_producedRow",
10011
- "tabBadge": "S5HVoW_tabBadge",
10012
- "uploadDropChatHint": "S5HVoW_uploadDropChatHint",
10013
- "editorTitle": "S5HVoW_editorTitle",
10014
- "gitDiffAdd": "S5HVoW_gitDiffAdd",
10015
- "browserBar": "S5HVoW_browserBar",
10016
- "editorBody": "S5HVoW_editorBody",
10017
- "workbench": "S5HVoW_workbench",
10018
- "terminal": "S5HVoW_terminal",
10019
- "producedMore": "S5HVoW_producedMore",
10020
- "gitHeader": "S5HVoW_gitHeader",
10021
- "editorHeader": "S5HVoW_editorHeader",
10022
- "tabTitle": "S5HVoW_tabTitle",
10023
- "tabClose": "S5HVoW_tabClose",
10024
- "explorerRow": "S5HVoW_explorerRow",
10025
- "uploadOverlay": "S5HVoW_uploadOverlay",
10026
- "editorTreeToggleActive": "S5HVoW_editorTreeToggleActive",
10027
- "gitName": "S5HVoW_gitName",
10040
+ "floatDropHint": "S5HVoW_floatDropHint",
10041
+ "editorStatus": "S5HVoW_editorStatus",
10042
+ "floatWindow": "S5HVoW_floatWindow",
10028
10043
  "dividerActive": "S5HVoW_dividerActive",
10029
- "gitWorktreeRow": "S5HVoW_gitWorktreeRow",
10044
+ "tab": "S5HVoW_tab",
10045
+ "split": "S5HVoW_split",
10046
+ "terminalBannerUrl": "S5HVoW_terminalBannerUrl",
10047
+ "gitLink": "S5HVoW_gitLink",
10048
+ "gitDiffTab": "S5HVoW_gitDiffTab",
10049
+ "floatTitle": "S5HVoW_floatTitle",
10030
10050
  "gitDiffFileChevronExpanded": "S5HVoW_gitDiffFileChevronExpanded",
10031
- "dsh-row-in": "S5HVoW_dsh-row-in",
10032
- "gitDiffTabTitle": "S5HVoW_gitDiffTabTitle",
10033
- "editorStatusError": "S5HVoW_editorStatusError",
10034
- "paneTab": "S5HVoW_paneTab",
10035
- "editor": "S5HVoW_editor",
10036
- "floatResize": "S5HVoW_floatResize",
10037
- "editorTreeResize": "S5HVoW_editorTreeResize",
10038
- "terminalRetry": "S5HVoW_terminalRetry",
10039
- "editorSearchInput": "S5HVoW_editorSearchInput",
10040
- "gitRow": "S5HVoW_gitRow",
10041
- "dropDown": "S5HVoW_dropDown",
10042
- "dropCenter": "S5HVoW_dropCenter",
10043
- "browserInput": "S5HVoW_browserInput",
10044
- "divider": "S5HVoW_divider",
10045
- "browserBlockedTitle": "S5HVoW_browserBlockedTitle",
10046
- "floatDropHint": "S5HVoW_floatDropHint",
10047
- "gitBadge": "S5HVoW_gitBadge",
10048
- "terminalDepsHint": "S5HVoW_terminalDepsHint",
10049
- "panelResize": "S5HVoW_panelResize",
10050
- "sandboxAction": "S5HVoW_sandboxAction",
10051
+ "gitLogMore": "S5HVoW_gitLogMore",
10052
+ "browserLiveCanvas": "S5HVoW_browserLiveCanvas",
10053
+ "uploadDropChatHint": "S5HVoW_uploadDropChatHint",
10054
+ "dividerRow": "S5HVoW_dividerRow",
10055
+ "dividerCol": "S5HVoW_dividerCol",
10056
+ "editorTreeToggleActive": "S5HVoW_editorTreeToggleActive",
10051
10057
  "browserBlockedActions": "S5HVoW_browserBlockedActions",
10052
- "gitDiffFilePath": "S5HVoW_gitDiffFilePath",
10053
- "gitConfirmDesc": "S5HVoW_gitConfirmDesc",
10054
- "gitCommitInput": "S5HVoW_gitCommitInput",
10055
- "gitLogSubject": "S5HVoW_gitLogSubject",
10056
- "panelBody": "S5HVoW_panelBody",
10057
- "browser": "S5HVoW_browser",
10058
- "gitDiffFileTag": "S5HVoW_gitDiffFileTag",
10059
- "gitDiffTab": "S5HVoW_gitDiffTab",
10060
- "gitDiffFile": "S5HVoW_gitDiffFile",
10061
- "terminalWrap": "S5HVoW_terminalWrap",
10062
- "terminalDepsActions": "S5HVoW_terminalDepsActions",
10063
- "dropOverlay": "S5HVoW_dropOverlay",
10064
- "gitBranchSelect": "S5HVoW_gitBranchSelect",
10065
- "uploadDropZone": "S5HVoW_uploadDropZone",
10066
- "explorerRowRevealed": "S5HVoW_explorerRowRevealed",
10067
- "explorerRef": "S5HVoW_explorerRef",
10068
- "uploadOverlayTitle": "S5HVoW_uploadOverlayTitle",
10069
- "tabBarPlus": "S5HVoW_tabBarPlus",
10070
- "terminalDepsTitle": "S5HVoW_terminalDepsTitle",
10058
+ "uploadDropHero": "S5HVoW_uploadDropHero",
10059
+ "producedLabel": "S5HVoW_producedLabel",
10060
+ "uploadOverlayProgressFill": "S5HVoW_uploadOverlayProgressFill",
10061
+ "panelHidden": "S5HVoW_panelHidden",
10062
+ "dropLeft": "S5HVoW_dropLeft",
10063
+ "explorerBody": "S5HVoW_explorerBody",
10064
+ "explorerRowDropTarget": "S5HVoW_explorerRowDropTarget",
10065
+ "terminalDepsBanner": "S5HVoW_terminalDepsBanner",
10066
+ "iconButton": "S5HVoW_iconButton",
10067
+ "uploadDropZoneText": "S5HVoW_uploadDropZoneText",
10068
+ "editorBinaryNotice": "S5HVoW_editorBinaryNotice",
10071
10069
  "terminalDepsCommandRow": "S5HVoW_terminalDepsCommandRow",
10072
- "uploadOverlayCancel": "S5HVoW_uploadOverlayCancel",
10073
- "orphanedType": "S5HVoW_orphanedType",
10074
- "paneTabHidden": "S5HVoW_paneTabHidden",
10075
- "uploadDropChatCard": "S5HVoW_uploadDropChatCard",
10076
- "browserBlockedButton": "S5HVoW_browserBlockedButton",
10077
- "editorCm": "S5HVoW_editorCm",
10078
- "terminalBanner": "S5HVoW_terminalBanner",
10079
- "gitDiff": "S5HVoW_gitDiff",
10080
- "gitLogHash": "S5HVoW_gitLogHash",
10081
- "gitLogLine2": "S5HVoW_gitLogLine2",
10082
- "uploadOverlayStatus": "S5HVoW_uploadOverlayStatus",
10083
- "gitDiffLine": "S5HVoW_gitDiffLine",
10084
- "dsh-toc-flash": "S5HVoW_dsh-toc-flash",
10070
+ "terminalDepsActions": "S5HVoW_terminalDepsActions",
10071
+ "gitHeader": "S5HVoW_gitHeader",
10072
+ "explorerCopied": "S5HVoW_explorerCopied",
10073
+ "tabBarDrop": "S5HVoW_tabBarDrop",
10074
+ "gitRowSelected": "S5HVoW_gitRowSelected",
10075
+ "gitError": "S5HVoW_gitError",
10076
+ "gitDiffHunkSection": "S5HVoW_gitDiffHunkSection",
10077
+ "gitLogMeta": "S5HVoW_gitLogMeta",
10085
10078
  "toggleCluster": "S5HVoW_toggleCluster",
10086
- "dropRight": "S5HVoW_dropRight",
10079
+ "gitDiffCode": "S5HVoW_gitDiffCode",
10080
+ "panelBody": "S5HVoW_panelBody",
10081
+ "uploadOverlayTitle": "S5HVoW_uploadOverlayTitle",
10082
+ "editorPathInput": "S5HVoW_editorPathInput",
10083
+ "terminalDepsNote": "S5HVoW_terminalDepsNote",
10084
+ "gitLogRef": "S5HVoW_gitLogRef",
10085
+ "floatClose": "S5HVoW_floatClose",
10086
+ "dropOverlay": "S5HVoW_dropOverlay",
10087
+ "tabBoundaryError": "S5HVoW_tabBoundaryError",
10088
+ "sandboxStatus": "S5HVoW_sandboxStatus",
10087
10089
  "browserBlockedDesc": "S5HVoW_browserBlockedDesc",
10088
- "producedChip": "S5HVoW_producedChip",
10089
- "editorMain": "S5HVoW_editorMain"
10090
+ "gitDiffDel": "S5HVoW_gitDiffDel",
10091
+ "editorTreeDock": "S5HVoW_editorTreeDock",
10092
+ "gitDiffCtx": "S5HVoW_gitDiffCtx",
10093
+ "gitDiffAdd": "S5HVoW_gitDiffAdd",
10094
+ "explorerName": "S5HVoW_explorerName",
10095
+ "browserLive": "S5HVoW_browserLive",
10096
+ "openWithLabel": "S5HVoW_openWithLabel",
10097
+ "gitRowMain": "S5HVoW_gitRowMain",
10098
+ "boundaryError": "S5HVoW_boundaryError",
10099
+ "uploadOverlayProgress": "S5HVoW_uploadOverlayProgress",
10100
+ "gitDiffExpand": "S5HVoW_gitDiffExpand",
10101
+ "tabBadge": "S5HVoW_tabBadge",
10102
+ "editorStatusError": "S5HVoW_editorStatusError",
10103
+ "gitCommitInput": "S5HVoW_gitCommitInput",
10104
+ "sandboxStatusOn": "S5HVoW_sandboxStatusOn",
10105
+ "uploadDropZonePill": "S5HVoW_uploadDropZonePill"
10090
10106
  };
10091
10107
  //#endregion
10092
10108
  //#region src/client/intercept.tsx
@@ -10433,6 +10449,8 @@ window.__ModuleLoader__.load({
10433
10449
  /** Probe a URL's response headers (the sidebar browser's embeddability
10434
10450
  * check; see the host's browser.probe route). */
10435
10451
  browserProbe: (url, signal) => call("browser.probe", { url }, signal),
10452
+ /** Agent 浏览器宿主的 page target 列表(host 代理 CDP /json/list)。 */
10453
+ cdpTargets: (signal) => call("cdp.targets", {}, signal),
10436
10454
  /** External open for the file tree's "open with" menu: reveal a path in
10437
10455
  * the OS file manager, or hand a custom-scheme URL (vscode://, cursor://,
10438
10456
  * zed://, custom editors) to its registered handler. The host launches
@@ -10613,6 +10631,24 @@ window.__ModuleLoader__.load({
10613
10631
  }
10614
10632
  //#endregion
10615
10633
  //#region node_modules/.pnpm/react-icons@5.7.0_react@18.3.1/node_modules/react-icons/vsc/index.mjs
10634
+ function VscRemoteExplorer(props) {
10635
+ return GenIcon({
10636
+ "tag": "svg",
10637
+ "attr": {
10638
+ "viewBox": "0 0 24 25",
10639
+ "fill": "currentColor"
10640
+ },
10641
+ "child": [{
10642
+ "tag": "path",
10643
+ "attr": {
10644
+ "fillRule": "evenodd",
10645
+ "clipRule": "evenodd",
10646
+ "d": "M9.32 20.0677C9.469 20.5907 9.667 21.0917 9.911 21.5677H3.759C3.345 21.5677 3.009 21.2317 3.009 20.8177C3.009 20.4037 3.345 20.0677 3.759 20.0677H6.008V18.5517H3C1.343 18.5517 0 17.2087 0 15.5517V5.06775C0 3.41075 1.343 2.06775 3 2.06775H16.5C18.157 2.06775 19.5 3.41075 19.5 5.06775V9.88775C19.016 9.74975 18.516 9.65275 18 9.60575V5.06775C18 4.23975 17.328 3.56775 16.5 3.56775H3C2.172 3.56775 1.5 4.23975 1.5 5.06775V15.5517C1.5 16.3797 2.172 17.0517 3 17.0517H9.039C9.016 17.3047 9 17.5587 9 17.8177C9 18.0657 9.016 18.3097 9.037 18.5517H7.507V20.0677H9.32ZM24 17.8177C24 21.5457 20.978 24.5677 17.25 24.5677C13.522 24.5677 10.5 21.5457 10.5 17.8177C10.5 14.0897 13.522 11.0677 17.25 11.0677C20.978 11.0677 24 14.0897 24 17.8177ZM17.251 19.3177C17.251 19.2187 17.231 19.1217 17.194 19.0307C17.156 18.9397 17.101 18.8567 17.031 18.7867L14.781 16.5367C14.64 16.3957 14.449 16.3167 14.25 16.3167C14.051 16.3167 13.86 16.3957 13.719 16.5367C13.578 16.6777 13.499 16.8687 13.499 17.0677C13.499 17.2667 13.578 17.4577 13.719 17.5987L15.44 19.3177L13.719 21.0367C13.578 21.1777 13.499 21.3687 13.499 21.5677C13.499 21.7667 13.578 21.9577 13.719 22.0987C13.86 22.2397 14.051 22.3187 14.25 22.3187C14.449 22.3187 14.64 22.2397 14.781 22.0987L17.031 19.8487C17.101 19.7787 17.156 19.6967 17.194 19.6057C17.232 19.5147 17.251 19.4167 17.251 19.3177ZM19.06 16.3177L20.78 14.5987C20.921 14.4577 21 14.2667 21 14.0677C21 13.8687 20.921 13.6777 20.78 13.5367C20.639 13.3957 20.448 13.3167 20.249 13.3167C20.05 13.3167 19.859 13.3957 19.718 13.5367L17.468 15.7867C17.398 15.8567 17.343 15.9387 17.305 16.0307C17.267 16.1217 17.248 16.2197 17.248 16.3177C17.248 16.4157 17.268 16.5137 17.305 16.6057C17.343 16.6967 17.398 16.7797 17.468 16.8487L19.718 19.0987C19.859 19.2397 20.05 19.3187 20.249 19.3187C20.448 19.3187 20.639 19.2397 20.78 19.0987C20.921 18.9577 21 18.7667 21 18.5677C21 18.3687 20.921 18.1777 20.78 18.0367L19.06 16.3177Z"
10647
+ },
10648
+ "child": []
10649
+ }]
10650
+ })(props);
10651
+ }
10616
10652
  function VscPinned(props) {
10617
10653
  return GenIcon({
10618
10654
  "tag": "svg",
@@ -12920,74 +12956,74 @@ window.__ModuleLoader__.load({
12920
12956
  document.head.appendChild(tag);
12921
12957
  }
12922
12958
  var SideCardSection_module_css_default = {
12923
- "pluginEntryHead": "AC9POW_pluginEntryHead",
12924
- "cardSwitchTrack": "AC9POW_cardSwitchTrack",
12925
- "selectOptionIcon": "AC9POW_selectOptionIcon",
12926
- "cardSwitchThumb": "AC9POW_cardSwitchThumb",
12927
- "pluginSearch": "AC9POW_pluginSearch",
12928
- "title": "AC9POW_title",
12929
- "grid": "AC9POW_grid",
12959
+ "typedInput": "AC9POW_typedInput",
12960
+ "switchInput": "AC9POW_switchInput",
12961
+ "card": "AC9POW_card",
12962
+ "error": "AC9POW_error",
12963
+ "cardDesc": "AC9POW_cardDesc",
12964
+ "cardIconChip": "AC9POW_cardIconChip",
12965
+ "versionBadgeTag": "AC9POW_versionBadgeTag",
12966
+ "row": "AC9POW_row",
12967
+ "selectOption": "AC9POW_selectOption",
12968
+ "openWithEditorRow": "AC9POW_openWithEditorRow",
12969
+ "groupHeading": "AC9POW_groupHeading",
12970
+ "pluginJumpBtn": "AC9POW_pluginJumpBtn",
12971
+ "pluginCopyBtn": "AC9POW_pluginCopyBtn",
12972
+ "popupDialog": "AC9POW_popupDialog",
12973
+ "group": "AC9POW_group",
12930
12974
  "pluginList": "AC9POW_pluginList",
12931
- "cardTitle": "AC9POW_cardTitle",
12932
- "switchThumb": "AC9POW_switchThumb",
12933
- "openWithFamily": "AC9POW_openWithFamily",
12975
+ "pluginName": "AC9POW_pluginName",
12976
+ "pluginGroupHeading": "AC9POW_pluginGroupHeading",
12977
+ "rowGear": "AC9POW_rowGear",
12978
+ "desc": "AC9POW_desc",
12979
+ "selectOptionText": "AC9POW_selectOptionText",
12980
+ "openWithEditorTemplate": "AC9POW_openWithEditorTemplate",
12981
+ "section": "AC9POW_section",
12982
+ "selectAnchor": "AC9POW_selectAnchor",
12983
+ "done": "AC9POW_done",
12984
+ "pluginModal": "AC9POW_pluginModal",
12934
12985
  "count": "AC9POW_count",
12935
- "popupRows": "AC9POW_popupRows",
12986
+ "cardSwitchTrack": "AC9POW_cardSwitchTrack",
12987
+ "openWithHint": "AC9POW_openWithHint",
12988
+ "cardTitle": "AC9POW_cardTitle",
12936
12989
  "cardMain": "AC9POW_cardMain",
12937
- "card": "AC9POW_card",
12990
+ "openWithFamily": "AC9POW_openWithFamily",
12991
+ "cardSwitch": "AC9POW_cardSwitch",
12992
+ "pluginGroup": "AC9POW_pluginGroup",
12993
+ "cardSwitchThumb": "AC9POW_cardSwitchThumb",
12938
12994
  "switch": "AC9POW_switch",
12939
- "openWithEditorRow": "AC9POW_openWithEditorRow",
12940
- "selectOptionText": "AC9POW_selectOptionText",
12941
12995
  "openWithRemove": "AC9POW_openWithRemove",
12942
- "openWithHint": "AC9POW_openWithHint",
12943
- "popupRow": "AC9POW_popupRow",
12944
- "pluginInstall": "AC9POW_pluginInstall",
12945
- "pluginDesc": "AC9POW_pluginDesc",
12946
- "desc": "AC9POW_desc",
12947
- "percentInput": "AC9POW_percentInput",
12948
- "typedInput": "AC9POW_typedInput",
12949
12996
  "intro": "AC9POW_intro",
12950
- "done": "AC9POW_done",
12951
- "popupDialog": "AC9POW_popupDialog",
12952
- "openWithEditorTemplate": "AC9POW_openWithEditorTemplate",
12953
- "versionBadgeName": "AC9POW_versionBadgeName",
12954
- "pluginEntries": "AC9POW_pluginEntries",
12955
12997
  "switchTrack": "AC9POW_switchTrack",
12956
- "groupHeading": "AC9POW_groupHeading",
12957
- "cardSwitch": "AC9POW_cardSwitch",
12958
- "cssTextArea": "AC9POW_cssTextArea",
12959
- "versionBadge": "AC9POW_versionBadge",
12960
- "versionBadgeTag": "AC9POW_versionBadgeTag",
12961
- "control": "AC9POW_control",
12962
- "selectOption": "AC9POW_selectOption",
12998
+ "suffix": "AC9POW_suffix",
12963
12999
  "selectAnchorText": "AC9POW_selectAnchorText",
13000
+ "typedInputNumber": "AC9POW_typedInputNumber",
13001
+ "cardOn": "AC9POW_cardOn",
13002
+ "control": "AC9POW_control",
13003
+ "selectAnchorIcon": "AC9POW_selectAnchorIcon",
13004
+ "pluginDesc": "AC9POW_pluginDesc",
12964
13005
  "pluginTopicBtn": "AC9POW_pluginTopicBtn",
13006
+ "popupRow": "AC9POW_popupRow",
13007
+ "switchThumb": "AC9POW_switchThumb",
13008
+ "pluginSearch": "AC9POW_pluginSearch",
13009
+ "cssTextArea": "AC9POW_cssTextArea",
13010
+ "pluginInstall": "AC9POW_pluginInstall",
13011
+ "grid": "AC9POW_grid",
13012
+ "title": "AC9POW_title",
13013
+ "pluginEntryActions": "AC9POW_pluginEntryActions",
13014
+ "popupRows": "AC9POW_popupRows",
13015
+ "pluginEntryHead": "AC9POW_pluginEntryHead",
13016
+ "versionBadgeName": "AC9POW_versionBadgeName",
13017
+ "percentInput": "AC9POW_percentInput",
13018
+ "pluginEntry": "AC9POW_pluginEntry",
13019
+ "openWithEditorInput": "AC9POW_openWithEditorInput",
13020
+ "selectOptionIcon": "AC9POW_selectOptionIcon",
13021
+ "pluginEntries": "AC9POW_pluginEntries",
12965
13022
  "pluginEmpty": "AC9POW_pluginEmpty",
12966
- "cardIconChip": "AC9POW_cardIconChip",
12967
- "cardDesc": "AC9POW_cardDesc",
12968
13023
  "addCard": "AC9POW_addCard",
12969
- "cardOn": "AC9POW_cardOn",
12970
- "pluginCopyBtn": "AC9POW_pluginCopyBtn",
12971
- "pluginEntryActions": "AC9POW_pluginEntryActions",
12972
- "pluginJumpBtn": "AC9POW_pluginJumpBtn",
12973
- "error": "AC9POW_error",
12974
13024
  "rowText": "AC9POW_rowText",
12975
- "openWithEditorInput": "AC9POW_openWithEditorInput",
12976
- "section": "AC9POW_section",
12977
- "selectAnchor": "AC9POW_selectAnchor",
12978
- "selectAnchorIcon": "AC9POW_selectAnchorIcon",
12979
- "switchInput": "AC9POW_switchInput",
12980
- "pluginGroup": "AC9POW_pluginGroup",
12981
- "row": "AC9POW_row",
12982
- "group": "AC9POW_group",
12983
- "suffix": "AC9POW_suffix",
12984
- "pluginModal": "AC9POW_pluginModal",
12985
- "pluginEntry": "AC9POW_pluginEntry",
12986
- "pluginName": "AC9POW_pluginName",
12987
- "rowGear": "AC9POW_rowGear",
12988
13025
  "cardSettings": "AC9POW_cardSettings",
12989
- "pluginGroupHeading": "AC9POW_pluginGroupHeading",
12990
- "typedInputNumber": "AC9POW_typedInputNumber",
13026
+ "versionBadge": "AC9POW_versionBadge",
12991
13027
  "cardTop": "AC9POW_cardTop"
12992
13028
  };
12993
13029
  //#endregion
@@ -14706,58 +14742,58 @@ Mode: this is a continuable side conversation. Your answers stay in this side th
14706
14742
  document.head.appendChild(tag);
14707
14743
  }
14708
14744
  var SubagentView_module_css_default = {
14709
- "jobsKind": "F2T6aa_jobsKind",
14710
- "subagentRowDisabled": "F2T6aa_subagentRowDisabled",
14711
- "subagentError": "F2T6aa_subagentError",
14712
- "jobsTitle": "F2T6aa_jobsTitle",
14713
- "subagentEmpty": "F2T6aa_subagentEmpty",
14714
- "jobsLabel": "F2T6aa_jobsLabel",
14715
- "jobsPaneClose": "F2T6aa_jobsPaneClose",
14716
- "jobsPanePre": "F2T6aa_jobsPanePre",
14745
+ "subagentRowLoading": "F2T6aa_subagentRowLoading",
14746
+ "jobsList": "F2T6aa_jobsList",
14717
14747
  "jobs": "F2T6aa_jobs",
14718
- "subagentCount": "F2T6aa_subagentCount",
14719
- "jobsLabelLine": "F2T6aa_jobsLabelLine",
14720
- "jobsKillError": "F2T6aa_jobsKillError",
14721
- "jobsPaneDot": "F2T6aa_jobsPaneDot",
14748
+ "subagentContent": "F2T6aa_subagentContent",
14749
+ "jobsRow": "F2T6aa_jobsRow",
14750
+ "subagentRefresh": "F2T6aa_subagentRefresh",
14751
+ "jobsRowMain": "F2T6aa_jobsRowMain",
14752
+ "jobsDot": "F2T6aa_jobsDot",
14753
+ "subagentLiveArgs": "F2T6aa_subagentLiveArgs",
14754
+ "subagentTitle": "F2T6aa_subagentTitle",
14722
14755
  "jobsContent": "F2T6aa_jobsContent",
14723
- "subagentRow": "F2T6aa_subagentRow",
14724
- "jobsPaneHeader": "F2T6aa_jobsPaneHeader",
14725
- "jobsPaneHint": "F2T6aa_jobsPaneHint",
14756
+ "jobsRowSettled": "F2T6aa_jobsRowSettled",
14757
+ "jobsKill": "F2T6aa_jobsKill",
14758
+ "jobsKillError": "F2T6aa_jobsKillError",
14759
+ "subagentEmpty": "F2T6aa_subagentEmpty",
14760
+ "jobsKillArmed": "F2T6aa_jobsKillArmed",
14726
14761
  "subagentHeader": "F2T6aa_subagentHeader",
14727
- "subagentLiveArgs": "F2T6aa_subagentLiveArgs",
14728
- "subagentRowLoading": "F2T6aa_subagentRowLoading",
14762
+ "jobsPane": "F2T6aa_jobsPane",
14763
+ "jobsPaneDot": "F2T6aa_jobsPaneDot",
14764
+ "jobsPaneClose": "F2T6aa_jobsPaneClose",
14729
14765
  "subagentSecondary": "F2T6aa_subagentSecondary",
14730
- "jobsList": "F2T6aa_jobsList",
14766
+ "jobsKind": "F2T6aa_jobsKind",
14767
+ "jobsHeader": "F2T6aa_jobsHeader",
14768
+ "jobsRowSelected": "F2T6aa_jobsRowSelected",
14769
+ "subagent": "F2T6aa_subagent",
14731
14770
  "jobsPaneStatus": "F2T6aa_jobsPaneStatus",
14732
- "historyToggle": "F2T6aa_historyToggle",
14733
- "subagentDot": "F2T6aa_subagentDot",
14734
- "subagentRefresh": "F2T6aa_subagentRefresh",
14735
- "subagentLabel": "F2T6aa_subagentLabel",
14736
- "jobsRowMain": "F2T6aa_jobsRowMain",
14737
- "subagentLiveTool": "F2T6aa_subagentLiveTool",
14771
+ "jobsLabelLine": "F2T6aa_jobsLabelLine",
14738
14772
  "subagentNode": "F2T6aa_subagentNode",
14739
- "jobsKillArmed": "F2T6aa_jobsKillArmed",
14773
+ "subagentLabel": "F2T6aa_subagentLabel",
14774
+ "subagentChildren": "F2T6aa_subagentChildren",
14775
+ "subagentDot": "F2T6aa_subagentDot",
14776
+ "subagentErrorRetry": "F2T6aa_subagentErrorRetry",
14777
+ "subagentCount": "F2T6aa_subagentCount",
14778
+ "subagentError": "F2T6aa_subagentError",
14740
14779
  "jobsPaneLabel": "F2T6aa_jobsPaneLabel",
14780
+ "jobsPanePre": "F2T6aa_jobsPanePre",
14741
14781
  "jobsPaneError": "F2T6aa_jobsPaneError",
14782
+ "subagentLive": "F2T6aa_subagentLive",
14783
+ "historyToggle": "F2T6aa_historyToggle",
14784
+ "subagentRow": "F2T6aa_subagentRow",
14742
14785
  "subagentLiveText": "F2T6aa_subagentLiveText",
14743
- "jobsRowSelected": "F2T6aa_jobsRowSelected",
14744
- "subagentChildren": "F2T6aa_subagentChildren",
14786
+ "subagentEmptyHint": "F2T6aa_subagentEmptyHint",
14745
14787
  "jobsSecondary": "F2T6aa_jobsSecondary",
14746
- "subagentTitle": "F2T6aa_subagentTitle",
14788
+ "jobsPaneHeader": "F2T6aa_jobsPaneHeader",
14789
+ "jobsLabel": "F2T6aa_jobsLabel",
14747
14790
  "subagentRowActive": "F2T6aa_subagentRowActive",
14748
- "subagentLive": "F2T6aa_subagentLive",
14749
- "subagentErrorRetry": "F2T6aa_subagentErrorRetry",
14750
- "jobsHeader": "F2T6aa_jobsHeader",
14751
- "jobsCount": "F2T6aa_jobsCount",
14791
+ "jobsPaneHint": "F2T6aa_jobsPaneHint",
14752
14792
  "subagentBody": "F2T6aa_subagentBody",
14753
- "jobsRow": "F2T6aa_jobsRow",
14754
- "subagent": "F2T6aa_subagent",
14755
- "jobsRowSettled": "F2T6aa_jobsRowSettled",
14756
- "subagentEmptyHint": "F2T6aa_subagentEmptyHint",
14757
- "jobsPane": "F2T6aa_jobsPane",
14758
- "subagentContent": "F2T6aa_subagentContent",
14759
- "jobsKill": "F2T6aa_jobsKill",
14760
- "jobsDot": "F2T6aa_jobsDot"
14793
+ "subagentLiveTool": "F2T6aa_subagentLiveTool",
14794
+ "jobsTitle": "F2T6aa_jobsTitle",
14795
+ "jobsCount": "F2T6aa_jobsCount",
14796
+ "subagentRowDisabled": "F2T6aa_subagentRowDisabled"
14761
14797
  };
14762
14798
  //#endregion
14763
14799
  //#region src/client/SubagentView.tsx
@@ -15864,45 +15900,45 @@ Mode: this is a continuable side conversation. Your answers stay in this side th
15864
15900
  document.head.appendChild(tag);
15865
15901
  }
15866
15902
  var SideChatView_module_css_default = {
15903
+ "sidechatStatus": "_64UoUa_sidechatStatus",
15904
+ "sidechatRowLabel": "_64UoUa_sidechatRowLabel",
15905
+ "sidechatComposerBar": "_64UoUa_sidechatComposerBar",
15906
+ "sidechatUser": "_64UoUa_sidechatUser",
15907
+ "sidechatRow": "_64UoUa_sidechatRow",
15867
15908
  "sidechatIconBtn": "_64UoUa_sidechatIconBtn",
15909
+ "sidechatRowMeta": "_64UoUa_sidechatRowMeta",
15910
+ "sidechatRowProse": "_64UoUa_sidechatRowProse",
15911
+ "sidechatComposer": "_64UoUa_sidechatComposer",
15912
+ "sidechatRowCode": "_64UoUa_sidechatRowCode",
15913
+ "sidechatSendBtn": "_64UoUa_sidechatSendBtn",
15914
+ "sidechatRowFailed": "_64UoUa_sidechatRowFailed",
15868
15915
  "sidechatHint": "_64UoUa_sidechatHint",
15916
+ "sidechatRowLine": "_64UoUa_sidechatRowLine",
15869
15917
  "sidechatError": "_64UoUa_sidechatError",
15870
- "sidechatStatusText": "_64UoUa_sidechatStatusText",
15871
- "sidechat": "_64UoUa_sidechat",
15872
- "sidechatHero": "_64UoUa_sidechatHero",
15918
+ "sidechatSweep": "_64UoUa_sidechatSweep",
15919
+ "sidechatHeroDesc": "_64UoUa_sidechatHeroDesc",
15920
+ "sidechatShimmerText": "_64UoUa_sidechatShimmerText",
15873
15921
  "sidechatHeaderSpacer": "_64UoUa_sidechatHeaderSpacer",
15922
+ "sidechatAssistant": "_64UoUa_sidechatAssistant",
15923
+ "sidechatComposerInput": "_64UoUa_sidechatComposerInput",
15924
+ "sidechatFadeIn": "_64UoUa_sidechatFadeIn",
15874
15925
  "sidechatRowMono": "_64UoUa_sidechatRowMono",
15875
15926
  "sidechatRowBody": "_64UoUa_sidechatRowBody",
15876
- "sidechatComposerMeta": "_64UoUa_sidechatComposerMeta",
15877
15927
  "sidechatScroll": "_64UoUa_sidechatScroll",
15878
- "sidechatRow": "_64UoUa_sidechatRow",
15879
- "sidechatAgentBadge": "_64UoUa_sidechatAgentBadge",
15880
- "sidechatRowCode": "_64UoUa_sidechatRowCode",
15881
- "sidechatDetailHeader": "_64UoUa_sidechatDetailHeader",
15928
+ "sidechatHeroTitle": "_64UoUa_sidechatHeroTitle",
15882
15929
  "sidechatRowIn": "_64UoUa_sidechatRowIn",
15883
- "sidechatRowProse": "_64UoUa_sidechatRowProse",
15884
- "sidechatUser": "_64UoUa_sidechatUser",
15885
- "sidechatAssistant": "_64UoUa_sidechatAssistant",
15886
- "sidechatBtnIn": "_64UoUa_sidechatBtnIn",
15887
- "sidechatComposerBar": "_64UoUa_sidechatComposerBar",
15888
- "sidechatRowStatic": "_64UoUa_sidechatRowStatic",
15889
- "sidechatPrimaryBtn": "_64UoUa_sidechatPrimaryBtn",
15890
- "sidechatRowChevron": "_64UoUa_sidechatRowChevron",
15891
- "sidechatSweep": "_64UoUa_sidechatSweep",
15892
- "sidechatComposerInput": "_64UoUa_sidechatComposerInput",
15930
+ "sidechatDetailHeader": "_64UoUa_sidechatDetailHeader",
15931
+ "sidechatComposerMeta": "_64UoUa_sidechatComposerMeta",
15932
+ "sidechatStatusText": "_64UoUa_sidechatStatusText",
15893
15933
  "sidechatHeaderDot": "_64UoUa_sidechatHeaderDot",
15894
- "sidechatRowFailed": "_64UoUa_sidechatRowFailed",
15895
- "sidechatRowLine": "_64UoUa_sidechatRowLine",
15896
- "sidechatRowMeta": "_64UoUa_sidechatRowMeta",
15897
- "sidechatShimmerText": "_64UoUa_sidechatShimmerText",
15898
- "sidechatRowSummary": "_64UoUa_sidechatRowSummary",
15899
- "sidechatHeroTitle": "_64UoUa_sidechatHeroTitle",
15900
- "sidechatStatus": "_64UoUa_sidechatStatus",
15901
- "sidechatComposer": "_64UoUa_sidechatComposer",
15902
- "sidechatFadeIn": "_64UoUa_sidechatFadeIn",
15903
- "sidechatRowLabel": "_64UoUa_sidechatRowLabel",
15904
- "sidechatHeroDesc": "_64UoUa_sidechatHeroDesc",
15905
- "sidechatSendBtn": "_64UoUa_sidechatSendBtn"
15934
+ "sidechatRowChevron": "_64UoUa_sidechatRowChevron",
15935
+ "sidechatHero": "_64UoUa_sidechatHero",
15936
+ "sidechatPrimaryBtn": "_64UoUa_sidechatPrimaryBtn",
15937
+ "sidechatRowStatic": "_64UoUa_sidechatRowStatic",
15938
+ "sidechatBtnIn": "_64UoUa_sidechatBtnIn",
15939
+ "sidechat": "_64UoUa_sidechat",
15940
+ "sidechatAgentBadge": "_64UoUa_sidechatAgentBadge",
15941
+ "sidechatRowSummary": "_64UoUa_sidechatRowSummary"
15906
15942
  };
15907
15943
  //#endregion
15908
15944
  //#region src/client/SideChatView.tsx
@@ -16651,6 +16687,268 @@ Mode: this is a continuable side conversation. Your answers stay in this side th
16651
16687
  });
16652
16688
  }
16653
16689
  //#endregion
16690
+ //#region src/client/LiveView.tsx
16691
+ /**
16692
+ * Agent 浏览器实况(CDP screencast + 输入回传,2026-09-12 方案 2)。
16693
+ *
16694
+ * 数据面:KCoder 桌面端 browser-host 维护一个无头 Chromium(固定 CDP
16695
+ * 转发地址 127.0.0.1:9223,与 playwright MCP `--cdp-endpoint` 共用)。
16696
+ * 本组件作为第二个 CDP 客户端:
16697
+ * - target 列表经宿主代理 `/sidebar/api`(CDP HTTP 无 CORS 头);
16698
+ * - screencast/输入走 renderer 直连 `ws://127.0.0.1:9223/devtools/page/<id>`
16699
+ * (WebSocket 不受 CORS 约束,宿主未设 CSP)。
16700
+ *
16701
+ * 连接模型:`attachedId`(用户显式选择)优先,否则自动跟随「最新创建的
16702
+ * page target」;连接按 effectiveId 建立与重建,列表仅在内容变化时更新
16703
+ * state(JSON 比对),避免轮询引起重连抖动。
16704
+ *
16705
+ * 交互:screencast 帧绘到 canvas;指针/滚轮按 canvas→viewport 比例回传
16706
+ * (Input.dispatchMouseEvent);可打印字符经 Input.insertText,控制键走
16707
+ * rawKeyDown/keyUp。视口统一 1280×800(Emulation.setDeviceMetricsOverride),
16708
+ * canvas 等比缩放显示。
16709
+ */
16710
+ /** 与 KCoder desktop/main/browser-host.ts 的 BROWSER_HOST_PORT 一致。 */
16711
+ const CDP_WS = "ws://127.0.0.1:9223";
16712
+ /** 实况视口(CDP 侧强制,帧与输入坐标以此为基准)。 */
16713
+ const VIEW_W = 1280;
16714
+ const VIEW_H = 800;
16715
+ function LiveView() {
16716
+ const canvasRef = (0, react.useRef)(null);
16717
+ const wsRef = (0, react.useRef)(null);
16718
+ const [status, setStatus] = (0, react.useState)("connecting");
16719
+ const [targets, setTargets] = (0, react.useState)([]);
16720
+ const [hostDown, setHostDown] = (0, react.useState)(false);
16721
+ /** 用户显式钉住的 target(null = 自动跟随最新)。 */
16722
+ const [pinnedId, setPinnedId] = (0, react.useState)(null);
16723
+ /** 连接代数:手动重连/换 target 时 +1。 */
16724
+ const [epoch, setEpoch] = (0, react.useState)(0);
16725
+ (0, react.useEffect)(() => {
16726
+ let alive = true;
16727
+ const poll = async () => {
16728
+ try {
16729
+ const { targets: list } = await api.cdpTargets();
16730
+ if (!alive) return;
16731
+ setHostDown(false);
16732
+ setTargets((prev) => JSON.stringify(prev) === JSON.stringify(list) ? prev : list);
16733
+ } catch {
16734
+ if (alive) setHostDown(true);
16735
+ }
16736
+ };
16737
+ poll();
16738
+ const timer = setInterval(() => {
16739
+ poll();
16740
+ }, 3e3);
16741
+ return () => {
16742
+ alive = false;
16743
+ clearInterval(timer);
16744
+ };
16745
+ }, []);
16746
+ /** 实际附加的 target:id 钉住且存活 → 它;否则自动跟随最新页。 */
16747
+ const effectiveId = (0, react.useMemo)(() => {
16748
+ if (pinnedId !== null && targets.some((tg) => tg.id === pinnedId)) return pinnedId;
16749
+ return targets.length > 0 ? targets[targets.length - 1].id : null;
16750
+ }, [pinnedId, targets]);
16751
+ (0, react.useEffect)(() => {
16752
+ if (effectiveId === null) {
16753
+ setStatus("idle");
16754
+ return;
16755
+ }
16756
+ let cancelled = false;
16757
+ let socket = null;
16758
+ let msgId = 0;
16759
+ setStatus("connecting");
16760
+ socket = new WebSocket(`${CDP_WS}/devtools/page/${effectiveId}`);
16761
+ wsRef.current = socket;
16762
+ const send = (method, params) => {
16763
+ if (socket !== null && socket.readyState === WebSocket.OPEN) socket.send(JSON.stringify({
16764
+ id: ++msgId,
16765
+ method,
16766
+ params: params ?? {}
16767
+ }));
16768
+ };
16769
+ const draw = (data) => {
16770
+ const el = canvasRef.current;
16771
+ if (el === null || cancelled) return;
16772
+ const img = new Image();
16773
+ img.onload = () => {
16774
+ if (cancelled) return;
16775
+ el.width = img.naturalWidth;
16776
+ el.height = img.naturalHeight;
16777
+ el.getContext("2d")?.drawImage(img, 0, 0);
16778
+ };
16779
+ img.src = `data:image/jpeg;base64,${data}`;
16780
+ };
16781
+ socket.onopen = () => {
16782
+ if (cancelled) return;
16783
+ setStatus("live");
16784
+ send("Page.enable");
16785
+ send("Runtime.enable");
16786
+ send("Emulation.setDeviceMetricsOverride", {
16787
+ width: VIEW_W,
16788
+ height: VIEW_H,
16789
+ deviceScaleFactor: 1,
16790
+ mobile: false
16791
+ });
16792
+ send("Page.startScreencast", {
16793
+ format: "jpeg",
16794
+ quality: 62,
16795
+ maxWidth: VIEW_W,
16796
+ maxHeight: VIEW_H,
16797
+ everyNthFrame: 1
16798
+ });
16799
+ };
16800
+ socket.onmessage = (event) => {
16801
+ const msg = JSON.parse(event.data);
16802
+ if (msg.method === "Page.screencastFrame") {
16803
+ const p = msg.params ?? {};
16804
+ if (typeof p.data === "string") draw(p.data);
16805
+ if (typeof p.screencastFrameId === "string") send("Page.screencastFrameAck", { screencastFrameId: p.screencastFrameId });
16806
+ }
16807
+ };
16808
+ socket.onclose = () => {
16809
+ if (!cancelled) setStatus("connecting");
16810
+ };
16811
+ socket.onerror = () => {
16812
+ if (!cancelled) setStatus("down");
16813
+ };
16814
+ return () => {
16815
+ cancelled = true;
16816
+ socket?.close();
16817
+ wsRef.current = null;
16818
+ };
16819
+ }, [effectiveId]);
16820
+ const sendInput = (method, params) => {
16821
+ wsRef.current?.send(JSON.stringify({
16822
+ id: Math.floor(Math.random() * 1e9),
16823
+ method,
16824
+ params
16825
+ }));
16826
+ };
16827
+ const scaleOf = (el) => {
16828
+ const shown = el.getBoundingClientRect().width;
16829
+ return shown > 0 ? VIEW_W / shown : 1;
16830
+ };
16831
+ const posOf = (e) => {
16832
+ const rect = e.currentTarget.getBoundingClientRect();
16833
+ const k = scaleOf(e.currentTarget);
16834
+ return {
16835
+ x: (e.clientX - rect.left) * k,
16836
+ y: (e.clientY - rect.top) * k
16837
+ };
16838
+ };
16839
+ const onPointerDown = (e) => {
16840
+ const p = posOf(e);
16841
+ sendInput("Input.dispatchMouseEvent", {
16842
+ type: "mousePressed",
16843
+ x: p.x,
16844
+ y: p.y,
16845
+ button: "left",
16846
+ clickCount: 1
16847
+ });
16848
+ };
16849
+ const onPointerUp = (e) => {
16850
+ const p = posOf(e);
16851
+ sendInput("Input.dispatchMouseEvent", {
16852
+ type: "mouseReleased",
16853
+ x: p.x,
16854
+ y: p.y,
16855
+ button: "left",
16856
+ clickCount: 1
16857
+ });
16858
+ };
16859
+ const onPointerMove = (e) => {
16860
+ if (e.buttons === 0) return;
16861
+ const p = posOf(e);
16862
+ sendInput("Input.dispatchMouseEvent", {
16863
+ type: "mouseMoved",
16864
+ x: p.x,
16865
+ y: p.y,
16866
+ button: "left"
16867
+ });
16868
+ };
16869
+ const onWheel = (e) => {
16870
+ const p = posOf(e);
16871
+ sendInput("Input.dispatchMouseEvent", {
16872
+ type: "mouseWheel",
16873
+ x: p.x,
16874
+ y: p.y,
16875
+ deltaX: e.deltaX,
16876
+ deltaY: e.deltaY
16877
+ });
16878
+ };
16879
+ const onKeyDown = (e) => {
16880
+ const code = {
16881
+ Enter: 13,
16882
+ Backspace: 8,
16883
+ Tab: 9,
16884
+ Escape: 27,
16885
+ ArrowUp: 38,
16886
+ ArrowDown: 40,
16887
+ ArrowLeft: 37,
16888
+ ArrowRight: 39
16889
+ }[e.key];
16890
+ if (code !== void 0) {
16891
+ sendInput("Input.dispatchKeyEvent", {
16892
+ type: "rawKeyDown",
16893
+ windowsVirtualKeyCode: code,
16894
+ key: e.key
16895
+ });
16896
+ sendInput("Input.dispatchKeyEvent", {
16897
+ type: "keyUp",
16898
+ windowsVirtualKeyCode: code,
16899
+ key: e.key
16900
+ });
16901
+ return;
16902
+ }
16903
+ if (e.key.length === 1) sendInput("Input.insertText", { text: e.key });
16904
+ };
16905
+ const statusText = hostDown || status === "down" ? t("browserLiveDown") : status === "live" ? targets.find((tg) => tg.id === effectiveId)?.url ?? t("browserLiveTargetNone") : effectiveId === null ? t("browserLiveTargetNone") : t("browserLiveConnecting");
16906
+ return /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
16907
+ className: "browserLive",
16908
+ children: [/* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
16909
+ className: "browserLiveStatus",
16910
+ children: [
16911
+ /* @__PURE__ */ (0, react_jsx_runtime.jsx)("button", {
16912
+ type: "button",
16913
+ onClick: () => {
16914
+ setEpoch((e) => e + 1);
16915
+ },
16916
+ children: t("refresh")
16917
+ }),
16918
+ /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("select", {
16919
+ className: "browserLiveTarget",
16920
+ value: effectiveId ?? "",
16921
+ onChange: (e) => {
16922
+ setPinnedId(e.target.value === "" ? null : e.target.value);
16923
+ },
16924
+ children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)("option", {
16925
+ value: "",
16926
+ children: t("browserLiveFollowLatest")
16927
+ }), targets.map((tg) => /* @__PURE__ */ (0, react_jsx_runtime.jsx)("option", {
16928
+ value: tg.id,
16929
+ children: tg.title || tg.url
16930
+ }, tg.id))]
16931
+ }),
16932
+ /* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", { children: statusText })
16933
+ ]
16934
+ }), effectiveId !== null && status !== "idle" ? /* @__PURE__ */ (0, react_jsx_runtime.jsx)("canvas", {
16935
+ ref: canvasRef,
16936
+ className: "browserLiveCanvas",
16937
+ width: VIEW_W,
16938
+ height: VIEW_H,
16939
+ tabIndex: 0,
16940
+ onPointerDown,
16941
+ onPointerUp,
16942
+ onPointerMove,
16943
+ onWheel,
16944
+ onKeyDown
16945
+ }) : /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
16946
+ className: "browserStart",
16947
+ children: hostDown ? t("browserLiveDown") : t("browserLiveTargetNone")
16948
+ })]
16949
+ });
16950
+ }
16951
+ //#endregion
16654
16952
  //#region src/client/BrowserView.tsx
16655
16953
  /**
16656
16954
  * The built-in browser tab: an address bar plus a sandboxed iframe.
@@ -16710,7 +17008,7 @@ Mode: this is a continuable side conversation. Your answers stay in this side th
16710
17008
  return isAllowedLoopbackUrl(url, allowedLoopback) ? BROWSER_IFRAME_SANDBOX_SAME_ORIGIN : BROWSER_IFRAME_SANDBOX;
16711
17009
  }
16712
17010
  function BrowserView(props) {
16713
- const { store, tab } = props;
17011
+ const { store, tab, ctx } = props;
16714
17012
  const [url, setUrl] = (0, react.useState)(tab.path);
16715
17013
  const [input, setInput] = (0, react.useState)(tab.path ?? "");
16716
17014
  /** Blocked/invalid hint shown under the address bar (null = none). */
@@ -16729,6 +17027,9 @@ Mode: this is a continuable side conversation. Your answers stay in this side th
16729
17027
  const [embedBlocked, setEmbedBlocked] = (0, react.useState)(null);
16730
17028
  /** The user asked to load the refused site anyway (keeps the plain iframe). */
16731
17029
  const [forceEmbed, setForceEmbed] = (0, react.useState)(false);
17030
+ /** Agent 实况模式(CDP screencast):开启后本 tab 只显示 agent 无头
17031
+ * 浏览器的实况画面,地址栏/iframe 暂停。会话态开关,不持久化。 */
17032
+ const [live, setLive] = (0, react.useState)(false);
16732
17033
  (0, react.useEffect)(() => {
16733
17034
  if (url === void 0) return;
16734
17035
  let cancelled = false;
@@ -16741,6 +17042,28 @@ Mode: this is a continuable side conversation. Your answers stay in this side th
16741
17042
  cancelled = true;
16742
17043
  };
16743
17044
  }, [url]);
17045
+ const autoRaised = (0, react.useRef)(false);
17046
+ (0, react.useEffect)(() => {
17047
+ if (live || autoRaised.current) return;
17048
+ const timer = setInterval(async () => {
17049
+ if (autoRaised.current) return;
17050
+ try {
17051
+ const { targets: list } = await api.cdpTargets();
17052
+ const agentPages = list.filter((t) => t.url !== "" && !t.url.startsWith("about:"));
17053
+ const had = autoRaised.current;
17054
+ if (agentPages.length > 0 && !had) {
17055
+ autoRaised.current = true;
17056
+ setLive(true);
17057
+ try {
17058
+ ctx.betterSidebar?.openTab?.({ type: "browser" });
17059
+ } catch {}
17060
+ }
17061
+ } catch {}
17062
+ }, 3e3);
17063
+ return () => {
17064
+ clearInterval(timer);
17065
+ };
17066
+ }, [live, ctx]);
16744
17067
  const persist = (nextUrl) => {
16745
17068
  let host = nextUrl;
16746
17069
  try {
@@ -16838,6 +17161,17 @@ Mode: this is a continuable side conversation. Your answers stay in this side th
16838
17161
  },
16839
17162
  children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(_deepseek_ai_dsh_client_ui_primitives.IconLinkOutline14, {})
16840
17163
  }),
17164
+ /* @__PURE__ */ (0, react_jsx_runtime.jsx)("button", {
17165
+ type: "button",
17166
+ className: sidebar_module_css_default.iconButton,
17167
+ "aria-label": t("browserLive"),
17168
+ title: t("browserLive"),
17169
+ "aria-pressed": live,
17170
+ onClick: () => {
17171
+ setLive((value) => !value);
17172
+ },
17173
+ children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(VscRemoteExplorer, { size: 15 })
17174
+ }),
16841
17175
  /* @__PURE__ */ (0, react_jsx_runtime.jsx)("button", {
16842
17176
  type: "button",
16843
17177
  className: sidebar_module_css_default.iconButton,
@@ -16866,7 +17200,7 @@ Mode: this is a continuable side conversation. Your answers stay in this side th
16866
17200
  setLocalUnlock(false);
16867
17201
  }
16868
17202
  }),
16869
- url === void 0 ? /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
17203
+ live ? /* @__PURE__ */ (0, react_jsx_runtime.jsx)(LiveView, {}) : url === void 0 ? /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
16870
17204
  className: sidebar_module_css_default.browserStart,
16871
17205
  children: t("browserStart")
16872
17206
  }) : embedBlocked !== null && !forceEmbed ? /* @__PURE__ */ (0, react_jsx_runtime.jsx)(BrowserEmbedBlocked, {