@jingyi0605/codingns 0.9.6 → 0.9.8

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 (170) hide show
  1. package/dist/public/assets/{AdaptiveButlerPage-khJQh6a_.js → AdaptiveButlerPage-D-gXre7Y.js} +2 -2
  2. package/dist/public/assets/{App-CcDXqFl1.css → App-7zrCMhE-.css} +1 -1
  3. package/dist/public/assets/App-Dl-mcdqy.js +30 -0
  4. package/dist/public/assets/{BootstrapPage-DcfYtoLC.js → BootstrapPage-B-yMdfpQ.js} +1 -1
  5. package/dist/public/assets/ConversationPage-DRQ5Sg_d.js +9 -0
  6. package/dist/public/assets/{DesktopDetachPreviewPage-CXUPMcBz.js → DesktopDetachPreviewPage-D1DMaGcy.js} +1 -1
  7. package/dist/public/assets/{DesktopModal-bMdI1jEe.js → DesktopModal-BnfGW2gk.js} +1 -1
  8. package/dist/public/assets/DesktopWindowPage-2SWAi0xz.js +2 -0
  9. package/dist/public/assets/FileContextPanel-fbPuE9dO.js +1 -0
  10. package/dist/public/assets/GitSidebar-BkmesJJR.js +6 -0
  11. package/dist/public/assets/{MobileCreateSessionSheet-DWPBsEx8.js → MobileCreateSessionSheet-CEJcDBZJ.js} +1 -1
  12. package/dist/public/assets/{MobileSheet-BXvQPkxt.js → MobileSheet-rkn_CUOY.js} +1 -1
  13. package/dist/public/assets/{MobileTopHeaderFrame-vdYOyaaB.js → MobileTopHeaderFrame-CU0wsYSS.js} +1 -1
  14. package/dist/public/assets/MobileWorkspaceSwitcherHeader-idl8o1OB.js +1 -0
  15. package/dist/public/assets/{PluginAccessOverview-C77TeZTK.js → PluginAccessOverview-BBgM6tb0.js} +1 -1
  16. package/dist/public/assets/{PluginContainerPage-DdSwOCw-.js → PluginContainerPage-D-ly3i3H.js} +1 -1
  17. package/dist/public/assets/{PluginDetailPage-BK1yTzvO.js → PluginDetailPage-CWAHYyyG.js} +1 -1
  18. package/dist/public/assets/{PluginsListPage-DAAwSc6W.js → PluginsListPage-Cte3vBgR.js} +1 -1
  19. package/dist/public/assets/{RelayConnectEntryPage-4Yyo2p8b.js → RelayConnectEntryPage-sRJlstx9.js} +1 -1
  20. package/dist/public/assets/{ServerSettingsModal-C_DEisHs.js → ServerSettingsModal-BBft9KEC.js} +1 -1
  21. package/dist/public/assets/SessionIndexPage-CN7cEdl9.js +1 -0
  22. package/dist/public/assets/SettingsPage-BGT-YqG2.js +2 -0
  23. package/dist/public/assets/TerminalManagerPanel-6-ZJ8vGn.js +1 -0
  24. package/dist/public/assets/TerminalPage-CUXXQYU2.js +55 -0
  25. package/dist/public/assets/{TerminalRuntimeFallbackModal-KvG6k4AQ.js → TerminalRuntimeFallbackModal-zc3qqMKJ.js} +1 -1
  26. package/dist/public/assets/ToolFilesPage-QzsZyr0F.js +1 -0
  27. package/dist/public/assets/ToolGitPage-CXg4ncuT.js +1 -0
  28. package/dist/public/assets/ToolProcessesPage-BPsOsg4w.js +1 -0
  29. package/dist/public/assets/ToolsHomePage-D1n4FU1s.js +1 -0
  30. package/dist/public/assets/WorkbenchLandingPage-BaU_dXls.js +1 -0
  31. package/dist/public/assets/WorkbenchLayout-DViAJhHz.js +1027 -0
  32. package/dist/public/assets/{WorkbenchModal-xbx1o6MO.js → WorkbenchModal-DWsNm2B2.js} +1 -1
  33. package/dist/public/assets/WorkbenchShellRoute-BGfRqBUa.js +1 -0
  34. package/dist/public/assets/WorkbenchShellRoute-f2jWjHWu.css +1 -0
  35. package/dist/public/assets/WorkspaceDebugDetailPage-BX0zVSsI.js +1 -0
  36. package/dist/public/assets/WorkspaceDetailPage-Dx6JX4jx.js +1 -0
  37. package/dist/public/assets/WorkspaceHomePage-DQVJ042Z.js +1 -0
  38. package/dist/public/assets/{client-runtime-manager-Bwau7p1v.js → client-runtime-manager-D9VbgJZ_.js} +1 -1
  39. package/dist/public/assets/host-alias-0TfFnYxR.js +1 -0
  40. package/dist/public/assets/index-DREvg1Yu.css +1 -0
  41. package/dist/public/assets/index-FOhyOpGY.js +50 -0
  42. package/dist/public/assets/{login-direct-candidate-resolver-CKUQ07IA.js → login-direct-candidate-resolver-17wEvjhh.js} +1 -1
  43. package/dist/public/assets/peer-host-config-sync-vYkmqzNz.js +1 -0
  44. package/dist/public/assets/{plugin-permission-copy-DIVk5jNp.js → plugin-permission-copy-apDn8EWG.js} +1 -1
  45. package/dist/public/assets/{plugins-api-DHJVvPZw.js → plugins-api-CnZYRKoS.js} +1 -1
  46. package/dist/public/assets/{preferences-service-CyxxeBmS.js → preferences-service-PZlLLAWH.js} +1 -1
  47. package/dist/public/assets/relay-entry-DhHwflXl.js +1 -0
  48. package/dist/public/assets/styles-BhKoKfQ_.css +1 -0
  49. package/dist/public/assets/terminal-runtime-meta-2zvacxvM.js +1 -0
  50. package/dist/public/assets/{useRegisteredDebugTemplates-wCGD2SLW.js → useRegisteredDebugTemplates-CJ-o4tFl.js} +1 -1
  51. package/dist/public/assets/workbench-navigation-aqJ1ay4M.js +1 -0
  52. package/dist/public/index.html +2 -2
  53. package/dist/server/middlewares/auth-guard.js +1 -0
  54. package/dist/server/middlewares/auth-guard.js.map +1 -1
  55. package/dist/server/modules/peer-host/host-api-proxy-service.d.ts +9 -0
  56. package/dist/server/modules/peer-host/host-api-proxy-service.js +174 -0
  57. package/dist/server/modules/peer-host/host-api-proxy-service.js.map +1 -0
  58. package/dist/server/modules/peer-host/host-handshake-controller.d.ts +7 -0
  59. package/dist/server/modules/peer-host/host-handshake-controller.js +10 -0
  60. package/dist/server/modules/peer-host/host-handshake-controller.js.map +1 -0
  61. package/dist/server/modules/peer-host/host-handshake.d.ts +15 -0
  62. package/dist/server/modules/peer-host/host-handshake.js +20 -0
  63. package/dist/server/modules/peer-host/host-handshake.js.map +1 -0
  64. package/dist/server/modules/peer-host/host-ws-proxy-service.d.ts +14 -0
  65. package/dist/server/modules/peer-host/host-ws-proxy-service.js +256 -0
  66. package/dist/server/modules/peer-host/host-ws-proxy-service.js.map +1 -0
  67. package/dist/server/modules/peer-host/peer-host-controller.d.ts +55 -0
  68. package/dist/server/modules/peer-host/peer-host-controller.js +62 -0
  69. package/dist/server/modules/peer-host/peer-host-controller.js.map +1 -0
  70. package/dist/server/modules/peer-host/peer-host-service.d.ts +77 -0
  71. package/dist/server/modules/peer-host/peer-host-service.js +529 -0
  72. package/dist/server/modules/peer-host/peer-host-service.js.map +1 -0
  73. package/dist/server/modules/provider/provider-discovery-runtime.js +16 -1
  74. package/dist/server/modules/provider/provider-discovery-runtime.js.map +1 -1
  75. package/dist/server/modules/sessions/codex-app-server-helper-client.js +14 -0
  76. package/dist/server/modules/sessions/codex-app-server-helper-client.js.map +1 -1
  77. package/dist/server/modules/sessions/codex-app-server-helper-process.js +59 -0
  78. package/dist/server/modules/sessions/codex-app-server-helper-process.js.map +1 -1
  79. package/dist/server/modules/sessions/codex-session-title-generator.d.ts +19 -0
  80. package/dist/server/modules/sessions/codex-session-title-generator.js +308 -0
  81. package/dist/server/modules/sessions/codex-session-title-generator.js.map +1 -0
  82. package/dist/server/modules/sessions/session-history-service.d.ts +16 -0
  83. package/dist/server/modules/sessions/session-history-service.js +208 -12
  84. package/dist/server/modules/sessions/session-history-service.js.map +1 -1
  85. package/dist/server/modules/sessions/session-live-runtime-service.d.ts +6 -0
  86. package/dist/server/modules/sessions/session-live-runtime-service.js +181 -80
  87. package/dist/server/modules/sessions/session-live-runtime-service.js.map +1 -1
  88. package/dist/server/modules/sessions/session-title-utils.d.ts +3 -0
  89. package/dist/server/modules/sessions/session-title-utils.js +25 -0
  90. package/dist/server/modules/sessions/session-title-utils.js.map +1 -0
  91. package/dist/server/modules/sessions/workspace-office-mcp-config.d.ts +2 -1
  92. package/dist/server/modules/sessions/workspace-office-mcp-config.js +44 -3
  93. package/dist/server/modules/sessions/workspace-office-mcp-config.js.map +1 -1
  94. package/dist/server/modules/tasks/task-manager.d.ts +2 -1
  95. package/dist/server/modules/tasks/task-manager.js +3 -0
  96. package/dist/server/modules/tasks/task-manager.js.map +1 -1
  97. package/dist/server/modules/tasks/task-scheduler.d.ts +2 -1
  98. package/dist/server/modules/tasks/task-scheduler.js +21 -0
  99. package/dist/server/modules/tasks/task-scheduler.js.map +1 -1
  100. package/dist/server/modules/tasks/task-types.d.ts +6 -0
  101. package/dist/server/modules/tasks/task-types.js +1 -0
  102. package/dist/server/modules/tasks/task-types.js.map +1 -1
  103. package/dist/server/modules/workbench/workbench-controller.js +3 -2
  104. package/dist/server/modules/workbench/workbench-controller.js.map +1 -1
  105. package/dist/server/modules/workspace/affairs-library-service.d.ts +1 -0
  106. package/dist/server/modules/workspace/affairs-library-service.js +80 -0
  107. package/dist/server/modules/workspace/affairs-library-service.js.map +1 -1
  108. package/dist/server/modules/workspace/affairs-lightweight-session-service.js +13 -9
  109. package/dist/server/modules/workspace/affairs-lightweight-session-service.js.map +1 -1
  110. package/dist/server/routes/peer-hosts.d.ts +3 -0
  111. package/dist/server/routes/peer-hosts.js +18 -0
  112. package/dist/server/routes/peer-hosts.js.map +1 -0
  113. package/dist/server/routes/public.d.ts +2 -1
  114. package/dist/server/routes/public.js +2 -1
  115. package/dist/server/routes/public.js.map +1 -1
  116. package/dist/server/server/create-server.d.ts +4 -0
  117. package/dist/server/server/create-server.js +30 -2
  118. package/dist/server/server/create-server.js.map +1 -1
  119. package/dist/server/shared/http/error-handler.js +12 -0
  120. package/dist/server/shared/http/error-handler.js.map +1 -1
  121. package/dist/server/storage/repositories/peer-host-repository.d.ts +44 -0
  122. package/dist/server/storage/repositories/peer-host-repository.js +271 -0
  123. package/dist/server/storage/repositories/peer-host-repository.js.map +1 -0
  124. package/dist/server/storage/sqlite/client.js +81 -0
  125. package/dist/server/storage/sqlite/client.js.map +1 -1
  126. package/dist/server/storage/sqlite/schema.sql +64 -0
  127. package/dist/server/types/domain.d.ts +43 -0
  128. package/dist/server/ws/workbench-ws-hub.js +5 -14
  129. package/dist/server/ws/workbench-ws-hub.js.map +1 -1
  130. package/dist/server/ws/ws-server.d.ts +2 -1
  131. package/dist/server/ws/ws-server.js +5 -1
  132. package/dist/server/ws/ws-server.js.map +1 -1
  133. package/node_modules/@codingns/session-sync-core/dist/providers/codex.d.ts +7 -0
  134. package/node_modules/@codingns/session-sync-core/dist/providers/codex.js +623 -9
  135. package/node_modules/@codingns/session-sync-core/dist/providers/codex.js.map +1 -1
  136. package/node_modules/@codingns/session-sync-core/dist/runtime/active-run-registry.js +8 -1
  137. package/node_modules/@codingns/session-sync-core/dist/runtime/active-run-registry.js.map +1 -1
  138. package/node_modules/@codingns/session-sync-core/dist/runtime/codex-runtime.d.ts +4 -0
  139. package/node_modules/@codingns/session-sync-core/dist/runtime/codex-runtime.js +375 -15
  140. package/node_modules/@codingns/session-sync-core/dist/runtime/codex-runtime.js.map +1 -1
  141. package/node_modules/@codingns/session-sync-core/dist/types.d.ts +11 -0
  142. package/package.json +1 -1
  143. package/dist/public/assets/App-If9gThKM.js +0 -30
  144. package/dist/public/assets/ConversationPage-Bfb7GLTM.js +0 -9
  145. package/dist/public/assets/DesktopWindowPage-D1xwgS-7.js +0 -2
  146. package/dist/public/assets/FileContextPanel-C4syif3B.js +0 -1
  147. package/dist/public/assets/GitSidebar-DduL9aTV.js +0 -6
  148. package/dist/public/assets/MobileWorkspaceSwitcherHeader-DT330cAx.js +0 -1
  149. package/dist/public/assets/SessionIndexPage-DyMikN_x.js +0 -1
  150. package/dist/public/assets/SettingsPage-CDAVsPr3.js +0 -2
  151. package/dist/public/assets/TerminalManagerPanel-4OR47vcf.js +0 -1
  152. package/dist/public/assets/TerminalPage-Pvx396YX.js +0 -55
  153. package/dist/public/assets/ToolFilesPage-DrYHk0N-.js +0 -1
  154. package/dist/public/assets/ToolGitPage-Dz1q-Ns_.js +0 -1
  155. package/dist/public/assets/ToolProcessesPage-CRhphOmM.js +0 -1
  156. package/dist/public/assets/ToolsHomePage-BJSDLR6T.js +0 -1
  157. package/dist/public/assets/WorkbenchLandingPage-BlkxdOLC.js +0 -1
  158. package/dist/public/assets/WorkbenchLayout-D-U7ghT0.js +0 -1022
  159. package/dist/public/assets/WorkbenchShellRoute-DyWSCHz_.js +0 -1
  160. package/dist/public/assets/WorkbenchShellRoute-htbkGbtW.css +0 -1
  161. package/dist/public/assets/WorkspaceDebugDetailPage-B4ol2_a5.js +0 -1
  162. package/dist/public/assets/WorkspaceDetailPage-DMakfmHR.js +0 -1
  163. package/dist/public/assets/WorkspaceHomePage-tmCafatd.js +0 -1
  164. package/dist/public/assets/index-DmUJ8tIw.css +0 -1
  165. package/dist/public/assets/index-_OCkVmfl.js +0 -50
  166. package/dist/public/assets/relay-entry-B5GmiOrR.js +0 -1
  167. package/dist/public/assets/styles-DkbkRgWw.css +0 -1
  168. package/dist/public/assets/terminal-runtime-meta-DBsyT35T.js +0 -1
  169. package/dist/public/assets/workbench-navigation-RyUjchbD.js +0 -1
  170. /package/dist/public/assets/{styles-JKFlsYFv.js → styles-DwSuZo1w.js} +0 -0
@@ -1 +0,0 @@
1
- import{k as A,n as m}from"./index-_OCkVmfl.js";function S(r,t,n){var y;const a=p(t.tunnelDomain),l=m(t.controlBaseUrl),o=w(a,l),s=new Date().toISOString(),e=B(r.hosts,o,t.bindingId??null),c=z(n==null?void 0:n.displayName)??(e==null?void 0:e.name)??a,h={endpointId:`relay-entry:${o}`,kind:"relay",url:o,priority:0,expiresAt:null,source:"user_saved"},E=f(t.candidateEndpoints).filter(d=>d.url!==o),I=(((y=e==null?void 0:e.relayTunnel)==null?void 0:y.candidateEndpoints)??[]).filter(d=>d.url!==o),u={id:(e==null?void 0:e.id)??D(t.bindingId??null,a),name:c,baseUrl:o,kind:"remote",createdAt:(e==null?void 0:e.createdAt)??s,updatedAt:s,lastConnectedAt:(e==null?void 0:e.lastConnectedAt)??null,lastUserId:(e==null?void 0:e.lastUserId)??null,lastUsername:(e==null?void 0:e.lastUsername)??null,relayTunnel:{provider:"codingns_relay",enabled:!0,tunnelDomain:a,controlBaseUrl:l,bindingId:i(t.bindingId??null),hostFingerprint:i(t.hostFingerprint??null),candidateEndpoints:U([h,...E,...I])}},C=e?r.hosts.map(d=>d.id===e.id?u:d):[u,...r.hosts];return{activeHostId:(n==null?void 0:n.activate)===!1?r.activeHostId:u.id,activeDiscoveredHostId:(n==null?void 0:n.activate)===!1?r.activeDiscoveredHostId:null,hosts:C}}async function F(r,t=fetch){var l;const n=A(r);if(!n)return null;const a={tunnelDomain:n.tunnelDomain,controlBaseUrl:n.controlBaseUrl};try{const o=await t(new URL(`/api/v1/tunnels/${encodeURIComponent(n.tunnelDomain)}`,b(n.controlBaseUrl)).toString(),{method:"GET"});if(!o.ok)return a;const e=(await o.json()).binding;return{tunnelDomain:p((e==null?void 0:e.tunnelDomain)??n.tunnelDomain),controlBaseUrl:m((e==null?void 0:e.controlBaseUrl)??n.controlBaseUrl),bindingId:i((e==null?void 0:e.bindingId)??null),hostFingerprint:i((e==null?void 0:e.hostFingerprint)??null),candidateEndpoints:f((l=e==null?void 0:e.runtime)==null?void 0:l.candidateEndpoints)}}catch{return a}}function B(r,t,n){if(n){const a=r.find(l=>{var o;return((o=l.relayTunnel)==null?void 0:o.bindingId)===n})??null;if(a)return a}return r.find(a=>a.baseUrl===t)??null}function D(r,t){return r?`relay-entry:${r}`:`relay-entry:${t}`}function p(r){const t=r.trim().toLowerCase();if(!t||!/^[a-z0-9-]+(\.[a-z0-9-]+)+$/i.test(t))throw new Error("隧道域名无效");return t}function i(r){const t=r==null?void 0:r.trim();return t||null}function z(r){const t=r==null?void 0:r.trim();return t||null}function w(r,t){const n=new URL(t);return n.hostname=r,n.username="",n.password="",n.pathname="",n.search="",n.hash="",m(n.toString())}function b(r){return r.endsWith("/")?r:`${r}/`}function f(r){if(!Array.isArray(r))return[];const t=[];for(const n of r){if(typeof n!="object"||n===null||Array.isArray(n))continue;const a=i(n.endpointId),l=i(n.kind),o=i(n.url),s=n.priority,e=i(n.expiresAt),c=i(n.source);!a||!o||!Number.isFinite(s)||!R(l)||!k(c)||t.push({endpointId:a,kind:l,url:o,priority:Number(s),expiresAt:e,source:c})}return U(t)}function U(r){const t=new Map;for(const n of r)t.has(n.url)||t.set(n.url,n);return Array.from(t.values()).sort((n,a)=>n.priority!==a.priority?n.priority-a.priority:n.url.localeCompare(a.url))}function R(r){return r==="relay"||r==="lan"||r==="loopback"||r==="tailscale"||r==="custom"}function k(r){return r==="host_reported"||r==="desktop_scan"||r==="user_saved"}export{S as b,F as r};
@@ -1 +0,0 @@
1
- .session-index-page{display:flex;flex-direction:column;gap:0}.session-section{padding:0}.session-index-archive-actions{padding:0 0 .85rem}.session-index-archive-button{display:flex;align-items:center;width:100%;border-radius:1rem;position:relative}.session-index-archive-count{display:inline-flex;align-items:center;justify-content:center;min-width:1.75rem;min-height:1.75rem;padding:0 .5rem;border-radius:999px;background:color-mix(in srgb,white 76%,transparent);color:color-mix(in srgb,var(--accent) 78%,var(--text-primary));font-size:.8rem;font-weight:600;box-shadow:inset 0 0 0 1px color-mix(in srgb,white 30%,transparent);position:absolute;top:50%;right:14px;transform:translateY(-50%);pointer-events:none}.session-section-sheet{background:transparent;border:0;padding-top:0}.session-section-heading{display:flex;justify-content:space-between;align-items:baseline;gap:1rem;margin-bottom:.75rem;padding:0 .95rem}.session-section-description{margin:.25rem 0 0;color:var(--text-muted);font-size:.85rem}.session-section-count{font-size:.75rem;color:var(--text-muted)}.session-section-list{display:flex;flex-direction:column;gap:.75rem}.session-current-workspace-list{overflow:hidden;border:1px solid color-mix(in srgb,var(--border-primary) 84%,transparent);border-radius:1.2rem;background:linear-gradient(180deg,color-mix(in srgb,var(--bg-surface) 98%,transparent),var(--bg-surface)),var(--bg-surface);box-shadow:0 0 0 .5px color-mix(in srgb,rgba(255,255,255,.74) 54%,transparent),0 12px 28px #0f172a0d}.session-list-tree-node{display:flex;flex-direction:column}.session-list-tree-row{display:flex;align-items:stretch;min-width:0;position:relative;--session-tree-line-color: color-mix(in srgb, var(--text-secondary) 54%, var(--bg-primary));--session-tree-indicator-size: 10px;--session-tree-link-gap: .55rem;--session-tree-link-padding-left: .4rem;--session-tree-toggle-left: .95rem;--session-tree-indicator-center-x: calc( var(--session-tree-toggle-left) + (var(--session-tree-indicator-size) / 2) );--session-tree-indicator-center-y: calc(.95rem + .35rem + 5px);--session-tree-indent-step: 1.35rem;--session-tree-gap: 4px;--session-tree-gap-half: calc(var(--session-tree-gap) / 2);padding-left:calc(var(--session-tree-depth, 0) * var(--session-tree-indent-step))}.session-list-tree-row>.session-list-item{flex:1 1 auto;min-width:0;position:relative;z-index:1}.session-current-workspace-list>.session-list-tree-node{border-bottom:1px solid color-mix(in srgb,var(--border-primary) 82%,transparent)}.session-current-workspace-list>.session-list-tree-node:last-child{border-bottom:0}.session-list-children{display:flex;flex-direction:column;margin-left:0;padding-left:0}.session-tree-guides{position:absolute;top:0;right:0;bottom:0;left:0;z-index:0;pointer-events:none}.session-tree-guide-column,.session-tree-guide-branch{position:absolute;top:0;right:0;bottom:0;left:0}.session-tree-guide-column:before{content:"";position:absolute;top:calc(-1 * var(--session-tree-gap-half));bottom:calc(-1 * var(--session-tree-gap-half));left:calc(((var(--session-tree-level) - 1) * var(--session-tree-indent-step)) + var(--session-tree-indicator-center-x) - .5px);width:1px;background:var(--session-tree-line-color)}.session-tree-guide-branch:before{content:"";position:absolute;top:calc(-1 * var(--session-tree-gap-half));left:calc(((var(--session-tree-level) - 1) * var(--session-tree-indent-step)) + var(--session-tree-indicator-center-x) - .5px);width:1px;height:calc(var(--session-tree-indicator-center-y) + var(--session-tree-gap-half));background:var(--session-tree-line-color)}.session-tree-guide-branch[data-first=true]:before{top:calc(-1 * (var(--session-tree-indicator-center-y) + var(--session-tree-gap-half)));height:calc((var(--session-tree-indicator-center-y) * 2) + var(--session-tree-gap-half))}.session-tree-guide-branch[data-continue=true]:after{content:"";position:absolute;top:var(--session-tree-indicator-center-y);bottom:calc(-1 * var(--session-tree-gap-half));left:calc(((var(--session-tree-level) - 1) * var(--session-tree-indent-step)) + var(--session-tree-indicator-center-x) - .5px);width:1px;background:var(--session-tree-line-color)}.session-tree-guide-branch-horizontal{position:absolute;top:var(--session-tree-indicator-center-y);left:calc(((var(--session-tree-level) - 1) * var(--session-tree-indent-step)) + var(--session-tree-indicator-center-x));width:var(--session-tree-indent-step);height:1px;background:var(--session-tree-line-color);transform:translateY(-.5px)}.session-section-empty{margin:0;color:var(--text-muted)}.session-list-item{display:flex;align-items:center;justify-content:space-between;gap:.75rem;padding:.75rem;border-radius:10px;background:var(--surface-press);border:1px solid transparent;position:relative}.session-list-item[data-active=true]{border-color:color-mix(in srgb,var(--accent) 22%,transparent);background:color-mix(in srgb,var(--accent) 8%,var(--surface-press))}.session-list-item[data-variant=mobile]{gap:.35rem;padding:0;border:0;border-radius:0;background:transparent}.session-list-item[data-variant=mobile]:not([data-depth="0"]):before{content:none}.session-list-item[data-variant=mobile][data-active=true]{border-color:transparent;background:color-mix(in srgb,var(--accent) 8%,var(--bg-surface))}.session-list-item[data-depth="1"]{background:color-mix(in srgb,var(--surface-press) 84%,transparent)}.session-list-item[data-variant=mobile][data-depth="1"]{background:color-mix(in srgb,var(--bg-tertiary) 80%,transparent)}.session-list-item[data-depth="2"],.session-list-item[data-depth="3"]{background:color-mix(in srgb,var(--surface-press) 72%,transparent)}.session-list-item[data-variant=mobile][data-depth="2"],.session-list-item[data-variant=mobile][data-depth="3"]{background:color-mix(in srgb,var(--bg-tertiary) 68%,transparent)}.session-list-item[data-variant=mobile][data-workspace-tone=worktree] .session-list-title{color:color-mix(in srgb,var(--text-primary) 78%,var(--success) 22%)}.session-list-item[data-variant=mobile][data-workspace-tone=worktree] .session-list-meta{color:color-mix(in srgb,var(--text-secondary) 76%,var(--success) 24%)}.session-list-item[data-variant=mobile][data-workspace-tone=worktree][data-active=true]{background:linear-gradient(135deg,color-mix(in srgb,var(--success) 12%,var(--bg-surface)),color-mix(in srgb,var(--accent) 10%,var(--bg-surface)))}.session-list-link{flex:1;display:flex;align-items:flex-start;gap:.7rem;text-align:left;border:none;background:transparent;padding:0}.session-list-link:hover{text-decoration:underline}.session-list-item[data-variant=mobile] .session-list-link{gap:var(--session-tree-link-gap);padding:.95rem .95rem .95rem .35rem}.session-list-item[data-variant=mobile] .session-list-link:hover{text-decoration:none}.session-list-title{margin:0;font-weight:600}.session-list-copy{min-width:0;flex:1}.session-list-meta{margin:.25rem 0 0;font-size:.85rem;color:var(--text-muted)}.session-list-item[data-variant=mobile] .session-list-title{font-size:.98rem;font-weight:600}.session-list-item[data-variant=mobile] .session-list-meta{font-size:.78rem}.session-list-indicator{width:var(--session-tree-indicator-size, 10px);height:var(--session-tree-indicator-size, 10px);margin-top:.35rem;border-radius:999px;flex-shrink:0;box-sizing:border-box;position:relative;z-index:1;isolation:isolate}.session-list-indicator:before{content:"";position:absolute;top:-3px;right:-3px;bottom:-3px;left:-3px;border-radius:999px;background:var(--bg-surface);z-index:-1}.session-list-indicator:after{content:"";position:absolute;top:50%;left:50%;width:7px;height:7px;border-radius:999px;background:transparent;box-sizing:border-box;transform:translate(-50%,-50%)}.session-list-item[data-variant=mobile]>.session-list-indicator{align-self:flex-start;margin:1.3rem 0 0 var(--session-tree-toggle-left)}.session-list-subsession-toggle{display:inline-flex;align-items:flex-start;justify-content:center;align-self:stretch;margin:.95rem 0 .95rem var(--session-tree-toggle-left);padding:0;border:0;background:transparent;color:var(--text-secondary);position:relative;z-index:1}.session-list-subsession-toggle .session-list-indicator{margin-top:.35rem}.session-list-indicator.is-idle{border:none;background:transparent;box-shadow:none;animation:none}.session-list-indicator.is-idle:after{border:2px solid color-mix(in srgb,var(--text-secondary) 42%,var(--border-primary))}.session-list-indicator.is-unread{border:none;background:transparent;box-shadow:none;animation:none}.session-list-indicator.is-unread:after{background:var(--accent);box-shadow:0 0 0 3px color-mix(in srgb,var(--accent) 18%,transparent)}.session-list-indicator.is-subagent{border:none;background:transparent;box-shadow:none;animation:none}.session-list-indicator.is-subagent:after{background:var(--success);box-shadow:0 0 0 3px color-mix(in srgb,var(--success) 18%,transparent)}.session-list-indicator.is-subagent-unread{border:none;background:transparent;box-shadow:none;animation:none}.session-list-indicator.is-subagent-unread:after{background:var(--success);box-shadow:0 0 0 4px color-mix(in srgb,var(--success) 22%,transparent)}.session-list-indicator.is-running{border:none;background:transparent;box-shadow:none;animation:none}.session-list-indicator.is-running:after{border:2px solid color-mix(in srgb,var(--accent) 22%,transparent);border-top-color:var(--accent);animation:session-running-spin .8s linear infinite}.session-list-indicator.is-running-inferred{border:none;background:transparent;box-shadow:none;animation:none}.session-list-indicator.is-running-inferred:after{border:2px solid color-mix(in srgb,var(--warning) 28%,transparent);border-top-color:var(--warning);animation:session-running-spin .8s linear infinite}.session-list-indicator.is-stale{border:none;background:transparent;box-shadow:none;animation:none}.session-list-indicator.is-stale:after{border:2px solid color-mix(in srgb,var(--warning) 34%,transparent);border-top-color:color-mix(in srgb,var(--warning) 70%,#8a4b00);animation:session-running-spin 1.4s linear infinite}.session-list-indicator.is-unknown{border:none;background:transparent;box-shadow:none;animation:none}.session-list-indicator.is-unknown:after{border:2px dashed color-mix(in srgb,var(--text-muted) 46%,transparent);background:color-mix(in srgb,var(--surface-muted) 82%,transparent)}.session-list-indicator.is-subagent-running{border:none;background:transparent;box-shadow:none;animation:none}.session-list-indicator.is-subagent-running:after{border:2px solid color-mix(in srgb,var(--success) 24%,transparent);border-top-color:var(--success);animation:session-running-spin .8s linear infinite}.session-list-indicator.is-error{border:none;background:transparent;box-shadow:none;animation:none}.session-list-indicator.is-error:after{background:#ff3b30;box-shadow:0 0 0 3px #ff3b3024}.session-list-activity-badge{display:inline-flex;align-items:center;padding:.08rem .38rem;border-radius:999px;font-size:.68rem;line-height:1.35}.session-list-activity-badge.is-stale{background:color-mix(in srgb,var(--warning) 14%,transparent);color:color-mix(in srgb,var(--warning) 74%,#704100)}.session-list-activity-badge.is-unknown{background:color-mix(in srgb,var(--surface-muted) 76%,transparent);color:var(--text-muted)}.session-list-actions{position:relative;display:flex;gap:.4rem}.session-list-actions .ghost-button{padding:.35rem .6rem;font-size:.75rem}.session-list-item[data-variant=mobile] .session-list-actions{align-self:stretch;align-items:center;padding-right:.75rem}.session-list-item[data-variant=mobile] .session-list-actions .ghost-button{min-height:2rem;padding:.25rem .5rem;color:var(--text-secondary)}.session-action-menu{position:fixed;z-index:3200;min-width:9rem;display:flex;flex-direction:column;padding:.35rem;border:1px solid var(--border-primary);border-radius:12px;background:color-mix(in srgb,var(--bg-surface) 96%,transparent);box-shadow:var(--shadow-lg);overflow-y:auto;overscroll-behavior:contain}.session-action-menu-item{width:100%;border:none;background:transparent;text-align:left;padding:.55rem .65rem;border-radius:8px;color:var(--text-primary)}.session-action-menu-item:hover{background:var(--surface-press)}.mobile-conversation-page[data-mobile-shell=true]{--mobile-conversation-preview-default-width: 48vw;--mobile-conversation-preview-max-width: 48vw;--mobile-conversation-preview-width: 0px;--mobile-conversation-preview-gap: 4px;--mobile-conversation-preview-progress: 0;--mobile-conversation-preview-offset: calc( var(--mobile-conversation-preview-width) + var(--mobile-conversation-preview-gap) );background:linear-gradient(180deg,color-mix(in srgb,var(--bg-surface) 28%,transparent),transparent 18%),var(--bg-primary);width:100%;max-width:100%;min-width:0;height:100%;overflow:hidden;box-sizing:border-box;gap:0;padding:0;position:relative}.mobile-conversation-header{position:sticky;top:0;z-index:12;display:flex;align-items:center;gap:.6rem;width:100%;max-width:100%;min-width:0;min-height:48px;box-sizing:border-box;flex-shrink:0;overflow:hidden;padding:.7rem max(1rem,env(safe-area-inset-right,0px)) .65rem max(1rem,env(safe-area-inset-left,0px));border-bottom:1px solid color-mix(in srgb,var(--border-primary) 78%,transparent);background:color-mix(in srgb,var(--bg-surface) 96%,transparent);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);transition:transform .22s ease;will-change:transform}.mobile-conversation-header:not(.mobile-conversation-header-embedded),.mobile-conversation-stage{width:100%;max-width:100%;box-sizing:border-box;transform:translate(0);will-change:transform,width}.mobile-conversation-page-header{width:100%;max-width:100%;box-sizing:border-box;transform:none}.mobile-conversation-page[data-mobile-shell=true][data-preview-mode=preview] .mobile-conversation-header:not(.mobile-conversation-header-embedded),.mobile-conversation-page[data-mobile-shell=true][data-preview-mode=preview] .mobile-conversation-stage{width:calc(100% - var(--mobile-conversation-preview-offset));max-width:calc(100% - var(--mobile-conversation-preview-offset));transform:translate(var(--mobile-conversation-preview-offset))}.android-workbench-shell .mobile-conversation-page[data-mobile-shell=true][data-tool-panel-open=true] .mobile-conversation-page-header{display:none}.android-workbench-shell .mobile-conversation-page[data-mobile-shell=true][data-tool-panel-open=true] .mobile-conversation-stage{height:100%}.mobile-conversation-page[data-mobile-shell=true][data-preview-mode=preview] .system-message .message-content-wrapper,.mobile-conversation-page[data-mobile-shell=true][data-preview-mode=preview] .system-message .message-content,.mobile-conversation-page[data-mobile-shell=true][data-preview-mode=preview] .system-message .code-block,.mobile-conversation-page[data-mobile-shell=true][data-preview-mode=preview] .system-message .text-code-block,.mobile-conversation-page[data-mobile-shell=true][data-preview-mode=preview] .tool-message-row .tool-call-item{width:100%;max-width:100%;min-width:0}.mobile-conversation-page[data-mobile-shell=true][data-preview-mode=preview] .system-message .message-content-wrapper{flex:1 1 auto}.mobile-conversation-page[data-mobile-shell=true][data-preview-mode=preview] .system-message pre,.mobile-conversation-page[data-mobile-shell=true][data-preview-mode=preview] .system-message code,.mobile-conversation-page[data-mobile-shell=true][data-preview-mode=preview] .tool-call-output pre{overflow-wrap:anywhere;word-break:break-word}.mobile-conversation-page[data-mobile-shell=true][data-preview-dragging=true] .mobile-conversation-header,.mobile-conversation-page[data-mobile-shell=true][data-preview-dragging=true] .mobile-conversation-page-header,.mobile-conversation-page[data-mobile-shell=true][data-preview-dragging=true] .mobile-conversation-stage,.mobile-conversation-page[data-mobile-shell=true][data-preview-dragging=true] .mobile-conversation-main,.mobile-conversation-page[data-mobile-shell=true][data-preview-dragging=true] .mobile-conversation-preview-rail{transition:none}.mobile-conversation-page-header .mobile-workspace-home-toolbar-top{align-items:center}.mobile-conversation-page-header .mobile-workspace-home-switcher{flex:0 0 auto;min-width:max-content;max-width:none}.mobile-conversation-page-header .mobile-workspace-home-switcher-label{overflow:visible;text-overflow:clip;white-space:nowrap}.mobile-conversation-page-header .mobile-workspace-home-toolbar-actions{display:flex;flex:1 1 0;min-width:0;justify-content:flex-start;margin-left:0}.mobile-conversation-page[data-workspace-tone=worktree] .mobile-conversation-page-header{border-bottom-color:color-mix(in srgb,var(--success) 18%,var(--border-primary));background:linear-gradient(180deg,color-mix(in srgb,var(--success) 4%,var(--bg-surface)),color-mix(in srgb,var(--accent) 4%,var(--bg-surface)))}.mobile-conversation-page[data-workspace-tone=worktree] .mobile-conversation-stage{background:radial-gradient(circle at top right,color-mix(in srgb,var(--success) 8%,transparent),transparent 34%),radial-gradient(circle at top left,color-mix(in srgb,var(--accent) 7%,transparent),transparent 36%)}.mobile-conversation-toolbar-main{display:flex;align-items:flex-start;gap:.65rem;width:100%;min-width:0}.mobile-conversation-session-actions{display:flex;flex:0 0 auto;flex-direction:column;align-items:stretch;gap:.45rem}.mobile-conversation-toolbar-main .mobile-conversation-session-actions,.mobile-conversation-toolbar-main .conversation-butler-entry{flex:0 0 auto}.mobile-conversation-toolbar-main .mobile-conversation-session-actions .conversation-header-ai-button{min-width:2.45rem;height:2rem;padding:0 .8rem;border-radius:999px;border-color:var(--app-button-border);background:var(--app-button-bg);box-shadow:none;color:var(--app-button-color)}.mobile-conversation-toolbar-main .mobile-conversation-session-actions .mobile-conversation-more-button{padding:0}.mobile-conversation-action-menu{min-width:12rem;padding:.45rem;border-radius:14px}.mobile-conversation-action-menu-item{min-height:3rem;padding:.8rem .95rem;border-radius:10px;font-size:1rem;font-weight:500}.mobile-conversation-toolbar-title{display:-webkit-box;flex:1 1 auto;width:100%;min-width:0;max-width:100%;overflow:hidden;color:var(--text-primary);font-size:.95rem;font-weight:600;line-height:1.2;text-align:left;text-overflow:ellipsis;white-space:normal;-webkit-box-orient:vertical;-webkit-line-clamp:2}.mobile-conversation-header-toggle{display:inline-flex;align-items:center;justify-content:center;width:2rem;height:2rem;padding:0;border:1px solid color-mix(in srgb,var(--border-primary) 82%,transparent);border-radius:999px;background:color-mix(in srgb,var(--bg-primary) 82%,transparent);color:var(--text-secondary);flex:0 0 auto;transition:border-radius .22s ease,width .22s ease,height .22s ease,margin .22s ease}.mobile-conversation-header-toggle[data-preview-mode=preview]{color:var(--accent);border-color:color-mix(in srgb,var(--border-primary) 86%,transparent);background:color-mix(in srgb,var(--bg-surface) 94%,transparent);align-self:stretch;width:2.35rem;height:auto;margin:-.7rem 0 -.65rem;border-top:0;border-bottom:0;border-left:0;border-radius:0}.mobile-conversation-header-embedded{position:static;top:auto;z-index:auto;min-height:0;padding:0;border:0;background:transparent;-webkit-backdrop-filter:none;backdrop-filter:none;transition:none}.mobile-conversation-header-embedded .mobile-conversation-header-toggle[data-preview-mode=preview]{align-self:center;width:2rem;height:2rem;margin:0;border:1px solid color-mix(in srgb,var(--border-primary) 82%,transparent);border-radius:999px}.mobile-conversation-header-embedded .mobile-conversation-header-copy h1{font-size:1rem}.mobile-conversation-header-copy{display:flex;flex:1 1 auto;max-width:100%;min-width:0;flex-direction:column;overflow:hidden}.mobile-conversation-header h1{margin:0;max-width:100%;overflow:hidden;font-size:1rem;font-weight:700;line-height:1.3;text-overflow:ellipsis;white-space:nowrap}.mobile-conversation-page-header{transition:transform .22s ease}.mobile-conversation-stage{position:relative;display:flex;flex:1 1 auto;width:100%;max-width:100%;min-height:0;min-width:0;overflow:hidden;box-sizing:border-box;gap:0;touch-action:pan-y;transition:transform .22s ease}.mobile-conversation-main{display:flex;flex:1 1 auto;width:100%;max-width:100%;min-width:0;min-height:0;flex-direction:column;overflow:hidden;box-sizing:border-box;box-shadow:calc(-14px * var(--mobile-conversation-preview-progress)) 0 32px rgba(15,23,42,calc(.03 + var(--mobile-conversation-preview-progress) * .08));transition:box-shadow .22s ease}.mobile-conversation-tool-panel{position:absolute;top:0;right:0;bottom:0;left:0;z-index:18;display:flex;flex-direction:column;min-width:0;min-height:0;background:linear-gradient(180deg,color-mix(in srgb,var(--bg-surface) 98%,transparent),var(--bg-primary));box-shadow:-18px 0 40px color-mix(in srgb,#000 16%,transparent)}.mobile-conversation-tool-panel-header{display:flex;align-items:center;gap:.75rem;padding:max(.85rem,env(safe-area-inset-top,0px)) max(.95rem,env(safe-area-inset-right,0px)) .75rem max(.95rem,env(safe-area-inset-left,0px));border-bottom:1px solid color-mix(in srgb,var(--border-primary) 78%,transparent);background:color-mix(in srgb,var(--bg-surface) 96%,transparent);-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px)}.android-workbench-shell .mobile-conversation-tool-panel-header{padding:.45rem max(.95rem,env(safe-area-inset-right,0px)) .55rem max(.95rem,env(safe-area-inset-left,0px))}.mobile-conversation-tool-panel-back{display:inline-flex;align-items:center;justify-content:center;width:2.4rem;height:2.4rem;padding:0;border:1px solid color-mix(in srgb,var(--border-primary) 78%,transparent);border-radius:999px;background:color-mix(in srgb,var(--bg-primary) 88%,transparent);color:var(--text-primary);font-size:1.35rem;line-height:1}.mobile-conversation-tool-panel-tabs{display:grid;flex:1 1 auto;grid-template-columns:repeat(3,minmax(0,1fr));gap:.35rem;padding:.24rem;border-radius:999px;background:color-mix(in srgb,var(--bg-primary) 86%,transparent)}.mobile-conversation-tool-panel-tab{min-width:0;min-height:2.35rem;padding:0 .55rem;border:0;border-radius:999px;background:transparent;color:var(--text-secondary);font-size:.92rem;font-weight:700;line-height:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;transition:background var(--transition-fast),color var(--transition-fast),box-shadow var(--transition-fast)}.mobile-conversation-tool-panel-tab[aria-selected=true]{background:color-mix(in srgb,var(--bg-surface) 96%,transparent);color:var(--text-primary);box-shadow:inset 0 1px #ffffffb8,0 10px 22px #0f172a14}.mobile-conversation-tool-panel-body{display:flex;flex:1 1 auto;min-width:0;min-height:0;padding:.75rem max(.75rem,env(safe-area-inset-right,0px)) max(.75rem,env(safe-area-inset-bottom,0px)) max(.75rem,env(safe-area-inset-left,0px));overflow:hidden}.mobile-conversation-tool-panel-body>.mobile-conversation-tool-surface,.mobile-conversation-tool-surface.conversation-panel,.mobile-conversation-tool-panel-body>.terminal-manager-panel.mobile-conversation-tool-surface{flex:1 1 auto;min-width:0;min-height:0;height:100%;max-height:100%;border-radius:1.2rem!important;overflow:hidden}.mobile-conversation-page[data-mobile-shell=true] .mobile-conversation-preview-rail.surface-card,.mobile-conversation-preview-rail{position:absolute;top:calc(var(--mobile-conversation-page-header-height, 0px) + var(--mobile-conversation-preview-gap));left:var(--mobile-conversation-preview-gap);bottom:calc(var(--mobile-conversation-composer-height, 0px) + var(--mobile-conversation-preview-gap));z-index:11;display:flex;width:var(--mobile-conversation-preview-width);max-width:min(var(--mobile-conversation-preview-width),var(--mobile-conversation-preview-max-width));min-height:0;min-width:0;flex-direction:column;gap:.7rem;padding:1rem .8rem .8rem;border:0;border-right:1px solid color-mix(in srgb,var(--border-primary) 86%,transparent);border-radius:16px!important;background:color-mix(in srgb,var(--bg-surface) 94%,transparent);box-shadow:12px 0 34px color-mix(in srgb,#000 14%,transparent);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);overflow:hidden;will-change:transform;transition:width .22s ease,max-width .22s ease,box-shadow .22s ease}.mobile-conversation-preview-rail[data-dragging=true]{transition:none}.mobile-conversation-preview-rail[data-dragging=true] button{pointer-events:none}.mobile-conversation-preview-topbar{display:flex;flex:0 0 auto;padding-top:.2rem}.mobile-conversation-preview-create-button,.mobile-conversation-preview-archive-button{width:100%}.mobile-conversation-preview-list{display:flex;min-height:0;flex:1 1 auto;flex-direction:column;gap:.45rem;overflow-y:auto;overscroll-behavior:contain}.mobile-conversation-preview-list-static{flex:0 0 auto;overflow:visible}.mobile-conversation-preview-list-favorites{flex:0 0 auto;min-height:auto;padding-bottom:0;margin-bottom:0;border-bottom:0}.mobile-conversation-preview-group{display:flex;flex-direction:column;gap:.5rem}.mobile-conversation-preview-group-workspace,.mobile-conversation-preview-group-archive{padding-top:0;border-top:0}.mobile-conversation-preview-group-workspace{flex:1 1 auto;min-height:0;overflow:hidden}.mobile-conversation-preview-body{display:flex;flex:1 1 auto;min-height:0;flex-direction:column;gap:.75rem}.mobile-conversation-preview-actions{display:flex;flex-direction:column;gap:.45rem}.mobile-conversation-preview-group-heading{padding:0 .5rem}.mobile-conversation-preview-empty{margin:0;color:var(--text-muted);font-size:.78rem;line-height:1.45}.mobile-conversation-preview-entry{position:relative;display:flex;align-items:stretch;gap:.35rem;min-width:0;z-index:1}.mobile-conversation-preview-item{display:flex;flex-direction:row;align-items:center;justify-content:flex-start;gap:.45rem;width:100%;min-width:0;min-height:0;flex:1 1 auto;padding:7px 10px 7px 4px;border-radius:10px;border:1px solid color-mix(in srgb,var(--border-primary) 78%,transparent);background:color-mix(in srgb,var(--bg-primary) 88%,transparent);color:inherit;text-align:left;overflow:hidden;box-sizing:border-box}.mobile-conversation-preview-item.terminal-mobile-session-primary{flex-direction:row;align-items:center;flex:1 1 auto;min-height:0;padding:7px 10px 7px 4px;border-radius:10px;gap:.45rem}.mobile-conversation-preview-item-body{display:flex;flex:1 1 auto;min-width:0;flex-direction:column;gap:1px}.mobile-conversation-preview-entry[data-active=true] .mobile-conversation-preview-item{border-color:color-mix(in srgb,var(--accent) 34%,transparent);background:color-mix(in srgb,var(--accent) 10%,var(--bg-primary))}.mobile-conversation-preview-indicator{width:8px;height:8px;border-radius:999px;flex-shrink:0;position:relative;z-index:1;isolation:isolate}.mobile-conversation-preview-indicator:before{content:"";position:absolute;top:-3px;right:-3px;bottom:-3px;left:-3px;border-radius:999px;background:color-mix(in srgb,var(--bg-primary) 92%,transparent);z-index:-1}.mobile-conversation-preview-indicator:after{content:"";position:absolute;top:50%;left:50%;width:7px;height:7px;border-radius:999px;background:transparent;box-sizing:border-box;transform:translate(-50%,-50%)}.mobile-conversation-preview-entry>.mobile-conversation-preview-indicator{align-self:flex-start;margin:.67rem 0 0 .65rem}.mobile-conversation-preview-toggle{display:inline-flex;align-items:flex-start;justify-content:center;align-self:stretch;margin:.45rem 0 .45rem .65rem;padding:0;border:0;background:transparent;color:var(--text-secondary);position:relative;z-index:1}.mobile-conversation-preview-toggle .mobile-conversation-preview-indicator{margin-top:.22rem}.mobile-conversation-preview-tree-node{display:flex;flex-direction:column}.mobile-conversation-preview-tree-row{position:relative;display:flex;align-items:stretch;min-width:0;--mobile-preview-tree-line-color: color-mix(in srgb, var(--text-secondary) 54%, var(--bg-primary));--mobile-preview-tree-indent-step: 1.15rem;--mobile-preview-tree-gap: 4px;--mobile-preview-tree-gap-half: calc(var(--mobile-preview-tree-gap) / 2);--mobile-preview-tree-indicator-center-x: calc(.65rem + 4px) ;--mobile-preview-tree-indicator-center-y: 1.11rem;padding-left:calc(var(--mobile-preview-tree-depth, 0) * var(--mobile-preview-tree-indent-step))}.mobile-conversation-preview-guides{position:absolute;top:0;right:0;bottom:0;left:0;z-index:0;pointer-events:none}.mobile-conversation-preview-guide-column,.mobile-conversation-preview-guide-branch{position:absolute;top:0;right:0;bottom:0;left:0}.mobile-conversation-preview-guide-column:before{content:"";position:absolute;top:calc(-1 * var(--mobile-preview-tree-gap-half));bottom:calc(-1 * var(--mobile-preview-tree-gap-half));left:calc(((var(--mobile-preview-tree-level) - 1) * var(--mobile-preview-tree-indent-step)) + var(--mobile-preview-tree-indicator-center-x) - .5px);width:1px;background:var(--mobile-preview-tree-line-color)}.mobile-conversation-preview-guide-branch:before{content:"";position:absolute;top:calc(-1 * var(--mobile-preview-tree-gap-half));left:calc(((var(--mobile-preview-tree-level) - 1) * var(--mobile-preview-tree-indent-step)) + var(--mobile-preview-tree-indicator-center-x) - .5px);width:1px;height:calc(var(--mobile-preview-tree-indicator-center-y) + var(--mobile-preview-tree-gap-half));background:var(--mobile-preview-tree-line-color)}.mobile-conversation-preview-guide-branch[data-first=true]:before{top:calc(-1 * (var(--mobile-preview-tree-indicator-center-y) + var(--mobile-preview-tree-gap-half)));height:calc((var(--mobile-preview-tree-indicator-center-y) * 2) + var(--mobile-preview-tree-gap-half))}.mobile-conversation-preview-guide-branch[data-continue=true]:after{content:"";position:absolute;top:var(--mobile-preview-tree-indicator-center-y);bottom:calc(-1 * var(--mobile-preview-tree-gap-half));left:calc(((var(--mobile-preview-tree-level) - 1) * var(--mobile-preview-tree-indent-step)) + var(--mobile-preview-tree-indicator-center-x) - .5px);width:1px;background:var(--mobile-preview-tree-line-color)}.mobile-conversation-preview-guide-branch-horizontal{position:absolute;top:var(--mobile-preview-tree-indicator-center-y);left:calc(((var(--mobile-preview-tree-level) - 1) * var(--mobile-preview-tree-indent-step)) + var(--mobile-preview-tree-indicator-center-x));width:var(--mobile-preview-tree-indent-step);height:1px;background:var(--mobile-preview-tree-line-color);transform:translateY(-.5px)}.mobile-conversation-preview-children{display:flex;flex-direction:column}.mobile-conversation-preview-indicator.is-idle{background:transparent;box-shadow:none;animation:none}.mobile-conversation-preview-indicator.is-idle:after{border:2px solid color-mix(in srgb,var(--text-secondary) 40%,var(--border-primary))}.mobile-conversation-preview-indicator.is-active{background:transparent;box-shadow:none;animation:none}.mobile-conversation-preview-indicator.is-active:after{background:var(--accent);box-shadow:0 0 0 3px color-mix(in srgb,var(--accent) 18%,transparent)}.mobile-conversation-preview-indicator.is-subagent{background:transparent;box-shadow:none;animation:none}.mobile-conversation-preview-indicator.is-subagent:after{background:#34c759;box-shadow:0 0 0 3px color-mix(in srgb,#34c759 18%,transparent)}.mobile-conversation-preview-indicator.is-subagent-unread{background:transparent;box-shadow:none;animation:none}.mobile-conversation-preview-indicator.is-subagent-unread:after{background:#34c759;box-shadow:0 0 0 4px color-mix(in srgb,#34c759 22%,transparent)}.mobile-conversation-preview-indicator.is-running{background:transparent;box-shadow:none;animation:none}.mobile-conversation-preview-indicator.is-running:after{border:2px solid color-mix(in srgb,var(--accent) 22%,transparent);border-top-color:var(--accent);animation:session-running-spin .8s linear infinite}.mobile-conversation-preview-indicator.is-running-inferred{background:transparent;box-shadow:none;animation:none}.mobile-conversation-preview-indicator.is-running-inferred:after{border:2px solid color-mix(in srgb,var(--warning) 28%,transparent);border-top-color:var(--warning);animation:session-running-spin .8s linear infinite}.mobile-conversation-preview-indicator.is-subagent-running{background:transparent;box-shadow:none;animation:none}.mobile-conversation-preview-indicator.is-subagent-running:after{border:2px solid color-mix(in srgb,#34c759 26%,transparent);border-top-color:#34c759;animation:session-running-spin .8s linear infinite}.mobile-conversation-preview-indicator.is-stale{background:transparent;box-shadow:none;animation:none}.mobile-conversation-preview-indicator.is-stale:after{border:2px solid color-mix(in srgb,var(--warning) 34%,transparent);border-top-color:color-mix(in srgb,var(--warning) 70%,#8a4b00);animation:session-running-spin 1.4s linear infinite}.mobile-conversation-preview-indicator.is-unknown{background:transparent;box-shadow:none;animation:none}.mobile-conversation-preview-indicator.is-unknown:after{border:2px dashed color-mix(in srgb,var(--text-muted) 46%,transparent);background:color-mix(in srgb,var(--surface-muted) 82%,transparent)}.mobile-conversation-preview-indicator.is-error{background:transparent;box-shadow:none;animation:none}.mobile-conversation-preview-indicator.is-error:after{background:#ff3b30;box-shadow:0 0 0 3px #ff3b3029}.mobile-conversation-preview-indicator.is-unread{background:transparent;box-shadow:none;animation:none}.mobile-conversation-preview-indicator.is-unread:after{background:var(--accent);box-shadow:0 0 0 3px color-mix(in srgb,var(--accent) 18%,transparent)}.mobile-conversation-preview-item-title,.mobile-conversation-preview-item-meta{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.mobile-conversation-preview-item-title{flex:0 0 auto;min-width:0;font-size:.86rem;font-weight:600;color:var(--text-primary);line-height:1.25}.mobile-conversation-preview-item .terminal-mobile-session-title,.terminal-mobile-session-primary .mobile-conversation-preview-item-title{flex:0 0 auto;font-size:.86rem;font-weight:600;line-height:1.25}.mobile-conversation-preview-item-meta{flex:0 0 auto;min-width:0;color:var(--text-tertiary);font-size:.7rem;line-height:1.2;white-space:nowrap}.mobile-conversation-preview-item .terminal-mobile-session-path,.terminal-mobile-session-primary .mobile-conversation-preview-item-meta{flex:0 0 auto;font-size:.7rem;white-space:nowrap}.mobile-conversation-preview-archive-button{flex:0 0 auto}@media(max-width:420px){.mobile-conversation-page[data-mobile-shell=true]{--mobile-conversation-preview-default-width: 60vw}.mobile-conversation-preview-rail{padding:.9rem .65rem calc(.9rem + env(safe-area-inset-bottom,0px))}.mobile-conversation-preview-item,.mobile-conversation-preview-item.terminal-mobile-session-primary{padding:5px 8px}.mobile-conversation-preview-item-title{font-size:.82rem}.mobile-conversation-preview-item-meta{font-size:.65rem}}.mobile-conversation-page[data-mobile-shell=true] .message-timeline,.mobile-conversation-page[data-mobile-shell=true] .message-list,.mobile-conversation-page[data-mobile-shell=true] .message-item,.mobile-conversation-page[data-mobile-shell=true] .message-content-wrapper,.mobile-conversation-bottom-layer-composer-slot .composer-panel,.mobile-conversation-bottom-layer-composer-slot .composer-form,.mobile-conversation-bottom-layer-composer-slot .composer-input-wrapper,.mobile-conversation-page[data-mobile-shell=true] .composer-panel,.mobile-conversation-page[data-mobile-shell=true] .composer-form,.mobile-conversation-page[data-mobile-shell=true] .composer-input-wrapper,.mobile-conversation-page[data-mobile-shell=true] .queued-message-list,.mobile-conversation-page[data-mobile-shell=true] .queued-message-item{min-width:0;max-width:100%;box-sizing:border-box}.mobile-conversation-page[data-mobile-shell=true] .tool-message-row .tool-call-item,.mobile-conversation-page[data-mobile-shell=true] .user-message{width:100%;max-width:100%;min-width:0}.mobile-conversation-page[data-mobile-shell=true] .user-message .message-content-wrapper{width:auto;max-width:100%;min-width:0}.mobile-conversation-page[data-mobile-shell=true] .message-text,.mobile-conversation-page[data-mobile-shell=true] .markdown-content{min-width:0;max-width:100%;overflow-wrap:anywhere;word-break:break-word}.mobile-conversation-page[data-mobile-shell=true] .assistant-message,.mobile-conversation-page[data-mobile-shell=true] .system-message{display:flex;align-items:flex-start;gap:0}.mobile-conversation-page[data-mobile-shell=true] .assistant-message .message-avatar{display:none}.mobile-conversation-page[data-mobile-shell=true] .assistant-message .message-content-wrapper,.mobile-conversation-page[data-mobile-shell=true] .system-message .message-content-wrapper,.mobile-conversation-page[data-mobile-shell=true] .rules-message-row .message-content-wrapper{flex:1 1 auto;width:100%;min-width:0}.mobile-conversation-page[data-mobile-shell=true] .markdown-content,.mobile-conversation-page[data-mobile-shell=true] .markdown-content p,.mobile-conversation-page[data-mobile-shell=true] .markdown-content li,.mobile-conversation-page[data-mobile-shell=true] .markdown-content blockquote,.mobile-conversation-page[data-mobile-shell=true] .system-message .message-text{overflow-wrap:anywhere;word-break:break-word}.mobile-conversation-page[data-mobile-shell=true] .tool-call-header,.mobile-conversation-page[data-mobile-shell=true] .tool-call-info{min-width:0;max-width:100%}.mobile-conversation-page[data-mobile-shell=true] .tool-call-info{flex-wrap:nowrap;align-items:center}.mobile-conversation-page[data-mobile-shell=true] .tool-call-input-preview{flex:1 1 auto;min-width:0;max-width:100%;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;overflow-wrap:normal;word-break:normal}.mobile-conversation-page[data-mobile-shell=true] .tool-call-name,.mobile-conversation-page[data-mobile-shell=true] .tool-call-meta{flex:0 0 auto}.mobile-conversation-page[data-mobile-shell=true] .tool-call-name{flex:0 0 auto;min-width:auto;max-width:none;white-space:nowrap}.mobile-conversation-page[data-mobile-shell=true] .tool-call-input-preview{display:block;flex:1 1 auto;min-width:0;max-width:100%;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;overflow-wrap:normal;word-break:normal}.mobile-conversation-page[data-mobile-shell=true] .apply-patch-summary-row{display:grid;grid-template-columns:auto minmax(0,1fr) auto;flex-wrap:nowrap;align-items:center;min-width:0}.mobile-conversation-page[data-mobile-shell=true] .apply-patch-summary-file{flex:1 1 auto;min-width:0;max-width:100%;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;overflow-wrap:normal;word-break:normal}.mobile-conversation-page[data-mobile-shell=true] .apply-patch-summary-stats{width:auto;min-width:0;flex:0 0 auto;justify-content:flex-end;white-space:nowrap}.mobile-conversation-page[data-mobile-shell=true] .markdown-content code{white-space:break-spaces;overflow-wrap:anywhere;word-break:break-word}.mobile-conversation-page[data-mobile-shell=true] .markdown-content table{display:block;max-width:100%;overflow-x:auto}.session-list-item[data-parallel-group=true]{border-color:color-mix(in srgb,var(--parallel-group-accent, var(--accent)) 22%,var(--border-primary));background:linear-gradient(90deg,color-mix(in srgb,var(--parallel-group-surface, transparent) 84%,transparent),transparent 52%),var(--bg-surface)}.session-list-title-row{display:flex;align-items:center;flex-wrap:wrap;gap:6px}.session-list-parallel-badge,.session-list-parallel-role-badge,.session-list-isolated-workspace-badge{display:inline-flex;align-items:center;min-height:20px;padding:0 8px;border-radius:999px;font-size:10px;font-weight:700}.session-list-parallel-badge,.session-list-parallel-role-badge{border:1px solid color-mix(in srgb,var(--parallel-group-accent, var(--accent)) 24%,var(--border-primary));background:color-mix(in srgb,var(--parallel-group-surface, var(--bg-hover)) 86%,transparent);color:color-mix(in srgb,var(--parallel-group-accent, var(--accent)) 74%,var(--text-primary))}.session-list-isolated-workspace-badge{border:1px solid color-mix(in srgb,var(--warning, #d97706) 24%,var(--border-primary));background:color-mix(in srgb,var(--warning, #d97706) 12%,var(--bg-surface));color:color-mix(in srgb,var(--warning, #d97706) 72%,var(--text-primary))}
@@ -1 +0,0 @@
1
- import{C as n,t}from"./index-_OCkVmfl.js";function o(){return n.request("/api/terminals/shells")}function m(e){return n.request(`/api/terminals?workspaceId=${encodeURIComponent(e)}`)}function l(e){return n.request(`/api/terminals/templates/runtime-status?workspaceId=${encodeURIComponent(e)}`)}function u(e){return n.request(`/api/terminals/templates/${encodeURIComponent(e)}/stop`,{method:"POST"})}function p(e){return n.request("/api/terminals",{method:"POST",body:JSON.stringify(e)})}function c(e){return n.request(`/api/terminals/${encodeURIComponent(e)}`,{method:"DELETE"})}function d(e){return n.request(`/api/terminals/${encodeURIComponent(e)}/record`,{method:"DELETE"})}function f(e,r={}){const i=new URLSearchParams;typeof r.beforeSeq=="number"&&i.set("beforeSeq",String(r.beforeSeq)),typeof r.limit=="number"&&i.set("limit",String(r.limit));const a=i.toString();return n.request(`/api/terminals/${encodeURIComponent(e)}/history${a?`?${a}`:""}`)}function b(e){return n.request(`/api/terminals/templates?workspaceId=${encodeURIComponent(e)}`)}function h(e){return n.request("/api/terminals/templates",{method:"POST",body:JSON.stringify(e)})}function S(e,r){return n.request(`/api/terminals/templates/${encodeURIComponent(e)}`,{method:"PUT",body:JSON.stringify(r)})}function T(e){return n.request(`/api/terminals/templates/${encodeURIComponent(e)}`,{method:"DELETE"})}function q(e,r){return n.request(`/api/terminals/templates/${encodeURIComponent(e)}/run`,{method:"POST",body:JSON.stringify(r)})}function w(e){return[{value:"",label:t("terminal.runtimeAutoOption"),description:t("terminal.runtimeAutoDescription")},{value:"tmux",label:e==="windows"?t("terminal.runtimePersistentLabel"):"tmux",description:e==="windows"?t("terminal.runtimeWindowsPersistentDescription"):t("terminal.runtimeTmuxDescription")},{value:"embedded-pty",label:"embedded-pty",description:t("terminal.runtimeEmbeddedDescription")}]}function C(e,r){return e?e==="conpty-powershell"?t("terminal.runtimeConptyPowerShellLabel"):e==="conpty-cmd"?t("terminal.runtimeConptyCmdLabel"):e==="conpty-git-bash"?t("terminal.runtimeConptyGitBashLabel"):e==="tmux"&&r==="windows"?t("terminal.runtimePersistentLabel"):e:t("terminal.runtimeAutoOption")}function R(e,r){return e?e==="embedded-pty"?"pty":e==="conpty-powershell"||e==="conpty-cmd"||e==="conpty-git-bash"||e==="tmux"&&r==="windows"?t("terminal.runtimePersistentShortLabel"):e:t("terminal.runtimeAutoShortLabel")}export{l as a,w as b,m as c,o as d,R as e,c as f,C as g,f as h,p as i,d as j,h as k,b as l,T as m,q as r,u as s,S as u};
@@ -1 +0,0 @@
1
- import{j as s,t as g}from"./index-_OCkVmfl.js";function Y({heading:e,description:t,actions:n,tone:a="default",className:r,children:l}){return s.jsxs("section",{className:d("modal-section",r),"data-tone":a,children:[e||t||n?s.jsxs("div",{className:"modal-section-header",children:[s.jsxs("div",{className:"modal-section-copy",children:[e?s.jsx("strong",{className:"modal-section-heading",children:e}):null,t?s.jsx("p",{className:"modal-section-description",children:t}):null]}),n?s.jsx("div",{className:"modal-section-actions",children:n}):null]}):null,l]})}function Z({label:e,description:t,className:n,htmlFor:a,children:r}){return s.jsxs("div",{className:d("workbench-modal-field","modal-field",n),children:[s.jsxs("div",{className:"modal-field-copy",children:[a?s.jsx("label",{className:"modal-field-label",htmlFor:a,children:e}):s.jsx("span",{className:"modal-field-label",children:e}),t?s.jsx("span",{className:"modal-field-description",children:t}):null]}),r]})}function ee({align:e="end",stack:t=!1,className:n,children:a,...r}){return s.jsx("div",{className:d("workbench-modal-actions","modal-actions",n),"data-align":e,"data-stack":t?"true":void 0,...r,children:a})}function te({compact:e=!1,className:t,children:n,...a}){return s.jsx("div",{className:d("modal-list",t),"data-compact":e?"true":void 0,...a,children:n})}function ne(e){const{as:t="div",label:n,description:a,leading:r,trailing:l,tone:o="default",selected:c=!1,className:u,children:j,...h}=e,b={className:d("modal-list-item",u),"data-tone":o!=="default"?o:void 0,"data-selected":c?"true":void 0,"data-interactive":t==="button"?"true":void 0},P=s.jsxs(s.Fragment,{children:[s.jsxs("div",{className:"modal-list-item-main",children:[r?s.jsx("div",{className:"modal-list-item-leading",children:r}):null,s.jsxs("div",{className:"modal-list-item-copy",children:[n?s.jsx("span",{className:"modal-list-item-label",children:n}):null,a?s.jsx("span",{className:"modal-list-item-description",children:a}):null,j]})]}),l?s.jsx("div",{className:"modal-list-item-trailing",children:l}):null]});if(t==="button"){const S=h;return s.jsx("button",{type:S.type??"button",...S,...b,children:P})}return s.jsx("div",{...h,...b,children:P})}function ae({title:e,description:t,action:n,className:a,compact:r=!1}){return s.jsxs("div",{className:d("modal-empty-state",a),"data-compact":r?"true":void 0,children:[s.jsx("strong",{className:"modal-empty-state-title",children:e}),t?s.jsx("p",{className:"modal-empty-state-description",children:t}):null,n?s.jsx("div",{className:"modal-empty-state-action",children:n}):null]})}function re({tone:e="default",className:t,children:n,...a}){return s.jsx("span",{className:d("modal-tag",t),"data-tone":e!=="default"?e:void 0,...a,children:n})}function d(...e){return e.filter(Boolean).join(" ")}const v={"parallel-group-1":{accent:"#0ea5e9",soft:"rgba(14, 165, 233, 0.16)",surface:"rgba(14, 165, 233, 0.08)"},"parallel-group-2":{accent:"#10b981",soft:"rgba(16, 185, 129, 0.16)",surface:"rgba(16, 185, 129, 0.08)"},"parallel-group-3":{accent:"#f59e0b",soft:"rgba(245, 158, 11, 0.16)",surface:"rgba(245, 158, 11, 0.08)"},"parallel-group-4":{accent:"#ec4899",soft:"rgba(236, 72, 153, 0.16)",surface:"rgba(236, 72, 153, 0.08)"},"parallel-group-5":{accent:"#8b5cf6",soft:"rgba(139, 92, 246, 0.16)",surface:"rgba(139, 92, 246, 0.08)"},"parallel-group-6":{accent:"#f97316",soft:"rgba(249, 115, 22, 0.16)",surface:"rgba(249, 115, 22, 0.08)"}},k=2600,A="workbench.parallel.pane.palette";let f=null;const I=["#34C759","#22C55E","#14B8A6","#06B6D4","#0EA5E9","#3B82F6","#6366F1","#8B5CF6","#A855F7","#D946EF","#EC4899","#F43F5E","#EF4444","#F97316","#F59E0B","#EAB308","#84CC16","#10B981"];function D(e="create"){return e==="append"?{totalDurationMs:1200,sidebarCollapseDurationMs:0,paneEnterDelayMs:0,paneEnterDurationMs:1e3,gridRevealDelayMs:0,gridRevealDurationMs:920,shellExpandDurationMs:0,paneStaggerMs:80}:{totalDurationMs:2e3,sidebarCollapseDurationMs:720,paneEnterDelayMs:520,paneEnterDurationMs:1480,gridRevealDelayMs:420,gridRevealDurationMs:1360,shellExpandDurationMs:720,paneStaggerMs:96}}function T(e){var n,a;const t=(n=e.displayParentSessionId)==null?void 0:n.trim();return t||((a=e.parentSessionId)==null?void 0:a.trim())||null}function se(e){var a;const t=(a=e==null?void 0:e.colorToken)==null?void 0:a.trim();if(!t)return;const n=v[t]??v["parallel-group-1"];return{"--parallel-group-accent":n.accent,"--parallel-group-soft":n.soft,"--parallel-group-surface":n.surface}}function le(e){const t=p(e.overrideColor)??$(e.groupId,e.ordinal);return{"--parallel-group-accent":t,"--parallel-group-soft":N(t,.08),"--parallel-group-surface":N(t,.03)}}function oe(e){if(typeof window>"u")return null;const t=e.trim();if(!t)return null;const n=w();return p(n[t]??null)}function ie(e,t){if(typeof window>"u")return p(t);const n=e.trim();if(!n)return null;const a=w(),r=p(t);return r?a[n]=r:delete a[n],window.localStorage.setItem(A,JSON.stringify(a)),r}function $(e,t){const n=I.length,a=Math.abs(R(e))%n;return I[(a+t*5)%n]}function ce(e){return e?e.role==="anchor"?g("shell.parallelGroupAnchorBadge"):g("shell.parallelGroupMemberBadge"):null}function ue(e){return e?g("shell.parallelGroupBadge",{count:e.memberCount}):null}function de(e){var n;return((n=e==null?void 0:e.branchName)==null?void 0:n.trim())||null}function fe(e){var n,a,r;return((a=(n=e==null?void 0:e.parallelGroup)==null?void 0:n.groupId)==null?void 0:a.trim())?((r=e==null?void 0:e.sessionIsolatedWorkspace)==null?void 0:r.lifecycleStatus)!=="promoted":!1}function me(e,t){return t&&(t.lifecycleStatus==="active"||t.lifecycleStatus==="removing")?t.sourceWorkspaceId:e.workspaceId}function pe(e,t){return t&&(t.lifecycleStatus==="active"||t.lifecycleStatus==="promoted")?t.workspaceId:e.workspaceId}function ge(e,t="create"){f={groupId:e,createdAt:Date.now(),...D(t)}}function he(e){return!f||f.groupId!==e?null:Date.now()-f.createdAt>k?(f=null,null):f}function w(){if(typeof window>"u")return{};const e=window.localStorage.getItem(A);if(!e)return{};try{const t=JSON.parse(e);return!t||typeof t!="object"?{}:t}catch{return{}}}function R(e){let t=0;for(const n of e)t=t*31+n.charCodeAt(0)|0;return t}function p(e){const t=(e==null?void 0:e.trim().toUpperCase())??"";return/^#[0-9A-F]{6}$/.test(t)?t:null}function N(e,t){const n=Math.max(0,Math.min(t,1)),a=Number.parseInt(e.slice(1,3),16),r=Number.parseInt(e.slice(3,5),16),l=Number.parseInt(e.slice(5,7),16);return`rgba(${a}, ${r}, ${l}, ${n})`}function L(e,t){const n=new Map(e.map(l=>[t.getId(l),l])),a=new Map,r=[];for(const l of e){const o=O(l,n,t);if(!o){r.push(l);continue}const c=a.get(o)??[];a.set(o,[...c,l])}return[...r].sort(t.compare).map(l=>y(l,0,a,t,new Set))}function m(e){return Array.isArray(e==null?void 0:e.children)?e.children:[]}function _(e){return e.flatMap(t=>[t.item,..._(m(t))])}function U(e){return e.flatMap(t=>[t,...U(m(t))])}function B(e,t){return e.some(n=>t(n.item)||B(m(n),t))}function x(e,t,n){return e?n(e.item)===t?!0:m(e).some(a=>x(a,t,n)):!1}function F(e,t,n){for(const a of e){const r=n(a.item);if(r===t)return[];const l=F(m(a),t,n);if(x(a,t,n)&&l.length>=0)return[r,...l]}return[]}function y(e,t,n,a,r){const l=a.getId(e),o=new Set(r);o.add(l);const c=[...n.get(l)??[]].filter(u=>!o.has(a.getId(u))).sort(a.compare).map(u=>y(u,t+1,n,a,o));return{item:e,depth:t,children:c}}function O(e,t,n){const a=M(n.getParentId(e));if(!a)return null;const r=t.get(a);if(!r)return null;const l=new Set([n.getId(e)]);let o=r;for(;o;){const c=n.getId(o);if(l.has(c))return null;l.add(c);const u=M(n.getParentId(o));if(!u||(o=t.get(u),!o))return a}return a}function M(e){const t=e==null?void 0:e.trim();return t||null}function be(){return"/workspaces"}function i(e){return`/workspaces/${encodeURIComponent(e)}`}function Pe(e){return`${i(e)}/debug`}function G(e){return`${i(e)}/sessions`}function W(e,t){return`${G(e)}/${encodeURIComponent(t)}`}function z(){return"/affairs"}function Se(e){return z()}function ve(e,t){const n=`${i(e)}/tools`;if(!t)return n;const a=new URLSearchParams({tab:t});return`${n}?${a.toString()}`}function Ie(e){return`${i(e)}/tools/files`}function Ne(e){return`${i(e)}/tools/git`}function Me(e){return`${i(e)}/tools/processes`}function J(e){return`${i(e)}/plugins`}function V(e,t){return`${J(e)}/${encodeURIComponent(t)}`}function Ae(e,t){return`${V(e,t)}/run`}function we(e){return`${i(e)}/terminals`}function xe(e,t){const n=`${i(e)}/butler`;if(!t)return n;const a=new URLSearchParams({tab:t});return`${n}?${a.toString()}`}function ye(e){return E(e.flatMap(t=>[...t.sessions.map(n=>({session:n,workspace:t.workspace})),...C(t.childWorktrees??[])])).sort((t,n)=>(n.session.lastMessageAt??n.session.updatedAt).localeCompare(t.session.lastMessageAt??t.session.updatedAt))}function Ce(e,t){return L(E(e),{getId:n=>n.session.sessionId,getParentId:n=>q(n.session,t),compare:K})}function q(e,t){var n;return(t==null?void 0:t.mode)==="mobile"?((n=e.parentSessionId)==null?void 0:n.trim())||null:T(e)}function Ee(e,t){const n=H(),a=new URLSearchParams({provider:t});return`${W(e,n)}?${a.toString()}`}function H(){const e=globalThis.crypto;return e&&typeof e.randomUUID=="function"?`draft-${e.randomUUID()}`:`draft-${Date.now()}-${Math.random().toString(16).slice(2)}`}function K(e,t){return(t.session.lastMessageAt??t.session.updatedAt).localeCompare(e.session.lastMessageAt??e.session.updatedAt)}function C(e){return e.flatMap(t=>[...t.sessions.map(n=>({session:n,workspace:t.workspace})),...C(t.children)])}function E(e){const t=[],n=new Set;for(const a of e){const r=a.session.sessionId.trim();!r||n.has(r)||(n.add(r),t.push(a))}return t}export{ge as A,q as B,ve as C,xe as D,Me as E,i as F,Ie as G,Ne as H,ce as I,U as J,re as K,V as L,ee as M,J as N,Ae as O,I as P,z as Q,Ee as R,L as S,Pe as T,T as U,_ as V,Se as a,G as b,Y as c,Z as d,W as e,ye as f,Ce as g,D as h,m as i,he as j,oe as k,se as l,le as m,ue as n,de as o,pe as p,we as q,me as r,F as s,B as t,te as u,ne as v,ie as w,ae as x,be as y,fe as z};