@jingyi0605/codingns 0.5.5 → 0.6.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (257) hide show
  1. package/bin/codingns.mjs +15 -2
  2. package/dist/public/assets/{AdaptiveButlerPage-CUyNL98E.js → AdaptiveButlerPage-Dw72U3hG.js} +3 -3
  3. package/dist/public/assets/App-CcDXqFl1.css +1 -0
  4. package/dist/public/assets/{App-BFP7LCSC.js → App-Dsf3ooXU.js} +3 -3
  5. package/dist/public/assets/{BootstrapPage-G74dX2Us.js → BootstrapPage-CE0m1qSR.js} +1 -1
  6. package/dist/public/assets/ConversationPage-8wOY7SX-.js +4 -0
  7. package/dist/public/assets/{DesktopDetachPreviewPage-IV7oEdOX.js → DesktopDetachPreviewPage-Dxarr_Wf.js} +1 -1
  8. package/dist/public/assets/DesktopWindowPage-VytPwJ4c.js +2 -0
  9. package/dist/public/assets/FileContextPanel-DwFzLsOp.js +1 -0
  10. package/dist/public/assets/GitSidebar-CH6WqTrM.js +6 -0
  11. package/dist/public/assets/MobileCreateSessionSheet-DcxKM00P.js +1 -0
  12. package/dist/public/assets/{MobileTopHeaderFrame-COTc7cRr.js → MobileTopHeaderFrame-C5rIKQT6.js} +1 -1
  13. package/dist/public/assets/MobileWorkspaceSwitcherHeader-CfUnHgv_.js +1 -0
  14. package/dist/public/assets/RelayConnectEntryPage-CgMvVZwa.js +1 -0
  15. package/dist/public/assets/ServerSettingsModal-CFul__z1.js +1 -0
  16. package/dist/public/assets/SessionIndexPage-B-tRhBXC.js +1 -0
  17. package/dist/public/assets/SettingsPage-C9LGxSQZ.js +1 -0
  18. package/dist/public/assets/TerminalManagerPanel-BbORd-ee.js +1 -0
  19. package/dist/public/assets/{TerminalPage-DpsvQQVR.js → TerminalPage-DWHv6mlu.js} +19 -19
  20. package/dist/public/assets/TerminalRuntimeFallbackModal-B29YxbQe.js +1 -0
  21. package/dist/public/assets/ToolFilesPage-Dx9cv9hu.js +1 -0
  22. package/dist/public/assets/ToolGitPage-D7H3vAia.js +1 -0
  23. package/dist/public/assets/ToolProcessesPage-PqQWxsy-.js +1 -0
  24. package/dist/public/assets/ToolsHomePage-CX05Pe_4.js +1 -0
  25. package/dist/public/assets/WorkbenchLandingPage-CchkAC75.js +1 -0
  26. package/dist/public/assets/WorkbenchLayout-pOZvEqp7.js +3 -0
  27. package/dist/public/assets/{WorkbenchModal-CbDxaCOR.js → WorkbenchModal-ColqvV6a.js} +1 -1
  28. package/dist/public/assets/WorkbenchShellRoute-C0_h4lP6.js +1 -0
  29. package/dist/public/assets/WorkbenchShellRoute-RGZpA0_J.css +1 -0
  30. package/dist/public/assets/WorkspaceDebugDetailPage-Deqy2_pO.js +1 -0
  31. package/dist/public/assets/WorkspaceDetailPage-Cvf-ZdlB.js +1 -0
  32. package/dist/public/assets/WorkspaceHomePage-Dsyvqyk1.js +1 -0
  33. package/dist/public/assets/client-runtime-manager-DROQJ9v3.js +1 -0
  34. package/dist/public/assets/{file-tree-icon-BMKuc5pw.js → file-tree-icon-Bp3Ntt7u.js} +7 -7
  35. package/dist/public/assets/index-B84Po2NA.css +1 -0
  36. package/dist/public/assets/index-C-0oeG_5.js +42 -0
  37. package/dist/public/assets/legna-code-6TqgZ4Ls.png +0 -0
  38. package/dist/public/assets/login-direct-candidate-resolver-DotM530R.js +1 -0
  39. package/dist/public/assets/model-switch-api-Bh9nYslz.js +1 -0
  40. package/dist/public/assets/{preferences-service-gv_9vGKz.js → preferences-service-BG6GKG29.js} +1 -1
  41. package/dist/public/assets/relay-entry-pmr-c42O.js +1 -0
  42. package/dist/public/assets/session-runtime-machine-YN84QBlr.js +21 -0
  43. package/dist/public/assets/{styles-BWPBZvze.css → styles-CsEMfdaS.css} +1 -1
  44. package/dist/public/assets/{terminal-runtime-meta-B9xJGY__.js → terminal-runtime-meta-8_uRZf7h.js} +1 -1
  45. package/dist/public/assets/useRegisteredDebugTemplates-DWX7LXQu.js +1 -0
  46. package/dist/public/assets/window-BVUB8gMK.js +1 -0
  47. package/dist/public/index.html +2 -2
  48. package/dist/server/config/env.d.ts +3 -0
  49. package/dist/server/config/env.js +10 -0
  50. package/dist/server/config/env.js.map +1 -1
  51. package/dist/server/modules/client/npm-global-package-service.d.ts +7 -1
  52. package/dist/server/modules/client/npm-global-package-service.js +149 -43
  53. package/dist/server/modules/client/npm-global-package-service.js.map +1 -1
  54. package/dist/server/modules/client/service-update-task-service.js +6 -2
  55. package/dist/server/modules/client/service-update-task-service.js.map +1 -1
  56. package/dist/server/modules/client/service-update-types.d.ts +2 -0
  57. package/dist/server/modules/git/git-controller.d.ts +3 -0
  58. package/dist/server/modules/git/git-controller.js +3 -0
  59. package/dist/server/modules/git/git-controller.js.map +1 -1
  60. package/dist/server/modules/git/git-read-service.js +47 -1
  61. package/dist/server/modules/git/git-read-service.js.map +1 -1
  62. package/dist/server/modules/git/git-write-service.d.ts +4 -0
  63. package/dist/server/modules/git/git-write-service.js +24 -0
  64. package/dist/server/modules/git/git-write-service.js.map +1 -1
  65. package/dist/server/modules/git/types.d.ts +1 -0
  66. package/dist/server/modules/git/workspace-repo-guard.d.ts +2 -0
  67. package/dist/server/modules/git/workspace-repo-guard.js +24 -10
  68. package/dist/server/modules/git/workspace-repo-guard.js.map +1 -1
  69. package/dist/server/modules/model-switch/cc-switch-adapter.d.ts +7 -0
  70. package/dist/server/modules/model-switch/cc-switch-adapter.js +17 -0
  71. package/dist/server/modules/model-switch/cc-switch-adapter.js.map +1 -1
  72. package/dist/server/modules/parallel-sessions/parallel-session-controller.d.ts +57 -0
  73. package/dist/server/modules/parallel-sessions/parallel-session-controller.js +77 -0
  74. package/dist/server/modules/parallel-sessions/parallel-session-controller.js.map +1 -0
  75. package/dist/server/modules/parallel-sessions/parallel-session-group-service.d.ts +88 -0
  76. package/dist/server/modules/parallel-sessions/parallel-session-group-service.js +625 -0
  77. package/dist/server/modules/parallel-sessions/parallel-session-group-service.js.map +1 -0
  78. package/dist/server/modules/parallel-sessions/session-isolated-workspace-service.d.ts +56 -0
  79. package/dist/server/modules/parallel-sessions/session-isolated-workspace-service.js +483 -0
  80. package/dist/server/modules/parallel-sessions/session-isolated-workspace-service.js.map +1 -0
  81. package/dist/server/modules/provider/opencode-model-options.d.ts +1 -0
  82. package/dist/server/modules/provider/opencode-model-options.js +54 -12
  83. package/dist/server/modules/provider/opencode-model-options.js.map +1 -1
  84. package/dist/server/modules/provider/provider-controller.d.ts +6 -1
  85. package/dist/server/modules/provider/provider-controller.js +24 -2
  86. package/dist/server/modules/provider/provider-controller.js.map +1 -1
  87. package/dist/server/modules/provider/provider-discovery-helper-client.d.ts +2 -0
  88. package/dist/server/modules/provider/provider-discovery-helper-client.js.map +1 -1
  89. package/dist/server/modules/provider/provider-discovery-helper-process.js +1 -1
  90. package/dist/server/modules/provider/provider-discovery-helper-process.js.map +1 -1
  91. package/dist/server/modules/provider/provider-discovery-runtime.js +5 -1
  92. package/dist/server/modules/provider/provider-discovery-runtime.js.map +1 -1
  93. package/dist/server/modules/relay-tunnel/relay-tunnel-candidate-endpoints.d.ts +2 -0
  94. package/dist/server/modules/relay-tunnel/relay-tunnel-candidate-endpoints.js +129 -0
  95. package/dist/server/modules/relay-tunnel/relay-tunnel-candidate-endpoints.js.map +1 -0
  96. package/dist/server/modules/relay-tunnel/relay-tunnel-runtime-adapter.js +12 -9
  97. package/dist/server/modules/relay-tunnel/relay-tunnel-runtime-adapter.js.map +1 -1
  98. package/dist/server/modules/relay-tunnel/relay-tunnel-service.js +1 -128
  99. package/dist/server/modules/relay-tunnel/relay-tunnel-service.js.map +1 -1
  100. package/dist/server/modules/sessions/claude-runtime-helper-client.d.ts +1 -0
  101. package/dist/server/modules/sessions/claude-runtime-helper-client.js +14 -0
  102. package/dist/server/modules/sessions/claude-runtime-helper-client.js.map +1 -1
  103. package/dist/server/modules/sessions/codex-app-server-helper-client.d.ts +4 -0
  104. package/dist/server/modules/sessions/codex-app-server-helper-client.js +66 -45
  105. package/dist/server/modules/sessions/codex-app-server-helper-client.js.map +1 -1
  106. package/dist/server/modules/sessions/codex-app-server-helper-process.js +21 -2
  107. package/dist/server/modules/sessions/codex-app-server-helper-process.js.map +1 -1
  108. package/dist/server/modules/sessions/provider-session-delete-cli.js +2 -0
  109. package/dist/server/modules/sessions/provider-session-delete-cli.js.map +1 -1
  110. package/dist/server/modules/sessions/session-controller.d.ts +7 -0
  111. package/dist/server/modules/sessions/session-controller.js +22 -0
  112. package/dist/server/modules/sessions/session-controller.js.map +1 -1
  113. package/dist/server/modules/sessions/session-history-service.d.ts +21 -2
  114. package/dist/server/modules/sessions/session-history-service.js +425 -29
  115. package/dist/server/modules/sessions/session-history-service.js.map +1 -1
  116. package/dist/server/modules/sessions/session-live-runtime-service.d.ts +23 -2
  117. package/dist/server/modules/sessions/session-live-runtime-service.js +472 -74
  118. package/dist/server/modules/sessions/session-live-runtime-service.js.map +1 -1
  119. package/dist/server/modules/sessions/session-message-attachment-service.js +2 -2
  120. package/dist/server/modules/sessions/session-message-attachment-service.js.map +1 -1
  121. package/dist/server/modules/sessions/session-provider-config-service.d.ts +66 -0
  122. package/dist/server/modules/sessions/session-provider-config-service.js +821 -0
  123. package/dist/server/modules/sessions/session-provider-config-service.js.map +1 -0
  124. package/dist/server/modules/sessions/session-provider-error-mapper.d.ts +2 -0
  125. package/dist/server/modules/sessions/session-provider-error-mapper.js +42 -0
  126. package/dist/server/modules/sessions/session-provider-error-mapper.js.map +1 -1
  127. package/dist/server/modules/workbench/codex-archive-watcher.d.ts +16 -0
  128. package/dist/server/modules/workbench/codex-archive-watcher.js +50 -0
  129. package/dist/server/modules/workbench/codex-archive-watcher.js.map +1 -0
  130. package/dist/server/modules/workbench/workbench-service.d.ts +11 -2
  131. package/dist/server/modules/workbench/workbench-service.js +37 -8
  132. package/dist/server/modules/workbench/workbench-service.js.map +1 -1
  133. package/dist/server/modules/workbench/workspace-panel-snapshot-service.d.ts +1 -1
  134. package/dist/server/modules/workbench/workspace-panel-snapshot-service.js +26 -3
  135. package/dist/server/modules/workbench/workspace-panel-snapshot-service.js.map +1 -1
  136. package/dist/server/modules/workspace/workspace-service.d.ts +3 -1
  137. package/dist/server/modules/workspace/workspace-service.js +10 -2
  138. package/dist/server/modules/workspace/workspace-service.js.map +1 -1
  139. package/dist/server/modules/worktree/worktree-base-ref-resolver.d.ts +20 -0
  140. package/dist/server/modules/worktree/worktree-base-ref-resolver.js +111 -0
  141. package/dist/server/modules/worktree/worktree-base-ref-resolver.js.map +1 -0
  142. package/dist/server/modules/worktree/worktree-cleanup-service.js +9 -3
  143. package/dist/server/modules/worktree/worktree-cleanup-service.js.map +1 -1
  144. package/dist/server/modules/worktree/worktree-manager.d.ts +0 -1
  145. package/dist/server/modules/worktree/worktree-manager.js +14 -20
  146. package/dist/server/modules/worktree/worktree-manager.js.map +1 -1
  147. package/dist/server/routes/git.js +1 -0
  148. package/dist/server/routes/git.js.map +1 -1
  149. package/dist/server/routes/parallel-groups.d.ts +3 -0
  150. package/dist/server/routes/parallel-groups.js +9 -0
  151. package/dist/server/routes/parallel-groups.js.map +1 -0
  152. package/dist/server/server/create-server.d.ts +8 -0
  153. package/dist/server/server/create-server.js +48 -11
  154. package/dist/server/server/create-server.js.map +1 -1
  155. package/dist/server/server/workbench-runtime-terminal-sync.d.ts +14 -0
  156. package/dist/server/server/workbench-runtime-terminal-sync.js +17 -0
  157. package/dist/server/server/workbench-runtime-terminal-sync.js.map +1 -0
  158. package/dist/server/storage/repositories/parallel-session-group-repository.d.ts +11 -0
  159. package/dist/server/storage/repositories/parallel-session-group-repository.js +131 -0
  160. package/dist/server/storage/repositories/parallel-session-group-repository.js.map +1 -0
  161. package/dist/server/storage/repositories/parallel-session-member-repository.d.ts +12 -0
  162. package/dist/server/storage/repositories/parallel-session-member-repository.js +150 -0
  163. package/dist/server/storage/repositories/parallel-session-member-repository.js.map +1 -0
  164. package/dist/server/storage/repositories/session-binding-repository.js +44 -5
  165. package/dist/server/storage/repositories/session-binding-repository.js.map +1 -1
  166. package/dist/server/storage/repositories/session-index-repository.js +6 -0
  167. package/dist/server/storage/repositories/session-index-repository.js.map +1 -1
  168. package/dist/server/storage/repositories/session-isolated-workspace-repository.d.ts +15 -0
  169. package/dist/server/storage/repositories/session-isolated-workspace-repository.js +230 -0
  170. package/dist/server/storage/repositories/session-isolated-workspace-repository.js.map +1 -0
  171. package/dist/server/storage/sqlite/client.js +19 -0
  172. package/dist/server/storage/sqlite/client.js.map +1 -1
  173. package/dist/server/storage/sqlite/schema.sql +78 -0
  174. package/dist/server/types/domain.d.ts +78 -0
  175. package/dist/server/ws/workbench-ws-hub.d.ts +3 -1
  176. package/dist/server/ws/workbench-ws-hub.js +23 -4
  177. package/dist/server/ws/workbench-ws-hub.js.map +1 -1
  178. package/node_modules/@codingns/session-sync-core/dist/claude-message-utils.d.ts +5 -2
  179. package/node_modules/@codingns/session-sync-core/dist/claude-message-utils.js +40 -8
  180. package/node_modules/@codingns/session-sync-core/dist/claude-message-utils.js.map +1 -1
  181. package/node_modules/@codingns/session-sync-core/dist/index.d.ts +2 -0
  182. package/node_modules/@codingns/session-sync-core/dist/index.js +2 -0
  183. package/node_modules/@codingns/session-sync-core/dist/index.js.map +1 -1
  184. package/node_modules/@codingns/session-sync-core/dist/providers/claude-code.d.ts +10 -1
  185. package/node_modules/@codingns/session-sync-core/dist/providers/claude-code.js +110 -35
  186. package/node_modules/@codingns/session-sync-core/dist/providers/claude-code.js.map +1 -1
  187. package/node_modules/@codingns/session-sync-core/dist/providers/claude-session-store.d.ts +11 -0
  188. package/node_modules/@codingns/session-sync-core/dist/providers/claude-session-store.js +105 -0
  189. package/node_modules/@codingns/session-sync-core/dist/providers/claude-session-store.js.map +1 -0
  190. package/node_modules/@codingns/session-sync-core/dist/providers/codex.d.ts +1 -0
  191. package/node_modules/@codingns/session-sync-core/dist/providers/codex.js +34 -0
  192. package/node_modules/@codingns/session-sync-core/dist/providers/codex.js.map +1 -1
  193. package/node_modules/@codingns/session-sync-core/dist/providers/gemini.js +131 -39
  194. package/node_modules/@codingns/session-sync-core/dist/providers/gemini.js.map +1 -1
  195. package/node_modules/@codingns/session-sync-core/dist/providers/legna-code.d.ts +9 -0
  196. package/node_modules/@codingns/session-sync-core/dist/providers/legna-code.js +17 -0
  197. package/node_modules/@codingns/session-sync-core/dist/providers/legna-code.js.map +1 -0
  198. package/node_modules/@codingns/session-sync-core/dist/providers/opencode-shared.d.ts +8 -1
  199. package/node_modules/@codingns/session-sync-core/dist/providers/opencode-shared.js +19 -6
  200. package/node_modules/@codingns/session-sync-core/dist/providers/opencode-shared.js.map +1 -1
  201. package/node_modules/@codingns/session-sync-core/dist/providers/opencode.d.ts +1 -0
  202. package/node_modules/@codingns/session-sync-core/dist/providers/opencode.js +13 -8
  203. package/node_modules/@codingns/session-sync-core/dist/providers/opencode.js.map +1 -1
  204. package/node_modules/@codingns/session-sync-core/dist/runtime/active-run-registry.d.ts +3 -0
  205. package/node_modules/@codingns/session-sync-core/dist/runtime/active-run-registry.js +46 -22
  206. package/node_modules/@codingns/session-sync-core/dist/runtime/active-run-registry.js.map +1 -1
  207. package/node_modules/@codingns/session-sync-core/dist/runtime/claude-runtime.d.ts +5 -1
  208. package/node_modules/@codingns/session-sync-core/dist/runtime/claude-runtime.js +103 -51
  209. package/node_modules/@codingns/session-sync-core/dist/runtime/claude-runtime.js.map +1 -1
  210. package/node_modules/@codingns/session-sync-core/dist/runtime/codex-runtime.d.ts +2 -1
  211. package/node_modules/@codingns/session-sync-core/dist/runtime/codex-runtime.js +528 -301
  212. package/node_modules/@codingns/session-sync-core/dist/runtime/codex-runtime.js.map +1 -1
  213. package/node_modules/@codingns/session-sync-core/dist/runtime/gemini-runtime.js +32 -8
  214. package/node_modules/@codingns/session-sync-core/dist/runtime/gemini-runtime.js.map +1 -1
  215. package/node_modules/@codingns/session-sync-core/dist/runtime/legna-runtime.d.ts +10 -0
  216. package/node_modules/@codingns/session-sync-core/dist/runtime/legna-runtime.js +16 -0
  217. package/node_modules/@codingns/session-sync-core/dist/runtime/legna-runtime.js.map +1 -0
  218. package/node_modules/@codingns/session-sync-core/dist/runtime/opencode-runtime.js +196 -15
  219. package/node_modules/@codingns/session-sync-core/dist/runtime/opencode-runtime.js.map +1 -1
  220. package/node_modules/@codingns/session-sync-core/dist/runtime/types.d.ts +2 -0
  221. package/node_modules/@codingns/session-sync-core/dist/types.d.ts +1 -1
  222. package/node_modules/@codingns/session-sync-core/dist/types.js +1 -1
  223. package/node_modules/@codingns/session-sync-core/dist/types.js.map +1 -1
  224. package/package.json +1 -1
  225. package/dist/public/assets/App-DUAg5urj.css +0 -1
  226. package/dist/public/assets/ConversationPage-Bz0_tvvM.js +0 -2
  227. package/dist/public/assets/DesktopWindowPage-BBmHyRg5.js +0 -2
  228. package/dist/public/assets/FileContextPanel--FVTxDrq.js +0 -1
  229. package/dist/public/assets/GitSidebar-DAiSi9oc.js +0 -6
  230. package/dist/public/assets/MobileCreateSessionSheet-DqVwz_Hp.js +0 -1
  231. package/dist/public/assets/MobileSheet-D1lMrcvD.js +0 -1
  232. package/dist/public/assets/MobileWorkspaceSwitcherHeader-DJPV9ym2.js +0 -1
  233. package/dist/public/assets/RelayConnectEntryPage-dSwU8VzK.js +0 -1
  234. package/dist/public/assets/ServerSettingsModal-B34ms3ze.js +0 -1
  235. package/dist/public/assets/SessionIndexPage-D3tG1gmM.js +0 -1
  236. package/dist/public/assets/SettingsPage-B3-6-5GL.js +0 -1
  237. package/dist/public/assets/TerminalManagerPanel-DhuTEdzV.js +0 -1
  238. package/dist/public/assets/TerminalRuntimeFallbackModal-CNzOt5v5.js +0 -1
  239. package/dist/public/assets/ToolFilesPage-BX9QDi9Y.js +0 -1
  240. package/dist/public/assets/ToolGitPage-4VtFox3p.js +0 -1
  241. package/dist/public/assets/ToolProcessesPage-DZJC6Qnt.js +0 -1
  242. package/dist/public/assets/ToolsHomePage-D7JbrAWv.js +0 -1
  243. package/dist/public/assets/WorkbenchLandingPage-C0yqnzqh.js +0 -1
  244. package/dist/public/assets/WorkbenchLayout-Brlj8K3i.js +0 -3
  245. package/dist/public/assets/WorkbenchShellRoute-BMcnFadA.css +0 -1
  246. package/dist/public/assets/WorkbenchShellRoute-puGpdDFY.js +0 -1
  247. package/dist/public/assets/WorkspaceDebugDetailPage-fTGweC9N.js +0 -1
  248. package/dist/public/assets/WorkspaceDetailPage-BtaIzSDB.js +0 -1
  249. package/dist/public/assets/WorkspaceHomePage-CUmmYDrM.js +0 -1
  250. package/dist/public/assets/client-runtime-manager-RHFa_iWo.js +0 -1
  251. package/dist/public/assets/default-session-permission-mode-Cu5SreTG.js +0 -1
  252. package/dist/public/assets/index-Cq3ue0za.css +0 -1
  253. package/dist/public/assets/index-DEbFT-Aq.js +0 -42
  254. package/dist/public/assets/session-runtime-machine-Bfnxkk9B.js +0 -17
  255. package/dist/public/assets/useRegisteredDebugTemplates-CDfl54Wt.js +0 -1
  256. package/dist/public/assets/window-BWqRixxq.js +0 -1
  257. /package/dist/public/assets/{styles-CSUx5LGe.js → styles-DRVvx_kv.js} +0 -0
@@ -1,17 +0,0 @@
1
- var jr=Object.defineProperty;var wr=(e,t,n)=>t in e?jr(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n;var ne=(e,t,n)=>wr(e,typeof t!="symbol"?t+"":t,n);import{t as i,j as s,b as d,u as Nr,F as Kt,a as In,m as En,G as Sr,H as Tr,D as Rr}from"./index-DEbFT-Aq.js";import{e as vt,f as xt,g as cn}from"./App-BFP7LCSC.js";import{e as Mr,Q as Ar,R as Lr,T as Pr,n as Vt,a as cs,L as Ir,U as Er,V as Br,W as Or,X as _r,o as qr,p as Wr,M as Fr,i as Ur,j as Bn,Y as zr,Z as Dr,_ as $r}from"./MobileSheet-D1lMrcvD.js";import{W as At,D as us}from"./WorkbenchModal-CbDxaCOR.js";import{u as ds,ae as Hr,a1 as Kr,X as st}from"./WorkbenchLayout-Brlj8K3i.js";import{M as Vr,r as Gr}from"./file-tree-icon-BMKuc5pw.js";function Gt(e,t){if(!e)return{allowed:!1,hidden:!1,reason:i("conversation.capabilityDenied")};switch(t){case"send_message":return e.canSendMessage===!1?{allowed:!1,hidden:!1,reason:i("conversation.capabilitySendDisabled")}:{allowed:!0,hidden:!1,reason:null};case"attachments":return e.supportsAttachments?{allowed:!0,hidden:!1,reason:null}:{allowed:!1,hidden:!1,reason:i("conversation.capabilityAttachmentDisabled")};case"interrupt":return e.supportsInterrupt?{allowed:!0,hidden:!1,reason:null}:{allowed:!1,hidden:!1,reason:i("conversation.capabilityInterruptDisabled")};default:return{allowed:!1,hidden:!1,reason:i("conversation.capabilityDenied")}}}const Zr=new Set(["updateplan"]),ms=new Set(["todowrite"]),sn=new Set(["todoread"]),ps=new Set(["taskcreate","taskupdate","taskget","tasklist","taskdelete","taskremove"]);function Qr(e,t){const n=Yr(e,t);return n||Xr(e,t)}function fs(e){return e.reduce((t,n)=>(t[n.status]+=1,t),{pending:0,in_progress:0,completed:0,failed:0,cancelled:0})}function Jr(e,t,n){if(!e)return null;if(rn(e.name)){const l=Ve(e);if(!l||!Wt(l.value))return null;const u=hs(l.value,n);return!u||u.items.length===0?null:{provider:t,source:"plan",explanation:u.explanation,items:u.items,updatedAt:n}}const r=qt(e.name);if(!ms.has(r)&&!sn.has(r)&&!ps.has(r))return null;const a=Ve(e,(sn.has(r),"prefer-output"));if(!a)return null;if(r==="taskdelete"||r==="taskremove"){const l=gs(a.value);return l.length>0?{provider:t,source:"todo",explanation:null,items:l.map((u,p)=>({id:u,title:`Task ${p+1}`,status:"cancelled",detail:u,updatedAt:n})),updatedAt:n}:null}const o=it(a.value,n);return o.length===0?null:{provider:t,source:rn(e.name)?"plan":"todo",explanation:null,items:o,updatedAt:n}}function Yr(e,t){let n=null;for(const r of e){const a=r.toolCall;if(!a||qt(a.name)===""||!rn(a.name))continue;const o=Ve(a);if(!o||typeof o.value!="object"||o.value===null)continue;const l=hs(o.value,r.timestamp);!l||l.items.length===0||(n={provider:t,source:"plan",explanation:l.explanation,items:l.items,updatedAt:r.timestamp})}return n}function Xr(e,t){const n=new Map;let r=null;for(const o of e){const l=o.toolCall;if(!l)continue;const u=qt(l.name);if(ms.has(u)){const m=Ve(l),x=m?it(m.value,o.timestamp):[];x.length>0&&(Zt(n,x),r=o.timestamp);continue}if(sn.has(u)){const m=Ve(l,"prefer-output"),x=m?it(m.value,o.timestamp):[];x.length>0&&(Zt(n,x),r=o.timestamp);continue}if(!ps.has(u))continue;const p=Ve(l,"prefer-output");if(!p)continue;if(u==="tasklist"||u==="taskget"){const m=it(p.value,o.timestamp);m.length>0&&(Zt(n,m),r=o.timestamp);continue}if(u==="taskdelete"||u==="taskremove"){const m=gs(p.value);if(m.length>0){for(const x of m)n.delete(x);r=o.timestamp}continue}const y=it(p.value,o.timestamp);if(y.length!==0){for(const m of y)ti(n,m);r=o.timestamp}}const a=Array.from(n.values()).sort((o,l)=>o.updatedAt.localeCompare(l.updatedAt)).map(o=>({...o}));return a.length===0||!r?null:{provider:t,source:"todo",explanation:null,items:a,updatedAt:r}}function rn(e){return Zr.has(qt(e))}function hs(e,t){const n=Array.isArray(e.plan)?e.plan:null;if(!n||n.length===0)return null;const r=n.map((a,o)=>vs(a,{fallbackIdPrefix:"plan",fallbackTitle:`Step ${o+1}`,fallbackStatus:"pending",updatedAt:t})).filter(a=>a!==null);return r.length===0?null:{items:r,explanation:O(e.explanation)}}function Ve(e,t="prefer-input"){const n=t==="prefer-output"?[{text:e.output,source:"output"},{text:e.input,source:"input"}]:[{text:e.input,source:"input"},{text:e.output,source:"output"}];for(const r of n){const a=ei(r.text);if(a!==null)return{value:a,source:r.source}}return null}function ei(e){const t=(e==null?void 0:e.trim())??"";if(!t)return null;const n=St(t);if(n!==null)return n;const r=t.match(/```(?:json)?\s*([\s\S]+?)```/i);if(r!=null&&r[1]){const p=St(r[1].trim());if(p!==null)return p}const a=t.indexOf("{"),o=t.lastIndexOf("}");if(a>=0&&o>a){const p=St(t.slice(a,o+1));if(p!==null)return p}const l=t.indexOf("["),u=t.lastIndexOf("]");return l>=0&&u>l?St(t.slice(l,u+1)):null}function St(e){try{return JSON.parse(e)}catch{return null}}function it(e,t){return ot(e).map((r,a)=>vs(r,{fallbackIdPrefix:"task",fallbackTitle:`Task ${a+1}`,fallbackStatus:"pending",updatedAt:t})).filter(r=>r!==null)}function ot(e){if(Array.isArray(e))return e.flatMap(n=>ot(n));if(!Wt(e))return[];if(ii(e))return[e];const t=["tasks","todos","items","entries","results","data"];for(const n of t){if(!(n in e))continue;const r=ot(e[n]);if(r.length>0)return r}return Object.values(e).flatMap(n=>ot(n))}function gs(e){const n=ot(e).map(a=>an(a)).filter(a=>a!==null);if(n.length>0)return n;if(!Wt(e))return[];const r=an(e);return r?[r]:[]}function vs(e,t){if(!Wt(e))return null;const n=O(e.step)??O(e.title)??O(e.content)??O(e.task)??O(e.text)??O(e.name)??O(e.subject)??O(e.description)??t.fallbackTitle,r=an(e)??ri(t.fallbackIdPrefix,n),a=si(e,n);return{id:r,title:n,status:ni(e.status,t.fallbackStatus),detail:a,updatedAt:t.updatedAt}}function ti(e,t){const n=e.get(t.id);if(!n){e.set(t.id,{...t});return}e.set(t.id,{id:n.id,title:t.title||n.title,status:t.status,detail:t.detail??n.detail,updatedAt:t.updatedAt})}function Zt(e,t){e.clear();for(const n of t)e.set(n.id,{...n})}function ni(e,t){var r;const n=(r=O(e))==null?void 0:r.toLowerCase().replace(/[\s-]+/g,"_");return n?["pending","todo","open","queued","not_started","created"].includes(n)?"pending":["in_progress","progress","active","doing","running","started"].includes(n)?"in_progress":["completed","complete","done","success","succeeded","finished","closed"].includes(n)?"completed":["failed","error","errored"].includes(n)?"failed":["cancelled","canceled","aborted","skipped"].includes(n)?"cancelled":t:t}function si(e,t){const n=[O(e.detail),O(e.details),O(e.description),O(e.reason),O(e.summary),O(e.note),O(e.priority)].filter(r=>r!==null);for(const r of n)if(r!==t)return r;return null}function an(e){return O(e.id)??O(e.taskId)??O(e.task_id)??O(e.uuid)??O(e.key)}function ri(e,t){return`${e}:${t.trim().toLowerCase()}`}function ii(e){return[e.step,e.title,e.content,e.task,e.text,e.subject,e.name,e.description].some(t=>O(t)!==null)}function qt(e){return e.trim().toLowerCase().replace(/[\s_.-]+/g,"")}function Wt(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}function O(e){if(typeof e!="string")return null;const t=e.trim();return t||null}function ai(){return s.jsxs("svg",{"aria-hidden":"true",viewBox:"0 0 20 20",fill:"none",stroke:"currentColor",strokeWidth:"1.6",strokeLinecap:"round",strokeLinejoin:"round",className:"conversation-action-icon",children:[s.jsx("rect",{x:"7",y:"5",width:"9",height:"11",rx:"2.5"}),s.jsx("path",{d:"M5.5 12.5H5A2 2 0 0 1 3 10.5V5a2 2 0 0 1 2-2h5.5"})]})}function oi(){return s.jsxs("svg",{"aria-hidden":"true",viewBox:"0 0 20 20",fill:"none",stroke:"currentColor",strokeWidth:"1.6",strokeLinecap:"round",strokeLinejoin:"round",className:"conversation-action-icon",children:[s.jsx("circle",{cx:"6",cy:"5",r:"2.25"}),s.jsx("circle",{cx:"14",cy:"6",r:"2.25"}),s.jsx("circle",{cx:"14",cy:"14",r:"2.25"}),s.jsx("path",{d:"M8.4 5.7h2.2a2.7 2.7 0 0 1 2.7 2.7v1.2"}),s.jsx("path",{d:"M8.1 5.9l4.1 6.2"})]})}function sl(){return s.jsxs("svg",{"aria-hidden":"true",viewBox:"0 0 20 20",fill:"none",stroke:"currentColor",strokeWidth:"1.6",strokeLinecap:"round",strokeLinejoin:"round",className:"conversation-action-icon",children:[s.jsx("path",{d:"M10 2.8l1.6 3.4 3.8.5-2.8 2.6.7 3.9-3.3-1.8-3.3 1.8.7-3.9-2.8-2.6 3.8-.5L10 2.8z"}),s.jsx("path",{d:"M15.8 13.3l.7 1.5 1.7.2-1.2 1.1.3 1.8-1.5-.8-1.5.8.3-1.8-1.2-1.1 1.7-.2.7-1.5z"})]})}function rl(){return s.jsxs("svg",{"aria-hidden":"true",viewBox:"0 0 20 20",fill:"none",stroke:"currentColor",strokeWidth:"1.6",strokeLinecap:"round",strokeLinejoin:"round",className:"conversation-action-icon",children:[s.jsx("circle",{cx:"6",cy:"5",r:"2.2"}),s.jsx("circle",{cx:"14",cy:"5",r:"2.2"}),s.jsx("circle",{cx:"10",cy:"14",r:"2.2"}),s.jsx("path",{d:"M8.2 5h3.6"}),s.jsx("path",{d:"M10 7.2v4.6"}),s.jsx("path",{d:"M7.3 6.8l1.7 4"}),s.jsx("path",{d:"M12.7 6.8l-1.7 4"})]})}function il(){return s.jsxs("svg",{"aria-hidden":"true",viewBox:"0 0 20 20",fill:"currentColor",className:"conversation-action-icon",children:[s.jsx("circle",{cx:"4.5",cy:"10",r:"1.5"}),s.jsx("circle",{cx:"10",cy:"10",r:"1.5"}),s.jsx("circle",{cx:"15.5",cy:"10",r:"1.5"})]})}function li(){return s.jsxs("svg",{"aria-hidden":"true",viewBox:"0 0 20 20",fill:"none",stroke:"currentColor",strokeWidth:"1.6",strokeLinecap:"round",strokeLinejoin:"round",className:"conversation-action-icon",children:[s.jsx("path",{d:"M4.5 5.5h1.2"}),s.jsx("path",{d:"M8 5.5h7.5"}),s.jsx("path",{d:"M4.5 10h1.2"}),s.jsx("path",{d:"M8 10h7.5"}),s.jsx("path",{d:"M4.5 14.5h1.2"}),s.jsx("path",{d:"M8 14.5h7.5"}),s.jsx("path",{d:"M5.1 5.5l.5.5 1-1"}),s.jsx("circle",{cx:"5.1",cy:"10",r:".8",fill:"currentColor",stroke:"none"}),s.jsx("path",{d:"M5.1 14.5l.5.5 1-1"})]})}const On={in_progress:0,failed:1,pending:2,completed:3,cancelled:4};function ci({provider:e,messages:t,variant:n="header"}){const[r,a]=d.useState(!1),o=d.useMemo(()=>Qr(t,e),[t,e]);if(!o||o.items.length===0)return null;const l=fs(o.items),u=l.in_progress||l.pending,p=u>0?u:o.items.length,y=[...o.items].sort((x,v)=>{const j=On[x.status]-On[v.status];return j!==0?j:x.updatedAt.localeCompare(v.updatedAt)}),m=n==="composer"?"conversation-task-progress-button composer-task-progress-button":"conversation-header-ai-button conversation-task-progress-button";return s.jsxs(s.Fragment,{children:[s.jsxs("button",{type:"button",className:m,"data-variant":n,"aria-label":i("conversation.taskProgressButton",{count:o.items.length}),title:i("conversation.taskProgressButton",{count:o.items.length}),onClick:()=>{a(!0)},children:[s.jsx("span",{className:"conversation-header-ai-button-label","aria-hidden":"true",children:s.jsx(li,{})}),s.jsx("span",{className:"conversation-task-progress-badge",children:p})]}),s.jsx(At,{open:r,title:i("conversation.taskProgressModalTitle"),description:i("conversation.taskProgressModalDescription",{count:o.items.length}),className:"conversation-task-progress-modal",onClose:()=>{a(!1)},children:s.jsxs("div",{className:"conversation-task-progress-modal-body",children:[s.jsxs("div",{className:"conversation-task-progress-summary",children:[s.jsx(rt,{label:i("conversation.taskProgressSummaryTotal"),value:o.items.length}),s.jsx(rt,{label:i("conversation.taskProgressStatusInProgress"),value:l.in_progress}),s.jsx(rt,{label:i("conversation.taskProgressStatusPending"),value:l.pending}),s.jsx(rt,{label:i("conversation.taskProgressStatusCompleted"),value:l.completed}),l.failed>0?s.jsx(rt,{label:i("conversation.taskProgressStatusFailed"),value:l.failed}):null]}),o.explanation?s.jsxs("div",{className:"conversation-task-progress-explanation",children:[s.jsx("strong",{children:i("conversation.taskProgressExplanationTitle")}),s.jsx("p",{children:o.explanation})]}):null,s.jsx("ol",{className:"conversation-task-progress-list",children:y.map(x=>s.jsxs("li",{className:"conversation-task-progress-item","data-status":x.status,children:[s.jsx("span",{className:"conversation-task-progress-item-indicator","data-status":x.status,"aria-hidden":"true"}),s.jsxs("div",{className:"conversation-task-progress-item-body",children:[s.jsxs("div",{className:"conversation-task-progress-item-header",children:[s.jsx("strong",{children:x.title}),s.jsx("span",{className:"conversation-task-progress-item-status",children:ui(x.status)})]}),x.detail?s.jsx("p",{className:"conversation-task-progress-item-detail",children:x.detail}):null]})]},x.id))})]})})]})}function rt({label:e,value:t}){return s.jsxs("div",{className:"conversation-task-progress-summary-card",children:[s.jsx("span",{children:e}),s.jsx("strong",{children:t})]})}function ui(e){switch(e){case"in_progress":return i("conversation.taskProgressStatusInProgress");case"completed":return i("conversation.taskProgressStatusCompleted");case"failed":return i("conversation.taskProgressStatusFailed");case"cancelled":return i("conversation.taskProgressStatusCancelled");case"pending":default:return i("conversation.taskProgressStatusPending")}}const di="codingns.conversation.composer-draft:",mi=1,pi=[{id:"builtin-stage-and-summarize",text:"请将本次会话变更的所有代码提交到git暂存区,然后总结一条中文的提交信息"},{id:"builtin-review-module",text:"分析本项目 模块的代码实现,并分析存在的问题"},{id:"builtin-group-commits",text:"分析当前项目中的未提交文件,按照功能模块进行分类提交,提交信息格式请参考我最近的提交记录"}];function un(){return typeof window<"u"&&typeof window.localStorage<"u"}function fi(e){if(!e||typeof e!="object")return null;const t="id"in e?e.id:null,n="fileName"in e?e.fileName:null,r="mimeType"in e?e.mimeType:null,a="fileSize"in e?e.fileSize:null,o="lastModified"in e?e.lastModified:null,l="contentBase64"in e?e.contentBase64:null;if(typeof t!="string"||typeof n!="string"||typeof r!="string"||typeof a!="number"||typeof o!="number"||typeof l!="string")return null;const u=t.trim(),p=n.trim(),y=r.trim(),m=l.trim();return!u||!p||!y||a<0||o<0||!m?null:{id:u,fileName:p,mimeType:y,fileSize:a,lastModified:o,contentBase64:m}}function hi(e){if(!e||typeof e!="object")return null;const t="content"in e?e.content:null,n="attachments"in e?e.attachments:null;if(typeof t!="string"||!Array.isArray(n))return null;const r=n.map(a=>fi(a)).filter(a=>a!==null);return r.length!==n.length||t.length===0&&r.length===0?null:{content:t,attachments:r}}function lt(e){return`${di}${e}`}function gi(e){var t,n;return{id:((n=(t=globalThis.crypto)==null?void 0:t.randomUUID)==null?void 0:n.call(t))??`phrase-${Date.now()}-${Math.random().toString(16).slice(2)}`,text:e.trim()}}function vi(e){if(!un())return null;const t=e.trim();if(!t)return null;const n=window.localStorage.getItem(lt(t));if(!n)return null;try{const r=JSON.parse(n),a=r&&typeof r=="object"&&"draft"in r&&r.draft&&typeof r.draft=="object"?r.draft:r,o=hi(a);return o||(window.localStorage.removeItem(lt(t)),null)}catch{return window.localStorage.removeItem(lt(t)),null}}function xi(e,t){if(!un())return!1;const n=e.trim();if(!n)return!1;if(t.content.length===0&&t.attachments.length===0)return xs(n),!0;try{return window.localStorage.setItem(lt(n),JSON.stringify({schemaVersion:mi,draft:t})),!0}catch{return!1}}function xs(e){if(!un())return;const t=e.trim();t&&window.localStorage.removeItem(lt(t))}const _n="workbench:focus-composer",ct="provider-default",qn=["codex","claude-code","opencode","gemini","kimi"],bi=new Set(["codex","claude-code","opencode"]),yi=new Set(["codex","claude-code","opencode"]),Wn={position:"absolute",width:"1px",height:"1px",padding:0,margin:"-1px",overflow:"hidden",clip:"rect(0, 0, 0, 0)",whiteSpace:"nowrap",border:0};function ki(e){return[{id:ct,name:i("conversation.modelUseCliDefault"),provider:e,usesProviderDefault:!0}]}function Fn(e){return ki(e)}function Un(e){return e.usesProviderDefault===!0||e.id===ct}function Ci(){var e,t;return((t=(e=globalThis.crypto)==null?void 0:e.randomUUID)==null?void 0:t.call(e))??`${Date.now()}-${Math.random().toString(16).slice(2)}`}function zn(e){if(e){e.value="";try{const t=e.showPicker;if(typeof t=="function"){t.call(e);return}}catch{}e.click()}}function ji(e,t,n,r){const a=globalThis.atob(n),o=Uint8Array.from(a,l=>l.charCodeAt(0));return new File([o],e,{type:t,lastModified:r})}function wi(e){return e.trim().toLowerCase().startsWith("image/")}function ut(e){const t=e.type.trim().toLowerCase();return t.length>0?t:"application/octet-stream"}function bs(e){return wi(ut(e))?"image":"file"}function ys(e,t=Ci()){const n=bs(e);return{id:t,file:e,kind:n,previewUrl:n==="image"?URL.createObjectURL(e):null}}function Ni(e){const t=ji(e.fileName,e.mimeType,e.contentBase64,e.lastModified);return ys(t,e.id)}function Si(e){return e<1024?`${e} B`:e<1024*1024?`${(e/1024).toFixed(1)} KB`:`${(e/(1024*1024)).toFixed(1)} MB`}function Ti(e){const t=e.trim().replace(/\s+/g," ");return t.length===0?i("conversation.forkDraftEmpty"):t.length>140?`${t.slice(0,140)}…`:t}function Ri(e,t){return t===e?yi.has(t)?null:i("conversation.forkProviderNativeUnsupported"):bi.has(t)?null:i("conversation.forkProviderReconstructedUnsupported")}function ks(e){return(e==null?void 0:e.canStartSession)===!1}function Mi(e){return ks(e)?(e==null?void 0:e.limitations[0])??i("conversation.capabilityDenied"):null}function Ai(e,t){return{id:t,kind:bs(e),fileName:e.name,mimeType:ut(e),fileSize:e.size}}function Dn(e){return new Promise((t,n)=>{const r=new FileReader;r.onerror=()=>{n(r.error??new Error("FILE_READ_FAILED"))},r.onload=()=>{const a=typeof r.result=="string"?r.result:"",o=a.includes(",")?a.split(",").at(-1)??"":a;t(o)},r.readAsDataURL(e)})}function Li(e){e.forEach(t=>{t.previewUrl&&URL.revokeObjectURL(t.previewUrl)})}function Pi(e,t){const n=new Set(e.map(a=>`${a.file.name}:${a.file.size}:${a.file.lastModified}`)),r=[...e];return t.forEach(a=>{const o=`${a.name}:${a.size}:${a.lastModified}`;n.has(o)||(n.add(o),r.push(ys(a)))}),r}function Ii(e,t,n){const r=e.nativeEvent;return r.isComposing||r.keyCode===229||t||n}function al({capabilities:e,placeholder:t,draftStorageId:n,forkDraft:r=null,onClearForkDraft:a,onForkDraftChange:o,panelRef:l,portalContainer:u=null,hasActiveRun:p=null,canInterrupt:y=null,contextUsage:m=null,taskProvider:x=null,taskMessages:v=[],hasPendingQueuedMessages:j=!1,isSubmitting:b,isRunning:h=!1,onInterrupt:C,onQueueSend:T,onSend:M}){const R=vt(),I=d.useId(),D=d.useId(),[A,F]=d.useState(""),[L,$]=d.useState(""),[H,X]=d.useState("medium"),[U,K]=d.useState([]),[Ee,re]=d.useState(!1),[Be,me]=d.useState(!1),[G,oe]=d.useState(pi),[ie,ke]=d.useState(!1),[bt,pe]=d.useState(!1),[Oe,yt]=d.useState(""),[Ce,fe]=d.useState(!1),[he,ee]=d.useState(!1),[Ze,Qe]=d.useState(!1),[Je,je]=d.useState(!1),[Ye,Z]=d.useState(null),[_e,we]=d.useState(!1),[Ne,le]=d.useState({}),[ge,qe]=d.useState(null),Se=d.useRef(null),Xe=d.useRef(null),kt=d.useRef(null),We=d.useRef(!1),Fe=d.useRef(!1),f=d.useRef(!1),N=d.useRef(null),E=d.useRef(new Set),Q=d.useRef(new Map),V=d.useRef(0),{showToast:Te}=xt(),Re=Mr(),Ue=d.useCallback(()=>{N.current!==null&&(globalThis.clearTimeout(N.current),N.current=null),f.current=!1},[]);d.useEffect(()=>Ue,[Ue]);const Y=Ar(e),ce=Nr(c=>Kt(Y)?c.profile.providers[Y]:null),et=(ce==null?void 0:ce.defaultModel)??null,tt=(ce==null?void 0:ce.defaultReasoningLevel)??null,Ft=d.useMemo(()=>Gt(e,"send_message"),[e]),gn=d.useMemo(()=>Gt(e,"interrupt"),[e]),te=d.useMemo(()=>Gt(e,"attachments"),[e]),ue=d.useMemo(()=>{var g;const c=(g=e==null?void 0:e.modelOptions)==null?void 0:g.map(k=>{var w;return{...k,provider:Y,supportedReasoningEfforts:(w=k.supportedReasoningEfforts)==null?void 0:w.filter(_=>_==="low"||_==="medium"||_==="high"||_==="xhigh")}});return c!=null&&c.length?c:Fn(Y)},[e==null?void 0:e.modelOptions,Y]),de=d.useMemo(()=>ue.find(c=>c.id===L)??null,[ue,L]),Ct=Lr(e),Zs=Pr(e),Ut=d.useMemo(()=>[{value:"low",label:i("conversation.reasoningLow")},{value:"medium",label:i("conversation.reasoningMedium")},{value:"high",label:i("conversation.reasoningHigh")},{value:"xhigh",label:i("conversation.reasoningMaximum")}],[]),ae=d.useMemo(()=>{if(!Ct)return[];const c=de==null?void 0:de.supportedReasoningEfforts;return!c||c.length===0?Ut:Ut.filter(g=>c.includes(g.value))},[Ct,Ut,de==null?void 0:de.supportedReasoningEfforts]),Qs=d.useMemo(()=>ue.map(c=>({value:c.id,label:Un(c)?i("conversation.modelUseCliDefault"):c.name})),[ue]),Js=d.useMemo(()=>ae.map(c=>({value:c.value,label:c.label})),[ae]),Ys=d.useMemo(()=>[{command:"/plan",label:i("conversation.slashCommandPlan")},{command:"/review",label:i("conversation.slashCommandReview")},{command:"/explain",label:i("conversation.slashCommandExplain")}],[]),vn=(e==null?void 0:e.inRunInputMode)??"none",ve=!!r,Xs=(r==null?void 0:r.targetProvider)??null,jt=!!r&&(e==null?void 0:e.provider)===Xs,xe=d.useMemo(()=>r?jt?e:Ye??Vt(r.targetProvider):null,[e,Ye,r,jt]),ze=d.useMemo(()=>{var g;if(!r)return[];const c=(g=xe==null?void 0:xe.modelOptions)==null?void 0:g.map(k=>{var w;return{...k,provider:r.targetProvider,supportedReasoningEfforts:(w=k.supportedReasoningEfforts)==null?void 0:w.filter(_=>_==="low"||_==="medium"||_==="high"||_==="xhigh")}});return c!=null&&c.length?c:Fn(r.targetProvider)},[xe==null?void 0:xe.modelOptions,r]),er=d.useMemo(()=>ze.map(c=>({value:c.id,label:Un(c)?i("conversation.modelUseCliDefault"):c.name})),[ze]),tr=d.useMemo(()=>!r||!r.targetModel?ct:ze.some(c=>c.id===r.targetModel)?r.targetModel:ct,[ze,r]),Me=d.useMemo(()=>r?qn.filter(c=>Ri(r.sourceProvider,c)!==null?!1:!ks(Ne[c]??null)):[],[r,Ne]),xn=d.useMemo(()=>r?Me.length>0?Me:[r.targetProvider]:[],[r,Me]),nr=d.useMemo(()=>xn.map(c=>({value:c,label:cs(c,"full")})),[xn]),wt=d.useMemo(()=>r?Mi(Ne[r.targetProvider]??xe??null):null,[xe,r,Ne]),zt=p??null,be=h||zt===!0,sr=be&&vn==="streaming_guidance"&&zt===!1&&!Ir(e),bn=!ve&&be&&vn==="streaming_guidance"&&!sr,Dt=!ve&&be&&typeof T=="function"&&Er(e,zt),J=!ve&&be&&!bn&&!Dt,$t=ve&&!!wt,yn=A.trim().length>0||U.length>0,kn=y===!1&&be?gn.allowed:y??gn.allowed,Ht=be&&kn&&!!C&&!Ze,rr=!yn&&(Je||b||be||j),Cn=Ht?i("conversation.capabilityInterrupt"):i("conversation.runtimeRunning"),jn=be?Dt?i("conversation.queueGuidanceButton"):bn?i("conversation.sendGuidanceButton"):i("conversation.sendButton"):i("conversation.sendButton"),ir=d.useCallback(c=>{$(c),Kt(Y)&&In({providers:{[Y]:{defaultModel:c}}}).catch(()=>{})},[Y]),ar=d.useCallback(c=>{X(c),Kt(Y)&&In({providers:{[Y]:{defaultReasoningLevel:c}}}).catch(()=>{})},[Y]),Nt=d.useCallback(c=>{E.current.forEach(g=>{URL.revokeObjectURL(g)}),E.current.clear(),c.forEach(g=>{g.previewUrl&&E.current.add(g.previewUrl)}),K(c)},[]),nt=d.useCallback(c=>{c.length!==0&&K(g=>{const k=Pi(g,c);return k.forEach(w=>{w.previewUrl&&E.current.add(w.previewUrl)}),k})},[]),or=d.useCallback(c=>{Q.current.delete(c),K(g=>{const k=g.find(w=>w.id===c);return k!=null&&k.previewUrl&&(E.current.delete(k.previewUrl),URL.revokeObjectURL(k.previewUrl)),g.filter(w=>w.id!==c)})},[]),wn=d.useCallback(c=>{const g=Array.from(c.target.files??[]);g.length>0&&nt(g),c.target.value=""},[nt]),lr=d.useCallback(c=>{var k;R.isMobile||!te.allowed||J||!((((k=c.dataTransfer.files)==null?void 0:k.length)??0)>0||Array.from(c.dataTransfer.items??[]).some(w=>w.kind==="file"))||(c.preventDefault(),c.dataTransfer.dropEffect="copy",Be||me(!0),ee(!1))},[te.allowed,Be,J,R.isMobile]),cr=d.useCallback(c=>{const g=c.relatedTarget;g instanceof Node&&c.currentTarget.contains(g)||me(!1)},[]),ur=d.useCallback(c=>{if(R.isMobile||!te.allowed||J)return;const g=Array.from(c.dataTransfer.files??[]);g.length!==0&&(c.preventDefault(),me(!1),nt(g))},[te.allowed,J,nt,R.isMobile]),Nn=d.useCallback(c=>{if(!te.allowed||J)return;const g=c==="camera"?kt.current:Xe.current;zn(g),re(!1)},[te.allowed,J]),dr=d.useCallback(()=>{if(!(!te.allowed||J)){if(ee(!1),R.isNativeMobile){Re.trigger("selection"),re(!0);return}zn(Xe.current)}},[te.allowed,Re,J,R.isNativeMobile]),mr=d.useCallback(()=>{ee(c=>!c)},[]),pr=d.useCallback(c=>{var g;F(k=>k.trimStart().startsWith(c)?k:k.trim()?`${c} ${k.trim()}`:`${c} `),ee(!1),(g=Se.current)==null||g.focus()},[]),De=d.useCallback(async c=>{const g=G;V.current+=1,oe(c),fe(!0);try{const k=await Br(c.map(w=>({id:w.id,text:w.text})));return oe(k.items.map(w=>({id:w.id,text:w.text}))),!0}catch(k){return oe(g),Te({title:k instanceof Error?k.message:i("conversation.quickPhraseSaveFailed"),tone:"error"}),!1}finally{fe(!1)}},[G,Te]),fr=d.useCallback(async()=>{const c=Oe.trim();!c||!await De([...G,gi(c)])||(yt(""),pe(!1))},[De,Oe,G]),hr=d.useCallback(c=>{De(G.filter(g=>g.id!==c))},[De,G]),Sn=d.useCallback((c,g)=>{const k=G.findIndex(W=>W.id===c);if(k<0)return;const w=k+g;if(w<0||w>=G.length)return;const _=[...G],[q]=_.splice(k,1);_.splice(w,0,q),De(_)},[De,G]),gr=d.useCallback(c=>{var g;F(c),ke(!1),(g=Se.current)==null||g.focus()},[]),Tn=d.useCallback(c=>{const g=c?vi(c):null,k=(g==null?void 0:g.attachments.map(w=>Ni(w)))??[];Q.current=new Map(((g==null?void 0:g.attachments)??[]).map(w=>[w.id,w])),Nt(k),F((g==null?void 0:g.content)??""),ee(!1)},[Nt]);d.useEffect(()=>{if(!ue.length)return;if(et&&ue.some(g=>g.id===et)){L!==et&&$(et);return}if(ue.some(g=>g.id===L))return;const c=ue[0].id;$(c)},[ue,Y,L,et]),d.useEffect(()=>{if(!Or(Y)||ae.length===0)return;if(tt&&ae.some(k=>k.value===tt)){H!==tt&&X(tt);return}const c=e==null?void 0:e.defaultReasoningLevel;if(c&&ae.some(k=>k.value===c)){H!==c&&X(c);return}if(ae.some(k=>k.value===H))return;const g=ae[0].value;X(g)},[ae,e==null?void 0:e.defaultReasoningLevel,Y,H,tt]),d.useEffect(()=>{let c=!1;const g=V.current;return _r().then(k=>{c||V.current!==g||oe(k.items.map(w=>({id:w.id,text:w.text})))}).catch(()=>{}),()=>{c=!0}},[]),d.useEffect(()=>{Tn(n)},[n,Tn]),d.useEffect(()=>{if(!n)return;const c=n,g=new Set(U.map(_=>_.id));Q.current.forEach((_,q)=>{g.has(q)||Q.current.delete(q)});let k=!1;async function w(){if(A.length===0&&U.length===0){xs(c);return}const _=await Promise.all(U.map(async q=>{const W=Q.current.get(q.id);return W&&W.fileName===q.file.name&&W.fileSize===q.file.size&&W.lastModified===q.file.lastModified&&W.mimeType===ut(q.file)?W:{id:q.id,fileName:q.file.name,mimeType:ut(q.file),fileSize:q.file.size,lastModified:q.file.lastModified,contentBase64:await Dn(q.file)}}));k||(Q.current=new Map(_.map(q=>[q.id,q])),xi(c,{content:A,attachments:_}))}return w(),()=>{k=!0}},[U,A,n]),d.useEffect(()=>{const c=Se.current;c&&(c.style.height="0px",c.style.height=`${Math.min(c.scrollHeight,120)}px`)},[A]),d.useEffect(()=>{te.allowed||(Q.current.clear(),re(!1),Nt([]))},[te.allowed,Nt]),d.useEffect(()=>{R.isMobile||re(!1)},[R.isMobile]),d.useEffect(()=>()=>{E.current.forEach(c=>{URL.revokeObjectURL(c)}),E.current.clear()},[]),d.useEffect(()=>{function c(){var g;(g=Se.current)==null||g.focus()}return window.addEventListener(_n,c),()=>{window.removeEventListener(_n,c)}},[]),d.useEffect(()=>{if(!r){Z(null),we(!1),le({}),qe(null);return}if(jt){Z(null),we(!1);return}let c=!1;return Z(Vt(r.targetProvider)),we(!0),qr(r.targetProvider,r.workspaceId).then(g=>{c||Z(g)}).catch(()=>{c||Z(Vt(r.targetProvider))}).finally(()=>{c||we(!1)}),()=>{c=!0}},[r==null?void 0:r.targetProvider,r==null?void 0:r.workspaceId,jt]),d.useEffect(()=>{if(!r){le({});return}let c=!1;return Wr(qn,r.workspaceId).then(g=>{c||le(g)}),()=>{c=!0}},[r==null?void 0:r.workspaceId]),d.useEffect(()=>{!r||!o||Me.length!==0&&(Me.includes(r.targetProvider)||o({...r,targetProvider:Me[0]??r.targetProvider,targetModel:null}))},[r,o,Me]),d.useEffect(()=>{!r||!r.targetModel||!o||ze.some(c=>c.id===r.targetModel)||o({...r,targetModel:null})},[ze,r,o]);const vr=d.useCallback(c=>{if(!(!r||!o||c===r.targetProvider)){if(c!==r.sourceProvider&&r.targetProvider===r.sourceProvider){qe(c);return}o({...r,targetProvider:c,targetModel:null})}},[r,o]),xr=d.useCallback(c=>{!r||!o||o({...r,targetModel:c===ct?null:c})},[r,o]),br=d.useCallback(()=>{!r||!ge||!o||(o({...r,targetProvider:ge,targetModel:null}),qe(null))},[r,o,ge]),Rn=d.useCallback(()=>{qe(null)},[]);async function yr(c){if(We.current)return;const g=A.trim(),k=U;if(g.length===0&&k.length===0||!Ft.allowed||J||$t){Te({title:J?i("conversation.runtimeRunning"):wt??Ft.reason??i("conversation.capabilityDenied"),tone:"error"});return}We.current=!0,Re.trigger(c==="queue"?"selection":"action"),je(!0),F(""),K([]),re(!1),me(!1),ke(!1),pe(!1),ee(!1);try{const w=await Promise.all(k.map(async W=>({kind:W.kind,fileName:W.file.name,mimeType:ut(W.file),fileSize:W.file.size,contentBase64:await Dn(W.file)}))),_=k.map(W=>Ai(W.file,W.id));await(c==="queue"&&T?T:M)(g,{model:ve||de!=null&&de.usesProviderDefault?void 0:L||void 0,reasoningLevel:ve?void 0:Ct&&ae.length>0?H:void 0,attachments:w,attachmentMeta:_}),Li(k),k.forEach(W=>{W.previewUrl&&E.current.delete(W.previewUrl)})}catch(w){F(g),K(k),Te({title:w instanceof Error&&w.message==="FILE_READ_FAILED"?i("conversation.attachmentReadFailed"):w instanceof Error?w.message:i("conversation.capabilityDenied"),tone:"error"})}finally{je(!1),We.current=!1}}async function Mn(c){c.preventDefault(),await yr(Dt?"queue":"send")}async function kr(){if(!(!kn||!C||Ze))try{Qe(!0),Re.trigger("action"),await C()}catch(c){Te({title:c instanceof Error?c.message:i("conversation.capabilityInterruptDisabled"),tone:"error"})}finally{Qe(!1)}}const An=Je||b||J||$t||!Ft.allowed||!yn,Ln=Je||b||J||!te.allowed,Cr=A.length===0&&!J,Pn=s.jsxs("section",{ref:l,className:"composer-panel",children:[s.jsxs("form",{className:"composer-form",onSubmit:Mn,children:[s.jsx("input",{id:I,ref:Xe,type:"file",multiple:!0,tabIndex:-1,"aria-hidden":"true",style:Wn,onChange:wn}),s.jsx("input",{id:D,ref:kt,type:"file",accept:"image/*",capture:"environment",tabIndex:-1,"aria-hidden":"true",style:Wn,onChange:wn}),s.jsxs("div",{className:"composer-input-container","data-drag-active":Be?"true":void 0,onDragOver:lr,onDragLeave:cr,onDrop:ur,children:[r?s.jsxs("div",{className:"composer-fork-draft",children:[s.jsxs("div",{className:"composer-fork-draft-main",children:[s.jsxs("div",{className:"composer-fork-draft-copy",children:[s.jsx("span",{className:"composer-fork-draft-label",children:i("conversation.forkDraftLabel")}),s.jsx("span",{className:"composer-fork-draft-text",children:Ti(r.content)})]}),s.jsxs("div",{className:"composer-fork-config",children:[s.jsxs("div",{className:"composer-fork-config-grid",children:[s.jsxs("div",{className:"composer-fork-field",children:[s.jsx("span",{className:"composer-fork-model-label",children:i("conversation.forkTargetProviderLabel")}),s.jsx(Tt,{ariaLabel:i("conversation.forkTargetProviderLabel"),value:r.targetProvider,options:nr,onChange:c=>vr(c),compact:!0})]}),s.jsxs("div",{className:"composer-fork-field",children:[s.jsx("span",{className:"composer-fork-model-label",children:i("conversation.forkTargetModelLabel")}),s.jsx(Tt,{ariaLabel:i("conversation.forkTargetModelLabel"),value:tr,options:er,onChange:xr,disabled:_e||$t,compact:!0})]})]}),wt?s.jsx("p",{className:"composer-capability-hint",children:wt}):null]})]}),a?s.jsx("button",{type:"button",className:"composer-fork-draft-clear","aria-label":i("conversation.forkDraftClear"),title:i("conversation.forkDraftClear"),onClick:a,children:s.jsxs("svg",{width:"12",height:"12",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",children:[s.jsx("line",{x1:"18",y1:"6",x2:"6",y2:"18"}),s.jsx("line",{x1:"6",y1:"6",x2:"18",y2:"18"})]})}):null]}):null,U.length>0?s.jsx("div",{className:"composer-attachments",children:U.map(c=>s.jsxs("div",{className:"composer-attachment-card",children:[c.previewUrl?s.jsx("img",{src:c.previewUrl,alt:i("conversation.attachmentPreviewAlt"),className:"composer-attachment-preview"}):s.jsx("div",{className:"composer-attachment-file","aria-hidden":"true",children:s.jsxs("svg",{width:"22",height:"22",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"1.8",children:[s.jsx("path",{d:"M14 2H7a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h10a2 2 0 0 0 2-2V7z"}),s.jsx("path",{d:"M14 2v5h5"}),s.jsx("path",{d:"M9 13h6"}),s.jsx("path",{d:"M9 17h6"})]})}),s.jsxs("div",{className:"composer-attachment-meta",children:[s.jsx("span",{className:"attachment-name",title:c.file.name,children:c.file.name}),s.jsx("span",{className:"attachment-size",children:Si(c.file.size)})]}),s.jsx("button",{type:"button",className:"attachment-remove",onClick:()=>or(c.id),"aria-label":i("conversation.removeAttachment"),children:s.jsxs("svg",{width:"12",height:"12",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",children:[s.jsx("line",{x1:"18",y1:"6",x2:"6",y2:"18"}),s.jsx("line",{x1:"6",y1:"6",x2:"18",y2:"18"})]})})]},c.id))}):null,Be?s.jsx("div",{className:"composer-drop-hint",children:i("conversation.attachmentDropHint")}):null,s.jsxs("div",{className:"composer-input-wrapper",children:[s.jsx("textarea",{ref:Se,className:"composer-input",value:A,placeholder:t??i("conversation.composerPlaceholder"),readOnly:J,"aria-readonly":J,onChange:c=>F(c.target.value),rows:1,onFocus:()=>ee(!1),onCompositionStart:()=>{Ue(),Fe.current=!0},onCompositionEnd:()=>{Fe.current=!1,f.current=!0,N.current=globalThis.setTimeout(()=>{f.current=!1,N.current=null},0)},onPaste:c=>{if(J||!te.allowed)return;const g=Array.from(c.clipboardData.items).filter(k=>k.kind==="file").map(k=>k.getAsFile()).filter(k=>!!k);g.length!==0&&(c.preventDefault(),nt(g))},onKeyDown:c=>{if(c.key==="Escape"&&ee(!1),c.key==="Enter"&&!c.shiftKey){if(Ii(c,Fe.current,f.current))return;c.preventDefault(),An||Mn(c)}}}),s.jsx("div",{className:"composer-input-actions",children:rr?s.jsx("button",{className:"composer-send composer-send-busy",type:"button",disabled:!Ht,onClick:()=>{Ht&&kr()},"aria-label":Cn,title:Cn,children:s.jsx("svg",{width:"18",height:"18",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2.5",children:s.jsx("rect",{x:"6",y:"6",width:"12",height:"12"})})}):s.jsx("button",{className:"composer-send",type:"submit",disabled:An,"aria-label":jn,title:jn,children:s.jsxs("svg",{width:"18",height:"18",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2.5",children:[s.jsx("line",{x1:"22",y1:"2",x2:"11",y2:"13"}),s.jsx("polygon",{points:"22 2 15 22 11 13 2 9 22 2"})]})})})]}),he?s.jsx("div",{className:"composer-slash-menu",role:"menu","aria-label":i("conversation.slashMenuTitle"),children:Ys.map(c=>s.jsxs("button",{type:"button",className:"composer-slash-item",onClick:()=>pr(c.command),children:[s.jsx("span",{className:"composer-slash-command",children:c.command}),s.jsx("span",{className:"composer-slash-label",children:c.label})]},c.command))}):null,s.jsxs("div",{className:"composer-controls",children:[s.jsxs("div",{className:"composer-controls-left",children:[te.allowed?R.isNativeMobile?s.jsx("button",{type:"button",className:"composer-attach-btn","aria-label":i("conversation.attachFiles"),title:i("conversation.attachFiles"),disabled:Ln,onClick:dr,children:s.jsx(Qt,{})}):Ln?s.jsx("button",{type:"button",className:"composer-attach-btn","aria-label":i("conversation.attachFiles"),title:i("conversation.attachFiles"),disabled:!0,children:s.jsx(Qt,{})}):s.jsx("label",{htmlFor:I,className:"composer-attach-btn","aria-label":i("conversation.attachFiles"),title:i("conversation.attachFiles"),onClick:()=>{ee(!1)},children:s.jsx(Qt,{})}):null,ve?null:s.jsx(Tt,{ariaLabel:i("conversation.modelSelectorLabel"),value:L,options:Qs,onChange:ir}),!ve&&Ct&&ae.length>0?s.jsx(Tt,{ariaLabel:i("conversation.reasoningSelectorLabel"),value:H,options:Js,onChange:c=>ar(c),compact:!0}):null,Zs?s.jsxs("button",{type:"button",className:"composer-slash-btn",onClick:mr,title:i("conversation.slashMenu"),children:[s.jsx("span",{className:"slash-icon",children:"/"}),s.jsx("span",{children:i("conversation.slashMenu")})]}):null,s.jsx(Fi,{contextUsage:m}),s.jsx(ci,{provider:x,messages:v,variant:"composer"})]}),Cr?s.jsx("div",{className:"composer-quick-phrase-group",children:s.jsx("button",{type:"button",className:"composer-quick-phrase-trigger","aria-label":i("conversation.quickPhraseTrigger"),title:i("conversation.quickPhraseTrigger"),onClick:()=>{ke(!0),ee(!1)},children:s.jsxs("svg",{width:"16",height:"16",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",children:[s.jsx("path",{d:"M7 8h10"}),s.jsx("path",{d:"M7 12h8"}),s.jsx("path",{d:"M7 16h5"}),s.jsx("path",{d:"M5 5h14v14H9l-4 4V5z"})]})})}):null]})]})]}),s.jsx(At,{open:ie,title:i("conversation.quickPhraseModalTitle"),description:i("conversation.quickPhraseModalDescription"),className:"composer-quick-phrase-modal",onClose:()=>{ke(!1),pe(!1)},children:s.jsxs("div",{className:"composer-quick-phrase-modal-body",children:[s.jsxs("div",{className:"composer-quick-phrase-toolbar",children:[s.jsx("div",{className:"composer-quick-phrase-toolbar-copy",children:s.jsx("span",{children:i("conversation.quickPhraseListLabel")})}),s.jsx("button",{type:"button",className:"primary-button",disabled:Ce,onClick:()=>pe(!0),children:i("conversation.quickPhraseOpenCreateAction")})]}),s.jsx("div",{className:"composer-quick-phrase-list",role:"list","aria-label":i("conversation.quickPhraseListLabel"),children:G.length===0?s.jsx("div",{className:"composer-quick-phrase-empty",children:i("conversation.quickPhraseEmpty")}):G.map((c,g)=>s.jsxs("div",{className:"composer-quick-phrase-item",role:"listitem",children:[s.jsxs("button",{type:"button",className:"composer-quick-phrase-select",onClick:()=>gr(c.text),children:[s.jsx("span",{className:"composer-quick-phrase-order",children:i("conversation.quickPhraseOrderLabel",{index:g+1})}),s.jsx("span",{className:"composer-quick-phrase-text",children:c.text})]}),s.jsxs("div",{className:"composer-quick-phrase-actions",children:[s.jsx("button",{type:"button",className:"composer-quick-phrase-action",disabled:Ce||g===0,"aria-label":i("conversation.quickPhraseMoveUp"),title:i("conversation.quickPhraseMoveUp"),onClick:()=>Sn(c.id,-1),children:"↑"}),s.jsx("button",{type:"button",className:"composer-quick-phrase-action",disabled:Ce||g===G.length-1,"aria-label":i("conversation.quickPhraseMoveDown"),title:i("conversation.quickPhraseMoveDown"),onClick:()=>Sn(c.id,1),children:"↓"}),s.jsx("button",{type:"button",className:"composer-quick-phrase-action is-danger",disabled:Ce,"aria-label":i("conversation.quickPhraseDelete"),title:i("conversation.quickPhraseDelete"),onClick:()=>hr(c.id),children:"×"})]})]},c.id))})]})}),s.jsx(At,{open:bt,title:i("conversation.quickPhraseCreateModalTitle"),description:i("conversation.quickPhraseCreateModalDescription"),className:"composer-quick-phrase-create-modal",onClose:()=>pe(!1),children:s.jsxs("div",{className:"composer-quick-phrase-modal-body",children:[s.jsxs("label",{className:"workbench-modal-field",children:[s.jsx("span",{children:i("conversation.quickPhraseCreateLabel")}),s.jsx("textarea",{className:"composer-quick-phrase-textarea",value:Oe,placeholder:i("conversation.quickPhraseCreatePlaceholder"),rows:4,onChange:c=>yt(c.target.value)})]}),s.jsxs("div",{className:"workbench-modal-actions",children:[s.jsx("button",{type:"button",className:"secondary-button",onClick:()=>pe(!1),children:i("common.cancel")}),s.jsx("button",{type:"button",className:"primary-button",disabled:Ce||Oe.trim().length===0,onClick:()=>{fr()},children:i("conversation.quickPhraseCreateAction")})]})]})}),s.jsx(At,{open:ge!==null,title:i("conversation.forkSwitchConfirmTitle"),description:i("conversation.forkSwitchConfirmDescription"),className:"composer-fork-confirm-modal",onClose:Rn,children:s.jsxs("div",{className:"composer-fork-confirm-body",children:[s.jsxs("div",{className:"composer-fork-confirm-list",children:[s.jsxs("div",{className:"composer-fork-confirm-item",children:[s.jsx("span",{className:"composer-fork-confirm-icon is-keep","aria-hidden":"true",children:s.jsx(_i,{})}),s.jsxs("div",{className:"composer-fork-confirm-copy",children:[s.jsx("strong",{children:i("conversation.forkSwitchConfirmKeepTitle")}),s.jsx("p",{children:i("conversation.forkSwitchConfirmKeepBody")})]})]}),s.jsxs("div",{className:"composer-fork-confirm-item",children:[s.jsx("span",{className:"composer-fork-confirm-icon is-convert","aria-hidden":"true",children:s.jsx(qi,{})}),s.jsxs("div",{className:"composer-fork-confirm-copy",children:[s.jsx("strong",{children:i("conversation.forkSwitchConfirmConvertTitle")}),s.jsx("p",{children:i("conversation.forkSwitchConfirmConvertBody")})]})]}),s.jsxs("div",{className:"composer-fork-confirm-item",children:[s.jsx("span",{className:"composer-fork-confirm-icon is-drop","aria-hidden":"true",children:s.jsx(Wi,{})}),s.jsxs("div",{className:"composer-fork-confirm-copy",children:[s.jsx("strong",{children:i("conversation.forkSwitchConfirmDropTitle")}),s.jsx("p",{children:i("conversation.forkSwitchConfirmDropBody")})]})]})]}),s.jsxs("div",{className:"workbench-modal-actions",children:[s.jsx("button",{type:"button",className:"secondary-button",onClick:Rn,children:i("conversation.forkSwitchKeepNative")}),s.jsx("button",{type:"button",className:"primary-button",onClick:br,children:i("conversation.forkSwitchConfirmAction")})]})]})}),s.jsx(Ei,{open:Ee&&R.isNativeMobile,onClose:()=>re(!1),onSelectCamera:()=>Nn("camera"),onSelectLibrary:()=>Nn("library")})]});return u?cn.createPortal(Pn,u):Pn}function Ei({open:e,onClose:t,onSelectCamera:n,onSelectLibrary:r}){return s.jsx(Fr,{open:e,title:i("conversation.attachmentSourceSheetTitle"),description:i("conversation.attachmentSourceSheetDescription"),kind:"action",height:"auto",className:"composer-attachment-sheet",cardClassName:"composer-attachment-sheet-card",bodyClassName:"composer-attachment-sheet-body",showHandle:!0,onClose:t,children:s.jsxs(Ur,{className:"composer-attachment-sheet-actions",children:[s.jsx(Bn,{as:"button",className:"mobile-workspace-home-row composer-attachment-sheet-option","aria-label":i("conversation.attachmentTakePhoto"),label:i("conversation.attachmentTakePhoto"),description:i("conversation.attachmentTakePhotoHint"),trailing:s.jsx(Bi,{}),onClick:n}),s.jsx(Bn,{as:"button",className:"mobile-workspace-home-row composer-attachment-sheet-option","aria-label":i("conversation.attachmentChooseFromLibrary"),label:i("conversation.attachmentChooseFromLibrary"),description:i("conversation.attachmentChooseFromLibraryHint"),trailing:s.jsx(Oi,{}),onClick:r})]})})}function Bi(){return s.jsxs("svg",{width:"18",height:"18",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"1.8",children:[s.jsx("path",{d:"M4 8h3l1.5-2h7L17 8h3a1 1 0 0 1 1 1v9a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V9a1 1 0 0 1 1-1Z"}),s.jsx("circle",{cx:"12",cy:"13",r:"4"})]})}function Qt(){return s.jsxs("svg",{width:"18",height:"18",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",children:[s.jsx("rect",{x:"3",y:"3",width:"18",height:"18",rx:"4"}),s.jsx("path",{d:"M8 12h8M12 8v8"})]})}function Oi(){return s.jsxs("svg",{width:"18",height:"18",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"1.8",children:[s.jsx("rect",{x:"4",y:"4",width:"16",height:"16",rx:"2.5"}),s.jsx("path",{d:"m7.5 15 3-3 2.5 2.5 3-4L18 13.5"}),s.jsx("circle",{cx:"8.75",cy:"8.75",r:"1.25",fill:"currentColor",stroke:"none"})]})}function _i(){return s.jsxs("svg",{width:"18",height:"18",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"1.9",children:[s.jsx("path",{d:"M12 3 4 7v5c0 5 3.5 8 8 9 4.5-1 8-4 8-9V7l-8-4Z"}),s.jsx("path",{d:"m9.5 12 1.8 1.8L15 10.2"})]})}function qi(){return s.jsxs("svg",{width:"18",height:"18",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"1.9",children:[s.jsx("path",{d:"M4 7h9"}),s.jsx("path",{d:"m10 3 4 4-4 4"}),s.jsx("path",{d:"M20 17h-9"}),s.jsx("path",{d:"m14 13-4 4 4 4"})]})}function Wi(){return s.jsxs("svg",{width:"18",height:"18",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"1.9",children:[s.jsx("path",{d:"m7 7 10 10"}),s.jsx("path",{d:"M17 7 7 17"}),s.jsx("path",{d:"M12 3v2"}),s.jsx("path",{d:"M12 19v2"})]})}function Tt({ariaLabel:e,value:t,options:n,onChange:r,disabled:a=!1,compact:o=!1}){const[l,u]=d.useState(!1),p=d.useRef(null),y=d.useRef(null),m=d.useRef(null),[x,v]=d.useState(null),j=d.useId(),b=n.find(C=>C.value===t)??n[0]??null,h=d.useCallback(()=>{const C=y.current;if(!C||typeof window>"u")return;const T=C.getBoundingClientRect(),M=window.innerWidth,R=window.innerHeight,I=12,D=10,A=Math.max(160,M-I*2),F=o?140:220,L=Math.min(A,Math.max(T.width,F)),$=Math.min(Math.max(I,T.left),Math.max(I,M-L-I)),H=T.top-I,X=R-T.bottom-I,U=H>=180||H>=X;v({position:"fixed",left:$,width:L,maxWidth:A,top:U?void 0:T.bottom+D,bottom:U?R-T.top+D:void 0})},[o]);return d.useEffect(()=>{if(!l)return;function C(M){var I,D;const R=M.target;!((I=p.current)!=null&&I.contains(R))&&!((D=m.current)!=null&&D.contains(R))&&u(!1)}function T(M){M.key==="Escape"&&u(!1)}return window.addEventListener("pointerdown",C),window.addEventListener("keydown",T),window.addEventListener("resize",h),window.addEventListener("scroll",h,!0),h(),()=>{window.removeEventListener("pointerdown",C),window.removeEventListener("keydown",T),window.removeEventListener("resize",h),window.removeEventListener("scroll",h,!0)}},[l,h]),b?s.jsxs("div",{ref:p,className:`composer-mac-select ${o?"is-compact":""}`,"data-open":l?"true":"false",children:[s.jsxs("button",{ref:y,type:"button",className:"composer-mac-select-trigger","aria-label":e,"aria-haspopup":"listbox","aria-expanded":l,"aria-controls":j,disabled:a,onClick:()=>u(C=>!C),children:[s.jsx("span",{className:"composer-mac-select-label",children:b.label}),s.jsx("svg",{className:"composer-mac-select-chevron",width:"14",height:"14",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",children:s.jsx("polyline",{points:"6 14 12 8 18 14"})})]}),l&&x&&typeof document<"u"?cn.createPortal(s.jsx("div",{ref:m,className:"composer-mac-select-popover",style:x,role:"presentation",children:s.jsx("div",{id:j,className:"composer-mac-select-list",role:"listbox","aria-label":e,children:n.map(C=>{const T=C.value===t;return s.jsxs("button",{type:"button",role:"option","aria-selected":T,className:`composer-mac-select-option ${T?"is-selected":""}`,onClick:()=>{r(C.value),u(!1)},children:[s.jsx("span",{className:"composer-mac-select-option-check","aria-hidden":"true",children:T?"✓":""}),s.jsx("span",{className:"composer-mac-select-option-label",children:C.label})]},C.value)})})}),document.body):null]}):null}function Fi({contextUsage:e}){const[t,n]=d.useState(!1),r=d.useRef(null),a=d.useRef(null),[o,l]=d.useState(null),u=d.useId(),p=e?Math.round(e.usageRatio*100):null,y=e?Math.max(0,Math.min(e.usageRatio,1)):0,m=Ui(y),x=e?zi(e.contextWindowSource):null,v=e?`${i("conversation.contextUsageTitle")} ${p}%`:i("conversation.contextUsageUnavailable"),j=d.useCallback(()=>{const b=r.current;if(!b||typeof window>"u")return;const h=b.getBoundingClientRect(),C=window.innerWidth,T=window.innerHeight,M=12,R=10,I=Math.min(240,Math.max(188,C-M*2)),D=Math.min(Math.max(M,h.left+h.width/2-I/2),Math.max(M,C-I-M)),A=h.top-M,F=T-h.bottom-M,L=A>=140||A>=F;l({position:"fixed",left:D,width:I,maxWidth:C-M*2,top:L?void 0:h.bottom+R,bottom:L?T-h.top+R:void 0})},[]);return d.useEffect(()=>{if(!t)return;function b(C){var M,R;const T=C.target;!((M=r.current)!=null&&M.contains(T))&&!((R=a.current)!=null&&R.contains(T))&&n(!1)}function h(C){C.key==="Escape"&&n(!1)}return window.addEventListener("pointerdown",b),window.addEventListener("keydown",h),window.addEventListener("resize",j),window.addEventListener("scroll",j,!0),j(),()=>{window.removeEventListener("pointerdown",b),window.removeEventListener("keydown",h),window.removeEventListener("resize",j),window.removeEventListener("scroll",j,!0)}},[t,j]),s.jsxs(s.Fragment,{children:[s.jsx("button",{ref:r,type:"button",className:`composer-context-ring ${m}`,style:{"--context-usage-progress":`${y}`},"aria-label":v,"aria-expanded":t,"aria-describedby":t?u:void 0,onClick:()=>n(b=>!b),onMouseEnter:()=>n(!0),onMouseLeave:()=>n(!1),onFocus:()=>n(!0),onBlur:()=>n(!1),children:s.jsx("span",{className:"composer-context-ring-value",children:p===null?"--":s.jsxs(s.Fragment,{children:[s.jsx("span",{children:p}),s.jsx("span",{className:"composer-context-ring-suffix",children:"%"})]})})}),t&&o&&typeof document<"u"?cn.createPortal(s.jsx("div",{ref:a,id:u,className:"composer-context-tooltip",style:o,role:"tooltip",children:e?s.jsxs(s.Fragment,{children:[s.jsx("div",{className:"composer-context-tooltip-title",children:i("conversation.contextUsageTitle")}),s.jsxs("div",{className:"composer-context-tooltip-line",children:[p,"% · ",Jt(e.promptTokens)," /"," ",Jt(e.contextWindow)," tokens"]}),e.cachedInputTokens>0?s.jsx("div",{className:"composer-context-tooltip-line",children:i("conversation.contextUsageCachedTokens").replace("{count}",Jt(e.cachedInputTokens))}):null,x?s.jsx("div",{className:"composer-context-tooltip-meta",children:x}):null,e.isEstimated?s.jsx("div",{className:"composer-context-tooltip-meta",children:i("conversation.contextUsageEstimated")}):null]}):s.jsx("div",{className:"composer-context-tooltip-line",children:i("conversation.contextUsageUnavailable")})}),document.body):null]})}function Ui(e){return e>=.95?"is-critical":e>=.8?"is-warning":"is-normal"}function zi(e){switch(e){case"provider-log":return i("conversation.contextUsageSourceProviderLog");case"provider-runtime":return i("conversation.contextUsageSourceProviderRuntime");case"provider-config":return i("conversation.contextUsageSourceProviderConfig");case"model-map":return i("conversation.contextUsageSourceModelMap");default:return""}}function Jt(e){return new Intl.NumberFormat().format(e)}const Pt="*** Begin Patch",It="*** End Patch";function $n(e){const t=e.replace(/\r\n/g,`
2
- `);if(!t.includes(Pt)||!t.includes(It))return null;const n=t.split(`
3
- `),r=[];let a=null,o=null;for(const l of n){if(l===Pt||l===It)continue;if(l.startsWith("*** Update File: ")){a=Yt("update",l.slice(17)),r.push(a),o=null;continue}if(l.startsWith("*** Add File: ")){a=Yt("add",l.slice(14)),r.push(a),o={oldLineNumber:0,newLineNumber:1};continue}if(l.startsWith("*** Delete File: ")){a=Yt("delete",l.slice(17)),r.push(a),o=null;continue}if(!a)continue;if(l.startsWith("*** Move to: ")){a.nextPath=l.slice(13),a.lines.push({kind:"meta",text:l,oldLineNumber:null,newLineNumber:null});continue}if(l.startsWith("@@")){o=Ki(l)??{oldLineNumber:0,newLineNumber:0},a.lines.push({kind:"hunk",text:l,oldLineNumber:null,newLineNumber:null});continue}if(l==="*** End of File"){a.lines.push({kind:"meta",text:l,oldLineNumber:null,newLineNumber:null});continue}if(a.action==="add"&&l.startsWith("+")){a.additions+=1,a.statsKnown=!0,a.lines.push({kind:"add",text:l,oldLineNumber:null,newLineNumber:(o==null?void 0:o.newLineNumber)??a.additions}),o&&(o.newLineNumber+=1);continue}if(!o){a.lines.push({kind:"meta",text:l,oldLineNumber:null,newLineNumber:null});continue}if(l.startsWith("+")){a.additions+=1,a.statsKnown=!0,a.lines.push({kind:"add",text:l,oldLineNumber:null,newLineNumber:o.newLineNumber}),o.newLineNumber+=1;continue}if(l.startsWith("-")){a.deletions+=1,a.statsKnown=!0,a.lines.push({kind:"remove",text:l,oldLineNumber:o.oldLineNumber,newLineNumber:null}),o.oldLineNumber+=1;continue}if(l.startsWith(" ")||l.length===0){a.lines.push({kind:"context",text:l,oldLineNumber:o.oldLineNumber,newLineNumber:o.newLineNumber}),o.oldLineNumber+=1,o.newLineNumber+=1;continue}a.lines.push({kind:"meta",text:l,oldLineNumber:null,newLineNumber:null})}return r.length===0?null:{files:r,totalAdditions:r.reduce((l,u)=>l+u.additions,0),totalDeletions:r.reduce((l,u)=>l+u.deletions,0)}}function Di(e,t=[]){const n=e.replace(/\r\n/g,`
4
- `).trim();if(!n)return null;if(n.includes(Pt)&&n.includes(It))return n;const r=[...new Set(t.map(a=>a.trim()).filter(a=>a.length>0))];return r.length!==1||!Vi(n)?null:[Pt,`*** Update File: ${r[0]}`,n,It].join(`
5
- `)}function $i(e){const t=Gi(e);if(!t)return[];const n=t.replace(/\r\n/g,`
6
- `).split(`
7
- `),r=[];let a=!1;for(const o of n){const l=o.trim();if(!a){/^Success\.\s+Updated the following files:/i.test(l)&&(a=!0);continue}if(!l){if(r.length>0)break;continue}const u=l.match(/^[A-Z?]\s+(.+)$/),p=((u==null?void 0:u[1])??l).trim();if(!p)break;r.push(p)}return[...new Set(r)]}function Hi(e){return e.replace(/\\/g,"/").split("/").at(-1)||e}function Yt(e,t){return{path:t,nextPath:null,action:e,additions:0,deletions:0,statsKnown:!1,lines:[]}}function Ki(e){const t=e.match(/^@@\s+-(\d+)(?:,\d+)?\s+\+(\d+)(?:,\d+)?\s+@@/);return t?{oldLineNumber:Number(t[1]),newLineNumber:Number(t[2])}:null}function Vi(e){return e.startsWith("@@")||e.startsWith("*** Update File: ")||e.startsWith("*** Add File: ")||e.startsWith("*** Delete File: ")||e.includes(`
8
- @@`)||e.startsWith("+")||e.startsWith("-")}function Gi(e){const t=e.trim();if(!t)return"";if(!t.startsWith("{"))return t;try{const n=JSON.parse(t);if(!n||typeof n!="object"||Array.isArray(n))return t;const r=n;if(typeof r.output=="string"&&r.output.trim().length>0)return r.output;if(typeof r.result=="string"&&r.result.trim().length>0)return r.result;if(typeof r.message=="string"&&r.message.trim().length>0)return r.message}catch{return t}return t}const Zi=/data:image\/([a-zA-Z0-9.+-]+);base64,([A-Za-z0-9+/=]+)/g,Qi=/!\[([^\]]*)\]\((data:image\/[a-zA-Z0-9.+-]+;base64,[A-Za-z0-9+/=]+)\)/g,Ji=/<img\b[^>]*src=["'](data:image\/[a-zA-Z0-9.+-]+;base64,[A-Za-z0-9+/=]+)["'][^>]*>/gi,Yi=/<image\b([^>]*)>([\s\S]*?)<\/image>/gi,Xi=/\[\[CODINGNS_IMAGE_ATTACHMENTS\]\][\s\S]*?\[\[\/CODINGNS_IMAGE_ATTACHMENTS\]\]/g;function dt(e){const t=ea(e),n=ta(t);return n||Cs(t)}function ea(e){return e.replace(Xi,"")}function ta(e){const t=e.trim();if(!na(t))return null;try{const n=JSON.parse(t),r=sa(n);return r.text||r.inlineImages.length>0?r:null}catch{return null}}function na(e){return e.length<2?!1:e.startsWith("[")&&e.endsWith("]")||e.startsWith("{")&&e.endsWith("}")}function sa(e){const t=[],n=[];return Lt(e,t,n),{text:ws(t.join(`
9
-
10
- `)),inlineImages:js(n)}}function Lt(e,t,n){if(typeof e=="string"){const l=Cs(e);l.text&&t.push(l.text),n.push(...l.inlineImages);return}if(e==null)return;if(Array.isArray(e)){e.forEach(l=>Lt(l,t,n));return}if(typeof e!="object")return;const r=e,a=new Set,o=ra(r);o&&(n.push(o),["type","source","media_type","mime_type","mimeType","data","image_url","imageUrl","url","src","alt","name"].forEach(l=>{l in r&&a.add(l)}));for(const l of["image_url","url","src","source"]){const u=r[l];typeof u!="string"||!Ns(u)||(n.push(Pe(u,se(r.alt))),a.add(l))}for(const l of["text","message","content","output","result","summary","caption"])l in r&&(a.add(l),Lt(r[l],t,n));a.size>0||Object.values(r).forEach(l=>{Lt(l,t,n)})}function Cs(e){const t=[];let n=e;return n=n.replace(Yi,(r,a,o)=>{const l=ca(a,"name"),u=la(o);return u!=null&&u.url&&t.push(Pe(u.url,u.altText||l)),""}),n=n.replace(Qi,(r,a,o)=>(t.push(Pe(o,a)),"")),n=n.replace(Ji,(r,a)=>(t.push(Pe(a,null)),"")),n=n.replace(Zi,(r,a,o)=>(t.push(Pe(r,null,`image/${a}`,Et(o))),"")),{text:ws(n),inlineImages:js(t)}}function Pe(e,t,n,r){const a=n??ia(e)??"image/png";return{url:e,mimeType:a,altText:mt(t),estimatedBytes:r??aa(e)}}function ra(e){const t=oa(e.source);if(t){const a=se(t.type).trim().toLowerCase(),o=Kn(t.media_type??t.mime_type??t.mimeType),l=Hn(t.data);if(a==="base64"&&o&&l)return Pe(`data:${o};base64,${l}`,mt(se(t.alt)||se(t.name)||se(e.alt)||se(e.name)),o,Et(l))}const n=Kn(e.media_type??e.mime_type??e.mimeType),r=Hn(e.data);return n&&r?Pe(`data:${n};base64,${r}`,mt(se(e.alt)||se(e.name)),n,Et(r)):null}function js(e){const t=new Map;return e.forEach(n=>{t.has(n.url)||t.set(n.url,n)}),[...t.values()]}function ws(e){return e.replace(/\r\n/g,`
11
- `).replace(/[ \t]{2,}/g," ").replace(/[ \t]+\n/g,`
12
- `).replace(/\n{3,}/g,`
13
-
14
- `).trim()}function Ns(e){return/^data:image\/[a-zA-Z0-9.+-]+;base64,[A-Za-z0-9+/=]+$/.test(e.trim())}function ia(e){var n;const t=e.match(/^data:(image\/[a-zA-Z0-9.+-]+);base64,/i);return((n=t==null?void 0:t[1])==null?void 0:n.toLowerCase())??null}function aa(e){const t=e.match(/^data:image\/[a-zA-Z0-9.+-]+;base64,([A-Za-z0-9+/=]+)$/i);return t?Et(t[1]):null}function Et(e){const t=e.trim(),n=t.endsWith("==")?2:t.endsWith("=")?1:0;return Math.max(0,Math.floor(t.length*3/4)-n)}function mt(e){const t=se(e).trim();return t.length>0?t:null}function Hn(e){if(typeof e!="string")return null;const t=e.replace(/\s+/g,"").trim();return/^[A-Za-z0-9+/=]+$/.test(t)?t:null}function Kn(e){if(typeof e!="string")return null;const t=e.trim().toLowerCase();return t.startsWith("image/")?t:null}function se(e){return typeof e=="string"?e:""}function oa(e){return!e||typeof e!="object"||Array.isArray(e)?null:e}function la(e){const t=e.trim();if(t.length===0)return null;try{const n=JSON.parse(t),r=se(n.image_url??n.imageUrl).trim(),a=mt(se(n.name)||se(n.alt));return{url:Ns(r)?r:null,altText:a}}catch{const n=t.match(/(data:image\/[a-zA-Z0-9.+-]+;base64,[A-Za-z0-9+/=]+)/i);return n?{url:n[1],altText:null}:null}}function ca(e,t){const n=t.replace(/[.*+?^${}()|[\]\\]/g,"\\$&"),r=e.match(new RegExp(`${n}\\s*=\\s*(?:"([^"]*)"|'([^']*)'|\\[([^\\]]*)\\]|([^\\s>]+))`,"i"));return mt((r==null?void 0:r[1])??(r==null?void 0:r[2])??(r==null?void 0:r[3])??(r==null?void 0:r[4])??"")}const Ss="codingns.user-app.conversation-scroll",$e=1,ua=200,da=1e7;function Ts(){return typeof window<"u"&&typeof window.localStorage<"u"}function Rs(e){return e.trim()}function Ms(e){return!Number.isFinite(e)||e<=0?0:Math.min(Math.round(e),da)}function As(e){return!e||typeof e!="object"?null:{scrollTop:Ms(e.scrollTop),stickToBottom:e.stickToBottom===!0,lastMessageSignature:typeof e.lastMessageSignature=="string"?e.lastMessageSignature:null,updatedAt:Number.isFinite(e.updatedAt)?e.updatedAt:0}}function Ls(){if(!Ts())return{schemaVersion:$e,bySessionId:{}};const e=window.localStorage.getItem(Ss);if(!e)return{schemaVersion:$e,bySessionId:{}};try{const t=JSON.parse(e);if(!t||typeof t!="object"||t.schemaVersion!==$e||!t.bySessionId||typeof t.bySessionId!="object"||Array.isArray(t.bySessionId))return{schemaVersion:$e,bySessionId:{}};const n=Object.fromEntries(Object.entries(t.bySessionId).map(([r,a])=>{const o=As(a);return o?[r,o]:null}).filter(r=>!!r));return{schemaVersion:$e,bySessionId:n}}catch{return{schemaVersion:$e,bySessionId:{}}}}function ma(e){if(Ts())try{window.localStorage.setItem(Ss,JSON.stringify(e))}catch{}}function Rt(e){const t=Rs(e);if(!t)return null;const n=Ls().bySessionId[t],r=As(n);return r?{scrollTop:r.scrollTop,stickToBottom:r.stickToBottom,lastMessageSignature:r.lastMessageSignature}:null}function Vn(e,t){const n=Rs(e);if(!n)return;const r=Ls();r.bySessionId[n]={scrollTop:Ms(t.scrollTop),stickToBottom:t.stickToBottom,lastMessageSignature:t.lastMessageSignature,updatedAt:Date.now()};const a=Object.entries(r.bySessionId).sort((o,l)=>l[1].updatedAt-o[1].updatedAt).slice(0,ua);r.bySessionId=Object.fromEntries(a),ma(r)}function pa(e){return e.replace(/(\.{3,}|…+)$/,"").trimEnd()}function Ps(e){var r;const t=e.match(/^\s*<turn_aborted>([\s\S]*?)<\/turn_aborted>\s*$/i);if(!t)return null;const n=((r=t[1])==null?void 0:r.trim())??"";return!n||/^previous turn aborted$/i.test(n)?{detail:null}:{detail:n}}function fa(e){return e==="user"?i("conversation.turnAbortedUser"):e==="runtime"?i("conversation.turnAbortedUnexpected"):i("conversation.turnAbortedGeneric")}const ha=480,Gn=80,Zn=240,ga=120,va=18,xa=50,ba=3500,Is=d.createContext(!1);function on(e){return e.replace(/\\/g,"/")}function Bt(e){return/^[a-zA-Z]:\//.test(e)}function ya(e){return e.startsWith("/")||e.startsWith("//")||Bt(e)}function ka(e){return/^[a-zA-Z][a-zA-Z\d+.-]*:/.test(e)&&!Bt(e)}function Qn(e){return e.replace(/\/+$/,"")}function Ca(e){const t=e.indexOf("#"),n=t>=0?e.slice(0,t):e,r=n.indexOf("?");return(r>=0?n.slice(0,r):n).replace(/:(\d+)(?::(\d+))?$/,"")}function ja(e){const t=[];for(const n of on(e).split("/"))if(!(!n||n===".")){if(n===".."){if(t.length===0)return null;t.pop();continue}t.push(n)}return t.join("/")}function dn(e){try{return decodeURIComponent(e)}catch{return e}}function wa(e,t){const n=dn(e).trim();if(!n||n.startsWith("#"))return null;let r=n;if(/^file:\/\//i.test(r))try{r=decodeURIComponent(new URL(r).pathname),/^\/[a-zA-Z]:\//.test(r)&&(r=r.slice(1))}catch{return null}else if(ka(r))return null;if(r=on(Ca(r.trim())),!r)return null;const a=Qn(on(t.trim()));if(!a)return null;if(ya(r)){const o=Qn(r),l=Bt(a)?a.toLowerCase():a,u=Bt(o)?o.toLowerCase():o;if(u===l)return null;const p=`${l}/`;return u.startsWith(p)?o.slice(a.length+1):null}return ja(r)}function Ot(e){return e.kind==="tool_call"||e.kind==="tool_result"}function Es(e){return e.toolCall?e.toolCall:Ot(e)?{callId:e.rawRef||e.id,name:"tool",input:e.kind==="tool_call"?e.content:"",output:e.kind==="tool_result"&&e.content?e.content:null,error:null,status:e.kind==="tool_call"?"running":"completed"}:null}function Na(e){return e==="shell_command"||e==="tool"?i("conversation.roleTool"):e}function mn(e){if(!e.trim())return null;try{const t=JSON.parse(e);return!t||typeof t!="object"||Array.isArray(t)?null:t}catch{return null}}function Ae(e,t){const n=e[t];return typeof n=="string"?n:""}function pt(e){return!!e&&typeof e=="object"&&!Array.isArray(e)}function z(e,t){if(!e)return null;const n=e[t];return pt(n)?n:null}function Xt(e,t){if(!e)return null;const n=e[t];return Array.isArray(n)?n:null}function P(e,t){if(!e)return null;const n=e[t];if(typeof n=="string"){const r=n.trim();return r||null}return typeof n=="number"||typeof n=="boolean"?String(n):null}function Sa(e){const t=[e.output,e.input];for(const n of t){const r=Bs(n,0);if(r)return r}return null}function Bs(e,t){if(!(e!=null&&e.trim())||t>2)return null;try{return Os(JSON.parse(e),t)}catch{return null}}function Os(e,t){if(!pt(e))return null;if(Ta(e))return{ok:!0,capability:P(e,"capability")??"",auditId:P(e,"auditId")??"",timestamp:P(e,"timestamp")??"",targetRef:{kind:P(z(e,"targetRef"),"kind")??"none",id:P(z(e,"targetRef"),"id")},payload:z(e,"payload")??{}};const n=["output","result","data","payload"];for(const r of n){const a=e[r];if(typeof a=="string"){const o=Bs(a,t+1);if(o)return o}if(pt(a)){const o=Os(a,t+1);if(o)return o}}return null}function Ta(e){return e.ok===!0&&typeof e.capability=="string"&&typeof e.auditId=="string"&&typeof e.timestamp=="string"&&pt(e.targetRef)&&pt(e.payload)}function Ra(e){const t=new Map,n=new Map,r=new Map;return e.forEach(a=>{t.set(a.workspace.id,a.workspace.name),a.sessions.forEach(o=>{const l=typeof o.title=="string"&&o.title.trim()?o.title.trim():o.sessionId;n.set(o.sessionId,l),r.set(o.sessionId,a.workspace.id)})}),{workspaceNamesById:t,sessionNamesById:n,sessionWorkspaceIdsById:r}}function Ma(e,t){const n=Sa(e);return n?{...qs(n.capability),rows:Wa(n,t)}:null}function Aa(e,t){const n=La(e);if(!n)return null;const r=Pa(n);return r?{...Ba(r),rows:qa(r,t)}:null}function La(e){const t=mn(e.input),n=t&&typeof t.command=="string"?t.command.trim():"";if(!n)return null;const r=n.indexOf("codingns assistant");return r<0?null:n.slice(r).trim()}function Pa(e){const t=Ia(e),n=t.findIndex((m,x)=>m==="codingns"&&t[x+1]==="assistant");if(n<0)return null;const r=t.slice(n+2);if(r.length===0||r[0]==="--help"||r[0]==="-h")return{group:null,action:null,mode:"help",options:{},positionals:[]};if(r[0]==="help")return{group:r[1]??null,action:r[2]??null,mode:"help",options:{},positionals:[]};const a=r[0]??null,o=r[1],l=o&&!o.startsWith("-")?o:null,u=r.slice(l?2:1),{options:p,positionals:y}=Ea(u);return!l&&p["--help"]?{group:a,action:null,mode:"help",options:p,positionals:y}:{group:a,action:l,mode:"execute",options:p,positionals:y}}function Ia(e){const t=[],n=/"([^"\\]|\\.)*"|'([^'\\]|\\.)*'|`([^`\\]|\\.)*`|\S+/g;for(const r of e.matchAll(n)){const a=r[0]??"";if(!a)continue;const o=a[0];if((o==='"'||o==="'"||o==="`")&&a[a.length-1]===o){t.push(a.slice(1,-1));continue}t.push(a)}return t}function Ea(e){const t={},n=[];for(let r=0;r<e.length;r+=1){const a=e[r]??"";if(!a.startsWith("--")){n.push(a);continue}const o=e[r+1];if(!o||o.startsWith("--")){t[a]=!0;continue}t[a]=o,r+=1}return{options:t,positionals:n}}function Ba(e){if(e.mode==="help")return Oa(e.group,e.action);const t=_a(e.group,e.action);return t?qs(t):{kind:pn(e.group),badge:_s(e.group),title:i("conversation.assistantCapabilityQueryTitle"),summary:i("conversation.assistantCliSummaryCommand")}}function Oa(e,t){return e?e==="sessions"?{kind:"session",badge:i("conversation.assistantCapabilityBadgeSession"),title:t?i("conversation.assistantCliHelpSessionActionTitle",{action:t}):i("conversation.assistantCliHelpSessionsTitle"),summary:i("conversation.assistantCliSummaryHelp")}:e==="timers"?{kind:"automation",badge:i("conversation.assistantCapabilityBadgeAutomation"),title:i("conversation.assistantCliHelpTimersTitle"),summary:i("conversation.assistantCliSummaryHelp")}:e==="terminals"?{kind:"terminal",badge:i("conversation.assistantCapabilityBadgeTerminal"),title:i("conversation.assistantCliHelpTerminalsTitle"),summary:i("conversation.assistantCliSummaryHelp")}:e==="workspaces"||e==="worktrees"?{kind:"workspace",badge:i("conversation.assistantCapabilityBadgeWorkspace"),title:i("conversation.assistantCliHelpWorkspacesTitle"),summary:i("conversation.assistantCliSummaryHelp")}:{kind:pn(e),badge:_s(e),title:i("conversation.assistantCliHelpGenericTitle",{group:e}),summary:i("conversation.assistantCliSummaryHelp")}:{kind:"query",badge:i("conversation.assistantCapabilityBadgeQuery"),title:i("conversation.assistantCliHelpRootTitle"),summary:i("conversation.assistantCliSummaryHelp")}}function _a(e,t){const n=e==null?void 0:e.trim(),r=t==null?void 0:t.trim();return n?n==="capabilities"&&r==="list"?"capabilities.list":n==="projects"&&r==="list"?"projects.list":n==="projects"&&r==="get"?"projects.get":n==="sessions"&&r==="list"?"projects.sessions.list":n==="sessions"&&r==="get"?"sessions.get":n==="sessions"&&r==="messages"?"sessions.messages.list":n==="sessions"&&r==="runtime"?"sessions.runtime.get":n==="sessions"&&r==="start"?"projects.sessions.start":n==="sessions"&&r==="send"?"sessions.message.send":n==="sessions"&&r==="fork"?"sessions.fork":n==="timers"&&r==="create"?"timers.create":n==="timers"&&r==="cancel"?"timers.cancel":n==="timers"&&r==="list"?"timers.list":n==="terminals"&&r==="send"?"terminals.input.send":n==="terminals"&&r==="close"?"terminals.close":n==="terminals"&&r==="history"?"terminals.history.read":n==="terminals"&&r==="list"?"terminals.list":n==="workspaces"&&r==="list"?"workspaces.list":n==="workspaces"&&r==="clone"?"workspaces.clone":n==="workspaces"&&r==="import"?"workspaces.import":n==="workspaces"&&r==="management"?"workspaces.management.get":n==="worktrees"&&r==="tree"?"worktrees.tree":n==="worktrees"&&r==="create"?"worktrees.create":null:null}function pn(e){switch(e){case"sessions":case"projects":return"session";case"timers":return"automation";case"terminals":return"terminal";case"workspaces":case"worktrees":return"workspace";case"debug-targets":case"debug-runtimes":return"debug";default:return"query"}}function _s(e){switch(pn(e)){case"session":return i("conversation.assistantCapabilityBadgeSession");case"automation":return i("conversation.assistantCapabilityBadgeAutomation");case"terminal":return i("conversation.assistantCapabilityBadgeTerminal");case"workspace":return i("conversation.assistantCapabilityBadgeWorkspace");case"debug":return i("conversation.assistantCapabilityBadgeDebug");case"query":default:return i("conversation.assistantCapabilityBadgeQuery")}}function qa(e,t){const n=[],r=He(e,"--session-id")??e.positionals[0]??null,a=He(e,"--project")??He(e,"--project-id");return e.mode==="help"?(S(n,i("conversation.assistantCliLabelScope"),e.group??i("conversation.assistantCliScopeRoot")),S(n,i("conversation.assistantCliLabelAction"),e.action),n):(e.group==="sessions"&&S(n,i("conversation.assistantCapabilityLabelSession"),Ie(r,null,t)),e.group==="timers"&&(S(n,i("conversation.assistantCapabilityLabelSession"),Ie(r,null,t)),S(n,i("conversation.assistantCliLabelDelay"),He(e,"--after-seconds"))),e.group==="terminals"&&S(n,i("conversation.assistantCapabilityLabelTerminal"),e.positionals[0]??null),(e.group==="workspaces"||e.group==="worktrees")&&S(n,i("conversation.assistantCapabilityLabelWorkspace"),ye(e.positionals[0]??null,null,t)),S(n,i("conversation.assistantCliLabelProject"),a),S(n,i("conversation.assistantCliLabelMessage"),He(e,"--message")),S(n,i("conversation.assistantCliLabelInput"),He(e,"--input")),n.slice(0,4))}function He(e,t){const n=e.options[t];return typeof n=="string"?n:null}function qs(e){switch(e){case"projects.sessions.start":return{kind:"session",badge:i("conversation.assistantCapabilityBadgeSession"),title:i("conversation.assistantCapabilityProjectSessionStartTitle"),summary:i("conversation.assistantCapabilitySummarySessionStart")};case"sessions.message.send":return{kind:"session",badge:i("conversation.assistantCapabilityBadgeSession"),title:i("conversation.assistantCapabilitySessionSendTitle"),summary:i("conversation.assistantCapabilitySummarySessionSend")};case"sessions.fork":return{kind:"session",badge:i("conversation.assistantCapabilityBadgeSession"),title:i("conversation.assistantCapabilitySessionForkTitle"),summary:i("conversation.assistantCapabilitySummarySessionFork")};case"timers.create":return{kind:"automation",badge:i("conversation.assistantCapabilityBadgeAutomation"),title:i("conversation.assistantCapabilityTimerCreateTitle"),summary:i("conversation.assistantCapabilitySummaryTimerCreate")};case"timers.cancel":return{kind:"automation",badge:i("conversation.assistantCapabilityBadgeAutomation"),title:i("conversation.assistantCapabilityTimerCancelTitle"),summary:i("conversation.assistantCapabilitySummaryTimerCancel")};case"terminals.input.send":return{kind:"terminal",badge:i("conversation.assistantCapabilityBadgeTerminal"),title:i("conversation.assistantCapabilityTerminalInputTitle"),summary:i("conversation.assistantCapabilitySummaryTerminalInput")};case"terminals.close":return{kind:"terminal",badge:i("conversation.assistantCapabilityBadgeTerminal"),title:i("conversation.assistantCapabilityTerminalCloseTitle"),summary:i("conversation.assistantCapabilitySummaryTerminalClose")};case"workspaces.directory.create":return{kind:"workspace",badge:i("conversation.assistantCapabilityBadgeWorkspace"),title:i("conversation.assistantCapabilityWorkspaceDirectoryCreateTitle"),summary:i("conversation.assistantCapabilitySummaryWorkspace")};case"workspaces.import":return{kind:"workspace",badge:i("conversation.assistantCapabilityBadgeWorkspace"),title:i("conversation.assistantCapabilityWorkspaceImportTitle"),summary:i("conversation.assistantCapabilitySummaryWorkspace")};case"workspaces.clone":return{kind:"workspace",badge:i("conversation.assistantCapabilityBadgeWorkspace"),title:i("conversation.assistantCapabilityWorkspaceCloneTitle"),summary:i("conversation.assistantCapabilitySummaryWorkspace")};case"workspaces.navigation-state.update":return{kind:"workspace",badge:i("conversation.assistantCapabilityBadgeWorkspace"),title:i("conversation.assistantCapabilityWorkspaceNavigationUpdateTitle"),summary:i("conversation.assistantCapabilitySummaryWorkspace")};case"workspaces.remove":return{kind:"workspace",badge:i("conversation.assistantCapabilityBadgeWorkspace"),title:i("conversation.assistantCapabilityWorkspaceRemoveTitle"),summary:i("conversation.assistantCapabilitySummaryWorkspace")};case"worktrees.create":return{kind:"workspace",badge:i("conversation.assistantCapabilityBadgeWorkspace"),title:i("conversation.assistantCapabilityWorktreeCreateTitle"),summary:i("conversation.assistantCapabilitySummaryWorktree")};case"worktrees.merge-into-parent":return{kind:"workspace",badge:i("conversation.assistantCapabilityBadgeWorkspace"),title:i("conversation.assistantCapabilityWorktreeMergeTitle"),summary:i("conversation.assistantCapabilitySummaryWorktree")};case"worktrees.cleanup":return{kind:"workspace",badge:i("conversation.assistantCapabilityBadgeWorkspace"),title:i("conversation.assistantCapabilityWorktreeCleanupTitle"),summary:i("conversation.assistantCapabilitySummaryWorktree")};case"debug-targets.run":return{kind:"debug",badge:i("conversation.assistantCapabilityBadgeDebug"),title:i("conversation.assistantCapabilityDebugRunTitle"),summary:i("conversation.assistantCapabilitySummaryDebug")};default:return e.startsWith("sessions.")||e.startsWith("projects.")?{kind:"session",badge:i("conversation.assistantCapabilityBadgeSession"),title:i("conversation.assistantCapabilitySessionReadTitle"),summary:i("conversation.assistantCapabilitySummaryRead")}:e.startsWith("timers.")?{kind:"automation",badge:i("conversation.assistantCapabilityBadgeAutomation"),title:i("conversation.assistantCapabilityAutomationReadTitle"),summary:i("conversation.assistantCapabilitySummaryRead")}:e.startsWith("terminals.")?{kind:"terminal",badge:i("conversation.assistantCapabilityBadgeTerminal"),title:i("conversation.assistantCapabilityTerminalReadTitle"),summary:i("conversation.assistantCapabilitySummaryRead")}:e.startsWith("workspaces.")||e.startsWith("worktrees.")?{kind:"workspace",badge:i("conversation.assistantCapabilityBadgeWorkspace"),title:i("conversation.assistantCapabilityWorkspaceReadTitle"),summary:i("conversation.assistantCapabilitySummaryRead")}:e.startsWith("debug-targets.")||e.startsWith("debug-runtimes.")?{kind:"debug",badge:i("conversation.assistantCapabilityBadgeDebug"),title:i("conversation.assistantCapabilityDebugReadTitle"),summary:i("conversation.assistantCapabilitySummaryRead")}:{kind:"query",badge:i("conversation.assistantCapabilityBadgeQuery"),title:i("conversation.assistantCapabilityQueryTitle"),summary:i("conversation.assistantCapabilitySummaryRead")}}}function Wa(e,t){const n=[],r=e.payload;switch(e.capability){case"projects.sessions.start":{const a=z(r,"session");S(n,i("conversation.assistantCapabilityLabelSession"),Ie(P(a,"sessionId"),P(a,"title"),t)),S(n,i("conversation.assistantCapabilityLabelProvider"),P(a,"provider"));break}case"sessions.message.send":{const a=z(r,"result");S(n,i("conversation.assistantCapabilityLabelSession"),Ie(e.targetRef.id,null,t)),S(n,i("conversation.assistantCapabilityLabelWorkspace"),Ws(e.targetRef.id,t)),S(n,i("conversation.assistantCapabilityLabelStatus"),i("conversation.assistantCapabilityStatusCompleted")),S(n,i("conversation.assistantCapabilityLabelDueAt"),Jn(P(a,"acceptedAt")??e.timestamp));break}case"sessions.fork":{const a=z(r,"session");S(n,i("conversation.assistantCapabilityLabelSession"),Ie(P(a,"sessionId"),P(a,"title"),t)),S(n,i("conversation.assistantCapabilityLabelProvider"),P(a,"provider"));break}case"timers.create":case"timers.cancel":{const a=z(r,"timer"),o=z(a,"controlSession"),l=z(o,"session");S(n,i("conversation.assistantCapabilityLabelTimer"),P(a,"title")),S(n,i("conversation.assistantCapabilityLabelWorkspace"),ye(P(l,"workspaceId"),null,t)),S(n,i("conversation.assistantCapabilityLabelSession"),Ie(P(a,"targetSessionId"),null,t)),S(n,i("conversation.assistantCapabilityLabelDueAt"),Jn(P(a,"dueAt"))),S(n,i("conversation.assistantCapabilityLabelStatus"),za(P(a,"status")));break}case"terminals.input.send":case"terminals.close":S(n,i("conversation.assistantCapabilityLabelTerminal"),e.targetRef.id);break;case"workspaces.directory.create":{const a=z(r,"result");S(n,i("conversation.assistantCapabilityLabelPath"),P(a,"path"));break}case"workspaces.import":case"workspaces.clone":case"workspaces.remove":{const a=z(r,"workspace");S(n,i("conversation.assistantCapabilityLabelWorkspace"),ye(P(a,"id")??e.targetRef.id,P(a,"name"),t)),S(n,i("conversation.assistantCapabilityLabelPath"),P(a,"path"));break}case"workspaces.navigation-state.update":{const a=z(r,"state");S(n,i("conversation.assistantCapabilityLabelWorkspace"),ye(P(a,"workspaceId")??e.targetRef.id,null,t)),S(n,i("conversation.assistantCapabilityLabelStatus"),P(a,"collapsed")==="true"?i("conversation.assistantCapabilityNavigationCollapsed"):i("conversation.assistantCapabilityNavigationExpanded"));break}case"worktrees.create":{const a=z(r,"result"),o=z(a,"workspace");S(n,i("conversation.assistantCapabilityLabelWorkspace"),ye(P(o,"id")??e.targetRef.id,P(o,"name"),t)),S(n,i("conversation.assistantCapabilityLabelBranch"),P(a,"branchName"));break}case"worktrees.merge-into-parent":case"worktrees.cleanup":{const a=z(r,"result");S(n,i("conversation.assistantCapabilityLabelWorkspace"),ye(e.targetRef.id,null,t)),S(n,i("conversation.assistantCapabilityLabelStatus"),P(a,"status"));break}case"debug-targets.run":{const a=z(r,"result");S(n,i("conversation.assistantCapabilityLabelDebugTarget"),e.targetRef.id),S(n,i("conversation.assistantCapabilityLabelRuntime"),P(a,"runtimeId"));break}}return Fa(n,e,t),n.slice(0,4)}function Fa(e,t,n){t.targetRef.kind==="session"&&(S(e,i("conversation.assistantCapabilityLabelSession"),Ie(t.targetRef.id,null,n)),S(e,i("conversation.assistantCapabilityLabelWorkspace"),Ws(t.targetRef.id,n))),(t.targetRef.kind==="workspace"||t.targetRef.kind==="worktree")&&S(e,i("conversation.assistantCapabilityLabelWorkspace"),ye(t.targetRef.id,null,n)),t.targetRef.kind==="terminal"&&S(e,i("conversation.assistantCapabilityLabelTerminal"),t.targetRef.id),t.targetRef.kind==="timer"&&S(e,i("conversation.assistantCapabilityLabelTimer"),t.targetRef.id);const r=Ua(t.payload);r!==null&&S(e,i("conversation.assistantCapabilityLabelCount"),String(r))}function S(e,t,n){const r=n==null?void 0:n.trim();r&&(e.some(a=>a.label===t)||e.push({label:t,value:r}))}function Ie(e,t,n){const r=t==null?void 0:t.trim();if(r)return r;const a=e==null?void 0:e.trim();return a?n.sessionNamesById.get(a)??a:null}function ye(e,t,n){const r=t==null?void 0:t.trim();if(r)return r;const a=e==null?void 0:e.trim();return a?n.workspaceNamesById.get(a)??a:null}function Ws(e,t){const n=e==null?void 0:e.trim();return n?ye(t.sessionWorkspaceIdsById.get(n)??null,null,t):null}function Ua(e){const t=Xt(e,"items");if(t)return t.length;const n=z(e,"page"),r=Xt(n,"items");if(r)return r.length;const a=z(e,"history"),o=Xt(a,"items");return o?o.length:null}function Jn(e){const t=e==null?void 0:e.trim();if(!t)return null;const n=Date.parse(t);return Number.isFinite(n)?new Intl.DateTimeFormat(void 0,{month:"2-digit",day:"2-digit",hour:"2-digit",minute:"2-digit"}).format(new Date(n)):t}function za(e){switch(e){case"active":return i("conversation.assistantCapabilityStatusActive");case"completed":return i("conversation.assistantCapabilityStatusCompleted");case"cancelled":return i("conversation.assistantCapabilityStatusCancelled");case"failed":return i("conversation.assistantCapabilityStatusFailed");default:return e}}function Da({kind:e}){switch(e){case"session":return s.jsx("svg",{viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"1.8","aria-hidden":"true",children:s.jsx("path",{d:"M5 7.5A2.5 2.5 0 0 1 7.5 5h9A2.5 2.5 0 0 1 19 7.5v5A2.5 2.5 0 0 1 16.5 15H11l-4 4v-4H7.5A2.5 2.5 0 0 1 5 12.5z"})});case"automation":return s.jsxs("svg",{viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"1.8","aria-hidden":"true",children:[s.jsx("circle",{cx:"12",cy:"12",r:"7.5"}),s.jsx("path",{d:"M12 8.5v4.2l2.8 1.8"})]});case"terminal":return s.jsxs("svg",{viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"1.8","aria-hidden":"true",children:[s.jsx("path",{d:"m7 8 3.5 3.5L7 15"}),s.jsx("path",{d:"M13 15h4"}),s.jsx("rect",{x:"4.5",y:"5.5",width:"15",height:"13",rx:"2.5"})]});case"workspace":return s.jsx("svg",{viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"1.8","aria-hidden":"true",children:s.jsx("path",{d:"M4.5 8.5A2.5 2.5 0 0 1 7 6h3l1.5 1.5H17A2.5 2.5 0 0 1 19.5 10v6A2.5 2.5 0 0 1 17 18.5H7A2.5 2.5 0 0 1 4.5 16z"})});case"debug":return s.jsxs("svg",{viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"1.8","aria-hidden":"true",children:[s.jsx("path",{d:"M9 4.5h6"}),s.jsx("path",{d:"M10 8h4a4 4 0 0 1 4 4v1a6 6 0 0 1-12 0v-1a4 4 0 0 1 4-4Z"}),s.jsx("path",{d:"M4.5 11h3M16.5 11h3M5.5 7.5l2 1.5M18.5 7.5l-2 1.5"})]});case"query":default:return s.jsxs("svg",{viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"1.8","aria-hidden":"true",children:[s.jsx("circle",{cx:"11",cy:"11",r:"5.5"}),s.jsx("path",{d:"m16 16 3.5 3.5"})]})}}function $a(e){if(e.name==="apply_patch"){const o=$n(e.input);if(o)return o;const l=$i(e.output||e.error||""),u=Di(e.input,l);return u?$n(u):null}if(e.name!=="Write"&&e.name!=="Edit"&&e.name!=="MultiEdit")return null;const t=mn(e.input);if(!t)return null;const n=Ae(t,"file_path")||Ae(t,"path");if(!n)return null;if(e.name==="Write"){const o=Ae(t,"content"),l=o.length>0?o.split(/\r?\n/):[];return{files:[{path:n,nextPath:null,action:"add",additions:l.length,deletions:0,statsKnown:!0,lines:l.map((u,p)=>({kind:"add",text:`+${u}`,oldLineNumber:null,newLineNumber:p+1}))}],totalAdditions:l.length,totalDeletions:0}}if(e.name==="Edit"){const o=Ae(t,"old_string").split(/\r?\n/),l=Ae(t,"new_string").split(/\r?\n/);return Yn(n,[{oldLines:o,newLines:l}])}const a=(Array.isArray(t.edits)?t.edits:[]).map(o=>{if(!o||typeof o!="object"||Array.isArray(o))return null;const l=o;return{oldLines:Ae(l,"old_string").split(/\r?\n/),newLines:Ae(l,"new_string").split(/\r?\n/)}}).filter(o=>!!o);return a.length>0?Yn(n,a):null}function Yn(e,t){const n=[];let r=0,a=0;return t.forEach((o,l)=>{n.push({kind:"hunk",text:`@@ -1,${o.oldLines.length} +1,${o.newLines.length} @@`,oldLineNumber:null,newLineNumber:null}),o.oldLines.forEach((u,p)=>{u.length===0&&o.oldLines.length===1&&o.newLines.length>0||(a+=1,n.push({kind:"remove",text:`-${u}`,oldLineNumber:p+1,newLineNumber:null}))}),o.newLines.forEach((u,p)=>{u.length===0&&o.newLines.length===1&&o.oldLines.length>0||(r+=1,n.push({kind:"add",text:`+${u}`,oldLineNumber:null,newLineNumber:p+1}))}),l<t.length-1&&n.push({kind:"meta",text:"***",oldLineNumber:null,newLineNumber:null})}),{files:[{path:e,nextPath:null,action:"update",additions:r,deletions:a,statsKnown:!0,lines:n}],totalAdditions:r,totalDeletions:a}}function Ha(e){const t=mn(e.input),n=t&&typeof t.command=="string"?t.command.trim():"";if(n)return`${i("conversation.toolPreviewCommand")}:${n}`;if(e.name==="read_thread_terminal")return i("conversation.toolPreviewTerminal");const r=e.input||e.error||e.output||i("conversation.toolResultEmpty");return r.length>60?`${r.slice(0,60)}...`:r}function Ka(e){var o;const t=e.map(l=>({message:l,tool:Es(l)})).filter(l=>!!l.tool);if(t.length===0)return null;const n={...t[0].tool};let r=!1,a=!1;for(const{message:l,tool:u}of t)l.kind==="tool_call"&&(r=!0,!n.input&&u.input&&(n.input=u.input)),l.kind==="tool_result"&&(a=!0,n.output=u.output,n.error=u.error,n.status=u.status,!n.input&&u.input&&(n.input=u.input)),!n.name&&u.name&&(n.name=u.name);return{key:t.map(({message:l})=>l.id).join(":"),tool:n,hasRequest:r,hasResult:a,updatedAt:((o=t.at(-1))==null?void 0:o.message.timestamp)??t[0].message.timestamp}}function Va(e){const t=new Map;for(const n of e){const r=Es(n);if(!r)continue;const a=t.get(r.callId);if(a){a.messages.push(n);continue}t.set(r.callId,{messages:[n],firstSequence:n.sequence})}return Array.from(t.values()).sort((n,r)=>n.firstSequence-r.firstSequence).map(n=>Ka(n.messages)).filter(n=>!!n)}function Ga(e){const t=[];for(let n=0;n<e.length;n+=1){const r=e[n];if(Za(e,n))continue;if(!Ot(r)){t.push({type:"message",key:r.id,message:r});continue}const a=[r];let o=n+1;for(;o<e.length;){const u=e[o];if(!Ot(u))break;a.push(u),o+=1}const l=Va(a);if(l.length===0){t.push({type:"message",key:r.id,message:r}),n=o-1;continue}l.forEach(u=>{t.push({type:"tool_group",key:u.key,group:u})}),n=o-1}return t}function Za(e,t){const n=e[t];if(!n||Ps(n.content)===null)return!1;for(let r=t-1;r>=0;r-=1){const a=e[r];if(!(!a||Ot(a)))return a.role==="user"}return!1}function Qa(e,t){if(!zr(null,e))return!1;const n=t.trim();return/AGENTS\.md instructions for/i.test(n)&&/<INSTRUCTIONS>/i.test(n)&&/<\/INSTRUCTIONS>/i.test(n)}function Ja(e,t){if(e!=="claude-code")return!1;const n=t.trim();return/Base directory for this skill:/i.test(n)&&/^#\s+.+/im.test(n)&&/\bARGUMENTS:/i.test(n)}function Ya(e,t){if(e==="skill_context"){const r=t.split(/\r?\n/).map(a=>a.trim()).find(a=>/^#\s+/.test(a));if(r)return r.replace(/^#+\s*/,"")}const n=t.split(/\r?\n/).map(r=>r.trim()).find(Boolean);return n?n.replace(/^#+\s*/,""):i("conversation.rulesMessageTitle")}function Xa(e,t){const n=new Set;if(t!=="kimi")return n;for(const r of e){if(r.role==="system"&&r.kind==="text"){n.add(r.id);continue}break}return n}function ft(e){var t;return typeof e=="string"||typeof e=="number"?String(e):Array.isArray(e)?e.map(n=>ft(n)).join(""):e&&typeof e=="object"&&"props"in e?ft(((t=e.props)==null?void 0:t.children)??""):""}function eo(e){const t=Array.isArray(e)?e[0]:e;if(!d.isValidElement(t))return null;const n=t.props,r=typeof n.className=="string"?n.className:"",a=/language-([^\s]+)/.exec(r);return{content:ft(n.children).replace(/\n$/,""),codeClassName:r||void 0,language:(a==null?void 0:a[1])??null}}function to(e){if(typeof document>"u"||typeof document.execCommand!="function")return!1;const t=document.createElement("textarea");t.value=e,t.setAttribute("readonly","true"),t.style.position="fixed",t.style.top="-9999px",t.style.left="-9999px",t.style.opacity="0",document.body.appendChild(t),t.focus(),t.select();try{return document.execCommand("copy")}catch{return!1}finally{document.body.removeChild(t)}}async function fn(e,t){var n;if(!(t.isDesktop&&(await t.bridge.writeClipboardText(e)).ok)){if(typeof navigator<"u"&&((n=navigator.clipboard)!=null&&n.writeText))try{await navigator.clipboard.writeText(e);return}catch{}if(!to(e))throw new Error(i("conversation.copyContentFailed"))}}function no({className:e,children:t,onCopy:n}){const r=d.useContext(Is),a=ft(t).trim();if(r||!a)return s.jsx("code",{className:e||void 0,children:t});function o(l){l.key!=="Enter"&&l.key!==" "||(l.preventDefault(),n(a))}return s.jsx("code",{className:[e,"markdown-inline-copy"].filter(Boolean).join(" "),role:"button",tabIndex:0,"aria-label":i("conversation.copyAction"),onClick:()=>n(a),onKeyDown:o,children:t})}function so({href:e,children:t,className:n,onInteract:r}){const a=ft(t).trim()||(e?dn(e).trim():"");return s.jsx(Is.Provider,{value:!0,children:s.jsx("a",{href:e,className:[n,"markdown-interactive-link"].filter(Boolean).join(" "),onClick:o=>{o.preventDefault(),r(e,a)},children:t})})}function Fs({language:e,codeClassName:t,content:n}){const{showToast:r}=xt(),a=vt(),o=(e==null?void 0:e.trim().toLowerCase())??null,l=o==="text",u=o||"code";async function p(){try{await fn(n,a),r({title:i("conversation.copyContentSuccess"),tone:"success"})}catch(y){r({title:y instanceof Error?y.message:i("conversation.copyContentFailed"),tone:"error"})}}return s.jsxs("div",{className:`code-block${l?" text-code-block":""}`,children:[s.jsxs("div",{className:"code-header",children:[s.jsx("span",{className:"code-header-label",children:u}),s.jsx("button",{className:"code-copy-button",type:"button",onClick:()=>void p(),children:i("conversation.copyAction")})]}),s.jsx("pre",{className:t,children:s.jsx("code",{children:n})})]})}function at({content:e,className:t}){const{showToast:n}=xt(),r=vt(),{navigationGroups:a,currentWorkspaceId:o,revealWorkspaceFile:l}=ds(),u=d.useMemo(()=>{var m;return((m=a.find(x=>x.workspace.id===o))==null?void 0:m.workspace)??null},[o,a]);async function p(m){if(m.trim())try{await fn(m,r),n({title:i("conversation.copyContentSuccess"),tone:"success"})}catch(x){n({title:x instanceof Error?x.message:i("conversation.copyContentFailed"),tone:"error"})}}function y(m,x){const v=m&&(u!=null&&u.path)?wa(m,u.path):null;v&&l({workspaceId:(u==null?void 0:u.id)??o,filePath:v,openViewer:!1})||p(x||(m?dn(m).trim():""))}return s.jsx("div",{className:t,children:s.jsx(Vr,{remarkPlugins:[Gr],components:{p:({node:m,...x})=>s.jsx("p",{...x}),a(m){return s.jsx(so,{href:typeof m.href=="string"?m.href:void 0,className:typeof m.className=="string"?m.className:void 0,onInteract:y,children:m.children})},pre(m){const x=eo(m.children);return x?s.jsx(Fs,{language:x.language,codeClassName:x.codeClassName,content:x.content}):s.jsx("pre",{children:m.children})},code(m){const x=typeof m.className=="string"?m.className:"";return s.jsx(no,{className:x||void 0,onCopy:v=>{p(v)},children:m.children})}},children:e})})}function Xn(e,t){return e.kind!=="image"||!(t!=null&&t.contentBase64)||t.mimeType!==e.mimeType?null:`data:${t.mimeType};base64,${t.contentBase64}`}function ro(e){return typeof e!="number"||!Number.isFinite(e)||e<0?null:e<1024?`${e} B`:e<1024*1024?`${(e/1024).toFixed(1)} KB`:`${(e/(1024*1024)).toFixed(1)} MB`}function Mt({sessionId:e,attachmentPayloads:t=[],attachments:n=[],inlineImages:r=[]}){return s.jsx(io,{sessionId:e,attachments:n,attachmentPayloads:t,inlineImages:r})}function io({sessionId:e,attachmentPayloads:t=[],attachments:n=[],inlineImages:r=[]}){const[a,o]=d.useState({}),[l,u]=d.useState(null),p=d.useMemo(()=>n.map((v,j)=>{const b=Xn(v,t==null?void 0:t[j]);if(b)return{id:v.id,kind:v.kind,fileName:v.fileName,fileSize:v.fileSize,url:b,status:"ready"};const h=a[v.id];return{id:v.id,kind:v.kind,fileName:v.fileName,fileSize:v.fileSize,url:(h==null?void 0:h.url)??null,status:(h==null?void 0:h.status)??(e?"loading":"error")}}),[t,n,a,e]),y=d.useMemo(()=>r.map((v,j)=>({id:`inline-image-${j}`,kind:"image",fileName:v.altText||`${i("conversation.imageAttachmentLabel")} ${j+1}`,fileSize:v.estimatedBytes,url:v.url,status:"ready"})),[r]),m=d.useMemo(()=>[...y,...p],[p,y]),x=m.find(v=>v.id===l)??null;return d.useEffect(()=>{if(!l)return;function v(j){j.key==="Escape"&&u(null)}return window.addEventListener("keydown",v),()=>window.removeEventListener("keydown",v)},[l]),d.useEffect(()=>{const v=n.filter((h,C)=>!Xn(h,t==null?void 0:t[C]));if(!e||v.length===0){o({});return}let j=!1;const b=[];return o(Object.fromEntries(v.map(h=>[h.id,{id:h.id,kind:h.kind,fileName:h.fileName,fileSize:h.fileSize,url:null,status:"loading"}]))),Promise.all(v.map(async h=>{try{const C=await Dr(e,h.id),T=URL.createObjectURL(C);return b.push(T),{id:h.id,kind:h.kind,fileName:h.fileName,fileSize:h.fileSize,url:T,status:"ready"}}catch{return{id:h.id,kind:h.kind,fileName:h.fileName,fileSize:h.fileSize,url:null,status:"error"}}})).then(h=>{if(j){b.forEach(C=>URL.revokeObjectURL(C));return}o(Object.fromEntries(h.map(C=>[C.id,C])))}),()=>{j=!0,b.forEach(h=>URL.revokeObjectURL(h))}},[t,n,e]),m.length===0?null:s.jsxs(s.Fragment,{children:[s.jsx("div",{className:"message-attachments",children:m.map(v=>{const j=v.kind==="image",b=v.status==="loading"?i("conversation.attachmentPreviewLoading"):v.status==="error"?i("conversation.attachmentPreviewUnavailable"):j?i("conversation.attachmentPreviewOpen"):i("conversation.attachmentDownload"),h=ro(v.fileSize),C=s.jsx("div",{className:"message-attachment-card",children:j?v.url?s.jsx("img",{className:"message-attachment-thumbnail",src:v.url,alt:v.fileName||i("conversation.attachmentPreviewAlt"),loading:"lazy"}):s.jsx("div",{className:"message-attachment-placeholder","aria-hidden":"true",children:v.status==="loading"?i("conversation.attachmentPreviewLoading"):i("conversation.attachmentPreviewUnavailable")}):s.jsxs("div",{className:"message-attachment-file-card",children:[s.jsx("div",{className:"message-attachment-file-icon","aria-hidden":"true",children:s.jsxs("svg",{width:"20",height:"20",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"1.8",children:[s.jsx("path",{d:"M14 2H7a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h10a2 2 0 0 0 2-2V7z"}),s.jsx("path",{d:"M14 2v5h5"}),s.jsx("path",{d:"M9 13h6"}),s.jsx("path",{d:"M9 17h6"})]})}),s.jsxs("div",{className:"message-attachment-file-meta",children:[s.jsx("strong",{title:v.fileName,children:v.fileName}),s.jsx("span",{children:h??i("conversation.fileAttachmentLabel")})]})]})});return!j&&v.url?s.jsx("a",{className:"message-attachment-button",href:v.url,download:v.fileName,"aria-label":`${v.fileName} - ${b}`,title:b,children:C},v.id):s.jsx("button",{type:"button",className:"message-attachment-button",onClick:()=>j&&v.url&&u(v.id),disabled:!v.url,"aria-label":`${v.fileName} - ${b}`,title:b,children:C},v.id)})}),s.jsx(us,{open:!!(x!=null&&x.url),title:i("conversation.imagePreviewTitle"),description:x==null?void 0:x.fileName,size:"xwide",layout:"viewer",className:"message-image-modal",bodyClassName:"message-image-modal-body",onClose:()=>u(null),children:x!=null&&x.url?s.jsxs(s.Fragment,{children:[s.jsx("div",{className:"message-image-modal-stage",children:s.jsx("img",{className:"message-image-modal-image",src:x.url,alt:x.fileName||i("conversation.attachmentPreviewAlt")})}),s.jsx("p",{className:"message-image-modal-hint",children:i("conversation.imagePreviewHint")})]}):null})]})}function ao(){return s.jsx("div",{className:"timeline-skeleton","aria-hidden":"true",children:Array.from({length:3},(e,t)=>s.jsxs("article",{className:`timeline-skeleton-item ${t%2===0?"assistant":"user"}`,children:[s.jsx("div",{className:"timeline-skeleton-avatar"}),s.jsxs("div",{className:"timeline-skeleton-bubble",children:[s.jsx("span",{className:"timeline-skeleton-line long"}),s.jsx("span",{className:"timeline-skeleton-line medium"}),s.jsx("span",{className:"timeline-skeleton-line short"})]})]},t))})}function oo({tool:e,preview:t}){const[n,r]=d.useState(null),a=n===null?null:t.files[n]??null;return d.useEffect(()=>{if(n===null)return;function o(l){l.key==="Escape"&&r(null)}return window.addEventListener("keydown",o),()=>window.removeEventListener("keydown",o)},[n]),s.jsxs(s.Fragment,{children:[s.jsx("div",{className:"tool-call-item apply-patch-item",children:t.files.map((o,l)=>s.jsxs("button",{type:"button",className:"apply-patch-summary-row",onClick:()=>r(l),children:[s.jsx("span",{className:"apply-patch-summary-label",children:ts(o.action)}),s.jsx("span",{className:"apply-patch-summary-file",title:en(o),children:Hi(o.nextPath??o.path)}),ss(o)]},ns(o,l)))}),s.jsx(us,{open:a!==null,title:i("conversation.applyPatchDialogTitle"),description:i("conversation.applyPatchDialogDescription"),size:"full",layout:"viewer",className:"apply-patch-modal",bodyClassName:"apply-patch-modal-body",onClose:()=>r(null),children:a?s.jsxs(s.Fragment,{children:[s.jsx("div",{className:"apply-patch-modal-totals",children:fo(a)}),s.jsxs("section",{className:"apply-patch-file-panel",children:[s.jsxs("div",{className:"apply-patch-file-panel-header",children:[s.jsxs("div",{className:"apply-patch-file-panel-title",children:[s.jsx("span",{className:"apply-patch-summary-label",children:ts(a.action)}),s.jsx("strong",{children:en(a)})]}),ss(a)]}),s.jsx("div",{className:"apply-patch-diff-view",children:s.jsx("div",{className:"apply-patch-diff-scroll",children:a.lines.map((o,l)=>s.jsxs("div",{className:`apply-patch-diff-line ${ho(o.kind)}`,children:[s.jsx("span",{className:"apply-patch-line-number",children:rs(o.oldLineNumber)}),s.jsx("span",{className:"apply-patch-line-number",children:rs(o.newLineNumber)}),s.jsx("span",{className:"apply-patch-line-content",children:o.text||" "})]},`${en(a)}:${l}`))})})]},ns(a,n??0)),e.error?s.jsxs("section",{className:"apply-patch-error-panel",children:[s.jsx("div",{className:"tool-call-section-label",children:i("conversation.toolResultLabel")}),s.jsx("pre",{className:"tool-call-error",children:e.error})]}):null]}):null})]})}function lo({group:e}){const[t,n]=d.useState(!1),{navigationGroups:r}=ds(),{tool:a,hasRequest:o,hasResult:l}=e,u=Na(a.name),p=d.useMemo(()=>Ra(r),[r]),y=d.useMemo(()=>Ma(a,p),[p,a]),m=d.useMemo(()=>Aa(a,p),[p,a]),x=d.useMemo(()=>Jr(a,null,e.updatedAt),[e.updatedAt,a]),v=d.useMemo(()=>$a(a),[a.input,a.name]);if(v)return s.jsx(oo,{tool:a,preview:v});if(y)return s.jsx(es,{tool:a,snapshot:y,expanded:t,hasRequest:o,hasResult:l,onToggleExpanded:()=>{n(h=>!h)}});if(m)return s.jsx(es,{tool:a,snapshot:m,expanded:t,hasRequest:o,hasResult:l,onToggleExpanded:()=>{n(h=>!h)}});if(x)return s.jsx(co,{tool:a,snapshot:x,expanded:t,hasRequest:o,hasResult:l,onToggleExpanded:()=>{n(h=>!h)}});const j=Ha(a),b=!!(a.input||a.output||a.error);return s.jsxs("div",{className:`tool-call-item ${l?"tool-result":""}`,children:[s.jsxs("button",{type:"button",className:"tool-call-header",onClick:()=>b&&n(h=>!h),children:[s.jsxs("div",{className:"tool-call-info",children:[s.jsx("span",{className:"tool-call-name",children:u}),s.jsx("span",{className:"tool-call-input-preview",children:j})]}),s.jsx("div",{className:"tool-call-meta",children:b&&s.jsx("span",{className:`tool-call-toggle ${t?"expanded":""}`,children:s.jsx("svg",{width:"12",height:"12",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",children:s.jsx("polyline",{points:"6 9 12 15 18 9"})})})})]}),t&&b&&s.jsxs("div",{className:"tool-call-output",children:[o&&a.input&&s.jsxs("div",{className:"tool-call-section",children:[s.jsx("div",{className:"tool-call-section-label",children:i("conversation.toolInputLabel")}),s.jsx("pre",{children:a.input})]}),(l||a.error||a.output)&&s.jsxs("div",{className:"tool-call-section",children:[s.jsx("div",{className:"tool-call-section-label",children:i("conversation.toolResultLabel")}),s.jsx("pre",{className:a.error?"tool-call-error":void 0,children:a.error||a.output||i("conversation.toolResultEmpty")})]})]})]})}function es({tool:e,snapshot:t,expanded:n,hasRequest:r,hasResult:a,onToggleExpanded:o}){const l=n?i("conversation.assistantCapabilityRawCollapse"):i("conversation.assistantCapabilityRawExpand");return s.jsxs("div",{className:"tool-call-item assistant-capability-item","data-kind":t.kind,children:[s.jsxs("div",{className:"assistant-capability-header",children:[s.jsxs("div",{className:"assistant-capability-heading",children:[s.jsx("span",{className:"assistant-capability-icon",children:s.jsx(Da,{kind:t.kind})}),s.jsxs("div",{className:"assistant-capability-heading-main",children:[s.jsx("span",{className:"assistant-capability-badge",children:t.badge}),s.jsx("strong",{children:t.title}),s.jsx("span",{className:"assistant-capability-summary",children:t.summary})]})]}),s.jsx("button",{type:"button",className:"task-tool-raw-toggle",onClick:o,children:l})]}),t.rows.length>0?s.jsx("div",{className:"assistant-capability-list",children:t.rows.map(u=>s.jsxs("div",{className:"assistant-capability-row",children:[s.jsx("span",{className:"assistant-capability-row-label",children:u.label}),s.jsx("span",{className:"assistant-capability-row-value",children:u.value})]},u.label))}):null,n?s.jsxs("div",{className:"tool-call-output",children:[r&&e.input?s.jsxs("div",{className:"tool-call-section",children:[s.jsx("div",{className:"tool-call-section-label",children:i("conversation.toolInputLabel")}),s.jsx("pre",{children:e.input})]}):null,a||e.error||e.output?s.jsxs("div",{className:"tool-call-section",children:[s.jsx("div",{className:"tool-call-section-label",children:i("conversation.toolResultLabel")}),s.jsx("pre",{className:e.error?"tool-call-error":void 0,children:e.error||e.output||i("conversation.toolResultEmpty")})]}):null]}):null]})}function co({tool:e,snapshot:t,expanded:n,hasRequest:r,hasResult:a,onToggleExpanded:o}){const l=fs(t.items),u=n?i("conversation.taskCardRawCollapse"):i("conversation.taskCardRawExpand");return s.jsxs("div",{className:"tool-call-item task-tool-item",children:[s.jsxs("div",{className:"task-tool-header",children:[s.jsxs("div",{className:"task-tool-heading",children:[s.jsx("span",{className:"task-tool-badge",children:t.source==="plan"?i("conversation.taskCardPlanTitle"):i("conversation.taskCardTodoTitle")}),s.jsxs("div",{className:"task-tool-heading-main",children:[s.jsx("strong",{children:uo(t,e.name)}),s.jsx("span",{className:"task-tool-summary-text",children:mo(t.items,l)})]})]}),s.jsx("button",{type:"button",className:"task-tool-raw-toggle",onClick:o,children:u})]}),s.jsx("ol",{className:"task-tool-list",children:t.items.map(p=>s.jsxs("li",{className:"task-tool-list-item","data-status":p.status,children:[s.jsx("span",{className:"task-tool-item-indicator","data-status":p.status,"aria-hidden":"true"}),s.jsx("strong",{className:"task-tool-item-title",children:p.title}),p.detail?s.jsx("span",{className:"task-tool-item-detail",children:p.detail}):null,s.jsx("span",{className:"task-tool-item-status",children:po(p.status)})]},p.id))}),n?s.jsxs("div",{className:"tool-call-output",children:[r&&e.input?s.jsxs("div",{className:"tool-call-section",children:[s.jsx("div",{className:"tool-call-section-label",children:i("conversation.toolInputLabel")}),s.jsx("pre",{children:e.input})]}):null,a||e.error||e.output?s.jsxs("div",{className:"tool-call-section",children:[s.jsx("div",{className:"tool-call-section-label",children:i("conversation.toolResultLabel")}),s.jsx("pre",{className:e.error?"tool-call-error":void 0,children:e.error||e.output||i("conversation.toolResultEmpty")})]}):null]}):null]})}function uo(e,t){if(e.source==="plan")return i("conversation.taskCardPlanUpdated");const n=t.trim().toLowerCase();return n==="taskcreate"||n==="todowrite"||n==="todoread"?i("conversation.taskCardTodoUpdated"):n.startsWith("task")?i("conversation.taskCardTodoUpdated"):i("conversation.taskCardTodoUpdated")}function mo(e,t){const n=[i("conversation.taskCardSummaryTotal",{count:e.length})];return t.in_progress>0&&n.push(i("conversation.taskCardSummaryInProgress",{count:t.in_progress})),t.pending>0&&n.push(i("conversation.taskCardSummaryPending",{count:t.pending})),t.completed>0&&n.push(i("conversation.taskCardSummaryCompleted",{count:t.completed})),t.failed>0&&n.push(i("conversation.taskCardSummaryFailed",{count:t.failed})),n.join(" / ")}function po(e){switch(e){case"in_progress":return i("conversation.taskProgressStatusInProgress");case"completed":return i("conversation.taskProgressStatusCompleted");case"failed":return i("conversation.taskProgressStatusFailed");case"cancelled":return i("conversation.taskProgressStatusCancelled");case"pending":default:return i("conversation.taskProgressStatusPending")}}function ts(e){return e==="add"?i("conversation.applyPatchAddedLabel"):e==="delete"?i("conversation.applyPatchDeletedLabel"):i("conversation.applyPatchEditedLabel")}function en(e){return e.nextPath&&e.nextPath!==e.path?`${e.path} -> ${e.nextPath}`:e.nextPath??e.path}function ns(e,t){return`${e.path}:${e.nextPath??""}:${t}`}function ss(e){return e.statsKnown?s.jsxs("span",{className:"apply-patch-summary-stats",children:[s.jsxs("span",{className:"apply-patch-summary-added",children:["+",e.additions]}),s.jsxs("span",{className:"apply-patch-summary-removed",children:["-",e.deletions]})]}):s.jsx("span",{className:"apply-patch-summary-stats",children:s.jsx("span",{className:"apply-patch-summary-edited",children:i("conversation.applyPatchEditedStat")})})}function fo(e){return e.statsKnown?s.jsxs(s.Fragment,{children:[s.jsxs("span",{className:"apply-patch-stat-pill positive",children:[i("conversation.applyPatchAddedStat")," +",e.additions]}),s.jsxs("span",{className:"apply-patch-stat-pill negative",children:[i("conversation.applyPatchRemovedStat")," -",e.deletions]})]}):s.jsx("span",{className:"apply-patch-stat-pill neutral",children:i("conversation.applyPatchEditedStat")})}function ho(e){return e==="add"?"is-added":e==="remove"?"is-removed":e==="hunk"?"is-hunk":e==="meta"?"is-meta":"is-context"}function rs(e){return e===null||e<=0?"":String(e)}function go(e){return new Date(e).toLocaleTimeString([],{hour:"2-digit",minute:"2-digit"})}function Us({timestamp:e,leading:t,children:n}){return s.jsxs("div",{className:"user-message-footer",children:[s.jsx("div",{className:"user-message-footer-leading",children:t}),s.jsxs("div",{className:"user-message-footer-trailing",children:[s.jsx("time",{className:"message-time",dateTime:e,children:go(e)}),n]})]})}function Le({text:e,canCopy:t=!0,canFork:n=!1,compact:r=!1,onFork:a}){const{showToast:o}=xt(),l=vt(),[u,p]=d.useState(!1),[y,m]=d.useState(!1),x=e.trim().length>0,v=t&&x;async function j(){if(!(!v||u)){p(!0);try{await fn(e,l),o({title:i("conversation.copyContentSuccess"),tone:"success"})}catch(h){o({title:h instanceof Error?h.message:i("conversation.copyContentFailed"),tone:"error"})}finally{p(!1)}}}async function b(){if(!(!a||y)){m(!0);try{await a()}finally{m(!1)}}}return!v&&!n?null:s.jsxs("div",{className:r?"message-metadata-bar compact":"message-metadata-bar",children:[v?s.jsx("button",{type:"button",className:"message-metadata-action","aria-label":i("conversation.copyAction"),title:i("conversation.copyAction"),onClick:()=>{j()},disabled:u,children:s.jsx(ai,{})}):null,n?s.jsx("button",{type:"button",className:"message-metadata-action","aria-label":y?i("conversation.forkingAction"):i("conversation.forkFromHereAction"),title:y?i("conversation.forkingAction"):i("conversation.forkFromHereAction"),onClick:()=>{b()},disabled:y,children:s.jsx(oi,{})}):null]})}function vo({message:e,kind:t,tone:n,actionState:r,onRetry:a,onForkMessage:o}){const[l,u]=d.useState(!1),p=Ya(t,e.content),y=n==="user-message",m=t==="system_prompt"?i("conversation.systemPromptTitle"):t==="skill_context"?i("conversation.skillContextTitle"):i("conversation.rulesMessageTitle"),x=t==="system_prompt"?i("conversation.systemPromptHint"):t==="skill_context"?i("conversation.skillContextHint"):i("conversation.rulesMessageHint"),v=l?t==="system_prompt"?i("conversation.systemPromptCollapse"):t==="skill_context"?i("conversation.skillContextCollapse"):i("conversation.rulesMessageCollapse"):t==="system_prompt"?i("conversation.systemPromptExpand"):t==="skill_context"?i("conversation.skillContextExpand"):i("conversation.rulesMessageExpand");return s.jsx("article",{className:`message-item ${n} rules-message-row`,"data-message-id":e.id,children:s.jsxs("div",{className:"message-content-wrapper",children:[s.jsxs("div",{className:"rules-message-card",children:[s.jsxs("button",{type:"button",className:"rules-message-toggle","aria-expanded":l,onClick:()=>u(j=>!j),children:[s.jsxs("div",{className:"rules-message-heading",children:[s.jsx("span",{className:"rules-message-badge",children:m}),s.jsx("span",{className:"rules-message-summary",children:p})]}),s.jsx("span",{className:"rules-message-action",children:v})]}),s.jsx("p",{className:"rules-message-hint",children:x}),l&&s.jsx("div",{className:"rules-message-body",children:s.jsx(at,{content:e.content,className:"message-text message-content markdown-content"})}),y?s.jsx(Us,{timestamp:e.timestamp,children:s.jsx(Le,{text:e.content,canCopy:r.canCopy,canFork:r.canFork&&!!(o&&e.deliveryState==="sent"),compact:!0,onFork:o?()=>o(e):null})}):s.jsx(Le,{text:e.content,canCopy:r.canCopy,canFork:r.canFork&&!!(o&&e.deliveryState==="sent"),onFork:o?()=>o(e):null})]}),e.deliveryState==="failed"&&e.clientRequestId&&s.jsx("button",{className:"retry-button",type:"button",onClick:()=>a(e.clientRequestId),children:i("conversation.resendButton")})]})})}function xo({message:e,provider:t,interruptedSource:n=null,foldedPromptKind:r=null,actionState:a,onRetry:o,onForkMessage:l,assistantAvatar:u}){const p=e.role==="user",y=e.kind==="thinking",m=e.role==="assistant"&&e.kind==="text",x=t==="codex"&&e.kind==="text"?Ps(e.content):null,v=r??(Qa(t,e.content)?"rules":Ja(t,e.content)?"skill_context":null),j=d.useMemo(()=>dt(e.content),[e.content]),b=j.text,h=j.inlineImages,[C,T]=d.useState(!1),[M,R]=d.useState(!1),[I,D]=d.useState(null),[A,F]=d.useState(null);if(v){const L=e.role==="user"?"user-message":e.role==="assistant"?"assistant-message":"system-message";return s.jsx(vo,{message:e,kind:v,tone:L,actionState:a,onRetry:o,onForkMessage:l})}if(x){const L=fa(n),$=x.detail?`${L}
15
-
16
- ${x.detail}`:L;return s.jsxs("article",{className:"message-item assistant-message","data-message-id":e.id,children:[s.jsx("div",{className:"message-avatar",children:u??s.jsx(tn,{})}),s.jsxs("div",{className:"message-content-wrapper",children:[s.jsx(at,{content:$,className:"message-text message-content markdown-content"}),s.jsx(Le,{text:$,canCopy:a.canCopy,canFork:!1,onFork:null})]})]})}if(p){const L=e.origin==="butler_proxy"||bo(e.clientRequestId),$=e.origin==="butler_proxy"&&typeof e.originRef=="string"&&e.originRef.trim().length>0;async function H(){if(!$)return;const U=!C;if(T(U),!(!U||A||M)){R(!0),D(null);try{const K=await Hr(e.originRef);F(K.task)}catch(K){D(K instanceof Error?K.message:i("conversation.butlerOriginDetailLoadFailed"))}finally{R(!1)}}}const X=L?$?s.jsxs("div",{className:"message-origin-detail-anchor",children:[s.jsx("button",{type:"button",className:"message-origin-badge message-origin-badge-button","aria-expanded":C,onClick:()=>{H()},children:i("conversation.butlerProxyMessageBadge")}),C?s.jsxs("div",{className:"message-origin-detail-popover",role:"dialog","aria-live":"polite",children:[s.jsx("strong",{children:i("conversation.butlerOriginDetailTitle")}),M?s.jsx("p",{children:i("conversation.butlerOriginDetailLoading")}):I?s.jsx("p",{children:I}):A?s.jsxs(s.Fragment,{children:[s.jsxs("p",{children:[i("conversation.butlerOriginDetailObjectiveLabel"),":",A.objective]}),s.jsxs("p",{children:[i("conversation.butlerOriginDetailStatusLabel"),":",yo(A.status)]}),s.jsxs("p",{children:[i("conversation.butlerOriginDetailSummaryLabel"),":",A.lastAutomationSummary||i("conversation.butlerAnalysisEmpty")]}),A.waitingReason?s.jsxs("p",{children:[i("conversation.butlerOriginDetailWaitingReasonLabel"),":",A.waitingReason]}):null]}):s.jsx("p",{children:i("conversation.butlerAnalysisEmpty")})]}):null]}):s.jsx("span",{className:"message-origin-badge",children:i("conversation.butlerProxyMessageBadge")}):null;return s.jsx("article",{className:"message-item user-message","data-message-id":e.id,children:s.jsxs("div",{className:"message-content-wrapper",children:[s.jsx(Mt,{sessionId:e.sessionId,attachments:e.attachments,attachmentPayloads:e.attachmentPayloads,inlineImages:h}),b?s.jsx(at,{content:b,className:"message-text message-content markdown-content"}):null,e.deliveryState==="failed"&&e.clientRequestId&&s.jsx("button",{className:"retry-button",type:"button",onClick:()=>o(e.clientRequestId),children:i("conversation.resendButton")}),s.jsx(Us,{timestamp:e.timestamp,leading:X,children:s.jsx(Le,{text:b,canCopy:a.canCopy,canFork:a.canFork&&!!(l&&e.deliveryState==="sent"),compact:!0,onFork:l?()=>l(e):null})})]})})}return y?s.jsxs("article",{className:"message-item assistant-message thinking-message-row","data-message-id":e.id,children:[s.jsx("div",{className:"message-avatar",children:u??s.jsx(tn,{})}),s.jsxs("div",{className:"thinking-message-content",children:[s.jsx("div",{className:"thinking-message-label",children:i("conversation.thinkingLabel")}),s.jsx(Mt,{sessionId:e.sessionId,attachments:e.attachments,attachmentPayloads:e.attachmentPayloads,inlineImages:h}),b&&s.jsx(at,{content:b,className:"message-text message-content markdown-content thinking-message-text"}),s.jsx(Le,{text:b,canCopy:a.canCopy,canFork:a.canFork&&!!(l&&e.deliveryState==="sent"),onFork:l?()=>l(e):null})]})]}):m?s.jsxs("article",{className:"message-item assistant-message","data-message-id":e.id,children:[s.jsx("div",{className:"message-avatar",children:u??s.jsx(tn,{})}),s.jsxs("div",{className:"message-content-wrapper",children:[s.jsx(Mt,{sessionId:e.sessionId,attachments:e.attachments,attachmentPayloads:e.attachmentPayloads,inlineImages:h}),b&&s.jsx(at,{content:b,className:"message-text message-content markdown-content"}),s.jsx(Le,{text:b,canCopy:a.canCopy,canFork:a.canFork&&!!(l&&e.deliveryState==="sent"),onFork:l?()=>l(e):null})]})]}):s.jsx("article",{className:"message-item system-message","data-message-id":e.id,children:s.jsxs("div",{className:"message-content-wrapper",children:[s.jsx(Mt,{sessionId:e.sessionId,attachments:e.attachments,attachmentPayloads:e.attachmentPayloads,inlineImages:h}),b?s.jsx("div",{className:"message-text message-content",children:s.jsx(Fs,{language:"text",content:b})}):null,s.jsx(Le,{text:b,canCopy:a.canCopy,canFork:a.canFork&&!!(l&&e.deliveryState==="sent"),onFork:l?()=>l(e):null})]})})}function tn(){return s.jsxs("svg",{width:"20",height:"20",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",children:[s.jsx("circle",{cx:"12",cy:"12",r:"10"}),s.jsx("path",{d:"M12 16v-4M12 8h.01"})]})}function bo(e){return typeof e=="string"&&e.startsWith("butler-follow-up:")}function yo(e){switch(e){case"waiting_user":return i("shell.butlerAutomationStatusWaitingUser");case"completed":return i("shell.butlerAutomationStatusCompleted");case"failed":return i("shell.butlerAutomationStatusFailed");case"cancelled":return i("shell.butlerAutomationStatusCancelled");case"active":default:return i("shell.butlerAutomationStatusActive")}}function ol({sessionId:e="session",messages:t,historyState:n,loadingOlderMessages:r=!1,hasOlderMessages:a=!1,onLoadOlderMessages:o=()=>{},onRetryMessage:l,onForkMessage:u,provider:p,interruptedSource:y=null,runtimeThinkingPlaceholder:m=null,assistantAvatar:x}){var Fe;const{showToast:v}=xt(),j=vt(),b=d.useRef(null),h=d.useRef(e),C=d.useRef(0),T=d.useRef(null),M=d.useRef(!0),R=d.useRef(null),I=d.useRef(null),D=d.useRef(!1),A=d.useRef(Rt(e)),F=d.useRef(((Fe=Rt(e))==null?void 0:Fe.lastMessageSignature)??null),L=d.useRef(Rt(e)),$=d.useRef(null),H=d.useRef(null),X=d.useRef(null),U=d.useRef(0),K=d.useRef(!1),Ee=d.useRef(null),re=d.useRef(null),[Be,me]=d.useState(!1),[G,oe]=d.useState(!1),ie=d.useRef(!1),ke=Ga(t),bt=j.isMobile?0:ba,pe=d.useMemo(()=>Xa(t,p),[t,p]),Oe=d.useMemo(()=>ko(t),[t]),yt=n==="loading"&&t.length===0;function Ce(f){const E=f.scrollHeight-f.clientHeight-f.scrollTop<=Gn;return{scrollTop:f.scrollTop,stickToBottom:E,lastMessageSignature:ie.current&&!E?F.current:Ke(t.at(-1)??null)}}function fe(f){return L.current=Ce(f),L.current}function he(f){const N=f.scrollHeight-f.clientHeight-f.scrollTop,E=N<=Gn;M.current=E,E&&ie.current&&(Z(),ie.current=!1,F.current=Ke(t.at(-1)??null),oe(!1)),me(t.length>0&&(N>Zn||ie.current)),fe(f)}function ee(f=b.current){f&&fe(f),L.current&&Vn(e,L.current)}function Ze(f){L.current&&Vn(f,L.current)}function Qe(){$.current!==null&&(window.clearTimeout($.current),$.current=null)}function Je(){Qe(),$.current=window.setTimeout(()=>{$.current=null,ee()},ga)}function je(f){f.scrollTop=f.scrollHeight}function Ye(){H.current!==null&&(window.clearTimeout(H.current),H.current=null)}function Z(){Ye(),K.current=!1,X.current=null,U.current=0,Ee.current=null}function _e(f,N){const E=Math.max(0,f.scrollHeight-f.clientHeight),Q=Math.max(0,Math.min(N,E));Ee.current=Q,f.scrollTop=Q,M.current=!1,me(t.length>0&&(E-Q>Zn||ie.current))}function we(){Ye(),K.current&&(H.current=window.setTimeout(()=>{H.current=null;const f=b.current,N=X.current;if(!f||N===null){Z();return}if(_e(f,N),Date.now()<U.current){we();return}Z(),he(f)},xa))}function Ne(f,N){if(bt<=0){_e(N,f),Z();return}K.current=!0,X.current=f,U.current=Date.now()+bt,_e(N,f),we()}function le(){K.current&&Z()}function ge(f){return D.current||!a||r||n!=="ready"||f.scrollTop>ha?!1:(D.current=!0,R.current=f.scrollHeight-f.scrollTop,I.current=Ke(t[0]??null),o(),!0)}d.useEffect(()=>{n==="error"&&v({title:i("conversation.historyLoadFailed"),tone:"error"})},[n,v]),d.useLayoutEffect(()=>{var f,N;h.current!==e&&(Ze(h.current),h.current=e,C.current=0,T.current=null,A.current=Rt(e),F.current=((f=A.current)==null?void 0:f.lastMessageSignature)??null,L.current=A.current,M.current=((N=A.current)==null?void 0:N.stickToBottom)??!0,R.current=null,I.current=null,Z(),ie.current=!1,oe(!1),me(!1))},[e]),d.useLayoutEffect(()=>()=>{Qe(),Z(),Ze(h.current)},[e]),d.useLayoutEffect(()=>{const f=b.current,N=Ke(t.at(-1)??null);if(!f){C.current=t.length,T.current=N;return}const E=C.current,Q=T.current,V=A.current;if(V&&n==="ready"){const ce=!V.stickToBottom&&V.lastMessageSignature!==null&&N!==null&&V.lastMessageSignature!==N;V.stickToBottom?(Z(),je(f)):Ne(V.scrollTop,f),ie.current=ce,F.current=V.lastMessageSignature,oe(ce),A.current=null,he(f),C.current=t.length,T.current=N,fe(f);return}if(V&&n==="error"){V.stickToBottom?(Z(),je(f)):Ne(V.scrollTop,f),A.current=null,he(f),C.current=t.length,T.current=N,fe(f);return}if(K.current){_e(f,X.current??f.scrollTop),C.current=t.length,T.current=N,fe(f);return}const Te=Ke(t[0]??null),Re=R.current,Ue=I.current;Re!==null&&!r&&Ue!==null&&Ue!==Te&&t.length>=E?(f.scrollTop=Math.max(0,f.scrollHeight-Re),R.current=null,I.current=null):R.current!==null&&!r?(R.current=null,I.current=null):M.current&&(E===0||t.length!==E||N!==Q)&&je(f),he(f),C.current=t.length,T.current=N},[n,r,t,e]),d.useEffect(()=>{if(!a){D.current=!1;return}!r&&R.current===null&&(D.current=!1)},[a,r,t.length]);function qe(){const f=b.current;if(f){if(K.current){const N=Ee.current;N!==null&&Math.abs(f.scrollTop-N)<=1?Ee.current=null:le()}he(f),Je(),ge(f)}}function Se(f){if(f.deltaY!==0&&le(),f.deltaY>=0)return;const N=b.current;N&&ge(N)}function Xe(f){var N;le(),re.current=((N=f.touches[0])==null?void 0:N.clientY)??null}function kt(f){var V;const N=re.current,E=((V=f.touches[0])==null?void 0:V.clientY)??null;if(N===null||E===null||E-N<va)return;le();const Q=b.current;Q&&ge(Q)}function We(){re.current=null}return s.jsxs("section",{className:"message-timeline",children:[n==="loading"&&s.jsx("div",{className:"timeline-status",children:s.jsx("span",{className:"status-text",children:i("conversation.historyLoading")})}),s.jsxs("div",{ref:b,className:"message-list",onScroll:qe,onPointerDown:le,onWheel:Se,onTouchStart:Xe,onTouchMove:kt,onTouchEnd:We,onTouchCancel:We,children:[yt?s.jsx(ao,{}):null,r?s.jsx("div",{className:"timeline-status timeline-status-inline",children:s.jsx("span",{className:"status-text",children:i("conversation.historyLoadingOlder")})}):null,ke.length===0&&n==="ready"&&s.jsx("div",{className:"timeline-empty",children:s.jsx("p",{className:"status-text",children:i("conversation.timelineEmpty")})}),ke.map(f=>f.type==="tool_group"?s.jsx("article",{className:"message-item tool-message-row",children:s.jsx(lo,{group:f.group})},f.key):s.jsx(xo,{message:f.message,provider:p,foldedPromptKind:pe.has(f.message.id)?"system_prompt":null,actionState:Oe.get(f.message.id)??{canCopy:f.message.role==="user",canFork:!1},onRetry:l,onForkMessage:u,interruptedSource:y,assistantAvatar:x},f.key)),m?s.jsx("div",{className:"timeline-status timeline-status-inline thinking-status-inline",children:s.jsxs("span",{className:"status-text thinking-status-text","aria-label":m,children:[s.jsx("span",{children:pa(m)||m}),s.jsx("span",{className:"thinking-status-dots","aria-hidden":"true",children:"..."})]})}):null]}),Be?s.jsxs("button",{type:"button",className:"conversation-scroll-to-bottom-button","data-has-new":G?"true":"false","aria-label":i("conversation.scrollToBottomAction"),title:i("conversation.scrollToBottomAction"),onClick:()=>{const f=b.current;f&&(Z(),je(f),ie.current=!1,F.current=Ke(t.at(-1)??null),oe(!1),he(f),ee(f))},children:[G?s.jsx("span",{className:"conversation-scroll-to-bottom-button-badge",children:"NEW"}):null,s.jsx("svg",{className:"conversation-scroll-to-bottom-button-icon",viewBox:"0 0 20 20","aria-hidden":"true",focusable:"false",children:s.jsx("path",{d:"M10 4.25a.75.75 0 0 1 .75.75v7.19l2.72-2.72a.75.75 0 1 1 1.06 1.06l-4 4a.75.75 0 0 1-1.06 0l-4-4a.75.75 0 1 1 1.06-1.06l2.72 2.72V5a.75.75 0 0 1 .75-.75Zm-4 11a.75.75 0 0 1 0-1.5h8a.75.75 0 0 1 0 1.5H6Z",fill:"currentColor"})})]}):null]})}function Ke(e){return e?JSON.stringify({id:e.id,content:e.content,attachments:e.attachments,timestamp:e.timestamp,deliveryState:e.deliveryState,toolCall:e.toolCall?{status:e.toolCall.status,output:e.toolCall.output,error:e.toolCall.error}:null}):null}function ko(e){const t=new Map;let n=0;function r(a){let o=null;for(let l=a-1;l>=n;l-=1){const u=e[l];if(!(!u||!Co(u))){o=u.id;break}}for(let l=n;l<a;l+=1){const u=e[l];if(u){if(u.role==="user"){t.set(u.id,{canCopy:!0,canFork:!1});continue}t.set(u.id,{canCopy:u.id===o,canFork:u.id===o})}}}for(let a=0;a<e.length;a+=1){const o=e[a];o&&o.role==="user"&&a>n&&(r(a),n=a)}return r(e.length),t}function Co(e){return e.role==="user"?!1:e.kind!=="tool_call"&&e.kind!=="tool_result"}function ll({requests:e,replyingRequestId:t,onReply:n}){const[r,a]=d.useState({}),o=d.useMemo(()=>e.filter(l=>l.status==="pending"),[e]);return o.length===0?null:s.jsxs("section",{className:"permission-request-list",children:[s.jsxs("div",{className:"permission-request-list-header",children:[s.jsx("div",{children:s.jsx("strong",{children:i("conversation.permissionRequestSectionTitle")})}),s.jsx("span",{className:"permission-request-count",children:o.length})]}),s.jsx("div",{className:"permission-request-stack",children:o.map(l=>{var v,j;const u=r[l.id]??{},p=l.paths.filter(Boolean),y=l.kind==="command"&&!!((v=l.command)!=null&&v.trim()),m=l.questions.length===0&&p.length===0&&!y&&!!((j=l.summary)!=null&&j.trim()),x=l.kind==="user_input"&&l.questions.some(b=>{var h;return(((h=u[b.id])==null?void 0:h.filter(Boolean).length)??0)===0});return s.jsxs("article",{className:"permission-request-card",children:[s.jsxs("header",{className:"permission-request-card-header",children:[s.jsxs("div",{className:"permission-request-provider",children:[s.jsx("span",{className:"permission-request-provider-icon","aria-hidden":"true",children:s.jsx("img",{src:$r(l.provider),alt:"",loading:"lazy"})}),s.jsxs("div",{className:"permission-request-provider-copy",children:[s.jsx("strong",{children:l.title}),s.jsx("span",{children:cs(l.provider,"full")})]})]}),s.jsx("span",{className:"permission-request-kind",children:jo(l.kind)})]}),s.jsxs("div",{className:"permission-request-card-body",children:[p.length>0?s.jsx("div",{className:"permission-request-block",children:s.jsx("ul",{className:"permission-request-target-list",children:p.map(b=>s.jsxs("li",{className:"permission-request-target-item",children:[s.jsx("strong",{children:wo(b)}),s.jsx("span",{children:b})]},`${l.id}:${b}`))})}):null,y?s.jsxs("div",{className:"permission-request-block",children:[s.jsx("div",{className:"permission-request-block-label",children:i("conversation.permissionRequestCommandLabel")}),s.jsx("pre",{children:l.command})]}):null,m?s.jsx("p",{className:"permission-request-summary",children:l.summary}):null,l.questions.length>0?s.jsxs("div",{className:"permission-request-block",children:[s.jsx("div",{className:"permission-request-block-label",children:i("conversation.permissionRequestQuestionsLabel")}),s.jsx("div",{className:"permission-request-question-list",children:l.questions.map(b=>s.jsxs("div",{className:"permission-request-question",children:[s.jsx("div",{className:"permission-request-question-header",children:b.header}),s.jsx("p",{children:b.question}),s.jsx("div",{className:"permission-request-question-options",children:b.options.map(h=>{var T;const C=((T=u[b.id])==null?void 0:T.includes(h.label))??!1;return s.jsxs("label",{className:"permission-request-question-option",children:[s.jsx("input",{type:"radio",name:`${l.id}:${b.id}`,checked:C,onChange:()=>{a(M=>({...M,[l.id]:{...M[l.id]??{},[b.id]:[h.label]}}))}}),s.jsxs("span",{children:[s.jsx("strong",{children:h.label}),h.description?s.jsx("small",{children:h.description}):null]})]},`${b.id}:${h.label}`)})})]},b.id))})]}):null]}),s.jsx("footer",{className:"permission-request-card-footer",children:l.actions.map(b=>s.jsx("button",{type:"button",className:`permission-request-action permission-request-action-${b.tone}`,disabled:t===l.id||b.value==="submit"&&x,onClick:()=>void n(l.id,{action:b.value,answers:Object.keys(u).length>0?u:void 0}),children:t===l.id?i("conversation.permissionRequestSubmitting"):b.label},`${l.id}:${b.value}`))})]},l.id)})})]})}function jo(e){return e==="command"?i("conversation.permissionRequestKindCommand"):e==="file_change"?i("conversation.permissionRequestKindFileChange"):e==="permissions"?i("conversation.permissionRequestKindPermissions"):e==="user_input"?i("conversation.permissionRequestKindUserInput"):i("conversation.permissionRequestKindToolCall")}function wo(e){return e.split(/[/\\]+/).filter(Boolean).at(-1)??e}class cl{constructor(t){ne(this,"socket",null);ne(this,"disposed",!1);ne(this,"authRecoveryInFlight",!1);ne(this,"latestCursor");ne(this,"subscribed",!1);ne(this,"pendingOlderRequest",null);ne(this,"inFlightOlderRequest",null);ne(this,"subscribeStartedAtMs",null);ne(this,"firstBackfillLogged",!1);ne(this,"olderRequestStartedAtMs",null);ne(this,"connectionManager");this.options=t,this.latestCursor=t.cursor,this.connectionManager=new Kr({onReconnect:n=>{this.connect(n)},onStateChange:t.onConnectionChange})}start(){this.connectionManager.start()}updateCursor(t){this.latestCursor=t}reconnectNow(){this.connectionManager.reconnectNow()}requestOlderMessages(t,n){return No(this.socket)?this.subscribed?(this.sendOlderMessagesRequest(t,n),!0):(this.pendingOlderRequest={cursor:t,limit:n},!0):!1}close(){var t;this.disposed=!0,this.subscribed=!1,this.pendingOlderRequest=null,this.inFlightOlderRequest=null,this.connectionManager.close(),(t=this.socket)==null||t.close(),this.socket=null}connect(t){var p;if(this.disposed)return;t&&this.socket&&(this.socket.close(),this.socket=null);const n=(p=En.getState().session)==null?void 0:p.accessToken;if(!n){this.options.onUnauthorized();return}const r=Sr(),a=Tr(r),o=a.baseUrl,l=`${Rr("/ws",o)}?access_token=${encodeURIComponent(n)}`,u=a.transport.createWebSocket({path:"/ws",baseUrl:o,url:l});this.subscribed=!1,this.firstBackfillLogged=!1,this.socket=u,u.addEventListener("open",()=>{this.subscribeStartedAtMs=performance.now(),u.send(JSON.stringify({type:"session.subscribe",sessionId:this.options.sessionId,cursor:this.latestCursor,limit:this.options.limit})),st("session.subscribe.sent",{sessionId:this.options.sessionId,hasCursor:this.latestCursor!==null,limit:this.options.limit,baseUrl:o})}),u.addEventListener("message",y=>{if(!(y instanceof MessageEvent)||typeof y.data!="string")return;const m=JSON.parse(y.data);if(m.type==="system.connected"){this.connectionManager.markConnected();return}if(m.type==="session.subscribed"){this.subscribed=!0,st("session.subscribe.ack",{sessionId:m.sessionId,durationMs:nn(this.subscribeStartedAtMs)}),this.options.onSubscribed(),this.flushPendingOlderRequest();return}if(m.type==="session.error"){if(this.clearOlderMessagesRequest(),m.error_code==="UNAUTHORIZED"){this.handleUnauthorized();return}this.options.onError(m);return}if(m.type==="session.runtime_status"){this.options.onRuntimeStatus(m);return}if(m.type==="session.activity"){this.options.onActivity(m);return}if(m.type==="session.history_older"){st("session.history_older.received",{sessionId:m.sessionId,messageCount:m.messages.length,olderCursor:m.olderCursor,durationMs:nn(this.olderRequestStartedAtMs)}),this.olderRequestStartedAtMs=null,this.clearOlderMessagesRequest(),this.options.onOlderHistory(m);return}if(m.type==="session.runtime_message"){this.options.onRuntimeMessage(m);return}if(m.type==="session.runtime_error"){this.options.onRuntimeError(m);return}if(m.type==="session.interrupted"){this.options.onInterrupted(m);return}if(m.type==="session.permission_request"){this.options.onPermissionRequest(m);return}if(m.type==="session.permission_request_resolved"){this.options.onPermissionRequestResolved(m);return}this.latestCursor=m.cursor,this.firstBackfillLogged||(this.firstBackfillLogged=!0,st("session.initial_messages.received",{sessionId:m.sessionId,eventType:m.type,messageCount:m.messages.length,olderCursor:m.olderCursor??null,durationMs:nn(this.subscribeStartedAtMs)})),this.options.onEnvelope(m)}),u.addEventListener("close",()=>{this.disposed||this.socket!==u||(this.subscribed=!1,this.requeueInFlightOlderRequest(),this.connectionManager.markDisconnected())}),u.addEventListener("error",()=>{this.disposed||this.socket!==u||this.connectionManager.markTransientFailure()})}handleUnauthorized(){if(this.authRecoveryInFlight||this.disposed)return;this.authRecoveryInFlight=!0,this.subscribed=!1,this.requeueInFlightOlderRequest();const t=this.socket;this.socket=null,t==null||t.close(),En.refresh().then(n=>{if(this.authRecoveryInFlight=!1,!this.disposed){if(n.status==="refreshed"){this.connectionManager.reconnectNow();return}if(n.status==="deferred"){this.connectionManager.markDisconnected();return}this.options.onUnauthorized()}})}sendOlderMessagesRequest(t,n){var r;this.inFlightOlderRequest={cursor:t,limit:n},this.olderRequestStartedAtMs=performance.now(),(r=this.socket)==null||r.send(JSON.stringify({type:"session.load_older",sessionId:this.options.sessionId,cursor:t,limit:n})),st("session.load_older.sent",{sessionId:this.options.sessionId,hasCursor:t!==null,limit:n})}flushPendingOlderRequest(){if(!this.pendingOlderRequest)return;const t=this.pendingOlderRequest;this.pendingOlderRequest=null,this.sendOlderMessagesRequest(t.cursor,t.limit)}clearOlderMessagesRequest(){this.pendingOlderRequest=null,this.inFlightOlderRequest=null}requeueInFlightOlderRequest(){this.inFlightOlderRequest&&(this.pendingOlderRequest=this.inFlightOlderRequest,this.inFlightOlderRequest=null,this.olderRequestStartedAtMs=null)}}function nn(e){return e===null||typeof performance>"u"?null:Math.round(performance.now()-e)}function No(e){return e!==null&&e.readyState===1}const So=3*1e3;function ul(e){return{session:(e==null?void 0:e.session)??null,capabilities:(e==null?void 0:e.capabilities)??null,runtimeHasActiveRun:(e==null?void 0:e.runtimeHasActiveRun)??null,runtimeCanInterrupt:(e==null?void 0:e.runtimeCanInterrupt)??null,contextUsage:(e==null?void 0:e.contextUsage)??null,messages:(e==null?void 0:e.messages)??[],permissionRequests:(e==null?void 0:e.permissionRequests)??[],queuedMessages:(e==null?void 0:e.queuedMessages)??[],historyState:"idle",loadingOlderMessages:!1,olderCursor:(e==null?void 0:e.olderCursor)??null,hasOlderMessages:(e==null?void 0:e.hasOlderMessages)??!1,connectionState:"closed",lastCursor:(e==null?void 0:e.lastCursor)??null,pagesLoaded:(e==null?void 0:e.pagesLoaded)??0,interruptSource:(e==null?void 0:e.interruptSource)??null,errorCode:null,errorDetail:null}}function zs(e,t,n="sent",r=null){const a=t.kind??(t.role==="tool"?"tool_result":"text"),o=t.toolCall??(a==="tool_call"||a==="tool_result"?{callId:t.rawRef||t.messageId,name:"tool",input:a==="tool_call"?t.content:"",output:a==="tool_result"&&t.content?t.content:null,error:null,status:a==="tool_call"?"running":"completed"}:null);return{id:t.messageId,sessionId:e,role:t.role,kind:a,content:t.content,toolCall:o,attachments:t.attachments??[],attachmentPayloads:null,origin:t.origin??null,originRef:t.originRef??null,timestamp:t.timestamp,sequence:t.sequence,rawRef:t.rawRef,deliveryState:n,clientRequestId:r}}function dl(e,t,n,r=[],a=[],o=Number.MAX_SAFE_INTEGER){return{id:`pending-${n}`,sessionId:e,role:"user",kind:"text",content:t,toolCall:null,attachments:r,attachmentPayloads:a,origin:null,originRef:null,timestamp:new Date().toISOString(),sequence:o,rawRef:`pending://${n}`,deliveryState:"sending",clientRequestId:n}}function ml(e,t,n){const r=new Map;for(const a of e)r.set(a.id,a);for(const a of n){const o=zs(t,a),l=Zo(r,o);if(l&&l!==o.id)continue;const u=Go(r,o);u&&u!==o.id&&r.delete(u);const p=r.get(a.messageId)??null;r.set(a.messageId,p?Eo(p,o):o)}return Ds(Array.from(r.values()))}function pl(e,t,n,r){const a=r===null?null:e.find(p=>p.clientRequestId===r)??null,o=e.filter(p=>p.clientRequestId!==r),l=zs(t,n,"sent",r),u=Io(l,a);return Ds([...o.filter(p=>p.id!==u.id),u])}function fl(e,t){return e.map(n=>n.clientRequestId===t?{...n,deliveryState:"failed"}:n)}function To(e){const t=[];for(const n of e){const r=t.at(-1);if(!r||!Bo(r,n)){t.push(n);continue}t[t.length-1]=qo(r,n)}return t}function Ro(e){const t=[];let n=null,r=!1;for(const a of e)if(!Oo(n,a,r)){if(t.push(a),ht(a)){n=a,r=!1;continue}n&&ln(a)&&(r=!0)}return t}function Mo(e){const t=[];for(const n of e){const r=t.at(-1);if(!r||!$s(r,n)){t.push(n);continue}t[t.length-1]=Hs(r,n)}return t}function Ao(e){const t=[];for(const n of e){if(t.push(n),t.length<4)continue;const r=t[t.length-4],a=t[t.length-3],o=t[t.length-2],l=t[t.length-1];_o(r,a,o,l)&&t.splice(t.length-3,3,Hs(a,l))}return t}function Lo(e){const t=[];for(const n of e){const r=t.at(-1);if(!r||!Wo(r,n)){t.push(n);continue}t[t.length-1]=Uo(r,n)}return t}function Po(e){const t=[];for(const n of e){const r=t.findIndex(a=>Fo(a,n));if(r===-1){t.push(n);continue}t[r]=zo(t[r],n)}return t}function Ds(e){const t=[...e].sort((n,r)=>n.sequence!==r.sequence?n.sequence-r.sequence:n.timestamp.localeCompare(r.timestamp));return Po(Lo(Ro(Ao(Mo(To(t))))))}function Io(e,t){if(!t)return e;const n=e.attachments??[];return{...e,attachments:n.length>0?n:t.attachments??[],attachmentPayloads:t.attachmentPayloads??null}}function Eo(e,t){if(e.id!==t.id)return t;if(e.role!==t.role||e.kind!==t.kind||e.rawRef!==t.rawRef)return gt(e,t);const n=Do(e.toolCall,t.toolCall),r=Ho(e.content,t.content,e.timestamp,t.timestamp),a=Ko(e.attachments,t.attachments);return{...gt(e,t),content:r,toolCall:n,attachments:a,attachmentPayloads:e.attachmentPayloads??t.attachmentPayloads??null,timestamp:e.timestamp.localeCompare(t.timestamp)>=0?e.timestamp:t.timestamp,sequence:Math.max(e.sequence,t.sequence)}}function Bo(e,t){if(e.deliveryState!=="sent"||t.deliveryState!=="sent"||!e.rawRef.startsWith("codex://")||!t.rawRef.startsWith("codex://")||e.role!==t.role||e.kind!==t.kind||e.toolCall!==null||t.toolCall!==null||e.kind!=="text"&&e.kind!=="thinking")return!1;const n=dt(e.content),r=dt(t.content);return Ge(e.timestamp,t.timestamp,So)&&B(n.text)===B(r.text)&&Vo(n.inlineImages,r.inlineImages)}function Oo(e,t,n){return!e||n||!ht(e)||!ht(t)?!1:Ge(e.timestamp,t.timestamp,120*1e3)&&B(e.content)===B(t.content)}function ht(e){return e.deliveryState==="sent"&&e.rawRef.startsWith("opencode://")&&e.role==="user"&&e.kind==="text"}function ln(e){return e.deliveryState==="sent"&&e.rawRef.startsWith("opencode://")&&e.role==="assistant"&&e.kind==="text"}function $s(e,t){return ln(e)&&ln(t)&&Ge(e.timestamp,t.timestamp,120*1e3)&&B(e.content)===B(t.content)}function _o(e,t,n,r){return!e||!t||!n||!r||!ht(e)||!ht(n)?!1:$s(t,r)&&Ge(e.timestamp,n.timestamp,120*1e3)&&B(e.content)===B(n.content)}function Hs(e,t){var l,u;const n=((l=e.attachments)==null?void 0:l.length)??0,r=((u=t.attachments)==null?void 0:u.length)??0;if(n!==r)return n>r?e:t;const a=B(e.content).length,o=B(t.content).length;return a!==o?a>o?e:t:gt(e,t)}function qo(e,t){var p,y;const n=((p=e.attachments)==null?void 0:p.length)??0,r=((y=t.attachments)==null?void 0:y.length)??0;if(n!==r)return n>r?e:t;const a=dt(e.content).inlineImages.length,o=dt(t.content).inlineImages.length;if(a!==o)return a>o?e:t;const l=e.content!==B(e.content),u=t.content!==B(t.content);return l!==u?l?t:e:t}function Wo(e,t){return!is(e)||!is(t)?!1:e.role===t.role&&Ge(e.timestamp,t.timestamp,120*1e3)&&B(e.content)===B(t.content)}function Fo(e,t){return!as(e)||!as(t)?!1:e.role===t.role&&Ge(e.timestamp,t.timestamp,120*1e3)&&B(e.content)===B(t.content)}function is(e){return e.deliveryState==="sent"&&e.rawRef.startsWith("gemini://session/")&&e.kind==="text"&&e.toolCall===null&&(e.role==="user"||e.role==="assistant")}function as(e){return e.deliveryState==="sent"&&e.rawRef.startsWith("kimi://session/")&&e.kind==="text"&&e.toolCall===null&&(e.role==="user"||e.role==="assistant")}function Uo(e,t){var p,y;const n=((p=e.attachments)==null?void 0:p.length)??0,r=((y=t.attachments)==null?void 0:y.length)??0;if(n!==r)return n>r?e:t;const a=B(e.content).length,o=B(t.content).length;if(a!==o)return a>o?e:t;const l=e.rawRef.includes("#file="),u=t.rawRef.includes("#file=");return l!==u?l?e:t:gt(e,t)}function zo(e,t){var p,y;const n=((p=e.attachments)==null?void 0:p.length)??0,r=((y=t.attachments)==null?void 0:y.length)??0;if(n!==r)return n>r?e:t;const a=B(e.content).length,o=B(t.content).length;if(a!==o)return a>o?e:t;const l=e.rawRef.includes("/context#"),u=t.rawRef.includes("/context#");return l!==u?l?e:t:gt(e,t)}function Do(e,t){return e?t?{...$o(e,t),input:Ks(e.input,t.input),output:ls(e.output,t.output),error:ls(e.error,t.error)}:e:t}function $o(e,t){const n=os(e.status),r=os(t.status);return r!==n?r>n?t:e:t}function os(e){return e==="running"?0:1}function Ho(e,t,n,r){const a=B(e),o=B(t);return a===o?e.length>=t.length?e:t:a.length>o.length&&a.includes(o)?e:o.length>a.length&&o.includes(a)||r.localeCompare(n)>=0?t:e}function Ko(e,t){const n=(e==null?void 0:e.length)??0,r=(t==null?void 0:t.length)??0;return r!==n?r>n?t:e:t??e}function Ks(e,t){return t.length>e.length?t:e}function ls(e,t){return e===null?t:t===null?e:Ks(e,t)}function gt(e,t){return t.timestamp!==e.timestamp?t.timestamp.localeCompare(e.timestamp)>=0?t:e:t.sequence!==e.sequence?t.sequence>=e.sequence?t:e:t}function B(e){return e.replace(/\r\n/g,`
17
- `).trimEnd()}function Vo(e,t){return e.length===0||t.length===0?!0:e.length!==t.length?!1:e.every((n,r)=>{var a;return n.url===((a=t[r])==null?void 0:a.url)})}function Go(e,t){return Gs(t)?Vs(e,t,"optimistic"):null}function Zo(e,t){return hn(t)?Vs(e,t,"authoritative"):null}function Vs(e,t,n){const r=_t(t.timestamp),a=B(t.content);let o=null,l=Number.POSITIVE_INFINITY;for(const[u,p]of e.entries()){if(!(n==="optimistic"?hn(p):Gs(p))||B(p.content)!==a)continue;const m=_t(p.timestamp),x=Math.abs(m-r);x>300*1e3||x<l&&(o=u,l=x)}return o}function hn(e){return e.role!=="user"||e.kind!=="text"||e.deliveryState==="failed"?!1:e.rawRef.startsWith("pending://")||e.rawRef.startsWith("synthetic://")||e.rawRef.includes("#synthetic")}function Gs(e){return e.role==="user"&&e.kind==="text"&&!hn(e)}function _t(e){const t=Date.parse(e);return Number.isFinite(t)?t:0}function hl(e){return e.reduce((n,r)=>Number.isFinite(r.sequence)&&r.sequence>n?r.sequence:n,0)+1}function Ge(e,t,n){return Math.abs(_t(e)-_t(t))<=n}export{sl as B,al as C,il as M,ll as P,cl as R,dl as a,fl as b,ul as c,ol as d,rl as e,hl as g,ml as m,pl as r,zs as t};
@@ -1 +0,0 @@
1
- import{j as l,t as s,b as u}from"./index-DEbFT-Aq.js";import{b as x,d as k}from"./MobileSheet-D1lMrcvD.js";import{l as j,a as p}from"./terminal-runtime-meta-B9xJGY__.js";function O({workspace:e,state:r,variant:t}){return e?t==="mobile"?l.jsx(v,{workspace:e,state:r}):l.jsx(P,{workspace:e,state:r}):l.jsx("p",{className:"workbench-section-empty",children:s("shell.workspaceDetailMissingBody")})}function v({workspace:e,state:r}){const t=r.primaryAnalysis,o=r.analyses.length;return l.jsx(l.Fragment,{children:l.jsxs("section",{className:"mobile-feature-panel surface-card mobile-workspace-composition-panel",children:[l.jsx("div",{className:"mobile-feature-section-header",children:l.jsx("div",{children:l.jsx("h2",{children:s("shell.workspaceDetailRegisteredDebugAnalysisTitle")})})}),r.loading&&t===null?l.jsx("p",{children:s("common.loading")}):null,r.error?l.jsx("p",{className:"status-text","data-tone":"error",children:r.error}):null,t?l.jsxs("div",{className:"mobile-detail-grid mobile-workspace-detail-grid",children:[l.jsxs("div",{className:"mobile-detail-metric",children:[l.jsx("span",{children:s("shell.workspaceDetailDebugFrameworkLabel")}),l.jsx("strong",{children:t.primaryFramework??s("common.unknown")})]}),l.jsxs("div",{className:"mobile-detail-metric",children:[l.jsx("span",{children:s("shell.workspaceDetailDebugConfidenceLabel")}),l.jsx("strong",{children:y(t.confidence)})]}),l.jsxs("div",{className:"mobile-detail-metric",children:[l.jsx("span",{children:s("shell.workspaceDetailDebugSummaryServiceCountLabel")}),l.jsx("strong",{children:o})]}),l.jsxs("div",{className:"mobile-detail-metric",children:[l.jsx("span",{children:s("shell.workspaceDetailDebugCompatibilityLabel")}),l.jsx("strong",{children:D(t.compatibilityLevel)})]}),l.jsxs("div",{className:"mobile-detail-metric",children:[l.jsx("span",{children:s("shell.workspaceDetailDebugLastAnalyzedAtLabel")}),l.jsx("strong",{children:r.lastAnalyzedAt??s("shell.workspaceDetailDebugFrameworkNoteEmpty")})]}),l.jsxs("div",{className:"mobile-detail-metric mobile-detail-metric-wide",children:[l.jsx("span",{children:s("shell.manageWorkspacePathLabel")}),l.jsx("strong",{children:e.path})]})]}):null]})})}function P({workspace:e,state:r}){const t=r.primaryAnalysis,o=r.analyses.length;return l.jsxs("section",{className:"debug-readiness-section surface-card",children:[l.jsx("div",{className:"debug-readiness-section-header",children:l.jsxs("div",{children:[l.jsx("h3",{children:s("shell.workspaceDetailRegisteredDebugAnalysisTitle")}),l.jsx("p",{children:s("shell.workspaceDetailRegisteredDebugAnalysisDescription")})]})}),r.loading&&t===null?l.jsx("p",{className:"workbench-section-empty",children:s("common.loading")}):null,r.error?l.jsx("p",{className:"workbench-manage-status status-text","data-tone":"error",children:r.error}):null,t?l.jsxs("div",{className:"debug-readiness-summary-grid",children:[l.jsxs("article",{className:"debug-readiness-summary-card",children:[l.jsx("span",{children:s("shell.workspaceDetailDebugFrameworkLabel")}),l.jsx("strong",{children:t.primaryFramework??s("common.unknown")})]}),l.jsxs("article",{className:"debug-readiness-summary-card",children:[l.jsx("span",{children:s("shell.workspaceDetailDebugConfidenceLabel")}),l.jsx("strong",{children:y(t.confidence)}),l.jsx("small",{children:r.lastAnalyzedAt??s("shell.workspaceDetailDebugFrameworkNoteEmpty")})]}),l.jsxs("article",{className:"debug-readiness-summary-card",children:[l.jsx("span",{children:s("shell.workspaceDetailDebugSummaryServiceCountLabel")}),l.jsx("strong",{children:o})]}),l.jsxs("article",{className:"debug-readiness-summary-card",children:[l.jsx("span",{children:s("shell.workspaceDetailDebugCompatibilityLabel")}),l.jsx("strong",{children:D(t.compatibilityLevel)})]}),l.jsxs("article",{className:"debug-readiness-summary-card",children:[l.jsx("span",{children:s("shell.manageWorkspacePathLabel")}),l.jsx("strong",{title:e.path,children:e.path})]})]}):null]})}function D(e){switch(e){case"supported":return s("shell.workspaceDetailDebugCompatibilitySupported");case"conditional":return s("shell.workspaceDetailDebugCompatibilityConditional");case"unsupported":return s("shell.workspaceDetailDebugCompatibilityUnsupported");default:return s("shell.workspaceDetailDebugCompatibilityUnknown")}}function y(e){switch(e){case"high":return s("shell.workspaceDetailDebugConfidenceHigh");case"medium":return s("shell.workspaceDetailDebugConfidenceMedium");case"low":return s("shell.workspaceDetailDebugConfidenceLow");default:return s("common.unknown")}}function F(e,r,t){const o=new Map(r.map(i=>[i.templateId,i])),c=new Map(((t==null?void 0:t.services)??[]).map(i=>[i.serviceId,i])),a=new Map;for(const i of e)i.port!==null&&a.set(i.port,(a.get(i.port)??0)+1);const n=e.map(i=>{const g=o.get(i.id)??null,m=c.get(i.id)??null;if(m){const w=m.autoStartAllowed?m.leasedPort!==null&&m.leasedPort!==i.port?"orchestrated":"runnable":"blocked";return{template:i,runtimeStatus:g,planItem:m,decision:w,assignedPort:m.leasedPort,reason:A(i,m)}}return i.port===null?{template:i,runtimeStatus:g,planItem:null,decision:"blocked",assignedPort:null,reason:s("shell.workspaceDetailRegisteredDebugPlanReasonPortMissing")}:(a.get(i.port)??0)>1||g!=null&&g.occupied?{template:i,runtimeStatus:g,planItem:null,decision:"orchestrated",assignedPort:i.port,reason:(a.get(i.port)??0)>1?s("shell.workspaceDetailRegisteredDebugPlanReasonDuplicatePortWillOrchestrate"):s("shell.workspaceDetailRegisteredDebugPlanReasonPortOccupiedWillOrchestrate")}:{template:i,runtimeStatus:g,planItem:null,decision:"runnable",assignedPort:i.port,reason:s("shell.workspaceDetailRegisteredDebugPlanReasonRunnable")}}),h=n.filter(i=>i.decision==="runnable").length,b=n.filter(i=>i.decision==="orchestrated").length,d=n.filter(i=>i.decision==="blocked").length;return{generatedAt:(t==null?void 0:t.runtimeSession.createdAt)??new Date().toISOString(),autoStartAllowed:(t==null?void 0:t.autoStartAllowed)??(n.length>0&&d===0),runnableCount:h,orchestratedCount:b,blockedCount:d,items:n}}function R(e){return e.autoStartAllowed&&e.blockedCount===0}function E(e,r){return r===0?"danger":R(e)?"success":"warn"}function z(e,r){return r===0?s("shell.workspaceDetailRegisteredDebugOverallStatusEmpty"):R(e)?s("shell.workspaceDetailRegisteredDebugOverallStatusReady"):s("shell.workspaceDetailRegisteredDebugOverallStatusPartial")}function W(e,r){return r===0?s("shell.workspaceDetailRegisteredDebugTemplatesEmpty"):s("shell.workspaceDetailRegisteredDebugOverallSummary",{runnable:e.runnableCount,orchestrated:e.orchestratedCount,blocked:e.blockedCount})}function $(e){const r=e.args.join(" ").trim();return r?`${e.command} ${r}`:e.command}function B(e,r){const t=r.replace(/[\\/]+$/,"");return e===t?".":e.startsWith(`${t}/`)||e.startsWith(`${t}\\`)?e.slice(t.length+1):e}function V(e){return e===null?s("shell.workspaceDetailRegisteredDebugTemplatePortMissing"):String(e)}function U(e){if(!e)return s("shell.workspaceDetailDebugPortEmpty");const r=new Date(e);return Number.isNaN(r.getTime())?e:new Intl.DateTimeFormat("zh-CN",{month:"2-digit",day:"2-digit",hour:"2-digit",minute:"2-digit"}).format(r)}function q(e,r){if(e.port!==null)return r!=null&&r.occupied?"warn":"success"}function H(e,r){return e.port===null?s("shell.workspaceDetailRegisteredDebugTemplateStatusUntracked"):r!=null&&r.occupied?s("shell.workspaceDetailRegisteredDebugTemplateStatusOccupied"):s("shell.workspaceDetailRegisteredDebugTemplateStatusIdle")}function _(e){return e!=null&&e.occupied?e.processId&&e.processName?`PID ${e.processId} · ${e.processName}`:e.processId?`PID ${e.processId}`:e.processName??s("shell.workspaceDetailRegisteredDebugRuntimeUnknown"):s("shell.workspaceDetailRegisteredDebugRuntimeIdle")}function G(e,r){return e.port===null?s("shell.workspaceDetailRegisteredDebugPlanReasonPortMissing"):r!=null&&r.occupied?s("shell.workspaceDetailRegisteredDebugPlanReasonPortOccupiedWillOrchestrate"):s("shell.workspaceDetailRegisteredDebugPlanReasonRunnable")}function J(e){switch(e){case"runnable":return s("shell.workspaceDetailRegisteredDebugPlanActionStart");case"orchestrated":return s("shell.workspaceDetailRegisteredDebugPlanActionOrchestrated");default:return s("shell.workspaceDetailRegisteredDebugPlanActionBlocked")}}function A(e,r){var t;return r.missingRequirements.length>0?r.missingRequirements.map(o=>C(o)).join(";"):(t=r.aiFallback)!=null&&t.eligible?r.aiFallback.reason:r.leasedPort!==null&&r.leasedPort!==e.port?s("shell.workspaceDetailRegisteredDebugPlanReasonPortOrchestrated",{port:r.leasedPort}):Object.keys(r.envPatch).length>0?s("shell.workspaceDetailRegisteredDebugPlanReasonServiceDiscoveryInjected"):s("shell.workspaceDetailRegisteredDebugPlanReasonRunnable")}function C(e){switch(e){case"analysis":return s("shell.workspaceDetailRegisteredDebugPlanReasonAnalysisMissing");case"service_discovery":return s("shell.workspaceDetailRegisteredDebugPlanReasonServiceDiscoveryMissing");case"callback":return s("shell.workspaceDetailRegisteredDebugPlanReasonCallbackMissing");case"port":return s("shell.workspaceDetailRegisteredDebugPlanReasonPortMissing");default:return e}}function K(e){const[r,t]=u.useState({loading:!1,error:null,targetId:null,targetSourceType:null,services:[],analyses:[],matrixItems:[]}),[o,c]=u.useState(0),a=u.useCallback(()=>{c(d=>d+1)},[]);u.useEffect(()=>{if(!(e!=null&&e.id)||!e.path){t({loading:!1,error:null,targetId:null,targetSourceType:null,services:[],analyses:[],matrixItems:[]});return}let d=!1;return t(i=>({...i,loading:!0,error:null})),(async()=>{try{const[i,g]=await Promise.all([x({workspaceId:e.id,rootPath:e.path}),k()]);if(d)return;t({loading:!1,error:null,targetId:i.target.id,targetSourceType:i.target.sourceType,services:i.services,analyses:i.analyses,matrixItems:g.items})}catch(i){if(d)return;t({loading:!1,error:i instanceof Error?i.message:s("shell.workspaceDetailDebugAnalyzeFailed"),targetId:null,targetSourceType:null,services:[],analyses:[],matrixItems:[]})}})(),()=>{d=!0}},[o,e==null?void 0:e.id,e==null?void 0:e.path]);const n=u.useMemo(()=>N(r.services,r.analyses),[r.analyses,r.services]),h=u.useMemo(()=>r.matrixItems.find(d=>d.framework===((n==null?void 0:n.primaryFramework)??"unknown"))??null,[n==null?void 0:n.primaryFramework,r.matrixItems]),b=u.useMemo(()=>{var d;return((d=r.analyses[0])==null?void 0:d.createdAt)??null},[r.analyses]);return{...r,primaryAnalysis:n,currentCompatibilityItem:h,lastAnalyzedAt:b,refresh:a}}function N(e,r){if(r.length===0)return null;const t=new Map(r.filter(c=>c.serviceId).map(c=>[c.serviceId,c]));return[...e].sort((c,a)=>I(c,a)).map(c=>t.get(c.id)??null).find(c=>c!==null)??r[0]??null}function I(e,r){const t=f(e.role)-f(r.role);return t!==0?t:e.name.localeCompare(r.name)}function f(e){switch(e){case"frontend":return 0;case"backend":return 1;case"worker":return 2;case"mock":return 3;default:return 4}}function Q(e){const[r,t]=u.useState({loading:!1,error:null,templates:[],runtimeStatuses:[],lastRefreshedAt:null}),o=u.useCallback(async()=>{if(!(e!=null&&e.id)){t({loading:!1,error:null,templates:[],runtimeStatuses:[],lastRefreshedAt:null});return}t(a=>({...a,loading:!0,error:null}));try{const[a,n]=await Promise.all([j(e.id),p(e.id)]);t({loading:!1,error:null,templates:T(a.items),runtimeStatuses:n.items,lastRefreshedAt:new Date().toISOString()})}catch(a){throw t(n=>({...n,loading:!1,error:a instanceof Error?a.message:s("shell.workspaceDetailRegisteredDebugLoadFailed")})),a}},[e==null?void 0:e.id]),c=u.useCallback(async()=>{if(e!=null&&e.id){t(a=>({...a,loading:!0,error:null}));try{const a=await p(e.id);t(n=>({...n,loading:!1,error:null,runtimeStatuses:a.items,lastRefreshedAt:new Date().toISOString()}))}catch(a){throw t(n=>({...n,loading:!1,error:a instanceof Error?a.message:s("shell.workspaceDetailRegisteredDebugActionRefreshFailed")})),a}}},[e==null?void 0:e.id]);return u.useEffect(()=>{o().catch(()=>{})},[o]),{...r,refreshAll:o,refreshRuntime:c}}function T(e){return[...e].sort((r,t)=>{const o=r.cwd.localeCompare(t.cwd);return o!==0?o:r.name.localeCompare(t.name)})}export{O as D,U as a,F as b,H as c,B as d,V as e,z as f,_ as g,$ as h,G as i,Q as j,W as k,J as l,q as m,E as r,K as u};
@@ -1 +0,0 @@
1
- import{S as r,R as k,i,l as L,o as A,e as T,b as I,T as u}from"./event-DvH9tcej.js";class z{constructor(...e){this.type="Logical",e.length===1?"Logical"in e[0]?(this.width=e[0].Logical.width,this.height=e[0].Logical.height):(this.width=e[0].width,this.height=e[0].height):(this.width=e[0],this.height=e[1])}toPhysical(e){return new h(this.width*e,this.height*e)}[r](){return{width:this.width,height:this.height}}toJSON(){return this[r]()}}class h{constructor(...e){this.type="Physical",e.length===1?"Physical"in e[0]?(this.width=e[0].Physical.width,this.height=e[0].Physical.height):(this.width=e[0].width,this.height=e[0].height):(this.width=e[0],this.height=e[1])}toLogical(e){return new z(this.width/e,this.height/e)}[r](){return{width:this.width,height:this.height}}toJSON(){return this[r]()}}class c{constructor(e){this.size=e}toLogical(e){return this.size instanceof z?this.size:this.size.toLogical(e)}toPhysical(e){return this.size instanceof h?this.size:this.size.toPhysical(e)}[r](){return{[`${this.size.type}`]:{width:this.size.width,height:this.size.height}}}toJSON(){return this[r]()}}class x{constructor(...e){this.type="Logical",e.length===1?"Logical"in e[0]?(this.x=e[0].Logical.x,this.y=e[0].Logical.y):(this.x=e[0].x,this.y=e[0].y):(this.x=e[0],this.y=e[1])}toPhysical(e){return new a(this.x*e,this.y*e)}[r](){return{x:this.x,y:this.y}}toJSON(){return this[r]()}}class a{constructor(...e){this.type="Physical",e.length===1?"Physical"in e[0]?(this.x=e[0].Physical.x,this.y=e[0].Physical.y):(this.x=e[0].x,this.y=e[0].y):(this.x=e[0],this.y=e[1])}toLogical(e){return new x(this.x/e,this.y/e)}[r](){return{x:this.x,y:this.y}}toJSON(){return this[r]()}}class d{constructor(e){this.position=e}toLogical(e){return this.position instanceof x?this.position:this.position.toLogical(e)}toPhysical(e){return this.position instanceof a?this.position:this.position.toPhysical(e)}[r](){return{[`${this.position.type}`]:{x:this.position.x,y:this.position.y}}}toJSON(){return this[r]()}}class w extends k{constructor(e){super(e)}static async new(e,n,l){return i("plugin:image|new",{rgba:y(e),width:n,height:l}).then(o=>new w(o))}static async fromBytes(e){return i("plugin:image|from_bytes",{bytes:y(e)}).then(n=>new w(n))}static async fromPath(e){return i("plugin:image|from_path",{path:e}).then(n=>new w(n))}async rgba(){return i("plugin:image|rgba",{rid:this.rid}).then(e=>new Uint8Array(e))}async size(){return i("plugin:image|size",{rid:this.rid})}}function y(t){return t==null?null:typeof t=="string"?t:t instanceof w?t.rid:t}var p;(function(t){t[t.Critical=1]="Critical",t[t.Informational=2]="Informational"})(p||(p={}));class O{constructor(e){this._preventDefault=!1,this.event=e.event,this.id=e.id}preventDefault(){this._preventDefault=!0}isPreventDefault(){return this._preventDefault}}var m;(function(t){t.None="none",t.Normal="normal",t.Indeterminate="indeterminate",t.Paused="paused",t.Error="error"})(m||(m={}));function W(){return new D(window.__TAURI_INTERNALS__.metadata.currentWindow.label,{skip:!0})}async function b(){return i("plugin:window|get_all_windows").then(t=>t.map(e=>new D(e,{skip:!0})))}const _=["tauri://created","tauri://error"];class D{constructor(e,n={}){var l;this.label=e,this.listeners=Object.create(null),n!=null&&n.skip||i("plugin:window|create",{options:{...n,parent:typeof n.parent=="string"?n.parent:(l=n.parent)===null||l===void 0?void 0:l.label,label:e}}).then(async()=>this.emit("tauri://created")).catch(async o=>this.emit("tauri://error",o))}static async getByLabel(e){var n;return(n=(await b()).find(l=>l.label===e))!==null&&n!==void 0?n:null}static getCurrent(){return W()}static async getAll(){return b()}static async getFocusedWindow(){for(const e of await b())if(await e.isFocused())return e;return null}async listen(e,n){return this._handleTauriEvent(e,n)?()=>{const l=this.listeners[e];l.splice(l.indexOf(n),1)}:L(e,n,{target:{kind:"Window",label:this.label}})}async once(e,n){return this._handleTauriEvent(e,n)?()=>{const l=this.listeners[e];l.splice(l.indexOf(n),1)}:A(e,n,{target:{kind:"Window",label:this.label}})}async emit(e,n){if(_.includes(e)){for(const l of this.listeners[e]||[])l({event:e,id:-1,payload:n});return}return T(e,n)}async emitTo(e,n,l){if(_.includes(n)){for(const o of this.listeners[n]||[])o({event:n,id:-1,payload:l});return}return I(e,n,l)}_handleTauriEvent(e,n){return _.includes(e)?(e in this.listeners?this.listeners[e].push(n):this.listeners[e]=[n],!0):!1}async scaleFactor(){return i("plugin:window|scale_factor",{label:this.label})}async innerPosition(){return i("plugin:window|inner_position",{label:this.label}).then(e=>new a(e))}async outerPosition(){return i("plugin:window|outer_position",{label:this.label}).then(e=>new a(e))}async innerSize(){return i("plugin:window|inner_size",{label:this.label}).then(e=>new h(e))}async outerSize(){return i("plugin:window|outer_size",{label:this.label}).then(e=>new h(e))}async isFullscreen(){return i("plugin:window|is_fullscreen",{label:this.label})}async isMinimized(){return i("plugin:window|is_minimized",{label:this.label})}async isMaximized(){return i("plugin:window|is_maximized",{label:this.label})}async isFocused(){return i("plugin:window|is_focused",{label:this.label})}async isDecorated(){return i("plugin:window|is_decorated",{label:this.label})}async isResizable(){return i("plugin:window|is_resizable",{label:this.label})}async isMaximizable(){return i("plugin:window|is_maximizable",{label:this.label})}async isMinimizable(){return i("plugin:window|is_minimizable",{label:this.label})}async isClosable(){return i("plugin:window|is_closable",{label:this.label})}async isVisible(){return i("plugin:window|is_visible",{label:this.label})}async title(){return i("plugin:window|title",{label:this.label})}async theme(){return i("plugin:window|theme",{label:this.label})}async isAlwaysOnTop(){return i("plugin:window|is_always_on_top",{label:this.label})}async center(){return i("plugin:window|center",{label:this.label})}async requestUserAttention(e){let n=null;return e&&(e===p.Critical?n={type:"Critical"}:n={type:"Informational"}),i("plugin:window|request_user_attention",{label:this.label,value:n})}async setResizable(e){return i("plugin:window|set_resizable",{label:this.label,value:e})}async setEnabled(e){return i("plugin:window|set_enabled",{label:this.label,value:e})}async isEnabled(){return i("plugin:window|is_enabled",{label:this.label})}async setMaximizable(e){return i("plugin:window|set_maximizable",{label:this.label,value:e})}async setMinimizable(e){return i("plugin:window|set_minimizable",{label:this.label,value:e})}async setClosable(e){return i("plugin:window|set_closable",{label:this.label,value:e})}async setTitle(e){return i("plugin:window|set_title",{label:this.label,value:e})}async maximize(){return i("plugin:window|maximize",{label:this.label})}async unmaximize(){return i("plugin:window|unmaximize",{label:this.label})}async toggleMaximize(){return i("plugin:window|toggle_maximize",{label:this.label})}async minimize(){return i("plugin:window|minimize",{label:this.label})}async unminimize(){return i("plugin:window|unminimize",{label:this.label})}async show(){return i("plugin:window|show",{label:this.label})}async hide(){return i("plugin:window|hide",{label:this.label})}async close(){return i("plugin:window|close",{label:this.label})}async destroy(){return i("plugin:window|destroy",{label:this.label})}async setDecorations(e){return i("plugin:window|set_decorations",{label:this.label,value:e})}async setShadow(e){return i("plugin:window|set_shadow",{label:this.label,value:e})}async setEffects(e){return i("plugin:window|set_effects",{label:this.label,value:e})}async clearEffects(){return i("plugin:window|set_effects",{label:this.label,value:null})}async setAlwaysOnTop(e){return i("plugin:window|set_always_on_top",{label:this.label,value:e})}async setAlwaysOnBottom(e){return i("plugin:window|set_always_on_bottom",{label:this.label,value:e})}async setContentProtected(e){return i("plugin:window|set_content_protected",{label:this.label,value:e})}async setSize(e){return i("plugin:window|set_size",{label:this.label,value:e instanceof c?e:new c(e)})}async setMinSize(e){return i("plugin:window|set_min_size",{label:this.label,value:e instanceof c?e:e?new c(e):null})}async setMaxSize(e){return i("plugin:window|set_max_size",{label:this.label,value:e instanceof c?e:e?new c(e):null})}async setSizeConstraints(e){function n(l){return l?{Logical:l}:null}return i("plugin:window|set_size_constraints",{label:this.label,value:{minWidth:n(e==null?void 0:e.minWidth),minHeight:n(e==null?void 0:e.minHeight),maxWidth:n(e==null?void 0:e.maxWidth),maxHeight:n(e==null?void 0:e.maxHeight)}})}async setPosition(e){return i("plugin:window|set_position",{label:this.label,value:e instanceof d?e:new d(e)})}async setFullscreen(e){return i("plugin:window|set_fullscreen",{label:this.label,value:e})}async setSimpleFullscreen(e){return i("plugin:window|set_simple_fullscreen",{label:this.label,value:e})}async setFocus(){return i("plugin:window|set_focus",{label:this.label})}async setFocusable(e){return i("plugin:window|set_focusable",{label:this.label,value:e})}async setIcon(e){return i("plugin:window|set_icon",{label:this.label,value:y(e)})}async setSkipTaskbar(e){return i("plugin:window|set_skip_taskbar",{label:this.label,value:e})}async setCursorGrab(e){return i("plugin:window|set_cursor_grab",{label:this.label,value:e})}async setCursorVisible(e){return i("plugin:window|set_cursor_visible",{label:this.label,value:e})}async setCursorIcon(e){return i("plugin:window|set_cursor_icon",{label:this.label,value:e})}async setBackgroundColor(e){return i("plugin:window|set_background_color",{color:e})}async setCursorPosition(e){return i("plugin:window|set_cursor_position",{label:this.label,value:e instanceof d?e:new d(e)})}async setIgnoreCursorEvents(e){return i("plugin:window|set_ignore_cursor_events",{label:this.label,value:e})}async startDragging(){return i("plugin:window|start_dragging",{label:this.label})}async startResizeDragging(e){return i("plugin:window|start_resize_dragging",{label:this.label,value:e})}async setBadgeCount(e){return i("plugin:window|set_badge_count",{label:this.label,value:e})}async setBadgeLabel(e){return i("plugin:window|set_badge_label",{label:this.label,value:e})}async setOverlayIcon(e){return i("plugin:window|set_overlay_icon",{label:this.label,value:e?y(e):void 0})}async setProgressBar(e){return i("plugin:window|set_progress_bar",{label:this.label,value:e})}async setVisibleOnAllWorkspaces(e){return i("plugin:window|set_visible_on_all_workspaces",{label:this.label,value:e})}async setTitleBarStyle(e){return i("plugin:window|set_title_bar_style",{label:this.label,value:e})}async setTheme(e){return i("plugin:window|set_theme",{label:this.label,value:e})}async onResized(e){return this.listen(u.WINDOW_RESIZED,n=>{n.payload=new h(n.payload),e(n)})}async onMoved(e){return this.listen(u.WINDOW_MOVED,n=>{n.payload=new a(n.payload),e(n)})}async onCloseRequested(e){return this.listen(u.WINDOW_CLOSE_REQUESTED,async n=>{const l=new O(n);await e(l),l.isPreventDefault()||await this.destroy()})}async onDragDropEvent(e){const n=await this.listen(u.DRAG_ENTER,s=>{e({...s,payload:{type:"enter",paths:s.payload.paths,position:new a(s.payload.position)}})}),l=await this.listen(u.DRAG_OVER,s=>{e({...s,payload:{type:"over",position:new a(s.payload.position)}})}),o=await this.listen(u.DRAG_DROP,s=>{e({...s,payload:{type:"drop",paths:s.payload.paths,position:new a(s.payload.position)}})}),C=await this.listen(u.DRAG_LEAVE,s=>{e({...s,payload:{type:"leave"}})});return()=>{n(),o(),l(),C()}}async onFocusChanged(e){const n=await this.listen(u.WINDOW_FOCUS,o=>{e({...o,payload:!0})}),l=await this.listen(u.WINDOW_BLUR,o=>{e({...o,payload:!1})});return()=>{n(),l()}}async onScaleChanged(e){return this.listen(u.WINDOW_SCALE_FACTOR_CHANGED,e)}async onThemeChanged(e){return this.listen(u.WINDOW_THEME_CHANGED,e)}}var S;(function(t){t.Disabled="disabled",t.Throttle="throttle",t.Suspend="suspend"})(S||(S={}));var P;(function(t){t.Default="default",t.FluentOverlay="fluentOverlay"})(P||(P={}));var v;(function(t){t.AppearanceBased="appearanceBased",t.Light="light",t.Dark="dark",t.MediumLight="mediumLight",t.UltraDark="ultraDark",t.Titlebar="titlebar",t.Selection="selection",t.Menu="menu",t.Popover="popover",t.Sidebar="sidebar",t.HeaderView="headerView",t.Sheet="sheet",t.WindowBackground="windowBackground",t.HudWindow="hudWindow",t.FullScreenUI="fullScreenUI",t.Tooltip="tooltip",t.ContentBackground="contentBackground",t.UnderWindowBackground="underWindowBackground",t.UnderPageBackground="underPageBackground",t.Mica="mica",t.Blur="blur",t.Acrylic="acrylic",t.Tabbed="tabbed",t.TabbedDark="tabbedDark",t.TabbedLight="tabbedLight"})(v||(v={}));var f;(function(t){t.FollowsWindowActiveState="followsWindowActiveState",t.Active="active",t.Inactive="inactive"})(f||(f={}));function g(t){return t===null?null:{name:t.name,scaleFactor:t.scaleFactor,position:new a(t.position),size:new h(t.size),workArea:{position:new a(t.workArea.position),size:new h(t.workArea.size)}}}async function R(){return i("plugin:window|current_monitor").then(g)}async function N(){return i("plugin:window|primary_monitor").then(g)}async function M(t,e){return i("plugin:window|monitor_from_point",{x:t,y:e}).then(g)}async function B(){return i("plugin:window|available_monitors").then(t=>t.map(g))}async function F(){return i("plugin:window|cursor_position").then(t=>new a(t))}const U=Object.freeze(Object.defineProperty({__proto__:null,CloseRequestedEvent:O,get Effect(){return v},get EffectState(){return f},LogicalPosition:x,LogicalSize:z,PhysicalPosition:a,PhysicalSize:h,get ProgressBarStatus(){return m},get UserAttentionType(){return p},Window:D,availableMonitors:B,currentMonitor:R,cursorPosition:F,getAllWindows:b,getCurrentWindow:W,monitorFromPoint:M,primaryMonitor:N},Symbol.toStringTag,{value:"Module"}));export{d as P,W as g,y as t,U as w};