@chatcode/chatcode-cli 3.0.4 → 3.0.5-rc.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (143) hide show
  1. package/README.i18n.yaml +6 -6
  2. package/README.md +10 -4
  3. package/README.zh.md +10 -4
  4. package/lib/bin.js +23 -9
  5. package/lib/{command-errors-Ca64Lgba.js → command-errors-CsRCh0gk.js} +12 -12
  6. package/lib/{command-trees-CVc4Xu_z.js → command-trees-CD_43rxX.js} +2 -2
  7. package/lib/{component-identity-6aEut5Yt.js → component-identity-DGA2-TeB.js} +3 -3
  8. package/lib/{dump-config-ZzrfvtnX.js → dump-config-D8kXfdTs.js} +1 -1
  9. package/lib/dump-config-DuCc-QB7.js +2 -0
  10. package/lib/{dump-config-schema-BlO-eZ-J.js → dump-config-schema-CtZbroi6.js} +2 -2
  11. package/lib/{extension-events-C7MUpqVE.js → extension-events-D0BjYRqT.js} +21 -21
  12. package/lib/{host-access-CLbyAGT5.js → host-access-DLJjuR07.js} +1 -1
  13. package/lib/{keymap-82JwLLHe.js → keymap-C4cs2IBN.js} +2 -2
  14. package/lib/{plugin-BlQlWIR5.js → plugin-CGtTByud.js} +801 -456
  15. package/lib/{plugin-BZdazFXS.js → plugin-CYw-MBRn.js} +1 -1
  16. package/lib/{profile-boot-B0aEEQIR.js → profile-boot-CffsubnV.js} +7 -7
  17. package/lib/profile-boot.js +1 -1
  18. package/lib/{scenes-BNS0ZFyQ.js → scenes-CbAGK5Uy.js} +3 -3
  19. package/lib/{settings-sections-CXH24cu5.js → settings-sections-DYKDa04e.js} +3 -3
  20. package/lib/{statusBarSettings-BAMzn8fX.js → statusBarSettings-T1m8xad4.js} +3 -3
  21. package/lib/{themes-DXUIvP7m.js → themes-BY2ui1Dv.js} +12 -12
  22. package/lib/tui-compat-command-trees.js +1 -1
  23. package/lib/tui-compat-extensions.js +3 -3
  24. package/lib/tui-compat-plugin-host.js +5 -5
  25. package/lib/tui-compat-scenes.js +1 -1
  26. package/lib/tui-compat-settings-sections.js +1 -1
  27. package/lib/tui-compat-working-activity.js +1 -1
  28. package/lib/tui-compat-workspaces.js +1 -1
  29. package/lib/tui-compat.js +7 -7
  30. package/lib/types/bin.d.ts +9 -0
  31. package/lib/types/tui-compat.d.ts +1 -1
  32. package/lib/types/web-instance-process.d.ts +20 -0
  33. package/lib/{web-instance-DbP7IHPv.js → web-instance-D_Ppi2Zo.js} +176 -14
  34. package/lib/{web-instance-B0jec7cq.js → web-instance-amvCJWnq.js} +1 -1
  35. package/lib/{workspaces-CUJXNU5W.js → workspaces-D5VKbESy.js} +2 -2
  36. package/package.json +23 -24
  37. package/runtime/manifest.json +2 -2
  38. package/runtime/node_modules/@deepseek-ai/dsh-agent-default-model/lib/index.js +7 -3
  39. package/runtime/node_modules/@deepseek-ai/dsh-api-session-controller/lib/client.js +11 -3
  40. package/runtime/node_modules/@deepseek-ai/dsh-api-session-controller/lib/types/client/contract/snapshot.d.ts +1 -0
  41. package/runtime/node_modules/@deepseek-ai/dsh-api-session-controller/lib/types/client/sessions/assistant-stream.d.ts +2 -0
  42. package/runtime/node_modules/@deepseek-ai/dsh-api-session-controller/lib/types/client/sessions/assistant-stream.js +4 -0
  43. package/runtime/node_modules/@deepseek-ai/dsh-api-session-controller/lib/types/client/sessions/session.js +10 -3
  44. package/runtime/node_modules/@deepseek-ai/dsh-app-boot/lib/index.js +32 -11
  45. package/runtime/node_modules/@deepseek-ai/dsh-atomic-write/lib/index.js +62 -11
  46. package/runtime/node_modules/@deepseek-ai/dsh-atomic-write/lib/types/darwin-lock.d.ts +7 -0
  47. package/runtime/node_modules/@deepseek-ai/dsh-atomic-write/lib/types/index.d.ts +7 -2
  48. package/runtime/node_modules/@deepseek-ai/dsh-atomic-write/lib/types/linux-lock.d.ts +1 -1
  49. package/runtime/node_modules/@deepseek-ai/dsh-client-locale/lib/client.js +7 -7
  50. package/runtime/node_modules/@deepseek-ai/dsh-client-ui-agent-preset/lib/client.js +62 -62
  51. package/runtime/node_modules/@deepseek-ai/dsh-client-ui-approval/lib/client.js +10 -10
  52. package/runtime/node_modules/@deepseek-ai/dsh-client-ui-attachment/lib/client.js +49 -49
  53. package/runtime/node_modules/@deepseek-ai/dsh-client-ui-chat/lib/client.js +204 -204
  54. package/runtime/node_modules/@deepseek-ai/dsh-client-ui-commands/lib/client.js +16 -16
  55. package/runtime/node_modules/@deepseek-ai/dsh-client-ui-conversation/lib/client.js +159 -157
  56. package/runtime/node_modules/@deepseek-ai/dsh-client-ui-conversation/lib/types/client/service.d.ts +4 -2
  57. package/runtime/node_modules/@deepseek-ai/dsh-client-ui-cordis/lib/client.js +74 -74
  58. package/runtime/node_modules/@deepseek-ai/dsh-client-ui-deliverables/lib/client.js +129 -123
  59. package/runtime/node_modules/@deepseek-ai/dsh-client-ui-deliverables/lib/index.js +19 -14
  60. package/runtime/node_modules/@deepseek-ai/dsh-client-ui-deliverables/lib/types/changes.d.ts +2 -2
  61. package/runtime/node_modules/@deepseek-ai/dsh-client-ui-deliverables/lib/types/client/Deliverables.d.ts +1 -2
  62. package/runtime/node_modules/@deepseek-ai/dsh-client-ui-deliverables/lib/types/client/locales.d.ts +2 -1
  63. package/runtime/node_modules/@deepseek-ai/dsh-client-ui-deliverables/lib/types/client/present-open.d.ts +1 -1
  64. package/runtime/node_modules/@deepseek-ai/dsh-client-ui-deliverables/package.json +2 -4
  65. package/runtime/node_modules/@deepseek-ai/dsh-client-ui-directory-picker-browse/lib/client.js +39 -39
  66. package/runtime/node_modules/@deepseek-ai/dsh-client-ui-goal/lib/client.js +16 -16
  67. package/runtime/node_modules/@deepseek-ai/dsh-client-ui-input-trigger/lib/client.js +23 -23
  68. package/runtime/node_modules/@deepseek-ai/dsh-client-ui-jobs/lib/client.js +37 -37
  69. package/runtime/node_modules/@deepseek-ai/dsh-client-ui-layout/lib/client.js +9 -9
  70. package/runtime/node_modules/@deepseek-ai/dsh-client-ui-message-feedback/lib/client.js +12 -12
  71. package/runtime/node_modules/@deepseek-ai/dsh-client-ui-model-selection/lib/client.js +119 -32
  72. package/runtime/node_modules/@deepseek-ai/dsh-client-ui-model-selection/lib/types/client/catalog.d.ts +13 -0
  73. package/runtime/node_modules/@deepseek-ai/dsh-client-ui-model-selection/lib/types/client/directory.d.ts +2 -0
  74. package/runtime/node_modules/@deepseek-ai/dsh-client-ui-model-selection/lib/types/client/effort-preferences.d.ts +20 -0
  75. package/runtime/node_modules/@deepseek-ai/dsh-client-ui-model-selection/lib/types/client/slots.d.ts +2 -1
  76. package/runtime/node_modules/@deepseek-ai/dsh-client-ui-open-in-app/lib/client.js +8 -8
  77. package/runtime/node_modules/@deepseek-ai/dsh-client-ui-permission-presets/lib/client.js +18 -18
  78. package/runtime/node_modules/@deepseek-ai/dsh-client-ui-plan/lib/client.js +22 -22
  79. package/runtime/node_modules/@deepseek-ai/dsh-client-ui-plugin-manager/lib/client.js +128 -128
  80. package/runtime/node_modules/@deepseek-ai/dsh-client-ui-schedule/lib/client.js +182 -182
  81. package/runtime/node_modules/@deepseek-ai/dsh-client-ui-settings-account/lib/client.js +130 -130
  82. package/runtime/node_modules/@deepseek-ai/dsh-client-ui-settings-general/lib/client.js +50 -50
  83. package/runtime/node_modules/@deepseek-ai/dsh-client-ui-settings-models/lib/client.js +88 -88
  84. package/runtime/node_modules/@deepseek-ai/dsh-client-ui-settings-plugin-inventory/lib/client.js +36 -36
  85. package/runtime/node_modules/@deepseek-ai/dsh-client-ui-settings-plugins/lib/client.js +13 -13
  86. package/runtime/node_modules/@deepseek-ai/dsh-client-ui-settings-subagent/lib/client.js +27 -27
  87. package/runtime/node_modules/@deepseek-ai/dsh-client-ui-shortcuts/lib/client.js +42 -42
  88. package/runtime/node_modules/@deepseek-ai/dsh-client-ui-sidebar/lib/client.js +44 -44
  89. package/runtime/node_modules/@deepseek-ai/dsh-client-ui-sidebar-browser/lib/client.js +25 -25
  90. package/runtime/node_modules/@deepseek-ai/dsh-client-ui-sidebar-documentpreview/lib/client.excel.js +9 -9
  91. package/runtime/node_modules/@deepseek-ai/dsh-client-ui-sidebar-documentpreview/lib/client.js +70 -70
  92. package/runtime/node_modules/@deepseek-ai/dsh-client-ui-sidebar-documentpreview/lib/client.pdf.js +9 -9
  93. package/runtime/node_modules/@deepseek-ai/dsh-client-ui-sidebar-files/lib/client.js +18 -18
  94. package/runtime/node_modules/@deepseek-ai/dsh-client-ui-sidebar-right/lib/client.js +26 -26
  95. package/runtime/node_modules/@deepseek-ai/dsh-client-ui-sidebar-terminal/lib/client.js +16 -16
  96. package/runtime/node_modules/@deepseek-ai/dsh-client-ui-sidebar-terminal/lib/client.terminal.js +11 -11
  97. package/runtime/node_modules/@deepseek-ai/dsh-client-ui-skill/lib/client.js +20 -20
  98. package/runtime/node_modules/@deepseek-ai/dsh-client-ui-subagent/lib/client.js +37 -37
  99. package/runtime/node_modules/@deepseek-ai/dsh-client-ui-theme/lib/client.js +27 -27
  100. package/runtime/node_modules/@deepseek-ai/dsh-client-ui-tool/lib/client.js +95 -95
  101. package/runtime/node_modules/@deepseek-ai/dsh-client-ui-trajectory/lib/client.js +197 -197
  102. package/runtime/node_modules/@deepseek-ai/dsh-client-ui-user-questions/lib/client.js +49 -49
  103. package/runtime/node_modules/@deepseek-ai/dsh-client-ui-workflow-run/lib/client.js +24 -24
  104. package/runtime/node_modules/@deepseek-ai/dsh-client-ui-workspace/lib/client.js +656 -152
  105. package/runtime/node_modules/@deepseek-ai/dsh-client-ui-workspace/lib/types/client/ArchivedSessions.d.ts +9 -2
  106. package/runtime/node_modules/@deepseek-ai/dsh-client-ui-workspace/lib/types/client/locales.d.ts +46 -0
  107. package/runtime/node_modules/@deepseek-ai/dsh-client-ui-workspace/lib/types/client/session-actions/DeleteSession.d.ts +9 -10
  108. package/runtime/node_modules/@deepseek-ai/dsh-client-ui-workspace/lib/types/client/session-actions/deletion.d.ts +57 -0
  109. package/runtime/node_modules/@deepseek-ai/dsh-client-ui-workspace/package.json +2 -0
  110. package/runtime/node_modules/@deepseek-ai/dsh-experimental-client-ui-agent-team/lib/client.js +32 -32
  111. package/runtime/node_modules/@deepseek-ai/dsh-experimental-client-ui-voice-input/lib/client.js +24 -24
  112. package/runtime/node_modules/@deepseek-ai/dsh-llm-deepseek/lib/index.js +899 -453
  113. package/runtime/node_modules/@deepseek-ai/dsh-llm-deepseek/lib/types/adapter.d.ts +4 -20
  114. package/runtime/node_modules/@deepseek-ai/dsh-llm-deepseek/lib/types/chat-completions/adapter.d.ts +8 -0
  115. package/runtime/node_modules/@deepseek-ai/dsh-llm-deepseek/lib/types/chat-completions/serialize.d.ts +10 -0
  116. package/runtime/node_modules/@deepseek-ai/dsh-llm-deepseek/lib/types/chat-completions/sse.d.ts +24 -0
  117. package/runtime/node_modules/@deepseek-ai/dsh-llm-deepseek/lib/types/chat-completions/translate.d.ts +37 -0
  118. package/runtime/node_modules/@deepseek-ai/dsh-llm-deepseek/lib/types/chat-completions/types.d.ts +159 -0
  119. package/runtime/node_modules/@deepseek-ai/dsh-llm-deepseek/lib/types/file-store.d.ts +3 -0
  120. package/runtime/node_modules/@deepseek-ai/dsh-llm-deepseek/lib/types/files-api.d.ts +4 -0
  121. package/runtime/node_modules/@deepseek-ai/dsh-llm-deepseek/lib/types/index.d.ts +1 -0
  122. package/runtime/node_modules/@deepseek-ai/dsh-llm-deepseek/lib/types/protocol-adapter.d.ts +41 -0
  123. package/runtime/node_modules/@deepseek-ai/dsh-llm-deepseek/lib/types/protocol.d.ts +35 -0
  124. package/runtime/node_modules/@deepseek-ai/dsh-llm-deepseek/lib/types/transport.d.ts +2 -1
  125. package/runtime/node_modules/@deepseek-ai/dsh-llm-deepseek/lib/types/types.d.ts +2 -2
  126. package/runtime/node_modules/@deepseek-ai/dsh-mcp-client/lib/index.js +5 -4
  127. package/runtime/node_modules/@deepseek-ai/dsh-session-log-export/lib/client.js +4 -4
  128. package/runtime/node_modules/@deepseek-ai/dsh-session-log-export/lib/index.js +1 -1
  129. package/runtime/node_modules/@deepseek-ai/dsh-session-persistence-jsonl/lib/index.js +2 -2
  130. package/runtime/node_modules/@deepseek-ai/dsh-tool-cordis/lib/types/api-catalog.js +12 -10
  131. package/runtime/node_modules/@deepseek-ai/dsh-workspace-changes/lib/index.js +208 -39
  132. package/runtime/node_modules/@deepseek-ai/dsh-workspace-changes/lib/types/archive.d.ts +47 -0
  133. package/runtime/node_modules/@deepseek-ai/dsh-workspace-changes/lib/types/archive.js +129 -0
  134. package/runtime/node_modules/@deepseek-ai/dsh-workspace-changes/lib/types/index.d.ts +2 -0
  135. package/runtime/node_modules/@deepseek-ai/dsh-workspace-changes/lib/types/index.js +31 -8
  136. package/runtime/node_modules/@deepseek-ai/dsh-workspace-changes/lib/types/recorder.d.ts +7 -2
  137. package/runtime/node_modules/@deepseek-ai/dsh-workspace-changes/lib/types/recorder.js +35 -19
  138. package/runtime/node_modules/@deepseek-ai/dsh-workspace-changes/lib/types/types.d.ts +11 -10
  139. package/runtime/node_modules/@deepseek-ai/dsh-workspace-changes/package.json +1 -0
  140. package/scripts/link-embedded-runtime.mjs +1 -1
  141. package/lib/dump-config-CDixiJNt.js +0 -2
  142. package/lib/{home-migration-BjDmRwBB.js → home-migration-lRjtl2fP.js} +1 -1
  143. package/lib/{startup-diagnostics-C_hRCp-q.js → startup-diagnostics-4mLHYTFc.js} +1 -1
@@ -1083,8 +1083,8 @@ window.__ModuleLoader__.load({
1083
1083
  return title === "default-workspace" ? localizedDefault : title;
1084
1084
  }
1085
1085
  //#endregion
1086
- //#region \0dsh-css:/Users/shiguifeng/IdeaProjects/chonggou/deepseek-harness/packages/client/ui-workspace/src/client/rows/Rows.module.css.mjs
1087
- const css$4 = ".JQKBIa_projectRow,.JQKBIa_sessionRow{border-radius:var(--dsw-radius-md);padding:0 8px;cursor:pointer;user-select:none;color:var(--dsw-alias-label-primary);align-items:center;gap:6px;padding-inline-start:calc(8px + var(--dsh-workspace-indent,0px));display:flex}.JQKBIa_projectRow:hover,.JQKBIa_sessionRow:hover,.JQKBIa_sessionRow.JQKBIa_selected{background:var(--dsw-alias-interactive-bg-hover)}.JQKBIa_searchResultRow{box-sizing:border-box;border-radius:var(--dsw-radius-lg);cursor:pointer;text-align:left;width:100%;min-height:48px;color:var(--dsw-alias-label-primary);background:0 0;border:none;flex-direction:column;align-items:stretch;padding:4px 8px;display:flex}.JQKBIa_searchResultRow:hover,.JQKBIa_searchResultRow.JQKBIa_selected{background:var(--dsw-alias-interactive-bg-hover)}.JQKBIa_searchResultHeading{align-items:center;min-width:0;display:flex}.JQKBIa_searchResultTitle{text-overflow:ellipsis;white-space:nowrap;flex:0 auto;min-width:0;margin-left:4px;font-size:14px;line-height:20px;overflow:hidden}.JQKBIa_searchResultMeta{align-items:center;gap:6px;min-width:0;margin-left:20px;display:flex}.JQKBIa_searchResultWorkspace,.JQKBIa_searchResultSnippet{text-overflow:ellipsis;white-space:nowrap;font-size:12px;line-height:17px;overflow:hidden}.JQKBIa_searchResultWorkspace{max-width:40%;color:var(--dsw-alias-label-tertiary);flex:none}.JQKBIa_searchResultWorkspace:only-child{max-width:100%}.JQKBIa_searchResultSnippet{min-width:0;color:var(--dsw-alias-label-secondary);flex:1}.JQKBIa_projectRow{box-sizing:border-box;align-items:center;height:34px}.JQKBIa_projectRow .JQKBIa_rowActions{height:20px}.JQKBIa_sessionRow{gap:0;height:32px}.JQKBIa_sessionRow .JQKBIa_title{margin:0 6px 0 4px}.JQKBIa_slot{width:16px;height:20px;color:var(--dsw-alias-label-tertiary);flex:none;justify-content:center;align-items:center;display:inline-flex}.JQKBIa_visuallyHidden{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.JQKBIa_folderActive{color:var(--dsw-alias-state-business-primary)}.JQKBIa_projectRow .JQKBIa_chevron{display:none}.JQKBIa_projectRow:hover .JQKBIa_chevron{display:inline-flex}.JQKBIa_projectRow:hover .JQKBIa_folder{display:none}.JQKBIa_arrow{transition:transform .15s var(--ds-ease-in-out)}.JQKBIa_arrowOpen{transform:rotate(90deg)}.JQKBIa_projectText{flex-direction:column;flex:1;gap:2px;min-width:0;display:flex}.JQKBIa_title{text-overflow:ellipsis;white-space:nowrap;min-width:0;font-size:14px;line-height:20px;overflow:hidden}.JQKBIa_renameInput{border:.5px solid var(--dsw-alias-border-l4);border-radius:var(--dsw-radius-sm);background:var(--dsw-alias-button-elevated-fill);min-width:0;color:inherit;outline:none;padding:0 2px;font-size:14px;line-height:20px}.JQKBIa_sessionRow .JQKBIa_title{flex:1}.JQKBIa_sessionRow .JQKBIa_title[data-scrolled]{mask-image:linear-gradient(90deg,#0000,#000 12px)}.JQKBIa_sessionRow .JQKBIa_title[data-clipped]{mask-image:linear-gradient(270deg,#0000,#000 12px)}.JQKBIa_sessionRow .JQKBIa_title[data-scrolled][data-clipped]{mask-image:linear-gradient(90deg,#0000,#000 12px calc(100% - 12px),#0000)}.JQKBIa_meta{text-overflow:ellipsis;white-space:nowrap;color:var(--dsw-alias-label-tertiary);font-size:12px;line-height:20px;overflow:hidden}.JQKBIa_time{color:var(--dsw-alias-label-tertiary);flex:none;font-size:10px;line-height:16px}.JQKBIa_pinIndicator{width:16px;height:20px;color:var(--dsw-alias-label-caption);flex:none;justify-content:center;align-items:center;margin-left:6px;display:inline-flex}.JQKBIa_sessionRow.JQKBIa_archived .JQKBIa_title,.JQKBIa_searchResultRow.JQKBIa_archived .JQKBIa_searchResultTitle,.JQKBIa_searchResultRow.JQKBIa_archived .JQKBIa_searchResultWorkspace,.JQKBIa_searchResultRow.JQKBIa_archived .JQKBIa_searchResultSnippet{color:var(--dsw-alias-label-caption)}.JQKBIa_dot{flex:none}.JQKBIa_rowActions{flex:none;align-items:center;gap:10px;display:none}.JQKBIa_projectRow:hover .JQKBIa_rowActions,.JQKBIa_sessionRow:hover .JQKBIa_rowActions,.JQKBIa_searchResultRow:hover .JQKBIa_rowActions,.JQKBIa_projectRow.JQKBIa_menuOpen .JQKBIa_rowActions,.JQKBIa_sessionRow.JQKBIa_menuOpen .JQKBIa_rowActions{display:inline-flex}.JQKBIa_searchResultHeading .JQKBIa_rowActions{margin-left:auto}.JQKBIa_sessionRow:hover .JQKBIa_time,.JQKBIa_sessionRow.JQKBIa_menuOpen .JQKBIa_time,.JQKBIa_sessionRow:hover .JQKBIa_pinIndicator,.JQKBIa_sessionRow.JQKBIa_menuOpen .JQKBIa_pinIndicator{display:none}@media (hover:hover){.JQKBIa_sessionRow:hover .JQKBIa_title,.JQKBIa_sessionRow.JQKBIa_menuOpen .JQKBIa_title{text-overflow:clip}}.JQKBIa_projectRow.JQKBIa_menuOpen,.JQKBIa_sessionRow.JQKBIa_menuOpen{background:var(--dsw-alias-interactive-bg-hover)}.JQKBIa_sessionRow.JQKBIa_dropBefore,.JQKBIa_sessionRow.JQKBIa_dropAfter{position:relative}.JQKBIa_sessionRow.JQKBIa_dropBefore:before,.JQKBIa_sessionRow.JQKBIa_dropAfter:after{content:\"\";z-index:1;background:linear-gradient(55deg, transparent calc(50% - 1px), var(--dsw-alias-state-business-primary) calc(50% - 1px) calc(50% + 1px), transparent calc(50% + 1px)) 0 0 / 5px 7px no-repeat, linear-gradient(125deg, transparent calc(50% - 1px), var(--dsw-alias-state-business-primary) calc(50% - 1px) calc(50% + 1px), transparent calc(50% + 1px)) 0 5px / 5px 7px no-repeat, linear-gradient(var(--dsw-alias-state-business-primary) 0 0) 4px 5px / calc(100% - 4px) 2px no-repeat;pointer-events:none;height:12px;position:absolute;left:0;right:4px}.JQKBIa_sessionRow.JQKBIa_dropBefore:before{top:-7px}.JQKBIa_sessionRow.JQKBIa_dropAfter:after{bottom:-7px}.JQKBIa_hoverContent{flex-direction:column;gap:8px;display:flex}.JQKBIa_hoverTitle{color:#fff;overflow-wrap:break-word;font-size:14px;line-height:20px}.JQKBIa_hoverPath{color:#cfd3d6;word-break:break-all;font-size:12px;line-height:16px}.JQKBIa_hoverTime{color:#cfd3d6;font-size:12px;line-height:16px}.JQKBIa_hoverStatus{color:#adb2b8;align-items:center;gap:8px;font-size:12px;line-height:20px;display:flex}.JQKBIa_hoverArchived svg{flex-shrink:0;margin:0 -4px}.JQKBIa_iconButton{border-radius:var(--dsw-radius-xs);cursor:pointer;width:16px;height:16px;color:var(--dsw-alias-label-tertiary);background:0 0;border:none;flex:none;justify-content:center;align-items:center;padding:0;display:inline-flex}.JQKBIa_iconButton:hover{color:var(--dsw-alias-label-primary)}.JQKBIa_chevron{color:var(--dsw-alias-label-caption)}@media (prefers-reduced-motion:reduce){.JQKBIa_arrow{transition:none;animation:none}}";
1086
+ //#region \0dsh-css:/Users/shiguifeng/IdeaProjects/chonggou/chatcode-cli-harness/packages/client/ui-workspace/src/client/rows/Rows.module.css.mjs
1087
+ const css$4 = "._68c5Kq_projectRow,._68c5Kq_sessionRow{border-radius:var(--dsw-radius-md);padding:0 8px;cursor:pointer;user-select:none;color:var(--dsw-alias-label-primary);align-items:center;gap:6px;padding-inline-start:calc(8px + var(--dsh-workspace-indent,0px));display:flex}._68c5Kq_projectRow:hover,._68c5Kq_sessionRow:hover,._68c5Kq_sessionRow._68c5Kq_selected{background:var(--dsw-alias-interactive-bg-hover)}._68c5Kq_searchResultRow{box-sizing:border-box;border-radius:var(--dsw-radius-lg);cursor:pointer;text-align:left;width:100%;min-height:48px;color:var(--dsw-alias-label-primary);background:0 0;border:none;flex-direction:column;align-items:stretch;padding:4px 8px;display:flex}._68c5Kq_searchResultRow:hover,._68c5Kq_searchResultRow._68c5Kq_selected{background:var(--dsw-alias-interactive-bg-hover)}._68c5Kq_searchResultHeading{align-items:center;min-width:0;display:flex}._68c5Kq_searchResultTitle{text-overflow:ellipsis;white-space:nowrap;flex:0 auto;min-width:0;margin-left:4px;font-size:14px;line-height:20px;overflow:hidden}._68c5Kq_searchResultMeta{align-items:center;gap:6px;min-width:0;margin-left:20px;display:flex}._68c5Kq_searchResultWorkspace,._68c5Kq_searchResultSnippet{text-overflow:ellipsis;white-space:nowrap;font-size:12px;line-height:17px;overflow:hidden}._68c5Kq_searchResultWorkspace{max-width:40%;color:var(--dsw-alias-label-tertiary);flex:none}._68c5Kq_searchResultWorkspace:only-child{max-width:100%}._68c5Kq_searchResultSnippet{min-width:0;color:var(--dsw-alias-label-secondary);flex:1}._68c5Kq_projectRow{box-sizing:border-box;align-items:center;height:34px}._68c5Kq_projectRow ._68c5Kq_rowActions{height:20px}._68c5Kq_sessionRow{gap:0;height:32px}._68c5Kq_sessionRow ._68c5Kq_title{margin:0 6px 0 4px}._68c5Kq_slot{width:16px;height:20px;color:var(--dsw-alias-label-tertiary);flex:none;justify-content:center;align-items:center;display:inline-flex}._68c5Kq_visuallyHidden{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}._68c5Kq_folderActive{color:var(--dsw-alias-state-business-primary)}._68c5Kq_projectRow ._68c5Kq_chevron{display:none}._68c5Kq_projectRow:hover ._68c5Kq_chevron{display:inline-flex}._68c5Kq_projectRow:hover ._68c5Kq_folder{display:none}._68c5Kq_arrow{transition:transform .15s var(--ds-ease-in-out)}._68c5Kq_arrowOpen{transform:rotate(90deg)}._68c5Kq_projectText{flex-direction:column;flex:1;gap:2px;min-width:0;display:flex}._68c5Kq_title{text-overflow:ellipsis;white-space:nowrap;min-width:0;font-size:14px;line-height:20px;overflow:hidden}._68c5Kq_renameInput{border:.5px solid var(--dsw-alias-border-l4);border-radius:var(--dsw-radius-sm);background:var(--dsw-alias-button-elevated-fill);min-width:0;color:inherit;outline:none;padding:0 2px;font-size:14px;line-height:20px}._68c5Kq_sessionRow ._68c5Kq_title{flex:1}._68c5Kq_sessionRow ._68c5Kq_title[data-scrolled]{mask-image:linear-gradient(90deg,#0000,#000 12px)}._68c5Kq_sessionRow ._68c5Kq_title[data-clipped]{mask-image:linear-gradient(270deg,#0000,#000 12px)}._68c5Kq_sessionRow ._68c5Kq_title[data-scrolled][data-clipped]{mask-image:linear-gradient(90deg,#0000,#000 12px calc(100% - 12px),#0000)}._68c5Kq_meta{text-overflow:ellipsis;white-space:nowrap;color:var(--dsw-alias-label-tertiary);font-size:12px;line-height:20px;overflow:hidden}._68c5Kq_time{color:var(--dsw-alias-label-tertiary);flex:none;font-size:10px;line-height:16px}._68c5Kq_pinIndicator{width:16px;height:20px;color:var(--dsw-alias-label-caption);flex:none;justify-content:center;align-items:center;margin-left:6px;display:inline-flex}._68c5Kq_sessionRow._68c5Kq_archived ._68c5Kq_title,._68c5Kq_searchResultRow._68c5Kq_archived ._68c5Kq_searchResultTitle,._68c5Kq_searchResultRow._68c5Kq_archived ._68c5Kq_searchResultWorkspace,._68c5Kq_searchResultRow._68c5Kq_archived ._68c5Kq_searchResultSnippet{color:var(--dsw-alias-label-caption)}._68c5Kq_dot{flex:none}._68c5Kq_rowActions{flex:none;align-items:center;gap:10px;display:none}._68c5Kq_projectRow:hover ._68c5Kq_rowActions,._68c5Kq_sessionRow:hover ._68c5Kq_rowActions,._68c5Kq_searchResultRow:hover ._68c5Kq_rowActions,._68c5Kq_projectRow._68c5Kq_menuOpen ._68c5Kq_rowActions,._68c5Kq_sessionRow._68c5Kq_menuOpen ._68c5Kq_rowActions{display:inline-flex}._68c5Kq_searchResultHeading ._68c5Kq_rowActions{margin-left:auto}._68c5Kq_sessionRow:hover ._68c5Kq_time,._68c5Kq_sessionRow._68c5Kq_menuOpen ._68c5Kq_time,._68c5Kq_sessionRow:hover ._68c5Kq_pinIndicator,._68c5Kq_sessionRow._68c5Kq_menuOpen ._68c5Kq_pinIndicator{display:none}@media (hover:hover){._68c5Kq_sessionRow:hover ._68c5Kq_title,._68c5Kq_sessionRow._68c5Kq_menuOpen ._68c5Kq_title{text-overflow:clip}}._68c5Kq_projectRow._68c5Kq_menuOpen,._68c5Kq_sessionRow._68c5Kq_menuOpen{background:var(--dsw-alias-interactive-bg-hover)}._68c5Kq_sessionRow._68c5Kq_dropBefore,._68c5Kq_sessionRow._68c5Kq_dropAfter{position:relative}._68c5Kq_sessionRow._68c5Kq_dropBefore:before,._68c5Kq_sessionRow._68c5Kq_dropAfter:after{content:\"\";z-index:1;background:linear-gradient(55deg, transparent calc(50% - 1px), var(--dsw-alias-state-business-primary) calc(50% - 1px) calc(50% + 1px), transparent calc(50% + 1px)) 0 0 / 5px 7px no-repeat, linear-gradient(125deg, transparent calc(50% - 1px), var(--dsw-alias-state-business-primary) calc(50% - 1px) calc(50% + 1px), transparent calc(50% + 1px)) 0 5px / 5px 7px no-repeat, linear-gradient(var(--dsw-alias-state-business-primary) 0 0) 4px 5px / calc(100% - 4px) 2px no-repeat;pointer-events:none;height:12px;position:absolute;left:0;right:4px}._68c5Kq_sessionRow._68c5Kq_dropBefore:before{top:-7px}._68c5Kq_sessionRow._68c5Kq_dropAfter:after{bottom:-7px}._68c5Kq_hoverContent{flex-direction:column;gap:8px;display:flex}._68c5Kq_hoverTitle{color:#fff;overflow-wrap:break-word;font-size:14px;line-height:20px}._68c5Kq_hoverPath{color:#cfd3d6;word-break:break-all;font-size:12px;line-height:16px}._68c5Kq_hoverTime{color:#cfd3d6;font-size:12px;line-height:16px}._68c5Kq_hoverStatus{color:#adb2b8;align-items:center;gap:8px;font-size:12px;line-height:20px;display:flex}._68c5Kq_hoverArchived svg{flex-shrink:0;margin:0 -4px}._68c5Kq_iconButton{border-radius:var(--dsw-radius-xs);cursor:pointer;width:16px;height:16px;color:var(--dsw-alias-label-tertiary);background:0 0;border:none;flex:none;justify-content:center;align-items:center;padding:0;display:inline-flex}._68c5Kq_iconButton:hover{color:var(--dsw-alias-label-primary)}._68c5Kq_chevron{color:var(--dsw-alias-label-caption)}@media (prefers-reduced-motion:reduce){._68c5Kq_arrow{transition:none;animation:none}}";
1088
1088
  const tagId$4 = "@deepseek-ai/dsh-client-ui-workspace/Rows.module.css";
1089
1089
  if (typeof document !== "undefined" && document.querySelector("style[data-plugin-css=" + JSON.stringify(tagId$4) + "]") === null) {
1090
1090
  const tag = document.createElement("style");
@@ -1094,41 +1094,41 @@ window.__ModuleLoader__.load({
1094
1094
  document.head.appendChild(tag);
1095
1095
  }
1096
1096
  var Rows_module_css_default = {
1097
- "archived": "JQKBIa_archived",
1098
- "arrow": "JQKBIa_arrow",
1099
- "arrowOpen": "JQKBIa_arrowOpen",
1100
- "chevron": "JQKBIa_chevron",
1101
- "dot": "JQKBIa_dot",
1102
- "dropAfter": "JQKBIa_dropAfter",
1103
- "dropBefore": "JQKBIa_dropBefore",
1104
- "folder": "JQKBIa_folder",
1105
- "folderActive": "JQKBIa_folderActive",
1106
- "hoverArchived": "JQKBIa_hoverArchived",
1107
- "hoverContent": "JQKBIa_hoverContent",
1108
- "hoverPath": "JQKBIa_hoverPath",
1109
- "hoverStatus": "JQKBIa_hoverStatus",
1110
- "hoverTime": "JQKBIa_hoverTime",
1111
- "hoverTitle": "JQKBIa_hoverTitle",
1112
- "iconButton": "JQKBIa_iconButton",
1113
- "menuOpen": "JQKBIa_menuOpen",
1114
- "meta": "JQKBIa_meta",
1115
- "pinIndicator": "JQKBIa_pinIndicator",
1116
- "projectRow": "JQKBIa_projectRow",
1117
- "projectText": "JQKBIa_projectText",
1118
- "renameInput": "JQKBIa_renameInput",
1119
- "rowActions": "JQKBIa_rowActions",
1120
- "searchResultHeading": "JQKBIa_searchResultHeading",
1121
- "searchResultMeta": "JQKBIa_searchResultMeta",
1122
- "searchResultRow": "JQKBIa_searchResultRow",
1123
- "searchResultSnippet": "JQKBIa_searchResultSnippet",
1124
- "searchResultTitle": "JQKBIa_searchResultTitle",
1125
- "searchResultWorkspace": "JQKBIa_searchResultWorkspace",
1126
- "selected": "JQKBIa_selected",
1127
- "sessionRow": "JQKBIa_sessionRow",
1128
- "slot": "JQKBIa_slot",
1129
- "time": "JQKBIa_time",
1130
- "title": "JQKBIa_title",
1131
- "visuallyHidden": "JQKBIa_visuallyHidden"
1097
+ "archived": "_68c5Kq_archived",
1098
+ "arrow": "_68c5Kq_arrow",
1099
+ "arrowOpen": "_68c5Kq_arrowOpen",
1100
+ "chevron": "_68c5Kq_chevron",
1101
+ "dot": "_68c5Kq_dot",
1102
+ "dropAfter": "_68c5Kq_dropAfter",
1103
+ "dropBefore": "_68c5Kq_dropBefore",
1104
+ "folder": "_68c5Kq_folder",
1105
+ "folderActive": "_68c5Kq_folderActive",
1106
+ "hoverArchived": "_68c5Kq_hoverArchived",
1107
+ "hoverContent": "_68c5Kq_hoverContent",
1108
+ "hoverPath": "_68c5Kq_hoverPath",
1109
+ "hoverStatus": "_68c5Kq_hoverStatus",
1110
+ "hoverTime": "_68c5Kq_hoverTime",
1111
+ "hoverTitle": "_68c5Kq_hoverTitle",
1112
+ "iconButton": "_68c5Kq_iconButton",
1113
+ "menuOpen": "_68c5Kq_menuOpen",
1114
+ "meta": "_68c5Kq_meta",
1115
+ "pinIndicator": "_68c5Kq_pinIndicator",
1116
+ "projectRow": "_68c5Kq_projectRow",
1117
+ "projectText": "_68c5Kq_projectText",
1118
+ "renameInput": "_68c5Kq_renameInput",
1119
+ "rowActions": "_68c5Kq_rowActions",
1120
+ "searchResultHeading": "_68c5Kq_searchResultHeading",
1121
+ "searchResultMeta": "_68c5Kq_searchResultMeta",
1122
+ "searchResultRow": "_68c5Kq_searchResultRow",
1123
+ "searchResultSnippet": "_68c5Kq_searchResultSnippet",
1124
+ "searchResultTitle": "_68c5Kq_searchResultTitle",
1125
+ "searchResultWorkspace": "_68c5Kq_searchResultWorkspace",
1126
+ "selected": "_68c5Kq_selected",
1127
+ "sessionRow": "_68c5Kq_sessionRow",
1128
+ "slot": "_68c5Kq_slot",
1129
+ "time": "_68c5Kq_time",
1130
+ "title": "_68c5Kq_title",
1131
+ "visuallyHidden": "_68c5Kq_visuallyHidden"
1132
1132
  };
1133
1133
  //#endregion
1134
1134
  //#region lib/types/client/rows/Rows.js
@@ -1717,8 +1717,8 @@ window.__ModuleLoader__.load({
1717
1717
  });
1718
1718
  }
1719
1719
  //#endregion
1720
- //#region \0dsh-css:/Users/shiguifeng/IdeaProjects/chonggou/deepseek-harness/packages/client/ui-workspace/src/client/rows/AnimatedRows.module.css.mjs
1721
- const css$3 = ".rducLq_exits{contain:strict;pointer-events:none;position:absolute;inset:0;overflow:clip}";
1720
+ //#region \0dsh-css:/Users/shiguifeng/IdeaProjects/chonggou/chatcode-cli-harness/packages/client/ui-workspace/src/client/rows/AnimatedRows.module.css.mjs
1721
+ const css$3 = "._31gO4q_exits{contain:strict;pointer-events:none;position:absolute;inset:0;overflow:clip}";
1722
1722
  const tagId$3 = "@deepseek-ai/dsh-client-ui-workspace/AnimatedRows.module.css";
1723
1723
  if (typeof document !== "undefined" && document.querySelector("style[data-plugin-css=" + JSON.stringify(tagId$3) + "]") === null) {
1724
1724
  const tag = document.createElement("style");
@@ -1727,7 +1727,7 @@ window.__ModuleLoader__.load({
1727
1727
  tag.textContent = css$3;
1728
1728
  document.head.appendChild(tag);
1729
1729
  }
1730
- var AnimatedRows_module_css_default = { "exits": "rducLq_exits" };
1730
+ var AnimatedRows_module_css_default = { "exits": "_31gO4q_exits" };
1731
1731
  //#endregion
1732
1732
  //#region lib/types/client/rows/AnimatedRows.js
1733
1733
  /** React-commit-driven movement and entry/exit fades for the sidebar's keyed rows. */
@@ -3088,8 +3088,8 @@ window.__ModuleLoader__.load({
3088
3088
  };
3089
3089
  }
3090
3090
  //#endregion
3091
- //#region \0dsh-css:/Users/shiguifeng/IdeaProjects/chonggou/deepseek-harness/packages/client/ui-workspace/src/client/rows/WorkspaceBrowser.module.css.mjs
3092
- const css$2 = ".YaTVHW_root{--dsh-session-list-edge-inset:var(--dsh-sidebar-inline-padding);--dsh-session-list-scrollbar-width:5px;--dsh-session-list-scrollbar-offset:2px;box-sizing:border-box;min-height:0;padding-right:var(--dsh-session-list-edge-inset);flex-direction:column;flex:1;display:flex}.YaTVHW_root.YaTVHW_rail{padding-right:0}.YaTVHW_iconButton{border-radius:var(--dsw-radius-sm);cursor:pointer;width:28px;height:28px;color:var(--dsw-alias-label-secondary);background:0 0;border:none;flex:none;justify-content:center;align-items:center;padding:0;display:inline-flex}.YaTVHW_iconButton:focus-visible,.YaTVHW_searchButton:focus-visible,.YaTVHW_clearButton:focus-visible{outline:var(--dsw-focus-ring-width) solid var(--dsw-focus-ring-color,var(--dsw-alias-state-business-primary));outline-offset:-2px}.YaTVHW_iconButton:hover{background:var(--dsw-alias-interactive-bg-hover)}.YaTVHW_iconButton[aria-pressed=true]{color:var(--dsw-alias-label-primary);background:var(--dsw-alias-interactive-bg-hover)}.YaTVHW_viewOptionsMenu{min-width:200px}.YaTVHW_sectionHeader{box-sizing:border-box;border-radius:var(--dsw-radius-md);height:36px;color:var(--dsw-alias-label-tertiary);flex:none;justify-content:flex-end;align-items:center;gap:4px;margin-bottom:4px;padding-left:4px;display:flex;overflow:hidden}.YaTVHW_root:not(.YaTVHW_rail) .YaTVHW_sectionHeader{margin-top:2px;margin-right:-4px}.YaTVHW_sectionLabel{white-space:nowrap;opacity:1;visibility:visible;min-width:0;max-width:45%;transition:max-width .18s var(--ds-ease-in-out), margin-right .18s var(--ds-ease-in-out), opacity .12s var(--ds-ease-in-out), transform .18s var(--ds-ease-in-out), visibility 0s linear;flex:none;line-height:20px;overflow:hidden}.YaTVHW_sectionLabelHidden{opacity:0;visibility:hidden;max-width:0;margin-right:-4px;transition-delay:0s,0s,0s,0s,.18s;transform:translate(-4px)}.YaTVHW_searchSlot{box-sizing:border-box;min-width:0;max-width:28px;transition:max-width .18s var(--ds-ease-in-out), padding-left .18s var(--ds-ease-in-out);flex:1;align-items:center;margin-left:auto;padding-left:0;display:flex}.YaTVHW_searchSlotExpanded{max-width:100%;padding-left:0}.YaTVHW_headerActions{opacity:1;visibility:visible;max-width:60px;transition:max-width .18s var(--ds-ease-in-out), opacity .12s var(--ds-ease-in-out), transform .18s var(--ds-ease-in-out), visibility 0s linear;flex:none;align-items:center;gap:4px;display:flex;overflow:hidden}.YaTVHW_headerActionsHidden{opacity:0;visibility:hidden;pointer-events:none;max-width:0;transition-delay:0s,0s,0s,.18s;transform:translate(4px)}.YaTVHW_search{box-sizing:border-box;border-radius:var(--dsw-radius-sm);cursor:text;width:100%;height:28px;color:var(--dsw-alias-label-secondary);transition:width .18s var(--ds-ease-in-out), padding .18s var(--ds-ease-in-out), border-color .18s var(--ds-ease-in-out), background-color .18s var(--ds-ease-in-out);background:0 0;border:none;flex:none;align-items:center;gap:0;margin:0;padding:0;display:flex;overflow:hidden}.YaTVHW_searchExpanded{border:.5px solid var(--dsw-alias-border-l4);border-radius:var(--dsw-radius-md);width:calc(100% + 4px);height:30px;color:var(--dsw-alias-label-caption);background:0 0;margin-inline:-2px;padding:0 4px 0 0}.YaTVHW_searchButton{border-radius:var(--dsw-radius-sm);cursor:pointer;width:28px;height:28px;color:inherit;background:0 0;border:none;flex:none;justify-content:center;align-items:center;padding:0;display:inline-flex}.YaTVHW_searchExpanded .YaTVHW_searchButton{width:28px;height:30px}.YaTVHW_searchButton:hover{background:var(--dsw-alias-interactive-bg-hover)}.YaTVHW_searchExpanded .YaTVHW_searchButton:hover{background:0 0}.YaTVHW_searchInput{opacity:0;pointer-events:none;width:0;min-width:0;color:var(--dsw-alias-label-primary);transition:opacity .12s var(--ds-ease-in-out);background:0 0;border:none;outline:none;flex:1;font-size:13px;line-height:18px}.YaTVHW_searchExpanded .YaTVHW_searchInput{opacity:1;pointer-events:auto;margin-left:-2px}.YaTVHW_searchInput::placeholder{color:var(--dsw-alias-label-tertiary)}.YaTVHW_clearButton{border-radius:var(--dsw-radius-sm);cursor:pointer;width:24px;height:24px;color:var(--dsw-alias-label-secondary);background:0 0;border:none;flex:none;justify-content:center;align-items:center;padding:0;display:inline-flex}.YaTVHW_clearButton:hover{background:var(--dsw-alias-interactive-bg-hover)}.YaTVHW_rail .YaTVHW_sectionHeader{justify-content:flex-start;gap:0;margin-bottom:12px;padding-left:0}.YaTVHW_rail .YaTVHW_headerActions{max-width:none}.YaTVHW_rail .YaTVHW_iconButton{border-radius:var(--dsw-radius-md);width:36px;height:36px;color:var(--dsw-alias-label-primary)}.YaTVHW_rail .YaTVHW_search{border-radius:var(--dsw-radius-md);background:0 0;border-color:#0000;gap:0;width:36px;height:36px;margin:0 0 12px;padding:0}.YaTVHW_rail .YaTVHW_searchButton{border-radius:var(--dsw-radius-md);width:36px;height:36px;color:var(--dsw-alias-label-primary)}.YaTVHW_rail .YaTVHW_searchButton:hover{background:var(--dsw-alias-interactive-bg-hover)}.YaTVHW_listArea{min-height:0;margin-left:-4px;margin-right:calc(-1 * var(--dsh-session-list-edge-inset));flex-direction:column;flex:1;padding-left:4px;display:flex;overflow:visible}.YaTVHW_rail .YaTVHW_listArea{margin-left:0;margin-right:0;padding-left:0}.YaTVHW_treeBody{flex-direction:column;flex:1;min-height:0;display:flex;position:relative}.YaTVHW_fade{left:0;right:var(--dsh-session-list-edge-inset);background:linear-gradient(to bottom, transparent, var(--dsw-specific-sidebar-fill));pointer-events:none;height:24px;position:absolute;bottom:0}[data-platform=darwin] .YaTVHW_fade{display:none}.YaTVHW_wide{animation:YaTVHW_wide-in .2s var(--ds-ease-in-out)}@keyframes YaTVHW_wide-in{0%{opacity:0}}.YaTVHW_list{min-height:0;margin-left:-4px;margin-right:var(--dsh-session-list-scrollbar-offset);padding-left:4px;padding-right:calc(var(--dsh-session-list-edge-inset) - var(--dsh-session-list-scrollbar-width) - var(--dsh-session-list-scrollbar-offset));scrollbar-gutter:stable;flex:1;padding-bottom:16px;overflow-y:auto}.YaTVHW_flatList>*+*,.YaTVHW_searchTree>[role=treeitem]+[role=treeitem],.YaTVHW_groupSection>*+*{margin-top:2px}.YaTVHW_recentCanvas{overflow-anchor:none;position:relative}.YaTVHW_recentRow{width:100%;height:34px;position:absolute;top:0;left:0}.YaTVHW_searchStatus{color:var(--dsw-alias-label-tertiary);padding:10px 12px;font-size:12px;line-height:18px}.YaTVHW_skeletonRow{box-sizing:border-box;align-items:flex-start;gap:8px;min-height:48px;padding:6px 8px 7px;display:flex}.YaTVHW_skeletonDot{corner-shape:round;border-radius:50%;flex:none;width:16px;height:16px}.YaTVHW_skeletonBars{flex-direction:column;flex:1;gap:6px;min-width:0;display:flex}.YaTVHW_skeletonDot,.YaTVHW_skeletonBar{background:var(--dsw-alias-bg-skeleton);animation:2s cubic-bezier(.36,0,.64,1) infinite YaTVHW_search-skeleton}.YaTVHW_skeletonBar{border-radius:var(--dsw-radius-xs);width:65%;height:16px}.YaTVHW_skeletonBarWide{width:90%;height:13px}@keyframes YaTVHW_search-skeleton{0%{opacity:1}40%{opacity:.6}80%,to{opacity:1}}.YaTVHW_groupSection{position:relative}.YaTVHW_groupSection+.YaTVHW_groupSection{margin-top:4px}.YaTVHW_listTopDropIndicator,.YaTVHW_workspaceDropBefore:before,.YaTVHW_workspaceDropAfter:after{content:\"\";z-index:1;background:linear-gradient(55deg, transparent calc(50% - 1px), var(--dsw-alias-state-business-primary) calc(50% - 1px) calc(50% + 1px), transparent calc(50% + 1px)) 0 0 / 5px 7px no-repeat, linear-gradient(125deg, transparent calc(50% - 1px), var(--dsw-alias-state-business-primary) calc(50% - 1px) calc(50% + 1px), transparent calc(50% + 1px)) 0 5px / 5px 7px no-repeat, linear-gradient(var(--dsw-alias-state-business-primary) 0 0) 4px 5px / calc(100% - 4px) 2px no-repeat;pointer-events:none;height:12px;position:absolute;left:0;right:0}.YaTVHW_listTopDropIndicator{top:-8px;left:0;right:var(--dsh-session-list-edge-inset)}.YaTVHW_listTopDropActive>.YaTVHW_workspaceDropBefore:first-child:before{display:none}.YaTVHW_workspaceDropBefore:before{top:-8px}.YaTVHW_workspaceDropAfter:after{bottom:-8px}.YaTVHW_sessionOverflowButton{border-radius:var(--dsw-radius-sm);width:100%;height:28px;padding:0 12px 0 calc(28px + var(--dsh-workspace-indent,0px));cursor:pointer;text-align:left;color:var(--dsw-alias-label-tertiary);background:0 0;border:none;font-size:12px}.YaTVHW_groupSection>.YaTVHW_sessionOverflowButton{margin-top:0}.YaTVHW_sessionOverflowButton:hover{color:var(--dsw-alias-label-secondary);background:0 0}.YaTVHW_empty{color:var(--dsw-alias-label-tertiary);padding:16px 12px;font-size:13px}.YaTVHW_emptyState{color:var(--dsw-alias-label-tertiary);flex-direction:column;align-items:center;gap:8px;margin-top:80px;padding:0 12px;font-size:13px;line-height:20px;display:flex}.YaTVHW_emptyState>svg{color:var(--dsw-alias-label-caption);margin-bottom:4px}.YaTVHW_emptyAction{cursor:pointer;color:var(--dsw-alias-link);background:0 0;border:none;padding:0;font-size:13px;line-height:20px}.YaTVHW_renameInput{box-sizing:border-box;border:.5px solid var(--dsw-alias-border-l4);border-radius:var(--dsw-radius-lg);width:100%;height:44px;color:var(--dsw-alias-label-primary);background:0 0;outline:none;padding:7px 14px;font-size:14px;font-weight:400;line-height:22px}.YaTVHW_renameInput:disabled{color:var(--dsw-alias-label-dimmed)}.YaTVHW_renameError{color:var(--dsw-alias-state-error-primary);margin-top:8px;font-size:12px;line-height:18px}.YaTVHW_deleteAction:not(:disabled){color:var(--dsw-alias-state-error-primary)}.YaTVHW_deleteStatus{color:var(--dsw-alias-label-secondary);font-size:12px;line-height:18px}.YaTVHW_archiveActivity{color:var(--dsw-alias-label-primary);margin:0 0 8px;padding-left:18px;font-size:13px;line-height:20px}.YaTVHW_archiveActivity li{overflow-wrap:anywhere}@media (prefers-reduced-motion:reduce){.YaTVHW_wide,.YaTVHW_skeletonDot,.YaTVHW_skeletonBar{animation:none}.YaTVHW_search,.YaTVHW_sectionLabel,.YaTVHW_searchSlot,.YaTVHW_searchInput,.YaTVHW_headerActions{transition:none}}";
3091
+ //#region \0dsh-css:/Users/shiguifeng/IdeaProjects/chonggou/chatcode-cli-harness/packages/client/ui-workspace/src/client/rows/WorkspaceBrowser.module.css.mjs
3092
+ const css$2 = ".dIsIda_root{--dsh-session-list-edge-inset:var(--dsh-sidebar-inline-padding);--dsh-session-list-scrollbar-width:5px;--dsh-session-list-scrollbar-offset:2px;box-sizing:border-box;min-height:0;padding-right:var(--dsh-session-list-edge-inset);flex-direction:column;flex:1;display:flex}.dIsIda_root.dIsIda_rail{padding-right:0}.dIsIda_iconButton{border-radius:var(--dsw-radius-sm);cursor:pointer;width:28px;height:28px;color:var(--dsw-alias-label-secondary);background:0 0;border:none;flex:none;justify-content:center;align-items:center;padding:0;display:inline-flex}.dIsIda_iconButton:focus-visible,.dIsIda_searchButton:focus-visible,.dIsIda_clearButton:focus-visible{outline:var(--dsw-focus-ring-width) solid var(--dsw-focus-ring-color,var(--dsw-alias-state-business-primary));outline-offset:-2px}.dIsIda_iconButton:hover{background:var(--dsw-alias-interactive-bg-hover)}.dIsIda_iconButton[aria-pressed=true]{color:var(--dsw-alias-label-primary);background:var(--dsw-alias-interactive-bg-hover)}.dIsIda_viewOptionsMenu{min-width:200px}.dIsIda_sectionHeader{box-sizing:border-box;border-radius:var(--dsw-radius-md);height:36px;color:var(--dsw-alias-label-tertiary);flex:none;justify-content:flex-end;align-items:center;gap:4px;margin-bottom:4px;padding-left:4px;display:flex;overflow:hidden}.dIsIda_root:not(.dIsIda_rail) .dIsIda_sectionHeader{margin-top:2px;margin-right:-4px}.dIsIda_sectionLabel{white-space:nowrap;opacity:1;visibility:visible;min-width:0;max-width:45%;transition:max-width .18s var(--ds-ease-in-out), margin-right .18s var(--ds-ease-in-out), opacity .12s var(--ds-ease-in-out), transform .18s var(--ds-ease-in-out), visibility 0s linear;flex:none;line-height:20px;overflow:hidden}.dIsIda_sectionLabelHidden{opacity:0;visibility:hidden;max-width:0;margin-right:-4px;transition-delay:0s,0s,0s,0s,.18s;transform:translate(-4px)}.dIsIda_searchSlot{box-sizing:border-box;min-width:0;max-width:28px;transition:max-width .18s var(--ds-ease-in-out), padding-left .18s var(--ds-ease-in-out);flex:1;align-items:center;margin-left:auto;padding-left:0;display:flex}.dIsIda_searchSlotExpanded{max-width:100%;padding-left:0}.dIsIda_headerActions{opacity:1;visibility:visible;max-width:60px;transition:max-width .18s var(--ds-ease-in-out), opacity .12s var(--ds-ease-in-out), transform .18s var(--ds-ease-in-out), visibility 0s linear;flex:none;align-items:center;gap:4px;display:flex;overflow:hidden}.dIsIda_headerActionsHidden{opacity:0;visibility:hidden;pointer-events:none;max-width:0;transition-delay:0s,0s,0s,.18s;transform:translate(4px)}.dIsIda_search{box-sizing:border-box;border-radius:var(--dsw-radius-sm);cursor:text;width:100%;height:28px;color:var(--dsw-alias-label-secondary);transition:width .18s var(--ds-ease-in-out), padding .18s var(--ds-ease-in-out), border-color .18s var(--ds-ease-in-out), background-color .18s var(--ds-ease-in-out);background:0 0;border:none;flex:none;align-items:center;gap:0;margin:0;padding:0;display:flex;overflow:hidden}.dIsIda_searchExpanded{border:.5px solid var(--dsw-alias-border-l4);border-radius:var(--dsw-radius-md);width:calc(100% + 4px);height:30px;color:var(--dsw-alias-label-caption);background:0 0;margin-inline:-2px;padding:0 4px 0 0}.dIsIda_searchButton{border-radius:var(--dsw-radius-sm);cursor:pointer;width:28px;height:28px;color:inherit;background:0 0;border:none;flex:none;justify-content:center;align-items:center;padding:0;display:inline-flex}.dIsIda_searchExpanded .dIsIda_searchButton{width:28px;height:30px}.dIsIda_searchButton:hover{background:var(--dsw-alias-interactive-bg-hover)}.dIsIda_searchExpanded .dIsIda_searchButton:hover{background:0 0}.dIsIda_searchInput{opacity:0;pointer-events:none;width:0;min-width:0;color:var(--dsw-alias-label-primary);transition:opacity .12s var(--ds-ease-in-out);background:0 0;border:none;outline:none;flex:1;font-size:13px;line-height:18px}.dIsIda_searchExpanded .dIsIda_searchInput{opacity:1;pointer-events:auto;margin-left:-2px}.dIsIda_searchInput::placeholder{color:var(--dsw-alias-label-tertiary)}.dIsIda_clearButton{border-radius:var(--dsw-radius-sm);cursor:pointer;width:24px;height:24px;color:var(--dsw-alias-label-secondary);background:0 0;border:none;flex:none;justify-content:center;align-items:center;padding:0;display:inline-flex}.dIsIda_clearButton:hover{background:var(--dsw-alias-interactive-bg-hover)}.dIsIda_rail .dIsIda_sectionHeader{justify-content:flex-start;gap:0;margin-bottom:12px;padding-left:0}.dIsIda_rail .dIsIda_headerActions{max-width:none}.dIsIda_rail .dIsIda_iconButton{border-radius:var(--dsw-radius-md);width:36px;height:36px;color:var(--dsw-alias-label-primary)}.dIsIda_rail .dIsIda_search{border-radius:var(--dsw-radius-md);background:0 0;border-color:#0000;gap:0;width:36px;height:36px;margin:0 0 12px;padding:0}.dIsIda_rail .dIsIda_searchButton{border-radius:var(--dsw-radius-md);width:36px;height:36px;color:var(--dsw-alias-label-primary)}.dIsIda_rail .dIsIda_searchButton:hover{background:var(--dsw-alias-interactive-bg-hover)}.dIsIda_listArea{min-height:0;margin-left:-4px;margin-right:calc(-1 * var(--dsh-session-list-edge-inset));flex-direction:column;flex:1;padding-left:4px;display:flex;overflow:visible}.dIsIda_rail .dIsIda_listArea{margin-left:0;margin-right:0;padding-left:0}.dIsIda_treeBody{flex-direction:column;flex:1;min-height:0;display:flex;position:relative}.dIsIda_fade{left:0;right:var(--dsh-session-list-edge-inset);background:linear-gradient(to bottom, transparent, var(--dsw-specific-sidebar-fill));pointer-events:none;height:24px;position:absolute;bottom:0}[data-platform=darwin] .dIsIda_fade{display:none}.dIsIda_wide{animation:dIsIda_wide-in .2s var(--ds-ease-in-out)}@keyframes dIsIda_wide-in{0%{opacity:0}}.dIsIda_list{min-height:0;margin-left:-4px;margin-right:var(--dsh-session-list-scrollbar-offset);padding-left:4px;padding-right:calc(var(--dsh-session-list-edge-inset) - var(--dsh-session-list-scrollbar-width) - var(--dsh-session-list-scrollbar-offset));scrollbar-gutter:stable;flex:1;padding-bottom:16px;overflow-y:auto}.dIsIda_flatList>*+*,.dIsIda_searchTree>[role=treeitem]+[role=treeitem],.dIsIda_groupSection>*+*{margin-top:2px}.dIsIda_recentCanvas{overflow-anchor:none;position:relative}.dIsIda_recentRow{width:100%;height:34px;position:absolute;top:0;left:0}.dIsIda_searchStatus{color:var(--dsw-alias-label-tertiary);padding:10px 12px;font-size:12px;line-height:18px}.dIsIda_skeletonRow{box-sizing:border-box;align-items:flex-start;gap:8px;min-height:48px;padding:6px 8px 7px;display:flex}.dIsIda_skeletonDot{corner-shape:round;border-radius:50%;flex:none;width:16px;height:16px}.dIsIda_skeletonBars{flex-direction:column;flex:1;gap:6px;min-width:0;display:flex}.dIsIda_skeletonDot,.dIsIda_skeletonBar{background:var(--dsw-alias-bg-skeleton);animation:2s cubic-bezier(.36,0,.64,1) infinite dIsIda_search-skeleton}.dIsIda_skeletonBar{border-radius:var(--dsw-radius-xs);width:65%;height:16px}.dIsIda_skeletonBarWide{width:90%;height:13px}@keyframes dIsIda_search-skeleton{0%{opacity:1}40%{opacity:.6}80%,to{opacity:1}}.dIsIda_groupSection{position:relative}.dIsIda_groupSection+.dIsIda_groupSection{margin-top:4px}.dIsIda_listTopDropIndicator,.dIsIda_workspaceDropBefore:before,.dIsIda_workspaceDropAfter:after{content:\"\";z-index:1;background:linear-gradient(55deg, transparent calc(50% - 1px), var(--dsw-alias-state-business-primary) calc(50% - 1px) calc(50% + 1px), transparent calc(50% + 1px)) 0 0 / 5px 7px no-repeat, linear-gradient(125deg, transparent calc(50% - 1px), var(--dsw-alias-state-business-primary) calc(50% - 1px) calc(50% + 1px), transparent calc(50% + 1px)) 0 5px / 5px 7px no-repeat, linear-gradient(var(--dsw-alias-state-business-primary) 0 0) 4px 5px / calc(100% - 4px) 2px no-repeat;pointer-events:none;height:12px;position:absolute;left:0;right:0}.dIsIda_listTopDropIndicator{top:-8px;left:0;right:var(--dsh-session-list-edge-inset)}.dIsIda_listTopDropActive>.dIsIda_workspaceDropBefore:first-child:before{display:none}.dIsIda_workspaceDropBefore:before{top:-8px}.dIsIda_workspaceDropAfter:after{bottom:-8px}.dIsIda_sessionOverflowButton{border-radius:var(--dsw-radius-sm);width:100%;height:28px;padding:0 12px 0 calc(28px + var(--dsh-workspace-indent,0px));cursor:pointer;text-align:left;color:var(--dsw-alias-label-tertiary);background:0 0;border:none;font-size:12px}.dIsIda_groupSection>.dIsIda_sessionOverflowButton{margin-top:0}.dIsIda_sessionOverflowButton:hover{color:var(--dsw-alias-label-secondary);background:0 0}.dIsIda_empty{color:var(--dsw-alias-label-tertiary);padding:16px 12px;font-size:13px}.dIsIda_emptyState{color:var(--dsw-alias-label-tertiary);flex-direction:column;align-items:center;gap:8px;margin-top:80px;padding:0 12px;font-size:13px;line-height:20px;display:flex}.dIsIda_emptyState>svg{color:var(--dsw-alias-label-caption);margin-bottom:4px}.dIsIda_emptyAction{cursor:pointer;color:var(--dsw-alias-link);background:0 0;border:none;padding:0;font-size:13px;line-height:20px}.dIsIda_renameInput{box-sizing:border-box;border:.5px solid var(--dsw-alias-border-l4);border-radius:var(--dsw-radius-lg);width:100%;height:44px;color:var(--dsw-alias-label-primary);background:0 0;outline:none;padding:7px 14px;font-size:14px;font-weight:400;line-height:22px}.dIsIda_renameInput:disabled{color:var(--dsw-alias-label-dimmed)}.dIsIda_renameError{color:var(--dsw-alias-state-error-primary);margin-top:8px;font-size:12px;line-height:18px}.dIsIda_deleteAction:not(:disabled){color:var(--dsw-alias-state-error-primary)}.dIsIda_deleteStatus{color:var(--dsw-alias-label-secondary);font-size:12px;line-height:18px}.dIsIda_archiveActivity{color:var(--dsw-alias-label-primary);margin:0 0 8px;padding-left:18px;font-size:13px;line-height:20px}.dIsIda_archiveActivity li{overflow-wrap:anywhere}@media (prefers-reduced-motion:reduce){.dIsIda_wide,.dIsIda_skeletonDot,.dIsIda_skeletonBar{animation:none}.dIsIda_search,.dIsIda_sectionLabel,.dIsIda_searchSlot,.dIsIda_searchInput,.dIsIda_headerActions{transition:none}}";
3093
3093
  const tagId$2 = "@deepseek-ai/dsh-client-ui-workspace/WorkspaceBrowser.module.css";
3094
3094
  if (typeof document !== "undefined" && document.querySelector("style[data-plugin-css=" + JSON.stringify(tagId$2) + "]") === null) {
3095
3095
  const tag = document.createElement("style");
@@ -3099,53 +3099,53 @@ window.__ModuleLoader__.load({
3099
3099
  document.head.appendChild(tag);
3100
3100
  }
3101
3101
  var WorkspaceBrowser_module_css_default = {
3102
- "archiveActivity": "YaTVHW_archiveActivity",
3103
- "clearButton": "YaTVHW_clearButton",
3104
- "deleteAction": "YaTVHW_deleteAction",
3105
- "deleteStatus": "YaTVHW_deleteStatus",
3106
- "empty": "YaTVHW_empty",
3107
- "emptyAction": "YaTVHW_emptyAction",
3108
- "emptyState": "YaTVHW_emptyState",
3109
- "fade": "YaTVHW_fade",
3110
- "flatList": "YaTVHW_flatList",
3111
- "groupSection": "YaTVHW_groupSection",
3112
- "headerActions": "YaTVHW_headerActions",
3113
- "headerActionsHidden": "YaTVHW_headerActionsHidden",
3114
- "iconButton": "YaTVHW_iconButton",
3115
- "list": "YaTVHW_list",
3116
- "listArea": "YaTVHW_listArea",
3117
- "listTopDropActive": "YaTVHW_listTopDropActive",
3118
- "listTopDropIndicator": "YaTVHW_listTopDropIndicator",
3119
- "rail": "YaTVHW_rail",
3120
- "recentCanvas": "YaTVHW_recentCanvas",
3121
- "recentRow": "YaTVHW_recentRow",
3122
- "renameError": "YaTVHW_renameError",
3123
- "renameInput": "YaTVHW_renameInput",
3124
- "root": "YaTVHW_root",
3125
- "search": "YaTVHW_search",
3126
- "search-skeleton": "YaTVHW_search-skeleton",
3127
- "searchButton": "YaTVHW_searchButton",
3128
- "searchExpanded": "YaTVHW_searchExpanded",
3129
- "searchInput": "YaTVHW_searchInput",
3130
- "searchSlot": "YaTVHW_searchSlot",
3131
- "searchSlotExpanded": "YaTVHW_searchSlotExpanded",
3132
- "searchStatus": "YaTVHW_searchStatus",
3133
- "searchTree": "YaTVHW_searchTree",
3134
- "sectionHeader": "YaTVHW_sectionHeader",
3135
- "sectionLabel": "YaTVHW_sectionLabel",
3136
- "sectionLabelHidden": "YaTVHW_sectionLabelHidden",
3137
- "sessionOverflowButton": "YaTVHW_sessionOverflowButton",
3138
- "skeletonBar": "YaTVHW_skeletonBar",
3139
- "skeletonBarWide": "YaTVHW_skeletonBarWide",
3140
- "skeletonBars": "YaTVHW_skeletonBars",
3141
- "skeletonDot": "YaTVHW_skeletonDot",
3142
- "skeletonRow": "YaTVHW_skeletonRow",
3143
- "treeBody": "YaTVHW_treeBody",
3144
- "viewOptionsMenu": "YaTVHW_viewOptionsMenu",
3145
- "wide": "YaTVHW_wide",
3146
- "wide-in": "YaTVHW_wide-in",
3147
- "workspaceDropAfter": "YaTVHW_workspaceDropAfter",
3148
- "workspaceDropBefore": "YaTVHW_workspaceDropBefore"
3102
+ "archiveActivity": "dIsIda_archiveActivity",
3103
+ "clearButton": "dIsIda_clearButton",
3104
+ "deleteAction": "dIsIda_deleteAction",
3105
+ "deleteStatus": "dIsIda_deleteStatus",
3106
+ "empty": "dIsIda_empty",
3107
+ "emptyAction": "dIsIda_emptyAction",
3108
+ "emptyState": "dIsIda_emptyState",
3109
+ "fade": "dIsIda_fade",
3110
+ "flatList": "dIsIda_flatList",
3111
+ "groupSection": "dIsIda_groupSection",
3112
+ "headerActions": "dIsIda_headerActions",
3113
+ "headerActionsHidden": "dIsIda_headerActionsHidden",
3114
+ "iconButton": "dIsIda_iconButton",
3115
+ "list": "dIsIda_list",
3116
+ "listArea": "dIsIda_listArea",
3117
+ "listTopDropActive": "dIsIda_listTopDropActive",
3118
+ "listTopDropIndicator": "dIsIda_listTopDropIndicator",
3119
+ "rail": "dIsIda_rail",
3120
+ "recentCanvas": "dIsIda_recentCanvas",
3121
+ "recentRow": "dIsIda_recentRow",
3122
+ "renameError": "dIsIda_renameError",
3123
+ "renameInput": "dIsIda_renameInput",
3124
+ "root": "dIsIda_root",
3125
+ "search": "dIsIda_search",
3126
+ "search-skeleton": "dIsIda_search-skeleton",
3127
+ "searchButton": "dIsIda_searchButton",
3128
+ "searchExpanded": "dIsIda_searchExpanded",
3129
+ "searchInput": "dIsIda_searchInput",
3130
+ "searchSlot": "dIsIda_searchSlot",
3131
+ "searchSlotExpanded": "dIsIda_searchSlotExpanded",
3132
+ "searchStatus": "dIsIda_searchStatus",
3133
+ "searchTree": "dIsIda_searchTree",
3134
+ "sectionHeader": "dIsIda_sectionHeader",
3135
+ "sectionLabel": "dIsIda_sectionLabel",
3136
+ "sectionLabelHidden": "dIsIda_sectionLabelHidden",
3137
+ "sessionOverflowButton": "dIsIda_sessionOverflowButton",
3138
+ "skeletonBar": "dIsIda_skeletonBar",
3139
+ "skeletonBarWide": "dIsIda_skeletonBarWide",
3140
+ "skeletonBars": "dIsIda_skeletonBars",
3141
+ "skeletonDot": "dIsIda_skeletonDot",
3142
+ "skeletonRow": "dIsIda_skeletonRow",
3143
+ "treeBody": "dIsIda_treeBody",
3144
+ "viewOptionsMenu": "dIsIda_viewOptionsMenu",
3145
+ "wide": "dIsIda_wide",
3146
+ "wide-in": "dIsIda_wide-in",
3147
+ "workspaceDropAfter": "dIsIda_workspaceDropAfter",
3148
+ "workspaceDropBefore": "dIsIda_workspaceDropBefore"
3149
3149
  };
3150
3150
  //#endregion
3151
3151
  //#region lib/types/client/rows/RecentList.js
@@ -3269,8 +3269,8 @@ window.__ModuleLoader__.load({
3269
3269
  });
3270
3270
  }
3271
3271
  //#endregion
3272
- //#region \0dsh-css:/Users/shiguifeng/IdeaProjects/chonggou/deepseek-harness/packages/client/ui-workspace/src/client/WorkspacePicker.module.css.mjs
3273
- const css$1 = ".w-0k1a_modalAction{min-width:72px}.w-0k1a_modalError,.w-0k1a_menuStatus{margin-top:8px;font-size:12px;line-height:18px}.w-0k1a_modalError{color:var(--dsw-alias-state-error-primary)}.w-0k1a_menuStatus{color:var(--dsw-alias-label-secondary)}";
3272
+ //#region \0dsh-css:/Users/shiguifeng/IdeaProjects/chonggou/chatcode-cli-harness/packages/client/ui-workspace/src/client/WorkspacePicker.module.css.mjs
3273
+ const css$1 = ".TOQe7W_modalAction{min-width:72px}.TOQe7W_modalError,.TOQe7W_menuStatus{margin-top:8px;font-size:12px;line-height:18px}.TOQe7W_modalError{color:var(--dsw-alias-state-error-primary)}.TOQe7W_menuStatus{color:var(--dsw-alias-label-secondary)}";
3274
3274
  const tagId$1 = "@deepseek-ai/dsh-client-ui-workspace/WorkspacePicker.module.css";
3275
3275
  if (typeof document !== "undefined" && document.querySelector("style[data-plugin-css=" + JSON.stringify(tagId$1) + "]") === null) {
3276
3276
  const tag = document.createElement("style");
@@ -3280,9 +3280,9 @@ window.__ModuleLoader__.load({
3280
3280
  document.head.appendChild(tag);
3281
3281
  }
3282
3282
  var WorkspacePicker_module_css_default = {
3283
- "menuStatus": "w-0k1a_menuStatus",
3284
- "modalAction": "w-0k1a_modalAction",
3285
- "modalError": "w-0k1a_modalError"
3283
+ "menuStatus": "TOQe7W_menuStatus",
3284
+ "modalAction": "TOQe7W_modalAction",
3285
+ "modalError": "TOQe7W_modalError"
3286
3286
  };
3287
3287
  //#endregion
3288
3288
  //#region lib/types/client/WorkspacePicker.js
@@ -5222,8 +5222,8 @@ window.__ModuleLoader__.load({
5222
5222
  }
5223
5223
  }
5224
5224
  //#endregion
5225
- //#region \0dsh-css:/Users/shiguifeng/IdeaProjects/chonggou/deepseek-harness/packages/client/ui-workspace/src/client/ArchivedSessions.module.css.mjs
5226
- const css = ".CxM1Ra_root{color:var(--dsw-alias-label-primary);font-size:13px}.CxM1Ra_root h2{margin:0 0 12px;font-size:16px;font-weight:500}.CxM1Ra_root p{color:var(--dsw-alias-label-secondary);line-height:1.6}.CxM1Ra_search{box-sizing:border-box;border:.5px solid var(--dsw-alias-border-l4);border-radius:var(--dsw-radius-sm);width:100%;color:inherit;font:inherit;background:0 0;padding:8px 12px}.CxM1Ra_list{padding:0;list-style:none}.CxM1Ra_row{border-bottom:.5px solid var(--dsw-alias-border-l4);align-items:center;gap:8px;min-height:44px;display:flex}.CxM1Ra_title{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;overflow:hidden}.CxM1Ra_danger:not(:disabled),.CxM1Ra_root .CxM1Ra_error{color:var(--dsw-alias-state-error-primary)}.CxM1Ra_pagination{justify-content:flex-end;align-items:center;gap:12px;display:flex}";
5225
+ //#region \0dsh-css:/Users/shiguifeng/IdeaProjects/chonggou/chatcode-cli-harness/packages/client/ui-workspace/src/client/ArchivedSessions.module.css.mjs
5226
+ const css = ".ykA_Uq_root{min-width:0;max-width:760px;color:var(--dsw-alias-label-primary);flex-direction:column;gap:20px;font-size:13px;line-height:20px;display:flex}.ykA_Uq_heading{align-items:flex-start;gap:12px;display:flex}.ykA_Uq_headingIcon{border-radius:var(--dsw-radius-md);background:var(--dsw-alias-interactive-bg-hover);width:40px;height:40px;color:var(--dsw-alias-label-secondary);flex:none;place-items:center;display:grid}.ykA_Uq_heading h2{margin:0 0 6px;font-size:18px;font-weight:500;line-height:24px}.ykA_Uq_heading p{max-width:620px;color:var(--dsw-alias-label-secondary);margin:0}.ykA_Uq_searchRow{align-items:center;gap:16px;display:flex}.ykA_Uq_search{flex:1;min-width:0}.ykA_Uq_count,.ykA_Uq_selectedCount{color:var(--dsw-alias-label-secondary);flex:none;font-size:12px;line-height:18px}.ykA_Uq_table{border:.5px solid var(--dsw-alias-settings-card-stroke);border-radius:var(--dsw-radius-xl);background:var(--dsw-alias-settings-card-fill);min-width:0;padding:0 8px}.ykA_Uq_toolbar{box-sizing:border-box;border-bottom:.5px solid var(--dsw-alias-border-l4);flex-wrap:wrap;align-items:center;gap:8px 12px;min-height:52px;padding:10px 8px;display:flex}.ykA_Uq_toolbar>label{font-size:13px}.ykA_Uq_selectionActions{align-items:center;gap:4px;margin-inline-start:auto;display:flex}.ykA_Uq_list{margin:0;padding:4px 0;list-style:none}.ykA_Uq_row{box-sizing:border-box;border-radius:var(--dsw-radius-md);align-items:center;gap:6px;min-height:52px;padding:6px 8px;display:flex}.ykA_Uq_row:hover{background:var(--dsw-alias-interactive-bg-hover)}.ykA_Uq_row[data-selected=true]{background:var(--dsw-alias-interactive-bg-active)}.ykA_Uq_row+.ykA_Uq_row{margin-top:2px}.ykA_Uq_title{flex:1;gap:10px;min-width:0;font-size:13px;line-height:20px}.ykA_Uq_title>span{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.ykA_Uq_rowDelete{width:28px;color:var(--dsw-alias-label-secondary);flex:none;padding:0}.ykA_Uq_rowDelete:hover:not(:disabled),.ykA_Uq_danger:not(:disabled),.ykA_Uq_error{color:var(--dsw-alias-state-error-primary)}.ykA_Uq_error{overflow-wrap:anywhere;margin:12px 8px;font-size:13px;line-height:20px}.ykA_Uq_empty{color:var(--dsw-alias-label-secondary);flex-direction:column;align-items:center;gap:12px;padding:48px 16px;display:flex}.ykA_Uq_empty p{margin:0}.ykA_Uq_pagination{color:var(--dsw-alias-label-secondary);justify-content:flex-end;align-items:center;gap:12px;display:flex}.ykA_Uq_deleteDialog{--dsh-scrollbar-thumb:var(--dsw-alias-scrollbar-bg-l2);--dsh-scrollbar-thumb-hover:var(--dsw-alias-scrollbar-hover-l2);width:min(520px,100%);max-height:100%}.ykA_Uq_dialogContent{min-height:0;overflow-y:auto}.ykA_Uq_scopeSummary{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;display:grid}.ykA_Uq_scopeSummary>div{border-radius:var(--dsw-radius-md);background:var(--dsw-alias-interactive-bg-hover);flex-direction:column;gap:8px;padding:14px 16px;display:flex}.ykA_Uq_scopeSummary span{color:var(--dsw-alias-label-secondary);font-size:12px;line-height:18px}.ykA_Uq_scopeSummary strong{color:var(--dsw-alias-label-primary);font-size:22px;font-weight:500;line-height:28px}.ykA_Uq_warning{color:var(--dsw-alias-state-error-primary);align-items:flex-start;gap:8px;margin:16px 0;font-size:13px;line-height:20px;display:flex}.ykA_Uq_warning svg{flex:none;margin-top:2px}.ykA_Uq_confirmationList{border:.5px solid var(--dsw-alias-border-l4);border-radius:var(--dsw-radius-md);max-height:208px;margin:0;padding:6px 10px;list-style:none;overflow-y:auto}.ykA_Uq_confirmationList li{align-items:center;gap:10px;min-height:36px;padding:4px 0;font-size:13px;line-height:20px;display:flex}.ykA_Uq_confirmationList svg{color:var(--dsw-alias-label-secondary);flex:none}.ykA_Uq_confirmationList span{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.ykA_Uq_retainedHint,.ykA_Uq_progressHint{color:var(--dsw-alias-label-secondary);margin:14px 0 0;font-size:12px;line-height:20px}.ykA_Uq_dangerAction{background:var(--dsw-alias-state-error-primary);color:var(--dsw-alias-label-primary-foreground)}.ykA_Uq_dangerAction:hover:not(:disabled){background:color-mix(in srgb, var(--dsw-alias-state-error-primary) 90%, var(--dsw-alias-label-primary))}.ykA_Uq_result{color:var(--dsw-alias-label-secondary);margin:12px 0 0;font-size:13px;line-height:20px}.ykA_Uq_progressBody{flex-direction:column;align-items:center;padding:12px 0 8px;display:flex}.ykA_Uq_progressCount{color:var(--dsw-alias-label-primary);margin:20px 0 12px;font-size:15px;font-weight:500;line-height:22px}.ykA_Uq_progressBar{appearance:none;border-radius:var(--dsw-radius-sm);background:var(--dsw-alias-interactive-bg-hover);width:100%;height:6px;color:var(--dsw-alias-brand-primary);border:0;display:block;overflow:hidden}.ykA_Uq_progressBar::-webkit-progress-bar{background:var(--dsw-alias-interactive-bg-hover)}.ykA_Uq_progressBar::-webkit-progress-value{background:var(--dsw-alias-brand-primary);border-radius:inherit}.ykA_Uq_progressBar::-moz-progress-bar{background:var(--dsw-alias-brand-primary)}.ykA_Uq_currentTitle{text-overflow:ellipsis;white-space:nowrap;max-width:100%;color:var(--dsw-alias-label-secondary);margin:12px 0 0;font-size:13px;line-height:20px;overflow:hidden}.ykA_Uq_progressHint{text-align:center}.ykA_Uq_activity{z-index:1100;border-radius:var(--dsw-radius-lg);background:var(--dsw-alias-bg-layer-2);width:max-content;max-width:calc(100vw - 32px);box-shadow:var(--dsw-elevation-panel);color:var(--dsw-alias-label-primary);border:0;align-items:center;gap:12px;padding:12px 16px;font-size:13px;line-height:20px;display:flex;position:fixed;bottom:24px;left:50%;transform:translate(-50%)}.ykA_Uq_activity>svg,.ykA_Uq_activity>button{flex:none}.ykA_Uq_activity>span{overflow-wrap:anywhere;min-width:0}@media (width<=600px){.ykA_Uq_toolbar{gap:10px}.ykA_Uq_selectionActions{justify-content:flex-end;width:100%}.ykA_Uq_searchRow{gap:8px}}";
5227
5227
  const tagId = "@deepseek-ai/dsh-client-ui-workspace/ArchivedSessions.module.css";
5228
5228
  if (typeof document !== "undefined" && document.querySelector("style[data-plugin-css=" + JSON.stringify(tagId) + "]") === null) {
5229
5229
  const tag = document.createElement("style");
@@ -5233,28 +5233,55 @@ window.__ModuleLoader__.load({
5233
5233
  document.head.appendChild(tag);
5234
5234
  }
5235
5235
  var ArchivedSessions_module_css_default = {
5236
- "danger": "CxM1Ra_danger",
5237
- "error": "CxM1Ra_error",
5238
- "list": "CxM1Ra_list",
5239
- "pagination": "CxM1Ra_pagination",
5240
- "root": "CxM1Ra_root",
5241
- "row": "CxM1Ra_row",
5242
- "search": "CxM1Ra_search",
5243
- "title": "CxM1Ra_title"
5236
+ "activity": "ykA_Uq_activity",
5237
+ "confirmationList": "ykA_Uq_confirmationList",
5238
+ "count": "ykA_Uq_count",
5239
+ "currentTitle": "ykA_Uq_currentTitle",
5240
+ "danger": "ykA_Uq_danger",
5241
+ "dangerAction": "ykA_Uq_dangerAction",
5242
+ "deleteDialog": "ykA_Uq_deleteDialog",
5243
+ "dialogContent": "ykA_Uq_dialogContent",
5244
+ "empty": "ykA_Uq_empty",
5245
+ "error": "ykA_Uq_error",
5246
+ "heading": "ykA_Uq_heading",
5247
+ "headingIcon": "ykA_Uq_headingIcon",
5248
+ "list": "ykA_Uq_list",
5249
+ "pagination": "ykA_Uq_pagination",
5250
+ "progressBar": "ykA_Uq_progressBar",
5251
+ "progressBody": "ykA_Uq_progressBody",
5252
+ "progressCount": "ykA_Uq_progressCount",
5253
+ "progressHint": "ykA_Uq_progressHint",
5254
+ "result": "ykA_Uq_result",
5255
+ "retainedHint": "ykA_Uq_retainedHint",
5256
+ "root": "ykA_Uq_root",
5257
+ "row": "ykA_Uq_row",
5258
+ "rowDelete": "ykA_Uq_rowDelete",
5259
+ "scopeSummary": "ykA_Uq_scopeSummary",
5260
+ "search": "ykA_Uq_search",
5261
+ "searchRow": "ykA_Uq_searchRow",
5262
+ "selectedCount": "ykA_Uq_selectedCount",
5263
+ "selectionActions": "ykA_Uq_selectionActions",
5264
+ "table": "ykA_Uq_table",
5265
+ "title": "ykA_Uq_title",
5266
+ "toolbar": "ykA_Uq_toolbar",
5267
+ "warning": "ykA_Uq_warning"
5244
5268
  };
5245
5269
  //#endregion
5246
5270
  //#region lib/types/client/ArchivedSessions.js
5247
- /** Metadata-only archived-session management with bounded pages and restoration. */
5271
+ /** Metadata-only archived-session management with bounded pages and confirmed deletion. */
5248
5272
  const PAGE_SIZE = 30;
5249
5273
  /** Archived roots, including archived empty Sessions, with one global search and bounded DOM. */
5250
- function ArchivedSessions({ useSessions, useWorkspaces, restore, failureText, t }) {
5274
+ function ArchivedSessions({ useSessions, useWorkspaces, useDeletion, showDeletion, requestDelete, requestDeleteMany, restore, failureText, t }) {
5251
5275
  const list = useSessions((s) => s);
5252
5276
  const archived = useWorkspaces((s) => s.archivedSessionIds);
5277
+ const deletion = useDeletion((value) => value);
5253
5278
  const [query, setQuery] = (0, react.useState)("");
5254
5279
  const [page, setPage] = (0, react.useState)(0);
5255
- const [pending, setPending] = (0, react.useState)();
5280
+ const [pending, setPending] = (0, react.useState)(false);
5281
+ const [selected, setSelected] = (0, react.useState)([]);
5256
5282
  const busy = (0, react.useRef)(false);
5257
5283
  const [error, setError] = (0, react.useState)();
5284
+ const locked = pending || deletion !== null;
5258
5285
  const ids = (0, react.useMemo)(() => {
5259
5286
  const needle = query.trim().toLocaleLowerCase();
5260
5287
  return orderByRecency(archived.filter((id) => {
@@ -5266,12 +5293,18 @@ window.__ModuleLoader__.load({
5266
5293
  list.byId,
5267
5294
  query
5268
5295
  ]);
5296
+ const selectedSet = (0, react.useMemo)(() => new Set(selected), [selected]);
5297
+ const selectedIds = ids.filter((id) => selectedSet.has(id));
5298
+ (0, react.useEffect)(() => {
5299
+ const available = new Set(ids);
5300
+ setSelected((previous) => previous.every((id) => available.has(id)) ? previous : previous.filter((id) => available.has(id)));
5301
+ }, [ids]);
5269
5302
  const pages = Math.max(1, Math.ceil(ids.length / PAGE_SIZE));
5270
5303
  const current = Math.min(page, pages - 1);
5271
- const run = async (id, operation) => {
5304
+ const run = async (operation) => {
5272
5305
  if (busy.current) return;
5273
5306
  busy.current = true;
5274
- setPending(id);
5307
+ setPending(true);
5275
5308
  setError(void 0);
5276
5309
  try {
5277
5310
  await operation();
@@ -5279,54 +5312,148 @@ window.__ModuleLoader__.load({
5279
5312
  setError(failureText(reason));
5280
5313
  } finally {
5281
5314
  busy.current = false;
5282
- setPending(void 0);
5315
+ setPending(false);
5283
5316
  }
5284
5317
  };
5285
5318
  return (0, react_jsx_runtime.jsxs)("section", {
5286
5319
  className: ArchivedSessions_module_css_default.root,
5320
+ "aria-label": t("archive.manager.title"),
5287
5321
  children: [
5288
- (0, react_jsx_runtime.jsx)("h2", { children: t("archive.manager.title") }),
5289
- (0, react_jsx_runtime.jsx)("p", { children: t("archive.manager.description") }),
5290
- (0, react_jsx_runtime.jsx)("input", {
5291
- className: ArchivedSessions_module_css_default.search,
5292
- "aria-label": t("archive.manager.search"),
5293
- placeholder: t("archive.manager.search"),
5294
- value: query,
5295
- onChange: (event) => {
5296
- setQuery(event.target.value);
5297
- setPage(0);
5298
- }
5322
+ (0, react_jsx_runtime.jsxs)("header", {
5323
+ className: ArchivedSessions_module_css_default.heading,
5324
+ children: [(0, react_jsx_runtime.jsx)("span", {
5325
+ className: ArchivedSessions_module_css_default.headingIcon,
5326
+ children: (0, react_jsx_runtime.jsx)(_deepseek_ai_dsh_client_ui_primitives.IconArchiveOutlineRegular, { size: 20 })
5327
+ }), (0, react_jsx_runtime.jsxs)("div", { children: [(0, react_jsx_runtime.jsx)("h2", { children: t("archive.manager.title") }), (0, react_jsx_runtime.jsx)("p", { children: t("archive.manager.description") })] })]
5299
5328
  }),
5300
- error !== void 0 && (0, react_jsx_runtime.jsx)("p", {
5301
- role: "alert",
5302
- className: ArchivedSessions_module_css_default.error,
5303
- children: error
5329
+ (0, react_jsx_runtime.jsxs)("div", {
5330
+ className: ArchivedSessions_module_css_default.searchRow,
5331
+ children: [(0, react_jsx_runtime.jsx)(_deepseek_ai_dsh_client_ui_primitives.Input, {
5332
+ className: clsx(ArchivedSessions_module_css_default.search),
5333
+ icon: (0, react_jsx_runtime.jsx)(_deepseek_ai_dsh_client_ui_primitives.IconSearchOutlineRegular, { size: 16 }),
5334
+ "aria-label": t("archive.manager.search"),
5335
+ placeholder: t("archive.manager.search"),
5336
+ value: query,
5337
+ disabled: locked,
5338
+ onChange: (event) => {
5339
+ setQuery(event.target.value);
5340
+ setPage(0);
5341
+ setSelected([]);
5342
+ }
5343
+ }), (0, react_jsx_runtime.jsx)("span", {
5344
+ className: ArchivedSessions_module_css_default.count,
5345
+ children: t("archive.manager.total", { count: ids.length })
5346
+ })]
5304
5347
  }),
5305
- (0, react_jsx_runtime.jsx)("ul", {
5306
- className: ArchivedSessions_module_css_default.list,
5307
- "aria-label": t("archive.manager.title"),
5308
- children: ids.slice(current * PAGE_SIZE, (current + 1) * PAGE_SIZE).map((id) => {
5309
- const item = list.byId[id];
5310
- if (item === void 0) return null;
5311
- return (0, react_jsx_runtime.jsxs)("li", {
5312
- className: ArchivedSessions_module_css_default.row,
5313
- children: [(0, react_jsx_runtime.jsx)("span", {
5314
- className: ArchivedSessions_module_css_default.title,
5315
- title: item.displayTitle,
5316
- children: item.displayTitle
5317
- }), (0, react_jsx_runtime.jsx)(_deepseek_ai_dsh_client_ui_primitives.Button, {
5318
- size: "sm",
5319
- disabled: pending !== void 0,
5320
- "aria-label": t("archive.manager.restoreAria", { title: item.displayTitle }),
5321
- onClick: () => {
5322
- run(id, () => restore(id));
5323
- },
5324
- children: t("archive.manager.restore")
5325
- })]
5326
- }, id);
5327
- })
5348
+ (0, react_jsx_runtime.jsxs)("div", {
5349
+ className: ArchivedSessions_module_css_default.table,
5350
+ children: [
5351
+ ids.length > 0 && (0, react_jsx_runtime.jsxs)("div", {
5352
+ className: ArchivedSessions_module_css_default.toolbar,
5353
+ children: [
5354
+ (0, react_jsx_runtime.jsx)(_deepseek_ai_dsh_client_ui_primitives.Checkbox, {
5355
+ label: t("archive.manager.selectAll", { count: ids.length }),
5356
+ checked: selectedIds.length === ids.length,
5357
+ disabled: locked,
5358
+ onChange: (checked) => {
5359
+ setSelected(checked ? ids : []);
5360
+ }
5361
+ }),
5362
+ (0, react_jsx_runtime.jsx)("span", {
5363
+ role: "status",
5364
+ className: ArchivedSessions_module_css_default.selectedCount,
5365
+ children: t("archive.manager.selected", { count: selectedIds.length })
5366
+ }),
5367
+ (0, react_jsx_runtime.jsxs)("div", {
5368
+ className: ArchivedSessions_module_css_default.selectionActions,
5369
+ children: [
5370
+ deletion !== null && !deletion.visible && (0, react_jsx_runtime.jsx)(_deepseek_ai_dsh_client_ui_primitives.Button, {
5371
+ size: "sm",
5372
+ variant: "outline",
5373
+ onClick: showDeletion,
5374
+ children: t("archive.manager.viewProgress")
5375
+ }),
5376
+ (0, react_jsx_runtime.jsx)(_deepseek_ai_dsh_client_ui_primitives.Button, {
5377
+ size: "sm",
5378
+ disabled: locked || selectedIds.length === 0,
5379
+ onClick: () => {
5380
+ setSelected([]);
5381
+ },
5382
+ children: t("archive.manager.clearSelection")
5383
+ }),
5384
+ (0, react_jsx_runtime.jsx)(_deepseek_ai_dsh_client_ui_primitives.Button, {
5385
+ size: "sm",
5386
+ variant: "outline",
5387
+ className: ArchivedSessions_module_css_default.danger,
5388
+ icon: (0, react_jsx_runtime.jsx)(_deepseek_ai_dsh_client_ui_primitives.IconTrashOutlineRegular, { size: 14 }),
5389
+ disabled: locked || selectedIds.length === 0,
5390
+ onClick: () => {
5391
+ run(() => requestDeleteMany(selectedIds));
5392
+ },
5393
+ children: t("archive.manager.deleteSelected", { count: selectedIds.length })
5394
+ })
5395
+ ]
5396
+ })
5397
+ ]
5398
+ }),
5399
+ error !== void 0 && (0, react_jsx_runtime.jsx)("p", {
5400
+ role: "alert",
5401
+ className: ArchivedSessions_module_css_default.error,
5402
+ children: error
5403
+ }),
5404
+ (0, react_jsx_runtime.jsx)("ul", {
5405
+ className: ArchivedSessions_module_css_default.list,
5406
+ "aria-label": t("archive.manager.title"),
5407
+ children: ids.slice(current * PAGE_SIZE, (current + 1) * PAGE_SIZE).map((id) => {
5408
+ const item = list.byId[id];
5409
+ if (item === void 0) return null;
5410
+ return (0, react_jsx_runtime.jsxs)("li", {
5411
+ className: ArchivedSessions_module_css_default.row,
5412
+ "data-selected": selectedSet.has(id),
5413
+ children: [
5414
+ (0, react_jsx_runtime.jsx)(_deepseek_ai_dsh_client_ui_primitives.Checkbox, {
5415
+ className: ArchivedSessions_module_css_default.title,
5416
+ label: item.displayTitle,
5417
+ title: item.displayTitle,
5418
+ checked: selectedSet.has(id),
5419
+ disabled: locked,
5420
+ onChange: (checked) => {
5421
+ setSelected((previous) => checked ? [...previous, id] : previous.filter((value) => value !== id));
5422
+ }
5423
+ }),
5424
+ (0, react_jsx_runtime.jsx)(_deepseek_ai_dsh_client_ui_primitives.Button, {
5425
+ size: "sm",
5426
+ disabled: locked,
5427
+ icon: (0, react_jsx_runtime.jsx)(_deepseek_ai_dsh_client_ui_primitives.IconArchiveOffOutlineRegular, { size: 14 }),
5428
+ "aria-label": t("archive.manager.restoreAria", { title: item.displayTitle }),
5429
+ onClick: () => {
5430
+ run(() => restore(id));
5431
+ },
5432
+ children: t("archive.manager.restore")
5433
+ }),
5434
+ (0, react_jsx_runtime.jsx)(_deepseek_ai_dsh_client_ui_primitives.Tooltip, {
5435
+ label: t("archive.manager.delete"),
5436
+ children: (0, react_jsx_runtime.jsx)(_deepseek_ai_dsh_client_ui_primitives.Button, {
5437
+ size: "sm",
5438
+ className: ArchivedSessions_module_css_default.rowDelete,
5439
+ disabled: locked,
5440
+ "aria-label": t("archive.manager.deleteAria", { title: item.displayTitle }),
5441
+ onClick: () => {
5442
+ run(() => requestDelete(id));
5443
+ },
5444
+ children: (0, react_jsx_runtime.jsx)(_deepseek_ai_dsh_client_ui_primitives.IconTrashOutlineRegular, { size: 16 })
5445
+ })
5446
+ })
5447
+ ]
5448
+ }, id);
5449
+ })
5450
+ }),
5451
+ ids.length === 0 && (0, react_jsx_runtime.jsxs)("div", {
5452
+ className: ArchivedSessions_module_css_default.empty,
5453
+ children: [(0, react_jsx_runtime.jsx)(_deepseek_ai_dsh_client_ui_primitives.IconArchiveOutlineRegular, { size: 28 }), (0, react_jsx_runtime.jsx)("p", { children: query.trim() === "" ? t("empty.noneArchived") : t("empty.noMatches") })]
5454
+ })
5455
+ ]
5328
5456
  }),
5329
- ids.length === 0 && (0, react_jsx_runtime.jsx)("p", { children: query.trim() === "" ? t("empty.noneArchived") : t("empty.noMatches") }),
5330
5457
  pages > 1 && (0, react_jsx_runtime.jsxs)("div", {
5331
5458
  className: ArchivedSessions_module_css_default.pagination,
5332
5459
  children: [
@@ -5356,6 +5483,277 @@ window.__ModuleLoader__.load({
5356
5483
  });
5357
5484
  }
5358
5485
  //#endregion
5486
+ //#region lib/types/client/session-actions/DeleteSession.js
5487
+ /** Archived-only deletion with a retained, dismissible progress dialog. */
5488
+ /** Permanent deletion is offered only for archived rows. */
5489
+ function DeleteSessionMenuItem({ sessionId, useArchived, useMenuOpenState, requestDelete, t }) {
5490
+ const archived = useArchived((ids) => ids.has(sessionId));
5491
+ const [, setMenuOpen] = useMenuOpenState();
5492
+ if (!archived) return null;
5493
+ return (0, react_jsx_runtime.jsx)(_deepseek_ai_dsh_client_ui_primitives.MenuItemButton, {
5494
+ onSelect: () => {
5495
+ setMenuOpen(false);
5496
+ requestDelete(sessionId);
5497
+ },
5498
+ children: t("archive.manager.delete")
5499
+ });
5500
+ }
5501
+ /** Show preparation, confirmation or deletion progress; hidden work retains a reopen action. */
5502
+ function SessionDeleteDialog({ useDeletion, close, show, confirm, t }) {
5503
+ const operation = useDeletion((value) => value);
5504
+ if (operation === null) return null;
5505
+ const running = operation.phase !== "confirming";
5506
+ const title = t(operation.phase === "preparing" ? "archive.manager.preparingTitle" : operation.phase === "deleting" ? "archive.manager.deleting" : "archive.manager.readyTitle");
5507
+ const progress = t("archive.manager.progress", {
5508
+ completed: operation.completed,
5509
+ total: operation.total
5510
+ });
5511
+ if (!operation.visible) return (0, react_dom.createPortal)((0, react_jsx_runtime.jsxs)("div", {
5512
+ className: ArchivedSessions_module_css_default.activity,
5513
+ children: [
5514
+ (0, react_jsx_runtime.jsx)(_deepseek_ai_dsh_client_ui_primitives.StateDot, { state: running ? "ongoing" : operation.errors.length > 0 ? "error" : "warning" }),
5515
+ (0, react_jsx_runtime.jsxs)("span", {
5516
+ role: "status",
5517
+ children: [title, running ? ` · ${progress}` : ""]
5518
+ }),
5519
+ (0, react_jsx_runtime.jsx)(_deepseek_ai_dsh_client_ui_primitives.Button, {
5520
+ size: "sm",
5521
+ variant: "outline",
5522
+ onClick: show,
5523
+ children: t("archive.manager.viewProgress")
5524
+ })
5525
+ ]
5526
+ }), document.body);
5527
+ if (running) return (0, react_jsx_runtime.jsx)(_deepseek_ai_dsh_client_ui_primitives.Modal, {
5528
+ open: true,
5529
+ className: clsx(ArchivedSessions_module_css_default.deleteDialog),
5530
+ contentClassName: clsx(ArchivedSessions_module_css_default.dialogContent),
5531
+ title,
5532
+ closeLabel: t("close"),
5533
+ onClose: close,
5534
+ footer: (0, react_jsx_runtime.jsx)(_deepseek_ai_dsh_client_ui_primitives.Button, {
5535
+ variant: "outline",
5536
+ "data-modal-autofocus": true,
5537
+ onClick: close,
5538
+ children: t("archive.manager.hideProgress")
5539
+ }),
5540
+ children: (0, react_jsx_runtime.jsxs)("div", {
5541
+ className: ArchivedSessions_module_css_default.progressBody,
5542
+ children: [
5543
+ (0, react_jsx_runtime.jsx)(_deepseek_ai_dsh_client_ui_primitives.StateDot, {
5544
+ state: "ongoing",
5545
+ size: 32
5546
+ }),
5547
+ (0, react_jsx_runtime.jsx)("p", {
5548
+ role: "status",
5549
+ className: ArchivedSessions_module_css_default.progressCount,
5550
+ children: progress
5551
+ }),
5552
+ (0, react_jsx_runtime.jsx)("progress", {
5553
+ className: ArchivedSessions_module_css_default.progressBar,
5554
+ value: operation.completed,
5555
+ max: operation.total,
5556
+ "aria-label": title
5557
+ }),
5558
+ (0, react_jsx_runtime.jsx)("p", {
5559
+ className: ArchivedSessions_module_css_default.currentTitle,
5560
+ title: operation.currentTitle,
5561
+ children: operation.currentTitle
5562
+ }),
5563
+ (0, react_jsx_runtime.jsx)("p", {
5564
+ className: ArchivedSessions_module_css_default.progressHint,
5565
+ children: t(operation.phase === "preparing" ? "archive.manager.preparingHint" : "archive.manager.backgroundHint")
5566
+ })
5567
+ ]
5568
+ })
5569
+ }, operation.phase);
5570
+ const multiple = operation.deleted + operation.targets.length > 1;
5571
+ const count = new Set(operation.targets.flatMap((target) => target.scope)).size;
5572
+ return (0, react_jsx_runtime.jsxs)(_deepseek_ai_dsh_client_ui_primitives.Modal, {
5573
+ open: true,
5574
+ className: clsx(ArchivedSessions_module_css_default.deleteDialog),
5575
+ contentClassName: clsx(ArchivedSessions_module_css_default.dialogContent),
5576
+ title: t(multiple ? "archive.manager.confirmManyTitle" : "archive.manager.confirmTitle"),
5577
+ closeLabel: t("close"),
5578
+ onClose: close,
5579
+ footer: (0, react_jsx_runtime.jsxs)(react_jsx_runtime.Fragment, { children: [(0, react_jsx_runtime.jsx)(_deepseek_ai_dsh_client_ui_primitives.Button, {
5580
+ variant: "outline",
5581
+ "data-modal-autofocus": true,
5582
+ onClick: close,
5583
+ children: t("cancel")
5584
+ }), (0, react_jsx_runtime.jsx)(_deepseek_ai_dsh_client_ui_primitives.Button, {
5585
+ className: ArchivedSessions_module_css_default.dangerAction,
5586
+ onClick: () => {
5587
+ confirm();
5588
+ },
5589
+ children: t(operation.errors.length > 0 && multiple ? "archive.manager.retryFailed" : "archive.manager.delete")
5590
+ })] }),
5591
+ children: [
5592
+ (0, react_jsx_runtime.jsxs)("div", {
5593
+ className: ArchivedSessions_module_css_default.scopeSummary,
5594
+ children: [(0, react_jsx_runtime.jsxs)("div", { children: [(0, react_jsx_runtime.jsx)("span", { children: t("archive.manager.selectedSessions") }), (0, react_jsx_runtime.jsx)("strong", { children: operation.targets.length })] }), (0, react_jsx_runtime.jsxs)("div", { children: [(0, react_jsx_runtime.jsx)("span", { children: t("archive.manager.ownedRecords") }), (0, react_jsx_runtime.jsx)("strong", { children: count })] })]
5595
+ }),
5596
+ (0, react_jsx_runtime.jsxs)("p", {
5597
+ className: ArchivedSessions_module_css_default.warning,
5598
+ children: [(0, react_jsx_runtime.jsx)(_deepseek_ai_dsh_client_ui_primitives.IconWarningTriangleOutlineRegular, { size: 16 }), t("archive.manager.irreversible")]
5599
+ }),
5600
+ (0, react_jsx_runtime.jsx)("ul", {
5601
+ className: ArchivedSessions_module_css_default.confirmationList,
5602
+ "aria-label": t("archive.manager.selectedSessions"),
5603
+ children: operation.targets.map((target) => (0, react_jsx_runtime.jsxs)("li", { children: [(0, react_jsx_runtime.jsx)(_deepseek_ai_dsh_client_ui_primitives.IconArchiveOutlineRegular, { size: 16 }), (0, react_jsx_runtime.jsx)("span", {
5604
+ title: target.title,
5605
+ children: target.title
5606
+ })] }, target.id))
5607
+ }),
5608
+ (0, react_jsx_runtime.jsx)("p", {
5609
+ className: ArchivedSessions_module_css_default.retainedHint,
5610
+ children: t("archive.manager.retainedData")
5611
+ }),
5612
+ multiple && operation.errors.length > 0 && (0, react_jsx_runtime.jsx)("p", {
5613
+ role: "status",
5614
+ className: ArchivedSessions_module_css_default.result,
5615
+ children: t("archive.manager.batchResult", {
5616
+ deleted: operation.deleted,
5617
+ failed: operation.targets.length
5618
+ })
5619
+ }),
5620
+ operation.errors.map((error) => (0, react_jsx_runtime.jsx)("p", {
5621
+ role: "alert",
5622
+ className: ArchivedSessions_module_css_default.error,
5623
+ children: multiple ? t("archive.manager.failedSession", {
5624
+ title: error.title,
5625
+ reason: error.message
5626
+ }) : error.message
5627
+ }, error.id))
5628
+ ]
5629
+ }, operation.phase);
5630
+ }
5631
+ //#endregion
5632
+ //#region lib/types/client/session-actions/deletion.js
5633
+ /** Deletion preparation and execution outlive their dismissible progress dialog. */
5634
+ /** Own one deletion at a time; hiding its UI never cancels submitted work. */
5635
+ var SessionDeletion = class {
5636
+ operations;
5637
+ /** Observable progress and confirmation; null when no deletion operation is retained. */
5638
+ state = (0, _deepseek_ai_dsh_client_store.createSnapshotStore)(null);
5639
+ constructor(operations) {
5640
+ this.operations = operations;
5641
+ }
5642
+ /** Show the retained confirmation or progress without starting another operation. */
5643
+ show = () => {
5644
+ const current = this.state.getSnapshot();
5645
+ if (current !== null) this.state.set({
5646
+ ...current,
5647
+ visible: true
5648
+ });
5649
+ };
5650
+ /** Cancel an idle confirmation; hide progress while preparation or deletion continues. */
5651
+ close = () => {
5652
+ const current = this.state.getSnapshot();
5653
+ if (current !== null) this.state.set(current.phase === "confirming" ? null : {
5654
+ ...current,
5655
+ visible: false
5656
+ });
5657
+ };
5658
+ /**
5659
+ * Preview every unique root before allowing deletion and publish progress immediately.
5660
+ * @param ids - selected archived roots; an empty selection does nothing.
5661
+ * @returns settles when all previews are ready; rejects without deleting on preview failure.
5662
+ */
5663
+ async request(ids) {
5664
+ if (ids.length === 0) return;
5665
+ if (this.state.getSnapshot() !== null) {
5666
+ this.show();
5667
+ return;
5668
+ }
5669
+ const unique = [...new Set(ids)];
5670
+ this.state.set({
5671
+ phase: "preparing",
5672
+ visible: true,
5673
+ targets: [],
5674
+ total: unique.length,
5675
+ completed: 0,
5676
+ deleted: 0,
5677
+ currentTitle: "",
5678
+ errors: []
5679
+ });
5680
+ const targets = [];
5681
+ try {
5682
+ for (const id of unique) {
5683
+ const title = this.operations.title(id);
5684
+ this.update({ currentTitle: title });
5685
+ const scope = await this.operations.scope(id);
5686
+ targets.push({
5687
+ id,
5688
+ title,
5689
+ scope
5690
+ });
5691
+ this.update({ completed: targets.length });
5692
+ }
5693
+ this.update({
5694
+ phase: "confirming",
5695
+ targets,
5696
+ currentTitle: ""
5697
+ });
5698
+ } catch (error) {
5699
+ this.state.set(null);
5700
+ this.operations.preparationFailed(error);
5701
+ throw error;
5702
+ }
5703
+ }
5704
+ /**
5705
+ * Delete only the frozen confirmed scopes, keeping refused roots for a later retry.
5706
+ * @returns settles after all attempted roots; per-root failures remain in the snapshot.
5707
+ */
5708
+ confirm = async () => {
5709
+ const current = this.state.getSnapshot();
5710
+ if (current === null || current.phase !== "confirming") return;
5711
+ this.update({
5712
+ phase: "deleting",
5713
+ total: current.targets.length,
5714
+ completed: 0,
5715
+ errors: []
5716
+ });
5717
+ const failed = [];
5718
+ const errors = [];
5719
+ let deleted = current.deleted;
5720
+ let completed = 0;
5721
+ for (const target of current.targets) {
5722
+ this.update({ currentTitle: target.title });
5723
+ try {
5724
+ await this.operations.remove(target.id, target.scope);
5725
+ deleted += 1;
5726
+ } catch (reason) {
5727
+ failed.push(target);
5728
+ errors.push({
5729
+ id: target.id,
5730
+ title: target.title,
5731
+ message: this.operations.failureText(reason)
5732
+ });
5733
+ }
5734
+ this.update({
5735
+ completed: ++completed,
5736
+ deleted
5737
+ });
5738
+ }
5739
+ if (failed.length === 0) this.state.set(null);
5740
+ else this.update({
5741
+ phase: "confirming",
5742
+ targets: failed,
5743
+ errors,
5744
+ currentTitle: ""
5745
+ });
5746
+ this.operations.completed(deleted, failed.length);
5747
+ };
5748
+ update(patch) {
5749
+ const current = this.state.getSnapshot();
5750
+ if (current !== null) this.state.set({
5751
+ ...current,
5752
+ ...patch
5753
+ });
5754
+ }
5755
+ };
5756
+ //#endregion
5359
5757
  //#region lib/types/client/locales.js
5360
5758
  /**
5361
5759
  * `workspace` namespace dictionaries: the browsing region (section header,
@@ -5365,8 +5763,30 @@ window.__ModuleLoader__.load({
5365
5763
  /** Simplified Chinese dictionary (the key-set source of truth). */
5366
5764
  const zh = {
5367
5765
  "archive.manager.title": "已归档会话",
5368
- "archive.manager.description": "归档保留会话记录,可恢复后继续。",
5766
+ "archive.manager.description": "归档保留会话记录,可恢复后继续。永久删除会同时移除该会话及其子代理记录,无法撤销。",
5369
5767
  "archive.manager.search": "搜索已归档会话",
5768
+ "archive.manager.total": "共 {count} 个会话",
5769
+ "archive.manager.selectedSessions": "所选会话",
5770
+ "archive.manager.ownedRecords": "会话记录(含子代理)",
5771
+ "archive.manager.irreversible": "永久删除后无法恢复,请确认以下会话",
5772
+ "archive.manager.retainedData": "仅删除会话记录,独立分叉、工作区文件与 Git 数据会保留",
5773
+ "archive.manager.preparingTitle": "正在核对删除范围",
5774
+ "archive.manager.preparingHint": "正在核对会话及子代理记录,完成后仍需确认删除。关闭窗口不会中断核对",
5775
+ "archive.manager.readyTitle": "等待确认删除",
5776
+ "archive.manager.progress": "已处理 {completed} / {total} 个会话",
5777
+ "archive.manager.backgroundHint": "关闭窗口不会中断删除,可通过「查看进度」重新打开",
5778
+ "archive.manager.hideProgress": "关闭窗口",
5779
+ "archive.manager.viewProgress": "查看进度",
5780
+ "archive.manager.deleteComplete": "已永久删除 {count} 个会话",
5781
+ "archive.manager.selectAll": "全选当前结果({count})",
5782
+ "archive.manager.selected": "已选择 {count} 个会话",
5783
+ "archive.manager.clearSelection": "取消选择",
5784
+ "archive.manager.deleteSelected": "删除所选({count})",
5785
+ "archive.manager.confirmManyTitle": "永久删除所选会话?",
5786
+ "archive.manager.confirmManyDescription": "将永久删除所选 {sessions} 个会话及其所属子代理,共 {count} 条会话记录,无法撤销。独立分叉、工作区文件与 Git 数据会保留。",
5787
+ "archive.manager.batchResult": "已删除 {deleted} 个会话,{failed} 个删除失败。",
5788
+ "archive.manager.failedSession": "“{title}”:{reason}",
5789
+ "archive.manager.retryFailed": "重试失败项",
5370
5790
  "archive.manager.restoreAria": "恢复会话“{title}”",
5371
5791
  "archive.manager.deleteAria": "永久删除会话“{title}”",
5372
5792
  "archive.manager.restore": "恢复",
@@ -5383,6 +5803,7 @@ window.__ModuleLoader__.load({
5383
5803
  "archive.manager.deleted": "会话已永久删除。",
5384
5804
  "archive.manager.restored": "会话已恢复。",
5385
5805
  "archive.manager.failed": "操作失败,请重试。",
5806
+ "archive.manager.failedDetail": "操作失败:{reason}",
5386
5807
  "defaultWorkspace.failed": "无法创建默认工作区,请通过“选择工作区”选择文件夹",
5387
5808
  "group.ungrouped": "未分组",
5388
5809
  "session.new": "新会话",
@@ -5500,8 +5921,30 @@ window.__ModuleLoader__.load({
5500
5921
  /** English dictionary, checked complete against the zh key set. */
5501
5922
  const en = {
5502
5923
  "archive.manager.title": "Archived sessions",
5503
- "archive.manager.description": "Archiving keeps the conversation for later. Restore it to continue.",
5924
+ "archive.manager.description": "Archiving keeps the conversation for later. Permanent deletion removes the session and its subagent records and cannot be undone.",
5504
5925
  "archive.manager.search": "Search archived sessions",
5926
+ "archive.manager.total": "{count} sessions",
5927
+ "archive.manager.selectedSessions": "Selected sessions",
5928
+ "archive.manager.ownedRecords": "Records including subagents",
5929
+ "archive.manager.irreversible": "Permanent deletion cannot be undone. Check the sessions below.",
5930
+ "archive.manager.retainedData": "Only session records are removed. Independent forks, workspace files and Git data are kept.",
5931
+ "archive.manager.preparingTitle": "Checking deletion scope",
5932
+ "archive.manager.preparingHint": "Checking sessions and their subagent records. Deletion still needs your confirmation. Closing this window does not interrupt the check.",
5933
+ "archive.manager.readyTitle": "Waiting for deletion confirmation",
5934
+ "archive.manager.progress": "Processed {completed} / {total} sessions",
5935
+ "archive.manager.backgroundHint": "Closing this window does not interrupt deletion. Use View progress to reopen it.",
5936
+ "archive.manager.hideProgress": "Close window",
5937
+ "archive.manager.viewProgress": "View progress",
5938
+ "archive.manager.deleteComplete": "{count} sessions permanently deleted",
5939
+ "archive.manager.selectAll": "Select all results ({count})",
5940
+ "archive.manager.selected": "{count} sessions selected",
5941
+ "archive.manager.clearSelection": "Clear selection",
5942
+ "archive.manager.deleteSelected": "Delete selected ({count})",
5943
+ "archive.manager.confirmManyTitle": "Permanently delete selected sessions?",
5944
+ "archive.manager.confirmManyDescription": "Permanently delete {sessions} selected sessions and their owned subagents ({count} session records). This cannot be undone. Independent forks, workspace files and Git data are kept.",
5945
+ "archive.manager.batchResult": "{deleted} sessions deleted; {failed} failed.",
5946
+ "archive.manager.failedSession": "“{title}”: {reason}",
5947
+ "archive.manager.retryFailed": "Retry failed sessions",
5505
5948
  "archive.manager.restoreAria": "Restore session “{title}”",
5506
5949
  "archive.manager.deleteAria": "Permanently delete session “{title}”",
5507
5950
  "archive.manager.restore": "Restore",
@@ -5518,6 +5961,7 @@ window.__ModuleLoader__.load({
5518
5961
  "archive.manager.deleted": "Session permanently deleted.",
5519
5962
  "archive.manager.restored": "Session restored.",
5520
5963
  "archive.manager.failed": "The operation failed. Try again.",
5964
+ "archive.manager.failedDetail": "Operation failed: {reason}",
5521
5965
  "defaultWorkspace.failed": "Unable to create default workspace. Use Choose workspace to select a folder.",
5522
5966
  "group.ungrouped": "Ungrouped",
5523
5967
  "session.new": "New Session",
@@ -5717,8 +6161,38 @@ window.__ModuleLoader__.load({
5717
6161
  case "scope-changed": return t("archive.manager.scopeChanged");
5718
6162
  case "deleted": return t("archive.manager.deleted");
5719
6163
  }
6164
+ return t("archive.manager.failedDetail", { reason: rpcError.message });
6165
+ }
6166
+ return reason instanceof Error && reason.message !== "" ? t("archive.manager.failedDetail", { reason: reason.message }) : t("archive.manager.failed");
6167
+ };
6168
+ const deletion = new SessionDeletion({
6169
+ title: (id) => sessions.list.getSnapshot().byId[id]?.displayTitle ?? id,
6170
+ scope: (id) => workspaces.sessionDeletionScope(id),
6171
+ remove: async (id, scope) => {
6172
+ await workspaces.deleteSession(id, scope);
6173
+ },
6174
+ failureText,
6175
+ preparationFailed: (reason) => {
6176
+ notify({
6177
+ kind: "sessionOperation",
6178
+ message: failureText(reason),
6179
+ success: false
6180
+ });
6181
+ },
6182
+ completed: (deleted, failed) => {
6183
+ notify({
6184
+ kind: "sessionOperation",
6185
+ success: failed === 0,
6186
+ message: failed === 0 ? t("archive.manager.deleteComplete", { count: deleted }) : t("archive.manager.batchResult", {
6187
+ deleted,
6188
+ failed
6189
+ })
6190
+ });
5720
6191
  }
5721
- return t("archive.manager.failed");
6192
+ });
6193
+ const requestDeleteMany = (ids) => deletion.request(ids);
6194
+ const requestDelete = (id) => {
6195
+ return requestDeleteMany([id]);
5722
6196
  };
5723
6197
  ctx.slots.inject("settings.section", () => ctx.slots.register({
5724
6198
  name: "settings.section",
@@ -5727,6 +6201,10 @@ window.__ModuleLoader__.load({
5727
6201
  locale: NS,
5728
6202
  label: () => t("archive.manager.title"),
5729
6203
  inject: () => ({
6204
+ hooks: { deletion: deletion.state },
6205
+ showDeletion: deletion.show,
6206
+ requestDelete,
6207
+ requestDeleteMany,
5730
6208
  failureText,
5731
6209
  restore: async (id) => {
5732
6210
  await workspaces.unarchiveSession(id);
@@ -5922,6 +6400,20 @@ window.__ModuleLoader__.load({
5922
6400
  locale: NS,
5923
6401
  inject: archiveInjected
5924
6402
  }, ArchiveSessionMenuItem);
6403
+ yield ctx.slots.register({
6404
+ name: "sidebar.workspaces.session.menu.item",
6405
+ id: "delete",
6406
+ order: 500,
6407
+ locale: NS,
6408
+ inject: () => ({
6409
+ hooks: { archived: archivedSet },
6410
+ requestDelete: (id) => {
6411
+ requestDelete(id).catch((reason) => {
6412
+ console.warn("session deletion preview rejected:", reason);
6413
+ });
6414
+ }
6415
+ })
6416
+ }, DeleteSessionMenuItem);
5925
6417
  });
5926
6418
  ctx.slots.inject("sidebar.workspaces.session.row.action", function* () {
5927
6419
  yield ctx.slots.register({
@@ -5940,6 +6432,18 @@ window.__ModuleLoader__.load({
5940
6432
  }, PinSessionRowButton);
5941
6433
  });
5942
6434
  ctx.slots.inject("shell.overlay", function* () {
6435
+ yield ctx.slots.register({
6436
+ name: "shell.overlay",
6437
+ id: "workspace.session-delete",
6438
+ locale: NS,
6439
+ inject: () => ({
6440
+ hooks: { deletion: deletion.state },
6441
+ close: deletion.close,
6442
+ show: deletion.show,
6443
+ confirm: deletion.confirm,
6444
+ failureText
6445
+ })
6446
+ }, SessionDeleteDialog);
5943
6447
  yield ctx.slots.register({
5944
6448
  name: "shell.overlay",
5945
6449
  id: "workspace.session-rename",