@henlii/pidance 0.2.27 → 0.2.28

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 (250) hide show
  1. package/.next/BUILD_ID +1 -1
  2. package/.next/app-path-routes-manifest.json +10 -9
  3. package/.next/build-manifest.json +2 -2
  4. package/.next/prerender-manifest.json +3 -3
  5. package/.next/required-server-files.json +1 -1
  6. package/.next/routes-manifest.json +8 -0
  7. package/.next/server/app/_global-error/page.js +3 -3
  8. package/.next/server/app/_global-error/page_client-reference-manifest.js +1 -1
  9. package/.next/server/app/_global-error.html +1 -1
  10. package/.next/server/app/_global-error.rsc +1 -1
  11. package/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
  12. package/.next/server/app/_global-error.segments/_global-error/__PAGE__.segment.rsc +1 -1
  13. package/.next/server/app/_global-error.segments/_global-error.segment.rsc +1 -1
  14. package/.next/server/app/_global-error.segments/_head.segment.rsc +1 -1
  15. package/.next/server/app/_global-error.segments/_index.segment.rsc +1 -1
  16. package/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  17. package/.next/server/app/_not-found/page.js +2 -2
  18. package/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  19. package/.next/server/app/_not-found.html +1 -1
  20. package/.next/server/app/_not-found.rsc +3 -3
  21. package/.next/server/app/_not-found.segments/_full.segment.rsc +3 -3
  22. package/.next/server/app/_not-found.segments/_head.segment.rsc +1 -1
  23. package/.next/server/app/_not-found.segments/_index.segment.rsc +3 -3
  24. package/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +1 -1
  25. package/.next/server/app/_not-found.segments/_not-found.segment.rsc +1 -1
  26. package/.next/server/app/_not-found.segments/_tree.segment.rsc +2 -2
  27. package/.next/server/app/api/about/route.js +1 -1
  28. package/.next/server/app/api/agent/[id]/bash-output/route.js +1 -1
  29. package/.next/server/app/api/agent/[id]/events/route.js +2 -2
  30. package/.next/server/app/api/agent/[id]/route.js +1 -1
  31. package/.next/server/app/api/agent/new/route.js +1 -1
  32. package/.next/server/app/api/agent/running/events/route.js +1 -1
  33. package/.next/server/app/api/agent/running/route.js +1 -1
  34. package/.next/server/app/api/agent-settings/route.js +2 -2
  35. package/.next/server/app/api/attachments/route.js +1 -1
  36. package/.next/server/app/api/auth/all-providers/route.js +1 -1
  37. package/.next/server/app/api/auth/api-key/[provider]/route.js +1 -1
  38. package/.next/server/app/api/auth/login/[provider]/route.js +2 -2
  39. package/.next/server/app/api/auth/logout/[provider]/route.js +1 -1
  40. package/.next/server/app/api/auth/providers/route.js +1 -1
  41. package/.next/server/app/api/auth/ui-session/route.js +1 -1
  42. package/.next/server/app/api/auth/ui-sessions/[id]/route.js +1 -1
  43. package/.next/server/app/api/auth/ui-sessions/route.js +1 -1
  44. package/.next/server/app/api/cwd/browse/route.js +1 -1
  45. package/.next/server/app/api/cwd/validate/route.js +1 -1
  46. package/.next/server/app/api/default-cwd/route.js +1 -1
  47. package/.next/server/app/api/file-index/route.js +1 -1
  48. package/.next/server/app/api/files/[...path]/route.js +1 -1
  49. package/.next/server/app/api/git/diff/route.js +1 -1
  50. package/.next/server/app/api/git/status/route.js +1 -1
  51. package/.next/server/app/api/home/route.js +1 -1
  52. package/.next/server/app/api/message-media/route.js +1 -1
  53. package/.next/server/app/api/models/route.js +1 -1
  54. package/.next/server/app/api/models-config/raw/route.js +1 -1
  55. package/.next/server/app/api/models-config/route.js +1 -1
  56. package/.next/server/app/api/models-config/test/route.js +1 -1
  57. package/.next/server/app/api/plugins/route.js +1 -1
  58. package/.next/server/app/api/plugins/search/route.js +1 -1
  59. package/.next/server/app/api/plugins/updates/route.js +1 -1
  60. package/.next/server/app/api/preferences/route.js +1 -1
  61. package/.next/server/app/api/project-assets/route.js +2 -2
  62. package/.next/server/app/api/prompts/route.js +1 -1
  63. package/.next/server/app/api/pty/route.js +2 -2
  64. package/.next/server/app/api/sessions/[id]/archive/route.js +1 -1
  65. package/.next/server/app/api/sessions/[id]/auto-name/route.js +1 -1
  66. package/.next/server/app/api/sessions/[id]/command-entry/route.js +1 -1
  67. package/.next/server/app/api/sessions/[id]/context/route.js +1 -1
  68. package/.next/server/app/api/sessions/[id]/entries/[entryId]/thinking/route.js +1 -1
  69. package/.next/server/app/api/sessions/[id]/export/route.js +1 -1
  70. package/.next/server/app/api/sessions/[id]/info/route.js +1 -1
  71. package/.next/server/app/api/sessions/[id]/outline/route.js +1 -0
  72. package/.next/server/app/api/sessions/[id]/outline/route_client-reference-manifest.js +1 -0
  73. package/.next/server/app/api/sessions/[id]/route.js +1 -1
  74. package/.next/server/app/api/sessions/[id]/state/route.js +1 -1
  75. package/.next/server/app/api/sessions/[id]/tool-results/[toolCallId]/route.js +1 -1
  76. package/.next/server/app/api/sessions/route.js +1 -1
  77. package/.next/server/app/api/sessions/search/route.js +1 -1
  78. package/.next/server/app/api/settings/raw/route.js +2 -2
  79. package/.next/server/app/api/settings/remote/route.js +1 -1
  80. package/.next/server/app/api/skills/check/route.js +1 -1
  81. package/.next/server/app/api/skills/install/route.js +1 -1
  82. package/.next/server/app/api/skills/route.js +1 -1
  83. package/.next/server/app/api/skills/search/route.js +1 -1
  84. package/.next/server/app/api/skills/update/route.js +1 -1
  85. package/.next/server/app/api/subagent-runs/route.js +1 -1
  86. package/.next/server/app/api/update/apply/route.js +2 -2
  87. package/.next/server/app/api/update/check/route.js +1 -1
  88. package/.next/server/app/api/worktrees/route.js +1 -1
  89. package/.next/server/app/icon.png/route.js +1 -1
  90. package/.next/server/app/index.html +1 -1
  91. package/.next/server/app/index.rsc +5 -5
  92. package/.next/server/app/index.segments/__PAGE__.segment.rsc +3 -3
  93. package/.next/server/app/index.segments/_full.segment.rsc +5 -5
  94. package/.next/server/app/index.segments/_head.segment.rsc +1 -1
  95. package/.next/server/app/index.segments/_index.segment.rsc +3 -3
  96. package/.next/server/app/index.segments/_tree.segment.rsc +2 -2
  97. package/.next/server/app/page.js +15 -15
  98. package/.next/server/app/page_client-reference-manifest.js +1 -1
  99. package/.next/server/app-paths-manifest.json +10 -9
  100. package/.next/server/chunks/188.js +1 -1
  101. package/.next/server/chunks/3379.js +1 -1
  102. package/.next/server/chunks/5274.js +1 -1
  103. package/.next/server/chunks/5304.js +1 -1
  104. package/.next/server/chunks/5582.js +1 -1
  105. package/.next/server/chunks/7594.js +2 -2
  106. package/.next/server/middleware-build-manifest.js +1 -1
  107. package/.next/server/middleware.js +3 -3
  108. package/.next/server/pages/404.html +1 -1
  109. package/.next/server/pages/500.html +1 -1
  110. package/.next/server/server-reference-manifest.json +1 -1
  111. package/.next/static/chunks/5519-9fb47277a49697d8.js +1 -0
  112. package/.next/static/chunks/9780-4b76db8fbfb345c2.js +1 -0
  113. package/.next/static/chunks/app/_global-error/{page-382488a1c2fa278d.js → page-005f7c16c8d63642.js} +1 -1
  114. package/.next/static/chunks/app/api/about/{route-382488a1c2fa278d.js → route-005f7c16c8d63642.js} +1 -1
  115. package/.next/static/chunks/app/api/agent/[id]/bash-output/{route-382488a1c2fa278d.js → route-005f7c16c8d63642.js} +1 -1
  116. package/.next/static/chunks/app/api/agent/[id]/events/route-005f7c16c8d63642.js +1 -0
  117. package/.next/static/chunks/app/api/agent/[id]/route-005f7c16c8d63642.js +1 -0
  118. package/.next/static/chunks/app/api/agent/new/route-005f7c16c8d63642.js +1 -0
  119. package/.next/static/chunks/app/api/agent/running/events/route-005f7c16c8d63642.js +1 -0
  120. package/.next/static/chunks/app/api/agent/running/route-005f7c16c8d63642.js +1 -0
  121. package/.next/static/chunks/app/api/agent-settings/{route-382488a1c2fa278d.js → route-005f7c16c8d63642.js} +1 -1
  122. package/.next/static/chunks/app/api/attachments/route-005f7c16c8d63642.js +1 -0
  123. package/.next/static/chunks/app/api/auth/all-providers/route-005f7c16c8d63642.js +1 -0
  124. package/.next/static/chunks/app/api/auth/api-key/[provider]/route-005f7c16c8d63642.js +1 -0
  125. package/.next/static/chunks/app/api/auth/login/[provider]/route-005f7c16c8d63642.js +1 -0
  126. package/.next/static/chunks/app/api/auth/logout/[provider]/route-005f7c16c8d63642.js +1 -0
  127. package/.next/static/chunks/app/api/auth/providers/route-005f7c16c8d63642.js +1 -0
  128. package/.next/static/chunks/app/api/auth/ui-session/route-005f7c16c8d63642.js +1 -0
  129. package/.next/static/chunks/app/api/auth/ui-sessions/[id]/route-005f7c16c8d63642.js +1 -0
  130. package/.next/static/chunks/app/api/auth/ui-sessions/route-005f7c16c8d63642.js +1 -0
  131. package/.next/static/chunks/app/api/cwd/browse/route-005f7c16c8d63642.js +1 -0
  132. package/.next/static/chunks/app/api/cwd/validate/route-005f7c16c8d63642.js +1 -0
  133. package/.next/static/chunks/app/api/default-cwd/route-005f7c16c8d63642.js +1 -0
  134. package/.next/static/chunks/app/api/file-index/route-005f7c16c8d63642.js +1 -0
  135. package/.next/static/chunks/app/api/files/[...path]/route-005f7c16c8d63642.js +1 -0
  136. package/.next/static/chunks/app/api/git/diff/route-005f7c16c8d63642.js +1 -0
  137. package/.next/static/chunks/app/api/git/status/route-005f7c16c8d63642.js +1 -0
  138. package/.next/static/chunks/app/api/home/route-005f7c16c8d63642.js +1 -0
  139. package/.next/static/chunks/app/api/message-media/route-005f7c16c8d63642.js +1 -0
  140. package/.next/static/chunks/app/api/models/route-005f7c16c8d63642.js +1 -0
  141. package/.next/static/chunks/app/api/models-config/raw/route-005f7c16c8d63642.js +1 -0
  142. package/.next/static/chunks/app/api/models-config/route-005f7c16c8d63642.js +1 -0
  143. package/.next/static/chunks/app/api/models-config/test/route-005f7c16c8d63642.js +1 -0
  144. package/.next/static/chunks/app/api/plugins/route-005f7c16c8d63642.js +1 -0
  145. package/.next/static/chunks/app/api/plugins/search/route-005f7c16c8d63642.js +1 -0
  146. package/.next/static/chunks/app/api/plugins/updates/route-005f7c16c8d63642.js +1 -0
  147. package/.next/static/chunks/app/api/preferences/route-005f7c16c8d63642.js +1 -0
  148. package/.next/static/chunks/app/api/project-assets/route-005f7c16c8d63642.js +1 -0
  149. package/.next/static/chunks/app/api/prompts/route-005f7c16c8d63642.js +1 -0
  150. package/.next/static/chunks/app/api/pty/route-005f7c16c8d63642.js +1 -0
  151. package/.next/static/chunks/app/api/sessions/[id]/archive/route-005f7c16c8d63642.js +1 -0
  152. package/.next/static/chunks/app/api/sessions/[id]/auto-name/route-005f7c16c8d63642.js +1 -0
  153. package/.next/static/chunks/app/api/sessions/[id]/command-entry/route-005f7c16c8d63642.js +1 -0
  154. package/.next/static/chunks/app/api/sessions/[id]/context/route-005f7c16c8d63642.js +1 -0
  155. package/.next/static/chunks/app/api/sessions/[id]/entries/[entryId]/thinking/route-005f7c16c8d63642.js +1 -0
  156. package/.next/static/chunks/app/api/sessions/[id]/export/route-005f7c16c8d63642.js +1 -0
  157. package/.next/static/chunks/app/api/sessions/[id]/info/route-005f7c16c8d63642.js +1 -0
  158. package/.next/static/chunks/app/api/sessions/[id]/outline/route-005f7c16c8d63642.js +1 -0
  159. package/.next/static/chunks/app/api/sessions/[id]/route-005f7c16c8d63642.js +1 -0
  160. package/.next/static/chunks/app/api/sessions/[id]/state/route-005f7c16c8d63642.js +1 -0
  161. package/.next/static/chunks/app/api/sessions/[id]/tool-results/[toolCallId]/route-005f7c16c8d63642.js +1 -0
  162. package/.next/static/chunks/app/api/sessions/route-005f7c16c8d63642.js +1 -0
  163. package/.next/static/chunks/app/api/sessions/search/route-005f7c16c8d63642.js +1 -0
  164. package/.next/static/chunks/app/api/settings/raw/route-005f7c16c8d63642.js +1 -0
  165. package/.next/static/chunks/app/api/settings/remote/route-005f7c16c8d63642.js +1 -0
  166. package/.next/static/chunks/app/api/skills/check/route-005f7c16c8d63642.js +1 -0
  167. package/.next/static/chunks/app/api/skills/install/route-005f7c16c8d63642.js +1 -0
  168. package/.next/static/chunks/app/api/skills/route-005f7c16c8d63642.js +1 -0
  169. package/.next/static/chunks/app/api/skills/search/route-005f7c16c8d63642.js +1 -0
  170. package/.next/static/chunks/app/api/skills/update/route-005f7c16c8d63642.js +1 -0
  171. package/.next/static/chunks/app/api/subagent-runs/route-005f7c16c8d63642.js +1 -0
  172. package/.next/static/chunks/app/api/update/apply/route-005f7c16c8d63642.js +1 -0
  173. package/.next/static/chunks/app/api/update/check/route-005f7c16c8d63642.js +1 -0
  174. package/.next/static/chunks/app/api/worktrees/route-005f7c16c8d63642.js +1 -0
  175. package/.next/static/chunks/app/page-354e6fd7f7df840b.js +25 -0
  176. package/.next/static/chunks/next/dist/client/components/builtin/app-error-005f7c16c8d63642.js +1 -0
  177. package/.next/static/chunks/next/dist/client/components/builtin/forbidden-005f7c16c8d63642.js +1 -0
  178. package/.next/static/chunks/next/dist/client/components/builtin/not-found-005f7c16c8d63642.js +1 -0
  179. package/.next/static/chunks/next/dist/client/components/builtin/unauthorized-005f7c16c8d63642.js +1 -0
  180. package/.next/static/css/1c6fd1229e5153db.css +1 -0
  181. package/README.en.md +1 -1
  182. package/README.md +1 -1
  183. package/package.json +1 -1
  184. package/.next/static/chunks/5899-d39102936dbd4d36.js +0 -1
  185. package/.next/static/chunks/9780-9ff103301d973613.js +0 -1
  186. package/.next/static/chunks/app/api/agent/[id]/events/route-382488a1c2fa278d.js +0 -1
  187. package/.next/static/chunks/app/api/agent/[id]/route-382488a1c2fa278d.js +0 -1
  188. package/.next/static/chunks/app/api/agent/new/route-382488a1c2fa278d.js +0 -1
  189. package/.next/static/chunks/app/api/agent/running/events/route-382488a1c2fa278d.js +0 -1
  190. package/.next/static/chunks/app/api/agent/running/route-382488a1c2fa278d.js +0 -1
  191. package/.next/static/chunks/app/api/attachments/route-382488a1c2fa278d.js +0 -1
  192. package/.next/static/chunks/app/api/auth/all-providers/route-382488a1c2fa278d.js +0 -1
  193. package/.next/static/chunks/app/api/auth/api-key/[provider]/route-382488a1c2fa278d.js +0 -1
  194. package/.next/static/chunks/app/api/auth/login/[provider]/route-382488a1c2fa278d.js +0 -1
  195. package/.next/static/chunks/app/api/auth/logout/[provider]/route-382488a1c2fa278d.js +0 -1
  196. package/.next/static/chunks/app/api/auth/providers/route-382488a1c2fa278d.js +0 -1
  197. package/.next/static/chunks/app/api/auth/ui-session/route-382488a1c2fa278d.js +0 -1
  198. package/.next/static/chunks/app/api/auth/ui-sessions/[id]/route-382488a1c2fa278d.js +0 -1
  199. package/.next/static/chunks/app/api/auth/ui-sessions/route-382488a1c2fa278d.js +0 -1
  200. package/.next/static/chunks/app/api/cwd/browse/route-382488a1c2fa278d.js +0 -1
  201. package/.next/static/chunks/app/api/cwd/validate/route-382488a1c2fa278d.js +0 -1
  202. package/.next/static/chunks/app/api/default-cwd/route-382488a1c2fa278d.js +0 -1
  203. package/.next/static/chunks/app/api/file-index/route-382488a1c2fa278d.js +0 -1
  204. package/.next/static/chunks/app/api/files/[...path]/route-382488a1c2fa278d.js +0 -1
  205. package/.next/static/chunks/app/api/git/diff/route-382488a1c2fa278d.js +0 -1
  206. package/.next/static/chunks/app/api/git/status/route-382488a1c2fa278d.js +0 -1
  207. package/.next/static/chunks/app/api/home/route-382488a1c2fa278d.js +0 -1
  208. package/.next/static/chunks/app/api/message-media/route-382488a1c2fa278d.js +0 -1
  209. package/.next/static/chunks/app/api/models/route-382488a1c2fa278d.js +0 -1
  210. package/.next/static/chunks/app/api/models-config/raw/route-382488a1c2fa278d.js +0 -1
  211. package/.next/static/chunks/app/api/models-config/route-382488a1c2fa278d.js +0 -1
  212. package/.next/static/chunks/app/api/models-config/test/route-382488a1c2fa278d.js +0 -1
  213. package/.next/static/chunks/app/api/plugins/route-382488a1c2fa278d.js +0 -1
  214. package/.next/static/chunks/app/api/plugins/search/route-382488a1c2fa278d.js +0 -1
  215. package/.next/static/chunks/app/api/plugins/updates/route-382488a1c2fa278d.js +0 -1
  216. package/.next/static/chunks/app/api/preferences/route-382488a1c2fa278d.js +0 -1
  217. package/.next/static/chunks/app/api/project-assets/route-382488a1c2fa278d.js +0 -1
  218. package/.next/static/chunks/app/api/prompts/route-382488a1c2fa278d.js +0 -1
  219. package/.next/static/chunks/app/api/pty/route-382488a1c2fa278d.js +0 -1
  220. package/.next/static/chunks/app/api/sessions/[id]/archive/route-382488a1c2fa278d.js +0 -1
  221. package/.next/static/chunks/app/api/sessions/[id]/auto-name/route-382488a1c2fa278d.js +0 -1
  222. package/.next/static/chunks/app/api/sessions/[id]/command-entry/route-382488a1c2fa278d.js +0 -1
  223. package/.next/static/chunks/app/api/sessions/[id]/context/route-382488a1c2fa278d.js +0 -1
  224. package/.next/static/chunks/app/api/sessions/[id]/entries/[entryId]/thinking/route-382488a1c2fa278d.js +0 -1
  225. package/.next/static/chunks/app/api/sessions/[id]/export/route-382488a1c2fa278d.js +0 -1
  226. package/.next/static/chunks/app/api/sessions/[id]/info/route-382488a1c2fa278d.js +0 -1
  227. package/.next/static/chunks/app/api/sessions/[id]/route-382488a1c2fa278d.js +0 -1
  228. package/.next/static/chunks/app/api/sessions/[id]/state/route-382488a1c2fa278d.js +0 -1
  229. package/.next/static/chunks/app/api/sessions/[id]/tool-results/[toolCallId]/route-382488a1c2fa278d.js +0 -1
  230. package/.next/static/chunks/app/api/sessions/route-382488a1c2fa278d.js +0 -1
  231. package/.next/static/chunks/app/api/sessions/search/route-382488a1c2fa278d.js +0 -1
  232. package/.next/static/chunks/app/api/settings/raw/route-382488a1c2fa278d.js +0 -1
  233. package/.next/static/chunks/app/api/settings/remote/route-382488a1c2fa278d.js +0 -1
  234. package/.next/static/chunks/app/api/skills/check/route-382488a1c2fa278d.js +0 -1
  235. package/.next/static/chunks/app/api/skills/install/route-382488a1c2fa278d.js +0 -1
  236. package/.next/static/chunks/app/api/skills/route-382488a1c2fa278d.js +0 -1
  237. package/.next/static/chunks/app/api/skills/search/route-382488a1c2fa278d.js +0 -1
  238. package/.next/static/chunks/app/api/skills/update/route-382488a1c2fa278d.js +0 -1
  239. package/.next/static/chunks/app/api/subagent-runs/route-382488a1c2fa278d.js +0 -1
  240. package/.next/static/chunks/app/api/update/apply/route-382488a1c2fa278d.js +0 -1
  241. package/.next/static/chunks/app/api/update/check/route-382488a1c2fa278d.js +0 -1
  242. package/.next/static/chunks/app/api/worktrees/route-382488a1c2fa278d.js +0 -1
  243. package/.next/static/chunks/app/page-84ae8f24274d9a34.js +0 -25
  244. package/.next/static/chunks/next/dist/client/components/builtin/app-error-382488a1c2fa278d.js +0 -1
  245. package/.next/static/chunks/next/dist/client/components/builtin/forbidden-382488a1c2fa278d.js +0 -1
  246. package/.next/static/chunks/next/dist/client/components/builtin/not-found-382488a1c2fa278d.js +0 -1
  247. package/.next/static/chunks/next/dist/client/components/builtin/unauthorized-382488a1c2fa278d.js +0 -1
  248. package/.next/static/css/0cf9ed5690d76263.css +0 -1
  249. /package/.next/static/{P-GwTOtxwpdnWwlj9T66x → Ni2HugOTDE44QzNWaiTkR}/_buildManifest.js +0 -0
  250. /package/.next/static/{P-GwTOtxwpdnWwlj9T66x → Ni2HugOTDE44QzNWaiTkR}/_ssgManifest.js +0 -0
@@ -1,25 +0,0 @@
1
- (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[8974],{17581:(e,t,n)=>{Promise.resolve().then(n.bind(n,23901)),Promise.resolve().then(n.bind(n,84747))},23901:(e,t,n)=>{"use strict";n.d(t,{AppShell:()=>cl});var r=n(95155),i=n(12115),o=n(73321);let s=null;var l=n(47650);function a(e){let t=new Map;for(let n of e){let e=n.projectRoot??n.cwd,r=t.get(e);(!r||n.modified>r)&&t.set(e,n.modified)}return[...t.entries()].sort((e,t)=>t[1].localeCompare(e[1])).map(([e])=>e)}function d(e,t){if(!t)return e;let n=e.replaceAll("\\","/"),r=t.replaceAll("\\","/").replace(/\/$/,"");return n===r?"~":n.startsWith(`${r}/`)?`~${n.slice(r.length)}`:e}function c(e){let t=e.replaceAll("\\","/").replace(/\/+$/,""),n=t.lastIndexOf("/");return(n>=0?t.slice(n+1):t)||e}let u={status:"idle",error:null,cwd:null,projectRoot:null,branch:null,isGit:!1,isTopLevel:!1};function p(e){return null!==e.cwd&&null!==e.projectRoot?e:{...e,cwd:null,projectRoot:null,branch:null,isGit:!1,isTopLevel:!1}}function h(e,t){return e.status===t.status&&e.error===t.error&&e.cwd===t.cwd&&e.projectRoot===t.projectRoot&&e.branch===t.branch&&e.isGit===t.isGit&&e.isTopLevel===t.isTopLevel}function g(e){let t=e.filter(e=>!e.subagent),n=new Map;for(let e of t)n.set(e.id,{session:e,relation:null,children:[]});let r=new Map;for(let e of t)e.parentSessionId&&r.set(e.id,e.parentSessionId);let i=e=>{let t=r.get(e),i=new Set,o=[];for(;t;){if(i.has(t)||t===e)return null;i.add(t),o.push(t),t=r.get(t)}return o.find(e=>n.has(e))??null},o=new Map;for(let e of t){let t=i(e.id);t&&o.set(e.id,{parentId:t,relation:"fork"})}let s=e=>{let t=new Set([e]),n=o.get(e)?.parentId;for(;n;){if(t.has(n))return!0;t.add(n),n=o.get(n)?.parentId}return!1},l=[];for(let e of n.values()){let t=o.get(e.session.id),r=t?n.get(t.parentId):void 0;if(!t||!r||s(e.session.id)){l.push(e);continue}e.relation=t.relation,r.children.push(e)}let a=(e,t)=>t.session.modified.localeCompare(e.session.modified),d=(e,t)=>{if(t)e.sort(a);else{let t=e.filter(e=>"subagent"===e.relation).sort((e,t)=>(e.session.subagent?.runIndex??0)-(t.session.subagent?.runIndex??0)),n=e.filter(e=>"subagent"!==e.relation).sort(a);e.splice(0,e.length,...t,...n)}for(let t of e)d(t.children,!1)};return d(l,!0),l}function f(e,t){if(!t)return e;let n=[];for(let r of e){let e=f(r.children,t);((function(e,t){let n;return!t||(n=[e.name??"",e.firstMessage,e.id,e.worktreeBranch??""],e.subagent&&(n.push(e.subagent.agent??"",e.subagent.runId),n.push(`run ${e.subagent.runIndex}`,`run-${e.subagent.runIndex}`,String(e.subagent.runIndex))),n.join("\n").toLowerCase()).includes(t)})(r.session,t)||e.length>0)&&n.push({...r,children:e})}return n}function x(e,t){let n=(e,r)=>{for(let i of e){if(i.session.id===t)return r;let e=n(i.children,[...r,i.session.id]);if(e)return e}return null};return n(e,[])??[]}function m(e){let t=[],n=e=>{for(let r of e)r.children.length>0&&t.push(r.session.id),r.children.length>0&&n(r.children)};return n(e),t}function v(e){let t="";for(let n of e)n.modified>t&&(t=n.modified);return t}let y=new Intl.Collator(void 0,{numeric:!0,sensitivity:"base"});function b(e,t){if(t?.[e.root])return t[e.root];let n=e.root.replaceAll("\\","/").replace(/\/+$/,""),r=n.lastIndexOf("/");return(r>=0?n.slice(r+1):n)||e.root}function w(e,t){if(0===t.size)return[];let n=[];for(let r of e){let e=w(r.children,t);(t.has(r.session.id)||e.length>0)&&n.push({...r,children:e})}return n}function k(e){return"number"==typeof e&&Number.isFinite(e)?Math.min(520,Math.max(240,Math.round(e))):300}function j(e){return"number"==typeof e&&Number.isFinite(e)?Math.min(720,Math.max(320,Math.round(e))):400}function S(e){return"number"==typeof e&&Number.isFinite(e)?Math.min(960,Math.max(320,Math.round(e))):560}function C(e){if(null===e||"object"!=typeof e||Array.isArray(e))return{};let t={};for(let[n,r]of Object.entries(e)){let e=n.trim();if(!e||null===r||"object"!=typeof r||Array.isArray(r))continue;let i=Array.isArray(r.expanded)?r.expanded.filter(e=>"string"==typeof e):[],o="number"==typeof r.scrollTop&&Number.isFinite(r.scrollTop)&&r.scrollTop>0?Math.round(r.scrollTop):0;t[e]={expanded:i,scrollTop:o}}return t}let _={displayMode:"standard",collapsedProjectRoots:[],collapsedWorktreePaths:[],projectAliases:{},closedProjectRoots:[],addedProjectRoots:[],sidebarWidth:300,rightPanelOpen:!1,rightPanelWidth:400,changesPanelOpen:!0,changesPanelWidth:560,showRecentSessions:!0,pinnedSessionIds:[],fileExplorerState:{},projectSort:"recent",projectOrder:[]},I="pidance:sidebar-preferences";function R(e){return Array.isArray(e)?e.filter(e=>"string"==typeof e):[]}function T(e){return null===e||"object"!=typeof e?{..._,projectAliases:{},closedProjectRoots:[],collapsedProjectRoots:[],collapsedWorktreePaths:[]}:{displayMode:"compact"===e.displayMode||"standard"===e.displayMode?e.displayMode:_.displayMode,collapsedProjectRoots:R(e.collapsedProjectRoots),collapsedWorktreePaths:R(e.collapsedWorktreePaths),projectAliases:function(e){if(null===e||"object"!=typeof e||Array.isArray(e))return{};let t={};for(let[n,r]of Object.entries(e)){if("string"!=typeof r)continue;let e=n.trim(),i=r.trim();e&&i&&(t[e]=i)}return t}(e.projectAliases),closedProjectRoots:R(e.closedProjectRoots),addedProjectRoots:R(e.addedProjectRoots),sidebarWidth:k(e.sidebarWidth),rightPanelOpen:!0===e.rightPanelOpen,rightPanelWidth:j(e.rightPanelWidth),changesPanelOpen:!1!==e.changesPanelOpen,changesPanelWidth:S(e.changesPanelWidth),showRecentSessions:!1!==e.showRecentSessions,pinnedSessionIds:R(e.pinnedSessionIds),fileExplorerState:C(e.fileExplorerState),projectSort:M(e.projectSort),projectOrder:R(e.projectOrder)}}function M(e){return"az"===e||"za"===e||"fixed"===e||"recent"===e?e:_.projectSort}function E(e){return JSON.stringify({displayMode:e.displayMode,collapsedProjectRoots:e.collapsedProjectRoots,collapsedWorktreePaths:e.collapsedWorktreePaths,projectAliases:e.projectAliases,closedProjectRoots:e.closedProjectRoots,addedProjectRoots:e.addedProjectRoots,sidebarWidth:k(e.sidebarWidth),rightPanelOpen:!0===e.rightPanelOpen,rightPanelWidth:j(e.rightPanelWidth),changesPanelOpen:!1!==e.changesPanelOpen,changesPanelWidth:S(e.changesPanelWidth),showRecentSessions:!1!==e.showRecentSessions,pinnedSessionIds:R(e.pinnedSessionIds),fileExplorerState:C(e.fileExplorerState),projectSort:M(e.projectSort),projectOrder:R(e.projectOrder)})}function z(e){try{let t=e.getItem(I);if(null===t)return T(null);try{return T(JSON.parse(t))}catch{return T(null)}}catch{return T(null)}}function L(){return z(window.localStorage)}function W(e){try{window.localStorage.setItem(I,E(e))}catch{}}function A(e){return{displayMode:e.displayMode,collapsedProjectRoots:e.collapsedProjectRoots,collapsedWorktreePaths:e.collapsedWorktreePaths,closedProjectRoots:e.closedProjectRoots,addedProjectRoots:e.addedProjectRoots,showRecentSessions:e.showRecentSessions,pinnedSessionIds:e.pinnedSessionIds,projectSort:e.projectSort,projectOrder:e.projectOrder}}function P(e){var t,n=window.localStorage;try{let r=z(n);n.setItem(I,E({...r,rightPanelOpen:void 0===e.open?r.rightPanelOpen:(t=e.open,!0===t),rightPanelWidth:void 0===e.width?r.rightPanelWidth:j(e.width)}))}catch{}}function $(e){var t,n=window.localStorage;try{let r=z(n);n.setItem(I,E({...r,changesPanelOpen:void 0===e.open?r.changesPanelOpen:(t=e.open,!1!==t),changesPanelWidth:void 0===e.width?r.changesPanelWidth:S(e.width)}))}catch{}}function H(e,t){var n=window.localStorage;try{let r=z(n),i=C(r.fileExplorerState);e.trim()&&(i[e]={expanded:C({[e]:t})[e]?.expanded??[],scrollTop:Math.max(0,Math.round(Number.isFinite(t.scrollTop)?t.scrollTop:0))}),n.setItem(I,E({...r,fileExplorerState:i}))}catch{}}let F="pidance.streamingEnterDefault",D="followUp";function N(e){return"steer"===e?"steer":"followUp"}function B(){var e=window.localStorage;try{let t=e.getItem(F);if(null===t)return D;try{return N(JSON.parse(t))}catch{return N(t)}}catch{return D}}function O(e){var t=window.localStorage;try{t.setItem(F,JSON.stringify(N(e)))}catch{}}let U="pidance.autoUpdateCheck";function q(e){return!1!==e&&0!==e&&"0"!==e&&"false"!==e}function K(){var e=window.localStorage;try{let t=e.getItem(U);if(null===t)return!0;try{return q(JSON.parse(t))}catch{return q(t)}}catch{return!0}}function V(e){var t=window.localStorage;try{t.setItem(U,JSON.stringify(q(e)))}catch{}}let J="pidance.sessionList.v1";function Y(){try{let e=window.localStorage.getItem(J);if(!e)return null;let t=JSON.parse(e);if(!Array.isArray(t.sessions))return null;return t.sessions}catch{return null}}function G(e){try{let t=[...e].sort((e,t)=>e.modified<t.modified?1:e.modified>t.modified?-1:0).slice(0,50);window.localStorage.setItem(J,JSON.stringify({sessions:t}))}catch{}}var Z=n(69892);function X(e,t){let n=e[t];return"number"!=typeof n||!Number.isFinite(n)||n<5?5:Math.floor(n)}function Q(e,t,n){if(n)return e;let r=Math.max(0,Math.floor(t));return r>=e.length?e:e.slice(0,r)}function ee(e,t){let n=t.modified.localeCompare(e.modified);if(0!==n)return n;let r=t.created.localeCompare(e.created);return 0!==r?r:e.id.localeCompare(t.id)}function et(e,t){return e===t&&e>0}let en={status:"idle",worktrees:[]};function er(e,t,n){var r;let i,o=e[t];switch(n.status){case"idle":i=en;break;case"loading":i={status:"loading",worktrees:o?.worktrees??[]};break;case"ready":i={status:"ready",worktrees:n.worktrees};break;case"error":i={status:"error",worktrees:n.worktrees??o?.worktrees??[],error:n.error}}return(r=i,o&&o.status===r.status&&(o.error??void 0)===(r.error??void 0)&&function(e,t){if(e===t)return!0;if(e.length!==t.length)return!1;for(let n=0;n<e.length;n++){let r=e[n],i=t[n];if(r.path!==i.path||r.branch!==i.branch||r.isMain!==i.isMain)return!1}return!0}(o.worktrees,r.worktrees))?e:{...e,[t]:i}}let ei=(0,i.createContext)(null);function eo({children:e,initial:t}){let n=(0,i.useRef)(null);return n.current||(n.current=function(e={}){let t=p({...u,...e.identity}),n=new Set,r=t,i=()=>n.forEach(e=>e());return{getIdentitySnapshot:()=>r,subscribeIdentity:e=>(n.add(e),()=>n.delete(e)),setIdentity:e=>{let n=void 0!==e.cwd&&void 0===e.projectRoot?{...e,projectRoot:e.cwd}:e,o=p({...t,...n});h(t,o)||(r=t=o,i())},reset:()=>{let e=!h(t,u);r=t=u,e&&i()}}}(t)),(0,r.jsx)(ei.Provider,{value:n.current,children:e})}function es(){let e=(0,i.useContext)(ei);if(!e)throw Error("useProjectIdentity/useProjectActions 必须在 ProjectProvider 内使用");return e}function el(){let e=es();return(0,i.useSyncExternalStore)(e.subscribeIdentity,e.getIdentitySnapshot,e.getIdentitySnapshot)}var ea=n(99780),ed=n(61995);function ec(e,t){let n=new Date(e),r=new Date().getTime()-n.getTime(),i=Math.floor(r/6e4),o=Math.floor(r/36e5),s=Math.floor(r/864e5);return i<1?t("sidebar_justNow"):i<60?t("sidebar_minutesAgo",{count:i}):o<24?t("sidebar_hoursAgo",{count:o}):s<7?t("sidebar_daysAgo",{count:s}):n.toLocaleDateString()}function eu({text:e,style:t}){return(0,r.jsx)("span",{style:{overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",display:"block",minWidth:0,lineHeight:1.35,direction:"rtl",textAlign:"left",...t},children:(0,r.jsx)("span",{style:{unicodeBidi:"plaintext"},children:e})})}function ep({open:e,children:t,style:n}){let[o,s]=(0,i.useState)(e),[l,a]=(0,i.useState)(e);return((0,i.useEffect)(()=>{let t,n;return e?(s(!0),a(!1),t=window.requestAnimationFrame(()=>{t=window.requestAnimationFrame(()=>a(!0))})):(a(!1),n=setTimeout(()=>s(!1),140)),()=>{void 0!==t&&window.cancelAnimationFrame(t),n&&clearTimeout(n)}},[e]),o)?(0,r.jsx)("div",{style:{...n,opacity:+!!l,transform:l?"translateY(0) scale(1)":"translateY(-8px) scale(0.96)",transformOrigin:"top center",transition:"opacity 140ms ease, transform 140ms ease",pointerEvents:e?"auto":"none"},children:t}):null}let eh="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789!@#$%^&*";function eg(){let[e,t]=(0,i.useState)(!1),[n,o]=(0,i.useState)(!1),s=(0,i.useRef)(null),l=function(e,t){let[n,r]=(0,i.useState)(e),o=(0,i.useRef)(null),s=(0,i.useRef)(0);return(0,i.useEffect)(()=>{if(!t)return void r(e);s.current=0;let n=4*e.length,i=()=>{s.current+=1;let t=Math.floor(s.current/n*e.length);r(e.split("").map((e,n)=>" "===e?" ":n<t?e:eh[Math.floor(Math.random()*eh.length)]).join("")),s.current<n?o.current=requestAnimationFrame(i):r(e)};return o.current=requestAnimationFrame(i),()=>{o.current&&cancelAnimationFrame(o.current)}},[e,t]),n}(e?"0.2.27pexternal":"Pidance",n),a=(0,i.useCallback)(e=>{t(e),o(!0),setTimeout(()=>o(!1),(e?6:8)*4*(1e3/60)+100)},[]),d=(0,i.useCallback)(()=>{s.current&&clearTimeout(s.current);let t=!e;a(t),t&&(s.current=setTimeout(()=>a(!1),3e3))},[e,a]);return(0,i.useEffect)(()=>()=>{s.current&&clearTimeout(s.current)},[]),(0,r.jsx)("button",{onClick:d,style:{background:"none",border:"none",padding:0,cursor:"default",fontWeight:700,fontSize:15,letterSpacing:"-0.01em",color:e?"var(--accent)":"var(--text)",fontFamily:"var(--font-mono)",minWidth:"6ch"},children:l})}function ef({label:e,onClick:t,disabled:n=!1,active:i=!1,danger:o=!1,done:s=!1,hoverReveal:l=!1,expanded:a,pressed:d,haspopup:c,buttonRef:u,children:p}){let h=["sidebar-icon-btn"];return i&&h.push("sidebar-icon-btn--active"),o&&h.push("sidebar-icon-btn--danger"),s&&h.push("sidebar-icon-btn--done"),l&&h.push("sidebar-icon-btn--hover"),(0,r.jsx)("button",{type:"button",ref:u,onClick:t,disabled:n,"data-tooltip":e,"aria-label":e,"aria-expanded":a,"aria-pressed":d,"aria-haspopup":c,className:h.join(" "),children:p})}function ex(e){return{width:e,height:e,viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:1.75,strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":!0}}let em=({size:e=18})=>(0,r.jsxs)("svg",{...ex(e),children:[(0,r.jsx)("path",{d:"M20 20a2 2 0 0 0 2-2V8a2 2 0 0 0-2-2h-7.9a2 2 0 0 1-1.69-.9L9.6 3.9A2 2 0 0 0 7.93 3H4a2 2 0 0 0-2 2v13a2 2 0 0 0 2 2Z"}),(0,r.jsx)("path",{d:"M12 10v6"}),(0,r.jsx)("path",{d:"M9 13h6"})]}),ev=({size:e=14})=>(0,r.jsx)("svg",{...ex(e),children:(0,r.jsx)("path",{d:"M20 20a2 2 0 0 0 2-2V8a2 2 0 0 0-2-2h-7.9a2 2 0 0 1-1.69-.9L9.6 3.9A2 2 0 0 0 7.93 3H4a2 2 0 0 0-2 2v13a2 2 0 0 0 2 2Z"})}),ey=({size:e=14})=>(0,r.jsxs)("svg",{...ex(e),children:[(0,r.jsx)("path",{d:"M3 12a9 9 0 1 0 3-6.7"}),(0,r.jsx)("path",{d:"M3 4v5h5"}),(0,r.jsx)("path",{d:"M12 7v5l3 2"})]}),eb=({size:e=13})=>(0,r.jsxs)("svg",{...ex(e),children:[(0,r.jsx)("path",{d:"M12 17v5"}),(0,r.jsx)("path",{d:"M9 10.76a2 2 0 0 1-1.11 1.79l-1.78.9A2 2 0 0 0 5 15.24V16a1 1 0 0 0 1 1h12a1 1 0 0 0 1-1v-.76a2 2 0 0 0-1.11-1.79l-1.78-.9A2 2 0 0 1 15 10.76V6h1a2 2 0 0 0 0-4H8a2 2 0 0 0 0 4h1z"})]}),ew=({size:e=18})=>(0,r.jsxs)("svg",{...ex(e),children:[(0,r.jsx)("rect",{x:"2",y:"3",width:"20",height:"5",rx:"1"}),(0,r.jsx)("path",{d:"M4 8v11a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8"}),(0,r.jsx)("path",{d:"M10 12h4"})]}),ek=({size:e=18})=>(0,r.jsxs)("svg",{...ex(e),children:[(0,r.jsx)("path",{d:"M21 15a2 2 0 0 1-2 2H7l-4 4V5a2 2 0 0 1 2-2h14a2 2 0 0 1 2 2z"}),(0,r.jsx)("path",{d:"M12 7v6"}),(0,r.jsx)("path",{d:"M9 10h6"})]}),ej=({size:e=18})=>(0,r.jsxs)("svg",{...ex(e),children:[(0,r.jsx)("circle",{cx:"11",cy:"11",r:"8"}),(0,r.jsx)("path",{d:"m21 21-4.3-4.3"})]}),eS=({size:e=18})=>(0,r.jsxs)("svg",{...ex(e),children:[(0,r.jsx)("line",{x1:"21",x2:"14",y1:"4",y2:"4"}),(0,r.jsx)("line",{x1:"10",x2:"3",y1:"4",y2:"4"}),(0,r.jsx)("line",{x1:"21",x2:"12",y1:"12",y2:"12"}),(0,r.jsx)("line",{x1:"8",x2:"3",y1:"12",y2:"12"}),(0,r.jsx)("line",{x1:"21",x2:"16",y1:"20",y2:"20"}),(0,r.jsx)("line",{x1:"12",x2:"3",y1:"20",y2:"20"}),(0,r.jsx)("line",{x1:"14",x2:"14",y1:"2",y2:"6"}),(0,r.jsx)("line",{x1:"8",x2:"8",y1:"10",y2:"14"}),(0,r.jsx)("line",{x1:"16",x2:"16",y1:"18",y2:"22"})]}),eC=({size:e=14})=>(0,r.jsx)("svg",{...ex(e),children:(0,r.jsx)("polyline",{points:"20 6 9 17 4 12"})}),e_=({size:e=15})=>(0,r.jsxs)("svg",{...ex(e),children:[(0,r.jsx)("path",{d:"m3 9 9-7 9 7v11a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2z"}),(0,r.jsx)("polyline",{points:"9 22 9 12 15 12 15 22"})]}),eI=({size:e=14})=>(0,r.jsxs)("svg",{...ex(e),children:[(0,r.jsx)("line",{x1:"18",y1:"6",x2:"6",y2:"18"}),(0,r.jsx)("line",{x1:"6",y1:"6",x2:"18",y2:"18"})]}),eR=({size:e=12})=>(0,r.jsxs)("svg",{...ex(e),children:[(0,r.jsx)("line",{x1:"6",y1:"3",x2:"6",y2:"15"}),(0,r.jsx)("circle",{cx:"18",cy:"6",r:"3"}),(0,r.jsx)("circle",{cx:"6",cy:"18",r:"3"}),(0,r.jsx)("path",{d:"M18 9a9 9 0 0 1-9 9"})]}),eT=({size:e=14})=>(0,r.jsxs)("svg",{...ex(e),children:[(0,r.jsx)("line",{x1:"6",y1:"3",x2:"6",y2:"15"}),(0,r.jsx)("circle",{cx:"6",cy:"18",r:"3"}),(0,r.jsx)("path",{d:"M18 9a9 9 0 0 1-9 9"}),(0,r.jsx)("circle",{cx:"18",cy:"6",r:"3"}),(0,r.jsx)("path",{d:"M15.5 17.5h5"}),(0,r.jsx)("path",{d:"M18 15v5"})]}),eM=({size:e=13})=>(0,r.jsxs)("svg",{...ex(e),children:[(0,r.jsx)("polyline",{points:"3 6 5 6 21 6"}),(0,r.jsx)("path",{d:"M19 6l-1 14a2 2 0 0 1-2 2H8a2 2 0 0 1-2-2L5 6"}),(0,r.jsx)("path",{d:"M10 11v6M14 11v6"}),(0,r.jsx)("path",{d:"M9 6V4a1 1 0 0 1 1-1h4a1 1 0 0 1 1 1v2"})]}),eE=({size:e=13})=>(0,r.jsx)("svg",{...ex(e),children:(0,r.jsx)("path",{d:"M17 3a2.828 2.828 0 1 1 4 4L7.5 20.5 2 22l1.5-5.5L17 3z"})}),ez=({size:e=14})=>(0,r.jsxs)("svg",{width:e,height:e,viewBox:"0 0 24 24",fill:"currentColor","aria-hidden":"true",children:[(0,r.jsx)("circle",{cx:"12",cy:"5",r:"1.7"}),(0,r.jsx)("circle",{cx:"12",cy:"12",r:"1.7"}),(0,r.jsx)("circle",{cx:"12",cy:"19",r:"1.7"})]});function eL({collapsed:e,label:t,left:n,onClick:i}){return(0,r.jsx)("button",{type:"button",onClick:e=>{i(e),e.currentTarget.blur()},"data-tooltip":t,"aria-label":t,className:"sidebar-indent-indicator",style:{display:"flex",alignItems:"center",justifyContent:"center",position:"absolute",left:n,top:"50%",width:16,height:20,padding:0,flexShrink:0,zIndex:1,background:"none",border:"none",borderRadius:5,color:"var(--text-dim)",cursor:"pointer",transform:`translateY(-50%)${e?" rotate(-90deg)":""}`,transition:"transform 0.15s"},children:(0,r.jsx)("svg",{width:"10",height:"10",viewBox:"0 0 10 10",fill:"none",stroke:"currentColor",strokeWidth:"1.8",strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":"true",children:(0,r.jsx)("polyline",{points:"2 3.5 5 6.5 8 3.5"})})})}function eW({primary:e=!1,danger:t=!1,disabled:n=!1,onClick:i,children:o}){let s=e||t;return(0,r.jsx)("button",{type:"button",onClick:i,disabled:n,style:{display:"inline-flex",alignItems:"center",justifyContent:"center",gap:6,height:30,padding:"0 14px",flexShrink:0,background:t?"var(--status-danger)":e?"var(--accent)":"var(--bg)",border:s?"none":"1px solid var(--border)",borderRadius:7,color:s?"#fff":"var(--text-muted)",cursor:n?"not-allowed":"pointer",fontSize:12,fontWeight:s?600:500,opacity:n?.55:1,whiteSpace:"nowrap"},children:o})}function eA({label:e,checked:t,onClick:n}){return(0,r.jsxs)("button",{type:"button",onClick:n,style:{display:"flex",alignItems:"center",gap:7,width:"100%",padding:"7px 10px",background:"var(--bg-elevated)",border:"none",color:t?"var(--text)":"var(--text-muted)",cursor:"pointer",textAlign:"left",fontSize:11.5},children:[t?(0,r.jsx)("span",{style:{color:"var(--accent)",display:"flex",flexShrink:0},children:(0,r.jsx)(eC,{size:11})}):(0,r.jsx)("span",{style:{width:11,flexShrink:0}}),e]})}function eP({icon:e,label:t,onClick:n}){return(0,r.jsxs)("button",{type:"button",role:"menuitem",onClick:n,style:{display:"flex",alignItems:"center",gap:8,width:"100%",padding:"7px 12px",background:"var(--bg-elevated)",border:"none",color:"var(--text-muted)",cursor:"pointer",textAlign:"left",fontSize:12,whiteSpace:"nowrap"},onMouseEnter:e=>{e.currentTarget.style.background="var(--bg-hover)",e.currentTarget.style.color="var(--text)"},onMouseLeave:e=>{e.currentTarget.style.background="var(--bg-elevated)",e.currentTarget.style.color="var(--text-muted)"},onFocus:e=>{e.currentTarget.style.background="var(--bg-hover)",e.currentTarget.style.color="var(--text)"},onBlur:e=>{e.currentTarget.style.background="var(--bg-elevated)",e.currentTarget.style.color="var(--text-muted)"},children:[(0,r.jsx)("span",{style:{display:"flex",flexShrink:0,color:"var(--text-dim)"},"aria-hidden":"true",children:e}),t]})}function e$({groupKey:e,total:t,visibleCount:n,searchActive:i,onShowMore:o,onShowFewer:s}){let{t:l}=(0,ea.s9)(),a=!i&&t>Math.max(0,Math.floor(n)),d=!i&&Math.floor(n)>5;return a||d?(0,r.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:4,padding:"2px 8px 5px 28px"},children:[a&&(0,r.jsxs)("button",{type:"button",className:"sidebar-pagination-btn",onClick:()=>o(e),children:[l("sidebar_showMore"),(0,r.jsxs)("span",{"aria-hidden":"true",children:["+",5]})]}),d&&(0,r.jsx)("button",{type:"button",className:"sidebar-pagination-btn",onClick:()=>s(e),children:l("sidebar_showFewer")})]}):null}function eH({size:e=14}){let{t}=(0,ea.s9)();return(0,r.jsx)("span",{title:t("sidebar_running"),"aria-label":t("sidebar_running"),style:{width:e,height:e,display:"inline-flex",alignItems:"center",justifyContent:"center",flexShrink:0,color:"var(--status-running)"},children:(0,r.jsx)("span",{"aria-hidden":"true",style:{display:"block",width:e-4,height:e-4,borderRadius:"50%",border:"2px solid currentColor",borderTopColor:"transparent",background:"transparent",boxSizing:"border-box",animation:"sidebar-running-spin 1s linear infinite"}})})}function eF({size:e=14}){let{t}=(0,ea.s9)();return(0,r.jsx)("span",{title:t("sidebar_waiting"),"aria-label":t("sidebar_waiting"),style:{width:e,height:e,display:"inline-flex",alignItems:"center",justifyContent:"center",flexShrink:0,color:"var(--status-waiting)"},children:(0,r.jsx)("span",{"aria-hidden":"true",style:{display:"block",width:6,height:6,borderRadius:"50%",background:"currentColor"}})})}function eD({startedAt:e,now:t,running:n}){let{t:i}=(0,ea.s9)();return n?(0,r.jsx)("span",{title:i("sidebar_running"),style:{display:"inline-flex",alignItems:"center",flexShrink:0,color:"var(--status-running)",fontSize:10,fontVariantNumeric:"tabular-nums",whiteSpace:"nowrap"},children:(0,r.jsx)("span",{children:void 0!==e?function(e,t){let n,r,{hours:i,minutes:o,seconds:s}=(r=Math.floor((n=Math.max(0,Math.floor(e/1e3)))/3600),{hours:r,minutes:Math.floor(n%3600/60),seconds:n%60});return i>0?t("sidebar_runningHoursMinutes",{h:i,m:o}):o>0?t("sidebar_runningMinutesSeconds",{m:o,s:s}):t("sidebar_runningSeconds",{s:s})}(Math.max(0,t-e),i):i("sidebar_running")})}):null}function eN({size:e=14}){let{t}=(0,ea.s9)();return(0,r.jsx)("span",{title:t("sidebar_activity"),"aria-label":t("sidebar_activity"),style:{width:e,height:e,display:"inline-flex",alignItems:"center",justifyContent:"center",flexShrink:0,color:"var(--status-unread)"},children:(0,r.jsx)("span",{"aria-hidden":"true",style:{display:"block",width:6,height:6,borderRadius:"50%",background:"currentColor"}})})}let eB=(0,i.createContext)({startedAt:new Map,now:Date.now()}),eO=(0,i.createContext)(new Set);function eU(){return(0,i.useContext)(eO)}let eq=0,eK=null,eV=[];function eJ(e){return eV.length>0&&eV[eV.length-1]===e}let eY=i.useLayoutEffect;function eG(){let e={top:0,left:0,width:Number.isFinite(window.innerWidth)?Math.max(0,window.innerWidth):0,height:Number.isFinite(window.innerHeight)?Math.max(0,window.innerHeight):0},t=window.visualViewport;if(!t)return e;let n=Number.isFinite(t.width)?Math.max(0,t.width):0,r=Number.isFinite(t.height)?Math.max(0,t.height):0;return n<=0||r<=0?e:{top:Number.isFinite(t.offsetTop)?Math.max(0,t.offsetTop):0,left:Number.isFinite(t.offsetLeft)?Math.max(0,t.offsetLeft):0,width:n,height:r}}function eZ(e){return Array.from(e.querySelectorAll('button:not([disabled]), [href], input:not([disabled]), select:not([disabled]), textarea:not([disabled]), [tabindex]:not([tabindex="-1"])')).filter(e=>e.getClientRects().length>0)}function eX({open:e,onClose:t,title:n,description:o,children:s,actions:a,width:d=560,height:c,zIndex:u=1e3,closeOnBackdrop:p=!0,closeOnEsc:h=!0,initialFocusRef:g,headerActions:f,contentPadding:x="14px 18px",closeLabel:m="Close"}){let v=(0,i.useRef)(null),y=(0,i.useId)(),b=(0,i.useId)(),w=(0,i.useRef)(null);null===w.current&&(w.current=Symbol("ViewportDialog")),(0,i.useEffect)(()=>{if(e){var t;let e;return t=w.current,eV.push(t),e=!1,()=>{if(e)return;e=!0;let n=eV.lastIndexOf(t);n>=0&&eV.splice(n,1)}}},[e]),(0,i.useEffect)(()=>{var t,n;if(!e)return;let r=document.activeElement,i=v.current,o=(t=g?.current,n=i?eZ(i):[],t??n[0]??i);return o?.focus({preventScroll:!0}),()=>{var e,t;let n=(e=r instanceof HTMLElement?r:null,t=e=>document.contains(e),null!==e&&t(e)?e:null);n?.focus({preventScroll:!0})}},[e,g]),(0,i.useEffect)(()=>{if(e){var t;let e;return t=document.body,0===eq&&(eK=t.style.overflow,t.style.overflow="hidden"),eq+=1,e=!1,()=>{e||(e=!0,0==(eq-=1)&&(t.style.overflow=eK??"",eK=null))}}},[e]),(0,i.useEffect)(()=>{if(!e)return;let n=w.current,r=e=>{let r=function(e){if(!e.isTop)return{stopPropagation:!1,preventDefault:!1,close:!1};let t="Escape"===e.key&&e.closeOnEsc&&!e.defaultPrevented;return{stopPropagation:!0,preventDefault:t,close:t}}({key:e.key,defaultPrevented:e.defaultPrevented,closeOnEsc:h,isTop:eJ(n)});r.stopPropagation&&(e.stopPropagation(),r.preventDefault&&e.preventDefault(),r.close&&t())};return document.addEventListener("keydown",r),()=>document.removeEventListener("keydown",r)},[e,h,t]),(0,i.useEffect)(()=>{if(!e)return;let t=w.current,n=e=>{if(!eJ(t))return;let n=v.current;!n||!(e.target instanceof Node)||n.contains(e.target)||(eZ(n)[0]??n).focus({preventScroll:!0})};return document.addEventListener("focusin",n),()=>document.removeEventListener("focusin",n)},[e]);let[k,j]=(0,i.useState)(null),S=(0,i.useRef)(0),C=(0,i.useCallback)(()=>{let e=eG();j(t=>t&&t.top===e.top&&t.left===e.left&&t.width===e.width&&t.height===e.height?t:e)},[]);if(eY(()=>{if(!e)return void j(null);C();let t=()=>{S.current||(S.current=requestAnimationFrame(()=>{S.current=0,C()}))};window.addEventListener("resize",t);let n=window.visualViewport;return n?.addEventListener("resize",t),n?.addEventListener("scroll",t),()=>{window.removeEventListener("resize",t),n?.removeEventListener("resize",t),n?.removeEventListener("scroll",t),S.current&&(cancelAnimationFrame(S.current),S.current=0)}},[e,C]),!e||"u"<typeof document)return null;let _="number"==typeof d?`${d}px`:d,I=k??eG(),R=function(e,t=16){return{maxWidth:Math.max(0,e.width-2*t),maxHeight:Math.max(0,e.height-2*t)}}(I),T="number"==typeof d?Math.min(d,R.maxWidth):`min(${_}, ${R.maxWidth}px)`,M=void 0===c?void 0:"number"==typeof c?Math.min(c,R.maxHeight):`min(${c}, ${R.maxHeight}px)`;return(0,l.createPortal)((0,r.jsx)("div",{onMouseDown:e=>{p&&e.target===e.currentTarget&&t()},style:{position:"fixed",top:I.top,left:I.left,width:I.width,height:I.height,zIndex:u,background:"rgba(0,0,0,0.35)",display:"flex",alignItems:"center",justifyContent:"center",padding:16,overscrollBehavior:"contain"},children:(0,r.jsxs)("div",{ref:v,role:"dialog","aria-modal":"true","aria-labelledby":y,"aria-describedby":o?b:void 0,tabIndex:-1,onKeyDown:e=>{if("Tab"!==e.key)return;let t=v.current;if(!t)return;let n=function(e){let{focusable:t,active:n,shiftKey:r,panel:i,contains:o}=e;if(0===t.length)return{handled:!0,target:i};let s=t[0],l=t[t.length-1],a=null!==n&&o(n);if(r){if(n===s||!a)return{handled:!0,target:l}}else if(n===l||!a)return{handled:!0,target:s};return{handled:!1}}({focusable:eZ(t),active:document.activeElement,shiftKey:e.shiftKey,panel:t,contains:e=>t.contains(e)});n.handled&&(e.preventDefault(),n.target.focus({preventScroll:!0}))},style:{width:"100%",maxWidth:T,maxHeight:R.maxHeight,...void 0!==M?{height:M,minHeight:0}:{},display:"flex",flexDirection:"column",background:"var(--bg)",border:"1px solid var(--border)",borderRadius:10,boxShadow:"0 8px 32px rgba(0,0,0,0.18)",overflow:"hidden",outline:"none"},children:[(0,r.jsxs)("div",{style:{display:"flex",alignItems:"center",justifyContent:"space-between",gap:12,padding:"12px 18px",borderBottom:"1px solid var(--border)",flexShrink:0},children:[(0,r.jsx)("div",{id:y,style:{fontSize:15,fontWeight:700,color:"var(--text)",minWidth:0,flex:1},children:n}),f,(0,r.jsx)("button",{type:"button",onClick:t,"aria-label":m,style:{flexShrink:0,display:"flex",alignItems:"center",justifyContent:"center",minWidth:32,minHeight:32,padding:"2px 6px",background:"none",border:"none",borderRadius:7,color:"var(--text-muted)",cursor:"pointer",fontSize:20,lineHeight:1},onMouseEnter:e=>{e.currentTarget.style.background="var(--bg-hover)",e.currentTarget.style.color="var(--text)"},onMouseLeave:e=>{e.currentTarget.style.background="none",e.currentTarget.style.color="var(--text-muted)"},children:"\xd7"})]}),o&&(0,r.jsx)("div",{id:b,style:{padding:"10px 18px",borderBottom:"1px solid var(--border)",fontSize:13,lineHeight:1.55,color:"var(--text-muted)",flexShrink:0},children:o}),s&&(0,r.jsx)("div",{style:{flex:1,minHeight:0,overflowY:"auto",overscrollBehavior:"contain",padding:x},children:s}),a&&(0,r.jsx)("div",{style:{display:"flex",alignItems:"center",justifyContent:"flex-end",gap:8,padding:"12px 18px",borderTop:"1px solid var(--border)",flexShrink:0},children:a})]})}),document.body)}let eQ={readOnly:!1,canPrompt:!0,canFork:!0,canCompact:!0,canChangeModel:!0,canChangeThinking:!0,canChangeTools:!0,canRename:!0,canAutoName:!0,canDelete:!0,canConnectEvents:!0,canSendSessionCommands:!0},e0={readOnly:!0,canPrompt:!1,canFork:!1,canCompact:!1,canChangeModel:!1,canChangeThinking:!1,canChangeTools:!1,canRename:!1,canAutoName:!1,canDelete:!1,canConnectEvents:!1,canSendSessionCommands:!1};function e1(e){return e?.readOnly===!0?e0:eQ}function e2(e){if(navigator.clipboard?.writeText)return navigator.clipboard.writeText(e);try{let t=document.createElement("textarea");return t.value=e,t.style.position="fixed",t.style.opacity="0",document.body.appendChild(t),t.select(),document.execCommand("copy"),document.body.removeChild(t),Promise.resolve()}catch{return Promise.reject()}}function e4(e){return`/api/sessions/${encodeURIComponent(e)}/export`}function e6(e,t,n=2){return!!e&&!!t&&(Math.abs(e.top-t.top)>=n||Math.abs(e.right-t.right)>=n)}function e5({open:e,onOpenChange:t,projectName:n,onEdit:o,onClose:s}){let{t:a}=(0,ea.s9)(),d=(0,i.useRef)(null),c=(0,i.useRef)(null),u=(0,i.useRef)(null),[p,h]=(0,i.useState)(null),g=(0,i.useRef)(null),f=(0,i.useCallback)(e=>{t(!1),e&&c.current?.focus()},[t]),x=(0,i.useCallback)(()=>{if(e)return void f(!0);let n=c.current?.getBoundingClientRect();n&&(g.current={top:n.top,bottom:n.bottom,right:n.right},h({top:n.bottom+4,right:Math.max(8,window.innerWidth-n.right)})),t(!0)},[e,f,t]);return(0,i.useEffect)(()=>{if(!e||!g.current)return;let t=requestAnimationFrame(()=>{let e=u.current,t=g.current;if(!e||!t)return;let n=e.offsetHeight;t.bottom+4+n<=window.innerHeight||h(e=>e?{...e,top:Math.max(8,t.top-n-4)}:e)});return()=>cancelAnimationFrame(t)},[e]),(0,i.useEffect)(()=>{if(!e)return;let n=e=>{!d.current||d.current.contains(e.target)||u.current?.contains(e.target)||t(!1)},r=()=>{let e=c.current?.getBoundingClientRect();e6(g.current,e?{top:e.top,right:e.right}:null)&&t(!1)};return document.addEventListener("mousedown",n),window.addEventListener("scroll",r,!0),window.addEventListener("resize",r),()=>{document.removeEventListener("mousedown",n),window.removeEventListener("scroll",r,!0),window.removeEventListener("resize",r)}},[e,t]),(0,i.useEffect)(()=>{if(!e)return;let t=requestAnimationFrame(()=>{u.current?.querySelector("[role='menuitem']")?.focus()});return()=>cancelAnimationFrame(t)},[e]),(0,r.jsxs)("div",{ref:d,style:{position:"relative",flexShrink:0,display:"flex"},onClick:e=>e.stopPropagation(),onKeyDown:t=>{"Escape"===t.key&&e&&(t.stopPropagation(),t.preventDefault(),f(!0))},children:[(0,r.jsx)(ef,{label:a("sidebar_projectMenuLabel",{project:n}),active:e,expanded:e,haspopup:"menu",hoverReveal:!0,buttonRef:c,onClick:e=>{e.stopPropagation(),x()},children:(0,r.jsx)(ez,{size:14})}),e&&(0,l.createPortal)((0,r.jsx)(ep,{open:e,style:{position:"fixed",top:p?.top??0,right:p?.right??0,zIndex:600,background:"var(--bg-elevated)",border:"1px solid var(--border)",borderRadius:"var(--radius-md)",boxShadow:"var(--shadow-float)",overflow:"hidden",minWidth:148},children:(0,r.jsxs)("div",{ref:u,role:"menu","aria-label":a("sidebar_projectMenuLabel",{project:n}),children:[(0,r.jsx)(eP,{icon:(0,r.jsx)(eE,{size:13}),label:a("sidebar_editProject"),onClick:()=>{f(!0),o()}}),(0,r.jsx)(eP,{icon:(0,r.jsx)(eI,{size:13}),label:a("sidebar_closeProject"),onClick:()=>{f(!0),s()}})]})}),document.body)]})}function e8({session:e,title:t,canRename:n,canDelete:o,canArchive:s,archiveDisabledReason:a,isPinned:d,onTogglePin:c,onRename:u,onDelete:p,onArchive:h}){var g;let f,{t:x}=(0,ea.s9)(),[m,v]=(0,i.useState)(!1),[y,b]=(0,i.useState)(null),w=(0,i.useRef)(null),k=(0,i.useRef)(null),j=(0,i.useRef)(null),S=x("sidebar_sessionMenuLabel",{session:t}),C=(0,i.useCallback)((e=!1)=>{v(!1),e&&k.current?.focus()},[]);(0,i.useEffect)(()=>{if(!m||!w.current)return;let e=requestAnimationFrame(()=>{let e=j.current,t=w.current;if(!e||!t)return;let n=e.offsetHeight;t.bottom+4+n<=window.innerHeight||b(e=>e?{...e,top:Math.max(8,t.top-n-4)}:e)});return()=>cancelAnimationFrame(e)},[m]),(0,i.useEffect)(()=>{if(!m)return;let e=e=>{let t=e.target;j.current?.contains(t)||k.current?.contains(t)||C()},t=()=>{let e=k.current?.getBoundingClientRect();e6(w.current,e?{top:e.top,right:e.right}:null)&&C()};document.addEventListener("mousedown",e),window.addEventListener("resize",t),window.addEventListener("scroll",t,!0);let n=requestAnimationFrame(()=>j.current?.querySelector("[role='menuitem']")?.focus());return()=>{cancelAnimationFrame(n),document.removeEventListener("mousedown",e),window.removeEventListener("resize",t),window.removeEventListener("scroll",t,!0)}},[C,m]);let _={display:"flex",alignItems:"center",gap:8,width:"100%",minHeight:32,padding:"6px 11px",boxSizing:"border-box",background:"var(--bg-elevated)",border:"none",color:"var(--text-muted)",cursor:"pointer",textAlign:"left",textDecoration:"none",fontSize:12,whiteSpace:"nowrap"},I={onMouseEnter:e=>{e.currentTarget.style.background="var(--bg-hover)",e.currentTarget.style.color="var(--text)"},onMouseLeave:e=>{e.currentTarget.style.background="var(--bg-elevated)",e.currentTarget.style.color="var(--text-muted)"}},R=e=>(0,r.jsx)("span",{"aria-hidden":"true",style:{display:"flex",color:"var(--text-dim)"},children:e});return(0,r.jsxs)("div",{style:{display:"flex",flexShrink:0},onClick:e=>e.stopPropagation(),onKeyDown:e=>{"Escape"===e.key&&m&&(e.preventDefault(),C(!0))},children:[(0,r.jsx)(ef,{label:S,active:m,expanded:m,haspopup:"menu",hoverReveal:!0,buttonRef:k,onClick:e=>{e.stopPropagation(),(()=>{if(m)return C();let e=k.current?.getBoundingClientRect();e&&(w.current={top:e.top,bottom:e.bottom,right:e.right},b({top:e.bottom+4,right:Math.max(8,window.innerWidth-e.right)})),v(!0)})()},children:(0,r.jsx)(ez,{size:14})}),m&&y&&(0,l.createPortal)((0,r.jsxs)("div",{ref:j,role:"menu","aria-label":S,style:{position:"fixed",top:y.top,right:y.right,zIndex:600,minWidth:190,padding:4,background:"var(--bg-elevated)",border:"1px solid var(--border)",borderRadius:"var(--radius-md)",boxShadow:"var(--shadow-float)"},children:[n&&(0,r.jsxs)("button",{type:"button",role:"menuitem",style:_,...I,onClick:()=>{C(),u()},children:[R((0,r.jsx)(eE,{size:13})),x("sidebar_renameSession")]}),(0,r.jsxs)("button",{type:"button",role:"menuitem",style:_,...I,onClick:()=>{C(),e2(e.id)},children:[R((0,r.jsxs)("svg",{...ex(13),children:[(0,r.jsx)("rect",{x:"9",y:"9",width:"13",height:"13",rx:"2"}),(0,r.jsx)("path",{d:"M5 15H4a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h9a2 2 0 0 1 2 2v1"})]})),x("sidebar_copySessionId")]}),!e.subagent&&c&&(0,r.jsxs)("button",{type:"button",role:"menuitem",style:_,...I,onClick:()=>{C(),c()},children:[R((0,r.jsx)(eb,{size:13})),x(d?"sidebar_unpinSession":"sidebar_pinSession")]}),(s||null!==a)&&(0,r.jsxs)("button",{type:"button",role:"menuitem",disabled:!s,title:s?void 0:a??void 0,style:{..._,opacity:s?1:.45,cursor:s?"pointer":"not-allowed"},onClick:()=>{s&&(C(),h())},children:[R((0,r.jsx)(ew,{size:13})),x("sidebar_archiveSession")]}),"string"==typeof e?.id&&e.id.length>0&&(0,r.jsxs)(r.Fragment,{children:[(0,r.jsxs)("a",{role:"menuitem",href:e4(e.id),download:!0,style:_,...I,onClick:()=>C(),children:[R((0,r.jsxs)("svg",{...ex(13),children:[(0,r.jsx)("path",{d:"M12 3v12"}),(0,r.jsx)("path",{d:"m7 10 5 5 5-5"}),(0,r.jsx)("path",{d:"M5 21h14"})]})),x("sidebar_exportSessionHtml")]}),(0,r.jsxs)("a",{role:"menuitem",href:(g=e.id,f=new URLSearchParams({format:"jsonl"}),`${e4(g)}?${f.toString()}`),download:!0,style:_,...I,onClick:()=>C(),children:[R((0,r.jsxs)("svg",{...ex(13),children:[(0,r.jsx)("path",{d:"M8 3H7a2 2 0 0 0-2 2v4a2 2 0 0 1-2 2 2 2 0 0 1 2 2v4a2 2 0 0 0 2 2h1"}),(0,r.jsx)("path",{d:"M16 21h1a2 2 0 0 0 2-2v-4a2 2 0 0 1 2-2 2 2 0 0 1-2-2V5a2 2 0 0 0-2-2h-1"})]})),x("sidebar_exportSessionJsonl")]})]}),o&&(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)("div",{style:{height:1,margin:"4px 6px",background:"var(--border)"}}),(0,r.jsxs)("button",{type:"button",role:"menuitem",style:{..._,color:"var(--status-danger)"},onClick:()=>{C(),p()},children:[R((0,r.jsx)(eM,{size:13})),x("sidebar_deleteSession")]})]})]}),document.body)]})}function e3({project:e,homeDir:t,displayMode:n,projectAliases:i,selectedSessionId:o,runningSessionIds:s,subagentRunningIds:l,unreadSessionIds:a,collapsedProjectRoots:d,collapsedWorktreePaths:u,collapsedSessionIds:p,searchActive:h,onToggleProject:g,onToggleWorktree:f,onNewSession:x,onSelectSession:m,menuOpen:v,onMenuOpenChange:y,onEditProject:b,onCloseProject:w,onRenamed:k,onSessionDeleted:j,onToggleCollapse:S,groupVisibleCounts:C,onShowMore:_,onShowFewer:I,worktreeActions:R,wtNewOpen:T,wtNewBranch:M,wtError:E,wtConfirmRemove:z,wtNewInputRef:L,onStartCreateWorktree:W,onWtNewBranchChange:A,onSubmitCreateWorktree:P,onCancelCreateWorktree:$,onRequestRemoveWorktree:H,onConfirmRemoveWorktree:F,onCancelRemoveWorktree:D,onSessionArchive:N,isSessionPinned:B,onTogglePin:O,onProjectDrop:U}){var q;let{t:K}=(0,ea.s9)(),V=(q=e.root,!h&&d.has(q)),J=e.mainTree.length>0||e.worktrees.some(e=>e.tree.length>0),Y=i[e.root]??c(e.root),G=K(V?"sidebar_expandProjectNamed":"sidebar_collapseProjectNamed",{project:Y});return(0,r.jsxs)("div",{children:[(0,r.jsxs)("div",{className:"sidebar-row","data-sidebar-depth":0,role:"button",tabIndex:0,"aria-expanded":!V,"aria-label":G,draggable:!!U,onDragStart:t=>{U&&(t.dataTransfer.effectAllowed="move",t.dataTransfer.setData("text/pidance-project",e.root),t.dataTransfer.setData("text/plain",e.root))},onDragOver:e=>{U&&(e.preventDefault(),e.dataTransfer.dropEffect="move")},onDrop:t=>{if(!U)return;t.preventDefault(),t.stopPropagation();let n=t.dataTransfer.getData("text/pidance-project")||t.dataTransfer.getData("text/plain");n&&U(n,e.root)},onClick:()=>g(e.root),onMouseEnter:e=>{e.currentTarget.style.background="var(--bg-hover)"},onMouseLeave:e=>{e.currentTarget.style.background="transparent"},onKeyDown:t=>{t.target===t.currentTarget&&("Enter"===t.key||" "===t.key)&&(t.preventDefault(),g(e.root))},title:e.root,style:{display:"flex",alignItems:"center",gap:6,height:32,margin:"1px 6px",position:"relative",paddingLeft:32,paddingRight:8,borderRadius:6,cursor:"pointer",background:"transparent",color:"var(--text-muted)"},children:[(0,r.jsx)(eL,{collapsed:V,label:G,left:6,onClick:t=>{t.stopPropagation(),g(e.root)}}),(0,r.jsx)("span",{"aria-hidden":"true",className:"sidebar-indicator-icon",style:{position:"absolute",left:6,top:"50%",display:"flex",width:20,height:20,alignItems:"center",justifyContent:"center",transform:"translateY(-50%)",color:"var(--text-dim)"},children:(0,r.jsx)(ev,{size:13})}),(0,r.jsx)(eu,{text:Y,style:{flex:1,fontSize:12.5,fontWeight:600,fontFamily:"var(--font-mono)"}}),(0,r.jsx)(ef,{label:K("sidebar_newSessionIn",{project:Y}),hoverReveal:!0,onClick:t=>{t.stopPropagation(),x(e.root)},children:(0,r.jsx)(ek,{size:14})}),R&&(0,r.jsx)(ef,{label:R.createHint,disabled:!R.canManage||R.busy,hoverReveal:!0,onClick:e=>{e.stopPropagation(),W()},children:(0,r.jsx)(eT,{size:14})}),(0,r.jsx)(e5,{open:v,onOpenChange:y,projectName:Y,onEdit:b,onClose:w})]}),!V&&(0,r.jsxs)("div",{children:[(0,r.jsxs)("div",{children:[Q(e.mainTree,X(C,`main:${e.root}`),h).map(e=>(0,r.jsx)(e7,{node:e,selectedSessionId:o,runningSessionIds:s,subagentRunningIds:l,unreadSessionIds:a,onSelectSession:m,onRenamed:k,onSessionDeleted:j,onSessionArchive:N,isSessionPinned:B,onTogglePin:O,depth:0,collapsedSessionIds:p,searchActive:h,onToggleCollapse:S,displayMode:n},e.session.id)),(0,r.jsx)(e$,{groupKey:`main:${e.root}`,total:e.mainTree.length,visibleCount:X(C,`main:${e.root}`),searchActive:h,onShowMore:_,onShowFewer:I})]}),e.worktrees.map(e=>(0,r.jsx)(e9,{group:e,homeDir:t,displayMode:n,selectedSessionId:o,runningSessionIds:s,subagentRunningIds:l,unreadSessionIds:a,collapsedWorktreePaths:u,collapsedSessionIds:p,searchActive:h,onToggleWorktree:e=>f(e),onNewSession:()=>x(e.path),onSelectSession:m,onRenamed:k,onSessionDeleted:j,onToggleCollapse:S,visibleCount:X(C,`worktree:${e.path}`),onShowMore:()=>_(`worktree:${e.path}`),onShowFewer:()=>I(`worktree:${e.path}`),worktreeActions:R,confirmRemove:z===e.path,onRequestRemove:()=>H(e.path),onConfirmRemove:()=>F(e.path),onCancelRemove:D,onSessionArchive:N,isSessionPinned:B,onTogglePin:O},e.path)),T&&R?.canManage&&(0,r.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:6,padding:"4px 8px 4px 30px"},children:[(0,r.jsx)("span",{style:{display:"flex",color:"var(--text-dim)",flexShrink:0},children:(0,r.jsx)(eR,{size:11})}),(0,r.jsx)("input",{ref:L,value:M,onChange:e=>A(e.target.value),onKeyDown:e=>{"Enter"===e.key&&(e.preventDefault(),P()),"Escape"===e.key&&$()},placeholder:K("sidebar_branchName"),"aria-label":K("sidebar_branchName"),style:{flex:1,minWidth:0,height:26,fontSize:11,fontFamily:"var(--font-mono)",padding:"0 8px",border:"1px solid var(--accent)",borderRadius:5,outline:"none",background:"var(--bg)",color:"var(--text)",boxSizing:"border-box"}}),(0,r.jsx)(ef,{label:K(R.busy?"sidebar_creating":"sidebar_createWorktreeAction"),disabled:R.busy||!M.trim(),onClick:P,children:(0,r.jsx)(eC,{size:14})}),(0,r.jsx)(ef,{label:K("sidebar_cancel"),onClick:$,children:(0,r.jsx)(eI,{size:13})})]}),E&&R&&(0,r.jsx)("div",{style:{padding:"3px 10px 6px 30px",color:"var(--status-danger)",fontSize:11,lineHeight:1.35,overflowWrap:"anywhere"},children:E}),!J&&0===e.worktrees.length&&(0,r.jsx)("div",{style:{padding:"2px 10px 6px 31px",color:"var(--text-dim)",fontSize:11},children:K("sidebar_noSessionsYet")})]})]})}function e9({group:e,homeDir:t,displayMode:n,selectedSessionId:o,runningSessionIds:s,subagentRunningIds:l,unreadSessionIds:a,collapsedWorktreePaths:c,collapsedSessionIds:u,searchActive:p,onToggleWorktree:h,onNewSession:g,onSelectSession:f,onRenamed:x,onSessionDeleted:m,onToggleCollapse:v,visibleCount:y,onShowMore:b,onShowFewer:w,worktreeActions:k,confirmRemove:j,onRequestRemove:S,onConfirmRemove:C,onCancelRemove:_,onSessionArchive:I,isSessionPinned:R,onTogglePin:T}){var M;let{t:E}=(0,ea.s9)(),z=eU(),L=(M=e.path,!p&&c.has(M)),W=e.branch??d(e.path,t),A=E(L?"sidebar_expandWorktreeNamed":"sidebar_collapseWorktreeNamed",{name:W}),P=(0,i.useMemo)(()=>{let t=new Set([...s,...l]),n=e=>e.some(e=>t.has(e.session.id)||n(e.children));return n(e.tree)},[e,s,l]),$=(0,i.useMemo)(()=>{let t=e=>e.some(e=>z.has(e.session.id)||t(e.children));return t(e.tree)},[e,z]);return(0,r.jsxs)("div",{children:[(0,r.jsxs)("div",{className:"sidebar-row","data-sidebar-depth":0,role:"button",tabIndex:0,"aria-expanded":!L,"aria-label":A,onClick:()=>h(e.path),onMouseEnter:e=>{e.currentTarget.style.background="var(--bg-hover)"},onMouseLeave:e=>{e.currentTarget.style.background="transparent"},onKeyDown:t=>{t.target===t.currentTarget&&("Enter"===t.key||" "===t.key)&&(t.preventDefault(),h(e.path))},title:e.path,style:{display:"flex",alignItems:"center",gap:6,height:30,margin:"1px 6px",position:"relative",paddingLeft:32,paddingRight:8,borderRadius:6,cursor:"pointer",background:"transparent",color:"var(--text-muted)"},children:[(0,r.jsx)(eL,{collapsed:L,label:A,left:6,onClick:t=>{t.stopPropagation(),h(e.path)}}),(0,r.jsx)("span",{"aria-hidden":"true",className:"sidebar-indicator-icon",style:{position:"absolute",left:6,top:"50%",display:"flex",width:20,height:20,alignItems:"center",justifyContent:"center",transform:"translateY(-50%)",color:"var(--text-dim)"},children:(0,r.jsx)(eR,{size:11})}),P&&!$&&(0,r.jsx)("span",{"aria-hidden":"true",style:{position:"absolute",left:6,top:"50%",display:"flex",width:20,height:20,alignItems:"center",justifyContent:"center",transform:"translateY(-50%)",pointerEvents:"none"},children:(0,r.jsx)(eH,{size:18})}),(0,r.jsx)(eu,{text:W,style:{flex:1,fontSize:12,fontWeight:400,fontFamily:"var(--font-mono)"}}),$?(0,r.jsx)(eF,{size:10}):P&&(0,r.jsx)(eH,{size:10}),(0,r.jsx)(ef,{label:E("sidebar_newSessionIn",{project:W}),hoverReveal:!0,onClick:e=>{e.stopPropagation(),g()},children:(0,r.jsx)(ek,{size:13})}),k?.canManage&&!j&&(0,r.jsx)(ef,{label:E("sidebar_removeWorktreeAt",{path:e.path}),danger:!0,hoverReveal:!0,disabled:k.busy,onClick:e=>{e.stopPropagation(),S()},children:(0,r.jsx)(eM,{size:13})})]}),j&&(0,r.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:6,padding:"5px 8px 5px 30px",background:"var(--status-danger-bg)"},children:[(0,r.jsx)("span",{style:{flex:1,minWidth:0,fontSize:11,color:"var(--text)",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:E("sidebar_dirtyWorktreeConfirm")}),(0,r.jsx)("button",{type:"button",onClick:C,disabled:k?.busy,style:{padding:"3px 9px",background:"var(--status-danger)",border:"none",borderRadius:5,color:"#fff",fontSize:11,fontWeight:600,cursor:"pointer",flexShrink:0},children:E("sidebar_forceRemove")}),(0,r.jsx)("button",{type:"button",onClick:_,style:{padding:"3px 9px",background:"var(--bg-hover)",border:"1px solid var(--border)",borderRadius:5,color:"var(--text-muted)",fontSize:11,cursor:"pointer",flexShrink:0},children:E("sidebar_cancel")})]}),!L&&(0,r.jsxs)("div",{children:[Q(e.tree,y,p).map(e=>(0,r.jsx)(e7,{node:e,selectedSessionId:o,runningSessionIds:s,subagentRunningIds:l,unreadSessionIds:a,onSelectSession:f,onRenamed:x,onSessionDeleted:m,onSessionArchive:I,isSessionPinned:R,onTogglePin:T,depth:0,collapsedSessionIds:u,searchActive:p,onToggleCollapse:v,displayMode:n},e.session.id)),(0,r.jsx)(e$,{groupKey:e.path,total:e.tree.length,visibleCount:y,searchActive:p,onShowMore:b,onShowFewer:w}),0===e.tree.length&&(0,r.jsx)("div",{style:{padding:"2px 10px 5px 28px",color:"var(--text-dim)",fontSize:11},children:E("sidebar_noSessions")})]})]})}function e7({node:e,selectedSessionId:t,runningSessionIds:n,subagentRunningIds:i,unreadSessionIds:o,onSelectSession:s,onRenamed:l,onSessionDeleted:a,onSessionArchive:d,isSessionPinned:c,onTogglePin:u,depth:p,collapsedSessionIds:h,searchActive:g,onToggleCollapse:f,displayMode:x}){var m;let v=e.children.length>0,y=(m=e.session.id,!g&&h.has(m));return(0,r.jsxs)("div",{children:[(0,r.jsx)("div",{"data-session-id":e.session.id,style:{position:"relative"},children:(0,r.jsx)(te,{session:e.session,relation:e.relation,isSelected:e.session.id===t,isRunning:n.has(e.session.id)||i.has(e.session.id),isUnread:!e.session.subagent&&o.has(e.session.id),onClick:()=>s(e.session),onRenamed:l,onDeleted:e=>a?.(e),onArchive:e=>d?.(e),isPinned:c?.(e.session.id),onTogglePin:()=>u?.(e.session.id),depth:p,hasChildren:v,collapsed:y,onToggleCollapse:()=>f(e.session.id),displayMode:x})}),v&&!y&&(0,r.jsx)("div",{children:e.children.map(e=>(0,r.jsx)(e7,{node:e,selectedSessionId:t,runningSessionIds:n,subagentRunningIds:i,unreadSessionIds:o,onSelectSession:s,onRenamed:l,onSessionDeleted:a,onSessionArchive:d,isSessionPinned:c,onTogglePin:u,depth:p+1,collapsedSessionIds:h,searchActive:g,onToggleCollapse:f,displayMode:x},e.session.id))})]})}function te({session:e,relation:t=null,isSelected:n,isRunning:o,isUnread:s,onClick:l,onRenamed:a,onDeleted:d,onArchive:c,isPinned:u,onTogglePin:p,depth:h=0,hasChildren:g=!1,collapsed:f=!1,onToggleCollapse:x,displayMode:m}){let{t:v}=(0,ea.s9)(),[y,b]=(0,i.useState)(!1),[w,k]=(0,i.useState)(!1),[j,S]=(0,i.useState)(""),[C,_]=(0,i.useState)(!1),[I,R]=(0,i.useState)(!1),T=(0,i.useRef)(null),M=eU(),E=!!e.id&&M.has(e.id),z=e1(e),L=!0===o,W=!L&&!1===e1(e).readOnly,A=W?null:v(L?"archive_rowDisabledRunning":"archive_rowDisabledReadOnly"),P=(0,i.useContext)(eB),$=e.id?P.startedAt.get(e.id):void 0,H=!0===o&&!(g&&f),F=e.firstMessage.trim(),D=e.subagent&&(!F||"(no messages)"===F)?`${e.subagent.agent?`${e.subagent.agent} \xb7 `:""}${v("sidebar_runCount",{count:e.subagent.runIndex})}`:"",N="(no messages)"===F?v("sidebar_noMessages"):e.firstMessage,B=e.name||D||N.slice(0,50)||e.id.slice(0,12),O=(0,i.useCallback)(()=>{z.canRename&&(S(B),k(!0),setTimeout(()=>T.current?.select(),0))},[B,z.canRename]),U=(0,i.useCallback)(async()=>{if(!z.canRename)return void k(!1);let t=j.trim();if(k(!1),t!==(e.name??""))try{await fetch(`/api/sessions/${encodeURIComponent(e.id)}`,{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify({name:t})}),a?.()}catch{}},[j,e.id,e.name,a,z.canRename]),q=(0,i.useCallback)(()=>{z.canDelete&&_(!0)},[z.canDelete]),K=(0,i.useCallback)(async()=>{if(!z.canDelete)return void _(!1);_(!1),R(!0);try{if(!(await fetch(`/api/sessions/${encodeURIComponent(e.id)}`,{method:"DELETE"})).ok)return void R(!1);d?.(e.id)}catch{R(!1)}},[e.id,d,z.canDelete]),V=(0,i.useCallback)(()=>{_(!1)},[]),J="compact"===m,Y=J?30:40;return(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)("div",{className:"sidebar-row","data-sidebar-depth":h,onClick:w?void 0:l,onMouseEnter:()=>b(!0),onMouseLeave:()=>{b(!1)},style:{height:Y,display:"flex",alignItems:"center",width:"calc(100% - 12px)",margin:"1px 6px",position:"relative",paddingLeft:32+14*h,paddingRight:8,borderRadius:6,cursor:w?"default":"pointer",background:n?"var(--bg-selected)":y?"var(--bg-hover)":"transparent",borderLeft:n?"2px solid var(--accent)":"2px solid transparent",transition:"background 0.15s ease, color 0.15s ease",opacity:I?.5:1,gap:6,overflow:"hidden"},children:w?(0,r.jsx)("input",{ref:T,value:j,onChange:e=>S(e.target.value),onBlur:U,onKeyDown:e=>{"Enter"===e.key&&U(),"Escape"===e.key&&k(!1)},autoFocus:!0,"aria-label":v("sidebar_renameSession"),style:{flex:1,fontSize:J?11:12,padding:"0 8px",border:"1px solid var(--accent)",borderRadius:5,outline:"none",background:"var(--bg)",color:"var(--text)",height:J?20:28}}):(0,r.jsxs)(r.Fragment,{children:[g?(0,r.jsx)("button",{type:"button",className:"sidebar-chevron-btn sidebar-indent-indicator sidebar-chevron-always",onClick:e=>{e.stopPropagation(),x?.()},"data-tooltip":v(f?"sidebar_expandChild":"sidebar_collapseChild"),"aria-label":v(f?"sidebar_expandChild":"sidebar_collapseChild"),style:{display:"flex",alignItems:"center",justifyContent:"center",position:"absolute",left:6+14*h,top:"50%",width:20,height:20,padding:0,background:"none",border:"none",borderRadius:5,color:"var(--text-dim)",cursor:"pointer",transform:`translateY(-50%)${f?" rotate(-90deg)":""}`,transition:"transform 0.15s"},children:(0,r.jsx)("svg",{width:"10",height:"10",viewBox:"0 0 10 10",fill:"none",stroke:"currentColor",strokeWidth:"1.8",strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":"true",children:(0,r.jsx)("polyline",{points:"2 3.5 5 6.5 8 3.5"})})}):(0,r.jsx)("span",{className:"sidebar-indent-placeholder","aria-hidden":"true",style:{position:"absolute",left:6+14*h,top:"50%",width:20,height:20,transform:"translateY(-50%)"}}),o&&!E&&(0,r.jsx)("span",{"aria-hidden":"true",style:{position:"absolute",left:6+14*h,top:"50%",display:"flex",width:20,height:20,alignItems:"center",justifyContent:"center",transform:"translateY(-50%)",pointerEvents:"none"},children:(0,r.jsx)(eH,{size:18})}),(0,r.jsxs)("div",{style:{flex:1,minWidth:0},children:[(0,r.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:5,minWidth:0,fontSize:J?11.5:12,fontWeight:400,lineHeight:1.4,color:n?"var(--accent-hover)":"var(--text)"},title:B,children:[E?(0,r.jsx)(eF,{size:10}):!o&&s&&(0,r.jsx)(eN,{size:10}),!E&&H&&J&&(0,r.jsx)(eD,{startedAt:$,now:P.now,running:!0}),(0,r.jsx)("span",{style:{overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",minWidth:0},children:B}),J&&e.subagent&&(0,r.jsx)("span",{title:`${v("sidebar_subagentReadOnly")}${e.subagent.agent?` \xb7 ${e.subagent.agent}`:""} \xb7 ${v("sidebar_runCount",{count:e.subagent.runIndex})}`,style:{display:"inline-flex",alignItems:"center",flexShrink:0,padding:"0 5px",border:"1px solid color-mix(in srgb, var(--status-success) 42%, var(--border))",borderRadius:999,color:"var(--status-success)",fontSize:9,lineHeight:1.55},children:v("sidebar_subagentBadge")})]}),!J&&(0,r.jsxs)("div",{style:{marginTop:1,display:"flex",alignItems:"center",gap:8,color:"var(--text-dim)",fontSize:10.5,minWidth:0},children:[!E&&H&&(0,r.jsx)(eD,{startedAt:$,now:P.now,running:!0}),(0,r.jsx)("span",{title:e.modified,children:ec(e.modified,v)}),(0,r.jsx)("span",{children:v("sidebar_messagesCount",{count:e.messageCount})}),e.subagent&&(0,r.jsxs)("span",{title:`${v("sidebar_subagentReadOnly")}${e.subagent.agent?` \xb7 ${e.subagent.agent}`:""} \xb7 ${v("sidebar_runCount",{count:e.subagent.runIndex})}`,style:{display:"flex",alignItems:"center",gap:4,color:"var(--text-muted)",minWidth:0,overflow:"hidden"},children:[(0,r.jsx)("span",{style:{flexShrink:0,fontSize:9,padding:"0 5px",borderRadius:999,border:"1px solid color-mix(in srgb, var(--status-success) 42%, var(--border))",color:"var(--status-success)",lineHeight:1.55},children:v("sidebar_subagentBadge")}),(0,r.jsxs)("span",{style:{overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",fontFamily:"var(--font-mono)",fontSize:10},children:[e.subagent.agent?`${e.subagent.agent} \xb7 `:"",v("sidebar_runCount",{count:e.subagent.runIndex})]})]}),e.worktreeBranch&&(0,r.jsxs)("span",{title:v("sidebar_worktreeTooltip",{path:e.cwd}),style:{display:"flex",alignItems:"center",gap:3,color:"var(--accent)",minWidth:0,overflow:"hidden"},children:[(0,r.jsx)(eR,{size:9}),(0,r.jsx)("span",{style:{overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:e.worktreeBranch})]})]})]}),(0,r.jsx)(e8,{session:e,title:B,canRename:z.canRename,canDelete:z.canDelete,canArchive:W,archiveDisabledReason:A,isPinned:u,onTogglePin:p,onRename:O,onDelete:q,onArchive:()=>c?.(e.id)})]})}),(0,r.jsx)(eX,{open:C,onClose:V,title:v("sidebar_deleteSession"),description:v("sidebar_deleteConfirm",{name:B}),width:400,closeLabel:v("dialog_close"),actions:(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(eW,{disabled:I,onClick:V,children:v("sidebar_cancel")}),(0,r.jsx)(eW,{danger:!0,disabled:I,onClick:()=>void K(),children:v("sidebar_deleteSession")})]})})]})}function tt({open:e,onClose:t,resolveProjectRoot:n,onAdded:o}){let{t:s}=(0,ea.s9)(),l=(0,i.useRef)(null),[a,d]=(0,i.useState)(""),[c,u]=(0,i.useState)(null),[p,h]=(0,i.useState)(!1),[g,f]=(0,i.useState)([]),[x,m]=(0,i.useState)(null),[v,y]=(0,i.useState)(!1),[b,w]=(0,i.useState)(!1),[k,j]=(0,i.useState)(null),[S,C]=(0,i.useState)(null),_=(0,i.useRef)(0),I=(0,i.useCallback)(()=>{d(""),u(null),h(!1),f([]),m(null),y(!1),w(!1),j(null),C(null)},[]),R=(0,i.useCallback)(async e=>{let t=++_.current;y(!0),w(!1),u(null);try{let n=await fetch(`/api/cwd/browse?path=${encodeURIComponent(e)}`);if(t!==_.current)return;if(!n.ok){f([]),m(null),w(!0),j(null),C(null);return}let r=await n.json();if(t!==_.current)return;d(r.path??e),j(r.path??e),C(r.parentPath??null),f(r.entries??[]),m(r.git??null),w(!1)}catch{if(t!==_.current)return;f([]),m(null),w(!0),j(null),C(null)}finally{t===_.current&&y(!1)}},[]);(0,i.useEffect)(()=>{e?R(""):I()},[e,I,R]);let T=(0,i.useCallback)(()=>{t()},[t]),M=(0,i.useCallback)(async e=>{let t=(e??k??a).trim();if(t&&!p){h(!0),u(null);try{let e=await fetch("/api/cwd/validate",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({cwd:t})}),r=await e.json().catch(()=>({}));if(!e.ok||r.error)return void u(r.error??`HTTP ${e.status}`);let i=r.cwd??t;o(i,n(i))}catch(e){u(e instanceof Error?e.message:String(e))}finally{h(!1)}}},[k,a,p,o,n]),E=(0,i.useCallback)(async()=>{if(!p){h(!0),u(null);try{let e=await fetch("/api/default-cwd",{method:"POST"}),t=await e.json().catch(()=>({}));if(!e.ok||t.error||!t.cwd)return void u(t.error??`HTTP ${e.status}`);o(t.cwd,n(t.cwd))}catch(e){u(e instanceof Error?e.message:String(e))}finally{h(!1)}}},[p,o,n]),z=!!(k&&a.trim()===k);return(0,r.jsx)(eX,{open:e,onClose:T,title:s("sidebar_addProjectDialog"),width:440,closeLabel:s("dialog_close"),initialFocusRef:l,description:s("sidebar_addProjectDescription"),actions:(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(eW,{onClick:T,children:s("sidebar_cancel")}),(0,r.jsx)("span",{title:z?void 0:s("sidebar_browseOpenBeforeSelect"),children:(0,r.jsx)(eW,{primary:!0,disabled:p||!z,onClick:()=>void M(),children:s(p?"sidebar_validating":"sidebar_add")})})]}),children:(0,r.jsxs)("form",{onSubmit:e=>{e.preventDefault();let t=a.trim();t&&t!==k&&R(t)},children:[(0,r.jsx)("label",{htmlFor:"add-project-path",style:{display:"block",fontSize:12,fontWeight:600,color:"var(--text)",marginBottom:6},children:s("sidebar_projectPath")}),(0,r.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:8},children:[(0,r.jsx)("input",{id:"add-project-path",ref:l,value:a,onChange:e=>{d(e.target.value),u(null)},onKeyDown:e=>{"Escape"!==e.key||p||(e.preventDefault(),T())},placeholder:"/path/to/project","aria-label":s("sidebar_projectPath"),autoComplete:"off",spellCheck:!1,style:{flex:1,minWidth:0,height:32,fontSize:12,fontFamily:"var(--font-mono)",padding:"0 10px",border:"1px solid var(--border)",borderRadius:7,outline:"none",background:"var(--bg-panel)",color:"var(--text)",boxSizing:"border-box"}}),(0,r.jsx)(eW,{disabled:v||!a.trim(),onClick:()=>void R(a.trim()),children:s(v?"sidebar_browseLoading":"sidebar_browseGo")})]}),k&&(0,r.jsxs)("div",{style:{marginTop:10},children:[v&&(0,r.jsx)("div",{style:{fontSize:11,color:"var(--text-dim)"},children:s("sidebar_browseLoading")}),!v&&b&&(0,r.jsx)("div",{style:{fontSize:11,color:"var(--text-dim)"},children:s("sidebar_browseMissing")}),!v&&!b&&x&&(0,r.jsx)("div",{style:{display:"flex",alignItems:"center",gap:6,fontSize:11,marginBottom:6,color:x.isRepo?"var(--text-muted)":"var(--text-dim)"},children:x.isRepo?(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)("span",{style:{color:"var(--accent)",fontWeight:600},children:s("sidebar_browseGitRepo")}),x.branch&&(0,r.jsx)("span",{style:{fontFamily:"var(--font-mono)",fontSize:10.5},children:x.branch})]}):(0,r.jsx)("span",{children:s("sidebar_browseNotGit")})}),!v&&!b&&(0,r.jsxs)("div",{style:{maxHeight:150,overflowY:"auto",overflowX:"hidden",border:"1px solid var(--border)",borderRadius:7,background:"var(--bg-panel)",padding:4},children:[S&&(0,r.jsx)("button",{type:"button",disabled:v,onClick:()=>{R(S)},style:{display:"flex",alignItems:"center",gap:6,width:"100%",padding:"4px 8px",border:"none",background:"transparent",color:"var(--text-muted)",fontSize:12,cursor:"pointer",borderRadius:5,fontFamily:"var(--font-mono)"},onMouseEnter:e=>e.currentTarget.style.background="var(--bg-hover)",onMouseLeave:e=>e.currentTarget.style.background="transparent",children:".."}),0===g.length?(0,r.jsx)("div",{style:{padding:"6px 8px",fontSize:11,color:"var(--text-dim)"},children:s("sidebar_browseEmpty")}):g.map(e=>(0,r.jsxs)("button",{type:"button",disabled:v,onClick:()=>{R(e.path)},style:{display:"flex",alignItems:"center",gap:6,width:"100%",padding:"4px 8px",border:"none",background:"transparent",color:"var(--text)",fontSize:12,cursor:"pointer",borderRadius:5,textAlign:"left",fontFamily:"var(--font-mono)"},onMouseEnter:e=>e.currentTarget.style.background="var(--bg-hover)",onMouseLeave:e=>e.currentTarget.style.background="transparent",children:[(0,r.jsx)("span",{style:{color:"var(--text-dim)",fontSize:10.5},children:"▸"}),(0,r.jsx)("span",{style:{overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:e.name})]},e.path))]})]}),c&&(0,r.jsx)("div",{role:"alert",style:{marginTop:8,color:"var(--status-danger)",fontSize:12,lineHeight:1.45,overflowWrap:"anywhere"},children:c}),(0,r.jsxs)("div",{style:{marginTop:14,paddingTop:12,borderTop:"1px solid var(--border)",display:"flex",alignItems:"center",justifyContent:"space-between",gap:8},children:[(0,r.jsx)("span",{style:{fontSize:11.5,color:"var(--text-dim)"},children:s("sidebar_noExistingDirectory")}),(0,r.jsxs)(eW,{disabled:p,onClick:()=>void E(),children:[(0,r.jsx)(e_,{size:13}),s("sidebar_createDefaultDirectory")]})]})]})})}function tn({cwd:e,tab:t}){let{t:n}=(0,ea.s9)(),[o,s]=(0,i.useState)(null),[l,a]=(0,i.useState)(null),[d,c]=(0,i.useState)(!0),[u,p]=(0,i.useState)(!1),[h,g]=(0,i.useState)(null),[f,x]=(0,i.useState)(!1),[m,v]=(0,i.useState)(null),[y,b]=(0,i.useState)(""),[w,k]=(0,i.useState)(""),j=(0,i.useCallback)(async()=>{c(!0),g(null);try{let t=await fetch(`/api/project-assets?cwd=${encodeURIComponent(e)}`,{cache:"no-store"});if(!t.ok){let e=await t.json().catch(()=>({}));throw Error(e.error??`HTTP ${t.status}`)}let n=await t.json();s(n.rulesContent??""),a(Array.isArray(n.skills)?n.skills:[])}catch(e){g(e instanceof Error?e.message:String(e))}finally{c(!1)}},[e]);(0,i.useEffect)(()=>{j()},[j]);let S=(0,i.useCallback)(async t=>{let n=await fetch("/api/project-assets",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({cwd:e,...t})});if(!n.ok)throw Error((await n.json().catch(()=>({}))).error??`HTTP ${n.status}`);return!0},[e]),C=(0,i.useCallback)(async()=>{if(null!==o){p(!0),g(null),x(!1);try{await S({kind:"rules",content:o}),x(!0),window.setTimeout(()=>x(!1),2e3)}catch(e){g(e instanceof Error?e.message:String(e))}finally{p(!1)}}},[o,S]),_=(0,i.useCallback)(async()=>{let e=w.trim();if(e){p(!0),g(null);try{await S({kind:"skill",action:"create",name:e}),k(""),await j()}catch(e){g(e instanceof Error?e.message:String(e))}finally{p(!1)}}},[w,S,j]),I=(0,i.useCallback)(async e=>{p(!0),g(null);try{await S({kind:"skill",action:"update",name:e,content:y}),v(null),await j()}catch(e){g(e instanceof Error?e.message:String(e))}finally{p(!1)}},[y,S,j]),R=(0,i.useCallback)(async e=>{p(!0),g(null);try{await S({kind:"skill",action:"toggle",name:e.name,enabled:!e.enabled}),await j()}catch(e){g(e instanceof Error?e.message:String(e))}finally{p(!1)}},[S,j]),T=(0,i.useCallback)(async e=>{p(!0),g(null);try{await S({kind:"skill",action:"delete",name:e}),await j()}catch(e){g(e instanceof Error?e.message:String(e))}finally{p(!1)}},[S,j]),M={width:"100%",minHeight:200,padding:"10px 12px",borderRadius:7,border:"1px solid var(--border)",background:"var(--bg)",color:"var(--text)",fontSize:12,lineHeight:1.55,outline:"none",fontFamily:"var(--font-mono)",whiteSpace:"pre",overflow:"auto",boxSizing:"border-box",resize:"vertical"};return d?(0,r.jsx)("div",{style:{fontSize:12,color:"var(--text-muted)"},children:n("common_loading")}):(0,r.jsxs)("div",{children:[h&&(0,r.jsx)("div",{style:{fontSize:12,color:"var(--status-danger)",marginBottom:10,whiteSpace:"pre-wrap"},children:h}),"rules"===t?(0,r.jsxs)("div",{children:[(0,r.jsxs)("div",{style:{fontSize:11,color:"var(--text-dim)",marginBottom:8,fontFamily:"var(--font-mono)"},children:[e,"/AGENTS.md"]}),(0,r.jsx)("textarea",{value:o??"",onChange:e=>s(e.target.value),spellCheck:!1,"aria-label":n("projectAssets_rules"),style:M}),(0,r.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:10,marginTop:10},children:[(0,r.jsx)("button",{type:"button",onClick:()=>void C(),disabled:u||null===o,style:{minHeight:30,padding:"0 14px",borderRadius:7,border:"1px solid var(--accent)",background:"var(--accent)",color:"var(--accent-foreground)",cursor:u||null===o?"not-allowed":"pointer",fontSize:12,fontWeight:600,opacity:u||null===o?.6:1},children:u?n("common_saving"):n("common_save")}),f&&(0,r.jsx)("span",{style:{fontSize:12,color:"var(--accent)"},children:n("common_saved")})]})]}):(0,r.jsxs)("div",{children:[(0,r.jsxs)("div",{style:{display:"flex",gap:8,marginBottom:12},children:[(0,r.jsx)("input",{type:"text",value:w,onChange:e=>k(e.target.value),placeholder:n("projectAssets_newSkillName"),"aria-label":n("projectAssets_newSkillName"),style:{flex:1,height:30,padding:"0 10px",borderRadius:6,border:"1px solid var(--border)",background:"var(--bg)",color:"var(--text)",fontSize:12,outline:"none"}}),(0,r.jsx)("button",{type:"button",onClick:()=>void _(),disabled:u||!w.trim(),style:{minHeight:30,padding:"0 12px",borderRadius:6,border:"1px solid var(--accent)",background:"var(--accent)",color:"var(--accent-foreground)",cursor:u||!w.trim()?"not-allowed":"pointer",fontSize:12,fontWeight:600,opacity:u||!w.trim()?.6:1},children:n("projectAssets_addSkill")})]}),l?.length===0?(0,r.jsx)("div",{style:{fontSize:12,color:"var(--text-dim)"},children:n("projectAssets_noSkills")}):(0,r.jsx)("div",{style:{display:"flex",flexDirection:"column",gap:8},children:(l??[]).map(e=>(0,r.jsxs)("div",{style:{border:"1px solid var(--border)",borderRadius:7,overflow:"hidden"},children:[(0,r.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:8,padding:"6px 10px",background:"var(--bg-panel)",borderBottom:"1px solid var(--border)"},children:[(0,r.jsx)("span",{style:{fontSize:12,color:"var(--text)",fontFamily:"var(--font-mono)",flex:1,minWidth:0,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:e.name}),(0,r.jsxs)("label",{style:{display:"inline-flex",alignItems:"center",gap:5,fontSize:11,color:"var(--text-muted)",cursor:"pointer"},children:[(0,r.jsx)("input",{type:"checkbox",checked:e.enabled,onChange:()=>void R(e),disabled:u}),n("projectAssets_enabled")]}),(0,r.jsx)("button",{type:"button",onClick:()=>{v(e.name),b(e.content)},style:{fontSize:11,color:"var(--accent)",cursor:"pointer",background:"none",border:"none"},children:n("projectAssets_edit")}),(0,r.jsx)("button",{type:"button",onClick:()=>void T(e.name),disabled:u,style:{fontSize:11,color:"var(--status-danger)",cursor:u?"not-allowed":"pointer",background:"none",border:"none"},children:n("common_remove")})]}),m===e.name&&(0,r.jsxs)("div",{style:{padding:8},children:[(0,r.jsx)("textarea",{value:y,onChange:e=>b(e.target.value),spellCheck:!1,"aria-label":`${e.name} SKILL.md`,style:M}),(0,r.jsxs)("div",{style:{display:"flex",gap:8,marginTop:8},children:[(0,r.jsx)("button",{type:"button",onClick:()=>void I(e.name),disabled:u,style:{minHeight:28,padding:"0 12px",borderRadius:6,border:"1px solid var(--accent)",background:"var(--accent)",color:"var(--accent-foreground)",cursor:u?"not-allowed":"pointer",fontSize:12,fontWeight:600,opacity:u?.6:1},children:u?n("common_saving"):n("common_save")}),(0,r.jsx)("button",{type:"button",onClick:()=>v(null),style:{minHeight:28,padding:"0 12px",borderRadius:6,border:"1px solid var(--border)",background:"var(--bg-panel)",color:"var(--text-muted)",cursor:"pointer",fontSize:12},children:n("common_cancel")})]})]})]},e.name))})]})]})}function tr({projectRoot:e,initialName:t,onClose:n,onSaveName:o}){let{t:s}=(0,ea.s9)(),l=(0,i.useRef)(null),[a,d]=(0,i.useState)("name"),[c,u]=(0,i.useState)(t);return(0,i.useEffect)(()=>{null!==e&&(d("name"),u(t))},[e,t]),(0,r.jsxs)(eX,{open:null!==e,onClose:n,title:s("sidebar_editProject"),width:720,height:620,closeLabel:s("dialog_close"),description:e?s("sidebar_editProjectDescription",{path:e}):void 0,children:[(0,r.jsx)("div",{style:{display:"flex",gap:8,marginBottom:14,flexWrap:"wrap"},children:[["name",s("sidebar_projectName")],["rules",s("sidebar_projectRules")],["skills",s("sidebar_projectSkills")]].map(([e,t])=>(0,r.jsx)("button",{type:"button",onClick:()=>d(e),style:{minHeight:28,padding:"0 12px",borderRadius:6,border:"1px solid var(--border)",background:a===e?"var(--bg-selected)":"var(--bg-panel)",color:a===e?"var(--text)":"var(--text-muted)",cursor:"pointer",fontSize:12,fontWeight:a===e?600:400},"aria-current":a===e?"page":void 0,children:t},e))}),"name"===a?(0,r.jsxs)("form",{onSubmit:e=>{e.preventDefault();let t=c.trim();t&&o(t)},children:[(0,r.jsx)("label",{htmlFor:"edit-project-name",style:{display:"block",fontSize:12,fontWeight:600,color:"var(--text)",marginBottom:6},children:s("sidebar_projectName")}),(0,r.jsx)("input",{id:"edit-project-name",ref:l,value:c,onChange:e=>u(e.target.value),placeholder:s("sidebar_projectName"),"aria-label":s("sidebar_projectName"),"aria-invalid":!c.trim(),autoComplete:"off",spellCheck:!1,style:{width:"100%",height:32,fontSize:12.5,padding:"0 10px",border:"1px solid var(--border)",borderRadius:7,outline:"none",background:"var(--bg-panel)",color:"var(--text)",boxSizing:"border-box"}}),!c.trim()&&(0,r.jsx)("div",{style:{marginTop:6,fontSize:11.5,color:"var(--status-danger)"},children:s("sidebar_projectNameRequired")}),(0,r.jsxs)("div",{style:{display:"flex",gap:8,marginTop:14},children:[(0,r.jsx)("button",{type:"submit",disabled:!c.trim(),style:{minHeight:30,padding:"0 14px",borderRadius:7,border:"1px solid var(--accent)",background:"var(--accent)",color:"var(--accent-foreground)",cursor:c.trim()?"pointer":"not-allowed",fontSize:12,fontWeight:600,opacity:c.trim()?1:.6},children:s("sidebar_save")}),(0,r.jsx)("button",{type:"button",onClick:n,style:{minHeight:30,padding:"0 12px",borderRadius:7,border:"1px solid var(--border)",background:"var(--bg-panel)",color:"var(--text-muted)",cursor:"pointer",fontSize:12},children:s("sidebar_cancel")})]})]}):e&&(0,r.jsx)(tn,{cwd:e,tab:"skills"===a?"skills":"rules"})]})}async function ti(e,t,n){try{let r=await n(e,t),i=await r.json().catch(()=>({}));return{ok:r.ok,status:r.status,error:i.error}}catch(e){return{ok:!1,status:0,error:e instanceof Error?e.message:String(e)}}}function to(e){if(!e.archivedAt)return-1/0;let t=Date.parse(e.archivedAt);return Number.isNaN(t)?-1/0:t}function ts(e,t=60){let n=e.name?.trim()||e.firstMessage.trim()||e.id;return n.length<=t?n:`${n.slice(0,t)}…`}function tl(e){return e.ok?"other":409===e.status?"running":403===e.status?"readOnly":0===e.status?"network":"other"}function ta({sessions:e,count:t,homeDir:n,loading:o,onRefresh:s,onBack:l}){let{t:a}=(0,ea.s9)(),[c,u]=(0,i.useState)(null),[p,h]=(0,i.useState)({sessionId:null}),[g,f]=(0,i.useState)(null);(0,i.useEffect)(()=>{s()},[s]);let x=(0,i.useCallback)(e=>{let t=tl(e);return"running"===t?a("archive_runningConflict"):"readOnly"===t?a("archive_readOnlyForbidden"):"network"===t?a("archive_networkError"):e.error??a("archive_unknownError")},[a]),m=(0,i.useCallback)(async e=>{if(null===c){u(e.id),f(null);try{let t=await function(e,t=fetch){return ti(`/api/sessions/${encodeURIComponent(e)}/archive`,{method:"DELETE"},t)}(e.id);if(!t.ok)return void f(a("archive_restoreFailed",{error:x(t)}));s()}catch(e){f(a("archive_restoreFailed",{error:e instanceof Error?e.message:String(e)}))}finally{u(null)}}},[c,s,a,x]),v=(0,i.useCallback)(async e=>{if(null===c){u(e.id),f(null);try{let t=await function(e,t=fetch){return ti(`/api/sessions/${encodeURIComponent(e)}`,{method:"DELETE"},t)}(e.id);if(!t.ok)return void f(a("archive_deleteFailed",{error:x(t)}));h({sessionId:null}),s()}catch(e){f(a("archive_deleteFailed",{error:e instanceof Error?e.message:String(e)}))}finally{u(null)}}},[c,s,a,x]),y=[...e].sort((e,t)=>{let n=to(e),r=to(t);return n===r?0:n===-1/0?1:r===-1/0?-1:r-n}),b=p.sessionId?y.find(e=>e.id===p.sessionId)??null:null,w=b?ts(b):"",k=!!b&&c===b.id;return(0,r.jsxs)("div",{style:{display:"flex",flexDirection:"column",height:"100%",overflow:"hidden"},children:[(0,r.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:8,padding:"8px 10px",borderBottom:"1px solid var(--border)",flexShrink:0},children:[(0,r.jsx)("button",{type:"button",onClick:l,"data-tooltip":a("archive_back"),"aria-label":a("archive_back"),className:"sidebar-icon-btn",style:{display:"flex",alignItems:"center",justifyContent:"center",flexShrink:0},children:(0,r.jsx)(eI,{size:14})}),(0,r.jsx)("span",{style:{flex:1,minWidth:0,fontSize:12.5,fontWeight:600,color:"var(--text)",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:a("archive_viewTitle")}),(0,r.jsx)("span",{title:a("archive_viewCount",{count:t}),style:{flexShrink:0,minWidth:18,padding:"1px 6px",boxSizing:"border-box",borderRadius:999,background:"var(--bg-selected)",color:"var(--text-muted)",fontSize:10,fontWeight:600,textAlign:"center"},children:t})]}),g&&(0,r.jsx)("div",{role:"alert",style:{padding:"6px 10px",borderBottom:"1px solid var(--border)",background:"var(--status-danger-bg)",color:"var(--status-danger)",fontSize:11,lineHeight:1.4,overflowWrap:"anywhere",flexShrink:0},children:g}),(0,r.jsxs)("div",{style:{flex:"1 1 auto",overflowY:"auto",padding:"4px 0",minHeight:80},children:[o&&0===y.length&&(0,r.jsx)("div",{style:{padding:"16px 14px",color:"var(--text-muted)",fontSize:12},children:a("sidebar_loading")}),!o&&0===y.length&&(0,r.jsxs)("div",{style:{padding:"18px 14px",color:"var(--text-muted)",fontSize:12,lineHeight:1.7},children:[a("archive_empty"),(0,r.jsx)("div",{style:{color:"var(--text-dim)",fontSize:11},children:a("archive_emptyHint")})]}),y.map(e=>{let t=ts(e),i=c===e.id;return(0,r.jsxs)("div",{"data-archive-session-id":e.id,style:{display:"flex",alignItems:"center",gap:6,margin:"1px 6px",padding:"7px 8px",borderRadius:6,background:"transparent",opacity:i?.5:1},children:[(0,r.jsxs)("div",{style:{flex:1,minWidth:0},children:[(0,r.jsx)("div",{title:t,style:{fontSize:12,fontWeight:500,color:"var(--text)",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",lineHeight:1.4},children:t}),(0,r.jsxs)("div",{style:{fontSize:10.5,color:"var(--text-dim)",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",lineHeight:1.4,marginTop:1},children:[d(e.cwd,n)," \xb7 ",a("archive_archivedAt",{date:ec(e.archivedAt??e.modified,a)})]})]}),(0,r.jsx)("button",{type:"button",disabled:i,onClick:()=>void m(e),title:a("archive_restore"),style:{padding:"3px 9px",background:"var(--bg-panel)",border:"1px solid var(--border)",borderRadius:5,color:"var(--text)",fontSize:11,cursor:i?"not-allowed":"pointer",flexShrink:0},children:i?a("archive_restoring"):a("archive_restore")}),(0,r.jsx)("button",{type:"button",disabled:i,onClick:()=>h({sessionId:e.id}),title:a("archive_delete"),"aria-label":a("archive_delete"),style:{display:"flex",alignItems:"center",justifyContent:"center",width:26,height:26,padding:0,background:"none",border:"none",borderRadius:5,color:"var(--text-dim)",cursor:i?"not-allowed":"pointer",flexShrink:0},children:(0,r.jsx)(eM,{size:13})})]},e.id)})]}),(0,r.jsx)(eX,{open:null!==b,onClose:()=>{k||h({sessionId:null})},title:a("archive_delete"),description:b?(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)("div",{style:{fontWeight:600,color:"var(--text)",marginBottom:4},children:w}),(0,r.jsx)("div",{children:a("archive_deleteConfirm")})]}):a("archive_deleteConfirm"),width:400,closeLabel:a("dialog_close"),closeOnBackdrop:!k,closeOnEsc:!k,actions:(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(eW,{disabled:k,onClick:()=>h({sessionId:null}),children:a("archive_deleteCancel")}),(0,r.jsx)(eW,{danger:!0,disabled:k||!b,onClick:()=>{b&&v(b)},children:k?a("archive_deleting"):a("archive_deleteConfirmButton")})]})})]})}function td(e,t){let n=new Set(e);for(let e of t)n.add(e);return n}function tc(e){let t=e?.now??(()=>Date.now()),n={serverSessions:[],pendingById:new Map,pendingIds:new Set,deletedIds:new Set,archivedSessions:[],archivedCount:0,runningIds:new Set,startingIds:new Set,runningStartedAt:new Map,runningEpoch:new Map,unread:(0,ed.oJ)(),loading:!1,error:null,serverListLoaded:!1,listStatus:"idle"},r=new Set,i=()=>{for(let e of r)e()},o={getState:()=>n,getSnapshot(e=null){let t=function(e){let{serverSessions:t,pendingSessions:n,pendingIds:r=new Set(n.map(e=>e.id)),deletedIds:i}=e,o=new Map;for(let e of t)i?.has(e.id)||o.set(e.id,e);for(let e of n)!(i?.has(e.id)||o.has(e.id))&&r.has(e.id)&&o.set(e.id,e);return[...o.values()].sort(ee)}({serverSessions:n.serverSessions,pendingSessions:[...n.pendingById.values()],pendingIds:n.pendingIds,deletedIds:n.deletedIds}),r=td(n.runningIds,n.startingIds),i=(0,ed.hA)(n.unread);for(let e of r)i.delete(e);return e&&i.delete(e),{sessions:t,archivedSessions:n.archivedSessions,archivedCount:n.archivedCount,runningIds:new Set(n.runningIds),startingIds:new Set(n.startingIds),effectiveRunningIds:r,unreadIds:i,loading:n.loading,error:n.error,serverListLoaded:n.serverListLoaded,listStatus:n.listStatus,runningStartedAt:new Map(n.runningStartedAt)}},subscribe:e=>(r.add(e),()=>{r.delete(e)}),applyServerList(e){let t=e.archivedSessions??[];n.serverSessions=[...e.sessions],n.archivedSessions=t,n.archivedCount=e.archivedCount??t.length,n.loading=!1,n.error=null,n.serverListLoaded=!0,n.listStatus="ready",((e,t)=>{let r=new Set(t.map(e=>e.id)),i=new Set(e.map(e=>e.id)),o=!1,s=new Map(n.pendingById);for(let e of[...s.keys()])(i.has(e)||r.has(e)||n.deletedIds.has(e))&&(s.delete(e),o=!0);let l=function(e,t){if(0===e.size)return e;let n=new Set(t.map(e=>e.id)),r=!1,i=new Set;for(let t of e){if(n.has(t)){r=!0;continue}i.add(t)}return r?i:e}(n.pendingIds,e);for(let e of[...l])(r.has(e)||n.deletedIds.has(e))&&l.delete(e);o&&(n.pendingById=s),n.pendingIds=l})(e.sessions,t);let r=new Set([...e.sessions.map(e=>e.id),...n.pendingIds]);if(n.unread=(0,ed.v7)(n.unread,r),e.runningSessionIds&&0===n.runningIds.size&&0===n.startingIds.size)o.applyRunningSnapshot({runningIds:e.runningSessionIds,runningStartedAt:e.runningStartedAt,selectedSessionId:e.selectedSessionId,now:e.now});else if(e.runningStartedAt){let t=new Map(n.runningStartedAt);for(let[n,r]of Object.entries(e.runningStartedAt))t.has(n)||"number"!=typeof r||t.set(n,r);n.runningStartedAt=t}i()},applyListError(e){n.loading=!1,n.error=e,n.listStatus="error",n.serverListLoaded=!0,i()},beginListLoad(){"idle"===n.listStatus&&(n.listStatus="loading"),n.loading=0===n.serverSessions.length&&0===n.pendingById.size,i()},upsertPending(e){if(n.deletedIds.has(e.id))return;let t=new Map(n.pendingById);t.set(e.id,e),n.pendingById=t;let r=new Set(n.pendingIds);r.add(e.id),n.pendingIds=r,i()},removePending(e){if(!n.pendingById.has(e)&&!n.pendingIds.has(e))return;let t=new Map(n.pendingById);t.delete(e),n.pendingById=t;let r=new Set(n.pendingIds);r.delete(e),n.pendingIds=r,i()},markDeleted(e){let t=new Set(n.deletedIds);t.add(e),n.deletedIds=t,o.removePending(e);let r=new Set(n.startingIds);r.delete(e),n.startingIds=r,i()},markStarting(e,r=t()){if(!e)return;let o=new Set(n.startingIds);o.add(e),n.startingIds=o;let s=new Map(n.runningStartedAt);s.has(e)||s.set(e,r),n.runningStartedAt=s,i()},clearStarting(e){if(!n.startingIds.has(e))return;let t=new Set(n.startingIds);if(t.delete(e),n.startingIds=t,!n.runningIds.has(e)&&n.runningStartedAt.has(e)){let t=new Map(n.runningStartedAt);t.delete(e),n.runningStartedAt=t}i()},applyRunningSnapshot(e){let r=new Set(e.runningIds),o=((e,t)=>{let r=new Set;for(let i of n.startingIds)!e.has(i)&&t.has(i)&&r.add(i);return r})(r,new Set(e.localInFlightIds??[])),s=n.runningIds,l=new Map(n.runningStartedAt),a=new Map(n.runningEpoch),d=e.now??t(),c=new Date(d).toISOString();if(e.runningStartedAt)for(let[t,i]of Object.entries(e.runningStartedAt)){if("number"!=typeof i)continue;let o=l.get(t);void 0!==o&&o!==i&&r.has(t)&&(a.set(t,(a.get(t)??0)+1),n.unread=(0,ed.du)(n.unread,new Set([t]),new Set,e.selectedSessionId??null,c)),l.set(t,i)}for(let e of r)l.has(e)||l.set(e,d);for(let e of[...l.keys()])r.has(e)||o.has(e)||l.delete(e);let u=td(r,o);n.unread=(0,ed.du)(n.unread,s,u,e.selectedSessionId??null,c),n.runningIds=r,n.startingIds=o,n.runningStartedAt=l,n.runningEpoch=a,i()},markRead(e,r=new Date(t()).toISOString()){let o=(0,ed.AH)(n.unread,e,r);o!==n.unread&&(n.unread=o,i())},replaceUnread(e){n.unread=e,i()}};return o}let tu=new Map;function tp(e){return{value:e.value,images:e.images.map(e=>({...e}))}}function th(e){return!e.value&&0===e.images.length}function tg(e){return`drafts.${e}`}function tf(e){let t=tu.get(e);return t?tp(t):null}function tx(e,t){if(th(t)){tu.delete(e),(0,Z.dM)(tg(e),void 0),(0,Z.qs)();return}tu.set(e,tp(t));let n={...tp(t),updatedAt:Date.now()};(0,Z.dM)(tg(e),n)}function tm(e){tu.delete(e),(0,Z.dM)(tg(e),void 0),(0,Z.qs)()}class tv extends Error{constructor(e){super("timeout"===e?"Timed out connecting to the agent event stream. Please try again.":"Failed to connect to the agent event stream. Please try again."),this.status=e,this.name="EventStreamConnectionError"}}function ty(e){return new EventSource(e)}function tb(e){return"function"==typeof requestAnimationFrame?requestAnimationFrame(()=>e()):setTimeout(e,16)}function tw(e){"function"==typeof cancelAnimationFrame?cancelAnimationFrame(e):clearTimeout(e)}function tk(e,t,n=tC){return{id:n(),cwd:e,generation:t}}let tj="pending:";function tS(e){return`${tj}${e}`}function tC(){return"u">typeof crypto&&"function"==typeof crypto.randomUUID?crypto.randomUUID():`intent-${Date.now()}-${Math.random().toString(36).slice(2)}`}function t_(e=tI){return e()}function tI(){return"u">typeof crypto&&"function"==typeof crypto.randomUUID?crypto.randomUUID():`sub-${Date.now()}-${Math.random().toString(36).slice(2,10)}`}function tR(e){if("custom"!==e.role)return null;let t=e.renderedLines;return Array.isArray(t)&&t.length>0&&t.every(e=>"string"==typeof e)?t:null}function tT(e){if("custom"!==e.role)return null;let t="string"==typeof e.content?e.content:JSON.stringify(e.content);return`${e.customType}\u0000${e.display?"1":"0"}\u0000${t}`}function tM(e,t,n,r){let i=new Map,o=new Map;return e.forEach((e,n)=>{let r=tR(e);if(!r)return;let s=t[n];if(s&&i.set(s,r),s)return;let l=tT(e);if(!l)return;let a=o.get(l)??[];a.push(r),o.set(l,a)}),n.map((e,t)=>{if("custom"!==e.role||tR(e))return e;let n=r[t]?i.get(r[t]):void 0,s=n?null:tT(e),l=s?o.get(s)?.shift():void 0,a=n??l;return a?{...e,renderedLines:[...a]}:e})}function tE(e,t){return"custom"===e.role&&Array.isArray(t)&&t.every(e=>"string"==typeof e)?{...e,renderedLines:t}:e}function tz(e){for(let t of[e.thinking,e.text,e.reasoning])if("string"==typeof t&&t.length>0)return t;return""}function tL(e){return"thinking"===e||"reasoning"===e||"redacted_thinking"===e}function tW(e){let t={...e,type:"thinking",thinking:tz(e)};return!0===e.deferred&&(t.deferred=!0),t}let tA=/<think(?:ing)?>([\s\S]*?)<\/think(?:ing)?>/gi,tP=/<think(?:ing)?>/i;function t$(e){return"object"==typeof e&&null!==e&&!Array.isArray(e)}function tH(e){if("assistant"!==e.role)return e;let t=e.content;if(!Array.isArray(t))return e;let n=t.map(e=>{let t=function(e){if(!t$(e)||"toolCall"!==e.type)return null;let t={type:"toolCall",toolCallId:"string"==typeof e.toolCallId?e.toolCallId:"string"==typeof e.id?e.id:"",toolName:"string"==typeof e.toolName?e.toolName:"string"==typeof e.name?e.name:"",input:"object"!=typeof e.input||null===e.input||Array.isArray(e.input)?"object"!=typeof e.arguments||null===e.arguments||Array.isArray(e.arguments)?{}:e.arguments:e.input};return Array.isArray(e.renderedCallLines)&&e.renderedCallLines.every(e=>"string"==typeof e)&&(t.renderedCallLines=[...e.renderedCallLines]),t}(e);return t||(t$(e)&&tL(e.type)?tW(e):e)});return{...e,content:n}}let tF="pidance.binary",tD=/^[a-z0-9][a-z0-9!#$&^_.+-]*\/[a-z0-9][a-z0-9!#$&^_.+-]*$/i;function tN(e){let t;if(!e||"object"!=typeof e||Array.isArray(e)||"binary"!==e.type||1!==e.version||"string"!=typeof e.path)return null;let n=e.path.trim();if(!n||n.length>4096)return null;let r=function(e){if("string"!=typeof e)return null;let t=e.replace(/[\\/\0]/g,"_").trim();return!t||t.length>180?null:t}(e.name),i=function(e){if("string"!=typeof e)return null;let t=e.trim().toLowerCase();return tD.test(t)?t:null}(e.mimeType);if(!r||!i||"number"!=typeof e.size||!Number.isSafeInteger(e.size)||e.size<0)return null;let o=e.kind;if("image"!==o&&"audio"!==o&&"video"!==o&&"file"!==o||o!==((t=i.toLowerCase()).startsWith("image/")?"image":t.startsWith("audio/")?"audio":t.startsWith("video/")?"video":"file"))return null;let s=void 0===e.previewPath?void 0:"string"==typeof e.previewPath&&e.previewPath.trim().length<=4096?e.previewPath.trim()||void 0:null;if(null===s)return null;let l=void 0===e.messageEntryId?void 0:"string"==typeof e.messageEntryId&&e.messageEntryId.trim()?e.messageEntryId.trim():null;return null===l?null:{type:"binary",version:1,kind:o,path:n,name:r,mimeType:i,size:e.size,...s?{previewPath:s}:{},...l?{messageEntryId:l}:{}}}function tB(e){return"string"==typeof e?e:Array.isArray(e)?e.map(e=>e&&"object"==typeof e&&"text"===e.type&&"string"==typeof e.text?e.text:"").filter(Boolean).join("\n"):""}function tO(e,t,n){return{key:t||`disk:${n}`,message:e,entryId:t,pending:!1}}function tU(e,t){return{key:e,message:t,entryId:"",pending:!0}}function tq(e,t){return e.map((e,n)=>tO(e,t[n]??"",n))}function tK(e){return e.map(e=>e.entryId)}function tV(e,t,n,r){let i=e.findIndex(e=>e.key===t);if(i<0)return null;let o=[...e];return o[i]={...o[i],message:n,entryId:r||o[i].entryId,pending:!1},o}function tJ(e,t){let n=e.findIndex(e=>e.key===t);if(n<0)return{timeline:[...e],dropped:!1};let r=e[n];if(!r.pending||r.entryId)return{timeline:[...e],dropped:!1};let i=[...e];return i.splice(n,1),{timeline:i,dropped:!0}}function tY(e){return{startedAt:e,firstTokenAt:null,ttftMs:null,decodeMs:0,outputTokens:0,sampled:!1,stepObservedFromStart:!0}}function tG(){return{isStreaming:!1,streamingMessage:null}}function tZ(e,t){tx(e,{value:t.value,images:t.images})}let tX=null;function tQ(){var e;let t,r,i,o,s,l,a,d,c,u,p,h,g,f,x,m,v,y,b,w,k,j;return tX||(t=(e={async createAndPrompt(e,t){let n=await fetch("/api/agent/new",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({cwd:e,type:"prompt",message:t.message,submissionId:t.submissionId,...t.images?.length?{images:t.images.map(e=>({type:"image",data:e.data,mimeType:e.mimeType}))}:{},...t.binaryBlocks?.length?{binaryBlocks:t.binaryBlocks}:{},...t.provider&&t.modelId?{provider:t.provider,modelId:t.modelId}:{},...t.thinkingLevel?{thinkingLevel:t.thinkingLevel}:{}}),signal:t.signal}),r=await n.json().catch(()=>({}));if(!n.ok||r.error||!r.sessionId)throw Error(r.error??`HTTP ${n.status}`);let i=r.data??{submissionId:t.submissionId,sessionId:r.sessionId,status:"accepted"};return{sessionId:r.sessionId,receipt:i}},async postPrompt(e,t){let{submitAgentPrompt:r}=await Promise.resolve().then(n.bind(n,32383));return r(e,t,{signal:t.signal})},async ensureNewSession(e,t){let n=await fetch("/api/agent/new",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({cwd:e,type:"ensure_session",...t?.provider&&t.modelId?{provider:t.provider,modelId:t.modelId}:{}})}),r=await n.json().catch(()=>({}));if(!n.ok||!r.sessionId)throw Error(r.error??`HTTP ${n.status}`);return r.sessionId},async wake(e,t){let n=await fetch(`/api/sessions/${encodeURIComponent(e)}/state?wake=1`,{signal:t});if(!n.ok){let e=await n.json().catch(()=>({}));throw Error("string"==typeof e.error?e.error:`HTTP ${n.status}`)}},async getAgentState(e){let t=await fetch(`/api/agent/${encodeURIComponent(e)}?light=1`,{cache:"no-store"}),n=await t.json().catch(()=>({}));if(!t.ok)throw Error(n.error??`HTTP ${t.status}`);return n}}).restoreDraft??tZ,r=e.now??(()=>Date.now()),i=e.makeSubmissionId??t_,o=e.schedule??((e,t)=>setTimeout(e,t)),s=e.clearSchedule??(e=>clearTimeout(e)),l=new Map,a=new Map,d=(e,t)=>{let n=l.get(e);if(n)return n;let r=a.get(e);if(void 0!==r){let t=l.get(r);if(t)return t;a.delete(e)}if(!t)return null;let i={sessionId:e,snapshot:{sessionId:e,messages:[],entryIds:[],messageKeys:[],streamState:tG(),agentRunning:!1,turnMetrics:{},bashRunning:!1,pendingBash:null,sendInFlight:!1,submissions:[],promptRunId:0,finishingRunId:null,completedRunId:null,attachCount:0,timelineSeq:0},submissions:new Map,inFlight:new Map,promptAborts:new Map,eventStream:null,attachments:new Set,viewHandlers:new Set,snapshotListeners:new Set,consumedEntryIds:new Set,timeline:[],derived:{source:null,messages:[],entryIds:[],messageKeys:[]},submissionKeys:new Map,localKeySeq:0,hydrateSeq:0,hydrateAppliedSeq:0,idleCloseTimer:null,sseRetryTimer:null,sseRetryAttempt:0,metrics:tY(0),seededTurnMetrics:null};return l.set(e,i),i},c=e=>{let t=new Set;for(let n of e.attachments)n.onEvent&&t.add(n.onEvent);e.viewHandlers=t},u=e=>{for(let t of(e.derived.source!==e.timeline&&(e.derived={source:e.timeline,messages:e.timeline.map(e=>e.message),entryIds:tK(e.timeline),messageKeys:e.timeline.map(e=>e.key)}),e.snapshot={...e.snapshot,sessionId:e.sessionId,messages:e.derived.messages,entryIds:e.derived.entryIds,messageKeys:e.derived.messageKeys,turnMetrics:function(e,t){if(!e.sampled&&t)return{...t};let n={};return null!==e.ttftMs&&e.startedAt>0&&(n.ttftMs=e.ttftMs),e.sampled&&e.decodeMs>0&&(n.tokensPerSecond=e.outputTokens/(e.decodeMs/1e3)),n}(e.metrics,e.seededTurnMetrics),submissions:[...e.submissions.values()],attachCount:e.attachments.size},e.snapshotListeners))t(e.snapshot)},p=e=>{e.idleCloseTimer&&(s(e.idleCloseTimer),e.idleCloseTimer=null),e.attachments.size>0||e.snapshot.agentRunning||e.snapshot.bashRunning||e.snapshot.sendInFlight||e.inFlight.size>0||e.eventStream&&(e.idleCloseTimer=o(()=>{e.idleCloseTimer=null,(e=>{if(e.idleCloseTimer&&(s(e.idleCloseTimer),e.idleCloseTimer=null),e.sseRetryTimer&&(s(e.sseRetryTimer),e.sseRetryTimer=null,e.sseRetryAttempt=0),e.attachments.size>0||e.snapshot.agentRunning||e.snapshot.bashRunning||e.snapshot.sendInFlight||e.inFlight.size>0)return;let t=e.eventStream;t&&(e.eventStream=null,t.close(),u(e))})(e)},5e3))},h=e=>{e.snapshot.timelineSeq+=1},g=e=>(e.localKeySeq+=1,`local:${e.localKeySeq}`),f=(e,t,n)=>{var r;let i=n??"",o={...t,entryId:i};r=e.timeline,e.timeline=[...r,{key:i||g(e),message:o,entryId:i,pending:!1}],h(e)},x=(e,t)=>"persisted"===e?e:t,m=(e,t,n,r)=>{let i=e.submissions.get(t),o=n;i&&(o=x(i.status,n),i.status=o,i.error=r),e.snapshot.sendInFlight=e.inFlight.size>0,e.inFlight.size<=1&&i?.delivered!==!0&&("rejected"===o||"unknown"===o)&&(e.snapshot.agentRunning=!1,e.snapshot.completedRunId=e.snapshot.promptRunId,e.snapshot.streamState=tG())},v=(e,n,r,i)=>(m(e,n.submissionId,r,i),n.delivered)?(u(e),{submissionId:n.submissionId,sessionId:e.sessionId,status:"accepted"}):(y(e,n.submissionId),t(n.draftKey,{value:n.message,images:n.images??[]}),u(e),{submissionId:n.submissionId,sessionId:e.sessionId,status:r,error:i}),y=(e,t)=>{let n=e.submissionKeys.get(t);if(e.submissionKeys.delete(t),void 0===n)return!1;let r=tJ(e.timeline,n);return!!r.dropped&&(e.timeline=r.timeline,h(e),!0)},b=(e,t)=>{var n;let i=t.type;if("agent_start"===i)e.snapshot.promptRunId+=1,e.snapshot.agentRunning=!0,e.snapshot.completedRunId=null,e.snapshot.finishingRunId=null,e.snapshot.streamState={isStreaming:!0,streamingMessage:null},e.metrics=tY(r()),e.seededTurnMetrics=null;else if("agent_end"===i||"prompt_done"===i)e.snapshot.agentRunning=!1,e.snapshot.completedRunId=e.snapshot.promptRunId,e.snapshot.streamState=tG();else if("message_start"===i||"message_update"===i){let n=t.message;if(!e.snapshot.agentRunning||n?.role==="user")return;if("message_start"===i&&(e.metrics.stepObservedFromStart=!0),n){if(null===e.metrics.firstTokenAt&&function(e){if(!e)return!1;let t=e.content;return"string"==typeof t?t.length>0:Array.isArray(t)&&t.length>0}(n)){let t=r();e.metrics.firstTokenAt=t,null===e.metrics.ttftMs&&e.metrics.startedAt>0&&t>=e.metrics.startedAt&&(e.metrics.ttftMs=t-e.metrics.startedAt)}let i=tE(n,t.renderedLines);e.snapshot.streamState={isStreaming:!0,streamingMessage:tH(i)}}}else if("prompt_error"===i){let t,r={timeline:t=(n=e.timeline).filter(e=>!(e.pending&&!e.entryId)),dropped:t.length!==n.length};if(r.dropped){for(let[t,n]of(e.timeline=r.timeline,e.submissionKeys))!function(e,t){return e.find(e=>e.key===t)}(e.timeline,n)&&e.submissionKeys.delete(t);h(e)}}else if("message_end"===i){let n=t.message,i="string"==typeof t.entryId&&t.entryId?t.entryId:null;if(n?.role==="user"){if(i&&e.consumedEntryIds.has(i))return void u(e);i&&e.consumedEntryIds.add(i);let t=[...e.submissions.values()].find(t=>("accepted"===t.status||"submitting"===t.status)&&!t.entryId&&e.submissionKeys.has(t.submissionId)),r=t?e.submissionKeys.get(t.submissionId)??null:null,o=function(e,t){let{key:n,message:r,entryId:i,fallbackKey:o}=t,s=r.entryId===i?r:{...r,entryId:i},l=tB(s.content);if(n){let t=tV(e,n,s,i);if(t)return{timeline:t,outcome:"key"};if(i?e.some(e=>e.entryId===i):l.length>0&&e.some(e=>e.entryId&&tB(e.message.content)===l))return{timeline:[...e],outcome:"reconciled"}}if(l.length>0)for(let t=e.length-1;t>=0;t--){let n=e[t];if(!n.pending||"user"!==n.message.role||tB(n.message.content)!==l)continue;let r=tV(e,n.key,s,i);if(r)return{timeline:r,outcome:"text"}}return i&&e.some(e=>e.entryId===i)?{timeline:[...e],outcome:"duplicate"}:{timeline:[...e,{key:o,message:s,entryId:i,pending:!1}],outcome:"appended"}}(e.timeline,{key:r,message:n,entryId:i??"",fallbackKey:i??g(e)});"duplicate"!==o.outcome&&(e.timeline=o.timeline,h(e)),t&&(e.submissionKeys.delete(t.submissionId),"duplicate"!==o.outcome&&(t.delivered=!0),null!==i&&(t.status=x(t.status,"persisted"),t.entryId=i))}else if(n?.role==="custom"&&n.customType===tF){let t=tN(n.details),r=t?.messageEntryId?e.timeline.findIndex(e=>e.entryId===t.messageEntryId):-1;r<0&&t?.messageEntryId&&(r=e.timeline.findLastIndex(e=>"user"===e.message.role&&!e.entryId));let o=r>=0?e.timeline[r]:void 0;if(t&&o?.message.role==="user"){if(!(o.message.binaryBlocks??[]).some(e=>e.path===t.path&&e.previewPath===t.previewPath)){let n=[...e.timeline];n[r]={...o,message:{...o.message,binaryBlocks:[...o.message.binaryBlocks??[],t]}},e.timeline=n,h(e)}}else e.snapshot.agentRunning&&f(e,n,i)}else n&&e.snapshot.agentRunning&&f(e,tH(tE(n,t.renderedLines)),i);if(n?.role==="assistant"){let t,i,o=r(),s=null!==e.metrics.firstTokenAt&&e.metrics.stepObservedFromStart?Math.max(0,o-e.metrics.firstTokenAt):null;e.metrics.firstTokenAt=null,e.metrics.stepObservedFromStart=!1;let l=(t=n?.usage,"number"==typeof(i=t?.output)&&Number.isFinite(i)&&i>=0?i:null);null!==s&&null!==l&&(e.metrics.decodeMs+=s,e.metrics.outputTokens+=l,e.metrics.sampled=!0,e.seededTurnMetrics=null)}e.snapshot.streamState=tG()}for(let n of(u(e),e.viewHandlers))try{n(t)}catch{}p(e)},w=[500,1500,3e3],k=t=>{t.idleCloseTimer&&(s(t.idleCloseTimer),t.idleCloseTimer=null),t.sseRetryTimer&&(s(t.sseRetryTimer),t.sseRetryTimer=null,t.sseRetryAttempt=0);let n=t.eventStream?.getCurrentSource();if(t.eventStream&&n&&2!==n.readyState&&t.eventStream.isCurrent(t.sessionId))return;t.eventStream?.close(),t.eventStream=null;let r=e=>b(t,e),i=e.createEventStream?e.createEventStream(t.sessionId,r):function(e={}){let t=e.createEventSource??ty,n=e.getEventsUrl??(e=>`/api/agent/${encodeURIComponent(e)}/events`),r=e.connectTimeoutMs??5e3,i=e.reconnectDelayMs??1e3,o=e.shouldAutoReconnect??(()=>!1),s=e.schedule??((e,t)=>setTimeout(e,t)),l=e.clearSchedule??(e=>clearTimeout(e)),a=e.scheduleFrame??tb,d=e.cancelFrame??tw,c=null,u=null,p=null,h=null,g=()=>{null!==p&&(l(p),p=null)},f=(e,x)=>{g(),h?.(),h=null,c&&(c.close(),c=null);let m=t(n(e));c=m,u=e;let v=null,y=null,b=()=>{y=null;let e=v;if(v=null,e&&c===m)try{x(e)}catch{}};return h=()=>{null!==y&&d(y),y=null,v=null},new Promise(t=>{let n=!1,u=null,h=e=>{n||(n=!0,null!==u&&(l(u),u=null),t({status:e,source:m}))};u=s(()=>h("timeout"),r),m.onmessage=e=>{try{if(c!==m)return;let t=JSON.parse(e.data);if("connected"===t.type&&h("connected"),"message_update"===t.type){v=t,null===y&&(y=a(b));return}null!==y&&(d(y),y=null),b(),x(t)}catch{}},m.onerror=()=>{2===m.readyState&&(h("closed"),c===m&&o()&&(c=null,p=s(()=>{o()&&f(e,x)},i)))}})};return{connect:f,async ensureConnected(e,t){let n=await f(e,t);if("connected"!==n.status&&1!==n.source.readyState)throw c===n.source&&(c=null,h?.(),h=null),n.source.close(),new tv(n.status)},close:()=>{g(),h?.(),h=null,c&&(c.close(),c=null),u=null},getCurrentSource:()=>c,isCurrent:e=>null!==c&&u===e&&2!==c.readyState}}({shouldAutoReconnect:()=>!!t.snapshot.agentRunning&&("u"<typeof document||"hidden"!==document.visibilityState)});t.eventStream=i,i.ensureConnected(t.sessionId,r).catch(()=>{if(t.eventStream===i&&(t.eventStream=null),!(t.attachments.size>0))return;let e=t.sseRetryAttempt;if(e>=w.length)return;let n=w[e];t.sseRetryAttempt=e+1,t.sseRetryTimer&&s(t.sseRetryTimer),t.sseRetryTimer=o(()=>{t.sseRetryTimer=null,!(t.attachments.size>0)||t.eventStream&&t.eventStream!==i||t.snapshot.agentRunning||t.snapshot.sendInFlight||k(t)},n)})},j=(e,t)=>{let n=d(e,!0),r=n.sessionId,i=l.get(t);return i&&i!==n&&(i.eventStream?.close(),i.eventStream=null,l.delete(t)),l.delete(r),r!==e&&a.delete(r),n.sessionId=t,n.snapshot.sessionId=t,l.set(t,n),e!==t&&a.set(e,t),n},tX={getSnapshot(e){let t=d(e,!1);return t?t.snapshot:null},subscribe(e,t){let n=d(e,!0);return n.snapshotListeners.add(t),t(n.snapshot),()=>{n.snapshotListeners.delete(t)}},attach(e,t){let n=d(e,!0),r={onEvent:t};n.attachments.add(r),c(n),k(n),u(n);let i=!1;return{sessionId:n.sessionId,dispose:()=>{i||(i=!0,n.attachments.delete(r),c(n),u(n),p(n))}}},detach(e,t){t.dispose()},async submitPrompt(t){var n,o,s,l,a;let c,g,f=t.submissionId?.trim()||i(),x="persisted"===t.target.kind?t.target.sessionId:tS(t.target.intentId),y=d(x,!0),b=y.submissions.get(f);if(b&&("accepted"===b.status||"persisted"===b.status||"submitting"===b.status))return{submissionId:f,sessionId:y.sessionId,status:"accepted"};let w=y.inFlight.get(f);if(w)return w;let S={submissionId:f,sessionId:x,draftKey:t.draftKey,message:t.message,images:t.images,binaryBlocks:t.binaryBlocks,status:"submitting",delivered:!1,entryId:null},C=new AbortController;y.submissions.set(f,S),y.promptAborts.set(f,C),y.snapshot.sendInFlight=!0,y.snapshot.agentRunning=!0,y.snapshot.promptRunId+=1,y.snapshot.completedRunId=null,y.snapshot.finishingRunId=null,y.snapshot.streamState={isStreaming:!0,streamingMessage:null},y.metrics=tY(r());let _=`sub:${f}`;a=y.timeline,y.timeline=[...a,tU(_,(n=t.message,o=t.images,s=t.binaryBlocks,l=r(),c=o?.map(e=>({type:"image",source:{type:"base64",media_type:e.mimeType,data:e.data}})),g={role:"user",content:c?.length?[...n.trim()?[{type:"text",text:n}]:[],...c]:n,timestamp:l},s?.length&&(g.binaryBlocks=s.map(e=>({type:"binary",version:1,kind:e.mimeType.toLowerCase().startsWith("image/")?"image":e.mimeType.toLowerCase().startsWith("audio/")?"audio":e.mimeType.toLowerCase().startsWith("video/")?"video":"file",...e}))),g))],y.submissionKeys.set(f,_),h(y),u(y);let I=(async()=>{let n=x,r=!1;try{if("new"===t.target.kind){if(e.createAndPrompt){let{sessionId:i,receipt:o}=await e.createAndPrompt(t.target.cwd,{message:t.message,images:t.images,binaryBlocks:t.binaryBlocks,submissionId:f,...t.model?.provider?{provider:t.model.provider,modelId:t.model.modelId}:{},...t.thinkingLevel?{thinkingLevel:t.thinkingLevel}:{},signal:C.signal});if(C.signal.aborted)throw new DOMException("aborted","AbortError");if(n=i,S.sessionId=i,j(x,i),r=!0,"rejected"===o.status)return v(y,S,"rejected","rejected");return m(y,f,"accepted"),u(y),{submissionId:f,sessionId:n,status:"accepted"}}if(!e.ensureNewSession)return v(y,S,"rejected","no ensure implementation");let i=await e.ensureNewSession(t.target.cwd,t.model);if(C.signal.aborted)throw new DOMException("aborted","AbortError");n=i,S.sessionId=i,j(x,i),r=!0}!r&&e.wake&&await e.wake(n,C.signal),k(y);let i=await e.postPrompt(n,{message:t.message,images:t.images,binaryBlocks:t.binaryBlocks,submissionId:f,signal:C.signal});if("rejected"===i.status)return v(y,S,"rejected","rejected");return m(y,f,"accepted"),u(y),{submissionId:f,sessionId:n,status:"accepted"}}catch(e){if(e instanceof Error&&("AbortError"===e.name||C.signal.aborted))return v(y,S,"unknown","aborted");return v(y,S,"unknown",e instanceof Error?e.message:String(e))}finally{y.inFlight.delete(f),y.promptAborts.delete(f),y.snapshot.sendInFlight=y.inFlight.size>0,u(y),p(y)}})();return y.inFlight.set(f,I),I},cancellationFor(e){let t=d(e,!1);if(!t)return null;let n=[...t.promptAborts.entries()][0];if(!n)return null;let[r,i]=n;return{submissionId:r,cancel:()=>i.abort(),signal:i.signal}},abortSubmission(e,t){let n=d(e,!1);if(!n)return Promise.resolve(null);let r=t?n.promptAborts.get(t):[...n.promptAborts.values()][0],i=t?n.inFlight.get(t):[...n.inFlight.values()][0];return(r?.abort(),i)?i:Promise.resolve(null)},abort(e){let t=d(e,!1);if(t){for(let e of t.promptAborts.values())e.abort();t.snapshot.agentRunning=!1,t.snapshot.streamState=tG(),t.snapshot.sendInFlight=t.inFlight.size>0,u(t),p(t)}},setBashRunning(e,t,n){let r=d(e,!0);r.snapshot.bashRunning=t,r.snapshot.pendingBash=t?n??null:null,u(r)},getRunState(e){let t=d(e,!1)?.snapshot;return t?{promptRunId:t.promptRunId,agentRunning:t.agentRunning,sendInFlight:t.sendInFlight,finishingRunId:t.finishingRunId,completedRunId:t.completedRunId}:null},beginRunFinish(e,t){let n=d(e,!1);if(!n)return!1;let r=n.snapshot;return r.promptRunId===t&&null===r.finishingRunId&&(!!r.agentRunning||r.completedRunId===t)&&(r.finishingRunId=t,u(n),!0)},releaseRunFinish(e,t){let n=d(e,!1);n&&n.snapshot.finishingRunId===t&&(n.snapshot.finishingRunId=null,u(n))},completeRun(e,t){let n=d(e,!1);return!!n&&n.snapshot.promptRunId===t&&(n.snapshot.agentRunning=!1,n.snapshot.completedRunId=t,n.snapshot.streamState=tG(),u(n),!0)},importRunningRun(e,t){let n=d(e,!0),i=n.snapshot;i.agentRunning||i.sendInFlight||(i.agentRunning=!0,i.completedRunId=null,i.finishingRunId=null,i.promptRunId+=1,i.streamState={isStreaming:!0,streamingMessage:null},n.metrics=tY("number"==typeof t&&Number.isFinite(t)&&t>0?t:r()),n.metrics.stepObservedFromStart=!1,n.seededTurnMetrics=null,u(n))},seedTurnMetrics(e,t){let n=d(e,!0);if(!t){if(null===n.seededTurnMetrics)return;n.seededTurnMetrics=null,u(n);return}n.metrics.sampled||(n.seededTurnMetrics={...t},u(n))},async reconcile(t){var n;let r=d(t,!1);if(!r||!e.getAgentState)return null;let i=r.snapshot.promptRunId,o=await e.getAgentState(t),s=d(t,!1);if(s!==r||s.snapshot.promptRunId!==i)return{runId:i,stale:!0,live:!1,shouldFinish:!1};let l=!0===o.live||void 0===o.live&&!0===o.running,a=o.state,c=!1===o.activeRun&&!0!==o.lockedByOther;return{runId:i,stale:!1,live:l,shouldFinish:!!(n={sendInFlight:s.snapshot.sendInFlight,clientRunning:s.snapshot.agentRunning,live:l,knownIdleWithoutLive:c,isStreaming:a?.isStreaming===!0,isPromptRunning:a?.isPromptRunning===!0,isCompacting:a?.isCompacting===!0}).clientRunning&&!n.sendInFlight&&(!!n.live||!!n.knownIdleWithoutLive)&&!n.isStreaming&&!n.isPromptRunning&&!n.isCompacting,state:a}},beginHydrate(e){let t=d(e,!0);return t.hydrateSeq+=1,t.hydrateSeq},hydrate(e,t,n=[],r){let i,o,s,l=d(e,!0),a=r?.hydrateRequestSeq??++l.hydrateSeq;if(a<=l.hydrateAppliedSeq)return"superseded";if(r?.sinceSeq!==void 0&&l.snapshot.timelineSeq>r.sinceSeq)return"stale";l.hydrateSeq=Math.max(l.hydrateSeq,a),l.hydrateAppliedSeq=a;let c=r?.mode??"replace",p=l.timeline,h="prepend"===c?function(e,t,n){let r=new Set(e.map(e=>e.entryId).filter(Boolean)),i=[];for(let e=0;e<n.length;e++){let o=n[e]??"";o&&r.has(o)||i.push(tO(t[e],o,e))}return 0===i.length?[...e]:[...i,...e]}(p,t,n):"tail"===c?function(e,t,n){if(0===n.length)return[...e];let r=tq(t,n),i=e.map(e=>e.entryId);if(i.every(e=>!e))return r;let o=r[0].entryId,s=o?i.indexOf(o):-1;return s<=0?r:[...e.slice(0,s),...r]}(p,t,n):tq(t,n);for(let e of(l.timeline="replace"===c?h:[...(i=new Set(h.map(e=>e.key)),o=new Set(h.filter(e=>e.entryId).map(e=>tB(e.message.content))),0===(s=p.filter(e=>{if(!e.pending||e.entryId||i.has(e.key))return!1;let t=tB(e.message.content);return 0===t.length||!o.has(t)})).length?h:[...h,...s])],tK(l.timeline)))e&&l.consumedEntryIds.add(e);return u(l),"applied"},appendLocal(e,t){var n;let r=d(e,!0),i=g(r);return n=r.timeline,r.timeline=[...n,tU(i,t)],h(r),u(r),i},dropLocal(e,t){let n=d(e,!1);if(!n)return!1;let r=tJ(n.timeline,t);return!!r.dropped&&(n.timeline=r.timeline,h(n),u(n),!0)},applyEvent(e,t){b(d(e,!0),t)},ensureEventsConnected(e){k(d(e,!0))},getEventSource:e=>d(e,!1)?.eventStream?.getCurrentSource()??null,getSubmission:(e,t)=>d(e,!1)?.submissions.get(t),resetForTests(){tX=null}}),tX}function t0(e){let t=new Set;if(!Array.isArray(e))return t;for(let n of e)if(n&&"object"==typeof n){let e=n.sessionId;"string"==typeof e&&e&&t.add(e)}return t}function t1({selectedSessionId:e,onSelectSession:t,onNewSession:n,initialSessionId:o,skipInitialProjectSelection:s,onInitialRestoreDone:u,restoreNonce:p=0,refreshKey:h,onSessionDeleted:k,onProjectAdded:j,catalogStore:S}){let{t:C}=(0,ea.s9)(),_=(0,i.useRef)(S??null);_.current||(_.current=S??tc()),S&&(_.current=S);let I=_.current,[R,M]=(0,i.useState)(0),E=(0,i.useRef)(e);E.current=e;let z=(0,i.useMemo)(()=>I.getSnapshot(E.current),[R,e]),P=z.sessions,$=z.serverListLoaded,H=z.loading,F=z.error,D=z.archivedSessions,N=z.archivedCount,B=z.runningIds,O=(0,i.useRef)(P);O.current=P;let U=(0,i.useRef)(0),{cwd:q,projectRoot:K}=el(),{setIdentity:V,getIdentitySnapshot:J}=es(),[Q,en]=(0,i.useState)(""),[ei,eo]=(0,i.useState)(!1),[ec,eu]=(0,i.useState)(null),[eh,ex]=(0,i.useState)(null),ev=(0,i.useRef)(!0),eC=(0,i.useRef)(null),[e_,eR]=(0,i.useState)(!1),eT=z.effectiveRunningIds,[eM,eE]=(0,i.useState)(!1),[ez,eW]=(0,i.useState)(null),[eP,e$]=(0,i.useState)(null),[eH,eF]=(0,i.useState)(()=>new Set),eD=(0,i.useRef)(null),[eN,eU]=(0,i.useState)(()=>new Set),[eq,eK]=(0,i.useState)(()=>Date.now()),[eV,eJ]=(0,i.useState)(()=>new Map),eY=eT.size>0||eH.size>0;(0,i.useEffect)(()=>{if(!eY)return;let e=setInterval(()=>eK(Date.now()),1e3);return()=>clearInterval(e)},[eY]),(0,i.useEffect)(()=>{let e=Date.now();eK(e),eJ(t=>(function(e,t,n,r){let i=new Map,o=e.size!==t.length;for(let s of t){let t=function(e,t){let n=e?.get(t);return"number"==typeof n?n:void 0}(n,s)??e.get(s)??r;e.get(s)!==t&&(o=!0),i.set(s,t)}return o?i:e})(t,[...eT,...eH],z.runningStartedAt,e))},[eT,eH,z.runningStartedAt]);let eG=z.unreadIds,[eZ,eX]=(0,i.useState)(""),[eQ,e0]=(0,i.useState)(!1),[e1,e2]=(0,i.useState)("meta"),[e4,e6]=(0,i.useState)([]),[e5,e8]=(0,i.useState)([]),[e9,tn]=(0,i.useState)(null),[to,ts]=(0,i.useState)(!1),[td,tu]=(0,i.useState)(null),tp=(0,i.useRef)(0),th=(0,i.useRef)(null),[tg,tf]=(0,i.useState)(!1),[tx,tm]=(0,i.useState)(null),tv=(0,i.useRef)(null),ty=(0,i.useRef)(null),tb=(0,i.useRef)(null);(0,i.useEffect)(()=>{if(!tg||!tb.current)return;let e=requestAnimationFrame(()=>{let e=ty.current,t=tb.current;if(!e||!t)return;let n=e.offsetHeight;t.bottom+4+n<=window.innerHeight||tm(e=>e?{...e,top:Math.max(8,t.top-n-4)}:e)});return()=>cancelAnimationFrame(e)},[tg]);let[tw,tk]=(0,i.useState)(()=>L()),[tj,tS]=(0,i.useState)({}),[tC,t_]=(0,i.useState)(()=>new Set),tI=(0,i.useRef)(new Set),tR=(0,i.useRef)(null),tT=(0,i.useRef)(!1),tM=(0,i.useRef)(null),tE=(0,i.useRef)(new Set),tz=(0,i.useRef)(new Set),tL=(0,i.useRef)(!1),tW=(0,i.useRef)(0),tA=(0,i.useRef)(0),tP=(0,i.useRef)(null),t$=(0,i.useCallback)((e,t)=>{tW.current+=1;let n=[...e],r=tQ(),i=[...I.getState().startingIds].filter(e=>r.getRunState(e)?.sendInFlight===!0);I.applyRunningSnapshot({runningIds:n,runningStartedAt:t,selectedSessionId:E.current,localInFlightIds:i,now:Date.now()})},[I]),tH=(0,i.useCallback)(e=>{tk(t=>{let n=e(t);if(n!==t){let e={...n,sidebarWidth:L().sidebarWidth};W(e),(0,Z.dM)("sidebarUi",A(e))}return n})},[]),tF=(0,Z.Fd)(),tD=(0,i.useMemo)(()=>{let e=tF.projectAliases,t="object"!=typeof e||null===e||Array.isArray(e)?{}:e;return{...tw.projectAliases,...t}},[tw.projectAliases,tF]);(0,i.useEffect)(()=>{let e=tF.sidebarUi;void 0!==e&&tk(t=>{let n=function(e,t){if("object"!=typeof t||null===t||Array.isArray(t))return e;let n=T({...e,...t});return{...e,displayMode:n.displayMode,collapsedProjectRoots:n.collapsedProjectRoots,collapsedWorktreePaths:n.collapsedWorktreePaths,closedProjectRoots:n.closedProjectRoots,addedProjectRoots:n.addedProjectRoots,showRecentSessions:n.showRecentSessions,pinnedSessionIds:n.pinnedSessionIds,projectSort:n.projectSort,projectOrder:n.projectOrder}}(t,e);return JSON.stringify(A(t))===JSON.stringify(A(n))?t:(W({...n,sidebarWidth:L().sidebarWidth}),n)})},[tF]);let tN=tw.displayMode,tB=tw.showRecentSessions,[tO,tU]=(0,i.useState)(5),tq=(0,i.useMemo)(()=>new Set(tw.collapsedProjectRoots),[tw.collapsedProjectRoots]),tK=(0,i.useMemo)(()=>new Set(tw.collapsedWorktreePaths),[tw.collapsedWorktreePaths]),tV=(0,i.useMemo)(()=>new Set(tw.closedProjectRoots),[tw.closedProjectRoots]);(0,i.useEffect)(()=>I.subscribe(()=>M(e=>e+1)),[I]);let tJ=(0,i.useCallback)(async(e=!1)=>{let t=++U.current;if(e&&0===O.current.length&&!$){let e=Y();if(e&&e.length>0){if(!ev.current||!et(t,U.current))return;I.applyServerList({sessions:e,archivedSessions:[],archivedCount:0})}}I.beginListLoad();try{let n=await fetch("/api/sessions");if(!ev.current||!et(t,U.current))return;if(!n.ok)throw Error(`HTTP ${n.status}`);let r=await n.json();if(!ev.current||!et(t,U.current))return;I.applyServerList({sessions:r.sessions,archivedSessions:r.archivedSessions??[],archivedCount:r.archivedCount??0,runningSessionIds:r.runningSessionIds,runningStartedAt:r.runningStartedAt,selectedSessionId:E.current,now:Date.now()}),G(r.sessions),e||(eR(!0),tP.current&&clearTimeout(tP.current),tP.current=setTimeout(()=>{ev.current&&eR(!1)},2e3))}catch(e){if(!ev.current||!et(t,U.current))return;I.applyListError(String(e))}},[I,$,O]),tY=(0,i.useRef)(tJ);tY.current=tJ;let tG=(0,i.useRef)(!1);(0,i.useEffect)(()=>{let e=!tG.current;tG.current=!0,tY.current(e)},[h]),(0,i.useEffect)(()=>{let e=()=>{"visible"===document.visibilityState&&tY.current(!1)};return document.addEventListener("visibilitychange",e),window.addEventListener("focus",e),()=>{document.removeEventListener("visibilitychange",e),window.removeEventListener("focus",e)}},[]);let{worktreeSnapshots:tZ,worktreeSnapshotsRef:tX,worktreeMetadata:t2,setWtRefreshKey:t4,commitWorktreeSnapshots:t6}=function({allSessions:e,selectedCwd:t,selectedProjectRoot:n,setIdentity:r,getIdentitySnapshot:o,mountedRef:s}){let[l,d]=(0,i.useState)({}),c=(0,i.useRef)({}),[u,p]=(0,i.useState)({}),h=(0,i.useRef)(new Set),g=(0,i.useRef)(new Map),[f,x]=(0,i.useState)(0),m=(0,i.useCallback)(e=>{d(t=>{let n=e(t);return c.current=n,n})},[]);(0,i.useEffect)(()=>()=>{g.current.clear()},[]);let v=(0,i.useCallback)(async e=>{if(h.current.has(e))return;let t=`${Date.now()}:${Math.random()}`;h.current.add(e),g.current.set(e,t),m(t=>er(t,e,{status:"loading"}));try{var n;let i=await fetch(`/api/worktrees?cwd=${encodeURIComponent(e)}`),l=await i.json().catch(()=>({}));if(!i.ok||l.error||!l.projectRoot)throw Error(l.error??`HTTP ${i.status}`);if(!s.current||g.current.get(e)!==t)return;let a=l.projectRoot,d=l.worktrees??[];m(t=>a===e?er(t,e,{status:"ready",worktrees:d}):er(function(e,t){if(!(t in e))return e;let n={...e};return delete n[t],n}(t,e),a,{status:"ready",worktrees:d})),p(t=>{let n={isGit:l.isGit??!1,isTopLevel:l.isTopLevel??!1};return a===e?{...t,[e]:n}:{...t,[a]:n}});let c=o();(n={snapshotCwd:c.cwd,snapshotProjectRoot:c.projectRoot,requestedRoot:e,canonicalRoot:a}).snapshotCwd&&(n.snapshotCwd===n.requestedRoot||n.snapshotProjectRoot===n.requestedRoot||n.snapshotCwd===n.canonicalRoot||n.snapshotProjectRoot===n.canonicalRoot)&&r({cwd:c.cwd,projectRoot:a,branch:d.find(e=>e.path===c.cwd)?.branch??c.branch,isGit:l.isGit??!1,isTopLevel:l.isTopLevel??!1,status:"ready",error:null})}catch(n){if(!s.current||g.current.get(e)!==t)return;m(t=>er(t,e,{status:"error",error:n instanceof Error?n.message:String(n)}))}finally{g.current.get(e)===t&&(g.current.delete(e),h.current.delete(e))}},[m,o,r,s]),y=(0,i.useMemo)(()=>{var r,i,o;return r=a(e),i=t,(o=n)?r.includes(o)?r:[o,...r]:i&&!r.includes(i)?[i,...r]:r},[e,t,n]),b=(0,i.useRef)(new Map);return(0,i.useEffect)(()=>{let e=`wt:${Math.max(0,Math.floor(f))}`,t=y.filter(t=>b.current.get(t)!==e);for(let n of t)b.current.set(n,e);let n=!1;return Promise.all(Array.from({length:Math.min(3,t.length)},async()=>{for(;!n;){let e=t.shift();if(!e)return;await v(e)}})),()=>{n=!0}},[y,f,v]),{worktreeSnapshots:l,worktreeSnapshotsRef:c,worktreeMetadata:u,wtRefreshKey:f,setWtRefreshKey:x,commitWorktreeSnapshots:m,fetchProjectWorktrees:v,knownProjectRoots:y}}({allSessions:P,selectedCwd:q,selectedProjectRoot:K,setIdentity:V,getIdentitySnapshot:J,mountedRef:ev});(0,i.useEffect)(()=>{let e=(0,ed.mD)([...(0,ed.Uj)()]);I.replaceUnread(e)},[I]),(0,i.useEffect)(()=>{let e=I.getState().unread,t=(0,ed.hA)(e);(0,ed.Xb)(t)},[R,I]),(0,i.useEffect)(()=>{let e=new EventSource("/api/agent/running/events");return e.onmessage=e=>{try{let t=JSON.parse(e.data);"running"===t.type&&(tL.current=!0,t$((t.runningSessionIds??[]).filter(e=>"string"==typeof e),t.runningStartedAt&&"object"==typeof t.runningStartedAt?t.runningStartedAt:void 0),eU(t0(t.pendingExtensionUi)))}catch{}},()=>e.close()},[t$]),(0,i.useEffect)(()=>{let e=()=>{if("visible"!==document.visibilityState)return;let e=++tA.current,t=tW.current;fetch("/api/agent/running",{cache:"no-store"}).then(e=>e.json()).then(n=>{!Array.isArray(n.runningSessionIds)||ev.current&&(0,ed._i)(t,tW.current,e,tA.current)&&(tL.current=!0,t$(n.runningSessionIds.filter(e=>"string"==typeof e),n.runningStartedAt&&"object"==typeof n.runningStartedAt?n.runningStartedAt:void 0),eU(t0(n.pendingExtensionUi)))}).catch(()=>void 0)};return window.addEventListener("focus",e),document.addEventListener("visibilitychange",e),()=>{window.removeEventListener("focus",e),document.removeEventListener("visibilitychange",e)}},[t$]);let t5=(0,i.useCallback)(async()=>{try{let e=await fetch("/api/subagent-runs?limit=50");if(!e.ok)return;let t=((await e.json()).runs??[]).filter(e=>"running"===e.state||"queued"===e.state||"paused"===e.state),n=new Set;for(let e of t)for(let t of e.steps??[])t.sessionId&&n.add(t.sessionId);let r=new Set;if(n.size>0)for(let e of O.current)e.subagent?.parentSessionId&&n.has(e.id)&&r.add(e.subagent.parentSessionId);eF(new Set([...n,...r]))}catch{}},[]);(0,i.useEffect)(()=>(t5(),eD.current=setInterval(()=>void t5(),3e4),()=>{eD.current&&clearInterval(eD.current)}),[t5]),(0,i.useEffect)(()=>{e_&&t5()},[e_,t5]),(0,i.useEffect)(()=>{tE.current=new Set(B),tz.current=new Set(eT)},[eT,B]);let t8=(0,i.useRef)(new Set);(0,i.useEffect)(()=>{let e=t8.current,t=[...B].filter(t=>!e.has(t));t8.current=new Set(B),t.length>0&&tJ(!1)},[B,tJ]),(0,i.useEffect)(()=>{e&&I.markRead(e)},[e,I]),(0,i.useEffect)(()=>{fetch("/api/home").then(e=>e.json()).then(e=>{e.home&&en(e.home)}).catch(()=>{})},[]);let t3=(0,i.useRef)(!1);(0,i.useEffect)(()=>{t3.current=!1},[p]),(0,i.useEffect)(()=>()=>{ev.current=!1},[]);let t9=(0,i.useCallback)(e=>{if(!e)return null;if(q===e&&K)return K;for(let[t,n]of Object.entries(tX.current))if(n.worktrees.some(t=>t.path===e))return t;let t=P.find(t=>t.cwd===e);return t?.projectRoot??e},[q,K,P]),t7=(0,i.useCallback)((e,t)=>{let n=null===e?null:t??t9(e)??e;V({cwd:e,projectRoot:n,status:e?"ready":"idle",error:null})},[t9,V]),ne=K??t9(q),{wtNewForProject:nt,setWtNewForProject:nn,wtNewBranch:nr,setWtNewBranch:ni,wtError:no,setWtError:ns,wtErrorRoot:nl,setWtErrorRoot:na,wtBusy:nd,wtConfirmRemove:nc,setWtConfirmRemove:nu,handleCreateWorktree:np,handleRemoveWorktree:nh}=function({selectedCwd:e,selectCwd:t,commitWorktreeSnapshots:n,setWtRefreshKey:r}){let[o,s]=(0,i.useState)(null),[l,a]=(0,i.useState)(""),[d,c]=(0,i.useState)(null),[u,p]=(0,i.useState)(null),[h,g]=(0,i.useState)(!1),[f,x]=(0,i.useState)(null);(0,i.useEffect)(()=>{s(null),a(""),c(null),p(null),x(null)},[e]);let m=(0,i.useCallback)(async()=>{let e=l.trim();if(e&&!h&&o){g(!0),c(null),p(null);try{let i=await fetch("/api/worktrees",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({cwd:o,branch:e})}),l=await i.json().catch(()=>({}));if(!i.ok||l.error||!l.path){c(l.error??`HTTP ${i.status}`),p(o);return}s(null),a(""),n(t=>er(t,o,{status:"ready",worktrees:[...t[o]?.worktrees??[],{path:l.path,branch:e,isMain:!1}]})),t(l.path,o),r(e=>e+1)}catch(e){c(e instanceof Error?e.message:String(e)),p(o)}finally{g(!1)}}},[o,l,h,n,t,r]),v=(0,i.useCallback)(async(n,i,o)=>{if(!h){g(!0),c(null),p(null);try{let s=await fetch("/api/worktrees",{method:"DELETE",headers:{"Content-Type":"application/json"},body:JSON.stringify({cwd:n,path:i,force:o})}),l=await s.json().catch(()=>({}));if(!s.ok){if(l.dirty&&!o)return void x(i);c(l.error??`HTTP ${s.status}`),p(n);return}x(null),e===i&&t(n,n),r(e=>e+1)}catch(e){c(e instanceof Error?e.message:String(e)),p(n)}finally{g(!1)}}},[h,e,t,r]);return{wtNewForProject:o,setWtNewForProject:s,wtNewBranch:l,setWtNewBranch:a,wtError:d,setWtError:c,wtErrorRoot:u,setWtErrorRoot:p,wtBusy:h,wtConfirmRemove:f,setWtConfirmRemove:x,handleCreateWorktree:m,handleRemoveWorktree:v}}({selectedCwd:q,selectCwd:(e,t)=>t7(e,t),commitWorktreeSnapshots:t6,setWtRefreshKey:t4});(0,i.useEffect)(()=>{if(!s||o){if(o&&!t3.current){if(F&&$){t3.current=!0,u?.({error:F});return}if(!$)return;let e=P.find(e=>e.id===o);if(e){t3.current=!0,t(e,!0),u?.({found:!0});return}t3.current=!0,u?.({found:!1});return}if(0!==P.length&&null===q){let e=a(P).find(e=>!tV.has(e));e&&t7(e)}}},[P,q,o,s,t,u,t7,tV,$,F,p]);let ng=(0,i.useCallback)(()=>{eo(!1)},[]),nf=(0,i.useCallback)(e=>{tH(t=>t.closedProjectRoots.includes(e)?{...t,closedProjectRoots:t.closedProjectRoots.filter(t=>t!==e)}:t)},[tH]),nx=(0,i.useCallback)((e,t)=>{tH(e=>e.addedProjectRoots.includes(t)?e:{...e,addedProjectRoots:[...e.addedProjectRoots,t]}),nf(t),ng(),j?.(t)},[tH,nf,ng,j]),nm=(0,i.useCallback)(()=>{eo(!0)},[]);(0,i.useEffect)(()=>{if(!tg)return;let e=e=>{!tv.current||tv.current.contains(e.target)||ty.current?.contains(e.target)||tf(!1)};return document.addEventListener("mousedown",e),()=>document.removeEventListener("mousedown",e)},[tg]);let nv=(0,i.useCallback)(e=>{t(e)},[t]),ny=(0,i.useCallback)(e=>{tH(t=>t.pinnedSessionIds.includes(e)?{...t,pinnedSessionIds:t.pinnedSessionIds.filter(t=>t!==e)}:t),I.markDeleted(e),k?.(e),tJ()},[I,k,tJ,tH]),nb=(0,i.useCallback)(async e=>{if(null===ez){eW(e),e$(null);try{let t=await function(e,t=fetch){return ti(`/api/sessions/${encodeURIComponent(e)}/archive`,{method:"POST"},t)}(e);if(!t.ok){let e=tl(t);e$("running"===e?C("archive_runningConflict"):"readOnly"===e?C("archive_readOnlyForbidden"):"network"===e?C("archive_networkError"):t.error??C("archive_unknownError"));return}tH(t=>t.pinnedSessionIds.includes(e)?{...t,pinnedSessionIds:t.pinnedSessionIds.filter(t=>t!==e)}:t),tJ()}catch(e){e$(e instanceof Error?e.message:String(e))}finally{eW(null)}}},[ez,tJ,C,tH]),nw=(0,i.useCallback)(()=>{eE(e=>(e||e$(null),!e))},[]),nk=(0,i.useCallback)(e=>{tH(t=>t.showRecentSessions===e?t:{...t,showRecentSessions:e})},[tH]),nj=(0,i.useMemo)(()=>new Set(tw.pinnedSessionIds),[tw.pinnedSessionIds]),nS=(0,i.useMemo)(()=>(function(e){let{sessions:t,pinnedSessionIds:n,closedProjectRoots:r}=e,i=new Map;for(let e of t){if(e.subagent)continue;let t=e.projectRoot??e.cwd;t&&r?.has(t)||i.set(e.id,e)}let o=[],s=new Set;for(let e of n){let t=i.get(e);t&&!s.has(e)&&(s.add(e),o.push(t))}return o})({sessions:P,pinnedSessionIds:tw.pinnedSessionIds,closedProjectRoots:tV}),[P,tw.pinnedSessionIds,tV]),nC=(0,i.useCallback)(e=>{tH(t=>t.pinnedSessionIds.includes(e)?{...t,pinnedSessionIds:t.pinnedSessionIds.filter(t=>t!==e)}:{...t,pinnedSessionIds:[e,...t.pinnedSessionIds]})},[tH]),n_=(0,i.useMemo)(()=>(function(e){let{sessions:t,closedProjectRoots:n,excludeIds:r,limit:i=20}=e,o=Math.max(0,Math.floor(i));return t.filter(e=>{if(e.subagent||r?.has(e.id))return!1;let t=e.projectRoot??e.cwd;return!(t&&n?.has(t))}).slice().sort(ee).slice(0,o)})({sessions:P,closedProjectRoots:tV,excludeIds:nj,limit:20}),[P,tV,nj]);(0,i.useEffect)(()=>{tU(e=>0===n_.length?5:Math.min(Math.max(e,5),n_.length))},[n_.length]);let nI=(0,i.useCallback)((e=q)=>{e&&(t7(e,t9(e)),n?.(e))},[q,n,t7,t9]),nR=(0,i.useCallback)(()=>{eX(""),e6([]),e8([]),tn(null),tu(null),ts(!1),tp.current+=1},[]),nT=(0,i.useCallback)(()=>{eQ?(e0(!1),nR()):(e0(!0),setTimeout(()=>th.current?.focus(),0))},[eQ,nR]);(0,i.useEffect)(()=>{if(!eQ||"fulltext"!==e1)return void ts(!1);let e=eZ.trim();if(!e){e6([]),e8([]),tn(null),tu(null),ts(!1);return}let t=++tp.current;ts(!0),tu(null);let n=setTimeout(()=>{(async()=>{try{let n=await fetch(`/api/sessions/search?q=${encodeURIComponent(e)}&limit=40`),r=await n.json().catch(()=>({}));if(t!==tp.current)return;if(!n.ok||r.error){tu(r.error??`HTTP ${n.status}`),e6([]),e8([]),tn(null);return}e6(r.hits??[]),e8(r.sessionIds??[]),tn(r.source??null)}catch(e){if(t!==tp.current)return;tu(e instanceof Error?e.message:String(e)),e6([]),e8([]),tn(null)}finally{t===tp.current&&ts(!1)}})()},280);return()=>clearTimeout(n)},[eQ,e1,eZ]);let nM=(0,i.useMemo)(()=>Object.fromEntries(Object.entries(tZ).map(([e,t])=>[e,t.worktrees])),[tZ]),nE=(0,i.useMemo)(()=>(function(e,t={}){let{selectedCwd:n=null,selectedProjectRoot:r=null,knownWorktrees:i=[],knownWorktreesByProject:o={}}=t,s=new Map;for(let t of e){let e=t.projectRoot??t.cwd,n=s.get(e);if(n||(n={main:[],worktrees:new Map},s.set(e,n)),t.cwd===e)n.main.push(t);else{let e=n.worktrees.get(t.cwd);e||(e={sessions:[],branch:null},n.worktrees.set(t.cwd,e)),e.sessions.push(t),!e.branch&&t.worktreeBranch&&(e.branch=t.worktreeBranch)}}let l=r??n;for(let[e,t]of Object.entries(l?{...o,[l]:o[l]??i}:o)){let n=s.get(e);for(let r of(n||(n={main:[],worktrees:new Map},s.set(e,n)),t))!r.isMain&&(n.worktrees.has(r.path)||n.worktrees.set(r.path,{sessions:[],branch:r.branch}))}for(let e of(l&&!s.has(l)&&s.set(l,{main:[],worktrees:new Map}),t.addedProjectRoots??[]))s.has(e)||s.set(e,{main:[],worktrees:new Map});let a=[];for(let[e,t]of s){let n=[...t.worktrees.entries()].map(([e,t])=>({path:e,branch:t.branch,tree:g(t.sessions),latestActivity:v(t.sessions)})).sort((e,t)=>e.latestActivity&&t.latestActivity?t.latestActivity.localeCompare(e.latestActivity):e.latestActivity?-1:t.latestActivity?1:e.path.localeCompare(t.path)),r=[...t.main,...t.worktrees.values().flatMap(e=>e.sessions)];a.push({root:e,mainTree:g(t.main),worktrees:n,latestActivity:v(r)})}return a.sort((e,t)=>e.latestActivity||t.latestActivity?e.latestActivity?t.latestActivity?t.latestActivity.localeCompare(e.latestActivity):t.root===l?1:-1:e.root===l?-1:1:e.root.localeCompare(t.root)),a})(P,{selectedCwd:q,selectedProjectRoot:ne,knownWorktreesByProject:nM,addedProjectRoots:tw.addedProjectRoots}),[P,q,ne,nM,tw.addedProjectRoots]),nz=(0,i.useMemo)(()=>{let e=new Map,t=n=>{for(let r of n)e.set(r.session.id,r),r.children.length>0&&t(r.children)};for(let e of nE)for(let n of(t(e.mainTree),e.worktrees))t(n.tree);return e},[nE]),nL=(0,i.useMemo)(()=>0===tV.size?nE:nE.filter(e=>!tV.has(e.root)),[nE,tV]),nW=eZ.trim().toLowerCase(),nA="fulltext"===e1&&nW.length>0,nP=(0,i.useMemo)(()=>nA?new Set(e5):null,[nA,e5]),n$=nA?e5.length>0||to||!!td:nW.length>0,nH=(0,i.useMemo)(()=>(function(e,t){let{mode:n,order:r=[],aliases:i,selectedRoot:o=null}=t,s=[...e];if("az"===n||"za"===n)return s.sort((e,t)=>{let r=y.compare(b(e,i),b(t,i));return"az"===n?r:-r}),s;if("fixed"===n){let e=new Map(r.map((e,t)=>[e,t]));return s.sort((t,n)=>{let r=e.has(t.root)?e.get(t.root):Number.MAX_SAFE_INTEGER,i=e.has(n.root)?e.get(n.root):Number.MAX_SAFE_INTEGER;return r!==i?r-i:n.latestActivity.localeCompare(t.latestActivity)}),s}return s.sort((e,t)=>e.latestActivity||t.latestActivity?e.latestActivity?t.latestActivity?t.latestActivity.localeCompare(e.latestActivity):t.root===o?1:-1:e.root===o?-1:1:e.root.localeCompare(t.root)),s})(nL,{mode:tw.projectSort,order:tw.projectOrder,aliases:tD,selectedRoot:ne}),[nL,tw.projectSort,tw.projectOrder,tD,ne]),nF=(0,i.useMemo)(()=>(function(e,t,n,r){let i=null!=r;if(!i&&!t)return e;let o=[];for(let s of e){if(!i){let e=n?.[s.root];if(s.root.toLowerCase().includes(t)||void 0!==e&&e.toLowerCase().includes(t)){o.push(s);continue}}let e=i?w(s.mainTree,r):f(s.mainTree,t),l=[];for(let e of s.worktrees){if(!i&&`${e.branch??""}
2
- ${e.path}`.toLowerCase().includes(t)){l.push(e);continue}let n=i?w(e.tree,r):f(e.tree,t);n.length>0&&l.push({...e,tree:n})}(e.length>0||l.length>0)&&o.push({...s,mainTree:e,worktrees:l})}return o})(nH,nA?"":nW,tD,nP),[nH,nW,tD,nP,nA]),nD=(0,i.useCallback)(e=>{let t=P.find(t=>t.id===e);t&&nv(t)},[P,nv]);(0,i.useEffect)(()=>{let e=function(e){let t=[];for(let n of e)for(let e of(t.push(...m(n.mainTree)),n.worktrees))t.push(...m(e.tree));return t}(nE);0!==e.length&&t_(t=>{let n=!1,r=new Set(t);for(let t of e)!tI.current.has(t)&&(r.has(t)||(r.add(t),n=!0));return n?r:t})},[nE]),(0,i.useEffect)(()=>{if(!e)return;let t=function(e,t){for(let n of e){if(n.mainTree.some(e=>e.session.id===t))return{projectRoot:n.root,worktreePath:null,ancestors:[]};let e=x(n.mainTree,t);if(e.length>0)return{projectRoot:n.root,worktreePath:null,ancestors:e};for(let e of n.worktrees){if(e.tree.some(e=>e.session.id===t))return{projectRoot:n.root,worktreePath:e.path,ancestors:[]};let r=x(e.tree,t);if(r.length>0)return{projectRoot:n.root,worktreePath:e.path,ancestors:r}}}return null}(nE,e);if(t&&(tH(e=>{let n=e.collapsedProjectRoots.includes(t.projectRoot),r=null!==t.worktreePath&&e.collapsedWorktreePaths.includes(t.worktreePath);return n||r?{...e,collapsedProjectRoots:n?e.collapsedProjectRoots.filter(e=>e!==t.projectRoot):e.collapsedProjectRoots,collapsedWorktreePaths:r?e.collapsedWorktreePaths.filter(e=>e!==t.worktreePath):e.collapsedWorktreePaths}:e}),t.ancestors.length>0)){for(let e of t.ancestors)tI.current.add(e);t_(e=>{if(!t.ancestors.some(t=>e.has(t)))return e;let n=new Set(e);return t.ancestors.forEach(e=>n.delete(e)),n})}},[e,nE,tH]),(0,i.useLayoutEffect)(()=>{if(!e)return;let t=tR.current;if(!t)return;let n=Array.from(t.querySelectorAll("[data-session-id]")).find(t=>t.dataset.sessionId===e);if(!n)return;let r=!tT.current&&o===e,i=tM.current!==e;tM.current=e;let s=t.getBoundingClientRect(),l=n.getBoundingClientRect(),a=l.top<s.top||l.bottom>s.bottom;(r||i&&a)&&n.scrollIntoView({block:"nearest"}),r&&(tT.current=!0)},[e,o,nF,tq,tK,tC]);let nN=(0,i.useCallback)(e=>{tI.current.add(e),t_(t=>{let n=new Set(t);return n.has(e)?n.delete(e):n.add(e),n})},[]),nB=(0,i.useCallback)(e=>{tH(t=>({...t,collapsedProjectRoots:t.collapsedProjectRoots.includes(e)?t.collapsedProjectRoots.filter(t=>t!==e):[...t.collapsedProjectRoots,e]}))},[tH]),nO=(0,i.useCallback)(e=>{tH(t=>({...t,collapsedWorktreePaths:t.collapsedWorktreePaths.includes(e)?t.collapsedWorktreePaths.filter(t=>t!==e):[...t.collapsedWorktreePaths,e]}))},[tH]),nU=(0,i.useCallback)(e=>{let t;if(eu(null),t=eT instanceof Set?eT:new Set(eT),P.some(n=>(n.projectRoot??n.cwd)===e&&t.has(n.id)))return void ns(C("sidebar_closeProjectRunning"));let r=new Set(tw.closedProjectRoots);if(r.add(e),tH(t=>t.closedProjectRoots.includes(e)?t:{...t,closedProjectRoots:[...t.closedProjectRoots,e]}),ne===e){let t=function(e,t,n){for(let r of e)if(r.root!==t&&!n.has(r.root))return r.root;return null}(nE,e,r);t?t7(t,t):(t7(null),n?.())}},[tw.closedProjectRoots,ne,nE,tH,t7,n,P,eT,C]),nq=(0,i.useCallback)(e=>{eu(null),ex(e)},[]),nK=(0,i.useCallback)(e=>{if(!eh)return;let t=e.trim();if(!t)return;ex(null);let n={...tD};t===c(eh)?delete n[eh]:n[eh]=t,tH(e=>({...e,projectAliases:n})),(0,Z.dM)("projectAliases",n)},[eh,tD,tH]),nV=(0,i.useCallback)(e=>{tH(t=>t.displayMode===e?t:{...t,displayMode:e})},[tH]),nJ=(0,i.useCallback)(e=>{tH(t=>{if(t.projectSort===e&&"fixed"!==e)return t;let n="fixed"===e?t.projectOrder.length>0?t.projectOrder:nF.map(e=>e.root):t.projectOrder;return{...t,projectSort:e,projectOrder:n}})},[tH,nF]),nY=(0,i.useCallback)((e,t)=>{e&&t&&e!==t&&tH(n=>{let r,i,o,s="fixed"===n.projectSort&&n.projectOrder.length>0?[...n.projectOrder]:nF.map(e=>e.root);for(let e of nF)s.includes(e.root)||s.push(e.root);return s.includes(e)||s.push(e),s.includes(t)||s.push(t),{...n,projectSort:"fixed",projectOrder:(i=(r=[...s]).indexOf(e),o=r.indexOf(t),i<0||o<0||i===o||(r.splice(i,1),r.splice(o,0,e)),r)}})},[tH,nF]),nG=(0,i.useCallback)(()=>{let e=function(e){let t=[],n=[];for(let r of e)for(let e of(t.push(r.root),r.worktrees))n.push(e.path);return{projectRoots:t,worktreePaths:n}}(nL);tH(t=>({...t,collapsedProjectRoots:e.projectRoots,collapsedWorktreePaths:e.worktreePaths}))},[nL,tH]),nZ=(0,i.useCallback)(()=>{tH(e=>0===e.collapsedProjectRoots.length&&0===e.collapsedWorktreePaths.length?e:{...e,collapsedProjectRoots:[],collapsedWorktreePaths:[]})},[tH]),nX=(0,i.useCallback)(e=>{let t=tZ[e],n=t2[e],r=!!(n?.isGit&&n.isTopLevel),i=r?C("sidebar_createWorktree"):t?.status!=="loading"&&t?n?.isGit?C("sidebar_worktreeOpenRoot"):C("sidebar_worktreeGitOnly"):C("sidebar_checkingWorktree");return{canManage:r,createHint:i,busy:nd}},[tZ,t2,nd,C]);return(0,r.jsx)(eB.Provider,{value:{startedAt:eV,now:eq},children:(0,r.jsx)(eO.Provider,{value:eN,children:(0,r.jsxs)("div",{style:{display:"flex",flexDirection:"column",height:"100%",overflow:"hidden"},children:[(0,r.jsxs)("div",{style:{padding:"10px 10px 8px",borderBottom:"1px solid var(--border)",flexShrink:0},children:[(0,r.jsxs)("div",{style:{display:"flex",alignItems:"center",justifyContent:"space-between"},children:[(0,r.jsx)(eg,{}),(0,r.jsxs)("div",{className:"sidebar-toolbar",style:{display:"flex",alignItems:"center",gap:6},children:[(0,r.jsx)(ef,{label:C("sidebar_addProject"),onClick:nm,active:ei,children:(0,r.jsx)(em,{size:18})}),(0,r.jsx)(ef,{label:q?C("sidebar_newSessionIn",{project:d(q,Q)}):C("sidebar_selectProject"),disabled:!q,onClick:()=>nI(),children:(0,r.jsx)(ek,{size:18})}),(0,r.jsx)(ef,{label:C("sidebar_searchSessions"),active:eQ,expanded:eQ,onClick:nT,children:(0,r.jsx)(ej,{size:18})}),(0,r.jsx)(ef,{label:C("sidebar_archive"),active:eM,expanded:eM,onClick:nw,children:(0,r.jsx)(ew,{size:18})}),(0,r.jsxs)("div",{ref:tv,style:{position:"relative"},children:[(0,r.jsx)(ef,{label:C("sidebar_displayOptions"),active:tg,expanded:tg,onClick:()=>{let e=!tg;if(tf(e),e){let e=tv.current?.getBoundingClientRect();e&&(tb.current={top:e.top,bottom:e.bottom,right:e.right},tm({top:e.bottom+4,right:Math.max(8,window.innerWidth-e.right)}))}},children:(0,r.jsx)(eS,{size:18})}),tg&&(0,l.createPortal)((0,r.jsx)(ep,{open:tg,style:{position:"fixed",top:tx?.top??0,right:tx?.right??0,zIndex:600,background:"var(--bg)",border:"1px solid var(--border)",borderRadius:8,boxShadow:"0 6px 20px rgba(0,0,0,0.10)",overflow:"hidden",minWidth:168},children:(0,r.jsxs)("div",{ref:ty,onKeyDown:e=>{"Escape"===e.key&&tf(!1)},children:[(0,r.jsx)(eA,{label:C("sidebar_standard"),checked:"standard"===tN,onClick:()=>{nV("standard"),tf(!1)}}),(0,r.jsx)(eA,{label:C("sidebar_compact"),checked:"compact"===tN,onClick:()=>{nV("compact"),tf(!1)}}),(0,r.jsx)("div",{style:{borderTop:"1px solid var(--border)",margin:"2px 0"}}),(0,r.jsx)("div",{style:{padding:"6px 10px 2px",fontSize:10,fontWeight:600,color:"var(--text-dim)",letterSpacing:"0.04em"},children:C("sidebar_projectSort")}),(0,r.jsx)(eA,{label:C("sidebar_projectSortRecent"),checked:"recent"===tw.projectSort,onClick:()=>{nJ("recent"),tf(!1)}}),(0,r.jsx)(eA,{label:C("sidebar_projectSortAz"),checked:"az"===tw.projectSort,onClick:()=>{nJ("az"),tf(!1)}}),(0,r.jsx)(eA,{label:C("sidebar_projectSortZa"),checked:"za"===tw.projectSort,onClick:()=>{nJ("za"),tf(!1)}}),(0,r.jsx)(eA,{label:C("sidebar_projectSortFixed"),checked:"fixed"===tw.projectSort,onClick:()=>{nJ("fixed"),tf(!1)}}),(0,r.jsx)("div",{style:{borderTop:"1px solid var(--border)",margin:"2px 0"}}),(0,r.jsx)(eA,{label:C("sidebar_collapseAll"),onClick:()=>{nG(),tf(!1)}}),(0,r.jsx)(eA,{label:C("sidebar_expandAll"),onClick:()=>{nZ(),tf(!1)}}),(0,r.jsx)("div",{style:{borderTop:"1px solid var(--border)",margin:"2px 0"}}),(0,r.jsx)(eA,{label:C("sidebar_recentSessions"),checked:tB,onClick:()=>{nk(!tB),tf(!1)}})]})}),document.body)]})]})]}),!eM&&eQ&&(0,r.jsxs)("div",{style:{marginTop:8},children:[(0,r.jsxs)("div",{style:{display:"flex",gap:4,marginBottom:6},children:[(0,r.jsx)("button",{type:"button",onClick:()=>e2("meta"),"aria-pressed":"meta"===e1,style:{flex:1,height:24,borderRadius:6,border:"1px solid var(--border)",background:"meta"===e1?"var(--bg-selected)":"var(--bg-panel)",color:"var(--text)",fontSize:11,cursor:"pointer"},children:C("sidebar_searchModeMeta")}),(0,r.jsx)("button",{type:"button",onClick:()=>e2("fulltext"),"aria-pressed":"fulltext"===e1,style:{flex:1,height:24,borderRadius:6,border:"1px solid var(--border)",background:"fulltext"===e1?"var(--bg-selected)":"var(--bg-panel)",color:"var(--text)",fontSize:11,cursor:"pointer"},children:C("sidebar_searchModeFulltext")})]}),(0,r.jsxs)("div",{style:{position:"relative"},children:[(0,r.jsx)("span",{style:{position:"absolute",left:9,top:"50%",transform:"translateY(-50%)",color:"var(--text-dim)",pointerEvents:"none",display:"flex"},children:(0,r.jsx)(ej,{size:13})}),(0,r.jsx)("input",{ref:th,type:"search",value:eZ,onChange:e=>eX(e.target.value),onKeyDown:e=>{"Escape"===e.key&&(e.stopPropagation(),eZ||e0(!1),nR())},placeholder:"fulltext"===e1?C("sidebar_searchPlaceholderFulltext"):C("sidebar_searchPlaceholder"),"aria-label":C("sidebar_searchSessions"),style:{width:"100%",height:30,boxSizing:"border-box",padding:"0 28px 0 29px",border:"1px solid var(--border)",borderRadius:7,background:"var(--bg-panel)",color:"var(--text)",fontSize:11.5,outline:"none"}}),eZ&&(0,r.jsx)("button",{type:"button",onClick:()=>nR(),"aria-label":C("sidebar_clearSearch"),title:C("sidebar_clearSearch"),style:{position:"absolute",right:4,top:"50%",transform:"translateY(-50%)",width:22,height:22,display:"flex",alignItems:"center",justifyContent:"center",padding:0,border:"none",borderRadius:5,background:"none",color:"var(--text-dim)",cursor:"pointer"},children:(0,r.jsx)(eI,{size:13})})]}),"fulltext"===e1&&eZ.trim()&&(0,r.jsxs)("div",{style:{marginTop:6,fontSize:10.5,color:"var(--text-dim)",display:"flex",gap:8,alignItems:"center",flexWrap:"wrap"},children:[to&&(0,r.jsx)("span",{children:C("sidebar_searchFulltextLoading")}),!to&&"fts"===e9&&(0,r.jsxs)("span",{children:[C("sidebar_searchFulltextSourceFts")," \xb7 ",C("sidebar_searchFulltextHits",{count:e4.length})]}),!to&&"jsonl"===e9&&(0,r.jsxs)("span",{children:[C("sidebar_searchFulltextSourceJsonl")," \xb7 ",C("sidebar_searchFulltextHits",{count:e4.length})]}),td&&(0,r.jsx)("span",{style:{color:"var(--status-danger)"},children:td})]})]})]}),!eM&&eQ&&"fulltext"===e1&&e4.length>0&&(0,r.jsx)("div",{style:{flex:"0 0 auto",maxHeight:160,overflowY:"auto",overflowX:"hidden",borderBottom:"1px solid var(--border)",padding:"4px 0"},children:e4.slice(0,12).map((e,t)=>(0,r.jsxs)("button",{type:"button",onClick:()=>nD(e.sessionId),title:C("sidebar_searchFulltextSnippet"),style:{display:"block",width:"100%",textAlign:"left",padding:"6px 12px",border:"none",background:"transparent",color:"var(--text)",cursor:"pointer",fontSize:11,lineHeight:1.4},onMouseEnter:e=>{e.currentTarget.style.background="var(--bg-hover)"},onMouseLeave:e=>{e.currentTarget.style.background="transparent"},children:[(0,r.jsxs)("div",{style:{color:"var(--text-dim)",fontSize:10,marginBottom:2},children:[e.role??"message"," \xb7 ",e.sessionId.slice(0,8)]}),(0,r.jsx)("div",{style:{overflow:"hidden",display:"-webkit-box",WebkitLineClamp:2,WebkitBoxOrient:"vertical",whiteSpace:"normal"},children:e.snippet})]},`${e.sessionId}-${e.timestamp}-${t}`))}),eM?(0,r.jsx)(ta,{sessions:D,count:N,homeDir:Q,loading:H,onRefresh:tJ,onBack:()=>eE(!1)}):(0,r.jsxs)(r.Fragment,{children:[eP&&(0,r.jsx)("div",{role:"alert",style:{padding:"6px 12px",borderBottom:"1px solid var(--border)",background:"var(--status-danger-bg)",color:"var(--status-danger)",fontSize:11,lineHeight:1.4,overflowWrap:"anywhere",flexShrink:0},children:eP}),(0,r.jsxs)("div",{ref:tR,style:{flex:"1 1 auto",overflowY:"auto",overflowX:"hidden",padding:"2px 0",minHeight:80},children:[H&&(0,r.jsx)("div",{style:{padding:"16px 14px",color:"var(--text-muted)",fontSize:12},children:C("sidebar_loading")}),F&&(0,r.jsx)("div",{style:{padding:"12px 14px",color:"var(--status-danger)",fontSize:12},children:F}),!H&&!F&&0===nF.length&&(("meta"===e1?nW.length>0:nA&&!to)?(0,r.jsx)("div",{style:{padding:"18px 14px",color:"var(--text-muted)",fontSize:12,lineHeight:1.55},children:C("sidebar_searchEmpty",{query:eZ.trim()})}):(0,r.jsxs)("div",{style:{padding:"18px 14px",color:"var(--text-muted)",fontSize:12,lineHeight:1.7},children:[C("sidebar_noProjects"),(0,r.jsx)("div",{style:{color:"var(--text-dim)",fontSize:11},children:C("sidebar_addProject")})]})),!n$&&nS.length>0&&(0,r.jsxs)("div",{style:{paddingBottom:5,borderBottom:"1px solid var(--border)",marginBottom:5},children:[(0,r.jsxs)("div",{"data-sidebar-depth":0,className:"sidebar-row",style:{display:"flex",alignItems:"center",gap:6,height:32,margin:"1px 6px",paddingLeft:32,paddingRight:8,color:"var(--text-muted)",fontSize:12.5,fontWeight:600,position:"relative",borderRadius:6},children:[(0,r.jsx)("span",{"aria-hidden":"true",className:"sidebar-indicator-icon",style:{position:"absolute",left:6,top:"50%",display:"flex",width:20,height:20,alignItems:"center",justifyContent:"center",transform:"translateY(-50%)",color:"var(--text-dim)"},children:(0,r.jsx)(eb,{size:13})}),(0,r.jsx)("span",{style:{flex:1,fontSize:12.5,fontWeight:600},children:C("sidebar_pinnedSessions")})]}),nS.map(t=>{let n=nz.get(t.id);return n?(0,r.jsx)(e7,{node:n,selectedSessionId:e,runningSessionIds:eT,subagentRunningIds:eH,unreadSessionIds:eG,onSelectSession:nv,onRenamed:tJ,onSessionDeleted:ny,onSessionArchive:nb,isSessionPinned:e=>nj.has(e),onTogglePin:nC,depth:0,collapsedSessionIds:tC,searchActive:n$,onToggleCollapse:nN,displayMode:tN},t.id):(0,r.jsx)(te,{session:t,isSelected:t.id===e,isRunning:eT.has(t.id)||eH.has(t.id),isUnread:eG.has(t.id),onClick:()=>nv(t),onRenamed:tJ,onDeleted:ny,onArchive:nb,isPinned:nj.has(t.id),onTogglePin:()=>nC(t.id),depth:0,displayMode:tN},t.id)})]}),!n$&&n_.length>0&&(0,r.jsxs)("div",{style:{paddingBottom:5,borderBottom:"1px solid var(--border)",marginBottom:5},children:[(0,r.jsxs)("div",{"data-sidebar-depth":0,role:"button",tabIndex:0,"aria-expanded":tB,"aria-label":tB?C("sidebar_collapseRecentSessions"):C("sidebar_expandRecentSessions"),onClick:()=>nk(!tB),onKeyDown:e=>{("Enter"===e.key||" "===e.key)&&(e.preventDefault(),nk(!tB))},className:"sidebar-row",style:{display:"flex",alignItems:"center",gap:6,height:32,margin:"1px 6px",paddingLeft:32,paddingRight:8,color:"var(--text-muted)",fontSize:12.5,fontWeight:600,position:"relative",cursor:"pointer",borderRadius:6},onMouseEnter:e=>{e.currentTarget.style.background="var(--bg-hover)"},onMouseLeave:e=>{e.currentTarget.style.background="transparent"},children:[(0,r.jsx)(eL,{collapsed:!tB,label:tB?C("sidebar_collapseRecentSessions"):C("sidebar_expandRecentSessions"),left:6,onClick:e=>{e.stopPropagation(),nk(!tB)}}),(0,r.jsx)("span",{"aria-hidden":"true",className:"sidebar-indicator-icon",style:{position:"absolute",left:6,top:"50%",display:"flex",width:20,height:20,alignItems:"center",justifyContent:"center",transform:"translateY(-50%)",color:"var(--text-dim)"},children:(0,r.jsx)(ey,{size:13})}),(0,r.jsx)("span",{style:{flex:1,fontSize:12.5,fontWeight:600},children:C("sidebar_recentSessions")})]}),tB&&(0,r.jsxs)("div",{children:[n_.slice(0,tO).map(t=>{let n=nz.get(t.id);return n?(0,r.jsx)(e7,{node:n,selectedSessionId:e,runningSessionIds:eT,subagentRunningIds:eH,unreadSessionIds:eG,onSelectSession:nv,onRenamed:tJ,onSessionDeleted:ny,onSessionArchive:nb,isSessionPinned:e=>nj.has(e),onTogglePin:nC,depth:0,collapsedSessionIds:tC,searchActive:n$,onToggleCollapse:nN,displayMode:tN},t.id):(0,r.jsx)(te,{session:t,isSelected:t.id===e,isRunning:eT.has(t.id)||eH.has(t.id),isUnread:eG.has(t.id),onClick:()=>nv(t),onRenamed:tJ,onDeleted:ny,onArchive:nb,isPinned:nj.has(t.id),onTogglePin:()=>nC(t.id),depth:0,displayMode:tN},t.id)}),tO<n_.length&&(0,r.jsx)("div",{style:{display:"flex",alignItems:"center",gap:4,padding:"2px 8px 5px 28px"},children:(0,r.jsxs)("button",{type:"button",className:"sidebar-pagination-btn",onClick:()=>tU(e=>Math.min(e+5,n_.length)),children:[C("sidebar_showMore"),(0,r.jsxs)("span",{"aria-hidden":"true",children:["+",5]})]})})]})]}),nF.map(t=>(0,r.jsx)(e3,{project:t,homeDir:Q,displayMode:tN,projectAliases:tD,selectedSessionId:e,runningSessionIds:eT,subagentRunningIds:eH,unreadSessionIds:eG,collapsedProjectRoots:tq,collapsedWorktreePaths:tK,collapsedSessionIds:tC,searchActive:n$,onToggleProject:nB,onToggleWorktree:nO,onNewSession:nI,onSelectSession:nv,menuOpen:ec===t.root,onMenuOpenChange:e=>eu(e?t.root:null),onEditProject:()=>nq(t.root),onCloseProject:()=>nU(t.root),onRenamed:tJ,onSessionDeleted:ny,onToggleCollapse:nN,groupVisibleCounts:tj,onShowMore:e=>tS(t=>{let n;return n=X(t,e),{...t,[e]:n+5}}),onShowFewer:e=>tS(t=>(function(e,t){if(!(t in e))return e;let n={...e};return delete n[t],n})(t,e)),worktreeActions:nX(t.root),wtNewOpen:nt===t.root,wtNewBranch:nr,wtError:nl===t.root?no:null,wtConfirmRemove:nc,wtNewInputRef:eC,onStartCreateWorktree:()=>{nn(t.root),ns(null),na(null),setTimeout(()=>eC.current?.focus(),0)},onWtNewBranchChange:e=>{ni(e),ns(null),na(null)},onSubmitCreateWorktree:()=>void np(),onCancelCreateWorktree:()=>{nn(null),ni(""),ns(null),na(null)},onRequestRemoveWorktree:e=>void nh(t.root,e,!1),onConfirmRemoveWorktree:e=>void nh(t.root,e,!0),onCancelRemoveWorktree:()=>nu(null),onSessionArchive:nb,isSessionPinned:e=>nj.has(e),onTogglePin:nC,onProjectDrop:n$?void 0:nY},t.root))]})]}),(0,r.jsx)(tt,{open:ei,onClose:ng,resolveProjectRoot:e=>t9(e)??e,onAdded:nx}),(0,r.jsx)(tr,{projectRoot:eh,initialName:eh?tD[eh]??c(eh):"",onClose:()=>ex(null),onSaveName:nK})]})})})}let t2=/\x1B(?:[@-Z\\-_]|\[[0-?]*[ -/]*[@-~]|\][^\x07]*(?:\x07|\x1B\\))/g,t4=/^\x1B(?:[@-Z\\-_]|\[[0-?]*[ -/]*[@-~]|\][^\x07]*(?:\x07|\x1B\\))/,t6=/\x1B\[([0-9;]*)m/g,t5=/\x1B_pi:c\x07/g,t8=["#1f2937","#dc2626","#16a34a","#d97706","#2563eb","#9333ea","#0891b2","#6b7280"],t3=["#9ca3af","#ef4444","#22c55e","#f59e0b","#3b82f6","#a855f7","#06b6d4","#e5e7eb"];function t9(e){return e.replace(t5,"").replace(t2,"")}function t7(e){let t=[],n=0;for(;n<e.length;){if(27===e.charCodeAt(n)){let t=e.slice(n).match(t4);if(t){n+=t[0].length;continue}}let r=e.codePointAt(n);if(void 0===r)break;let i=String.fromCodePoint(r);t.push({start:n,end:n+i.length,char:i}),n+=i.length}return t}function ne(e,t){let n=t7(e)[t];return n?e.slice(0,n.start)+e.slice(n.end):e}function nt(e){return t7(e)[0]?.char}function nn(e){let t,n=[],r={},i=0;for(t6.lastIndex=0;null!==(t=t6.exec(e));)t.index>i&&n.push({text:e.slice(i,t.index),style:r}),r=function(e,t){let n={...e};for(let e=0;e<t.length;e++){let r=t[e];if(0===r)for(let e of Object.keys(n))delete n[e];else if(1===r)n.fontWeight=700;else if(2===r)n.opacity=.65;else if(3===r)n.fontStyle="italic";else if(4===r)n.textDecoration="underline";else if(22===r)delete n.fontWeight,delete n.opacity;else if(23===r)delete n.fontStyle;else if(24===r)delete n.textDecoration;else if(39===r)delete n.color;else if(49===r)delete n.backgroundColor;else if(r>=30&&r<=37)n.color=t8[r-30];else if(r>=90&&r<=97)n.color=t3[r-90];else if(r>=40&&r<=47)n.backgroundColor=t8[r-40];else if(r>=100&&r<=107)n.backgroundColor=t3[r-100];else if((38===r||48===r)&&2===t[e+1]){let[i,o,s]=[t[e+2],t[e+3],t[e+4]];[i,o,s].every(e=>"number"==typeof e&&Number.isFinite(e))&&(38===r?n.color=`rgb(${i}, ${o}, ${s})`:n.backgroundColor=`rgb(${i}, ${o}, ${s})`),e+=4}else if((38===r||48===r)&&5===t[e+1]){let i=function(e){if(e>=0&&e<8)return t8[e];if(e>=8&&e<16)return t3[e-8];if(e>=16&&e<=231){let t=e-16,n=Math.floor(t/36),r=Math.floor(t%36/6),i=e=>0===e?0:55+40*e;return`rgb(${i(n)}, ${i(r)}, ${i(t%6)})`}if(e>=232&&e<=255){let t=8+(e-232)*10;return`rgb(${t}, ${t}, ${t})`}}(t[e+2]);i&&(38===r?n.color=i:n.backgroundColor=i),e+=2}}return n}(r,t[1]?t[1].split(";").map(e=>Number(e||"0")):[0]),i=t.index+t[0].length;return i<e.length&&n.push({text:e.slice(i),style:r}),n}let nr={ArrowUp:"\x1b[A",ArrowDown:"\x1b[B",ArrowRight:"\x1b[C",ArrowLeft:"\x1b[D",Home:"\x1b[H",End:"\x1b[F",Insert:"\x1b[2~",Delete:"\x1b[3~",PageUp:"\x1b[5~",PageDown:"\x1b[6~",Escape:"\x1b",Backspace:""},ni={ArrowLeft:"\x1bb",ArrowRight:"\x1bf",ArrowUp:"\x1bp",ArrowDown:"\x1bn"};function no(e,t={}){return"thinking"===e.type&&!e.deferred&&!t.isStreaming&&""===tz(e).trim()}function ns(e,t={}){return(e.content??[]).filter(e=>!no(e,t))}function nl(e,t={}){let n=ns(e,t),r=n.findLastIndex(e=>"text"!==e.type&&"image"!==e.type);return -1===r?{answerBlocks:n,processBlocks:[]}:{answerBlocks:n.slice(r+1),processBlocks:n.slice(0,r+1)}}function na(e){return e.filter(e=>"toolCall"===e.type).length}function nd(e){let t=e.stopReason;return"error"===t||"aborted"===t||"string"==typeof e.errorMessage&&e.errorMessage.trim().length>0}function nc(e,t,n=!1){let r={...e,content:t};return n&&(r.usage=void 0),r}function nu(e,t,n,r={}){return{kind:"message",source:"disk",messageIndex:t,keyPrefix:r.keyPrefix??"message",attachRef:r.attachRef??!0,showTimestamp:r.showTimestamp??function(e,t,n){if(e[t]?.role!=="assistant")return;let r=!0;for(let n=t+1;n<e.length;n++){let t=e[n].role;if("user"===t)break;if("assistant"===t){r=!1;break}}return r&&n&&t===e.length-1&&(r=!1),r}(e,t,n),...r.messageOverride?{messageOverride:r.messageOverride}:{}}}function np(e,t){if(!t)return e.length;let n=e.length;for(;n>0;){let t=e[n-1];if(t?.role!=="user")break;let r=!0===t._steerOptimistic,i=n-2>=0&&e[n-2]?.role==="user";if(!r&&!i)break;n--}return n}function nh(e){for(let t=e.length-1;t>=0;t--){let n=e[t];if(n?.kind==="message"&&"live"===n.source)return n.messageOverride??null}return null}let ng="(max-width: 640px)";function nf(e){if(!window.matchMedia)return()=>{};let t=window.matchMedia(ng);return t.addEventListener("change",e),()=>t.removeEventListener("change",e)}function nx(){return!!window.matchMedia&&window.matchMedia(ng).matches}function nm(){return!1}function nv(){return(0,i.useSyncExternalStore)(nf,nx,nm)}var ny=n(94514),nb=n(67635),nw=n(31025),nk=n(93631),nj=n(10762),nS=n(49387),nC=n(48368),n_=n(61878),nI=n(92451),nR=n(15161),nT=n(63),nM=n(44478),nE=n(12651),nz=n(41585),nL=n(62791),nW=n(9921),nA=n(66088),nP=n(32316),n$=n(65063),nH=n(7644);let nF="pi-theme",nD="pi-theme-style",nN=new Set,nB=null;function nO(e){return"light"===e||"dark"===e||"system"===e}function nU(e){return"chamber"===e||"fusion"===e}function nq(e){return"system"!==e?e:window.matchMedia?.("(prefers-color-scheme: dark)").matches?"dark":"light"}function nK(){if("u"<typeof document)return"light";let e=document.documentElement.dataset.themeMode??null;if(nO(e))return e;try{let e=localStorage.getItem(nF);if(nO(e))return e}catch{}return document.documentElement.classList.contains("dark")?"dark":"light"}function nV(){if("u"<typeof document)return"chamber";let e=document.documentElement.dataset.themeStyle??null;if(nU(e))return e;try{let e=localStorage.getItem(nD);if(nU(e))return e}catch{}return"chamber"}function nJ(){if("u"<typeof document)return"light|chamber|light";let e=nK();return`${e}|${nV()}|${document.documentElement.classList.contains("dark")?"dark":"light"}`}function nY(){nN.forEach(e=>e())}function nG(){if("system"!==nK())return;let e=nq("system");document.documentElement.classList.toggle("dark","dark"===e),nY()}function nZ(e){return nN.add(e),nB||(nB=window.matchMedia("(prefers-color-scheme: dark)")).addEventListener("change",nG),()=>{nN.delete(e),0===nN.size&&nB&&(nB.removeEventListener("change",nG),nB=null)}}function nX(e,t){let n=nq(e),r=document.documentElement;r.classList.toggle("dark","dark"===n),r.dataset.themeMode=e,r.dataset.themeStyle=t;try{localStorage.setItem(nF,e),localStorage.setItem(nD,t)}catch{}(0,Z.dM)("theme",{mode:e,style:t}),nY()}function nQ(){let[e,t,n]=(0,i.useSyncExternalStore)(nZ,nJ,()=>"light|chamber|light").split("|"),r=(0,i.useCallback)((n,r,i)=>{if(e===n&&t===r)return;let o=()=>nX(n,r),s=window.matchMedia?.("(prefers-reduced-motion: reduce)").matches;if("function"!=typeof document.startViewTransition||s)return void o();let l=i?.x??window.innerWidth/2,a=i?.y??window.innerHeight/2,d=Math.hypot(Math.max(l,window.innerWidth-l),Math.max(a,window.innerHeight-a));document.startViewTransition(o).ready.then(()=>{document.documentElement.animate({clipPath:[`circle(0px at ${l}px ${a}px)`,`circle(${d}px at ${l}px ${a}px)`]},{duration:450,easing:"cubic-bezier(0.22, 0.61, 0.36, 1)",pseudoElement:"::view-transition-new(root)"})}).catch(()=>{})},[e,t]),o=(0,i.useCallback)((e,n)=>{r(e,t,n)},[r,t]),s=(0,i.useCallback)((t,n)=>{r(e,t,n)},[e,r]),l=(0,i.useCallback)(e=>{o("dark"===n?"light":"dark",e)},[o,n]);return{theme:n,mode:e,themeStyle:t,toggleTheme:l,setTheme:o,setThemeStyle:s,isDark:"dark"===n}}function n0(e){try{return decodeURIComponent(e)}catch{return e}}function n1(e){return/^[a-zA-Z]:[\\/]/.test(e)||e.startsWith("\\\\")?e.replace(/\\/g,"/"):e}function n2(e){return e.replace(/^\/(?:Users|home)\/[^/]+/,"~")}function n4(e){return n1(e).split("/").filter(Boolean).map(encodeURIComponent).join("/")}function n6(e){let t=n1(e).replace(/\/+$/,"");return t.split("/").pop()??t}function n5(e){let t=n1(e).replace(/\/+$/,""),n=t.lastIndexOf("/");return n<0?"":0===n?"/":2===n&&/^[a-zA-Z]:\//.test(t)?t.slice(0,3):t.slice(0,n)}function n8(e,t){if(!t)return e;let n=n1(e),r=n1(t).replace(/\/$/,"");return n.startsWith(r+"/")?n.slice(r.length+1):e}function n3(e,t){return`${n1(e).replace(/\/$/,"")}/${t}`}function n9(e){let t=n1(e),n=/^[a-zA-Z]:\//.test(t),r=t.startsWith("//"),i=t.startsWith("/")&&!n&&!r,o=[];for(let e of t.split("/"))if(e&&"."!==e){if(".."===e){o.length>0&&".."!==o[o.length-1]?o.pop():i||n||r||o.push(e);continue}o.push(e)}let s=o.join("/");return n?s:r?`//${s}`:i?`/${s}`:s}function n7(e,t,n=t){let r,i,o,s,l;if(!e)return null;let a=e.split("#",1)[0].split("?",1)[0].trim();if(!a)return null;let d=null,c=null,u=n0(a),p=u.startsWith("\\\\"),h=n1(u),g=h.toLowerCase();if(g.startsWith("/api/")||g.startsWith("/_next/")||!p&&h.startsWith("//")||/^[a-zA-Z][a-zA-Z0-9+.-]*:/i.test(h)&&!g.startsWith("file:")&&!/^[a-zA-Z]:\//.test(h))return null;if(g.startsWith("file:")?c=(d=function(e){try{let t=new URL(e);if("file:"!==t.protocol)return null;let n=n0(t.pathname);if(t.hostname)return`//${t.hostname}${n.startsWith("/")?n:`/${n}`}`;if(/^\/[a-zA-Z]:\//.test(n))return n.slice(1);return n}catch{return null}}(h))?"absolute":null:/^[a-zA-Z]:\//.test(h)||h.startsWith("/")?(d=h,c="absolute"):t&&!(h.startsWith("#")||h.startsWith("?"))&&(h.startsWith("./")||h.startsWith("../")||h.includes("/")||/(^|\/)\.?[^/]+\.[^/.]+$/.test(h))&&(d=`${n1(t).replace(/\/+$/,"")}/${h}`,c="relative"),!d)return null;let f=n9(d).replace(/:\d+(?::\d+)?$/,"");return"relative"===c&&n&&(r=n9(f).replace(/\/+$/,""),i=n9(n).replace(/\/+$/,""),s=(o=/^[a-zA-Z]:\//.test(r)||/^[a-zA-Z]:\//.test(i))?r.toLowerCase():r,!(s===(l=o?i.toLowerCase():i)||s.startsWith(`${l}/`)))?null:f}(0,Z.zo)().then(()=>{let e=(0,Z.b3)("theme"),t="string"==typeof e?.mode?e.mode:null,n="string"==typeof e?.style?e.style:null;nO(t)&&nX(t,nU(n)?n:nV())});var re=n(88374),rt=n(5924),rn=n(94764),rr=n(63835),ri=n(84678),ro=n(98164);let rs={...rn.j,attributes:{...rn.j.attributes,code:[["className",/^language-./,"math-inline","math-display"]]},strip:[...rn.j.strip||[],"iframe","object","style","form"]},rl=[ri.A,ro.A],ra=[ri.A],rd=[rt.A,[rr.A,rs],[re.A,{throwOnError:!1,strict:!1}]],rc=[rt.A,[rr.A,rs]];var ru=n(82482),rp=n(51914),rh=n(9199),rg=n(6962);let rf=null,rx=new Set;function rm(){for(let e of rx)e()}function rv(){null!==rf&&(rf=null,rm())}let ry={"image/avif":"avif","image/bmp":"bmp","image/gif":"gif","image/jpeg":"jpg","image/png":"png","image/svg+xml":"svg","image/webp":"webp","image/x-icon":"ico"};function rb(e){let t=e.source;if(t&&"object"==typeof t){if("base64"===t.type&&"string"==typeof t.data&&t.data.length>0){let e=rk(t.media_type);return{src:`data:${e};base64,${t.data}`,mimeType:e}}if("url"===t.type&&"string"==typeof t.url&&t.url.trim()){let e=t.url.trim();return rj(e)?{src:e,mimeType:rw(t.media_type)}:null}}if("string"==typeof e.data&&e.data.length>0){let t=rk(e.mimeType);return{src:`data:${t};base64,${e.data}`,mimeType:t}}return null}function rw(e){if("string"!=typeof e)return;let t=e.trim().toLowerCase();return/^image\/[a-z0-9.+-]+$/.test(t)?t:void 0}function rk(e){return rw(e)??"image/png"}function rj(e){let t=e.trim();if(!t)return!1;if(t.startsWith("data:"))return/^data:image\/[a-z0-9.+-]+;base64,/i.test(t);try{let e=new URL(t,"http://pidance.invalid").protocol;return"http:"===e||"https:"===e||"blob:"===e}catch{return!1}}let rS={display:"inline-flex",alignItems:"center",justifyContent:"center",minWidth:30,minHeight:30,padding:4,border:"1px solid rgba(255,255,255,0.22)",borderRadius:6,background:"rgba(255,255,255,0.10)",color:"#fff",cursor:"pointer",flexShrink:0};function rC({src:e,fullSrc:t,downloadHref:n,downloadName:i,mimeType:o,alt:s,title:l,maxWidth:a=360,maxHeight:d=280}){let{t:c}=(0,ea.s9)(),u=t&&rj(t)?t:e,p=n||u,h=i?.trim()||function(e,t){if(!e.startsWith("data:"))try{let t=new URL(e,"http://pidance.invalid"),n=decodeURIComponent(t.pathname.split("/").pop()??"");if(/^[^\\/:*?\"<>|]+\.[a-z0-9]{1,8}$/i.test(n))return n}catch{}return`image.${t?ry[t.toLowerCase()]??"png":"png"}`}(p,o),g=s||c("message_imageAlt");return e&&rj(e)?(0,r.jsx)("button",{type:"button",onClick:()=>{rf={...{src:u,downloadHref:p,downloadName:h,mimeType:o,alt:g,title:l},id:`${Date.now()}-${Math.random().toString(36).slice(2)}`},rm()},"aria-label":c("message_openImage"),title:l||c("message_openImage"),style:{display:"block",maxWidth:a,maxHeight:d,margin:0,padding:0,border:"1px solid var(--border)",borderRadius:6,background:"var(--bg-subtle)",cursor:"zoom-in",overflow:"hidden",lineHeight:0},children:(0,r.jsx)("img",{src:e,alt:g,title:l,draggable:!1,decoding:"async",style:{display:"block",maxWidth:a,maxHeight:d,objectFit:"contain"}})}):null}function r_(){let{t:e}=(0,ea.s9)(),t=(0,i.useSyncExternalStore)(e=>(rx.add(e),()=>rx.delete(e)),()=>rf,()=>null),[n,o]=(0,i.useState)(1),[s,a]=(0,i.useState)({x:0,y:0}),[d,c]=(0,i.useState)(()=>eG()),u=(0,i.useRef)(!1),p=(0,i.useRef)(null),h=(0,i.useRef)(null),g=(0,i.useRef)(null),f=(0,i.useCallback)((e,t)=>{let n=h.current,r=g.current;if(!n||!r||t<=1)return{x:0,y:0};let i=window.getComputedStyle(r),o=r.clientWidth-Number.parseFloat(i.paddingLeft)-Number.parseFloat(i.paddingRight),s=r.clientHeight-Number.parseFloat(i.paddingTop)-Number.parseFloat(i.paddingBottom),l=Math.max(0,(n.offsetWidth*t-o)/2),a=Math.max(0,(n.offsetHeight*t-s)/2);return{x:Math.min(l,Math.max(-l,e.x)),y:Math.min(a,Math.max(-a,e.y))}},[]),x=(0,i.useCallback)(()=>{o(1),a({x:0,y:0})},[]),m=(0,i.useCallback)(e=>{o(t=>{let n=Math.min(4,Math.max(1,Number((t+e).toFixed(2))));return a(e=>f(e,n)),n})},[f]);(0,i.useEffect)(()=>{x(),p.current=null},[t?.id,x]),(0,i.useEffect)(()=>()=>rv(),[]),(0,i.useEffect)(()=>{if(!t)return;let e=()=>{c(eG()),a(e=>f(e,n))};e();let r=window.visualViewport;return r?.addEventListener("resize",e),r?.addEventListener("scroll",e),window.addEventListener("resize",e),window.addEventListener("orientationchange",e),()=>{r?.removeEventListener("resize",e),r?.removeEventListener("scroll",e),window.removeEventListener("resize",e),window.removeEventListener("orientationchange",e)}},[t,f,n]),(0,i.useEffect)(()=>{if(!t)return;let e=e=>{"Escape"===e.key?(e.preventDefault(),rv()):"+"===e.key||"="===e.key?(e.preventDefault(),m(.25)):"-"===e.key?(e.preventDefault(),m(-.25)):"0"===e.key&&(e.preventDefault(),x())};return document.addEventListener("keydown",e),()=>document.removeEventListener("keydown",e)},[t,m,x]);let v=(0,i.useCallback)(e=>{e.preventDefault(),m(e.deltaY<0?.25:-.25)},[m]),y=(0,i.useCallback)(e=>{u.current=!1,n<=1||(e.preventDefault(),e.currentTarget.setPointerCapture(e.pointerId),p.current={pointerId:e.pointerId,x:e.clientX,y:e.clientY,offsetX:s.x,offsetY:s.y})},[s.x,s.y,n]),b=(0,i.useCallback)(e=>{let t=p.current;if(!t||t.pointerId!==e.pointerId)return;let r=e.clientX-t.x,i=e.clientY-t.y;(Math.abs(r)>3||Math.abs(i)>3)&&(u.current=!0),a(f({x:t.offsetX+r,y:t.offsetY+i},n))},[f,n]),w=(0,i.useCallback)(e=>{p.current?.pointerId===e.pointerId&&(p.current=null,e.currentTarget.hasPointerCapture(e.pointerId)&&e.currentTarget.releasePointerCapture(e.pointerId))},[]),k=(0,i.useCallback)(e=>{if(u.current){u.current=!1;return}e.target===e.currentTarget&&rv()},[]);return t?(0,l.createPortal)((0,r.jsxs)("div",{role:"dialog","aria-modal":"true","aria-label":e("message_imageViewer"),style:{position:"fixed",top:d.top,left:d.left,width:d.width,height:d.height,zIndex:1100,background:"color-mix(in srgb, #000 82%, transparent)",display:"flex",flexDirection:"column",overscrollBehavior:"contain"},children:[(0,r.jsxs)("div",{style:{position:"absolute",top:8,left:8,right:8,display:"flex",alignItems:"center",gap:6,padding:"6px 8px 6px 12px",borderRadius:9,background:"color-mix(in srgb, #000 55%, transparent)",backdropFilter:"blur(6px)",color:"#fff",zIndex:1},children:[(0,r.jsx)("span",{style:{minWidth:0,flex:1,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",fontSize:12,fontWeight:650},title:t.title||t.alt,children:t.title||t.alt}),(0,r.jsx)("button",{type:"button",onClick:()=>m(-.25),disabled:n<=1,"aria-label":e("message_zoomOut"),title:e("message_zoomOut"),style:{...rS,opacity:n<=1?.45:1},children:(0,r.jsx)(ru.A,{size:14,strokeWidth:1.9,"aria-hidden":"true"})}),(0,r.jsxs)("button",{type:"button",onClick:x,"aria-label":e("message_resetZoom"),title:e("message_resetZoom"),style:{...rS,minWidth:48,fontSize:11},children:[Math.round(100*n),"%"]}),(0,r.jsx)("button",{type:"button",onClick:()=>m(.25),disabled:n>=4,"aria-label":e("message_zoomIn"),title:e("message_zoomIn"),style:{...rS,opacity:n>=4?.45:1},children:(0,r.jsx)(rp.A,{size:14,strokeWidth:1.9,"aria-hidden":"true"})}),(0,r.jsx)("button",{type:"button",onClick:x,"aria-label":e("message_resetZoom"),title:e("message_resetZoom"),style:rS,children:(0,r.jsx)(rh.A,{size:14,strokeWidth:1.9,"aria-hidden":"true"})}),(0,r.jsxs)("a",{href:t.downloadHref,download:t.downloadName,"aria-label":e("message_downloadImage"),title:e("message_downloadImage"),style:{...rS,gap:5,textDecoration:"none",fontSize:12},children:[(0,r.jsx)(rg.A,{size:14,strokeWidth:1.9,"aria-hidden":"true"}),(0,r.jsx)("span",{className:"hidden sm:inline",children:e("message_downloadImage")})]}),(0,r.jsx)("button",{type:"button",onClick:rv,"aria-label":e("message_closeImage"),title:e("message_closeImage"),style:{...rS,fontSize:20,lineHeight:1},children:"\xd7"})]}),(0,r.jsx)("div",{ref:g,role:"group","aria-label":e("message_imageViewer"),onWheel:v,onPointerDown:y,onPointerMove:b,onPointerUp:w,onPointerCancel:w,onClick:k,onDoubleClick:()=>n>1?x():m(1),style:{flex:1,minHeight:0,display:"flex",alignItems:"center",justifyContent:"center",padding:"56px 12px 12px",overflow:"hidden",cursor:n>1?"grab":"zoom-in",touchAction:"none"},children:(0,r.jsx)("img",{ref:h,src:t.src,alt:t.alt,draggable:!1,decoding:"async",style:{display:"block",maxWidth:"100%",maxHeight:"100%",width:"auto",height:"auto",objectFit:"contain",userSelect:"none",WebkitUserSelect:"none",transform:`translate(${s.x}px, ${s.y}px) scale(${n})`,transformOrigin:"center center",transition:p.current?"none":"transform 0.12s ease-out"}})})]}),document.body):null}function rI({code:e,isStreaming:t}){let{t:o}=(0,ea.s9)(),{isDark:s}=nQ(),[l,a]=(0,i.useState)(!1),[d,c]=(0,i.useState)(null),[u,p]=(0,i.useState)(""),[h,g]=(0,i.useState)(null),f=`${s?"dark":"light"}
3
- ${e}`;(0,i.useEffect)(()=>{if(!l||t)return;let r=!1;return g(null),(async()=>{let{default:t}=await Promise.all([n.e(279),n.e(2280),n.e(3308)]).then(n.bind(n,43328));if(t.initialize({startOnLoad:!1,securityLevel:"strict",suppressErrorRendering:!0,theme:s?"dark":"default"}),!await t.parse(e,{suppressErrors:!0}))throw Error("Invalid Mermaid diagram");let i="u">typeof crypto&&"randomUUID"in crypto?`mermaid-${crypto.randomUUID()}`:`mermaid-${Date.now()}-${Math.random().toString(36).slice(2)}`,o=await t.render(i,e);r||(c(o.svg),p(f))})().catch(()=>{r||g(f)}),()=>{r=!0}},[e,f,s,t,l]);let x=(0,r.jsx)("button",{onClick:()=>a(e=>!e),disabled:t,title:o(t?"markdown_previewAfterStreaming":l?"markdown_showSource":"markdown_preview"),className:["markdown-code-action",l?"is-active":""].filter(Boolean).join(" "),children:o(l?"markdown_source":"markdown_previewShort")});if(!l||t)return(0,r.jsx)(rR,{code:e,lang:"mermaid",headerAction:x});let m=h===f?(0,r.jsx)("div",{className:"mermaid-block mermaid-block-error",children:o("markdown_invalidMermaid")}):d&&u===f?(0,r.jsx)("div",{className:"mermaid-block",dangerouslySetInnerHTML:{__html:d}}):(0,r.jsx)("div",{className:"mermaid-block mermaid-block-loading","aria-label":o("markdown_renderingMermaid")});return(0,r.jsxs)("div",{className:"markdown-code-block",children:[(0,r.jsxs)("div",{className:"markdown-code-header",children:[(0,r.jsx)("span",{className:"markdown-code-lang",children:"mermaid"}),x]}),m]})}function rR({code:e,lang:t,headerAction:n}){let{t:o}=(0,ea.s9)(),{isDark:s}=nQ(),[l,a]=(0,i.useState)(!1);return(0,r.jsxs)("div",{className:"markdown-code-block",children:[(0,r.jsxs)("div",{className:"markdown-code-header",children:[(0,r.jsx)("span",{className:"markdown-code-lang",children:t||"text"}),(0,r.jsxs)("div",{className:"markdown-code-actions",children:[n,(0,r.jsx)("button",{onClick:()=>{e2(e).then(()=>{a(!0),setTimeout(()=>a(!1),1500)})},className:"markdown-code-action",children:o(l?"markdown_copied":"markdown_copy")})]})]}),(0,r.jsx)("div",{className:"markdown-code-body",children:(0,r.jsx)(n$.A,{language:t||"text",style:s?nH.xJ:nH.vs,showLineNumbers:!0,showInlineLineNumbers:!1,lineNumberStyle:{color:"var(--text-dim)",fontStyle:"normal",userSelect:"none"},customStyle:{margin:0,padding:"11px 13px",fontSize:12.5,lineHeight:1.62,borderRadius:0,background:"color-mix(in srgb, var(--bg) 92%, var(--bg-panel))",userSelect:"text",WebkitUserSelect:"text"},codeTagProps:{style:{fontFamily:"var(--font-mono)",userSelect:"text",WebkitUserSelect:"text"}},children:e})})]})}let rT=(0,i.memo)(function({children:e,className:t,isStreaming:n,cwd:o,onOpenFile:s}){let l=(0,i.useMemo)(()=>{var t;let n,r,i;return n=(t=e).includes("\r\n")?"\r\n":"\n",r=t.split(/\r?\n/),i=null,r.map(e=>{let t=e.match(/^ {0,3}(`{3,}|~{3,})/);if(t){let n=t[1][0],r=t[1].length;return i?n===i.marker&&r>=i.size&&(i=null):i={marker:n,size:r},e}if(i)return e;let r=e.match(/^([ \t]{0,3})\$\$(.+)\$\$[ \t]*$/);if(!r)return e;let o=r[2].trim();return o?`${r[1]}$$${n}${o}${n}${r[1]}$$`:e}).join(n)},[e]);return(0,r.jsx)("div",{className:["markdown-body",t].filter(Boolean).join(" "),children:(0,r.jsx)(nP.oz,{remarkPlugins:rl,rehypePlugins:rd,components:{code({className:e,children:t,...i}){delete i.node;let o=e?.replace("language-","").toLowerCase()??"",s=String(t);return e?.includes("language-")||s.includes("\n")?"mermaid"===o?(0,r.jsx)(rI,{code:s.replace(/\n$/,""),isStreaming:n}):(0,r.jsx)(rR,{code:s.replace(/\n$/,""),lang:o}):(0,r.jsx)("code",{className:"markdown-inline-code",...i,children:t})},pre:({children:e})=>(0,r.jsx)(r.Fragment,{children:e}),img:({src:e,alt:t,title:n,...i})=>(delete i.node,"string"==typeof e&&e)?(0,r.jsx)(rC,{src:e,fullSrc:e,alt:t,title:n,maxWidth:"100%",maxHeight:480}):null,a({href:e,children:t,...n}){delete n.node;let i=s?n7(e,o):null;return i&&s?(0,r.jsx)("a",{href:e,...n,onClick:e=>{if(e.defaultPrevented||0!==e.button||e.metaKey||e.ctrlKey||e.shiftKey||e.altKey)return;let t=e.currentTarget.getAttribute("target");t&&"_self"!==t||(e.preventDefault(),s(i))},children:t}):(0,r.jsx)("a",{href:e,...n,target:"_blank",rel:"noopener noreferrer",children:t})},table:({children:e})=>(0,r.jsx)("div",{className:"markdown-table-wrap",children:(0,r.jsx)("div",{className:"markdown-table-scroll",children:e})}),thead:({children:e})=>(0,r.jsx)("div",{className:"markdown-table-head",children:e}),tbody:({children:e})=>(0,r.jsx)("div",{className:"markdown-table-body",children:e}),tr({children:e}){let t=i.Children.count(e)||1;return(0,r.jsx)("div",{className:"markdown-table-row",style:{gridTemplateColumns:`repeat(${t}, minmax(0, 1fr))`},children:e})},th:({children:e})=>(0,r.jsx)("div",{className:"markdown-table-th",children:e}),td:({children:e})=>(0,r.jsx)("div",{className:"markdown-table-td",children:e})},children:l})})});var rM=n(78916);function rE(e,t,n,r=!1){let i=new URLSearchParams({type:t});return n&&"read"===t&&i.set("mime",n),r&&i.set("messageMedia","1"),`/api/files/${n4(e)}?${i.toString()}`}let rz={display:"flex",alignItems:"center",gap:8,minWidth:0,maxWidth:"100%",padding:"7px 9px",border:"1px solid var(--border)",borderRadius:7,background:"var(--bg-subtle)",color:"var(--text-muted)",fontSize:12},rL={display:"inline-flex",alignItems:"center",gap:4,flexShrink:0,color:"var(--accent)",textDecoration:"underline",textUnderlineOffset:2,fontSize:11};function rW({binary:e}){var t;let{t:n}=(0,ea.s9)(),i=rE(e.path,"read",e.mimeType,!0),o=rE(e.path,"download"),s=e.size<=0x1900000,l=`${e.name} \xb7 ${!Number.isFinite(t=e.size)||t<0?"":t<1024?`${t} B`:t<1048576?`${(t/1024).toFixed(+(t<10240))} KB`:t<0x40000000?`${(t/1048576).toFixed(+(t<0xa00000))} MB`:`${(t/0x40000000).toFixed(1)} GB`}`;if("image"===e.kind){let t=e.previewPath||e.path;return(0,r.jsx)("div",{style:{marginBottom:8,maxWidth:"100%"},children:(0,r.jsx)(rC,{src:rE(t,"read",e.mimeType,!0),fullSrc:i,downloadHref:o,downloadName:e.name,mimeType:e.mimeType,alt:e.name,title:e.name,maxWidth:360,maxHeight:280})})}return"audio"===e.kind?(0,r.jsxs)("div",{style:{...rz,flexDirection:"column",alignItems:"stretch",maxWidth:480,marginBottom:8},children:[(0,r.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:8,minWidth:0},children:[(0,r.jsx)("span",{style:{minWidth:0,flex:1,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},title:e.name,children:l}),(0,r.jsxs)("a",{href:o,download:e.name,style:rL,"aria-label":n("message_downloadOriginal"),children:[(0,r.jsx)(rg.A,{size:13,strokeWidth:1.9,"aria-hidden":"true"}),n("message_downloadOriginal")]})]}),s?(0,r.jsx)("audio",{controls:!0,preload:"metadata",src:i,style:{width:"100%"}}):(0,r.jsx)("div",{style:{color:"var(--text-dim)",fontSize:11},children:n("message_mediaTooLargeToPlay")})]}):"video"===e.kind?(0,r.jsxs)("div",{style:{...rz,flexDirection:"column",alignItems:"stretch",maxWidth:640,marginBottom:8},children:[(0,r.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:8,minWidth:0},children:[(0,r.jsx)("span",{style:{minWidth:0,flex:1,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},title:e.name,children:l}),(0,r.jsxs)("a",{href:o,download:e.name,style:rL,"aria-label":n("message_downloadOriginal"),children:[(0,r.jsx)(rg.A,{size:13,strokeWidth:1.9,"aria-hidden":"true"}),n("message_downloadOriginal")]})]}),s?(0,r.jsx)("video",{controls:!0,preload:"metadata",src:i,style:{display:"block",width:"100%",maxHeight:360,borderRadius:5,background:"var(--bg)",border:"1px solid var(--border)"}}):(0,r.jsx)("div",{style:{color:"var(--text-dim)",fontSize:11},children:n("message_mediaTooLargeToPlay")})]}):(0,r.jsxs)("div",{style:{...rz,marginBottom:8},children:[(0,r.jsx)(rM.A,{size:15,strokeWidth:1.8,color:"var(--text-dim)","aria-hidden":"true"}),(0,r.jsx)("span",{style:{minWidth:0,flex:1,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},title:e.name,children:l}),(0,r.jsxs)("a",{href:o,download:e.name,style:rL,"aria-label":n("message_downloadOriginal"),children:[(0,r.jsx)(rg.A,{size:13,strokeWidth:1.9,"aria-hidden":"true"}),n("message_downloadOriginal")]})]})}function rA({binaries:e}){return 0===e.length?null:(0,r.jsx)("div",{style:{display:"flex",flexDirection:"column",gap:2},children:e.map((e,t)=>(0,r.jsx)(rW,{binary:e},`${e.path}-${t}`))})}n(92619).Buffer;let rP=["result","warning","error","output"];function r$(e){let t=e?.trim()??"";return""===t?null:t}function rH(e){return e.readOnly?{allowed:!1,reason:"readOnly"}:e.busy?{allowed:!1,reason:"busy"}:{allowed:!0}}let rF=/<(read-files|modified-files)>\s*([\s\S]*?)\s*<\/\1>/g,rD=/(?:\r?\n){2,}((?:[ \t]*<(?:read-files|modified-files)>[ \t]*\r?\n[\s\S]*?\r?\n[ \t]*<\/(?:read-files|modified-files)>[ \t]*(?:\r?\n)?)+)\s*$/;function rN(e){let t=[],n=[],r=e.match(rD),i=r?.[1]??"",o=r?.index===void 0?e:e.slice(0,r.index);return i.replace(rF,(e,r,i)=>{let o=i.split(/\r?\n/).map(e=>e.trim()).filter(Boolean);return"read-files"===r?t.push(...o):n.push(...o),""}),{body:o.trim(),readFiles:t,modifiedFiles:n}}function rB(e){let t,n=[],r=null,i=0,o=0,s=[],l=[],a=()=>({lineNo:null,text:"",type:"empty"}),d=()=>{if(!r){s=[],l=[];return}let e=Math.max(s.length,l.length);for(let t=0;t<e;t++){let e=s[t]?{lineNo:s[t].lineNo,text:s[t].text,type:"removed"}:a(),n=l[t]?{lineNo:l[t].lineNo,text:l[t].text,type:"added"}:a();r.rows.push({type:"line",left:e,right:n})}s=[],l=[]};for(let a of e.split(/\r?\n/)){if(a.startsWith("--- ")){d(),t=rO(a.slice(4));continue}if(a.startsWith("+++ ")){d(),r={oldPath:t,newPath:rO(a.slice(4)),rows:[]},n.push(r);continue}let e=a.match(/^@@ -(\d+)(?:,\d+)? \+(\d+)(?:,\d+)? @@/);if(e){r||(r={rows:[]},n.push(r)),d(),i=Number(e[1]),o=Number(e[2]),r.rows.push({type:"hunk",text:a});continue}if(!r)continue;if(a.startsWith("\\ ")){d(),r.rows.push({type:"hunk",text:a});continue}let c=a[0],u=a.slice(1);" "===c?(d(),r.rows.push({type:"line",left:{lineNo:i++,text:u,type:"context"},right:{lineNo:o++,text:u,type:"context"}})):"-"===c?s.push({lineNo:i++,text:u}):"+"===c?l.push({lineNo:o++,text:u}):""!==a&&(d(),r.rows.push({type:"hunk",text:a}))}d();let c=n.filter(e=>e.rows.some(e=>"line"===e.type));return c.length>0?c:null}function rO(e){return e.split(" ")[0].trim()}let rU="min(320px, 45vh)",rq="min(240px, 32vh)",rK={png:"image/png",jpg:"image/jpeg",jpeg:"image/jpeg",gif:"image/gif",webp:"image/webp",svg:"image/svg+xml",bmp:"image/bmp",ico:"image/x-icon",avif:"image/avif"},rV={mp3:"audio/mpeg",wav:"audio/wav",ogg:"audio/ogg",oga:"audio/ogg",opus:"audio/ogg",m4a:"audio/mp4",aac:"audio/aac",flac:"audio/flac",weba:"audio/webm"},rJ={mp4:"video/mp4",m4v:"video/mp4",webm:"video/webm",ogv:"video/ogg",mov:"video/quicktime",mkv:"video/x-matroska",avi:"video/x-msvideo"};function rY(e){return(e.replace(/\\/g,"/").split("/").pop()??"").toLowerCase().split(".").pop()??""}function rG(e){return null!==(rK[rY(e)]??null)}function rZ(e){return null!==(rV[rY(e)]??null)}function rX(e){return null!==(rJ[rY(e)]??null)}function rQ(e,t,n,r=!1){let i=new URLSearchParams({type:t});return n&&"read"===t&&i.set("mime",n),r&&i.set("messageMedia","1"),`/api/files/${n4(e)}?${i.toString()}`}function r0(e,t,n=!1){return rQ(e,"read",t,n)}function r1({imageBlocks:e,pathImages:t,pathAudio:n,pathVideo:i}){let o=e??[],s=t??[],l=n??[],a=i??[];return 0===o.length&&0===s.length&&0===l.length&&0===a.length?null:(0,r.jsxs)("div",{style:{display:"flex",flexDirection:"column",gap:8,marginBottom:8},children:[(o.length>0||s.length>0)&&(0,r.jsxs)("div",{style:{display:"flex",gap:6,flexWrap:"wrap"},children:[o.map((e,t)=>{let n=rb(e);return n?(0,r.jsx)(rC,{src:n.src,fullSrc:n.src,mimeType:n.mimeType,alt:"",maxWidth:280,maxHeight:280},`b-${t}`):null}),s.map(e=>(0,r.jsx)(rC,{src:r0(e),fullSrc:r0(e),downloadHref:rQ(e,"download"),downloadName:e.replace(/\\/g,"/").split("/").pop()||"image",alt:e,title:e,maxWidth:280,maxHeight:280},e))]}),l.map(e=>(0,r.jsxs)("div",{style:{minWidth:200,maxWidth:420},children:[(0,r.jsx)("div",{style:{fontSize:11,color:"var(--text-dim)",marginBottom:4,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},title:e,children:e.split(/[\\/]/).pop()}),(0,r.jsx)("audio",{controls:!0,preload:"metadata",src:r0(e),style:{width:"100%"}})]},e)),a.map(e=>(0,r.jsxs)("div",{style:{minWidth:200,maxWidth:480},children:[(0,r.jsx)("div",{style:{fontSize:11,color:"var(--text-dim)",marginBottom:4,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},title:e,children:e.split(/[\\/]/).pop()}),(0,r.jsx)("video",{controls:!0,preload:"metadata",src:r0(e),style:{width:"100%",maxHeight:320,borderRadius:6,background:"var(--bg)",border:"1px solid var(--border)"}})]},e))]})}let r2=new Map,r4=new Map;function r6(e){return"object"==typeof e&&null!==e&&!Array.isArray(e)&&!0===e.deferredHeavy}function r5(e){if(!e)return null;let t=new Date(e),n=new Date,r=t.getFullYear()===n.getFullYear()&&t.getMonth()===n.getMonth()&&t.getDate()===n.getDate(),i=t.toLocaleTimeString([],{hour:"2-digit",minute:"2-digit"});if(r)return i;let o=t.toLocaleDateString([],{month:"short",day:"numeric",year:t.getFullYear()!==n.getFullYear()?"numeric":void 0});return`${o} ${i}`}let r8=(0,i.memo)(function({message:e,isStreaming:t,toolResults:n,toolExecutionSnapshots:i,modelNames:o,cwd:s,onOpenFile:l,entryId:a,onBranchHere:d,onNewSessionFromHere:c,onBranchFromAssistant:u,onNewSessionFromAnswer:p,forking:h,showTimestamp:g,prevTimestamp:f,sessionId:x,toolsActive:m}){if("user"===e.role)return(0,r.jsx)(r3,{message:e,cwd:s,onOpenFile:l,entryId:a,onBranchHere:d,onNewSessionFromHere:c,forking:h});if("assistant"===e.role)return(0,r.jsx)(r9,{message:e,isStreaming:t,toolResults:n,toolExecutionSnapshots:i,modelNames:o,cwd:s,onOpenFile:l,showTimestamp:g,prevTimestamp:f,sessionId:x,entryId:a,onBranchFromAssistant:u,onNewSessionFromAnswer:p,toolsActive:m});if("toolResult"===e.role)return null;if("custom"===e.role){if(e.customType===tF){let t=tN(e.details);return t?(0,r.jsx)(rW,{binary:t}):null}if("compaction"===e.customType)return(0,r.jsx)(iw,{message:e});if("pidance.command"===e.customType)return(0,r.jsx)(ik,{message:e});if("branch_summary"===e.customType)return(0,r.jsx)(ij,{message:e});if("pidance.activity"===e.customType){var v;let t=iy(v=e.details)&&1===v.version&&"string"==typeof v.kind&&rP.includes(v.kind)&&"string"==typeof v.title&&""!==v.title.trim()&&"string"==typeof v.content&&(void 0===v.source||"string"==typeof v.source)&&(void 0===v.requestId||"string"==typeof v.requestId)&&(void 0===v.metadata||iy(v.metadata))?v:null;if(t)return(0,r.jsx)(iI,{message:e,activity:t})}return(0,r.jsx)(iR,{message:e,cwd:s,onOpenFile:l})}return"bashExecution"===e.role?(0,r.jsx)(iM,{message:e,sessionId:x}):null},(e,t)=>e.message===t.message&&e.isStreaming===t.isStreaming&&function(e,t,n){if(t===n||"assistant"!==e.role)return!0;for(let r of e.content??[])if("toolCall"===r.type&&t?.get(r.toolCallId)!==n?.get(r.toolCallId))return!1;return!0}(e.message,e.toolResults,t.toolResults)&&e.toolExecutionSnapshots===t.toolExecutionSnapshots&&e.modelNames===t.modelNames&&e.cwd===t.cwd&&e.onOpenFile===t.onOpenFile&&e.entryId===t.entryId&&e.onBranchHere===t.onBranchHere&&e.onNewSessionFromHere===t.onNewSessionFromHere&&e.onBranchFromAssistant===t.onBranchFromAssistant&&e.onNewSessionFromAnswer===t.onNewSessionFromAnswer&&e.forking===t.forking&&e.showTimestamp===t.showTimestamp&&e.prevTimestamp===t.prevTimestamp&&e.sessionId===t.sessionId);function r3({message:e,cwd:t,onOpenFile:n,entryId:o,onBranchHere:s,onNewSessionFromHere:l,forking:a}){let{t:d}=(0,ea.s9)(),[c,u]=(0,i.useState)(!1),[p,h]=(0,i.useState)(!1),g="string"==typeof e.content?e.content:e.content.filter(e=>"text"===e.type).map(e=>e.text).join("\n"),f="string"==typeof e.content?[]:e.content.filter(e=>"image"===e.type),x=e.binaryBlocks??[],m=x.some(e=>"image"===e.kind),v=(0,i.useMemo)(()=>(function(e){let t,n=[],r=[],i=[],o=new Set,s=/(?:^|[\s`"'(\[]|-\s)((?:\/|[A-Za-z]:[\\/]|~\/)[^\s`"'\)\]]+\.(?:png|jpe?g|gif|webp|bmp|avif|svg|mp3|wav|ogg|oga|opus|m4a|aac|flac|weba|mp4|m4v|webm|ogv|mov|mkv|avi))\b/gim;for(;null!==(t=s.exec(e));){let e=t[1]?.replace(/[.,;:]+$/,"")??"";!(!e||o.has(e))&&(o.add(e),rX(e)?i.push(e):rZ(e)?r.push(e):rG(e)&&n.push(e))}return{images:n,audio:r,video:i}})(g),[g]),y=r5(e.timestamp),b=!!o&&!!s,w=!!o&&!!l;return(0,r.jsxs)("div",{style:{marginBottom:28,display:"flex",flexDirection:"column",alignItems:"flex-end"},onMouseEnter:()=>u(!0),onMouseLeave:()=>u(!1),children:[(0,r.jsx)("div",{style:{display:"flex",alignItems:"flex-end",gap:6,maxWidth:"85%"},children:(0,r.jsxs)("div",{style:{flex:1,minWidth:0,background:"var(--user-bg)",border:"1px solid color-mix(in srgb, var(--accent) 18%, var(--border))",borderRadius:"var(--radius-lg) var(--radius-lg) var(--radius-xs) var(--radius-lg)",padding:"11px 14px",fontSize:14,lineHeight:1.6,color:"var(--text)",wordBreak:"break-word"},children:[(0,r.jsx)(r1,{imageBlocks:m?[]:f,pathImages:v.images,pathAudio:v.audio,pathVideo:v.video}),x.length>0&&(0,r.jsx)(rA,{binaries:x}),g&&(0,r.jsx)(rT,{className:"markdown-user-message",cwd:t,onOpenFile:n,children:g})]})}),(0,r.jsxs)("div",{style:{display:"flex",alignItems:"center",justifyContent:"flex-end",gap:6,marginTop:3},children:[(0,r.jsx)("div",{style:{display:"flex",gap:3,opacity:+!!c,pointerEvents:c?"auto":"none",transition:"opacity 0.12s"},children:(0,r.jsx)("button",{onClick:()=>{e2(g).then(()=>{h(!0),setTimeout(()=>h(!1),1500)})},"data-tooltip":d("message_copy"),className:"instant-tooltip","aria-label":d("message_copy"),style:{display:"flex",alignItems:"center",justifyContent:"center",padding:"3px 6px",height:22,background:"none",border:"none",borderRadius:5,color:p?"var(--accent)":"var(--text-dim)",cursor:"pointer",transition:"color 0.12s"},onMouseEnter:e=>{p||(e.currentTarget.style.color="var(--accent)")},onMouseLeave:e=>{p||(e.currentTarget.style.color="var(--text-dim)")},children:p?(0,r.jsx)(ny.A,{size:11,strokeWidth:1.8}):(0,r.jsx)(nb.A,{size:11,strokeWidth:1.8})})}),(b||w)&&(0,r.jsxs)("div",{style:{display:"flex",gap:3,opacity:c||a?1:0,pointerEvents:c||a?"auto":"none",transition:"opacity 0.12s"},children:[b&&(0,r.jsx)("button",{onClick:()=>{s(o,g)},"data-tooltip":d("message_branchHereTooltip"),className:"instant-tooltip","aria-label":d("message_branchHere"),style:{display:"flex",alignItems:"center",justifyContent:"center",width:26,height:22,padding:0,background:"none",border:"none",borderRadius:5,color:"var(--text-dim)",cursor:"pointer",transition:"color 0.12s"},onMouseEnter:e=>{e.currentTarget.style.color="var(--accent)"},onMouseLeave:e=>{e.currentTarget.style.color="var(--text-dim)"},children:(0,r.jsx)(nw.A,{size:14,strokeWidth:1.8})}),w&&(0,r.jsx)("button",{onClick:()=>{l(o,g)},disabled:a,"data-tooltip":d(a?"message_creating":"message_newSessionFromHereTooltip"),className:"instant-tooltip","aria-label":d("message_newSessionFromHere"),style:{display:"flex",alignItems:"center",justifyContent:"center",width:26,height:22,padding:0,background:"none",border:"none",borderRadius:5,color:a?"var(--accent)":"var(--text-dim)",cursor:a?"not-allowed":"pointer",transition:"color 0.12s"},onMouseEnter:e=>{a||(e.currentTarget.style.color="var(--accent)")},onMouseLeave:e=>{a||(e.currentTarget.style.color="var(--text-dim)")},children:(0,r.jsx)(nk.A,{size:14,strokeWidth:1.8})})]}),y&&(0,r.jsx)("span",{style:{fontSize:10,color:"var(--text-dim)"},children:y})]})]})}function r9({message:e,isStreaming:t,toolResults:n,toolExecutionSnapshots:o,modelNames:s,cwd:l,onOpenFile:a,showTimestamp:d,prevTimestamp:c,sessionId:u,entryId:p,onBranchFromAssistant:h,onNewSessionFromAnswer:g,toolsActive:f}){var x,m,v;let y,b,w,k,j,{t:S}=(0,ea.s9)(),C=d?r5(e.timestamp):null,_=(x=e.content??[],j=[],x.forEach((e,t)=>{if(tL(e.type))return void j.push({block:tW(e),sourceIndex:t});if("text"===e.type&&"string"==typeof e.text&&tP.test(e.text)){for(let n of(tP.lastIndex=0,function(e){let t,n=[],r=0;for(tA.lastIndex=0;null!==(t=tA.exec(e));)t.index>r&&n.push({type:"text",value:e.slice(r,t.index)}),n.push({type:"thinking",value:t[1]??""}),r=t.index+t[0].length;let i=e.slice(r),o=tP.exec(i);return o&&void 0!==o.index?(o.index>0&&n.push({type:"text",value:i.slice(0,o.index)}),n.push({type:"thinking",value:i.slice(o.index+o[0].length)})):i.length>0&&n.push({type:"text",value:i}),n}(e.text)))"thinking"===n.type?j.push({block:{type:"thinking",thinking:n.value},sourceIndex:t}):n.value.length>0&&j.push({block:{...e,type:"text",text:n.value},sourceIndex:t});return}j.push({block:e,sourceIndex:t})}),j).map(({block:e,sourceIndex:t})=>({block:e,originalIndex:t})).filter(({block:e})=>!no(e,{isStreaming:t})),I=_.map(({block:e})=>e),[R,T]=(0,i.useState)(!1),[M,E]=(0,i.useState)(!1),z=(0,i.useRef)(null),[L,W]=(0,i.useState)(null),A=(0,i.useRef)(_);A.current=_;let P=(0,i.useRef)(new Map),[$,H]=(0,i.useState)(new Map),F=(0,i.useMemo)(()=>{if(!e.timestamp||!c)return;let t=Math.round((e.timestamp-c)/1e3);return t>0?t:void 0},[e.timestamp,c]),D=(0,i.useMemo)(()=>{let t=new Map;if(!n||!e.timestamp)return t;for(let[r,i]of n)if(i.timestamp&&e.timestamp){let n=Math.round((i.timestamp-e.timestamp)/1e3);n>0&&t.set(r,n)}return t},[n,e.timestamp]),N=(0,i.useMemo)(()=>new Map(o?.map(e=>[e.toolCallId,e])??[]),[o]),B=I.filter(e=>"text"===e.type).map(e=>e.text).join("\n");(0,i.useEffect)(()=>{if(!t){let e=new Date().getTime();H(t=>{let n=new Map(t);for(let[t,r]of P.current)n.has(t)||n.set(t,Math.round((e-r)/1e3));return n}),z.current=null,W(null);return}let e=setInterval(()=>{let e=A.current,t=e.map(({block:e})=>e),n=Date.now();e.forEach(({originalIndex:e})=>{P.current.has(e)||P.current.set(e,n)}),H(t=>{let r=!1,i=new Map(t);for(let t=0;t<e.length-1;t++){let o=e[t].originalIndex,s=e[t+1].originalIndex;if(!i.has(o)&&P.current.has(o)){let e=P.current.get(o),t=P.current.get(s)??n;i.set(o,Math.round((t-e)/1e3)),r=!0}}return r?i:t});let r=0;for(let e of t)"text"===e.type?r+=e.text?.length??0:"thinking"===e.type?r+=e.thinking?.length??0:"toolCall"===e.type&&(r+=JSON.stringify(e.input??{}).length);if(0===r)return;null===z.current&&(z.current=n);let i=(n-z.current)/1e3;i>.5&&W(r/4/i)},300);return()=>clearInterval(e)},[t]);let O=e.stopReason,U="string"==typeof e.errorMessage?e.errorMessage.trim():"",q="error"===O||U.length>0&&"end_turn"!==O&&"toolUse"!==O&&"length"!==O,K="aborted"===O,V=q||K||U.length>0;return 0!==I.length||t||V?(0,r.jsxs)("div",{style:{marginBottom:30},onMouseEnter:()=>T(!0),onMouseLeave:()=>T(!1),children:[(0,r.jsxs)("div",{style:{fontSize:11,color:"var(--text-dim)",marginBottom:8,display:"flex",alignItems:"center",gap:6},children:[e.provider&&(0,r.jsx)("span",{children:s?.[`${e.provider}:${e.model}`]??s?.[e.model]??e.model}),t&&(()=>{let e,t=0;for(let e of I)"text"===e.type?t+=e.text?.length??0:"thinking"===e.type?t+=e.thinking?.length??0:"toolCall"===e.type&&(t+=JSON.stringify(e.input??{}).length);let n=Math.round(t/4);return(0,r.jsx)(r.Fragment,{children:n>0&&(0,r.jsxs)("span",{style:{display:"flex",alignItems:"center",gap:4,color:"var(--text)"},title:S("message_estimatedTokensStreaming"),children:[(0,r.jsxs)("span",{style:{display:"flex",alignItems:"center",gap:2,fontSize:11,fontWeight:400},children:[(0,r.jsxs)("svg",{width:"10",height:"10",viewBox:"0 0 10 10",fill:"none",stroke:"currentColor",strokeWidth:"1.2",strokeLinecap:"round",strokeLinejoin:"round",children:[(0,r.jsx)("line",{x1:"5",y1:"1.5",x2:"5",y2:"8.5"}),(0,r.jsx)("polyline",{points:"2 6 5 8.5 8 6"})]}),n]}),null!==L&&(e=L>=50?"#53b3cb":L>=30?"#9bc53d":L>=15?"#f9c22e":"#e01a4f",(0,r.jsxs)("span",{style:{marginLeft:6,padding:"1px 6px",borderRadius:4,background:e,color:"#fff",fontSize:11,fontWeight:400},children:[L.toFixed(1)," t/s"]}))]})})})()]}),(0,r.jsx)("div",{style:{display:"flex",flexDirection:"column",gap:10},children:_.map(({block:i,originalIndex:o},s)=>{var d;return(0,r.jsx)(r7,{block:i,toolResults:n,toolExecutionMap:N,isStreaming:t,activeStreamBlock:(d=_.length,!!t&&d>0&&s===d-1),streamingDuration:$.get(o)??("thinking"===i.type?F:void 0),toolCallDurations:D,cwd:l,onOpenFile:a,sessionId:u,entryId:p,blockIndex:o,toolsActive:f,startedAt:e.timestamp},`${p??"stream"}-${o}`)})}),!t&&V&&(0,r.jsxs)("div",{role:"alert",style:{marginTop:10,padding:"10px 12px",borderRadius:8,border:`1px solid ${K?"var(--status-warning-border, var(--border))":"var(--status-danger-border, var(--border))"}`,background:K?"var(--status-warning-bg, var(--bg-subtle))":"var(--status-danger-bg, var(--bg-subtle))",color:K?"var(--status-warning, var(--text))":"var(--error-text, var(--status-danger, var(--text)))",fontSize:12,lineHeight:1.5,whiteSpace:"pre-wrap",overflowWrap:"anywhere"},children:[(0,r.jsxs)("div",{style:{fontWeight:600,marginBottom:4*!!U},children:[K?S("message_aborted"):S("message_apiError"),O&&"error"!==O&&"aborted"!==O?(0,r.jsxs)("span",{style:{fontWeight:400,opacity:.8},children:[" (",O,")"]}):null]}),U?(0,r.jsx)("div",{children:U}):null]}),(0,r.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:8,marginTop:4},children:[e.usage&&!t&&(0,r.jsx)("div",{style:{fontSize:11,color:"var(--text-dim)"},children:(m=e.usage,v=e,y=[],m.input&&y.push(`${m.input.toLocaleString()} in`),m.output&&y.push(`${m.output.toLocaleString()} out`),m.cacheRead&&y.push(`${m.cacheRead.toLocaleString()} cache`),m.cost?.total&&y.push(`$${m.cost.total.toFixed(4)}`),b=v?.provider?.trim(),w=v?.model?.trim(),(b||w)&&y.push([b,w].filter(Boolean).join(" / ")),(k=v?.thinkingLevel?.trim())&&"off"!==k&&y.push(k),y.join(" \xb7 "))}),B&&!t&&(0,r.jsx)("button",{onClick:()=>{e2(B).then(()=>{E(!0),setTimeout(()=>E(!1),1500)})},"data-tooltip":S("message_copyAnswer"),className:"instant-tooltip","aria-label":S("message_copyAnswer"),style:{display:"flex",alignItems:"center",justifyContent:"center",padding:"3px 6px",height:22,width:22,background:"none",border:"none",borderRadius:5,color:M?"var(--accent)":"var(--text-dim)",cursor:"pointer",transition:"opacity 0.12s, color 0.12s",opacity:+!!R,pointerEvents:R?"auto":"none"},onMouseEnter:e=>{M||(e.currentTarget.style.color="var(--accent)")},onMouseLeave:e=>{M||(e.currentTarget.style.color="var(--text-dim)")},children:M?(0,r.jsx)(ny.A,{size:11,strokeWidth:1.8}):(0,r.jsx)(nb.A,{size:11,strokeWidth:1.8})}),p&&!t&&h&&(0,r.jsx)("button",{onClick:()=>{h(p)},"data-tooltip":S("message_branchFromAnswerTooltip"),className:"instant-tooltip","aria-label":S("message_branchFromAnswer"),style:{display:"flex",alignItems:"center",justifyContent:"center",width:26,height:22,padding:0,background:"none",border:"none",borderRadius:5,color:"var(--text-dim)",cursor:"pointer",opacity:+!!R,pointerEvents:R?"auto":"none",transition:"opacity 0.12s, color 0.12s"},onMouseEnter:e=>{e.currentTarget.style.color="var(--accent)"},onMouseLeave:e=>{e.currentTarget.style.color="var(--text-dim)"},children:(0,r.jsx)(nw.A,{size:14,strokeWidth:1.8})}),p&&!t&&g&&(0,r.jsx)("button",{onClick:()=>{g(p)},"data-tooltip":S("message_newSessionFromAnswerTooltip"),className:"instant-tooltip","aria-label":S("message_newSessionFromAnswer"),style:{display:"flex",alignItems:"center",justifyContent:"center",width:26,height:22,padding:0,background:"none",border:"none",borderRadius:5,color:"var(--text-dim)",cursor:"pointer",opacity:+!!R,pointerEvents:R?"auto":"none",transition:"opacity 0.12s, color 0.12s"},onMouseEnter:e=>{e.currentTarget.style.color="var(--accent)"},onMouseLeave:e=>{e.currentTarget.style.color="var(--text-dim)"},children:(0,r.jsx)(nk.A,{size:14,strokeWidth:1.8})}),C&&!t&&(0,r.jsx)("span",{style:{fontSize:10,color:"var(--text-dim)",marginLeft:"auto"},children:C})]})]}):null}function r7({block:e,toolResults:t,toolExecutionMap:n,isStreaming:i,activeStreamBlock:o,streamingDuration:s,toolCallDurations:l,cwd:a,onOpenFile:d,sessionId:c,entryId:u,blockIndex:p,toolsActive:h,startedAt:g}){if("text"===e.type)return(0,r.jsx)(ie,{block:e,isStreaming:i,cwd:a,onOpenFile:d});if("thinking"===e.type)return(0,r.jsx)(is,{block:e,duration:s,isStreaming:!!o,sessionId:c,entryId:u,blockIndex:p});if("image"===e.type){let t=rb(e);return t?(0,r.jsx)(rC,{src:t.src,fullSrc:t.src,mimeType:t.mimeType,alt:"",maxWidth:520,maxHeight:360}):null}if("toolCall"===e.type){let i=t?.get(e.toolCallId),o=l?.get(e.toolCallId);return(0,r.jsx)(il,{block:e,result:i,snapshot:n?.get(e.toolCallId),duration:o,sessionId:c,pending:!i&&!0===h,startedAt:i||!0!==h?void 0:g})}return null}function ie({block:e,isStreaming:t,cwd:n,onOpenFile:i}){return(0,r.jsx)(rT,{isStreaming:t,cwd:n,onOpenFile:i,children:e.text})}function it(){return nv()?rq:rU}function ir(e){return e.scrollHeight-e.scrollTop-e.clientHeight<=24}function ii(e,t,n){e&&t&&(n.current=!0,e.scrollTop=e.scrollHeight,requestAnimationFrame(()=>{n.current=!1}))}function io({text:e}){let t=e.trimEnd().split("\n").pop()??"";return t?(0,r.jsxs)("div",{"data-collapsed-preview":"true",title:t,style:{display:"flex",alignItems:"center",gap:6,padding:"3px 10px 6px",borderTop:"1px dashed var(--border)",color:"var(--text-dim)",fontFamily:"var(--font-mono)",fontSize:11,lineHeight:1.4,whiteSpace:"nowrap",overflow:"hidden",textOverflow:"ellipsis",pointerEvents:"none"},children:[(0,r.jsx)("span",{style:{flexShrink:0,color:"var(--text-dim)"},children:"›"}),(0,r.jsx)("span",{style:{minWidth:0,overflow:"hidden",textOverflow:"ellipsis"},children:t})]}):null}function is({block:e,duration:t,isStreaming:n,sessionId:o,entryId:s,blockIndex:l}){let{t:a}=(0,ea.s9)(),d=it(),[c,u]=(0,i.useState)(!1),[p,h]=(0,i.useState)(null),[g,f]=(0,i.useState)(!1),[x,m]=(0,i.useState)(null),v=(0,i.useRef)(null),y=(0,i.useRef)(!0),b=(0,i.useRef)(!1),w=g?a("message_thinkingLoading"):x??(e.deferred?p:tz(e)),k=async()=>{if(e.deferred&&null===p&&!g){if(!o||!s)return void m(a("message_thinkingUnavailable"));f(!0),m(null);try{h(await function(e,t,n){let r=`${e}:${t}:${n}`,i=r2.get(r);if(i)return r2.delete(r),r2.set(r,i),i;let o=fetch(`/api/sessions/${encodeURIComponent(e)}/entries/${encodeURIComponent(t)}/thinking?blockIndex=${n}`).then(async e=>{if(!e.ok)throw Error(`HTTP ${e.status}`);let t=await e.json();if("string"!=typeof t.thinking)throw Error("Invalid thinking response");return t.thinking}).catch(e=>{throw r2.delete(r),e});if(r2.set(r,o),r2.size>100){let e=r2.keys().next().value;e&&r2.delete(e)}return o}(o,s,l))}catch(e){m(e instanceof Error?e.message:String(e))}finally{f(!1)}}};(0,i.useEffect)(()=>{c&&k()},[c]);let j=async()=>{let t=!c;u(t),t&&e.deferred&&null===p&&await k()};return(0,i.useEffect)(()=>{c&&(y.current=!0)},[c]),(0,i.useEffect)(()=>{ii(v.current,c&&y.current,b)},[c,w]),(0,r.jsxs)("div",{style:{border:"1px solid var(--border)",borderRadius:6,overflow:"hidden",fontSize:13},children:[(0,r.jsxs)("button",{onClick:()=>void j(),"aria-expanded":c,style:{display:"flex",alignItems:"center",gap:6,width:"100%",padding:"6px 10px",background:"var(--bg-panel)",border:"none",color:"var(--text-muted)",cursor:"pointer",fontSize:12,textAlign:"left"},children:[(0,r.jsx)("span",{children:a("chat_thinking")}),void 0!==t&&(0,r.jsx)("span",{style:{marginLeft:"auto",fontSize:11,color:"var(--text-dim)",fontVariantNumeric:"tabular-nums"},children:ip(1e3*t)})]}),!c&&n&&(0,r.jsx)(io,{text:w??""}),c&&(0,r.jsx)("div",{ref:v,tabIndex:0,className:"chat-selectable",onScroll:e=>{b.current||(y.current=ir(e.currentTarget))},style:{padding:"8px 10px",color:x?"var(--error-text)":"var(--text-muted)",fontSize:12,lineHeight:1.6,whiteSpace:"pre-wrap",background:"var(--bg-panel)",borderTop:"1px solid var(--border)",maxHeight:d,overflow:"auto",overscrollBehavior:"auto",touchAction:"pan-y"},children:w})]})}function il({block:e,result:t,snapshot:n,duration:o,sessionId:s,pending:l,startedAt:a,defaultExpanded:d}){var c,u;let p,h,g,f,{t:x}=(0,ea.s9)(),m=it(),[v,y]=(0,i.useState)(!0===d),[b,w]=(0,i.useState)(()=>Date.now()),[k,j]=(0,i.useState)(void 0),[S,C]=(0,i.useState)(void 0),[_,I]=(0,i.useState)(!1),R=(0,i.useRef)(null),T=(0,i.useRef)(!0),M=(0,i.useRef)(!1),E=!t&&(n?.status==="running"||!0===l),z="edit"===(p=e.toolName.toLowerCase())||p.startsWith("edit_")||p.endsWith(".edit")||p.endsWith("_edit")||p.includes("str_replace")||p.includes("replace_editor"),L=t&&(void 0!==k||void 0!==S)?{...t,...void 0!==k?{details:k}:{},...void 0!==S?{content:S}:{}}:t,W=L&&!L.isError?function(e){let t=e.details;if(!iy(t))return null;let n="string"==typeof t.patch?t.patch:null;if(n)return{text:n};let r="string"==typeof t.diff?t.diff:null;return r?{text:r}:null}(L):null,A=L?L.content.filter(e=>"text"===e.type).map(e=>e.text).join("\n"):null,P=L?L.content.filter(e=>"image"===e.type):[],$=null!==A&&("(no output)"===A.trim()||""===A.trim()),H=L?.isError??!1,F=n?.status,D=function(e,t,n=!1,r=!1){return"running"===e||r?"var(--status-running)":"success"===e||n&&!t?"var(--status-success)":"error"===e||t?"var(--status-danger)":"cancelled"===e?"var(--text-dim)":"var(--text-muted)"}(F,H,null!=L,l),N=function(e,t){if(t?.command)return t.command;let n=e.input;if(n&&"object"==typeof n&&"command"in n){let e=n.command;if("string"==typeof e)return e;if(e&&"object"==typeof e){if("string"==typeof e.command)return e.command;if("string"==typeof e.cmd)return e.cmd}}var r=e;let i=r.input;if(!i||"object"!=typeof i)return"";let o=Object.keys(i);return 0===o.length?"":"command"in i?String(i.command).slice(0,120):"path"in i?String(i.path).slice(0,120):"file_path"in i?String(i.file_path).slice(0,120):"pattern"in i?String(i.pattern).slice(0,120):"query"in i?String(i.query).slice(0,120):String(i[o[0]]).slice(0,120)}(e,n),B=ia(n?.renderedCallLines??e.renderedCallLines),O=ia(n?.renderedLines),U=ia(n?.renderedResultLines??L?.renderedResultLines),q=n?Math.max(0,("running"===n.status?b:n.endedAt??n.startedAt)-n.startedAt):void 0!==a?!0===l||void 0===o?Math.max(0,b-a):1e3*o:void 0===o?void 0:1e3*o;(0,i.useEffect)(()=>{if(!E)return;let e=setInterval(()=>w(Date.now()),500);return()=>clearInterval(e)},[E]),(0,i.useEffect)(()=>{v&&(T.current=!0)},[v]),(0,i.useEffect)(()=>{ii(R.current,v&&T.current,M)},[v,n?.output,n?.renderedLines,O]),(0,i.useEffect)(()=>{if(!v||!t||!s||_)return;let n=r6(t.details)&&void 0===k,r=t.content.some(e=>"text"===e.type&&/^\[\d+ tool result image(?:s)? omitted from initial history payload/.test(e.text))&&void 0===S;if(!n&&!r)return;let i=!1;return I(!0),(function(e,t){let n=`${e}:${t}`,r=r4.get(n);if(r)return r4.delete(n),r4.set(n,r),r;let i=fetch(`/api/sessions/${encodeURIComponent(e)}/tool-results/${encodeURIComponent(t)}`).then(async e=>{if(!e.ok)throw Error(`HTTP ${e.status}`);let t=await e.json(),n=Array.isArray(t.content)?t.content.filter(e=>"object"==typeof e&&null!==e&&("text"===e.type||"image"===e.type)):[];return{details:t.details??null,content:n}}).catch(e=>{throw r4.delete(n),e});if(r4.set(n,i),r4.size>50){let e=r4.keys().next().value;e&&r4.delete(e)}return i})(s,e.toolCallId).then(e=>{!i&&(n&&j(e.details),r&&C(e.content))}).catch(()=>{!i&&n&&j(t.details),!i&&r&&C(t.content)}).finally(()=>{i||I(!1)}),()=>{i=!0}},[v,t,s,e.toolCallId,k,S,_]);return(0,r.jsxs)("div",{style:{borderRadius:"var(--radius-md)",overflow:"hidden",fontSize:12,border:"1px solid var(--border)",borderLeft:`3px solid ${D}`,background:"var(--tool-bg)"},children:[(0,r.jsxs)("button",{onClick:()=>y(!v),"aria-expanded":v,style:{display:"flex",alignItems:"center",gap:7,width:"100%",padding:"6px 10px",background:"none",border:"none",color:"var(--text-muted)",cursor:"pointer",fontSize:12,textAlign:"left",minWidth:0},children:[(0,r.jsxs)("span",{style:{display:"flex",alignItems:"center",gap:5,flexShrink:0},children:[(c=e.toolName,u=D,h=c.toLowerCase(),g={size:12,color:u},"bash"===h||"exec_command"===h||"terminal"===h||h.includes("shell")?(0,r.jsx)(nj.A,{...g}):"edit"===h||"write"===h||h.includes("edit")||h.includes("write")?(0,r.jsx)(nS.A,{...g}):"read"===h||"multi_read"===h||h.includes("read")||h.includes("view")?(0,r.jsx)(nC.A,{...g}):"grep"===h||"search"===h||h.includes("grep")||h.includes("search")||h.includes("find")?(0,r.jsx)(n_.A,{...g}):h.includes("web")||h.includes("fetch")||h.includes("http")||h.includes("url")?(0,r.jsx)(nI.A,{...g}):h.includes("todo")||h.includes("task")?(0,r.jsx)(nR.A,{...g}):h.includes("notify")||h.includes("message")?(0,r.jsx)(nT.A,{...g}):h.includes("approve")||h.includes("permission")||h.includes("confirm")?(0,r.jsx)(nM.A,{...g}):(0,r.jsx)(nj.A,{...g})),E&&(0,r.jsx)("span",{style:{width:6,height:6,borderRadius:"50%",background:D},"aria-hidden":"true"})]}),(0,r.jsx)("span",{style:{color:D,fontFamily:"var(--font-mono)",fontWeight:600,fontSize:11,flexShrink:0},children:e.toolName}),(0,r.jsx)("span",{title:N,style:{color:"var(--text-dim)",fontFamily:"var(--font-mono)",fontSize:11,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",flex:1,minWidth:0},children:N}),F&&(0,r.jsx)("span",{style:{color:D,fontSize:10,fontWeight:600,flexShrink:0},children:x(iu[F])}),void 0!==q&&(0,r.jsx)("span",{style:{fontSize:11,color:"var(--text-dim)",flexShrink:0,fontVariantNumeric:"tabular-nums"},children:ip(q)}),(0,r.jsx)("svg",{width:"10",height:"10",viewBox:"0 0 10 10",fill:"none",stroke:"var(--text-dim)",strokeWidth:"1.6",strokeLinecap:"round",strokeLinejoin:"round",style:{flexShrink:0,transform:v?"rotate(180deg)":"none",transition:"transform 0.15s"},children:(0,r.jsx)("polyline",{points:"2 3.5 5 6.5 8 3.5"})})]}),!v&&E&&(f=(n?.output??"").trimEnd().split("\n").pop()??"",(0,r.jsx)(io,{text:f.trim()?f:N})),v&&N&&(0,r.jsxs)("div",{style:{padding:"8px 10px",borderTop:`1px solid color-mix(in srgb, ${D} 22%, var(--border))`,background:"var(--bg-subtle)"},children:[(0,r.jsx)("div",{style:{marginBottom:4,color:"var(--text-dim)",fontSize:10,textTransform:"uppercase",letterSpacing:"0.08em"},children:x("message_toolCommand")}),(0,r.jsx)("code",{style:{display:"block",maxHeight:m,overflow:"auto",overscrollBehavior:"auto",touchAction:"pan-y",color:"var(--text)",fontFamily:"var(--font-mono)",fontSize:11.5,lineHeight:1.55,whiteSpace:"pre-wrap",overflowWrap:"anywhere"},children:N})]}),v&&B&&(0,r.jsx)(ic,{lines:B,statusColor:D}),v&&!z&&(0,r.jsx)("div",{style:{margin:0,padding:"8px 10px",color:"var(--text-muted)",fontSize:12,lineHeight:1.5,maxHeight:m,overflow:"auto",overscrollBehavior:"auto",touchAction:"pan-y",background:"var(--bg-subtle)",borderTop:`1px solid color-mix(in srgb, ${D} 20%, var(--border))`,display:"flex",flexDirection:"column",gap:3},children:(function(e){let t=[];for(let[n,r]of Object.entries(e)){if(null==r)continue;let e="string"==typeof r?r:"number"==typeof r||"boolean"==typeof r?String(r):"";if(e)t.push({key:n,value:e});else try{t.push({key:n,value:JSON.stringify(r).slice(0,200)})}catch{t.push({key:n,value:"[…]"})}}return t})(e.input).filter(e=>"command"!==e.key).map(e=>(0,r.jsxs)("div",{style:{display:"flex",gap:8,minWidth:0},children:[(0,r.jsx)("span",{style:{flexShrink:0,fontFamily:"var(--font-mono)",fontSize:11,color:"var(--text-dim)",width:88,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:e.key}),(0,r.jsx)("span",{style:{minWidth:0,flex:1,overflowWrap:"anywhere",whiteSpace:"pre-wrap"},children:e.value})]},e.key))}),v&&n&&(0,r.jsxs)("div",{style:{borderTop:`1px solid color-mix(in srgb, ${D} 24%, var(--border))`,background:"var(--tool-bg)"},children:[(0,r.jsxs)("div",{style:{display:"flex",alignItems:"center",justifyContent:"space-between",gap:8,padding:"6px 10px 4px",color:"var(--text-dim)",fontSize:10,textTransform:"uppercase",letterSpacing:"0.08em"},children:[(0,r.jsx)("span",{children:x("message_toolLiveOutput")}),n.truncated&&(0,r.jsx)("span",{style:{color:"var(--warning)",textTransform:"none",letterSpacing:0},children:x("message_toolOutputTruncated")})]}),(0,r.jsx)("pre",{ref:R,tabIndex:0,onScroll:e=>{M.current||(T.current=ir(e.currentTarget))},style:{margin:0,padding:"4px 10px 10px",maxHeight:m,overflow:"auto",overscrollBehavior:"auto",touchAction:"pan-y",color:O||n.output?"var(--text-muted)":"var(--text-dim)",background:"var(--tool-bg)",fontFamily:"var(--font-mono)",fontSize:11.5,lineHeight:1.55,whiteSpace:"pre-wrap",overflowWrap:"anywhere"},children:O?id(O,"tool-live"):n.output||x("message_toolWaitingOutput")})]}),v&&L&&(0,r.jsxs)(r.Fragment,{children:[P.length>0&&(0,r.jsx)("div",{style:{borderTop:"1px solid var(--border)",padding:"8px 10px",background:"var(--bg-subtle)"},children:(0,r.jsx)(r1,{imageBlocks:P})}),U?(0,r.jsx)(ic,{lines:U,statusColor:D}):_&&r6(t?.details)&&!W?(0,r.jsx)("div",{style:{padding:"8px 10px",borderTop:"1px solid var(--border)",color:"var(--text-dim)",fontSize:11},children:x("message_thinkingLoading")}):W?(0,r.jsx)(ih,{diff:W}):(0,r.jsx)(ib,{text:A??"",isEmpty:$,isError:H})]})]})}function ia(e){return Array.isArray(e)&&e.length>0&&e.every(e=>"string"==typeof e)?e:null}function id(e,t){return e.map((n,i)=>{var o;return(0,r.jsxs)("span",{children:[(o=`${t}-${i}`,nn(n).map((e,t)=>Object.keys(e.style).length>0?(0,r.jsx)("span",{style:e.style,children:e.text},`${o}-${t}`):e.text)),i<e.length-1?"\n":null]},`${t}-${i}`)})}function ic({lines:e,statusColor:t}){let n=it();return(0,r.jsx)("pre",{tabIndex:0,style:{margin:0,padding:"8px 10px",maxHeight:n,overflow:"auto",overscrollBehavior:"auto",touchAction:"pan-y",borderTop:`1px solid color-mix(in srgb, ${t} 24%, var(--border))`,background:"var(--bg-subtle)",color:"var(--text-muted)",fontFamily:"var(--font-mono)",fontSize:12,lineHeight:1.55,whiteSpace:"pre-wrap",overflowWrap:"anywhere"},children:id(e,"tool-rendered")})}let iu={running:"message_toolStatusRunning",success:"message_toolStatusSuccess",error:"message_toolStatusError",cancelled:"message_toolStatusCancelled"};function ip(e){let t=Number.isFinite(e)?Math.max(0,e):0;if(t<1e3)return`${Math.floor(t)}ms`;let n=t/1e3;if(n<10)return`${n.toFixed(1)}s`;if(n<60)return`${Math.round(n)}s`;let r=Math.round(n);return`${Math.floor(r/60)}m ${String(r%60).padStart(2,"0")}s`}function ih({diff:e}){return(0,r.jsx)("div",{style:{borderTop:"1px solid var(--status-success-border)",background:"var(--bg)"},children:(0,r.jsx)(ig,{text:e.text})})}function ig({text:e}){let t=(0,i.useMemo)(()=>rB(e),[e]);if(!t)return(0,r.jsx)(iv,{text:e});let n=t.length>1;return(0,r.jsx)("div",{style:{maxHeight:"min(560px, 50vh)",overflowY:"auto",overflowX:"hidden",overscrollBehavior:"auto",touchAction:"pan-y",background:"var(--bg)"},children:t.map((e,t)=>(0,r.jsxs)("div",{style:{minWidth:0,borderTop:0===t?"none":"1px solid var(--border)",fontFamily:"var(--font-mono)",fontSize:12,lineHeight:1.55},children:[n&&(0,r.jsxs)("div",{style:{display:"grid",gridTemplateColumns:"minmax(0, 1fr) minmax(0, 1fr)",position:"sticky",top:0,zIndex:1,background:"var(--bg-panel)",borderBottom:"1px solid var(--border)"},children:[(0,r.jsx)(ix,{title:e.oldPath||"Before",side:"left"}),(0,r.jsx)(ix,{title:e.newPath||"After",side:"right"})]}),(0,r.jsx)("div",{style:{display:"grid",gridTemplateColumns:"minmax(0, 1fr) minmax(0, 1fr)"},children:e.rows.map((e,t)=>"hunk"===e.type?null:(0,r.jsxs)("div",{style:{display:"contents"},children:[(0,r.jsx)(im,{cell:e.left,side:"left"}),(0,r.jsx)(im,{cell:e.right,side:"right"})]},t))})]},t))})}function ix({title:e,side:t}){return(0,r.jsx)("div",{title:e,style:{padding:"5px 10px",color:"var(--text-dim)",borderRight:"left"===t?"1px solid var(--border)":"none",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:e})}function im({cell:e,side:t}){let n="added"===e.type?"var(--diff-added-bg)":"removed"===e.type?"var(--diff-removed-bg)":"empty"===e.type?"var(--bg-subtle)":"transparent",i="added"===e.type?"+":"removed"===e.type?"-":" ",o="added"===e.type?"var(--diff-added-text)":"removed"===e.type?"var(--diff-removed-text)":"var(--text-dim)";return(0,r.jsxs)("div",{style:{display:"flex",minWidth:0,background:n,borderRight:"left"===t?"1px solid var(--border)":"none"},children:[(0,r.jsx)("span",{style:{width:42,padding:"0 6px",textAlign:"right",color:"var(--text-dim)",userSelect:"none",background:"var(--bg-panel)",borderRight:"1px solid var(--border)",flexShrink:0},children:e.lineNo??""}),(0,r.jsx)("span",{style:{width:18,padding:"0 5px",color:o,userSelect:"none",fontWeight:"context"===e.type||"empty"===e.type?400:700,flexShrink:0},children:i}),(0,r.jsx)("span",{style:{flex:1,minWidth:0,padding:"0 10px 0 0",color:"empty"===e.type?"var(--text-dim)":"var(--text)",whiteSpace:"pre-wrap",overflowWrap:"anywhere",userSelect:"text",WebkitUserSelect:"text"},children:e.text||"\xa0"})]})}function iv({text:e}){let t=e.split(/\r?\n/);return(0,r.jsx)("div",{className:"chat-selectable",style:{maxHeight:"min(520px, 45vh)",overflowY:"auto",overflowX:"hidden",overscrollBehavior:"auto",touchAction:"pan-y",fontFamily:"var(--font-mono)",fontSize:12,lineHeight:1.55,minWidth:0},children:t.map((e,t)=>{let n=e.startsWith("@@")?"hunk":e.startsWith("+")&&!e.startsWith("+++")?"added":e.startsWith("-")&&!e.startsWith("---")?"removed":"context";return(0,r.jsxs)("div",{style:{display:"flex",background:"added"===n?"var(--diff-added-bg)":"removed"===n?"var(--diff-removed-bg)":"hunk"===n?"var(--diff-hunk-bg)":"transparent",borderLeft:"added"===n?"3px solid var(--diff-added-border)":"removed"===n?"3px solid var(--diff-removed-border)":"hunk"===n?"3px solid var(--accent)":"3px solid transparent"},children:[(0,r.jsx)("span",{style:{width:48,padding:"0 8px",color:"var(--text-dim)",background:"var(--bg-panel)",borderRight:"1px solid var(--border)",textAlign:"right",userSelect:"none",flexShrink:0},children:t+1}),(0,r.jsx)("span",{style:{padding:"0 10px",whiteSpace:"pre-wrap",overflowWrap:"anywhere",color:"added"===n?"var(--diff-added-text)":"removed"===n?"var(--diff-removed-text)":"hunk"===n?"var(--accent)":"var(--text)"},children:e||"\xa0"})]},t)})})}function iy(e){return"object"==typeof e&&null!==e&&!Array.isArray(e)}function ib({text:e,isEmpty:t,isError:n}){let{t:i}=(0,ea.s9)();return(0,r.jsx)("div",{style:{borderTop:`1px solid ${n?"var(--status-danger-border)":"var(--status-success-border)"}`,background:n?"var(--status-danger-bg)":"var(--bg-subtle)"},children:(0,r.jsx)("pre",{style:{margin:0,padding:"8px 10px",color:n?"var(--error-text)":t?"var(--text-dim)":"var(--text-muted)",fontSize:12,lineHeight:1.5,overflow:"auto",overscrollBehavior:"auto",touchAction:"pan-y",maxHeight:"min(400px, 45vh)",background:"var(--bg)",whiteSpace:"pre-wrap",wordBreak:"break-all",fontStyle:t?"italic":"normal",opacity:t?.6:1},children:t?`(${i("message_noOutput").toLowerCase()})`:e})})}function iw({message:e}){let{t}=(0,ea.s9)(),n=iT(e.content),o=(0,i.useMemo)(()=>rN(n),[n]),s=r5(e.timestamp);return(0,r.jsx)("div",{style:{marginBottom:16},children:(0,r.jsxs)("div",{style:{border:"1px solid var(--border)",borderRadius:8,overflow:"hidden",background:"var(--bg)"},children:[(0,r.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:8,padding:"7px 10px",borderBottom:"1px solid var(--border)",background:"var(--bg-panel)",color:"var(--text-muted)"},children:[(0,r.jsx)("span",{style:{fontFamily:"var(--font-mono)",fontSize:11,fontWeight:650},children:t("message_compaction")}),s&&(0,r.jsx)("span",{style:{marginLeft:"auto",color:"var(--text-dim)",fontSize:10},children:s})]}),(0,r.jsxs)("div",{style:{padding:"11px 13px 12px"},children:[(0,r.jsx)("div",{style:{color:"var(--text)",fontSize:15,fontWeight:700,lineHeight:1.35},children:t("message_conversationCompacted")}),(0,r.jsx)("div",{style:{marginTop:3,marginBottom:10,color:"var(--text)",fontSize:14,lineHeight:1.5},children:t("message_conversationCompactedDescription")}),o.body?(0,r.jsx)(rT,{className:"markdown-compaction-message",children:o.body}):(0,r.jsxs)("span",{style:{color:"var(--text-dim)",fontSize:12},children:["(",t("message_noSummary"),")"]}),(0,r.jsx)(iS,{readFiles:o.readFiles,modifiedFiles:o.modifiedFiles})]})]})})}function ik({message:e}){let{t}=(0,ea.s9)(),n=iT(e.content),i=e.details?.ok!==!1,o=e.details?.result,s=r5(e.timestamp);return(0,r.jsxs)("div",{style:{marginBottom:12},children:[(0,r.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:8,padding:"6px 10px",border:"1px solid var(--border)",borderLeft:"2px solid var(--accent)",borderRadius:8,background:"var(--bg-subtle)"},children:[(0,r.jsx)("span",{style:{color:"var(--text-dim)",fontSize:10,whiteSpace:"nowrap"},children:t("message_command")}),(0,r.jsx)("code",{style:{fontFamily:"var(--font-mono)",fontSize:12,color:"var(--text)",overflowWrap:"anywhere"},children:n}),i&&(0,r.jsx)("span",{style:{marginLeft:"auto",color:"var(--text-dim)",fontSize:10},children:"✓"}),!i&&(0,r.jsx)("span",{style:{marginLeft:"auto",color:"var(--text-dim)",fontSize:10},children:"✗"}),s&&(0,r.jsx)("span",{style:{color:"var(--text-dim)",fontSize:10,whiteSpace:"nowrap"},children:s})]}),o&&(0,r.jsx)("div",{style:{marginTop:4,padding:"0 4px",color:"var(--text-muted)",fontSize:12},children:o})]})}function ij({message:e}){let{t}=(0,ea.s9)(),n=iT(e.content),o=(0,i.useMemo)(()=>rN(n),[n]),s=(0,i.useMemo)(()=>(function(e){if(!e||"object"!=typeof e)return null;let t=e.details;if(!t||"object"!=typeof t)return null;let n=e=>Array.isArray(e)?e.filter(e=>"string"==typeof e):[],r=n(t.readFiles),i=n(t.modifiedFiles);return 0===r.length&&0===i.length?null:{readFiles:r,modifiedFiles:i}})(e.details),[e.details]),l=s?.readFiles??o.readFiles,a=s?.modifiedFiles??o.modifiedFiles,d=r5(e.timestamp);return(0,r.jsx)("div",{style:{marginBottom:16},children:(0,r.jsxs)("div",{style:{border:"1px solid var(--border)",borderLeft:"2px solid var(--accent)",borderRadius:8,overflow:"hidden",background:"var(--bg)"},children:[(0,r.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:8,padding:"7px 10px",borderBottom:"1px solid var(--border)",background:"var(--bg-panel)",color:"var(--text-muted)"},children:[(0,r.jsxs)("svg",{width:"12",height:"12",viewBox:"0 0 24 24",fill:"none",stroke:"var(--accent)",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":"true",children:[(0,r.jsx)("line",{x1:"6",y1:"3",x2:"6",y2:"15"}),(0,r.jsx)("circle",{cx:"18",cy:"6",r:"3"}),(0,r.jsx)("circle",{cx:"6",cy:"18",r:"3"}),(0,r.jsx)("path",{d:"M18 9a9 9 0 0 1-9 9"})]}),(0,r.jsx)("span",{style:{fontFamily:"var(--font-mono)",fontSize:11,fontWeight:650},children:t("message_branchSummary")}),d&&(0,r.jsx)("span",{style:{marginLeft:"auto",color:"var(--text-dim)",fontSize:10},children:d})]}),(0,r.jsxs)("div",{style:{padding:"11px 13px 12px"},children:[(0,r.jsx)("div",{style:{marginBottom:10,color:"var(--text-muted)",fontSize:13,lineHeight:1.5},children:t("message_branchSummaryDescription")}),o.body?(0,r.jsx)(rT,{className:"markdown-compaction-message",children:o.body}):(0,r.jsxs)("span",{style:{color:"var(--text-dim)",fontSize:12},children:["(",t("message_noSummary"),")"]}),(0,r.jsx)(iS,{readFiles:l,modifiedFiles:a})]})]})})}function iS({readFiles:e,modifiedFiles:t}){let{t:n}=(0,ea.s9)();if(0===e.length+t.length)return null;let i=[];return e.length>0&&i.push(`${e.length} ${n("message_read").toLowerCase()}`),t.length>0&&i.push(`${t.length} ${n("message_modified").toLowerCase()}`),(0,r.jsxs)("details",{className:"compaction-file-details",children:[(0,r.jsxs)("summary",{children:[n("message_fileContext"),": ",i.join(", ")]}),t.length>0&&(0,r.jsx)(iC,{title:n("message_modifiedFiles"),files:t}),e.length>0&&(0,r.jsx)(iC,{title:n("message_readFiles"),files:e})]})}function iC({title:e,files:t}){return(0,r.jsxs)("div",{className:"compaction-file-section",children:[(0,r.jsx)("div",{className:"compaction-file-title",children:e}),(0,r.jsx)("ul",{className:"compaction-file-list",children:t.map(e=>(0,r.jsx)("li",{children:e},e))})]})}let i_={result:{color:"var(--status-success)",border:"var(--status-success-border)",background:"var(--status-success-bg)",Icon:nE.A},warning:{color:"var(--status-warning)",border:"var(--status-warning-border)",background:"var(--status-warning-bg)",Icon:nz.A},error:{color:"var(--error-text)",border:"var(--status-danger-border)",background:"var(--status-danger-bg)",Icon:nL.A},output:{color:"var(--accent)",border:"var(--border)",background:"var(--bg)",Icon:nj.A}};function iI({message:e,activity:t}){let{t:n}=(0,ea.s9)(),o=it(),[s,l]=(0,i.useState)(!1),a=r5(e.timestamp),{color:d,border:c,background:u,Icon:p}=i_[t.kind],h=""!==t.content.trim(),g=function(e){if(!e)return[];let t=[];for(let[n,r]of Object.entries(e)){if(t.length>=4)break;"string"==typeof r?t.push([n,r]):("number"==typeof r||"boolean"==typeof r)&&t.push([n,String(r)])}return t}(t.metadata);return(0,r.jsx)("div",{style:{marginBottom:16},children:(0,r.jsxs)("section",{"aria-label":`${t.kind}: ${t.title}`,style:{border:`1px solid ${c}`,borderLeft:`2px solid ${d}`,borderRadius:8,overflow:"hidden",background:u},children:[(0,r.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:8,padding:"7px 10px",borderBottom:"1px solid var(--border)",background:"var(--bg-panel)",minWidth:0},children:[(0,r.jsx)("span",{style:{display:"flex",color:d,flexShrink:0},"aria-hidden":"true",children:(0,r.jsx)(p,{size:12,strokeWidth:1.8})}),(0,r.jsx)("span",{style:{color:d,fontFamily:"var(--font-mono)",fontSize:10,fontWeight:650,letterSpacing:.6,textTransform:"uppercase",flexShrink:0},children:t.kind}),(0,r.jsx)("span",{style:{color:"var(--text)",fontSize:13,fontWeight:600,minWidth:0,overflowWrap:"anywhere"},children:t.title}),a&&(0,r.jsx)("span",{style:{marginLeft:"auto",color:"var(--text-dim)",fontSize:10,flexShrink:0},children:a})]}),h&&(0,r.jsx)("pre",{tabIndex:0,style:{margin:0,padding:"8px 12px",maxHeight:o,overflow:"auto",overscrollBehavior:"auto",touchAction:"pan-y",color:"var(--text)",fontSize:12,lineHeight:1.6,whiteSpace:"pre-wrap",wordBreak:"break-word"},children:t.content}),(0,r.jsxs)("div",{style:{display:"flex",alignItems:"center",flexWrap:"wrap",gap:"4px 10px",padding:"4px 9px",borderTop:"1px solid var(--border)",background:"var(--bg-subtle)",color:"var(--text-dim)",fontFamily:"var(--font-mono)",fontSize:10},children:[(0,r.jsx)("button",{onClick:()=>{e2(h?t.content:t.title).then(()=>{l(!0),setTimeout(()=>l(!1),1500)})},title:n("message_copy"),"aria-label":n("message_copy"),style:{display:"flex",alignItems:"center",justifyContent:"center",padding:"3px 7px",border:"none",background:"none",color:s?"var(--accent)":"var(--text-dim)",cursor:"pointer"},children:s?(0,r.jsx)(ny.A,{size:11,strokeWidth:1.8}):(0,r.jsx)(nb.A,{size:11,strokeWidth:1.8})}),t.source&&(0,r.jsx)("span",{style:{overflowWrap:"anywhere"},children:t.source}),t.requestId&&(0,r.jsx)("span",{style:{overflowWrap:"anywhere"},title:t.requestId,children:t.requestId}),g.map(([e,t])=>(0,r.jsxs)("span",{style:{overflowWrap:"anywhere"},children:[e,"=",t]},e))]})]})})}function iR({message:e,cwd:t,onOpenFile:n}){var o,s,l;let a,{t:d}=(0,ea.s9)(),c=!1===e.display,[u,p]=(0,i.useState)(!c),[h,g]=(0,i.useState)(!1),[f,x]=(0,i.useState)(!1),m=iT(e.content),v="string"==typeof(o=e.content)?[]:o.filter(e=>"image"===e.type),y=void 0!==e.details,b=y?function(e){try{return JSON.stringify(e,null,2)}catch{return String(e)}}(e.details):"",w=e.customType||d("message_extensionDefaultType"),k=r5(e.timestamp),j=ia(e.renderedLines);return(0,r.jsx)("div",{style:{marginBottom:16},children:(0,r.jsxs)("div",{style:{border:"1px solid var(--border)",borderRadius:8,overflow:"hidden",background:c?"var(--bg-subtle)":"var(--bg)",opacity:j||!c||u?1:.82},children:[(0,r.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:8,padding:"7px 10px",borderBottom:"1px solid var(--border)",background:"var(--bg-panel)",color:"var(--text-muted)",fontSize:12},children:[(0,r.jsx)("span",{style:{color:"var(--text-muted)",fontFamily:"var(--font-mono)",fontSize:11,fontWeight:650},children:w}),c&&(0,r.jsx)("span",{style:{color:"var(--text-dim)",fontSize:11},children:d("message_hiddenExtensionMessage")}),k&&(0,r.jsx)("span",{style:{marginLeft:"auto",color:"var(--text-dim)",fontSize:10},children:k})]}),j?(0,r.jsx)("pre",{style:{margin:0,padding:"6px 9px",color:"var(--text-muted)",fontFamily:"var(--font-mono)",fontSize:12,lineHeight:1.55,whiteSpace:"pre-wrap",overflowWrap:"anywhere"},children:id(j,"custom-rendered")}):u?(0,r.jsxs)("div",{style:{padding:"6px 9px"},children:[v.length>0&&(0,r.jsx)("div",{style:{display:"flex",gap:6,flexWrap:"wrap",marginBottom:8*!!m},children:v.map((e,t)=>{let n=rb(e);return n?(0,r.jsx)(rC,{src:n.src,fullSrc:n.src,mimeType:n.mimeType,alt:"",maxWidth:240,maxHeight:240},t):null})}),m?(0,r.jsx)(rT,{className:"markdown-custom-message",cwd:t,onOpenFile:n,children:m}):(0,r.jsx)("span",{style:{color:"var(--text-dim)",fontSize:12},children:d("message_noMessages")})]}):(0,r.jsx)("button",{onClick:()=>p(!0),style:{display:"block",width:"100%",padding:"8px 10px",border:"none",background:"transparent",color:"var(--text-dim)",cursor:"pointer",fontSize:12,textAlign:"left"},children:m?(s=m,l=d("message_noExtensionMessage"),(a=s.replace(/\s+/g," ").trim())?a.length>140?`${a.slice(0,140)}...`:a:l):d("message_showExtensionMessage")}),!j&&(0,r.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:8,padding:"4px 9px",borderTop:"1px solid var(--border)",background:"var(--bg-subtle)"},children:[m||b?(0,r.jsx)("button",{onClick:()=>{e2(m||b).then(()=>{x(!0),setTimeout(()=>x(!1),1500)})},title:d("message_copy"),"aria-label":d("message_copy"),style:{display:"flex",alignItems:"center",justifyContent:"center",padding:"3px 7px",border:"none",background:"none",color:f?"var(--accent)":"var(--text-dim)",cursor:"pointer"},children:f?(0,r.jsx)(ny.A,{size:11,strokeWidth:1.8}):(0,r.jsx)(nb.A,{size:11,strokeWidth:1.8})}):null,(y||c)&&(0,r.jsx)("button",{onClick:()=>{c?p(e=>!e):g(e=>!e)},title:d(c?u?"message_collapse":"message_expand":h?"message_hideDetails":"message_showDetails"),"aria-label":d(c?u?"message_collapse":"message_expand":h?"message_hideDetails":"message_showDetails"),style:{display:"flex",alignItems:"center",justifyContent:"center",marginLeft:"auto",padding:"3px 7px",border:"none",background:"none",color:"var(--text-dim)",cursor:"pointer"},children:(c?u:h)?(0,r.jsx)(nW.A,{size:12,strokeWidth:1.8}):(0,r.jsx)(nA.A,{size:12,strokeWidth:1.8})})]}),!j&&y&&(c&&u||!c&&h)&&(0,r.jsx)("pre",{style:{margin:0,padding:"9px 10px",borderTop:"1px solid var(--border)",background:"var(--bg)",color:"var(--text-muted)",fontSize:12,lineHeight:1.5,whiteSpace:"pre-wrap",wordBreak:"break-word",maxHeight:"min(360px, 45vh)",overflow:"auto",overscrollBehavior:"auto",touchAction:"pan-y",fontFamily:"var(--font-mono)"},children:b})]})})}function iT(e){return"string"==typeof e?e:e.filter(e=>"text"===e.type).map(e=>e.text).join("\n")}function iM({message:e,sessionId:t}){let{t:n}=(0,ea.s9)(),[o,s]=(0,i.useState)(null),[l,a]=(0,i.useState)(!1),[d,c]=(0,i.useState)(null),u=!e.output&&void 0===e.exitCode&&!e.cancelled,p=e.cancelled||void 0!==e.exitCode&&0!==e.exitCode,h=t&&e.fullOutputPath?`/api/agent/${encodeURIComponent(t)}/bash-output?path=${encodeURIComponent(e.fullOutputPath)}`:null,g=e.truncated&&h&&null===o,f=o??e.output;async function x(){if(h){a(!0),c(null);try{let e=await fetch(h),t=await e.json();t.success?s(t.data?.output??""):c(t.error??"failed")}catch(e){c(String(e))}finally{a(!1)}}}let m=e.excludeFromContext?"bash (local)":"bash",v={type:"toolCall",toolCallId:`bash-${e.timestamp??""}`,toolName:m,input:{command:e.command}},y=u?void 0:{role:"toolResult",toolCallId:v.toolCallId,toolName:m,content:f?[{type:"text",text:f}]:[],isError:p,timestamp:e.timestamp};return(0,r.jsxs)("div",{style:{margin:"6px 0"},children:[(0,r.jsx)(il,{block:v,result:y,pending:u,startedAt:u?e.timestamp:void 0}),e.truncated&&h&&(0,r.jsxs)("div",{style:{padding:"4px 10px",fontSize:11,marginTop:-1},children:[g&&(0,r.jsx)("button",{onClick:x,disabled:l,style:{background:"none",border:"none",color:"var(--accent)",cursor:l?"default":"pointer",fontSize:11,padding:0,textDecoration:"underline"},children:n(l?"message_loadingOutput":"message_viewFullOutput")}),(0,r.jsx)("a",{href:`${h}&download=1`,style:{marginLeft:10*!!g,color:"var(--accent)",fontSize:11,textDecoration:"underline"},children:n("message_downloadFullOutput")}),d&&(0,r.jsxs)("span",{style:{marginLeft:6,color:"var(--text-dim)",fontSize:11},children:["(",d,")"]})]})]})}function iE(e){return"string"==typeof e&&e&&"auto"!==e?e:null}let iz=["off","minimal","low","medium","high","xhigh","max"];function iL(e){let t=/(?:^|\s)@"([^"\n]*)$/.exec(e);if(t)return{start:e.length-(t[1].length+2),query:t[1],quoted:!0};let n=/(?:^|\s)@([^\s"]*)$/.exec(e);return n?{start:e.length-(n[1].length+1),query:n[1],quoted:!1}:null}function iW(e){let t=0;for(let n=0;n<e.length;n++)"/"===e[n]&&t++;return t}function iA(e,t){if(!e)return!0;let n=0;for(let r=0;r<t.length&&n<e.length;r++)t[r]===e[n]&&n++;return n===e.length}function iP(e,t){let n=t?`${e}/`:e;return n.includes(" ")?`@"${n}" `:`@${n} `}let i$="var(--text-dim)";function iH({size:e=14,open:t=!1}){return t?(0,r.jsxs)("svg",{width:e,height:e,viewBox:"0 0 16 16",fill:"none",children:[(0,r.jsx)("path",{d:"M1 4.5A1 1 0 0 1 2 3.5H5.5L7 5h7.5v1H1V4.5Z",fill:i$}),(0,r.jsx)("path",{d:"M1 6h14.5L14 13H2L1 6Z",stroke:i$,strokeWidth:"1",fill:i$,fillOpacity:"0.12"})]}):(0,r.jsx)("svg",{width:e,height:e,viewBox:"0 0 16 16",fill:"none",children:(0,r.jsx)("path",{d:"M1 4.5A1 1 0 0 1 2 3.5H5.5L7 5H14a1 1 0 0 1 1 1v6a1 1 0 0 1-1 1H2a1 1 0 0 1-1-1V4.5Z",stroke:i$,strokeWidth:"1",fill:i$,fillOpacity:"0.1"})})}function iF({size:e=14}){return(0,r.jsxs)("svg",{width:e,height:e,viewBox:"0 0 16 16",fill:"none",children:[(0,r.jsx)("path",{d:"M3 2h7l3 3v9H3V2Z",stroke:i$,strokeWidth:"1",fill:i$,fillOpacity:"0.08"}),(0,r.jsx)("path",{d:"M10 2v3h3",stroke:i$,strokeWidth:"1",fill:"none",strokeLinejoin:"round"})]})}function iD({label:e,size:t=14}){let n=t/14;return(0,r.jsxs)("svg",{width:t,height:t,viewBox:"0 0 14 14",fill:"none",children:[(0,r.jsx)("path",{d:"M2.5 1h6l3 3v9h-9V1Z",stroke:i$,strokeWidth:"0.9",fill:i$,fillOpacity:"0.07",strokeLinejoin:"round"}),(0,r.jsx)("path",{d:"M8.5 1v3h3",stroke:i$,strokeWidth:"0.9",fill:"none",strokeLinejoin:"round"}),(0,r.jsx)("text",{x:"7",y:"9.5",textAnchor:"middle",fontSize:3.4*n,fontFamily:"var(--font-mono), monospace",fontWeight:"600",fill:i$,letterSpacing:"0",children:e})]})}function iN({size:e=14}){return(0,r.jsx)(iD,{label:"TS",size:e})}function iB({size:e=14}){return(0,r.jsx)(iD,{label:"TSX",size:e})}function iO({size:e=14}){return(0,r.jsx)(iD,{label:"JS",size:e})}function iU({size:e=14}){return(0,r.jsx)(iD,{label:"JSX",size:e})}function iq({size:e=14}){return(0,r.jsx)(iD,{label:"PY",size:e})}function iK({size:e=14}){return(0,r.jsx)(iD,{label:"{}",size:e})}function iV({size:e=14}){return(0,r.jsx)(iD,{label:"CSS",size:e})}function iJ({size:e=14}){return(0,r.jsx)(iD,{label:"SC",size:e})}function iY({size:e=14}){return(0,r.jsx)(iD,{label:"HTM",size:e})}function iG({size:e=14}){return(0,r.jsxs)("svg",{width:e,height:e,viewBox:"0 0 14 14",fill:"none",children:[(0,r.jsx)("path",{d:"M2.5 1h6l3 3v9h-9V1Z",stroke:i$,strokeWidth:"0.9",fill:i$,fillOpacity:"0.07",strokeLinejoin:"round"}),(0,r.jsx)("path",{d:"M8.5 1v3h3",stroke:i$,strokeWidth:"0.9",fill:"none",strokeLinejoin:"round"}),(0,r.jsx)("path",{d:"M3.5 9.5V7l1.5 1.5L6.5 7v2.5",stroke:i$,strokeWidth:"0.9",strokeLinecap:"round",strokeLinejoin:"round",fill:"none"}),(0,r.jsx)("path",{d:"M8 7v2.5M7 9l1 1.5 1-1.5",stroke:i$,strokeWidth:"0.9",strokeLinecap:"round",strokeLinejoin:"round",fill:"none"})]})}function iZ({size:e=14}){return(0,r.jsx)(iD,{label:"YML",size:e})}function iX({size:e=14}){return(0,r.jsx)(iD,{label:"TOM",size:e})}function iQ({size:e=14}){return(0,r.jsxs)("svg",{width:e,height:e,viewBox:"0 0 14 14",fill:"none",children:[(0,r.jsx)("path",{d:"M2.5 1h6l3 3v9h-9V1Z",stroke:i$,strokeWidth:"0.9",fill:i$,fillOpacity:"0.07",strokeLinejoin:"round"}),(0,r.jsx)("path",{d:"M8.5 1v3h3",stroke:i$,strokeWidth:"0.9",fill:"none",strokeLinejoin:"round"}),(0,r.jsx)("path",{d:"M4 7.5l2 1.5-2 1.5",stroke:i$,strokeWidth:"0.95",strokeLinecap:"round",strokeLinejoin:"round",fill:"none"}),(0,r.jsx)("path",{d:"M7.5 10.5h2.5",stroke:i$,strokeWidth:"0.95",strokeLinecap:"round"})]})}function i0({size:e=14}){return(0,r.jsx)(iD,{label:"RS",size:e})}function i1({size:e=14}){return(0,r.jsx)(iD,{label:"GO",size:e})}function i2({size:e=14}){return(0,r.jsx)(iD,{label:"SQL",size:e})}function i4({size:e=14}){return(0,r.jsx)(iD,{label:"GQL",size:e})}function i6({size:e=14}){return(0,r.jsx)(iD,{label:"TF",size:e})}function i5({size:e=14}){return(0,r.jsxs)("svg",{width:e,height:e,viewBox:"0 0 14 14",fill:"none",children:[(0,r.jsx)("path",{d:"M2.5 1h6l3 3v9h-9V1Z",stroke:i$,strokeWidth:"0.9",fill:i$,fillOpacity:"0.07",strokeLinejoin:"round"}),(0,r.jsx)("path",{d:"M8.5 1v3h3",stroke:i$,strokeWidth:"0.9",fill:"none",strokeLinejoin:"round"}),(0,r.jsx)("rect",{x:"3.5",y:"6.5",width:"2",height:"1.5",rx:"0.3",stroke:i$,strokeWidth:"0.8"}),(0,r.jsx)("rect",{x:"6",y:"6.5",width:"2",height:"1.5",rx:"0.3",stroke:i$,strokeWidth:"0.8"}),(0,r.jsx)("rect",{x:"3.5",y:"8.5",width:"2",height:"1.5",rx:"0.3",stroke:i$,strokeWidth:"0.8"})]})}function i8({size:e=14}){return(0,r.jsxs)("svg",{width:e,height:e,viewBox:"0 0 14 14",fill:"none",children:[(0,r.jsx)("path",{d:"M2.5 1h6l3 3v9h-9V1Z",stroke:i$,strokeWidth:"0.9",fill:i$,fillOpacity:"0.07",strokeLinejoin:"round"}),(0,r.jsx)("path",{d:"M8.5 1v3h3",stroke:i$,strokeWidth:"0.9",fill:"none",strokeLinejoin:"round"}),(0,r.jsx)("circle",{cx:"5.5",cy:"8.5",r:"1.5",stroke:i$,strokeWidth:"0.9"}),(0,r.jsx)("path",{d:"M7 8.5h2.5M8.5 8.5v1.5",stroke:i$,strokeWidth:"0.9",strokeLinecap:"round"})]})}function i3({size:e=14}){return(0,r.jsxs)("svg",{width:e,height:e,viewBox:"0 0 14 14",fill:"none",children:[(0,r.jsx)("path",{d:"M2.5 1h6l3 3v9h-9V1Z",stroke:i$,strokeWidth:"0.9",fill:i$,fillOpacity:"0.07",strokeLinejoin:"round"}),(0,r.jsx)("path",{d:"M8.5 1v3h3",stroke:i$,strokeWidth:"0.9",fill:"none",strokeLinejoin:"round"}),(0,r.jsx)("circle",{cx:"5",cy:"6.5",r:"1",stroke:i$,strokeWidth:"0.85"}),(0,r.jsx)("circle",{cx:"9",cy:"6.5",r:"1",stroke:i$,strokeWidth:"0.85"}),(0,r.jsx)("circle",{cx:"5",cy:"10",r:"1",stroke:i$,strokeWidth:"0.85"}),(0,r.jsx)("path",{d:"M5 7.5V9",stroke:i$,strokeWidth:"0.85",strokeLinecap:"round"}),(0,r.jsx)("path",{d:"M9 7.5v.5a2 2 0 0 1-2 2H6",stroke:i$,strokeWidth:"0.85",strokeLinecap:"round",fill:"none"})]})}function i9({size:e=14}){return(0,r.jsxs)("svg",{width:e,height:e,viewBox:"0 0 14 14",fill:"none",children:[(0,r.jsx)("path",{d:"M2.5 1h6l3 3v9h-9V1Z",stroke:i$,strokeWidth:"0.9",fill:i$,fillOpacity:"0.07",strokeLinejoin:"round"}),(0,r.jsx)("path",{d:"M8.5 1v3h3",stroke:i$,strokeWidth:"0.9",fill:"none",strokeLinejoin:"round"}),(0,r.jsx)("rect",{x:"4.5",y:"8.5",width:"5",height:"3",rx:"0.6",stroke:i$,strokeWidth:"0.9"}),(0,r.jsx)("path",{d:"M5.5 8.5V7.5a1.5 1.5 0 0 1 3 0v1",stroke:i$,strokeWidth:"0.9",strokeLinecap:"round",fill:"none"})]})}function i7({size:e=14}){return(0,r.jsx)(iD,{label:"DOC",size:e})}function oe({size:e=14}){return(0,r.jsx)(iD,{label:"PDF",size:e})}function ot({size:e=14}){return(0,r.jsxs)("svg",{width:e,height:e,viewBox:"0 0 14 14",fill:"none",children:[(0,r.jsx)("path",{d:"M2.5 1h6l3 3v9h-9V1Z",stroke:i$,strokeWidth:"0.9",fill:i$,fillOpacity:"0.07",strokeLinejoin:"round"}),(0,r.jsx)("path",{d:"M8.5 1v3h3",stroke:i$,strokeWidth:"0.9",fill:"none",strokeLinejoin:"round"}),(0,r.jsx)("circle",{cx:"7",cy:"8.5",r:"1.3",stroke:i$,strokeWidth:"0.9"}),(0,r.jsx)("path",{d:"M7 6.5v.7M7 10.3v.7M5 8.5h.7M8.3 8.5H9M5.5 6.9l.5.5M8.5 9.6l-.5-.5M5.5 10.1l.5-.5M8.5 7.4l-.5.5",stroke:i$,strokeWidth:"0.8",strokeLinecap:"round"})]})}function on(e,t=14){let n=e.toLowerCase(),i=n.split(".").pop()??"";if("dockerfile"===n||n.startsWith("dockerfile."))return(0,r.jsx)(i5,{size:t});if(".env"===n||n.startsWith(".env."))return(0,r.jsx)(i8,{size:t});if(".gitignore"===n||".gitattributes"===n||".gitmodules"===n)return(0,r.jsx)(i3,{size:t});if("package-lock.json"===n||"yarn.lock"===n||"bun.lock"===n||"pnpm-lock.yaml"===n||"cargo.lock"===n)return(0,r.jsx)(i9,{size:t});if(n.endsWith(".config.ts")||n.endsWith(".config.js")||n.endsWith(".config.mjs")||n.endsWith(".config.cjs")||[".eslintrc",".eslintrc.js",".eslintrc.json",".eslintrc.yml","eslint.config.mjs","eslint.config.js"].includes(n))return(0,r.jsx)(ot,{size:t});switch(i){case"ts":return(0,r.jsx)(iN,{size:t});case"tsx":return(0,r.jsx)(iB,{size:t});case"js":case"mjs":case"cjs":return(0,r.jsx)(iO,{size:t});case"jsx":return(0,r.jsx)(iU,{size:t});case"py":return(0,r.jsx)(iq,{size:t});case"json":case"jsonl":return(0,r.jsx)(iK,{size:t});case"css":case"less":return(0,r.jsx)(iV,{size:t});case"scss":return(0,r.jsx)(iJ,{size:t});case"html":case"htm":return(0,r.jsx)(iY,{size:t});case"md":case"mdx":return(0,r.jsx)(iG,{size:t});case"yaml":case"yml":return(0,r.jsx)(iZ,{size:t});case"toml":return(0,r.jsx)(iX,{size:t});case"sh":case"bash":case"zsh":case"fish":return(0,r.jsx)(iQ,{size:t});case"rs":return(0,r.jsx)(i0,{size:t});case"go":return(0,r.jsx)(i1,{size:t});case"sql":return(0,r.jsx)(i2,{size:t});case"graphql":case"gql":return(0,r.jsx)(i4,{size:t});case"tf":case"hcl":return(0,r.jsx)(i6,{size:t});case"docx":return(0,r.jsx)(i7,{size:t});case"pdf":return(0,r.jsx)(oe,{size:t});case"lock":return(0,r.jsx)(i9,{size:t});default:return(0,r.jsx)(iF,{size:t})}}let or=(e,t=0)=>Number.isFinite(e)?e:t,oi=i.useLayoutEffect;function oo(e){let{open:t,anchorRef:n,overlayRef:r,preferredPlacement:o="below",margin:s=8,gap:l=4,minHeight:a,maxHeight:d,maxWidth:c,align:u,width:p,minWidth:h,pollIntervalMs:g=250}=e,[f,x]=(0,i.useState)(null),m=(0,i.useRef)(0),v=(0,i.useCallback)(()=>{let e,t=n.current,i=r.current;if(!t||!i)return;let p=t.getBoundingClientRect();if(0===p.width&&0===p.height)return void x(e=>null===e?e:null);let h=function(e){let{anchor:t,desiredSize:n,viewport:r}=e,i=Math.max(0,or(e.margin??8)),o=Math.max(0,or(e.gap??4)),s=Math.max(0,or(e.minHeight??0)),l=Math.max(0,or(r.offsetLeft)),a=Math.max(0,or(r.offsetTop)),d=l+i,c=a+i,u=l+Math.max(0,or(r.width))-i,p=a+Math.max(0,or(r.height))-i,h=Math.max(0,u-d),g=Math.max(0,p-c),f=Math.min(g,Math.max(0,or(t.top)-o-c)),x=Math.min(g,Math.max(0,p-or(t.bottom)-o)),m=e.preferredPlacement??"below",v="below"===m?"above":"below",y=Math.max(s,Math.max(0,or(n.height))),b=("below"===m?x:f)>=y?m:("below"===v?x:f)>=y?v:x>=f?"below":"above",w=Math.max(0,"below"===b?x:f),k=Math.max(0,or(n.width)),j=Math.min(Math.max("end"===e.align?or(t.right)-k:or(t.left),d),Math.max(d,u-k)),S=Math.min(Math.max("below"===b?or(t.bottom)+o:or(t.top)-o-Math.max(0,or(n.height)),c),Math.max(c,p-Math.min(w,Math.max(0,or(n.height)))));return{top:or(S,c),left:or(j,d),maxHeight:w,maxWidth:h,placement:b}}({anchor:{top:p.top,left:p.left,right:p.right,bottom:p.bottom},desiredSize:{width:i.offsetWidth,height:Math.min(i.offsetHeight,d??1/0)},viewport:(e=window.visualViewport)?{offsetLeft:e.offsetLeft,offsetTop:e.offsetTop,width:e.width,height:e.height}:{offsetLeft:0,offsetTop:0,width:window.innerWidth,height:window.innerHeight},margin:s,gap:l,minHeight:a,preferredPlacement:o,align:u}),g={top:h.top,left:h.left,maxHeight:void 0===d?h.maxHeight:Math.min(h.maxHeight,d),maxWidth:void 0===c?h.maxWidth:Math.min(h.maxWidth,c),anchorWidth:p.width,placement:h.placement};x(e=>null!==e&&e.top===g.top&&e.left===g.left&&e.maxHeight===g.maxHeight&&e.maxWidth===g.maxWidth&&e.anchorWidth===g.anchorWidth&&e.placement===g.placement?e:g)},[n,r,s,l,a,d,c,o,u]);return oi(()=>{if(!t)return void x(null);v();let e=()=>{m.current||(m.current=requestAnimationFrame(()=>{m.current=0,v()}))};window.addEventListener("resize",e),window.addEventListener("scroll",e,!0);let i=window.visualViewport;i?.addEventListener("resize",e),i?.addEventListener("scroll",e);let o=new ResizeObserver(e),s=n.current,l=r.current;s&&o.observe(s),l&&o.observe(l);let a=g>0?window.setInterval(e,g):0;return()=>{window.removeEventListener("resize",e),window.removeEventListener("scroll",e),i?.removeEventListener("resize",e),i?.removeEventListener("scroll",e),o.disconnect(),a&&window.clearInterval(a),m.current&&(cancelAnimationFrame(m.current),m.current=0)}},[t,v,n,r,g]),{style:(0,i.useMemo)(()=>{if(!f)return{position:"fixed",top:0,left:0,visibility:"hidden"};let e={position:"fixed",top:f.top,left:f.left,maxHeight:f.maxHeight,maxWidth:f.maxWidth,visibility:"visible"},t=e=>Math.max(0,Math.min(e,f.maxWidth));"anchor"===p?e.width=t(f.anchorWidth):"max"===p?e.width=f.maxWidth:"number"==typeof p&&(e.width=t(p));let n="anchor"===h?f.anchorWidth:"number"==typeof h?h:void 0;return void 0!==n&&(e.minWidth=Math.min(n,f.maxWidth)),e},[f,p,h]),placement:f?.placement??o,ready:null!==f}}function os(e,t,n){return new Promise(r=>{e.toBlob(e=>r(e&&e.type===t?e:null),t,n)})}async function ol(e){if(e.size<=262144)return null;let t=e.type.toLowerCase();if("image/gif"===t||!oa.has(t)||"u"<typeof document)return null;let n=await ou(e),r=n.naturalWidth,i=n.naturalHeight;if(!r||!i)return null;let o=Math.min(1,1024/r,1024/i),s=op(r,i,o),l=document.createElement("canvas");l.width=s.width,l.height=s.height;let a=l.getContext("2d");if(!a)return null;a.drawImage(n,0,0,s.width,s.height);let d=await os(l,"image/webp",.82).catch(()=>null);if(d&&d.size<e.size)return{blob:d,mimeType:"image/webp"};let c=await os(l,t,"image/png"===t?void 0:.82).catch(()=>null);return c&&c.size<e.size?{blob:c,mimeType:t}:null}let oa=new Set(["image/gif","image/jpeg","image/png","image/webp"]);function od(e){return new Promise((t,n)=>{let r=new FileReader;r.onload=()=>{let e="string"==typeof r.result?r.result:"";e?t(e):n(Error("image data is empty"))},r.onerror=()=>n(r.error??Error("image read failed")),r.readAsDataURL(e)})}function oc(e){let t=e.indexOf(",");if(t<0)return null;let n=e.slice(0,t),r=e.slice(t+1),i=/^data:(image\/[a-z0-9.+-]+);base64$/i.exec(n);return i&&r?{mimeType:i[1].toLowerCase(),data:r}:null}function ou(e){let t=URL.createObjectURL(e);return new Promise((e,n)=>{let r=new Image;r.onload=()=>{URL.revokeObjectURL(t),e(r)},r.onerror=()=>{URL.revokeObjectURL(t),n(Error("image decode failed"))},r.src=t})}function op(e,t,n){return{width:Math.max(1,Math.round(e*n)),height:Math.max(1,Math.round(t*n))}}async function oh(e){let t=e.type.toLowerCase(),n=await ou(e),r=n.naturalWidth,i=n.naturalHeight;if(!r||!i)throw Error("image has no dimensions");if(oa.has(t)&&r<=2e3&&i<=2e3){let t=oc(await od(e));if(t&&t.data.length<=4194304)return{...t,blob:e}}if("u"<typeof document)throw Error("image canvas is unavailable");let o=document.createElement("canvas"),s=Math.min(1,2e3/r,2e3/i),l=[.84,.74,.64,.54,.44];for(let e=0;e<10;e+=1){let e=op(r,i,s);o.width=e.width,o.height=e.height;let t=o.getContext("2d");if(!t)throw Error("image canvas is unavailable");for(let r of(t.fillStyle="#ffffff",t.fillRect(0,0,e.width,e.height),t.drawImage(n,0,0,e.width,e.height),l)){let e=await function(e,t){return new Promise((n,r)=>{e.toBlob(e=>e?n(e):r(Error("image encode failed")),"image/jpeg",t)})}(o,r),t=oc(await od(e));if(t&&t.data.length<=4194304)return{...t,blob:e}}s*=.75}throw Error("image is too large to prepare for the selected model")}function og(e){return e.type.startsWith("image/")&&"image/svg+xml"!==e.type}async function of(e,t,n){let r=n||e.type||"application/octet-stream",i=await fetch("/api/message-media",{method:"POST",headers:{"Content-Type":r,"X-Pidance-Filename":encodeURIComponent(t||"file")},body:e}),o=await i.json().catch(()=>({}));if(!i.ok||"string"!=typeof o.path||"string"!=typeof o.storedName||"number"!=typeof o.size)throw Error(o.error??`HTTP ${i.status}`);return{path:o.path,name:o.name||t||"file",storedName:o.storedName,size:o.size,mimeType:o.mimeType||r}}function ox(e){if("number"!=typeof e||!Number.isFinite(e)||e<=0)return"";if(e>=1e6){let t=e/1e6;return`${Number.isInteger(t)?t:t.toFixed(1)}M`}return e>=1e3?`${Math.round(e/1e3)}K`:String(e)}let om=new Intl.Collator(void 0,{numeric:!0,sensitivity:"base"});function ov(e,t){return om.compare(e.name||e.modelId,t.name||t.modelId)||om.compare(e.provider,t.provider)||om.compare(e.modelId,t.modelId)}function oy(e){return e>=1e6?`${(e/1e6).toFixed(1)}M`:e>=1e3?`${Math.round(e/1e3)}k`:e.toLocaleString()}let ob=[{name:"compact",description:"input_compactCommandDescription",source:"builtin"},{name:"reload",description:"input_reloadCommandDescription",source:"builtin"},{name:"name",description:"input_nameCommandDescription",source:"builtin"},{name:"session",description:"input_sessionCommandDescription",source:"builtin"},{name:"copy",description:"input_copyCommandDescription",source:"builtin"}],ow=["builtin","extension","prompt","skill"],ok={builtin:"input_builtIn",extension:"input_extensions",prompt:"input_prompts",skill:"input_skills"},oj={builtin:0,extension:1,prompt:2,skill:3};function oS(e,t){let n=e.name.toLowerCase(),r=e.description?.toLowerCase()??"";return n===t?0:n.startsWith(t)?1:n.includes(t)?2:r.includes(t)?3:4}function oC(e){return{data:e.data,mimeType:e.mimeType,...e.original?{original:e.original}:{}}}function o_(e){return{...e,previewUrl:`data:${e.mimeType};base64,${e.data}`}}function oI(e){e.previewUrl.startsWith("blob:")&&URL.revokeObjectURL(e.previewUrl)}function oR(e,t){if(!e)return;let n=e.querySelector(`${t}[aria-checked="true"], ${t}[aria-selected="true"]`),r=e.querySelector(t);(n??r)?.focus({preventScroll:!0})}function oT({kind:e,text:t}){return(0,r.jsxs)("div",{title:t,style:{display:"flex",alignItems:"center",gap:8,padding:"3px 10px",fontSize:12,color:"var(--text-muted)",minWidth:0},children:[(0,r.jsx)("span",{style:{flexShrink:0,fontSize:10,fontFamily:"var(--font-mono)",padding:"1px 7px",borderRadius:999,border:`1px solid ${"steer"===e?"color-mix(in srgb, var(--accent) 45%, transparent)":"var(--border)"}`,color:"steer"===e?"var(--accent)":"var(--text-dim)"},children:e}),(0,r.jsx)("span",{style:{minWidth:0,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:t})]})}let oM=(0,i.forwardRef)(function({onSend:e,onAbort:t,onSteer:n,onFollowUp:o,isStreaming:s,blocked:a=!1,model:d,isAutoModelSelection:c,modelNames:u,modelList:p,modelAuthConfigured:h,onModelChange:g,onAbortCompaction:f,isCompacting:x,compactError:m,compactResult:v,thinkingLevel:y,thinkingReady:b,onThinkingLevelChange:w,defaultThinkingLevel:k,availableThinkingLevels:j,thinkingLevelMap:S,thinkingLevelMaps:C,retryInfo:_,queuedMessages:I,onRecallQueue:R,onSendQueueAsSteer:T,slashCommands:M,slashCommandsLoading:E,onLoadSlashCommands:z,onBuiltinCommand:L,onAudioUnlock:W,onPromptWithStreamingBehavior:A,footerCollapsed:P,onFooterToggle:$,draftKey:H,cwd:F},D){let N,O,U,q,K,V,{t:J}=(0,ea.s9)(),Y=nv(),[G,X]=(0,i.useState)("followUp");(0,i.useEffect)(()=>{X(B());let e=e=>{"pidance.streamingEnterDefault"===e.key&&X(B())},t=()=>X(B());return window.addEventListener("storage",e),window.addEventListener("pidance:streaming-enter-changed",t),()=>{window.removeEventListener("storage",e),window.removeEventListener("pidance:streaming-enter-changed",t)}},[]);let[Q,ee]=(0,i.useState)(()=>H?tf(H)?.value??"":""),[et,en]=(0,i.useState)(!1),[er,ei]=(0,i.useState)(!1),[eo,es]=(0,i.useState)(!0),[el,ed]=(0,i.useState)(()=>H?tf(H)?.images.map(o_)??[]:[]),[ec,eu]=(0,i.useState)(!1),[ep,eh]=(0,i.useState)(null),eg=Q.trimStart(),ef=0===el.length&&eg.startsWith("!"),ex=ef&&eg.startsWith("!!"),[em,ev]=(0,i.useState)(!1),[ey,eb]=(0,i.useState)(0),[ew,ek]=(0,i.useState)(null),[ej,eS]=(0,i.useState)(!1),[eC,e_]=(0,i.useState)(0),[eI,eR]=(0,i.useState)(null),[eT,eM]=(0,i.useState)(!1),[eE,ez]=(0,i.useState)(null),eL=(0,i.useRef)(null),eW=(0,i.useRef)(null),eA=(0,i.useRef)(null),eP=(0,i.useRef)(null),e$=(0,i.useRef)(null),eH=(0,i.useRef)(null),eF=(0,i.useRef)(null),eD=(0,i.useRef)(null),eN=(0,i.useRef)(null),eB=(0,i.useRef)(null),eO=(0,i.useRef)(!1),eU=(0,i.useRef)(0),eq=(0,i.useRef)(!1),eK=(0,i.useRef)([]),eV=(0,i.useRef)([]),eJ=(0,i.useRef)(null),eY=(0,i.useRef)(null),eG=(0,i.useRef)(H),[eZ,eX]=(0,i.useState)(null),[eQ,e0]=(0,i.useState)(null),e1=(0,i.useRef)(null),e2=(0,i.useCallback)((e,t)=>{let n=t.getBoundingClientRect(),r=n.right+6;r+120>window.innerWidth-8&&(r=Math.max(8,n.left-120-6)),e0({top:Math.max(8,Math.min(n.top,window.innerHeight-8-352)),left:r}),eX(e)},[]),e4=(0,i.useCallback)(()=>{eX(null),e0(null)},[]);(0,i.useEffect)(()=>{if(null===eZ)return;let e=e=>{let t=e.target;if(!e1.current?.contains(t)&&!t?.closest?.("[data-depth-trigger]")){if(eP.current?.contains(t))return void window.setTimeout(()=>e4(),0);e4()}};return document.addEventListener("pointerdown",e),window.addEventListener("resize",e4),window.addEventListener("scroll",e4),()=>{document.removeEventListener("pointerdown",e),window.removeEventListener("resize",e4),window.removeEventListener("scroll",e4)}},[e4,eZ]);let e6=(0,i.useCallback)(e=>{let t=[e.name];return"number"==typeof e.contextWindow&&t.push(`${J("input_modelContext")} ${ox(e.contextWindow)}`),"number"==typeof e.maxTokens&&t.push(`${J("input_modelMaxOutput")} ${ox(e.maxTokens)}`),t.join(" \xb7 ")},[J]),e5=k??"off",e8=!1!==b?y??e5:null,e3=(0,i.useCallback)((e,t)=>{var n;return n=C?.[`${e}:${t}`]??void 0,iz.filter(e=>n?.[e]!==null)},[C]),e9=(0,Z.Fd)(),e7=(0,i.useCallback)((e,t)=>{let n=(0,Z.b3)(`thinkingLevel.${e}:${t}`);return"string"==typeof n&&n?n:null},[e9]),te=(0,i.useCallback)((e,t,n)=>{(0,Z.dM)(`thinkingLevel.${e}:${t}`,n),e4(),en(!1),eA.current?.focus({preventScroll:!0}),g?.(e,t,n)},[e4,g]),tt=(0,i.useRef)(null);(0,i.useEffect)(()=>{H&&(0,Z.zo)().then(()=>{if(tt.current===H)return;tt.current=H;let e=function(e){let t=(0,Z.b3)(tg(e));if(!t||"object"!=typeof t||Array.isArray(t)||"string"!=typeof t.value)return null;let n=Array.isArray(t.images)?t.images.filter(e=>"object"==typeof e&&null!==e&&"string"==typeof e.data):[],r={value:t.value,images:n};return th(r)?null:(tu.set(e,tp(r)),r)}(H);if(!e)return;let t=tf(H);t&&(""!==t.value||t.images.length>0)||(ee(e.value),e.images.length>0&&ed(e.images.map(o_)))})},[H,ed]);let tn=(0,i.useRef)(Q),tr=(0,i.useRef)(el);tn.current=Q,tr.current=el;let ti=(0,i.useCallback)(e=>{let t=eL.current;(t?t.value:Q).trim()||(ee(e),ek(null),requestAnimationFrame(()=>{t&&(t.focus(),t.style.height="auto",t.style.height=`${Math.min(t.scrollHeight,200)}px`)}))},[Q]);(0,i.useImperativeHandle)(D,()=>({insertIfEmpty:ti,prependText(e){if(!e.trim())return;let t=eL.current,n=[e,t?t.value:Q].filter(e=>e.trim()).join("\n\n");ee(n),ek(null),requestAnimationFrame(()=>{t&&(t.focus(),t.setSelectionRange(n.length,n.length),t.style.height="auto",t.style.height=`${Math.min(t.scrollHeight,200)}px`)})},replaceText(e){let t=eL.current;ee(e),ek(null),requestAnimationFrame(()=>{if(!t)return;t.focus();let n=e.length;t.setSelectionRange(n,n),t.style.height="auto",t.style.height=`${Math.min(t.scrollHeight,200)}px`})},insertText(e){let t=eL.current;if(!t)return void ee(t=>t+(t?" ":"")+e);let n=t.selectionStart??t.value.length,r=t.selectionEnd??t.value.length,i=t.value.slice(0,n),o=t.value.slice(r),s=i.length>0&&!i.endsWith(" ")?" ":"";ee(i+s+e+o),ek(null),requestAnimationFrame(()=>{if(!t)return;let r=n+s.length+e.length;t.setSelectionRange(r,r),t.focus(),t.style.height="auto",t.style.height=`${Math.min(t.scrollHeight,200)}px`})},addImages(e){td(e)}}));let[to,ts]=(0,i.useState)([]),tl=(0,i.useRef)(to);tl.current=to;let ta=(0,i.useCallback)(async e=>{let t=e.filter(og);if(t.length){eu(!0),eh(null);try{let e=await Promise.all(t.map(async e=>{let[t,n]=await Promise.all([oh(e),of(e,e.name,e.type)]),r=t.blob===e?await ol(e):null,i=r?.blob??t.blob,o=r?.mimeType??t.mimeType,s="image/webp"===o?"webp":"image/png"===o?"png":"jpg",l=t.blob!==e||r?await of(i,`${e.name}.preview.${s}`,o):n;return{data:t.data,mimeType:t.mimeType,previewUrl:URL.createObjectURL(e),original:{path:n.path,name:n.name,mimeType:n.mimeType,size:n.size,previewPath:l.path}}}));ed(t=>[...t,...e])}catch{eh(J("input_imagePrepareFailed"))}finally{eu(!1)}}},[s,J]),td=(0,i.useCallback)(async e=>{if(s||0===e.length)return;let t=e.filter(og),n=e.filter(e=>!og(e));if(t.length&&await ta(t),0===n.length)return;let r=n.map(e=>({id:`up-${Date.now().toString(36)}-${Math.random().toString(36).slice(2,8)}`,name:e.name,mimeType:e.type||"application/octet-stream",size:e.size,status:"uploading"}));ts(e=>[...e,...r]),await Promise.all(n.map(async(e,t)=>{let n=r[t].id;try{let{path:t,name:r}=await of(e,e.name,e.type);ts(e=>e.map(e=>e.id===n?{...e,path:t,name:r,status:"ready"}:e))}catch(t){let e=t instanceof Error?t.message:String(t);ts(t=>t.map(t=>t.id===n?{...t,status:"error",error:e}:t))}}))},[s,ta]),tc=(0,i.useCallback)(e=>{ed(t=>{let n=[...t],[r]=n.splice(e,1);return r&&oI(r),n})},[]),tv=(0,i.useCallback)(e=>{ts(t=>t.filter(t=>t.id!==e))},[]),ty=(0,i.useCallback)(()=>{ed(e=>(e.forEach(oI),[]))},[]),tb=(0,i.useCallback)(()=>{ts([])},[]),tw=(0,i.useCallback)(()=>{ee(""),ek(null),H&&tm(H),eG.current&&eG.current!==H&&tm(eG.current),eh(null),ty(),tb(),eL.current&&(eL.current.style.height="auto")},[ty,tb,H]),tk=(0,i.useCallback)(e=>{let t=tl.current.filter(e=>"ready"===e.status&&e.path);if(0===t.length)return e;let n=t.map(e=>`- path=${e.path}`).join("\n"),r=`${J("input_attachedFilesPrompt")}
4
- ${n}`;return e.trim()?`${e.trim()}
5
-
6
- ${r}`:r},[J]);(0,i.useEffect)(()=>{H&&eG.current===H&&tx(H,{value:Q,images:el.map(oC)})},[el,H,Q]),(0,i.useEffect)(()=>{let e=eG.current;if(e===H)return;e&&tx(e,{value:tn.current,images:tr.current.map(oC)});let t=H?tf(H):null;eG.current=H,ee(t?.value??""),ek(null),ed(e=>(e.forEach(oI),t?.images.map(o_)??[]))},[H]),(0,i.useEffect)(()=>{let e=eL.current;e&&(e.style.height="auto",Q&&(e.style.height=`${Math.min(e.scrollHeight,200)}px`))},[Q]),(0,i.useEffect)(()=>()=>{tr.current.forEach(oI)},[]);let tj=to.some(e=>"ready"===e.status&&e.path),tS=ec||to.some(e=>"uploading"===e.status),tC=el.length>0||tj,t_=(0,i.useCallback)(async()=>{let t=Q.trim();if(!t&&!el.length&&!tj)return;if(W?.(),s&&!el.length&&!tj&&A){tw(),A(t,"followUp",void 0);return}if(s||tS)return;let n=el.length>0||tj,r=eG.current;if(n||tw(),!el.length&&!tj&&t.startsWith("/")&&L){let e=await L(t);if(e.handled){e.error&&ti(t);return}}let i=tk(t),o=[...el.map(e=>e.original).filter(e=>void 0!==e),...to.filter(e=>"ready"===e.status&&"string"==typeof e.path).map(e=>({path:e.path,name:e.name,mimeType:e.mimeType,size:e.size}))];!1===await e(i,el.length?el:void 0,o.length?o:void 0)?!n&&r?(tx(r,{value:t,images:[]}),eG.current===r&&ti(t)):n||ti(t):n&&tw()},[Q,el,to,tj,tS,s,L,A,e,tw,ti,W,tk]),tI=Q.startsWith("/")&&!/\s/.test(Q.slice(1))?Q.slice(1).toLowerCase():null,tR=null===tI?[]:[...ob,...M??[]].filter(e=>{let t=e.name.toLowerCase(),n=e.description?.toLowerCase()??"";return t.includes(tI)||n.includes(tI)}).sort((e,t)=>{let n=oS(e,tI)-oS(t,tI);return 0!==n?n:oj[e.source]-oj[t.source]||om.compare(e.name,t.name)}),tT=(()=>{let e=new Map;for(let t of ow)e.set(t,{source:t,items:[]});return tR.forEach((t,n)=>{e.get(t.source)?.items.push({command:t,index:n})}),ow.map(t=>e.get(t)).filter(e=>e.items.length>0)})(),tM=1===tR.length?J(tI?"input_matchCountOne":"input_commandCountOne"):J(tI?"input_matchCount":"input_commandCount",{count:tR.length}),tE=(!!Q.trim()||tj)&&!tS,tz=(0,i.useCallback)((e,t)=>{if(!F)return void ek(null);let n=t??e.length;ek(iL(e.slice(0,n)))},[F]),tL=ew?.query??null,tW=i.useMemo(()=>null!==tL&&eI&&eI.cwd===F?function(e,t,n=20){let r=t.toLowerCase();if(!r)return e.slice(0,n);let i=[];for(let t of e){let e=function(e,t){let n=e.path.toLowerCase(),r=0;if(t.includes("/"))n===t?r=100:n.startsWith(t)?r=80:n.includes(t)?r=50:iA(t,n)&&(r=10);else{let e=n.lastIndexOf("/"),i=-1===e?n:n.slice(e+1);i===t?r=100:i.startsWith(t)?r=80:i.includes(t)?r=50:n.includes(t)?r=30:iA(t,n)&&(r=10)}return e.isDir&&r>0&&(r+=10),r}(t,r);e>0&&i.push({entry:t,score:e})}return i.sort((e,t)=>t.score-e.score||iW(e.entry.path)-iW(t.entry.path)||e.entry.path.localeCompare(t.entry.path)),i.slice(0,n).map(e=>e.entry)}(eI.entries,tL):[],[tL,eI,F]),tA=!!(tL&&eI?.truncated&&eI.cwd===F);(0,i.useEffect)(()=>{if(!tA||!F||!tL)return;let e=setTimeout(()=>{fetch(`/api/file-index?cwd=${encodeURIComponent(F)}&q=${encodeURIComponent(tL)}`).then(e=>{if(!e.ok)throw Error(`file search failed: ${e.status}`);return e.json()}).then(e=>ez({cwd:F,query:tL,matches:e.matches??[]})).catch(()=>{})},150);return()=>clearTimeout(e)},[tA,tL,F]);let tP=tA&&null!==eE&&eE.cwd===F&&eE.query===tL,t$=tP?eE.matches:tW,tH=null===ew?null:`${ew.start}:${+!!ew.quoted}:${ew.query}`;(0,i.useEffect)(()=>{if(null===tH){eS(!1),e_(0);return}eS(!0),e_(0)},[tH]);let tF=null!==ew;(0,i.useEffect)(()=>{if(!tF||!F)return;let e=eJ.current;e&&e.cwd===F&&Date.now()-e.fetchedAt<1e4||eY.current===F||(eY.current=F,eM(!0),fetch(`/api/file-index?cwd=${encodeURIComponent(F)}`).then(e=>{if(!e.ok)throw Error(`file index failed: ${e.status}`);return e.json()}).then(e=>{eR({cwd:F,entries:function(e){let t=new Set;for(let n of e){let e=n.indexOf("/");for(;-1!==e;)t.add(n.slice(0,e)),e=n.indexOf("/",e+1)}let n=[];for(let e of t)n.push({path:e,isDir:!0});for(let t of e)t&&n.push({path:t,isDir:!1});return n.sort((e,t)=>iW(e.path)-iW(t.path)||e.path.localeCompare(t.path)),n}(e.files??[]),truncated:!!e.truncated}),eJ.current={cwd:F,fetchedAt:Date.now()}}).catch(()=>{eJ.current=null}).finally(()=>{eY.current=null,eM(!1)}))},[tF,F]);let tD=(0,i.useCallback)(e=>{if(!ew)return;let t=eL.current,n=t?.selectionStart??Q.length,r=Q.slice(0,ew.start),i=Q.slice(n);ew.quoted&&i.startsWith('"')&&(i=i.slice(1));let o=function(e,t,n=!1){let r=t?`${e}/`:e,i=n||r.includes(" ");if(t){let e=i?`@"${r}"`:`@${r}`;return{text:e,cursorOffset:i?e.length-1:e.length}}let o=i?`@"${r}" `:`@${r} `;return{text:o,cursorOffset:o.length}}(e.path,e.isDir,ew.quoted),s=r+o.text+i,l=r.length+o.cursorOffset;ee(s),ek(iL(s.slice(0,l))),requestAnimationFrame(()=>{let e=eL.current;e&&(e.focus(),e.setSelectionRange(l,l),e.style.height="auto",e.style.height=`${Math.min(e.scrollHeight,200)}px`)})},[ew,Q]);(0,i.useEffect)(()=>{eC>=t$.length&&e_(Math.max(0,t$.length-1))},[t$.length,eC]),(0,i.useEffect)(()=>{eV.current.length=t$.length},[t$.length]),(0,i.useEffect)(()=>{ej&&eV.current[eC]?.scrollIntoView({block:"nearest",inline:"nearest"})},[eC,ej]);let tN=(0,i.useCallback)(e=>{let t=`/${e.name} `;ee(t),ev(!1),eb(0),requestAnimationFrame(()=>{let e=eL.current;e&&(e.focus(),e.setSelectionRange(t.length,t.length),e.style.height="auto",e.style.height=`${Math.min(e.scrollHeight,200)}px`)})},[]),tB=(0,i.useCallback)(e=>{let t=Q.trim();if(!t&&!tj&&0===el.length||tS)return;W?.();let r=tk(t),i=el.length?el:void 0;if(r.startsWith("/")&&A){A(r,"steer"===e?"steer":"followUp",i),tw();return}"steer"===e&&n?n(r,i):"followup"===e&&o?o(r,i):"steer"===e&&o&&o(r,i),tw()},[Q,el.length,tj,tS,A,n,o,tw,W,tk]),tO=(0,i.useCallback)(()=>{if(!T)return;if(el.length||tS)return void T();let e=Q.trim(),t=e||tj?tk(e).trim():"";W?.(),T(t||void 0),t&&tw()},[T,el.length,tS,Q,tj,tk,W,tw]),tU=(0,i.useCallback)(e=>{let t=tR.length-1;if(t<0)return 0;if("left"===e)return Math.max(0,ey-1);if("right"===e)return Math.min(t,ey+1);let n=eK.current[ey];if(!n)return"down"===e?Math.min(t,ey+1):Math.max(0,ey-1);let r=n.getBoundingClientRect(),i=r.left+r.width/2,o=r.top+r.height/2,s=-1,l=1/0;for(let n=0;n<=t;n+=1){if(n===ey)continue;let t=eK.current[n];if(!t)continue;let r=t.getBoundingClientRect(),a=r.top+r.height/2-o;if("down"===e?a<=4:a>=-4)continue;let d=1e3*Math.abs(a)+Math.abs(r.left+r.width/2-i);d<l&&(s=n,l=d)}return s>=0?s:"down"===e?Math.min(t,ey+1):Math.max(0,ey-1)},[tR.length,ey]),tq=(0,i.useCallback)(e=>{let r=e.nativeEvent,i=Date.now()-eU.current<100,l=eO.current||r.isComposing||229===r.keyCode;if("Enter"===e.key&&!e.shiftKey&&(l||i)){i&&e.preventDefault();return}if(em&&null!==tI){if("ArrowDown"===e.key){e.preventDefault(),eb(tU("down"));return}if("ArrowUp"===e.key){e.preventDefault(),eb(tU("up"));return}if("ArrowRight"===e.key){e.preventDefault(),eb(tU("right"));return}if("ArrowLeft"===e.key){e.preventDefault(),eb(tU("left"));return}if("Escape"===e.key){e.preventDefault(),ev(!1);return}if(("Tab"===e.key||"Enter"===e.key&&!e.shiftKey)&&tR[ey]){e.preventDefault(),tN(tR[ey]);return}}if(ej&&null!==ew&&!l){if("ArrowDown"===e.key){e.preventDefault(),e_(e=>Math.min(Math.max(0,t$.length-1),e+1));return}if("ArrowUp"===e.key){e.preventDefault(),e_(e=>Math.max(0,e-1));return}if("Escape"===e.key){e.preventDefault(),eS(!1);return}if(("Tab"===e.key||"Enter"===e.key&&!e.shiftKey)&&t$[eC]){e.preventDefault(),tD(t$[eC]);return}}if("Escape"===e.key&&!l&&s&&t){e.preventDefault(),t();return}if("Enter"===e.key&&!e.shiftKey){if(Y)return;e.preventDefault();let t=e.ctrlKey||e.metaKey,r=I?.followUp.length??0,i=I?.followUp.length??0,l=!!Q.trim()||tj;if(!t&&!l&&i>0&&T||t&&r>0&&T)return void tO();if(s&&(n||o)){let e="steer"!==G;tB(t?e?"steer":"followup":e?"followup":"steer")}else t_()}},[s,Y,G,n,o,t,em,tI,tR,ey,tN,tB,t_,tU,ej,ew,t$,eC,tD,I,T,tO]),tK=(0,i.useCallback)(()=>{let e=eL.current;e&&(e.style.height="auto",e.style.height=`${Math.min(e.scrollHeight,200)}px`)},[]),tV=(0,i.useCallback)(e=>{let t=Array.from(e.clipboardData?.items??[]).filter(e=>e.type.startsWith("image/"));t.length&&(e.preventDefault(),ta(t.map(e=>e.getAsFile()).filter(e=>null!==e)))},[ta]);(0,i.useEffect)(()=>{if(null===tI){ev(!1),eb(0),eq.current=!1;return}ev(!0),eb(0),!eq.current&&z&&(eq.current=!0,Promise.resolve(z()).catch(()=>{eq.current=!1}))},[tI,z]),(0,i.useEffect)(()=>{ey>=tR.length&&eb(Math.max(0,tR.length-1))},[tR.length,ey]),(0,i.useEffect)(()=>{eK.current.length=tR.length},[tR.length]),(0,i.useEffect)(()=>{em&&eK.current[ey]?.scrollIntoView({block:"nearest",inline:"nearest"})},[ey,em]);let tJ=(0,i.useMemo)(()=>{let e=p&&p.length>0?p.map(e=>({provider:e.provider,modelId:e.id,name:e.name,contextWindow:e.contextWindow,maxTokens:e.maxTokens})):Object.entries(u??{}).map(([e,t])=>{let n=e.indexOf(":");return n>0?{provider:e.slice(0,n),modelId:e.slice(n+1),name:t}:{provider:d?.provider??"unknown",modelId:e,name:t}});return d&&!e.some(e=>e.provider===d.provider&&e.modelId===d.modelId)&&e.push({provider:d.provider,modelId:d.modelId,name:d.modelId}),e.sort(ov)},[p,u,d]),tY=[];for(let e of tJ){let t=tY.find(t=>t.provider===e.provider);t?t.options.push(e):tY.push({provider:e.provider,options:[e]})}let tG=d?tJ.find(e=>e.modelId===d.modelId&&e.provider===d.provider)?.name??d.modelId:null,tZ=v?Math.max(0,v.tokensBefore-v.estimatedTokensAfter):0,tX=v?.reason==="auto"?"input_compactionReason_auto":v?.reason==="threshold"?"input_compactionReason_threshold":v?.reason==="overflow"?"input_compactionReason_overflow":null,tQ=v?tX?J("input_compactionResultWithReason",{before:oy(v.tokensBefore),after:oy(v.estimatedTokensAfter),saved:oy(tZ),reason:J(tX)}):J("input_compactionResult",{before:oy(v.tokensBefore),after:oy(v.estimatedTokensAfter),saved:oy(tZ)}):null,t0=(0,i.useId)(),t1=(0,i.useId)(),t2=(0,i.useId)(),t4=oo({open:em&&null!==tI,anchorRef:eF,overlayRef:eD,preferredPlacement:"above",gap:8,margin:8,maxHeight:460,width:"anchor"}),t6=oo({open:ej&&null!==ew,anchorRef:eF,overlayRef:eN,preferredPlacement:"above",gap:8,margin:8,maxHeight:400,width:"anchor"}),t5=oo({open:et,anchorRef:eA,overlayRef:eP,preferredPlacement:"above",gap:6,margin:8,minWidth:"anchor",width:Y?"max":void 0}),t8=em&&null!==tI,t3=ej&&null!==ew,t9=t8&&tR.length>0?`${t0}-opt-${ey}`:t3&&t$.length>0?`${t1}-opt-${eC}`:void 0,t7=t8?t0:t3?t1:void 0;return(0,i.useEffect)(()=>{if(!(er||et))return;let e=e=>{if("Escape"===e.key&&!e.defaultPrevented)if(e.preventDefault(),er){var t;ei(!1),t=e$.current,t?.querySelector("button")?.focus({preventScroll:!0})}else et&&(en(!1),eA.current?.focus({preventScroll:!0}))};return document.addEventListener("keydown",e),()=>document.removeEventListener("keydown",e)},[er,et]),(0,i.useEffect)(()=>{er&&oR(eH.current,'[role="menuitemradio"]')},[er]),(0,i.useEffect)(()=>{et&&oR(eP.current,'[role="option"]')},[et]),(0,i.useEffect)(()=>{let e=e=>{let t=e.target,n=e1.current?.contains(t);!eW.current||eW.current.contains(t)||!eP.current||eP.current.contains(t)||n||(en(!1),e4()),e$.current&&!e$.current.contains(t)&&eH.current&&!eH.current.contains(t)&&ei(!1)};return document.addEventListener("mousedown",e),()=>document.removeEventListener("mousedown",e)},[e4]),(0,r.jsxs)("div",{style:{flexShrink:0,background:"transparent",padding:`0 ${Y?16:18}px 8px`},children:[(0,r.jsx)("input",{ref:eB,type:"file",multiple:!0,disabled:a||s,style:{display:"none"},onChange:e=>{td(Array.from(e.target.files??[])),e.target.value=""}}),(0,r.jsx)("div",{style:{maxWidth:1230,margin:"0 auto"},children:(0,r.jsxs)("fieldset",{disabled:a,"aria-disabled":a||void 0,style:{border:0,padding:0,margin:0,minWidth:0},children:[(I?.followUp.length??0)>0&&(0,r.jsxs)("div",{style:{marginBottom:8,border:"1px solid var(--border)",borderRadius:6,background:"var(--bg-panel)",padding:"5px 0"},children:[(0,r.jsxs)("div",{style:{display:"flex",alignItems:"center",justifyContent:"space-between",gap:8,padding:"2px 8px 4px 10px"},children:[(0,r.jsx)("span",{style:{fontSize:10,fontFamily:"var(--font-mono)",color:"var(--text-dim)",textTransform:"uppercase",letterSpacing:.4},children:J("input_queued",{count:I?.followUp.length??0})}),(0,r.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:6,flexShrink:0},children:[(0,r.jsx)("button",{type:"button",onClick:()=>es(e=>!e),"aria-expanded":eo,"aria-label":eo?J("input_collapseQueue"):J("input_expandQueue"),title:eo?J("input_collapseQueue"):J("input_expandQueue"),className:"instant-tooltip tooltip-up",style:{display:"flex",alignItems:"center",justifyContent:"center",width:26,height:26,padding:0,border:"1px solid var(--border)",borderRadius:6,background:"transparent",color:"var(--text-dim)",cursor:"pointer"},children:(0,r.jsx)("svg",{width:"13",height:"13",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":"true",style:{transform:eo?"rotate(0deg)":"rotate(-90deg)",transition:"transform 0.12s"},children:(0,r.jsx)("polyline",{points:"6 9 12 15 18 9"})})}),T&&(0,r.jsxs)("button",{type:"button",onClick:tO,"data-tooltip":J("input_sendQueueAsSteerTooltip"),className:"instant-tooltip tooltip-up",style:{display:"flex",alignItems:"center",gap:6,padding:"4px 12px",fontSize:12,color:"var(--accent)",background:"transparent",border:"1px solid color-mix(in srgb, var(--accent) 45%, var(--border))",borderRadius:7,cursor:"pointer",transition:"background 0.12s, border-color 0.12s",whiteSpace:"nowrap",fontWeight:600},onMouseEnter:e=>{e.currentTarget.style.background="color-mix(in srgb, var(--accent) 10%, transparent)"},onMouseLeave:e=>{e.currentTarget.style.background="transparent"},children:[(0,r.jsxs)("svg",{width:"13",height:"13",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":"true",children:[(0,r.jsx)("line",{x1:"22",y1:"2",x2:"11",y2:"13"}),(0,r.jsx)("polygon",{points:"22 2 15 22 11 13 2 9 22 2"})]}),J("input_sendQueueAsSteer")]}),R&&(0,r.jsxs)("button",{type:"button",onClick:R,"data-tooltip":J("input_recall"),className:"instant-tooltip tooltip-up",style:{display:"flex",alignItems:"center",gap:6,padding:"4px 12px",fontSize:12,color:"var(--text)",background:"transparent",border:"1px solid var(--border)",borderRadius:7,cursor:"pointer",transition:"background 0.12s, border-color 0.12s",whiteSpace:"nowrap"},onMouseEnter:e=>{e.currentTarget.style.background="var(--bg-hover)",e.currentTarget.style.borderColor="color-mix(in srgb, var(--accent) 45%, var(--border))"},onMouseLeave:e=>{e.currentTarget.style.background="transparent",e.currentTarget.style.borderColor="var(--border)"},children:[(0,r.jsxs)("svg",{width:"13",height:"13",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":"true",children:[(0,r.jsx)("polyline",{points:"9 14 4 9 9 4"}),(0,r.jsx)("path",{d:"M20 20v-7a4 4 0 0 0-4-4H4"})]}),J("input_recall")]})]})]}),eo&&I?.followUp.map((e,t)=>(0,r.jsx)(oT,{kind:"follow-up",text:e},`followup-${t}`))]}),_&&(0,r.jsxs)("div",{style:{marginBottom:8,padding:"5px 10px",background:"color-mix(in srgb, var(--status-warning) 8%, transparent)",border:"1px solid color-mix(in srgb, var(--status-warning) 28%, transparent)",borderRadius:6,fontSize:12,color:"var(--status-warning)",display:"flex",alignItems:"center",gap:6},children:[(0,r.jsxs)("svg",{width:"11",height:"11",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",style:{flexShrink:0},children:[(0,r.jsx)("path",{d:"M3 12a9 9 0 1 0 9-9 9.75 9.75 0 0 0-6.74 2.74L3 8"}),(0,r.jsx)("path",{d:"M3 3v5h5"})]}),J("input_retrying")," (",_.attempt,"/",_.maxAttempts,")",_.errorMessage&&(0,r.jsxs)("span",{style:{opacity:.7,marginLeft:4},children:["— ",_.errorMessage]})]}),m&&(0,r.jsx)("div",{style:{marginBottom:8,padding:"5px 10px",background:"color-mix(in srgb, var(--status-danger) 8%, transparent)",border:"1px solid color-mix(in srgb, var(--status-danger) 28%, transparent)",borderRadius:6,fontSize:12,color:"var(--status-danger)",display:"flex",alignItems:"center",gap:6},children:m}),tQ&&(0,r.jsxs)("div",{style:{marginBottom:8,padding:"5px 10px",background:"color-mix(in srgb, var(--status-success) 8%, transparent)",border:"1px solid color-mix(in srgb, var(--status-success) 28%, transparent)",borderRadius:6,fontSize:12,color:"var(--status-success)",display:"flex",alignItems:"center",gap:6},children:[(0,r.jsx)("svg",{width:"11",height:"11",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",style:{flexShrink:0},children:(0,r.jsx)("polyline",{points:"20 6 9 17 4 12"})}),tQ]}),(el.length>0||to.length>0||ep)&&(0,r.jsxs)("div",{style:{display:"flex",gap:6,marginBottom:6,flexWrap:"wrap",alignItems:"center"},children:[ep&&(0,r.jsx)("div",{role:"alert",style:{flexBasis:"100%",color:"var(--status-danger)",fontSize:11},children:ep}),el.map((e,t)=>(0,r.jsxs)("div",{style:{position:"relative",flexShrink:0},children:[(0,r.jsx)("img",{src:e.previewUrl,alt:"",style:{width:56,height:56,objectFit:"cover",borderRadius:6,border:"1px solid var(--border)",display:"block"}}),(0,r.jsx)("button",{type:"button",onClick:()=>tc(t),"aria-label":J("input_removeAttachment"),style:{position:"absolute",top:-4,right:-4,width:16,height:16,borderRadius:"50%",background:"var(--bg-panel)",border:"1px solid var(--border)",display:"flex",alignItems:"center",justifyContent:"center",cursor:"pointer",padding:0,color:"var(--text-muted)"},children:(0,r.jsxs)("svg",{width:"8",height:"8",viewBox:"0 0 8 8",fill:"none",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",children:[(0,r.jsx)("line",{x1:"1",y1:"1",x2:"7",y2:"7"}),(0,r.jsx)("line",{x1:"7",y1:"1",x2:"1",y2:"7"})]})})]},`img-${t}`)),to.map(e=>{let t=rX(e.name)?"video":rZ(e.name)?"audio":rG(e.name)?"image":"file",n="error"===e.status?"var(--status-danger)":"uploading"===e.status?"var(--text-dim)":"var(--text-muted)";return(0,r.jsxs)("div",{title:e.error||e.path||e.name,style:{position:"relative",display:"flex",alignItems:"center",gap:6,maxWidth:220,padding:"6px 10px",borderRadius:8,border:`1px solid ${"error"===e.status?"color-mix(in srgb, var(--status-danger) 40%, var(--border))":"var(--border)"}`,background:"var(--bg-panel)",fontSize:12,color:n},children:[(0,r.jsx)("span",{style:{flexShrink:0,fontSize:10,textTransform:"uppercase",letterSpacing:.4,color:"var(--text-dim)"},children:t}),(0,r.jsx)("span",{style:{minWidth:0,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:"uploading"===e.status?J("input_uploadingAttachment"):e.name}),(0,r.jsx)("button",{type:"button",onClick:()=>tv(e.id),"aria-label":J("input_removeAttachment"),style:{flexShrink:0,width:16,height:16,borderRadius:"50%",background:"var(--bg)",border:"1px solid var(--border)",display:"flex",alignItems:"center",justifyContent:"center",cursor:"pointer",padding:0,color:"var(--text-muted)"},children:(0,r.jsxs)("svg",{width:"8",height:"8",viewBox:"0 0 8 8",fill:"none",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",children:[(0,r.jsx)("line",{x1:"1",y1:"1",x2:"7",y2:"7"}),(0,r.jsx)("line",{x1:"7",y1:"1",x2:"1",y2:"7"})]})})]},e.id)})]}),(0,r.jsxs)("div",{ref:eF,style:{position:"relative"},children:[t8&&(0,r.jsxs)("div",{ref:eD,style:{...t4.style,zIndex:120,background:"var(--bg)",border:"1px solid var(--border)",borderRadius:8,boxShadow:"above"===t4.placement?"0 -6px 20px rgba(0,0,0,0.12)":"0 6px 20px rgba(0,0,0,0.12)",overflow:"hidden",display:"flex",flexDirection:"column"},children:[(0,r.jsxs)("div",{style:{padding:"8px 10px",borderBottom:"1px solid var(--border)",display:"flex",alignItems:"center",justifyContent:"space-between",gap:8,fontSize:11,color:"var(--text-dim)",flexShrink:0},children:[(0,r.jsx)("span",{children:E?J("input_loadingCommands"):`${J("input_slashCommands")} \xb7 ${tM}`}),(0,r.jsx)("span",{style:{fontFamily:"var(--font-mono)"},children:J("input_tabEnter")})]}),(0,r.jsx)("div",{id:t0,role:"listbox","aria-label":J("input_slashCommands"),style:{flex:1,minHeight:0,overflowY:"auto",padding:10},children:E||0!==tR.length?tT.map(e=>(0,r.jsxs)("section",{style:{marginBottom:12},children:[(0,r.jsxs)("div",{style:{position:"sticky",top:-10,zIndex:1,display:"flex",alignItems:"center",justifyContent:"space-between",gap:8,padding:"4px 0 6px",background:"var(--bg)",color:"var(--text-dim)",fontSize:10,fontWeight:600,textTransform:"uppercase"},children:[(0,r.jsx)("span",{children:J(ok[e.source])}),(0,r.jsx)("span",{style:{fontFamily:"var(--font-mono)",fontWeight:500},children:e.items.length})]}),(0,r.jsx)("div",{style:{display:"grid",gridTemplateColumns:"repeat(auto-fit, minmax(220px, 1fr))",gap:8},children:e.items.map(({command:e,index:t})=>{let n=t===ey;return(0,r.jsxs)("button",{id:`${t0}-opt-${t}`,role:"option","aria-selected":n,ref:e=>{eK.current[t]=e},type:"button",onMouseDown:t=>{t.preventDefault(),tN(e)},onMouseEnter:()=>eb(t),style:{width:"100%",minWidth:0,minHeight:58,display:"flex",flexDirection:"column",gap:4,justifyContent:"center",padding:"9px 10px",border:`1px solid ${n?"var(--accent)":"var(--border)"}`,borderRadius:7,background:n?"var(--bg-selected)":"var(--bg-panel)",color:"var(--text)",cursor:"pointer",textAlign:"left",boxShadow:n?"0 0 0 1px color-mix(in srgb, var(--accent) 28%, transparent)":"none"},children:[(0,r.jsxs)("span",{style:{fontSize:13,fontFamily:"var(--font-mono)",overflowWrap:"anywhere",wordBreak:"break-word"},children:["/",e.name]}),e.description&&(0,r.jsx)("span",{style:{display:"-webkit-box",WebkitBoxOrient:"vertical",WebkitLineClamp:2,overflow:"hidden",fontSize:11,lineHeight:1.35,color:"var(--text-dim)"},children:e.description})]},`${e.source}:${e.name}`)})})]},e.source)):(0,r.jsx)("div",{style:{padding:"2px 2px 4px",fontSize:12,color:"var(--text-dim)"},children:J("input_noCommands")})})]}),t3&&(N=eT&&(!eI||eI.cwd!==F),O=1===t$.length?J("input_matchCountOne"):J("input_matchCount",{count:t$.length}),U=eI?.truncated&&!tP?ew.query?` \xb7 ${J("input_searchingAllFiles")}`:` \xb7 ${J("input_indexTruncated")}`:"",(0,r.jsxs)("div",{ref:eN,style:{...t6.style,zIndex:120,background:"var(--bg)",border:"1px solid var(--border)",borderRadius:8,boxShadow:"above"===t6.placement?"0 -6px 20px rgba(0,0,0,0.12)":"0 6px 20px rgba(0,0,0,0.12)",overflow:"hidden",display:"flex",flexDirection:"column"},children:[(0,r.jsxs)("div",{style:{padding:"8px 10px",borderBottom:"1px solid var(--border)",display:"flex",alignItems:"center",justifyContent:"space-between",gap:8,fontSize:11,color:"var(--text-dim)",flexShrink:0},children:[(0,r.jsx)("span",{children:N?J("input_loadingFiles"):`${J("input_files")} \xb7 ${O}${U}`}),(0,r.jsx)("span",{style:{fontFamily:"var(--font-mono)"},children:J("input_tabEnter")})]}),(0,r.jsx)("div",{id:t1,role:"listbox","aria-label":J("input_files"),style:{flex:1,minHeight:0,overflowY:"auto",padding:4},children:N||0!==t$.length?t$.map((e,t)=>{let n=t===eC,i=e.path.split("/").pop()??e.path,o=e.path.slice(0,e.path.length-i.length);return(0,r.jsxs)("button",{id:`${t1}-opt-${t}`,role:"option","aria-selected":n,ref:e=>{eV.current[t]=e},type:"button",onMouseDown:t=>{t.preventDefault(),tD(e)},onMouseEnter:()=>e_(t),style:{width:"100%",display:"flex",alignItems:"center",gap:8,padding:"6px 8px",minHeight:Y?44:void 0,border:"none",borderRadius:6,background:n?"var(--bg-selected)":"none",color:"var(--text)",cursor:"pointer",textAlign:"left",fontSize:12.5,fontFamily:"var(--font-mono)"},children:[(0,r.jsx)("span",{style:{flexShrink:0,display:"flex",alignItems:"center"},children:e.isDir?(0,r.jsx)(iH,{size:14}):on(i,14)}),(0,r.jsxs)("span",{style:{minWidth:0,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:[o&&(0,r.jsx)("span",{style:{color:"var(--text-dim)"},children:o}),i,e.isDir&&(0,r.jsx)("span",{style:{color:"var(--text-dim)"},children:"/"})]})]},`${e.isDir?"d":"f"}:${e.path}`)}):(0,r.jsx)("div",{style:{padding:"6px 8px",fontSize:12,color:"var(--text-dim)"},children:tA&&!tP?J("input_searching"):J("input_noMatchingFiles")})})]})),(0,r.jsxs)("div",{className:"chat-input-shell",style:{display:"flex",gap:8,alignItems:"flex-end",background:"var(--bg-elevated)",border:`1px solid ${ef?"var(--tool-bg)":s&&(n||o)?"color-mix(in srgb, var(--status-warning) 45%, var(--border-strong))":"var(--border-strong)"}`,borderRadius:"var(--radius-lg)",padding:"10px 10px 10px 10px",boxShadow:"var(--shadow-input)",transition:"border-color 0.15s, background 0.15s, box-shadow 0.15s"},children:[(0,r.jsx)("button",{type:"button",onClick:()=>eB.current?.click(),disabled:s,"data-tooltip":J("input_attachFile"),className:"instant-tooltip tooltip-up","aria-label":J("input_attachFile"),style:{flexShrink:0,display:"flex",alignItems:"center",justifyContent:"center",width:32,height:32,padding:0,background:"none",border:"none",borderRadius:9,color:tC?"var(--accent)":"var(--text-muted)",cursor:s?"not-allowed":"pointer",opacity:s?.5:1,transition:"background 0.12s, color 0.12s",alignSelf:"flex-end"},onMouseEnter:e=>{s||(e.currentTarget.style.background="var(--bg-hover)",e.currentTarget.style.color=tC?"var(--accent)":"var(--text)")},onMouseLeave:e=>{e.currentTarget.style.background="none",e.currentTarget.style.color=tC?"var(--accent)":"var(--text-muted)"},children:(0,r.jsx)("svg",{width:"16",height:"16",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"1.8",strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":"true",children:(0,r.jsx)("path",{d:"M21.44 11.05l-9.19 9.19a6 6 0 0 1-8.49-8.49l9.19-9.19a4 4 0 0 1 5.66 5.66l-9.2 9.19a2 2 0 0 1-2.83-2.83l8.49-8.48"})})}),(0,r.jsx)("textarea",{ref:eL,value:Q,role:"combobox","aria-expanded":t8||t3,"aria-controls":t7,"aria-activedescendant":t9,"aria-autocomplete":"list",onChange:e=>{ee(e.target.value),tz(e.target.value,e.target.selectionStart)},onSelect:e=>{let t=e.currentTarget;tz(t.value,t.selectionStart)},onKeyDown:tq,onCompositionStart:()=>{eO.current=!0},onCompositionEnd:e=>{eO.current=!1,eU.current=Date.now();let t=e.currentTarget;tz(t.value,t.selectionStart)},onInput:tK,onPaste:tV,placeholder:s&&(n||o)?J("input_placeholderSteer"):s?J("input_placeholderRunning"):J("input_placeholderMessage"),rows:1,style:{flex:1,background:"none",border:"none",outline:"none",resize:"none",color:"var(--text)",fontSize:14,lineHeight:1.45,fontFamily:"inherit",minHeight:32,maxHeight:200,padding:"5px 0",boxSizing:"border-box",overflow:"auto"}}),(K=(q=s&&(n||o))?tE:!!((Q.trim()||el.length||tj)&&!tS),V=q?J("input_sendQueueTooltip"):void 0,(0,r.jsxs)("button",{type:"button",onClick:()=>{q?tB("followup"):t_()},disabled:!K,"data-tooltip":V,className:V?"instant-tooltip tooltip-up":void 0,style:{flexShrink:0,alignSelf:"flex-end",display:"flex",alignItems:"center",gap:6,padding:"7px 14px",background:K?"var(--accent)":"var(--bg-panel)",border:"none",borderRadius:8,color:K?"var(--accent-foreground)":"var(--text-dim)",cursor:K?"pointer":"not-allowed",fontSize:13,fontWeight:600,letterSpacing:"-0.01em",boxShadow:K?"0 1px 3px color-mix(in srgb, var(--accent) 30%, transparent)":"none",transition:"background 0.15s, box-shadow 0.15s"},children:[(0,r.jsxs)("svg",{width:"14",height:"14",viewBox:"0 0 14 14",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:[(0,r.jsx)("line",{x1:"2",y1:"7",x2:"11",y2:"7"}),(0,r.jsx)("polyline",{points:"7.5 3 12 7 7.5 11"})]}),J("input_send")]}))]})]}),ef&&(0,r.jsx)("div",{className:"text-xs px-2 py-1",style:{color:ex?"var(--text-muted)":"var(--accent)",marginTop:4},children:J("input_shellStatus",{scope:ex?J("input_shellLocal"):J("input_shellModel")})}),(0,r.jsxs)("div",{style:{marginTop:8,display:Y?"grid":"flex",gridTemplateColumns:Y?"minmax(0, 1fr) auto":void 0,alignItems:"center",gap:6},children:[(0,r.jsxs)("div",{style:{flex:"0 1 auto",minWidth:0,display:"flex",alignItems:"center",gap:2,maxWidth:Y?"100%":void 0},children:[$&&(0,r.jsx)("button",{type:"button",onClick:$,"aria-expanded":!P,"aria-label":P?J("footer_expand"):J("footer_collapse"),title:P?J("footer_expand"):J("footer_collapse"),style:{display:"inline-flex",alignItems:"center",justifyContent:"center",width:Y?26:24,height:Y?26:24,padding:0,border:"1px solid var(--border)",borderRadius:7,background:"var(--bg-panel)",color:"var(--text-dim)",cursor:"pointer",flexShrink:0},children:P?(0,r.jsx)("svg",{width:"13",height:"13",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2","aria-hidden":"true",children:(0,r.jsx)("path",{d:"m6 9 6 6 6-6"})}):(0,r.jsx)("svg",{width:"13",height:"13",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2","aria-hidden":"true",children:(0,r.jsx)("path",{d:"m6 15 6-6 6 6"})})}),tJ.length>0&&g&&(0,r.jsxs)("div",{ref:eW,style:{position:"relative",flex:"0 1 auto",minWidth:Y?96:140},children:[(0,r.jsxs)("button",{ref:eA,"aria-haspopup":"listbox","aria-expanded":et,"aria-controls":t2,onClick:()=>{let e=!et;en(e),e&&(ei(!1),ev(!1),eS(!1))},title:s?J("input_changeAppliesNextTurn"):d?e6({modelId:d.modelId,name:tG??d.modelId,provider:d.provider,contextWindow:p?.find(e=>e.provider===d?.provider&&e.id===d?.modelId)?.contextWindow,maxTokens:p?.find(e=>e.provider===d?.provider&&e.id===d?.modelId)?.maxTokens}):void 0,style:{display:"flex",alignItems:"center",gap:Y?4:6,justifyContent:"flex-start",padding:Y?"6px 8px":"8px 12px",height:32,width:"auto",minWidth:Y?96:140,maxWidth:Y?220:340,overflow:"hidden",background:et?"var(--bg-hover)":"none",border:"none",borderRadius:9,color:"var(--text-muted)",cursor:"pointer",fontSize:Y?11:12,transition:"background 0.12s, color 0.12s",flex:"0 1 auto"},onMouseEnter:e=>{e.currentTarget.style.background="var(--bg-hover)",e.currentTarget.style.color="var(--text)"},onMouseLeave:e=>{e.currentTarget.style.background=et?"var(--bg-hover)":"none",e.currentTarget.style.color="var(--text-muted)"},children:[(0,r.jsxs)("svg",{width:"11",height:"11",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:[(0,r.jsx)("rect",{x:"4",y:"4",width:"16",height:"16",rx:"2"}),(0,r.jsx)("rect",{x:"9",y:"9",width:"6",height:"6"}),(0,r.jsx)("line",{x1:"9",y1:"1",x2:"9",y2:"4"}),(0,r.jsx)("line",{x1:"15",y1:"1",x2:"15",y2:"4"}),(0,r.jsx)("line",{x1:"9",y1:"20",x2:"9",y2:"23"}),(0,r.jsx)("line",{x1:"15",y1:"20",x2:"15",y2:"23"}),(0,r.jsx)("line",{x1:"20",y1:"9",x2:"23",y2:"9"}),(0,r.jsx)("line",{x1:"20",y1:"14",x2:"23",y2:"14"}),(0,r.jsx)("line",{x1:"1",y1:"9",x2:"4",y2:"9"}),(0,r.jsx)("line",{x1:"1",y1:"14",x2:"4",y2:"14"})]}),(0,r.jsx)("span",{style:{overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",minWidth:0},children:tG??J("input_modelTitle")}),e8?(0,r.jsxs)("span",{style:{flexShrink:0,fontSize:10,color:"var(--text-dim)",fontFamily:"var(--font-mono)",marginLeft:2},children:["\xb7",e8]}):null]}),et&&(0,l.createPortal)((0,r.jsx)("div",{ref:eP,id:t2,role:"listbox","aria-label":J("input_modelTitle"),onKeyDown:e=>(function(e,t){let n,r=e.key;if("ArrowDown"!==r&&"ArrowUp"!==r&&"Home"!==r&&"End"!==r)return;let i=Array.from(e.currentTarget.querySelectorAll(t));if(0===i.length)return;e.preventDefault();let o=i.indexOf(document.activeElement);n="Home"===r?0:"End"===r?i.length-1:"ArrowDown"===r?o<0?0:(o+1)%i.length:o<0?i.length-1:(o-1+i.length)%i.length,i[n]?.focus({preventScroll:!0})})(e,'[role="option"]'),style:{...t5.style,zIndex:500,background:"var(--bg)",border:"1px solid var(--border)",borderRadius:8,boxShadow:"above"===t5.placement?"0 -4px 16px rgba(0,0,0,0.10)":"0 4px 16px rgba(0,0,0,0.10)",overflow:"hidden",overflowY:"auto"},children:tY.map((e,t)=>{let n=h?.[e.provider]===!1;return(0,r.jsxs)("div",{children:[tY.length>1&&(0,r.jsxs)("div",{style:{padding:"6px 12px 4px",fontSize:10,fontWeight:600,color:"var(--text-dim)",textTransform:"uppercase",letterSpacing:"0.07em",borderTop:t>0?"1px solid var(--border)":"none",display:"flex",alignItems:"center",gap:6},children:[(0,r.jsx)("span",{style:{minWidth:0,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:e.provider}),n&&(0,r.jsx)("span",{title:J("models_authRequiredToViewModels"),style:{flexShrink:0,fontSize:9,padding:"1px 6px",borderRadius:999,border:"1px solid var(--border)",color:"var(--text-dim)",textTransform:"none",letterSpacing:0,fontWeight:400},children:J("models_authRequired")})]}),e.options.map(e=>{let t=e.modelId===d?.modelId&&e.provider===d?.provider,i=n&&!t,o=i?J("models_authRequiredToViewModels"):e6(e),s=e7(e.provider,e.modelId),a=function(e,t,n,r="off"){return t?iE(n)??iE(e)??r:iE(e)??r}(s,t,y,e5),c=e3(e.provider,e.modelId),u=`${e.provider}:${e.modelId}`,p=eZ===u,h=()=>{!i&&g&&(en(!1),e4(),eA.current?.focus({preventScroll:!0}),g(e.provider,e.modelId,function(e,t="off"){return iE(e)??t}(s,e5)))};return(0,r.jsxs)("div",{role:"option","aria-selected":t,"aria-disabled":i||void 0,title:o,tabIndex:i?-1:0,onClick:h,onKeyDown:e=>{i||("Enter"===e.key||" "===e.key)&&(e.preventDefault(),h())},style:{display:"flex",alignItems:"center",gap:8,width:"100%",padding:"7px 12px",minHeight:Y?44:void 0,background:t?"var(--bg-selected)":"none",border:"none",color:i?"var(--text-dim)":t?"var(--text)":"var(--text-muted)",cursor:i?"not-allowed":"pointer",fontSize:12,textAlign:"left",fontWeight:t?600:400,whiteSpace:"nowrap",opacity:i?.55:1,boxSizing:"border-box"},onMouseEnter:e=>{t||i||(e.currentTarget.style.background="var(--bg-hover)")},onMouseLeave:e=>{t||i||(e.currentTarget.style.background="none")},children:[t?(0,r.jsx)("svg",{width:"10",height:"10",viewBox:"0 0 10 10",fill:"none",stroke:"var(--accent)",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",style:{flexShrink:0},children:(0,r.jsx)("polyline",{points:"1.5 5 4 7.5 8.5 2.5"})}):(0,r.jsx)("span",{style:{width:10,flexShrink:0}}),(0,r.jsx)("span",{style:{flex:"1 1 auto",minWidth:0,overflow:"hidden",textOverflow:"ellipsis"},children:e.name}),"number"==typeof e.contextWindow&&(0,r.jsx)("span",{style:{flexShrink:0,fontSize:10,color:"var(--text-dim)",fontFamily:"var(--font-mono)"},children:ox(e.contextWindow)}),(0,r.jsxs)("button",{type:"button","data-depth-trigger":u,"aria-label":J("input_modelThinkingLevel"),"aria-expanded":p,disabled:i,onClick:e=>{e.stopPropagation(),e.preventDefault(),i||(p?e4():e2(u,e.currentTarget))},style:{display:"inline-flex",alignItems:"center",gap:3,flexShrink:0,minWidth:44,minHeight:Y?44:32,justifyContent:"center",padding:"0 6px",borderRadius:6,border:"none",background:p?"var(--bg-selected)":"var(--bg-subtle)",color:"var(--text-muted)",cursor:i?"not-allowed":"pointer",fontSize:11,fontFamily:"var(--font-mono)"},children:[a,(0,r.jsx)("svg",{width:"10",height:"10",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":"true",children:(0,r.jsx)("polyline",{points:"9 18 15 12 9 6"})})]}),p&&eQ&&(0,l.createPortal)((0,r.jsx)("div",{ref:e1,role:"listbox","aria-label":J("input_modelThinkingLevel"),style:{position:"fixed",top:eQ.top,left:eQ.left,zIndex:10070,background:"var(--bg)",border:"1px solid var(--border)",borderRadius:8,boxShadow:"0 4px 16px rgba(0,0,0,0.12)",padding:4,display:"flex",flexDirection:"column",gap:2,minWidth:116},onClick:e=>e.stopPropagation(),onPointerDown:e=>e.stopPropagation(),children:c.map(t=>(0,r.jsx)("button",{type:"button",role:"option","aria-selected":t===a,onClick:n=>{n.stopPropagation(),te(e.provider,e.modelId,t)},style:{minHeight:Y?44:30,padding:"0 10px",border:"none",borderRadius:6,background:t===a?"var(--bg-selected)":"none",color:t===a?"var(--text)":"var(--text-muted)",cursor:"pointer",fontSize:11,fontFamily:"var(--font-mono)",textAlign:"left"},onMouseEnter:e=>{e.currentTarget.style.background="var(--bg-hover)"},onMouseLeave:e=>{e.currentTarget.style.background=t===a?"var(--bg-selected)":"none"},children:t},t))}),document.body)]},u)})]},e.provider)})}),document.body)]})]}),!Y&&(0,r.jsx)("div",{style:{flex:1}}),(0,r.jsx)("div",{style:{flex:"0 0 auto",display:"flex",alignItems:"center",justifyContent:"flex-end",marginLeft:"auto"},children:(s||x)&&(0,r.jsxs)("button",{type:"button",onClick:()=>{x&&f?f():t()},"data-tooltip":x?J("input_stopCompaction"):J("chat_cancel"),className:"instant-tooltip tooltip-up",style:{display:"flex",alignItems:"center",gap:6,padding:Y?"6px 10px":"8px 14px",height:32,background:"color-mix(in srgb, var(--status-danger) 8%, transparent)",border:"1px solid color-mix(in srgb, var(--status-danger) 30%, transparent)",borderRadius:9,color:"var(--status-danger)",cursor:"pointer",fontSize:12,fontWeight:600,whiteSpace:"nowrap",letterSpacing:"-0.01em",transition:"background 0.12s"},onMouseEnter:e=>{e.currentTarget.style.background="color-mix(in srgb, var(--status-danger) 16%, transparent)"},onMouseLeave:e=>{e.currentTarget.style.background="color-mix(in srgb, var(--status-danger) 8%, transparent)"},children:[(0,r.jsx)("svg",{width:"10",height:"10",viewBox:"0 0 10 10",fill:"none",children:(0,r.jsx)("rect",{x:"1.5",y:"1.5",width:"7",height:"7",rx:"1.5",fill:"currentColor"})}),x?J("input_stopCompaction"):J("input_stop")]})})]})]})})]})});function oE(e){return"user"===e.role?{bg:"var(--bg-selected)",border:"var(--accent)"}:{bg:"var(--bg-hover)",border:"var(--text-dim)"}}function oz({messages:e,plan:t,scrollContainer:n,messageRefs:o}){let[s,l]=(0,i.useState)(0),[a,d]=(0,i.useState)(1),[c,u]=(0,i.useState)(!1),[p,h]=(0,i.useState)(!1),[g,f]=(0,i.useState)(null),[x,m]=(0,i.useState)([]),v=(0,i.useRef)(!1),y=(0,i.useRef)(null),b=(0,i.useMemo)(()=>{let n=nh(t),r=np(e,null!=n);return[...e.slice(0,r),...n?[n]:[],...e.slice(r)]},[t,e]),w=(0,i.useRef)(b);w.current=b;let k=(0,i.useCallback)(()=>{let e=n.current;if(!e)return;let t=e.scrollHeight,r=e.clientHeight,i=t-r;u(i>20),i<=0?(l(0),d(1)):(l(e.scrollTop/i),d(r/t))},[n]),j=(0,i.useRef)(null),S=(0,i.useCallback)(()=>{j.current||(j.current=setTimeout(()=>{j.current=null;let e=n.current;if(!e)return;let t=e.scrollHeight;if(t<=0)return;let r=o.current,i=[],s=0,l=w.current;for(let n=0;n<l.length;n++){let o=l[n];if("user"!==o.role&&"assistant"!==o.role)continue;let a=r?.[s];if(s++,("user"===o.role||"assistant"===o.role&&(o.content??[]).some(e=>"text"===e.type))&&a){let n=a.getBoundingClientRect(),r=e.getBoundingClientRect(),s=n.top-r.top+e.scrollTop,l=n.height;i.push({topRatio:s/t,heightRatio:l/t,msg:o,index:i.length})}}m(i)},150))},[n,o]);(0,i.useEffect)(()=>{let e=n.current;if(e)return e.addEventListener("scroll",k,{passive:!0}),()=>e.removeEventListener("scroll",k)},[n,k]),(0,i.useEffect)(()=>{let e=n.current;if(!e)return;let t=()=>{k(),S()},r=new ResizeObserver(t);return r.observe(e),e.firstElementChild&&r.observe(e.firstElementChild),t(),()=>{r.disconnect(),j.current&&(clearTimeout(j.current),j.current=null)}},[n,S,k]),(0,i.useEffect)(()=>{let e=setTimeout(()=>{k(),S()},50);return()=>clearTimeout(e)},[e.length,S,k]);let C=(0,i.useCallback)(e=>{let t=n.current;if(!t)return;let r=t.scrollHeight-t.clientHeight;r<=0||(t.scrollTop=Math.max(0,Math.min(1-a,e))/(1-a)*r)},[n,a]),_=(0,i.useCallback)(e=>{if(!c)return;v.current=!0;let t=e.currentTarget.getBoundingClientRect(),n=(e.clientY-t.top)/t.height,r=n-s*(1-a),i=r>=0&&r<=a?r:a/2;C(n-i);let o=e=>{v.current&&C((e.clientY-t.top)/t.height-i)},l=()=>{v.current=!1,window.removeEventListener("mousemove",o),window.removeEventListener("mouseup",l)};window.addEventListener("mousemove",o),window.addEventListener("mouseup",l)},[c,a,s,C]),I=y.current?.clientHeight??600,R=(0,i.useMemo)(()=>{if(!p||0===x.length)return[];let e=x.map(e=>Math.round(e.topRatio*I-11));for(let t=0;t<10;t++){for(let t=1;t<e.length;t++){let n=e[t-1]+22+2;e[t]<n&&(e[t]=n)}for(let t=e.length-2;t>=0;t--){let n=e[t+1]-22-2;e[t]>n&&(e[t]=n)}}for(let t=0;t<e.length;t++)e[t]=Math.max(0,Math.min(I-22,e[t]));return e},[p,x,I]);if(!c)return null;let T=s*(1-a)*100,M=100*a,E=null!==g&&x.length>0?x.reduce((e,t)=>Math.abs(t.topRatio-g)<Math.abs(x[e].topRatio-g)?t.index:e,0):null;return(0,r.jsxs)("div",{ref:y,onMouseDown:_,onMouseEnter:()=>h(!0),onMouseLeave:()=>{h(!1),f(null)},onMouseMove:e=>{let t=e.currentTarget.getBoundingClientRect();f((e.clientY-t.top)/t.height)},style:{width:18,height:"100%",position:"relative",cursor:"default",userSelect:"none",borderLeft:"1px solid var(--border)",background:"var(--bg-panel)",overflow:"visible"},children:[(0,r.jsx)("div",{style:{position:"absolute",left:0,right:0,top:`${T}%`,height:`${M}%`,background:"var(--bg-hover)",borderTop:"1px solid var(--border-strong)",borderBottom:"1px solid var(--border-strong)",pointerEvents:"none",zIndex:1}}),x.map(e=>{let t=oE(e.msg),n="user"===e.msg.role,i=100*e.topRatio;return(0,r.jsx)("div",{style:{position:"absolute",top:`${i}%`,transform:"translateY(-50%)",left:0,right:0,height:"12px",display:"flex",alignItems:"center",justifyContent:"center",cursor:"pointer",zIndex:2},children:(0,r.jsx)("div",{style:{width:n?6:5,height:n?6:5,borderRadius:n?2:"50%",background:t.bg,border:`1.5px solid ${t.border}`,flexShrink:0,transition:"transform 0.1s",transform:p&&E===e.index?"scale(1.6)":"scale(1)"}})},e.index)}),(0,r.jsx)("div",{style:{position:"absolute",left:"50%",top:0,bottom:0,width:1,background:"var(--border)",transform:"translateX(-50%)",zIndex:0}}),p&&x.map((e,t)=>{let n=function(e){if("user"===e.role){let t=e.content;return"string"==typeof t?t.slice(0,200):Array.isArray(t)?t.filter(e=>"text"===e.type&&e.text).map(e=>e.text).join("\n").slice(0,200):""}if("assistant"===e.role){let t=e.content??[],n=t.filter(e=>"text"===e.type).map(e=>e.text).join(" ");if(n)return n.slice(0,200);let r=t.filter(e=>"toolCall"===e.type).map(e=>e.toolName);if(r.length)return r.join(", ")}return""}(e.msg),i=oE(e.msg),o=E===e.index;return n&&0!==R.length?(0,r.jsx)("div",{style:{position:"absolute",top:R[t],right:"100%",marginRight:6,background:"var(--bg)",borderTop:`1px solid ${o?i.border:"var(--border)"}`,borderRight:`1px solid ${o?i.border:"var(--border)"}`,borderBottom:`1px solid ${o?i.border:"var(--border)"}`,borderLeft:`2px solid ${i.border}`,borderRadius:4,padding:"3px 8px",width:220,zIndex:100,pointerEvents:"none",opacity:o?1:.45,transition:"top 0.1s, opacity 0.1s"},children:(0,r.jsx)("div",{style:{fontSize:11,color:o?"var(--text)":"var(--text-muted)",lineHeight:1.4,whiteSpace:"nowrap",overflow:"hidden",textOverflow:"ellipsis"},children:n})},e.index):null})]})}function oL({messages:e,plan:t,scrollContainer:n,messageRefs:o}){let{t:s}=(0,ea.s9)(),[l,a]=(0,i.useState)([]),[d,c]=(0,i.useState)({top:0,height:1}),[u,p]=(0,i.useState)(null),[h,g]=(0,i.useState)(0),f=(0,i.useRef)(null),x=(0,i.useRef)([]),m=(0,i.useRef)(null),v=(0,i.useMemo)(()=>{let n=nh(t),r=np(e,null!=n);return[...e.slice(0,r),...n?[n]:[],...e.slice(r)]},[t,e]),y=(0,i.useRef)(v);y.current=v;let b=(0,i.useRef)(t);b.current=t;let w=(0,i.useCallback)(()=>{let e=n.current;if(!e)return;let t=y.current;a(function(e){let{plan:t,refs:n,scrollEl:r,slotOf:i,isUserMessage:o,textOf:s}=e,l=r.scrollHeight;if(!l||l<=0)return[];let a=r.getBoundingClientRect().top,d=[],c=e=>{if("message"===e.kind){if(!e.attachRef)return;let t=e.messageIndex;return null==t?void 0:t}return e.attachRefMessageIndex};for(let e of t){let t=c(e);if(void 0===t||!o(t))continue;let u=i(t);if(void 0===u)continue;let p=n[u];if(!p)continue;let h=p.getBoundingClientRect().top-a+r.scrollTop;d.push({index:t,refIndex:u,topRatio:Math.max(0,Math.min(1,h/l)),text:s(t)})}return d}({plan:b.current,refs:o.current??[],scrollEl:e,slotOf:e=>{let n=t[e]?.role;if("user"!==n&&"assistant"!==n)return;let r=0;for(let n=0;n<e;n+=1){let e=t[n]?.role;("user"===e||"assistant"===e)&&(r+=1)}return r},isUserMessage:e=>t[e]?.role==="user",textOf:e=>(function(e){if("user"!==e.role)return"";let t=e.content;return"string"==typeof t?t:Array.isArray(t)?t.filter(e=>"text"===e.type&&"string"==typeof e.text).map(e=>e.text).join("\n"):""})(t[e]??{})})),c({top:e.scrollHeight-e.clientHeight>0?e.scrollTop/e.scrollHeight:0,height:e.scrollHeight>0?e.clientHeight/e.scrollHeight:1})},[n,o]),k=(0,i.useRef)(!1),j=(0,i.useCallback)(()=>{if(m.current){k.current=!0;return}m.current=setTimeout(()=>{m.current=null,w(),k.current&&(k.current=!1,j())},150)},[w]);(0,i.useEffect)(()=>{let e=n.current;if(!e)return;e.addEventListener("scroll",j,{passive:!0});let t=new ResizeObserver(j);return t.observe(e),e.firstElementChild&&t.observe(e.firstElementChild),j(),()=>{e.removeEventListener("scroll",j),t.disconnect(),m.current&&(clearTimeout(m.current),m.current=null)}},[n,j]),(0,i.useEffect)(()=>{let e=[0,120,400].map(e=>setTimeout(w,e));return()=>e.forEach(e=>clearTimeout(e))},[e.length,t.length,w]),(0,i.useEffect)(()=>{let e=f.current;if(!e)return;let t=()=>g(e.clientHeight),n=new ResizeObserver(t);return n.observe(e),t(),()=>n.disconnect()},[l.length]);let S=(0,i.useCallback)(e=>{let t=f.current,n=x.current[e],r=t?.getBoundingClientRect(),i=n?.getBoundingClientRect(),o=r&&i?i.top-r.top+i.height/2:h/2;return Math.max(8,Math.min(Math.max(8,h-180-8),o-90))},[h]),C=(0,i.useCallback)(e=>{let t=n.current;if(!t)return;let r=l.find(t=>t.index===e),i=r?o.current?.[r.refIndex]:null;if(!i)return;let s=i.getBoundingClientRect().top-t.getBoundingClientRect().top+t.scrollTop;t.scrollTo({top:s,behavior:"smooth"})},[l,n,o]),_=(0,i.useCallback)(e=>{if("ArrowDown"!==e.key&&"ArrowUp"!==e.key)return;e.preventDefault();let t=u??0;p("ArrowDown"===e.key?Math.min(l.length-1,t+1):Math.max(0,t-1))},[u,l.length]);if(0===l.length||h>0&&h<120)return null;let I=d.top+d.height,R=null;l.forEach((e,t)=>{e.topRatio<=I&&(R=t)});let T=null===u?null:l.findIndex(e=>e.index===u);return(0,r.jsxs)("div",{ref:f,"data-message-nav":"true",role:"navigation","aria-label":s("nav_userMessages"),onKeyDown:_,onMouseLeave:()=>p(null),style:{width:18,height:"100%",position:"relative",userSelect:"none"},children:[(0,r.jsx)("div",{style:{position:"absolute",top:12,bottom:12,left:0,right:0,display:"flex",flexDirection:"column",alignItems:"center",justifyContent:"center",gap:9,overflow:"hidden"},children:l.map((e,t)=>{let n=u===e.index,i=R===t;return(0,r.jsx)("button",{type:"button","data-nav-index":e.index,ref:e=>{x.current[t]=e},"aria-label":function(e,t=120){let n=e.replace(/\s+/g," ").trim();return n.length>t?`${n.slice(0,t)}…`:n}(e.text)||s("nav_userMessages"),"aria-current":i?"true":void 0,onClick:()=>C(e.index),onMouseEnter:()=>p(e.index),onFocus:()=>p(e.index),style:{width:18,height:14,flexShrink:0,padding:0,border:"none",background:"none",cursor:"pointer",display:"flex",alignItems:"center",justifyContent:"center"},children:(0,r.jsx)("span",{"aria-hidden":"true",style:{display:"block",width:12,height:2,borderRadius:1,background:i||n?"var(--text)":"var(--border)",transition:"background 0.1s"}})},e.index)})}),null!==T&&l[T]&&(0,r.jsx)("div",{role:"tooltip","data-nav-preview":"true",style:{position:"absolute",left:"100%",top:S(T),width:340,maxWidth:340,maxHeight:180,overflow:"hidden",padding:"8px 10px",border:"1px solid var(--border)",borderRadius:8,background:"var(--bg)",boxShadow:"0 6px 24px rgba(0,0,0,0.16)",color:"var(--text)",fontSize:12,lineHeight:1.5,whiteSpace:"pre-wrap",overflowWrap:"anywhere",display:"-webkit-box",WebkitLineClamp:10,WebkitBoxOrient:"vertical",pointerEvents:"none",zIndex:60},children:l[T].text.trim()||s("nav_userMessages")})]})}function oW(e){return"number"==typeof e.expiresAt&&Number.isFinite(e.expiresAt)&&e.expiresAt<=Date.now()}function oA(){return(0,r.jsx)("svg",{width:"16",height:"16",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":"true",children:(0,r.jsx)("polyline",{points:"20 6 9 17 4 12"})})}function oP(){return(0,r.jsxs)("svg",{width:"16",height:"16",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":"true",children:[(0,r.jsx)("line",{x1:"18",y1:"6",x2:"6",y2:"18"}),(0,r.jsx)("line",{x1:"6",y1:"6",x2:"18",y2:"18"})]})}let o$={width:"100%",maxWidth:"100%",minHeight:26,padding:"6px 9px",overflow:"hidden",border:"1px solid var(--border)",borderRadius:6,font:"inherit",fontSize:12,lineHeight:1.45,textAlign:"left",whiteSpace:"normal",overflowWrap:"anywhere"},oH={minWidth:0,height:28,flex:1,padding:"0 8px",border:"1px solid var(--border)",borderRadius:6,outline:"none",background:"var(--bg)",color:"var(--text)",font:"inherit",fontSize:12};function oF({request:e,disabled:t=!1,onRespond:n}){let{t:o}=(0,ea.s9)(),s=(0,i.useRef)(null),[l,a]=(0,i.useState)(null),[d,c]=(0,i.useState)({requestId:e.id,value:""}),[u,p]=(0,i.useState)({requestId:e.id,value:"editor"===e.method?e.prefill??"":""}),h=u.requestId===e.id?u.value:"",g=d.requestId===e.id?d.value:"",f=oW(e),x=l===e.id,m=t||f||x,v=e.id,y=r=>{t||s.current===v||oW(e)||(s.current=v,a(v),n(r))},b=t=>{c({requestId:e.id,value:t})},w="select"===e.method?e.options:[],k=f?o("extension_expired"):t?o("extension_waitingEnded"):x?o("extension_responseSent"):null;return(0,r.jsx)("div",{role:"dialog","aria-modal":"true","aria-label":`${o("extension_extension")}: ${e.title}`,style:{flexShrink:0,display:"flex",justifyContent:"center",background:"var(--bg)"},children:(0,r.jsxs)("section",{"aria-label":`${o("extension_extension")}: ${e.title}`,style:{width:"min(1230px, 100%)",maxHeight:"min(52vh, 560px)",display:"flex",flexDirection:"column",overflow:"hidden",border:"1px solid color-mix(in srgb, var(--accent) 20%, var(--border))",borderRadius:10,background:"var(--bg-panel)",boxShadow:"0 12px 40px color-mix(in srgb, var(--bg) 70%, transparent)"},children:[(0,r.jsxs)("div",{style:{display:"flex",minHeight:32,alignItems:"center",gap:8,padding:"6px 10px 6px 12px",borderBottom:"1px solid var(--border)"},children:[(0,r.jsx)("span",{"aria-hidden":"true",style:{width:6,height:6,flexShrink:0,borderRadius:"50%",background:m?"var(--text-dim)":"var(--accent)"}}),(0,r.jsx)("div",{title:e.title,style:{minWidth:0,flex:1,overflow:"hidden",color:"var(--text)",fontSize:13,fontWeight:650},children:(0,r.jsx)(rT,{className:"markdown-body--extension",children:e.title})}),(0,r.jsxs)("span",{style:{flexShrink:0,color:"var(--text-dim)",fontFamily:"var(--font-mono)",fontSize:9,letterSpacing:.35,textTransform:"uppercase"},children:[o("extension_extension")," \xb7 ",e.method]})]}),(0,r.jsxs)("div",{style:{flex:"1 1 auto",minHeight:0,padding:"10px 12px",overflowY:"auto",overscrollBehavior:"auto",touchAction:"auto"},children:["confirm"===e.method&&(0,r.jsxs)("div",{style:{display:"flex",alignItems:"flex-start",gap:10},children:[(0,r.jsx)("div",{style:{minWidth:0,flex:1,color:"var(--text-muted)",fontSize:12,lineHeight:1.5,overflowWrap:"anywhere"},children:(0,r.jsx)(rT,{className:"markdown-body--extension",children:e.message})}),(0,r.jsxs)("div",{style:{display:"flex",flexShrink:0,alignItems:"center",gap:5},children:[(0,r.jsx)("button",{type:"button",className:"sidebar-icon-btn sidebar-icon-btn--danger",disabled:m,title:o("extension_cancel"),"aria-label":o("extension_cancel"),onClick:()=>y({cancelled:!0}),children:(0,r.jsx)(oP,{})}),(0,r.jsx)("button",{type:"button",className:"sidebar-icon-btn",disabled:m,title:o("extension_confirm"),"aria-label":o("extension_confirm"),onClick:()=>y({confirmed:!0}),style:{color:"var(--accent)"},children:(0,r.jsx)(oA,{})})]})]}),"input"===e.method&&(0,r.jsxs)("div",{style:{display:"flex",minWidth:0,alignItems:"center",gap:5},children:[(0,r.jsx)("input",{value:g,disabled:m,placeholder:e.placeholder,"aria-label":e.title,autoComplete:"off",autoFocus:!0,onChange:e=>b(e.target.value),onKeyDown:e=>{if(!e.nativeEvent.isComposing){if("Enter"===e.key){e.preventDefault(),y({value:g});return}"Escape"===e.key&&(e.preventDefault(),e.stopPropagation(),g.length>0?b(""):e.currentTarget.blur())}},style:oH}),(0,r.jsx)("button",{type:"button",className:"sidebar-icon-btn",disabled:m,title:o("extension_submit"),"aria-label":o("extension_submit"),onClick:()=>y({value:g}),style:{color:"var(--accent)"},children:(0,r.jsx)(oA,{})}),(0,r.jsx)("button",{type:"button",className:"sidebar-icon-btn sidebar-icon-btn--danger",disabled:m,title:o("extension_cancel"),"aria-label":o("extension_cancel"),onClick:()=>y({cancelled:!0}),children:(0,r.jsx)(oP,{})})]}),"editor"===e.method&&(0,r.jsxs)("div",{style:{display:"flex",flexDirection:"column",gap:8},children:[(0,r.jsx)("textarea",{value:h,disabled:m,placeholder:e.prefill??"","aria-label":e.title,autoComplete:"off",autoFocus:!0,onChange:t=>p({requestId:e.id,value:t.target.value}),onKeyDown:e=>{e.nativeEvent.isComposing||((e.metaKey||e.ctrlKey)&&"Enter"===e.key&&(e.preventDefault(),y({value:h})),"Escape"===e.key&&(e.preventDefault(),e.stopPropagation(),y({cancelled:!0})))},style:{minWidth:0,minHeight:110,maxHeight:320,padding:"8px 10px",border:"1px solid var(--border)",borderRadius:6,outline:"none",background:"var(--bg)",color:"var(--text)",font:"inherit",fontSize:12,lineHeight:1.55,fontFamily:"var(--font-mono)",resize:"vertical",overflowY:"auto"}}),(0,r.jsxs)("div",{style:{display:"flex",flexWrap:"wrap",alignItems:"center",gap:5},children:[(0,r.jsx)("button",{type:"button",className:"extension-card-btn",disabled:m,title:o("extension_submit"),"aria-label":o("extension_submit"),onClick:()=>y({value:h}),style:{color:"var(--accent)",borderColor:"var(--accent)"},children:o("extension_submit")}),(0,r.jsx)("button",{type:"button",className:"extension-card-btn",disabled:m,title:o("extension_cancel"),"aria-label":o("extension_cancel"),onClick:()=>y({cancelled:!0}),children:o("extension_cancel")}),(0,r.jsx)("span",{style:{marginLeft:"auto",fontSize:10,color:"var(--text-dim)"},children:o("extension_ctrlEnterHint")})]})]}),"select"===e.method&&(0,r.jsxs)("div",{style:{display:"flex",flexDirection:"column",gap:8},children:[(0,r.jsx)("div",{role:"group","aria-label":o("extension_selectAnOption"),style:{display:"flex",flexDirection:"column",gap:6},children:w.map((e,t)=>(0,r.jsx)("button",{type:"button",disabled:m,title:e,onClick:()=>{y({value:e})},onMouseEnter:e=>{m||(e.currentTarget.style.background="var(--bg-hover)")},onMouseLeave:e=>{e.currentTarget.style.background="var(--bg)"},style:{...o$,background:"var(--bg)",color:m?"var(--text-dim)":"var(--text)",cursor:m?"not-allowed":"pointer"},children:e},`${t}-${e}`))}),(0,r.jsx)("div",{style:{display:"flex",flexWrap:"wrap",alignItems:"center",gap:5},children:(0,r.jsx)("button",{type:"button",className:"extension-card-btn",disabled:m,title:o("extension_cancel"),"aria-label":o("extension_cancel"),onClick:()=>y({cancelled:!0}),children:o("extension_cancel")})})]})]}),k&&(0,r.jsx)("div",{role:"status","aria-live":"polite",style:{padding:"5px 10px",borderTop:"1px solid var(--border)",background:"var(--bg-subtle)",color:f?"var(--status-warning)":"var(--text-dim)",fontSize:10,lineHeight:1.4},children:k})]})})}var oD=n(38798);function oN(e,t=12,n=[]){let r=new Map;for(let t of e){let e=t.projectRoot??t.cwd;if(!e)continue;let n=t.modified?Date.parse(t.modified):t.created?Date.parse(t.created):0,i=r.get(e)??{count:0,latest:0};i.count+=1,n>i.latest&&(i.latest=n),r.set(e,i)}let i=[...r.entries()].map(([e,t])=>({cwd:e,count:t.count,latest:t.latest})).sort((e,t)=>t.latest-e.latest).slice(0,t),o=new Set(i.map(e=>e.cwd)),s=n.filter(e=>!o.has(e)).map(e=>({cwd:e,count:0,latest:0}));return s.length>0?[...s,...i].slice(0,t):i}let oB="pidance.guideWorktrees.v1",oO=null;function oU(){try{let e=window.localStorage.getItem(oB);return function(e,t){let n,r=new Map;if(!e)return r;try{n=JSON.parse(e)}catch{return r}if("object"!=typeof n||null===n||Array.isArray(n))return r;for(let[e,i]of Object.entries(n)){if("object"!=typeof i||null===i||Array.isArray(i))continue;let{items:n,at:o}=i;Array.isArray(n)&&"number"==typeof o&&(t-o>=6e4||r.set(e,{items:n,at:o}))}return r}(e,Date.now())}catch{return new Map}}function oq(e){try{window.localStorage.setItem(oB,function(e){let t={};for(let[n,r]of e)t[n]=r;return JSON.stringify(t)}(e))}catch{}}function oK({targetCwd:e,onTargetChange:t}){let{t:n}=(0,ea.s9)(),[o,s]=(0,i.useState)([]),[l,a]=(0,i.useState)(!0),[d,c]=(0,i.useState)(null),[u,p]=(0,i.useState)(null),[h,g]=(0,i.useState)(!1),f=(0,i.useRef)((oO||(oO={data:new Map,loadedAt:new Map,inFlight:new Map}),oO)),x=(0,i.useRef)(null);(0,i.useEffect)(()=>{var e=f.current;for(let[t,n]of oU())e.data.has(t)&&e.loadedAt.has(t)||(e.data.set(t,n.items),e.loadedAt.set(t,n.at))},[]);let m=(0,i.useMemo)(()=>L().addedProjectRoots,[]);(0,i.useEffect)(()=>{let e=!1,t=Y();return t&&t.length>0&&(s(oN(t,12,m)),a(!1)),(async()=>{try{let t=await fetch("/api/sessions"),n=(await t.json()).sessions??[];G(n);let r=oN(n,12,m);e||s(r)}catch{}finally{e||a(!1)}})(),()=>{e=!0}},[m]);let v=(0,i.useCallback)(e=>{c(e),x.current=e;let t=function(e,t,n,r=Date.now()){let i=e.loadedAt.get(t),o=void 0!==i&&r-i<6e4?e.data.get(t)??null:null,s=e.inFlight.get(t);if(s)return{promise:s,stale:o};let l=Promise.resolve().then(n).then(n=>(e.data.set(t,n),e.loadedAt.set(t,r),n)).finally(()=>{e.inFlight.get(t)===l&&e.inFlight.delete(t)});return e.inFlight.set(t,l),{promise:l,stale:o}}(f.current,e,async()=>{let t=new URLSearchParams({cwd:e}),n=await fetch(`/api/worktrees?${t.toString()}`),r=(await n.json()).worktrees??[],i=oU();return i.set(e,{items:r,at:Date.now()}),oq(i),r});return t.stale?(p(t.stale),g(!1)):(p(null),g(!0)),t.promise.then(t=>{x.current===e&&(p(t),g(!1))}).catch(()=>{x.current===e&&(p(e=>e??[]),g(!1))})},[]);(0,i.useEffect)(()=>{var t;let n,r=(t=x.current,(n=e?function(e,t){if(e.some(e=>e.cwd===t))return t;let n=t.match(/^(.+)-worktrees\/[^/]+$/);if(n&&e.some(e=>e.cwd===n[1]))return n[1];let r=e.filter(e=>t.startsWith(e.cwd+"/")).sort((e,t)=>t.cwd.length-e.cwd.length)[0];return r?r.cwd:null}(o,e):null)?n===t?{kind:"keep"}:{kind:"load",root:n}:null===t?{kind:"keep"}:{kind:"clear"});"clear"===r.kind?(x.current=null,c(null),p(null),g(!1)):"load"===r.kind&&v(r.root)},[e,o,v]);let y=u?.find(e=>e.isMain)??null,b=u?.filter(e=>!e.isMain)??[],w=null!==u&&u.length>0,k=e&&u?.some(t=>t.path===e)?e:"",[j,S]=(0,i.useState)(!1),[C,_]=(0,i.useState)(""),[I,R]=(0,i.useState)(!1),[T,M]=(0,i.useState)(null),E=(0,i.useRef)(null);(0,i.useEffect)(()=>{j&&E.current?.focus()},[j]);let z=(0,i.useCallback)(async()=>{let e=C.trim();if(e&&d&&!I){R(!0),M(null);try{var n,r;let i=await fetch("/api/worktrees",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({cwd:d,branch:e})}),o=await i.json();if(!i.ok||!o.path)return void M(o.error??`HTTP ${i.status}`);t(o.path,d??o.path),S(!1),_(""),oO&&(d?(n=oO,r=d,n.data.delete(r),n.loadedAt.delete(r),n.inFlight.delete(r)):(oO.data.clear(),oO.loadedAt.clear(),oO.inFlight.clear()));let s=oU();s.delete(d),oq(s),await v(d)}catch(e){M(e instanceof Error?e.message:String(e))}finally{R(!1)}}},[C,d,I,t,v]);return(0,r.jsxs)("div",{className:"guide-selectors",children:[(0,r.jsxs)("div",{className:"guide-selector",children:[(0,r.jsx)(oD.A,{size:12,className:"guide-selector-icon","aria-hidden":!0}),(0,r.jsxs)("select",{className:"guide-select",value:d??"",disabled:l||0===o.length,onChange:e=>{let n=e.target.value;n&&(t(n,n),v(n))},"aria-label":n("guide_projectTitle"),children:[(0,r.jsx)("option",{value:"",disabled:!0,children:l?n("guide_loading"):0===o.length?n("guide_noProjects"):n("guide_projectPlaceholder")}),o.map(e=>{var t;return(0,r.jsx)("option",{value:e.cwd,title:`${e.cwd} \xb7 ${n("guide_sessionCount",{count:e.count})}`,children:(t=e.cwd).replace(/[\\/]+$/,"").split(/[\\/]/).filter(Boolean).pop()||t},e.cwd)})]})]}),w&&(0,r.jsxs)("div",{className:"guide-selector",children:[(0,r.jsx)(nw.A,{size:12,className:"guide-selector-icon","aria-hidden":!0}),(0,r.jsxs)("select",{className:"guide-select",value:k,disabled:!d||h||null===u,onChange:e=>{let n=e.target.value;n&&t(n,d??n)},"aria-label":n("guide_worktreeTitle"),children:[(0,r.jsx)("option",{value:"",disabled:!0,children:n("guide_branchPlaceholder")}),y&&(0,r.jsx)("optgroup",{label:n("guide_mainWorktree"),children:(0,r.jsx)("option",{value:y.path,children:y.branch??y.path})}),b.length>0&&(0,r.jsx)("optgroup",{label:n("guide_worktree"),children:b.map(e=>(0,r.jsxs)("option",{value:e.path,children:[e.branch??e.path," \xb7 ",e.path]},e.path))})]}),!I&&!j&&(0,r.jsx)("button",{type:"button",className:"guide-new-worktree-btn",title:n("guide_newWorktree"),"aria-label":n("guide_newWorktree"),disabled:!d||h,onClick:()=>{M(null),S(!0)},children:(0,r.jsx)(rp.A,{size:12})})]}),w&&j&&(0,r.jsxs)("div",{className:"guide-worktree-form",children:[(0,r.jsx)("input",{ref:E,className:"guide-worktree-input",value:C,placeholder:n("guide_newWorktreePlaceholder"),disabled:I,onChange:e=>_(e.target.value),onKeyDown:e=>{"Enter"!==e.key||e.shiftKey||z(),"Escape"===e.key&&(S(!1),_(""),M(null))}}),(0,r.jsx)("button",{type:"button",className:"extension-card-btn",disabled:I||!C.trim(),onClick:()=>void z(),children:I?n("guide_creatingWorktree"):n("guide_createWorktree")}),(0,r.jsx)("button",{type:"button",className:"extension-card-btn",disabled:I,onClick:()=>{S(!1),_(""),M(null)},children:n("extension_cancel")}),T&&(0,r.jsx)("span",{className:"guide-worktree-error",children:T})]})]})}let oV={pending:"todo_pending",in_progress:"todo_inProgress",completed:"todo_completed"},oJ={high:"todo_high",medium:"todo_medium",low:"todo_low"},oY={high:"var(--status-danger)",medium:"var(--status-warning)",low:"var(--text-dim)"};function oG({status:e}){return(0,r.jsx)("span",{className:"in_progress"===e?"animate-[pulse_1.5s_ease-in-out_infinite]":void 0,style:{display:"inline-flex",flex:"0 0 14px",color:"completed"===e?"var(--status-success)":"in_progress"===e?"var(--accent)":"var(--text-dim)"},"aria-hidden":"true",children:(0,r.jsxs)("svg",{width:"14",height:"14",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:[(0,r.jsx)("circle",{cx:"12",cy:"12",r:"8"}),"completed"===e?(0,r.jsx)("polyline",{points:"8.5 12.5 11 15 15.8 9.6"}):"in_progress"===e?(0,r.jsx)("circle",{cx:"12",cy:"12",r:"2.5",fill:"currentColor",stroke:"none"}):null]})})}function oZ({todos:e,collapsed:t,onToggle:n}){let{t:o}=(0,ea.s9)(),s=(0,i.useId)();if(0===e.length)return null;let l=e.reduce((e,t)=>e+ +("completed"===t.status),0),a=e.find(e=>"in_progress"===e.status)??null,d=e.reduce((e,t)=>e+ +("in_progress"===t.status),0),c=Math.round(l/e.length*100),u=l===e.length;return(0,r.jsxs)("section",{"aria-label":o("todo_toggle"),style:{marginBottom:8,overflow:"hidden",border:"1px solid var(--border)",borderRadius:8,background:"var(--bg-panel)"},children:[(0,r.jsxs)("button",{type:"button","aria-controls":s,"aria-expanded":!t,title:t?o("todo_expand"):o("todo_collapse"),onClick:n,style:{display:"flex",width:"100%",minHeight:32,alignItems:"center",gap:8,padding:"5px 9px",border:0,background:"transparent",color:"var(--text-muted)",cursor:"pointer",font:"inherit",textAlign:"left"},children:[(0,r.jsx)("svg",{width:"12",height:"12",viewBox:"0 0 12 12",fill:"none",stroke:"currentColor",strokeWidth:"1.6",strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":"true",style:{flexShrink:0,transform:t?"none":"rotate(90deg)",transition:"transform 0.15s ease"},children:(0,r.jsx)("polyline",{points:"4 2.5 7.5 6 4 9.5"})}),(0,r.jsx)("span",{style:{flexShrink:0,color:"var(--text-dim)",fontFamily:"var(--font-mono)",fontSize:10,fontWeight:650,letterSpacing:.45,textTransform:"uppercase"},children:o("todo_toggle")}),(0,r.jsxs)("span",{style:{flexShrink:0,color:u?"var(--status-success)":"var(--text-muted)",fontFamily:"var(--font-mono)",fontSize:10},children:[l,"/",e.length]}),(0,r.jsx)("span",{role:"progressbar","aria-label":o("todo_complete"),"aria-valuemin":0,"aria-valuemax":e.length,"aria-valuenow":l,title:`${c}% ${o("todo_complete")}`,style:{width:46,height:3,flexShrink:0,overflow:"hidden",borderRadius:999,background:"color-mix(in srgb, var(--border) 78%, transparent)"},children:(0,r.jsx)("span",{style:{display:"block",width:`${c}%`,height:"100%",borderRadius:"inherit",background:u?"var(--status-success)":"var(--accent)",transition:"width 0.2s ease"}})}),a?(0,r.jsxs)("span",{className:"hidden min-[520px]:flex",style:{minWidth:0,alignItems:"center",gap:5,color:"var(--text-muted)",fontSize:11},children:[(0,r.jsx)("span",{className:"animate-[pulse_1.5s_ease-in-out_infinite]","aria-hidden":"true",style:{width:5,height:5,flexShrink:0,borderRadius:"50%",background:"var(--accent)"}}),(0,r.jsx)("span",{style:{flexShrink:0,color:"var(--accent)",fontFamily:"var(--font-mono)",fontSize:10},children:d>1?`${d} ${o("todo_active")}`:o("todo_active")}),(0,r.jsx)("span",{style:{minWidth:0,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:a.activeForm??a.content})]}):(0,r.jsx)("span",{style:{flex:1}})]}),!t&&(0,r.jsx)("ul",{id:s,style:{maxHeight:224,margin:0,padding:"3px 0 5px",overflowY:"auto",borderTop:"1px solid var(--border)",listStyle:"none"},children:e.map(e=>{let t="completed"===e.status;return(0,r.jsxs)("li",{style:{display:"flex",alignItems:"flex-start",gap:8,padding:"4px 10px",color:t?"var(--text-dim)":"var(--text)",fontSize:12,lineHeight:1.45,opacity:t?.78:1},children:[(0,r.jsx)("span",{style:{paddingTop:2},children:(0,r.jsx)(oG,{status:e.status})}),(0,r.jsxs)("span",{className:"sr-only",children:[o(oV[e.status]),": "]}),(0,r.jsxs)("span",{style:{minWidth:0,flex:1},children:[(0,r.jsx)("span",{style:{display:"block",overflowWrap:"anywhere",textDecoration:t?"line-through":"none",textDecorationColor:"color-mix(in srgb, var(--text-dim) 60%, transparent)"},children:e.content}),e.blockedBy&&e.blockedBy.length>0?(0,r.jsx)("span",{style:{display:"block",marginTop:1,color:"var(--text-dim)",fontSize:10},children:o("todo_blockedBy",{list:e.blockedBy.join(", ")})}):null]}),e.priority?(0,r.jsx)("span",{title:`${o(oJ[e.priority])} ${o("todo_priority")}`,style:{flexShrink:0,paddingTop:1,color:oY[e.priority],fontFamily:"var(--font-mono)",fontSize:9,fontWeight:"high"===e.priority?700:550,letterSpacing:.35,textTransform:"uppercase"},children:o(oJ[e.priority])}):null]},e.id)})})]})}var oX=n(32383);function oQ(e){return e.isNew?e.intentId?{kind:"new",intentId:e.intentId}:null:e.persistedSessionId?{kind:"persisted",sessionId:e.persistedSessionId}:null}function o0(e,t){if(!t||"object"!=typeof e||null===e||Array.isArray(e))return null;let n=e.sessionQueue,r=("object"!=typeof n||null===n||Array.isArray(n)?void 0:n[t])??e[`sessionQueue.${t}`];return Array.isArray(r)?{items:r.filter(e=>"string"==typeof e&&e.trim().length>0),revision:null}:"object"==typeof r&&null!==r?Array.isArray(r.items)?{items:r.items.filter(e=>"string"==typeof e&&e.trim().length>0),revision:"number"==typeof r.revision?r.revision:null}:null:null}let o1={confirmed:[],pending:null,revision:0,syncs:0};function o2(e){return[...e.pending??e.confirmed]}function o4(e,t,n){return{...e,[t]:n}}function o6(e,t,n,r){let i=e[t]??o1;return i.revision===r&&i.syncs<=0?null!==i.pending?e:o4(e,t,{...i,confirmed:[...n]}):e}function o5(e,t){return"number"!=typeof t?{accept:!0,seen:e}:void 0!==e&&t<e?{accept:!1,seen:e}:{accept:!0,seen:t}}function o8(e){return e.blockingQueue??[]}function o3(e){let t=e[0];return t?{dialog:t}:{dialog:null}}function o9(e,t){let n=o3(t);return{...e,blockingQueue:t,dialog:n.dialog}}function o7(e,t){let n=o8(e);return 0===n.length?e.dialog?.id===t?{...e,dialog:null,blockingQueue:[]}:e:-1===n.findIndex(e=>e.id===t)?e:o9(e,n.filter(e=>e.id!==t))}function se(e){let t=e.findIndex(e=>"transient"===e.tier&&!e.exiting);return -1===t?e:e.map((e,n)=>n===t?{...e,exiting:!0}:e)}function st(e,t){switch(t.type){case"add":{if("important"===t.notice.tier)return{...e,visible:[...e.visible,t.notice]};let n=e.visible.filter(e=>"transient"===e.tier).length,r=e.visible.some(e=>"transient"===e.tier&&e.exiting);if(r||n>=5)return{visible:r?e.visible:se(e.visible),pending:[...e.pending,t.notice]};return{...e,visible:[...e.visible,t.notice]}}case"dismiss":return{...e,visible:e.visible.map(e=>e.id===t.id?{...e,exiting:!0}:e),pending:e.pending.filter(e=>e.id!==t.id)};case"toggle_pin":return{...e,visible:e.visible.map(e=>e.id===t.id&&"important"===e.tier?{...e,pinned:!e.pinned}:e)};case"mark_oldest_transient_exiting":return{...e,visible:se(e.visible)};case"remove":return function(e,t){let n=e,r=t;for(;r.length>0&&n.filter(e=>"transient"===e.tier).length<5;){let[e,...t]=r;n=[...n,e],r=t}return r.length>0&&!n.some(e=>e.exiting)&&(n=se(n)),{visible:n,pending:r}}(e.visible.filter(e=>e.id!==t.id),e.pending);default:return e}}let sn=null,sr=["pending","in_progress","completed"],si=["high","medium","low"],so=["pending","in_progress","completed","deleted"];function ss(e){return"object"==typeof e&&null!==e&&!Array.isArray(e)}function sl(e,t){let{cancelled:n,newSessionId:r}=e??{};return n||!r?{kind:"noop"}:{kind:"switch-session",sessionId:r,...t?{prefill:t}:{}}}function sa(e,t,n){if(e.noop)return!1;let r=e.editorText;return"string"==typeof r&&("replace"===n?t?.replaceText(r):""!==r&&t?.insertIfEmpty(r)),!0}function sd(e,t,n){return Math.max(0,e-t-n)}function sc(e,t){return t?40:Math.max(48,Math.round(.1*e))}function su(e,t){switch(t.kind){case"send":case"reset":case"jump-button":return"following";case"up-intent":return"released";case"scroll":if(function(e,t=1){return e<=t}(t.distance,t.bottomTolerance??1)||"down"===t.direction&&t.distance<=t.zoneSize)return"following";if("up"===t.direction&&"following"===e)return"released";return e}}let sp=new Set(["ArrowUp","PageUp","Home"]);function sh(e,t){if(!(e instanceof Element))return!1;let n=e;for(;n&&n!==t;){if(n instanceof HTMLElement){var r;let e=getComputedStyle(n).overflowY;if(("auto"===e||"scroll"===e)&&(r={scrollTop:n.scrollTop,scrollHeight:n.scrollHeight,clientHeight:n.clientHeight}).scrollHeight-r.clientHeight>1&&r.scrollTop>0)return!0}n=n.parentElement}return!1}function sg(e,t){return e&&t?e.provider===t.provider&&e.modelId===t.modelId:!e&&!t}let sf=["off","minimal","low","medium","high","xhigh","max"];function sx(e){return"string"==typeof e&&sf.includes(e)}let sm=["cmd","path","pattern","query","file","name"];function sv(e){return"string"==typeof e&&e.length>0?e:null}function sy(e){return"string"==typeof e&&e.length>0?e:void 0}function sb(e){if(Array.isArray(e)&&0!==e.length&&e.every(e=>"string"==typeof e))return[...e]}function sw(e){if(null==e)return"";if("string"==typeof e)return e.replace(/\r/g,"");if("object"==typeof e){if(Array.isArray(e.content)){let t=[];for(let n of e.content){if("string"==typeof n){t.push(n.replace(/\r/g,""));continue}"object"==typeof n&&null!==n&&"text"===n.type&&"string"==typeof n.text&&t.push(n.text.replace(/\r/g,""))}if(t.length>0||0===e.content.length)return t.join("\n")}if("string"==typeof e.text)return e.text.replace(/\r/g,"")}try{let t=JSON.stringify(e);return void 0===t?String(e):t}catch{return String(e)}}function sk(e){return e.length<=65536?{text:e,truncated:!1}:{text:e.slice(0,65536),truncated:!0}}function sj(e){if("object"!=typeof e||null===e)return;let t=e.command;if("string"==typeof t)return t;if("object"==typeof t&&null!==t){let e="string"==typeof t.command?t.command:t.cmd;if("string"==typeof e)return e}for(let t of sm){let n=e[t];if("string"==typeof n&&n.length>0)return n}}function sS(e,t){if("object"!=typeof t||null===t)return e;let n=sv(t.toolCallId);if(!n)return e;let r=e.get(n),i=sy(t.toolName)??r?.toolName??"",o=sj(t.args)??r?.command,s=sb(t.renderedCallLines)??r?.renderedCallLines;if(r?.status==="running")return i===r.toolName&&o===r.command&&s===r.renderedCallLines?e:new Map(e).set(n,{...r,toolName:i,command:o,renderedCallLines:s});let l={toolCallId:n,toolName:i,command:o,renderedCallLines:s,output:"",startedAt:Date.now(),status:"running"};return new Map(e).set(n,l)}function sC(e){return Array.from(e.values())}function s_(e,t,n){if(e[t]!==n)return e;let r={...e};return delete r[t],r}function sI(e,t){switch(t.type){case"start":return{isStreaming:!0,streamingMessage:null};case"update":return{isStreaming:!0,streamingMessage:t.message??null};case"end":case"reset":return{isStreaming:!1,streamingMessage:null};default:return e}}function sR(e){return new Promise(t=>setTimeout(t,e))}function sT(e){return e instanceof Error&&"AbortError"===e.name}function sM(e,t){return e&&"object"==typeof e?"number"!=typeof e.tokensBefore||"number"!=typeof e.estimatedTokensAfter?null:{reason:t,tokensBefore:e.tokensBefore,estimatedTokensAfter:e.estimatedTokensAfter}:null}let sE="pi-sound-enabled",sz="pidance:sound-enabled-changed";function sL(){try{let e=localStorage.getItem(sE);return null===e||"true"===e}catch{return!0}}function sW(e){try{localStorage.setItem(sE,String(e))}catch{}window.dispatchEvent(new CustomEvent(sz,{detail:{enabled:e}}))}function sA(e,t=50){return e+t}function sP({messageCount:e,toolCallCount:t,children:n,t:o}){let[s,l]=(0,i.useState)(!0),a=[o("chat_processDetails"),`${e} ${o(1===e?"chat_message":"chat_messages")}`];return t>0&&a.push(`${t} ${o(1===t?"chat_toolCall":"chat_toolCalls")}`),(0,r.jsxs)("div",{style:{marginBottom:14},children:[(0,r.jsxs)("button",{type:"button","aria-expanded":s,onClick:()=>l(e=>!e),style:{display:"flex",alignItems:"center",gap:8,width:"auto",minHeight:24,padding:"2px 0",border:"none",background:"transparent",color:"var(--text-muted)",cursor:"pointer",fontSize:12,textAlign:"left"},title:o(s?"chat_hideProcess":"chat_showProcess"),children:[(0,r.jsx)("svg",{width:"12",height:"12",viewBox:"0 0 12 12",fill:"none",stroke:"currentColor",strokeWidth:"1.6",strokeLinecap:"round",strokeLinejoin:"round",style:{flexShrink:0,transform:s?"rotate(90deg)":"none",transition:"transform 0.15s"},children:(0,r.jsx)("polyline",{points:"4 2.5 7.5 6 4 9.5"})}),(0,r.jsx)("span",{style:{minWidth:0,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:a.join(" \xb7 ")})]}),s&&(0,r.jsx)("div",{style:{marginTop:8},children:n})]})}function s$({session:e,newSessionCwd:t,newSessionIntentId:n,guideDefaultCwd:o,onGuideTargetChange:l,onAgentEnd:a,onAgentRunningChange:d,onSessionCreated:c,onSessionForked:u,modelsRefreshKey:p,chatInputRef:h,onBranchDataChange:g,onSystemPromptChange:f,onSessionStatsChange:x,onSessionStatsPanelOpen:m,onContextUsageChange:v,onTurnMetricsChange:y,onOpenFile:b}){var w;let k,{t:j}=(0,ea.s9)(),{soundEnabled:S,onSoundToggle:C,playDoneSound:_,unlockAudio:I}=function(){let[e,t]=(0,i.useState)(()=>sL()),n=(0,i.useRef)(e);(0,i.useEffect)(()=>{n.current=e},[e]),(0,i.useEffect)(()=>{let e=()=>{let e=sL();n.current=e,t(e)},r=t=>{t.key===sE&&e()};return window.addEventListener("storage",r),window.addEventListener(sz,e),()=>{window.removeEventListener("storage",r),window.removeEventListener(sz,e)}},[]);let r=(0,i.useRef)(null),o=(0,i.useCallback)(()=>{if(r.current&&"closed"!==r.current.state)return r.current;try{r.current=new AudioContext}catch{return null}return r.current},[]),s=(0,i.useCallback)((e=!1)=>{if(!e&&!n.current)return;let t=o();t&&"suspended"===t.state&&t.resume().catch(()=>{})},[o]),l=(0,i.useCallback)(()=>{let e=!n.current;e&&s(!0),n.current=e,sW(e),t(e)},[s]);return{soundEnabled:e,onSoundToggle:l,setSoundEnabled:(0,i.useCallback)(e=>{e&&s(!0),n.current=e,sW(e),t(e)},[s]),playDoneSound:(0,i.useCallback)(()=>{if(!n.current)return;let e=o();if(!e)return;let t=()=>{try{let t;t=e.currentTime,[523.25,659.25].forEach((n,r)=>{let i=e.createOscillator(),o=e.createGain();i.connect(o),o.connect(e.destination),i.type="sine",i.frequency.value=n;let s=t+.18*r;o.gain.setValueAtTime(0,s),o.gain.linearRampToValueAtTime(.18,s+.02),o.gain.exponentialRampToValueAtTime(.001,s+.45),i.start(s),i.stop(s+.45)})}catch{}};"suspended"===e.state?e.resume().then(t).catch(()=>{}):t()},[o]),unlockAudio:s,soundEnabledRef:n}}(),R=nv(),T=e?.readOnly===!0,[M,E]=(0,i.useState)(()=>{if(o)return o;try{return localStorage.getItem("pidance.draftTargetCwd")}catch{return null}}),z=(0,i.useCallback)((e,t)=>{E(e);try{e?(localStorage.setItem("pidance.draftTargetCwd",e),(0,Z.dM)("draftTargetCwd",e)):(localStorage.removeItem("pidance.draftTargetCwd"),(0,Z.dM)("draftTargetCwd",null))}catch{}e&&l?.(e,t??e)},[l]);(0,i.useEffect)(()=>{o&&z(o)},[o,z]);let L=M??t,W=(0,i.useRef)(_);W.current=_;let A=(0,i.useRef)(S);A.current=S;let{loading:P,historyLoading:$,hasMoreBefore:H,error:F,messages:D,entryIds:N,messageKeys:B,streamState:O,agentRunning:U,turnMetrics:q,bashRunning:K,pendingBash:V,modelNames:J,modelList:Y,modelAuthConfigured:G,modelThinkingLevels:X,modelThinkingLevelMaps:Q,thinkingLevel:ee,thinkingReady:et,retryInfo:en,contextUsage:er,forkingEntryId:ei,isCompacting:eo,compactError:es,compactResult:el,displayModel:ed,sessionStats:ec,defaultThinkingLevel:eu,slashCommands:ep,slashCommandsLoading:eh,queuedMessages:eg,notices:ef,liveNoticeActivities:ex,dismissNotice:em,toggleNoticePin:ev,extensionDialog:ey,extensionCustomUi:eb,extensionStatuses:ew,extensionWidgets:ek,respondToExtensionUi:ej,dismissExtensionUiRequest:eS,sendExtensionCustomInput:eC,todos:e_,isAutoModelSelection:eI,agentPhase:eR,toolExecutionSnapshots:eT,isNew:eM,sessionIdRef:eE,scrollContainerRef:ez,jumpButtonVisible:eL,jumpToBottom:eW,markExternalScrollWrite:eA,notifyProgrammaticSmooth:eP,loadOlderHistory:e$,lockedByOther:eH,handleSend:eF,handleAbort:eD,handleModelChange:eN,handleCompact:eB,handleSteer:eO,handleFollowUp:eU,handlePromptWithStreamingBehavior:eq,handleAbortCompaction:eK,handleRecallQueue:eV,handleSendQueueAsSteer:eJ,handleBuiltinSlashCommand:eY,handleThinkingLevelChange:eG,loadSlashCommands:eZ,handleBranchHere:eX,handleBranchFromAssistant:eQ,handleNewSessionFromHere:e0,handleNewSessionFromAnswer:e2}=function(e){let{t}=(0,ea.s9)(),{session:n,newSessionCwd:r,newSessionIntentId:o,onAgentEnd:s,onAgentRunningChange:l,onSessionCreated:a,onSessionForked:d,modelsRefreshKey:c,onBranchDataChange:u,onSystemPromptChange:p,onSessionStatsPanelOpen:h}=e,g=null===n&&null!==r,f=(0,i.useRef)(r),x=(0,i.useRef)(o??null);f.current=r,x.current=o??null;let m=e1(n),v=m.readOnly,[y,b]=(0,i.useState)(null),[w,k]=(0,i.useState)(!g),[j,S]=(0,i.useState)(!1),[C,_]=(0,i.useState)(!1),[I,R]=(0,i.useState)(null),[T,M]=(0,i.useState)(null),[E,z]=(0,i.useState)([]),[L,W]=(0,i.useState)([]),[A,P]=(0,i.useState)([]),$=(0,i.useRef)(0),H=(0,i.useRef)(null),F=(0,i.useCallback)(()=>{H.current?.abort();let e=new AbortController;return H.current=e,e.signal},[]),D=(0,i.useRef)(!1),N=(0,i.useRef)(!1),[B,O]=(0,i.useReducer)(sI,{isStreaming:!1,streamingMessage:null}),[U,q]=(0,i.useState)(!1),[K,V]=(0,i.useState)({}),[J,Y]=(0,i.useState)(!1),[G,X]=(0,i.useState)(!1),[Q,ee]=(0,i.useState)(null),[et,en]=(0,i.useState)({}),[er,ei]=(0,i.useState)([]),[eo,es]=(0,i.useState)({}),[el,ed]=(0,i.useState)({}),[ec,eu]=(0,i.useState)({}),[ep,eh]=(0,i.useState)(null),[eg,ef]=(0,i.useState)(null),[ex,em]=(0,i.useState)(null),[ev,ey]=(0,i.useState)(null),eb=(0,i.useRef)(null);eb.current=ev;let[ew,ek]=(0,i.useState)(!1),ej=(0,i.useRef)(!1);ej.current=ew;let eS=(0,i.useRef)(null),eC=g?ev??ex??"off":ev??"off",[e_,eI]=(0,i.useState)(null),[eR,eT]=(0,i.useState)(null),eM=(0,i.useRef)(0),eE=(0,i.useCallback)(e=>{eM.current+=1,eT(e)},[]),[ez,eL]=(0,i.useState)(null),[eW,eA]=(0,i.useState)(null),[eP,e$]=(0,i.useState)(null),eH=(0,i.useRef)(null);eH.current=eP;let eF=(0,i.useRef)({}),eD=(0,i.useRef)(0),eN=(0,i.useRef)({}),[eB,eO]=(0,i.useState)(null),eU=(0,i.useRef)(new Map),eq=(0,i.useRef)(new Map),[eK,eV]=(0,i.useState)(!1),[eJ,eY]=(0,i.useState)(null),[eG,eZ]=(0,i.useState)(null),[eX,eQ]=(0,i.useState)(null),[e0,e2]=(0,i.useState)([]),[e4,e6]=(0,i.useState)([]),[e5,e8]=(0,i.useState)(!1),{notices:e3,liveNoticeActivities:e9,addNotice:e7,addLiveActivity:te,clearLiveActivities:tt,dismissNotice:tn,toggleNoticePin:tr}=function(e){let t,n,r,o,s=(sn||(t=new Map,n=null,r=new Set,o=()=>{for(let e of r)e()},sn={subscribe:e=>(r.add(e),()=>{r.delete(e)}),enqueue(e){let n=e.id??`${Date.now()}-${Math.random().toString(36).slice(2,8)}`,r=e.type,i=(e=>{let n=t.get(e);if(n)return n;let r=[];return t.set(e,r),r})(e.sessionId??null);return i.some(e=>e.id===n)||(i.push({id:n,sessionId:e.sessionId??null,message:e.message.trim(),type:r,tier:"warning"===r||"error"===r?"important":"transient",pinned:!1,activityRecord:!0===e.activityRecord}),o()),n},activate(e){n!==e&&(n=e,o())},getVisible:()=>(function(e,t){let n=e.get(t)??[],r=[],i=[];for(let e of n)if("transient"===e.tier){if(r.length>=3)continue;r.push({id:e.id,message:e.message,type:e.type,tier:"transient",pinned:!1,activityRecord:e.activityRecord})}else{if(i.length>=3)continue;i.push({id:e.id,message:e.message,type:e.type,tier:"important",pinned:e.pinned,activityRecord:e.activityRecord})}return[...i,...r]})(t,n),queueLength:e=>(t.get(e??null)??[]).length,dismiss(e){let r=t.get(n);if(!r)return;let i=r.filter(t=>t.id!==e);i.length!==r.length&&(t.set(n,i),o())},togglePin(e){let r=t.get(n);if(!r)return;let i=r.map(t=>t.id===e&&"important"===t.tier?{...t,pinned:!t.pinned}:t);i.some((e,t)=>e!==r[t])&&(t.set(n,i),o())},expireTransient(e){let r=t.get(n);if(!r)return;let i=r.filter(t=>t.id!==e||"transient"!==t.tier);i.length!==r.length&&(t.set(n,i),o())},clearSession(e){t.has(e)&&(t.set(e,[]),o())},resetForTests(){t=new Map,n=null,o()}}),sn),l=e??null,[,a]=(0,i.useReducer)(e=>e+1,0),[,d]=(0,i.useReducer)(st,{visible:[],pending:[]}),[c,u]=(0,i.useState)([]);(0,i.useEffect)(()=>s.subscribe(()=>a()),[s]),(0,i.useEffect)(()=>{s.activate(l)},[s,l]);let p=(0,i.useCallback)(e=>{let t=e.message.trim();t&&s.enqueue({sessionId:l,id:e.id??("u">typeof crypto&&"function"==typeof crypto.randomUUID?crypto.randomUUID():`${Date.now()}-${Math.random().toString(36).slice(2)}`),message:t,type:e.type??"info",activityRecord:!0===e.activityRecord})},[s,l]),h=(0,i.useCallback)(e=>{u(t=>t.some(t=>t.activity.requestId===e.requestId)?t:[...t,{activity:e,timestamp:Date.now()}])},[]),g=(0,i.useCallback)(()=>{u([])},[]),f=(0,i.useCallback)(e=>{s.dismiss(e)},[s]),x=(0,i.useCallback)(e=>{s.togglePin(e)},[s]);return(0,i.useEffect)(()=>{let e=s.getVisible().find(e=>"transient"===e.tier);if(!e)return;let t=setTimeout(()=>{s.expireTransient(e.id)},5e3);return()=>clearTimeout(t)},[s,l,s.getVisible().length]),{notices:s.getVisible(),liveNoticeActivities:c,addNotice:p,addLiveActivity:h,clearLiveActivities:g,dismissNotice:f,toggleNoticePin:x}}(n?.id??null),[ti,to]=(0,i.useState)(null),{extensionDialog:ts,extensionCustomUi:tl,extensionStatuses:ta,extensionWidgets:td,extensionUiStateRef:tc,commitExtensionUiState:tu,patchExtensionUiState:tp,dismissExtensionUiRequest:th}=function(){var e;let[t,n]=(0,i.useState)(null),[r,o]=(0,i.useState)(null),[s,l]=(0,i.useState)([]),[a,d]=(0,i.useState)([]),c=(0,i.useRef)((e={customUi:r,statuses:s,widgets:a},{dialog:null,customUi:e?.customUi??null,statuses:e?.statuses??[],widgets:e?.widgets??[],blockingQueue:[]})),u=(0,i.useCallback)(e=>{c.current=e,n(e.dialog),o(e.customUi),l(e.statuses),d(e.widgets)},[]),p=(0,i.useCallback)(e=>{u({...c.current,...e})},[u]),h=(0,i.useCallback)(e=>{let t=c.current,n=o7(t,e);n!==t&&u(n)},[u]);return{extensionDialog:t,extensionCustomUi:r,extensionStatuses:s,extensionWidgets:a,extensionUiStateRef:c,commitExtensionUiState:u,patchExtensionUiState:p,dismissExtensionUiRequest:h}}(),[tg,tf]=(0,i.useState)({steering:[],followUp:[],followUpRevision:null}),tx=(0,i.useRef)(new Map),tv=(0,i.useRef)({}),ty=(0,i.useRef)(n?.id??null),tb=(0,i.useRef)(Promise.resolve()),tw=(0,i.useCallback)(()=>tv.current[ty.current??""]??o1,[]),tk=(0,i.useCallback)(e=>{tf(t=>({steering:e??t.steering,followUp:o2(tw()),followUpRevision:tI()}))},[tw]),tj=(0,i.useCallback)(e=>{let t=ty.current;t&&(tv.current=o6(tv.current,t,e,(tv.current[t]??o1).revision),tk())},[tk]),tC=(0,i.useCallback)((e,t,n)=>{let r=o5(tx.current.get(e),n);return void 0!==r.seen&&tx.current.set(e,r.seen),!!r.accept&&(tv.current=o6(tv.current,e,t,(tv.current[e]??o1).revision),!0)},[]),tI=(0,i.useCallback)(()=>{let e=ty.current;return e?tx.current.get(e)??null:null},[]),tR=(0,i.useCallback)(e=>{let t={steering:e?.steering??[],followUp:e?.followUp??[],followUpRevision:"number"==typeof e?.followUpRevision?e.followUpRevision:null},n=ty.current;n&&tC(n,t.followUp,t.followUpRevision),tf({steering:t.steering,followUp:o2(tw()),followUpRevision:tI()})},[tw,tC]),tT=(0,i.useCallback)(async e=>{var t,n,r,i,o;let s,l,a,d=ty.current??tA.current;if(!d)return;let c=(t=tv.current,n=d,r=e,l=(s=t[n]??o1).revision+1,{book:o4(t,n,{...s,pending:[...r],revision:l}),revision:l});a=(i=c.book)[o=d]??o1,tv.current=o4(i,o,{...a,syncs:a.syncs+1}),ty.current===d&&tk();let u=tb.current.catch(()=>void 0).then(async()=>{await (0,oX.$)(d,{type:"set_follow_up_queue",items:[...e]})});tb.current=u.catch(()=>void 0);try{await u,tv.current=function(e,t,n,r){let i=e[t]??o1,o=o4(e,t,{...i,syncs:Math.max(0,i.syncs-1)});if(i.revision!==n)return o;let s=o[t]??o1;return o4(o,t,{...s,confirmed:[...r],pending:null})}(tv.current,d,c.revision,e),ty.current===d&&tk()}catch(e){throw tv.current=function(e,t,n){let r=e[t]??o1,i=o4(e,t,{...r,syncs:Math.max(0,r.syncs-1)});if(r.revision!==n)return i;let o=i[t]??o1;return o4(i,t,{...o,pending:null})}(tv.current,d,c.revision),ty.current===d&&tk(),e}},[tk]),[tE,tz]=(0,i.useState)(!1),tL=(0,i.useRef)(null),tW=(0,i.useRef)(null),tA=(0,i.useRef)(n?.id??null),tP=(0,i.useRef)(null);tP.current=oQ({isNew:g,intentId:o??x.current,persistedSessionId:g?null:n?.id??null});let t$=(0,i.useRef)(null);(0,i.useEffect)(()=>{l?.(U,tA.current??n?.id??null)},[U,n?.id,l]);let tH=(0,i.useRef)(n?.id??null),tF=(0,i.useRef)([]),tD=(0,i.useCallback)(e=>{let t=e??tA.current??(x.current?tS(x.current):null);return!!t&&tQ().getRunState(t)?.agentRunning===!0},[]),tN=(0,i.useRef)(!1),tB=(0,i.useRef)(!1),tO=(0,i.useRef)(0),tU=(0,i.useRef)(!1),tq=(0,i.useRef)(0),tK=(0,i.useRef)(null),tV=(0,i.useRef)(async()=>{}),tJ=(0,i.useRef)(void 0),{scrollContainerRef:tY,jumpButtonVisible:tG,jumpToBottom:tZ,notifyAutoFollowSend:tX,notifyAutoFollowBranchReset:t0,notifyAutoFollowEnd:t1,markExternalScrollWrite:t2,notifyProgrammaticSmooth:t4}=function({isMobile:e,loading:t,isNew:n,messages:r,agentRunning:o,bashRunning:s}){let l=(0,i.useRef)(null),a=(0,i.useRef)("following"),[d,c]=(0,i.useState)(!1),u=(0,i.useRef)(!1),p=(0,i.useRef)(!1),h=(0,i.useRef)(!1),g=(0,i.useRef)(!1),f=(0,i.useRef)(0),x=(0,i.useRef)(0),m=(0,i.useRef)(0),v=(0,i.useRef)(0),y=(0,i.useRef)(0),b=(0,i.useRef)(0),w=(0,i.useRef)(!1),k=(0,i.useRef)(!1),j=(0,i.useRef)(!1),S=(0,i.useRef)(!1),[C,_]=(0,i.useState)(null);k.current=e;let I=(0,i.useCallback)(()=>{var e,t,n,r;let i=l.current;if(!i)return void c(!1);let o=(e=a.current,t=i.scrollHeight-i.clientHeight,n=sd(i.scrollHeight,i.scrollTop,i.clientHeight),r=sc(i.clientHeight,k.current),"released"===e&&t>20&&n>r);c(e=>e===o?e:o)},[]),R=(0,i.useCallback)(e=>{a.current!==e&&(a.current=e,I())},[I]),T=(0,i.useCallback)((e="instant")=>{let t=l.current;if(!t||S.current||window.getSelection()?.type==="Range")return;let n=Math.max(0,t.scrollHeight-t.clientHeight);if("smooth"===e){y.current=Date.now()+700,t.scrollTo({top:n,behavior:"smooth"});return}f.current=n,t.scrollTop=n},[]),M=(0,i.useCallback)(()=>{a.current="following",p.current=!0,c(!1)},[]),E=(0,i.useCallback)(()=>{a.current="following",h.current=!0,c(!1)},[]),z=(0,i.useCallback)(()=>{b.current=Date.now()+1500,g.current=!0},[]),L=(0,i.useCallback)(()=>{R(su(a.current,{kind:"jump-button"})),T(j.current?"instant":"smooth")},[R,T]),W=(0,i.useCallback)(()=>{v.current=Date.now()+150},[]),A=(0,i.useCallback)(()=>{y.current=Date.now()+700},[]);return(0,i.useEffect)(()=>{let e=l.current;_(t=>t===e?t:e)},[t,r.length,n]),(0,i.useEffect)(()=>{if(!C)return;let e=()=>{R(su(a.current,{kind:"up-intent"}))},t=t=>{t.deltaY>=0||sh(t.target,C)||e()},n=null,r=null,i=e=>{n=e.touches[0]?.clientY??null,r=e.target},o=t=>{if(null===n)return;let i=t.touches[0]?.clientY;void 0!==i&&i-n>(k.current?12:4)&&(sh(r,C)||e(),n=null)},s=t=>{!sp.has(t.key)||t.target instanceof Element&&t.target.closest("input, textarea, [contenteditable='true']")||e()},l=t=>{let n=t.target;n instanceof Element&&n.closest("input, textarea, [contenteditable='true']")||"following"===a.current&&e()},d=e=>{if(0!==e.button)return;let t=e.target;t instanceof Element&&t.closest("input, textarea, [contenteditable='true'], button, a")||(S.current=!0,a.current=su(a.current,{kind:"up-intent"}))},c=()=>{S.current=!1,I()};return C.addEventListener("selectstart",l),C.addEventListener("pointerdown",d),window.addEventListener("pointerup",c),window.addEventListener("pointercancel",c),C.addEventListener("wheel",t,{passive:!0}),C.addEventListener("touchstart",i,{passive:!0}),C.addEventListener("touchmove",o,{passive:!0}),window.addEventListener("keydown",s),()=>{C.removeEventListener("selectstart",l),C.removeEventListener("pointerdown",d),window.removeEventListener("pointerup",c),window.removeEventListener("pointercancel",c),C.removeEventListener("wheel",t),C.removeEventListener("touchstart",i),C.removeEventListener("touchmove",o),window.removeEventListener("keydown",s)}},[C,R,I]),(0,i.useEffect)(()=>{if(!C)return;f.current=C.scrollTop,m.current=C.scrollHeight,x.current=C.clientHeight;let e=()=>{var e;let t=Date.now(),n=f.current,r=C.scrollTop;f.current=r;let i=x.current,o=m.current;(x.current=C.clientHeight,m.current=C.scrollHeight,t<v.current||t<y.current||(e={previousScrollHeight:o,nextScrollHeight:C.scrollHeight,previousClientHeight:i,nextClientHeight:C.clientHeight}).previousClientHeight>0&&e.nextClientHeight!==e.previousClientHeight||e.previousScrollHeight>0&&e.nextScrollHeight!==e.previousScrollHeight)?I():(R(su(a.current,{kind:"scroll",distance:sd(C.scrollHeight,r,C.clientHeight),direction:r<n?"up":r>n?"down":"none",zoneSize:sc(C.clientHeight,k.current),bottomTolerance:k.current?16:1})),I())};return C.addEventListener("scroll",e,{passive:!0}),()=>C.removeEventListener("scroll",e)},[C,R,I]),(0,i.useEffect)(()=>{let e=o||s;w.current&&!e&&(b.current=Date.now()+1500,"following"===a.current&&requestAnimationFrame(()=>{T("instant"),requestAnimationFrame(()=>{"following"===a.current&&T("instant")})})),w.current=e},[o,s,T]),(0,i.useEffect)(()=>{if(!C)return;let e=C.firstElementChild,t=new ResizeObserver(()=>{m.current=C.scrollHeight,x.current=C.clientHeight;let e=Date.now();if("following"!==a.current)return void I();if(!(e<y.current)){if(e<v.current)return void I();T("instant"),I()}});return t.observe(C),e&&t.observe(e),()=>t.disconnect()},[C,T,I]),(0,i.useEffect)(()=>{0===r.length||l.current&&(p.current||h.current||g.current?(p.current=!1,h.current=!1,g.current=!1,u.current=!0,"following"===a.current&&T("instant")):u.current||(u.current=!0,T("instant")),I())},[r,T,I]),(0,i.useEffect)(()=>{if(!window.matchMedia)return;let e=window.matchMedia("(prefers-reduced-motion: reduce)"),t=()=>{j.current=e.matches};return t(),e.addEventListener("change",t),()=>e.removeEventListener("change",t)},[]),{scrollContainerRef:l,jumpButtonVisible:d,jumpToBottom:L,notifyAutoFollowSend:M,notifyAutoFollowBranchReset:E,notifyAutoFollowEnd:z,markExternalScrollWrite:W,notifyProgrammaticSmooth:A}}({isMobile:e.isMobile??!1,loading:w,isNew:g,messages:E,agentRunning:U,bashRunning:G}),t6=(0,i.useRef)(null),t5=(0,i.useRef)(!1),t8=(0,i.useRef)(!1),t3=(0,i.useRef)(null),t9=(0,i.useMemo)(()=>{let e=function(e){let t=[],n=!1;for(let i of e){var r;if("assistant"===i.role){let e=i.content;if(!Array.isArray(e))continue;for(let i of e){let e=function(e){if(!ss(e)||"toolCall"!==e.type)return null;let t=ss(e.input)?e.input:ss(e.arguments)?e.arguments:{};return{type:"toolCall",toolCallId:"string"==typeof e.toolCallId?e.toolCallId:"string"==typeof e.id?e.id:"",toolName:"string"==typeof e.toolName?e.toolName:"string"==typeof e.name?e.name:"",input:t}}(i);if(null===e||"string"!=typeof(r=e.toolName)||"todowrite"!==r.toLowerCase().replace(/[_-]/g,""))continue;let o=function(e){if(!ss(e.input)||!Array.isArray(e.input.todos))return null;let t=[];for(let[i,o]of e.input.todos.entries()){var n,r;if(!ss(o)||"string"!=typeof o.content||0===o.content.length||!("string"==typeof(n=o.status)&&sr.includes(n))||!("string"==typeof(r=o.priority)&&si.includes(r)))return null;t.push({id:`todo-${i}-${function(e){let t=0x811c9dc5;for(let n=0;n<e.length;n+=1)t^=e.charCodeAt(n),t=Math.imul(t,0x1000193);return(t>>>0).toString(16).padStart(8,"0")}(`${i}\u0000${o.content}\u0000${o.status}\u0000${o.priority}`)}`,content:o.content,status:o.status,priority:o.priority})}return t}(e);null!==o&&(t=o,n=!0)}continue}if("toolResult"===i.role&&"todo"===i.toolName){let e=function(e){if(!ss(e)||!Array.isArray(e.tasks)||"number"!=typeof e.nextId)return null;let t=[];for(let r of e.tasks){var n;if(!ss(r)||"number"!=typeof r.id||"string"!=typeof r.subject||0===r.subject.length||!("string"==typeof(n=r.status)&&so.includes(n))||void 0!==r.activeForm&&"string"!=typeof r.activeForm||void 0!==r.blockedBy&&!(Array.isArray(r.blockedBy)&&r.blockedBy.every(e=>"number"==typeof e)))return null;t.push({id:r.id,subject:r.subject,status:r.status,activeForm:"string"==typeof r.activeForm?r.activeForm:void 0,blockedBy:Array.isArray(r.blockedBy)?r.blockedBy:void 0})}let r=new Map(t.map(e=>[e.id,e])),i=[];for(let e of t){if("deleted"===e.status)continue;let t=(e.blockedBy??[]).filter(e=>{let t=r.get(e);return void 0===t||"pending"===t.status||"in_progress"===t.status}).map(e=>r.get(e)?.subject??`#${e}`);i.push({id:`todo-${e.id}`,content:e.subject,status:e.status,activeForm:e.activeForm,blockedBy:t.length>0?t:void 0})}return i}(i.details);if(null===e)continue;t=e,n=!0}}return n?t:null}(B.streamingMessage?[...E,B.streamingMessage]:E),t=n?.id??tA.current??"";if(e)return t3.current={sessionId:t,todos:e},e;let r=t3.current;return r&&r.sessionId===t?r.todos:[]},[E,B.streamingMessage,n?.id]),t7=function(e,t,n=null){return e??t??n??null}(eP,y?.context.model??eB,g?eg:null),ne=g?ep??eg:t7,nt=(0,i.useMemo)(()=>{if(eR)return null;for(let e=E.length-1;e>=0;e--){let t=E[e];if("assistant"!==t.role)continue;let n=t.usage;if(!n)continue;let r=(n.input??0)+(n.cacheRead??0)+(n.cacheWrite??0);if(r<=0)continue;let i=ne?er.find(e=>e.provider===ne.provider&&e.id===ne.modelId)?.contextWindow??0:0;return{percent:i>0?r/i*100:null,contextWindow:i,tokens:r}}return null},[eR,E,ne,er]),nn=(0,i.useMemo)(()=>{if(ti)return ti;let e={input:0,output:0,cacheRead:0,cacheWrite:0,total:0},t=0,r=0,i=0,o=0,s=0;for(let n of E){if("user"===n.role&&(r+=1),"toolResult"===n.role&&(o+=1),"assistant"!==n.role)continue;i+=1;let l=n.usage;s+=n.content.filter(e=>"toolCall"===e.type).length,l&&(e.input+=l.input??0,e.output+=l.output??0,e.cacheRead+=l.cacheRead??0,e.cacheWrite+=l.cacheWrite??0,t+=l.cost?.total??0)}return(e.total=e.input+e.output+e.cacheRead+e.cacheWrite,0===e.total&&0===E.length)?null:{sessionFile:y?.filePath||void 0,sessionId:tA.current??n?.id??"",sessionName:n?.name,userMessages:r,assistantMessages:i,toolCalls:s,toolResults:o,totalMessages:E.length,tokens:e,cost:t,...eR??nt?{contextUsage:eR??nt??void 0}:{}}},[E,ti,eR,nt,y?.filePath,n?.id,n?.name]),nr=(0,i.useCallback)(async(e,t=!1,n=!1,r=!1,i=!1,o)=>{let s=++$.current,l=F(),a=!1;try{t&&k(!0);let u=tQ(),p=u.getSnapshot(e)?.timelineSeq??0;n&&eL(null);let h=u.beginHydrate(e),g=new URLSearchParams({deferThinking:"1",deferMedia:"1",limit:String(80)}),f=await fetch(`/api/sessions/${encodeURIComponent(e)}?${g}`,{signal:l});if(s!==$.current||tA.current!==e)return null;if(404===f.status)return t&&(b(null),M(null),z([]),tF.current=[],tH.current=e,W([]),P([]),N.current=!1,_(!1),R(null)),null;if(!f.ok)throw Error(`HTTP ${f.status}`);let x=await f.json();if(s!==$.current||tA.current!==e)return null;let m=u.getRunState(e);if(m?.finishingRunId!==null&&m?.finishingRunId!==m?.promptRunId)return null;let v=x.context.entryIds??[],y=x.context.messages??[],w=tH.current===e,j=tQ().getSnapshot(e),S=(j?.entryIds.length??0)>0,C=w&&j?tM(j.messages,j.entryIds,y,v):y,I=tQ().hydrate(e,C,v,{sinceSeq:p,hydrateRequestSeq:h,mode:w&&S?"tail":"replace"});if("superseded"===I)return null;i&&t0(),b(x),M(x.leafId),o?.(),tH.current=e;let T=tF.current,E=!0===x.context.hasMoreBefore||"number"==typeof x.context.totalMessageCount&&x.context.totalMessageCount>T.length;N.current=E,_(E);let L=eq.current.get(e)??null;if(d=eF.current,void 0===d[e]&&e$(e=>(function(e){let{override:t,persisted:n,lastDiskObserved:r}=e;return!t||n&&r&&!sg(n,r)||sg(t,n)?null:t})({override:e,persisted:x.context.model,lastDiskObserved:L})),R(null),sx(x.context.thinkingLevel)&&ey(x.context.thinkingLevel),eS.current=e,ek(!0),x.context.model?.provider&&x.context.model?.modelId&&(eU.current.set(e,{provider:x.context.model.provider,modelId:x.context.model.modelId}),eq.current.set(e,{provider:x.context.model.provider,modelId:x.context.model.modelId}),eO({provider:x.context.model.provider,modelId:x.context.model.modelId})),a=!0,t&&k(!1),!n)return!!r||null;try{let t=await fetch(`/api/sessions/${encodeURIComponent(e)}/state`,{signal:l});if(t.ok){let n=await t.json();if(s!==$.current||tA.current!==e)return null;let r=(0,oX.U)(n);if(r&&n.state){Y(!1);var d,c=n.state;if(void 0!==c.contextUsage&&eT(c.contextUsage??null),void 0!==c.systemPrompt&&eL(c.systemPrompt??null),void 0!==c.thinkingLevel&&sx(c.thinkingLevel)&&ey(c.thinkingLevel),c.model?.provider&&c.model?.modelId&&(eU.current.set(e,{provider:c.model.provider,modelId:c.model.modelId}),eO({provider:c.model.provider,modelId:c.model.modelId})),void 0!==c.extensionStatuses&&tp({statuses:c.extensionStatuses??[]}),void 0!==c.extensionWidgets&&tp({widgets:c.extensionWidgets??[]}),void 0!==c.queuedMessages&&tR(c.queuedMessages),Array.isArray(c.pendingExtensionRequests)){let e=c.pendingExtensionRequests.filter(e=>{let t=e.method;return"select"===t||"confirm"===t||"input"===t||"editor"===t});e.length>0&&tp({blockingQueue:e,...o3(e)})}return{running:r,live:r,activeRun:!0===n.activeRun,lockedByOther:!1,state:n.state}}return Y(!0===n.lockedByOther),r||tf({steering:[],followUp:o2(tw()),followUpRevision:tI()}),{running:!1,live:!1,activeRun:!1,lockedByOther:!0===n.lockedByOther}}return Y(!1),{running:!1,live:!1,activeRun:!1,lockedByOther:!1}}catch(e){return console.error("Failed to load agent state:",e),null}}catch(e){return sT(e)||R(String(e)),null}finally{t&&!a&&k(!1)}},[tR,F,t0,tp,tw]),ni=(0,i.useCallback)(async()=>{let e=tA.current;if(!e||!N.current||D.current)return!1;let t=tF.current[0];if(!t)return!1;D.current=!0,S(!0);let n=tQ().beginHydrate(e);try{let r=new URLSearchParams({deferThinking:"1",deferMedia:"1",before:t,limit:String(80)});T&&r.set("leafId",T);let i=await fetch(`/api/sessions/${encodeURIComponent(e)}/context?${r}`,{signal:F()});if(!i.ok)throw Error(`HTTP ${i.status}`);let o=await i.json();if(tA.current!==e)return!1;let s=o.context.entryIds??[],l=o.context.messages??[];if(0===s.length)return N.current=!1,_(!1),!1;let a=tF.current,d=tQ().hydrate(e,l,s,{hydrateRequestSeq:n,mode:"prepend"});if("applied"!==d)return!1;let c=tF.current??a;tF.current=c;let u=!0===o.context.hasMoreBefore||"number"==typeof o.context.totalMessageCount&&o.context.totalMessageCount>c.length;return N.current=u,_(u),!0}catch(e){return sT(e)||console.error("Failed to load older history:",e),!1}finally{D.current=!1,S(!1)}},[T]),no=(0,i.useCallback)(async(e,t)=>{try{let n=new URLSearchParams({deferThinking:"1",deferMedia:"1",limit:String(80)});t&&n.set("leafId",t);let r=`/api/sessions/${encodeURIComponent(e)}/context?${n}`,i=tQ(),o=i.beginHydrate(e),s=i.getSnapshot(e)?.timelineSeq??0,l=await fetch(r,{signal:F()});if(!l.ok)throw Error(`HTTP ${l.status}`);let a=await l.json();if(tA.current!==e)return;let d=a.context.entryIds??[],c=tQ().getSnapshot(e),u=tH.current===e&&c?tM(c.messages,c.entryIds,a.context.messages,d):a.context.messages,p=tQ().hydrate(e,u,d,{sinceSeq:s,hydrateRequestSeq:o,mode:"replace"});if("applied"!==p)return;t0(),tH.current=e;let h=!0===a.context.hasMoreBefore||"number"==typeof a.context.totalMessageCount&&a.context.totalMessageCount>d.length;N.current=h,_(h)}catch(e){sT(e)||console.error("Failed to load context:",e)}},[t0,F]),ns=(0,i.useCallback)(async e=>{if(v)return},[v]),nl=(0,i.useCallback)((e=0,t="(no messages)")=>{let n=tA.current,r=f.current;g&&r&&n&&!t5.current&&(t5.current=!0,a?.({id:n,path:"",cwd:r,name:void 0,created:new Date().toISOString(),modified:new Date().toISOString(),messageCount:e,firstMessage:t},x.current))},[g,a]),na=(0,i.useCallback)(async()=>{if(tA.current)return tA.current;let e=f.current;if(!g||!e)return tA.current;if(t6.current)return t6.current;let t=x.current,n=(async()=>{let n,r=ep??eg,i=await fetch("/api/agent/new",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({cwd:e,type:"ensure_session",...r?{provider:r.provider,modelId:r.modelId}:{},...(n=iE(eC)??void 0)?{thinkingLevel:n}:{}})});if(!i.ok)throw Error(`HTTP ${i.status}`);let o=(await i.json()).sessionId;return x.current===t&&(tA.current=o),o})();t6.current=n;try{return await n}finally{t6.current===n&&(t6.current=null)}},[g,ep,eg,eC]),nd=(0,i.useCallback)(async()=>{if(v)return e6([]),[];let e=tA.current??n?.id??null;if(!e){let e=f.current;if(!e)return e6([]),[];e8(!0);try{let t=await fetch(`/api/skills?cwd=${encodeURIComponent(e)}`);if(!t.ok)return e6([]),[];let n=((await t.json()).skills??[]).map(e=>({name:`skill:${e.name}`,description:e.description,source:"skill"}));return e6(n),n}catch(e){return console.error("Failed to load skills for guide:",e),e6([]),[]}finally{e8(!1)}}e8(!0);try{let t=await (0,oX.$)(e,{type:"get_commands"}),n=t?.commands??[];return e6(n),n}catch(e){return console.error("Failed to load slash commands:",e),e6([]),[]}finally{e8(!1)}},[v,n?.id,oX.$]),nc=(0,i.useCallback)(e=>{if(!m.canConnectEvents)return;let t=tQ();t.ensureEventsConnected(e),tL.current=t.getEventSource(e)},[m.canConnectEvents]),nu=(0,i.useCallback)(async(e,t)=>{if(!m.canSendSessionCommands)return;let n=tA.current,r=tc.current,i=o7(r,e.id);if(i!==r&&(tu(i),n))try{if(await (0,oX.$)(n,{type:"extension_ui_response",id:e.id,...t}),"cancelled"in t&&!0===t.cancelled&&tD())try{await (0,oX.$)(n,{type:"abort"})}catch{}}catch(e){console.error("Failed to send extension UI response:",e)}},[m.canSendSessionCommands,tu,tc]),np=(0,i.useCallback)(async(e,t)=>{if(!m.canSendSessionCommands)return;let n=tA.current;if(n&&tc.current.customUi?.id===e.id)try{await (0,oX.$)(n,{type:"extension_ui_input",id:e.id,data:t})}catch(e){console.error("Failed to send extension custom UI input:",e)}},[m.canSendSessionCommands,tc]),{handleFork:nh,handleNavigate:ng,handleLeafChange:nf,handleBranchHere:nx,handleBranchFromAssistant:nm,handleNewSessionFromHere:nv,handleNewSessionFromAnswer:ny,navigateBranch:nb,setBranchLabel:nw,branchActions:nk}=function(e){let{sessionIdRef:t,isReadOnly:n,canWrite:r,getAgentRunning:o,bashRunningRef:s,branchBusyRef:l,branchBusy:a,setBranchBusy:d,setForkingEntryId:c,setActiveLeafId:u,sendAgentCommand:p,loadSession:h,loadContext:g,addNotice:f,chatInputRef:x,onSessionForked:m}=e,v=(0,i.useCallback)(async e=>{if(n||s.current)return;let r=t.current;if(r){c(e);try{let t=await p(r,{type:"fork",entryId:e}),n=sl(t);"switch-session"===n.kind&&m?.(n.sessionId)}catch(e){console.error("Fork failed:",e)}finally{c(null)}}},[n,s,t,c,p,m]),y=(0,i.useCallback)(async e=>{if(s.current||l.current)return;let r=t.current;if(r){if(n){u(e),await g(r,e);return}p(r,{type:"navigate_tree",targetId:e}).catch(()=>{}),u(e),await g(r,e)}},[n,s,l,t,u,p,g]),b=(0,i.useCallback)(async e=>{if(s.current||l.current)return;u(e);let r=t.current;r&&(await g(r,e),e&&!n&&p(r,{type:"select_leaf_exact",entryId:e}).catch(()=>{}))},[n,s,l,t,u,p,g]),w=(0,i.useCallback)(async(e,r)=>{if(!rH({readOnly:n,busy:o()||s.current||l.current}).allowed)return;let i=t.current;if(i){l.current=!0,d(!0);try{let t=await p(i,{type:"navigate_tree",targetId:e,summarize:!1});if(!sa({noop:!!t?.cancelled,editorText:t?.editorText},x?.current,"replace"))return;r?.trim()&&x?.current?.replaceText(r.trim()),await h(i,!1,!1,!0,!0)}catch(e){f({type:"error",message:e instanceof Error?e.message:String(e)})}finally{l.current=!1,d(!1)}}},[f,n,o,s,l,t,d,p,x,h]),k=(0,i.useCallback)(async e=>{if(!rH({readOnly:n,busy:o()||s.current||l.current}).allowed)return;let r=t.current;if(r){l.current=!0,d(!0);try{let t=await p(r,{type:"branch_from_assistant",assistantEntryId:e});if(t?.cancelled)return;await h(r,!1,!1,!0,!0)}catch(e){f({type:"error",message:e instanceof Error?e.message:String(e)})}finally{l.current=!1,d(!1)}}},[f,n,o,s,l,t,d,p,h]),j=(0,i.useCallback)(async(e,r)=>{if(!rH({readOnly:n,busy:o()||s.current||l.current}).allowed)return;let i=t.current;if(i){l.current=!0,d(!0);try{let t=await p(i,{type:"fork",entryId:e}),n=sl(t,r);"switch-session"===n.kind&&m?.(n.sessionId,n.prefill)}catch(e){f({type:"error",message:e instanceof Error?e.message:String(e)})}finally{l.current=!1,d(!1)}}},[f,n,o,s,l,t,d,p,m]),S=(0,i.useCallback)(async e=>{if(!rH({readOnly:n,busy:o()||s.current||l.current}).allowed)return;let r=t.current;if(r){l.current=!0,d(!0);try{let t=await p(r,{type:"create_session_from_leaf",entryId:e}),n=sl(t);"switch-session"===n.kind&&m?.(n.sessionId)}catch(e){f({type:"error",message:e instanceof Error?e.message:String(e)})}finally{l.current=!1,d(!1)}}},[f,n,o,s,l,t,d,p,m]),C=(0,i.useCallback)(async(e,r)=>{let i=rH({readOnly:n,busy:o()||s.current||l.current});if(!i.allowed)return{kind:"busy"===i.reason?"busy":"error"};let a=function(e,t){switch(t.mode){case"direct":return{type:"navigate_tree",targetId:e,summarize:!1};case"summary":return{type:"navigate_tree",targetId:e,summarize:!0};case"custom":{let n=t.focus.trim();if(!n)return null;return{type:"navigate_tree",targetId:e,summarize:!0,customInstructions:n}}}}(e,r);if(!a)return{kind:"error"};let c=t.current;if(!c)return{kind:"error"};l.current=!0,d(!0);try{let e=await p(c,a);if(!sa({noop:!!(e?.cancelled||e?.aborted),editorText:e?.editorText},x?.current,"insertIfEmpty"))return{kind:"cancelled"};if(!await h(c,!1,!1,!0,!0)){let e="Failed to refresh session after switching branches";return f({type:"error",message:e}),{kind:"error",message:e}}return{kind:"ok"}}catch(t){let e=t instanceof Error?t.message:String(t);return f({type:"error",message:e}),{kind:"error",message:e}}finally{l.current=!1,d(!1)}},[f,n,o,s,l,t,d,p,x,h]),_=(0,i.useCallback)(async(e,r)=>{var i;let a,c,u=rH({readOnly:n,busy:o()||s.current||l.current});if(!u.allowed)return{kind:"busy"===u.reason?"busy":"error"};let g=(i=e,"tooLong"===(c=(a=(r??"").trim()).length>120?{kind:"tooLong",maxLength:120}:""===a?{kind:"clear"}:{kind:"set",label:a}).kind?null:{type:"set_branch_label",targetId:i,label:"set"===c.kind?c.label:""});if(!g)return{kind:"error"};let x=t.current;if(!x)return{kind:"error"};l.current=!0,d(!0);try{if(await p(x,g),!await h(x,!1,!1,!0)){let e="Failed to refresh session after saving the bookmark";return f({type:"error",message:e}),{kind:"error",message:e}}return{kind:"ok"}}catch(t){let e=t instanceof Error?t.message:String(t);return f({type:"error",message:e}),{kind:"error",message:e}}finally{l.current=!1,d(!1)}},[f,n,o,s,l,t,d,p,h]),I=(0,i.useMemo)(()=>({canWrite:r,busy:a,navigate:C,setLabel:_}),[r,a,C,_]);return{handleFork:v,handleNavigate:y,handleLeafChange:b,handleBranchHere:w,handleBranchFromAssistant:k,handleNewSessionFromHere:j,handleNewSessionFromAnswer:S,navigateBranch:C,setBranchLabel:_,branchActions:I,branchBusy:a}}({sessionIdRef:tA,isReadOnly:v,canWrite:m.canSendSessionCommands,getAgentRunning:()=>tD(),bashRunningRef:tB,branchBusyRef:tU,branchBusy:tE,setBranchBusy:tz,setForkingEntryId:eA,setActiveLeafId:M,sendAgentCommand:oX.$,loadSession:nr,loadContext:no,addNotice:e7,chatInputRef:e.chatInputRef,onSessionForked:d}),nj=(0,i.useCallback)(t=>{let n=function(e,t){switch(t.method){case"select":case"confirm":case"input":case"editor":{var n;if("select"!==(n=t.method)&&"confirm"!==n&&"input"!==n&&"editor"!==n)return{state:e,effects:[]};let r=o8(e);if(r.some(e=>e.id===t.id))return{state:e,effects:[]};return{state:o9(e,[...r,t]),effects:[]}}case"notify":return{state:e,effects:[{type:"notice",id:t.id,message:t.message,noticeType:t.notifyType??"info",activityRecord:!0===t.activityRecord}]};case"setStatus":{let n=e.statuses.findIndex(e=>e.key===t.statusKey);if(!t.statusText){if(-1===n)return{state:e,effects:[]};return{state:{...e,statuses:e.statuses.filter(e=>e.key!==t.statusKey)},effects:[]}}let r={key:t.statusKey,text:t.statusText};if(-1!==n&&e.statuses[n].text===r.text)return{state:e,effects:[]};let i=[...e.statuses.filter(e=>e.key!==t.statusKey),r];return{state:{...e,statuses:i},effects:[]}}case"setWidget":{let n=e.widgets.findIndex(e=>e.key===t.widgetKey);if(!t.widgetLines){if(-1===n)return{state:e,effects:[]};return{state:{...e,widgets:e.widgets.filter(e=>e.key!==t.widgetKey)},effects:[]}}let r={key:t.widgetKey,lines:t.widgetLines,placement:t.widgetPlacement??"aboveEditor"},i=-1===n?null:e.widgets[n];if(i&&i.placement===r.placement&&i.lines===r.lines)return{state:e,effects:[]};let o=[...e.widgets.filter(e=>e.key!==t.widgetKey),r];return{state:{...e,widgets:o},effects:[]}}case"setTitle":return t.title?{state:e,effects:[{type:"setTitle",title:t.title}]}:{state:e,effects:[]};case"set_editor_text":return{state:e,effects:[{type:"insertText",text:t.text}]};case"custom":if(t.closed)return t.id===e.customUi?.id?{state:{...e,customUi:null},effects:[]}:{state:e,effects:[]};{let n=Array.isArray(t.lines)?t.lines.filter(e=>"string"==typeof e):[];return{state:{...e,customUi:{...t,lines:n}},effects:[]}}default:return{state:e,effects:[]}}}(tc.current,t);for(let t of(tu(n.state),n.effects))"notice"===t.type?(e7({id:t.id,message:t.message,type:t.noticeType,activityRecord:t.activityRecord}),t.activityRecord&&te({version:1,kind:"error"===t.noticeType?"error":"warning",title:"error"===t.noticeType?"Extension error":"Extension warning",content:t.message,source:"extension.ui.notify",requestId:t.id,metadata:{notifyType:t.noticeType}})):"setTitle"===t.type?document.title=t.title:e.chatInputRef?.current?.insertText(t.text)},[e7,te,tu,e.chatInputRef,tc]),nS=(0,i.useCallback)(e=>{let t=tA.current;if(!t||!e)return;let n=e.turnMetrics??null,r=n&&(void 0!==n.tokensPerSecond||void 0!==n.ttftMs)?n:null;tQ().seedTurnMetrics(t,r)},[]),nC=(0,i.useCallback)(e=>{e&&(void 0!==e.contextUsage&&eT(e.contextUsage??null),nS(e),void 0!==e.systemPrompt&&eL(e.systemPrompt??null),sx(e.thinkingLevel)&&ey(e.thinkingLevel),e.model?.provider&&e.model?.modelId&&eO({provider:e.model.provider,modelId:e.model.modelId}),void 0!==e.isCompacting&&eV(e.isCompacting),void 0!==e.extensionStatuses&&tp({statuses:e.extensionStatuses??[]}),void 0!==e.extensionWidgets&&tp({widgets:e.extensionWidgets??[]}),void 0!==e.queuedMessages&&tR(e.queuedMessages))},[tR,tp,nS,eO]),n_=(0,i.useCallback)(async(e,t)=>{if(!e)return;let n=tQ(),r=n.getRunState(e);if(tA.current===e&&r&&r.promptRunId===t&&!r.sendInFlight&&n.beginRunFinish(e,t))try{let r=await nr(e,!1,!0,!1,!1,()=>{n.getRunState(e)?.promptRunId===t&&t1()});r&&"object"==typeof r&&"running"in r&&nC(r.state)}finally{let r=n.getRunState(e),i=!!(r&&tA.current===e&&r.promptRunId===t&&r.finishingRunId===t);if(n.completeRun(e,t),n.releaseRunFinish(e,t),!i)return;eQ(null),eI(null);{let e=function(e,t=Date.now()){let n=!1,r=new Map(e);for(let[e,i]of r)"running"===i.status&&(r.set(e,{...i,status:"cancelled",endedAt:i.endedAt??t}),n=!0);return n?r:e}(nE.current);nE.current=e,e2(sC(e))}O({type:"end"}),s?.()}},[nr,s,nC,O,q,eQ,eI,t1,t]),nI=(0,i.useCallback)(async(e,t)=>{let n=tQ();await sR(800);let r=Date.now();for(;Date.now()-r<2e4;){let r=n.getRunState(e);if(!r?.agentRunning||void 0!==t&&r.promptRunId>t+1)return;try{let t=await n.reconcile(e);if(!t||t.stale)return;if(nC(t.state),t.shouldFinish)return void await n_(e,t.runId)}catch{}await sR(600)}},[nC,n_]),nR=(0,i.useCallback)(async e=>{let t=tq.current+1;for(tq.current=t;tB.current&&tq.current===t&&tA.current===e;){await sR(1e3);try{let n=await fetch(`/api/agent/${encodeURIComponent(e)}?light=1`);if(!n.ok)continue;let r=await n.json();if(r.state?.isBashRunning)continue;if(await nr(e),tq.current!==t||tA.current!==e)return;tQ().setBashRunning(e,!1);return}catch{}}},[nr]),nT=(0,i.useCallback)(async e=>{let t=tQ(),n=t.getRunState(e);if(!n?.agentRunning)return;let r=eM.current;try{let n=await t.reconcile(e);if(!n||n.stale)return;let i=n.state;eV(i?.isCompacting??!1),nS(i),i?.contextUsage!==void 0&&tA.current===e&&eM.current===r&&eT(i.contextUsage??null),i?.queuedMessages!==void 0&&tR(i.queuedMessages),n.shouldFinish&&await n_(e,n.runId)}catch{}},[tR,n_]);(0,i.useEffect)(()=>{if(!U)return;let e=()=>{let e=tA.current;e&&nT(e)},t=()=>{"visible"===document.visibilityState&&e()},n=setInterval(e,15e3);return document.addEventListener("visibilitychange",t),window.addEventListener("online",e),()=>{clearInterval(n),document.removeEventListener("visibilitychange",t),window.removeEventListener("online",e)}},[U,nT]);let nM=(0,i.useCallback)(async()=>{let e=tA.current;if(!e)return;let t=tQ();t.getEventSource(e)&&t.getEventSource(e)?.close?.(),nc(e),nT(e),nr(e,!1)},[nc,nT,nr]);(0,i.useEffect)(()=>{let e=n?.id;if(!e||g||n?.readOnly)return;let t=!1,r=()=>{"visible"===document.visibilityState&&fetch(`/api/sessions/${encodeURIComponent(e)}/state`,{cache:"no-store"}).then(e=>e.ok?e.json():null).then(n=>{!t&&n&&tA.current===e&&Y(!0===n.lockedByOther)}).catch(()=>void 0)},i=()=>{"visible"===document.visibilityState&&r()};document.addEventListener("visibilitychange",i),window.addEventListener("focus",i);let o=J?window.setInterval(r,1e3):void 0;return()=>{t=!0,document.removeEventListener("visibilitychange",i),window.removeEventListener("focus",i),o&&window.clearInterval(o)}},[n?.id,n?.readOnly,g,J]),(0,i.useEffect)(()=>{let e=()=>{"visible"===document.visibilityState&&nM()},t=()=>{"visible"===document.visibilityState&&nM()};return document.addEventListener("visibilitychange",e),window.addEventListener("focus",t),()=>{document.removeEventListener("visibilitychange",e),window.removeEventListener("focus",t)}},[nM]);let nE=(0,i.useRef)(new Map),nz=(0,i.useCallback)(e=>{nE.current=e,e2(sC(e))},[]);tK.current=(0,i.useCallback)((e,n)=>{switch(e.type){case"agent_start":var r;nz(0===(r=nE.current).size?r:new Map),eQ({kind:"waiting_model"}),O({type:"start"});break;case"agent_end":case"prompt_done":{if("agent_end"===e.type){let t=e.contextUsage;t&&"number"==typeof t.contextWindow&&t.contextWindow>0&&eE(t)}let t=tA.current,n=t?tQ().getRunState(t)?.promptRunId:void 0;t&&void 0!==n&&n_(t,n);break}case"prompt_error":tA.current&&(0,Z.dM)(`sessionQueueHold.${tA.current}`,!0),e7({type:"error",message:e.errorMessage??t("input_commandFailed")});break;case"extension_error":tA.current&&(0,Z.dM)(`sessionQueueHold.${tA.current}`,!0),e7({type:"error",message:e.error??"Extension command failed"});break;case"leaf_drift":e7({type:"warning",message:t("session_leafDrift")});break;case"message_start":case"message_update":{if(!tD())break;let t=e.message;if(t?.role==="user")break;eQ(null);break}case"message_end":{let t=e.contextUsage;t&&"number"==typeof t.contextWindow&&t.contextWindow>0&&eE(t),eQ({kind:"waiting_model"});break}case"tool_execution_start":{nz(sS(nE.current,e));let t=e.toolCallId,n=e.toolName;eQ(e=>{let r=e?.kind==="running_tools"?[...e.tools]:[];return r.some(e=>e.id===t)||r.push({id:t,name:n}),{kind:"running_tools",tools:r}});break}case"tool_execution_update":nz(function(e,t){if("object"!=typeof t||null===t)return e;let n=sv(t.toolCallId);if(!n)return e;let r=e.get(n);if(!r||"running"!==r.status)return e;let{text:i,truncated:o}=sk(sw(t.partialResult)),s=r.command??sj(t.args),l=sb(t.renderedLines);return i===r.output&&o===(r.truncated??!1)&&s===r.command&&l===r.renderedLines?e:new Map(e).set(n,{...r,output:i,truncated:o||void 0,command:s,renderedLines:l})}(nE.current,e));break;case"tool_call":nz(sS(nE.current,{toolCallId:e.toolCallId,toolName:e.toolName,args:e.input??e.args,renderedCallLines:e.renderedCallLines}));break;case"tool_result":nz(function(e,t){if("object"!=typeof t||null===t)return e;let n=sv(t.toolCallId);if(!n)return e;let r=e.get(n),i=sb(t.renderedResultLines);return r&&i?new Map(e).set(n,{...r,renderedResultLines:i}):e}(nE.current,{toolCallId:e.toolCallId,renderedResultLines:e.renderedResultLines}));break;case"tool_execution_end":{nz(function(e,t){if("object"!=typeof t||null===t)return e;let n=sv(t.toolCallId);if(!n)return e;let r=Date.now(),i=e.get(n),o=sy(t.toolName)??i?.toolName??"",s=!0===t.isError?"error":"success",l=sb(t.renderedResultLines)??i?.renderedResultLines;if(!i){let{text:i,truncated:a}=sk(sw(t.result));return new Map(e).set(n,{toolCallId:n,toolName:o,output:i,startedAt:r,endedAt:r,status:s,renderedResultLines:l,truncated:a||void 0})}if("running"!==i.status)return l&&l!==i.renderedResultLines?new Map(e).set(n,{...i,renderedResultLines:l}):e;let{output:a,truncated:d}=i;if(0===a.length&&null!==t.result&&void 0!==t.result){let e=sk(sw(t.result));a=e.text,d=e.truncated}return new Map(e).set(n,{...i,toolName:o,output:a,truncated:d,renderedResultLines:l,endedAt:r,status:s})}(nE.current,e));let t=e.toolCallId;eQ(e=>{if(e?.kind!=="running_tools")return e;let n=e.tools.filter(e=>e.id!==t);return 0===n.length?{kind:"waiting_model"}:{kind:"running_tools",tools:n}});break}case"follow_up_flushed":tj(Array.isArray(e.remaining)?e.remaining.filter(e=>"string"==typeof e):[]);break;case"follow_up_flush_error":e7({type:"error",message:e.errorMessage??"Follow-up queue flush failed"});break;case"thinking_level_changed":{let t=e.level;t&&sx(t)&&ej.current&&eS.current===tA.current&&ey(t);break}case"queue_update":tf({steering:[...e.steering??[]],followUp:o2(tw()),followUpRevision:tI()});break;case"auto_retry_start":eI({attempt:e.attempt,maxAttempts:e.maxAttempts,errorMessage:e.errorMessage});break;case"auto_retry_end":eI(null),!1===e.success&&e7({type:"error",message:"string"==typeof e.finalError&&e.finalError.trim()?e.finalError.trim():t("message_apiError")});break;case"auto_compaction_start":case"compaction_start":eV(!0),eY(null),eZ(null);break;case"auto_compaction_end":case"compaction_end":eV(!1),e.errorMessage?(eY(e.errorMessage),eZ(null)):!e.aborted&&(eT(e=>e?{...e,tokens:null,percent:null}:null),eZ(sM(e.result,e.reason??"auto")),tA.current&&nr(tA.current,!1,!0));break;case"extension_ui_request":nj(e)}},[e7,tj,nz,n_,nj,nr,tw,t]);let nL=(0,i.useCallback)(async(r,i,o)=>{if(v)return!1;if(J)return e7({type:"error",message:t("chat_sessionLocked")}),!1;let s=r.trim();if(!s&&!i?.length&&!o?.length||tD()||tB.current)return!1;if(tU.current)return e7({type:"info",message:t("input_branchSwitchInProgress")}),!1;let l=!i?.length&&!o?.length&&s.startsWith("/");if(!i?.length&&!o?.length&&s.startsWith("!")){let e=s.startsWith("!!"),t=(e?s.slice(2):s.slice(1)).trim();return!!t&&(await tJ.current?.(t,e)??!1)}if(t8.current=!1,tN.current=!1,eQ(l?{kind:"running_command"}:{kind:"waiting_model"}),tX(),g&&f.current&&x.current&&a){let e=x.current,t=f.current;a({id:tS(e),path:"",cwd:t,projectRoot:t,created:new Date().toISOString(),modified:new Date().toISOString(),messageCount:1,firstMessage:s},e)}let d=tQ(),c=t_(),u=x.current,p=n?.id??(g&&u?`new:${u}`:f.current?`new:${f.current}`:"new"),h=oQ({isNew:g,intentId:u,persistedSessionId:g?null:n?.id??null}),m=()=>{var e,t;return null!==h&&(e=h,t=tP.current,e&&t?e.kind===t.kind&&("new"===e.kind&&"new"===t.kind?e.intentId===t.intentId:"persisted"===e.kind&&"persisted"===t.kind&&e.sessionId===t.sessionId):!e&&!t)},y=e=>{if(!m())return!1;let n=!!(e&&e.includes("locked by another"));return n&&Y(!0),e7({type:"error",message:n?t("chat_sessionLocked"):e&&"rejected"!==e?e:t("chat_sendFailed")}),eQ(null),!1},b=null;try{var w;let e=(w={isNew:g,intentId:u,cwd:f.current,persistedSessionId:n?.id??null,ensuredSessionId:g?tA.current:null}).isNew?w.ensuredSessionId?{kind:"persisted",sessionId:w.ensuredSessionId}:w.intentId&&w.cwd?{kind:"new",intentId:w.intentId,cwd:w.cwd}:null:w.persistedSessionId?{kind:"persisted",sessionId:w.persistedSessionId}:null;if(!e)return!1;if("new"===e.kind){let t=ep??eg,n=await d.submitPrompt({target:e,submissionId:c,message:r,images:i,binaryBlocks:o,draftKey:p,model:t??void 0,...g&&eC?{thinkingLevel:eC}:{}});if(b=n.sessionId,m()&&(tA.current=n.sessionId,x.current===u&&nl(1,r)),"accepted"!==n.status)return y(n.error);m()&&(t8.current=!0)}else if("persisted"===e.kind){if(b=e.sessionId,tN.current)return!1;let t=await d.submitPrompt({target:e,submissionId:c,message:r,images:i,binaryBlocks:o,draftKey:p});if("accepted"!==t.status)return y(t.error);m()&&(t8.current=!0)}if(m()&&t8.current&&b&&((0,Z.dM)(`sessionQueueHold.${b}`,null),tm(p)),m()&&l&&b){let e=d.getRunState(b)?.promptRunId;nI(b,e)}return!0}catch(r){if(tN.current||r instanceof Error&&"AbortError"===r.name)return m()&&!t8.current&&eQ(null),!1;if(console.error("Failed to send message:",r),t8.current)return m()&&(t8.current=!1),e7({type:"warning",message:t("chat_sendSubmittedSwitched")}),!0;if(!m())return!1;let n=!1;{let e=tQ(),t=b??tA.current;t&&(n=e.dropLocal(t,`sub:${c}`))}n&&e.chatInputRef?.current?.insertIfEmpty(s);{let e=r instanceof Error?r.message:String(r);e.includes("locked by another")&&Y(!0),e7({type:"error",message:e.includes("locked by another")?t("chat_sessionLocked"):e})}return m()&&eQ(null),!1}},[g,v,J,ep,eg,n,nl,nI,e7,tX,e.chatInputRef,t,a]);tJ.current=(0,i.useCallback)(async(r,i)=>{if(v)return!1;if(J)return e7({type:"error",message:t("chat_sessionLocked")}),!1;if(tD()||tB.current||tU.current)return!1;let o=`${i?"!!":"!"}${r}`,s={command:r,excludeFromContext:i,startedAt:Date.now()},l=tQ(),a=++tO.current,d=n?.id??tA.current;!d&&g&&x.current&&(d=tS(x.current)),d&&l.setBashRunning(d,!0,s);try{let e=tA.current??n?.id??await na();if(!e)throw Error("Unable to create a session for the shell command");return d=e,l.setBashRunning(e,!0,s),nl(1,o),await (0,oX.$)(e,{type:"bash",command:r,excludeFromContext:i}),await nr(e),!0}catch(t){return console.error("Failed to execute shell command:",t),e7({type:"error",message:t instanceof Error?t.message:String(t)}),e.chatInputRef?.current?.insertIfEmpty(o),!1}finally{d&&tO.current===a&&l.setBashRunning(d,!1)}},[e7,v,J,na,nr,e.chatInputRef,nl,n,t]);let nW=(0,i.useCallback)(async()=>{if(v)return;let e=g&&x.current?tS(x.current):null,t=tA.current,n=t??e;if(!n)return;if(tN.current=!0,t&&(0,Z.dM)(`sessionQueueHold.${t}`,!0),tB.current){if(!t)return;try{await (0,oX.$)(t,{type:"abort_bash"})}catch(e){console.error("Failed to abort bash:",e)}return}let r=tQ(),i=r.cancellationFor(n);if(i){i.cancel();try{await r.abortSubmission(n)}catch{}}if(t&&!t.startsWith("pending:"))try{await (0,oX.$)(t,{type:"abort"})}catch(e){console.error("Failed to abort:",e)}},[g,v]),nA=(0,i.useCallback)(async e=>{var n,r;let{sessionId:i,model:o,thinkingLevel:s,onFailure:l}=e,a=++eD.current;n=eF.current,eF.current={...n,[i]:a};let d=(eN.current[i]??Promise.resolve()).catch(()=>void 0).then(async()=>{o&&await (0,oX.$)(i,{type:"set_model",provider:o.provider,modelId:o.modelId}),s&&sx(s)&&await (0,oX.$)(i,{type:"set_thinking_level",level:s})});eN.current[i]=d;try{return await d,eF.current=s_(eF.current,i,a),!0}catch(e){return r=eF.current,r[i]===a&&(l?.(),e7({type:"error",message:t("models_switchFailed",{error:e instanceof Error?e.message:String(e)})})),eF.current=s_(eF.current,i,a),!1}},[e7,t]),nP=(0,i.useCallback)(async(e,t,n)=>{if(v)return;if(g){eh({provider:e,modelId:t});let r=iE(n);r&&ey(r);let i=tA.current;if(!i&&t6.current)try{i=await t6.current??null}catch{i=null}if(!i)return;await nA({sessionId:i,model:{provider:e,modelId:t},thinkingLevel:n});return}let r=tA.current;if(!r)return;let i=eb.current,o=eH.current;n&&sx(n)&&ey(n),e$({provider:e,modelId:t}),await nA({sessionId:r,model:{provider:e,modelId:t},thinkingLevel:n,onFailure:()=>{e$(o),ey(i)}})},[g,v,eh,nA]),n$=(0,i.useCallback)(async()=>{if(v)return;let e=tA.current;if(e&&!eK){eV(!0),eY(null),eZ(null);try{let t=await (0,oX.$)(e,{type:"compact"});eZ(sM(t,"manual")),await nr(e,!0)}catch(e){eY(e instanceof Error?e.message:String(e)),eZ(null)}finally{eV(!1)}}},[eK,v,nr]),nH=(0,i.useCallback)(async e=>{let[t]=await Promise.all([fetch("/api/models",e?{signal:e}:void 0),(0,Z.zo)()]);if(!t.ok)throw Error(`HTTP ${t.status}`);let n=await t.json();en(n.models),es(n.thinkingLevels??{}),ed(n.thinkingLevelMaps??{}),eu(n.authConfigured??{});let r=n.modelList??[];ei(r);let i=n.defaultModel?r.find(e=>e.id===n.defaultModel?.modelId&&e.provider===n.defaultModel?.provider):void 0,o=n.authConfigured??{},s=i??r.find(e=>!1!==o[e.provider])??r[0];ef(s?{provider:s.provider,modelId:s.id}:null)},[]),nF=(0,i.useCallback)(async(e,t)=>{let n=tA.current;if(n)try{await fetch(`/api/sessions/${encodeURIComponent(n)}/command-entry`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({command:e,ok:!0,result:t})})}catch(e){console.error("Failed to record command entry:",e)}},[]),nD=(0,i.useCallback)(async e=>{if(v||!e.startsWith("/"))return{handled:!1};let n=e.match(/^\/([^\s]+)(?:\s+([\s\S]*))?$/);if(!n)return{handled:!1};let[,r,i=""]=n,o=i.trim(),s=tA.current??await na();s&&g&&nl();let l=e=>(e.handled&&(e.error?e7({type:"error",message:e.error}):"openSessionStats"!==e.action&&e7({type:"success",message:e.message??t("input_commandCompleted")})),e);try{switch(r){case"compact":{if(!s||eK)return l({handled:!0,error:"No active session to compact"});eV(!0),eY(null),eZ(null);let e=await (0,oX.$)(s,{type:"compact",...o?{customInstructions:o}:{}});return eZ(sM(e,"manual")),await nF(`/compact${o?` ${o}`:""}`,"Compacted context"),await nr(s,!0)&&nl(),l({handled:!0,message:"Compacted context"})}case"reload":if(!s)return l({handled:!0,error:"No active session to reload"});return await (0,oX.$)(s,{type:"reload"}),await nF("/reload","Reloaded session resources"),await Promise.all([nr(s,!1,!0),ns(s),nd(),nH()]),l({handled:!0,message:"Reloaded session resources"});case"name":if(!s)return l({handled:!0,error:"No active session to name"});if(!o)return l({handled:!0,error:"Usage: /name <name>"});return await (0,oX.$)(s,{type:"set_session_name",name:o}),await nF(`/name ${o}`,`Session renamed to ${o}`),await nr(s)&&nl(),l({handled:!0,message:`Session renamed to ${o}`});case"session":{if(!s)return l({handled:!0,error:"No active session"});let e=await (0,oX.$)(s,{type:"get_session_stats"});return e&&to(e),await nF("/session","Opened session stats"),await nr(s),h?.(),l({handled:!0,action:"openSessionStats"})}case"copy":{if(!s)return l({handled:!0,error:"No active session"});let e=await (0,oX.$)(s,{type:"get_last_assistant_text"}),t=e?.text??"";if(!t)return l({handled:!0,error:"No assistant message to copy"});return await navigator.clipboard.writeText(t),await nF("/copy","Copied last assistant message"),await nr(s),l({handled:!0,message:"Copied last assistant message"})}default:return{handled:!1}}}catch(e){return l({handled:!0,error:e instanceof Error?e.message:String(e)})}finally{"compact"===r&&eV(!1)}},[e7,na,eK,g,v,nH,nr,nd,ns,nl,h,nF]),nN=(0,i.useCallback)(async(e,t)=>{if(v)return;let n=tA.current;if(!n)return;let r=tQ().getEventSource(n);r&&2!==r.readyState||nc(n),tX();let i={role:"user",content:(t?.length,e),timestamp:Date.now(),_steerOptimistic:!0},o=tQ(),s=o.appendLocal(n,i),l=t?.map(e=>({type:"image",data:e.data,mimeType:e.mimeType}));try{await (0,oX.$)(n,{type:"steer",message:e,...l?.length?{images:l}:{}})}catch(e){o.dropLocal(n,s),console.error("Failed to steer:",e)}},[nc,v,tX]),nB=(0,i.useCallback)(e=>{let t=e instanceof Error?e.message:String(e);return/Extension command .* cannot be queued/.test(t)},[]),nO=(0,i.useCallback)(async(e,t,n)=>{if(v)return;let r=tA.current;if(!r)return;if("followUp"===t)return void await tV.current(e,n);let i=n?.map(e=>({type:"image",data:e.data,mimeType:e.mimeType}));try{await (0,oX.$)(r,{type:"steer",message:e,...i?.length?{images:i}:{}})}catch(t){if(nB(t))return void await (0,oX.$)(r,{type:"prompt",message:e});console.error("Failed to steer:",t)}},[v,nB]),nU=(0,i.useCallback)(async(n,r)=>{if(v)return;let i=tA.current;if(!i)return;let o=n.trim();if(!o)return;let s=tD()||eK;if(r?.length&&s){tX();let t=r.map(e=>({type:"image",data:e.data,mimeType:e.mimeType}));try{await (0,oX.$)(i,{type:"follow_up",message:o,images:t}),nc(i)}catch(t){e.chatInputRef?.current?.prependText(o),e7({type:"error",message:String(t instanceof Error?t.message:t)})}return}if(r?.length||!s){tX();let n=r?.map(e=>({type:"image",data:e.data,mimeType:e.mimeType}));try{let r=await (0,oX.$)(i,{type:"prompt",message:o,...n?.length?{images:n}:{}});r?.status==="rejected"&&(n?.length?(e.chatInputRef?.current?.prependText(o),e7({type:"error",message:t("input_imageSendRetry")})):(await tT([...o2(tw()),o]),nc(i)))}catch(e){console.error("Failed to send prompt:",e)}return}tX();try{await tT([...o2(tw()),o]),nc(i)}catch(t){e.chatInputRef?.current?.prependText(o),e7({type:"error",message:t instanceof Error?t.message:String(t)})}},[e7,nc,eK,v,tX,e.chatInputRef,tw,tT]);tV.current=nU;let nq=(0,i.useCallback)(async()=>{if(v||!eK)return;let e=tA.current;if(e)try{await (0,oX.$)(e,{type:"abort_compaction"}),eV(!1),eY(null),eZ(null)}catch(e){eY(e instanceof Error?e.message:String(e))}},[eK,v]),nK=(0,i.useCallback)(async()=>{if(v)return;let t=o2(tw());if(0!==t.length)try{await tT([]),e.chatInputRef?.current?.prependText(t.map(e=>e.trim()).filter(e=>e.length>0).join("\n\n"))}catch(e){e7({type:"error",message:e instanceof Error?e.message:String(e)})}},[e7,v,tw,tT,e.chatInputRef]),nV=(0,i.useCallback)(async t=>{if(v)return;let n=tA.current;if(!n)return;let r=o2(tw()),i=[...r,...t?.trim()?[t.trim()]:[]].map(e=>e.trim()).filter(e=>e.length>0).join("\n");if(!i)return;tX();let o={role:"user",content:i,timestamp:Date.now(),_steerOptimistic:!0},s=tQ(),l=s.appendLocal(n,o),a=!1;try{await tT([]),a=!0;try{await (0,oX.$)(n,{type:"steer",message:i})}catch(e){if(!nB(e))throw e;await (0,oX.$)(n,{type:"prompt",message:i})}nc(n)}catch(i){if(a)try{await tT(r)}catch{}t?.trim()&&e.chatInputRef?.current?.prependText(t.trim()),s.dropLocal(n,l),console.error("Failed to send queue as steer:",i),e7({type:"error",message:String(i instanceof Error?i.message:i)})}},[nc,v,tX,tT,e7,nB,e.chatInputRef,tw]),nJ=(0,i.useCallback)(async e=>{if(v)return;let t=eb.current;ey(e);let n=tA.current??await t6.current;n&&await nA({sessionId:n,thinkingLevel:e,onFailure:()=>ey(t)})},[nA,v]),nY=(0,i.useCallback)(async e=>{if(v||tD()||tB.current||tU.current)return;let t=tA.current;if(t)try{await (0,oX.$)(t,{type:"prompt",message:e}),await nr(t,!1,!0)}catch(e){console.error("Workspace history prompt failed:",e),e7({type:"error",message:String(e)})}},[e7,v,nr]),nG=(0,i.useCallback)(async()=>{await nY("/undo")},[nY]),nZ=(0,i.useCallback)(async()=>{await nY("/redo")},[nY]),nX=(0,i.useCallback)(async e=>{let t="string"==typeof e?e.trim():"",n=t?`/checkpoint ${t}`:"/checkpoint";await nY(n)},[nY]),nQ=(0,Z.Fd)(),n0=(0,i.useRef)(null);(0,i.useEffect)(()=>{let e=tA.current;if(!e)return;let t=(tv.current[e]??o1).revision,n=!1;return fetch("/api/preferences",{cache:"no-store"}).then(e=>e.ok?e.json():null).then(r=>{if(n||tA.current!==e)return;let i=o0(r?.prefs,e);null===i||(tv.current=o6(tv.current,e,i.items,t),tC(e,i.items,i.revision)&&(n0.current=i.items,ty.current===e&&tk()))}).catch(()=>void 0),()=>{n=!0}},[tj,tk,n?.id,tC]),(0,i.useEffect)(()=>{let e=tA.current;if(!e)return;let t=(tv.current[e]??o1).revision,n=o0(nQ,e);null===n||(JSON.stringify(n.items)===JSON.stringify(n0.current)?o5(tx.current.get(e),n.revision):(tv.current=o6(tv.current,e,n.items,t),tC(e,n.items,n.revision)&&(n0.current=n.items,ty.current===e&&tk())))},[tj,tk,nQ,n?.id,tC]),(0,i.useEffect)(()=>{var e;tu({...0===o8(e=tc.current).length&&!e.dialog?e:{...e,dialog:null,blockingQueue:[]},customUi:null}),tt()},[n?.id,r,tu,tc,tt]);let n1=(0,i.useRef)(null);return(0,i.useEffect)(()=>{let e=n1.current,t=n?.id??null;e&&e!==t&&(t$.current?.abort(),t$.current=null),n1.current=n&&!0!==n.readOnly?n.id:null},[n?.id,n?.readOnly]),(0,i.useEffect)(()=>{var e,t;e={sessionId:tA,newSessionPromoted:t5,promptSubmitted:t8,ensuringNewSession:t6},t=n?.id??null,e.sessionId.current=t,e.newSessionPromoted.current=!1,e.promptSubmitted.current=!1,e.ensuringNewSession.current=null,t0(),z([]),tF.current=[],W([]),P([]),b(null),M(null),N.current=!1,_(!1),O({type:"reset"}),V({}),Y(!1),eI(null),eV(!1),eL(null),eT(null),e$(null),eh(null),eO((n?.id?eU.current.get(n.id):void 0)??null),ey(null),eS.current=null,ek(!1),n?.id||ek(!0);let r=n?.id??null;ty.current=r,tf({steering:[],followUp:o2(tv.current[r??""]??o1),followUpRevision:r?tx.current.get(r)??null:null}),n0.current=null;let i=tQ(),s=n?.id??(g&&o?tS(o):null),l=null;if(s?(n?.readOnly!==!0&&(tW.current=i.attach(s,e=>{tK.current?.(e)})),l=i.subscribe(s,e=>{if(!tA.current||e.sessionId===tA.current||e.sessionId===s){if(z(e.messages),W(e.entryIds),P(e.messageKeys),V(e.turnMetrics),tF.current=e.entryIds,n?.readOnly===!0){q(!1),X(!1),tB.current=!1,ee(null),O({type:"end"}),tL.current=null;return}q(e.agentRunning),e.streamState.isStreaming?O({type:"update",message:e.streamState.streamingMessage??null}):O({type:"end"}),X(e.bashRunning),tB.current=e.bashRunning,ee(e.pendingBash),tL.current=i.getEventSource(e.sessionId)}})):(q(!1),X(!1),tB.current=!1,ee(null)),n)if(!0===n.readOnly)nr(n.id,!0,!1);else{let e=null!=s&&(i.getSnapshot(s)?.messages.length??0)>0,t=s?i.getRunState(s):null;nr(n.id,!e,!0).then(e=>{if(!0===e)return;let r=i.getRunState(n.id);if(e?.activeRun===!1&&!0!==e.lockedByOther&&t?.agentRunning&&!t.sendInFlight&&r?.agentRunning&&r.promptRunId===t.promptRunId&&(i.completeRun(n.id,r.promptRunId),eQ(null),eI(null)),(e?.running||e?.live)&&(ns(n.id),(e.state?.isStreaming||e.state?.isPromptRunning)&&(tQ().importRunningRun(n.id),eQ(e.state.isStreaming?{kind:"waiting_model"}:{kind:"running_command"}),!e.state.isStreaming&&e.state.isPromptRunning&&nI(n.id)),e.state?.isBashRunning&&(tQ().setBashRunning(n.id,!0,e.state.pendingBash??null),nR(n.id))),e?.lockedByOther!==void 0&&Y(e.lockedByOther),e?.state&&(void 0!==e.state.isCompacting&&eV(e.state.isCompacting),void 0!==e.state.contextUsage&&eT(e.state.contextUsage??null),nS(e.state),void 0!==e.state.systemPrompt&&eL(e.state.systemPrompt??null),sx(e.state.thinkingLevel)&&ey(e.state.thinkingLevel),void 0!==e.state.extensionStatuses&&tp({statuses:e.state.extensionStatuses??[]}),void 0!==e.state.extensionWidgets&&tp({widgets:e.state.extensionWidgets??[]}),void 0!==e.state.queuedMessages&&tR(e.state.queuedMessages),Array.isArray(e.state.pendingExtensionRequests))){let t=e.state.pendingExtensionRequests.filter(e=>{let t=e.method;return"select"===t||"confirm"===t||"input"===t||"editor"===t});t.length>0&&tp({blockingQueue:t,...o3(t)})}})}return()=>{tq.current+=1,H.current?.abort(),H.current=null,l?.();let e=s??tA.current??n?.id;e&&tW.current&&(tQ().detach(e,tW.current),tW.current=null)}},[n?.id,n?.readOnly,o,g,t0]),(0,i.useEffect)(()=>{p?.(ez)},[ez,p]),(0,i.useEffect)(()=>{u&&u(y?.tree??[],T,nf,nk)},[y?.tree,T,nf,nk,u]),(0,i.useEffect)(()=>{let e=new AbortController;return nH(e.signal).catch(e=>{if(e instanceof DOMException&&"AbortError"===e.name)return}),()=>e.abort()},[nH,c]),(0,i.useEffect)(()=>{let e=!1;return fetch("/api/agent-settings").then(e=>e.json()).then(t=>{!e&&sx(t.defaultThinkingLevel)&&em(t.defaultThinkingLevel)}).catch(()=>void 0),()=>{e=!0}},[]),(0,i.useEffect)(()=>{if(!eJ)return;let e=setTimeout(()=>eY(null),3e3);return()=>clearTimeout(e)},[eJ]),(0,i.useEffect)(()=>{if(!eG)return;let e=setTimeout(()=>eZ(null),6e3);return()=>clearTimeout(e)},[eG]),(0,i.useEffect)(()=>{to(null)},[E.length,eR?.tokens,eR?.percent,eR?.contextWindow]),{data:y,loading:w,historyLoading:j,hasMoreBefore:C,error:I,activeLeafId:T,messages:E,entryIds:L,messageKeys:A,streamState:B,agentRunning:U,turnMetrics:K,lockedByOther:J,modelNames:et,modelList:er,modelAuthConfigured:ec,modelThinkingLevels:eo,modelThinkingLevelMaps:el,newSessionModel:ep,thinkingLevel:eC,thinkingReady:ew,defaultThinkingLevel:g?ex:null,retryInfo:e_,contextUsage:eR,systemPrompt:ez,forkingEntryId:eW,isCompacting:eK,compactError:eJ,compactResult:eG,currentModel:t7,displayModel:ne,sessionStats:nn,slashCommands:e4,slashCommandsLoading:e5,queuedMessages:tg,notices:e3,liveNoticeActivities:e9,dismissNotice:tn,toggleNoticePin:tr,extensionDialog:ts,extensionCustomUi:tl,extensionStatuses:ta,extensionWidgets:td,respondToExtensionUi:nu,dismissExtensionUiRequest:th,sendExtensionCustomInput:np,todos:t9,isAutoModelSelection:g&&null===ep,agentPhase:eX,toolExecutionSnapshots:e0,isNew:g,sessionIdRef:tA,eventSourceRef:tL,scrollContainerRef:tY,jumpButtonVisible:tG,jumpToBottom:tZ,markExternalScrollWrite:t2,notifyProgrammaticSmooth:t4,loadOlderHistory:ni,handleSend:nL,handleAbort:nW,handleFork:nh,handleNavigate:ng,handleModelChange:nP,handleCompact:n$,handleSteer:nN,handleFollowUp:nU,handlePromptWithStreamingBehavior:nO,handleAbortCompaction:nq,handleRecallQueue:nK,handleSendQueueAsSteer:nV,handleBuiltinSlashCommand:nD,handleThinkingLevelChange:nJ,loadTools:ns,loadSlashCommands:nd,setActiveLeafId:M,setData:b,setMessages:z,dispatch:O,setAgentRunning:q,setForkingEntryId:eA,bashRunning:G,pendingBash:Q,handleWorkspaceUndo:nG,handleWorkspaceRedo:nZ,handleWorkspaceCheckpoint:nX,handleBranchHere:nx,handleBranchFromAssistant:nm,handleNewSessionFromHere:nv,handleNewSessionFromAnswer:ny,branchBusy:tE,branchActions:nk,navigateBranch:nb,setBranchLabel:nw,handleAgentEventRef:tK}}({session:e,newSessionCwd:L,newSessionIntentId:n,onAgentEnd:(0,i.useCallback)(()=>{A.current&&W.current(),a?.()},[a]),onAgentRunningChange:d,onSessionCreated:c,onSessionForked:u,modelsRefreshKey:p,chatInputRef:h,onBranchDataChange:g,onSystemPromptChange:f,onSessionStatsPanelOpen:m,isMobile:R}),e4=T||eH,e6=U||K||eo,[e5,e8]=(0,i.useState)(!0),e3=e?.id??(L?`new:${L}`:"new-session");(0,i.useEffect)(()=>{e8(!0)},[e3]);let[e9,e7]=(0,i.useState)(()=>{try{return"1"===localStorage.getItem("pidance.footerCollapsed")}catch{return!1}});(0,i.useEffect)(()=>{try{localStorage.setItem("pidance.footerCollapsed",e9?"1":"0")}catch{}(0,Z.dM)("footerCollapsed",e9)},[e9]);let te=(0,Z.Fd)();(0,i.useEffect)(()=>{let e=(0,Z.b3)("draftTargetCwd");"string"==typeof e&&e&&e!==M&&!o&&E(e);let t=(0,Z.b3)("footerCollapsed");"boolean"==typeof t&&t!==e9&&e7(t)},[te]),(0,i.useEffect)(()=>{let e,t=ey?.id,n=ey?.expiresAt;if(!t||"number"!=typeof n||!Number.isFinite(n))return;let r=()=>{let i=n-Date.now();i<=0?eS(t):e=setTimeout(r,Math.min(i,0x7fffffff))};return r(),()=>{void 0!==e&&clearTimeout(e)}},[ey?.id,ey?.expiresAt,eS]),(0,i.useEffect)(()=>{s=e6?eD:null},[e6,eD]);let[tt,tn]=(0,i.useState)(50),tr=(0,i.useRef)(null),ti=(0,i.useRef)(null),to=(0,i.useRef)(null);(0,i.useEffect)(()=>{tn(50),to.current=null},[e?.id]),(0,i.useEffect)(()=>{let e=tr.current,t=ez.current;if(!e||!t)return;let n=new IntersectionObserver(e=>{var n;if(!e[0]?.isIntersecting)return;let r=(n={visibleCount:tt,messagesLength:D.length,hasMoreBefore:H,historyLoading:$}).historyLoading?"none":n.visibleCount<n.messagesLength?"expand-local":n.hasMoreBefore?"load-server":"none";if("none"!==r){if(ti.current=t.scrollHeight-t.scrollTop,"expand-local"===r)return void tn(e=>sA(e));e$().then(e=>{e&&tn(e=>sA(e))})}},{root:t,threshold:0});return n.observe(e),()=>n.disconnect()},[tt,D.length,ez,H,$,e$]),(0,i.useEffect)(()=>{if(null==ti.current)return;let e=ez.current;if(e){var t;eA(),t=e.scrollHeight,e.scrollTop=Math.max(0,t-ti.current),ti.current=null}},[tt,D.length,ez,eA]);let ts=ec?[ec.sessionId,ec.sessionFile??"",ec.sessionName??"",ec.userMessages,ec.assistantMessages,ec.toolCalls,ec.toolResults,ec.totalMessages,ec.tokens.input,ec.tokens.output,ec.tokens.cacheRead,ec.tokens.cacheWrite,ec.tokens.total,ec.cost??0].join("|"):null,tl=(0,i.useRef)(ec);tl.current=ec,(0,i.useEffect)(()=>{x?.(tl.current)},[ts,x]),(0,i.useEffect)(()=>()=>{x?.(null)},[x]);let ta=er?`${er.percent??"null"}|${er.contextWindow}|${er.tokens??"null"}`:null,td=(0,i.useRef)(er);td.current=er,(0,i.useEffect)(()=>{v?.(td.current)},[ta,v]),(0,i.useEffect)(()=>()=>{v?.(null)},[v]);let tc=`${q.ttftMs??""}|${q.tokensPerSecond??""}`,tu=(0,i.useRef)(q);tu.current=q,(0,i.useEffect)(()=>{y?.(tu.current)},[tc,y]),(0,i.useEffect)(()=>()=>{y?.({})},[y]);let{isDragOver:tp,handleDragEnter:th,handleDragOver:tg,handleDragLeave:tf,handleDrop:tx}=function(e){let[t,n]=(0,i.useState)(!1),r=(0,i.useRef)(0),o=(0,i.useCallback)(e=>{Array.from(e.dataTransfer.items).some(e=>e.type.startsWith("image/"))&&(e.preventDefault(),r.current+=1,n(!0))},[]),s=(0,i.useCallback)(e=>{Array.from(e.dataTransfer.items).some(e=>e.type.startsWith("image/"))&&e.preventDefault()},[]);return{isDragOver:t,handleDragEnter:o,handleDragOver:s,handleDragLeave:(0,i.useCallback)(()=>{r.current-=1,r.current<=0&&(r.current=0,n(!1))},[]),handleDrop:(0,i.useCallback)(t=>{t.preventDefault(),r.current=0,n(!1),e(Array.from(t.dataTransfer.files))},[e])}}((0,i.useCallback)(e=>{e6||e4||h?.current?.addImages(e)},[e6,e4,h])),tv=(w=D.filter(e=>"user"===e.role||"assistant"===e.role).length,(k=(0,i.useRef)([])).current=Array(w).fill(null).map((e,t)=>k.current[t]??null),k),ty=O.isStreaming&&O.streamingMessage?{message:O.streamingMessage,isActive:!0}:void 0,tb=function(e){let{messages:t,isStreaming:n,agentOrBashRunning:r,liveSlot:i}=e,o=np(t,!!(i?.isActive&&i.message)),s=t.slice(0,o).findLastIndex(e=>"user"===e.role),l=[];for(let e=0;e<o;){if("user"!==t[e].role){l.push(nu(t,e,n)),e++;continue}let i=e,o=i+1;for(;o<t.length&&"user"!==t[o].role;)o++;let d=function(e,t,n){for(let i=n-1;i>t;i--){var r;if("assistant"===(r=e[i]).role&&nl(r).answerBlocks.some(e=>"image"===e.type||"text"===e.type&&e.text.trim().length>0))return i}for(let r=n-1;r>t;r--)if(e[r]?.role==="assistant")return r;return -1}(t,i,o);if(-1===d||(r||n)&&o===t.length&&i===s){for(let e=i;e<o;e++)l.push(nu(t,e,n));e=o;continue}l.push(nu(t,i,n));let c=[];for(let e=i+1;e<d;e++){var a;("assistant"===(a=t[e]).role?!!nd(a)||ns(a).length>0:"custom"===a.role)&&c.push(e)}let u=t[d],p=nl(u),h=p.processBlocks.length>0?nc(u,p.processBlocks,!0):void 0,g=p.answerBlocks.length>0?nc(u,p.answerBlocks):void 0,f=c.length+ +!!h;if(f>0){let e=c.find(e=>"assistant"===t[e].role||"user"===t[e].role)??(g?void 0:d);l.push({kind:"processGroup",userIdx:i,finalAssistantIdx:d,messageCount:f,toolCallCount:c.reduce((e,n)=>e+("assistant"===t[n].role?na(ns(t[n])):0),0)+na(p.processBlocks),children:[...c.map(e=>nu(t,e,n,{attachRef:!1,keyPrefix:"process"})),...h?[nu(t,d,n,{attachRef:!1,keyPrefix:"process-final",messageOverride:h,showTimestamp:!1})]:[]],...void 0===e?{}:{attachRefMessageIndex:e}})}g?l.push(nu(t,d,n,{messageOverride:g})):nd(u)&&!h&&l.push(nu(t,d,n));for(let e=d+1;e<o;e++)l.push(nu(t,e,n));e=o}i?.isActive&&i.message&&l.push({kind:"message",source:"live",messageIndex:null,messageOverride:i.message,keyPrefix:"live",attachRef:!1,showTimestamp:!1});for(let e=o;e<t.length;e++)l.push(nu(t,e,n));return l}({messages:D,isStreaming:O.isStreaming,agentOrBashRunning:e6,liveSlot:ty});(0,i.useEffect)(()=>{let e=tb.length,t=to.current;if(null===t){to.current=e;return}e!==t&&(tn(n=>Number.isFinite(n)&&Number.isFinite(t)&&Number.isFinite(e)&&!(e<=t)?Math.max(0,n)+(e-t):n),to.current=e)},[tb.length]);let tw=eM&&0===D.length&&!O.isStreaming&&!e6,tk=e?.cwd??L??void 0,tj=ed?X[`${ed.provider}:${ed.modelId}`]??null:null,tC=ed?Q[`${ed.provider}:${ed.modelId}`]??null:null,tI=(0,r.jsx)(r.Fragment,{children:ey?(0,r.jsx)("div",{style:{flexShrink:0,padding:`0 ${R?16:18}px 8px`},children:(0,r.jsx)("div",{style:{maxWidth:1230,margin:"0 auto"},children:(0,r.jsx)(oF,{request:ey,disabled:e4||!eE.current,onRespond:e=>{ej(ey,e)}})})}):T&&e?(0,r.jsx)(sF,{session:e,isMobile:R}):eH?(0,r.jsx)(sH,{isMobile:R}):(0,r.jsx)(oM,{ref:h,onSend:eF,onAbort:eD,onSteer:U?eO:void 0,onFollowUp:U?eU:void 0,onPromptWithStreamingBehavior:U?eq:void 0,isStreaming:e6,model:ed,isAutoModelSelection:eI,modelNames:J,modelList:Y,modelAuthConfigured:G,onModelChange:eN,onCompact:e||eM?eB:void 0,onAbortCompaction:eK,isCompacting:eo,compactError:es,compactResult:el,thinkingLevel:ee,thinkingReady:et,defaultThinkingLevel:eu,onThinkingLevelChange:e||eM?eG:void 0,availableThinkingLevels:tj,thinkingLevelMap:tC,thinkingLevelMaps:Q,retryInfo:en,queuedMessages:eg,onRecallQueue:eV,onSendQueueAsSteer:eJ,slashCommands:ep,slashCommandsLoading:eh,onLoadSlashCommands:eZ,onBuiltinCommand:eY,soundEnabled:S,onSoundToggle:C,footerCollapsed:e9,onFooterToggle:tw?void 0:()=>e7(e=>!e),onAudioUnlock:I,draftKey:e?.id??(L?`new:${L}`:void 0),cwd:e?.cwd??L,blocked:!!ey})}),tR=ek.some(e=>/todo/i.test(e.key)),tT=0===e_.length||tR?null:(0,r.jsx)("div",{style:{flexShrink:0,padding:`0 ${R?16:18}px`},children:(0,r.jsx)("div",{style:{maxWidth:1230,margin:"0 auto"},children:(0,r.jsx)(oZ,{todos:e_,collapsed:e5,onToggle:()=>e8(e=>!e)})})}),tE=ek.filter(e=>"belowEditor"!==e.placement),tz=ek.filter(e=>"belowEditor"===e.placement),tL=D.flatMap((e,t)=>{if("custom"!==e.role||"pidance.activity"!==e.customType||!e.details)return[];let n=e.details;return 1!==n.version||"string"!=typeof n.title||"string"!=typeof n.content?[]:[{key:N[t]??`${n.requestId??"activity"}-${t}`,activity:n,timestamp:e.timestamp}]}),tW=new Set(tL.map(e=>e.activity.requestId).filter(Boolean)),tA=[...tL,...ex.filter(e=>!e.activity.requestId||!tW.has(e.activity.requestId)).map(e=>({key:`live-${e.activity.requestId??e.timestamp}`,...e}))];return P?(0,r.jsx)("div",{className:"flex h-full items-center justify-center text-text-muted",children:j("chat_loadingSession")}):F?(0,r.jsx)("div",{className:"flex h-full items-center justify-center text-[var(--error-text)]",children:F}):(0,r.jsxs)("div",{"data-pidance-chat":"true","data-chat-message-count":D.length,"data-chat-entry-count":N.length,"data-chat-entry-ids":N.join(","),className:"relative flex h-full min-h-0 flex-col overflow-hidden",onDragEnter:th,onDragOver:tg,onDragLeave:tf,onDrop:tx,children:[(0,r.jsx)(r_,{}),tp&&!e6&&!e4&&(0,r.jsxs)("div",{className:"pointer-events-none absolute inset-0 z-50 flex animate-[drop-zone-in_0.15s_ease_both] items-center justify-center bg-[color-mix(in_srgb,var(--accent)_6%,transparent)] backdrop-blur-[1px]",children:[(0,r.jsx)("div",{className:"pointer-events-none absolute inset-0 flex items-center justify-center",children:[0,.8,1.6].map(e=>(0,r.jsx)("div",{className:"absolute h-[720px] w-[720px] rounded-full border-[1.5px] border-solid border-[color-mix(in_srgb,var(--accent)_50%,transparent)] animate-[drop-ripple_2.4s_ease-out_infinite_backwards]",style:{transformOrigin:"center",animationDelay:`${e}s`}},e))}),(0,r.jsxs)("svg",{width:"280",height:"280",viewBox:"0 0 140 140",fill:"none",xmlns:"http://www.w3.org/2000/svg",style:{filter:"drop-shadow(0 6px 18px color-mix(in srgb, var(--accent) 18%, transparent))"},children:[(0,r.jsx)("rect",{x:"28",y:"44",width:"84",height:"60",rx:"8",fill:"color-mix(in srgb, var(--accent) 8%, transparent)",stroke:"color-mix(in srgb, var(--accent) 50%, transparent)",strokeWidth:"1.8"}),(0,r.jsx)("path",{d:"M36 100 L54 72 L68 88 L80 74 L104 100Z",fill:"color-mix(in srgb, var(--accent) 16%, transparent)",stroke:"color-mix(in srgb, var(--accent) 40%, transparent)",strokeWidth:"1.4",strokeLinejoin:"round"}),(0,r.jsx)("circle",{cx:"96",cy:"58",r:"8",fill:"color-mix(in srgb, var(--accent) 22%, transparent)",stroke:"color-mix(in srgb, var(--accent) 55%, transparent)",strokeWidth:"1.6"}),(0,r.jsxs)("g",{stroke:"color-mix(in srgb, var(--accent) 45%, transparent)",strokeWidth:"1.4",strokeLinecap:"round",children:[(0,r.jsx)("line",{x1:"96",y1:"46",x2:"96",y2:"43"}),(0,r.jsx)("line",{x1:"96",y1:"70",x2:"96",y2:"73"}),(0,r.jsx)("line",{x1:"84",y1:"58",x2:"81",y2:"58"}),(0,r.jsx)("line",{x1:"108",y1:"58",x2:"111",y2:"58"}),(0,r.jsx)("line",{x1:"87.5",y1:"49.5",x2:"85.4",y2:"47.4"}),(0,r.jsx)("line",{x1:"104.5",y1:"66.5",x2:"106.6",y2:"68.6"}),(0,r.jsx)("line",{x1:"104.5",y1:"49.5",x2:"106.6",y2:"47.4"}),(0,r.jsx)("line",{x1:"87.5",y1:"66.5",x2:"85.4",y2:"68.6"})]})]})]}),eb&&(0,r.jsx)(sK,{request:eb,onInput:eC}),tw?(0,r.jsx)("div",{className:"flex flex-1 flex-col items-center justify-center overflow-y-auto px-4 py-8",children:(0,r.jsxs)("div",{className:"w-full max-w-[760px]",children:[(0,r.jsx)("div",{className:"mb-3",style:{display:"flex",alignItems:"center",gap:12,marginLeft:16,marginRight:52,fontFamily:"var(--font-mono)"},children:(0,r.jsxs)("div",{style:{display:"flex",alignItems:"baseline",gap:10,minWidth:0,flex:1,lineHeight:1.4,overflow:"hidden"},children:[(0,r.jsx)("span",{style:{fontSize:28,fontWeight:700,letterSpacing:0,color:"var(--text)",flexShrink:0,whiteSpace:"nowrap"},children:"π"}),(0,r.jsx)("span",{style:{fontSize:22,color:"var(--text)",fontWeight:700,letterSpacing:0,flexShrink:0,whiteSpace:"nowrap"},children:"Pidance"})]})}),(0,r.jsx)(sU,{notices:ef,activities:tA,onDismiss:em,onTogglePin:ev,align:"right"}),(0,r.jsx)("div",{className:"mb-4",children:(0,r.jsx)(oK,{targetCwd:L,onTargetChange:z})}),tT,tI]})}):(0,r.jsxs)(r.Fragment,{children:[(0,r.jsxs)("div",{className:"relative flex min-h-0 flex-1 overflow-hidden",children:[(0,r.jsx)("div",{style:{position:"absolute",top:12,left:18*!R,right:18*!R,zIndex:40,pointerEvents:"none"},children:(0,r.jsx)("div",{style:{maxWidth:1230,margin:"0 auto"},children:(0,r.jsx)(sU,{notices:ef,activities:tA,onDismiss:em,onTogglePin:ev,floating:!0,align:"right"})})}),R?null:(0,r.jsx)("div",{style:{position:"absolute",top:0,bottom:0,left:0,width:18,zIndex:30},children:(0,r.jsx)(oL,{messages:D,plan:tb,scrollContainer:ez,messageRefs:tv})}),(0,r.jsx)("div",{ref:ez,"data-chat-scroller":"true",className:"min-h-0 flex-1 overflow-y-auto py-4 [scrollbar-width:none]",style:{overflowAnchor:"none",overscrollBehavior:"auto",padding:`0 ${R?16:18}px`},children:(0,r.jsxs)("div",{style:{maxWidth:1230,margin:"0 auto"},children:[(()=>{var t;let n,i,o=new Map;for(let e of D)"toolResult"===e.role&&o.set(e.toolCallId,e);let s=new Map,l=0;D.forEach((e,t)=>{("user"===e.role||"assistant"===e.role)&&s.set(t,l++)});let a=t=>{let n="live"===t.source,i=n?-1:t.messageIndex,l=t.messageOverride??D[i],a="user"===l.role||"assistant"===l.role,d=n?void 0:s.get(i),c=n?"live":B[i]??`idx:${i}`,u=(0,r.jsx)(r8,{message:l,toolResults:o,toolExecutionSnapshots:eT,modelNames:J,cwd:tk,onOpenFile:b,isStreaming:n,toolsActive:e6,entryId:n?void 0:N[i],onBranchHere:n||e6||eM||e4?void 0:eX,onNewSessionFromHere:n||e6||eM||e4?void 0:e0,onBranchFromAssistant:n||e6||eM||e4?void 0:eQ,onNewSessionFromAnswer:n||e6||eM||e4?void 0:e2,forking:!n&&ei===N[i],showTimestamp:t.showTimestamp,prevTimestamp:!n&&i>0?D[i-1].timestamp:void 0,sessionId:e?.id??eE.current??void 0},`${t.keyPrefix}-view-${c}`);return a&&t.attachRef&&void 0!==d?(0,r.jsx)("div",{ref:e=>{tv.current[d]=e},children:u},`${t.keyPrefix}-${c}`):u},d=[];for(let e of tb){if("message"===e.kind){d.push(a(e));continue}let t=void 0===e.attachRefMessageIndex?void 0:s.get(e.attachRefMessageIndex),n=(0,r.jsx)(sP,{t:j,messageCount:e.messageCount,toolCallCount:e.toolCallCount,children:e.children.map(e=>a(e))});d.push((0,r.jsx)("div",{ref:void 0===t?void 0:e=>{tv.current[t]=e},children:n},`process-group-${B[e.userIdx]??`u:${e.userIdx}`}-${B[e.finalAssistantIdx]??`a:${e.finalAssistantIdx}`}`))}let{startIndex:c,hasMore:u}=(n=Math.min(Math.max(tt,0),Math.max(t=d.length,0)),{startIndex:i=Math.max(0,t-n),hasMore:i>0}),p=u||H;return(0,r.jsxs)(r.Fragment,{children:[p&&(0,r.jsx)("div",{ref:tr,className:"py-3 text-center text-xs text-text-muted",children:$?j("chat_loadingSession"):j("chat_loadEarlier",{count:u?c:50})}),d.slice(c)]})})(),U&&!O.streamingMessage&&(0,r.jsxs)("div",{className:"flex items-center gap-2 py-2 text-[13px] text-text-muted",children:[(0,r.jsx)("span",{className:"size-1.5 rounded-full bg-status-running","aria-hidden":"true"}),(0,r.jsx)("span",{children:function(e,t){if(e?.kind==="running_tools"){let n=e.tools.map(e=>e.name);return 0===n.length?`${t("chat_runningTool")}...`:1===n.length?`${t("chat_runningNamed",{name:n[0]})}...`:n.length<=3?`${t("chat_runningNamed",{name:n.join(", ")})}...`:`${t("chat_runningNamed",{name:`${n.slice(0,2).join(", ")} (+${n.length-2})`})}...`}return e?.kind==="waiting_model"?`${t("chat_waitingModel")}...`:e?.kind==="running_command"?`${t("chat_runningCommand")}...`:`${t("chat_thinking")}...`}(eR,j)})]}),K&&!V&&(0,r.jsxs)("div",{className:"flex items-center gap-2 py-2 text-[13px] text-text-muted",children:[(0,r.jsx)("span",{className:"size-1.5 rounded-full bg-status-running","aria-hidden":"true"}),(0,r.jsxs)("span",{children:[j("chat_runningCommand"),"..."]})]}),V&&(0,r.jsx)(r8,{message:{role:"bashExecution",command:V.command,output:"",excludeFromContext:V.excludeFromContext,timestamp:V.startedAt},sessionId:e?.id??eE.current??void 0}),(0,r.jsx)("div",{"aria-hidden":"true",style:{height:R?40:"10vh"}})]})}),(0,r.jsx)("button",{type:"button",className:`chat-jump-bottom${eL?" is-visible":""}`,"aria-label":j("chat_backToBottom"),"aria-hidden":!eL,tabIndex:eL?0:-1,onClick:eW,children:(0,r.jsx)("svg",{width:"14",height:"14",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2.2",strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":"true",children:(0,r.jsx)("polyline",{points:"6 9 12 15 18 9"})})}),R?null:(0,r.jsx)("div",{style:{position:"absolute",top:0,bottom:0,right:0,width:18,zIndex:30},children:(0,r.jsx)(oz,{messages:D,plan:tb,scrollContainer:ez,messageRefs:tv})})]}),(0,r.jsxs)("div",{className:"relative",children:[(0,r.jsx)("div",{style:{padding:`0 ${R?16:18}px`},children:(0,r.jsx)("div",{style:{maxWidth:1230,margin:"0 auto"},children:(0,r.jsx)(sN,{widgets:tE})})}),tT,eo&&(0,r.jsxs)("div",{role:"status","aria-live":"polite",style:{display:"flex",alignItems:"center",gap:7,padding:"4px 16px 6px",color:"var(--text-muted)",fontSize:12},children:[(0,r.jsx)("span",{className:"size-1.5 rounded-full bg-status-running","aria-hidden":"true"}),(0,r.jsx)("span",{children:j("input_compacting")})]}),tI,!ey&&(0,r.jsx)("div",{style:{padding:`0 ${R?16:18}px`},children:(0,r.jsx)("div",{style:{maxWidth:1230,margin:"0 auto"},children:!e9&&(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(sN,{widgets:tz}),(0,r.jsx)(sD,{statuses:ew})]})})})]})]})]})}function sH({isMobile:e}){let{t}=(0,ea.s9)();return(0,r.jsx)("div",{style:{flexShrink:0,padding:`0 ${e?16:18}px 8px`},children:(0,r.jsx)("div",{style:{maxWidth:1230,margin:"0 auto"},children:(0,r.jsxs)("div",{role:"status","aria-label":t("chat_sessionWriteLocked"),style:{display:"flex",alignItems:"flex-start",gap:8,border:"1px solid var(--border)",borderRadius:10,background:"var(--bg-panel)",padding:"8px 12px",fontSize:12,lineHeight:1.5,color:"var(--text-muted)"},children:[(0,r.jsxs)("svg",{width:"12",height:"12",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",style:{flexShrink:0,marginTop:2,color:"var(--text-dim)"},"aria-hidden":"true",children:[(0,r.jsx)("rect",{x:"3",y:"11",width:"18",height:"11",rx:"2",ry:"2"}),(0,r.jsx)("path",{d:"M7 11V7a5 5 0 0 1 10 0v4"})]}),(0,r.jsxs)("span",{style:{minWidth:0},children:[(0,r.jsx)("span",{style:{color:"var(--text)",fontWeight:600},children:t("chat_sessionWriteLocked")}),`. ${t("chat_sessionWriteLockedDescription")}`]})]})})})}function sF({session:e,isMobile:t}){let{t:n}=(0,ea.s9)(),i=e.subagent,o=i?`${i.agent?n("chat_agentNamed",{name:i.agent}):n("chat_subagent")} \xb7 ${n("chat_subagentRun",{count:i.runIndex})}`:null;return(0,r.jsx)("div",{style:{flexShrink:0,padding:`0 ${t?16:18}px 8px`},children:(0,r.jsx)("div",{style:{maxWidth:1230,margin:"0 auto"},children:(0,r.jsxs)("div",{role:"note","aria-label":n("chat_readOnlySession"),style:{display:"flex",alignItems:"flex-start",gap:8,border:"1px solid var(--border)",borderRadius:10,background:"var(--bg-panel)",padding:"8px 12px",fontSize:12,lineHeight:1.5,color:"var(--text-muted)"},children:[(0,r.jsxs)("svg",{width:"12",height:"12",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",style:{flexShrink:0,marginTop:2,color:"var(--text-dim)"},"aria-hidden":"true",children:[(0,r.jsx)("rect",{x:"3",y:"11",width:"18",height:"11",rx:"2",ry:"2"}),(0,r.jsx)("path",{d:"M7 11V7a5 5 0 0 1 10 0v4"})]}),(0,r.jsxs)("span",{style:{minWidth:0},children:[(0,r.jsx)("span",{style:{color:"var(--text)",fontWeight:600},children:n("chat_readOnlySession")}),o?` — ${o}`:` — ${n("chat_subagentSessionFallback")}`,`. ${n("chat_readOnlySessionDescription")}`]})]})})})}function sD({statuses:e}){return 0===e.length?null:(0,r.jsx)("div",{style:{display:"flex",flexWrap:"wrap",gap:6,marginBottom:10},children:e.map(e=>(0,r.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:6,maxWidth:"100%",padding:"4px 8px",border:"1px solid color-mix(in srgb, var(--accent) 24%, var(--border))",borderRadius:6,background:"color-mix(in srgb, var(--accent) 7%, var(--bg))",color:"var(--text-muted)",fontSize:12},children:[(0,r.jsx)("span",{style:{color:"var(--accent)",fontFamily:"var(--font-mono)",fontSize:11},children:e.key}),(0,r.jsx)("span",{style:{minWidth:0,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:sq(e.text,`status-${e.key}`)})]},e.key))})}function sN({widgets:e}){let{t}=(0,ea.s9)(),n=nv()?rq:rU,[o,s]=(0,i.useState)(()=>(function(){try{let e=window.localStorage.getItem(sB),t=e?JSON.parse(e):null;if(Array.isArray(t))return new Set(t.filter(e=>"string"==typeof e))}catch{}return new Set})()),l=(0,i.useCallback)(e=>{s(t=>{let n=new Set(t);return n.has(e)?n.delete(e):n.add(e),function(e){try{window.localStorage.setItem(sB,JSON.stringify([...e]))}catch{}}(n),n})},[]);return 0===e.length?null:(0,r.jsx)("div",{style:{display:"flex",flexDirection:"column",gap:8,marginBottom:10},children:e.map(e=>{let s=o.has(e.key);return(0,r.jsxs)("div",{style:{border:"1px solid var(--border)",borderRadius:7,background:"var(--bg-panel)",overflow:"hidden"},children:[(0,r.jsxs)("button",{type:"button",onClick:()=>l(e.key),"aria-expanded":!s,"aria-label":s?t("extension_widgetExpand",{name:e.key}):t("extension_widgetCollapse",{name:e.key}),title:s?t("extension_widgetExpand",{name:e.key}):t("extension_widgetCollapse",{name:e.key}),style:{display:"flex",width:"100%",alignItems:"center",gap:6,padding:"5px 9px",border:"none",borderBottom:s?"none":"1px solid var(--border)",background:"transparent",color:"var(--text-dim)",fontSize:11,fontFamily:"var(--font-mono)",cursor:"pointer",textAlign:"left"},children:[(0,r.jsx)("svg",{width:"10",height:"10",viewBox:"0 0 12 12",fill:"none",stroke:"currentColor",strokeWidth:"1.6",strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":"true",style:{flexShrink:0,transform:s?"none":"rotate(90deg)",transition:"transform 0.15s ease"},children:(0,r.jsx)("polyline",{points:"4 2.5 7.5 6 4 9.5"})}),(0,r.jsx)("span",{style:{overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:e.key})]}),!s&&(0,r.jsx)("pre",{style:{margin:0,padding:"8px 9px",color:"var(--text-muted)",fontSize:12,lineHeight:1.5,whiteSpace:"pre-wrap",wordBreak:"break-word",fontFamily:"var(--font-mono)",maxHeight:n,overflow:"auto",overscrollBehavior:"auto",touchAction:"pan-y"},children:(Array.isArray(e.lines)?e.lines:[]).map((t,n,o)=>(0,r.jsxs)(i.Fragment,{children:[sq(t,`widget-${e.key}-line-${n}`),n<o.length-1?"\n":null]},n))})]},e.key)})})}let sB="pidance.collapsedWidgetKeys.v1";function sO({label:e,active:t=!1,onClick:n,children:i}){return(0,r.jsx)("button",{type:"button","aria-label":e,title:e,onClick:n,style:{display:"inline-flex",alignItems:"center",justifyContent:"center",width:28,height:28,padding:0,flexShrink:0,border:"none",borderRadius:7,background:t?"var(--bg-selected)":"transparent",color:t?"var(--text)":"var(--text-dim)",cursor:"pointer"},children:i})}function sU({notices:e,activities:t,onDismiss:n,onTogglePin:o,floating:s=!1,align:l="left"}){let{t:a}=(0,ea.s9)(),[d,c]=(0,i.useState)(!1),[u,p]=(0,i.useState)(null),[h,g]=(0,i.useState)({}),[f,x]=(0,i.useState)(null);if(0===e.length&&0===t.length)return null;let m=[...e].sort((e,t)=>Number(t.pinned)-Number(e.pinned)),v=u?t.filter(e=>e.activity.requestId===u):t,y=async e=>{try{await navigator.clipboard.writeText(e.message),x(e.id),window.setTimeout(()=>{x(t=>t===e.id?null:t)},1200)}catch{}};return(0,r.jsxs)("div",{style:{display:"flex",flexDirection:"column",alignItems:"right"===l?"flex-end":"stretch",gap:7,width:"100%",marginBottom:10*!s,pointerEvents:"auto"},children:[t.length>0&&(0,r.jsxs)("button",{type:"button",onClick:()=>{p(null),c(e=>!e)},"aria-expanded":d,style:{display:"flex",alignItems:"center",gap:7,padding:"5px 9px",border:"1px solid var(--border)",borderRadius:10,background:"var(--bg-panel)",color:"var(--text-muted)",cursor:"pointer",fontSize:11},children:[(0,r.jsxs)("svg",{width:"12",height:"12",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"1.8","aria-hidden":"true",children:[(0,r.jsx)("path",{d:"M3 12a9 9 0 1 0 3-6.7"}),(0,r.jsx)("path",{d:"M3 4v6h6"}),(0,r.jsx)("path",{d:"M12 7v5l3 2"})]}),a("notice_activityHistory",{count:t.length})]}),d&&(0,r.jsxs)("section",{"aria-label":a("notice_activityHistoryTitle"),style:{width:"min(100%, 620px)",maxHeight:360,overflow:"auto",border:"1px solid var(--border)",borderRadius:12,background:"var(--bg)",boxShadow:"0 16px 40px color-mix(in srgb, var(--text) 14%, transparent)"},children:[(0,r.jsxs)("div",{style:{position:"sticky",top:0,zIndex:1,display:"flex",alignItems:"center",justifyContent:"space-between",gap:10,padding:"9px 10px 9px 12px",borderBottom:"1px solid var(--border)",background:"var(--bg-panel)"},children:[(0,r.jsxs)("div",{children:[(0,r.jsx)("div",{style:{color:"var(--text)",fontSize:12,fontWeight:650},children:a("notice_activityHistoryTitle")}),(0,r.jsx)("div",{style:{color:"var(--text-dim)",fontSize:10},children:a("notice_activityHistoryDescription")})]}),(0,r.jsx)(sO,{label:a("notice_close"),onClick:()=>c(!1),children:(0,r.jsx)("svg",{width:"14",height:"14",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2","aria-hidden":"true",children:(0,r.jsx)("path",{d:"M18 6 6 18M6 6l12 12"})})})]}),v.length>0?(0,r.jsx)("div",{style:{display:"flex",flexDirection:"column",gap:8,padding:10},children:[...v].reverse().map(({key:e,activity:t,timestamp:n})=>(0,r.jsxs)("article",{style:{border:"1px solid var(--border)",borderLeft:`3px solid ${"warning"===t.kind||"error"===t.kind?"var(--warning)":"var(--accent)"}`,borderRadius:10,background:"var(--bg-panel)",padding:"9px 10px"},children:[(0,r.jsxs)("div",{style:{display:"flex",alignItems:"baseline",gap:8,marginBottom:5},children:[(0,r.jsx)("span",{style:{color:"var(--text)",fontSize:12,fontWeight:650},children:t.title}),n?(0,r.jsx)("time",{style:{marginLeft:"auto",color:"var(--text-dim)",fontSize:10},children:new Date(n).toLocaleTimeString([],{hour:"2-digit",minute:"2-digit"})}):null]}),(0,r.jsx)("div",{style:{color:"var(--text-muted)",fontSize:12,lineHeight:1.55,whiteSpace:"pre-wrap",overflowWrap:"anywhere"},children:t.content})]},e))}):(0,r.jsx)("div",{style:{padding:16,color:"var(--text-muted)",fontSize:12},children:a("notice_activityPending")})]}),m.map(e=>{let t="important"===e.tier,i=function(e){switch(e){case"error":return"var(--error-text)";case"warning":return"var(--warning)";case"success":return"var(--success)";default:return"var(--accent)"}}(e.type),l=!0===h[e.id],d=a(function(e){switch(e){case"error":return"notice_error";case"warning":return"notice_warning";case"success":return"notice_success";default:return"notice_info"}}(e.type));return(0,r.jsxs)("div",{className:"notice-shelf-item",role:"error"===e.type?"alert":"status",style:{display:"flex",alignItems:l?"flex-start":"center",gap:6,minHeight:l?t?64:40:36,borderRadius:10,border:`1px solid color-mix(in srgb, ${i} 42%, var(--border))`,borderLeft:`3px solid ${i}`,background:`color-mix(in srgb, ${i} ${t?12:8}%, var(--bg-panel))`,color:"var(--text-muted)",width:"min(100%, 620px)",maxWidth:"min(100%, 620px)",boxShadow:s?"0 12px 32px color-mix(in srgb, var(--text) 13%, transparent)":"0 8px 24px color-mix(in srgb, var(--text) 8%, transparent)",fontSize:t?13:12,lineHeight:1.45,transformOrigin:"top right",animation:e.exiting?"notice-shelf-out 0.18s ease-in forwards":"notice-shelf-in 0.18s ease-out both",padding:"5px 6px 5px 6px"},children:[(0,r.jsx)(sO,{label:l?a("notice_collapse"):a("notice_expand"),active:l,onClick:()=>{var t;return t=e.id,void g(e=>({...e,[t]:!e[t]}))},children:(0,r.jsx)("svg",{width:"14",height:"14",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2","aria-hidden":"true",children:l?(0,r.jsx)("path",{d:"m6 9 6 6 6-6"}):(0,r.jsx)("path",{d:"m9 6 6 6-6 6"})})}),(0,r.jsxs)("div",{style:{minWidth:0,flex:1,paddingTop:4*!!l},children:[(0,r.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:6,minWidth:0},children:[(0,r.jsxs)("span",{style:{color:i,fontFamily:"var(--font-mono)",fontSize:10,fontWeight:700,letterSpacing:.6,textTransform:"uppercase",flexShrink:0},children:[d,e.pinned?` \xb7 ${a("notice_pinned")}`:""]}),!l&&(0,r.jsx)("span",{style:{color:"var(--text-muted)",fontSize:12,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",minWidth:0},children:e.message.replace(/\s+/g," ").trim()})]}),l&&(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)("div",{style:{marginTop:4,color:t?"var(--text)":"var(--text-muted)",whiteSpace:"pre-wrap",overflowWrap:"anywhere"},children:e.message}),t&&e.activityRecord&&(0,r.jsxs)("button",{type:"button",onClick:()=>{p(e.id),c(!0)},style:{marginTop:7,padding:0,border:"none",background:"transparent",color:"var(--accent)",cursor:"pointer",fontSize:11,fontWeight:600},children:[a("notice_viewActivity")," →"]})]})]}),(0,r.jsx)(sO,{label:f===e.id?a("notice_copied"):a("notice_copy"),active:f===e.id,onClick:()=>{y(e)},children:f===e.id?(0,r.jsx)("svg",{width:"14",height:"14",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2","aria-hidden":"true",children:(0,r.jsx)("path",{d:"M20 6 9 17l-5-5"})}):(0,r.jsxs)("svg",{width:"14",height:"14",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"1.8","aria-hidden":"true",children:[(0,r.jsx)("rect",{x:"9",y:"9",width:"11",height:"11",rx:"2"}),(0,r.jsx)("path",{d:"M5 15V5a2 2 0 0 1 2-2h10"})]})}),t&&(0,r.jsx)(sO,{label:e.pinned?a("notice_unpin"):a("notice_pin"),active:e.pinned,onClick:()=>o(e.id),children:(0,r.jsxs)("svg",{width:"14",height:"14",viewBox:"0 0 24 24",fill:e.pinned?"currentColor":"none",stroke:"currentColor",strokeWidth:"1.8","aria-hidden":"true",children:[(0,r.jsx)("path",{d:"m15 4 5 5-4 2-3 5-2 4-1-6-6-6 4-1 5-3 2-4Z"}),(0,r.jsx)("path",{d:"m4 20 5-5"})]})}),(0,r.jsx)(sO,{label:a("notice_close"),onClick:()=>n(e.id),children:(0,r.jsx)("svg",{width:"14",height:"14",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2","aria-hidden":"true",children:(0,r.jsx)("path",{d:"M18 6 6 18M6 6l12 12"})})})]},e.id)})]})}function sq(e,t){return nn(e).map((e,n)=>Object.keys(e.style).length>0?(0,r.jsx)("span",{style:e.style,children:e.text},`${t}-${n}`):e.text)}function sK({request:e,onInput:t}){let{t:n}=(0,ea.s9)(),o=(0,i.useRef)(null),s=(0,i.useRef)(!1),l=function(e){if(!Array.isArray(e))return[];let t=e.filter(e=>"string"==typeof e),n=/^[┌├└╭╰][─┬┴┼]+[┐┤┘╮╯]$/,r=[];for(let e of t){let t=e.replace(t5,""),i=t9(t).trimEnd();if(n.test(i))continue;let o=t,s=nt(o);("│"===s||"┃"===s)&&" "===nt(o=ne(o,0))&&(o=ne(o,0));let l=function(e){let t=t7(e);for(let e=t.length-1;e>=0;e--)if(""!==t[e].char.trim())return e;return -1}(o),a=l>=0?t7(o)[l]?.char:void 0;("│"===a||"┃"===a)&&(o=ne(o,l)),r.push(function(e){let t=e;for(;;){let e=t7(t),n=e[e.length-1];if(!n||""!==n.char.trim())return t;t=t.slice(0,n.start)+t.slice(n.end)}}(o))}for(;r.length>0&&""===t9(r[0]).trim();)r.shift();for(;r.length>0&&""===t9(r[r.length-1]).trim();)r.pop();return r.length?r:t}(e.lines);return(0,i.useEffect)(()=>{o.current?.focus()},[e.id]),(0,r.jsx)("div",{style:{position:"absolute",inset:0,zIndex:95,display:"flex",alignItems:"center",justifyContent:"center",padding:20,background:"var(--overlay)"},children:(0,r.jsxs)("div",{role:"dialog","aria-modal":"true",onClick:e=>{e.target.closest("button")||o.current?.focus()},style:{position:"relative",width:"min(1230px, 100%)",maxHeight:"min(760px, calc(100vh - 40px))",border:"1px solid var(--border)",borderRadius:8,background:"var(--bg)",boxShadow:"0 20px 60px rgba(0,0,0,0.28)",overflow:"hidden",outline:"none"},children:[(0,r.jsx)("textarea",{ref:o,"aria-label":n("chat_extensionPanel"),autoCapitalize:"off",autoComplete:"off",autoCorrect:"off",spellCheck:!1,onKeyDown:n=>{if(s.current||n.nativeEvent.isComposing)return;let r=function(e){if(e.metaKey||e.ctrlKey&&!e.altKey&&"v"===e.key.toLowerCase())return null;if(e.ctrlKey&&!e.altKey){let t=function(e){if(1!==e.length)return null;let t=e.toUpperCase().charCodeAt(0);return t>=64&&t<=95?String.fromCharCode(31&t):"?"===e?"":null}(e.key);if(t)return t}if(e.altKey&&!e.ctrlKey){if("Backspace"===e.key)return"\x1b\x7f";let t=ni[e.key];if(t)return t;if(1===e.key.length)return`\x1b${e.key}`}return"Enter"===e.key?e.shiftKey?"\n":"\r":"Tab"===e.key?e.shiftKey?"\x1b[Z":" ":nr[e.key]??null}(n);r&&(n.preventDefault(),n.stopPropagation(),t(e,r))},onInput:n=>{if(s.current||n.nativeEvent.isComposing)return;let r=n.currentTarget.value;n.currentTarget.value="",r&&t(e,r)},onCompositionStart:()=>{s.current=!0},onCompositionEnd:n=>{s.current=!1;let r=n.currentTarget;queueMicrotask(()=>{let n=r.value;r.value="",n&&t(e,n)})},onPaste:n=>{n.preventDefault();let r=n.clipboardData.getData("text");r&&t(e,`\x1b[200~${r}\x1b[201~`)},style:{position:"absolute",width:1,height:1,padding:0,border:0,opacity:0,pointerEvents:"none"}}),(0,r.jsxs)("div",{style:{display:"flex",alignItems:"center",justifyContent:"space-between",gap:12,padding:"10px 12px",borderBottom:"1px solid var(--border)"},children:[(0,r.jsx)("div",{style:{color:"var(--text)",fontSize:13,fontWeight:650},children:n("chat_extensionPanel")}),(0,r.jsx)("button",{onClick:()=>t(e,"\x03"),style:{padding:"5px 9px",borderRadius:6,border:"1px solid var(--border)",background:"var(--bg-panel)",color:"var(--text-muted)",cursor:"pointer",fontSize:12},children:n("chat_close")})]}),(0,r.jsx)("pre",{style:{margin:0,padding:14,maxHeight:"calc(min(760px, 100vh - 40px) - 48px)",overflow:"auto",background:"var(--bg-panel)",color:"var(--text)",fontFamily:"var(--font-mono)",fontSize:13,lineHeight:1.45,whiteSpace:"pre"},children:(l.length?l:[""]).map((e,t,n)=>(0,r.jsxs)(i.Fragment,{children:[sq(e,`line-${t}`),t<n.length-1?"\n":null]},t))})]})})}var sV=n(50640),sJ=n(79617),sY=n.n(sJ);function sG(e){let t=e.replace(/[\\/]+$/,"");return t.length>0?t:sY().sep}function sZ(e,t){return e.some(e=>(function(e,t){let n=sG(e),r=sG(t);if(n===r)return!0;let i=`${n}${sY().sep}`,o=`${n}/`;return r.startsWith(i)||r.startsWith(o)})(e,t))}let sX={buffers:{}};function sQ(e,t){return JSON.stringify([e,t??null])}function s0(e,t){let n={...e,...t};return{...n,dirty:n.content!==n.savedContent}}function s1(e,t){return{...e,buffers:{...e.buffers,[t.key]:t}}}function s2(e=sX,t){var n;if("initialize"===t.type){let n=sQ(t.filePath,t.sourceSessionId),r=e.buffers[n];return r?.dirty?s1(e,s0(r,{externalChange:{content:t.content,baseline:t.baseline}})):r?s1(e,s0(r,{savedContent:t.content,content:t.content,baseline:t.baseline,language:t.language,past:[],future:[],lastEditAt:null,saveState:"idle",saveRequestId:null,saveRequestRevision:null,error:null,externalChange:null})):s1(e,{key:n,filePath:t.filePath,sourceSessionId:t.sourceSessionId??null,savedContent:t.content,content:t.content,baseline:t.baseline,language:t.language,dirty:!1,past:[],future:[],lastEditAt:null,revision:0,saveState:"idle",saveRequestId:null,saveRequestRevision:null,error:null,externalChange:null})}let r=(n=t.key,e.buffers[n]);if(!r)return e;if("edit"===t.type){if(t.content===r.content)return e;let n=t.at??Date.now(),i=!t.forceBoundary&&null!==r.lastEditAt&&n-r.lastEditAt<=500&&n>=r.lastEditAt?r.past:[...r.past,r.content].slice(-50);return s1(e,s0(r,{content:t.content,past:i,future:[],lastEditAt:n,revision:r.revision+1,saveState:"error"===r.saveState?"idle":r.saveState,error:null}))}if("undo"===t.type){if(!r.past.length)return e;let t=r.past[r.past.length-1];return s1(e,s0(r,{content:t,past:r.past.slice(0,-1),future:[r.content,...r.future].slice(0,50),revision:r.revision+1}))}if("redo"===t.type){if(!r.future.length)return e;let t=r.future[0];return s1(e,s0(r,{content:t,past:[...r.past,r.content].slice(-50),future:r.future.slice(1),revision:r.revision+1}))}if("discard"===t.type)return s1(e,s0(r,{content:r.savedContent,past:[],future:[],lastEditAt:null,revision:r.revision+1,saveState:"idle",saveRequestId:null,saveRequestRevision:null,error:null,externalChange:null}));if("remove"===t.type){let n={...e.buffers};return delete n[t.key],{...e,buffers:n}}if("markSaving"===t.type){let n=t.requestRevision??r.revision;return s1(e,s0(r,{saveState:"saving",saveRequestId:t.requestId,saveRequestRevision:n,error:null}))}return("saveSuccess"===t.type||"saveConflict"===t.type||"saveError"===t.type)&&t.requestId&&r.saveRequestId!==t.requestId?e:"saveSuccess"===t.type?r.saveRequestRevision!==t.requestRevision?e:s1(e,s0(r,{savedContent:t.savedContent,baseline:t.baseline,saveState:"idle",saveRequestId:null,saveRequestRevision:null,error:null,externalChange:null})):"saveConflict"===t.type?s1(e,s0(r,{saveState:"conflict",baseline:t.baseline??r.baseline,error:t.message??"文件已被外部修改"})):"saveError"===t.type?s1(e,s0(r,{saveState:"error",error:t.message})):e}function s4(e,t){return e.buffers[t]}function s6(e){return!!e?.past.length}function s5(e){return!!e?.future.length}let s8={source:"viewer_source",preview:"viewer_preview",diff:"viewer_diff"},s3={fontFamily:"var(--font-mono)",fontSize:13,lineHeight:1.6},s9={width:48,minWidth:48,padding:"0 10px",textAlign:"right",color:"var(--text-dim)",background:"var(--bg-panel)",borderRight:"1px solid var(--border)",fontFamily:"var(--font-mono)",fontSize:11,fontStyle:"normal",fontVariantNumeric:"tabular-nums",lineHeight:"20.8px",userSelect:"none",flexShrink:0,verticalAlign:"top"};function s7({rows:e,stylesheet:t,useInlineStyles:n,wrapLines:i}){return e.map((e,o)=>{let s=e.children??[],l=s[0]?.properties?.className,a=Array.isArray(l)&&l.includes("react-syntax-highlighter-line-number"),d=a?s[0]:null,c=a?s.slice(1):s;return(0,r.jsxs)("span",{className:"file-source-line",style:{display:"flex",minWidth:"100%"},children:[d&&(0,sV.Ay)({node:d,stylesheet:t,useInlineStyles:n,key:`source-line-number-${o}`}),(0,r.jsx)("span",{className:"file-source-line-content",style:{flex:"1 1 auto",minWidth:0,overflowWrap:i?"anywhere":"normal",whiteSpace:i?"pre-wrap":"pre"},children:c.map((e,r)=>(0,sV.Ay)({node:e,stylesheet:t,useInlineStyles:n,key:`source-token-${o}-${r}`}))})]},`source-line-${o}`)})}function le(e,t,n,r={}){let i=n4(e),o=new URLSearchParams({type:t});for(let[e,t]of(n&&o.set("sessionId",n),Object.entries(r)))void 0!==t&&o.set(e,String(t));return`/api/files/${i}?${o.toString()}`}function lt({filePath:e,sourceSessionId:t}){let{t:n}=(0,ea.s9)();return(0,r.jsx)("a",{href:le(e,"download",t),download:n6(e),title:n("viewer_download"),"aria-label":n("viewer_download"),className:"file-viewer-icon-button",children:(0,r.jsxs)("svg",{width:"14",height:"14",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2.2",strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":"true",children:[(0,r.jsx)("path",{d:"M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4"}),(0,r.jsx)("polyline",{points:"7 10 12 15 17 10"}),(0,r.jsx)("line",{x1:"12",y1:"15",x2:"12",y2:"3"})]})})}function ln(e){return e<1024?`${e} B`:e<1048576?`${(e/1024).toFixed(1)} KB`:`${(e/1048576).toFixed(1)} MB`}function lr({patch:e}){let t,{t:n}=(0,ea.s9)(),i=(t=rB(e))?t.flatMap(e=>e.rows.flatMap(e=>{if("hunk"===e.type)return[];if("context"===e.left.type&&"context"===e.right.type)return[{type:"unchanged",text:e.right.text,oldLineNo:e.left.lineNo,newLineNo:e.right.lineNo}];let t=[];return"removed"===e.left.type&&t.push({type:"removed",text:e.left.text,oldLineNo:e.left.lineNo,newLineNo:null}),"added"===e.right.type&&t.push({type:"added",text:e.right.text,oldLineNo:null,newLineNo:e.right.lineNo}),t})):[];if(!i.some(e=>"unchanged"!==e.type))return(0,r.jsx)("div",{style:{padding:"12px 16px",fontSize:12,color:"var(--text-dim)",fontFamily:"var(--font-mono)"},children:n("viewer_noChanges")});let o=new Set(i.flatMap((e,t)=>"unchanged"!==e.type?[t]:[])),s=new Set;for(let e of o)for(let t=Math.max(0,e-3);t<=Math.min(i.length-1,e+3);t++)s.add(t);let l=[],a=0;for(;a<i.length;)if(s.has(a)){let e=[];for(;a<i.length&&s.has(a);)e.push(i[a]),a++;l.push({hidden:!1,lines:e})}else{let e=0;for(;a<i.length&&!s.has(a);)e++,a++;l.push({hidden:!0,count:e})}return(0,r.jsx)("div",{className:"file-diff-view",style:{width:"max-content",minWidth:"100%",...s3},children:l.map((e,t)=>{if(e.hidden)return(0,r.jsxs)("div",{style:{padding:"2px 16px",color:"var(--text-dim)",background:"var(--bg-panel)",fontSize:11,borderTop:"1px solid var(--border)",borderBottom:"1px solid var(--border)"},children:["... ",e.count," unchanged lines ..."]},t);let n=e.lines.map((e,t)=>{let n="added"===e.type?"var(--diff-added-bg)":"removed"===e.type?"var(--diff-removed-bg)":"transparent",i="added"===e.type?"+":"removed"===e.type?"-":" ",o="added"===e.type?"var(--diff-added-text)":"removed"===e.type?"var(--diff-removed-text)":"var(--text-dim)";return(0,r.jsxs)("div",{className:"file-diff-line",style:{display:"flex",minWidth:"100%",background:n,borderLeft:"added"===e.type?"3px solid var(--diff-added-border)":"removed"===e.type?"3px solid var(--diff-removed-border)":"3px solid transparent"},children:[(0,r.jsx)("span",{style:s9,children:"removed"===e.type?e.oldLineNo:e.newLineNo}),(0,r.jsx)("span",{style:{minWidth:16,padding:"0 6px",color:o,userSelect:"none",flexShrink:0,fontWeight:600},children:i}),(0,r.jsx)("span",{className:"file-diff-line-content",style:{flexShrink:0,padding:"0 8px 0 0",whiteSpace:"pre",color:"var(--text)"},children:e.text||"\xa0"})]},t)});return(0,r.jsx)("div",{children:n},t)})})}function li({filePath:e,cwd:t,sourceSessionId:n}){let{t:o}=(0,ea.s9)(),[s,l]=(0,i.useState)(!1),[a,d]=(0,i.useState)(0),[c,u]=(0,i.useState)(null),[p,h]=(0,i.useState)(null),[g,f]=(0,i.useState)(null),x=(0,i.useRef)(null),m=n6(e).toLowerCase().split(".").pop()??"";(0,i.useEffect)(()=>{d(0),u(null),h(null),f(null),l(!1),x.current&&(x.current.close(),x.current=null);let t=new EventSource(le(e,"watch",n));return x.current=t,t.addEventListener("connected",()=>l(!0)),t.addEventListener("change",e=>{try{let t=JSON.parse(e.data);"number"==typeof t.size&&u(t.size)}catch{}d(e=>e+1)}),t.addEventListener("error",()=>l(!1)),t.onerror=()=>l(!1),()=>{t.close(),x.current=null}},[e,n]);let v=le(e,"read",n,a?{v:a}:void 0),y=null!=c?ln(c):null;return(0,r.jsxs)("div",{style:{display:"flex",flexDirection:"column",height:"100%",overflow:"hidden"},children:[(0,r.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:12,padding:"4px 16px",borderBottom:"1px solid var(--border)",fontSize:11,color:"var(--text-dim)",background:"var(--bg)",flexShrink:0},children:[(0,r.jsx)("span",{style:{fontFamily:"var(--font-mono)"},title:e,children:n8(e,t)}),(0,r.jsx)("span",{style:{marginLeft:"auto"},children:m||"image"}),p&&(0,r.jsxs)("span",{children:[p.w," \xd7 ",p.h]}),y&&(0,r.jsx)("span",{children:y}),(0,r.jsxs)("span",{title:s?o("viewer_liveSyncOn"):o("viewer_liveSyncOff"),style:{display:"flex",alignItems:"center",gap:4,color:s?"var(--status-success)":"var(--text-dim)"},children:[(0,r.jsx)("span",{style:{width:7,height:7,borderRadius:"50%",background:s?"var(--status-success)":"var(--border)",display:"inline-block",boxShadow:s?"var(--live-indicator-glow)":"none"}}),s?o("viewer_live"):o("viewer_static")]}),(0,r.jsx)(lt,{filePath:e,sourceSessionId:n})]}),(0,r.jsx)("div",{style:{flex:1,overflow:"auto",background:"var(--bg-panel)",display:"flex",alignItems:"center",justifyContent:"center",padding:16,backgroundImage:"linear-gradient(45deg, var(--bg) 25%, transparent 25%), linear-gradient(-45deg, var(--bg) 25%, transparent 25%), linear-gradient(45deg, transparent 75%, var(--bg) 75%), linear-gradient(-45deg, transparent 75%, var(--bg) 75%)",backgroundSize:"16px 16px",backgroundPosition:"0 0, 0 8px, 8px -8px, -8px 0px"},children:g?(0,r.jsx)("div",{style:{color:"var(--error-text)",fontSize:13},children:g}):(0,r.jsx)("img",{src:v,alt:e,onLoad:e=>{let t=e.currentTarget;h({w:t.naturalWidth,h:t.naturalHeight})},onError:()=>f(o("viewer_loadFailed")),style:{maxWidth:"100%",maxHeight:"100%",objectFit:"contain",boxShadow:"0 2px 8px rgba(0,0,0,0.15)"}})})]})}function lo({filePath:e,cwd:t,sourceSessionId:n}){let{t:o}=(0,ea.s9)(),[s,l]=(0,i.useState)(!1),[a,d]=(0,i.useState)(0),[c,u]=(0,i.useState)(null),[p,h]=(0,i.useState)(null),[g,f]=(0,i.useState)(null),x=(0,i.useRef)(null),m=n6(e).toLowerCase().split(".").pop()??"";(0,i.useEffect)(()=>{d(0),u(null),h(null),f(null),l(!1),x.current&&(x.current.close(),x.current=null);let t=new EventSource(le(e,"watch",n));return x.current=t,t.addEventListener("connected",()=>l(!0)),t.addEventListener("change",e=>{try{let t=JSON.parse(e.data);"number"==typeof t.size&&u(t.size)}catch{}h(null),f(null),d(e=>e+1)}),t.addEventListener("error",()=>l(!1)),t.onerror=()=>l(!1),()=>{t.close(),x.current=null}},[e,n]);let v=le(e,"read",n,a?{v:a}:void 0);return(0,r.jsxs)("div",{style:{display:"flex",flexDirection:"column",height:"100%",overflow:"hidden"},children:[(0,r.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:12,padding:"4px 16px",borderBottom:"1px solid var(--border)",fontSize:11,color:"var(--text-dim)",background:"var(--bg)",flexShrink:0},children:[(0,r.jsx)("span",{style:{fontFamily:"var(--font-mono)"},title:e,children:n8(e,t)}),(0,r.jsx)("span",{style:{marginLeft:"auto"},children:m||"audio"}),null!=p&&(0,r.jsx)("span",{children:function(e){if(!Number.isFinite(e))return"";let t=Math.round(e),n=Math.floor(t/60);return`${n}:${String(t%60).padStart(2,"0")}`}(p)}),null!=c&&(0,r.jsx)("span",{children:ln(c)}),(0,r.jsxs)("span",{title:s?o("viewer_liveSyncOn"):o("viewer_liveSyncOff"),style:{display:"flex",alignItems:"center",gap:4,color:s?"var(--status-success)":"var(--text-dim)"},children:[(0,r.jsx)("span",{style:{width:7,height:7,borderRadius:"50%",background:s?"var(--status-success)":"var(--border)",display:"inline-block",boxShadow:s?"var(--live-indicator-glow)":"none"}}),s?o("viewer_live"):o("viewer_static")]}),(0,r.jsx)(lt,{filePath:e,sourceSessionId:n})]}),(0,r.jsx)("div",{style:{flex:1,display:"flex",alignItems:"center",justifyContent:"center",padding:24,background:"var(--bg-panel)"},children:(0,r.jsxs)("div",{style:{width:"min(680px, 100%)"},children:[g&&(0,r.jsx)("div",{style:{color:"var(--error-text)",fontSize:13,marginBottom:12,textAlign:"center"},children:g}),(0,r.jsx)("audio",{controls:!0,preload:"metadata",src:v,onLoadedMetadata:e=>h(e.currentTarget.duration),onError:()=>f(o("viewer_loadFailed")),style:{width:"100%"}},v)]})})]})}function ls({filePath:e,cwd:t,sourceSessionId:n}){let{t:o}=(0,ea.s9)(),[s,l]=(0,i.useState)(!1),[a,d]=(0,i.useState)(0),[c,u]=(0,i.useState)(null),[p,h]=(0,i.useState)(null),g=(0,i.useRef)(null),f=rY(e),x="pdf"===f,m=x?le(e,"read",n,a?{v:a}:void 0):le(e,"preview",n,a?{v:a}:void 0);return(0,i.useEffect)(()=>{d(0),u(null),h(null),l(!1),g.current&&(g.current.close(),g.current=null),fetch(le(e,"meta",n)).then(e=>e.json()).then(e=>{e.error&&h(e.error),"number"==typeof e.size&&(u(e.size),!x&&e.size>0xa00000&&h(o("viewer_docxTooLarge")))}).catch(e=>h(String(e)));let t=new EventSource(le(e,"watch",n));return g.current=t,t.addEventListener("connected",()=>l(!0)),t.addEventListener("change",e=>{try{let t=JSON.parse(e.data);if("number"==typeof t.size&&(u(t.size),!x&&t.size>0xa00000))return void h(o("viewer_docxTooLarge"))}catch{}h(null),d(e=>e+1)}),t.addEventListener("error",()=>l(!1)),t.onerror=()=>l(!1),()=>{t.close(),g.current=null}},[e,x,n,o]),(0,r.jsxs)("div",{style:{display:"flex",flexDirection:"column",height:"100%",overflow:"hidden"},children:[(0,r.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:12,padding:"4px 16px",borderBottom:"1px solid var(--border)",fontSize:11,color:"var(--text-dim)",background:"var(--bg)",flexShrink:0},children:[(0,r.jsx)("span",{style:{fontFamily:"var(--font-mono)",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},title:e,children:n8(e,t)}),(0,r.jsx)("span",{style:{marginLeft:"auto"},children:"docx"===f?"docx preview":"pdf"}),null!=c&&(0,r.jsx)("span",{children:ln(c)}),(0,r.jsx)(lt,{filePath:e,sourceSessionId:n}),(0,r.jsxs)("span",{title:s?o("viewer_liveSyncOn"):o("viewer_liveSyncOff"),style:{display:"flex",alignItems:"center",gap:4,color:s?"var(--status-success)":"var(--text-dim)",flexShrink:0},children:[(0,r.jsx)("span",{style:{width:7,height:7,borderRadius:"50%",background:s?"var(--status-success)":"var(--border)",display:"inline-block",boxShadow:s?"var(--live-indicator-glow)":"none"}}),s?o("viewer_live"):o("viewer_static")]})]}),(0,r.jsx)("div",{style:{flex:1,minHeight:0,background:"var(--bg-panel)"},children:p?(0,r.jsx)("div",{style:{height:"100%",display:"flex",alignItems:"center",justifyContent:"center",padding:24,color:"var(--error-text)",fontSize:13,textAlign:"center"},children:p}):(0,r.jsx)("iframe",{src:m,sandbox:x?void 0:"",title:`${o("viewer_preview")} ${n6(e)}`,style:{width:"100%",height:"100%",border:"none",background:x?"var(--bg)":"#eef1f5"}},m)})]})}function ll({filePath:e,cwd:t,sourceSessionId:n,writable:i,buffer:o,dispatchBuffer:s,onSave:l,onOpenFile:a,gitAffectedPaths:d}){let c;return rG(e)?(0,r.jsx)(li,{filePath:e,cwd:t,sourceSessionId:n}):rZ(e)?(0,r.jsx)(lo,{filePath:e,cwd:t,sourceSessionId:n}):null!==("pdf"===(c=rY(e))||"docx"===c?c:null)?(0,r.jsx)(ls,{filePath:e,cwd:t,sourceSessionId:n}):(0,r.jsx)(la,{filePath:e,cwd:t,sourceSessionId:n,writable:i,buffer:o,dispatchBuffer:s,onSave:l,onOpenFile:a,gitAffectedPaths:d})}function la({filePath:e,cwd:t,sourceSessionId:n,writable:o=!1,buffer:s,dispatchBuffer:l,onSave:a,onOpenFile:d,gitAffectedPaths:c}){let{isDark:u}=nQ(),{t:p}=(0,ea.s9)(),[h,g]=(0,i.useState)(null),[f,x]=(0,i.useState)(null),[m,v]=(0,i.useState)(!0),[y,b]=(0,i.useState)(null),[w,k]=(0,i.useState)("source"),[j,S]=(0,i.useState)(!1),[C,_]=(0,i.useState)(!1),I=(0,i.useRef)(null),R=(0,i.useRef)(0),T=(0,i.useRef)(null),M=(0,i.useRef)(null),E=(0,i.useRef)(s);E.current=s;let z=(0,i.useRef)(!1),[L,W]=(0,i.useState)(!1),[A,P]=(0,i.useState)(null),$=(0,i.useRef)(null),H=(0,i.useCallback)(e=>fetch(le(e,"read",n)).then(e=>e.json()).then(t=>{if(t.error)return b(t.error),null;b(null),g(t);let r=E.current;return r?.dirty&&r.savedContent===t.content&&r.baseline.size===t.size&&r.baseline.mtimeMs===t.mtimeMs||l?.({type:"initialize",filePath:e,sourceSessionId:n,content:t.content,baseline:{size:t.size,mtimeMs:t.mtimeMs},language:t.language}),t}).catch(e=>(b(String(e)),null)),[l,n]),F=(0,i.useCallback)(async e=>{let n=++R.current;if(!t)return void x(null);try{let r=new URLSearchParams({cwd:t,path:e}),i=await fetch(`/api/git/diff?${r.toString()}`),o=await i.json();if(n!==R.current)return;x(i.ok&&o.supported&&"string"==typeof o.patch?o:null)}catch{n===R.current&&x(null)}},[t]);(0,i.useEffect)(()=>{v(!0),b(null),g(null),x(null),k("source"),S(!1),_(!1),I.current&&(I.current.close(),I.current=null),H(e).then(e=>{e?.language==="markdown"&&k("preview")}).finally(()=>v(!1));let t=new EventSource(le(e,"watch",n));return I.current=t,t.addEventListener("connected",()=>{_(!0)}),t.addEventListener("change",()=>{H(e),F(e)}),t.addEventListener("error",()=>{_(!1)}),t.onerror=()=>{_(!1)},()=>{t.close(),I.current=null}},[e,H,F,n]),(0,i.useEffect)(()=>{c&&sZ(c,e)&&F(e)},[F,e,c]),(0,i.useEffect)(()=>()=>{$.current&&clearTimeout($.current)},[]);let D=(0,i.useCallback)(async()=>{if(!a||!s?.dirty||"saving"===s.saveState)return!1;let e=await a();return e&&($.current&&clearTimeout($.current),W(!0),$.current=setTimeout(()=>W(!1),1600)),e},[s?.dirty,s?.saveState,a]),N=(0,i.useCallback)(()=>{s&&l&&s6(s)&&l({type:"undo",key:s.key})},[s,l]),B=(0,i.useCallback)(()=>{s&&l&&s5(s)&&l({type:"redo",key:s.key})},[s,l]);(0,i.useEffect)(()=>{let e=e=>{if(!o||!s||!(e.ctrlKey||e.metaKey)||e.altKey)return;let t=document.activeElement;if((t instanceof HTMLInputElement||t instanceof HTMLTextAreaElement||t instanceof HTMLSelectElement||t instanceof HTMLElement&&t.isContentEditable)&&!T.current?.contains(t))return;let n=e.key.toLowerCase();"s"!==n||e.shiftKey?"z"===n&&e.shiftKey?(e.preventDefault(),B()):"z"!==n||e.shiftKey||(e.preventDefault(),N()):(e.preventDefault(),D())};return window.addEventListener("keydown",e),()=>window.removeEventListener("keydown",e)},[s,B,D,N,o]);let O=f?.supported===!0&&"string"==typeof f.patch,U=s?.externalChange?`${s.externalChange.baseline.mtimeMs}:${s.externalChange.baseline.size}`:s?.saveState==="conflict"?`conflict:${s.baseline.mtimeMs}:${s.baseline.size}`:null,q=null!==U&&A!==U;if((0,i.useEffect)(()=>{P(null)},[U]),(0,i.useEffect)(()=>{O||"diff"!==w||k("source")},[w,O]),m)return(0,r.jsx)("div",{style:{height:"100%",display:"flex",alignItems:"center",justifyContent:"center",color:"var(--text-muted)",fontSize:13},children:p("common_loading")});if(y)return(0,r.jsx)("div",{style:{height:"100%",display:"flex",alignItems:"center",justifyContent:"center",color:"var(--error-text)",fontSize:13},children:y});if(!h)return null;let K=s?.content??h.content,V=s?.language??h.language,J="html"===V,Y="markdown"===V,G=n5(e),Z=K.split("\n"),X=["source",...J||Y?["preview"]:[],...O?["diff"]:[]],Q=`${V} \xb7 ${p("viewer_linesCount",{count:Z.length})} \xb7 ${ln(h.size)}`,ee=n?o?null:p("viewer_readOnlySession"):p("viewer_readOnlyNoSession"),et=e=>{s&&l&&(l({type:"edit",key:s.key,content:e,forceBoundary:z.current}),z.current=!1)};return(0,r.jsxs)("div",{ref:T,className:"file-viewer-shell",style:{display:"flex",flexDirection:"column",height:"100%",minHeight:0,minWidth:0,overflow:"hidden"},children:[(0,r.jsxs)("div",{className:"file-viewer-toolbar",style:{display:"flex",alignItems:"center",gap:8,padding:"5px 12px",borderBottom:"1px solid var(--border)",fontSize:11,color:"var(--text-dim)",background:"var(--bg)",flexShrink:0},children:[(0,r.jsx)("span",{className:"file-viewer-path",style:{fontFamily:"var(--font-mono)"},title:e,children:n8(e,t)}),(0,r.jsx)("span",{className:"file-viewer-meta",title:Q,children:Q}),(0,r.jsx)("span",{title:C?p("viewer_liveSyncOn"):p("viewer_liveSyncOff"),"aria-label":C?p("viewer_liveSyncOn"):p("viewer_liveSyncOff"),className:"file-viewer-live-indicator",style:{background:C?"var(--status-success)":"var(--border)",boxShadow:C?"var(--live-indicator-glow)":"none"}}),(0,r.jsxs)("div",{className:"file-viewer-controls",role:"toolbar","aria-label":p("viewer_fileEditAria"),children:[X.map(e=>(0,r.jsx)("button",{type:"button",onClick:()=>k(e),title:"diff"===e?p("viewer_gitDiff"):p(s8[e]),"aria-label":"diff"===e?p("viewer_gitDiff"):p(s8[e]),"aria-pressed":w===e,className:"file-viewer-icon-button","data-active":w===e,children:"source"===e?(0,r.jsxs)("svg",{width:"14",height:"14",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":"true",children:[(0,r.jsx)("polyline",{points:"16 18 22 12 16 6"}),(0,r.jsx)("polyline",{points:"8 6 2 12 8 18"})]}):"preview"===e?(0,r.jsxs)("svg",{width:"14",height:"14",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":"true",children:[(0,r.jsx)("path",{d:"M2 12s3.5-7 10-7 10 7 10 7-3.5 7-10 7S2 12 2 12Z"}),(0,r.jsx)("circle",{cx:"12",cy:"12",r:"3"})]}):(0,r.jsxs)("svg",{width:"14",height:"14",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":"true",children:[(0,r.jsx)("path",{d:"M8 3H5a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h3"}),(0,r.jsx)("path",{d:"M16 3h3a2 2 0 0 1 2 2v14a2 2 0 0 1-2 2h-3"}),(0,r.jsx)("path",{d:"M12 2v20"})]})},e)),"source"===w&&(0,r.jsx)("button",{type:"button",onClick:()=>S(e=>!e),title:j?p("viewer_disableWrap"):p("viewer_enableWrap"),"aria-label":j?p("viewer_disableWrap"):p("viewer_enableWrap"),"aria-pressed":j,className:"file-viewer-icon-button","data-active":j,children:(0,r.jsxs)("svg",{width:"14",height:"14",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":"true",children:[(0,r.jsx)("path",{d:"M3 6h18"}),(0,r.jsx)("path",{d:"M3 12h15a3 3 0 1 1 0 6h-4"}),(0,r.jsx)("path",{d:"m16 16-2 2 2 2"}),(0,r.jsx)("path",{d:"M3 18h7"})]})}),(0,r.jsx)("span",{className:"file-viewer-toolbar-separator","aria-hidden":"true"}),(0,r.jsx)("button",{type:"button",className:"file-viewer-icon-button",onClick:N,disabled:!o||!s6(s),title:`${p("viewer_undo")} (Ctrl/Cmd+Z)`,"aria-label":p("viewer_undo"),children:(0,r.jsxs)("svg",{width:"14",height:"14",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":"true",children:[(0,r.jsx)("path",{d:"M9 14 4 9l5-5"}),(0,r.jsx)("path",{d:"M4 9h10a6 6 0 0 1 6 6v1"})]})}),(0,r.jsx)("button",{type:"button",className:"file-viewer-icon-button",onClick:B,disabled:!o||!s5(s),title:`${p("viewer_redo")} (Ctrl/Cmd+Shift+Z)`,"aria-label":p("viewer_redo"),children:(0,r.jsxs)("svg",{width:"14",height:"14",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":"true",children:[(0,r.jsx)("path",{d:"m15 14 5-5-5-5"}),(0,r.jsx)("path",{d:"M20 9H10a6 6 0 0 0-6 6v1"})]})}),(0,r.jsx)("button",{type:"button",className:"file-viewer-icon-button is-save",onClick:()=>void D(),disabled:!o||!s?.dirty||"saving"===s.saveState,title:`${p("viewer_save")} (Ctrl/Cmd+S)`,"aria-label":p("viewer_save"),children:s?.saveState==="saving"?(0,r.jsx)("span",{className:"file-save-spinner","aria-hidden":"true"}):(0,r.jsxs)("svg",{width:"14",height:"14",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":"true",children:[(0,r.jsx)("path",{d:"M19 21H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h11l5 5v11a2 2 0 0 1-2 2Z"}),(0,r.jsx)("polyline",{points:"17 21 17 13 7 13 7 21"}),(0,r.jsx)("polyline",{points:"7 3 7 8 15 8"})]})}),(0,r.jsx)(lt,{filePath:e,sourceSessionId:n})]})]}),(q||s?.saveState==="error"||ee||L)&&(0,r.jsxs)("div",{className:`file-editor-notice${q?" is-warning":s?.saveState==="error"?" is-error":L?" is-success":""}`,role:s?.saveState==="error"?"alert":"status",children:[(0,r.jsx)("span",{children:s?.externalChange?p("viewer_externalChangeDraftKept"):s?.saveState==="conflict"?s.error??p("viewer_externalSaveConflict"):s?.saveState==="error"?s.error:L?p("common_saved"):ee}),q&&(0,r.jsxs)("span",{className:"file-editor-notice__actions",children:[(0,r.jsx)("button",{type:"button",onClick:()=>{P(U),k("source"),requestAnimationFrame(()=>M.current?.focus())},title:p("viewer_keepLocalDraft"),"aria-label":p("viewer_keepLocalDraft"),children:p("viewer_keepLocalDraft")}),(0,r.jsx)("button",{type:"button",className:"is-danger",onClick:()=>{s&&l&&(l({type:"discard",key:s.key}),v(!0),H(e).finally(()=>v(!1)))},title:p("viewer_discardLocalDraftReload"),"aria-label":p("viewer_discardLocalDraftReload"),children:p("viewer_discardLocalDraftReload")})]})]}),(0,r.jsx)("div",{className:"file-viewer-content",style:{flex:"1 1 auto",minHeight:0,minWidth:0,display:"flex",flexDirection:"column",overflow:"auto",background:"var(--bg)"},children:"diff"===w&&O?(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)("div",{className:"file-viewer-context-label",children:p("viewer_gitDiffSavedWorktree")}),(0,r.jsx)(lr,{patch:f.patch})]}):J&&"preview"===w?(0,r.jsx)("iframe",{srcDoc:K,sandbox:"allow-scripts",style:{width:"100%",height:"100%",border:"none",background:"var(--bg)"},title:p("viewer_htmlPreview")}):Y&&"preview"===w?(0,r.jsx)("div",{className:"markdown-body markdown-file-preview",style:{padding:"24px 32px"},children:(0,r.jsx)(nP.oz,{remarkPlugins:ra,rehypePlugins:rc,components:{a({href:e,children:n,...i}){delete i.node;let o=d?n7(e,G,t??G):null;return o&&d?(0,r.jsx)("a",{href:e,...i,onClick:e=>{e.defaultPrevented||0!==e.button||e.metaKey||e.ctrlKey||e.shiftKey||e.altKey||(e.preventDefault(),d(o))},children:n}):(0,r.jsx)("a",{href:e,...i,children:n})}},children:K})}):o&&s&&l?(0,r.jsx)("textarea",{ref:M,className:j?"file-source-editor is-wrapped":"file-source-editor",value:K,onChange:e=>et(e.target.value),onKeyDown:e=>{if("Tab"!==e.key||e.ctrlKey||e.metaKey||e.altKey)return;e.preventDefault();let t=e.currentTarget,n=t.selectionStart,r=t.selectionEnd,i=`${K.slice(0,n)} ${K.slice(r)}`;z.current=!0,et(i),requestAnimationFrame(()=>{t.focus(),t.setSelectionRange(n+2,n+2)})},onPaste:()=>{z.current=!0},onCut:()=>{z.current=!0},wrap:j?"soft":"off",spellCheck:!1,"aria-label":`${p("viewer_fileEditAria")}: ${n6(e)}`}):(0,r.jsx)(n$.A,{className:j?"file-source-view is-wrapped":"file-source-view",language:"text"===V?"plaintext":V,style:u?nH.xJ:nH.vs,showLineNumbers:!0,lineNumberStyle:{...s9},customStyle:{margin:0,padding:0,border:0,background:"var(--bg)",...s3,width:j?"100%":"max-content",minWidth:"100%",minHeight:"100%",overflow:"visible"},codeTagProps:{style:{fontFamily:"var(--font-mono)",overflowWrap:j?"anywhere":"normal"}},renderer:e=>(0,r.jsx)(s7,{...e,wrapLines:j}),wrapLongLines:j,children:K})})]})}function ld({open:e,title:t,initialPath:n,onSelect:o,onClose:s}){let{t:l}=(0,ea.s9)(),[a,d]=(0,i.useState)(n),[c,u]=(0,i.useState)([]),[p,h]=(0,i.useState)(null),[g,f]=(0,i.useState)(!1),[x,m]=(0,i.useState)(null),v=(0,i.useRef)(0),y=(0,i.useCallback)(e=>{let t=++v.current;f(!0),m(null),fetch(`/api/cwd/browse?path=${encodeURIComponent(e)}`).then(async n=>{let r=await n.json().catch(()=>({}));if(t===v.current){if(!n.ok)return void m(r.error??`HTTP ${n.status}`);d(r.path??e),h(r.parentPath??null),u(r.entries??[])}}).catch(()=>{t===v.current&&m(l("files_pickerBrowseFailed"))}).finally(()=>{t===v.current&&f(!1)})},[l]);return(0,i.useEffect)(()=>{e&&(d(n),n?y(n):u([]))},[e,n,y]),(0,r.jsx)(eX,{open:e,onClose:s,title:t,width:440,closeLabel:l("dialog_close"),children:(0,r.jsxs)("div",{style:{display:"flex",flexDirection:"column",gap:8,minHeight:260},children:[(0,r.jsx)("div",{style:{padding:"6px 9px",border:"1px solid var(--border)",borderRadius:6,background:"var(--bg)",color:"var(--text-muted)",fontSize:12,fontFamily:"var(--font-mono)",overflowWrap:"anywhere"},children:a??"…"}),x&&(0,r.jsx)("div",{style:{fontSize:12,color:"var(--status-danger)"},children:x}),(0,r.jsxs)("div",{role:"list","aria-label":l("files_pickerDirectories"),style:{flex:1,minHeight:180,maxHeight:300,overflowY:"auto",border:"1px solid var(--border)",borderRadius:6,background:"var(--bg-panel)",padding:4},children:[p&&(0,r.jsxs)("button",{type:"button",role:"listitem",onClick:()=>y(p),style:lc,children:[(0,r.jsx)("span",{"aria-hidden":"true",style:{width:16,color:"var(--text-dim)"},children:"↰"}),l("files_pickerUp")]}),g&&0===c.length&&(0,r.jsx)("div",{style:{padding:"10px 8px",fontSize:12,color:"var(--text-dim)"},children:l("common_loading")}),!g&&0===c.length&&(0,r.jsx)("div",{style:{padding:"10px 8px",fontSize:12,color:"var(--text-dim)"},children:l("files_pickerEmpty")}),c.map(e=>(0,r.jsxs)("button",{type:"button",role:"listitem",onClick:()=>y(e.path),style:lc,title:e.path,children:[(0,r.jsx)("span",{"aria-hidden":"true",style:{width:16,color:"var(--accent)"},children:"\uD83D\uDCC1"}),(0,r.jsx)("span",{style:{overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:e.name})]},e.path))]}),(0,r.jsxs)("div",{style:{display:"flex",flexWrap:"wrap",alignItems:"center",gap:6},children:[(0,r.jsx)("button",{type:"button",disabled:!a,onClick:()=>a&&o(a),style:{minHeight:32,padding:"0 14px",borderRadius:7,border:"1px solid var(--accent)",background:"var(--accent)",color:"var(--accent-foreground)",fontSize:12,fontWeight:600,cursor:a?"pointer":"not-allowed",opacity:a?1:.5},children:l("files_pickerSelect")}),(0,r.jsx)("button",{type:"button",onClick:s,style:{minHeight:32,padding:"0 14px",borderRadius:7,border:"1px solid var(--border)",background:"var(--bg-panel)",color:"var(--text-muted)",fontSize:12},children:l("extension_cancel")}),(0,r.jsx)("span",{style:{marginLeft:"auto",fontSize:11,color:"var(--text-dim)"},children:l("files_pickerHint")})]})]})})}let lc={display:"flex",width:"100%",alignItems:"center",gap:6,minHeight:30,padding:"4px 8px",border:"none",borderRadius:5,background:"transparent",color:"var(--text)",fontSize:12,textAlign:"left",cursor:"pointer"};function lu(e,t){return"number"==typeof e&&Number.isFinite(e)&&e>0?Math.floor(e):t}async function lp(e,t){let n=n4(e),r=await fetch(`/api/files/${n}?type=list`);if(!r.ok){let e=t("files_loadFailed",{status:r.status});try{let t=await r.json();t.error&&(e=t.error)}catch{}throw Error(e)}return((await r.json()).entries??[]).map(t=>({name:t.name,fullPath:n3(e,t.name),isDir:t.isDir,size:t.size,children:t.isDir?[]:void 0,loaded:!t.isDir}))}async function lh(e,t){let n=new URLSearchParams({cwd:e}),r=await fetch(`/api/git/status?${n.toString()}`);if(!r.ok)throw Error(t("files_gitStatusLoadFailed",{status:r.status}));return r.json()}let lg={modified:"files_modified",added:"files_added",deleted:"files_deleted",renamed:"files_renamed",untracked:"files_untracked",conflict:"files_conflict"},lf={modified:"files_modified",added:"files_added",deleted:"files_deleted",renamed:"files_renamed",untracked:"files_untracked",conflict:"files_conflict"},lx={modified:"var(--status-warning)",added:"var(--status-success)",deleted:"var(--status-danger)",renamed:"var(--status-unread)",untracked:"var(--status-success)",conflict:"var(--status-danger)"};function lm({size:e=11}){return(0,r.jsxs)("svg",{width:e,height:e,viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2.2",strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":"true",children:[(0,r.jsx)("circle",{cx:"12",cy:"12",r:"4"}),(0,r.jsx)("path",{d:"M16 8v5a3 3 0 0 0 6 0v-1a10 10 0 1 0-4 8"})]})}function lv({onClick:e,title:t}){return(0,r.jsx)("button",{type:"button",onClick:e,title:t,"aria-label":t,style:{width:24,height:24,padding:0,display:"flex",alignItems:"center",justifyContent:"center",flexShrink:0,border:"none",borderRadius:4,background:"none",color:"var(--text-dim)",cursor:"pointer"},onMouseEnter:e=>{e.currentTarget.style.color="var(--text-muted)",e.currentTarget.style.background="var(--bg-hover)"},onMouseLeave:e=>{e.currentTarget.style.color="var(--text-dim)",e.currentTarget.style.background="none"},children:(0,r.jsxs)("svg",{width:"13",height:"13",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2.2",strokeLinecap:"round","aria-hidden":"true",children:[(0,r.jsx)("path",{d:"m6 6 12 12"}),(0,r.jsx)("path",{d:"m18 6-12 12"})]})})}async function ly(e,t,n){let r=await fetch(`/api/files/${n4(e)}?type=${t}`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(n)}),i=await r.json().catch(()=>({}));if(!r.ok)throw Error(i.error??`HTTP ${r.status}`);return{path:i.path??e,name:i.name??""}}function lb({targetPath:e,type:t,defaultName:n,placeholder:o,paddingLeft:s,onDone:l,t:a}){let[d,c]=(0,i.useState)(n??""),[u,p]=(0,i.useState)(!1),h=(0,i.useRef)(null),g=(0,i.useRef)(l);g.current=l,(0,i.useEffect)(()=>{h.current?.focus(),h.current?.select()},[]);let f=(0,i.useCallback)(async()=>{let n=d.trim();if(n&&!u){p(!0);try{"rename"===t?await ly(e,"rename",{newName:n}):await ly(e,t,{name:n}),g.current(!0)}catch(n){let e=n instanceof Error?n.message:String(n);window.alert(`${"rename"===t?a("files_renameFailed"):a("files_createFailed")}: ${e}`),p(!1)}}},[u,a,e,t,d]);return(0,r.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:6,paddingLeft:s,paddingRight:8,height:24},onClick:e=>e.stopPropagation(),children:[(0,r.jsx)("input",{ref:h,value:d,onChange:e=>c(e.target.value),onKeyDown:e=>{"Enter"===e.key?(e.preventDefault(),f()):"Escape"===e.key&&(e.stopPropagation(),g.current(!1))},onBlur:()=>{u||g.current(!1)},placeholder:o,disabled:u,"aria-label":o,style:{flex:1,minWidth:0,height:20,padding:"0 6px",fontSize:12,border:"1px solid var(--accent)",borderRadius:4,outline:"none",background:"var(--bg-panel)",color:"var(--text)",fontFamily:"inherit"}}),u&&(0,r.jsx)("svg",{width:"10",height:"10",viewBox:"0 0 24 24",fill:"none",stroke:"var(--text-dim)",strokeWidth:"2",strokeLinecap:"round","aria-hidden":"true",children:(0,r.jsx)("path",{d:"M12 2v4M12 18v4M4.93 4.93l2.83 2.83M16.24 16.24l2.83 2.83M2 12h4M18 12h4"})}),!u&&(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)("button",{type:"button",disabled:!d.trim(),onMouseDown:e=>e.preventDefault(),onClick:()=>void f(),"aria-label":a("files_confirmRename"),title:a("files_confirmRename"),style:lw,children:(0,r.jsx)("svg",{width:"12",height:"12",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2.2",strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":"true",children:(0,r.jsx)("path",{d:"m5 12 4 4L19 6"})})}),(0,r.jsx)("button",{type:"button",onMouseDown:e=>e.preventDefault(),onClick:()=>g.current(!1),"aria-label":a("files_cancelRename"),title:a("files_cancelRename"),style:lw,children:(0,r.jsxs)("svg",{width:"12",height:"12",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2.2",strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":"true",children:[(0,r.jsx)("path",{d:"M18 6 6 18"}),(0,r.jsx)("path",{d:"m6 6 12 12"})]})})]})]})}let lw={flexShrink:0,display:"inline-flex",alignItems:"center",justifyContent:"center",width:20,height:20,padding:0,border:"none",borderRadius:4,background:"transparent",color:"var(--text-dim)",cursor:"pointer"};function lk({entryPath:e,name:t,isDir:n,cwd:o,onRename:s,onCreate:a,onMove:d,onCopy:c,onDelete:u,t:p}){let[h,g]=(0,i.useState)(!1),[f,x]=(0,i.useState)(null),m=(0,i.useRef)(null),v=(0,i.useRef)(null),y=p("files_rowMenuLabel",{name:t}),b=(0,i.useCallback)((e=!1)=>{g(!1),e&&m.current?.focus()},[]);(0,i.useEffect)(()=>{if(!h)return;let e=e=>{let t=e.target;v.current?.contains(t)||m.current?.contains(t)||b()},t=()=>b();document.addEventListener("mousedown",e),window.addEventListener("resize",t),window.addEventListener("scroll",t);let n=requestAnimationFrame(()=>v.current?.querySelector("[role='menuitem']")?.focus());return()=>{cancelAnimationFrame(n),document.removeEventListener("mousedown",e),window.removeEventListener("resize",t),window.removeEventListener("scroll",t)}},[b,h]);let w={display:"flex",alignItems:"center",gap:8,width:"100%",minHeight:32,padding:"6px 11px",boxSizing:"border-box",background:"var(--bg-elevated)",border:"none",color:"var(--text-muted)",cursor:"pointer",textAlign:"left",textDecoration:"none",fontSize:12,whiteSpace:"nowrap"},k={onMouseEnter:e=>{e.currentTarget.style.background="var(--bg-hover)",e.currentTarget.style.color="var(--text)"},onMouseLeave:e=>{e.currentTarget.style.background="var(--bg-elevated)",e.currentTarget.style.color="var(--text-muted)"}},j=e=>(0,r.jsx)("span",{"aria-hidden":"true",style:{display:"flex",color:"var(--text-dim)"},children:e});return(0,r.jsxs)("div",{style:{display:"flex",flexShrink:0},onClick:e=>e.stopPropagation(),onKeyDown:e=>{"Escape"===e.key&&h&&(e.preventDefault(),e.stopPropagation(),b(!0))},children:[(0,r.jsx)("button",{ref:m,type:"button",className:"file-row-action-btn","data-menu-open":h?"true":void 0,onClick:e=>{e.stopPropagation(),(()=>{if(h)return b();let e=m.current?.getBoundingClientRect();if(e){let t=n?280:212,r=e.bottom+4+t<=window.innerHeight?e.bottom+4:Math.max(8,e.top-t-4),i=e.right-200;x({top:r,left:i=Math.max(8,Math.min(i,window.innerWidth-200-8))})}g(!0)})()},"aria-haspopup":"menu","aria-expanded":h,"aria-label":y,title:y,children:(0,r.jsx)(ez,{size:12})}),h&&f&&(0,l.createPortal)((0,r.jsxs)("div",{ref:v,role:"menu","aria-label":y,style:{position:"fixed",top:f.top,left:f.left,zIndex:10060,minWidth:190,padding:4,background:"var(--bg-elevated)",border:"1px solid var(--border)",borderRadius:"var(--radius-md)",boxShadow:"var(--shadow-float)"},children:[(0,r.jsxs)("a",{role:"menuitem",href:`/api/files/${n4(e)}?type=download`,download:!0,style:w,...k,onClick:()=>b(),children:[j((0,r.jsxs)("svg",{width:"13",height:"13",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2.2",strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":"true",children:[(0,r.jsx)("path",{d:"M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4"}),(0,r.jsx)("polyline",{points:"7 10 12 15 17 10"}),(0,r.jsx)("line",{x1:"12",y1:"15",x2:"12",y2:"3"})]})),p(n?"files_downloadFolder":"viewer_download",n?{name:t}:void 0)]}),n&&(0,r.jsxs)(r.Fragment,{children:[(0,r.jsxs)("button",{type:"button",role:"menuitem",style:w,...k,onClick:()=>{b(),a("create-file")},children:[j((0,r.jsxs)("svg",{width:"13",height:"13",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2.2",strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":"true",children:[(0,r.jsx)("path",{d:"M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8Z"}),(0,r.jsx)("path",{d:"M14 2v6h6"}),(0,r.jsx)("path",{d:"M12 18v-6"}),(0,r.jsx)("path",{d:"M9 15h6"})]})),p("files_newFile")]}),(0,r.jsxs)("button",{type:"button",role:"menuitem",style:w,...k,onClick:()=>{b(),a("create-dir")},children:[j((0,r.jsxs)("svg",{width:"13",height:"13",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2.2",strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":"true",children:[(0,r.jsx)("path",{d:"M4 20h16a2 2 0 0 0 2-2V8a2 2 0 0 0-2-2h-7.9a2 2 0 0 1-1.7-.9l-.8-1.2A2 2 0 0 0 8 3H4a2 2 0 0 0-2 2v13a2 2 0 0 0 2 2Z"}),(0,r.jsx)("path",{d:"M12 11v6"}),(0,r.jsx)("path",{d:"M9 14h6"})]})),p("files_newFolder")]})]}),(0,r.jsxs)("button",{type:"button",role:"menuitem",style:w,...k,onClick:()=>{b(),e2(n8(e,o)).catch(()=>window.alert(p("files_copyPathFailed")))},children:[j((0,r.jsxs)("svg",{width:"13",height:"13",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2.2",strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":"true",children:[(0,r.jsx)("rect",{x:"9",y:"9",width:"13",height:"13",rx:"2"}),(0,r.jsx)("path",{d:"M5 15H4a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h9a2 2 0 0 1 2 2v1"})]})),p("files_copyPath")]}),(0,r.jsxs)("button",{type:"button",role:"menuitem",style:w,...k,onClick:()=>{b(),s()},children:[j((0,r.jsx)(eE,{size:13})),p("files_rename")]}),(0,r.jsxs)("button",{type:"button",role:"menuitem",style:w,...k,onClick:()=>{b(),d()},children:[j((0,r.jsx)("svg",{width:"13",height:"13",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2.2",strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":"true",children:(0,r.jsx)("path",{d:"M5 4h4l3 3h7a2 2 0 0 1 2 2v9a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V6a2 2 0 0 1 2-2Z"})})),p("files_move")]}),(0,r.jsxs)("button",{type:"button",role:"menuitem",style:w,...k,onClick:()=>{b(),c()},children:[j((0,r.jsxs)("svg",{width:"13",height:"13",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2.2",strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":"true",children:[(0,r.jsx)("rect",{x:"9",y:"9",width:"13",height:"13",rx:"2"}),(0,r.jsx)("path",{d:"M5 15H4a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h9a2 2 0 0 1 2 2v1"})]})),p("files_copy")]}),(0,r.jsxs)("button",{type:"button",role:"menuitem",style:{...w,color:"var(--status-danger)"},...k,onClick:()=>{b(),u()},children:[j((0,r.jsxs)("svg",{width:"13",height:"13",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2.2",strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":"true",children:[(0,r.jsx)("path",{d:"M3 6h18"}),(0,r.jsx)("path",{d:"M19 6v14a2 2 0 0 1-2 2H7a2 2 0 0 1-2-2V6"}),(0,r.jsx)("path",{d:"M8 6V4a2 2 0 0 1 2-2h4a2 2 0 0 1 2 2v2"})]})),p("files_delete")]})]}),document.body)]})}function lj({node:e,depth:t,cwd:n,onOpenFile:o,onAtMention:s,expandedPaths:l,onToggleExpanded:a,refreshToken:d,highlightedPaths:c,gitStatusByPath:u,changedDirectoryPaths:p,onMutated:h,onMoveEntry:g,onCopyEntry:f,onDeleteEntry:x,t:m}){let v=l.has(e.fullPath),y=c.has(e.fullPath),b=n1(e.fullPath),w=u.get(b),k=e.isDir&&(void 0!==w||p.has(b)),[j,S]=(0,i.useState)(e.children??[]),[C,_]=(0,i.useState)(e.loaded??!1),[I,R]=(0,i.useState)(!1),[T,M]=(0,i.useState)(!1),[E,z]=(0,i.useState)(null),L=(0,i.useCallback)(async(t=!1)=>{if(!C||t){R(!0);try{let t=await lp(e.fullPath,m);S(t),_(!0)}catch{}finally{R(!1)}}},[C,e.fullPath,m]);(0,i.useEffect)(()=>{v&&C&&L(!0)},[d]);let W=(0,i.useCallback)(()=>{e.isDir?a(e.fullPath,!v):o(e.fullPath,e.name)},[e.isDir,e.fullPath,e.name,v,o,a]);(0,i.useEffect)(()=>{v&&!C&&L()},[v,C,L]);let A=(0,i.useCallback)(e=>{e.target===e.currentTarget&&("Enter"===e.key||" "===e.key)&&(e.preventDefault(),W())},[W]);return(0,r.jsxs)("div",{role:"none",children:[E?.kind==="rename"?(0,r.jsx)(lb,{targetPath:e.fullPath,type:"rename",defaultName:e.name,placeholder:m("files_namePlaceholder"),paddingLeft:8+14*t,onDone:e=>{z(null),e&&h()},t:m}):(0,r.jsxs)("div",{className:"file-row",role:"treeitem",tabIndex:0,"aria-expanded":e.isDir?v:void 0,"aria-selected":!1,draggable:!0,onClick:W,onKeyDown:A,onDragStart:t=>{t.dataTransfer.effectAllowed="move",t.dataTransfer.setData("text/plain",e.fullPath)},onDragOver:t=>{e.isDir&&(t.preventDefault(),t.dataTransfer.dropEffect="move",M(!0))},onDragLeave:()=>M(!1),onDrop:t=>{if(!e.isDir)return;t.preventDefault(),M(!1);let n=t.dataTransfer.getData("text/plain");n&&n!==e.fullPath&&(async()=>{try{await ly(n,"move",{targetDirectory:e.fullPath}),h()}catch(e){window.alert(`${m("files_moveFailed")}: ${e instanceof Error?e.message:String(e)}`)}})()},style:{position:"relative",display:"flex",alignItems:"center",gap:4,paddingLeft:8+14*t,paddingRight:8,height:24,cursor:"pointer",userSelect:"none",outline:T?"1px solid var(--accent)":void 0,borderRadius:T?5:void 0,background:T?"var(--bg-selected)":void 0},children:[e.isDir&&(0,r.jsx)("svg",{width:"10",height:"10",viewBox:"0 0 10 10",fill:"none",stroke:"var(--text-dim)",strokeWidth:"1.8",strokeLinecap:"round",strokeLinejoin:"round",style:{flexShrink:0,transform:v?"rotate(90deg)":"none",transition:"transform 0.1s"},children:(0,r.jsx)("polyline",{points:"3 2 7 5 3 8"})}),!e.isDir&&(0,r.jsx)("span",{style:{width:10,flexShrink:0}}),(0,r.jsx)("span",{className:"file-row-icon",style:{flexShrink:0,display:"flex",alignItems:"center"},children:e.isDir?(0,r.jsx)(iH,{size:14,open:v}):on(e.name,14)}),(0,r.jsx)("span",{style:{fontSize:12,color:"var(--text)",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",flex:1},title:e.fullPath,children:e.name}),y&&(0,r.jsx)("span",{className:"file-row-badge",title:m("files_uploaded"),"aria-label":m("files_uploaded"),style:{width:6,height:6,flexShrink:0,borderRadius:"50%",background:"var(--status-unread)"}}),!e.isDir&&w&&(0,r.jsx)("span",{className:"file-row-badge",title:m(lf[w.status]),"aria-label":m(lf[w.status]),style:{width:14,flexShrink:0,color:lx[w.status],fontFamily:"var(--font-mono)",fontSize:11,fontWeight:600,textAlign:"center"},children:w.code}),k&&(0,r.jsx)("span",{className:"file-row-badge",title:m("files_containsChanges"),"aria-label":m("files_containsChanges"),style:{width:6,height:6,flexShrink:0,borderRadius:"50%",background:"var(--status-warning)"}}),I&&(0,r.jsx)("svg",{width:"10",height:"10",viewBox:"0 0 24 24",fill:"none",stroke:"var(--text-dim)",strokeWidth:"2",strokeLinecap:"round",children:(0,r.jsx)("path",{d:"M12 2v4M12 18v4M4.93 4.93l2.83 2.83M16.24 16.24l2.83 2.83M2 12h4M18 12h4"})}),(0,r.jsxs)("div",{className:"file-row-actions",children:[s&&(0,r.jsx)("button",{type:"button",className:"file-row-action-btn",onClick:t=>{t.stopPropagation(),s(n8(e.fullPath,n),e.isDir)},title:m("files_insertIntoChat",{name:e.name}),"aria-label":m("files_insertIntoChat",{name:e.name}),style:{color:"var(--accent)"},children:(0,r.jsx)(lm,{})}),(0,r.jsx)(lk,{entryPath:e.fullPath,name:e.name,isDir:e.isDir,cwd:n,onRename:()=>z({kind:"rename"}),onCreate:e=>z({kind:e}),onMove:()=>g(e.fullPath,e.name),onCopy:()=>f(e.fullPath,e.name),onDelete:()=>x(e.fullPath,e.name,e.isDir),t:m})]})]}),E&&"rename"!==E.kind&&(0,r.jsx)(lb,{targetPath:e.fullPath,type:E.kind,placeholder:m("files_namePlaceholder"),paddingLeft:8+(t+1)*14,onDone:e=>{z(null),e&&h()},t:m}),e.isDir&&v&&(0,r.jsxs)("div",{role:"group",children:[j.map(e=>(0,r.jsx)(lj,{node:e,depth:t+1,cwd:n,onOpenFile:o,onAtMention:s,expandedPaths:l,onToggleExpanded:a,refreshToken:d,highlightedPaths:c,gitStatusByPath:u,changedDirectoryPaths:p,onMutated:h,onMoveEntry:g,onCopyEntry:f,onDeleteEntry:x,t:m},e.fullPath)),0===j.length&&C&&(0,r.jsx)("div",{style:{paddingLeft:8+(t+1)*14,fontSize:11,color:"var(--text-dim)",height:22,display:"flex",alignItems:"center"},children:m("files_noFiles")})]})]})}let lS=(0,i.forwardRef)(function({cwd:e,onOpenFile:t,refreshKey:n,onAtMention:o,onAtMentions:s,onUploadBusyChange:l},a){let{t:d}=(0,ea.s9)(),c=(0,Z.Fd)(),[u,p]=(0,i.useState)(!1),[h,g]=(0,i.useState)(null),f=(0,i.useMemo)(()=>{var e;let t;return{indexMaxFiles:lu((t="object"!=typeof(e=c.fileConfig)||null===e||Array.isArray(e)?{}:e).indexMaxFiles,5e3),indexGitHardCap:lu(t.indexGitHardCap,2e5),indexWalkHardCap:lu(t.indexWalkHardCap,5e4),indexMaxWalkDepth:lu(t.indexMaxWalkDepth,8),atResultLimit:lu(t.atResultLimit,20),textPreviewMaxBytes:lu(t.textPreviewMaxBytes,0xa00000),imagePreviewMaxBytes:lu(t.imagePreviewMaxBytes,0x3200000),docxPreviewMaxBytes:lu(t.docxPreviewMaxBytes,0xa00000),browseMaxEntries:lu(t.browseMaxEntries,400)}},[c.fileConfig]);(0,i.useCallback)(e=>{(0,Z.dM)("fileConfig",{...f,...e})},[f]);let x=(0,i.useCallback)(()=>{u?(p(!1),g(null)):(g(f),p(!0))},[u,f]),[m,v]=(0,i.useState)([]),[y,b]=(0,i.useState)(!0),[w,k]=(0,i.useState)(null),[j,S]=(0,i.useState)(()=>new Set),C=(0,i.useRef)(null),_=(0,i.useRef)(null),I=(0,i.useRef)(j);I.current=j;let R=(0,i.useRef)(null),[T,M]=(0,i.useState)(0),[E,z]=(0,i.useState)(null),[W,A]=(0,i.useState)(new Set),[P,$]=(0,i.useState)([]),[F,D]=(0,i.useState)("idle"),[N,B]=(0,i.useState)(0),[O,U]=(0,i.useState)(null),[q,K]=(0,i.useState)(null),[V,J]=(0,i.useState)(null),Y=(0,i.useRef)(null),G=(0,i.useRef)(null),X=(0,i.useRef)(e),[Q,ee]=(0,i.useState)(null),et=`${n??0}:${T}`,en="idle"!==F,er=(0,i.useCallback)(()=>"function"==typeof requestIdleCallback?new Promise(e=>requestIdleCallback(()=>e(),{timeout:800})):new Promise(e=>setTimeout(e,250)),[]),ei=(0,i.useMemo)(()=>new Map(P.map(e=>[n1(e.filePath),e])),[P]),eo=(0,i.useMemo)(()=>{let t=new Set,n=n1(e).replace(/\/$/,"");for(let e of P){let r=n5(n1(e.filePath));for(;(r===n||r.startsWith(`${n}/`))&&(t.add(r),r!==n);){let e=n5(r);if(e===r)break;r=e}}return t},[e,P]),es=(0,i.useCallback)((t,n)=>{let r={expanded:[...t],scrollTop:n};H(e,r),(0,Z.dM)(`fileTree.${e}`,r)},[e]),el=(0,i.useCallback)((e,t)=>{let n=new Set(j);t?n.add(e):n.delete(e),S(n),es(n,C.current?.scrollTop??0)},[j,es]),ed=(0,i.useCallback)(()=>{M(e=>e+1)},[]),ec=(0,i.useCallback)(async(e,t)=>{if(window.confirm(d("files_deleteConfirm",{name:t})))try{let t=await fetch(`/api/files/${n4(e)}`,{method:"DELETE"});if(!t.ok){let e=await t.json().catch(()=>null);throw Error(e?.error??d("files_deleteFailed"))}ed()}catch(e){window.alert(`${d("files_deleteFailed")}: ${e instanceof Error?e.message:String(e)}`)}},[d,ed]),eu=(0,i.useCallback)(()=>{null!==_.current&&window.clearTimeout(_.current),_.current=window.setTimeout(()=>{es(I.current,C.current?.scrollTop??0)},200)},[es]),ep=(0,i.useCallback)(()=>{if(null==R.current)return;let e=R.current;R.current=null,requestAnimationFrame(()=>{C.current&&(C.current.scrollTop=e)})},[]),eh=(0,i.useCallback)(e=>{let t=e.uploaded??[];if(K({uploaded:t,skipped:e.skipped??[],errors:e.errors??[]}),t.length>0){let e=X.current;A(new Set(t.map(t=>n3(e,t)))),M(e=>e+1)}},[]),eg=(0,i.useCallback)(async(e,t)=>{J(null),U(null),B(0),D("uploading");try{let n=X.current,{status:r,data:i}=await new Promise((r,i)=>{let o=new FormData;e.forEach(e=>o.append("files",e,e.name));let s=new XMLHttpRequest;s.open("POST",`/api/files/${n4(n)}?type=upload&conflict=${t}`),s.upload.onprogress=e=>{e.lengthComputable&&e.total>0&&B(Math.round(e.loaded/e.total*100))},s.onerror=()=>i(Error(d("files_uploadNetworkError"))),s.onabort=()=>i(Error(d("files_uploadCancelled"))),s.onload=()=>{let e={};try{e=JSON.parse(s.responseText)}catch{s.responseText&&(e.error=s.responseText)}r({status:s.status,data:e})},s.send(o)});if(409===r&&i.conflicts?.length)return void J({files:e,conflicts:i.conflicts,nonReplaceable:i.nonReplaceable??[]});if(r<200||r>=300)throw Error(i.error??d("files_uploadFailed",{status:r}));B(100),eh(i)}catch(e){U(e instanceof Error?e.message:String(e))}finally{D("idle")}},[eh,d]),ef=(0,i.useCallback)(async e=>{if(0!==e.length&&!en){K(null),A(new Set),J(null),U(null),B(0),D("checking");try{let t=X.current,n=await fetch(`/api/files/${n4(t)}?type=upload-check`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({fileNames:e.map(e=>e.name)})}),r=await n.json().catch(()=>({}));if(!n.ok)throw Error(r.error??d("files_uploadCheckFailed",{status:n.status}));if(r.conflicts?.length)return void J({files:e,conflicts:r.conflicts,nonReplaceable:r.nonReplaceable??[]});await eg(e,"error")}catch(e){U(e instanceof Error?e.message:String(e))}finally{D("idle")}}},[eg,d,en]),ex=(0,i.useCallback)(e=>{let t=Array.from(e.target.files??[]);e.target.value="",ef(t)},[ef]);(0,i.useImperativeHandle)(a,()=>({openUploadPicker(){en||ee({mode:"upload",initialPath:e})},startCreateFile(){z("create-file")},startCreateDir(){z("create-dir")},toggleConfig(){x()}}),[en,e,x]);let em=(0,i.useCallback)(async e=>{if(ee(null),Q){if("upload"===Q.mode){X.current=e,G.current?.click();return}if(Q.sourcePath)try{await ly(Q.sourcePath,Q.mode,{targetDirectory:e}),ed()}catch(t){let e=t instanceof Error?t.message:String(t);window.alert(`${"move"===Q.mode?d("files_moveFailed"):d("files_copyFailed")}: ${e}`)}}},[Q,ed,d]),ev=(0,i.useCallback)((e,t)=>{ee({mode:e,sourcePath:t,initialPath:n5(t)})},[]);(0,i.useEffect)(()=>{l?.(en)},[l,en]),(0,i.useEffect)(()=>()=>l?.(!1),[l]),(0,i.useEffect)(()=>{(0,Z.zo)()},[]),(0,i.useEffect)(()=>{let t=Y.current!==e,n=Y.current;if(Y.current=e,t){null!==n&&H(n,{expanded:[...I.current],scrollTop:C.current?.scrollTop??0});let t=(0,Z.b3)(`fileTree.${e}`);t&&Array.isArray(t.expanded)||(t=L().fileExplorerState[e]??{expanded:[],scrollTop:0}),S(new Set(t.expanded)),R.current=t.scrollTop,A(new Set),K(null),J(null),U(null),z(null)}b(t),k(null);let r=!1;return er().then(()=>{r||lp(e,d).then(e=>{r||(v(e),ep())}).catch(e=>{r||k(e instanceof Error?e.message:String(e))}).finally(()=>{r||b(!1)})}),()=>{r=!0}},[e,n,d,T,er,ep]),(0,i.useEffect)(()=>{let t=!1;return er().then(()=>{t||lh(e,d).then(e=>{t||$(e.isGitRepository?e.files:[])}).catch(()=>{t||$([])})}),()=>{t=!0}},[e,n,d,T,er]);let ey=en||null!==V||null!==O||null!==q,eb=(0,i.useCallback)(()=>{q&&0!==q.uploaded.length&&s?.(q.uploaded.map(t=>n8(n3(e,t),e)))},[e,s,q]);return(0,r.jsxs)("div",{ref:C,onScroll:eu,style:{height:"100%",overflowY:"auto",overflowX:"hidden"},children:[(0,r.jsx)("input",{ref:G,type:"file",multiple:!0,hidden:!0,onChange:ex}),u&&h&&(0,r.jsxs)("div",{style:{padding:"6px 8px",borderBottom:"1px solid var(--border)",background:"var(--bg-panel)"},children:[(0,r.jsx)("div",{style:{display:"flex",flexWrap:"wrap",gap:"6px 10px"},children:[["indexMaxFiles",d("files_configIndexMaxFiles"),1],["indexGitHardCap",d("files_configGitHardCap"),1],["indexWalkHardCap",d("files_configWalkHardCap"),1],["indexMaxWalkDepth",d("files_configMaxWalkDepth"),1],["atResultLimit",d("files_configAtResultLimit"),1],["textPreviewMaxBytes",d("files_configTextPreview"),1048576],["imagePreviewMaxBytes",d("files_configImagePreview"),1048576],["docxPreviewMaxBytes",d("files_configDocxPreview"),1048576],["browseMaxEntries",d("files_configBrowseMaxEntries"),1]].map(([e,t,n])=>(0,r.jsxs)("label",{style:{display:"flex",alignItems:"center",gap:4,fontSize:10,color:"var(--text-dim)"},children:[(0,r.jsx)("span",{children:t}),(0,r.jsx)("input",{type:"number",min:1,value:Math.round((h[e]??f[e])/n),onChange:t=>{let r=Number(t.target.value);Number.isFinite(r)&&!(r<=0)&&g(t=>({...t??f,[e]:Math.round(r*n)}))},style:{width:70,height:20,border:"1px solid var(--border)",borderRadius:4,background:"var(--bg)",color:"var(--text)",fontSize:10,padding:"0 4px"}})]},e))}),(0,r.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:6,marginTop:6},children:[(0,r.jsx)("button",{type:"button",onClick:()=>{(0,Z.dM)("fileConfig",h),p(!1),g(null)},style:{height:22,padding:"0 10px",border:"1px solid var(--accent)",borderRadius:4,background:"var(--accent)",color:"#fff",cursor:"pointer",fontSize:10},children:d("files_configSave")}),(0,r.jsx)("button",{type:"button",onClick:()=>{p(!1),g(null)},style:{height:22,padding:"0 10px",border:"1px solid var(--border)",borderRadius:4,background:"var(--bg-panel)",color:"var(--text-muted)",cursor:"pointer",fontSize:10},children:d("files_configCancel")}),(0,r.jsx)("span",{style:{marginLeft:4,fontSize:10,color:"var(--text-dim)"},children:d("files_configHint")})]})]}),Q&&(0,r.jsx)(ld,{open:!0,title:"upload"===Q.mode?d("files_pickerUploadTitle"):"move"===Q.mode?d("files_pickerMoveTitle"):d("files_pickerCopyTitle"),initialPath:Q.initialPath,onSelect:em,onClose:()=>ee(null)}),ey&&(0,r.jsxs)("div",{style:{padding:"6px 8px",borderBottom:"1px solid var(--border)"},children:[en&&(0,r.jsxs)("div",{role:"status","aria-live":"polite","aria-label":"checking"===F?d("files_loadingList"):`${d("files_uploading")} ${N}%`,children:[(0,r.jsxs)("div",{style:{display:"flex",alignItems:"center",justifyContent:"space-between",gap:8,minHeight:14,color:"var(--text-muted)"},children:["checking"===F?(0,r.jsx)("svg",{width:"13",height:"13",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2.2",strokeLinecap:"round",style:{animation:"spin 0.8s linear infinite"},"aria-hidden":"true",children:(0,r.jsx)("path",{d:"M21 12a9 9 0 1 1-5.7-8.4"})}):(0,r.jsxs)("svg",{width:"13",height:"13",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":"true",children:[(0,r.jsx)("path",{d:"M12 16V4"}),(0,r.jsx)("path",{d:"m7 9 5-5 5 5"}),(0,r.jsx)("path",{d:"M5 20h14"})]}),"uploading"===F&&(0,r.jsxs)("span",{style:{fontSize:10},children:[N,"%"]})]}),"uploading"===F&&(0,r.jsx)("div",{style:{height:3,marginTop:4,overflow:"hidden",borderRadius:2,background:"var(--border)"},children:(0,r.jsx)("div",{style:{width:`${N}%`,height:"100%",background:"var(--text-muted)",transition:"width 120ms ease"}})})]}),V&&(0,r.jsxs)("div",{role:"alert",style:{padding:7,border:"1px solid color-mix(in srgb, var(--status-warning) 55%, var(--border))",borderRadius:4,background:"color-mix(in srgb, var(--status-warning) 9%, var(--bg-panel))"},children:[(0,r.jsxs)("div",{style:{fontSize:11,color:"var(--text)",lineHeight:1.35,overflowWrap:"anywhere"},children:[d(1===V.conflicts.length?"files_existingFilesCount_one":"files_existingFilesCount",{count:V.conflicts.length}),": ",V.conflicts.join(", ")]}),V.nonReplaceable.length>0&&(0,r.jsx)("div",{style:{marginTop:3,fontSize:10,color:"var(--status-warning)",lineHeight:1.35,overflowWrap:"anywhere"},children:d("files_cannotReplace",{names:V.nonReplaceable.join(", ")})}),(0,r.jsxs)("div",{style:{display:"flex",gap:5,marginTop:7},children:[(0,r.jsx)("button",{type:"button",onClick:()=>void eg(V.files,"overwrite"),style:{height:22,padding:"0 7px",border:"1px solid var(--status-danger)",borderRadius:4,background:"transparent",color:"var(--status-danger)",cursor:"pointer",fontSize:10},children:d("files_replace")}),(0,r.jsx)("button",{type:"button",onClick:()=>void eg(V.files,"skip"),style:{height:22,padding:"0 7px",border:"1px solid var(--border)",borderRadius:4,background:"var(--bg-panel)",color:"var(--text)",cursor:"pointer",fontSize:10},children:d("files_skip")}),(0,r.jsx)("button",{type:"button",onClick:()=>J(null),style:{height:22,padding:"0 7px",border:"none",borderRadius:4,background:"transparent",color:"var(--text-muted)",cursor:"pointer",fontSize:10},children:d("files_cancel")})]})]}),O&&(0,r.jsxs)("div",{role:"alert",style:{display:"flex",alignItems:"flex-start",gap:6,fontSize:11,lineHeight:1.35,color:"var(--status-danger)"},children:[(0,r.jsx)("span",{style:{minWidth:0,flex:1,overflowWrap:"anywhere"},children:O}),(0,r.jsx)(lv,{onClick:()=>U(null),title:d("files_closeError")})]}),q&&(0,r.jsxs)("div",{"aria-live":"polite",children:[(0,r.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:8,minHeight:22,fontSize:11},children:[(0,r.jsxs)("div",{style:{minWidth:0,flex:1,display:"flex",alignItems:"center",gap:8},children:[q.uploaded.length>0&&(0,r.jsxs)("span",{title:d("files_uploadedCount",{count:q.uploaded.length}),"aria-label":d("files_uploadedCount",{count:q.uploaded.length}),style:{display:"flex",alignItems:"center",gap:3,color:"var(--status-success)"},children:[(0,r.jsx)("svg",{width:"13",height:"13",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2.4",strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":"true",children:(0,r.jsx)("path",{d:"m5 12 4 4L19 6"})}),(0,r.jsx)("span",{children:q.uploaded.length})]}),q.skipped.length>0&&(0,r.jsxs)("span",{title:d("files_skippedCount",{count:q.skipped.length}),"aria-label":d("files_skippedCount",{count:q.skipped.length}),style:{display:"flex",alignItems:"center",gap:3,color:"var(--text-dim)"},children:[(0,r.jsxs)("svg",{width:"13",height:"13",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round","aria-hidden":"true",children:[(0,r.jsx)("circle",{cx:"12",cy:"12",r:"9"}),(0,r.jsx)("path",{d:"M8 12h8"})]}),(0,r.jsx)("span",{children:q.skipped.length})]}),q.errors.length>0&&(0,r.jsxs)("span",{title:d("files_failedCount",{count:q.errors.length}),"aria-label":d("files_failedCount",{count:q.errors.length}),style:{display:"flex",alignItems:"center",gap:3,color:"var(--status-danger)"},children:[(0,r.jsxs)("svg",{width:"13",height:"13",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":"true",children:[(0,r.jsx)("path",{d:"M12 3 2.5 20h19L12 3Z"}),(0,r.jsx)("path",{d:"M12 9v4"}),(0,r.jsx)("path",{d:"M12 17h.01"})]}),(0,r.jsx)("span",{children:q.errors.length})]})]}),q.uploaded.length>0&&s&&(0,r.jsx)("button",{type:"button",onClick:eb,title:1===q.uploaded.length?d("files_addFileToChat"):d("files_addAllFilesToChat"),"aria-label":1===q.uploaded.length?d("files_addFileToChat"):d("files_addAllFilesToChat"),className:"file-row-action-btn",style:{color:"var(--accent)"},children:(0,r.jsx)(lm,{})}),(0,r.jsx)(lv,{onClick:()=>K(null),title:d("files_closeUploadResults")})]}),q.errors.map(e=>(0,r.jsxs)("div",{title:e.error,style:{display:"flex",alignItems:"center",gap:4,marginTop:3,minWidth:0,fontSize:10,color:"var(--status-danger)"},children:[(0,r.jsxs)("svg",{width:"11",height:"11",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",style:{flexShrink:0},"aria-hidden":"true",children:[(0,r.jsx)("circle",{cx:"12",cy:"12",r:"9"}),(0,r.jsx)("path",{d:"M12 8v5"}),(0,r.jsx)("path",{d:"M12 17h.01"})]}),(0,r.jsx)("span",{style:{minWidth:0,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:e.name})]},e.name))]})]}),(0,r.jsxs)("div",{style:{padding:"2px 4px"},children:[y?(0,r.jsx)("div",{style:{padding:"8px 12px",fontSize:11,color:"var(--text-dim)"},children:d("files_loading")}):w?(0,r.jsx)("div",{style:{padding:"8px 12px",fontSize:11,color:"var(--status-danger)"},children:w}):(0,r.jsxs)(r.Fragment,{children:[E&&(0,r.jsx)(lb,{targetPath:e,type:E,placeholder:d("files_namePlaceholder"),paddingLeft:12,onDone:e=>{z(null),e&&ed()},t:d}),(0,r.jsx)("div",{role:"tree",children:m.map(n=>(0,r.jsx)(lj,{node:n,depth:0,cwd:e,onOpenFile:t,onAtMention:o,expandedPaths:j,onToggleExpanded:el,refreshToken:et,highlightedPaths:W,gitStatusByPath:ei,changedDirectoryPaths:eo,onMutated:ed,onMoveEntry:e=>ev("move",e),onCopyEntry:e=>ev("copy",e),onDeleteEntry:(e,t)=>void ec(e,t),t:d},n.fullPath))})]}),!y&&!w&&0===m.length&&(0,r.jsx)("div",{style:{padding:"8px 12px",fontSize:11,color:"var(--text-dim)"},children:d("files_noFiles")})]})]})}),lC={conflict:0,modified:1,added:2,deleted:3,renamed:4,untracked:5};function l_({cwd:e,status:t,loading:n,error:o,onOpenFile:s,selectedFilePath:l}){let{t:a}=(0,ea.s9)(),d=(0,i.useMemo)(()=>t?[...t.files].sort((e,t)=>{let n=lC[e.status]-lC[t.status];return 0!==n?n:e.filePath.localeCompare(t.filePath)}):[],[t]);return n&&!t?(0,r.jsx)(lR,{children:a("git_loading")}):o?(0,r.jsx)(lR,{tone:"error",children:o}):t&&t.isGitRepository?0===d.length?(0,r.jsxs)("div",{style:{padding:"18px 12px",display:"flex",flexDirection:"column",alignItems:"center",gap:6,color:"var(--text-dim)"},children:[(0,r.jsx)("svg",{width:"18",height:"18",viewBox:"0 0 24 24",fill:"none",stroke:"var(--status-success)",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":"true",children:(0,r.jsx)("polyline",{points:"20 6 9 17 4 12"})}),(0,r.jsx)("span",{style:{fontSize:12},children:a("git_clean")})]}):(0,r.jsxs)("div",{style:{padding:"4px 0"},children:[(0,r.jsxs)("div",{style:{padding:"4px 10px 6px",fontSize:10.5,color:"var(--text-dim)",lineHeight:1.4},title:t.repositoryRoot??e,children:[a(1===d.length?"git_changesCount_one":"git_changesCount",{count:d.length})," \xb7 ",t.repositoryRoot??e]}),d.map(t=>(0,r.jsx)(lI,{file:t,cwd:e,onOpenFile:s,selected:t.filePath===l},t.filePath))]}):(0,r.jsx)(lR,{children:a("git_notRepo")})}function lI({file:e,cwd:t,onOpenFile:n,selected:i}){let{t:o}=(0,ea.s9)(),s=n6(e.filePath)||e.filePath,l=n8(e.filePath,t),a=o(lg[e.status]);return(0,r.jsxs)("button",{type:"button",className:`git-file-row${i?" is-selected":""}`,onClick:()=>n(e.filePath,s),title:`${e.filePath} — ${a}`,"aria-label":o("git_openFile",{path:l,status:a}),"aria-pressed":i,children:[(0,r.jsx)("span",{"aria-hidden":"true",style:{width:14,flexShrink:0,color:lx[e.status],fontFamily:"var(--font-mono)",fontSize:11,fontWeight:700,textAlign:"center"},children:e.code}),(0,r.jsx)("span",{style:{flexShrink:0,display:"flex",alignItems:"center"},children:on(s,13)}),(0,r.jsx)("span",{style:{flex:1,minWidth:0,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:l}),(0,r.jsx)("span",{style:{flexShrink:0,fontSize:10,color:"var(--text-dim)"},children:a})]})}function lR({children:e,tone:t="dim"}){return(0,r.jsx)("div",{style:{padding:"14px 12px",fontSize:11.5,lineHeight:1.5,color:"error"===t?"var(--status-danger)":"var(--text-dim)"},children:e})}var lT=n(12612),lM=n(42804);function lE({kind:e}){let t={width:17,height:17,viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:1.8,strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":!0};return"info"===e?(0,r.jsx)(nC.A,{size:17,strokeWidth:1.8,"aria-hidden":"true"}):"files"===e?(0,r.jsx)("svg",{...t,children:(0,r.jsx)("path",{d:"M20 20a2 2 0 0 0 2-2V8a2 2 0 0 0-2-2h-7.9a2 2 0 0 1-1.69-.9L9.6 3.9A2 2 0 0 0 7.93 3H4a2 2 0 0 0-2 2v13a2 2 0 0 0 2 2Z"})}):"git"===e?(0,r.jsx)(lT.A,{size:17,strokeWidth:1.8,"aria-hidden":"true"}):"terminal"===e?(0,r.jsx)(lM.A,{size:17,strokeWidth:1.8,"aria-hidden":"true"}):(0,r.jsxs)("svg",{...t,children:[(0,r.jsx)("line",{x1:"6",y1:"3",x2:"6",y2:"15"}),(0,r.jsx)("circle",{cx:"18",cy:"6",r:"3"}),(0,r.jsx)("circle",{cx:"6",cy:"18",r:"3"}),(0,r.jsx)("path",{d:"M18 9a9 9 0 0 1-9 9"})]})}function lz({open:e,width:t,onWidthChange:n,onClose:o,cwd:s,isMobile:l,mobileReady:a,tabs:d,activeTabId:c,onSelectTab:u,sessionInfoContent:p,branchContent:h,terminalContent:g,fileRefreshKey:f,gitRefreshKey:x,onOpenFile:m,onAtMention:v,onAtMentions:y}){let{t:b}=(0,ea.s9)(),w=(0,i.useRef)(null),[k,j]=(0,i.useState)(!1),[S,C]=(0,i.useState)(0),[_,I]=(0,i.useState)(null),[R,T]=(0,i.useState)(!1),[M,E]=(0,i.useState)(null),[z,L]=(0,i.useState)(!1),W=(0,i.useRef)(null),[A,P]=(0,i.useState)(e);(0,i.useEffect)(()=>{e&&P(!0)},[e]);let $=(0,i.useCallback)(async()=>{if(!s){I(null),E(null);return}T(!0);try{let e=await fetch(`/api/git/status?${new URLSearchParams({cwd:s}).toString()}`),t=await e.json().catch(()=>({}));if(!e.ok)throw Error(t.error??b("workspace_gitStatusLoadFailed",{status:e.status}));I(t),E(null)}catch(e){E(e instanceof Error?e.message:String(e)),I(null)}finally{T(!1)}},[s,b]);(0,i.useEffect)(()=>{e&&$()},[e,$,x]);let H=(0,i.useRef)(!1);(0,i.useEffect)(()=>{let e=H.current;H.current=k,e&&!k&&$()},[k,$]);let F=(0,i.useCallback)(e=>{l||(e.preventDefault(),W.current={startX:e.clientX,startWidth:t},L(!0),e.currentTarget.setPointerCapture(e.pointerId))},[l,t]),D=(0,i.useCallback)(e=>{let t=W.current;t&&n(Math.min(Math.max(320,Math.min(720,.42*window.innerWidth)),Math.max(320,t.startWidth+t.startX-e.clientX)))},[n]),N=(0,i.useCallback)(e=>{W.current&&(W.current=null,L(!1),e.currentTarget.hasPointerCapture(e.pointerId)&&e.currentTarget.releasePointerCapture(e.pointerId))},[]),B=d.filter(e=>e.kind&&"file"!==e.kind&&"chat"!==e.kind),O=_?.isGitRepository?_.files.length:0,U=44+(e?t:0),q=l?"calc(100% - 44px)":e?t:0;return(0,r.jsxs)("div",{className:`workspace-container${e?" workspace-open":" workspace-closed"}${z?" workspace-dragging":""}${a?"":" workspace-mobile-pending"}`,style:{width:U,minWidth:U,display:"flex",borderLeft:e?"1px solid var(--border)":"none",background:"var(--bg-panel)",position:"relative",flexShrink:0,zIndex:200},role:"complementary","aria-label":b("panel_ariaLabel"),onKeyDownCapture:t=>{e&&"Escape"===t.key&&(t.preventDefault(),t.stopPropagation(),o())},children:[e&&(0,r.jsx)("div",{className:`workspace-resize-handle${z?" dragging":""}`,onPointerDown:F,onPointerMove:D,onPointerUp:N,onPointerCancel:N,onDoubleClick:()=>n(400),title:b("workspace_resizeHandle"),"aria-hidden":"true"}),(0,r.jsxs)("div",{className:"workspace-inner",style:{width:U,minWidth:U,height:"100%",display:"flex"},children:[(0,r.jsx)("div",{"aria-hidden":!e,inert:!e,style:{width:q,minWidth:q,overflow:"hidden",height:"100%",display:"flex",flexDirection:"column",opacity:+!!e,transition:z?"none":"width 0.2s ease, min-width 0.2s ease, opacity 0.12s ease"},children:(0,r.jsx)("div",{style:{flex:1,overflow:"hidden",position:"relative",background:"var(--bg-panel)"},children:A?"terminal"===c?(0,r.jsx)("div",{style:{height:"100%",overflow:"hidden"},children:g}):s?(0,r.jsxs)(r.Fragment,{children:[(0,r.jsxs)("div",{style:{display:"files"===c?"flex":"none",height:"100%",flexDirection:"column"},children:[(0,r.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:4,padding:"4px 8px",borderBottom:"1px solid var(--border)",flexShrink:0},children:[(0,r.jsx)("button",{type:"button",onClick:()=>w.current?.openUploadPicker(),disabled:k||!s,"data-tooltip":b("workspace_upload"),"aria-label":b("workspace_upload"),className:"sidebar-icon-btn",children:(0,r.jsxs)("svg",{width:"15",height:"15",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":"true",children:[(0,r.jsx)("path",{d:"M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4"}),(0,r.jsx)("path",{d:"m17 8-5-5-5 5"}),(0,r.jsx)("path",{d:"M12 3v12"})]})}),(0,r.jsx)("button",{type:"button",onClick:()=>w.current?.startCreateFile(),disabled:!s,"data-tooltip":b("files_newFile"),"aria-label":b("files_newFile"),className:"sidebar-icon-btn",children:(0,r.jsxs)("svg",{width:"15",height:"15",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":"true",children:[(0,r.jsx)("path",{d:"M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8Z"}),(0,r.jsx)("path",{d:"M14 2v6h6"}),(0,r.jsx)("path",{d:"M12 18v-6"}),(0,r.jsx)("path",{d:"M9 15h6"})]})}),(0,r.jsx)("button",{type:"button",onClick:()=>w.current?.startCreateDir(),disabled:!s,"data-tooltip":b("files_newFolder"),"aria-label":b("files_newFolder"),className:"sidebar-icon-btn",children:(0,r.jsxs)("svg",{width:"15",height:"15",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":"true",children:[(0,r.jsx)("path",{d:"M4 20h16a2 2 0 0 0 2-2V8a2 2 0 0 0-2-2h-7.9a2 2 0 0 1-1.7-.9l-.8-1.2A2 2 0 0 0 8 3H4a2 2 0 0 0-2 2v13a2 2 0 0 0 2 2Z"}),(0,r.jsx)("path",{d:"M12 11v6"}),(0,r.jsx)("path",{d:"M9 14h6"})]})}),(0,r.jsx)("button",{type:"button",onClick:()=>C(e=>e+1),"data-tooltip":b("workspace_refreshFiles"),"aria-label":b("workspace_refreshFiles"),className:"sidebar-icon-btn",children:(0,r.jsxs)("svg",{width:"15",height:"15",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":"true",children:[(0,r.jsx)("path",{d:"M3 12a9 9 0 1 0 9-9 9.75 9.75 0 0 0-6.74 2.74L3 8"}),(0,r.jsx)("path",{d:"M3 3v5h5"})]})}),(0,r.jsx)("button",{type:"button",onClick:()=>w.current?.toggleConfig(),"data-tooltip":b("files_config"),"aria-label":b("files_config"),className:"sidebar-icon-btn",style:{marginLeft:"auto"},children:(0,r.jsxs)("svg",{width:"15",height:"15",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":"true",children:[(0,r.jsx)("circle",{cx:"12",cy:"12",r:"3"}),(0,r.jsx)("path",{d:"M19.4 15a1.65 1.65 0 0 0 .33 1.82l.06.06a2 2 0 1 1-2.83 2.83l-.06-.06a1.65 1.65 0 0 0-1.82-.33 1.65 1.65 0 0 0-1 1.51V21a2 2 0 0 1-4 0v-.09A1.65 1.65 0 0 0 9 19.4a1.65 1.65 0 0 0-1.82.33l-.06.06a2 2 0 1 1-2.83-2.83l.06-.06a1.65 1.65 0 0 0 .33-1.82 1.65 1.65 0 0 0-1.51-1H3a2 2 0 0 1 0-4h.09A1.65 1.65 0 0 0 4.6 9a1.65 1.65 0 0 0-.33-1.82l-.06-.06a2 2 0 1 1 2.83-2.83l.06.06a1.65 1.65 0 0 0 1.82.33H9a1.65 1.65 0 0 0 1-1.51V3a2 2 0 0 1 4 0v.09a1.65 1.65 0 0 0 1 1.51 1.65 1.65 0 0 0 1.82-.33l.06-.06a2 2 0 1 1 2.83 2.83l-.06.06a1.65 1.65 0 0 0-.33 1.82V9a1.65 1.65 0 0 0 1.51 1H21a2 2 0 0 1 0 4h-.09a1.65 1.65 0 0 0-1.51 1Z"})]})})]}),(0,r.jsx)("div",{style:{flex:1,minHeight:0},children:(0,r.jsx)(lS,{ref:w,cwd:s,onOpenFile:(e,t)=>m(e,t,"content"),refreshKey:(f??0)+S,onAtMention:v,onAtMentions:y,onUploadBusyChange:j})})]}),(0,r.jsxs)("div",{style:{display:"git"===c?"flex":"none",height:"100%",flexDirection:"column"},children:[(0,r.jsx)("div",{style:{display:"flex",alignItems:"center",gap:4,padding:"4px 8px",borderBottom:"1px solid var(--border)",flexShrink:0},children:(0,r.jsx)("button",{type:"button",onClick:()=>void $(),disabled:!s,"data-tooltip":b("workspace_refreshGitStatus"),"aria-label":b("workspace_refreshGitStatus"),className:"sidebar-icon-btn",children:(0,r.jsxs)("svg",{width:"15",height:"15",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":"true",children:[(0,r.jsx)("path",{d:"M3 12a9 9 0 1 0 9-9 9.75 9.75 0 0 0-6.74 2.74L3 8"}),(0,r.jsx)("path",{d:"M3 3v5h5"})]})})}),(0,r.jsx)("div",{style:{flex:1,minHeight:0,overflowY:"auto",overflowX:"hidden"},children:(0,r.jsx)(l_,{cwd:s,status:_,loading:R,error:M,onOpenFile:(e,t)=>m(e,t,"diff")})})]}),"branch"===c&&(0,r.jsx)("div",{style:{height:"100%",overflow:"hidden"},children:h}),"info"===c&&(0,r.jsx)("div",{style:{height:"100%",overflow:"hidden"},children:p})]}):(0,r.jsx)("div",{style:{padding:"16px 12px",fontSize:11.5,color:"var(--text-dim)",lineHeight:1.6},children:b("workspace_selectProject")}):null})}),(0,r.jsx)("nav",{className:"workspace-navigation-rail","aria-label":b("panel_ariaLabel"),style:{width:44,flex:"0 0 44px"},children:B.map(t=>{let n=e&&t.id===c,i="git"===t.kind&&O>0?`${t.label} (${O>99?"99+":O})`:t.label;return(0,r.jsxs)("button",{type:"button",className:"sidebar-icon-btn","aria-label":i,"data-tooltip":i,"aria-pressed":n,onClick:()=>u(t.id),style:{width:34,height:34,color:n?"var(--accent)":"var(--text-muted)",background:n?"var(--bg-selected)":"transparent",border:n?"1px solid color-mix(in srgb, var(--accent) 30%, var(--border))":"1px solid transparent",position:"relative"},children:[(0,r.jsx)(lE,{kind:t.kind}),"git"===t.kind&&O>0&&(0,r.jsx)("span",{"aria-hidden":"true",style:{position:"absolute",right:3,top:3,width:6,height:6,borderRadius:"50%",background:"var(--accent)",boxShadow:"0 0 0 2px var(--bg)"}})]},t.id)})})]})]})}function lL({kind:e}){let t={width:13,height:13,viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":!0};return"files"===e?(0,r.jsx)("svg",{...t,children:(0,r.jsx)("path",{d:"M20 20a2 2 0 0 0 2-2V8a2 2 0 0 0-2-2h-7.9a2 2 0 0 1-1.69-.9L9.6 3.9A2 2 0 0 0 7.93 3H4a2 2 0 0 0-2 2v13a2 2 0 0 0 2 2Z"})}):"git"===e||"branch"===e?(0,r.jsxs)("svg",{...t,children:[(0,r.jsx)("line",{x1:"6",y1:"3",x2:"6",y2:"15"}),(0,r.jsx)("circle",{cx:"18",cy:"6",r:"3"}),(0,r.jsx)("circle",{cx:"6",cy:"18",r:"3"}),(0,r.jsx)("path",{d:"M18 9a9 9 0 0 1-9 9"})]}):(0,r.jsxs)("svg",{...t,children:[(0,r.jsx)("circle",{cx:"12",cy:"12",r:"10"}),(0,r.jsx)("line",{x1:"12",y1:"16",x2:"12",y2:"12"}),(0,r.jsx)("line",{x1:"12",y1:"8",x2:"12.01",y2:"8"})]})}function lW({tabs:e,activeTabId:t,onSelectTab:n,onCloseTab:o}){let{t:s}=(0,ea.s9)(),[l,a]=(0,i.useState)(null);return(0,r.jsx)("div",{style:{display:"flex",alignItems:"flex-end",background:"var(--bg-panel)",overflowX:"auto",flexShrink:0,height:36},children:e.map(e=>{let i=e.id===t,d=void 0!==e.kind&&"file"!==e.kind;return(0,r.jsxs)("div",{role:"tab",tabIndex:0,"aria-selected":i,onClick:()=>n(e.id),onKeyDown:t=>{("Enter"===t.key||" "===t.key)&&(t.preventDefault(),n(e.id))},onMouseDown:e=>{1===e.button&&e.preventDefault()},onAuxClick:t=>{1!==t.button||d||(t.preventDefault(),t.stopPropagation(),o(e.id))},style:{display:"flex",alignItems:"center",gap:6,height:36,paddingLeft:12,paddingRight:d?12:6,borderRight:"1px solid var(--border)",background:i?"var(--bg)":"var(--bg-panel)",cursor:"pointer",fontSize:12,color:i?"var(--text)":"var(--text-muted)",whiteSpace:"nowrap",maxWidth:180,minWidth:80*!d,flexShrink:0,userSelect:"none",transition:"background 0.1s, color 0.1s"},children:[(0,r.jsx)("span",{style:{flexShrink:0,opacity:i?1:.7,display:"flex",alignItems:"center"},children:"chat"===e.kind?(0,r.jsx)("svg",{width:"13",height:"13",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":"true",children:(0,r.jsx)("path",{d:"M21 15a2 2 0 0 1-2 2H7l-4 4V5a2 2 0 0 1 2-2h14a2 2 0 0 1 2 2z"})}):d?(0,r.jsx)(lL,{kind:e.kind}):on(e.label,13)}),(0,r.jsx)("span",{style:{overflow:"hidden",textOverflow:"ellipsis",flex:1,fontWeight:i?500:400},title:"chat"===e.kind?s("tabs_backToChat"):e.filePath||e.label,children:e.label}),!d&&(0,r.jsx)("button",{onClick:t=>{t.stopPropagation(),o(e.id)},onMouseEnter:()=>a(e.id),onMouseLeave:()=>a(null),style:{display:"flex",alignItems:"center",justifyContent:"center",width:24,height:24,background:l===e.id?"var(--bg-hover)":"transparent",border:"none",borderRadius:4,color:l===e.id?"var(--text)":"var(--text-dim)",cursor:"pointer",padding:0,flexShrink:0,transition:"background 0.1s, color 0.1s"},title:e.dirty?s("tabs_closeUnsaved"):s("tabs_close"),"aria-label":s("tabs_closeNamed",{label:e.label}),children:e.dirty?(0,r.jsx)("span",{className:e.saving?"file-tab-dirty-dot is-saving":"file-tab-dirty-dot","aria-hidden":"true"}):(0,r.jsxs)("svg",{width:"11",height:"11",viewBox:"0 0 10 10",fill:"none",stroke:"currentColor",strokeWidth:"1.8",strokeLinecap:"round","aria-hidden":"true",children:[(0,r.jsx)("line",{x1:"2",y1:"2",x2:"8",y2:"8"}),(0,r.jsx)("line",{x1:"8",y1:"2",x2:"2",y2:"8"})]})})]},e.id)})})}function lA({open:e,width:t,onWidthChange:n,cwd:o,isMobile:s,mobileReady:l,tabs:a,activeTabId:d,onSelectTab:c,onCloseTab:u,onCloseAllTabs:p,pendingCloseTabLabel:h,onSaveAndClose:g,onDiscardAndClose:f,onCancelClose:x,fileViewerContent:m,activeMode:v,gitAffectedPaths:y}){let{t:b}=(0,ea.s9)(),[w,k]=(0,i.useState)(null),[j,S]=(0,i.useState)(!1),[C,_]=(0,i.useState)(null),[I,R]=(0,i.useState)(!1),T=(0,i.useRef)(null),M=a.find(e=>e.id===d),E=(0,i.useCallback)(async()=>{if(!o||"diff"!==v||!M?.filePath)return void k(null);S(!0),_(null);try{let e=new URLSearchParams({cwd:o,path:M.filePath}),t=await fetch(`/api/git/diff?${e.toString()}`),n=await t.json().catch(()=>({}));if(!t.ok)throw Error(n.error??b("changes_diffError",{status:t.status}));k(n.supported&&"string"==typeof n.patch?n:null)}catch(e){k(null),_(e instanceof Error?e.message:String(e))}finally{S(!1)}},[v,M?.filePath,o,b]);(0,i.useEffect)(()=>{E()},[E]),(0,i.useEffect)(()=>{"diff"===v&&M?.filePath&&y?.some(e=>sZ(y,e))&&E()},[v,M?.filePath,E,y]);let z=(0,i.useCallback)(e=>{s||(e.preventDefault(),T.current={startX:e.clientX,startWidth:t},R(!0),e.currentTarget.setPointerCapture(e.pointerId))},[s,t]),L=(0,i.useCallback)(e=>{let t=T.current;t&&n(t.startWidth+t.startX-e.clientX)},[n]),W=(0,i.useCallback)(e=>{T.current&&(T.current=null,R(!1),e.currentTarget.hasPointerCapture(e.pointerId)&&e.currentTarget.releasePointerCapture(e.pointerId))},[]),A=M?"content"===v?m:j?(0,r.jsx)("div",{className:"changes-panel-hint",children:b("changes_diffLoading")}):C?(0,r.jsx)("div",{className:"changes-panel-hint is-error",children:C}):w?.patch?(0,r.jsx)(lr,{patch:w.patch}):(0,r.jsx)("div",{className:"changes-panel-hint",children:b("changes_diffUnavailable")}):(0,r.jsx)("div",{className:"changes-panel-hint",children:b("secondary_empty")});return(0,r.jsxs)("aside",{className:`changes-panel${e?" changes-panel-open":" changes-panel-closed"}${I?" changes-panel-dragging":""}${l?"":" workspace-mobile-pending"}`,style:{width:e?t:0,minWidth:e?t:0,height:"100%",minHeight:0,flex:"1 1 auto",display:"flex",flexDirection:"column"},"aria-label":b("secondary_title"),children:[e&&(0,r.jsx)("div",{className:`changes-panel-resize-handle${I?" dragging":""}`,role:"separator","aria-orientation":"vertical",tabIndex:0,title:b("changes_resizeHandle"),"aria-label":b("changes_resizeHandle"),onPointerDown:z,onPointerMove:L,onPointerUp:W,onPointerCancel:W}),(0,r.jsxs)("div",{className:"secondary-panel-inner",children:[a.length>0&&(0,r.jsxs)("div",{className:"secondary-panel-tabs",style:{display:"flex",alignItems:"stretch",flexShrink:0},children:[(0,r.jsx)("div",{style:{flex:1,minWidth:0,overflow:"hidden"},children:(0,r.jsx)(lW,{tabs:a,activeTabId:d,onSelectTab:c,onCloseTab:u})}),(0,r.jsx)("button",{type:"button",className:"sidebar-icon-btn",onClick:p,title:b("secondary_closeAll"),"aria-label":b("secondary_closeAll"),style:{flexShrink:0,borderRadius:0,borderLeft:"1px solid var(--border)"},children:(0,r.jsx)("span",{"aria-hidden":"true",children:"\xd7"})})]}),null!==h&&(0,r.jsxs)("div",{className:"file-close-confirm",role:"alert",children:[(0,r.jsx)("span",{className:"file-close-confirm__message",children:b("app_unsavedChangesIn",{name:h})}),(0,r.jsx)("button",{type:"button",className:"file-close-confirm__button",onClick:g,children:b("app_saveAndClose")}),(0,r.jsx)("button",{type:"button",className:"file-close-confirm__button is-danger",onClick:f,children:b("app_discardChanges")}),(0,r.jsx)("button",{type:"button",className:"file-close-confirm__button",onClick:x,children:b("common_cancel")})]}),(0,r.jsx)("div",{className:"secondary-panel-body",children:A})]})]})}function lP({session:e,sessionStats:t,contextUsage:n,systemPrompt:o}){let s,l,{t:a}=(0,ea.s9)(),[d,c]=(0,i.useState)(null),u=(0,i.useRef)(null);(0,i.useEffect)(()=>()=>{u.current&&clearTimeout(u.current)},[]);let p=(0,i.useCallback)((e,t)=>{e2(t).then(()=>{u.current&&clearTimeout(u.current),c(e),u.current=setTimeout(()=>c(null),1400)})},[]),h=e=>(0,r.jsx)("div",{style:{fontSize:11,fontWeight:700,color:"var(--text)",marginBottom:6},children:e}),g=(e,t)=>(0,r.jsxs)("div",{style:{minWidth:0},children:[h(e),(0,r.jsx)("div",{style:{display:"grid",gridTemplateColumns:"auto minmax(0, 1fr)",columnGap:12,rowGap:4},children:t.map(([t,n])=>(0,r.jsxs)("div",{style:{display:"contents"},children:[(0,r.jsx)("div",{style:{color:"var(--text-dim)",whiteSpace:"nowrap"},children:t}),(0,r.jsx)("div",{style:{color:"var(--text-muted)",minWidth:0,overflowWrap:"anywhere",textAlign:"right",whiteSpace:"nowrap",fontVariantNumeric:"tabular-nums"},children:n})]},`${e}:${t}`))})]}),f=e=>(0,r.jsx)("div",{style:{fontSize:12,color:"var(--text-muted)",fontStyle:"italic"},children:e});return(0,r.jsx)("div",{style:{height:"100%",overflowY:"auto",overflowX:"hidden",padding:"12px 16px 20px",display:"flex",flexDirection:"column",gap:18,fontSize:12,lineHeight:1.5},children:e?(0,r.jsxs)(r.Fragment,{children:[(0,r.jsxs)("div",{style:{minWidth:0},children:[h(a("app_sessionInfo")),t?(0,r.jsx)("div",{style:{display:"grid",gridTemplateColumns:"auto minmax(0, 1fr) auto",columnGap:12,rowGap:8,alignItems:"start"},children:[...t.sessionName?[{label:a("app_name"),value:t.sessionName,copyField:null}]:[],{label:a("app_file"),value:t.sessionFile??a("app_inMemory"),copyField:"file"},{label:a("app_id"),value:t.sessionId,copyField:"id"}].map(e=>{var t,n;let i;return(0,r.jsxs)("div",{style:{display:"contents"},children:[(0,r.jsx)("div",{style:{color:"var(--text-dim)",whiteSpace:"nowrap"},children:e.label}),(0,r.jsx)("div",{style:{color:"var(--text-muted)",minWidth:0,overflowWrap:"anywhere",wordBreak:"break-word",whiteSpace:"normal",fontFamily:"var(--font-mono)",fontSize:11.5},children:e.value}),(0,r.jsx)("div",{children:e.copyField?(t=e.copyField,n=e.value,i=d===t,(0,r.jsx)("button",{type:"button",title:i?a("app_copied"):"file"===t?a("app_copyFilePath"):a("app_copySessionId"),"aria-label":i?a("app_copied"):"file"===t?a("app_copyFilePath"):a("app_copySessionId"),onClick:()=>p(t,n),style:{alignSelf:"start",display:"inline-flex",alignItems:"center",justifyContent:"center",width:22,height:22,marginTop:-2,color:i?"var(--accent)":"var(--text-dim)",background:"transparent",border:"1px solid var(--border)",borderRadius:4,cursor:"pointer",flex:"0 0 auto",transition:"color 0.12s, border-color 0.12s, background 0.12s"},onMouseEnter:e=>{e.currentTarget.style.color="var(--accent)",e.currentTarget.style.borderColor="var(--accent)",e.currentTarget.style.background="var(--bg-hover)"},onMouseLeave:e=>{e.currentTarget.style.color=i?"var(--accent)":"var(--text-dim)",e.currentTarget.style.borderColor="var(--border)",e.currentTarget.style.background="transparent"},children:i?(0,r.jsx)("svg",{width:"12",height:"12",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":"true",children:(0,r.jsx)("polyline",{points:"20 6 9 17 4 12"})}):(0,r.jsxs)("svg",{width:"12",height:"12",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":"true",children:[(0,r.jsx)("rect",{x:"9",y:"9",width:"13",height:"13",rx:"2",ry:"2"}),(0,r.jsx)("path",{d:"M5 15H4a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h9a2 2 0 0 1 2 2v1"})]})})):null})]},`session-info:${e.label}`)})}):f(a("app_sessionInfoAfterMessageHint"))]}),t&&(0,r.jsxs)(r.Fragment,{children:[g(a("app_messages"),[[a("app_user"),t.userMessages.toLocaleString()],[a("app_assistant"),t.assistantMessages.toLocaleString()],[a("app_toolCalls"),t.toolCalls.toLocaleString()],[a("app_toolResults"),t.toolResults.toLocaleString()],[a("app_total"),t.totalMessages.toLocaleString()]]),(s=n??t.contextUsage,g(a("app_tokens"),[[a("app_input"),t.tokens.input.toLocaleString()],[a("app_output"),t.tokens.output.toLocaleString()],...t.tokens.cacheRead>0?[[a("app_cacheRead"),t.tokens.cacheRead.toLocaleString()]]:[],...t.tokens.cacheWrite>0?[[a("app_cacheWrite"),t.tokens.cacheWrite.toLocaleString()]]:[],[a("app_total"),t.tokens.total.toLocaleString()],...t.cost>0?[[a("app_cost"),`$${t.cost.toFixed(4)}`]]:[],...s?.contextWindow?[[a("app_context"),`${null!==s.percent?`${s.percent.toFixed(1)}%`:"?"} / ${(l=s.contextWindow)>=1e6?`${(l/1e6).toFixed(1)}M`:l>=1e3?`${(l/1e3).toFixed(0)}k`:String(l)}`]]:[]]))]}),(0,r.jsxs)("div",{style:{minWidth:0},children:[h(a("app_systemPrompt")),!0===e.readOnly?f(a("app_systemPromptReadOnlyHint")):o?(0,r.jsx)("div",{style:{maxHeight:"min(480px, 60vh)",overflowY:"auto",padding:"10px 12px",border:"1px solid var(--border)",borderRadius:6,background:"var(--bg)",color:"var(--text-muted)",fontSize:12,lineHeight:1.6,whiteSpace:"pre-wrap",overflowWrap:"anywhere",fontFamily:"var(--font-mono)"},children:o}):f(""===o?a("app_systemPromptEmptyHint"):a("app_systemPromptAfterMessageHint"))]})]}):f(a("panel_selectSessionHint"))})}var l$=n(6296),lH=n(53961),lF=n(28538);function lD(e){return{minHeight:32,padding:"0 14px",borderRadius:7,border:`1px solid ${e?"var(--accent)":"var(--border)"}`,background:e?"var(--accent)":"var(--bg-panel)",color:e?"var(--accent-foreground)":"var(--text-muted)",cursor:e?"pointer":"not-allowed",fontSize:12,fontWeight:600,opacity:e?1:.65}}function lN(e=!0){return{minHeight:32,padding:"0 12px",borderRadius:7,border:"1px solid var(--border)",background:"var(--bg-panel)",color:"var(--text-muted)",cursor:e?"pointer":"not-allowed",fontSize:12,opacity:e?1:.65}}function lB(e=!0){return{display:"inline-flex",alignItems:"center",justifyContent:"center",width:32,height:32,padding:0,borderRadius:7,border:"1px solid var(--border)",background:"var(--bg-panel)",color:"var(--status-danger)",cursor:e?"pointer":"not-allowed",opacity:e?1:.55}}function lO({fixedHint:e,dynamicHint:t,children:n,onClose:i,closeLabel:o}){let{t:s}=(0,ea.s9)();return(0,r.jsxs)("div",{style:{flexShrink:0,padding:"10px 20px 14px",borderTop:"1px solid var(--border)",background:"var(--bg)",display:"flex",alignItems:"center",gap:12,flexWrap:"wrap"},children:[(0,r.jsxs)("div",{style:{flex:"1 1 160px",minWidth:0,display:"flex",flexDirection:"column",gap:2,justifyContent:"center",minHeight:36},children:[(0,r.jsx)("div",{style:{fontSize:11,color:"var(--text-dim)",fontFamily:"var(--font-mono)",lineHeight:1.4,minHeight:16,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},title:"string"==typeof e?e:void 0,children:null!=e&&""!==e?e:"\xa0"}),(0,r.jsx)("div",{style:{fontSize:12,lineHeight:1.4,minHeight:16},children:null!=t&&""!==t?t:"\xa0"})]}),(0,r.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:8,flexWrap:"wrap",marginLeft:"auto",flexShrink:0},children:[n,i&&(0,r.jsx)("button",{type:"button",onClick:i,style:lN(!0),children:o??s("dialog_close")})]})]})}function lU({stickyFooter:e=!1,onClose:t,apiPath:n="/api/settings/raw",fixedHint:o="~/.pi/agent/settings.json",titleLabel:s,fileLabel:l="settings.json"}={}){let{t:a}=(0,ea.s9)(),[d,c]=(0,i.useState)(null),[u,p]=(0,i.useState)(!0),[h,g]=(0,i.useState)(!1),[f,x]=(0,i.useState)(null),[m,v]=(0,i.useState)(!1),[y,b]=(0,i.useState)(0),w=i.useRef(null),[k,j]=(0,i.useState)(0),[S,C]=(0,i.useState)(null),_=(0,i.useCallback)(async()=>{p(!0),x(null);try{let e=await fetch(n,{cache:"no-store"});if(!e.ok){let t=await e.json().catch(()=>({}));throw Error(t.error??`HTTP ${e.status}`)}let t=await e.json();c("string"==typeof t.json?t.json:"{}\n")}catch(e){x(e instanceof Error?e.message:String(e)),c(null)}finally{p(!1)}},[n]);(0,i.useEffect)(()=>{_()},[_,y]);let I=(0,i.useCallback)(()=>{if(null===d)return null;try{let e=JSON.parse(d);if("object"!=typeof e||null===e||Array.isArray(e))return a("settingsJson_mustBeObject");return null}catch(n){let e=n instanceof Error?n.message:String(n),t=/position (\d+)/.exec(e);if(t){let e=Number(t[1]),n=d.slice(0,e),r=n.split("\n").length,i=e-n.lastIndexOf("\n");return a("settingsJson_invalidAt",{line:String(r),col:String(i)})}return a("settingsJson_invalid",{message:e})}},[d,a]),R=(0,i.useCallback)(()=>{if(null===d)return;let e=I();if(null!==e)return void C(e);try{let e=JSON.parse(d);c(JSON.stringify(e,null,2)),C(!0),x(null),v(!1)}catch{}},[d,I]),T=(0,i.useCallback)(()=>{if(null===d)return C(null),!1;let e=I();return C(null===e||e),null===e},[d,I]),M=(0,i.useCallback)(async()=>{if(T()){g(!0),x(null),v(!1);try{let e=await fetch(n,{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify({json:d})});if(!e.ok){let t=await e.json().catch(()=>({}));throw Error(t.error??`HTTP ${e.status}`)}v(!0),window.setTimeout(()=>v(!1),2e3)}catch(e){x(e instanceof Error?e.message:String(e))}finally{g(!1)}}},[d,I,a,n]);return u&&null===d?(0,r.jsx)("div",{style:{padding:"12px 0",fontSize:12,color:"var(--text-muted)"},children:a("common_loading")}):e?(0,r.jsxs)("div",{style:{height:"100%",display:"flex",flexDirection:"column",minHeight:0},children:[(0,r.jsxs)("div",{style:{flex:1,minHeight:0,overflowY:"auto",padding:"12px 20px 12px",display:"flex",flexDirection:"column"},children:[(0,r.jsxs)("div",{style:{flexShrink:0,display:"flex",alignItems:"center",gap:10,marginBottom:8},children:[(0,r.jsx)("div",{style:{fontSize:12,fontWeight:600,color:"var(--text)"},children:s??a("defaults_jsonTab")}),(0,r.jsx)("span",{style:{fontSize:10,color:"var(--text-dim)",fontFamily:"var(--font-mono)"},children:l})]}),(0,r.jsxs)("div",{style:{flex:1,minHeight:200,display:"flex",alignItems:"stretch",border:"1px solid var(--border)",borderRadius:7,overflow:"hidden",background:"var(--bg)"},children:[(0,r.jsx)("div",{"aria-hidden":"true",style:{flexShrink:0,padding:"10px 6px 10px 10px",background:"var(--bg-panel)",borderRight:"1px solid var(--border)",color:"var(--text-dim)",fontSize:12,lineHeight:1.55,fontFamily:"var(--font-mono)",textAlign:"right",userSelect:"none",overflow:"hidden",minHeight:0},children:(d??"").split("\n").map((e,t)=>(0,r.jsx)("div",{style:{transform:`translateY(-${k}px)`},children:t+1},t))}),(0,r.jsx)("textarea",{ref:w,value:d??"",onChange:e=>{c(e.target.value),x(null),v(!1),C(null)},onScroll:e=>j(e.currentTarget.scrollTop),spellCheck:!1,"aria-label":a("settingsJson_editorLabel"),style:{flex:1,minHeight:0,width:"100%",padding:"10px 12px",border:"none",borderRadius:0,background:"var(--bg)",color:"var(--text)",fontSize:12,lineHeight:1.55,outline:"none",fontFamily:"var(--font-mono)",whiteSpace:"pre",overflow:"auto",boxSizing:"border-box",resize:"none"}})]})]}),(0,r.jsxs)(lO,{fixedHint:o,dynamicHint:"string"==typeof S||f?(0,r.jsx)("span",{style:{color:"var(--status-danger)",fontFamily:"var(--font-mono)"},children:"string"==typeof S?S:f}):!0===S?(0,r.jsx)("span",{style:{color:"var(--status-ok, var(--accent))",fontFamily:"var(--font-mono)"},children:a("settingsJson_valid")}):m?(0,r.jsx)("span",{style:{color:"var(--accent)"},children:a("common_saved")}):null,onClose:t,children:[(0,r.jsx)("button",{type:"button",onClick:()=>void R(),disabled:null===d,style:lN(null!==d),children:a("settingsJson_format")}),(0,r.jsx)("button",{type:"button",onClick:()=>void T(),disabled:null===d,style:lN(null!==d),children:a("settingsJson_validate")}),(0,r.jsx)("button",{type:"button",onClick:()=>b(e=>e+1),disabled:h,style:lN(!h),children:a("common_reload")}),(0,r.jsx)("button",{type:"button",onClick:()=>void M(),disabled:null===d||h||!0!==S,style:lD(null!==d&&!h&&!0===S),children:h?a("common_saving"):a("common_save")})]})]}):(0,r.jsxs)("div",{children:[(0,r.jsx)("div",{style:{fontSize:11,color:"var(--text-dim)",lineHeight:1.6,marginBottom:12,maxWidth:560},children:a("settingsJson_hint")}),(f||"string"==typeof S)&&(0,r.jsx)("div",{style:{fontSize:12,color:"var(--status-danger)",marginBottom:10,fontFamily:"var(--font-mono)"},children:"string"==typeof S?S:f}),!0===S&&(0,r.jsx)("div",{style:{fontSize:12,color:"var(--status-ok, var(--accent))",marginBottom:10,fontFamily:"var(--font-mono)"},children:a("settingsJson_valid")}),(0,r.jsxs)("div",{style:{display:"flex",alignItems:"stretch",border:"1px solid var(--border)",borderRadius:7,overflow:"hidden"},children:[(0,r.jsx)("div",{"aria-hidden":"true",style:{flexShrink:0,padding:"10px 6px 10px 10px",background:"var(--bg-panel)",borderRight:"1px solid var(--border)",color:"var(--text-dim)",fontSize:12,lineHeight:1.55,fontFamily:"var(--font-mono)",textAlign:"right",userSelect:"none",overflow:"hidden",maxHeight:"60vh"},children:(d??"").split("\n").map((e,t)=>(0,r.jsx)("div",{style:{transform:`translateY(-${k}px)`},children:t+1},t))}),(0,r.jsx)("textarea",{ref:w,value:d??"",onChange:e=>{c(e.target.value),x(null),v(!1),C(null)},onScroll:e=>j(e.currentTarget.scrollTop),spellCheck:!1,"aria-label":a("settingsJson_editorLabel"),style:{width:"100%",minHeight:320*!e,maxHeight:e?"none":"60vh",padding:"10px 12px",borderRadius:7,border:"1px solid var(--border)",background:"var(--bg)",color:"var(--text)",fontSize:12,lineHeight:1.55,outline:"none",fontFamily:"var(--font-mono)",whiteSpace:"pre",overflow:"auto",boxSizing:"border-box",resize:e?"none":"vertical",border:"none",borderRadius:0,minHeight:320,maxHeight:"60vh"}})]}),(0,r.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:10,marginTop:12,flexWrap:"wrap"},children:[(0,r.jsx)("button",{type:"button",onClick:()=>void R(),disabled:null===d,style:{minHeight:30,padding:"0 12px",borderRadius:7,border:"1px solid var(--border)",background:"var(--bg-panel)",color:"var(--text)",cursor:null===d?"not-allowed":"pointer",fontSize:12},children:a("settingsJson_format")}),(0,r.jsx)("button",{type:"button",onClick:()=>void T(),disabled:null===d,style:{minHeight:30,padding:"0 12px",borderRadius:7,border:"1px solid var(--border)",background:"var(--bg-panel)",color:"var(--text)",cursor:null===d?"not-allowed":"pointer",fontSize:12},children:a("settingsJson_validate")}),(0,r.jsx)("button",{type:"button",onClick:()=>void M(),disabled:null===d||h||!0!==S,style:{minHeight:30,padding:"0 14px",borderRadius:7,border:"1px solid var(--accent)",background:"var(--accent)",color:"var(--accent-foreground)",cursor:null===d||h||!0!==S?"not-allowed":"pointer",fontSize:12,fontWeight:600,opacity:null===d||h||!0!==S?.65:1},children:h?a("common_saving"):a("common_save")}),(0,r.jsx)("button",{type:"button",onClick:()=>b(e=>e+1),disabled:h,style:{minHeight:30,padding:"0 12px",borderRadius:7,border:"1px solid var(--border)",background:"var(--bg-panel)",color:"var(--text-muted)",cursor:h?"not-allowed":"pointer",fontSize:12},children:a("common_reload")}),m&&(0,r.jsx)("span",{style:{fontSize:12,color:"var(--accent)"},children:a("common_saved")})]})]})}var lq=n(67381),lK=n(64433),lV=n(70350),lJ=n(88195),lY=n(9312),lG=n(87275),lZ=n(22008),lX=n(95476),lQ=n(35029),l0=n(14489),l1=n(78728),l2=n(19872),l4=n(7751),l6=n(92526),l5=n(48238),l8=n(57794),l3=n(41098),l9=n(84604),l7=n(15315),ae=n(74278),at=n(55457),an=n(71437),ar=n(29167),ai=n(97283),ao=n(34166),as=n(33889),al=n(85486),aa=n(74068),ad=n(83546),ac=n(83709);let au={anthropic:{Icon:lq.A,hasColor:!1},openai:{Icon:lK.A,hasColor:!1},"openai-codex":{Icon:lK.A,hasColor:!1},google:{Icon:lV.A,hasColor:!0},"google-vertex":{Icon:lV.A,hasColor:!0},"ant-ling":{Icon:as.A,hasColor:!0},deepseek:{Icon:lJ.A,hasColor:!0},groq:{Icon:lY.A,hasColor:!1},mistral:{Icon:lG.A,hasColor:!0},moonshotai:{Icon:lZ.A,hasColor:!1},"moonshotai-cn":{Icon:lZ.A,hasColor:!1},moonshot:{Icon:lZ.A,hasColor:!1},minimax:{Icon:lX.A,hasColor:!0},"minimax-cn":{Icon:lX.A,hasColor:!0},fireworks:{Icon:lQ.A,hasColor:!0},huggingface:{Icon:l0.A,hasColor:!0},cerebras:{Icon:l1.A,hasColor:!0},openrouter:{Icon:l2.A,hasColor:!1},xai:{Icon:l4.A,hasColor:!1},"cloudflare-ai-gateway":{Icon:l6.A,hasColor:!0},"cloudflare-workers-ai":{Icon:l6.A,hasColor:!0},"vercel-ai-gateway":{Icon:l5.A,hasColor:!1},"github-copilot":{Icon:l8.A,hasColor:!1},"amazon-bedrock":{Icon:l3.A,hasColor:!0},"azure-openai-responses":{Icon:l9.A,hasColor:!0},"kimi-coding":{Icon:l7.A,hasColor:!0},nvidia:{Icon:al.A,hasColor:!0},opencode:{Icon:aa.A,hasColor:!1},"opencode-go":{Icon:aa.A,hasColor:!1},qwen:{Icon:ae.A,hasColor:!0},xiaomi:{Icon:ad.A,hasColor:!1},"xiaomi-token-plan-ams":{Icon:ad.A,hasColor:!1},"xiaomi-token-plan-cn":{Icon:ad.A,hasColor:!1},"xiaomi-token-plan-sgp":{Icon:ad.A,hasColor:!1},zai:{Icon:ac.A,hasColor:!1},"zai-coding-cn":{Icon:ac.A,hasColor:!1},zhipu:{Icon:at.A,hasColor:!0},cohere:{Icon:an.A,hasColor:!0},perplexity:{Icon:ar.A,hasColor:!0},together:{Icon:ai.A,hasColor:!0},grok:{Icon:ao.A,hasColor:!1}},ap=["openai-completions","openai-responses","openai-codex-responses","anthropic-messages","google-generative-ai"];function ah({label:e,children:t}){return(0,r.jsxs)("div",{style:{display:"flex",flexDirection:"column",gap:4},children:[(0,r.jsx)("label",{style:{fontSize:11,color:"var(--text-muted)",fontWeight:500},children:e}),t]})}let ag={padding:"6px 9px",background:"var(--bg-panel)",border:"1px solid var(--border)",borderRadius:5,color:"var(--text)",fontSize:12,outline:"none",width:"100%",boxSizing:"border-box"};function af({value:e,onChange:t,placeholder:n,mono:i}){return(0,r.jsx)("input",{value:e,onChange:e=>t(e.target.value),placeholder:n,style:{...ag,fontFamily:i?"var(--font-mono)":"inherit"}})}function ax({value:e,onChange:t,placeholder:n,mono:o,onKeyDown:s,autoComplete:l="off",spellCheck:a=!1,style:d}){let{t:c}=(0,ea.s9)(),[u,p]=(0,i.useState)(!1);return(0,i.useEffect)(()=>{e||p(!1)},[e]),(0,r.jsxs)("div",{style:{position:"relative",width:"100%",...d},children:[(0,r.jsx)("input",{type:u?"text":"password",value:e,onChange:e=>t(e.target.value),onKeyDown:s,placeholder:n,style:{...ag,paddingRight:34,fontFamily:o?"var(--font-mono)":"inherit"},autoComplete:l,spellCheck:a}),(0,r.jsx)("button",{type:"button",onClick:()=>p(e=>!e),"aria-label":c(u?"models_hideApiKey":"models_showApiKey"),title:c(u?"models_hideApiKey":"models_showApiKey"),style:{position:"absolute",right:5,top:"50%",transform:"translateY(-50%)",width:24,height:24,padding:0,border:"none",background:"transparent",color:"var(--text-dim)",cursor:"pointer",display:"flex",alignItems:"center",justifyContent:"center"},children:u?(0,r.jsxs)("svg",{width:"15",height:"15",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:[(0,r.jsx)("path",{d:"M17.94 17.94A10.94 10.94 0 0 1 12 20C7 20 2.73 16.89 1 12a18.45 18.45 0 0 1 5.06-6.94"}),(0,r.jsx)("path",{d:"M9.9 4.24A10.94 10.94 0 0 1 12 4c5 0 9.27 3.11 11 8a18.5 18.5 0 0 1-2.16 3.19"}),(0,r.jsx)("path",{d:"M14.12 14.12A3 3 0 0 1 9.88 9.88"}),(0,r.jsx)("path",{d:"M1 1l22 22"})]}):(0,r.jsxs)("svg",{width:"15",height:"15",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:[(0,r.jsx)("path",{d:"M1 12s4-8 11-8 11 8 11 8-4 8-11 8S1 12 1 12Z"}),(0,r.jsx)("circle",{cx:"12",cy:"12",r:"3"})]})})]})}function am({value:e,onChange:t,placeholder:n}){return(0,r.jsx)("input",{type:"number",value:e,onChange:e=>t(e.target.value),placeholder:n,style:ag})}function av({value:e,onChange:t,options:n,required:i}){let{t:o}=(0,ea.s9)();return(0,r.jsxs)("select",{value:e,onChange:e=>t(e.target.value),style:{...ag,color:e?"var(--text)":"var(--text-dim)"},children:[!i&&(0,r.jsx)("option",{value:"",children:o("models_inheritNone")}),n.map(e=>(0,r.jsx)("option",{value:e,children:e},e))]})}function ay({label:e,checked:t,onChange:n}){return(0,r.jsxs)("label",{style:{display:"flex",alignItems:"center",gap:6,cursor:"pointer",fontSize:12,color:"var(--text-muted)"},children:[(0,r.jsx)("input",{type:"checkbox",checked:t,onChange:e=>n(e.target.checked),style:{width:13,height:13,accentColor:"var(--accent)",cursor:"pointer"}}),e]})}function ab({children:e}){return(0,r.jsx)("div",{style:{fontSize:11,fontWeight:600,color:"var(--text-dim)",textTransform:"uppercase",letterSpacing:"0.06em",marginBottom:2},children:e})}function aw({label:e,onClick:t,disabled:n=!1,success:i=!1,error:o=!1,children:s}){return(0,r.jsx)("button",{type:"button",onClick:t,disabled:n,title:e,"aria-label":e,style:{width:24,height:24,padding:0,flexShrink:0,display:"inline-flex",alignItems:"center",justifyContent:"center",background:i?"var(--status-success)":"none",border:`1px solid ${i?"var(--status-success)":o?"var(--status-danger)":"var(--border)"}`,borderRadius:5,color:i?"#fff":o?"var(--status-danger)":n?"var(--text-dim)":"var(--text-muted)",cursor:n?"not-allowed":"pointer",opacity:n?.55:1,boxSizing:"border-box"},children:s})}function ak({value:e,onChange:t}){let{t:n}=(0,ea.s9)(),i=Object.entries(e??{}),o=(e,n,r)=>{let o=i.map(([t,i],o)=>o===e?[n,r]:[t,i]),s={};for(let[e,t]of o)e.trim()&&(s[e.trim()]=t);t(Object.keys(s).length?s:void 0)};return(0,r.jsxs)("div",{style:{display:"flex",flexDirection:"column",gap:6},children:[i.map(([e,s],l)=>(0,r.jsxs)("div",{style:{display:"grid",gridTemplateColumns:"1fr 1fr auto",gap:6},children:[(0,r.jsx)(af,{value:e,onChange:e=>o(l,e,s),placeholder:n("models_headerKey"),mono:!0}),(0,r.jsx)(af,{value:s,onChange:t=>o(l,e,t),placeholder:n("models_headerValue"),mono:!0}),(0,r.jsx)("button",{type:"button",onClick:()=>{let e;return e={},void(i.forEach(([t,n],r)=>{r!==l&&(e[t]=n)}),t(Object.keys(e).length?e:void 0))},style:{minHeight:30,padding:"0 8px",borderRadius:5,border:"1px solid var(--border)",background:"var(--bg-panel)",color:"var(--status-danger)",cursor:"pointer",fontSize:11},children:n("common_remove")})]},l)),(0,r.jsxs)("button",{type:"button",onClick:()=>{let n={...e??{}},r=1,i="X-Custom-Header";for(;i in n;)i=`X-Custom-Header-${r++}`;n[i]="",t(n)},style:{alignSelf:"flex-start",minHeight:28,padding:"0 10px",borderRadius:5,border:"1px dashed var(--border)",background:"none",color:"var(--text-muted)",cursor:"pointer",fontSize:11},children:["+ ",n("models_addHeader")]})]})}let aj=["supportsDeveloperRole","supportsReasoningEffort","supportsStore","supportsUsageInStreaming","supportsStrictMode","sendSessionAffinityHeaders","supportsLongCacheRetention"],aS=["supportsDeveloperRole","supportsReasoningEffort","requiresReasoningContentOnAssistantMessages","requiresThinkingAsText","supportsLongCacheRetention","supportsStore","supportsUsageInStreaming","supportsStrictMode","sendSessionAffinityHeaders"],aC=["","openai","openrouter","together","baseten","deepseek","zai","qwen","chat-template","qwen-chat-template","string-thinking","ant-ling"],a_=["","openai","openai-nosession","openrouter"],aI=["","max_tokens","max_completion_tokens"];function aR(e,t,n){let r={...e??{}};return n?r[t]=n:delete r[t],Object.keys(r).length?r:void 0}function aT({keys:e,compat:t,onChange:n}){return(0,r.jsx)("div",{style:{display:"flex",flexDirection:"column",gap:8},children:e.map(e=>(0,r.jsx)(ay,{label:e,checked:t?.[e]===!0,onChange:r=>{let i;return n((i={...t??{}},r?i[e]=!0:delete i[e],Object.keys(i).length?i:void 0))}},e))})}function aM({name:e,provider:t,onChange:n,onRename:o,onDelete:s}){let{t:l}=(0,ea.s9)(),[a,d]=(0,i.useState)(e);(0,i.useEffect)(()=>d(e),[e]);let c=(e,r)=>n({...t,[e]:r});return(0,i.useEffect)(()=>{t.api||n({...t,api:"openai-completions"})},[t.api]),(0,r.jsxs)("div",{style:{display:"flex",flexDirection:"column",gap:16},children:[(0,r.jsxs)("div",{style:{display:"flex",alignItems:"center",justifyContent:"space-between"},children:[(0,r.jsx)(ab,{children:l("models_provider")}),(0,r.jsx)("button",{onClick:s,style:{padding:"3px 8px",background:"none",border:"1px solid var(--status-danger-border)",borderRadius:4,color:"var(--status-danger)",cursor:"pointer",fontSize:11},children:l("models_delete")})]}),(0,r.jsxs)(ah,{label:l("models_providerName"),children:[(0,r.jsx)(af,{value:a,onChange:d,placeholder:"provider-name",mono:!0}),a!==e&&a.trim()&&(0,r.jsx)("button",{onClick:()=>o(a.trim()),style:{marginTop:4,padding:"3px 10px",background:"var(--accent)",border:"none",borderRadius:4,color:"#fff",cursor:"pointer",fontSize:11,alignSelf:"flex-start"},children:l("models_rename")})]}),(0,r.jsx)(ah,{label:l("models_baseUrl"),children:(0,r.jsx)(af,{value:t.baseUrl??"",onChange:e=>c("baseUrl",e||void 0),placeholder:"https://api.example.com/v1",mono:!0})}),(0,r.jsxs)(ah,{label:l("models_apiKey"),children:[(0,r.jsx)(ax,{value:t.apiKey??"",onChange:e=>c("apiKey",e||void 0),placeholder:l("models_apiKeyPlaceholder"),mono:!0}),(0,r.jsx)("span",{style:{fontSize:10,color:"var(--text-dim)",marginTop:2},children:l("models_apiKeyHint")})]}),(0,r.jsx)(ah,{label:l("models_apiLabel"),children:(0,r.jsx)(av,{value:t.api??"openai-completions",onChange:e=>c("api",e),options:ap,required:!0})}),(0,r.jsx)(ay,{label:l("models_authHeader"),checked:!0===t.authHeader,onChange:e=>c("authHeader",e||void 0)}),(0,r.jsx)("div",{style:{fontSize:10,color:"var(--text-dim)",marginTop:-8},children:l("models_authHeaderHint")}),(0,r.jsxs)("div",{children:[(0,r.jsx)(ab,{children:l("models_headers")}),(0,r.jsx)("div",{style:{marginTop:8},children:(0,r.jsx)(ak,{value:t.headers,onChange:e=>c("headers",e)})}),t.headersConfigured&&(0,r.jsx)("div",{style:{fontSize:10,color:"var(--text-dim)",marginTop:4},children:l("models_headersHint")})]}),(0,r.jsxs)("div",{children:[(0,r.jsx)(ab,{children:l("models_compat")}),(0,r.jsxs)("div",{style:{marginTop:8,display:"flex",flexDirection:"column",gap:10},children:[(0,r.jsx)(ah,{label:l("models_sessionAffinityFormat"),children:(0,r.jsx)(av,{value:"string"==typeof t.compat?.sessionAffinityFormat?String(t.compat.sessionAffinityFormat):"",onChange:e=>c("compat",aR(t.compat,"sessionAffinityFormat",e)),options:a_})}),(0,r.jsx)(aT,{keys:aj,compat:t.compat,onChange:e=>c("compat",e)})]})]})]})}let aE=["off","minimal","low","medium","high","xhigh","max"],az={off:"var(--text-dim)",minimal:"#6b7280",low:"#60a5fa",medium:"#a78bfa",high:"#f472b6",xhigh:"#fb923c",max:"var(--status-danger)"};function aL({value:e,onChange:t}){let{t:n}=(0,ea.s9)(),i=e??{},o=(e,n)=>{let r={...i};"omit"===n?delete r[e]:r[e]=n,t(Object.keys(r).length?r:void 0)};return(0,r.jsx)("div",{style:{display:"flex",flexDirection:"column",gap:2},children:aE.map(e=>{let t=i[e],s=e in i?null===t?"null":"string":"omit",l="string"==typeof t?t:"",a=az[e],d={padding:"4px 10px",fontSize:10,border:"none",cursor:"pointer",fontWeight:400,transition:"background 0.1s, color 0.1s",whiteSpace:"nowrap",background:"var(--bg-panel)",color:"var(--text-dim)"},c={background:"var(--accent)",color:"#fff",fontWeight:600};return(0,r.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:8,padding:"5px 4px",borderRadius:6,background:"transparent",border:"1px solid transparent"},children:[(0,r.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:5,width:68,flexShrink:0},children:[(0,r.jsx)("span",{style:{width:6,height:6,borderRadius:"50%",background:a,flexShrink:0,opacity:"null"===s?.3:1}}),(0,r.jsx)("span",{style:{fontSize:11,fontFamily:"var(--font-mono)",color:"null"===s?"var(--text-dim)":"var(--text-muted)",textDecoration:"null"===s?"line-through":"none"},children:e})]}),(0,r.jsxs)("div",{style:{display:"flex",borderRadius:5,border:"1px solid var(--border)",overflow:"hidden",flexShrink:0},children:[(0,r.jsx)("button",{onClick:()=>o(e,"omit"),style:{...d,..."omit"===s?c:{}},children:n("models_default")}),(0,r.jsx)("button",{onClick:()=>o(e,null),style:{...d,borderLeft:"1px solid var(--border)",..."null"===s?{background:"var(--status-danger)",color:"#fff",fontWeight:600}:{}},children:n("models_disabled")})]}),(0,r.jsxs)("div",{style:{display:"flex",borderRadius:5,border:`1px solid ${"string"===s?"var(--accent)":"var(--border)"}`,overflow:"hidden",transition:"border-color 0.1s"},children:[(0,r.jsx)("button",{onClick:()=>o(e,l||e),style:{...d,..."string"===s?c:{},borderRight:"1px solid var(--border)",flexShrink:0},children:n("models_custom")}),(0,r.jsx)("input",{value:l,onChange:t=>o(e,t.target.value),onFocus:()=>{"string"!==s&&o(e,l||e)},placeholder:e,maxLength:10,style:{width:"12ch",background:"string"===s?"var(--bg)":"var(--bg-panel)",border:"none",outline:"none",color:"string"===s?"var(--text)":"var(--text-dim)",fontFamily:"var(--font-mono)",fontSize:11,padding:"4px 7px",transition:"background 0.1s, color 0.1s"}})]})]},e)})})}let aW={thinkingFormat:"deepseek",requiresReasoningContentOnAssistantMessages:!0};function aA({providerName:e,provider:t,model:n,onChange:o,onDelete:s}){let{t:l}=(0,ea.s9)(),[a,d]=(0,i.useState)({phase:"idle"}),c=(e,t)=>o({...n,[e]:t}),u=(()=>{if("idle"===a.phase)return null;if("testing"===a.phase)return l("models_testing");let e=[void 0!==a.latencyMs?`${a.latencyMs}ms`:null,void 0!==a.status?`HTTP ${a.status}`:null].filter(Boolean);return"success"===a.phase?[l("models_connected"),...e,a.responseText||null].filter(Boolean).join(" \xb7 "):[l("models_failed"),...e,a.message].filter(Boolean).join(" \xb7 ")})();(0,i.useEffect)(()=>{d({phase:"idle"})},[e,t.baseUrl,t.api,t.apiKey,n.id,n.api]);let p=(0,i.useCallback)(async()=>{if(n.id.trim()&&"testing"!==a.phase){d({phase:"testing"});try{let r=await fetch("/api/models-config/test",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({providerName:e,provider:t,model:n})}),i=await r.json();if(!r.ok||!i.ok)return void d({phase:"error",message:i.error??`HTTP ${r.status}`,latencyMs:i.latencyMs,status:i.status});d({phase:"success",latencyMs:i.latencyMs,status:i.status,responseText:i.responseText})}catch(e){d({phase:"error",message:e instanceof Error?e.message:String(e)})}}},[n,t,e,a.phase]);return(0,r.jsxs)("div",{style:{display:"flex",flexDirection:"column",gap:16},children:[(0,r.jsxs)("div",{style:{display:"flex",alignItems:"center",justifyContent:"space-between"},children:[(0,r.jsx)(ab,{children:l("models_model")}),(0,r.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:8},children:[u&&(0,r.jsx)("span",{title:u,style:{maxWidth:260,height:24,padding:"0 8px",border:`1px solid ${"error"===a.phase?"#fecaca":"success"===a.phase?"#bbf7d0":"var(--border)"}`,borderRadius:4,background:"error"===a.phase?"#fee2e2":"success"===a.phase?"#dcfce7":"#e5e7eb",color:"#111827",fontSize:11,display:"inline-flex",alignItems:"center",whiteSpace:"nowrap",overflow:"hidden",textOverflow:"ellipsis",boxSizing:"border-box"},children:u}),(0,r.jsx)(aw,{onClick:p,disabled:!n.id.trim()||"testing"===a.phase,success:"success"===a.phase,error:"error"===a.phase,label:"testing"===a.phase?l("models_testing"):"success"===a.phase?l("models_testAgain"):"error"===a.phase?l("models_testFailedAgain"):l("models_test"),children:"testing"===a.phase?(0,r.jsx)(l$.A,{size:12,className:"animate-spin","aria-hidden":!0}):"success"===a.phase?(0,r.jsx)(ny.A,{size:12,"aria-hidden":!0}):(0,r.jsx)(lH.A,{size:12,"aria-hidden":!0})}),(0,r.jsx)("button",{onClick:s,style:{height:24,padding:"0 8px",background:"none",border:"1px solid var(--status-danger-border)",borderRadius:4,color:"var(--status-danger)",cursor:"pointer",fontSize:11,boxSizing:"border-box"},children:l("common_remove")})]})]}),(0,r.jsxs)("div",{style:{display:"grid",gridTemplateColumns:"1fr 1fr",gap:10},children:[(0,r.jsx)(ah,{label:l("models_id"),children:(0,r.jsx)(af,{value:n.id,onChange:e=>c("id",e),placeholder:"model-id",mono:!0})}),(0,r.jsx)(ah,{label:l("models_nameLabel"),children:(0,r.jsx)(af,{value:n.name??"",onChange:e=>c("name",e||void 0),placeholder:l("models_displayName")})})]}),(0,r.jsx)(ah,{label:l("models_apiOverride"),children:(0,r.jsx)(av,{value:n.api??"",onChange:e=>c("api",e||void 0),options:ap})}),(0,r.jsx)(ah,{label:l("models_baseUrlOverride"),children:(0,r.jsx)(af,{value:n.baseUrl??"",onChange:e=>c("baseUrl",e||void 0),placeholder:l("models_baseUrlOverrideHint"),mono:!0})}),(0,r.jsxs)("div",{style:{display:"flex",gap:20,flexWrap:"wrap"},children:[(0,r.jsx)(ay,{label:l("models_reasoning"),checked:n.reasoning??!1,onChange:e=>c("reasoning",e||void 0)}),(0,r.jsx)(ay,{label:l("models_imageInput"),checked:n.input?.includes("image")??!1,onChange:e=>c("input",e?["text","image"]:["text"])})]}),n.reasoning&&(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(ay,{label:l("models_thinkingCompat"),checked:n.compat?.thinkingFormat==="deepseek",onChange:e=>o(function(e,t){if(t)return{...e,compat:{...e.compat??{},...aW}};if(!e.compat)return e;let n={...e.compat};return delete n.thinkingFormat,delete n.requiresReasoningContentOnAssistantMessages,{...e,compat:Object.keys(n).length?n:void 0}}(n,e))}),(0,r.jsxs)("div",{children:[(0,r.jsxs)("div",{style:{display:"flex",alignItems:"center",justifyContent:"space-between",marginBottom:8},children:[(0,r.jsx)(ab,{children:l("models_thinkingMap")}),n.thinkingLevelMap&&(0,r.jsx)(aw,{label:l("models_clearThinkingMap"),onClick:()=>c("thinkingLevelMap",void 0),children:(0,r.jsx)(lF.A,{size:12,"aria-hidden":!0})})]}),(0,r.jsx)(aL,{value:n.thinkingLevelMap,onChange:e=>c("thinkingLevelMap",e)}),(0,r.jsx)("div",{style:{fontSize:10,color:"var(--text-dim)",marginTop:6},children:l("models_thinkingMapHint")})]})]}),(0,r.jsxs)("div",{style:{display:"grid",gridTemplateColumns:"1fr 1fr",gap:10},children:[(0,r.jsx)(ah,{label:l("models_contextWindow"),children:(0,r.jsx)(am,{value:void 0!==n.contextWindow?String(n.contextWindow):"",onChange:e=>c("contextWindow",e?parseInt(e):void 0),placeholder:"128000"})}),(0,r.jsx)(ah,{label:l("models_maxOutput"),children:(0,r.jsx)(am,{value:void 0!==n.maxTokens?String(n.maxTokens):"",onChange:e=>c("maxTokens",e?parseInt(e):void 0),placeholder:"16384"})})]}),(0,r.jsxs)("div",{children:[(0,r.jsx)(ab,{children:l("models_cost")}),(0,r.jsx)("div",{style:{marginTop:8,display:"grid",gridTemplateColumns:"1fr 1fr 1fr 1fr",gap:8},children:["input","output","cacheRead","cacheWrite"].map(e=>(0,r.jsx)(ah,{label:e,children:(0,r.jsx)(am,{value:n.cost?.[e]!==void 0?String(n.cost[e]):"",onChange:t=>{let r;return r=parseFloat(t),void o({...n,cost:{...n.cost??{},[e]:isNaN(r)?void 0:r}})},placeholder:"0"})},e))})]}),(0,r.jsxs)("div",{children:[(0,r.jsx)(ab,{children:l("models_headers")}),(0,r.jsx)("div",{style:{marginTop:8},children:(0,r.jsx)(ak,{value:n.headers,onChange:e=>c("headers",e)})})]}),(0,r.jsxs)("div",{children:[(0,r.jsx)(ab,{children:l("models_compat")}),(0,r.jsxs)("div",{style:{marginTop:8,display:"flex",flexDirection:"column",gap:10},children:[(0,r.jsxs)("div",{style:{display:"grid",gridTemplateColumns:"1fr 1fr",gap:10},children:[(0,r.jsx)(ah,{label:l("models_thinkingFormat"),children:(0,r.jsx)(av,{value:"string"==typeof n.compat?.thinkingFormat?String(n.compat.thinkingFormat):"",onChange:e=>c("compat",aR(n.compat,"thinkingFormat",e)),options:aC})}),(0,r.jsx)(ah,{label:l("models_maxTokensField"),children:(0,r.jsx)(av,{value:"string"==typeof n.compat?.maxTokensField?String(n.compat.maxTokensField):"",onChange:e=>c("compat",aR(n.compat,"maxTokensField",e)),options:aI})})]}),(0,r.jsx)(ah,{label:l("models_sessionAffinityFormat"),children:(0,r.jsx)(av,{value:"string"==typeof n.compat?.sessionAffinityFormat?String(n.compat.sessionAffinityFormat):"",onChange:e=>c("compat",aR(n.compat,"sessionAffinityFormat",e)),options:a_})}),(0,r.jsx)(aT,{keys:aS,compat:n.compat,onChange:e=>c("compat",e)})]})]})]})}function aP({provider:e,onRefresh:t}){let{t:n}=(0,ea.s9)(),[o,s]=(0,i.useState)({phase:"idle"}),[l,a]=(0,i.useState)(""),d=(0,i.useRef)(null),c=(0,i.useRef)(null);(0,i.useEffect)(()=>{("auth"===o.phase||"prompt"===o.phase)&&setTimeout(()=>c.current?.focus(),50)},[o.phase]),(0,i.useEffect)(()=>{s({phase:"idle"}),a(""),d.current?.close(),d.current=null},[e.id]),(0,i.useEffect)(()=>()=>{d.current?.close()},[]);let u=(0,i.useCallback)(()=>{d.current?.close(),s({phase:"connecting"}),a("");let r=new EventSource(`/api/auth/login/${encodeURIComponent(e.id)}`);d.current=r,r.onmessage=e=>{let n=JSON.parse(e.data);"auth"===n.type?(s({phase:"auth",url:n.url,instructions:n.instructions??null,token:n.token}),window.open(n.url,"_blank","noopener,noreferrer")):"device_code"===n.type?(s({phase:"device_code",userCode:n.userCode,verificationUri:n.verificationUri,intervalSeconds:n.intervalSeconds??null,expiresInSeconds:n.expiresInSeconds??null}),window.open(n.verificationUri,"_blank","noopener,noreferrer")):"prompt_request"===n.type?s({phase:"prompt",message:n.message,placeholder:n.placeholder??null,token:n.token}):"select_request"===n.type?s({phase:"select",message:n.message,options:n.options??[],token:n.token}):"progress"===n.type?s({phase:"progress",message:n.message}):"success"===n.type?(r.close(),s({phase:"success"}),t()):"error"===n.type?(r.close(),s({phase:"error",message:n.message})):"cancelled"===n.type&&(r.close(),s({phase:"idle"}))},r.onerror=()=>{r.close(),s(e=>"success"===e.phase?e:{phase:"error",message:n("oauth_connectionLost")})}},[e.id,t,n]),p=(0,i.useCallback)(async()=>{await fetch(`/api/auth/logout/${encodeURIComponent(e.id)}`,{method:"POST"}),s({phase:"idle"}),t()},[e.id,t]),h=(0,i.useCallback)(async(t,r)=>{if(r.trim()){s({phase:"progress",message:n("oauth_verifying")});try{let n=await fetch(`/api/auth/login/${encodeURIComponent(e.id)}`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({token:t,code:r.trim()})});if(!n.ok){let e=await n.json().catch(()=>({}));s({phase:"error",message:e.error??`Server error ${n.status}`});return}a("")}catch(e){s({phase:"error",message:e instanceof Error?e.message:n("oauth_networkError")})}}},[e.id,n]),g=(0,i.useCallback)(async(t,r)=>{s({phase:"progress",message:n("oauth_continuing")});try{let n=await fetch(`/api/auth/login/${encodeURIComponent(e.id)}`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({token:t,code:r})});if(!n.ok){let e=await n.json().catch(()=>({}));s({phase:"error",message:e.error??`Server error ${n.status}`})}}catch(e){s({phase:"error",message:e instanceof Error?e.message:n("oauth_networkError")})}},[e.id,n]),f="connecting"===o.phase||"progress"===o.phase||"auth"===o.phase||"device_code"===o.phase||"prompt"===o.phase||"select"===o.phase;return(0,r.jsxs)("div",{style:{display:"flex",flexDirection:"column",gap:16},children:[(0,r.jsxs)("div",{style:{display:"flex",alignItems:"center",justifyContent:"space-between"},children:[(0,r.jsx)(ab,{children:n("models_subscription")}),(0,r.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:6},children:[(0,r.jsx)("span",{style:{width:7,height:7,borderRadius:"50%",background:e.loggedIn?"var(--status-success)":"var(--border)",display:"inline-block"}}),(0,r.jsx)("span",{style:{fontSize:11,color:e.loggedIn?"var(--status-success)":"var(--text-dim)"},children:e.loggedIn?n("models_subscriptionStatus"):n("models_subscriptionNotConnected")})]})]}),(0,r.jsxs)("div",{style:{minHeight:48},children:["idle"===o.phase&&(0,r.jsx)("p",{style:{margin:0,fontSize:12,color:"var(--text-muted)",lineHeight:1.5},children:e.loggedIn?n("models_alreadyConnected"):n("models_connectAccount",{provider:e.name})}),"connecting"===o.phase&&(0,r.jsx)("p",{style:{margin:0,fontSize:12,color:"var(--text-muted)"},children:n("models_openingBrowser")}),"select"===o.phase&&(0,r.jsxs)("div",{style:{display:"flex",flexDirection:"column",gap:10},children:[(0,r.jsx)("p",{style:{margin:0,fontSize:12,color:"var(--text-muted)",lineHeight:1.5},children:o.message}),(0,r.jsx)("div",{style:{display:"flex",flexDirection:"column",gap:6},children:o.options.map(e=>(0,r.jsx)("button",{onClick:()=>g(o.token,e.id),style:{padding:"6px 9px",background:"var(--bg)",border:"1px solid var(--border)",borderRadius:5,color:"var(--text)",cursor:"pointer",fontSize:12,textAlign:"left"},children:e.label},e.id))})]}),("auth"===o.phase||"prompt"===o.phase)&&(0,r.jsxs)("div",{style:{display:"flex",flexDirection:"column",gap:10},children:[(0,r.jsx)("p",{style:{margin:0,fontSize:12,color:"var(--text-muted)",lineHeight:1.5},children:"auth"===o.phase?n("models_redirectInstructions"):o.message}),"auth"===o.phase&&(0,r.jsxs)("p",{style:{margin:0,fontSize:11,color:"var(--text-dim)",lineHeight:1.5},children:[n("models_browserNotOpened")," ",(0,r.jsx)("a",{href:o.url,target:"_blank",rel:"noopener noreferrer",style:{color:"var(--accent)",wordBreak:"break-all"},children:n("models_openLoginPage")}),"."]}),(0,r.jsxs)("div",{style:{display:"flex",gap:6},children:[(0,r.jsx)("input",{ref:c,value:l,onChange:e=>a(e.target.value),onKeyDown:e=>{"Enter"===e.key&&h(o.token,l)},placeholder:"auth"===o.phase?"http://localhost:1455/auth/callback?code=…":o.placeholder??n("models_enterValue"),style:{flex:1,padding:"6px 9px",background:"var(--bg)",border:"1px solid var(--border)",borderRadius:5,color:"var(--text)",fontSize:12,outline:"none",fontFamily:"var(--font-mono)",boxSizing:"border-box"}}),(0,r.jsx)("button",{onClick:()=>h(o.token,l),disabled:!l.trim(),style:{padding:"6px 12px",background:l.trim()?"var(--accent)":"var(--bg-panel)",border:"none",borderRadius:5,color:l.trim()?"#fff":"var(--text-dim)",cursor:l.trim()?"pointer":"not-allowed",fontSize:12,fontWeight:600,flexShrink:0},children:n("models_submit")})]})]}),"device_code"===o.phase&&(0,r.jsxs)("div",{style:{display:"flex",flexDirection:"column",gap:10},children:[(0,r.jsx)("p",{style:{margin:0,fontSize:12,color:"var(--text-muted)",lineHeight:1.5},children:n("models_verifyPage")}),(0,r.jsx)("div",{style:{padding:"8px 10px",background:"var(--bg)",border:"1px solid var(--border)",borderRadius:5,color:"var(--text)",fontSize:16,fontWeight:700,fontFamily:"var(--font-mono)",letterSpacing:0},children:o.userCode}),(0,r.jsxs)("p",{style:{margin:0,fontSize:11,color:"var(--text-dim)",lineHeight:1.5},children:[(0,r.jsx)("a",{href:o.verificationUri,target:"_blank",rel:"noopener noreferrer",style:{color:"var(--accent)",wordBreak:"break-all"},children:o.verificationUri}),o.expiresInSeconds?` ${n("models_expiresIn",{minutes:Math.ceil(o.expiresInSeconds/60)})}`:""]})]}),"progress"===o.phase&&(0,r.jsx)("p",{style:{margin:0,fontSize:12,color:"var(--text-muted)"},children:o.message}),"success"===o.phase&&(0,r.jsx)("p",{style:{margin:0,fontSize:12,color:"var(--status-success)"},children:n("models_connectedSuccessfully")}),"error"===o.phase&&(0,r.jsx)("p",{style:{margin:0,fontSize:12,color:"var(--status-danger)"},children:o.message})]}),(0,r.jsx)("div",{style:{display:"flex",gap:8},children:f?(0,r.jsx)("button",{onClick:()=>{d.current?.close(),s({phase:"idle"})},style:{padding:"5px 12px",background:"none",border:"1px solid var(--border)",borderRadius:5,color:"var(--text-muted)",cursor:"pointer",fontSize:12},children:n("models_cancel")}):(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)("button",{onClick:u,style:{padding:"5px 14px",background:"var(--accent)",border:"none",borderRadius:5,color:"#fff",cursor:"pointer",fontSize:12,fontWeight:600},children:e.loggedIn?n("models_relogin"):n("models_login")}),e.loggedIn&&(0,r.jsx)("button",{onClick:p,style:{padding:"5px 12px",background:"none",border:"1px solid var(--status-danger-border)",borderRadius:5,color:"var(--status-danger)",cursor:"pointer",fontSize:12},children:n("models_disconnect")})]})})]})}function a$({provider:e,onRefresh:t}){let{t:n}=(0,ea.s9)(),[o,s]=(0,i.useState)(""),[l,a]=(0,i.useState)(!1),[d,c]=(0,i.useState)(!1),[u,p]=(0,i.useState)(null),[h,g]=(0,i.useState)(!1);(0,i.useEffect)(()=>{s(""),p(null),g(!1)},[e.id]);let f=(0,i.useCallback)(async()=>{if(o.trim()){a(!0),p(null),g(!1);try{let n=await fetch(`/api/auth/api-key/${encodeURIComponent(e.id)}`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({apiKey:o.trim()})}),r=await n.json();!n.ok||r.error?p(r.error??`HTTP ${n.status}`):(s(""),g(!0),setTimeout(()=>g(!1),2e3),t())}catch(e){p(String(e))}finally{a(!1)}}},[o,e.id,t]),x=(0,i.useCallback)(async()=>{c(!0),p(null);try{let n=await fetch(`/api/auth/api-key/${encodeURIComponent(e.id)}`,{method:"DELETE"}),r=await n.json();!n.ok||r.error?p(r.error??`HTTP ${n.status}`):t()}catch(e){p(String(e))}finally{c(!1)}},[e.id,t]);return(0,r.jsxs)("div",{style:{display:"flex",flexDirection:"column",gap:16},children:[(0,r.jsxs)("div",{style:{display:"flex",alignItems:"center",justifyContent:"space-between"},children:[(0,r.jsx)(ab,{children:n("models_apiKey")}),(0,r.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:6},children:[(0,r.jsx)("span",{style:{width:7,height:7,borderRadius:"50%",background:e.configured?"var(--status-success)":"var(--border)",display:"inline-block"}}),(0,r.jsx)("span",{style:{fontSize:11,color:e.configured?"var(--status-success)":"var(--text-dim)"},children:n(e.configured?"models_configured":"models_notConfigured")})]})]}),(0,r.jsx)("p",{style:{margin:0,fontSize:12,color:"var(--text-muted)",lineHeight:1.5},children:e.configured?n("models_keyStored"):n("models_enableModels",{provider:e.displayName,count:e.modelCount})}),(0,r.jsx)(ah,{label:n("models_apiKey"),children:(0,r.jsxs)("div",{style:{display:"flex",gap:6},children:[(0,r.jsx)(ax,{value:o,onChange:s,onKeyDown:e=>{"Enter"===e.key&&o.trim()&&f()},placeholder:e.configured?n("models_enterNewKey"):"sk-…",style:{flex:1},autoComplete:"off",spellCheck:!1,mono:!0}),(0,r.jsxs)("button",{onClick:f,disabled:l||!o.trim()||h,style:{padding:"6px 12px",background:h?"var(--status-success)":o.trim()?"var(--accent)":"var(--bg-panel)",border:"none",borderRadius:5,color:o.trim()||h?"#fff":"var(--text-dim)",cursor:l||!o.trim()||h?"not-allowed":"pointer",fontSize:12,fontWeight:600,flexShrink:0,display:"flex",alignItems:"center",gap:5},children:[h&&(0,r.jsx)("svg",{width:"12",height:"12",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"3",strokeLinecap:"round",strokeLinejoin:"round",children:(0,r.jsx)("polyline",{points:"20 6 9 17 4 12"})}),n(h?"common_saved":l?"models_saving":"common_save")]})]})}),u&&(0,r.jsx)("p",{style:{margin:0,fontSize:12,color:"var(--status-danger)"},children:u}),e.configured&&(0,r.jsx)("button",{onClick:x,disabled:d,style:{alignSelf:"flex-start",padding:"5px 12px",background:"none",border:"1px solid var(--status-danger-border)",borderRadius:5,color:"var(--status-danger)",cursor:d?"not-allowed":"pointer",fontSize:12},children:n(d?"models_removing":"models_disconnect")})]})}function aH({id:e,size:t}){let n=au[e];if(!n){let n=e.split(/[-_]/).filter(Boolean).slice(0,2).map(e=>e[0]).join("").toUpperCase()||"?";return(0,r.jsx)("span",{"aria-hidden":"true",style:{width:t,height:t,border:"1px solid var(--border)",borderRadius:4,color:"var(--text-dim)",display:"inline-flex",alignItems:"center",justifyContent:"center",flexShrink:0,fontSize:Math.max(8,Math.floor(.42*t)),fontWeight:700,lineHeight:1},children:n})}return n.hasColor?(0,r.jsx)(n.Icon,{size:t}):(0,r.jsx)(n.Icon,{size:t,style:{color:"var(--text-muted)"}})}function aF({oauthProviders:e,apiKeyProviders:t,onSelectOAuth:n,onSelectApiKey:o,onAddCustom:s,onClose:l,loading:a=!1,embedded:d=!1}){let{t:c}=(0,ea.s9)(),[u,p]=(0,i.useState)(""),h=(0,i.useRef)(null);(0,i.useEffect)(()=>{setTimeout(()=>h.current?.focus(),30)},[]);let g=u.trim().toLowerCase(),f=e.filter(e=>!e.loggedIn&&(!g||e.name.toLowerCase().includes(g))),x=t.filter(e=>!e.configured&&(!g||e.displayName.toLowerCase().includes(g)||e.id.toLowerCase().includes(g))),m=!g||"custom".includes(g)||"openai-compatible".includes(g)||"anthropic-compatible".includes(g),v=f.length+x.length+ +!!m,y={display:"flex",flexDirection:"row",alignItems:"center",gap:8,padding:"10px 12px",background:"var(--bg-panel)",border:"1px solid var(--border)",borderRadius:7,boxSizing:"border-box",cursor:"pointer",minWidth:0,textAlign:"left",transition:"border-color 0.12s, background 0.12s",width:"100%"};return(0,r.jsx)("div",{style:d?{position:"absolute",inset:0,zIndex:10,background:"rgba(0,0,0,0.4)",display:"flex",alignItems:"center",justifyContent:"center"}:{position:"fixed",inset:0,zIndex:1100,background:"rgba(0,0,0,0.4)",display:"flex",alignItems:"center",justifyContent:"center"},onClick:e=>{e.target===e.currentTarget&&l()},children:(0,r.jsxs)("div",{style:{width:820,maxWidth:"calc(100vw - 32px)",maxHeight:"min(72vh, calc(100vh - 32px))",background:"var(--bg)",border:"1px solid var(--border)",borderRadius:10,display:"flex",flexDirection:"column",boxShadow:"0 8px 32px rgba(0,0,0,0.22)",overflow:"hidden"},children:[(0,r.jsxs)("div",{style:{padding:"10px 14px",borderBottom:"1px solid var(--border)",flexShrink:0,display:"flex",alignItems:"center",gap:8},children:[(0,r.jsxs)("button",{type:"button",onClick:l,"aria-label":c("common_back"),style:{display:"inline-flex",alignItems:"center",gap:4,flexShrink:0,minHeight:28,padding:"0 8px",borderRadius:6,border:"1px solid var(--border)",background:"var(--bg-panel)",color:"var(--text-muted)",cursor:"pointer",fontSize:12},children:[(0,r.jsx)("svg",{width:"12",height:"12",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":"true",children:(0,r.jsx)("polyline",{points:"15 18 9 12 15 6"})}),c("common_back")]}),(0,r.jsxs)("svg",{width:"13",height:"13",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",style:{color:"var(--text-dim)",flexShrink:0},"aria-hidden":"true",children:[(0,r.jsx)("circle",{cx:"11",cy:"11",r:"8"}),(0,r.jsx)("line",{x1:"21",y1:"21",x2:"16.65",y2:"16.65"})]}),(0,r.jsx)("input",{ref:h,value:u,onChange:e=>p(e.target.value),onKeyDown:e=>{"Escape"===e.key&&(e.preventDefault(),l())},placeholder:c("models_searchProviders"),style:{flex:1,background:"none",border:"none",outline:"none",color:"var(--text)",fontSize:13,boxSizing:"border-box"}})]}),(0,r.jsx)("div",{style:{flex:1,overflowY:"auto",padding:14},children:a?(0,r.jsx)("div",{style:{padding:"20px 0",fontSize:12,color:"var(--text-muted)",textAlign:"center"},children:c("common_loading")}):0===v?(0,r.jsx)("div",{style:{padding:"20px 0",fontSize:12,color:"var(--text-dim)",textAlign:"center"},children:c("models_noProviders")}):(0,r.jsxs)("div",{style:{display:"grid",gridTemplateColumns:"repeat(auto-fit, minmax(min(240px, 100%), 1fr))",gap:8},children:[m&&(0,r.jsx)("div",{style:{gridColumn:"1 / -1",fontSize:10,fontWeight:600,color:"var(--text-dim)",textTransform:"uppercase",letterSpacing:"0.07em"},children:c("models_custom")}),m&&(0,r.jsxs)("button",{onClick:()=>{s(),l()},style:y,onMouseEnter:e=>{e.currentTarget.style.borderColor="var(--accent)",e.currentTarget.style.background="var(--bg-hover)"},onMouseLeave:e=>{e.currentTarget.style.borderColor="var(--border)",e.currentTarget.style.background="var(--bg-panel)"},children:[(0,r.jsxs)("div",{style:{flex:1,minWidth:0},children:[(0,r.jsx)("div",{style:{fontSize:12,fontWeight:600,color:"var(--text)",lineHeight:1.3,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:c("models_compatible")}),(0,r.jsx)("div",{style:{fontSize:10,color:"var(--text-dim)",marginTop:2},children:c("models_customEndpoint")})]}),(0,r.jsx)("span",{style:{width:26,height:26,borderRadius:5,background:"var(--bg-hover)",border:"1px dashed var(--border)",display:"flex",alignItems:"center",justifyContent:"center",flexShrink:0},children:(0,r.jsxs)("svg",{width:"13",height:"13",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",style:{color:"var(--text-dim)"},children:[(0,r.jsx)("line",{x1:"12",y1:"5",x2:"12",y2:"19"}),(0,r.jsx)("line",{x1:"5",y1:"12",x2:"19",y2:"12"})]})})]}),f.length>0&&(0,r.jsx)("div",{style:{gridColumn:"1 / -1",paddingTop:6*!!m,fontSize:10,fontWeight:600,color:"var(--text-dim)",textTransform:"uppercase",letterSpacing:"0.07em"},children:c("models_subscriptions")}),f.map(e=>(0,r.jsxs)("button",{onClick:()=>{n(e.id),l()},style:y,onMouseEnter:e=>{e.currentTarget.style.borderColor="var(--accent)",e.currentTarget.style.background="var(--bg-hover)"},onMouseLeave:e=>{e.currentTarget.style.borderColor="var(--border)",e.currentTarget.style.background="var(--bg-panel)"},children:[(0,r.jsxs)("div",{style:{flex:1,minWidth:0},children:[(0,r.jsx)("div",{style:{fontSize:12,fontWeight:600,color:"var(--text)",lineHeight:1.3,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:e.name}),(0,r.jsx)("div",{style:{fontSize:10,color:"var(--text-dim)",marginTop:2},children:"OAuth"})]}),(0,r.jsx)(aH,{id:e.id,size:28})]},e.id)),x.length>0&&(0,r.jsx)("div",{style:{gridColumn:"1 / -1",paddingTop:6*(f.length>0),fontSize:10,fontWeight:600,color:"var(--text-dim)",textTransform:"uppercase",letterSpacing:"0.07em"},children:c("models_apiKey")}),x.map(e=>(0,r.jsxs)("button",{onClick:()=>{o(e.id),l()},style:y,onMouseEnter:e=>{e.currentTarget.style.borderColor="var(--accent)",e.currentTarget.style.background="var(--bg-hover)"},onMouseLeave:e=>{e.currentTarget.style.borderColor="var(--border)",e.currentTarget.style.background="var(--bg-panel)"},children:[(0,r.jsxs)("div",{style:{flex:1,minWidth:0},children:[(0,r.jsx)("div",{style:{fontSize:12,fontWeight:600,color:"var(--text)",lineHeight:1.3,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:e.displayName}),(0,r.jsx)("div",{style:{fontSize:10,color:"var(--text-dim)",marginTop:2},children:c("models_authRequiredToViewModels")})]}),(0,r.jsx)(aH,{id:e.id,size:28})]},e.id))]})})]})})}function aD({onClose:e,embedded:t=!1,onAuthStateChange:n}){let{t:o}=(0,ea.s9)(),s=nv(),[l,a]=(0,i.useState)("basic"),[d,c]=(0,i.useState)({providers:{}}),[u,p]=(0,i.useState)(null),[h,g]=(0,i.useState)(!0),[f,x]=(0,i.useState)(!1),[m,v]=(0,i.useState)(null),[y,b]=(0,i.useState)(!1),[w,k]=(0,i.useState)(null),[j,S]=(0,i.useState)([]),[C,_]=(0,i.useState)([]),[I,R]=(0,i.useState)(!1),[T,M]=(0,i.useState)(!0),[E,z]=(0,i.useState)(!0),L=(0,i.useCallback)(()=>{M(!0),fetch("/api/auth/providers").then(e=>e.json()).then(e=>S(e.providers)).catch(()=>{}).finally(()=>M(!1))},[]),W=(0,i.useCallback)(()=>{z(!0),fetch("/api/auth/all-providers").then(e=>e.json()).then(e=>_(e.providers)).catch(()=>{}).finally(()=>z(!1))},[]);(0,i.useEffect)(()=>{fetch("/api/models-config").then(e=>e.json()).then(e=>{let{baseline:t,...n}=e,r=n.providers?n:{...n,providers:{}};c(r),p(t??null);let i=Object.keys(r.providers??{});i.length>0&&!s&&k({type:"provider",name:i[0]})}).catch(()=>{c({providers:{}}),p(null)}).finally(()=>g(!1)),L(),W()},[L,W]),(0,i.useEffect)(()=>{if("basic"!==l)return;let e=!1;return fetch("/api/models-config").then(e=>e.json()).then(t=>{if(e)return;let{baseline:n,...r}=t;c(r.providers?r:{...r,providers:{}}),n&&p(n)}).catch(()=>void 0),()=>{e=!0}},[l]);let A=(0,i.useCallback)(()=>{L(),W(),n?.()},[L,W,n]),P=(0,i.useCallback)(()=>{let e="new-provider",t=1;for(;d.providers?.[e];)e=`new-provider-${t++}`;c(t=>({...t,providers:{...t.providers??{},[e]:{api:"openai-completions"}}})),k({type:"provider",name:e})},[d.providers]),$=(0,i.useCallback)((e,t)=>{c(n=>({...n,providers:{...n.providers??{},[e]:t}}))},[]),H=(0,i.useCallback)((e,t)=>{c(n=>{let r=Object.entries(n.providers??{}),i=r.findIndex(([t])=>t===e);return -1===i?n:(r[i]=[t,r[i][1]],{...n,providers:Object.fromEntries(r)})}),k(n=>n?"provider"===n.type&&n.name===e?{type:"provider",name:t}:"model"===n.type&&n.providerName===e?{...n,providerName:t}:n:n)},[]),F=(0,i.useCallback)(e=>{c(t=>{let n={...t.providers??{}};return delete n[e],{...t,providers:n}}),c(e=>{let t=Object.keys(e.providers??{});return s?k(null):k(t.length>0?{type:"provider",name:t[0]}:null),e})},[s]),D=(0,i.useCallback)(e=>{c(t=>{let n=t.providers?.[e]??{},r=[...n.models??[],{id:""}];return{...t,providers:{...t.providers??{},[e]:{...n,models:r}}}}),c(t=>{let n=(t.providers?.[e]?.models?.length??1)-1;return k({type:"model",providerName:e,index:n}),t})},[]),N=(0,i.useCallback)((e,t,n)=>{c(r=>{let i=r.providers?.[e]??{},o=[...i.models??[]];return o[t]=n,{...r,providers:{...r.providers??{},[e]:{...i,models:o}}}})},[]),B=(0,i.useCallback)((e,t)=>{c(n=>{let r=n.providers?.[e]??{},i=[...r.models??[]];return i.splice(t,1),{...n,providers:{...n.providers??{},[e]:{...r,models:i.length?i:void 0}}}}),k({type:"provider",name:e})},[]),O=(0,i.useCallback)(async()=>{x(!0),v(null),b(!1);try{let e=await fetch("/api/models-config",{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify({...d,baseline:u})}),t=await e.json();!e.ok||t.error?v(t.error??`HTTP ${e.status}`):(b(!0),t.baseline&&p(t.baseline),setTimeout(()=>b(!1),2e3))}catch(e){v(String(e))}finally{x(!1)}},[d,u]),U=Object.entries(d.providers??{}),q=j.filter(e=>e.loggedIn),K=C.filter(e=>e.configured),V=(()=>{if(!w)return null;if("oauth"===w.type){if(T)return(0,r.jsx)("div",{style:{padding:20,fontSize:12,color:"var(--text-muted)"},children:o("common_loading")});let e=j.find(e=>e.id===w.providerId);return e?(0,r.jsx)(aP,{provider:e,onRefresh:A},e.id):null}if("apikey"===w.type){if(E)return(0,r.jsx)("div",{style:{padding:20,fontSize:12,color:"var(--text-muted)"},children:o("common_loading")});let e=C.find(e=>e.id===w.providerId);return e?(0,r.jsx)(a$,{provider:e,onRefresh:A},e.id):null}if("provider"===w.type){let e=d.providers?.[w.name];return e?(0,r.jsx)(aM,{name:w.name,provider:e,onChange:e=>$(w.name,e),onRename:e=>H(w.name,e),onDelete:()=>F(w.name)},w.name):null}let e=d.providers?.[w.providerName],t=e?.models?.[w.index];return t?(0,r.jsx)(aA,{providerName:w.providerName,provider:e,model:t,onChange:e=>N(w.providerName,w.index,e),onDelete:()=>B(w.providerName,w.index)},`${w.providerName}-${w.index}`):null})();return(0,r.jsxs)("div",{style:t?{position:"relative",display:"flex",flexDirection:"column",height:"100%",minHeight:0,overflow:"hidden"}:{position:"fixed",inset:0,zIndex:1e3,background:"rgba(0,0,0,0.35)",display:"flex",alignItems:"center",justifyContent:"center"},onClick:t?void 0:t=>{t.target===t.currentTarget&&e()},children:[(0,r.jsxs)("div",{style:t?{display:"flex",flexDirection:"column",height:"100%",minHeight:0,background:"var(--bg)",overflow:"hidden"}:{width:s?"calc(100vw - 16px)":860,maxWidth:"calc(100vw - 16px)",height:s?"calc(100dvh - 16px)":"78vh",maxHeight:"calc(100dvh - 16px)",background:"var(--bg)",border:"1px solid var(--border)",borderRadius:10,display:"flex",flexDirection:"column",boxShadow:"0 8px 32px rgba(0,0,0,0.18)",overflow:"hidden"},children:[!t&&(0,r.jsxs)("div",{style:{display:"flex",alignItems:"center",justifyContent:"space-between",padding:"12px 18px",borderBottom:"1px solid var(--border)",flexShrink:0},children:[(0,r.jsx)("span",{style:{fontSize:15,fontWeight:700,color:"var(--text)"},children:o("models_modelsTitle")}),(0,r.jsx)("button",{onClick:e,style:{background:"none",border:"none",color:"var(--text-muted)",cursor:"pointer",fontSize:20,lineHeight:1,padding:"2px 6px"},children:"\xd7"})]}),(0,r.jsxs)("div",{style:{flexShrink:0,padding:"12px 16px 0",display:"flex",gap:8,flexWrap:"wrap",borderBottom:"json"===l?"none":void 0},children:[(0,r.jsx)("button",{type:"button",onClick:()=>a("basic"),style:{minHeight:28,padding:"0 12px",borderRadius:6,border:"1px solid var(--border)",background:"basic"===l?"var(--bg-selected)":"var(--bg-panel)",color:"basic"===l?"var(--text)":"var(--text-muted)",cursor:"pointer",fontSize:12,fontWeight:"basic"===l?600:400},"aria-current":"basic"===l?"page":void 0,children:o("defaults_basicTab")}),(0,r.jsx)("button",{type:"button",onClick:()=>a("json"),style:{minHeight:28,padding:"0 12px",borderRadius:6,border:"1px solid var(--border)",background:"json"===l?"var(--bg-selected)":"var(--bg-panel)",color:"json"===l?"var(--text)":"var(--text-muted)",cursor:"pointer",fontSize:12,fontWeight:"json"===l?600:400},"aria-current":"json"===l?"page":void 0,children:o("defaults_jsonTab")})]}),"json"===l?(0,r.jsx)("div",{style:{flex:1,minHeight:0,display:"flex",flexDirection:"column"},children:(0,r.jsx)(lU,{stickyFooter:!0,onClose:e,apiPath:"/api/models-config/raw",fixedHint:"~/.pi/agent/models.json",titleLabel:o("defaults_jsonTab"),fileLabel:"models.json"})}):(0,r.jsxs)(r.Fragment,{children:[(0,r.jsxs)("div",{style:{flex:1,display:"flex",flexDirection:s?"column":"row",overflow:"hidden"},children:[(0,r.jsxs)("div",{style:{width:s?"100%":210,borderRight:s?"none":"1px solid var(--border)",borderBottom:s?"1px solid var(--border)":"none",flexDirection:"column",background:"var(--bg-panel)",...s?{display:w?"none":"flex",flex:1,minHeight:0}:{display:"flex",flexShrink:0}},children:[(0,r.jsxs)("div",{style:{flex:1,overflowY:"auto",padding:"8px 6px"},children:[(T||E)&&(0,r.jsx)("div",{style:{padding:"10px 8px",fontSize:12,color:"var(--text-muted)"},children:o("common_loading")}),q.map(e=>{let t=w?.type==="oauth"&&w.providerId===e.id;return(0,r.jsxs)("div",{onClick:()=>k({type:"oauth",providerId:e.id}),style:{display:"flex",alignItems:"center",gap:7,padding:"5px 8px",borderRadius:5,cursor:"pointer",background:t?"var(--bg-selected)":"none"},onMouseEnter:e=>{t||(e.currentTarget.style.background="var(--bg-hover)")},onMouseLeave:e=>{t||(e.currentTarget.style.background="none")},children:[(0,r.jsx)(aH,{id:e.id,size:16}),(0,r.jsx)("span",{style:{fontSize:12,color:"var(--text)",flex:1,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:e.name})]},e.id)}),K.map(e=>{let t=w?.type==="apikey"&&w.providerId===e.id;return(0,r.jsxs)("div",{onClick:()=>k({type:"apikey",providerId:e.id}),style:{display:"flex",alignItems:"center",gap:7,padding:"5px 8px",borderRadius:5,cursor:"pointer",background:t?"var(--bg-selected)":"none"},onMouseEnter:e=>{t||(e.currentTarget.style.background="var(--bg-hover)")},onMouseLeave:e=>{t||(e.currentTarget.style.background="none")},children:[(0,r.jsx)(aH,{id:e.id,size:16}),(0,r.jsx)("span",{style:{fontSize:12,color:"var(--text)",flex:1,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:e.displayName})]},e.id)}),(q.length>0||K.length>0)&&U.length>0&&(0,r.jsx)("div",{style:{margin:"4px 8px",borderTop:"1px solid var(--border)"}}),h?(0,r.jsx)("div",{style:{padding:"10px 8px",fontSize:12,color:"var(--text-muted)"},children:o("common_loading")}):U.map(([e,t])=>{let n=w?.type==="provider"&&w.name===e,i=t.models??[];return(0,r.jsxs)("div",{style:{marginBottom:2},children:[(0,r.jsxs)("div",{onClick:()=>k({type:"provider",name:e}),style:{display:"flex",alignItems:"center",gap:6,padding:"7px 8px",borderRadius:5,cursor:"pointer",background:n?"var(--bg-selected)":"none"},onMouseEnter:e=>{n||(e.currentTarget.style.background="var(--bg-hover)")},onMouseLeave:e=>{n||(e.currentTarget.style.background="none")},children:[(0,r.jsxs)("svg",{width:"11",height:"11",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",style:{color:"var(--text-dim)",flexShrink:0},children:[(0,r.jsx)("rect",{x:"4",y:"4",width:"16",height:"16",rx:"2"}),(0,r.jsx)("rect",{x:"9",y:"9",width:"6",height:"6"}),(0,r.jsx)("line",{x1:"9",y1:"1",x2:"9",y2:"4"}),(0,r.jsx)("line",{x1:"15",y1:"1",x2:"15",y2:"4"}),(0,r.jsx)("line",{x1:"9",y1:"20",x2:"9",y2:"23"}),(0,r.jsx)("line",{x1:"15",y1:"20",x2:"15",y2:"23"}),(0,r.jsx)("line",{x1:"20",y1:"9",x2:"23",y2:"9"}),(0,r.jsx)("line",{x1:"20",y1:"14",x2:"23",y2:"14"}),(0,r.jsx)("line",{x1:"1",y1:"9",x2:"4",y2:"9"}),(0,r.jsx)("line",{x1:"1",y1:"14",x2:"4",y2:"14"})]}),(0,r.jsx)("span",{style:{fontSize:12,fontWeight:n?600:400,color:"var(--text)",fontFamily:"var(--font-mono)",flex:1,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:e})]}),i.map((t,n)=>{var i;let s=w?.type==="model"&&w.providerName===e&&w.index===n;return(0,r.jsxs)("div",{onClick:()=>k({type:"model",providerName:e,index:n}),style:{display:"flex",alignItems:"center",gap:6,padding:"5px 8px 5px 26px",borderRadius:5,cursor:"pointer",background:s?"var(--bg-selected)":"none"},onMouseEnter:e=>{s||(e.currentTarget.style.background="var(--bg-hover)")},onMouseLeave:e=>{s||(e.currentTarget.style.background="none")},children:[(0,r.jsx)("span",{style:{fontSize:11,fontFamily:"var(--font-mono)",color:t.id?"var(--text-muted)":"var(--text-dim)",flex:1,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:t.id||o("models_newModel")}),"number"==typeof t.contextWindow&&Number.isFinite(t.contextWindow)?(0,r.jsx)("span",{style:{fontSize:10,color:"var(--text-dim)",fontFamily:"var(--font-mono)",flexShrink:0},children:(i=t.contextWindow)>=1e6?`${(i/1e6).toFixed(+(i%1e6!=0))}M`:i>=1e3?`${Math.round(i/1e3)}k`:String(i)}):null]},n)}),(0,r.jsx)("button",{type:"button",onClick:t=>{t.stopPropagation(),D(e)},"aria-label":o("models_addModel",{provider:e}),title:o("models_addModel",{provider:e}),style:{display:"flex",alignItems:"center",width:"100%",padding:"4px 8px 4px 26px",borderRadius:5,border:"none",background:"none",cursor:"pointer",color:"var(--text-dim)",boxSizing:"border-box"},onMouseEnter:e=>{e.currentTarget.style.color="var(--accent)",e.currentTarget.style.background="var(--bg-hover)"},onMouseLeave:e=>{e.currentTarget.style.color="var(--text-dim)",e.currentTarget.style.background="none"},children:(0,r.jsx)(rp.A,{size:13,"aria-hidden":!0})})]},e)})]}),(0,r.jsx)("div",{style:{borderTop:"1px solid var(--border)",padding:"8px 6px"},children:(0,r.jsx)("button",{type:"button",onClick:()=>R(!0),"aria-label":o("models_addProvider"),style:{display:"flex",alignItems:"center",justifyContent:"center",width:"100%",minHeight:30,padding:"0 8px",borderRadius:7,border:"1px solid var(--border)",background:I?"var(--bg-selected)":"var(--bg-panel)",color:I?"var(--accent)":"var(--text-muted)",cursor:"pointer",fontSize:12,fontWeight:500},children:o("models_addProvider")})})]}),(0,r.jsxs)("div",{style:{flex:1,overflowY:"auto",padding:20,display:s&&!w?"none":void 0},children:[s&&w&&(0,r.jsxs)("button",{type:"button",onClick:()=>k(null),style:{display:"flex",alignItems:"center",gap:5,minHeight:32,padding:"0 10px",marginBottom:12,borderRadius:7,border:"1px solid var(--border)",background:"var(--bg-panel)",color:"var(--text-muted)",cursor:"pointer",fontSize:12},children:[(0,r.jsx)("svg",{width:"12",height:"12",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":"true",children:(0,r.jsx)("polyline",{points:"15 18 9 12 15 6"})}),o("common_back")]}),h?null:V??(0,r.jsx)("div",{style:{height:"100%",display:"flex",alignItems:"center",justifyContent:"center",color:"var(--text-dim)",fontSize:13},children:o("models_selectDetail")})]})]}),(0,r.jsx)(lO,{fixedHint:"~/.pi/agent/models.json",dynamicHint:m?(0,r.jsx)("span",{style:{color:"var(--status-danger)"},children:m}):y?(0,r.jsx)("span",{style:{color:"var(--accent)"},children:o("common_saved")}):null,onClose:e,children:(0,r.jsx)("button",{type:"button",onClick:O,disabled:f||y,style:lD(!(f||y)),children:y?o("common_saved"):f?o("models_saving"):o("common_save")})})]})]}),I&&(0,r.jsx)(aF,{oauthProviders:j,apiKeyProviders:C,onSelectOAuth:e=>k({type:"oauth",providerId:e}),onSelectApiKey:e=>k({type:"apikey",providerId:e}),onAddCustom:P,onClose:()=>R(!1),loading:T||E,embedded:t})]})}var aN=n(25344),aB=n(68459);function aO(e){let t=e.sourceInfo?.source,n=e.sourceInfo?.scope;return"user"===n||"user"===t?"global":"project"===n||"project"===t?"project":"path"}function aU(e){return e.install?`${e.install.scope}\0${e.install.package}`:null}function aq(e){return e?e.slice(0,8):null}function aK({enabled:e,loading:t,onToggle:n}){let{t:i}=(0,ea.s9)();return(0,r.jsx)("button",{onClick:n,disabled:t,title:i(e?"skills_visible":"skills_hidden"),style:{flexShrink:0,width:40,height:22,borderRadius:11,border:"none",padding:0,cursor:t?"wait":"pointer",background:e?"var(--accent)":"var(--border)",position:"relative",transition:"background 0.18s",outline:"none"},children:(0,r.jsx)("span",{style:{position:"absolute",top:3,left:e?21:3,width:16,height:16,borderRadius:"50%",background:"var(--bg)",boxShadow:"0 1px 4px rgba(0,0,0,0.22)",transition:"left 0.18s cubic-bezier(.4,0,.2,1)"}})})}function aV({skill:e,cwd:t,onToggle:n,toggling:i,saveError:o,updateStatus:s,updating:l,updateError:a,onUpdate:d,onRemove:c,locked:u,onToggleLock:p}){let{t:h}=(0,ea.s9)(),g=aO(e),f=!e.disableModelInvocation,x=!!e.install?.canCheckForUpdates,m=s?.state==="update-available",v=(()=>{let t=aq(s?.currentVersion??e.install?.versionHash)??h("skills_unknownVersion");if(m){let e=aq(s?.latestVersion)??"?";return`${t} → ${e}`}return t})();return(0,r.jsxs)("div",{style:{display:"flex",flexDirection:"column",gap:20,maxWidth:680},children:[(0,r.jsxs)("div",{style:{display:"flex",alignItems:"flex-start",justifyContent:"space-between",gap:12,flexWrap:"wrap"},children:[(0,r.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:8,minWidth:0,flex:1},children:[(0,r.jsx)(aK,{enabled:f,loading:i,onToggle:()=>n(e)}),(0,r.jsx)("span",{style:{fontSize:10,padding:"1px 5px",borderRadius:3,flexShrink:0,background:"project"===g?"rgba(99,102,241,0.12)":"rgba(120,120,120,0.12)",color:"project"===g?"rgba(99,102,241,0.8)":"var(--text-dim)"},children:"global"===g?h("common_global"):"project"===g?h("common_project"):h("skills_path")}),(0,r.jsx)("span",{style:{fontFamily:"var(--font-mono)",fontSize:13,color:"var(--text)",fontWeight:600,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:e.name})]}),(0,r.jsxs)("div",{style:{display:"flex",gap:8,flexWrap:"wrap",alignItems:"center"},children:[x&&(0,r.jsxs)("label",{title:h("skills_lockVersionHint"),style:{display:"inline-flex",alignItems:"center",gap:5,fontSize:11,color:"var(--text-muted)",cursor:"pointer",padding:"4px 6px",borderRadius:6,border:"1px solid var(--border)"},children:[(0,r.jsx)("input",{type:"checkbox",checked:u,onChange:p}),h("skills_lockVersion")]}),m&&!u&&(0,r.jsx)("button",{type:"button",onClick:d,disabled:l,title:l?h("skills_updating"):h("skills_update"),"aria-label":l?h("skills_updating"):h("skills_update"),style:{display:"inline-flex",alignItems:"center",justifyContent:"center",width:32,height:32,borderRadius:7,border:"1px solid var(--border)",background:"var(--bg-panel)",color:"var(--accent)",cursor:l?"not-allowed":"pointer"},children:l?(0,r.jsx)(l$.A,{size:13,className:"animate-spin","aria-hidden":!0}):(0,r.jsx)(aN.A,{size:13,"aria-hidden":!0})}),(0,r.jsx)("button",{type:"button",onClick:()=>{window.confirm(h("skills_confirmRemove",{name:e.name}))&&c()},disabled:i||l,title:h("common_remove"),"aria-label":h("common_remove"),style:lB(!(i||l)),children:(0,r.jsx)(aB.A,{size:13,"aria-hidden":!0})})]})]}),e.description&&(0,r.jsx)("div",{style:{fontSize:12,color:"var(--text-muted)",lineHeight:1.5},children:e.description}),e.install&&(0,r.jsxs)("div",{style:{display:"grid",gridTemplateColumns:"minmax(72px, 100px) minmax(0, 1fr)",gap:"8px 12px",fontSize:12},children:[(0,r.jsx)("div",{style:{color:"var(--text-dim)"},children:h("common_version")}),(0,r.jsx)("div",{style:{color:m?"var(--status-warning)":"var(--text-muted)",fontFamily:"var(--font-mono)"},children:v}),e.install.package&&(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)("div",{style:{color:"var(--text-dim)"},children:h("plugins_package")}),(0,r.jsx)("div",{style:{color:"var(--text-muted)",fontFamily:"var(--font-mono)",overflowWrap:"anywhere"},children:e.install.package})]})]}),(o||a)&&(0,r.jsx)("div",{style:{fontSize:12,color:"var(--status-danger)"},children:o||a})]})}function aJ({cwd:e,installedPackages:t,onInstalled:n}){let{t:o}=(0,ea.s9)(),[s,l]=(0,i.useState)(""),[a,d]=(0,i.useState)([]),[c,u]=(0,i.useState)(!1),[p,h]=(0,i.useState)(null),[g,f]=(0,i.useState)(null),[x,m]=(0,i.useState)(null),[v,y]=(0,i.useState)(new Set),[b,w]=(0,i.useState)("global"),k=(0,i.useRef)(null);(0,i.useEffect)(()=>{k.current?.focus()},[]);let j=(0,i.useCallback)(async e=>{if(e.trim()){u(!0),h(null),d([]);try{let t=await fetch("/api/skills/search",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({query:e.trim()})}),n=await t.json();if(n.error)return void h(n.error);d(n.results??[]),0===(n.results??[]).length&&h(o("skills_noResults"))}catch(e){h(String(e))}finally{u(!1)}}},[o]),S=(0,i.useCallback)(async t=>{f(t),m(null);try{let r=await fetch("/api/skills/install",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({package:t,scope:b,cwd:e})}),i=await r.json();if(!r.ok||i.error)return void m(i.error??`HTTP ${r.status}`);y(e=>new Set(e).add(`${b}:${t}`)),n()}catch(e){m(String(e))}finally{f(null)}},[n,b,e]),C="global"===b?"~/.pi/agent/skills/":`${n2(e)}/.pi/skills/`;return(0,r.jsxs)("div",{style:{display:"flex",flexDirection:"column",height:"100%"},children:[(0,r.jsxs)("div",{style:{display:"flex",flexDirection:"column",gap:12,marginBottom:20},children:[(0,r.jsx)("div",{style:{fontSize:14,fontWeight:600,color:"var(--text)"},children:o("skills_add")}),(0,r.jsxs)("div",{style:{display:"flex",gap:8},children:[(0,r.jsx)("input",{ref:k,value:s,onChange:e=>l(e.target.value),onKeyDown:e=>{"Enter"===e.key&&j(s)},placeholder:"e.g. react, testing, deploy",style:{flex:1,padding:"7px 10px",fontSize:13,background:"var(--bg-panel)",border:"1px solid var(--border)",borderRadius:6,color:"var(--text)",outline:"none"}}),(0,r.jsx)("button",{onClick:()=>j(s),disabled:c||!s.trim(),style:{padding:"7px 16px",fontSize:13,borderRadius:6,border:"none",background:"var(--accent)",color:"#fff",cursor:c||!s.trim()?"not-allowed":"pointer",opacity:c||!s.trim()?.5:1,flexShrink:0},children:c?o("skills_searching"):o("common_search")})]}),(0,r.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:10},children:[(0,r.jsx)("div",{style:{display:"flex",borderRadius:5,border:"1px solid var(--border)",overflow:"hidden",fontSize:12,flexShrink:0},children:["global","project"].map(e=>(0,r.jsx)("button",{onClick:()=>w(e),style:{padding:"3px 10px",border:"none",cursor:"pointer",background:b===e?"var(--bg-selected)":"none",color:b===e?"var(--text)":"var(--text-dim)",fontWeight:b===e?600:400,borderRight:"global"===e?"1px solid var(--border)":"none"},children:"global"===e?o("common_global"):o("common_project")},e))}),(0,r.jsxs)("span",{style:{fontSize:12,color:"var(--text-dim)",fontFamily:"var(--font-mono)",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:["→ ",C]})]}),p&&(0,r.jsx)("div",{style:{fontSize:12,color:"var(--status-danger)"},children:p}),x&&(0,r.jsx)("div",{style:{fontSize:12,color:"var(--status-danger)",wordBreak:"break-word"},children:x})]}),a.length>0?(0,r.jsx)("div",{style:{flex:1,overflowY:"auto"},children:a.map(e=>{let n=t[b].has(e.package)||v.has(`${b}:${e.package}`),i=g===e.package,s=e.package.indexOf("@"),l=s>-1?e.package.slice(0,s):e.package,a=s>-1?e.package.slice(s+1):null;return(0,r.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:14,padding:"12px 0",borderBottom:"1px solid var(--border)"},children:[(0,r.jsxs)("div",{style:{flex:1,minWidth:0},children:[(0,r.jsx)("div",{style:{fontSize:13,fontWeight:600,color:"var(--text)",marginBottom:3},children:a??l}),(0,r.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:10,flexWrap:"wrap"},children:[(0,r.jsx)("span",{style:{fontFamily:"var(--font-mono)",fontSize:11,color:"var(--text-dim)"},children:l}),(0,r.jsx)("span",{style:{fontSize:12,color:"var(--text-muted)",fontWeight:500},children:e.installs}),e.url&&(0,r.jsx)("a",{href:e.url,target:"_blank",rel:"noreferrer",style:{fontSize:12,color:"var(--accent)",textDecoration:"none"},children:"skills.sh ↗"})]})]}),(0,r.jsx)("button",{onClick:()=>!n&&!i&&S(e.package),disabled:n||i||null!==g,style:{flexShrink:0,padding:"5px 14px",fontSize:12,fontWeight:500,borderRadius:5,border:"1px solid var(--border)",cursor:n||i||null!==g?"not-allowed":"pointer",background:n?"var(--status-success-bg)":"none",color:n?"var(--status-success)":i?"var(--accent)":"var(--text-muted)",transition:"color 0.12s"},children:n?`✓ ${o("skills_installed")}`:i?o("skills_installing"):o("common_install")})]},e.package)})}):!p&&!c&&(0,r.jsxs)("div",{style:{fontSize:13,color:"var(--text-dim)",lineHeight:1.8},children:[o("skills_discoverPrefix")," ",(0,r.jsx)("a",{href:"https://skills.sh",target:"_blank",rel:"noreferrer",style:{color:"var(--accent)",textDecoration:"none"},children:"skills.sh"})," ",o("skills_discoverSuffix")]})]})}function aY({cwd:e,onClose:t,embedded:n=!1,globalOnly:o=!1}){let{t:s}=(0,ea.s9)(),l=nv(),[a,d]=(0,i.useState)([]),[c,u]=(0,i.useState)(!0),[p,h]=(0,i.useState)(null),[g,f]=(0,i.useState)(null),[x,m]=(0,i.useState)(new Set),[v,y]=(0,i.useState)(null),[b,w]=(0,i.useState)(!1),k=b||null!==g,[j,S]=(0,i.useState)({}),[C,_]=(0,i.useState)(new Set),[I,R]=(0,i.useState)(!1),[T,M]=(0,i.useState)(null),[E,z]=(0,i.useState)(null),[L,W]=(0,i.useState)(()=>{let e=(0,Z.b3)("skillLocks");return e&&"object"==typeof e?{...e}:{}}),A=(0,i.useCallback)(e=>{W(t=>{let n={...t,[e]:!t[e]};return(0,Z.dM)("skillLocks",n),n})},[]),P=(0,i.useCallback)(async()=>{u(!0),h(null);try{let t=await fetch(`/api/skills?cwd=${encodeURIComponent(e)}`),n=await t.json();if(!t.ok||n.error)throw Error(n.error??`HTTP ${t.status}`);let r=(n.skills??[]).filter(e=>!o||e.sourceInfo?.scope!=="project");return d(r),!(r.length>0)||g||l||f(r[0].filePath),r}catch(e){return h(String(e)),[]}finally{u(!1)}},[e,g]);(0,i.useEffect)(()=>{S({}),z(null),P()},[e]);let $=(0,i.useCallback)(async t=>{let n=(t?[t]:a.filter(e=>{if(!e.install)return!1;let t=aU(e);return!!t&&!L[t]})).map(aU).filter(e=>!!e);if(0!==n.length){z(null),_(e=>new Set([...e,...n])),t||R(!0);try{let n=await fetch("/api/skills/check",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({cwd:e,package:t?.install?.package,scope:t?.install?.scope})}),r=await n.json();if(!n.ok||r.error)throw Error(r.error??`HTTP ${n.status}`);S(e=>{let t={...e};for(let e of r.updates??[])t[`${e.scope}\0${e.package}`]=e;return t})}catch(e){z(e instanceof Error?e.message:String(e))}finally{_(e=>{let t=new Set(e);for(let e of n)t.delete(e);return t}),t||R(!1)}}},[e,a,L]),H=(0,i.useCallback)(async t=>{if(!t.install)return;let n=aU(t);M(n),z(null);try{let r=await fetch("/api/skills/update",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({cwd:e,package:t.install.package,scope:t.install.scope})}),i=await r.json();if(!r.ok||i.error||!i.success)throw Error(i.error??`HTTP ${r.status}`);await P();let o=i.skill?.install?.versionHash;S(e=>({...e,[n]:{package:t.install.package,scope:t.install.scope,state:"up-to-date",currentVersion:o,latestVersion:o}}))}catch(e){z(e instanceof Error?e.message:String(e))}finally{M(null)}},[e,P]),F=(0,i.useCallback)(async t=>{y(null);try{let n=await fetch("/api/skills",{method:"DELETE",headers:{"Content-Type":"application/json"},body:JSON.stringify({cwd:e,filePath:t.filePath})}),r=await n.json();if(!n.ok||r.error)throw Error(r.error??`HTTP ${n.status}`);f(null),await P()}catch(e){y(e instanceof Error?e.message:String(e))}},[e,P]),D=(0,i.useCallback)(async t=>{let n=!t.disableModelInvocation;m(e=>new Set(e).add(t.filePath)),y(null);try{let r=await fetch("/api/skills",{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify({cwd:e,filePath:t.filePath,disableModelInvocation:n})}),i=await r.json();if(!r.ok||i.error)return void y(i.error??`HTTP ${r.status}`);d(e=>e.map(e=>e.filePath===t.filePath?{...e,disableModelInvocation:n}:e))}catch(e){y(String(e))}finally{m(e=>{let n=new Set(e);return n.delete(t.filePath),n})}},[]),N=a.find(e=>e.filePath===g)??null;return(0,r.jsx)("div",{style:n?{position:"relative",display:"flex",flexDirection:"column",height:"100%",minHeight:0,overflow:"hidden"}:{position:"fixed",inset:0,zIndex:1e3,background:"rgba(0,0,0,0.35)",display:"flex",alignItems:"center",justifyContent:"center"},onClick:n?void 0:e=>{e.target===e.currentTarget&&t()},children:(0,r.jsxs)("div",{style:n?{display:"flex",flexDirection:"column",height:"100%",minHeight:0,background:"var(--bg)",overflow:"hidden"}:{width:l?"calc(100vw - 16px)":860,maxWidth:"calc(100vw - 16px)",height:l?"calc(100dvh - 16px)":"78vh",maxHeight:"calc(100dvh - 16px)",background:"var(--bg)",border:"1px solid var(--border)",borderRadius:10,display:"flex",flexDirection:"column",boxShadow:"0 8px 32px rgba(0,0,0,0.18)",overflow:"hidden"},children:[!n&&(0,r.jsxs)("div",{style:{display:"flex",alignItems:"center",justifyContent:"space-between",padding:"12px 18px",borderBottom:"1px solid var(--border)",flexShrink:0},children:[(0,r.jsx)("span",{style:{fontSize:15,fontWeight:700,color:"var(--text)"},children:s("common_skills")}),(0,r.jsx)("button",{onClick:t,style:{background:"none",border:"none",color:"var(--text-muted)",cursor:"pointer",fontSize:20,lineHeight:1,padding:"2px 6px"},children:"\xd7"})]}),(0,r.jsxs)("div",{style:{flex:1,display:"flex",flexDirection:l?"column":"row",overflow:"hidden"},children:[(0,r.jsxs)("div",{style:{width:l?"100%":245,borderRight:l?"none":"1px solid var(--border)",display:l&&k?"none":"flex",flexDirection:"column",...l?{flex:1,minHeight:0}:{flexShrink:0},background:"var(--bg-panel)"},children:[(0,r.jsx)("div",{style:{flex:1,overflowY:"auto",padding:"8px 6px"},children:c?(0,r.jsx)("div",{style:{padding:"10px 8px",fontSize:12,color:"var(--text-muted)"},children:s("skills_loading")}):p?(0,r.jsx)("div",{style:{padding:"10px 8px",fontSize:11,color:"var(--status-danger)"},children:p}):0===a.length?(0,r.jsx)("div",{style:{padding:"10px 8px",fontSize:11,color:"var(--text-dim)"},children:s("skills_noResults")}):(()=>{let e=[];for(let{label:t,matches:n}of[{label:"project / skills.sh",matches:e=>"project"===aO(e)&&!!e.install?.skillsShUrl},{label:"project",matches:e=>"project"===aO(e)&&!e.install?.skillsShUrl},{label:"global / skills.sh",matches:e=>"global"===aO(e)&&!!e.install?.skillsShUrl},{label:"global",matches:e=>"global"===aO(e)&&!e.install?.skillsShUrl},{label:"path",matches:e=>"path"===aO(e)}]){let r=a.filter(n);r.length>0&&e.push({label:t,skills:r})}return e.map(({label:e,skills:t})=>{let n;return(0,r.jsxs)("div",{style:{marginBottom:6},children:[(0,r.jsx)("div",{style:{padding:"4px 8px 3px",fontSize:10,fontWeight:600,color:"var(--text-dim)",textTransform:"uppercase"},children:(n=e.startsWith("project")?s("common_project"):e.startsWith("global")?s("common_global"):s("skills_path"),e.endsWith("skills.sh")?`${n} / skills.sh`:n)}),t.map(e=>{let t=!b&&g===e.filePath,n=e.disableModelInvocation,i=aU(e),o=i?j[i]:void 0,s=o?.state==="update-available",l=aq(e.install?.versionHash);return(0,r.jsx)("div",{onClick:()=>{f(e.filePath),w(!1)},style:{display:"flex",alignItems:"center",gap:7,padding:"8px 8px",borderRadius:5,cursor:"pointer",background:t?"var(--bg-selected)":"none"},onMouseEnter:e=>{t||(e.currentTarget.style.background="var(--bg-hover)")},onMouseLeave:e=>{t||(e.currentTarget.style.background="none")},children:(0,r.jsxs)("div",{style:{minWidth:0,flex:1},children:[(0,r.jsx)("div",{style:{fontSize:12,fontWeight:t?600:400,color:n?"var(--text-dim)":"var(--text)",fontFamily:"var(--font-mono)",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:e.name}),s&&(0,r.jsx)("span",{style:{display:"inline-block",fontSize:9,marginTop:2,padding:"1px 6px",borderRadius:999,background:"color-mix(in srgb, var(--status-warning) 18%, transparent)",color:"var(--status-warning)",fontWeight:600,fontFamily:"var(--font-mono)"},children:`${aq(o?.currentVersion??e.install?.versionHash)??"?"} → ${aq(o?.latestVersion)??"?"}`}),e.description&&(0,r.jsx)("div",{style:{fontSize:10,color:"var(--text-dim)",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",marginTop:2},title:e.description,children:e.description}),l&&(0,r.jsx)("div",{style:{fontSize:10,color:"var(--text-dim)",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",marginTop:2,fontFamily:"var(--font-mono)"},children:l})]})},e.filePath)})]},e)})})()}),(0,r.jsx)("div",{style:{padding:"8px 6px",borderTop:"1px solid var(--border)",flexShrink:0},children:(0,r.jsxs)("div",{style:{display:"flex",gap:6},children:[(0,r.jsx)("button",{type:"button",onClick:()=>void $(),disabled:I||null!==T||a.every(e=>!e.install),style:{...lN(!(I||null!==T||a.every(e=>!e.install))),flex:1,minHeight:30,padding:"0 6px",fontSize:11},children:I?s("common_loading"):s("skills_checkUpdates")}),(0,r.jsx)("button",{type:"button",onClick:async()=>{for(let e of a.filter(e=>{let t=aU(e);return t&&!L[t]&&j[t]?.state==="update-available"}))await H(e)},disabled:null!==T||!a.some(e=>{let t=aU(e);return t&&!L[t]&&j[t]?.state==="update-available"}),style:{flex:1,minHeight:30,padding:"0 6px",borderRadius:7,border:"1px solid var(--accent)",background:"var(--accent)",color:"var(--accent-foreground)",fontSize:11,fontWeight:600,cursor:null!==T?"not-allowed":"pointer",opacity:null!==T?.5:1},children:s("skills_upgradeAll")}),(0,r.jsx)("button",{type:"button",onClick:()=>w(!0),style:{...lN(!0),flex:1,minHeight:30,padding:"0 6px",fontSize:11,background:b?"var(--bg-selected)":"var(--bg-panel)",color:b?"var(--accent)":"var(--text-muted)"},children:s("skills_add")})]})})]}),(0,r.jsxs)("div",{style:{flex:1,overflowY:"auto",padding:20,display:l&&!k?"none":void 0},children:[l&&k&&(0,r.jsxs)("button",{type:"button",onClick:()=>{f(null),w(!1),y(null)},style:{display:"flex",alignItems:"center",gap:5,minHeight:32,padding:"0 10px",marginBottom:12,borderRadius:7,border:"1px solid var(--border)",background:"var(--bg-panel)",color:"var(--text-muted)",cursor:"pointer",fontSize:12},children:[(0,r.jsx)("svg",{width:"12",height:"12",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":"true",children:(0,r.jsx)("polyline",{points:"15 18 9 12 15 6"})}),s("common_back")]}),b?(0,r.jsx)(aJ,{cwd:e,installedPackages:{global:new Set(a.filter(e=>e.install?.scope==="global").map(e=>e.install.package)),project:new Set(a.filter(e=>e.install?.scope==="project").map(e=>e.install.package))},onInstalled:()=>{P()}}):c?null:N?(0,r.jsx)(aV,{skill:N,cwd:e,onToggle:D,toggling:x.has(N.filePath),saveError:v,updateStatus:aU(N)?j[aU(N)]:void 0,updating:T===aU(N),updateError:E,onUpdate:()=>void H(N),onRemove:()=>void F(N),locked:!!(aU(N)&&L[aU(N)]),onToggleLock:()=>{let e=aU(N);e&&A(e)}},N.filePath):(0,r.jsx)("div",{style:{height:"100%",display:"flex",alignItems:"center",justifyContent:"center",color:"var(--text-dim)",fontSize:13},children:s("skills_select")})]})]}),(0,r.jsx)(lO,{fixedHint:s("skills_countHint",{count:String(a.length)}),dynamicHint:Object.values(j).filter(e=>"update-available"===e.state).length>0?(0,r.jsxs)("span",{style:{color:"var(--status-warning)"},children:[Object.values(j).filter(e=>"update-available"===e.state).length," ",1===Object.values(j).filter(e=>"update-available"===e.state).length?s("skills_updateSingle"):s("skills_updatePlural")]}):v?(0,r.jsx)("span",{style:{color:"var(--status-danger)"},children:v}):E?(0,r.jsx)("span",{style:{color:"var(--status-danger)"},children:E}):null,onClose:t})]})})}function aG(e){return`${e.scope}\0${e.source}`}function aZ(e){return e.packageName?.trim()||e.source}function aX(e,t){if(e.disabled)return t("plugins_disabled");let n=[e.counts.extensions?t("plugins_countExtensions",{count:e.counts.extensions}):"",e.counts.skills?t("plugins_countSkills",{count:e.counts.skills}):"",e.counts.prompts?t("plugins_countPrompts",{count:e.counts.prompts}):"",e.counts.themes?t("plugins_countThemes",{count:e.counts.themes}):""].filter(Boolean);return n.length?n.join(" \xb7 "):t("plugins_noResources")}function aQ(e,t){let n=e.version??"",r=t?.latest;return!!(t?.hasUpdate&&r&&r!==n)}function a0(e,t){let n=e.version??"?";return aQ(e,t)&&t?.latest?`${n} → ${t.latest}`:n}function a1({pkg:e}){let{t}=(0,ea.s9)(),n=[["extension",t("plugins_extensions")],["skill",t("plugins_skills")],["prompt",t("plugins_prompts")],["theme",t("plugins_themes")]].map(([t,n])=>({kind:t,label:n,resources:e.resources.filter(e=>e.kind===t)})).filter(e=>e.resources.length>0);return 0===n.length?(0,r.jsx)("div",{style:{fontSize:12,color:"var(--text-dim)"},children:t(e.disabled?"plugins_packageDisabled":"plugins_noResolved")}):(0,r.jsx)("div",{style:{display:"flex",flexDirection:"column",gap:12},children:n.map((e,t)=>(0,r.jsxs)("div",{style:{borderTop:0===t?"none":"1px solid var(--border)",paddingTop:12*(0!==t)},children:[(0,r.jsx)("div",{style:{fontSize:10,fontWeight:700,color:"var(--text-dim)",textTransform:"uppercase",marginBottom:6},children:e.label}),(0,r.jsx)("div",{style:{display:"flex",flexDirection:"column",gap:6},children:e.resources.map(e=>(0,r.jsxs)("div",{style:{minWidth:0},children:[(0,r.jsx)("div",{style:{fontSize:12,color:"var(--text)",fontFamily:"var(--font-mono)",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},title:e.path,children:e.name}),(0,r.jsx)("div",{style:{fontSize:10,color:"var(--text-dim)",fontFamily:"var(--font-mono)",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",marginTop:1},title:e.path,children:e.relativePath})]},`${e.kind}:${e.path}`))})]},e.kind))})}function a2({scope:e}){let{t}=(0,ea.s9)();return(0,r.jsx)("span",{style:{fontSize:10,padding:"1px 5px",borderRadius:3,flexShrink:0,background:"project"===e?"rgba(99,102,241,0.12)":"rgba(120,120,120,0.12)",color:"project"===e?"rgba(99,102,241,0.85)":"var(--text-dim)"},children:t("project"===e?"common_project":"common_global")})}function a4({enabled:e,loading:t,onToggle:n,label:i}){return(0,r.jsx)("button",{type:"button",onClick:n,disabled:t,title:i,"aria-label":i,"aria-pressed":e,style:{flexShrink:0,width:40,height:22,borderRadius:11,border:"none",padding:0,cursor:t?"wait":"pointer",background:e?"var(--accent)":"var(--border)",position:"relative",transition:"background 0.18s",outline:"none",opacity:t?.65:1},children:(0,r.jsx)("span",{style:{position:"absolute",top:3,left:e?21:3,width:16,height:16,borderRadius:"50%",background:"var(--bg)",boxShadow:"0 1px 4px rgba(0,0,0,0.22)",transition:"left 0.18s cubic-bezier(.4,0,.2,1)"}})})}function a6({value:e,onChange:t}){let{t:n}=(0,ea.s9)();return(0,r.jsx)("div",{style:{display:"inline-flex",border:"1px solid var(--border)",borderRadius:7,overflow:"hidden",height:30},children:["global","project"].map(i=>{let o=e===i;return(0,r.jsx)("button",{onClick:()=>t(i),style:{width:76,border:"none",borderRight:"global"===i?"1px solid var(--border)":"none",background:o?"var(--bg-selected)":"none",color:o?"var(--text)":"var(--text-muted)",cursor:"pointer",fontSize:12},children:"project"===i?n("common_project"):n("common_global")},i)})})}function a5({cwd:e,source:t,scope:n,busy:o,actionError:s,onSourceChange:l,onScopeChange:a,onInstall:d}){var c;let{t:u}=(0,ea.s9)(),p=(0,i.useRef)(null);return(0,i.useEffect)(()=>{p.current?.focus()},[]),(0,r.jsxs)("div",{style:{display:"flex",flexDirection:"column",gap:18,maxWidth:660,minHeight:"100%"},children:[(0,r.jsxs)("div",{style:{display:"flex",flexDirection:"column",gap:5},children:[(0,r.jsx)("div",{style:{fontSize:14,fontWeight:700,color:"var(--text)"},children:u("plugins_add")}),(0,r.jsx)("div",{style:{fontSize:12,color:"var(--text-dim)",fontFamily:"var(--font-mono)"},children:"project"===n?`${n2(e)}/.pi/agent/{npm,git}`:"~/.pi/agent/{npm,git}"})]}),(0,r.jsxs)("div",{style:{display:"flex",flexDirection:"column",gap:7},children:[(0,r.jsx)("label",{htmlFor:"plugin-source",style:{fontSize:12,fontWeight:600,color:"var(--text-muted)"},children:u("common_source")}),(0,r.jsx)("input",{id:"plugin-source",ref:p,value:t,onChange:e=>l(e.target.value),placeholder:"npm:@scope/package",style:{width:"100%",height:36,padding:"0 11px",border:"1px solid var(--border)",borderRadius:6,background:"var(--bg-panel)",color:"var(--text)",fontFamily:"var(--font-mono)",fontSize:13,outline:"none"},onKeyDown:e=>{"Enter"===e.key&&t.trim()&&!o&&d()}})]}),(0,r.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:10,flexWrap:"wrap"},children:[(0,r.jsx)(a6,{value:n,onChange:a}),(0,r.jsx)("button",{type:"button",onClick:d,disabled:o||!t.trim(),style:{...{padding:"6px 12px",background:"none",border:"1px solid var(--border)",borderRadius:6,color:"var(--text-muted)",cursor:(c=o||!t.trim())?"not-allowed":"pointer",fontSize:12,opacity:c?.5:1},background:"var(--accent)",color:"white",borderColor:"var(--accent)"},children:u(o?"plugins_installing":"common_install")})]}),(0,r.jsxs)("div",{style:{display:"flex",flexDirection:"column",gap:7},children:[(0,r.jsx)("div",{style:{fontSize:12,fontWeight:600,color:"var(--text-muted)"},children:u("plugins_examples")}),(0,r.jsx)("div",{style:{display:"flex",flexDirection:"column",gap:6},children:["npm:@scope/pi-plugin","git:https://github.com/user/repo","/absolute/path/to/plugin"].map(e=>(0,r.jsx)("button",{type:"button",onClick:()=>l(e),style:{width:"100%",minHeight:30,textAlign:"left",padding:"6px 9px",border:"1px solid var(--border)",borderRadius:6,background:"var(--bg-panel)",color:"var(--text-dim)",cursor:"pointer",fontFamily:"var(--font-mono)",fontSize:11},onMouseEnter:e=>{e.currentTarget.style.background="var(--bg-hover)",e.currentTarget.style.color="var(--text-muted)"},onMouseLeave:e=>{e.currentTarget.style.background="var(--bg-panel)",e.currentTarget.style.color="var(--text-dim)"},children:e},e))})]}),s&&(0,r.jsx)("div",{style:{fontSize:12,color:"var(--status-danger)",whiteSpace:"pre-wrap"},children:s}),(0,r.jsxs)("div",{style:{borderTop:"1px solid var(--border)",paddingTop:14,marginTop:4},children:[(0,r.jsx)("div",{style:{fontSize:12,fontWeight:600,color:"var(--text)",marginBottom:8},children:u("plugins_searchLibrary")}),(0,r.jsx)(a8,{onPick:e=>l(`npm:${e}`)})]})]})}function a8({onPick:e}){let{t}=(0,ea.s9)(),[n,o]=(0,i.useState)(""),[s,l]=(0,i.useState)(null),[a,d]=(0,i.useState)(!1),[c,u]=(0,i.useState)(null),p=(0,i.useCallback)(async()=>{let e=n.trim();if(e){d(!0),u(null);try{let t=await fetch("/api/plugins/search",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({query:e})});if(!t.ok){let e=await t.json().catch(()=>({}));throw Error(e.error??`HTTP ${t.status}`)}let n=await t.json();l(n.results??[])}catch(e){u(e instanceof Error?e.message:String(e)),l(null)}finally{d(!1)}}},[n]);return(0,r.jsxs)("div",{children:[(0,r.jsxs)("div",{style:{display:"flex",gap:8},children:[(0,r.jsx)("input",{type:"text",value:n,onChange:e=>o(e.target.value),onKeyDown:e=>{"Enter"===e.key&&p()},placeholder:t("plugins_searchLibraryPlaceholder"),"aria-label":t("plugins_searchLibrary"),style:{flex:1,height:30,padding:"0 10px",borderRadius:6,border:"1px solid var(--border)",background:"var(--bg)",color:"var(--text)",fontSize:12,outline:"none"}}),(0,r.jsx)("button",{type:"button",onClick:()=>void p(),disabled:a||!n.trim(),style:{minHeight:30,padding:"0 12px",borderRadius:6,border:"1px solid var(--border)",background:"var(--bg-panel)",color:"var(--text)",cursor:a||!n.trim()?"not-allowed":"pointer",fontSize:12,opacity:a||!n.trim()?.5:1},children:t(a?"common_loading":"common_search")})]}),c&&(0,r.jsx)("div",{style:{fontSize:11,color:"var(--status-danger)",marginTop:6},children:c}),s&&0===s.length&&!c&&(0,r.jsx)("div",{style:{fontSize:11,color:"var(--text-dim)",marginTop:6},children:t("plugins_searchEmpty")}),s&&s.length>0&&(0,r.jsx)("div",{style:{display:"flex",flexDirection:"column",gap:6,marginTop:8,maxHeight:240,overflowY:"auto"},children:s.map(t=>(0,r.jsxs)("button",{type:"button",onClick:()=>e(t.name),style:{textAlign:"left",padding:"7px 9px",borderRadius:6,border:"1px solid var(--border)",background:"var(--bg-panel)",color:"var(--text)",cursor:"pointer",fontSize:11},onMouseEnter:e=>{e.currentTarget.style.background="var(--bg-hover)"},onMouseLeave:e=>{e.currentTarget.style.background="var(--bg-panel)"},children:[(0,r.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:8},children:[(0,r.jsx)("span",{style:{fontFamily:"var(--font-mono)",fontWeight:600,minWidth:0,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:t.name}),(0,r.jsxs)("span",{style:{fontSize:10,color:"var(--text-dim)",fontFamily:"var(--font-mono)",flexShrink:0},children:["v",t.version]})]}),t.description&&(0,r.jsx)("div",{style:{fontSize:10,color:"var(--text-muted)",marginTop:2,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:t.description})]},t.name))})]})}function a3({pkg:e,cwd:t,busyKey:n,actionError:i,actionMessage:o,sessionId:s,updateInfo:l,locked:a,onToggleLock:d,onAction:c}){var u;let{t:p}=(0,ea.s9)(),h=aG(e),g=n?.endsWith(h)??!1,f=!e.disabled;return(0,r.jsxs)("div",{style:{display:"flex",flexDirection:"column",gap:20,maxWidth:680},children:[(0,r.jsxs)("div",{style:{display:"flex",alignItems:"flex-start",justifyContent:"space-between",gap:12,minWidth:0,flexWrap:"wrap"},children:[(0,r.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:8,minWidth:180,flex:1},children:[(0,r.jsx)(a4,{enabled:f,loading:g,onToggle:()=>c(e.disabled?"enable":"disable",e),label:e.disabled?p("plugins_enable"):p("plugins_disable")}),(0,r.jsx)(a2,{scope:e.scope}),e.disabled?(0,r.jsx)("span",{style:{fontSize:10,padding:"1px 5px",borderRadius:3,background:"rgba(120,120,120,0.12)",color:"var(--text-dim)"},children:p("plugins_disabled")}):e.filtered&&(0,r.jsx)("span",{style:{fontSize:10,padding:"1px 5px",borderRadius:3,background:"color-mix(in srgb, var(--status-warning) 12%, transparent)",color:"var(--status-warning)"},children:p("plugins_filtered")}),(0,r.jsx)("span",{style:{fontFamily:e.packageName?void 0:"var(--font-mono)",fontSize:12,color:"var(--text)",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:aZ(e)})]}),(0,r.jsxs)("div",{style:{display:"flex",gap:8,flexWrap:"wrap",alignItems:"center"},children:[(0,r.jsxs)("label",{title:p("plugins_lockVersionHint"),style:{display:"inline-flex",alignItems:"center",gap:5,fontSize:11,color:"var(--text-muted)",cursor:"pointer",padding:"4px 6px",borderRadius:6,border:"1px solid var(--border)"},children:[(0,r.jsx)("input",{type:"checkbox",checked:a,onChange:d}),p("plugins_lockVersion")]}),aQ(e,l)&&(0,r.jsx)("span",{style:{fontSize:10,padding:"2px 6px",borderRadius:999,background:"color-mix(in srgb, var(--status-warning) 15%, transparent)",color:"var(--status-warning)",fontWeight:600,fontFamily:"var(--font-mono)"},children:a0(e,l)}),!a&&(0,r.jsx)("button",{type:"button",onClick:()=>c("update",e),disabled:g,style:{width:26,height:26,padding:0,flexShrink:0,display:"inline-flex",alignItems:"center",justifyContent:"center",background:"none",border:"1px solid var(--border)",borderRadius:6,color:g?"var(--text-dim)":"var(--text-muted)",cursor:g?"not-allowed":"pointer",opacity:g?.5:1,boxSizing:"border-box"},title:n===`update:${h}`?p("plugins_updating",{source:e.source}):p("plugins_update",{source:e.source}),"aria-label":n===`update:${h}`?p("plugins_updating",{source:e.source}):p("plugins_update",{source:e.source}),children:n===`update:${h}`?(0,r.jsx)(l$.A,{size:13,className:"animate-spin","aria-hidden":!0}):(0,r.jsx)(aN.A,{size:13,"aria-hidden":!0})}),(0,r.jsx)("button",{type:"button",onClick:()=>{window.confirm(p("plugins_confirmRemove",{source:e.source}))&&c("remove",e)},disabled:g,style:lB(!g),title:n===`remove:${h}`?p("plugins_removing"):p("common_remove"),"aria-label":n===`remove:${h}`?p("plugins_removing"):p("common_remove"),children:n===`remove:${h}`?(0,r.jsx)(l$.A,{size:13,className:"animate-spin","aria-hidden":!0}):(0,r.jsx)(aB.A,{size:13,"aria-hidden":!0})})]})]}),(0,r.jsxs)("div",{style:{display:"grid",gridTemplateColumns:"minmax(96px, 130px) minmax(0, 1fr)",gap:"9px 14px",fontSize:12,lineHeight:1.45},children:[(0,r.jsx)("div",{style:{color:"var(--text-dim)"},children:p("common_status")}),(0,r.jsx)("div",{style:{color:"loaded"===(u=e.status)?"var(--accent)":"installed"===u?"var(--status-warning)":"disabled"===u?"var(--text-dim)":"var(--status-danger)",textTransform:"capitalize"},children:e.status}),(0,r.jsx)("div",{style:{color:"var(--text-dim)"},children:p("common_version")}),(0,r.jsx)("div",{style:{color:"var(--text-muted)",fontFamily:"var(--font-mono)"},children:a0(e,l)}),(0,r.jsx)("div",{style:{color:"var(--text-dim)"},children:p("plugins_package")}),(0,r.jsx)("div",{style:{color:"var(--text-muted)",fontFamily:"var(--font-mono)",overflowWrap:"anywhere"},children:e.packageName??p("common_unknown")}),(0,r.jsx)("div",{style:{color:"var(--text-dim)"},children:p("plugins_source")}),(0,r.jsx)("div",{style:{color:"var(--text-muted)",fontFamily:"var(--font-mono)",overflowWrap:"anywhere"},children:e.source}),(0,r.jsx)("div",{style:{color:"var(--text-dim)"},children:p("common_resources")}),(0,r.jsx)("div",{style:{color:"var(--text-muted)"},children:aX(e,p)}),(0,r.jsx)("div",{style:{color:"var(--text-dim)"},children:p("plugins_installedPath")}),(0,r.jsx)("div",{style:{color:e.installedPath?"var(--text-muted)":"var(--status-danger)",fontFamily:"var(--font-mono)",overflowWrap:"anywhere"},children:e.installedPath?n2(e.installedPath):p("plugins_notFound")}),(0,r.jsx)("div",{style:{color:"var(--text-dim)"},children:p("plugins_cwd")}),(0,r.jsx)("div",{style:{color:"var(--text-dim)",fontFamily:"var(--font-mono)",overflowWrap:"anywhere"},children:n2(t)})]}),(0,r.jsxs)("div",{style:{display:"flex",flexDirection:"column",gap:8},children:[(0,r.jsx)("div",{style:{fontSize:12,fontWeight:700,color:"var(--text)"},children:p("plugins_resolvedResources")}),(0,r.jsx)(a1,{pkg:e})]}),o&&(0,r.jsx)("div",{style:{fontSize:12,color:"var(--status-success)"},children:o}),i&&(0,r.jsx)("div",{style:{fontSize:12,color:"var(--status-danger)",whiteSpace:"pre-wrap"},children:i})]})}function a9({cwd:e,sessionId:t,onClose:n,onReloaded:o,embedded:s=!1}){let{t:l}=(0,ea.s9)(),a=nv(),[d,c]=(0,i.useState)(null),[u,p]=(0,i.useState)(!0),[h,g]=(0,i.useState)(null),[f,x]=(0,i.useState)(null),[m,v]=(0,i.useState)(!1),y=m||null!==f,[b,w]=(0,i.useState)({}),[k,j]=(0,i.useState)(!1),[S,C]=(0,i.useState)(!1),[_,I]=(0,i.useState)(()=>{let e=(0,Z.b3)("pluginLocks");return e&&"object"==typeof e?e:{}}),R=(0,i.useCallback)(e=>{I(t=>{let n={...t,[e]:!t[e]};return(0,Z.dM)("pluginLocks",n),n})},[]),T=(0,i.useCallback)(async()=>{if(!d)return;let e=d.packages.filter(e=>!_[aG(e)]);if(0!==e.length){j(!0);try{let t=await fetch("/api/plugins/updates",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({packages:e.map(e=>({source:e.source,installed:e.version??e.configuredVersion??null}))})});if(!t.ok){let e=await t.json().catch(()=>({}));throw Error(e.error??`HTTP ${t.status}`)}let n=await t.json(),r={};for(let t of n.updates??[]){let n=e.find(e=>e.source===t.source);n&&(r[aG(n)]={latest:t.latest,hasUpdate:t.hasUpdate})}w(r)}catch(e){$(e instanceof Error?e.message:String(e))}finally{j(!1)}}},[d,_]),[M,E]=(0,i.useState)(""),[z,L]=(0,i.useState)("global"),[W,A]=(0,i.useState)(null),[P,$]=(0,i.useState)(null),[H,F]=(0,i.useState)(null),D=(0,i.useMemo)(()=>d?.packages??[],[d?.packages]),N=D.find(e=>aG(e)===f)??null,B=(0,i.useMemo)(()=>["project","global"].map(e=>({scope:e,packages:D.filter(t=>t.scope===e)})).filter(e=>e.packages.length>0),[D]),O=(0,i.useCallback)(async()=>{p(!0),g(null);try{let t=await fetch(`/api/plugins?cwd=${encodeURIComponent(e)}`),n=await t.json();if(!t.ok||n.error)throw Error(n.error??`HTTP ${t.status}`);c(n),v(e=>0===n.packages.length||e),x(e=>e&&n.packages.some(t=>aG(t)===e)?e:a?null:n.packages[0]?aG(n.packages[0]):null)}catch(e){g(e instanceof Error?e.message:String(e))}finally{p(!1)}},[e,a]);(0,i.useEffect)(()=>{O()},[O]);let U=(0,i.useCallback)(async(t,n)=>{let r=aG(n);A(`${t}:${r}`),$(null),F(null);try{let i=await fetch("/api/plugins",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({action:t,source:n.source,scope:n.scope,cwd:e})}),o=await i.json();if(!i.ok||o.error)throw Error(o.error??`HTTP ${i.status}`);if(c(o),"update"===t&&w(e=>{let t=e[r];return t?{...e,[r]:{...t,hasUpdate:!1}}:e}),"remove"===t)x(o.packages[0]?aG(o.packages[0]):null),0===o.packages.length&&v(!0),F(l("plugins_removed"));else{let e={install:l("plugins_installed"),update:l("plugins_updated"),disable:l("plugins_disabledMessage"),enable:l("plugins_enabled")};F(e[t])}}catch(e){$(e instanceof Error?e.message:String(e))}finally{A(null)}},[e,l]),q=(0,i.useCallback)(async()=>{if(!d)return;let e=d.packages.filter(e=>{let t=aG(e);return!_[t]&&aQ(e,b[t])});if(0!==e.length){C(!0);try{for(let t of e)await U("update",t)}finally{C(!1),T()}}},[d,_,b,U,T]),K=(0,i.useCallback)(async()=>{let t=M.trim();if(!t)return;let n=`${z}\0${t}`;A(`install:${n}`),$(null),F(null);try{var r;let i,o,s=await fetch("/api/plugins",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({action:"install",source:t,scope:z,cwd:e})}),a=await s.json();if(!s.ok||a.error)throw Error(a.error??`HTTP ${s.status}`);c(a);let d=(r=a.packages,o=(i=t.trim()).startsWith("npm:")?i.slice(4):i,r.find(e=>e.scope===z&&e.source===i)??r.find(e=>e.scope===z&&e.source===`npm:${o}`)??r.find(e=>e.scope===z&&e.source.endsWith(i)));x(d?aG(d):n),v(!1),E(""),F(l("plugins_installed"))}catch(e){$(e instanceof Error?e.message:String(e))}finally{A(null)}},[e,z,M,l]);(0,i.useCallback)(async()=>{if(t){A("reload"),$(null),F(null);try{await (0,oX.$)(t,{type:"reload"}),o?.(),await O(),F(l("plugins_reloaded"))}catch(e){$(e instanceof Error?e.message:String(e))}finally{A(null)}}},[O,o,t,l]);let V=W?.startsWith("install:")??!1;return(0,r.jsx)("div",{style:s?{position:"relative",display:"flex",flexDirection:"column",height:"100%",minHeight:0,overflow:"hidden"}:{position:"fixed",inset:0,zIndex:1e3,background:"rgba(0,0,0,0.35)",display:"flex",alignItems:"center",justifyContent:"center"},onClick:s?void 0:e=>{e.target===e.currentTarget&&n()},children:(0,r.jsxs)("div",{style:s?{display:"flex",flexDirection:"column",height:"100%",minHeight:0,background:"var(--bg)",overflow:"hidden"}:{width:a?"calc(100vw - 16px)":860,maxWidth:"calc(100vw - 16px)",height:a?"calc(100dvh - 16px)":"76vh",maxHeight:"calc(100dvh - 16px)",background:"var(--bg)",border:"1px solid var(--border)",borderRadius:8,display:"flex",flexDirection:"column",boxShadow:"0 8px 32px rgba(0,0,0,0.18)",overflow:"hidden"},children:[!s&&(0,r.jsxs)("div",{style:{display:"flex",alignItems:"center",justifyContent:"space-between",padding:"12px 18px",borderBottom:"1px solid var(--border)",flexShrink:0},children:[(0,r.jsx)("span",{style:{fontSize:15,fontWeight:700,color:"var(--text)"},children:l("common_plugins")}),(0,r.jsx)("button",{onClick:n,style:{background:"none",border:"none",color:"var(--text-muted)",cursor:"pointer",fontSize:20,lineHeight:1,padding:"2px 6px"},children:"\xd7"})]}),(0,r.jsxs)("div",{style:{flex:1,display:"flex",flexDirection:a?"column":"row",overflow:"hidden"},children:[(0,r.jsxs)("div",{style:{width:a?"100%":245,borderRight:a?"none":"1px solid var(--border)",display:a&&y?"none":"flex",flexDirection:"column",...a?{flex:1,minHeight:0}:{flexShrink:0},background:"var(--bg-panel)"},children:[(0,r.jsx)("div",{style:{flex:1,overflowY:"auto",padding:"8px 6px"},children:u?(0,r.jsx)("div",{style:{padding:"10px 8px",fontSize:12,color:"var(--text-muted)"},children:l("common_loading")}):h?(0,r.jsx)("div",{style:{padding:"10px 8px",fontSize:11,color:"var(--status-danger)"},children:h}):0===D.length?(0,r.jsx)("div",{style:{padding:"10px 8px",fontSize:11,color:"var(--text-dim)"},children:l("plugins_noConfigured")}):B.map(e=>(0,r.jsxs)("div",{style:{marginBottom:6},children:[(0,r.jsx)("div",{style:{padding:"4px 8px 3px",fontSize:10,fontWeight:600,color:"var(--text-dim)",textTransform:"uppercase"},children:"project"===e.scope?l("common_project"):l("common_global")}),e.packages.map(e=>{let t=aG(e),n=!m&&f===t;return(0,r.jsx)("div",{onClick:()=>{x(t),v(!1),$(null),F(null)},style:{display:"flex",alignItems:"center",gap:7,padding:"8px 8px",borderRadius:5,cursor:"pointer",background:n?"var(--bg-selected)":"none"},onMouseEnter:e=>{n||(e.currentTarget.style.background="var(--bg-hover)")},onMouseLeave:e=>{n||(e.currentTarget.style.background="none")},children:(0,r.jsxs)("div",{style:{minWidth:0,flex:1},children:[(0,r.jsx)("div",{style:{fontSize:12,fontWeight:n?600:400,color:"var(--text)",fontFamily:e.packageName?void 0:"var(--font-mono)",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:aZ(e)}),aQ(e,b[aG(e)])&&(0,r.jsx)("span",{style:{display:"inline-block",fontSize:9,marginTop:2,padding:"1px 6px",borderRadius:999,background:"color-mix(in srgb, var(--status-warning) 18%, transparent)",color:"var(--status-warning)",fontWeight:600,fontFamily:"var(--font-mono)"},children:a0(e,b[aG(e)])}),(0,r.jsx)("div",{style:{fontSize:10,color:"var(--text-dim)",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",marginTop:2},children:aX(e,l)}),(e.version||e.configuredVersion)&&(0,r.jsx)("div",{style:{fontSize:10,color:"var(--text-dim)",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",marginTop:2},children:a0(e,b[aG(e)])})]})},t)})]},e.scope))}),(0,r.jsx)("div",{style:{padding:"8px 6px",borderTop:"1px solid var(--border)",flexShrink:0},children:(0,r.jsxs)("div",{style:{display:"flex",gap:6},children:[(0,r.jsx)("button",{type:"button",onClick:()=>void T(),disabled:k||!d,style:{...lN(!(k||!d)),flex:1,minHeight:30,padding:"0 6px",fontSize:11},children:k?l("common_loading"):l("plugins_checkUpdates")}),(0,r.jsx)("button",{type:"button",onClick:()=>void q(),disabled:S||D.every(e=>_[aG(e)]||!aQ(e,b[aG(e)])),style:{flex:1,minHeight:30,padding:"0 6px",borderRadius:7,border:"1px solid var(--accent)",background:"var(--accent)",color:"var(--accent-foreground)",fontSize:11,fontWeight:600,cursor:S||D.every(e=>_[aG(e)]||!aQ(e,b[aG(e)]))?"not-allowed":"pointer",opacity:S||D.every(e=>_[aG(e)]||!aQ(e,b[aG(e)]))?.5:1},children:S?l("common_loading"):l("plugins_upgradeAll")}),(0,r.jsx)("button",{type:"button",onClick:()=>{v(!0),$(null),F(null)},style:{...lN(!0),flex:1,minHeight:30,padding:"0 6px",fontSize:11,background:m?"var(--bg-selected)":"var(--bg-panel)",color:m?"var(--accent)":"var(--text-muted)"},children:l("plugins_add")})]})})]}),(0,r.jsxs)("div",{style:{flex:1,overflowY:"auto",padding:20,display:a&&!y?"none":void 0},children:[a&&y&&(0,r.jsxs)("button",{type:"button",onClick:()=>{x(null),v(!1),$(null),F(null)},style:{display:"flex",alignItems:"center",gap:5,minHeight:32,padding:"0 10px",marginBottom:12,borderRadius:7,border:"1px solid var(--border)",background:"var(--bg-panel)",color:"var(--text-muted)",cursor:"pointer",fontSize:12},children:[(0,r.jsx)("svg",{width:"12",height:"12",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":"true",children:(0,r.jsx)("polyline",{points:"15 18 9 12 15 6"})}),l("common_back")]}),m?(0,r.jsx)(a5,{cwd:e,source:M,scope:z,busy:V,actionError:P,onSourceChange:E,onScopeChange:L,onInstall:K}):u?null:N?(0,r.jsx)(a3,{pkg:N,cwd:e,busyKey:W,actionError:P,actionMessage:H,sessionId:t,updateInfo:b[aG(N)]??null,locked:!!_[aG(N)],onToggleLock:()=>R(aG(N)),onAction:U},aG(N)):(0,r.jsx)("div",{style:{height:"100%",display:"flex",alignItems:"center",justifyContent:"center",color:"var(--text-dim)",fontSize:13},children:l("plugins_select")})]})]}),(0,r.jsx)(lO,{fixedHint:d?l("plugins_totals",{extensions:d.totals.extensions,skills:d.totals.skills,prompts:d.totals.prompts,themes:d.totals.themes}):null,dynamicHint:P?(0,r.jsx)("span",{style:{color:"var(--status-danger)"},children:P}):H?(0,r.jsx)("span",{style:{color:"var(--accent)"},children:H}):d?.diagnostics.length?(0,r.jsx)("span",{title:d.diagnostics.map(e=>`${e.type}: ${e.source?`${e.source}: `:""}${e.message}`).join("\n"),style:{color:d.diagnostics.some(e=>"error"===e.type)?"var(--status-danger)":"var(--status-warning)"},children:l(1===d.diagnostics.length?"plugins_diagnostics_one":"plugins_diagnostics_other",{count:d.diagnostics.length})}):null,onClose:n,children:(0,r.jsx)("button",{type:"button",onClick:()=>void O(),disabled:u||null!==W,style:lN(!(u||null!==W)),children:u?l("plugins_refreshing"):l("plugins_refresh")})})]})})}let a7={fontSize:12,fontWeight:600,color:"var(--text)",marginBottom:8},de={fontSize:12,color:"var(--text-muted)",marginBottom:4},dt={width:"100%",maxWidth:420,padding:"7px 10px",borderRadius:7,border:"1px solid var(--border)",background:"var(--bg)",color:"var(--text)",fontSize:13,outline:"none",fontFamily:"var(--font-mono)"},dn={...dt,fontFamily:"inherit",cursor:"pointer"};function dr({label:e,value:t,placeholder:n,onChange:i,mono:o=!0}){return(0,r.jsxs)("div",{children:[(0,r.jsx)("div",{style:de,children:e}),(0,r.jsx)("input",{type:"text",value:t,placeholder:n,onChange:e=>i(e.target.value),style:o?dt:{...dt,fontFamily:"inherit"}})]})}function di({label:e,value:t,min:n,max:i,onChange:o}){return(0,r.jsxs)("div",{children:[(0,r.jsx)("div",{style:de,children:e}),(0,r.jsx)("input",{type:"number",value:t,min:n,max:i,onChange:e=>o(e.target.value),style:{...dt,maxWidth:220}})]})}function ds({label:e,checked:t,onChange:n}){return(0,r.jsxs)("label",{style:{display:"flex",alignItems:"center",gap:8,fontSize:13,color:"var(--text)",cursor:"pointer"},children:[(0,r.jsx)("input",{type:"checkbox",checked:t,onChange:e=>n(e.target.checked)}),e]})}function dl(e){return"string"==typeof e?e:""}function da(e){return"number"==typeof e&&Number.isFinite(e)?String(e):""}function dd(e){return"object"!=typeof e||null===e||Array.isArray(e)?{}:e}function dc(e){let t=dd(e.compaction),n=dd(e.retry);return{defaultProvider:dl(e.defaultProvider),defaultModel:dl(e.defaultModel),defaultThinkingLevel:e.defaultThinkingLevel??"",compactionEnabled:!0===t.enabled,compactionReserve:da(t.reserveTokens),compactionKeep:da(t.keepRecentTokens),retryEnabled:!0===n.enabled,retryMaxRetries:da(n.maxRetries),retryBaseDelayMs:da(n.baseDelayMs),hideThinkingBlock:!0===e.hideThinkingBlock,showCacheMissNotices:!0===e.showCacheMissNotices,httpProxy:dl(e.httpProxy),httpIdleTimeoutMs:da(e.httpIdleTimeoutMs),sessionDir:dl(e.sessionDir),shellPath:dl(e.shellPath),quietStartup:!0===e.quietStartup,externalEditor:dl(e.externalEditor),defaultProjectTrust:dl(e.defaultProjectTrust),doubleEscapeAction:dl(e.doubleEscapeAction),transport:dl(e.transport)||"auto"}}function du({cwd:e,onClose:t}){let{t:n}=(0,ea.s9)(),[o,s]=(0,i.useState)(null),[l,a]=(0,i.useState)(null),[d,c]=(0,i.useState)([]),[u,p]=(0,i.useState)(!0),[h,g]=(0,i.useState)(!1),[f,x]=(0,i.useState)(null),[m,v]=(0,i.useState)(!1),[y,b]=(0,i.useState)(0),[w,k]=(0,i.useState)("basic"),j=(0,i.useCallback)(async()=>{p(!0),x(null);try{let t,n=new URLSearchParams;e&&n.set("cwd",e);let r=n.toString(),[i,o]=await Promise.all([fetch("/api/settings/raw",{cache:"no-store"}),fetch(`/api/models${r?`?${r}`:""}`)]);if(!i.ok){let e=await i.json().catch(()=>({}));throw Error(e.error??`HTTP ${i.status}`)}let l=await i.json();try{t=JSON.parse("string"==typeof l.json?l.json:"{}")}catch{t={}}if(s(t),a(dc(t)),o.ok){let e=await o.json();c(Array.isArray(e.modelList)?e.modelList:[])}else c([])}catch(e){x(e instanceof Error?e.message:String(e)),s(null),a(null)}finally{p(!1)}},[e]);(0,i.useEffect)(()=>{j()},[j,y]);let S=(0,i.useCallback)(async()=>{if(l&&o){g(!0),x(null),v(!1);try{let e=await fetch("/api/settings/raw",{cache:"no-store"});if(!e.ok){let t=await e.json().catch(()=>({}));throw Error(t.error??`HTTP ${e.status}`)}let t=await e.json(),n={...(()=>{try{return JSON.parse("string"==typeof t.json?t.json:"{}")}catch{return{}}})()};n.defaultProvider=l.defaultProvider||void 0,n.defaultModel=l.defaultModel||void 0,n.defaultThinkingLevel=""===l.defaultThinkingLevel?void 0:l.defaultThinkingLevel,n.hideThinkingBlock=l.hideThinkingBlock||void 0,n.showCacheMissNotices=l.showCacheMissNotices||void 0,n.quietStartup=l.quietStartup||void 0;let r={...dd(n.compaction)};r.enabled=l.compactionEnabled;let i=Number(l.compactionReserve),o=Number(l.compactionKeep);Number.isFinite(i)&&i>0&&(r.reserveTokens=i),Number.isFinite(o)&&o>0&&(r.keepRecentTokens=o),n.compaction=r;let d={...dd(n.retry)};d.enabled=l.retryEnabled;let c=Number(l.retryMaxRetries),u=Number(l.retryBaseDelayMs);for(let e of(Number.isFinite(c)&&c>=0&&(d.maxRetries=c),Number.isFinite(u)&&u>=0&&(d.baseDelayMs=u),n.retry=d,["httpProxy","sessionDir","shellPath","externalEditor","defaultProjectTrust","doubleEscapeAction","transport"])){let t=l[e].trim();t?n[e]=t:delete n[e]}let p=Number(l.httpIdleTimeoutMs);Number.isFinite(p)&&p>0?n.httpIdleTimeoutMs=p:delete n.httpIdleTimeoutMs;let h=await fetch("/api/settings/raw",{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify({json:JSON.stringify(n,null,2)})});if(!h.ok){let e=await h.json().catch(()=>({}));throw Error(e.error??`HTTP ${h.status}`)}s(n),a(dc(n)),v(!0),window.setTimeout(()=>v(!1),2e3)}catch(e){x(e instanceof Error?e.message:String(e))}finally{g(!1)}}},[l,o]);if(u&&!o)return(0,r.jsx)("div",{style:{padding:"18px 20px",fontSize:12,color:"var(--text-muted)"},children:n("common_loading")});if(f&&!o)return(0,r.jsxs)("div",{style:{padding:"18px 20px"},children:[(0,r.jsxs)("div",{style:{fontSize:12,color:"var(--status-danger)",marginBottom:10},children:[n("defaults_loadFailed"),": ",f]}),(0,r.jsx)("button",{type:"button",onClick:()=>b(e=>e+1),style:{minHeight:30,padding:"0 12px",borderRadius:7,border:"1px solid var(--border)",background:"var(--bg-panel)",color:"var(--text)",cursor:"pointer",fontSize:12},children:n("defaults_retry")})]});if(!o||!l)return null;let C=dc(o),_=l.defaultProvider!==C.defaultProvider||l.defaultModel!==C.defaultModel||l.defaultThinkingLevel!==C.defaultThinkingLevel||l.compactionEnabled!==C.compactionEnabled||l.compactionReserve!==C.compactionReserve||l.compactionKeep!==C.compactionKeep||l.retryEnabled!==C.retryEnabled||l.retryMaxRetries!==C.retryMaxRetries||l.retryBaseDelayMs!==C.retryBaseDelayMs||l.hideThinkingBlock!==C.hideThinkingBlock||l.showCacheMissNotices!==C.showCacheMissNotices||l.httpProxy!==C.httpProxy||l.httpIdleTimeoutMs!==C.httpIdleTimeoutMs||l.sessionDir!==C.sessionDir||l.shellPath!==C.shellPath||l.quietStartup!==C.quietStartup||l.externalEditor!==C.externalEditor||l.defaultProjectTrust!==C.defaultProjectTrust||l.doubleEscapeAction!==C.doubleEscapeAction||l.transport!==C.transport,I=[];for(let e of d)I.includes(e.provider)||I.push(e.provider);let R=l.defaultProvider?d.filter(e=>e.provider===l.defaultProvider):[],T=e=>({minHeight:30,padding:"0 12px",borderRadius:7,border:"1px solid var(--border)",background:e?"var(--bg-selected)":"var(--bg-panel)",color:e?"var(--text)":"var(--text-muted)",cursor:"pointer",fontSize:12,fontWeight:e?600:400}),M={marginBottom:22};return(0,r.jsxs)("div",{style:{height:"100%",display:"flex",flexDirection:"column",minHeight:0},children:[(0,r.jsxs)("div",{style:{flexShrink:0,padding:"16px 20px 0",display:"flex",gap:8,flexWrap:"wrap"},children:[(0,r.jsx)("button",{type:"button",onClick:()=>k("basic"),style:T("basic"===w),"aria-current":"basic"===w?"page":void 0,children:n("defaults_basicTab")}),(0,r.jsx)("button",{type:"button",onClick:()=>k("json"),style:T("json"===w),"aria-current":"json"===w?"page":void 0,children:n("defaults_jsonTab")})]}),"json"===w?(0,r.jsx)("div",{style:{flex:1,minHeight:0,display:"flex",flexDirection:"column"},children:(0,r.jsx)(lU,{stickyFooter:!0,onClose:t})}):(0,r.jsx)("div",{style:{flex:1,minHeight:0,overflowY:"auto",padding:"16px 20px 20px"},children:(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)("div",{style:{fontSize:11,color:"var(--text-dim)",lineHeight:1.6,marginBottom:16},children:n("defaults_hint")}),f&&(0,r.jsxs)("div",{style:{fontSize:12,color:"var(--status-danger)",marginBottom:12},children:[n("defaults_saveFailed"),": ",f]}),(0,r.jsxs)("div",{style:M,children:[(0,r.jsx)("div",{style:a7,children:n("defaults_modelSection")}),(0,r.jsxs)("div",{style:{display:"flex",flexDirection:"column",gap:12},children:[(0,r.jsxs)("div",{children:[(0,r.jsx)("div",{style:de,children:n("defaults_provider")}),(0,r.jsxs)("select",{value:l.defaultProvider,onChange:e=>{let t=e.target.value,n=d.filter(e=>e.provider===t).some(e=>e.id===l.defaultModel);a({...l,defaultProvider:t,defaultModel:n?l.defaultModel:""})},style:dn,children:[(0,r.jsx)("option",{value:"",children:n("defaults_providerUnset")}),l.defaultProvider&&!I.includes(l.defaultProvider)&&(0,r.jsx)("option",{value:l.defaultProvider,children:l.defaultProvider}),I.map(e=>(0,r.jsx)("option",{value:e,children:e},e))]})]}),(0,r.jsxs)("div",{children:[(0,r.jsx)("div",{style:de,children:n("defaults_model")}),(0,r.jsxs)("select",{value:l.defaultModel,onChange:e=>a({...l,defaultModel:e.target.value}),style:dn,disabled:!l.defaultProvider,children:[(0,r.jsx)("option",{value:"",children:n(l.defaultProvider?0!==R.length||l.defaultModel?"defaults_modelUnset":"defaults_modelEmpty":"defaults_modelUnset")}),l.defaultModel&&!R.some(e=>e.id===l.defaultModel)&&(0,r.jsx)("option",{value:l.defaultModel,children:l.defaultModel}),R.map(e=>(0,r.jsx)("option",{value:e.id,children:e.name&&e.name!==e.id?`${e.name} (${e.id})`:e.id},`${e.provider}:${e.id}`))]})]}),(0,r.jsxs)("div",{children:[(0,r.jsx)("div",{style:de,children:n("defaults_thinking")}),(0,r.jsxs)("select",{value:l.defaultThinkingLevel,onChange:e=>a({...l,defaultThinkingLevel:e.target.value}),style:dn,children:[(0,r.jsx)("option",{value:"",children:n("defaults_thinkingUnset")}),sf.map(e=>(0,r.jsx)("option",{value:e,children:e},e))]}),(0,r.jsx)("div",{style:{fontSize:10,color:"var(--text-dim)",marginTop:4},children:n("defaults_thinkingHint")})]})]})]}),(0,r.jsxs)("div",{style:M,children:[(0,r.jsx)("div",{style:a7,children:n("defaults_compactionSection")}),(0,r.jsxs)("div",{style:{display:"flex",flexDirection:"column",gap:12},children:[(0,r.jsx)(ds,{label:n("defaults_compactionEnabled"),checked:l.compactionEnabled,onChange:e=>a({...l,compactionEnabled:e})}),(0,r.jsx)(di,{label:"reserveTokens",value:l.compactionReserve,min:1,onChange:e=>a({...l,compactionReserve:e})}),(0,r.jsx)(di,{label:"keepRecentTokens",value:l.compactionKeep,min:1,onChange:e=>a({...l,compactionKeep:e})})]})]}),(0,r.jsxs)("div",{style:M,children:[(0,r.jsx)("div",{style:a7,children:n("defaults_retrySection")}),(0,r.jsxs)("div",{style:{display:"flex",flexDirection:"column",gap:12},children:[(0,r.jsx)(ds,{label:n("defaults_retryEnabled"),checked:l.retryEnabled,onChange:e=>a({...l,retryEnabled:e})}),(0,r.jsx)(di,{label:"maxRetries",value:l.retryMaxRetries,min:0,onChange:e=>a({...l,retryMaxRetries:e})}),(0,r.jsx)(di,{label:"baseDelayMs",value:l.retryBaseDelayMs,min:0,onChange:e=>a({...l,retryBaseDelayMs:e})})]})]}),(0,r.jsxs)("div",{style:M,children:[(0,r.jsx)("div",{style:a7,children:n("defaults_appearanceSection")}),(0,r.jsxs)("div",{style:{display:"flex",flexDirection:"column",gap:12},children:[(0,r.jsx)(ds,{label:n("defaults_hideThinkingBlock"),checked:l.hideThinkingBlock,onChange:e=>a({...l,hideThinkingBlock:e})}),(0,r.jsx)(ds,{label:n("defaults_showCacheMissNotices"),checked:l.showCacheMissNotices,onChange:e=>a({...l,showCacheMissNotices:e})})]})]}),(0,r.jsxs)("div",{style:M,children:[(0,r.jsx)("div",{style:a7,children:n("defaults_advancedSection")}),(0,r.jsxs)("div",{style:{display:"flex",flexDirection:"column",gap:12},children:[(0,r.jsx)(dr,{label:"httpProxy",value:l.httpProxy,onChange:e=>a({...l,httpProxy:e})}),(0,r.jsx)(di,{label:"httpIdleTimeoutMs",value:l.httpIdleTimeoutMs,min:1,onChange:e=>a({...l,httpIdleTimeoutMs:e})}),(0,r.jsx)(dr,{label:"sessionDir",value:l.sessionDir,onChange:e=>a({...l,sessionDir:e})}),(0,r.jsx)(dr,{label:"shellPath",value:l.shellPath,onChange:e=>a({...l,shellPath:e})}),(0,r.jsx)(dr,{label:"externalEditor",value:l.externalEditor,onChange:e=>a({...l,externalEditor:e})}),(0,r.jsxs)("div",{children:[(0,r.jsx)("div",{style:de,children:"defaultProjectTrust"}),(0,r.jsx)("input",{type:"text",value:l.defaultProjectTrust,placeholder:"always / ask / never",onChange:e=>a({...l,defaultProjectTrust:e.target.value}),style:{...dt,fontFamily:"inherit"}})]}),(0,r.jsxs)("div",{children:[(0,r.jsx)("div",{style:de,children:"doubleEscapeAction"}),(0,r.jsxs)("select",{value:l.doubleEscapeAction,onChange:e=>a({...l,doubleEscapeAction:e.target.value}),style:dn,children:[(0,r.jsx)("option",{value:"",children:"(未设置)"}),(0,r.jsx)("option",{value:"fork",children:"fork"}),(0,r.jsx)("option",{value:"tree",children:"tree"}),(0,r.jsx)("option",{value:"none",children:"none"})]})]}),(0,r.jsxs)("div",{children:[(0,r.jsx)("div",{style:de,children:"transport(模型传输通道)"}),(0,r.jsxs)("select",{value:l.transport,onChange:e=>a({...l,transport:e.target.value}),style:dn,children:[(0,r.jsx)("option",{value:"auto",children:"auto(默认:Codex/Responses 自动尝试 WebSocket)"}),(0,r.jsx)("option",{value:"sse",children:"sse(HTTP 流)"}),(0,r.jsx)("option",{value:"websocket",children:"websocket(WebSocket 直连,GPT Codex 快速通道)"})]})]}),(0,r.jsx)(ds,{label:n("defaults_quietStartup"),checked:l.quietStartup,onChange:e=>a({...l,quietStartup:e})})]})]})]})}),"basic"===w&&(0,r.jsxs)(lO,{fixedHint:"~/.pi/agent/settings.json",dynamicHint:f?(0,r.jsxs)("span",{style:{color:"var(--status-danger)"},children:[n("defaults_saveFailed"),": ",f]}):m?(0,r.jsx)("span",{style:{color:"var(--accent)"},children:n("common_saved")}):null,onClose:t,children:[(0,r.jsx)("button",{type:"button",onClick:()=>b(e=>e+1),disabled:u||h,style:lN(!(u||h)),children:n("common_reload")}),(0,r.jsx)("button",{type:"button",onClick:()=>void S(),disabled:!_||h,style:lD(!!(_&&!h)),children:n(h?"common_saving":"common_save")})]})]})}let dp={fontSize:12,fontWeight:600,color:"var(--text)",marginBottom:8};function dh({onClose:e}={}){let t,{t:n}=(0,ea.s9)(),[o,s]=(0,i.useState)(null),[l,a]=(0,i.useState)({system:"",systemAppend:"",agents:""}),[d,c]=(0,i.useState)(!0),[u,p]=(0,i.useState)(null),[h,g]=(0,i.useState)(null),[f,x]=(0,i.useState)(null),[m,v]=(0,i.useState)("system"),y=(0,i.useCallback)(async()=>{c(!0),g(null);try{let e=await fetch("/api/prompts",{cache:"no-store"});if(!e.ok){let t=await e.json().catch(()=>({}));throw Error(t.error??`HTTP ${e.status}`)}let t=await e.json(),n={system:{key:"system",enabled:!1,content:""},systemAppend:{key:"systemAppend",enabled:!1,content:""},agents:{key:"agents",enabled:!1,content:""}};for(let e of t.entries??[])e&&e.key in n&&(n[e.key]=e);s(n),a({system:n.system.content,systemAppend:n.systemAppend.content,agents:n.agents.content})}catch(e){g(e instanceof Error?e.message:String(e)),s(null)}finally{c(!1)}},[]);(0,i.useEffect)(()=>{y()},[y]);let b=(0,i.useCallback)(async(e,t)=>{p(e),g(null),x(null);try{let n=await fetch("/api/prompts",{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify({key:e,...t})});if(!n.ok){let e=await n.json().catch(()=>({}));throw Error(e.error??`HTTP ${n.status}`)}void 0!==t.enabled&&o&&s({...o,[e]:{...o[e],enabled:t.enabled}}),x(e),window.setTimeout(()=>x(null),2e3)}catch(e){g(e instanceof Error?e.message:String(e))}finally{p(null)}},[o]);if(d&&!o)return(0,r.jsx)("div",{style:{padding:"18px 20px",fontSize:12,color:"var(--text-muted)"},children:n("common_loading")});if(!o)return(0,r.jsx)("div",{style:{padding:"18px 20px"},children:(0,r.jsxs)("div",{style:{fontSize:12,color:"var(--status-danger)",marginBottom:10},children:[n("prompts_loadFailed"),": ",h]})});let w={system:"SYSTEM.md",systemAppend:"APPEND_SYSTEM.md",agents:"AGENTS.md"},k={system:n("prompts_systemTitle"),systemAppend:n("prompts_systemAppendTitle"),agents:n("prompts_agentsTitle")};return(0,r.jsxs)("div",{style:{height:"100%",display:"flex",flexDirection:"column",minHeight:0},children:[(0,r.jsx)("div",{style:{flexShrink:0,padding:"16px 20px 0",display:"flex",gap:8,flexWrap:"wrap"},children:["system","systemAppend","agents"].map(e=>{let t;return(0,r.jsx)("button",{type:"button",onClick:()=>v(e),style:{minHeight:28,padding:"0 12px",borderRadius:6,border:"1px solid var(--border)",background:(t=m===e)?"var(--bg-selected)":"var(--bg-panel)",color:t?"var(--text)":"var(--text-muted)",cursor:"pointer",fontSize:12,fontWeight:t?600:400},"aria-current":m===e?"page":void 0,children:k[e]},e)})}),(0,r.jsxs)("div",{style:{flex:1,minHeight:0,overflowY:"auto",padding:"12px 20px 20px",display:"flex",flexDirection:"column"},children:[h&&(0,r.jsxs)("div",{style:{flexShrink:0,fontSize:12,color:"var(--status-danger)",marginBottom:12},children:[n("prompts_saveFailed"),": ",h]}),(t=o[m],l[m],t.content,(0,r.jsxs)(r.Fragment,{children:[(0,r.jsxs)("div",{style:{flexShrink:0,display:"flex",alignItems:"center",gap:10,marginBottom:8},children:[(0,r.jsx)("div",{style:dp,children:k[m]}),(0,r.jsx)("span",{style:{fontSize:10,color:"var(--text-dim)",fontFamily:"var(--font-mono)"},children:w[m]}),(0,r.jsxs)("label",{style:{display:"inline-flex",alignItems:"center",gap:6,marginLeft:"auto",fontSize:12,color:"var(--text-muted)",cursor:"pointer"},children:[(0,r.jsx)("input",{type:"checkbox",checked:t.enabled,disabled:u===m,onChange:e=>void b(m,{enabled:e.target.checked})}),n("prompts_enabled")]})]}),(0,r.jsx)("textarea",{value:l[m],onChange:e=>{a(t=>({...t,[m]:e.target.value})),g(null),x(null)},spellCheck:!1,disabled:u===m,"aria-label":k[m],style:{width:"100%",flex:1,minHeight:0,padding:"10px 12px",borderRadius:7,border:"1px solid var(--border)",background:"var(--bg)",color:"var(--text)",fontSize:12,lineHeight:1.55,outline:"none",fontFamily:"var(--font-mono)",whiteSpace:"pre",overflow:"auto",boxSizing:"border-box",resize:"vertical",resize:"none",flex:1,minHeight:200}})]}))]}),(0,r.jsx)(lO,{fixedHint:w[m],dynamicHint:h?(0,r.jsxs)("span",{style:{color:"var(--status-danger)"},children:[n("prompts_saveFailed"),": ",h]}):o[m].enabled?f===m?(0,r.jsx)("span",{style:{color:"var(--accent)"},children:n("common_saved")}):null:(0,r.jsx)("span",{style:{color:"var(--text-dim)"},children:n("prompts_disabledDraftHint")}),onClose:e,children:(0,r.jsx)("button",{type:"button",onClick:()=>void b(m,{content:l[m]}),disabled:u===m||l[m]===o[m].content,style:lD(u!==m&&l[m]!==o[m].content),children:n(u===m?"common_saving":"common_save")})})]})}var dg=n(84747);let df=["general","appearance","models","defaults","prompts","skills","plugins"],dx={skills:"skills",plugins:"plugins"},dm="pidance:settings:page:v1",dv="appearance";function dy(e){try{let r=e.getItem(dm);if(null===r)return dv;var t,n=r;if("string"!=typeof n||!n)return dv;let i=n;try{i=JSON.parse(n)}catch{i=n}return i&&"object"==typeof i&&!Array.isArray(i)&&(i=i.page),"string"==typeof(t=i)&&df.includes(t)?i:dv}catch{return dv}}function db(e,t){return"back"===t.type?{page:null}:e.page===t.page?e:{page:t.page}}function dw(e){switch(e){case"general":return"common_general";case"appearance":return"common_appearance";case"models":return"common_models";case"defaults":return"common_defaults";case"prompts":return"common_prompts";case"skills":return"common_skills";case"plugins":return"common_plugins"}}function dk(){try{return dy(window.localStorage)}catch{return dy({getItem:()=>null,setItem:()=>{},removeItem:()=>{}})}}function dj({hint:e}){let{t}=(0,ea.s9)();return(0,r.jsxs)("div",{className:"settings-empty-state",children:[(0,r.jsx)("svg",{width:"22",height:"22",viewBox:"0 0 24 24",fill:"none",stroke:"var(--text-dim)",strokeWidth:"1.8",strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":"true",children:(0,r.jsx)("path",{d:"M3 7a2 2 0 0 1 2-2h4l2 2h8a2 2 0 0 1 2 2v9a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2Z"})}),(0,r.jsx)("div",{style:{fontSize:13,color:"var(--text)",fontWeight:600},children:t("common_selectProject")}),(0,r.jsx)("div",{style:{fontSize:12,color:"var(--text-muted)",lineHeight:1.6,maxWidth:380},children:t("common_selectProjectHint")})]})}function dS({label:e,options:t,value:n,onChange:i}){return(0,r.jsxs)("div",{className:"settings-choice",children:[(0,r.jsx)("div",{style:{fontSize:12,fontWeight:600,color:"var(--text)",marginBottom:8},children:e}),(0,r.jsx)("div",{className:"settings-segmented-control",role:"group","aria-label":e,children:t.map(e=>{let t=e.value===n;return(0,r.jsx)("button",{type:"button",className:`settings-segmented-option${t?" is-active":""}`,"aria-pressed":t,onClick:()=>i(e.value),children:e.label},e.value)})})]})}let dC={password_too_short:"general_passwordTooShort",remote_requires_password:"general_remoteRequiresPassword",port_invalid:"general_portInvalid",bad_request:"general_badRequest"};function d_({onClose:e}){let{t}=(0,ea.s9)(),[n,o]=(0,i.useState)(null),[s,l]=(0,i.useState)(!1),[a,d]=(0,i.useState)(!1),[c,u]=(0,i.useState)(!0),[p,h]=(0,i.useState)(null),[g,f]=(0,i.useState)(!1),[x,m]=(0,i.useState)(""),[v,y]=(0,i.useState)(""),[b,w]=(0,i.useState)(!1),[k,j]=(0,i.useState)(null),[S,C]=(0,i.useState)(!1),[_,I]=(0,i.useState)(null),[R,T]=(0,i.useState)(!1),[M,E]=(0,i.useState)(null);(0,i.useEffect)(()=>{u(K())},[]);let z=(0,i.useCallback)(()=>{let e=!1;return(async()=>{try{let t=await fetch("/api/auth/ui-session",{method:"GET",credentials:"same-origin",cache:"no-store"}),n=await t.json().catch(()=>({}));if(e)return;o({passwordRequired:!!n.passwordRequired,authenticated:!!n.authenticated}),l(!1)}catch{e||(l(!0),o(null))}})(),()=>{e=!0}},[]);(0,i.useEffect)(()=>z(),[z]);let L=(0,i.useCallback)(()=>{let e=!1;return(async()=>{try{let t=await fetch("/api/settings/remote",{cache:"no-store"});if(!t.ok)throw Error(`HTTP ${t.status}`);let n=await t.json();if(e)return;h({passwordSet:!!n.passwordSet,remoteEnabled:!!n.remoteEnabled,port:"number"==typeof n.port?n.port:null}),f(!1)}catch{e||f(!0)}})(),()=>{e=!0}},[]);(0,i.useEffect)(()=>L(),[L]);let W=(0,i.useCallback)(()=>{let e=!1;return(async()=>{try{let t=await fetch("/api/auth/ui-sessions",{cache:"no-store"});if(!t.ok)throw Error(`HTTP ${t.status}`);let n=await t.json();if(e)return;I(Array.isArray(n.devices)?n.devices:[]),T(!1)}catch{e||T(!0)}})(),()=>{e=!0}},[]);(0,i.useEffect)(()=>W(),[W]);let A=(0,i.useCallback)(async e=>{E(e.id);try{let t=await fetch(`/api/auth/ui-sessions/${encodeURIComponent(e.id)}`,{method:"DELETE"});if(!t.ok)throw Error(`HTTP ${t.status}`);e.current&&await (0,dg.b)(),W(),z()}catch{j(t("general_deviceRemoveFailed"))}finally{E(null)}},[W,z,t]);(0,i.useEffect)(()=>{p&&y(null===p.port?"":String(p.port))},[p]);let P=(0,i.useCallback)(async e=>{w(!0),j(null),C(!1);try{let n=await fetch("/api/settings/remote",{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify(e)}),r=await n.json().catch(()=>({}));if(!n.ok){let e=r.error&&dC[r.error]||"general_badRequest";return j(t(e)),!1}return h({passwordSet:!!r.passwordSet,remoteEnabled:!!r.remoteEnabled,port:"number"==typeof r.port?r.port:null}),C(!0),m(""),z(),!0}catch{return j(t("general_serverCheckFailed")),!1}finally{w(!1)}},[z,t]),$={fontSize:12,fontWeight:600,color:"var(--text)",marginBottom:8},[H,F]=(0,i.useState)("followUp");(0,i.useEffect)(()=>{F(B())},[]);let[D,N]=(0,i.useState)(!0);(0,i.useEffect)(()=>{N(sL())},[]);let U=(0,Z.Fd)(),[q,J]=(0,i.useState)(()=>!0===U.queueFlushAsOne);(0,i.useEffect)(()=>{J(!0===U.queueFlushAsOne);let e=(0,Z.b3)("streamingEnter");("steer"===e||"followUp"===e)&&(F(e),O(e));let t=(0,Z.b3)("autoUpdateCheck");"boolean"==typeof t&&(u(t),V(t))},[U]);let Y=t("common_loading");s?Y=t("general_loginCheckFailed"):n&&(Y=n.passwordRequired?n.authenticated?t("general_loginAuthenticated"):t("general_loginNotAuthenticated"):t("general_loginNotRequired"));let G=!!(n?.passwordRequired&&n.authenticated);return(0,r.jsxs)("div",{style:{height:"100%",display:"flex",flexDirection:"column",minHeight:0},children:[(0,r.jsxs)("div",{className:"settings-page-content",style:{flex:1,minHeight:0,overflowY:"auto"},children:[(0,r.jsxs)("div",{style:{marginBottom:22},children:[(0,r.jsx)("div",{style:$,children:t("general_loginSection")}),(0,r.jsx)("div",{style:{fontSize:11,color:"var(--text-dim)",lineHeight:1.6,marginBottom:12,maxWidth:480},children:t("general_loginHint")}),(0,r.jsx)("div",{style:{fontSize:12,color:"var(--text-muted)",marginBottom:4},children:t("general_loginStatus")}),(0,r.jsx)("div",{style:{fontSize:13,color:"var(--text)",marginBottom:14,lineHeight:1.5},children:Y}),G&&(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)("button",{type:"button",disabled:a,onClick:()=>{d(!0),(0,dg.b)()},style:{minHeight:32,padding:"0 14px",borderRadius:7,border:"1px solid var(--border)",background:"var(--bg-panel)",color:"var(--text)",cursor:a?"not-allowed":"pointer",fontSize:12,fontWeight:600,opacity:a?.65:1},children:t("auth_logout")}),(0,r.jsx)("div",{style:{marginTop:8,fontSize:11,color:"var(--text-dim)",maxWidth:420,lineHeight:1.45},children:t("general_logoutHint")}),(0,r.jsx)("div",{style:{marginTop:4,fontSize:11,color:"var(--text-dim)",maxWidth:420,lineHeight:1.45},children:t("general_trustedDeviceHint")})]}),(0,r.jsxs)("div",{style:{marginTop:14},children:[(0,r.jsx)("div",{style:{fontSize:12,fontWeight:600,color:"var(--text)",marginBottom:8},children:t("general_connectedDevices")}),R?(0,r.jsx)("div",{style:{fontSize:12,color:"var(--text-muted)"},children:t("general_serverCheckFailed")}):null===_?(0,r.jsx)("div",{style:{fontSize:12,color:"var(--text-muted)"},children:t("common_loading")}):0===_.length?(0,r.jsx)("div",{style:{fontSize:12,color:"var(--text-muted)"},children:t("general_noDevices")}):(0,r.jsx)("div",{style:{display:"flex",flexDirection:"column",gap:8,maxWidth:480,maxHeight:320,overflowY:"auto",overscrollBehavior:"contain"},children:_.map(e=>(0,r.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:10,fontSize:12,color:"var(--text)",border:"1px solid var(--border)",borderRadius:8,padding:"8px 10px",background:"var(--bg-panel)"},children:[(0,r.jsxs)("div",{style:{flex:1,minWidth:0},children:[(0,r.jsxs)("div",{style:{fontWeight:600,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:[e.label,e.current&&(0,r.jsx)("span",{style:{marginLeft:6,fontSize:10,color:"var(--accent)"},children:t("general_thisDevice")})]}),(0,r.jsx)("div",{style:{fontSize:10,color:"var(--text-dim)",marginTop:2},children:new Date(e.createdAt).toLocaleString()})]}),(0,r.jsx)("button",{type:"button",disabled:null!==M,onClick:()=>void A(e),style:{flexShrink:0,minHeight:28,padding:"0 10px",borderRadius:6,border:"1px solid var(--border)",background:"var(--bg)",color:"var(--text-muted)",cursor:null!==M?"not-allowed":"pointer",fontSize:11,fontWeight:600,opacity:null!==M&&M!==e.id?.5:1},children:t("general_deleteDevice")})]},e.id))})]})]}),(0,r.jsxs)("div",{style:{marginBottom:22},children:[(0,r.jsx)("div",{style:$,children:t("general_serverSection")}),(0,r.jsx)("div",{style:{fontSize:11,color:"var(--text-dim)",lineHeight:1.6,marginBottom:12,maxWidth:480},children:t("general_serverHint")}),(0,r.jsxs)("label",{style:{display:"flex",alignItems:"center",gap:8,fontSize:13,color:"var(--text)",cursor:"pointer",userSelect:"none"},children:[(0,r.jsx)("input",{type:"checkbox",checked:p?.remoteEnabled===!0,disabled:b||null===p,onChange:e=>{let n=e.target.checked;n&&p&&!p.passwordSet?j(t("general_remoteNeedsPassword")):P({remoteEnabled:n})},style:{width:16,height:16,accentColor:"var(--accent)"}}),(0,r.jsx)("span",{children:t("general_remoteEnabled")})]}),(0,r.jsx)("div",{style:{marginTop:6,fontSize:11,color:"var(--text-dim)",maxWidth:420,lineHeight:1.45},children:t("general_remoteHint")}),(0,r.jsxs)("div",{style:{marginTop:14},children:[(0,r.jsx)("div",{style:{fontSize:12,color:"var(--text-muted)",marginBottom:4},children:t("general_port")}),(0,r.jsxs)("div",{style:{display:"flex",gap:8,alignItems:"center"},children:[(0,r.jsx)("input",{type:"number",min:1,max:65535,placeholder:t("general_portPlaceholder"),value:v,disabled:b,onChange:e=>y(e.target.value),style:{width:130,padding:"7px 10px",borderRadius:7,border:"1px solid var(--border)",background:"var(--bg)",color:"var(--text)",fontSize:13,outline:"none"}}),(0,r.jsx)("button",{type:"button",disabled:b,onClick:()=>{let e=v.trim(),n=""===e?null:Number(e);null!==n&&(!Number.isInteger(n)||n<1||n>65535)?j(t("general_portInvalid")):P({port:n})},style:{minHeight:32,padding:"0 14px",borderRadius:7,border:"1px solid var(--border)",background:"var(--bg-panel)",color:"var(--text)",cursor:b?"not-allowed":"pointer",fontSize:12,fontWeight:600,opacity:b?.65:1},children:t("general_savePort")})]}),(0,r.jsx)("div",{style:{marginTop:6,fontSize:11,color:"var(--text-dim)",maxWidth:420,lineHeight:1.45},children:t("general_portHint")})]}),(0,r.jsx)("div",{style:{marginTop:14,fontSize:12,color:"var(--text-muted)",marginBottom:4},children:g?t("general_serverCheckFailed"):p?p.passwordSet?t("general_passwordSet"):t("general_passwordNotSet"):t("common_loading")}),(0,r.jsxs)("div",{style:{display:"flex",gap:8,flexWrap:"wrap",alignItems:"center"},children:[(0,r.jsx)("input",{type:"password",placeholder:t("general_newPassword"),value:x,disabled:b,onChange:e=>m(e.target.value),style:{width:170,padding:"7px 10px",borderRadius:7,border:"1px solid var(--border)",background:"var(--bg)",color:"var(--text)",fontSize:13,outline:"none"}}),p?.passwordSet&&(0,r.jsx)("span",{style:{fontSize:12,color:"var(--text-muted)"},children:t("general_newPasswordHint")}),(0,r.jsx)("button",{type:"button",disabled:b,onClick:()=>{x.length<6?j(t("general_passwordTooShort")):P({password:x})},style:{minHeight:32,padding:"0 14px",borderRadius:7,border:"1px solid var(--border)",background:"var(--bg-panel)",color:"var(--text)",cursor:b?"not-allowed":"pointer",fontSize:12,fontWeight:600,opacity:b?.65:1},children:t("general_setPassword")}),p?.passwordSet&&(0,r.jsx)("button",{type:"button",disabled:b,onClick:()=>void P({clearPassword:!0}),style:{minHeight:32,padding:"0 14px",borderRadius:7,border:"1px solid var(--border)",background:"var(--bg-panel)",color:"var(--text)",cursor:b?"not-allowed":"pointer",fontSize:12,fontWeight:600,opacity:b?.65:1},children:t("general_clearPassword")})]}),k&&(0,r.jsx)("div",{style:{marginTop:8,fontSize:12,color:"var(--error-text)",maxWidth:420,lineHeight:1.45},children:k}),S&&(0,r.jsx)("div",{style:{marginTop:8,fontSize:12,color:"var(--text-muted)"},children:t("general_saved")}),(0,r.jsx)("div",{style:{marginTop:8,fontSize:11,color:"var(--text-dim)",maxWidth:420,lineHeight:1.45},children:t("general_serverRestartHint")})]}),(0,r.jsxs)("div",{style:{marginBottom:22},children:[(0,r.jsx)("div",{style:$,children:t("general_updateSection")}),(0,r.jsx)("div",{style:{fontSize:11,color:"var(--text-dim)",lineHeight:1.6,marginBottom:12,maxWidth:480},children:t("general_updateHint")}),(0,r.jsxs)("label",{style:{display:"flex",alignItems:"center",gap:10,fontSize:13,color:"var(--text)",cursor:"pointer",userSelect:"none"},children:[(0,r.jsx)("input",{type:"checkbox",checked:c,onChange:e=>{let t=e.target.checked;u(t),V(t),(0,Z.dM)("autoUpdateCheck",t)},style:{width:16,height:16,accentColor:"var(--accent)"}}),(0,r.jsx)("span",{children:t("general_autoUpdateCheck")})]})]}),(0,r.jsxs)("div",{children:[(0,r.jsx)("div",{style:$,children:t("general_interactionSection")}),(0,r.jsxs)("div",{style:{display:"flex",flexDirection:"column",gap:14},children:[(0,r.jsxs)("div",{children:[(0,r.jsx)("div",{style:{fontSize:12,color:"var(--text-muted)",marginBottom:4},children:t("defaults_streamingEnter")}),(0,r.jsxs)("select",{value:H,onChange:e=>{let t="steer"===e.target.value?"steer":"followUp";F(t),O(t),(0,Z.dM)("streamingEnter",t),window.dispatchEvent(new Event("pidance:streaming-enter-changed"))},style:{width:"100%",maxWidth:420,padding:"7px 10px",borderRadius:7,border:"1px solid var(--border)",background:"var(--bg)",color:"var(--text)",fontSize:13,outline:"none",cursor:"pointer"},children:[(0,r.jsx)("option",{value:"followUp",children:t("defaults_streamingEnterQueue")}),(0,r.jsx)("option",{value:"steer",children:t("defaults_streamingEnterSteer")})]}),(0,r.jsx)("div",{style:{marginTop:6,fontSize:11,color:"var(--text-dim)",maxWidth:420,lineHeight:1.45},children:t("defaults_streamingEnterHint")})]}),(0,r.jsxs)("label",{style:{display:"flex",alignItems:"center",gap:8,fontSize:13,color:"var(--text)",cursor:"pointer",userSelect:"none"},children:[(0,r.jsx)("input",{type:"checkbox",checked:D,onChange:e=>{let t=e.target.checked;N(t),sW(t)},style:{width:16,height:16,accentColor:"var(--accent)"}}),t("defaults_completionSound")]}),(0,r.jsx)("div",{style:{marginTop:-6,fontSize:11,color:"var(--text-dim)",maxWidth:420,lineHeight:1.45},children:t("defaults_completionSoundHint")}),(0,r.jsxs)("label",{style:{display:"flex",alignItems:"center",gap:8,fontSize:13,color:"var(--text)",cursor:"pointer",userSelect:"none"},children:[(0,r.jsx)("input",{type:"checkbox",checked:q,onChange:e=>{let t=e.target.checked;J(t),(0,Z.dM)("queueFlushAsOne",t)},style:{width:16,height:16,accentColor:"var(--accent)"}}),t("defaults_queueFlushAsOne")]}),(0,r.jsx)("div",{style:{marginTop:-6,fontSize:11,color:"var(--text-dim)",maxWidth:420,lineHeight:1.45},children:t("defaults_queueFlushAsOneHint")})]})]})]}),(0,r.jsx)(lO,{onClose:e})]})}function dI({onClose:e}){let{mode:t,themeStyle:n,setTheme:i,setThemeStyle:o}=nQ(),{locale:s,setLocale:l,t:a}=(0,ea.s9)();return(0,r.jsxs)("div",{style:{height:"100%",display:"flex",flexDirection:"column",minHeight:0},children:[(0,r.jsxs)("div",{className:"settings-page-content",style:{flex:1,minHeight:0,overflowY:"auto"},children:[(0,r.jsx)(dS,{label:a("appearance_colorMode"),options:[{value:"light",label:a("appearance_light")},{value:"dark",label:a("appearance_dark")},{value:"system",label:a("appearance_system")}],value:t,onChange:e=>i(e)}),(0,r.jsx)(dS,{label:a("appearance_themeStyle"),options:[{value:"chamber",label:a("appearance_chamber")},{value:"fusion",label:a("appearance_fusion")}],value:n,onChange:e=>o(e)}),(0,r.jsx)(dS,{label:a("appearance_language"),options:[{value:"en",label:"English"},{value:"zh-CN",label:"简体中文"}],value:s,onChange:e=>l(e)}),(0,r.jsx)("div",{style:{fontSize:11,color:"var(--text-dim)",lineHeight:1.6,maxWidth:420},children:a("appearance_coverage")})]}),(0,r.jsx)(lO,{onClose:e})]})}function dR({cwd:e,sessionId:t,onClose:n,onModelsChanged:o,onAuthStateChange:s,onPluginsReloaded:l,initialPage:a}){let{t:d}=(0,ea.s9)(),c=nv(),[u,p]=(0,i.useState)(dk);(0,i.useEffect)(()=>{a&&p(a)},[a]);let[h,g]=(0,i.useState)({page:null});(0,i.useEffect)(()=>{try{window.localStorage.setItem(dm,JSON.stringify(u))}catch{}},[u]);let f=!!e,x=(0,i.useMemo)(()=>df.map(e=>{let t="skills"===e||"plugins"===e,n=!t||f;return{id:e,label:e,requiresCwd:t,available:n,...n?{}:{unavailableHint:dx[e]}}}),[f]),m=x.find(e=>e.id===u)??x[0],v=(0,i.useCallback)(e=>{p(e),g(t=>db(t,{type:"select",page:e}))},[]),y=(0,i.useCallback)(()=>{g(e=>db(e,{type:"back"}))},[]),b=()=>{if(!m.available)return(0,r.jsx)(dj,{hint:m.unavailableHint});switch(m.id){case"general":return(0,r.jsx)(d_,{onClose:n});case"appearance":return(0,r.jsx)(dI,{onClose:n});case"models":return(0,r.jsx)(aD,{embedded:!0,onClose:o??n,onAuthStateChange:s});case"defaults":return(0,r.jsx)(du,{cwd:e,onClose:n});case"prompts":return(0,r.jsx)(dh,{onClose:n});case"skills":return(0,r.jsx)(aY,{embedded:!0,globalOnly:!0,cwd:e,onClose:n});case"plugins":return(0,r.jsx)(a9,{embedded:!0,cwd:e,sessionId:t,onClose:n,onReloaded:l})}},w=(0,r.jsx)("div",{className:"settings-nav-list",children:x.map(e=>{let t=e.id===m.id;return(0,r.jsxs)("button",{type:"button",className:`settings-nav-item${!c&&t?" is-active":""}`,"aria-current":!c&&t?"page":void 0,onClick:()=>v(e.id),style:{minHeight:c?44:34,padding:c?"0 12px":"0 10px 0 12px"},children:[(0,r.jsx)("span",{style:{flex:1,minWidth:0,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:d(dw(e.id))}),!e.available&&(0,r.jsx)("span",{style:{fontSize:10,color:"var(--text-dim)",flexShrink:0},children:d("common_needsProject")}),c&&(0,r.jsx)("svg",{width:"12",height:"12",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",style:{color:"var(--text-dim)",flexShrink:0},"aria-hidden":"true",children:(0,r.jsx)("polyline",{points:"9 18 15 12 9 6"})})]},e.id)})}),k=c&&null!==h.page?(0,r.jsxs)("button",{type:"button",onClick:y,"aria-label":d("common_back"),style:{flexShrink:0,display:"flex",alignItems:"center",gap:4,minHeight:32,padding:"0 8px",background:"none",border:"none",borderRadius:7,color:"var(--text-muted)",cursor:"pointer",fontSize:12},children:[(0,r.jsx)("svg",{width:"12",height:"12",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":"true",children:(0,r.jsx)("polyline",{points:"15 18 9 12 15 6"})}),d("common_back")]}):void 0;return(0,r.jsx)(eX,{open:!0,onClose:n,closeLabel:d("dialog_close"),title:c&&null!==h.page?d(dw(m.id)):d("common_settings"),width:920,zIndex:1e3,headerActions:k,contentPadding:"0",children:(0,r.jsx)("div",{className:"settings-layout",children:c?null===h.page?(0,r.jsx)("nav",{"aria-label":d("common_settings"),style:{flex:1,overflowY:"auto"},children:w}):(0,r.jsx)("section",{"aria-label":d(dw(m.id)),className:"settings-content-pane",children:(0,r.jsx)("div",{className:"settings-scroll-region",children:b()})}):(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)("nav",{"aria-label":d("common_settings"),style:{width:190,flexShrink:0,borderRight:"1px solid var(--border)",background:"var(--bg-panel)",overflowY:"auto"},children:w}),(0,r.jsx)("section",{"aria-label":d(dw(m.id)),className:"settings-content-pane",children:(0,r.jsx)("div",{className:"settings-scroll-region",children:b()})})]})})})}function dT(e,...t){let n=e.toLowerCase();if(!n)return 0;let r=-1;for(let e of t){let t=e.toLowerCase(),i=t.indexOf(n);if(-1===i)continue;let o=1e3-2*i-(t.length>n.length);o>r&&(r=o)}if(r>=0)return r;for(let e of n)if(!t.some(t=>t.toLowerCase().indexOf(e,0)>=0))return -1;return 1}function dM({open:e,onClose:t,onSelectSession:n,onNewSession:o,onOpenFile:s,onOpenSettings:l,onToggleTheme:a,cwd:d}){let{t:c}=(0,ea.s9)(),[u,p]=(0,i.useState)(""),[h,g]=(0,i.useState)([]),[f,x]=(0,i.useState)([]),[m,v]=(0,i.useState)(!1),[y,b]=(0,i.useState)(0),w=(0,i.useRef)(null),k=(0,i.useRef)(0);(0,i.useEffect)(()=>{if(!e)return;p(""),b(0),w.current?.focus();let t=!1;return(async()=>{try{let e=await fetch("/api/sessions"),n=((await e.json()).sessions??[]).map(e=>({id:e.id,title:e.name||e.firstMessage||e.id.slice(0,12),cwd:e.cwd??"",session:e}));t||g(n)}catch{}})(),()=>{t=!0}},[e]),(0,i.useEffect)(()=>{if(!e||!d||u.trim().length<2)return void x([]);let t=++k.current,n=setTimeout(()=>{(async()=>{v(!0);try{let e=new URLSearchParams({cwd:d,q:u.trim()}),n=await fetch(`/api/file-index?${e.toString()}`),r=((await n.json()).files??[]).slice(0,12).map(e=>({path:e,name:e.split("/").pop()??e}));t===k.current&&x(r)}catch{t===k.current&&x([])}finally{t===k.current&&v(!1)}})()},180);return()=>clearTimeout(n)},[e,d,u]);let j=(0,i.useMemo)(()=>{let e=u.trim();return e?h.map(t=>({s:t,score:dT(e,t.title,t.cwd)})).filter(e=>e.score>=0).sort((e,t)=>t.score-e.score).slice(0,8).map(e=>e.s):h.slice(0,8)},[h,u]),S=(0,i.useMemo)(()=>{let e=u.trim(),t=[],r=[{key:"new",kind:"action",title:c("palette_newSession"),run:o},{key:"theme",kind:"action",title:c("palette_toggleTheme"),run:a},{key:"set-models",kind:"action",title:c("palette_settingsModels"),run:()=>l("models")},{key:"set-skills",kind:"action",title:c("palette_settingsSkills"),run:()=>l("skills")},{key:"set-plugins",kind:"action",title:c("palette_settingsPlugins"),run:()=>l("plugins")}];for(let i of(e?t.push(...r.filter(t=>dT(e,t.title)>=0)):t.push(...r),j))t.push({key:`s:${i.id}`,kind:"session",title:i.title,subtitle:i.cwd,run:()=>n(i.session)});for(let e of f)t.push({key:`f:${e.path}`,kind:"file",title:e.name,subtitle:e.path,run:()=>s(e.path,e.name)});return t},[j,f,u,c,o,n,s,l,a]);return((0,i.useEffect)(()=>{if(!e)return;let n=e=>{if("ArrowDown"===e.key)e.preventDefault(),b(e=>Math.min(e+1,S.length-1));else if("ArrowUp"===e.key)e.preventDefault(),b(e=>Math.max(e-1,0));else if("Enter"===e.key){e.preventDefault();let n=S[Math.min(y,S.length-1)];n&&(t(),n.run())}else"Escape"===e.key&&(e.preventDefault(),t())};return window.addEventListener("keydown",n),()=>window.removeEventListener("keydown",n)},[e,S,y,t]),(0,i.useEffect)(()=>{b(0)},[u]),e)?(0,r.jsx)("div",{role:"dialog","aria-modal":"true","aria-label":c("palette_title"),style:{position:"fixed",inset:0,zIndex:200,display:"flex",alignItems:"flex-start",justifyContent:"center",paddingTop:"12vh",padding:"12vh 20px 20px",background:"rgba(0,0,0,0.28)"},onMouseDown:e=>{e.target===e.currentTarget&&t()},children:(0,r.jsxs)("div",{style:{width:"min(620px, 100%)",maxHeight:"70vh",display:"flex",flexDirection:"column",borderRadius:12,border:"1px solid var(--border)",background:"var(--bg)",boxShadow:"0 24px 70px rgba(0,0,0,0.3)",overflow:"hidden"},children:[(0,r.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:8,padding:"10px 12px",borderBottom:"1px solid var(--border)"},children:[(0,r.jsxs)("svg",{width:"15",height:"15",viewBox:"0 0 24 24",fill:"none",stroke:"var(--text-dim)",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":"true",children:[(0,r.jsx)("circle",{cx:"11",cy:"11",r:"8"}),(0,r.jsx)("path",{d:"m21 21-4.3-4.3"})]}),(0,r.jsx)("input",{ref:w,value:u,onChange:e=>p(e.target.value),placeholder:c("palette_placeholder"),"aria-label":c("palette_title"),style:{flex:1,minWidth:0,background:"none",border:"none",outline:"none",color:"var(--text)",fontSize:14,fontFamily:"inherit"}}),m&&(0,r.jsx)("span",{style:{fontSize:10,color:"var(--text-dim)"},children:c("palette_searching")})]}),(0,r.jsxs)("div",{style:{overflowY:"auto",padding:6,flex:1},children:[0===S.length&&(0,r.jsx)("div",{style:{padding:"14px 12px",fontSize:12,color:"var(--text-dim)"},children:c("palette_noResults")}),S.map((e,n)=>{let i=n===y;return(0,r.jsxs)("button",{type:"button",onMouseEnter:()=>b(n),onClick:()=>{t(),e.run()},style:{display:"flex",flexDirection:"column",alignItems:"flex-start",gap:2,width:"100%",padding:"7px 10px",borderRadius:8,border:"none",background:i?"var(--bg-selected)":"transparent",color:"var(--text)",cursor:"pointer",textAlign:"left",fontSize:12.5},children:[(0,r.jsxs)("span",{style:{display:"flex",alignItems:"center",gap:7,minWidth:0,maxWidth:"100%"},children:["session"===e.kind&&(0,r.jsx)("svg",{width:"11",height:"11",viewBox:"0 0 24 24",fill:"none",stroke:"var(--text-dim)",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":"true",children:(0,r.jsx)("path",{d:"M21 15a2 2 0 0 1-2 2H7l-4 4V5a2 2 0 0 1 2-2h14a2 2 0 0 1 2 2z"})}),"file"===e.kind&&(0,r.jsxs)("svg",{width:"11",height:"11",viewBox:"0 0 24 24",fill:"none",stroke:"var(--text-dim)",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":"true",children:[(0,r.jsx)("path",{d:"M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8z"}),(0,r.jsx)("polyline",{points:"14 2 14 8 20 8"})]}),"action"===e.kind&&(0,r.jsxs)("svg",{width:"11",height:"11",viewBox:"0 0 24 24",fill:"none",stroke:"var(--text-dim)",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":"true",children:[(0,r.jsx)("polyline",{points:"9 10 4 15 9 20"}),(0,r.jsx)("path",{d:"M20 4v7a4 4 0 0 1-4 4H4"})]}),(0,r.jsx)("span",{style:{overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:e.title})]}),e.subtitle&&(0,r.jsx)("span",{style:{fontSize:10.5,color:"var(--text-dim)",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",maxWidth:"100%",paddingLeft:18},children:e.subtitle})]},e.key)})]})]})}):null}async function dE(e,t){let n=await fetch("/api/update/apply?stream=1",{method:"POST",headers:{"Content-Type":"application/json",Accept:"text/event-stream"},body:JSON.stringify({version:e,stream:!0})});if(!n.ok||!n.body){let t=await n.json().catch(()=>null);return{ok:!1,status:t?.status||"error",message:t?.message||`HTTP ${n.status}`,targetVersion:t?.targetVersion??e}}let r=n.body.getReader(),i=new TextDecoder,o="",s=null;for(;;){let{done:e,value:n}=await r.read();if(e)break;let l=(o+=i.decode(n,{stream:!0})).split("\n\n");for(let e of(o=l.pop()??"",l)){let n=e.split("\n").find(e=>e.startsWith("data: "));if(n)try{let e=JSON.parse(n.slice(6));"progress"===e.type&&e.phase?t({phase:e.phase,percent:"number"==typeof e.percent?e.percent:0,message:e.message||""}):"result"===e.type&&e.result&&(s=e.result)}catch{}}}return s??{ok:!1,status:"error",message:"升级未返回结果",targetVersion:e}}function dz(e){return new Promise(t=>{setTimeout(t,e)})}async function dL(e={}){let t=e.timeoutMs??18e4,n=e.intervalMs??1500,r=e.fetchImpl??globalThis.fetch.bind(globalThis),i=e.now??Date.now,o=e.sleepImpl??dz,s=i();for(;i()-s<t;){e.onTick?.(i()-s);try{let t=await r("/api/about",{cache:"no-store",credentials:"same-origin"});if(401===t.status||403===t.status)return!0;if(t.ok){let n=await t.json();if(!e.expectedVersion||"string"==typeof n.version&&n.version===e.expectedVersion)return!0}}catch{}await o(n)}return!1}async function dW(e,t,n){var r,i;let o,s="preparing",l=n?.wait??dL,a=e=>{s=e.phase,t(e)};try{o=await dE(e,a)}catch(t){o={ok:!1,status:"error",message:t instanceof Error?t.message:String(t),targetVersion:e}}if(!(o.ok&&("upgraded"===o.status||"already_latest"===o.status)||(r=s,!(i=o).ok&&(i.message.includes("升级未返回结果")||/network|fetch|abort|failed/i.test(i.message))&&("restarting"===r||"linking"===r||"done"===r))))return o;let d=o.targetVersion??e;return(a({phase:"waiting",percent:97,message:"等待服务就绪…"}),await l({expectedVersion:"already_latest"===o.status?void 0:d,fetchImpl:n?.fetchImpl,onTick:e=>{a({phase:"waiting",percent:Math.min(99,97+Math.floor(e/3e4)),message:"等待服务就绪…"})}}))?{ok:!0,status:o.ok?o.status:"upgraded",message:o.ok?o.message:`已升级到 ${d}`,targetVersion:d}:{ok:!1,status:"error",message:"已切换版本,但等待服务就绪超时,请手动刷新",targetVersion:d}}function dA(){let{t:e}=(0,ea.s9)(),[t,n]=(0,i.useState)(!1),[r,o]=(0,i.useState)(null),[s,l]=(0,i.useState)(null),[a,d]=(0,i.useState)(null),[c,u]=(0,i.useState)(!1),p=(0,i.useCallback)(()=>{n(!1),o(null),l(null),d(null)},[]);return{overlay:t,progress:r,resultMsg:s,doneOk:a,busy:c,run:(0,i.useCallback)(async t=>{u(!0),n(!0),d(null),l(null),o({phase:"preparing",percent:3,message:e("update_phasePreparing")});try{let n=await dW(t,o),r=!!(n.ok&&("upgraded"===n.status||"already_latest"===n.status));if(d(r),r){let r=e("about_upgradeDone",{version:n.targetVersion??t});return o({phase:"done",percent:100,message:r}),l(r),window.location.reload(),{ok:!0,message:r}}let i="not_supported"===n.status?e("about_upgradeNotSupported"):e("about_upgradeFailed",{message:n.message});return o({phase:"error",percent:100,message:n.message}),l(i),{ok:!1,message:i,status:n.status}}catch(r){let t=r instanceof Error?r.message:String(r),n=e("about_upgradeFailed",{message:t});return d(!1),o({phase:"error",percent:100,message:t}),l(n),{ok:!1,message:n}}finally{u(!1)}},[e]),close:p}}function dP({currentVersion:e,latestVersion:t,progress:n,resultMsg:i,doneOk:o,onReload:s,onClose:l}){let{t:a}=(0,ea.s9)(),d=null===o;return(0,r.jsx)("div",{role:"alertdialog","aria-modal":"true","aria-busy":d,"aria-label":a("update_overlayTitle"),style:{position:"fixed",inset:0,zIndex:400,background:"color-mix(in srgb, var(--bg) 72%, #000)",backdropFilter:"blur(6px)",display:"flex",alignItems:"center",justifyContent:"center",padding:24},children:(0,r.jsxs)("div",{style:{width:"min(100%, 420px)",borderRadius:14,border:"1px solid var(--border)",background:"var(--bg-panel)",boxShadow:"0 20px 48px color-mix(in srgb, var(--text) 18%, transparent)",padding:"28px 24px 22px",display:"flex",flexDirection:"column",gap:16},children:[(0,r.jsx)("div",{style:{fontSize:16,fontWeight:700,color:"var(--text)",textAlign:"center"},children:a("update_overlayTitle")}),(e||t)&&(0,r.jsxs)("div",{style:{fontSize:12,color:"var(--text-muted)",textAlign:"center",fontVariantNumeric:"tabular-nums"},children:[e," → ",t]}),(0,r.jsxs)("div",{style:{display:"flex",flexDirection:"column",gap:10,alignItems:"center",textAlign:"center"},children:[(0,r.jsx)("div",{style:{fontSize:14,fontWeight:650,color:"var(--text)"},children:a(n?function(e){switch(e){case"preparing":return"update_phasePreparing";case"downloading":return"update_phaseDownloading";case"installing":return"update_phaseInstalling";case"linking":return"update_phaseLinking";case"restarting":return"update_phaseRestarting";case"waiting":return"update_phaseWaiting";case"done":return"update_phaseDone";default:return"update_phaseError"}}(n.phase):"update_phasePreparing")}),(0,r.jsx)("div",{style:{fontSize:12,color:"var(--text-muted)",lineHeight:1.55,minHeight:36,maxWidth:320},children:n?.message||a("update_phasePreparing")}),d&&(0,r.jsx)("div",{"aria-hidden":"true",style:{width:28,height:28,borderRadius:"50%",border:"2px solid var(--border)",borderTopColor:"var(--accent)",animation:"sidebar-running-spin 0.9s linear infinite"}})]}),i&&null!==o&&(0,r.jsxs)("div",{style:{fontSize:12,color:o?"var(--status-success)":"var(--status-danger)",textAlign:"center",whiteSpace:"pre-wrap"},children:[i,o&&(0,r.jsx)("div",{style:{marginTop:6,color:"var(--text-dim)",fontSize:11},children:a("update_reloadHint")})]}),null!==o&&(0,r.jsx)("div",{style:{display:"flex",justifyContent:"center",gap:8},children:o?(0,r.jsx)("button",{type:"button",onClick:s,style:{padding:"8px 16px",borderRadius:8,border:"none",background:"var(--accent)",color:"#fff",fontWeight:600,fontSize:12,cursor:"pointer"},children:a("update_reload")}):(0,r.jsx)("button",{type:"button",onClick:l,style:{padding:"8px 16px",borderRadius:8,border:"1px solid var(--border)",background:"var(--bg)",color:"var(--text)",fontWeight:600,fontSize:12,cursor:"pointer"},children:a("close")})})]})})}var d$=n(41463);function dH(e){let t=d$.env[e];if("string"!=typeof t)return;let n=t.trim();return n&&"unknown"!==n?n:void 0}function dF(...e){for(let t of e)if("string"==typeof t){let e=t.trim();if(e)return e}return"—"}function dD({open:e,onClose:t}){let{t:n}=(0,ea.s9)(),[o,s]=(0,i.useState)(()=>({name:"Pidance",version:dH("NEXT_PUBLIC_APP_VERSION"),piSdkVersion:dH("NEXT_PUBLIC_PI_VERSION"),homepage:"https://github.com/henlii/pidance#readme",repository:"https://github.com/henlii/pidance"})),[l,a]=(0,i.useState)(!1),[d,c]=(0,i.useState)(null),[u,p]=(0,i.useState)(null),{overlay:h,progress:g,resultMsg:f,doneOk:x,busy:m,run:v,close:y}=dA();(0,i.useEffect)(()=>{if(!e)return;let t=!1;return(async()=>{try{let e=await fetch("/api/about",{cache:"no-store"});if(!e.ok)return;let n=await e.json();if(t)return;s(e=>({name:n.name||e.name||"Pidance",version:n.version||e.version||dH("NEXT_PUBLIC_APP_VERSION"),piSdkVersion:n.piSdkVersion||e.piSdkVersion||dH("NEXT_PUBLIC_PI_VERSION"),homepage:n.homepage||e.homepage,repository:n.repository||e.repository}))}catch{}})(),()=>{t=!0}},[e]);let b=(0,i.useCallback)(async()=>{a(!0),p(null);try{let e=await fetch("/api/update/check",{cache:"no-store"});if(!e.ok)throw Error(`HTTP ${e.status}`);let t=await e.json();c(t),t.updateAvailable?p(n("about_updateAvailable",{current:t.currentVersion,latest:t.latestVersion??"?"})):p(n("about_upToDate",{version:t.currentVersion}))}catch(e){p(n("about_upgradeFailed",{message:e instanceof Error?e.message:String(e)}))}finally{a(!1)}},[n]),w=(0,i.useCallback)(async()=>{d?.updateAvailable&&d.latestVersion&&(p(null),p((await v(d.latestVersion)).message))},[d,v]),k=o.repository??o.homepage??"https://github.com/henlii/pidance",j=dF(o.version,dH("NEXT_PUBLIC_APP_VERSION")),S=dF(o.piSdkVersion,dH("NEXT_PUBLIC_PI_VERSION"));return(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(eX,{open:e,onClose:t,title:n("about_title"),width:360,closeLabel:n("close"),contentPadding:"20px 22px 22px",children:(0,r.jsxs)("div",{style:{display:"flex",flexDirection:"column",alignItems:"center",textAlign:"center",gap:14},children:[(0,r.jsx)("img",{src:"/brand/pidance-logo.png",alt:"",width:64,height:64,style:{width:64,height:64,borderRadius:14,objectFit:"contain",flexShrink:0}}),(0,r.jsxs)("div",{style:{display:"flex",flexDirection:"column",gap:6,width:"100%"},children:[(0,r.jsx)("div",{style:{fontSize:17,fontWeight:650,color:"var(--text)",letterSpacing:"-0.01em"},children:"Pidance"}),(0,r.jsxs)("div",{style:{fontSize:12,color:"var(--text-muted)",lineHeight:1.65,fontVariantNumeric:"tabular-nums"},children:[(0,r.jsx)("div",{children:n("about_version",{version:j})}),(0,r.jsx)("div",{children:n("about_piSdkVersion",{version:S})})]})]}),(0,r.jsxs)("div",{style:{display:"flex",flexDirection:"column",gap:8,width:"100%",alignItems:"center"},children:[(0,r.jsx)("button",{type:"button",disabled:l||m,onClick:()=>{b()},style:{padding:"6px 14px",borderRadius:8,border:"1px solid var(--border)",background:"var(--bg-panel)",color:"var(--text)",fontSize:12,fontWeight:600,cursor:l||m?"wait":"pointer"},children:l?n("about_checkingUpdate"):n("about_checkUpdate")}),u&&(0,r.jsxs)("div",{style:{fontSize:11,color:"var(--text-muted)",lineHeight:1.5,maxWidth:280},children:[u,d&&!d.upgradeSupported&&d.updateAvailable&&(0,r.jsx)("div",{style:{marginTop:4,color:"var(--text-dim)"},children:n("update_bannerWorkspace")})]}),d?.updateAvailable&&d.upgradeSupported&&(0,r.jsx)("button",{type:"button",disabled:m,onClick:()=>{w()},style:{padding:"6px 14px",borderRadius:8,border:"none",background:"var(--accent)",color:"#fff",fontSize:12,fontWeight:600,cursor:m?"wait":"pointer",opacity:m?.7:1},children:m?n("about_upgrading"):n("about_upgradeNow")})]}),(0,r.jsxs)("a",{href:k,target:"_blank",rel:"noopener noreferrer",style:{display:"inline-flex",alignItems:"center",gap:6,fontSize:12,color:"var(--text-muted)",textDecoration:"none",padding:"4px 8px",borderRadius:6,transition:"color 0.12s, background 0.12s"},onMouseEnter:e=>{e.currentTarget.style.color="var(--text)",e.currentTarget.style.background="var(--bg-hover)"},onMouseLeave:e=>{e.currentTarget.style.color="var(--text-muted)",e.currentTarget.style.background="transparent"},children:[(0,r.jsx)("svg",{width:"14",height:"14",viewBox:"0 0 24 24",fill:"currentColor","aria-hidden":"true",children:(0,r.jsx)("path",{d:"M12 2C6.477 2 2 6.477 2 12c0 4.418 2.865 8.166 6.839 9.489.5.092.682-.217.682-.482 0-.237-.009-.866-.013-1.7-2.782.604-3.369-1.341-3.369-1.341-.454-1.155-1.11-1.463-1.11-1.463-.908-.62.069-.608.069-.608 1.003.07 1.531 1.03 1.531 1.03.892 1.53 2.341 1.088 2.91.832.092-.647.35-1.088.636-1.338-2.22-.253-4.555-1.11-4.555-4.943 0-1.091.39-1.984 1.029-2.683-.103-.253-.446-1.27.098-2.647 0 0 .84-.269 2.75 1.025A9.564 9.564 0 0 1 12 6.844c.85.004 1.705.115 2.504.337 1.909-1.294 2.747-1.025 2.747-1.025.546 1.377.203 2.394.1 2.647.64.699 1.028 1.592 1.028 2.683 0 3.842-2.339 4.687-4.566 4.936.359.309.678.92.678 1.855 0 1.338-.012 2.419-.012 2.749 0 .267.18.579.688.481C19.138 20.163 22 16.416 22 12c0-5.523-4.477-10-10-10Z"})}),(0,r.jsx)("span",{children:n("about_github")})]}),(0,r.jsx)("p",{style:{margin:0,fontSize:11,color:"var(--text-dim)",lineHeight:1.5,maxWidth:260},children:n("about_footerNote")})]})}),h&&(0,r.jsx)(dP,{currentVersion:d?.currentVersion,latestVersion:d?.latestVersion,progress:g,resultMsg:f,doneOk:x,onReload:()=>{window.location.reload()},onClose:y})]})}function dN(e){let t=e;for(;t&&t!==document.body;){if(t instanceof HTMLElement&&t.hasAttribute("data-tooltip")){let e=t.getAttribute("data-tooltip");if(e&&e.trim())return t}t=t.parentElement}return null}function dB(){let[e,t]=(0,i.useState)(null),[n,o]=(0,i.useState)(!1);return((0,i.useEffect)(()=>{o(!0)},[]),(0,i.useEffect)(()=>{if(!n)return;let e=null,r=null,i=()=>{e=null,t(null)},o=n=>{let o,s,l=n.getAttribute("data-tooltip")?.trim();if(!l)return void i();e=n;let a=n.getBoundingClientRect();r||((r=document.createElement("div")).setAttribute("aria-hidden","true"),r.style.cssText="position:fixed;left:-9999px;top:0;visibility:hidden;pointer-events:none;max-width:min(280px,calc(100vw - 16px));padding:5px 8px;font-size:11px;font-weight:400;line-height:1.35;white-space:pre-line;overflow-wrap:anywhere;word-break:break-word;border:1px solid transparent;box-sizing:border-box;",document.body.appendChild(r)),r.textContent=l;let d=Math.ceil(r.getBoundingClientRect().width)||80,c=Math.ceil(r.getBoundingClientRect().height)||28;t({text:l,...(o="down",(s=a.bottom+6)+c>window.innerHeight-8&&a.top-6-c>=8&&(o="up",s=a.top-6-c),s=Math.max(8,Math.min(s,window.innerHeight-c-8)),{left:Math.max(8,Math.min(a.left+a.width/2-d/2,window.innerWidth-d-8)),top:s,placement:o})})},s=t=>{let n=dN(t.target);if(!n){e&&i();return}n!==e&&o(n)},l=()=>{e&&document.contains(e)?o(e):i()},a=t=>{let n=t.relatedTarget;e&&n&&e.contains(n)||e&&!dN(n)&&i()},d=t=>{let n=t.relatedTarget;e&&n&&dN(n)||i()};document.addEventListener("mouseover",s,!0),document.addEventListener("focusin",s,!0),document.addEventListener("mouseout",a,!0),document.addEventListener("focusout",d,!0),window.addEventListener("scroll",l,!0),window.addEventListener("resize",l);let c=new MutationObserver(t=>{e&&document.contains(e)&&t.some(t=>t.target===e)&&o(e)});return c.observe(document.body,{attributes:!0,attributeFilter:["data-tooltip"],subtree:!0}),()=>{c.disconnect(),document.removeEventListener("mouseover",s,!0),document.removeEventListener("focusin",s,!0),document.removeEventListener("mouseout",a,!0),document.removeEventListener("focusout",d,!0),window.removeEventListener("scroll",l,!0),window.removeEventListener("resize",l),r?.remove()}},[n]),n&&e)?(0,l.createPortal)((0,r.jsx)("div",{role:"tooltip",className:"instant-tooltip-layer",style:{position:"fixed",left:e.left,top:e.top,zIndex:10050,maxWidth:"min(280px, calc(100vw - 16px))",padding:"5px 8px",border:"1px solid var(--border-strong)",borderRadius:"var(--radius-sm)",background:"var(--bg-elevated)",color:"var(--text)",boxShadow:"var(--shadow-float)",fontSize:11,fontWeight:400,lineHeight:1.35,whiteSpace:"pre-line",overflowWrap:"anywhere",wordBreak:"break-word",pointerEvents:"none"},children:e.text}),document.body):null}function dO(e){return`pidance.update.dismissed.${e}`}function dU(e){try{sessionStorage.setItem(dO(e),"1")}catch{}}function dq(){let{t:e}=(0,ea.s9)(),[t,n]=(0,i.useState)(null),[o,s]=(0,i.useState)(!1),{overlay:l,progress:a,resultMsg:d,doneOk:c,run:u,close:p}=dA();(0,i.useEffect)(()=>{if(!K())return;let e=!1;return(async()=>{try{let t=await fetch("/api/update/check",{cache:"no-store"});if(!t.ok)return;let r=await t.json();if(e)return;n(r),r.updateAvailable&&r.latestVersion&&!function(e){try{return"1"===sessionStorage.getItem(dO(e))}catch{return!1}}(r.latestVersion)&&s(!0)}catch{}})(),()=>{e=!0}},[]);let h=async()=>{t?.updateAvailable&&t.latestVersion&&(s(!1),(await u(t.latestVersion)).ok?dU(t.latestVersion):s(!0))},g="var(--accent)";return(0,r.jsxs)(r.Fragment,{children:[o&&t?.updateAvailable&&t.latestVersion&&!l&&(0,r.jsxs)("div",{role:"status",className:"notice-shelf-item",style:{position:"fixed",bottom:16,right:16,zIndex:260,display:"flex",flexDirection:"column",gap:8,width:"min(100% - 24px, 360px)",padding:"10px 12px",borderRadius:10,border:`1px solid color-mix(in srgb, ${g} 42%, var(--border))`,borderLeft:`3px solid ${g}`,background:`color-mix(in srgb, ${g} 10%, var(--bg-panel))`,boxShadow:"0 12px 32px color-mix(in srgb, var(--text) 16%, transparent)",fontSize:12,color:"var(--text)",pointerEvents:"auto"},children:[(0,r.jsxs)("div",{style:{display:"flex",alignItems:"center",justifyContent:"space-between",gap:8},children:[(0,r.jsx)("span",{style:{fontWeight:650,fontSize:13},children:e("update_bannerTitle")}),(0,r.jsx)("button",{type:"button",onClick:()=>{t?.latestVersion&&dU(t.latestVersion),s(!1)},"aria-label":e("update_bannerDismiss"),style:{border:"none",background:"transparent",color:"var(--text-dim)",cursor:"pointer",fontSize:11,padding:"2px 4px"},children:e("update_bannerDismiss")})]}),(0,r.jsx)("div",{style:{color:"var(--text-muted)",fontVariantNumeric:"tabular-nums"},children:e("update_bannerBody",{current:t.currentVersion,latest:t.latestVersion})}),!t.upgradeSupported&&(0,r.jsx)("div",{style:{color:"var(--text-dim)",fontSize:11},children:e("update_bannerWorkspace")}),(0,r.jsx)("div",{style:{display:"flex",gap:8,justifyContent:"flex-end"},children:t.upgradeSupported&&(0,r.jsx)("button",{type:"button",onClick:()=>{h()},style:{padding:"6px 12px",borderRadius:8,border:"none",background:"var(--accent)",color:"#fff",fontSize:12,fontWeight:600,cursor:"pointer"},children:e("about_upgradeNow")})})]}),l&&(0,r.jsx)(dP,{currentVersion:t?.currentVersion,latestVersion:t?.latestVersion,progress:a,resultMsg:d,doneOk:c,onReload:()=>{window.location.reload()},onClose:()=>{p(),s(!0)}})]})}function dK({size:e=10}){return(0,r.jsx)("svg",{width:e,height:e,viewBox:"0 0 24 24",fill:"currentColor",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":"true",style:{flexShrink:0},children:(0,r.jsx)("path",{d:"M19 21l-7-5-7 5V5a2 2 0 0 1 2-2h10a2 2 0 0 1 2 2z"})})}function dV({node:e,activePathIds:t,activeLeafId:n,depth:i,isLast:o,parentLines:s,onActivate:l,assistantLabel:a,bookmarkAria:d,switchable:c,switchTargetId:u,chooserFor:p,disabled:h,preserveRoot:g=!1}){let{node:f,skipped:x}=function(e,t=!1){let n=e,r=n.compressedEntryIds?.length??0;for(;!t&&1===n.children.length&&null===r$(n.label);)n=n.children[0],r+=1+(n.compressedEntryIds?.length??0);return{node:n,skipped:r}}(e,g),m=t.has(f.entry.id),v=t.has(e.entry.id)||t.has(f.entry.id),y=f.entry.id===n,b=r$(f.label),w=function(e){if("message"===e.type&&"message"in e){let t=e.message,n=t.content,r="";if("string"==typeof n?r=n:Array.isArray(n)&&(r=n.filter(e=>"text"===e.type).map(e=>e.text).join(" ")),r.length>40&&(r=r.slice(0,40)+"…"),r)return r;if("assistant"===t.role)return"[assistant]"}return e.type}(f.entry),k="[assistant]"===w?a:w,j=b??k,S="message"===f.entry.type&&"message"in f.entry?f.entry.message.role:null;return(0,r.jsxs)("div",{children:[(0,r.jsxs)("button",{type:"button",disabled:h,onClick:()=>l(f),"aria-current":y?"true":void 0,"aria-expanded":c&&!y?u===f.entry.id:void 0,"aria-label":b?`${b} — ${d}`:void 0,title:b?`${b} — ${k}`:k,style:{display:"flex",alignItems:"center",width:"100%",height:24,padding:0,background:"none",border:"none",font:"inherit",textAlign:"left",cursor:h?"default":"pointer"},children:[s.map((e,t)=>(0,r.jsx)("div",{style:{width:16,flexShrink:0,position:"relative",height:"100%",alignSelf:"stretch"},children:e&&(0,r.jsx)("div",{style:{position:"absolute",left:7,top:0,bottom:0,width:1,background:"var(--border)"}})},t)),(0,r.jsxs)("div",{style:{width:16,flexShrink:0,position:"relative",height:"100%",alignSelf:"stretch"},children:[(0,r.jsx)("div",{style:{position:"absolute",left:7,top:0,bottom:o?"50%":0,width:1,background:"var(--border)"}}),(0,r.jsx)("div",{style:{position:"absolute",left:7,top:"50%",width:9,height:1,background:"var(--border)"}})]}),(0,r.jsx)("div",{style:{width:7,height:7,borderRadius:"50%",flexShrink:0,background:m?"var(--accent)":v?"var(--text-muted)":"var(--border)",border:m?"none":"1px solid var(--text-dim)",marginRight:6,transition:"background 0.12s"}}),b?(0,r.jsx)("span",{style:{display:"flex",color:"var(--accent)",marginRight:5,flexShrink:0},children:(0,r.jsx)(dK,{size:9})}):S?(0,r.jsx)("span",{style:{fontSize:9,fontFamily:"var(--font-mono)",color:"user"===S?"var(--accent)":"var(--text-dim)",background:"user"===S?"rgba(37,99,235,0.08)":"var(--bg-hover)",border:`1px solid ${"user"===S?"rgba(37,99,235,0.2)":"var(--border)"}`,borderRadius:3,padding:"0 4px",marginRight:5,flexShrink:0,lineHeight:"16px"},children:"user"===S?"U":"A"}):null,x>0&&(0,r.jsxs)("span",{style:{fontSize:10,color:"var(--text-dim)",marginRight:5,flexShrink:0},children:["+",x]}),(0,r.jsx)("span",{style:{fontSize:11,color:m||b?"var(--text)":v?"var(--text-muted)":"var(--text-dim)",fontWeight:m?500:400,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",flex:1,minWidth:0},children:j})]}),p(f.entry.id,(s.length+1)*16+4),f.children.map((e,g)=>(0,r.jsx)(dV,{node:e,activePathIds:t,activeLeafId:n,depth:i+1,isLast:g===f.children.length-1,parentLines:[...s,!o],onActivate:l,assistantLabel:a,bookmarkAria:d,switchable:c,switchTargetId:u,chooserFor:p,disabled:h,preserveRoot:!1},e.entry.id))]})}function dJ({title:e,desc:t,onClick:n}){return(0,r.jsxs)("button",{type:"button",onClick:n,style:{display:"flex",flexDirection:"column",alignItems:"flex-start",gap:1,width:"100%",minHeight:34,padding:"5px 8px",background:"none",border:"none",borderRadius:5,cursor:"pointer",textAlign:"left",font:"inherit"},onMouseEnter:e=>{e.currentTarget.style.background="var(--bg-hover)"},onMouseLeave:e=>{e.currentTarget.style.background="none"},children:[(0,r.jsx)("span",{style:{fontSize:12,color:"var(--text)",lineHeight:1.4},children:e}),(0,r.jsx)("span",{style:{fontSize:10,color:"var(--text-dim)",lineHeight:1.3},children:t})]})}function dY({indent:e,mode:t,busy:n,pendingLabel:i,error:o,customFocus:s,onModeChange:l,onFocusChange:a,onChoose:d,onCancel:c,t:u}){return(0,r.jsxs)("div",{role:"group","aria-label":u("branches_switchPrompt"),onKeyDown:e=>{"Escape"!==e.key||n||(e.stopPropagation(),c())},style:{margin:"1px 0 4px",marginLeft:Math.min(e,64),border:"1px solid var(--border)",borderRadius:6,background:"var(--bg-panel)",padding:4},children:[n?(0,r.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:8,padding:"8px 10px",fontSize:12,color:"var(--text-muted)"},children:[(0,r.jsxs)("svg",{className:"animate-spin",width:"12",height:"12",viewBox:"0 0 24 24",fill:"none","aria-hidden":"true",children:[(0,r.jsx)("circle",{cx:"12",cy:"12",r:"9",stroke:"currentColor",strokeWidth:"2",opacity:"0.25"}),(0,r.jsx)("path",{d:"M21 12a9 9 0 0 0-9-9",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round"})]}),i]}):"options"===t?(0,r.jsxs)("div",{children:[(0,r.jsx)(dJ,{title:u("branches_switchDirect"),desc:u("branches_switchDirectHint"),onClick:()=>d({mode:"direct"})}),(0,r.jsx)(dJ,{title:u("branches_switchSummary"),desc:u("branches_switchSummaryHint"),onClick:()=>d({mode:"summary"})}),(0,r.jsx)(dJ,{title:u("branches_switchCustom"),desc:u("branches_switchCustomHint"),onClick:()=>l("custom")})]}):(0,r.jsxs)("div",{style:{padding:4},children:[(0,r.jsx)("input",{autoFocus:!0,value:s,onChange:e=>a(e.target.value),onKeyDown:e=>{"Enter"===e.key&&s.trim()&&d({mode:"custom",focus:s}),"Escape"===e.key&&(e.stopPropagation(),l("options"))},placeholder:u("branches_switchCustomPlaceholder"),"aria-label":u("branches_switchCustom"),style:{width:"100%",height:28,padding:"0 8px",fontSize:12,color:"var(--text)",background:"var(--bg)",border:"1px solid var(--border)",borderRadius:5,boxSizing:"border-box"}}),(0,r.jsxs)("div",{style:{display:"flex",gap:6,marginTop:6},children:[(0,r.jsx)("button",{type:"button",disabled:!s.trim(),onClick:()=>d({mode:"custom",focus:s}),style:{minHeight:28,padding:"0 10px",fontSize:11,borderRadius:5,border:"1px solid var(--accent)",background:s.trim()?"var(--accent)":"transparent",color:s.trim()?"#fff":"var(--text-dim)",cursor:s.trim()?"pointer":"not-allowed"},children:u("branches_switchCustomSubmit")}),(0,r.jsx)("button",{type:"button",onClick:()=>l("options"),style:{minHeight:28,padding:"0 10px",fontSize:11,borderRadius:5,border:"1px solid var(--border)",background:"none",color:"var(--text-muted)",cursor:"pointer"},children:u("branches_switchBack")})]})]}),o&&(0,r.jsx)("div",{role:"alert",style:{padding:"4px 8px 2px",fontSize:11,color:"var(--status-danger)",lineHeight:1.4},children:o})]})}function dG({currentLabel:e,disabled:t,onSubmit:n,t:o}){let[s,l]=(0,i.useState)(!1),[a,d]=(0,i.useState)(""),[c,u]=(0,i.useState)(!1),[p,h]=(0,i.useState)(null),g=(0,i.useRef)(null);(0,i.useEffect)(()=>{s&&g.current?.focus()},[s]);let f=t||c,x=a.trim(),m=x===(e??""),v=async e=>{if(f)return;let t=e.trim();if(t.length>120)return void h(o("branches_bookmarkTooLong",{max:120}));u(!0),h(null);let r=await n(t);(u(!1),"ok"===r.kind)?l(!1):"busy"===r.kind?h(o("branches_waitForRun")):h("error"===r.kind&&r.message?`${o("branches_bookmarkFailed")}: ${r.message}`:o("branches_bookmarkFailed"))},y=e=>{d(e),h(null),l(!0)},b={display:"inline-flex",alignItems:"center",gap:4,minHeight:28,padding:"0 8px",fontSize:11,borderRadius:5,border:"1px solid var(--border)",background:"none",color:"var(--text-muted)",cursor:f?"not-allowed":"pointer",flexShrink:0,opacity:f?.55:1};return(0,r.jsx)("div",{style:{borderTop:"1px solid var(--border)",padding:"6px 12px 8px",flexShrink:0},children:s?(0,r.jsxs)("div",{children:[(0,r.jsxs)("div",{style:{display:"flex",gap:6},children:[(0,r.jsx)("input",{ref:g,value:a,maxLength:120,disabled:c,onChange:e=>{d(e.target.value),h(null)},onKeyDown:e=>{"Enter"===e.key&&x&&!m&&v(x),"Escape"===e.key&&(l(!1),h(null))},placeholder:o("branches_bookmarkPlaceholder"),"aria-label":o("branches_bookmarkPlaceholder"),style:{flex:1,minWidth:0,height:28,padding:"0 8px",fontSize:12,color:"var(--text)",background:"var(--bg)",border:"1px solid var(--border)",borderRadius:5}}),(0,r.jsx)("button",{type:"button",disabled:f||!x||m,onClick:()=>void v(x),style:{...b,border:"1px solid var(--accent)",background:!x||m?"transparent":"var(--accent)",color:!x||m?"var(--text-dim)":"#fff",cursor:f||!x||m?"not-allowed":"pointer",opacity:1},children:o("branches_bookmarkSave")}),(0,r.jsx)("button",{type:"button",disabled:c,onClick:()=>{l(!1),h(null)},style:b,children:o("branches_bookmarkCancel")})]}),(0,r.jsxs)("div",{style:{display:"flex",justifyContent:"space-between",alignItems:"center",marginTop:4,minHeight:14},children:[p?(0,r.jsx)("span",{role:"alert",style:{fontSize:10,color:"var(--status-danger)",lineHeight:1.4},children:p}):(0,r.jsx)("span",{}),(0,r.jsxs)("span",{style:{fontSize:10,color:"var(--text-dim)",flexShrink:0},children:[a.length,"/",120]})]})]}):(0,r.jsxs)("div",{children:[(0,r.jsxs)("div",{style:{display:"flex",flexWrap:"wrap",alignItems:"center",gap:8,minHeight:28},children:[(0,r.jsx)("span",{style:{fontSize:10,color:"var(--text-dim)",letterSpacing:"0.04em",textTransform:"uppercase",flexShrink:0},children:o("branches_currentPoint")}),e?(0,r.jsxs)(r.Fragment,{children:[(0,r.jsxs)("span",{title:e,style:{display:"inline-flex",alignItems:"center",gap:4,minWidth:0,flex:1,fontSize:11,color:"var(--text)"},children:[(0,r.jsx)("span",{style:{color:"var(--accent)",display:"flex",flexShrink:0},children:(0,r.jsx)(dK,{size:10})}),(0,r.jsx)("span",{style:{overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:e})]}),(0,r.jsx)("button",{type:"button",disabled:f,onClick:()=>y(e),title:o("branches_editBookmark"),style:b,children:o("branches_editBookmark")}),(0,r.jsx)("button",{type:"button",disabled:f,onClick:()=>void v(""),title:o("branches_removeBookmark"),style:b,children:o("branches_removeBookmark")})]}):(0,r.jsxs)("button",{type:"button",disabled:f,onClick:()=>y(""),style:{...b,gap:5},children:[(0,r.jsx)(dK,{size:10}),o("branches_addBookmark")]})]}),p&&(0,r.jsx)("div",{role:"alert",style:{marginTop:4,fontSize:10,color:"var(--status-danger)",lineHeight:1.4},children:p})]})})}function dZ({tree:e,activeLeafId:t,onLeafChange:n,inline:o,containerRef:s,open:l,onToggle:a,hasSession:d,compact:c,branchActions:u,panel:p}){let{t:h}=(0,ea.s9)(),[g,f]=(0,i.useState)(!1),x=void 0!==l?l:g,m=(0,i.useRef)(null),[v,y]=(0,i.useState)(null),[b,w]=(0,i.useState)(null),[k,j]=(0,i.useState)("options"),[S,C]=(0,i.useState)(""),[_,I]=(0,i.useState)(null),[R,T]=(0,i.useState)(null),M=u?.canWrite===!0,E=u?.busy===!0;(0,i.useEffect)(()=>{if(!x||!o)return;let e=s?.current??m.current;if(!e)return;let t=()=>{let t=e.getBoundingClientRect();y({top:t.bottom,left:t.left,width:t.width})};t();let n=new ResizeObserver(t);return n.observe(e),()=>n.disconnect()},[x,o,s]),(0,i.useEffect)(()=>{x||(w(null),I(null),j("options"),C(""),T(null))},[x]),(0,i.useEffect)(()=>{w(null),I(null)},[e]);let z=(0,i.useMemo)(()=>t?new Set(function e(n,r){for(let i of n){let n=[...r,i.entry.id];if(i.entry.id===t||i.compressedEntryIds?.includes(t))return n;let o=e(i.children,n);if(o)return o}return null}(e,[])??[]):new Set,[e,t]),L=(0,i.useMemo)(()=>(function(e){let t=[...e];for(;t.length>0;){let e=t.pop();if(null!==r$(e.label))return!0;t.push(...e.children)}return!1})(e),[e]),W=(0,i.useMemo)(()=>(function(e,t){if(!t)return null;let n=[...e];for(;n.length>0;){let e=n.pop();if(e.entry.id===t||e.compressedEntryIds?.includes(t))return r$(e.label);n.push(...e.children)}return null})(e,t),[e,t]),A=(0,i.useCallback)(()=>{if(void 0!==l){l&&a?.();return}f(!1)},[l,a]),P=(0,i.useCallback)(e=>{if(E)return;let r=e.entry.id;if(r===t)return void w(null);if(M){I(null),j("options"),C(""),w(e=>e===r?null:r);return}n(r)},[E,t,M,n]),$=(0,i.useCallback)(async e=>{if(!u||!b||u.busy)return;I(null),T(e.mode);let t=await u.navigate(b,e);if(T(null),"ok"===t.kind){w(null),A();return}"cancelled"===t.kind?w(null):"busy"===t.kind?I(h("branches_waitForRun")):I(t.message?`${h("branches_switchFailed")}: ${t.message}`:h("branches_switchFailed"))},[u,b,A,h]),H=(0,i.useCallback)((e,t)=>b===e&&M?(0,r.jsx)(dY,{indent:t,mode:k,busy:null!==R||E,pendingLabel:"direct"===R?h("branches_switching"):h("branches_summarizing"),error:_,customFocus:S,onModeChange:e=>{j(e),I(null)},onFocusChange:C,onChoose:e=>void $(e),onCancel:()=>w(null),t:h}):null,[b,M,k,R,E,_,S,$,h]),F=!t||(function e(t,n){for(let r of t){if(r.entry.id===n)return 0===r.children.length;if(r.compressedEntryIds?.includes(n))return!1;let t=e(r.children,n);if(null!==t)return t}return null}(e,t)??!0),D=d?function e(t){for(let n of t)if(n.children.length>1||e(n.children))return!0;return!1}(e)||L||!F?null:h("branches_empty"):h("branches_noSession"),N=e.length>0?[e[0]]:[],B=!D&&N.length>0,O=p&&!F&&!D,U=h("branches_assistant"),q=h("branches_bookmarkAria"),K=O?(0,r.jsx)("div",{style:{padding:"4px 12px 2px 12px",fontSize:11,color:"var(--text-dim)"},children:h("branches_currentPosition")}):null,V=(0,r.jsxs)(r.Fragment,{children:[K,B?(0,r.jsx)("div",{style:{padding:"4px 12px 8px 12px",maxHeight:260,overflowY:"auto"},children:N.map((e,n)=>(0,r.jsx)(dV,{node:e,activePathIds:z,activeLeafId:t,depth:0,isLast:n===N.length-1,parentLines:[],onActivate:P,assistantLabel:U,bookmarkAria:q,switchable:M,switchTargetId:b,chooserFor:H,disabled:E,preserveRoot:!0},e.entry.id))}):(0,r.jsx)("div",{style:{padding:"10px 16px",fontSize:12,color:"var(--text-muted)",fontStyle:"italic"},children:D})]}),J=M&&t?(0,r.jsx)(dG,{currentLabel:W,disabled:E,onSubmit:e=>u.setLabel(t,e),t:h},t):null,Y=E?(0,r.jsxs)("svg",{className:"animate-spin",width:"12",height:"12",viewBox:"0 0 24 24",fill:"none","aria-hidden":"true",style:{color:"var(--accent)",flexShrink:0},children:[(0,r.jsx)("circle",{cx:"12",cy:"12",r:"9",stroke:"currentColor",strokeWidth:"2",opacity:"0.25"}),(0,r.jsx)("path",{d:"M21 12a9 9 0 0 0-9-9",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round"})]}):(0,r.jsxs)("svg",{width:"12",height:"12",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",style:{color:B?"var(--accent)":"var(--text-dim)",flexShrink:0},children:[(0,r.jsx)("line",{x1:"6",y1:"3",x2:"6",y2:"15"}),(0,r.jsx)("circle",{cx:"18",cy:"6",r:"3"}),(0,r.jsx)("circle",{cx:"6",cy:"18",r:"3"}),(0,r.jsx)("path",{d:"M18 9a9 9 0 0 1-9 9"})]}),G=(0,r.jsx)("svg",{width:"10",height:"10",viewBox:"0 0 10 10",fill:"none",stroke:"var(--text-dim)",strokeWidth:"1.6",strokeLinecap:"round",strokeLinejoin:"round",style:{marginLeft:2,transform:x?"rotate(180deg)":"none",transition:"transform 0.15s"},children:(0,r.jsx)("polyline",{points:"2 3.5 5 6.5 8 3.5"})});return o?(0,r.jsxs)("div",{style:{height:"100%",display:"flex",alignItems:"stretch"},children:[(0,r.jsxs)("button",{ref:m,onClick:()=>a?a():f(e=>!e),style:{display:"flex",alignItems:"center",gap:6,height:"100%",padding:"0 12px",background:x?"var(--bg-selected)":"none",border:"none",borderTop:x?"2px solid var(--accent)":"2px solid transparent",borderRight:"1px solid var(--border)",cursor:"pointer",color:x?"var(--text)":"var(--text-muted)",fontSize:11,whiteSpace:"nowrap",transition:"color 0.1s, background 0.1s"},onMouseEnter:e=>{e.currentTarget.style.color="var(--text)"},onMouseLeave:e=>{e.currentTarget.style.color=x?"var(--text)":"var(--text-muted)"},title:h("branches"),"aria-label":h("branches"),"aria-pressed":x,children:[Y,!c&&(0,r.jsx)("span",{children:h("branches")})]}),x&&v&&(0,r.jsxs)("div",{style:{position:"fixed",top:v.top,left:v.left,width:v.width,background:"var(--bg-panel)",borderBottom:"1px solid var(--border)",zIndex:500},children:[V,J]})]}):p?(0,r.jsxs)("div",{style:{height:"100%",display:"flex",flexDirection:"column",overflow:"hidden",background:"var(--bg-panel)"},children:[(0,r.jsx)("div",{style:{flex:1,minHeight:0,overflowY:"auto",paddingTop:8},children:V}),J]}):(0,r.jsxs)("div",{style:{borderBottom:"1px solid var(--border)",background:"var(--bg)",flexShrink:0,position:"relative"},children:[(0,r.jsxs)("button",{onClick:()=>f(e=>!e),style:{display:"flex",alignItems:"center",gap:6,width:"100%",padding:"5px 12px",background:"none",border:"none",cursor:"pointer",color:"var(--text-muted)",fontSize:11,textAlign:"left"},children:[Y,(0,r.jsx)("span",{style:{color:"var(--text-muted)"},children:h("branches")}),G]}),x&&(0,r.jsxs)("div",{style:{position:"absolute",top:"100%",left:0,right:0,background:"var(--bg)",borderBottom:"1px solid var(--border)",boxShadow:"0 4px 12px rgba(0,0,0,0.1)",zIndex:100},children:[V,J]})]})}var dX=n(8422),dQ=n(63606);n(82407);var d0=n(1164);let d1="pidance.terminalPad",d2=[{id:"esc",label:"Esc",send:"\\e"},{id:"tab",label:"Tab",send:"\\t"},{id:"ctrl-c",label:"Ctrl-C",send:"\\x03"},{id:"ctrl-d",label:"Ctrl-D",send:"\\x04"},{id:"ctrl-z",label:"Ctrl-Z",send:"\\x1a"},{id:"ctrl-l",label:"Ctrl-L",send:"\\x0c"},{id:"up",label:"↑",send:"\\e[A"},{id:"down",label:"↓",send:"\\e[B"},{id:"right",label:"→",send:"\\e[C"},{id:"left",label:"←",send:"\\e[D"},{id:"home",label:"Home",send:"\\e[H"},{id:"end",label:"End",send:"\\e[F"}];function d4(e){return e.replace(/\\e/g,"\x1b").replace(/\\n/g,"\n").replace(/\\r/g,"\r").replace(/\\t/g," ").replace(/\\x([0-9a-fA-F]{2})/g,(e,t)=>String.fromCharCode(Number.parseInt(t,16)))}function d6(e){return!!e&&"object"==typeof e&&"string"==typeof e.id&&e.id.length>0&&"string"==typeof e.label&&"string"==typeof e.send}let d5=[{kind:"special",label:"Esc",send:"\\e"},{kind:"special",label:"Tab",send:"\\t",shiftSend:"\\e[Z"},{kind:"special",label:"Enter",send:"\\r"},{kind:"special",label:"Bksp",send:"\\x7f"},{kind:"special",label:"Space",send:" "},{kind:"special",label:"↑",send:"\\e[A"},{kind:"special",label:"↓",send:"\\e[B"},{kind:"special",label:"→",send:"\\e[C"},{kind:"special",label:"←",send:"\\e[D"},{kind:"special",label:"Home",send:"\\e[H"},{kind:"special",label:"End",send:"\\e[F"}],d8=["1234567890","qwertyuiop","asdfghjkl","zxcvbnm"];function d3(e){return`\\x${e.toString(16).padStart(2,"0")}`}function d9(e,t){let n=[];return e.ctrl&&n.push("Ctrl"),e.alt&&n.push("Alt"),e.shift&&n.push("Shift"),n.push(t),n.join("-")}function d7(){let{t:e}=(0,ea.s9)(),t=nv(),{isDark:n}=nQ(),o=(0,i.useRef)(null),s=(0,i.useRef)(null),l=(0,i.useRef)(null),a=(0,i.useRef)(()=>!1),[d,c]=(0,i.useState)("idle"),[u,p]=(0,i.useState)(null),[h,g]=(0,i.useState)(!1),[f,x]=(0,i.useState)(()=>(function(){if("u"<typeof localStorage)return{keys:d2.map(e=>({...e})),commands:[]};try{let t=localStorage.getItem(d1);var e=t?JSON.parse(t):null;if(!e||"object"!=typeof e)return{keys:d2.map(e=>({...e})),commands:[]};let n=Array.isArray(e.keys)?e.keys.filter(d6):[],r=Array.isArray(e.commands)?e.commands.filter(d6):[];return{keys:n.length>0?n:d2.map(e=>({...e})),commands:r}}catch{return{keys:d2.map(e=>({...e})),commands:[]}}})()),[m,v]=(0,i.useState)(!1),[y,b]=(0,i.useState)(0),[w,k]=(0,i.useState)(null),[j,S]=(0,i.useState)(""),C=(0,i.useRef)(!1),_=(0,i.useRef)(e);_.current=e;let I=(0,i.useCallback)(e=>{a.current(e),k("\r"===e?"Enter":1===e.length&&32>e.charCodeAt(0)?`^${String.fromCharCode(64+e.charCodeAt(0))}`:e.slice(0,24))},[]),R=(0,i.useCallback)(()=>{j&&I(j),I("\r"),S("")},[j,I]),T=(0,i.useCallback)(e=>{e.nativeEvent.isComposing||C.current||"Enter"===e.key&&(e.preventDefault(),R())},[R]);return(0,i.useEffect)(()=>{let e=window.visualViewport;if(!e||!t)return void b(0);let n=()=>{b(Math.max(0,window.innerHeight-e.height-e.offsetTop))};return n(),e.addEventListener("resize",n),e.addEventListener("scroll",n),()=>{e.removeEventListener("resize",n),e.removeEventListener("scroll",n)}},[t]),(0,i.useEffect)(()=>{let e=o.current;if(!e)return;let t=!1,n=null,r=null,i=[],d={current:!1};e.innerHTML="";let u=new dX.B({allowProposedApi:!0,allowTransparency:!0,cursorBlink:!0,cursorStyle:"block",fontFamily:"var(--font-mono)",fontSize:13,lineHeight:1.4,scrollback:8e3,convertEol:!1,macOptionIsMeta:!0,theme:{background:"transparent",foreground:"#fff"}}),h=new dQ.Y;u.loadAddon(h),u.open(e);try{h.fit()}catch{}s.current=u,l.current=h;let f=u.textarea;f&&(f.setAttribute("autocapitalize","off"),f.setAttribute("autocorrect","off"),f.setAttribute("autocomplete","off"),f.setAttribute("spellcheck","false"),f.setAttribute("inputmode","text"),f.setAttribute("enterkeyhint","send"),f.style.fontSize="16px");let x=e=>(n&&n.readyState===WebSocket.OPEN?n.send(JSON.stringify({type:"in",d:e})):(i.push(e),g(!0),n&&n.readyState!==WebSocket.CLOSED||w()),!0);a.current=x;let m=u.onData(e=>{x(e)}),v=u.onResize(({cols:e,rows:t})=>{n&&n.readyState===WebSocket.OPEN&&n.send(JSON.stringify({type:"rs",cols:e,rows:t}))}),y=()=>{try{h.fit()}catch{}},b=new ResizeObserver(()=>{window.requestAnimationFrame(y)});b.observe(e);let w=()=>{if(t)return;null!==r&&(window.clearTimeout(r),r=null);let e="https:"===window.location.protocol?"wss:":"ws:";c("connecting"),p(null);let o=new WebSocket(`${e}//${window.location.host}/api/pty`);n=o,o.onopen=()=>{if(!t&&n===o&&(d.current=!0,c("open"),o.send(JSON.stringify({type:"rs",cols:u.cols,rows:u.rows})),n&&n.readyState===WebSocket.OPEN)){for(;i.length>0;){let e=i.shift();e&&n.send(JSON.stringify({type:"in",d:e}))}g(!1)}},o.onmessage=e=>{Promise.resolve(e.data).then(e=>"string"!=typeof e?e instanceof Blob?e.text():e instanceof ArrayBuffer?new TextDecoder().decode(e):"":e).then(e=>{if(!t&&n===o&&e){try{let t=JSON.parse(e);if(t&&"string"==typeof t.type){if("error"===t.type&&t.message){p(t.message),c("error");return}if("exit"===t.type)return void c("closed");if("out"===t.type&&"string"==typeof t.d)return void u.write(t.d)}}catch{}u.write(e)}})},o.onclose=e=>{t||n!==o||(d.current?c("connecting"):(c("error"),p(1006===e.code?_.current("terminal_wsRefused"):_.current("terminal_wsFailed"))),r=window.setTimeout(w,600))},o.onerror=()=>{t||n!==o||(c("error"),p(_.current("terminal_wsFailed")))}};return w(),()=>{t=!0,a.current=()=>!1,m.dispose(),v.dispose(),b.disconnect(),null!==r&&window.clearTimeout(r),n?.close(),u.dispose(),s.current=null,l.current=null}},[]),(0,i.useEffect)(()=>{let e=s.current;if(!e)return;let t=getComputedStyle(document.documentElement),r=(e,n)=>t.getPropertyValue(e).trim()||n;e.options.theme={background:r("--bg",n?"#101719":"#fbfcfd"),foreground:r("--text",n?"#ced8d8":"#263439"),cursor:r("--accent",n?"#69a7ca":"#286e98"),cursorAccent:r("--bg",n?"#101719":"#fbfcfd"),selectionBackground:r("--bg-selected",n?"#6ba7c426":"#2e6f9520")}},[n]),(0,i.useEffect)(()=>{let e=s.current;if(e){e.options.fontSize=t?14:13;try{l.current?.fit()}catch{}}},[t]),(0,r.jsxs)("div",{style:{display:"flex",flexDirection:"column",height:"100%",minHeight:0,paddingBottom:y},children:[(0,r.jsxs)("div",{style:{padding:"4px 10px",fontSize:11,color:"var(--text-dim)",borderBottom:"1px solid var(--border)",flexShrink:0},children:["connecting"===d&&e("terminal_connecting"),"open"===d&&e("terminal_connected"),"closed"===d&&e("terminal_disconnected"),"error"===d&&(u??e("terminal_unavailable")),h&&"open"!==d&&(0,r.jsx)("span",{style:{marginLeft:8,color:"var(--status-warning)"},children:e("terminal_queuedOffline")}),w&&"open"===d&&(0,r.jsxs)("span",{style:{marginLeft:8},children:["\xb7 ",e("terminal_sent",{value:w})]})]}),(0,r.jsx)("div",{className:"pidance-terminal-surface",style:{flex:1,minHeight:80,position:"relative",overflow:"hidden"},children:(0,r.jsx)("div",{ref:o,className:"pidance-terminal-xterm",style:{position:"absolute",inset:0,padding:"6px 8px 8px"}})}),t&&(0,r.jsxs)("div",{style:{flexShrink:0,borderTop:"1px solid var(--border)",background:"var(--bg)",padding:"6px 8px",display:"flex",gap:6},children:[(0,r.jsx)("input",{value:j,onChange:e=>S(e.target.value),onKeyDown:T,onCompositionStart:()=>{C.current=!0},onCompositionEnd:()=>{C.current=!1},placeholder:e("terminal_inputPlaceholder"),enterKeyHint:"send",autoCapitalize:"off",autoCorrect:"off",autoComplete:"off",spellCheck:!1,"aria-label":e("workspace_terminal"),style:{flex:1,minWidth:0,height:40,fontSize:16,padding:"0 10px",border:"1px solid var(--border)",borderRadius:6,background:"var(--bg-panel)",color:"var(--text)"}}),(0,r.jsx)("button",{type:"button",onClick:R,style:{...ci,height:40,minWidth:56,fontSize:14,display:"inline-flex",alignItems:"center",justifyContent:"center"},children:e("terminal_sendEnter")})]}),(0,r.jsx)(ce,{pad:f,onSend:I,onOpenConfig:()=>v(!0),isMobile:t}),m&&(0,r.jsx)(ct,{value:f,isMobile:t,onClose:()=>v(!1),onSave:e=>{x(e),"u">typeof localStorage&&localStorage.setItem(d1,JSON.stringify(e)),v(!1)}})]})}function ce({pad:e,onSend:t,onOpenConfig:n,isMobile:i}){let{t:o}=(0,ea.s9)(),s={flex:"0 0 auto",height:i?36:30,minWidth:i?38:void 0,padding:i?"0 12px":"0 10px",border:"1px solid var(--border)",borderRadius:6,background:"var(--bg-panel)",color:"var(--text)",fontSize:i?13:12,whiteSpace:"nowrap"};return(0,r.jsxs)("div",{style:{flexShrink:0,borderTop:"1px solid var(--border)",background:"var(--bg)"},children:[e.commands.length>0&&(0,r.jsx)("div",{style:{display:"flex",gap:6,overflowX:"auto",padding:"6px 8px 2px",WebkitOverflowScrolling:"touch"},children:e.commands.map(e=>(0,r.jsx)("button",{type:"button",onPointerUp:n=>{n.preventDefault(),t(d4(e.send))},style:{...s,touchAction:"manipulation",cursor:"pointer"},children:e.label||e.send},e.id))}),(0,r.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:6,overflowX:"auto",padding:"6px 8px",WebkitOverflowScrolling:"touch"},children:[(0,r.jsx)("button",{type:"button",onClick:n,"aria-label":o("terminal_configure"),title:o("terminal_configure"),style:{flex:"0 0 auto",width:i?36:30,height:i?36:30,display:"flex",alignItems:"center",justifyContent:"center",border:"1px solid var(--border)",borderRadius:6,background:"var(--bg-panel)",color:"var(--text-muted)",touchAction:"manipulation"},children:(0,r.jsx)(d0.A,{size:i?17:15})}),e.keys.map(e=>(0,r.jsx)("button",{type:"button",onPointerUp:n=>{n.preventDefault(),t(d4(e.send))},style:{...s,touchAction:"manipulation",cursor:"pointer"},children:e.label||e.send},e.id))]})]})}function ct({value:e,isMobile:t,onClose:n,onSave:o}){let{t:s}=(0,ea.s9)(),[l,a]=(0,i.useState)(()=>({keys:e.keys.map(e=>({...e})),commands:e.commands.map(e=>({...e}))})),[d,c]=(0,i.useState)(!0),[u,p]=(0,i.useState)({ctrl:!1,alt:!1,shift:!1}),[h,g]=(0,i.useState)(""),f=e=>{a(t=>({...t,keys:[...t.keys,function(e,t){let n=`key-${Math.random().toString(36).slice(2,10)}`;if("char"===t.kind){let r=e.shift?t.ch.toUpperCase():t.ch.toLowerCase(),i=t.ch.toUpperCase();if(e.ctrl){let t=i.charCodeAt(0)-64,r=e.alt?`\\e${d3(t)}`:d3(t);return{id:n,label:d9(e,i),send:r}}return e.alt?{id:n,label:d9(e,i),send:`\\e${r}`}:{id:n,label:d9(e,i),send:r}}let r=e.shift&&t.shiftSend?t.shiftSend:t.send,i=d9({ctrl:e.ctrl,alt:e.alt,shift:!!(e.shift&&t.shiftSend)},t.label);return e.alt&&"\\e"!==r?{id:n,label:d9(e,t.label),send:`\\e${r}`}:{id:n,label:i,send:r}}(u,e)]}))};return(0,r.jsxs)(eX,{open:!0,onClose:n,title:s("terminal_configure"),width:440,closeLabel:s("dialog_close"),children:[(0,r.jsxs)("label",{style:{display:"inline-flex",alignItems:"center",gap:8,fontSize:13,marginBottom:12},children:[(0,r.jsx)("input",{type:"checkbox",checked:d,onChange:e=>c(e.target.checked)}),s("terminal_comboMode")]}),d?(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)("div",{style:{display:"flex",gap:8,marginBottom:10},children:["ctrl","alt","shift"].map(e=>(0,r.jsxs)("label",{style:{display:"inline-flex",alignItems:"center",gap:4,fontSize:13},children:[(0,r.jsx)("input",{type:"checkbox",checked:u[e],onChange:t=>p(n=>({...n,[e]:t.target.checked}))}),"ctrl"===e?"Ctrl":"alt"===e?"Alt":"Shift"]},e))}),(0,r.jsx)("div",{style:{display:"flex",flexWrap:"wrap",gap:4,marginBottom:8},children:d5.map(e=>(0,r.jsx)(cn,{label:e.label,onClick:()=>f(e),isMobile:t},e.label))}),d8.map(e=>(0,r.jsx)("div",{style:{display:"flex",flexWrap:"wrap",gap:4,marginBottom:4},children:[...e].map(e=>(0,r.jsx)(cn,{label:u.shift?e.toUpperCase():e,onClick:()=>f({kind:"char",label:e,ch:e}),isMobile:t},e))},e)),(0,r.jsx)(cr,{items:l.keys,onRemove:e=>a(t=>({...t,keys:t.keys.filter(t=>t.id!==e)}))})]}):(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)("div",{style:{fontSize:12,fontWeight:600,marginBottom:8},children:s("terminal_commands")}),(0,r.jsxs)("form",{onSubmit:e=>{e.preventDefault(),(()=>{let e=h.trim();if(!e)return;let t={id:`cmd-${Math.random().toString(36).slice(2,8)}`,label:"",send:""};t.label=e,t.send=e.endsWith("\\n")||e.endsWith("\\r")?e:`${e}\\n`,a(e=>({...e,commands:[...e.commands,t]})),g("")})()},style:{display:"flex",gap:6,marginBottom:8},children:[(0,r.jsx)("input",{value:h,onChange:e=>g(e.target.value),placeholder:s("terminal_commandPlaceholder"),style:{flex:1,minWidth:0,height:t?40:32,fontSize:16,padding:"0 8px",border:"1px solid var(--border)",borderRadius:6,background:"var(--bg-panel)",color:"var(--text)"}}),(0,r.jsx)("button",{type:"submit",style:ci,children:s("terminal_addCommand")})]}),(0,r.jsx)(cr,{items:l.commands,onRemove:e=>a(t=>({...t,commands:t.commands.filter(t=>t.id!==e)}))})]}),(0,r.jsxs)("div",{style:{display:"flex",gap:8,marginTop:14,flexWrap:"wrap"},children:[(0,r.jsx)("button",{type:"button",onClick:()=>o(l),style:{...ci,border:"1px solid var(--accent)",background:"var(--accent)",color:"var(--accent-foreground)",fontWeight:600},children:s("terminal_saveConfig")}),(0,r.jsx)("button",{type:"button",onClick:()=>a(e=>({...e,keys:d2.map(e=>({...e}))})),style:ci,children:s("terminal_resetKeys")})]})]})}function cn({label:e,onClick:t,isMobile:n}){return(0,r.jsx)("button",{type:"button",onClick:t,style:{minWidth:n?36:28,height:n?38:32,padding:"0 8px",border:"1px solid var(--border)",borderRadius:6,background:"var(--bg-panel)",color:"var(--text)",fontSize:n?13:12,touchAction:"manipulation"},children:e})}function cr({items:e,onRemove:t}){return 0===e.length?null:(0,r.jsx)("div",{style:{display:"flex",flexWrap:"wrap",gap:6,marginTop:8},children:e.map(e=>(0,r.jsxs)("span",{style:{display:"inline-flex",alignItems:"center",gap:4,height:28,padding:"0 6px 0 8px",border:"1px solid var(--border)",borderRadius:6,fontSize:12},children:[e.label||e.send,(0,r.jsx)("button",{type:"button",onClick:()=>t(e.id),"aria-label":"remove",style:{border:"none",background:"none",color:"var(--text-muted)",display:"flex"},children:(0,r.jsx)(aB.A,{size:12})})]},e.id))})}let ci={minHeight:32,padding:"0 12px",borderRadius:7,border:"1px solid var(--border)",background:"var(--bg-panel)",color:"var(--text-muted)",fontSize:12};function co(e,t){return new Promise((n,r)=>{if(t.aborted)return void r(new DOMException("Aborted","AbortError"));let i=setTimeout(()=>{t.removeEventListener("abort",o),n()},e),o=()=>{clearTimeout(i),t.removeEventListener("abort",o),r(new DOMException("Aborted","AbortError"))};t.addEventListener("abort",o,{once:!0})})}async function cs(e){let{sessionId:t,isCurrent:n,fetchSession:r,parseBody:i,signal:o,maxAttempts:s=5,baseDelayMs:l=200,delay:a=co}=e,d=Math.max(1,Math.floor(s)),c=0;for(;c<d;){if(c+=1,o?.aborted)return{ok:!1,reason:"aborted",attempts:c};if(!n())return{ok:!1,reason:"stale",attempts:c};try{let e,s=await r(t,o??new AbortController().signal);if(o?.aborted||!n())return{ok:!1,reason:o?.aborted?"aborted":"stale",attempts:c};if(404===s.status){if(c>=d)return{ok:!1,reason:"not_found",attempts:c,status:404};let e=l*2**(c-1);try{await a(e,o??new AbortController().signal)}catch{return{ok:!1,reason:"aborted",attempts:c}}continue}if(!s.ok)return{ok:!1,reason:"error",attempts:c,status:s.status,error:`HTTP ${s.status}`};try{e=await s.json()}catch(e){return{ok:!1,reason:"error",attempts:c,status:s.status,error:e instanceof Error?e.message:String(e)}}if(!n()||o?.aborted)return{ok:!1,reason:o?.aborted?"aborted":"stale",attempts:c};let u=i(e);if(null==u)return{ok:!1,reason:"error",attempts:c,status:s.status,error:"empty body"};return{ok:!0,value:u,attempts:c}}catch(e){if(o?.aborted||e instanceof DOMException&&"AbortError"===e.name)return{ok:!1,reason:"aborted",attempts:c};return{ok:!1,reason:"error",attempts:c,error:e instanceof Error?e.message:String(e)}}}return{ok:!1,reason:"exhausted",attempts:c}}function cl(){return(0,r.jsx)(eo,{children:(0,r.jsx)(ca,{})})}function ca(){let e,t,n,l,a,d,{t:c}=(0,ea.s9)(),u=(0,o.useSearchParams)(),[p]=(0,i.useState)(()=>{let e;return{requestedCwd:e=u.get("cwd")?.trim()||null,sessionId:e?null:u.get("session")}}),{toggleTheme:h}=nQ(),g=nv(),[f,x]=(0,i.useState)(null),[m,v]=(0,i.useState)(()=>p.requestedCwd?"validating":"idle"),[y,b]=(0,i.useState)(null),[w,C]=(0,i.useState)(0),[_,R]=(0,i.useState)(0),T=(0,i.useRef)((e=void 0,t={target:{kind:"none"},urlRestore:{kind:"idle"},intentGeneration:0,transitionSeq:0},n=new Set,l=e=>{var r,i,o,s;if(r=t.target,i=e.target,r.kind===i.kind&&("none"===r.kind&&"none"===i.kind||("new"===r.kind&&"new"===i.kind?r.intentId===i.intentId&&r.cwd===i.cwd&&r.generation===i.generation:"persisted"===r.kind&&"persisted"===i.kind&&r.sessionId===i.sessionId&&r.cwd===i.cwd&&r.projectRoot===i.projectRoot))&&(o=t.urlRestore,s=e.urlRestore,o.kind===s.kind&&("loading"===o.kind&&"loading"===s.kind||"not-found"===o.kind&&"not-found"===s.kind?o.sessionId===s.sessionId:"error"!==o.kind||"error"!==s.kind||o.sessionId===s.sessionId&&o.message===s.message))&&t.intentGeneration===e.intentGeneration&&t.transitionSeq===e.transitionSeq)return t;for(let r of(t=e,n))r();return t},d={getState:()=>t,subscribe:e=>(n.add(e),()=>{n.delete(e)}),selectPersisted:e=>(t.transitionSeq+=1,l({target:{kind:"persisted",sessionId:e.id,cwd:e.cwd,projectRoot:e.projectRoot??void 0},urlRestore:{kind:"ready"},intentGeneration:t.intentGeneration,transitionSeq:t.transitionSeq})),startNew:a=n=>{t.intentGeneration+=1,t.transitionSeq+=1;let r=tk(n,t.intentGeneration,e);return l({target:{kind:"new",intentId:r.id,cwd:r.cwd,generation:r.generation},urlRestore:{kind:"ready"},intentGeneration:t.intentGeneration,transitionSeq:t.transitionSeq})},promote(e,n){let r=t.target;return"new"===r.kind&&r.intentId===e&&(t.transitionSeq+=1,l({target:{kind:"persisted",sessionId:n.id,cwd:n.cwd||r.cwd,projectRoot:n.projectRoot??void 0},urlRestore:{kind:"ready"},intentGeneration:t.intentGeneration,transitionSeq:t.transitionSeq}),!0)},applyHydrate(e){let n=t.target;return"persisted"===n.kind&&n.sessionId===e.id&&(l({...t,target:{kind:"persisted",sessionId:e.id,cwd:e.cwd||n.cwd,projectRoot:e.projectRoot??n.projectRoot}}),!0)},applyIdentityChange(e,n,r){var i,o;if(void 0!==r&&r!==t.transitionSeq)return t;let s=n.cwd!==e.cwd,d=n.projectRoot!==e.projectRoot;if(!s&&!d)return t;if(!n.cwd&&!n.projectRoot)return"none"===t.target.kind&&e.cwd?a(e.cwd):t;return(i=t.target,!(o=e).cwd||("new"===i.kind?i.cwd!==o.cwd:("persisted"!==i.kind||i.cwd!==o.cwd&&(!o.projectRoot||(i.projectRoot??i.cwd)!==o.projectRoot))&&1))?e.cwd?a(e.cwd):l({target:{kind:"none"},urlRestore:{kind:"ready"},intentGeneration:t.intentGeneration,transitionSeq:t.transitionSeq}):"persisted"===t.target.kind&&e.projectRoot&&t.target.projectRoot!==e.projectRoot?l({...t,target:{...t.target,projectRoot:e.projectRoot}}):t},deleteSession(e,n){let r=t.target;return"persisted"!==r.kind||r.sessionId!==e?t:n?a(n):(t.transitionSeq+=1,l({target:{kind:"none"},urlRestore:{kind:"ready"},intentGeneration:t.intentGeneration,transitionSeq:t.transitionSeq}))},forkTo:e=>d.selectPersisted(e),beginUrlRestore:e=>l({...t,urlRestore:{kind:"loading",sessionId:e}}),completeUrlRestore(e){let n=t.urlRestore,r="loading"===n.kind||"error"===n.kind||"not-found"===n.kind?n.sessionId:null;return r?"error"in e?l({...t,urlRestore:{kind:"error",sessionId:r,message:e.error}}):!0===e.found?d.selectPersisted(e.session):l({target:"persisted"===t.target.kind&&t.target.sessionId===r?{kind:"none"}:t.target,urlRestore:{kind:"not-found",sessionId:r},intentGeneration:t.intentGeneration,transitionSeq:t.transitionSeq}):t},retryUrlRestore(){let e=t.urlRestore;return"error"!==e.kind?null:(l({...t,urlRestore:{kind:"loading",sessionId:e.sessionId}}),e.sessionId)},currentIntent(){let e=t.target;return"new"!==e.kind?null:{id:e.intentId,cwd:e.cwd,generation:e.generation}},selectedSessionId:()=>"persisted"===t.target.kind?t.target.sessionId:null})),M=(0,i.useRef)(tc());(0,i.useEffect)(()=>{var e,t;let n,r,i,o;return e=M.current,t=tQ(),n=new Map,r=!1,i=()=>{if(r)return;let i=e.getState().startingIds;for(let[e,t]of[...n])i.has(e)||(n.delete(e),t.unsubscribe());for(let o of i){if(n.has(o)||!e.getState().startingIds.has(o))continue;let i={unsubscribe:()=>{}};n.set(o,i);let s=t.subscribe(o,t=>{t.agentRunning||t.sendInFlight||e.clearStarting(o)});!r&&n.get(o)===i&&e.getState().startingIds.has(o)?i.unsubscribe=s:s()}},o=e.subscribe(i),i(),()=>{r=!0,o();let e=[...n.values()];for(let t of(n.clear(),e))t.unsubscribe()}},[]);let[W,A]=(0,i.useState)(0);(0,i.useEffect)(()=>T.current.subscribe(()=>A(e=>e+1)),[]);let H=T.current.getState().target,[F,D]=(0,i.useState)(0),[N,B]=(0,i.useState)(0),[O,U]=(0,i.useState)(null),[q,K]=(0,i.useState)(null),V=(0,i.useRef)(null),J=(0,i.useRef)(0),[Z,X]=(0,i.useState)(null),Q=(0,i.useRef)(null),ee=(0,i.useRef)(null),et=(0,i.useRef)(null),en=(0,i.useRef)(0),[er,ei]=(0,i.useState)(null),[eo,ed]=(0,i.useState)(!1),[ec,eu]=(0,i.useState)(null),[ep,eh]=(0,i.useState)(!1),[eg,ef]=(0,i.useState)(!1),[ex,em]=(0,i.useState)(0),[ev,ey]=(0,i.useState)(!0),[eb,ew]=(0,i.useState)(!1),[ek,ej]=(0,i.useState)(!1),[eS,eC]=(0,i.useState)(400),[e_,eI]=(0,i.useState)(!1),[eR,eT]=(0,i.useState)(560),[eM,eE]=(0,i.useState)("content"),[ez,eL]=(0,i.useState)(!1),eW=(0,i.useRef)(null),[eA,eP]=(0,i.useState)(!1),[e$,eH]=(0,i.useState)(300),[eF,eD]=(0,i.useState)(!1),eN=(0,i.useRef)(null),eB=(0,i.useCallback)(e=>{let t=k(e);eH(t);var n=window.localStorage;try{let e=z(n);n.setItem(I,E({...e,sidebarWidth:k(t)}))}catch{}},[]),eO=(0,i.useCallback)(e=>{g||(e.preventDefault(),eN.current={startX:e.clientX,startWidth:e$},eD(!0),e.currentTarget.setPointerCapture(e.pointerId))},[g,e$]),eU=(0,i.useCallback)(e=>{let t=eN.current;t&&eB(t.startWidth+(e.clientX-t.startX))},[eB]),eq=(0,i.useCallback)(e=>{eN.current&&(eN.current=null,eD(!1),e.currentTarget.hasPointerCapture(e.pointerId)&&e.currentTarget.releasePointerCapture(e.pointerId))},[]),eK=(0,i.useCallback)(e=>{let t=e.shiftKey?32:8;"ArrowLeft"===e.key?(e.preventDefault(),eB(e$-t)):"ArrowRight"===e.key?(e.preventDefault(),eB(e$+t)):"Home"===e.key?(e.preventDefault(),eB(240)):"End"===e.key&&(e.preventDefault(),eB(520))},[eB,e$]),eV=(0,i.useCallback)(()=>{eB(300)},[eB]);(0,i.useEffect)(()=>{let e=L();eH(e.sidebarWidth),ej(e.rightPanelOpen),eC(e.rightPanelWidth),eT(e.changesPanelWidth)},[]);let eJ=(0,i.useCallback)(e=>{let t=j(e);eC(t),P({width:t})},[]),eY=(0,i.useCallback)(e=>{ej(e),P({open:e})},[]),eG=(0,i.useCallback)(e=>{let t=S(e);eT(t),$({width:t})},[]),eZ=(0,i.useCallback)(e=>{eI(e),$({open:e})},[]),eX=(0,i.useCallback)(e=>{e.preventDefault(),eW.current={startX:e.clientX,startWidth:eR},eL(!0),e.currentTarget.setPointerCapture(e.pointerId)},[eR]),eQ=(0,i.useCallback)(e=>{let t=eW.current;t&&eG(t.startWidth+t.startX-e.clientX)},[eG]),e0=(0,i.useCallback)(e=>{eW.current&&(eW.current=null,eL(!1),e.currentTarget.hasPointerCapture(e.pointerId)&&e.currentTarget.releasePointerCapture(e.pointerId))},[]),e1=(0,i.useCallback)(e=>{let t=e.shiftKey?32:8;"ArrowLeft"===e.key?(e.preventDefault(),eG(eR+t)):"ArrowRight"===e.key?(e.preventDefault(),eG(eR-t)):"Home"===e.key?(e.preventDefault(),eG(320)):"End"===e.key&&(e.preventDefault(),eG(960))},[eG,eR]);(0,i.useEffect)(()=>{g?(ey(!1),ej(!1)):ej(L().rightPanelOpen)},[g]),(0,i.useEffect)(()=>{ew(!0),eP(!0)},[]);let e2=(0,i.useRef)(null),[e4,e6]=(0,i.useState)([]),[e5,e8]=(0,i.useState)(null),e3=(0,i.useRef)(null),[e9,e7]=(0,i.useState)(null),te=(0,i.useCallback)((e,t,n,r)=>{e6(e),e8(t),e3.current=n,e7(r)},[]),tt=(0,i.useCallback)(e=>{e3.current?.(e)},[]),[tn,tr]=(0,i.useState)(null),ti=(0,i.useCallback)(e=>{tr(e)},[]),[to,ts]=(0,i.useState)(null);(0,i.useRef)(f?.id??null).current=f?.id??null;let tl=(0,i.useCallback)(e=>{ts(e)},[]),[ta,td]=(0,i.useState)(null),tu=(0,i.useCallback)(e=>{td(e)},[]),[tp,th]=(0,i.useState)({}),tg=(0,i.useCallback)(e=>{th(e)},[]),tf=(0,i.useCallback)(()=>{g&&ej(!1),ey(e=>!e)},[g]),tm=(0,i.useCallback)(()=>{g?(ey(!1),ej(e=>!e)):eY(!ek)},[eY,g,ek]),[tv,ty]=(0,i.useState)([]),[tb,tw]=(0,i.useState)("files"),[tC,t_]=(0,i.useState)(null),[tI,tR]=(0,i.useState)(null),[tT,tM]=(0,i.useReducer)(s2,sX),tE=(0,i.useRef)(tT);tE.current=tT;let tz=(0,i.useCallback)(e=>{tE.current=s2(tE.current,e),tM(e)},[]);(0,i.useEffect)(()=>{if(!Object.values(tT.buffers).some(e=>e.dirty))return;let e=e=>{e.preventDefault(),e.returnValue=""};return window.addEventListener("beforeunload",e),()=>window.removeEventListener("beforeunload",e)},[tT]);let tL=(0,i.useCallback)(async e=>{let t=s4(tE.current,e);if(!t||!t.sourceSessionId||!t.dirty||"saving"===t.saveState)return!1;let n=globalThis.crypto?.randomUUID?.()??`${Date.now().toString(36)}-${Math.random().toString(36).slice(2)}`,r=t.revision,i=t.content;tz({type:"markSaving",key:e,requestId:n,requestRevision:r});try{let o=n4(t.filePath),s=new URLSearchParams({type:"save",sessionId:t.sourceSessionId}),l=await fetch(`/api/files/${o}?${s.toString()}`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({content:i,baseline:t.baseline})}),a=await l.json().catch(()=>({}));if(409===l.status)return tz({type:"saveConflict",key:e,requestId:n,baseline:a.baseline,message:a.error??c("viewer_externalChange")}),!1;if(!l.ok||"number"!=typeof a.size||"number"!=typeof a.mtimeMs)throw Error(a.error??c("app_saveFailed",{status:l.status}));tz({type:"saveSuccess",key:e,requestId:n,requestRevision:r,savedContent:i,baseline:{size:a.size,mtimeMs:a.mtimeMs}}),B(e=>e+1),U(e=>[...new Set([...e??[],t.filePath])]);let d=s4(tE.current,e);return!!(d&&d.revision===r&&!d.dirty)}catch(t){return tz({type:"saveError",key:e,requestId:n,message:t instanceof Error?t.message:String(t)}),!1}},[tz,c]),tW=(0,i.useCallback)((e,t)=>{e2.current?.insertText(iP(e,t))},[]),tA=(0,i.useCallback)(e=>{let t=e.map(e=>iP(e,!1)).join("");t&&e2.current?.insertText(t)},[]),tP=p.sessionId,t$=el(),{setIdentity:tH,getIdentitySnapshot:tF}=es(),tD=t$.cwd,[tN,tB]=(0,i.useState)(()=>!tP),[tO,tU]=(0,i.useState)(()=>tP?"loading":"ready"),[tq,tK]=(0,i.useState)(null);(0,i.useEffect)(()=>{Q.current=f?.id??null},[f?.id]),(0,i.useEffect)(()=>{V.current=q},[q]);let tV=(0,i.useCallback)(()=>{ee.current?.abort(),ee.current=null},[]),tJ=(0,i.useCallback)(e=>{try{window.history.replaceState(null,"",e)}catch{}},[]);(0,i.useEffect)(()=>{let e=p.requestedCwd;if(!e)return;let t=new AbortController;et.current=t;let n=en.current;return v("validating"),b(null),fetch("/api/cwd/validate",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({cwd:e}),signal:t.signal}).then(async e=>{let t=await e.json().catch(()=>({}));if(!e.ok||!t.cwd)throw Error(t.error??`HTTP ${e.status}`);en.current===n&&(tH({cwd:t.cwd,projectRoot:t.cwd,status:"ready",error:null}),v("ready"))}).catch(e=>{t.signal.aborted||en.current===n&&(b(e instanceof Error?e.message:String(e)),v("error"))}),()=>{t.abort(),et.current===t&&(et.current=null)}},[p,tH]);let tY=(0,i.useRef)({cwd:t$.cwd,projectRoot:t$.projectRoot});(0,i.useEffect)(()=>{let e=tY.current,t={cwd:t$.cwd,projectRoot:t$.projectRoot};tY.current=t;let n=e.cwd!==t.cwd,r=e.projectRoot!==t.projectRoot;if(!n&&!r)return;let i=T.current.applyIdentityChange(t,e);if("persisted"===i.target.kind){let e=i.target;e.projectRoot&&f&&f.id===e.sessionId&&x(t=>t&&t.id===e.sessionId?{...t,projectRoot:e.projectRoot}:t);return}if("none"===i.target.kind){Q.current=null,x(null),V.current=null,K(null);return}Q.current=null,x(null);let o={id:i.target.intentId,cwd:i.target.cwd,generation:i.target.generation};V.current=o,K(o),tV(),e6([]),e8(null),tr(null),tJ("/")},[t$.cwd,t$.projectRoot,f,tV,tJ]);let tG=(0,i.useCallback)((e,t=!1)=>{en.current+=1,et.current?.abort(),T.current.selectPersisted({id:e.id,cwd:e.cwd,projectRoot:e.projectRoot}),Q.current=e.id,x(e),e.cwd&&tH({cwd:e.cwd,projectRoot:e.projectRoot??e.cwd,status:"ready",error:null}),tV(),V.current=null,K(null),ei(null),tr(null),tB(!0),"ready"!==tO&&tU("ready"),g&&!t&&ey(!1),t||tJ(`?session=${encodeURIComponent(e.id)}`)},[g,tV,tJ,tO]),tZ=(0,i.useCallback)(e=>{let t=e??tF().cwd;if(!t)return;en.current+=1,et.current?.abort();let n=T.current.startNew(t);X(t),tF().cwd!==t&&tH({cwd:t,status:"ready",error:null}),tV();let r="new"===n.target.kind?{id:n.target.intentId,cwd:n.target.cwd,generation:n.target.generation}:tk(t,++J.current);V.current=r,K(r),Q.current=null,ei(null),x(null),e6([]),e8(null),tr(null),g&&ey(!1),tJ("/")},[g,tF,tH,tV,tJ]),tX=(0,i.useCallback)((e,t)=>{if(tH({cwd:e,projectRoot:t??e,status:"ready",error:null}),X(e),V.current){let t={...V.current,cwd:e};V.current=t,K(t)}},[tH]);!function(e){let{onNewSession:t,activeCwd:n,disabled:r=!1}=e;(0,i.useEffect)(()=>{if(!function(e=!1){return!e}(r))return;let e=e=>{if("Escape"===e.key){if(!s)return;let t=e.target?.tagName;if("TEXTAREA"===t||"INPUT"===t)return;e.preventDefault(),s();return}if("n"===e.key&&e.ctrlKey&&e.altKey){if(!n||!t)return;e.preventDefault(),t(n)}};return window.addEventListener("keydown",e),()=>window.removeEventListener("keydown",e)},[n,t,r])}({onNewSession:()=>tZ(),activeCwd:tD,disabled:eo||eg}),(0,i.useEffect)(()=>{let e=e=>{(e.metaKey||e.ctrlKey)&&"k"===e.key.toLowerCase()&&(eo||eg||(e.preventDefault(),eh(e=>!e)))};return window.addEventListener("keydown",e),()=>window.removeEventListener("keydown",e)},[eo,eg]);let t0=(0,i.useCallback)((e,t)=>{T.current.applyHydrate({id:e,cwd:t.cwd??"",projectRoot:t.projectRoot})},[]),t2=(0,i.useCallback)((e,t)=>{tV();let n=new AbortController;ee.current=n;let r=t?.intentId??null,i=t?.forFork===!0;cs({sessionId:e,signal:n.signal,maxAttempts:5,baseDelayMs:200,isCurrent:()=>{if(n.signal.aborted||Q.current!==e)return!1;if(!i&&r){let e=V.current;if(e&&e.id!==r)return!1}return!0},fetchSession:(e,t)=>fetch(`/api/sessions/${encodeURIComponent(e)}/info`,{signal:t}),parseBody:t=>{let n=t?.session;return n?.id===e?n:null}}).then(t=>{var n;t.ok&&((n={selectedSessionId:Q.current,hydratedId:t.value.id,intentId:r,activeIntentId:i?r:V.current?.id}).selectedSessionId!==n.hydratedId||n.activeIntentId&&n.intentId&&n.activeIntentId!==n.intentId||(x(n=>n&&n.id===e?{...n,...t.value}:n),t0(e,t.value),M.current.upsertPending(t.value)))}).catch(()=>{})},[tV,t0]),t4=(0,i.useCallback)((e,t)=>{let n=function(e){let{currentIntentId:t,eventIntentId:n,selectedSessionId:r,createdSessionId:i}=e;return(!r||r===i)&&(!t||!n||t===n)&&(!t||!!n)}({currentIntentId:V.current?.id,eventIntentId:t,selectedSessionId:Q.current,createdSessionId:e.id});if(t&&e.id!==tS(t)&&M.current.removePending(tS(t)),M.current.upsertPending(e),e.id.startsWith(tj)){n&&ei(e.id);return}n&&(T.current.promote(t??"",{id:e.id,cwd:e.cwd,projectRoot:e.projectRoot}),ei(null),Q.current=e.id,x(e),K(null),V.current=null,tJ(`?session=${encodeURIComponent(e.id)}`));let r=Y();r&&G([e,...r.filter(t=>t.id!==e.id)].slice(0,50)),C(e=>e+1)},[tJ]),t6=(0,i.useCallback)(()=>{C(e=>e+1),B(e=>e+1),U(null)},[]),t5=(0,i.useCallback)((e,t)=>{t&&M.current[e?"markStarting":"clearStarting"](t)},[]),t8=(0,i.useCallback)((e,t)=>{void 0!==t&&tx(e,{value:t,images:[]}),tV(),K(null),V.current=null,C(e=>e+1),x(t=>{let n={...t??{path:"",cwd:tD??"",created:"",modified:"",messageCount:0,firstMessage:""},id:e};return M.current.upsertPending(n),n}),Q.current=e,T.current.forkTo({id:e,cwd:tD??"",projectRoot:void 0}),t2(e,{forFork:!0}),tJ(`?session=${encodeURIComponent(e)}`)},[t2,tV,tD,tJ]),t3=(0,i.useCallback)(e=>{e?.error?(T.current.completeUrlRestore({error:e.error}),tU("error"),tK(e.error)):e&&!1===e.found?(T.current.completeUrlRestore({found:!1}),tU("not-found")):tU("ready"),tB(!0)},[]);(0,i.useEffect)(()=>{tP&&T.current.beginUrlRestore(tP)},[tP]);let t9=(0,i.useCallback)(e=>{C(e=>e+1),M.current.markDeleted(e),f?.id===e&&(tV(),K(null),V.current=null,Q.current=null,T.current.deleteSession(e),x(null),e6([]),e8(null),tr(null),tJ("/"))},[f,tV,tJ]),t7=(0,i.useCallback)((e,t,n,r=!1,i="content")=>{let o=sQ(e,n),s=`file:${o}`;ty(i=>i.find(e=>e.id===s)?i:[...i,{id:s,label:t,filePath:e,sourceSessionId:n,bufferKey:o,writable:r,readOnly:!r,kind:"file"}]),tR(null),t_(s),eE(i),eZ(!0),eT(e=>{let t=S(Math.max(e,480));return t!==e&&$({width:t}),t}),g?(ey(!1),ej(!0)):eY(!0)},[eZ,eY,g]),ne=(0,i.useCallback)(e=>{t7(e,n6(e),f?.id??null,!!(f?.id&&!0!==f.readOnly))},[t7,f?.id,f?.readOnly]),nt=(0,i.useCallback)((e,t=!0)=>{let n=tv.find(t=>t.id===e);t&&n?.bufferKey&&tz({type:"remove",key:n.bufferKey});let r=tv.filter(t=>t.id!==e);ty(r),0===r.length?(t_(null),eZ(!1)):t_(t=>t!==e?t:r[r.length-1].id),tR(t=>t===e?null:t)},[eZ,tz,tv]),nn=(0,i.useCallback)(e=>{let t=tv.find(t=>t.id===e),n=t?.bufferKey?s4(tE.current,t.bufferKey):void 0;if(n?.dirty){t_(e),tR(e);return}nt(e)},[nt,tv]),nr=(0,i.useCallback)(()=>{let e=tv.find(e=>{if(!e.bufferKey)return!1;let t=s4(tE.current,e.bufferKey);return t?.dirty===!0});if(e){t_(e.id),tR(e.id);return}for(let e of tv)e.bufferKey&&tz({type:"remove",key:e.bufferKey});ty([]),t_(null),tR(null),eZ(!1)},[eZ,tz,tv]),ni=(0,i.useCallback)(async()=>{let e=tv.find(e=>e.id===tI);e?.bufferKey&&await tL(e.bufferKey)&&nt(e.id)},[nt,tv,tI,tL]),no=(0,i.useCallback)(()=>{let e=tv.find(e=>e.id===tI);e&&(e.bufferKey&&(tz({type:"discard",key:e.bufferKey}),tz({type:"remove",key:e.bufferKey})),nt(e.id,!1))},[nt,tz,tv,tI]),ns=(0,i.useMemo)(()=>[{id:"branch",label:c("branches"),filePath:"",kind:"branch"},{id:"info",label:c("app_sessionInfo"),filePath:"",kind:"info"},{id:"files",label:c("workspace_files"),filePath:"",kind:"files"},{id:"git",label:c("workspace_gitChanges"),filePath:"",kind:"git"},{id:"terminal",label:c("workspace_terminal"),filePath:"",kind:"terminal"}],[c]),nl=(0,i.useCallback)(e=>{ek&&e===tb?g?ej(!1):eY(!1):(tR(null),tw(e),g?(ey(!1),ej(!0)):eY(!0))},[tb,eY,g,ek]),na=(0,i.useCallback)(()=>{g?(ey(!1),ej(!0)):eY(!0),tR(null),tw("info")},[eY,g]),nd="persisted"===H.kind?f?.id===H.sessionId?f:{id:H.sessionId,path:"",cwd:H.cwd,projectRoot:H.projectRoot,created:f?.created??"",modified:f?.modified??"",messageCount:f?.messageCount??0,firstMessage:f?.firstMessage??""}:null,nc="new"===H.kind?{id:H.intentId,cwd:H.cwd,generation:H.generation}:null,nu=null===nd?q?.cwd??nc?.cwd??null:null,np=null!==nd||null!==nu,nh=tN&&!np,ng=tC?tv.find(e=>e.id===tC)??null:null,nf=tD?n6(tD)||tD:null,nx=nf?`${nf} - Pidance`:"Pidance";(0,i.useEffect)(()=>{let e=()=>{document.title!==nx&&(document.title=nx)};e();let t=new MutationObserver(e);return t.observe(document.head,{childList:!0,subtree:!0,characterData:!0}),()=>t.disconnect()},[nx]);let nm=(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(t1,{catalogStore:M.current,selectedSessionId:nd?.id??er,onSelectSession:tG,onNewSession:tZ,initialSessionId:tP,skipInitialProjectSelection:null!==p.requestedCwd,onInitialRestoreDone:t3,restoreNonce:_,refreshKey:w,onSessionDeleted:t9,onProjectAdded:()=>C(e=>e+1)}),(0,r.jsxs)("div",{style:{padding:"6px 8px",flexShrink:0,display:"flex",alignItems:"center",gap:4},children:[(0,r.jsx)("button",{type:"button",onClick:()=>ed(!0),"data-tooltip":c("app_settings"),"aria-label":c("app_settings"),className:"sidebar-icon-btn tooltip-up",children:(0,r.jsxs)("svg",{width:"18",height:"18",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":"true",children:[(0,r.jsx)("circle",{cx:"12",cy:"12",r:"3"}),(0,r.jsx)("path",{d:"M19.4 15a1.7 1.7 0 0 0 .34 1.88l.06.06-2.83 2.83-.06-.06a1.7 1.7 0 0 0-1.88-.34 1.7 1.7 0 0 0-1.03 1.56V21h-4v-.08A1.7 1.7 0 0 0 8.95 19.4a1.7 1.7 0 0 0-1.88.34l-.06.06-2.83-2.83.06-.06A1.7 1.7 0 0 0 4.6 15a1.7 1.7 0 0 0-1.56-1.03H3v-4h.08A1.7 1.7 0 0 0 4.6 8.95a1.7 1.7 0 0 0-.34-1.88l-.06-.06 2.83-2.83.06.06A1.7 1.7 0 0 0 8.95 4.6 1.7 1.7 0 0 0 9.97 3.04V3h4v.08A1.7 1.7 0 0 0 15 4.6a1.7 1.7 0 0 0 1.88-.34l.06-.06 2.83 2.83-.06.06A1.7 1.7 0 0 0 19.4 9c.12.42.52.98 1.56 1.03H21v4h-.08A1.7 1.7 0 0 0 19.4 15Z"})]})}),(0,r.jsx)("button",{type:"button",onClick:()=>ef(!0),"data-tooltip":c("app_about"),"aria-label":c("app_about"),className:`sidebar-icon-btn tooltip-up${eg?" sidebar-icon-btn--active":""}`,children:(0,r.jsxs)("svg",{width:"18",height:"18",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":"true",children:[(0,r.jsx)("circle",{cx:"12",cy:"12",r:"10"}),(0,r.jsx)("path",{d:"M12 16v-4"}),(0,r.jsx)("path",{d:"M12 8h.01"})]})})]})]});return(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)("style",{children:`
7
- @media (max-width: 640px) {
8
- .sidebar-overlay-backdrop.sidebar-mobile-pending {
9
- opacity: 0 !important;
10
- pointer-events: none !important;
11
- }
12
- .sidebar-container.sidebar-mobile-pending.sidebar-open {
13
- transform: translateX(-100%);
14
- box-shadow: none;
15
- }
16
- .workspace-overlay-backdrop.workspace-mobile-pending {
17
- opacity: 0 !important;
18
- pointer-events: none !important;
19
- }
20
- .workspace-container.workspace-mobile-pending.workspace-open {
21
- transform: translateX(100%);
22
- box-shadow: none;
23
- }
24
- }
25
- `}),(0,r.jsxs)("div",{style:{display:"flex",height:"100dvh",overflow:"hidden",background:"var(--bg)"},children:[(0,r.jsx)("div",{className:`sidebar-overlay-backdrop${eb?"":" sidebar-mobile-pending"}`,onClick:()=>ey(!1),style:{position:"fixed",inset:0,zIndex:199,background:"var(--overlay)",opacity:+!!ev,pointerEvents:ev?"auto":"none",transition:"opacity 0.25s ease"}}),(0,r.jsxs)("div",{className:`sidebar-container${ev?" sidebar-open":" sidebar-closed"}${eb?"":" sidebar-mobile-pending"}${eF?" sidebar-dragging":""}`,style:{background:"var(--bg-panel)",borderRight:"1px solid var(--border)",display:"flex",flexDirection:"column",flexShrink:0,zIndex:200,"--sidebar-width":`${e$}px`},children:[(0,r.jsx)("div",{className:"sidebar-inner",children:nm}),ev&&!g&&(0,r.jsx)("div",{className:`sidebar-resize-handle${eF?" dragging":""}`,role:"separator","aria-orientation":"vertical",tabIndex:0,title:c("app_sidebarResizeHandle"),"aria-label":c("app_sidebarResizeHandle"),"aria-valuenow":e$,"aria-valuemin":240,"aria-valuemax":520,onPointerDown:eO,onPointerMove:eU,onPointerUp:eq,onPointerCancel:eq,onKeyDown:eK,onDoubleClick:eV})]}),(0,r.jsxs)("div",{style:{flex:1,display:"flex",flexDirection:"column",overflow:"hidden",minWidth:0,minHeight:0},children:[(0,r.jsxs)("div",{className:"app-top-bar",children:[(0,r.jsx)("button",{onClick:tf,"data-tooltip":ev?c("app_hideSidebar"):c("app_showSidebar"),className:"instant-tooltip","aria-label":ev?c("app_hideSidebar"):c("app_showSidebar"),style:{display:"flex",alignItems:"center",justifyContent:"center",width:36,height:36,padding:0,background:"none",border:"none",borderRight:"1px solid var(--border)",color:"var(--text-muted)",cursor:"pointer",flexShrink:0,transition:"color 0.12s"},onMouseEnter:e=>{e.currentTarget.style.color="var(--text)"},onMouseLeave:e=>{e.currentTarget.style.color="var(--text-muted)"},children:ev?(0,r.jsxs)("svg",{width:"16",height:"16",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:[(0,r.jsx)("rect",{x:"3",y:"3",width:"18",height:"18",rx:"2"}),(0,r.jsx)("line",{x1:"9",y1:"3",x2:"9",y2:"21"})]}):(0,r.jsxs)("svg",{width:"18",height:"18",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",children:[(0,r.jsx)("line",{x1:"3",y1:"6",x2:"21",y2:"6"}),(0,r.jsx)("line",{x1:"3",y1:"12",x2:"21",y2:"12"}),(0,r.jsx)("line",{x1:"3",y1:"18",x2:"21",y2:"18"})]})}),np&&(to||ta||void 0!==tp.tokensPerSecond)&&(()=>{let e=e=>e>=1e6?`${(e/1e6).toFixed(1)}M`:e>=1e3?`${(e/1e3).toFixed(0)}k`:String(e),t=ta??to?.contextUsage??null,n="var(--text-muted)",i=null;if(t?.contextWindow){let r=t.percent;null!==r&&r>90?n="var(--status-danger)":null!==r&&r>70&&(n="var(--status-warning)"),i=null!==r?g?`${r.toFixed(0)}%`:`${r.toFixed(0)}% / ${e(t.contextWindow)}`:g?"?":`? / ${e(t.contextWindow)}`}let o=tp.tokensPerSecond,s="number"==typeof o&&Number.isFinite(o)&&o>0?o>=10?String(Math.round(o)):String(Math.round(10*o)/10):null,l="number"==typeof tp.ttftMs&&tp.ttftMs>=0?tp.ttftMs>=1e3?`${(tp.ttftMs/1e3).toFixed(1)}s`:`${Math.round(tp.ttftMs)}ms`:null,a=[];if(t?.contextWindow){let e=t.percent;a.push(c("app_contextTooltip",{pct:null!==e?e.toFixed(1)+"%":c("app_unknown"),total:t.contextWindow.toLocaleString()}))}s&&a.push(c("app_throughputTooltip",{tps:s})),l&&a.push(c("app_ttftTooltip",{ttft:l}));let d=a.length>0?a.join("\n"):null,u=ek&&"info"===tb;return(0,r.jsxs)("button",{type:"button",onClick:na,"data-tooltip":d||c("app_sessionInfo"),className:"instant-tooltip app-top-bar-stats","aria-label":c("app_sessionInfo"),"aria-pressed":u,style:{marginLeft:"auto",display:"flex",alignItems:"center",gap:g?4:10,paddingLeft:g?8:12,paddingRight:g?8:12,height:"100%",minWidth:0,maxWidth:g?"48vw":void 0,overflow:"hidden",background:u?"var(--bg-selected)":"none",border:"none",borderTop:u?"2px solid var(--accent)":"2px solid transparent",fontSize:g?12:11,color:"var(--text-muted)",whiteSpace:"nowrap",cursor:"pointer",fontVariantNumeric:"tabular-nums",transition:"color 0.1s, background 0.1s"},onMouseEnter:e=>{e.currentTarget.style.color="var(--text)"},onMouseLeave:e=>{e.currentTarget.style.color=u?"var(--text)":"var(--text-muted)"},children:[g&&(0,r.jsxs)("svg",{width:"14",height:"14",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":"true",children:[(0,r.jsx)("circle",{cx:"12",cy:"12",r:"10"}),(0,r.jsx)("line",{x1:"12",y1:"16",x2:"12",y2:"12"}),(0,r.jsx)("line",{x1:"12",y1:"8",x2:"12.01",y2:"8"})]}),i&&(0,r.jsxs)("span",{style:{display:"flex",alignItems:"center",gap:4,color:n},children:[(0,r.jsxs)("svg",{width:"12",height:"12",viewBox:"0 0 10 10",fill:"none",stroke:"currentColor",strokeWidth:"1.2",strokeLinecap:"round",strokeLinejoin:"round",children:[(0,r.jsx)("path",{d:"M1 9 L1 5 Q1 1 5 1 Q9 1 9 5 L9 9"}),(0,r.jsx)("line",{x1:"1",y1:"9",x2:"9",y2:"9"})]}),i]}),s&&(0,r.jsxs)("span",{style:{display:"flex",alignItems:"center",gap:4,color:"var(--text-muted)"},children:[(0,r.jsx)("svg",{width:"12",height:"12",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":"true",children:(0,r.jsx)("polygon",{points:"13 2 3 14 12 14 11 22 21 10 12 10 13 2"})}),s,(0,r.jsx)("span",{style:{opacity:.7},children:c("app_tokensPerSecondUnit")})]})]})})(),g&&(0,r.jsx)("button",{type:"button",onClick:tm,"data-tooltip":ek?c("app_hidePanel"):c("app_showPanel"),className:"instant-tooltip","aria-label":ek?c("app_hidePanel"):c("app_showPanel"),"aria-pressed":ek,style:{marginLeft:np&&(to||ta)?0:"auto",display:"flex",alignItems:"center",justifyContent:"center",width:36,height:36,padding:0,background:ek?"var(--bg-selected)":"none",border:"none",borderLeft:"1px solid var(--border)",color:ek?"var(--text)":"var(--text-muted)",cursor:"pointer",flexShrink:0,transition:"background 0.12s, color 0.12s"},children:(0,r.jsxs)("svg",{width:"16",height:"16",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":"true",children:[(0,r.jsx)("rect",{x:"3",y:"3",width:"18",height:"18",rx:"2"}),(0,r.jsx)("line",{x1:"15",y1:"3",x2:"15",y2:"21"})]})})]}),(0,r.jsx)("div",{style:{flex:1,minHeight:0,overflow:"hidden",position:"relative"},children:(0,r.jsx)("div",{style:{height:"100%",minHeight:0,overflow:"hidden",position:"relative"},children:np?(0,r.jsx)(s$,{session:nd,newSessionCwd:nu,newSessionIntentId:nc?.id??q?.id??null,guideDefaultCwd:Z,onGuideTargetChange:tX,onAgentEnd:t6,onAgentRunningChange:t5,onSessionCreated:t4,onSessionForked:t8,modelsRefreshKey:ex,chatInputRef:e2,onBranchDataChange:te,onSystemPromptChange:ti,onSessionStatsChange:tl,onSessionStatsPanelOpen:na,onContextUsageChange:tu,onTurnMetricsChange:tg,onOpenFile:ne},F):"validating"===m?(0,r.jsxs)("div",{role:"status",style:{height:"100%",display:"flex",flexDirection:"column",alignItems:"center",justifyContent:"center",gap:8,padding:24,color:"var(--text-muted)",textAlign:"center"},children:[(0,r.jsx)("div",{style:{fontSize:14,color:"var(--text)"},children:c("app_openWorkspace")}),(0,r.jsx)("div",{style:{maxWidth:"min(720px, 100%)",overflowWrap:"anywhere",fontFamily:"var(--font-mono)",fontSize:12},children:p.requestedCwd})]}):"error"===m?(0,r.jsxs)("div",{role:"alert",style:{height:"100%",display:"flex",flexDirection:"column",alignItems:"center",justifyContent:"center",gap:8,padding:24,color:"var(--text-muted)",textAlign:"center"},children:[(0,r.jsx)("div",{style:{fontSize:14,color:"var(--status-danger)"},children:c("app_workspaceUnavailable")}),(0,r.jsx)("div",{style:{maxWidth:"min(720px, 100%)",overflowWrap:"anywhere",fontFamily:"var(--font-mono)",fontSize:12},children:p.requestedCwd}),(0,r.jsx)("div",{style:{maxWidth:720,fontSize:12},children:y})]}):"not-found"===tO?(0,r.jsx)("div",{role:"status",style:{height:"100%",display:"flex",flexDirection:"column",alignItems:"center",justifyContent:"center",gap:8,padding:24,color:"var(--text-muted)",textAlign:"center"},children:(0,r.jsx)("div",{style:{fontSize:14,color:"var(--text)"},children:c("app_sessionNotFound")})}):"error"===tO?(0,r.jsxs)("div",{role:"alert",style:{height:"100%",display:"flex",flexDirection:"column",alignItems:"center",justifyContent:"center",gap:8,padding:24,color:"var(--text-muted)",textAlign:"center"},children:[(0,r.jsx)("div",{style:{fontSize:14,color:"var(--status-danger)"},children:c("app_sessionRestoreFailed")}),tq?(0,r.jsx)("div",{style:{maxWidth:720,fontSize:12},children:tq}):null,(0,r.jsx)("button",{type:"button",onClick:()=>{T.current.retryUrlRestore(),tU("loading"),tB(!1),R(e=>e+1),C(e=>e+1)},children:c("app_retry")})]}):nh?tD?(0,r.jsx)("div",{style:{height:"100%",display:"flex",alignItems:"center",justifyContent:"center",color:"var(--text-muted)",fontSize:15},children:c("app_selectSessionFromSidebar")}):(0,r.jsxs)("div",{style:{position:"absolute",top:12,left:12,display:"flex",alignItems:"flex-start",gap:8,userSelect:"none",pointerEvents:"none"},children:[(0,r.jsxs)("svg",{width:"44",height:"44",viewBox:"0 0 24 24",fill:"none",stroke:"var(--accent)",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round",style:{opacity:.7,flexShrink:0},children:[(0,r.jsx)("line",{x1:"20",y1:"12",x2:"4",y2:"12"}),(0,r.jsx)("polyline",{points:"10 6 4 12 10 18"})]}),(0,r.jsxs)("div",{children:[(0,r.jsx)("div",{style:{fontSize:18,fontWeight:600,color:"var(--text)",marginBottom:8},children:c("app_getStarted")}),(0,r.jsxs)("div",{style:{fontSize:12,color:"var(--text-muted)",lineHeight:1.8},children:[(0,r.jsx)("span",{style:{color:"var(--text-dim)",marginRight:6},children:"1."}),c("app_setupSelectProject"),(0,r.jsx)("br",{}),(0,r.jsx)("span",{style:{color:"var(--text-dim)",marginRight:6},children:"2."}),c("app_setupAddModel")]})]})]}):null})})]}),e_&&(0,r.jsxs)("aside",{className:"changes-panel",style:{width:eR,height:"100%",minHeight:0,display:"flex",flexDirection:"column"},"aria-label":c("changes_title"),children:[(0,r.jsx)("div",{className:`changes-panel-resize-handle${ez?" dragging":""}`,role:"separator","aria-orientation":"vertical",tabIndex:0,title:c("changes_resizeHandle"),"aria-label":c("changes_resizeHandle"),"aria-valuenow":eR,"aria-valuemin":320,"aria-valuemax":960,onPointerDown:eX,onPointerMove:eQ,onPointerUp:e0,onPointerCancel:e0,onKeyDown:e1,onDoubleClick:()=>eG(560)}),(0,r.jsx)(lA,{open:e_,width:eR,onWidthChange:eG,cwd:tD,isMobile:g,mobileReady:eA,tabs:tv,activeTabId:tC??"",onSelectTab:e=>{tR(null),t_(e)},onCloseTab:nn,onCloseAllTabs:nr,pendingCloseTabLabel:tI?tv.find(e=>e.id===tI)?.label??null:null,onSaveAndClose:()=>void ni(),onDiscardAndClose:no,onCancelClose:()=>tR(null),activeMode:eM,gitAffectedPaths:O,fileViewerContent:ng?.filePath?(0,r.jsx)("div",{style:{flex:"1 1 auto",minHeight:0,height:"100%",overflow:"hidden",display:"flex",flexDirection:"column"},children:(0,r.jsx)(ll,{filePath:ng.filePath,cwd:tD??void 0,sourceSessionId:ng.sourceSessionId,writable:!0===ng.writable,buffer:ng.bufferKey?s4(tT,ng.bufferKey):void 0,dispatchBuffer:tz,onSave:ng.bufferKey?()=>tL(ng.bufferKey):void 0,gitAffectedPaths:O,onOpenFile:e=>t7(e,n6(e),ng.sourceSessionId,!0===ng.writable)})}):null})]}),(0,r.jsx)("div",{className:`sidebar-overlay-backdrop workspace-overlay-backdrop${eA?"":" workspace-mobile-pending"}`,onClick:()=>ej(!1),style:{position:"fixed",inset:0,zIndex:199,background:"var(--overlay)",opacity:g&&ek?1:0,pointerEvents:g&&ek?"auto":"none",transition:"opacity 0.25s ease"}}),(0,r.jsx)(lz,{open:ek,width:eS,onWidthChange:eJ,onClose:()=>g?ej(!1):eY(!1),cwd:tD,isMobile:g,mobileReady:eA,tabs:ns,activeTabId:tb,onSelectTab:nl,sessionInfoContent:(0,r.jsx)(lP,{session:f,sessionStats:to,contextUsage:ta,systemPrompt:tn}),terminalContent:(0,r.jsx)(d7,{}),branchContent:(0,r.jsx)(dZ,{tree:e4,activeLeafId:e5,onLeafChange:tt,branchActions:e9,hasSession:np,panel:!0}),onOpenFile:(e,t,n)=>t7(e,t,f?.id??null,!!(f?.id&&!0!==f.readOnly),n),fileRefreshKey:N,gitRefreshKey:N,onAtMention:tW,onAtMentions:tA})]}),eo&&(0,r.jsx)(dR,{initialPage:ec,cwd:tD??f?.cwd??null,sessionId:f?.id??null,onClose:()=>{ed(!1),em(e=>e+1)},onModelsChanged:()=>{ed(!1),em(e=>e+1)},onAuthStateChange:()=>em(e=>e+1),onPluginsReloaded:()=>D(e=>e+1)}),(0,r.jsx)(dB,{}),(0,r.jsx)(dq,{}),(0,r.jsx)(dD,{open:eg,onClose:()=>ef(!1)}),(0,r.jsx)(dM,{open:ep,onClose:()=>eh(!1),onSelectSession:e=>tG(e),onNewSession:()=>tZ(),onOpenFile:(e,t)=>t7(e,t,f?.id??null,!!(f?.id&&!0!==f.readOnly),"content"),onOpenSettings:e=>{ed(!0),eu(e)},onToggleTheme:h,cwd:tD??f?.cwd??null})]})}},32383:(e,t,n)=>{"use strict";async function r(e,t,n){let r=await fetch(`/api/agent/${encodeURIComponent(e)}`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(t),signal:n?.signal}),i=await r.json().catch(()=>({}));if(!r.ok||i.error)throw Error(i.error??`HTTP ${r.status}`);return i.data}async function i(e,t,n){let i=await r(e,{type:"prompt",message:t.message,submissionId:t.submissionId,...t.images?.length?{images:t.images.map(e=>({type:"image",data:e.data,mimeType:e.mimeType}))}:{},...t.binaryBlocks?.length?{binaryBlocks:t.binaryBlocks}:{}},n);if(!i||"object"!=typeof i)throw Error("Invalid prompt receipt: expected an object");if("string"!=typeof i.submissionId||!i.submissionId||"string"!=typeof i.sessionId||!i.sessionId||"accepted"!==i.status&&"rejected"!==i.status||i.submissionId!==t.submissionId||i.sessionId!==e)throw Error("Invalid prompt receipt");return{submissionId:i.submissionId,sessionId:i.sessionId,status:i.status}}function o(e){return"boolean"==typeof e.live?e.live:!0===e.running}n.d(t,{$:()=>r,U:()=>o,submitAgentPrompt:()=>i})},84747:(e,t,n)=>{"use strict";n.d(t,{UiLoginGate:()=>s,b:()=>l});var r=n(95155),i=n(12115),o=n(99780);function s({children:e}){let{t}=(0,o.s9)(),[n,l]=(0,i.useState)("loading"),[a,d]=(0,i.useState)(""),[c,u]=(0,i.useState)(!0),[p,h]=(0,i.useState)(null),[g,f]=(0,i.useState)(!1),x=(0,i.useCallback)(async()=>{try{let e=await fetch("/api/auth/ui-session",{method:"GET",credentials:"same-origin",cache:"no-store"}),t=await e.json().catch(()=>({}));if(!t.passwordRequired||e.ok&&t.authenticated)return void l("ready");l("login")}catch{l("login")}},[]);(0,i.useEffect)(()=>{x()},[x]);let m=(0,i.useCallback)(async e=>{if(e.preventDefault(),!g){f(!0),h(null);try{let e=await fetch("/api/auth/ui-session",{method:"POST",credentials:"same-origin",headers:{"Content-Type":"application/json"},body:JSON.stringify({password:a,trustDevice:c})}),n=await e.json().catch(()=>({}));if(429===e.status)return void h(t("auth_loginRateLimited",{seconds:n.retryAfter??60}));if(!e.ok||!n.authenticated)return void h("Invalid credentials"===n.error?t("auth_invalidCredentials"):n.error??t("auth_loginFailed"));d(""),l("ready")}catch{h(t("auth_loginFailed"))}finally{f(!1)}}},[a,g,t,c]);return"loading"===n?(0,r.jsx)("div",{style:{flex:1,display:"flex",alignItems:"center",justifyContent:"center",background:"var(--bg)",color:"var(--text-muted)",fontSize:13},children:t("auth_checking")}):"login"===n?(0,r.jsx)("div",{style:{flex:1,display:"flex",alignItems:"center",justifyContent:"center",background:"var(--bg)",padding:24},children:(0,r.jsxs)("form",{onSubmit:e=>{m(e)},style:{width:"100%",maxWidth:360,padding:"28px 24px",borderRadius:"var(--radius-md, 10px)",border:"1px solid var(--border)",background:"var(--bg-panel)",boxShadow:"var(--shadow-float, 0 8px 28px rgba(0,0,0,0.12))"},children:[(0,r.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:10,marginBottom:18},children:[(0,r.jsx)("img",{src:"/brand/pidance-logo.png",alt:"",width:32,height:32,style:{borderRadius:8}}),(0,r.jsxs)("div",{children:[(0,r.jsx)("div",{style:{fontSize:16,fontWeight:600,color:"var(--text)"},children:t("auth_loginTitle")}),(0,r.jsx)("div",{style:{fontSize:12,color:"var(--text-muted)",marginTop:2},children:t("auth_loginHint")})]})]}),(0,r.jsxs)("label",{style:{display:"block",fontSize:12,color:"var(--text-muted)",marginBottom:6},children:[t("auth_password"),(0,r.jsx)("input",{type:"password",autoFocus:!0,autoComplete:"current-password",value:a,onChange:e=>d(e.target.value),disabled:g,style:{display:"block",width:"100%",marginTop:6,height:36,padding:"0 10px",boxSizing:"border-box",borderRadius:6,border:"1px solid var(--border)",background:"var(--bg)",color:"var(--text)",fontSize:14}})]}),(0,r.jsxs)("label",{style:{display:"flex",alignItems:"center",gap:8,marginTop:12,fontSize:12,color:"var(--text-muted)",cursor:"pointer",userSelect:"none"},children:[(0,r.jsx)("input",{type:"checkbox",checked:c,onChange:e=>u(e.target.checked),disabled:g}),t("auth_trustDevice")]}),p&&(0,r.jsx)("div",{role:"alert",style:{marginTop:12,fontSize:12,color:"var(--status-danger)",lineHeight:1.4},children:p}),(0,r.jsx)("button",{type:"submit",disabled:g||!a,style:{marginTop:18,width:"100%",height:36,border:"none",borderRadius:6,background:!a||g?"var(--border)":"var(--accent)",color:!a||g?"var(--text-dim)":"#fff",fontSize:13,fontWeight:600,cursor:!a||g?"not-allowed":"pointer"},children:g?t("auth_loggingIn"):t("auth_login")})]})}):(0,r.jsx)(r.Fragment,{children:e})}async function l(){await fetch("/api/auth/ui-session",{method:"DELETE",credentials:"same-origin"}).catch(()=>void 0),window.location.reload()}}},e=>{e.O(0,[1838,7330,3888,5899,9780,8441,3794,7358],()=>e(e.s=17581)),_N_E=e.O()}]);