@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.
- package/README.i18n.yaml +6 -6
- package/README.md +10 -4
- package/README.zh.md +10 -4
- package/lib/bin.js +23 -9
- package/lib/{command-errors-Ca64Lgba.js → command-errors-CsRCh0gk.js} +12 -12
- package/lib/{command-trees-CVc4Xu_z.js → command-trees-CD_43rxX.js} +2 -2
- package/lib/{component-identity-6aEut5Yt.js → component-identity-DGA2-TeB.js} +3 -3
- package/lib/{dump-config-ZzrfvtnX.js → dump-config-D8kXfdTs.js} +1 -1
- package/lib/dump-config-DuCc-QB7.js +2 -0
- package/lib/{dump-config-schema-BlO-eZ-J.js → dump-config-schema-CtZbroi6.js} +2 -2
- package/lib/{extension-events-C7MUpqVE.js → extension-events-D0BjYRqT.js} +21 -21
- package/lib/{host-access-CLbyAGT5.js → host-access-DLJjuR07.js} +1 -1
- package/lib/{keymap-82JwLLHe.js → keymap-C4cs2IBN.js} +2 -2
- package/lib/{plugin-BlQlWIR5.js → plugin-CGtTByud.js} +801 -456
- package/lib/{plugin-BZdazFXS.js → plugin-CYw-MBRn.js} +1 -1
- package/lib/{profile-boot-B0aEEQIR.js → profile-boot-CffsubnV.js} +7 -7
- package/lib/profile-boot.js +1 -1
- package/lib/{scenes-BNS0ZFyQ.js → scenes-CbAGK5Uy.js} +3 -3
- package/lib/{settings-sections-CXH24cu5.js → settings-sections-DYKDa04e.js} +3 -3
- package/lib/{statusBarSettings-BAMzn8fX.js → statusBarSettings-T1m8xad4.js} +3 -3
- package/lib/{themes-DXUIvP7m.js → themes-BY2ui1Dv.js} +12 -12
- package/lib/tui-compat-command-trees.js +1 -1
- package/lib/tui-compat-extensions.js +3 -3
- package/lib/tui-compat-plugin-host.js +5 -5
- package/lib/tui-compat-scenes.js +1 -1
- package/lib/tui-compat-settings-sections.js +1 -1
- package/lib/tui-compat-working-activity.js +1 -1
- package/lib/tui-compat-workspaces.js +1 -1
- package/lib/tui-compat.js +7 -7
- package/lib/types/bin.d.ts +9 -0
- package/lib/types/tui-compat.d.ts +1 -1
- package/lib/types/web-instance-process.d.ts +20 -0
- package/lib/{web-instance-DbP7IHPv.js → web-instance-D_Ppi2Zo.js} +176 -14
- package/lib/{web-instance-B0jec7cq.js → web-instance-amvCJWnq.js} +1 -1
- package/lib/{workspaces-CUJXNU5W.js → workspaces-D5VKbESy.js} +2 -2
- package/package.json +23 -24
- package/runtime/manifest.json +2 -2
- package/runtime/node_modules/@deepseek-ai/dsh-agent-default-model/lib/index.js +7 -3
- package/runtime/node_modules/@deepseek-ai/dsh-api-session-controller/lib/client.js +11 -3
- package/runtime/node_modules/@deepseek-ai/dsh-api-session-controller/lib/types/client/contract/snapshot.d.ts +1 -0
- package/runtime/node_modules/@deepseek-ai/dsh-api-session-controller/lib/types/client/sessions/assistant-stream.d.ts +2 -0
- package/runtime/node_modules/@deepseek-ai/dsh-api-session-controller/lib/types/client/sessions/assistant-stream.js +4 -0
- package/runtime/node_modules/@deepseek-ai/dsh-api-session-controller/lib/types/client/sessions/session.js +10 -3
- package/runtime/node_modules/@deepseek-ai/dsh-app-boot/lib/index.js +32 -11
- package/runtime/node_modules/@deepseek-ai/dsh-atomic-write/lib/index.js +62 -11
- package/runtime/node_modules/@deepseek-ai/dsh-atomic-write/lib/types/darwin-lock.d.ts +7 -0
- package/runtime/node_modules/@deepseek-ai/dsh-atomic-write/lib/types/index.d.ts +7 -2
- package/runtime/node_modules/@deepseek-ai/dsh-atomic-write/lib/types/linux-lock.d.ts +1 -1
- package/runtime/node_modules/@deepseek-ai/dsh-client-locale/lib/client.js +7 -7
- package/runtime/node_modules/@deepseek-ai/dsh-client-ui-agent-preset/lib/client.js +62 -62
- package/runtime/node_modules/@deepseek-ai/dsh-client-ui-approval/lib/client.js +10 -10
- package/runtime/node_modules/@deepseek-ai/dsh-client-ui-attachment/lib/client.js +49 -49
- package/runtime/node_modules/@deepseek-ai/dsh-client-ui-chat/lib/client.js +204 -204
- package/runtime/node_modules/@deepseek-ai/dsh-client-ui-commands/lib/client.js +16 -16
- package/runtime/node_modules/@deepseek-ai/dsh-client-ui-conversation/lib/client.js +159 -157
- package/runtime/node_modules/@deepseek-ai/dsh-client-ui-conversation/lib/types/client/service.d.ts +4 -2
- package/runtime/node_modules/@deepseek-ai/dsh-client-ui-cordis/lib/client.js +74 -74
- package/runtime/node_modules/@deepseek-ai/dsh-client-ui-deliverables/lib/client.js +129 -123
- package/runtime/node_modules/@deepseek-ai/dsh-client-ui-deliverables/lib/index.js +19 -14
- package/runtime/node_modules/@deepseek-ai/dsh-client-ui-deliverables/lib/types/changes.d.ts +2 -2
- package/runtime/node_modules/@deepseek-ai/dsh-client-ui-deliverables/lib/types/client/Deliverables.d.ts +1 -2
- package/runtime/node_modules/@deepseek-ai/dsh-client-ui-deliverables/lib/types/client/locales.d.ts +2 -1
- package/runtime/node_modules/@deepseek-ai/dsh-client-ui-deliverables/lib/types/client/present-open.d.ts +1 -1
- package/runtime/node_modules/@deepseek-ai/dsh-client-ui-deliverables/package.json +2 -4
- package/runtime/node_modules/@deepseek-ai/dsh-client-ui-directory-picker-browse/lib/client.js +39 -39
- package/runtime/node_modules/@deepseek-ai/dsh-client-ui-goal/lib/client.js +16 -16
- package/runtime/node_modules/@deepseek-ai/dsh-client-ui-input-trigger/lib/client.js +23 -23
- package/runtime/node_modules/@deepseek-ai/dsh-client-ui-jobs/lib/client.js +37 -37
- package/runtime/node_modules/@deepseek-ai/dsh-client-ui-layout/lib/client.js +9 -9
- package/runtime/node_modules/@deepseek-ai/dsh-client-ui-message-feedback/lib/client.js +12 -12
- package/runtime/node_modules/@deepseek-ai/dsh-client-ui-model-selection/lib/client.js +119 -32
- package/runtime/node_modules/@deepseek-ai/dsh-client-ui-model-selection/lib/types/client/catalog.d.ts +13 -0
- package/runtime/node_modules/@deepseek-ai/dsh-client-ui-model-selection/lib/types/client/directory.d.ts +2 -0
- package/runtime/node_modules/@deepseek-ai/dsh-client-ui-model-selection/lib/types/client/effort-preferences.d.ts +20 -0
- package/runtime/node_modules/@deepseek-ai/dsh-client-ui-model-selection/lib/types/client/slots.d.ts +2 -1
- package/runtime/node_modules/@deepseek-ai/dsh-client-ui-open-in-app/lib/client.js +8 -8
- package/runtime/node_modules/@deepseek-ai/dsh-client-ui-permission-presets/lib/client.js +18 -18
- package/runtime/node_modules/@deepseek-ai/dsh-client-ui-plan/lib/client.js +22 -22
- package/runtime/node_modules/@deepseek-ai/dsh-client-ui-plugin-manager/lib/client.js +128 -128
- package/runtime/node_modules/@deepseek-ai/dsh-client-ui-schedule/lib/client.js +182 -182
- package/runtime/node_modules/@deepseek-ai/dsh-client-ui-settings-account/lib/client.js +130 -130
- package/runtime/node_modules/@deepseek-ai/dsh-client-ui-settings-general/lib/client.js +50 -50
- package/runtime/node_modules/@deepseek-ai/dsh-client-ui-settings-models/lib/client.js +88 -88
- package/runtime/node_modules/@deepseek-ai/dsh-client-ui-settings-plugin-inventory/lib/client.js +36 -36
- package/runtime/node_modules/@deepseek-ai/dsh-client-ui-settings-plugins/lib/client.js +13 -13
- package/runtime/node_modules/@deepseek-ai/dsh-client-ui-settings-subagent/lib/client.js +27 -27
- package/runtime/node_modules/@deepseek-ai/dsh-client-ui-shortcuts/lib/client.js +42 -42
- package/runtime/node_modules/@deepseek-ai/dsh-client-ui-sidebar/lib/client.js +44 -44
- package/runtime/node_modules/@deepseek-ai/dsh-client-ui-sidebar-browser/lib/client.js +25 -25
- package/runtime/node_modules/@deepseek-ai/dsh-client-ui-sidebar-documentpreview/lib/client.excel.js +9 -9
- package/runtime/node_modules/@deepseek-ai/dsh-client-ui-sidebar-documentpreview/lib/client.js +70 -70
- package/runtime/node_modules/@deepseek-ai/dsh-client-ui-sidebar-documentpreview/lib/client.pdf.js +9 -9
- package/runtime/node_modules/@deepseek-ai/dsh-client-ui-sidebar-files/lib/client.js +18 -18
- package/runtime/node_modules/@deepseek-ai/dsh-client-ui-sidebar-right/lib/client.js +26 -26
- package/runtime/node_modules/@deepseek-ai/dsh-client-ui-sidebar-terminal/lib/client.js +16 -16
- package/runtime/node_modules/@deepseek-ai/dsh-client-ui-sidebar-terminal/lib/client.terminal.js +11 -11
- package/runtime/node_modules/@deepseek-ai/dsh-client-ui-skill/lib/client.js +20 -20
- package/runtime/node_modules/@deepseek-ai/dsh-client-ui-subagent/lib/client.js +37 -37
- package/runtime/node_modules/@deepseek-ai/dsh-client-ui-theme/lib/client.js +27 -27
- package/runtime/node_modules/@deepseek-ai/dsh-client-ui-tool/lib/client.js +95 -95
- package/runtime/node_modules/@deepseek-ai/dsh-client-ui-trajectory/lib/client.js +197 -197
- package/runtime/node_modules/@deepseek-ai/dsh-client-ui-user-questions/lib/client.js +49 -49
- package/runtime/node_modules/@deepseek-ai/dsh-client-ui-workflow-run/lib/client.js +24 -24
- package/runtime/node_modules/@deepseek-ai/dsh-client-ui-workspace/lib/client.js +656 -152
- package/runtime/node_modules/@deepseek-ai/dsh-client-ui-workspace/lib/types/client/ArchivedSessions.d.ts +9 -2
- package/runtime/node_modules/@deepseek-ai/dsh-client-ui-workspace/lib/types/client/locales.d.ts +46 -0
- package/runtime/node_modules/@deepseek-ai/dsh-client-ui-workspace/lib/types/client/session-actions/DeleteSession.d.ts +9 -10
- package/runtime/node_modules/@deepseek-ai/dsh-client-ui-workspace/lib/types/client/session-actions/deletion.d.ts +57 -0
- package/runtime/node_modules/@deepseek-ai/dsh-client-ui-workspace/package.json +2 -0
- package/runtime/node_modules/@deepseek-ai/dsh-experimental-client-ui-agent-team/lib/client.js +32 -32
- package/runtime/node_modules/@deepseek-ai/dsh-experimental-client-ui-voice-input/lib/client.js +24 -24
- package/runtime/node_modules/@deepseek-ai/dsh-llm-deepseek/lib/index.js +899 -453
- package/runtime/node_modules/@deepseek-ai/dsh-llm-deepseek/lib/types/adapter.d.ts +4 -20
- package/runtime/node_modules/@deepseek-ai/dsh-llm-deepseek/lib/types/chat-completions/adapter.d.ts +8 -0
- package/runtime/node_modules/@deepseek-ai/dsh-llm-deepseek/lib/types/chat-completions/serialize.d.ts +10 -0
- package/runtime/node_modules/@deepseek-ai/dsh-llm-deepseek/lib/types/chat-completions/sse.d.ts +24 -0
- package/runtime/node_modules/@deepseek-ai/dsh-llm-deepseek/lib/types/chat-completions/translate.d.ts +37 -0
- package/runtime/node_modules/@deepseek-ai/dsh-llm-deepseek/lib/types/chat-completions/types.d.ts +159 -0
- package/runtime/node_modules/@deepseek-ai/dsh-llm-deepseek/lib/types/file-store.d.ts +3 -0
- package/runtime/node_modules/@deepseek-ai/dsh-llm-deepseek/lib/types/files-api.d.ts +4 -0
- package/runtime/node_modules/@deepseek-ai/dsh-llm-deepseek/lib/types/index.d.ts +1 -0
- package/runtime/node_modules/@deepseek-ai/dsh-llm-deepseek/lib/types/protocol-adapter.d.ts +41 -0
- package/runtime/node_modules/@deepseek-ai/dsh-llm-deepseek/lib/types/protocol.d.ts +35 -0
- package/runtime/node_modules/@deepseek-ai/dsh-llm-deepseek/lib/types/transport.d.ts +2 -1
- package/runtime/node_modules/@deepseek-ai/dsh-llm-deepseek/lib/types/types.d.ts +2 -2
- package/runtime/node_modules/@deepseek-ai/dsh-mcp-client/lib/index.js +5 -4
- package/runtime/node_modules/@deepseek-ai/dsh-session-log-export/lib/client.js +4 -4
- package/runtime/node_modules/@deepseek-ai/dsh-session-log-export/lib/index.js +1 -1
- package/runtime/node_modules/@deepseek-ai/dsh-session-persistence-jsonl/lib/index.js +2 -2
- package/runtime/node_modules/@deepseek-ai/dsh-tool-cordis/lib/types/api-catalog.js +12 -10
- package/runtime/node_modules/@deepseek-ai/dsh-workspace-changes/lib/index.js +208 -39
- package/runtime/node_modules/@deepseek-ai/dsh-workspace-changes/lib/types/archive.d.ts +47 -0
- package/runtime/node_modules/@deepseek-ai/dsh-workspace-changes/lib/types/archive.js +129 -0
- package/runtime/node_modules/@deepseek-ai/dsh-workspace-changes/lib/types/index.d.ts +2 -0
- package/runtime/node_modules/@deepseek-ai/dsh-workspace-changes/lib/types/index.js +31 -8
- package/runtime/node_modules/@deepseek-ai/dsh-workspace-changes/lib/types/recorder.d.ts +7 -2
- package/runtime/node_modules/@deepseek-ai/dsh-workspace-changes/lib/types/recorder.js +35 -19
- package/runtime/node_modules/@deepseek-ai/dsh-workspace-changes/lib/types/types.d.ts +11 -10
- package/runtime/node_modules/@deepseek-ai/dsh-workspace-changes/package.json +1 -0
- package/scripts/link-embedded-runtime.mjs +1 -1
- package/lib/dump-config-CDixiJNt.js +0 -2
- package/lib/{home-migration-BjDmRwBB.js → home-migration-lRjtl2fP.js} +1 -1
- 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/
|
|
1087
|
-
const css$4 = ".
|
|
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": "
|
|
1098
|
-
"arrow": "
|
|
1099
|
-
"arrowOpen": "
|
|
1100
|
-
"chevron": "
|
|
1101
|
-
"dot": "
|
|
1102
|
-
"dropAfter": "
|
|
1103
|
-
"dropBefore": "
|
|
1104
|
-
"folder": "
|
|
1105
|
-
"folderActive": "
|
|
1106
|
-
"hoverArchived": "
|
|
1107
|
-
"hoverContent": "
|
|
1108
|
-
"hoverPath": "
|
|
1109
|
-
"hoverStatus": "
|
|
1110
|
-
"hoverTime": "
|
|
1111
|
-
"hoverTitle": "
|
|
1112
|
-
"iconButton": "
|
|
1113
|
-
"menuOpen": "
|
|
1114
|
-
"meta": "
|
|
1115
|
-
"pinIndicator": "
|
|
1116
|
-
"projectRow": "
|
|
1117
|
-
"projectText": "
|
|
1118
|
-
"renameInput": "
|
|
1119
|
-
"rowActions": "
|
|
1120
|
-
"searchResultHeading": "
|
|
1121
|
-
"searchResultMeta": "
|
|
1122
|
-
"searchResultRow": "
|
|
1123
|
-
"searchResultSnippet": "
|
|
1124
|
-
"searchResultTitle": "
|
|
1125
|
-
"searchResultWorkspace": "
|
|
1126
|
-
"selected": "
|
|
1127
|
-
"sessionRow": "
|
|
1128
|
-
"slot": "
|
|
1129
|
-
"time": "
|
|
1130
|
-
"title": "
|
|
1131
|
-
"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/
|
|
1721
|
-
const css$3 = ".
|
|
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": "
|
|
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/
|
|
3092
|
-
const css$2 = ".
|
|
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": "
|
|
3103
|
-
"clearButton": "
|
|
3104
|
-
"deleteAction": "
|
|
3105
|
-
"deleteStatus": "
|
|
3106
|
-
"empty": "
|
|
3107
|
-
"emptyAction": "
|
|
3108
|
-
"emptyState": "
|
|
3109
|
-
"fade": "
|
|
3110
|
-
"flatList": "
|
|
3111
|
-
"groupSection": "
|
|
3112
|
-
"headerActions": "
|
|
3113
|
-
"headerActionsHidden": "
|
|
3114
|
-
"iconButton": "
|
|
3115
|
-
"list": "
|
|
3116
|
-
"listArea": "
|
|
3117
|
-
"listTopDropActive": "
|
|
3118
|
-
"listTopDropIndicator": "
|
|
3119
|
-
"rail": "
|
|
3120
|
-
"recentCanvas": "
|
|
3121
|
-
"recentRow": "
|
|
3122
|
-
"renameError": "
|
|
3123
|
-
"renameInput": "
|
|
3124
|
-
"root": "
|
|
3125
|
-
"search": "
|
|
3126
|
-
"search-skeleton": "
|
|
3127
|
-
"searchButton": "
|
|
3128
|
-
"searchExpanded": "
|
|
3129
|
-
"searchInput": "
|
|
3130
|
-
"searchSlot": "
|
|
3131
|
-
"searchSlotExpanded": "
|
|
3132
|
-
"searchStatus": "
|
|
3133
|
-
"searchTree": "
|
|
3134
|
-
"sectionHeader": "
|
|
3135
|
-
"sectionLabel": "
|
|
3136
|
-
"sectionLabelHidden": "
|
|
3137
|
-
"sessionOverflowButton": "
|
|
3138
|
-
"skeletonBar": "
|
|
3139
|
-
"skeletonBarWide": "
|
|
3140
|
-
"skeletonBars": "
|
|
3141
|
-
"skeletonDot": "
|
|
3142
|
-
"skeletonRow": "
|
|
3143
|
-
"treeBody": "
|
|
3144
|
-
"viewOptionsMenu": "
|
|
3145
|
-
"wide": "
|
|
3146
|
-
"wide-in": "
|
|
3147
|
-
"workspaceDropAfter": "
|
|
3148
|
-
"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/
|
|
3273
|
-
const css$1 = ".
|
|
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": "
|
|
3284
|
-
"modalAction": "
|
|
3285
|
-
"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/
|
|
5226
|
-
const css = ".
|
|
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
|
-
"
|
|
5237
|
-
"
|
|
5238
|
-
"
|
|
5239
|
-
"
|
|
5240
|
-
"
|
|
5241
|
-
"
|
|
5242
|
-
"
|
|
5243
|
-
"
|
|
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
|
|
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 (
|
|
5304
|
+
const run = async (operation) => {
|
|
5272
5305
|
if (busy.current) return;
|
|
5273
5306
|
busy.current = true;
|
|
5274
|
-
setPending(
|
|
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(
|
|
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.
|
|
5289
|
-
|
|
5290
|
-
|
|
5291
|
-
|
|
5292
|
-
|
|
5293
|
-
|
|
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
|
-
|
|
5301
|
-
|
|
5302
|
-
|
|
5303
|
-
|
|
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.
|
|
5306
|
-
className: ArchivedSessions_module_css_default.
|
|
5307
|
-
|
|
5308
|
-
|
|
5309
|
-
|
|
5310
|
-
|
|
5311
|
-
|
|
5312
|
-
|
|
5313
|
-
|
|
5314
|
-
|
|
5315
|
-
|
|
5316
|
-
|
|
5317
|
-
|
|
5318
|
-
|
|
5319
|
-
|
|
5320
|
-
|
|
5321
|
-
|
|
5322
|
-
|
|
5323
|
-
},
|
|
5324
|
-
|
|
5325
|
-
|
|
5326
|
-
|
|
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.
|
|
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
|
-
|
|
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",
|