@jingyi0605/codingns 0.9.5 → 0.9.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (180) hide show
  1. package/bin/codingns.mjs +75 -0
  2. package/dist/public/assets/{AdaptiveButlerPage-kkJDsnCO.js → AdaptiveButlerPage-khJQh6a_.js} +1 -1
  3. package/dist/public/assets/{App-DrNI9lWA.js → App-If9gThKM.js} +6 -6
  4. package/dist/public/assets/{BootstrapPage-QgVH5Mps.js → BootstrapPage-DcfYtoLC.js} +1 -1
  5. package/dist/public/assets/{ConversationPage-DVk8VfIj.js → ConversationPage-Bfb7GLTM.js} +1 -1
  6. package/dist/public/assets/{DesktopDetachPreviewPage-BhfP0TpH.js → DesktopDetachPreviewPage-CXUPMcBz.js} +1 -1
  7. package/dist/public/assets/{DesktopModal-DRmDrv0S.js → DesktopModal-bMdI1jEe.js} +1 -1
  8. package/dist/public/assets/{DesktopWindowPage-DNbJXnSs.js → DesktopWindowPage-D1xwgS-7.js} +1 -1
  9. package/dist/public/assets/{FileContextPanel---fLO4ve.js → FileContextPanel-C4syif3B.js} +1 -1
  10. package/dist/public/assets/{GitSidebar-sXUE0TqT.js → GitSidebar-DduL9aTV.js} +1 -1
  11. package/dist/public/assets/{MobileCreateSessionSheet-BftZ5pvb.js → MobileCreateSessionSheet-DWPBsEx8.js} +1 -1
  12. package/dist/public/assets/{MobileSheet-nw5SCa3N.js → MobileSheet-BXvQPkxt.js} +1 -1
  13. package/dist/public/assets/{MobileTopHeaderFrame-DH_D02Wy.js → MobileTopHeaderFrame-vdYOyaaB.js} +1 -1
  14. package/dist/public/assets/{MobileWorkspaceSwitcherHeader-2K406G5p.js → MobileWorkspaceSwitcherHeader-DT330cAx.js} +1 -1
  15. package/dist/public/assets/{PluginAccessOverview-BVJihw3D.js → PluginAccessOverview-C77TeZTK.js} +1 -1
  16. package/dist/public/assets/{PluginContainerPage-CR4vStvr.js → PluginContainerPage-DdSwOCw-.js} +1 -1
  17. package/dist/public/assets/{PluginDetailPage-CrMX0Mnm.js → PluginDetailPage-BK1yTzvO.js} +1 -1
  18. package/dist/public/assets/{PluginsListPage-FtIL71Yg.js → PluginsListPage-DAAwSc6W.js} +1 -1
  19. package/dist/public/assets/{RelayConnectEntryPage-Bt1apX53.js → RelayConnectEntryPage-4Yyo2p8b.js} +1 -1
  20. package/dist/public/assets/{ServerSettingsModal-D-guzPrI.js → ServerSettingsModal-C_DEisHs.js} +1 -1
  21. package/dist/public/assets/{SessionIndexPage-CX2FppcJ.js → SessionIndexPage-DyMikN_x.js} +1 -1
  22. package/dist/public/assets/SettingsPage-CDAVsPr3.js +2 -0
  23. package/dist/public/assets/{TerminalManagerPanel-B5MKGPy-.js → TerminalManagerPanel-4OR47vcf.js} +1 -1
  24. package/dist/public/assets/{TerminalPage-C2dTNGHK.js → TerminalPage-Pvx396YX.js} +1 -1
  25. package/dist/public/assets/{TerminalRuntimeFallbackModal-DAqOxFD8.js → TerminalRuntimeFallbackModal-KvG6k4AQ.js} +1 -1
  26. package/dist/public/assets/{ToolFilesPage-IsNwyE6T.js → ToolFilesPage-DrYHk0N-.js} +1 -1
  27. package/dist/public/assets/{ToolGitPage-BK1JBERN.js → ToolGitPage-Dz1q-Ns_.js} +1 -1
  28. package/dist/public/assets/{ToolProcessesPage-DwTYUQCK.js → ToolProcessesPage-CRhphOmM.js} +1 -1
  29. package/dist/public/assets/{ToolsHomePage-BLOy7lPg.js → ToolsHomePage-BJSDLR6T.js} +1 -1
  30. package/dist/public/assets/{WorkbenchLandingPage-CqZKR6EA.js → WorkbenchLandingPage-BlkxdOLC.js} +1 -1
  31. package/dist/public/assets/WorkbenchLayout-D-U7ghT0.js +1022 -0
  32. package/dist/public/assets/{WorkbenchModal-BM-OeW-b.js → WorkbenchModal-xbx1o6MO.js} +1 -1
  33. package/dist/public/assets/WorkbenchShellRoute-DyWSCHz_.js +1 -0
  34. package/dist/public/assets/WorkbenchShellRoute-htbkGbtW.css +1 -0
  35. package/dist/public/assets/{WorkspaceDebugDetailPage-BMsEN5iG.js → WorkspaceDebugDetailPage-B4ol2_a5.js} +1 -1
  36. package/dist/public/assets/{WorkspaceDetailPage-5H9Gosx2.js → WorkspaceDetailPage-DMakfmHR.js} +1 -1
  37. package/dist/public/assets/{WorkspaceHomePage-DQiXKgiP.js → WorkspaceHomePage-tmCafatd.js} +1 -1
  38. package/dist/public/assets/{client-runtime-manager-CgPJq21V.js → client-runtime-manager-Bwau7p1v.js} +1 -1
  39. package/dist/public/assets/index-DmUJ8tIw.css +1 -0
  40. package/dist/public/assets/index-_OCkVmfl.js +50 -0
  41. package/dist/public/assets/{login-direct-candidate-resolver-CGaxAXV8.js → login-direct-candidate-resolver-CKUQ07IA.js} +1 -1
  42. package/dist/public/assets/{plugin-permission-copy-BR9gWy8b.js → plugin-permission-copy-DIVk5jNp.js} +1 -1
  43. package/dist/public/assets/{plugins-api-CdCsrG2e.js → plugins-api-DHJVvPZw.js} +1 -1
  44. package/dist/public/assets/{preferences-service-lOhnlxzP.js → preferences-service-CyxxeBmS.js} +1 -1
  45. package/dist/public/assets/{relay-entry-CQpxTS8y.js → relay-entry-B5GmiOrR.js} +1 -1
  46. package/dist/public/assets/{terminal-runtime-meta-oteTx66X.js → terminal-runtime-meta-DBsyT35T.js} +1 -1
  47. package/dist/public/assets/{useRegisteredDebugTemplates-Bu2ykZ6s.js → useRegisteredDebugTemplates-wCGD2SLW.js} +1 -1
  48. package/dist/public/assets/{workbench-navigation-DlgXuFW2.js → workbench-navigation-RyUjchbD.js} +1 -1
  49. package/dist/public/index.html +2 -2
  50. package/dist/server/modules/affairs-indexer/core/src/repositories/catalog-repository.d.ts +1 -0
  51. package/dist/server/modules/affairs-indexer/core/src/repositories/catalog-repository.js +31 -0
  52. package/dist/server/modules/affairs-indexer/core/src/repositories/catalog-repository.js.map +1 -1
  53. package/dist/server/modules/affairs-indexer/core/src/services/dirty/dirty-scope-resolver.d.ts +1 -0
  54. package/dist/server/modules/affairs-indexer/core/src/services/dirty/dirty-scope-resolver.js +1 -0
  55. package/dist/server/modules/affairs-indexer/core/src/services/dirty/dirty-scope-resolver.js.map +1 -1
  56. package/dist/server/modules/affairs-indexer/core/src/services/export/export-builder.js +4 -1
  57. package/dist/server/modules/affairs-indexer/core/src/services/export/export-builder.js.map +1 -1
  58. package/dist/server/modules/affairs-indexer/core/src/services/search/search-index-builder.js +140 -16
  59. package/dist/server/modules/affairs-indexer/core/src/services/search/search-index-builder.js.map +1 -1
  60. package/dist/server/modules/assistant-capability/assistant-capability-controller.d.ts +1 -1
  61. package/dist/server/modules/assistant-capability/assistant-capability-controller.js +8 -7
  62. package/dist/server/modules/assistant-capability/assistant-capability-controller.js.map +1 -1
  63. package/dist/server/modules/assistant-capability/assistant-capability-service.d.ts +14 -13
  64. package/dist/server/modules/assistant-capability/assistant-capability-service.js +27 -24
  65. package/dist/server/modules/assistant-capability/assistant-capability-service.js.map +1 -1
  66. package/dist/server/modules/auth/auth-controller.d.ts +27 -1
  67. package/dist/server/modules/auth/auth-controller.js +20 -0
  68. package/dist/server/modules/auth/auth-controller.js.map +1 -1
  69. package/dist/server/modules/auth/auth-service.d.ts +32 -1
  70. package/dist/server/modules/auth/auth-service.js +217 -2
  71. package/dist/server/modules/auth/auth-service.js.map +1 -1
  72. package/dist/server/modules/bootstrap/bootstrap-service.js +1 -0
  73. package/dist/server/modules/bootstrap/bootstrap-service.js.map +1 -1
  74. package/dist/server/modules/butler/assistant-automation-service.d.ts +1 -1
  75. package/dist/server/modules/butler/assistant-automation-service.js +9 -10
  76. package/dist/server/modules/butler/assistant-automation-service.js.map +1 -1
  77. package/dist/server/modules/butler/butler-action-context-service.js +2 -2
  78. package/dist/server/modules/butler/butler-action-context-service.js.map +1 -1
  79. package/dist/server/modules/butler/butler-control-action-service.d.ts +5 -5
  80. package/dist/server/modules/butler/butler-control-action-service.js +19 -19
  81. package/dist/server/modules/butler/butler-control-action-service.js.map +1 -1
  82. package/dist/server/modules/butler/butler-control-session-service.d.ts +1 -1
  83. package/dist/server/modules/butler/butler-control-session-service.js +27 -26
  84. package/dist/server/modules/butler/butler-control-session-service.js.map +1 -1
  85. package/dist/server/modules/butler/butler-control-timer-service.js +4 -5
  86. package/dist/server/modules/butler/butler-control-timer-service.js.map +1 -1
  87. package/dist/server/modules/butler/butler-controller.d.ts +2 -2
  88. package/dist/server/modules/butler/butler-controller.js +19 -17
  89. package/dist/server/modules/butler/butler-controller.js.map +1 -1
  90. package/dist/server/modules/butler/butler-profile-service.d.ts +5 -5
  91. package/dist/server/modules/butler/butler-profile-service.js +17 -16
  92. package/dist/server/modules/butler/butler-profile-service.js.map +1 -1
  93. package/dist/server/modules/butler/butler-project-service.d.ts +7 -6
  94. package/dist/server/modules/butler/butler-project-service.js +35 -21
  95. package/dist/server/modules/butler/butler-project-service.js.map +1 -1
  96. package/dist/server/modules/butler/butler-session-service.d.ts +2 -2
  97. package/dist/server/modules/butler/butler-session-service.js +33 -27
  98. package/dist/server/modules/butler/butler-session-service.js.map +1 -1
  99. package/dist/server/modules/butler/butler-session-summary-service.d.ts +2 -2
  100. package/dist/server/modules/butler/butler-session-summary-service.js +23 -9
  101. package/dist/server/modules/butler/butler-session-summary-service.js.map +1 -1
  102. package/dist/server/modules/butler/context-aggregator.js +9 -9
  103. package/dist/server/modules/butler/context-aggregator.js.map +1 -1
  104. package/dist/server/modules/butler/patrol-execution-service.d.ts +0 -1
  105. package/dist/server/modules/butler/patrol-execution-service.js +6 -12
  106. package/dist/server/modules/butler/patrol-execution-service.js.map +1 -1
  107. package/dist/server/modules/sessions/session-controller.js +3 -3
  108. package/dist/server/modules/sessions/session-controller.js.map +1 -1
  109. package/dist/server/modules/sessions/session-history-service.d.ts +8 -3
  110. package/dist/server/modules/sessions/session-history-service.js +126 -11
  111. package/dist/server/modules/sessions/session-history-service.js.map +1 -1
  112. package/dist/server/modules/sessions/session-live-runtime-service.js +25 -15
  113. package/dist/server/modules/sessions/session-live-runtime-service.js.map +1 -1
  114. package/dist/server/modules/sessions/session-permission-request-service.js +28 -15
  115. package/dist/server/modules/sessions/session-permission-request-service.js.map +1 -1
  116. package/dist/server/modules/workbench/workbench-service.js +9 -9
  117. package/dist/server/modules/workbench/workbench-service.js.map +1 -1
  118. package/dist/server/modules/workspace/affairs-library-service.d.ts +3 -1
  119. package/dist/server/modules/workspace/affairs-library-service.js +112 -54
  120. package/dist/server/modules/workspace/affairs-library-service.js.map +1 -1
  121. package/dist/server/modules/workspace/affairs-tag-service.d.ts +12 -0
  122. package/dist/server/modules/workspace/affairs-tag-service.js +527 -2
  123. package/dist/server/modules/workspace/affairs-tag-service.js.map +1 -1
  124. package/dist/server/modules/workspace/workspace-controller.d.ts +1 -1
  125. package/dist/server/modules/workspace/workspace-controller.js +7 -7
  126. package/dist/server/modules/workspace/workspace-controller.js.map +1 -1
  127. package/dist/server/modules/workspace/workspace-service.d.ts +7 -0
  128. package/dist/server/modules/workspace/workspace-service.js +151 -10
  129. package/dist/server/modules/workspace/workspace-service.js.map +1 -1
  130. package/dist/server/routes/auth.js +6 -0
  131. package/dist/server/routes/auth.js.map +1 -1
  132. package/dist/server/server/create-server.d.ts +4 -0
  133. package/dist/server/server/create-server.js +26 -0
  134. package/dist/server/server/create-server.js.map +1 -1
  135. package/dist/server/server/start-host.js +20 -0
  136. package/dist/server/server/start-host.js.map +1 -1
  137. package/dist/server/shared/http/request-diagnostics.d.ts +56 -0
  138. package/dist/server/shared/http/request-diagnostics.js +256 -0
  139. package/dist/server/shared/http/request-diagnostics.js.map +1 -0
  140. package/dist/server/storage/repositories/auth-token-repository.d.ts +1 -0
  141. package/dist/server/storage/repositories/auth-token-repository.js +8 -0
  142. package/dist/server/storage/repositories/auth-token-repository.js.map +1 -1
  143. package/dist/server/storage/repositories/auth-user-repository.d.ts +50 -0
  144. package/dist/server/storage/repositories/auth-user-repository.js +198 -27
  145. package/dist/server/storage/repositories/auth-user-repository.js.map +1 -1
  146. package/dist/server/storage/repositories/butler-control-session-repository.d.ts +4 -1
  147. package/dist/server/storage/repositories/butler-control-session-repository.js +55 -8
  148. package/dist/server/storage/repositories/butler-control-session-repository.js.map +1 -1
  149. package/dist/server/storage/repositories/butler-profile-repository.d.ts +2 -1
  150. package/dist/server/storage/repositories/butler-profile-repository.js +35 -6
  151. package/dist/server/storage/repositories/butler-profile-repository.js.map +1 -1
  152. package/dist/server/storage/repositories/butler-project-repository.d.ts +2 -0
  153. package/dist/server/storage/repositories/butler-project-repository.js +38 -4
  154. package/dist/server/storage/repositories/butler-project-repository.js.map +1 -1
  155. package/dist/server/storage/repositories/butler-session-repository.d.ts +2 -1
  156. package/dist/server/storage/repositories/butler-session-repository.js +35 -6
  157. package/dist/server/storage/repositories/butler-session-repository.js.map +1 -1
  158. package/dist/server/storage/repositories/session-binding-repository.d.ts +3 -0
  159. package/dist/server/storage/repositories/session-binding-repository.js +70 -2
  160. package/dist/server/storage/repositories/session-binding-repository.js.map +1 -1
  161. package/dist/server/storage/repositories/session-index-repository.js +7 -5
  162. package/dist/server/storage/repositories/session-index-repository.js.map +1 -1
  163. package/dist/server/storage/repositories/workspace-repository.d.ts +3 -1
  164. package/dist/server/storage/repositories/workspace-repository.js +24 -10
  165. package/dist/server/storage/repositories/workspace-repository.js.map +1 -1
  166. package/dist/server/storage/sqlite/client.js +288 -0
  167. package/dist/server/storage/sqlite/client.js.map +1 -1
  168. package/dist/server/storage/sqlite/schema.sql +33 -9
  169. package/dist/server/types/domain.d.ts +8 -1
  170. package/node_modules/@codingns/session-sync-core/dist/providers/claude-session-store.js +34 -7
  171. package/node_modules/@codingns/session-sync-core/dist/providers/claude-session-store.js.map +1 -1
  172. package/node_modules/@codingns/session-sync-core/dist/runtime/claude-runtime.js +3 -7
  173. package/node_modules/@codingns/session-sync-core/dist/runtime/claude-runtime.js.map +1 -1
  174. package/package.json +1 -1
  175. package/dist/public/assets/SettingsPage-BI2Olcvr.js +0 -2
  176. package/dist/public/assets/WorkbenchLayout-CJHQtwuL.js +0 -1022
  177. package/dist/public/assets/WorkbenchShellRoute-2bKI6Q9k.js +0 -1
  178. package/dist/public/assets/WorkbenchShellRoute-BjuZD101.css +0 -1
  179. package/dist/public/assets/index-BARqMVSw.css +0 -1
  180. package/dist/public/assets/index-BUoNjVrY.js +0 -50
@@ -1 +1 @@
1
- import{b as d,j as e,t as a}from"./index-BUoNjVrY.js";import{g as pe,u as je}from"./App-DrNI9lWA.js";import{ah as ye,p as fe,aD as ce,aZ as Se,K as Ne,aK as ke,b as Me,ak as Ae,aE as Ee}from"./WorkbenchLayout-CJHQtwuL.js";import{f as Ce,a as de,M as Pe}from"./MobileWorkspaceSwitcherHeader-2K406G5p.js";import{M as Ie}from"./MobileCreateSessionSheet-BftZ5pvb.js";import{n as Le,I as De,l as Te,B as Re,g as ue,J as se,i as ne,s as Ge,b as Oe,e as We}from"./workbench-navigation-DlgXuFW2.js";import{w as he}from"./styles-JKFlsYFv.js";import"./window-BVUB8gMK.js";import"./event-DvH9tcej.js";import"./DesktopModal-DRmDrv0S.js";import"./WorkbenchModal-BM-OeW-b.js";import"./relay-entry-CQpxTS8y.js";import"./MobileSheet-nw5SCa3N.js";import"./MobileTopHeaderFrame-DH_D02Wy.js";const Be=420,Ve=156;function $e({entry:t,isFavorite:i,isActive:u=!1,depth:h=0,variant:c="default",workspaceTone:M="root",hasSubsessions:m=!1,subsessionsExpanded:A=!1,showActions:z=!0,onActivate:Z,onToggleSubsessions:W,onToggleFavorite:te,onArchive:B,onUnarchive:ie,onRename:r}){var v;const[w,D]=d.useState(!1),[T,R]=d.useState(null),[j,V]=d.useState(null),E=d.useRef(null),G=d.useRef(!1),O=d.useRef(null),$=ye(),{session:l,workspace:oe}=t,F=l.title??l.sessionId,J=fe(l.provider),H=[J,Fe(l.lastMessageAt??l.updatedAt??null),ce(l)].filter(Boolean).join(" · "),K=c==="mobile"?null:ce(l),_=K?Se("session-list-activity-badge",l):null,S=c!=="mobile",U=S?Le(l.parallelGroup):null,q=S?De(l.parallelGroup):null,ae=S?Te(l.parallelGroup):void 0;d.useEffect(()=>()=>{Y()},[]),d.useLayoutEffect(()=>{if(!w||!j||typeof window>"u"){R(null);return}const n=()=>{var I,y;const g=Ne(j,{width:((I=O.current)==null?void 0:I.offsetWidth)??0,height:((y=O.current)==null?void 0:y.offsetHeight)??0},{width:window.innerWidth,height:window.innerHeight},{estimatedHeightPx:Ve});R({position:"fixed",left:`${Math.round(g.left)}px`,top:`${Math.round(g.top)}px`,width:`${Math.round(g.width)}px`,maxWidth:"calc(100vw - 24px)",maxHeight:`${Math.round(g.maxHeight)}px`,transformOrigin:g.transformOrigin})},x=g=>{var y;const I=g.target;I&&!((y=O.current)!=null&&y.contains(I))&&N()},P=g=>{g.key==="Escape"&&N()};return n(),window.addEventListener("pointerdown",x),window.addEventListener("keydown",P),window.addEventListener("resize",n),window.addEventListener("scroll",n,!0),()=>{window.removeEventListener("pointerdown",x),window.removeEventListener("keydown",P),window.removeEventListener("resize",n),window.removeEventListener("scroll",n,!0)}},[j,w]);function X(n){V(n),D(!0)}function N(){D(!1),V(null)}function Y(){E.current!==null&&(window.clearTimeout(E.current),E.current=null)}function le(n){if(!z||n.pointerType==="mouse")return;const x={x:n.clientX,y:n.clientY};Y(),E.current=window.setTimeout(()=>{G.current=!0,$.trigger("gesture"),X(x)},Be)}function C(){Y()}function Q(){if(G.current){G.current=!1;return}$.trigger("selection"),Z(l.sessionId)}const s=async()=>{const n=window.prompt(a("shell.renameModalDescription"),F);n&&(await r(l.sessionId,n.trim()),N())},o=async()=>{if(l.isArchived){await ie(l.sessionId),N();return}await B(l.sessionId),N()},p=()=>{te(l.sessionId),N()},f=n=>{if(n.key!=="ContextMenu"&&!(n.shiftKey&&n.key==="F10"))return;n.preventDefault(),n.stopPropagation();const x=n.currentTarget.getBoundingClientRect();X({x:x.right,y:x.bottom})},k=w&&typeof document<"u"?pe.createPortal(e.jsxs("div",{ref:O,className:"session-action-menu surface-card",role:"menu","aria-label":a("shell.sessionMoreAction"),style:T??{position:"fixed",top:0,left:0,visibility:"hidden"},onClick:n=>n.stopPropagation(),children:[e.jsx("button",{type:"button",className:"session-action-menu-item",role:"menuitem",onClick:p,children:i?a("shell.unfavoriteAction"):a("shell.favoriteAction")}),e.jsx("button",{type:"button",className:"session-action-menu-item",role:"menuitem",onClick:()=>void o(),children:l.isArchived?a("shell.unarchiveAction"):a("shell.archiveAction")}),e.jsx("button",{type:"button",className:"session-action-menu-item",role:"menuitem",onClick:()=>void s(),children:a("shell.renameAction")})]}),document.body):null;return e.jsxs("article",{className:"session-list-item","data-depth":h,"data-active":u,"data-workspace-tone":M,"data-has-subsessions":m,"data-variant":c,"data-parallel-group":S&&l.parallelGroup?"true":void 0,"data-parallel-role":S?((v=l.parallelGroup)==null?void 0:v.role)??void 0:void 0,style:ae,onContextMenu:n=>{z&&(n.preventDefault(),n.stopPropagation(),X({x:n.clientX,y:n.clientY}))},children:[m?e.jsx("button",{type:"button",className:"session-list-subsession-toggle","aria-label":A?a("shell.subagentCollapse"):a("shell.subagentExpand"),title:A?a("shell.subagentCollapse"):a("shell.subagentExpand"),"aria-expanded":A,onClick:n=>{n.stopPropagation(),$.trigger("selection"),W==null||W()},children:e.jsx("span",{className:me(l,{isActive:u,hasSubsessions:m}),"aria-hidden":"true"})}):e.jsx("span",{className:me(l,{isActive:u,hasSubsessions:m}),"aria-hidden":"true"}),e.jsx("button",{type:"button",className:"session-list-link",onClick:Q,onPointerDown:le,onPointerUp:C,onPointerCancel:C,onPointerLeave:C,onKeyDown:f,children:e.jsxs("div",{className:"session-list-copy",children:[e.jsxs("div",{className:"session-list-title-row",children:[e.jsx("div",{className:"session-list-title",children:F||a("shell.searchEntry")}),U?e.jsx("span",{className:"session-list-parallel-badge",children:U}):null,q?e.jsx("span",{className:"session-list-parallel-role-badge",children:q}):null]}),e.jsx("div",{className:"session-list-meta",children:c==="mobile"?e.jsx(e.Fragment,{children:e.jsx("span",{children:H})}):e.jsxs(e.Fragment,{children:[e.jsx("span",{children:oe.name}),K&&_?e.jsxs(e.Fragment,{children:[e.jsx("span",{"aria-hidden":"true",children:"·"}),e.jsx("span",{className:_,children:K})]}):null,e.jsx("span",{"aria-hidden":"true",children:"·"}),e.jsx("span",{children:J})]})})]})}),k]})}function me(t,i){return ke("session-list-indicator",t,{isActive:i.isActive,hasSubagents:i.hasSubsessions})}function Fe(t){return t?new Date(t).toLocaleString(void 0,{month:"numeric",day:"numeric",hour:"2-digit",minute:"2-digit"}):a("common.unknown")}const ee=5;function cs(){var Q;const t=je(),{navigationGroups:i,favoriteSessionIds:u,currentWorkspaceId:h,currentSessionId:c,navigationLoading:M,selectWorkspace:m,toggleFavoriteSession:A,archiveSession:z,unarchiveSession:Z,renameSession:W,startDraftSession:te}=Me(),B=Ce(i),ie=d.useMemo(()=>Ae(i),[i]),r=de(i,h)??de(i,((Q=i[0])==null?void 0:Q.workspace.id)??null),w=B.find(s=>s.workspace.id===(r==null?void 0:r.workspace.id))??(r?{workspace:r.workspace,label:r.workspace.name,subtitle:r.workspace.path}:null),D=d.useMemo(()=>new Set(u),[u]),T=d.useMemo(()=>r?r.sessions.filter(s=>{if(s.isArchived)return!1;const o=Re(s,{mode:"mobile"});if(!o)return!0;const p=r.sessions.find(f=>f.sessionId===o);return!p||!p.isArchived}).map(s=>({session:s,workspace:r.workspace})):[],[r]),R=d.useMemo(()=>T.filter(s=>D.has(s.session.sessionId)),[T,D]),j=d.useMemo(()=>ue(T,{mode:"mobile"}),[T]),V=d.useMemo(()=>ue(R,{mode:"mobile"}),[R]),E=d.useMemo(()=>r?r.sessions.filter(s=>s.isArchived===!0&&!Ee(s)):[],[r]),G=(r==null?void 0:r.workspace.id)??"",O=!!G,[$,l]=d.useState([]),[oe,F]=d.useState({}),[J,H]=d.useState(!1),[K,_]=d.useState(!1),[S,U]=d.useState(null);d.useEffect(()=>{F(s=>{const o={};for(const p of j){const f=se(ne(p));if(f.length===0)continue;const k=f.findIndex(v=>v.item.session.sessionId===c);o[p.item.session.sessionId]=Xe(f.length,ee,s[p.item.session.sessionId],k)}return Ye(s,o)?s:o})},[c,j]),d.useEffect(()=>{if(!c)return;const s=Ge(j,c,o=>o.session.sessionId);s.length!==0&&l(o=>{const p=new Set(o);let f=!1;for(const k of s)p.has(k)||(p.add(k),f=!0);return f?Array.from(p):o})},[c,j]);function q(s){l(o=>o.includes(s)?o.filter(p=>p!==s):[...o,s])}function ae(s){return oe[s]??ee}function X(s){F(o=>({...o,[s]:(o[s]??ee)+ee}))}function N(s,o){he("immersive"),t(We(s,o))}function Y(s,o){H(!1),he("immersive"),te(s,o)}async function le(s){U(s);try{await Z(s)}finally{U(o=>o===s?null:o)}}function C(s,o=!1,p=[],f=!1,k=!1){var re;const v=s.item.session.sessionId,n=s.children,x=s.depth===0&&n.length>0,P=o||x&&$.includes(v),g=P&&x,I=g?Ue(s,ae(v)):s,y=P?I.children:[],be=se(n).length,xe=se(y).length,ge=g&&xe<be,we=s.depth>0?[...p,f]:[...p];return e.jsxs("div",{className:"session-list-tree-node",children:[e.jsxs("div",{className:"session-list-tree-row",style:{"--session-tree-depth":s.depth},children:[s.depth>0?e.jsxs("div",{className:"session-tree-guides","aria-hidden":"true",style:{"--session-tree-depth":s.depth},children:[p.map((b,L)=>b?e.jsx("span",{className:"session-tree-guide-column",style:{"--session-tree-level":L+1}},`${v}:ancestor:${L}`):null),e.jsx("span",{className:"session-tree-guide-branch","data-continue":f,"data-first":k,style:{"--session-tree-level":s.depth},children:e.jsx("span",{className:"session-tree-guide-branch-horizontal"})})]}):null,e.jsx($e,{entry:s.item,isFavorite:D.has(v),isActive:c===v,depth:s.depth,variant:"mobile",workspaceTone:((re=ie[s.item.workspace.id])==null?void 0:re.tone)??"root",hasSubsessions:x,subsessionsExpanded:P,onActivate:b=>N(s.item.workspace.id,b),onToggleSubsessions:x?()=>q(v):void 0,onToggleFavorite:b=>{A(b)},onArchive:b=>z(b),onUnarchive:b=>Z(b),onRename:(b,L)=>W(b,L)})]}),P&&y.length>0?e.jsx("div",{className:"session-list-children",children:y.map((b,L)=>C(b,!0,we,L<y.length-1,L===0))}):null,ge?e.jsx("div",{className:"session-list-children",children:e.jsx("button",{type:"button",className:"secondary-button",onClick:()=>X(v),children:a("shell.subagentExpandMore")})}):null]},`${s.item.workspace.id}:${v}`)}return e.jsxs("main",{className:"session-index-page mobile-feature-page mobile-page-scroll-root mobile-page-with-top-header",children:[e.jsx(Pe,{currentWorkspace:w?{id:w.workspace.id,name:w.label,path:w.subtitle}:null,workspaces:i.map(s=>s.workspace),workspaceOptions:B,onSelectWorkspace:s=>{m(s),t(Oe(s))},content:e.jsx("button",{type:"button",className:"primary-button mobile-session-index-create-button",disabled:M||!O,onClick:()=>H(!0),children:a("shell.createSession")})}),e.jsxs("div",{className:"mobile-page-top-body",children:[e.jsx("div",{className:"session-index-archive-actions",children:e.jsxs("button",{type:"button",className:"primary-button mobile-session-index-create-button session-index-archive-button",disabled:M||!r,onClick:()=>_(!0),children:[e.jsx("span",{children:a("shell.archiveViewAction")}),e.jsx("span",{className:"session-index-archive-count",children:E.length})]})}),V.length>0?e.jsxs("section",{className:"session-section session-section-sheet",children:[e.jsxs("header",{className:"session-section-heading",children:[e.jsx("div",{children:e.jsx("h2",{children:a("shell.favoriteSectionTitle")})}),e.jsx("span",{className:"session-section-count",children:R.length})]}),e.jsx("div",{className:"session-current-workspace-list",children:V.map(s=>C(s))})]}):null,e.jsxs("section",{className:"session-section session-section-sheet",children:[e.jsxs("header",{className:"session-section-heading",children:[e.jsx("div",{children:e.jsx("h2",{children:a("shell.mobileConversationCurrentWorkspaceSection")})}),e.jsx("span",{className:"session-section-count",children:j.length})]}),j.length===0?e.jsx("p",{className:"session-section-empty",children:M?a("shell.searchSessionHint"):a("shell.emptyWorkspaceSessions")}):e.jsx("div",{className:"session-current-workspace-list",children:j.map(s=>C(s))})]})]}),e.jsx(Ie,{open:J,workspaces:i.map(s=>s.workspace),workspaceOptions:B,initialWorkspaceId:h??G,onClose:()=>H(!1),onSelect:Y}),e.jsx(He,{open:K,workspaceName:(w==null?void 0:w.label)??(r==null?void 0:r.workspace.name)??null,sessions:E,restoringSessionId:S,onClose:()=>{S||_(!1)},onRestore:s=>void le(s)})]})}function He({open:t,workspaceName:i,sessions:u,restoringSessionId:h,onClose:c,onRestore:M}){return d.useEffect(()=>{if(!t)return;function m(A){A.key==="Escape"&&!h&&c()}return window.addEventListener("keydown",m),()=>{window.removeEventListener("keydown",m)}},[c,t,h]),!t||typeof document>"u"?null:pe.createPortal(e.jsxs("div",{className:"workbench-modal-layer",children:[e.jsx("button",{type:"button",className:"workbench-modal-backdrop","aria-label":a("common.close"),disabled:!!h,onClick:c}),e.jsxs("section",{className:"workbench-modal-card surface-card",role:"dialog","aria-modal":"true","aria-label":a("shell.archiveModalTitle"),children:[e.jsx("div",{className:"workbench-modal-header",children:e.jsxs("div",{className:"workbench-modal-title-wrap",children:[e.jsx("h2",{children:a("shell.archiveModalTitle")}),e.jsx("p",{children:i?`${i} · ${a("shell.archiveModalDescription")}`:a("shell.archiveModalDescription")})]})}),e.jsx("div",{className:"workbench-modal-body",children:u.length>0?e.jsx("div",{className:"workbench-archive-list",children:u.map(m=>e.jsxs("article",{className:"workbench-archive-item",children:[e.jsxs("div",{className:"workbench-archive-item-main",children:[e.jsx("strong",{title:m.title??m.sessionId,children:m.title??m.sessionId}),e.jsx("p",{children:Ke(m)})]}),e.jsx("button",{type:"button",className:"secondary-button",disabled:h===m.sessionId,onClick:()=>{M(m.sessionId)},children:a("shell.unarchiveAction")})]},m.sessionId))}):e.jsx("p",{className:"workbench-section-empty",children:a("shell.archiveEmpty")})})]})]}),document.body)}function Ke(t){const i=fe(t.provider),u=_e(t.lastMessageAt??t.updatedAt??null);return[i,u].filter(Boolean).join(" · ")}function _e(t){if(!t)return null;const i=Date.parse(t);return Number.isNaN(i)?null:new Intl.DateTimeFormat(void 0,{month:"short",day:"numeric",hour:"2-digit",minute:"2-digit"}).format(i)}function Ue(t,i){const u=new Set(se(ne(t)).sort((h,c)=>(c.item.session.lastMessageAt??c.item.session.updatedAt).localeCompare(h.item.session.lastMessageAt??h.item.session.updatedAt)).slice(0,i).map(h=>h.item.session.sessionId));return{...t,children:ve(ne(t),u)}}function ve(t,i){return t.flatMap(u=>{const h=ve(ne(u),i);return!i.has(u.item.session.sessionId)&&h.length===0?[]:[{...u,children:h}]})}function Xe(t,i,u,h=-1){if(t<=0)return 0;const c=h>=0?Math.max(i,h+1):i;return Math.min(t,Math.max(u??0,c))}function Ye(t,i){const u=Object.keys(t),h=Object.keys(i);return u.length!==h.length?!1:u.every(c=>t[c]===i[c])}export{cs as SessionIndexPage};
1
+ import{b as d,j as e,t as a}from"./index-_OCkVmfl.js";import{g as pe,u as je}from"./App-If9gThKM.js";import{ah as ye,p as fe,aD as ce,aZ as Se,K as Ne,aK as ke,b as Me,ak as Ae,aE as Ee}from"./WorkbenchLayout-D-U7ghT0.js";import{f as Ce,a as de,M as Pe}from"./MobileWorkspaceSwitcherHeader-DT330cAx.js";import{M as Ie}from"./MobileCreateSessionSheet-DWPBsEx8.js";import{n as Le,I as De,l as Te,B as Re,g as ue,J as se,i as ne,s as Ge,b as Oe,e as We}from"./workbench-navigation-RyUjchbD.js";import{w as he}from"./styles-JKFlsYFv.js";import"./window-BVUB8gMK.js";import"./event-DvH9tcej.js";import"./DesktopModal-bMdI1jEe.js";import"./WorkbenchModal-xbx1o6MO.js";import"./relay-entry-B5GmiOrR.js";import"./MobileSheet-BXvQPkxt.js";import"./MobileTopHeaderFrame-vdYOyaaB.js";const Be=420,Ve=156;function $e({entry:t,isFavorite:i,isActive:u=!1,depth:h=0,variant:c="default",workspaceTone:M="root",hasSubsessions:m=!1,subsessionsExpanded:A=!1,showActions:z=!0,onActivate:Z,onToggleSubsessions:W,onToggleFavorite:te,onArchive:B,onUnarchive:ie,onRename:r}){var v;const[w,D]=d.useState(!1),[T,R]=d.useState(null),[j,V]=d.useState(null),E=d.useRef(null),G=d.useRef(!1),O=d.useRef(null),$=ye(),{session:l,workspace:oe}=t,F=l.title??l.sessionId,J=fe(l.provider),H=[J,Fe(l.lastMessageAt??l.updatedAt??null),ce(l)].filter(Boolean).join(" · "),K=c==="mobile"?null:ce(l),_=K?Se("session-list-activity-badge",l):null,S=c!=="mobile",U=S?Le(l.parallelGroup):null,q=S?De(l.parallelGroup):null,ae=S?Te(l.parallelGroup):void 0;d.useEffect(()=>()=>{Y()},[]),d.useLayoutEffect(()=>{if(!w||!j||typeof window>"u"){R(null);return}const n=()=>{var I,y;const g=Ne(j,{width:((I=O.current)==null?void 0:I.offsetWidth)??0,height:((y=O.current)==null?void 0:y.offsetHeight)??0},{width:window.innerWidth,height:window.innerHeight},{estimatedHeightPx:Ve});R({position:"fixed",left:`${Math.round(g.left)}px`,top:`${Math.round(g.top)}px`,width:`${Math.round(g.width)}px`,maxWidth:"calc(100vw - 24px)",maxHeight:`${Math.round(g.maxHeight)}px`,transformOrigin:g.transformOrigin})},x=g=>{var y;const I=g.target;I&&!((y=O.current)!=null&&y.contains(I))&&N()},P=g=>{g.key==="Escape"&&N()};return n(),window.addEventListener("pointerdown",x),window.addEventListener("keydown",P),window.addEventListener("resize",n),window.addEventListener("scroll",n,!0),()=>{window.removeEventListener("pointerdown",x),window.removeEventListener("keydown",P),window.removeEventListener("resize",n),window.removeEventListener("scroll",n,!0)}},[j,w]);function X(n){V(n),D(!0)}function N(){D(!1),V(null)}function Y(){E.current!==null&&(window.clearTimeout(E.current),E.current=null)}function le(n){if(!z||n.pointerType==="mouse")return;const x={x:n.clientX,y:n.clientY};Y(),E.current=window.setTimeout(()=>{G.current=!0,$.trigger("gesture"),X(x)},Be)}function C(){Y()}function Q(){if(G.current){G.current=!1;return}$.trigger("selection"),Z(l.sessionId)}const s=async()=>{const n=window.prompt(a("shell.renameModalDescription"),F);n&&(await r(l.sessionId,n.trim()),N())},o=async()=>{if(l.isArchived){await ie(l.sessionId),N();return}await B(l.sessionId),N()},p=()=>{te(l.sessionId),N()},f=n=>{if(n.key!=="ContextMenu"&&!(n.shiftKey&&n.key==="F10"))return;n.preventDefault(),n.stopPropagation();const x=n.currentTarget.getBoundingClientRect();X({x:x.right,y:x.bottom})},k=w&&typeof document<"u"?pe.createPortal(e.jsxs("div",{ref:O,className:"session-action-menu surface-card",role:"menu","aria-label":a("shell.sessionMoreAction"),style:T??{position:"fixed",top:0,left:0,visibility:"hidden"},onClick:n=>n.stopPropagation(),children:[e.jsx("button",{type:"button",className:"session-action-menu-item",role:"menuitem",onClick:p,children:i?a("shell.unfavoriteAction"):a("shell.favoriteAction")}),e.jsx("button",{type:"button",className:"session-action-menu-item",role:"menuitem",onClick:()=>void o(),children:l.isArchived?a("shell.unarchiveAction"):a("shell.archiveAction")}),e.jsx("button",{type:"button",className:"session-action-menu-item",role:"menuitem",onClick:()=>void s(),children:a("shell.renameAction")})]}),document.body):null;return e.jsxs("article",{className:"session-list-item","data-depth":h,"data-active":u,"data-workspace-tone":M,"data-has-subsessions":m,"data-variant":c,"data-parallel-group":S&&l.parallelGroup?"true":void 0,"data-parallel-role":S?((v=l.parallelGroup)==null?void 0:v.role)??void 0:void 0,style:ae,onContextMenu:n=>{z&&(n.preventDefault(),n.stopPropagation(),X({x:n.clientX,y:n.clientY}))},children:[m?e.jsx("button",{type:"button",className:"session-list-subsession-toggle","aria-label":A?a("shell.subagentCollapse"):a("shell.subagentExpand"),title:A?a("shell.subagentCollapse"):a("shell.subagentExpand"),"aria-expanded":A,onClick:n=>{n.stopPropagation(),$.trigger("selection"),W==null||W()},children:e.jsx("span",{className:me(l,{isActive:u,hasSubsessions:m}),"aria-hidden":"true"})}):e.jsx("span",{className:me(l,{isActive:u,hasSubsessions:m}),"aria-hidden":"true"}),e.jsx("button",{type:"button",className:"session-list-link",onClick:Q,onPointerDown:le,onPointerUp:C,onPointerCancel:C,onPointerLeave:C,onKeyDown:f,children:e.jsxs("div",{className:"session-list-copy",children:[e.jsxs("div",{className:"session-list-title-row",children:[e.jsx("div",{className:"session-list-title",children:F||a("shell.searchEntry")}),U?e.jsx("span",{className:"session-list-parallel-badge",children:U}):null,q?e.jsx("span",{className:"session-list-parallel-role-badge",children:q}):null]}),e.jsx("div",{className:"session-list-meta",children:c==="mobile"?e.jsx(e.Fragment,{children:e.jsx("span",{children:H})}):e.jsxs(e.Fragment,{children:[e.jsx("span",{children:oe.name}),K&&_?e.jsxs(e.Fragment,{children:[e.jsx("span",{"aria-hidden":"true",children:"·"}),e.jsx("span",{className:_,children:K})]}):null,e.jsx("span",{"aria-hidden":"true",children:"·"}),e.jsx("span",{children:J})]})})]})}),k]})}function me(t,i){return ke("session-list-indicator",t,{isActive:i.isActive,hasSubagents:i.hasSubsessions})}function Fe(t){return t?new Date(t).toLocaleString(void 0,{month:"numeric",day:"numeric",hour:"2-digit",minute:"2-digit"}):a("common.unknown")}const ee=5;function cs(){var Q;const t=je(),{navigationGroups:i,favoriteSessionIds:u,currentWorkspaceId:h,currentSessionId:c,navigationLoading:M,selectWorkspace:m,toggleFavoriteSession:A,archiveSession:z,unarchiveSession:Z,renameSession:W,startDraftSession:te}=Me(),B=Ce(i),ie=d.useMemo(()=>Ae(i),[i]),r=de(i,h)??de(i,((Q=i[0])==null?void 0:Q.workspace.id)??null),w=B.find(s=>s.workspace.id===(r==null?void 0:r.workspace.id))??(r?{workspace:r.workspace,label:r.workspace.name,subtitle:r.workspace.path}:null),D=d.useMemo(()=>new Set(u),[u]),T=d.useMemo(()=>r?r.sessions.filter(s=>{if(s.isArchived)return!1;const o=Re(s,{mode:"mobile"});if(!o)return!0;const p=r.sessions.find(f=>f.sessionId===o);return!p||!p.isArchived}).map(s=>({session:s,workspace:r.workspace})):[],[r]),R=d.useMemo(()=>T.filter(s=>D.has(s.session.sessionId)),[T,D]),j=d.useMemo(()=>ue(T,{mode:"mobile"}),[T]),V=d.useMemo(()=>ue(R,{mode:"mobile"}),[R]),E=d.useMemo(()=>r?r.sessions.filter(s=>s.isArchived===!0&&!Ee(s)):[],[r]),G=(r==null?void 0:r.workspace.id)??"",O=!!G,[$,l]=d.useState([]),[oe,F]=d.useState({}),[J,H]=d.useState(!1),[K,_]=d.useState(!1),[S,U]=d.useState(null);d.useEffect(()=>{F(s=>{const o={};for(const p of j){const f=se(ne(p));if(f.length===0)continue;const k=f.findIndex(v=>v.item.session.sessionId===c);o[p.item.session.sessionId]=Xe(f.length,ee,s[p.item.session.sessionId],k)}return Ye(s,o)?s:o})},[c,j]),d.useEffect(()=>{if(!c)return;const s=Ge(j,c,o=>o.session.sessionId);s.length!==0&&l(o=>{const p=new Set(o);let f=!1;for(const k of s)p.has(k)||(p.add(k),f=!0);return f?Array.from(p):o})},[c,j]);function q(s){l(o=>o.includes(s)?o.filter(p=>p!==s):[...o,s])}function ae(s){return oe[s]??ee}function X(s){F(o=>({...o,[s]:(o[s]??ee)+ee}))}function N(s,o){he("immersive"),t(We(s,o))}function Y(s,o){H(!1),he("immersive"),te(s,o)}async function le(s){U(s);try{await Z(s)}finally{U(o=>o===s?null:o)}}function C(s,o=!1,p=[],f=!1,k=!1){var re;const v=s.item.session.sessionId,n=s.children,x=s.depth===0&&n.length>0,P=o||x&&$.includes(v),g=P&&x,I=g?Ue(s,ae(v)):s,y=P?I.children:[],be=se(n).length,xe=se(y).length,ge=g&&xe<be,we=s.depth>0?[...p,f]:[...p];return e.jsxs("div",{className:"session-list-tree-node",children:[e.jsxs("div",{className:"session-list-tree-row",style:{"--session-tree-depth":s.depth},children:[s.depth>0?e.jsxs("div",{className:"session-tree-guides","aria-hidden":"true",style:{"--session-tree-depth":s.depth},children:[p.map((b,L)=>b?e.jsx("span",{className:"session-tree-guide-column",style:{"--session-tree-level":L+1}},`${v}:ancestor:${L}`):null),e.jsx("span",{className:"session-tree-guide-branch","data-continue":f,"data-first":k,style:{"--session-tree-level":s.depth},children:e.jsx("span",{className:"session-tree-guide-branch-horizontal"})})]}):null,e.jsx($e,{entry:s.item,isFavorite:D.has(v),isActive:c===v,depth:s.depth,variant:"mobile",workspaceTone:((re=ie[s.item.workspace.id])==null?void 0:re.tone)??"root",hasSubsessions:x,subsessionsExpanded:P,onActivate:b=>N(s.item.workspace.id,b),onToggleSubsessions:x?()=>q(v):void 0,onToggleFavorite:b=>{A(b)},onArchive:b=>z(b),onUnarchive:b=>Z(b),onRename:(b,L)=>W(b,L)})]}),P&&y.length>0?e.jsx("div",{className:"session-list-children",children:y.map((b,L)=>C(b,!0,we,L<y.length-1,L===0))}):null,ge?e.jsx("div",{className:"session-list-children",children:e.jsx("button",{type:"button",className:"secondary-button",onClick:()=>X(v),children:a("shell.subagentExpandMore")})}):null]},`${s.item.workspace.id}:${v}`)}return e.jsxs("main",{className:"session-index-page mobile-feature-page mobile-page-scroll-root mobile-page-with-top-header",children:[e.jsx(Pe,{currentWorkspace:w?{id:w.workspace.id,name:w.label,path:w.subtitle}:null,workspaces:i.map(s=>s.workspace),workspaceOptions:B,onSelectWorkspace:s=>{m(s),t(Oe(s))},content:e.jsx("button",{type:"button",className:"primary-button mobile-session-index-create-button",disabled:M||!O,onClick:()=>H(!0),children:a("shell.createSession")})}),e.jsxs("div",{className:"mobile-page-top-body",children:[e.jsx("div",{className:"session-index-archive-actions",children:e.jsxs("button",{type:"button",className:"primary-button mobile-session-index-create-button session-index-archive-button",disabled:M||!r,onClick:()=>_(!0),children:[e.jsx("span",{children:a("shell.archiveViewAction")}),e.jsx("span",{className:"session-index-archive-count",children:E.length})]})}),V.length>0?e.jsxs("section",{className:"session-section session-section-sheet",children:[e.jsxs("header",{className:"session-section-heading",children:[e.jsx("div",{children:e.jsx("h2",{children:a("shell.favoriteSectionTitle")})}),e.jsx("span",{className:"session-section-count",children:R.length})]}),e.jsx("div",{className:"session-current-workspace-list",children:V.map(s=>C(s))})]}):null,e.jsxs("section",{className:"session-section session-section-sheet",children:[e.jsxs("header",{className:"session-section-heading",children:[e.jsx("div",{children:e.jsx("h2",{children:a("shell.mobileConversationCurrentWorkspaceSection")})}),e.jsx("span",{className:"session-section-count",children:j.length})]}),j.length===0?e.jsx("p",{className:"session-section-empty",children:M?a("shell.searchSessionHint"):a("shell.emptyWorkspaceSessions")}):e.jsx("div",{className:"session-current-workspace-list",children:j.map(s=>C(s))})]})]}),e.jsx(Ie,{open:J,workspaces:i.map(s=>s.workspace),workspaceOptions:B,initialWorkspaceId:h??G,onClose:()=>H(!1),onSelect:Y}),e.jsx(He,{open:K,workspaceName:(w==null?void 0:w.label)??(r==null?void 0:r.workspace.name)??null,sessions:E,restoringSessionId:S,onClose:()=>{S||_(!1)},onRestore:s=>void le(s)})]})}function He({open:t,workspaceName:i,sessions:u,restoringSessionId:h,onClose:c,onRestore:M}){return d.useEffect(()=>{if(!t)return;function m(A){A.key==="Escape"&&!h&&c()}return window.addEventListener("keydown",m),()=>{window.removeEventListener("keydown",m)}},[c,t,h]),!t||typeof document>"u"?null:pe.createPortal(e.jsxs("div",{className:"workbench-modal-layer",children:[e.jsx("button",{type:"button",className:"workbench-modal-backdrop","aria-label":a("common.close"),disabled:!!h,onClick:c}),e.jsxs("section",{className:"workbench-modal-card surface-card",role:"dialog","aria-modal":"true","aria-label":a("shell.archiveModalTitle"),children:[e.jsx("div",{className:"workbench-modal-header",children:e.jsxs("div",{className:"workbench-modal-title-wrap",children:[e.jsx("h2",{children:a("shell.archiveModalTitle")}),e.jsx("p",{children:i?`${i} · ${a("shell.archiveModalDescription")}`:a("shell.archiveModalDescription")})]})}),e.jsx("div",{className:"workbench-modal-body",children:u.length>0?e.jsx("div",{className:"workbench-archive-list",children:u.map(m=>e.jsxs("article",{className:"workbench-archive-item",children:[e.jsxs("div",{className:"workbench-archive-item-main",children:[e.jsx("strong",{title:m.title??m.sessionId,children:m.title??m.sessionId}),e.jsx("p",{children:Ke(m)})]}),e.jsx("button",{type:"button",className:"secondary-button",disabled:h===m.sessionId,onClick:()=>{M(m.sessionId)},children:a("shell.unarchiveAction")})]},m.sessionId))}):e.jsx("p",{className:"workbench-section-empty",children:a("shell.archiveEmpty")})})]})]}),document.body)}function Ke(t){const i=fe(t.provider),u=_e(t.lastMessageAt??t.updatedAt??null);return[i,u].filter(Boolean).join(" · ")}function _e(t){if(!t)return null;const i=Date.parse(t);return Number.isNaN(i)?null:new Intl.DateTimeFormat(void 0,{month:"short",day:"numeric",hour:"2-digit",minute:"2-digit"}).format(i)}function Ue(t,i){const u=new Set(se(ne(t)).sort((h,c)=>(c.item.session.lastMessageAt??c.item.session.updatedAt).localeCompare(h.item.session.lastMessageAt??h.item.session.updatedAt)).slice(0,i).map(h=>h.item.session.sessionId));return{...t,children:ve(ne(t),u)}}function ve(t,i){return t.flatMap(u=>{const h=ve(ne(u),i);return!i.has(u.item.session.sessionId)&&h.length===0?[]:[{...u,children:h}]})}function Xe(t,i,u,h=-1){if(t<=0)return 0;const c=h>=0?Math.max(i,h+1):i;return Math.min(t,Math.max(u??0,c))}function Ye(t,i){const u=Object.keys(t),h=Object.keys(i);return u.length!==h.length?!1:u.every(c=>t[c]===i[c])}export{cs as SessionIndexPage};