@codexhost/cli-darwin-arm64 0.18.0-beta.1 → 0.18.0-beta.3
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.md +1 -1
- package/app/codexhost-distribution.json +1 -1
- package/app/console-server.mjs +103 -93
- package/app/console-web.js +104 -94
- package/app/desktop-controller.mjs +103 -109
- package/app/host-runtime.mjs +10067 -8374
- package/app/plugins/antigravity/plugin.mjs +103 -93
- package/app/plugins/claude-code/plugin.mjs +103 -93
- package/app/plugins/codebuddy/plugin.mjs +103 -93
- package/app/plugins/codex-usage/plugin.mjs +103 -93
- package/app/plugins/copilot/plugin.mjs +103 -93
- package/app/plugins/cursor-cli/plugin.mjs +103 -93
- package/app/plugins/deepseek-harness/plugin.mjs +103 -93
- package/app/plugins/devin/plugin.mjs +103 -93
- package/app/plugins/enabled.json +0 -1
- package/app/plugins/grok/plugin.mjs +103 -93
- package/app/plugins/hermes/plugin.mjs +103 -93
- package/app/plugins/kimi-code/plugin.mjs +103 -93
- package/app/plugins/kiro-cli/plugin.mjs +103 -93
- package/app/plugins/omp/plugin.mjs +103 -93
- package/app/plugins/opencode/plugin.mjs +103 -93
- package/app/plugins/pi/plugin.mjs +103 -93
- package/app/plugins/qoder/plugin.mjs +103 -93
- package/app/plugins/qoder-cn/plugin.mjs +103 -93
- package/app/plugins/qwen-code/plugin.mjs +103 -93
- package/app/plugins/workbuddy/plugin.mjs +103 -93
- package/app/plugins/zcode/plugin.mjs +103 -93
- package/app/renderer-extension.js +122 -149
- package/app/web/assets/index-C3lniEH1.css +1 -0
- package/app/web/assets/index-aKvkfNJN.js +199 -0
- package/app/web/codexhost-settings.js +104 -94
- package/app/web/index.html +2 -2
- package/app/web/plugins/deepseek-ai__dsh-api-gateway/client.js +1 -1
- package/app/web/plugins/deepseek-ai__dsh-api-remotes/client.js +64 -64
- package/app/web/plugins/deepseek-ai__dsh-api-session-controller/client.js +69 -69
- package/app/web/plugins/deepseek-ai__dsh-client-ui-chat/client.js +2 -2
- package/app/web/plugins/deepseek-ai__dsh-client-ui-codexhost/client.js +63 -62
- package/app/web/plugins/deepseek-ai__dsh-client-ui-conversation/client.js +85 -85
- package/app/web/plugins/deepseek-ai__dsh-client-ui-directory-picker-browse/client.js +10 -10
- package/app/web/plugins/deepseek-ai__dsh-client-ui-input-trigger/client.js +1 -1
- package/app/web/plugins/deepseek-ai__dsh-client-ui-layout/client.js +3 -3
- package/app/web/plugins/deepseek-ai__dsh-client-ui-model-selection/client.js +2 -2
- package/app/web/plugins/deepseek-ai__dsh-client-ui-permission-presets/client.js +1 -1
- package/app/web/plugins/deepseek-ai__dsh-client-ui-sidebar/client.js +1 -1
- package/app/web/plugins/deepseek-ai__dsh-client-ui-sidebar-right/client.js +55 -55
- package/app/web/plugins/deepseek-ai__dsh-client-ui-tool/client.js +18 -18
- package/app/web/plugins/deepseek-ai__dsh-client-ui-workspace/client.js +8 -8
- package/app/web/sw.js +55 -24
- package/app/web-modules/server.mjs +1091 -680
- package/bin/codexhost +0 -0
- package/libexec/codexhost-shim +0 -0
- package/libexec/codexhost-updater +0 -0
- package/package.json +1 -1
- package/app/plugins/codex-cli/manifest.json +0 -16
- package/app/plugins/codex-cli/plugin.mjs +0 -20374
- package/app/web/assets/index-CIeTchMu.css +0 -1
- package/app/web/assets/index-DeAPBQbV.js +0 -199
- /package/app/{plugins/codex-cli/assets/icon.png → web/codex.png} +0 -0
|
@@ -6,22 +6,22 @@ case`invalid`:return;
|
|
|
6
6
|
/* v8 ignore next 2 -- Every scanner mode has a handler above. */
|
|
7
7
|
default:h(this.#r)}}fail(){this.#d=this.#n,this.#r=`invalid`,this.#c=null}beginKey(e){this.#r=`key`,this.#a=e+1,this.#o=!1,this.#i=!1}stepKey(e,t){if(e<` `){this.fail();return}if(this.#i){this.#i=!1;return}if(e===`\\`){this.#i=!0,this.#o=!0;return}if(e!==`"`)return;let n=this.slice(this.#a,t);if(this.#o)try{this.#s=JSON.parse(`"${n}"`)}catch{this.fail();return}else this.#s=n;this.#r=`colon`}open(e){this.#p.has(this.#s)||this.#m.push(this.#s),this.#p.set(this.#s,e),this.#c=e}beginValue(e,t){p(e)||(e===`"`?(this.open({kind:`string`,start:t+1,end:-1,needsDecoding:!1,invalidAt:void 0,length:void 0,text:void 0,prefixes:void 0}),this.#i=!1,this.#r=`string`):e===`}`||e===`,`||e===`:`||e===`]`?this.fail():(this.open({kind:`value`,start:t,end:-1,parsed:void 0,invalid:!1}),e===`{`||e===`[`?(this.#r=`nested`,this.#l=[e===`{`?`}`:`]`],this.#u=!1,this.#i=!1):this.#r=`scalar`))}stepScalar(e,t){(e===`,`||e===`}`||p(e))&&(this.closeValue(t),this.#r=e===`,`?`key-only`:e===`}`?`closed`:`comma-or-end`)}stepNested(e,t){if(this.#u)this.#u=!1;else if(e===`"`)this.#u=!0;else if(e===`{`||e===`[`)this.#l.push(e===`{`?`}`:`]`);else if(e===`}`||e===`]`){if(this.#l.pop()!==e){this.fail();return}this.#l.length===0&&(this.closeValue(t+1),this.#r=`comma-or-end`)}}closeValue(e){let t=this.#c;t.end=e,this.#c=null}});function h(e,t){let n=JSON.stringify(e)??String(e);throw Error(`unreachable variant${t?` in ${t}`:``}: ${n}`)}function g(e){return/^[A-Za-z]:[/\\]/.test(e)||e.startsWith(`\\\\`)}function _(e,t){if(t===void 0||t===``||g(e)||g(t))return e;let n=t.replace(/\/+$/,``);return n===``||n===`/`?e:e.replace(/\/+$/,``)===n?`~`:e.startsWith(`${n}/`)?`~${e.slice(n.length)}`:e}function v(e){let t=e.replace(/[/\\]+$/,``),n=Math.max(t.lastIndexOf(`/`),t.lastIndexOf(`\\`));return t.slice(n+1)}function y(e){if(!(e.blank||e.projectionValues?.threadReference?.hostId!==`local`))return{threadId:e.id,hostId:`local`,title:e.title?.replace(/[\s\u0000-\u001f\u007f]+/gu,` `).trim()||e.id.slice(0,8)}}function b(e){return`thread://${encodeURIComponent(e.threadId).replace(/[!'()*]/gu,e=>`%${e.charCodeAt(0).toString(16).toUpperCase()}`)}?hostId=local`}function x(e){let t=`[@${e.title.replace(/[\\`*{}[\]()#+.!_<>|~-]/gu,e=>`\\${e}`)}](${b(e)})`;return{source:`codexhost-thread`,ref:t,label:e.title,appearance:`session`,clipboardText:t}}function S(e,t){return e.find(e=>e.sessionIds.includes(t))?.workspaceId??``}function C(e){return Object.values(e.byId).find(e=>(e.retainedBy.mainView??0)>0)?.id}function w(e){if(e===void 0||e===``)return``;let t=v(e);return t===``?e:t}function T(e,t){return e.flatMap(e=>{let n=t[e];return n===void 0?[]:[{id:e,rank:n.updatedAt}]}).sort((e,t)=>e.rank===t.rank?e.id<t.id?-1:1:t.rank-e.rank).map(e=>e.id)}function E(e,t,n,r){let i=new Map(e.map(e=>[e,e])),a=/* @__PURE__ */ new Set,o=[];for(let e of t??[]){let t=i.get(e);t===void 0||a.has(e)||(o.push(t),a.add(e))}let s=new Set(r?.archivedSessionIds),c=[];for(let e of r?.pinnedSessionIds??[]){let t=i.get(e);t===void 0||a.has(t)||s.has(t)||n[t]===void 0||(c.push(t),a.add(t))}let l=[],u=[];for(let e of T([...i.values()].filter(e=>!a.has(e)),n))s.has(e)?u.push(e):l.push(e);let d=[...c,...o,...l,...u],f=new Set(l),p=e=>{if(!f.delete(e))return;let t=n[e]?.parentId;t!==void 0&&t!==e&&d.includes(t)&&(p(t),d.splice(d.indexOf(e),1),d.splice(d.indexOf(t),0,e))};for(let e of[...l].reverse())p(e);return d}function D(e,t){return t===void 0?[...e]:[t,...e.filter(e=>e!==t)]}function O(e,t,n){if(e.origin===`subagent`||e.blank)return!1;switch(n){case`default`:return!t.has(e.id);case`show`:return!0;case`only`:return t.has(e.id);
|
|
8
8
|
/* v8 ignore next 2 -- closed-union backstop; only reached if the filter is forged */
|
|
9
|
-
default:return h(n)}}function k(e,t,n){let r=[],i=[];for(let a of e)!n.has(a.id)&&t.has(a.id)?r.push(a):i.push(a);return[...r,...i]}function A(e){return e.blank?``:e.title?.trim()??``}function j(e,t,n,r,i,a){return{key:e,workspaceId:t,cwd:n,createdAt:r,label:i,sessions:[...a]}}function ee(e,t,n,r){let i=[];for(let a of t){let t=[];for(let i of a.sessionIds){let a=e.byId[i];a!==void 0&&O(a,n,r)&&t.push(a)}(r!==`only`||t.length!==0)&&i.push(j(a.workspaceId,a.workspaceId,a.path,Date.parse(a.createdAt),a.title,t))}let a=T(e.ids,e.byId).map(t=>e.byId[t]).filter(e=>e!==void 0&&O(e,n,r));return a.length>0&&i.push(j(``,void 0,void 0,void 0,``,a)),i}function M(e){switch(e){case`approval`:case`plan-review`:case`question`:return e;default:return}}function N(e,t,n){return e.projectionsBySession[t]?.values.subagentCatalog?.reduce((t,r)=>t+ +((n.get(r.id)?.running??e.byId[r.id]?.running)===!0),0)??0}function P(e,t,n,r,i){let a=n.get(e.id),o=M(a?.pendingInteraction?.kind);return{id:e.id,reference:y(e),title:A(e),blank:e.blank,running:a?.running??e.running,runningSubagentCount:N(t,e.id,n),completed:a?.completionUnread===!0,pinned:!i.has(e.id)&&r.has(e.id),archived:i.has(e.id),updatedAt:e.updatedAt,...o===void 0?{}:{pendingInteraction:o}}}function te(e,t,n,r,i){let a=new Set(n.archivedSessionIds),o=new Set(n.pinnedSessionIds),s=new Set(i.expandedGroups),c=C(e),l=[];for(let u of ee(e,t,a,n.archivedFilter)){let t=s.has(u.key),n=i.excludePinned?u.sessions.filter(e=>!o.has(e.id)||a.has(e.id)):u.sessions;l.push({key:u.key,workspaceId:u.workspaceId,cwd:u.cwd,createdAt:u.createdAt,label:u.label,sessionCount:n.length,expanded:t,containsCurrent:u.sessions.some(e=>e.id===c),sessions:t?k(n,o,a).map(t=>P(t,e,r,o,a)):[]})}return l}function ne(e){return F(e,[],`show`)}function F(e,t,n){let r=new Set(t);return e.ids.filter(t=>{let i=e.byId[t];return i!==void 0&&O(i,r,n)})}function re(e,t,n,r){let i=new Set(n.archivedSessionIds),a=new Set(n.pinnedSessionIds);return k(t.flatMap(t=>{let r=e.byId[t];return r!==void 0&&O(r,i,n.archivedFilter)?[r]:[]}),a,i).map(t=>P(t,e,r,a,i))}function I(e,t,n,r,i,a,o,s){let c=n.trim().toLowerCase();if(c===``)return{items:[],hasMore:!1};let l=new Set(r),u=/* @__PURE__ */ new Map;for(let e of t)for(let t of e.sessionIds)u.has(t)||u.set(t,e.title);let d=e=>u.get(e.id)??w(e.cwd),f=/* @__PURE__ */ new Map;for(let e of o.items)f.has(e.sessionId)||f.set(e.sessionId,e);let p=[];for(let t of e.ids){let n=e.byId[t];n!==void 0&&!n.blank&&O(n,l,i)&&(A(n).toLowerCase().includes(c)||d(n).toLowerCase().includes(c))&&p.push(n)}let m=new Map(p.map(e=>[e.id,e])),h=T(p.map(e=>e.id),e.byId).map(e=>m.get(e)),g=[],_=/* @__PURE__ */ new Set,v=e=>{_.has(e.id)||(_.add(e.id),g.push(e))};for(let e of h)v(e);for(let t of o.items){let n=e.byId[t.sessionId];n!==void 0&&!n.blank&&O(n,l,i)&&v(n)}return{items:g.slice(0,s).map(t=>{let n=f.get(t.id),r=a.get(t.id),i=M(r?.pendingInteraction?.kind);return{id:t.id,title:A(t),workspace:d(t),running:r?.running??t.running,runningSubagentCount:N(e,t.id,a),...i===void 0?{}:{pendingInteraction:i},completed:r?.completionUnread===!0,archived:l.has(t.id),...n===void 0?{}:{snippet:n.snippet}}}),hasMore:o.hasMore||g.length>s}}function L(e){return(/^[A-Za-z]:[/\\]/.test(e)||e.startsWith(`\\\\`)?e.replaceAll(`\\`,`/`):e).replace(/\/+$/,``)}function R(e,t){let n=L(e),r,i=-1;for(let e of t){let t=L(e);t.length>i&&n!==t&&n.startsWith(`${t}/`)&&(r=e,i=t.length)}return r}let z=`__flat_session_order__`,ie=`pinned`,ae=`workspaces`;function oe(e,t){return e?.[t]??!0}function B(e){return Object.fromEntries(Object.entries(e).map(([e,t])=>[e,[...t]]))}function V(){return(0,r.defineStore)({init:()=>({groupBy:`workspace`,orderBy:`updated`,groupExpansion:{},sectionExpansion:{},sessionOrderByAccount:{},archivedFilter:`default`}),persist:`dsh.workspace.view.v5`,actions:{setGroupBy:(e,t)=>{e.groupBy=t},setOrderBy:(e,t,n)=>{t!==e.orderBy&&(e.sessionOrderByAccount=t===`manual`?B(n):{},e.orderBy=t)},setGroupExpanded:(e,t,n)=>{e.groupExpansion[t]=n},setSectionExpanded:(e,t,n)=>{e.sectionExpansion={...e.sectionExpansion,[t]:n}},retainAccountKeys:(e,t)=>{let n=new Set(t);e.groupExpansion=Object.fromEntries(Object.entries(e.groupExpansion).filter(([e])=>n.has(e))),e.sessionOrderByAccount=Object.fromEntries(Object.entries(e.sessionOrderByAccount).filter(([e])=>n.has(e))),delete e.sessionUpdatedAtByAccount},syncSessionOrders:(e,t)=>{e.orderBy===`manual`&&Object.assign(e.sessionOrderByAccount,B(t))},setSessionOrder:(e,t,n,r)=>{e.orderBy===`updated`?e.sessionOrderByAccount=B(r):Object.assign(e.sessionOrderByAccount,B(r)),e.orderBy=`manual`,e.sessionOrderByAccount[t]=[...n]},pinSessionOrder:(e,t,n,r)=>{let i=new Set(n);e.sessionOrderByAccount=Object.fromEntries(Object.entries(r.members).map(([n,a])=>{let o=E(a,e.sessionOrderByAccount[n],r.summaries,r.rowState);return[n,i.has(n)?[t,...o.filter(e=>e!==t)]:o]}))},setArchivedFilter:(e,t)=>{e.archivedFilter=t}}})}function se(e,t,n){let r=new Set(e.flatMap(e=>e.sessionIds));return{members:Object.fromEntries([...e.map(e=>[e.workspaceId,e.sessionIds]),[``,t.ids.filter(e=>t.byId[e]!==void 0&&!r.has(e))],[z,ne(t)]]),summaries:t.byId,rowState:n}}function ce(e,t){return[S(e,t),z]}var H=class extends Error{rpcError;name=`DirectoryBrowseError`;constructor(e){super(`directory browse failed: ${e.code}: ${e.message}`),this.rpcError=e}},U=class extends i.Service{directoryPicker;workspaces;sessions;view;notify;connecting=/* @__PURE__ */ new Map;lifetime=new AbortController;selection=(0,r.createSnapshotStore)({},{persist:{name:`dsh.sessions.current`}});mainReference;constructor(e,t,n,r,i,a){super(e,`uiWorkspace`),this.directoryPicker=t,this.workspaces=n,this.sessions=r,this.view=i,this.notify=a,e.effect(()=>{let e=this.watchNavigation();return()=>{e(),this.lifetime.abort();let t=this.mainReference;this.mainReference=void 0,t?.release()}},`ui-workspace: Workspace navigation policy`)}async connectWorkspace(e){let t=this.workspaces.list.getSnapshot().items.find(t=>t.workspaceId===e);if(t===void 0)throw Error(`uiWorkspace.connectWorkspace: unknown workspace ${e}`);let n=this.connecting.get(e);if(n!==void 0)return n;let r=this.reuseOrCreateBlank(t).finally(()=>{this.connecting.delete(e)});return this.connecting.set(e,r),r}reuseOrCreateBlank(e){let t=this.workspaces.list.getSnapshot().archivedSessionIds,n=this.sessions.list.getSnapshot();for(let r of n.ids){let i=n.byId[r];if(i!==void 0&&i.blank&&i.cwd===e.path&&e.sessionIds.includes(r)&&!t.includes(r))return this.reuseBlank(e.workspaceId,r)}return this.sessions.create({workspaceId:e.workspaceId})}async reuseBlank(e,t){try{return await this.sessions.create({workspaceId:e,sessionId:t})}catch(t){if(W(t)?.rpcError.code!==`session/writer-held`)throw t;return this.sessions.create({workspaceId:e})}}openSession(e){this.replaceMain(e,this.lifetime.signal,`reveal`)}async openWorkspace(e,t){let n=AbortSignal.any([this.ctx.layout.beginNavigation(),this.lifetime.signal]),r;try{if(e===null&&!this.workspaces.list.getSnapshot().canStartProjectless)throw Error(`This Host requires a Workspace.`);r=e===null?await this.sessions.create():await this.connectWorkspace(e)}catch(e){throw n.aborted||this.notify({kind:`createFailed`,message:G(e)}),e}n.aborted||this.replaceMain(r,n,`reveal`,t)}async forkSession(e,t){return this.sessions.fork({sessionId:e,increaseTitle:!0,...t===void 0?{}:{onCreated:t}})}startSession(e,t){let n=t===void 0?void 0:{...t},r=n!==void 0&&(n.prompt!==void 0||n.clearPreviousDraft===!0),i=this.workspaces.list.getSnapshot(),a=this.sessions.list.getSnapshot(),o=this.mainReference?.sessionId,s=o===void 0?void 0:i.items.find(e=>e.sessionIds.includes(o))?.workspaceId,c=i.phase===`ready`&&a.phase===`ready`?le(i.items,a.byId):void 0,l=e??(i.canStartProjectless?null:s??c);if(l===void 0){if(r){this.notify({kind:`createFailed`,message:this.ctx.locale.bind(`workspace`)(`draft.workspaceRequired`)});return}this.clearMain()}else this.openWorkspace(l,r?e=>{let t=this.sessions.binding(e);t===void 0&&this.draftPreparationFailed(),this.prepareDraft(t,n)}:void 0).catch(e=>{console.warn(`new session failed:`,e)})}prepareDraft(e,t){let n=this.ctx.get(`conversation`);n===void 0&&this.draftPreparationFailed(),n.input.requestDraftInitialization(e,t)===`blocked`&&this.draftPreparationFailed()}draftPreparationFailed(){let e=this.ctx.locale.bind(`workspace`)(`draft.initializationFailed`);throw this.notify({kind:`createFailed`,message:e}),Error(e)}async archiveSession(e,t={}){await this.workspaces.archiveSession(e,t),this.mainReference?.sessionId===e&&this.clearMain()}async unarchiveSession(e){await this.workspaces.unarchiveSession(e)}async pinSession(e){await this.workspaces.pinSession(e);let{items:t,pinnedSessionIds:n,archivedSessionIds:r}=this.workspaces.list.getSnapshot();this.view.pinSessionOrder(e,ce(t,e),se(t,this.sessions.list.getSnapshot(),{pinnedSessionIds:n,archivedSessionIds:r}))}async unpinSession(e){await this.workspaces.unpinSession(e)}async pickDirectory(){let e=await this.directoryPicker.pick();if(!e.ok)throw Error(`directory picker failed: ${e.error.message}`);return e.value}async listDirectory(e,t){let n=await this.directoryPicker.list(e,t);if(!n.ok)throw new H(n.error);return n.value}async createDirectory(e,t){let n=await this.directoryPicker.createDirectory(e,t);if(!n.ok)throw new H(n.error);return n.value}watchNavigation(){let e=`waiting`,t=()=>{if(this.lifetime.signal.aborted||this.clearArchivedCurrent()||e!==`waiting`)return;let t=this.workspaces.list.getSnapshot(),n=this.sessions.list.getSnapshot();t.phase===`ready`&&n.phase===`ready`&&(this.mainReference===void 0?(e=`connecting`,this.restoreSelection(t,n).then(()=>{e=`done`},t=>{this.lifetime.signal.aborted||(e=`waiting`,console.warn(`initial Session restoration failed:`,t))})):e=`done`)},n=this.workspaces.list.subscribe(t),r=this.sessions.list.subscribe(t);return t(),()=>{this.lifetime.abort(),r(),n()}}async restoreSelection(e,t){let n=this.selection.getSnapshot();if(n.subagentAddress!==void 0){this.replaceMain(n.subagentAddress,this.lifetime.signal,`preserve`);return}let r=n.sessionId===void 0?void 0:t.byId[n.sessionId],i=r===void 0?void 0:e.items.find(e=>e.sessionIds.includes(r.id));if(r!==void 0&&(!r.blank||i===void 0)){this.replaceMain(r.id,this.lifetime.signal,`preserve`);return}let a=AbortSignal.any([this.ctx.layout.beginNavigation(),this.lifetime.signal]),o;if(r!==void 0&&i!==void 0&&r.cwd===i.path&&!e.archivedSessionIds.includes(r.id)&&(o=await this.reuseBlank(i.workspaceId,r.id)),o===void 0&&e.canStartProjectless&&r===void 0){o=await this.sessions.create(),a.aborted||this.replaceMain(o,a,`preserve`);return}let s=i?.workspaceId??le(e.items,t.byId);if(s===void 0&&e.items.length===0&&t.ids.length===0){let e=await this.initializeDefaultWorkspace(a);if(a.aborted)return;s=e?.workspaceId}o===void 0&&s!==void 0&&(o=await this.connectWorkspace(s)),o!==void 0&&!a.aborted&&this.replaceMain(o,a,`preserve`)}async initializeDefaultWorkspace(e){try{return await this.workspaces.initializeDefault(e)}catch{e.aborted||this.notify({kind:`defaultWorkspaceFailed`});return}}clearArchivedCurrent(){let e=this.mainReference?.sessionId;return e===void 0||!this.workspaces.list.getSnapshot().archivedSessionIds.includes(e)?!1:(this.clearMain(),!0)}clearMain(){let e=this.mainReference;this.mainReference=void 0,this.selection.set({}),e?.release(),this.ctx.layout.selectPanel(null)}replaceMain(e,t,n,r){t.throwIfAborted();let i=this.sessions.retain(e,{source:`mainView`});try{if(t.throwIfAborted(),r?.(i.sessionId),t.aborted){i.release();return}let n=typeof e==`string`?this.sessions.subagentAddress(i.sessionId):e;this.selection.set({sessionId:i.sessionId,...n===void 0?{}:{subagentAddress:n}})}catch(e){throw i.release(),e}let a=this.mainReference;this.mainReference=i,a?.release(),n===`reveal`&&this.ctx.layout.selectPanel(null)}};function W(e){return e instanceof Error&&e.name===`SessionCreateError`?e:void 0}function G(e){let t=W(e);return t===void 0?e instanceof Error?e.message:String(e):`${t.rpcError.code}: ${t.rpcError.message}`}function le(e,t){let n,r=-1/0;for(let i of e){let e=-1/0;for(let n of i.sessionIds){let r=t[n];r!==void 0&&(e=Math.max(e,r.updatedAt))}e===-1/0&&(e=Date.parse(i.createdAt)),(n===void 0||e>r)&&(n=i.workspaceId,r=e)}return n}function ue(e){var t,n,r=``;if(typeof e==`string`||typeof e==`number`)r+=e;else if(typeof e==`object`){if(Array.isArray(e)){var i=e.length;for(t=0;t<i;t++)e[t]&&(n=ue(e[t]))&&(r&&(r+=` `),r+=n)}else for(n in e)e[n]&&(r&&(r+=` `),r+=n)}return r}function K(){for(var e,t,n=0,r=``,i=arguments.length;n<i;n++)(e=arguments[n])&&(t=ue(e))&&(r&&(r+=` `),r+=t);return r}function de(e,t){return e===`default-workspace`?t:e}let fe=`@deepseek-ai/dsh-client-ui-workspace/Rows.module.css`;if(typeof document<`u`&&document.querySelector(`style[data-plugin-css=`+JSON.stringify(fe)+`]`)===null){let e=document.createElement(`style`);e.dataset.plugin=`@deepseek-ai/dsh-client-ui-workspace`,e.dataset.pluginCss=fe,e.textContent=`.ysovAa_projectRow,.ysovAa_sessionRow{--dsh-row-surface:var(--dsw-specific-sidebar-fill);border-radius:var(--dsw-radius-md);padding:0 8px;cursor:pointer;-webkit-tap-highlight-color:transparent;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;position:relative}.ysovAa_projectRow:is(:hover,:focus-visible,:has(:focus-visible),.ysovAa_menuOpen),.ysovAa_sessionRow:is(:hover,:focus-visible,:has(:focus-visible),.ysovAa_menuOpen){--dsh-row-surface:color-mix(in srgb, var(--dsw-alias-label-primary) 4%, var(--dsw-specific-sidebar-fill));background:var(--dsh-row-surface)}.ysovAa_sessionRow.ysovAa_selected{--dsh-row-surface:color-mix(in srgb, var(--dsw-alias-label-primary) 6%, var(--dsw-specific-sidebar-fill));background:var(--dsh-row-surface)}.ysovAa_sessionRow.ysovAa_selected:is(:hover,:focus-visible,:has(:focus-visible),.ysovAa_menuOpen){--dsh-row-surface:color-mix(in srgb, var(--dsw-alias-label-primary) 8%, var(--dsw-specific-sidebar-fill))}.ysovAa_sessionRow,.ysovAa_searchResultRow{--ch-sidebar-text-primary:#1a1c1f;letter-spacing:normal;color:color-mix(in oklab, var(--ch-sidebar-text-primary) 85%, transparent);font-family:-apple-system,"system-ui",Segoe UI,sans-serif;font-size:14px;font-weight:430;line-height:20px}body[data-ds-dark-theme] .ysovAa_sessionRow,body[data-ds-dark-theme] .ysovAa_searchResultRow{--ch-sidebar-text-primary:#fff}.ysovAa_projectRow:focus-visible,.ysovAa_sessionRow:focus-visible,.ysovAa_iconButton:focus-visible{outline:2px solid var(--dsw-focus-ring-color,var(--dsw-alias-state-business-primary));outline-offset:-2px}.ysovAa_searchResultRow{box-sizing:border-box;border-radius:var(--dsw-radius-lg);cursor:pointer;text-align:left;background:0 0;border:none;flex-direction:column;align-items:stretch;width:100%;min-height:48px;padding:4px 8px;display:flex}.ysovAa_searchResultRow:hover,.ysovAa_searchResultRow.ysovAa_selected{background:var(--dsw-alias-interactive-bg-hover)}.ysovAa_searchResultHeading{align-items:center;min-width:0;display:flex}.ysovAa_searchResultTitle{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;margin-left:4px;font-size:14px;line-height:20px;overflow:hidden}.ysovAa_searchResultMeta{align-items:center;gap:6px;min-width:0;margin-left:20px;display:flex}.ysovAa_searchResultWorkspace,.ysovAa_searchResultSnippet{text-overflow:ellipsis;white-space:nowrap;font-size:12px;line-height:17px;overflow:hidden}.ysovAa_searchResultWorkspace{max-width:40%;color:var(--dsw-alias-label-tertiary);flex:none}.ysovAa_searchResultWorkspace:only-child{max-width:100%}.ysovAa_searchResultSnippet{min-width:0;color:var(--dsw-alias-label-secondary);flex:1}.ysovAa_projectRow{box-sizing:border-box;align-items:center;height:34px}.ysovAa_sessionRow{gap:0;height:32px}.ysovAa_sessionRow .ysovAa_title{margin:0 6px 0 4px}.ysovAa_slot{width:16px;height:20px;color:var(--dsw-alias-label-tertiary);flex:none;justify-content:center;align-items:center;display:inline-flex;position:relative}.ysovAa_slot:has([data-harness-id]){width:14px;color:inherit}.ysovAa_sessionRow:has([data-harness-id]) .ysovAa_title,.ysovAa_searchResultHeading:has([data-harness-id]) .ysovAa_searchResultTitle{margin-left:8px}.ysovAa_statusOverlay{display:contents}.ysovAa_slot:has([data-harness-id]) .ysovAa_statusOverlay{transform-origin:100% 100%;display:inline-flex;position:absolute;bottom:-3px;right:-3px;transform:scale(.65)}.ysovAa_visuallyHidden{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.ysovAa_projectRow>.ysovAa_slot:not(.ysovAa_folderExpanded){color:inherit}.ysovAa_folderExpanded{color:var(--dsw-alias-state-business-primary)}.ysovAa_projectText{flex-direction:column;flex:1;gap:2px;min-width:0;display:flex}.ysovAa_title{text-overflow:ellipsis;white-space:nowrap;min-width:0;font-size:14px;line-height:20px;overflow:hidden}.ysovAa_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}.ysovAa_sessionRow .ysovAa_title{flex:1}.ysovAa_meta{text-overflow:ellipsis;white-space:nowrap;color:var(--dsw-alias-label-tertiary);font-size:12px;line-height:20px;overflow:hidden}.ysovAa_trailing{flex:none;place-items:center end;display:grid}.ysovAa_trailing:empty{display:none}.ysovAa_trailing>*{grid-area:1/1}.ysovAa_time{font-variant-numeric:tabular-nums;color:var(--dsw-alias-label-tertiary);flex:none;font-size:10px;line-height:16px}.ysovAa_timeStatus{justify-content:center;align-items:center;gap:6px;min-width:16px;height:20px;display:inline-flex}.ysovAa_timeStatus [data-state=done]{color:var(--dsw-alias-state-business-primary)}.ysovAa_timeStatus .ysovAa_visuallyHidden{visibility:visible}.ysovAa_sessionRow.ysovAa_archived .ysovAa_title,.ysovAa_searchResultRow.ysovAa_archived .ysovAa_searchResultTitle,.ysovAa_searchResultRow.ysovAa_archived .ysovAa_searchResultWorkspace,.ysovAa_searchResultRow.ysovAa_archived .ysovAa_searchResultSnippet{color:var(--dsw-alias-label-caption)}.ysovAa_dot{flex:none}.ysovAa_quickActions{align-items:center;gap:2px;display:inline-flex}.ysovAa_rowActions{visibility:hidden;pointer-events:none;flex:none;align-items:center;gap:2px;display:inline-flex}.ysovAa_projectRow:is(:hover,:focus-visible,:has(:focus-visible),.ysovAa_menuOpen) .ysovAa_rowActions,.ysovAa_sessionRow:is(:hover,:focus-visible,:has(:focus-visible),.ysovAa_menuOpen) .ysovAa_rowActions,.ysovAa_searchResultRow:is(:hover,:focus-visible,:has(:focus-visible)) .ysovAa_rowActions{visibility:visible;pointer-events:auto}.ysovAa_searchResultHeading .ysovAa_rowActions{margin-left:auto}.ysovAa_sessionRow:is(:hover,:focus-visible,:has(:focus-visible),.ysovAa_menuOpen) .ysovAa_time{visibility:hidden}@media (hover:hover) and (pointer:fine){.ysovAa_projectRow>.ysovAa_rowActions,.ysovAa_sessionRow .ysovAa_rowActions{inset-inline-end:8px;z-index:1;background:var(--dsh-row-surface);border-radius:var(--dsw-radius-sm);position:absolute;top:50%;transform:translateY(-50%)}.ysovAa_projectRow>.ysovAa_rowActions:before,.ysovAa_sessionRow .ysovAa_rowActions:before{content:"";background:linear-gradient(to right, transparent, var(--dsh-row-surface));pointer-events:none;width:12px;position:absolute;inset-block:0;inset-inline-end:100%}}.ysovAa_sessionRow.ysovAa_dropBefore,.ysovAa_sessionRow.ysovAa_dropAfter{position:relative}.ysovAa_sessionRow.ysovAa_dropBefore:before,.ysovAa_sessionRow.ysovAa_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}.ysovAa_sessionRow.ysovAa_dropBefore:before{top:-7px}.ysovAa_sessionRow.ysovAa_dropAfter:after{bottom:-7px}.ysovAa_hoverContent{flex-direction:column;gap:8px;display:flex}.ysovAa_hoverTitle{color:#fff;overflow-wrap:break-word;font-size:14px;line-height:20px}.ysovAa_hoverPath{color:#cfd3d6;word-break:break-all;font-size:12px;line-height:16px}.ysovAa_hoverTime{color:#cfd3d6;font-size:12px;line-height:16px}.ysovAa_hoverStatus{color:#adb2b8;align-items:center;gap:8px;font-size:12px;line-height:20px;display:flex}.ysovAa_hoverArchived svg{flex-shrink:0;margin:0 -4px}.ysovAa_iconButton{cursor:pointer;-webkit-tap-highlight-color:transparent;width:24px;height:24px;color:var(--dsw-alias-label-tertiary);background:0 0;border:none;border-radius:4px;flex:none;justify-content:center;align-items:center;padding:0;display:inline-flex}.ysovAa_iconButton:hover{color:var(--dsw-alias-label-primary);background:color-mix(in srgb, var(--dsw-alias-label-primary) 7%, transparent)}@media (hover:none),(pointer:coarse){.ysovAa_projectRow,.ysovAa_sessionRow{min-height:44px}.ysovAa_rowActions{visibility:visible;pointer-events:auto}.ysovAa_sessionRow .ysovAa_quickActions{display:none}.ysovAa_sessionRow .ysovAa_trailing{align-items:center;gap:4px;display:flex}.ysovAa_sessionRow .ysovAa_time:not(.ysovAa_timeStatus){display:none}.ysovAa_sessionRow .ysovAa_timeStatus{visibility:visible;padding-inline-end:0}.ysovAa_iconButton{width:44px;height:44px}}`,document.head.appendChild(e)}var q={archived:`ysovAa_archived`,dot:`ysovAa_dot`,dropAfter:`ysovAa_dropAfter`,dropBefore:`ysovAa_dropBefore`,folderExpanded:`ysovAa_folderExpanded`,hoverArchived:`ysovAa_hoverArchived`,hoverContent:`ysovAa_hoverContent`,hoverPath:`ysovAa_hoverPath`,hoverStatus:`ysovAa_hoverStatus`,hoverTime:`ysovAa_hoverTime`,hoverTitle:`ysovAa_hoverTitle`,iconButton:`ysovAa_iconButton`,menuOpen:`ysovAa_menuOpen`,meta:`ysovAa_meta`,projectRow:`ysovAa_projectRow`,projectText:`ysovAa_projectText`,quickActions:`ysovAa_quickActions`,renameInput:`ysovAa_renameInput`,rowActions:`ysovAa_rowActions`,searchResultHeading:`ysovAa_searchResultHeading`,searchResultMeta:`ysovAa_searchResultMeta`,searchResultRow:`ysovAa_searchResultRow`,searchResultSnippet:`ysovAa_searchResultSnippet`,searchResultTitle:`ysovAa_searchResultTitle`,searchResultWorkspace:`ysovAa_searchResultWorkspace`,selected:`ysovAa_selected`,sessionRow:`ysovAa_sessionRow`,slot:`ysovAa_slot`,statusOverlay:`ysovAa_statusOverlay`,time:`ysovAa_time`,timeStatus:`ysovAa_timeStatus`,title:`ysovAa_title`,trailing:`ysovAa_trailing`,visuallyHidden:`ysovAa_visuallyHidden`};function pe(e,t){return e.blank?t(`session.new`):e.title||t(`session.untitled`)}function me(e,t,n){let{unit:r,n:i}=(0,o.relativeTime)(e,t);return r===`now`?n(`time.now`):n(`time.${r}`,{n:i})}function he(e,t,n){let{unit:r,n:i}=(0,o.relativeTime)(e,t);return r===`now`?n(`time.now`):n(`time.ago`,{t:n(`time.${r}`,{n:i})})}function ge(e,t){let n=new Date(e),r=e=>String(e).padStart(2,`0`);return t(`hover.created`,{time:`${t(`date.ymd`,{y:n.getFullYear(),m:n.getMonth()+1,d:n.getDate()})} ${r(n.getHours())}:${r(n.getMinutes())}`})}function J({label:e,cwd:t,createdAt:n,t:r}){return/* @__PURE__ */ (0,s.jsxs)(`div`,{className:q.hoverContent,children:[/* @__PURE__ */ (0,s.jsx)(`div`,{className:q.hoverTitle,children:e}),/* @__PURE__ */ (0,s.jsx)(`div`,{className:q.hoverPath,children:t}),/* @__PURE__ */ (0,s.jsx)(`div`,{className:q.hoverTime,children:ge(n,r)})]})}function _e(e){let t=e.currentTarget.getBoundingClientRect();return e.clientY<t.top+t.height/2?`before`:`after`}function ve({group:e,onToggle:t,onCreate:n,actions:r,drag:i,home:c,newShortcut:l,t:u}){let d=e,f=d.workspaceId===void 0?u(`group.ungrouped`):d.label,[p,m]=(0,a.useState)(!1),[h,g]=(0,a.useState)(null),v=[{id:`rename`,label:u(`rename`),icon:/* @__PURE__ */ (0,s.jsx)(o.IconEditOutlineRegular,{})},{id:`delete`,label:u(`delete.workspace`),icon:/* @__PURE__ */ (0,s.jsx)(o.IconTrashOutlineRegular,{}),danger:!0}],y=/* @__PURE__ */ (0,s.jsxs)(`div`,{className:K(q.projectRow,p&&q.menuOpen),"data-row-key":`workspace:${e.key}`,role:`treeitem`,"aria-expanded":d.expanded,tabIndex:-1,onContextMenu:e=>{r&&!e.target.closest(`button`)&&(e.preventDefault(),g(new DOMRect(e.clientX,e.clientY,0,0)),m(!0))},onKeyDown:e=>{e.target===e.currentTarget&&r&&(e.key===`ContextMenu`||e.shiftKey&&e.key===`F10`)&&(e.preventDefault(),g(null),m(!0))},onClick:t,draggable:i!==void 0,onDragStart:i===void 0?void 0:e=>{e.dataTransfer.effectAllowed=`move`,e.dataTransfer.setData(`text/plain`,d.key),i.start()},onDragEnd:i?.end,children:[/* @__PURE__ */ (0,s.jsx)(`span`,{className:K(q.slot,d.expanded&&q.folderExpanded),children:d.expanded?/* @__PURE__ */ (0,s.jsx)(o.IconFolderOpenRegular,{}):/* @__PURE__ */ (0,s.jsx)(o.IconFolderCloseRegular,{})}),/* @__PURE__ */ (0,s.jsx)(`span`,{className:q.projectText,children:/* @__PURE__ */ (0,s.jsx)(`span`,{className:q.title,children:f})}),/* @__PURE__ */ (0,s.jsxs)(`span`,{className:q.rowActions,children:[r!==void 0&&/* @__PURE__ */ (0,s.jsx)(o.Menu,{open:p,onClose:()=>{m(!1)},items:v,onSelect:e=>{
|
|
9
|
+
default:return h(n)}}function k(e,t,n){let r=[],i=[];for(let a of e)!n.has(a.id)&&t.has(a.id)?r.push(a):i.push(a);return[...r,...i]}function A(e){return e.blank?``:e.title?.trim()??``}function j(e,t,n,r,i,a){return{key:e,workspaceId:t,cwd:n,createdAt:r,label:i,sessions:[...a]}}function ee(e,t,n,r){let i=[];for(let a of t){let t=[];for(let i of a.sessionIds){let a=e.byId[i];a!==void 0&&O(a,n,r)&&t.push(a)}(r!==`only`||t.length!==0)&&i.push(j(a.workspaceId,a.workspaceId,a.path,Date.parse(a.createdAt),a.title,t))}let a=T(e.ids,e.byId).map(t=>e.byId[t]).filter(e=>e!==void 0&&O(e,n,r));return a.length>0&&i.push(j(``,void 0,void 0,void 0,``,a)),i}function M(e){switch(e){case`approval`:case`plan-review`:case`question`:return e;default:return}}function N(e,t,n){return e.projectionsBySession[t]?.values.subagentCatalog?.reduce((t,r)=>t+ +((n.get(r.id)?.running??e.byId[r.id]?.running)===!0),0)??0}function P(e,t,n,r,i){let a=n.get(e.id),o=M(a?.pendingInteraction?.kind);return{id:e.id,reference:y(e),title:A(e),blank:e.blank,running:a?.running??e.running,runningSubagentCount:N(t,e.id,n),completed:a?.completionUnread===!0,pinned:!i.has(e.id)&&r.has(e.id),archived:i.has(e.id),updatedAt:e.updatedAt,...o===void 0?{}:{pendingInteraction:o}}}function te(e,t,n,r,i){let a=new Set(n.archivedSessionIds),o=new Set(n.pinnedSessionIds),s=new Set(i.expandedGroups),c=C(e),l=[];for(let u of ee(e,t,a,n.archivedFilter)){let t=s.has(u.key),n=i.excludePinned?u.sessions.filter(e=>!o.has(e.id)||a.has(e.id)):u.sessions;l.push({key:u.key,workspaceId:u.workspaceId,cwd:u.cwd,createdAt:u.createdAt,label:u.label,sessionCount:n.length,expanded:t,containsCurrent:u.sessions.some(e=>e.id===c),sessions:t?k(n,o,a).map(t=>P(t,e,r,o,a)):[]})}return l}function ne(e,t=[]){return[...re(e,[],`show`),...t.filter(t=>e.byId[t]===void 0)]}function re(e,t,n){let r=new Set(t);return e.ids.filter(t=>{let i=e.byId[t];return i!==void 0&&O(i,r,n)})}function ie(e,t,n,r){let i=new Set(n.archivedSessionIds),a=new Set(n.pinnedSessionIds);return k(t.flatMap(t=>{let r=e.byId[t];return r!==void 0&&O(r,i,n.archivedFilter)?[r]:[]}),a,i).map(t=>P(t,e,r,a,i))}function F(e,t,n,r,i,a,o,s){let c=n.trim().toLowerCase();if(c===``)return{items:[],hasMore:!1};let l=new Set(r),u=/* @__PURE__ */ new Map;for(let e of t)for(let t of e.sessionIds)u.has(t)||u.set(t,e.title);let d=e=>u.get(e.id)??w(e.cwd),f=/* @__PURE__ */ new Map;for(let e of o.items)f.has(e.sessionId)||f.set(e.sessionId,e);let p=[];for(let t of e.ids){let n=e.byId[t];n!==void 0&&!n.blank&&O(n,l,i)&&(A(n).toLowerCase().includes(c)||d(n).toLowerCase().includes(c))&&p.push(n)}let m=new Map(p.map(e=>[e.id,e])),h=T(p.map(e=>e.id),e.byId).map(e=>m.get(e)),g=[],_=/* @__PURE__ */ new Set,v=e=>{_.has(e.id)||(_.add(e.id),g.push(e))};for(let e of h)v(e);for(let t of o.items){let n=e.byId[t.sessionId];n!==void 0&&!n.blank&&O(n,l,i)&&v(n)}return{items:g.slice(0,s).map(t=>{let n=f.get(t.id),r=a.get(t.id),i=M(r?.pendingInteraction?.kind);return{id:t.id,title:A(t),workspace:d(t),running:r?.running??t.running,runningSubagentCount:N(e,t.id,a),...i===void 0?{}:{pendingInteraction:i},completed:r?.completionUnread===!0,archived:l.has(t.id),...n===void 0?{}:{snippet:n.snippet}}}),hasMore:o.hasMore||g.length>s}}function I(e){return(/^[A-Za-z]:[/\\]/.test(e)||e.startsWith(`\\\\`)?e.replaceAll(`\\`,`/`):e).replace(/\/+$/,``)}function L(e,t){let n=I(e),r,i=-1;for(let e of t){let t=I(e);t.length>i&&n!==t&&n.startsWith(`${t}/`)&&(r=e,i=t.length)}return r}let R=`__flat_session_order__`,z=`pinned`,ae=`workspaces`;function oe(e,t){return e?.[t]??!0}function B(e,t,n){let r=new Map(Object.entries(n.summaries)),i=/* @__PURE__ */ new Map;for(let[e,t]of Object.entries(n.members))if(e!==`__flat_session_order__`)for(let n of t)i.set(n,e);return Object.fromEntries(Object.entries(e).map(([e,n])=>{let a=[...n],o=n[0]===void 0?void 0:r.get(n[0]),s=o?.blank&&(o.retainedBy.mainView??0)>0?1:0;for(let n of t[e]??[]){let t=a.indexOf(n);t===-1?!r.has(n)&&(e===`__flat_session_order__`||!i.has(n)||i.get(n)===e)&&a.splice(s++,0,n):s=t+1}return[e,a]}))}function V(){return(0,r.defineStore)({init:()=>({groupBy:`workspace`,orderBy:`updated`,groupExpansion:{},sectionExpansion:{},sessionOrderByAccount:{},archivedFilter:`default`}),persist:`dsh.workspace.view.v5`,actions:{setGroupBy:(e,t)=>{e.groupBy=t},setOrderBy:(e,t,n,r)=>{t!==e.orderBy&&(e.sessionOrderByAccount=t===`manual`?B(n,e.sessionOrderByAccount,r):{},e.orderBy=t)},setGroupExpanded:(e,t,n)=>{e.groupExpansion[t]=n},setSectionExpanded:(e,t,n)=>{e.sectionExpansion={...e.sectionExpansion,[t]:n}},retainAccountKeys:(e,t)=>{let n=new Set(t);e.groupExpansion=Object.fromEntries(Object.entries(e.groupExpansion).filter(([e])=>n.has(e))),e.sessionOrderByAccount=Object.fromEntries(Object.entries(e.sessionOrderByAccount).filter(([e])=>n.has(e))),delete e.sessionUpdatedAtByAccount},syncSessionOrders:(e,t,n)=>{e.orderBy===`manual`&&Object.assign(e.sessionOrderByAccount,B(t,e.sessionOrderByAccount,n))},setSessionOrder:(e,t,n,r,i)=>{let a=B({...r,[t]:n},e.sessionOrderByAccount,i);e.orderBy===`updated`?e.sessionOrderByAccount=a:Object.assign(e.sessionOrderByAccount,a),e.orderBy=`manual`},pinSessionOrder:(e,t,n,r)=>{let i=new Set(n),a=B(Object.fromEntries(Object.entries(r.members).map(([t,n])=>[t,E(n,e.sessionOrderByAccount[t],r.summaries,r.rowState)])),e.sessionOrderByAccount,r);for(let e of i)a[e]!==void 0&&(a[e]=[t,...a[e].filter(e=>e!==t)]);Object.assign(e.sessionOrderByAccount,a)},setArchivedFilter:(e,t)=>{e.archivedFilter=t}}})}function se(e,t,n){let r=new Set(e.flatMap(e=>e.sessionIds));return{members:Object.fromEntries([...e.map(e=>[e.workspaceId,e.sessionIds]),[``,[.../* @__PURE__ */ new Set([...t.ids,...n.archivedSessionIds])].filter(e=>!r.has(e))],[R,ne(t,n.archivedSessionIds)]]),summaries:t.byId,rowState:n}}function ce(e,t){return[S(e,t),R]}var H=class{sessions;workspaces;held=/* @__PURE__ */ new Map;recent=/* @__PURE__ */ new Map;running=/* @__PURE__ */ new Set;failed=/* @__PURE__ */ new Set;active=!1;reconciling=!1;dirty=!1;constructor(e,t){this.sessions=e,this.workspaces=t}start(){this.active=!0;let e=this.sessions.list.subscribe(()=>this.reconcile()),t=this.workspaces.list.subscribe(()=>this.reconcile());return this.reconcile(),()=>{this.active=!1,e(),t();let n=[...this.held.values()];this.held.clear(),this.recent.clear(),this.running.clear(),this.failed.clear();for(let{reference:e}of n)e.release()}}visit(e,t){this.active&&(this.failed.delete(e.sessionId),this.remember(e.sessionId,typeof t==`string`?this.sessions.subagentAddress(e.sessionId)??t:t),this.reconcile())}remember(e,t){this.recent.delete(e),this.recent.set(e,t)}reconcile(){if(this.active&&(this.dirty=!0,!this.reconciling)){this.reconciling=!0;try{for(;this.dirty&&this.active;)this.dirty=!1,this.update()}finally{this.reconciling=!1}}}update(){let e=this.sessions.list.getSnapshot(),t=new Set(e.ids),n=new Set(this.workspaces.list.getSnapshot().archivedSessionIds),r=/* @__PURE__ */ new Set;for(let t of e.ids){let i=e.byId[t];i?.running&&i.origin!==`subagent`&&!n.has(t)&&r.add(t)}if(e.phase===`pending`)for(let e of this.running)n.has(e)||r.add(e);else for(let e of this.running)!r.has(e)&&t.has(e)&&!n.has(e)&&this.remember(e,e);this.running=r;for(let[r,i]of this.recent)(n.has(r)||this.sessions.binding(r)?.session.getSnapshot().removed||e.phase===`ready`&&!t.has(r)&&typeof i==`string`)&&this.recent.delete(r);let i=[...this.recent.keys()].filter(e=>!r.has(e));for(let e of i.slice(0,Math.max(0,i.length-8)))this.recent.delete(e);let a=new Map(this.recent);for(let e of r)a.set(e,e);for(let e of this.failed)a.has(e)||this.failed.delete(e);for(let[e,t]of this.held){let n=this.sessions.binding(e)!==t.binding;(!a.has(e)||n)&&(this.held.delete(e),n&&(this.recent.delete(e),this.failed.add(e)),t.reference.release())}for(let[e,t]of a){if(this.held.has(e)||this.failed.has(e))continue;let n;try{n=this.sessions.retain(t,{source:`backgroundWarm`});let r={reference:n,binding:n.binding};this.held.set(e,r),n.ready.catch(()=>this.fail(e,r))}catch{this.failed.add(e),n?.release()}}}fail(e,t){this.active&&this.held.get(e)===t&&(this.failed.add(e),this.held.delete(e),t.reference.release())}},U=class extends Error{rpcError;name=`DirectoryBrowseError`;constructor(e){super(`directory browse failed: ${e.code}: ${e.message}`),this.rpcError=e}},le=class extends i.Service{directoryPicker;workspaces;sessions;view;notify;connecting=/* @__PURE__ */ new Map;lifetime=new AbortController;selection=(0,r.createSnapshotStore)({},{persist:{name:`dsh.sessions.current`}});mainReference;keepalive;constructor(e,t,n,r,i,a){super(e,`uiWorkspace`),this.directoryPicker=t,this.workspaces=n,this.sessions=r,this.view=i,this.notify=a,this.keepalive=new H(r,n),e.effect(()=>{let e=this.keepalive.start(),t=this.watchNavigation();return()=>{t(),this.lifetime.abort(),e();let n=this.mainReference;this.mainReference=void 0,n?.release()}},`ui-workspace: Workspace navigation policy`)}async connectWorkspace(e){let t=this.workspaces.list.getSnapshot().items.find(t=>t.workspaceId===e);if(t===void 0)throw Error(`uiWorkspace.connectWorkspace: unknown workspace ${e}`);let n=this.connecting.get(e);if(n!==void 0)return n;let r=this.reuseOrCreateBlank(t).finally(()=>{this.connecting.delete(e)});return this.connecting.set(e,r),r}reuseOrCreateBlank(e){let t=this.workspaces.list.getSnapshot().archivedSessionIds,n=this.sessions.list.getSnapshot();for(let r of n.ids){let i=n.byId[r];if(i!==void 0&&i.blank&&i.cwd===e.path&&e.sessionIds.includes(r)&&!t.includes(r))return this.reuseBlank(e.workspaceId,r)}return this.sessions.create({workspaceId:e.workspaceId})}async reuseBlank(e,t){try{return await this.sessions.create({workspaceId:e,sessionId:t})}catch(t){if(W(t)?.rpcError.code!==`session/writer-held`)throw t;return this.sessions.create({workspaceId:e})}}openSession(e){this.replaceMain(e,this.lifetime.signal,`reveal`)}async openWorkspace(e,t){let n=AbortSignal.any([this.ctx.layout.beginNavigation(),this.lifetime.signal]),r;try{if(e===null&&!this.workspaces.list.getSnapshot().canStartProjectless)throw Error(`This Host requires a Workspace.`);r=e===null?await this.sessions.create():await this.connectWorkspace(e)}catch(e){throw n.aborted||this.notify({kind:`createFailed`,message:G(e)}),e}n.aborted||this.replaceMain(r,n,`reveal`,t)}async forkSession(e,t){return this.sessions.fork({sessionId:e,increaseTitle:!0,...t===void 0?{}:{onCreated:t}})}startSession(e,t){let n=t===void 0?void 0:{...t},r=n!==void 0&&(n.prompt!==void 0||n.clearPreviousDraft===!0),i=this.workspaces.list.getSnapshot(),a=this.sessions.list.getSnapshot(),o=this.mainReference?.sessionId,s=o===void 0?void 0:i.items.find(e=>e.sessionIds.includes(o))?.workspaceId,c=i.phase===`ready`&&a.phase===`ready`?ue(i.items,a.byId):void 0,l=e??(i.canStartProjectless?null:s??c);if(l===void 0){if(r){this.notify({kind:`createFailed`,message:this.ctx.locale.bind(`workspace`)(`draft.workspaceRequired`)});return}this.clearMain()}else this.openWorkspace(l,r?e=>{let t=this.sessions.binding(e);t===void 0&&this.draftPreparationFailed(),this.prepareDraft(t,n)}:void 0).catch(e=>{console.warn(`new session failed:`,e)})}prepareDraft(e,t){let n=this.ctx.get(`conversation`);n===void 0&&this.draftPreparationFailed(),n.input.requestDraftInitialization(e,t)===`blocked`&&this.draftPreparationFailed()}draftPreparationFailed(){let e=this.ctx.locale.bind(`workspace`)(`draft.initializationFailed`);throw this.notify({kind:`createFailed`,message:e}),Error(e)}async archiveSession(e,t={}){await this.workspaces.archiveSession(e,t),this.mainReference?.sessionId===e&&this.clearMain()}async unarchiveSession(e){await this.workspaces.unarchiveSession(e)}async pinSession(e){await this.workspaces.pinSession(e);let{items:t,pinnedSessionIds:n,archivedSessionIds:r}=this.workspaces.list.getSnapshot();this.view.pinSessionOrder(e,ce(t,e),se(t,this.sessions.list.getSnapshot(),{pinnedSessionIds:n,archivedSessionIds:r}))}async unpinSession(e){await this.workspaces.unpinSession(e)}async pickDirectory(){let e=await this.directoryPicker.pick();if(!e.ok)throw Error(`directory picker failed: ${e.error.message}`);return e.value}async listDirectory(e,t){let n=await this.directoryPicker.list(e,t);if(!n.ok)throw new U(n.error);return n.value}async createDirectory(e,t){let n=await this.directoryPicker.createDirectory(e,t);if(!n.ok)throw new U(n.error);return n.value}watchNavigation(){let e=`waiting`,t=()=>{if(this.lifetime.signal.aborted||this.clearArchivedCurrent()||e!==`waiting`)return;let t=this.workspaces.list.getSnapshot(),n=this.sessions.list.getSnapshot();t.phase===`ready`&&n.phase===`ready`&&(this.mainReference===void 0?(e=`connecting`,this.restoreSelection(t,n).then(()=>{e=`done`},t=>{this.lifetime.signal.aborted||(e=`waiting`,console.warn(`initial Session restoration failed:`,t))})):e=`done`)},n=this.workspaces.list.subscribe(t),r=this.sessions.list.subscribe(t);return t(),()=>{this.lifetime.abort(),r(),n()}}async restoreSelection(e,t){let n=this.selection.getSnapshot();if(n.subagentAddress!==void 0){this.replaceMain(n.subagentAddress,this.lifetime.signal,`preserve`);return}let r=n.sessionId===void 0?void 0:t.byId[n.sessionId],i=r===void 0?void 0:e.items.find(e=>e.sessionIds.includes(r.id));if(r!==void 0&&(!r.blank||i===void 0)){this.replaceMain(r.id,this.lifetime.signal,`preserve`);return}let a=AbortSignal.any([this.ctx.layout.beginNavigation(),this.lifetime.signal]),o;if(r!==void 0&&i!==void 0&&r.cwd===i.path&&!e.archivedSessionIds.includes(r.id)&&(o=await this.reuseBlank(i.workspaceId,r.id)),o===void 0&&e.canStartProjectless&&r===void 0){o=await this.sessions.create(),a.aborted||this.replaceMain(o,a,`preserve`);return}let s=i?.workspaceId??ue(e.items,t.byId);if(s===void 0&&e.items.length===0&&t.ids.length===0){let e=await this.initializeDefaultWorkspace(a);if(a.aborted)return;s=e?.workspaceId}o===void 0&&s!==void 0&&(o=await this.connectWorkspace(s)),o!==void 0&&!a.aborted&&this.replaceMain(o,a,`preserve`)}async initializeDefaultWorkspace(e){try{return await this.workspaces.initializeDefault(e)}catch{e.aborted||this.notify({kind:`defaultWorkspaceFailed`});return}}clearArchivedCurrent(){let e=this.mainReference?.sessionId;return e===void 0||!this.workspaces.list.getSnapshot().archivedSessionIds.includes(e)?!1:(this.clearMain(),!0)}clearMain(){let e=this.mainReference;this.mainReference=void 0,this.selection.set({}),e?.release(),this.ctx.layout.selectPanel(null)}replaceMain(e,t,n,r){t.throwIfAborted();let i=this.sessions.retain(e,{source:`mainView`});try{if(t.throwIfAborted(),r?.(i.sessionId),t.aborted){i.release();return}let n=typeof e==`string`?this.sessions.subagentAddress(i.sessionId):e;this.selection.set({sessionId:i.sessionId,...n===void 0?{}:{subagentAddress:n}})}catch(e){throw i.release(),e}let a=this.mainReference;this.mainReference=i,this.keepalive.visit(i,e),a?.release(),n===`reveal`&&this.ctx.layout.selectPanel(null)}};function W(e){return e instanceof Error&&e.name===`SessionCreateError`?e:void 0}function G(e){let t=W(e);return t===void 0?e instanceof Error?e.message:String(e):`${t.rpcError.code}: ${t.rpcError.message}`}function ue(e,t){let n,r=-1/0;for(let i of e){let e=-1/0;for(let n of i.sessionIds){let r=t[n];r!==void 0&&(e=Math.max(e,r.updatedAt))}e===-1/0&&(e=Date.parse(i.createdAt)),(n===void 0||e>r)&&(n=i.workspaceId,r=e)}return n}function de(e){var t,n,r=``;if(typeof e==`string`||typeof e==`number`)r+=e;else if(typeof e==`object`){if(Array.isArray(e)){var i=e.length;for(t=0;t<i;t++)e[t]&&(n=de(e[t]))&&(r&&(r+=` `),r+=n)}else for(n in e)e[n]&&(r&&(r+=` `),r+=n)}return r}function K(){for(var e,t,n=0,r=``,i=arguments.length;n<i;n++)(e=arguments[n])&&(t=de(e))&&(r&&(r+=` `),r+=t);return r}function fe(e,t){return e===`default-workspace`?t:e}let pe=`@deepseek-ai/dsh-client-ui-workspace/Rows.module.css`;if(typeof document<`u`&&document.querySelector(`style[data-plugin-css=`+JSON.stringify(pe)+`]`)===null){let e=document.createElement(`style`);e.dataset.plugin=`@deepseek-ai/dsh-client-ui-workspace`,e.dataset.pluginCss=pe,e.textContent=`.ysovAa_projectRow,.ysovAa_sessionRow{--dsh-row-surface:var(--dsw-specific-sidebar-fill);border-radius:var(--dsw-radius-md);padding:0 8px;cursor:pointer;-webkit-tap-highlight-color:transparent;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;position:relative}.ysovAa_projectRow:is(:hover,:focus-visible,:has(:focus-visible),.ysovAa_menuOpen),.ysovAa_sessionRow:is(:hover,:focus-visible,:has(:focus-visible),.ysovAa_menuOpen){--dsh-row-surface:color-mix(in srgb, var(--dsw-alias-label-primary) 4%, var(--dsw-specific-sidebar-fill));background:var(--dsh-row-surface)}.ysovAa_sessionRow.ysovAa_selected{--dsh-row-surface:color-mix(in srgb, var(--dsw-alias-label-primary) 6%, var(--dsw-specific-sidebar-fill));background:var(--dsh-row-surface)}.ysovAa_sessionRow.ysovAa_selected:is(:hover,:focus-visible,:has(:focus-visible),.ysovAa_menuOpen){--dsh-row-surface:color-mix(in srgb, var(--dsw-alias-label-primary) 8%, var(--dsw-specific-sidebar-fill))}.ysovAa_sessionRow,.ysovAa_searchResultRow{--ch-sidebar-text-primary:#1a1c1f;letter-spacing:normal;color:color-mix(in oklab, var(--ch-sidebar-text-primary) 85%, transparent);font-family:-apple-system,"system-ui",Segoe UI,sans-serif;font-size:14px;font-weight:430;line-height:20px}body[data-ds-dark-theme] .ysovAa_sessionRow,body[data-ds-dark-theme] .ysovAa_searchResultRow{--ch-sidebar-text-primary:#fff}.ysovAa_projectRow:focus-visible,.ysovAa_sessionRow:focus-visible,.ysovAa_iconButton:focus-visible{outline:2px solid var(--dsw-focus-ring-color,var(--dsw-alias-state-business-primary));outline-offset:-2px}.ysovAa_searchResultRow{box-sizing:border-box;border-radius:var(--dsw-radius-lg);cursor:pointer;text-align:left;background:0 0;border:none;flex-direction:column;align-items:stretch;width:100%;min-height:48px;padding:4px 8px;display:flex}.ysovAa_searchResultRow:hover,.ysovAa_searchResultRow.ysovAa_selected{background:var(--dsw-alias-interactive-bg-hover)}.ysovAa_searchResultHeading{align-items:center;min-width:0;display:flex}.ysovAa_searchResultTitle{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;margin-left:4px;font-size:14px;line-height:20px;overflow:hidden}.ysovAa_searchResultMeta{align-items:center;gap:6px;min-width:0;margin-left:20px;display:flex}.ysovAa_searchResultWorkspace,.ysovAa_searchResultSnippet{text-overflow:ellipsis;white-space:nowrap;font-size:12px;line-height:17px;overflow:hidden}.ysovAa_searchResultWorkspace{max-width:40%;color:var(--dsw-alias-label-tertiary);flex:none}.ysovAa_searchResultWorkspace:only-child{max-width:100%}.ysovAa_searchResultSnippet{min-width:0;color:var(--dsw-alias-label-secondary);flex:1}.ysovAa_projectRow{box-sizing:border-box;align-items:center;height:34px}.ysovAa_sessionRow{gap:0;height:32px}.ysovAa_sessionRow .ysovAa_title{margin:0 6px 0 4px}.ysovAa_slot{width:16px;height:20px;color:var(--dsw-alias-label-tertiary);flex:none;justify-content:center;align-items:center;display:inline-flex;position:relative}.ysovAa_slot:has([data-harness-id]){width:14px;color:inherit}.ysovAa_sessionRow:has([data-harness-id]) .ysovAa_title,.ysovAa_searchResultHeading:has([data-harness-id]) .ysovAa_searchResultTitle{margin-left:8px}.ysovAa_statusOverlay{display:contents}.ysovAa_slot:has([data-harness-id]) .ysovAa_statusOverlay{transform-origin:100% 100%;display:inline-flex;position:absolute;bottom:-3px;right:-3px;transform:scale(.65)}.ysovAa_visuallyHidden{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.ysovAa_projectRow>.ysovAa_slot:not(.ysovAa_folderExpanded){color:inherit}.ysovAa_folderExpanded{color:var(--dsw-alias-state-business-primary)}.ysovAa_projectText{flex-direction:column;flex:1;gap:2px;min-width:0;display:flex}.ysovAa_title{text-overflow:ellipsis;white-space:nowrap;min-width:0;font-size:14px;line-height:20px;overflow:hidden}.ysovAa_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}.ysovAa_sessionRow .ysovAa_title{flex:1}.ysovAa_meta{text-overflow:ellipsis;white-space:nowrap;color:var(--dsw-alias-label-tertiary);font-size:12px;line-height:20px;overflow:hidden}.ysovAa_trailing{flex:none;place-items:center end;display:grid}.ysovAa_trailing:empty{display:none}.ysovAa_trailing>*{grid-area:1/1}.ysovAa_time{font-variant-numeric:tabular-nums;color:var(--dsw-alias-label-tertiary);flex:none;font-size:10px;line-height:16px}.ysovAa_timeStatus{justify-content:center;align-items:center;gap:6px;min-width:16px;height:20px;display:inline-flex}.ysovAa_timeStatus [data-state=done]{color:var(--dsw-alias-state-business-primary)}.ysovAa_timeStatus .ysovAa_visuallyHidden{visibility:visible}.ysovAa_sessionRow.ysovAa_archived .ysovAa_title,.ysovAa_searchResultRow.ysovAa_archived .ysovAa_searchResultTitle,.ysovAa_searchResultRow.ysovAa_archived .ysovAa_searchResultWorkspace,.ysovAa_searchResultRow.ysovAa_archived .ysovAa_searchResultSnippet{color:var(--dsw-alias-label-caption)}.ysovAa_dot{flex:none}.ysovAa_quickActions{align-items:center;gap:2px;display:inline-flex}.ysovAa_rowActions{visibility:hidden;pointer-events:none;flex:none;align-items:center;gap:2px;display:inline-flex}.ysovAa_projectRow:is(:hover,:focus-visible,:has(:focus-visible),.ysovAa_menuOpen) .ysovAa_rowActions,.ysovAa_sessionRow:is(:hover,:focus-visible,:has(:focus-visible),.ysovAa_menuOpen) .ysovAa_rowActions,.ysovAa_searchResultRow:is(:hover,:focus-visible,:has(:focus-visible)) .ysovAa_rowActions{visibility:visible;pointer-events:auto}.ysovAa_searchResultHeading .ysovAa_rowActions{margin-left:auto}.ysovAa_sessionRow:is(:hover,:focus-visible,:has(:focus-visible),.ysovAa_menuOpen) .ysovAa_time{visibility:hidden}@media (hover:hover) and (pointer:fine){.ysovAa_projectRow>.ysovAa_rowActions,.ysovAa_sessionRow .ysovAa_rowActions{inset-inline-end:8px;z-index:1;background:var(--dsh-row-surface);border-radius:var(--dsw-radius-sm);position:absolute;top:50%;transform:translateY(-50%)}.ysovAa_projectRow>.ysovAa_rowActions:before,.ysovAa_sessionRow .ysovAa_rowActions:before{content:"";background:linear-gradient(to right, transparent, var(--dsh-row-surface));pointer-events:none;width:12px;position:absolute;inset-block:0;inset-inline-end:100%}}[data-phone-drawer] .ysovAa_sessionRow{height:48px;min-height:48px}.ysovAa_phoneDetails{padding:8px 8px 16px}.ysovAa_phoneDetails .ysovAa_hoverTitle{display:none}.ysovAa_phoneDetails :is(.ysovAa_hoverTitle,.ysovAa_hoverTime,.ysovAa_hoverStatus,.ysovAa_hoverPath){color:inherit}.ysovAa_sessionRow.ysovAa_dropBefore,.ysovAa_sessionRow.ysovAa_dropAfter{position:relative}.ysovAa_sessionRow.ysovAa_dropBefore:before,.ysovAa_sessionRow.ysovAa_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}.ysovAa_sessionRow.ysovAa_dropBefore:before{top:-7px}.ysovAa_sessionRow.ysovAa_dropAfter:after{bottom:-7px}.ysovAa_hoverContent{flex-direction:column;gap:8px;display:flex}.ysovAa_hoverTitle{color:#fff;overflow-wrap:break-word;font-size:14px;line-height:20px}.ysovAa_hoverPath{color:#cfd3d6;word-break:break-all;font-size:12px;line-height:16px}.ysovAa_hoverTime{color:#cfd3d6;font-size:12px;line-height:16px}.ysovAa_hoverStatus{color:#adb2b8;align-items:center;gap:8px;font-size:12px;line-height:20px;display:flex}.ysovAa_hoverArchived svg{flex-shrink:0;margin:0 -4px}.ysovAa_iconButton{cursor:pointer;-webkit-tap-highlight-color:transparent;width:24px;height:24px;color:var(--dsw-alias-label-tertiary);background:0 0;border:none;border-radius:4px;flex:none;justify-content:center;align-items:center;padding:0;display:inline-flex}.ysovAa_iconButton:hover{color:var(--dsw-alias-label-primary);background:color-mix(in srgb, var(--dsw-alias-label-primary) 7%, transparent)}[data-phone-drawer] :is(.ysovAa_projectRow,.ysovAa_sessionRow){--dsh-row-surface:transparent;background:var(--dsh-row-surface)}[data-phone-drawer] :is(.ysovAa_projectRow,.ysovAa_sessionRow):is(:active,:focus-visible,:has(:focus-visible),.ysovAa_menuOpen){--dsh-row-surface:color-mix(in srgb, var(--dsw-alias-label-primary) 3%, transparent)}[data-phone-drawer] .ysovAa_sessionRow.ysovAa_selected{--dsh-row-surface:color-mix(in srgb, var(--dsw-alias-label-primary) 6%, transparent)}[data-phone-drawer] .ysovAa_rowActions,[data-phone-drawer] .ysovAa_rowActions:before{background:0 0}[data-phone-drawer] .ysovAa_iconButton{width:44px;height:44px;color:var(--dsw-alias-label-tertiary);background:0 0}[data-phone-drawer] .ysovAa_iconButton:active{color:var(--dsw-alias-label-primary)}@media (hover:none),(pointer:coarse){.ysovAa_projectRow,.ysovAa_sessionRow{min-height:44px}.ysovAa_rowActions{visibility:visible;pointer-events:auto}.ysovAa_sessionRow .ysovAa_quickActions{display:none}.ysovAa_sessionRow .ysovAa_trailing{align-items:center;gap:4px;display:flex}.ysovAa_sessionRow .ysovAa_time:not(.ysovAa_timeStatus){display:none}.ysovAa_sessionRow .ysovAa_timeStatus{visibility:visible;padding-inline-end:0}.ysovAa_iconButton{width:44px;height:44px}}`,document.head.appendChild(e)}var q={archived:`ysovAa_archived`,dot:`ysovAa_dot`,dropAfter:`ysovAa_dropAfter`,dropBefore:`ysovAa_dropBefore`,folderExpanded:`ysovAa_folderExpanded`,hoverArchived:`ysovAa_hoverArchived`,hoverContent:`ysovAa_hoverContent`,hoverPath:`ysovAa_hoverPath`,hoverStatus:`ysovAa_hoverStatus`,hoverTime:`ysovAa_hoverTime`,hoverTitle:`ysovAa_hoverTitle`,iconButton:`ysovAa_iconButton`,menuOpen:`ysovAa_menuOpen`,meta:`ysovAa_meta`,phoneDetails:`ysovAa_phoneDetails`,projectRow:`ysovAa_projectRow`,projectText:`ysovAa_projectText`,quickActions:`ysovAa_quickActions`,renameInput:`ysovAa_renameInput`,rowActions:`ysovAa_rowActions`,searchResultHeading:`ysovAa_searchResultHeading`,searchResultMeta:`ysovAa_searchResultMeta`,searchResultRow:`ysovAa_searchResultRow`,searchResultSnippet:`ysovAa_searchResultSnippet`,searchResultTitle:`ysovAa_searchResultTitle`,searchResultWorkspace:`ysovAa_searchResultWorkspace`,selected:`ysovAa_selected`,sessionRow:`ysovAa_sessionRow`,slot:`ysovAa_slot`,statusOverlay:`ysovAa_statusOverlay`,time:`ysovAa_time`,timeStatus:`ysovAa_timeStatus`,title:`ysovAa_title`,trailing:`ysovAa_trailing`,visuallyHidden:`ysovAa_visuallyHidden`};function me(e,t){return e.blank?t(`session.new`):e.title||t(`session.untitled`)}function he(e,t,n){let{unit:r,n:i}=(0,o.relativeTime)(e,t);return r===`now`?n(`time.now`):n(`time.${r}`,{n:i})}function ge(e,t,n){let{unit:r,n:i}=(0,o.relativeTime)(e,t);return r===`now`?n(`time.now`):n(`time.ago`,{t:n(`time.${r}`,{n:i})})}function _e(e,t){let n=new Date(e),r=e=>String(e).padStart(2,`0`);return t(`hover.created`,{time:`${t(`date.ymd`,{y:n.getFullYear(),m:n.getMonth()+1,d:n.getDate()})} ${r(n.getHours())}:${r(n.getMinutes())}`})}function J({label:e,cwd:t,createdAt:n,t:r}){return/* @__PURE__ */ (0,s.jsxs)(`div`,{className:q.hoverContent,children:[/* @__PURE__ */ (0,s.jsx)(`div`,{className:q.hoverTitle,children:e}),/* @__PURE__ */ (0,s.jsx)(`div`,{className:q.hoverPath,children:t}),/* @__PURE__ */ (0,s.jsx)(`div`,{className:q.hoverTime,children:_e(n,r)})]})}function ve(e){let t=e.currentTarget.getBoundingClientRect();return e.clientY<t.top+t.height/2?`before`:`after`}function ye({group:e,onToggle:t,onCreate:n,actions:r,drag:i,home:c,newShortcut:l,t:u}){let d=e,f=d.workspaceId===void 0?u(`group.ungrouped`):d.label,[p,m]=(0,a.useState)(!1),[h,g]=(0,a.useState)(null),v=[{id:`rename`,label:u(`rename`),icon:/* @__PURE__ */ (0,s.jsx)(o.IconEditOutlineRegular,{})},{id:`delete`,label:u(`delete.workspace`),icon:/* @__PURE__ */ (0,s.jsx)(o.IconTrashOutlineRegular,{}),danger:!0}],y=/* @__PURE__ */ (0,s.jsxs)(`div`,{className:K(q.projectRow,p&&q.menuOpen),"data-row-key":`workspace:${e.key}`,role:`treeitem`,"aria-expanded":d.expanded,tabIndex:-1,onContextMenu:e=>{r&&!e.target.closest(`button`)&&(e.preventDefault(),g(new DOMRect(e.clientX,e.clientY,0,0)),m(!0))},onKeyDown:e=>{e.target===e.currentTarget&&r&&(e.key===`ContextMenu`||e.shiftKey&&e.key===`F10`)&&(e.preventDefault(),g(null),m(!0))},onClick:t,draggable:i!==void 0,onDragStart:i===void 0?void 0:e=>{e.dataTransfer.effectAllowed=`move`,e.dataTransfer.setData(`text/plain`,d.key),i.start()},onDragEnd:i?.end,children:[/* @__PURE__ */ (0,s.jsx)(`span`,{className:K(q.slot,d.expanded&&q.folderExpanded),children:d.expanded?/* @__PURE__ */ (0,s.jsx)(o.IconFolderOpenRegular,{}):/* @__PURE__ */ (0,s.jsx)(o.IconFolderCloseRegular,{})}),/* @__PURE__ */ (0,s.jsx)(`span`,{className:q.projectText,children:/* @__PURE__ */ (0,s.jsx)(`span`,{className:q.title,children:f})}),/* @__PURE__ */ (0,s.jsxs)(`span`,{className:q.rowActions,children:[r!==void 0&&/* @__PURE__ */ (0,s.jsx)(o.Menu,{open:p,onClose:()=>{m(!1)},items:v,onSelect:e=>{
|
|
10
10
|
/* v8 ignore next -- Menu can emit only the rename and delete rows supplied above. */
|
|
11
11
|
m(!1),(e===`rename`||e===`delete`)&&(e===`rename`?r.rename():r.delete())},portal:!0,autoFocus:!0,getAnchorRect:h===null?void 0:()=>h,anchor:/* @__PURE__ */ (0,s.jsx)(`button`,{type:`button`,className:q.iconButton,"aria-label":u(`actions.workspace.aria`,{name:f}),"aria-haspopup":`menu`,"aria-expanded":p,onClick:e=>{e.stopPropagation(),g(null),m(e=>!e)},children:/* @__PURE__ */ (0,s.jsx)(o.IconEllipsisOutlineRegular,{})})}),/* @__PURE__ */ (0,s.jsx)(o.Tooltip,{label:u(`actions.newSession`),shortcutKeys:l?.keys,side:`bottom`,align:`end`,delayMs:500,children:/* @__PURE__ */ (0,s.jsx)(`button`,{type:`button`,className:q.iconButton,"aria-keyshortcuts":l?.aria,"aria-label":u(`actions.newSession.aria`,{name:f}),onClick:e=>{e.stopPropagation(),n()},children:/* @__PURE__ */ (0,s.jsx)(o.IconNewChatOutlineRegular,{})})})]})]});return d.createdAt===void 0?y:/* @__PURE__ */ (0,s.jsx)(o.HoverCard,{anchor:y,content:/* @__PURE__ */ (0,s.jsx)(J,{label:d.label,cwd:d.cwd===void 0?void 0:_(d.cwd,c),createdAt:d.createdAt,t:u}),openDelayMs:800,disabled:p,copyText:d.cwd,copyLabel:u(`copy`),copiedLabel:u(`hover.copied`)})}
|
|
12
12
|
/* v8 ignore next 3 -- closed-union backstop; only reached if the status is forged */
|
|
13
|
-
function
|
|
13
|
+
function be(e){throw Error(`unknown pending interaction: ${String(e)}`)}function xe(e,t){let n=e.runningSubagentCount===0?void 0:{state:`ongoing`,label:t(e.runningSubagentCount===1?`status.subagentsRunning.one`:`status.subagentsRunning.other`,{n:e.runningSubagentCount})},r;switch(e.pendingInteraction){case`approval`:r={state:`warning`,label:t(`status.waitingApproval`),trailingLabel:t(`status.compact.approval`)};break;case`plan-review`:r={state:`warning`,label:t(`status.planReview`),trailingLabel:t(`status.compact.planReview`)};break;case`question`:r={state:`warning`,label:t(`status.waitingAnswer`),trailingLabel:t(`status.compact.answer`)};break;case void 0:break;
|
|
14
14
|
/* v8 ignore next -- closed PendingInteractionStatus union */
|
|
15
|
-
default:return ye(e.pendingInteraction)}if(r!==void 0)return n===void 0?[r]:[r,n];if(e.running){let e={state:`ongoing`,label:t(`status.running`)};return n===void 0?[e]:[e,n]}return n===void 0?e.completed?[{state:`done`,label:t(`status.completed`)}]:[{state:`idle`,label:t(`status.idle`)}]:[n]}function xe({statuses:e}){return/* @__PURE__ */ (0,s.jsxs)(s.Fragment,{children:[/* @__PURE__ */ (0,s.jsx)(o.StateDot,{state:e[0].state,size:e[0].state===`ongoing`?16:void 0}),e.map(e=>/* @__PURE__ */ (0,s.jsx)(`span`,{className:q.visuallyHidden,children:e.label},e.label))]})}function Se({node:e,now:t,renderSlot:n,t:r}){let i=be(e,r).filter(t=>!e.archived||t.state!==`done`&&t.state!==`idle`);return/* @__PURE__ */ (0,s.jsxs)(`div`,{className:q.hoverContent,children:[/* @__PURE__ */ (0,s.jsx)(`div`,{className:q.hoverTitle,children:pe(e,r)}),!e.blank&&/* @__PURE__ */ (0,s.jsx)(`div`,{className:q.hoverTime,children:he(e.updatedAt,t,r)}),n(`sidebar.session.row.hover`,{sessionId:e.id}),i.map(e=>/* @__PURE__ */ (0,s.jsxs)(`div`,{className:q.hoverStatus,children:[/* @__PURE__ */ (0,s.jsx)(o.StateDot,{state:e.state}),/* @__PURE__ */ (0,s.jsx)(`span`,{children:e.label})]},e.label)),e.archived&&/* @__PURE__ */ (0,s.jsxs)(`div`,{className:K(q.hoverStatus,q.hoverArchived),children:[/* @__PURE__ */ (0,s.jsx)(o.IconArchiveOutlineRegular,{size:16}),/* @__PURE__ */ (0,s.jsx)(`span`,{children:r(`row.archived`)})]})]})}function Ce({result:e,currentId:t,onOpen:n,onUnarchive:r,t:i}){let a=e.id===t,c=be(e,i),l=c[0];return/* @__PURE__ */ (0,s.jsxs)(`div`,{className:K(q.searchResultRow,a&&q.selected,e.archived&&q.archived),role:`treeitem`,"aria-selected":a,"aria-description":e.archived?i(`toast.archivedNotOpenable`):void 0,onClick:()=>{n(e.id)},children:[/* @__PURE__ */ (0,s.jsxs)(`span`,{className:q.searchResultHeading,children:[/* @__PURE__ */ (0,s.jsx)(`span`,{className:q.slot}),/* @__PURE__ */ (0,s.jsx)(`span`,{className:q.searchResultTitle,children:e.title||i(`session.untitled`)}),!e.archived&&l.state!==`idle`&&/* @__PURE__ */ (0,s.jsx)(`span`,{className:q.timeStatus,"data-session-status":l.state,children:/* @__PURE__ */ (0,s.jsx)(xe,{statuses:c})}),e.archived&&/* @__PURE__ */ (0,s.jsx)(`span`,{className:q.rowActions,children:/* @__PURE__ */ (0,s.jsx)(o.Tooltip,{label:i(`actions.unarchive`),side:`bottom`,align:`end`,delayMs:500,children:/* @__PURE__ */ (0,s.jsx)(`button`,{type:`button`,className:q.iconButton,"aria-label":i(`menu.unarchiveSession`),onClick:t=>{t.stopPropagation(),r(e.id)},children:/* @__PURE__ */ (0,s.jsx)(o.IconUnarchiveOutlineRegular,{size:16})})})})]}),/* @__PURE__ */ (0,s.jsxs)(`span`,{className:q.searchResultMeta,children:[/* @__PURE__ */ (0,s.jsx)(`span`,{className:q.searchResultWorkspace,children:e.workspace||i(`group.ungrouped`)}),e.snippet!==void 0&&/* @__PURE__ */ (0,s.jsx)(`span`,{className:q.searchResultSnippet,children:e.snippet})]})]})}function we({node:e,rowKey:t=`session:${e.id}`,currentId:n,now:r,onOpen:i,onRenameRequest:c,renderSlot:l,onReveal:u,drag:d,t:f}){let p=e,m=pe(e,f),h=e.id===n,g=be(e,f),_=g[0],v=!p.archived&&_.state!==`idle`,y=d!==void 0&&!p.blank&&!p.archived,b=p.blank?void 0:p.reference,S=y||b!==void 0,C=(0,a.useRef)(!1),[w,T]=(0,a.useState)(!1),[E,D]=(0,a.useState)(null),O=(0,a.useMemo)(()=>[w,T],[w]),k=(0,a.useRef)(null);(0,a.useEffect)(()=>{u!==void 0&&(k.current?.scrollIntoView({block:`nearest`}),u())},[u]);let A=/* @__PURE__ */ (0,s.jsxs)(`div`,{ref:k,"data-row-key":t,className:K(q.sessionRow,h&&q.selected,w&&q.menuOpen,p.archived&&q.archived,d?.marker===`before`&&q.dropBefore,d?.marker===`after`&&q.dropAfter),role:`treeitem`,"aria-selected":h,"aria-current":h?`page`:void 0,tabIndex:-1,onContextMenu:e=>{p.blank||e.target.closest(`button`)||(e.preventDefault(),D(new DOMRect(e.clientX,e.clientY,0,0)),T(!0))},onKeyDown:t=>{t.target!==t.currentTarget||p.blank||(C.current=!1,t.key===`ContextMenu`||t.shiftKey&&t.key===`F10`?(t.preventDefault(),D(null),T(!0)):t.key===`F2`&&!p.archived&&(t.preventDefault(),c(e.id,p.title)))},"aria-description":p.archived?f(`toast.archivedNotOpenable`):void 0,onPointerDown:()=>{C.current=!1},onClick:()=>{C.current||i(e.id)},draggable:S,onDragStart:S?t=>{C.current=!0,t.dataTransfer.effectAllowed=b===void 0?`move`:y?`copyMove`:`copy`,t.dataTransfer.setData(`text/plain`,b===void 0?e.id:x(b).clipboardText),b!==void 0&&t.dataTransfer.setData(`application/x-codexhost-thread-reference`,JSON.stringify(b)),y&&d?.start()}:void 0,onDragEnd:S?e=>d?.end(e.dataTransfer.dropEffect===`copy`):void 0,onDragOver:d===void 0?void 0:e=>{d.active&&(e.preventDefault(),e.dataTransfer.dropEffect=`move`,d.hover(_e(e)))},onDrop:d===void 0?void 0:e=>{d.active&&(e.preventDefault(),d.drop(_e(e)))},children:[/* @__PURE__ */ (0,s.jsxs)(`span`,{className:q.slot,children:[l(`sidebar.session.row.identity`,{sessionId:e.id}),/* @__PURE__ */ (0,s.jsx)(`span`,{className:q.statusOverlay,children:!p.archived&&!p.blank&&!v&&l(`sidebar.session.row.leading`,{sessionId:e.id})})]}),/* @__PURE__ */ (0,s.jsx)(`span`,{"data-session-title":!0,className:q.title,onDoubleClick:p.blank?void 0:t=>{t.stopPropagation(),c(e.id,p.title)},children:m}),/* @__PURE__ */ (0,s.jsxs)(`span`,{className:q.trailing,children:[!p.blank&&/* @__PURE__ */ (0,s.jsx)(`span`,{className:K(q.time,v&&q.timeStatus),"data-session-status":v?_.state:void 0,children:v?/* @__PURE__ */ (0,s.jsxs)(s.Fragment,{children:[/* @__PURE__ */ (0,s.jsx)(xe,{statuses:g}),_.trailingLabel!==void 0&&/* @__PURE__ */ (0,s.jsx)(`span`,{"aria-hidden":`true`,children:_.trailingLabel})]}):me(p.updatedAt,r,f)}),!p.blank&&/* @__PURE__ */ (0,s.jsxs)(`span`,{className:q.rowActions,onClick:e=>{e.stopPropagation()},children:[/* @__PURE__ */ (0,s.jsx)(o.Menu,{open:w,onClose:()=>{T(!1)},portal:!0,autoFocus:!0,getAnchorRect:E===null?void 0:()=>E,anchor:/* @__PURE__ */ (0,s.jsx)(`button`,{type:`button`,className:q.iconButton,"aria-label":f(`actions.session.aria`,{name:m}),"aria-haspopup":`menu`,"aria-expanded":w,onClick:()=>{D(null),T(e=>!e)},children:/* @__PURE__ */ (0,s.jsx)(o.IconEllipsisOutlineRegular,{})}),children:l(`sidebar.workspaces.session.menu.item`,{sessionId:e.id,displayTitle:p.title},{hookContext:O})}),/* @__PURE__ */ (0,s.jsx)(`span`,{className:q.quickActions,children:l(`sidebar.workspaces.session.row.action`,{sessionId:e.id,displayTitle:p.title})})]})]})]});return/* @__PURE__ */ (0,s.jsx)(o.HoverCard,{anchor:A,content:/* @__PURE__ */ (0,s.jsx)(Se,{node:e,now:r,renderSlot:l,t:f}),openDelayMs:800,disabled:w||d?.active===!0,copyText:p.blank||p.title===``?void 0:p.title,copyLabel:f(`copy`),copiedLabel:f(`hover.copied`)})}let Te=`@deepseek-ai/dsh-client-ui-workspace/AnimatedRows.module.css`;if(typeof document<`u`&&document.querySelector(`style[data-plugin-css=`+JSON.stringify(Te)+`]`)===null){let e=document.createElement(`style`);e.dataset.plugin=`@deepseek-ai/dsh-client-ui-workspace`,e.dataset.pluginCss=Te,e.textContent=`.GjRMDa_exits{contain:strict;pointer-events:none;position:absolute;inset:0;overflow:clip}`,document.head.appendChild(e)}var Y={exits:`GjRMDa_exits`};function Ee(e){return[...e.querySelectorAll(`[data-row-key]`)].filter(e=>e.offsetHeight>0&&!e.closest(`[inert]`))}function X(e){if(!e)return;let t=Ee(e),n=document.activeElement?.closest(`[data-row-key]`),r=t.find(e=>e===n)??t.find(e=>e.getAttribute(`aria-selected`)===`true`)??t[0];for(let e of t)e.tabIndex=e===r?0:-1}function De(e){if(e.defaultPrevented||e.nativeEvent.isComposing||e.altKey||e.ctrlKey||e.metaKey||e.shiftKey)return;let t=e.currentTarget,n=e.target;if(!(n instanceof HTMLElement)||!n.matches(`[data-row-key]`)||!t.contains(n))return;let r=Ee(t),i=r.indexOf(n);if(i<0)return;let a=n.matches(`[role="treeitem"][aria-expanded]`),o;switch(e.key){case`ArrowDown`:o=r[i+1];break;case`ArrowUp`:o=r[i-1];break;case`Home`:o=r[0];break;case`End`:o=r.at(-1);break;case`ArrowRight`:a&&n.getAttribute(`aria-expanded`)===`false`?n.click():a&&(o=r[i+1]);break;case`ArrowLeft`:if(a&&n.getAttribute(`aria-expanded`)===`true`)n.click();else{let e=n.closest(`[data-sidebar-group]`),t=e?.querySelector(`[data-row-key^="workspace:"]`);t===n&&(e=e?.parentElement?.closest(`[data-sidebar-group]`)??null,t=e?.querySelector(`[data-row-key^="workspace:"]`)),o=t??void 0}break;case`Enter`:case` `:n.click();break;default:return}e.preventDefault(),o&&(o.focus({preventScroll:!0}),o.scrollIntoView({block:`nearest`}),X(t))}function Oe(e,t){return e.rowKeys.length===t.rowKeys.length&&e.rowKeys.every((e,n)=>e===t.rowKeys[n])}function ke(e,t){return e.bottom>t.top&&e.top<t.bottom&&e.right>t.left&&e.left<t.right}var Z=class extends a.Component{armed=!1;list=(0,a.createRef)();overlay=(0,a.createRef)();movements=/* @__PURE__ */ new Map;exits=/* @__PURE__ */ new Map;componentDidMount(){X(this.list.current)}getSnapshotBeforeUpdate(e){let t=this.list.current;if(!this.armed||Oe(e,this.props)||e.resetKey!==this.props.resetKey||!e.ready||!this.props.ready||t===null||typeof t.animate!=`function`||window.matchMedia(`(prefers-reduced-motion: reduce)`).matches)return null;let n=t.getBoundingClientRect(),r=this.readPositions(),i=new Set(this.props.rowKeys),a=/* @__PURE__ */ new Map;for(let[e,t]of r){if(i.has(e)||!ke(t.rect,n))continue;let r=t.element.cloneNode(!0);r.removeAttribute(`data-row-key`),r.inert=!0,r.style.setProperty(`--dsh-workspace-indent`,getComputedStyle(t.element).getPropertyValue(`--dsh-workspace-indent`)),a.set(e,{...t,element:r})}return{positions:r,removed:a}}componentDidUpdate(e,t,n){if(X(this.list.current),n===null){(!Oe(e,this.props)||e.resetKey!==this.props.resetKey||e.ready!==this.props.ready)&&this.clear();return}this.cancelMovements();let r=this.list.current,i=this.overlay.current,a=r.getBoundingClientRect(),o=i.getBoundingClientRect(),s=this.readPositions();for(let[e,t]of s){this.removeExit(e);let r=n.positions.get(e);if(!ke(t.rect,a)&&(r===void 0||!ke(r.rect,a)))continue;if(r===void 0){this.move(t.element,[{opacity:0},{opacity:1}],100);continue}let i=r.rect.left-t.rect.left,o=r.rect.top-t.rect.top;(i!==0||o!==0||r.opacity!==1)&&this.move(t.element,[{transform:`translate(${String(i)}px, ${String(o)}px)`,opacity:r.opacity},{transform:`translate(0, 0)`,opacity:1}],200)}for(let[e,t]of n.removed){let{element:n}=t;this.removeExit(e),Object.assign(n.style,{position:`absolute`,margin:`0`,transform:`none`,boxSizing:`border-box`,left:`${String(t.rect.left-o.left)}px`,top:`${String(t.rect.top-o.top)}px`,width:`${String(t.rect.width)}px`,height:`${String(t.rect.height)}px`}),i.append(n);let r=n.animate([{opacity:t.opacity},{opacity:0}],{duration:100,easing:`ease-out`,fill:`forwards`});this.exits.set(e,{element:n,animation:r}),r.onfinish=()=>{this.removeExit(e)}}}componentWillUnmount(){this.clear()}readPositions(){let e=this.list.current.querySelectorAll(`[data-row-key]`);return new Map(Array.from(e,e=>[e.dataset.rowKey,{element:e,rect:e.getBoundingClientRect(),opacity:this.movements.has(e)?Number(getComputedStyle(e).opacity):1}]))}move(e,t,n){let r=e.animate(t,{duration:n,easing:`ease-out`});this.movements.set(e,r),r.onfinish=()=>{this.movements.delete(e),r.cancel()}}cancelMovements(){for(let e of this.movements.values())e.onfinish=null,e.cancel();this.movements.clear()}removeExit(e){let t=this.exits.get(e);t!==void 0&&(t.animation.onfinish=null,t.animation.cancel(),t.element.remove(),this.exits.delete(e))}clear(){this.cancelMovements();for(let e of this.exits.keys())this.removeExit(e)}render(){return/* @__PURE__ */ (0,s.jsxs)(s.Fragment,{children:[/* @__PURE__ */ (0,s.jsx)(`div`,{ref:this.list,className:this.props.className,role:`tree`,"aria-label":this.props.label,onKeyDown:De,onFocusCapture:()=>X(this.list.current),onPointerDownCapture:()=>{this.armed=!0},onKeyDownCapture:()=>{this.armed=!0},children:this.props.children}),/* @__PURE__ */ (0,s.jsx)(`div`,{ref:this.overlay,className:Y.exits,"aria-hidden":`true`})]})}};let Ae=`@deepseek-ai/dsh-client-ui-workspace/SectionHeading.module.css`;if(typeof document<`u`&&document.querySelector(`style[data-plugin-css=`+JSON.stringify(Ae)+`]`)===null){let e=document.createElement(`style`);e.dataset.plugin=`@deepseek-ai/dsh-client-ui-workspace`,e.dataset.pluginCss=Ae,e.textContent=`.UGH-ja_heading{border-radius:var(--dsw-radius-sm);min-height:30px;color:var(--dsw-alias-label-tertiary);align-items:center;gap:6px;padding:0 8px;font-size:14px;font-weight:500;line-height:21px;display:flex}.UGH-ja_heading[data-row-key]{cursor:pointer}.UGH-ja_heading[data-row-key]:hover{background:var(--dsw-alias-interactive-bg-hover)}.UGH-ja_heading[data-row-key]:focus-visible,.UGH-ja_action:focus-visible{outline:2px solid var(--dsw-focus-ring-color,var(--dsw-alias-state-business-primary));outline-offset:-2px}.UGH-ja_title{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.UGH-ja_chevron,.UGH-ja_collapsed{flex-shrink:0}.UGH-ja_collapsed{transform:rotate(-90deg)}.UGH-ja_action{border-radius:var(--dsw-radius-sm);width:24px;height:24px;color:inherit;cursor:pointer;background:0 0;border:none;place-items:center;margin-inline-start:auto;padding:0;display:grid}.UGH-ja_action:hover{background:var(--dsw-alias-interactive-bg-hover)}@media (pointer:coarse){.UGH-ja_heading{min-height:44px}.UGH-ja_action{width:44px;height:44px}}`,document.head.appendChild(e)}var je={action:`UGH-ja_action`,chevron:`UGH-ja_chevron`,collapsed:`UGH-ja_collapsed`,heading:`UGH-ja_heading`,title:`UGH-ja_title`};function Me({label:e,icon:t,expanded:n,onToggle:r,rowKey:i,action:a}){let c=n!==void 0&&r!==void 0&&i!==void 0,l=/* @__PURE__ */ (0,s.jsxs)(s.Fragment,{children:[t,/* @__PURE__ */ (0,s.jsx)(`span`,{className:je.title,children:e}),c&&/* @__PURE__ */ (0,s.jsx)(o.IconChevronDownOutlineRegular,{className:n?je.chevron:je.collapsed,size:12}),a!==void 0&&/* @__PURE__ */ (0,s.jsx)(o.Tooltip,{label:a.label,portal:!0,children:/* @__PURE__ */ (0,s.jsx)(`button`,{type:`button`,className:je.action,"aria-label":a.label,onClick:e=>{e.stopPropagation(),a.onActivate()},children:a.icon})})]});return c?/* @__PURE__ */ (0,s.jsx)(`div`,{className:je.heading,role:`treeitem`,tabIndex:-1,"data-row-key":i,"aria-label":e,"aria-expanded":n,onClick:r,children:l}):/* @__PURE__ */ (0,s.jsx)(`div`,{className:je.heading,children:l})}let Ne=`@deepseek-ai/dsh-client-ui-workspace/PinnedSection.module.css`;if(typeof document<`u`&&document.querySelector(`style[data-plugin-css=`+JSON.stringify(Ne)+`]`)===null){let e=document.createElement(`style`);e.dataset.plugin=`@deepseek-ai/dsh-client-ui-workspace`,e.dataset.pluginCss=Ne,e.textContent=`.AWelmG_section{margin-bottom:8px}.AWelmG_section>[data-row-key]+[data-row-key]{margin-top:2px}`,document.head.appendChild(e)}var Pe={section:`AWelmG_section`};function Fe({rows:e,currentId:t,onOpen:n,onRenameRequest:r,renderSlot:i,t:a,revealSessionId:c,onSessionRevealed:l,expanded:u,onToggle:d}){return e.length===0?null:/* @__PURE__ */ (0,s.jsxs)(`div`,{role:`group`,"aria-label":a(`section.pinned`),className:Pe.section,"data-sidebar-pinned":!0,children:[/* @__PURE__ */ (0,s.jsx)(Me,{label:a(`section.pinned`),icon:/* @__PURE__ */ (0,s.jsx)(o.IconPinOutlineRegular,{size:14}),expanded:u,onToggle:d,rowKey:`section:${ie}`}),u&&e.map(e=>/* @__PURE__ */ (0,s.jsx)(we,{node:e,currentId:t,now:Date.now(),onOpen:n,onRenameRequest:r,renderSlot:i,onReveal:e.id===c?()=>l(e.id):void 0,t:a},e.id))]})}function Ie(e,t,n,r){let i=0,a=e.filter(e=>e.blank||e.pinned||e.running||e.runningSubagentCount>0?!0:i++<t||e.id===n||e.id===r);return{rows:a,hiddenCount:e.length-a.length}}function Le(e,t,n){let r=e.filter((e,r)=>r<t||n.has(e.key));return{rows:r,hiddenCount:e.length-r.length}}let Re=`@deepseek-ai/dsh-client-ui-workspace/WorkspacePicker.module.css`;if(typeof document<`u`&&document.querySelector(`style[data-plugin-css=`+JSON.stringify(Re)+`]`)===null){let e=document.createElement(`style`);e.dataset.plugin=`@deepseek-ai/dsh-client-ui-workspace`,e.dataset.pluginCss=Re,e.textContent=`._23OUcW_modalAction{min-width:72px}._23OUcW_modalError,._23OUcW_menuStatus{margin-top:8px;font-size:12px;line-height:18px}._23OUcW_modalError{color:var(--dsw-alias-state-error-primary)}._23OUcW_menuStatus{color:var(--dsw-alias-label-secondary)}`,document.head.appendChild(e)}var ze={menuStatus:`_23OUcW_menuStatus`,modalAction:`_23OUcW_modalAction`,modalError:`_23OUcW_modalError`};let Be=`::add-workspace`,Ve=`::no-workspace`;function He({t:e,open:t,anchorRef:n,useWorkspaces:r,createWorkspace:i,useDirectoryFlow:c,renderDirectoryFlow:l,onPick:u,onPickNone:d,onClose:f,addOnly:p=!1,onBusyChange:m,side:h=`bottom`,selectedId:g}){let _=r(e=>e),v=_.items,y=(0,a.useCallback)(()=>n?.current?.getBoundingClientRect()??null,[n]),[b,x]=(0,a.useState)(!1),[S,C]=(0,a.useState)(null),[w,T]=(0,a.useState)(!1),[E,D]=(0,a.useState)(!1),O=w||E;(0,a.useEffect)(()=>{m?.(O)},[O,m]);let k=c(e=>e);(0,a.useEffect)(()=>{w&&!k&&T(!1)},[w,k]);let A=k?[{id:Be,label:e(`menu.addWorkspace`),icon:/* @__PURE__ */ (0,s.jsx)(o.IconPlusOutlineRegular,{size:16}),disabled:O}]:[],j=!p&&v.length>0,ee=d!==void 0&&!p,M=ee?[{id:Ve,label:e(`menu.noWorkspace`),disabled:O}]:[],N=j?[...M,...v.map(t=>({id:t.workspaceId,label:de(t.title,e(`workspace.defaultName`)),icon:/* @__PURE__ */ (0,s.jsx)(o.IconFolderCloseRegular,{size:16}),disabled:O}))]:[...M,...A],P=N.length===0,te=()=>{x(!1),C(null)},ne=e=>i({path:e}).then(e=>{T(!1),u(e.workspaceId)}).catch(e=>{C(e instanceof Error?e.message:String(e)),T(!1),x(!0)}),F=(0,a.useCallback)(()=>{f(),x(!1),C(null),T(!0)},[f]),re=p||_.phase===`ready`,I=!ee&&!j&&re&&A.length===1;(0,a.useEffect)(()=>{t&&I&&!O&&F()},[t,I,O,F]);let L={open:w,busy:E,onPicked:e=>{D(!0),ne(e).finally(()=>{D(!1)})},onCancel:()=>{T(!1)},onError:e=>{T(!1),C(e),x(!0)}},R=e=>{e===Ve?d?.():e===Be?F():u(e)};return/* @__PURE__ */ (0,s.jsxs)(s.Fragment,{children:[/* @__PURE__ */ (0,s.jsx)(o.Menu,{open:t&&!I&&!P,anchor:null,items:N,...j?{footer:A}:{},selectedId:g??(ee?Ve:void 0),onSelect:R,onClose:f,side:h,portal:!0,getAnchorRect:y}),t&&!I&&!P&&_.phase===`pending`&&/* @__PURE__ */ (0,s.jsx)(`div`,{className:ze.menuStatus,role:`status`,children:e(`picker.loading`)}),l(L),/* @__PURE__ */ (0,s.jsx)(o.Modal,{open:b,onClose:te,closeLabel:e(`close`),title:e(`folderError.title`),footer:/* @__PURE__ */ (0,s.jsxs)(s.Fragment,{children:[/* @__PURE__ */ (0,s.jsx)(o.Button,{variant:`outline`,className:ze.modalAction,onClick:te,children:e(`cancel`)}),/* @__PURE__ */ (0,s.jsx)(o.Button,{variant:`primary`,className:ze.modalAction,disabled:!k,onClick:F,children:e(`folderError.retry`)})]}),children:/* @__PURE__ */ (0,s.jsx)(`div`,{className:ze.modalError,role:`alert`,children:S})})]})}function Ue({open:e,anchorRef:t,useWorkspaces:n,selectedId:r,onPick:i,onClose:a,createWorkspace:o,useDirectoryFlow:c,renderSlot:l,t:u}){let d=n(e=>e.canStartProjectless);return/* @__PURE__ */ (0,s.jsx)(He,{t:u,open:e,anchorRef:t,useWorkspaces:n,createWorkspace:o,useDirectoryFlow:c,renderDirectoryFlow:e=>l(`conversation.hero.workspace.directoryFlow`,e),selectedId:r,onPick:i,...d?{onPickNone:()=>i(null)}:{},onClose:a})}let We=`@deepseek-ai/dsh-client-ui-workspace/WorkspaceBrowser.module.css`;if(typeof document<`u`&&document.querySelector(`style[data-plugin-css=`+JSON.stringify(We)+`]`)===null){let e=document.createElement(`style`);e.dataset.plugin=`@deepseek-ai/dsh-client-ui-workspace`,e.dataset.pluginCss=We,e.textContent=`._0cPX5a_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}._0cPX5a_root._0cPX5a_rail{padding-right:0}._0cPX5a_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}._0cPX5a_iconButton:focus-visible,._0cPX5a_searchButton:focus-visible,._0cPX5a_clearButton:focus-visible{outline:var(--dsw-focus-ring-width) solid var(--dsw-focus-ring-color,var(--dsw-alias-state-business-primary));outline-offset:-2px}._0cPX5a_iconButton:hover{background:var(--dsw-alias-interactive-bg-hover)}._0cPX5a_viewOptionsMenu{min-width:200px}._0cPX5a_sectionHeader{box-sizing:border-box;height:36px;color:var(--dsw-alias-label-tertiary);border-radius:6px;flex:none;justify-content:flex-end;align-items:center;gap:4px;margin-bottom:6px;padding-left:4px;display:flex;overflow:hidden}._0cPX5a_root:not(._0cPX5a_rail) ._0cPX5a_sectionHeader{margin-top:2px;margin-right:-4px}._0cPX5a_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;font-size:14px;font-weight:500;line-height:21px;overflow:hidden}._0cPX5a_sectionLabelHidden{opacity:0;visibility:hidden;max-width:0;margin-right:-4px;transition-delay:0s,0s,0s,0s,.18s;transform:translate(-4px)}._0cPX5a_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}._0cPX5a_searchSlotExpanded{max-width:100%;padding-left:0}._0cPX5a_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}._0cPX5a_headerActionsHidden{opacity:0;visibility:hidden;pointer-events:none;max-width:0;transition-delay:0s,0s,0s,.18s;transform:translate(4px)}._0cPX5a_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}._0cPX5a_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}._0cPX5a_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}._0cPX5a_searchExpanded ._0cPX5a_searchButton{width:28px;height:30px}._0cPX5a_searchButton:hover{background:var(--dsw-alias-interactive-bg-hover)}._0cPX5a_searchExpanded ._0cPX5a_searchButton:hover{background:0 0}._0cPX5a_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}._0cPX5a_searchExpanded ._0cPX5a_searchInput{opacity:1;pointer-events:auto;margin-left:-2px}._0cPX5a_searchInput::placeholder{color:var(--dsw-alias-label-tertiary)}._0cPX5a_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}._0cPX5a_clearButton:hover{background:var(--dsw-alias-interactive-bg-hover)}._0cPX5a_rail ._0cPX5a_sectionHeader{justify-content:flex-start;gap:0;margin-bottom:12px;padding-left:0}._0cPX5a_rail ._0cPX5a_headerActions{max-width:none}._0cPX5a_rail ._0cPX5a_iconButton{border-radius:var(--dsw-radius-md);width:36px;height:36px;color:var(--dsw-alias-label-primary)}._0cPX5a_rail ._0cPX5a_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}._0cPX5a_rail ._0cPX5a_searchButton{border-radius:var(--dsw-radius-md);width:36px;height:36px;color:var(--dsw-alias-label-primary)}._0cPX5a_rail ._0cPX5a_searchButton:hover{background:var(--dsw-alias-interactive-bg-hover)}._0cPX5a_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}._0cPX5a_rail ._0cPX5a_listArea{margin-left:0;margin-right:0;padding-left:0}._0cPX5a_treeBody{flex-direction:column;flex:1;min-height:0;display:flex;position:relative}._0cPX5a_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] ._0cPX5a_fade{display:none}._0cPX5a_wide{animation:_0cPX5a_wide-in .2s var(--ds-ease-in-out)}@keyframes _0cPX5a_wide-in{0%{opacity:0}}._0cPX5a_list{overscroll-behavior-y:contain;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;scroll-padding-block:8px;overflow-y:auto}._0cPX5a_flatList>*+*,._0cPX5a_searchTree>[role=treeitem]+[role=treeitem],._0cPX5a_groupSection>*+*,._0cPX5a_groupSessions>*+*{margin-top:2px}._0cPX5a_searchStatus{color:var(--dsw-alias-label-tertiary);padding:10px 12px;font-size:12px;line-height:18px}._0cPX5a_skeletonRow{box-sizing:border-box;align-items:flex-start;gap:8px;min-height:48px;padding:6px 8px 7px;display:flex}._0cPX5a_skeletonDot{corner-shape:round;border-radius:50%;flex:none;width:16px;height:16px}._0cPX5a_skeletonBars{flex-direction:column;flex:1;gap:6px;min-width:0;display:flex}._0cPX5a_skeletonDot,._0cPX5a_skeletonBar{background:var(--dsw-alias-bg-skeleton);animation:2s cubic-bezier(.36,0,.64,1) infinite _0cPX5a_search-skeleton}._0cPX5a_skeletonBar{border-radius:var(--dsw-radius-xs);width:65%;height:16px}._0cPX5a_skeletonBarWide{width:90%;height:13px}@keyframes _0cPX5a_search-skeleton{0%{opacity:1}40%{opacity:.6}80%,to{opacity:1}}._0cPX5a_groupSection{position:relative}._0cPX5a_groupSection+._0cPX5a_groupSection{margin-top:4px}._0cPX5a_listTopDropIndicator,._0cPX5a_workspaceDropBefore:before,._0cPX5a_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}._0cPX5a_listTopDropIndicator{top:-8px;left:0;right:var(--dsh-session-list-edge-inset)}._0cPX5a_listTopDropActive>._0cPX5a_workspaceDropBefore:first-child:before{display:none}._0cPX5a_workspaceDropBefore:before{top:-8px}._0cPX5a_workspaceDropAfter:after{bottom:-8px}._0cPX5a_sessionOverflowButton{width:100%;height:32px;padding:0 12px 0 calc(32px + var(--dsh-workspace-indent,0px));cursor:pointer;text-align:left;color:var(--dsw-alias-label-tertiary);background:0 0;border:none;border-radius:6px;font-size:12px}._0cPX5a_sessionOverflowButton[data-row-key=overflow\\:workspaces]{padding-inline-start:8px}._0cPX5a_groupSessions>._0cPX5a_sessionOverflowButton{margin-top:0;padding-inline-start:calc(8px + var(--dsh-workspace-indent,0px))}._0cPX5a_sessionOverflowButton:hover{background:var(--dsw-alias-interactive-bg-hover);color:var(--dsw-alias-label-secondary)}._0cPX5a_sessionOverflowButton:focus-visible{outline:2px solid var(--dsw-focus-ring-color,var(--dsw-alias-state-business-primary));outline-offset:-2px}@media (hover:none),(pointer:coarse){._0cPX5a_sessionOverflowButton,._0cPX5a_root:not(._0cPX5a_rail) ._0cPX5a_iconButton{min-height:44px}._0cPX5a_root:not(._0cPX5a_rail) ._0cPX5a_sectionHeader{height:44px}}._0cPX5a_empty{color:var(--dsw-alias-label-tertiary);padding:16px 12px;font-size:13px}._0cPX5a_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}._0cPX5a_emptyState>svg{color:var(--dsw-alias-label-caption);margin-bottom:4px}._0cPX5a_emptyAction{cursor:pointer;color:var(--dsw-alias-link);background:0 0;border:none;padding:0;font-size:13px;line-height:20px}._0cPX5a_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}._0cPX5a_renameInput:disabled{color:var(--dsw-alias-label-dimmed)}._0cPX5a_renameError{color:var(--dsw-alias-state-error-primary);margin-top:8px;font-size:12px;line-height:18px}._0cPX5a_deleteAction:not(:disabled){color:var(--dsw-alias-state-error-primary)}._0cPX5a_deleteStatus{color:var(--dsw-alias-label-secondary);font-size:12px;line-height:18px}._0cPX5a_archiveActivity{color:var(--dsw-alias-label-primary);margin:0 0 8px;padding-left:18px;font-size:13px;line-height:20px}._0cPX5a_archiveActivity li{overflow-wrap:anywhere}@media (prefers-reduced-motion:reduce){._0cPX5a_wide,._0cPX5a_skeletonDot,._0cPX5a_skeletonBar{animation:none}._0cPX5a_search,._0cPX5a_sectionLabel,._0cPX5a_searchSlot,._0cPX5a_searchInput,._0cPX5a_headerActions{transition:none}}`,document.head.appendChild(e)}var Q={archiveActivity:`_0cPX5a_archiveActivity`,clearButton:`_0cPX5a_clearButton`,deleteAction:`_0cPX5a_deleteAction`,deleteStatus:`_0cPX5a_deleteStatus`,empty:`_0cPX5a_empty`,emptyAction:`_0cPX5a_emptyAction`,emptyState:`_0cPX5a_emptyState`,fade:`_0cPX5a_fade`,flatList:`_0cPX5a_flatList`,groupSection:`_0cPX5a_groupSection`,groupSessions:`_0cPX5a_groupSessions`,headerActions:`_0cPX5a_headerActions`,headerActionsHidden:`_0cPX5a_headerActionsHidden`,iconButton:`_0cPX5a_iconButton`,list:`_0cPX5a_list`,listArea:`_0cPX5a_listArea`,listTopDropActive:`_0cPX5a_listTopDropActive`,listTopDropIndicator:`_0cPX5a_listTopDropIndicator`,rail:`_0cPX5a_rail`,renameError:`_0cPX5a_renameError`,renameInput:`_0cPX5a_renameInput`,root:`_0cPX5a_root`,search:`_0cPX5a_search`,"search-skeleton":`_0cPX5a_search-skeleton`,searchButton:`_0cPX5a_searchButton`,searchExpanded:`_0cPX5a_searchExpanded`,searchInput:`_0cPX5a_searchInput`,searchSlot:`_0cPX5a_searchSlot`,searchSlotExpanded:`_0cPX5a_searchSlotExpanded`,searchStatus:`_0cPX5a_searchStatus`,searchTree:`_0cPX5a_searchTree`,sectionHeader:`_0cPX5a_sectionHeader`,sectionLabel:`_0cPX5a_sectionLabel`,sectionLabelHidden:`_0cPX5a_sectionLabelHidden`,sessionOverflowButton:`_0cPX5a_sessionOverflowButton`,skeletonBar:`_0cPX5a_skeletonBar`,skeletonBarWide:`_0cPX5a_skeletonBarWide`,skeletonBars:`_0cPX5a_skeletonBars`,skeletonDot:`_0cPX5a_skeletonDot`,skeletonRow:`_0cPX5a_skeletonRow`,treeBody:`_0cPX5a_treeBody`,viewOptionsMenu:`_0cPX5a_viewOptionsMenu`,wide:`_0cPX5a_wide`,"wide-in":`_0cPX5a_wide-in`,workspaceDropAfter:`_0cPX5a_workspaceDropAfter`,workspaceDropBefore:`_0cPX5a_workspaceDropBefore`};function Ge(e){let t=e.replaceAll(`\0`,``);if(t.length<=500)return t;let n=500,r=t.charCodeAt(n-1),i=t.charCodeAt(n);return r>=55296&&r<=56319&&i>=56320&&i<=57343&&n--,t.slice(0,n)}function Ke(e){(0,a.useEffect)(()=>{if(!e)return;let t=e=>{e.defaultPrevented||(e.preventDefault(),e.dataTransfer!==null&&(e.dataTransfer.dropEffect=`move`))},n=e=>{e.preventDefault()};return document.addEventListener(`dragover`,t),document.addEventListener(`drop`,n),()=>{document.removeEventListener(`dragover`,t),document.removeEventListener(`drop`,n)}},[e])}function qe({groupBy:e,orderBy:t,archivedFilter:n,onGroupPick:r,onOrderPick:i,onArchivedFilterPick:c,t:l}){let[u,d]=(0,a.useState)(!1);return/* @__PURE__ */ (0,s.jsx)(o.Menu,{open:u,onClose:()=>{d(!1)},items:[{type:`label`,id:`group-by`,text:l(`groupBy.label`)},{id:`workspace`,label:l(`groupBy.workspace`),icon:/* @__PURE__ */ (0,s.jsx)(o.IconFolderCloseRegular,{})},{id:`workspace-tree`,label:l(`groupBy.workspaceTree`),icon:/* @__PURE__ */ (0,s.jsx)(o.IconWorkspaceTreeOutlineRegular,{})},{id:`flat`,label:l(`groupBy.flat`),icon:/* @__PURE__ */ (0,s.jsx)(o.IconFlatListOutlineRegular,{})},{type:`separator`,id:`order-by-separator`},{type:`label`,id:`order-by`,text:l(`orderBy.label`)},{id:`manual`,label:l(`orderBy.manual`),icon:/* @__PURE__ */ (0,s.jsx)(o.IconChevronsUpDownOutlineRegular,{})},{id:`updated`,label:l(`orderBy.updated`),icon:/* @__PURE__ */ (0,s.jsx)(o.IconClockOutlineRegular,{})},{type:`separator`,id:`archived-filter-separator`},{type:`label`,id:`filter-by`,text:l(`filterBy.label`)},{id:`hide-archived`,label:l(`viewOptions.hideArchived`),icon:/* @__PURE__ */ (0,s.jsx)(o.IconArchiveOffOutlineRegular,{})},{id:`show-archived`,label:l(`viewOptions.showArchived`),icon:/* @__PURE__ */ (0,s.jsx)(o.IconQueueOutlineRegular,{})},{id:`only-archived`,label:l(`viewOptions.onlyArchived`),icon:/* @__PURE__ */ (0,s.jsx)(o.IconArchiveCheckOutlineRegular,{})}],selectedIds:[e,t,{default:`hide-archived`,show:`show-archived`,only:`only-archived`}[n]],onSelect:e=>{e===`workspace`||e===`workspace-tree`||e===`flat`?r(e):e===`manual`||e===`updated`?i(e):e===`hide-archived`?c(`default`):e===`show-archived`?c(`show`):e===`only-archived`&&c(`only`),d(!1)},align:`end`,dense:!0,listClassName:Q.viewOptionsMenu,portal:!0,anchor:/* @__PURE__ */ (0,s.jsx)(o.Tooltip,{label:l(`viewOptions.label`),side:`bottom`,delayMs:500,children:/* @__PURE__ */ (0,s.jsx)(`button`,{type:`button`,className:K(Q.iconButton,Q.wide),"aria-label":l(`viewOptions.label`),onClick:()=>{d(e=>!e)},children:/* @__PURE__ */ (0,s.jsx)(o.IconSlidersTwoOutlineRegular,{})})})})}function Je(e,t,n,r){let i=t.find(e=>e.id===n.sessionId),a=t.find(e=>e.id===r.id);if(i===void 0||a===void 0||i.blank||i.pinned!==n.pinned||a.pinned!==n.pinned||i.id===a.id||!e.includes(i.id))return;let o=t.filter(e=>e.pinned===n.pinned),s=o.findIndex(e=>e.id===i.id);if(o.filter(e=>e.id!==i.id).findIndex(e=>e.id===a.id)+ +(r.half===`after`)===s)return;let c=e.filter(e=>e!==i.id),l=c.indexOf(a.id);if(l!==-1)return c.splice(l+ +(r.half===`after`),0,i.id),D(c,t.find(e=>e.blank)?.id)}function Ye(e){let t=e.currentTarget.getBoundingClientRect();return e.clientY<t.top+t.height/2?`before`:`after`}function Xe({rowState:e,onLeaveArchivedOnly:t,t:n}){let r=e.archivedFilter===`only`;return/* @__PURE__ */ (0,s.jsxs)(`div`,{className:Q.emptyState,"data-row-key":`empty`,children:[r?/* @__PURE__ */ (0,s.jsx)(o.IconArchiveOutlineRegular,{size:24}):/* @__PURE__ */ (0,s.jsx)(o.IconQueueOutlineRegular,{size:24}),/* @__PURE__ */ (0,s.jsx)(`div`,{children:n(r?`empty.noneArchived`:`empty.none`)}),r&&/* @__PURE__ */ (0,s.jsx)(`button`,{type:`button`,className:Q.emptyAction,onClick:t,children:n(`empty.viewOthers`)})]})}function Ze({list:e,useSessionStatus:t,startSession:n,open:r,workspaces:i,ungroupedSessionIds:c,rowState:l,onLeaveArchivedOnly:u,workspaceReady:d,canStartProjectless:f,animationResetKey:p,usePanelInfo:m,onRenameRequest:h,onDeleteRequest:g,onSessionRenameRequest:_,renderSlot:v,insertWorkspaceBefore:y,nestWorkspaces:b,groupExpansion:x,setGroupExpanded:C,sectionExpansion:w,setSectionExpanded:T,setSessionOrder:E,home:D,t:O,revealSessionId:k,onSessionRevealed:A,shortcuts:j}){let ee=m(e=>e.activePanelId!==null),M=t(e=>e),N=ee?void 0:Object.values(e.byId).find(e=>(e.retainedBy.mainView??0)>0)?.id,P=k===void 0||!d?void 0:S(i,k),[ne,F]=(0,a.useState)({}),[I,L]=(0,a.useState)(null),z=(0,a.useRef)(!1),[B,V]=(0,a.useState)(null),se=(0,a.useRef)(!1),ce=I!==null||B!==null;Ke(ce);let H=N===void 0||!d?void 0:S(i,N);(0,a.useEffect)(()=>{N===void 0||H===void 0||Object.hasOwn(x,H)||C(H,!0)},[N,H,C,x]);let U=(0,a.useMemo)(()=>{if(!b)return/* @__PURE__ */ new Map;let e=new Map(i.map(e=>[e.path,e.workspaceId])),t=[...e.keys()];return new Map(i.map(n=>{let r=R(n.path,t);return[n.workspaceId,r===void 0?void 0:e.get(r)]}))},[b,i]),W=(0,a.useMemo)(()=>{let e=new Set(U.values());return[...i.map(e=>e.workspaceId),``].filter(t=>x[t]??(t===``||e.has(t)))},[x,U,i]),G=(0,a.useMemo)(()=>{let t=te(e,i,l,M,{expandedGroups:W,excludePinned:!0});return f&&!t.some(e=>e.key===``)&&t.push({key:``,workspaceId:void 0,cwd:void 0,createdAt:void 0,label:``,sessionCount:0,expanded:W.includes(``),containsCurrent:!1,sessions:[]}),t},[e,i,l,M,W,f]);(0,a.useEffect)(()=>{for(let e=P;e!==void 0;e=U.get(e))(x[e]===!1||e===P&&x[e]!==!0)&&C(e,!0)},[x,U,P,C]);let le=Date.now(),ue=(e,t)=>{if(z.current)return;z.current=!0,L(null);let n=G.find(t=>t.key===e.accountKey);if(n===void 0||t.id===e.sessionId)return;let r=e.accountKey===``?c:i.find(t=>t.workspaceId===e.accountKey)?.sessionIds;if(r===void 0)return;let a=Ie(n.sessions,ne[n.key]??5,N,k).rows,o=Je(r,a,e,t);o!==void 0&&E(e.accountKey,o)},de=(e,t)=>{if(se.current)return;se.current=!0,V(null);let n=U.get(e.workspaceId),r=i.filter(e=>U.get(e.workspaceId)===n),a=r.findIndex(e=>e.workspaceId===t.id);if(a===-1)return;let o=t.half===`before`?t.id:r[a+1]?.workspaceId;if(o===e.workspaceId)return;let s=r.findIndex(t=>t.workspaceId===e.workspaceId),c=o===void 0?r.length:r.findIndex(e=>e.workspaceId===o);(s===-1||c!==s&&c!==s+1)&&y(e.workspaceId,o).catch(e=>{console.warn(`workspace reorder rejected:`,e)})},fe=(0,a.useMemo)(()=>{let e=new Set(G.map(e=>e.key)),t=/* @__PURE__ */ new Map;for(let n of G){let r=U.get(n.key);for(;r!==void 0&&!e.has(r);)r=U.get(r);let i=t.get(r);i===void 0?t.set(r,[n]):i.push(n)}return t},[G,U]),q=fe.get(void 0)??[],pe=q[0]?.workspaceId!==void 0&&B?.over?.id===q[0].workspaceId&&B.over.half===`before`,me=(0,a.useMemo)(()=>{let e=/* @__PURE__ */ new Map,t=(n,r)=>{e.set(n.key,r);for(let e of fe.get(n.key)??[])t(e,r)};for(let e of q)t(e,e.key);return e},[fe,q]),he=(0,a.useMemo)(()=>{let e=/* @__PURE__ */ new Set;for(let t of[H,P]){let n=t===void 0?void 0:me.get(t);n!==void 0&&n!==``&&e.add(n)}return e},[H,P,me]),[ge,J]=(0,a.useState)(!1),_e=q.filter(e=>e.key!==``),ye=Le(_e,5,he),be=ge?_e:ye.rows,xe=oe(w,ie),Se=oe(w,ae),Ce=e=>{e.expanded&&F(t=>({...t,[e.key]:5})),C(e.key,!e.expanded)},Te=re(e,l.pinnedSessionIds,l,M).filter(e=>e.pinned),Y=[];if(Te.length>0&&(Y.push(`section:${ie}`),xe))for(let e of Te)Y.push(`session:${e.id}`);G.length===0&&Te.length===0&&Y.push(`empty`);let Ee=(e,t)=>{let i=e.workspaceId,a=fe.get(e.key)??[],c=B!==null&&U.get(B.workspaceId)===U.get(e.key),l=Ie(e.sessions,ne[e.key]??5,N,k);Y.push(`workspace:${e.key}`);let u=e.expanded?a.map(e=>Ee(e,t+1)):[],d=l.rows;for(let e of d)Y.push(`${i===void 0?`recent`:`session`}:${e.id}`);l.hiddenCount>0&&Y.push(`overflow:${e.key}`);let p=i!==void 0&&B?.over?.id===i?B.over.half:null,m=i===void 0?void 0:{start:()=>{se.current=!1,V({workspaceId:i,over:null})},end:()=>{B?.over!==null&&B?.over!==void 0?de(B,B.over):V(null),se.current=!1}},y=i===void 0||!c?void 0:e=>{V(t=>t===null?t:{...t,over:{id:i,half:e}})},b=i===void 0||!c?void 0:e=>{de(B,{id:i,half:e})};return/* @__PURE__ */ (0,s.jsxs)(`div`,{"data-sidebar-group":e.key,style:{"--dsh-workspace-indent":`${t*12}px`},className:K(Q.groupSection,p===`before`&&Q.workspaceDropBefore,p===`after`&&Q.workspaceDropAfter),onDragOver:B===null?void 0:t=>{t.preventDefault(),(y!==void 0||U.get(e.key)===void 0)&&(t.stopPropagation(),y===void 0?(t.dataTransfer.dropEffect=`none`,B.over!==null&&V({...B,over:null})):(t.dataTransfer.dropEffect=`move`,y(Ye(t))))},onDrop:B===null?void 0:t=>{t.preventDefault(),(b!==void 0||U.get(e.key)===void 0)&&(t.stopPropagation(),b===void 0?(se.current=!0,V(null)):b(Ye(t)))},children:[i===void 0?/* @__PURE__ */ (0,s.jsx)(Me,{label:O(`group.ungrouped`),expanded:e.expanded,onToggle:()=>{Ce(e)},rowKey:`workspace:${e.key}`,action:f?{label:O(`actions.newSession`),icon:/* @__PURE__ */ (0,s.jsx)(o.IconNewChatOutlineRegular,{size:16}),onActivate:()=>{C(e.key,!0),n()}}:void 0}):/* @__PURE__ */ (0,s.jsx)(ve,{newShortcut:j.find(e=>e.id===`session.new`),group:e,home:D,t:O,onToggle:()=>{Ce(e)},onCreate:()=>{e.workspaceId!==void 0&&(C(e.key,e.expanded),n(e.workspaceId))},drag:m,actions:e.workspaceId===void 0?void 0:{rename:()=>{
|
|
15
|
+
default:return be(e.pendingInteraction)}if(r!==void 0)return n===void 0?[r]:[r,n];if(e.running){let e={state:`ongoing`,label:t(`status.running`)};return n===void 0?[e]:[e,n]}return n===void 0?e.completed?[{state:`done`,label:t(`status.completed`)}]:[{state:`idle`,label:t(`status.idle`)}]:[n]}function Se({statuses:e}){return/* @__PURE__ */ (0,s.jsxs)(s.Fragment,{children:[/* @__PURE__ */ (0,s.jsx)(o.StateDot,{state:e[0].state,size:e[0].state===`ongoing`?16:void 0}),e.map(e=>/* @__PURE__ */ (0,s.jsx)(`span`,{className:q.visuallyHidden,children:e.label},e.label))]})}function Ce({node:e,now:t,renderSlot:n,t:r}){let i=xe(e,r).filter(t=>!e.archived||t.state!==`done`&&t.state!==`idle`);return/* @__PURE__ */ (0,s.jsxs)(`div`,{className:q.hoverContent,children:[/* @__PURE__ */ (0,s.jsx)(`div`,{className:q.hoverTitle,children:me(e,r)}),!e.blank&&/* @__PURE__ */ (0,s.jsx)(`div`,{className:q.hoverTime,children:ge(e.updatedAt,t,r)}),n(`sidebar.session.row.hover`,{sessionId:e.id}),i.map(e=>/* @__PURE__ */ (0,s.jsxs)(`div`,{className:q.hoverStatus,children:[/* @__PURE__ */ (0,s.jsx)(o.StateDot,{state:e.state}),/* @__PURE__ */ (0,s.jsx)(`span`,{children:e.label})]},e.label)),e.archived&&/* @__PURE__ */ (0,s.jsxs)(`div`,{className:K(q.hoverStatus,q.hoverArchived),children:[/* @__PURE__ */ (0,s.jsx)(o.IconArchiveOutlineRegular,{size:16}),/* @__PURE__ */ (0,s.jsx)(`span`,{children:r(`row.archived`)})]})]})}function we({result:e,currentId:t,onOpen:n,onUnarchive:r,t:i}){let a=e.id===t,c=xe(e,i),l=c[0];return/* @__PURE__ */ (0,s.jsxs)(`div`,{className:K(q.searchResultRow,a&&q.selected,e.archived&&q.archived),role:`treeitem`,"aria-selected":a,"aria-description":e.archived?i(`toast.archivedNotOpenable`):void 0,onClick:()=>{n(e.id)},children:[/* @__PURE__ */ (0,s.jsxs)(`span`,{className:q.searchResultHeading,children:[/* @__PURE__ */ (0,s.jsx)(`span`,{className:q.slot}),/* @__PURE__ */ (0,s.jsx)(`span`,{className:q.searchResultTitle,children:e.title||i(`session.untitled`)}),!e.archived&&l.state!==`idle`&&/* @__PURE__ */ (0,s.jsx)(`span`,{className:q.timeStatus,"data-session-status":l.state,children:/* @__PURE__ */ (0,s.jsx)(Se,{statuses:c})}),e.archived&&/* @__PURE__ */ (0,s.jsx)(`span`,{className:q.rowActions,children:/* @__PURE__ */ (0,s.jsx)(o.Tooltip,{label:i(`actions.unarchive`),side:`bottom`,align:`end`,delayMs:500,children:/* @__PURE__ */ (0,s.jsx)(`button`,{type:`button`,className:q.iconButton,"aria-label":i(`menu.unarchiveSession`),onClick:t=>{t.stopPropagation(),r(e.id)},children:/* @__PURE__ */ (0,s.jsx)(o.IconUnarchiveOutlineRegular,{size:16})})})})]}),/* @__PURE__ */ (0,s.jsxs)(`span`,{className:q.searchResultMeta,children:[/* @__PURE__ */ (0,s.jsx)(`span`,{className:q.searchResultWorkspace,children:e.workspace||i(`group.ungrouped`)}),e.snippet!==void 0&&/* @__PURE__ */ (0,s.jsx)(`span`,{className:q.searchResultSnippet,children:e.snippet})]})]})}function Te({node:e,rowKey:t=`session:${e.id}`,currentId:n,now:r,onOpen:i,onRenameRequest:c,renderSlot:l,onReveal:u,drag:d,t:f}){let p=e,m=me(e,f),h=e.id===n,g=xe(e,f),_=g[0],v=!p.archived&&_.state!==`idle`,y=d!==void 0&&!p.blank&&!p.archived,b=p.blank?void 0:p.reference,S=y||b!==void 0,C=(0,a.useRef)(!1),[w,T]=(0,a.useState)(!1),[E,D]=(0,a.useState)(null),O=(0,a.useMemo)(()=>[w,T],[w]),k=(0,a.useRef)(null);(0,a.useEffect)(()=>{u!==void 0&&(k.current?.scrollIntoView({block:`nearest`}),u())},[u]);let A=/* @__PURE__ */ (0,s.jsxs)(`div`,{ref:k,"data-row-key":t,className:K(q.sessionRow,h&&q.selected,w&&q.menuOpen,p.archived&&q.archived,d?.marker===`before`&&q.dropBefore,d?.marker===`after`&&q.dropAfter),role:`treeitem`,"aria-selected":h,"aria-current":h?`page`:void 0,tabIndex:-1,onContextMenu:e=>{p.blank||e.target.closest(`button`)||(e.preventDefault(),D(new DOMRect(e.clientX,e.clientY,0,0)),T(!0))},onKeyDown:t=>{t.target!==t.currentTarget||p.blank||(C.current=!1,t.key===`ContextMenu`||t.shiftKey&&t.key===`F10`?(t.preventDefault(),D(null),T(!0)):t.key===`F2`&&!p.archived&&(t.preventDefault(),c(e.id,p.title)))},"aria-description":p.archived?f(`toast.archivedNotOpenable`):void 0,onPointerDown:()=>{C.current=!1},onClick:()=>{C.current||i(e.id)},draggable:S,onDragStart:S?t=>{C.current=!0,t.dataTransfer.effectAllowed=b===void 0?`move`:y?`copyMove`:`copy`,t.dataTransfer.setData(`text/plain`,b===void 0?e.id:x(b).clipboardText),b!==void 0&&t.dataTransfer.setData(`application/x-codexhost-thread-reference`,JSON.stringify(b)),y&&d?.start()}:void 0,onDragEnd:S?e=>d?.end(e.dataTransfer.dropEffect===`copy`):void 0,onDragOver:d===void 0?void 0:e=>{d.active&&(e.preventDefault(),e.dataTransfer.dropEffect=`move`,d.hover(ve(e)))},onDrop:d===void 0?void 0:e=>{d.active&&(e.preventDefault(),d.drop(ve(e)))},children:[/* @__PURE__ */ (0,s.jsxs)(`span`,{className:q.slot,children:[l(`sidebar.session.row.identity`,{sessionId:e.id}),/* @__PURE__ */ (0,s.jsx)(`span`,{className:q.statusOverlay,children:!p.archived&&!p.blank&&!v&&l(`sidebar.session.row.leading`,{sessionId:e.id})})]}),/* @__PURE__ */ (0,s.jsx)(`span`,{"data-session-title":!0,className:q.title,onDoubleClick:p.blank?void 0:t=>{t.stopPropagation(),c(e.id,p.title)},children:m}),/* @__PURE__ */ (0,s.jsxs)(`span`,{className:q.trailing,children:[!p.blank&&/* @__PURE__ */ (0,s.jsx)(`span`,{className:K(q.time,v&&q.timeStatus),"data-session-status":v?_.state:void 0,children:v?/* @__PURE__ */ (0,s.jsxs)(s.Fragment,{children:[/* @__PURE__ */ (0,s.jsx)(Se,{statuses:g}),_.trailingLabel!==void 0&&/* @__PURE__ */ (0,s.jsx)(`span`,{"aria-hidden":`true`,children:_.trailingLabel})]}):he(p.updatedAt,r,f)}),!p.blank&&/* @__PURE__ */ (0,s.jsxs)(`span`,{className:q.rowActions,onClick:e=>{e.stopPropagation()},children:[/* @__PURE__ */ (0,s.jsx)(o.Menu,{open:w,onClose:()=>{T(!1)},portal:!0,autoFocus:!0,phoneSidebarTitle:m,phoneSidebarFooterBackLabel:f(`session.backToList`),phoneSidebarDetails:/* @__PURE__ */ (0,s.jsx)(`div`,{className:q.phoneDetails,children:/* @__PURE__ */ (0,s.jsx)(Ce,{node:e,now:r,renderSlot:l,t:f})}),getAnchorRect:E===null?void 0:()=>E,anchor:/* @__PURE__ */ (0,s.jsx)(`button`,{type:`button`,className:q.iconButton,"aria-label":f(`actions.session.aria`,{name:m}),"aria-haspopup":`menu`,"aria-expanded":w,onClick:()=>{D(null),T(e=>!e)},children:/* @__PURE__ */ (0,s.jsx)(o.IconEllipsisOutlineRegular,{})}),children:l(`sidebar.workspaces.session.menu.item`,{sessionId:e.id,displayTitle:p.title},{hookContext:O})}),/* @__PURE__ */ (0,s.jsx)(`span`,{className:q.quickActions,children:l(`sidebar.workspaces.session.row.action`,{sessionId:e.id,displayTitle:p.title})})]})]})]});return/* @__PURE__ */ (0,s.jsx)(o.HoverCard,{anchor:A,content:/* @__PURE__ */ (0,s.jsx)(Ce,{node:e,now:r,renderSlot:l,t:f}),openDelayMs:800,disabled:w||d?.active===!0,copyText:p.blank||p.title===``?void 0:p.title,copyLabel:f(`copy`),copiedLabel:f(`hover.copied`)})}let Y=`@deepseek-ai/dsh-client-ui-workspace/AnimatedRows.module.css`;if(typeof document<`u`&&document.querySelector(`style[data-plugin-css=`+JSON.stringify(Y)+`]`)===null){let e=document.createElement(`style`);e.dataset.plugin=`@deepseek-ai/dsh-client-ui-workspace`,e.dataset.pluginCss=Y,e.textContent=`.GjRMDa_exits{contain:strict;pointer-events:none;position:absolute;inset:0;overflow:clip}`,document.head.appendChild(e)}var Ee={exits:`GjRMDa_exits`};function De(e){return[...e.querySelectorAll(`[data-row-key]`)].filter(e=>e.offsetHeight>0&&!e.closest(`[inert]`))}function Oe(e){if(!e)return;let t=De(e),n=document.activeElement?.closest(`[data-row-key]`),r=t.find(e=>e===n)??t.find(e=>e.getAttribute(`aria-selected`)===`true`)??t[0];for(let e of t)e.tabIndex=e===r?0:-1}function X(e){if(e.defaultPrevented||e.nativeEvent.isComposing||e.altKey||e.ctrlKey||e.metaKey||e.shiftKey)return;let t=e.currentTarget,n=e.target;if(!(n instanceof HTMLElement)||!n.matches(`[data-row-key]`)||!t.contains(n))return;let r=De(t),i=r.indexOf(n);if(i<0)return;let a=n.matches(`[role="treeitem"][aria-expanded]`),o;switch(e.key){case`ArrowDown`:o=r[i+1];break;case`ArrowUp`:o=r[i-1];break;case`Home`:o=r[0];break;case`End`:o=r.at(-1);break;case`ArrowRight`:a&&n.getAttribute(`aria-expanded`)===`false`?n.click():a&&(o=r[i+1]);break;case`ArrowLeft`:if(a&&n.getAttribute(`aria-expanded`)===`true`)n.click();else{let e=n.closest(`[data-sidebar-group]`),t=e?.querySelector(`[data-row-key^="workspace:"]`);t===n&&(e=e?.parentElement?.closest(`[data-sidebar-group]`)??null,t=e?.querySelector(`[data-row-key^="workspace:"]`)),o=t??void 0}break;case`Enter`:case` `:n.click();break;default:return}e.preventDefault(),o&&(o.focus({preventScroll:!0}),o.scrollIntoView({block:`nearest`}),Oe(t))}function ke(e,t){return e.rowKeys.length===t.rowKeys.length&&e.rowKeys.every((e,n)=>e===t.rowKeys[n])}function Ae(e,t){return e.bottom>t.top&&e.top<t.bottom&&e.right>t.left&&e.left<t.right}var je=class extends a.Component{armed=!1;list=(0,a.createRef)();overlay=(0,a.createRef)();movements=/* @__PURE__ */ new Map;exits=/* @__PURE__ */ new Map;componentDidMount(){Oe(this.list.current)}getSnapshotBeforeUpdate(e){let t=this.list.current;if(!this.armed||ke(e,this.props)||e.resetKey!==this.props.resetKey||!e.ready||!this.props.ready||t===null||typeof t.animate!=`function`||window.matchMedia(`(prefers-reduced-motion: reduce)`).matches)return null;let n=t.getBoundingClientRect(),r=this.readPositions(),i=new Set(this.props.rowKeys),a=/* @__PURE__ */ new Map;for(let[e,t]of r){if(i.has(e)||!Ae(t.rect,n))continue;let r=t.element.cloneNode(!0);r.removeAttribute(`data-row-key`),r.inert=!0,r.style.setProperty(`--dsh-workspace-indent`,getComputedStyle(t.element).getPropertyValue(`--dsh-workspace-indent`)),a.set(e,{...t,element:r})}return{positions:r,removed:a}}componentDidUpdate(e,t,n){if(Oe(this.list.current),n===null){(!ke(e,this.props)||e.resetKey!==this.props.resetKey||e.ready!==this.props.ready)&&this.clear();return}this.cancelMovements();let r=this.list.current,i=this.overlay.current,a=r.getBoundingClientRect(),o=i.getBoundingClientRect(),s=this.readPositions();for(let[e,t]of s){this.removeExit(e);let r=n.positions.get(e);if(!Ae(t.rect,a)&&(r===void 0||!Ae(r.rect,a)))continue;if(r===void 0){this.move(t.element,[{opacity:0},{opacity:1}],100);continue}let i=r.rect.left-t.rect.left,o=r.rect.top-t.rect.top;(i!==0||o!==0||r.opacity!==1)&&this.move(t.element,[{transform:`translate(${String(i)}px, ${String(o)}px)`,opacity:r.opacity},{transform:`translate(0, 0)`,opacity:1}],200)}for(let[e,t]of n.removed){let{element:n}=t;this.removeExit(e),Object.assign(n.style,{position:`absolute`,margin:`0`,transform:`none`,boxSizing:`border-box`,left:`${String(t.rect.left-o.left)}px`,top:`${String(t.rect.top-o.top)}px`,width:`${String(t.rect.width)}px`,height:`${String(t.rect.height)}px`}),i.append(n);let r=n.animate([{opacity:t.opacity},{opacity:0}],{duration:100,easing:`ease-out`,fill:`forwards`});this.exits.set(e,{element:n,animation:r}),r.onfinish=()=>{this.removeExit(e)}}}componentWillUnmount(){this.clear()}readPositions(){let e=this.list.current.querySelectorAll(`[data-row-key]`);return new Map(Array.from(e,e=>[e.dataset.rowKey,{element:e,rect:e.getBoundingClientRect(),opacity:this.movements.has(e)?Number(getComputedStyle(e).opacity):1}]))}move(e,t,n){let r=e.animate(t,{duration:n,easing:`ease-out`});this.movements.set(e,r),r.onfinish=()=>{this.movements.delete(e),r.cancel()}}cancelMovements(){for(let e of this.movements.values())e.onfinish=null,e.cancel();this.movements.clear()}removeExit(e){let t=this.exits.get(e);t!==void 0&&(t.animation.onfinish=null,t.animation.cancel(),t.element.remove(),this.exits.delete(e))}clear(){this.cancelMovements();for(let e of this.exits.keys())this.removeExit(e)}render(){return/* @__PURE__ */ (0,s.jsxs)(s.Fragment,{children:[/* @__PURE__ */ (0,s.jsx)(`div`,{ref:this.list,className:this.props.className,role:`tree`,"aria-label":this.props.label,onKeyDown:X,onFocusCapture:()=>Oe(this.list.current),onPointerDownCapture:()=>{this.armed=!0},onKeyDownCapture:()=>{this.armed=!0},children:this.props.children}),/* @__PURE__ */ (0,s.jsx)(`div`,{ref:this.overlay,className:Ee.exits,"aria-hidden":`true`})]})}};let Z=`@deepseek-ai/dsh-client-ui-workspace/SectionHeading.module.css`;if(typeof document<`u`&&document.querySelector(`style[data-plugin-css=`+JSON.stringify(Z)+`]`)===null){let e=document.createElement(`style`);e.dataset.plugin=`@deepseek-ai/dsh-client-ui-workspace`,e.dataset.pluginCss=Z,e.textContent=`.UGH-ja_heading{border-radius:var(--dsw-radius-sm);min-height:30px;color:var(--dsw-alias-label-tertiary);align-items:center;gap:6px;padding:0 8px;font-size:14px;font-weight:500;line-height:21px;display:flex}.UGH-ja_heading[data-row-key]{cursor:pointer}.UGH-ja_heading[data-row-key]:hover{background:var(--dsw-alias-interactive-bg-hover)}.UGH-ja_heading[data-row-key]:focus-visible,.UGH-ja_action:focus-visible{outline:2px solid var(--dsw-focus-ring-color,var(--dsw-alias-state-business-primary));outline-offset:-2px}.UGH-ja_title{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.UGH-ja_chevron,.UGH-ja_collapsed{flex-shrink:0}.UGH-ja_collapsed{transform:rotate(-90deg)}.UGH-ja_action{border-radius:var(--dsw-radius-sm);width:24px;height:24px;color:inherit;cursor:pointer;background:0 0;border:none;place-items:center;margin-inline-start:auto;padding:0;display:grid}.UGH-ja_action:hover{background:var(--dsw-alias-interactive-bg-hover)}@media (pointer:coarse){.UGH-ja_heading{min-height:44px}.UGH-ja_action{width:44px;height:44px}}`,document.head.appendChild(e)}var Me={action:`UGH-ja_action`,chevron:`UGH-ja_chevron`,collapsed:`UGH-ja_collapsed`,heading:`UGH-ja_heading`,title:`UGH-ja_title`};function Ne({label:e,icon:t,expanded:n,onToggle:r,rowKey:i,action:a}){let c=n!==void 0&&r!==void 0&&i!==void 0,l=/* @__PURE__ */ (0,s.jsxs)(s.Fragment,{children:[t,/* @__PURE__ */ (0,s.jsx)(`span`,{className:Me.title,children:e}),c&&/* @__PURE__ */ (0,s.jsx)(o.IconChevronDownOutlineRegular,{className:n?Me.chevron:Me.collapsed,size:12}),a!==void 0&&/* @__PURE__ */ (0,s.jsx)(o.Tooltip,{label:a.label,portal:!0,children:/* @__PURE__ */ (0,s.jsx)(`button`,{type:`button`,className:Me.action,"aria-label":a.label,onClick:e=>{e.stopPropagation(),a.onActivate()},children:a.icon})})]});return c?/* @__PURE__ */ (0,s.jsx)(`div`,{className:Me.heading,role:`treeitem`,tabIndex:-1,"data-row-key":i,"aria-label":e,"aria-expanded":n,onClick:r,children:l}):/* @__PURE__ */ (0,s.jsx)(`div`,{className:Me.heading,children:l})}let Pe=`@deepseek-ai/dsh-client-ui-workspace/PinnedSection.module.css`;if(typeof document<`u`&&document.querySelector(`style[data-plugin-css=`+JSON.stringify(Pe)+`]`)===null){let e=document.createElement(`style`);e.dataset.plugin=`@deepseek-ai/dsh-client-ui-workspace`,e.dataset.pluginCss=Pe,e.textContent=`.AWelmG_section{margin-bottom:8px}.AWelmG_section>[data-row-key]+[data-row-key]{margin-top:2px}`,document.head.appendChild(e)}var Fe={section:`AWelmG_section`};function Ie({rows:e,currentId:t,onOpen:n,onRenameRequest:r,renderSlot:i,t:a,revealSessionId:c,onSessionRevealed:l,expanded:u,onToggle:d}){return e.length===0?null:/* @__PURE__ */ (0,s.jsxs)(`div`,{role:`group`,"aria-label":a(`section.pinned`),className:Fe.section,"data-sidebar-pinned":!0,children:[/* @__PURE__ */ (0,s.jsx)(Ne,{label:a(`section.pinned`),icon:/* @__PURE__ */ (0,s.jsx)(o.IconPinOutlineRegular,{size:14}),expanded:u,onToggle:d,rowKey:`section:${z}`}),u&&e.map(e=>/* @__PURE__ */ (0,s.jsx)(Te,{node:e,currentId:t,now:Date.now(),onOpen:n,onRenameRequest:r,renderSlot:i,onReveal:e.id===c?()=>l(e.id):void 0,t:a},e.id))]})}function Le(e,t,n,r){let i=0,a=e.filter(e=>e.blank||e.pinned||e.running||e.runningSubagentCount>0?!0:i++<t||e.id===n||e.id===r);return{rows:a,hiddenCount:e.length-a.length}}function Re(e,t,n){let r=e.filter((e,r)=>r<t||n.has(e.key));return{rows:r,hiddenCount:e.length-r.length}}let ze=`@deepseek-ai/dsh-client-ui-workspace/WorkspacePicker.module.css`;if(typeof document<`u`&&document.querySelector(`style[data-plugin-css=`+JSON.stringify(ze)+`]`)===null){let e=document.createElement(`style`);e.dataset.plugin=`@deepseek-ai/dsh-client-ui-workspace`,e.dataset.pluginCss=ze,e.textContent=`._23OUcW_modalAction{min-width:72px}._23OUcW_modalError,._23OUcW_menuStatus{margin-top:8px;font-size:12px;line-height:18px}._23OUcW_modalError{color:var(--dsw-alias-state-error-primary)}._23OUcW_menuStatus{color:var(--dsw-alias-label-secondary)}`,document.head.appendChild(e)}var Be={menuStatus:`_23OUcW_menuStatus`,modalAction:`_23OUcW_modalAction`,modalError:`_23OUcW_modalError`};let Ve=`::add-workspace`,He=`::no-workspace`;function Ue({t:e,open:t,anchorRef:n,useWorkspaces:r,createWorkspace:i,useDirectoryFlow:c,renderDirectoryFlow:l,onPick:u,onPickNone:d,onClose:f,addOnly:p=!1,onBusyChange:m,side:h=`bottom`,selectedId:g}){let _=r(e=>e),v=_.items,y=(0,a.useCallback)(()=>n?.current?.getBoundingClientRect()??null,[n]),[b,x]=(0,a.useState)(!1),[S,C]=(0,a.useState)(null),[w,T]=(0,a.useState)(!1),E=(0,o.usePhoneSidebar)(),D=(0,a.useRef)(!1),[O,k]=(0,a.useState)(!1),A=w||O;(0,a.useEffect)(()=>{m?.(A)},[A,m]);let j=c(e=>e);(0,a.useEffect)(()=>{w&&!j&&T(!1)},[w,j]);let ee=j?[{id:Ve,label:e(`menu.addWorkspace`),icon:/* @__PURE__ */ (0,s.jsx)(o.IconPlusOutlineRegular,{size:16}),disabled:A}]:[],M=!p&&v.length>0,N=d!==void 0&&!p,P=N?[{id:He,label:e(`menu.noWorkspace`),disabled:A}]:[],te=M?[...P,...v.map(t=>({id:t.workspaceId,label:fe(t.title,e(`workspace.defaultName`)),icon:/* @__PURE__ */ (0,s.jsx)(o.IconFolderCloseRegular,{size:16}),disabled:A}))]:[...P,...ee],ne=te.length===0,re=()=>{x(!1),C(null)},ie=e=>i({path:e}).then(e=>{T(!1),u(e.workspaceId)}).catch(e=>{C(e instanceof Error?e.message:String(e)),T(!1),x(!0)}),F=(0,a.useCallback)(()=>{D.current=E?.open===!0,f(),x(!1),C(null),T(!0)},[f,E?.open]),I=p||_.phase===`ready`,L=!N&&!M&&I&&ee.length===1;(0,a.useEffect)(()=>{t&&L&&!A&&F()},[t,L,A,F]);let R={open:w,busy:O,onPicked:e=>{k(!0),ie(e).finally(()=>{k(!1)})},onCancel:()=>{T(!1)},onError:e=>{T(!1),C(e),x(!0)}},z=e=>{e===He?d?.():e===Ve?F():u(e)};return/* @__PURE__ */ (0,s.jsxs)(s.Fragment,{children:[/* @__PURE__ */ (0,s.jsx)(o.Menu,{open:t&&!L&&!ne,anchor:null,items:te,...M?{footer:ee}:{},selectedId:g??(N?He:void 0),onSelect:z,onClose:f,side:h,portal:!0,getAnchorRect:y}),t&&!L&&!ne&&_.phase===`pending`&&/* @__PURE__ */ (0,s.jsx)(`div`,{className:Be.menuStatus,role:`status`,children:e(`picker.loading`)}),l(R),/* @__PURE__ */ (0,s.jsx)(o.Modal,{phoneSidebar:!0,phoneSidebarOrigin:D.current,open:b,onClose:re,closeLabel:e(`close`),title:e(`folderError.title`),footer:/* @__PURE__ */ (0,s.jsxs)(s.Fragment,{children:[/* @__PURE__ */ (0,s.jsx)(o.Button,{variant:`outline`,className:Be.modalAction,onClick:re,children:e(`cancel`)}),/* @__PURE__ */ (0,s.jsx)(o.Button,{variant:`primary`,className:Be.modalAction,disabled:!j,onClick:F,children:e(`folderError.retry`)})]}),children:/* @__PURE__ */ (0,s.jsx)(`div`,{className:Be.modalError,role:`alert`,children:S})})]})}function We({open:e,anchorRef:t,useWorkspaces:n,selectedId:r,onPick:i,onClose:a,createWorkspace:o,useDirectoryFlow:c,renderSlot:l,t:u}){let d=n(e=>e.canStartProjectless);return/* @__PURE__ */ (0,s.jsx)(Ue,{t:u,open:e,anchorRef:t,useWorkspaces:n,createWorkspace:o,useDirectoryFlow:c,renderDirectoryFlow:e=>l(`conversation.hero.workspace.directoryFlow`,e),selectedId:r,onPick:i,...d?{onPickNone:()=>i(null)}:{},onClose:a})}let Ge=`@deepseek-ai/dsh-client-ui-workspace/WorkspaceBrowser.module.css`;if(typeof document<`u`&&document.querySelector(`style[data-plugin-css=`+JSON.stringify(Ge)+`]`)===null){let e=document.createElement(`style`);e.dataset.plugin=`@deepseek-ai/dsh-client-ui-workspace`,e.dataset.pluginCss=Ge,e.textContent=`._0cPX5a_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}[data-phone-drawer] ._0cPX5a_root{--dsh-session-list-scrollbar-width:0px}[data-phone-drawer] ._0cPX5a_list{scrollbar-gutter:auto}._0cPX5a_root._0cPX5a_rail{padding-right:0}._0cPX5a_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}._0cPX5a_iconButton:focus-visible,._0cPX5a_searchButton:focus-visible,._0cPX5a_clearButton:focus-visible{outline:var(--dsw-focus-ring-width) solid var(--dsw-focus-ring-color,var(--dsw-alias-state-business-primary));outline-offset:-2px}._0cPX5a_iconButton:hover{background:var(--dsw-alias-interactive-bg-hover)}._0cPX5a_viewOptionsMenu{min-width:200px}._0cPX5a_sectionHeader{box-sizing:border-box;height:36px;color:var(--dsw-alias-label-tertiary);border-radius:6px;flex:none;justify-content:flex-end;align-items:center;gap:4px;margin-bottom:6px;padding-left:4px;display:flex;overflow:hidden}._0cPX5a_root:not(._0cPX5a_rail) ._0cPX5a_sectionHeader{margin-top:2px;margin-right:-4px}._0cPX5a_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;font-size:14px;font-weight:500;line-height:21px;overflow:hidden}._0cPX5a_sectionLabelHidden{opacity:0;visibility:hidden;max-width:0;margin-right:-4px;transition-delay:0s,0s,0s,0s,.18s;transform:translate(-4px)}._0cPX5a_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}._0cPX5a_searchSlotExpanded{max-width:100%;padding-left:0}._0cPX5a_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}._0cPX5a_headerActionsHidden{opacity:0;visibility:hidden;pointer-events:none;max-width:0;transition-delay:0s,0s,0s,.18s;transform:translate(4px)}._0cPX5a_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}._0cPX5a_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}._0cPX5a_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}._0cPX5a_searchExpanded ._0cPX5a_searchButton{width:28px;height:30px}._0cPX5a_searchButton:hover{background:var(--dsw-alias-interactive-bg-hover)}._0cPX5a_searchExpanded ._0cPX5a_searchButton:hover{background:0 0}._0cPX5a_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}._0cPX5a_searchExpanded ._0cPX5a_searchInput{opacity:1;pointer-events:auto;margin-left:-2px}._0cPX5a_searchInput::placeholder{color:var(--dsw-alias-label-tertiary)}._0cPX5a_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}._0cPX5a_clearButton:hover{background:var(--dsw-alias-interactive-bg-hover)}._0cPX5a_rail ._0cPX5a_sectionHeader{justify-content:flex-start;gap:0;margin-bottom:12px;padding-left:0}._0cPX5a_rail ._0cPX5a_headerActions{max-width:none}._0cPX5a_rail ._0cPX5a_iconButton{border-radius:var(--dsw-radius-md);width:36px;height:36px;color:var(--dsw-alias-label-primary)}._0cPX5a_rail ._0cPX5a_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}._0cPX5a_rail ._0cPX5a_searchButton{border-radius:var(--dsw-radius-md);width:36px;height:36px;color:var(--dsw-alias-label-primary)}._0cPX5a_rail ._0cPX5a_searchButton:hover{background:var(--dsw-alias-interactive-bg-hover)}._0cPX5a_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}._0cPX5a_rail ._0cPX5a_listArea{margin-left:0;margin-right:0;padding-left:0}._0cPX5a_treeBody{flex-direction:column;flex:1;min-height:0;display:flex;position:relative}._0cPX5a_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] ._0cPX5a_fade,[data-phone-drawer] ._0cPX5a_fade{display:none}._0cPX5a_wide{animation:_0cPX5a_wide-in .2s var(--ds-ease-in-out)}@keyframes _0cPX5a_wide-in{0%{opacity:0}}._0cPX5a_list{overscroll-behavior-y:contain;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;scroll-padding-block:8px;overflow-y:auto}._0cPX5a_flatList>*+*,._0cPX5a_searchTree>[role=treeitem]+[role=treeitem],._0cPX5a_groupSection>*+*,._0cPX5a_groupSessions>*+*{margin-top:2px}._0cPX5a_searchStatus{color:var(--dsw-alias-label-tertiary);padding:10px 12px;font-size:12px;line-height:18px}._0cPX5a_skeletonRow{box-sizing:border-box;align-items:flex-start;gap:8px;min-height:48px;padding:6px 8px 7px;display:flex}._0cPX5a_skeletonDot{corner-shape:round;border-radius:50%;flex:none;width:16px;height:16px}._0cPX5a_skeletonBars{flex-direction:column;flex:1;gap:6px;min-width:0;display:flex}._0cPX5a_skeletonDot,._0cPX5a_skeletonBar{background:var(--dsw-alias-bg-skeleton);animation:2s cubic-bezier(.36,0,.64,1) infinite _0cPX5a_search-skeleton}._0cPX5a_skeletonBar{border-radius:var(--dsw-radius-xs);width:65%;height:16px}._0cPX5a_skeletonBarWide{width:90%;height:13px}@keyframes _0cPX5a_search-skeleton{0%{opacity:1}40%{opacity:.6}80%,to{opacity:1}}._0cPX5a_groupSection{position:relative}._0cPX5a_groupSection+._0cPX5a_groupSection{margin-top:4px}._0cPX5a_listTopDropIndicator,._0cPX5a_workspaceDropBefore:before,._0cPX5a_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}._0cPX5a_listTopDropIndicator{top:-8px;left:0;right:var(--dsh-session-list-edge-inset)}._0cPX5a_listTopDropActive>._0cPX5a_workspaceDropBefore:first-child:before{display:none}._0cPX5a_workspaceDropBefore:before{top:-8px}._0cPX5a_workspaceDropAfter:after{bottom:-8px}._0cPX5a_sessionOverflowButton{width:100%;height:32px;padding:0 12px 0 calc(32px + var(--dsh-workspace-indent,0px));cursor:pointer;text-align:left;color:var(--dsw-alias-label-tertiary);background:0 0;border:none;border-radius:6px;font-size:12px}._0cPX5a_sessionOverflowButton[data-row-key=overflow\\:workspaces]{padding-inline-start:8px}._0cPX5a_groupSessions>._0cPX5a_sessionOverflowButton{margin-top:0;padding-inline-start:calc(8px + var(--dsh-workspace-indent,0px))}._0cPX5a_sessionOverflowButton:hover{background:var(--dsw-alias-interactive-bg-hover);color:var(--dsw-alias-label-secondary)}._0cPX5a_sessionOverflowButton:focus-visible{outline:2px solid var(--dsw-focus-ring-color,var(--dsw-alias-state-business-primary));outline-offset:-2px}@media (hover:none),(pointer:coarse){._0cPX5a_sessionOverflowButton,._0cPX5a_root:not(._0cPX5a_rail) ._0cPX5a_iconButton{min-height:44px}._0cPX5a_root:not(._0cPX5a_rail) ._0cPX5a_sectionHeader{height:44px}}._0cPX5a_empty{color:var(--dsw-alias-label-tertiary);padding:16px 12px;font-size:13px}._0cPX5a_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}._0cPX5a_emptyState>svg{color:var(--dsw-alias-label-caption);margin-bottom:4px}._0cPX5a_emptyAction{cursor:pointer;color:var(--dsw-alias-link);background:0 0;border:none;padding:0;font-size:13px;line-height:20px}._0cPX5a_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}._0cPX5a_renameInput:disabled{color:var(--dsw-alias-label-dimmed)}._0cPX5a_renameError{color:var(--dsw-alias-state-error-primary);margin-top:8px;font-size:12px;line-height:18px}._0cPX5a_deleteAction:not(:disabled){color:var(--dsw-alias-state-error-primary)}._0cPX5a_deleteStatus{color:var(--dsw-alias-label-secondary);font-size:12px;line-height:18px}._0cPX5a_archiveActivity{color:var(--dsw-alias-label-primary);margin:0 0 8px;padding-left:18px;font-size:13px;line-height:20px}._0cPX5a_archiveActivity li{overflow-wrap:anywhere}@media (prefers-reduced-motion:reduce){._0cPX5a_wide,._0cPX5a_skeletonDot,._0cPX5a_skeletonBar{animation:none}._0cPX5a_search,._0cPX5a_sectionLabel,._0cPX5a_searchSlot,._0cPX5a_searchInput,._0cPX5a_headerActions{transition:none}}`,document.head.appendChild(e)}var Q={archiveActivity:`_0cPX5a_archiveActivity`,clearButton:`_0cPX5a_clearButton`,deleteAction:`_0cPX5a_deleteAction`,deleteStatus:`_0cPX5a_deleteStatus`,empty:`_0cPX5a_empty`,emptyAction:`_0cPX5a_emptyAction`,emptyState:`_0cPX5a_emptyState`,fade:`_0cPX5a_fade`,flatList:`_0cPX5a_flatList`,groupSection:`_0cPX5a_groupSection`,groupSessions:`_0cPX5a_groupSessions`,headerActions:`_0cPX5a_headerActions`,headerActionsHidden:`_0cPX5a_headerActionsHidden`,iconButton:`_0cPX5a_iconButton`,list:`_0cPX5a_list`,listArea:`_0cPX5a_listArea`,listTopDropActive:`_0cPX5a_listTopDropActive`,listTopDropIndicator:`_0cPX5a_listTopDropIndicator`,rail:`_0cPX5a_rail`,renameError:`_0cPX5a_renameError`,renameInput:`_0cPX5a_renameInput`,root:`_0cPX5a_root`,search:`_0cPX5a_search`,"search-skeleton":`_0cPX5a_search-skeleton`,searchButton:`_0cPX5a_searchButton`,searchExpanded:`_0cPX5a_searchExpanded`,searchInput:`_0cPX5a_searchInput`,searchSlot:`_0cPX5a_searchSlot`,searchSlotExpanded:`_0cPX5a_searchSlotExpanded`,searchStatus:`_0cPX5a_searchStatus`,searchTree:`_0cPX5a_searchTree`,sectionHeader:`_0cPX5a_sectionHeader`,sectionLabel:`_0cPX5a_sectionLabel`,sectionLabelHidden:`_0cPX5a_sectionLabelHidden`,sessionOverflowButton:`_0cPX5a_sessionOverflowButton`,skeletonBar:`_0cPX5a_skeletonBar`,skeletonBarWide:`_0cPX5a_skeletonBarWide`,skeletonBars:`_0cPX5a_skeletonBars`,skeletonDot:`_0cPX5a_skeletonDot`,skeletonRow:`_0cPX5a_skeletonRow`,treeBody:`_0cPX5a_treeBody`,viewOptionsMenu:`_0cPX5a_viewOptionsMenu`,wide:`_0cPX5a_wide`,"wide-in":`_0cPX5a_wide-in`,workspaceDropAfter:`_0cPX5a_workspaceDropAfter`,workspaceDropBefore:`_0cPX5a_workspaceDropBefore`};function Ke(e){let t=e.replaceAll(`\0`,``);if(t.length<=500)return t;let n=500,r=t.charCodeAt(n-1),i=t.charCodeAt(n);return r>=55296&&r<=56319&&i>=56320&&i<=57343&&n--,t.slice(0,n)}function qe(e){(0,a.useEffect)(()=>{if(!e)return;let t=e=>{e.defaultPrevented||(e.preventDefault(),e.dataTransfer!==null&&(e.dataTransfer.dropEffect=`move`))},n=e=>{e.preventDefault()};return document.addEventListener(`dragover`,t),document.addEventListener(`drop`,n),()=>{document.removeEventListener(`dragover`,t),document.removeEventListener(`drop`,n)}},[e])}function Je({groupBy:e,orderBy:t,archivedFilter:n,onGroupPick:r,onOrderPick:i,onArchivedFilterPick:c,t:l}){let[u,d]=(0,a.useState)(!1),f=(0,o.usePhoneSidebar)();return/* @__PURE__ */ (0,s.jsx)(o.Menu,{phoneSidebarTitle:l(`viewOptions.label`),open:u,onClose:()=>{d(!1)},items:[{type:`label`,id:`group-by`,text:l(`groupBy.label`)},{id:`workspace`,label:l(`groupBy.workspace`),icon:/* @__PURE__ */ (0,s.jsx)(o.IconFolderCloseRegular,{})},{id:`workspace-tree`,label:l(`groupBy.workspaceTree`),icon:/* @__PURE__ */ (0,s.jsx)(o.IconWorkspaceTreeOutlineRegular,{})},{id:`flat`,label:l(`groupBy.flat`),icon:/* @__PURE__ */ (0,s.jsx)(o.IconFlatListOutlineRegular,{})},{type:`separator`,id:`order-by-separator`},{type:`label`,id:`order-by`,text:l(`orderBy.label`)},{id:`manual`,label:l(`orderBy.manual`),icon:/* @__PURE__ */ (0,s.jsx)(o.IconChevronsUpDownOutlineRegular,{})},{id:`updated`,label:l(`orderBy.updated`),icon:/* @__PURE__ */ (0,s.jsx)(o.IconClockOutlineRegular,{})},{type:`separator`,id:`archived-filter-separator`},{type:`label`,id:`filter-by`,text:l(`filterBy.label`)},{id:`hide-archived`,label:l(`viewOptions.hideArchived`),icon:/* @__PURE__ */ (0,s.jsx)(o.IconArchiveOffOutlineRegular,{})},{id:`show-archived`,label:l(`viewOptions.showArchived`),icon:/* @__PURE__ */ (0,s.jsx)(o.IconQueueOutlineRegular,{})},{id:`only-archived`,label:l(`viewOptions.onlyArchived`),icon:/* @__PURE__ */ (0,s.jsx)(o.IconArchiveCheckOutlineRegular,{})}],selectedIds:[e,t,{default:`hide-archived`,show:`show-archived`,only:`only-archived`}[n]],onSelect:e=>{e===`workspace`||e===`workspace-tree`||e===`flat`?r(e):e===`manual`||e===`updated`?i(e):e===`hide-archived`?c(`default`):e===`show-archived`?c(`show`):e===`only-archived`&&c(`only`),d(!1)},align:`end`,dense:!0,listClassName:Q.viewOptionsMenu,portal:!0,anchor:/* @__PURE__ */ (0,s.jsx)(o.Tooltip,{label:l(`viewOptions.label`),side:`bottom`,delayMs:500,children:/* @__PURE__ */ (0,s.jsx)(`button`,{type:`button`,className:K(Q.iconButton,Q.wide),"aria-label":l(`viewOptions.label`),"data-phone-sidebar-return":f!==null||void 0,onClick:()=>{d(e=>!e)},children:/* @__PURE__ */ (0,s.jsx)(o.IconSlidersTwoOutlineRegular,{})})})})}function Ye(e,t,n,r){let i=t.find(e=>e.id===n.sessionId),a=t.find(e=>e.id===r.id);if(i===void 0||a===void 0||i.blank||i.pinned!==n.pinned||a.pinned!==n.pinned||i.id===a.id||!e.includes(i.id))return;let o=t.filter(e=>e.pinned===n.pinned),s=o.findIndex(e=>e.id===i.id);if(o.filter(e=>e.id!==i.id).findIndex(e=>e.id===a.id)+ +(r.half===`after`)===s)return;let c=e.filter(e=>e!==i.id),l=c.indexOf(a.id);if(l!==-1)return c.splice(l+ +(r.half===`after`),0,i.id),D(c,t.find(e=>e.blank)?.id)}function Xe(e){let t=e.currentTarget.getBoundingClientRect();return e.clientY<t.top+t.height/2?`before`:`after`}function Ze({rowState:e,onLeaveArchivedOnly:t,t:n}){let r=e.archivedFilter===`only`;return/* @__PURE__ */ (0,s.jsxs)(`div`,{className:Q.emptyState,"data-row-key":`empty`,children:[r?/* @__PURE__ */ (0,s.jsx)(o.IconArchiveOutlineRegular,{size:24}):/* @__PURE__ */ (0,s.jsx)(o.IconQueueOutlineRegular,{size:24}),/* @__PURE__ */ (0,s.jsx)(`div`,{children:n(r?`empty.noneArchived`:`empty.none`)}),r&&/* @__PURE__ */ (0,s.jsx)(`button`,{type:`button`,className:Q.emptyAction,onClick:t,children:n(`empty.viewOthers`)})]})}function Qe({list:e,useSessionStatus:t,startSession:n,open:r,workspaces:i,ungroupedSessionIds:c,rowState:l,onLeaveArchivedOnly:u,workspaceReady:d,canStartProjectless:f,animationResetKey:p,usePanelInfo:m,onRenameRequest:h,onDeleteRequest:g,onSessionRenameRequest:_,renderSlot:v,insertWorkspaceBefore:y,nestWorkspaces:b,groupExpansion:x,setGroupExpanded:C,sectionExpansion:w,setSectionExpanded:T,setSessionOrder:E,home:D,t:O,revealSessionId:k,onSessionRevealed:A,shortcuts:j}){let ee=m(e=>e.activePanelId!==null),M=t(e=>e),N=ee?void 0:Object.values(e.byId).find(e=>(e.retainedBy.mainView??0)>0)?.id,P=k===void 0||!d?void 0:S(i,k),[ne,re]=(0,a.useState)({}),[F,I]=(0,a.useState)(null),R=(0,a.useRef)(!1),[B,V]=(0,a.useState)(null),se=(0,a.useRef)(!1),ce=F!==null||B!==null;qe(ce);let H=N===void 0||!d?void 0:S(i,N);(0,a.useEffect)(()=>{N===void 0||H===void 0||Object.hasOwn(x,H)||C(H,!0)},[N,H,C,x]);let U=(0,a.useMemo)(()=>{if(!b)return/* @__PURE__ */ new Map;let e=new Map(i.map(e=>[e.path,e.workspaceId])),t=[...e.keys()];return new Map(i.map(n=>{let r=L(n.path,t);return[n.workspaceId,r===void 0?void 0:e.get(r)]}))},[b,i]),le=(0,a.useMemo)(()=>{let e=new Set(U.values());return[...i.map(e=>e.workspaceId),``].filter(t=>x[t]??(t===``||e.has(t)))},[x,U,i]),W=(0,a.useMemo)(()=>{let t=te(e,i,l,M,{expandedGroups:le,excludePinned:!0});return f&&!t.some(e=>e.key===``)&&t.push({key:``,workspaceId:void 0,cwd:void 0,createdAt:void 0,label:``,sessionCount:0,expanded:le.includes(``),containsCurrent:!1,sessions:[]}),t},[e,i,l,M,le,f]);(0,a.useEffect)(()=>{for(let e=P;e!==void 0;e=U.get(e))(x[e]===!1||e===P&&x[e]!==!0)&&C(e,!0)},[x,U,P,C]);let G=Date.now(),ue=(e,t)=>{if(R.current)return;R.current=!0,I(null);let n=W.find(t=>t.key===e.accountKey);if(n===void 0||t.id===e.sessionId)return;let r=e.accountKey===``?c:i.find(t=>t.workspaceId===e.accountKey)?.sessionIds;if(r===void 0)return;let a=Le(n.sessions,ne[n.key]??5,N,k).rows,o=Ye(r,a,e,t);o!==void 0&&E(e.accountKey,o)},de=(e,t)=>{if(se.current)return;se.current=!0,V(null);let n=U.get(e.workspaceId),r=i.filter(e=>U.get(e.workspaceId)===n),a=r.findIndex(e=>e.workspaceId===t.id);if(a===-1)return;let o=t.half===`before`?t.id:r[a+1]?.workspaceId;if(o===e.workspaceId)return;let s=r.findIndex(t=>t.workspaceId===e.workspaceId),c=o===void 0?r.length:r.findIndex(e=>e.workspaceId===o);(s===-1||c!==s&&c!==s+1)&&y(e.workspaceId,o).catch(e=>{console.warn(`workspace reorder rejected:`,e)})},fe=(0,a.useMemo)(()=>{let e=new Set(W.map(e=>e.key)),t=/* @__PURE__ */ new Map;for(let n of W){let r=U.get(n.key);for(;r!==void 0&&!e.has(r);)r=U.get(r);let i=t.get(r);i===void 0?t.set(r,[n]):i.push(n)}return t},[W,U]),pe=fe.get(void 0)??[],q=pe[0]?.workspaceId!==void 0&&B?.over?.id===pe[0].workspaceId&&B.over.half===`before`,me=(0,a.useMemo)(()=>{let e=/* @__PURE__ */ new Map,t=(n,r)=>{e.set(n.key,r);for(let e of fe.get(n.key)??[])t(e,r)};for(let e of pe)t(e,e.key);return e},[fe,pe]),he=(0,a.useMemo)(()=>{let e=/* @__PURE__ */ new Set;for(let t of[H,P]){let n=t===void 0?void 0:me.get(t);n!==void 0&&n!==``&&e.add(n)}return e},[H,P,me]),[ge,_e]=(0,a.useState)(!1),J=pe.filter(e=>e.key!==``),ve=Re(J,5,he),be=ge?J:ve.rows,xe=oe(w,z),Se=oe(w,ae),Ce=e=>{e.expanded&&re(t=>({...t,[e.key]:5})),C(e.key,!e.expanded)},we=ie(e,l.pinnedSessionIds,l,M).filter(e=>e.pinned),Y=[];if(we.length>0&&(Y.push(`section:${z}`),xe))for(let e of we)Y.push(`session:${e.id}`);W.length===0&&we.length===0&&Y.push(`empty`);let Ee=(e,t)=>{let i=e.workspaceId,a=fe.get(e.key)??[],c=B!==null&&U.get(B.workspaceId)===U.get(e.key),l=Le(e.sessions,ne[e.key]??5,N,k);Y.push(`workspace:${e.key}`);let u=e.expanded?a.map(e=>Ee(e,t+1)):[],d=l.rows;for(let e of d)Y.push(`${i===void 0?`recent`:`session`}:${e.id}`);l.hiddenCount>0&&Y.push(`overflow:${e.key}`);let p=i!==void 0&&B?.over?.id===i?B.over.half:null,m=i===void 0?void 0:{start:()=>{se.current=!1,V({workspaceId:i,over:null})},end:()=>{B?.over!==null&&B?.over!==void 0?de(B,B.over):V(null),se.current=!1}},y=i===void 0||!c?void 0:e=>{V(t=>t===null?t:{...t,over:{id:i,half:e}})},b=i===void 0||!c?void 0:e=>{de(B,{id:i,half:e})};return/* @__PURE__ */ (0,s.jsxs)(`div`,{"data-sidebar-group":e.key,style:{"--dsh-workspace-indent":`${t*12}px`},className:K(Q.groupSection,p===`before`&&Q.workspaceDropBefore,p===`after`&&Q.workspaceDropAfter),onDragOver:B===null?void 0:t=>{t.preventDefault(),(y!==void 0||U.get(e.key)===void 0)&&(t.stopPropagation(),y===void 0?(t.dataTransfer.dropEffect=`none`,B.over!==null&&V({...B,over:null})):(t.dataTransfer.dropEffect=`move`,y(Xe(t))))},onDrop:B===null?void 0:t=>{t.preventDefault(),(b!==void 0||U.get(e.key)===void 0)&&(t.stopPropagation(),b===void 0?(se.current=!0,V(null)):b(Xe(t)))},children:[i===void 0?/* @__PURE__ */ (0,s.jsx)(Ne,{label:O(`group.ungrouped`),expanded:e.expanded,onToggle:()=>{Ce(e)},rowKey:`workspace:${e.key}`,action:f?{label:O(`actions.newSession`),icon:/* @__PURE__ */ (0,s.jsx)(o.IconNewChatOutlineRegular,{size:16}),onActivate:()=>{C(e.key,!0),n()}}:void 0}):/* @__PURE__ */ (0,s.jsx)(ye,{newShortcut:j.find(e=>e.id===`session.new`),group:e,home:D,t:O,onToggle:()=>{Ce(e)},onCreate:()=>{e.workspaceId!==void 0&&(C(e.key,e.expanded),n(e.workspaceId))},drag:m,actions:e.workspaceId===void 0?void 0:{rename:()=>{
|
|
16
16
|
/* v8 ignore next -- narrowing guard: the actions object exists only for real-workspace groups. */
|
|
17
17
|
e.workspaceId!==void 0&&h(e.workspaceId,e.label)},delete:()=>{
|
|
18
18
|
/* v8 ignore next -- narrowing guard: the actions object exists only for real-workspace groups. */
|
|
19
|
-
e.workspaceId!==void 0&&g(e.workspaceId,e.label)}}}),u.length>0&&/* @__PURE__ */ (0,s.jsx)(`div`,{role:`group`,children:u}),(d.length>0||l.hiddenCount>0)&&/* @__PURE__ */ (0,s.jsxs)(`div`,{role:`group`,className:Q.groupSessions,style:{"--dsh-workspace-indent":`${i===void 0?0:t*12+22}px`},children:[d.map(t=>{let n=
|
|
19
|
+
e.workspaceId!==void 0&&g(e.workspaceId,e.label)}}}),u.length>0&&/* @__PURE__ */ (0,s.jsx)(`div`,{role:`group`,children:u}),(d.length>0||l.hiddenCount>0)&&/* @__PURE__ */ (0,s.jsxs)(`div`,{role:`group`,className:Q.groupSessions,style:{"--dsh-workspace-indent":`${i===void 0?0:t*12+22}px`},children:[d.map(t=>{let n=F!==null&&F.accountKey===e.key,a=n&&F.pinned===t.pinned,o=e=>t.blank?`after`:e,c={start:()=>{R.current=!1,I({accountKey:e.key,sessionId:t.id,pinned:t.pinned,over:null})},active:a,marker:n&&F.over?.id===t.id?F.over.half:null,hover:e=>{
|
|
20
20
|
/* v8 ignore next -- narrowing guard: Rows gates hover on `active`, which is false while the drag state is null. */
|
|
21
|
-
|
|
21
|
+
I(n=>n===null?n:{...n,over:{id:t.id,half:o(e)}})},drop:e=>{
|
|
22
22
|
/* v8 ignore next -- narrowing guard: Rows gates drop on `active`, which is false while the drag state is null. */
|
|
23
|
-
I!==null&&ue(I,{id:t.id,half:o(e)})},end:e=>{!e&&I?.over!==null&&I?.over!==void 0?ue(I,I.over):L(null),z.current=!1}};return/* @__PURE__ */ (0,s.jsx)(we,{rowKey:i===void 0?`recent:${t.id}`:void 0,node:t,currentId:N,now:le,onOpen:r,onRenameRequest:_,renderSlot:v,onReveal:t.id===k&&e.key===P?()=>{A(t.id)}:void 0,drag:i===void 0?void 0:c,t:O},t.id)}),l.hiddenCount>0&&/* @__PURE__ */ (0,s.jsx)(`button`,{type:`button`,className:Q.sessionOverflowButton,"data-row-key":`overflow:${e.key}`,onClick:()=>{F(t=>({...t,[e.key]:(t[e.key]??5)+10}))},children:O(`sessions.expand`,{n:Math.min(10,l.hiddenCount)})})]})]},e.key)},X=[];if(_e.length>0&&Y.push(`section:${ae}`),Se){for(let e of be)X.push(Ee(e,0));!ge&&ye.hiddenCount>0&&(Y.push(`overflow:workspaces`),X.push(/* @__PURE__ */ (0,s.jsx)(`button`,{type:`button`,className:Q.sessionOverflowButton,"data-row-key":`overflow:workspaces`,onClick:()=>{J(!0)},children:O(`workspaces.expand`)},`overflow:workspaces`)))}let De=q.find(e=>e.key===``);return De!==void 0&&X.push(Ee(De,0)),/* @__PURE__ */ (0,s.jsxs)(`div`,{className:K(Q.treeBody,Q.wide),children:[pe&&/* @__PURE__ */ (0,s.jsx)(`span`,{className:Q.listTopDropIndicator,"aria-hidden":`true`}),/* @__PURE__ */ (0,s.jsxs)(Z,{className:K(Q.list,pe&&Q.listTopDropActive),label:O(`section.sessions`),rowKeys:Y,ready:e.phase===`ready`&&d&&!ce,resetKey:JSON.stringify([p,ne,ge,xe,Se]),children:[/* @__PURE__ */ (0,s.jsx)(Fe,{rows:Te,currentId:N,onOpen:r,onRenameRequest:_,renderSlot:v,revealSessionId:k,onSessionRevealed:A,expanded:xe,onToggle:()=>{T(ie,!xe)},t:O}),G.length===0&&Te.length===0&&/* @__PURE__ */ (0,s.jsx)(Xe,{rowState:l,onLeaveArchivedOnly:u,t:O}),_e.length>0&&/* @__PURE__ */ (0,s.jsx)(Me,{label:O(`section.workspaces`),expanded:Se,onToggle:()=>{Se&&J(!1),T(`workspaces`,!Se)},rowKey:`section:workspaces`}),X]}),/* @__PURE__ */ (0,s.jsx)(`span`,{className:Q.fade})]})}function Qe({list:e,sessionIds:t,rowState:n,onLeaveArchivedOnly:r,useSessionStatus:i,open:o,onSessionRenameRequest:c,usePanelInfo:l,setSessionOrder:u,sectionExpansion:d,setSectionExpanded:f,workspaceReady:p,animationResetKey:m,revealSessionId:h,onSessionRevealed:g,renderSlot:_,t:v}){let y=l(e=>e.activePanelId!==null),b=i(e=>e),x=(0,a.useMemo)(()=>re(e,t,n,b).filter(e=>!e.pinned),[e,t,n,b]),S=re(e,n.pinnedSessionIds,n,b).filter(e=>e.pinned),[C,w]=(0,a.useState)(null),T=(0,a.useRef)(!1),[E,D]=(0,a.useState)(10);Ke(C!==null);let O=y?void 0:Object.values(e.byId).find(e=>(e.retainedBy.mainView??0)>0)?.id,k=Ie(x,E,O,h),A=Ie(x,10,O,h).hiddenCount>0,j=(e,n)=>{if(T.current)return;T.current=!0,w(null);let r=Je(t,x,e,n);r!==void 0&&u(z,r)},ee=Date.now(),M=oe(d,ie);return/* @__PURE__ */ (0,s.jsxs)(`div`,{className:K(Q.treeBody,Q.wide),children:[/* @__PURE__ */ (0,s.jsxs)(Z,{className:K(Q.list,Q.flatList),label:v(`section.sessions`),rowKeys:[...S.length===0?[]:[`section:${ie}`],...M?S.map(e=>`session:${e.id}`):[],...x.length===0&&S.length===0?[`empty`]:[],...k.rows.map(e=>`session:${e.id}`),...A?[`overflow:flat`]:[]],ready:e.phase===`ready`&&p&&C===null,resetKey:`${m}/${E}/${String(M)}`,children:[/* @__PURE__ */ (0,s.jsx)(Fe,{rows:S,currentId:O,onOpen:o,onRenameRequest:c,renderSlot:_,revealSessionId:h,onSessionRevealed:g,expanded:M,onToggle:()=>{f(ie,!M)},t:v}),S.length>0&&/* @__PURE__ */ (0,s.jsx)(Me,{label:v(`section.sessions`)}),x.length===0&&S.length===0&&/* @__PURE__ */ (0,s.jsx)(Xe,{rowState:n,onLeaveArchivedOnly:r,t:v}),k.rows.map(e=>{let t=C!==null&&C.pinned===e.pinned,n=t=>e.blank?`after`:t;return/* @__PURE__ */ (0,s.jsx)(we,{node:e,currentId:O,now:ee,onOpen:o,onRenameRequest:c,renderSlot:_,onReveal:e.id===h?()=>{g(e.id)}:void 0,drag:{start:()=>{T.current=!1,w({accountKey:z,sessionId:e.id,pinned:e.pinned,over:null})},active:t,marker:t&&C.over?.id===e.id?C.over.half:null,hover:t=>{w(r=>r===null?r:{...r,over:{id:e.id,half:n(t)}})},drop:t=>{C!==null&&j(C,{id:e.id,half:n(t)})},end:e=>{!e&&C?.over!==null&&C?.over!==void 0?j(C,C.over):w(null),T.current=!1}},t:v},e.id)}),A&&/* @__PURE__ */ (0,s.jsx)(`button`,{type:`button`,"data-row-key":`overflow:flat`,className:Q.sessionOverflowButton,"aria-expanded":E>10,onClick:()=>D(k.hiddenCount>0?E+10:10),children:k.hiddenCount>0?v(`sessions.expand`,{n:Math.min(10,k.hiddenCount)}):v(`sessions.collapse`)})]}),/* @__PURE__ */ (0,s.jsx)(`span`,{className:Q.fade})]})}function $e({useSessions:e,useSessionStatus:t,open:n,onUnarchive:r,workspaces:i,archivedSessionIds:o,archivedFilter:c,query:l,remote:u,resultLimit:d,usePanelInfo:f,t:p}){let m=f(e=>e.activePanelId!==null),h=e(e=>e),g=t(e=>e),_=u.query===l?u:{query:l,status:`loading`,items:[],hasMore:!1},v=(0,a.useMemo)(()=>I(h,i,l,o,c,g,_,d),[h,i,l,o,c,g,_,d]),y=_.status===`loading`,b=m?void 0:Object.values(h.byId).find(e=>(e.retainedBy.mainView??0)>0)?.id;return/* @__PURE__ */ (0,s.jsxs)(`div`,{className:K(Q.treeBody,Q.wide),children:[/* @__PURE__ */ (0,s.jsxs)(`div`,{className:Q.list,children:[/* @__PURE__ */ (0,s.jsx)(`div`,{className:Q.searchTree,role:`tree`,"aria-label":p(`search.results.aria`),children:v.items.map(e=>/* @__PURE__ */ (0,s.jsx)(Ce,{result:e,currentId:b,onOpen:n,onUnarchive:r,t:p},e.id))}),y&&/* @__PURE__ */ (0,s.jsx)(`div`,{role:`status`,"aria-label":p(`search.pending`),children:(v.items.length===0?[0,1]:[0]).map(e=>/* @__PURE__ */ (0,s.jsxs)(`div`,{className:Q.skeletonRow,"aria-hidden":`true`,children:[/* @__PURE__ */ (0,s.jsx)(`span`,{className:Q.skeletonDot}),/* @__PURE__ */ (0,s.jsxs)(`span`,{className:Q.skeletonBars,children:[/* @__PURE__ */ (0,s.jsx)(`span`,{className:Q.skeletonBar}),/* @__PURE__ */ (0,s.jsx)(`span`,{className:K(Q.skeletonBar,Q.skeletonBarWide)})]})]},e))}),!y&&v.items.length===0&&/* @__PURE__ */ (0,s.jsx)(`div`,{className:Q.empty,children:p(`search.noMatches`)}),v.hasMore&&/* @__PURE__ */ (0,s.jsx)(`div`,{className:Q.searchStatus,children:p(`search.hasMore`,{n:d})})]}),/* @__PURE__ */ (0,s.jsx)(`span`,{className:Q.fade})]})}function et({wide:e,usePanelInfo:t,expandSidebar:n,useSessions:r,useSessionStatus:i,useWorkspaces:c,useStore:l,actions:u,startSession:d,open:f,requestSessionRename:p,notifyArchivedNotOpenable:m,renameWorkspace:h,deleteWorkspace:g,insertWorkspaceBefore:_,unarchiveSession:v,createWorkspace:y,searchSessions:b,searchResultLimit:x,useDirectoryFlow:S,useHostInfo:C,useShortcuts:w,useWorkspaceShortcuts:O,requestSearch:k,requestAddWorkspace:A,closeAddWorkspace:j,setDirectoryBusy:ee,dismissForkError:M,renderSlot:N,t:P}){let te=C(e=>e.home),F=w(e=>e),re=F.find(e=>e.id===`session.search`),I=F.find(e=>e.id===`workspace.add`),L=O(e=>e),R=r(e=>e),ie=c(e=>e.items),ae=c(e=>e.canStartProjectless===!0),oe=P(`workspace.defaultName`),B=(0,a.useMemo)(()=>ie.map(e=>({...e,title:de(e.title,oe)})),[ie,oe]),V=c(e=>e.phase),se=c(e=>e.state),ce=c(e=>e.archivedSessionIds),H=c(e=>e.pinnedSessionIds),U=S(e=>e),W=l(e=>e.groupBy),G=l(e=>e.orderBy),le=l(e=>e.archivedFilter??`default`),ue=l(e=>e.groupExpansion),fe=l(e=>e.sectionExpansion),q=l(e=>e.sessionOrderByAccount),pe=e=>{ce.includes(e)?m():f(e)},me=()=>{u.setArchivedFilter(`default`)},he=V===`ready`&&se!==`loading`,ge=Object.values(R.byId).find(e=>(e.retainedBy.mainView??0)>0)?.id,J=ge!==void 0&&R.byId[ge]?.blank===!0?ge:void 0,_e=(0,a.useMemo)(()=>{let e=new Set(B.flatMap(e=>e.sessionIds));return R.ids.filter(t=>R.byId[t]!==void 0&&!e.has(t))},[R,B]),ve=(0,a.useMemo)(()=>({pinnedSessionIds:H,archivedSessionIds:ce}),[ce,H]),ye=(0,a.useMemo)(()=>({...ve,archivedFilter:le}),[ve,le]),be=(0,a.useMemo)(()=>ne(R),[R]),xe=(0,a.useMemo)(()=>B.map(e=>{let t=e.sessionIds,n=G===`updated`?T(t,R.byId):E(t,q[e.workspaceId],R.byId,ve);return{...e,sessionIds:D(n,J!==void 0&&t.includes(J)?J:void 0)}}),[J,R.byId,G,ve,q,B]),Se=(0,a.useMemo)(()=>T(_e,R.byId),[R.byId,_e]),Ce=(0,a.useMemo)(()=>D(G===`updated`?T(be,R.byId):E(be,q[z],R.byId,ve),J!==void 0&&be.includes(J)?J:void 0),[J,be,R.byId,G,ve,q]),we=(0,a.useMemo)(()=>Object.fromEntries([...xe.map(e=>[e.workspaceId,e.sessionIds]),[``,Se],[z,Ce]]),[Ce,Se,xe]);(0,a.useEffect)(()=>{V===`ready`&&u.retainAccountKeys([``,z,...B.map(e=>e.workspaceId)])},[u.retainAccountKeys,V,B]),(0,a.useEffect)(()=>{if(R.phase!==`ready`||he||G!==`manual`||J===void 0)return;let e={};for(let[t,n]of Object.entries(we)){if(t!==`__flat_session_order__`&&V!==`ready`)continue;let r=q[t]??[];n[0]===J&&r[0]!==J&&(e[t]=[J,...r.filter(e=>e!==J)])}Object.keys(e).length>0&&u.syncSessionOrders(e)},[u.syncSessionOrders,we,J,R.phase,G,q,V,he]),(0,a.useEffect)(()=>{R.phase===`ready`&&he&&G===`manual`&&J!==void 0&&Object.entries(we).some(([e,t])=>t[0]===J&&q[e]?.[0]!==J)&&u.syncSessionOrders(we)},[u.syncSessionOrders,we,J,R.phase,G,q,he]);let Te=(e,t)=>{u.setSessionOrder(e,t,we)},[Y,Ee]=(0,a.useState)(``),[X,De]=(0,a.useState)(!1),[Oe,ke]=(0,a.useState)(void 0),Z=Ge(Y).trim(),[Ae,je]=(0,a.useState)({query:``,status:`idle`,items:[],hasMore:!1}),Me=(0,a.useRef)(null),Ne=(0,a.useRef)(null),Pe=L.addRequested,Fe=(0,a.useRef)(null),Ie=(0,a.useRef)(!1),Le=e=>{ce.includes(e)?m():(ke(e),Ee(``),De(!1),f(e))},Re=e=>{ke(t=>t===e?void 0:t)};(0,a.useEffect)(()=>{Z!==``&&ke(void 0)},[Z]);let[ze,Be]=(0,a.useState)(!1);(0,a.useEffect)(()=>{if(e&&ze){let e=window.setTimeout(()=>{Ne.current?.focus({preventScroll:!0}),Be(!1)},300);return()=>{window.clearTimeout(e)}}},[e,ze]),(0,a.useEffect)(()=>{L.searchRequest!==0&&(j(),De(!0),e?Ne.current?.focus({preventScroll:!0}):(Be(!0),n()))},[L.searchRequest]),(0,a.useEffect)(()=>{e&&X&&!ze&&Ne.current?.focus({preventScroll:!0})},[e,X,ze]),(0,a.useEffect)(()=>{if(!e||!X||ze)return;let t=e=>{e.target instanceof Node&&Me.current?.contains(e.target)!==!0&&(Ne.current?.blur(),Z===``&&De(!1))};return document.addEventListener(`click`,t),()=>{document.removeEventListener(`click`,t)}},[Z,e,X,ze]),(0,a.useEffect)(()=>{if(Z===``){je({query:``,status:`idle`,items:[],hasMore:!1});return}let e=new AbortController;je({query:Z,status:`loading`,items:[],hasMore:!1});let t=window.setTimeout(()=>{b(Z,e.signal).then(t=>{e.signal.aborted||je({query:Z,status:`ready`,items:t.items,hasMore:t.hasMore})}).catch(()=>{e.signal.aborted||je({query:Z,status:`error`,items:[],hasMore:!1})})},250);return()=>{window.clearTimeout(t),e.abort()}},[Z,b]);let[Ve,Ue]=(0,a.useState)(null),[We,Ke]=(0,a.useState)(``),[Je,Ye]=(0,a.useState)(!1),[Xe,et]=(0,a.useState)(null),tt=We.trim(),nt=Ve!==null&&tt!==``&&B.some(e=>e.workspaceId!==Ve.workspaceId&&e.title===tt),rt=Je||tt===``||Ve===null||tt===Ve.storedTitle||nt,it=()=>{Je||(Ue(null),et(null))},at=()=>{rt||(Ye(!0),et(null),h(Ve.workspaceId,tt).then(()=>{Ye(!1),Ue(null)}).catch(e=>{Ye(!1),et(e instanceof Error?e.message:String(e))}))},ot=e=>{v(e).catch(e=>{console.warn(`session unarchive rejected:`,e)})},[st,ct]=(0,a.useState)(null),[lt,ut]=(0,a.useState)(!1),[dt,ft]=(0,a.useState)(null),[pt,mt]=(0,a.useState)(null);(0,a.useEffect)(()=>{dt===null||B.some(e=>e.workspaceId===dt)||(ut(!1),ft(null),ct(null))},[dt,B]);let ht=()=>{lt||(ct(null),mt(null))},gt=()=>{
|
|
23
|
+
F!==null&&ue(F,{id:t.id,half:o(e)})},end:e=>{!e&&F?.over!==null&&F?.over!==void 0?ue(F,F.over):I(null),R.current=!1}};return/* @__PURE__ */ (0,s.jsx)(Te,{rowKey:i===void 0?`recent:${t.id}`:void 0,node:t,currentId:N,now:G,onOpen:r,onRenameRequest:_,renderSlot:v,onReveal:t.id===k&&e.key===P?()=>{A(t.id)}:void 0,drag:i===void 0?void 0:c,t:O},t.id)}),l.hiddenCount>0&&/* @__PURE__ */ (0,s.jsx)(`button`,{type:`button`,className:Q.sessionOverflowButton,"data-row-key":`overflow:${e.key}`,onClick:()=>{re(t=>({...t,[e.key]:(t[e.key]??5)+10}))},children:O(`sessions.expand`,{n:Math.min(10,l.hiddenCount)})})]})]},e.key)},De=[];if(J.length>0&&Y.push(`section:${ae}`),Se){for(let e of be)De.push(Ee(e,0));!ge&&ve.hiddenCount>0&&(Y.push(`overflow:workspaces`),De.push(/* @__PURE__ */ (0,s.jsx)(`button`,{type:`button`,className:Q.sessionOverflowButton,"data-row-key":`overflow:workspaces`,onClick:()=>{_e(!0)},children:O(`workspaces.expand`)},`overflow:workspaces`)))}let Oe=pe.find(e=>e.key===``);return Oe!==void 0&&De.push(Ee(Oe,0)),/* @__PURE__ */ (0,s.jsxs)(`div`,{className:K(Q.treeBody,Q.wide),children:[q&&/* @__PURE__ */ (0,s.jsx)(`span`,{className:Q.listTopDropIndicator,"aria-hidden":`true`}),/* @__PURE__ */ (0,s.jsxs)(je,{className:K(Q.list,q&&Q.listTopDropActive),label:O(`section.sessions`),rowKeys:Y,ready:e.phase===`ready`&&d&&!ce,resetKey:JSON.stringify([p,ne,ge,xe,Se]),children:[/* @__PURE__ */ (0,s.jsx)(Ie,{rows:we,currentId:N,onOpen:r,onRenameRequest:_,renderSlot:v,revealSessionId:k,onSessionRevealed:A,expanded:xe,onToggle:()=>{T(z,!xe)},t:O}),W.length===0&&we.length===0&&/* @__PURE__ */ (0,s.jsx)(Ze,{rowState:l,onLeaveArchivedOnly:u,t:O}),J.length>0&&/* @__PURE__ */ (0,s.jsx)(Ne,{label:O(`section.workspaces`),expanded:Se,onToggle:()=>{Se&&_e(!1),T(`workspaces`,!Se)},rowKey:`section:workspaces`}),De]}),/* @__PURE__ */ (0,s.jsx)(`span`,{className:Q.fade})]})}function $e({list:e,sessionIds:t,rowState:n,onLeaveArchivedOnly:r,useSessionStatus:i,open:o,onSessionRenameRequest:c,usePanelInfo:l,setSessionOrder:u,sectionExpansion:d,setSectionExpanded:f,workspaceReady:p,animationResetKey:m,revealSessionId:h,onSessionRevealed:g,renderSlot:_,t:v}){let y=l(e=>e.activePanelId!==null),b=i(e=>e),x=(0,a.useMemo)(()=>ie(e,t,n,b).filter(e=>!e.pinned),[e,t,n,b]),S=ie(e,n.pinnedSessionIds,n,b).filter(e=>e.pinned),[C,w]=(0,a.useState)(null),T=(0,a.useRef)(!1),[E,D]=(0,a.useState)(10);qe(C!==null);let O=y?void 0:Object.values(e.byId).find(e=>(e.retainedBy.mainView??0)>0)?.id,k=Le(x,E,O,h),A=Le(x,10,O,h).hiddenCount>0,j=(e,n)=>{if(T.current)return;T.current=!0,w(null);let r=Ye(t,x,e,n);r!==void 0&&u(R,r)},ee=Date.now(),M=oe(d,z);return/* @__PURE__ */ (0,s.jsxs)(`div`,{className:K(Q.treeBody,Q.wide),children:[/* @__PURE__ */ (0,s.jsxs)(je,{className:K(Q.list,Q.flatList),label:v(`section.sessions`),rowKeys:[...S.length===0?[]:[`section:${z}`],...M?S.map(e=>`session:${e.id}`):[],...x.length===0&&S.length===0?[`empty`]:[],...k.rows.map(e=>`session:${e.id}`),...A?[`overflow:flat`]:[]],ready:e.phase===`ready`&&p&&C===null,resetKey:`${m}/${E}/${String(M)}`,children:[/* @__PURE__ */ (0,s.jsx)(Ie,{rows:S,currentId:O,onOpen:o,onRenameRequest:c,renderSlot:_,revealSessionId:h,onSessionRevealed:g,expanded:M,onToggle:()=>{f(z,!M)},t:v}),S.length>0&&/* @__PURE__ */ (0,s.jsx)(Ne,{label:v(`section.sessions`)}),x.length===0&&S.length===0&&/* @__PURE__ */ (0,s.jsx)(Ze,{rowState:n,onLeaveArchivedOnly:r,t:v}),k.rows.map(e=>{let t=C!==null&&C.pinned===e.pinned,n=t=>e.blank?`after`:t;return/* @__PURE__ */ (0,s.jsx)(Te,{node:e,currentId:O,now:ee,onOpen:o,onRenameRequest:c,renderSlot:_,onReveal:e.id===h?()=>{g(e.id)}:void 0,drag:{start:()=>{T.current=!1,w({accountKey:R,sessionId:e.id,pinned:e.pinned,over:null})},active:t,marker:t&&C.over?.id===e.id?C.over.half:null,hover:t=>{w(r=>r===null?r:{...r,over:{id:e.id,half:n(t)}})},drop:t=>{C!==null&&j(C,{id:e.id,half:n(t)})},end:e=>{!e&&C?.over!==null&&C?.over!==void 0?j(C,C.over):w(null),T.current=!1}},t:v},e.id)}),A&&/* @__PURE__ */ (0,s.jsx)(`button`,{type:`button`,"data-row-key":`overflow:flat`,className:Q.sessionOverflowButton,"aria-expanded":E>10,onClick:()=>D(k.hiddenCount>0?E+10:10),children:k.hiddenCount>0?v(`sessions.expand`,{n:Math.min(10,k.hiddenCount)}):v(`sessions.collapse`)})]}),/* @__PURE__ */ (0,s.jsx)(`span`,{className:Q.fade})]})}function et({useSessions:e,useSessionStatus:t,open:n,onUnarchive:r,workspaces:i,archivedSessionIds:o,archivedFilter:c,query:l,remote:u,resultLimit:d,usePanelInfo:f,t:p}){let m=f(e=>e.activePanelId!==null),h=e(e=>e),g=t(e=>e),_=u.query===l?u:{query:l,status:`loading`,items:[],hasMore:!1},v=(0,a.useMemo)(()=>F(h,i,l,o,c,g,_,d),[h,i,l,o,c,g,_,d]),y=_.status===`loading`,b=m?void 0:Object.values(h.byId).find(e=>(e.retainedBy.mainView??0)>0)?.id;return/* @__PURE__ */ (0,s.jsxs)(`div`,{className:K(Q.treeBody,Q.wide),children:[/* @__PURE__ */ (0,s.jsxs)(`div`,{className:Q.list,children:[/* @__PURE__ */ (0,s.jsx)(`div`,{className:Q.searchTree,role:`tree`,"aria-label":p(`search.results.aria`),children:v.items.map(e=>/* @__PURE__ */ (0,s.jsx)(we,{result:e,currentId:b,onOpen:n,onUnarchive:r,t:p},e.id))}),y&&/* @__PURE__ */ (0,s.jsx)(`div`,{role:`status`,"aria-label":p(`search.pending`),children:(v.items.length===0?[0,1]:[0]).map(e=>/* @__PURE__ */ (0,s.jsxs)(`div`,{className:Q.skeletonRow,"aria-hidden":`true`,children:[/* @__PURE__ */ (0,s.jsx)(`span`,{className:Q.skeletonDot}),/* @__PURE__ */ (0,s.jsxs)(`span`,{className:Q.skeletonBars,children:[/* @__PURE__ */ (0,s.jsx)(`span`,{className:Q.skeletonBar}),/* @__PURE__ */ (0,s.jsx)(`span`,{className:K(Q.skeletonBar,Q.skeletonBarWide)})]})]},e))}),!y&&v.items.length===0&&/* @__PURE__ */ (0,s.jsx)(`div`,{className:Q.empty,children:p(`search.noMatches`)}),v.hasMore&&/* @__PURE__ */ (0,s.jsx)(`div`,{className:Q.searchStatus,children:p(`search.hasMore`,{n:d})})]}),/* @__PURE__ */ (0,s.jsx)(`span`,{className:Q.fade})]})}function tt({wide:e,usePanelInfo:t,expandSidebar:n,useSessions:r,useSessionStatus:i,useWorkspaces:c,useStore:l,actions:u,startSession:d,open:f,requestSessionRename:p,notifyArchivedNotOpenable:m,renameWorkspace:h,deleteWorkspace:g,insertWorkspaceBefore:_,unarchiveSession:v,createWorkspace:y,searchSessions:b,searchResultLimit:x,useDirectoryFlow:S,useHostInfo:C,useShortcuts:w,useWorkspaceShortcuts:O,requestSearch:k,requestAddWorkspace:A,closeAddWorkspace:j,setDirectoryBusy:ee,dismissForkError:M,renderSlot:N,t:P}){let te=C(e=>e.home),re=w(e=>e),ie=re.find(e=>e.id===`session.search`),F=re.find(e=>e.id===`workspace.add`),I=O(e=>e),L=r(e=>e),z=c(e=>e.items),ae=c(e=>e.canStartProjectless===!0),oe=P(`workspace.defaultName`),B=(0,a.useMemo)(()=>z.map(e=>({...e,title:fe(e.title,oe)})),[z,oe]),V=c(e=>e.phase),ce=c(e=>e.state),H=c(e=>e.archivedSessionIds),U=c(e=>e.pinnedSessionIds),le=S(e=>e),W=l(e=>e.groupBy),G=l(e=>e.orderBy),ue=l(e=>e.archivedFilter??`default`),de=l(e=>e.groupExpansion),pe=l(e=>e.sectionExpansion),q=l(e=>e.sessionOrderByAccount),me=e=>{H.includes(e)?m():f(e)},he=()=>{u.setArchivedFilter(`default`)},ge=V===`ready`&&ce!==`loading`,_e=Object.values(L.byId).find(e=>(e.retainedBy.mainView??0)>0)?.id,J=_e!==void 0&&L.byId[_e]?.blank===!0?_e:void 0,ve=(0,a.useMemo)(()=>{let e=new Set(B.flatMap(e=>e.sessionIds));return[.../* @__PURE__ */ new Set([...L.ids,...H])].filter(t=>!e.has(t))},[H,L.ids,B]),ye=(0,a.useMemo)(()=>({pinnedSessionIds:U,archivedSessionIds:H}),[H,U]),be=(0,a.useMemo)(()=>({...ye,archivedFilter:ue}),[ye,ue]),xe=(0,a.useMemo)(()=>ne(L,H),[H,L]),Se=(0,a.useMemo)(()=>B.map(e=>{let t=e.sessionIds,n=G===`updated`?T(t,L.byId):E(t,q[e.workspaceId],L.byId,ye);return{...e,sessionIds:D(n,J!==void 0&&t.includes(J)?J:void 0)}}),[J,L.byId,G,ye,q,B]),Ce=(0,a.useMemo)(()=>T(ve,L.byId),[L.byId,ve]),we=(0,a.useMemo)(()=>D(G===`updated`?T(xe,L.byId):E(xe,q[R],L.byId,ye),J!==void 0&&xe.includes(J)?J:void 0),[J,xe,L.byId,G,ye,q]),Te=(0,a.useMemo)(()=>se(B,L,ye),[L,ye,B]),Y=(0,a.useMemo)(()=>Object.fromEntries([...Se.map(e=>[e.workspaceId,e.sessionIds]),[``,Ce],[R,we]]),[we,Ce,Se]);(0,a.useEffect)(()=>{V===`ready`&&u.retainAccountKeys([``,R,...B.map(e=>e.workspaceId)])},[u.retainAccountKeys,V,B]),(0,a.useEffect)(()=>{if(L.phase!==`ready`||ge||G!==`manual`||J===void 0)return;let e={};for(let[t,n]of Object.entries(Y)){if(t!==`__flat_session_order__`&&V!==`ready`)continue;let r=q[t]??[];n[0]===J&&r[0]!==J&&(e[t]=[J,...r.filter(e=>e!==J)])}Object.keys(e).length>0&&u.syncSessionOrders(e,Te)},[u.syncSessionOrders,Y,J,L.phase,G,q,Te,V,ge]),(0,a.useEffect)(()=>{L.phase===`ready`&&ge&&G===`manual`&&J!==void 0&&Object.entries(Y).some(([e,t])=>t[0]===J&&q[e]?.[0]!==J)&&u.syncSessionOrders(Y,Te)},[u.syncSessionOrders,Y,J,L.phase,G,q,Te,ge]);let Ee=(e,t)=>{u.setSessionOrder(e,t,Y,Te)},[De,Oe]=(0,a.useState)(``),[X,ke]=(0,a.useState)(!1),[Ae,je]=(0,a.useState)(void 0),Z=Ke(De).trim(),[Me,Ne]=(0,a.useState)({query:``,status:`idle`,items:[],hasMore:!1}),Pe=(0,a.useRef)(null),Fe=(0,a.useRef)(null),Ie=I.addRequested,Le=(0,a.useRef)(null),Re=(0,a.useRef)(!1),ze=e=>{H.includes(e)?m():(je(e),Oe(``),ke(!1),f(e))},Be=e=>{je(t=>t===e?void 0:t)};(0,a.useEffect)(()=>{Z!==``&&je(void 0)},[Z]);let[Ve,He]=(0,a.useState)(!1);(0,a.useEffect)(()=>{if(e&&Ve){let e=window.setTimeout(()=>{Fe.current?.focus({preventScroll:!0}),He(!1)},300);return()=>{window.clearTimeout(e)}}},[e,Ve]),(0,a.useEffect)(()=>{I.searchRequest!==0&&(j(),ke(!0),e?Fe.current?.focus({preventScroll:!0}):(He(!0),n()))},[I.searchRequest]),(0,a.useEffect)(()=>{e&&X&&!Ve&&Fe.current?.focus({preventScroll:!0})},[e,X,Ve]),(0,a.useEffect)(()=>{if(!e||!X||Ve)return;let t=e=>{e.target instanceof Node&&Pe.current?.contains(e.target)!==!0&&(Fe.current?.blur(),Z===``&&ke(!1))};return document.addEventListener(`click`,t),()=>{document.removeEventListener(`click`,t)}},[Z,e,X,Ve]),(0,a.useEffect)(()=>{if(Z===``){Ne({query:``,status:`idle`,items:[],hasMore:!1});return}let e=new AbortController;Ne({query:Z,status:`loading`,items:[],hasMore:!1});let t=window.setTimeout(()=>{b(Z,e.signal).then(t=>{e.signal.aborted||Ne({query:Z,status:`ready`,items:t.items,hasMore:t.hasMore})}).catch(()=>{e.signal.aborted||Ne({query:Z,status:`error`,items:[],hasMore:!1})})},250);return()=>{window.clearTimeout(t),e.abort()}},[Z,b]);let[We,Ge]=(0,a.useState)(null),[qe,Ye]=(0,a.useState)(``),[Xe,Ze]=(0,a.useState)(!1),[tt,nt]=(0,a.useState)(null),rt=qe.trim(),it=We!==null&&rt!==``&&B.some(e=>e.workspaceId!==We.workspaceId&&e.title===rt),at=Xe||rt===``||We===null||rt===We.storedTitle||it,ot=()=>{Xe||(Ge(null),nt(null))},st=()=>{at||(Ze(!0),nt(null),h(We.workspaceId,rt).then(()=>{Ze(!1),Ge(null)}).catch(e=>{Ze(!1),nt(e instanceof Error?e.message:String(e))}))},ct=e=>{v(e).catch(e=>{console.warn(`session unarchive rejected:`,e)})},[lt,ut]=(0,a.useState)(null),[dt,ft]=(0,a.useState)(!1),[pt,mt]=(0,a.useState)(null),[ht,gt]=(0,a.useState)(null);(0,a.useEffect)(()=>{pt===null||B.some(e=>e.workspaceId===pt)||(ft(!1),mt(null),ut(null))},[pt,B]);let _t=()=>{dt||(ut(null),gt(null))},vt=()=>{
|
|
24
24
|
/* v8 ignore next -- the Modal is absent without a target and its button is disabled while deleting. */
|
|
25
|
-
lt||st===null||(ut(!0),ft(null),mt(null),g(st.workspaceId).then(()=>{ft(st.workspaceId)}).catch(e=>{ut(!1),mt(e instanceof Error?e.message:String(e))}))};return/* @__PURE__ */ (0,s.jsxs)(`div`,{className:K(Q.root,!e&&Q.rail),children:[/* @__PURE__ */ (0,s.jsxs)(`div`,{className:Q.sectionHeader,children:[e&&/* @__PURE__ */ (0,s.jsx)(`span`,{className:K(Q.sectionLabel,Q.wide,X&&Q.sectionLabelHidden),children:W===`flat`||H.length>0?P(`section.sessions`):P(`section.workspaces`)}),e&&/* @__PURE__ */ (0,s.jsx)(`div`,{className:K(Q.searchSlot,X&&Q.searchSlotExpanded),children:/* @__PURE__ */ (0,s.jsxs)(`div`,{ref:Me,className:K(Q.search,X&&Q.searchExpanded),onClick:()=>{j(),De(!0),Ne.current?.focus()},children:[/* @__PURE__ */ (0,s.jsx)(o.Tooltip,{label:P(`search`),shortcutKeys:re?.keys,side:`bottom`,delayMs:500,disabled:X,children:/* @__PURE__ */ (0,s.jsx)(`button`,{type:`button`,className:Q.searchButton,"aria-label":P(`search.sessions.aria`),"aria-keyshortcuts":re?.aria,"aria-expanded":X,onClick:()=>{k()},children:/* @__PURE__ */ (0,s.jsx)(o.IconSearchOutlineRegular,{size:16})})}),/* @__PURE__ */ (0,s.jsx)(`input`,{ref:Ne,className:Q.searchInput,type:`text`,placeholder:P(`search.placeholder`),maxLength:500,value:Y,tabIndex:X?0:-1,onChange:e=>{Ee(Ge(e.target.value))},onKeyDown:e=>{e.key===`Escape`&&(Ee(``),De(!1))}}),X&&/* @__PURE__ */ (0,s.jsx)(`button`,{type:`button`,className:Q.clearButton,"aria-label":P(`search.clear`),onClick:e=>{e.stopPropagation(),Ee(``),De(!1)},children:/* @__PURE__ */ (0,s.jsx)(o.IconCloseFillRegular,{})})]})}),/* @__PURE__ */ (0,s.jsxs)(`div`,{className:K(Q.headerActions,e&&X&&Q.headerActionsHidden),children:[e&&/* @__PURE__ */ (0,s.jsx)(qe,{groupBy:W,orderBy:G,archivedFilter:le,onGroupPick:u.setGroupBy,onOrderPick:e=>{u.setOrderBy(e,we)},onArchivedFilterPick:u.setArchivedFilter,t:P}),U&&/* @__PURE__ */ (0,s.jsx)(o.Tooltip,{label:P(`workspace.add`),shortcutKeys:I?.keys,side:`bottom`,delayMs:500,children:/* @__PURE__ */ (0,s.jsx)(`button`,{ref:Fe,type:`button`,className:Q.iconButton,"aria-label":P(`workspace.add`),"aria-keyshortcuts":I?.aria,onClick:()=>{A()},children:/* @__PURE__ */ (0,s.jsx)(o.IconProjectAddOutlineRegular,{size:e?16:18})})})]}),/* @__PURE__ */ (0,s.jsx)(He,{t:P,open:Pe,anchorRef:Fe,useWorkspaces:c,createWorkspace:y,useDirectoryFlow:S,renderDirectoryFlow:e=>N(`sidebar.workspaces.directoryFlow`,e),addOnly:!0,onBusyChange:ee,side:`right`,onPick:e=>{j(),d(e)},onClose:()=>{j()}})]}),!e&&/* @__PURE__ */ (0,s.jsx)(`div`,{className:Q.search,children:/* @__PURE__ */ (0,s.jsx)(o.Tooltip,{label:P(`search`),shortcutKeys:re?.keys,children:/* @__PURE__ */ (0,s.jsx)(`button`,{type:`button`,className:Q.searchButton,"aria-label":P(`search.sessions.aria`),"aria-keyshortcuts":re?.aria,onClick:()=>{k()},children:/* @__PURE__ */ (0,s.jsx)(o.IconSearchOutlineRegular,{size:18})})})}),/* @__PURE__ */ (0,s.jsxs)(`div`,{className:Q.listArea,children:[e&&R.phase===`pending`&&/* @__PURE__ */ (0,s.jsx)(`div`,{className:Q.empty,role:`status`,children:P(`sessions.loading`)}),e&&(Z===``?W===`flat`?/* @__PURE__ */ (0,s.jsx)(Qe,{usePanelInfo:t,list:R,sessionIds:Ce,rowState:ye,onLeaveArchivedOnly:me,workspaceReady:he,animationResetKey:`${W}/${G}/${le}`,useSessionStatus:i,open:pe,onSessionRenameRequest:p,renderSlot:N,setSessionOrder:Te,sectionExpansion:fe,setSectionExpanded:u.setSectionExpanded,revealSessionId:Oe,onSessionRevealed:Re,t:P}):/* @__PURE__ */ (0,s.jsx)(Ze,{usePanelInfo:t,list:R,shortcuts:F,useSessionStatus:i,onSessionRenameRequest:p,renderSlot:N,workspaces:xe,ungroupedSessionIds:Se,canStartProjectless:ae,workspaceReady:he,nestWorkspaces:W===`workspace-tree`,animationResetKey:`${W}/${G}/${le}`,groupExpansion:ue,setGroupExpanded:u.setGroupExpanded,sectionExpansion:fe,setSectionExpanded:u.setSectionExpanded,setSessionOrder:Te,rowState:ye,onLeaveArchivedOnly:me,startSession:d,open:pe,insertWorkspaceBefore:_,revealSessionId:Oe,onSessionRevealed:Re,home:te,t:P,onRenameRequest:(e,t)=>{Ue({workspaceId:e,storedTitle:ie.find(t=>t.workspaceId===e)?.title??t}),Ke(t),et(null)},onDeleteRequest:(e,t)=>{ct({workspaceId:e,title:t}),mt(null)}}):/* @__PURE__ */ (0,s.jsx)($e,{usePanelInfo:t,useSessions:r,useSessionStatus:i,open:Le,onUnarchive:ot,workspaces:B,archivedSessionIds:ce,archivedFilter:le,query:Z,remote:Ae,resultLimit:x,t:P}))]}),/* @__PURE__ */ (0,s.jsxs)(o.Modal,{open:Ve!==null,onClose:it,closeLabel:P(`close`),title:P(`rename.workspace.title`),footer:/* @__PURE__ */ (0,s.jsxs)(s.Fragment,{children:[/* @__PURE__ */ (0,s.jsx)(o.Button,{variant:`outline`,disabled:Je,onClick:it,children:P(`cancel`)}),/* @__PURE__ */ (0,s.jsx)(o.Button,{variant:`primary`,disabled:rt,onClick:at,children:P(`rename`)})]}),children:[/* @__PURE__ */ (0,s.jsx)(`input`,{className:Q.renameInput,value:We,"aria-label":P(`field.workspaceName`),"data-modal-autofocus":!0,disabled:Je,onFocus:e=>{e.target.select()},onChange:e=>{Ke(e.target.value),et(null)},onCompositionStart:()=>{Ie.current=!0},onCompositionEnd:()=>{Ie.current=!1},onKeyDown:e=>{e.key===`Enter`&&!Ie.current&&(e.preventDefault(),at())}}),nt&&/* @__PURE__ */ (0,s.jsx)(`div`,{className:Q.renameError,role:`alert`,children:P(`conflict.named`,{name:tt})}),Xe!==null&&/* @__PURE__ */ (0,s.jsx)(`div`,{className:Q.renameError,role:`alert`,children:Xe})]}),/* @__PURE__ */ (0,s.jsxs)(o.Modal,{open:st!==null,onClose:ht,closeLabel:P(`close`),title:P(`delete.workspace`),...st===null?{}:{description:P(`delete.desc`,{name:st.title})},footer:/* @__PURE__ */ (0,s.jsxs)(s.Fragment,{children:[/* @__PURE__ */ (0,s.jsx)(o.Button,{variant:`outline`,disabled:lt,onClick:ht,children:P(`cancel`)}),/* @__PURE__ */ (0,s.jsx)(o.Button,{variant:`outline`,className:Q.deleteAction,disabled:lt,onClick:gt,children:P(`delete.workspace`)})]}),children:[lt&&/* @__PURE__ */ (0,s.jsx)(`div`,{className:Q.deleteStatus,role:`status`,children:P(`delete.pending`)}),pt!==null&&/* @__PURE__ */ (0,s.jsx)(`div`,{className:Q.renameError,role:`alert`,children:pt})]}),L.forkError!==null&&/* @__PURE__ */ (0,s.jsx)(o.Toast,{text:P(L.forkError.reason===`unavailable`?`shortcut.noCompletedTurn`:`shortcut.forkFailed`),onDone:M},L.forkError.seq)]})}function tt({sessionId:e,useArchived:t,useMenuOpenState:n,useShortcuts:r,archiveSession:i,unarchiveSession:a,t:c}){let[,l]=n(),u=r(e=>e.find(e=>e.id===`session.archive`)),d=t(t=>t.has(e));return/* @__PURE__ */ (0,s.jsx)(o.MenuItemButton,{shortcut:d?void 0:u,icon:d?/* @__PURE__ */ (0,s.jsx)(o.IconUnarchiveOutlineRegular,{size:16}):/* @__PURE__ */ (0,s.jsx)(o.IconArchiveOutlineRegular,{size:16}),onSelect:()=>{l(!1),(d?a:i)(e)},children:c(d?`menu.unarchiveSession`:`menu.archiveSession`)})}function nt({sessionId:e,useArchived:t,archiveSession:n,unarchiveSession:r,t:i}){let a=t(t=>t.has(e));return/* @__PURE__ */ (0,s.jsx)(o.Tooltip,{label:i(a?`actions.unarchive`:`actions.archive`),side:`bottom`,align:`end`,delayMs:500,children:/* @__PURE__ */ (0,s.jsx)(`button`,{type:`button`,className:q.iconButton,"aria-label":i(a?`menu.unarchiveSession`:`menu.archiveSession`),onClick:()=>{(a?r:n)(e)},children:a?/* @__PURE__ */ (0,s.jsx)(o.IconUnarchiveOutlineRegular,{size:16}):/* @__PURE__ */ (0,s.jsx)(o.IconArchiveOutlineRegular,{size:16})})})}function rt({useArchiveRequest:e,settleSessionArchive:t,stopAndArchiveSession:n,t:r}){let i=e(e=>e);return i===null?null:/* @__PURE__ */ (0,s.jsx)(it,{request:i,stopAndArchiveSession:n,onSettle:t,t:r},i.sessionId)}function it({request:e,stopAndArchiveSession:t,onSettle:n,t:r}){let[i,c]=(0,a.useState)(!1),[l,u]=(0,a.useState)(null),d=()=>{i||n()};return/* @__PURE__ */ (0,s.jsxs)(o.Modal,{open:!0,onClose:d,closeLabel:r(`close`),title:r(`archive.confirm.title`),description:r(`archive.confirm.desc`,{title:e.displayTitle}),footer:/* @__PURE__ */ (0,s.jsxs)(s.Fragment,{children:[/* @__PURE__ */ (0,s.jsx)(o.Button,{variant:`outline`,disabled:i,onClick:d,children:r(`cancel`)}),/* @__PURE__ */ (0,s.jsx)(o.Button,{variant:`outline`,className:Q.deleteAction,disabled:i,onClick:()=>{c(!0),u(null),t(e.sessionId).then(()=>{c(!1),n()}).catch(e=>{c(!1),u(e instanceof Error?e.message:String(e))})},children:r(`archive.confirm.action`)})]}),children:[/* @__PURE__ */ (0,s.jsx)(`ul`,{className:Q.archiveActivity,"aria-label":r(`archive.confirm.activity`),children:e.activity.map((e,t)=>/* @__PURE__ */ (0,s.jsx)(`li`,{children:at(e,r)},`${e.kind}-${String(t)}`))}),i&&/* @__PURE__ */ (0,s.jsx)(`div`,{className:Q.deleteStatus,role:`status`,children:r(`archive.confirm.pending`)}),l!==null&&/* @__PURE__ */ (0,s.jsx)(`div`,{className:Q.renameError,role:`alert`,children:l})]})}function at(e,t){let n=e.items??[],r=n.length,i=n.map(e=>e.label??e.id).join(t(`archive.confirm.listSeparator`)),a=r===1?`one`:`other`;switch(e.kind){case`turn`:return t(`archive.confirm.turn`);case`subagent`:return t(`archive.confirm.subagents.${a}`,{n:r,names:i});case`job`:return t(`archive.confirm.jobs.${a}`,{n:r,names:i});case`schedule`:return t(`archive.confirm.schedules.${a}`,{n:r,names:i});default:return t(`archive.confirm.other.${a}`,{kind:e.kind,n:r})}}function ot(e,t){let n,r;return{getSnapshot:()=>{let i=e.getSnapshot();return(r===void 0||i!==n)&&(n=i,r=t(i)),r},subscribe:t=>e.subscribe(t)}}function st({sessionId:e,useMenuOpenState:t,useShortcuts:n,forkSession:r,t:i}){let[,a]=t(),c=n(e=>e.find(e=>e.id===`session.fork`));return/* @__PURE__ */ (0,s.jsx)(o.MenuItemButton,{shortcut:c,icon:/* @__PURE__ */ (0,s.jsx)(o.IconBranchOutlineRegular,{}),onSelect:()=>{a(!1),r(e)},children:i(`menu.fork`)})}function ct({sessionId:e,useSessions:t,useMenuOpenState:n,copySessionLink:r,t:i}){let a=t(t=>{let n=t.byId[e];return n!==void 0&&y(n)!==void 0}),[,c]=n();return a?/* @__PURE__ */ (0,s.jsx)(o.MenuItemButton,{icon:/* @__PURE__ */ (0,s.jsx)(o.IconCopyOutlineRegular,{}),onSelect:()=>{c(!1),r(e)},children:i(`menu.copySessionLink`)}):null}function lt({sessionId:e,usePinned:t,useArchived:n}){return{pinned:t(t=>t.has(e)),archived:n(t=>t.has(e))}}function ut(e){let{sessionId:t,useMenuOpenState:n,pinSession:r,unpinSession:i,t:a}=e,[,c]=n(),{pinned:l,archived:u}=lt(e);return u?null:/* @__PURE__ */ (0,s.jsx)(o.MenuItemButton,{icon:l?/* @__PURE__ */ (0,s.jsx)(o.IconPinFillRegular,{}):/* @__PURE__ */ (0,s.jsx)(o.IconPinOutlineRegular,{}),onSelect:()=>{c(!1),(l?i:r)(t)},children:a(l?`menu.unpinSession`:`menu.pinSession`)})}function dt(e){let{sessionId:t,pinSession:n,unpinSession:r,t:i}=e,{pinned:a,archived:c}=lt(e);return c?null:/* @__PURE__ */ (0,s.jsx)(o.Tooltip,{label:i(a?`actions.unpin`:`actions.pin`),side:`bottom`,align:`end`,delayMs:500,children:/* @__PURE__ */ (0,s.jsx)(`button`,{type:`button`,className:q.iconButton,"aria-label":i(a?`menu.unpinSession`:`menu.pinSession`),onClick:()=>{(a?r:n)(t)},children:a?/* @__PURE__ */ (0,s.jsx)(o.IconPinFillRegular,{size:16}):/* @__PURE__ */ (0,s.jsx)(o.IconPinOutlineRegular,{size:16})})})}function ft({sessionId:e,displayTitle:t,useMenuOpenState:n,useShortcuts:r,requestSessionRename:i,t:a}){let[,c]=n(),l=r(e=>e.find(e=>e.id===`session.rename`));return/* @__PURE__ */ (0,s.jsx)(o.MenuItemButton,{shortcut:l,icon:/* @__PURE__ */ (0,s.jsx)(o.IconEditOutlineRegular,{}),onSelect:()=>{c(!1),i(e,t)},children:a(`rename`)})}function pt({useRenameRequest:e,settleSessionRename:t,renameSession:n,t:r}){let i=e(e=>e);return i===null?null:/* @__PURE__ */ (0,s.jsx)(mt,{request:i,renameSession:n,onSettle:t,t:r},i.sessionId)}function mt({request:e,renameSession:t,onSettle:n,t:r}){let[i,c]=(0,a.useState)(e.currentTitle),[l,u]=(0,a.useState)(!1),[d,f]=(0,a.useState)(null),p=(0,a.useRef)(!1),m=i.trim(),h=l||m===``,g=()=>{l||n()},_=()=>{h||(u(!0),f(null),t(e.sessionId,m).then(()=>{u(!1),n()}).catch(e=>{u(!1),f(e instanceof Error?e.message:String(e))}))};return/* @__PURE__ */ (0,s.jsxs)(o.Modal,{open:!0,onClose:g,closeLabel:r(`close`),title:r(`rename.session.title`),footer:/* @__PURE__ */ (0,s.jsxs)(s.Fragment,{children:[/* @__PURE__ */ (0,s.jsx)(o.Button,{variant:`outline`,disabled:l,onClick:g,children:r(`cancel`)}),/* @__PURE__ */ (0,s.jsx)(o.Button,{variant:`primary`,disabled:h,onClick:_,children:r(`rename`)})]}),children:[/* @__PURE__ */ (0,s.jsx)(`input`,{className:Q.renameInput,value:i,"aria-label":r(`field.sessionName`),"data-modal-autofocus":!0,disabled:l,onFocus:e=>{e.target.select()},onChange:e=>{c(e.target.value),f(null)},onCompositionStart:()=>{p.current=!0},onCompositionEnd:()=>{p.current=!1},onKeyDown:e=>{e.key===`Enter`&&!p.current&&(e.preventDefault(),_())}}),d!==null&&/* @__PURE__ */ (0,s.jsx)(`div`,{className:Q.renameError,role:`alert`,children:d})]})}let ht=6e3;function gt({useToast:e,useStore:t,dismissToast:n,undoArchive:r,showArchived:i,t:a}){let c=e(e=>e),l=t(e=>(e.archivedFilter??`default`)!=="default");if(c===null)return null;if(c.kind===`archived`||c.kind===`stoppedAndArchived`){let{sessionId:e}=c;return/* @__PURE__ */ (0,s.jsx)(o.Toast,{text:a(c.kind===`archived`?`toast.archived`:`toast.stoppedAndArchived`),tone:`success`,holdMs:ht,actions:[{label:a(`toast.archivedUndo`),onClick:()=>{n(),r(e)}},...l?[]:[{prefix:a(`toast.archivedOr`),label:a(`toast.archivedFilter`),onClick:()=>{n(),i()}}]],onDone:n},`toast-${String(c.seq)}`)}return c.kind===`createFailed`||c.kind===`forkFailed`?/* @__PURE__ */ (0,s.jsx)(o.Toast,{text:a(c.kind===`forkFailed`?`toast.forkFailed`:`toast.createFailed`,{message:c.message}),icon:/* @__PURE__ */ (0,s.jsx)(o.IconWarningOutlineRegular,{}),holdMs:ht,onDone:n},`toast-${String(c.seq)}`):/* @__PURE__ */ (0,s.jsx)(o.Toast,{text:_t(c,a),icon:/* @__PURE__ */ (0,s.jsx)(o.IconWarningOutlineRegular,{}),onDone:n},`toast-${String(c.seq)}`)}function _t(e,t){switch(e.kind){case`archiveFailed`:return t(`toast.archiveFailed`,{message:e.message});case`unarchiveFailed`:return t(`toast.unarchiveFailed`,{message:e.message});case`pinFailed`:return t(`toast.pinFailed`,{message:e.message});case`unpinFailed`:return t(`toast.unpinFailed`,{message:e.message});case`defaultWorkspaceFailed`:return t(`defaultWorkspace.failed`);case`archivedNotOpenable`:return t(`toast.archivedNotOpenable`);case`sessionLinkCopied`:return t(`toast.sessionLinkCopied`);case`sessionLinkCopyFailed`:return t(`toast.sessionLinkCopyFailed`);
|
|
25
|
+
dt||lt===null||(ft(!0),mt(null),gt(null),g(lt.workspaceId).then(()=>{mt(lt.workspaceId)}).catch(e=>{ft(!1),gt(e instanceof Error?e.message:String(e))}))};return/* @__PURE__ */ (0,s.jsxs)(`div`,{className:K(Q.root,!e&&Q.rail),children:[/* @__PURE__ */ (0,s.jsxs)(`div`,{className:Q.sectionHeader,children:[e&&/* @__PURE__ */ (0,s.jsx)(`span`,{className:K(Q.sectionLabel,Q.wide,X&&Q.sectionLabelHidden),children:P(`section.sessions`)}),e&&/* @__PURE__ */ (0,s.jsx)(`div`,{className:K(Q.searchSlot,X&&Q.searchSlotExpanded),children:/* @__PURE__ */ (0,s.jsxs)(`div`,{ref:Pe,className:K(Q.search,X&&Q.searchExpanded),onClick:()=>{j(),ke(!0),Fe.current?.focus()},children:[/* @__PURE__ */ (0,s.jsx)(o.Tooltip,{label:P(`search`),shortcutKeys:ie?.keys,side:`bottom`,delayMs:500,disabled:X,children:/* @__PURE__ */ (0,s.jsx)(`button`,{type:`button`,className:Q.searchButton,"aria-label":P(`search.sessions.aria`),"aria-keyshortcuts":ie?.aria,"aria-expanded":X,onClick:()=>{k()},children:/* @__PURE__ */ (0,s.jsx)(o.IconSearchOutlineRegular,{size:16})})}),/* @__PURE__ */ (0,s.jsx)(`input`,{ref:Fe,className:Q.searchInput,type:`text`,placeholder:P(`search.placeholder`),maxLength:500,value:De,tabIndex:X?0:-1,onChange:e=>{Oe(Ke(e.target.value))},onKeyDown:e=>{e.key===`Escape`&&(e.currentTarget.closest(`[data-phone-drawer]`)&&(e.preventDefault(),e.stopPropagation()),Oe(``),ke(!1))}}),X&&/* @__PURE__ */ (0,s.jsx)(`button`,{type:`button`,className:Q.clearButton,"aria-label":P(`search.clear`),onClick:e=>{e.stopPropagation(),Oe(``),ke(!1)},children:/* @__PURE__ */ (0,s.jsx)(o.IconCloseFillRegular,{})})]})}),/* @__PURE__ */ (0,s.jsxs)(`div`,{className:K(Q.headerActions,e&&X&&Q.headerActionsHidden),children:[e&&/* @__PURE__ */ (0,s.jsx)(Je,{groupBy:W,orderBy:G,archivedFilter:ue,onGroupPick:u.setGroupBy,onOrderPick:e=>{u.setOrderBy(e,Y,Te)},onArchivedFilterPick:u.setArchivedFilter,t:P}),le&&/* @__PURE__ */ (0,s.jsx)(o.Tooltip,{label:P(`workspace.add`),shortcutKeys:F?.keys,side:`bottom`,delayMs:500,children:/* @__PURE__ */ (0,s.jsx)(`button`,{ref:Le,type:`button`,className:Q.iconButton,"aria-label":P(`workspace.add`),"aria-keyshortcuts":F?.aria,onClick:()=>{A()},children:/* @__PURE__ */ (0,s.jsx)(o.IconProjectAddOutlineRegular,{size:e?16:18})})})]}),/* @__PURE__ */ (0,s.jsx)(Ue,{t:P,open:Ie,anchorRef:Le,useWorkspaces:c,createWorkspace:y,useDirectoryFlow:S,renderDirectoryFlow:e=>N(`sidebar.workspaces.directoryFlow`,e),addOnly:!0,onBusyChange:ee,side:`right`,onPick:e=>{j(),d(e)},onClose:()=>{j()}})]}),!e&&/* @__PURE__ */ (0,s.jsx)(`div`,{className:Q.search,children:/* @__PURE__ */ (0,s.jsx)(o.Tooltip,{label:P(`search`),shortcutKeys:ie?.keys,children:/* @__PURE__ */ (0,s.jsx)(`button`,{type:`button`,className:Q.searchButton,"aria-label":P(`search.sessions.aria`),"aria-keyshortcuts":ie?.aria,onClick:()=>{k()},children:/* @__PURE__ */ (0,s.jsx)(o.IconSearchOutlineRegular,{size:18})})})}),/* @__PURE__ */ (0,s.jsxs)(`div`,{className:Q.listArea,children:[e&&L.phase===`pending`&&/* @__PURE__ */ (0,s.jsx)(`div`,{className:Q.empty,role:`status`,children:P(`sessions.loading`)}),e&&(Z===``?W===`flat`?/* @__PURE__ */ (0,s.jsx)($e,{usePanelInfo:t,list:L,sessionIds:we,rowState:be,onLeaveArchivedOnly:he,workspaceReady:ge,animationResetKey:`${W}/${G}/${ue}`,useSessionStatus:i,open:me,onSessionRenameRequest:p,renderSlot:N,setSessionOrder:Ee,sectionExpansion:pe,setSectionExpanded:u.setSectionExpanded,revealSessionId:Ae,onSessionRevealed:Be,t:P}):/* @__PURE__ */ (0,s.jsx)(Qe,{usePanelInfo:t,list:L,shortcuts:re,useSessionStatus:i,onSessionRenameRequest:p,renderSlot:N,workspaces:Se,ungroupedSessionIds:Ce,canStartProjectless:ae,workspaceReady:ge,nestWorkspaces:W===`workspace-tree`,animationResetKey:`${W}/${G}/${ue}`,groupExpansion:de,setGroupExpanded:u.setGroupExpanded,sectionExpansion:pe,setSectionExpanded:u.setSectionExpanded,setSessionOrder:Ee,rowState:be,onLeaveArchivedOnly:he,startSession:d,open:me,insertWorkspaceBefore:_,revealSessionId:Ae,onSessionRevealed:Be,home:te,t:P,onRenameRequest:(e,t)=>{Ge({workspaceId:e,storedTitle:z.find(t=>t.workspaceId===e)?.title??t}),Ye(t),nt(null)},onDeleteRequest:(e,t)=>{ut({workspaceId:e,title:t}),gt(null)}}):/* @__PURE__ */ (0,s.jsx)(et,{usePanelInfo:t,useSessions:r,useSessionStatus:i,open:ze,onUnarchive:ct,workspaces:B,archivedSessionIds:H,archivedFilter:ue,query:Z,remote:Me,resultLimit:x,t:P}))]}),/* @__PURE__ */ (0,s.jsxs)(o.Modal,{open:We!==null,onClose:ot,closeLabel:P(`close`),title:P(`rename.workspace.title`),footer:/* @__PURE__ */ (0,s.jsxs)(s.Fragment,{children:[/* @__PURE__ */ (0,s.jsx)(o.Button,{variant:`outline`,disabled:Xe,onClick:ot,children:P(`cancel`)}),/* @__PURE__ */ (0,s.jsx)(o.Button,{variant:`primary`,disabled:at,onClick:st,children:P(`rename`)})]}),children:[/* @__PURE__ */ (0,s.jsx)(`input`,{className:Q.renameInput,value:qe,"aria-label":P(`field.workspaceName`),"data-modal-autofocus":!0,disabled:Xe,onFocus:e=>{e.target.select()},onChange:e=>{Ye(e.target.value),nt(null)},onCompositionStart:()=>{Re.current=!0},onCompositionEnd:()=>{Re.current=!1},onKeyDown:e=>{e.key===`Enter`&&!Re.current&&(e.preventDefault(),st())}}),it&&/* @__PURE__ */ (0,s.jsx)(`div`,{className:Q.renameError,role:`alert`,children:P(`conflict.named`,{name:rt})}),tt!==null&&/* @__PURE__ */ (0,s.jsx)(`div`,{className:Q.renameError,role:`alert`,children:tt})]}),/* @__PURE__ */ (0,s.jsxs)(o.Modal,{open:lt!==null,onClose:_t,closeLabel:P(`close`),title:P(`delete.workspace`),...lt===null?{}:{description:P(`delete.desc`,{name:lt.title})},footer:/* @__PURE__ */ (0,s.jsxs)(s.Fragment,{children:[/* @__PURE__ */ (0,s.jsx)(o.Button,{variant:`outline`,disabled:dt,onClick:_t,children:P(`cancel`)}),/* @__PURE__ */ (0,s.jsx)(o.Button,{variant:`outline`,className:Q.deleteAction,disabled:dt,onClick:vt,children:P(`delete.workspace`)})]}),children:[dt&&/* @__PURE__ */ (0,s.jsx)(`div`,{className:Q.deleteStatus,role:`status`,children:P(`delete.pending`)}),ht!==null&&/* @__PURE__ */ (0,s.jsx)(`div`,{className:Q.renameError,role:`alert`,children:ht})]}),I.forkError!==null&&/* @__PURE__ */ (0,s.jsx)(o.Toast,{text:P(I.forkError.reason===`unavailable`?`shortcut.noCompletedTurn`:`shortcut.forkFailed`),onDone:M},I.forkError.seq)]})}function nt({sessionId:e,useArchived:t,useMenuOpenState:n,useShortcuts:r,archiveSession:i,unarchiveSession:a,t:c}){let[,l]=n(),u=r(e=>e.find(e=>e.id===`session.archive`)),d=t(t=>t.has(e));return/* @__PURE__ */ (0,s.jsx)(o.MenuItemButton,{shortcut:d?void 0:u,icon:d?/* @__PURE__ */ (0,s.jsx)(o.IconUnarchiveOutlineRegular,{size:16}):/* @__PURE__ */ (0,s.jsx)(o.IconArchiveOutlineRegular,{size:16}),onSelect:()=>{l(!1),(d?a:i)(e)},children:c(d?`menu.unarchiveSession`:`menu.archiveSession`)})}function rt({sessionId:e,useArchived:t,archiveSession:n,unarchiveSession:r,t:i}){let a=t(t=>t.has(e));return/* @__PURE__ */ (0,s.jsx)(o.Tooltip,{label:i(a?`actions.unarchive`:`actions.archive`),side:`bottom`,align:`end`,delayMs:500,children:/* @__PURE__ */ (0,s.jsx)(`button`,{type:`button`,className:q.iconButton,"aria-label":i(a?`menu.unarchiveSession`:`menu.archiveSession`),onClick:()=>{(a?r:n)(e)},children:a?/* @__PURE__ */ (0,s.jsx)(o.IconUnarchiveOutlineRegular,{size:16}):/* @__PURE__ */ (0,s.jsx)(o.IconArchiveOutlineRegular,{size:16})})})}function it({useArchiveRequest:e,settleSessionArchive:t,stopAndArchiveSession:n,t:r}){let i=e(e=>e);return i===null?null:/* @__PURE__ */ (0,s.jsx)(at,{request:i,stopAndArchiveSession:n,onSettle:t,t:r},i.sessionId)}function at({request:e,stopAndArchiveSession:t,onSettle:n,t:r}){let[i,c]=(0,a.useState)(!1),[l,u]=(0,a.useState)(null),d=()=>{i||n()};return/* @__PURE__ */ (0,s.jsxs)(o.Modal,{phoneSidebar:!0,open:!0,onClose:d,closeLabel:r(`close`),title:r(`archive.confirm.title`),description:r(`archive.confirm.desc`,{title:e.displayTitle}),footer:/* @__PURE__ */ (0,s.jsxs)(s.Fragment,{children:[/* @__PURE__ */ (0,s.jsx)(o.Button,{variant:`outline`,disabled:i,onClick:d,children:r(`cancel`)}),/* @__PURE__ */ (0,s.jsx)(o.Button,{variant:`outline`,className:Q.deleteAction,disabled:i,onClick:()=>{c(!0),u(null),t(e.sessionId).then(()=>{c(!1),n()}).catch(e=>{c(!1),u(e instanceof Error?e.message:String(e))})},children:r(`archive.confirm.action`)})]}),children:[/* @__PURE__ */ (0,s.jsx)(`ul`,{className:Q.archiveActivity,"aria-label":r(`archive.confirm.activity`),children:e.activity.map((e,t)=>/* @__PURE__ */ (0,s.jsx)(`li`,{children:ot(e,r)},`${e.kind}-${String(t)}`))}),i&&/* @__PURE__ */ (0,s.jsx)(`div`,{className:Q.deleteStatus,role:`status`,children:r(`archive.confirm.pending`)}),l!==null&&/* @__PURE__ */ (0,s.jsx)(`div`,{className:Q.renameError,role:`alert`,children:l})]})}function ot(e,t){let n=e.items??[],r=n.length,i=n.map(e=>e.label??e.id).join(t(`archive.confirm.listSeparator`)),a=r===1?`one`:`other`;switch(e.kind){case`turn`:return t(`archive.confirm.turn`);case`subagent`:return t(`archive.confirm.subagents.${a}`,{n:r,names:i});case`job`:return t(`archive.confirm.jobs.${a}`,{n:r,names:i});case`schedule`:return t(`archive.confirm.schedules.${a}`,{n:r,names:i});default:return t(`archive.confirm.other.${a}`,{kind:e.kind,n:r})}}function st(e,t){let n,r;return{getSnapshot:()=>{let i=e.getSnapshot();return(r===void 0||i!==n)&&(n=i,r=t(i)),r},subscribe:t=>e.subscribe(t)}}function ct({sessionId:e,useMenuOpenState:t,useShortcuts:n,forkSession:r,t:i}){let[,a]=t(),c=n(e=>e.find(e=>e.id===`session.fork`));return/* @__PURE__ */ (0,s.jsx)(o.MenuItemButton,{shortcut:c,icon:/* @__PURE__ */ (0,s.jsx)(o.IconBranchOutlineRegular,{}),onSelect:()=>{a(!1),r(e)},children:i(`menu.fork`)})}function lt({sessionId:e,useSessions:t,useMenuOpenState:n,copySessionLink:r,t:i}){let a=t(t=>{let n=t.byId[e];return n!==void 0&&y(n)!==void 0}),[,c]=n();return a?/* @__PURE__ */ (0,s.jsx)(o.MenuItemButton,{icon:/* @__PURE__ */ (0,s.jsx)(o.IconCopyOutlineRegular,{}),onSelect:()=>{c(!1),r(e)},children:i(`menu.copySessionLink`)}):null}function ut({sessionId:e,usePinned:t,useArchived:n}){return{pinned:t(t=>t.has(e)),archived:n(t=>t.has(e))}}function dt(e){let{sessionId:t,useMenuOpenState:n,pinSession:r,unpinSession:i,t:a}=e,[,c]=n(),{pinned:l,archived:u}=ut(e);return u?null:/* @__PURE__ */ (0,s.jsx)(o.MenuItemButton,{icon:l?/* @__PURE__ */ (0,s.jsx)(o.IconPinFillRegular,{}):/* @__PURE__ */ (0,s.jsx)(o.IconPinOutlineRegular,{}),onSelect:()=>{c(!1),(l?i:r)(t)},children:a(l?`menu.unpinSession`:`menu.pinSession`)})}function ft(e){let{sessionId:t,pinSession:n,unpinSession:r,t:i}=e,{pinned:a,archived:c}=ut(e);return c?null:/* @__PURE__ */ (0,s.jsx)(o.Tooltip,{label:i(a?`actions.unpin`:`actions.pin`),side:`bottom`,align:`end`,delayMs:500,children:/* @__PURE__ */ (0,s.jsx)(`button`,{type:`button`,className:q.iconButton,"aria-label":i(a?`menu.unpinSession`:`menu.pinSession`),onClick:()=>{(a?r:n)(t)},children:a?/* @__PURE__ */ (0,s.jsx)(o.IconPinFillRegular,{size:16}):/* @__PURE__ */ (0,s.jsx)(o.IconPinOutlineRegular,{size:16})})})}function pt({sessionId:e,displayTitle:t,useMenuOpenState:n,useShortcuts:r,requestSessionRename:i,t:a}){let[,c]=n(),l=r(e=>e.find(e=>e.id===`session.rename`));return/* @__PURE__ */ (0,s.jsx)(o.MenuItemButton,{shortcut:l,icon:/* @__PURE__ */ (0,s.jsx)(o.IconEditOutlineRegular,{}),onSelect:()=>{c(!1),i(e,t)},children:a(`rename`)})}function mt({useRenameRequest:e,settleSessionRename:t,renameSession:n,t:r}){let i=e(e=>e);return i===null?null:/* @__PURE__ */ (0,s.jsx)(ht,{request:i,renameSession:n,onSettle:t,t:r},i.sessionId)}function ht({request:e,renameSession:t,onSettle:n,t:r}){let[i,c]=(0,a.useState)(e.currentTitle),[l,u]=(0,a.useState)(!1),[d,f]=(0,a.useState)(null),p=(0,a.useRef)(!1),m=i.trim(),h=l||m===``,g=()=>{l||n()},_=()=>{h||(u(!0),f(null),t(e.sessionId,m).then(()=>{u(!1),n()}).catch(e=>{u(!1),f(e instanceof Error?e.message:String(e))}))};return/* @__PURE__ */ (0,s.jsxs)(o.Modal,{phoneSidebar:!0,open:!0,onClose:g,closeLabel:r(`close`),title:r(`rename.session.title`),footer:/* @__PURE__ */ (0,s.jsxs)(s.Fragment,{children:[/* @__PURE__ */ (0,s.jsx)(o.Button,{variant:`outline`,disabled:l,onClick:g,children:r(`cancel`)}),/* @__PURE__ */ (0,s.jsx)(o.Button,{variant:`primary`,disabled:h,onClick:_,children:r(`rename`)})]}),children:[/* @__PURE__ */ (0,s.jsx)(`input`,{className:Q.renameInput,value:i,"aria-label":r(`field.sessionName`),"data-modal-autofocus":!0,disabled:l,onFocus:e=>{e.target.select()},onChange:e=>{c(e.target.value),f(null)},onCompositionStart:()=>{p.current=!0},onCompositionEnd:()=>{p.current=!1},onKeyDown:e=>{e.key===`Enter`&&!p.current&&(e.preventDefault(),_())}}),d!==null&&/* @__PURE__ */ (0,s.jsx)(`div`,{className:Q.renameError,role:`alert`,children:d})]})}let gt=6e3;function _t({useToast:e,useStore:t,dismissToast:n,undoArchive:r,showArchived:i,t:a}){let c=e(e=>e),l=t(e=>(e.archivedFilter??`default`)!=="default");if(c===null)return null;if(c.kind===`archived`||c.kind===`stoppedAndArchived`){let{sessionId:e}=c;return/* @__PURE__ */ (0,s.jsx)(o.Toast,{text:a(c.kind===`archived`?`toast.archived`:`toast.stoppedAndArchived`),tone:`success`,holdMs:gt,actions:[{label:a(`toast.archivedUndo`),onClick:()=>{n(),r(e)}},...l?[]:[{prefix:a(`toast.archivedOr`),label:a(`toast.archivedFilter`),onClick:()=>{n(),i()}}]],onDone:n},`toast-${String(c.seq)}`)}return c.kind===`createFailed`||c.kind===`forkFailed`?/* @__PURE__ */ (0,s.jsx)(o.Toast,{text:a(c.kind===`forkFailed`?`toast.forkFailed`:`toast.createFailed`,{message:c.message}),icon:/* @__PURE__ */ (0,s.jsx)(o.IconWarningOutlineRegular,{}),holdMs:gt,onDone:n},`toast-${String(c.seq)}`):/* @__PURE__ */ (0,s.jsx)(o.Toast,{text:vt(c,a),icon:/* @__PURE__ */ (0,s.jsx)(o.IconWarningOutlineRegular,{}),onDone:n},`toast-${String(c.seq)}`)}function vt(e,t){switch(e.kind){case`archiveFailed`:return t(`toast.archiveFailed`,{message:e.message});case`unarchiveFailed`:return t(`toast.unarchiveFailed`,{message:e.message});case`pinFailed`:return t(`toast.pinFailed`,{message:e.message});case`unpinFailed`:return t(`toast.unpinFailed`,{message:e.message});case`defaultWorkspaceFailed`:return t(`defaultWorkspace.failed`);case`archivedNotOpenable`:return t(`toast.archivedNotOpenable`);case`sessionLinkCopied`:return t(`toast.sessionLinkCopied`);case`sessionLinkCopyFailed`:return t(`toast.sessionLinkCopyFailed`);
|
|
26
26
|
/* v8 ignore next 2 -- closed-union backstop; only reached if a notice kind is forged */
|
|
27
|
-
default:return h(e)}}let vt={"defaultWorkspace.failed":`无法创建默认工作区,请通过“选择工作区”选择文件夹`,"draft.workspaceRequired":`请先选择工作区`,"draft.initializationFailed":`暂时无法填入草稿,请稍后重试`,"group.ungrouped":`最近`,"session.new":`新会话`,"session.untitled":`未命名`,"shortcut.noSession":`请先选择一个会话`,"shortcut.noPicker":`目录选择器不可用`,"shortcut.directoryBusy":`正在选择或添加工作区`,"shortcut.noCompletedTurn":`当前会话没有已结束的轮次`,"shortcut.forkFailed":`无法分叉会话,请重试`,"section.workspaces":`工作区`,"section.sessions":`会话`,"section.pinned":`置顶`,"viewOptions.label":`视图选项`,"groupBy.label":`分组方式`,"groupBy.workspace":`按工作区`,"groupBy.workspaceTree":`按工作区树`,"groupBy.flat":`单列表`,"orderBy.label":`排序方式`,"orderBy.manual":`手动排序`,"orderBy.updated":`最近更新`,"filterBy.label":`筛选会话`,"viewOptions.hideArchived":`隐藏已归档`,"viewOptions.showArchived":`全部对话(显示已归档)`,"viewOptions.onlyArchived":`仅显示已归档`,"sessions.expand":`展开显示`,"sessions.collapse":`收起`,"sessions.loading":`正在加载历史会话…`,"workspaces.expand":`展开显示`,"empty.none":`暂无会话`,"empty.noneArchived":`暂无已归档会话`,"empty.viewOthers":`查看其他会话`,"empty.noMatches":`无匹配结果`,"workspace.add":`添加工作区`,"search.sessions.aria":`搜索会话`,"search.placeholder":`搜索会话名称`,"search.clear":`清除搜索`,"search.results.aria":`搜索结果`,"search.pending":`正在搜索会话历史…`,"search.noMatches":`无匹配会话`,"search.hasMore":`仅显示前 {n} 条结果,请缩小搜索范围。`,"menu.addWorkspace":`添加工作区…`,"menu.noWorkspace":`不选择工作区`,"picker.loading":`正在加载工作区…`,"conflict.named":`已存在名为“{name}”的工作区。`,"folderError.title":`无法打开文件夹`,"folderError.retry":`重新选择`,rename:`重命名`,"rename.workspace.title":`重命名工作区`,"rename.session.title":`重命名会话`,"field.workspaceName":`工作区名称`,"field.sessionName":`会话名称`,"delete.workspace":`删除工作区`,"delete.desc":`将把“{name}”从工作区列表中移除。文件夹与会话记录会保留,其会话将显示在“未分组”下。`,"delete.pending":`正在删除工作区…`,"menu.copySessionLink":`复制会话链接`,"toast.sessionLinkCopied":`已复制`,"toast.sessionLinkCopyFailed":`复制会话链接失败`,"menu.fork":`分叉会话`,"menu.archiveSession":`归档会话`,"menu.unarchiveSession":`取消归档`,"menu.pinSession":`置顶会话`,"menu.unpinSession":`取消置顶`,"row.archived":`已归档`,"row.pinned":`已置顶`,"toast.archivedNotOpenable":`已归档对话暂时无法查看,请取消归档后查看`,"toast.archived":`会话已归档,可`,"toast.stoppedAndArchived":`已停止并归档,可`,"archive.confirm.title":`停止并归档此会话?`,"archive.confirm.desc":`“{title}”仍有正在进行的工作。归档会先停止这些工作;之后可在侧栏筛选“全部对话(显示已归档)”中恢复会话,被停止的工作不会自动继续。`,"archive.confirm.activity":`将被停止的工作`,"archive.confirm.turn":`进行中的回合`,"archive.confirm.subagents.one":`{n} 个运行中的子智能体:{names}`,"archive.confirm.subagents.other":`{n} 个运行中的子智能体:{names}`,"archive.confirm.jobs.one":`{n} 个后台任务:{names}`,"archive.confirm.jobs.other":`{n} 个后台任务:{names}`,"archive.confirm.schedules.one":`{n} 条定时提醒:{names}`,"archive.confirm.schedules.other":`{n} 条定时提醒:{names}`,"archive.confirm.other.one":`{n} 项其他工作({kind})`,"archive.confirm.other.other":`{n} 项其他工作({kind})`,"archive.confirm.listSeparator":`、`,"archive.confirm.action":`停止并归档`,"archive.confirm.pending":`正在停止并归档…`,"toast.archivedUndo":`撤销`,"toast.archivedOr":`或`,"toast.archivedFilter":`筛选已归档会话`,"toast.archiveFailed":`归档未确认,请检查会话状态:{message}`,"toast.unarchiveFailed":`取消归档未确认,请刷新后检查:{message}`,"toast.pinFailed":`置顶未确认,请刷新后检查:{message}`,"toast.unpinFailed":`取消置顶未确认,请刷新后检查:{message}`,"toast.createFailed":`新建会话失败:{message}`,"toast.forkFailed":`分叉未完成:{message}`,"sessions.count.one":`{n} 个会话`,"sessions.count.other":`{n} 个会话`,"actions.workspace.aria":`工作区“{name}”的操作`,"actions.session.aria":`会话“{name}”的操作`,"actions.archive":`归档会话`,"actions.unarchive":`取消归档`,"actions.pin":`置顶会话`,"actions.unpin":`取消置顶`,"actions.newSession":`新会话`,"actions.newSession.aria":`在“{name}”中新建会话`,"status.running":`进行中`,"status.subagentsRunning.one":`{n} 个子智能体运行中`,"status.subagentsRunning.other":`{n} 个子智能体运行中`,"status.idle":`空闲`,"status.waitingApproval":`等待审批`,"status.planReview":`计划待审`,"status.waitingAnswer":`等待回答`,"status.compact.approval":`待审批`,"status.compact.planReview":`计划待审`,"status.compact.answer":`待回答`,"status.completed":`已完成`,"hover.created":`创建于 {time}`,"hover.copied":`已复制`,"date.ymd":`{y}年{m}月{d}日`,"time.now":`刚刚`,"time.minutes":`{n}分钟`,"time.hours":`{n}小时`,"time.days":`{n}天`,"time.months":`{n}个月`,"time.years":`{n}年`,"time.ago":`{t}前`},yt={"defaultWorkspace.failed":`Unable to create default workspace. Use Choose workspace to select a folder.`,"draft.workspaceRequired":`Choose a workspace first.`,"draft.initializationFailed":`Could not fill the draft. Please try again shortly.`,"group.ungrouped":`Recents`,"session.new":`New Session`,"session.untitled":`Untitled`,"shortcut.noSession":`Select a session first`,"shortcut.noPicker":`Directory picker unavailable`,"shortcut.directoryBusy":`Selecting or adding a workspace`,"shortcut.noCompletedTurn":`This session has no completed turn`,"shortcut.forkFailed":`Could not fork the session. Try again.`,"section.workspaces":`Workspaces`,"section.sessions":`Sessions`,"section.pinned":`Pinned`,"viewOptions.label":`View options`,"groupBy.label":`Group by`,"groupBy.workspace":`WorkSpace`,"groupBy.workspaceTree":`Workspace Tree`,"groupBy.flat":`In one list`,"orderBy.label":`Order by`,"orderBy.manual":`Manual`,"orderBy.updated":`Last updated`,"filterBy.label":`Filter sessions`,"viewOptions.hideArchived":`Hide archived`,"viewOptions.showArchived":`All conversations (show archived)`,"viewOptions.onlyArchived":`Archived only`,"sessions.expand":`Show {n} more`,"sessions.collapse":`Show less`,"sessions.loading":`Loading conversation history…`,"workspaces.expand":`Show all workspaces`,"empty.none":`No sessions yet`,"empty.noneArchived":`No archived sessions yet`,"empty.viewOthers":`View other sessions`,"empty.noMatches":`No matches`,"workspace.add":`Add workspace`,"search.sessions.aria":`Search sessions`,"search.placeholder":`Search session names`,"search.clear":`Clear search`,"search.results.aria":`Search results`,"search.pending":`Searching session history…`,"search.noMatches":`No matching sessions`,"search.hasMore":`Showing the first {n} results. Narrow your search.`,"menu.addWorkspace":`Add workspace…`,"menu.noWorkspace":`No workspace`,"picker.loading":`Loading workspaces…`,"conflict.named":`A workspace named “{name}” already exists.`,"folderError.title":`Couldn’t open folder`,"folderError.retry":`Choose again`,rename:`Rename`,"rename.workspace.title":`Rename workspace`,"rename.session.title":`Rename session`,"field.workspaceName":`Workspace name`,"field.sessionName":`Session name`,"delete.workspace":`Delete workspace`,"delete.desc":`This removes “{name}” from the workspace list. The folder and session logs will be kept. Its sessions will appear under Ungrouped.`,"delete.pending":`Deleting workspace…`,"menu.copySessionLink":`Copy session link`,"toast.sessionLinkCopied":`Copied`,"toast.sessionLinkCopyFailed":`Could not copy session link`,"menu.fork":`Fork session`,"menu.archiveSession":`Archive session`,"menu.unarchiveSession":`Unarchive session`,"menu.pinSession":`Pin session`,"menu.unpinSession":`Unpin session`,"row.archived":`Archived`,"row.pinned":`Pinned`,"toast.archivedNotOpenable":`Archived sessions cannot be opened. Unarchive it to view.`,"toast.archived":`Session archived. You can `,"toast.stoppedAndArchived":`Session stopped and archived. You can `,"archive.confirm.title":`Stop and archive this session?`,"archive.confirm.desc":`“{title}” still has work in progress. Archiving stops it first; you can restore the session later from the “All conversations (show archived)” filter in the sidebar, and the stopped work will not resume on its own.`,"archive.confirm.activity":`Work that will be stopped`,"archive.confirm.turn":`The turn in progress`,"archive.confirm.subagents.one":`{n} running subagent: {names}`,"archive.confirm.subagents.other":`{n} running subagents: {names}`,"archive.confirm.jobs.one":`{n} background job: {names}`,"archive.confirm.jobs.other":`{n} background jobs: {names}`,"archive.confirm.schedules.one":`{n} scheduled reminder: {names}`,"archive.confirm.schedules.other":`{n} scheduled reminders: {names}`,"archive.confirm.other.one":`{n} other item of work ({kind})`,"archive.confirm.other.other":`{n} other items of work ({kind})`,"archive.confirm.listSeparator":`, `,"archive.confirm.action":`Stop and archive`,"archive.confirm.pending":`Stopping and archiving…`,"toast.archivedUndo":`undo`,"toast.archivedOr":` or `,"toast.archivedFilter":`filter archived sessions`,"toast.archiveFailed":`Archive not confirmed. Check session status: {message}`,"toast.unarchiveFailed":`Unarchive not confirmed. Refresh to check: {message}`,"toast.pinFailed":`Pin not confirmed. Refresh to check: {message}`,"toast.unpinFailed":`Unpin not confirmed. Refresh to check: {message}`,"toast.createFailed":`New session failed: {message}`,"toast.forkFailed":`Fork did not complete: {message}`,"sessions.count.one":`{n} session`,"sessions.count.other":`{n} sessions`,"actions.workspace.aria":`Workspace actions for {name}`,"actions.session.aria":`Session actions for {name}`,"actions.archive":`Archive`,"actions.unarchive":`Unarchive`,"actions.pin":`Pin`,"actions.unpin":`Unpin`,"actions.newSession":`New session`,"actions.newSession.aria":`New session in {name}`,"status.running":`Running`,"status.subagentsRunning.one":`{n} subagent running`,"status.subagentsRunning.other":`{n} subagents running`,"status.idle":`Idle`,"status.waitingApproval":`Waiting for approval`,"status.planReview":`Plan awaiting review`,"status.waitingAnswer":`Waiting for answer`,"status.compact.approval":`Approval`,"status.compact.planReview":`Plan review`,"status.compact.answer":`Answer`,"status.completed":`Completed`,"hover.created":`Created {time}`,"hover.copied":`Copied`,"date.ymd":`{y}-{m}-{d}`,"time.now":`now`,"time.minutes":`{n}min`,"time.hours":`{n}h`,"time.days":`{n}d`,"time.months":`{n}mo`,"time.years":`{n}y`,"time.ago":`{t} ago`},$=`workspace`,bt=[`slots`,`sessions`,`workspaces`,`locale`,`remote`,`remote.directoryPicker`,`layout`,`shortcuts`];function xt(e){let t=e.get(`sessions`),n=e.get(`workspaces`),i=V(),a=i.create();a.actions.setArchivedFilter(`default`);let o={...i,create:()=>a},s=(0,r.createSnapshotStore)(null),d=0,f=e=>{s.set({...e,seq:++d})},p=new U(e,e.remote.directoryPicker,n,t,a.actions,f);e.slots.provideRoot({hooks:{workspaces:n.list}}),e.effect(()=>e.locale.register($,{zh:vt,en:yt}),`ui-workspace: dictionaries`);let m=l(),h=async(e,n)=>{let r=await t.search(e,n);if(!r.ok)throw Error(r.error.message);return r.value},g=t=>({getSnapshot:()=>e.slots.entries(t).length>0,subscribe:n=>e.slots.subscribe(t,n)}),_=g(`sidebar.workspaces.directoryFlow`),v={getSnapshot:()=>e.remote.$host,subscribe:t=>e.on(`connection/reset`,t)},x=g(`conversation.hero.workspace.directoryFlow`),S=e=>{p.openSession(e)},C=ot(n.list,e=>new Set(e.pinnedSessionIds)),w=ot(n.list,e=>new Set(e.archivedSessionIds)),T=ot(m.state,e=>e.renameTarget),E=(0,r.createSnapshotStore)(null),D=m.rename,O=e=>{p.unarchiveSession(e).catch(e=>{f({kind:`unarchiveFailed`,message:e instanceof Error?e.message:String(e)})})},k=async(e,n)=>{let r=await t.using(e,{source:`workspaceOperation`},e=>e.binding.session.rename(n));if(!r.ok)throw Error(r.error.message)},A=()=>({hooks:{pinned:C,archived:w},pinSession:e=>{p.pinSession(e).catch(e=>{f({kind:`pinFailed`,message:e instanceof Error?e.message:String(e)})})},unpinSession:e=>{p.unpinSession(e).catch(e=>{f({kind:`unpinFailed`,message:e instanceof Error?e.message:String(e)})})}}),j=()=>({hooks:{archived:w},archiveSession:e=>{p.archiveSession(e).then(()=>{f({kind:`archived`,sessionId:e})}).catch(n=>{let r=St(n);if(r===void 0){f({kind:`archiveFailed`,message:n instanceof Error?n.message:String(n)});return}let i=t.list.getSnapshot().byId[e]?.displayTitle??e;E.set({sessionId:e,displayTitle:i,activity:r})})},unarchiveSession:O});u(e,p,m,j().archiveSession);let ee=()=>({hooks:{archiveRequest:E},settleSessionArchive:()=>{E.set(null)},stopAndArchiveSession:async e=>{await p.archiveSession(e,{stopActivity:!0}),f({kind:`stoppedAndArchived`,sessionId:e})}}),M=()=>({forkSession:t=>{p.forkSession(t,n=>{e.get(`productAnalytics`)?.track(`branch_session_click`,{session_id:n,parent_session_id:t,click_position:`sidebar`})}).then(e=>p.openSession(e)).catch(e=>{f({kind:`forkFailed`,message:e instanceof Error?e.message:String(e)})})}}),N=()=>({copySessionLink:e=>{let n=t.list.getSnapshot().byId[e],r=n===void 0?void 0:y(n);r!==void 0&&(async()=>{try{await navigator.clipboard.writeText(b(r)),f({kind:`sessionLinkCopied`})}catch{f({kind:`sessionLinkCopyFailed`})}})()}}),P=()=>({requestSessionRename:D}),te=()=>({hooks:{renameRequest:T},settleSessionRename:m.closeRename,renameSession:k}),ne=()=>({hooks:{toast:s},dismissToast:()=>{s.set(null)},undoArchive:O,showArchived:()=>{a.actions.setArchivedFilter(`show`)}}),F=()=>({startSession:e=>{p.startSession(e)},open:S,searchSessions:h,searchResultLimit:t.searchResultLimit,requestSessionRename:D,notifyArchivedNotOpenable:()=>{f({kind:`archivedNotOpenable`})},renameWorkspace:async(e,t)=>{await n.rename(e,t)},deleteWorkspace:async e=>{await n.delete(e)},insertWorkspaceBefore:async(e,t)=>{await n.insertBefore(e,t)},unarchiveSession:async e=>{await p.unarchiveSession(e)},createWorkspace:e=>n.create(e),requestSearch:m.search,requestAddWorkspace:m.add,closeAddWorkspace:m.closeAdd,setDirectoryBusy:m.directoryBusy,dismissForkError:m.dismissForkError,hooks:{directoryFlow:_,hostInfo:v,workspaceShortcuts:m.state,shortcuts:e.shortcuts.catalog}}),re=()=>({createWorkspace:e=>n.create(e),hooks:{directoryFlow:x}});e.slots.inject(`sidebar.workspaces`,()=>e.slots.register({name:`sidebar.workspaces`,children:{"sidebar.workspaces.directoryFlow":{kind:`single`,scope:`root`},"sidebar.workspaces.session.menu.item":{kind:`list`,scope:`root`,inject:{hooks:{menuOpenState:c,shortcuts:e.shortcuts.catalog}}},"sidebar.workspaces.session.row.action":{kind:`list`,scope:`root`},"sidebar.session.row.identity":{kind:`list`,scope:`root`},"sidebar.session.row.leading":{kind:`list`,scope:`root`},"sidebar.session.row.hover":{kind:`list`,scope:`root`}},store:o,inject:F,locale:$},et)),e.slots.inject(`sidebar.workspaces.session.menu.item`,function*(){yield e.slots.register({name:`sidebar.workspaces.session.menu.item`,id:`pin`,order:100,locale:$,inject:A},ut),yield e.slots.register({name:`sidebar.workspaces.session.menu.item`,id:`rename`,order:200,locale:$,inject:P},ft),yield e.slots.register({name:`sidebar.workspaces.session.menu.item`,id:`fork`,order:300,locale:$,inject:M},st),yield e.slots.register({name:`sidebar.workspaces.session.menu.item`,id:`copy-session-link`,order:350,locale:$,inject:N},ct),yield e.slots.register({name:`sidebar.workspaces.session.menu.item`,id:`archive`,order:400,locale:$,inject:j},tt)}),e.slots.inject(`sidebar.workspaces.session.row.action`,function*(){yield e.slots.register({name:`sidebar.workspaces.session.row.action`,id:`archive`,order:100,locale:$,inject:j},nt),yield e.slots.register({name:`sidebar.workspaces.session.row.action`,id:`pin`,order:200,locale:$,inject:A},dt)}),e.slots.inject(`shell.overlay`,function*(){yield e.slots.register({name:`shell.overlay`,id:`workspace.session-rename`,locale:$,inject:te},pt),yield e.slots.register({name:`shell.overlay`,id:`workspace.session-archive`,locale:$,inject:ee},rt),yield e.slots.register({name:`shell.overlay`,id:`workspace.row-toast`,locale:$,store:o,inject:ne},gt)}),e.slots.inject(`conversation.hero.workspace`,()=>e.slots.register({name:`conversation.hero.workspace`,children:{"conversation.hero.workspace.directoryFlow":{kind:`single`,scope:`root`}},inject:re,locale:$},Ue))}function St(e){if(!(e instanceof Error)||e.name!==`WorkspaceArchiveError`)return;let{rpcError:t}=e;return t.code===`workspace/session-active`?t.details.activity:void 0}return n.apply=xt,n.inject=bt,t.exports}});
|
|
27
|
+
default:return h(e)}}let yt={"defaultWorkspace.failed":`无法创建默认工作区,请通过“选择工作区”选择文件夹`,"draft.workspaceRequired":`请先选择工作区`,"draft.initializationFailed":`暂时无法填入草稿,请稍后重试`,"group.ungrouped":`最近`,"session.new":`新会话`,"session.untitled":`未命名`,"session.backToList":`返回会话列表`,"shortcut.noSession":`请先选择一个会话`,"shortcut.noPicker":`目录选择器不可用`,"shortcut.directoryBusy":`正在选择或添加工作区`,"shortcut.noCompletedTurn":`当前会话没有已结束的轮次`,"shortcut.forkFailed":`无法分叉会话,请重试`,"section.workspaces":`工作区`,"section.sessions":`会话`,"section.pinned":`置顶`,"viewOptions.label":`视图选项`,"groupBy.label":`分组方式`,"groupBy.workspace":`按工作区`,"groupBy.workspaceTree":`按工作区树`,"groupBy.flat":`单列表`,"orderBy.label":`排序方式`,"orderBy.manual":`手动排序`,"orderBy.updated":`最近更新`,"filterBy.label":`筛选会话`,"viewOptions.hideArchived":`隐藏已归档`,"viewOptions.showArchived":`全部对话(显示已归档)`,"viewOptions.onlyArchived":`仅显示已归档`,"sessions.expand":`展开显示`,"sessions.collapse":`收起`,"sessions.loading":`正在加载历史会话…`,"workspaces.expand":`展开显示`,"empty.none":`暂无会话`,"empty.noneArchived":`暂无已归档会话`,"empty.viewOthers":`查看其他会话`,"empty.noMatches":`无匹配结果`,"workspace.add":`添加工作区`,"search.sessions.aria":`搜索会话`,"search.placeholder":`搜索会话名称`,"search.clear":`清除搜索`,"search.results.aria":`搜索结果`,"search.pending":`正在搜索会话历史…`,"search.noMatches":`无匹配会话`,"search.hasMore":`仅显示前 {n} 条结果,请缩小搜索范围。`,"menu.addWorkspace":`添加工作区…`,"menu.noWorkspace":`不选择工作区`,"picker.loading":`正在加载工作区…`,"conflict.named":`已存在名为“{name}”的工作区。`,"folderError.title":`无法打开文件夹`,"folderError.retry":`重新选择`,rename:`重命名`,"rename.workspace.title":`重命名工作区`,"rename.session.title":`重命名会话`,"field.workspaceName":`工作区名称`,"field.sessionName":`会话名称`,"delete.workspace":`删除工作区`,"delete.desc":`将把“{name}”从工作区列表中移除。文件夹与会话记录会保留,其会话将显示在“未分组”下。`,"delete.pending":`正在删除工作区…`,"menu.copySessionLink":`复制会话链接`,"toast.sessionLinkCopied":`已复制`,"toast.sessionLinkCopyFailed":`复制会话链接失败`,"menu.fork":`分叉会话`,"menu.archiveSession":`归档会话`,"menu.unarchiveSession":`取消归档`,"menu.pinSession":`置顶会话`,"menu.unpinSession":`取消置顶`,"row.archived":`已归档`,"row.pinned":`已置顶`,"toast.archivedNotOpenable":`已归档对话暂时无法查看,请取消归档后查看`,"toast.archived":`会话已归档,可`,"toast.stoppedAndArchived":`已停止并归档,可`,"archive.confirm.title":`停止并归档此会话?`,"archive.confirm.desc":`“{title}”仍有正在进行的工作。归档会先停止这些工作;之后可在侧栏筛选“全部对话(显示已归档)”中恢复会话,被停止的工作不会自动继续。`,"archive.confirm.activity":`将被停止的工作`,"archive.confirm.turn":`进行中的回合`,"archive.confirm.subagents.one":`{n} 个运行中的子智能体:{names}`,"archive.confirm.subagents.other":`{n} 个运行中的子智能体:{names}`,"archive.confirm.jobs.one":`{n} 个后台任务:{names}`,"archive.confirm.jobs.other":`{n} 个后台任务:{names}`,"archive.confirm.schedules.one":`{n} 条定时提醒:{names}`,"archive.confirm.schedules.other":`{n} 条定时提醒:{names}`,"archive.confirm.other.one":`{n} 项其他工作({kind})`,"archive.confirm.other.other":`{n} 项其他工作({kind})`,"archive.confirm.listSeparator":`、`,"archive.confirm.action":`停止并归档`,"archive.confirm.pending":`正在停止并归档…`,"toast.archivedUndo":`撤销`,"toast.archivedOr":`或`,"toast.archivedFilter":`筛选已归档会话`,"toast.archiveFailed":`归档未确认,请检查会话状态:{message}`,"toast.unarchiveFailed":`取消归档未确认,请刷新后检查:{message}`,"toast.pinFailed":`置顶未确认,请刷新后检查:{message}`,"toast.unpinFailed":`取消置顶未确认,请刷新后检查:{message}`,"toast.createFailed":`新建会话失败:{message}`,"toast.forkFailed":`分叉未完成:{message}`,"sessions.count.one":`{n} 个会话`,"sessions.count.other":`{n} 个会话`,"actions.workspace.aria":`工作区“{name}”的操作`,"actions.session.aria":`会话“{name}”的操作`,"actions.archive":`归档会话`,"actions.unarchive":`取消归档`,"actions.pin":`置顶会话`,"actions.unpin":`取消置顶`,"actions.newSession":`新会话`,"actions.newSession.aria":`在“{name}”中新建会话`,"status.running":`进行中`,"status.subagentsRunning.one":`{n} 个子智能体运行中`,"status.subagentsRunning.other":`{n} 个子智能体运行中`,"status.idle":`空闲`,"status.waitingApproval":`等待审批`,"status.planReview":`计划待审`,"status.waitingAnswer":`等待回答`,"status.compact.approval":`待审批`,"status.compact.planReview":`计划待审`,"status.compact.answer":`待回答`,"status.completed":`已完成`,"hover.created":`创建于 {time}`,"hover.copied":`已复制`,"date.ymd":`{y}年{m}月{d}日`,"time.now":`刚刚`,"time.minutes":`{n}分钟`,"time.hours":`{n}小时`,"time.days":`{n}天`,"time.months":`{n}个月`,"time.years":`{n}年`,"time.ago":`{t}前`},bt={"defaultWorkspace.failed":`Unable to create default workspace. Use Choose workspace to select a folder.`,"draft.workspaceRequired":`Choose a workspace first.`,"draft.initializationFailed":`Could not fill the draft. Please try again shortly.`,"group.ungrouped":`Recents`,"session.new":`New Session`,"session.untitled":`Untitled`,"session.backToList":`Back to session list`,"shortcut.noSession":`Select a session first`,"shortcut.noPicker":`Directory picker unavailable`,"shortcut.directoryBusy":`Selecting or adding a workspace`,"shortcut.noCompletedTurn":`This session has no completed turn`,"shortcut.forkFailed":`Could not fork the session. Try again.`,"section.workspaces":`Workspaces`,"section.sessions":`Sessions`,"section.pinned":`Pinned`,"viewOptions.label":`View options`,"groupBy.label":`Group by`,"groupBy.workspace":`WorkSpace`,"groupBy.workspaceTree":`Workspace Tree`,"groupBy.flat":`In one list`,"orderBy.label":`Order by`,"orderBy.manual":`Manual`,"orderBy.updated":`Last updated`,"filterBy.label":`Filter sessions`,"viewOptions.hideArchived":`Hide archived`,"viewOptions.showArchived":`All conversations (show archived)`,"viewOptions.onlyArchived":`Archived only`,"sessions.expand":`Show {n} more`,"sessions.collapse":`Show less`,"sessions.loading":`Loading conversation history…`,"workspaces.expand":`Show all workspaces`,"empty.none":`No sessions yet`,"empty.noneArchived":`No archived sessions yet`,"empty.viewOthers":`View other sessions`,"empty.noMatches":`No matches`,"workspace.add":`Add workspace`,"search.sessions.aria":`Search sessions`,"search.placeholder":`Search session names`,"search.clear":`Clear search`,"search.results.aria":`Search results`,"search.pending":`Searching session history…`,"search.noMatches":`No matching sessions`,"search.hasMore":`Showing the first {n} results. Narrow your search.`,"menu.addWorkspace":`Add workspace…`,"menu.noWorkspace":`No workspace`,"picker.loading":`Loading workspaces…`,"conflict.named":`A workspace named “{name}” already exists.`,"folderError.title":`Couldn’t open folder`,"folderError.retry":`Choose again`,rename:`Rename`,"rename.workspace.title":`Rename workspace`,"rename.session.title":`Rename session`,"field.workspaceName":`Workspace name`,"field.sessionName":`Session name`,"delete.workspace":`Delete workspace`,"delete.desc":`This removes “{name}” from the workspace list. The folder and session logs will be kept. Its sessions will appear under Ungrouped.`,"delete.pending":`Deleting workspace…`,"menu.copySessionLink":`Copy session link`,"toast.sessionLinkCopied":`Copied`,"toast.sessionLinkCopyFailed":`Could not copy session link`,"menu.fork":`Fork session`,"menu.archiveSession":`Archive session`,"menu.unarchiveSession":`Unarchive session`,"menu.pinSession":`Pin session`,"menu.unpinSession":`Unpin session`,"row.archived":`Archived`,"row.pinned":`Pinned`,"toast.archivedNotOpenable":`Archived sessions cannot be opened. Unarchive it to view.`,"toast.archived":`Session archived. You can `,"toast.stoppedAndArchived":`Session stopped and archived. You can `,"archive.confirm.title":`Stop and archive this session?`,"archive.confirm.desc":`“{title}” still has work in progress. Archiving stops it first; you can restore the session later from the “All conversations (show archived)” filter in the sidebar, and the stopped work will not resume on its own.`,"archive.confirm.activity":`Work that will be stopped`,"archive.confirm.turn":`The turn in progress`,"archive.confirm.subagents.one":`{n} running subagent: {names}`,"archive.confirm.subagents.other":`{n} running subagents: {names}`,"archive.confirm.jobs.one":`{n} background job: {names}`,"archive.confirm.jobs.other":`{n} background jobs: {names}`,"archive.confirm.schedules.one":`{n} scheduled reminder: {names}`,"archive.confirm.schedules.other":`{n} scheduled reminders: {names}`,"archive.confirm.other.one":`{n} other item of work ({kind})`,"archive.confirm.other.other":`{n} other items of work ({kind})`,"archive.confirm.listSeparator":`, `,"archive.confirm.action":`Stop and archive`,"archive.confirm.pending":`Stopping and archiving…`,"toast.archivedUndo":`undo`,"toast.archivedOr":` or `,"toast.archivedFilter":`filter archived sessions`,"toast.archiveFailed":`Archive not confirmed. Check session status: {message}`,"toast.unarchiveFailed":`Unarchive not confirmed. Refresh to check: {message}`,"toast.pinFailed":`Pin not confirmed. Refresh to check: {message}`,"toast.unpinFailed":`Unpin not confirmed. Refresh to check: {message}`,"toast.createFailed":`New session failed: {message}`,"toast.forkFailed":`Fork did not complete: {message}`,"sessions.count.one":`{n} session`,"sessions.count.other":`{n} sessions`,"actions.workspace.aria":`Workspace actions for {name}`,"actions.session.aria":`Session actions for {name}`,"actions.archive":`Archive`,"actions.unarchive":`Unarchive`,"actions.pin":`Pin`,"actions.unpin":`Unpin`,"actions.newSession":`New session`,"actions.newSession.aria":`New session in {name}`,"status.running":`Running`,"status.subagentsRunning.one":`{n} subagent running`,"status.subagentsRunning.other":`{n} subagents running`,"status.idle":`Idle`,"status.waitingApproval":`Waiting for approval`,"status.planReview":`Plan awaiting review`,"status.waitingAnswer":`Waiting for answer`,"status.compact.approval":`Approval`,"status.compact.planReview":`Plan review`,"status.compact.answer":`Answer`,"status.completed":`Completed`,"hover.created":`Created {time}`,"hover.copied":`Copied`,"date.ymd":`{y}-{m}-{d}`,"time.now":`now`,"time.minutes":`{n}min`,"time.hours":`{n}h`,"time.days":`{n}d`,"time.months":`{n}mo`,"time.years":`{n}y`,"time.ago":`{t} ago`},$=`workspace`,xt=[`slots`,`sessions`,`workspaces`,`locale`,`remote`,`remote.directoryPicker`,`layout`,`shortcuts`];function St(e){let t=e.get(`sessions`),n=e.get(`workspaces`),i=V(),a=i.create();a.actions.setArchivedFilter(`default`),e.effect(()=>{let e=()=>{t.setIncludeArchived((a.getSnapshot().archivedFilter??`default`)!=="default")},n=a.subscribe(e);return e(),n},`ui-workspace: browser-local archive query scope`);let o={...i,create:()=>a},s=(0,r.createSnapshotStore)(null),d=0,f=e=>{s.set({...e,seq:++d})},p=new le(e,e.remote.directoryPicker,n,t,a.actions,f);e.slots.provideRoot({hooks:{workspaces:n.list}}),e.effect(()=>e.locale.register($,{zh:yt,en:bt}),`ui-workspace: dictionaries`);let m=l(),h=async(e,n)=>{let r=await t.search(e,n);if(!r.ok)throw Error(r.error.message);return r.value},g=t=>({getSnapshot:()=>e.slots.entries(t).length>0,subscribe:n=>e.slots.subscribe(t,n)}),_=g(`sidebar.workspaces.directoryFlow`),v={getSnapshot:()=>e.remote.$host,subscribe:t=>e.on(`connection/reset`,t)},x=g(`conversation.hero.workspace.directoryFlow`),S=e=>{p.openSession(e)},C=st(n.list,e=>new Set(e.pinnedSessionIds)),w=st(n.list,e=>new Set(e.archivedSessionIds)),T=st(m.state,e=>e.renameTarget),E=(0,r.createSnapshotStore)(null),D=m.rename,O=e=>{p.unarchiveSession(e).catch(e=>{f({kind:`unarchiveFailed`,message:e instanceof Error?e.message:String(e)})})},k=async(e,n)=>{let r=await t.using(e,{source:`workspaceOperation`},e=>e.binding.session.rename(n));if(!r.ok)throw Error(r.error.message)},A=()=>({hooks:{pinned:C,archived:w},pinSession:e=>{p.pinSession(e).catch(e=>{f({kind:`pinFailed`,message:e instanceof Error?e.message:String(e)})})},unpinSession:e=>{p.unpinSession(e).catch(e=>{f({kind:`unpinFailed`,message:e instanceof Error?e.message:String(e)})})}}),j=()=>({hooks:{archived:w},archiveSession:e=>{p.archiveSession(e).then(()=>{f({kind:`archived`,sessionId:e})}).catch(n=>{let r=Ct(n);if(r===void 0){f({kind:`archiveFailed`,message:n instanceof Error?n.message:String(n)});return}let i=t.list.getSnapshot().byId[e]?.displayTitle??e;E.set({sessionId:e,displayTitle:i,activity:r})})},unarchiveSession:O});u(e,p,m,j().archiveSession);let ee=()=>({hooks:{archiveRequest:E},settleSessionArchive:()=>{E.set(null)},stopAndArchiveSession:async e=>{await p.archiveSession(e,{stopActivity:!0}),f({kind:`stoppedAndArchived`,sessionId:e})}}),M=()=>({forkSession:t=>{p.forkSession(t,n=>{e.get(`productAnalytics`)?.track(`branch_session_click`,{session_id:n,parent_session_id:t,click_position:`sidebar`})}).then(e=>p.openSession(e)).catch(e=>{f({kind:`forkFailed`,message:e instanceof Error?e.message:String(e)})})}}),N=()=>({copySessionLink:e=>{let n=t.list.getSnapshot().byId[e],r=n===void 0?void 0:y(n);r!==void 0&&(async()=>{try{await navigator.clipboard.writeText(b(r)),f({kind:`sessionLinkCopied`})}catch{f({kind:`sessionLinkCopyFailed`})}})()}}),P=()=>({requestSessionRename:D}),te=()=>({hooks:{renameRequest:T},settleSessionRename:m.closeRename,renameSession:k}),ne=()=>({hooks:{toast:s},dismissToast:()=>{s.set(null)},undoArchive:O,showArchived:()=>{a.actions.setArchivedFilter(`show`)}}),re=()=>({startSession:e=>{p.startSession(e)},open:S,searchSessions:h,searchResultLimit:t.searchResultLimit,requestSessionRename:D,notifyArchivedNotOpenable:()=>{f({kind:`archivedNotOpenable`})},renameWorkspace:async(e,t)=>{await n.rename(e,t)},deleteWorkspace:async e=>{await n.delete(e)},insertWorkspaceBefore:async(e,t)=>{await n.insertBefore(e,t)},unarchiveSession:async e=>{await p.unarchiveSession(e)},createWorkspace:e=>n.create(e),requestSearch:m.search,requestAddWorkspace:m.add,closeAddWorkspace:m.closeAdd,setDirectoryBusy:m.directoryBusy,dismissForkError:m.dismissForkError,hooks:{directoryFlow:_,hostInfo:v,workspaceShortcuts:m.state,shortcuts:e.shortcuts.catalog}}),ie=()=>({createWorkspace:e=>n.create(e),hooks:{directoryFlow:x}});e.slots.inject(`sidebar.workspaces`,()=>e.slots.register({name:`sidebar.workspaces`,children:{"sidebar.workspaces.directoryFlow":{kind:`single`,scope:`root`},"sidebar.workspaces.session.menu.item":{kind:`list`,scope:`root`,inject:{hooks:{menuOpenState:c,shortcuts:e.shortcuts.catalog}}},"sidebar.workspaces.session.row.action":{kind:`list`,scope:`root`},"sidebar.session.row.identity":{kind:`list`,scope:`root`},"sidebar.session.row.leading":{kind:`list`,scope:`root`},"sidebar.session.row.hover":{kind:`list`,scope:`root`}},store:o,inject:re,locale:$},tt)),e.slots.inject(`sidebar.workspaces.session.menu.item`,function*(){yield e.slots.register({name:`sidebar.workspaces.session.menu.item`,id:`pin`,order:100,locale:$,inject:A},dt),yield e.slots.register({name:`sidebar.workspaces.session.menu.item`,id:`rename`,order:200,locale:$,inject:P},pt),yield e.slots.register({name:`sidebar.workspaces.session.menu.item`,id:`fork`,order:300,locale:$,inject:M},ct),yield e.slots.register({name:`sidebar.workspaces.session.menu.item`,id:`copy-session-link`,order:350,locale:$,inject:N},lt),yield e.slots.register({name:`sidebar.workspaces.session.menu.item`,id:`archive`,order:400,locale:$,inject:j},nt)}),e.slots.inject(`sidebar.workspaces.session.row.action`,function*(){yield e.slots.register({name:`sidebar.workspaces.session.row.action`,id:`archive`,order:100,locale:$,inject:j},rt),yield e.slots.register({name:`sidebar.workspaces.session.row.action`,id:`pin`,order:200,locale:$,inject:A},ft)}),e.slots.inject(`shell.overlay`,function*(){yield e.slots.register({name:`shell.overlay`,id:`workspace.session-rename`,locale:$,inject:te},mt),yield e.slots.register({name:`shell.overlay`,id:`workspace.session-archive`,locale:$,inject:ee},it),yield e.slots.register({name:`shell.overlay`,id:`workspace.row-toast`,locale:$,store:o,inject:ne},_t)}),e.slots.inject(`conversation.hero.workspace`,()=>e.slots.register({name:`conversation.hero.workspace`,children:{"conversation.hero.workspace.directoryFlow":{kind:`single`,scope:`root`}},inject:ie,locale:$},We))}function Ct(e){if(!(e instanceof Error)||e.name!==`WorkspaceArchiveError`)return;let{rpcError:t}=e;return t.code===`workspace/session-active`?t.details.activity:void 0}return n.apply=St,n.inject=xt,t.exports}});
|