pi-yun 0.2.3 → 0.2.4

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 (317) hide show
  1. package/.next/BUILD_ID +1 -1
  2. package/.next/app-path-routes-manifest.json +18 -17
  3. package/.next/build-manifest.json +3 -3
  4. package/.next/prerender-manifest.json +1 -1
  5. package/.next/required-server-files.js +1 -1
  6. package/.next/required-server-files.json +1 -1
  7. package/.next/routes-manifest.json +6 -0
  8. package/.next/server/app/_global-error/page.js +2 -2
  9. package/.next/server/app/_global-error/page_client-reference-manifest.js +1 -1
  10. package/.next/server/app/_global-error.html +1 -1
  11. package/.next/server/app/_global-error.rsc +1 -1
  12. package/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
  13. package/.next/server/app/_global-error.segments/_global-error/__PAGE__.segment.rsc +1 -1
  14. package/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  15. package/.next/server/app/_not-found/page.js +1 -1
  16. package/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  17. package/.next/server/app/_not-found.html +1 -1
  18. package/.next/server/app/_not-found.rsc +5 -5
  19. package/.next/server/app/_not-found.segments/_full.segment.rsc +5 -5
  20. package/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +5 -5
  21. package/.next/server/app/_not-found.segments/_tree.segment.rsc +4 -4
  22. package/.next/server/app/api/agent/[id]/bash-output/route.js +1 -1
  23. package/.next/server/app/api/agent/[id]/events/route.js +1 -3
  24. package/.next/server/app/api/agent/[id]/events/route.js.nft.json +1 -1
  25. package/.next/server/app/api/agent/[id]/lease/route.js +1 -1
  26. package/.next/server/app/api/agent/[id]/lease/route.js.nft.json +1 -1
  27. package/.next/server/app/api/agent/[id]/route.js +1 -1
  28. package/.next/server/app/api/agent/debug/route.js +1 -0
  29. package/.next/server/app/api/agent/debug/route.js.nft.json +1 -0
  30. package/.next/server/app/api/agent/debug/route_client-reference-manifest.js +1 -0
  31. package/.next/server/app/api/agent/new/route.js +1 -1
  32. package/.next/server/app/api/agent/running/route.js +1 -1
  33. package/.next/server/app/api/app-update/route.js +1 -1
  34. package/.next/server/app/api/auth/api-key/[provider]/route.js +1 -1
  35. package/.next/server/app/api/auth/login/[provider]/route.js +2 -2
  36. package/.next/server/app/api/auth/logout/[provider]/route.js +1 -1
  37. package/.next/server/app/api/auth/providers/route.js +1 -1
  38. package/.next/server/app/api/cache-miss-notices/route.js +1 -1
  39. package/.next/server/app/api/cwd/browse/route.js +1 -1
  40. package/.next/server/app/api/cwd/browse/route.js.nft.json +2 -2
  41. package/.next/server/app/api/cwd/validate/route.js +1 -1
  42. package/.next/server/app/api/cwd/validate/route.js.nft.json +2 -2
  43. package/.next/server/app/api/default-cwd/route.js +1 -1
  44. package/.next/server/app/api/file-index/route.js +1 -1
  45. package/.next/server/app/api/files/[...path]/route.js +3 -3
  46. package/.next/server/app/api/git/diff/route.js +1 -1
  47. package/.next/server/app/api/git/status/route.js +1 -1
  48. package/.next/server/app/api/home/route.js +1 -1
  49. package/.next/server/app/api/mcp/route.js +2 -2
  50. package/.next/server/app/api/mcp/sign-in/[flowId]/route.js +1 -1
  51. package/.next/server/app/api/mcp/sign-in/route.js +1 -1
  52. package/.next/server/app/api/mcp/test/route.js +1 -1
  53. package/.next/server/app/api/models/default/route.js +1 -1
  54. package/.next/server/app/api/models/default/route.js.nft.json +2 -2
  55. package/.next/server/app/api/models/enabled/route.js +1 -1
  56. package/.next/server/app/api/models/enabled/route.js.nft.json +2 -2
  57. package/.next/server/app/api/models/refresh/route.js +1 -1
  58. package/.next/server/app/api/models/route.js +1 -1
  59. package/.next/server/app/api/models-config/catalog/route.js +1 -1
  60. package/.next/server/app/api/models-config/discover/route.js +1 -1
  61. package/.next/server/app/api/models-config/route.js +1 -1
  62. package/.next/server/app/api/models-config/test/route.js +1 -1
  63. package/.next/server/app/api/open-in-explorer/route.js +1 -1
  64. package/.next/server/app/api/plugins/check/route.js +1 -1
  65. package/.next/server/app/api/plugins/route.js +1 -1
  66. package/.next/server/app/api/project-trust/route.js +1 -1
  67. package/.next/server/app/api/provider-usage/query/route.js +1 -1
  68. package/.next/server/app/api/push/config/route.js +1 -1
  69. package/.next/server/app/api/push/subscribe/route.js +1 -1
  70. package/.next/server/app/api/sessions/[id]/auto-name/route.js +2 -2
  71. package/.next/server/app/api/sessions/[id]/context/route.js +1 -1
  72. package/.next/server/app/api/sessions/[id]/entries/[entryId]/thinking/route.js +1 -1
  73. package/.next/server/app/api/sessions/[id]/entries/[entryId]/tool-result-image/route.js +1 -1
  74. package/.next/server/app/api/sessions/[id]/export/route.js +2 -2
  75. package/.next/server/app/api/sessions/[id]/fork/route.js +1 -1
  76. package/.next/server/app/api/sessions/[id]/route.js +1 -1
  77. package/.next/server/app/api/sessions/[id]/state/route.js +1 -1
  78. package/.next/server/app/api/sessions/delete/route.js +1 -1
  79. package/.next/server/app/api/sessions/route.js +1 -1
  80. package/.next/server/app/api/sessions/search/route.js +1 -1
  81. package/.next/server/app/api/sessions/stats/route.js +1 -1
  82. package/.next/server/app/api/sessions/ui-state/route.js +1 -1
  83. package/.next/server/app/api/skills/check/route.js +1 -1
  84. package/.next/server/app/api/skills/content/route.js +1 -1
  85. package/.next/server/app/api/skills/install/route.js +1 -1
  86. package/.next/server/app/api/skills/route.js +1 -1
  87. package/.next/server/app/api/skills/search/route.js +1 -1
  88. package/.next/server/app/api/skills/update/route.js +1 -1
  89. package/.next/server/app/api/subagents/[id]/route.js +1 -1
  90. package/.next/server/app/api/subagents/profiles/route.js +1 -1
  91. package/.next/server/app/api/subagents/settings/route.js +1 -1
  92. package/.next/server/app/api/terminal/[id]/events/route.js +3 -3
  93. package/.next/server/app/api/terminal/[id]/route.js +1 -1
  94. package/.next/server/app/api/terminal/route.js +1 -1
  95. package/.next/server/app/api/tools/settings/route.js +1 -1
  96. package/.next/server/app/api/web-auth/route.js +1 -1
  97. package/.next/server/app/api/worktrees/route.js +1 -1
  98. package/.next/server/app/favicon.ico/route.js +1 -1
  99. package/.next/server/app/index.html +1 -1
  100. package/.next/server/app/index.rsc +7 -7
  101. package/.next/server/app/index.segments/__PAGE__.segment.rsc +7 -7
  102. package/.next/server/app/index.segments/_full.segment.rsc +7 -7
  103. package/.next/server/app/index.segments/_tree.segment.rsc +4 -4
  104. package/.next/server/app/login/page.js +3 -3
  105. package/.next/server/app/login/page.js.nft.json +1 -1
  106. package/.next/server/app/login/page_client-reference-manifest.js +1 -1
  107. package/.next/server/app/login.html +1 -1
  108. package/.next/server/app/login.rsc +6 -6
  109. package/.next/server/app/login.segments/_full.segment.rsc +6 -6
  110. package/.next/server/app/login.segments/_tree.segment.rsc +4 -4
  111. package/.next/server/app/login.segments/login/__PAGE__.segment.rsc +6 -6
  112. package/.next/server/app/manifest.webmanifest/route.js +2 -2
  113. package/.next/server/app/page.js +852 -59
  114. package/.next/server/app/page.js.nft.json +1 -1
  115. package/.next/server/app/page_client-reference-manifest.js +1 -1
  116. package/.next/server/app/pet-preview/page.js +1 -1
  117. package/.next/server/app/pet-preview/page.js.nft.json +1 -1
  118. package/.next/server/app/pet-preview/page_client-reference-manifest.js +1 -1
  119. package/.next/server/app/pet-preview.html +1 -1
  120. package/.next/server/app/pet-preview.rsc +6 -6
  121. package/.next/server/app/pet-preview.segments/_full.segment.rsc +6 -6
  122. package/.next/server/app/pet-preview.segments/_tree.segment.rsc +4 -4
  123. package/.next/server/app/pet-preview.segments/pet-preview/__PAGE__.segment.rsc +6 -6
  124. package/.next/server/app-paths-manifest.json +18 -17
  125. package/.next/server/chunks/1207.js +1 -1
  126. package/.next/server/chunks/1906.js +1 -1
  127. package/.next/server/chunks/2243.js +1 -1
  128. package/.next/server/chunks/27.js +1 -1
  129. package/.next/server/chunks/3371.js +1 -0
  130. package/.next/server/chunks/3374.js +2 -2
  131. package/.next/server/chunks/3757.js +1 -1
  132. package/.next/server/chunks/3824.js +1 -1
  133. package/.next/server/chunks/4698.js +1 -1
  134. package/.next/server/chunks/5582.js +3 -3
  135. package/.next/server/chunks/6429.js +9 -9
  136. package/.next/server/chunks/7365.js +1 -1
  137. package/.next/server/chunks/8177.js +1 -0
  138. package/.next/server/chunks/8781.js +3 -0
  139. package/.next/server/functions-config-manifest.json +1 -0
  140. package/.next/server/instrumentation.js +1 -1
  141. package/.next/server/instrumentation.js.nft.json +1 -1
  142. package/.next/server/middleware-build-manifest.js +1 -1
  143. package/.next/server/middleware.js +1 -1
  144. package/.next/server/pages/404.html +1 -1
  145. package/.next/server/pages/500.html +1 -1
  146. package/.next/static/chunks/1278-924fb78593d04d55.js +1 -0
  147. package/.next/static/chunks/{9932-60e21347ba9f8664.js → 4908-bc77348603c9c216.js} +2 -2
  148. package/.next/static/chunks/app/_global-error/{page-cbe4231fb889bdce.js → page-aea014bebc656830.js} +1 -1
  149. package/.next/static/chunks/app/api/agent/[id]/bash-output/{route-cbe4231fb889bdce.js → route-aea014bebc656830.js} +1 -1
  150. package/.next/static/chunks/app/api/agent/[id]/events/{route-cbe4231fb889bdce.js → route-aea014bebc656830.js} +1 -1
  151. package/.next/static/chunks/app/api/agent/[id]/lease/{route-cbe4231fb889bdce.js → route-aea014bebc656830.js} +1 -1
  152. package/.next/static/chunks/app/api/agent/[id]/route-aea014bebc656830.js +1 -0
  153. package/.next/static/chunks/app/api/agent/debug/route-aea014bebc656830.js +1 -0
  154. package/.next/static/chunks/app/api/agent/new/route-aea014bebc656830.js +1 -0
  155. package/.next/static/chunks/app/api/agent/running/route-aea014bebc656830.js +1 -0
  156. package/.next/static/chunks/app/api/app-update/route-aea014bebc656830.js +1 -0
  157. package/.next/static/chunks/app/api/auth/api-key/[provider]/route-aea014bebc656830.js +1 -0
  158. package/.next/static/chunks/app/api/auth/login/[provider]/route-aea014bebc656830.js +1 -0
  159. package/.next/static/chunks/app/api/auth/logout/[provider]/route-aea014bebc656830.js +1 -0
  160. package/.next/static/chunks/app/api/auth/providers/route-aea014bebc656830.js +1 -0
  161. package/.next/static/chunks/app/api/cache-miss-notices/route-aea014bebc656830.js +1 -0
  162. package/.next/static/chunks/app/api/cwd/browse/route-aea014bebc656830.js +1 -0
  163. package/.next/static/chunks/app/api/cwd/validate/route-aea014bebc656830.js +1 -0
  164. package/.next/static/chunks/app/api/default-cwd/route-aea014bebc656830.js +1 -0
  165. package/.next/static/chunks/app/api/file-index/route-aea014bebc656830.js +1 -0
  166. package/.next/static/chunks/app/api/files/[...path]/route-aea014bebc656830.js +1 -0
  167. package/.next/static/chunks/app/api/git/diff/route-aea014bebc656830.js +1 -0
  168. package/.next/static/chunks/app/api/git/status/route-aea014bebc656830.js +1 -0
  169. package/.next/static/chunks/app/api/home/route-aea014bebc656830.js +1 -0
  170. package/.next/static/chunks/app/api/mcp/route-aea014bebc656830.js +1 -0
  171. package/.next/static/chunks/app/api/mcp/sign-in/[flowId]/route-aea014bebc656830.js +1 -0
  172. package/.next/static/chunks/app/api/mcp/sign-in/route-aea014bebc656830.js +1 -0
  173. package/.next/static/chunks/app/api/mcp/test/route-aea014bebc656830.js +1 -0
  174. package/.next/static/chunks/app/api/models/default/route-aea014bebc656830.js +1 -0
  175. package/.next/static/chunks/app/api/models/enabled/route-aea014bebc656830.js +1 -0
  176. package/.next/static/chunks/app/api/models/refresh/route-aea014bebc656830.js +1 -0
  177. package/.next/static/chunks/app/api/models/route-aea014bebc656830.js +1 -0
  178. package/.next/static/chunks/app/api/models-config/catalog/route-aea014bebc656830.js +1 -0
  179. package/.next/static/chunks/app/api/models-config/discover/route-aea014bebc656830.js +1 -0
  180. package/.next/static/chunks/app/api/models-config/route-aea014bebc656830.js +1 -0
  181. package/.next/static/chunks/app/api/models-config/test/route-aea014bebc656830.js +1 -0
  182. package/.next/static/chunks/app/api/open-in-explorer/route-aea014bebc656830.js +1 -0
  183. package/.next/static/chunks/app/api/plugins/check/route-aea014bebc656830.js +1 -0
  184. package/.next/static/chunks/app/api/plugins/route-aea014bebc656830.js +1 -0
  185. package/.next/static/chunks/app/api/project-trust/route-aea014bebc656830.js +1 -0
  186. package/.next/static/chunks/app/api/provider-usage/query/route-aea014bebc656830.js +1 -0
  187. package/.next/static/chunks/app/api/push/config/route-aea014bebc656830.js +1 -0
  188. package/.next/static/chunks/app/api/push/subscribe/route-aea014bebc656830.js +1 -0
  189. package/.next/static/chunks/app/api/sessions/[id]/auto-name/route-aea014bebc656830.js +1 -0
  190. package/.next/static/chunks/app/api/sessions/[id]/context/route-aea014bebc656830.js +1 -0
  191. package/.next/static/chunks/app/api/sessions/[id]/entries/[entryId]/thinking/route-aea014bebc656830.js +1 -0
  192. package/.next/static/chunks/app/api/sessions/[id]/entries/[entryId]/tool-result-image/route-aea014bebc656830.js +1 -0
  193. package/.next/static/chunks/app/api/sessions/[id]/export/route-aea014bebc656830.js +1 -0
  194. package/.next/static/chunks/app/api/sessions/[id]/fork/route-aea014bebc656830.js +1 -0
  195. package/.next/static/chunks/app/api/sessions/[id]/route-aea014bebc656830.js +1 -0
  196. package/.next/static/chunks/app/api/sessions/[id]/state/route-aea014bebc656830.js +1 -0
  197. package/.next/static/chunks/app/api/sessions/delete/route-aea014bebc656830.js +1 -0
  198. package/.next/static/chunks/app/api/sessions/route-aea014bebc656830.js +1 -0
  199. package/.next/static/chunks/app/api/sessions/search/route-aea014bebc656830.js +1 -0
  200. package/.next/static/chunks/app/api/sessions/stats/route-aea014bebc656830.js +1 -0
  201. package/.next/static/chunks/app/api/sessions/ui-state/route-aea014bebc656830.js +1 -0
  202. package/.next/static/chunks/app/api/skills/check/route-aea014bebc656830.js +1 -0
  203. package/.next/static/chunks/app/api/skills/content/route-aea014bebc656830.js +1 -0
  204. package/.next/static/chunks/app/api/skills/install/route-aea014bebc656830.js +1 -0
  205. package/.next/static/chunks/app/api/skills/route-aea014bebc656830.js +1 -0
  206. package/.next/static/chunks/app/api/skills/search/route-aea014bebc656830.js +1 -0
  207. package/.next/static/chunks/app/api/skills/update/route-aea014bebc656830.js +1 -0
  208. package/.next/static/chunks/app/api/subagents/[id]/route-aea014bebc656830.js +1 -0
  209. package/.next/static/chunks/app/api/subagents/profiles/route-aea014bebc656830.js +1 -0
  210. package/.next/static/chunks/app/api/subagents/settings/route-aea014bebc656830.js +1 -0
  211. package/.next/static/chunks/app/api/terminal/[id]/events/route-aea014bebc656830.js +1 -0
  212. package/.next/static/chunks/app/api/terminal/[id]/route-aea014bebc656830.js +1 -0
  213. package/.next/static/chunks/app/api/terminal/route-aea014bebc656830.js +1 -0
  214. package/.next/static/chunks/app/api/tools/settings/route-aea014bebc656830.js +1 -0
  215. package/.next/static/chunks/app/api/web-auth/route-aea014bebc656830.js +1 -0
  216. package/.next/static/chunks/app/api/worktrees/route-aea014bebc656830.js +1 -0
  217. package/.next/static/chunks/app/layout-fd458f024053777b.js +1 -0
  218. package/.next/static/chunks/app/manifest.webmanifest/route-aea014bebc656830.js +1 -0
  219. package/.next/static/chunks/app/page-d2c786f63d634b03.js +1022 -0
  220. package/.next/static/chunks/next/dist/client/components/builtin/app-error-aea014bebc656830.js +1 -0
  221. package/.next/static/chunks/next/dist/client/components/builtin/forbidden-aea014bebc656830.js +1 -0
  222. package/.next/static/chunks/next/dist/client/components/builtin/not-found-aea014bebc656830.js +1 -0
  223. package/.next/static/chunks/next/dist/client/components/builtin/unauthorized-aea014bebc656830.js +1 -0
  224. package/.next/static/chunks/{webpack-03add08f717df51e.js → webpack-98cb88af9c517ce2.js} +1 -1
  225. package/.next/static/css/0e52953f40c91a8b.css +1 -0
  226. package/.next/static/css/11d43ff6e42cbb72.css +1 -0
  227. package/.next/static/css/bb657b16840154d3.css +1 -0
  228. package/.next/static/vJWDpddtTSWk_gKxyuTL7/_buildManifest.js +1 -0
  229. package/.next/trace +8 -85
  230. package/.next/trace-build +1 -1
  231. package/.next/types/app/api/agent/debug/route.ts +353 -0
  232. package/.next/types/routes.d.ts +2 -1
  233. package/.next/types/validator.ts +9 -0
  234. package/README.md +2 -1
  235. package/bin/browser-opener.js +44 -1
  236. package/bin/network-addresses.js +62 -0
  237. package/bin/pi-web.js +10 -2
  238. package/package.json +1 -1
  239. package/.next/server/chunks/5787.js +0 -1
  240. package/.next/server/chunks/7492.js +0 -1
  241. package/.next/static/chunks/1278-93326582f35e0b95.js +0 -1
  242. package/.next/static/chunks/app/api/agent/[id]/route-cbe4231fb889bdce.js +0 -1
  243. package/.next/static/chunks/app/api/agent/new/route-cbe4231fb889bdce.js +0 -1
  244. package/.next/static/chunks/app/api/agent/running/route-cbe4231fb889bdce.js +0 -1
  245. package/.next/static/chunks/app/api/app-update/route-cbe4231fb889bdce.js +0 -1
  246. package/.next/static/chunks/app/api/auth/api-key/[provider]/route-cbe4231fb889bdce.js +0 -1
  247. package/.next/static/chunks/app/api/auth/login/[provider]/route-cbe4231fb889bdce.js +0 -1
  248. package/.next/static/chunks/app/api/auth/logout/[provider]/route-cbe4231fb889bdce.js +0 -1
  249. package/.next/static/chunks/app/api/auth/providers/route-cbe4231fb889bdce.js +0 -1
  250. package/.next/static/chunks/app/api/cache-miss-notices/route-cbe4231fb889bdce.js +0 -1
  251. package/.next/static/chunks/app/api/cwd/browse/route-cbe4231fb889bdce.js +0 -1
  252. package/.next/static/chunks/app/api/cwd/validate/route-cbe4231fb889bdce.js +0 -1
  253. package/.next/static/chunks/app/api/default-cwd/route-cbe4231fb889bdce.js +0 -1
  254. package/.next/static/chunks/app/api/file-index/route-cbe4231fb889bdce.js +0 -1
  255. package/.next/static/chunks/app/api/files/[...path]/route-cbe4231fb889bdce.js +0 -1
  256. package/.next/static/chunks/app/api/git/diff/route-cbe4231fb889bdce.js +0 -1
  257. package/.next/static/chunks/app/api/git/status/route-cbe4231fb889bdce.js +0 -1
  258. package/.next/static/chunks/app/api/home/route-cbe4231fb889bdce.js +0 -1
  259. package/.next/static/chunks/app/api/mcp/route-cbe4231fb889bdce.js +0 -1
  260. package/.next/static/chunks/app/api/mcp/sign-in/[flowId]/route-cbe4231fb889bdce.js +0 -1
  261. package/.next/static/chunks/app/api/mcp/sign-in/route-cbe4231fb889bdce.js +0 -1
  262. package/.next/static/chunks/app/api/mcp/test/route-cbe4231fb889bdce.js +0 -1
  263. package/.next/static/chunks/app/api/models/default/route-cbe4231fb889bdce.js +0 -1
  264. package/.next/static/chunks/app/api/models/enabled/route-cbe4231fb889bdce.js +0 -1
  265. package/.next/static/chunks/app/api/models/refresh/route-cbe4231fb889bdce.js +0 -1
  266. package/.next/static/chunks/app/api/models/route-cbe4231fb889bdce.js +0 -1
  267. package/.next/static/chunks/app/api/models-config/catalog/route-cbe4231fb889bdce.js +0 -1
  268. package/.next/static/chunks/app/api/models-config/discover/route-cbe4231fb889bdce.js +0 -1
  269. package/.next/static/chunks/app/api/models-config/route-cbe4231fb889bdce.js +0 -1
  270. package/.next/static/chunks/app/api/models-config/test/route-cbe4231fb889bdce.js +0 -1
  271. package/.next/static/chunks/app/api/open-in-explorer/route-cbe4231fb889bdce.js +0 -1
  272. package/.next/static/chunks/app/api/plugins/check/route-cbe4231fb889bdce.js +0 -1
  273. package/.next/static/chunks/app/api/plugins/route-cbe4231fb889bdce.js +0 -1
  274. package/.next/static/chunks/app/api/project-trust/route-cbe4231fb889bdce.js +0 -1
  275. package/.next/static/chunks/app/api/provider-usage/query/route-cbe4231fb889bdce.js +0 -1
  276. package/.next/static/chunks/app/api/push/config/route-cbe4231fb889bdce.js +0 -1
  277. package/.next/static/chunks/app/api/push/subscribe/route-cbe4231fb889bdce.js +0 -1
  278. package/.next/static/chunks/app/api/sessions/[id]/auto-name/route-cbe4231fb889bdce.js +0 -1
  279. package/.next/static/chunks/app/api/sessions/[id]/context/route-cbe4231fb889bdce.js +0 -1
  280. package/.next/static/chunks/app/api/sessions/[id]/entries/[entryId]/thinking/route-cbe4231fb889bdce.js +0 -1
  281. package/.next/static/chunks/app/api/sessions/[id]/entries/[entryId]/tool-result-image/route-cbe4231fb889bdce.js +0 -1
  282. package/.next/static/chunks/app/api/sessions/[id]/export/route-cbe4231fb889bdce.js +0 -1
  283. package/.next/static/chunks/app/api/sessions/[id]/fork/route-cbe4231fb889bdce.js +0 -1
  284. package/.next/static/chunks/app/api/sessions/[id]/route-cbe4231fb889bdce.js +0 -1
  285. package/.next/static/chunks/app/api/sessions/[id]/state/route-cbe4231fb889bdce.js +0 -1
  286. package/.next/static/chunks/app/api/sessions/delete/route-cbe4231fb889bdce.js +0 -1
  287. package/.next/static/chunks/app/api/sessions/route-cbe4231fb889bdce.js +0 -1
  288. package/.next/static/chunks/app/api/sessions/search/route-cbe4231fb889bdce.js +0 -1
  289. package/.next/static/chunks/app/api/sessions/stats/route-cbe4231fb889bdce.js +0 -1
  290. package/.next/static/chunks/app/api/sessions/ui-state/route-cbe4231fb889bdce.js +0 -1
  291. package/.next/static/chunks/app/api/skills/check/route-cbe4231fb889bdce.js +0 -1
  292. package/.next/static/chunks/app/api/skills/content/route-cbe4231fb889bdce.js +0 -1
  293. package/.next/static/chunks/app/api/skills/install/route-cbe4231fb889bdce.js +0 -1
  294. package/.next/static/chunks/app/api/skills/route-cbe4231fb889bdce.js +0 -1
  295. package/.next/static/chunks/app/api/skills/search/route-cbe4231fb889bdce.js +0 -1
  296. package/.next/static/chunks/app/api/skills/update/route-cbe4231fb889bdce.js +0 -1
  297. package/.next/static/chunks/app/api/subagents/[id]/route-cbe4231fb889bdce.js +0 -1
  298. package/.next/static/chunks/app/api/subagents/profiles/route-cbe4231fb889bdce.js +0 -1
  299. package/.next/static/chunks/app/api/subagents/settings/route-cbe4231fb889bdce.js +0 -1
  300. package/.next/static/chunks/app/api/terminal/[id]/events/route-cbe4231fb889bdce.js +0 -1
  301. package/.next/static/chunks/app/api/terminal/[id]/route-cbe4231fb889bdce.js +0 -1
  302. package/.next/static/chunks/app/api/terminal/route-cbe4231fb889bdce.js +0 -1
  303. package/.next/static/chunks/app/api/tools/settings/route-cbe4231fb889bdce.js +0 -1
  304. package/.next/static/chunks/app/api/web-auth/route-cbe4231fb889bdce.js +0 -1
  305. package/.next/static/chunks/app/api/worktrees/route-cbe4231fb889bdce.js +0 -1
  306. package/.next/static/chunks/app/layout-b1ce6552c10e045b.js +0 -1
  307. package/.next/static/chunks/app/manifest.webmanifest/route-cbe4231fb889bdce.js +0 -1
  308. package/.next/static/chunks/app/page-3d87202e7f491be4.js +0 -229
  309. package/.next/static/chunks/next/dist/client/components/builtin/app-error-cbe4231fb889bdce.js +0 -1
  310. package/.next/static/chunks/next/dist/client/components/builtin/forbidden-cbe4231fb889bdce.js +0 -1
  311. package/.next/static/chunks/next/dist/client/components/builtin/not-found-cbe4231fb889bdce.js +0 -1
  312. package/.next/static/chunks/next/dist/client/components/builtin/unauthorized-cbe4231fb889bdce.js +0 -1
  313. package/.next/static/css/0ba51581376fe049.css +0 -1
  314. package/.next/static/css/d986dbac15b9ebaa.css +0 -1
  315. package/.next/static/css/e678fb57b00f0bb2.css +0 -1
  316. package/.next/static/pmfOa9kKCLb5t2FbVpaNk/_buildManifest.js +0 -1
  317. /package/.next/static/{pmfOa9kKCLb5t2FbVpaNk → vJWDpddtTSWk_gKxyuTL7}/_ssgManifest.js +0 -0
@@ -1,229 +0,0 @@
1
- (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[8974],{14755:(e,t,n)=>{"use strict";n.d(t,{Q8:()=>r,YO:()=>p,getPresetFromTools:()=>u,kU:()=>o,sn:()=>d,xG:()=>h});let r="configured",i=["configured","none","read-only","default","full"],s=[],o=["read","grep","find","ls"],a=["read","bash","edit","write"],l=["bash","read","edit","write","grep","find","ls"],c=new Set([...l,"powershell"]);function d(e){return"string"==typeof e&&i.includes(e)}function u(e){return p(e.filter(e=>e.active).map(e=>e.name))}function p(e){if(0===e.length)return"none";let t=e.map(e=>"powershell"===e?"bash":e).filter(e=>c.has(e)).sort().join(",");return t===[...o].sort().join(",")?"read-only":t===[...a].sort().join(",")?"default":t===[...l].sort().join(",")?"full":"default"}function h(e){if(e!==r)return"none"===e?[...s]:"read-only"===e?[...o]:"full"===e?[...l]:[...a]}},41767:(e,t,n)=>{Promise.resolve().then(n.bind(n,45010)),Promise.resolve().then(n.bind(n,21278))},45010:(e,t,n)=>{"use strict";n.d(t,{AppShell:()=>x4});var r=n(95155),i=n(12115),s=n(73321);let o=null;var a=n(47650);function l(e){let t=function(e){let t=new Map(e.map(e=>[e.id,e])),n=new Map;for(let r of e){if(n.has(r.id))continue;let e=[],i=new Set,s=r.id,o=null;for(;;){if(n.has(s)){o=n.get(s)??null;break}if(i.has(s))break;i.add(s),e.push(s);let r=t.get(s);if(!r)break;if(r.relation?.kind!=="subagent"){o=r.id;break}s=r.relation.parentSessionId}for(let t of e)n.set(t,o)}return n}(e),n=new Map;for(let t of e)t.relation?.kind!=="subagent"&&n.set(t.id,{root:t,subagents:[],latestModified:t.modified});for(let r of e){if(r.relation?.kind!=="subagent")continue;let e=t.get(r.id),i=e?n.get(e):void 0;i&&(i.subagents.push(r),r.modified>i.latestModified&&(i.latestModified=r.modified))}return[...n.values()].sort((e,t)=>t.latestModified.localeCompare(e.latestModified))}function c(e){return`?session=${encodeURIComponent(e)}`}function d(e){return!e.defaultPrevented&&0===e.button&&!e.ctrlKey&&!e.metaKey&&!e.shiftKey&&!e.altKey}let u="pi-web:last-open-by-workspace";function p(){try{return window.localStorage}catch{return null}}function h(e){let t=e.getItem(u);if(!t)return{};try{let e=JSON.parse(t);return null===e||"object"!=typeof e||Array.isArray(e)?{}:e}catch{return{}}}function f(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:p();if(t)try{let n=h(t);if(!(e in n))return;delete n[e],0===Object.keys(n).length?t.removeItem(u):t.setItem(u,JSON.stringify(n))}catch{}}function m(e){return e.projectKey??e.projectRoot??e.cwd}function g(e){let t=new Map;for(let n of e){let e=n.projectRoot??n.cwd;if(!e)continue;let r=m(n),i=t.get(r);(!i||n.modified>i.modified)&&t.set(r,{root:e,modified:n.modified})}return[...t.entries()].sort((e,t)=>t[1].modified.localeCompare(e[1].modified)).map(e=>{let[t,{root:n}]=e;return{key:t,root:n}})}let x=/^[A-Za-z0-9](?:[A-Za-z0-9._-]*[A-Za-z0-9])?$/,v=(e,t)=>Object.prototype.hasOwnProperty.call(e,t);function b(e){return"object"==typeof e&&null!==e&&!Array.isArray(e)}function y(e){return"number"==typeof e&&Number.isFinite(e)&&e>=0}function j(e){return"string"==typeof e&&e.length>0&&e.length<=4096&&"__proto__"!==e}let k=/[\u0000-\u001f\u007f-\u009f\u2028\u2029]/;function w(e){if(null===e)return null;if("string"!=typeof e)return;let t=e.trim();return t?k.test(t)||[...t].length>80?void 0:t:null}function S(e,t){let n=e.projectNames;return n&&v(n,t)?n[t]:void 0}function C(e,t){return!!e.removedProjects&&v(e.removedProjects,t)}let N=new TextEncoder;function E(e){return N.encode(JSON.stringify(e)).length+1}function $(e){let t=1;for(let n of e)t+=E(n);return t}function M(e,t){return e<=1e3&&t<=262144}function I(e){let t=[],n=1;for(let r of e){if(t.length>=1e3)break;let e=E(r);n+e>262144||(t.push(r),n+=e)}return t}function T(e,t){return N.encode(JSON.stringify(e)).length+N.encode(JSON.stringify(t)).length+2}function R(e,t){return e<=1e3&&t<=262144}function L(){return{version:1,revision:0,sessions:{},projects:{}}}function A(e,t,n){let r=v(e,t)?e[t]:void 0;return void 0===n.pinnedAt&&void 0===n.archivedAt?!!r&&(delete e[t],!0):(r?.pinnedAt!==n.pinnedAt||r?.archivedAt!==n.archivedAt)&&(e[t]=n,!0)}function P(e,t){var n;return n=e.projectOrder??[],!(n.length===t.length&&n.every((e,n)=>e===t[n]))&&(0===t.length?delete e.projectOrder:e.projectOrder=t,!0)}function z(e,t,n){let r={...e.projectNames};if((v(r,t)?r[t]:void 0)===(n??void 0))return!1;if(null===n)delete r[t];else if(r[t]=n,!R(Object.keys(r).length,function(e){let t=1;for(let[n,r]of Object.entries(e))t+=T(n,r);return t}(r)))return!1;return 0===Object.keys(r).length?delete e.projectNames:e.projectNames=r,!0}function W(e,t){let n=new Set(e),r=[];for(let e of t)n.has(e)||(n.add(e),r.push(e));return r}function O(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:500,n=Math.max(1,Math.floor(t)),r=[];for(let t=0;t<e.length;t+=n)r.push(e.slice(t,t+n));return r}let F={desktop:{section:38,recent:30,"pinned-header":28,session:28,"pinned-more":26,group:28,"group-more":26,"group-empty":28,spacer:8,"footer-open":28,"footer-archived":28,"archive-group":28},mobile:{section:44,recent:44,"pinned-header":44,session:44,"pinned-more":36,group:44,"group-more":36,"group-empty":44,spacer:8,"footer-open":44,"footer-archived":44,"archive-group":44}},D="pinned";function B(e,t){return Object.hasOwn(e.sessions,t)?e.sessions[t]:void 0}function _(e){return"number"==typeof e&&Number.isFinite(e)?e:null}function H(e,t){return e===t?0:e>t?-1:1}function U(e){return[e.root.id,...e.subagents.map(e=>e.id)]}function K(e,t){return 0!==t.size&&(t.has(e.root.id)||e.subagents.some(e=>t.has(e.id)))}function q(e,t,n){let r=_(B(t,e.root.id)?.archivedAt);if(null===r||K(e,n))return!1;if(e.root.detailsPending)return!0;let i=Date.parse(e.root.modified);return Number.isNaN(i)||r>=i}function Z(e,t,n){return null!==_(B(t,e.root.id)?.pinnedAt)&&!q(e,t,n)}function V(e){let t=e.replace(/[\\/]+$/,"");if(!t)return e.charAt(0);let n=Math.max(t.lastIndexOf("/"),t.lastIndexOf("\\"));return t.slice(n+1)}function J(e,t){if(Object.hasOwn(t,e.key)){let n=t[e.key];if("boolean"==typeof n)return n}return e.current||e.pinned}function Y(e,t){var n;return{running:K(e,t.runningIds),awaiting:!!t.awaitingIds&&K(e,t.awaitingIds),unread:K(e,t.unreadIds),selected:!!(n=t.selectedSessionId)&&(e.root.id===n||e.subagents.some(e=>e.id===n)),transient:!0===e.root.transient}}function G(e){return m(e.root)}function X(e,t){let n=new Map,r=new Map;return{noteFamily(e){let t=G(e);n.has(t)||n.set(t,e.root.projectRoot??e.root.cwd)},get(i){let s=r.get(i);if(s)return s;let o=Object.hasOwn(e.projects,i)?e.projects[i]:void 0,a=null!==t&&t.key===i,l=n.get(i)??(a?t.root:void 0)??o?.root??i,c=S(e,i)??null,d={key:i,root:l,name:c??V(l),customName:c,pinned:void 0!==o,current:a};return r.set(i,d),d}}}function Q(e,t,n,r,i){return{kind:"session",key:`session:${t}:${e.root.id}`,family:e,context:t,project:n,status:Y(e,r),archivedAt:i}}function ee(e,t,n,r){let i=e.map((e,n)=>{if(n<t)return!1;let i=Y(e,r);return i.running||i.unread||i.selected}),s=t+n,o=0,a=e.filter((e,n)=>n<t||!!i[n]||n<s&&(o++,!0)),l=Math.max(t,Math.min(s,e.length));for(let t=0;l<e.length&&t<20;l++)!i[l]&&t++;return{visible:a,revealed:o,nextShown:l-t}}function et(e,t){if(!Object.hasOwn(e,t))return 0;let n=e[t];return"number"==typeof n&&Number.isFinite(n)&&n>0?Math.floor(n):0}function en(e,t){if(!Object.hasOwn(e,t))return e;let n={...e};return delete n[t],n}function er(e,t,n){let r=e-t,i=n>0;return r>0||i?{hidden:r,canShowLess:i}:null}function ei(e,t,n,r){let i=r-n,s=[];for(let n of l(e.sessions)){if(G(n)!==t||q(n,e.uiState,e.runningIds)||Z(n,e.uiState,e.runningIds))continue;let r=Y(n,e);if(r.running||r.unread||r.selected||r.transient)continue;let o=Date.parse(n.latestModified);Number.isNaN(o)||o>=i||s.push(n.root.id)}return s}function es(e,t){let n=[],r=0;for(let i of l(e.sessions))if(G(i)===t&&!i.root.transient){if(K(i,e.runningIds)||e.awaitingIds&&K(i,e.awaitingIds)){r++;continue}n.push(i.root.id)}return{ids:n,running:r}}function eo(e,t,n){let r=e.find(e=>e.key===t);if(!r)return null;let i=e.filter(e=>e.pinned===r.pinned),s=i.indexOf(r),o=i["up"===n?s-1:s+1];return o?{anchorKey:o.key,position:"up"===n?"before":"after"}:null}function ea(e,t,n,r,i){if(!Number.isInteger(t)||t<0||t>=e.length-1)return null;let s=e[t],o=e[t+1];return"start"===i?s===n?null:s:s>=n&&o<=n+r?null:Math.max(0,s-Math.max(0,(r-(o-s))/2))}function el(e){return/^[a-zA-Z]:[\\/]/.test(e)||e.startsWith("\\\\")?e.replace(/\\/g,"/"):e}function ec(e){let t=el(e),n=t.split("/").filter(Boolean);return t.startsWith("//")&&n.length>0&&(n[0]=`//${n[0]}`),n.map(encodeURIComponent).join("/")}function ed(e){let t=el(e).replace(/\/+$/,"");return t.split("/").pop()??t}function eu(e){let t=el(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 ep(e,t){if(!t)return e;let n=el(e),r=el(t).replace(/\/$/,"");return n.startsWith(r+"/")?n.slice(r.length+1):e}function eh(e,t){return`${el(e).replace(/\/$/,"")}/${t}`}let ef=/^<skill name="([^"\n]+)" location="([^"\n]+)">\nReferences are relative to [^\n]+\.\n\n([\s\S]*)\n<\/skill>(?:\n\n([\s\S]+))?$/;function em(e){let t=e.match(ef);if(!t)return null;let[,n,,,r]=t;return r?`/skill:${n} ${r}`:`/skill:${n}`}let eg=/ · [0-9a-f]{4}$/;function ex(e){return e.name||(em(e.firstMessage)??e.firstMessage)||e.id.slice(0,12)}function ev(e){let t=eg.exec(e);return t&&0!==t.index?{base:e.slice(0,t.index),suffix:t[0]}:null}let eb="pi-web:sidebar-tab",ey="pi-web:sidebar-groups-v2",ej="pi-web:sidebar-groups",ek="pi-web:sidebar-archive-collapsed",ew="pi-web:sidebar-pins-collapsed",eS="pi-web:sidebar-recents-collapsed",eC="pi-web:sidebar-files-show-ignored",eN="pi-web:sidebar-files-collapsed",eE="pi-web:sidebar-non-git-cwds",e$=["pi-web:file-explorer:open","pi-web:sidebar-session-pane-height",ej];function eM(){try{return window.localStorage}catch{return null}}function eI(e){let t={};if(null===e||"object"!=typeof e||Array.isArray(e))return t;for(let[n,r]of Object.entries(e))"__proto__"!==n&&"boolean"==typeof r&&(t[n]=r);return t}function eT(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:eM();if(t)try{let n=Object.entries(eI(e)),r=n.length>300?n.slice(n.length-300):n;t.setItem(ey,JSON.stringify(Object.fromEntries(r)))}catch{}}function eR(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:eM();if(t)try{t.setItem(ek,JSON.stringify([...new Set(e)].slice(-300)))}catch{}}function eL(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:eM();if(!e)return[];try{let t=e.getItem(eE),n=null===t?[]:JSON.parse(t);if(!Array.isArray(n))return[];return n.filter(e=>"string"==typeof e&&""!==e).slice(-50)}catch{return[]}}async function eA(e,t){let n={deletedRoots:[],deleted:[],running:[],error:null};for(let r=0;r<e.length;r+=500){let i=e.slice(r,r+500);try{let e=await t("/api/sessions/delete",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({ids:i})}),r=await e.json().catch(()=>({}));if(!e.ok||!Array.isArray(r.deleted)){n.error=r.error??`HTTP ${e.status}`;break}let s=new Set(r.deleted);n.deleted.push(...r.deleted),n.deletedRoots.push(...i.filter(e=>s.has(e))),n.running.push(...r.running??[])}catch(e){n.error=e instanceof Error?e.message:String(e);break}}return n}function eP(e,t){return{cwd:e.current&&t?t:e.root,projectKey:e.key,projectRoot:e.root}}function ez(e){let t=e.project;return!t||e.projects.some(e=>e.key===t.key)?[...e.projects]:[t,...e.projects]}function eW(e,t){let{key:n,root:r}=e,i=t&&Object.hasOwn(t,n)?t[n]:void 0;return void 0===i?{key:n,root:r}:{key:n,root:r,alias:i}}function eO(e){let t=e.map(e=>({choice:e,name:e.alias??V(e.root)})),n=new Map;for(let{name:e}of t)n.set(e,(n.get(e)??0)+1);return t.map(e=>{let t,r,{choice:i,name:s}=e;return{choice:i,name:s,note:void 0===i.alias&&(n.get(s)??0)>1&&(r=Math.max((t=i.root.replace(/[\\/]+$/,"")).lastIndexOf("/"),t.lastIndexOf("\\")))>0?V(t.slice(0,r)):null}})}function eF(e){return e.isComposing||229===e.keyCode}function eD(e,t){let n=e=>{"Escape"!==e.key||e.defaultPrevented||eF(e)||(e.preventDefault(),t())};return e.addEventListener("keydown",n,!1),()=>e.removeEventListener("keydown",n,!1)}function eB(e,t){let{restoreTextEntry:n=!0}=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},r=e.activeElement,i=!!(r&&t&&t.contains(r)),s=r&&r!==e.body&&!i?r:null;return t&&!i&&t.focus({preventScroll:!0}),()=>{if(!s||!s.isConnected||!n&&function(e){if(e.isContentEditable)return!0;let t=e.tagName?.toUpperCase();return"TEXTAREA"===t||"INPUT"===t&&!["button","checkbox","color","file","hidden","image","radio","range","reset","submit"].includes((e.type??"text").toLowerCase())}(s))return;let r=e.activeElement;r&&r!==e.body&&!(t&&t.contains(r))||"function"==typeof s.focus&&s.focus({preventScroll:!0})}}function e_(e,t){let n=e.activeElement;return!!t&&(!n||n===e.body)&&(t.focus({preventScroll:!0}),!0)}let eH="pi-web:sidebar-files-placement",eU="below";function eK(){try{var e;return e=window.localStorage.getItem(eH),"tab"===e?"tab":eU}catch{return eU}}let eq=null,eZ=new Set;function eV(){return null===eq&&(eq=eK()),eq}function eJ(e){if(null!==e.key&&e.key!==eH)return;let t=eK();t!==eq&&(eq=t,eZ.forEach(e=>e()))}function eY(e){return 0===eZ.size&&(window.addEventListener("storage",eJ),eq=eK()),eZ.add(e),()=>{eZ.delete(e),0===eZ.size&&window.removeEventListener("storage",eJ)}}var eG=n(21278);let eX="(max-width: 640px)",eQ="(max-width: 480px)";function e0(e,t){if(!window.matchMedia)return()=>{};let n=window.matchMedia(e);return n.addEventListener("change",t),()=>n.removeEventListener("change",t)}function e1(e){return!!window.matchMedia&&window.matchMedia(e).matches}let e2=e=>e0(eX,e),e4=()=>e1(eX),e8=e=>e0(eQ,e),e3=()=>e1(eQ);function e6(){return!1}function e5(){return(0,i.useSyncExternalStore)(e2,e4,e6)}let e9="(min-width: 1200px)",e7=e=>e0(e9,e),te=()=>e1(e9);function tt(e,t,n){let r=Number.isFinite(e)?e:t,i=Math.max(t,n);return Math.round(Math.max(t,Math.min(i,r)))}function tn(e,t){try{window.localStorage.setItem(e,String(t))}catch{}}function tr(e){let{ariaLabel:t,axis:n="horizontal",cssVariable:r,defaultWidth:s,getDefaultWidth:o,getMaxWidth:a,growthDirection:l,maxWidth:c,minWidth:d,collapseAt:u,onCollapse:p,persistClamp:h=!0,storageKey:f,widthRef:m}=e,g=(0,i.useRef)(null),x=(0,i.useRef)(null),v=(0,i.useRef)(!1),b=(0,i.useRef)(s),[y,j]=(0,i.useState)(s),[k,w]=(0,i.useState)(!1),[S,C]=(0,i.useState)(!1);(0,i.useEffect)(()=>{C(!0)},[]);let N=(0,i.useCallback)(()=>Math.min(c,Math.max(d,a())),[a,c,d]),E=(0,i.useCallback)(e=>tt(e,d,N()),[N,d]),$=(0,i.useCallback)(e=>{m.current=e,g.current?.style.setProperty(r,`${e}px`)},[r,m]),M=(0,i.useCallback)(function(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},{forcePersist:n=!1,persist:r=!0}=t,i=E(e),s=i!==m.current;return $(i),j(i),h?r&&(s||n)&&tn(f,i):n&&(b.current=tt(e,d,c),tn(f,b.current)),i},[$,E,c,d,h,f,m]),I=(0,i.useCallback)(()=>{M(h||x.current?m.current:b.current)},[M,h,m]),T=(0,i.useCallback)(e=>{document.body.style.cursor=e.previousCursor,document.body.style.userSelect=e.previousUserSelect},[]),R=(0,i.useCallback)(function(e){let t=arguments.length>1&&void 0!==arguments[1]&&arguments[1],n=x.current;if(n&&n.pointerId===e){x.current=null,T(n),w(!1),!t&&p&&void 0!==u&&n.requestedWidth<u?(M(h?n.startWidth:b.current,{forcePersist:!0}),p()):M(m.current,{forcePersist:h||m.current!==n.startWidth});try{n.target.hasPointerCapture(e)&&n.target.releasePointerCapture(e)}catch{}}},[u,M,p,h,T,m]),L=(0,i.useCallback)(e=>{if("mouse"===e.pointerType&&0!==e.button)return;e.preventDefault(),e.stopPropagation();let t=x.current;t&&R(t.pointerId,!0);let r=e.currentTarget;r.focus({preventScroll:!0}),r.setPointerCapture(e.pointerId),x.current={pointerId:e.pointerId,startPosition:"vertical"===n?e.clientY:e.clientX,startWidth:m.current,requestedWidth:m.current,target:r,previousCursor:document.body.style.cursor,previousUserSelect:document.body.style.userSelect},document.body.style.cursor="vertical"===n?"row-resize":"col-resize",document.body.style.userSelect="none",w(!0)},[n,R,m]),A=(0,i.useCallback)(e=>{let t=x.current;if(!t||t.pointerId!==e.pointerId)return;if("mouse"===e.pointerType&&0===e.buttons)return void R(e.pointerId);e.preventDefault();let r="right"===l||"down"===l?1:-1,i="vertical"===n?e.clientY:e.clientX;t.requestedWidth=t.startWidth+(i-t.startPosition)*r;let s=E(t.requestedWidth);$(s),e.currentTarget.setAttribute("aria-valuenow",String(s)),e.currentTarget.setAttribute("aria-valuetext",`${s} px`)},[$,n,E,R,l]),P=(0,i.useCallback)(e=>{R(e.pointerId)},[R]),z=(0,i.useCallback)(e=>{R(e.pointerId,!0)},[R]),W=(0,i.useCallback)(e=>{R(e.pointerId,!0)},[R]),O=(0,i.useCallback)(()=>{M(o?.()??s,{forcePersist:!0})},[M,s,o]),F=(0,i.useCallback)(e=>{let t=e.shiftKey?32:12,r="right"===l||"down"===l,i="vertical"===n?"ArrowDown":"ArrowRight",s="vertical"===n?"ArrowUp":"ArrowLeft",o=h?m.current:Math.max(m.current,b.current);e.key===(r?i:s)?(e.preventDefault(),M(o+t,{forcePersist:!0})):e.key===(r?s:i)?(e.preventDefault(),M(m.current-t,{forcePersist:!0})):"Home"===e.key?(e.preventDefault(),M(d,{forcePersist:!0})):"End"===e.key?(e.preventDefault(),M(Math.max(o,N()),{forcePersist:!0})):"Enter"===e.key&&(e.preventDefault(),O())},[n,M,N,l,d,h,O,m]);return(0,i.useEffect)(()=>{if(v.current)return;v.current=!0;let e=function(e){try{let t=window.localStorage.getItem(e);if(null===t)return null;let n=Number.parseInt(t,10);return Number.isFinite(n)?n:null}catch{return null}}(f),t=e??o?.()??s;if(!h){b.current=tt(t,d,c),M(b.current,{persist:!1});return}let n=M(t,{persist:!1});null!==e&&e!==n&&tn(f,n)},[M,s,o,c,d,h,f]),(0,i.useEffect)(()=>{if(!v.current)return;I();let e=()=>{I()};return window.addEventListener("resize",e),()=>window.removeEventListener("resize",e)},[I]),(0,i.useEffect)(()=>{if(!k)return;let e=()=>{let e=x.current;e&&R(e.pointerId,!0)},t=()=>{"visible"!==document.visibilityState&&e()};return window.addEventListener("blur",e),document.addEventListener("visibilitychange",t),()=>{window.removeEventListener("blur",e),document.removeEventListener("visibilitychange",t)}},[R,k]),(0,i.useEffect)(()=>()=>{let e=x.current;e&&(x.current=null,T(e))},[T]),{isResizing:k,panelRef:g,reclampWidth:I,resetWidth:O,separatorProps:{"aria-label":t,"aria-orientation":"vertical"===n?"horizontal":"vertical","aria-valuemax":S?N():c,"aria-valuemin":d,"aria-valuenow":y,"aria-valuetext":`${y} px`,onDoubleClick:O,onKeyDown:F,onLostPointerCapture:W,onPointerCancel:z,onPointerDown:L,onPointerMove:A,onPointerUp:P,role:"separator",tabIndex:0},width:y}}function ti(e){let t=!(arguments.length>1)||void 0===arguments[1]||arguments[1];(0,i.useEffect)(()=>{if(!t)return;let n=null,r=null,i=!1,s=null,o=()=>{null!==s&&(clearTimeout(s),s=null)},a=()=>{n&&(o(),n.classList.add("scrollbar-visible"))},l=()=>{n&&(o(),s=setTimeout(()=>{s=null,n?.classList.remove("scrollbar-visible")},500))},c=()=>{a(),l()},d=()=>{if(!i){if(!(n=e.current)){r=requestAnimationFrame(d);return}n.addEventListener("pointerenter",a),n.addEventListener("pointerleave",l),n.addEventListener("scroll",c)}};return d(),()=>{i=!0,null!==r&&cancelAnimationFrame(r),n?.removeEventListener("pointerenter",a),n?.removeEventListener("pointerleave",l),n?.removeEventListener("scroll",c),o(),n?.classList.remove("scrollbar-visible")}},[t,e])}let ts="/api/sessions/ui-state";async function to(e){try{let t=await e.json();if(t&&"object"==typeof t&&"string"==typeof t.error)return t.error}catch{}return`HTTP ${e.status}`}function ta(e){return e instanceof Error?e.message:String(e)}async function tl(e){if(!e.ok)throw Error(await to(e));let t=await e.json(),n=t&&"object"==typeof t?function(e){if(!b(e)||void 0!==e.version&&1!==e.version||void 0!==e.sessions&&!b(e.sessions)||void 0!==e.projects&&!b(e.projects))return null;let t=L(),n=e.revision;for(let[r,i]of("number"==typeof n&&Number.isSafeInteger(n)&&n>=0&&(t.revision=n),Object.entries(e.sessions??{}))){if(!("string"==typeof r&&x.test(r)))continue;let e=function(e){if(!b(e))return null;let t={};return y(e.pinnedAt)&&(t.pinnedAt=e.pinnedAt),y(e.archivedAt)&&(t.archivedAt=e.archivedAt),void 0===t.pinnedAt&&void 0===t.archivedAt?null:t}(i);e&&(t.sessions[r]=e)}for(let[n,r]of Object.entries(e.projects??{})){if(!j(n))continue;let e=b(r)&&y(r.pinnedAt)&&j(r.root)?{pinnedAt:r.pinnedAt,root:r.root}:null;e&&(t.projects[n]=e)}if(b(e.removedProjects)){let n={};for(let[t,r]of Object.entries(e.removedProjects))j(t)&&y(r)&&(n[t]=r);Object.keys(n).length&&(t.removedProjects=n)}if(Array.isArray(e.projectOrder)){let n=new Set,r=I(e.projectOrder.filter(e=>!(!j(e)||n.has(e))&&(n.add(e),!0)));r.length>0&&(t.projectOrder=r)}if(b(e.projectNames)){let n={},r=0,i=1;for(let[t,s]of Object.entries(e.projectNames)){let e=w(s);if(!j(t)||"string"!=typeof e)continue;let o=T(t,e);R(r+1,i+o)&&(n[t]=e,r++,i+=o)}r>0&&(t.projectNames=n)}return t}(t.state):null;if(!n)throw Error("Invalid session UI state response");return n}function tc(){let[e,t]=(0,i.useState)(null),n=(0,i.useRef)(null),r=(0,i.useCallback)(()=>{null!==n.current&&(clearTimeout(n.current),n.current=null)},[]),s=(0,i.useCallback)(()=>{r(),t(null)},[r]),o=(0,i.useCallback)(e=>{(r(),function(){try{return window.matchMedia?.("(prefers-reduced-motion: reduce)").matches===!0}catch{return!1}}())?t(null):(t(e),n.current=setTimeout(()=>{n.current=null,t(null)},300))},[r]);return(0,i.useEffect)(()=>r,[r]),{phase:e,start:o,end:s}}let td={overflow:"hidden",background:"var(--bg)",border:"1px solid var(--border)",borderRadius:10,boxShadow:"0 8px 32px rgba(0,0,0,0.18)"},tu={height:36,padding:"0 10px",border:"1px solid var(--border)",borderRadius:6,outline:"none",background:"var(--bg-panel)",color:"var(--text)",fontFamily:"var(--font-mono)",fontSize:12},tp={padding:"6px 16px",borderRadius:6,fontSize:13},th={...tp,border:0,background:"var(--accent)",color:"var(--accent-contrast)",fontWeight:600},tf={...tp,border:"1px solid var(--border)",background:"none",color:"var(--text-muted)"};async function tm(e){let t=e?`?path=${encodeURIComponent(e)}`:"",n=await fetch(`/api/cwd/browse${t}`),r=await n.json();if(!n.ok||r.error)throw Error(r.error??`HTTP ${n.status}`);return r}async function tg(e,t){let n=await fetch("/api/cwd/browse",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({path:e,name:t})}),r=await n.json();if(!n.ok||r.error||!r.path)throw Error(r.error??`HTTP ${n.status}`);return r.path}function tx(){return(0,r.jsx)("svg",{width:"14",height:"14",viewBox:"0 0 16 16",fill:"none",stroke:"currentColor",strokeWidth:"1.3","aria-hidden":"true",children:(0,r.jsx)("path",{d:"M1.5 3h4l1.5 2h7.5v7.5h-13z"})})}function tv(){return(0,r.jsxs)("svg",{width:"14",height:"14",viewBox:"0 0 16 16",fill:"none",stroke:"currentColor",strokeWidth:"1.3",strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":"true",children:[(0,r.jsx)("rect",{x:"2",y:"3",width:"12",height:"10",rx:"1.5"}),(0,r.jsx)("path",{d:"M2 9h12"}),(0,r.jsx)("circle",{cx:"11.5",cy:"11",r:"0.6",fill:"currentColor",stroke:"none"})]})}function tb(e){let{onCancel:t,onSelect:n,initialPath:s,busy:o=!1,error:l}=e,{t:c}=(0,eG.s)(),[d,u]=(0,i.useState)(null),[p,h]=(0,i.useState)(""),[f,m]=(0,i.useState)(null),[g,x]=(0,i.useState)(s??""),[v,b]=(0,i.useState)([]),[y,j]=(0,i.useState)(null),[k,w]=(0,i.useState)(null),[S,C]=(0,i.useState)(!0),[N,E]=(0,i.useState)(!1),[$,M]=(0,i.useState)(""),[I,T]=(0,i.useState)(null),[R,L]=(0,i.useState)(!1),A=(0,i.useCallback)(async e=>{C(!0),w(null);try{let t=await tm(e),n=t.path??e??"/";h(n),m(t.parentPath??null),x(n),b(t.directories??[]),j(t.drives??null)}catch(e){w(e instanceof Error?e.message:String(e))}finally{C(!1)}},[]);(0,i.useEffect)(()=>{u(document.body),A(s||void 0)},[s,A]);let P=()=>{R||(E(!1),M(""),T(null))},z=async()=>{let e=$.trim();if(p&&e&&!R){L(!0),T(null);try{let t=await tg(p,e);E(!1),M(""),await A(t)}catch(e){T(e instanceof Error?e.message:String(e))}finally{L(!1)}}},W=g.trim()!==p,O=!!p&&!W&&!o,F=O&&!S,D=!!f||/^[a-zA-Z]:[\\/]?$/.test(p);return d?(0,a.createPortal)((0,r.jsx)("div",{className:"directory-picker-backdrop",role:"dialog","aria-modal":"true","aria-label":c("directoryPicker.selectDirectory"),onClick:e=>{e.target!==e.currentTarget||o||t()},onKeyDown:e=>{"Escape"===e.key&&(e.stopPropagation(),!e.nativeEvent.isComposing&&229!==e.keyCode&&(e.preventDefault(),o||t()))},style:{position:"fixed",inset:0,zIndex:1e3,display:"flex",alignItems:"center",justifyContent:"center",background:"rgba(0,0,0,0.35)"},children:(0,r.jsxs)("div",{className:"directory-picker-panel",style:{...td,position:"relative",width:520,maxWidth:"calc(100vw - 16px)",height:"min(620px, calc(100dvh - 16px))",maxHeight:"calc(100dvh - 16px)",display:"flex",flexDirection:"column"},children:[(0,r.jsxs)("div",{style:{display:"flex",alignItems:"center",justifyContent:"space-between",flexShrink:0,padding:"12px 18px",borderBottom:"1px solid var(--border)"},children:[(0,r.jsx)("div",{style:{minWidth:0,flex:1},children:(0,r.jsx)("div",{style:{color:"var(--text)",fontWeight:700,fontSize:15},children:c("directoryPicker.selectDirectory")})}),(0,r.jsx)("button",{type:"button",onClick:t,disabled:o,title:c("i18n.close"),"aria-label":c("i18n.close"),style:{padding:"2px 6px",border:0,background:"none",color:"var(--text-muted)",fontSize:20,lineHeight:1,cursor:o?"default":"pointer",opacity:o?.5:1},children:"\xd7"})]}),(0,r.jsxs)("form",{onSubmit:e=>{e.preventDefault();let t=g.trim();t&&A(t)},style:{display:"flex",alignItems:"center",gap:8,flexShrink:0,padding:"10px 14px",borderBottom:"1px solid var(--border)"},children:[(0,r.jsx)("button",{className:"directory-picker-back",type:"button",onClick:()=>void A(f??void 0),disabled:S||!D,title:c("directoryPicker.goToParent"),"aria-label":c("directoryPicker.goToParent"),style:{width:36,height:36,padding:0,display:"flex",alignItems:"center",justifyContent:"center",flexShrink:0,border:"1px solid var(--border)",borderRadius:6,background:"var(--bg-hover)",color:"var(--text-muted)",cursor:D?"pointer":"default",opacity:D?1:.45},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:"m18 15-6-6-6 6"})})}),(0,r.jsx)("label",{htmlFor:"directory-path",style:{position:"absolute",width:1,height:1,padding:0,margin:-1,overflow:"hidden",clip:"rect(0, 0, 0, 0)",whiteSpace:"nowrap",border:0},children:c("directoryPicker.directoryPath")}),(0,r.jsx)("input",{className:"directory-picker-path",id:"directory-path",type:"text",value:g,placeholder:"/path/to/project or ~/project",autoFocus:!0,autoComplete:"off",spellCheck:!1,onChange:e=>{x(e.target.value),w(null)},style:{...tu,minWidth:0,flex:1}}),(0,r.jsx)("button",{className:"directory-picker-action",type:"submit",disabled:S||!g.trim(),title:c("directoryPicker.goToDirectory"),style:{minWidth:58,height:36,padding:"0 12px",border:"1px solid var(--border)",borderRadius:6,background:"var(--bg-hover)",color:"var(--text-muted)",cursor:S||!g.trim()?"default":"pointer",opacity:S||!g.trim()?.6:1},children:c("directoryPicker.go")})]}),(0,r.jsxs)("div",{className:"directory-picker-list",style:{flex:1,minHeight:0,overflow:"auto",padding:"8px 10px"},children:[S?(0,r.jsx)("div",{style:{padding:8,color:"var(--text-dim)",fontSize:11},children:c("directoryPicker.loadingDirectories")}):null!==y?(0,r.jsx)(r.Fragment,{children:y.length>0?y.map(e=>(0,r.jsxs)("button",{className:"directory-picker-entry",type:"button",onClick:()=>void A(e.path),title:e.path,style:{width:"100%",minHeight:34,display:"flex",alignItems:"center",gap:7,padding:"6px 8px",border:0,borderRadius:5,background:"none",color:"var(--text-muted)",cursor:"pointer",textAlign:"left",fontFamily:"var(--font-mono)",fontSize:11},children:[(0,r.jsx)(tv,{}),(0,r.jsx)("span",{children:e.name})]},e.path)):(0,r.jsx)("div",{style:{padding:8,color:"var(--text-dim)",fontSize:11},children:c("directoryPicker.noDrives")})}):v.length>0?v.map(e=>(0,r.jsxs)("button",{className:"directory-picker-entry",type:"button",onClick:()=>void A(e.path),title:e.path,style:{width:"100%",minHeight:30,display:"flex",alignItems:"center",gap:7,padding:"5px 8px",border:0,borderRadius:5,background:"none",color:"var(--text-muted)",cursor:"pointer",textAlign:"left",fontFamily:"var(--font-mono)",fontSize:11},children:[(0,r.jsx)(tx,{}),(0,r.jsx)("span",{style:{overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:e.name})]},e.path)):(0,r.jsx)("div",{style:{padding:8,color:"var(--text-dim)",fontSize:11},children:c("directoryPicker.noSubdirectories")}),(k||l)&&(0,r.jsx)("div",{style:{padding:"8px",color:"#dc2626",fontSize:11},children:k??l})]}),(0,r.jsxs)("div",{className:"directory-picker-footer",style:{display:"flex",justifyContent:"flex-end",alignItems:"center",gap:10,flexShrink:0,padding:"10px 18px",borderTop:"1px solid var(--border)"},children:[(0,r.jsx)("button",{className:"directory-picker-action",type:"button",onClick:()=>{E(!0),T(null)},disabled:!F,style:{...tf,marginRight:"auto",opacity:F?1:.6,cursor:F?"pointer":"default"},children:c("directoryPicker.newDirectory")}),(0,r.jsx)("button",{className:"directory-picker-action",type:"button",onClick:t,disabled:o,style:{...tf,cursor:o?"default":"pointer"},children:c("i18n.cancel")}),(0,r.jsx)("button",{className:"directory-picker-action",type:"button",onClick:()=>n(p),disabled:!O,title:c(W?"directoryPicker.openBeforeSelecting":"directoryPicker.selectCurrentDirectory"),style:{...th,opacity:O?1:.6,cursor:O?"pointer":"default"},children:c(o?"i18n.checking":"directoryPicker.selectThisFolder")})]}),N&&(0,r.jsx)("div",{style:{position:"absolute",inset:0,zIndex:1,display:"flex",alignItems:"center",justifyContent:"center",padding:12,background:"rgba(0,0,0,0.35)"},onClick:e=>{e.target===e.currentTarget&&P()},onKeyDown:e=>{e.stopPropagation(),"Escape"===e.key&&P()},children:(0,r.jsxs)("form",{role:"dialog","aria-modal":"true","aria-label":c("directoryPicker.createDirectory"),onSubmit:e=>{e.preventDefault(),z()},style:{...td,width:400,maxWidth:"100%"},children:[(0,r.jsx)("div",{style:{padding:"12px 18px",borderBottom:"1px solid var(--border)",color:"var(--text)",fontSize:15,fontWeight:700},children:c("directoryPicker.createDirectory")}),(0,r.jsxs)("div",{style:{padding:"12px 18px"},children:[(0,r.jsx)("label",{htmlFor:"new-directory-name",style:{display:"block",marginBottom:6,color:"var(--text-muted)",fontSize:11},children:c("directoryPicker.directoryName")}),(0,r.jsx)("input",{id:"new-directory-name",value:$,autoFocus:!0,autoComplete:"off",spellCheck:!1,placeholder:c("directoryPicker.directoryNamePlaceholder"),onChange:e=>{M(e.target.value),T(null)},disabled:R,className:"directory-picker-path",style:{...tu,width:"100%",boxSizing:"border-box"}}),I&&(0,r.jsx)("div",{style:{marginTop:7,color:"#dc2626",fontSize:11,lineHeight:1.35},children:I}),(0,r.jsxs)("div",{style:{display:"flex",gap:6,marginTop:10},children:[(0,r.jsx)("button",{className:"directory-picker-action",type:"submit",disabled:R||!$.trim(),style:{...th,flex:1,opacity:R?.65:1,cursor:R||!$.trim()?"default":"pointer"},children:c(R?"directoryPicker.creating":"directoryPicker.create")}),(0,r.jsx)("button",{className:"directory-picker-action",type:"button",onClick:P,disabled:R,style:{...tf,flex:1,cursor:R?"default":"pointer"},children:c("i18n.cancel")})]})]})]})})]})}),d):null}function ty(e){let{size:t=13,className:n,label:i,strokeWidth:s=2,children:o}=e;return(0,r.jsx)("svg",{width:t,height:t,viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:s,strokeLinecap:"round",strokeLinejoin:"round",className:n,...i?{role:"img","aria-label":i}:{"aria-hidden":!0},children:o})}function tj(e){return(0,r.jsx)(ty,{...e,children:(0,r.jsx)("path",{d:"M12 5v14M5 12h14"})})}function tk(e){return(0,r.jsx)(ty,{...e,children:(0,r.jsx)("path",{d:"m3 10 9-7 9 7v9a2 2 0 0 1-2 2h-4v-7H9v7H5a2 2 0 0 1-2-2Z",fill:"currentColor",strokeWidth:"1.4"})})}function tw(e){return(0,r.jsxs)(ty,{...e,children:[(0,r.jsx)("circle",{cx:"5",cy:"12",r:"1.4",fill:"currentColor",stroke:"none"}),(0,r.jsx)("circle",{cx:"12",cy:"12",r:"1.4",fill:"currentColor",stroke:"none"}),(0,r.jsx)("circle",{cx:"19",cy:"12",r:"1.4",fill:"currentColor",stroke:"none"})]})}function tS(e){return(0,r.jsxs)(ty,{...e,children:[(0,r.jsx)("rect",{x:"3",y:"4",width:"18",height:"5",rx:"1"}),(0,r.jsx)("path",{d:"M5 9v9a2 2 0 0 0 2 2h10a2 2 0 0 0 2-2V9"}),(0,r.jsx)("path",{d:"M10 13h4"})]})}function tC(e){return(0,r.jsxs)(ty,{...e,children:[(0,r.jsx)("path",{d:"M3 12a9 9 0 1 0 3-6.7L3 8"}),(0,r.jsx)("path",{d:"M3 3v5h5"})]})}function tN(e){return(0,r.jsxs)(ty,{...e,children:[(0,r.jsx)("path",{d:"M12 17v5"}),(0,r.jsx)("path",{d:"M9 10.8a2 2 0 0 1-1.1 1.8l-1.8.9A2 2 0 0 0 5 15.2V16a1 1 0 0 0 1 1h12a1 1 0 0 0 1-1v-.8a2 2 0 0 0-1.1-1.8l-1.8-.9a2 2 0 0 1-1.1-1.8V7a1 1 0 0 1 1-1 2 2 0 0 0 0-4H8a2 2 0 0 0 0 4 1 1 0 0 1 1 1z"})]})}function tE(e){return(0,r.jsxs)(ty,{...e,children:[(0,r.jsx)("path",{d:"M12 17v5"}),(0,r.jsx)("path",{d:"M15 9.3V7a1 1 0 0 1 1-1 2 2 0 0 0 0-4H8.5"}),(0,r.jsx)("path",{d:"m2 2 20 20"}),(0,r.jsx)("path",{d:"M9 9v1.8a2 2 0 0 1-1.1 1.8l-1.8.9A2 2 0 0 0 5 15.2V16a1 1 0 0 0 1 1h11"})]})}function t$(e){let{strokeWidth:t,...n}=e;return(0,r.jsx)(ty,{...n,strokeWidth:t,children:(0,r.jsx)("path",{d:"m9 6 6 6-6 6"})})}function tM(e){return(0,r.jsxs)(ty,{...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"})]})}function tI(e){return(0,r.jsxs)(ty,{...e,children:[(0,r.jsx)("circle",{cx:"6",cy:"5",r:"2.5"}),(0,r.jsx)("circle",{cx:"18",cy:"5",r:"2.5"}),(0,r.jsx)("circle",{cx:"12",cy:"19",r:"2.5"}),(0,r.jsx)("path",{d:"M6 7.5v1.5a3 3 0 0 0 3 3h6a3 3 0 0 0 3-3V7.5"}),(0,r.jsx)("path",{d:"M12 12v4.5"})]})}function tT(e){return(0,r.jsxs)(ty,{...e,children:[(0,r.jsx)("path",{d:"M14 4h6v6"}),(0,r.jsx)("path",{d:"M20 4 11 13"}),(0,r.jsx)("path",{d:"M18 14v4a2 2 0 0 1-2 2H6a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h4"})]})}function tR(e){return(0,r.jsxs)(ty,{...e,children:[(0,r.jsx)("path",{d:"M3 6h18"}),(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"})]})}function tL(e){return(0,r.jsx)(ty,{...e,children:(0,r.jsx)("path",{d:"M17 3a2.83 2.83 0 1 1 4 4L7.5 20.5 2 22l1.5-5.5Z"})})}function tA(e){return(0,r.jsx)(ty,{...e,children:(0,r.jsx)("circle",{cx:"12",cy:"12",r:"4.5",fill:"currentColor",stroke:"none"})})}function tP(e){return(0,r.jsx)(ty,{...e,children:(0,r.jsx)("circle",{cx:"12",cy:"12",r:"4.5"})})}function tz(e){return(0,r.jsx)(ty,{...e,children:(0,r.jsx)("path",{d:"M20 6 9 17l-5-5"})})}function tW(e){return(0,r.jsx)(ty,{...e,children:(0,r.jsx)("path",{d:"M18 6 6 18M6 6l12 12"})})}function tO(e){let{open:t,...n}=e;return(0,r.jsxs)(ty,{...n,strokeWidth:1.7,children:[(0,r.jsx)("rect",{x:"3",y:"4",width:"18",height:"16",rx:"3"}),(0,r.jsx)("path",{d:"M9 4v16"}),(0,r.jsx)("path",{d:t?"m16 9-3 3 3 3":"m13 9 3 3-3 3"})]})}function tF(e){let{open:t=!1,...n}=e;return(0,r.jsx)(ty,{...n,children:(0,r.jsx)("path",{d:t?"M6 14l1.45-2.9A2 2 0 0 1 9.24 10H20a2 2 0 0 1 1.94 2.5l-1.5 6a2 2 0 0 1-1.94 1.5H5a2 2 0 0 1-2-2V6a2 2 0 0 1 2-2h4l2 2h7a2 2 0 0 1 2 2v2":"M3 8a2 2 0 0 1 2-2h3.4l1.9 1.9H19a2 2 0 0 1 2 2V17a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2Z"})})}function tD(e){return(0,r.jsxs)(ty,{...e,children:[(0,r.jsx)("path",{d:"M12 4H6a2 2 0 0 0-2 2v12a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2v-6"}),(0,r.jsx)("path",{d:"m16 3 5 5M10 14l1-4L18 3a2.12 2.12 0 0 1 3 3l-7 7Z"})]})}function tB(e){return(0,r.jsxs)(ty,{...e,children:[(0,r.jsx)("path",{d:"M3 8a2 2 0 0 1 2-2h3.4l1.9 1.9H19a2 2 0 0 1 2 2V17a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2Z"}),(0,r.jsx)("path",{d:"M12 11v5M9.5 13.5h5"})]})}function t_(e){return(0,r.jsxs)(ty,{...e,children:[(0,r.jsx)("polyline",{points:"4 17 10 11 4 5"}),(0,r.jsx)("line",{x1:"12",y1:"19",x2:"20",y2:"19"})]})}function tH(e){return(0,r.jsxs)(ty,{...e,children:[(0,r.jsx)("circle",{cx:"11",cy:"11",r:"7"}),(0,r.jsx)("path",{d:"m20 20-4-4"})]})}function tU(e){return(0,r.jsxs)(ty,{...e,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"})]})}function tK(e){return(0,r.jsxs)(ty,{...e,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"})]})}function tq(e){return(0,r.jsxs)(ty,{...e,children:[(0,r.jsx)("circle",{cx:"12",cy:"12",r:"3"}),(0,r.jsx)("path",{d:"M3 12h6M15 12h6"})]})}function tZ(e){return(0,r.jsxs)(ty,{...e,children:[(0,r.jsx)("path",{d:"M2 12s3.6-7 10-7 10 7 10 7-3.6 7-10 7S2 12 2 12Z"}),(0,r.jsx)("circle",{cx:"12",cy:"12",r:"3"})]})}function tV(e){return(0,r.jsx)(ty,{...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"})})}function tJ(e){let{className:t,...n}=e;return(0,r.jsx)(ty,{...n,strokeWidth:2.8,className:t?`sidebar-spin ${t}`:"sidebar-spin",children:(0,r.jsx)("path",{d:"M21 12a9 9 0 1 1-3.8-7.4"})})}var tY=n(77476),tG=n.n(tY);function tX(e){let{projects:t,initialPath:n,onCancel:s,onCreate:o}=e,{t:l}=(0,eG.s)(),c=(0,i.useId)(),d=(0,i.useId)(),u=(0,i.useId)(),p=(0,i.useRef)(null),h=(0,i.useRef)(null),f=(0,i.useRef)(null),[m,g]=(0,i.useState)(null),[x,v]=(0,i.useState)(""),[b,y]=(0,i.useState)(""),[j,k]=(0,i.useState)(!1),[S,C]=(0,i.useState)(!1),[N,E]=(0,i.useState)(null),$=(0,i.useRef)(!1),M=(0,i.useRef)(!1),I=(0,i.useRef)({browsing:j,onCancel:s});function T(e){if(y(e),!$.current){let n=t.find(t=>t.root===e);v(n?.alias??V(e))}E(null),k(!1),requestAnimationFrame(()=>f.current?.focus({preventScroll:!0}))}async function R(){if(!M.current){M.current=!0,C(!0),E(null);try{let e=await fetch("/api/default-cwd",{method:"POST"}),t=await e.json();if(!e.ok||t.error||!t.cwd)throw Error(t.error??`HTTP ${e.status}`);T(t.cwd)}catch(e){E(e instanceof Error?e.message:String(e))}finally{M.current=!1,C(!1)}}}async function L(){let e=w(x);if(!M.current&&e&&b){M.current=!0,C(!0),E(null);try{let t=await fetch("/api/cwd/validate",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({cwd:b})}),n=await t.json();if(!t.ok||n.error||!n.cwd||!n.projectRoot||!n.projectKey)throw Error(n.error??`HTTP ${t.status}`);await o({cwd:n.cwd,projectRoot:n.projectRoot,projectKey:n.projectKey},e)||E(l("projectCreate.saveFailed"))}catch(e){E(e instanceof Error?e.message:String(e))}finally{M.current=!1,C(!1)}}}I.current={browsing:j,onCancel:s},(0,i.useEffect)(()=>{g(document.body)},[]),(0,i.useLayoutEffect)(()=>{if(!m)return;let e=eB(document,p.current);h.current?.focus({preventScroll:!0});let t=e=>{I.current.browsing||"Escape"!==e.key||(e.stopPropagation(),!e.isComposing&&229!==e.keyCode&&(e.preventDefault(),M.current||I.current.onCancel()))};return document.addEventListener("keydown",t,!0),()=>{document.removeEventListener("keydown",t,!0),e()}},[m]);let A=!!w(x);return m?(0,a.createPortal)((0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)("div",{className:tG().backdrop,onClick:e=>{e.target!==e.currentTarget||M.current||s()},children:(0,r.jsxs)("div",{ref:p,className:tG().dialog,role:"dialog","aria-modal":"true","aria-labelledby":c,"aria-busy":S,tabIndex:-1,inert:j,"aria-hidden":j||void 0,onKeyDown:e=>{if("Tab"!==e.key)return;let t=Array.from(e.currentTarget.querySelectorAll('button:not(:disabled), input:not(:disabled), select:not(:disabled), summary, [tabindex="0"]')).filter(e=>e.getClientRects().length>0),n=t[0],r=t[t.length-1];n?e.shiftKey&&(document.activeElement===n||document.activeElement===p.current)?(e.preventDefault(),r.focus()):e.shiftKey||document.activeElement!==r||(e.preventDefault(),n.focus()):e.preventDefault()},children:[(0,r.jsxs)("header",{className:tG().header,children:[(0,r.jsx)("h2",{id:c,children:l("projectCreate.title")}),(0,r.jsx)("button",{className:tG().close,type:"button",onClick:s,disabled:S,"aria-label":l("i18n.close"),children:(0,r.jsx)("svg",{width:"20",height:"20",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"1.7","aria-hidden":"true",children:(0,r.jsx)("path",{d:"m6 6 12 12M18 6 6 18"})})})]}),(0,r.jsxs)("form",{onSubmit:e=>{e.preventDefault(),L()},children:[(0,r.jsxs)("label",{className:tG().nameField,htmlFor:d,children:[(0,r.jsx)("span",{className:tG().nameIcon,children:(0,r.jsx)(tF,{size:23})}),(0,r.jsx)("input",{ref:h,id:d,value:x,placeholder:l("projectCreate.name"),"aria-label":l("projectCreate.name"),disabled:S,autoComplete:"off",onChange:e=>{$.current=!0,v(e.target.value),E(null)}})]}),x.trim()&&!A&&(0,r.jsx)("p",{className:tG().error,role:"alert",children:l("projectCreate.invalidName",{max:80})}),(0,r.jsxs)("section",{className:tG().sources,"aria-labelledby":u,children:[(0,r.jsx)("h3",{id:u,children:l("projectCreate.sourceFolder")}),(0,r.jsx)("div",{className:`${tG().sourceCard}${b?` ${tG().hasFolder}`:""}`,children:b?(0,r.jsxs)(r.Fragment,{children:[(0,r.jsxs)("div",{className:tG().folderRow,children:[(0,r.jsx)(tF,{size:25}),(0,r.jsxs)("div",{className:tG().folderText,children:[(0,r.jsx)("strong",{children:V(b)}),(0,r.jsx)("span",{children:b})]}),(0,r.jsx)("button",{type:"button",className:tG().close,disabled:S,"aria-label":l("projectCreate.removeFolder"),onClick:()=>{y(""),E(null),$.current||v("")},children:"\xd7"})]}),(0,r.jsxs)("button",{ref:f,className:tG().add,type:"button",disabled:S,onClick:()=>k(!0),children:[(0,r.jsx)(tF,{size:18}),l("projectCreate.changeFolder")]})]}):(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)("p",{children:l("projectCreate.addOnComputer")}),(0,r.jsxs)("button",{ref:f,className:tG().add,type:"button",disabled:S,onClick:()=>k(!0),children:[(0,r.jsx)(tB,{size:21}),l("projectCreate.addFolder")]})]})}),(0,r.jsxs)("div",{className:tG().sourceOptions,children:[(0,r.jsx)("button",{type:"button",disabled:S,onClick:()=>void R(),children:l("sidebar.useDefaultDirectory")}),t.length>0&&(0,r.jsxs)("label",{className:tG().recent,children:[(0,r.jsx)(tj,{size:14}),(0,r.jsxs)("select",{"aria-label":l("projectCreate.existingFolder"),disabled:S,value:"",onChange:e=>T(e.target.value),children:[(0,r.jsx)("option",{value:"",disabled:!0,children:l("projectCreate.existingFolder")}),t.map(e=>(0,r.jsxs)("option",{value:e.root,children:[e.alias??V(e.root)," — ",e.root]},e.key))]})]})]}),(0,r.jsx)("p",{className:tG().hint,children:l("projectCreate.folderHint")})]}),N&&(0,r.jsx)("p",{className:tG().error,role:"alert",children:N}),(0,r.jsxs)("footer",{className:tG().footer,children:[(0,r.jsx)("button",{className:tG().cancel,type:"button",disabled:S,onClick:s,children:l("i18n.cancel")}),(0,r.jsx)("button",{className:tG().submit,type:"submit",disabled:S||!b||!A,children:S?l("projectCreate.creating"):l("projectCreate.title")})]})]})]})}),j&&(0,r.jsx)(tb,{initialPath:b||n,onSelect:T,onCancel:()=>{k(!1),requestAnimationFrame(()=>f.current?.focus({preventScroll:!0}))}})]}),m):null}function tQ(e){let{onClick:t,title:n}=e;return(0,r.jsx)("button",{type:"button",onClick:t,title:n,"aria-label":n,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"})]})})}let t0="/icons/catppuccin";function t1(e){let{name:t,size:n=14}=e,i={width:n,height:n,"--catppuccin-icon-light":`url(${t0}/latte/${t}.svg)`,"--catppuccin-icon-dark":`url(${t0}/mocha/${t}.svg)`};return(0,r.jsx)("span",{"aria-hidden":"true",className:"catppuccin-file-icon",style:i})}function t2(e){let{size:t=14,open:n=!1}=e;return(0,r.jsx)(t1,{name:n?"_folder_open":"_folder",size:t})}function t4(e){let{size:t=14}=e;return(0,r.jsx)(t1,{name:"_file",size:t})}let t8={ts:"typescript",tsx:"typescript-react",js:"javascript",mjs:"javascript",cjs:"javascript",jsx:"javascript-react",py:"python",json:"json",jsonl:"json",css:"css",less:"css",scss:"sass",html:"html",htm:"html",md:"markdown",mdx:"markdown",yaml:"yaml",yml:"yaml",toml:"toml",sh:"bash",bash:"bash",zsh:"bash",fish:"bash",rs:"rust",go:"go",sql:"database",graphql:"graphql",gql:"graphql",tf:"terraform",hcl:"terraform",docx:"ms-word",pdf:"pdf",lock:"lock"};function t3(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:14,n=e.toLowerCase(),i="dockerfile"===n||n.startsWith("dockerfile.")?"docker":".env"===n||n.startsWith(".env.")?"env":[".gitignore",".gitattributes",".gitmodules"].includes(n)?"git":"package-lock.json"===n?"npm-lock":"bun.lock"===n?"bun-lock":["next.config.js","next.config.mjs","next.config.cjs","next.config.ts"].includes(n)?"next":[".eslintrc",".eslintrc.js",".eslintrc.json",".eslintrc.yml","eslint.config.mjs","eslint.config.js"].includes(n)?"eslint":["yarn.lock","pnpm-lock.yaml","cargo.lock"].includes(n)?"lock":n.endsWith(".config.ts")||n.endsWith(".config.js")||n.endsWith(".config.mjs")||n.endsWith(".config.cjs")?"config":void 0;if(i)return(0,r.jsx)(t1,{name:i,size:t});let s=t8[n.split(".").pop()??""];return s?(0,r.jsx)(t1,{name:s,size:t}):(0,r.jsx)(t4,{size:t})}function t6(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 t5(e){let t=0;for(let n=0;n<e.length;n++)"/"===e[n]&&t++;return t}function t9(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 t7(e,t){let n=t?`${e}/`:e;return n.includes(" ")?`@"${n}" `:`@${n} `}function ne(e,t,n,r){return new Promise((i,s)=>{let o=new FormData;t.forEach(e=>o.append("files",e,e.name));let a=new XMLHttpRequest;a.open("POST",`/api/files/${ec(e)}?type=upload&conflict=${n}`),a.upload.onprogress=e=>{r&&e.lengthComputable&&e.total>0&&r(Math.round(e.loaded/e.total*100))},a.onerror=()=>s(Error("Network error while uploading files")),a.onabort=()=>s(Error("Upload cancelled")),a.onload=()=>{let e={};try{e=JSON.parse(a.responseText)}catch{a.responseText&&(e.error=a.responseText)}i({status:a.status,data:e})},a.send(o)})}function nt(e){return Array.from(e.dataTransfer.items).some(e=>"file"===e.kind)}function nn(e){let t=[];for(let n of Array.from(e.items)){if("file"!==n.kind)continue;let e=n.webkitGetAsEntry?.();if(e?.isDirectory){t.push({kind:"folder",name:e.name});continue}let r=n.getAsFile();r&&t.push({kind:"file",file:r})}return t.length>0?t:Array.from(e.files).map(e=>({kind:"file",file:e}))}let nr=function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:20,t=new Map;return{save(n,r){if(t.delete(n),0!==r.size)for(let i of(t.set(n,new Set(r)),t.keys())){if(t.size<=e)break;t.delete(i)}},restore:e=>new Set(t.get(e))}}();async function ni(e,t){let n=`${t} (HTTP ${e.status})`;try{let t=await e.json();t.error&&(n=t.error)}catch{}return Error(n)}async function ns(e){let t=arguments.length>1&&void 0!==arguments[1]&&arguments[1],n=ec(e),r=await fetch(`/api/files/${n}?type=list${t?"&hidden=1":""}`);if(!r.ok)throw await ni(r,"Failed to load files");return((await r.json()).entries??[]).map(t=>({name:t.name,fullPath:eh(e,t.name),isDir:t.isDir,size:t.size,children:t.isDir?[]:void 0,loaded:!t.isDir,outsideLinkTarget:t.outsideLinkTarget,outsideLinkEncloses:t.outsideLinkEncloses,hidden:t.hidden}))}async function no(e,t){let n=await fetch(`/api/files/${ec(e)}?type=allow-link`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({target:t})});if(!n.ok)throw await ni(n,"Failed to allow the linked folder")}async function na(e){let t=new URLSearchParams({cwd:e}),n=await fetch(`/api/git/status?${t.toString()}`);if(!n.ok)throw Error(`Failed to load Git status (HTTP ${n.status})`);return n.json()}let nl={modified:"files.modified",added:"files.added",deleted:"files.deleted",renamed:"files.renamed",untracked:"files.untracked",conflict:"files.conflict"},nc={modified:"#d6a84b",added:"#4ade80",deleted:"#f87171",renamed:"#60a5fa",untracked:"#4ade80",conflict:"#f87171"};function nd(e){let{status:t,t:n}=e;return(0,r.jsx)("span",{title:n(nl[t.status]),"aria-label":n(nl[t.status]),style:{width:14,height:14,flexShrink:0,display:"flex",alignItems:"center",justifyContent:"center",color:nc[t.status],fontFamily:"var(--font-mono)",fontSize:11,fontWeight:600},children:t.code})}function nu(e){let{size:t=11}=e;return(0,r.jsxs)("svg",{width:t,height:t,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 np(e){let{size:t=11}=e;return(0,r.jsxs)("svg",{width:t,height:t,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:"M15 3h6v6"}),(0,r.jsx)("path",{d:"M10 14 21 3"}),(0,r.jsx)("path",{d:"M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6"})]})}let nh={ignored:"files.hiddenIgnored",excluded:"files.hiddenExcluded"};function nf(e){let{node:t,depth:n,cwd:s,onOpenFile:o,onAtMention:a,expandedPaths:l,onToggleExpanded:c,refreshToken:d,highlightedPaths:u,gitStatusByPath:p,changedDirectoryPaths:h,showHidden:f=!1,parentHidden:m,dropTargetPath:g,onDropFiles:x,onDropTargetChange:v,t:b}=e,y=l.has(t.fullPath),j=t.hidden??m,k=t.isDir&&g===t.fullPath,w=u.has(t.fullPath),S=el(t.fullPath),C=p.get(S),N=t.isDir&&(void 0!==C||h.has(S)),[E,$]=(0,i.useState)(t.children??[]),[M,I]=(0,i.useState)(t.loaded??!1),[T,R]=(0,i.useState)(!1),[L,A]=(0,i.useState)(null),[P,z]=(0,i.useState)(!1),[W,O]=(0,i.useState)(null),[F,D]=(0,i.useState)(!1),[B,_]=(0,i.useState)(null),H=t.outsideLinkTarget&&t.outsideLinkTarget!==W?t.outsideLinkTarget:null;(0,i.useEffect)(()=>{O(null),_(null)},[t.outsideLinkTarget]);let U=(0,i.useCallback)(async function(){let e=arguments.length>0&&void 0!==arguments[0]&&arguments[0];if(!M||e){R(!0),A(null);try{let e=await ns(t.fullPath,f);$(e),I(!0)}catch(e){A(e instanceof Error?e.message:String(e))}finally{R(!1)}}},[M,t.fullPath,f]),K=(0,i.useRef)(f);(0,i.useEffect)(()=>{K.current===f||(K.current=f,M&&(y&&!H?U(!0):I(!1)))},[f]),(0,i.useEffect)(()=>{t.isDir&&y&&!M&&!H&&U()},[]),(0,i.useEffect)(()=>{void 0!==d&&M&&!H&&(y?U(!0):I(!1))},[d]);let q=(0,i.useCallback)(()=>{if(t.isDir){let e=!y;c(t.fullPath,e),!e||M||H||U()}else o(t.fullPath,t.name)},[t.isDir,t.fullPath,t.name,M,y,H,U,o,c]),Z=(0,i.useCallback)(async e=>{if((e.stopPropagation(),H)&&(!t.outsideLinkEncloses||window.confirm(b("files.allowEnclosingLinkConfirm",{target:H})))){D(!0),_(null);try{await no(t.fullPath,H),O(H),await U(!0)}catch(e){_(e instanceof Error?e.message:String(e))}finally{D(!1)}}},[t.fullPath,t.outsideLinkEncloses,H,U,b]);return(0,r.jsxs)("div",{children:[(0,r.jsxs)("div",{onClick:q,onMouseEnter:()=>z(!0),onMouseLeave:()=>z(!1),onDragOver:t.isDir?e=>{e.dataTransfer.types.includes("Files")&&(e.preventDefault(),e.stopPropagation(),e.dataTransfer.dropEffect="copy",v?.(t.fullPath))}:void 0,onDrop:t.isDir?e=>{e.dataTransfer.types.includes("Files")&&(e.preventDefault(),e.stopPropagation(),v?.(null),x?.(t.fullPath,nn(e.dataTransfer)))}:void 0,style:{position:"relative",display:"flex",alignItems:"center",gap:4,paddingLeft:8+14*n,paddingRight:8,height:24,cursor:"pointer",background:k?"color-mix(in srgb, var(--accent) 16%, transparent)":P?"var(--bg-hover)":"transparent",outline:k?"1px dashed var(--accent)":"none",outlineOffset:-1,borderRadius:4,userSelect:"none"},children:[t.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:y?"rotate(90deg)":"none",transition:"transform 0.1s"},children:(0,r.jsx)("polyline",{points:"3 2 7 5 3 8"})}),!t.isDir&&(0,r.jsx)("span",{style:{width:10,flexShrink:0}}),(0,r.jsx)("span",{style:{flexShrink:0,display:"flex",alignItems:"center",opacity:j?.55:1},children:t.isDir?(0,r.jsx)(t2,{size:14,open:y}):t3(t.name,14)}),(0,r.jsx)("span",{className:"file-tree-name","data-hidden-reason":j,style:{fontSize:12,color:j?"var(--text-muted)":"var(--text)",opacity:j?.55:1,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",flex:1},title:j?`${t.fullPath}
2
- ${b(nh[j])}`:t.fullPath,children:t.name}),!P&&H&&(0,r.jsx)("span",{title:b("files.outsideLink",{target:H}),"aria-label":b("files.outsideLink",{target:H}),style:{width:14,height:14,flexShrink:0,display:"flex",alignItems:"center",justifyContent:"center",color:"var(--text-dim)"},children:(0,r.jsx)(np,{})}),w&&(0,r.jsx)("span",{title:b("files.newlyUploaded"),"aria-label":b("files.newlyUploaded"),style:{width:14,height:14,flexShrink:0,display:"flex",alignItems:"center",justifyContent:"center"},children:(0,r.jsx)("span",{style:{width:6,height:6,borderRadius:"50%",background:"#3b82f6"}})}),!P&&!t.isDir&&C&&(0,r.jsx)(nd,{status:C,t:b}),!P&&N&&(0,r.jsx)("span",{title:b("files.containsChangedFiles"),"aria-label":b("files.containsChangedFiles"),style:{width:14,height:14,flexShrink:0,display:"flex",alignItems:"center",justifyContent:"center"},children:(0,r.jsx)("span",{style:{width:6,height:6,borderRadius:"50%",background:"#d6a84b"}})}),T&&(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"})}),a&&P&&(0,r.jsxs)("button",{onClick:e=>{e.stopPropagation(),a(ep(t.fullPath,s),t.isDir)},title:b("files.insertPath"),style:{position:"absolute",right:t.isDir?4:28,top:"50%",transform:"translateY(-50%)",display:"flex",alignItems:"center",justifyContent:"center",gap:4,padding:"0 8px",height:20,background:"var(--bg-panel)",border:"1px solid var(--border)",borderRadius:4,color:"var(--accent)",cursor:"pointer",fontSize:11,fontWeight:600,whiteSpace:"nowrap"},children:[(0,r.jsx)(nu,{}),b("files.mention")]}),P&&!t.isDir&&(0,r.jsx)("a",{href:`/api/files/${ec(t.fullPath)}?type=download`,download:!0,onClick:e=>e.stopPropagation(),title:b("files.download"),style:{position:"absolute",right:4,top:"50%",transform:"translateY(-50%)",display:"flex",alignItems:"center",justifyContent:"center",gap:4,padding:"0 5px",height:20,background:"var(--bg-panel)",border:"1px solid var(--border)",borderRadius:4,color:"var(--text-muted)",cursor:"pointer",fontSize:11,fontWeight:600,whiteSpace:"nowrap",textDecoration:"none"},children:(0,r.jsxs)("svg",{width:"11",height:"11",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2.2",strokeLinecap:"round",strokeLinejoin:"round",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"})]})})]}),t.isDir&&y&&H&&(0,r.jsxs)("div",{style:{paddingLeft:8+(n+1)*14,paddingRight:8,paddingTop:3,paddingBottom:5,display:"flex",flexDirection:"column",alignItems:"flex-start",gap:4,fontSize:11,color:"var(--text-dim)"},children:[(0,r.jsx)("span",{style:{wordBreak:"break-all"},children:b("files.outsideLink",{target:H})}),t.outsideLinkEncloses&&(0,r.jsx)("span",{style:{color:"#f59e0b"},children:b("files.outsideLinkEncloses")}),(0,r.jsx)("button",{type:"button",onClick:Z,disabled:F,title:b("files.allowOutsideLinkTitle",{target:H}),style:{height:20,padding:"0 8px",background:"var(--bg-panel)",border:"1px solid var(--border)",borderRadius:4,color:"var(--accent)",cursor:F?"default":"pointer",opacity:F?.6:1,fontSize:11,fontWeight:600,whiteSpace:"nowrap"},children:b("files.allowOutsideLink")}),B&&(0,r.jsx)("span",{role:"alert",style:{color:"#f87171",wordBreak:"break-word"},children:B})]}),t.isDir&&y&&!H&&(0,r.jsxs)("div",{children:[E.map(e=>(0,r.jsx)(nf,{node:e,depth:n+1,cwd:s,onOpenFile:o,onAtMention:a,expandedPaths:l,onToggleExpanded:c,refreshToken:d,highlightedPaths:u,gitStatusByPath:p,changedDirectoryPaths:h,showHidden:f,parentHidden:j,dropTargetPath:g,onDropFiles:x,onDropTargetChange:v,t:b},e.fullPath)),0===E.length&&M&&!L&&(0,r.jsx)("div",{style:{paddingLeft:8+(n+1)*14,fontSize:11,color:"var(--text-dim)",height:22,display:"flex",alignItems:"center"},children:"empty"}),L&&(0,r.jsx)("div",{role:"alert",style:{paddingLeft:8+(n+1)*14,paddingRight:8,paddingTop:3,paddingBottom:3,fontSize:11,color:"#f87171",wordBreak:"break-word"},children:L})]})]})}function nm(e){let{status:t,cwd:n,onOpenFile:s,onAtMention:o,t:a}=e,[l,c]=(0,i.useState)(!1),d=ed(t.filePath),u=ep(t.filePath,n),p=u.lastIndexOf("/"),h=p>=0?u.slice(0,p+1):"",f=p>=0?u.slice(p+1):u;return(0,r.jsxs)("div",{onClick:()=>s(t.filePath,d,{modeHint:"diff"}),onMouseEnter:()=>c(!0),onMouseLeave:()=>c(!1),title:t.filePath,style:{display:"flex",alignItems:"center",gap:6,paddingLeft:10,paddingRight:8,height:24,cursor:"pointer",background:l?"var(--bg-hover)":"transparent",borderRadius:4,userSelect:"none",position:"relative"},children:[(0,r.jsx)(nd,{status:t,t:a}),(0,r.jsx)("span",{style:{flexShrink:0,display:"flex",alignItems:"center",opacity:.85},children:t3(d,13)}),(0,r.jsxs)("span",{title:t.filePath,style:{fontSize:12,color:"var(--text)",display:"flex",alignItems:"center",minWidth:0,flex:1},children:[h&&(0,r.jsx)("span",{style:{overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",flex:"0 1 auto",minWidth:0,color:"var(--text-dim)"},children:h}),(0,r.jsx)("span",{style:{overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",flexShrink:0,maxWidth:"100%"},children:f})]}),o&&l&&(0,r.jsxs)("button",{onClick:e=>{e.stopPropagation(),o(u,!1)},title:a("files.insertPath"),style:{position:"absolute",right:4,top:"50%",transform:"translateY(-50%)",display:"flex",alignItems:"center",justifyContent:"center",gap:4,padding:"0 8px",height:20,background:"var(--bg-panel)",border:"1px solid var(--border)",borderRadius:4,color:"var(--accent)",cursor:"pointer",fontSize:11,fontWeight:600,whiteSpace:"nowrap"},children:[(0,r.jsx)(nu,{}),a("files.mention")]})]})}let ng=(0,i.forwardRef)(function(e,t){let{cwd:n,onOpenFile:s,refreshKey:o,onAtMention:a,onAtMentions:l,onUploadBusyChange:c,changesCollapsed:d,onChangesCountChange:u,fileSearchOpen:p=!1,searchAlwaysVisible:h=!1,onFileSearchOpenChange:f,showHidden:m=!1}=e,{t:g}=(0,eG.s)(),[x,v]=(0,i.useState)([]),[b,y]=(0,i.useState)(!0),[j,k]=(0,i.useState)(null),[w,S]=(0,i.useState)(new Set),[C,N]=(0,i.useState)(0),[E,$]=(0,i.useState)(new Set),[M,I]=(0,i.useState)([]),[T,R]=(0,i.useState)({additions:0,deletions:0}),[L,A]=(0,i.useState)("idle"),[P,z]=(0,i.useState)(0),[W,O]=(0,i.useState)(null),[F,D]=(0,i.useState)(null),[B,_]=(0,i.useState)(null),[H,U]=(0,i.useState)(""),[K,q]=(0,i.useState)([]),[Z,V]=(0,i.useState)(!1),[J,Y]=(0,i.useState)(!1),[G,X]=(0,i.useState)(new Set),Q=(0,i.useRef)(null),[ee,et]=(0,i.useState)(!1),[en,er]=(0,i.useState)(null),ei=(0,i.useRef)(0),es=(0,i.useRef)(null),eo=(0,i.useRef)(w),ea=(0,i.useRef)(null),ef=`${o??0}:${C}`,em="idle"!==L,eg=H.trim().length>0,ex=p||h;(0,i.useEffect)(()=>{if(!ex)return;let e=H.trim();if(!e){q([]),V(!1),Y(!1);return}let t=new AbortController;V(!0),Y(!1);let r=setTimeout(()=>{fetch(`/api/file-index?cwd=${encodeURIComponent(n)}&q=${encodeURIComponent(e)}`,{signal:t.signal}).then(e=>e.ok?e.json():Promise.reject(Error("Search failed"))).then(e=>q((e.matches??[]).filter(e=>!e.isDir).map(e=>e.path))).catch(()=>{t.signal.aborted||(q([]),Y(!0))}).finally(()=>{t.signal.aborted||V(!1)})},150);return()=>{clearTimeout(r),t.abort()}},[n,ex,H]),(0,i.useEffect)(()=>{p&&Q.current?.focus()},[p]),(0,i.useEffect)(()=>{if(0===K.length)return;let e=new Set;for(let t of K){let r=t.split("/"),i="";for(let t=0;t<r.length-1;t++)i=i?`${i}/${r[t]}`:r[t],e.add(eh(n,i))}X(t=>{let n=!1,r=new Set(t);for(let t of e)r.has(t)||(r.add(t),n=!0);return n?r:t})},[n,K]);let ev=(0,i.useMemo)(()=>{let e=t=>({name:t.name,fullPath:eh(n,t.path),isDir:t.isDir,size:0,children:t.children.map(e),loaded:!0});return(function(e){let t=[],n=new Map;for(let r of e){let e=r.split("/"),i=t,s="";for(let t=0;t<e.length;t++){s=s?`${s}/${e[t]}`:e[t];let r=n.get(s);r||(r={name:e[t],path:s,isDir:t<e.length-1,children:[]},n.set(s,r),i.push(r)),i=r.children}}let r=e=>{e.sort((e,t)=>e.isDir!==t.isDir?e.isDir?-1:1:e.name.localeCompare(t.name)),e.forEach(e=>r(e.children))};return r(t),t})(K).map(e)},[n,K]),eb=(0,i.useMemo)(()=>new Map(M.map(e=>[el(e.filePath),e])),[M]),ey=(0,i.useMemo)(()=>{let e=new Set,t=el(n).replace(/\/$/,"");for(let n of M){let r=eu(el(n.filePath));for(;(r===t||r.startsWith(`${t}/`))&&(e.add(r),r!==t);){let e=eu(r);if(e===r)break;r=e}}return e},[n,M]),ej=(0,i.useCallback)((e,t)=>{S(n=>{let r=new Set(n);return t?r.add(e):r.delete(e),r})},[]),ek=(0,i.useCallback)((e,t)=>{let n=e.uploaded??[];D({directory:t,uploaded:n,skipped:e.skipped??[],errors:e.errors??[]}),n.length>0&&($(new Set(n.map(e=>eh(t,e)))),N(e=>e+1))},[]),ew=(0,i.useCallback)(async(e,t,n)=>{_(null),O(null),z(0),A("uploading");try{let{status:r,data:i}=await ne(n,e,t,z);if(409===r&&i.conflicts?.length)return void _({directory:n,files:e,conflicts:i.conflicts,nonReplaceable:i.nonReplaceable??[]});if(r<200||r>=300)throw Error(i.error??`Upload failed (HTTP ${r})`);z(100),ek(i,n)}catch(e){O(e instanceof Error?e.message:String(e))}finally{A("idle")}},[ek]),eS=(0,i.useCallback)(async(e,t)=>{if(0!==e.length&&!em){D(null),$(new Set),_(null),O(null),z(0),A("checking");try{let n=await fetch(`/api/files/${ec(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??`Upload check failed (HTTP ${n.status})`);if(r.conflicts?.length)return void _({directory:t,files:e,conflicts:r.conflicts,nonReplaceable:r.nonReplaceable??[]});await ew(e,"error",t)}catch(e){O(e instanceof Error?e.message:String(e))}finally{A("idle")}}},[ew,em]),eC=(0,i.useCallback)(e=>{let t=Array.from(e.target.files??[]);e.target.value="",eS(t,n)},[n,eS]);(0,i.useImperativeHandle)(t,()=>({openUploadPicker(){em||ea.current?.click()}}),[em]);let eN=(0,i.useCallback)(()=>{ei.current=0,et(!1),er(null)},[]),eE=(0,i.useCallback)(e=>{e.dataTransfer.types.includes("Files")&&(e.preventDefault(),ei.current+=1,et(!0))},[]),e$=(0,i.useCallback)(e=>{e.dataTransfer.types.includes("Files")&&(e.preventDefault(),e.dataTransfer.dropEffect="copy",er(e=>null===e?e:null))},[]),eM=(0,i.useCallback)(()=>{ei.current<=0||(ei.current-=1,0===ei.current&&(ei.current=0,et(!1),er(null)))},[]),eI=(0,i.useCallback)((e,t)=>{eN();let n=t.flatMap(e=>"file"===e.kind?[e.file]:[]),r=t.flatMap(e=>"folder"===e.kind?[e.name]:[]);eS(n,e).then(()=>{if(0===r.length)return;let e=g("chat.dropFoldersUnsupported",{names:r.join(", ")});O(t=>t&&n.length>0?t:e)})},[eS,eN,g]),eT=(0,i.useCallback)(e=>{e.dataTransfer.types.includes("Files")&&(e.preventDefault(),e.stopPropagation(),eI(en??n,nn(e.dataTransfer)))},[n,en,eI]),eR=(0,i.useCallback)(e=>{er(t=>t===e?t:e)},[]);(0,i.useEffect)(()=>{c?.(em)},[c,em]),(0,i.useEffect)(()=>()=>c?.(!1),[c]),(0,i.useEffect)(()=>{eo.current=w},[w]),(0,i.useEffect)(()=>()=>{null!==es.current&&nr.save(es.current,eo.current)},[]),(0,i.useEffect)(()=>{let e=es.current,t=e!==n;if(es.current=n,t){null!==e&&nr.save(e,eo.current);let t=nr.restore(n);eo.current=t,S(t),$(new Set),D(null),_(null),O(null)}y(t),k(null);let r=!1;return ns(n,m).then(e=>{r||v(e)}).catch(e=>{r||k(e instanceof Error?e.message:String(e))}).finally(()=>{r||y(!1)}),()=>{r=!0}},[n,o,C,m]),(0,i.useEffect)(()=>{let e=()=>N(e=>e+1);return window.addEventListener("focus",e),()=>window.removeEventListener("focus",e)},[]),(0,i.useEffect)(()=>{let e=!1;return na(n).then(t=>{e||(I(t.isGitRepository?t.files:[]),R(t.isGitRepository?{additions:t.additions,deletions:t.deletions}:{additions:0,deletions:0}))}).catch(()=>{e||(I([]),R({additions:0,deletions:0}))}),()=>{e=!0}},[n,o,C]),(0,i.useEffect)(()=>{u?.(M.length)},[M,u]);let eL=em||null!==B||null!==W||null!==F,eA=(0,i.useCallback)(()=>{F&&0!==F.uploaded.length&&l?.(F.uploaded.map(e=>ep(eh(F.directory,e),n)))},[n,l,F]);return(0,r.jsxs)("div",{style:{minHeight:"100%"},onDragEnter:eE,onDragOver:e$,onDragLeave:eM,onDrop:eT,children:[(0,r.jsx)("input",{ref:ea,type:"file",multiple:!0,hidden:!0,onChange:eC}),eL&&(0,r.jsxs)("div",{style:{padding:"6px 8px",borderBottom:"1px solid var(--border)"},children:[em&&(0,r.jsxs)("div",{role:"status","aria-live":"polite","aria-label":"checking"===L?g("files.checking"):g("files.uploading",{progress:P}),children:[(0,r.jsxs)("div",{style:{display:"flex",alignItems:"center",justifyContent:"space-between",gap:8,minHeight:14,color:"var(--text-muted)"},children:["checking"===L?(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"===L&&(0,r.jsxs)("span",{style:{fontSize:10},children:[P,"%"]})]}),"uploading"===L&&(0,r.jsx)("div",{style:{height:3,marginTop:4,overflow:"hidden",borderRadius:2,background:"var(--border)"},children:(0,r.jsx)("div",{style:{width:`${P}%`,height:"100%",background:"var(--text-muted)",transition:"width 120ms ease"}})})]}),B&&(0,r.jsxs)("div",{role:"alert",style:{padding:7,border:"1px solid color-mix(in srgb, #f59e0b 55%, var(--border))",borderRadius:4,background:"color-mix(in srgb, #f59e0b 9%, var(--bg-panel))"},children:[(0,r.jsx)("div",{style:{fontSize:11,color:"var(--text)",lineHeight:1.35,overflowWrap:"anywhere"},children:g("files.conflictSummary",{count:B.conflicts.length,countSuffix:1===B.conflicts.length?"":"s",files:B.conflicts.join(", ")})}),B.nonReplaceable.length>0&&(0,r.jsx)("div",{style:{marginTop:3,fontSize:10,color:"#f59e0b",lineHeight:1.35,overflowWrap:"anywhere"},children:g("files.cannotReplace",{files:B.nonReplaceable.join(", ")})}),(0,r.jsxs)("div",{style:{display:"flex",gap:5,marginTop:7},children:[(0,r.jsx)("button",{type:"button",onClick:()=>void ew(B.files,"overwrite",B.directory),style:{height:22,padding:"0 7px",border:"1px solid #ef4444",borderRadius:4,background:"transparent",color:"#ef4444",cursor:"pointer",fontSize:10},children:g("files.replace")}),(0,r.jsx)("button",{type:"button",onClick:()=>void ew(B.files,"skip",B.directory),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:g("files.skipExisting")}),(0,r.jsx)("button",{type:"button",onClick:()=>_(null),style:{height:22,padding:"0 7px",border:"none",borderRadius:4,background:"transparent",color:"var(--text-muted)",cursor:"pointer",fontSize:10},children:g("files.cancel")})]})]}),W&&(0,r.jsxs)("div",{role:"alert",style:{display:"flex",alignItems:"flex-start",gap:6,fontSize:11,lineHeight:1.35,color:"#f87171"},children:[(0,r.jsx)("span",{style:{minWidth:0,flex:1,overflowWrap:"anywhere"},children:W}),(0,r.jsx)(tQ,{onClick:()=>O(null),title:g("files.dismissError")})]}),F&&(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:[F.uploaded.length>0&&(0,r.jsxs)("span",{title:`${F.uploaded.length} uploaded`,"aria-label":`${F.uploaded.length} uploaded`,style:{display:"flex",alignItems:"center",gap:3,color:"#22c55e"},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:F.uploaded.length})]}),F.skipped.length>0&&(0,r.jsxs)("span",{title:`${F.skipped.length} skipped`,"aria-label":`${F.skipped.length} skipped`,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:F.skipped.length})]}),F.errors.length>0&&(0,r.jsxs)("span",{title:`${F.errors.length} failed`,"aria-label":`${F.errors.length} failed`,style:{display:"flex",alignItems:"center",gap:3,color:"#f87171"},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:F.errors.length})]})]}),F.uploaded.length>0&&l&&(0,r.jsxs)("button",{type:"button",onClick:eA,title:1===F.uploaded.length?g("files.addUploadedFile"):g("files.addAllUploadedFiles"),"aria-label":1===F.uploaded.length?g("files.addUploadedFile"):g("files.addAllUploadedFiles"),style:{height:22,padding:"0 7px",display:"flex",alignItems:"center",justifyContent:"center",gap:4,flexShrink:0,border:"1px solid var(--border)",borderRadius:4,background:"var(--bg-panel)",color:"var(--accent)",cursor:"pointer",fontSize:11,fontWeight:600,whiteSpace:"nowrap"},children:[(0,r.jsx)(nu,{}),g("files.mention")]}),(0,r.jsx)(tQ,{onClick:()=>D(null),title:g("files.dismissUploadResults")})]}),F.errors.map(e=>(0,r.jsxs)("div",{title:e.error,style:{display:"flex",alignItems:"center",gap:4,marginTop:3,minWidth:0,fontSize:10,color:"#f87171"},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))]})]}),ex&&(0,r.jsxs)("div",{className:"file-explorer-search",style:{padding:"2px 8px 6px"},children:[(0,r.jsxs)("div",{style:{position:"relative"},children:[(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",style:{position:"absolute",left:8,top:"50%",transform:"translateY(-50%)",color:"var(--text-dim)",pointerEvents:"none"},children:[(0,r.jsx)("circle",{cx:"11",cy:"11",r:"7"}),(0,r.jsx)("path",{d:"m20 20-4-4"})]}),(0,r.jsx)("input",{ref:Q,className:"file-explorer-search-input",id:"file-search-input",value:H,onChange:e=>U(e.target.value),onKeyDown:e=>{"Escape"===e.key&&(e.preventDefault(),e.stopPropagation(),h?U(""):f?.(!1))},placeholder:g("sidebar.searchFilesPlaceholder"),"aria-label":g("sidebar.searchFiles"),style:{width:"100%",boxSizing:"border-box",padding:"6px 24px",border:"1px solid var(--border)",borderRadius:8,outline:"none",background:"var(--bg)",color:"var(--text)",fontFamily:"var(--font-mono)",fontSize:11}}),H&&(0,r.jsx)("button",{type:"button",onClick:()=>U(""),title:g("sidebar.clearSearch"),"aria-label":g("sidebar.clearSearch"),style:{position:"absolute",right:4,top:"50%",transform:"translateY(-50%)",display:"flex",alignItems:"center",justifyContent:"center",width:18,height:18,padding:0,border:"none",borderRadius:4,background:"none",color:"var(--text-dim)",cursor:"pointer"},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-dim)"},children:(0,r.jsxs)("svg",{width:"10",height:"10",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:"M18 6 6 18"}),(0,r.jsx)("path",{d:"m6 6 12 12"})]})})]}),eg&&(0,r.jsxs)("div",{style:{paddingTop:3},children:[Z&&(0,r.jsx)("div",{role:"status",style:{padding:"6px 2px",fontSize:10,color:"var(--text-dim)"},children:g("sidebar.searchingFiles")}),!Z&&J&&(0,r.jsx)("div",{role:"alert",style:{padding:"6px 2px",fontSize:10,color:"#f87171"},children:g("i18n.networkError")}),!Z&&!J&&0===K.length&&(0,r.jsx)("div",{style:{padding:"6px 2px",fontSize:10,color:"var(--text-dim)"},children:g("sidebar.noMatchingFiles")}),!Z&&!J&&K.length>0&&(0,r.jsx)("div",{children:ev.map(e=>(0,r.jsx)(nf,{node:e,depth:0,cwd:n,onOpenFile:s,onAtMention:a,expandedPaths:G,onToggleExpanded:(e,t)=>{X(n=>{let r=new Set(n);return t?r.add(e):r.delete(e),r})},highlightedPaths:E,gitStatusByPath:eb,changedDirectoryPaths:ey,dropTargetPath:en,onDropFiles:eI,onDropTargetChange:eR,t:g},`${H}:${e.fullPath}`))})]})]}),!d&&M.length>0&&(0,r.jsxs)("div",{style:{padding:"0 4px 2px"},children:[(0,r.jsxs)("div",{"aria-label":g("files.changeStats",{count:M.length,additions:T.additions,deletions:T.deletions}),style:{display:"flex",alignItems:"center",gap:6,height:24,padding:"0 10px",fontSize:12},children:[(0,r.jsx)("span",{style:{color:"var(--text-dim)"},children:g("files.changedCount",{count:M.length})}),(0,r.jsxs)("span",{style:{color:nc.added,fontFamily:"var(--font-mono)"},children:["+",T.additions]}),(0,r.jsxs)("span",{style:{color:nc.deleted,fontFamily:"var(--font-mono)"},children:["-",T.deletions]})]}),M.map(e=>(0,r.jsx)(nm,{status:e,cwd:n,onOpenFile:s,onAtMention:a,t:g},e.filePath))]}),h&&!eg&&(0,r.jsxs)("div",{className:"file-explorer-tree-heading",children:[(0,r.jsx)(t2,{size:14}),(0,r.jsx)("span",{children:g("workbench.allFiles")})]}),(d||0===M.length)&&(!ex||!eg)&&(0,r.jsxs)("div",{style:{padding:"2px 4px"},children:[b?(0,r.jsx)("div",{style:{padding:"8px 12px",fontSize:11,color:"var(--text-dim)"},children:"Loading files..."}):j?(0,r.jsx)("div",{style:{padding:"8px 12px",fontSize:11,color:"#f87171"},children:j}):x.map(e=>(0,r.jsx)(nf,{node:e,depth:0,cwd:n,onOpenFile:s,onAtMention:a,expandedPaths:w,onToggleExpanded:ej,refreshToken:ef,highlightedPaths:E,gitStatusByPath:eb,changedDirectoryPaths:ey,showHidden:m,dropTargetPath:en,onDropFiles:eI,onDropTargetChange:eR,t:g},e.fullPath)),!b&&!j&&0===x.length&&(0,r.jsx)("div",{style:{padding:"8px 12px",fontSize:11,color:"var(--text-dim)"},children:g("files.noFiles")})]}),ee&&(0,r.jsxs)("div",{role:"status","aria-live":"polite",style:{position:"sticky",bottom:0,zIndex:1,display:"flex",alignItems:"center",gap:6,padding:"6px 8px",borderTop:"1px solid var(--border)",background:"var(--bg-panel)",fontSize:11,color:"var(--accent)",userSelect:"none",pointerEvents:"none"},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",style:{flexShrink:0},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"})]}),g("files.dropToUpload",{directory:en?ep(en,n)||en:ed(n)||n})]})]})}),nx="[data-sidebar-menu-filter]",nv="[data-sidebar-menu-autofocus]",nb="button, input, textarea, select, a[href], [tabindex]";function ny(e){return i.Children.toArray(e).length>0}function nj(e){return"item"===e.type&&void 0!==e.checked}function nk(e){return e.getClientRects().length>0}function nw(e){return!e.disabled&&"true"!==e.getAttribute("aria-disabled")&&nk(e)}function nS(e){return Array.from(e.querySelectorAll("[data-sidebar-menu-item]")).filter(nw)}function nC(e){let t=Array.from(e.querySelectorAll(nv)).find(nw);if(t)return t;let n=nS(e);return n.length>0?n[0]:Array.from(e.querySelectorAll(nb)).filter(e=>e.tabIndex>=0&&nw(e))[0]??null}function nN(e){e.stopPropagation()}let nE={onClick:nN,onDoubleClick:nN,onMouseDown:nN,onMouseUp:nN,onPointerDown:nN,onPointerUp:nN,onKeyDown:nN,onKeyUp:nN,onFocus:nN,onBlur:nN,onContextMenu:function(e){e.preventDefault(),e.stopPropagation()}};function n$(e,t){return n=>{"Enter"!==n.key||n.nativeEvent.isComposing||229===n.keyCode||(n.preventDefault(),t(e,n.shiftKey))}}function nM(e){let{item:t,onActivate:n}=e,i=void 0!==t.checked,s=["sidebar-menu-item",i?"is-choice":"",t.danger?"is-danger":"",t.checked?"is-checked":""].filter(Boolean).join(" "),o=["sidebar-menu-label",t.mono?"is-mono":"",t.path?"is-path":""].filter(Boolean).join(" "),a=null;t.disabled&&t.disabledReason?a=(0,r.jsx)("span",{className:"sidebar-menu-note",children:t.disabledReason}):t.note?a=(0,r.jsx)("span",{className:"sidebar-menu-note",children:t.note}):t.shortcut&&(a=(0,r.jsx)("kbd",{className:"sidebar-menu-shortcut",children:t.shortcut}));let l=(0,r.jsxs)("button",{type:"button",role:i?"menuitemradio":"menuitem","aria-checked":i?t.checked:void 0,"aria-disabled":!!t.disabled||void 0,"aria-keyshortcuts":t.shortcut&&!t.disabled?t.shortcut.toUpperCase():void 0,tabIndex:-1,title:t.title,"data-sidebar-menu-item":"",className:s,onClick:e=>n(t,e.shiftKey),onKeyDown:n$(t,n),children:[(0,r.jsx)("span",{className:"sidebar-menu-icon",children:i?t.checked?(0,r.jsx)(tz,{size:13}):null:t.icon}),(0,r.jsx)("span",{className:o,children:t.path?(0,r.jsx)("span",{children:t.label}):t.label}),t.badge,a]}),c=t.secondary;return c?(0,r.jsxs)("div",{className:i?"sidebar-menu-row is-choice":"sidebar-menu-row",role:"none",children:[l,(0,r.jsx)("button",{type:"button",role:"menuitem","aria-label":c.label,"aria-disabled":!!c.disabled||void 0,tabIndex:-1,title:c.label,"data-sidebar-menu-item":"",className:c.danger?"sidebar-menu-secondary is-danger":"sidebar-menu-secondary",onClick:e=>n(c,e.shiftKey),onKeyDown:n$(c,n),children:c.icon})]}):l}function nI(e){var t;let n,{sheet:i,ariaLabel:s,title:o,items:a,filter:l,filterQuery:c="",onFilterQueryChange:d,children:u,cancelLabel:p,focusCancel:h=!1,width:f=208,classic:m=!1,footer:g,surfaceRef:x,onActivate:v,onClose:b}=e,y=ny(u),j=!y&&ny(g),k=void 0!==l&&!y&&function(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:8;return(e??[]).filter(nj).length>=t}(a,l.minChoices),w=k?(t=a??[],(n=c.trim().toLowerCase())?t.filter(e=>"item"!==e.type||void 0===e.checked||[e.label,e.note,e.title].some(e=>e?.toLowerCase().includes(n))):[...t]):a??[],S=w.map(e=>"separator"===e.type?(0,r.jsx)("div",{className:"sidebar-menu-separator",role:"separator"},e.id):"header"===e.type?(0,r.jsx)("div",{className:"sidebar-menu-header",role:"presentation",children:e.label},e.id):"custom"===e.type?(0,r.jsx)("div",{className:"sidebar-menu-custom",role:"none",children:e.content},e.id):(0,r.jsx)(nM,{item:e,onActivate:v},e.id)),C=y?u:k||j?(0,r.jsxs)(r.Fragment,{children:[k&&(0,r.jsx)("div",{className:"sidebar-menu-filter",children:(0,r.jsx)("input",{className:"sidebar-menu-filter-input",value:c,placeholder:l.placeholder,"aria-label":l.placeholder,autoComplete:"off",spellCheck:!1,"data-sidebar-menu-filter":"","data-sidebar-menu-autofocus":i?void 0:"",onChange:e=>d?.(e.target.value)})}),k&&(0,r.jsx)("div",{role:"status",children:c.trim()&&!w.some(nj)&&(0,r.jsx)("div",{className:"sidebar-menu-empty",children:l.emptyLabel})}),(0,r.jsx)("div",{role:"menu","aria-label":s,children:S}),j&&g]}):S,N=y||k||j?void 0:"menu";return i?(0,r.jsxs)("div",{className:"sidebar-sheet-layer",...nE,children:[(0,r.jsx)("div",{className:"sidebar-sheet-backdrop","aria-hidden":"true",onClick:()=>b("outside")}),(0,r.jsxs)("div",{ref:x,className:"sidebar-sheet",role:"dialog","aria-modal":"true","aria-label":s,children:[o?(0,r.jsx)("div",{className:"sidebar-sheet-title",children:o}):null,(0,r.jsx)("div",{className:"sidebar-sheet-body",role:N,"aria-label":N?s:void 0,children:C}),(0,r.jsx)("button",{type:"button",className:"sidebar-sheet-cancel","data-sidebar-menu-autofocus":h?"":void 0,onClick:()=>b("cancel"),children:p})]})]}):(0,r.jsx)("div",{ref:x,className:m?"sidebar-menu is-classic":"sidebar-menu",role:N??"dialog","aria-label":s,style:{width:f},...nE,children:C})}function nT(e){let{open:t,anchor:n,sheet:s,ariaLabel:o,title:l,items:c,filter:d,children:u,cancelLabel:p,focusCancel:h,onClose:f,returnFocusTo:m,width:g,classic:x=!1,footer:v,focusKey:b=""}=e,[y,j]=(0,i.useState)(null),[k,w]=(0,i.useState)(""),S=(0,i.useRef)(k);S.current=k;let C=(0,i.useRef)(null),N=(0,i.useRef)(f);N.current=f;let E=(0,i.useRef)(c);E.current=c;let $=(0,i.useRef)(m??null);$.current=m??null;let M=(0,i.useRef)(n);M.current=n,(0,i.useEffect)(()=>{j(document.body)},[]);let I=t&&null!==y&&(s||null!==n),T=ny(u),R=n?JSON.stringify(n):"",L=(e,t)=>{if(e.disabled)return;let n=!1;e.onSelect({shiftKey:t,keepOpen:()=>{n=!0}}),n||N.current("select")},A=(0,i.useRef)(L);A.current=L,(0,i.useLayoutEffect)(()=>{let e=C.current;if(!I||s||!e)return;let t=window.visualViewport,n=()=>{let n=M.current;if(!n)return;let r=e.getBoundingClientRect(),{left:i,top:s}=function(e,t,n){let r,i,s=arguments.length>3&&void 0!==arguments[3]?arguments[3]:8,o=n.left+s,a=n.top+s,l=n.left+n.width-s,c=n.top+n.height-s;if("point"===e.kind)r=e.x+t.width>l&&e.x-t.width>=o?e.x-t.width:e.x,i=e.y+t.height>c&&e.y-t.height>=a?e.y-t.height:e.y;else{let{rect:n}=e;r="end"===e.align?n.right-t.width:n.left;let s=n.bottom+4,o=n.top-4-t.height;i=s+t.height>c&&o>=a?o:s}return{left:Math.max(o,Math.min(r,l-t.width)),top:Math.max(a,Math.min(i,c-t.height))}}(n,{width:r.width,height:r.height},{left:t?.offsetLeft??0,top:t?.offsetTop??0,width:t?.width??window.innerWidth,height:t?.height??window.innerHeight});e.style.left=`${i}px`,e.style.top=`${s}px`};n();let r="u"<typeof ResizeObserver?null:new ResizeObserver(n);return r?.observe(e),window.addEventListener("resize",n),t?.addEventListener("resize",n),t?.addEventListener("scroll",n),()=>{r?.disconnect(),window.removeEventListener("resize",n),t?.removeEventListener("resize",n),t?.removeEventListener("scroll",n)}},[I,s,R,T]),(0,i.useEffect)(()=>{w("")},[I,T]);let P=(0,i.useRef)(!1);return((0,i.useLayoutEffect)(()=>{let e=C.current;if(!I||!e){P.current=!1;return}let t=!P.current;P.current=!0,(t?nC(e):Array.from(e.querySelectorAll(nv)).filter(e=>!e.matches(nx)&&nw(e))[0]??nC(e))?.focus({preventScroll:!0})},[I,s,T,b]),(0,i.useLayoutEffect)(()=>{let e=C.current;if(!I||!e)return;let t=$.current;return()=>{let n=document.activeElement;if(n&&n!==document.body&&!e.contains(n))return;let r=function(e){if(!e||!e.isConnected)return null;if(nk(e))return e;let t=e.closest("[data-row-key]");if(!t)return null;for(let e of Array.from(t.querySelectorAll(nb)))if(e.tabIndex>=0&&nw(e))return e;return null}(t);r&&(r.focus({preventScroll:!0}),t&&r!==t&&nk(t)&&t.focus({preventScroll:!0}))}},[I,s]),(0,i.useEffect)(()=>{if(!I)return;let e=e=>{let t=C.current;if(!t||e.isComposing||229===e.keyCode)return;if("Escape"===e.key){e.preventDefault(),e.stopPropagation();let n=t.querySelector(nx);if(n&&S.current){w(""),n.focus({preventScroll:!0});return}N.current("escape");return}let n=e.target instanceof Element?e.target:null,r=null!==n&&t.contains(n),i=null===n||n===document.body||n===document.documentElement;if(!r&&!i)return;if("Tab"===e.key){var s;let i,o;r&&(s=e.shiftKey,i=Array.from(t.querySelectorAll(nb)).filter(e=>e!==n&&e.tabIndex>=0&&nw(e)),o=s?Node.DOCUMENT_POSITION_PRECEDING:Node.DOCUMENT_POSITION_FOLLOWING,i.some(e=>(n.compareDocumentPosition(e)&o)!=0))||N.current("outside");return}let o=("ArrowDown"===e.key||"ArrowUp"===e.key)&&n?.matches(nx);if(r&&function(e){if(!e)return!1;if(e.isContentEditable)return!0;let t=e.tagName;return"TEXTAREA"===t||"SELECT"===t||"INPUT"===t&&!["button","checkbox","radio","range","reset","submit","image","color","file"].includes((e.type||"text").toLowerCase())}(n)&&!o)return;if("ArrowDown"===e.key||"ArrowUp"===e.key||"Home"===e.key||"End"===e.key){let r,i=nS(t);if(0===i.length)return;e.preventDefault(),e.stopPropagation();let s=n?i.indexOf(n):-1;r="Home"===e.key?0:"End"===e.key?i.length-1:"ArrowDown"===e.key?s<0?0:(s+1)%i.length:s<0?i.length-1:(s-1+i.length)%i.length,i[r].focus({preventScroll:!1});return}if(1!==e.key.length||e.ctrlKey||e.metaKey||e.altKey)return;let a=function(e,t){if(!e||1!==t.length)return null;let n=t.toLowerCase();for(let t of e)if("item"===t.type&&!t.disabled&&t.shortcut&&t.shortcut.toLowerCase()===n)return t;return null}(E.current,e.key);a&&!T&&(e.preventDefault(),e.stopPropagation(),A.current(a,e.shiftKey))};return document.addEventListener("keydown",e,!0),()=>document.removeEventListener("keydown",e,!0)},[I,T]),(0,i.useEffect)(()=>{if(!I||s)return;let e=e=>{let t=C.current,n=e.target instanceof Node?e.target:null;if(!t||n&&t.contains(n))return;let r=$.current;r&&n&&0===e.button&&r.contains(n)&&function(e){let t=e.ownerDocument,n=t.defaultView;if(!n)return;let r=0,i=()=>{t.removeEventListener("click",s,!0),n.clearTimeout(r)};function s(t){i(),t.target instanceof Node&&e.contains(t.target)&&(t.preventDefault(),t.stopPropagation())}t.addEventListener("click",s,!0),r=n.setTimeout(i,1e3)}(r),N.current("outside")};return document.addEventListener("pointerdown",e,!0),()=>document.removeEventListener("pointerdown",e,!0)},[I,s]),I&&y)?(0,a.createPortal)((0,r.jsx)(nI,{sheet:s,ariaLabel:o,title:l,items:c,filter:d,filterQuery:k,onFilterQueryChange:w,cancelLabel:p,focusCancel:h,width:g,classic:x,footer:v,surfaceRef:C,onActivate:(e,t)=>A.current(e,t),onClose:e=>N.current(e),children:u}),y):null}let nR="PI-YUN";function nL(e){let{canCreate:t=!1,onNewSession:n,onOpenProject:s,onOpenSettings:o}=e,{t:a}=(0,eG.s)(),l=(0,i.useRef)(null),[c,d]=(0,i.useState)(null),u=a("navigation.appMenu",{name:nR}),p=()=>{let e=l.current?.getBoundingClientRect();e&&d({kind:"rect",rect:e,align:"start"})},h=[{type:"item",id:"new",label:a("i18n.newSession"),icon:(0,r.jsx)(tD,{size:16}),disabled:!t,onSelect:()=>n?.()},{type:"item",id:"project",label:a("sidebar.openOtherProject"),icon:(0,r.jsx)(tB,{size:16}),onSelect:()=>s?.(l.current)},...o?[{type:"separator",id:"settings-separator"},{type:"item",id:"settings",label:a("common.settings"),icon:(0,r.jsxs)("svg",{width:"16",height:"16",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"1.6","aria-hidden":"true",children:[(0,r.jsx)("path",{d:"M4 7h16M4 17h16"}),(0,r.jsx)("circle",{cx:"9",cy:"7",r:"3",fill:"var(--bg-panel)"}),(0,r.jsx)("circle",{cx:"15",cy:"17",r:"3",fill:"var(--bg-panel)"})]}),onSelect:o}]:[]];return(0,r.jsxs)(r.Fragment,{children:[(0,r.jsxs)("button",{ref:l,type:"button",className:"sidebar-brand","aria-label":u,"aria-haspopup":"menu","aria-expanded":!!c,onClick:()=>{c?d(null):p()},onKeyDown:e=>{"ArrowDown"!==e.key||c||(e.preventDefault(),p())},children:[(0,r.jsx)("span",{className:"sidebar-brand-label",children:nR}),(0,r.jsx)("svg",{className:"sidebar-brand-chevron",width:"12",height:"12",viewBox:"0 0 16 16",fill:"none",stroke:"currentColor",strokeWidth:"1.5","aria-hidden":"true",children:(0,r.jsx)("path",{d:"m4 6 4 4 4-4"})})]}),(0,r.jsx)(nT,{open:!!c,anchor:c,sheet:!1,ariaLabel:u,title:nR,items:h,cancelLabel:a("sidebar.cancel"),onClose:()=>d(null),returnFocusTo:l.current})]})}var nA=n(2730);let nP={desktop:32,mobile:48};function nz(e,t,n,r){return Math.hypot(n-e,r-t)}function nW(e){return e.getClientRects().length>0}function nO(e){let t=em(e.firstMessage)??e.firstMessage;return e.name||t.slice(0,50)||e.id.slice(0,12)}function nF(e){return e.nativeEvent.isComposing||229===e.keyCode}function nD(e){let{rows:t,layout:n,emptyLabel:s,loading:o,error:a,renamingRootId:l,renamingProjectKey:c,confirmDeleteRootId:d,activeMenuRowKey:u,reveal:p}=e,{t:h}=(0,eG.s)(),f=(0,i.useRef)(e);f.current=e;let m=(0,i.useRef)(null),g=(0,i.useRef)(null),x=(0,i.useRef)(null),v=(0,i.useRef)(null);ti(g);let[b,y]=(0,i.useState)(0),[j,k]=(0,i.useState)(0),[w,S]=(0,i.useState)(null),[C,N]=(0,i.useState)(()=>Date.now()),E=(0,i.useRef)(null),$=(0,i.useCallback)(()=>{null===E.current&&(E.current=requestAnimationFrame(()=>{E.current=null;let e=g.current;e&&y(e.scrollTop)}))},[]);(0,i.useLayoutEffect)(()=>{let e=g.current;if(!e)return;let t=()=>{let t=`${Math.max(0,e.offsetWidth-e.clientWidth)}px`;e.style.setProperty("--session-tree-scrollbar",t),e.offsetWidth>0&&e.closest(".session-sidebar")?.style.setProperty("--session-tree-scrollbar",t)};if(t(),k(e.clientHeight),y(e.scrollTop),"u"<typeof ResizeObserver)return;let n=new ResizeObserver(()=>{t(),k(e.clientHeight),y(e.scrollTop)});return n.observe(e),()=>n.disconnect()},[]),(0,i.useEffect)(()=>()=>{null!==E.current&&cancelAnimationFrame(E.current)},[]),(0,i.useEffect)(()=>{let e=window.setInterval(()=>N(Date.now()),6e4);return()=>window.clearInterval(e)},[]);let M=(0,i.useCallback)(e=>{let t=e.target instanceof Element?e.target.closest("[data-row-key]"):null;S(t?.getAttribute("data-row-key")??null)},[]),I=(0,i.useCallback)(e=>{e.currentTarget.contains(e.relatedTarget)||S(null)},[]),T=(0,i.useMemo)(()=>(function(e,t){let n=F[t],r=Array(e.length+1);r[0]=0;for(let t=0;t<e.length;t++)r[t+1]=r[t]+n[e[t].kind];return r})(t,n),[t,n]),R=!!e.onMoveGroup,L=(0,i.useMemo)(()=>{let e={pinned:0,other:0};for(let n of t)"group"===n.kind&&e[n.project.pinned?"pinned":"other"]++;return e},[t]),A=function(e){let{rows:t,offsets:n,enabled:r}=e,s=(0,i.useRef)(e);s.current=e;let o=(0,i.useMemo)(()=>(function(e,t){let n=[],r=0;for(;r<e.length;){var i;let s=e[r];if("group"!==s.kind){r++;continue}let o=r;for(;o>0&&"spacer"===e[o-1].kind;)o--;let a=r+1;for(;a<e.length&&("group-more"===(i=e[a]).kind||"group-empty"===i.kind||"session"===i.kind&&"group"===i.context);)a++;let l=a;for(;l<e.length&&"spacer"===e[l].kind;)l++;n.push({key:s.project.key,pinned:s.project.pinned,top:t[r],bottom:t[a],gapAbove:t[r]-t[o],gapBelow:t[l]-t[a]}),r=a}return n})(t,n),[t,n]),a=(0,i.useRef)(o);a.current=o;let l=(0,i.useRef)(null),c=(0,i.useRef)(0),[d,u]=(0,i.useState)(null),p=(0,i.useMemo)(()=>{let e=e=>{u("armed"===e.phase||"dragging"===e.phase?{projectKey:e.projectKey,phase:e.phase,drop:e.drop}:null)},t=e=>{let t=s.current.innerRef.current;return t?function(e,t,n){let r=e.find(e=>e.key===t);if(!r)return null;let i=e.filter(e=>e.pinned===r.pinned),s=i.indexOf(r),o=i.filter(e=>e!==r);if(0===o.length)return null;let a=o.filter(e=>(e.top+e.bottom)/2<n).length;if(a===s)return null;let l=o[o.length-1],c=Math.max(3,a<o.length?o[a].top-o[a].gapAbove/2:l.bottom+l.gapBelow/2);return a>0?{anchorKey:o[a-1].key,position:"after",lineY:c}:{anchorKey:o[0].key,position:"before",lineY:c}}(a.current,e.projectKey,e.clientY-t.getBoundingClientRect().top):null},n=()=>{let e=l.current,t=s.current.ghostRef.current,n=s.current.treeRef.current,r=s.current.innerRef.current,i=s.current.scrollRef.current;if(!e?.ghost||!t||!n||!i)return;let o=n.getBoundingClientRect().top,a=i.getBoundingClientRect(),c=t.offsetHeight,d=function(e){let{pointerY:t,lineY:n,ghostHeight:r,pointerGap:i,lineGap:s,minTop:o,maxTop:a}=e,l=Math.max(o,a),c=t-i-r,d=null!==n&&n>=o&&n<=l+r?n:null,u=e=>e>=o&&e<=l,p=e=>null!==d&&e>d-s-r&&e<d+s,h=null===d?[c,o,t+i,l]:[c,d-s-r,o,t+i,d+s,l],f=e=>{let t=null;for(let n of h)e(n)&&(null===t||Math.abs(n-c)<Math.abs(t-c))&&(t=n);return t};return f(e=>u(e)&&!(e>c&&e<t+i)&&!p(e))??f(e=>u(e)&&!p(e))??Math.min(l,Math.max(o,c))}({pointerY:e.clientY,lineY:e.drop&&r?r.getBoundingClientRect().top+e.drop.lineY:null,ghostHeight:c,pointerGap:"mouse"===e.pointerType?8:28,lineGap:8,minTop:a.top,maxTop:a.bottom-c});t.style.top=`${d-o}px`,t.style.left=`${e.ghost.left}px`},r=e=>{null!==e.timer&&window.clearTimeout(e.timer),null!==e.frame&&cancelAnimationFrame(e.frame),e.timer=null,e.frame=null,s.current.scrollRef.current?.removeEventListener("scroll",p);try{e.element.hasPointerCapture(e.pointerId)&&e.element.releasePointerCapture(e.pointerId)}catch{}},i=()=>{let e=l.current;e&&(l.current=null,r(e),window.removeEventListener("pointermove",g,!0),window.removeEventListener("pointerup",x,!0),window.removeEventListener("pointercancel",v,!0),window.removeEventListener("pointerdown",b,!0),window.removeEventListener("keydown",y,!0),window.removeEventListener("contextmenu",j,!0),window.removeEventListener("blur",k),document.removeEventListener("visibilitychange",w),u(null))},o=()=>{let e=l.current;if(e){if("armed"!==e.phase&&"dragging"!==e.phase){"pending"===e.phase&&i();return}e.phase="cancelled",e.drop=null,r(e),u(null)}},d=function(){var r;let i=arguments.length>0&&void 0!==arguments[0]&&arguments[0],a=l.current;if(!a||"dragging"!==a.phase)return;let c=s.current.scrollRef.current;if(!c||!nW(c))return void o();let d=t(a),u=i||d!==(r=a.drop)&&(null===d||null===r||d.anchorKey!==r.anchorKey||d.position!==r.position||d.lineY!==r.lineY);a.drop=d,n(),u&&e(a)};function p(){d()}let h=()=>{let e=l.current;if(!e||"dragging"!==e.phase)return;e.frame=null;let t=s.current.scrollRef.current;if(!t||!nW(t))return void o();let n=t.getBoundingClientRect(),r=function(e,t,n,r){let i=Math.min(r,(n-t)/2);if(!(i>0)||!Number.isFinite(e))return 0;let s=e=>Math.ceil(14*Math.min(1,e/i));return e<t+i?-s(t+i-e):e>n-i?s(e-(n-i)):0}(e.clientY,n.top,n.bottom,nP[s.current.layout]);if(0!==r){let n=Math.min(Math.max(0,(s.current.offsets[s.current.offsets.length-1]??0)-t.clientHeight),Math.max(0,t.scrollTop+r));n!==t.scrollTop&&(t.scrollTop=n,e.expectedScrollTop=t.scrollTop,d())}l.current===e&&"dragging"===e.phase&&(e.frame=requestAnimationFrame(h))},f=e=>{let t=s.current.scrollRef.current,n=s.current.treeRef.current;if(!t||!n||!nW(t)||!e.element.isConnected)return void o();if(e.phase="dragging","touch"!==e.pointerType)try{e.element.setPointerCapture(e.pointerId)}catch{}e.ghost={left:e.element.getBoundingClientRect().left-n.getBoundingClientRect().left+4},e.expectedScrollTop=t.scrollTop,t.addEventListener("scroll",p,{passive:!0}),e.frame=requestAnimationFrame(h),d(!0)},m=()=>{let t=l.current;t&&"pending"===t.phase&&(t.timer=null,t.phase="armed",t.armX=t.clientX,t.armY=t.clientY,t.expectedScrollTop=s.current.scrollRef.current?.scrollTop??0,e(t))};function g(e){let t=l.current;if(!t||e.pointerId!==t.pointerId)return;if("mouse"===t.pointerType&&0===e.buttons)return void i();t.clientX=e.clientX,t.clientY=e.clientY;let n=nz(t.startX,t.startY,e.clientX,e.clientY);switch(t.phase){case"pending":"mouse"===t.pointerType?n>=4&&f(t):n>8&&i();break;case"armed":nz(t.armX,t.armY,e.clientX,e.clientY)>=4&&f(t);break;case"dragging":d()}}function x(e){let n=l.current;if(n&&e.pointerId===n.pointerId){if("dragging"===n.phase){n.clientX=e.clientX,n.clientY=e.clientY;let r=t(n);r&&s.current.onMove(n.projectKey,r.anchorKey,r.position)}"pending"!==n.phase&&(c.current=e.timeStamp+600),i()}}function v(e){l.current&&e.pointerId===l.current.pointerId&&i()}function b(e){l.current&&e.pointerId!==l.current.pointerId&&o()}function y(e){let t=l.current;t&&"Escape"===e.key&&("armed"===t.phase||"dragging"===t.phase)&&(e.preventDefault(),e.stopPropagation(),o())}function j(e){let t=l.current;if(t){if("pending"===t.phase)return void i();e.preventDefault(),e.stopPropagation()}}function k(){i()}function w(){"hidden"===document.visibilityState&&i()}return{handlers:{onPointerDown(e,t){if(!s.current.enabled||l.current||!e.isPrimary||0!==e.button||e.ctrlKey||e.target instanceof Element&&e.target.closest(".session-tree-group-actions"))return;let n=e.currentTarget,r={pointerId:e.pointerId,pointerType:e.pointerType,projectKey:t,element:n,startX:e.clientX,startY:e.clientY,armX:e.clientX,armY:e.clientY,clientX:e.clientX,clientY:e.clientY,phase:"pending",timer:null,frame:null,expectedScrollTop:0,drop:null,ghost:null};l.current=r,window.addEventListener("pointermove",g,!0),window.addEventListener("pointerup",x,!0),window.addEventListener("pointercancel",v,!0),window.addEventListener("pointerdown",b,!0),window.addEventListener("keydown",y,!0),window.addEventListener("contextmenu",j,!0),window.addEventListener("blur",k),document.addEventListener("visibilitychange",w),"mouse"!==e.pointerType&&(r.timer=window.setTimeout(m,350))},onTouchMove(e){let t=l.current;if(!t||"armed"!==t.phase&&"dragging"!==t.phase)return;if(e.cancelable)return void e.preventDefault();let n=s.current.scrollRef.current;n&&n.scrollTop!==t.expectedScrollTop&&i()}},cancel:o,teardown:i,updateDrag:d,placeGhost:n}},[]);(0,i.useLayoutEffect)(()=>{let e=l.current;e&&("armed"===e.phase||"dragging"===e.phase)&&(t.some(t=>"group"===t.kind&&t.project.key===e.projectKey)?p.updateDrag():p.cancel())},[t,n,p]),(0,i.useEffect)(()=>{r||p.cancel()},[r,p]);let h=d?.phase==="dragging";(0,i.useLayoutEffect)(()=>{h&&p.placeGhost()},[h,p]),(0,i.useEffect)(()=>()=>p.teardown(),[p]);let f=(0,i.useCallback)(e=>{let t=c.current;0===t||(c.current=0,e.timeStamp>t||(e.preventDefault(),e.stopPropagation()))},[]),m=(0,i.useCallback)(()=>{c.current=0},[]);return{view:(0,i.useMemo)(()=>{if(!d)return null;let e="dragging"===d.phase?o.find(e=>e.key===d.projectKey)??null:null;return{...d,source:e}},[d,o]),handlers:p.handlers,onClickCapture:f,onPointerDownCapture:m}}({rows:t,offsets:T,layout:n,enabled:R&&!o,scrollRef:g,innerRef:x,treeRef:m,ghostRef:v,onMove:(e,t,n)=>f.current.onMoveGroup?.(e,t,n)}),P=A.view,z=P?`group:${P.projectKey}`:null,[W,O]=(0,i.useState)(null),B=p&&p.id!==W?p:null,_=B?.rowKey??null,H=(0,i.useMemo)(()=>{let e=[];return t.forEach((t,n)=>{t.key===w||t.key===u||t.key===_||t.key===z||"session"===t.kind&&(t.family.root.id===l||t.family.root.id===d)?e.push(n):"group"===t.kind&&t.project.key===c&&e.push(n)}),e},[t,w,u,_,z,l,c,d]),U=(0,i.useMemo)(()=>o?[]:function(e,t,n,r){let i=arguments.length>4&&void 0!==arguments[4]?arguments[4]:[],s=Math.max(0,e.length-1),o=Number.isFinite(t)?Math.max(0,t):0,a=Number.isFinite(n)&&n>0?n:600,l=Number.isFinite(r)&&r>0?r:0,c=o-l,d=o+a+l,u=0,p=s;for(;u<p;){let t=u+p>>>1;e[t+1]>c?p=t:u=t+1}let h=u;for(u=h,p=s;u<p;){let t=u+p>>>1;e[t]>=d?p=t:u=t+1}let f=u,m=[];for(let e=h;e<f;e++)m.push(e);if(0===i.length)return m;let g=i.filter(e=>Number.isInteger(e)&&e>=0&&e<s&&(e<h||e>=f));return 0===g.length?m:[...new Set([...m,...g])].sort((e,t)=>e-t)}(T,b,j,240,H),[o,T,b,j,H]),K=(0,i.useRef)(null),q=(0,i.useRef)(null),Z=(0,i.useCallback)((e,t,n,r)=>{let i=document.activeElement===r,s=i&&r.matches(":focus-visible");K.current={rowKey:e,fallbackKey:t===D?"pinned-header":`group:${t}`,focus:i,scroll:"less"===n||s},"more"===n?f.current.onShowMore(t):f.current.onShowLess(t)},[]);(0,i.useLayoutEffect)(()=>{let e=K.current;if(!e)return;K.current=null;let n=g.current,r=t.findIndex(t=>t.key===e.rowKey);if(r<0&&(r=t.findIndex(t=>t.key===e.fallbackKey)),e.scroll&&n&&r>=0){let e=ea(T,r,n.scrollTop,n.clientHeight);null!==e&&(n.scrollTop=e),y(n.scrollTop)}e.focus&&(q.current={rowKey:e.rowKey,fallbackKey:e.fallbackKey,tries:0})},[t,T]);let V=(0,i.useRef)(null);(0,i.useLayoutEffect)(()=>{if(!B)return;let e=t.findIndex(e=>e.key===B.rowKey),n=function(e,t,n,r){let i=e?.id===t.id?e:{id:t.id,misses:0};if(!(r-t.at<=3e3))return{misses:i,action:"drop"};if(n)return{misses:i,action:"reveal"};let s={id:t.id,misses:i.misses+1};return{misses:s,action:s.misses>=3?"drop":"wait"}}(V.current,B,e>=0,Date.now());if(V.current=n.misses,"wait"!==n.action){if("reveal"===n.action){let t=g.current;if(t&&t.getClientRects().length>0){let n=ea(T,e,t.scrollTop,t.clientHeight,B.block);null!==n&&(t.scrollTop=n),y(t.scrollTop)}B.takeFocusFrom&&(q.current={rowKey:B.rowKey,fallbackKey:B.rowKey,tries:0,takeFocusFrom:B.takeFocusFrom})}O(B.id),f.current.onRevealHandled?.(B.id)}},[B,t,T]),(0,i.useLayoutEffect)(()=>{let e=q.current;if(!e)return;let t=document.activeElement;if(t&&t!==document.body&&document.contains(t)&&!e.takeFocusFrom?.(t)){q.current=null;return}let n=g.current,r=e=>n?.querySelector(`[data-row-key="${CSS.escape(e)}"]`)??null,i=r(e.rowKey),s=i?.querySelector('[data-more-action="more"]')??i?.querySelector("a[href], button")??r(e.fallbackKey)?.querySelector("a[href], button");s?(s.focus({preventScroll:!0}),q.current=null):++e.tries>2&&(q.current=null)},[U]);let J=t.some(e=>"session"===e.kind||"group"===e.kind),Y=!o&&!a&&null!==s&&!J,G=P?.source??null,X=P?.drop?.lineY??null,Q=P?.phase==="dragging"?t.find(e=>"group"===e.kind&&e.project.key===P.projectKey)?.project??null:null;return(0,r.jsxs)("div",{ref:m,className:`session-tree${"mobile"===n?" is-mobile":""}${Q?" is-group-dragging":""}`,children:[o&&(0,r.jsx)("div",{className:"session-tree-message",children:h("sidebar.loading")}),a&&(0,r.jsx)("div",{className:"session-tree-message is-error",children:a}),Y&&(0,r.jsx)("div",{className:"session-tree-message",children:s}),(0,r.jsx)("div",{ref:g,className:"session-tree-scroll scrollbar-subtle",onScroll:$,onFocus:M,onBlur:I,onPointerDownCapture:A.onPointerDownCapture,onClickCapture:A.onClickCapture,children:!o&&(0,r.jsxs)("div",{ref:x,className:"session-tree-inner",style:{height:T[t.length]},children:[U.map(e=>{let i=t[e];if("spacer"===i.kind)return null;let s=T[e],o=T[e+1]-s,a=i.key===u;if("session"===i.kind)return(0,r.jsx)(n_,{row:i,layout:n,top:s,height:o,now:C,renaming:i.family.root.id===l,confirming:i.family.root.id===d,menuOpen:a,handlers:f},i.key);if("archive-group"===i.kind)return(0,r.jsx)(nV,{row:i,top:s,height:o,menuOpen:a,handlers:f},i.key);if("group"===i.kind){let e=i.project.key===c;return(0,r.jsx)(nq,{row:i,top:s,height:o,menuOpen:a,renaming:e,canDrag:R&&!e&&L[i.project.pinned?"pinned":"other"]>1,dragPhase:P?.projectKey===i.project.key?P.phase:null,drag:A.handlers,handlers:f},i.key)}return(0,r.jsx)(nZ,{row:i,top:s,height:o,handlers:f,onMoreAction:Z},i.key)}),G&&(0,r.jsx)("div",{className:"session-tree-drag-source","aria-hidden":"true",style:{top:G.top,height:G.bottom-G.top}}),null!==X&&(0,r.jsx)("div",{className:"session-tree-drop-line","aria-hidden":"true",style:{top:X}})]})}),Q&&(0,r.jsxs)("div",{ref:v,className:"session-tree-drag-ghost","aria-hidden":"true",children:[(0,r.jsx)(tF,{size:14,className:"session-tree-group-icon"}),(0,r.jsx)("span",{className:"session-tree-group-name",children:Q.name})]})]})}function nB(e,t){return{top:e,height:t}}let n_=(0,i.memo)(function(e){let t,n,{row:i,layout:s,top:o,height:a,now:l,renaming:u,confirming:p,menuOpen:h,handlers:f}=e,{locale:m,t:g}=(0,eG.s)(),{family:x,context:v,status:b}=i,y=x.root,j=nO(y),k=new Date(l),w=["session-tree-row session-tree-session",b.selected?"is-selected":"",b.running?"is-running":"","archive"===v?"is-archived":"",h?"is-menu-open":"",p?"is-confirming":"",u?"is-renaming":""].filter(Boolean).join(" ");if(p){let e=j.slice(0,22)+(j.length>22?"…":"");return(0,r.jsx)("div",{className:w,style:nB(o,a),"data-row-key":i.key,onKeyDown:e=>{"Escape"!==e.key||nF(e)||(e.preventDefault(),e.stopPropagation(),f.current.onDeleteCancel())},children:(0,r.jsx)(nU,{label:g("sidebar.deleteSession",{title:e}),deleteLabel:g("sidebar.delete"),cancelLabel:g("sidebar.cancel"),onConfirm:e=>{e.stopPropagation(),f.current.onDeleteConfirm(x,e)},onCancel:e=>{e.stopPropagation(),f.current.onDeleteCancel()}})})}if(u)return(0,r.jsx)("div",{className:w,style:nB(o,a),"data-row-key":i.key,children:(0,r.jsx)(nH,{initialValue:j,label:g("sidebar.rename"),onCommit:e=>f.current.onRenameCommit(x,e),onCancel:()=>f.current.onRenameCancel()})});let S=y.isWorktree&&y.branch?y.branch:null,C=y.name&&y.relation?.kind==="fork"?ev(y.name):null,N=y.detailsPending?"…":g("sidebar.messagesCount",{count:y.messageCount}),E=`${j}
3
- ${N} \xb7 ${(0,nA.fw)(y.modified,m,k)}${S?` \xb7 ⑂ ${S}`:""}`,$="";b.awaiting?(t=(0,r.jsx)("span",{className:"session-tree-awaiting",role:"img","aria-label":g("sidebar.agentAwaitingInput")}),$=" is-awaiting",n=g("sidebar.agentAwaitingInput")):b.running?(t=(0,r.jsx)(tJ,{size:12,label:g("sidebar.agentRunning")}),$=" is-running",n=g("sidebar.agentRunning")):b.unread?(t=(0,r.jsx)("span",{className:"session-tree-unread",role:"img","aria-label":g("sidebar.newSessionActivity")}),$=" is-unread",n=g("sidebar.newActivity")):t="pinned"===v?(0,r.jsx)("span",{className:"session-tree-project",children:i.project.name}):"archive"===v&&null!==i.archivedAt?(0,nA.Rg)(new Date(i.archivedAt),m,k):(0,nA.Rg)(x.latestModified,m,k);let M="desktop"===s&&("archive"===v||!b.running),I=(0,r.jsxs)(r.Fragment,{children:[C?(0,r.jsxs)("span",{className:"session-tree-title has-fork-suffix",children:[(0,r.jsx)("span",{className:"session-tree-title-base",children:C.base}),(0,r.jsx)("span",{className:"session-tree-title-suffix",children:C.suffix})]}):(0,r.jsx)("span",{className:"session-tree-title",children:j}),S&&(0,r.jsxs)("span",{className:"session-tree-branch",children:[(0,r.jsx)(tM,{size:10,className:"session-tree-branch-icon"}),S]}),(0,r.jsx)("span",{className:`session-tree-meta${$}`,title:n,children:t})]});return(0,r.jsxs)("div",{className:w,style:nB(o,a),"data-row-key":i.key,onClick:()=>f.current.onSelectFamily(x),onContextMenu:e=>f.current.onRowContextMenu(i,e),children:[b.transient?(0,r.jsx)("button",{type:"button",className:"session-tree-main",title:E,"aria-current":b.selected?"true":void 0,children:I}):(0,r.jsx)("a",{className:"session-tree-main",href:c(y.id),title:E,"aria-current":b.selected?"true":void 0,onClick:e=>{e.stopPropagation(),d(e)&&(e.preventDefault(),f.current.onSelectFamily(x))},children:I}),!b.transient&&(0,r.jsxs)("span",{className:"session-tree-actions",children:[M&&("archive"===v?(0,r.jsx)("button",{type:"button",className:"session-tree-action session-tree-quick-action","aria-label":g("sidebar.restore"),title:g("sidebar.restore"),onClick:e=>{e.stopPropagation(),f.current.onRestoreFamily(x)},children:(0,r.jsx)(tC,{size:13})}):(0,r.jsx)("button",{type:"button",className:"session-tree-action session-tree-quick-action","aria-label":g("sidebar.archive"),title:g("sidebar.archive"),onClick:e=>{e.stopPropagation(),f.current.onArchiveFamily(x)},children:(0,r.jsx)(tS,{size:13})})),(0,r.jsx)("button",{type:"button",className:`session-tree-action session-tree-more-action${h?" is-active":""}`,"aria-label":g("sidebar.moreActions"),title:g("sidebar.moreActions"),"aria-haspopup":"menu","aria-expanded":h,onClick:e=>{let t;e.stopPropagation();let n=e.currentTarget;f.current.onOpenRowMenu(i,{kind:"rect",rect:{left:(t=n.getBoundingClientRect()).left,top:t.top,right:t.right,bottom:t.bottom},align:"end"},n)},children:(0,r.jsx)(tw,{size:14})})]})]})});function nH(e){let{initialValue:t,label:n,maxLength:s,onCommit:o,onCancel:a}=e,[l,c]=(0,i.useState)(t),d=(0,i.useRef)(null),u=(0,i.useRef)(!1);(0,i.useEffect)(()=>{let e=d.current;e&&(e.focus(),e.select())},[]);let p=e=>{u.current||(u.current=!0,o(e))};return(0,r.jsx)("input",{ref:d,className:"session-tree-rename",value:l,"aria-label":n,maxLength:s,onChange:e=>c(e.target.value),onBlur:e=>p(e.currentTarget.value),onKeyDown:e=>{if(!nF(e)){if("Enter"===e.key)e.preventDefault(),p(e.currentTarget.value);else if("Escape"===e.key){if(e.preventDefault(),e.stopPropagation(),u.current)return;u.current=!0,a()}}}})}function nU(e){let{label:t,deleteLabel:n,cancelLabel:s,onConfirm:o,onCancel:a}=e,l=(0,i.useRef)(null);return(0,i.useEffect)(()=>{let e=document.activeElement;e&&e!==document.body||l.current?.focus()},[]),(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)("span",{className:"session-tree-confirm-text",children:t}),(0,r.jsxs)("button",{type:"button",className:"session-tree-confirm-delete",onClick:o,children:[(0,r.jsx)(tR,{size:12}),n]}),(0,r.jsx)("button",{ref:l,type:"button",className:"session-tree-confirm-cancel",onClick:a,children:s})]})}function nK(e){let{running:t,unread:n,t:i}=e;return 0===t&&0===n?null:(0,r.jsxs)("span",{className:"session-tree-summary",children:[t>0&&(0,r.jsxs)("span",{className:"session-tree-summary-running",role:"img",title:i("sidebar.agentRunning"),"aria-label":`${i("sidebar.agentRunning")} (${t})`,children:[(0,r.jsx)(tJ,{size:10}),t]}),n>0&&(0,r.jsxs)("span",{className:"session-tree-summary-unread",role:"img",title:i("sidebar.newSessionActivity"),"aria-label":`${i("sidebar.newSessionActivity")} (${n})`,children:[(0,r.jsx)("span",{className:"session-tree-summary-dot"}),n]})]})}let nq=(0,i.memo)(function(e){let{row:t,top:n,height:s,menuOpen:o,renaming:a,canDrag:l,dragPhase:c,drag:d,handlers:u}=e,{t:p}=(0,eG.s)(),{project:h,expanded:f}=t,m=(0,i.useRef)(null),g=["session-tree-row session-tree-group",h.current?"is-current":"",o?"is-active":"","armed"===c?"is-drag-armed":""].filter(Boolean).join(" ");return((0,i.useEffect)(()=>{let e=m.current;if(!l||!e)return;let t=e=>d.onTouchMove(e);return e.addEventListener("touchmove",t,{passive:!1}),()=>e.removeEventListener("touchmove",t)},[l,d]),a)?(0,r.jsx)("div",{ref:m,className:`${g} is-renaming`,style:nB(n,s),"data-row-key":t.key,children:(0,r.jsx)(nH,{initialValue:h.name,label:p("sidebar.projectName"),maxLength:80,onCommit:e=>u.current.onRenameProjectCommit(h,e),onCancel:()=>u.current.onRenameProjectCancel()})}):(0,r.jsxs)("div",{ref:m,className:g,style:nB(n,s),"data-row-key":t.key,onPointerDown:l?e=>d.onPointerDown(e,h.key):void 0,children:[(0,r.jsxs)("button",{type:"button",className:"session-tree-group-toggle","aria-expanded":f,title:h.root,onClick:e=>u.current.onToggleGroup(h.key,e.altKey),children:[(0,r.jsx)(tF,{size:14,open:f,className:`session-tree-group-icon${f?" is-open":""}`}),(0,r.jsx)("span",{className:"session-tree-group-name",children:h.name}),!f&&(0,r.jsx)(nK,{running:t.running,unread:t.unread,t:p})]}),(0,r.jsxs)("span",{className:"session-tree-group-actions",children:[(0,r.jsx)("button",{type:"button",className:"session-tree-group-action","aria-label":p("sidebar.newSessionInProject",{name:h.name}),title:p("sidebar.newSessionInProject",{name:h.name}),onClick:e=>{e.stopPropagation(),u.current.onGroupNew(h)},children:(0,r.jsx)(tj,{size:13})}),(0,r.jsx)("button",{type:"button",className:`session-tree-group-action${o?" is-active":""}`,"aria-label":p("sidebar.projectActions",{name:h.name}),title:p("sidebar.projectActions",{name:h.name}),"aria-haspopup":"menu","aria-expanded":o,onClick:e=>{e.stopPropagation(),u.current.onGroupMenu(h,e.currentTarget)},children:(0,r.jsx)(tw,{size:13})})]})]})}),nZ=(0,i.memo)(function(e){let{row:t,top:n,height:i,handlers:s,onMoreAction:o}=e,{t:a}=(0,eG.s)(),l=nB(n,i);switch(t.kind){case"section":return(0,r.jsx)("div",{className:`session-tree-row session-tree-section${"projects"===t.label?" is-projects":""}`,style:l,"data-row-key":t.key,role:"recents"===t.label?"heading":void 0,"aria-level":"recents"===t.label?2:void 0,children:"recents"===t.label?(0,r.jsxs)("button",{type:"button",className:"session-tree-recents-toggle","aria-expanded":!t.collapsed,onClick:()=>s.current.onToggleRecents?.(),children:[(0,r.jsx)("span",{children:a("sidebar.recents")}),(0,r.jsx)(t$,{size:12,className:`session-tree-chevron${t.collapsed?"":" is-open"}`})]}):(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)("span",{role:"heading","aria-level":2,children:a("sidebar.projects")}),(0,r.jsx)("button",{type:"button",className:"session-tree-section-action","aria-label":a("projectCreate.title"),title:a("projectCreate.title"),"aria-haspopup":"dialog",onClick:e=>s.current.onOpenOtherProject(e.currentTarget),children:(0,r.jsx)(tj,{size:16})})]})});case"recent":{let e=nO(t.family.root);return(0,r.jsx)("div",{className:`session-tree-row session-tree-recent${t.status.selected?" is-selected":""}`,style:l,"data-row-key":t.key,children:(0,r.jsxs)("a",{className:"session-tree-main",href:c(t.family.root.id),title:`${e} \xb7 ${t.project.name}`,"aria-current":t.status.selected?"page":void 0,onClick:e=>{d(e)&&(e.preventDefault(),s.current.onSelectFamily(t.family))},children:[(0,r.jsx)("span",{className:"session-tree-title",children:e}),(t.status.running||t.status.unread)&&(0,r.jsx)(nK,{running:+!!t.status.running,unread:+!!t.status.unread,t:a})]})})}case"pinned-header":return(0,r.jsx)("div",{className:"session-tree-row session-tree-pinned-header",style:l,"data-row-key":t.key,children:(0,r.jsxs)("button",{type:"button",className:"session-tree-pinned-toggle","aria-expanded":!t.collapsed,onClick:()=>s.current.onTogglePinned(),children:[(0,r.jsx)(t$,{size:12,strokeWidth:3,className:`session-tree-chevron${t.collapsed?"":" is-open"}`}),(0,r.jsx)("span",{className:"session-tree-pinned-label",children:a("sidebar.pinned")}),(0,r.jsxs)("span",{className:"session-tree-pinned-count",children:["\xb7 ",t.count]}),t.collapsed&&t.running>0&&(0,r.jsx)("span",{className:"session-tree-pinned-dot is-running",role:"img",title:a("sidebar.agentRunning"),"aria-label":`${a("sidebar.agentRunning")} (${t.running})`}),t.collapsed&&t.unread>0&&(0,r.jsx)("span",{className:"session-tree-pinned-dot is-unread",role:"img",title:a("sidebar.newSessionActivity"),"aria-label":`${a("sidebar.newSessionActivity")} (${t.unread})`})]})});case"pinned-more":case"group-more":{let e="pinned-more"===t.kind?D:t.projectKey;return(0,r.jsxs)("div",{className:"session-tree-row session-tree-more",style:l,"data-row-key":t.key,children:[t.hidden>0&&(0,r.jsx)("button",{type:"button",className:"session-tree-more-toggle","data-more-action":"more",onClick:n=>o(t.key,e,"more",n.currentTarget),children:a("sidebar.showMore",{count:t.hidden})}),t.canShowLess&&(0,r.jsx)("button",{type:"button",className:"session-tree-more-toggle","data-more-action":"less",onClick:n=>o(t.key,e,"less",n.currentTarget),children:a("sidebar.showLess")})]})}case"group-empty":return(0,r.jsx)("div",{className:"session-tree-row session-tree-group-empty",style:l,"data-row-key":t.key,children:a("sidebar.noLiveSessions")});case"footer-open":return(0,r.jsx)("div",{className:"session-tree-row session-tree-footer",style:l,"data-row-key":t.key,children:(0,r.jsxs)("button",{type:"button",className:"session-tree-footer-button","aria-haspopup":"dialog",onClick:e=>s.current.onOpenOtherProject(e.currentTarget),children:[(0,r.jsx)(tB,{size:12}),(0,r.jsx)("span",{className:"session-tree-footer-label",children:a("projectCreate.title")})]})});case"footer-archived":return(0,r.jsx)("div",{className:"session-tree-row session-tree-footer",style:l,"data-row-key":t.key,children:(0,r.jsxs)("button",{type:"button",className:"session-tree-footer-button",onClick:()=>s.current.onOpenArchive(),children:[(0,r.jsx)(tS,{size:12}),(0,r.jsx)("span",{className:"session-tree-footer-label",children:a("sidebar.archivedCount",{count:t.count})}),(0,r.jsx)(t$,{size:10,className:"session-tree-footer-chevron"})]})})}}),nV=(0,i.memo)(function(e){let{row:t,top:n,height:i,menuOpen:s,handlers:o}=e,{t:a}=(0,eG.s)(),{project:l,expanded:c}=t,d=["session-tree-row session-tree-group session-tree-archive-group",l.current?"is-current":"",s?"is-active":""].filter(Boolean).join(" ");return(0,r.jsxs)("div",{className:d,style:nB(n,i),"data-row-key":t.key,children:[(0,r.jsxs)("button",{type:"button",className:"session-tree-group-toggle","aria-expanded":c,title:l.root,onClick:e=>o.current.onToggleArchiveGroup?.(l.key,e.altKey),children:[(0,r.jsx)(t$,{size:12,strokeWidth:3,className:`session-tree-chevron${c?" is-open":""}`}),(0,r.jsx)(tF,{size:14,open:c,className:`session-tree-group-icon${c?" is-open":""}`}),(0,r.jsx)("span",{className:"session-tree-group-name",children:l.name}),(0,r.jsxs)("span",{className:"session-tree-archive-group-count",children:["\xb7 ",t.count]})]}),(0,r.jsx)("span",{className:"session-tree-group-actions",children:(0,r.jsx)("button",{type:"button",className:`session-tree-group-action${s?" is-active":""}`,"aria-label":a("sidebar.archivedProjectActions",{name:l.name}),title:a("sidebar.archivedProjectActions",{name:l.name}),"aria-haspopup":"menu","aria-expanded":s,onClick:e=>{e.stopPropagation(),o.current.onArchiveGroupMenu?.(l,e.currentTarget)},children:(0,r.jsx)(tw,{size:13})})})]})});function nJ(e){let{heading:t,busy:n,error:s,showCancel:o,onCreate:a,onCancel:l}=e,{t:c}=(0,eG.s)(),[d,u]=(0,i.useState)(""),p=d.trim(),h=()=>{p&&!n&&a(p)};return(0,r.jsxs)("div",{className:"sidebar-worktree-form",children:[t&&(0,r.jsx)("div",{className:"sidebar-menu-header",children:t}),(0,r.jsx)("input",{className:"sidebar-worktree-input","data-sidebar-menu-autofocus":"",value:d,readOnly:n,placeholder:c("sidebar.branchName"),"aria-label":c("sidebar.branchName"),onChange:e=>u(e.target.value),onKeyDown:e=>{"Enter"!==e.key||e.nativeEvent.isComposing||229===e.keyCode||(e.preventDefault(),h())}}),(0,r.jsxs)("div",{className:"sidebar-worktree-form-buttons",children:[(0,r.jsx)("button",{type:"button",className:"sidebar-worktree-create",disabled:n||!p,onClick:h,children:c(n?"sidebar.creating":"sidebar.create")}),o&&(0,r.jsx)("button",{type:"button",className:"sidebar-worktree-cancel",onClick:l,children:c("sidebar.cancel")})]}),s&&(0,r.jsx)("div",{className:"sidebar-worktree-error",role:"alert",children:s})]})}function nY(e,t){return t&&e.startsWith(t)?`~${e.slice(t.length)}`:e}function nG(e){return e.branch??V(e.path)}function nX(e){let{heading:t,dirty:n,busy:i,error:s,showCancel:o,onForce:a,onCancel:l}=e,{t:c}=(0,eG.s)();return(0,r.jsxs)("div",{className:"sidebar-worktree-form",children:[t&&(0,r.jsx)("div",{className:"sidebar-menu-header",children:t}),n&&(0,r.jsx)("div",{className:"sidebar-worktree-message",children:c("sidebar.forceRemoveCheckout")}),(n||o)&&(0,r.jsxs)("div",{className:"sidebar-worktree-form-buttons",children:[n&&(0,r.jsx)("button",{type:"button",className:"sidebar-worktree-force",disabled:i,onClick:a,children:c("sidebar.force")}),o&&(0,r.jsx)("button",{type:"button",className:"sidebar-worktree-cancel","data-sidebar-menu-autofocus":"",onClick:l,children:c("sidebar.cancel")})]}),s&&(0,r.jsx)("div",{className:"sidebar-worktree-error",role:"alert",children:s})]})}function nQ(e){let{busy:t,onForce:n,onCancel:s}=e,{t:o}=(0,eG.s)(),a=(0,i.useId)();return(0,r.jsxs)("div",{className:"sidebar-worktree-confirm",children:[(0,r.jsx)("span",{id:a,className:"sidebar-worktree-confirm-text",title:o("sidebar.forceRemoveCheckout"),children:o("sidebar.forceRemoveCheckout")}),(0,r.jsx)("button",{type:"button",role:"menuitem",tabIndex:-1,"data-sidebar-menu-item":"","aria-describedby":a,"aria-disabled":!!t||void 0,className:"sidebar-worktree-force",onClick:()=>{t||n()},children:o("sidebar.force")}),(0,r.jsx)("button",{type:"button",role:"menuitem",tabIndex:-1,"data-sidebar-menu-item":"","data-sidebar-menu-autofocus":"",className:"sidebar-worktree-cancel",onClick:s,children:o("sidebar.cancel")})]})}function n0(e){let t,n,{layout:s,context:o,mobile:a,label:l,placeholder:c="",homeDir:d,projectActivity:u,worktreeHint:p=null,newWorktreeTitle:h,handleRef:f,onPick:m,onUseDefaultDirectory:g,onOpenFolder:x,onRefreshWorktrees:v,onCreateWorktree:b,onRemoveWorktree:y}=e,{t:j}=(0,eG.s)(),[k,w]=(0,i.useState)(null),S=(0,i.useRef)(k);S.current=k;let C=(0,i.useRef)(0),N=(0,i.useRef)(null),E=(0,i.useRef)(null),$=(0,i.useRef)(!1),M=(0,i.useRef)(m);M.current=m;let I="inline"!==s,T=!I,R=!a,{project:L,worktrees:A}=o,P=(t=o.worktrees??[]).find(e=>e.path===o.currentWorktreePath)??t.find(e=>e.isMain)??null,z=T&&L?eO(ez(o)).find(e=>{let{choice:t}=e;return t.key===L.key}):void 0;(0,i.useEffect)(()=>($.current=!0,()=>{$.current=!1}),[]);let W=()=>(C.current+=1,C.current),O=()=>w(null),F=(e,t)=>{let n=t.getBoundingClientRect(),r=Math.max(I?220:"project"===e?260:240,Math.round(n.width));w({id:W(),kind:e,anchor:{kind:"rect",rect:{left:n.left,top:n.top,right:n.right,bottom:n.bottom},align:"row"===s&&"worktree"===e?"end":"start"},opener:t,width:r,body:null,removing:!1}),"worktree"===e&&v()},D=(0,i.useRef)(F);D.current=F,(0,i.useImperativeHandle)(f,()=>({button:e=>("worktree"===e?E:N).current,openMenu:(e,t)=>{let n=t??("worktree"===e?E:N).current;n&&D.current(e,n)}}),[]);let B=(e,t)=>{w(n=>n?.id===e?t(n):n)},_=e=>{let t=W();w(n=>n?.kind==="worktree"?{...n,id:t,body:e,removing:!1}:n)},H=async e=>{let t,n=S.current;if(!n||n.body?.kind!=="create"||!L)return;let{id:r}=n,i=(e,t)=>{B(r,n=>({...n,body:{kind:"create",busy:e,error:t}}))};i(!0,null);try{t=await b(L,e)}catch(e){t={error:e instanceof Error?e.message:String(e)}}$.current&&("error"in t?i(!1,t.error):S.current?.id===r&&(w(null),M.current({cwd:t.path,projectKey:L.key,projectRoot:L.root},"worktree")))},U=async(e,t)=>{let n,r=S.current;if(!r||!L||!y)return;let{id:i}=r;B(i,e=>({...e,removing:!0,body:e.body?.kind==="remove"?{...e.body,busy:!0,error:null}:e.body}));try{n=await y(L,e.path,t)}catch(e){n={error:e instanceof Error?e.message:String(e)}}$.current&&B(i,t=>{if("removed"===n)return{...t,removing:!1,body:null};let r="dirty"===n||t.body?.kind==="remove"&&t.body.dirty;return{...t,removing:!1,body:{kind:"remove",worktree:e,dirty:r,busy:!1,error:"dirty"===n?null:n.error}}})},K=()=>[...(A??[]).map(e=>R&&q?.kind==="remove"&&q.dirty&&q.worktree.path===e.path?{type:"custom",id:`worktree:${e.path}`,content:(0,r.jsx)(nQ,{busy:q.busy,onForce:()=>{U(e,!0)},onCancel:()=>_(null)})}:{type:"item",id:`worktree:${e.path}`,label:R?e.branch??nY(e.path,d):nG(e),mono:R,path:R,note:e.isMain?j("sidebar.main"):void 0,title:e.path,checked:e.path===P?.path,secondary:y&&!e.isMain?{label:j("sidebar.removeWorktreeTitle",{path:e.path}),icon:(0,r.jsx)(tR,{size:12}),danger:!0,disabled:k?.removing,onSelect:t=>{let{keepOpen:n}=t;n(),U(e,!1)}}:void 0,onSelect:()=>{L&&e.path!==P?.path&&m({cwd:e.path,projectKey:L.key,projectRoot:L.root},"worktree")}}),...R?[]:[{type:"separator",id:"separator"}],...R&&q?.kind==="create"?[]:[{type:"item",id:"new-worktree",label:j("sidebar.newWorktree"),icon:(0,r.jsx)(tj,{size:13}),onSelect:e=>{let{keepOpen:t}=e;t(),_({kind:"create",busy:!1,error:null})}}]],q=k?.kind==="worktree"?k.body:null,Z="",J=null,Y=null;if(R&&k?.kind==="worktree")Z=j("sidebar.switchWorktree"),n=K(),q?.kind==="create"?Y=(0,r.jsx)(nJ,{heading:null,busy:q.busy,error:q.error,showCancel:!0,onCreate:e=>{H(e)},onCancel:()=>_(null)}):q?.kind==="remove"&&q.error&&(Y=(0,r.jsx)("div",{className:"sidebar-worktree-error",role:"alert",children:q.error}));else if(q?.kind==="create")Z=h,J=(0,r.jsx)(nJ,{heading:a?null:Z,busy:q.busy,error:q.error,showCancel:!a,onCreate:e=>{H(e)},onCancel:O});else if(q?.kind==="remove")Z=j("sidebar.removeWorktreeHeading",{name:nG(q.worktree)}),J=(0,r.jsx)(nX,{heading:a?null:Z,dirty:q.dirty,busy:q.busy,error:q.error,showCancel:!a,onForce:()=>{U(q.worktree,!0)},onCancel:O});else if(k?.kind==="project"){let e,t;Z=j("workspace.project"),t=(e=eO(ez(o)).map(e=>{let{choice:t,name:n,note:i}=e,s=u?.get(t.key),o=R&&void 0===t.alias;return{type:"item",id:`project:${t.key}`,label:o?nY(t.root,d):n,note:o?void 0:i??void 0,mono:R,path:o,title:t.root,checked:t.key===L?.key,badge:s?(0,r.jsx)(nK,{running:s.running,unread:s.unread,t:j}):void 0,onSelect:()=>{m({cwd:t.key===L?.key&&A?P?.path??t.root:t.root,projectKey:t.key,projectRoot:t.root},"project")}}})).length>0?[{type:"separator",id:"separator"}]:[],n=[...e,...t,{type:"item",id:"default-directory",label:j("sidebar.useDefaultDirectory"),icon:(0,r.jsx)(tF,{size:13}),onSelect:()=>g()},{type:"item",id:"open-folder",label:j(R?"sidebar.customPath":"sidebar.openOtherProject"),icon:R?(0,r.jsx)(tj,{size:13}):(0,r.jsx)(tB,{size:13}),onSelect:()=>x(k?.opener??null)}]}else k?.kind==="worktree"&&(Z=j("sidebar.switchWorktree"),n=K());let G=k?.kind==="project"?{placeholder:j("sidebar.filterProjects"),emptyLabel:j("sidebar.noMatchingProjects"),minChoices:R?9:void 0}:{placeholder:j("sidebar.filterWorktrees"),emptyLabel:j("sidebar.noMatchingWorktrees")},X=I&&void 0!==u&&[...u].some(e=>{let[t,{running:n,unread:r}]=e;return t!==L?.key&&(n>0||r>0)});return(0,r.jsxs)("div",{className:`project-picker is-${s}`,role:"group","aria-label":l,children:[(0,r.jsxs)("button",{ref:N,type:"button",className:L?"project-picker-button is-project":"project-picker-button is-project is-empty",title:L?.root??"","aria-haspopup":"menu","aria-expanded":k?.kind==="project",onClick:e=>F("project",e.currentTarget),children:[T&&(0,r.jsx)(tF,{size:12,className:"project-picker-icon"}),T&&L?(0,r.jsxs)("span",{className:"project-picker-name",children:[void 0===L.alias&&z?.note&&(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)("span",{className:"project-picker-parent",children:z.note}),"/"]}),(0,r.jsx)("span",{className:"project-picker-leaf",children:L.alias??z?.name??V(L.root)})]}):L?.alias!==void 0?(0,r.jsx)("span",{className:"project-picker-label is-alias",children:L.alias}):L?(0,r.jsx)("span",{className:"project-picker-path",children:(0,r.jsx)("span",{children:nY(L.root,d)})}):(0,r.jsx)("span",{className:"project-picker-label",children:c}),X&&(0,r.jsx)("span",{className:"project-picker-activity",role:"img",title:j("sidebar.newActivity"),"aria-label":j("sidebar.newActivity")}),T&&(0,r.jsx)(t$,{size:9,className:"project-picker-chevron sidebar-icon-down"})]}),A&&(0,r.jsxs)("button",{ref:E,type:"button",className:"project-picker-button",title:P?j("sidebar.worktreePath",{path:P.path}):j("sidebar.switchWorktree"),"aria-haspopup":"menu","aria-expanded":k?.kind==="worktree",onClick:e=>F("worktree",e.currentTarget),children:[(0,r.jsx)(tM,{size:11,className:P&&!P.isMain?"project-picker-icon is-linked":"project-picker-icon"}),(0,r.jsx)("span",{className:"project-picker-path",children:(0,r.jsx)("span",{children:P?P.branch??nY(P.path,d):"…"})}),P?.isMain&&"stacked"===s&&(0,r.jsx)("span",{className:"project-picker-note",children:j("sidebar.main")}),I&&A.length>1&&(0,r.jsx)("span",{className:"project-picker-note",children:A.length}),(0,r.jsx)(t$,{size:9,className:"project-picker-chevron sidebar-icon-down"})]}),!A&&I&&p&&(0,r.jsxs)("button",{type:"button","aria-disabled":"true",tabIndex:-1,title:p.title,className:"project-picker-button is-inactive",children:[(0,r.jsx)(tM,{size:11,className:"project-picker-icon"}),(0,r.jsx)("span",{className:"project-picker-label",children:p.label})]}),(0,r.jsx)(nT,{open:null!==k,anchor:k?.anchor??null,sheet:a,ariaLabel:Z,title:Z,items:n,filter:G,cancelLabel:j("sidebar.cancel"),focusCancel:q?.kind==="remove",onClose:O,returnFocusTo:k?.opener??null,width:k?.width,classic:R,footer:Y,focusKey:q?`${q.kind}:${"remove"===q.kind&&q.dirty}`:"list",children:J})]})}function n1(e){let{open:t,query:n,children:s,selectedSessionId:o,onSelectSession:a,archivedSessionIds:l}=e,{t:c,locale:d}=(0,eG.s)(),[u,p]=(0,i.useState)({query:""}),h=n.trim(),f=u.query===h?u.response:void 0,m=u.query===h&&u.failed;return(0,i.useEffect)(()=>{if(!t||!h)return;let e=new AbortController;p({query:h});let n=setTimeout(async()=>{try{let t=await fetch(`/api/sessions/search?${new URLSearchParams({q:h})}`,{signal:e.signal});if(!t.ok)throw Error(`HTTP ${t.status}`);let n=await t.json();e.signal.aborted||p({query:h,response:n})}catch{e.signal.aborted||p({query:h,failed:!0})}},300);return()=>{clearTimeout(n),e.abort()}},[t,h]),t&&h?(0,r.jsxs)("div",{className:"min-h-20 flex-1 overflow-y-auto","aria-busy":!f&&!m,children:[(0,r.jsx)("div",{role:"status",className:"px-3 py-2 text-xs text-text-muted",children:m?c("sidebar.sessionSearchFailed"):f?0===f.results.length?c("sidebar.sessionSearchEmpty"):c("sidebar.sessionSearchCount",{count:f.results.length}):c("sidebar.sessionSearching")}),f?.truncated&&(0,r.jsx)("div",{role:"status",className:"px-3 pb-2 text-xs text-text-muted",children:c("sidebar.sessionSearchPartial")}),f?.results.map(e=>{let{session:t,entryId:n,blockIndex:i,before:s,match:u,after:p}=e;return(0,r.jsxs)("button",{type:"button",onClick:()=>a(t,n,i),"aria-current":t.id===o?"true":void 0,className:`block w-full cursor-pointer border-b border-border px-3 py-2 text-left hover:bg-bg-hover focus-visible:outline-2 focus-visible:outline-accent ${t.id===o?"bg-bg-selected":""}`,children:[(0,r.jsxs)("span",{className:"flex min-w-0 items-center gap-1.5",children:[(0,r.jsx)("span",{className:"min-w-0 truncate text-xs font-medium text-text",children:t.name||t.firstMessage}),l?.has(t.id)&&(0,r.jsx)("span",{className:"shrink-0 rounded-[4px] border border-border px-1 text-[10px] leading-[14px] text-text-dim",children:c("sidebar.archived")})]}),(0,r.jsxs)("span",{className:"mt-1 flex min-w-0 gap-2 text-[10px] text-text-dim",children:[(0,r.jsx)("span",{className:"min-w-0 flex-1 truncate",title:t.cwd,children:t.cwd}),(0,r.jsx)("span",{className:"shrink-0",children:(0,nA.fw)(t.modified,d)})]}),(0,r.jsxs)("span",{className:"mt-1 block text-xs leading-relaxed wrap-anywhere text-text-muted",children:[s,(0,r.jsx)("mark",{className:"rounded-sm bg-accent/20 text-text",children:u}),p]})]},t.id)})]}):s}function n2(e){let{toast:t,dismissLabel:n,durationMs:s,onDismissRef:o}=e,a=(0,i.useRef)(null),[l,c]=(0,i.useState)(!1),[d,u]=(0,i.useState)(!1),p=l||d;return(0,i.useLayoutEffect)(()=>{let e=a.current;e&&window.matchMedia?.("(hover: hover)").matches&&e.matches(":hover")&&c(!0)},[]),(0,i.useEffect)(()=>{if(p)return;let e=window.setTimeout(()=>o.current(),s);return()=>window.clearTimeout(e)},[p,s,o]),(0,r.jsxs)("div",{ref:a,className:"sidebar-toast",onPointerEnter:e=>{"mouse"===e.pointerType&&c(!0)},onPointerLeave:()=>c(!1),onFocus:()=>u(!0),onBlur:e=>{e.currentTarget.contains(e.relatedTarget)||u(!1)},children:[t.tail?(0,r.jsxs)("span",{className:"sidebar-toast-message has-tail",title:t.message+t.tail,children:[(0,r.jsx)("span",{className:"sidebar-toast-message-head",children:t.message}),(0,r.jsx)("span",{className:"sidebar-toast-message-tail",children:t.tail})]}):(0,r.jsx)("span",{className:"sidebar-toast-message",title:t.message,children:t.message}),t.actions.map(e=>(0,r.jsx)("button",{type:"button",className:"sidebar-toast-action",onClick:()=>{o.current(),e.onClick()},children:e.label},e.id)),(0,r.jsx)("button",{type:"button",className:"sidebar-toast-dismiss","aria-label":n,title:n,onClick:()=>o.current(),children:(0,r.jsx)(tW,{size:12})})]})}function n4(e){let{toast:t,onDismiss:n,dismissLabel:s,durationMs:o=1e4}=e,a=(0,i.useRef)(n);return a.current=n,(0,r.jsx)("div",{className:"sidebar-toast-region",role:"status","aria-live":"polite",children:t?(0,r.jsx)(n2,{toast:t,dismissLabel:s,durationMs:o,onDismissRef:a},t.id):null})}let n8={remote:"sidebar.openInExplorerRemoteOnly","unsupported-platform":"sidebar.openInExplorerUnsupported"};function n3(e){let{ref:t,onClick:n,title:i,disabled:s,pressed:o,expanded:a,controls:l,done:c,className:d,children:u}=e;return(0,r.jsx)("button",{ref:t,type:"button",onClick:n,disabled:s,title:i,"aria-label":i,"aria-pressed":o,"aria-expanded":a,"aria-controls":l,className:`sidebar-tool-button${o||a?" is-active":""}${c?" is-done":""}${d?` ${d}`:""}`,children:u})}let n6="pi-web:unread-session-ids",n5="pi-web:last-custom-cwd",n9={"open-new-tab":"sidebar.openInNewTab",pin:"sidebar.pin",unpin:"sidebar.unpin",rename:"sidebar.rename",fork:"sidebar.fork","mark-read":"sidebar.markRead","mark-unread":"sidebar.markUnread",archive:"sidebar.archive",unarchive:"sidebar.unarchive",delete:"sidebar.delete"};function n7(){try{return window.localStorage.getItem(n5)??""}catch{return""}}function re(e){try{window.localStorage.setItem(n5,e)}catch{}}function rt(e,t){let n=new Set(t);if(n.size!==e.size)return n;for(let t of n)if(!e.has(t))return n;return e}function rn(e,t){return e.length>t?`${e.slice(0,t)}…`:e}function rr(e){let t=document.activeElement;e&&t instanceof HTMLElement&&t!==document.body&&(0===t.getClientRects().length||null!==t.closest("[inert]"))?e.focus({preventScroll:!0}):e_(document,e)}function ri(e,t){let n=e.getBoundingClientRect();return{kind:"rect",rect:{left:n.left,top:n.top,right:n.right,bottom:n.bottom},align:t}}function rs(e){var t,n,s;let o,a,d,u,p,h,f,x,{onOpenArchive:b,archiveActive:y=!1,onArchiveStateChange:j,fileExplorerTarget:k,selectedSessionId:N,onSelectSession:T,onNewSession:R,onOpenSettings:F,controlRef:ea,onNewSessionContextChange:el,initialSessionId:ec,initialSessionLinked:eu,skipInitialProjectSelection:ep,onInitialRestoreDone:eh,refreshKey:ef,onSessionDeleted:em,selectedCwd:eg,onCwdChange:ex,onOpenFile:eO,onOpenTerminal:eF,explorerRefreshKey:eD,onExplorerRefresh:eB,onAtMention:eH,onAtMentions:eK,onBackgroundTaskDone:eq,onRunningSessionIdsChange:eZ,onSessionsChange:eJ}=e,{t:eX}=(0,eG.s)(),eQ=e5(),[e0,e1]=(0,i.useState)([]),e2=(0,i.useRef)(null),e4=(0,i.useRef)(0),[e8,e3]=(0,i.useState)(!0),[e6,e9]=(0,i.useState)(!1),[e7,te]=(0,i.useState)(null),[tt,tn]=(0,i.useState)(null),[to,td]=(0,i.useState)(""),[tu,tp]=(0,i.useState)(!1),[th,tf]=(0,i.useState)(n7),[tm,tg]=(0,i.useState)(null),[tx,tv]=(0,i.useState)(!1),[ty,tj]=(0,i.useState)(!1),[tk,tM]=(0,i.useState)(null),tW=(0,i.useRef)(null),[tO,tB]=(0,i.useState)(null),[tJ,tY]=(0,i.useState)(null),tG=(0,i.useRef)(null);tG.current??=new Set(eL());let[t0,t1]=(0,i.useState)(0),[t2,t4]=(0,i.useState)(!1),[t8,t3]=(0,i.useState)(!1),[t6,t5]=(0,i.useState)(!1),[t9,t7]=(0,i.useState)(""),[ne,nt]=(0,i.useState)(0),[nn,nr]=(0,i.useState)(!0),[ni,ns]=(0,i.useState)(!1),[no,na]=(0,i.useState)(!1),[nl,nc]=(0,i.useState)(null),[nd,nu]=(0,i.useState)(null),[np,nh]=(0,i.useState)(()=>new Set),[nf,nm]=(0,i.useState)(()=>new Set),[nx,nv]=(0,i.useState)(()=>(function(){try{let e=window.localStorage.getItem(n6);if(!e)return new Set;let t=JSON.parse(e);if(Array.isArray(t))return new Set(t.filter(e=>"string"==typeof e));return new Set}catch{return new Set}})()),nb=(0,i.useRef)(new Set),ny=(0,i.useRef)(new Set),nj=(0,i.useRef)(new Set),nk=(0,i.useRef)(!1),nw=(0,i.useRef)(null),nS=(0,i.useRef)(null),nC=(0,i.useRef)(null),nN=(0,i.useSyncExternalStore)(eY,eV,()=>eU),nE=!!k,n$=!nE&&!eQ&&"below"===nN,[nM,nI]=(0,i.useState)("sessions"),[nR,nA]=(0,i.useState)(!1),nP=(0,i.useRef)(null),nz=(0,i.useRef)(null),nW=(0,i.useRef)(null),nF=(0,i.useRef)(null),nB=(0,i.useRef)(new WeakMap),[n_,nH]=(0,i.useState)({}),[nU,nK]=(0,i.useState)(()=>new Set),[nq,nZ]=(0,i.useState)({}),[nV,nJ]=(0,i.useState)(!1),[nY,nG]=(0,i.useState)(!1),[nX,nQ]=(0,i.useState)([]),[n2,n5]=(0,i.useState)(!1),{phase:rs,start:ra,end:rl}=tc(),{phase:rc,start:rd,end:ru}=tc(),rp=(0,i.useRef)(nR);rp.current=nR;let rh=(0,i.useRef)(n2);rh.current=n2;let rf=(0,i.useCallback)(e=>{e!==rh.current&&rd(e?"in":"out"),n5(e)},[rd]),rm=(o=nR&&"out"===rs,a=!nR&&"in"===rs,{bodyHidden:nR&&!o,bodyInert:o,moving:o||a,open:!nR&&!a}),rg=(d=n2&&"in"===rc,u=!n2&&"out"===rc,{mainHidden:n2&&!d,mainInert:d,archiveMounted:n2||u,archiveInert:u,archiveClass:d?"is-entering":u?"is-leaving":null}),[rx,rv]=(0,i.useState)(null),[rb,ry]=(0,i.useState)(null),[rj,rk]=(0,i.useState)(null),[rw,rS]=(0,i.useState)(null),[rC,rN]=(0,i.useState)(null),rE=(0,i.useRef)(0),r$=(0,i.useCallback)(e=>{rN(t=>t?.id===e?null:t)},[]),[rM,rI]=(0,i.useState)(null),rT=(0,i.useCallback)(e=>{rI(t=>t?.id===e?null:t)},[]),rR=(0,i.useRef)(N);rR.current=N;let[rL,rA]=(0,i.useState)(null),rP=(0,i.useRef)(0),rz=(0,i.useCallback)(function(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[],n=arguments.length>2?arguments[2]:void 0;rP.current+=1,rA({id:rP.current,message:e,...n?{tail:n}:{},actions:t})},[]),[rW,rO]=(0,i.useState)(0),rF=(0,i.useRef)(0),rD=(0,i.useRef)(null),[rB,r_]=(0,i.useState)(0),rH=(0,i.useRef)(null),rU=(0,i.useRef)(null),rK=(0,i.useRef)(null),rq=(0,i.useRef)(null),[rZ,rV]=(0,i.useState)(0),rJ=(0,i.useCallback)(e=>{rq.current=e,rV(e=>e+1)},[]);(0,i.useEffect)(()=>{let e=rq.current;rq.current=null,e&&e_(document,e())},[rZ]);let{state:rY,loaded:rG,synced:rX,error:rQ,apply:r0,snapshot:r1,noteRevision:r2,refresh:r4}=function(){let[e,t]=(0,i.useState)(L),[n,r]=(0,i.useState)(!1),[s,o]=(0,i.useState)(!1),[a,l]=(0,i.useState)(null),c=(0,i.useRef)(e),d=(0,i.useRef)(e),u=(0,i.useRef)([]),p=(0,i.useRef)(Promise.resolve()),h=(0,i.useRef)(0),f=(0,i.useRef)(null),m=(0,i.useCallback)(()=>{let e=c.current;for(let{request:t,now:n}of u.current)e=function e(t,n,r){var i,s,o,a;let l=function(e){let t={};for(let[n,r]of Object.entries(e.sessions))t[n]={...r};let n={};for(let[t,r]of Object.entries(e.projects))n[t]={...r};let r={...e,sessions:t,projects:n};return e.projectOrder&&(r.projectOrder=[...e.projectOrder]),e.projectNames&&(r.projectNames={...e.projectNames}),e.removedProjects&&(r.removedProjects={...e.removedProjects}),r}(t),c=!1;switch(n.action){case"create-project":{let i=w(n.name);if(!i)return{state:l,changed:!1};let s=z(l,n.projectKey,i);if(S(l,n.projectKey)!==i)return{state:t,changed:!1};let o=e(l,{action:"pin-project",projectKey:n.projectKey,root:n.root,pinned:!0},r);return{state:o.state,changed:s||o.changed}}case"set":for(let e of n.ids){let t=v(l.sessions,e)?l.sessions[e]:void 0;A(l.sessions,e,function(e,t,n){let r={...e};return"pinned"in t?t.pinned?(void 0===r.pinnedAt||void 0!==r.archivedAt)&&(r.pinnedAt=n,delete r.archivedAt):delete r.pinnedAt:t.archived?(r.archivedAt=n,delete r.pinnedAt):delete r.archivedAt,r}(t,n,r))&&(c=!0)}break;case"restore":for(let e of n.entries){let t={};null!==e.pinnedAt&&(t.pinnedAt=e.pinnedAt),null!==e.archivedAt&&(t.archivedAt=e.archivedAt),A(l.sessions,e.id,t)&&(c=!0)}break;case"remove-project":{let{projectKey:e}=n;C(l,e)||(l.removedProjects={...l.removedProjects,[e]:r},c=!0),v(l.projects,e)&&(delete l.projects[e],c=!0);break}case"pin-project":{let{projectKey:e,root:t}=n,a=v(l.projects,e)?l.projects[e]:void 0;if(n.pinned?(C(l,e)&&(delete l.removedProjects[e],0===Object.keys(l.removedProjects).length&&delete l.removedProjects,c=!0),a?.root!==t&&(l.projects[e]={pinnedAt:r,root:t},c=!0)):a&&(delete l.projects[e],c=!0),(n.pinned?void 0===a:void 0!==a)&&l.projectOrder){let t,r,a=(i=l.projectOrder,s=l.projects,o=n.pinned,r=i.filter(t=>t!==e),o?(t=0,r.forEach((e,n)=>{v(s,e)&&(t=n+1)})):(t=r.findIndex(e=>!v(s,e)))<0&&(t=r.length),r.splice(t,0,e),r);M(a.length,$(a))&&P(l,a)&&(c=!0)}break}case"add-projects":P(l,function(e,t){let n=W(e,t),r=e.length,i=$(e),s=n.length;for(;s>0;){let e=E(n[s-1]);if(!M(r+1,i+e))break;r++,i+=e,s--}return[...n.slice(s),...e]}(l.projectOrder??[],n.keys))&&(c=!0);break;case"move-project":{let e,t,{projectKey:r,anchorKey:i,position:s,add:o}=n,d=l.projectOrder??[];P(l,function(e,t){let n=e.length,r=$(e);if(M(n,r))return e;let i=new Set;for(let s=e.length-1;s>=0&&!M(n,r);s--)t.has(e[s])||(i.add(s),n--,r-=E(e[s]));let s=e.filter((e,t)=>!i.has(t));return M(n,r)?s:I(s)}((a=[...W(d,o),...d],(e=a.filter(e=>e!==r)).includes(i)||e.unshift(i),t=e.indexOf(i),e.splice("before"===s?t:t+1,0,r),e),new Set([r,i,...o])))&&(c=!0);break}case"rename-project":{let e=w(n.name);void 0!==e&&z(l,n.projectKey,e)&&(c=!0)}}return{state:l,changed:c}}(e,t,n).state;d.current=e,t(e)},[]),g=(0,i.useCallback)(async e=>{let t=++h.current;f.current=t;try{let n=await fetch(ts,{cache:"no-store"}),i=await tl(n);if(t!==h.current)return;c.current=i,m(),e||l(null),r(!0),o(!0)}catch(e){if(t!==h.current)return;l(ta(e)),r(!0)}finally{f.current===t&&(f.current=null)}},[m]),x=(0,i.useCallback)(()=>g(!1),[g]),b=(0,i.useCallback)(e=>{"number"!=typeof e||!Number.isFinite(e)||u.current.length>0||e===c.current.revision||(null===f.current||f.current!==h.current)&&x()},[x]),y=(0,i.useCallback)(e=>{let t={request:e,now:Date.now()};u.current=[...u.current,t],m();let n=async()=>{let n=!1;try{let t=await fetch(ts,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(e),cache:"no-store"}),i=await tl(t);h.current++,c.current=i,l(null),r(!0),o(!0),n=!0}catch(e){l(ta(e))}return u.current=u.current.filter(e=>e!==t),m(),n||await g(!0),n},i=p.current.then(n,n);return p.current=i,i},[g,m]),j=(0,i.useCallback)(e=>(function(e,t){let n=new Set,r=[];for(let i of t){if(n.has(i))continue;n.add(i);let t=v(e.sessions,i)?e.sessions[i]:void 0;r.push({id:i,pinnedAt:t?.pinnedAt??null,archivedAt:t?.archivedAt??null})}return r})(d.current,e),[]);return(0,i.useEffect)(()=>{x()},[x]),(0,i.useMemo)(()=>({state:e,loaded:n,synced:s,error:a,refresh:x,noteRevision:b,apply:y,snapshot:j}),[e,n,s,a,x,b,y,j])}(),r8=(0,i.useCallback)(async e=>{let t=await r0(e);return t||rO(e=>e+1),t},[r0]),r3=(0,i.useCallback)((e,t)=>{r8({action:"pin-project",projectKey:e,root:t,pinned:!0})},[r8]),r6=(0,i.useRef)(null),r5=(0,i.useRef)(null);ti(r5);let r9=(0,i.useRef)(null),r7=(0,i.useRef)(null),ie=(0,i.useRef)(320),it=(0,i.useCallback)(()=>{let e=r7.current,t=r6.current;return e&&t&&0!==e.clientHeight?e.clientHeight-t.offsetHeight:window.innerHeight-36},[]),ir=(0,i.useCallback)(()=>Math.round(.45*it()),[it]),ii=(0,i.useCallback)(()=>it()-120,[it]),is=tr({ariaLabel:eX("sidebar.resizeFiles"),axis:"vertical",cssVariable:"--sidebar-files-height",defaultWidth:320,getDefaultWidth:ir,getMaxWidth:ii,growthDirection:"up",maxWidth:2e3,minWidth:220,persistClamp:!1,storageKey:"pi-web:sidebar-files-height",widthRef:ie}),io=is.panelRef,ia=(0,i.useCallback)(e=>{r7.current=e,io.current=e},[io]),il=is.reclampWidth;(0,i.useEffect)(()=>{let e=r7.current;if(!n$||!e||"u"<typeof ResizeObserver)return;let t=new ResizeObserver(()=>il());return t.observe(e),()=>t.disconnect()},[il,n$]),(0,i.useEffect)(()=>{let e=function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:eM();if(!e)return"sessions";try{return"files"===e.getItem(eb)?"files":"sessions"}catch{return"sessions"}}();"sessions"!==e&&nI(e);let t=function(){let e,t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:eM();if(!t)return{};try{let e=t.getItem(ey);if(null!==e)return eI(JSON.parse(e))}catch{return{}}try{let n=t.getItem(ej);if(null===n)return{};e=eI(JSON.parse(n))}catch{e={}}let n=Object.fromEntries(Object.entries(e).filter(e=>{let[,t]=e;return!t}));return eT(n,t),n}();Object.keys(t).length>0&&nH(t),function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:eM();if(!e)return!1;try{return"true"===e.getItem(ew)}catch{return!1}}()&&nJ(!0),function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:eM();if(!e)return!1;try{return"true"===e.getItem(eS)}catch{return!1}}()&&nG(!0);let n=function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:eM();if(!e)return[];try{let t=e.getItem(ek),n=null===t?[]:JSON.parse(t);if(!Array.isArray(n))return[];let r=n.filter(e=>"string"==typeof e&&""!==e);return[...new Set(r)].slice(-300)}catch{return[]}}();n.length>0&&nQ(n),function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:eM();if(!e)return!1;try{return"true"===e.getItem(eN)}catch{return!1}}()&&nA(!0),function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:eM();if(!e)return!1;try{return"true"===e.getItem(eC)}catch{return!1}}()&&ns(!0),function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:eM();if(e)for(let t of e$)try{e.removeItem?.(t)}catch{}}()},[]);let ic=(0,i.useCallback)(async function(){let e=arguments.length>0&&void 0!==arguments[0]&&arguments[0],t=arguments.length>1&&void 0!==arguments[1]&&arguments[1],n=arguments.length>2&&void 0!==arguments[2]&&arguments[2],r=++e4.current;try{e&&e3(!0);let i=await fetch(n?"/api/sessions?summary=1":t?"/api/sessions?force=1":"/api/sessions",{cache:"no-store"});if(!i.ok)throw Error(`HTTP ${i.status}`);let s=await i.json();if(r!==e4.current)return;e2.current=s.sessionListVersion,e1(s.sessions),n||e9(!0),nk.current||(ny.current=new Set(s.completionNotificationSuppressedSessionIds??[]),nh(e=>rt(e,s.runningSessionIds??[])),nm(e=>rt(e,s.awaitingInputSessionIds??[])));let o=new Set(s.sessions.filter(e=>e.relation?.kind!=="subagent").map(e=>e.id));nv(e=>{if(0===e.size)return e;let t=new Set([...e].filter(e=>o.has(e)));return t.size===e.size?e:t}),te(null)}catch(e){r===e4.current&&te(String(e))}finally{r===e4.current&&e3(!1)}},[]),id=(0,i.useRef)(!1);(0,i.useEffect)(()=>{let e=!id.current;id.current=!0;let t=!0;return e?ic(!0,!1,!0).then(()=>{t&&(nw.current=setTimeout(()=>{nw.current=null,t&&ic(!1,!0)},750))}):ic(),()=>{t=!1,nw.current&&(clearTimeout(nw.current),nw.current=null)}},[ic,ef]),(0,i.useEffect)(()=>{let e=!1;return fetch("/api/open-in-explorer").then(e=>e.ok?e.json():null).then(t=>{!e&&t&&nc(t)}).catch(()=>{}),()=>{e=!0}},[]),(0,i.useEffect)(()=>{nu(null)},[tt,eg]);let iu=(0,i.useCallback)(async()=>{let e=tt??eg;if(!e)return!1;try{let t=await fetch("/api/open-in-explorer",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({cwd:e})});if(t.ok)return nu(null),!1;let n=await t.json().catch(()=>({}));nu(n.error??`HTTP ${t.status}`)}catch(e){nu(e instanceof Error?e.message:String(e))}return!0},[tt,eg]),ip=eX(nl?.platform==="darwin"?"sidebar.openInFinder":nl?.platform==="win32"?"sidebar.openInExplorer":"sidebar.openInFileManager"),ih=nl?.supported===!1,im=nd?eX(n8[nd]??nd):null;(0,i.useEffect)(()=>{try{0===nx.size?window.localStorage.removeItem(n6):window.localStorage.setItem(n6,JSON.stringify([...nx]))}catch{}},[nx]),(0,i.useEffect)(()=>{let e=!1,t=null,n=null,r=()=>{t&&clearTimeout(t),t=null},i=async()=>{if(e||"visible"!==document.visibilityState)return;let s=new AbortController;n?.abort(),n=s;try{let t=await fetch("/api/agent/running",{cache:"no-store",signal:s.signal});if(!t.ok)return;let r=await t.json();if(e||n!==s)return;nk.current=!0,ny.current=new Set(r.completionNotificationSuppressedSessionIds??[]),nh(e=>rt(e,r.runningSessionIds??[])),nm(e=>rt(e,r.awaitingInputSessionIds??[])),r2(r.sessionUiStateRevision),r.sessionListVersion!==e2.current&&await ic()}catch{}finally{n===s&&(n=null),r(),e||"visible"!==document.visibilityState||(t=setTimeout(()=>void i(),2500))}},s=()=>{"visible"===document.visibilityState?i():(r(),n?.abort(),n=null)};return i(),document.addEventListener("visibilitychange",s),()=>{e=!0,r(),n?.abort(),document.removeEventListener("visibilitychange",s)}},[ic,r2]),(0,i.useEffect)(()=>{eZ?.(np)},[eZ,np]),(0,i.useEffect)(()=>{eJ?.(e0)},[e0,eJ]),(0,i.useEffect)(()=>{let e=nb.current,t=[...e].filter(e=>!np.has(e)&&e!==N),n=new Set(e0.filter(e=>e.relation?.kind==="subagent").map(e=>e.id)),r=t.filter(e=>!nj.current.has(e)&&!n.has(e)),i=[...np].filter(t=>!e.has(t));(r.length>0||i.length>0)&&nv(e=>{let t=new Set(e);return np.forEach(e=>t.delete(e)),r.forEach(e=>t.add(e)),t});let s=i.some(e=>!e0.some(t=>t.id===e));(t.length>0||s)&&ic(),r.length>0&&eq?.(),nb.current=np,nj.current=new Set([...np].filter(e=>ny.current.has(e)||n.has(e)))},[np,N,e0,ic,eq]),(0,i.useEffect)(()=>{N&&nv(e=>{if(!e.has(N))return e;let t=new Set(e);return t.delete(N),t})},[N]),(0,i.useEffect)(()=>{void 0!==eD&&t1(e=>e+1)},[eD]),(0,i.useEffect)(()=>{fetch("/api/home").then(e=>e.json()).then(e=>{e.home&&td(e.home)}).catch(()=>{})},[]);let ig=(0,i.useRef)(!1),ix=(0,i.useCallback)((e,t)=>({root:e,key:t}),[]),iv=(0,i.useCallback)(e=>{if(!e)return null;if(tk?.cwd===e)return ix(tk.root,tk.key);if(tO&&tO.forCwd===e||tO?.worktrees.some(t=>t.path===e))return ix(tO.projectRoot,tO.projectKey);let t=e0.find(t=>t.cwd===e||(t.projectRoot??t.cwd)===e);return t?ix(t.projectRoot??t.cwd,m(t)):ix(e,e)},[tk,tO,e0,ix]),ib=(0,i.useMemo)(()=>iv(tt),[iv,tt]),iy=(0,i.useRef)(null);(0,i.useEffect)(()=>{let e=iv(tt),t=iy.current;(t?.cwd!==tt||t.key!==(e?.key??null))&&(iy.current={cwd:tt,key:e?.key??null},ex?.(tt,e?.root??null,e?.key??null))},[tt,ex,iv]);let ij=(0,i.useRef)(null);(0,i.useEffect)(()=>{if(!eg){ij.current=null;return}eg!==ij.current&&(ij.current=eg,tn(eg))},[eg]);let[ik,iw]=(0,i.useState)(0);(0,i.useLayoutEffect)(()=>{if(!tt){tB(null),tY(null);return}let e=!1;return tY(tt),fetch(`/api/worktrees?cwd=${encodeURIComponent(tt)}`).then(e=>e.json()).then(t=>{if(!e){if(tY(null),t.error||!t.projectRoot)return void tB(null);t.isGit?tG.current?.delete(tt):tG.current?.add(tt),function(e,t){let n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:eM();if(!n||!e)return;let r=eL(n),i=r.indexOf(e);if(t?-1===i:-1!==i&&i===r.length-1)return;let s=r.filter(t=>t!==e);t||s.push(e);try{n.setItem(eE,JSON.stringify(s.slice(-50)))}catch{}}(tt,!!t.isGit),tB({forCwd:tt,projectRoot:t.projectRoot,projectKey:t.projectKey??t.projectRoot,isGit:t.isGit??!1,isTopLevel:t.isTopLevel??!1,currentWorktreePath:t.currentWorktreePath??null,worktrees:t.worktrees??[]})}}).catch(()=>{e||(tY(null),tB(null))}),()=>{e=!0}},[tt,ik,ef]),(0,i.useEffect)(()=>{if(0!==e0.length&&!ep&&null===tt){if(ec&&!ig.current){ig.current=!0;let e=e0.find(e=>e.id===ec);if(e){tn(e.cwd),T(e,!0);return}eh?.(),eu&&rz(eX("sidebar.sessionNotFound"))}let e=g(e0);e.length>0&&tn(e[0].root)}},[e0,tt,ec,eu,ep,T,eh,rz,eX]);let iS=tO?tO.worktrees.find(e=>e.path===tt)??(tO.forCwd===tt&&tO.currentWorktreePath?tO.worktrees.find(e=>e.path===tO.currentWorktreePath):void 0)??tO.worktrees.find(e=>e.isMain):void 0,iC=iS?.path??null,iN=(0,i.useCallback)(async function(e){let{remember:t=!0,purpose:n=tu}=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=(e??th).trim();if(r&&!tx){tv(!0),tg(null);try{let e=await fetch("/api/cwd/validate",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({cwd:r})}),i=await e.json().catch(()=>({}));if(!e.ok||i.error||!i.cwd||!i.projectRoot||!i.projectKey)return void tg(i.error??`HTTP ${e.status}`);if(t&&(re(i.cwd),tf(i.cwd)),tp(!1),"new-session"===n){let e=rU.current,t=rK.current;rU.current=null,rK.current=null,e?.({cwd:i.cwd,projectKey:i.projectKey,projectRoot:i.projectRoot}),rJ(()=>t?.isConnected?t:null);return}rK.current=null,r3(i.projectKey,i.projectRoot),tM({cwd:i.cwd,root:i.projectRoot,key:i.projectKey}),tn(i.cwd)}catch(e){tg(e instanceof Error?e.message:String(e))}finally{tv(!1)}}},[tu,th,tx,rJ,r3]),iE=(0,i.useCallback)(e=>{rK.current=e,tp("files"),tg(null)},[]),i$=(0,i.useCallback)(async function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"files";try{let t=await fetch("/api/default-cwd",{method:"POST"}),n=await t.json();n.cwd&&await iN(n.cwd,{remember:!1,purpose:e})}catch{}},[iN]),iM=(0,i.useRef)(i$);iM.current=i$;let iI=(0,i.useCallback)(async(e,t)=>{try{let n=await fetch("/api/worktrees",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({cwd:e.root,branch:t})}),r=await n.json().catch(()=>({}));if(!n.ok||r.error||!r.path)return{error:r.error??`HTTP ${n.status}`};let i=r.path;return tB(n=>n&&n.projectKey===e.key&&!n.worktrees.some(e=>e.path===i)?{...n,worktrees:[...n.worktrees,{path:i,branch:t,isMain:!1}]}:n),iw(e=>e+1),{path:i}}catch(e){return{error:e instanceof Error?e.message:String(e)}}},[]),iT=(0,i.useCallback)(async(e,t,n)=>{try{let r=await fetch("/api/worktrees",{method:"DELETE",headers:{"Content-Type":"application/json"},body:JSON.stringify({cwd:e.root,path:t,force:n})}),i=await r.json().catch(()=>({}));if(!r.ok){if(i.dirty&&!n)return"dirty";return{error:i.error??`HTTP ${r.status}`}}return iC===t&&tn(e.root),iw(e=>e+1),"removed"}catch(e){return{error:e instanceof Error?e.message:String(e)}}},[iC]),iR=(0,i.useCallback)(()=>iw(e=>e+1),[]),iL=(0,i.useCallback)(e=>{let{cwd:t,projectKey:n,projectRoot:r}=e;n&&r&&r3(n,r),n&&r&&tM({cwd:t,root:r,key:n}),tn(t)},[r3]),iA=(0,i.useCallback)((e,t,n,r)=>{e1(t=>t.some(t=>t.id===e.id)?t:[e,...t]),e.cwd&&tn(e.cwd),T(e,!1,t,n,r)},[T]),iP=(0,i.useCallback)(e=>{let{cwd:t,projectKey:n,projectRoot:r,carryComposer:i}=e;n&&r&&r3(n,r),n&&r&&tM({cwd:t,root:r,key:n}),tn(t),R?.("function"==typeof crypto.randomUUID?crypto.randomUUID():`${Date.now().toString(36)}-${Math.random().toString(36).slice(2)}-${Math.random().toString(36).slice(2)}`,t,n,i?{carryComposer:!0}:void 0)},[R,r3]),iz=(0,i.useRef)(iP);iz.current=iP;let iW=(0,i.useRef)(async()=>!1),iO=(0,i.useRef)(async()=>!1),iF=(0,i.useRef)(async()=>!1);(0,i.useImperativeHandle)(ea,()=>({restoreArchivedSession:e=>iW.current(e),deleteArchivedSession:e=>iO.current(e),deleteArchivedSessions:e=>iF.current(e),refreshArchive:r4,startNewSessionIn:e=>iz.current(e),openFolderForNewSession:(e,t)=>{rU.current=e,rK.current=t,tg(null),tp("new-session")},openDefaultDirectoryForNewSession:e=>{rU.current=e,rK.current=null,iM.current("new-session")},refreshWorktrees:iR,createWorktree:iI}),[iI,iR,r4]);let iD=(0,i.useCallback)(()=>{tt&&iP({cwd:tt})},[tt,iP]),iB=(0,i.useMemo)(()=>g(e0),[e0]),i_=(0,i.useMemo)(()=>l(e0),[e0]),iH=(0,i.useMemo)(()=>new Map(i_.map(e=>[e.root.id,e])),[i_]),iU=(0,i.useMemo)(()=>l(e0).filter(e=>q(e,rY,np)).map(e=>{let{root:t}=e,n=m(t),r=t.projectRoot||t.cwd;return{session:t,archivedAt:rY.sessions[t.id].archivedAt,project:{key:n,root:r,name:S(rY,n)??(ed(r)||r)}}}).sort((e,t)=>t.archivedAt-e.archivedAt||e.session.id.localeCompare(t.session.id)),[e0,rY,np]);(0,i.useEffect)(()=>{j?.({entries:iU,loaded:rG&&!e8,error:rQ})},[iU,rG,e8,rQ,j]);let iK=(0,i.useMemo)(()=>{let e=new Set,t=new Map;for(let n of i_){if(!q(n,rY,np))continue;for(let t of U(n))e.add(t);let r=m(n.root);t.set(r,(t.get(r)??0)+1)}return{ids:e,countByProject:t}},[i_,rY,np]),iq=(0,i.useMemo)(()=>(function(e,t,n){let r=new Map;for(let i of e){let e=m(i);if(!e)continue;let s=r.get(e);s||(s={running:0,unread:0},r.set(e,s)),t.has(i.id)&&s.running++,n.has(i.id)&&s.unread++}return r})(0===iK.ids.size?e0:e0.filter(e=>!iK.ids.has(e.id)),np,nx),[e0,iK,np,nx]),iZ=!!(tO?.isGit&&tO.isTopLevel&&tt&&ib?.key===tO.projectKey),iV=tt&&tO?.isGit&&ib?.key===tO.projectKey&&!iZ?{label:eX("sidebar.openRepoRoot"),title:eX("sidebar.openRepoRootTitle")}:null,iJ=!!(tt&&tJ===tt),iY=iV??(!iJ||iZ||tt&&tG.current?.has(tt)?null:{label:eX("sidebar.worktrees"),title:eX("sidebar.checkingWorktrees")}),iG=ib?.key??null,iX=ib?.root??null,iQ=(0,i.useMemo)(()=>iG&&iX?{key:iG,root:iX}:null,[iG,iX]),i0=(0,i.useRef)(new Set);(0,i.useEffect)(()=>{if(e8||!rX||!e6||!iQ)return;let{key:e,root:t}=iQ;C(rY,e)||Object.hasOwn(rY.projects,e)||!(tk?.cwd===tt||tO?.forCwd===tt||e0.some(e=>e.cwd===tt))||i0.current.has(e)||(i0.current.add(e),r3(e,t))},[e8,rX,e6,iQ,rY,tk,tt,tO,e0,r3]);let i1=(0,i.useMemo)(()=>0===nU.size?n_:Object.fromEntries([...[...nU].filter(e=>!Object.hasOwn(n_,e)).map(e=>[e,!0]),...Object.entries(n_)]),[n_,nU]),i2=(0,i.useMemo)(()=>(function(e){let{uiState:t,runningIds:n,currentProject:r}=e,i=l(e.sessions),s=X(t,r),o=0,a=[],c=new Map,d=new Map,u=new Set;for(let e of i){if(q(e,t,n)){o++;continue}s.noteFamily(e);let r=G(e),i=function(e){let t=Date.parse(e);return Number.isNaN(t)?-1/0:t}(e.latestModified);if(d.set(r,Math.max(d.get(r)??-1/0,i)),e.root.transient||u.add(r),Z(e,t,n)){a.push(e);continue}let l=c.get(r);l?l.push(e):c.set(r,[e])}let p=[];if(a.length>0){let r=e=>_(B(t,e.root.id)?.pinnedAt)??0,i=a.map((e,t)=>({family:e,index:t})).sort((e,t)=>H(r(e.family),r(t.family))||e.index-t.index).map(e=>{let{family:t}=e;return t}),o=0,l=0;for(let t of i)K(t,n)&&o++,K(t,e.unreadIds)&&l++;if(p.push({kind:"pinned-header",key:"pinned-header",count:i.length,collapsed:e.pinnedCollapsed,running:o,unread:l}),!e.pinnedCollapsed){let{visible:t,revealed:n,nextShown:r}=ee(i,8,et(e.moreShown,D),e);for(let n of t)p.push(Q(n,"pinned",s.get(G(n)),e,null));let o=er(i.length,t.length,n);o&&p.push({kind:"pinned-more",key:"pinned-more",...o,nextShown:r})}p.push({kind:"spacer",key:"pinned-spacer"})}let h=[...c.keys()],f=new Set(h),m=e=>{f.has(e)||(f.add(e),h.push(e))};for(let e of(r&&m(r.key),Object.keys(t.projects)))m(e);let g=h.filter(e=>!C(t,e)).map(e=>s.get(e)),x=new Map;(t.projectOrder??[]).forEach((e,t)=>{x.has(e)||x.set(e,t)});let v=e=>e.pinned||u.has(e.key),b=(e,t)=>[...e.filter(e=>{let{project:t}=e;return!x.has(t.key)}).sort((e,n)=>Number(v(e.project))-Number(v(n.project))||t(e,n)),...e.filter(e=>{let{project:t}=e;return x.has(t.key)}).sort((e,t)=>(x.get(e.project.key)??0)-(x.get(t.project.key)??0))].map(e=>{let{project:t}=e;return t}),y=e=>d.get(e.key)??(e.current?1/0:-1/0),j=e=>_(t.projects[e.key]?.pinnedAt)??0,k=g.map((e,t)=>({project:e,index:t})),w=b(k.filter(e=>{let{project:t}=e;return t.pinned}),(e,t)=>H(j(t.project),j(e.project))||e.index-t.index),S=b(k.filter(e=>{let{project:t}=e;return!t.pinned}),(e,t)=>H(y(e.project),y(t.project))||e.index-t.index),N=[...w,...S],E=e=>e.filter(e=>!x.has(e.key)).map(e=>e.key),$={pinned:E(w),other:E(S)},M=N.filter(e=>!x.has(e.key)&&v(e)).map(e=>e.key);for(let t of(e.sections&&p.push({kind:"section",key:"section-projects",label:"projects"}),N)){let r=c.get(t.key)??[],i=J(t,e.groupExpansion),s=0,o=0;for(let t of r)K(t,n)&&s++,K(t,e.unreadIds)&&o++;if(p.push({kind:"group",key:`group:${t.key}`,project:t,expanded:i,running:s,unread:o}),i)if(0===r.length)p.push({kind:"group-empty",key:`empty:${t.key}`,project:t});else{let{visible:n,revealed:i,nextShown:s}=ee(r,6,et(e.moreShown,t.key),e);for(let r of n)p.push(Q(r,"group",t,e,null));let o=er(r.length,n.length,i);o&&p.push({kind:"group-more",key:`more:${t.key}`,projectKey:t.key,...o,nextShown:s})}}if(N.length>0&&p.push({kind:"spacer",key:"footer-spacer"}),e.sections||p.push({kind:"footer-open",key:"footer-open"}),e.sections){let r=i.filter(e=>!e.root.transient&&!q(e,t,n)).slice(0,10);if(r.length>0&&(p.push({kind:"section",key:"section-recents",label:"recents",collapsed:!!e.recentsCollapsed}),!e.recentsCollapsed))for(let t of r)p.push({kind:"recent",key:`recent:${t.root.id}`,family:t,project:s.get(G(t)),status:Y(t,e)})}return o>0&&p.push({kind:"footer-archived",key:"footer-archived",count:o}),{rows:p,projects:N,archivedCount:o,unorderedKeysByBand:$,projectKeysToRecord:M}})({sections:!0,recentsCollapsed:nY,sessions:e0,uiState:rY,runningIds:np,awaitingIds:nf,unreadIds:nx,selectedSessionId:N,currentProject:iQ,groupExpansion:i1,moreShown:nq,pinnedCollapsed:nV}),[e0,rY,np,nf,nx,N,iQ,i1,nq,nV,nY]),i4=(0,i.useMemo)(()=>b?i2.rows.filter(e=>"footer-archived"!==e.kind):i2.rows,[i2.rows,b]),i8=rg.archiveMounted,i3=(0,i.useMemo)(()=>new Set(nX),[nX]),i6=(0,i.useMemo)(()=>i8?function(e){let{uiState:t,runningIds:n}=e,r=X(t,e.currentProject),i=new Map;for(let s of l(e.sessions)){if(!q(s,t,n))continue;r.noteFamily(s);let e=_(B(t,s.root.id)?.archivedAt)??0,o=G(s),a=i.get(o);a?(a.families.push({family:s,archivedAt:e}),a.newest=Math.max(a.newest,e)):i.set(o,{newest:e,families:[{family:s,archivedAt:e}]})}let s=[];for(let{key:t,group:n}of[...i.entries()].map((e,t)=>{let[n,r]=e;return{key:n,group:r,index:t}}).sort((e,t)=>H(e.group.newest,t.group.newest)||e.index-t.index)){let i=r.get(t),o=!e.collapsed?.has(t);if(s.push({kind:"archive-group",key:`archive:${t}`,project:i,count:n.families.length,expanded:o}),o)for(let{family:t,archivedAt:r}of n.families.map((e,t)=>({...e,index:t})).sort((e,t)=>H(e.archivedAt,t.archivedAt)||e.index-t.index))s.push(Q(t,"archive",i,e,r))}return s}({sessions:e0,uiState:rY,runningIds:np,awaitingIds:nf,unreadIds:nx,selectedSessionId:N,currentProject:iQ,collapsed:i3}):[],[i8,e0,rY,np,nf,nx,N,iQ,i3]),i5=(0,i.useMemo)(()=>i6.flatMap(e=>"archive-group"===e.kind?[e]:[]),[i6]),i9=(0,i.useMemo)(()=>new Map(i2.projects.map(e=>[e.key,e])),[i2.projects]),i7=(0,i.useRef)(new Set),se=i2.projectKeysToRecord,st=rY.projectOrder?.length??0;(0,i.useEffect)(()=>{if(e8||!rX||!e6||st>=1e3)return;let e=i7.current,t=function(e,t){let n=e.length;for(;n>0&&e.length-n<500&&!t.has(e[n-1]);)n--;return e.slice(n)}(se,e);if(0!==t.length){for(let n of t)e.add(n);r0({action:"add-projects",keys:t})}},[r0,e8,se,e6,st,rX]);let sn=rY.projectNames,sr=(0,i.useMemo)(()=>(function(e,t,n){let r=new Set,i=[];for(let s of[...e,...t])r.has(s.key)||(r.add(s.key),i.push(eW(s,n)));return i})(i2.projects,iB,sn),[i2.projects,iB,sn]),si=(0,i.useMemo)(()=>{if(!tt||!ib)return null;let e=iZ&&null!==tO;return{cwd:tt,project:eW(ib,sn),worktrees:e?tO.worktrees.map(e=>{let{path:t,branch:n,isMain:r}=e;return{path:t,branch:n,isMain:r}}):null,currentWorktreePath:e?iC:null,projects:sr}},[tt,ib,iZ,tO,iC,sr,sn]),ss=(0,i.useRef)(si);ss.current=si;let so=si?JSON.stringify([si.cwd,si.project.key,si.project.root,si.project.alias??null,si.currentWorktreePath,si.worktrees?.map(e=>[e.path,e.branch,e.isMain])??null,si.projects.map(e=>[e.key,e.root,e.alias??null])]):"";(0,i.useEffect)(()=>{el?.(ss.current)},[so,el]);let sa=(0,i.useRef)(iG);(0,i.useLayoutEffect)(()=>{let e=sa.current;if(sa.current=iG,null===e||e===iG)return;let t=i9.get(e);nK(e=>!t||t.current||t.pinned||e.has(t.key)||Object.hasOwn(n_,t.key)?e:new Set(e).add(t.key))},[iG,n_,i9]);let sl=(0,i.useCallback)((e,t)=>{nH(e),eT(e),nK(e=>(function(e,t){if(0===e.size)return e;if(null===t)return new Set;if(!t.some(t=>e.has(t)))return e;let n=new Set(e);for(let e of t)n.delete(e);return n})(e,t)),nZ(n=>(function(e,t,n){let r=(n??Object.keys(t)).filter(n=>!1===t[n]&&Object.hasOwn(e,n));if(0===r.length)return e;let i={...e};for(let e of r)delete i[e];return i})(n,e,t))},[]),sc=(0,i.useCallback)(()=>(nW.current?.hidden?nz:nP).current??r9.current,[]),sd=(0,i.useCallback)(e=>{let t=nW.current;for(let n of["pinned","group","archive"]){let r=CSS.escape(`session:${n}:${e}`),i=t?.querySelector(`[data-row-key="${r}"] .session-tree-main`);if(i&&i.getClientRects().length>0)return i}return sc()},[sc]),su=(0,i.useCallback)(e=>{let t=CSS.escape(`group:${e}`),n=nW.current?.querySelector(`[data-row-key="${t}"] .session-tree-group-toggle`);return n&&n.getClientRects().length>0?n:sc()},[sc]);(0,i.useEffect)(()=>{rW!==rF.current&&(rF.current=rW,rz(eX("sidebar.uiStateFailed",{error:rQ??""})))},[rW,rQ,rz,eX]);let sp=(0,i.useCallback)((e,t,n)=>{let r=i9.get(e),i=i9.get(t);r&&i&&r!==i&&r.pinned===i.pinned&&(r8({action:"move-project",projectKey:e,anchorKey:t,position:n,add:i2.unorderedKeysByBand[r.pinned?"pinned":"other"].slice(-500)}),rE.current+=1,rN({id:rE.current,at:Date.now(),rowKey:`group:${e}`}))},[r8,i2.unorderedKeysByBand,i9]),sh=(0,i.useCallback)(e=>{n$||(nI(e),function(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:eM();if(t)try{t.setItem(eb,e)}catch{}}(e))},[n$]),sf=(0,i.useCallback)(e=>{e!==rp.current&&ra(e?"out":"in"),nA(e),function(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:eM();if(t)try{t.setItem(eN,String(e))}catch{}}(e)},[ra]),sm=(0,i.useCallback)(e=>{let t=e.target;t instanceof Element&&nB.current.set(t,t.scrollTop)},[]);(0,i.useLayoutEffect)(()=>{for(let e of[nW.current,nF.current])if(e&&!e.hidden)for(let t of e.querySelectorAll(".session-tree-scroll, .sidebar-files-scroll")){let e=nB.current.get(t);void 0!==e&&t.scrollTop!==e&&(t.scrollTop=e)}},[nM,n2,n$,nR]);let sg=(0,i.useCallback)(e=>{if(rS(null),b)return void b(e);if(rf(!0),t5(!1),sh("sessions"),void 0!==e){if(nX.includes(e)){let t=nX.filter(t=>t!==e);nQ(t),eR(t)}rE.current+=1,rI({id:rE.current,at:Date.now(),rowKey:`archive:${e}`,block:"start"})}},[nX,b,rf,sh]),sx=(0,i.useRef)(null),sv=(0,i.useRef)(n2),sb=(0,i.useRef)(null);(0,i.useEffect)(()=>{if(sv.current===n2)return;if(sv.current=n2,n2)return void rr(sx.current);let e=nW.current?.querySelector('[data-row-key="footer-archived"] button'),t=e&&e.getClientRects().length>0?e:sc();rr(t),t&&document.activeElement===t&&(sb.current=t)},[n2,sc]);let sy=(0,i.useRef)(null),sj=(0,i.useRef)(n$);(0,i.useLayoutEffect)(()=>{if(sj.current===n$)return;sj.current=n$;let e=sy.current;e&&(!e.isConnected||0===e.getClientRects().length)&&rr(sc())},[n$,sc]);let sk=e=>{if("ArrowLeft"!==e.key&&"ArrowRight"!==e.key&&"Home"!==e.key&&"End"!==e.key)return;e.preventDefault();let t="Home"===e.key?"sessions":"End"===e.key||"sessions"===nM?"files":"sessions";sh(t),("sessions"===t?nP:nz).current?.focus()},sw=(0,i.useCallback)((e,t)=>{r8({action:"set",ids:[e.root.id],pinned:t})},[r8]),sS=(0,i.useCallback)((e,t)=>{nv(n=>{let r=new Set(n);if(t)for(let t of U(e))r.delete(t);else r.add(e.root.id);return r})},[]),sC=(0,i.useCallback)(e=>{0!==e.length&&nv(t=>{let n=new Set(t);for(let t of e)t!==rR.current&&n.add(t);return n.size===t.size?t:n})},[]),sN=(0,i.useCallback)(e=>{let t=e.filter(e=>!e.root.transient);if(0===t.length)return;let n=r1(t.map(e=>e.root.id)),r=t.flatMap(e=>U(e)),i=r.filter(e=>nx.has(e));for(let e of O(t))r8({action:"set",ids:e.map(e=>e.root.id),archived:!0}).then(t=>{if(t||0===i.length)return;let n=new Set(e.flatMap(e=>U(e)));sC(i.filter(e=>n.has(e)))});i.length>0&&nv(e=>{let t=new Set(e);for(let e of r)t.delete(e);return t}),rz(1===t.length?eX("sidebar.archivedToast",{title:rn(nO(t[0].root),28)}):eX("sidebar.archivedManyToast",{count:t.length}),[{id:"undo",label:eX("sidebar.undo"),onClick:()=>{for(let e of O(n))r8({action:"restore",entries:e});sC(i),rJ(()=>sd(t[0].root.id))}},{id:"view",label:eX("sidebar.viewArchive"),onClick:()=>sg()}])},[r8,rJ,sd,sg,sC,rz,r1,eX,nx]),sE=(0,i.useCallback)(e=>{U(e).some(e=>np.has(e))||sN([e])},[sN,np]),s$=(0,i.useCallback)(e=>{if(0===e.length)return;let t=e.map(e=>e.root.id),n=r1(t);for(let e of O(t))r8({action:"set",ids:e,archived:!1});rz(1===e.length?eX("sidebar.restoredToast",{title:rn(nO(e[0].root),28)}):eX("sidebar.restoredManyToast",{count:e.length}),[{id:"undo",label:eX("sidebar.undo"),onClick:()=>{for(let e of O(n))r8({action:"restore",entries:e});rJ(()=>sd(e[0].root.id))}}])},[r8,sd,rJ,rz,r1,eX]),sM=(0,i.useCallback)(e=>s$([e]),[s$]);iW.current=async e=>{let t=iH.get(e);if(!t||!q(t,rY,np))return!0;let n=await r8({action:"set",ids:[t.root.id],archived:!1});return n&&rz(eX("sidebar.restoredToast",{title:rn(nO(t.root),28)})),n};let sI=(0,i.useCallback)(e=>{e.root.transient||(rk(null),rv(e.root.id))},[]),sT=(0,i.useCallback)(async(e,t)=>{let n=e.root,r=nO(n),i=t.trim();if(rv(e=>e===n.id?null:e),t!==r&&i!==(n.name??""))try{await fetch(`/api/sessions/${encodeURIComponent(n.id)}`,{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify({name:i})}),ic()}catch{}},[ic]),sR=(0,i.useCallback)(e=>{ry(e.key)},[]),sL=(0,i.useCallback)(e=>{ry(t=>t===e?null:t),rJ(()=>su(e))},[rJ,su]),sA=(0,i.useCallback)((e,t)=>{sL(e.key);let n=function(e,t){let n=t.trim();if(n===e.name)return null;let r=""===n||n===V(e.root);return r&&null===e.customName?null:{action:"rename-project",projectKey:e.key,name:r?null:n}}(e,t);n&&r8(n)},[r8,sL]),sP=(0,i.useCallback)(async e=>{let t=e.root;if(!t.transient){rk(e=>e===t.id?null:e);try{await fetch(`/api/sessions/${encodeURIComponent(t.id)}`,{method:"DELETE"}),em?.(t.id),ic()}catch{}}},[ic,em]),sz=(0,i.useCallback)((e,t)=>{t?sP(e):(rv(null),rk(e.root.id))},[sP]),sW=(e,t)=>{if(sb.current=null,n2){let e=nW.current?.querySelector(".sidebar-sessions-view .session-tree-scroll");e&&nB.current.delete(e),rf(!1)}let n=m(e);if(Object.hasOwn(i1,n)&&!1===i1[n]){let e={...n_};delete e[n],e[n]=!0,sl(e,[n])}iA(e,void 0,void 0,{keepSidebarOpen:null!==t}),ic();let r=t?`[data-row-key="${CSS.escape(t)}"]`:null;rE.current+=1,rN({id:rE.current,at:Date.now(),rowKey:`session:group:${e.id}`,takeFocusFrom:e=>null!==r&&null!==e.closest(r)||e===sb.current})},sO=(0,i.useRef)(sW);sO.current=sW;let sF=(0,i.useRef)(new Set),sD=(0,i.useCallback)(async e=>{let t=e.family.root;if(t.transient||sF.current.has(t.id))return;sF.current.add(t.id);let n=rR.current;try{var r;let i,s,o=await fetch(`/api/sessions/${encodeURIComponent(t.id)}/fork`,{method:"POST",headers:{"Content-Type":"application/json"},body:"{}"}),a=await o.json().catch(()=>({}));if(!o.ok||!a.session){let{key:e,params:t}=function(e,t){switch(e){case"not_found":return{key:"sidebar.forkNotFound"};case"unsaved":return{key:"sidebar.forkUnsaved"};case"empty":return{key:"sidebar.forkEmpty"};case"subagent":case"request-denied":return{key:"sidebar.forkUnavailable"};default:return{key:"sidebar.forkFailed",params:{error:t}}}}(a.code,a.error??`HTTP ${o.status}`);rz(eX(e,t)),"not_found"===a.code&&ic();return}let l=a.session,c=nO(l),{head:d,tail:u}=(r=eX("sidebar.forkedToast",{title:c}),((s=(i=ev(c)?.suffix)?r.lastIndexOf(i):-1)>0?{head:r.slice(0,s),tail:r.slice(s)}:null)??{head:eX("sidebar.forkedToast",{title:rn(c,28)}),tail:void 0});if(rR.current!==n){e1(e=>e.some(e=>e.id===l.id)?e:[l,...e]),nv(e=>new Set(e).add(l.id)),ic(),rz(d,[{id:"open",label:eX("sidebar.open"),onClick:()=>sO.current(l,null)}],u);return}sO.current(l,e.key),rz(d,[],u)}catch(e){rz(eX("sidebar.forkFailed",{error:e instanceof Error?e.message:String(e)}))}finally{sF.current.delete(t.id)}},[ic,rz,eX]),sB=(0,i.useCallback)(e=>{e.root.transient||window.open(c(e.root.id),"_blank","noopener,noreferrer")},[]),s_=(0,i.useCallback)((e,t,n)=>{e.status.transient||rS({kind:"row",row:e,anchor:t,opener:n})},[]),sH=(0,i.useCallback)((e,t)=>{let n=e.family.root;if(n.id===rx||n.id===rj)return;if(function(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:window,n=new CustomEvent("pi-web:session-row-contextmenu",{cancelable:!0,detail:e});return!t.dispatchEvent(n)}({id:n.id,path:n.path,cwd:n.cwd,name:n.name,clientX:t.clientX,clientY:t.clientY,refresh:()=>{ic()}})){t.preventDefault(),t.stopPropagation();return}if(n.transient)return;t.preventDefault();let r=t.currentTarget instanceof HTMLElement?t.currentTarget:null,i=0===t.clientX&&0===t.clientY&&r?ri(r,"start"):{kind:"point",x:t.clientX,y:t.clientY},s=document.activeElement,o=s instanceof HTMLElement&&null!==r&&r.contains(s);rH.current=!o&&s instanceof HTMLElement&&s!==document.body?s:null,s_(e,i,o?s:null)},[rj,ic,s_,rx]),sU=(0,i.useMemo)(()=>({sessions:e0,uiState:rY,runningIds:np,awaitingIds:nf,unreadIds:nx,selectedSessionId:N}),[e0,rY,np,nf,nx,N]),sK=(0,i.useCallback)((e,t)=>{let n=ei(sU,e.key,6048e5,Date.now()).length;rS({kind:"group",project:e,olderCount:n,anchor:ri(t,"end"),opener:t})},[sU]),sq=(0,i.useCallback)(e=>{sN(ei(sU,e.key,6048e5,Date.now()).flatMap(e=>{let t=iH.get(e);return t?[t]:[]}))},[sN,iH,sU]),sZ=(0,i.useCallback)((e,t)=>{rS(n=>n?.kind==="group"&&n.project.key===e?{...n,askDelete:t}:n)},[]),sV=(0,i.useRef)(new Set),sJ=(0,i.useCallback)(async(e,t,n)=>{if(rS(null),0===t.length)return!0;if(sV.current.has(e))return!1;sV.current.add(e),rz(eX("sidebar.deletingSessions"));try{let e=await eA(t,fetch);for(let t of e.deleted)em?.(t);if(await ic(),rJ(n),null!==e.error)return rz(eX("sidebar.deleteFailed",{error:e.error})),!1;let r=e.deletedRoots.length,i=[1===r?eX("sidebar.deletedOneToast"):eX("sidebar.deletedManyToast",{count:r})];return e.running.length>0&&i.push(eX("sidebar.keptRunningToast",{count:e.running.length})),rz(i.join(" \xb7 ")),t.every(t=>e.deletedRoots.includes(t))}finally{sV.current.delete(e)}},[rJ,ic,em,rz,eX]);iF.current=async e=>{let t=[...new Set(e)],n=t.flatMap(e=>{let t=iH.get(e);return t?[t]:[]}),r=n.filter(e=>q(e,rY,np)),i=r.map(e=>e.root.id),s=await sJ(1===t.length?`archive-session:${t[0]}`:"archive-clear",i,()=>null);return await r4(),s&&r.length===n.length},iO.current=e=>iF.current([e]);let sY=(0,i.useCallback)(e=>{let{ids:t}=es(sU,e.key);sJ(`project:${e.key}`,t,()=>su(e.key))},[sJ,su,sU]),sG=(0,i.useCallback)(e=>{let t=null===e?null:CSS.escape(`archive:${e}`),n=null===t?null:nW.current?.querySelector(`[data-row-key="${t}"] .session-tree-group-toggle`);if(n&&n.getClientRects().length>0)return n;let r=sx.current;return r&&r.getClientRects().length>0?r:sc()},[sc]),sX=(0,i.useCallback)(e=>e.flatMap(e=>{let t=iH.get(e);return t?[t]:[]}),[iH]),sQ=(0,i.useCallback)((e,t)=>{rS({kind:"archive-group",project:e,anchor:ri(t,"end"),opener:t})},[]),s0=(0,i.useCallback)(e=>{rS(t=>t?.kind==="archive"?null:{kind:"archive",anchor:ri(e,"end"),opener:e})},[]),s1=(0,i.useCallback)(e=>{rS(t=>t?.kind==="archive"?{...t,askDelete:e}:t?.kind==="archive-group"?{...t,askDelete:void 0!==e}:t)},[]),s2=(0,i.useCallback)(e=>(function(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=[];for(let r of l(e.sessions))if((void 0===t.projectKey||G(r)===t.projectKey)&&q(r,e.uiState,e.runningIds)){if(void 0!==t.archivedBefore){let n=_(B(e.uiState,r.root.id)?.archivedAt);if(null===n||n>=t.archivedBefore)continue}n.push(r.root.id)}return n})(sU,"all"===e?{}:"old"===e?{archivedBefore:Date.now()-2592e6}:e),[sU]),s4=(0,i.useCallback)(e=>{let t=s2(e);sJ("string"==typeof e?`archive:${e}`:`archive-project:${e.projectKey}`,t,()=>"string"==typeof e?sG(null):sG(e.projectKey))},[s2,sG,sJ]),s8=(0,i.useCallback)(e=>{nQ(e),eR(e)},[]),s3=(0,i.useCallback)(e=>{let t=i5.map(e=>e.project.key),n=nX.filter(e=>!t.includes(e));s8(e?n:[...n,...t])},[nX,i5,s8]),s6=(0,i.useCallback)((e,t)=>{let n=nX.includes(e);if(t)return void s3(n);let r=nX.filter(t=>t!==e);s8(n?r:[...r,e])},[nX,s8,s3]),s5=(0,i.useCallback)(e=>{rS(null),iP(eP(e,tt))},[tt,iP]),s9=(0,i.useCallback)(()=>rS(null),[]);(0,i.useEffect)(()=>{if(null!==rw)return;let e=rH.current;if(rH.current=null,!e?.isConnected)return;let t=document.activeElement;t&&t!==document.body||e.focus({preventScroll:!0})},[rw]);let s7=n2?i6:i2.rows;(0,i.useEffect)(()=>{rw?.kind!=="row"||s7.some(e=>e.key===rw.row.key)||rS(null),rw?.kind!=="archive-group"||s7.some(e=>e.key===`archive:${rw.project.key}`)||rS(null)},[rw,s7]);let oe=rw?.kind==="row"?s7.find(e=>"session"===e.kind&&e.key===rw.row.key)??rw.row:null,ot=(0,i.useCallback)(e=>{iA(e.root)},[iA]),on=(0,i.useCallback)(e=>{let t={...n_};for(let n of i2.projects)delete t[n.key],t[n.key]=e(n);sl(t,null)},[n_,i2.projects,sl]),or=(0,i.useCallback)((e,t)=>{let n=i9.get(e);if(!n)return;let r=!J(n,i1);if(t)return void on(()=>r);let i={...n_};delete i[e],i[e]=r,sl(i,[e])},[n_,i9,sl,on,i1]),oi=(0,i.useCallback)(e=>{let t=i2.rows.find(t=>"group-more"===t.kind&&t.projectKey===e||"pinned-more"===t.kind&&e===D);(t?.kind==="group-more"||t?.kind==="pinned-more")&&nZ(n=>{var r;return r=t.nextShown,{...n,[e]:Math.max(et(n,e),Math.floor(r))}})},[i2.rows]),os=(0,i.useCallback)(e=>{nZ(t=>en(t,e))},[]),oo=(0,i.useCallback)(e=>{rD.current=e,r_(e=>e+1),n$?sf(!1):sh("files")},[sf,n$,sh]),oa=nE||(n$?rm.open:"files"===nM);(0,i.useEffect)(()=>{let e=rD.current;e&&oa&&(rD.current=null,"file-search"===e?document.getElementById("file-search-input")?.focus({preventScroll:!0}):tW.current?.button("project")?.focus({preventScroll:!0}))},[oa,rB]);let ol=e=>{let{heading:t,headingTitle:n,notes:i,count:s,onConfirm:o,onCancel:a}=e;return(0,r.jsxs)("div",{className:"sidebar-menu-question",children:[(0,r.jsx)("div",{className:"sidebar-menu-header",title:n,children:t}),i.map(e=>(0,r.jsx)("p",{className:"sidebar-menu-question-text",children:e},e)),(0,r.jsxs)("div",{className:"sidebar-menu-question-buttons",children:[(0,r.jsx)("button",{type:"button",className:"sidebar-menu-question-confirm",disabled:0===s,onClick:o,children:eX("sidebar.deleteCount",{count:s})}),!eQ&&(0,r.jsx)("button",{type:"button",className:"sidebar-menu-question-cancel","data-sidebar-menu-autofocus":"",onClick:a,children:eX("sidebar.cancel")})]})]})},oc=(e,t)=>ol({heading:t?eX("sidebar.deleteArchivedInProjectHeading",{name:t.name}):eX("old"===e?"sidebar.deleteOldArchivedHeading":"sidebar.deleteAllArchivedHeading"),headingTitle:t?.root,notes:[eX("sidebar.deleteArchivedMessage")],count:s2(e).length,onConfirm:()=>s4(e),onCancel:()=>s1(void 0)}),od="",ou=null;if(rw?.kind==="row"&&oe)h=nO(oe.family.root),od=eX("sidebar.sessionActions"),x=(function(e,t){if(t.transient)return[];let n={kind:"action",id:"open-new-tab",shortcut:"T"};return"archive"===e?[{kind:"action",id:"unarchive",shortcut:"A"},{kind:"action",id:"pin",shortcut:"P"},{kind:"action",id:"rename",shortcut:"R"},{kind:"action",id:"fork",shortcut:"F"},n,{kind:"separator"},{kind:"action",id:"delete",shortcut:"D"}]:[{kind:"action",id:"pinned"===e?"unpin":"pin",shortcut:"P"},{kind:"action",id:"rename",shortcut:"R"},{kind:"action",id:"fork",shortcut:"F"},{kind:"action",id:t.unread?"mark-read":"mark-unread",shortcut:"U"},t.running?{kind:"action",id:"archive",shortcut:"A",disabledReason:"running"}:{kind:"action",id:"archive",shortcut:"A"},n,{kind:"separator"},{kind:"action",id:"delete",shortcut:"D"}]})(oe.context,oe.status).map((e,t)=>{if("separator"===e.kind)return{type:"separator",id:`separator-${t}`};let n=eX(n9[e.id]);return{type:"item",id:e.id,label:"delete"===e.id?`${n}…`:n,icon:function(e){switch(e){case"open-new-tab":return(0,r.jsx)(tT,{});case"pin":return(0,r.jsx)(tN,{});case"unpin":return(0,r.jsx)(tE,{});case"rename":return(0,r.jsx)(tL,{});case"fork":return(0,r.jsx)(tI,{});case"mark-read":return(0,r.jsx)(tP,{});case"mark-unread":return(0,r.jsx)(tA,{});case"archive":return(0,r.jsx)(tS,{});case"unarchive":return(0,r.jsx)(tC,{});case"delete":return(0,r.jsx)(tR,{})}}(e.id),shortcut:e.shortcut,danger:"delete"===e.id,disabled:void 0!==e.disabledReason,disabledReason:"running"===e.disabledReason?eX("sidebar.cannotArchiveRunning"):void 0,onSelect:t=>{let{shiftKey:n}=t;return((e,t,n)=>{let{family:r}=t;switch(e){case"open-new-tab":sB(r);break;case"pin":sw(r,!0);break;case"unpin":sw(r,!1);break;case"rename":sI(r);break;case"fork":sD(t);break;case"mark-read":sS(r,!0);break;case"mark-unread":sS(r,!1);break;case"archive":sE(r);break;case"unarchive":sM(r);break;case"delete":sz(r,n)}})(e.id,oe,n)}}});else if(rw?.kind==="group"){let e,t,i,o,a,l=i9.get(rw.project.key)??rw.project;h=l.name,od=eX("sidebar.projectActions",{name:l.name}),n=l,s=rw.olderCount,e=iK.countByProject.get(n.key)??0,t=es(sU,n.key),i=eo(i2.projects,n.key,"up"),o=eo(i2.projects,n.key,"down"),a=(null===n.customName?["rename-project"]:["rename-project","reset-project-name"]).map(e=>"rename-project"===e?{type:"item",id:e,label:eX("sidebar.renameProject"),icon:(0,r.jsx)(tL,{}),onSelect:()=>sR(n)}:{type:"item",id:e,label:eX("sidebar.resetProjectName"),icon:(0,r.jsx)(tC,{}),onSelect:()=>{r8({action:"rename-project",projectKey:n.key,name:null})}}),x=[{type:"item",id:"remove-project",label:eX("sidebar.removeProject"),title:eX("sidebar.removeProjectHint"),icon:(0,r.jsx)(tE,{}),onSelect:()=>{r8({action:"remove-project",projectKey:n.key})}},...a,{type:"item",id:"open-in-files",label:eX("sidebar.openInFilesTab"),icon:(0,r.jsx)(tF,{}),onSelect:()=>{n.current||tn(n.root),oo("project-button")}},{type:"item",id:"open-new-tab",label:eX("sidebar.openInNewTab"),icon:(0,r.jsx)(tT,{}),shortcut:"T",onSelect:()=>(e=>{let{cwd:t}=eP(e,tt);window.open(`?cwd=${encodeURIComponent(t)}`,"_blank","noopener,noreferrer")})(n)},{type:"separator",id:"separator-layout"},{type:"item",id:"move-up",label:eX("sidebar.moveProjectUp"),icon:(0,r.jsx)(t$,{className:"sidebar-icon-up"}),disabled:null===i,onSelect:()=>{i&&sp(n.key,i.anchorKey,i.position)}},{type:"item",id:"move-down",label:eX("sidebar.moveProjectDown"),icon:(0,r.jsx)(t$,{className:"sidebar-icon-down"}),disabled:null===o,onSelect:()=>{o&&sp(n.key,o.anchorKey,o.position)}},{type:"item",id:"collapse-others",label:eX("sidebar.collapseOtherGroups"),icon:(0,r.jsx)(t$,{}),disabled:i2.projects.every(e=>J(e,i1)===(e.key===n.key)),onSelect:()=>on(e=>e.key===n.key)},{type:"item",id:"expand-all",label:eX("sidebar.expandAllGroups"),icon:(0,r.jsx)(t$,{className:"sidebar-icon-down"}),disabled:i2.projects.every(e=>J(e,i1)),onSelect:()=>on(()=>!0)},{type:"separator",id:"separator-sessions"},{type:"item",id:"archive-older",label:eX("sidebar.archiveOlderThanWeek",{count:s}),icon:(0,r.jsx)(tS,{}),disabled:0===s,onSelect:()=>sq(n)},{type:"item",id:"view-archived",label:eX("sidebar.viewArchived",{count:e}),icon:(0,r.jsx)(tS,{}),disabled:0===e,onSelect:()=>sg(n.key)},{type:"item",id:"delete-all",label:eX("sidebar.deleteProjectSessions",{count:t.ids.length}),icon:(0,r.jsx)(tR,{}),danger:!0,disabled:0===t.ids.length,onSelect:e=>{let{keepOpen:t}=e;t(),sZ(n.key,!0)}}],rw.askDelete&&(ou=(e=>{let{ids:t,running:n}=es(sU,e.key);return ol({heading:eX("sidebar.deleteProjectSessionsHeading",{name:e.name}),headingTitle:e.root,notes:[eX("sidebar.deleteProjectSessionsMessage"),...n>0?[eX("sidebar.deleteProjectSessionsRunning",{count:n})]:[]],count:t.length,onConfirm:()=>sY(e),onCancel:()=>sZ(e.key,!1)})})(l)),f=264}else if(rw?.kind==="archive-group"){let e,t=i5.find(e=>e.project.key===rw.project.key)?.project??rw.project;h=t.name,od=eX("sidebar.archivedProjectActions",{name:t.name}),x=[{type:"item",id:"restore-all",label:eX("sidebar.restoreAllArchived",{count:(e=s2({projectKey:t.key})).length}),icon:(0,r.jsx)(tC,{}),disabled:0===e.length,onSelect:()=>s$(sX(e))},{type:"separator",id:"separator-delete"},{type:"item",id:"delete-all",label:eX("sidebar.deleteAllArchived",{count:e.length}),icon:(0,r.jsx)(tR,{}),danger:!0,disabled:0===e.length,onSelect:e=>{let{keepOpen:t}=e;t(),s1("all")}}],rw.askDelete&&(ou=oc({projectKey:t.key},t)),f=248}else if(rw?.kind==="archive"){let e,t,n;h=eX("sidebar.archived"),od=eX("sidebar.archiveActions"),e=s2("all"),t=s2("old"),n=i5.filter(e=>!e.expanded).length,x=[{type:"item",id:"collapse-all",label:eX("sidebar.collapseAllGroups"),icon:(0,r.jsx)(t$,{}),disabled:n===i5.length,onSelect:()=>s3(!1)},{type:"item",id:"expand-all",label:eX("sidebar.expandAllGroups"),icon:(0,r.jsx)(t$,{className:"sidebar-icon-down"}),disabled:0===n,onSelect:()=>s3(!0)},{type:"separator",id:"separator-sessions"},{type:"item",id:"restore-all",label:eX("sidebar.restoreAllArchived",{count:e.length}),icon:(0,r.jsx)(tC,{}),disabled:0===e.length,onSelect:()=>s$(sX(e))},{type:"item",id:"delete-old",label:eX("sidebar.deleteOldArchived",{count:t.length}),icon:(0,r.jsx)(tR,{}),danger:!0,disabled:0===t.length,onSelect:e=>{let{keepOpen:t}=e;t(),s1("old")}},{type:"item",id:"delete-all",label:eX("sidebar.deleteAllArchived",{count:e.length}),icon:(0,r.jsx)(tR,{}),danger:!0,disabled:0===e.length,onSelect:e=>{let{keepOpen:t}=e;t(),s1("all")}}],rw.askDelete&&(ou=oc(rw.askDelete,null)),f=280}let op={layout:eQ?"mobile":"desktop",loading:e8||!rG,error:e7,renamingRootId:rx,renamingProjectKey:rb,confirmDeleteRootId:rj,activeMenuRowKey:rw?.kind==="row"?rw.row.key:rw?.kind==="group"?`group:${rw.project.key}`:rw?.kind==="archive-group"?`archive:${rw.project.key}`:null,onSelectFamily:ot,onToggleGroup:or,onShowMore:oi,onShowLess:os,onTogglePinned:()=>{let e=!nV;nJ(e),function(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:eM();if(t)try{t.setItem(ew,String(e))}catch{}}(e),e&&nZ(e=>en(e,D))},onToggleRecents:()=>{let e=!nY;nG(e),function(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:eM();if(t)try{t.setItem(eS,String(e))}catch{}}(e)},onArchiveFamily:sE,onRestoreFamily:sM,onOpenRowMenu:s_,onRowContextMenu:sH,onRenameCommit:(e,t)=>{sT(e,t)},onRenameCancel:()=>rv(null),onRenameProjectCommit:sA,onRenameProjectCancel:()=>{rb&&sL(rb)},onDeleteConfirm:e=>{sP(e)},onDeleteCancel:()=>{rk(null),rj&&rJ(()=>sd(rj))},onGroupNew:s5,onGroupMenu:sK,onToggleArchiveGroup:s6,onArchiveGroupMenu:sQ,onOpenOtherProject:()=>{tj(!0)},onOpenArchive:()=>sg(),onMoveGroup:sp},oh=tt??eg??null,of=oh&&ne>0?eX("sidebar.changedFiles",{count:ne}):void 0,om=(0,i.useRef)(null),og=!oh||0===ne;(0,i.useLayoutEffect)(()=>{let e=om.current;if(og&&e&&sy.current===e){var t,n;let r;t=document,n=sc(),(r=function(e){let t=e=>e?.tagName==="BUTTON"&&!e.disabled;for(let n=e.nextElementSibling;n;n=n.nextElementSibling)if(t(n))return n;for(let n=e.previousElementSibling;n;n=n.previousElementSibling)if(t(n))return n;return null}(e)??n)&&t.activeElement===e?r.focus({preventScroll:!0}):e_(t,r)}},[og,sc]);let ox=nE||n$||"sessions"===nM,ov=!nE&&!n$&&"files"===nM&&null!==oh;t=(n$?["below",eX("sidebar.new")]:["tabs",eX("sidebar.tabSessions"),eX("sidebar.tabFiles"),eX("sidebar.new"),oh&&ne>0?ne:"",nM]).join("\n"),p=(0,i.useCallback)(()=>{let e=r6.current;if(e){for(let t of["0","1","2"])if(e.dataset.fit=t,e.scrollWidth<=e.clientWidth)return}},[r6]),(0,i.useLayoutEffect)(()=>{let e=r6.current;if(!e)return;p();let t=new ResizeObserver(p);return t.observe(e),()=>t.disconnect()},[r6,p,t]);let ob=i2.archivedCount,oy=n$?13:14,oj=(0,r.jsx)(n3,{onClick:()=>{oh&&eF?.(oh)},disabled:!oh||!eF,title:eX("terminal.open"),children:(0,r.jsx)(t_,{size:oy})}),ok=(0,r.jsx)(n3,{onClick:()=>{iu().then(e=>{e&&n$&&sf(!1)})},disabled:!oh||ih,title:ih?eX(nl?.reason==="remote"?"sidebar.openInExplorerRemoteOnly":"sidebar.openInExplorerUnsupported"):ip,children:(0,r.jsx)(tF,{size:oy})}),ow=(0,r.jsx)(n3,{onClick:()=>{n$&&nR&&sf(!1),nC.current?.openUploadPicker()},disabled:!oh||t2,title:eX("sidebar.uploadFilesTitle"),children:(0,r.jsx)(tU,{size:oy})}),oS=(0,r.jsx)(n3,{onClick:()=>{eB?eB():t1(e=>e+1),na(!0),nS.current&&clearTimeout(nS.current),nS.current=setTimeout(()=>na(!1),2e3)},disabled:!oh,title:eX("sidebar.refreshExplorer"),done:no,children:no?(0,r.jsx)(tz,{size:oy}):(0,r.jsx)(tK,{size:oy})}),oC=e=>(0,r.jsx)(n3,{onClick:()=>{let e=!ni;ns(e),function(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:eM();if(t)try{t.setItem(eC,String(e))}catch{}}(e)},disabled:!oh,title:eX("sidebar.showIgnoredFiles"),pressed:ni,className:e,children:(0,r.jsx)(tZ,{size:oy})}),oN=(0,r.jsx)(n3,{ref:om,onClick:()=>{if(n$&&nR){sf(!1),nr(!1);return}nr(e=>!e)},disabled:og,title:eX("sidebar.changedFiles",{count:ne}),pressed:!og&&!nn,children:(0,r.jsx)(tq,{size:oy})});return(0,r.jsxs)("div",{ref:ia,className:`session-sidebar${n$?" is-files-below":""}${n$&&nR?" is-files-collapsed":""}${n$&&rm.moving?" is-files-folding":""}${b&&ox?" has-archive-footer":""}${rL?" has-toast":""}`,style:{"--sidebar-files-height":`${is.width}px`},onFocus:e=>{sy.current=e.target},onBlur:e=>{(null!==e.relatedTarget||document.hasFocus())&&(e.currentTarget.contains(e.relatedTarget)||(sy.current=null))},children:[ty&&(0,r.jsx)(tX,{projects:ez(si??{project:null,projects:sr,worktrees:null,currentWorktreePath:null}),initialPath:th||tt||void 0,onCancel:()=>tj(!1),onCreate:async(e,t)=>!!e.projectKey&&!!e.projectRoot&&!!await r8({action:"create-project",projectKey:e.projectKey,root:e.projectRoot,name:t})&&(re(e.cwd),tf(e.cwd),tM({cwd:e.cwd,root:e.projectRoot,key:e.projectKey}),tn(e.cwd),tj(!1),!0)}),tu&&(0,r.jsx)(tb,{initialPath:th,busy:tx,error:tm,onCancel:()=>{let e=rK.current;rU.current=null,rK.current=null,tp(!1),tg(null),e&&rJ(()=>e.isConnected?e:null)},onSelect:e=>void iN(e)}),(0,r.jsxs)("div",{ref:r6,className:"sidebar-header",children:[(n$||nE)&&(0,r.jsx)(nL,{canCreate:!!tt,onNewSession:iD,onOpenProject:iE,onOpenSettings:F}),!n$&&!nE&&(0,r.jsxs)("div",{className:"sidebar-tabs-list",role:"tablist","aria-label":eX("sidebar.tabsLabel"),children:[(0,r.jsxs)("button",{ref:nP,type:"button",role:"tab",id:"session-sidebar-tab-sessions","aria-selected":"sessions"===nM,"aria-controls":"session-sidebar-panel-sessions",tabIndex:"sessions"===nM?0:-1,className:`sidebar-tab${"sessions"===nM?" is-selected":""}`,onClick:()=>sh("sessions"),onKeyDown:sk,children:[(0,r.jsx)(tV,{size:13,className:"sidebar-tab-icon"}),(0,r.jsx)("span",{className:"sidebar-tab-label",children:eX("sidebar.tabSessions")})]}),(0,r.jsxs)("button",{ref:nz,type:"button",role:"tab",id:"session-sidebar-tab-files","aria-selected":"files"===nM,"aria-controls":"session-sidebar-panel-files",tabIndex:"files"===nM?0:-1,title:of,className:`sidebar-tab${"files"===nM?" is-selected":""}`,onClick:()=>sh("files"),onKeyDown:sk,children:[(0,r.jsx)(tF,{size:13,className:"sidebar-tab-icon"}),(0,r.jsx)("span",{className:"sidebar-tab-label",children:eX("sidebar.tabFiles")}),oh&&ne>0&&(0,r.jsx)("span",{className:"sidebar-tab-count","aria-hidden":"true",children:ne})]})]}),(0,r.jsx)("span",{className:"sidebar-header-spacer"}),(0,r.jsxs)("button",{type:"button",className:"sidebar-new-button",onClick:iD,disabled:!tt,title:tt?eX("sidebar.newSessionTitle",{path:tt}):eX("sidebar.selectProject"),children:[(0,r.jsx)(tD,{size:15}),(0,r.jsx)("span",{className:"sidebar-new-label",children:eX("sidebar.newChat")})]}),(0,r.jsx)("button",{ref:r9,type:"button",onClick:()=>{if(ov)return void t3(e=>!e);if(!ox){sh("sessions"),t5(!0);return}t5(e=>!e)},title:ov?eX("sidebar.searchFiles"):eX("sidebar.toggleSessionSearch"),"aria-label":ov?eX("sidebar.searchFiles"):eX("sidebar.toggleSessionSearch"),"aria-expanded":ov?t8:t6,"aria-controls":ov?"file-search-input":"session-search-input",className:`sidebar-search-toggle${(ov?t8:t6)?" is-active":""}`,children:(0,r.jsx)(tH,{size:16})})]}),(0,r.jsxs)("div",{ref:nW,id:"session-sidebar-panel-sessions",role:n$||nE?"region":"tabpanel","aria-label":n$||nE?eX("sidebar.tabSessions"):void 0,"aria-labelledby":n$||nE?void 0:"session-sidebar-tab-sessions",hidden:!nE&&!n$&&"sessions"!==nM,className:"sidebar-panel sidebar-sessions-panel",onScrollCapture:sm,children:[t6&&(0,r.jsx)("div",{className:"sidebar-search",children:(0,r.jsx)("input",{id:"session-search-input",type:"search",autoFocus:!0,value:t9,maxLength:200,"aria-label":eX("sidebar.searchSessions"),placeholder:eX("sidebar.searchSessions"),onChange:e=>t7(e.target.value),onKeyDown:e=>{"Escape"!==e.key||e.nativeEvent.isComposing||229===e.keyCode||(e.stopPropagation(),t7(""))},className:"sidebar-search-input"})}),(0,r.jsx)(n1,{open:t6,query:t9,selectedSessionId:N,onSelectSession:iA,archivedSessionIds:iK.ids,children:(0,r.jsxs)("div",{className:"sidebar-sessions-views",children:[(0,r.jsx)("div",{className:"sidebar-sessions-view",hidden:rg.mainHidden,inert:rg.mainInert,children:(0,r.jsx)(nD,{...op,rows:i4,emptyLabel:eX("sidebar.noSessions"),reveal:rC,onRevealHandled:r$})}),rg.archiveMounted&&(0,r.jsxs)("div",{className:`sidebar-sessions-view sidebar-archive-view${rg.archiveClass?` ${rg.archiveClass}`:""}`,inert:rg.archiveInert,onAnimationEnd:e=>{e.target===e.currentTarget&&ru()},children:[(0,r.jsxs)("div",{className:"sidebar-archive-bar",children:[(0,r.jsxs)("button",{ref:sx,type:"button",className:"sidebar-archive-back",title:eX("sidebar.backToSessions"),"aria-label":`${eX("sidebar.backToSessions")}: ${eX("sidebar.archivedCount",{count:ob})}`,onClick:()=>rf(!1),children:[(0,r.jsx)(t$,{size:13,className:"sidebar-icon-back"}),(0,r.jsx)("span",{children:eX("sidebar.archived")}),(0,r.jsxs)("span",{className:"sidebar-archive-count",children:["\xb7 ",ob]})]}),(0,r.jsx)("button",{type:"button",className:`sidebar-archive-menu-button${rw?.kind==="archive"?" is-active":""}`,title:eX("sidebar.archiveActions"),"aria-label":eX("sidebar.archiveActions"),"aria-haspopup":"menu","aria-expanded":rw?.kind==="archive",disabled:0===i5.length,onClick:e=>s0(e.currentTarget),children:(0,r.jsx)(tw,{size:13})})]}),(0,r.jsx)(nD,{...op,rows:i6,emptyLabel:eX("sidebar.noArchived"),reveal:rM,onRevealHandled:rT})]})]})}),b&&(0,r.jsxs)("button",{type:"button",className:"sidebar-archive-entry","data-archive-entry":"","aria-label":eX("sidebar.archivedCount",{count:ob}),"aria-current":y?"page":void 0,onClick:()=>sg(),children:[(0,r.jsx)(tS,{size:15}),(0,r.jsx)("span",{children:eX("sidebar.archived")}),(0,r.jsx)("span",{className:"sidebar-archive-entry-count","aria-hidden":"true",children:ob})]})]}),n$&&rm.open&&(0,r.jsx)("div",{...is.separatorProps,"aria-controls":"session-sidebar-panel-files",className:`panel-resize-handle sidebar-files-resize-handle${is.isResizing?" is-resizing":""}`,"data-resize-handle":"sidebar-files",title:`${eX("sidebar.resizeFiles")}: ${eX("sidebar.resizeFilesHint")}`}),(0,r.jsx)(ro,{target:k,children:(0,r.jsxs)("div",{ref:nF,id:"session-sidebar-panel-files",role:n$||nE?"region":"tabpanel","aria-label":n$||nE?eX("sidebar.tabFiles"):void 0,"aria-labelledby":n$||nE?void 0:"session-sidebar-tab-files",hidden:!nE&&!n$&&"files"!==nM,className:"sidebar-panel sidebar-files-panel",onScrollCapture:sm,onTransitionEnd:e=>{e.target===e.currentTarget&&"height"===e.propertyName&&rl()},children:[n$&&(0,r.jsxs)("div",{className:"sidebar-files-section",children:[(0,r.jsxs)("button",{type:"button",className:"sidebar-files-section-toggle","aria-expanded":!nR,"aria-controls":"session-sidebar-files-body",title:of,onClick:()=>sf(!nR),children:[(0,r.jsx)(t$,{size:12,strokeWidth:3,className:`session-tree-chevron${nR?"":" is-open"}`}),(0,r.jsx)("span",{className:"sidebar-files-section-label",children:eX("sidebar.tabFiles")}),of&&(0,r.jsxs)("span",{className:"sidebar-files-section-count","aria-hidden":"true",children:["\xb7 ",ne]})]}),(0,r.jsxs)("div",{className:"sidebar-files-keys",role:"group","aria-label":eX("sidebar.fileActions"),children:[oj,ok,ow,oS,oC(),oN,(0,r.jsx)(n3,{onClick:()=>{if(nR){t3(!0),oo("file-search");return}t3(e=>!e)},disabled:!oh,title:eX("sidebar.searchFiles"),expanded:t8,controls:"file-search-input",children:(0,r.jsx)(tH,{size:13})})]})]}),(0,r.jsxs)("div",{id:"session-sidebar-files-body",className:"sidebar-files-body",hidden:n$&&rm.bodyHidden,inert:n$&&rm.bodyInert,children:[(0,r.jsxs)("div",{className:"sidebar-files-head",children:[(0,r.jsx)(n0,{handleRef:tW,layout:n$?"row":"stacked",context:si??{project:null,worktrees:null,currentWorktreePath:null,projects:sr},mobile:eQ,label:eX("sidebar.projectAndWorktree"),placeholder:ec&&!ig.current?"":eX("sidebar.selectProject"),homeDir:to,projectActivity:iq,worktreeHint:iY,newWorktreeTitle:eX("sidebar.createWorktreeTitle"),onPick:iL,onUseDefaultDirectory:()=>{i$()},onOpenFolder:iE,onRefreshWorktrees:iR,onCreateWorktree:iI,onRemoveWorktree:iT}),!n$&&oh&&(0,r.jsxs)("div",{className:"sidebar-files-actions",role:"group","aria-label":eX("sidebar.fileActions"),children:[eF&&oj,ok,ow,oS,oC("sidebar-files-views-start"),oN]})]}),oh&&im&&(0,r.jsxs)("div",{role:"alert",className:"sidebar-files-error",children:[(0,r.jsx)("span",{className:"sidebar-files-error-text",children:im}),(0,r.jsx)(tQ,{onClick:()=>nu(null),title:eX("files.dismissError")})]}),(0,r.jsx)("div",{ref:r5,className:"sidebar-files-scroll scrollbar-subtle",children:oh&&(0,r.jsx)(ng,{ref:nC,cwd:oh,onOpenFile:eO??(()=>{}),refreshKey:t0,onAtMention:eH,onAtMentions:eK,onUploadBusyChange:t4,changesCollapsed:nn,onChangesCountChange:nt,fileSearchOpen:t8,searchAlwaysVisible:nE,onFileSearchOpenChange:t3,showHidden:ni})})]})]})}),(0,r.jsx)(nT,{open:null!==rw,anchor:rw?.anchor??null,sheet:eQ,ariaLabel:od,title:h,items:x,cancelLabel:eX("sidebar.cancel"),focusCancel:null!==ou,onClose:s9,returnFocusTo:rw?.opener??null,width:f,children:ou}),(0,r.jsx)(n4,{toast:rL,onDismiss:()=>rA(null),dismissLabel:eX("sidebar.dismiss")})]})}function ro(e){let{target:t,children:n}=e;return t?(0,a.createPortal)(n,t):n}let ra=/\x1B(?:[@-Z\\-_]|\[[0-?]*[ -/]*[@-~]|\][^\x07]*(?:\x07|\x1B\\))/g,rl=/^\x1B(?:[@-Z\\-_]|\[[0-?]*[ -/]*[@-~]|\][^\x07]*(?:\x07|\x1B\\))/,rc=/\x1B_pi:c\x07/g;function rd(e){return e.replace(rc,"").replace(ra,"")}function ru(e){let t=[],n=0;for(;n<e.length;){if(27===e.charCodeAt(n)){let t=e.slice(n).match(rl);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 rp(e,t){let n=ru(e)[t];return n?e.slice(0,n.start)+e.slice(n.end):e}function rh(e){return ru(e)[0]?.char}let rf=/[▀-▟]/,rm={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:""},rg={ArrowLeft:"\x1bb",ArrowRight:"\x1bf",ArrowUp:"\x1bp",ArrowDown:"\x1bn"};function rx(e){return"custom"===e.role&&!e.display}function rv(e){return"user"===e.role||"custom"===e.role&&!rx(e)&&("compaction"===e.customType||"pi-web:subagent-notification"===e.customType||"subagent-notification"===e.customType)}function rb(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return"thinking"===e.type&&!e.deferred&&!t.isStreaming&&""===e.thinking.trim()}function ry(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return(e.content??[]).filter(e=>!rb(e,t))}function rj(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return t.isStreaming||"error"!==e.stopReason?null:e.errorMessage?.trim()||"Unknown provider error"}function rk(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return!t.isStreaming&&"length"===e.stopReason}function rw(e){return(e.content??[]).some(e=>"text"===e.type?e.text.trim().length>0:"image"===e.type||"toolCall"===e.type)}function rS(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=ry(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 rC(e){return!e.defaultPrevented&&0===e.button&&!e.shiftKey&&!e.altKey}function rN(e){try{return decodeURIComponent(e)}catch{return e}}function rE(e){return/^[a-zA-Z]:[\\/]/.test(e)||e.startsWith("\\\\")?e.replace(/\\/g,"/"):e}function r$(e){let t=rE(e),n=/^[a-zA-Z]:\//.test(t),r=t.startsWith("//"),i=t.startsWith("/")&&!n&&!r,s=[];for(let e of t.split("/"))if(e&&"."!==e){if(".."===e){s.length>0&&".."!==s[s.length-1]?s.pop():i||n||r||s.push(e);continue}s.push(e)}let o=s.join("/");return n?o:r?`//${o}`:i?`/${o}`:o}function rM(e,t){let n,r,i,s,o,a=arguments.length>2&&void 0!==arguments[2]?arguments[2]:t;if(!e)return null;let l=e.split("#",1)[0].split("?",1)[0].trim();if(!l)return null;let c=null,d=null,u=rN(l),p=u.startsWith("\\\\"),h=rE(u),f=h.toLowerCase();if(f.startsWith("/api/")||f.startsWith("/_next/")||!p&&h.startsWith("//")||/^[a-zA-Z][a-zA-Z0-9+.-]*:/i.test(h)&&!f.startsWith("file:")&&!/^[a-zA-Z]:\//.test(h))return null;if(f.startsWith("file:")?d=(c=function(e){try{let t=new URL(e);if("file:"!==t.protocol)return null;let n=rN(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}}(l))?"absolute":null:/^[a-zA-Z]:\//.test(h)||h.startsWith("/")?(c=h,d="absolute"):t&&!(h.startsWith("#")||h.startsWith("?"))&&(h.startsWith("./")||h.startsWith("../")||h.includes("/")||/(^|\/)\.?[^/]+\.[^/.]+$/.test(h))&&(c=`${rE(t).replace(/\/+$/,"")}/${h}`,d="relative"),!c)return null;let m=r$(c).replace(/:\d+(?::\d+)?$/,"");return"relative"===d&&a&&(n=r$(m).replace(/\/+$/,""),r=r$(a).replace(/\/+$/,""),s=(i=/^[a-zA-Z]:\//.test(n)||/^[a-zA-Z]:\//.test(r))?n.toLowerCase():n,!(s===(o=i?r.toLowerCase():r)||s.startsWith(`${o}/`)))?null:m}let rI=/^page=(\d+)$/i;function rT(e){if(!e)return null;let t=e.indexOf("#");if(-1===t)return null;let n=e.slice(t+1).trim().match(rI);if(!n)return null;let r=Number.parseInt(n[1],10);return Number.isInteger(r)&&r>0?r:null}function rR(e){let t=e.toLowerCase();return"write"===t||t.startsWith("write_")||t.endsWith(".write")||t.endsWith("_write")}function rL(e){let t=e.toLowerCase();return"edit"===t||t.startsWith("edit_")||t.endsWith(".edit")||t.endsWith("_edit")||t.includes("str_replace")||t.includes("replace_editor")}function rA(e){let t=e.toLowerCase();return"apply_patch"===t||t.startsWith("apply_patch_")||t.endsWith(".apply_patch")||t.endsWith("_apply_patch")}function rP(e,t){if(e&&"object"==typeof e&&!Array.isArray(e)){let t=e.input;if("string"==typeof t&&t.length>0)return t}return"string"==typeof t?t:""}function rz(e){return"object"==typeof e&&null!==e&&!Array.isArray(e)}function rW(e){if(!rz(e)||!rz(e.result))return!1;let t=e.result.failures;return Array.isArray(t)&&t.length>0}function rO(){let e=[],t=[],n=[],r=()=>({lineNo:null,text:"",type:"empty"}),i=()=>{let i=Math.max(t.length,n.length);for(let s=0;s<i;s++)e.push({type:"line",left:t[s]??r(),right:n[s]??r()});t=[],n=[]};return{rows:e,context(t,n){i(),e.push({type:"line",left:{lineNo:n,text:t,type:"context"},right:{lineNo:n,text:t,type:"context"}})},removed(e,n){t.push({lineNo:n,text:e,type:"removed"})},added(e,t){n.push({lineNo:t,text:e,type:"added"})},finish(){i();for(let t=e.length-1;t>=0;t--)"line"!==e[t].type&&e.splice(t,1)}}}function rF(e){if(!e.includes("*** Begin Patch")&&!/\*\*\* (?:Add|Delete|Update) File: /.test(e))return null;let t=[],n=null,r=null,i=null;for(let s of e.split(/\r?\n/)){let e=s.match(/^\*\*\* (Add|Delete|Update) File: (.+)$/);if(e){let s=e[1]?.toLowerCase()??"update",o=(e[2]??"").trim();n?.finish(),i=s,r={oldPath:"add"===s?void 0:o,newPath:"delete"===s?void 0:o,rows:(n=rO()).rows},t.push(r);continue}if(/^\*\*\* Move to: /.test(s)){let e=s.replace(/^\*\*\* Move to: /,"").trim();r&&"update"===i&&(r.newPath=e);continue}if(!n||!r)continue;let o=n;if(!s.startsWith("*** ")&&!("update"===i&&s.startsWith("@@"))){if("update"===i){let e=s[0],t=s.slice(1);"+"===e?o.added(t,null):"-"===e?o.removed(t,null):" "===e?o.context(t,null):""!==s&&o.context(s,null)}else if("add"===i){if(""===s)continue;n.added(s.startsWith("+")?s.slice(1):s,null)}else if("delete"===i){if(""===s)continue;n.removed(s.startsWith("-")?s.slice(1):s,null)}}}n?.finish();let s=t.filter(e=>e.rows.length>0);return s.length>0?s:null}function rD(e){if(!e||"object"!=typeof e||Array.isArray(e))return null;let t=e.files;if(!Array.isArray(t))return null;let n=[];for(let e of t){if(!e||"object"!=typeof e||Array.isArray(e)||"string"!=typeof e.filePath||"string"!=typeof e.diff)continue;let t=rO();for(let n of e.diff.split(/\r?\n/)){let e=n.match(/^([+\- ])\s*(\d+) (.*)$/);if(!e)continue;let[,r,i,s]=e,o=Number(i);"+"===r?t.added(s,o):"-"===r?t.removed(s,o):t.context(s,o)}t.finish();let r="add"===e.operation,i="delete"===e.operation;n.push({oldPath:r?void 0:e.filePath,newPath:i?void 0:e.movePath??e.filePath,rows:t.rows})}let r=n.filter(e=>e.rows.length>0);return r.length>0?r:null}function rB(e){return e?e.map(e=>e.newPath).filter(e=>"string"==typeof e&&e.length>0):[]}function r_(e,t){let n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},r={...e,content:t};return n.omitUsage&&(r.usage=void 0),r}function rH(e){return"number"==typeof e&&Number.isFinite(e)&&e>=0?e:void 0}function rU(e){let t=Math.max(0,Math.floor(e/1e3));if(t<60)return`${t}s`;let n=Math.floor(t/60),r=t%60;return n<60?`${n}m ${r}s`:`${Math.floor(n/60)}h ${n%60}m ${r}s`}function rK(e,t,n){let r=e.trim().split("\n").map(e=>`> ${e}`).join("\n");return`${t}
4
-
5
- ${r}
6
-
7
- ${n}`}var rq=n(32316),rZ=n(88374),rV=n(5924),rJ=n(94764),rY=n(63835),rG=n(54152),rX=n(31678),rQ=n(6796),r0=n(98164);let r1=["obsidian","logseq","notion","vscode","vscode-insiders","cursor","zed","jetbrains","zoommtg","zoomus","msteams","slack"],r2=RegExp(`^(?:${r1.join("|")}):`,"i"),r4={...rJ.j,attributes:{...rJ.j.attributes,code:[["className",/^language-./,"math-inline","math-display"]]},protocols:{...rJ.j.protocols,href:[...rJ.j.protocols?.href??[],"file",...r1]},strip:[...rJ.j.strip||[],"iframe","object","style","form"]};function r8(e){return r2.test(e)?e:(0,rq.Lv)(e)}function r3(e){return/^file:/i.test(e)?e:r8(e)}function r6(e){return!!(e&&/^(?:[a-z][a-z0-9+.-]*:|\/\/)/i.test(e))}function r5(e,t,n,r,i){let s="",o=0;for(let a=e.indexOf(t);-1!==a;a=e.indexOf(t,a+1)){if(a>0&&n.includes(e[a-1]))continue;r.lastIndex=a;let t=r.exec(e);t&&(s+=e.slice(o,a)+i(t),a=(o=r.lastIndex)-1)}return s+e.slice(o)}let r9=/`((?:[^`\n]|\\`)*?[^\\`\n])`(?!`)/y;function r7(e){let t=e.includes("\r\n")?"\r\n":"\n",n=e.split(/\r?\n/),r=[],i=null,s=0,o=null,a=new Map;for(let e=0;e<n.length;e++){var l,c;let t=n[e];if(o){r.push(t),RegExp(`</${o}\\s*>`,"i").test(t)&&(o=null);continue}let d=t.match(/^ {0,3}(`{3,}|~{3,})/);if(d){let e=d[1][0],n=d[1].length;i?e===i.marker&&n>=i.size&&(i=null):i={marker:e,size:n},s=0,r.push(t);continue}if(i){r.push(t);continue}let u=t.match(/<(code|pre|script|style)\b/i);if(u){let e=u[1].toLowerCase(),n=t.slice((u.index??0)+u[0].length);RegExp(`</${e}\\s*>`,"i").test(n)||(o=e),s=0,r.push(t);continue}if(/^(?: {4}|\t)/.test(t)||""===t.trim()){s=0,r.push(t);continue}if(s||(t=r5(t,"`","\\`",r9,e=>{let[t,n]=e,r=n.replace(/\\`/g,"`");if(r===n)return t;let i="`".repeat(Math.max(...r.match(/`+/g)?.map(e=>e.length)??[0])+1);return`${i}${r}${i}`})),s||t.includes("`")){s=function(e,t){let n=t;for(let t=0;t<e.length;){if("`"!==e[t]){t++;continue}let r=t+1;for(;"`"===e[r];)r++;let i=r-t;0===n?n=i:i===n&&(n=0),t=r}return n}(t,s),r.push(t);continue}let p=t.match(/^([ ]{0,3})\\\[[ \t]*(.+?)[ \t]*\\\][ \t]*$/);if(p){let e=p[2].trim();if(e){r.push(`${p[1]}$$`,`${p[1]}${e}`,`${p[1]}$$`);continue}}let h=t.match(/^([ ]{0,3})\[[ \t]*(.+?)[ \t]*\][ \t]*$/);if(h){let e=h[2].trim();if(l=e,/\\[A-Za-z]+/.test(l)&&!/\b(?:https?|file|mailto):|\b[A-Za-z]:\\|^\\\\/i.test(l)){r.push(`${h[1]}$$`,`${h[1]}${e}`,`${h[1]}$$`);continue}}let f=t.match(/^([ ]{0,3})\\\[[ \t]*$/);if(f){let t=function(e,t){for(let n=t;n<e.length;n++){let t=e[n];if(/^ {0,3}\\\][ \t]*$/.test(t))return n;if(/^ {0,3}(`{3,}|~{3,})/.test(t)||/^ {0,3}\\\[[ \t]*$/.test(t)||/<(code|pre|script|style)\b/i.test(t))break}return -1}(n,e+1);if(-1!==t){r.push(`${f[1]}$$`,...n.slice(e+1,t).map(e=>it(e,f[1])),`${f[1]}$$`),e=t;continue}}let m=t.match(/^([ \t]{0,3})\$\$(.+)\$\$[ \t]*$/);if(m){let e=m[2].trim();if(e){r.push(`${m[1]}$$`,`${m[1]}${e}`,`${m[1]}$$`);continue}}let g=t.match(/^([ \t]{0,3})\$\$(.+)$/);if(g){let t=g[1],i=g[2].trimEnd();if(i&&!i.includes("$$")){let s=ie(n,e+1,t,a);if(s){r.push(`${t}$$`,`${t}${i}`);for(let i=e+1;i<s.index;i++)r.push(it(n[i],t));s.content&&r.push(`${t}${s.content}`),r.push(`${t}$$`),e=s.index;continue}}}let x=t.match(/^([ \t]{0,3})\$\$\s*$/);if(x){let t=x[1],i=ie(n,e+1,t,a);if(i&&(i.glued||""!==t)){r.push(`${t}$$`);for(let s=e+1;s<i.index;s++)r.push(it(n[s],t));i.content&&r.push(`${t}${i.content}`),r.push(`${t}$$`),e=i.index;continue}}r.push((c=t,/^\s{0,3}\[[^\]]+\]:/.test(c)||/]\s*\(/.test(c)||/<(?:!--|\/?[A-Za-z][^>]*>)/.test(c)||/\b(?:https?|file|mailto):/i.test(c)||/\b[A-Za-z]:\\/.test(c)?c:r5(c,"\\(","\\",ir,e=>{let[t,n]=e;return n.trim()?`$${n}$`:t})))}return r.join(t)}function ie(e,t,n,r){let i=r.get(n);if(void 0!==i&&t<i)return null;for(let i=t;i<e.length;i++){var s,o,a,l;let t=e[i];if(s=t,""===(o=n)?/^ {0,3}\$\$\s*$/.test(s):s.startsWith(o)&&/^\$\$\s*$/.test(s.slice(o.length)))return{index:i,content:"",glued:!1};if(a=t,/^ {0,3}(`{3,}|~{3,})/.test(a)||/^[ \t]*(?:[-+*]|\d{1,9}[.)])(?:[ \t]+|$)/.test(a)||/^ {0,3}#{1,6}(?:[ \t]+|$)/.test(a)||/^ {0,3}>/.test(a)||/<(code|pre|script|style)\b/i.test(a)||(l=t,/^ {0,3}\$\$(?:\S|[ \t]+\S)/.test(l)))return r.set(n,i),null;let c=function(e,t){if(!e.startsWith(t))return null;let n=e.slice(t.length).match(/^(.+?)\$\$\s*$/);if(!n)return null;let r=n[1].trimEnd();return r&&!r.includes("$$")?r:null}(t,n);if(null!==c)return{index:i,content:c,glued:!0}}return r.set(n,e.length),null}function it(e,t){if(!t||!e||e.startsWith(" "))return e;let n=e.match(/^ */)?.[0].length??0;return n>=t.length?e:`${t.slice(n)}${e}`}let ir=/\\\(([^`\r\n$]*?[^`\r\n$\\])\\\)/y,ii={singleTilde:!1},is=/[\u3001\u3002\u3008-\u3011\u3014-\u301B\uFF01\uFF08\uFF09\uFF0C\uFF1A\uFF1B\uFF1F\u2018\u2019\u201C\u201D\u2013\u2014\u2026\u00B7\uFF5E\u301C]/;function io(){return(e,t)=>{var n;let r;n="string"==typeof t.value?t.value:"",(r=e=>{let t=e.children;for(let e=0;e<t.length;e++){let i=t[e];"link"===i.type&&function(e,t,n,r){if(null!=n.title||1!==n.children.length)return;let i=n.children[0];if("text"!==i.type)return;let s=n.position?.start,o=n.position?.end;if(s?.offset==null||o?.offset==null||r.slice(s.offset,o.offset)!==i.value)return;let a=i.value,l=a.search(is);if(l<=0||!n.url.endsWith(a))return;let c=a.slice(0,l),d={line:s.line,column:s.column+l,offset:s.offset+l};n.url=n.url.slice(0,n.url.length-a.length)+c,i.value=c,n.position={start:s,end:d},e.splice(t+1,0,{type:"text",value:a.slice(l),position:{start:d,end:o}})}(t,e,i,n);let s=t[e];"children"in s&&Array.isArray(s.children)&&r(s)}})(e)}}let ia=function(){r0.A.call(this);let e=this.data(),t=e.micromarkExtensions?.at(-1),n=t?.text?.[36];for(let e of Array.isArray(n)?n:n?[n]:[]){if("mathText"!==e.name)continue;let t=e.tokenize;e.tokenize=function(e,n,r){let i=this.now();return t.call(this,e,e=>{let t=this.sliceSerialize({start:i,end:this.now()});if(t.startsWith("$")&&!t.startsWith("$$")){let n=t.slice(1,-1),i=/^\s*[+-]?(?:\d|\.\d)/.test(n),s=null!==e&&e>=48&&e<=57,o=/^\s/.test(n)!==/\s$/.test(n);if(i&&(s||o))return r(e)}return n(e)},r)}}},il=[[rG.A,["yaml"]],[rX.A,ii],rQ.A,io,ia],ic=/[ \t]*(?:\r\n|\r|\n)[ \t]*/,id=new Set(["paragraph","heading","tableCell"]),iu=/^<(?:iframe|noembed|noframes|noscript|plaintext|script|style|textarea|title|xmp)(?=[\s/>]|$)/i;function ip(){return{type:"lineBreak",data:{hName:"br"}}}let ih=[...il??[],function(){return e=>(function e(t){!t.children||id.has(t.type)&&function e(t){return"html"===t.type?iu.test(t.value??""):t.children?.some(e)??!1}(t)||(t.children=t.children.flatMap(t=>"break"===t.type?[ip()]:"text"===t.type&&t.value?t.value.split(ic).flatMap((e,t)=>[...t>0?[ip()]:[],...e?[{type:"text",value:e}]:[]]):(e(t),[t])))})(e)}],im=[[rG.A,["yaml"]],[rX.A,ii],rQ.A,io,ia],ig=[rV.A,[rY.A,r4],[rZ.A,{throwOnError:!1,strict:!1}]],ix=[rV.A,[rY.A,r4],function(){return e=>{let t=new Map,n=e=>e.children.forEach(e=>{if("element"===e.type){if(/^h[1-6]$/.test(e.tagName)){let n=(function e(t){return"text"===t.type?t.value:"element"===t.type?t.children.map(e).join(""):""})(e).toLowerCase().replace(/[^\p{L}\p{M}\p{N}_\- ]/gu,"").replace(/ /g,"-"),r=n;for(;t.has(r);)t.set(n,t.get(n)+1),r=`${n}-${t.get(n)}`;t.set(r,0),e.properties.dataHeadingAnchor=r}n(e)}});n(e)}},[rZ.A,{throwOnError:!1,strict:!1}]],iv=[rV.A,[rY.A,r4],[rZ.A,{throwOnError:!1,strict:!1}]],ib=/^ {0,3}(`{3,}|~{3,})/,iy=/^(?:[*+-]|\d{1,9}[.)])(?:[ \t]|$)/,ij=/<[A-Za-z!/?]/,ik=/`[^`]*`/g;function iw(e){let{src:t,alt:n="",children:s,className:o,style:a}=e,{t:l}=(0,eG.s)(),c=l("chat.previewImage"),d=n.trim()?`${c}: ${n}`:c,[u,p]=(0,i.useState)(!1),h=(0,i.useRef)(null),f=(0,i.useRef)(null),m=(0,i.useRef)(null);(0,i.useEffect)(()=>{if(!u)return;let e=f.current;if(!e)return;let t=h.current,n=document.body.style.overflow;return document.body.style.overflow="hidden",e.showModal(),m.current?.focus({preventScroll:!0}),()=>{document.body.style.overflow=n,e.open&&e.close(),t?.isConnected&&t.focus({preventScroll:!0})}},[u]);let g=()=>{f.current?.open&&f.current.close(),p(!1)};return(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)("button",{ref:h,type:"button",className:o,style:{display:"block",padding:0,border:"none",background:"none",color:"inherit",cursor:"zoom-in",...a},onClick:()=>p(!0),"aria-label":d,"aria-haspopup":"dialog","aria-expanded":u,title:c,children:s}),u&&(0,r.jsxs)("dialog",{ref:f,className:"image-preview-dialog","aria-label":l("chat.previewImage"),onCancel:e=>{e.preventDefault(),e.stopPropagation(),g()},onKeyDown:e=>{"Escape"===e.key&&(e.preventDefault(),e.stopPropagation(),g())},onClick:e=>{e.target===e.currentTarget&&g()},children:[(0,r.jsx)("img",{className:"image-preview-image",src:t,alt:n}),(0,r.jsx)("button",{ref:m,type:"button",className:"image-preview-close",onClick:g,"aria-label":l("chat.close"),title:l("chat.close"),children:(0,r.jsx)("svg",{width:"16",height:"16",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round","aria-hidden":"true",children:(0,r.jsx)("path",{d:"M6 6l12 12M18 6 6 18"})})})]})]})}var iS=n(55961),iC=n(7644);let iN=[{id:"auto",label:"settings.themeSystem",scheme:null},{id:"light",label:"settings.themeLight",scheme:"light"},{id:"mist",label:"settings.themeMist",scheme:"light"},{id:"lilac",label:"settings.themeLilac",scheme:"light"},{id:"sand",label:"settings.themeSand",scheme:"light"},{id:"rose",label:"settings.themeRose",scheme:"light"},{id:"dark",label:"settings.themeDark",scheme:"dark"},{id:"pine",label:"settings.themePine",scheme:"dark"},{id:"dusk",label:"settings.themeDusk",scheme:"dark"},{id:"ember",label:"settings.themeEmber",scheme:"dark"},{id:"slate",label:"settings.themeSlate",scheme:"dark"},{id:"contrast-light",label:"settings.themeContrastLight",scheme:"light"},{id:"contrast-dark",label:"settings.themeContrastDark",scheme:"dark"},{id:"zenburn",label:"settings.themeZenburn",scheme:"dark"}];iN.flatMap(e=>"light"===e.scheme?[e.id]:[]);let iE=iN.flatMap(e=>"dark"===e.scheme?[e.id]:[]);function i$(e){return iE.includes(e)}let iM="pi-theme",iI={preference:"auto",theme:"light"},iT=new Set,iR=null,iL=!1;function iA(){return window.matchMedia("(prefers-color-scheme: dark)").matches?"dark":"light"}function iP(e){return"auto"===e?iA():e}function iz(e){"u">typeof document&&(document.documentElement.dataset.theme=e,document.documentElement.classList.toggle("dark",i$(e)))}function iW(){if(iR)return iR;let e=function(){try{let e=localStorage.getItem(iM);if(iN.some(t=>t.id===e))return e}catch{}return"auto"}(),t=iP(e);return iz(t),iR={preference:e,theme:t}}function iO(e,t,n){if(iz(t),n)try{localStorage.setItem(iM,e)}catch{}iR={preference:e,theme:t},iT.forEach(e=>e())}function iF(){let e=iW();if("auto"!==e.preference)return;let t=iA();t!==e.theme&&iO("auto",t,!1)}function iD(e){return iT.add(e),iW(),iL||!window.matchMedia||(window.matchMedia("(prefers-color-scheme: dark)").addEventListener("change",iF),window.addEventListener("focus",iF),document.addEventListener("visibilitychange",()=>{"visible"===document.visibilityState&&iF()}),iL=!0),iF(),()=>{iT.delete(e)}}function iB(){return iW()}function i_(){return iI}function iH(){let e=(0,i.useSyncExternalStore)(iD,iB,i_),t=(0,i.useCallback)((e,t)=>{if(iW().preference===e)return;let n=iP(e),r=()=>{iO(e,n,!0)},i=window.matchMedia?.("(prefers-reduced-motion: reduce)").matches;if("function"!=typeof document.startViewTransition||i)return void r();let s=t?.x??window.innerWidth/2,o=t?.y??window.innerHeight/2,a=Math.hypot(Math.max(s,window.innerWidth-s),Math.max(o,window.innerHeight-o));document.startViewTransition(r).ready.then(()=>{document.documentElement.animate({clipPath:[`circle(0px at ${s}px ${o}px)`,`circle(${a}px at ${s}px ${o}px)`]},{duration:450,easing:"cubic-bezier(0.22, 0.61, 0.36, 1)",pseudoElement:"::view-transition-new(root)"})}).catch(()=>{})},[]);return{theme:e.theme,preference:e.preference,setThemePreference:t,isDark:i$(e.theme)}}let iU=!1,iK=null;function iq(){return iU}function iZ(){let e=!(arguments.length>0)||void 0===arguments[0]||arguments[0],[t,r]=(0,i.useState)(iq);return(0,i.useEffect)(()=>{if(t||!e)return;let i=!0;return(iK??=n.e(1326).then(n.bind(n,61326)).then(()=>{iU=!0},e=>{throw iK=null,e})).then(()=>{i&&r(!0)},()=>{}),()=>{i=!1}},[e,t]),t}function iV(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()}}let iJ=2e3,iY=!1,iG=[],iX=!1;function iQ(){iX=!1,iG.pop()?.(),iG.length>0&&i0()}function i0(){!iX&&(iX=!0,"function"==typeof window.requestIdleCallback?window.requestIdleCallback(iQ,{timeout:500}):setTimeout(iQ,50))}function i1(e){let{code:t,isStreaming:s,defaultPreview:o=!1}=e,{isDark:a}=iH(),{t:l}=(0,eG.s)(),[c,d]=(0,i.useState)(o),[u,p]=(0,i.useState)(null),[h,f]=(0,i.useState)(!1),m=(0,i.useRef)(null),g=`${a?"dark":"light"}
8
- ${t}`,x=c&&!s;(0,i.useEffect)(()=>{if(!x)return;let e=!1;return p({key:g,status:"loading"}),(async()=>{let{default:r}=await Promise.all([n.e(866),n.e(8367),n.e(3308)]).then(n.bind(n,43328));if(r.initialize({startOnLoad:!1,securityLevel:"strict",suppressErrorRendering:!0,theme:a?"dark":"default"}),!await r.parse(t,{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)}`,s=await r.render(i,t);e||p({key:g,status:"ready",svg:s.svg})})().catch(()=>{e||p({key:g,status:"error"})}),()=>{e=!0}},[t,g,a,x]);let v=(0,i.useMemo)(()=>(0,r.jsx)("button",{type:"button",onClick:()=>d(e=>!e),disabled:s,title:s?l("i18n.previewAfterStreaming"):x?l("i18n.showMermaidSource"):l("i18n.previewMermaid"),className:["markdown-code-action",x?"is-active":""].filter(Boolean).join(" "),children:x?l("i18n.source"):l("i18n.preview")}),[s,x,l]);if(!x)return(0,r.jsx)(i8,{code:t,lang:"mermaid",headerAction:v,isStreaming:s});let b=u?.key===g&&"error"===u.status?(0,r.jsx)("div",{className:"mermaid-block mermaid-block-error",children:l("i18n.invalidMermaid")}):u?.key!==g||"ready"!==u.status?(0,r.jsx)("div",{className:"mermaid-block mermaid-block-loading","aria-label":l("i18n.renderingMermaid")}):(0,r.jsxs)(r.Fragment,{children:[!h&&(0,r.jsx)("button",{ref:m,type:"button",className:"mermaid-block mermaid-preview-button",title:l("i18n.openMermaidViewer"),"aria-label":l("i18n.openMermaidViewer"),onClick:()=>f(!0),dangerouslySetInnerHTML:{__html:u.svg}}),h&&(0,r.jsx)(i2,{svg:u.svg,onClose:()=>f(!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:"mermaid"}),(0,r.jsxs)("div",{className:"markdown-code-actions",children:[u?.key===g&&"ready"===u.status&&(0,r.jsx)("button",{type:"button",className:"markdown-code-action",title:`${l("i18n.downloadFile")} (SVG)`,"aria-label":`${l("i18n.downloadFile")} (SVG)`,onClick:()=>{let e,t,n,r=m.current?.querySelector("svg");r&&(e=new XMLSerializer().serializeToString(r),t=URL.createObjectURL(new Blob([e],{type:"image/svg+xml;charset=utf-8"})),(n=document.createElement("a")).href=t,n.download="mermaid-diagram.svg",n.click(),setTimeout(()=>URL.revokeObjectURL(t),0))},children:"SVG"}),v]})]}),b]})}function i2(e){let{svg:t,onClose:n}=e,{t:s}=(0,eG.s)(),o=(0,i.useRef)(null),[a,l]=(0,i.useState)(1);return(0,i.useEffect)(()=>{let e=o.current;if(!e)return;let t=document.body.style.overflow;return document.body.style.overflow="hidden",e.showModal(),()=>{document.body.style.overflow=t,e.open&&e.close()}},[]),(0,r.jsx)("dialog",{ref:o,className:"mermaid-zoom-dialog","aria-label":s("i18n.mermaidViewer"),onCancel:e=>{e.preventDefault(),n()},onKeyDown:e=>{"Escape"===e.key&&(e.preventDefault(),n())},children:(0,r.jsxs)("div",{className:"mermaid-zoom-layout",children:[(0,r.jsxs)("div",{className:"mermaid-zoom-toolbar",children:[(0,r.jsx)("span",{className:"mermaid-zoom-title",children:s("i18n.mermaidDiagram")}),(0,r.jsxs)("div",{className:"mermaid-zoom-actions",children:[(0,r.jsxs)("div",{className:"mermaid-zoom-stepper",children:[(0,r.jsx)("button",{type:"button",onClick:()=>l(e=>Math.max(.5,e-.25)),disabled:a<=.5,title:s("i18n.zoomOut"),"aria-label":s("i18n.zoomOut"),children:(0,r.jsx)("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)("path",{d:"M5 12h14"})})}),(0,r.jsxs)("span",{className:"mermaid-zoom-value",children:[Math.round(100*a),"%"]}),(0,r.jsx)("button",{type:"button",onClick:()=>l(e=>Math.min(3,e+.25)),disabled:a>=3,title:s("i18n.zoomIn"),"aria-label":s("i18n.zoomIn"),children:(0,r.jsx)("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)("path",{d:"M12 5v14M5 12h14"})})})]}),(0,r.jsx)("button",{type:"button",className:"mermaid-zoom-icon-button",onClick:()=>l(1),title:s("i18n.fitToWidth"),"aria-label":s("i18n.fitToWidth"),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",children:(0,r.jsx)("path",{d:"M8 3H3v5M16 3h5v5M8 21H3v-5M16 21h5v-5"})})}),(0,r.jsx)("button",{type:"button",className:"mermaid-zoom-icon-button",onClick:n,title:s("i18n.close"),"aria-label":s("i18n.close"),children:(0,r.jsx)("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)("path",{d:"M6 6l12 12M18 6 6 18"})})})]})]}),(0,r.jsx)("div",{className:"mermaid-zoom-viewport",onClick:e=>{e.target===e.currentTarget&&n()},children:(0,r.jsx)("div",{className:"mermaid-zoom-canvas",style:{width:`${100*a}%`},dangerouslySetInnerHTML:{__html:t}})})]})})}let i4={...iC.xJ,'pre[class*="language-"]':{...iC.xJ['pre[class*="language-"]']}};delete i4['pre[class*="language-"]'].background;let i8=(0,i.memo)(function(e){let{code:t,lang:n,headerAction:s,isStreaming:o}=e,{isDark:a}=iH(),{t:l}=(0,eG.s)(),[c,d]=(0,i.useState)(!1),u=iZ(),[p,h]=(0,i.useState)(()=>{var e;return!o&&iq()&&(e=t.length,iY||(iY=!0,setTimeout(()=>{iJ=2e3,iY=!1},0)),!(e>iJ)&&(iJ-=e,!0))});return(0,i.useEffect)(()=>{if(!o&&!p&&u){var e;return e=()=>h(!0),iG.push(e),i0(),()=>{let t=iG.indexOf(e);-1!==t&&iG.splice(t,1)}}},[o,p,u]),(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:n||"text"}),(0,r.jsxs)("div",{className:"markdown-code-actions",children:[s,(0,r.jsx)("button",{onClick:()=>{iV(t).then(()=>{d(!0),setTimeout(()=>d(!1),1500)})},className:"markdown-code-action",children:l(c?"i18n.copied":"i18n.copy")})]})]}),o?(0,r.jsx)("pre",{style:{margin:0,padding:"11px 13px",fontSize:"calc(12.5px + var(--chat-font-size-offset, 0px))",lineHeight:1.62,overflowX:"auto",backgroundColor:"color-mix(in srgb, var(--bg) 92%, var(--bg-panel))"},children:(0,r.jsx)("code",{style:{fontFamily:"var(--font-mono)"},children:t})}):(0,r.jsx)(iS.A,{language:p&&n||"text",style:a?i4:iC.vs,showLineNumbers:!0,lineNumberStyle:{color:"var(--text-dim)",fontStyle:"normal"},customStyle:{margin:0,padding:"11px 13px",fontSize:"calc(12.5px + var(--chat-font-size-offset, 0px))",lineHeight:1.62,fontWeight:"var(--font-mono-weight)",border:"none",borderRadius:0,backgroundColor:"color-mix(in srgb, var(--bg) 92%, var(--bg-panel))"},codeTagProps:{style:{fontFamily:"var(--font-mono)",fontWeight:"var(--font-mono-weight)"}},children:t})]})}),i3=(0,i.createContext)(!1);function i6(e){let{src:t,alt:n,cwd:s,...o}=e,a=(0,i.useContext)(i3);delete o.node;let l="string"==typeof t?t:void 0,c=l?rM(l,s):null,d=c?`/api/files/${ec(c)}?type=read`:l,u=(0,r.jsx)("img",{src:d,alt:n??"",loading:"lazy",...o});return!d||a?u:(0,r.jsx)(iw,{src:d,alt:n??"",className:"markdown-image",children:u})}let i5=(0,i.memo)(function(e){let{markdown:t,remarkPlugins:n,urlTransform:i,rehypePlugins:s,components:o}=e;return(0,r.jsx)(rq.oz,{remarkPlugins:n,rehypePlugins:s,urlTransform:i,components:o,children:t})}),i9=(0,i.memo)(function(e){let{children:t,className:n,isStreaming:s,cwd:o,onOpenFile:a,onNavigateLink:l,keepLineBreaks:c}=e,d=(0,i.useMemo)(()=>r7(t),[t]),u=(0,i.useMemo)(()=>s?function(e){let t=e.split("\n");if(/^---[ \t]*\r?$/.test(t[0]))return[e];let n=[],r=[],i=null,s=!1,o=!1,a=!1;for(let e of t){let t=""===e.trim();!a||t||i||s||o||!(r.length>0)||/^[ \t]/.test(e)||iy.test(e)||(n.push(r.join("\n")+"\n"),r=[]),r.push(e);let l=e.match(ib);if(l){let e=l[1][0],t=l[1].length;i?e===i.marker&&t>=i.size&&(i=null):i={marker:e,size:t}}else if(!i){let t=e.replace(ik,"");ij.test(t)&&(o=!0),(t.match(/\$\$/g)?.length??0)%2==1&&(s=!s)}a=t}return n.push(r.join("\n")),n}(d):[d],[s,d]),p=(0,i.useMemo)(()=>({code(e){let{className:t,children:n,...i}=e,o=t?.replace("language-","").toLowerCase()??"",a=String(n);return t?.includes("language-")||a.includes("\n")?"mermaid"===o?(0,r.jsx)(i1,{code:a.replace(/\n$/,""),isStreaming:s,defaultPreview:!0}):(0,r.jsx)(i8,{code:a.replace(/\n$/,""),lang:o,isStreaming:s}):(0,r.jsx)("code",{className:"markdown-inline-code",...i,children:n})},pre(e){let{children:t}=e;return(0,r.jsx)(r.Fragment,{children:t})},a(e){let{href:t,children:n,...i}=e;if(delete i.node,l&&t&&!r6(t)){let e=()=>l(t);return(0,r.jsx)(i3.Provider,{value:!0,children:(0,r.jsx)("a",{...i,role:"link",tabIndex:0,onClick:e,onKeyDown:t=>{"Enter"===t.key&&e()},children:n})})}let s=a?rM(t,o):null;return s&&a?(0,r.jsx)(i3.Provider,{value:!0,children:(0,r.jsx)("a",{href:t,...i,onClick:e=>{if(!rC(e))return;let n=e.currentTarget.getAttribute("target");n&&"_self"!==n||(e.preventDefault(),a(s,rT(t)??void 0))},children:n})}):(0,r.jsx)(i3.Provider,{value:!0,children:(0,r.jsx)("a",{href:t,...i,target:"_blank",rel:"noopener noreferrer",children:n})})},img:e=>(0,r.jsx)(i6,{cwd:o,...e}),ol(e){let{node:t,start:n,style:i,...s}=e,o=String(Math.abs((n??1)+Math.max(t?.children.filter(e=>"element"===e.type&&"li"===e.tagName).length??0,1)-1)).length;return(0,r.jsx)("ol",{start:n,style:{...i,"--ol-marker-digits":Math.max(o,2)},...s})},table(e){let{children:t}=e;return(0,r.jsx)("div",{className:"markdown-table-frame",children:(0,r.jsx)("div",{className:"markdown-table-wrap",children:(0,r.jsx)("table",{children:t})})})}}),[o,s,a,l]);return(0,r.jsx)("div",{className:["markdown-body",n].filter(Boolean).join(" "),children:u.map((e,t)=>(0,r.jsx)(i5,{markdown:e,remarkPlugins:c?ih:il,urlTransform:a?r3:r8,rehypePlugins:l?ix:ig,components:p},t))})});function i7(e){let{active:t,size:n=14}=e;return(0,r.jsxs)("svg",{width:n,height:n,viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":"true",style:{flexShrink:0},children:[(0,r.jsx)("path",{d:"M9.5 2A5.5 5.5 0 0 0 4 7.5c0 1.7.78 3.21 2 4.21V14a1 1 0 0 0 1 1h5a1 1 0 0 0 1-1v-2.29c1.22-1 2-2.51 2-4.21A5.5 5.5 0 0 0 9.5 2z",stroke:t?"#d4a017":void 0,fill:t?"rgba(250, 204, 21, 0.18)":"none",style:{filter:t?"drop-shadow(0 0 2px rgba(250, 204, 21, 0.35))":"none"}}),(0,r.jsx)("line",{x1:"7",y1:"18",x2:"12",y2:"18"}),(0,r.jsx)("line",{x1:"8",y1:"21",x2:"11",y2:"21"})]})}let se=/<(read-files|modified-files)>\s*([\s\S]*?)\s*<\/\1>/g,st=/(?:\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 sn(e){let t,n=[],r=null,i=0,s=0,o=0,a=0,l=[],c=[],d=()=>({lineNo:null,text:"",type:"empty"}),u=()=>{if(!r){l=[],c=[];return}let e=Math.max(l.length,c.length);for(let t=0;t<e;t++){let e=l[t]?{lineNo:l[t].lineNo,text:l[t].text,type:"removed"}:d(),n=c[t]?{lineNo:c[t].lineNo,text:c[t].text,type:"added"}:d();r.rows.push({type:"line",left:e,right:n})}l=[],c=[]};for(let d of e.split(/\r?\n/)){if(!(o>0||a>0)){if(d.startsWith("--- ")){u(),t=sr(d.slice(4));continue}if(d.startsWith("+++ ")){u(),r={oldPath:t,newPath:sr(d.slice(4)),rows:[]},n.push(r);continue}}let e=d.match(/^@@ -(\d+)(?:,(\d+))? \+(\d+)(?:,(\d+))? @@/);if(e){r||(r={rows:[]},n.push(r)),u(),i=Number(e[1]),s=Number(e[3]),o=void 0===e[2]?1:Number(e[2]),a=void 0===e[4]?1:Number(e[4]),r.rows.push({type:"hunk",text:d});continue}if(!r)continue;if(d.startsWith("\\ ")){u(),r.rows.push({type:"hunk",text:d});continue}let p=d[0],h=d.slice(1);" "===p?(u(),r.rows.push({type:"line",left:{lineNo:i++,text:h,type:"context"},right:{lineNo:s++,text:h,type:"context"}}),o>0&&o--,a>0&&a--):"-"===p?(l.push({lineNo:i++,text:h}),o>0&&o--):"+"===p?(c.push({lineNo:s++,text:h}),a>0&&a--):""!==d&&(u(),r.rows.push({type:"hunk",text:d}))}u();let p=n.filter(e=>e.rows.some(e=>"line"===e.type));return p.length>0?p:null}function sr(e){return e.split(" ")[0].trim()}let si=new Set,ss="pi-thinking-expanded",so="pi-thinking-expanded-changed";function sa(){try{return"true"===window.localStorage.getItem(ss)}catch{return!1}}function sl(e){let{files:t,onOpenFile:n}=e,{t:i}=(0,eG.s)();return 0===t.length?null:(0,r.jsx)("div",{"aria-label":i("chat.filesWritten"),style:{display:"flex",flexWrap:"wrap",alignItems:"center",gap:6,marginTop:6},children:t.map(e=>{let{filePath:t}=e,s=ed(t);return(0,r.jsxs)("button",{type:"button",title:t,"aria-label":i("chat.openWrittenFile",{name:s}),onClick:()=>n?.(t),style:{display:"inline-flex",alignItems:"center",gap:4,padding:"2px 8px",fontSize:12,fontFamily:"var(--font-mono)",color:"var(--text)",background:"var(--bg-subtle)",border:"1px solid var(--border)",borderRadius:6,cursor:"pointer"},children:[t3(s,12),(0,r.jsx)("span",{children:s})]},t)})})}let sc="codemode",sd=new Set(["running","ok","error","cancelled"]);function su(e){return"object"==typeof e&&null!==e&&!Array.isArray(e)}function sp(e){return"number"==typeof e&&Number.isFinite(e)?e:void 0}function sh(e){if(!su(e)||!Array.isArray(e.calls))return{calls:[],omitted:0};let t=e.calls.flatMap(e=>{let t=function(e){if(!su(e)||"string"!=typeof e.name)return null;let t="string"==typeof e.status&&sd.has(e.status)?e.status:"ok",n=sp(e.durationMs),r=sp(e.cost);return{id:"string"==typeof e.id?e.id:"",name:e.name,args:"string"==typeof e.args?e.args:"",status:t,...void 0!==n?{durationMs:n}:{},..."string"==typeof e.error&&e.error?{error:e.error}:{},...void 0!==r&&r>0?{cost:r}:{}}}(e);return t?[t]:[]}),n=sp(e.omittedCalls);return{calls:t,omitted:void 0!==n&&n>0?Math.floor(n):0}}let sf=/^Script (completed|failed)\nWall time ([\d.]+) seconds\nOutput:\n$/;function sm(e){return`$${e>=.01?e.toFixed(2):e.toPrecision(2)}`}let sg={running:{icon:"…",color:"#d97706"},ok:{icon:"✓",color:"#16a34a"},error:{icon:"✗",color:"#f87171"},cancelled:{icon:"⊘",color:"var(--text-dim)"}};function sx(e){var t;let{call:n}=e,{t:i}=(0,eG.s)(),s=sg[n.status],o=void 0===(t=n.durationMs)?"":t<1e3?`${Math.round(t)}ms`:`${(t/1e3).toFixed(1)}s`;return(0,r.jsxs)("li",{style:{display:"flex",flexDirection:"column",gap:2,minWidth:0},children:[(0,r.jsxs)("div",{style:{display:"flex",alignItems:"baseline",gap:6,minWidth:0},children:[(0,r.jsx)("span",{role:"img","aria-label":i(`codemode.status.${n.status}`),title:i(`codemode.status.${n.status}`),style:{color:s.color,width:12,flexShrink:0,textAlign:"center"},children:s.icon}),(0,r.jsx)("span",{style:{color:"var(--text-muted)",fontWeight:600,flexShrink:0},children:n.name}),n.args&&(0,r.jsx)("span",{style:{color:"var(--text-dim)",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",flex:1,minWidth:0},children:n.args}),o&&(0,r.jsx)("span",{style:{color:"var(--text-dim)",flexShrink:0,marginLeft:"auto",fontVariantNumeric:"tabular-nums"},children:o}),void 0!==n.cost&&(0,r.jsx)("span",{style:{color:"var(--text-dim)",flexShrink:0,fontVariantNumeric:"tabular-nums"},children:sm(n.cost)})]}),n.error&&(0,r.jsx)("div",{style:{color:"#f87171",paddingLeft:18,whiteSpace:"pre-wrap",overflowWrap:"anywhere"},children:n.error})]})}function sv(e){let t,{calls:n,omitted:s,isError:o}=e,{t:a}=(0,eG.s)(),[l,c]=(0,i.useState)(!1);if(0===n.length&&0===s)return null;let d=l?0:Math.max(0,n.length-20),u=d>0?n.slice(d):n,p=(t=n.filter(e=>void 0!==e.cost)).length>1?t.reduce((e,t)=>e+(t.cost??0),0):null;return(0,r.jsxs)("div",{style:{borderTop:o?"1px solid rgba(248,113,113,0.25)":"1px solid rgba(34,197,94,0.2)",background:"var(--bg-subtle)",padding:"6px 10px",fontFamily:"var(--font-mono)",fontSize:"calc(11.5px + var(--chat-font-size-offset, 0px))",lineHeight:1.5,display:"flex",flexDirection:"column",gap:3,minWidth:0},children:[(0,r.jsx)("div",{style:{color:"var(--text-dim)",fontFamily:"inherit",fontSize:11},children:a("codemode.calls")}),s>0&&(0,r.jsx)("div",{style:{color:"var(--text-dim)"},children:a("codemode.omittedCalls",{count:s})}),d>0&&(0,r.jsx)("button",{type:"button",onClick:()=>c(!0),style:{alignSelf:"flex-start",padding:0,border:"none",background:"none",color:"var(--accent)",cursor:"pointer",font:"inherit"},children:a("codemode.showEarlierCalls",{count:d})}),(0,r.jsx)("ul",{style:{listStyle:"none",margin:0,padding:0,display:"flex",flexDirection:"column",gap:3,minWidth:0},children:u.map((e,t)=>(0,r.jsx)(sx,{call:e},e.id||`${d+t}`))}),null!==p&&(0,r.jsx)("div",{style:{color:"var(--text-dim)"},children:a("codemode.modelCost",{cost:sm(p)})})]})}let sb=new Map,sy="transcriptNotices";function sj(e){if("object"!=typeof e||null===e)return[];let t=e[sy];return Array.isArray(t)?t:[]}function sk(e){return e<1e3?e.toString():e<1e4?`${(e/1e3).toFixed(1)}k`:e<1e6?`${Math.round(e/1e3)}k`:e<1e7?`${(e/1e6).toFixed(1)}M`:`${Math.round(e/1e6)}M`}let sw="#d97706";function sS(e,t){let n=t>=.01?`$${t.toFixed(2)}`:void 0;return n?e("transcriptNotice.costSuffix",{cost:n}):""}function sC(e,t){switch(t.kind){case"cache_miss":{let n={tokens:sk(t.missedTokens),cost:sS(e,t.missedCost)};if(t.modelChanged)return e("transcriptNotice.cacheMissModelSwitch",n);if(void 0!==t.idleMinutes)return e("transcriptNotice.cacheMissIdle",{...n,minutes:t.idleMinutes});return e("transcriptNotice.cacheMiss",n)}case"cache_warm":var n;return e("transcriptNotice.cacheWarmed",{note:t.note?e("transcriptNotice.cacheWarmedNote",{note:t.note}):"",cost:(n=t.cost,`$${n.toFixed(6).replace(/(\.\d{3}\d*?)0+$/,"$1")}`)});case"summary_cost":return e("compaction"===t.source?"transcriptNotice.compactionCost":"transcriptNotice.branchSummaryCost",{tokens:sk(t.tokens),cost:sS(e,t.cost)});case"thinking_dropped":return e(1===t.count?"transcriptNotice.thinkingDroppedOne":"transcriptNotice.thinkingDropped",{count:t.count})}}let sN=(0,i.memo)(function(e){let{notices:t}=e,{t:n}=(0,eG.s)(),i=t.filter(e=>"summary_cost"!==e.kind||"compaction"!==e.source);return 0===i.length?null:(0,r.jsx)("div",{className:"transcript-notices",style:{display:"flex",flexDirection:"column",gap:2,margin:"-6px 0 12px"},children:i.map((e,t)=>{let i="cache_warm"!==e.kind;return(0,r.jsxs)("div",{style:{display:"flex",alignItems:"flex-start",gap:6,fontSize:12,lineHeight:1.5,color:i?sw:"var(--text-dim)",overflowWrap:"anywhere"},children:[i&&(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",style:{flexShrink:0,marginTop:3},children:[(0,r.jsx)("path",{d:"M10.3 3.9 1.8 18a2 2 0 0 0 1.7 3h17a2 2 0 0 0 1.7-3L13.7 3.9a2 2 0 0 0-3.4 0z"}),(0,r.jsx)("line",{x1:"12",y1:"9",x2:"12",y2:"13"}),(0,r.jsx)("line",{x1:"12",y1:"17",x2:"12.01",y2:"17"})]}),(0,r.jsx)("span",{children:sC(n,e)})]},t)})})}),sE=/[\u3000-\u30ff\u3400-\u9fff\uf900-\ufaff\u{20000}-\u{2fa1f}\uac00-\ud7af]/u;function s$(e){let t=0,n=0;for(let r of e)sE.test(r)?t++:n++;return t+n/4}let sM=new Map;function sI(e){let{children:t,className:n,...s}=e,{t:o}=(0,eG.s)(),[a,l]=(0,i.useState)(!1);if(t.length<=1e5)return(0,r.jsx)(i9,{className:n,...s,children:t});if(!a){var c;return(0,r.jsxs)("button",{onClick:()=>l(!0),style:{display:"block",width:"100%",margin:"4px 0",padding:"7px 10px",border:"1px solid var(--border)",borderRadius:6,background:"var(--bg-panel)",color:"var(--text-muted)",cursor:"pointer",fontSize:12,textAlign:"left"},children:["⚠ ",o("i18n.largeMessageReveal",{size:(c=t.length)>=1e6?`${(c/1e6).toFixed(1)} MB`:c>=1e3?`${Math.round(c/1e3)} KB`:`${c} B`})]})}return(0,r.jsx)("div",{className:n,style:{maxHeight:420,overflow:"auto",fontSize:"calc(12px + var(--chat-font-size-offset, 0px))",lineHeight:1.5},children:(0,r.jsx)("pre",{style:{margin:0,padding:"8px 10px",whiteSpace:"pre-wrap",wordBreak:"break-word",fontFamily:"var(--font-mono)",color:"var(--text-muted)"},children:t})})}function sT(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 s=t.toLocaleDateString([],{month:"short",day:"numeric",year:t.getFullYear()!==n.getFullYear()?"numeric":void 0});return`${s} ${i}`}let sR=(0,i.memo)(function(e){let{message:t,isStreaming:n,toolResults:i,modelNames:s,cwd:o,onOpenFile:a,onOpenSubagent:l,entryId:c,searchBlock:d,onFork:u,forking:p,onEditContent:h,onCancelEdit:f,isEditing:m,showTimestamp:g,prevTimestamp:x,sessionId:v,writtenFiles:b,turnDurationMs:y,onCompact:j,isCompacting:k,compactError:w}=e;return"user"===t.role?(0,r.jsx)(sL,{message:t,cwd:o,onOpenFile:a,entryId:c,onFork:u,forking:p,onEditContent:h,onCancelEdit:f,isEditing:m}):"assistant"===t.role?(0,r.jsx)(sA,{message:t,isStreaming:n,toolResults:i,modelNames:s,cwd:o,onOpenFile:a,onOpenSubagent:l,showTimestamp:g,prevTimestamp:x,sessionId:v,entryId:c,searchBlock:d,writtenFiles:b,turnDurationMs:y,onCompact:j,isCompacting:k,compactError:w}):"toolResult"===t.role?null:"custom"===t.role?"compaction"===t.customType?(0,r.jsx)(sG,{message:t}):(0,r.jsx)(s1,{message:t,cwd:o,onOpenFile:a}):"bashExecution"===t.role?(0,r.jsx)(s6,{message:t,sessionId:v}):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.modelNames===t.modelNames&&e.cwd===t.cwd&&e.onOpenFile===t.onOpenFile&&e.onOpenSubagent===t.onOpenSubagent&&e.entryId===t.entryId&&e.searchBlock===t.searchBlock&&e.onFork===t.onFork&&e.forking===t.forking&&e.onEditContent===t.onEditContent&&e.onCancelEdit===t.onCancelEdit&&e.isEditing===t.isEditing&&e.showTimestamp===t.showTimestamp&&e.prevTimestamp===t.prevTimestamp&&e.writtenFiles===t.writtenFiles&&e.turnDurationMs===t.turnDurationMs&&e.sessionId===t.sessionId&&e.onCompact===t.onCompact&&e.isCompacting===t.isCompacting&&e.compactError===t.compactError);function sL(e){let{message:t,cwd:n,onOpenFile:s,entryId:o,onFork:a,forking:l,onEditContent:c,onCancelEdit:d,isEditing:u}=e,{t:p}=(0,eG.s)(),[h,f]=(0,i.useState)(!1),[m,g]=(0,i.useState)(!1),[x,v]=(0,i.useState)(!1),b=("string"==typeof t.content?t.content:t.content.filter(e=>"text"===e.type).map(e=>e.text).join("\n")).replace(/\r\n?/g,"\n"),y="string"==typeof t.content?[]:t.content.filter(e=>"image"===e.type),j=em(b),k=j?.search(/\s/)??-1,w=j?-1===k?j:j.slice(0,k):"",S=j&&-1!==k?j.slice(k+1):"",C=sT(t.timestamp),N=!!o&&!!a,E=j??b,$=j?function(e,t){if("string"==typeof e.content)return{...e,content:t};let n=[],r=!1;for(let i of e.content){if("text"!==i.type){n.push(i);continue}r||(n.push({...i,text:t}),r=!0)}return r||n.unshift({type:"text",text:t}),{...e,content:n}}(t,j):t,M=y.length>0&&(0,r.jsx)("div",{style:{display:"flex",gap:6,flexWrap:"wrap",marginBottom:8*!!b},children:y.map((e,t)=>{let n=e.source?"base64"===e.source.type?`data:${e.source.media_type};base64,${e.source.data}`:e.source.url??"":e.data?`data:${e.mimeType};base64,${e.data}`:"";return(0,r.jsx)(iw,{src:n,children:(0,r.jsx)("img",{src:n,alt:"",style:{maxWidth:240,maxHeight:240,borderRadius:8,objectFit:"contain",display:"block",border:"1px solid var(--border)"}})},t)})}),I=!!o&&!!c,T=!!u&&!!d;return(0,r.jsxs)("div",{style:{marginBottom:16,display:"flex",flexDirection:"column",alignItems:"flex-end"},onMouseEnter:()=>f(!0),onMouseLeave:()=>f(!1),children:[(0,r.jsx)("div",{style:{display:"flex",alignItems:"flex-end",gap:6,maxWidth:"85%"},children:(0,r.jsx)("div",{className:"user-message-bubble",style:{flex:1,minWidth:0,background:u?"color-mix(in srgb, var(--accent) 14%, var(--user-bg))":"var(--user-bg)",border:u?"1px solid color-mix(in srgb, var(--accent) 62%, var(--user-bg))":"1px solid var(--border)",boxShadow:u?"0 0 0 2px color-mix(in srgb, var(--accent) 16%, transparent)":void 0,borderRadius:12,padding:"8px 12px",fontSize:"calc(14px + var(--chat-font-size-offset, 0px))",lineHeight:1.6,color:"var(--text)",wordBreak:"break-word",maxHeight:300,overflowY:"auto"},children:j?(0,r.jsxs)("div",{style:{display:"flex",flexDirection:"column",gap:6,minWidth:0},children:[M,(0,r.jsxs)("div",{style:{display:"flex",alignItems:"flex-start",gap:8,flexWrap:"wrap"},children:[(0,r.jsxs)("button",{onClick:()=>v(e=>!e),title:p(x?"i18n.collapse":"i18n.expand"),"aria-expanded":x,style:{display:"flex",alignItems:"center",gap:6,flexShrink:0,padding:0,background:"none",border:"none",cursor:"pointer",color:"var(--accent)",fontFamily:"var(--font-mono)",fontSize:"calc(13px + var(--chat-font-size-offset, 0px))",textAlign:"left"},children:[(0,r.jsx)("span",{style:{overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:w}),(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,opacity:.75,transform:x?"rotate(180deg)":"none",transition:"transform 0.15s"},"aria-hidden":"true",children:(0,r.jsx)("polyline",{points:"6 9 12 15 18 9"})})]}),S&&(0,r.jsx)("span",{style:{color:"var(--text)",fontSize:"calc(14px + var(--chat-font-size-offset, 0px))",lineHeight:1.6,whiteSpace:"pre-wrap",wordBreak:"break-word",minWidth:0,flex:1},children:S})]}),x&&(0,r.jsx)(i9,{className:"markdown-user-message",keepLineBreaks:!0,cwd:n,onOpenFile:s,children:b})]}):(0,r.jsxs)(r.Fragment,{children:[M,b&&(0,r.jsx)(sI,{className:"markdown-user-message",keepLineBreaks:!0,cwd:n,onOpenFile:s,children:b})]})})}),(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:+!!h,pointerEvents:h?"auto":"none",transition:"opacity 0.12s"},children:(0,r.jsxs)("button",{onClick:()=>{iV(E).then(()=>{g(!0),setTimeout(()=>g(!1),1500)})},title:p("i18n.copyMessage"),style:{display:"flex",alignItems:"center",gap:4,padding:"3px 8px",height:22,background:"none",border:"none",borderRadius:5,color:m?"var(--accent)":"var(--text-dim)",cursor:"pointer",fontSize:11,fontWeight:400,whiteSpace:"nowrap",transition:"color 0.12s"},onMouseEnter:e=>{m||(e.currentTarget.style.color="var(--accent)")},onMouseLeave:e=>{m||(e.currentTarget.style.color="var(--text-dim)")},children:[m?(0,r.jsx)("svg",{width:"11",height:"11",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"1.8",strokeLinecap:"round",strokeLinejoin:"round",children:(0,r.jsx)("polyline",{points:"20 6 9 17 4 12"})}):(0,r.jsxs)("svg",{width:"11",height:"11",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"1.8",strokeLinecap:"round",strokeLinejoin:"round",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"})]}),p(m?"i18n.copied":"i18n.copy")]})}),(N||I||T)&&(0,r.jsxs)("div",{style:{display:"flex",gap:3,opacity:h||l||T?1:0,pointerEvents:h||l||T?"auto":"none",transition:"opacity 0.12s"},children:[I&&!T&&(0,r.jsxs)("button",{onClick:()=>c($,o),title:p("i18n.editFromHereTitle"),style:{display:"flex",alignItems:"center",gap:4,padding:"3px 8px",height:22,background:"none",border:"none",borderRadius:5,color:"var(--text-dim)",cursor:"pointer",fontSize:11,fontWeight:400,whiteSpace:"nowrap",transition:"color 0.12s"},onMouseEnter:e=>{e.currentTarget.style.color="var(--accent)"},onMouseLeave:e=>{e.currentTarget.style.color="var(--text-dim)"},children:[(0,r.jsxs)("svg",{width:"11",height:"11",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"1.8",strokeLinecap:"round",strokeLinejoin:"round",children:[(0,r.jsx)("polyline",{points:"15 10 20 15 15 20"}),(0,r.jsx)("path",{d:"M4 4v7a4 4 0 0 0 4 4h12"})]}),p("i18n.editFromHere")]}),T&&(0,r.jsxs)("button",{type:"button",onClick:d,title:p("i18n.cancel"),"aria-label":p("i18n.cancel"),style:{display:"flex",alignItems:"center",gap:4,padding:"3px 8px",height:22,background:"none",border:"none",borderRadius:5,color:"var(--accent)",cursor:"pointer",fontSize:11,fontWeight:500,whiteSpace:"nowrap"},children:[(0,r.jsx)("svg",{width:"11",height:"11",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round","aria-hidden":"true",children:(0,r.jsx)("path",{d:"M6 6l12 12M18 6L6 18"})}),p("i18n.cancel")]}),N&&(0,r.jsxs)("button",{onClick:()=>{a(o)},disabled:l,title:p(l?"i18n.creatingSession":"i18n.newSessionTitle"),style:{display:"flex",alignItems:"center",gap:4,padding:"3px 8px",height:22,background:"none",border:"none",borderRadius:5,color:l?"var(--accent)":"var(--text-dim)",cursor:l?"not-allowed":"pointer",fontSize:11,fontWeight:400,whiteSpace:"nowrap",transition:"color 0.12s"},onMouseEnter:e=>{l||(e.currentTarget.style.color="var(--accent)")},onMouseLeave:e=>{l||(e.currentTarget.style.color="var(--text-dim)")},children:[(0,r.jsxs)("svg",{width:"11",height:"11",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"1.8",strokeLinecap:"round",strokeLinejoin:"round",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"})]}),p(l?"i18n.creating":"i18n.newSession")]})]}),C&&(0,r.jsx)("span",{style:{fontSize:10,color:"var(--text-dim)"},children:C})]})]})}function sA(e){var t,n,s;let o,a,l,c,d,u,{message:p,isStreaming:h,toolResults:f,modelNames:m,cwd:g,onOpenFile:x,onOpenSubagent:v,showTimestamp:b,prevTimestamp:y,sessionId:j,entryId:k,searchBlock:w,writtenFiles:S,turnDurationMs:C,onCompact:N,isCompacting:E,compactError:$}=e,{t:M}=(0,eG.s)(),I=b?sT(p.timestamp):null,T=(0,i.useMemo)(()=>(p.content??[]).map((e,t)=>({block:e,originalIndex:t})).filter(e=>{let{block:t}=e;return!rb(t,{isStreaming:h})}),[p.content,h]),R=(0,i.useMemo)(()=>T.map(e=>{let{block:t}=e;return t}),[T]),L=rj(p,{isStreaming:h}),A=rk(p,{isStreaming:h}),P=A&&!rw(p),[z,W]=(0,i.useState)(!1),[O,F]=(0,i.useState)(!1),D=(0,i.useRef)(null),B="number"!=typeof p.timestamp?null:`${p.provider??""}/${p.model??""}@${p.timestamp}`,_=(0,i.useRef)(B);_.current=B;let[H,U]=(0,i.useState)(null),K=(0,i.useRef)(T);K.current=T;let q=(0,i.useRef)(new Map),Z=(0,i.useMemo)(()=>{if(!h)return q.current=new Map,0;let e=new Map,t=0;for(let{block:n,originalIndex:r}of T){let i="text"===n.type?n.text:"thinking"===n.type?n.thinking:"toolCall"===n.type?n.rawInput??JSON.stringify(n.input??{})??"":null;if(null===i)continue;let s=function(e,t){var n,r;if(!e||!t.startsWith(e.text))return s$(t);let i=e.tokens,s=e.text.length;return s>0&&s<t.length&&(n=e.text.charCodeAt(s-1))>=55296&&n<=56319&&(r=t.charCodeAt(s))>=56320&&r<=57343&&(i-=1/4,s--),i+s$(t.slice(s))}(q.current.get(r),i);e.set(r,{text:i,tokens:s}),t+=s}return q.current=e,t},[T,h]),V=(0,i.useRef)(Z);V.current=Z;let J=(0,i.useRef)(new Map),[Y,G]=(0,i.useState)(new Map),X="assistant"===p.role?sF(p.durationMs):void 0,Q=(0,i.useMemo)(()=>{let e=X??(p.timestamp&&y?p.timestamp-y:void 0);if(void 0===e)return;let t=Math.round(e/1e3);return t>0?t:void 0},[X,p.timestamp,y]),ee=(0,i.useMemo)(()=>{let e=new Map;if(!f)return e;for(let[t,n]of f){let r=sF(n.durationMs)??(n.timestamp&&p.timestamp?n.timestamp-p.timestamp:void 0);void 0!==r&&r>=sD&&e.set(t,r)}return e},[f,p.timestamp]),et=R.filter(e=>"text"===e.type).map(e=>e.text).join("\n");if((0,i.useEffect)(()=>{if(!h){let e=new Date().getTime();G(t=>{let n=new Map(t);for(let[t,r]of J.current)n.has(t)||n.set(t,Math.round((e-r)/1e3));return n}),D.current=null,U(null);return}let e=setInterval(()=>{var e;let t,n=K.current,r=Date.now();n.forEach(e=>{let{originalIndex:t}=e;J.current.has(t)||J.current.set(t,r)}),G(e=>{let t=!1,i=new Map(e);for(let e=0;e<n.length-1;e++){let s=n[e].originalIndex,o=n[e+1].originalIndex;if(!i.has(s)&&J.current.has(s)){let e=J.current.get(s),n=J.current.get(o)??r;i.set(s,Math.round((n-e)/1e3)),t=!0}}return t?i:e});let i=V.current;if(0===i)return;D.current??=function(e,t,n){let r=null===e?void 0:sb.get(e);if(r)return r;let i={at:n,tokens:t};return null!==e&&(sb.set(e,i),sb.size>32&&sb.delete(sb.keys().next().value)),i}(_.current,i,r);let s=(e=D.current,(t=(r-e.at)/1e3)>.5?(i-e.tokens)/t:null);null!==s&&U(s)},300);return()=>clearInterval(e)},[h]),0===R.length&&!h&&!L&&!A)return null;return(0,r.jsxs)("div",{"data-message-role":"assistant","data-entry-id":k,style:{marginBottom:16},onMouseEnter:()=>W(!0),onMouseLeave:()=>W(!1),children:[(0,r.jsxs)("div",{className:"assistant-model-label",style:{fontSize:11,color:"var(--text-dim)",marginBottom:4,display:"flex",alignItems:"center",gap:6},children:[p.provider&&(0,r.jsx)("span",{children:(t=p.provider,n=p.model,a=t.toLowerCase(),l=n.toLowerCase(),c=Object.entries(m??{}).flatMap(e=>{let[t,n]=e,r=t.indexOf(":");return r>0&&t.slice(0,r).toLowerCase()===a?[{id:t.slice(r+1).toLowerCase(),name:n}]:[]}),c.find(e=>e.id===l)?.name??c.find(e=>l.endsWith(`/${e.id}`))?.name??Object.entries(m??{}).find(e=>{let[t]=e;return t.toLowerCase()===l})?.[1]??`${t}/${n}`)}),h&&(d=Math.round(Z),(0,r.jsx)(r.Fragment,{children:d>0&&(0,r.jsxs)("span",{style:{display:"flex",alignItems:"center",gap:4,color:"var(--text)"},title:M("i18n.estimatedTokens"),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"})]}),d]}),null!==H&&(u=H>=50?"#53b3cb":H>=30?"#9bc53d":H>=15?"#f9c22e":"#e01a4f",(0,r.jsxs)("span",{style:{marginLeft:6,padding:"1px 6px",borderRadius:4,background:u,color:"#fff",fontSize:11,fontWeight:400},children:[H.toFixed(1)," t/s"]}))]})}))]}),(0,r.jsx)("div",{style:{display:"flex",flexDirection:"column",gap:8},children:T.map(e=>{let{block:t,originalIndex:n}=e;return(0,r.jsx)(sP,{block:t,searchTarget:t===w,toolResults:f,isStreaming:h,streamingDuration:Y.get(n)??("thinking"===t.type?Q:void 0),toolCallDurations:ee,cwd:g,onOpenFile:x,onOpenSubagent:v,sessionId:j,entryId:k,blockIndex:n},n)})}),L&&(0,r.jsxs)("div",{role:"alert",style:{marginTop:8*(R.length>0),padding:"7px 10px",border:"1px solid rgba(239,68,68,0.3)",borderRadius:6,background:"rgba(239,68,68,0.07)",color:"#ef4444",fontFamily:"var(--font-mono)",fontSize:12,lineHeight:1.5,whiteSpace:"pre-wrap",overflowWrap:"anywhere"},children:["Error: ",L]}),A&&(0,r.jsxs)("div",{role:"alert",style:{marginTop:R.length>0||L?8:0,padding:"7px 10px",border:"1px solid rgba(234,179,8,0.3)",borderRadius:6,background:"rgba(234,179,8,0.07)",color:"#ca8a04",fontFamily:"var(--font-mono)",fontSize:12,lineHeight:1.5,whiteSpace:"pre-wrap",overflowWrap:"anywhere"},children:[M(P?"chat.truncatedWithoutAnswer":"chat.truncatedByOutputLimit"),P&&N&&(0,r.jsx)("button",{type:"button",onClick:N,disabled:E,style:{display:"block",marginTop:8,padding:"3px 8px",border:"1px solid currentColor",borderRadius:5,background:"transparent",color:"inherit",cursor:E?"default":"pointer",font:"inherit"},children:M(E?"chat.compacting":"chat.compactContext")}),P&&$&&(0,r.jsx)("div",{style:{marginTop:8,color:"#ef4444",whiteSpace:"pre-wrap"},children:$})]}),S&&S.length>0&&(0,r.jsx)(sl,{files:S,onOpenFile:x}),(0,r.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:8,marginTop:4},children:[(p.usage||void 0!==C)&&!h&&(0,r.jsx)("div",{style:{fontSize:11,color:"var(--text-dim)"},children:[p.usage?(s=p.usage,o=[],s.input&&o.push(`${s.input.toLocaleString()} in`),s.output&&o.push(`${s.output.toLocaleString()} out`),s.cacheRead&&o.push(`${s.cacheRead.toLocaleString()} cache R`),s.cacheWrite&&o.push(`${s.cacheWrite.toLocaleString()} cache W`),s.cost?.total&&o.push(`$${s.cost.total.toFixed(4)}`),o.join(" \xb7 ")):null,void 0!==C?M("chat.turnDuration",{time:rU(C)}):null].filter(Boolean).join(" \xb7 ")}),et&&!h&&(0,r.jsxs)("button",{onClick:()=>{iV(et).then(()=>{F(!0),setTimeout(()=>F(!1),1500)})},title:M("i18n.copyMessage"),style:{display:"flex",alignItems:"center",gap:4,padding:"3px 8px",height:22,background:"none",border:"none",borderRadius:5,color:O?"var(--accent)":"var(--text-dim)",cursor:"pointer",fontSize:11,fontWeight:400,whiteSpace:"nowrap",opacity:+!!z,pointerEvents:z?"auto":"none",transition:"opacity 0.12s, color 0.12s"},onMouseEnter:e=>{O||(e.currentTarget.style.color="var(--accent)")},onMouseLeave:e=>{O||(e.currentTarget.style.color="var(--text-dim)")},children:[O?(0,r.jsx)("svg",{width:"11",height:"11",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"1.8",strokeLinecap:"round",strokeLinejoin:"round",children:(0,r.jsx)("polyline",{points:"20 6 9 17 4 12"})}):(0,r.jsxs)("svg",{width:"11",height:"11",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"1.8",strokeLinecap:"round",strokeLinejoin:"round",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"})]}),M(O?"i18n.copied":"i18n.copy")]}),I&&!h&&(0,r.jsx)("span",{style:{fontSize:10,color:"var(--text-dim)",marginLeft:"auto"},children:I})]})]})}function sP(e){let{block:t,searchTarget:n,toolResults:i,isStreaming:s,streamingDuration:o,toolCallDurations:a,cwd:l,onOpenFile:c,onOpenSubagent:d,sessionId:u,entryId:p,blockIndex:h}=e;if("text"===t.type)return(0,r.jsx)("div",{"data-message-text":!0,"data-search-target":n||void 0,children:(0,r.jsx)(sz,{block:t,isStreaming:s,cwd:l,onOpenFile:c})});if("thinking"===t.type)return(0,r.jsx)(sO,{block:t,duration:o,sessionId:u,entryId:p,blockIndex:h});if("toolCall"===t.type){let e=i?.get(t.toolCallId),n=a?.get(t.toolCallId);return(0,r.jsx)(sB,{block:t,result:e,duration:n,onOpenSubagent:d})}return null}function sz(e){let{block:t,isStreaming:n,cwd:i,onOpenFile:s}=e;return(0,r.jsx)(sI,{isStreaming:n,cwd:i,onOpenFile:s,children:t.text})}function sW(e){let{text:t}=e,n=(0,i.useMemo)(()=>(function(e){let t=[],n=0;for(;e.length-n>8e3;){let r=n+8e3,i=r+8e3,s=e.slice(r,i+1),o=s.indexOf("\n");for(;o>=0&&/\n\r?$/.test(e.slice(r+o-2,r+o));)o=s.indexOf("\n",o+1);if(o>=0){let i=r+o;if(i===e.length-1)break;t.push({text:e.slice(n,i),lineBreak:!0}),n=i+1}else if(e.length>i){let r=e.charCodeAt(i-1),s=r>=55296&&r<=56319?i-1:i;t.push({text:e.slice(n,s),lineBreak:!1}),n=s}else break}return t.push({text:e.slice(n),lineBreak:!1}),t})(t),[t]);return 1===n.length?t:n.map((e,t)=>(0,r.jsx)("div",{children:e.text},t))}function sO(e){var t;let{block:n,duration:s,sessionId:o,entryId:a,blockIndex:l}=e,{t:c}=(0,eG.s)(),[d,u]=(0,i.useState)(sa),[p,h]=(0,i.useState)(null),[f,m]=(0,i.useState)(!1),[g,x]=(0,i.useState)(null),v=`${o}:${a}:${l}`,[b,y]=(0,i.useState)(v);b!==v&&(y(v),h(null),m(!1),x(null));let j=(0,i.useRef)(c);j.current=c;let k=(t=n.thinking,t.trimStart().match(/^[^\r\n]{0,240}/u)?.[0].trimEnd()??"");return(0,i.useEffect)(()=>{let e=()=>u(sa());return window.addEventListener(so,e),()=>window.removeEventListener(so,e)},[]),(0,i.useEffect)(()=>{if(!d||!n.deferred||null!==p)return;if(!o||!a)return void x(j.current("i18n.thinkingUnavailable"));let e=!1;return m(!0),x(null),(function(e,t,n){let r=`${e}:${t}:${n}`,i=sM.get(r);if(i)return sM.delete(r),sM.set(r,i),i;let s=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 sM.delete(r),e});if(sM.set(r,s),sM.size>100){let e=sM.keys().next().value;e&&sM.delete(e)}return s})(o,a,l).then(t=>{e||(h(t),m(!1))}).catch(t=>{e||(x(t instanceof Error?t.message:String(t)),m(!1))}),()=>{e=!0}},[d,n.deferred,p,o,a,l]),(0,r.jsxs)("div",{style:{display:"flex",alignItems:"flex-start",gap:6,minWidth:0,border:"1px solid var(--border)",borderRadius:7,padding:"6px 10px",background:"var(--bg)",fontFamily:"var(--font-mono)",fontSize:"calc(11px + var(--chat-font-size-offset, 0px))",lineHeight:1.5},children:[(0,r.jsxs)("button",{type:"button","aria-expanded":d,"aria-label":`${c("i18n.thinking")}${k?`: ${k}`:""}`,title:c("i18n.thinking"),onClick:()=>u(e=>!e),style:{display:"inline-flex",alignItems:"center",gap:6,width:d?14:"100%",flexShrink:+!d,minWidth:0,minHeight:"1.5em",padding:0,background:"transparent",border:"none",color:"var(--text-muted)",cursor:"pointer",font:"inherit",textAlign:"left"},children:[(0,r.jsx)(i7,{active:d}),!d&&(0,r.jsx)("span",{style:{minWidth:0,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:k?(0,r.jsx)(rq.oz,{allowedElements:[],unwrapDisallowed:!0,skipHtml:!0,children:k}):"..."})]}),d&&(0,r.jsx)("div",{style:{flex:1,minWidth:0,color:g?"#f87171":"var(--text-muted)",whiteSpace:"pre-wrap",overflowWrap:"anywhere"},children:f?c("i18n.loadingThinking"):g??(0,r.jsx)(sW,{text:(n.deferred?p:n.thinking)??""})}),void 0!==s&&(0,r.jsxs)("span",{style:{flexShrink:0,color:"var(--text-dim)",fontVariantNumeric:"tabular-nums"},children:[s,"s"]})]})}function sF(e){return"number"==typeof e&&Number.isFinite(e)&&e>=0?e:void 0}let sD=100;function sB(e){var t,n,s,o;let a,{block:l,result:c,duration:d,onOpenSubagent:u}=e,{t:p}=(0,eG.s)(),[h,f]=(0,i.useState)(()=>{var e;return void 0!==(e=l.toolCallId)&&si.has(e)}),m=function(e){if(void 0!==e.rawInput||!rR(e.toolName))return null;let{content:t}=e.input;return"string"!=typeof t||""===t?null:Object.keys(e.input).every(e=>s3.has(e))?t:null}(l)??(s=l).rawInput??JSON.stringify(s.input,null,2),g=void 0!==l.rawInput,x=rL(l.toolName),v=c&&!c.isError?function(e){let t=e.details;if(!sV(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}(c):null,b=function(e,t){if(!rA(e.toolName))return null;let n=rF(rP(e.input,e.rawInput));if(n)return n;let r=t&&!t.isError?t.details:void 0;if(sV(r)){let e=rD(r.preview);if(e)return e}return null}(l,c),y=rA(l.toolName)?0===(a=function(e){let t=[];for(let n of e.matchAll(/^\*\*\* (?:Add|Delete|Update) File: (.+)$/gm)){let e=(n[1]??"").trim();e&&!t.includes(e)&&t.push(e)}return t}(rP((o=l).input,o.rawInput))).length?null:a.join(", ").slice(0,120):null,j=l.toolName!==sc||g?null:su(t=l.input)&&"string"==typeof t.code?t.code:null,k=null===j?null:{code:j,...sh(c?.details)},w=null!==k&&void 0!==c&&0===c.content.length,S=function(e,t){if(!e.startsWith("mcp__")||!("object"==typeof t&&null!==t&&!Array.isArray(t)))return null;let{server:n,tool:r}=t;return"string"==typeof n&&"string"==typeof r&&n&&r?{server:n,tool:r}:null}(l.toolName,c?.details),C=c?k?function(e){let[t,...n]=e;return t?.type==="text"&&"string"==typeof t.text&&sf.test(t.text)?n:[...e]}(c.content):c.content:[],N=c?C.filter(e=>"text"===e.type).map(e=>e.text).join("\n"):null,E=S&&null!==N?function(e){let t=e.trim();if(t.length>2e5||!/^[[{]/.test(t))return e;try{return JSON.stringify(JSON.parse(t),null,2)}catch{return e}}(N):N,$=s4(C),M=null!==E&&("(no output)"===E.trim()||""===E.trim()),I=(c?.isError??!1)||rA(l.toolName)&&rW(c?.details),T=(n=c?.details)&&"object"==typeof n&&"pi-web-subagent"===n.kind&&"string"==typeof n.sessionId?c.details:null,R=k?k.calls.length+k.omitted:0;return(0,r.jsxs)("div",{style:{borderRadius:7,overflow:"hidden",fontSize:12,border:I?"1px solid rgba(248,113,113,0.45)":"1px solid rgba(34,197,94,0.25)",background:I?"rgba(248,113,113,0.05)":"rgba(34,197,94,0.04)"},children:[(0,r.jsxs)("div",{style:{display:"flex",alignItems:"stretch",minWidth:0},children:[(0,r.jsxs)("button",{onClick:()=>{var e;let t=!h;e=l.toolCallId,e&&(t?si.add(e):si.delete(e)),f(t)},style:{display:"flex",alignItems:"center",gap:7,flex:1,minWidth:0,padding:"6px 10px",background:"none",border:"none",color:"var(--text-muted)",cursor:"pointer",fontSize:12,textAlign:"left"},children:[(0,r.jsx)("span",{title:S?l.toolName:void 0,style:{color:I?"#f87171":"#16a34a",fontFamily:"var(--font-mono)",fontWeight:600,fontSize:11,flexShrink:0},children:S?(0,r.jsxs)(r.Fragment,{children:[(0,r.jsxs)("span",{style:{fontWeight:500,opacity:.75},children:[S.server,"/"]}),S.tool]}):l.toolName}),(0,r.jsx)("span",{style:{color:"var(--text-dim)",fontFamily:"var(--font-mono)",fontSize:11,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",flex:1,minWidth:0},children:g?p("chat.generatingToolInput"):y??(k?function(e){for(let t of e.split(/\r?\n/)){let e=t.trim();if(e&&!e.startsWith("// @options:"))return e}return""}(k.code):function(e){let t=e.input;if(!t||"object"!=typeof t)return"";let n=Object.keys(t);return 0===n.length?"":"command"in t?String(t.command).slice(0,120):"path"in t?String(t.path).slice(0,120):"file_path"in t?String(t.file_path).slice(0,120):"pattern"in t?String(t.pattern).slice(0,120):"query"in t?String(t.query).slice(0,120):String(t[n[0]]).slice(0,120)}(l))}),R>0&&(0,r.jsx)("span",{style:{fontSize:11,color:"var(--text-dim)",flexShrink:0,fontVariantNumeric:"tabular-nums"},children:1===R?p("codemode.callCountOne"):p("codemode.callCount",{count:R})}),void 0!==d&&(0,r.jsx)("span",{style:{fontSize:11,color:"var(--text-dim)",flexShrink:0,fontVariantNumeric:"tabular-nums"},children:function(e){let t=e/1e3;if(t<60)return`${t.toFixed(1)}s`;let n=Math.floor(t),r=Math.floor(n/60),i=n%60;return r<60?`${r}m ${i}s`:`${Math.floor(r/60)}h ${r%60}m ${i}s`}(d)}),(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:h?"rotate(180deg)":"none",transition:"transform 0.15s"},children:(0,r.jsx)("polyline",{points:"2 3.5 5 6.5 8 3.5"})})]}),T&&u&&(0,r.jsx)("button",{type:"button",onClick:()=>u(T.sessionId,T.description||T.profile),title:p("subagent.openTab"),"aria-label":p("subagent.openTab"),style:{width:32,display:"grid",placeItems:"center",border:"none",borderLeft:"1px solid var(--border)",background:"none",color:"var(--text-muted)",cursor:"pointer",flexShrink:0},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)("rect",{x:"5",y:"7",width:"14",height:"11",rx:"2"}),(0,r.jsx)("path",{d:"M9 11h.01M15 11h.01M9 15h6M12 7V4M10 4h4"})]})})]}),h&&(g||!x)&&!b&&(0,r.jsx)("pre",{style:{margin:0,padding:"8px 10px",color:"var(--text-muted)",fontSize:"calc(12px + var(--chat-font-size-offset, 0px))",lineHeight:1.5,overflow:"auto",background:"var(--bg-subtle)",borderTop:I?"1px solid rgba(248,113,113,0.25)":"1px solid rgba(34,197,94,0.2)",whiteSpace:"pre-wrap",wordBreak:"break-all"},children:k?k.code.replace(/\r/g,"").trimEnd():m}),h&&k&&(0,r.jsx)(sv,{calls:k.calls,omitted:k.omitted,isError:I}),$.length>0&&(0,r.jsx)(sJ,{images:$,isError:I}),h&&b&&(0,r.jsx)("div",{style:{borderTop:"1px solid rgba(34,197,94,0.15)",background:"var(--bg)"},children:(0,r.jsx)(sU,{files:b})}),h&&c&&b&&I&&(0,r.jsx)(sY,{text:E??"",isEmpty:M,isError:I}),h&&c&&!b&&!w&&(v?(0,r.jsx)(s_,{diff:v}):(!M||0===$.length)&&(0,r.jsx)(sY,{text:E??"",isEmpty:M,isError:I}))]})}function s_(e){let{diff:t}=e;return(0,r.jsx)("div",{style:{borderTop:"1px solid rgba(34,197,94,0.15)",background:"var(--bg)"},children:(0,r.jsx)(sH,{text:t.text})})}function sH(e){let{text:t}=e,n=(0,i.useMemo)(()=>sn(t),[t]);return n?(0,r.jsx)(sU,{files:n}):(0,r.jsx)(sZ,{text:t})}function sU(e){let{files:t}=e,{t:n}=(0,eG.s)(),i=t.length>1;return(0,r.jsx)("div",{style:{maxHeight:560,overflowY:"auto",overflowX:"hidden",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)",fontWeight:"var(--font-mono-weight)",fontSize:"calc(12px + var(--chat-font-size-offset, 0px))",lineHeight:1.55},children:[i&&(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)(sK,{title:e.oldPath||n("i18n.before"),side:"left"}),(0,r.jsx)(sK,{title:e.newPath||n("i18n.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)(sq,{cell:e.left,side:"left"}),(0,r.jsx)(sq,{cell:e.right,side:"right"})]},t))})]},t))})}function sK(e){let{title:t,side:n}=e;return(0,r.jsx)("div",{title:t,style:{padding:"5px 10px",color:"var(--text-dim)",borderRight:"left"===n?"1px solid var(--border)":"none",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:t})}function sq(e){let{cell:t,side:n}=e,i="added"===t.type?"rgba(34,197,94,0.12)":"removed"===t.type?"rgba(248,113,113,0.13)":"empty"===t.type?"var(--bg-subtle)":"transparent",s="added"===t.type?"+":"removed"===t.type?"-":" ",o="added"===t.type?"#22c55e":"removed"===t.type?"#f87171":"var(--text-dim)";return(0,r.jsxs)("div",{style:{display:"flex",minWidth:0,background:i,borderRight:"left"===n?"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:t.lineNo??""}),(0,r.jsx)("span",{style:{width:18,padding:"0 5px",color:o,userSelect:"none",fontWeight:"context"===t.type||"empty"===t.type?400:700,flexShrink:0},children:s}),(0,r.jsx)("span",{style:{flex:1,minWidth:0,padding:"0 10px 0 0",color:"empty"===t.type?"var(--text-dim)":"var(--text)",whiteSpace:"pre-wrap",overflowWrap:"anywhere"},children:t.text||"\xa0"})]})}function sZ(e){let{text:t}=e,n=t.split(/\r?\n/);return(0,r.jsx)("div",{style:{maxHeight:520,overflowY:"auto",overflowX:"hidden",fontFamily:"var(--font-mono)",fontWeight:"var(--font-mono-weight)",fontSize:"calc(12px + var(--chat-font-size-offset, 0px))",lineHeight:1.55,minWidth:0},children:n.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?"rgba(34,197,94,0.12)":"removed"===n?"rgba(248,113,113,0.13)":"hunk"===n?"rgba(96,165,250,0.12)":"transparent",borderLeft:"added"===n?"3px solid #22c55e":"removed"===n?"3px solid #f87171":"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?"#22c55e":"removed"===n?"#f87171":"hunk"===n?"var(--accent)":"var(--text)"},children:e||"\xa0"})]},t)})})}function sV(e){return"object"==typeof e&&null!==e&&!Array.isArray(e)}function sJ(e){let{images:t,isError:n}=e;return(0,r.jsx)("div",{style:{display:"flex",gap:8,flexWrap:"wrap",padding:"10px",background:"var(--bg)",borderTop:`1px solid ${n?"rgba(248,113,113,0.3)":"rgba(34,197,94,0.15)"}`},children:t.map((e,t)=>{let n=s8(e);return n?(0,r.jsx)(iw,{src:n,style:{maxWidth:"100%"},children:(0,r.jsx)("img",{src:n,alt:"",loading:"lazy",style:{display:"block",maxWidth:"min(100%, 720px)",maxHeight:520,borderRadius:6,objectFit:"contain",border:"1px solid var(--border)"}})},`${n}-${t}`):null})})}function sY(e){let{text:t,isEmpty:n,isError:i}=e,{t:s}=(0,eG.s)();return(0,r.jsx)("div",{style:{borderTop:`1px solid ${i?"rgba(248,113,113,0.3)":"rgba(34,197,94,0.15)"}`,background:i?"rgba(248,113,113,0.04)":"var(--bg-subtle)"},children:(0,r.jsx)("pre",{style:{margin:0,padding:"8px 10px",color:i?"#f87171":n?"var(--text-dim)":"var(--text-muted)",fontSize:"calc(12px + var(--chat-font-size-offset, 0px))",lineHeight:1.5,overflow:"auto",maxHeight:400,background:"var(--bg)",whiteSpace:"pre-wrap",wordBreak:"break-all",fontStyle:n?"italic":"normal",opacity:n?.6:1},children:n?s("i18n.noOutput"):t})})}function sG(e){let{message:t}=e,{t:n}=(0,eG.s)(),[s,o]=(0,i.useState)(!1),a=s2(t.content),l=sT(t.timestamp),c=t.details?.tokensBefore,d=sj(t).find(e=>"summary_cost"===e.kind&&"compaction"===e.source);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:"compaction"}),l&&(0,r.jsx)("span",{style:{marginLeft:"auto",color:"var(--text-dim)",fontSize:10},children:l})]}),(0,r.jsxs)("div",{style:{padding:"11px 13px 12px"},children:[(0,r.jsxs)("button",{type:"button","aria-expanded":s,title:n(s?"i18n.collapse":"i18n.expand"),onClick:()=>o(e=>!e),style:{display:"flex",alignItems:"flex-start",gap:8,width:"100%",padding:0,border:"none",background:"transparent",color:"var(--text)",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,marginTop:4,color:"var(--text-muted)",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.jsxs)("span",{style:{minWidth:0},children:[(0,r.jsx)("span",{style:{display:"block",fontSize:"calc(15px + var(--chat-font-size-offset, 0px))",fontWeight:700,lineHeight:1.35},children:n("i18n.conversationCompacted")}),"number"==typeof c&&Number.isFinite(c)&&(0,r.jsx)("span",{style:{display:"block",marginTop:3,color:"var(--text-muted)",fontSize:"calc(13px + var(--chat-font-size-offset, 0px))",lineHeight:1.5},children:n("i18n.compactedFromTokens",{tokens:c.toLocaleString()})}),d&&(0,r.jsx)("span",{style:{display:"block",marginTop:2,color:sw,fontSize:"calc(12px + var(--chat-font-size-offset, 0px))",lineHeight:1.5},children:sC(n,d)})]})]}),s&&(0,r.jsx)(sX,{summary:a})]})]})})}function sX(e){let{summary:t}=e,{t:n}=(0,eG.s)(),s=(0,i.useMemo)(()=>{let e,n,r,i,s;return e=[],n=[],r=t.match(st),i=r?.[1]??"",s=r?.index===void 0?t:t.slice(0,r.index),i.replace(se,(t,r,i)=>{let s=i.split(/\r?\n/).map(e=>e.trim()).filter(Boolean);return"read-files"===r?e.push(...s):n.push(...s),""}),{body:s.trim(),readFiles:e,modifiedFiles:n}},[t]);return(0,r.jsxs)("div",{style:{marginTop:10},children:[(0,r.jsx)("div",{style:{marginBottom:10,color:"var(--text)",fontSize:"calc(14px + var(--chat-font-size-offset, 0px))",lineHeight:1.5},children:n("i18n.compactionDescription")}),s.body?(0,r.jsx)(i9,{className:"markdown-compaction-message",children:s.body}):(0,r.jsx)("span",{style:{color:"var(--text-dim)",fontSize:12},children:n("i18n.noSummary")}),(0,r.jsx)(sQ,{readFiles:s.readFiles,modifiedFiles:s.modifiedFiles})]})}function sQ(e){let{readFiles:t,modifiedFiles:n}=e,{t:i}=(0,eG.s)();if(0===t.length+n.length)return null;let s=[];return t.length>0&&s.push(`${t.length} read`),n.length>0&&s.push(`${n.length} modified`),(0,r.jsxs)("details",{className:"compaction-file-details",children:[(0,r.jsx)("summary",{children:i("i18n.fileContext",{details:s.join(", ")})}),n.length>0&&(0,r.jsx)(s0,{title:i("i18n.modifiedFiles"),files:n}),t.length>0&&(0,r.jsx)(s0,{title:i("i18n.readFiles"),files:t})]})}function s0(e){let{title:t,files:n}=e;return(0,r.jsxs)("div",{className:"compaction-file-section",children:[(0,r.jsx)("div",{className:"compaction-file-title",children:t}),(0,r.jsx)("ul",{className:"compaction-file-list",children:n.map(e=>(0,r.jsx)("li",{children:e},e))})]})}function s1(e){let{message:t,cwd:n,onOpenFile:s}=e,{t:o}=(0,eG.s)(),[a,l]=(0,i.useState)(!0),[c,d]=(0,i.useState)(!1),[u,p]=(0,i.useState)(!1),h=s2(t.content),f=s4(t.content),m=void 0!==t.details,g=m?function(e){try{return JSON.stringify(e,null,2)}catch{return String(e)}}(t.details):"",x=t.customType||"extension",v=sT(t.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.jsx)("div",{style:{display:"flex",alignItems:"center",gap:8,padding:"7px 10px",borderBottom:a?"1px solid var(--border)":"none",background:"var(--bg-panel)",color:"var(--text-muted)",fontSize:12},children:(0,r.jsxs)("button",{type:"button",onClick:()=>l(e=>!e),"aria-expanded":a,title:o(a?"i18n.collapse":"i18n.expand"),style:{display:"flex",alignItems:"center",gap:8,minWidth:0,flex:1,padding:0,border:"none",background:"none",color:"inherit",cursor:"pointer",fontSize:"inherit",textAlign:"left"},children:[(0,r.jsx)("span",{style:{color:"var(--text-muted)",fontFamily:"var(--font-mono)",fontSize:11,fontWeight:650,flexShrink:0},children:x}),!a&&h&&(0,r.jsx)("span",{style:{color:"var(--text-dim)",fontSize:11,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",minWidth:0},children:h.slice(0,300).replace(/\s+/g," ").trim()}),v&&(0,r.jsx)("span",{style:{marginLeft:"auto",color:"var(--text-dim)",fontSize:10,flexShrink:0},children:v}),(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","aria-hidden":"true",style:{flexShrink:0,transform:a?"rotate(180deg)":"none",transition:"transform 0.15s"},children:(0,r.jsx)("polyline",{points:"2 3.5 5 6.5 8 3.5"})})]})}),a&&(0,r.jsxs)(r.Fragment,{children:[(0,r.jsxs)("div",{style:{padding:"6px 9px"},children:[f.length>0&&(0,r.jsx)("div",{style:{display:"flex",gap:6,flexWrap:"wrap",marginBottom:8*!!h},children:f.map((e,t)=>{let n=s8(e);return n?(0,r.jsx)(iw,{src:n,children:(0,r.jsx)("img",{src:n,alt:"",style:{maxWidth:240,maxHeight:240,borderRadius:6,objectFit:"contain",display:"block",border:"1px solid var(--border)"}})},t):null})}),h?(0,r.jsx)(i9,{className:"markdown-custom-message",cwd:n,onOpenFile:s,children:h}):(0,r.jsx)("span",{style:{color:"var(--text-dim)",fontSize:12},children:o("i18n.noMessage")})]}),(0,r.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:8,padding:"4px 9px",borderTop:"1px solid var(--border)",background:"var(--bg-subtle)"},children:[h||g?(0,r.jsx)("button",{onClick:()=>{iV(h||g).then(()=>{p(!0),setTimeout(()=>p(!1),1500)})},style:{padding:"3px 7px",border:"none",background:"none",color:u?"var(--accent)":"var(--text-dim)",cursor:"pointer",fontSize:11},children:o(u?"i18n.copied":"i18n.copy")}):null,m&&(0,r.jsx)("button",{onClick:()=>d(e=>!e),style:{marginLeft:"auto",padding:"3px 7px",border:"none",background:"none",color:"var(--text-dim)",cursor:"pointer",fontSize:11},children:o(c?"i18n.hideDetails":"i18n.showDetails")})]}),m&&c&&(0,r.jsx)("pre",{style:{margin:0,padding:"9px 10px",borderTop:"1px solid var(--border)",background:"var(--bg)",color:"var(--text-muted)",fontSize:"calc(12px + var(--chat-font-size-offset, 0px))",lineHeight:1.5,whiteSpace:"pre-wrap",wordBreak:"break-word",maxHeight:360,overflow:"auto",fontFamily:"var(--font-mono)"},children:g})]})]})})}function s2(e){return"string"==typeof e?e:e.filter(e=>"text"===e.type).map(e=>e.text).join("\n")}function s4(e){return"string"==typeof e?[]:e.filter(e=>"image"===e.type)}function s8(e){return e.source?"base64"===e.source.type?`data:${e.source.media_type};base64,${e.source.data}`:e.source.url??"":e.data?`data:${e.mimeType};base64,${e.data}`:""}let s3=new Set(["path","file_path","content"]);function s6(e){let{message:t,sessionId:n}=e,[s,o]=(0,i.useState)(null),[a,l]=(0,i.useState)(!1),[c,d]=(0,i.useState)(null),u=!t.output&&void 0===t.exitCode&&!t.cancelled,p=t.cancelled||void 0!==t.exitCode&&0!==t.exitCode,h=n&&t.fullOutputPath?`/api/agent/${encodeURIComponent(n)}/bash-output?path=${encodeURIComponent(t.fullOutputPath)}`:null,f=t.truncated&&h&&null===s,m=s??t.output;async function g(){if(h){l(!0),d(null);try{let e=await fetch(h),t=await e.json();t.success?o(t.data?.output??""):d(t.error??"failed")}catch(e){d(String(e))}finally{l(!1)}}}let x=t.excludeFromContext?"bash (local)":"bash",v={type:"toolCall",toolCallId:`bash-${t.timestamp??""}`,toolName:x,input:{command:t.command}},b=u?void 0:{role:"toolResult",toolCallId:v.toolCallId,toolName:x,content:m?[{type:"text",text:m}]:[],isError:p,timestamp:t.timestamp};return(0,r.jsxs)("div",{style:{margin:"6px 0"},children:[(0,r.jsx)(sB,{block:v,result:b}),t.truncated&&h&&(0,r.jsxs)("div",{style:{padding:"4px 10px",fontSize:11,marginTop:-1},children:[f&&(0,r.jsx)("button",{onClick:g,disabled:a,style:{background:"none",border:"none",color:"var(--accent)",cursor:a?"default":"pointer",fontSize:11,padding:0,textDecoration:"underline"},children:a?"loading…":"view full output"}),(0,r.jsx)("a",{href:`${h}&download=1`,style:{marginLeft:10*!!f,color:"var(--accent)",fontSize:11,textDecoration:"underline"},children:"download full output"}),c&&(0,r.jsxs)("span",{style:{marginLeft:6,color:"var(--text-dim)",fontSize:11},children:["(",c,")"]})]})]})}function s5(e){if(!e||"object"!=typeof e||"string"!=typeof e.data||"string"!=typeof e.mimeType||!e.mimeType.startsWith("image/"))return!1;let t=function(e){if(!e||e.length%4!=0)return null;let t=e.endsWith("==")?2:+!!e.endsWith("="),n=e.length-t;for(let t=0;t<n;t+=1){var r;if(!((r=e.charCodeAt(t))>=65&&r<=90||r>=97&&r<=122||r>=48&&r<=57||43===r||47===r))return null}for(let t=n;t<e.length;t+=1)if("="!==e[t])return null;return e.length/4*3-t}(e.data);return null!==t&&t<=0xa00000}let s9=new Map;function s7(e){return{value:e.value,images:e.images.map(e=>({...e}))}}function oe(e){return!e.value&&0===e.images.length}function ot(e){let t=s9.get(e);return t?s7(t):null}function on(e,t){oe(t)?s9.delete(e):s9.set(e,s7(t))}function or(e){s9.delete(e)}function oi(e,t){return e.trim()?t.trim()?`${e}
9
-
10
- ${t}`:e:t}function os(e,t,n,r){let i=[...t??[],...r].filter(s5).slice(0,10).map(e=>{let{data:t,mimeType:n}=e;return{data:t,mimeType:n}});return{value:oi(e,n),images:i}}function oo(e,t,n){if(e===t)return n?s7(n):ot(t);let r=ot(e),i=n&&!oe(n)?s7(n):r??(n?s7(n):null),s=ot(t);if(or(e),!i)return s;let o=s?os(s.value,s.images,i.value,i.images):i;return on(t,o),s7(o)}let oa=/^([ \t]*)([-*+])([ \t]+)(\[[ xX]\](?:[ \t]+|$))?/,ol=/^([ \t]*)(\d{1,9})([.)])([ \t]+)(\[[ xX]\](?:[ \t]+|$))?/,oc=/^([ \t]*)(\d{1,3})(、)([ \t]*)/,od=/^[ \t]*([-*_])(?:[ \t]*\1){2,}[ \t]*$/,ou=/^[ \t]{0,3}(`{3,}|~{3,})/;function op(e){return"mcp"===e.name&&e.sourceInfo?.path==="builtin:mcp"}function oh(e){return"/mcp"===e.trim()}let of="pi-enter-send-mode",om="enter",og=null,ox=new Set;function ov(){return null===og&&(og=function(){try{let e=window.localStorage.getItem(of);return"ctrlEnter"===e?"ctrlEnter":"enter"}catch{return om}}()),og}function ob(e){return ox.add(e),()=>{ox.delete(e)}}function oy(e){og=e;try{window.localStorage.setItem(of,e)}catch{}ox.forEach(e=>e())}function oj(){return(0,i.useSyncExternalStore)(ob,ov,()=>om)}let ok="pi-chat-content-width",ow="pi-chat-content-font-size",oS={width:820,fontSize:14},oC=null,oN=new Set;function oE(e){let t=Number(e);return Number.isFinite(t)?Math.max(820,Math.min(2e3,Math.round(t))):820}function o$(e){let t=Number(e??14);return Number.isFinite(t)?Math.max(12,Math.min(24,Math.round(t))):14}function oM(e){try{return window.localStorage.getItem(e)}catch{return null}}function oI(e){let{width:t,fontSize:n}=e;"u">typeof document&&(document.documentElement.style.setProperty("--chat-content-max-width",`${t}px`),document.documentElement.style.setProperty("--chat-content-font-size",`${n}px`))}function oT(){return oC||oI(oC={width:oE(oM(ok)),fontSize:o$(oM(ow))}),oC}function oR(e){return oN.add(e),()=>{oN.delete(e)}}function oL(e,t){let n="width"===e?oE(t):o$(t);oI(oC={...oT(),[e]:n});try{window.localStorage.setItem("width"===e?ok:ow,String(n))}catch{}oN.forEach(e=>e())}let oA=e=>oL("width",e),oP=e=>oL("fontSize",e);function oz(){return{...(0,i.useSyncExternalStore)(oR,oT,()=>oS),setWidth:oA,setFontSize:oP}}let oW=[{value:100,label:"settings.fontWeightThin"},{value:200,label:"settings.fontWeightExtraLight"},{value:300,label:"settings.fontWeightLight"},{value:400,label:"settings.fontWeightRegular"},{value:500,label:"settings.fontWeightMedium"},{value:600,label:"settings.fontWeightSemiBold"}],oO={ui:"pi-ui-font-family",mono:"pi-mono-font-family",uiWeight:"pi-ui-font-weight",monoWeight:"pi-mono-font-weight"},oF={ui:"",mono:"",uiWeight:400,monoWeight:400};function oD(e){let t="string"==typeof e?Number(e):e;return oW.find(e=>e.value===t)?.value??400}function oB(e){return"string"==typeof e&&e.length<=500?e:""}let o_=new Set(["serif","sans-serif","monospace","cursive","fantasy","system-ui","ui-serif","ui-sans-serif","ui-monospace","ui-rounded"]),oH=["ui","mono"],oU=Object.keys(oO),oK=null,oq=new Set;function oZ(){let e={...oF};for(let t of oH)try{e[t]=oB(window.localStorage.getItem(oO[t]));let n=`${t}Weight`;e[n]=oD(window.localStorage.getItem(oO[n]))}catch{}return e}function oV(e){for(let t of oH){let n=`--font-${t}`,r=function(e,t){let n=oB(t).split(",").flatMap(e=>{let t=e.trim().replace(/\s+/g," "),n=t.length>=2&&('"'===t[0]||"'"===t[0])&&t.endsWith(t[0]);return(n&&(t=t.slice(1,-1).trim()),t)?[!n&&o_.has(t.toLowerCase())?t.toLowerCase():JSON.stringify(t)]:[]}).join(", ");return n?`${n}, var(--font-${e}-default)`:""}(t,e[t]);r?document.documentElement.style.setProperty(n,r):document.documentElement.style.removeProperty(n);let i=e[`${t}Weight`];400===i?document.documentElement.style.removeProperty(`${n}-weight`):document.documentElement.style.setProperty(`${n}-weight`,String(i))}}function oJ(){return oK||oV(oK=oZ()),oK}function oY(){oq.forEach(e=>e())}function oG(e){if(null!==e.key&&!Object.values(oO).includes(e.key))return;let t=oZ(),n=oJ();oU.every(e=>t[e]===n[e])||(oK=t,oV(t),oY())}function oX(e){return 0===oq.size&&window.addEventListener("storage",oG),oq.add(e),oJ(),()=>{oq.delete(e),0===oq.size&&window.removeEventListener("storage",oG)}}function oQ(e){let t=oJ(),n=oU.filter(n=>t[n]!==e[n]);if(n.length){for(let t of(oK=e,oV(e),n))try{e[t]===oF[t]?window.localStorage.removeItem(oO[t]):window.localStorage.setItem(oO[t],String(e[t]))}catch{}oY()}}function o0(e,t){oQ({...oJ(),[e]:oB(t)})}function o1(e,t){oQ({...oJ(),[`${e}Weight`]:oD(t)})}function o2(e){oQ({...oJ(),[e]:"",[`${e}Weight`]:400})}function o4(){return{...(0,i.useSyncExternalStore)(oX,oJ,()=>oF),setFontPreference:o0,setFontWeight:o1,resetFontPreference:o2}}function o8(e){let{filled:t,size:n}=e;return(0,r.jsx)("svg",{width:n,height:n,viewBox:"0 0 24 24",fill:t?"currentColor":"none",stroke:"currentColor",strokeWidth:"2",strokeLinejoin:"round","aria-hidden":"true",style:{flexShrink:0},children:(0,r.jsx)("polygon",{points:"12 2.5 14.9 8.6 21.5 9.4 16.6 13.9 17.9 20.5 12 17.2 6.1 20.5 7.4 13.9 2.5 9.4 9.1 8.6"})})}function o3(e){let{active:t,onSelect:n,star:s,gutter:o=!!s,className:a,children:l}=e,c=e5(),[d,u]=(0,i.useState)(!1),[p,h]=(0,i.useState)(!1),f=!!(s&&!s.isDefault),m=f&&(d||p||c);return(0,r.jsxs)("div",{className:a,onMouseEnter:()=>u(!0),onMouseLeave:()=>u(!1),onFocus:()=>h(!0),onBlur:e=>{e.currentTarget.contains(e.relatedTarget)||h(!1)},style:{position:"relative",background:t?"var(--bg-selected)":d?"var(--bg-hover)":"transparent",transition:"background 0.1s"},children:[(0,r.jsxs)("button",{type:"button",role:"option","aria-selected":t,onClick:n,style:{display:"flex",alignItems:"center",gap:8,width:"100%",minWidth:0,padding:o?"7px 36px 7px 12px":"7px 12px",border:"none",background:"none",color:t?"var(--text)":"var(--text-muted)",cursor:"pointer",fontSize:12,fontWeight:t?600:400,textAlign:"left",whiteSpace:"nowrap"},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},"aria-hidden":"true",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}}),l]}),s?.isDefault&&(0,r.jsx)("span",{role:"img","aria-label":s.defaultLabel,title:s.defaultLabel,style:{position:"absolute",top:"50%",right:6,transform:"translateY(-50%)",display:"flex",alignItems:"center",justifyContent:"center",width:24,height:24,color:"var(--text-dim)"},children:(0,r.jsx)(o8,{filled:!0,size:10})}),s&&f&&(0,r.jsx)("button",{type:"button",title:s.saveLabel,"aria-label":s.saveLabel,tabIndex:m?0:-1,onClick:e=>{e.stopPropagation(),s.onSave()},style:{position:"absolute",top:"50%",right:6,transform:"translateY(-50%)",display:"flex",alignItems:"center",justifyContent:"center",width:24,height:24,padding:0,background:"var(--bg-hover)",border:"1px solid var(--border)",borderRadius:6,color:"var(--text-muted)",cursor:"pointer",opacity:+!!m,pointerEvents:m?"auto":"none",transition:"opacity 0.1s, background 0.12s, color 0.12s, border-color 0.12s"},onMouseEnter:e=>{e.currentTarget.style.background="var(--bg-selected)",e.currentTarget.style.color="var(--accent)",e.currentTarget.style.borderColor="rgba(37,99,235,0.35)"},onMouseLeave:e=>{e.currentTarget.style.background="var(--bg-hover)",e.currentTarget.style.color="var(--text-muted)",e.currentTarget.style.borderColor="var(--border)"},children:(0,r.jsx)(o8,{filled:!1,size:12})})]})}function o6(e){let t,n,s,o,a,l,c,d,u,{options:p,value:h,onChange:f,onClear:m,emptyLabel:g,selectedLabel:x,disabled:v=!1,busy:b=!1,isAutoSelection:y=!1,ariaLabel:j,variant:k="toolbar",placement:w="up",defaultValue:S,onSetDefault:C}=e,{t:N}=(0,eG.s)(),E=e5(),$=(0,i.useRef)(null),M=(0,i.useRef)(null),[I,T]=(0,i.useState)(!1),[R,L]=(0,i.useState)(null),[A,P]=(0,i.useState)(""),z=v||b,W=(t=A.trim().toLocaleLowerCase())?p.filter(e=>`${e.name} ${e.modelId}`.toLocaleLowerCase().includes(t)):p,O=p.length>8,F=[];for(let e of W){let t=F.find(t=>t.provider===e.provider);t?t.options.push(e):F.push({provider:e.provider,options:[e]})}let D=x??(h?p.find(e=>e.modelId===h.modelId&&e.provider===h.provider)?.name??h.modelId:g??(p.length>0?"Select model":"No models"));(0,i.useEffect)(()=>{let e=e=>{$.current&&!$.current.contains(e.target)&&M.current&&!M.current.contains(e.target)&&(T(!1),P(""))};return document.addEventListener("mousedown",e),()=>document.removeEventListener("mousedown",e)},[]),(0,i.useEffect)(()=>{z&&(T(!1),P(""))},[z]);let B="field"===k?{display:"flex",alignItems:"center",gap:7,width:"100%",minWidth:0,height:34,padding:"0 9px",overflow:"hidden",border:"1px solid var(--border)",borderRadius:5,background:z?"var(--bg-panel)":"var(--bg)",color:z?"var(--text-dim)":"var(--text)",cursor:z?"default":"pointer",fontSize:12,textAlign:"left"}:{display:"flex",alignItems:"center",justifyContent:E?"flex-start":void 0,gap:6,width:E?"100%":void 0,maxWidth:E?"100%":220,height:32,padding:E?"8px 10px":"8px 12px",overflow:"hidden",border:"none",borderRadius:9,background:I?"var(--bg-hover)":"none",color:"var(--text-muted)",cursor:z?"not-allowed":"pointer",fontSize:12,opacity:z?.5:1,transition:"background 0.12s, color 0.12s"};return(0,r.jsxs)("div",{ref:$,className:`model-selector is-${k}${z?" is-disabled":""}`,style:{position:"relative",width:"field"===k||E?"100%":void 0,minWidth:0,flex:"toolbar"===k&&E?"1 1 auto":void 0},onKeyDown:e=>{"Escape"===e.key&&I&&(e.preventDefault(),e.stopPropagation(),P(""),T(!1))},children:[(0,r.jsxs)("button",{type:"button","aria-label":j,"aria-haspopup":"listbox","aria-expanded":I,"aria-busy":b||void 0,disabled:z,title:b?"Switching model":z?D:p.length>0||m?"Change model":"No available models",style:B,onClick:e=>{let t=e.currentTarget.getBoundingClientRect();L({top:t.top,right:t.right,bottom:t.bottom,left:t.left,width:t.width}),T(e=>(e&&P(""),!e))},onMouseEnter:e=>{z||(e.currentTarget.style.background="var(--bg-hover)",e.currentTarget.style.color="var(--text)")},onMouseLeave:e=>{if(z){e.currentTarget.style.background="field"===k?"var(--bg-panel)":"none",e.currentTarget.style.color="field"===k?"var(--text-dim)":"var(--text-muted)";return}e.currentTarget.style.background=I?"var(--bg-hover)":"field"===k?"var(--bg)":"none",e.currentTarget.style.color="field"===k?"var(--text)":"var(--text-muted)"},children:[b?(0,r.jsx)("svg",{width:"11",height:"11",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2.4",strokeLinecap:"round",style:{animation:"spin 0.8s linear infinite",flexShrink:0},"aria-hidden":"true",children:(0,r.jsx)("path",{d:"M21 12a9 9 0 1 1-2.64-6.36"})}):(0,r.jsxs)("svg",{width:"11",height:"11",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":"true",style:{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:{flex:1,minWidth:0,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:D}),"field"===k&&(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",style:{flexShrink:0,color:"var(--text-dim)"},children:(0,r.jsx)("polyline",{points:"6 9 12 15 18 9"})})]}),I&&R&&(n=window.visualViewport?.height??window.innerHeight,s=window.visualViewport?.width??window.innerWidth,o=R.top-8,a=n-R.bottom-8,c=Math.max(120,Math.min((l="up"===w||o>a)?o:a,.6*n)),d=l?{bottom:n-R.top+6}:{top:R.bottom+6},u=E?{left:8,right:8,maxWidth:"calc(100vw - 16px)"}:{left:R.left,width:"max-content",minWidth:R.width,maxWidth:Math.max(R.width,s-R.left-8)},(0,r.jsxs)("div",{ref:M,role:"listbox","aria-label":j,style:{position:"fixed",...d,...u,zIndex:500,display:"flex",flexDirection:"column",maxHeight:c,overflow:"hidden",border:"1px solid var(--border)",borderRadius:8,background:"var(--bg)",boxShadow:l?"0 -4px 16px rgba(0,0,0,0.10)":"0 4px 16px rgba(0,0,0,0.10)"},children:[O&&(0,r.jsx)("div",{style:{flexShrink:0,padding:"6px 8px",borderBottom:"1px solid var(--border)"},children:(0,r.jsx)("input",{value:A,onChange:e=>P(e.target.value),placeholder:N("chat.filterModels"),"aria-label":N("chat.filterModels"),autoFocus:!E,autoComplete:"off",spellCheck:!1,style:{boxSizing:"border-box",width:"100%",minWidth:220*!E,padding:"5px 8px",border:"1px solid var(--border)",borderRadius:5,outline:"none",background:"var(--bg)",color:"var(--text)",fontFamily:"var(--font-mono)",fontSize:11}})}),(0,r.jsxs)("div",{style:{minHeight:0,overflowY:"auto"},children:[m&&!A.trim()&&(0,r.jsx)(o3,{active:!h,gutter:!!C,onSelect:()=>{T(!1),P(""),m()},children:(0,r.jsx)(o5,{label:g??"Default"})}),0===F.length?(0,r.jsx)("div",{style:{padding:"8px 12px",color:"var(--text-dim)",fontSize:12,whiteSpace:"nowrap"},children:A.trim()?N("chat.noMatchingModels"):"No available models"}):F.map((e,t)=>(0,r.jsxs)("div",{children:[F.length>1&&(0,r.jsx)("div",{style:{padding:"6px 12px 4px",borderTop:t>0||m?"1px solid var(--border)":"none",color:"var(--text-dim)",fontSize:10,fontWeight:600,letterSpacing:0,textTransform:"uppercase"},children:e.provider}),e.options.map(e=>(0,r.jsx)(o3,{active:e.modelId===h?.modelId&&e.provider===h?.provider,onSelect:()=>{let t;return t=e.modelId===h?.modelId&&e.provider===h?.provider,void(T(!1),P(""),(!t||y)&&f(e.provider,e.modelId))},star:C?{isDefault:e.modelId===S?.modelId&&e.provider===S?.provider,saveLabel:N("chat.saveDefaultModel"),defaultLabel:N("chat.defaultModel"),onSave:()=>{T(!1),P(""),C?.(e.provider,e.modelId)}}:void 0,children:(0,r.jsx)(o5,{label:e.name})},`${e.provider}:${e.modelId}`))]},e.provider))]})]}))]})}function o5(e){let{label:t}=e;return(0,r.jsx)("span",{title:t,style:{minWidth:0,overflow:"hidden",textOverflow:"ellipsis"},children:t})}let o9=["configured","chat-only","read-only","default","full"],o7={configured:"configured","chat-only":"none","read-only":"read-only",default:"default",full:"full"},ae={configured:"chat.toolsConfigured","chat-only":"chat.chatOnly","read-only":"chat.toolsReadOnly",default:"chat.toolsStandard",full:"chat.toolsFull"},at=new Intl.Collator(void 0,{numeric:!0,sensitivity:"base"});function an(e,t,n){return t<=0?0:((e+n)%t+t)%t}function ar(e,t,n,r){e.setRangeText(r,t,n,"end"),e.dispatchEvent(new Event("input",{bubbles:!0}))}function ai(e,t,n,r){let i=arguments.length>4&&void 0!==arguments[4]?arguments[4]:r.length,s=e.selectionStart,o=e.selectionEnd;if(e.focus(),s===o&&t<=s&&n>=o){let i=e.value.length-(n-t)+r.length;for(let n=s-t;n>0&&e.selectionStart>t&&document.execCommand("delete");n--);if(document.execCommand("insertText",!1,r))for(let t=n-o;t>0&&e.value.length>i&&document.execCommand("forwardDelete");t--);else ar(e,t,e.selectionStart+(n-o),r)}else e.setSelectionRange(t,n),document.execCommand("insertText",!1,r)||ar(e,t,n,r);i!==r.length&&e.setSelectionRange(t+i,t+i)}function as(e,t){let n=null,r=()=>{n=null,t(function(e,t){let n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:8;return Math.max(0,Math.floor(e-t-n))}(e.getBoundingClientRect().bottom,function(e){let t=window.visualViewport?.offsetTop??0;for(let n=e.parentElement;n;n=n.parentElement){let e=window.getComputedStyle(n).overflowY;("auto"===e||"scroll"===e||"hidden"===e||"clip"===e)&&(t=Math.max(t,n.getBoundingClientRect().top+n.clientTop))}return t}(e)))},i=()=>{null!==n&&cancelAnimationFrame(n),n=requestAnimationFrame(r)};r();let s=e.parentElement,o=s?.parentElement,a="u">typeof ResizeObserver&&s?new ResizeObserver(i):null;s&&a?.observe(s),o&&a?.observe(o);let l=window.visualViewport;return l?.addEventListener("resize",i),l?.addEventListener("scroll",i),window.addEventListener("resize",i),window.addEventListener("scroll",i,!0),()=>{a?.disconnect(),l?.removeEventListener("resize",i),l?.removeEventListener("scroll",i),window.removeEventListener("resize",i),window.removeEventListener("scroll",i,!0),null!==n&&cancelAnimationFrame(n)}}let ao=["auto","off","minimal","low","medium","high","xhigh","max"],aa={auto:"chat.reasoningAuto",off:"chat.reasoningOff",minimal:"chat.reasoningMinimal",low:"chat.reasoningLow",medium:"chat.reasoningMedium",high:"chat.reasoningHigh",xhigh:"chat.reasoningXhigh",max:"chat.reasoningMax"};function al(e){return e>=1e6?`${(e/1e6).toFixed(1)}M`:e>=1e3?`${Math.round(e/1e3)}k`:e.toLocaleString()}let ac=[{name:"compact",description:"chat.commandCompact",source:"builtin"},{name:"auto-compact",description:"chat.commandAutoCompact",source:"builtin"},{name:"reload",description:"chat.commandReload",source:"builtin"},{name:"name",description:"chat.commandName",source:"builtin"},{name:"session",description:"chat.commandSession",source:"builtin",availableWhileStreaming:!0},{name:"copy",description:"chat.commandCopy",source:"builtin",availableWhileStreaming:!0},{name:"clone",description:"chat.commandClone",source:"builtin"}];function ad(e){return function(e){let t=e.trim().match(/^\/([^\s]+)(?:\s|$)/);if(t)return ac.find(e=>e.name===t[1])}(e)?.availableWhileStreaming===!0}let au=["builtin","extension","prompt","skill"],ap={builtin:"chat.builtIn",extension:"chat.extensions",prompt:"chat.prompts",skill:"chat.skills"},ah={builtin:0,extension:1,prompt:2,skill:3};function af(e,t,n){let r=e.name.toLowerCase(),i=am(e,n).toLowerCase();return r===t?0:r.startsWith(t)?1:r.includes(t)?2:i.includes(t)?3:4}function am(e,t){return"builtin"===e.source?t(e.description):e.description??""}function ag(e,t){return"skill"===e.source&&!!e.name.startsWith("skill:")&&!0===t[e.name.slice(6)]}async function ax(e){let t=()=>{var t;return t=e.type,new Promise((n,r)=>{let i=new FileReader;i.onload=()=>{let e="string"==typeof i.result?i.result.split(",")[1]:void 0;e?n({data:e,mimeType:t}):r(Error("Failed to read image"))},i.onerror=r,i.readAsDataURL(e)})};if(!(e.size>1048576&&"image/gif"!==e.type)||"function"!=typeof createImageBitmap)return t();let n=await createImageBitmap(e).catch(()=>null);if(!n)return t();try{let r=Math.min(1,1024/Math.max(n.width,n.height)),i=document.createElement("canvas");i.width=Math.max(1,Math.round(n.width*r)),i.height=Math.max(1,Math.round(n.height*r));let s=i.getContext("2d");if(!s)return t();s.fillStyle="#fff",s.fillRect(0,0,i.width,i.height),s.drawImage(n,0,0,i.width,i.height);let o=i.toDataURL("image/jpeg",.85).split(",")[1];return o&&o.length<4*Math.ceil(e.size/3)?{data:o,mimeType:"image/jpeg"}:t()}catch{return t()}finally{n.close()}}function av(e){return{data:e.data,mimeType:e.mimeType}}function ab(e){return{...e,previewUrl:`data:${e.mimeType};base64,${e.data}`}}function ay(e){return(e??[]).filter(s5).slice(0,10).map(ab)}function aj(e){e.previewUrl.startsWith("blob:")&&URL.revokeObjectURL(e.previewUrl)}function ak(e){let{kind:t,text:n}=e;return(0,r.jsxs)("div",{title:n,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"===t?"color-mix(in srgb, var(--accent) 45%, transparent)":"var(--border)"}`,color:"steer"===t?"var(--accent)":"var(--text-dim)"},children:t}),(0,r.jsx)("span",{style:{minWidth:0,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:n})]})}function aw(e){let{tone:t,title:n,body:i,onClose:s}=e,o="error"===t?"239,68,68":"234,179,8";return(0,r.jsxs)("div",{role:"alert",style:{display:"flex",alignItems:"flex-start",gap:8,maxHeight:120,marginBottom:8,padding:"7px 10px",overflowY:"auto",border:`1px solid rgba(${o},0.3)`,borderRadius:6,background:`rgba(${o},0.07)`,color:`rgb(${o})`,fontSize:11,lineHeight:1.45},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:{flexShrink:0,marginTop:1},"aria-hidden":"true",children:[(0,r.jsx)("path",{d:"M10.3 2.9 1.8 17a2 2 0 0 0 1.7 3h17a2 2 0 0 0 1.7-3L13.7 2.9a2 2 0 0 0-3.4 0Z"}),(0,r.jsx)("line",{x1:"12",y1:"9",x2:"12",y2:"13"}),(0,r.jsx)("line",{x1:"12",y1:"17",x2:"12.01",y2:"17"})]}),(0,r.jsxs)("div",{style:{minWidth:0,flex:1},children:[(0,r.jsx)("div",{style:{fontWeight:600},children:n}),(0,r.jsx)("div",{style:{whiteSpace:"pre-wrap",overflowWrap:"anywhere"},children:i})]}),s&&(0,r.jsx)("button",{type:"button",onClick:s,"aria-label":"Dismiss",style:{flexShrink:0,background:"none",border:"none",padding:"0 2px",cursor:"pointer",color:"inherit",opacity:.7,fontSize:13,lineHeight:1},children:"\xd7"})]})}function aS(e){let{error:t}=e,{t:n}=(0,eG.s)();return t?(0,r.jsx)(aw,{tone:"error",title:n("chat.modelError"),body:t}):null}function aC(e){let{warnings:t}=e,{t:n}=(0,eG.s)();return t&&0!==t.length?(0,r.jsx)(aw,{tone:"warning",title:n(t.length>1?"chat.modelScopeWarnings":"chat.modelScopeWarning"),body:t.join("\n")}):null}let aN=(0,i.memo)((0,i.forwardRef)(function(e,t){let n,s,o,a,l,c,d,u,{onSend:p,onAbort:h,onSteer:f,onFollowUp:m,isStreaming:g,model:x,isAutoModelSelection:v,modelNames:b,modelList:y,modelError:j,modelScopeWarnings:k,onModelChange:w,modelSwitching:S,defaultModel:C,onSetDefaultModel:N,onCompact:E,onAbortCompaction:$,isCompacting:M,compactError:I,onDismissCompactError:T,compactResult:R,toolPreset:L,onToolPresetChange:A,thinkingLevel:P,isAutoThinkingSelection:z=!1,onThinkingLevelChange:W,availableThinkingLevels:O,thinkingLevelMap:F,savedDefaultThinkingLevel:D,onSetDefaultThinkingLevel:B,retryInfo:_,queuedMessages:H,inputHistory:U=[],onRecallQueue:K,slashCommands:q,slashCommandsLoading:Z,onLoadSlashCommands:V,onBuiltinCommand:J,soundEnabled:Y,onSoundToggle:G,onAudioUnlock:X,onPromptWithStreamingBehavior:Q,draftKey:ee,cwd:et,onAttachFiles:en,sessionStatsControl:er,compact:ei=!1}=e,{t:es}=(0,eG.s)(),{fontSize:eo}=oz(),{ui:ea,uiWeight:el}=o4(),ec=e5(),ed=oj(),[eu,ep]=(0,i.useState)(()=>ee?ot(ee)?.value??"":""),[eh,ef]=(0,i.useState)(!1),[em,eg]=(0,i.useState)(!1),[ex,ev]=(0,i.useState)(!1),[eb,ey]=(0,i.useState)(()=>ee?ay(ot(ee)?.images):[]),ej=eu.trimStart(),ek=0===eb.length&&ej.startsWith("!"),ew=ek&&ej.startsWith("!!"),[eS,eC]=(0,i.useState)(!1),[eN,eE]=(0,i.useState)(0),[e$,eM]=(0,i.useState)(null),[eI,eT]=(0,i.useState)(null),[eR,eL]=(0,i.useState)(!1),[eA,eP]=(0,i.useState)(null),[ez,eW]=(0,i.useState)(0),[eO,eF]=(0,i.useState)(!1),[eD,eB]=(0,i.useState)(!1),[e_,eH]=(0,i.useState)(0),[eU,eK]=(0,i.useState)(!1),eq=(0,i.useRef)(!1),[eZ,eV]=(0,i.useState)(null),[eJ,eY]=(0,i.useState)(!1),[eX,eQ]=(0,i.useState)(null),[e0,e1]=(0,i.useState)(null),e2=et&&e0?.cwd===et?e0.values:{},e4=(0,i.useRef)(null),e8=(0,i.useRef)(null),e3=(0,i.useRef)(null),e6=(0,i.useRef)(null),e9=(0,i.useRef)(null),e7=(0,i.useRef)(null),te=(0,i.useRef)(!1),tt=(0,i.useRef)(0),tn=(0,i.useRef)(!1),tr=(0,i.useRef)(null),ti=(0,i.useRef)([]),ts=(0,i.useRef)(null),to=(0,i.useRef)([]),ta=(0,i.useRef)([]),tl=(0,i.useRef)(null),tc=(0,i.useRef)(null),td=(0,i.useRef)(ee),tu=(0,i.useRef)(eu),tp=(0,i.useRef)(eb),th=(0,i.useRef)(0);tu.current=eu,tp.current=eb,(0,i.useImperativeHandle)(t,()=>({focus:()=>e4.current?.focus({preventScroll:!0}),insertIfEmpty(e){let t=e4.current;(t?t.value:eu).trim()||(tu.current=e,ep(e),eT(null),requestAnimationFrame(()=>{t&&(t.focus(),t.style.height="auto",t.style.height=`${Math.min(t.scrollHeight,200)}px`)}))},replaceMessage(e){var t,n,r;let i=e4.current;if(t=i?i.value:eu,n=tp.current.length,r=th.current,t.trim()||0!==n||0!==r)return;let s="string"==typeof e.content?e.content:e.content.filter(e=>"text"===e.type).map(e=>e.text).join("\n"),o=ay("string"==typeof e.content?[]:e.content.flatMap(e=>{if("image"!==e.type)return[];let t=e.source?.type==="base64"?e.source.data:e.data,n=e.source?.type==="base64"?e.source.media_type:e.mimeType;if("string"!=typeof t||"string"!=typeof n)return[];let r={data:t,mimeType:n};return s5(r)?[r]:[]}));tu.current=s,tp.current=o,ep(s),eT(null),eB(!1),ey(e=>(e.forEach(aj),o)),requestAnimationFrame(()=>{i&&(i.focus(),i.style.height="auto",i.style.height=`${Math.min(i.scrollHeight,200)}px`)})},prependText(e){if(!e.trim())return;let t=e4.current,n=[e,t?t.value:eu].filter(e=>e.trim()).join("\n\n");tu.current=n,ep(n),eT(null),requestAnimationFrame(()=>{t&&(t.focus(),t.setSelectionRange(n.length,n.length),t.style.height="auto",t.style.height=`${Math.min(t.scrollHeight,200)}px`)})},rekeyDraft(e,t){if(e===t)return;if(td.current!==e)return void oo(e,t);let n={value:tu.current,images:tp.current.map(av)},r=oo(e,t,n)??{value:"",images:[]},i=r.value===n.value&&r.images.length===n.images.length&&r.images.every((e,t)=>e.data===n.images[t]?.data&&e.mimeType===n.images[t]?.mimeType);if(td.current=t,i)return;let s=ay(r.images);tu.current=r.value,tp.current=s,ep(r.value),ey(e=>(e.forEach(aj),s)),eT(null),eB(!1)},restoreSubmission(e,t,n){if(!e.trim()&&!t?.length)return;let r=td.current,i=n??r,s=i===r,o=!s&&i?ot(i):null,a=os(e,t,s?tu.current:o?.value??"",s?tp.current.map(av):o?.images??[]);if(i&&on(i,a),!s)return;let l=t?.length?[...ay(t).slice(0,Math.max(0,10-tp.current.length)),...tp.current].slice(0,10):tp.current;tu.current=a.value,tp.current=l,ep(t=>{let n=oi(e,t);return tu.current=n,n}),eT(null),eB(!1),t?.length&&ey(e=>{let n=Math.max(0,10-e.length),r=ay(t).slice(0,n),i=r.length>0?[...r,...e]:e;return tp.current=i,i}),requestAnimationFrame(()=>{let e=e4.current;e&&(e.focus(),e.setSelectionRange(e.value.length,e.value.length),e.style.height="auto",e.style.height=`${Math.min(e.scrollHeight,200)}px`)})},insertText(e){let t=e4.current;if(!t)return void ep(t=>t+(t?" ":"")+e);let n=t.selectionStart??t.value.length,r=t.selectionEnd??t.value.length,i=t.value.slice(0,n);ai(t,n,r,(i.length>0&&!i.endsWith(" ")?" ":"")+e),eT(null)},addImages(e){tf(e)}}));let tf=(0,i.useCallback)(async e=>{if(ei)return;let t=Math.max(0,10-tp.current.length-th.current),n=e.filter(e=>e.type.startsWith("image/")&&e.size<=0xa00000).slice(0,t);if(n.length){th.current+=n.length;try{let e=await Promise.all(n.map(async e=>({...await ax(e),previewUrl:URL.createObjectURL(e)})));ey(t=>{let n=e.slice(0,Math.max(0,10-t.length));e.slice(n.length).forEach(aj);let r=[...t,...n];return tp.current=r,r})}finally{th.current-=n.length}}},[ei]),tm=(0,i.useCallback)(e=>{let t=Array.from(e.target.files??[]);e.target.value="",en?en(t):tf(t)},[en,tf]),tg=(0,i.useCallback)(e=>{ey(t=>{let n=[...t],[r]=n.splice(e,1);return r&&aj(r),tp.current=n,n})},[]),tx=(0,i.useCallback)(()=>{tp.current=[],ey(e=>(e.forEach(aj),[]))},[]),tv=(0,i.useCallback)(()=>{tu.current="",ep(""),eT(null),eB(!1),ee&&or(ee),td.current&&td.current!==ee&&or(td.current),tx(),e4.current&&(e4.current.style.height="auto")},[tx,ee]);(0,i.useEffect)(()=>{ee&&td.current===ee&&on(ee,{value:eu,images:eb.map(av)})},[eb,ee,eu]),(0,i.useEffect)(()=>{let e=td.current;if(e===ee)return;e&&on(e,{value:tu.current,images:tp.current.map(av)});let t=ee?ot(ee):null;td.current=ee;let n=t?.value??"",r=ay(t?.images);tu.current=n,tp.current=r,ep(n),eT(null),eB(!1),ey(e=>(e.forEach(aj),r))},[ee]);let tb=(0,i.useCallback)(()=>{let e=e4.current;e&&(e.style.height="auto",e.value&&(e.style.height=`${Math.min(e.scrollHeight,200)}px`))},[]);(0,i.useLayoutEffect)(tb,[eu,eo,ea,el,tb]),(0,i.useEffect)(()=>{let e=e4.current;if(!e)return;let t=-1,n=new ResizeObserver(e=>{let[n]=e;n.contentRect.width!==t&&(t=n.contentRect.width,tb())});return n.observe(e),()=>n.disconnect()},[tb]),(0,i.useEffect)(()=>{let e=e4.current;if(!e)return;let t=t=>{if("insertLineBreak"!==t.inputType||t.isComposing)return;let n=function(e,t,n){let r;if(t!==n)return null;let i=e.lastIndexOf("\n",t-1)+1,s=e.indexOf("\n",t),o=-1===s?e.length:s,a=e.slice(i,o),l=function(e){if(od.test(e))return null;let t=oa.exec(e);if(t)return{indent:t[1],marker:t[2],number:null,delimiter:"",spacing:t[3],task:void 0!==t[4],length:t[0].length};let n=ol.exec(e)??oc.exec(e);return n?{indent:n[1],marker:"",number:n[2],delimiter:n[3],spacing:n[4],task:void 0!==n[5],length:n[0].length}:null}(a);return!l||t-i<l.length||function(e){let t=null;for(let n of e.split("\n")){let e=ou.exec(n)?.[1];e&&(null===t?t=e:e[0]===t[0]&&e.length>=t.length&&n.trim()===e&&(t=null))}return null!==t}(e.slice(0,i))?null:""===a.slice(l.length).trim()?{start:i,end:o,text:""}:{start:t,end:t,text:`
11
- ${r=null===l.number?l.marker:`${String(Number(l.number)+1).padStart(l.number.length,"0")}${l.delimiter}`,`${l.indent}${r}${l.spacing}${l.task?"[ ] ":""}`}`}}(e.value,e.selectionStart,e.selectionEnd);n&&(t.preventDefault(),e.setSelectionRange(n.start,n.end),document.execCommand(n.text?"insertText":"delete",!1,n.text))};return e.addEventListener("beforeinput",t),()=>e.removeEventListener("beforeinput",t)},[]),(0,i.useEffect)(()=>()=>{tp.current.forEach(aj)},[]);let ty=(0,i.useCallback)(async e=>{if(eb.length||!e.startsWith("/")||!J)return!1;if(eq.current)return!0;eq.current=!0,eK(!0);try{var t,n;let r=await J(e);if(!r.handled)return!1;return r.error||(t=tu.current,n=tp.current.length,0!==n||t.trim()!==e)||tv(),!0}finally{eq.current=!1,eK(!1)}},[eb.length,tv,J]),tj=(0,i.useCallback)(async()=>{var e;let t=eu.trim();(t||eb.length)&&(X?.(),(!g||ad(e=t)||oh(e))&&await ty(t)||g||(tv(),p(t,eb.length?eb:void 0)))},[eu,eb,g,ty,p,tv,X]),tk=!ei&&eu.startsWith("/")&&!/\s/.test(eu.slice(1))?eu.slice(1).toLowerCase():null,tw=null===tk?[]:[...g?ac.filter(e=>e.availableWhileStreaming):ac,...q??[]].filter(e=>{let t=e.name.toLowerCase(),n=am(e,es).toLowerCase();return t.includes(tk)||n.includes(tk)}).sort((e,t)=>{let n=af(e,tk,es)-af(t,tk,es);return 0!==n?n:ah[e.source]-ah[t.source]||at.compare(e.name,t.name)}),{commands:tS,groups:tC}=(n=0,{commands:(s=au.map(e=>{let t=tw.filter(t=>t.source===e),r="skill"===e?[...t.filter(e=>!ag(e,e2)),...t.filter(e=>ag(e,e2))]:t;return{source:e,items:r.map(e=>({command:e,index:n++}))}}).filter(e=>e.items.length>0)).flatMap(e=>e.items.map(e=>{let{command:t}=e;return t})),groups:s}),tN=1===tw.length?es(tk?"chat.match":"chat.command"):es(tk?"chat.matches":"chat.commands",{count:tw.length}),tE=!!eu.trim()||eb.length>0,t$=eb.length>0&&!function(e,t){if(!e)return!0;let n=t?.find(t=>t.provider===e.provider&&t.id===e.modelId);return!n||!n.input||n.input.includes("image")}(x,y)&&!eO;(0,i.useEffect)(()=>{0===eb.length&&eF(!1)},[eb.length]);let tM=(0,i.useCallback)((e,t)=>{if(!et)return void eT(null);let n=t??e.length;eT(t6(e.slice(0,n)))},[et]),tI=eI?.query??null,tT=i.useMemo(()=>null!==tI&&eZ&&eZ.cwd===et?function(e,t){let n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:20,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:t9(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:t9(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||t5(e.entry.path)-t5(t.entry.path)||e.entry.path.localeCompare(t.entry.path)),i.slice(0,n).map(e=>e.entry)}(eZ.entries,tI):[],[tI,eZ,et]),tR=!!(tI&&eZ?.truncated&&eZ.cwd===et);(0,i.useEffect)(()=>{if(!tR||!et||!tI)return;let e=setTimeout(()=>{fetch(`/api/file-index?cwd=${encodeURIComponent(et)}&q=${encodeURIComponent(tI)}`).then(e=>{if(!e.ok)throw Error(`file search failed: ${e.status}`);return e.json()}).then(e=>eQ({cwd:et,query:tI,matches:e.matches??[]})).catch(()=>{})},150);return()=>clearTimeout(e)},[tR,tI,et]);let tL=tR&&null!==eX&&eX.cwd===et&&eX.query===tI,tA=tL?eX.matches:tT,tP=null===eI?null:`${eI.start}:${+!!eI.quoted}:${eI.query}`;(0,i.useEffect)(()=>{if(null===tP){eL(!1),eW(0);return}eL(!0),eW(0)},[tP]);let tz=null!==eI;(0,i.useEffect)(()=>{if(!tz||!et)return;let e=tl.current;e&&e.cwd===et&&Date.now()-e.fetchedAt<1e4||tc.current===et||(tc.current=et,eY(!0),fetch(`/api/file-index?cwd=${encodeURIComponent(et)}`).then(e=>{if(!e.ok)throw Error(`file index failed: ${e.status}`);return e.json()}).then(e=>{eV({cwd:et,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)=>t5(e.path)-t5(t.path)||e.path.localeCompare(t.path)),n}(e.files??[]),truncated:!!e.truncated}),tl.current={cwd:et,fetchedAt:Date.now()}}).catch(()=>{tl.current=null}).finally(()=>{tc.current=null,eY(!1)}))},[tz,et]);let tW=(0,i.useCallback)(e=>{if(!eI)return;let t=e4.current;if(!t)return;let n=t.selectionStart??t.value.length,r=n+(eI.quoted&&'"'===t.value[n]?1:0),i=function(e,t){let n=arguments.length>2&&void 0!==arguments[2]&&arguments[2],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 s=i?`@"${r}" `:`@${r} `;return{text:s,cursorOffset:s.length}}(e.path,e.isDir,eI.quoted),s=eI.start+i.cursorOffset;ai(t,eI.start,r,i.text,i.cursorOffset),eT(t6(t.value.slice(0,s)))},[eI]);(0,i.useEffect)(()=>{ez>=tA.length&&eW(Math.max(0,tA.length-1))},[tA.length,ez]),(0,i.useEffect)(()=>{to.current.length=tA.length},[tA.length]),(0,i.useEffect)(()=>{eR&&to.current[ez]?.scrollIntoView({block:"nearest",inline:"nearest"})},[ez,eR]),(0,i.useEffect)(()=>{e_>=U.length&&eH(Math.max(0,U.length-1))},[U.length,e_]),(0,i.useEffect)(()=>{ta.current.length=U.length},[U.length]),(0,i.useEffect)(()=>{eD&&ta.current[e_]?.scrollIntoView({block:"nearest",inline:"nearest"})},[e_,eD]);let tO=(0,i.useCallback)(e=>{ep(e),eB(!1),eH(0),eT(null),requestAnimationFrame(()=>{let t=e4.current;t&&(t.focus(),t.setSelectionRange(e.length,e.length),t.style.height="auto",t.style.height=`${Math.min(t.scrollHeight,200)}px`)})},[]),tF=(0,i.useCallback)(e=>{let t=`/${e.name} `;ep(t),eC(!1),eE(0),requestAnimationFrame(()=>{let e=e4.current;e&&(e.focus(),e.setSelectionRange(t.length,t.length),e.style.height="auto",e.style.height=`${Math.min(e.scrollHeight,200)}px`)})},[]),tD=(0,i.useCallback)(e=>{let t=eu.trim();if(!t&&!eb.length)return;X?.();let n=eb.length?eb:void 0,r=()=>{if(t.startsWith("/")&&Q){tv(),Q(t,"steer"===e?"steer":"followUp",n);return}tv(),"steer"===e&&f?f(t,n):"followup"===e&&m&&m(t,n)};!eb.length&&J&&ad(t)?ty(t):!eb.length&&J&&oh(t)?ty(t).then(e=>{e||r()},()=>r()):r()},[eu,eb,J,Q,f,m,tv,X,ty]),tB=(0,i.useCallback)(e=>{let t=tS.length-1;if(t<0)return 0;if("left"===e)return Math.max(0,eN-1);if("right"===e)return Math.min(t,eN+1);let n=ti.current[eN];if(!n)return"down"===e?Math.min(t,eN+1):Math.max(0,eN-1);let r=n.getBoundingClientRect(),i=r.left+r.width/2,s=r.top+r.height/2,o=-1,a=1/0;for(let n=0;n<=t;n+=1){if(n===eN)continue;let t=ti.current[n];if(!t)continue;let r=t.getBoundingClientRect(),l=r.top+r.height/2-s;if("down"===e?l<=4:l>=-4)continue;let c=1e3*Math.abs(l)+Math.abs(r.left+r.width/2-i);c<a&&(o=n,a=c)}return o>=0?o:"down"===e?Math.min(t,eN+1):Math.max(0,eN-1)},[tS.length,eN]),t_=(0,i.useCallback)(e=>{let t=e.nativeEvent,n="Enter"===e.key&&!e.shiftKey,r=ec||"ctrlEnter"===ed?n&&(e.ctrlKey||e.metaKey):n,i=ec?r:n,s=Date.now()-tt.current<100,o=te.current||t.isComposing||229===t.keyCode;if(i&&(o||s)){s&&e.preventDefault();return}if(eD&&!o){if("ArrowDown"===e.key){e.preventDefault(),eH(e=>Math.min(Math.max(0,U.length-1),e+1));return}if("ArrowUp"===e.key){e.preventDefault(),eH(e=>Math.max(0,e-1));return}if("Escape"===e.key){e.preventDefault(),eB(!1);return}if(("Tab"===e.key||i)&&U[e_]){e.preventDefault(),tO(U[e_]);return}}if(eS&&null!==tk){if("ArrowDown"===e.key){e.preventDefault(),eE(tB("down"));return}if("ArrowUp"===e.key){e.preventDefault(),eE(tB("up"));return}if("ArrowRight"===e.key){e.preventDefault(),eE(tB("right"));return}if("ArrowLeft"===e.key){e.preventDefault(),eE(tB("left"));return}if("Escape"===e.key){e.preventDefault(),eC(!1);return}let t=tS[eN];if("Tab"===e.key&&t){e.preventDefault(),tF(t);return}if(i&&t){e.preventDefault(),r&&function(e,t,n){if("builtin"===t.source)return"builtin"===t.source&&e.trim()===`/${t.name}`&&(!n||!0===t.availableWhileStreaming);return op(t)&&oh(e)}(eu,t,g)?(eC(!1),tj()):tF(t);return}}if(eR&&null!==eI&&!o){if("ArrowDown"===e.key){e.preventDefault(),eW(e=>an(e,tA.length,1));return}if("ArrowUp"===e.key){e.preventDefault(),eW(e=>an(e,tA.length,-1));return}if("Escape"===e.key){e.preventDefault(),eL(!1);return}if(("Tab"===e.key||i)&&tA[ez]){e.preventDefault(),tW(tA[ez]);return}}if("ArrowUp"===e.key&&!o&&!g&&U.length>0&&0===eu.trim().length){e.preventDefault(),eC(!1),eL(!1),eH(U.length-1),eB(!0);return}if("Escape"===e.key&&!o&&g&&h){e.preventDefault(),h();return}r&&(e.preventDefault(),g&&(f||m)?tD(e.altKey&&m||!f?"followup":"steer"):tj())},[ec,ed,g,f,m,h,eS,tk,tS,eN,tF,tD,tj,tB,eR,eI,tA,ez,tW,eD,U,e_,tO,eu]),tH=(0,i.useCallback)(()=>{let e=e4.current;e&&(e.style.height="auto",e.style.height=`${Math.min(e.scrollHeight,200)}px`)},[]),tU=(0,i.useCallback)(e=>{let t=Array.from(e.clipboardData?.items??[]).filter(e=>e.type.startsWith("image/"));if(!ei&&t.length){e.preventDefault(),tf(t.map(e=>e.getAsFile()).filter(e=>null!==e));return}let n=e.clipboardData.getData("text/html"),r=e.clipboardData.getData("text/plain");if(!n||!r)return;let i=new DOMParser().parseFromString(n,"text/html"),s=function(e,t){let n="",r=0,i=!1;for(let{label:s,href:o,occurrence:a}of t){if(!s||!o)continue;let t=0;for(let n=0;n<=a&&!((t=e.indexOf(s,n?t+s.length:0))<0);n++);if(t<r)continue;let l=s.replace(/([\\[\]])/g,"\\$1"),c=o.replace(/([\\()])/g,"\\$1");n+=`${e.slice(r,t)}[${l}](${c})`,r=t+s.length,i=!0}return i?n+e.slice(r):null}(r,Array.from(i.querySelectorAll("a[href]"),e=>{let t=e.textContent??"",n=i.createRange();return n.setStart(i.body,0),n.setEndBefore(e),{label:t,href:e.getAttribute("href")?.trim()??"",occurrence:t?n.toString().split(t).length-1:0}}));if(null===s)return;let o=e.currentTarget,a=o.selectionStart,l=o.value.slice(0,a)+s+o.value.slice(o.selectionEnd);e.preventDefault(),tu.current=l,ep(l),eB(!1),tM(l,a+s.length),requestAnimationFrame(()=>{o.focus(),o.setSelectionRange(a+s.length,a+s.length)})},[ei,tf,tM]);(0,i.useEffect)(()=>{if(null===tk){eC(!1),eE(0),tn.current=!1;return}eC(!0),eE(0),!tn.current&&V&&(tn.current=!0,Promise.resolve(V()).catch(()=>{tn.current=!1}))},[tk,V]),(0,i.useEffect)(()=>{if(!eS||!et)return;let e=!1;return e1({cwd:et,values:{}}),fetch(`/api/skills?cwd=${encodeURIComponent(et)}`).then(e=>{if(!e.ok)throw Error(`skills fetch failed: ${e.status}`);return e.json()}).then(t=>{if(e)return;let n={};for(let e of t.skills??[])n[e.name]=e.disableModelInvocation;e1({cwd:et,values:n})}).catch(()=>{e||e1({cwd:et,values:{}})}),()=>{e=!0}},[eS,et]),(0,i.useEffect)(()=>{eN>=tS.length&&eE(Math.max(0,tS.length-1))},[tS.length,eN]),(0,i.useEffect)(()=>{ti.current.length=tS.length},[tS.length]),(0,i.useEffect)(()=>{eS&&ti.current[eN]?.scrollIntoView({block:"nearest",inline:"nearest"})},[eN,eS]),(0,i.useLayoutEffect)(()=>{if(!eS||null===tk)return void eM(null);let e=tr.current;if(e)return as(e,e=>{eM(t=>t===e?t:e)})},[eS,tk]),(0,i.useLayoutEffect)(()=>{if(!eR||null===eI)return void eP(null);let e=ts.current;if(e)return as(e,e=>{eP(t=>t===e?t:e)})},[eR,eI]);let tK=y&&y.length>0?y.map(e=>({provider:e.provider,modelId:e.id,name:e.name})):Object.entries(b??{}).map(e=>{let[t,n]=e;return{provider:x?.provider??"unknown",modelId:t,name:n}}),tq=R?Math.max(0,R.tokensBefore-R.estimatedTokensAfter):0,tZ=R?`${R.reason&&"manual"!==R.reason?`${R.reason[0].toUpperCase()}${R.reason.slice(1)} `:es("chat.compacted")} ${al(R.tokensBefore)} -> ${al(R.estimatedTokensAfter)} tokens (${es("chat.tokensSaved",{saved:al(tq)})})`:null,tV=P&&"auto"!==P?P:null,tJ=null!=(a="auto"!==(o=tV??"auto")?F?.[o]:null)&&a!==o?a:es(aa[o]),tY=es(ae[Object.entries(o7).find(e=>{let[,t]=e;return t===(L??"configured")})?.[0]??"configured"]);(0,i.useEffect)(()=>{let e=e=>{e8.current&&!e8.current.contains(e.target)&&ef(!1),e3.current&&!e3.current.contains(e.target)&&eg(!1),e6.current&&!e6.current.contains(e.target)&&ev(!1),!e9.current||e9.current.contains(e.target)||e4.current?.contains(e.target)||eB(!1)};return document.addEventListener("mousedown",e),()=>document.removeEventListener("mousedown",e)},[]),(0,i.useEffect)(()=>{g&&ef(!1)},[g]);let tG=(0,i.useRef)(-1/0);(0,i.useLayoutEffect)(()=>{if(g)return()=>{tG.current=performance.now()}},[g]);let tX=e=>{var t,n;return t=e.detail,n=performance.now()-tG.current,t>0&&n<600};(0,i.useEffect)(()=>{ec||ev(!1)},[ec]);let t0=g?(0,r.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:6,flexShrink:0,alignSelf:"flex-end"},children:[f&&(0,r.jsxs)("button",{onClick:()=>tD("steer"),disabled:!tE,title:es("chat.steerHint"),style:{display:"flex",alignItems:"center",gap:5,padding:"7px 12px",background:tE?"rgba(234,179,8,0.12)":"none",border:"1px solid rgba(234,179,8,0.35)",borderRadius:8,color:tE?"rgba(180,130,0,1)":"var(--text-dim)",cursor:tE?"pointer":"not-allowed",fontSize:13,fontWeight:600,letterSpacing:"-0.01em",transition:"background 0.12s"},children:[(0,r.jsxs)("svg",{width:"12",height:"12",viewBox:"0 0 10 10",fill:"none",stroke:"currentColor",strokeWidth:"1.8",strokeLinecap:"round",strokeLinejoin:"round",children:[(0,r.jsx)("path",{d:"M5 1 L9 5 L5 9"}),(0,r.jsx)("line",{x1:"1",y1:"5",x2:"9",y2:"5"})]}),es("chat.steer")]}),m&&(0,r.jsxs)("button",{onClick:()=>tD("followup"),disabled:!tE,title:`${es("chat.followUpHint")} (${ec?"Ctrl/Cmd+":""}Alt/Option+Enter)`,"aria-keyshortcuts":ec?"Control+Alt+Enter Meta+Alt+Enter":"Alt+Enter",style:{display:"flex",alignItems:"center",gap:5,padding:"7px 12px",background:tE?"rgba(129,140,248,0.12)":"none",border:"1px solid rgba(129,140,248,0.35)",borderRadius:8,color:tE?"rgba(99,102,241,1)":"var(--text-dim)",cursor:tE?"pointer":"not-allowed",fontSize:13,fontWeight:600,letterSpacing:"-0.01em",transition:"background 0.12s"},children:[(0,r.jsxs)("svg",{width:"12",height:"12",viewBox:"0 0 10 10",fill:"none",stroke:"currentColor",strokeWidth:"1.8",strokeLinecap:"round",strokeLinejoin:"round",children:[(0,r.jsx)("line",{x1:"5",y1:"1",x2:"5",y2:"6"}),(0,r.jsx)("polyline",{points:"2.5 3.5 5 1 7.5 3.5"}),(0,r.jsx)("line",{x1:"2",y1:"9",x2:"8",y2:"9"})]}),es("chat.followUp")]})]}):(0,r.jsxs)("button",{className:ei?void 0:"chat-composer-send",onClick:tj,disabled:!eu.trim()&&!eb.length,title:es("chat.send"),"aria-label":es("chat.send"),style:{flexShrink:0,alignSelf:"flex-end",display:"flex",alignItems:"center",justifyContent:"center",gap:6,...ec?{width:36,height:36,padding:0}:{padding:"7px 14px"},background:eu.trim()||eb.length?"var(--accent)":"var(--bg-panel)",border:"none",borderRadius:8,color:eu.trim()||eb.length?"var(--accent-contrast)":"var(--text-dim)",cursor:eu.trim()||eb.length?"pointer":"not-allowed",fontSize:13,fontWeight:600,letterSpacing:"-0.01em",boxShadow:eu.trim()||eb.length?"0 1px 3px color-mix(in srgb, var(--accent) 25%, transparent)":"none",transition:"background 0.15s, box-shadow 0.15s"},children:[(0,r.jsx)("svg",{width:"14",height:"14",viewBox:"0 0 14 14",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:(0,r.jsx)("path",{d:"M7 12V2M3 6l4-4 4 4"})}),ei&&!ec&&es("chat.send")]});return(0,r.jsxs)("fieldset",{disabled:eU,"aria-busy":eU,className:ei?void 0:"chat-input-shell",style:{flexShrink:0,minWidth:0,margin:0,border:0,background:"transparent",padding:ei?0:"0 16px 8px",paddingLeft:ei?0:ec?16:52,opacity:eU?.5:1,transition:"opacity 0.15s"},children:[!ei&&(0,r.jsx)("input",{ref:e7,type:"file",accept:en?void 0:"image/*",multiple:!0,style:{display:"none"},onChange:tm}),(0,r.jsxs)("div",{style:{maxWidth:"var(--chat-content-max-width, 820px)",margin:"0 auto"},children:[(0,r.jsx)(aS,{error:j}),(0,r.jsx)(aC,{warnings:k}),t$&&(l=y?.find(e=>e.provider===x?.provider&&e.id===x?.modelId),(0,r.jsx)(aw,{tone:"warning",title:es("chat.imageNotSupportedTitle"),body:es("chat.imageNotSupportedBody",{model:l?.name||x?.modelId||""}),onClose:()=>eF(!0)})),(H?.steering.length??0)+(H?.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:es("chat.queued",{count:(H?.steering.length??0)+(H?.followUp.length??0)})}),K&&(0,r.jsxs)("button",{onClick:K,title:es("chat.recallTitle"),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",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"})]}),es("chat.recall")]})]}),H?.steering.map((e,t)=>(0,r.jsx)(ak,{kind:"steer",text:e},`steer-${t}`)),H?.followUp.map((e,t)=>(0,r.jsx)(ak,{kind:"follow-up",text:e},`followup-${t}`))]}),_&&(0,r.jsxs)("div",{style:{marginBottom:8,padding:"5px 10px",background:"rgba(234,179,8,0.08)",border:"1px solid rgba(234,179,8,0.25)",borderRadius:6,fontSize:12,color:"rgba(180,130,0,0.9)",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"})]}),es("chat.retrying",{attempt:_.attempt,max:_.maxAttempts}),_.errorMessage&&(0,r.jsxs)("span",{style:{opacity:.7,marginLeft:4},children:["— ",_.errorMessage]})]}),tZ&&(0,r.jsxs)("div",{style:{marginBottom:8,padding:"5px 10px",background:"rgba(16,185,129,0.08)",border:"1px solid rgba(16,185,129,0.24)",borderRadius:6,fontSize:12,color:"rgba(5,150,105,0.95)",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"})}),tZ]}),I&&(0,r.jsxs)("div",{role:"alert",style:{display:"flex",alignItems:"flex-start",gap:6,marginBottom:8,padding:T?"3px 3px 3px 10px":"7px 10px",background:"rgba(239,68,68,0.07)",border:"1px solid rgba(239,68,68,0.3)",borderRadius:6,color:"#ef4444",fontFamily:"var(--font-mono)",fontSize:12,lineHeight:1.5},children:[(0,r.jsx)("span",{style:{minWidth:0,flex:1,padding:T?"4px 0":0,whiteSpace:"pre-wrap",overflowWrap:"anywhere"},children:I}),T&&(0,r.jsx)(tQ,{onClick:T,title:es("chat.dismissCompactError")})]}),(0,r.jsxs)("div",{className:ei?void 0:"chat-composer-card","data-bash":ek||void 0,"data-queuing":g&&!!(f||m)||void 0,children:[eb.length>0&&(0,r.jsx)("div",{className:"chat-composer-attachments",style:{display:"flex",gap:6,marginBottom:6,flexWrap:"wrap"},children:eb.map((e,t)=>(0,r.jsxs)("div",{style:{position:"relative",flexShrink:0},children:[(0,r.jsx)(iw,{src:e.previewUrl,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"}})},e.previewUrl),(0,r.jsx)("button",{type:"button",onClick:()=>tg(t),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"})]})})]},t))}),(0,r.jsxs)("div",{style:{position:"relative",minWidth:0},children:[eD&&U.length>0&&(0,r.jsxs)("div",{ref:e9,style:{position:"absolute",left:0,right:0,bottom:"calc(100% + 8px)",zIndex:120,background:"var(--bg)",border:"1px solid var(--border)",borderRadius:8,boxShadow:"0 -6px 20px rgba(0,0,0,0.12)",overflow:"hidden",maxHeight:"min(44vh, 360px)"},children:[(0,r.jsx)("div",{title:es("chat.inputHistory"),style:{height:30,padding:"0 10px",borderBottom:"1px solid var(--border)",display:"flex",alignItems:"center",color:"var(--text-dim)"},children:(0,r.jsxs)("svg",{width:"14",height:"14",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:"M3 12a9 9 0 1 0 3-6.7"}),(0,r.jsx)("path",{d:"M3 4v5h5"}),(0,r.jsx)("path",{d:"M12 7v5l3 2"})]})}),(0,r.jsx)("div",{style:{maxHeight:"calc(min(44vh, 360px) - 31px)",overflowY:"auto",padding:4},children:U.map((e,t)=>{let n=t===e_;return(0,r.jsxs)("button",{ref:e=>{ta.current[t]=e},type:"button",onMouseDown:t=>{t.preventDefault(),tO(e)},onMouseEnter:()=>eH(t),style:{width:"100%",display:"flex",alignItems:"flex-start",gap:8,padding:"7px 8px",border:"none",borderRadius:6,background:n?"var(--bg-selected)":"none",color:"var(--text)",cursor:"pointer",textAlign:"left",fontSize:12.5,lineHeight:1.45},children:[(0,r.jsx)("span",{style:{flexShrink:0,fontFamily:"var(--font-mono)",fontSize:11,color:"var(--text-dim)",paddingTop:1},children:t+1}),(0,r.jsx)("span",{style:{minWidth:0,display:"-webkit-box",WebkitBoxOrient:"vertical",WebkitLineClamp:2,overflow:"hidden",overflowWrap:"anywhere"},children:e})]},`${t}:${e}`)})})]}),eS&&null!==tk&&(0,r.jsxs)("div",{ref:tr,style:{position:"absolute",left:0,right:0,bottom:"calc(100% + 8px)",zIndex:120,background:"var(--bg)",border:"1px solid var(--border)",borderRadius:8,boxShadow:"0 -6px 20px rgba(0,0,0,0.12)",overflow:"hidden",boxSizing:"border-box",display:"flex",flexDirection:"column",maxHeight:null===e$?"min(72.8vh, 598px)":`min(72.8vh, 598px, ${e$}px)`},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:Z?es("chat.loadingCommands"):es("chat.slashCommands",{label:tN})}),(0,r.jsx)("span",{style:{fontFamily:"var(--font-mono)"},children:es("chat.tabEnter")})]}),(0,r.jsx)("div",{style:{flex:"1 1 auto",minHeight:0,overflowY:"auto",padding:10},children:Z||0!==tw.length?tC.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:es(ap[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(e=>{let{command:t,index:n}=e,i=n===eN,s=ag(t,e2);return(0,r.jsxs)("button",{ref:e=>{ti.current[n]=e},type:"button",onMouseDown:e=>{e.preventDefault(),tF(t)},onMouseEnter:()=>eE(n),style:{width:"100%",minWidth:0,minHeight:58,display:"flex",flexDirection:"column",gap:4,justifyContent:"center",padding:"9px 10px",border:`1px solid ${i?"var(--accent)":"var(--border)"}`,borderRadius:7,background:i?"var(--bg-selected)":"var(--bg-panel)",color:"var(--text)",cursor:"pointer",textAlign:"left",boxShadow:i?"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",color:s?"var(--text-dim)":void 0},children:["/",t.name,s&&(0,r.jsx)("span",{style:{marginLeft:6,padding:"0 4px",border:"1px solid var(--border)",borderRadius:3,fontSize:9,color:"var(--text-dim)",whiteSpace:"nowrap"},children:es("chat.dormant")})]}),t.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:am(t,es)})]},`${t.source}:${t.name}`)})})]},e.source)):(0,r.jsx)("div",{style:{padding:"2px 2px 4px",fontSize:12,color:"var(--text-dim)"},children:es("chat.noCommands")})})]}),eR&&null!==eI&&(c=eJ&&(!eZ||eZ.cwd!==et),d=1===tA.length?es("chat.match"):es("chat.matches",{count:tA.length}),u=eZ?.truncated&&!tL?eI.query?es("chat.searchingAll"):es("chat.indexTruncated"):"",(0,r.jsxs)("div",{ref:ts,style:{position:"absolute",left:0,right:0,bottom:"calc(100% + 8px)",zIndex:120,background:"var(--bg)",border:"1px solid var(--border)",borderRadius:8,boxShadow:"0 -6px 20px rgba(0,0,0,0.12)",overflow:"hidden",boxSizing:"border-box",display:"flex",flexDirection:"column",maxHeight:null===eA?"min(48vh, 400px)":`min(48vh, 400px, ${eA}px)`},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:c?es("chat.loadingFiles"):es("chat.files",{label:d,hint:u})}),(0,r.jsx)("span",{style:{fontFamily:"var(--font-mono)"},children:es("chat.tabEnter")})]}),(0,r.jsx)("div",{style:{flex:"1 1 auto",minHeight:0,overflowY:"auto",padding:4},children:c||0!==tA.length?tA.map((e,t)=>{let n=t===ez,i=e.path.split("/").pop()??e.path,s=e.path.slice(0,e.path.length-i.length);return(0,r.jsxs)("button",{ref:e=>{to.current[t]=e},type:"button",onMouseDown:t=>{t.preventDefault(),tW(e)},onMouseEnter:()=>eW(t),style:{width:"100%",display:"flex",alignItems:"center",gap:8,padding:"6px 8px",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)(t2,{size:14}):t3(i,14)}),(0,r.jsxs)("span",{style:{minWidth:0,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:[s&&(0,r.jsx)("span",{style:{color:"var(--text-dim)"},children:s}),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:tR&&!tL?es("chat.searching"):es("chat.noMatchingFiles")})})]})),(0,r.jsxs)("div",{className:ei?void 0:"chat-composer-entry",style:{minWidth:0,display:"flex",flexDirection:ei?"column":"row",gap:8,alignItems:ei?"stretch":"center",background:"transparent",border:"none",padding:ei?0:"14px 16px 4px",transition:"border-color 0.15s, background 0.15s, box-shadow 0.15s"},children:[(0,r.jsx)("textarea",{ref:e4,className:"chat-input-textarea","aria-label":ei?es("chat.quoteQuestion"):void 0,value:eu,onChange:e=>{tu.current=e.target.value,ep(e.target.value),eB(!1),tM(e.target.value,e.target.selectionStart)},onSelect:e=>{let t=e.currentTarget;tM(t.value,t.selectionStart)},onKeyDown:t_,onCompositionStart:()=>{te.current=!0},onCompositionEnd:e=>{te.current=!1,tt.current=Date.now();let t=e.currentTarget;tM(t.value,t.selectionStart)},onInput:tH,onPaste:tU,placeholder:g&&(f||m)?es("chat.steerPlaceholder"):g?es("chat.agentPlaceholder"):es("chat.messagePlaceholder"),rows:1,style:{flex:ei?"none":1,minWidth:0,width:"100%",background:"none",border:"none",outline:"none",resize:"none",color:"var(--text)",fontSize:"var(--chat-content-font-size, 14px)",lineHeight:1.6,fontFamily:"inherit",minHeight:ei?96:44,maxHeight:200,overflow:"auto"}}),ei&&t0]})]}),ek&&(0,r.jsxs)("div",{className:"text-xs px-2 py-1",style:{color:ew?"var(--text-muted)":"var(--accent)",marginTop:4},children:[es("chat.shell")," \xb7 ",ew?es("chat.outputLocal"):es("chat.outputModel")]}),!ei&&(0,r.jsxs)("div",{className:"chat-composer-footer",children:[(0,r.jsxs)("div",{className:"chat-input-controls",style:{marginTop:ec?4:8,display:ec?"grid":"flex",gridTemplateColumns:ec?"minmax(0, 1fr) auto":void 0,alignItems:"center",gap:6},children:[(0,r.jsxs)("div",{className:"chat-composer-model",style:{flex:ec?"1 1 auto":"0 0 auto",minWidth:0,display:"flex",alignItems:"center",gap:2},children:[(0,r.jsx)("button",{className:"chat-composer-attach",onClick:()=>e7.current?.click(),title:es("chat.attachFiles"),style:{flexShrink:0,display:"flex",alignItems:"center",justifyContent:"center",width:32,height:32,padding:0,background:"none",border:"none",borderRadius:9,color:eb.length?"var(--accent)":"var(--text-muted)",cursor:"pointer",opacity:1,transition:"background 0.12s, color 0.12s"},onMouseEnter:e=>{e.currentTarget.style.background="var(--bg-hover)",e.currentTarget.style.color=eb.length?"var(--accent)":"var(--text)"},onMouseLeave:e=>{e.currentTarget.style.background="none",e.currentTarget.style.color=eb.length?"var(--accent)":"var(--text-muted)"},children:(0,r.jsxs)("svg",{width:"15",height:"15",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"1.8",strokeLinecap:"round",strokeLinejoin:"round",children:[(0,r.jsx)("rect",{x:"3",y:"3",width:"18",height:"18",rx:"2",ry:"2"}),(0,r.jsx)("circle",{cx:"8.5",cy:"8.5",r:"1.5"}),(0,r.jsx)("polyline",{points:"21 15 16 10 5 21"})]})}),(tK.length>0||x||j)&&w&&(0,r.jsx)(o6,{options:tK,value:x,onChange:w,disabled:g,busy:S,isAutoSelection:v,defaultValue:C,onSetDefault:N})]}),(0,r.jsxs)("div",{ref:e6,className:"chat-composer-options",style:{flex:"0 0 auto",display:"flex",alignItems:"center",justifyContent:"flex-end",position:"relative",marginLeft:ec?0:"auto"},children:[ec&&(0,r.jsx)("button",{type:"button",title:ex?void 0:es("chat.moreControls"),"aria-label":es("chat.moreControls"),"aria-expanded":ex,"aria-hidden":ex||void 0,tabIndex:ex?-1:void 0,onClick:()=>{ev(!0)},style:{display:"flex",alignItems:"center",justifyContent:"center",width:"100%",height:32,padding:"8px 10px",background:"none",border:"none",borderRadius:9,color:"var(--text-muted)",cursor:ex?"default":"pointer",fontSize:12,fontWeight:500,visibility:ex?"hidden":"visible",pointerEvents:ex?"none":"auto",transition:"background 0.12s, color 0.12s"},onMouseEnter:e=>{ex||(e.currentTarget.style.background="var(--bg-hover)",e.currentTarget.style.color="var(--text)")},onMouseLeave:e=>{ex||(e.currentTarget.style.background="none",e.currentTarget.style.color="var(--text-muted)")},children:es("chat.moreControls")}),(0,r.jsxs)("div",{className:"chat-composer-options-list",style:{display:ec?ex?"flex":"none":"flex",alignItems:"center",gap:ec?1:2,...ec?{position:"absolute",right:0,bottom:0,zIndex:60,padding:1,width:"max-content",maxWidth:"calc(100vw - 32px)",flexWrap:"nowrap",justifyContent:"flex-end",border:"1px solid color-mix(in srgb, var(--border) 72%, transparent)",borderRadius:10,background:"color-mix(in srgb, var(--bg-panel) 92%, var(--bg))",boxShadow:"0 8px 24px rgba(0,0,0,0.14)",backdropFilter:"blur(10px)"}:null},children:[W&&(0,r.jsxs)("div",{ref:e3,style:{position:"relative"},onKeyDown:e=>{"Escape"===e.key&&em&&(e.preventDefault(),e.stopPropagation(),eg(!1),e.currentTarget.querySelector(".chat-composer-control")?.focus({preventScroll:!0}))},children:[(0,r.jsxs)("button",{className:"chat-composer-control",onClick:()=>eg(e=>!e),title:g?es("chat.currentReasoning",{level:tJ}):es("chat.changeReasoning",{level:tJ}),"aria-label":es("chat.changeReasoningLabel"),"aria-haspopup":"listbox","aria-expanded":em,style:{display:"flex",alignItems:"center",justifyContent:"center",gap:5,padding:ec?"0 6px":"8px 12px",width:ec?"auto":void 0,height:32,background:em?"var(--bg-hover)":"none",border:"none",borderRadius:9,color:"var(--text-muted)",cursor:"pointer",fontSize:12,transition:"background 0.12s, color 0.12s"},onMouseEnter:e=>{e.currentTarget.style.background="var(--bg-hover)",e.currentTarget.style.color="var(--text)"},onMouseLeave:e=>{e.currentTarget.style.background=em?"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)("path",{d:"M9.5 2A5.5 5.5 0 0 0 4 7.5c0 1.7.78 3.21 2 4.21V14a1 1 0 0 0 1 1h5a1 1 0 0 0 1-1v-2.29c1.22-1 2-2.51 2-4.21A5.5 5.5 0 0 0 9.5 2z"}),(0,r.jsx)("line",{x1:"7",y1:"18",x2:"12",y2:"18"}),(0,r.jsx)("line",{x1:"8",y1:"21",x2:"11",y2:"21"})]}),(!ec||ex)&&(0,r.jsx)("span",{style:{whiteSpace:"nowrap"},children:tJ}),(0,r.jsx)("span",{className:"chat-composer-caret","aria-hidden":"true"})]}),em&&(0,r.jsxs)("div",{className:"chat-reasoning-menu",role:"listbox","aria-label":es("chat.reasoningMenuTitle"),style:ec?{left:0}:{right:0},children:[(0,r.jsx)("div",{className:"reasoning-menu-heading","aria-hidden":"true",children:es("chat.reasoningMenuTitle")}),ao.filter(e=>!O||"auto"===e||O.includes(e)).map(e=>{let t="auto"===e?z:!z&&tV===e,n="auto"!==e&&F?F[e]:void 0,i=null!=n&&n!==e?n:es(aa[e]),s=null!=n&&n!==e;return(0,r.jsx)(o3,{className:`reasoning-menu-row${"auto"===e?" is-auto":""}`,active:t,onSelect:()=>{if(eg(!1),"auto"===e){z||W("auto");return}(!t||z)&&W(e)},gutter:!!B,star:B&&"auto"!==e?{isDefault:D===e,saveLabel:es("chat.saveDefaultThinking"),defaultLabel:es("chat.defaultThinking"),onSave:()=>{eg(!1),B(e)}}:void 0,children:(0,r.jsxs)("span",{className:"reasoning-option-copy",children:[(0,r.jsxs)("span",{className:"reasoning-option-label",children:[i,s&&(0,r.jsxs)("span",{className:"reasoning-option-original",children:["(",e,")"]})]}),"auto"===e&&(0,r.jsx)("span",{className:"reasoning-option-hint",children:es("chat.reasoningAutoDescription")})]})},e)})]})]}),!g&&A&&(0,r.jsxs)("div",{ref:e8,style:{position:"relative"},children:[(0,r.jsxs)("button",{className:"chat-composer-control",onClick:e=>{g||tX(e)||ef(e=>!e)},disabled:g,title:es("chat.changeToolPreset")+`: ${tY}`,"aria-label":es("chat.changeToolPreset"),"aria-expanded":eh,style:{display:"flex",alignItems:"center",justifyContent:"center",gap:5,padding:ec?"0 6px":"8px 12px",width:ec?"auto":void 0,height:32,background:eh?"var(--bg-hover)":"none",border:"none",borderRadius:9,color:"var(--text-muted)",cursor:g?"not-allowed":"pointer",fontSize:12,opacity:g?.5:1,transition:"background 0.12s, color 0.12s"},onMouseEnter:e=>{g||(e.currentTarget.style.background="var(--bg-hover)",e.currentTarget.style.color="var(--text)")},onMouseLeave:e=>{e.currentTarget.style.background=eh?"var(--bg-hover)":"none",e.currentTarget.style.color="var(--text-muted)"},children:[(0,r.jsx)("svg",{width:"11",height:"11",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:(0,r.jsx)("path",{d:"M14.7 6.3a1 1 0 0 0 0 1.4l1.6 1.6a1 1 0 0 0 1.4 0l3.77-3.77a6 6 0 0 1-7.94 7.94l-6.91 6.91a2.12 2.12 0 0 1-3-3l6.91-6.91a6 6 0 0 1 7.94-7.94l-3.76 3.76z"})}),(!ec||ex)&&(0,r.jsx)("span",{style:{whiteSpace:"nowrap"},children:tY}),(0,r.jsx)("span",{className:"chat-composer-caret","aria-hidden":"true"})]}),eh&&(0,r.jsx)("div",{style:{position:"absolute",bottom:"calc(100% + 6px)",right:ec?void 0:0,left:ec?0:void 0,zIndex:100,background:"var(--bg)",border:"1px solid var(--border)",borderRadius:8,boxShadow:"0 -4px 16px rgba(0,0,0,0.10)",overflow:"hidden",minWidth:120},children:o9.map(e=>{let t,n=o7[e],i=(L??"configured")===n;return t="configured"===e?es("chat.configuredTools"):"chat-only"===e?es("chat.chatOnly"):"read-only"===e?es("chat.readOnlyTools",{count:4}):"default"===e?es("chat.builtInTools",{count:4}):es("chat.allBuiltInTools"),(0,r.jsxs)("button",{onClick:()=>{ef(!1),i||A(n)},style:{display:"flex",alignItems:"center",gap:8,width:"100%",padding:"7px 12px",background:i?"var(--bg-selected)":"none",border:"none",color:i?"var(--text)":"var(--text-muted)",cursor:"pointer",fontSize:12,textAlign:"left",fontWeight:i?600:400,whiteSpace:"nowrap"},onMouseEnter:e=>{i||(e.currentTarget.style.background="var(--bg-hover)")},onMouseLeave:e=>{i||(e.currentTarget.style.background="none")},children:[i?(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},children:es(ae[e])}),(0,r.jsx)("span",{style:{fontSize:11,color:"var(--text-dim)",marginLeft:8},children:t})]},e)})})]}),!ec&&(0,r.jsx)("div",{className:"chat-composer-usage",children:er}),(!g||M)&&E&&(0,r.jsx)("div",{className:"chat-composer-compact",children:(0,r.jsx)("button",{className:"chat-composer-utility",onClick:M?$:e=>{tX(e)||E()},style:{display:"flex",alignItems:"center",justifyContent:"center",gap:5,padding:ec?"0 6px":"8px 12px",width:ec?"auto":void 0,height:32,background:M?"rgba(239,68,68,0.08)":"none",border:"none",borderRadius:9,color:M?"#ef4444":"var(--text-muted)",cursor:"pointer",fontSize:12,transition:"background 0.12s, color 0.12s"},onMouseEnter:e=>{e.currentTarget.style.background=M?"rgba(239,68,68,0.16)":"var(--bg-hover)",e.currentTarget.style.color=M?"#ef4444":"var(--text)"},onMouseLeave:e=>{e.currentTarget.style.background=M?"rgba(239,68,68,0.08)":"none",e.currentTarget.style.color=M?"#ef4444":"var(--text-muted)"},title:M?es("chat.stopCompaction"):es("chat.compactContext"),"aria-label":M?es("chat.stopCompaction"):es("chat.compactContext"),children:M?(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)("svg",{width:"10",height:"10",viewBox:"0 0 10 10",fill:"none",children:(0,r.jsx)("rect",{x:"2",y:"2",width:"6",height:"6",rx:"1",fill:"currentColor"})}),(!ec||ex)&&(0,r.jsx)("span",{style:{whiteSpace:"nowrap"},children:es("chat.compacting")})]}):(0,r.jsxs)(r.Fragment,{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)("polyline",{points:"4 14 10 14 10 20"}),(0,r.jsx)("polyline",{points:"20 10 14 10 14 4"}),(0,r.jsx)("line",{x1:"10",y1:"14",x2:"3",y2:"21"}),(0,r.jsx)("line",{x1:"21",y1:"3",x2:"14",y2:"10"})]}),ec&&ex&&(0,r.jsx)("span",{style:{whiteSpace:"nowrap"},children:es("chat.compact")})]})})}),g&&(0,r.jsxs)("button",{onClick:h,title:es("chat.stopAgent"),style:{display:"flex",alignItems:"center",gap:6,padding:"8px 14px",height:32,background:"rgba(239,68,68,0.08)",border:"1px solid rgba(239,68,68,0.3)",borderRadius:9,color:"#ef4444",cursor:"pointer",fontSize:12,fontWeight:600,whiteSpace:"nowrap",letterSpacing:"-0.01em",transition:"background 0.12s"},onMouseEnter:e=>{e.currentTarget.style.background="rgba(239,68,68,0.16)"},onMouseLeave:e=>{e.currentTarget.style.background="rgba(239,68,68,0.08)"},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"})}),es("chat.stop")]}),void 0!==G&&(0,r.jsx)("button",{className:"chat-composer-utility chat-composer-sound",onClick:G,title:Y?es("chat.disableSound"):es("chat.enableSound"),"aria-label":Y?es("chat.disableSound"):es("chat.enableSound"),style:{display:"flex",alignItems:"center",justifyContent:"center",gap:5,width:32,height:32,padding:0,background:"none",border:"none",borderRadius:9,color:Y?"var(--text-muted)":"var(--text-dim)",cursor:"pointer",opacity:Y?1:.55,transition:"background 0.12s, color 0.12s, opacity 0.12s"},onMouseEnter:e=>{e.currentTarget.style.background="var(--bg-hover)",e.currentTarget.style.color="var(--text)",e.currentTarget.style.opacity="1"},onMouseLeave:e=>{e.currentTarget.style.background="none",e.currentTarget.style.color=Y?"var(--text-muted)":"var(--text-dim)",e.currentTarget.style.opacity=Y?"1":"0.55"},children:Y?(0,r.jsxs)("svg",{width:"12",height:"12",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:[(0,r.jsx)("polygon",{points:"11 5 6 9 2 9 2 15 6 15 11 19 11 5"}),(0,r.jsx)("path",{d:"M15.54 8.46a5 5 0 0 1 0 7.07"}),(0,r.jsx)("path",{d:"M19.07 4.93a10 10 0 0 1 0 14.14"})]}):(0,r.jsxs)("svg",{width:"12",height:"12",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:[(0,r.jsx)("polygon",{points:"11 5 6 9 2 9 2 15 6 15 11 19 11 5"}),(0,r.jsx)("line",{x1:"23",y1:"9",x2:"17",y2:"15"}),(0,r.jsx)("line",{x1:"17",y1:"9",x2:"23",y2:"15"})]})}),ec&&ex&&(0,r.jsx)("button",{type:"button",title:es("chat.collapseControls"),"aria-label":es("chat.collapseControls"),"aria-expanded":!0,onClick:()=>{ef(!1),eg(!1),ev(!1)},style:{display:"flex",alignItems:"center",justifyContent:"center",width:36,height:32,padding:0,marginLeft:0,background:"var(--bg-hover)",border:"none",borderLeft:"1px solid color-mix(in srgb, var(--border) 72%, transparent)",borderRadius:"0 9px 9px 0",color:"var(--text)",cursor:"pointer",transition:"background 0.12s, color 0.12s"},onMouseEnter:e=>{e.currentTarget.style.background="var(--bg-selected)"},onMouseLeave:e=>{e.currentTarget.style.background="var(--bg-hover)"},children:(0,r.jsxs)("svg",{width:"13",height:"13",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",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"})]})})]})]})]}),(0,r.jsx)("div",{className:"chat-composer-submit",children:t0})]})]})]})]})}));function aE(){return(0,r.jsxs)("svg",{className:"new-session-welcome-mark",width:"52",height:"52",viewBox:"0 0 64 64",fill:"none",stroke:"currentColor",strokeWidth:"2.8",strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":"true",children:[(0,r.jsx)("path",{d:"M23 10C27 3 38 3 42 11C51 10 58 18 54 26C62 32 59 43 51 46C50 56 39 60 32 54C24 60 13 55 13 46C4 42 3 31 10 25C7 17 14 9 23 10Z"}),(0,r.jsx)("path",{d:"m23 25 5 6-5 6M34 38h9"})]})}var a$=n(88576),aM=n.n(a$);function aI(e){let{level:t,children:n,headingIndex:i,onClick:s}=e;return(0,r.jsx)("button",{type:"button",className:aM().heading,"data-level":t,"data-preview-heading-index":i??void 0,disabled:null===i||!s,onClick:e=>{e.stopPropagation(),null!==i&&s?.(i)},children:n})}let aT=[...im??[],function(){return e=>{if(!Array.isArray(e.children))return;let t=e.children.filter(e=>"heading"===e.type&&"number"==typeof e.depth&&e.depth<=3);if(t.length>0){t.forEach((e,t)=>{e.data={...e.data,hProperties:{...e.data?.hProperties,"data-preview-heading-index":t}}}),e.children=t;return}e.children=e.children.filter(e=>"paragraph"===e.type||"list"===e.type).slice(0,2)}}],aR=[[rZ.A,{throwOnError:!1,strict:!1}]];function aL(e){let t=e?.properties,n=t?.dataPreviewHeadingIndex??t?.["data-preview-heading-index"];return"number"==typeof n?n:"string"==typeof n&&/^\d+$/.test(n)?Number(n):null}let aA=(0,i.memo)(function(e){let{markdown:t,onHeadingClick:n,onAnswerClick:s}=e,o=(0,i.useMemo)(()=>r7(t),[t]);return t?(0,r.jsx)("div",{className:aM().outline,children:(0,r.jsx)(rq.oz,{remarkPlugins:aT,rehypePlugins:aR,components:{h1:e=>{let{children:t,node:i}=e;return(0,r.jsx)(aI,{level:1,headingIndex:aL(i),onClick:n,children:t})},h2:e=>{let{children:t,node:i}=e;return(0,r.jsx)(aI,{level:2,headingIndex:aL(i),onClick:n,children:t})},h3:e=>{let{children:t,node:i}=e;return(0,r.jsx)(aI,{level:3,headingIndex:aL(i),onClick:n,children:t})},h4:()=>null,h5:()=>null,h6:()=>null,p:e=>{let{children:t}=e;return(0,r.jsx)("button",{type:"button",className:aM().paragraph,onClick:s,children:t})},blockquote:()=>null,ul:e=>{let{children:t}=e;return(0,r.jsx)("ul",{className:aM().list,children:t})},ol:e=>{let{children:t}=e;return(0,r.jsx)("ol",{className:aM().list,children:t})},pre:()=>null,table:()=>null,hr:()=>null,a:e=>{let{children:t}=e;return(0,r.jsx)(r.Fragment,{children:t})},code:e=>{let{children:t}=e;return(0,r.jsx)(r.Fragment,{children:t})}},children:o})}):null}),aP=(0,i.memo)(function(e){let{messages:t,getStreamingMessage:n,scrollContainer:s,messageRefs:o,onRevealHistory:a,turnsBefore:l}=e,{t:c}=(0,eG.s)(),[d,u]=(0,i.useState)(!1),[p,h]=(0,i.useState)([]),[f,m]=(0,i.useState)(null),[g,x]=(0,i.useState)(600),[v,b]=(0,i.useState)(!1),[y,j]=(0,i.useState)(null),[k,w]=(0,i.useState)(180),S=(0,i.useRef)(!1),C=(0,i.useRef)(null),N=(0,i.useRef)([]),E=(0,i.useRef)({nodes:[],gap:10,fillsHeight:!1}),$=(0,i.useRef)(null),M=(0,i.useRef)(null),I=(0,i.useRef)(null),T=(0,i.useRef)(null),R=(0,i.useRef)(t);R.current=t;let L=(0,i.useMemo)(()=>(function(e,t){if(0===e.length)return{nodes:[],gap:10,fillsHeight:!1};let n=Math.max(1,t),r=Math.min(180,Math.max(0,n-56));if(1===e.length)return{nodes:[{...e[0],topRatio:Math.max(28,n/2)/n}],gap:10,fillsHeight:!1};let i=r/(e.length-1),s=Math.min(10,i),o=Math.max(28,(n-s*(e.length-1))/2);return{nodes:e.map((e,t)=>({...e,topRatio:(o+t*s)/n})),gap:s,fillsHeight:i<=10}})(p,g),[p,g]),{nodes:A,gap:P}=L;E.current=L;let z=(0,i.useCallback)(e=>{I.current={index:e,until:Date.now()+1600},m(e)},[]),W=(0,i.useCallback)((e,t)=>{let n=I.current;if(n&&Date.now()<n.until)return void m(n.index);I.current=null;let r=t.filter(e=>null!==e.targetTurn.scrollTop);if(0===r.length)return void m(null);let i=e.scrollTop+.3*e.clientHeight;m(r.reduce((e,t)=>Math.abs((t.targetTurn.scrollTop??0)-i)<Math.abs((e.targetTurn.scrollTop??0)-i)?t:e,r[0]).index)},[]),O=(0,i.useCallback)(()=>{let e=s.current;if(!e)return;let t=e.scrollHeight-e.clientHeight,n=N.current;u(t>20),W(e,n)},[s,W]),F=(0,i.useRef)(null),D=(0,i.useCallback)(()=>{F.current||(F.current=setTimeout(()=>{F.current=null;let e=s.current,t=C.current;if(!e||!t)return;let r=o.current,i=e.getBoundingClientRect(),a=[],l=0,c=null,d=n();for(let t of d?[...R.current,d]:R.current){let n=rv(t);if(!n&&"assistant"!==t.role)continue;let s=r?.[l];if(l++,n){c=null;let n=s?.getBoundingClientRect();c={userMessage:t,assistantPreviews:[],scrollTop:n?n.top-i.top+e.scrollTop:null,toolCount:0},a.push(c);continue}if(!c)continue;c.toolCount+="assistant"===t.role&&Array.isArray(t.content)?t.content.reduce((e,t)=>e+ +("toolCall"===t.type),0):0;let o=function(e){if("assistant"!==e.role)return"";let{answerBlocks:t}=rS(e);return t.filter(e=>"text"===e.type).map(e=>e.text).join("\n\n").trim()}(t);o&&c.assistantPreviews.push({markdown:o,element:s})}let p=a.map((e,t)=>({topRatio:0,targetTurn:e,index:t}));x(t.clientHeight),N.current=p,h(p),u(e.scrollHeight-e.clientHeight>20),W(e,p);let f=T.current,m=f?p[f.nodeIndex]:null;if(f&&m){let t=void 0===f.assistantIndex?null:m.targetTurn.assistantPreviews[f.assistantIndex],n=m.targetTurn.scrollTop;if("assistant"===f.target){let r=t?.element?.getBoundingClientRect();n=r?r.top-i.top+e.scrollTop:null}else if("heading"===f.target){let r=void 0===f.headingIndex?null:t?.element?.querySelectorAll("h1, h2, h3").item(f.headingIndex),s=r?.getBoundingClientRect();n=s?s.top-i.top+e.scrollTop:null}if(null===n)return;T.current=null,z(m.index);let r=.3*e.clientHeight;e.scrollTo({top:Math.max(0,n-r),behavior:"smooth"})}},150))},[n,z,o,s,W]);(0,i.useEffect)(()=>{let e=s.current;if(e)return e.addEventListener("scroll",O,{passive:!0}),()=>e.removeEventListener("scroll",O)},[s,O]),(0,i.useEffect)(()=>{let e=s.current;if(!e)return;let t=()=>{D(),O()},n=new ResizeObserver(t);return n.observe(e),e.firstElementChild&&n.observe(e.firstElementChild),t(),()=>{n.disconnect(),F.current&&(clearTimeout(F.current),F.current=null)}},[D,s,O]),(0,i.useEffect)(()=>{let e=setTimeout(()=>{D(),O()},50);return()=>clearTimeout(e)},[t.length,D,O]);let B=(0,i.useCallback)((e,t)=>{let n=s.current;if(!n)return;if(z(e.index),null===e.targetTurn.scrollTop){T.current={nodeIndex:e.index,target:"user"},a();return}let r=Math.max(0,e.targetTurn.scrollTop-.3*n.clientHeight);n.scrollTo({top:r,behavior:t})},[z,a,s]),_=(0,i.useCallback)((e,t)=>{let n=s.current;if(!n)return;let r=e.targetTurn.assistantPreviews[t]?.element;if(!r){T.current={nodeIndex:e.index,target:"assistant",assistantIndex:t},a();return}let i=n.getBoundingClientRect(),o=r.getBoundingClientRect().top-i.top+n.scrollTop-.3*n.clientHeight;z(e.index),n.scrollTo({top:Math.max(0,o),behavior:"smooth"})},[z,a,s]),H=(0,i.useCallback)(e=>{let{nodes:t,gap:n}=E.current,r=C.current?.clientHeight??0;if(0===t.length||r<=0)return null;let i=Math.max(0,Math.min(r,e*r)),s=t[0].topRatio*r,o=n>0?Math.round((i-s)/n):0,a=Math.max(0,Math.min(t.length-1,o)),l=t[a];return Math.abs(i-l.topRatio*r)>Math.max(10,n/2)?null:l},[]),U=(0,i.useCallback)((e,t,n)=>{let r=s.current;if(!r)return;let i=e.targetTurn.assistantPreviews[t]?.element;if(!i){T.current={nodeIndex:e.index,target:"heading",assistantIndex:t,headingIndex:n},a();return}let o=i.querySelectorAll("h1, h2, h3").item(n);if(!o)return;let l=r.getBoundingClientRect(),c=o.getBoundingClientRect().top-l.top+r.scrollTop-.3*r.clientHeight;z(e.index),r.scrollTo({top:Math.max(0,c),behavior:"smooth"})},[z,a,s]),K=(0,i.useCallback)(()=>{M.current&&(clearTimeout(M.current),M.current=null)},[]),q=(0,i.useCallback)(()=>{K(),b(!0)},[K]);(0,i.useEffect)(()=>{try{window.localStorage.removeItem("pi-web:minimap-preview-locked")}catch{}},[]);let Z=(0,i.useCallback)(()=>{K(),M.current=setTimeout(()=>{M.current=null,b(!1),j(null)},250)},[K]);(0,i.useEffect)(()=>()=>K(),[K]);let V=(0,i.useCallback)(e=>{if(!d)return;let t=e.currentTarget.getBoundingClientRect(),n=Math.max(0,Math.min(1,(e.clientY-t.top)/t.height));if(!H(n))return;S.current=!0,q(),j(n);let r=(e,n)=>{let r=H(Math.max(0,Math.min(1,(e-t.top)/t.height)));r&&B(r,n)};r(e.clientY,"smooth");let i=e=>{S.current&&r(e.clientY,"auto")},s=()=>{S.current=!1,window.removeEventListener("mousemove",i),window.removeEventListener("mouseup",s)};window.addEventListener("mousemove",i),window.addEventListener("mouseup",s)},[H,B,q,d]),J=null===y?null:H(y),Y=J?.index??null,G=J??A[f??0],X=Math.max(8,Math.min((G?.topRatio??.5)*g-k/2,g-k-8));return((0,i.useEffect)(()=>{if(!v)return;let e=$.current;if(!e)return;e.scrollTop=0;let t=new ResizeObserver(()=>w(e.offsetHeight));return t.observe(e),()=>t.disconnect()},[p,v,Y]),d)?(0,r.jsxs)("div",{ref:C,className:aM().rail,role:"navigation","aria-label":c("chatMinimap.title"),"data-chat-minimap":"",onMouseDown:V,onMouseLeave:Z,onBlur:e=>{e.currentTarget.contains(e.relatedTarget)||Z()},onMouseMove:e=>{let t=e.currentTarget.getBoundingClientRect(),n=(e.clientY-t.top)/t.height;j(n),H(n)?q():Z()},children:[l>0&&(0,r.jsx)("div",{"data-minimap-earlier":"",style:{position:"absolute",left:"50%",top:Math.max(0,(A[0]?.topRatio??0)*g-28),height:20,width:1,background:"repeating-linear-gradient(to bottom, var(--text-dim) 0 2px, transparent 2px 4px)",transform:"translateX(-50%)",zIndex:0}}),A.map(e=>{let t=v&&J?.index===e.index,n=f===e.index,i=null===y?1/0:Math.abs(e.topRatio-y)*g,s=6+22*Math.exp(-(i*i)/400);return(0,r.jsx)("button",{type:"button",className:aM().node,"data-minimap-node-index":e.index,"data-minimap-node-active":n?"":void 0,"data-nearest":t?"true":void 0,"aria-label":c("chatMinimap.turn",{count:l+e.index+1}),"aria-current":n?"step":void 0,onFocus:()=>{j(e.topRatio),q()},onClick:t=>{0===t.detail&&B(e,"smooth")},style:{top:`${100*e.topRatio}%`,height:Math.max(1,Math.min(32,P))},children:(0,r.jsx)("span",{className:aM().marker,style:{"--tick-width":`${s}px`},"aria-hidden":"true"})},e.index)}),v&&G&&(0,r.jsxs)("div",{ref:$,className:aM().preview,"data-minimap-preview-box":"",style:{top:`clamp(8px, ${X}px, max(8px, calc(100% - ${k}px - 8px)))`},"aria-label":c("chatMinimap.turn",{count:l+G.index+1}),onMouseEnter:q,onMouseDown:e=>e.stopPropagation(),onMouseMove:e=>e.stopPropagation(),children:[l>0&&(0,r.jsx)("button",{type:"button",className:aM().earlier,"data-minimap-preview-earlier":"",onClick:()=>s.current?.scrollTo({top:0,behavior:"smooth"}),children:c("chatMinimap.earlierTurns",{count:l})}),[G].map(e=>{var t;let n=Y===e.index;return(0,r.jsxs)("div",{className:aM().turn,"data-minimap-preview-index":e.index,"data-located":n?"true":void 0,"data-active":f===e.index?"true":void 0,children:[(0,r.jsxs)("span",{className:aM().number,children:[(0,r.jsx)("span",{"aria-hidden":"true",children:String(l+e.index+1).padStart(2,"0")}),e.targetTurn.toolCount>0&&(0,r.jsx)("span",{className:aM().toolBadge,role:"img",title:c("chatMinimap.toolCalls",{count:e.targetTurn.toolCount}),"aria-label":c("chatMinimap.toolCalls",{count:e.targetTurn.toolCount}),children:e.targetTurn.toolCount>99?"99+":e.targetTurn.toolCount})]}),(0,r.jsxs)("div",{className:aM().content,children:[(0,r.jsx)("button",{type:"button",className:aM().user,"data-minimap-preview-user":e.index,onClick:()=>{B(e,"smooth")},children:(0,r.jsx)("span",{className:aM().userText,children:"string"==typeof(t=e.targetTurn.userMessage).content?t.content.trim():t.content.filter(e=>"text"===e.type).map(e=>e.text).join("\n").trim()})}),e.targetTurn.assistantPreviews.map((t,n)=>(0,r.jsxs)("div",{className:aM().assistant,children:[(0,r.jsx)("button",{type:"button",className:aM().assistantJump,"data-minimap-preview-assistant":`${e.index}-${n}`,onClick:()=>_(e,n),"aria-label":c("chatMinimap.locateAssistant"),title:c("chatMinimap.locateAssistant"),children:(0,r.jsx)("svg",{width:"12",height:"12",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"1.6",strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":"true",children:(0,r.jsx)("path",{d:"M5 4v9a4 4 0 0 0 4 4h10m-4-4 4 4-4 4"})})}),(0,r.jsx)(aA,{markdown:t.markdown,onAnswerClick:()=>_(e,n),onHeadingClick:t=>U(e,n,t)})]},n))]})]},e.index)})]})]}):null});var az=n(42790);function aW(e){let{text:t}=e,n=(0,i.useMemo)(()=>new az.v().ansi_to_html(t),[t]);return(0,r.jsx)("span",{dangerouslySetInnerHTML:{__html:n}})}function aO(e){let t,n,s,{widgets:o,children:a}=e,{t:l}=(0,eG.s)(),c=(0,i.useId)(),d=(0,i.useRef)(null),u=(0,i.useRef)(new Map),[p,h]=(0,i.useState)(()=>o.find(e=>{let t=e.lines.length;return t>1&&t<=3})?.key??null),[f,m]=(0,i.useState)(()=>new Set);if((0,i.useEffect)(()=>{var e;let t=new Map(o.map(e=>[e.key,[...e.lines]])),n=(e=d.current,e?Array.from(t,t=>{let[n,r]=t,i=e.get(n);return i&&i.length===r.length?r.some((e,t)=>e!==i[t])?n:null:i?n:null}).filter(e=>null!==e):[]);for(let[e,n]of(d.current=t,u.current))t.has(e)||(clearTimeout(n),u.current.delete(e));for(let e of(m(e=>{let r=new Set(Array.from(e).filter(e=>t.has(e)));for(let e of n)r.add(e);return r.size===e.size&&Array.from(r).every(t=>e.has(t))?e:r}),n)){let t=u.current.get(e);t&&clearTimeout(t),u.current.set(e,setTimeout(()=>{u.current.delete(e),m(t=>{if(!t.has(e))return t;let n=new Set(t);return n.delete(e),n})},1100))}},[o]),(0,i.useEffect)(()=>()=>{for(let e of u.current.values())clearTimeout(e);u.current.clear()},[]),0===o.length)return null;let g=o.find(e=>e.key===p&&e.lines.length>0);return(0,r.jsxs)(r.Fragment,{children:[g&&(0,r.jsx)("div",{className:"extension-widget-panels",children:(t=o.indexOf(g),n=`${c}-trigger-${t}`,s=`${c}-panel-${t}`,(0,r.jsxs)("section",{id:s,className:"extension-widget-panel","aria-labelledby":n,children:[(0,r.jsx)("div",{className:"extension-widget-panel-heading",children:g.key}),(0,r.jsx)("pre",{className:"extension-widget-content",children:(0,r.jsx)(aW,{text:g.lines.join("\n")})})]},g.key))}),(0,r.jsxs)("div",{className:"extension-status-row",children:[(0,r.jsx)("div",{className:"extension-widget-triggers","aria-label":l("chat.extensionWidgets"),children:o.map((e,t)=>{let n=e.lines.length>0,i=n&&e.key===g?.key,s=f.has(e.key),o=l(1===e.lines.length?"chat.extensionWidgetLine":"chat.extensionWidgetLines",{count:e.lines.length}),a=l("belowEditor"===e.placement?"chat.extensionWidgetBelow":"chat.extensionWidgetAbove"),d=`${c}-trigger-${t}`,u=`${c}-panel-${t}`,p=(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)("span",{className:"extension-widget-update-pulse","aria-hidden":"true"}),(0,r.jsx)("span",{className:"extension-widget-placement","aria-hidden":"true",children:(0,r.jsx)("svg",{className:"extension-widget-placement-icon",viewBox:"0 0 8 6",width:"8",height:"6","data-direction":"belowEditor"===e.placement?"down":"up",focusable:"false",children:(0,r.jsx)("path",{d:"belowEditor"===e.placement?"M0 0h8L4 6z":"M4 0l4 6H0z"})})}),(0,r.jsx)("span",{className:"extension-widget-key",children:e.key})]});return n?(0,r.jsx)("button",{id:d,type:"button",className:`extension-widget-trigger${i?" is-expanded":""}${s?" is-updating":""}`,"aria-controls":u,"aria-expanded":i,"aria-label":`${a}: ${e.key}, ${o}`,title:`${e.key} - ${a} - ${i?l("i18n.collapse"):l("i18n.expand")}`,onClick:()=>{h(t=>{var n;return t===(n=e.key)?null:n})},children:p},e.key):(0,r.jsx)("div",{className:`extension-widget-trigger${s?" is-updating":""}`,"aria-label":`${a}: ${e.key}, ${o}`,title:`${e.key} - ${a}`,children:p},e.key)})}),a]})]})}let aF="command:";function aD(e){let{statuses:t,widgets:n=[],onCommand:i,commandsDisabled:s=!1}=e,o=function(e){let t=[];for(let n of[...e].sort((e,t)=>e.key.localeCompare(t.key))){let e=n.text.replace(/\r\n?/g,"\n").split("\n").map(e=>e.replace(/\t/g," ").replace(/ +/g," ").trim()).join("\n").trim(),r=function(e){if(!e.startsWith(aF))return null;let t=e.slice(aF.length).trim();return t.length>1&&t.startsWith("/")?t:null}(n.key);if(r){let n=rd(e).replace(/\s+/g," ").trim();t.push({kind:"command",command:r,label:n||r})}else rd(e).trim()&&t.push({kind:"text",text:e})}return t}(t);if(0===o.length&&0===n.length)return null;let a=o.some(e=>"command"===e.kind),l=o.map(e=>"text"===e.kind?rd(e.text):e.label).join(" "),c=o.length>0?(0,r.jsx)("div",{role:"status",className:"extension-status-line","aria-label":l,title:l,children:(0,r.jsx)("span",{className:"extension-status-text",children:o.map((e,t)=>"text"===e.kind?(0,r.jsx)("span",{className:"extension-status-item",children:(0,r.jsx)(aW,{text:e.text})},t):(0,r.jsx)("button",{type:"button",className:"extension-status-item extension-status-command",disabled:!i||s,title:`${e.label} \xb7 ${e.command}`,"aria-label":`${e.label} (${e.command})`,onClick:()=>i?.(e.command),children:e.label},t))})}):null;return(0,r.jsx)("div",{className:`extension-status-shelf${n.length>0?" has-widgets":""}${o.length>0?" has-status":""}${a?" has-commands":""}`,children:n.length>0?(0,r.jsx)(aO,{widgets:n,children:c}):c})}let aB={owner:null,sessionId:null,phase:"idle",result:null},a_=aB,aH=0,aU=new Set;function aK(e){a_=e,aU.forEach(e=>e())}let aq={subscribe:e=>(aU.add(e),()=>{aU.delete(e)}),getSnapshot:()=>a_,getServerSnapshot:()=>aB,update(e,t,n){if(a_.owner===e&&a_.sessionId===t&&a_.phase===n)return;let r="idle"===a_.phase&&"idle"!==n;aK({owner:e,sessionId:t,phase:n,result:a_.owner!==e||r?null:a_.result})},finish(e,t){a_.owner===e&&(a_.result?.kind!=="error"||"complete"!==t)&&aK({...a_,result:{sequence:++aH,kind:t}})},release(e){a_.owner===e&&aK(aB)}};function aZ(e){switch(e.method){case"select":case"confirm":case"input":case"editor":return!0;case"custom":return!0!==e.closed;default:return!1}}function aV(e,t){return e.every(e=>t.has(e.id))?e:e.filter(e=>t.has(e.id))}function aJ(e,t){return e.some(e=>e.id===t)?e.filter(e=>e.id!==t):e}function aY(e){return"object"==typeof e&&null!==e&&!Array.isArray(e)}function aG(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};if("assistant"!==e.role)return e;let n=e.content;if(!Array.isArray(n))return e;let r=n.map(e=>(function(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};if(!aY(e)||"toolCall"!==e.type)return null;let n={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},r=t.includeStreamingRawInput?function(e){if("string"==typeof e.rawInput)return e.rawInput;if("string"==typeof e.partialJson)return e.partialJson;if("string"==typeof e.partialArgs)return e.partialArgs;let t=aY(e.customInput)?e.customInput:null,n=t&&"string"==typeof t.property?t.property:null,r=aY(e.arguments)?e.arguments:null;return n&&r&&"string"==typeof r[n]?r[n]:void 0}(e):void 0;return void 0===r?n:{...n,rawInput:r}})(e,t)??e);return{...e,content:r}}class aX extends Error{constructor(e,t,n,r){super(e),this.status=t,this.code=n,this.accepted=r,this.name="AgentCommandError"}}function aQ(e){return e instanceof aX&&"prompt_rejected"===e.code&&!1===e.accepted}async function a0(e,t){let n=await fetch(`/api/agent/${encodeURIComponent(e)}`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(t)}),r=await n.json().catch(()=>({}));if(!n.ok||r.error)throw new aX(r.error??`HTTP ${n.status}`,n.status,r.code,r.accepted);return r.data}function a1(){return globalThis.__piSessionViewCache||(globalThis.__piSessionViewCache=new Map),globalThis.__piSessionViewCache}let a2=new WeakMap;function a4(e){let t,n=a2.get(e);if(void 0!==n)return n;try{t=JSON.stringify(e).length}catch{t=Number.MAX_SAFE_INTEGER}return a2.set(e,t),t}function a8(e){let t=a1().get(e);return t?Date.now()-t.savedAt>6e5?(a1().delete(e),null):(a1().delete(e),a1().set(e,t),t):null}function a3(e){if(!e.sessionId||!e.revision)return!1;let t=a1();t.delete(e.sessionId);let n={...e,savedAt:Date.now()};return!(a4(n)>0x2000000)&&(t.set(n.sessionId,n),!function(){let e=a1();for(;e.size>8;){let t=e.keys().next().value;if(void 0===t)break;e.delete(t)}let t=0;for(let n of e.values())t+=a4(n);for(;t>0x2000000&&e.size>0;){let n=e.keys().next().value;if(void 0===n)break;let r=e.get(n);e.delete(n),r&&(t-=a4(r))}}(),a1().has(n.sessionId))}function a6(e){a1().delete(e)}var a5=n(14755);let a9="pi-tool-preset";function a7(){try{return window.localStorage}catch{return null}}function le(e,t){t&&(e.tokens.input+=t.input??0,e.tokens.output+=t.output??0,e.tokens.cacheRead+=t.cacheRead??0,e.tokens.cacheWrite+=t.cacheWrite??0,e.cost+=t.cost?.total??0)}function lt(e){let t={userMessages:0,assistantMessages:0,toolCalls:0,toolResults:0,totalMessages:0,tokens:{input:0,output:0,cacheRead:0,cacheWrite:0,total:0},cost:0};for(let n of e)"custom"!==n.role&&(t.totalMessages+=1,"user"===n.role?t.userMessages+=1:"toolResult"===n.role?(t.toolResults+=1,le(t,n.usage)):"assistant"===n.role&&(t.assistantMessages+=1,Array.isArray(n.content)&&(t.toolCalls+=n.content.filter(e=>"toolCall"===e.type).length),le(t,n.usage)));return t.tokens.total=t.tokens.input+t.tokens.output+t.tokens.cacheRead+t.tokens.cacheWrite,t}function ln(e){if(!e||"object"!=typeof e||"image"!==e.type)return"";let t=e.source;return t&&"object"==typeof t?["url"===t.type?"url":"base64","string"==typeof t.media_type?t.media_type:"","string"==typeof t.data?t.data:"","string"==typeof t.url?t.url:""].join(":"):["base64","string"==typeof e.mimeType?e.mimeType:"","string"==typeof e.data?e.data:"",""].join(":")}function lr(e){let t,n=e.content;return"string"==typeof n?JSON.stringify({text:n,images:[]}):Array.isArray(n)?JSON.stringify({text:"string"==typeof(t=e.content)?t:Array.isArray(t)?t.map(e=>e&&"object"==typeof e&&"text"===e.type&&"string"==typeof e.text?e.text:"").filter(Boolean).join("\n"):"",images:n.map(ln).filter(Boolean)}):JSON.stringify({text:"",images:[]})}let li=(e,t)=>`live:${e??""}:${t}`;class ls extends Error{constructor(e,t){super(t??("ready_timeout"===e?"Timed out starting the agent session. Please try again.":"Failed to connect to the agent event stream. Please try again.")),this.status=e,this.name="AgentEventConnectionError"}}class lo{constructor(e){this.options=e,this.current=null,this.retry=null,this.retryGeneration=0}close(){this.stopRetrying(),this.current&&this.discard(this.current,new ls("closed"))}maintain(e){if(!this.options.shouldMaintain(e))return;let t=this.retryGeneration;this.ensureConnected(e).catch(n=>{t===this.retryGeneration&&(n instanceof ls?"startup_error"===n.status?this.stopRetrying():this.scheduleRetry(e):this.options.onUnexpectedError?.(n))})}async ensureConnected(e){for(;;){let t=this.current;if(t&&t.sessionId===e){if(t.attempt.ready&&1===t.source.readyState)return}else t=this.open(e);if(await t.attempt.promise,this.current!==t){if(this.current?.sessionId===e)continue;throw new ls("closed")}if(1===t.source.readyState)return;this.discard(t,new ls("closed"))}}open(e){let t,n,r;this.current&&this.discard(this.current,new ls("closed"));try{t=this.options.createSource(e)}catch(e){throw new ls("closed",e instanceof Error?e.message:String(e))}let i=!1,s=new Promise((e,t)=>{n=e,r=t}),o=setTimeout(()=>{this.fail(l,new ls("ready_timeout"))},this.options.readinessTimeoutMs),a={promise:s,ready:!1,succeed(){i||(i=!0,clearTimeout(o),n())},fail(e){i||(i=!0,clearTimeout(o),r(e))}},l={sessionId:e,source:t,attempt:a};return this.current=l,t.onmessage=e=>{let t;if(this.current===l){try{t=JSON.parse(e.data)}catch{return}if("connected"===t.type)a.ready=!0,a.succeed(),this.stopRetrying();else if("startup_error"===t.type){let e="string"==typeof t.errorMessage?t.errorMessage:void 0;this.fail(l,new ls("startup_error",e));return}this.options.onEvent(t)}},t.onerror=()=>{this.fail(l,new ls("closed"))},l}fail(e,t){this.current===e&&(this.discard(e,t),"startup_error"===t.status?this.stopRetrying():this.scheduleRetry(e.sessionId))}discard(e,t){e.attempt.fail(t),e.source.close(),this.current===e&&(this.current=null)}scheduleRetry(e){if(!this.options.shouldMaintain(e)||this.retry?.sessionId===e)return;this.clearRetry();let t=setTimeout(()=>{this.retry?.timer===t&&(this.retry=null,this.maintain(e))},this.options.reconnectDelayMs);this.retry={sessionId:e,timer:t}}stopRetrying(){this.retryGeneration+=1,this.clearRetry()}clearRetry(){this.retry&&clearTimeout(this.retry.timer),this.retry=null}}function la(e){return("tool_execution_start"===e.type||"tool_execution_update"===e.type||"tool_execution_end"===e.type)&&"string"==typeof e.parentToolCallId&&""!==e.parentToolCallId}function ll(e){var t;return("message_start"===e.type||"message_end"===e.type)&&"object"==typeof(t=e.message)&&null!==t&&!Array.isArray(t)&&"system"===e.message.role}function lc(e){return"object"==typeof e&&null!==e&&!Array.isArray(e)}function ld(e,t,n){let r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:8;return e+t>=n-r}let lu={isStreaming:!1,streamingMessage:null};function lp(e,t,n){let r=e.streamingMessage;if(!r||!Number.isInteger(t)||t<0)return e;let i=[...r.content],s=n(i[t]);return s?(i[t]=s,{isStreaming:!0,streamingMessage:{...r,content:i}}):e}function lh(){let e=lu,t=new Set;return{getState:()=>e,dispatch(n){let r=function(e,t){switch(t.type){case"start":return{isStreaming:!0,streamingMessage:null};case"resume":return{...e,isStreaming:!0};case"snapshot":{let n=aG(t.message,{includeStreamingRawInput:!0});return"assistant"===n.role?{isStreaming:!0,streamingMessage:n}:e}case"delta":var n=t.event;switch(n.type){case"text_start":return lp(e,n.contentIndex,()=>({type:"text",text:""}));case"text_delta":return lp(e,n.contentIndex,e=>e?.type==="text"?{...e,text:e.text+n.delta}:null);case"text_end":return lp(e,n.contentIndex,e=>({...e?.type==="text"?e:{},type:"text",text:n.content}));case"thinking_start":return lp(e,n.contentIndex,()=>({type:"thinking",thinking:""}));case"thinking_delta":return lp(e,n.contentIndex,e=>e?.type==="thinking"?{...e,thinking:e.thinking+n.delta}:null);case"thinking_end":return lp(e,n.contentIndex,e=>({...e?.type==="thinking"?e:{},type:"thinking",thinking:n.content}));case"toolcall_start":return lp(e,n.contentIndex,e=>e?.type==="toolCall"?{...e,toolCallId:n.id??e.toolCallId,toolName:n.toolName??e.toolName,rawInput:""}:"string"!=typeof n.toolName?null:{type:"toolCall",toolCallId:n.id??"",toolName:n.toolName,input:{},rawInput:""});case"toolcall_delta":return lp(e,n.contentIndex,e=>e?.type==="toolCall"?{...e,toolCallId:n.id||e.toolCallId,toolName:n.toolName||e.toolName,rawInput:(e.rawInput??"")+n.delta}:null);case"toolcall_end":return lp(e,n.contentIndex,()=>({type:"toolCall",toolCallId:n.toolCall.id,toolName:n.toolCall.name,input:n.toolCall.arguments}));default:return e}case"end":return lu;default:return e}}(e,n);if(r!==e)for(let n of(e=r,t))n()},subscribe:e=>(t.add(e),()=>{t.delete(e)})}}function lf(e){return{steering:e?.steering??[],followUp:e?.followUp??[]}}function lm(e){return e&&"auto"!==e?e:null}let lg=new Map,lx=[2e3,5e3,1e4];function lv(e){return new Promise(t=>setTimeout(t,e))}function lb(e){let t=e.findIndex(e=>!e.exiting);return -1===t?e:e.map((e,n)=>n===t?{...e,exiting:!0}:e)}function ly(e,t){switch(t.type){case"add":if(e.visible.some(e=>e.exiting)||e.visible.length>=5)return{visible:e.visible.some(e=>e.exiting)?e.visible:lb(e.visible),pending:[...e.pending,t.notice]};return{...e,visible:[...e.visible,t.notice]};case"mark_oldest_exiting":return{...e,visible:lb(e.visible)};case"remove":return function(e,t){let n=e,r=t;for(;r.length>0&&n.length<5;){let[e,...t]=r;n=[...n,e],r=t}return r.length>0&&!n.some(e=>e.exiting)&&(n=lb(n)),{visible:n,pending:r}}(e.visible.filter(e=>e.id!==t.id),e.pending);default:return e}}function lj(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}function lk(e,t){let[n,r]=(0,i.useState)(()=>t(e.getState()));return(0,i.useLayoutEffect)(()=>{let n=()=>r(t(e.getState()));return n(),e.subscribe(n)},[e,t]),n}let lw=e=>e.isStreaming,lS=e=>!!e.streamingMessage?.content.length,lC=e=>e.streamingMessage;function lN(e){let t,{messageCount:n,toolCallCount:s,durationMs:o,cacheMisses:a,defaultExpanded:l=!1,reveal:c=!1,children:d,t:u}=e,[p,h]=(0,i.useState)(l);(0,i.useLayoutEffect)(()=>{c&&h(!0)},[c]);let f=[`${n} ${u(1===n?"chat.message":"chat.messages")}`];s>0&&f.push(`${s} ${u(1===s?"chat.toolCall":"chat.toolCalls")}`),void 0!==o&&f.push(u("chat.turnDuration",{time:rU(o)}));let m=a&&!(p||c)?(t={count:a.count,tokens:sk(a.missedTokens),cost:sS(u,a.missedCost)},u(1===a.count?"transcriptNotice.foldCacheMiss":"transcriptNotice.foldCacheMisses",t)):void 0;return(0,r.jsxs)("div",{style:{marginBottom:14},children:[(0,r.jsxs)("button",{type:"button","aria-expanded":p||c,"aria-label":[u("chat.processDetails"),...f,...m?[m]:[]].join(" \xb7 "),onClick:()=>h(e=>!e),style:{display:"flex",alignItems:"center",gap:8,width:"auto",maxWidth:"100%",minHeight:24,padding:"2px 0",border:"none",background:"transparent",color:"var(--text-muted)",cursor:"pointer",fontSize:12,textAlign:"left"},title:u(p?"chat.collapseProcess":"chat.expandProcess"),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:p?"rotate(90deg)":"none",transition:"transform 0.15s"},children:(0,r.jsx)("polyline",{points:"4 2.5 7.5 6 4 9.5"})}),(0,r.jsxs)("span",{style:{minWidth:0,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:[f.join(" \xb7 "),m&&(0,r.jsx)("span",{style:{color:sw},children:` \xb7 ${m}`})]})]}),(p||c)&&(0,r.jsx)("div",{style:{marginTop:8},children:d})]})}function lE(e){var t;let s,{session:l,searchTarget:c,onSearchTargetHandled:d,initialScrollPosition:u,onScrollPositionChange:p,sessionRunning:h,newSessionCwd:f,newSessionDraftKey:m,newSessionContextBar:g,newSessionProjectName:x,onChooseNewSessionProject:v,initialNewSessionChoices:b,onNewSessionChoicesChange:y,onAgentEnd:j,onToolEnd:k,onAttentionNeeded:w,onSessionCreated:S,onSessionForked:C,modelsRefreshKey:N,chatInputRef:E,onBranchDataChange:$,onSystemPromptChange:M,onSystemToolsChange:I,onSystemInfoLoaderChange:T,onSessionStatsChange:R,onSessionStatsPanelOpen:L,sessionStatsControl:A,onOpenSettings:P,onContextUsageChange:z,onOpenFile:W,onFilesUploaded:O,onOpenSubagent:F,onAskInNewChat:D,quoteSelectionEnabled:B=!1,initialPrompt:_,onInitialPromptConsumed:H,soundEnabled:U=!0,onSoundToggle:K,playDoneSound:q=()=>{},unlockAudio:Z,holdAudio:V}=e,{t:J}=(0,eG.s)(),Y=e5(),G=l?.relation?.kind!=="subagent",X=(0,i.useRef)(q);X.current=q;let Q=(0,i.useRef)(U);Q.current=U;let ee=(0,i.useRef)(!1),[et]=(0,i.useState)(()=>Symbol("active-chat")),en=(0,i.useCallback)(e=>{aq.finish(et,e.aborted?"stopped":e.failed?"error":"complete"),G&&Q.current&&!e.aborted&&!e.failed&&X.current(),j?.(e)},[et,G,j]),er=(0,i.useRef)(c?null:u??null),[ei,es]=(0,i.useState)(()=>{let e=er.current;return e&&!e.atBottom?e:null}),[eo,ea]=(0,i.useState)(!1),{loading:el,error:ec,messages:ed,activeToolResults:eu,entryIds:ep,messageKeys:eh,historyCursor:ef,hasEarlierMessages:em,earlierTurnCount:eg,streamingStore:ex,agentRunning:ev,bashRunning:eb,pendingBash:ey,modelNames:ej,modelList:ek,modelError:ew,modelScopeWarnings:eS,modelThinkingLevels:eC,modelThinkingLevelMaps:eN,toolPreset:eE,thinkingLevel:e$,retryInfo:eM,contextUsage:eI,forkingEntryId:eT,isCompacting:eR,compactError:eL,compactResult:eA,displayModel:eP,modelSwitching:ez,sessionStats:eW,slashCommands:eO,slashCommandsLoading:eF,queuedMessages:eD,notices:eB,extensionDialog:e_,waitingExtensionDialogCount:eH,extensionCustomUi:eU,waitingExtensionCustomUiCount:eK,extensionStatuses:eq,extensionWidgets:eZ,respondToExtensionUi:eV,sendExtensionCustomInput:eJ,setNoticePaused:eY,addNotice:eX,isAutoModelSelection:eQ,isAutoThinkingSelection:e0,defaultModel:e1,savedDefaultThinkingLevel:e2,agentPhase:e4,isNew:e8,editEntryId:e3,showScrollToBottom:e6,sessionIdRef:e9,scrollContainerRef:e7,lastUserMsgRef:te,promptAnchorActive:tt,handleSend:tn,handleAbort:tr,handleFork:ts,handleEditContent:to,cancelEdit:ta,handleModelChange:tl,handleCompact:tc,handleSteer:td,handleFollowUp:tu,handlePromptWithStreamingBehavior:tp,handleAbortCompaction:th,dismissCompactError:tf,handleRecallQueue:tm,handleBuiltinSlashCommand:tg,handleToolPresetChange:tx,handleThinkingLevelChange:tv,handleSetDefaultModel:tb,handleSetDefaultThinkingLevel:ty,loadSlashCommands:tj,scrollUserMsgToTop:tk,loadContext:tw,activeLeafId:tS,scrollToBottom:tC,scrollToMessage:tN}=function(e){let{session:t,newSessionCwd:r,newSessionDraftKey:s,onAgentEnd:o,onToolEnd:a,onAttentionNeeded:l,onSessionCreated:c,onSessionForked:d,modelsRefreshKey:u,onBranchDataChange:p,onSystemPromptChange:h,onSystemToolsChange:f,onSystemInfoLoaderChange:m,onSessionStatsPanelOpen:g,onOpenSettings:x}=e,v=null===t&&null!==r,b=v?e.initialNewSessionChoices??null:null,[y,j]=(0,i.useState)(null),[k,w]=(0,i.useState)(!v),[S,C]=(0,i.useState)(null),[N,E]=(0,i.useState)(null),[$,M]=(0,i.useState)([]),[I,T]=(0,i.useState)(new Map),[R,L]=(0,i.useState)([]),[A,P]=(0,i.useState)(()=>new Map),[z,W]=(0,i.useState)(null),[O,F]=(0,i.useState)(!1),[D,B]=(0,i.useState)(0),[_]=(0,i.useState)(lh),H=_.dispatch,[U,K]=(0,i.useState)(!1),[q,Z]=(0,i.useState)(!1),[V,J]=(0,i.useState)(null),[Y,G]=(0,i.useState)({}),[X,Q]=(0,i.useState)([]),[ee,et]=(0,i.useState)(null),[en,er]=(0,i.useState)([]),[ei,es]=(0,i.useState)({}),[eo,ea]=(0,i.useState)({}),[el,ec]=(0,i.useState)(()=>b?.model??null),[ed,eu]=(0,i.useState)(null),[ep,eh]=(0,i.useState)(a5.Q8),[ef,em]=(0,i.useState)(()=>b?.thinkingLevel??null),[eg,ex]=(0,i.useState)(null),[ev,eb]=(0,i.useState)(null),[ey,ej]=(0,i.useState)(null),[ek,ew]=(0,i.useState)(null),[eS,eC]=(0,i.useState)(null),[eN,eE]=(0,i.useState)(null),e$=(0,i.useRef)(0),eM=(0,i.useRef)(0),[eI,eT]=(0,i.useState)(null),[eR,eL]=(0,i.useState)(null),[eA,eP]=(0,i.useState)(null),[ez,eW]=(0,i.useState)(null),[eO,eF]=(0,i.useState)(null),[eD,eB]=(0,i.useState)(!1),[e_,eH]=(0,i.useState)(!1),[eU,eK]=(0,i.useState)(!0),[eq,eZ]=(0,i.useState)(null),[eV,eJ]=(0,i.useState)(null),[eY,eG]=(0,i.useState)(null),[eX,eQ]=(0,i.useState)(!1),[e0,e1]=(0,i.useState)(!1),[e2,e4]=(0,i.useState)([]),[e8,e3]=(0,i.useState)(!1),[e6,e5]=(0,i.useReducer)(ly,{visible:[],pending:[]}),[e9,e7]=(0,i.useState)(null),[te,tt]=(0,i.useState)([]),[tn,tr]=(0,i.useState)([]),[ti,ts]=(0,i.useState)([]),[to,ta]=(0,i.useState)([]),[tl,tc]=(0,i.useState)({steering:[],followUp:[]}),td=(0,i.useRef)(null),tu=(0,i.useRef)(null),tp=(0,i.useRef)(0),th=(0,i.useRef)(!1),tf=(0,i.useRef)(t?.id??null),tm=(0,i.useRef)(t?.id??null),tg=(0,i.useRef)(!1),tx=(0,i.useRef)(!1),tv=(0,i.useRef)(!1),tb=(0,i.useRef)(!1),ty=(0,i.useRef)(!1),tj=(0,i.useRef)(-1),tk=(0,i.useRef)(!1),tw=(0,i.useRef)(0),tS=(0,i.useRef)(null),tC=(0,i.useRef)(!!e.deferInitialScroll),tN=(0,i.useRef)(null),tE=(0,i.useRef)(!1),t$=(0,i.useRef)(!0),tM=(0,i.useRef)(0),tI=(0,i.useRef)(null),tT=(0,i.useRef)(void 0),tR=(0,i.useRef)(void 0),tL=(0,i.useRef)(null),tA=(0,i.useRef)(null),tP=(0,i.useRef)([]),tz=(0,i.useRef)(null),tW=(0,i.useRef)(0),tO=(0,i.useRef)(!1),tF=(0,i.useRef)(b?.model??null),tD=(0,i.useRef)(b?.thinkingLevel??null),tB=(0,i.useRef)({}),t_=(0,i.useRef)(null),tH=(0,i.useRef)(0),tU=(0,i.useRef)(null),tK=(0,i.useRef)(!1),tq=(0,i.useRef)(new Map),tZ=(0,i.useRef)(!0),tV=(0,i.useRef)(new Map),tJ=(0,i.useRef)(null),tY=(0,i.useRef)([]),tG=(0,i.useRef)([]),tX=(0,i.useRef)(null),tQ=(0,i.useRef)(null),t0=(0,i.useRef)(!1),t1=(0,i.useRef)(0);tm.current=t?.id??null,tJ.current=y,tY.current=$,tG.current=R,tX.current=N,tQ.current=z,t0.current=O,t1.current=D,td.current||(td.current=new lo({createSource:e=>new EventSource(`/api/agent/${encodeURIComponent(e)}/events`),onEvent:e=>tS.current?.(e),shouldMaintain:e=>tZ.current&&tf.current===e&&(tx.current||th.current||tm.current===e),readinessTimeoutMs:6e4,reconnectDelayMs:1e3,onUnexpectedError:e=>{console.error("Failed to maintain the agent event stream:",e)}}));let t2=e.setToolPreset??eh,t4=t?.id;(0,i.useLayoutEffect)(()=>{(t4||v&&!tf.current)&&t2(function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:a7();if(!e)return a5.Q8;try{let t=e.getItem(a9);return(0,a5.sn)(t)?t:a5.Q8}catch{return a5.Q8}}())},[t4,v,t2]);let t8=e.onNewSessionChoicesChange;(0,i.useEffect)(()=>{v&&t8?.({model:el,thinkingLevel:ef})},[v,el,ef,t8]);let t3=(0,i.useCallback)(function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"smooth",t=tL.current;t&&(t.scrollTo({top:t.scrollHeight,behavior:e}),tM.current=t.scrollTop)},[]),t6=eA??ez??y?.context.model??eO??null,t5=v?el??ed:t6??(y?.context.messages.length===0?ed:null),t9=lm(y?.context.thinkingLevel&&"off"!==y.context.thinkingLevel?y.context.thinkingLevel:null),t7=v?ef??eg:ey??ek??t9??(y?.context.messages.length===0?eg:null),ne=t?.id??s??void 0,nt=(0,i.useCallback)(e=>{eW(e?.model?{provider:e.model.provider,modelId:e.model.id}:null),e?.thinkingLevel!==void 0&&ew(lm(e.thinkingLevel))},[]),nn=(0,i.useCallback)(e=>{if(!e)return;let t=e,n=new Set;for(;!n.has(t);){n.add(t);let e=tq.current.get(t);if(!e)break;t=e}return t},[]),nr=(0,i.useCallback)((t,n,r)=>{let i=n?.map(e=>{let{data:t,mimeType:n}=e;return{data:t,mimeType:n}}),o=nn(r);if(!tZ.current&&!tO.current&&r===s)return;let a=e.chatInputRef?.current;if(a)a.restoreSubmission(t,i,o);else{let e,n;o&&(n=os(t,i,(e=ot(o)??{value:"",images:[]}).value,e.images),on(o,n))}},[s,e.chatInputRef,nn]),[ni,ns]=(0,i.useState)(()=>{let e=t?.id;return e&&!ot(e)&&lg.delete(e),e&&lg.get(e)||null}),no=(0,i.useCallback)(e=>{t?.id&&(e?lg.set(t.id,e):lg.delete(t.id),ns(e))},[t?.id]),na=(0,i.useCallback)((n,r)=>{t?.id&&(e.chatInputRef?.current?.replaceMessage(n),no(r))},[e.chatInputRef,t?.id,no]),nl=(0,i.useCallback)(()=>no(null),[no]),nc=(0,i.useMemo)(()=>{if(e9)return{...e9,totalActiveMs:y?.totalActiveMs,...eN?{contextUsage:eN}:{}};let e=y?.stats,n=function(e,t,n){let r=lt(n);if(!e)return r;let i=lt(t),s=(e,t)=>Math.max(0,e-t),o={input:e.tokens.input+s(r.tokens.input,i.tokens.input),output:e.tokens.output+s(r.tokens.output,i.tokens.output),cacheRead:e.tokens.cacheRead+s(r.tokens.cacheRead,i.tokens.cacheRead),cacheWrite:e.tokens.cacheWrite+s(r.tokens.cacheWrite,i.tokens.cacheWrite),total:0};return o.total=o.input+o.output+o.cacheRead+o.cacheWrite,{userMessages:e.userMessages+s(r.userMessages,i.userMessages),assistantMessages:e.assistantMessages+s(r.assistantMessages,i.assistantMessages),toolCalls:e.toolCalls+s(r.toolCalls,i.toolCalls),toolResults:e.toolResults+s(r.toolResults,i.toolResults),totalMessages:e.totalMessages+s(r.totalMessages,i.totalMessages),tokens:o,cost:e.cost+s(r.cost,i.cost)}}(e,y?.context.messages??[],$);return 0!==n.tokens.total||0!==$.length||e?{sessionFile:y?.filePath||void 0,sessionId:tf.current??t?.id??"",sessionName:t?.name,...n,totalActiveMs:y?.totalActiveMs,...eN?{contextUsage:eN}:{}}:null},[$,e9,eN,y?.context.messages,y?.filePath,y?.totalActiveMs,y?.stats,t?.id,t?.name]),nd=(0,i.useCallback)((e,t,n,r)=>{tZ.current&&tf.current===t&&tH.current===n&&!(r<=eM.current)&&(eM.current=r,e?.contextUsage!==void 0&&eE(e.contextUsage??null))},[]),nu=(0,i.useCallback)(async e=>{let t=tH.current,n=++e$.current;try{let r=await fetch(`/api/agent/${encodeURIComponent(e)}`);if(!r.ok)return;let i=await r.json();nd(i.state,e,t,n)}catch{}},[nd]),np=(0,i.useCallback)(async function(e){let t=arguments.length>1&&void 0!==arguments[1]&&arguments[1],n=arguments.length>2&&void 0!==arguments[2]&&arguments[2],r=arguments.length>3?arguments[3]:void 0,i=r?.force?`force:${e}`:e,s=r?.force?void 0:tV.current.get(i);if(s)return await s;let o=(async()=>{let i=!1;try{t&&w(!0);let s=new URLSearchParams({deferThinking:"1",deferMedia:"1",tree:"summary"});r?.force&&s.set("force","1");let o=await fetch(`/api/sessions/${encodeURIComponent(e)}?${s}`);if(404===o.status)return t&&(j(null),E(null),M([]),L([]),W(null),F(!1),B(0),C(null)),a6(e),null;if(!o.ok)throw Error(`HTTP ${o.status}`);let a=await o.json();if(tf.current!==e)return null;let l=a8(e),c=!!(a.snapshotRevision&&l?.revision===a.snapshotRevision&&l.entryIds.length>=(a.context.entryIds??[]).length),d=c?tY.current:a.context.messages;if(j(c?{...a,context:{...a.context,messages:tY.current,entryIds:tG.current,oldestEntryId:tQ.current,hasMore:t0.current,turnsBefore:t1.current}}:a),E(a.leafId),c)a3({sessionId:e,revision:a.snapshotRevision,messages:tY.current,entryIds:tG.current,leafId:a.leafId,oldestEntryId:tQ.current,hasMore:t0.current,turnsBefore:t1.current,summaryTree:a.tree,thinkingLevel:a.context.thinkingLevel,model:a.context.model,stats:a.stats,totalActiveMs:a.totalActiveMs,loadedEntryIds:tG.current});else{let e={messages:tY.current,entryIds:tG.current},t={messages:d,entryIds:a.context.entryIds??[]};P(n=>(function(e,t){let n=new Set(t.entryIds),r=new Map([...e.aliases].filter(e=>{let[t]=e;return n.has(t)})),i=e.entryIds.length,s=e.entryIds[i-1],o=void 0===s?0:t.entryIds.indexOf(s)+1;if(0===o&&void 0!==s)return r;for(let n=0;i+n<e.messages.length;n++){var a,l;let c=t.entryIds[o+n];if(void 0===c||(a=e.messages[i+n],l=t.messages[o+n],a.role!==l.role||("user"===a.role?lr(a)!==lr(l):"custom"===a.role?a.customType!==l.customType:a.timestamp!==l.timestamp)))break;r.set(c,li(s,n))}return r})({...e,aliases:n},t)),M(t.messages),L(t.entryIds),W(a.context.oldestEntryId),F(a.context.hasMore),B(a.context.turnsBefore??0)}if(tg.current=void 0!==a.toolNames,t2(void 0!==a.toolNames?(0,a5.YO)(a.toolNames):a5.Q8),eP(e=>tK.current?e:null),ej(null),C(null),"summary"===a.treeFormat&&a.snapshotRevision&&a3({sessionId:e,revision:a.snapshotRevision,messages:d,entryIds:a.context.entryIds??[],leafId:a.leafId,oldestEntryId:a.context.oldestEntryId,hasMore:a.context.hasMore,turnsBefore:a.context.turnsBefore??0,summaryTree:a.tree,thinkingLevel:a.context.thinkingLevel,model:a.context.model,stats:a.stats,totalActiveMs:a.totalActiveMs,loadedEntryIds:a.context.entryIds??[]}),a.wrapperRebuilt&&(td.current?.close(),td.current?.maintain(e)),!n&&a.context.thinkingLevel&&"off"!==a.context.thinkingLevel&&ew(lm(a.context.thinkingLevel)),i=!0,t&&w(!1),!n)return null;try{let t=tH.current,n=++e$.current,r=await fetch(`/api/sessions/${encodeURIComponent(e)}/state`);if(!r.ok)throw Error(`HTTP ${r.status}`);let i=await r.json();if(tf.current!==e)return null;let s=i.state;return nt(s),s?(nd(s,e,t,n),void 0!==s.systemPrompt&&eT(s.systemPrompt??null),void 0!==s.extensionStatuses&&ts(s.extensionStatuses??[]),void 0!==s.extensionWidgets&&ta(s.extensionWidgets??[]),void 0!==s.queuedMessages&&tc(lf(s.queuedMessages)),void 0!==s.autoCompactionEnabled&&eK(s.autoCompactionEnabled??!0)):i.running||tc({steering:[],followUp:[]}),i}catch(e){return console.error("Failed to load agent state:",e),null}}catch(e){return C(String(e)),"error"}finally{t&&!i&&w(!1)}})();return r?.force||tV.current.set(i,o),o.finally(()=>{tV.current.get(i)===o&&tV.current.delete(i)}),await o},[nd,t2,nt]),nh=(0,i.useCallback)(async(e,t,n,r)=>{try{let i=new URLSearchParams({deferThinking:"1",deferMedia:"1"});t&&i.set("leafId",t),n&&i.set("before",n),r?.tail&&i.set("tail",String(r.tail));let s=`/api/sessions/${encodeURIComponent(e)}/context?${i}`,o=await fetch(s,{signal:r?.signal});if(!o.ok)throw Error(`HTTP ${o.status}`);let a=await o.json();if(tf.current!==e||r?.signal?.aborted||!tZ.current)return;return W(a.context.oldestEntryId),F(a.context.hasMore),B(a.context.turnsBefore??0),j(t=>{if(!t||t.sessionId!==e)return t;let r=n?{...t.context,messages:[...a.context.messages,...t.context.messages],entryIds:[...a.context.entryIds,...t.context.entryIds],oldestEntryId:a.context.oldestEntryId,hasMore:a.context.hasMore,turnsBefore:a.context.turnsBefore}:a.context;return{...t,context:r}}),n?(M(e=>[...a.context.messages,...e]),L(e=>[...a.context.entryIds,...e])):(M(a.context.messages),L(a.context.entryIds??[])),a.context}catch(e){r?.signal?.aborted||console.error("Failed to load context:",e)}},[]),nf=(0,i.useCallback)(async e=>{try{let t=await a0(e,{type:"get_tools"});if(!t||!tZ.current||tf.current!==e)return null;let{getPresetFromTools:r}=await Promise.resolve().then(n.bind(n,14755));return t2(tg.current?r(t):a5.Q8),f?.(t),t}catch(e){return console.error("Failed to load tools:",e),null}},[f,t2]),nm=(0,i.useCallback)(function(){let t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"(no messages)",i=tf.current;if(v&&r&&i&&!tO.current&&(tO.current=!0,s)){if(s!==i){tq.current.set(s,i);let t=e.chatInputRef?.current;t?t.rekeyDraft(s,i):oo(s,i)}c?.({id:i,path:"",cwd:r,name:void 0,created:new Date().toISOString(),modified:new Date().toISOString(),messageCount:t,firstMessage:n,transient:!0},s)}},[v,r,s,c,e.chatInputRef]),ng=(0,i.useCallback)(async()=>{if(tf.current||!v||!r)return tf.current;if(tA.current)return tA.current;let e=(async()=>{let e=tF.current,t=tD.current;e&&eF(e);let n=(0,a5.xG)(ep);tg.current=void 0!==n;let i=await fetch("/api/agent/new",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({cwd:r,type:"ensure_session",...void 0!==n?{toolNames:n}:{},...e?{provider:e.provider,modelId:e.modelId}:{},...t?{thinkingLevel:t}:{}})});if(!i.ok){let e=await i.json().catch(()=>null);throw Error("string"==typeof e?.error?e.error:`HTTP ${i.status}`)}let s=await i.json(),o=s.sessionId;return tf.current=o,s.model&&tF.current===e&&(eF(s.model),e||eu(s.model)),s.thinkingLevel&&tD.current===t&&(ew(lm(s.thinkingLevel)),t||ex(lm(s.thinkingLevel))),o})();tA.current=e;try{return await e}finally{tA.current=null}},[v,r,ep]),nx=(0,i.useCallback)(async()=>{let e=tf.current??await ng();if(!e)return;let[t]=await Promise.all([a0(e,{type:"get_state"}),nf(e)]);tZ.current&&tf.current===e&&(nt(t),eT(t.systemPrompt??""))},[ng,nf,nt]),nv=(0,i.useCallback)(e=>{tP.current=e,e4(e)},[]),nb=(0,i.useCallback)(()=>{tW.current+=1,tz.current=null,nv([])},[nv]),ny=(0,i.useCallback)(()=>{let e=++tW.current,t=(async()=>{let t=tf.current??await ng();if(!t)return tW.current===e&&nv([]),[];e3(!0);try{let n=await a0(t,{type:"get_commands"}),r=n?.commands??[];return tW.current===e&&nv(r),r}catch(t){return console.error("Failed to load slash commands:",t),tW.current===e&&nv([]),null}finally{tW.current!==e&&tz.current||e3(!1)}})();tz.current=t;let n=()=>{tz.current===t&&(tz.current=null)};return t.then(n,n),t},[ng,nv]),nj=(0,i.useCallback)(async()=>await ny()??[],[ny]),nk=(0,i.useCallback)(async()=>{let e=tz.current,t=tP.current;return!e&&t.length>0?t:await (e??ny()).catch(()=>null)??(t.length>0?t:null)},[ny]),nw=(0,i.useCallback)(()=>{tp.current+=1,th.current=!1,tu.current&&(clearTimeout(tu.current),tu.current=null)},[]),nS=(0,i.useCallback)(()=>{td.current?.close()},[]),nC=(0,i.useCallback)(e=>td.current.ensureConnected(e),[]),nN=(0,i.useCallback)(e=>{td.current.maintain(e)},[]);(0,i.useEffect)(()=>{let e=t?.id;if(e)return tZ.current=!0,nN(e),()=>{tf.current===e&&td.current?.close()}},[nN,t?.id]),(0,i.useEffect)(()=>{let e=t?.id;if(!e)return;let n=!1,r=!1,i=async()=>{if(!n&&!r){r=!0;try{let t=await fetch(`/api/agent/${encodeURIComponent(e)}/lease`,{method:"POST",cache:"no-store"});if(!t.ok||n)return;let r=await t.json();n||0!==r.renewed||tf.current!==e||tm.current!==e||(nS(),nN(e))}catch{}finally{r=!1}}},s=setInterval(()=>void i(),3e4),o=()=>{"visible"===document.visibilityState&&i()};return document.addEventListener("visibilitychange",o),()=>{n=!0,clearInterval(s),document.removeEventListener("visibilitychange",o)}},[nS,nN,t?.id]);let nE=(0,i.useCallback)(async(e,t)=>{let n=tf.current;if(tt(t=>aJ(t,e.id)),n)try{await a0(n,{type:"extension_ui_response",id:e.id,...t})}catch(e){console.error("Failed to send extension UI response:",e)}},[]),n$=(0,i.useCallback)(async(e,t)=>{let n=tf.current;if(n)try{await a0(n,{type:"extension_ui_input",id:e.id,data:t})}catch(e){console.error("Failed to send extension custom UI input:",e)}},[]),nM=(0,i.useCallback)(e=>{let t=e.message.trim();t&&e5({type:"add",notice:{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"}})},[]),nI=(0,i.useCallback)(t=>{switch(aZ(t)&&l?.(t),t.method){case"select":case"confirm":case"input":case"editor":tt(e=>e.some(e=>e.id===t.id)?e:[...e,t]);break;case"notify":nM({id:t.id,message:t.message,type:t.notifyType??"info"});break;case"setStatus":ts(e=>{let n=e.filter(e=>e.key!==t.statusKey);return void 0!==t.statusText?[...n,{key:t.statusKey,text:t.statusText}]:n});break;case"setWidget":ta(e=>(function(e,t,n){let r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:"aboveEditor";if(void 0===n)return e.filter(e=>e.key!==t);let i={key:t,lines:n,placement:r},s=e.findIndex(e=>e.key===t);return -1===s?[...e,i]:e.map((e,t)=>t===s?i:e)})(e,t.widgetKey,t.widgetLines,t.widgetPlacement));break;case"setTitle":t.title&&(document.title=t.title);break;case"set_editor_text":e.chatInputRef?.current?.insertText(t.text);break;case"custom":tr(e=>{let n;return t.closed?aJ(e,t.id):-1===(n=e.findIndex(e=>e.id===t.id))?[...e,t]:e[n]===t?e:e.map((e,r)=>r===n?t:e)})}},[nM,l,e.chatInputRef]),nT=(0,i.useCallback)(()=>{let e=tx.current;return tx.current=!1,K(!1),eG(null),eC(null),T(new Map),H({type:"end"}),e},[H]),nR=(0,i.useCallback)(function(e){let t=arguments.length>1&&void 0!==arguments[1]&&arguments[1];return tj.current!==e&&(tj.current=e,o?.({aborted:t,...tb.current?{failed:!0}:{}}),!0)},[o]),nL=(0,i.useCallback)(e=>{if(tm.current===e)return void nw();nw(),th.current=!0;let t=tp.current,n=async()=>{if(t===tp.current&&tf.current===e&&th.current)try{let r=await fetch(`/api/agent/${encodeURIComponent(e)}`);if(!r.ok)throw Error(`HTTP ${r.status}`);let i=await r.json();if(t!==tp.current||tf.current!==e||!th.current)return;let s=i.state;if(nt(s),i.running&&s&&(s.isStreaming||s.isPromptRunning)){th.current=!1,tu.current=null,tv.current=!!s?.isStreaming,ty.current=!!s?.isPromptRunning,tx.current=!0,K(!0),eG(s?.isStreaming?{kind:"waiting_model"}:{kind:"running_command"});return}if(i.running&&s?.isCompacting){eH(!0),tu.current=setTimeout(()=>void n(),600);return}th.current=!1,tu.current=null,nS()}catch{if(t!==tp.current||tf.current!==e||!th.current)return;tu.current=setTimeout(()=>void n(),600)}};tu.current=setTimeout(()=>void n(),3e4)},[nw,nS,nt]),nA=(0,i.useCallback)(async function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:tf.current,t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:tH.current;if(tH.current===t)try{e&&await np(e)}finally{if(tH.current!==t)return;let n=ty.current,r=tv.current;ty.current=!1,tv.current=!1,tU.current=null;let i=nT();n?nR(t):r&&i&&o?.({aborted:!1,...tb.current?{failed:!0}:{}}),e&&nL(e)}},[np,nR,o,nL,nT]),nP=(0,i.useCallback)(async(e,t)=>{await lv(800);let n=Date.now();for(;tx.current&&Date.now()-n<2e4;){if(void 0!==t&&tH.current!==t)return;try{let n=await fetch(`/api/agent/${encodeURIComponent(e)}`);if(n.ok){let r=await n.json(),i=r.state;if(nt(i),!r.running||!i||!i.isStreaming&&!i.isPromptRunning)return void await nA(e,t)}}catch{}await lv(600)}},[nA,nt]),nz=(0,i.useCallback)(async e=>{let t=tw.current+1;for(tw.current=t;tk.current&&tw.current===t&&tf.current===e;){await lv(1e3);try{let n=await fetch(`/api/agent/${encodeURIComponent(e)}`);if(!n.ok)continue;let r=await n.json();if(nt(r.state),r.state?.isBashRunning)continue;if(await np(e),tw.current!==t||tf.current!==e)return;tk.current=!1,Z(!1),J(null);return}catch{}}},[np,nt]),nW=(0,i.useCallback)(async e=>{if(!tx.current||tf.current!==e)return;let t=tH.current,n=++e$.current;try{let r=await fetch(`/api/agent/${encodeURIComponent(e)}`);if(!r.ok)return;let i=await r.json();if(tf.current!==e||tH.current!==t)return;let s=i.state;if(nd(s,e,t,n),nt(s),eH(s?.isCompacting??!1),eK(s?.autoCompactionEnabled??!0),tc(lf(s?.queuedMessages)),i.running&&s&&(s.isStreaming||s.isPromptRunning||s.isCompacting)){tv.current=!!s.isStreaming,ty.current=!!s.isPromptRunning;return}if(!tx.current)return;s&&(void 0!==s.systemPrompt&&eT(s.systemPrompt??null),void 0!==s.extensionStatuses&&ts(s.extensionStatuses??[]),void 0!==s.extensionWidgets&&ta(s.extensionWidgets??[])),await nA(e,t)}catch{}},[nd,nA,nt]);(0,i.useEffect)(()=>{if(!U)return;let e=()=>{let e=tf.current;e&&nW(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,nW]),(0,i.useEffect)(()=>{tx.current=U},[U]),tS.current=(0,i.useCallback)(e=>{switch(e.type){case"connected":if(H({type:"end"}),Array.isArray(e.pendingExtensionUiIds)){let t=new Set(e.pendingExtensionUiIds);tt(e=>aV(e,t)),tr(e=>aV(e,t))}!0===e.isStreaming&&(nw(),tv.current=!0,tx.current=!0,K(!0),eG({kind:"waiting_model"})),tf.current&&nu(tf.current);break;case"agent_start":tb.current=!1,nw(),tv.current=!0,tx.current=!0,K(!0),eG({kind:"waiting_model"}),eC(null),H({type:"start"});break;case"agent_end":if(!tx.current)break;if(eG(null),eC(null),H({type:"end"}),tf.current){let e=tf.current,t=tH.current,n=++e$.current;np(e),fetch(`/api/agent/${encodeURIComponent(e)}`).then(e=>e.ok?e.json():null).then(r=>{r&&tZ.current&&tf.current===e&&tH.current===t&&(nt(r.state),nd(r.state,e,t,n),r.state?.systemPrompt!==void 0&&eT(r.state.systemPrompt??null),r.state?.extensionStatuses!==void 0&&ts(r.state.extensionStatuses??[]),r.state?.extensionWidgets!==void 0&&ta(r.state.extensionWidgets??[]),tc(lf(r.state?.queuedMessages)))}).catch(()=>{})}break;case"agent_settled":{let t=tv.current;if(tv.current=!1,!t||ty.current)break;let n=tf.current,r=nT();eH(!1),n&&(np(n),nL(n)),r&&o?.({aborted:!0===e.aborted,...tb.current?{failed:!0}:{}});break}case"prompt_done":{let t=tH.current,n=ty.current;ty.current=!1,tU.current=null;let r=nR(t,!0===e.aborted);if(!n&&!r)break;let i=tf.current;i&&np(i),!tv.current&&(nT(),i&&nL(i))}break;case"prompt_error":tb.current=!0,nM({type:"error",message:e.errorMessage??"Command failed"});break;case"extension_error":nM({type:"error",message:e.error??"Extension command failed"});break;case"message_start":case"message_update":if(!tx.current||ll(e))break;if("message_start"===e.type){let t=e.message;if(t?.role==="user")break;t?.role==="assistant"?(H({type:"snapshot",message:t}),t.content.length>0&&eG(null)):t&&eG(null)}else{let t=e.assistantMessageEvent;t&&(H({type:"delta",event:t}),"toolcall_start"!==t.type&&"toolcall_delta"!==t.type&&eG(null))}!tE.current&&t$.current&&null===tI.current&&(tI.current=requestAnimationFrame(()=>{tI.current=null,t$.current&&t3("auto")}));break;case"message_end":{if(!tx.current||ll(e))break;let t=e.message;if(t&&"user"===t.role){let e=aG(t),n=lr(e),r=tU.current;tU.current=null,M(t=>{let i=t[t.length-1];return r&&i?.role==="user"&&lr(i)===r?r===n?t:[...t.slice(0,-1),e]:[...t,e]})}else if(t){"assistant"===t.role&&(tb.current="error"===t.stopReason);let n=Array.isArray(e.transcriptNotices)?e.transcriptNotices:void 0;if(M(e=>{var r;return[...e,(r=aG(t),n&&0!==n.length?{...r,[sy]:[...n]}:r)]}),"assistant"===t.role){let e=tf.current;e&&nu(e)}}H({type:"end"}),eG({kind:"waiting_model"});break}case"tool_execution_start":{if(la(e))break;let t=e.toolCallId,n=e.toolName;eG(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":{if(la(e))break;let t=e.toolCallId,n=e.toolName,r=e.partialResult,i=r?.content;("bash"===n||"powershell"===n||n===sc)&&Array.isArray(i)&&T(e=>{let s=new Map(e);return s.set(t,{role:"toolResult",toolCallId:t,toolName:n,content:i,isError:r?.isError,details:r?.details}),s});let s=n===sc?function(e){if(!su(e))return null;let{calls:t}=sh(e.details),n=t.findLast(e=>"running"===e.status)??t.at(-1);if(!n)return null;let r=n.args.length>120?`${n.args.slice(0,117)}...`:n.args;return r?`${n.name} ${r}`:n.name}(e.partialResult):function(e){if(!lc(e))return null;let t=e.content;if(!Array.isArray(t))return null;let n=t.filter(e=>lc(e)&&"text"===e.type&&"string"==typeof e.text).map(e=>e.text).join("\n").split(/\r?\n/),r="";for(let e=n.length-1;e>=0&&!(r=n[e].trim());e-=1);if(!r)return null;let i=r.replace(/\s+/g," ");return i.length<=500?i:`...${i.slice(-497)}`}(e.partialResult);eG(e=>{let r=e?.kind==="running_tools"?[...e.tools]:[],i=r.find(e=>e.id===t),o={id:t,name:n||i?.name||"tool",progress:s??i?.progress};return{kind:"running_tools",tools:[...r.filter(e=>e.id!==t),o]}});break}case"tool_execution_end":{if(la(e))break;let t=e.toolCallId;a?.(e.toolName),T(e=>{if(!e.has(t))return e;let n=new Map(e);return n.delete(t),n}),eG(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"queue_update":tc({steering:[...e.steering??[]],followUp:[...e.followUp??[]]});break;case"auto_retry_start":eC({attempt:e.attempt,maxAttempts:e.maxAttempts,errorMessage:e.errorMessage});break;case"auto_retry_end":eC(null);break;case"auto_compaction_start":case"compaction_start":eH(!0),eZ(null),eJ(null);break;case"auto_compaction_end":case"compaction_end":eH(!1),e.errorMessage?(eZ(e.errorMessage),eJ(null)):!e.aborted&&(eJ(lj(e.result,e.reason??"auto")),tf.current&&np(tf.current));break;case"extension_ui_request":nI(e);break;case"extension_ui_closed":tt(t=>aJ(t,e.id))}},[nM,nd,nw,H,nI,np,nR,o,a,nu,nL,t3,nT,nt]);let nO=(0,i.useCallback)(async(e,n)=>{let i=e.trim();if(!i&&!n?.length)return;if(tx.current||tk.current)return void nr(e,n,ne);if(ni&&(no(null),!await tR.current?.(ni))){no(ni),nr(e,n,ne);return}let s=!n?.length&&i.startsWith("/");if(!n?.length&&i.startsWith("!")){let t=i.startsWith("!!"),r=(t?i.slice(2):i.slice(1)).trim();return r?void await tT.current?.(r,t):void nr(e,n,ne)}let o=tH.current+1;tb.current=!1,nw(),ty.current=!0;let a=n?.map(e=>({type:"image",source:{type:"base64",media_type:e.mimeType,data:e.data}})),l={role:"user",content:a?.length?[...e.trim()?[{type:"text",text:e}]:[],...a]:e,timestamp:Date.now()};M(e=>[...e,l]),tU.current=lr(l),tH.current=o,tx.current=!0,K(!0),eG(s?{kind:"running_command"}:{kind:"waiting_model"}),H({type:"start"}),tE.current=!0,eQ(!0);let c=n?.map(e=>({type:"image",data:e.data,mimeType:e.mimeType})),d=null,u=!1;try{if(v&&r){let t=tf.current??await tA.current,n=t??await ng();if(!n)throw Error("Unable to create a session for the prompt");d=n,el&&(eF(el),t&&await a0(n,{type:"set_model",provider:el.provider,modelId:el.modelId})),tZ.current&&await nC(n).catch(e=>{if(tZ.current)throw e}),u=!0,await a0(n,{type:"prompt",message:e,...c?.length?{images:c}:{}}),nm(1,e)}else if(t)d=t.id,await nC(t.id),u=!0,await a0(t.id,{type:"prompt",message:e,...c?.length?{images:c}:{}});else throw Error("No active session for the prompt");s&&d&&nP(d,o)}catch(t){if(console.error("Failed to send message:",t),!(!u||aQ(t))&&d)return void nP(d,o);if(ty.current=!1,M(e=>{let t=e.lastIndexOf(l);return -1===t?e:[...e.slice(0,t),...e.slice(t+1)]}),nM({type:"error",message:t instanceof Error?t.message:String(t)}),nr(e,n,ne),tU.current=null,d)return void nW(d);tx.current=!1,nS(),K(!1),eG(null),H({type:"end"})}},[v,r,el,t,ng,nC,nm,nP,nM,nw,nS,ne,H,nW,nr,ni,no]);tT.current=(0,i.useCallback)(async(e,n)=>{if(tx.current||tk.current)return;let r=`${n?"!!":"!"}${e}`;tk.current=!0,J({command:e,excludeFromContext:n}),Z(!0);try{let i=tf.current??t?.id??await ng();if(!i)throw Error("Unable to create a session for the shell command");await a0(i,{type:"bash",command:e,excludeFromContext:n}),await np(i),nm(1,r)}catch(e){console.error("Failed to execute shell command:",e),nM({type:"error",message:e instanceof Error?e.message:String(e)}),nr(r,void 0,ne)}finally{tk.current=!1,J(null),Z(!1)}},[nM,ne,ng,np,nm,nr,t]);let nF=(0,i.useCallback)(async()=>{let e=tf.current;if(e){if(tk.current){try{await a0(e,{type:"abort_bash"})}catch(e){console.error("Failed to abort bash:",e)}return}try{await a0(e,{type:"abort"})}catch(e){console.error("Failed to abort:",e)}}},[]),nD=(0,i.useCallback)(async e=>{if(tk.current)return;let t=tf.current;if(t){eL(e);try{let{cancelled:n,newSessionId:r}=await a0(t,{type:"fork",entryId:e})??{};!n&&r&&d?.(r)}catch(e){console.error("Fork failed:",e),nM({type:"error",message:e instanceof Error?e.message:String(e)})}finally{eL(null)}}},[nM,d]),nB=(0,i.useCallback)(async e=>{if(tk.current)return!1;let t=tf.current;if(!t)return!1;try{let n=await a0(t,{type:"navigate_tree",targetId:e});if(n?.cancelled||tf.current!==t)return!1;return await np(t),tf.current===t}catch(e){return console.error("Failed to navigate:",e),!1}},[np]);tR.current=nB;let n_=(0,i.useCallback)(async e=>{if(tk.current||tx.current||e_)return;E(e);let t=tf.current;t&&(await nh(t,e),e&&a0(t,{type:"navigate_tree",targetId:e}).catch(()=>{}))},[e_,nh]),nH=(0,i.useCallback)(async(e,t)=>{if(v){let n={provider:e,modelId:t};tF.current=n,ec(n),eF(n),null===tD.current&&ex(lm(tB.current[`${e}/${t}`])??t_.current);let r=tf.current??await tA.current;if(!r)return;try{await a0(r,{type:"set_model",provider:e,modelId:t})}catch(e){console.error("Failed to set model:",e)}return}let n=tf.current;if(n&&!tK.current){tK.current=!0,eP({provider:e,modelId:t}),eB(!0);try{let r=await a0(n,{type:"set_model",provider:e,modelId:t});eW({provider:r.provider,modelId:r.id}),tK.current=!1,await np(n)}catch(e){console.error("Failed to set model:",e),tK.current=!1,eP(eA),nM({type:"error",message:`Failed to switch model: ${e instanceof Error?e.message:String(e)}`}),await np(n,!1,!0)}finally{tK.current=!1,eB(!1)}}},[nM,eA,v,np,ec]),nU=(0,i.useCallback)(async()=>{let e=tf.current;if(e&&!e_){eH(!0),eZ(null),eJ(null);try{let t=await a0(e,{type:"compact"});eJ(lj(t,"manual")),await np(e,!0)}catch(e){eZ(e instanceof Error?e.message:String(e)),eJ(null)}finally{eH(!1)}}},[e_,np]),nK=(0,i.useCallback)(()=>eZ(null),[]),nq=(0,i.useCallback)(async e=>{let n,i=r??t?.cwd??"",s=i?`/api/models?cwd=${encodeURIComponent(i)}`:"/api/models";try{let t=await fetch(s,e?{signal:e}:void 0);if(!t.ok){let e="";try{let n=await t.json();n&&"object"==typeof n&&"error"in n&&"string"==typeof n.error&&(e=n.error)}catch(e){if(e instanceof DOMException&&"AbortError"===e.name)throw e}throw Error(e||`Failed to load models (HTTP ${t.status})`)}n=await t.json(),e?.throwIfAborted()}catch(t){throw e?.aborted||t instanceof DOMException&&"AbortError"===t.name||et(t instanceof Error?t.message:String(t)),t}G(n.models),et(n.modelError??null),er(n.modelScopeWarnings??[]),es(n.thinkingLevels??{}),ea(n.thinkingLevelMaps??{});let o=n.modelList??[];Q(o);let a=n.defaultModel?o.find(e=>e.id===n.defaultModel?.modelId&&e.provider===n.defaultModel?.provider):void 0;if(eu(a?{provider:a.provider,modelId:a.id}:null),tB.current=n.thinkingLevelPins??{},t_.current=lm(n.defaultThinkingLevel),eb(lm(n.savedDefaultThinkingLevel)),v&&!tf.current){let e=tF.current,t=e&&(0===o.length||o.some(t=>t.provider===e.provider&&t.id===e.modelId));e&&!t&&(tF.current=null,ec(null));let r=t?e:a&&{provider:a.provider,modelId:a.id},i=r&&n.thinkingLevelPins?.[`${r.provider}/${r.modelId}`];null===tD.current&&ex(lm(i)??t_.current)}},[v,r,t?.cwd]),nZ=(0,i.useCallback)(async e=>{let n=r??t?.cwd,i=await fetch("/api/models/default",{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify({...n?{cwd:n}:{},...e})});if(i.ok)return;let s="";try{let e=await i.json();e&&"object"==typeof e&&"error"in e&&"string"==typeof e.error&&(s=e.error)}catch{}throw Error(s||`HTTP ${i.status}`)},[r,t?.cwd]),nV=(0,i.useCallback)(()=>{nq().catch(()=>{})},[nq]),nJ=(0,i.useCallback)(async(e,t)=>{try{await nZ({provider:e,modelId:t})}catch(e){nM({type:"error",message:`Failed to save default model: ${e instanceof Error?e.message:String(e)}`});return}nM({type:"success",message:`Default model: ${e}/${t}`}),eu({provider:e,modelId:t}),(t5?.provider!==e||t5?.modelId!==t)&&await nH(e,t),nV()},[nM,t5,nH,nV,nZ]),nY=(0,i.useCallback)(async e=>{if(!e.startsWith("/"))return{handled:!1};let t=e.match(/^\/([^\s]+)(?:\s+([\s\S]*))?$/);if(!t)return{handled:!1};let[,n,r=""]=t,i=r.trim(),s=tf.current??await ng(),o=e=>(e.handled&&(e.error?nM({type:"error",message:e.error}):e.action||nM({type:"success",message:e.message??"Command completed"})),e);try{switch(n){case"compact":{if(!s||e_)return o({handled:!0,error:"No active session to compact"});eH(!0),eZ(null),eJ(null);let e=await a0(s,{type:"compact",...i?{customInstructions:i}:{}});return eJ(lj(e,"manual")),await np(s,!0)&&nm(),o({handled:!0,message:"Compacted context"})}case"auto-compact":{if(!s)return o({handled:!0,error:"No active session"});let e=await a0(s,{type:"get_state"}),t=!(e?.autoCompactionEnabled??!0);return await a0(s,{type:"set_auto_compaction",enabled:t}),eK(t),o({handled:!0,message:t?"Auto-compaction enabled":"Auto-compaction disabled"})}case"reload":if(!s)return o({handled:!0,error:"No active session to reload"});return await a0(s,{type:"reload"}),await Promise.all([np(s,!1,!0),nf(s),nj(),nq()]),o({handled:!0,message:"Reloaded session resources"});case"name":if(!s)return o({handled:!0,error:"No active session to name"});if(!i)return o({handled:!0,error:"Usage: /name <name>"});return await a0(s,{type:"set_session_name",name:i}),await np(s)&&nm(),o({handled:!0,message:`Session renamed to ${i}`});case"session":{if(!s)return o({handled:!0,error:"No active session"});let e=await a0(s,{type:"get_session_stats"});return e&&e7(e),g?.(),o({handled:!0,action:"openSessionStats"})}case"mcp":{if(i||!x)return{handled:!1};let e=await nk();if(!e||!(e.some(op)||!e.some(e=>"mcp"===e.name)))return{handled:!1};return x("mcp"),o({handled:!0,action:"openSettings"})}case"copy":{if(!s)return o({handled:!0,error:"No active session"});let e=await a0(s,{type:"get_last_assistant_text"}),t=e?.text??"";if(!t)return o({handled:!0,error:"No assistant message to copy"});return await navigator.clipboard.writeText(t),o({handled:!0,message:"Copied last assistant message"})}case"clone":{if(!s)return o({handled:!0,error:"No active session to clone"});if(tx.current||tk.current)return o({handled:!0,error:"Cannot clone while the session is running"});let e=await a0(s,{type:"clone",leafId:N});if(e?.cancelled||!e?.newSessionId)return o({handled:!0,error:"Cannot clone an empty or unsaved session"});let t=o({handled:!0,message:"Cloned current session branch"});return d?.(e.newSessionId),t}default:return{handled:!1}}}catch(e){return o({handled:!0,error:e instanceof Error?e.message:String(e)})}finally{"compact"===n&&eH(!1)}},[N,nM,ng,e_,nq,np,nj,nf,nm,x,d,g,nk]),nG=(0,i.useCallback)(async(e,t,n)=>{let r=tf.current;if(ni)return void nr(e,n,ne);if(!r){nr(e,n,ne),nM({type:"error",message:"No active session for the queued message"});return}let i=n?.map(e=>({type:"image",data:e.data,mimeType:e.mimeType}));try{await a0(r,{type:"prompt",message:e,streamingBehavior:t,...i?.length?{images:i}:{}})}catch(t){console.error("Failed to submit streaming prompt:",t),aQ(t)&&nr(e,n,ne),nM({type:"error",message:t instanceof Error?t.message:String(t)})}},[nM,ne,ni,nr]),nX=(0,i.useCallback)(async(e,t)=>{await nG(e,"steer",t)},[nG]),nQ=(0,i.useCallback)(async(e,t,n)=>{await nG(e,t,n)},[nG]),n0=(0,i.useCallback)(async(e,t)=>{await nG(e,"followUp",t)},[nG]),n1=(0,i.useCallback)(async()=>{let e=tf.current;if(e)try{await a0(e,{type:"abort_compaction"})}catch(e){console.error("Failed to abort compaction:",e)}},[]),n2=(0,i.useCallback)(async()=>{let t=tf.current;if(t)try{let n=await a0(t,{type:"clear_queue"});tc({steering:[],followUp:[]});let r=[...n?.steering??[],...n?.followUp??[]];r.length>0&&e.chatInputRef?.current?.prependText(r.join("\n\n"))}catch(e){console.error("Failed to recall queued messages:",e),nM({type:"error",message:"Failed to recall queued messages"})}},[e.chatInputRef,nM]),n4=(0,i.useCallback)(async e=>{if("auto"===e){tD.current=null,em(null),ej(null);return}v?(tD.current=e,em(e)):ej(e);let t=tf.current??await tA.current;if(t)try{await a0(t,{type:"set_thinking_level",level:e}),tZ.current&&tf.current===t&&(ew(e),ej(null))}catch(e){console.error("Failed to set thinking level:",e),ej(null)}},[v]),n8=(0,i.useCallback)(async e=>{try{await nZ({thinkingLevel:e})}catch(e){nM({type:"error",message:`Failed to save default reasoning level: ${e instanceof Error?e.message:String(e)}`});return}nM({type:"success",message:`Default reasoning level: ${e}`}),eb(e),t7!==e&&await n4(e),nV()},[nM,t7,n4,nV,nZ]),n3=(0,i.useCallback)(async e=>{let t=(0,a5.xG)(e);!function(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:a7();if(t)try{t.setItem(a9,e)}catch{}}(e),t2(e);let n=tf.current??await tA.current;if(!n){tg.current=void 0!==t;return}try{let e=await a0(n,{type:"set_tools",...void 0!==t?{toolNames:t}:{}});tg.current=void 0!==t;let r=e?.sessionId??n;(r!==n||e?.recreated)&&(nw(),nS(),tt([]),tr([]),tf.current=r,e?.recreated&&tm.current===r&&nN(r)),nb(),ts([]),ta([]);let[i]=await Promise.all([a0(r,{type:"get_state"}),nf(r)]);tZ.current&&tf.current===r&&(eT(i.systemPrompt??""),nt(i))}catch(e){console.error("Failed to set tools:",e)}},[nw,nb,nS,nf,nN,t2,nt]),n6=(0,i.useCallback)(function(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:16,n=tL.current;n&&(null!==tI.current&&(cancelAnimationFrame(tI.current),tI.current=null),tC.current=!0,tE.current=!1,t$.current=!1,eQ(!1),n.scrollTo({top:e.getBoundingClientRect().top-n.getBoundingClientRect().top+n.scrollTop-t,behavior:"instant"}),tM.current=n.scrollTop)},[]),n5=(0,i.useCallback)(()=>{let e=tL.current,t=tN.current;if(!e||!t)return;let n=Math.min(Math.max(0,t.getBoundingClientRect().top-e.getBoundingClientRect().top+e.scrollTop-16),Math.max(0,e.scrollHeight-e.clientHeight));null!==tI.current&&(cancelAnimationFrame(tI.current),tI.current=null),t$.current=!0,tM.current=n,e.scrollTo({top:n,behavior:"auto"})},[]),n9=(0,i.useCallback)(()=>{let e=tL.current;if(e){let{scrollTop:t,clientHeight:n,scrollHeight:r}=e,i=tx.current,s=t$.current,o=function(e,t,n,r,i){let s=arguments.length>5&&void 0!==arguments[5]?arguments[5]:96;return!!ld(n,r,i)||!(n<t)&&(!!(!e&&n>t&&ld(n,r,i,s))||e)}(s,tM.current,t,n,r,i?96:8);t$.current=o,tM.current=t;let a=function(e,t,n){let r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:8;return!(n<=t)&&!ld(e,t,n,r)}(t,n,r);e1(e=>e===a?e:a),!s&&o&&i?t3("auto"):o||null===tI.current||(cancelAnimationFrame(tI.current),tI.current=null)}},[t3]);(0,i.useEffect)(()=>{if(tZ.current=!0,eM.current=e$.current,t){tf.current=t.id;let e=a8(t.id);e&&(j({sessionId:t.id,filePath:"",totalActiveMs:e.totalActiveMs??0,tree:e.summaryTree,leafId:e.leafId,context:{messages:e.messages,entryIds:e.entryIds,oldestEntryId:e.oldestEntryId,hasMore:e.hasMore,turnsBefore:e.turnsBefore,thinkingLevel:e.thinkingLevel,model:e.model},stats:e.stats}),E(e.leafId),M(e.messages),L(e.entryIds),W(e.oldestEntryId),F(e.hasMore),B(e.turnsBefore),C(null),w(!1)),np(t.id,!e,!0,{force:!0}).then(e=>{e?.running&&(nf(t.id),(e.state?.isStreaming||e.state?.isPromptRunning)&&(tv.current=!!e.state.isStreaming,ty.current=!!e.state.isPromptRunning,tx.current=!0,K(!0),eG(e.state.isStreaming?{kind:"waiting_model"}:{kind:"running_command"}),H({type:"resume"}),!e.state.isStreaming&&e.state.isPromptRunning&&nP(t.id)),e.state?.isBashRunning&&(tk.current=!0,Z(!0),nz(t.id))),e?.state&&(void 0!==e.state.isCompacting&&eH(e.state.isCompacting),void 0!==e.state.systemPrompt&&eT(e.state.systemPrompt??null),void 0!==e.state.extensionStatuses&&ts(e.state.extensionStatuses??[]),void 0!==e.state.extensionWidgets&&ta(e.state.extensionWidgets??[]),void 0!==e.state.queuedMessages&&tc(lf(e.state.queuedMessages)))})}return()=>{tZ.current=!1;let e=v?s:null;e&&queueMicrotask(()=>{tZ.current||tO.current||or(e)});let t=tf.current,n=tJ.current;if(t&&n&&n.sessionId===t&&n.snapshotRevision){let e=a8(t),r=tG.current;!e||function(e,t){if(0===t.length)return!0;let n=new Set([...e.entryIds,...e.loadedEntryIds]);return t.every(e=>n.has(e))}(e,r)?a3({sessionId:t,revision:n.snapshotRevision,messages:tY.current,entryIds:tG.current,leafId:tX.current,oldestEntryId:tQ.current,hasMore:t0.current,turnsBefore:t1.current,summaryTree:n.tree,thinkingLevel:n.context.thinkingLevel,model:n.context.model,stats:n.stats,totalActiveMs:n.totalActiveMs,loadedEntryIds:tG.current}):a6(t)}null!==tI.current&&(cancelAnimationFrame(tI.current),tI.current=null),tw.current+=1,nw(),nS()}},[]),(0,i.useEffect)(()=>{h?.(eI)},[eI,h]),(0,i.useEffect)(()=>(m?.(nx),()=>m?.(null)),[nx,m]);let n7=U||q||e_;(0,i.useEffect)(()=>{p&&p(y?.tree??[],N,n_,n7)},[y?.tree,N,n_,n7,p]),(0,i.useEffect)(()=>{let e=tL.current;if(e)return tM.current=e.scrollTop,e.addEventListener("scroll",n9,{passive:!0}),()=>{e.removeEventListener("scroll",n9)}},[$.length,k,n9]),(0,i.useEffect)(()=>{U||eQ(!1)},[U]),(0,i.useLayoutEffect)(()=>{$.length>0&&(tE.current?(tE.current=!1,tC.current=!0,n5()):tC.current?!tx.current&&t$.current&&t3("auto"):(tC.current=!0,t3("instant")))},[$.length,U,t3,n5]),(0,i.useEffect)(()=>{let e=new AbortController;return(async()=>{for(let t=0;;t++)try{await nq(e.signal);return}catch(n){if(e.signal.aborted||n instanceof DOMException&&"AbortError"===n.name||t>=lx.length||(await lv(lx[t]),e.signal.aborted))return}})(),()=>e.abort()},[nq,u]),(0,i.useEffect)(()=>{if(!eV)return;let e=setTimeout(()=>eJ(null),6e3);return()=>clearTimeout(e)},[eV]);let[re,rt]=(0,i.useState)(null),rn=(0,i.useRef)(5e3),rr=(0,i.useRef)(null),ri=(0,i.useRef)(null);(0,i.useEffect)(()=>{if(0===e6.visible.length){ri.current=null;return}let e=e6.visible.find(e=>e.exiting);if(e){let t=setTimeout(()=>{e5({type:"remove",id:e.id})},180);return()=>clearTimeout(t)}let t=e6.visible[0];if(!t||(ri.current!==t.id&&(ri.current=t.id,rn.current=5e3),e6.visible.some(e=>e.id===re)))return;rr.current=Date.now();let n=setTimeout(()=>{e5({type:"mark_oldest_exiting"})},rn.current);return()=>{clearTimeout(n),null!==rr.current&&(rn.current=Math.max(0,rn.current-(Date.now()-rr.current)),rr.current=null)}},[e6.visible,re]),(0,i.useEffect)(()=>{e7(null)},[$.length,eN?.tokens,eN?.percent,eN?.contextWindow]);let rs=t7??"auto",ro=te[0]??null,ra=Math.max(0,te.length-1),rl=tn[0]??null,rc=Math.max(0,tn.length-1),rd=(0,i.useMemo)(()=>(function(e,t,n){let r=e[e.length-1],i=[];for(let s=0;s<t;s++){let t=e[s];i.push(void 0===t?li(r,s-e.length):n.get(t)??t)}return i})(R,$.length,A),[R,$.length,A]);return{data:y,loading:k,error:S,activeLeafId:N,messages:$,activeToolResults:I,entryIds:R,messageKeys:rd,historyCursor:z,hasEarlierMessages:O,earlierTurnCount:D,streamingStore:_,agentRunning:U,modelNames:Y,modelList:X,modelError:ee,modelScopeWarnings:en,modelThinkingLevels:ei,modelThinkingLevelMaps:eo,newSessionModel:el,toolPreset:ep,thinkingLevel:rs,retryInfo:eS,contextUsage:eN,systemPrompt:eI,forkingEntryId:eR,isCompacting:e_,compactError:eq,compactResult:eV,currentModel:t6,displayModel:t5,modelSwitching:eD,sessionStats:nc,autoCompactionEnabled:eU,slashCommands:e2,slashCommandsLoading:e8,queuedMessages:tl,notices:e6.visible,extensionDialog:ro,waitingExtensionDialogCount:ra,extensionCustomUi:rl,waitingExtensionCustomUiCount:rc,extensionStatuses:ti,extensionWidgets:to,respondToExtensionUi:nE,sendExtensionCustomInput:n$,isAutoModelSelection:v&&null===el,isAutoThinkingSelection:v&&null===ef,defaultModel:ed,savedDefaultThinkingLevel:ev,agentPhase:eY,isNew:v,editEntryId:ni,promptAnchorActive:eX,showScrollToBottom:e0,sessionIdRef:tf,scrollContainerRef:tL,lastUserMsgRef:tN,pendingScrollToUserRef:tE,initialScrollDoneRef:tC,handleSend:nO,handleAbort:nF,handleFork:nD,handleNavigate:nB,handleModelChange:nH,handleCompact:nU,handleSteer:nX,handleFollowUp:n0,handlePromptWithStreamingBehavior:nQ,handleAbortCompaction:n1,dismissCompactError:nK,handleRecallQueue:n2,handleBuiltinSlashCommand:nY,handleEditContent:na,cancelEdit:ni?nl:void 0,addNotice:nM,setNoticePaused:rt,handleToolPresetChange:n3,handleThinkingLevelChange:n4,handleSetDefaultModel:nJ,handleSetDefaultThinkingLevel:n8,loadTools:nf,loadSlashCommands:nj,setActiveLeafId:E,setData:j,setMessages:M,loadContext:nh,scrollToBottom:t3,scrollUserMsgToTop:n5,scrollToMessage:n6,dispatch:H,setAgentRunning:K,setForkingEntryId:eL,bashRunning:q,pendingBash:V,handleAgentEventRef:tS}}({session:l,sessionRunning:h,newSessionCwd:f,newSessionDraftKey:m,initialNewSessionChoices:b,onNewSessionChoicesChange:y,onAgentEnd:en,onToolEnd:k,onAttentionNeeded:w,onSessionCreated:S,onSessionForked:C,modelsRefreshKey:N,chatInputRef:E,onBranchDataChange:$,onSystemPromptChange:M,onSystemToolsChange:I,onSystemInfoLoaderChange:T,onSessionStatsPanelOpen:L,onOpenSettings:P,deferInitialScroll:!!ei}),tE=lk(ex,lw),t$=lk(ex,lS),tM=(0,i.useCallback)(()=>ex.getState().streamingMessage,[ex]),tI=ev||eb,tT=e_||eU?"waiting":eR||eb||e4?.kind==="running_tools"||e4?.kind==="running_command"?"working":tI?tE&&t$?"replying":"sending":"idle";(0,i.useEffect)(()=>{aq.update(et,l?.id??e9.current,tT)},[et,l?.id,e9,tT]),(0,i.useEffect)(()=>()=>aq.release(et),[et]);let tR=(0,i.useRef)(new Set);(0,i.useEffect)(()=>{for(let e of eB)"error"!==e.type||tR.current.has(e.id)||aq.finish(et,"error");tR.current=new Set(eB.map(e=>e.id))},[et,eB]),(0,i.useEffect)(()=>{if(ev&&V)return V()},[ev,V]);let[tL,tA]=(0,i.useState)(null),[tP,tz]=(0,i.useState)(!1),[tW,tO]=(0,i.useState)(!1),[tF,tD]=(0,i.useState)(null),tB=(0,i.useRef)(null),t_=(0,i.useRef)(null),tH=(0,i.useCallback)(()=>{tA(null),tz(!1),tD(null)},[]);(0,i.useEffect)(()=>{B||tH()},[B,tH]);let tU=(0,i.useCallback)(()=>{if(!B||tP)return;let e=window.getSelection(),t=e?.rangeCount?e.getRangeAt(0):null,n=tX.current;if(!e||e.isCollapsed||!t||!n||!n.contains(t.commonAncestorContainer))return void tA(null);let r=e.toString().trim();if(!r)return void tA(null);let i=t.getBoundingClientRect(),s=[t.commonAncestorContainer.nodeType===Node.ELEMENT_NODE?t.commonAncestorContainer:t.commonAncestorContainer.parentElement,t.startContainer.nodeType===Node.ELEMENT_NODE?t.startContainer:t.startContainer.parentElement,t.endContainer.nodeType===Node.ELEMENT_NODE?t.endContainer:t.endContainer.parentElement].map(e=>e?.closest('[data-message-role="assistant"]')?.dataset.entryId).find(e=>!!e);tA({text:r,top:Math.min(window.innerHeight-44,i.bottom+8),left:Math.max(64,Math.min(window.innerWidth-64,i.left+i.width/2)),sourceEntryId:s})},[B,tP]);(0,i.useEffect)(()=>{tP&&tL&&t_.current?.insertIfEmpty(rK(tL.text,J("chat.quoteIntro"),J("chat.quoteQuestion")))},[tP,tL,J]),(0,i.useLayoutEffect)(()=>{let e=tB.current;if(!e||!tL)return;let t=window.visualViewport,n=()=>{let n=e.getBoundingClientRect(),r=t?.offsetTop??0,i=t?.offsetLeft??0;e.style.top=`${Math.max(r+8,Math.min(tL.top,r+(t?.height??window.innerHeight)-n.height-8))}px`,e.style.left=`${Math.max(i+8,Math.min(tL.left-n.width/2,i+(t?.width??window.innerWidth)-n.width-8))}px`};n();let r=new ResizeObserver(n);return r.observe(e),window.addEventListener("resize",n),t?.addEventListener("resize",n),t?.addEventListener("scroll",n),()=>{r.disconnect(),window.removeEventListener("resize",n),t?.removeEventListener("resize",n),t?.removeEventListener("scroll",n)}},[tL,tP,tF]),(0,i.useEffect)(()=>{if(!tL)return;let e=e=>{tP||tB.current?.contains(e.target)||tH()},t=e=>{"Escape"===e.key&&!e.isComposing&&(e.preventDefault(),e.stopPropagation(),tW||tH())};return document.addEventListener("pointerdown",e),document.addEventListener("keydown",t),()=>{document.removeEventListener("pointerdown",e),document.removeEventListener("keydown",t)}},[tL,tP,tW,tH]);let tK=(0,i.useCallback)(()=>{tL&&(E?.current?.insertText(rK(tL.text,J("chat.quoteIntro"),J("chat.quoteQuestion"))),window.getSelection()?.removeAllRanges(),tH())},[E,tL,tH,J]),tq=(0,i.useCallback)(async e=>{let t=e9.current??l?.id;if(!tW&&e.trim()&&tL?.sourceEntryId&&t&&D){tO(!0),tD(null),Z?.();try{await D(e,t,tL.sourceEntryId),tH()}catch(t){t_.current?.restoreSubmission(e),tD(t instanceof Error?t.message:String(t))}finally{tO(!1)}}},[D,tL,tW,l?.id,e9,tH,Z]),tZ=(0,i.useRef)(!1);(0,i.useEffect)(()=>{el||ec||!_||tZ.current||(tZ.current=!0,H?.(),tn(_))},[_,el,ec,tn,H]),(0,i.useEffect)(()=>{let e=!!e_&&!ee.current;ee.current=!!e_,G&&e&&X.current()},[G,e_]),(0,i.useEffect)(()=>{o=tI?tr:null},[tI,tr]);let[tV,tJ]=(0,i.useState)(50),[tY,tG]=(0,i.useState)(null),tX=(0,i.useRef)(null),tQ=(0,i.useRef)(null),t0=(0,i.useRef)(!1),t1=(0,i.useRef)(!1),t2=(0,i.useRef)(ei);t2.current=ei;let[t4,t8]=(0,i.useState)(null),t3=ed[ep.indexOf(t4?.entryId??"")],t6=t3?.role==="assistant"?t4?.blockIndex===void 0?t3.content.find(e=>"text"===e.type):t3.content[t4.blockIndex]:void 0,t5=(0,i.useRef)({entryIds:ep,historyCursor:ef,hasEarlierMessages:em});t5.current={entryIds:ep,historyCursor:ef,hasEarlierMessages:em};let t9=(0,i.useRef)(null),nr=(0,i.useCallback)(async(e,t,n)=>{t9.current=t;let r=await tw(e,tS,t,n);return r||t9.current!==t||(t9.current=null),r},[tS,tw]);(0,i.useEffect)(()=>{ef!==t9.current&&(t9.current=null)},[ef]),(0,i.useLayoutEffect)(()=>{let e=l?.id,t=e7.current,n=tX.current;if(e&&p&&t&&n)return()=>{if(t2.current)return;if(ld(t.scrollTop,t.clientHeight,t.scrollHeight))return void p(e,{atBottom:!0});let r=t.getBoundingClientRect().top,i=function(e,t){let n=e[0];for(let r of e){if(r.top>t)break;n=r}return n?{anchorEntryId:n.entryId,anchorOffset:n.top-t}:null}(Array.from(n.children).flatMap(e=>{if(!(e instanceof HTMLElement)||!e.dataset.entryId)return[];let t=e.getBoundingClientRect();return[{entryId:e.dataset.entryId,top:t.top,bottom:t.bottom}]}),r);i&&p(e,{atBottom:!1,...i,oldestEntryId:t5.current.historyCursor})}},[el,p,e7,l?.id]),(0,i.useEffect)(()=>{c&&es(null)},[c]),(0,i.useEffect)(()=>{let e=l?.id;if(!ei||!e||el||c||t1.current)return;t1.current=!0;let t=new AbortController;return(async()=>{let n=t5.current;if(n.entryIds.includes(ei.anchorEntryId)){tJ(e=>Math.max(e,2*n.entryIds.length)),ea(!0);return}t0.current=!0;let r=n.historyCursor,i=n.hasEarlierMessages;try{for(;i&&r&&!t.signal.aborted;){let n=await nr(e,r,{signal:t.signal});if(t.signal.aborted)return;if(!n){tC("instant"),es(null);return}if(tJ(e=>e+Math.max(50,2*n.messages.length)),n.entryIds.includes(ei.anchorEntryId))return void ea(!0);if(n.oldestEntryId===ei.oldestEntryId)break;r=n.oldestEntryId,i=n.hasMore}t.signal.aborted||(tC("instant"),es(null))}finally{t0.current=!1}})(),()=>{t.abort(),es(null)}},[tS,nr,el,ei,tC,c,l?.id]),(0,i.useLayoutEffect)(()=>{let e=tX.current;if(!ei||!e||c)return;let t=Array.from(e.children).find(e=>e instanceof HTMLElement&&e.dataset.entryId===ei.anchorEntryId);if(t instanceof HTMLElement){tN(t,ei.anchorOffset),es(null);return}eo&&(tC("instant"),es(null))},[ep,ei,eo,tC,tN,c,tV]),(0,i.useEffect)(()=>{if(!c||el)return;let e=new AbortController;return(async()=>{let t=t5.current,n=t.entryIds.includes(c.entryId);if(!n&&!tI&&t.hasEarlierMessages&&t.historyCursor&&!t0.current){t0.current=!0;let r=e7.current;r&&(tQ.current=r.scrollHeight-r.scrollTop);let i=await nr(c.sessionId,t.historyCursor,{tail:200,signal:e.signal});t0.current=!1,n=!!i?.entryIds.includes(c.entryId)}e.signal.aborted||(n?(tQ.current=null,tJ(e=>Math.max(e,(t5.current.entryIds.length+200)*2)),t8(c)):d?.(c))})(),()=>e.abort()},[c,el,tI,nr,d,e7]),(0,i.useLayoutEffect)(()=>{if(!t4||t4!==c)return;let e=`[data-entry-id="${CSS.escape(t4.entryId)}"]`,t=e7.current?.querySelector(t3?.role==="user"?e:`${e} [data-search-target]`);t&&(tN(t),t.animate([{backgroundColor:"var(--bg-selected)"},{backgroundColor:"transparent"}],{duration:2500})),t8(null),d?.(t4)},[t4,c,t3,e7,tN,d]),(0,i.useEffect)(()=>{let e=e7.current;if(!tY||!e)return;let t=new IntersectionObserver(t=>{if(!t[0]?.isIntersecting||t0.current)return;if(!em){tQ.current=e.scrollHeight-e.scrollTop,tJ(e=>(function(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:50;return e+t})(e));return}if(!ef||ef===t9.current)return;let n=l?.id??e9.current;n&&(t0.current=!0,tQ.current=e.scrollHeight-e.scrollTop,nr(n,ef).finally(()=>{t0.current=!1}))},{root:e,threshold:0});return t.observe(tY),()=>t.disconnect()},[tY,tV,ef,em,l,nr,e9,e7]),(0,i.useEffect)(()=>{tJ(e=>Math.max(e,ed.length))},[ed.length]),(0,i.useEffect)(()=>{if(null==tQ.current)return;let e=e7.current;if(e){var t;t=e.scrollHeight,e.scrollTop=Math.max(0,t-tQ.current),tQ.current=null}},[tV,e7]);let ni=eW?[eW.sessionId,eW.sessionFile??"",eW.sessionName??"",eW.userMessages,eW.assistantMessages,eW.toolCalls,eW.toolResults,eW.totalMessages,eW.tokens.input,eW.tokens.output,eW.tokens.cacheRead,eW.tokens.cacheWrite,eW.tokens.total,eW.cost??0,eW.totalActiveMs??0].join("|"):null,ns=(0,i.useRef)(eW);ns.current=eW,(0,i.useEffect)(()=>{R?.(ns.current)},[ni,R]),(0,i.useEffect)(()=>()=>{R?.(null)},[R]);let no=eI?`${eI.percent??"null"}|${eI.contextWindow}|${eI.tokens??"null"}`:null,na=(0,i.useRef)(eI);na.current=eI,(0,i.useEffect)(()=>{z?.(na.current)},[no,z]),(0,i.useEffect)(()=>()=>{z?.(null)},[z]);let nl=(0,i.useCallback)(async e=>{let t=l?.cwd??f;if(!t)return void eX({type:"warning",message:J("chat.dropNeedsCwd")});try{var n;let r,{status:i,data:s}=await ne(t,e,"skip");if(200!==i&&207!==i)throw Error(s.error??`HTTP ${i}`);let o=s.uploaded??[],a=s.skipped??[],l=(n=[...o,...a],r=new Set(n),e.filter(e=>r.has(e.name)).map(e=>t7(e.name,!1)).join(""));for(let e of(l&&E?.current?.insertText(l),o.length>0&&(eX({type:"success",message:J("chat.dropUploaded",{count:o.length})}),O?.()),a.length>0&&eX({type:"warning",message:J("chat.dropAlreadyExists",{names:a.join(", ")})}),s.errors??[]))eX({type:"error",message:J("chat.dropFailed",{message:`${e.name}: ${e.error}`})})}catch(e){eX({type:"error",message:J("chat.dropFailed",{message:e instanceof Error?e.message:String(e)})})}},[eX,E,f,O,l?.cwd,J]),nc=(0,i.useCallback)(e=>{let{images:t,files:n,folders:r}=function(e){let t=[],n=[],r=[];for(let i of e)"folder"===i.kind?r.push(i.name):i.file.type.startsWith("image/")?t.push(i.file):n.push(i.file);return{images:t,files:n,folders:r}}(e);t.length>0&&E?.current?.addImages(t),r.length>0&&eX({type:"warning",message:J("chat.dropFoldersUnsupported",{names:r.join(", ")})}),n.length>0&&nl(n)},[eX,E,J,nl]),nd=(0,i.useCallback)(e=>{nc(e.map(e=>({kind:"file",file:e})))},[nc]),{isDragOver:nu,handleDragEnter:np,handleDragOver:nh,handleDragLeave:nf,handleDrop:nm}=function(e){let[t,n]=(0,i.useState)(!1),r=(0,i.useRef)(0),s=(0,i.useCallback)(e=>{nt(e)&&(e.preventDefault(),r.current+=1,n(!0))},[]),o=(0,i.useCallback)(e=>{nt(e)&&(e.preventDefault(),e.dataTransfer.dropEffect="copy")},[]);return{isDragOver:t,handleDragEnter:s,handleDragOver:o,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(nn(t.dataTransfer))},[e])}}(nc),ng=ed.filter(e=>rv(e)||"assistant"===e.role),nx=(0,i.useMemo)(()=>{let e=new Map(eu);for(let t of ed)"toolResult"===t.role&&e.set(t.toolCallId,t);return e},[eu,ed]),nv=(0,i.useMemo)(()=>new WeakMap,[]),nb=(0,i.useMemo)(()=>{let e=new Set,t=[];for(let n=ed.length-1;n>=0;n-=1){let r=function(e){if("user"!==e.role)return null;if("string"==typeof e.content){let t=e.content.trim();return t.length>0?t:null}let t=e.content.filter(e=>"text"===e.type).map(e=>e.text).join("\n").trim();return t.length>0?t:null}(ed[n]);if(!(!r||e.has(r))&&(e.add(r),t.push(r),t.length>=50))break}return t.reverse()},[ed]),ny=(t=ng.length,(s=(0,i.useRef)([])).current=Array(t).fill(null).map((e,t)=>s.current[t]??null),s),nj=(0,i.useCallback)(()=>{tJ(e=>Math.max(e,2*ed.length))},[ed.length]),nk=e8&&0===ed.length&&!tE&&!tI;ti(e7,!!l?.id||!nk);let nw=l?.cwd??f??void 0,[nS,nC]=J("chat.newSessionProjectWelcome").split("{project}"),nN=(0,i.useRef)(null),nE=(0,i.useRef)(0),n$=(0,i.useRef)(null),nM=(0,i.useRef)(!1),nI=(0,i.useRef)(null);(0,i.useLayoutEffect)(()=>{let e=nN.current;if(!ev||!tt){nI.current=null,nE.current=0,nM.current=!1,e&&(e.style.height="");return}let t=e7.current,n=tX.current,r=te.current;if(!t||!n||!r||!e)return;let i=!1,s=()=>{var s;let o;if(i||e7.current!==t||tX.current!==n||te.current!==r||nN.current!==e)return;let a=t.getBoundingClientRect().top,l=Math.max(0,r.getBoundingClientRect().top-a+t.scrollTop-16),c=e.getBoundingClientRect().top-a+t.scrollTop,d=(s=t.clientHeight,0===(o=Math.max(0,l))?0:Math.max(0,Math.ceil(o+s-Math.max(0,c)))),u=!nM.current;u&&(nM.current=!0),d!==nE.current&&(nE.current=d,e.style.height=d>0?`${d}px`:"",u&&d>0&&tk())};nI.current=s,s();let o="u"<typeof ResizeObserver?null:new ResizeObserver(()=>{i||null!==n$.current||(n$.current=requestAnimationFrame(()=>{n$.current=null,s()}))});return o?.observe(t),o?.observe(n),o?.observe(r),()=>{i=!0,nI.current===s&&(nI.current=null),o?.disconnect(),null!==n$.current&&(cancelAnimationFrame(n$.current),n$.current=null)}},[ev,te,ed.length,tt,e7,tk]);let nT=(0,i.useCallback)(()=>{nI.current?.()},[]);(0,i.useLayoutEffect)(nT,[tE,t$,nT]);let nR=eP?eC[`${eP.provider}:${eP.modelId}`]??null:null,nL=eP?eN[`${eP.provider}:${eP.modelId}`]??null:null,nA=(0,r.jsx)(aN,{ref:E,onSend:tn,onAbort:tr,onSteer:ev?td:void 0,onFollowUp:ev?tu:void 0,onPromptWithStreamingBehavior:ev?tp:void 0,isStreaming:tI,model:eP,isAutoModelSelection:eQ,modelNames:ej,modelList:ek,modelError:ew,modelScopeWarnings:eS,onModelChange:tl,modelSwitching:ez,defaultModel:e1,onSetDefaultModel:tb,onCompact:l||e8?tc:void 0,onAbortCompaction:th,isCompacting:eR,compactError:eL,onDismissCompactError:tf,compactResult:eA,toolPreset:eE,onToolPresetChange:l||e8?tx:void 0,thinkingLevel:e$,isAutoThinkingSelection:e0,onThinkingLevelChange:l||e8?tv:void 0,availableThinkingLevels:nR,thinkingLevelMap:nL,savedDefaultThinkingLevel:e2,onSetDefaultThinkingLevel:l||e8?ty:void 0,retryInfo:eM,queuedMessages:eD,inputHistory:nb,onRecallQueue:tm,slashCommands:eO,slashCommandsLoading:eF,onLoadSlashCommands:tj,onBuiltinCommand:tg,soundEnabled:U,onSoundToggle:K,onAudioUnlock:Z,draftKey:l?.id??m??void 0,cwd:l?.cwd??f,onAttachFiles:nd,sessionStatsControl:A});return el?(0,r.jsx)("div",{className:"flex h-full items-center justify-center text-text-muted",children:J("chat.loadingSession")}):ec?(0,r.jsx)("div",{className:"flex h-full items-center justify-center text-red-400",children:ec}):(0,r.jsxs)("div",{className:"chat-content relative flex h-full min-w-0 flex-col overflow-hidden",style:{paddingBottom:"env(safe-area-inset-bottom)"},onDragEnter:np,onDragOver:nh,onDragLeave:nf,onDrop:nm,children:[nu&&(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-[rgba(37,99,235,0.06)] 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-[rgba(37,99,235,0.5)] 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",className:"drop-shadow-[0_6px_18px_rgba(37,99,235,0.18)]",children:[(0,r.jsx)("rect",{x:"28",y:"44",width:"84",height:"60",rx:"8",fill:"rgba(37,99,235,0.08)",stroke:"rgba(37,99,235,0.50)",strokeWidth:"1.8"}),(0,r.jsx)("path",{d:"M36 100 L54 72 L68 88 L80 74 L104 100Z",fill:"rgba(37,99,235,0.16)",stroke:"rgba(37,99,235,0.40)",strokeWidth:"1.4",strokeLinejoin:"round"}),(0,r.jsx)("circle",{cx:"96",cy:"58",r:"8",fill:"rgba(37,99,235,0.22)",stroke:"rgba(37,99,235,0.55)",strokeWidth:"1.6"}),(0,r.jsxs)("g",{stroke:"rgba(37,99,235,0.45)",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"})]})]})]}),(0,r.jsx)("div",{style:{position:"absolute",top:12,left:36*!Y,right:0,zIndex:40,display:"flex",justifyContent:"flex-end",padding:"0 16px",pointerEvents:"none"},children:(0,r.jsx)(lM,{notices:eB,floating:!0,onPauseChange:eY})}),(0,r.jsxs)("div",{className:"relative flex min-h-0 min-w-0 flex-1 overflow-hidden",children:[e_&&(0,r.jsx)(lR,{request:e_,waitingCount:eH,onRespond:eV},e_.id),eU&&(0,r.jsx)(lL,{request:eU,waitingCount:eK,onInput:eJ},eU.id),!nk&&(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)("div",{ref:e7,className:"scrollbar-subtle min-w-0 flex-1 overflow-x-hidden overflow-y-auto pt-4 [scrollbar-gutter:stable]",style:{visibility:ei?"hidden":void 0},children:(0,r.jsx)("div",{style:{minWidth:0,padding:"0 16px"},children:(0,r.jsxs)("div",{ref:tX,onPointerUp:tU,style:{width:"100%",minWidth:0,maxWidth:"var(--chat-content-max-width, 820px)",margin:"0 auto"},children:[(()=>{var e;let t,n,s=-1;for(let e=ed.length-1;e>=0;e--)if("user"===ed[e].role){s=e;break}let o=-1;for(let e=ed.length-1;e>=0;e--)if(rv(ed[e])){o=e;break}let a=new Map,c=0;ed.forEach((e,t)=>{(rv(e)||"assistant"===e.role)&&a.set(t,c++)});let d=function(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=t.messageOverride??ed[e];if(rx(n))return null;let o=!1===t.withNotices?[]:sj(ed[e]),c=rv(n)||"assistant"===n.role,d=a.get(e),u=t.keyPrefix??"message",p=eh[e],h=!1;if("assistant"===n.role){h=!0;for(let t=e+1;t<ed.length;t++){let e=ed[t].role;if("user"===e)break;if("assistant"===e){h=!1;break}}h&&tE&&e===ed.length-1&&(h=!1)}void 0!==t.showTimestamp&&(h=t.showTimestamp);let f=(0,r.jsx)(sR,{message:n,toolResults:nx,modelNames:ej,cwd:nw,onOpenFile:W,onOpenSubagent:F,entryId:ep[e],searchBlock:ep[e]===t4?.entryId?t6:void 0,onFork:eb||e8?void 0:ts,forking:eT===ep[e],onEditContent:tI?void 0:to,onCancelEdit:ta,isEditing:e3===ep[e],showTimestamp:h,prevTimestamp:e>0?ed[e-1].timestamp:void 0,sessionId:l?.id??e9.current??void 0,writtenFiles:t.writtenFiles,turnDurationMs:t.turnDurationMs,onCompact:t.recoverTruncation?tc:void 0,isCompacting:t.recoverTruncation?eR:void 0,compactError:t.recoverTruncation?eL:void 0},`${u}-view-${p}`),m=o.length>0?(0,r.jsx)(sN,{notices:o},`${u}-notices-${p}`):null;return c&&void 0!==d?(0,r.jsxs)("div",{"data-entry-id":ep[e],ref:!1===t.attachRef?void 0:t=>{ny.current[d]=t,e===s&&(te.current=t)},children:[f,m]},`${u}-${p}`):(0,r.jsxs)(i.Fragment,{children:[f,m]},`${u}-${p}`)},u=[];for(let e=0;e<ed.length;){let t,n=rv(ed[e]);if(!n&&0!==e){u.push(d(e)),e+=1;continue}let i=n?e:-1,s=n?e:0,l=e+1;for(;l<ed.length&&!rv(ed[l]);)l+=1;let c=function(e,t,n){for(let i=n-1;i>t;i--){var r;if("assistant"===(r=e[i]).role&&rS(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}(ed,i,l);if(-1===c||(tI||tE)&&l===ed.length&&i===o){for(let e=s;e<l;e++)u.push(d(e));e=l;continue}n&&u.push(d(i));let p=n&&ep[i]?function(e,t,n){let r,i,s,o=rH(e[t]?.timestamp);if(void 0===o)return;let a=!1,l=0;for(let o=t+1;o<n;o++){let t=e[o];if("assistant"===t.role){var c;void 0!==i&&void 0!==s&&(l+=Math.max(0,s-i)),i=s=void 0;let e=function(e){if("assistant"!==e.role)return;let t=rH(e.timestamp),n=rH(e.durationMs);return void 0!==t&&void 0!==n?t+n:void 0}(t);a=void 0!==e,void 0!==e&&(r=Math.max(r??e,e)),void 0!==e&&"assistant"===(c=t).role&&("stop"===c.stopReason||"length"===c.stopReason)&&(i=r)}else if("toolResult"===t.role){let e=rH(t.timestamp);void 0!==e&&(r=Math.max(r??e,e))}else if(void 0!==i){let e=rH(t.timestamp);void 0!==e&&(s=Math.max(s??e,e))}}if(a&&void 0!==r)return Math.max(0,r-o-l)}(ed,i,l):void 0,h=function(e,t){let n=e.get(t);if(n)return n;let{answerBlocks:r}=rS(t),i=r.length>0||rj(t)||rk(t)?r_(t,r):null,s=t.content.indexOf(r[0]),o={answer:i,process:r_(t,t.content.slice(0,s<0?void 0:s),{omitUsage:!!i})};return e.set(t,o),o}(nv,ed[c]),f=h.answer,m=[],g=0,x=0,v=!1;for(let e=i+1;e<=c;e++){let n=ed[e];if("custom"===n.role){if(rx(n))continue;v||=!!(t4&&t4.entryId===ep[e]),g+=1,m.push(d(e,{attachRef:!1,keyPrefix:"process"}));continue}if("assistant"!==n.role)continue;let i=e===c?h.process:n,s=e!==c||!f,o=ry(i);if(0===o.length){let t=s?sj(n):[];t.length>0&&m.push((0,r.jsx)(sN,{notices:t},`process-notices-${eh[e]}`));continue}t??=a.get(e),x+=o.filter(e=>"toolCall"===e.type).length,g+=1,v||=!!(t4&&ep[e]===t4.entryId&&(!t6||o.includes(t6))),m.push(d(e,{attachRef:!1,keyPrefix:"process",messageOverride:i,showTimestamp:!1,withNotices:s}))}if(0===g)u.push(...m);else if(m.length>0){let e=(f?.content??[]).some(e=>"image"===e.type||"text"===e.type&&e.text.trim().length>0),n=function(e){let t;for(let n of e)for(let e of sj(n))"cache_miss"===e.kind&&(t??={count:0,missedTokens:0,missedCost:0},t.count+=1,t.missedTokens+=e.missedTokens,t.missedCost+=e.missedCost);return t}(ed.slice(i+1,f?c:c+1));u.push((0,r.jsx)("div",{ref:void 0===t?void 0:e=>{ny.current[t]=e},children:(0,r.jsx)(lN,{messageCount:g,toolCallCount:x,durationMs:p,cacheMisses:n,defaultExpanded:!e,reveal:v,t:J,children:m},e?"answered":"unanswered")},`process-group-${eh[s]}`))}if(f){let e=[];for(let t=i+1;t<=c;t++){let n=ed[t];if(n?.role==="assistant")for(let t of n.content??[])e.push(t)}let t=function(e,t){let n=e.writtenFiles;return n&&n.length===t.length&&n.every((e,n)=>e.filePath===t[n].filePath)?n:(e.writtenFiles=t,t)}(h,function(e,t,n){let r=new Set,i=[];for(let o of e){var s;if("toolCall"!==o.type||!(rR(s=o.toolName)||rL(s))&&!rA(o.toolName))continue;let e=t?.get(o.toolCallId);if(e&&!e.isError)for(let t of rA(o.toolName)?function(e,t){let n=t?.details,r=function(e,t){let n=new Set;if(t&&"object"==typeof t&&!Array.isArray(t)){let e=t.preview;if(e&&"object"==typeof e&&!Array.isArray(e)){let t=e.files;if(Array.isArray(t))for(let e of t)!(!e||"object"!=typeof e||Array.isArray(e))&&"delete"===e.operation&&"string"==typeof e.filePath&&e.filePath.length>0&&n.add(e.filePath)}}for(let t of rP(e).matchAll(/^\*\*\* Delete File: (.+)$/gm)){let e=(t[1]??"").trim();e&&n.add(e)}return n}(e,n),i=function(e){if(!rz(e)||!rz(e.result))return null;let t=e.result.appliedFiles;return Array.isArray(t)?t.filter(e=>"string"==typeof e&&e.length>0):null}(n);if(i)return i.filter(e=>!r.has(e));if(rW(n))return[];if(n&&"object"==typeof n&&!Array.isArray(n)){let e=rB(rD(n.preview));if(e.length>0)return e}return rB(rF(rP(e)))}(o.input,e):[function(e){if(!e)return null;let t=e.file_path??e.path;return"string"==typeof t&&t.length>0?t:null}(o.input)]){if(!t)continue;let e=function(e,t){let n;if(!e)return null;let r=/^[a-zA-Z]:[\\/]/.test(e)||e.startsWith("\\\\")||void 0!==t&&(/^[a-zA-Z]:[\\/]/.test(t)||t.startsWith("\\\\")),i=e=>r?e.replace(/\\/g,"/"):e,s=i(e),o=t?i(t).replace(/\/+$/,""):void 0,a=/^[a-zA-Z]:\//.test(s),l=s.startsWith("//");if(a||l)n=s;else if(s.startsWith("/")){let e=o?.match(/^([a-zA-Z]:)(?:\/|$)/)?.[1]??o?.match(/^(\/\/[^/]+\/[^/]+)(?:\/|$)/)?.[1];n=e?`${e}${s}`:s}else{if(!o)return null;n=`${o}/${s}`}return r$(n)}(t,n);e&&(r.has(e)||(r.add(e),i.push({filePath:e})))}}return i}(e,nx,nw));u.push(d(c,{messageOverride:f,writtenFiles:t,turnDurationMs:0===m.length?p:void 0,recoverTruncation:l===ed.length&&!tE&&!rw(f)}))}for(let e=c+1;e<l;e++)u.push(d(e));e=l}let{startIndex:p}=(t=Math.min(Math.max(tV,0),Math.max(e=u.length,0)),{startIndex:n=Math.max(0,e-t),hasMore:n>0}),h=p>0||em;return(0,r.jsxs)(r.Fragment,{children:[h&&(0,r.jsx)("div",{ref:tG,className:"py-3 text-center text-xs text-text-muted",children:J("chat.loadEarlier")}),u.slice(p)]})})(),tE&&t$&&(0,r.jsx)(l$,{store:ex,onCommit:nT,toolResults:nx,modelNames:ej,cwd:nw,onOpenFile:W,onOpenSubagent:F}),ev&&!t$&&(e4||eR)&&(0,r.jsx)("div",{className:"break-words py-2 text-[13px] text-text-muted",children:(0,r.jsx)("span",{className:"animate-[pulse_1.5s_infinite]",children:function(e,t,n){if(n)return t("chat.compacting");if(e?.kind==="running_tools"){let n=e.tools[e.tools.length-1];if(n?.progress)return`${t("chat.runningNamedTool",{name:n.name})} ${n.progress}`;let r=e.tools.map(e=>e.name);return 0===r.length?t("chat.runningTool"):1===r.length?t("chat.runningNamedTool",{name:r[0]}):r.length<=3?t("chat.runningTools",{names:r.join(", ")}):t("chat.runningToolsMore",{names:r.slice(0,2).join(", "),count:r.length-2})}return e?.kind==="waiting_model"?t("chat.waitingModel"):e?.kind==="running_command"?t("chat.runningCommand"):null}(e4,J,eR)})}),eb&&!ey&&(0,r.jsx)("div",{className:"py-2 text-[13px] text-text-muted",children:(0,r.jsx)("span",{className:"animate-[pulse_1.5s_infinite]",children:J("chat.runningCommand")})}),ey&&(0,r.jsx)(sR,{message:{role:"bashExecution",command:ey.command,output:"",excludeFromContext:ey.excludeFromContext},sessionId:l?.id??e9.current??void 0,onOpenSubagent:F}),(0,r.jsx)("div",{ref:nN,"aria-hidden":"true"})]})})}),Y||ei?null:(0,r.jsx)(aP,{messages:ed,getStreamingMessage:tM,scrollContainer:e7,messageRefs:ny,onRevealHistory:nj,turnsBefore:eg})]})]}),B&&tL&&(0,a.createPortal)((0,r.jsx)("div",{ref:tB,role:tP?"dialog":"toolbar","aria-label":J(tP?"chat.newQuoteChat":"chat.askSelection"),style:{position:"fixed",top:tL.top,left:tL.left,zIndex:260,display:"flex",flexWrap:"wrap",gap:3,width:tP?"min(420px, calc(100vw - 16px))":void 0,maxWidth:"calc(100vw - 16px)",maxHeight:"calc(var(--app-viewport-height, 100dvh) - 16px)",overflowY:"auto",padding:tP?12:3,border:"1px solid var(--border)",borderRadius:6,background:"var(--bg)",boxShadow:"0 2px 10px rgba(0,0,0,0.12)"},children:tP?(0,r.jsxs)("fieldset",{disabled:tW,"aria-busy":tW,style:{width:"100%",minWidth:0,margin:0,padding:0,border:"none",display:"flex",flexDirection:"column",gap:10},children:[(0,r.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:8},children:[(0,r.jsx)("span",{style:{flex:1,minWidth:0,fontSize:12,fontWeight:600},children:J("chat.askInNewChat")}),(0,r.jsx)("button",{type:"button",className:"file-viewer-icon-button",title:J("i18n.close"),"aria-label":J("i18n.close"),disabled:tW,onClick:tH,style:{border:"none"},children:(0,r.jsx)("svg",{width:"14",height:"14",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round","aria-hidden":"true",children:(0,r.jsx)("path",{d:"m6 6 12 12M18 6 6 18"})})})]}),(0,r.jsx)(aN,{ref:t_,compact:!0,onSend:tq,onAbort:tH,isStreaming:!1}),tF&&(0,r.jsx)("div",{role:"alert",style:{color:"#dc2626",fontSize:12,overflowWrap:"anywhere"},children:tF})]}):(0,r.jsxs)(r.Fragment,{children:[(0,r.jsxs)("button",{type:"button",className:"file-viewer-icon-button",title:J("chat.askInCurrent"),"aria-label":J("chat.askInCurrent"),onPointerDown:e=>e.preventDefault(),onClick:tK,style:{width:"auto",height:35,flex:"0 0 auto",gap:5,padding:"0 10px",border:"none",fontSize:12,fontWeight:500},children:[(0,r.jsx)("span",{"aria-hidden":"true",style:{fontSize:15},children:"@"}),(0,r.jsx)("span",{children:J("chat.askInCurrent")})]}),D&&tL.sourceEntryId&&!eb&&(0,r.jsxs)("button",{type:"button",className:"file-viewer-icon-button",title:J("chat.askInNewChat"),"aria-label":J("chat.askInNewChat"),onPointerDown:e=>e.preventDefault(),onClick:()=>{tz(!0),window.getSelection()?.removeAllRanges()},style:{width:"auto",height:35,flex:"0 0 auto",gap:5,padding:"0 10px",border:"none",fontSize:12,fontWeight:500},children:[(0,r.jsxs)("svg",{width:"13",height:"13",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:"M6 3v12M18 9a9 9 0 0 1-9 9"}),(0,r.jsx)("circle",{cx:"18",cy:"6",r:"3"}),(0,r.jsx)("circle",{cx:"6",cy:"18",r:"3"})]}),(0,r.jsx)("span",{children:J("chat.askInNewChat")})]})]})}),document.body),(0,r.jsxs)("div",{className:"relative shrink-0",children:[!nk&&(0,r.jsx)("div",{style:{position:"absolute",bottom:"100%",left:36*!Y,right:0,display:"flex",justifyContent:"center",paddingBottom:10,pointerEvents:"none",zIndex:20},children:(0,r.jsx)("button",{type:"button",className:`chat-scroll-to-bottom${e6&&!ei?" is-visible":""}`,title:J("chat.scrollToLatest"),"aria-label":J("chat.scrollToLatest"),onClick:()=>tC("smooth"),children:(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)("path",{d:"M12 5v14M5 12l7 7 7-7"})})})}),nk&&(0,r.jsx)("div",{className:"new-session-hero",style:{paddingLeft:Y?16:52,paddingRight:16},children:(0,r.jsxs)("div",{className:"new-session-hero-inner",style:{maxWidth:"var(--chat-content-max-width, 820px)"},children:[(0,r.jsxs)("div",{className:"new-session-intro",children:[(0,r.jsx)(aE,{}),(0,r.jsx)("h1",{className:"new-session-welcome",children:x?(0,r.jsxs)(r.Fragment,{children:[nS,(0,r.jsx)("button",{type:"button",className:"new-session-welcome-project",title:J("workspace.newSessionContext"),onClick:e=>v?.(e.currentTarget),children:x}),nC]}):J("chat.newSessionWelcome")})]}),g]})}),nA,(0,r.jsx)(aD,{statuses:eq,widgets:eZ,onCommand:tn,commandsDisabled:tI})]}),nk&&(0,r.jsx)("div",{className:"min-h-0 flex-1"})]})}let l$=(0,i.memo)(function(e){let{store:t,onCommit:n,toolResults:s,modelNames:o,cwd:a,onOpenFile:l,onOpenSubagent:c}=e,d=lk(t,lC);return((0,i.useLayoutEffect)(n,[d,n]),d)?(0,r.jsx)(sR,{message:d,toolResults:s,isStreaming:!0,modelNames:o,cwd:a,onOpenFile:l,onOpenSubagent:c}):null});function lM(e){let{notices:t,floating:n=!1,onPauseChange:i}=e;return 0===t.length?null:(0,r.jsx)("div",{style:{display:"flex",flexDirection:"column",alignItems:"flex-end",marginBottom:10*!n},children:t.map((e,s)=>{var o;let a,l,c,d="error"===e.type?"#ef4444":"warning"===e.type?"#d97706":"success"===e.type?"#10b981":"var(--accent)";return(0,r.jsxs)("div",{className:"notice-shelf-item",onMouseEnter:()=>i?.(e.id),onMouseLeave:e=>{e.currentTarget.contains(document.activeElement)||i?.(null)},onFocus:()=>i?.(e.id),onBlur:e=>{e.currentTarget.matches(":hover")||i?.(null)},style:{display:"flex",alignItems:"flex-start",gap:10,minHeight:60,height:"auto",maxHeight:500,pointerEvents:"auto",marginBottom:6*(s!==t.length-1),overflow:"hidden",borderRadius:14,border:"1px solid color-mix(in srgb, var(--border) 70%, transparent)",background:"var(--bg)",color:"var(--text-muted)",width:"fit-content",maxWidth:"min(100%, 620px)",boxShadow:n?"0 1px 2px rgba(15,23,42,0.05), 0 10px 28px -14px rgba(15,23,42,0.24)":"0 1px 2px rgba(15,23,42,0.04), 0 8px 24px -12px rgba(15,23,42,0.10)",fontSize:14,lineHeight:1.5,transformOrigin:"top right",animation:e.exiting?"notice-shelf-out 0.18s ease-in forwards":"notice-shelf-in 0.18s ease-out backwards",padding:"0 12px"},children:[(0,r.jsx)("span",{style:{width:7,height:7,borderRadius:"50%",background:d,flexShrink:0,marginTop:25.5}}),(0,r.jsx)("span",{tabIndex:0,style:{padding:"18.5px 0",minWidth:0,maxWidth:"100%",maxHeight:498,overflowY:"auto",scrollbarWidth:"thin",whiteSpace:"pre-line",wordBreak:"break-word"},children:(o=e.message,a=[],l=(e,t)=>{if(!t)return;let n=a[a.length-1];n?.kind===e?n.text+=t:a.push({kind:e,text:t})},c=!1,o.split("\n").forEach((e,t)=>{let n=rf.test(e);t>0&&l(n&&c?"art":"text","\n"),l(n?"art":"text",e),c=n}),a).map((e,t)=>"art"===e.kind?(0,r.jsx)("span",{style:{display:"inline-block",verticalAlign:"top",maxWidth:"100%",overflowX:"auto",whiteSpace:"pre",fontFamily:"Menlo, Consolas, 'DejaVu Sans Mono', monospace",lineHeight:1,color:"var(--text)"},children:e.text},t):e.text)})]},e.id)})})}function lI(e){let{count:t}=e,{t:n}=(0,eG.s)();return t<=0?null:(0,r.jsx)("span",{style:{fontSize:11,fontWeight:650,color:"var(--accent)",whiteSpace:"nowrap",flexShrink:0},children:n("chat.extensionMoreWaiting",{count:t})})}function lT(e){let{expanded:t}=e;return(0,r.jsx)("svg",{width:"10",height:"10",viewBox:"0 0 10 10",fill:"none",stroke:"currentColor",strokeWidth:1.6,strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":"true",children:t?(0,r.jsx)("path",{d:"M3.5 1v2.5H1M6.5 1v2.5H9M6.5 9v-2.5H9M3.5 9v-2.5H1"}):(0,r.jsx)("path",{d:"M1 3.5V1h2.5M6.5 1H9v2.5M9 6.5V9H6.5M3.5 9H1V6.5"})})}function lR(e){let{request:t,waitingCount:n,onRespond:s}=e,{t:o}=(0,eG.s)(),[a,l]=(0,i.useState)("editor"===t.method?t.prefill??"":""),[c,d]=(0,i.useState)(!1),u=(0,i.useRef)(null),p=(0,i.useRef)(null),[h,f]=(0,i.useState)(null),[m,g]=(0,i.useState)(!1),x=(0,i.useCallback)(()=>g(e=>!e),[]),[v,b]=(0,i.useState)(()=>Date.now()),y=(0,i.useCallback)(e=>e?.focus(),[]),j=function(e){if("select"===e.method&&e.options.length>0)return e.options[0];if("confirm"===e.method){let t=e.message.split("\n").find(e=>e.trim());return t?.trim()}}(t),k=void 0===t.expiresAt?null:Math.max(0,Math.ceil((t.expiresAt-v)/1e3));(0,i.useLayoutEffect)(()=>{if(c)return;let e=u.current,t=p.current;if(!e||!t)return;let n=!1,r=()=>{if(n)return;let r=t.querySelectorAll("pre, .markdown-table-wrap");if(0===r.length)return;let i=function(e,t){let n=0;for(let e of t)e>1&&e>n&&(n=e);return 0===n?null:40*Math.ceil((e+n)/40)}(e.offsetWidth,Array.from(r,e=>e.scrollWidth-e.clientWidth));null!==i&&f(e=>null!==e&&e>=i?e:i)};r();let i=new MutationObserver(r);return i.observe(t,{childList:!0,subtree:!0,characterData:!0}),document.fonts?.ready.then(r),()=>{n=!0,i.disconnect()}},[c]),(0,i.useEffect)(()=>{if(void 0===t.expiresAt)return;let e=setInterval(()=>b(Date.now()),1e3);return()=>clearInterval(e)},[t.expiresAt]);let w=null!==k&&(0,r.jsx)("span",{style:{fontSize:11,color:"var(--text-dim)",whiteSpace:"nowrap",flexShrink:0},children:o("chat.extensionExpiresIn",{seconds:k})}),S=()=>{"confirm"===t.method?s(t,{confirmed:!0}):s(t,{value:a})};return(0,r.jsx)("div",{onKeyDown:e=>{"Escape"!==e.key||e.nativeEvent.isComposing||(e.preventDefault(),e.stopPropagation(),s(t,{cancelled:!0}))},style:{position:"absolute",inset:0,zIndex:90,display:"flex",alignItems:c?"flex-start":"center",justifyContent:"center",padding:20,pointerEvents:"none"},children:c?(0,r.jsxs)("button",{type:"button",onClick:()=>d(!1),"aria-expanded":!1,style:{pointerEvents:"auto",display:"flex",alignItems:"center",gap:10,maxWidth:"min(560px, 100%)",width:"100%",padding:"10px 12px",border:"1px solid var(--border)",borderRadius:8,background:"var(--bg)",boxShadow:"0 12px 32px rgba(0,0,0,0.18)",color:"var(--text)",cursor:"pointer",textAlign:"left"},children:[(0,r.jsx)("span",{style:{fontSize:11,fontWeight:650,color:"var(--accent)",flexShrink:0},children:o("chat.extensionPending")}),(0,r.jsx)("span",{style:{fontSize:13,fontWeight:600,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",flex:1,minWidth:0},children:t.title}),j&&(0,r.jsx)("span",{style:{fontSize:12,color:"var(--text-dim)",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",maxWidth:"34%",flexShrink:1},children:j}),(0,r.jsx)(lI,{count:n}),w,(0,r.jsx)("span",{style:{fontSize:12,color:"var(--text-muted)",flexShrink:0},children:o("chat.extensionExpand")})]}):(0,r.jsxs)("div",{ref:u,role:"dialog","aria-label":t.title,style:{pointerEvents:"auto",width:m?"100%":`min(${h??560}px, 100%)`,maxHeight:m?"100%":"min(760px, 100%)",display:"flex",flexDirection:"column",border:"1px solid var(--border)",borderRadius:8,background:"var(--bg)",boxShadow:"0 20px 60px rgba(0,0,0,0.28)",overflow:"hidden"},children:[(0,r.jsxs)("div",{style:{flexShrink:1,minHeight:0,display:"flex",alignItems:"flex-start",gap:8,padding:"12px 14px",borderBottom:"1px solid var(--border)",maxHeight:"50vh",overflowY:"auto"},children:[(0,r.jsxs)("div",{style:{flex:1,minWidth:0},children:[(0,r.jsx)("div",{style:{color:"var(--text)",fontSize:14,fontWeight:650,lineHeight:1.45,whiteSpace:"pre-wrap",overflowWrap:"anywhere"},children:t.title}),(0,r.jsxs)("div",{style:{display:"flex",flexWrap:"wrap",gap:8,marginTop:3,color:"var(--text-dim)",fontSize:11,fontFamily:"var(--font-mono)"},children:[(0,r.jsx)("span",{children:o("chat.extensionRequest")}),(0,r.jsx)(lI,{count:n}),w]})]}),(0,r.jsx)("button",{type:"button",onClick:x,title:o(m?"chat.extensionRestoreSize":"chat.extensionMaximize"),"aria-label":o(m?"chat.extensionRestoreSize":"chat.extensionMaximize"),style:{display:"grid",placeItems:"center",width:28,height:28,borderRadius:6,border:"1px solid var(--border)",background:"var(--bg-panel)",color:"var(--text-muted)",cursor:"pointer",flexShrink:0},children:(0,r.jsx)(lT,{expanded:m})}),(0,r.jsx)("button",{type:"button",onClick:()=>d(!0),"aria-expanded":!0,title:o("chat.extensionCollapse"),"aria-label":o("chat.extensionCollapse"),style:{display:"grid",placeItems:"center",width:28,height:28,borderRadius:6,border:"1px solid var(--border)",background:"var(--bg-panel)",color:"var(--text-muted)",cursor:"pointer",flexShrink:0},children:(0,r.jsx)("svg",{width:"10",height:"10",viewBox:"0 0 10 10",fill:"none",stroke:"currentColor",strokeWidth:"1.6",strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":"true",children:(0,r.jsx)("polyline",{points:"2 3.5 5 6.5 8 3.5"})})})]}),(0,r.jsxs)("div",{ref:p,style:{padding:14,flex:"1 1 auto",minHeight:0,overflowY:"auto"},children:["confirm"===t.method&&(0,r.jsx)(i9,{children:t.message}),"select"===t.method&&(0,r.jsx)("div",{onKeyDown:e=>{if(!["ArrowDown","ArrowRight","ArrowUp","ArrowLeft","Home","End"].includes(e.key))return;let t=Array.from(e.currentTarget.querySelectorAll("[data-extension-option]")),n=t.indexOf(e.target);if(n<0)return;e.preventDefault();let r="Home"===e.key?0:"End"===e.key?t.length-1:(n+("ArrowDown"===e.key||"ArrowRight"===e.key?1:-1)+t.length)%t.length;t[r].focus({preventScroll:!0}),t[r].scrollIntoView({block:"nearest"})},style:{display:"grid",gap:8},children:t.options.map((e,n)=>(0,r.jsx)("div",{role:"button",tabIndex:0,"data-extension-option":!0,"aria-label":e,ref:0===n?y:void 0,onClick:()=>s(t,{value:e}),onKeyDown:n=>{("Enter"===n.key||" "===n.key)&&(n.preventDefault(),s(t,{value:e}))},style:{width:"100%",padding:"9px 10px",borderRadius:7,border:"1px solid var(--border)",background:"var(--bg-panel)",color:"var(--text)",cursor:"pointer",textAlign:"left",fontSize:13,overflowWrap:"anywhere",scrollMargin:14},children:(0,r.jsx)("div",{inert:!0,children:(0,r.jsx)(i9,{children:e})})},e))}),"input"===t.method&&(0,r.jsx)("input",{autoFocus:!0,value:a,placeholder:t.placeholder,onChange:e=>l(e.target.value),onKeyDown:e=>{"Enter"!==e.key||e.nativeEvent.isComposing||S()},style:{width:"100%",padding:"9px 10px",borderRadius:7,border:"1px solid var(--border)",background:"var(--bg-panel)",color:"var(--text)",outline:"none",fontSize:13}}),"editor"===t.method&&(0,r.jsx)("textarea",{autoFocus:!0,value:a,onChange:e=>l(e.target.value),onKeyDown:e=>{(e.metaKey||e.ctrlKey)&&"Enter"===e.key&&!e.nativeEvent.isComposing&&S()},style:{width:"100%",minHeight:220,padding:10,borderRadius:7,border:"1px solid var(--border)",background:"var(--bg-panel)",color:"var(--text)",outline:"none",resize:"vertical",fontSize:13,lineHeight:1.55,fontFamily:"var(--font-mono)"}})]}),(0,r.jsxs)("div",{style:{flexShrink:0,display:"flex",justifyContent:"flex-end",gap:8,padding:"10px 14px",borderTop:"1px solid var(--border)",background:"var(--bg-panel)"},children:[(0,r.jsx)("button",{autoFocus:"confirm"===t.method||"select"===t.method&&0===t.options.length,onClick:()=>s(t,{cancelled:!0}),style:{padding:"6px 10px",borderRadius:6,border:"1px solid var(--border)",background:"var(--bg)",color:"var(--text-muted)",cursor:"pointer"},children:o("chat.cancel")}),"confirm"===t.method?(0,r.jsx)("button",{onClick:S,style:{padding:"6px 10px",borderRadius:6,border:"1px solid var(--accent)",background:"var(--accent)",color:"var(--accent-contrast)",cursor:"pointer"},children:o("chat.confirm")}):"select"!==t.method?(0,r.jsx)("button",{onClick:S,style:{padding:"6px 10px",borderRadius:6,border:"1px solid var(--accent)",background:"var(--accent)",color:"var(--accent-contrast)",cursor:"pointer"},children:o("chat.submit")}):null]})]})})}function lL(e){let{request:t,waitingCount:n,onInput:s}=e,{t:o}=(0,eG.s)(),a=(0,i.useRef)(null),l=(0,i.useRef)(!1),[c,d]=(0,i.useState)(!1),u=function(e){let t=/^[┌├└╭╰][─┬┴┼]+[┐┤┘╮╯]$/,n=[];for(let r of e){let e=r.replace(rc,""),i=rd(e).trimEnd();if(t.test(i))continue;let s=e,o=rh(s);("│"===o||"┃"===o)&&" "===rh(s=rp(s,0))&&(s=rp(s,0));let a=function(e){let t=ru(e);for(let e=t.length-1;e>=0;e--)if(""!==t[e].char.trim())return e;return -1}(s),l=a>=0?ru(s)[a]?.char:void 0;("│"===l||"┃"===l)&&(s=rp(s,a)),n.push(function(e){let t=e;for(;;){let e=ru(t),n=e[e.length-1];if(!n||""!==n.char.trim())return t;t=t.slice(0,n.start)+t.slice(n.end)}}(s))}for(;n.length>0&&""===rd(n[0]).trim();)n.shift();for(;n.length>0&&""===rd(n[n.length-1]).trim();)n.pop();return n.length?n:e}(t.lines),p=u.find(e=>e.trim())?.trim();return(0,i.useEffect)(()=>{c||a.current?.focus()},[c]),(0,r.jsx)("div",{style:{position:"absolute",inset:0,zIndex:95,display:"flex",alignItems:c?"flex-start":"center",justifyContent:"center",padding:20,pointerEvents:"none"},children:c?(0,r.jsxs)("button",{type:"button",onClick:()=>d(!1),"aria-expanded":!1,style:{pointerEvents:"auto",display:"flex",alignItems:"center",gap:10,maxWidth:"min(920px, 100%)",width:"100%",padding:"10px 12px",border:"1px solid var(--border)",borderRadius:8,background:"var(--bg)",boxShadow:"0 12px 32px rgba(0,0,0,0.18)",color:"var(--text)",cursor:"pointer",textAlign:"left"},children:[(0,r.jsx)("span",{style:{fontSize:11,fontWeight:650,color:"var(--accent)",flexShrink:0},children:o("chat.extensionPending")}),(0,r.jsx)("span",{style:{fontSize:13,fontWeight:600,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",flex:1,minWidth:0},children:o("chat.extensionPanel")}),p&&(0,r.jsx)("span",{style:{fontSize:12,color:"var(--text-dim)",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",maxWidth:"34%",flexShrink:1},children:p}),(0,r.jsx)(lI,{count:n}),(0,r.jsx)("span",{style:{fontSize:12,color:"var(--text-muted)",flexShrink:0},children:o("chat.extensionExpand")})]}):(0,r.jsxs)("div",{role:"dialog",onClick:e=>{e.target.closest("button")||a.current?.focus()},style:{pointerEvents:"auto",position:"relative",width:"max-content",minWidth:"min(920px, 100%)",maxWidth:"100%",maxHeight:"min(760px, 100%)",display:"flex",flexDirection:"column",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:a,"aria-label":o("chat.extensionInput"),autoCapitalize:"off",autoComplete:"off",autoCorrect:"off",spellCheck:!1,onKeyDown:e=>{if(l.current||e.nativeEvent.isComposing)return;let n=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=rg[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":" ":rm[e.key]??null}(e);n&&(e.preventDefault(),e.stopPropagation(),s(t,n))},onInput:e=>{if(l.current||e.nativeEvent.isComposing)return;let n=e.currentTarget.value;e.currentTarget.value="",n&&s(t,n)},onCompositionStart:()=>{l.current=!0},onCompositionEnd:e=>{l.current=!1;let n=e.currentTarget;queueMicrotask(()=>{let e=n.value;n.value="",e&&s(t,e)})},onPaste:e=>{e.preventDefault();let n=e.clipboardData.getData("text");n&&s(t,`\x1b[200~${n}\x1b[201~`)},style:{position:"absolute",width:1,height:1,padding:0,border:0,opacity:0,pointerEvents:"none"}}),(0,r.jsxs)("div",{style:{flexShrink:0,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:o("chat.extensionPanel")}),(0,r.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:8},children:[(0,r.jsx)(lI,{count:n}),(0,r.jsx)("button",{type:"button",onClick:()=>d(!0),"aria-expanded":!0,title:o("chat.extensionCollapse"),"aria-label":o("chat.extensionCollapse"),style:{display:"grid",placeItems:"center",width:28,height:28,borderRadius:6,border:"1px solid var(--border)",background:"var(--bg-panel)",color:"var(--text-muted)",cursor:"pointer",flexShrink:0},children:(0,r.jsx)("svg",{width:"10",height:"10",viewBox:"0 0 10 10",fill:"none",stroke:"currentColor",strokeWidth:"1.6",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)("button",{onClick:()=>s(t,"\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:o("chat.close")})]})]}),(0,r.jsx)("pre",{style:{margin:0,padding:14,minHeight:0,overflow:"auto",background:"var(--bg-panel)",color:"var(--text)",fontFamily:"var(--font-mono)",fontSize:13,lineHeight:1.45,whiteSpace:"pre"},children:(0,r.jsx)(aW,{text:u.join("\n")})})]})})}function lA(e){return e>=1e6?`${(e/1e6).toFixed(1)}M`:e>=1e3?`${(e/1e3).toFixed(0)}k`:String(e)}function lP(e){return e>0?e>=.01?`$${e.toFixed(2)}`:"<$0.01":null}function lz(e){if(e<=0)return"0s";let t=Math.floor(e/1e3),n=Math.floor(t/3600),r=Math.floor(t%3600/60),i=t%60;return n>0?`${n}h ${r}m`:r>0?`${r}m ${i}s`:`${i}s`}var lW=n(65954),lO=n.n(lW);function lF(e){let{usage:t,onClick:n,expanded:s}=e,{t:o}=(0,eG.s)(),l=(0,i.useId)(),c=(0,i.useRef)(null),d=(0,i.useRef)(void 0),[u,p]=(0,i.useState)(null),h=null===t.percent?null:Math.max(0,Math.min(100,t.percent)),f=null===h?o("session.contextUnknown"):o("session.contextPercent",{used:Math.round(h),remaining:100-Math.round(h)}),m=o("session.contextTokens",{used:null===t.tokens?"?":lA(t.tokens),total:lA(t.contextWindow)}),g=()=>{clearTimeout(d.current),p(null)},x=()=>{clearTimeout(d.current);let e=c.current?.getBoundingClientRect();e&&p({left:Math.max(118,Math.min(window.innerWidth-118,e.left+e.width/2)),top:e.top-9})},v=()=>{d.current=setTimeout(g,120)};return(0,i.useEffect)(()=>{let e=()=>p(null),t=t=>{"Escape"===t.key&&(t.stopPropagation(),e())};return u&&(window.addEventListener("resize",e),document.addEventListener("scroll",e,!0),document.addEventListener("keydown",t,!0)),()=>{window.removeEventListener("resize",e),document.removeEventListener("scroll",e,!0),document.removeEventListener("keydown",t,!0)}},[u]),(0,i.useEffect)(()=>()=>clearTimeout(d.current),[]),(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)("button",{ref:c,type:"button",className:lO().trigger,"data-context-usage":"","aria-label":`${o("session.contextWindow")}: ${f}; ${m}`,"aria-describedby":u?l:void 0,"aria-expanded":s,"aria-controls":"workspace-usage-page",onPointerEnter:x,onPointerLeave:v,onFocus:x,onBlur:g,onClick:()=>{g(),n()},children:(0,r.jsxs)("svg",{width:"18",height:"18",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.5",opacity:"0.2"}),(0,r.jsx)("circle",{cx:"12",cy:"12",r:"9",stroke:null!==h&&h>90?"#ef4444":null!==h&&h>70?"#d9a323":"var(--text-muted)",strokeWidth:"2.5",pathLength:"100",strokeDasharray:`${h??0} 100`,strokeLinecap:"round",transform:"rotate(-90 12 12)"})]})}),u&&(0,a.createPortal)((0,r.jsxs)("div",{id:l,role:"tooltip",className:lO().tooltip,style:{left:u.left,top:u.top},onPointerEnter:()=>clearTimeout(d.current),onPointerLeave:v,children:[(0,r.jsx)("span",{children:o("session.contextWindow")}),(0,r.jsx)("strong",{children:f}),(0,r.jsx)("span",{className:lO().counts,children:m})]}),document.body)]})}function lD(e){let{sessions:t,runningSessionIds:n,cwd:i,onSelectSession:s,onNewSession:o,onOpenProject:a}=e,{t:l,locale:u}=(0,eG.s)(),p=t.filter(e=>e.relation?.kind!=="subagent").sort((e,t)=>Date.parse(t.modified)-Date.parse(e.modified)).slice(0,8),h=new Intl.DateTimeFormat(u,{month:"short",day:"numeric"});return(0,r.jsx)("div",{className:"home-view",role:"region","aria-label":l("navigation.home"),children:(0,r.jsxs)("div",{className:"home-content",children:[(0,r.jsxs)("div",{className:"home-intro",children:[(0,r.jsx)(aE,{}),(0,r.jsx)("h1",{children:l("chat.newSessionWelcome")}),(0,r.jsx)("p",{children:l("home.description")})]}),(0,r.jsxs)("div",{className:"home-actions",children:[(0,r.jsxs)("button",{type:"button",className:"home-new-task",onClick:o,children:[(0,r.jsx)(tD,{size:20}),(0,r.jsxs)("span",{children:[(0,r.jsx)("strong",{children:l("home.newTask")}),(0,r.jsx)("small",{title:i??void 0,children:i?ed(i)||i:l("home.chooseProject")})]}),(0,r.jsx)("span",{className:"home-action-arrow","aria-hidden":"true",children:"↗"})]}),(0,r.jsxs)("button",{type:"button",className:"home-open-project",onClick:a,children:[(0,r.jsx)(tF,{size:18}),(0,r.jsx)("span",{children:l("home.openProject")})]})]}),(0,r.jsxs)("section",{className:"home-recent","aria-labelledby":"home-recent-title",children:[(0,r.jsx)("h2",{id:"home-recent-title",children:l("home.recentTasks")}),p.length?(0,r.jsx)("div",{className:"home-session-list",children:p.map(e=>{let t=new Date(e.modified),i=ex(e);return(0,r.jsxs)("a",{className:"home-session",href:c(e.id),onClick:t=>{d(t)&&(t.preventDefault(),s(e))},children:[(0,r.jsx)(tV,{size:17}),(0,r.jsxs)("span",{className:"home-session-details",children:[(0,r.jsx)("span",{className:"home-session-title",title:i,children:i}),(0,r.jsx)("span",{className:"home-session-project",title:e.cwd,children:ed(e.projectRoot||e.cwd)||e.cwd})]}),n.has(e.id)?(0,r.jsx)("span",{className:"home-running",children:l("home.running")}):Number.isFinite(t.getTime())&&(0,r.jsx)("time",{dateTime:t.toISOString(),children:h.format(t)})]},e.id)})}):(0,r.jsx)("p",{className:"home-empty",children:l("home.noTasks")})]})]})})}function lB(e){let{snapshot:t,projectKey:n,onProjectChange:s,onSelectSession:o,onRestore:a,onDelete:l,onDeleteMany:u,onRefresh:p}=e,{t:h,locale:f}=(0,eG.s)(),[m,g]=(0,i.useState)(""),[x,v]=(0,i.useState)(()=>new Map),[b,y]=(0,i.useState)(null),[j,k]=(0,i.useState)(null),[w,S]=(0,i.useState)(!1),[C,N]=(0,i.useState)(null),E=(0,i.useRef)(!1),$=(0,i.useRef)(null),[M,I]=(0,i.useState)(()=>new Map),T=(0,i.useRef)(null),R=(0,i.useRef)(null),L=(0,i.useRef)(!1),A=(0,i.useMemo)(()=>[...new Map(t.entries.map(e=>[e.project.key,e.project])).values()],[t.entries]),P=(0,i.useMemo)(()=>{var e;let r;return e=t.entries,r=m.trim().toLocaleLowerCase().split(/\s+/).filter(Boolean),e.filter(e=>{if(n&&e.project.key!==n)return!1;let t=[ex(e.session),e.session.firstMessage,e.project.name,e.project.root,e.session.cwd].join("\n").toLocaleLowerCase();return r.every(e=>t.includes(e))})},[t.entries,m,n]),z=(0,i.useMemo)(()=>{let e=new Map;for(let t of P){let n=e.get(t.project.key);n?n.push(t):e.set(t.project.key,[t])}return[...e.values()]},[P]),W=(0,i.useMemo)(()=>new Intl.DateTimeFormat(f,{year:"numeric",month:"short",day:"numeric"}),[f]);(0,i.useEffect)(()=>{t.loaded&&n&&!A.some(e=>e.key===n)&&s(null)},[t.loaded,n,A,s]),(0,i.useLayoutEffect)(()=>{(x.size||L.current)&&e_(document,window.matchMedia?.("(pointer: coarse)").matches?R.current:T.current),L.current=!1},[x,t.entries,w]),(0,i.useEffect)(()=>{y(null)},[m,n]),(0,i.useEffect)(()=>{b&&!t.entries.some(e=>e.session.id===b)&&y(null)},[t.entries,b]);let O=async e=>{if(!x.has(e)&&!j&&!E.current){v(t=>new Map(t).set(e,"restore")),I(t=>{let n=new Map(t);return n.delete(e),n});try{if(!await a(e))throw Error("restore failed")}catch{I(t=>new Map(t).set(e,h("archive.restoreFailed")))}finally{L.current=!0,v(t=>{let n=new Map(t);return n.delete(e),n})}}},F=e=>{y(null),R.current?.querySelector(`[data-archived-session="${CSS.escape(e)}"] .archive-workspace-delete`)?.focus()},D=async e=>{if(!x.has(e)&&!j&&!E.current){v(t=>new Map(t).set(e,"delete")),I(t=>{let n=new Map(t);return n.delete(e),n});try{if(!await l(e))throw Error("delete failed");y(null)}catch{I(t=>new Map(t).set(e,h("archive.deleteFailed")))}finally{L.current=!0,v(t=>{let n=new Map(t);return n.delete(e),n})}}},B=()=>{E.current||(k(null),$.current?.focus())},_=async()=>{if(j?.length&&!E.current&&!x.size){E.current=!0,S(!0),N(null);try{if(!await u(j))throw Error("archive clear incomplete")}catch{N(h("archive.clearFailed"))}finally{E.current=!1,L.current=!0,S(!1),k(null)}}};return(0,r.jsxs)("div",{className:"archive-workspace",ref:R,tabIndex:-1,children:[(0,r.jsxs)("div",{className:"archive-workspace-toolbar",children:[(0,r.jsxs)("label",{className:"archive-workspace-search",children:[(0,r.jsx)(tH,{size:16}),(0,r.jsx)("input",{ref:T,type:"search",value:m,onChange:e=>g(e.target.value),maxLength:200,placeholder:h("archive.search"),"aria-label":h("archive.search"),onKeyDown:e=>{"Escape"===e.key&&m&&!e.nativeEvent.isComposing&&229!==e.keyCode&&(e.stopPropagation(),e.preventDefault(),g(""))}})]}),(0,r.jsxs)("select",{value:n??"",onChange:e=>s(e.target.value||null),"aria-label":h("archive.projectFilter"),children:[(0,r.jsx)("option",{value:"",children:h("archive.allProjects")}),A.map(e=>(0,r.jsx)("option",{value:e.key,children:e.name},e.key))]}),(0,r.jsx)("span",{className:"archive-workspace-count",role:"status",children:h("archive.count",{count:P.length})}),(0,r.jsxs)("button",{ref:$,type:"button",className:"archive-workspace-delete archive-workspace-clear",disabled:!t.loaded||!!t.error||!t.entries.length||x.size>0||w,"aria-expanded":null!==j,onClick:()=>{y(null),N(null),k(t.entries.map(e=>e.session.id))},children:[(0,r.jsx)(tR,{size:15}),h(w?"archive.deleting":"archive.clearAll")]})]}),j&&(0,r.jsxs)("div",{className:"archive-delete-confirmation archive-clear-confirmation",role:"group","aria-label":h("archive.clearAll"),onKeyDown:e=>{"Escape"!==e.key||e.nativeEvent.isComposing||229===e.keyCode||(e.preventDefault(),e.stopPropagation(),B())},children:[(0,r.jsxs)("div",{children:[(0,r.jsx)("strong",{children:h("archive.clearTitle",{count:j.length})}),(0,r.jsx)("p",{children:h("archive.clearWarning")})]}),(0,r.jsx)("button",{type:"button",autoFocus:!0,disabled:w,onClick:B,children:h("sidebar.cancel")}),(0,r.jsx)("button",{type:"button",className:"is-danger",disabled:w,onClick:()=>void _(),children:h(w?"archive.deleting":"archive.clearAll")})]}),C&&(0,r.jsxs)("div",{className:"archive-workspace-error",role:"alert",children:[(0,r.jsx)("span",{children:C}),(0,r.jsx)("button",{type:"button",onClick:p,children:h("i18n.refresh")})]}),(0,r.jsx)("p",{className:"archive-workspace-description",children:h("archive.description")}),t.error&&(0,r.jsxs)("div",{className:"archive-workspace-error",role:"alert",children:[h("archive.loadFailed"),(0,r.jsx)("button",{type:"button",onClick:p,children:h("i18n.refresh")})]}),t.loaded?P.length?z.map(e=>(0,r.jsxs)("section",{className:"archive-workspace-group","aria-label":e[0].project.name,children:[(0,r.jsxs)("h2",{title:e[0].project.root,children:[(0,r.jsx)(tF,{size:16}),(0,r.jsx)("span",{children:e[0].project.name}),(0,r.jsx)("small",{children:e.length})]}),e.map(e=>{let{session:t,archivedAt:n}=e,i=ex(t);return(0,r.jsxs)("div",{className:"archive-workspace-row","data-archived-session":t.id,children:[(0,r.jsxs)("a",{href:c(t.id),title:i,onClick:e=>{d(e)&&(e.preventDefault(),o(t))},children:[(0,r.jsx)(tS,{size:16}),(0,r.jsx)("span",{className:"archive-workspace-title",children:i}),(0,r.jsx)("time",{dateTime:new Date(n).toISOString(),title:h("archive.archivedOn"),children:W.format(n)})]}),(0,r.jsxs)("button",{type:"button",className:"archive-workspace-restore",onClick:()=>void O(t.id),disabled:x.has(t.id)||null!==j||w,"aria-label":h("archive.restoreSession",{title:i}),children:[(0,r.jsx)(tC,{size:15}),h("restore"===x.get(t.id)?"archive.restoring":"sidebar.restore")]}),(0,r.jsxs)("button",{type:"button",className:"archive-workspace-delete",disabled:x.has(t.id)||null!==j||w,"aria-label":h("archive.deleteSession",{title:i}),"aria-expanded":b===t.id,onClick:()=>{I(e=>{let n=new Map(e);return n.delete(t.id),n}),y(t.id)},children:[(0,r.jsx)(tR,{size:15}),h("sidebar.delete")]}),b===t.id&&(0,r.jsxs)("div",{className:"archive-delete-confirmation",role:"group","aria-label":h("sidebar.deleteSession",{title:i}),onKeyDown:e=>{"Escape"===e.key&&!e.nativeEvent.isComposing&&229!==e.keyCode&&(e.preventDefault(),e.stopPropagation(),x.has(t.id)||F(t.id))},children:[(0,r.jsxs)("div",{children:[(0,r.jsx)("strong",{children:h("sidebar.deleteSession",{title:i})}),(0,r.jsx)("p",{children:h("archive.deleteWarning")})]}),(0,r.jsx)("button",{type:"button",autoFocus:!0,disabled:x.has(t.id),onClick:()=>F(t.id),children:h("sidebar.cancel")}),(0,r.jsx)("button",{type:"button",className:"is-danger",disabled:x.has(t.id),onClick:()=>void D(t.id),children:h("delete"===x.get(t.id)?"archive.deleting":"sidebar.delete")})]}),M.has(t.id)&&(0,r.jsx)("p",{className:"archive-workspace-row-error",role:"alert",children:M.get(t.id)})]},t.id)})]},e[0].project.key)):!t.error&&(0,r.jsx)("p",{className:"archive-workspace-empty",children:h(t.entries.length?"archive.noMatches":"sidebar.noArchived")}):(0,r.jsx)("p",{className:"archive-workspace-empty",role:"status",children:h("archive.loading")})]})}let l_=["general","models","skills","agents","plugins","mcp"],lH="pi-web:settings-navigation",lU=new Set(["skills","agents","plugins"]);function lK(){try{return window.localStorage}catch{return null}}function lq(e){let t=e.getItem(lH);if(!t)return{};try{let e=JSON.parse(t);if(null===e||"object"!=typeof e||Array.isArray(e))return{};return{section:"string"==typeof e.section?e.section:void 0,selections:null===e.selections||"object"!=typeof e.selections||Array.isArray(e.selections)?void 0:e.selections}}catch{return{}}}function lZ(e,t){return"models"===e?e:t?JSON.stringify([e,t]):"mcp"===e?e:null}function lV(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:lK();if(!t)return"general";try{let n=lq(t).section;if(!("string"==typeof n&&l_.includes(n)))return"general";return lU.has(n)&&!e?"general":n}catch{return"general"}}function lJ(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:lK();if(t)try{let n=lq(t);n.section=e,t.setItem(lH,JSON.stringify(n))}catch{}}function lY(e,t){let n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:lK();if(!n)return null;let r=lZ(e,t);if(!r)return null;try{let e=lq(n).selections?.[r];return"string"==typeof e&&e.length>0?e:null}catch{return null}}function lG(e,t,n){let r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:lK();if(!r||!t)return;let i=lZ(e,n);if(i)try{let e=lq(r);e.selections={...e.selections,[i]:t},r.setItem(lH,JSON.stringify(e))}catch{}}function lX(e){return"object"==typeof e&&null!==e&&!Array.isArray(e)}class lQ extends Error{constructor(e){super(`Context window of ${e} must be a positive number of tokens`),this.name="ContextWindowError",this.model=e}}function l0(e){if("string"==typeof e){let t=/^\d+$/.test(e.trim())?Number(e.trim()):0;return Number.isSafeInteger(t)&&t>0?t:void 0}return"number"==typeof e&&Number.isFinite(e)&&e>0?e:void 0}let l1=["input","output","cacheRead","cacheWrite"];function l2(e){return{input:e?.input===void 0?"":String(e.input),output:e?.output===void 0?"":String(e.output),cacheRead:e?.cacheRead===void 0?"":String(e.cacheRead),cacheWrite:e?.cacheWrite===void 0?"":String(e.cacheWrite)}}function l4(e){if(!l8(e))return;let t=e=>{if(!e.trim())return 0;let t=Number(e);return Number.isFinite(t)&&t>=0?t:void 0},n=t(e.input),r=t(e.output),i=t(e.cacheRead),s=t(e.cacheWrite);if(void 0!==n&&void 0!==r&&void 0!==i&&void 0!==s)return{input:n,output:r,cacheRead:i,cacheWrite:s}}function l8(e){return l1.some(t=>""!==e[t].trim())}function l3(e){return new Map(Object.entries(e.providers??{}).map(e=>{let[t,n]=e;return[t,(n.models??[]).map(e=>e.id)]}))}function l6(e,t,n){if(n<=0)return;let r=e.get(t)??[];e.set(t,[...r,...Array.from({length:n},()=>null)])}function l5(e){let{embedded:t,title:n,subtitle:i,closeLabel:s="Close",onClose:o,children:a,width:l=900,height:c="78vh"}=e,d=t?void 0:{"--config-panel-width":`${l}px`,"--config-panel-height":c};return(0,r.jsx)("div",{role:t?void 0:"dialog","aria-modal":t?void 0:"true","aria-label":n,className:`config-panel-root ${t?"is-embedded":"is-modal"}`,onClick:e=>{t||e.target!==e.currentTarget||o()},children:(0,r.jsxs)("div",{className:"config-panel-surface",style:d,children:[!t&&(0,r.jsxs)("div",{className:"config-panel-header",children:[(0,r.jsx)("strong",{className:"config-panel-title",children:n}),i&&(0,r.jsx)("code",{className:"config-panel-subtitle",title:i,children:i}),(0,r.jsx)("button",{type:"button",className:"config-close-button",onClick:o,title:s,"aria-label":s,children:"\xd7"})]}),a]})})}function l9(e){let{children:t}=e;return(0,r.jsx)("div",{className:"config-split-view",children:t})}function l7(e){let{children:t}=e;return(0,r.jsx)("aside",{className:"config-sidebar",children:t})}function ce(e){let{children:t}=e;return(0,r.jsx)("div",{className:"config-sidebar-list",children:t})}function ct(e){let{children:t,aside:n}=e;return(0,r.jsxs)("div",{className:"config-sidebar-group-label",children:[(0,r.jsx)("span",{className:"config-sidebar-group-label-text",children:t}),n]})}function cn(e){let{enabled:t,total:n,checked:i,label:s,disabled:o=!1,loading:a=!1,describedBy:l,onChange:c}=e;return(0,r.jsxs)("span",{className:"config-sidebar-group-switch",children:[(0,r.jsxs)("span",{className:"config-sidebar-group-count",children:[t,"/",n]}),(0,r.jsx)(cE,{checked:i??(n>0&&t===n),disabled:o,loading:a,label:s,describedBy:l,onChange:c})]})}function cr(e){let{error:t,note:n}=e;return t||n?(0,r.jsxs)("div",{className:"config-sidebar-group-status",children:[n&&(0,r.jsx)("div",{role:"status",className:"config-sidebar-group-note",children:n}),t&&(0,r.jsx)("div",{role:"alert",className:"config-sidebar-group-error",children:t})]}):null}function ci(e){let{active:t=!1,className:n,children:i,...s}=e;return(0,r.jsx)("button",{type:"button",...s,"aria-current":t?"page":void 0,className:["config-sidebar-item",n].filter(Boolean).join(" "),children:i})}function cs(e){let{className:t,...n}=e;return(0,r.jsx)("span",{...n,className:["config-sidebar-text",t].filter(Boolean).join(" ")})}function co(e){let{className:t,...n}=e;return(0,r.jsx)("div",{...n,className:["config-detail-stack",t].filter(Boolean).join(" ")})}function ca(e){let{className:t,...n}=e;return(0,r.jsx)("div",{...n,className:["config-detail-header",t].filter(Boolean).join(" ")})}function cl(e){let{className:t,...n}=e;return(0,r.jsx)("div",{...n,className:["config-detail-header-info",t].filter(Boolean).join(" ")})}function cc(e){let{className:t,...n}=e;return(0,r.jsx)("div",{...n,className:["config-detail-actions",t].filter(Boolean).join(" ")})}function cd(e){let{children:t}=e;return(0,r.jsx)("div",{className:"config-detail-title",children:t})}function cu(e){let{children:t}=e;return(0,r.jsx)("div",{className:"config-section-title",children:t})}function cp(e){let{label:t,children:n,style:i,ref:s}=e;return(0,r.jsxs)("div",{ref:s,className:"config-field",style:i,children:[(0,r.jsx)("span",{className:"config-field-label",children:t}),n]})}function ch(e){let{children:t}=e;return(0,r.jsx)("div",{className:"config-detail-grid",children:t})}function cf(e){let{label:t,tone:n="muted",mono:i=!1,className:s,style:o,children:a}=e;return(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)("div",{className:"config-detail-grid-label",children:t}),(0,r.jsx)("div",{className:["config-detail-grid-value","plain"===n?null:`is-${n}`,i?"is-mono":null,s].filter(Boolean).join(" "),style:o,children:a})]})}function cm(e){let{scope:t,children:n}=e;return(0,r.jsx)("span",{className:`config-scope-tag${"project"===t?" is-project":""}`,children:n})}function cg(e){let{value:t,options:n,label:s,disabledReason:o,size:a="default",onChange:l,children:c}=e,d=(0,i.useId)(),u=o&&n.some(e=>e.disabled)?o:null;return(0,r.jsxs)("div",{className:"config-scope-switch-field",children:[(0,r.jsxs)("div",{className:"config-scope-switch-row",children:[(0,r.jsx)("div",{role:"group","aria-label":s,className:`config-scope-switch${"small"===a?" is-small":""}`,children:n.map(e=>(0,r.jsx)("button",{type:"button","aria-pressed":e.value===t,"aria-describedby":e.disabled&&u?d:void 0,disabled:e.disabled,className:"config-scope-switch-option",onClick:()=>{e.disabled||l(e.value)},children:e.label},e.value))}),c]}),u&&(0,r.jsx)("span",{id:d,className:"config-scope-switch-reason",children:u})]})}function cx(e){let{value:t,options:n,label:s,path:o,disabledReason:a,onChange:l,children:c}=e;return(0,r.jsxs)("div",{className:"config-save-target",children:[(0,r.jsx)(cg,{value:t,options:n,label:s,disabledReason:a,size:"small",onChange:l,children:(0,r.jsx)("span",{className:"config-save-target-path",children:"string"==typeof o?o.split(/([\\/])/).map((e,t)=>"/"===e||"\\"===e?(0,r.jsxs)(i.Fragment,{children:[e,(0,r.jsx)("wbr",{})]},t):e):o})}),c]})}function cv(e){let{title:t,catalogs:n,target:i}=e;return(0,r.jsxs)("div",{className:"config-add-source-heading",children:[(0,r.jsxs)("div",{className:"config-add-source-title-row",children:[(0,r.jsx)(cd,{children:t}),(0,r.jsx)("span",{className:"config-add-source-catalogs",children:n.map(e=>(0,r.jsxs)("a",{href:e.href,target:"_blank",rel:"noopener noreferrer",className:"config-add-source-catalog",children:[e.icon,e.label]},e.href))})]}),i]})}function cb(e){let{title:t,catalogs:n,target:s,inputLabel:o,inputId:a,placeholder:l,value:c,canSubmit:d,normalizeValue:u,onValueChange:p,onSubmit:h,examplesLabel:f,examples:m,error:g,multiline:x=!1,children:v}=e,b=(0,i.useRef)(null),y=(0,i.useRef)(null);(0,i.useEffect)(()=>{x?window.matchMedia?.("(pointer: coarse)").matches||y.current?.focus():b.current?.focus()},[x]);let j=e=>{if(!u)return;let t=e.clipboardData.getData("text"),n=u(t);n!==t&&(e.preventDefault(),p(n))};return(0,r.jsxs)(co,{className:"is-fill",children:[(0,r.jsx)(cv,{title:t,catalogs:n,target:s}),(0,r.jsx)(cp,{label:o,children:x?(0,r.jsx)("textarea",{id:a,ref:y,value:c,"aria-label":o,className:"config-add-source-input is-multiline",placeholder:l,rows:5,spellCheck:!1,autoCapitalize:"off",autoCorrect:"off",onChange:e=>p(e.target.value),onPaste:j,onBlur:e=>{u&&p(u(e.currentTarget.value))},onKeyDown:e=>{"Enter"===e.key&&(e.metaKey||e.ctrlKey)&&e.nativeEvent?.isComposing!==!0&&229!==e.keyCode&&(e.preventDefault(),d&&h())}}):(0,r.jsx)("input",{id:a,ref:b,value:c,"aria-label":o,className:"config-add-source-input",placeholder:l,onChange:e=>p(e.target.value),onPaste:j,onBlur:e=>{u&&p(u(e.currentTarget.value))},onKeyDown:e=>{"Enter"===e.key&&d&&h()}})}),v,m.length>0&&(0,r.jsxs)("div",{className:"config-add-source-examples",children:[(0,r.jsx)("div",{className:"config-add-source-examples-label",children:f}),(0,r.jsx)("div",{className:"config-add-source-example-list",children:m.map(e=>"string"==typeof e?(0,r.jsx)("button",{type:"button",className:"config-add-source-example",onClick:()=>p(e),children:e},e):(0,r.jsxs)("button",{type:"button",className:"config-add-source-example has-label",onClick:()=>p(e.value),children:[(0,r.jsx)("span",{className:"config-add-source-example-label",children:e.label}),(0,r.jsx)("span",{className:"config-add-source-example-value",children:e.value})]},e.value))})]}),g&&(0,r.jsx)("div",{role:"alert",className:"config-add-source-error",children:g})]})}function cy(e){let{id:t,action:n,children:i}=e;return(0,r.jsxs)("div",{id:t,role:"status",className:`config-notice${n?" has-action":""}`,children:[n?(0,r.jsx)("span",{className:"config-notice-text",children:i}):i,n]})}function cj(e){let{id:t,message:n,trustLabel:i,trusting:s=!1,onTrust:o}=e;return(0,r.jsx)(cy,{id:t,action:o&&i?(0,r.jsx)(cN,{size:"small",onClick:o,disabled:s,children:i}):void 0,children:n})}function ck(e){let{children:t}=e;return(0,r.jsx)("div",{className:"config-empty-state",children:t})}function cw(e){let{children:t,style:n}=e;return(0,r.jsx)("div",{className:"config-detail",style:n,children:t})}function cS(e){let{status:t,children:n}=e;return(0,r.jsxs)("footer",{className:"config-footer",children:[(0,r.jsx)("div",{className:"config-footer-status",children:t}),(0,r.jsx)("div",{className:"config-footer-actions",children:n})]})}function cC(e){let{summary:t,tone:n="default",details:i}=e,s=`config-footer-status-summary${"default"===n?"":` is-${n}`}`;return i?.length?(0,r.jsxs)("details",{className:"config-footer-status-details",children:[(0,r.jsx)("summary",{className:s,children:t}),(0,r.jsx)("ul",{className:"config-footer-status-list",children:i.map((e,t)=>(0,r.jsx)("li",{children:e},t))})]}):(0,r.jsx)("span",{className:s,children:t})}function cN(e){let{variant:t="secondary",size:n="default",className:i,children:s,...o}=e;return(0,r.jsx)("button",{type:"button",...o,className:["config-button",`config-button-${t}`,`config-button-${n}`,i].filter(Boolean).join(" "),children:s})}function cE(e){let{checked:t,disabled:n=!1,loading:i=!1,size:s="default",label:o,describedBy:a,onChange:l}=e,c=n||i;return(0,r.jsx)("button",{type:"button",role:"switch","aria-checked":t,"aria-busy":i||void 0,"aria-label":o,"aria-describedby":a,title:o,disabled:c,className:`config-switch${"small"===s?" is-small":""}${i?" is-loading":""}`,onClick:()=>l(!t),children:(0,r.jsx)("span",{className:"config-switch-knob","aria-hidden":"true"})})}function c$(e){let{active:t=!1,children:n,className:i,...s}=e;return(0,r.jsx)("div",{className:"config-list-action",children:(0,r.jsxs)("button",{type:"button",...s,"aria-current":t?"page":void 0,className:["config-list-action-button",i].filter(Boolean).join(" "),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",children:(0,r.jsx)("path",{d:"M12 5v14M5 12h14"})}),n]})})}function cM(e){let{active:t,color:n}=e;return(0,r.jsx)("span",{"aria-hidden":"true",className:`config-status-dot${t?" is-active":!1===t?" is-inactive":""}`,style:n?{backgroundColor:n}:void 0})}function cI(e,t){let n=t.filter(e=>!e.enabled).map(e=>e.ref),r=t.filter(e=>e.enabled).map(e=>e.ref),i=e?.editable===!0;return{enableRefs:n,disableRefs:r,canEnable:i&&n.length>0,canDisable:i&&r.length>0&&(e?.enabledTotal??0)-r.length>=1}}function cT(e,t){let n=cI(e,t.models),r=t.models.length>0&&t.enabledCount===t.models.length,i=r?!n.canDisable:!n.canEnable;return{checked:r,blocked:i,reason:i?e?.editable?"last-model":"project-scope":null}}function cR(e,t){return t.enabled&&(e?.enabledTotal??0)<=1}function cL(e,t){return e?.providers.find(e=>e.id===t)}function cA(e){let{modelName:t,effective:n,value:i,onChange:s,disabled:o=!1,describedBy:a}=e,{t:l}=(0,eG.s)(),c=void 0!==i&&void 0===l0(i);return(0,r.jsx)("input",{type:"text",inputMode:"numeric",className:"model-context-input",value:void 0===i?"":String(i),placeholder:void 0===n?void 0:String(n),title:l("models.contextWindow"),"aria-label":l("models.contextForModel",{model:t}),"aria-invalid":c||void 0,"aria-describedby":a,disabled:o,onChange:e=>s(""===e.target.value.trim()?void 0:e.target.value)})}let cP={"last-model":"models.enabledLastModel","project-scope":"models.enabledProjectScope"};function cz(e){let{controller:t}=e,{t:n}=(0,eG.s)(),{view:i,pending:s}=t;if(!i)return null;let o=!i.allEnabled,a=i.stalePatterns.length;return o||0!==a?(0,r.jsxs)("div",{className:"enabled-models-banner",children:[(0,r.jsxs)("span",{className:"enabled-models-banner-text",...a>0?{title:n("models.enabledStaleHint")}:{},children:[(0,r.jsx)("code",{className:"enabled-models-banner-key",title:i.settingsPath,children:i.settingsPath}),(0,r.jsxs)("code",{className:"enabled-models-banner-facts",children:[`\xb7 enabledModels ${i.enabledTotal}/${i.availableTotal}`,a>0&&` \xb7 ${n("models.enabledStale",{count:a})}`]})]}),i.editable&&a>0&&(0,r.jsx)(cN,{size:"small",onClick:t.pruneStale,disabled:null!==s,title:n("models.enabledPruneHint"),children:n("models.enabledPrune")}),i.editable&&o&&(0,r.jsx)(cN,{size:"small",onClick:t.clearScope,disabled:null!==s,title:n("models.enabledClearHint"),children:n("models.enabledClear")})]}):null}function cW(e){let{providerId:t,controller:n,noteId:i}=e,{t:s}=(0,eG.s)(),{view:o,loading:a,pending:l,failure:c}=n,d=cL(o,t),u=c?c.messageKey?s(c.messageKey):c.message:null,p=cO(n,t)?i:void 0;if(a&&!o)return null;if(!d)return(0,r.jsx)(cE,{checked:!1,disabled:!0,label:s("models.enabledProviderToggle",{provider:t}),describedBy:p,onChange:()=>{}});let h=cT(o,d);return(0,r.jsxs)(r.Fragment,{children:[u&&(0,r.jsx)("span",{className:"enabled-models-switch-error",children:u}),(0,r.jsx)(cE,{checked:h.checked,loading:l===`provider:${d.id}`,disabled:null!==l||h.blocked,label:s("models.enabledProviderToggle",{provider:d.name}),describedBy:p,onChange:e=>n.setProvider(d.id,e)})]})}function cO(e,t){let{view:n,loading:r}=e;if(r&&!n)return null;let i=cL(n,t);if(!i)return"models.enabledCustomEmpty";let{reason:s}=cT(n,i);return s?cP[s]:null}function cF(e){let{providerId:t,controller:n,id:i}=e,{t:s}=(0,eG.s)(),o=cO(n,t);return o?(0,r.jsx)("div",{id:i,className:"config-detail-heading-note",children:s(o)}):null}function cD(e){var t;let n,{providerId:s,controller:o,contextSettings:a}=e,{t:l}=(0,eG.s)(),[c,d]=(0,i.useState)(""),{view:u,loading:p,pending:h,failure:f}=o,m=cL(u,s),g=function(e,t){let[n,r]=(0,i.useState)(!1),[s,o]=(0,i.useState)(null);return(0,i.useEffect)(()=>o(null),[e]),{refreshing:n,note:s,refresh:(0,i.useCallback)(()=>{r(!0),o(null),(async()=>{try{let n=await fetch("/api/models/refresh",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({provider:e})}),r=await n.json();if(!n.ok||r.error)throw Error(r.error??`HTTP ${n.status}`);"offline"===r.reason?o("models.catalogOffline"):r.completed?o(r.changed?"models.catalogUpdated":"models.catalogUnchanged"):o("models.catalogUnreachable"),r.changed&&t()}catch{o("models.catalogUnreachable")}finally{r(!1)}})()},[e,t])}}(s,o.refresh),x=(0,i.useId)();if((0,i.useEffect)(()=>d(""),[s]),p&&!u)return(0,r.jsx)("div",{className:"enabled-models-empty",children:l("agents.modelsLoading")});if(!m)return f?.message?(0,r.jsx)("div",{className:"enabled-models-error",children:f.message}):(0,r.jsx)("div",{className:"enabled-models-empty",children:l("models.enabledUnavailable")});let v=(t=m.models,(n=c.trim().toLowerCase())?t.filter(e=>e.id.toLowerCase().includes(n)||e.name.toLowerCase().includes(n)):[...t]),b=cI(u,v),y=v.length!==m.models.length,j=null!==h,k=`provider:${m.id}`,w=u?.editable===!0,S=`${x}-scope`,C=`${x}-last`,N=`${x}-context`,E=w&&!b.canDisable&&b.disableRefs.length>0,$=E||w&&v.some(e=>cR(u,e)),M=(e,t)=>{y?o.setModels(k,t,e):o.setProvider(m.id,e)};return(0,r.jsxs)("div",{className:"enabled-models-section",children:[(0,r.jsxs)("div",{className:"enabled-models-header",children:[(0,r.jsx)("span",{className:"enabled-models-title",children:l("models.enabledSection")}),(0,r.jsx)("span",{className:"enabled-models-count",children:l("models.enabledCount",{enabled:m.enabledCount,total:m.models.length})}),(0,r.jsx)(cN,{size:"small",disabled:j||!b.canEnable,"aria-describedby":w?void 0:S,onClick:()=>M(!0,b.enableRefs),children:y?l("models.enableShown"):l("models.enableAll")}),(0,r.jsx)(cN,{size:"small",disabled:j||!b.canDisable,"aria-describedby":w?E?C:void 0:S,onClick:()=>M(!1,b.disableRefs),children:y?l("models.disableShown"):l("models.disableAll")}),(0,r.jsx)(cN,{size:"small",disabled:j||g.refreshing,title:l("models.refreshCatalogHint"),onClick:g.refresh,children:g.refreshing?l("models.refreshingCatalog"):l("models.refreshCatalog")})]}),g.note&&(0,r.jsx)("div",{className:"enabled-models-note",children:l(g.note)}),!w&&(0,r.jsx)("div",{id:S,className:"enabled-models-note",children:l("models.enabledProjectScope")}),$&&(0,r.jsx)("div",{id:C,className:"enabled-models-note",children:l("models.enabledLastModel")}),f&&(0,r.jsx)("div",{className:"enabled-models-error",children:f.messageKey?l(f.messageKey):f.message}),m.models.length>8&&(0,r.jsx)("input",{value:c,onChange:e=>d(e.target.value),placeholder:l("models.enabledFilterPlaceholder",{count:m.models.length}),"aria-label":l("models.enabledFilter"),className:"enabled-models-filter"}),a&&(0,r.jsx)("div",{id:N,className:"enabled-models-note",children:l("models.contextOverrideHelp")}),(0,r.jsx)("div",{className:"enabled-models-list",children:0===v.length?(0,r.jsx)("div",{className:"enabled-models-empty",children:l("models.enabledNoMatches")}):v.map(e=>{let t=cR(u,e),n=a?.overrides?.[e.id],i=n&&"object"==typeof n&&!Array.isArray(n)?n.contextWindow:void 0;return(0,r.jsxs)("div",{className:"enabled-models-row",children:[(0,r.jsxs)("span",{className:"enabled-models-row-text",children:[(0,r.jsx)("span",{className:"enabled-models-row-name",children:e.name}),(0,r.jsx)("code",{className:"enabled-models-row-id",children:e.id})]}),e.thinkingPin&&(0,r.jsx)("span",{className:"enabled-models-pin",title:l("models.enabledPinHint"),children:e.thinkingPin}),a&&(0,r.jsx)(cA,{modelName:e.name,effective:e.contextWindow,value:i,disabled:a.disabled,describedBy:N,onChange:t=>a.onChange(e.id,t)}),(0,r.jsx)(cE,{checked:e.enabled,loading:h===e.ref,disabled:j||!u?.editable||t,label:l("models.enabledToggle",{model:e.name}),describedBy:w?t?C:void 0:S,onChange:t=>o.setModels(e.ref,[e.ref],t)})]},e.ref)})})]})}function cB(e){let{message:t,hint:n,value:i,placeholder:s,submitLabel:o,inputLabel:a,disabled:l=!1,plainEnterSubmits:c=!0,inputRef:d,onValueChange:u,onSubmit:p}=e,h=!l&&i.trim().length>0;return(0,r.jsxs)("div",{className:"oauth-paste-panel",children:[(0,r.jsx)("p",{className:"oauth-paste-message",children:t}),n&&(0,r.jsx)("p",{className:"oauth-paste-hint",children:n}),(0,r.jsxs)("div",{className:"oauth-paste-row",children:[(0,r.jsx)("input",{ref:d,value:i,className:"oauth-paste-input",placeholder:s,"aria-label":a,disabled:l||void 0,onChange:e=>u(e.target.value),onKeyDown:e=>{var t;t={key:e.key,metaKey:e.metaKey,ctrlKey:e.ctrlKey,isComposing:e.nativeEvent.isComposing,keyCode:e.keyCode},"Enter"===t.key&&!t.isComposing&&229!==t.keyCode&&(c||t.metaKey||t.ctrlKey)&&h&&p()}}),(0,r.jsx)("button",{type:"button",className:"oauth-paste-submit",onClick:p,disabled:!h,children:o})]})]})}let c_={anthropic:{symbol:"anthropic",color:!1},openai:{symbol:"openai",color:!1},"openai-codex":{symbol:"openai",color:!1},google:{symbol:"google",color:!0},"google-vertex":{symbol:"google",color:!0},"ant-ling":{symbol:"antgroup",color:!0},deepseek:{symbol:"deepseek",color:!0},groq:{symbol:"groq",color:!1},mistral:{symbol:"mistral",color:!0},moonshotai:{symbol:"moonshot",color:!1},"moonshotai-cn":{symbol:"moonshot",color:!1},moonshot:{symbol:"moonshot",color:!1},minimax:{symbol:"minimax",color:!0},"minimax-cn":{symbol:"minimax",color:!0},fireworks:{symbol:"fireworks",color:!0},huggingface:{symbol:"huggingface",color:!0},cerebras:{symbol:"cerebras",color:!0},openrouter:{symbol:"openrouter",color:!1},xai:{symbol:"xai",color:!1},"cloudflare-ai-gateway":{symbol:"cloudflare",color:!0},"cloudflare-workers-ai":{symbol:"cloudflare",color:!0},"vercel-ai-gateway":{symbol:"vercel",color:!1},"github-copilot":{symbol:"githubcopilot",color:!1},"amazon-bedrock":{symbol:"aws",color:!0},azure:{symbol:"azure",color:!0},"azure-openai-responses":{symbol:"azure",color:!0},"kimi-coding":{symbol:"kimi",color:!0},nvidia:{symbol:"nvidia",color:!0},opencode:{symbol:"opencode",color:!1},"opencode-go":{symbol:"opencode",color:!1},qwen:{symbol:"qwen",color:!0},xiaomi:{symbol:"xiaomimimo",color:!1},"xiaomi-token-plan-ams":{symbol:"xiaomimimo",color:!1},"xiaomi-token-plan-cn":{symbol:"xiaomimimo",color:!1},"xiaomi-token-plan-sgp":{symbol:"xiaomimimo",color:!1},zai:{symbol:"zai",color:!1},"zai-coding-cn":{symbol:"zai",color:!1},zhipu:{symbol:"zhipu",color:!0},cohere:{symbol:"cohere",color:!0},perplexity:{symbol:"perplexity",color:!0},together:{symbol:"together",color:!0},grok:{symbol:"grok",color:!1}};function cH(e){let{id:t,size:n}=e,i=c_[t];if(i)return(0,r.jsx)("svg",{"aria-hidden":"true",width:n,height:n,viewBox:"0 0 24 24",fill:i.color?void 0:"currentColor",style:{color:"var(--text-muted)",flexShrink:0},children:(0,r.jsx)("use",{href:`/provider-icons.svg#${i.symbol}`})});let s=t.split(/[-_]/).filter(Boolean).slice(0,2).map(e=>e[0]).join("").toUpperCase()||"?";return(0,r.jsx)("span",{"aria-hidden":"true",style:{width:n,height:n,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*n)),fontWeight:700,lineHeight:1},children:s})}let cU=["openai-codex","deepseek","openrouter","moonshotai","moonshotai-cn","minimax","minimax-cn","vercel-ai-gateway","opencode-go","kimi-coding"],cK="pi-web:provider-usage:";function cq(e){let{providerId:t,enabled:n}=e;return cU.includes(t)?(0,r.jsx)(cZ,{providerId:t,enabled:n}):null}function cZ(e){let{providerId:t,enabled:n}=e,[s,o]=(0,i.useState)(null),[a,l]=(0,i.useState)(!1),[c,d]=(0,i.useState)(null),[u,p]=(0,i.useState)(!1),h=(0,i.useRef)(null),{locale:f,t:m}=(0,eG.s)();(0,i.useEffect)(()=>{h.current&&clearTimeout(h.current),p(!1),o(null);try{let e=localStorage.getItem(`${cK}${t}`);if(e){let t=JSON.parse(e);t?.status==="ready"&&t.report&&Array.isArray(t.report.buckets)&&Array.isArray(t.report.metrics)&&o(t)}}catch{try{localStorage.removeItem(`${cK}${t}`)}catch{}}return d(null),()=>{h.current&&clearTimeout(h.current)}},[t]);let g=(0,i.useCallback)(async()=>{l(!0),d(null);try{let e=await fetch("/api/provider-usage/query",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({providerId:t})}),n=await e.json();if(!e.ok)throw Error(n.error??`HTTP ${e.status}`);if("ready"===n.status){o(n);try{localStorage.setItem(`${cK}${t}`,JSON.stringify(n))}catch{}p(!0),h.current&&clearTimeout(h.current),h.current=setTimeout(()=>p(!1),2e3)}else d(n.message??m("providerUsage.queryFailed"))}catch(e){d(e instanceof Error?e.message:m("providerUsage.queryFailed"))}finally{l(!1)}},[t,m]),x=s?.status==="ready"?s.report:void 0;return(0,r.jsxs)("section",{style:{paddingTop:10,display:"flex",flexDirection:"column",gap:10},children:[(0,r.jsxs)("div",{style:{display:"flex",alignItems:"center",flexWrap:"wrap",gap:8},children:[(0,r.jsx)("span",{style:{fontSize:13,color:"var(--text)",fontWeight:600,lineHeight:1.35},children:m("providerUsage.usage")}),(0,r.jsx)("button",{type:"button",onClick:g,disabled:!n||a,title:m(a?"providerUsage.refreshing":"providerUsage.refresh"),"aria-label":m(a?"providerUsage.refreshing":"providerUsage.refresh"),style:{position:"relative",display:"flex",alignItems:"center",justifyContent:"center",width:32,height:30,padding:0,background:"none",border:"none",color:u?"#4ade80":"var(--text-dim)",cursor:n&&!a?"pointer":"default",borderRadius:5,flexShrink:0,opacity:n?1:.6,transition:"color 0.3s"},children:u?(0,r.jsx)("svg",{width:"14",height:"14",viewBox:"0 0 24 24",fill:"none",stroke:"#4ade80",strokeWidth:"2.5",strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":"true",children:(0,r.jsx)("polyline",{points:"20 6 9 17 4 12"})}):(0,r.jsxs)("svg",{width:"14",height:"14",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",style:a?{animation:"spin 0.8s linear infinite"}:void 0,"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"})]})}),x&&(0,r.jsx)("span",{title:new Date(x.capturedAt).toLocaleString(f),style:{fontSize:11,color:"var(--text-dim)",whiteSpace:"nowrap"},children:m("providerUsage.updated",{time:(0,nA.ob)(x.capturedAt,f)})})]}),!x&&!c&&(0,r.jsx)("span",{style:{fontSize:12,color:"var(--text-dim)"},children:m("providerUsage.notQueried")}),c&&(0,r.jsx)("span",{style:{fontSize:12,color:"#f87171"},children:c}),x&&(0,r.jsxs)("div",{style:{display:"grid",gridTemplateColumns:"180px minmax(0, 1fr)",columnGap:14,rowGap:8,alignItems:"baseline",minWidth:0,width:"min(100%, 420px)",maxWidth:"100%",fontSize:12},children:[x.buckets.map(e=>(0,r.jsxs)("div",{style:{display:"contents"},children:[(0,r.jsx)("span",{style:{color:"var(--text-muted)",fontFamily:"var(--font-mono)",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:e.groupLabel?`${e.groupLabel} / ${e.label}`:e.label}),(0,r.jsx)("span",{style:{color:"var(--text)",fontFamily:"var(--font-mono)",whiteSpace:"nowrap",overflow:"hidden",textOverflow:"ellipsis"},children:function(e,t){if("percent"===e.unit&&void 0!==e.remaining){let t=e.resetsAt?` / ${new Date(1e3*e.resetsAt).toLocaleString(void 0,{month:"short",day:"numeric",hour:"2-digit",minute:"2-digit"})}`:"";return`${Math.round(e.remaining)}%${t}`}return"currency"===e.unit?`${"CNY"===e.currency?"CNY ":"$"}${cV(e.remaining??e.limit)}`:void 0!==e.remaining&&void 0!==e.limit?`${cV(e.remaining)} / ${cV(e.limit)}`:e.period??t}(e,m("providerUsage.available"))})]},e.id)),x.metrics.map(e=>{var t;return(0,r.jsxs)("div",{style:{display:"contents"},children:[(0,r.jsx)("span",{style:{color:"var(--text-muted)",fontFamily:"var(--font-mono)",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:e.label}),(0,r.jsx)("span",{style:{color:"var(--text)",fontFamily:"var(--font-mono)",whiteSpace:"nowrap",overflow:"hidden",textOverflow:"ellipsis"},children:"currency"===(t=e).unit?`${"CNY"===t.currency?"CNY ":"$"}${t.value}`:String(t.value)})]},e.id)})]})]})}function cV(e){return void 0===e?"-":Number.isInteger(e)?String(e):e.toFixed(2)}function cJ(){let e=lY("models");if(!e)return null;try{let t=JSON.parse(e);if(null===t||"object"!=typeof t)return null;if("provider"===t.type&&"string"==typeof t.name)return{type:"provider",name:t.name};if("model"===t.type&&"string"==typeof t.providerName&&"number"==typeof t.index&&Number.isInteger(t.index)&&t.index>=0)return{type:"model",providerName:t.providerName,index:t.index};if(("oauth"===t.type||"apikey"===t.type)&&"string"==typeof t.providerId)return{type:t.type,providerId:t.providerId}}catch{}return null}let cY=["openai-completions","openai-responses","anthropic-messages","google-generative-ai"];function cG(e){let{label:t,children:n}=e;return(0,r.jsx)(cp,{label:t,children:n})}let cX={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 cQ(e){let{value:t,onChange:n,placeholder:i,mono:s}=e;return(0,r.jsx)("input",{value:t,onChange:e=>n(e.target.value),placeholder:i,style:{...cX,fontFamily:s?"var(--font-mono)":"inherit"}})}function c0(e){let{value:t,onChange:n,placeholder:s,mono:o,onKeyDown:a,autoComplete:l="off",spellCheck:c=!1,style:d}=e,[u,p]=(0,i.useState)(!1),{t:h}=(0,eG.s)();return(0,i.useEffect)(()=>{t||p(!1)},[t]),(0,r.jsxs)("div",{style:{position:"relative",width:"100%",...d},children:[(0,r.jsx)("input",{type:u?"text":"password",value:t,onChange:e=>n(e.target.value),onKeyDown:a,placeholder:s,style:{...cX,paddingRight:34,fontFamily:o?"var(--font-mono)":"inherit"},autoComplete:l,spellCheck:c}),(0,r.jsx)("button",{type:"button",onClick:()=>p(e=>!e),"aria-label":h(u?"i18n.hideDetails":"i18n.showDetails"),title:h(u?"i18n.hideDetails":"i18n.showDetails"),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 c1(e){let{value:t,onChange:n,placeholder:i}=e;return(0,r.jsx)("input",{type:"number",value:t,onChange:e=>n(e.target.value),placeholder:i,style:cX})}function c2(e){let{value:t,onChange:n,options:i,required:s}=e,{t:o}=(0,eG.s)();return(0,r.jsxs)("select",{value:t,onChange:e=>n(e.target.value),style:{...cX,color:t?"var(--text)":"var(--text-dim)"},children:[!s&&(0,r.jsxs)("option",{value:"",children:["— ",o("i18n.default")," / none —"]}),i.map(e=>(0,r.jsx)("option",{value:e,children:e},e))]})}function c4(e){let{label:t,checked:n,onChange:i}=e;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:n,onChange:e=>i(e.target.checked),style:{width:13,height:13,accentColor:"var(--accent)",cursor:"pointer"}}),t]})}function c8(e){let{children:t}=e;return(0,r.jsx)(cu,{children:t})}function c3(e){let{name:t,editingName:n,provider:s,onChange:o,onEditingNameChange:a,onRename:l,onDelete:c,onAddModels:d,enabledModels:u}=e,{t:p}=(0,eG.s)(),[h,f]=(0,i.useState)({phase:"idle"}),[m,g]=(0,i.useState)(""),[x,v]=(0,i.useState)([]),b=(0,i.useRef)(0),y=(0,i.useRef)(null),j=(0,i.useId)(),k=(e,t)=>o({...s,[e]:t});(0,i.useEffect)(()=>{b.current+=1,f({phase:"idle"}),g(""),v([])},[t,s.baseUrl,s.api,s.apiKey]);let w=(0,i.useCallback)(async()=>{if("loading"===h.phase)return;let e=++b.current;f({phase:"loading"}),v([]);try{let n=await fetch("/api/models-config/discover",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({providerName:t,provider:{...s,models:void 0}})}),r=await n.json();if(e!==b.current)return;if(!n.ok||r.error||!r.models)return void f({phase:"error",message:r.error??`HTTP ${n.status}`});f({phase:"success",models:r.models,endpoint:r.endpoint??s.baseUrl??""})}catch(t){if(e!==b.current)return;f({phase:"error",message:t instanceof Error?t.message:String(t)})}},[h.phase,t,s]),S=new Set((s.models??[]).map(e=>e.id)),C="success"===h.phase?h.models:[],N=m.trim().toLocaleLowerCase(),E=C.filter(e=>!N||e.id.toLocaleLowerCase().includes(N)||e.name?.toLocaleLowerCase().includes(N)),$=E.slice(0,300),M=$.filter(e=>!S.has(e.id)).map(e=>e.id),I=x.filter(e=>!S.has(e)).length,T=M.length>0&&M.every(e=>x.includes(e)),R=!T&&M.some(e=>x.includes(e));return(0,i.useEffect)(()=>{y.current&&(y.current.indeterminate=R)},[R]),(0,r.jsxs)("div",{style:{display:"flex",flexDirection:"column",gap:16},children:[(0,r.jsxs)("div",{className:"config-detail-heading",children:[(0,r.jsxs)(ca,{children:[(0,r.jsx)(cl,{children:(0,r.jsx)(c8,{children:p("i18n.provider")})}),(0,r.jsxs)(cc,{children:[(0,r.jsx)(cW,{providerId:t,controller:u,noteId:j}),(0,r.jsx)(cN,{variant:"danger",size:"small",onClick:c,children:p("i18n.delete")})]})]}),(0,r.jsx)(cF,{providerId:t,controller:u,id:j})]}),(0,r.jsxs)(cG,{label:p("i18n.providerName"),children:[(0,r.jsx)(cQ,{value:n,onChange:a,placeholder:"provider-name",mono:!0}),n!==t&&n.trim()&&(0,r.jsx)("button",{onClick:()=>l(n.trim()),style:{marginTop:4,padding:"3px 10px",background:"var(--accent)",border:"none",borderRadius:4,color:"var(--accent-contrast)",cursor:"pointer",fontSize:11,alignSelf:"flex-start"},children:p("i18n.rename")})]}),(0,r.jsxs)(cG,{label:"Base URL",children:[(0,r.jsx)(cQ,{value:s.baseUrl??"",onChange:e=>k("baseUrl",e||void 0),placeholder:"https://api.example.com/v1",mono:!0}),(0,r.jsx)("span",{style:{fontSize:10,color:"var(--text-dim)",marginTop:2},children:"Leave empty for a built-in provider to use the endpoint pi ships"})]}),(0,r.jsxs)(cG,{label:"API Key",children:[(0,r.jsx)(c0,{value:s.apiKey??"",onChange:e=>k("apiKey",e||void 0),placeholder:"ENV_VAR_NAME, !shell-command, or literal key",mono:!0}),(0,r.jsxs)("span",{style:{fontSize:10,color:"var(--text-dim)",marginTop:2},children:["Prefix with ",(0,r.jsx)("code",{style:{fontFamily:"var(--font-mono)"},children:"!"})," to run a shell command, or use an env var name"]})]}),(0,r.jsx)(cG,{label:"API",children:(0,r.jsx)(c2,{value:s.api??"",onChange:e=>k("api",e||void 0),options:cY})}),(0,r.jsxs)(cG,{label:"Headers",children:[(0,r.jsx)(dt,{headers:s.headers,onChange:e=>k("headers",e)}),(0,r.jsx)("span",{style:{fontSize:10,color:"var(--text-dim)",marginTop:2},children:"Added to every request from this provider (e.g. User-Agent). Useful for gateways with bot detection."})]}),(0,r.jsxs)("div",{style:{borderTop:"1px solid var(--border)",paddingTop:14,display:"flex",flexDirection:"column",gap:10},children:["success"!==h.phase&&(0,r.jsx)("button",{onClick:w,disabled:"loading"===h.phase,style:{alignSelf:"flex-start",height:30,padding:"0 12px",border:"1px solid var(--border)",borderRadius:5,background:"var(--bg-panel)",color:"loading"===h.phase?"var(--text-dim)":"var(--text-muted)",cursor:"loading"===h.phase?"not-allowed":"pointer",fontSize:11},children:"loading"===h.phase?p("models.discoveryFetching"):p("models.discoveryFetch")}),"error"===h.phase&&(0,r.jsx)("div",{style:{padding:"7px 9px",border:"1px solid rgba(239,68,68,0.3)",borderRadius:5,color:"#ef4444",fontSize:11,lineHeight:1.4},children:h.message}),"success"===h.phase&&(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)("input",{value:m,onChange:e=>g(e.target.value),placeholder:p("models.discoveryFilterPlaceholder",{count:h.models.length}),"aria-label":p("models.discoveryFilter"),style:{...cX,width:"100%",minWidth:0}}),(0,r.jsxs)("div",{style:{maxHeight:220,overflowY:"auto",border:"1px solid var(--border)",borderRadius:6,background:"var(--bg-panel)"},children:[(0,r.jsxs)("label",{style:{minHeight:32,padding:"5px 9px",display:"flex",alignItems:"center",gap:8,position:"sticky",top:0,zIndex:1,borderBottom:"1px solid var(--border)",background:"var(--bg)",cursor:M.length?"pointer":"default",color:"var(--text-muted)",fontSize:10,fontWeight:600},children:[(0,r.jsx)("input",{ref:y,type:"checkbox",checked:T,disabled:0===M.length,onChange:()=>{let e=new Set(M);v(t=>T?t.filter(t=>!e.has(t)):Array.from(new Set([...t,...M])))},style:{width:13,height:13,accentColor:"var(--accent)",flexShrink:0}}),p("models.discoverySelectShown")]}),0===$.length?(0,r.jsx)("div",{style:{padding:12,color:"var(--text-dim)",fontSize:11},children:p("models.discoveryNoMatches")}):$.map((e,t)=>{let n=S.has(e.id),i=x.includes(e.id);return(0,r.jsxs)("label",{style:{minHeight:36,padding:"6px 9px",display:"flex",alignItems:"center",gap:8,borderTop:0===t?"none":"1px solid var(--border)",cursor:n?"default":"pointer",opacity:n?.65:1},children:[(0,r.jsx)("input",{type:"checkbox",checked:i||n,disabled:n,onChange:()=>{var t;return t=e.id,void v(e=>e.includes(t)?e.filter(e=>e!==t):[...e,t])},style:{width:13,height:13,accentColor:"var(--accent)",flexShrink:0}}),(0,r.jsxs)("span",{style:{minWidth:0,flex:1},children:[(0,r.jsx)("span",{style:{display:"block",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",color:"var(--text)",fontSize:11},children:e.name??e.id}),e.name&&(0,r.jsx)("code",{style:{display:"block",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",color:"var(--text-dim)",fontSize:10,fontFamily:"var(--font-mono)"},children:e.id})]}),n&&(0,r.jsx)("span",{style:{color:"var(--text-dim)",fontSize:10},children:p("models.discoveryAdded")})]},e.id)})]}),(0,r.jsxs)("div",{style:{display:"flex",alignItems:"center",justifyContent:"space-between",gap:10},children:[(0,r.jsx)("span",{title:h.endpoint,style:{minWidth:0,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",color:"var(--text-dim)",fontSize:10},children:E.length>$.length?p("models.discoveryShowing",{shown:$.length,total:E.length}):p("models.discoveryFetched",{count:h.models.length})}),(0,r.jsx)("button",{onClick:()=>{if("success"!==h.phase)return;let e=new Set(x),t=h.models.filter(t=>e.has(t.id)&&!S.has(t.id));0!==t.length&&(d(t),v([]))},disabled:0===I,style:{height:28,padding:"0 11px",border:"none",borderRadius:5,background:I?"var(--accent)":"var(--bg-panel)",color:I?"var(--accent-contrast)":"var(--text-dim)",cursor:I?"pointer":"not-allowed",fontSize:11,fontWeight:600,whiteSpace:"nowrap"},children:I?p("models.discoveryAddSelectedCount",{count:I}):p("models.discoveryAddSelected")})]})]})]})]})}let c6=["off","minimal","low","medium","high","xhigh","max"],c5={off:"var(--text-dim)",minimal:"#6b7280",low:"#60a5fa",medium:"#a78bfa",high:"#f472b6",xhigh:"#fb923c",max:"#ef4444"};function c9(e){let{value:t,onChange:n}=e,i=t??{},s=(e,t)=>{let r={...i};"omit"===t?delete r[e]:r[e]=t,n(Object.keys(r).length?r:void 0)};return(0,r.jsx)("div",{style:{display:"flex",flexDirection:"column",gap:2},children:c6.map(e=>{let t=i[e],n=e in i?null===t?"null":"string":"omit",o="string"==typeof t?t:"",a=c5[e],l={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:"var(--accent-contrast)",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"===n?.3:1}}),(0,r.jsx)("span",{style:{fontSize:11,fontFamily:"var(--font-mono)",color:"null"===n?"var(--text-dim)":"var(--text-muted)",textDecoration:"null"===n?"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:()=>s(e,"omit"),style:{...l,..."omit"===n?c:{}},children:"Default"}),(0,r.jsx)("button",{onClick:()=>s(e,null),style:{...l,borderLeft:"1px solid var(--border)",..."null"===n?{background:"#ef4444",color:"#fff",fontWeight:600}:{}},children:"Disabled"})]}),(0,r.jsxs)("div",{style:{display:"flex",borderRadius:5,border:`1px solid ${"string"===n?"var(--accent)":"var(--border)"}`,overflow:"hidden",transition:"border-color 0.1s"},children:[(0,r.jsx)("button",{onClick:()=>s(e,o||e),style:{...l,..."string"===n?c:{},borderRight:"1px solid var(--border)",flexShrink:0},children:"Custom"}),(0,r.jsx)("input",{value:o,onChange:t=>s(e,t.target.value),onFocus:()=>{"string"!==n&&s(e,o||e)},placeholder:e,maxLength:10,style:{width:"12ch",background:"string"===n?"var(--bg)":"var(--bg-panel)",border:"none",outline:"none",color:"string"===n?"var(--text)":"var(--text-dim)",fontFamily:"var(--font-mono)",fontSize:11,padding:"4px 7px",transition:"background 0.1s, color 0.1s"}})]})]},e)})})}let c7={thinkingFormat:"deepseek",requiresReasoningContentOnAssistantMessages:!0};function de(e){return e.compat?.thinkingFormat==="deepseek"}function dt(e){let{headers:t,onChange:n}=e,[s,o]=(0,i.useState)(()=>Object.entries(t??{}).map((e,t)=>{let[n,r]=e;return{id:t,name:n,value:r}})),a=(0,i.useRef)(s.length),l=e=>{o(e),n(function(e){let t={};for(let n of e){let e=n.name.trim();e&&(t[e]=n.value)}return Object.keys(t).length?t:void 0}(e))},c=(e,t)=>{l(s.map(n=>n.id===e?{...n,...t}:n))},d={padding:"6px 9px",background:"none",border:"1px solid rgba(239,68,68,0.3)",borderRadius:4,color:"#ef4444",cursor:"pointer",fontSize:11,lineHeight:1};return(0,r.jsxs)("div",{style:{display:"flex",flexDirection:"column",gap:6},children:[s.map(e=>(0,r.jsxs)("div",{style:{display:"flex",gap:6},children:[(0,r.jsx)("input",{value:e.name,onChange:t=>c(e.id,{name:t.target.value}),placeholder:"Header-Name",style:{...cX,fontFamily:"var(--font-mono)",flex:1}}),(0,r.jsx)("input",{value:e.value,onChange:t=>c(e.id,{value:t.target.value}),placeholder:"value",style:{...cX,fontFamily:"var(--font-mono)",flex:1}}),(0,r.jsx)("button",{onClick:()=>{var t;return t=e.id,void l(s.filter(e=>e.id!==t))},style:d,children:"✕"})]},e.id)),(0,r.jsx)("button",{onClick:()=>o(e=>[...e,{id:a.current++,name:"",value:""}]),style:{padding:"5px 9px",background:"none",border:"1px solid var(--border)",borderRadius:4,color:"var(--text-muted)",cursor:"pointer",fontSize:11,display:"inline-flex",alignItems:"center",justifyContent:"center",gap:5,alignSelf:"flex-start"},children:"+ Add header"})]})}function dn(e){let{providerName:t,provider:n,model:s,onChange:o,onDelete:a}=e,[l,c]=(0,i.useState)({phase:"idle"}),{t:d}=(0,eG.s)(),[u,p]=(0,i.useState)({phase:"idle"}),[h,f]=(0,i.useState)(!1),[m,g]=(0,i.useState)(()=>l2(s.cost)),x=(0,i.useRef)(m),[v,b]=(0,i.useState)(!1),y=(0,i.useRef)(0),j=(0,i.useRef)(null),k=(0,i.useRef)(s.cost),w=(e,t)=>o({...s,[e]:t}),S=(()=>{if("idle"===l.phase)return null;if("testing"===l.phase)return d("i18n.testingModel");let e=[void 0!==l.latencyMs?`${l.latencyMs}ms`:null,void 0!==l.status?`HTTP ${l.status}`:null].filter(Boolean);return"success"===l.phase?[d("i18n.connected"),...e,l.responseText||null].filter(Boolean).join(" \xb7 "):[d("i18n.failed"),...e,l.message].filter(Boolean).join(" \xb7 ")})();(0,i.useEffect)(()=>{c({phase:"idle"})},[t,n.baseUrl,n.api,n.apiKey,s.id,s.api]),(0,i.useEffect)(()=>{y.current+=1,p({phase:"idle"}),j.current=null},[t,n.baseUrl,s.id]);let C=(0,i.useCallback)(async()=>{if(s.id.trim()&&"testing"!==l.phase){c({phase:"testing"});try{let e=await fetch("/api/models-config/test",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({providerName:t,provider:n,model:s})}),r=await e.json();if(!e.ok||!r.ok)return void c({phase:"error",message:r.error??`HTTP ${e.status}`,latencyMs:r.latencyMs,status:r.status});c({phase:"success",latencyMs:r.latencyMs,status:r.status,responseText:r.responseText})}catch(e){c({phase:"error",message:e instanceof Error?e.message:String(e)})}}},[s,n,t,l.phase]),N=(0,i.useCallback)(async()=>{let e=s.id.trim();if(!e||"loading"===u.phase)return;let r=++y.current;p({phase:"loading"});try{let i=new URLSearchParams({q:e,provider:t,limit:"50"});n.baseUrl?.trim()&&i.set("baseUrl",n.baseUrl.trim());let a=await fetch(`/api/models-config/catalog?${i}`),l=await a.json();if(r!==y.current)return;if(!a.ok||l.error||!l.recommendation)return void p({phase:"error",message:l.error??`HTTP ${a.status}`});let c=function(e,t){let n={...e},r=0;if(!e.name?.trim()&&t.name&&(n.name=t.name,r+=1),void 0===e.reasoning&&!0===t.reasoning&&(n.reasoning=!0,r+=1),!e.input?.length&&t.input?.length&&(n.input=[...t.input],r+=1),void 0===e.contextWindow&&void 0!==t.contextWindow&&(n.contextWindow=t.contextWindow,r+=1),void 0===e.maxTokens&&void 0!==t.maxTokens&&(n.maxTokens=t.maxTokens,r+=1),t.cost){let i={...e.cost??{}},s=0;for(let e of["input","output","cacheRead","cacheWrite"])void 0===i[e]&&void 0!==t.cost[e]&&(i[e]=t.cost[e],s+=1);let o=l4(l2(i));s>0&&o&&(n.cost={...i,...o},r+=s)}return{model:n,appliedCount:r}}(s,l.recommendation.preset);c.appliedCount>0&&(j.current=s,o(c.model)),f(!1),p({phase:"success",recommendation:l.recommendation,appliedCount:c.appliedCount})}catch(e){if(r!==y.current)return;p({phase:"error",message:e instanceof Error?e.message:String(e)})}},[u.phase,s,o,n.baseUrl,t]),E=(()=>{if("success"!==u.phase)return null;let{recommendation:e,appliedCount:n}=u,r=n>0?d("models.catalogFilled",{count:n}):d("models.catalogNoEmptyFields");if("unreliable"===e.price.status){let t="no-exact-match"===e.price.reason?d("models.catalogNoExactMatch"):d("models.catalogPriceUnreliable");return`${r} \xb7 ${t}`}let i="provider"===e.price.method?d("models.catalogPriceProvider",{provider:e.price.providerName??e.price.providerId??t}):"base-url"===e.price.method?d("models.catalogPriceBaseUrl",{provider:e.price.providerName??e.price.providerId??t}):d("models.catalogPriceConsensus",{support:e.price.support,total:e.price.total});return`${r} \xb7 ${i}`})(),$="error"===u.phase?u.message:E,M="error"===u.phase?"#ef4444":"success"===u.phase&&"unreliable"===u.recommendation.price.status?"#d97706":"var(--text-dim)",I=[{key:"input",label:d("models.costInput")},{key:"output",label:d("models.costOutput")},{key:"cacheRead",label:d("models.costCacheRead")},{key:"cacheWrite",label:d("models.costCacheWrite")}],T=new Set(Object.keys(s.compat??{})),R=0;de(s)&&(R+=1,T.delete("thinkingFormat"),T.delete("requiresReasoningContentOnAssistantMessages")),Object.prototype.hasOwnProperty.call(s.compat??{},"supportsDeveloperRole")&&(R+=1,T.delete("supportsDeveloperRole")),R+=T.size;let L=[s.api?`API: ${s.api}`:null,Object.keys(s.headers??{}).length?d("models.headersSummary",{count:Object.keys(s.headers??{}).length}):null,R?d("models.compatSummary",{count:R}):null,Object.keys(s.thinkingLevelMap??{}).length?d("models.thinkingSummary",{count:Object.keys(s.thinkingLevelMap??{}).length}):null].filter(e=>!!e),A=L.length?L.join(" \xb7 "):d("models.providerDefaults");return(0,r.jsxs)("div",{style:{display:"flex",flexDirection:"column",gap:16},children:[(0,r.jsxs)(ca,{children:[(0,r.jsx)(cl,{children:(0,r.jsx)(c8,{children:d("i18n.model")})}),(0,r.jsxs)(cc,{children:[S&&(0,r.jsx)("span",{title:S,style:{maxWidth:260,height:28,padding:"0 8px",border:`1px solid ${"error"===l.phase?"#fecaca":"success"===l.phase?"#bbf7d0":"var(--border)"}`,borderRadius:4,background:"error"===l.phase?"#fee2e2":"success"===l.phase?"#dcfce7":"#e5e7eb",color:"#111827",fontSize:11,display:"inline-flex",alignItems:"center",whiteSpace:"nowrap",overflow:"hidden",textOverflow:"ellipsis",boxSizing:"border-box"},children:S}),(0,r.jsxs)(cN,{size:"small",variant:"success"===l.phase?"primary":"secondary",onClick:"success"===l.phase?()=>c({phase:"idle"}):C,disabled:!s.id.trim()||"testing"===l.phase,title:d("i18n.testConnection"),className:"success"===l.phase?"is-success":void 0,children:["success"===l.phase&&(0,r.jsx)("svg",{width:"11",height:"11",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"})}),"testing"===l.phase?d("i18n.checking"):"success"===l.phase?d("common.ok"):d("i18n.test")]}),(0,r.jsx)(cN,{variant:"danger",size:"small",onClick:a,children:d("i18n.remove")})]})]}),(0,r.jsxs)("div",{style:{display:"grid",gridTemplateColumns:"1fr 1fr",gap:10},children:[(0,r.jsx)(cG,{label:"ID *",children:(0,r.jsx)(cQ,{value:s.id,onChange:e=>w("id",e),placeholder:"model-id",mono:!0})}),(0,r.jsx)(cG,{label:"Name",children:(0,r.jsx)(cQ,{value:s.name??"",onChange:e=>w("name",e||void 0),placeholder:"Display name"})})]}),(0,r.jsxs)("div",{style:{padding:"2px 0"},children:[(0,r.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:8,flexWrap:"wrap"},children:[(0,r.jsx)("button",{onClick:()=>void N(),disabled:!s.id.trim()||"loading"===u.phase,style:{height:28,padding:"0 10px",border:"1px solid var(--border)",borderRadius:5,background:"var(--bg-panel)",color:s.id.trim()&&"loading"!==u.phase?"var(--text-muted)":"var(--text-dim)",cursor:s.id.trim()&&"loading"!==u.phase?"pointer":"not-allowed",fontSize:11},children:"loading"===u.phase?d("models.catalogFilling"):d("models.catalogFill")}),(0,r.jsx)("a",{href:"https://github.com/anomalyco/models.dev",target:"_blank",rel:"noreferrer",style:{marginLeft:"auto",color:"var(--text-dim)",fontSize:10,textDecoration:"none"},children:d("models.catalogSource")})]}),$&&(0,r.jsxs)("div",{"aria-live":"polite",style:{marginTop:8,display:"flex",alignItems:"center",justifyContent:"space-between",gap:8,color:M,fontSize:10},children:[(0,r.jsx)("span",{title:$,style:{minWidth:0,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:$}),j.current&&(0,r.jsx)("button",{onClick:()=>{let e=j.current;e&&(j.current=null,o(e),p({phase:"idle"}))},style:{flexShrink:0,padding:"0 2px",border:"none",background:"none",color:"var(--accent)",cursor:"pointer",fontSize:10},children:d("models.catalogUndo")})]})]}),(0,r.jsxs)("div",{children:[(0,r.jsx)(c8,{children:d("models.capabilities")}),(0,r.jsxs)("div",{style:{display:"flex",gap:20,flexWrap:"wrap",marginTop:8},children:[(0,r.jsx)(c4,{label:d("models.reasoning"),checked:s.reasoning??!1,onChange:e=>w("reasoning",e||void 0)}),(0,r.jsx)(c4,{label:d("models.imageInput"),checked:s.input?.includes("image")??!1,onChange:e=>w("input",e?["text","image"]:void 0)})]})]}),(0,r.jsxs)("section",{children:[(0,r.jsxs)("div",{style:{display:"flex",alignItems:"center",justifyContent:"space-between",gap:12},children:[(0,r.jsx)(c8,{children:d("models.modelSpecs")}),(0,r.jsx)("button",{type:"button",onClick:()=>{if(h)return void f(!1);k.current=s.cost;let e=l2(s.cost);x.current=e,g(e),f(!0)},"aria-expanded":h,style:{padding:"2px 4px",border:"none",background:"transparent",color:"var(--accent)",cursor:"pointer",fontSize:10},children:h?d("models.finishEditingCosts"):d("models.editCosts")})]}),(0,r.jsxs)("div",{style:{marginTop:10,display:"grid",gridTemplateColumns:"repeat(auto-fit, minmax(170px, 1fr))",gap:10},children:[(0,r.jsx)(cG,{label:d("models.contextWindow"),children:(0,r.jsx)(c1,{value:void 0!==s.contextWindow?String(s.contextWindow):"",onChange:e=>w("contextWindow",e?parseInt(e):void 0),placeholder:"128000"})}),(0,r.jsx)(cG,{label:d("models.maxOutputTokens"),children:(0,r.jsx)(c1,{value:void 0!==s.maxTokens?String(s.maxTokens):"",onChange:e=>w("maxTokens",e?parseInt(e):void 0),placeholder:"16384"})})]}),(0,r.jsxs)("div",{style:{marginTop:16},children:[(0,r.jsx)("div",{style:{fontSize:10,color:"var(--text-dim)",fontWeight:600,textTransform:"uppercase"},children:d("models.costPerMillion")}),h?(0,r.jsxs)("div",{style:{marginTop:8,display:"grid",gridTemplateColumns:"repeat(auto-fit, minmax(110px, 1fr))",gap:8},children:[I.map(e=>{let{key:t,label:n}=e;return(0,r.jsx)(cG,{label:n,children:(0,r.jsx)(c1,{value:m[t],onChange:e=>{let n,r,i;return r=l4(n={...x.current,[t]:e}),i={...s},void(x.current=n,g(n),r?(i.cost={...k.current??{},...r},k.current=i.cost):delete i.cost,o(i))},placeholder:"0"})},t)}),l8(m)&&!l4(m)&&(0,r.jsx)("div",{"aria-live":"polite",style:{gridColumn:"1 / -1",color:"#d97706",fontSize:10},children:d("models.costAllRequired")})]}):(0,r.jsx)("div",{style:{marginTop:8,display:"grid",gridTemplateColumns:"repeat(auto-fit, minmax(105px, 1fr))",gap:"8px 16px"},children:I.map(e=>{let t,{key:n,label:i}=e,o=s.cost?.[n]===void 0;return(0,r.jsxs)("div",{style:{minWidth:0},children:[(0,r.jsx)("div",{style:{fontSize:10,color:"var(--text-dim)",whiteSpace:"nowrap",overflow:"hidden",textOverflow:"ellipsis"},children:i}),(0,r.jsx)("div",{style:{marginTop:3,color:o?"var(--text-dim)":"var(--text)",fontSize:12,fontFamily:"var(--font-mono)",fontVariantNumeric:"tabular-nums"},children:void 0===(t=s.cost?.[n])?d("models.notProvided"):`$${String(t)}`})]},n)})})]})]}),(0,r.jsxs)("section",{style:{borderTop:"1px solid var(--border)",paddingTop:4},children:[(0,r.jsxs)("button",{type:"button",onClick:()=>b(e=>!e),"aria-expanded":v,"aria-controls":"model-advanced-settings",style:{width:"100%",minHeight:48,padding:"8px 0",border:"none",background:"transparent",display:"grid",gridTemplateColumns:"minmax(0, 1fr) 18px",alignItems:"center",gap:10,color:"var(--text)",cursor:"pointer",textAlign:"left"},children:[(0,r.jsxs)("span",{style:{minWidth:0},children:[(0,r.jsx)("span",{style:{display:"block",fontSize:11,fontWeight:600},children:d("models.advancedSettings")}),(0,r.jsx)("span",{style:{display:"block",marginTop:3,color:"var(--text-dim)",fontSize:10,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:A})]}),(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",style:{color:"var(--text-dim)",transform:v?"rotate(180deg)":"none",transition:"transform 0.15s ease"},children:(0,r.jsx)("polyline",{points:"6 9 12 15 18 9"})})]}),v&&(0,r.jsxs)("div",{id:"model-advanced-settings",style:{display:"flex",flexDirection:"column",gap:14,padding:"4px 0 16px"},children:[(0,r.jsx)(cG,{label:d("models.apiOverride"),children:(0,r.jsx)(c2,{value:s.api??"",onChange:e=>w("api",e||void 0),options:cY})}),(0,r.jsxs)(cG,{label:d("models.headers"),children:[(0,r.jsx)(dt,{headers:s.headers,onChange:e=>w("headers",e)}),(0,r.jsx)("span",{style:{fontSize:10,color:"var(--text-dim)",marginTop:2},children:d("models.headersHelp")})]}),s.reasoning&&(0,r.jsxs)("div",{style:{display:"flex",flexDirection:"column",gap:12},children:[(0,r.jsx)(c8,{children:d("models.compatibility")}),(0,r.jsx)(c4,{label:d("models.deepSeekThinkingCompat"),checked:de(s),onChange:e=>o(function(e,t){if(t)return{...e,compat:{...e.compat??{},...c7}};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}}(s,e))}),(0,r.jsx)(c4,{label:d("models.developerRole"),checked:!1!==({...n.compat??{},...s.compat??{}}).supportsDeveloperRole,onChange:e=>o({...s,compat:{...s.compat??{},supportsDeveloperRole:e}})}),(0,r.jsxs)("div",{style:{marginTop:4},children:[(0,r.jsxs)("div",{style:{display:"flex",alignItems:"center",justifyContent:"space-between",gap:10,marginBottom:8},children:[(0,r.jsx)(c8,{children:d("models.thinkingLevelMap")}),s.thinkingLevelMap&&(0,r.jsx)("button",{type:"button",onClick:()=>w("thinkingLevelMap",void 0),style:{fontSize:10,padding:"2px 5px",background:"none",border:"none",color:"var(--text-dim)",cursor:"pointer"},children:d("models.clearAll")})]}),(0,r.jsx)(c9,{value:s.thinkingLevelMap,onChange:e=>w("thinkingLevelMap",e)})]})]})]})]})]})}function dr(e){let{provider:t,onRefresh:n,enabledModels:s,contextSettings:o}=e,[a,l]=(0,i.useState)({phase:"idle"}),{t:c}=(0,eG.s)(),[d,u]=(0,i.useState)(""),p=(0,i.useRef)(null),h=(0,i.useRef)(null);(0,i.useEffect)(()=>{("auth"===a.phase||"prompt"===a.phase)&&setTimeout(()=>h.current?.focus(),50)},[a.phase]),(0,i.useEffect)(()=>{l({phase:"idle"}),u(""),p.current?.close(),p.current=null},[t.id]),(0,i.useEffect)(()=>()=>{p.current?.close()},[]);let f=(0,i.useCallback)(()=>{p.current?.close(),l({phase:"connecting"}),u("");let e=new EventSource(`/api/auth/login/${encodeURIComponent(t.id)}`);p.current=e,e.onmessage=t=>{let r=JSON.parse(t.data);"auth"===r.type?(l({phase:"auth",url:r.url,instructions:r.instructions??null,token:r.token}),window.open(r.url,"_blank","noopener,noreferrer")):"device_code"===r.type?(l({phase:"device_code",userCode:r.userCode,verificationUri:r.verificationUri,intervalSeconds:r.intervalSeconds??null,expiresInSeconds:r.expiresInSeconds??null}),window.open(r.verificationUri,"_blank","noopener,noreferrer")):"prompt_request"===r.type?l({phase:"prompt",message:r.message,placeholder:r.placeholder??null,token:r.token}):"select_request"===r.type?l({phase:"select",message:r.message,options:r.options??[],token:r.token}):"progress"===r.type?l({phase:"progress",message:r.message}):"success"===r.type?(e.close(),l({phase:"success"}),n()):"error"===r.type?(e.close(),l({phase:"error",message:r.message})):"cancelled"===r.type&&(e.close(),l({phase:"idle"}))},e.onerror=()=>{e.close(),l(e=>"success"===e.phase?e:{phase:"error",message:"Connection lost"})}},[t.id,n]),m=(0,i.useCallback)(async()=>{await fetch(`/api/auth/logout/${encodeURIComponent(t.id)}`,{method:"POST"}),l({phase:"idle"}),n()},[t.id,n]),g=(0,i.useCallback)(async(e,n)=>{if(n.trim()){l({phase:"progress",message:"Verifying…"});try{let r=await fetch(`/api/auth/login/${encodeURIComponent(t.id)}`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({token:e,code:n.trim()})});if(!r.ok){let e=await r.json().catch(()=>({}));l({phase:"error",message:e.error??`Server error ${r.status}`});return}u("")}catch(e){l({phase:"error",message:e instanceof Error?e.message:"Network error"})}}},[t.id]),x=(0,i.useCallback)(async(e,n)=>{l({phase:"progress",message:"Continuing…"});try{let r=await fetch(`/api/auth/login/${encodeURIComponent(t.id)}`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({token:e,code:n})});if(!r.ok){let e=await r.json().catch(()=>({}));l({phase:"error",message:e.error??`Server error ${r.status}`})}}catch(e){l({phase:"error",message:e instanceof Error?e.message:"Network error"})}},[t.id]),v="connecting"===a.phase||"progress"===a.phase||"auth"===a.phase||"device_code"===a.phase||"prompt"===a.phase||"select"===a.phase;return(0,r.jsxs)("div",{style:{display:"flex",flexDirection:"column",gap:t.loggedIn&&"idle"===a.phase?0:16},children:[(0,r.jsxs)(ca,{children:[(0,r.jsx)(cl,{children:(0,r.jsx)(c8,{children:c("i18n.subscription")})}),(0,r.jsxs)(cc,{children:[(0,r.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:6},children:[(0,r.jsx)("span",{style:{width:7,height:7,borderRadius:"50%",background:t.loggedIn?"#4ade80":"var(--border)",display:"inline-block"}}),(0,r.jsx)("span",{style:{fontSize:11,color:t.loggedIn?"#4ade80":"var(--text-dim)"},children:c(t.loggedIn?"i18n.connected":"i18n.notConnected")})]}),v?(0,r.jsx)(cN,{size:"small",onClick:()=>{p.current?.close(),l({phase:"idle"})},children:c("i18n.cancel")}):(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(cN,{variant:"primary",size:"small",onClick:f,children:c(t.loggedIn?"i18n.relogin":"i18n.login")}),t.loggedIn&&(0,r.jsx)(cN,{variant:"danger",size:"small",onClick:m,children:c("i18n.disconnect")})]})]})]}),(0,r.jsxs)("div",{style:{minHeight:t.loggedIn&&"idle"===a.phase?0:48},children:["idle"===a.phase&&!t.loggedIn&&(0,r.jsxs)("p",{style:{margin:0,fontSize:12,color:"var(--text-muted)",lineHeight:1.5},children:["Connect your ",t.name," account."]}),"connecting"===a.phase&&(0,r.jsx)("p",{style:{margin:0,fontSize:12,color:"var(--text-muted)"},children:c("i18n.openingBrowser")}),"select"===a.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:a.message}),(0,r.jsx)("div",{style:{display:"flex",flexDirection:"column",gap:6},children:a.options.map(e=>(0,r.jsx)("button",{onClick:()=>x(a.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"===a.phase||"prompt"===a.phase)&&(0,r.jsx)(cB,{message:"auth"===a.phase?"Complete sign-in in the browser, then copy the redirect URL from the address bar and paste it below.":a.message,hint:"auth"===a.phase?(0,r.jsxs)(r.Fragment,{children:["If the browser window did not open,"," ",(0,r.jsx)("a",{href:a.url,target:"_blank",rel:"noopener noreferrer",children:"click here to open the login page"}),"."]}):void 0,value:d,placeholder:"auth"===a.phase?"http://localhost:1455/auth/callback?code=…":a.placeholder??"Enter value…",submitLabel:c("i18n.submit"),inputRef:h,onValueChange:u,onSubmit:()=>void g(a.token,d)}),"device_code"===a.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:"Open the verification page and enter this code:"}),(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:a.userCode}),(0,r.jsxs)("p",{style:{margin:0,fontSize:11,color:"var(--text-dim)",lineHeight:1.5},children:[(0,r.jsx)("a",{href:a.verificationUri,target:"_blank",rel:"noopener noreferrer",style:{color:"var(--accent)",wordBreak:"break-all"},children:a.verificationUri}),a.expiresInSeconds?` Expires in ${Math.ceil(a.expiresInSeconds/60)} minutes.`:""]})]}),"progress"===a.phase&&(0,r.jsx)("p",{style:{margin:0,fontSize:12,color:"var(--text-muted)"},children:a.message}),"success"===a.phase&&(0,r.jsx)("p",{style:{margin:0,fontSize:12,color:"#4ade80"},children:c("i18n.connectedSuccessfully")}),"error"===a.phase&&(0,r.jsx)("p",{style:{margin:0,fontSize:12,color:"#f87171"},children:a.message})]}),(0,r.jsx)(cq,{providerId:t.id,enabled:t.loggedIn}),t.loggedIn&&(0,r.jsx)(cD,{providerId:t.id,controller:s,contextSettings:o})]})}function di(e){let{provider:t,onRefresh:n,enabledModels:s,contextSettings:o}=e,[a,l]=(0,i.useState)(""),[c,d]=(0,i.useState)(!1),[u,p]=(0,i.useState)(!1),[h,f]=(0,i.useState)(null),[m,g]=(0,i.useState)(!1),{t:x}=(0,eG.s)();(0,i.useEffect)(()=>{l(""),f(null),g(!1)},[t.id]);let v=(0,i.useCallback)(async()=>{if(a.trim()){d(!0),f(null),g(!1);try{let e=await fetch(`/api/auth/api-key/${encodeURIComponent(t.id)}`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({apiKey:a.trim()})}),r=await e.json();!e.ok||r.error?f(r.error??`HTTP ${e.status}`):(l(""),g(!0),setTimeout(()=>g(!1),2e3),n())}catch(e){f(String(e))}finally{d(!1)}}},[a,t.id,n]),b=(0,i.useCallback)(async()=>{p(!0),f(null);try{let e=await fetch(`/api/auth/api-key/${encodeURIComponent(t.id)}`,{method:"DELETE"}),r=await e.json();!e.ok||r.error?f(r.error??`HTTP ${e.status}`):n()}catch(e){f(String(e))}finally{p(!1)}},[t.id,n]);return(0,r.jsxs)("div",{style:{display:"flex",flexDirection:"column",gap:16},children:[(0,r.jsxs)(ca,{children:[(0,r.jsx)(cl,{children:(0,r.jsx)(c8,{children:"API Key"})}),(0,r.jsxs)(cc,{children:[(0,r.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:6},children:[(0,r.jsx)("span",{style:{width:7,height:7,borderRadius:"50%",background:t.configured?"#4ade80":"var(--border)",display:"inline-block"}}),(0,r.jsx)("span",{style:{fontSize:11,color:t.configured?"#4ade80":"var(--text-dim)"},children:x(t.configured?"i18n.configured":"i18n.notConfigured")})]}),t.configured&&(0,r.jsx)(cN,{variant:"danger",size:"small",onClick:b,disabled:u,children:x(u?"i18n.removing":"i18n.disconnect")})]})]}),!t.configured&&(0,r.jsxs)("p",{style:{margin:0,fontSize:12,color:"var(--text-muted)",lineHeight:1.5},children:["Enter your ",t.displayName," API key to enable ",t.modelCount," model",1!==t.modelCount?"s":"","."]}),(0,r.jsxs)("div",{style:{display:"flex",gap:6},children:[(0,r.jsx)(c0,{value:a,onChange:l,onKeyDown:e=>{"Enter"===e.key&&a.trim()&&v()},placeholder:t.configured?"Enter new key to replace…":"sk-…",style:{flex:1},autoComplete:"off",spellCheck:!1,mono:!0}),(0,r.jsxs)("button",{onClick:v,disabled:c||!a.trim()||m,style:{padding:"6px 12px",background:m?"#16a34a":a.trim()?"var(--accent)":"var(--bg-panel)",border:"none",borderRadius:5,color:m?"#fff":a.trim()?"var(--accent-contrast)":"var(--text-dim)",cursor:c||!a.trim()||m?"not-allowed":"pointer",fontSize:12,fontWeight:600,flexShrink:0,display:"flex",alignItems:"center",gap:5},children:[m&&(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"})}),x(m?"i18n.saved":c?"i18n.saving":"i18n.save")]})]}),h&&(0,r.jsx)("p",{style:{margin:0,fontSize:12,color:"#f87171"},children:h}),(0,r.jsx)(cq,{providerId:t.id,enabled:t.configured}),t.configured&&(0,r.jsx)(cD,{providerId:t.id,controller:s,contextSettings:o})]})}function ds(e){let{oauthProviders:t,apiKeyProviders:n,onSelectOAuth:s,onSelectApiKey:o,onAddCustom:a,onClose:l}=e,[c,d]=(0,i.useState)(""),{t:u}=(0,eG.s)(),p=(0,i.useRef)(null);(0,i.useEffect)(()=>{setTimeout(()=>p.current?.focus(),30)},[]);let h=c.trim().toLowerCase(),f=t.filter(e=>!e.loggedIn&&(!h||e.name.toLowerCase().includes(h))),m=n.filter(e=>!e.configured&&(!h||e.displayName.toLowerCase().includes(h)||e.id.toLowerCase().includes(h))),g=!h||"custom".includes(h)||"openai-compatible".includes(h)||"anthropic-compatible".includes(h),x=f.length+m.length+ +!!g,v={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:{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()},onKeyDown:e=>{"Escape"===e.key&&(e.preventDefault(),e.stopPropagation(),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)("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},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:p,value:c,onChange:e=>d(e.target.value),placeholder:u("i18n.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:0===x?(0,r.jsx)("div",{style:{padding:"20px 0",fontSize:12,color:"var(--text-dim)",textAlign:"center"},children:u("i18n.noProviders")}):(0,r.jsxs)("div",{style:{display:"grid",gridTemplateColumns:"repeat(auto-fit, minmax(min(240px, 100%), 1fr))",gap:8},children:[g&&(0,r.jsx)("div",{style:{gridColumn:"1 / -1",fontSize:10,fontWeight:600,color:"var(--text-dim)",textTransform:"uppercase",letterSpacing:"0.07em"},children:u("i18n.custom")}),g&&(0,r.jsxs)("button",{onClick:()=>{a(),l()},style:v,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:"OpenAI / Anthropic compatible"}),(0,r.jsx)("div",{style:{fontSize:10,color:"var(--text-dim)",marginTop:2},children:u("i18n.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*!!g,fontSize:10,fontWeight:600,color:"var(--text-dim)",textTransform:"uppercase",letterSpacing:"0.07em"},children:u("i18n.subscriptions")}),f.map(e=>(0,r.jsxs)("button",{onClick:()=>{s(e.id),l()},style:v,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)(cH,{id:e.id,size:28})]},e.id)),m.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:"API Key"}),m.map(e=>(0,r.jsxs)("button",{onClick:()=>{o(e.id),l()},style:v,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.jsxs)("div",{style:{fontSize:10,color:"var(--text-dim)",marginTop:2},children:[e.modelCount," models"]})]}),(0,r.jsx)(cH,{id:e.id,size:28})]},e.id))]})})]})})}function da(e){let{onClose:t,embedded:n=!1,cwd:s=null}=e,{t:o}=(0,eG.s)(),a=function(e){let[t,n]=(0,i.useState)(null),[r,s]=(0,i.useState)(!0),[o,a]=(0,i.useState)(null),[l,c]=(0,i.useState)(null),d=(0,i.useRef)(null),u=(0,i.useRef)(null),p=(0,i.useRef)(null),[h,f]=(0,i.useState)(0);(0,i.useEffect)(()=>{let t=new AbortController;s(!0);let r=e?`?cwd=${encodeURIComponent(e)}`:"";return fetch(`/api/models/enabled${r}`,{signal:t.signal}).then(async e=>{let t=await e.json();if(!e.ok||t.error)throw Error(t.error??`HTTP ${e.status}`);n(t),c(null)}).catch(e=>{t.signal.aborted||c({message:e instanceof Error?e.message:String(e)})}).finally(()=>{t.signal.aborted||s(!1)}),()=>t.abort()},[e,h]);let m=(0,i.useCallback)((t,r)=>{if(d.current){u.current={key:t,body:r};return}d.current=t,a(t),c(null),(async()=>{try{let t=await fetch("/api/models/enabled",{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify({...r,...e?{cwd:e}:{}})}),i=await t.json();if(!t.ok||i.error){let e=i.reason?cP[i.reason]:void 0;c(e?{messageKey:e}:{message:i.error??`HTTP ${t.status}`});return}n(i)}catch(e){c({message:e instanceof Error?e.message:String(e)})}finally{d.current=null,a(null);let e=u.current;u.current=null,e&&p.current?.(e.key,e.body)}})()},[e]);p.current=m;let g=(0,i.useCallback)((e,t,n)=>{m(e,{op:"models",refs:t,enabled:n})},[m]),x=(0,i.useCallback)((e,t)=>{m(`provider:${e}`,{op:"provider",provider:e,enabled:t})},[m]),v=(0,i.useCallback)(()=>m("clear",{op:"clear"}),[m]),b=(0,i.useCallback)(()=>m("prune",{op:"prune"}),[m]),y=(0,i.useCallback)(()=>f(e=>e+1),[]),j=(0,i.useCallback)((e,n)=>{m("resync",{op:"resync",renames:e,modelRenames:n,fullyEnabled:(t?.providers??[]).filter(e=>e.models.length>0&&e.enabledCount===e.models.length).map(e=>e.id)})},[m,t]);return{view:t,loading:r,pending:o,failure:l,setModels:g,setProvider:x,clearScope:v,pruneStale:b,refresh:y,resync:j}}(s),[l,c]=(0,i.useState)({providers:{}}),[d,u]=(0,i.useState)(!0),[p,h]=(0,i.useState)(!1),[f,m]=(0,i.useState)(null),[g,x]=(0,i.useState)(null),[v,b]=(0,i.useState)(!1),[y,j]=(0,i.useState)(cJ),[k,w]=(0,i.useState)([]),[S,C]=(0,i.useState)([]),[N,E]=(0,i.useState)(!1),[$,M]=(0,i.useState)(!1),I=(0,i.useRef)(new Set),T=(0,i.useRef)(new Map),R=(0,i.useRef)(new Map),[L,A]=(0,i.useState)(null),P=(0,i.useCallback)(()=>{fetch("/api/auth/providers").then(e=>e.json()).then(e=>{Array.isArray(e.oauthProviders)&&w(e.oauthProviders),Array.isArray(e.apiKeyProviders)&&C(e.apiKeyProviders)}).catch(()=>{}).finally(()=>E(!0))},[]);(0,i.useEffect)(()=>{fetch("/api/models-config").then(async e=>{let t=await e.json();if(!e.ok||t.error)throw Error(t.error??`HTTP ${e.status}`);return t}).then(e=>{let t=e.providers?e:{...e,providers:{}};c(t),I.current=new Set(Object.keys(t.providers??{})),R.current=l3(t);let n=Object.keys(t.providers??{});j(e=>e&&("provider"===e.type?t.providers?.[e.name]:"model"!==e.type||t.providers?.[e.providerName]?.models?.[e.index])?e:n[0]?{type:"provider",name:n[0]}:null)}).catch(e=>x(e instanceof Error?e.message:String(e))).finally(()=>u(!1)),P()},[P]),(0,i.useEffect)(()=>{y&&lG("models",JSON.stringify(y))},[y]),(0,i.useEffect)(()=>{if(y?.type!=="provider")return;let e=l.providers?.[y.name];e&&1===Object.keys(e).length&&e.modelOverrides&&(k.some(e=>e.id===y.name)?j({type:"oauth",providerId:y.name}):S.some(e=>e.id===y.name)&&j({type:"apikey",providerId:y.name}))},[S,l.providers,k,y]);let z=e=>({overrides:l.providers?.[e]?.modelOverrides,disabled:d||p||null!==g,onChange:(t,n)=>{try{c(function(e,t,n,r){let i={...e.providers},s={...Object.hasOwn(i,t)?i[t]:{}},o={...s.modelOverrides},a=Object.hasOwn(o,n)?o[n]:void 0;if(void 0!==a&&!lX(a))throw Error("Model override must be an object");let l={...a};return void 0===r?delete l.contextWindow:l.contextWindow=r,Object.keys(l).length?Object.defineProperty(o,n,{value:l,enumerable:!0,configurable:!0}):delete o[n],Object.keys(o).length?s.modelOverrides=o:delete s.modelOverrides,Object.keys(s).length?Object.defineProperty(i,t,{value:s,enumerable:!0,configurable:!0}):delete i[t],{...e,providers:i}}(l,e,t,n)),b(!1),m(null)}catch(e){m(String(e))}}}),W=(0,i.useCallback)(()=>{let e="new-provider",t=1;for(;l.providers?.[e];)e=`new-provider-${t++}`;c(t=>({...t,providers:{...t.providers??{},[e]:{api:"openai-completions"}}})),j({type:"provider",name:e})},[l.providers]),O=(0,i.useCallback)((e,t)=>{c(n=>({...n,providers:{...n.providers??{},[e]:t}}))},[]),F=(0,i.useCallback)((e,t,n)=>{let r=function(e,t,n,r){let i=e.providers??{};if(!Object.hasOwn(i,n))return null;if(n===r)return e;if(Object.hasOwn(i,r))return null;let{renames:s,savedProviders:o,slots:a}=t,l=n;for(let[e,t]of s)if(t===n){l=e;break}l===r?s.delete(l):o.has(l)&&s.set(l,r);let c=a.get(n);c&&(a.delete(n),a.set(r,c));let d=Object.entries(i),u=d.findIndex(e=>{let[t]=e;return t===n});return d[u]=[r,d[u][1]],{...e,providers:Object.fromEntries(d)}}(e,{savedProviders:I.current,renames:T.current,slots:R.current},t,n);return r?(c(r),A(null),j(e=>e?"provider"===e.type&&e.name===t?{type:"provider",name:n}:"model"===e.type&&e.providerName===t?{...e,providerName:n}:e:e),r):null},[]),D=(0,i.useCallback)((e,t)=>{F(l,e,t)?m(null):m(o("models.providerNameTaken",{name:t}))},[F,l,o]),B=(0,i.useCallback)(e=>{R.current.delete(e),A(t=>t?.provider===e?null:t),c(t=>{let n={...t.providers??{}};return delete n[e],{...t,providers:n}}),c(e=>{let t=Object.keys(e.providers??{});return j(t.length>0?{type:"provider",name:t[0]}:null),e})},[]),_=(0,i.useCallback)(e=>{l6(R.current,e,1),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 j({type:"model",providerName:e,index:n}),t})},[]),H=(0,i.useCallback)((e,t)=>{c(n=>{let r=new Set((n.providers?.[e]?.models??[]).map(e=>e.id));l6(R.current,e,t.filter(e=>!r.has(e.id)).length);let i=n.providers?.[e]??{},s=[...i.models??[]],o=new Set(s.map(e=>e.id));for(let e of t)o.has(e.id)||(o.add(e.id),s.push({...e}));return{...n,providers:{...n.providers??{},[e]:{...i,models:s}}}})},[]),U=(0,i.useCallback)((e,t,n)=>{c(r=>{let i=r.providers?.[e]??{},s=[...i.models??[]];return s[t]=n,{...r,providers:{...r.providers??{},[e]:{...i,models:s}}}})},[]),K=(0,i.useCallback)((e,t)=>{R.current.get(e)?.splice(t,1),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}}}}),j({type:"provider",name:e})},[]),q=(0,i.useCallback)(async()=>{if(g)return;h(!0),m(null),b(!1);let e=l,t=L?.name.trim();if(L&&t&&l.providers?.[L.provider]){let n=F(l,L.provider,t);if(!n){m(o("models.providerNameTaken",{name:t})),h(!1);return}e=n}try{e=function(e){let t=structuredClone(e);if(!lX(t.providers))return t;for(let[e,n]of Object.entries(t.providers))if(lX(n)&&lX(n.modelOverrides))for(let[t,r]of Object.entries(n.modelOverrides)){if(!lX(r)||!Object.hasOwn(r,"contextWindow"))continue;let n=l0(r.contextWindow);if(void 0===n)throw new lQ(`${e}/${t}`);r.contextWindow=n}return t}(e);let t=await fetch("/api/models-config",{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify(e)}),n=await t.json();if(!t.ok||n.error)m(n.error??`HTTP ${t.status}`);else{b(!0),setTimeout(()=>b(!1),2e3);let t=[...T.current].map(e=>{let[t,n]=e;return{from:t,to:n}}),n=function(e,t,n){let r=e=>{for(let[t,r]of n)if(r===e)return t;return e},i=[];for(let[n,s]of Object.entries(e.providers??{})){let e=t.get(n);e&&(s.models??[]).forEach((t,s)=>{let o=e[s];o&&t.id&&o!==t.id&&i.push({from:`${r(n)}/${o}`,to:`${n}/${t.id}`})})}return i}(e,R.current,T.current);I.current=new Set(Object.keys(e.providers??{})),R.current=l3(e),T.current.clear(),a.resync(t,n)}}catch(e){m(e instanceof lQ?o("models.contextInvalid",{model:e.model}):String(e))}finally{h(!1)}},[F,l,a,g,L,o]),Z=Object.entries(l.providers??{}).filter(e=>{let[t,n]=e;if(1!==Object.keys(n).length||!n.modelOverrides)return!0;let r=k.some(e=>e.id===t)||S.some(e=>e.id===t);return N&&!r}),V=e=>{let t=function(e,t){if(!e||e.allEnabled)return null;let n=cL(e,t);return n?`${n.enabledCount}/${n.models.length}`:null}(a.view,e);return t?(0,r.jsx)("span",{className:"models-sidebar-badge",children:t}):null},J=k.filter(e=>e.loggedIn),Y=S.filter(e=>e.configured),G=(()=>{if(!y)return null;if("oauth"===y.type){let e=k.find(e=>e.id===y.providerId);return e?(0,r.jsx)(dr,{provider:e,onRefresh:P,enabledModels:a,contextSettings:z(e.id)},e.id):null}if("apikey"===y.type){let e=S.find(e=>e.id===y.providerId);return e?(0,r.jsx)(di,{provider:e,onRefresh:P,enabledModels:a,contextSettings:z(e.id)},e.id):null}if("provider"===y.type){let e=l.providers?.[y.name];return e&&Z.some(e=>{let[t]=e;return t===y.name})?(0,r.jsx)(c3,{name:y.name,editingName:L?.provider===y.name?L.name:y.name,provider:e,onChange:e=>O(y.name,e),onEditingNameChange:e=>A(e===y.name?null:{provider:y.name,name:e}),onRename:e=>D(y.name,e),onDelete:()=>B(y.name),onAddModels:e=>H(y.name,e),enabledModels:a},y.name):null}let e=l.providers?.[y.providerName],t=e?.models?.[y.index];return t?(0,r.jsx)(dn,{providerName:y.providerName,provider:e,model:t,onChange:e=>U(y.providerName,y.index,e),onDelete:()=>K(y.providerName,y.index)},`${y.providerName}-${y.index}`):null})();return(0,r.jsxs)(r.Fragment,{children:[(0,r.jsxs)(l5,{embedded:n,title:o("common.models"),subtitle:"~/.pi/agent/models.json",closeLabel:o("i18n.close"),onClose:t,children:[(0,r.jsx)(cz,{controller:a}),(0,r.jsxs)(l9,{children:[(0,r.jsxs)(l7,{children:[(0,r.jsxs)(ce,{children:[J.map(e=>{let t=y?.type==="oauth"&&y.providerId===e.id;return(0,r.jsxs)(ci,{active:t,onClick:()=>j({type:"oauth",providerId:e.id}),children:[(0,r.jsx)(cH,{id:e.id,size:16}),(0,r.jsx)(cs,{className:"is-grow",children:e.name}),V(e.id)]},e.id)}),Y.map(e=>{let t=y?.type==="apikey"&&y.providerId===e.id;return(0,r.jsxs)(ci,{active:t,onClick:()=>j({type:"apikey",providerId:e.id}),children:[(0,r.jsx)(cH,{id:e.id,size:16}),(0,r.jsx)(cs,{className:"is-grow",children:e.displayName}),V(e.id)]},e.id)}),(J.length>0||Y.length>0)&&Z.length>0&&(0,r.jsx)("div",{style:{margin:"4px 8px",borderTop:"1px solid var(--border)"}}),d?(0,r.jsx)("div",{style:{padding:"10px 8px",fontSize:12,color:"var(--text-muted)"},children:o("i18n.loading")}):Z.map(e=>{let[t,n]=e,i=y?.type==="provider"&&y.name===t,s=n.models??[];return(0,r.jsxs)("div",{style:{marginBottom:2},children:[(0,r.jsxs)(ci,{onClick:()=>j({type:"provider",name:t}),active:i,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)(cs,{className:"is-grow",children:t}),V(t)]}),s.map((e,n)=>{let i=y?.type==="model"&&y.providerName===t&&y.index===n;return(0,r.jsxs)(ci,{active:i,className:"models-sidebar-indented-item",onClick:()=>j({type:"model",providerName:t,index:n}),children:[(0,r.jsx)(cs,{className:"is-grow",style:{color:e.id?"var(--text-muted)":"var(--text-dim)"},children:e.id||o("i18n.newModel")}),e.reasoning&&(0,r.jsx)("span",{style:{fontSize:9,padding:"1px 4px",background:"rgba(99,102,241,0.12)",color:"rgba(99,102,241,0.8)",borderRadius:3,flexShrink:0},children:"T"})]},n)}),(0,r.jsx)(ci,{className:"models-sidebar-indented-item models-sidebar-add-item",onClick:e=>{e.stopPropagation(),_(t)},children:(0,r.jsxs)(cs,{children:["+ ",o("i18n.model")]})})]},t)})]}),(0,r.jsx)(c$,{onClick:()=>M(!0),children:o("i18n.addProvider")})]}),(0,r.jsx)(cw,{children:(0,r.jsx)(co,{className:"is-fill",children:d?null:G??(0,r.jsx)(ck,{children:o("i18n.selectProviderModel")})})})]}),(0,r.jsxs)(cS,{status:(g||f)&&(0,r.jsx)("span",{style:{color:"#f87171"},children:g?o("models.configUnreadable",{error:g}):f}),children:[!n&&(0,r.jsx)(cN,{onClick:t,children:o("i18n.cancel")}),(0,r.jsxs)(cN,{variant:"primary",onClick:q,disabled:p||v||null!==g,className:v?"is-success":void 0,children:[v&&(0,r.jsx)("svg",{width:"14",height:"14",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"3",strokeLinecap:"round",strokeLinejoin:"round",className:"config-button-success-icon",children:(0,r.jsx)("polyline",{points:"20 6 9 17 4 12"})}),(0,r.jsx)("span",{children:v?o("i18n.saved"):p?o("i18n.saving"):o("i18n.save")})]})]})]}),$&&(0,r.jsx)(ds,{oauthProviders:k,apiKeyProviders:S,onSelectOAuth:e=>j({type:"oauth",providerId:e}),onSelectApiKey:e=>j({type:"apikey",providerId:e}),onAddCustom:W,onClose:()=>M(!1)})]})}let dl=null;async function dc(e){if(!("serviceWorker"in navigator&&"PushManager"in window&&"Notification"in window)||"granted"!==Notification.permission)return!1;if(dl)return dl;let t=(async()=>{try{let t=await fetch("/api/push/config");if(!t.ok)return!1;let{publicKey:n}=await t.json();if(!n)return!1;let r=await navigator.serviceWorker.ready,i=await r.pushManager.getSubscription();return i||(i=await r.pushManager.subscribe({userVisibleOnly:!0,applicationServerKey:function(e){let t="=".repeat((4-e.length%4)%4),n=atob((e+t).replace(/-/g,"+").replace(/_/g,"/")),r=new Uint8Array(n.length);for(let e=0;e<n.length;e+=1)r[e]=n.charCodeAt(e);return r}(n)})),(await fetch("/api/push/subscribe",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({subscription:i.toJSON(),locale:e})})).ok}catch{return dl=null,!1}})();return dl=t,t.then(e=>{e||dl!==t||(dl=null)}),t}function dd(e){return e.replace(/^\/(?:Users|home)\/[^/]+/,"~")}function du(e,t){let n=t.replace(/[/\\]+$/,"");return n&&(e===n||e.startsWith(`${n}/`)||e.startsWith(`${n}\\`))?`./${e.slice(n.length).replace(/^[/\\]/,"")}`:dd(e)}var dp=n(73620);let dh=/^(?:\uFEFF)?---[ \t]*(?:\r\n|\n|\r)/;function df(e){let t=function(e){let t=dh.exec(e);if(!t)return null;let n=/^---[ \t]*(?:(?:\r\n|\n|\r)|$)/gm;n.lastIndex=t[0].length;let r=n.exec(e);return r?{yaml:e.slice(t[0].length,r.index).replace(/(?:\r\n|\n|\r)$/,""),rest:e.slice(r.index+r[0].length)}:null}(e);if(!t)return{data:null,rest:e};try{let e=(0,dp.Hh)(t.yaml);if(e&&"object"==typeof e&&!Array.isArray(e))return{data:e,rest:t.rest}}catch{}return{data:null,rest:t.rest}}function dm(e){return function e(t,n){if(null==t)return"";if("string"==typeof t)return t;if("number"==typeof t||"boolean"==typeof t)return String(t);if(Array.isArray(t)){if(n.has(t))return"[Circular]";n.add(t);try{return t.map(t=>e(t,n)).filter(Boolean).join(", ")}finally{n.delete(t)}}if("object"==typeof t)try{return JSON.stringify(t)??Object.prototype.toString.call(t)}catch{return Object.prototype.toString.call(t)}return String(t)}(e,new WeakSet)}function dg(e,t,n,r){return e.filter(e=>n(e)!==t&&(t||!r?.(e)))}function dx(e){return e?JSON.stringify([e.requiresTrust,e.trusted,e.decision,e.decisionPath??null,e.inherited]):""}function dv(e){let t=e.sourceInfo?.source,n=e.sourceInfo?.scope;return"user"===n||"user"===t?"global":"project"===n||"project"===t?"project":"path"}function db(e,t){return t("project"===e?"skills.scope.project":"global"===e?"skills.scope.global":"skills.scope.path")}function dy(e){return e.install?`${e.install.scope}\0${e.install.package}`:null}function dj(e,t){return e?e.slice(0,8):t}function dk(e){let{skill:t,cwd:n,onToggle:s,toggling:o,saveError:a,updateStatus:l,checkingUpdate:c,updating:d,updateError:u,onCheckUpdate:p,onUpdate:h}=e,{t:f}=(0,eG.s)(),m=dv(t),g=!t.disableModelInvocation,[x,v]=(0,i.useState)(null),[b,y]=(0,i.useState)(null),j=t.filePath.split(/[\\/]/).pop(),[k,w]=(0,i.useState)([]),S=k.at(-1)??j,C=(0,i.useRef)(null),N=(0,i.useRef)(null),[E,$]=(0,i.useState)(0),M=(0,i.useCallback)(e=>{let t=function(e,t){let n=e.indexOf("#"),[r,i]=[n<0?e:e.slice(0,n),n<0?"":e.slice(n+1)].map(e=>{try{return decodeURIComponent(e)}catch{return e}});if(!r)return{document:t,anchor:i};if(r.startsWith("/"))return{document:r,anchor:i};let s=t.split("/").slice(0,-1);for(let e of r.split("/"))".."===e&&s.length&&".."!==s[s.length-1]?s.pop():e&&"."!==e&&s.push(e);return{document:s.join("/"),anchor:i}}(e,S);N.current=t.anchor,t.document===S?$(e=>e+1):w(e=>[...e,t.document])},[S]);return(0,i.useLayoutEffect)(()=>{let e=N.current,t=C.current;null!==e&&(null!==x||b)&&t&&(N.current=null,((e?t.querySelector(`[data-heading-anchor="${CSS.escape(e)}"]`):null)??t).scrollIntoView({block:"start"}))},[x,b,E]),(0,i.useEffect)(()=>{let e=new AbortController;return v(null),y(null),(async()=>{try{var r;let i=new URLSearchParams({cwd:n,filePath:t.filePath});S!==j&&i.set("document",S);let s=await fetch(`/api/skills/content?${i}`,{signal:e.signal}),o=await s.json();if(!s.ok||o.error||"string"!=typeof o.content)throw Error(o.error??`HTTP ${s.status}`);v((r=o.content,df(r).rest.trim()))}catch(t){if(e.signal.aborted)return;y(t instanceof Error?t.message:String(t))}})(),()=>e.abort()},[n,t.filePath,S,j]),(0,r.jsxs)(co,{children:[(0,r.jsxs)("div",{className:"skill-detail-heading",children:[(0,r.jsxs)(ca,{children:[(0,r.jsxs)(cl,{children:[(0,r.jsx)(cm,{scope:m,children:db(m,f)}),(0,r.jsx)("span",{className:"config-detail-path",children:"project"===m?du(t.filePath,n):dd(t.filePath)})]}),(0,r.jsx)(cc,{children:(0,r.jsx)(cE,{checked:g,loading:o,label:f(g?"i18n.visibleInPrompt":"i18n.hiddenFromPrompt"),onChange:()=>s(t)})})]}),(0,r.jsxs)("div",{className:"skill-detail-status-row",children:[!g&&(0,r.jsx)("span",{style:{fontSize:11,color:"var(--text-dim)"},children:f("i18n.hiddenButInvocable")}),a&&(0,r.jsx)("span",{style:{fontSize:12,color:"#f87171",overflowWrap:"anywhere"},children:a})]})]}),t.install?.skillsShUrl&&(0,r.jsx)(cp,{label:f("config.source"),children:(0,r.jsx)("a",{href:t.install.skillsShUrl,target:"_blank",rel:"noreferrer",title:t.install.skillsShUrl,className:"skill-source-link",children:(0,r.jsxs)("span",{className:"skill-source-link-text",children:[t.install.skillsShUrl.replace(/^https?:\/\//,"")," ↗"]})})}),t.install&&(0,r.jsxs)(cp,{label:f("i18n.version"),children:[(0,r.jsxs)("div",{className:"skill-version-row",children:[(0,r.jsx)("span",{className:"skill-version-value",children:dj(l?.currentVersion??t.install.versionHash,f("i18n.unknown"))}),t.install.canCheckForUpdates&&(0,r.jsx)(cN,{size:"small",onClick:p,disabled:c||d,children:f("i18n.check")}),l?.state==="update-available"&&(0,r.jsx)("span",{className:"skill-version-value is-update",children:dj(l.latestVersion,f("i18n.unknown"))}),(c||l&&"update-available"!==l.state)&&(0,r.jsx)("span",{className:`skill-update-status ${c?"is-checking":l?.state==="up-to-date"?"is-success":l?.state==="error"?"is-error":"is-muted"}`,children:c?f("i18n.checking"):l?.state==="up-to-date"?f("i18n.upToDate"):l?.state==="unsupported"?f("i18n.automaticChecksUnavailable"):l?.message||f("i18n.checkFailed")}),l?.state==="update-available"&&(0,r.jsx)(cN,{variant:"primary",size:"small",onClick:h,disabled:d||c,children:f(d?"i18n.updating":"i18n.update")})]}),u&&(0,r.jsx)("span",{style:{fontSize:12,color:"#ef4444"},children:u})]}),(0,r.jsx)(cp,{label:f("config.name"),children:(0,r.jsx)("span",{className:"skill-name-value",children:t.name})}),(0,r.jsx)(cp,{label:f("i18n.description"),children:(0,r.jsx)("span",{className:"skill-description",children:t.description})}),(0,r.jsxs)(cp,{label:f("skills.instructions"),ref:C,children:[k.length>0&&(0,r.jsx)(ca,{children:(0,r.jsxs)(cl,{children:[(0,r.jsx)(cN,{size:"small",onClick:()=>{N.current="",w(e=>e.slice(0,-1))},children:f("skills.documentBack")}),(0,r.jsx)("span",{className:"config-detail-path",title:S,children:S})]})}),b?(0,r.jsx)("span",{role:"alert",className:"skill-instructions-status is-error",children:b}):null===x?(0,r.jsx)("span",{role:"status",className:"skill-instructions-status",children:f("i18n.loading")}):x?(0,r.jsx)(i9,{className:"skill-instructions",cwd:[t.baseDir,...S.split("/").slice(0,-1)].join("/"),onNavigateLink:M,children:x}):(0,r.jsx)("span",{className:"skill-instructions-status",children:f("skills.noInstructions")})]})]})}function dw(e){let{cwd:t,installedPackages:n,projectResourcesLoaded:s,onInstalled:o}=e,{t:a}=(0,eG.s)(),[l,c]=(0,i.useState)(""),[d,u]=(0,i.useState)([]),[p,h]=(0,i.useState)(!1),[f,m]=(0,i.useState)(null),[g,x]=(0,i.useState)(null),[v,b]=(0,i.useState)(null),[y,j]=(0,i.useState)(new Set),[k,w]=(0,i.useState)("global"),S=(0,i.useRef)(null);(0,i.useEffect)(()=>{S.current?.focus()},[]);let C=(0,i.useCallback)(async e=>{if(e.trim()){h(!0),m(null),u([]);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 m(n.error);u(n.results??[]),0===(n.results??[]).length&&m(a("i18n.noSkills"))}catch(e){m(String(e))}finally{h(!1)}}},[a]),N=(0,i.useCallback)(async e=>{x(e),b(null);try{let n=await fetch("/api/skills/install",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({package:e,scope:k,cwd:t})}),r=await n.json();if(!n.ok||r.error)return void b(r.error??`HTTP ${n.status}`);j(t=>new Set(t).add(`${k}:${e}`)),o()}catch(e){b(String(e))}finally{x(null)}},[o,k,t]),E="global"===k?"~/.pi/agent/skills/":`${dd(t)}/.pi/skills/`;return(0,r.jsxs)(co,{className:"is-full-height",children:[(0,r.jsxs)("div",{style:{display:"flex",flexDirection:"column",gap:12,marginBottom:20},children:[(0,r.jsx)(cv,{title:a("i18n.addSkill"),catalogs:[{href:"https://skills.sh",label:"skills.sh"}],target:(0,r.jsx)(cx,{value:k,label:a("config.saveTo"),options:[{value:"global",label:db("global",a)},{value:"project",label:db("project",a),disabled:!s}],path:E,disabledReason:a("trust.projectScopeUnavailable"),onChange:w})}),(0,r.jsxs)("div",{style:{display:"flex",gap:8},children:[(0,r.jsx)("input",{ref:S,value:l,onChange:e=>c(e.target.value),onKeyDown:e=>{"Enter"===e.key&&C(l)},placeholder:a("i18n.skillSearchPlaceholder"),style:{flex:1,padding:"7px 10px",fontSize:12,background:"var(--bg-panel)",border:"1px solid var(--border)",borderRadius:6,color:"var(--text)",outline:"none"}}),(0,r.jsx)(cN,{variant:"primary",onClick:()=>C(l),disabled:p||!l.trim(),children:p?a("i18n.searching"):a("i18n.search")})]}),f&&(0,r.jsx)("div",{style:{fontSize:12,color:"#f87171"},children:f}),v&&(0,r.jsx)("div",{style:{fontSize:12,color:"#f87171",wordBreak:"break-word"},children:v})]}),d.length>0&&(0,r.jsx)("div",{style:{flex:1,overflowY:"auto"},children:d.map(e=>{let t=n[k].has(e.package)||y.has(`${k}:${e.package}`),i=g===e.package,s=e.package.indexOf("@"),o=s>-1?e.package.slice(0,s):e.package,l=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:l??o}),(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:o}),(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)(cN,{size:"small",onClick:()=>!t&&!i&&N(e.package),disabled:t||i||null!==g,style:{flexShrink:0,background:t?"rgba(34,197,94,0.1)":"none",color:t?"#16a34a":i?"var(--accent)":"var(--text-muted)"},children:t?`✓ ${a("i18n.installed")}`:i?a("i18n.installing"):a("i18n.install")})]},e.package)})})]})}function dS(e){let{cwd:t,onClose:n,embedded:s=!1,trust:o}=e,{t:a}=(0,eG.s)(),[l,c]=(0,i.useState)([]),[d,u]=(0,i.useState)(!0),[p,h]=(0,i.useState)(null),[f,m]=(0,i.useState)(()=>lY("skills",t)),[g,x]=(0,i.useState)(new Set),[v,b]=(0,i.useState)(null),[y,j]=(0,i.useState)(null),[k,w]=(0,i.useState)(null),[S,C]=(0,i.useState)(!1),[N,E]=(0,i.useState)({}),[$,M]=(0,i.useState)(new Set),[I,T]=(0,i.useState)(!1),[R,L]=(0,i.useState)(null),[A,P]=(0,i.useState)(null),[z,W]=(0,i.useState)(!0),O=(0,i.useCallback)(async()=>{u(!0),h(null);try{let e=await fetch(`/api/skills?cwd=${encodeURIComponent(t)}`),n=await e.json();if(!e.ok||n.error)throw Error(n.error??`HTTP ${e.status}`);let r=n.skills??[];return c(r),W(n.projectResourcesLoaded??!0),m(e=>{if(e&&r.some(t=>t.filePath===e))return e;let t=r.find(e=>!e.disableModelInvocation)??r[0];return t?.filePath??null}),r}catch(e){return h(String(e)),[]}finally{u(!1)}},[t]);(0,i.useEffect)(()=>{E({}),P(null),O()},[t]);let F=dx(o),D=(0,i.useRef)(F);(0,i.useEffect)(()=>{D.current!==F&&(D.current=F,O())},[F,O]),(0,i.useEffect)(()=>{f&&lG("skills",f,t)},[t,f]);let B=(0,i.useCallback)(async e=>{let n=(e?[e]:l.filter(e=>!!e.install)).map(dy).filter(e=>!!e);if(0!==n.length){P(null),M(e=>new Set([...e,...n])),e||T(!0);try{let n=await fetch("/api/skills/check",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({cwd:t,package:e?.install?.package,scope:e?.install?.scope})}),r=await n.json();if(!n.ok||r.error)throw Error(r.error??`HTTP ${n.status}`);E(e=>{let t={...e};for(let e of r.updates??[])t[`${e.scope}\0${e.package}`]=e;return t})}catch(e){P(e instanceof Error?e.message:String(e))}finally{M(e=>{let t=new Set(e);for(let e of n)t.delete(e);return t}),e||T(!1)}}},[t,l]),_=(0,i.useCallback)(async e=>{if(!e.install)return;let n=dy(e);L(n),P(null);try{let r=await fetch("/api/skills/update",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({cwd:t,package:e.install.package,scope:e.install.scope})}),i=await r.json();if(!r.ok||i.error||!i.success)throw Error(i.error??`HTTP ${r.status}`);await O();let s=i.skill?.install?.versionHash;E(t=>({...t,[n]:{package:e.install.package,scope:e.install.scope,state:"up-to-date",currentVersion:s,latestVersion:s}}))}catch(e){P(e instanceof Error?e.message:String(e))}finally{L(null)}},[t,O]),H=(0,i.useCallback)(async e=>{let t=!e.disableModelInvocation;x(t=>new Set(t).add(e.filePath)),b(null),w(null);try{let n=await fetch("/api/skills",{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify({filePath:e.filePath,disableModelInvocation:t})}),r=await n.json();if(!n.ok||r.error)return void b(r.error??`HTTP ${n.status}`);c(n=>n.map(n=>n.filePath===e.filePath?{...n,disableModelInvocation:t}:n))}catch(e){b(String(e))}finally{x(t=>{let n=new Set(t);return n.delete(e.filePath),n})}},[]),U=(0,i.useCallback)(async(e,t,n)=>{let r=dg(t,n,e=>!e.disableModelInvocation);if(0===r.length)return;let i=r.map(e=>e.filePath),s=!n;x(e=>new Set([...e,...i])),j(e),b(null),w(null);try{let t=await fetch("/api/skills",{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify({filePaths:i,disableModelInvocation:s})}),n=await t.json();if(!t.ok||n.error||!n.results)throw Error(n.error??`HTTP ${t.status}`);let o=n.results;c(e=>{let t;return t=new Set(o.filter(e=>!e.error).map(e=>e.filePath)),e.map(e=>t.has(e.filePath)?{...e,disableModelInvocation:s}:e)});let l=o.filter(e=>e.error);if(l.length>0){let t=new Map(r.map(e=>[e.filePath,e.name]));w({group:e,error:[a("skills.bulkFailed",{count:l.length,total:o.length}),...l.map(e=>`${t.get(e.filePath)??e.filePath}: ${e.error}`)].join("\n")})}}catch(t){w({group:e,error:t instanceof Error?t.message:String(t)})}finally{j(null),x(e=>{let t=new Set(e);for(let e of i)t.delete(e);return t})}},[a]),K=l.find(e=>e.filePath===f)??null,q=d||g.size>0||null!==R;return(0,r.jsxs)(l5,{embedded:s,title:a("common.skills"),subtitle:dd(t),closeLabel:a("i18n.close"),onClose:n,children:[!z&&(0,r.jsx)(cj,{message:a("trust.skillsNotLoaded")}),(0,r.jsxs)(l9,{children:[(0,r.jsxs)(l7,{children:[(0,r.jsx)(ce,{children:d?(0,r.jsx)("div",{className:"config-sidebar-message",children:a("i18n.loading")}):p?(0,r.jsx)("div",{className:"config-sidebar-message is-error",children:p}):0===l.length?(0,r.jsx)("div",{className:"config-sidebar-message is-empty",children:a("i18n.noSkills")}):(()=>{let e=[],t={project:a("skills.scope.project"),global:a("skills.scope.global"),path:a("skills.scope.path")};for(let{label:n,matches:r}of[{label:`${t.project} / skills.sh`,matches:e=>"project"===dv(e)&&!!e.install?.skillsShUrl},{label:t.project,matches:e=>"project"===dv(e)&&!e.install?.skillsShUrl},{label:`${t.global} / skills.sh`,matches:e=>"global"===dv(e)&&!!e.install?.skillsShUrl},{label:t.global,matches:e=>"global"===dv(e)&&!e.install?.skillsShUrl},{label:t.path,matches:e=>"path"===dv(e)}]){let t=l.filter(r);t.length>0&&e.push({label:n,skills:t})}let n=e=>{let t,n,i=!S&&f===e.filePath,s=e.disableModelInvocation;return(0,r.jsxs)(ci,{active:i,onClick:()=>{m(e.filePath),C(!1)},children:[(0,r.jsx)(cM,{active:!s}),(0,r.jsx)(cs,{className:`is-grow${s?" is-muted":""}`,children:e.name}),(n=(t=dy(e))?N[t]:void 0,n?.state!=="update-available"?null:(0,r.jsx)("span",{title:a("i18n.updateAvailable"),className:"skill-update-indicator",children:"↑"}))]},e.filePath)};return e.map(e=>{let{label:t,skills:i}=e,s=i.filter(e=>!e.disableModelInvocation).length,o=s===i.length;return(0,r.jsxs)("div",{className:"config-sidebar-group",children:[(0,r.jsx)(ct,{aside:(0,r.jsx)(cn,{enabled:s,total:i.length,disabled:q,loading:y===t,label:a(o?"skills.groupSwitchOn":"skills.groupSwitchOff",{group:t}),onChange:e=>void U(t,i,e)}),children:t}),k?.group===t&&(0,r.jsx)(cr,{error:k.error}),[...i.filter(e=>!e.disableModelInvocation),...i.filter(e=>e.disableModelInvocation)].map(n)]},t)})})()}),(0,r.jsx)(c$,{onClick:()=>C(!0),active:S,children:a("i18n.addSkill")})]}),(0,r.jsx)(cw,{children:(0,r.jsx)(co,{className:"is-fill",children:S?(0,r.jsx)(dw,{cwd:t,projectResourcesLoaded:z,installedPackages:{global:new Set(l.filter(e=>e.install?.scope==="global").map(e=>e.install.package)),project:new Set(l.filter(e=>e.install?.scope==="project").map(e=>e.install.package))},onInstalled:()=>{O()}}):d?null:K?(0,r.jsx)(dk,{skill:K,cwd:t,onToggle:H,toggling:g.has(K.filePath),saveError:v,updateStatus:dy(K)?N[dy(K)]:void 0,checkingUpdate:!!dy(K)&&$.has(dy(K)),updating:R===dy(K),updateError:A,onCheckUpdate:()=>void B(K),onUpdate:()=>void _(K)},K.filePath):(0,r.jsx)(ck,{children:a("i18n.selectSkill")})})})]}),(0,r.jsxs)(cS,{status:Object.values(N).filter(e=>"update-available"===e.state).length>0&&(0,r.jsxs)("span",{style:{fontSize:12,color:"#d97706"},children:[Object.values(N).filter(e=>"update-available"===e.state).length," ",1===Object.values(N).filter(e=>"update-available"===e.state).length?a("i18n.update"):a("i18n.updates")]}),children:[!s&&(0,r.jsx)(cN,{onClick:n,children:a("i18n.close")}),l.some(e=>!!e.install)&&(0,r.jsx)(cN,{variant:"secondary",onClick:()=>void B(),disabled:I||null!==R,children:I?a("i18n.checking"):a("i18n.checkUpdates")})]})]})}let dC={builtin:0,global:1,workspace:2,project:3},dN=["read","bash","edit","write","grep","find","ls"],dE=["","off","minimal","low","medium","high","xhigh","max"],d$={name:"custom-agent",displayName:"Custom agent",description:"",systemPrompt:"",tools:["read","bash","edit","write","grep","find","ls"],loadSkills:!1,loadExtensions:!1,codemode:"off",mcp:"off",promptMode:"append",inheritContext:!1,runInBackground:!1,enabled:!0},dM={width:"100%",minWidth:0,height:34,padding:"0 9px",border:"1px solid var(--border)",borderRadius:5,background:"var(--bg)",color:"var(--text)",fontSize:12,outline:"none"},dI={background:"var(--bg-panel)",color:"var(--text-dim)",cursor:"default"};function dT(e){return{name:e.name,displayName:e.displayName,description:e.description,systemPrompt:e.systemPrompt,tools:[...e.tools],loadSkills:e.loadSkills,...void 0!==e.skills?{skills:[...e.skills]}:{},loadExtensions:e.loadExtensions,codemode:e.codemode??"off",mcp:e.mcp??"off",...void 0!==e.extensions?{extensions:[...e.extensions]}:{},promptMode:e.promptMode,...e.model?{model:e.model}:{},...e.thinking?{thinking:e.thinking}:{},...e.maxTurns?{maxTurns:e.maxTurns}:{},inheritContext:e.inheritContext,runInBackground:e.runInBackground,enabled:e.enabled}}function dR(e){return`${e.scope}:${e.name}`}function dL(e){return"global"===e||"project"===e}function dA(e){return dL(e)||"builtin"===e}function dP(e){let{label:t,children:n}=e;return(0,r.jsx)(cp,{label:t,children:n})}function dz(e){let{checked:t,disabled:n,label:i,onChange:s}=e;return(0,r.jsxs)("label",{style:{display:"flex",alignItems:"center",gap:7,color:n?"var(--text-dim)":"var(--text-muted)",fontSize:12,cursor:n?"default":"pointer"},children:[(0,r.jsx)("input",{type:"checkbox",checked:t,disabled:n,onChange:e=>s(e.target.checked)}),i]})}function dW(e){let{cwd:t,sessionId:n=null,onClose:s,onReloaded:o,embedded:a=!1,trust:l}=e,c=e5(),{t:d}=(0,eG.s)(),[u,p]=(0,i.useState)([]),[h,f]=(0,i.useState)([]),[m,g]=(0,i.useState)(!0),[x,v]=(0,i.useState)(null),[b,y]=(0,i.useState)(()=>lY("agents",t)),[j,k]=(0,i.useState)(d$),[w,S]=(0,i.useState)("view"),[C,N]=(0,i.useState)("global"),[E,$]=(0,i.useState)(!0),[M,I]=(0,i.useState)(!1),[T,R]=(0,i.useState)(!1),[L,A]=(0,i.useState)(!1),[P,z]=(0,i.useState)(null),[W,O]=(0,i.useState)(!1),[F,D]=(0,i.useState)(10),[B,_]=(0,i.useState)(!0),[H,U]=(0,i.useState)(!1),[K,q]=(0,i.useState)(null),[Z,V]=(0,i.useState)(!1),[J,Y]=(0,i.useState)(!1),G=(0,i.useMemo)(()=>u.find(e=>dR(e)===b)??null,[u,b]),X=(0,i.useMemo)(()=>h.map(e=>({provider:e.provider,modelId:e.id,name:e.name})),[h]),Q=(0,i.useCallback)(async e=>{$(!0),z(null);try{let n=await fetch(`/api/subagents/profiles?cwd=${encodeURIComponent(t)}`,{cache:"no-store"}),r=await n.json();if(!n.ok||r.error)throw Error(r.error??`HTTP ${n.status}`);let i=r.profiles??[];p(i);let s=e??lY("agents",t),o=i.find(e=>dR(e)===s)??i.find(e=>"project"===e.scope)??i.find(e=>"global"===e.scope)??i[0]??null;y(o?dR(o):null),o&&(k(dT(o)),S(dL(o.scope)?"edit":"view"),dL(o.scope)&&N(o.scope))}catch(e){z(e instanceof Error?e.message:String(e))}finally{$(!1)}},[t]);(0,i.useEffect)(()=>{Q()},[Q]),(0,i.useEffect)(()=>{let e=new AbortController;return _(!0),q(null),(async()=>{try{let t=await fetch("/api/subagents/settings",{cache:"no-store",signal:e.signal}),n=await t.json();if(!t.ok||n.error||"boolean"!=typeof n.enabled)throw Error(n.error??`HTTP ${t.status}`);O(n.enabled),"number"==typeof n.maxConcurrent&&D(n.maxConcurrent)}catch(t){if(e.signal.aborted)return;q(t instanceof Error?t.message:String(t))}finally{e.signal.aborted||_(!1)}})(),()=>e.abort()},[]),(0,i.useEffect)(()=>{b&&lG("agents",b,t)},[t,b]);let ee=dx(l);(0,i.useEffect)(()=>{let e=new AbortController;return g(!0),v(null),(async()=>{try{let n=await fetch(`/api/models?cwd=${encodeURIComponent(t)}`,{signal:e.signal}),r=await n.json();if(!n.ok||r.error)throw Error(r.error??`HTTP ${n.status}`);f(r.modelList??[]),v(r.modelError??null)}catch(t){if(e.signal.aborted)return;v(t instanceof Error?t.message:String(t))}finally{e.signal.aborted||g(!1)}})(),()=>e.abort()},[t,ee]);let et=async()=>{I(!0),z(null),R(!1);try{let e=await fetch("/api/subagents/profiles",{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify({cwd:t,scope:C,profile:j})}),n=await e.json();if(!e.ok||n.error||!n.profile)throw Error(n.error??`HTTP ${e.status}`);await Q(dR(n.profile)),R(!0),setTimeout(()=>R(!1),2e3)}catch(e){z(e instanceof Error?e.message:String(e))}finally{I(!1)}},en=async()=>{if(G&&dL(G.scope)&&window.confirm(d("agents.deleteConfirm",{name:G.displayName}))){I(!0),z(null);try{let e=await fetch("/api/subagents/profiles",{method:"DELETE",headers:{"Content-Type":"application/json"},body:JSON.stringify({cwd:t,scope:G.scope,name:G.name})}),n=await e.json();if(!e.ok||n.error)throw Error(n.error??`HTTP ${e.status}`);await Q()}catch(e){z(e instanceof Error?e.message:String(e))}finally{I(!1)}}},er="view"!==w,ei="create"===w,es=!er||M||L,eo=ei?C:G?.scope,ea=ei?"global"===C?`~/.pi/agent/agents/${j.name||"..."}.md`:`./.pi/agents/${j.name||"..."}.md`:G?(G.filePath?"project"===G.scope||"workspace"===G.scope?du(G.filePath,t):dd(G.filePath):null)??d("agents.builtinPath"):"",el=ei?ea:G?.filePath??ea,ec=e=>h.some(t=>`${t.provider}/${t.id}`===e),ed=j.model&&function(e,t){if(t(e))return e;let n=e.lastIndexOf(":"),r=e.slice(n+1);return n>0&&r&&dE.includes(r)?e.slice(0,n):e}(j.model,ec),eu=!ed||ec(ed),ep=(()=>{if(!ed)return null;let e=ed.indexOf("/");return e<0?{provider:"",modelId:ed}:{provider:ed.slice(0,e),modelId:ed.slice(e+1)}})(),eh=es?{...dM,...dI}:dM,ef=ei?es:!G||!dA(G.scope)||M||L,em=(e,t)=>{k(n=>({...n,[e]:t}))},eg=0===j.tools.length&&!j.loadSkills&&!j.loadExtensions,ex=async e=>{if(ei)return void em("enabled",e);if(G&&dA(G.scope)){A(!0),z(null);try{let n=await fetch("/api/subagents/profiles",{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify({cwd:t,scope:G.scope,name:G.name,enabled:e})}),r=await n.json();if(!n.ok||r.error||!r.profile)throw Error(r.error??`HTTP ${n.status}`);let i=r.profile;p(e=>e.map(e=>dR(e)===dR(i)?i:e)),k(e=>({...e,enabled:i.enabled}))}catch(e){z(e instanceof Error?e.message:String(e))}finally{A(!1)}}},ev=async e=>{U(!0),q(null);try{let t=await fetch("/api/subagents/settings",{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify({enabled:e})}),r=await t.json();if(!t.ok||r.error||"boolean"!=typeof r.enabled)throw Error(r.error??`HTTP ${t.status}`);O(r.enabled),V(!!n)}catch(e){q(e instanceof Error?e.message:String(e))}finally{U(!1)}},eb=async e=>{D(e),q(null);try{let t=await fetch("/api/subagents/settings",{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify({maxConcurrent:e})}),n=await t.json();if(!t.ok||n.error||"number"!=typeof n.maxConcurrent)throw Error(n.error??`HTTP ${t.status}`);D(n.maxConcurrent)}catch(e){q(e instanceof Error?e.message:String(e))}},ey=async()=>{if(n){Y(!0),q(null);try{await a0(n,{type:"reload"}),V(!1),o?.()}catch(e){q(e instanceof Error?e.message:String(e))}finally{Y(!1)}}};return(0,r.jsxs)(l5,{embedded:a,title:d("common.agents"),subtitle:dd(t),closeLabel:d("agents.close"),onClose:s,children:[(0,r.jsxs)("div",{className:"agents-feature-setting",children:[(0,r.jsxs)("div",{className:"agents-feature-copy",children:[(0,r.jsx)("strong",{children:d("agents.builtInTitle")}),(0,r.jsx)("span",{children:d("agents.builtInDescription")}),Z&&(0,r.jsx)("span",{role:"status",className:"agents-feature-reload-notice",children:d("agents.reloadRequired")})]}),(0,r.jsxs)("div",{className:"agents-feature-actions",children:[Z&&n&&(0,r.jsx)(cN,{size:"small",onClick:()=>void ey(),disabled:J||H,children:J?d("agents.reloading"):d("agents.reloadSession")}),(0,r.jsxs)("label",{className:"agents-concurrency-control",title:d("agents.maxConcurrentDescription"),children:[(0,r.jsx)("span",{children:d("agents.maxConcurrent")}),(0,r.jsx)("input",{"aria-label":d("agents.maxConcurrent"),type:"number",min:1,max:32,value:F,disabled:B||H,onChange:e=>D(Number(e.target.value)),onBlur:()=>void eb(F)})]}),(0,r.jsx)(cE,{checked:W,disabled:B||J,loading:H,label:d("agents.builtInTitle"),onChange:e=>void ev(e)})]})]}),(0,r.jsxs)(l9,{children:[(0,r.jsxs)(l7,{children:[(0,r.jsx)(ce,{children:E?(0,r.jsx)("div",{style:{padding:10,color:"var(--text-dim)",fontSize:12},children:d("agents.loading")}):["project","global","workspace","builtin"].map(e=>{let t=u.filter(t=>t.scope===e);return 0===t.length?null:(0,r.jsxs)("div",{className:"config-sidebar-group",children:[(0,r.jsx)(ct,{children:d(`agents.scope.${e}`)}),t.map(e=>{let t,n,i=(t=e.name.toLowerCase(),n=dC[e.scope],u.some(e=>e.name.toLowerCase()===t&&dC[e.scope]>n));return(0,r.jsxs)(ci,{active:b===dR(e)&&!ei,onClick:()=>{y(dR(e)),k(dT(e)),S(dL(e.scope)?"edit":"view"),dL(e.scope)&&N(e.scope),z(null)},children:[(0,r.jsx)(cM,{active:e.enabled}),(0,r.jsx)(cs,{className:`is-grow${e.enabled?"":" is-muted"}`,children:e.displayName}),i&&(0,r.jsx)("span",{className:"agents-overridden-label",children:d("agents.overridden")})]},dR(e))})]},e)})}),(0,r.jsx)(c$,{active:ei,onClick:()=>{let e="custom-agent",t=2;for(;u.some(t=>t.name===e);)e=`custom-agent-${t++}`;y(null),k({...d$,name:e,displayName:e}),S("create"),N("global"),z(null)},children:d("agents.new")})]}),(0,r.jsx)(cw,{children:(0,r.jsx)(co,{className:"is-fill",children:G||ei?(0,r.jsxs)(co,{children:[(0,r.jsxs)(ca,{children:[(0,r.jsx)(cl,{children:ei?(0,r.jsx)(cx,{value:C,label:d("config.saveTo"),options:["global","project"].map(e=>({value:e,label:d(`agents.scope.${e}`),disabled:M})),path:ea,onChange:N}):(0,r.jsxs)(r.Fragment,{children:[eo&&(0,r.jsx)(cm,{scope:eo,children:d(`agents.scope.${eo}`)}),(0,r.jsx)("span",{title:el,className:"config-detail-path",children:ea})]})}),(0,r.jsxs)(cc,{children:[G&&("view"===w||"edit"===w)&&(0,r.jsx)(cN,{size:"small",onClick:()=>{if(!G)return;let e=function(e,t){let n=new Set(t.map(e=>e.name.toLowerCase())),r=`${e}-copy`,i=r,s=2;for(;n.has(i.toLowerCase());)i=`${r}-${s++}`;return i}(G.name,u);y(null),k({...dT(G),name:e,displayName:d("agents.copyName",{name:G.displayName})}),S("create"),N(dL(G.scope)?G.scope:"global"),z(null)},disabled:M||L,children:d("agents.duplicate")}),G&&dL(G.scope)&&"edit"===w&&(0,r.jsx)(cN,{variant:"danger",size:"small",onClick:()=>void en(),disabled:M||L,children:d("agents.delete")}),(0,r.jsx)(cE,{checked:j.enabled,disabled:ef,label:j.enabled?d("agents.disable"):d("agents.enable"),onChange:e=>void ex(e)})]})]}),(0,r.jsxs)("div",{style:{display:"grid",gridTemplateColumns:c?"1fr":"minmax(0, 1fr) minmax(0, 1fr)",gap:12},children:[(0,r.jsx)(dP,{label:d("agents.name"),children:ei?(0,r.jsx)("input",{"aria-label":d("agents.name"),value:j.name,disabled:es,onChange:e=>em("name",e.target.value),style:dM}):(0,r.jsx)("code",{style:{minHeight:34,display:"flex",alignItems:"center",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",color:"var(--text)",fontSize:12},children:j.name})}),(0,r.jsx)(dP,{label:d("agents.displayName"),children:(0,r.jsx)("input",{"aria-label":d("agents.displayName"),value:j.displayName,disabled:es,onChange:e=>em("displayName",e.target.value),style:eh})})]}),(0,r.jsx)(dP,{label:d("agents.description"),children:(0,r.jsx)("input",{"aria-label":d("agents.description"),value:j.description,disabled:es,onChange:e=>em("description",e.target.value),style:eh})}),(0,r.jsx)(dP,{label:d("agents.prompt"),children:(0,r.jsx)("textarea",{className:"agents-system-prompt","aria-label":d("agents.prompt"),value:j.systemPrompt,disabled:es,onChange:e=>em("systemPrompt",e.target.value),style:{...eh,height:195,minHeight:195,maxHeight:"60vh",padding:9,overflow:"auto",resize:es?"none":"vertical",lineHeight:1.5}})}),(0,r.jsx)(dP,{label:d("agents.tools"),children:(0,r.jsx)("div",{style:{display:"flex",flexWrap:"wrap",gap:"8px 16px"},children:dN.map(e=>(0,r.jsx)(dz,{label:e,disabled:es,checked:j.tools.includes(e),onChange:t=>em("tools",t?[...j.tools,e]:j.tools.filter(t=>t!==e))},e))})}),(0,r.jsxs)(dP,{label:d("agents.resources"),children:[(0,r.jsxs)("div",{style:{display:"flex",flexWrap:"wrap",gap:"8px 20px"},children:[(0,r.jsx)(dz,{label:d("agents.loadSkills"),disabled:es,checked:j.loadSkills,onChange:e=>em("loadSkills",e)}),(0,r.jsx)(dz,{label:d("agents.loadExtensions"),disabled:es,checked:j.loadExtensions,onChange:e=>em("loadExtensions",e)}),(0,r.jsx)(dz,{label:d("agents.mcp"),disabled:es||eg&&"on"!==j.mcp,checked:"on"===j.mcp,onChange:e=>em("mcp",e?"on":"off")})]}),j.loadSkills&&void 0!==j.skills&&(0,r.jsx)("span",{style:{color:"var(--text-dim)",fontSize:11,lineHeight:1.4,overflowWrap:"anywhere"},children:j.skills.length>0?d("agents.skillsOnly",{skills:j.skills.join(", ")}):d("agents.skillsNone")}),j.loadExtensions&&void 0!==j.extensions&&(0,r.jsx)("span",{style:{color:"var(--text-dim)",fontSize:11,lineHeight:1.4,overflowWrap:"anywhere"},children:j.extensions.length>0?d("agents.extensionsOnly",{extensions:j.extensions.join(", ")}):d("agents.extensionsNone")}),!es&&eg?(0,r.jsx)("span",{style:{color:"var(--text-dim)",fontSize:11,lineHeight:1.4},children:d("agents.mcpChatOnly")}):"on"===j.mcp&&(0,r.jsx)("span",{style:{color:"var(--text-dim)",fontSize:11,lineHeight:1.4},children:d("agents.mcpHint")})]}),(0,r.jsx)(dP,{label:d("agents.codemode"),children:(0,r.jsxs)("div",{style:{display:"flex",flexDirection:"column",gap:6},children:[(0,r.jsxs)("select",{"aria-label":d("agents.codemode"),value:j.codemode??"off",disabled:es,onChange:e=>em("codemode",e.target.value),style:{...eh,width:"auto",minWidth:180,alignSelf:"flex-start"},children:[(0,r.jsx)("option",{value:"inherit",children:d("agents.codemode.inherit")}),(0,r.jsx)("option",{value:"on",children:d("agents.codemode.on")}),(0,r.jsx)("option",{value:"off",children:d("agents.codemode.off")})]}),(0,r.jsx)("span",{style:{color:"var(--text-dim)",fontSize:11,lineHeight:1.4},children:d("agents.codemodeHint")})]})}),(0,r.jsxs)("div",{style:{display:"grid",gridTemplateColumns:c?"1fr":"minmax(0, 1.5fr) minmax(120px, 0.75fr) minmax(100px, 0.5fr)",gap:12},children:[(0,r.jsx)(dP,{label:d("agents.model"),children:(0,r.jsxs)("div",{style:{display:"flex",flexDirection:"column",gap:4},children:[(0,r.jsx)(o6,{options:X,value:ep,onChange:(e,t)=>em("model",`${e}/${t}`),onClear:()=>em("model",void 0),emptyLabel:m?d("agents.modelsLoading"):d("agents.inherit"),selectedLabel:j.model&&!eu?d("agents.modelUnavailable",{model:j.model}):j.model!==ed?j.model:void 0,disabled:es||m||0===h.length&&!j.model,ariaLabel:d("agents.model"),variant:"field",placement:"auto"}),x&&(0,r.jsx)("span",{style:{color:"#ef4444",fontSize:10},children:x})]})}),(0,r.jsx)(dP,{label:d("agents.thinking"),children:(0,r.jsx)("select",{"aria-label":d("agents.thinking"),value:j.thinking??"",disabled:es,onChange:e=>em("thinking",e.target.value||void 0),style:eh,children:dE.map(e=>(0,r.jsx)("option",{value:e,children:e||d("agents.inherit")},e||"default"))})}),(0,r.jsx)(dP,{label:d("agents.maxTurns"),children:(0,r.jsx)("input",{"aria-label":d("agents.maxTurns"),type:"number",min:1,value:j.maxTurns??"",disabled:es,onChange:e=>em("maxTurns",e.target.value?Number(e.target.value):void 0),style:eh})})]}),(0,r.jsxs)("div",{style:{display:"flex",flexWrap:"wrap",gap:"10px 20px"},children:[(0,r.jsx)(dz,{label:d("agents.inheritContext"),disabled:es,checked:j.inheritContext,onChange:e=>em("inheritContext",e)}),(0,r.jsx)(dz,{label:d("agents.background"),disabled:es,checked:j.runInBackground,onChange:e=>em("runInBackground",e)})]})]}):(0,r.jsx)(ck,{children:d("agents.empty")})})})]}),(0,r.jsx)(cS,{status:(K||P)&&(0,r.jsx)("span",{role:"alert",style:{color:"#ef4444"},children:K||P}),children:er&&(0,r.jsxs)(cN,{variant:"primary",onClick:()=>void et(),disabled:M||T||L||!j.name.trim(),className:T?"is-success":void 0,children:[T&&(0,r.jsx)("svg",{width:"14",height:"14",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"3",strokeLinecap:"round",strokeLinejoin:"round",className:"config-button-success-icon",children:(0,r.jsx)("polyline",{points:"20 6 9 17 4 12"})}),(0,r.jsx)("span",{children:T?d("i18n.saved"):M?d("agents.saving"):d("agents.save")})]})})]})}let dO=["npm:@scope/pi-plugin","git:https://github.com/user/repo","/absolute/path/to/plugin"];function dF(e){let t=e.trim().match(/^\$?\s*pi\s+install\s+(\S+)\s*$/);return t?.[1]??e}function dD(e){return`${e.scope}\0${e.source}`}function dB(e){return`extension\0${e.path}`}function d_(e,t){return t("project"===e?"skills.scope.project":"skills.scope.global")}function dH(e,t){return t(`plugins.status.${e}`)}function dU(e){return`${e.type}: ${e.source?`${e.source}: `:""}${e.message}`}function dK(e){return"loaded"===e?"var(--accent)":"installed"===e?"#f59e0b":"disabled"===e?"var(--text-dim)":"#ef4444"}function dq(e){let{pkg:t}=e,{t:n}=(0,eG.s)(),i=[["extension",n("i18n.extensions")],["skill",n("i18n.skills")],["prompt",n("i18n.prompts")],["theme",n("i18n.themes")]].map(e=>{let[n,r]=e;return{kind:n,label:r,resources:t.resources.filter(e=>e.kind===n)}}).filter(e=>e.resources.length>0);return 0===i.length?(0,r.jsx)("div",{style:{fontSize:12,color:"var(--text-dim)"},children:n(t.disabled?"i18n.packageDisabled":"i18n.noResolvedResources")}):(0,r.jsx)("div",{style:{display:"flex",flexDirection:"column",gap:12},children:i.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 dZ(e){let{cwd:t,source:n,scope:i,projectResourcesLoaded:s,busy:o,actionError:a,onSourceChange:l,onScopeChange:c,onInstall:d}=e,{t:u}=(0,eG.s)();return(0,r.jsx)(cb,{title:u("i18n.addPlugin"),catalogs:[{href:"https://pi.dev/packages",label:"pi.dev/packages",icon:(0,r.jsxs)("svg",{width:"28",height:"28",viewBox:"0 0 800 800","aria-hidden":"true",focusable:"false",children:[(0,r.jsx)("path",{fill:"#000",fillRule:"evenodd",d:"M165.29 165.29H517.36V400H400V517.36H282.65V634.72H165.29ZM282.65 282.65V400H400V282.65Z"}),(0,r.jsx)("path",{fill:"#000",d:"M517.36 400H634.72V634.72H517.36Z"})]})}],target:(0,r.jsx)(cx,{value:i,label:u("config.saveTo"),options:[{value:"global",label:d_("global",u)},{value:"project",label:d_("project",u),disabled:!s}],path:"project"===i?`${dd(t)}/.pi/{npm,git}`:"~/.pi/agent/{npm,git}",disabledReason:u("trust.projectScopeUnavailable"),onChange:c}),inputLabel:u("config.source"),inputId:"plugin-source",placeholder:"npm:@scope/package",value:n,canSubmit:!o&&!!n.trim(),normalizeValue:dF,onValueChange:l,onSubmit:d,examplesLabel:u("config.examples"),examples:dO,error:a,children:(0,r.jsx)(cN,{variant:"primary",onClick:d,disabled:o||!n.trim(),className:"is-pushed-right",children:u(o?"i18n.installing":"i18n.install")})})}function dV(e){let t,{pkg:n,cwd:s,busyKey:o,actionError:a,actionMessage:l,sessionId:c,updateStatus:d,checkingUpdate:u,updateError:p,onAction:h,onCheckUpdate:f,onReloadSession:m}=e,{t:g}=(0,eG.s)(),x=dD(n),v=(o?.endsWith(x)||o?.startsWith("bulk:"))??!1,b="reload"===o,y=!n.disabled,j=n.canCheckForUpdates,k=d?.state==="update-available",w=n.description?.trim(),S=(0,i.useId)();return(0,r.jsxs)(co,{children:[(0,r.jsxs)("div",{className:"config-detail-heading",children:[(0,r.jsxs)(ca,{className:"is-top-aligned",children:[(0,r.jsxs)(cl,{children:[(0,r.jsx)(cm,{scope:n.scope,children:d_(n.scope,g)}),n.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:g("i18n.disabled")}):n.filtered&&(0,r.jsx)("span",{style:{fontSize:10,padding:"1px 5px",borderRadius:3,background:"rgba(245,158,11,0.12)",color:"#d97706"},children:g("i18n.filtered")}),(0,r.jsx)("span",{style:{fontFamily:"var(--font-mono)",fontSize:12,color:"var(--text)",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:n.source})]}),(0,r.jsxs)(cc,{children:[(0,r.jsx)(cN,{size:"small",variant:k?"primary":void 0,onClick:k||!j?()=>h("update",n):f,disabled:v||b||u,title:k?g("i18n.updateAvailable"):void 0,children:g(o===`update:${x}`?"i18n.updating":u?"i18n.checking":k||!j?"i18n.update":"i18n.check")}),(0,r.jsx)(cN,{size:"small",onClick:m,disabled:!c||b||v,"aria-describedby":c?void 0:S,children:g(b?"i18n.reloading":"i18n.reloadSession")}),(0,r.jsx)(cN,{variant:"danger",size:"small",onClick:()=>h("remove",n),disabled:v||b,children:g(o===`remove:${x}`?"i18n.removing":"i18n.remove")}),(0,r.jsx)(cE,{checked:y,loading:v||b,onChange:()=>h(n.disabled?"enable":"disable",n),label:g(n.disabled?"i18n.enablePackage":"i18n.disablePackage")})]})]}),!c&&(0,r.jsx)("div",{id:S,className:"config-detail-heading-note",children:g("i18n.openSessionToReload")})]}),(0,r.jsxs)(ch,{children:[w&&(0,r.jsx)(cf,{label:g("i18n.description"),children:w}),(0,r.jsx)(cf,{label:g("i18n.status"),tone:"plain",style:{color:dK(n.status),textTransform:"capitalize"},children:dH(n.status,g)}),(0,r.jsxs)(cf,{label:g("i18n.version"),tone:"plain",style:{display:"flex",flexDirection:"column",gap:4},children:[(0,r.jsxs)("div",{className:"skill-version-row",children:[(0,r.jsx)("span",{className:"skill-version-value",children:(t=[],n.version&&t.push(g("i18n.installedVersion",{version:n.version})),n.configuredVersion&&t.push(g("i18n.configuredVersion",{version:n.configuredVersion})),t.length?t.join(" \xb7 "):g("i18n.unknown"))}),k&&(0,r.jsx)("span",{className:"skill-version-value is-update",title:d.displayName,children:g("i18n.updateAvailable")}),j&&(u||d&&!k)&&(0,r.jsx)("span",{className:`skill-update-status ${u?"is-checking":d?.state==="up-to-date"?"is-success":d?.state==="error"?"is-error":"is-muted"}`,children:u?g("i18n.checking"):d?.state==="up-to-date"?g("i18n.upToDate"):d?.state==="unsupported"?g("i18n.automaticChecksUnavailable"):d?.message||g("i18n.checkFailed")})]}),p&&(0,r.jsx)("span",{style:{fontSize:12,color:"#ef4444"},children:p})]}),(0,r.jsx)(cf,{label:g("i18n.package"),mono:!0,children:n.packageName??g("i18n.unknown")}),(0,r.jsx)(cf,{label:g("i18n.resources"),children:function(e,t){if(e.disabled)return t("i18n.disabled");let n=[e.counts.extensions?t("i18n.resourceCount",{count:e.counts.extensions,label:t("i18n.extensionShort")}):"",e.counts.skills?t("i18n.resourceCount",{count:e.counts.skills,label:t("i18n.skillShort")}):"",e.counts.prompts?t("i18n.resourceCount",{count:e.counts.prompts,label:t("i18n.promptShort")}):"",e.counts.themes?t("i18n.resourceCount",{count:e.counts.themes,label:t("i18n.themeShort")}):""].filter(Boolean);return n.length?n.join(" \xb7 "):t("i18n.noResources")}(n,g)}),(0,r.jsx)(cf,{label:g("i18n.installedPath"),tone:n.installedPath?"muted":"error",mono:!0,children:n.installedPath?dd(n.installedPath):g("i18n.notFound")}),(0,r.jsx)(cf,{label:g("i18n.cwd"),tone:"dim",mono:!0,children:dd(s)})]}),(0,r.jsxs)("div",{style:{display:"flex",flexDirection:"column",gap:8},children:[(0,r.jsx)(cu,{children:g("i18n.resolvedResources")}),(0,r.jsx)(dq,{pkg:n})]}),l&&(0,r.jsx)("div",{style:{fontSize:12,color:"#16a34a"},children:l}),a&&(0,r.jsx)("div",{style:{fontSize:12,color:"#ef4444",whiteSpace:"pre-wrap"},children:a})]})}function dJ(e){let{extension:t}=e,{t:n}=(0,eG.s)(),i=t.enabled?"loaded":"disabled";return(0,r.jsxs)(co,{children:[(0,r.jsx)(ca,{children:(0,r.jsxs)(cl,{children:[(0,r.jsx)(cm,{scope:t.scope,children:d_(t.scope,n)}),(0,r.jsx)(cd,{children:t.name})]})}),(0,r.jsxs)(ch,{children:[(0,r.jsx)(cf,{label:n("i18n.status"),tone:"plain",style:{color:t.enabled?"var(--accent)":"var(--text-dim)"},children:dH(i,n)}),(0,r.jsx)(cf,{label:n("i18n.installedPath"),mono:!0,children:dd(t.path)})]})]})}function dY(e){var t;let{cwd:n,sessionId:s,onClose:o,onReloaded:a,embedded:l=!1,trust:c}=e,{t:d}=(0,eG.s)(),[u,p]=(0,i.useState)(null),[h,f]=(0,i.useState)(!0),[m,g]=(0,i.useState)(null),[x,v]=(0,i.useState)(()=>lY("plugins",n)),[b,y]=(0,i.useState)(!1),[j,k]=(0,i.useState)(""),[w,S]=(0,i.useState)("global"),[C,N]=(0,i.useState)(null),[E,$]=(0,i.useState)(null),[M,I]=(0,i.useState)(null),[T,R]=(0,i.useState)(null),[L,A]=(0,i.useState)({}),[P,z]=(0,i.useState)(new Set),[W,O]=(0,i.useState)(!1),[F,D]=(0,i.useState)(null),[B,_]=(0,i.useState)(!1),H=(0,i.useMemo)(()=>u?.packages??[],[u?.packages]),U=(0,i.useMemo)(()=>u?.standaloneExtensions??[],[u?.standaloneExtensions]),K=H.find(e=>dD(e)===x)??null,q=U.find(e=>dB(e)===x)??null,Z=u?.projectResourcesLoaded??!0,V=(0,i.useMemo)(()=>["project","global"].map(e=>({scope:e,packages:H.filter(t=>t.scope===e)})).filter(e=>e.packages.length>0),[H]),J=(0,i.useCallback)(async()=>{f(!0),g(null),R(null);try{let e=await fetch(`/api/plugins?cwd=${encodeURIComponent(n)}`),t=await e.json();if(!e.ok||t.error)throw Error(t.error??`HTTP ${e.status}`);p(t),y(e=>0===t.packages.length&&0===t.standaloneExtensions.length||e),v(e=>e&&(t.packages.some(t=>dD(t)===e)||t.standaloneExtensions.some(t=>dB(t)===e))?e:t.packages[0]?dD(t.packages[0]):t.standaloneExtensions[0]?dB(t.standaloneExtensions[0]):null)}catch(e){g(e instanceof Error?e.message:String(e))}finally{f(!1)}},[n]);(0,i.useEffect)(()=>{A({}),D(null),J()},[n]);let Y=dx(c),G=(0,i.useRef)(Y);(0,i.useEffect)(()=>{G.current!==Y&&(G.current=Y,J())},[Y,J]),(0,i.useEffect)(()=>{x&&lG("plugins",x,n)},[n,x]);let X=(0,i.useCallback)(async e=>{let t=(e?[e]:H.filter(e=>e.canCheckForUpdates)).map(dD);if(0!==t.length){D(null),z(e=>new Set([...e,...t])),e||O(!0);try{let t=await fetch("/api/plugins/check",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({cwd:n,source:e?.source,scope:e?.scope})}),r=await t.json();if(!t.ok||r.error)throw Error(r.error??`HTTP ${t.status}`);A(e=>{let t={...e};for(let e of r.updates??[])t[dD(e)]=e;return t})}catch(e){D(e instanceof Error?e.message:String(e))}finally{z(e=>{let n=new Set(e);for(let e of t)n.delete(e);return n}),e||O(!1)}}},[n,H]),Q=(0,i.useCallback)(async()=>{_(!0),$(null),I(null),D(null);try{let e=await fetch("/api/plugins",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({action:"update",cwd:n})}),t=await e.json();if(!e.ok||t.error)throw Error(t.error??`HTTP ${e.status}`);p(t),A({}),I(d("i18n.packagesUpdated")),s&&I(`${d("i18n.packagesUpdated")} ${d("agents.reloadRequired")}`)}catch(e){$(e instanceof Error?e.message:String(e))}finally{_(!1)}},[n,s,d]),ee=(0,i.useCallback)(async(e,t)=>{let r=dD(t);N(`${e}:${r}`),$(null),I(null),R(null);try{let i=await fetch("/api/plugins",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({action:e,source:t.source,scope:t.scope,cwd:n})}),s=await i.json();if(!i.ok||s.error)throw Error(s.error??`HTTP ${i.status}`);if(p(s),"remove"===e)v(s.packages[0]?dD(s.packages[0]):s.standaloneExtensions[0]?dB(s.standaloneExtensions[0]):null),0===s.packages.length&&0===s.standaloneExtensions.length&&y(!0),I(d("i18n.packageRemoved")),A(e=>{let t={...e};return delete t[r],t});else{let t={install:d("i18n.packageInstalled"),update:d("i18n.packageUpdated"),disable:d("i18n.packageDisabled"),enable:d("i18n.packageEnabled")};I(t[e]),"update"===e&&A(e=>{let t={...e};return delete t[r],t})}}catch(e){$(e instanceof Error?e.message:String(e))}finally{N(null)}},[n,d]),et=(0,i.useCallback)(async(e,t,r)=>{let i=dg(t,r,e=>!e.disabled,e=>e.filtered),o=r?0:t.filter(e=>!e.disabled&&e.filtered).length,a=o>0?d("plugins.bulkKeptFiltered",{count:o}):void 0;if($(null),I(null),R(a?{scope:e,note:a}:null),0===i.length)return;let l=r?"enable":"disable";N(`bulk:${e}`);try{let t=await fetch("/api/plugins",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({action:l,cwd:n,packages:i.map(t=>{let{source:n}=t;return{source:n,scope:e}})})}),o=await t.json();if(!t.ok||o.error||!o.results)throw Error(o.error??`HTTP ${t.status}`);let{results:c,...u}=o;p(u);let h=c.filter(e=>e.error);if(h.length<c.length){let e=r?d("plugins.bulkEnabled"):d("plugins.bulkDisabled");I(s?`${e} ${d("agents.reloadRequired")}`:e)}h.length>0&&R({scope:e,note:a,error:[d("plugins.bulkFailed",{count:h.length,total:c.length}),...h.map(e=>`${e.source}: ${e.error}`)].join("\n")})}catch(t){R({scope:e,note:a,error:t instanceof Error?t.message:String(t)})}finally{N(null)}},[n,s,d]),en=(0,i.useCallback)(async()=>{let e=dF(j).trim();if(!e)return;k(e);let t=`${w}\0${e}`;N(`install:${t}`),$(null),I(null),R(null);try{var r;let i,s,o=await fetch("/api/plugins",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({action:"install",source:e,scope:w,cwd:n})}),a=await o.json();if(!o.ok||a.error)throw Error(a.error??`HTTP ${o.status}`);p(a);let l=(r=a.packages,s=(i=e.trim()).startsWith("npm:")?i.slice(4):i,r.find(e=>e.scope===w&&e.source===i)??r.find(e=>e.scope===w&&e.source===`npm:${s}`)??r.find(e=>e.scope===w&&e.source.endsWith(i)));v(l?dD(l):t),y(!1),k(""),I(d("i18n.packageInstalled"))}catch(e){$(e instanceof Error?e.message:String(e))}finally{N(null)}},[n,w,j,d]),er=(0,i.useCallback)(async()=>{if(s){N("reload"),$(null),I(null),R(null);try{await a0(s,{type:"reload"}),a?.(),await J(),I(d("i18n.sessionReloaded"))}catch(e){$(e instanceof Error?e.message:String(e))}finally{N(null)}}},[J,a,s,d]),ei=C?.startsWith("install:")??!1,es=Object.values(L).filter(e=>"update-available"===e.state).length,eo=H.some(e=>e.canCheckForUpdates),ea=h||null!==C||P.size>0||B;return(0,r.jsxs)(l5,{embedded:l,title:d("common.plugins"),subtitle:dd(n),closeLabel:d("i18n.close"),onClose:o,children:[!Z&&(0,r.jsx)(cj,{message:d("trust.pluginsNotLoaded")}),(0,r.jsxs)(l9,{children:[(0,r.jsxs)(l7,{children:[(0,r.jsx)(ce,{children:h?(0,r.jsx)("div",{className:"config-sidebar-message",children:d("i18n.loading")}):m?(0,r.jsx)("div",{className:"config-sidebar-message is-error",children:m}):0===H.length&&0===U.length?(0,r.jsx)("div",{className:"config-sidebar-message is-empty",children:d("i18n.noPlugins")}):(0,r.jsxs)(r.Fragment,{children:[U.length>0&&(0,r.jsxs)("div",{className:"config-sidebar-group",children:[(0,r.jsx)(ct,{children:d("i18n.extensions")}),U.map(e=>{let t=dB(e);return(0,r.jsxs)(ci,{active:!b&&x===t,title:e.path,onClick:()=>{v(t),y(!1),$(null),I(null)},children:[(0,r.jsx)(cM,{active:e.enabled}),(0,r.jsx)(cs,{className:`is-grow${e.enabled?"":" is-muted"}`,children:e.name})]},t)})]}),V.map(e=>{let t=e.packages.filter(e=>!e.disabled).length,n=t===e.packages.length;return(0,r.jsxs)("div",{className:"config-sidebar-group",children:[(0,r.jsx)(ct,{aside:(0,r.jsx)(cn,{enabled:t,total:e.packages.length,disabled:ea,loading:C===`bulk:${e.scope}`,label:d(n?"plugins.groupSwitchOn":"plugins.groupSwitchOff",{group:d_(e.scope,d)}),onChange:t=>void et(e.scope,e.packages,t)}),children:d_(e.scope,d)}),T?.scope===e.scope&&(0,r.jsx)(cr,{error:T.error,note:T.note}),e.packages.map(e=>{let t=dD(e),n=!b&&x===t;return(0,r.jsxs)(ci,{active:n,title:e.description??e.source,onClick:()=>{v(t),y(!1),$(null),I(null)},children:[(0,r.jsx)(cM,{active:!e.disabled,color:dK(e.status)}),(0,r.jsx)(cs,{className:`is-grow${e.disabled?" is-muted":""}`,children:e.source}),L[dD(e)]?.state==="update-available"&&(0,r.jsx)("span",{title:d("i18n.updateAvailable"),className:"skill-update-indicator",children:"↑"})]},t)})]},e.scope)})]})}),(0,r.jsx)(c$,{active:b,onClick:()=>{y(!0),$(null),I(null)},children:d("i18n.addPlugin")})]}),(0,r.jsx)(cw,{children:(0,r.jsx)(co,{className:"is-fill",children:b?(0,r.jsx)(dZ,{cwd:n,source:j,scope:w,projectResourcesLoaded:Z,busy:ei,actionError:E,onSourceChange:k,onScopeChange:S,onInstall:en}):h?null:q?(0,r.jsx)(dJ,{extension:q}):K?(0,r.jsx)(dV,{pkg:K,cwd:n,busyKey:C,actionError:E,actionMessage:M,sessionId:s,updateStatus:L[dD(K)],checkingUpdate:P.has(dD(K)),updateError:F,onAction:ee,onCheckUpdate:()=>void X(K),onReloadSession:er},dD(K)):(0,r.jsx)(ck,{children:d("i18n.selectPackage")})})})]}),(0,r.jsxs)(cS,{status:es>0?(0,r.jsxs)("span",{style:{fontSize:12,color:"var(--accent)"},children:[es," ",1===es?d("i18n.update"):d("i18n.updates")]}):u?.diagnostics.length?(0,r.jsx)(cC,{tone:u.diagnostics.some(e=>"error"===e.type)?"error":"warning",summary:1===u.diagnostics.length?d("plugins.diagnostic"):d("plugins.diagnostics",{count:u.diagnostics.length}),details:u.diagnostics.map(dU)}):(0,r.jsx)(cC,{summary:u?[d("i18n.resourceCount",{count:(t=u.totals).extensions,label:d("i18n.extensionShort")}),d("i18n.resourceCount",{count:t.skills,label:d("i18n.skillShort")}),d("i18n.resourceCount",{count:t.prompts,label:d("i18n.promptShort")}),d("i18n.resourceCount",{count:t.themes,label:d("i18n.themeShort")})].join(" \xb7 "):""}),children:[!l&&(0,r.jsx)(cN,{onClick:o,children:d("i18n.close")}),eo&&(0,r.jsx)(cN,{variant:es>0?"primary":"secondary",onClick:()=>void(es>0?Q():X()),disabled:ea,title:es>0?d("i18n.updateAllPluginsHint"):void 0,children:B?d("i18n.updating"):W?d("i18n.checking"):es>0?`${d("i18n.updateAllPlugins")} (${es})`:d("i18n.checkUpdates")}),(0,r.jsx)(cN,{variant:"secondary",onClick:()=>void J(),disabled:ea,children:d("i18n.refresh")})]})]})}let dG="\\p{Cc}\\p{Cf}\\p{Zl}\\p{Zp}\\u00A0\\u1680\\u2000-\\u200A\\u202F\\u205F\\u3000\\uFE00-\\uFE0F\\u{E0100}-\\u{E01EF}\\u115F\\u1160\\u3164\\uFFA0\\u2800",dX=RegExp(`[${dG}]`,"gu"),dQ=RegExp(`[${dG}]`,"u");function d0(e){return e.replace(dX,e=>{let t=e.codePointAt(0)??0;return`\\u{${t.toString(16).toUpperCase().padStart(4,"0")}}`})}let d1=/[\s"'`$|&;<>()*?#~]/;function d2(e){let t=dQ.test(e),n=d0(e);return""===n||t||d1.test(n)?`"${n.replace(/"/g,'\\"')}"`:n}function d4(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[];return[e,...t].map(d2).join(" ")}function d8(e){let t=void 0!==e.command?d4(e.command,e.args):void 0,n=void 0!==e.url?d0(e.url):void 0;return"http"===e.transport?n:"stdio"===e.transport?t:n??t}function d3(e){return[e.name,e.command,e.cwd,e.url,...e.args??[],...e.envNames,...e.headerNames].some(e=>void 0!==e&&dQ.test(e))}function d6(e){return"oauth-client-secret"===e.kind?{key:"mcp.field.oauthClientSecret"}:{key:"env"===e.kind?"mcp.field.env":"mcp.field.header",params:{name:d0(e.name??"")}}}function d5(e){return"http"===e.transport?"mcp.server.sendsVariables":"mcp.server.passesVariables"}function d9(e){return e.length>0?{key:"mcp.server.overridesGlobal",params:{keys:e.join(", ")}}:{key:"mcp.server.overridesGlobalNothing"}}function d7(e){return e.flatMap(e=>{let{variables:t,...n}=e;return t.map(e=>({variable:e,field:n}))})}function ue(e,t){return"unparsable"===e.reason||"unreadable"===e.reason?d0(e.error):"link-outside"===e.reason?void 0===t?void 0:d0(t):void 0}let ut="codemode";function un(e){return`${e.scope}\0${e.name}`}function ur(e){return e?.trust?.decision===!0}function ui(e){return"test"===e.origin?e.state:void 0!==e.closedAt||"not-trusted"===e.state?"on":e.state}function us(e,t){return void 0!==e.invalidError?"invalid":e.webPasswordField?"web-password":e.enabled?"project"!==e.scope||t.projectServersLoad?"global"===e.scope&&e.shadowedByProject&&t.projectServersLoad?"replaced":"global"===e.scope&&e.overriddenByProject&&t.projectServersLoad?"overridden":t.mcpAvailable?e.status?ui(e.status):"on":"mcp-off":"not-trusted":"disabled"}let uo={invalid:"mcp.state.invalid","web-password":"mcp.state.web-password",disabled:"mcp.state.disabled","not-trusted":"mcp.state.not-trusted",replaced:"mcp.state.replaced",overridden:"mcp.state.overridden","mcp-off":"mcp.state.mcp-off",connected:"mcp.state.connected","needs-auth":"mcp.state.needs-auth",failed:"mcp.state.failed",connecting:"mcp.state.connecting",disconnected:"mcp.state.disconnected",conflict:"mcp.state.conflict",on:"mcp.state.on"},ua={connected:"mcp.state.session.connected",failed:"mcp.state.session.failed"};function ul(e,t){return(t?.origin==="session"?ua[e]:void 0)??uo[e]}let uc={disconnected:"mcp.stateDetail.disconnected",conflict:"mcp.stateDetail.conflict"},ud={invalid:"mcp.stateShort.invalid","web-password":"mcp.stateShort.web-password",disabled:"mcp.stateShort.disabled","not-trusted":"mcp.stateShort.not-trusted",replaced:"mcp.stateShort.replaced",overridden:"mcp.stateShort.overridden","needs-auth":"mcp.stateShort.needs-auth",failed:"mcp.stateShort.failed",connecting:"mcp.stateShort.connecting",disconnected:"mcp.stateShort.disconnected",conflict:"mcp.stateShort.conflict"};function uu(e){return"on"===e||"connected"===e?"on":"invalid"===e||"web-password"===e||"failed"===e||"conflict"===e?"error":"not-trusted"===e||"needs-auth"===e||"disconnected"===e?"warning":"off"}function up(e){return"on"===e?{active:!0}:"off"===e?{active:!1}:{color:"error"===e?"#ef4444":"#f59e0b"}}function uh(e,t){let n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:Date.now(),r=new Date(e),i=new Date(n);return r.getFullYear()===i.getFullYear()&&r.getMonth()===i.getMonth()&&r.getDate()===i.getDate()?r.toLocaleTimeString(t,{hour:"2-digit",minute:"2-digit"}):r.toLocaleString(t,{dateStyle:"medium",timeStyle:"short"})}let uf={connecting:"mcp.session.state.connecting",connected:"mcp.session.state.connected","needs-auth":"mcp.session.state.needs-auth",failed:"mcp.session.state.failed",disconnected:"mcp.session.state.disconnected",conflict:"mcp.session.state.conflict","not-trusted":"mcp.session.state.not-trusted"},um={connecting:"mcp.session.summary.connecting",connected:"mcp.session.summary.connected","needs-auth":"mcp.session.summary.needs-auth",failed:"mcp.session.summary.failed",disconnected:"mcp.session.summary.disconnected",conflict:"mcp.session.summary.conflict","not-trusted":"mcp.session.summary.not-trusted"},ug={connecting:"off",connected:"on","needs-auth":"warning",failed:"error",disconnected:"warning",conflict:"error","not-trusted":"warning"},ux={codemode:"mcp.exposure.codemode",deferred:"mcp.exposure.deferred",direct:"mcp.exposure.direct",hidden:"mcp.exposure.hidden"},uv=["codemode","deferred","direct","hidden"],ub={codemode:"mcp.exposureShort.codemode",deferred:"mcp.exposureShort.deferred",direct:"mcp.exposureShort.direct",hidden:"mcp.exposureShort.hidden"};function uy(e){return"auto-enable-codemode-invalid"!==e.reason}function uj(e,t){return(t?["project","global"]:["global"]).map(t=>{let n=e.files.find(e=>e.scope===t);return{scope:t,...n?{file:n}:{},servers:e.servers.filter(e=>e.scope===t)}})}function uk(e){return{enabled:e.filter(e=>e.enabled).length,total:e.length}}function uw(e,t){let n=e.flatMap(e=>e.servers.map(un));return t===ut||null!==t&&n.includes(t)?t:n[0]??null}function uS(e){let t=e?.trust;return void 0!==t&&t.requiresTrust&&!t.trusted}function uC(e){return e.projectOverride?.preference??e.preference}let uN={always:"mcp.codemode.projectOverride.always",automatic:"mcp.codemode.projectOverride.automatic"},uE={on:"mcp.codemode.toolMode.onDescription",only:"mcp.codemode.toolMode.onlyDescription"},u$={on:"mcp.codemode.toolMode.projectOverride.on",only:"mcp.codemode.toolMode.projectOverride.only"},uM={automatic:"mcp.codemode.automatic",always:"mcp.codemode.always",unavailable:"mcp.codemode.unavailable",unknown:"i18n.unknown"};function uI(e){return"unavailable"===e?"error":"unknown"===e?"off":"on"}let uT=e=>Array.isArray(e)&&e.every(e=>"string"==typeof e);function uR(e,t){let n=e??{},r=n.breadth,i=n.trust;return{error:"string"==typeof n.error?n.error:`HTTP ${t}`,..."string"==typeof n.reason?{reason:n.reason}:{},..."string"==typeof n.path?{path:n.path}:{},..."string"==typeof n.name?{name:n.name}:{},..."string"==typeof n.suggestedName?{suggestedName:n.suggestedName}:{},...uT(n.names)?{names:n.names}:{},...uT(n.fields)?{fields:n.fields}:{},...Array.isArray(n.notes)?{notes:n.notes.filter(e=>"string"==typeof e?.code)}:{},..."string"==typeof r?.kind&&"string"==typeof r.path?{breadth:r}:{},..."boolean"==typeof i?.requiresTrust&&"boolean"==typeof i.trusted?{trust:i}:{},...!0===n.trustKept?{trustKept:!0}:{}}}async function uL(e,t,n,r){let i,{abortAtDeadline:s=!0}=arguments.length>4&&void 0!==arguments[4]?arguments[4]:{},o=new AbortController,a=()=>o.abort();r?.aborted?o.abort():r?.addEventListener("abort",a,{once:!0});let l=new Promise(e=>{i=setTimeout(()=>{e(t()),s&&o.abort()},n)});try{return await Promise.race([e(o.signal),l])}finally{clearTimeout(i),r?.removeEventListener("abort",a)}}function uA(e){return null!==e&&"object"==typeof e&&"object"==typeof e.mcp&&null!==e.mcp&&"object"==typeof e.codemode&&null!==e.codemode&&Array.isArray(e.files)&&Array.isArray(e.servers)}async function uP(e,t,n){let r,i;try{r=await t(e?`/api/mcp?cwd=${encodeURIComponent(e)}`:"/api/mcp",{cache:"no-store",signal:n})}catch(e){return{ok:!1,error:{error:e instanceof Error?e.message:String(e)}}}try{i=await r.json()}catch{return{ok:!1,error:{error:`HTTP ${r.status}`}}}return r.ok&&uA(i)?{ok:!0,data:i}:{ok:!1,error:uR(i,r.status)}}let uz=new Set(["cwd-invalid","cwd-denied","cwd-not-directory"]);async function uW(e,t,n){let r=await uP(e,t,n);if(r.ok||!e||!r.error.reason||!uz.has(r.error.reason))return r;let i=await uP(null,t,n);return i.ok?{...i,projectError:r.error}:i}async function uO(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:(e,t)=>fetch(e,t),n=arguments.length>2?arguments[2]:void 0,r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:15e3;return uL(n=>uW(e,t,n),()=>({ok:!1,error:{error:`GET /api/mcp did not answer within ${r} ms`,timedOut:!0}}),r,n)}async function uF(e,t,n,r){let i,s;try{i=await n("/api/tools/settings",{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify(e),cache:"no-store",signal:r})}catch(e){return{ok:!1,error:{error:e instanceof Error?e.message:String(e)}}}try{s=await i.json()}catch{return{ok:!1,error:{error:`HTTP ${i.status}`}}}let o=i.ok&&null!==s&&"object"==typeof s?t(s):void 0;return void 0!==o?{ok:!0,stored:o}:{ok:!1,error:uR(s,i.status)}}async function uD(e,t,n){let r=await uF({codemode:e},e=>{var t;return"automatic"===(t=e.codemode)||"always"===t?e.codemode:void 0},t,n);return r.ok?{ok:!0,preference:r.stored}:r}async function uB(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:(e,t)=>fetch(e,t),n=arguments.length>2?arguments[2]:void 0,r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:15e3;return uL(n=>uD(e,t,n),()=>({ok:!1,error:{error:`PUT /api/tools/settings did not answer within ${r} ms`,timedOut:!0}}),r,n)}async function u_(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:(e,t)=>fetch(e,t),n=arguments.length>2?arguments[2]:void 0,r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:15e3;return uL(async n=>{let r=await uF({codemodeMode:e},e=>{var t;return null!==(t=e.codemodeMode)&&"object"==typeof t&&("on"===t.value||"only"===t.value)&&(void 0===t.invalid||"string"==typeof t.invalid)?e.codemodeMode:void 0},t,n);return r.ok?{ok:!0,mode:r.stored}:r},()=>({ok:!1,error:{error:`PUT /api/tools/settings did not answer within ${r} ms`,timedOut:!0}}),r,n)}async function uH(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:(e,t)=>fetch(e,t),n=arguments.length>2?arguments[2]:void 0,r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:15e3;return uL(async n=>{let r=await uF({codemodeInlineBudget:e},e=>{var t;return null!==(t=e.codemodeInlineBudget)&&"object"==typeof t&&(void 0===t.value||"number"==typeof t.value)&&(void 0===t.invalid||"string"==typeof t.invalid)?e.codemodeInlineBudget:void 0},t,n);return r.ok?{ok:!0,inlineBudget:r.stored}:r},()=>({ok:!1,error:{error:`PUT /api/tools/settings did not answer within ${r} ms`,timedOut:!0}}),r,n)}function uU(e){return!e.available&&"builtin-disabled"!==e.reason}function uK(e,t){if(uU(t.mcp))return"mcp-off";if("project"===e){if(!t.project?.trust)return"trust-unreadable";if(!ur(t.project))return"project-untrusted"}}let uq={"mcp-off":"mcp.readOnly.mcp-off","project-untrusted":"mcp.readOnly.project-untrusted","trust-unreadable":"mcp.readOnly.trust-unreadable"};function uZ(e){return!0!==e.notAnObject}function uV(e){return uZ(e)&&void 0===e.webPasswordField}async function uJ(e,t,n){let r,i;try{r=await t("/api/mcp",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(e),cache:"no-store",signal:n})}catch(e){return{ok:!1,error:{error:e instanceof Error?e.message:String(e)}}}try{i=await r.json()}catch{return{ok:!1,error:{error:`HTTP ${r.status}`}}}return r.ok&&uA(i)?{ok:!0,data:i}:{ok:!1,error:uR(i,r.status)}}async function uY(e,t){let n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:(e,t)=>fetch(e,t),r=arguments.length>3?arguments[3]:void 0,i=arguments.length>4&&void 0!==arguments[4]?arguments[4]:15e3,s={...e,...t?{cwd:t}:{}};return uL(e=>uJ(s,n,e),()=>({ok:!1,error:{error:`POST /api/mcp did not answer within ${i} ms`,timedOut:!0}}),i,r)}let uG={"mcp-off":"mcp.test.blocked.mcp-off","project-untrusted":"mcp.test.blocked.project-untrusted","trust-unreadable":"mcp.test.blocked.trust-unreadable",invalid:"mcp.test.blocked.invalid","web-password":"mcp.test.blocked.web-password"};function uX(e,t){let n=uK(e.scope,t);return n||(void 0===e.invalidError&&e.validated?e.webPasswordField?"web-password":void 0:"invalid")}let uQ={"mcp-off":"mcp.test.blocked.mcp-off","project-untrusted":"mcp.test.blocked.project-untrusted","trust-unreadable":"mcp.test.blocked.trust-unreadable","server-invalid":"mcp.test.blocked.invalid","web-password":"mcp.test.blocked.web-password","entry-not-object":"mcp.test.refused.entry-not-object","invalid-request":"mcp.test.refused.invalid-request",unparsable:"mcp.test.refused.unparsable","invalid-shape":"mcp.test.refused.invalid-shape","link-dangling":"mcp.test.refused.link-dangling","link-outside":"mcp.test.refused.link-outside","not-a-file":"mcp.test.refused.not-a-file","too-large":"mcp.test.refused.too-large","too-many-servers":"mcp.test.refused.too-many-servers"},u0={connected:"mcp.test.state.connected","needs-auth":"mcp.test.state.needs-auth",failed:"mcp.test.state.failed",timedOut:"mcp.test.state.timedOut"},u1={connected:"mcp.test.summary.connected","needs-auth":"mcp.test.summary.needs-auth",failed:"mcp.test.summary.failed",timedOut:"mcp.test.summary.timedOut"},u2={connected:"mcp.signIn.summary.connected","needs-auth":"mcp.signIn.summary.needs-auth",failed:"mcp.signIn.summary.failed",timedOut:"mcp.signIn.summary.timedOut"};function u4(e){return(Math.max(0,e)/1e3).toFixed(1)}async function u8(e,t,n){let r,i;try{r=await t("/api/mcp/test",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(e),cache:"no-store",signal:n})}catch(e){return{ok:!1,error:{error:e instanceof Error?e.message:String(e)}}}try{i=await r.json()}catch{return{ok:!1,error:{error:`HTTP ${r.status}`}}}return r.ok&&function(e){if(null===e||"object"!=typeof e)return!1;let t=e.result;return"string"==typeof e.configKey&&"string"==typeof e.name&&("global"===e.scope||"project"===e.scope)&&"object"==typeof t&&null!==t&&"string"==typeof t.state&&Array.isArray(t.tools)&&"number"==typeof t.testedAt}(i)?{ok:!0,data:i}:{ok:!1,error:uR(i,r.status)}}async function u3(e,t){let n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:(e,t)=>fetch(e,t),r=arguments.length>3?arguments[3]:void 0,i=arguments.length>4&&void 0!==arguments[4]?arguments[4]:6e4,s={scope:e.scope,name:e.name,...t?{cwd:t}:{}};return uL(e=>u8(s,n,e),()=>({ok:!1,error:{error:`POST /api/mcp/test did not answer within ${i} ms`,timedOut:!0}}),i,r,{abortAtDeadline:!1})}let u6="•••",u5=new Set(["key","apikey","token","secret","password","passwd","passphrase","pwd","pass","credential","credentials","authorization","bearer","jwt","cookie","signature","pat"]),u9=new Set([...u5,"auth","sig","code","pw"]),u7=["token","secret","password","passwd","apikey"],pe=new Set(["file","path","dir","url","uri","endpoint","id","name","type","header","env","var","length","ttl","expiry","expires","timeout","mode","format"]),pt=new Set(["-k"]);function pn(e){return e.replace(/([a-z0-9])([A-Z])/g,"$1 $2").replace(/([A-Z]+)([A-Z][a-z])/g,"$1 $2").toLowerCase().split(/[^a-z0-9]+/).filter(Boolean)}function pr(e,t){let n=pn(e);return!(n.length>1&&pe.has(n[n.length-1]))&&n.some(e=>t.has(e)||u7.some(t=>e.length>t.length&&e.endsWith(t)))}function pi(e){return pr(e,u5)}let ps=RegExp("^(?:sk-[A-Za-z0-9_-]{16,}|(?:sk|pk|rk)_(?:live|test)_[A-Za-z0-9]{16,}|gh[pousr]_[A-Za-z0-9]{20,}|github_pat_[A-Za-z0-9_]{20,}|glpat-[A-Za-z0-9_-]{16,}|xox[abposr]-[A-Za-z0-9-]{10,}|(?:AKIA|ASIA)[0-9A-Z]{16}|AIza[0-9A-Za-z_-]{30,}|ya29\\.[0-9A-Za-z_-]{20,}|npm_[A-Za-z0-9]{30,}|hf_[A-Za-z0-9]{30,}|shp(?:at|ss|ca|pa)_[A-Fa-f0-9]{20,}|dop_v1_[a-f0-9]{40,}|lin_api_[A-Za-z0-9]{20,})"),po=/^eyJ[A-Za-z0-9_-]{8,}\.[A-Za-z0-9_-]{8,}\.[A-Za-z0-9_-]*$/,pa=/^[A-Za-z0-9_\-+/=.~]+$/;function pl(e){return!(/\s/.test(e)||ph(e))&&(!!(ps.test(e)||po.test(e))||!(e.length<24||!pa.test(e)||/^[./~]/.test(e)||/\.[A-Za-z][A-Za-z0-9]{0,4}$/.test(e)||e.split("/").length>2)&&!!/\d/.test(e)&&!!/[A-Za-z]/.test(e)&&(/[a-z]/.test(e)&&/[A-Z]/.test(e)||/^[0-9a-f]+$/i.test(e)||!/[-_.]/.test(e))&&function(e){let t=new Map;for(let n of e)t.set(n,(t.get(n)??0)+1);let n=0;for(let r of t.values()){let t=r/e.length;n-=t*Math.log2(t)}return n}(e)>=3.5)}let pc=/\$\{[A-Za-z_][A-Za-z0-9_]*\}|\$[A-Za-z_][A-Za-z0-9_]*/,pd=RegExp(pc.source,"g"),pu=/^(?:bearer|basic|token)\s+/i;function pp(e,t,n){let r=e.replace(pu,"");return t.test(r)&&/^[^A-Za-z0-9]*$/.test(r.replace(n,""))}function ph(e){return pp(e.replace(/\$[$!]/g,"_x"),pc,pd)}let pf=/\$\{[A-Za-z_][A-Za-z0-9_]*\}|\$[A-Z_][A-Z0-9_]*(?![A-Za-z0-9_])/,pm=RegExp(pf.source,"g");function pg(e){return pp(e,pf,pm)}function px(e,t){if(!e||""===t)return;e.push(t);let n=py(t);n!==t&&e.push(n)}let pv=/^([A-Za-z][A-Za-z0-9+.-]*:\/\/)([^/?#]*)/;function pb(e,t,n){let r=!1,i=e,s="",o=pv.exec(e);if(o){let[a,l,c]=o,d=c.lastIndexOf("@");if(d>=0&&!t(py(c.slice(0,d)))){s=`${l}${u6}${c.slice(d)}`,r=!0;let e=c.slice(0,d);px(n,e);let t=e.indexOf(":");t>=0&&px(n,e.slice(t+1))}else s=a;i=e.slice(a.length)}let a=i.search(/[?#]/),l=a<0?i:i.slice(0,a),c=a<0?"":i.slice(a),d=l.split("/").map(e=>pl(py(e))?(r=!0,px(n,e),u6):e).join("/");return c=c.replace(/([?&#;])([^&#;]*)/g,(e,i,s)=>{let o=s.indexOf("=");if(o<0){let o=py(s);return!pl(o)||t(o)?e:(r=!0,px(n,s),`${i}${u6}`)}let a=s.slice(0,o),l=py(s.slice(o+1));return""===l||t(l)||!function(e){let t=e;try{t=decodeURIComponent(e)}catch{}return pr(t,u9)}(a)&&!pl(l)?e:(r=!0,px(n,s.slice(o+1)),`${i}${a}=${u6}`)}),{value:`${s}${d}${c}`,masked:r}}function py(e){try{return decodeURIComponent(e)}catch{return e}}let pj=/^(\s*[A-Za-z][A-Za-z0-9 _.-]*=)([\s\S]*)$/;function pk(e,t,n){let r=/^([A-Za-z0-9_-]+):(\s*)([\s\S]*)$/.exec(e);if(r&&""!==r[3]&&!r[3].startsWith("//")&&pi(r[1])){let[,i,s,o]=r;return t(o)?{value:e,masked:!1}:(px(n,o.trim()),{value:`${i}:${s}${u6}`,masked:!0})}let i=e.includes(";")?function(e,t,n){let r=e.split(";");if(r.length<2||!r.every(e=>""===e.trim()||pj.test(e)))return;let i=!1;return{value:r.map(e=>{let r=pj.exec(e);if(!r)return e;let[,s,o]=r;if(""===o.trim()||t(o))return e;if(pi(s.slice(0,-1).trim()))return i=!0,px(n,o.trim()),`${s}${u6}`;let a=pk(o,t,n);return i||=a.masked,`${s}${a.value}`}).join(";"),masked:i}}(e,t,n):void 0;if(i)return i;let s=/^([A-Za-z_][A-Za-z0-9_]*)=([\s\S]*)$/.exec(e);if(s&&""!==s[2]&&pi(s[1]))return t(s[2])?{value:e,masked:!1}:(px(n,s[2]),{value:`${s[1]}=${u6}`,masked:!0});if(/\s/.test(e)){var o,a,l;let r,i;return o=e,a=t,l=n,i=pC((r=o.split(/(\s+)/)).filter((e,t)=>t%2==0),a,!0,l),{value:r.map((e,t)=>t%2==0?i.values[t/2]:e).join(""),masked:i.masked}}if(/^[A-Za-z][A-Za-z0-9+.-]*:\/\//.test(e))return pb(e,t,n);if(s&&""!==s[2]){let e=pk(s[2],t,n);return{value:`${s[1]}=${e.value}`,masked:e.masked}}return pl(e)&&!t(e)?(px(n,e),{value:u6,masked:!0}):{value:e,masked:!1}}function pw(e){if(pt.has(e))return!0;if(!/^--?[A-Za-z]/.test(e))return!1;let t=e.replace(/^-+/,"");return pi(t)||"auth"===pn(t).at(-1)}let pS=/^(?:bearer|basic|token)$/i;function pC(e,t,n,r){let i=!1,s=!1;return{values:e.map(e=>{if(""===e)return e;if(s){if(n&&pS.test(e))return e;if(s=!1,!/^-[A-Za-z-]/.test(e))return t(e)?e:(i=!0,px(r,e),u6)}let o=/^(--?[A-Za-z][A-Za-z0-9_.-]*)=([\s\S]*)$/.exec(e);if(o){let[,e,n]=o;if(""!==n&&pw(e)&&!t(n))return i=!0,px(r,n),`${e}=${u6}`;let s=pk(n,t,r);return i||=s.masked,`${e}=${s.value}`}if(/^--?[A-Za-z][A-Za-z0-9_.-]*$/.test(e))return s=pw(e),e;if(n){let t=/^([A-Za-z0-9_-]+):$/.exec(e);if(pS.test(e)||t&&pi(t[1]))return s=!0,e}let a=pk(e,t,r);return i||=a.masked,a.value}),masked:i}}function pN(e){let{values:t,masked:n}=pC(e,pg,!1);return{args:t,masked:n}}function pE(e){return"object"==typeof e&&null!==e&&!Array.isArray(e)}function p$(e){return!e.startsWith("!")&&!ph(e)}function pM(e){return JSON.parse(e.replace(/^\uFEFF/,"").replace(/"(?:\\.|[^"\\])*"|\/\/[^\n]*|\/\*[\s\S]*?\*\//g,e=>'"'===e[0]?e:"*"===e[1]?" ":"").replace(/"(?:\\.|[^"\\])*"|,(\s*[}\]])/g,(e,t)=>t??('"'===e[0]?e:"")))}let pI={"empty-input":"error","unrecognized-input":"error","invalid-json":"error","no-servers-found":"error","shell-operator":"error","shell-command-substitution":"error","shell-multiple-commands":"error","shell-unterminated-quote":"error","shell-parameter":"error","shell-expansion":"error","unsupported-url-scheme":"error","github-repo-link":"error","github-mcp-page":"error","github-page":"error","by-name-link":"error","badge-image":"error","install-link-invalid":"error","claude-desktop-import":"error","cli-unsupported":"error","cli-usage":"error","cli-unknown-option":"error","cli-option-needs-value":"error","cli-option-wrong-transport":"error","cli-invalid-pair":"error","cli-not-a-server":"error","pi-help":"error","field-required":"error","field-invalid-option":"error","field-reference-invalid":"error","sse-transport":"error","websocket-transport":"error","unsupported-transport":"error","ambiguous-command-and-url":"error","no-command-or-url":"error","zed-extension-server":"error","registry-packages-unsupported":"error","invalid-config":"error","dropped-key":"warning","variable-unsupported-here":"warning","variable-fallback-dropped":"warning","bare-dollar-literal":"warning","header-env-reference":"warning","client-secret-env-reference":"warning","shell-command-value":"warning","shell-variable":"warning","unsupported-variable":"warning","input-undefined":"warning","input-command-unsupported":"warning","timeout-clamped":"warning","timeout-dropped":"warning","timeout-unit-guessed":"warning","env-null-dropped":"warning","oauth-option-dropped":"warning","oauth-disable-unsupported":"warning","callback-url-dropped":"warning","callback-port-dropped":"warning","invalid-exposure-dropped":"warning","tool-filter-imported":"warning","transport-guessed":"warning","insecure-http":"warning","literal-secret":"warning","cli-option-ignored":"warning","cli-option-as-arg":"warning","cli-extra-arguments":"warning","mcp-remote-bridge":"warning","looks-like-pi-config":"warning","workspace-folder-relative":"warning","home-variable-translated":"warning","name-taken":"warning","escaped-value":"info","variable-translated":"info","home-translated":"info","timeout-converted":"info","env-value-stringified":"info","empty-authorization-dropped":"info","imported-disabled":"info","name-derived":"info","name-sanitized":"info","name-deduplicated":"info","command-split":"info","transport-assumed-http":"info","scheme-assumed":"info","client-secret-prompt":"info","userinfo-moved-to-header":"info"};Object.keys(pI);let pT={dollarBrace:!1,bareDollar:!1,percent:!1,braceEnv:!1},pR={dollarBrace:!0,bareDollar:!1,percent:!0,braceEnv:!0},pL={...pR,bareDollar:!0},pA={...pT,braceEnv:!0},pP=/^[A-Za-z_][A-Za-z0-9_]*$/,pz=/\$\{([^{}]*)\}|\$([A-Za-z_][A-Za-z0-9_]*)|%([A-Za-z_][A-Za-z0-9_]*)%|\{(env|file):([^{}]*)\}/g;function pW(e,t){if(!t)return;let n=e[e.length-1];n?.kind==="text"?n.text+=t:e.push({kind:"text",text:t})}function pO(e,t,n){let r=[],i=0;pz.lastIndex=0;for(let s=pz.exec(e);s;s=pz.exec(e)){let[o,a,l,c,d,u]=s,p=o;if(void 0!==a&&t.dollarBrace)p=function(e,t){let n=/^env:([A-Za-z_][A-Za-z0-9_]*)$/.exec(e);if(n)return{kind:"env",name:n[1],from:t};let r=/^input:(.+)$/.exec(e);if(r)return{kind:"input",id:r[1],from:t};if("userHome"===e)return{kind:"home",from:t};if("workspaceFolder"===e||"workspaceRoot"===e||"CLAUDE_PROJECT_DIR"===e)return{kind:"workspace",from:t};if("workspaceFolderBasename"===e)return{kind:"workspace-basename",from:t};if("pathSeparator"===e||"/"===e)return"/";if("CLAUDE_PLUGIN_ROOT"===e||"CLAUDE_PLUGIN_DATA"===e)return{kind:"unsupported",from:t};if(pP.test(e))return{kind:"env",name:e,from:t};let i=/^([A-Za-z_][A-Za-z0-9_]*):?-([\s\S]*)$/.exec(e);return i?{kind:"env",name:i[1],from:t,fallback:i[2]}:/^[A-Za-z]+:/.test(e)?{kind:"unsupported",from:t}:t}(a,o);else if(void 0!==l&&t.bareDollar)p={kind:"env",name:l,from:o};else if(void 0!==c&&t.percent&&n)p={kind:"env",name:c,from:o};else if(void 0!==d&&t.braceEnv)p="env"===d&&pP.test(u)?{kind:"env",name:u,from:o}:{kind:"unsupported",from:o};else if(void 0!==c||void 0!==d){pW(r,e.slice(i,s.index+1)),i=s.index+1,pz.lastIndex=s.index+1;continue}pW(r,e.slice(i,s.index)),"string"==typeof p?pW(r,p):r.push(p),i=s.index+o.length}return pW(r,e.slice(i)),r}function pF(e){let{atStart:t=!0}=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=e.replace(/\$/g,"$$$$");return t&&n.startsWith("!")?`$${n}`:n}function pD(e){return e.startsWith("!")}function pB(e){if(pD(e))return[];let t=[];for(let n=0;n<e.length;n++){if("$"!==e[n])continue;let r=e[n+1];if("$"===r||"!"===r){n++;continue}if("{"===r){let r=e.indexOf("}",n+2);if(r<0)continue;let i=e.slice(n+2,r);pP.test(i)&&!t.includes(i)&&t.push(i),n=r;continue}let i=/^[A-Za-z_][A-Za-z0-9_]*/.exec(e.slice(n+1));i&&(t.includes(i[0])||t.push(i[0]),n+=i[0].length)}return t}let p_=/<[A-Za-z][^<>\n]{0,80}>|\{\{\s*[A-Za-z_][\w.-]*\s*\}\}|\b[Yy][Oo][Uu][Rr][_-][A-Za-z0-9_.-]*[A-Za-z0-9]|\b[A-Za-z0-9_-]{0,80}[A-Za-z0-9][_-](?:HERE|[Hh]ere)\b|\b(?:REPLACE[_-]?ME|CHANGE[_-]?ME|PLACEHOLDER)\b|\bMY_[A-Z0-9_]*(?:KEY|TOKEN|SECRET|PASSWORD|PAT)\b|\b(?:sk|pk|ghp|gho|github_pat|glpat|xoxb|xoxp)[_-][xX*]{4,}\b|\b[xX]{6,}\b/g,pH=/^(?:\.\.\.|…|\*{3,}|x{3,}|TODO|FIXME|changeme|change[-_]me|replace[-_]?me|placeholder|redacted|\[[^\]]+\])$/i,pU=/(?:^|[\\/])(?:path[\\/]to(?:[\\/]|$)|Users[\\/](?:username|yourname|your[-_][A-Za-z_-]+|user[-_]?name|<[^>]+>)(?:[\\/]|$)|home[\\/](?:username|yourname|your[-_][A-Za-z_-]+|<[^>]+>)(?:[\\/]|$))/i,pK=/^(Bearer|Basic|Token|Bot|ApiKey|Api-Key)\s+(.+)$/i;function pq(e){return e.join("\0")}function pZ(e){return"args"===e[0]?`args[${e[1]}]`:e.join(".")}function pV(e){return"env"===e[0]||"headers"===e[0]||"oauth"===e[0]&&"clientSecret"===e[1]}function pJ(e){return"command"===e[0]||"args"===e[0]||"cwd"===e[0]}let pY=new Set(["HOME","USERPROFILE"]);class pG{constructor(e,t){this.source=e,this.rawPi=t,this.args=[],this.env=[],this.headers=[],this.oauth={},this.notes=[]}note(e,t){let n=JSON.stringify([e,t??{}]);this.notes.some(e=>JSON.stringify([e.code,e.params??{}])===n)||this.notes.push(t?{code:e,params:t}:{code:e})}}function pX(e){return e.map(e=>"text"in e?e.text:e.from).join("")}let pQ=/\$\{[^{}]*\}/g,p0=new Set(["variable","home","workspace-basename","unsupported-variable","input"]);class p1{constructor(e){this.draft=e,this.fields=new Map,this.argTexts=e.args.map(pX),this.urlText=pX(e.url??[])}encode(e,t){let n,r=pV(e),i=pZ(e),s=pX(t),o=[],a=!1,l=()=>o.every(e=>""===e),c=e=>{if(!r)return void o.push(e);let t=/\$([A-Za-z_][A-Za-z0-9_]*)/.exec(e);t&&this.draft.note("bare-dollar-literal",{field:i,name:t[1]});let n=pF(e,{atStart:l()});n!==e&&(a=!0),o.push(n)},d=e=>o.push(e),u=e=>o.push({field:e});if(!r&&pJ(e)&&1===t.length&&"text"in t[0]&&pU.test(s)){let t="args"===e[0]?/^(?:--?[A-Za-z][A-Za-z0-9_.-]*|[A-Za-z_][A-Za-z0-9_]*)=/.exec(s)?.[0]??"":"",n=s.slice(t.length);if(pU.test(n))return t&&d(t),u(this.field(e,"placeholder-path",n,n,"text")),this.target(e,o,void 0)}let p=0;return t.forEach((o,a)=>{let h=t[a+1],f=void 0===h||"text"in h&&/^[\\/]/.test(h.text),m=(t,r,i)=>{let o=0;for(let[c,d]of function(e){let t=e.trim();if(pH.test(t)){let n=e.indexOf(t);return[[n,n+t.length]]}let n=pK.exec(t);if(n&&pH.test(n[2].trim())){let t=e.lastIndexOf(n[2].trim());return[[t,t+n[2].trim().length]]}let r=[];p_.lastIndex=0;for(let t=p_.exec(e);t;t=p_.exec(e))/^your[-_]/.test(t[0])&&/[@/]/.test(e[t.index-1]??"")||r.push([t.index,t.index+t[0].length]);return r}(t)){var a,l;if(i.some(e=>{let[t,n]=e;return c<n&&d>t}))continue;c>o&&r(t.slice(o,c)),"url"===e[0]&&p2(s,p+c)&&(n="uri-component");let h=t.slice(c,d);u(this.field(e,"placeholder",(a=e,l=h,"env"===a[0]||"headers"===a[0]?a[1]:l.replace(/^[<{\s]+|[>}\s]+$/g,"")||pZ(a)),h)),o=d}o<t.length&&r(t.slice(o))};switch(o.kind){case"text":m(o.text,c,[]);break;case"pi":{var g;let e=h?(g=o.text,(/\$+$/.exec(g)?.[0].length??0)%2==1?`${g}$`:g):o.text;if(r&&l()&&pD(e)){this.draft.note("shell-command-value",{field:i}),d(e);break}let t=[...e.matchAll(pQ)].map(e=>[e.index,e.index+e[0].length]);m(e,d,t);break}case"env":r?(d(`\${${o.name}}`),void 0!==o.fallback&&this.draft.note("variable-fallback-dropped",{field:i,name:o.name,fallback:o.fallback}),o.shell?this.draft.note("shell-variable",{field:i,name:o.name}):o.from!==`\${${o.name}}`&&this.draft.note("variable-translated",{field:i,from:o.from,to:`\${${o.name}}`})):pJ(e)&&l()&&pY.has(o.name)&&f?(d("~"),this.draft.note("home-translated",{field:i,from:o.from})):(u(this.field(e,"variable",o.name,o.from,void 0,o.fallback)),this.draft.note(o.shell?"shell-variable":"variable-unsupported-here",{field:i,name:o.name}));break;case"input":u(this.inputField(e,o));break;case"home":r?(d("${HOME}"),this.draft.note("home-variable-translated",{field:i,from:o.from,to:"${HOME}"})):pJ(e)&&l()&&f?(d("~"),this.draft.note("home-translated",{field:i,from:o.from})):u(this.field(e,"home","userHome",o.from,"text"));break;case"workspace":"url"===e[0]||"oauth"===e[0]?u(this.field(e,"variable","workspaceFolder",o.from,"text")):(d("."),this.draft.note("workspace-folder-relative",{field:i,from:o.from}));break;case"workspace-basename":u(this.field(e,"workspace-basename","workspaceFolderBasename",o.from,"text"));break;case"unsupported":u(this.field(e,"unsupported-variable",o.from,o.from)),this.draft.note("unsupported-variable",{field:i,variable:o.from});break;case"prompt":"url"===e[0]&&p2(s,p)&&(n="uri-component"),u(this.promptField(e,o))}p+=("text"in o?o.text:o.from).length}),a&&this.draft.note("escaped-value",{field:i}),this.target(e,o,n)}target(e,t,n){let r=t.filter(e=>""!==e);for(let t of new Set(r.flatMap(e=>"string"==typeof e?[]:[e.field]))){let i=this.fields.get(t);i.targets.some(t=>pq(t.path)===pq(e))||i.targets.push({path:e,parts:r,...n?{encoding:n}:{}})}return r.map(e=>"string"==typeof e?e:this.fields.get(e.field).placeholder??"").join("")}field(e,t,n,r,i,s){let o=p0.has(t)?`${t}.${n}`:pZ(e);if(p0.has(t)){if(this.fields.has(o))return o}else for(let t=2;this.fields.has(o);t++)o=`${pZ(e)}#${t}`;let a=this.isSecretContext(e,r)||pi(n),l="headers"===e[0]&&"authorization"===e[1].toLowerCase();return this.fields.set(o,{id:o,kind:i??(a?"password":"text"),reason:t,label:n,placeholder:r,...void 0!==s?{defaultValue:s}:{},..."placeholder"===t&&l?{optional:!0}:{},targets:[]}),o}inputField(e,t){let n=`input.${t.id}`;if(this.fields.has(n))return n;let r=this.draft.inputs?.get(t.id);r?"command"===r.type&&this.draft.note("input-command-unsupported",{id:t.id}):this.draft.note("input-undefined",{id:t.id});let i=r?.type==="pickString"&&r.options&&r.options.length>0?r.options:void 0,s=r?.password===!0||this.isSecretContext(e,t.from);return this.fields.set(n,{id:n,kind:i?"select":s?"password":"text",reason:"input",label:t.id,placeholder:t.from,...r?.description?{description:r.description}:{},...r?.default!==void 0?{defaultValue:r.default}:{},...i?{options:i}:{},targets:[]}),n}promptField(e,t){return this.fields.has(t.id)||this.fields.set(t.id,{id:t.id,kind:t.options?"select":t.secret||this.isSecretContext(e,t.from)?"password":"text",reason:t.reason,label:t.label,placeholder:t.from,...t.description?{description:t.description}:{},...void 0!==t.defaultValue?{defaultValue:t.defaultValue}:{},...t.options?{options:t.options}:{},...t.optional?{optional:!0}:{},targets:[]}),t.id}isSecretContext(e,t){switch(e[0]){case"env":case"headers":return pi(e[1]);case"oauth":return"clientSecret"===e[1];case"args":{if(pN([this.argTexts[e[1]]??""]).masked)return!0;let t=this.argTexts[e[1]-1];return void 0!==t&&pN([t,"x"]).args[1]===u6}case"url":{var n;let e=this.urlText.indexOf(t),r=e<0?void 0:/[?&]([^=&?#]+)=[^&#]*$/.exec(this.urlText.slice(0,e))?.[1];return void 0!==r&&(n=r,pb(`https://host.invalid/?${n}=x`,pg).masked)}default:return!1}}}function p2(e,t){let n=e.indexOf("//"),r=e.slice(n<0?0:n+2).search(/[/?#]/);return r>=0&&t>=(n<0?0:n+2)+r}function p4(e,t,n){let r=n?void 0:function(e){let t;try{t=new URL(e)}catch{return}if(""===t.username&&""===t.password)return;let n=e=>{try{return decodeURIComponent(e)}catch{return e}},r=new TextEncoder().encode(`${n(t.username)}:${n(t.password)}`),i="";for(let e of r)i+=String.fromCharCode(e);return t.username="",t.password="",{url:t.toString(),authorization:`Basic ${btoa(i)}`}}(t);if(!r){e.url=[{kind:"text",text:t}];return}e.url=[{kind:"text",text:r.url}],e.headers.push(["Authorization",[{kind:"text",text:r.authorization}]]),e.note("userinfo-moved-to-header")}let p8=/^[A-Za-z0-9_-]+$/;function p3(e,t){let n=new Set(t);if(!n.has(e))return e;for(let t=2;;t++){let r=`${e}-${t}`;if(!n.has(r))return r}}let p6=new Set(["mcp","server","mcp-server","mcpserver","cli","index","main","app","src","dist","build","bin","lib"]);function p5(e){let t=e.trim(),n=t.lastIndexOf("@");n>0&&(t=t.slice(0,n)),t=t.replace(/==.*$|\[.*\]$/,"");let r="",i=/^@([^/]+)\/(.+)$/.exec(t);if(i)r=i[1],t=i[2];else if(t.includes("/")){let e=t.split("/").filter(Boolean);t=e[e.length-1]??t}let s=p7(t);return s&&!p6.has(s.toLowerCase())?s:p7(r)||r||s||t}let p9=[/^mcp[-_]server[-_]/i,/^server[-_]/i,/^mcp[-_]/i,/[-_]mcp[-_]server$/i,/[-_]mcp$/i,/[-_]server$/i];function p7(e){let t=e;for(let e=!0;e;)for(let n of(e=!1,p9)){let r=t.replace(n,"");r!==t&&r&&(t=r,e=!0)}return t}let he=new Set(["mcp","www","api","app","server","servers","remote","gateway"]);function ht(e){let t;try{t=new URL(e).hostname}catch{return""}if("localhost"===t||"127.0.0.1"===t||"[::1]"===t||"::1"===t)return"local";if(/^\d+(?:\.\d+){3}$/.test(t))return"";let n=t.split(".").filter(Boolean);n.length>1&&n.pop(),n.length>1&&/^(?:co|com|org|net|ac|gov)$/.test(n[n.length-1])&&n.pop();let r=n.filter(e=>!he.has(e.toLowerCase()));return r[r.length-1]??n[n.length-1]??""}let hn=new Set(["-e","--env","--env-file","-v","--volume","-p","--publish","--name","--network","--net","-w","--workdir","-u","--user","--mount","--entrypoint","-l","--label","--platform","--pull","-h","--hostname","--add-host","--cpus","-m","--memory","--restart","--runtime","--cap-add","--cap-drop","--device","--dns","--ipc","--pid","--security-opt","--tmpfs","--ulimit","--log-driver","--log-opt","--gpus"]);function hr(e,t){for(let n=0;n<e.length;n++){let r=e[n];if("--"===r)return e[n+1];if(r.startsWith("-")){!r.includes("=")&&t.has(r)&&n++;continue}return r}}function hi(e){let t=e.split(/[\\/]/).filter(Boolean);for(let e=t.length-1;e>=0;e--){let n=t[e].replace(/\.[A-Za-z0-9]+$/,"");if(!p6.has(n.toLowerCase())&&"."!==n&&".."!==n)return p7(n.replace(/_/g,"-"))||n}return""}function hs(e,t){ho(e,t)&&ha(e,Math.ceil(t/1e3),t)}function ho(e,t){return!!("number"==typeof t&&Number.isFinite(t))&&t>0||(void 0!==t&&e.note("timeout-dropped",{value:String(t)}),!1)}function ha(e,t,n){let r=Math.min(Math.max(t,1),3600);void 0!==n&&e.note("timeout-converted",{from:n,to:r}),r!==t&&e.note("timeout-clamped",{from:t,to:r}),e.timeout=r}let hl=["codemode","deferred","direct","hidden"],hc={"codemode-deferred":"codemode"},hd=["localhost","127.0.0.1","[::1]"];function hu(e){return"string"==typeof e&&hl.includes(e)?e:"string"==typeof e&&Object.hasOwn(hc,e)?hc[e]:void 0}function hp(e){try{return new URL(e)}catch{return}}function hh(e){let t=hp(e);return void 0!==t&&"http:"===t.protocol&&hd.includes(t.hostname)&&""===t.search&&""===t.hash}function hf(e){return"object"==typeof e&&null!==e&&!Array.isArray(e)}function hm(e){return hf(e)&&Object.values(e).every(e=>"string"==typeof e)}function hg(e,t){if(!p8.test(e))return{problem:"name",name:e};if(!hf(t))return{problem:"not-an-object"};let{type:n,exposure:r,enabled:i,timeout:s,toolExposure:o,description:a}=t;if(void 0!==r&&!hu(r))return{problem:"exposure",value:String(r)};if(void 0!==o){if(!hf(o))return{problem:"tool-exposure"};for(let[e,t]of Object.entries(o))if(!hu(t))return{problem:"tool-exposure",tool:e}}if(void 0!==i&&"boolean"!=typeof i)return{problem:"enabled"};if(void 0!==a&&"string"!=typeof a)return{problem:"description"};if(void 0!==s&&("number"!=typeof s||!(s>0)))return{problem:"timeout",value:String(s)};if("sse"===n)return{problem:"sse"};if("string"==typeof t.url&&(void 0===n||"http"===n||"streamable-http"===n)){let e=hp(t.url);if(!e||!/^https?:$/.test(e.protocol))return{problem:"url",url:t.url};if(void 0!==t.headers&&!hm(t.headers))return{problem:"headers"};let n=function(e){var t;let n;if(void 0===e)return;if(!hf(e))return{problem:"oauth"};if(void 0!==e.clientId&&"string"!=typeof e.clientId)return{problem:"oauth-client-id"};if(void 0!==e.clientSecret&&"string"!=typeof e.clientSecret)return{problem:"oauth-client-secret"};let r=e.callbackPort;if(void 0!==r&&("number"!=typeof r||!Number.isInteger(r)||r<1||r>65535))return{problem:"callback-port",value:String(r)};if(void 0!==e.callbackUrl){if("string"!=typeof e.callbackUrl||!hh(e.callbackUrl))return{problem:"callback-url",value:String(e.callbackUrl)};let t=new URL(e.callbackUrl).port;if(t&&void 0!==r&&Number(t)!==r)return{problem:"callback-port-mismatch",value:t}}if(void 0!==e.scope&&"string"!=typeof e.scope)return{problem:"oauth-scope"};if(void 0!==e.clientName&&("string"!=typeof e.clientName||!e.clientName.trim()))return{problem:"oauth-client-name"};if(void 0!==e.clientRegistration&&"dcr"!==e.clientRegistration){if("cimd"!==e.clientRegistration)return{problem:"oauth-client-registration",value:String(e.clientRegistration)};if(void 0!==e.clientId||void 0!==e.clientName)return{problem:"oauth-client-registration-client"};let t="string"==typeof e.callbackUrl?hp(e.callbackUrl):void 0;if(t&&("[::1]"===t.hostname||"/callback"!==t.pathname))return{problem:"oauth-client-registration-callback"}}if(void 0!==e.authServerMetadataUrl&&!(void 0!==(n="string"==typeof(t=e.authServerMetadataUrl)?hp(t):void 0)&&("https:"===n.protocol||"http:"===n.protocol&&hd.includes(n.hostname))))return{problem:"auth-server-metadata-url",value:String(e.authServerMetadataUrl)}}(t.oauth);if(n)return n;let r=t.auth;if(void 0!==r){if(!hf(r)||"string"!=typeof r.provider||!r.provider)return{problem:"auth"};if("https:"!==e.protocol&&!hd.includes(e.hostname))return{problem:"auth-url"}}return}return"string"==typeof t.command&&(void 0===n||"stdio"===n)?void 0===t.args||Array.isArray(t.args)&&t.args.every(e=>"string"==typeof e)?void 0===t.env||hm(t.env)?void 0!==t.cwd&&"string"!=typeof t.cwd?{problem:"cwd"}:void 0:{problem:"env"}:{problem:"args"}:{problem:"no-command-or-url"}}let hx=/[A-Za-z_]/,hv=/[A-Za-z0-9_]/,hb=/^[A-Za-z_][A-Za-z0-9_]*$/,hy=new Set([..." \n'\"\\$`|&;<>()#*?[]{}!~="]),hj=new Set([..."|&;<>()"]),hk=/[0-9@*#?$!-]/,hw={n:"\n",t:" ",r:"\r",a:"\x07",b:"\b",e:"\x1b",E:"\x1b",f:"\f",v:"\v","\\":"\\","'":"'",'"':'"',"?":"?"};function hS(e,t){let n=t+1;for(;" "===e[n]||" "===e[n];)n++;return"\r"===e[n]&&"\n"===e[n+1]?n+2-t:"\n"===e[n]?n+1-t:0}function hC(e,t){return/^(?:[A-Za-z]:\\|\\\\[A-Za-z0-9.$_-])/.test(e.slice(t,t+4))}class hN{constructor(e){this.input=e,this.index=0,this.words=[],this.windowsWord=!1,this.lineBreak=!1}run(){try{this.scan()}catch(e){if(e instanceof hE)return{ok:!1,error:e.detail};throw e}return{ok:!0,words:this.words}}fail(e){throw new hE(e)}startWord(){return this.parts||(this.lineBreak&&this.fail({code:"multiple-commands"}),this.parts=[],this.windowsWord=hC(this.input,this.index)),this.parts}endWord(){if(!this.parts)return;let e=this.parts.filter(e=>"text"!==e.type||""!==e.value),t=e.length>0?e:this.parts.slice(0,1);this.words.push({parts:t,text:t.map(e=>"text"===e.type?e.value:e.raw).join("")}),this.parts=void 0,this.windowsWord=!1}appendText(e,t){let n=this.startWord(),r=n[n.length-1];r?.type==="text"&&r.quote===t?r.value+=e:n.push({type:"text",value:e,quote:t})}scan(){let{input:e}=this;for(;this.index<e.length;){let t=e[this.index];if(" "===t||" "===t)this.endWord(),this.index++;else if("\r"===t&&"\n"===e[this.index+1])this.index++;else if("\n"===t)this.endWord(),this.words.length>0&&(this.lineBreak=!0),this.index++;else if(("\\"===t||"^"===t||"`"===t)&&hS(e,this.index)>0)this.index+=hS(e,this.index);else if("#"!==t||this.parts)"'"===t?(this.startWord(),this.singleQuoted()):'"'===t?(this.startWord(),this.doubleQuoted()):"$"===t?this.dollar("none"):"`"===t?this.fail({code:"command-substitution",syntax:"`"}):hj.has(t)?this.fail({code:"shell-operator",operator:function(e,t){let n=e.slice(t,t+2);return["||","&&",";;",">>","<<",">&","<&",">|","<(",">(","&>"].includes(n)?n:e[t]}(e,this.index)}):"\\"===t?this.backslash():(this.appendText(t,"none"),this.index++);else for(;this.index<e.length&&"\n"!==e[this.index];)this.index++}this.endWord()}backslash(){let e=this.input[this.index+1];if(this.startWord(),void 0===e||this.windowsWord||!hy.has(e)){this.appendText("\\","none"),this.index++;return}this.appendText(e,"none"),this.index+=2}singleQuoted(){let e=this.input.indexOf("'",this.index+1);e<0&&this.fail({code:"unterminated-quote",quote:"'"}),this.appendText(this.input.slice(this.index+1,e),"single"),this.index=e+1}doubleQuoted(){let{input:e}=this,t=hC(e,this.index+1);for(this.index++,this.appendText("","double");this.index<e.length;){let n=e[this.index];if('"'===n)return void this.index++;if("\\"===n){let n=e[this.index+1];"\n"===n?this.index+=2:"\r"===n&&"\n"===e[this.index+2]?this.index+=3:'"'!==n&&(t||"$"!==n&&"`"!==n&&"\\"!==n)?(this.appendText("\\","double"),this.index++):(this.appendText(n,"double"),this.index+=2)}else"$"===n?this.dollar("double"):"`"===n?this.fail({code:"command-substitution",syntax:"`"}):(this.appendText(n,"double"),this.index++)}this.fail({code:"unterminated-quote",quote:'"'})}ansiQuoted(){let{input:e}=this;this.index+=2;let t="";for(;this.index<e.length;){let n=e[this.index];if("'"===n){this.appendText(t,"ansi"),this.index++;return}if("\\"!==n){t+=n,this.index++;continue}let r=e[this.index+1];if("x"===r&&/^[0-9A-Fa-f]{1,2}/.test(e.slice(this.index+2))){let n=/^[0-9A-Fa-f]{1,2}/.exec(e.slice(this.index+2))[0];t+=String.fromCharCode(parseInt(n,16)),this.index+=2+n.length}else if(("u"===r||"U"===r)&&/^[0-9A-Fa-f]{1,8}/.test(e.slice(this.index+2))){let n=RegExp(`^[0-9A-Fa-f]{1,${"u"===r?4:8}}`).exec(e.slice(this.index+2))[0],i=parseInt(n,16);t+=i>1114111||i>=55296&&i<=57343?e.slice(this.index,this.index+2+n.length):String.fromCodePoint(i),this.index+=2+n.length}else void 0!==r&&r in hw?(t+=hw[r],this.index+=2):(t+="\\",this.index++)}this.fail({code:"unterminated-quote",quote:"'"})}dollar(e){let{input:t}=this,n=t[this.index+1];if("("===n&&this.fail({code:"command-substitution",syntax:"("===t[this.index+2]?"$((":"$("}),"none"===e&&"'"===n){this.startWord(),this.ansiQuoted();return}if("none"===e&&'"'===n){this.startWord(),this.index++,this.doubleQuoted();return}if("{"===n)return void this.braced(e);if(void 0!==n&&hx.test(n)){let n=this.index+1;for(;n<t.length&&hv.test(t[n]);)n++;let r=t.slice(this.index+1,n);this.startWord().push({type:"variable",name:r,raw:`$${r}`,quote:e}),this.index=n;return}void 0!==n&&hk.test(n)&&this.fail({code:"shell-parameter",parameter:`$${n}`}),this.appendText("$",e),this.index++}braced(e){let{input:t}=this,n=t.indexOf("}",this.index+2);n<0&&this.fail({code:"unsupported-expansion",expansion:t.slice(this.index)});let r=t.slice(this.index,n+1),i=r.slice(2,-1);if(/^[0-9@*#?$!-]$/.test(i)&&this.fail({code:"shell-parameter",parameter:r}),hb.test(i)){this.startWord().push({type:"variable",name:i,raw:r,quote:e}),this.index=n+1;return}let s=/^([A-Za-z_][A-Za-z0-9_]*):?-([\s\S]*)$/.exec(i);if(s&&!/[$`{}\\'"]/.test(s[2])){this.startWord().push({type:"variable",name:s[1],raw:r,quote:e,fallback:s[2]}),this.index=n+1;return}this.fail({code:"unsupported-expansion",expansion:r})}}class hE extends Error{constructor(e){super(e.code),this.detail=e}}function h$(e){return new hN(e).run()}function hM(e){return e.parts.every(e=>"text"===e.type)?e.text:void 0}function hI(e){return"object"==typeof e&&null!==e&&!Array.isArray(e)}let hT=["httpUrl","trust","includeTools","excludeTools","authProviderType","targetAudience","targetServiceAccount","tcp"];function hR(e){if(hT.some(t=>t in e))return!0;let t=e.oauth;return hI(t)&&["redirectUri","authorizationUrl","tokenUrl","audiences","tokenParamName"].some(e=>e in t)}function hL(e){if(!hI(e))return!1;let{command:t,url:n,serverUrl:r,httpUrl:i}=e;return"string"==typeof t&&""!==t||Array.isArray(t)&&"string"==typeof t[0]||hI(t)&&"string"==typeof t.path||"string"==typeof n||"string"==typeof r||"string"==typeof i}function hA(e){switch(e.toLowerCase().replace(/[-_]/g,"")){case"stdio":case"local":return"stdio";case"http":case"streamablehttp":case"remote":return"http";case"sse":return"sse";case"ws":case"wss":case"websocket":return"ws";default:return"unknown"}}function hP(e){try{let t=new URL(e);if(!/\/sse\/?$/.test(t.pathname))return;return t.pathname=t.pathname.replace(/\/sse\/?$/,"/mcp"),t.toString()}catch{return}}function hz(e,t){let n=t?hP(t):void 0;return{code:"sse-transport",params:{...e?{server:e}:{},...t?{url:t}:{},...n?{suggestedUrl:n}:{}}}}function hW(e){return e?{server:e}:{}}function hO(e){return"string"==typeof e?e:"number"==typeof e||"boolean"==typeof e?String(e):void 0}function hF(e,t,n){let r;if(!hI(t))return{note:{code:"no-command-or-url",params:hW(e)}};let i=new Set,s=e=>(i.add(e),t[e]),o=n.rawPi,a=function(e,t){switch(e.flavor){case"zed":return pT;case"opencode":return pA;case"vscode":return pR;default:return hR(t)?pL:pR}}(n,t),l=s("name"),c=e??("string"==typeof l?l:void 0),d=new pG(n.source,o),u=(e,t)=>{if(o)return e?[{kind:"pi",text:e}]:[];return t&&"mcp-servers"===n.flavor&&/^!|\$\$|\$!/.test(e)&&d.note("looks-like-pi-config"),pO(e,a,t)};d.name=c,d.inputs=n.inputs;let p=s("inputs");Array.isArray(p)&&(d.inputs=new Map([...n.inputs??[],...h_(p)]));let h=s("type"),f=s("command"),m=[s("httpUrl"),s("url"),s("serverUrl")].find(e=>"string"==typeof e);if("tcp"in t)return{note:{code:"websocket-transport",params:hW(c)}};if(void 0!==h&&"unknown"===(r="string"==typeof h?hA(h):"unknown"))return{note:{code:"unsupported-transport",params:{...hW(c),type:String(h)}}};let g="string"==typeof f&&""!==f||Array.isArray(f)||hI(f),x=void 0!==m;if("sse"===r)return{note:hz(c,m)};if("ws"===r)return{note:{code:"websocket-transport",params:{...hW(c),...m?{url:m}:{}}}};if(void 0===r){if(g&&x)return{note:{code:"ambiguous-command-and-url",params:hW(c)}};if(x){if(void 0!==hP(m))return{note:hz(c,m)};r="http","mcp-servers"===n.flavor&&"string"==typeof t.url&&"string"!=typeof t.httpUrl&&d.note("transport-guessed")}else{if(!g)return{note:{code:"no-command-or-url",params:hW(c)}};r="stdio"}}if("stdio"!==r&&"http"!==r)return{note:{code:"unsupported-transport",params:{...hW(c),type:String(h)}}};if("stdio"===r&&!g||"http"===r&&!x)return{note:{code:"no-command-or-url",params:hW(c)}};if(d.transport=r,"stdio"===r){let e=function(e,t,n,r,i,s){let o,a=r("args"),l=r("opencode"===s.flavor?"environment":"env");if("opencode"===s.flavor&&void 0===l&&(l=r("env")),Array.isArray(n)){if(!n.every(e=>"string"==typeof e)||0===n.length)return{code:"invalid-config",params:{...hW(e.name),problem:"args"}};o=n[0],a=[...n.slice(1),...Array.isArray(a)?a:[]]}else if(hI(n))for(let t of(o="string"==typeof n.path?n.path:void 0,void 0===a&&(a=n.args),void 0===l&&(l=n.env),Object.keys(n)))["path","args","env"].includes(t)||e.note("dropped-key",{key:`command.${t}`});else"string"==typeof n&&(o=n);if(!o)return{code:"no-command-or-url",params:hW(e.name)};let c=Array.isArray(a)?[...a]:[];if(void 0!==a&&!Array.isArray(a))return{code:"invalid-config",params:{...hW(e.name),problem:"args"}};if(0===c.length&&/\s/.test(o.trim())&&!/^(?:[A-Za-z]:[\\/]|[\\/]|~[\\/]|\.{1,2}[\\/])/.test(o.trim())){let t=h$(o.trim()),n=t.ok?t.words.map(hM):void 0;n&&n.length>1&&n.every(e=>void 0!==e)&&(e.note("command-split",{command:o}),o=n[0],c.push(...n.slice(1)))}for(let[t,n]of(e.command=i(o,!1),c.entries())){let r=hO(n);if(void 0===r)return{code:"invalid-config",params:{...hW(e.name),problem:"args",index:t}};e.args.push(i(r,!1))}if(void 0!==l){if(!hI(l))return{code:"invalid-config",params:{...hW(e.name),problem:"env"}};for(let[t,n]of Object.entries(l)){if(null===n){e.note("env-null-dropped",{name:t});continue}let r=hO(n);if(void 0===r){e.note("dropped-key",{key:`env.${t}`});continue}if("string"!=typeof n&&e.note("env-value-stringified",{name:t}),""===r&&pi(t)){e.env.push([t,[{kind:"prompt",id:`env.${t}`,reason:"empty",label:t,from:"",secret:!0}]]);continue}e.env.push([t,i(r,!0)])}}let d=r("cwd");for(let n of("string"==typeof d&&""!==d?e.cwd=i(d,!1):void 0!==d&&""!==d&&e.note("dropped-key",{key:"cwd"}),["headers","oauth","auth","url","httpUrl","serverUrl"]))n in t&&(r(n),e.note("dropped-key",{key:n}))}(d,t,f,s,u,n);if(e)return{note:e}}else!function(e,t,n,r,i){let s=r("headers"),o=i(n,!1),a=hI(s)&&Object.keys(s).some(e=>"authorization"===e.toLowerCase());if(1===o.length&&"text"in o[0]?p4(e,n,a):e.url=o,hI(s))for(let[t,n]of Object.entries(s)){let r=hO(n);if(void 0===r){e.note("dropped-key",{key:`headers.${t}`});continue}if(""===r.trim()){"authorization"===t.toLowerCase()?e.note("empty-authorization-dropped"):pi(t)?e.headers.push([t,[{kind:"prompt",id:`headers.${t}`,reason:"empty",label:t,from:"",secret:!0,optional:!0}]]):e.headers.push([t,[]]);continue}e.headers.push([t,i(r,!0)])}else void 0!==s&&e.note("dropped-key",{key:"headers"});let l=r("oauth"),c=r("auth");if(!1===l?e.note("oauth-disable-unsupported"):hI(l)?hD(e,l,i):void 0!==l&&e.note("dropped-key",{key:"oauth"}),hI(c))for(let t of(hD(e,{...void 0!==c.CLIENT_ID?{clientId:c.CLIENT_ID}:{},...void 0!==c.CLIENT_SECRET?{clientSecret:c.CLIENT_SECRET}:{},...void 0!==c.scopes?{scopes:c.scopes}:{}},i,"auth."),Object.keys(c)))["CLIENT_ID","CLIENT_SECRET","scopes"].includes(t)||e.note("oauth-option-dropped",{key:`auth.${t}`});else void 0!==c&&e.note("dropped-key",{key:"auth"});for(let n of["command","args","env","environment","cwd"])n in t&&(r(n),e.note("dropped-key",{key:n}))}(d,t,m,s,u);let v=s("timeout");if(void 0!==v)if(o)"number"==typeof v&&v>0?d.timeout=v:d.note("timeout-dropped",{value:String(v)});else if("opencode"===n.flavor)d.note("timeout-dropped",{value:String(v)});else if(hR(t))hs(d,v);else["autoApprove","alwaysAllow","transportType"].some(e=>e in t)||"streamableHttp"===t.type?ho(d,v)&&ha(d,Math.ceil(v),void 0):!function(e,t){if(!ho(e,t))return;let n=t>=1e3;e.note("timeout-unit-guessed",{value:t,unit:n?"milliseconds":"seconds"}),n?ha(e,Math.ceil(t/1e3),t):ha(e,Math.ceil(t),void 0)}(d,v);let b=s("enabled"),y=s("disabled");!1===b||!0===y?(d.enabled=!1,d.note("imported-disabled")):(void 0!==b&&"boolean"!=typeof b||void 0!==y&&"boolean"!=typeof y)&&d.note("dropped-key",{key:void 0!==b?"enabled":"disabled"});let j=s("exposure");if(void 0!==j){let e=hu(j);e?d.exposure=e:d.note("invalid-exposure-dropped",{value:String(j)})}let k=s("toolExposure");if(void 0!==k){let e=hI(k)?Object.entries(k).map(e=>{let[t,n]=e;return[t,hu(n)]}):void 0;e?.every(e=>{let[,t]=e;return void 0!==t})?d.toolExposure=Object.fromEntries(e):d.note("invalid-exposure-dropped",{value:"toolExposure"})}if(o||void 0===j&&void 0===k||d.note("looks-like-pi-config"),o){let e=s("description");"string"==typeof e?d.description=e:void 0!==e&&d.note("dropped-key",{key:"description"})}for(let e of(hB(d,s("includeTools"),s("excludeTools")),Object.keys(t)))i.has(e)||d.note("dropped-key",{key:e});return{draft:d}}function hD(e,t,n){let r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:"oauth.";for(let[i,s]of Object.entries(t))switch(i){case"clientId":"string"==typeof s&&""!==s&&(e.oauth.clientId=n(s,!1));break;case"clientSecret":"string"==typeof s&&""!==s&&(e.oauth.clientSecret=n(s,!0));break;case"callbackPort":"number"==typeof s&&Number.isInteger(s)&&s>=1&&s<=65535?e.oauth.callbackPort=s:e.note("callback-port-dropped",{value:String(s)});break;case"clientName":"string"==typeof s&&s.trim()?e.oauth.clientName=n(s,!1):e.note("oauth-option-dropped",{key:`${r}${i}`});break;case"clientRegistration":"dcr"===s||"cimd"===s?e.oauth.clientRegistration=s:e.note("oauth-option-dropped",{key:`${r}${i}`});break;case"authServerMetadataUrl":"string"==typeof s&&""!==s?e.oauth.authServerMetadataUrl=n(s,!1):e.note("oauth-option-dropped",{key:`${r}${i}`});break;case"callbackUrl":case"redirectUri":"string"==typeof s&&hh(s)?e.oauth.callbackUrl=n(s,!1):e.note("callback-url-dropped",{value:String(s)});break;case"scope":case"scopes":{let t=Array.isArray(s)?s.filter(e=>"string"==typeof e).join(" "):"string"==typeof s?s:"";t&&(e.oauth.scope=n(t,!1));break}case"enabled":!1===s&&e.note("oauth-disable-unsupported");break;default:e.note("oauth-option-dropped",{key:`${r}${i}`})}let{callbackPort:i,callbackUrl:s}=e.oauth;if(void 0!==i&&s){let t=s.map(e=>"text"in e?e.text:"").join(""),n="";try{n=new URL(t).port}catch{}n&&Number(n)!==i&&(e.note("callback-url-dropped",{value:t}),e.oauth.callbackUrl=void 0)}}function hB(e,t,n){let r=e=>Array.isArray(e)?e.filter(e=>"string"==typeof e&&""!==e):[],i=r(t),s=r(n);if(0===i.length&&0===s.length)return;let o={...e.toolExposure??{}};if(i.length>0){let t=e.exposure??"codemode";for(let n of(e.exposure="hidden",i))o[n]=t;e.note("tool-filter-imported",{mode:"include",tools:i.join(", ")})}for(let e of s)o[e]="hidden";s.length>0&&e.note("tool-filter-imported",{mode:"exclude",tools:s.join(", ")}),e.toolExposure=o}function h_(e){let t=new Map;if(!Array.isArray(e))return t;for(let n of e)hI(n)&&"string"==typeof n.id&&t.set(n.id,{id:n.id,..."string"==typeof n.type?{type:n.type}:{},..."string"==typeof n.description?{description:n.description}:{},...!0===n.password?{password:!0}:{},..."string"==typeof n.default?{default:n.default}:{},...Array.isArray(n.options)?{options:n.options.map(e=>hI(e)?e.value:e).filter(e=>"string"==typeof e)}:{}});return t}function hH(e,t,n,r){let i=[],s=0;for(let o of e.matchAll(/\{([A-Za-z_][A-Za-z0-9_-]*)\}/g)){o.index>s&&i.push({kind:"text",text:e.slice(s,o.index)});let a=hI(t)&&hI(t[o[1]])?t[o[1]]:{};i.push(hU(`${n}${o[1]}`,o[1],o[0],a,r)),s=o.index+o[0].length}return s<e.length&&i.push({kind:"text",text:e.slice(s)}),i}function hU(e,t,n,r,i){let s=Array.isArray(r.choices)?r.choices.filter(e=>"string"==typeof e):[];return{kind:"prompt",id:e,reason:i,label:t,from:n,secret:!0===r.isSecret,..."string"==typeof r.description?{description:r.description}:{},..."string"==typeof r.default?{defaultValue:r.default}:{},...!0===r.isRequired?{}:{optional:"registry-header"===i},...s.length>0?{options:s}:{}}}function hK(e,t,n){let r=[],i="",s=()=>{i&&("pi"===t?r.push({kind:"pi",text:i}):r.push(...pO(i,t,n)),i="")};for(let t of e)"variable"===t.type?(s(),r.push({kind:"env",name:t.name,from:t.raw,shell:!0,...void 0!==t.fallback?{fallback:t.fallback}:{}})):i+=t.value;return s(),r}function hq(e,t){let n="";for(let r=0;r<e.length;r++){let i=e[r];if("variable"===i.type){n+=i.raw;continue}let s=i.value.indexOf(t);if(s<0){n+=i.value;continue}n+=i.value.slice(0,s);let o=i.value.slice(s+t.length);return[n,[...o?[{...i,value:o}]:[],...e.slice(r+1)]]}}let hZ=/^https?:\/\//i,hV=/^wss?:\/\//i,hJ={"@earendil-works/pi-coding-agent":"pi","@anthropic-ai/claude-code":"claude","@openai/codex":"codex","@google/gemini-cli":"gemini"},hY=new Set(["pi","claude","codex","gemini"]),hG=new Set(["install","remove","uninstall","update","list","config"]);function hX(e){return"error"in e?{error:e.error}:{entries:[e],notes:[]}}let hQ={local:"flag",url:"value",env:"list",cwd:"value",header:"list","bearer-token-env-var":"value","oauth-client-id":"value","oauth-client-secret":"value","oauth-callback-port":"value","oauth-client-name":"value",exposure:"value",description:"value"},h0=new Map([["-l","--local"]]),h1=["header","bearer-token-env-var","oauth-client-id","oauth-client-secret","oauth-callback-port","oauth-client-name"],h2=["env","cwd"];function h4(e,t,n,r){let i={positional:[],afterDashDash:[],values:new Map,lists:new Map,seen:new Map};for(let s=0;s<t.length;s++){let o=t[s],a=o.text;if("--"===a){i.afterDashDash.push(...t.slice(s+1));break}if(void 0!==r.stopAfter&&i.positional.length>=r.stopAfter){i.positional.push(...t.slice(s));break}if(!a.startsWith("-")||"-"===a){i.positional.push(o);continue}let l=a.startsWith("--")?a.indexOf("="):-1,c=l>0?a.slice(0,l):a,d=n[c];if(!d){if(i.positional.length>=r.asArgAfter){i.positional.push(o),i.seen.set(`as-arg:${c}`,c);continue}return{error:{code:"cli-unknown-option",params:{cli:e,option:c}}}}if(i.seen.set(d.name,c),"flag"===d.kind){i.values.set(d.name,!0);continue}let u=l>0?h8(o,l+1):void 0;if("value"===d.kind||"list"===d.kind){let n=u??t[++s];if(void 0===n)return{error:{code:"cli-option-needs-value",params:{cli:e,option:c}}};"value"===d.kind?i.values.set(d.name,n):i.lists.set(d.name,[...i.lists.get(d.name)??[],n]);continue}let p=u?[u]:[];if(!u)for(;s+1<t.length&&r.variadic(d.name,t[s+1]);)p.push(t[++s]);if(0===p.length)return{error:{code:"cli-option-needs-value",params:{cli:e,option:c}}};i.lists.set(d.name,[...i.lists.get(d.name)??[],...p])}return i}function h8(e,t){let n=0,r=[];for(let i of e.parts){let e="text"===i.type?i.value.length:i.raw.length;n>=t?r.push(i):n+e>t&&"text"===i.type&&r.push({...i,value:i.value.slice(t-n)}),n+=e}return{parts:r,text:e.text.slice(t)}}let h3=/^[A-Za-z_][A-Za-z0-9_]*=/,h6=/^[^\s:]+:/;function h5(e,t,n,r){for(let i of t??[]){let t=hq(i.parts,"=");if(!t||!/^[A-Za-z_][A-Za-z0-9_]*$/.test(t[0]))return{code:"cli-invalid-pair",params:{cli:r,option:"--env",value:i.text}};e.env.push([t[0],hK(t[1],n,!0)])}}function h9(e,t,n,r){for(let i of t??[]){let t=hq(i.parts,":"),s=t?.[0].trim();if(!t||!s)return{code:"cli-invalid-pair",params:{cli:r,option:"--header",value:i.text}};let o=function(e){let t=e.map(e=>({...e})),n=t[0];n?.type==="text"&&(n.value=n.value.replace(/^\s+/,""));let r=t[t.length-1];return r?.type==="text"&&(r.value=r.value.replace(/\s+$/,"")),t}(t[1]);if("authorization"===s.toLowerCase()&&o.every(e=>"text"===e.type&&""===e.value)){e.note("empty-authorization-dropped");continue}e.headers.push([s,hK(o,n,!0)])}}function h7(e){if(void 0!==e&&!0!==e){if("user"===e.text)return"global";if("project"===e.text)return"project"}}function fe(e,t,n,r,i){let s,[o,a,...l]=r;if(!o||!a)return{code:"cli-usage",params:{cli:t}};e.name=o.text;let c=void 0===n||!0===n?void 0:n.text.toLowerCase();if(void 0===c){if("http"==(s=hZ.test(a.text)?"http":hV.test(a.text)?"ws":"stdio")&&void 0!==hP(a.text))return hz(o.text,a.text);"http"===s&&"gemini"===t&&e.note("transport-assumed-http")}else s="streamable-http"===c?"http":c;return"sse"===s?hz(o.text,a.text):"ws"===s?{code:"websocket-transport",params:{server:o.text,url:a.text}}:"http"===s?(e.transport="http",e.url=hK(a.parts,i,!1),l.length>0&&e.note("cli-extra-arguments",{cli:t,arguments:l.map(e=>e.text).join(" ")}),"http"):"stdio"!==s?{code:"unsupported-transport",params:{server:o.text,type:s}}:(e.transport="stdio",e.command=hK(a.parts,i,!1),e.args=l.map(e=>hK(e.parts,i,!1)),"stdio")}let ft={"-t":{name:"transport",kind:"value"},"--transport":{name:"transport",kind:"value"},"-e":{name:"env",kind:"variadic"},"--env":{name:"env",kind:"variadic"},"-H":{name:"header",kind:"variadic"},"--header":{name:"header",kind:"variadic"},"-s":{name:"scope",kind:"value"},"--scope":{name:"scope",kind:"value"},"--client-id":{name:"client-id",kind:"value"},"--client-secret":{name:"client-secret",kind:"flag"},"--callback-port":{name:"callback-port",kind:"value"},"--no-browser":{name:"no-browser",kind:"flag"}};function fn(e,t){return"env"===e?h3.test(t.text):h6.test(t.text)&&!/^[a-z][a-z0-9+.-]*:\/\//i.test(t.text)}function fr(e){e.oauth.clientSecret=[{kind:"prompt",id:"oauth.clientSecret",reason:"client-secret",label:"clientSecret",from:"",secret:!0}],e.note("client-secret-prompt")}let fi={"-s":{name:"scope",kind:"value"},"--scope":{name:"scope",kind:"value"},"--client-secret":{name:"client-secret",kind:"flag"}};function fs(e){let t,n=hM(e)??e.text;try{t=pM(n)}catch(e){return{error:{code:"invalid-json",params:{detail:e instanceof Error?e.message:String(e)}}}}return hI(t)?{value:t}:{error:{code:"no-servers-found"}}}let fo={"--env":{name:"env",kind:"list"},"--url":{name:"url",kind:"value"},"--bearer-token-env-var":{name:"bearer-token-env-var",kind:"value"},"--oauth-client-id":{name:"oauth-client-id",kind:"value"},"--oauth-resource":{name:"oauth-resource",kind:"value"},"-c":{name:"config",kind:"value"},"--config":{name:"config",kind:"value"},"--enable":{name:"enable",kind:"value"},"--disable":{name:"disable",kind:"value"}},fa={"-s":{name:"scope",kind:"value"},"--scope":{name:"scope",kind:"value"},"-t":{name:"transport",kind:"value"},"--transport":{name:"transport",kind:"value"},"--type":{name:"transport",kind:"value"},"-e":{name:"env",kind:"list"},"--env":{name:"env",kind:"list"},"-H":{name:"header",kind:"list"},"--header":{name:"header",kind:"list"},"--timeout":{name:"timeout",kind:"value"},"--trust":{name:"trust",kind:"flag"},"--description":{name:"description",kind:"value"},"--include-tools":{name:"include-tools",kind:"value"},"--includeTools":{name:"include-tools",kind:"value"},"--exclude-tools":{name:"exclude-tools",kind:"value"},"--excludeTools":{name:"exclude-tools",kind:"value"}};function fl(e){let t=new Map;for(let n of e.replace(/^\?/,"").split("&")){if(!n)continue;let e=n.indexOf("="),r=e<0?n:n.slice(0,e),i=e<0?"":n.slice(e+1);t.set(fc(r),fc(i))}return t}function fc(e){try{return decodeURIComponent(e)}catch{return e}}function fd(e){let t=e.trim();for(let e=0;e<4;e++)try{return pM(t)}catch{let e=fc(t);if(e===t)break;t=e.trim()}}function fu(e){return{error:{code:"install-link-invalid",params:{detail:e}}}}function fp(e){let t=e.get("config");if(!t)return fu("config");let n=t.trim().startsWith("{")?t:function(e){let t=e.trim().replace(/ /g,"+").replace(/-/g,"+").replace(/_/g,"/").replace(/=+$/,"");if(/^[A-Za-z0-9+/]+$/.test(t)&&t.length%4!=1){t+="=".repeat((4-t.length%4)%4);try{let e=atob(t),n=Uint8Array.from(e,e=>e.charCodeAt(0));return new TextDecoder("utf-8",{fatal:!0}).decode(n)}catch{return}}}(t),r=void 0===n?void 0:fd(n);return hI(r)?{entries:[hF(e.get("name")||void 0,r,{source:"cursor-install-link",flavor:"mcp-servers",rawPi:!1})],notes:[]}:fu("config")}function fh(e,t,n,r){return hI(e)?{entries:[hF(n,e,{source:t,flavor:"vscode",rawPi:!1,inputs:h_(r)})],notes:[]}:fu("config")}function ff(e){return{error:{code:"by-name-link",params:{name:e}}}}function fm(e){let t=e.indexOf("?");return t<0?"":e.slice(t+1)}function fg(e){let t,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,r=e.replace(/&amp;/g,"&");try{t=new URL(r)}catch{if(/^https?:\/\/\S+$/i.test(r)&&0===n)return{entries:[fv(void 0,r)],notes:[]};return{error:{code:"unrecognized-input"}}}if(n>3)return fu("nesting");let i=t.protocol.replace(/:$/,"").toLowerCase();switch(i){case"cursor":if(/\/mcp\/install\/?$/.test(t.pathname))return fp(fl(t.search));return fu("cursor");case"vscode":case"vscode-insiders":case"code-oss":{let e=r.slice(r.indexOf(":")+1).replace(/^\/+/,""),t=/^mcp\/by-name\/([^?#]+)/.exec(e);if(t)return ff(fc(t[1]));if(/^mcp\/api\.mcp\.github\.com\//.test(e))return ff(e.replace(/^mcp\//,""));if(/^mcp\/install\?/.test(e))return fh(fd(fm(r)),"vscode-install-link");return fu(i)}case"vsweb+mcp":return fh(fd(fm(r)),"visual-studio-install-link");case"ghapp":if(/^\/\/mcp\/install/.test(r.slice(r.indexOf(":")+1)))return fh(fd(fm(r)),"copilot-app-install-link");return fu(i);case"ws":case"wss":return{entries:[{note:{code:"websocket-transport",params:{url:r}}}],notes:[]};case"http":case"https":return function(e,t,n){let r=e.hostname.toLowerCase().replace(/^www\./,""),i=e.pathname;if(("cursor.com"===r||"lmstudio.ai"===r)&&/^\/(?:[a-z]{2}(?:-[A-Za-z]{2,4})?\/)?install-mcp\/?$/.test(i))return fp(fl(e.search));if("vscode.dev"===r||"insiders.vscode.dev"===r){let t=fl(e.search);if(/^\/redirect\/?$/.test(i)&&t.get("url"))return fg(t.get("url"),n+1);if(/^\/redirect\/mcp\/install\/?$/.test(i)){let e=t.get("config");return e?fh(fd(e),"vscode-install-link",t.get("name")||void 0,fd(t.get("inputs")??"[]")):fu("config")}}if("aka.ms"===r&&/^\/vs\/mcp-install\/?$/i.test(i))return fh(fd(e.search.slice(1)),"visual-studio-install-link");if("github.com"===r&&/^\/copilot\/app\/launch\/?$/.test(i)){let t=fl(e.search).get("open");return t?fg(t,n+1):fu("open")}if(/\.(?:svg|png)$/i.test(i)&&("cursor.com"===r||"img.shields.io"===r||r.endsWith("githubusercontent.com")))return{error:{code:"badge-image"}};if("github.com"===r){let e=i.split("/").filter(Boolean);return"mcp"===e[0]&&e.length>=2?{error:{code:"github-mcp-page",params:{name:e.slice(1).join("/")}}}:"mcp"!==e[0]&&e.length>=2?{error:{code:"github-repo-link",params:{repository:`${e[0]}/${e[1]}`}}}:{error:{code:"github-page"}}}return{entries:[fv(e,t)],notes:[]}}(t,r,n);default:return{error:{code:"unsupported-url-scheme",params:{scheme:i}}}}}let fx=new Set(["localhost","127.0.0.1","[::1]"]);function fv(e,t){let n=ht(t)||void 0;if(void 0!==hP(t))return{note:hz(n,t)};let r=new pG("url",!1);return r.transport="http",p4(r,t,!1),e?.protocol!=="http:"||fx.has(e.hostname)||r.note("insecure-http",{host:e.hostname}),{draft:r}}let fb=/[\u200B-\u200D\u2060\uFEFF]/g,fy=/^(?:localhost|127\.0\.0\.1|\[::1\])(?::\d+)?(?:[/?#]\S*)?$/i,fj={"unterminated-quote":"shell-unterminated-quote","shell-operator":"shell-operator","command-substitution":"shell-command-substitution","multiple-commands":"shell-multiple-commands","shell-parameter":"shell-parameter","unsupported-expansion":"shell-expansion"};function fk(e){return new Set(e.fields.flatMap(e=>e.targets.map(e=>pq(e.path))))}function fw(e){var t;let n,r,i,s,o=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},a=(n=e.replace(fb,"").replace(/\u00A0/g," ").trim(),(r=/```[^\n]*\n([\s\S]*?)(?:```|$)/.exec(n))?n=r[1].trim():/^`[^`\n]+`$/.test(n)&&(n=n.slice(1,-1).trim()),(i=n.startsWith("[")?/\]\(([^()\s]+)\)\s*$/.exec(n):null)&&(n=i[1]),/^<\S+>$/.test(n)&&(n=n.slice(1,-1)),n);if(!a)return{ok:!1,notes:[{code:"empty-input"}]};if(a.startsWith("{")||a.startsWith("[")||/^"[^"\n]+"\s*:/.test(a))s=function(e,t){let n;try{n=pM(e)}catch(t){try{n=pM(`{${e.replace(/,\s*$/,"")}}`)}catch{return{error:{code:"invalid-json",params:{detail:t instanceof Error?t.message:String(t)}}}}}return function(e,t){let n=[],r=(e,t)=>Object.entries(e).map(e=>{let[n,r]=e;return hF(n,r,t)});if(Array.isArray(e)){let r=e.filter(hL);return 0===r.length?{error:{code:"no-servers-found"}}:{entries:r.map(e=>hF(void 0,e,{source:"server-object",flavor:"mcp-servers",rawPi:t})),notes:n}}if(!hI(e))return{error:{code:"no-servers-found"}};let i=hI(e.server)&&(Array.isArray(e.server.remotes)||Array.isArray(e.server.packages))?e.server:Array.isArray(e.remotes)||Array.isArray(e.packages)?e:void 0;if(i)return{entries:function(e){let t="string"==typeof e.name?e.name:"",n=t?p5(t.split("/").pop()??t):void 0,r=Array.isArray(e.remotes)?e.remotes.filter(hI):[],i=r.filter(e=>"string"==typeof e.type&&"http"===hA(e.type)&&"string"==typeof e.url);if(0===i.length){let e=r.find(e=>"sse"===e.type);return e?[{note:hz(n,"string"==typeof e.url?e.url:void 0)}]:[{note:{code:"registry-packages-unsupported",params:hW(n)}}]}return i.map(e=>{let r=new pG("registry-server-json",!1);for(let i of(r.name=n,t&&n!==t&&(r.originalName=t),r.transport="http",r.url=hH(e.url,e.variables,"url.","registry-variable"),Array.isArray(e.headers)?e.headers.filter(hI):[])){if("string"!=typeof i.name||""===i.name)continue;let e=i.name;"string"==typeof i.value&&""!==i.value?r.headers.push([e,hH(i.value,i.variables,`headers.${e}.`,"registry-header")]):r.headers.push([e,[hU(`headers.${e}`,e,"",i,"registry-header")]])}return{draft:r}})}(i),notes:n};if(hI(e.mcpServers))return"boolean"!=typeof e.autoEnableCodemode||t||n.push({code:"looks-like-pi-config"}),{entries:r(e.mcpServers,{source:"mcp-servers-json",flavor:"mcp-servers",rawPi:t}),notes:n};if(hI(e.servers)){let t=h_(e.inputs);return{entries:r(e.servers,{source:"vscode-json",flavor:"vscode",rawPi:!1,inputs:t}),notes:n}}if(hI(e.mcp)){let t=e.mcp;if(hI(t.servers)){let e=h_(t.inputs);return{entries:r(t.servers,{source:"vscode-json",flavor:"vscode",rawPi:!1,inputs:e}),notes:n}}return{entries:r(t,{source:"opencode-json",flavor:"opencode",rawPi:!1}),notes:n}}if(hI(e.context_servers))return{entries:Object.entries(e.context_servers).map(e=>{let t,[n,r]=e;return hI(r)&&("extension"===r.source||!hL(r))?{note:{code:"zed-extension-server",params:{server:n}}}:hF(n,hI(r)?(t={...r},delete t.source,t):r,{source:"zed-json",flavor:"zed",rawPi:!1})}),notes:n};if(hL(e))return{entries:[hF(void 0,e,{source:"server-object",flavor:"mcp-servers",rawPi:t})],notes:n};let s=Object.values(e);return s.length>0&&s.every(hI)&&s.some(hL)?{entries:r(e,{source:"server-map",flavor:"mcp-servers",rawPi:t}),notes:n}:{error:{code:"no-servers-found"}}}(n,t)}(a,!0===o.rawPi);else if(fy.test(a)){if(!("error"in(s=fg(`http://${a}`))))for(let e of s.entries)"draft"in e&&e.draft.note("scheme-assumed",{url:`http://${a}`})}else{let e;s=!/\s/.test(a)&&/^[A-Za-z][A-Za-z0-9+.-]+:/.test(a)?fg(a):(e=h$(a.replace(/^(?:\$|%|>|❯|PS [^\n>]*>)[ \t]+/,"").replace(/[\u201C\u201D\u201E\u201F\u2033]/g,'"').replace(/[\u2018\u2019\u201A\u201B\u2032]/g,"'").replace(/(^|\s)[\u2013\u2014](?=\S)/g,"$1--").replace(/(^|\s)[\u2013\u2014](?=\s|$)/g,"$1--"))).ok?0===e.words.length?{error:{code:"empty-input"}}:function(e){var t;let n=0,r=(t=e[0],(t?.text.split(/[\\/]/).pop()??"").replace(/\.(?:cmd|exe|ps1)$/i,"").toLowerCase());if(["npx","bunx","pnpx"].includes(r)){let t=1;for(;e[t]?.text.startsWith("-");)t++;let i=e[t]?.text.replace(/^(@?[^@]+)@.*$/,"$1");i&&hJ[i]&&e[t+1]?.text==="mcp"&&(n=t,r=hJ[i])}let i=e.slice(n+1);if(i[0]?.text==="mcp"&&i.length>=2){let e=i[1].text,t=i.slice(2);if("pi"===r&&"add"===e)return hX(function(e,t){if(t.some(e=>"--help"===e.text||"-h"===e.text))return{error:{code:"pi-help"}};let n=[],r=new Map,i=new Map;for(let t=0;t<e.length;t++){let s=h0.get(e[t].text)??e[t].text;if("--"===s||n.length>=2){n.push(...e.slice("--"===s?t+1:t));break}if(!s.startsWith("--")){n.push(e[t]);continue}let o=s.slice(2),a=hQ[o];if(!a)return{error:{code:"cli-unknown-option",params:{cli:"pi",option:s}}};if("flag"===a){r.set(o,!0);continue}let l=e[++t];if(void 0===l)return{error:{code:"cli-option-needs-value",params:{cli:"pi",option:s}}};"list"===a?i.set(o,[...i.get(o)??[],l]):r.set(o,l)}let[s,...o]=n,a=r.get("url");if(!s||""===s.text||void 0===a==(0===o.length))return{error:{code:"cli-usage",params:{cli:"pi"}}};let l=e=>{let t=r.get(e);return!0===t?void 0:t},c=(void 0===a?h1:h2).find(e=>r.has(e)||i.has(e));if(c)return{error:{code:"cli-option-wrong-transport",params:{cli:"pi",option:`--${c}`,transport:void 0===a?"stdio":"http"}}};let d=new pG("pi-mcp-add",!0);d.name=s.text,d.scopeHint=r.has("local")?"project":"global";let u=function(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"=",n=[];for(let r of i.get(e)??[]){let i=hq(r.parts,t);if(!i||""===i[0])return{error:{code:"cli-invalid-pair",params:{cli:"pi",option:`--${e}`,value:r.text}}};let s=n.findIndex(e=>{let[t]=e;return t===i[0]});s>=0?n[s]=i:n.push(i)}return n},p={};if(void 0!==a&&!0!==a){d.transport="http",d.url=hK(a.parts,"pi",!1);let e=u("header");if("error"in e)return e;for(let[t,n]of e)d.headers.push([t,hK(n,"pi",!0)]);let t=l("bearer-token-env-var");if(void 0!==t){let e=["Authorization",[{kind:"pi",text:`Bearer \${${t.text}}`}]],n=d.headers.findIndex(e=>{let[t]=e;return"Authorization"===t});n>=0?d.headers[n]=e:d.headers.push(e)}let n=l("oauth-client-id"),r=l("oauth-client-secret"),i=l("oauth-callback-port"),s=l("oauth-client-name");n&&(d.oauth.clientId=hK(n.parts,"pi",!1)),r&&(d.oauth.clientSecret=hK(r.parts,"pi",!0)),i&&(d.oauth.callbackPort=Number(i.text)),s&&(d.oauth.clientName=hK(s.parts,"pi",!1)),p.url=a.parts.some(e=>"variable"===e.type)?"https://placeholder.invalid/":a.text,(i||s)&&(p.oauth={...i?{callbackPort:Number(i.text)}:{},...s?{clientName:s.text}:{}})}else{d.transport="stdio";let e=u("env");if("error"in e)return e;for(let[t,n]of e)d.env.push([t,hK(n,"pi",!0)]);let[t,...n]=o;d.command=hK(t.parts,"pi",!1),d.args=n.map(e=>hK(e.parts,"pi",!1));let r=l("cwd");r&&(d.cwd=hK(r.parts,"pi",!1)),p.command=t.text}let h=l("exposure");void 0!==h&&(p.exposure=h.text,d.exposure=hu(h.text)??h.text);let f=l("description");void 0!==f&&(p.description=f.text,d.description=f.text);let m=hg("server",p);return m?{note:{code:"invalid-config",params:{server:s.text,...m}}}:{draft:d}}(t,i.slice(1)));if("claude"===r&&"add"===e)return hX(function(e){let t=h4("claude",e,ft,{asArgAfter:2,variadic:fn});if("error"in t)return{error:t.error};let n=new pG("claude-mcp-add",!1),r=fe(n,"claude",t.values.get("transport"),[...t.positional,...t.afterDashDash],pR);if("string"!=typeof r)return"cli-usage"===r.code?{error:r}:{note:r};for(let[e,r]of t.seen)e.startsWith("as-arg:")&&n.note("cli-option-as-arg",{cli:"claude",option:r});if(n.scopeHint=h7(t.values.get("scope")),"http"===r){var i,s;let e;t.lists.has("env")&&n.note("cli-option-wrong-transport",{cli:"claude",option:"--env",transport:"http"});let r=h9(n,t.lists.get("header"),pR,"claude");if(r)return{error:r};let o=t.values.get("client-id");o&&!0!==o&&(n.oauth.clientId=hK(o.parts,pR,!1)),t.values.has("client-secret")&&fr(n);let a=t.values.get("callback-port");a&&!0!==a&&(i=n,Number.isInteger(e=Number(s=a.text))&&e>=1&&e<=65535?i.oauth.callbackPort=e:i.note("callback-port-dropped",{value:s}))}else{for(let e of["header","client-id","client-secret","callback-port"])(t.lists.has(e)||t.values.has(e))&&n.note("cli-option-wrong-transport",{cli:"claude",option:t.seen.get(e)??`--${e}`,transport:"stdio"});let e=h5(n,t.lists.get("env"),pR,"claude");if(e)return{error:e}}return{draft:n}}(t));if("claude"===r&&"add-json"===e)return hX(function(e){let t=h4("claude",e,fi,{asArgAfter:1/0});if("error"in t)return{error:t.error};let[n,r,...i]=[...t.positional,...t.afterDashDash];if(!n||!r||i.length>0)return{error:{code:"cli-usage",params:{cli:"claude"}}};let s=fs(r);if("error"in s)return s;let o=hF(n.text,s.value,{source:"claude-mcp-add-json",flavor:"mcp-servers",rawPi:!1});return"note"in o||(o.draft.scopeHint=h7(t.values.get("scope")),t.values.has("client-secret")&&"http"===o.draft.transport&&!o.draft.oauth.clientSecret&&fr(o.draft)),o}(t));if("claude"===r&&"add-from-claude-desktop"===e)return{error:{code:"claude-desktop-import"}};if("codex"===r&&"add"===e)return hX(function(e){let t=h4("codex",e,fo,{asArgAfter:1/0,stopAfter:2});if("error"in t)return{error:t.error};let n=t.afterDashDash,r=t.lists.get("env")??[],[i,...s]=t.positional,o=n.length>0?n:s,a=t.values.get("url");if(!i||void 0===a==(0===o.length)||n.length>0&&s.length>0)return{error:{code:"cli-usage",params:{cli:"codex"}}};let l=new pG("codex-mcp-add",!1);for(let e of(l.name=i.text,["config","enable","disable"]))t.values.has(e)&&l.note("cli-option-ignored",{cli:"codex",option:t.seen.get(e)});if(t.values.has("oauth-resource")&&l.note("oauth-option-dropped",{key:"--oauth-resource"}),void 0!==a&&!0!==a){if(r.length>0)return{error:{code:"cli-option-wrong-transport",params:{cli:"codex",option:"--env",transport:"http"}}};if(void 0!==hP(a.text))return{note:hz(i.text,a.text)};l.transport="http",l.url=hK(a.parts,pT,!1);let e=t.values.get("bearer-token-env-var");e&&!0!==e&&l.headers.push(["Authorization",[{kind:"text",text:"Bearer "},{kind:"env",name:e.text,from:`\${${e.text}}`}]]);let n=t.values.get("oauth-client-id");n&&!0!==n&&(l.oauth.clientId=hK(n.parts,pT,!1))}else{for(let e of["bearer-token-env-var","oauth-client-id","oauth-resource"])if(t.values.has(e))return{error:{code:"cli-option-wrong-transport",params:{cli:"codex",option:`--${e}`,transport:"stdio"}}};l.transport="stdio";let e=h5(l,r,pT,"codex");if(e)return{error:e};l.command=hK(o[0].parts,pT,!1),l.args=o.slice(1).map(e=>hK(e.parts,pT,!1))}return{draft:l}}(t));if("gemini"===r&&"add"===e)return hX(function(e){let t=h4("gemini",e,fa,{asArgAfter:2});if("error"in t)return{error:t.error};let n=new pG("gemini-mcp-add",!1),r=fe(n,"gemini",t.values.get("transport"),[...t.positional,...t.afterDashDash],pL);if("string"!=typeof r)return"cli-usage"===r.code?{error:r}:{note:r};if(n.scopeHint=h7(t.values.get("scope")),"http"===r){t.lists.has("env")&&n.note("cli-option-wrong-transport",{cli:"gemini",option:"--env",transport:"http"});let e=h9(n,t.lists.get("header"),pL,"gemini");if(e)return{error:e}}else{t.lists.has("header")&&n.note("cli-option-wrong-transport",{cli:"gemini",option:"--header",transport:"stdio"});let e=h5(n,t.lists.get("env"),pL,"gemini");if(e)return{error:e}}let i=t.values.get("timeout");for(let e of(i&&!0!==i&&hs(n,Number(i.text)),["trust","description"]))t.values.has(e)&&n.note("cli-option-ignored",{cli:"gemini",option:`--${e}`});let s=e=>{let n=t.values.get(e);return n&&!0!==n?n.text.split(",").map(e=>e.trim()).filter(Boolean):void 0};return hB(n,s("include-tools"),s("exclude-tools")),{draft:n}}(t));if("add"===e||"install"===e)return{error:{code:"cli-unsupported",params:{cli:r}}};if(hY.has(r)&&!e.startsWith("-")&&("claude"!==r||"serve"!==e))return{error:{code:"cli-not-a-server",params:{cli:r,command:`mcp ${e}`}}}}return"pi"===r&&i[0]&&hG.has(i[0].text)?{error:{code:"cli-not-a-server",params:{cli:r,command:i[0].text}}}:["code","code-insiders","codium","cursor"].includes(r)&&e.some(e=>"--add-mcp"===e.text||e.text.startsWith("--add-mcp="))?function(e){let t=[];for(let n=0;n<e.length;n++){let r,i=e[n].text;if("--add-mcp"===i)r=e[++n];else{if(!i.startsWith("--add-mcp="))continue;r=h8(e[n],10)}if(!r)return{error:{code:"cli-option-needs-value",params:{cli:"code",option:"--add-mcp"}}};let s=fs(r);if("error"in s)return s;t.push(hF(void 0,s.value,{source:"vscode-add-mcp",flavor:"vscode",rawPi:!1}))}return{entries:t,notes:[]}}(e.slice(1)):hX(function(e){let t=new pG("command-line",!1);t.transport="stdio";let n=0,r=()=>{for(;n<e.length;n++){let r=function(e){let[t,...n]=e.parts;if(t?.type!=="text"||"none"!==t.quote)return;let r=/^([A-Za-z_][A-Za-z0-9_]*)=/.exec(t.value);if(!r)return;let i=t.value.slice(r[0].length);return{name:r[1],value:[...i?[{...t,value:i}]:[],...n]}}(e[n]);if(!r)break;t.env.push([r.name,hK(r.value,pT,!0)])}};if(r(),e[n]?.text==="env"){if(n++,e[n]?.text.startsWith("-"))return{error:{code:"cli-unknown-option",params:{cli:"env",option:e[n].text}}};r()}let i=e[n];if(!i)return{error:{code:"no-command-or-url"}};t.command=hK(i.parts,pT,!1),t.args=e.slice(n+1).map(e=>hK(e.parts,pT,!1));let s=e.slice(n+1).map(e=>e.text),o=s.some(e=>/^mcp-remote(?:@|$)/.test(e))?s.find(e=>hZ.test(e)):void 0;return o&&t.note("mcp-remote-bridge",{url:o}),{draft:t}}(e))}(e.words):{error:function(e){let{code:t,...n}=e;return Object.keys(n).length>0?{code:fj[t],params:n}:{code:fj[t]}}(e.error)}}if("error"in s)return{ok:!1,notes:[s.error]};let l=[...s.notes],c=[],d=[...o.takenNames??[]],u=new Set;for(let e of s.entries){if("note"in e){l.push(e.note);continue}let n=function(e){let t,n=new p1(e);if("stdio"===e.transport&&e.command&&""!==pX(e.command)){let r=n.encode(["command"],e.command),i=e.args.map((e,t)=>n.encode(["args",t],e)),s={};for(let[t,r]of e.env)s[t]=n.encode(["env",t],r);t={command:r,...i.length>0?{args:i}:{},...Object.keys(s).length>0?{env:s}:{},...e.cwd?{cwd:n.encode(["cwd"],e.cwd)}:{}}}else{if("http"!==e.transport||!e.url||""===pX(e.url))return{note:{code:"no-command-or-url",...e.name?{params:{server:e.name}}:{}}};let r=n.encode(["url"],e.url),i={};for(let[t,r]of e.headers)i[t]=n.encode(["headers",t],r);let s={},{clientId:o,clientSecret:a,callbackPort:l,clientName:c,clientRegistration:d,callbackUrl:u,scope:p,authServerMetadataUrl:h}=e.oauth;o&&(s.clientId=n.encode(["oauth","clientId"],o)),a&&(s.clientSecret=n.encode(["oauth","clientSecret"],a)),void 0!==l&&(s.callbackPort=l),c&&(s.clientName=n.encode(["oauth","clientName"],c)),d&&(s.clientRegistration=d),u&&(s.callbackUrl=n.encode(["oauth","callbackUrl"],u)),p&&(s.scope=n.encode(["oauth","scope"],p)),h&&(s.authServerMetadataUrl=n.encode(["oauth","authServerMetadataUrl"],h)),t={url:r,...Object.keys(i).length>0?{headers:i}:{},...Object.keys(s).length>0?{oauth:s}:{}}}return void 0!==e.exposure&&(t.exposure=e.exposure),void 0!==e.toolExposure&&(t.toolExposure=e.toolExposure),!1===e.enabled&&(t.enabled=!1),void 0!==e.timeout&&(t.timeout=e.timeout),void 0!==e.description&&(t.description=e.description),{server:{name:e.name??"",...void 0!==e.originalName?{originalName:e.originalName}:{},config:t,fields:[...n.fields.values()],notes:e.notes,source:e.source,rawPi:e.rawPi,...e.scopeHint?{scopeHint:e.scopeHint}:{}}}}(e.draft);if("note"in n){l.push(n.note);continue}let r=n.server,i=r.name,s=!i;s&&(i=function(e){if("url"in e)return ht(e.url);let t=e.args??[],n=t.some(e=>/^mcp-remote(?:@|$)/.test(e))?t.find(e=>/^https?:\/\//i.test(e)):void 0;return n&&ht(n)||function(e,t){let n=e.split(/[\\/]/).pop()?.replace(/\.(?:cmd|exe|bat|ps1)$/i,"").toLowerCase()??"";switch(n){case"npx":case"bunx":case"pnpx":{let e=hr(t,new Set(["-p","--package","-c","--call"]));return e?p5(e):""}case"pnpm":case"yarn":case"bun":case"npm":{let e=t.findIndex(e=>"dlx"===e||"exec"===e||"x"===e),n=e>=0?hr(t.slice(e+1),new Set(["-p","--package"])):void 0;return n?p5(n):""}case"uvx":case"pipx":{let e=hr("pipx"===n&&"run"===t[0]?t.slice(1):t,new Set(["--from","--with","--python","-p","--index-url","--spec"]));return e?p5(e):""}case"uv":{let e=t.indexOf("run"),n=e>=0?hr(t.slice(e+1),new Set(["--with","--directory","--python","-p","--from","--project"])):void 0;return n?hi(n):""}case"docker":case"podman":{let e=t.indexOf("run"),n=e>=0?hr(t.slice(e+1),hn):void 0;if(!n)return"";let r=n.split("/").pop().replace(/[:@].*$/,"");return p7(r)||r}case"python":case"python3":case"py":{let e=t.indexOf("-m");if(e>=0&&t[e+1])return p5(t[e+1].replace(/_/g,"-"));let n=hr(t,new Set(["-X","-W"]));return n?hi(n):""}case"node":case"deno":case"tsx":case"ts-node":{let e=hr("deno"===n&&"run"===t[0]?t.slice(1):t,new Set(["-r","--require","--import","--loader"]));return e?hi(e):""}default:return p7(n.replace(/_/g,"-"))||n}}(e.command,t)}(r.config))&&r.notes.push({code:"name-derived",params:{name:i}});let o=(t=i,p8.test(t))?i:i.normalize("NFKD").replace(/[\u0300-\u036f]/g,"").replace(/[^A-Za-z0-9_-]+/g,"-").replace(/-{2,}/g,"-").replace(/^[-_]+|[-_]+$/g,"").slice(0,48).replace(/[-_]+$/g,"")||"server";o!==i&&i&&(r.originalName=r.originalName??i,r.notes.push({code:"name-sanitized",params:{original:i,name:o}}));let a=p3(o,s?[...d,...u]:u);a!==o&&(r.notes.push({code:"name-deduplicated",params:{original:o,name:a}}),o=a),!s&&d.includes(o)&&r.notes.push({code:"name-taken",params:{name:o,suggestedName:p3(o,[...d,...u])}}),r.name=o;let p=hg(o,function(e){let t=fk(e),n=JSON.parse(JSON.stringify(e.config));t.has(pq(["url"]))&&(n.url="https://placeholder.invalid/");let r=n.oauth;return r&&t.has(pq(["oauth","callbackUrl"]))&&delete r.callbackUrl,n}(r));if(p){l.push({code:"invalid-config",params:{server:o,...p}});continue}!function(e){let t=fk(e);for(let n of fT(e.config))t.has(pq(n))||e.notes.push({code:"literal-secret",params:{field:pZ(n)}});let n=e.config;if("url"in n){for(let[t,r]of Object.entries(n.headers??{})){let n=pB(r);n.length>0&&e.notes.push({code:"header-env-reference",params:{header:t,names:n.join(", ")}})}let t=pB(n.oauth?.clientSecret??"");t.length>0&&e.notes.push({code:"client-secret-env-reference",params:{names:t.join(", ")}})}}(r),u.add(o),c.push(r)}return 0===c.length?{ok:!1,notes:l.length>0?l:[{code:"no-servers-found"}]}:{ok:!0,servers:c,notes:l}}let fS=/^[A-Za-z_][A-Za-z0-9_]*$/;function fC(e,t,n){let[r,i]=t;if("command"===r||"url"===r||"cwd"===r){void 0!==n&&(e[r]=n);return}if("args"===r){e.args[i]=n??"";return}let s={...e[r]??{}};void 0===n?delete s[i]:s[i]=n,0===Object.keys(s).length?delete e[r]:e[r]=s}function fN(e){let t=fk(e);return fT(e.config).filter(e=>pV(e)&&!t.has(pq(e)))}function fE(e){return"string"==typeof e&&""===e.trim()?"missing":"name"}let f$=/^(?:bearer|basic|token)\s+/i;function fM(e,t){let n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},r=JSON.parse(JSON.stringify(e.config)),i=new Map,s=[],o=new Map(fN(e).map(e=>[pZ(e),e])),a=[];for(let[e,t]of Object.entries(n)){let n="string"==typeof t?t.trim():"",r=o.get(e);r?fS.test(n)?a.push([r,n]):s.push({code:"field-reference-invalid",params:{field:e,problem:fE(t)}}):s.push({code:"field-reference-invalid",params:{field:e,problem:"target"}})}for(let n of e.fields){let e=t[n.id];if("object"==typeof e&&null!==e){let t=e.reference,r="string"==typeof t?t.trim():"";fS.test(r)?"select"!==n.kind&&n.targets.every(e=>pV(e.path)&&void 0===e.encoding)?i.set(n.id,{reference:r}):s.push({code:"field-reference-invalid",params:{field:n.id,problem:"target"}}):s.push({code:"field-reference-invalid",params:{field:n.id,problem:fE(t)}});continue}let r=("string"==typeof e?e:n.defaultValue??"").trim();""===r?n.optional?i.set(n.id,void 0):s.push({code:"field-required",params:{field:n.id}}):"select"===n.kind&&n.options&&!n.options.includes(r)?s.push({code:"field-invalid-option",params:{field:n.id}}):i.set(n.id,{text:r})}if(s.length>0)return{ok:!1,notes:s};let l=new Set,c=new Set;for(let t of e.fields)for(let e of t.targets){let n=i.get(t.id);"password"===t.kind&&void 0!==n&&"text"in n&&l.add(pZ(e.path));let s=pq(e.path);if(c.has(s))continue;if(c.add(s),e.parts.some(e=>"string"!=typeof e&&void 0===i.get(e.field))){fC(r,e.path,void 0);continue}let o="";for(let t of e.parts){var d,u,p,h;o+="string"==typeof t?t:(d=i.get(t.field),u=e.path,p=""===o,h=e.encoding,"reference"in d?`\${${d.reference}}`:"uri-component"===h?encodeURIComponent(d.text):pV(u)?pF(d.text,{atStart:p}):d.text)}fC(r,e.path,o)}for(let[e,t]of a){let n=function(e,t){let[n,r]=t,i=e[n];return void 0===r||"object"!=typeof i||null===i?void 0===r?i:void 0:i[r]}(r,e),i="headers"===e[0]&&"string"==typeof n?n.match(f$)?.[0]??"":"";fC(r,e,`${i}\${${t}}`)}for(let e of fT(r))l.add(pZ(e));return{ok:!0,config:r,secretPaths:[...l]}}let fI=["command","args","env","cwd","url","headers","oauth"];function fT(e){let t=[];for(let n of function(e){if(!pE(e))return[];let t=[];for(let n of["env","headers"]){let r=e[n];if(pE(r))for(let[e,i]of Object.entries(r))"string"==typeof i&&p$(i)&&""!==i&&(pi(e)||/^(?:bearer|basic|token)\s+\S/i.test(i)||pk(i,ph).masked)&&t.push({kind:"env"===n?"env":"header",name:e})}let n=pE(e.oauth)?e.oauth.clientSecret:void 0;return"string"==typeof n&&""!==n&&p$(n)&&t.push({kind:"oauth-client-secret"}),"string"==typeof e.url&&pb(e.url,pg).masked&&t.push({kind:"url"}),"string"==typeof e.command&&pk(e.command,pg).masked&&t.push({kind:"command"}),Array.isArray(e.args)&&pN(e.args.filter(e=>"string"==typeof e)).masked&&t.push({kind:"args"}),t}(e))switch(n.kind){case"env":t.push(["env",n.name]);break;case"header":t.push(["headers",n.name]);break;case"oauth-client-secret":t.push(["oauth","clientSecret"]);break;case"url":t.push(["url"]);break;case"command":t.push(["command"]);break;case"args":{let n="args"in e&&Array.isArray(e.args)?e.args.map(e=>"string"==typeof e?e:""):[];pN(n).args.forEach((e,r)=>{e!==n[r]&&t.push(["args",r])})}}return t.sort((e,t)=>fI.indexOf(e[0])-fI.indexOf(t[0]))}let fR="PI_WEB_PASSWORD";function fL(e){return"object"==typeof e&&null!==e&&!Array.isArray(e)}function fA(e){return fL(e)?Object.entries(e).filter(e=>"string"==typeof e[1]):[]}function fP(e){if(!fL(e))return[];if(!("url"in e))return fA(e.env).map(e=>{let[t,n]=e;return{kind:"env",name:t,value:n}});let t=fA(e.headers).map(e=>{let[t,n]=e;return{kind:"header",name:t,value:n}}),n=fL(e.oauth)?e.oauth.clientSecret:void 0;return"string"==typeof n&&t.push({kind:"oauth-client-secret",value:n}),t}let fz={text:"",rawPi:!1,server:0,values:{},references:{},secretReferences:{}};function fW(e,t,n){let r=fw(e,{rawPi:t});if(!r.ok)return;let i=r.servers[Math.min(n,r.servers.length-1)],{config:s}=i,o="url"in s?["url",s.url]:["command",s.command,s.args??[]];return JSON.stringify([i.source,i.originalName??i.name,o])}function fO(e,t){let n={...e,...t},r=fW(e.text,e.rawPi,e.server);if(void 0!==r&&r===fW(n.text,n.rawPi,e.server))return n;let i={...n,server:0,values:{},references:{},secretReferences:{}};return delete i.name,i}function fF(e){return pI[e.code]??"warning"}function fD(e,t){let n,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:[],i=e.params??{},s={};for(let[e,t]of Object.entries(i))s[e]="string"==typeof t?d0(t):t;if("string"==typeof i.field&&e.code.startsWith("field-")){let e=r.find(e=>e.id===i.field);e&&(s.field=d0(e.label))}"invalid-config"===e.code&&(s.problem=t("tool-exposure"===(n=String(i.problem??"no-command-or-url"))&&void 0!==i.tool?"mcp.importProblem.tool-exposure.tool":"args"===n&&void 0!==i.index?"mcp.importProblem.args.index":`mcp.importProblem.${n}`,s)),"cli-option-wrong-transport"===e.code&&("stdio"===i.transport||"http"===i.transport)&&(s.transport=t(`mcp.transport.${i.transport}`));let o=t(function(e){let t=e.params??{};switch(e.code){case"field-reference-invalid":return`mcp.importNote.field-reference-invalid.${"target"===t.problem||"missing"===t.problem?t.problem:"name"}`;case"sse-transport":return void 0===t.suggestedUrl?"mcp.importNote.sse-transport":"mcp.importNote.sse-transport.suggested";case"timeout-unit-guessed":return`mcp.importNote.timeout-unit-guessed.${"milliseconds"===t.unit?"milliseconds":"seconds"}`;case"tool-filter-imported":return`mcp.importNote.tool-filter-imported.${"exclude"===t.mode?"exclude":"include"}`;default:return`mcp.importNote.${e.code}`}}(e),s);return"string"==typeof s.server?t("mcp.importNote.forServer",{server:s.server,note:o}):o}let fB={empty:"mcp.importField.reason.empty",input:"mcp.importField.reason.input",variable:"mcp.importField.reason.variable",home:"mcp.importField.reason.home","workspace-basename":"mcp.importField.reason.workspace-basename","unsupported-variable":"mcp.importField.reason.unsupported-variable","client-secret":"mcp.importField.reason.client-secret","registry-header":"mcp.importField.reason.registry-header","registry-variable":"mcp.importField.reason.registry-variable"},f_={url:"mcp.add.source.url","command-line":"mcp.add.source.command-line","pi-mcp-add":"mcp.add.source.pi-mcp-add","claude-mcp-add":"mcp.add.source.claude-mcp-add","claude-mcp-add-json":"mcp.add.source.claude-mcp-add-json","codex-mcp-add":"mcp.add.source.codex-mcp-add","gemini-mcp-add":"mcp.add.source.gemini-mcp-add","vscode-add-mcp":"mcp.add.source.vscode-add-mcp","mcp-servers-json":"mcp.add.source.mcp-servers-json","vscode-json":"mcp.add.source.vscode-json","zed-json":"mcp.add.source.zed-json","opencode-json":"mcp.add.source.opencode-json","server-object":"mcp.add.source.server-object","server-map":"mcp.add.source.server-map","registry-server-json":"mcp.add.source.registry-server-json","cursor-install-link":"mcp.add.source.cursor-install-link","vscode-install-link":"mcp.add.source.vscode-install-link","visual-studio-install-link":"mcp.add.source.visual-studio-install-link","copilot-app-install-link":"mcp.add.source.copilot-app-install-link"},fH=JSON.stringify({command:"uvx",args:["mcp-server-fetch"]}),fU=JSON.stringify({name:"fetch",command:"uvx",args:["mcp-server-fetch"]}),fK=[{source:"url",text:"https://mcp.example.com/mcp"},{source:"command-line",text:"npx -y @modelcontextprotocol/server-everything"},{source:"pi-mcp-add",text:"pi mcp add docs --url https://mcp.example.com/mcp"},{source:"claude-mcp-add",text:"claude mcp add --transport http docs https://mcp.example.com/mcp"},{source:"claude-mcp-add-json",text:'claude mcp add-json docs \'{"type":"http","url":"https://mcp.example.com/mcp"}\''},{source:"codex-mcp-add",text:"codex mcp add fetch -- uvx mcp-server-fetch"},{source:"gemini-mcp-add",text:"gemini mcp add --transport http docs https://mcp.example.com/mcp"},{source:"vscode-add-mcp",text:`code --add-mcp '${fU}'`},{source:"mcp-servers-json",text:'{ "mcpServers": { "fetch": { "command": "uvx", "args": ["mcp-server-fetch"] } } }'},{source:"vscode-json",text:'{ "servers": { "docs": { "type": "http", "url": "https://mcp.example.com/mcp" } } }'},{source:"zed-json",text:'{ "context_servers": { "fetch": { "command": "uvx", "args": ["mcp-server-fetch"] } } }'},{source:"opencode-json",text:'{ "mcp": { "docs": { "type": "remote", "url": "https://mcp.example.com/mcp" } } }'},{source:"server-object",text:'{ "type": "http", "url": "https://mcp.example.com/mcp" }'},{source:"server-map",text:'{ "fetch": { "command": "uvx", "args": ["mcp-server-fetch"] } }'},{source:"registry-server-json",text:'{ "name": "com.example/docs", "version": "1.0.0", "remotes": [{ "type": "streamable-http", "url": "https://mcp.example.com/mcp" }] }'},{source:"cursor-install-link",text:`cursor://anysphere.cursor-deeplink/mcp/install?name=fetch&config=${btoa(fH)}`},{source:"vscode-install-link",text:`vscode:mcp/install?${encodeURIComponent(fU)}`},{source:"visual-studio-install-link",text:`vsweb+mcp:/install?${encodeURIComponent(fU)}`},{source:"copilot-app-install-link",text:`ghapp://mcp/install?${encodeURIComponent(fU)}`}];function fq(e,t,n){let r=arguments.length>3&&void 0!==arguments[3]&&arguments[3];if(!(!r&&e.targets.every(e=>{let{parts:t}=e;return 1===t.length})))return[...new Set(e.targets.map(r=>{let{parts:i}=r;return i.map(r=>"string"==typeof r?d0(r):r.field===e.id?n:`‹${d0(t.find(e=>{let{id:t}=e;return t===r.field})?.label??r.field)}›`).join("")}))].join(", ")}function fZ(e){return"select"!==e.kind&&e.targets.every(e=>pV(e.path)&&void 0===e.encoding)}let fV=/^[A-Za-z_][A-Za-z0-9_]*$/;function fJ(){for(var e=arguments.length,t=Array(e),n=0;n<e;n++)t[n]=arguments[n];let r=t.map(e=>e.replace(/[^A-Za-z0-9]+/g,"_")).join("_").replace(/_+/g,"_").replace(/^_|_$/g,"").toUpperCase();return fV.test(r)?r:void 0}let fY=/^(?:proxy-)?authorization$/i;function fG(e,t){let n=function(e,t){if(e.startsWith("env.")){let t=e.slice(4);return fV.test(t)?t:fJ(t)}let n=function(){for(var e=arguments.length,n=Array(e),r=0;r<e;r++)n[r]=arguments[r];return fJ(t,...n)??fJ(...n)};if(e.startsWith("headers.")){let t=e.slice(8);return n(fY.test(t)?"TOKEN":t.replace(/^x-/i,""))}if("oauth.clientSecret"===e)return n("CLIENT_SECRET")}(e,t);return n===fR?void 0:n}function fX(e){return e.startsWith("env.")||e.startsWith("headers.")||"oauth.clientSecret"===e}function fQ(e,t){let n=e;for(let e of t)n=n.split(e).join(u6);return{text:n,masked:n!==e}}function f0(e){let{kind:t,name:n}=e;return void 0===n?{kind:t}:{kind:t,name:n}}function f1(e,t){let n=t.files.find(t=>t.scope===e),r=n?.problems.find(uy);return n&&r?{kind:"file-problem",path:n.path,reason:r.reason}:void 0}function f2(e,t){return e.servers.filter(e=>e.scope===t).map(e=>e.name)}function f4(e,t,n){return{action:"add",text:e.text,values:t.values,...Object.keys(t.secretReferences).length>0?{secretReferences:{...t.secretReferences}}:{},server:t.server&&t.parsed.ok?t.parsed.servers.indexOf(t.server):0,name:t.name,scope:t.scope,rawPi:e.rawPi,...t.trustFolder?{trustFolder:!0}:{},...n&&n.length>0?{confirmHostEnv:[...n]}:{}}}function f8(e,t,n){switch(e.kind){case"trust-too-broad":return t(f6[e.breadth.kind],{path:n(e.breadth.path)});case"secret":return t(e.fixed?"mcp.add.projectBlocked.secretFixed":"mcp.add.projectBlocked.secret",{fields:e.fields.join(", ")});case"file-problem":return t("mcp.add.projectBlocked.file-problem",{path:n(e.path),reason:t(`mcp.fileProblem.${e.reason}`)});default:return t(f3[e.kind])}}let f3={"no-project":"mcp.add.projectBlocked.no-project","project-not-listed":"mcp.add.projectBlocked.project-not-listed","trust-unreadable":"mcp.add.projectBlocked.trust-unreadable","project-untrusted":"mcp.add.projectBlocked.project-untrusted","untrusted-decision":"mcp.add.projectBlocked.untrusted-decision","folder-not-fresh":"mcp.add.projectBlocked.folder-not-fresh"},f6={home:"mcp.add.projectBlocked.trust-too-broad.home",root:"mcp.add.projectBlocked.trust-too-broad.root","contains-home":"mcp.add.projectBlocked.trust-too-broad.contains-home","contains-agent-dir":"mcp.add.projectBlocked.trust-too-broad.contains-agent-dir","contains-folder":"mcp.add.projectBlocked.trust-too-broad.contains-folder","contains-project":"mcp.add.projectBlocked.trust-too-broad.contains-project","too-many-folders":"mcp.add.projectBlocked.trust-too-broad.too-many-folders"};function f5(e){return d0(dd(e))}function f9(e,t){return t("project"===e?"skills.scope.project":"skills.scope.global")}let f7=[{href:"https://glama.ai/mcp/servers",label:"glama.ai"},{href:"https://smithery.ai/servers",label:"smithery.ai"},{href:"https://mcp.so/",label:"mcp.so"},{href:"https://registry.modelcontextprotocol.io/",label:"MCP Registry"},{href:"https://github.com/mcp",label:"github.com/mcp"}],me=new Set(["name-derived","name-sanitized","name-deduplicated","name-taken"]);function mt(e){let{notes:t,fields:n=[]}=e,{t:i}=(0,eG.s)();if(0===t.length)return null;let s={error:0,warning:1,info:2},o=[...t].sort((e,t)=>s[fF(e)]-s[fF(t)]);return(0,r.jsx)("ul",{className:"mcp-add-notes",children:o.map((e,t)=>(0,r.jsx)("li",{className:`mcp-add-note is-${fF(e)}`,children:fD(e,i,n)},`${t}\0${e.code}`))})}let mn={"server-invalid":"mcp.add.refused.server-invalid","web-password":"mcp.add.blocked.web-password"};function mr(e){let{data:t,cwd:n,draft:s,busy:o,controlsBusy:a,failure:l,onDraftChange:c,onSubmit:d,onTrustProject:u}=e,{t:p}=(0,eG.s)(),h=(0,i.useId)(),f=(0,i.useId)(),m=(0,i.useMemo)(()=>(function e(t,n,r){let i,s=function(e,t){let n=e=>({kind:"blocked",block:e});if(!t)return n({kind:"no-project"});let r=e.project;if(!r)return n({kind:"project-not-listed"});let i=r.trust;if(!i||void 0!==i.decisionError)return n({kind:"trust-unreadable"});if(!0===i.decision)return{kind:"write"};if(!1===i.decision)return n({kind:"untrusted-decision"});if(i.requiresTrust)return n({kind:"project-untrusted",trustable:uS(r)});let s=r.trustFolder;return s?s.allowed?{kind:"trust-and-write",folder:r.cwd}:n("trust-too-broad"===s.reason?{kind:"trust-too-broad",breadth:s.breadth}:{kind:"folder-not-fresh"}):n({kind:"project-untrusted",trustable:!1})}(n,r),o=e=>fw(t.text,{rawPi:t.rawPi,takenNames:f2(n,e)}),a=o(t.scope??"global"),l=a.ok?a.servers[Math.min(t.server,a.servers.length-1)]:void 0,c=t.scope??(l?.scopeHint==="project"&&"write"===s.kind?"project":"global");c!==(t.scope??"global")&&(l=(a=o(c)).ok?a.servers[Math.min(t.server,a.servers.length-1)]:void 0);let d={parsed:a,name:t.name??"",scope:c,projectMode:s,..."blocked"===s.kind?{projectBlock:s.block}:{},values:{},pasteSecrets:[],secretReferences:{},fieldProblems:{},secretPaths:[],trustFolder:!1},u=uU(n.mcp);if(!l)return{...d,submitBlock:{kind:u?"mcp-off":"nothing"}};let p=t.name??l.name,h=function(e,t){let n={};for(let r of e.fields){let e=t.references[r.id];void 0!==e&&fZ(r)?n[r.id]={reference:e}:void 0!==t.values[r.id]&&(n[r.id]=t.values[r.id])}return n}(l,t),f=fN(l).map(pZ),m=Object.fromEntries(f.flatMap(e=>{let n=t.secretReferences[e];return void 0===n?[]:[[e,n]]})),g=fM(l,h,m),x={};if(!g.ok)for(let e of g.notes){let t=e.params?.field;"field-required"===e.code||"string"!=typeof t||t in x||(x[t]=e)}let v=function(e,t){let n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},r={};for(let n of e.fields){let e=t[n.id];"object"==typeof e?r[n.id]=fV.test(e.reference.trim())?e:{reference:"VALUE"}:void 0!==e&&""!==e.trim()?r[n.id]=e:void 0!==n.defaultValue?r[n.id]=n.defaultValue:n.optional?r[n.id]=void 0:r[n.id]="select"===n.kind?n.options?.[0]??"x":"x"}let i=fM(e,r,Object.fromEntries(Object.entries(n).map(e=>{let[t,n]=e;return[t,fV.test(n.trim())?n:"VALUE"]})));return i.ok?i.secretPaths:[]}(l,h,m),b=function(e,t,n){let r=n?.ok?n.config:e.config,i=n?.ok?function(e,t){let n=new Set;for(let r of e.fields){let e=t[r.id];if("password"!==r.kind||"string"!=typeof e||""===e.trim())continue;let i=e.trim();n.add(i),n.add(i.replace(/\$/g,"$$$$")),n.add(encodeURIComponent(i))}return[...n].filter(e=>""!==e).sort((e,t)=>t.length-e.length)}(e,t):[],s=!1!==r.enabled,o={source:e.source,commandFields:fP(r).filter(e=>{let{value:t}=e;return pD(t)}).map(f0),variableReferences:fP(r).map(e=>({...f0(e),variables:pB(e.value)})).filter(e=>{let{variables:t}=e;return t.length>0}),...r.exposure?{exposure:r.exposure}:{},enabled:s,unfilled:!n?.ok&&e.fields.length>0};if("url"in r){let e=fQ(r.url,i);return{...o,transport:"http",target:d0(e.text),envNames:[],headerNames:Object.keys(r.headers??{}),masked:e.masked}}let a=fQ(d4(r.command,r.args??[]),i);return{...o,transport:"stdio",target:a.text,...void 0!==r.cwd?{cwd:d0(r.cwd)}:{},envNames:Object.keys(r.env??{}),headerNames:[],masked:a.masked}}(l,h,g),y=g.ok?hg(p,g.config):void 0,j="blocked"===s.kind?s.block:v.length>0?{kind:"secret",fields:v,fixed:!v.every(fX)}:f1("project",n),k=f2(n,c),w=n.files.find(e=>e.scope===c);if(u)i={kind:"mcp-off"};else if(p8.test(p))if(k.includes(p))i={kind:"name-taken",name:p,suggestedName:p3(p,k),...w?{path:w.path}:{}};else if(g.ok)if(y)i={kind:"config-invalid",note:{code:"invalid-config",params:"url"===y.problem?{...y,url:b.target}:y}};else if(void 0!==function(e,t){for(let{value:n,...r}of fP(e))if(t.isCommandConfigValue(n)?n.toUpperCase().includes(fR):t.getConfigValueEnvVarNames(n).some(e=>e.toUpperCase()===fR))return r}(g.config,{isCommandConfigValue:pD,getConfigValueEnvVarNames:pB}))i={kind:"web-password"};else if("project"===c&&j)i={kind:"scope",block:j};else{let e=f1(c,n);e&&(i={kind:"scope",block:e})}else{let e=e=>{let t=String(e.params?.field??"");return l.fields.find(e=>e.id===t)?.label??t},t=g.notes.filter(e=>"field-required"===e.code||"field-reference-invalid"===e.code&&e.params?.problem==="missing");i=t.length>0?{kind:"fields",fields:[...new Set(t.map(e))]}:{kind:"field-invalid",fields:[...new Set(g.notes.map(e))]}}else i={kind:"name-invalid"};return void 0===t.scope&&"project"===c&&j?e({...t,scope:"global"},n,r):{parsed:a,server:l,name:p,scope:c,projectMode:s,...j?{projectBlock:j}:{},values:h,pasteSecrets:f,secretReferences:m,fill:g,fieldProblems:x,secretPaths:v,preview:b,...i?{submitBlock:i}:{},trustFolder:"project"===c&&"trust-and-write"===s.kind}})(s,t,n),[s,t,n]),g=(0,i.useMemo)(()=>(function(e){let t=fw(e,{rawPi:!0});if(!t.ok)return!1;let n=fw(e,{rawPi:!1});return t.servers.some((e,t)=>e.rawPi&&!(n.ok&&n.servers[t]?.rawPi))})(s.text),[s.text]),{parsed:x,server:v,preview:b,projectBlock:y,submitBlock:j}=m,k=v?[...v.notes,...x.notes].filter(e=>"literal-secret"!==e.code||!m.pasteSecrets.includes(String(e.params?.field))):[],w=void 0!==s.name&&s.name!==v?.name?[]:k.filter(e=>me.has(e.code)),S=k.filter(e=>!me.has(e.code)),C=!o&&!a&&void 0===j,N=()=>{C&&d(f4(s,m))},E=e=>c({...s,...e}),$=t.files.find(e=>e.scope===m.scope)?.path??("project"===m.scope&&n?`${n.replace(/[\\/]+$/,"")}/.pi/mcp.json`:"mcp.json"),M=j&&(""!==s.text.trim()||"mcp-off"===j.kind)?function(e,t){let n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:[];switch(e.kind){case"mcp-off":return t("mcp.reason.mcp-off");case"nothing":return t("mcp.add.blocked.nothing");case"name-invalid":return t("mcp.add.nameInvalid");case"name-taken":return t("mcp.add.nameTaken",{name:d0(e.name),path:e.path?f5(e.path):"mcp.json"});case"fields":return t("mcp.add.blocked.fields",{fields:e.fields.map(d0).join(", ")});case"field-invalid":return t("mcp.add.blocked.fieldsInvalid",{fields:e.fields.map(d0).join(", ")});case"config-invalid":return fD(e.note,t,n);case"web-password":return t("mcp.add.blocked.web-password");case"scope":return f8(e.block,t,f5)}}(j,p,v?.fields):void 0,I=y?.kind==="project-untrusted"&&y.trustable&&u,T=b?"http"===b.transport?b.headerNames:b.envNames:[];return(0,r.jsxs)(cb,{title:p("mcp.add.title"),catalogs:f7,target:(0,r.jsxs)(cx,{value:m.scope,label:p("config.saveTo"),options:[{value:"global",label:f9("global",p)},{value:"project",label:f9("project",p),disabled:void 0!==y&&"project"!==m.scope}],path:f5($),disabledReason:y?f8(y,p,f5):null,onChange:e=>E({scope:e}),children:[I&&(0,r.jsx)("span",{className:"mcp-config-line",children:(0,r.jsx)(cN,{size:"small",onClick:u,children:p("mcp.trust.trustButton")})}),m.trustFolder&&"trust-and-write"===m.projectMode.kind&&(0,r.jsx)("p",{className:"mcp-config-line is-warning",children:p("mcp.add.trustExplain",{path:f5(m.projectMode.folder)})})]}),inputLabel:p("mcp.add.inputLabel"),inputId:"mcp-add-source",placeholder:p("mcp.add.placeholder"),value:s.text,canSubmit:C,onValueChange:e=>c(fO(s,{text:e})),onSubmit:N,examplesLabel:p("mcp.add.examples"),examples:""===s.text.trim()?fK.map(e=>{let{source:t,text:n}=e;return{label:p(f_[t]),value:n}}):[],multiline:!0,children:[g&&(0,r.jsxs)("label",{className:"mcp-add-toggle",children:[(0,r.jsx)("input",{type:"checkbox",checked:s.rawPi,onChange:e=>c(fO(s,{rawPi:e.target.checked}))}),(0,r.jsxs)("span",{className:"mcp-config-lines",children:[(0,r.jsx)("span",{className:"mcp-config-line",children:p("mcp.add.rawPi")}),s.rawPi&&(0,r.jsx)("span",{className:"mcp-config-line is-dim",children:p("mcp.add.rawPiOn")})]})]}),!x.ok&&""!==s.text.trim()&&(0,r.jsx)(mt,{notes:x.notes}),x.ok&&x.servers.length>1&&(0,r.jsxs)(cp,{label:p("mcp.add.serverLabel"),children:[(0,r.jsx)("select",{className:"mcp-add-input","aria-label":p("mcp.add.serverLabel"),value:String(x.servers.indexOf(v??x.servers[0])),onChange:e=>E({server:Number(e.target.value),name:void 0,values:{},references:{},secretReferences:{}}),children:x.servers.map((e,t)=>(0,r.jsx)("option",{value:t,children:d0(e.name)},`${t}\0${e.name}`))}),(0,r.jsx)("span",{className:"mcp-config-line is-dim",children:p("mcp.add.serverCount",{count:x.servers.length})})]}),v&&(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(cp,{label:p("config.name"),children:(0,r.jsx)("input",{id:f,className:"mcp-add-input","aria-label":p("config.name"),value:m.name,spellCheck:!1,autoCapitalize:"off",autoCorrect:"off",onChange:e=>E({name:e.target.value})})}),(0,r.jsx)(mt,{notes:w,fields:v.fields}),j?.kind==="name-taken"&&(0,r.jsx)("span",{className:"mcp-config-line",children:(0,r.jsx)(cN,{size:"small",onClick:()=>E({name:j.suggestedName}),children:p("mcp.add.useName",{name:d0(j.suggestedName)})})})]}),v&&b&&(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(cu,{children:p("mcp.add.preview")}),(0,r.jsxs)(ch,{children:[(0,r.jsx)(cf,{label:p("mcp.add.readAs"),children:p(f_[b.source])}),(0,r.jsx)(cf,{label:p("mcp.detail.transport"),children:p(`mcp.transport.${b.transport}`)}),(0,r.jsx)(cf,{label:"http"===b.transport?p("mcp.detail.url"):p("mcp.detail.command"),tone:"plain",mono:!0,children:b.target}),"stdio"===b.transport&&void 0!==b.cwd&&(0,r.jsx)(cf,{label:p("mcp.detail.cwd"),mono:!0,children:b.cwd}),T.length>0&&(0,r.jsx)(cf,{label:"http"===b.transport?p("mcp.detail.headers"):p("mcp.detail.env"),children:(0,r.jsx)(mi,{names:T})}),b.commandFields.length>0&&(0,r.jsx)(cf,{label:p("mcp.detail.shellCommands"),tone:"plain",children:(0,r.jsxs)("span",{className:"mcp-config-lines",children:[(0,r.jsx)("span",{className:"mcp-config-line is-warning",children:p("mcp.server.commandFields")}),(0,r.jsx)("span",{className:"mcp-config-chips",children:b.commandFields.map(e=>{let t=d6(e);return(0,r.jsx)("code",{className:"mcp-config-chip",children:p(t.key,t.params)},`${e.kind}\0${e.name??""}`)})})]})}),b.variableReferences.length>0&&(0,r.jsx)(cf,{label:p("mcp.detail.variables"),tone:"plain",children:(0,r.jsxs)("span",{className:"mcp-config-lines",children:[(0,r.jsx)("span",{className:"mcp-config-line is-warning",children:p("http"===b.transport?"mcp.server.sendsVariables":"mcp.server.passesVariables")}),(0,r.jsx)("span",{className:"mcp-config-chips",children:d7(b.variableReferences).map(e=>{let{variable:t,field:n}=e,i=d6(n);return(0,r.jsx)("code",{className:"mcp-config-chip",children:p("mcp.server.variableIn",{variable:d0(t),field:p(i.key,i.params)})},`${t}\0${n.kind}\0${n.name??""}`)})})]})})]}),(0,r.jsxs)("div",{className:"mcp-config-lines",children:[b.unfilled&&(0,r.jsx)("span",{className:"mcp-config-line is-dim",children:p("mcp.add.previewUnfilled")}),b.masked&&(0,r.jsx)("span",{className:"mcp-config-line is-dim",children:p("mcp.server.masked")})]}),(0,r.jsx)(mt,{notes:S,fields:v.fields}),v.fields.length>0&&(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(cu,{children:p("mcp.add.fields")}),v.fields.map(e=>{var t;let n;return(0,r.jsx)(ms,{field:e,fields:v.fields,draft:s,suggestedName:(t=m.name,(n=e.targets[0])?fG(pZ(n.path),t):void 0),problem:m.fieldProblems[e.id],onDraftChange:c},e.id)})]}),m.pasteSecrets.length>0&&(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(cu,{children:p("mcp.add.secrets")}),m.pasteSecrets.map(e=>{var t,n;let i;return(0,r.jsx)(mo,{label:e,draft:s,suggestedName:fG(e,m.name),stored:m.fill?.ok?(t=m.fill.config,void 0!==(i="oauth.clientSecret"===(n=e)?"url"in t?t.oauth?.clientSecret:void 0:n.startsWith("headers.")?"url"in t?t.headers?.[n.slice("headers.".length)]:void 0:n.startsWith("env.")&&"command"in t?t.env?.[n.slice("env.".length)]:void 0)&&ph(i)?i:void 0):void 0,problem:m.fieldProblems[e],onDraftChange:c},e)})]})]}),(0,r.jsx)(cN,{variant:"primary",className:"is-pushed-right",disabled:!C,"aria-busy":o||void 0,"aria-describedby":M?h:void 0,onClick:N,children:o?p("mcp.add.adding"):m.trustFolder?p("mcp.add.buttonTrust"):p("mcp.add.button")}),M&&(0,r.jsx)("p",{id:h,className:`mcp-config-line ${j?.kind==="scope"?"is-warning":"is-dim"}`,children:M}),v&&!j&&(0,r.jsx)("p",{className:"mcp-config-line is-dim",children:p("mcp.add.afterAdd")}),l&&(0,r.jsxs)("div",{role:"alert",className:"mcp-add-failure",children:[(0,r.jsxs)("span",{className:"mcp-config-line is-error",children:[p("mcp.add.failed")," ",function(e,t){if(e.timedOut)return t("mcp.actionTimedOut");if("trust-too-broad"===e.reason&&e.breadth)return t(f6[e.breadth.kind],{path:f5(e.breadth.path)});if("secret-global-only"===e.reason&&e.fields)return t(e.fields.every(fX)?"mcp.add.projectBlocked.secret":"mcp.add.projectBlocked.secretFixed",{fields:e.fields.join(", ")});if("name-taken"===e.reason&&e.name)return t("mcp.add.nameTaken",{name:d0(e.name),path:e.path?f5(e.path):"mcp.json"});let n=e.reason?mn[e.reason]:void 0;return n?t(n,{error:d0(e.error)}):e.reason&&"internal"!==e.reason?t(`mcp.reason.${e.reason}`):d0(e.error)}(l,p)]}),l.trustKept&&(0,r.jsx)("span",{className:"mcp-config-line is-warning",children:p("mcp.add.trustKept",{folder:f5(l.trust?.decisionPath??n??"")})}),l.notes&&l.notes.length>0&&(0,r.jsx)(mt,{notes:l.notes,fields:v?.fields}),"name-taken"===l.reason&&l.suggestedName&&j?.kind!=="name-taken"&&(0,r.jsx)("span",{className:"mcp-config-line",children:(0,r.jsx)(cN,{size:"small",onClick:()=>E({name:l.suggestedName}),children:p("mcp.add.useName",{name:d0(l.suggestedName)})})}),"host-env-confirm"===l.reason&&l.names&&l.names.length>0&&(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)("span",{className:"mcp-config-line is-warning",children:p("mcp.add.hostEnv.body",{names:l.names.map(d0).join(", ")})}),(0,r.jsx)("span",{className:"mcp-config-line",children:(0,r.jsx)(cN,{variant:"danger",size:"small",disabled:o||a||void 0!==j,onClick:()=>d(f4(s,m,l.names)),children:p("mcp.add.hostEnv.confirm")})})]})]})]})}function mi(e){let{names:t}=e,{t:n}=(0,eG.s)();return(0,r.jsxs)("span",{className:"mcp-config-lines",children:[(0,r.jsx)("span",{className:"mcp-config-chips",children:t.map(e=>(0,r.jsx)("code",{className:"mcp-config-chip",children:d0(e)},e))}),(0,r.jsx)("span",{className:"mcp-config-line is-dim",children:n("mcp.detail.valuesHidden")})]})}function ms(e){let t,{field:n,fields:s,draft:o,suggestedName:a,problem:l,onDraftChange:c}=e,{t:d}=(0,eG.s)(),u=(0,i.useId)(),p=l?{"aria-invalid":!0,"aria-describedby":u}:{},h=fZ(n),f=h?o.references[n.id]:void 0,m=void 0!==f,g=d0(n.label),x=o.values[n.id]??n.defaultValue??"",v=fB[n.reason],b=n.optional&&1===(t=new Set(n.targets.map(e=>{let{path:t}=e;return"headers"===t[0]?t[1]:void 0}))).size?[...t][0]:void 0,y=m?f&&!l?fq(n,s,"${"+f+"}",!0):void 0:fq(n,s,`‹${d("mcp.add.field.slot")}›`),j=e=>c({...o,values:{...o.values,[n.id]:e}}),k=e=>{let t={...o.references};void 0===e?delete t[n.id]:t[n.id]=e,c({...o,references:t})};return(0,r.jsxs)("div",{className:"mcp-add-field",children:[(0,r.jsx)(cp,{label:g,children:m?(0,r.jsx)("input",{className:"mcp-add-input","aria-label":d("mcp.add.field.variableName",{field:g}),value:f,placeholder:a??"GITHUB_TOKEN",spellCheck:!1,autoCapitalize:"off",autoCorrect:"off",...p,onChange:e=>k(e.target.value)}):"select"===n.kind?(0,r.jsxs)("select",{className:"mcp-add-input","aria-label":g,value:x,...p,onChange:e=>j(e.target.value),children:[!n.options?.includes(x)&&(0,r.jsx)("option",{value:"",children:d("mcp.add.field.choose")}),(n.options??[]).map(e=>(0,r.jsx)("option",{value:e,children:d0(e)},e))]}):(0,r.jsx)("input",{className:"mcp-add-input",type:"password"===n.kind?"password":"text","aria-label":g,value:x,autoComplete:"off",placeholder:n.placeholder?d0(n.placeholder):void 0,spellCheck:!1,autoCapitalize:"off",autoCorrect:"off",...p,onChange:e=>j(e.target.value)})}),l&&(0,r.jsx)("span",{id:u,className:"mcp-config-line is-error",children:fD(l,d,[n])}),(0,r.jsxs)("span",{className:"mcp-config-lines",children:[n.description&&(0,r.jsx)("span",{className:"mcp-config-line is-dim",children:d0(n.description)}),v&&(0,r.jsx)("span",{className:"mcp-config-line is-dim",children:d(v)}),m?(0,r.jsx)("span",{className:"mcp-config-line is-dim",children:y?d("mcp.add.field.storedAsVariable",{value:y}):d("mcp.add.field.variableHint")}):(0,r.jsxs)(r.Fragment,{children:[y&&(0,r.jsx)("span",{className:"mcp-config-line is-dim",children:d("mcp.add.field.storedAs",{value:y})}),n.optional&&(0,r.jsx)("span",{className:"mcp-config-line is-dim",children:b?d("mcp.add.field.optionalHeader",{name:d0(b)}):d("mcp.add.field.optional")})]})]}),h&&(0,r.jsxs)("label",{className:"mcp-add-toggle",children:[(0,r.jsx)("input",{type:"checkbox",checked:m,onChange:e=>k(e.target.checked?a??"":void 0)}),(0,r.jsx)("span",{className:"mcp-config-line",children:d("mcp.add.field.useVariable")})]})]})}function mo(e){let{label:t,draft:n,suggestedName:s,stored:o,problem:a,onDraftChange:l}=e,{t:c}=(0,eG.s)(),d=(0,i.useId)(),u=n.secretReferences[t],p=void 0!==u,h=d0(t),f=e=>{let r={...n.secretReferences};void 0===e?delete r[t]:r[t]=e,l({...n,secretReferences:r})};return(0,r.jsxs)("div",{className:"mcp-add-field",children:[(0,r.jsx)("span",{className:"mcp-config-lines",children:(0,r.jsxs)("span",{className:"mcp-config-line",children:[(0,r.jsx)("code",{className:"mcp-config-chip",children:h})," ",c("mcp.add.secret.holds")]})}),(0,r.jsxs)("label",{className:"mcp-add-toggle",children:[(0,r.jsx)("input",{type:"checkbox",checked:p,onChange:e=>f(e.target.checked?s??"":void 0)}),(0,r.jsx)("span",{className:"mcp-config-line",children:c("mcp.add.field.useVariable")})]}),p&&(0,r.jsx)(cp,{label:c("mcp.add.field.variableName",{field:h}),children:(0,r.jsx)("input",{className:"mcp-add-input","aria-label":c("mcp.add.field.variableName",{field:h}),value:u,placeholder:s??"API_TOKEN",spellCheck:!1,autoCapitalize:"off",autoCorrect:"off",...a?{"aria-invalid":!0,"aria-describedby":d}:{},onChange:e=>f(e.target.value)})}),a&&(0,r.jsx)("span",{id:d,className:"mcp-config-line is-error",children:fD(a,c)}),(0,r.jsx)("span",{className:"mcp-config-line is-dim",children:p?void 0!==o?c("mcp.add.secret.storedAs",{value:d0(o)}):c("mcp.add.field.variableHint"):c("mcp.add.secret.asPasted")})]})}let ma=new Set(["done","failed","cancelled","expired"]);function ml(e){var t;return e?.flow!==void 0&&!e.gone&&(t=e.flow.phase,!ma.has(t))}let mc={"mcp-off":"mcp.signIn.blocked.mcp-off","project-untrusted":"mcp.signIn.blocked.project-untrusted","trust-unreadable":"mcp.signIn.blocked.trust-unreadable",invalid:"mcp.signIn.blocked.invalid","web-password":"mcp.test.blocked.web-password"},md={"mcp-off":"mcp.signIn.blocked.mcp-off","project-untrusted":"mcp.signIn.blocked.project-untrusted","trust-unreadable":"mcp.signIn.blocked.trust-unreadable","server-invalid":"mcp.signIn.blocked.invalid","web-password":"mcp.test.blocked.web-password","entry-not-object":"mcp.signIn.refused.file","server-missing":"mcp.signIn.refused.file",unparsable:"mcp.signIn.refused.file","invalid-shape":"mcp.signIn.refused.file","link-dangling":"mcp.signIn.refused.file","link-outside":"mcp.signIn.refused.file","not-a-file":"mcp.signIn.refused.file","too-large":"mcp.signIn.refused.file","too-many-servers":"mcp.signIn.refused.file","invalid-request":"mcp.signIn.refused.invalid-request"},mu={connecting:"mcp.signIn.phase.connecting",starting:"mcp.signIn.phase.starting",finishing:"mcp.signIn.phase.finishing"},mp={"connect-failed":"mcp.signIn.failed.connect-failed","queue-timed-out":"mcp.signIn.failed.queue-timed-out","sign-in-failed":"mcp.signIn.failed.sign-in-failed",internal:"mcp.signIn.failed.internal"};function mh(e,t,n){var r;let i={...e,flow:t,deadlineAt:n+t.expiresInMs,gone:!1};return r=t.phase,ma.has(r)&&(delete i.pasteError,delete i.cancelError,i.pasting&&(i.pasting=!1),i.cancelling&&(i.cancelling=!1)),i}function mf(e){return"sign-in-unknown"===e.reason}async function mm(e,t,n,r){var i;let s,o;try{s=await n(e,{...t,cache:"no-store",signal:r})}catch(e){return{ok:!1,error:{error:e instanceof Error?e.message:String(e)}}}try{o=await s.json()}catch{return{ok:!1,error:{error:`HTTP ${s.status}`}}}return s.ok&&null!==(i=o)&&"object"==typeof i&&"string"==typeof i.flowId&&"string"==typeof i.phase&&"string"==typeof i.name&&("global"===i.scope||"project"===i.scope)&&"number"==typeof i.expiresInMs?{ok:!0,data:o}:{ok:!1,error:uR(o,s.status)}}function mg(e,t,n,r,i){let s=arguments.length>5&&void 0!==arguments[5]?arguments[5]:{},o=t.method??"GET";return uL(r=>mm(e,t,n,r),()=>({ok:!1,error:{error:`${o} ${e} did not answer within ${i} ms`,timedOut:!0}}),i,r,s)}function mx(e){return`/api/mcp/sign-in/${encodeURIComponent(e)}`}function mv(e,t){let n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"mcp.signIn.requestTimedOut";if(e.timedOut)return t(n);let r=e.reason?md[e.reason]:void 0;return r?t(r):e.reason&&"internal"!==e.reason?t(`mcp.reason.${e.reason}`):e.error}function mb(e){let{server:t,run:n,block:s,signOutBlock:o,controlsBusy:a,signingOut:l,onSignIn:c,onSignOut:d,onPaste:u,onCancel:p}=e,{t:h}=(0,eG.s)(),f=(0,i.useId)(),m=(0,i.useId)(),g=(0,i.useId)(),x=(0,i.useRef)(null),v=(0,i.useRef)(null),b=ml(n),y=(0,i.useRef)(b);if((0,i.useEffect)(()=>{let e=y.current;y.current=b,!e&&b?e_(document,v.current):e&&!b&&e_(document,x.current)},[b]),!t.usesOAuth)return void 0===t.authProvider&&t.headerNames.some(e=>"authorization"===e.toLowerCase())?null:(0,r.jsx)(cf,{label:h("mcp.detail.signIn"),children:void 0!==t.authProvider?h("mcp.signIn.provider",{provider:d0(t.authProvider)}):h("mcp.signIn.header")});let j=n?.flow,k=n?.starting===!0,w=void 0!==j&&(j.scope!==t.scope||j.name!==t.name),S=(t.oauthStateStored??t.signedIn)!==!1,C=k||l||void 0!==s,N=a||k||void 0!==o,E=j?.phase==="finishing";return(0,r.jsx)(cf,{label:h("mcp.detail.signIn"),tone:"plain",children:(0,r.jsxs)("div",{className:"mcp-config-lines",children:[(0,r.jsx)("span",{className:"mcp-config-line",children:h(!0===t.signedIn?"mcp.signIn.signedIn":!1===t.signedIn?t.oauthStateStored?"mcp.signIn.registrationOnly":"mcp.signIn.notSignedIn":"mcp.signIn.unknown")}),j&&b&&w&&(0,r.jsx)("span",{className:"mcp-config-line is-dim",children:h("mcp.signIn.shared",{name:d0(j.name)})}),j&&b&&("authorize"===j.phase?(0,r.jsx)(my,{flow:j,pasting:n?.pasting===!0,pasteError:n?.pasteError,onPaste:e=>u(t,j.flowId,e)},j.flowId):(0,r.jsx)("span",{role:"status",className:"mcp-config-line",children:h(mu[j.phase]??"mcp.signIn.phase.connecting")})),j&&b&&E&&(0,r.jsx)("span",{id:g,className:"mcp-config-line is-dim",children:h("mcp.signIn.phase.noCancel")}),j&&!b&&!n?.gone&&(0,r.jsx)(mj,{flow:j,shared:w}),n?.gone&&(0,r.jsx)("span",{role:"alert",className:"mcp-config-line is-warning",children:h("mcp.signIn.gone")}),n?.error&&(0,r.jsxs)("span",{role:"alert",className:"mcp-config-line is-error",children:[h("mcp.signIn.requestFailed")," ",mv(n.error,h)]}),b&&n?.cancelError&&(0,r.jsxs)("span",{role:"alert",className:"mcp-config-line is-error",children:[h("mcp.signIn.cancelFailed")," ",mv(n.cancelError,h,"mcp.signIn.cancelTimedOut")]}),n?.signOutError&&(0,r.jsxs)("span",{role:"alert",className:"mcp-config-line is-error",children:[h("mcp.signIn.signOutFailed")," ",mv(n.signOutError,h,"mcp.actionTimedOut")]}),n?.signedOut&&(0,r.jsx)("span",{role:"status",className:"mcp-config-line",children:h(n.signedOut.removed?"mcp.signIn.signedOutDone":"mcp.signIn.signedOutNothing")}),s&&(0,r.jsx)("span",{id:f,className:"mcp-config-line is-dim",children:h(mc[s])}),!s&&o&&S&&!b&&(0,r.jsx)("span",{id:m,className:"mcp-config-line is-dim",children:h(mc[o])}),(0,r.jsxs)("div",{className:"mcp-sign-in-actions",children:[b&&j?(0,r.jsx)(cN,{ref:v,size:"small",disabled:n?.cancelling===!0||E,"aria-busy":n?.cancelling===!0||void 0,"aria-describedby":E?g:void 0,onClick:()=>p(t,j.flowId),children:h(n?.cancelling?"mcp.signIn.cancelling":"mcp.signIn.cancel")}):(0,r.jsx)(cN,{ref:x,size:"small",variant:"primary",disabled:C,"aria-busy":k||void 0,"aria-describedby":s?f:void 0,onClick:()=>c(t),children:h(k?"mcp.signIn.starting":"mcp.signIn.button")}),S&&!b&&(0,r.jsx)(cN,{size:"small",disabled:N,"aria-busy":l||void 0,"aria-describedby":o?s?f:m:void 0,onClick:()=>d(t),children:h(l?"mcp.signIn.signingOut":"mcp.signIn.signOut")})]}),!s&&!b&&S&&(0,r.jsx)("span",{className:"mcp-config-line is-dim",children:h("mcp.signIn.replaces")}),S&&!o&&!b&&(0,r.jsx)("span",{className:"mcp-config-line is-dim",children:h("mcp.signIn.signOutExplain")})]})})}function my(e){let{flow:t,pasting:n,pasteError:s,onPaste:o}=e,{t:a}=(0,eG.s)(),[l,c]=(0,i.useState)(""),d=(0,i.useRef)(null),u=(0,i.useRef)(n);(0,i.useEffect)(()=>{let e=u.current;u.current=n,e&&!n&&e_(document,d.current)},[n]);let p=function(e){if(void 0!==e)try{let t=new URL(e);return"https:"===t.protocol||"http:"===t.protocol?t.href:void 0}catch{return}}(t.authorizationUrl);return(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(cB,{message:a("mcp.signIn.authorize.message"),hint:p?(0,r.jsxs)(r.Fragment,{children:[a("mcp.signIn.authorize.link")," ",(0,r.jsx)("a",{href:p,target:"_blank",rel:"noopener noreferrer",children:d0(p)})]}):(0,r.jsxs)(r.Fragment,{children:[a("mcp.signIn.authorize.notALink")," ",(0,r.jsx)("code",{className:"mcp-config-chip",children:d0(t.authorizationUrl??"")})]}),value:l,placeholder:a("mcp.signIn.paste.placeholder"),inputLabel:a("mcp.signIn.paste.label"),submitLabel:a(n?"mcp.signIn.paste.checking":"mcp.signIn.paste.submit"),disabled:n,plainEnterSubmits:!1,inputRef:d,onValueChange:c,onSubmit:()=>o(l)}),s&&(0,r.jsxs)("span",{role:"alert",className:"mcp-config-line is-error",children:[a("mcp.signIn.paste.refused")," ",mv(s,a,"mcp.signIn.paste.timedOut"),"redirect-denied"===s.reason&&s.error&&(0,r.jsxs)(r.Fragment,{children:[" ",(0,r.jsx)("code",{className:"mcp-config-chip",children:d0(s.error)})]})]}),t.redirectUrl&&(0,r.jsx)("span",{className:"mcp-config-line is-dim",children:a("mcp.signIn.authorize.redirect",{url:d0(t.redirectUrl)})}),(0,r.jsx)("span",{className:"mcp-config-line is-dim",children:a("mcp.signIn.authorize.wait")})]})}function mj(e){let{flow:t,shared:n}=e,{t:i}=(0,eG.s)(),s=function(e){let t=arguments.length>1&&void 0!==arguments[1]&&arguments[1];switch(e.phase){case"done":{if(t)return e.alreadySignedIn?"mcp.signIn.shared.already":"mcp.signIn.shared.done";if(e.alreadySignedIn)return"mcp.signIn.done.already";let n=e.result;if(n&&"needs-auth"===n.state)return"mcp.signIn.done.needsAuthAfter";if(n&&"failed"===n.state)return"mcp.signIn.done.failedAfter";if(!n)return"mcp.signIn.done.notConnected";return e.refreshed?"mcp.signIn.done.refreshed":"mcp.signIn.done.signedIn"}case"failed":if(t&&"connect-failed"===e.failure)return"mcp.signIn.shared.connect-failed";return mp[e.failure??"internal"];case"cancelled":return"mcp.signIn.cancelled";case"expired":return"mcp.signIn.expired";default:return}}(t,n);if(!s)return null;let o=function(e){let t=arguments.length>1&&void 0!==arguments[1]&&arguments[1];return"done"===e.phase?!t&&e.result&&"connected"!==e.result.state?"warning":"on":"failed"===e.phase?"error":"expired"===e.phase?"warning":"off"}(t,n);return(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)("span",{role:"status",className:"error"===o?"mcp-config-line is-error":"warning"===o?"mcp-config-line is-warning":"mcp-config-line",children:i(s,{name:d0(t.name)})}),t.error&&(0,r.jsxs)("span",{className:"mcp-config-line is-error",children:[i("mcp.test.error")," ",(0,r.jsx)("code",{className:"mcp-config-chip",children:d0(t.error)})]})]})}function mk(e,t){return t("project"===e?"skills.scope.project":"skills.scope.global")}function mw(e){return d0(dd(e))}function mS(e,t){let{key:n,params:r}=e;return r?t(n,void 0===r.path?r:{...r,path:mw(r.path)}):t(n)}function mC(e,t){return e.timedOut?t("mcp.loadTimedOut"):e.reason&&"internal"!==e.reason?t(`mcp.reason.${e.reason}`):e.error}function mN(e,t){return e.timedOut?t("mcp.actionTimedOut"):mC(e,t)}function mE(){if("u"<typeof document)return null;let e=document.activeElement;return e instanceof HTMLButtonElement||e instanceof HTMLSelectElement?e:null}function m$(e){let{cwd:t,onClose:n,embedded:s=!1,trust:o,onTrustProject:a,onProjectTrustChanged:l}=e,[c,d]=(0,i.useState)({state:"loading"}),[u,p]=(0,i.useState)(!1),[h,f]=(0,i.useState)(()=>lY("mcp",t)),[m,g]=(0,i.useState)({saving:!1,error:null}),[x,v]=(0,i.useState)(null),[b,y]=(0,i.useState)(null),[j,k]=(0,i.useState)(null),[w,S]=(0,i.useState)(null),[C,N]=(0,i.useState)(null),[E,$]=(0,i.useState)({}),M=(0,i.useRef)(0),I=(0,i.useRef)(null),T=(0,i.useRef)(null),R=(0,i.useRef)(null),L=(0,i.useRef)(new Map),[A,P]=(0,i.useState)({}),z=(0,i.useRef)(A);z.current=A;let[W,O]=(0,i.useState)(0),[F,D]=(0,i.useState)(!1),[B,_]=(0,i.useState)(fz),H=(0,i.useRef)(B);H.current=B;let[U,K]=(0,i.useState)(null),[q,Z]=(0,i.useState)(null),V=(0,i.useRef)(!0),J=(0,i.useRef)(c);J.current=c;let Y=(0,i.useCallback)(async()=>{let e=++M.current;I.current?.abort();let n=new AbortController;I.current=n,p(!0);let r=await uO(t,void 0,n.signal);if(e===M.current){if(p(!1),!r.ok)return void d({state:"failed",error:r.error});d({state:"loaded",data:r.data,...r.projectError?{projectError:r.projectError}:{}}),f(e=>uw(uj(r.data,!!t),e))}},[t]),G=dx(o);(0,i.useEffect)(()=>(Y(),()=>{M.current+=1,I.current?.abort()}),[Y,G]);let X=(0,i.useCallback)(async e=>{let t=new AbortController;T.current=t,g({saving:!0,error:null,target:"preference"});let n=await uB(e,void 0,t.signal);T.current===t&&(T.current=null,g({saving:!1,error:n.ok?null:n.error,target:"preference"}),n.ok&&d(e=>{var t,r;let i;return"loaded"===e.state?{...e,data:(t=e.data,r=n.preference,i={...t.codemode,preference:r},delete i.preferenceError,{...t,codemode:i})}:e}),Y())},[Y]),Q=(0,i.useCallback)(async e=>{let t=new AbortController;T.current=t,g({saving:!0,error:null,target:"mode"});let n=await u_(e,void 0,t.signal);T.current===t&&(T.current=null,g({saving:!1,error:n.ok?null:n.error,target:"mode"}),n.ok&&d(e=>"loaded"===e.state?{...e,data:function(e,t){let n=e.codemode.mode;if(!n)return e;let r={settingsPath:n.settingsPath,...n.projectOverride?{projectOverride:n.projectOverride}:{},...t};return{...e,codemode:{...e.codemode,mode:r}}}(e.data,n.mode)}:e),Y())},[Y]),ee=(0,i.useCallback)(async e=>{let t=new AbortController;T.current=t,g({saving:!0,error:null,target:"inlineBudget"});let n=await uH(e,void 0,t.signal);T.current===t&&(T.current=null,g({saving:!1,error:n.ok?null:n.error,target:"inlineBudget"}),n.ok&&d(e=>"loaded"===e.state?{...e,data:function(e,t){let n=e.codemode.inlineBudget;if(!n)return e;let r={settingsPath:n.settingsPath,default:n.default,max:n.max,...n.projectOverride?{projectOverride:n.projectOverride}:{},...t};return{...e,codemode:{...e.codemode,inlineBudget:r}}}(e.data,n.inlineBudget)}:e),Y())},[Y]);(0,i.useEffect)(()=>{let e=L.current;return V.current=!0,()=>{V.current=!1,T.current?.abort(),T.current=null,R.current?.abort(),R.current=null,e.clear()}},[]);let et=(0,i.useCallback)(async e=>{let n=un(e);if(L.current.has(n))return;let r={};L.current.set(n,r),$(e=>({...e,[n]:{...e[n],running:!0,startedAt:Date.now(),error:void 0,queueTimedOut:void 0,configKey:void 0}}));let i=J.current,s="loaded"===i.state&&i.data.project?t:null,o=await u3({scope:e.scope,name:e.name},s);if(L.current.get(n)!==r)return;L.current.delete(n),$(t=>({...t,[n]:function(e,t,n){let r=e?.signedOutAt,i={...e?.startedAt!==void 0?{startedAt:e.startedAt}:{},...void 0!==r?{signedOutAt:r}:{}};if(void 0!==r&&(e?.startedAt??0)<=r)return{running:!1,...i};let s=e?.response?{response:e.response}:{};return t.ok?t.data.result.queueTimedOut?{running:!1,...i,...s,queueTimedOut:!0,configKey:t.data.configKey}:{running:!1,...i,response:t.data}:{running:!1,...i,...s,error:t.error,...void 0!==n?{configKey:n}:{}}}(t[n],o,e.configKey)}));let a=J.current,l="loaded"===a.state?a.data.servers.find(e=>un(e)===n):void 0;(o.ok?l?.configKey===o.data.configKey:void 0===o.error.reason||o.error.timedOut)||Y()},[t,Y]),en=(0,i.useCallback)((e,n)=>{M.current+=1,I.current?.abort(),p(!1),d(t=>({state:"loaded",data:e,..."loaded"===t.state&&t.projectError?{projectError:t.projectError}:{}})),f(r=>uw(uj(e,!!t),n??r))},[t]),er=(0,i.useCallback)(async e=>{let n=un(e),r=z.current[n];if(r?.starting||ml(r))return;P(e=>({...e,[n]:{starting:!0}}));let i=J.current,s="loaded"===i.state&&i.data.project?t:null,o=await function(e,t){let n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:(e,t)=>fetch(e,t),r=arguments.length>3?arguments[3]:void 0,i=arguments.length>4&&void 0!==arguments[4]?arguments[4]:15e3;return mg("/api/mcp/sign-in",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({scope:e.scope,name:e.name,...t?{cwd:t}:{}})},n,r,i,{abortAtDeadline:!1})}({scope:e.scope,name:e.name},s);V.current&&(P(e=>({...e,[n]:function(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:Date.now();return e.ok?mh({},e.data,t):{error:e.error}}(o)})),o.ok||void 0===o.error.reason||o.error.timedOut||Y())},[t,Y]),ei=(0,i.useCallback)(async(e,t,n)=>{let r=un(e);P(e=>e[r]?.flow?.flowId===t?{...e,[r]:{...e[r],pasting:!0,pasteError:void 0}}:e);let i=await function(e,t){let n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:(e,t)=>fetch(e,t),r=arguments.length>3?arguments[3]:void 0,i=arguments.length>4&&void 0!==arguments[4]?arguments[4]:15e3;return mg(mx(e),{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({redirectUrl:t})},n,r,i)}(t,n);V.current&&P(e=>{let n=function(e,t,n){let r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:Date.now();if(!e?.flow||e.flow.flowId!==t)return e;let i={...e,pasting:!1,version:(e.version??0)+1};return n.ok?{...mh(i,n.data,r),pasteError:void 0}:mf(n.error)?{...i,gone:!0}:{...i,pasteError:n.error}}(e[r],t,i);return void 0===n||n===e[r]?e:{...e,[r]:n}})},[]),es=(0,i.useCallback)(async(e,t)=>{let n=un(e);P(e=>e[n]?.flow?.flowId===t?{...e,[n]:{...e[n],cancelling:!0}}:e);let r=await function(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:(e,t)=>fetch(e,t),n=arguments.length>2?arguments[2]:void 0,r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:15e3;return mg(mx(e),{method:"DELETE"},t,n,r)}(t);V.current&&P(e=>{let i=function(e,t,n){let r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:Date.now();if(!e?.flow||e.flow.flowId!==t)return e;let i={...e,cancelling:!1,cancelError:void 0,version:(e.version??0)+1};return n.ok?mh(i,n.data,r):mf(n.error)?{...i,gone:!0}:{...i,cancelError:n.error}}(e[n],t,r);return void 0===i||i===e[n]?e:{...e,[n]:i}})},[]),eo=Object.entries(A).flatMap(e=>{let[t,n]=e;return ml(n)&&n.flow?[`${t}\u0001${n.flow.flowId}`]:[]}).join("\x02");(0,i.useEffect)(()=>{if(!eo)return;let e=new AbortController,t=setTimeout(async()=>{for(let t of eo.split("\x02")){let[n,r]=t.split("\x01"),i=z.current[n]?.version??0,s=await function(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:(e,t)=>fetch(e,t),n=arguments.length>2?arguments[2]:void 0,r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:15e3;return mg(mx(e),{},t,n,r)}(r,void 0,e.signal);if(e.signal.aborted)return;P(e=>{let t=function(e,t,n){let r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:Date.now(),i=arguments.length>4?arguments[4]:void 0;return e?.flow&&e.flow.flowId===t&&(void 0===i||(e.version??0)===i)?n.ok?mh(e,n.data,r):mf(n.error)||void 0!==e.deadlineAt&&r>e.deadlineAt+5e3?{...e,gone:!0}:e:e}(e[n],r,s,Date.now(),i);return void 0===t||t===e[n]?e:{...e,[n]:t}})}O(e=>e+1)},1e3);return()=>{clearTimeout(t),e.abort()}},[eo,W]);let ea=(0,i.useRef)(A);(0,i.useEffect)(()=>{let e=ea.current;ea.current=A,Object.keys(A).some(t=>{var n,r;return n=e[t],r=A[t],ml(n)&&!ml(r)})&&Y()},[A,Y]);let el=(0,i.useCallback)(async(e,n,r)=>{R.current?.abort();let i=new AbortController;R.current=i,v(n);let s=J.current,o="loaded"===s.state&&s.data.project?t:null,a=await uY(e,o,void 0,i.signal);if(R.current===i)return R.current=null,v(null),a.ok?en(a.data,r?.(a.data)):Y(),a},[en,t,Y]),ec=(0,i.useCallback)(async(e,t)=>{let n=un(e),r=mE();y(null),k(null);let i=await el({action:t?"enable":"disable",scope:e.scope,name:e.name},`switch:${n}`);i&&(i.ok||y({key:n,failure:i.error}),N({control:r}))},[el]),ed=(0,i.useCallback)(async(e,t)=>{let n=un(e),r=mE();y(null),k(null);let i=await el({action:"set-in-project",name:e.name,enabled:t},`in-project:${n}`);i&&(i.ok||y({key:n,failure:i.error}),N({control:r}))},[el]),eu=(0,i.useCallback)(async(e,t)=>{let n=un(e),r=mE();y(null),k(null);let i=await el({action:"set-exposure",scope:e.scope,name:e.name,exposure:t},`exposure:${n}`);i&&(i.ok||y({key:n,failure:i.error}),N({control:r}))},[el]),ep=(0,i.useCallback)(async e=>{let t=un(e),n=mE();y(null),k(null);let r=await el({action:"remove",scope:e.scope,name:e.name},`remove:${t}`);if(!r)return;if(!r.ok){y({key:t,failure:r.error}),N({control:n});return}let i=r.data.undo;i&&S({...i,undoing:!1})},[el]),eh=(0,i.useCallback)(async()=>{if(!w)return;let e=mE();y(null),k(null),S({...w,undoing:!0,error:void 0});let t=await el({action:"undo",token:w.token},"undo",e=>e.restored?un(e.restored):void 0);t&&(S(e=>e?.token!==w.token?e:t.ok?null:{...e,undoing:!1,error:t.error}),t.ok||N({control:e}))},[el,w]),ef=(0,i.useCallback)(async e=>{let t=un(e),n=mE();y(null),k(null),P(e=>({...e,[t]:{...e[t],signOutError:void 0,signedOut:void 0}}));let r=await el({action:"sign-out",scope:e.scope,name:e.name},`sign-out:${t}`);if(r){if(P(e=>({...e,[t]:r.ok?{signedOut:{removed:r.data.signedOut?.removed===!0}}:{...e[t],signOutError:r.error}})),r.ok){let e=Date.now();$(n=>{let r=function(e,t){if(e)return{running:e.running,...void 0!==e.startedAt?{startedAt:e.startedAt}:{},signedOutAt:t}}(n[t],e);return r?{...n,[t]:r}:n})}N({control:n})}},[el]),em=(0,i.useCallback)(async e=>{let n=mE(),r=H.current;y(null),k(null),K(null);let i=await el(e,"add",e=>e.added?un(e.added):void 0);if(!i)return;let s=H.current!==r;if(!i.ok){s||K(i.error),i.error.trust&&t&&l?.(t,i.error.trust),N({control:n});return}let{added:o,trust:a,trustedFolder:c}=i.data;if(D(!1),s||_(fz),N({control:null,toSelectedRow:!0}),!o)return;Z({...o,key:un(o),...c&&t?{trustedFolder:t}:{}}),a&&t&&l?.(t,a);let d=i.data.servers.find(e=>un(e)===un(o));d&&!uX(d,i.data)&&et(d)},[t,l,el,et]),eg=w?.token,ex=w?.expiresInMs;(0,i.useEffect)(()=>{if(void 0===eg||void 0===ex)return;let e=setTimeout(()=>S(e=>e?.token===eg?null:e),ex);return()=>clearTimeout(e)},[eg,ex]);let ev=(0,i.useCallback)(async(e,t,n)=>{let{targets:r,keptOff:i}={targets:dg(t,n,e=>e.enabled).filter(n?uV:uZ),keptOff:n?t.filter(e=>!e.enabled&&uZ(e)&&!uV(e)).length:0},s=mE();if(y(null),k(i>0?{scope:e,keptOff:i,failures:[],total:0}:null),0===r.length)return;let o=await el({action:"set-enabled",enabled:n,servers:r.map(e=>{let{scope:t,name:n}=e;return{scope:t,name:n}})},`group:${e}`);if(!o)return;if(N({control:s}),!o.ok)return void k({scope:e,keptOff:i,failures:[],total:r.length,error:o.error});let a=o.data.results??[],l=a.filter(e=>void 0!==e.reason).map(e=>({name:e.name,failure:{error:e.error??"",reason:e.reason}}));k(l.length>0||i>0?{scope:e,keptOff:i,failures:l,total:a.length}:null)},[el]);return(0,i.useEffect)(()=>{h&&lG("mcp",h,t)},[t,h]),(0,r.jsx)(mM,{cwd:t,load:c,selected:h,refreshing:u,embedded:s,codemodeSave:m,busy:x,actionError:b,groupStatus:j,undo:w,focusBack:C,tests:E,signIns:A,adding:F,addDraft:B,addFailure:U,added:q,onAddOpen:()=>{D(!0),Z(null),y(null)},onAddDraftChange:e=>{H.current=e,_(e),K(null)},onAddSubmit:e=>void em(e),onTest:e=>void et(e),onSignIn:e=>void er(e),onSignOut:e=>void ef(e),onSignInPaste:(e,t,n)=>void ei(e,t,n),onSignInCancel:(e,t)=>void es(e,t),onSelect:e=>{f(e),y(null),D(!1),Z(t=>t?.key===e?t:null)},onRefresh:()=>void Y(),onCodemodeChange:e=>void X(e),onCodemodeModeChange:e=>void Q(e),onCodemodeInlineBudgetSave:e=>void ee(e),onServerSwitch:(e,t)=>void ec(e,t),onServerSwitchInProject:(e,t)=>void ed(e,t),onExposureChange:(e,t)=>void eu(e,t),onGroupSwitch:(e,t,n)=>void ev(e,t,n),onRemove:e=>void ep(e),onUndo:()=>void eh(),onTrustProject:a,onClose:n})}function mM(e){var t,n,s,o;let a,l,c,{cwd:d,load:u,selected:p,refreshing:h,embedded:f,codemodeSave:m={saving:!1,error:null},busy:g=null,actionError:x=null,groupStatus:v=null,undo:b=null,focusBack:y=null,tests:j={},signIns:k={},adding:w=!1,addDraft:S=fz,addFailure:C=null,added:N=null,onAddOpen:E=()=>{},onAddDraftChange:$=()=>{},onAddSubmit:M=()=>{},onSelect:I,onRefresh:T,onCodemodeChange:R,onCodemodeModeChange:L=()=>{},onCodemodeInlineBudgetSave:A=()=>{},onServerSwitch:P=()=>{},onServerSwitchInProject:z=()=>{},onExposureChange:W=()=>{},onGroupSwitch:O=()=>{},onRemove:F=()=>{},onUndo:D=()=>{},onTest:B=()=>{},onSignIn:_=()=>{},onSignOut:H=()=>{},onSignInPaste:U=()=>{},onSignInCancel:K=()=>{},onTrustProject:q,onClose:Z}=e,{t:V}=(0,eG.s)(),J=(0,i.useId)(),Y=(0,i.useId)(),G="loaded"===u.state?(t=u.data,a=!1,l=t.servers.map(e=>{var t;let n=j[un(e)]?.response;if(!n||n.configKey!==e.configKey||e.status&&("test"===(t=e.status).origin?t.testedAt:t.closedAt??t.updatedAt)>=n.result.testedAt)return e;a=!0;let r={...n.result,origin:"test"};return{...e,status:r}}),a?{...t,servers:l}:t):void 0,X=G?uj(G,!!d):[],Q=G?{mcpAvailable:G.mcp.available,projectServersLoad:ur(G.project)}:void 0,ee=X.flatMap(e=>e.servers),et=ee.find(e=>un(e)===p),en=N?ee.find(e=>un(e)===N.key):void 0,er=G?function(e){if(!e.available)return"builtin-disabled"===e.reason?e.settingsPath?{key:"mcp.unavailable.builtin-disabled",params:{path:e.settingsPath}}:{key:"mcp.unavailable.builtin-disabled-unknown"}:{key:"operator-disabled"===e.reason?"mcp.unavailable.operator-disabled":"mcp.unavailable.internals-unavailable"}}(G.mcp):void 0,ei=er?void 0:G?.hostInactive,es=G?.files.find(e=>"project"===e.scope),eo=G?function(e,t){if(!e||!t||!t.exists&&0===t.problems.length)return;let{trust:n}=e;return n?n.requiresTrust||!1===n.decision?!0===n.decision?n.inherited&&n.decisionPath?{kind:"inherited",key:"mcp.trust.trustedThrough",params:{path:n.decisionPath}}:void 0:!1===n.decision&&n.inherited&&n.decisionPath?{kind:"untrusted",key:"mcp.trust.untrustedThrough",params:{path:n.decisionPath}}:{kind:"untrusted",key:"mcp.trust.untrusted"}:void 0:{kind:"untrusted",key:"mcp.trust.unreadable"}}(G.project,es):void 0,ea=q&&uS(G?.project)?q:void 0,el=eo?.kind==="untrusted"&&void 0!==ea,ec=(0,i.useRef)(null),ed=(0,i.useRef)(null),eu=(0,i.useRef)(el);(0,i.useEffect)(()=>{let e=eu.current;eu.current=el,e&&!el&&e_(document,ec.current??ed.current)},[el]);let ep=(0,i.useRef)(null),eh=b?.token,ef=(0,i.useRef)(eh);(0,i.useEffect)(()=>{let e=ef.current;ef.current=eh,void 0!==eh&&eh!==e?e_(document,ep.current):void 0!==e&&void 0===eh&&e_(document,ec.current??ed.current)},[eh]);let em=G?[...G.files].sort((e,t)=>e.scope===t.scope?0:"global"===e.scope?-1:1).flatMap(e=>e.problems.map(t=>({file:e,problem:t}))):[],eg=uk(ee),ex=G?.files.find(e=>"global"===e.scope),ev=G?function(e){let t=e.files.find(e=>"project"===e.scope);if(t?.autoEnableCodemode!==void 0&&ur(e.project))return t.autoEnableCodemode?{value:!0,path:t.path}:{value:!1,path:t.path};let n=e.files.find(e=>"global"===e.scope);return n?.autoEnableCodemode!==void 0?n.autoEnableCodemode?{value:!0,path:n.path}:{value:!1,path:n.path}:{value:!0}}(G):void 0,eb=G?(n=ee.length,s=G.files,n>0?"mcp.selectItem":s.some(e=>e.problems.some(uy))?"mcp.emptyFileProblem":"mcp.empty"):void 0,ey=null!==g||h||m.saving,ej=(0,i.useRef)(null);(0,i.useEffect)(()=>{if(y&&!ey&&ej.current!==y)if(ej.current=y,y.toSelectedRow)e_(document,ec.current??ed.current);else{var e,t,n;e=document,t=y.control,n=ec.current??ed.current,t&&e_(e,t.isConnected&&!t.disabled?t:n)}},[y,ey]);let ek=e=>G?uK(e,G):void 0,ew=!!G&&uU(G.mcp),eS=X.find(e=>"project"===e.scope)?.servers??[],eC=ek("project"),eN=eo?.kind==="untrusted"?[mS(eo,V),eC&&"mcp-off"!==eC&&eS.length>0?V(uq[eC]):null].filter(Boolean).join(" "):"";return(0,r.jsxs)(l5,{embedded:f,title:V("settings.mcp"),subtitle:d?dd(d):void 0,closeLabel:V("i18n.close"),onClose:Z,children:[(0,r.jsxs)("div",{className:"mcp-config-notices",children:[er&&(0,r.jsxs)(cy,{id:J,children:[mS(er,V),ew&&(0,r.jsxs)(r.Fragment,{children:[" ",V(uq["mcp-off"])]}),G&&!G.mcp.available&&G.mcp.detail&&(0,r.jsxs)(r.Fragment,{children:[" ",(0,r.jsx)("code",{className:"mcp-config-chip",children:d0(G.mcp.detail)})]})]}),ei&&(0,r.jsx)(cy,{children:V("mcp.hostInactive",{path:mw(ei.cwd),owner:mw(ei.owner)})}),"loaded"===u.state&&u.projectError&&(0,r.jsx)(cy,{children:V("mcp.projectNotListed",{reason:mC(u.projectError,V)})}),eo?.kind==="untrusted"&&(0,r.jsx)(cj,{id:Y,message:eN,trustLabel:V("mcp.trust.trustButton"),onTrust:ea}),eo?.kind==="inherited"&&(0,r.jsx)(cy,{children:mS(eo,V)}),b&&(0,r.jsxs)(cy,{action:b.error?.reason==="undo-unavailable"?void 0:(0,r.jsx)(cN,{ref:ep,size:"small",onClick:D,disabled:b.undoing||ey,children:b.undoing?V("mcp.undoing"):V("mcp.undo")}),children:[V("mcp.removed",{name:d0(b.name),path:mw(b.path)}),b.error&&(0,r.jsxs)(r.Fragment,{children:[" ",V("mcp.undoFailed")," ",mN(b.error,V)]})]}),N&&G&&en&&(0,r.jsx)(mI,{added:N,cwd:d,server:en,testing:j[N.key]?.running===!0,signIn:k[N.key],signingOut:g===`sign-out:${N.key}`,signInBlock:en?uX(en,G):void 0,onSignIn:_})]}),(0,r.jsxs)(l9,{children:[(0,r.jsxs)(l7,{children:[(0,r.jsx)(ce,{children:"loading"===u.state?(0,r.jsx)("div",{className:"config-sidebar-message",children:V("i18n.loading")}):"failed"===u.state?(0,r.jsxs)("div",{role:"alert",className:"config-sidebar-message is-error",children:[V("mcp.loadFailed")," ",mC(u.error,V)]}):G&&Q?(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)("div",{className:"config-sidebar-group",children:(0,r.jsx)(mT,{codemode:G.codemode,active:!w&&p===ut,rowRef:ec,onSelect:I})}),X.map(e=>{let t=ek(e.scope);return(0,r.jsx)(mR,{group:e,context:Q,selected:w?null:p,selectedRowRef:ec,block:t,blockNoticeId:"mcp-off"===t?er?J:void 0:t&&eo?.kind==="untrusted"?Y:void 0,busy:g,controlsBusy:ey,status:v?.scope===e.scope?v:null,onSelect:I,onGroupSwitch:O},e.scope)})]}):null}),G&&(0,r.jsx)(c$,{ref:ed,active:w,onClick:E,children:V("mcp.add.action")})]}),(0,r.jsx)(cw,{children:(0,r.jsx)(co,{className:"is-fill",children:G&&Q&&ev&&eb?w?(0,r.jsx)(mr,{data:G,cwd:d,draft:S,busy:"add"===g,controlsBusy:ey,failure:C,onDraftChange:$,onSubmit:M,onTrustProject:ea}):p===ut?(0,r.jsx)(mU,{codemode:G.codemode,autoEnable:ev,save:m,serverBusy:null!==g,onChange:R,onModeChange:L,onInlineBudgetSave:A}):et?(0,r.jsx)(mP,{server:et,context:Q,codemode:G.codemode,toolSearchDisabled:G.toolSearchDisabled,autoEnable:ev,block:ek(et.scope),inProject:function(e,t){if("global"!==e.scope||void 0!==e.invalidError||e.notAnObject||!ur(t.project))return;let n=t.files.find(e=>"project"===e.scope);if(!n||n.problems.some(e=>"auto-enable-codemode-invalid"!==e.reason))return;let r=t.servers.find(t=>"project"===t.scope&&t.name===e.name);return r?r.override?{kind:"override",key:un(r),keys:r.override.keys,applies:!0===e.overriddenByProject}:void 0:{kind:"switch"}}(et,G),inProjectBlock:ek("project"),savedWhileOff:!G.mcp.available&&!ew,busy:g,controlsBusy:ey,actionError:x?.key===un(et)?x.failure:null,test:(o=j[un(et)],o&&void 0!==o.configKey&&o.configKey!==et.configKey?{running:o.running,...o.response?{response:o.response}:{}}:o),testBlock:uX(et,G),signIn:k[un(et)],signInBlock:uX(et,G),signOutBlock:(c=uK(et.scope,G))||(void 0===et.invalidError&&et.validated?void 0:"invalid"),onSwitch:P,onSwitchInProject:z,onShowServer:e=>{I(e),requestAnimationFrame(()=>e_(document,ec.current??ed.current))},onExposureChange:W,onRemove:F,onTest:B,onSignIn:_,onSignOut:H,onSignInPaste:U,onSignInCancel:K},un(et)):(0,r.jsx)(ck,{children:"mcp.empty"===eb?V(eb,{globalPath:mw(ex?.path??"~/.pi/agent/mcp.json")}):V(eb)}):null})})]}),(0,r.jsxs)(cS,{status:em.length>0?(0,r.jsx)(cC,{tone:em.some(e=>{let{problem:t}=e;return uy(t)})?"error":"warning",summary:1===em.length?V("mcp.footer.fileProblem"):V("mcp.footer.fileProblems",{count:em.length}),details:em.map(e=>{let{file:t,problem:n}=e,i=ue(n,t.realPath);return(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)("code",{className:"mcp-config-chip",children:mw(t.path)})," ",V(`mcp.fileProblem.${n.reason}`),i&&(0,r.jsxs)(r.Fragment,{children:[" ",(0,r.jsx)("code",{className:"mcp-config-chip",children:i})]})]})})}):(0,r.jsx)(cC,{summary:eg.total>0?V("mcp.serverCount",{enabled:eg.enabled,total:eg.total}):""}),children:[!f&&(0,r.jsx)(cN,{onClick:Z,children:V("i18n.close")}),(0,r.jsx)(cN,{variant:"secondary",onClick:T,disabled:ey,children:V("i18n.refresh")})]})]})}function mI(e){let{added:t,cwd:n,server:i,testing:s,signIn:o,signingOut:a,signInBlock:l,onSignIn:c}=e,{t:d}=(0,eG.s)(),u=d0(t.name),p="project"===t.scope&&n?d0(du(t.path,n)):mw(t.path),h=i.status,f=!s&&h?.origin==="test"&&"needs-auth"===h.state&&i.usesOAuth,m=o?.starting===!0||ml(o);return(0,r.jsxs)(cy,{action:!f||m||a||l?void 0:(0,r.jsx)(cN,{size:"small",variant:"primary",onClick:()=>c(i),children:d("mcp.signIn.button")}),children:[void 0===t.trustedFolder?d("mcp.add.added",{name:u,path:p}):t.trustedFolder===n?d("mcp.add.addedTrustedHere",{name:u,path:p}):d("mcp.add.addedTrusted",{name:u,path:p,folder:mw(t.trustedFolder)}),s&&(0,r.jsxs)(r.Fragment,{children:[" ",d("mcp.add.testing")]}),f&&(0,r.jsxs)(r.Fragment,{children:[" ",d("mcp.add.needsSignIn")]})]})}function mT(e){let{codemode:t,active:n,rowRef:i,onSelect:s}=e,{t:o}=(0,eG.s)(),a=t.builtinDisabled||"unavailable"===t.sandbox.state?"unavailable":t.preference??"unknown",l=o(uM[a]);return(0,r.jsxs)(ci,{ref:n?i:void 0,active:n,"aria-label":o("mcp.codemode.rowLabel",{state:l}),onClick:()=>s(ut),children:[(0,r.jsx)(cM,{...up(uI(a))}),(0,r.jsx)(cs,{className:"is-grow",children:o("mcp.codemode.title")}),(0,r.jsx)("span",{className:`mcp-sidebar-badge is-${uI(a)}`,children:l})]})}function mR(e){var t;let n,i,{group:s,context:o,selected:a,selectedRowRef:l,block:c,blockNoticeId:d,busy:u,controlsBusy:p,status:h,onSelect:f,onGroupSwitch:m}=e,{t:g}=(0,eG.s)(),{enabled:x,total:v}=uk(s.servers),b=(t=s.servers).some(e=>e.enabled&&uZ(e))&&t.every(e=>e.enabled||!uV(e)),y=function(e){if(!(e.servers.length>0))return e.file?e.file.problems.some(uy)?"mcp.group.fileProblem":"mcp.group.empty":"mcp.group.notListed"}(s),j=h?(n=h.keptOff>0?g("mcp.groupKeptOff",{count:h.keptOff}):void 0,i=h.error?`${g("mcp.actionFailed")} ${mN(h.error,g)}`:h.failures.length>0?[g("mcp.bulkFailed",{count:h.failures.length,total:h.total}),...h.failures.map(e=>{let{name:t,failure:n}=e;return`${d0(t)}: ${mN(n,g)}`})].join("\n"):void 0,{...n?{note:n}:{},...i?{error:i}:{}}):void 0;return(0,r.jsxs)("div",{className:"config-sidebar-group",children:[(0,r.jsx)(ct,{aside:v>0?(0,r.jsx)(cn,{enabled:x,total:v,checked:b,disabled:p||void 0!==c,loading:u===`group:${s.scope}`,describedBy:c?d:void 0,label:g(b?"mcp.groupSwitchOn":"mcp.groupSwitchOff",{group:mk(s.scope,g)}),onChange:e=>m(s.scope,s.servers,e)}):void 0,children:mk(s.scope,g)}),j&&(0,r.jsx)(cr,{note:j.note,error:j.error}),y&&(0,r.jsx)("div",{className:"mcp-sidebar-group-empty",children:g(y)}),s.servers.map(e=>{let t=un(e),n=us(e,o),i=uu(n),s=ud[n],c=d0(e.name);return(0,r.jsxs)(ci,{ref:a===t?l:void 0,active:a===t,"aria-label":g("mcp.rowLabel",{name:c,state:g(ul(n,e.status))}),onClick:()=>f(t),children:[(0,r.jsx)(cM,{...up(i)}),(0,r.jsx)(cs,{className:`is-grow${"on"===i?"":" is-muted"}`,children:c}),s&&(0,r.jsx)("span",{className:`mcp-sidebar-badge is-${i}`,children:g(s)})]},t)})]})}function mL(e){let{fields:t}=e,{t:n}=(0,eG.s)();return(0,r.jsx)("span",{className:"mcp-config-chips",children:t.map(e=>{let t=d6(e);return(0,r.jsx)("code",{className:"mcp-config-chip",children:n(t.key,t.params)},`${e.kind}\0${e.name??""}`)})})}function mA(e){let{names:t}=e;return(0,r.jsx)("span",{className:"mcp-config-chips",children:t.map(e=>(0,r.jsx)("code",{className:"mcp-config-chip",children:d0(e)},e))})}function mP(e){let{server:t,context:n,codemode:s,toolSearchDisabled:o,autoEnable:a,block:l,inProject:c,inProjectBlock:d,savedWhileOff:u,busy:p,controlsBusy:h,actionError:f,test:m,testBlock:g,signIn:x,signInBlock:v,signOutBlock:b,onSwitch:y,onSwitchInProject:j,onShowServer:k,onExposureChange:w,onRemove:S,onTest:C,onSignIn:N,onSignOut:E,onSignInPaste:$,onSignInCancel:M}=e,{t:I}=(0,eG.s)(),T=(0,i.useId)(),R=(0,i.useId)(),L=us(t,n),A=d8(t),P=t.status,z=P?.origin==="test"&&"connected"===P.state&&P.toolCount>0?P:void 0,W=void 0===t.invalidError,O="http"===t.transport||void 0===t.transport&&void 0!==t.url,F=!O&&("stdio"===t.transport||void 0!==t.command),D=t.exposure?function(e,t,n){if("codemode"===e){var r;return r=t.codemode,"unavailable"===r.sandbox.state?{key:"mcp.exposure.sandboxUnavailable"}:r.builtinDisabled?{key:"mcp.exposure.builtinDisabled"}:n.value||"always"===uC(r)?void 0:{key:"mcp.exposure.autoEnableOff",params:{path:n.path}}}if("deferred"!==e||!t.toolSearchDisabled)return;let i=t.toolSearchDisabled.settingsPath;return i?{key:"mcp.exposure.toolSearchDisabled",params:{path:i}}:{key:"mcp.exposure.toolSearchDisabledUnknown"}}(t.exposure,{codemode:s,toolSearchDisabled:o},a):void 0,B=(0,i.useId)(),_=(0,i.useId)(),H=un(t),U=d0(t.name),K=!t.enabled&&void 0!==t.webPasswordField,q=!0===t.notAnObject,Z=l?I(`mcp.reason.${l}`):q?I("mcp.reason.entry-not-object"):K?I("mcp.reason.web-password"):u?I("mcp.write.savedWhileOff"):void 0;return(0,r.jsxs)(co,{children:[(0,r.jsxs)("div",{className:"config-detail-heading",children:[(0,r.jsxs)(ca,{children:[(0,r.jsxs)(cl,{children:[(0,r.jsx)(cm,{scope:t.scope,children:mk(t.scope,I)}),(0,r.jsx)(cd,{children:U})]}),(0,r.jsxs)(cc,{children:[(0,r.jsx)(m_,{server:t,test:m,testBlock:g,describedBy:R,onTest:C}),(0,r.jsx)(cN,{variant:"danger",size:"small",disabled:h||void 0!==l,"aria-describedby":l?T:void 0,onClick:()=>S(t),children:p===`remove:${H}`?I("i18n.removing"):I("i18n.remove")}),(0,r.jsx)(cE,{checked:t.enabled,disabled:h||void 0!==l||q||K,loading:p===`switch:${H}`,describedBy:Z?T:void 0,label:I(t.enabled?"mcp.server.switchOff":"mcp.server.switchOn",{name:U}),onChange:e=>y(t,e)})]})]}),Z&&(0,r.jsx)("div",{id:T,className:"config-detail-heading-note",children:Z})]}),f&&(0,r.jsxs)("p",{role:"alert",className:"mcp-config-line is-error",children:[I("mcp.actionFailed")," ",mN(f,I)]}),(0,r.jsxs)(ch,{children:[(0,r.jsx)(mH,{server:t,state:L,test:m,testBlock:g,testBlockId:R}),void 0!==t.description&&(0,r.jsx)(cf,{label:I("mcp.detail.description"),tone:"plain",children:d0(t.description)}),void 0!==A?(0,r.jsx)(cf,{label:O?I("mcp.detail.url"):I("mcp.detail.command"),tone:"plain",mono:!0,className:"mcp-config-code",children:A}):t.transport&&(0,r.jsx)(cf,{label:I("mcp.detail.transport"),children:I(`mcp.transport.${t.transport}`)}),F&&void 0!==t.cwd&&(0,r.jsx)(cf,{label:I("mcp.detail.cwd"),mono:!0,className:"mcp-config-code",children:d0(t.cwd)}),F&&t.envNames.length>0&&(0,r.jsx)(cf,{label:I("mcp.detail.env"),children:(0,r.jsx)(mA,{names:t.envNames})}),O&&t.headerNames.length>0&&(0,r.jsx)(cf,{label:I("mcp.detail.headers"),children:(0,r.jsx)(mA,{names:t.headerNames})}),W&&t.commandFields.length>0&&(0,r.jsx)(cf,{label:I("mcp.detail.shellCommands"),tone:"plain",children:(0,r.jsxs)("span",{className:"mcp-config-lines",children:[(0,r.jsx)("span",{className:"mcp-config-line is-warning",children:I("mcp.server.commandFields")}),(0,r.jsx)(mL,{fields:t.commandFields})]})}),W&&t.variableReferences.length>0&&(0,r.jsx)(cf,{label:I("mcp.detail.variables"),tone:"plain",children:(0,r.jsxs)("span",{className:"mcp-config-lines",children:[(0,r.jsx)("span",{className:"mcp-config-line is-warning",children:I(d5(t))}),(0,r.jsx)("span",{className:"mcp-config-chips",children:d7(t.variableReferences).map(e=>{let{variable:t,field:n}=e,i=d6(n);return(0,r.jsx)("code",{className:"mcp-config-chip",children:I("mcp.server.variableIn",{variable:t,field:I(i.key,i.params)})},`${t}\0${n.kind}\0${n.name??""}`)})})]})}),O&&W&&(0,r.jsx)(mb,{server:t,run:x,block:v,signOutBlock:b,controlsBusy:h,signingOut:p===`sign-out:${H}`,onSignIn:N,onSignOut:E,onPaste:$,onCancel:M}),(t.exposure||z)&&(0,r.jsx)(cf,{label:I("mcp.detail.exposure"),tone:"plain",children:(0,r.jsxs)("span",{className:"mcp-config-lines",children:[t.exposure&&(0,r.jsxs)(r.Fragment,{children:[(0,r.jsxs)("span",{className:"mcp-exposure-choice",children:[(0,r.jsx)("select",{className:"mcp-add-input mcp-exposure-select","aria-label":I("mcp.exposure.label",{name:U}),"aria-describedby":[B,l?T:null].filter(Boolean).join(" "),value:t.exposure,disabled:h||void 0!==l,onChange:e=>{let n=e.target.value;n!==t.exposure&&w(t,n)},children:uv.map(e=>(0,r.jsx)("option",{value:e,children:"codemode"===e?I("mcp.exposure.optionDefault",{label:I(ub[e])}):I(ub[e])},e))}),p===`exposure:${H}`&&(0,r.jsx)("span",{role:"status",className:"mcp-config-line is-dim",children:I("i18n.saving")})]}),(0,r.jsx)("span",{id:B,className:"mcp-config-line",children:I(ux[t.exposure])}),void 0!==t.toolExposureCount&&(0,r.jsx)("span",{className:"mcp-config-line is-dim",children:I("mcp.exposure.toolOverrides",{count:t.toolExposureCount})}),D&&(0,r.jsx)("span",{className:"mcp-config-line is-warning",children:mS(D,I)})]}),z&&(0,r.jsx)(mB,{status:z,serverExposure:t.exposure})]})}),c&&(0,r.jsx)(cf,{label:I("mcp.detail.inProject"),tone:"plain",children:(0,r.jsx)("span",{className:"mcp-config-lines",children:"override"===c.kind?(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)("span",{className:"mcp-config-line",children:c.applies?I("mcp.inProject.overridden",{keys:c.keys.join(", ")}):I("mcp.inProject.refused")}),(0,r.jsx)("span",{children:(0,r.jsx)(cN,{size:"small",onClick:()=>k(c.key),children:I("mcp.inProject.show")})})]}):(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)("span",{children:(0,r.jsx)(cN,{size:"small",disabled:h||void 0!==d||K,"aria-describedby":[_,d||K?T:null].filter(Boolean).join(" "),onClick:()=>j(t,!t.enabled),children:p===`in-project:${H}`?I("i18n.saving"):I(t.enabled?"mcp.inProject.turnOff":"mcp.inProject.turnOn")})}),(0,r.jsx)("span",{id:_,className:"mcp-config-line is-dim",children:I("mcp.inProject.saved")})]})})}),(0,r.jsx)(cf,{label:I("mcp.detail.file"),tone:"dim",mono:!0,className:"mcp-config-code",children:mw(t.sourcePath)})]}),(0,r.jsxs)("div",{className:"mcp-config-lines",children:[d3(t)&&(0,r.jsx)("p",{className:"mcp-config-line is-warning",children:I("mcp.server.hiddenCharacters")}),!t.validated&&(0,r.jsx)("p",{className:"mcp-config-line is-warning",children:I("mcp.server.unchecked")}),t.replacesGlobal&&(0,r.jsx)("p",{className:"mcp-config-line is-warning",children:I("mcp.server.replacesGlobal")}),t.override&&(0,r.jsx)("p",{className:"mcp-config-line",children:mS(d9(t.override.keys),I)}),t.shadowedByProject&&"replaced"!==L&&(0,r.jsx)("p",{className:"mcp-config-line",children:I("mcp.server.shadowedByProject")}),t.overriddenByProject&&"overridden"!==L&&(0,r.jsx)("p",{className:"mcp-config-line",children:I("mcp.server.overriddenByProject")}),t.masked&&(0,r.jsx)("p",{className:"mcp-config-line is-dim",children:I("mcp.server.masked")})]})]})}function mz(e){let{error:t,stderr:n}=e,{t:i}=(0,eG.s)();return(0,r.jsxs)(r.Fragment,{children:[t&&(0,r.jsxs)("span",{className:"mcp-config-line is-error",children:[i("mcp.test.error")," ",(0,r.jsx)("code",{className:"mcp-config-chip",children:d0(t)})]}),n&&(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)("span",{className:"mcp-config-line is-dim",children:i("mcp.test.stderr")}),(0,r.jsx)("pre",{className:"mcp-test-output",children:n.split(/\r?\n/).map(d0).join("\n")})]})]})}function mW(e){let{status:t,showState:n,entryCwd:i}=e;return"session"===t.origin?(0,r.jsx)(mD,{status:t,showState:n}):(0,r.jsx)(mF,{status:t,showState:n,entryCwd:i})}function mO(e){let{view:t}=e,{t:n}=(0,eG.s)();return(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)("span",{className:`mcp-config-state is-${t.tone}`,children:n(t.key)})," "]})}function mF(e){let{status:t,showState:n,entryCwd:i}=e,{t:s,locale:o}=(0,eG.s)(),a=uh(t.testedAt,o),l=t.serverInfo;return(0,r.jsxs)(r.Fragment,{children:[(0,r.jsxs)("span",{className:"mcp-config-line",children:[n&&(0,r.jsx)(mO,{view:t.timedOut?{key:u0.timedOut,tone:"error"}:{key:u0[t.state],tone:uu(t.state)}}),s((t.afterSignIn?u2:u1)[t.timedOut?"timedOut":t.state],{count:t.toolCount,seconds:u4(t.durationMs),time:a})]}),(0,r.jsx)(mz,{error:t.error,stderr:t.stderr}),l&&(0,r.jsx)("span",{className:"mcp-config-line is-dim",children:s("mcp.test.serverInfo",{name:d0(l.title??l.name),version:d0(l.version)})}),t.resources&&(0,r.jsx)("span",{className:"mcp-config-line is-dim",children:s("mcp.test.resources")}),void 0!==t.cwd&&t.cwd!==i&&(0,r.jsx)("span",{className:"mcp-config-line is-dim",children:s("mcp.test.ranIn",{path:mw(t.cwd)})}),void 0!==t.queuedMs&&t.queuedMs>=500&&(0,r.jsx)("span",{className:"mcp-config-line is-dim",children:s("mcp.test.queued",{seconds:u4(t.queuedMs)})})]})}function mD(e){let{status:t,showState:n}=e,{t:i,locale:s}=(0,eG.s)(),o=uh(t.updatedAt,s),a=void 0===t.closedAt?void 0:uh(t.closedAt,s);return(0,r.jsxs)(r.Fragment,{children:[(0,r.jsxs)("span",{className:"mcp-config-line",children:[n&&(0,r.jsx)(mO,{view:void 0!==t.closedAt?{key:"mcp.session.state.closed",tone:"off"}:{key:uf[t.state],tone:ug[t.state]}}),i(void 0!==t.closedAt?"mcp.session.summary.closed":um[t.state],{path:mw(t.cwd),time:o,...void 0===a?{}:{closedTime:a}})]}),void 0!==t.conflict&&(0,r.jsxs)("span",{className:"mcp-config-line is-error",children:[i("mcp.session.conflictOwner")," ",(0,r.jsx)("code",{className:"mcp-config-chip",children:mw(t.conflict)})]}),(0,r.jsx)(mz,{error:t.error,stderr:t.stderr})]})}function mB(e){let{status:t,serverExposure:n}=e,{t:i}=(0,eG.s)(),s=t.toolCount-t.tools.length;return(0,r.jsxs)("span",{className:"mcp-config-lines",children:[(0,r.jsx)("ul",{className:"mcp-test-tools",children:t.tools.map((e,t)=>(0,r.jsxs)("li",{className:"mcp-test-tool",children:[(0,r.jsxs)("span",{className:"mcp-config-chips",children:[(0,r.jsx)("code",{className:"mcp-config-chip",children:d0(e.name)}),e.readOnly&&(0,r.jsx)("span",{className:"mcp-test-tool-tag",children:i("mcp.test.readOnly")}),e.exposure!==(n??"codemode")&&(0,r.jsx)("span",{className:"mcp-test-tool-tag",children:i(ub[e.exposure])})]}),e.description&&(0,r.jsx)("span",{className:"mcp-config-line is-dim",children:d0(e.description)})]},`${t}\0${e.name}`))}),s>0&&(0,r.jsx)("span",{className:"mcp-config-line is-dim",children:i("mcp.test.moreTools",{count:s})})]})}function m_(e){let{server:t,test:n,testBlock:s,describedBy:o,onTest:a}=e,{t:l}=(0,eG.s)(),c=(0,i.useRef)(null),d=n?.running===!0,u=(0,i.useRef)(d);return(0,i.useEffect)(()=>{let e=u.current;u.current=d,e&&!d&&e_(document,c.current)},[d]),(0,r.jsx)(cN,{ref:c,size:"small",disabled:d||void 0!==s,"aria-busy":d||void 0,"aria-describedby":s?o:void 0,onClick:()=>a(t),children:l(d?"mcp.test.testing":"mcp.test.button")})}function mH(e){let{server:t,state:n,test:i,testBlock:s,testBlockId:o}=e,{t:a}=(0,eG.s)(),l=t.status,c=uc[n],d="invalid"===s&&"invalid"===n?"state":"web-password"===s&&void 0!==t.webPasswordField?"password":void 0;return(0,r.jsx)(cf,{label:a("i18n.status"),tone:"plain",children:(0,r.jsxs)("span",{className:"mcp-config-lines",children:[(0,r.jsx)("span",{className:`mcp-config-state is-${uu(n)}`,children:a(ul(n,l))}),"invalid"===n&&(0,r.jsxs)("span",{id:"state"===d?o:void 0,className:"mcp-config-line is-warning",children:[a("mcp.server.invalid")," ",(0,r.jsx)("code",{className:"mcp-config-chip",children:d0(t.invalidError??"")})]}),t.webPasswordField&&(0,r.jsxs)("span",{id:"password"===d?o:void 0,className:"mcp-config-line is-warning",children:[a("mcp.server.webPassword")," ",(0,r.jsx)(mL,{fields:[t.webPasswordField]})]}),l?(0,r.jsx)(mW,{status:l,showState:ui(l)!==n,entryCwd:t.cwd}):!s&&(0,r.jsx)("span",{className:"mcp-config-line is-dim",children:a("mcp.test.never")}),c&&(0,r.jsx)("span",{className:"mcp-config-line",children:a(c)}),i?.queueTimedOut&&(0,r.jsx)("span",{role:"alert",className:"mcp-config-line is-error",children:a("mcp.test.queueTimedOut")}),i?.error&&(0,r.jsxs)("span",{role:"alert",className:"mcp-config-line is-error",children:[a("mcp.test.requestFailed")," ",function(e,t){if(e.timedOut)return t("mcp.test.requestTimedOut");let n=e.reason?uQ[e.reason]:void 0;return n?t(n):mC(e,t)}(i.error,a)]}),s&&!d&&(0,r.jsx)("span",{id:o,className:"mcp-config-line is-dim",children:a(uG[s])}),!s&&t.commandFields.length>0&&(0,r.jsx)("span",{className:"mcp-config-line is-dim",children:a("mcp.test.serial")})]})})}function mU(e){let{codemode:t,autoEnable:n,save:i,serverBusy:s,onChange:o,onModeChange:a,onInlineBudgetSave:l}=e,{t:c}=(0,eG.s)(),d=t.sandbox,u=t.preference,p=i.saving||s,h=void 0===i.target||"preference"===i.target?i:{saving:!1,error:null},f=function(e,t){if("automatic"===uC(e)&&!t.value)return{key:"mcp.codemode.autoEnableOff",params:{path:t.path}}}(t,n),m="unavailable"===t.sandbox.state?{key:"mcp.codemode.alwaysUnavailable.sandbox"}:t.globalBuiltinSettingsPath?{key:"mcp.codemode.alwaysUnavailable.builtin",params:{path:t.globalBuiltinSettingsPath}}:void 0,g=function(e){if(!e.builtinDisabled)return;let t=e.builtinSettingsPath;return t?e.globalBuiltinSettingsPath?{key:"mcp.codemode.builtinDisabled",params:{path:t}}:{key:"mcp.codemode.builtinDisabledProject",params:{path:t}}:{key:"mcp.codemode.builtinDisabledUnknown"}}(t),x=function(e){let t=e.projectOverride;if(t)return{key:uN[t.preference],params:{path:t.settingsPath}}}(t);return(0,r.jsxs)(co,{children:[(0,r.jsx)(ca,{children:(0,r.jsx)(cl,{children:(0,r.jsx)(cd,{children:c("mcp.codemode.title")})})}),(0,r.jsx)("p",{className:"mcp-config-line",children:c("mcp.codemode.intro")}),(0,r.jsxs)(ch,{children:[(0,r.jsx)(cf,{label:c("mcp.codemode.mode"),tone:"plain",children:(0,r.jsxs)("div",{className:"mcp-config-lines",children:[u?(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(cg,{value:u,label:c("mcp.codemode.title"),options:[{value:"automatic",label:c(uM.automatic),disabled:p},{value:"always",label:c(uM.always),disabled:p||void 0!==m}],disabledReason:m?mS(m,c):null,onChange:e=>{e!==u&&o(e)},children:h.saving&&(0,r.jsx)("span",{role:"status",className:"mcp-config-line is-dim",children:c("i18n.saving")})}),(0,r.jsx)("span",{className:"mcp-config-line",children:c("always"===u?"mcp.codemode.alwaysDescription":"mcp.codemode.automaticDescription")})]}):(0,r.jsxs)("span",{className:"mcp-config-line is-warning",children:[c("mcp.codemode.preferenceError")," ",(0,r.jsx)("code",{className:"mcp-config-chip",children:d0(t.preferenceError??"")})]}),h.error&&(0,r.jsxs)("span",{role:"alert",className:"mcp-config-line is-error",children:[c("mcp.codemode.saveFailed")," ",(0,r.jsx)(mK,{error:h.error})]}),x&&(0,r.jsx)("span",{className:"mcp-config-line is-warning",children:mS(x,c)}),f&&(0,r.jsx)("span",{className:"mcp-config-line is-warning",children:mS(f,c)})]})}),t.mode?(0,r.jsx)(mq,{mode:t.mode,codemode:t,save:i,waiting:p,onChange:a}):void 0!==t.modeError&&(0,r.jsx)(cf,{label:c("mcp.codemode.toolMode"),tone:"plain",children:(0,r.jsxs)("span",{className:"mcp-config-line is-warning",children:[c("mcp.codemode.preferenceError")," ",(0,r.jsx)("code",{className:"mcp-config-chip",children:d0(t.modeError)})]})}),t.inlineBudget?(0,r.jsx)(mZ,{budget:t.inlineBudget,save:i,waiting:p,onSave:l}):void 0!==t.inlineBudgetError&&(0,r.jsx)(cf,{label:c("mcp.codemode.inlineBudget"),tone:"plain",children:(0,r.jsxs)("span",{className:"mcp-config-line is-warning",children:[c("mcp.codemode.preferenceError")," ",(0,r.jsx)("code",{className:"mcp-config-chip",children:d0(t.inlineBudgetError)})]})}),(0,r.jsx)(cf,{label:c("mcp.codemode.sandbox"),tone:"plain",children:"unavailable"===d.state?(0,r.jsxs)("span",{className:"mcp-config-line is-warning",children:[c("mcp.codemode.sandbox.unavailable")," ",(0,r.jsx)("code",{className:"mcp-config-chip",children:d0(d.error)})]}):(0,r.jsx)("span",{className:"mcp-config-line",children:c("available"===d.state?"mcp.codemode.sandbox.available":"mcp.codemode.sandbox.not-checked")})}),g&&(0,r.jsx)(cf,{label:c("mcp.codemode.builtin"),tone:"error",children:mS(g,c)})]})]})}function mK(e){let{error:t}=e,{t:n}=(0,eG.s)();return t.timedOut?(0,r.jsx)(r.Fragment,{children:n("mcp.codemode.saveTimedOut")}):t.reason&&"internal"!==t.reason?(0,r.jsx)(r.Fragment,{children:n(`mcp.reason.${t.reason}`)}):(0,r.jsx)("code",{className:"mcp-config-chip",children:d0(t.error)})}function mq(e){let{mode:t,codemode:n,save:i,waiting:s,onChange:o}=e,{t:a}=(0,eG.s)(),l="mode"===i.target,c=function(e){let t=e.mode;if(!t)return[];let n=[];void 0!==t.invalid&&n.push({key:"mcp.codemode.toolMode.invalid",params:{path:t.settingsPath,value:t.invalid}});let r=t.projectOverride;return r&&n.push({key:u$[r.value],params:{path:r.settingsPath}}),"only"===(r??t).value&&"automatic"===uC(e)&&n.push({key:"mcp.codemode.toolMode.automaticNote"}),n}(n);return(0,r.jsx)(cf,{label:a("mcp.codemode.toolMode"),tone:"plain",children:(0,r.jsxs)("div",{className:"mcp-config-lines",children:[(0,r.jsx)(cg,{value:t.value,label:a("mcp.codemode.toolMode"),options:[{value:"on",label:a("mcp.codemode.toolMode.on"),disabled:s},{value:"only",label:a("mcp.codemode.toolMode.only"),disabled:s}],onChange:e=>{(e!==t.value||void 0!==t.invalid)&&o(e)},children:l&&i.saving&&(0,r.jsx)("span",{role:"status",className:"mcp-config-line is-dim",children:a("i18n.saving")})}),(0,r.jsx)("span",{className:"mcp-config-line",children:a(uE[t.value])}),c.map(e=>(0,r.jsx)("span",{className:"mcp-config-line is-warning",children:mS(e,a)},e.key)),l&&i.error&&(0,r.jsxs)("span",{role:"alert",className:"mcp-config-line is-error",children:[a("mcp.codemode.toolMode.saveFailed")," ",(0,r.jsx)(mK,{error:i.error})]})]})})}function mZ(e){let t,n,{budget:s,save:o,waiting:a,onSave:l}=e,{t:c}=(0,eG.s)(),d=(0,i.useRef)(null),u=(0,i.useId)(),p=void 0===s.value?"":String(s.value),[h,f]=(0,i.useState)(p);(0,i.useEffect)(()=>{f(p)},[p]);let m=function(e,t){let n=e.trim();if(""===n)return{ok:!0,value:null};if(!/^\d+$/.test(n))return{ok:!1};let r=Number(n);return r<=t?{ok:!0,value:r}:{ok:!1}}(h,s.max),g=!!m.ok&&(null===m.value?void 0!==s.value||void 0!==s.invalid:m.value!==s.value),x="inlineBudget"===o.target,v=x&&o.saving,b=(0,i.useRef)(v);(0,i.useEffect)(()=>{let e=b.current;b.current=v,e&&!v&&e_(document,d.current)},[v]);let y=(t=[],void 0!==s.invalid&&t.push({key:"mcp.codemode.inlineBudget.invalid",params:{path:s.settingsPath,value:s.invalid,default:String(s.default)}}),(n=s.projectOverride)&&t.push(void 0!==n.value?{key:"mcp.codemode.inlineBudget.projectOverride",params:{path:n.settingsPath,value:String(n.value)}}:{key:"mcp.codemode.inlineBudget.projectOverrideDefault",params:{path:n.settingsPath,default:String(s.default)}}),t);return(0,r.jsx)(cf,{label:c("mcp.codemode.inlineBudget"),tone:"plain",children:(0,r.jsxs)("div",{className:"mcp-config-lines",children:[(0,r.jsxs)("form",{className:"mcp-codemode-budget",onSubmit:e=>{e.preventDefault(),m.ok&&g&&!a&&l(m.value)},children:[(0,r.jsx)("input",{ref:d,className:"mcp-add-input mcp-codemode-budget-input",inputMode:"numeric","aria-label":c("mcp.codemode.inlineBudget"),"aria-describedby":u,"aria-invalid":!m.ok||void 0,value:h,placeholder:String(s.default),readOnly:a,autoComplete:"off",spellCheck:!1,onChange:e=>f(e.target.value)}),(0,r.jsx)("span",{className:"mcp-config-line",children:c("mcp.codemode.inlineBudget.unit")}),(0,r.jsx)(cN,{type:"submit",size:"small",disabled:!g||a,children:c("mcp.codemode.inlineBudget.save")}),v&&(0,r.jsx)("span",{role:"status",className:"mcp-config-line is-dim",children:c("i18n.saving")})]}),!m.ok&&(0,r.jsx)("span",{className:"mcp-config-line is-error",children:c("mcp.codemode.inlineBudget.invalidDraft",{max:String(s.max)})}),(0,r.jsx)("span",{id:u,className:"mcp-config-line",children:c("mcp.codemode.inlineBudget.description",{default:String(s.default)})}),y.map(e=>(0,r.jsx)("span",{className:"mcp-config-line is-warning",children:mS(e,c)},e.key)),x&&o.error&&(0,r.jsxs)("span",{role:"alert",className:"mcp-config-line is-error",children:[c("mcp.codemode.inlineBudget.saveFailed")," ",(0,r.jsx)(mK,{error:o.error})]})]})})}let mV=[{kind:"ui",label:"settings.uiFontFamily",placeholder:"settings.uiFontPlaceholder",reset:"settings.resetUiFont",weightLabel:"settings.uiFontWeight"},{kind:"mono",label:"settings.monoFontFamily",placeholder:"settings.monoFontPlaceholder",reset:"settings.resetMonoFont",weightLabel:"settings.monoFontWeight"}];function mJ(){let{t:e}=(0,eG.s)(),t=o4();return(0,r.jsx)("div",{className:"settings-font-rows",children:mV.map(n=>{let{kind:i,label:s,placeholder:o,reset:a,weightLabel:l}=n,c=t[`${i}Weight`],d=oW.findIndex(e=>e.value===c);return(0,r.jsxs)("div",{className:"settings-chat-option settings-chat-range-option settings-font-row",children:[(0,r.jsxs)("div",{className:"settings-chat-range-header settings-font-header",children:[(0,r.jsx)("label",{htmlFor:`settings-font-${i}`,children:e(s)}),(0,r.jsx)("input",{id:`settings-font-${i}`,className:`settings-font-input${"mono"===i?" is-mono":""}`,type:"text",value:t[i],placeholder:e(o),maxLength:500,"aria-describedby":"settings-typography-description",autoComplete:"off",autoCapitalize:"off",autoCorrect:"off",spellCheck:!1,onChange:e=>t.setFontPreference(i,e.target.value)}),(0,r.jsx)("output",{htmlFor:`settings-font-${i}-weight`,children:c}),(0,r.jsx)(cN,{variant:"ghost",size:"small",className:"settings-chat-reset",title:e(a),"aria-label":e(a),disabled:!t[i]&&400===c,onClick:()=>t.resetFontPreference(i),children:(0,r.jsx)("svg",{width:"14",height:"14",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:"M3 12a9 9 0 1 0 9-9 9.75 9.75 0 0 0-6.74 2.74L3 8M3 3v5h5"})})})]}),(0,r.jsx)("input",{id:`settings-font-${i}-weight`,type:"range",min:oW[0].value,max:oW[oW.length-1].value,step:100,value:c,"aria-label":e(l),"aria-valuetext":`${c} ${e(oW[d].label)}`,onChange:e=>t.setFontWeight(i,Number(e.target.value))})]},i)})})}function mY(e){let{section:t,size:n=16,strokeWidth:i=1.8}=e,s={width:n,height:n,viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:i,strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":!0,className:"settings-section-icon"};return"general"===t?(0,r.jsxs)("svg",{...s,children:[(0,r.jsx)("path",{d:"M20 7h-9M14 17H5"}),(0,r.jsx)("circle",{cx:"7",cy:"7",r:"3"}),(0,r.jsx)("circle",{cx:"17",cy:"17",r:"3"})]}):"models"===t?(0,r.jsxs)("svg",{...s,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)("path",{d:"M9 1v3M15 1v3M9 20v3M15 20v3M20 9h3M20 15h3M1 9h3M1 15h3"})]}):"skills"===t?(0,r.jsxs)("svg",{...s,children:[(0,r.jsx)("path",{d:"m12 2-10 5 10 5 10-5-10-5Z"}),(0,r.jsx)("path",{d:"m2 12 10 5 10-5M2 17l10 5 10-5"})]}):"agents"===t?(0,r.jsxs)("svg",{...s,className:"settings-section-icon is-agent",children:[(0,r.jsx)("rect",{x:"5",y:"7",width:"14",height:"11",rx:"2"}),(0,r.jsx)("path",{d:"M9 11h.01M15 11h.01M9 15h6M12 7V4M10 4h4"})]}):"mcp"===t?(0,r.jsxs)("svg",{...s,children:[(0,r.jsx)("rect",{x:"3",y:"3",width:"18",height:"7",rx:"2"}),(0,r.jsx)("rect",{x:"3",y:"14",width:"18",height:"7",rx:"2"}),(0,r.jsx)("path",{d:"M7 6.5h.01M7 17.5h.01M11 6.5h6M11 17.5h6"})]}):(0,r.jsx)("svg",{...s,children:(0,r.jsx)("path",{d:"M9 7V2M15 7V2M6 13V8a1 1 0 0 1 1-1h10a1 1 0 0 1 1 1v5a6 6 0 0 1-12 0ZM12 19v3"})})}function mG(e){let{sessionId:t,onSessionReloaded:n,quoteSelectionEnabled:s,onQuoteSelectionChange:o}=e,{locale:a,setLocale:l,supportedLocales:c,t:d}=(0,eG.s)(),{preference:u,setThemePreference:p}=iH(),{width:h,setWidth:f,fontSize:m,setFontSize:g}=oz(),x=oj(),[v,b]=(0,i.useState)(null),[y,j]=(0,i.useState)(!1),[k,w]=(0,i.useState)(null),[S,C]=(0,i.useState)(!1),[N,E]=(0,i.useState)(null),[$,M]=(0,i.useState)(!1),[I,T]=(0,i.useState)(null),[R,L]=(0,i.useState)(!1),[A,P]=(0,i.useState)(null),[z,W]=(0,i.useState)(!1),[O,F]=(0,i.useState)(!1),[D,B]=(0,i.useState)("");(0,i.useEffect)(()=>{C(sa()),fetch("/api/web-auth").then(e=>e.ok?e.json():null).then(e=>W(e?.enabled===!0)).catch(()=>{})},[]);let _=async()=>{F(!0),B("");try{let e=await fetch("/api/web-auth",{method:"DELETE"});if(!e.ok)throw Error(`HTTP ${e.status}`);window.location.replace("/login")}catch{B(d("auth.logoutFailed"))}finally{F(!1)}};(0,i.useEffect)(()=>{let e=!1;return fetch("/api/tools/settings").then(async t=>{let n=await t.json();if(!t.ok||n.error)throw Error(n.error??`HTTP ${t.status}`);e||b(n)}).catch(t=>{e||w(t instanceof Error?t.message:String(t))}),()=>{e=!0}},[]),(0,i.useEffect)(()=>{let e=!1;return fetch("/api/cache-miss-notices").then(async t=>{let n=await t.json();if(!t.ok||n.error)throw Error(n.error??`HTTP ${t.status}`);e||E(!0===n.enabled)}).catch(t=>{e||T(t instanceof Error?t.message:String(t))}),()=>{e=!0}},[]);let H=async e=>{M(!0),T(null);try{let r=await fetch("/api/cache-miss-notices",{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify({enabled:e})}),i=await r.json();if(!r.ok||i.error)throw Error(i.error??`HTTP ${r.status}`);E(!0===i.enabled),t&&n()}catch(e){T(e instanceof Error?e.message:String(e))}finally{M(!1)}},U=async e=>{j(!0),w(null);try{let r=await fetch("/api/tools/settings",{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify({enabled:e})}),i=await r.json();if(!r.ok||i.error)throw Error(i.error??`HTTP ${r.status}`);b(i),t&&(await a0(t,{type:"reload"}),n())}catch(e){w(e instanceof Error?e.message:String(e))}finally{j(!1)}},K=async()=>{if(!R){L(!0),P(null);try{if(!("Notification"in window))throw Error("unsupported or not permitted");let e="default"===Notification.permission?await Notification.requestPermission():Notification.permission;if("granted"!==e||!await dc(a))throw Error("unsupported or not permitted");P({kind:"ok",message:d("settings.pushRegistered")})}catch(e){P({kind:"error",message:`${d("settings.pushRegisterFailed")} ${e instanceof Error?e.message:String(e)}`})}finally{L(!1)}}};return(0,r.jsxs)("div",{className:"settings-general",children:[(0,r.jsxs)("section",{className:"settings-general-section",children:[(0,r.jsx)("h3",{className:"settings-general-heading",children:d("settings.appearance")}),(0,r.jsx)("div",{role:"radiogroup","aria-label":d("settings.appearance"),className:"settings-theme-options",children:iN.map(e=>{let t=u===e.id;return(0,r.jsxs)("label",{className:"settings-theme-option","data-system":"auto"===e.id||void 0,"data-wide":"contrast-light"===e.id||"contrast-dark"===e.id||"zenburn"===e.id||void 0,children:[(0,r.jsx)("input",{type:"radio",name:"theme",value:e.id,checked:t,onChange:()=>p(e.id),className:"sr-only"}),"auto"===e.id?(0,r.jsxs)("span",{className:"settings-theme-swatch settings-theme-system","aria-hidden":"true",children:[(0,r.jsx)("span",{"data-theme":"light",className:"settings-theme-chip"}),(0,r.jsx)("span",{"data-theme":"dark",className:"settings-theme-chip"}),(0,r.jsx)("span",{className:"settings-theme-system-name",children:d(e.label)})]}):(0,r.jsx)("span",{className:"settings-theme-swatch","aria-hidden":"true",children:(0,r.jsx)("span",{"data-theme":e.id,className:"settings-theme-fill",children:(0,r.jsx)("span",{className:"settings-theme-name",children:d(e.label)})})}),(0,r.jsx)("span",{className:"sr-only",children:d(e.label)})]},e.id)})})]}),(0,r.jsxs)("section",{className:"settings-general-section",children:[(0,r.jsx)("h3",{className:"settings-general-heading",children:d("settings.typography")}),(0,r.jsx)("p",{id:"settings-typography-description",className:"settings-general-description",children:d("settings.fontDescription")}),(0,r.jsxs)("div",{className:"settings-chat-options",children:[(0,r.jsx)(mJ,{}),(0,r.jsxs)("div",{className:"settings-chat-option settings-chat-range-option",children:[(0,r.jsxs)("div",{className:"settings-chat-range-header",children:[(0,r.jsx)("label",{htmlFor:"settings-chat-content-font-size",children:d("settings.chatContentFontSize")}),(0,r.jsxs)("output",{htmlFor:"settings-chat-content-font-size",children:[m,"px"]}),(0,r.jsx)(cN,{variant:"ghost",size:"small",className:"settings-chat-reset",title:d("settings.resetChatContentFontSize"),"aria-label":d("settings.resetChatContentFontSize"),disabled:14===m,onClick:()=>g(14),children:(0,r.jsx)("svg",{width:"14",height:"14",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:"M3 12a9 9 0 1 0 9-9 9.75 9.75 0 0 0-6.74 2.74L3 8M3 3v5h5"})})})]}),(0,r.jsx)("input",{id:"settings-chat-content-font-size",type:"range",min:12,max:24,step:1,value:m,onChange:e=>g(Number(e.target.value))})]}),(0,r.jsxs)("div",{className:"settings-chat-option settings-chat-range-option",children:[(0,r.jsxs)("div",{className:"settings-chat-range-header",children:[(0,r.jsx)("label",{htmlFor:"settings-chat-content-width",children:d("settings.chatContentWidth")}),(0,r.jsxs)("output",{htmlFor:"settings-chat-content-width",children:[h,"px"]}),(0,r.jsx)(cN,{variant:"ghost",size:"small",className:"settings-chat-reset",title:d("settings.resetChatContentWidth"),"aria-label":d("settings.resetChatContentWidth"),disabled:820===h,onClick:()=>f(820),children:(0,r.jsx)("svg",{width:"14",height:"14",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:"M3 12a9 9 0 1 0 9-9 9.75 9.75 0 0 0-6.74 2.74L3 8M3 3v5h5"})})})]}),(0,r.jsx)("input",{id:"settings-chat-content-width",type:"range",min:820,max:2e3,step:10,value:h,onChange:e=>f(Number(e.target.value))})]})]})]}),(0,r.jsxs)("section",{className:"settings-general-section",children:[(0,r.jsx)("h3",{className:"settings-general-heading",children:d("settings.chat")}),(0,r.jsxs)("div",{className:"settings-chat-options",children:[(0,r.jsxs)("div",{className:"settings-chat-option settings-chat-switch-option",children:[(0,r.jsx)("span",{children:d("settings.thinkingExpandedDefault")}),(0,r.jsx)(cE,{checked:S,label:d("settings.thinkingExpandedDefault"),onChange:e=>{!function(e){try{window.localStorage.setItem(ss,String(e))}catch{return}window.dispatchEvent(new Event(so))}(e),C(e)}})]}),(0,r.jsxs)("div",{className:"settings-chat-option settings-chat-switch-option",children:[(0,r.jsx)("span",{children:d("settings.quoteSelection")}),(0,r.jsx)(cE,{checked:s,label:d("settings.quoteSelection"),onChange:o})]}),(0,r.jsxs)("div",{className:"settings-chat-option settings-chat-switch-option",role:"radiogroup","aria-label":d("settings.enterSendMode"),children:[(0,r.jsx)("span",{children:d("settings.enterSendMode")}),(0,r.jsxs)("div",{className:"settings-send-mode-options",children:[(0,r.jsxs)("label",{className:"settings-send-mode-option",children:[(0,r.jsx)("input",{type:"radio",name:"enter-send-mode",value:"enter",checked:"enter"===x,onChange:()=>oy("enter"),className:"sr-only"}),(0,r.jsx)("span",{className:"settings-send-mode-label",children:d("settings.enterSendModeEnter")})]}),(0,r.jsxs)("label",{className:"settings-send-mode-option",children:[(0,r.jsx)("input",{type:"radio",name:"enter-send-mode",value:"ctrlEnter",checked:"ctrlEnter"===x,onChange:()=>oy("ctrlEnter"),className:"sr-only"}),(0,r.jsx)("span",{className:"settings-send-mode-label",children:d("settings.enterSendModeCtrlEnter")})]})]})]}),(0,r.jsxs)("div",{className:"settings-chat-option settings-chat-switch-option",children:[(0,r.jsx)("span",{children:d("settings.cacheMissNotices")}),(0,r.jsx)(cE,{checked:!0===N,loading:null===N&&!I||$,label:d("settings.cacheMissNotices"),describedBy:"settings-cache-miss-notices-description",onChange:e=>void H(e)})]})]}),(0,r.jsx)("p",{id:"settings-cache-miss-notices-description",className:"settings-general-description",children:d("settings.cacheMissNoticesDescription")}),I&&(0,r.jsx)("p",{role:"alert",className:"settings-general-error",children:I})]}),v?.isWindows&&(0,r.jsxs)("section",{className:"settings-general-section",children:[(0,r.jsx)("h3",{className:"settings-general-heading",children:d("settings.shellTool")}),(0,r.jsx)("p",{className:"settings-general-description",children:d("settings.shellToolDescription")}),(0,r.jsxs)("div",{className:"settings-shell-option",children:[(0,r.jsx)("span",{children:d("settings.usePowerShell")}),(0,r.jsx)(cE,{checked:v.powerShellEnabled,loading:y,label:d("settings.usePowerShell"),onChange:e=>void U(e)})]}),k&&(0,r.jsx)("p",{role:"alert",className:"settings-general-error",children:k})]}),(0,r.jsxs)("section",{className:"settings-general-section",children:[(0,r.jsx)("h3",{className:"settings-general-heading",children:d("settings.pushPermission")}),(0,r.jsx)("p",{className:"settings-general-description",children:d("settings.pushPermissionDescription")}),(0,r.jsxs)("div",{className:"settings-shell-option",children:[(0,r.jsx)("span",{children:d("settings.pushPermission")}),(0,r.jsx)("button",{type:"button",className:"config-button config-button-small config-button-secondary",disabled:R,onClick:()=>void K(),children:R?d("settings.pushRegisterLoading"):d("settings.pushRegister")})]}),A&&(0,r.jsx)("p",{role:"status",className:"settings-general-error",style:"ok"===A.kind?{color:"var(--accent)"}:void 0,children:A.message})]}),(0,r.jsxs)("section",{className:"settings-general-section",children:[(0,r.jsx)("h3",{className:"settings-general-heading",children:d("common.language")}),(0,r.jsx)("div",{role:"radiogroup","aria-label":d("common.language"),className:"settings-language-options",children:c.map(e=>{let t=a===e.id;return(0,r.jsxs)("button",{type:"button",role:"radio","aria-checked":t,onClick:()=>l(e.id),className:"settings-language-option",children:[(0,r.jsx)("span",{className:"settings-language-radio",children:t&&(0,r.jsx)("span",{className:"settings-language-radio-dot"})}),(0,r.jsx)("span",{className:"settings-language-label",children:e.label}),(0,r.jsx)("span",{className:"settings-language-code",children:e.id})]},e.id)})})]}),z&&(0,r.jsxs)("section",{className:"settings-general-section",children:[(0,r.jsxs)(cN,{variant:"secondary",disabled:O,onClick:()=>void _(),children:[(0,r.jsx)("svg",{width:"14",height:"14",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:"M10 17l5-5-5-5M15 12H3M15 3h4a2 2 0 0 1 2 2v14a2 2 0 0 1-2 2h-4"})}),O?d("auth.loggingOut"):d("auth.logOut")]}),D&&(0,r.jsx)("p",{role:"alert",className:"settings-general-error",children:D})]})]})}function mX(e){let{embedded:t=!1,cwd:n,sessionId:s,initialSection:o,onClose:a,onSessionReloaded:l,quoteSelectionEnabled:c,onQuoteSelectionChange:d,projectTrust:u,onOpenTrustDialog:p,onProjectTrustChanged:h}=e,{t:f}=(0,eG.s)(),[m,g]=(0,i.useState)(o),[x,v]=(0,i.useState)(()=>new Set([m])),b=[{id:"general",label:f("settings.general")},{id:"models",label:f("common.models")},{id:"skills",label:f("common.skills")},{id:"agents",label:f("common.agents")},{id:"plugins",label:f("common.plugins")},{id:"mcp",label:f("settings.mcp")}].map(e=>{var t;return{...e,requiresProject:(t=e.id,lU.has(t))}}),y=lU.has(m);(0,i.useEffect)(()=>lJ(o),[o]),(0,i.useEffect)(()=>eD(document,a),[a]);let j=(0,i.useRef)(null);(0,i.useLayoutEffect)(()=>eB(document,j.current,{restoreTextEntry:!window.matchMedia?.("(pointer: coarse)").matches}),[]),(0,i.useEffect)(()=>{!n&&y&&(g("general"),v(e=>new Set(e).add("general")),lJ("general"))},[n,y]);let k=e=>{v(t=>new Set(t).add(e)),g(e),lJ(e)},w=(e,t)=>x.has(e)?(0,r.jsx)("div",{hidden:m!==e,className:"settings-section-host",children:t},e):null;return(0,r.jsx)("div",{ref:j,role:t?"region":"dialog","aria-modal":!t||void 0,"aria-label":f("settings.title"),tabIndex:-1,onClick:e=>{t||e.target!==e.currentTarget||a()},className:`settings-dialog-backdrop${t?" is-embedded":""}`,children:(0,r.jsxs)("div",{className:"settings-dialog-surface",children:[(0,r.jsxs)("div",{className:"settings-dialog-header",children:[!t&&(0,r.jsx)("strong",{className:"settings-dialog-title",children:f("settings.title")}),(0,r.jsx)("select",{"aria-label":f("settings.title"),value:m,onChange:e=>k(e.target.value),className:"settings-mobile-section-picker",children:b.map(e=>(0,r.jsx)("option",{value:e.id,disabled:e.requiresProject&&!n,children:e.label},e.id))}),(0,r.jsx)("nav",{"aria-label":f("settings.title"),className:"settings-section-tabs",children:b.map(e=>{let t=m===e.id,i=e.requiresProject&&!n;return(0,r.jsxs)("button",{type:"button",className:"settings-section-tab",disabled:i,title:i?f("settings.projectRequired"):e.label,"aria-current":t?"page":void 0,onClick:()=>k(e.id),children:[(0,r.jsx)(mY,{section:e.id}),(0,r.jsx)("span",{children:e.label})]},e.id)})}),(0,r.jsx)("button",{type:"button",onClick:a,title:f("i18n.close"),"aria-label":f("i18n.close"),className:"config-close-button settings-dialog-close",children:"\xd7"})]}),(0,r.jsxs)("main",{className:"settings-dialog-main",children:[w("general",(0,r.jsx)(mG,{sessionId:s,onSessionReloaded:l,quoteSelectionEnabled:c,onQuoteSelectionChange:d})),w("models",(0,r.jsx)(da,{embedded:!0,cwd:n,onClose:a})),n&&w("skills",(0,r.jsx)(dS,{embedded:!0,cwd:n,trust:u,onClose:a},n)),n&&w("agents",(0,r.jsx)(dW,{embedded:!0,cwd:n,sessionId:s,trust:u,onClose:a,onReloaded:l},n)),n&&w("plugins",(0,r.jsx)(dY,{embedded:!0,cwd:n,sessionId:s,trust:u,onClose:a,onReloaded:l},n)),w("mcp",(0,r.jsx)(m$,{embedded:!0,cwd:n,trust:u,onTrustProject:p,onProjectTrustChanged:h,onClose:a},n??""))]})]})})}var mQ=n(60680),m0=n.n(mQ);function m1(e){let{pose:t,dragging:s,hop:o}=e,a=(0,i.useRef)(null),l=(0,i.useRef)(null),c=(0,i.useRef)(null),d=(0,i.useRef)(null),u=(0,i.useRef)(t),p=(0,i.useRef)(s),[h,f]=(0,i.useState)(!1);return(0,i.useEffect)(()=>{let e=!1;n.e(5455).then(n.bind(n,75455)).then(t=>{let{mountPortraitMotion:n}=t;!e&&a.current&&(d.current=n(a.current,()=>{e||f(!0)},()=>{e||f(!1)}),d.current.setPose(u.current))}).catch(()=>{});let t=e=>{if("touch"===e.pointerType||e.buttons||p.current)return;let t=a.current?.getBoundingClientRect();t&&d.current?.setLook((e.clientX-t.left-t.width/2)/320)},r=()=>d.current?.setLook(0);return window.addEventListener("pointermove",t,{passive:!0}),window.addEventListener("blur",r),document.addEventListener("pointerleave",r),()=>{e=!0,d.current?.dispose(),d.current=null,window.removeEventListener("pointermove",t),window.removeEventListener("blur",r),document.removeEventListener("pointerleave",r)}},[]),(0,i.useEffect)(()=>{u.current=t,d.current?.setPose(t)},[t]),(0,i.useEffect)(()=>{if(!o||window.matchMedia("(prefers-reduced-motion: reduce)").matches)return;let e="happy"===u.current?5:12;return c.current?.cancel(),c.current=l.current?.animate([{transform:"translateY(0)",offset:0,easing:"ease-in"},{transform:"translateY(1.5px)",offset:.16,easing:"cubic-bezier(0.2, 0.7, 0.3, 1)"},{transform:`translateY(-${e}px)`,offset:.43,easing:"cubic-bezier(0.55, 0, 0.85, 0.4)"},{transform:"translateY(1px)",offset:.72,easing:"ease-out"},{transform:"translateY(-1px)",offset:.86,easing:"ease-in-out"},{transform:"translateY(0)",offset:1}],{duration:"happy"===u.current?680:820})??null,()=>{c.current?.cancel()}},[o]),(0,i.useEffect)(()=>{p.current=s,s&&c.current?.cancel()},[s]),(0,i.useEffect)(()=>{let e=window.matchMedia("(prefers-reduced-motion: reduce)"),t=()=>{e.matches&&c.current?.cancel()};return e.addEventListener("change",t),()=>e.removeEventListener("change",t)},[]),(0,r.jsxs)("span",{ref:l,className:m0().portrait,"data-dragging":s,"data-living":h,children:[(0,r.jsx)("img",{src:`/pets/lin-yue/${t}.webp`,alt:"",width:"280",height:"536",draggable:!1}),(0,r.jsx)("canvas",{ref:a,"aria-hidden":"true"})]})}let m2=Object.fromEntries(["welcome","helloReply","cheerReply","sleepReply","wakeReply","greetRun","received","replying","working","attention","backToYou","greetDone","stopped","failed"].map(e=>[`pet.${e}`,[`pet.${e}`,`pet.${e}2`,`pet.${e}3`]]));m2["pet.patReply1"]=["pet.patReply1","pet.patReply2","pet.patReply3","pet.patReply4"];let m4="pi-yun-pet-visible",m8="pi-yun-pet-pos",m3="pi-yun-pet-small";function m6(e){let{name:t}=e,n={paw:(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)("ellipse",{cx:"8.5",cy:"5.5",rx:"1.8",ry:"2.5",transform:"rotate(-15 8.5 5.5)"}),(0,r.jsx)("ellipse",{cx:"15.5",cy:"5.5",rx:"1.8",ry:"2.5",transform:"rotate(15 15.5 5.5)"}),(0,r.jsx)("ellipse",{cx:"4.5",cy:"10",rx:"1.6",ry:"2.2",transform:"rotate(-30 4.5 10)"}),(0,r.jsx)("ellipse",{cx:"19.5",cy:"10",rx:"1.6",ry:"2.2",transform:"rotate(30 19.5 10)"}),(0,r.jsx)("path",{d:"M12 11c-2 0-2.8 2.1-4.7 3.7C4.7 17 6 20.6 9 19.5a8.4 8.4 0 0 1 6 0c3 1.1 4.3-2.5 1.7-4.8C14.8 13.1 14 11 12 11Z"})]}),wave:(0,r.jsx)("path",{d:"m8 12-2-5a1.5 1.5 0 0 1 3-1l2 5-1-7a1.5 1.5 0 0 1 3 0l1 7 1-5a1.5 1.5 0 0 1 3 .5L17 14l2-2c2-2 4 0 2 2l-4 6c-4 4-9 1-11-2l-3-5c-1-2 1-3 2-2l3 3M3 3 1 1m19 3 2-2"}),heart:(0,r.jsx)("path",{d:"M20.8 4.6a5.5 5.5 0 0 0-7.8 0l-1 1-1-1a5.5 5.5 0 0 0-7.8 7.8L12 21l8.8-8.6a5.5 5.5 0 0 0 0-7.8Z"}),cheer:(0,r.jsx)("path",{d:"m12 3 2.8 5.7 6.2.9-4.5 4.4 1.1 6.2-5.6-3-5.6 3 1.1-6.2L3 9.6l6.2-.9Z"}),moon:(0,r.jsx)("path",{d:"M20.9 13A9 9 0 0 1 11 3.1 9 9 0 1 0 20.9 13Z"}),size:(0,r.jsx)("path",{d:"M9 3H3v6m12 12h6v-6M3 3l6 6m12 12-6-6"}),close:(0,r.jsx)("path",{d:"m6 6 12 12M6 18 18 6"}),more:(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)("circle",{cx:"5",cy:"12",r:"1"}),(0,r.jsx)("circle",{cx:"12",cy:"12",r:"1"}),(0,r.jsx)("circle",{cx:"19",cy:"12",r:"1"})]})},i="paw"===t?20:17;return(0,r.jsx)("svg",{width:i,height:i,viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"paw"===t?1.7:1.6,strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":"true",children:n[t]})}function m5(e,t){try{window.localStorage.setItem(e,t)}catch{}}function m9(){let{t:e}=(0,eG.s)(),[t,n]=(0,i.useState)(!1),[s,o]=(0,i.useState)(null),[l,c]=(0,i.useState)(!1),[d,u]=(0,i.useState)({running:[],waiting:[]}),p=(0,i.useSyncExternalStore)(aq.subscribe,aq.getSnapshot,aq.getServerSnapshot),h=d.waiting.some(e=>e!==p.sessionId)?"waiting":d.running.some(e=>e!==p.sessionId)?"busy":"idle",f="waiting"===p.phase?"waiting":"idle"!==p.phase?"busy":h,[m,g]=(0,i.useState)(!1),[x,v]=(0,i.useState)(null),[b,y]=(0,i.useState)(""),[j,k]=(0,i.useState)(!1),[w,S]=(0,i.useState)(!1),[C,N]=(0,i.useState)(0),[E,$]=(0,i.useState)(0),[M,I]=(0,i.useState)("inside"),T=(0,i.useRef)(null),R=(0,i.useRef)(null),L=(0,i.useRef)(null),A=(0,i.useRef)(null),P=(0,i.useRef)(!1),z=(0,i.useRef)("idle"),W=(0,i.useRef)(p.phase),O=(0,i.useRef)(void 0),F=(0,i.useRef)(void 0),D=(0,i.useRef)(void 0),B=(0,i.useRef)(null),_=(0,i.useCallback)((t,n)=>{let r,i;clearTimeout(F.current),B.current??=(r=new Map,i=new Map,e=>{let t=m2[e];if(!t)return e;let n=r.get(e);if(!n?.length){n=[...t];for(let e=n.length-1;e>0;e--){let t=Math.floor(Math.random()*(e+1));[n[e],n[t]]=[n[t],n[e]]}n[n.length-1]===i.get(e)&&([n[0],n[n.length-1]]=[n[n.length-1],n[0]]),r.set(e,n)}let s=n.pop();return i.set(e,s),s});let s=e(B.current(t));y(s),F.current=setTimeout(()=>y(""),Math.min(8e3,Math.max(4500,130*Array.from(s).length))),n&&(clearTimeout(D.current),v(n),D.current=setTimeout(()=>v(null),2800))},[e]);(0,i.useEffect)(()=>{try{n("1"===localStorage.getItem(m4)),c("1"===localStorage.getItem(m3));let e=JSON.parse(localStorage.getItem(m8)||"null");e&&Number.isFinite(e.x)&&Number.isFinite(e.y)&&o(e)}catch{}},[]),(0,i.useEffect)(()=>{if(!t||!T.current)return;let e=()=>{let e=T.current?.getBoundingClientRect();e&&o(t=>{let n=Math.max(8,Math.min(t?.x??e.left,window.innerWidth-e.width-8)),r=Math.max(8,Math.min(t?.y??e.top,window.innerHeight-e.height-8));return t?.x===n&&t?.y===r?t:(m5(m8,JSON.stringify({x:n,y:r})),{x:n,y:r})})};e(),window.addEventListener("resize",e);let n=new ResizeObserver(e);return n.observe(T.current),()=>{n.disconnect(),window.removeEventListener("resize",e)}},[t,l]),(0,i.useEffect)(()=>{let e;if(!t)return;let n=!1,r=new AbortController,i=async()=>{if(!document.hidden)try{let e=await fetch("/api/agent/running",{cache:"no-store",signal:r.signal});if(e.ok){let t=await e.json();if(n)return;u({running:Array.isArray(t.runningSessionIds)?t.runningSessionIds.filter(e=>"string"==typeof e):[],waiting:Array.isArray(t.awaitingInputSessionIds)?t.awaitingInputSessionIds.filter(e=>"string"==typeof e):[]})}}catch{}n||(e=setTimeout(i,2500))};return i(),()=>{n=!0,r.abort(),clearTimeout(e)}},[t]),(0,i.useEffect)(()=>{if(!t){O.current=p.result?.sequence;return}if((f!==z.current||p.phase!==W.current)&&("idle"!==f?(g(!1),clearTimeout(D.current),v(null),_("waiting"===f?"pet.attention":"replying"===p.phase?"pet.replying":"working"===p.phase?"pet.working":"sending"===p.phase?"pet.received":"pet.greetRun","waiting"===f?"wave":"thinking")):p.result||(clearTimeout(D.current),v(null),_("pet.backToYou"))),z.current=f,W.current=p.phase,"idle"===p.phase&&p.result&&p.result.sequence!==O.current){O.current=p.result.sequence,g(!1);let e=p.result.kind;_("complete"===e?"pet.greetDone":"stopped"===e?"pet.stopped":"pet.failed","complete"===e?"cheer":"wave"),"complete"===e&&$(e=>e+1)}},[t,f,p.phase,p.result,_]),(0,i.useEffect)(()=>{if(!t){clearTimeout(F.current),clearTimeout(D.current),y(""),v(null),k(!1),S(!1),A.current=null;return}return()=>{clearTimeout(F.current),clearTimeout(D.current)}},[t]),(0,i.useEffect)(()=>{if(!t||!j)return;let e=e=>{T.current?.contains(e.target)||k(!1)},n=e=>{"Escape"===e.key&&(e.preventDefault(),e.stopPropagation(),k(!1),R.current?.focus())};return document.addEventListener("pointerdown",e),document.addEventListener("keydown",n,!0),()=>{document.removeEventListener("pointerdown",e),document.removeEventListener("keydown",n,!0)}},[t,j]),(0,i.useEffect)(()=>{if(!t||!j)return;let e=()=>{let e=T.current?.getBoundingClientRect();I(e&&e.left>=240?"left":e&&window.innerWidth-e.right>=240?"right":"inside")};return e(),window.addEventListener("resize",e),()=>window.removeEventListener("resize",e)},[t,j,s,l]);let H=()=>{g(!1)},U=()=>{n(!1),m5(m4,"0"),L.current?.focus()},K=e=>{H(),k(!1),("cheer"===e||"happy"===e)&&$(e=>e+1),j&&R.current?.focus(),"happy"===e?(N(e=>e+1),_("pet.patReply1","happy")):_("wave"===e?"pet.helloReply":"pet.cheerReply",e)},q=function(e){let t=arguments.length>1&&void 0!==arguments[1]&&arguments[1],n=A.current;n&&n.pointerId===e.pointerId&&(P.current=t||n.moved,A.current=null,S(!1),e.currentTarget.hasPointerCapture(e.pointerId)&&e.currentTarget.releasePointerCapture(e.pointerId),n.moved&&s&&m5(m8,JSON.stringify(s)))},Z="idle"===f&&m,V=Z?"sleep":x??("busy"===f?"thinking":"waiting"===f?"wave":"idle"),J=Z?"sleeping":f;return(0,r.jsxs)(r.Fragment,{children:[(0,r.jsxs)("button",{ref:L,type:"button",className:"workbench-view-button","data-workspace-action":"pet",onClick:()=>{t?U():(H(),n(!0),m5(m4,"1"),_("pet.welcome","wave"))},title:e("pet.title"),"aria-label":e("pet.title"),"aria-pressed":t,children:[(0,r.jsx)(m6,{name:"paw"}),(0,r.jsx)("span",{className:"workbench-settings-label",children:e("pet.title")})]}),t&&(0,a.createPortal)((0,r.jsxs)("div",{ref:T,className:`${m0().pet} ${l?m0().small:""}`,"data-pet-companion":"","data-pose":V,"data-status":J,"data-chat-phase":p.phase,"data-menu-side":M,style:s?{left:s.x,top:s.y,right:"auto",bottom:"auto"}:void 0,children:[(0,r.jsx)("div",{className:m0().speech,role:"status","aria-live":"polite","aria-atomic":"true",children:b&&(0,r.jsx)("div",{className:m0().bubble,children:b},b)}),(0,r.jsxs)("button",{type:"button",className:m0().character,"aria-label":e("pet.interact"),title:e("pet.hint"),onPointerDown:e=>{if(!e.isPrimary||0!==e.button||!T.current)return;H();let t=T.current.getBoundingClientRect();A.current={pointerId:e.pointerId,x:e.clientX,y:e.clientY,origin:{x:t.left,y:t.top},moved:!1},P.current=!1,e.currentTarget.setPointerCapture(e.pointerId)},onPointerMove:e=>{let t=A.current;if(!t||t.pointerId!==e.pointerId||!T.current)return;let n=e.clientX-t.x,r=e.clientY-t.y;if(!t.moved&&6>Math.hypot(n,r))return;t.moved=!0,S(!0),k(!1);let i=T.current.getBoundingClientRect();o({x:Math.max(8,Math.min(t.origin.x+n,window.innerWidth-i.width-8)),y:Math.max(8,Math.min(t.origin.y+r,window.innerHeight-i.height-8))})},onPointerUp:e=>q(e),onPointerCancel:e=>q(e,!0),onLostPointerCapture:()=>{A.current=null,S(!1)},onClick:e=>{if(P.current&&0!==e.detail){P.current=!1;return}K("happy")},onDoubleClick:()=>K("wave"),onKeyDown:e=>{let t={ArrowLeft:[-16,0],ArrowRight:[16,0],ArrowUp:[0,-16],ArrowDown:[0,16]};if(!t[e.key]||!T.current)return;e.preventDefault();let n=T.current.getBoundingClientRect(),[r,i]=t[e.key],s={x:Math.max(8,Math.min(n.left+r,window.innerWidth-n.width-8)),y:Math.max(8,Math.min(n.top+i,window.innerHeight-n.height-8))};o(s),m5(m8,JSON.stringify(s))},children:[(0,r.jsx)("span",{className:m0().ground,"aria-hidden":"true"}),(0,r.jsx)(m1,{pose:V,dragging:w,hop:E}),Z&&(0,r.jsxs)("span",{className:m0().zzz,"aria-hidden":"true",children:["z ",(0,r.jsx)("span",{children:"z"})," Z"]}),C>0&&(0,r.jsx)("span",{className:m0().hearts,"aria-hidden":"true",children:[0,1,2].map(e=>(0,r.jsx)("span",{style:{"--i":e},children:(0,r.jsx)("svg",{viewBox:"0 0 24 24",fill:"currentColor",children:(0,r.jsx)("path",{d:"M12 21 3.5 12.7C-2 7.3 5.8-.5 11.2 4.9l.8.8.8-.8C18.2-.5 26 7.3 20.5 12.7Z"})})},e))},C)]}),(0,r.jsx)("button",{ref:R,type:"button",className:m0().more,"aria-label":e("pet.actions"),title:e("pet.actions"),"aria-expanded":j,"aria-controls":"pet-actions",onClick:()=>{let e=T.current?.getBoundingClientRect();I(e&&e.left>=240?"left":e&&window.innerWidth-e.right>=240?"right":"inside"),k(e=>!e)},children:(0,r.jsx)(m6,{name:"more"})}),j&&(0,r.jsxs)("div",{id:"pet-actions",className:m0().actions,role:"group","aria-label":e("pet.actions"),children:[(0,r.jsxs)("div",{className:m0().actionHeading,children:[(0,r.jsxs)("div",{children:[e("pet.menuTitle"),(0,r.jsx)("span",{children:e("pet.menuHint")})]}),(0,r.jsx)("button",{type:"button","aria-label":e("pet.closeActions"),onClick:()=>{k(!1),R.current?.focus()},children:(0,r.jsx)(m6,{name:"close"})})]}),(0,r.jsxs)("div",{className:m0().actionGrid,children:[(0,r.jsxs)("button",{type:"button",onClick:()=>K("wave"),children:[(0,r.jsx)(m6,{name:"wave"}),e("pet.hello")]}),(0,r.jsxs)("button",{type:"button",onClick:()=>K("happy"),children:[(0,r.jsx)("span",{className:m0().patIcon,children:(0,r.jsx)(m6,{name:"heart"})}),e("pet.pat")]}),(0,r.jsxs)("button",{type:"button",onClick:()=>K("cheer"),children:[(0,r.jsx)(m6,{name:"cheer"}),e("pet.encourage")]}),(0,r.jsxs)("button",{type:"button",onClick:()=>{g(!Z),k(!1),R.current?.focus(),_(Z?"pet.wakeReply":"pet.sleepReply",Z?"wave":"sleep")},children:[(0,r.jsx)(m6,{name:"moon"}),e(Z?"pet.wake":"pet.rest")]})]}),(0,r.jsxs)("div",{className:m0().actionFooter,children:[(0,r.jsxs)("button",{type:"button",onClick:()=>{c(!l),m5(m3,l?"0":"1")},children:[(0,r.jsx)(m6,{name:"size"}),e(l?"pet.enlarge":"pet.shrink")]}),(0,r.jsxs)("button",{type:"button",onClick:U,children:[(0,r.jsx)(m6,{name:"close"}),e("pet.hide")]})]})]})]}),document.body)]})}let m7=/^(\d+)\.(\d+)\.(\d+)$/;function ge(e){let t=m7.exec(e);if(!t)return null;let n=t.slice(1).map(Number);return n.some(e=>!Number.isSafeInteger(e))?null:n}function gt(e){return ge(e)?`https://github.com/Jason-24/pi-web-yun/releases/tag/v${e}`:null}var gn=n(84123),gr=n.n(gn);let gi="0.2.3",gs="1.4.0",go="pi-yun";function ga(e){let{mobile:t}=e,{t:n}=(0,eG.s)(),s=(0,i.useRef)(null),o=(0,i.useRef)(null),a=(0,i.useRef)(0),[l,c]=(0,i.useState)(null),[d,u]=(0,i.useState)(null),[p,h]=(0,i.useState)(!0),[f,m]=(0,i.useState)(!1),g=(0,i.useCallback)(async()=>{if(o.current)return;let e=new AbortController;o.current=e,h(!0),m(!1);try{let t=await fetch("/api/app-update",{cache:"no-store",signal:e.signal});if(!t.ok)throw Error("Update check failed");let n=await t.json();if("string"!=typeof n.latestVersion||!gt(n.latestVersion))throw Error("Invalid version");e.signal.aborted||(u(n.latestVersion),a.current=Date.now())}catch{e.signal.aborted||m(!0)}finally{e.signal.aborted||h(!1),o.current===e&&(o.current=null)}},[]);(0,i.useEffect)(()=>{g();let e=()=>{!document.hidden&&Date.now()-a.current>=432e5&&g()};window.addEventListener("focus",e),document.addEventListener("visibilitychange",e);let t=setInterval(e,432e5);return()=>{o.current?.abort(),o.current=null,clearInterval(t),window.removeEventListener("focus",e),document.removeEventListener("visibilitychange",e)}},[g]);let x=null!==d&&function(e,t){let n=ge(e),r=ge(t);if(!n||!r)return!1;for(let e=0;e<n.length;e+=1)if(n[e]!==r[e])return n[e]>r[e];return!1}(d,gi),v=x?gt(d):null,b=p?n("appUpdate.checking"):f?n("appUpdate.failed"):x?n("appUpdate.available",{version:d}):n("appUpdate.current"),y=n("appUpdate.title");return(0,r.jsxs)(r.Fragment,{children:[(0,r.jsxs)("button",{ref:s,type:"button",className:`workbench-view-button workbench-utility-start ${gr().trigger}${x?` ${gr().available}`:""}`,"data-workspace-action":"update","data-update-available":x,"aria-label":x?`${y} \xb7 ${n("appUpdate.available",{version:d})}`:y,title:`${go} v${gi} \xb7 pi v${gs}
12
- ${b}`,"aria-haspopup":"dialog","aria-expanded":!!l,onClick:()=>{if(l)return void c(null);let e=s.current?.getBoundingClientRect();e&&c({kind:"rect",rect:e,align:"start"}),(f||Date.now()-a.current>=432e5)&&g()},children:[(0,r.jsx)("svg",{width:"19",height:"19",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"1.7",strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":"true",children:(0,r.jsx)("path",{d:"M12 3v12m-4-4 4 4 4-4M5 16v4h14v-4"})}),(0,r.jsx)("span",{className:"workbench-settings-label",children:n("i18n.update")})]}),(0,r.jsx)(nT,{open:!!l,anchor:l,sheet:t,ariaLabel:y,title:y,width:300,cancelLabel:n("sidebar.cancel"),onClose:()=>c(null),returnFocusTo:s.current,children:(0,r.jsxs)("div",{className:gr().panel,children:[!t&&(0,r.jsx)("strong",{children:y}),(0,r.jsxs)("dl",{className:gr().versions,children:[(0,r.jsx)("dt",{children:go}),(0,r.jsxs)("dd",{children:["v",gi]}),(0,r.jsx)("dt",{children:"pi"}),(0,r.jsxs)("dd",{children:["v",gs]})]}),(0,r.jsx)("p",{role:"status",children:b}),v&&(0,r.jsx)("a",{href:v,target:"_blank",rel:"noopener noreferrer",children:n("appUpdate.releaseNotes")}),(0,r.jsx)("p",{children:n("appUpdate.installHint")}),(0,r.jsxs)("code",{className:gr().command,children:["npm install -g ",go,"@latest"]}),(0,r.jsx)("p",{children:n("appUpdate.restartHint")}),(0,r.jsx)("button",{type:"button",className:gr().check,disabled:p,onClick:()=>void g(),children:n("appUpdate.check")})]})})]})}let gl={home:"navigation.home",chat:"navigation.chat",settings:"common.settings",archive:"sidebar.archived",history:"history.full",system:"system.prompt",tools:"tools.title",agents:"agentSwitcher.title",branches:"i18n.branches",session:"session.title"};function gc(e){let{view:t}=e;return"home"===t?(0,r.jsx)(tk,{size:18}):"chat"===t?(0,r.jsx)(tV,{size:18}):"history"===t?(0,r.jsx)(tC,{size:18}):"branches"===t?(0,r.jsxs)("svg",{width:"19",height:"19",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"1.7",strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":"true",children:[(0,r.jsx)("path",{d:"M15 7V5a2 2 0 0 0-2-2H5a2 2 0 0 0-2 2v5a2 2 0 0 0 2 2v3l3-3"}),(0,r.jsx)("path",{d:"M11 9h8a2 2 0 0 1 2 2v5a2 2 0 0 1-2 2v3l-3-3h-5a2 2 0 0 1-2-2v-5a2 2 0 0 1 2-2Z"}),(0,r.jsx)("path",{d:"M12 13h6"})]}):"settings"===t||"agents"===t?(0,r.jsx)(mY,{section:"agents"===t?"agents":"general",size:19}):(0,r.jsx)("svg",{width:"19",height:"19",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"1.7",strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":"true",children:"system"===t?(0,r.jsxs)(r.Fragment,{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 2v6h6M8 13h8M8 17h5"})]}):"tools"===t?(0,r.jsx)("path",{d:"M14.7 6.3a5 5 0 0 0-6.1 6.1L3 18a2.1 2.1 0 0 0 3 3l5.6-5.6a5 5 0 0 0 6.1-6.1L14 13l-3-3Z"}):(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)("path",{d:"M4 10a8 8 0 0 1 16 0v3a8 8 0 0 1-16 0ZM4 10c4 0 6-2 8-4 2 2 4 4 8 4M9 16q3 2 6 0"}),(0,r.jsx)("path",{d:"M9 12h.01M15 12h.01"})]})})}function gd(e){let{activeView:t,conversationAvailable:n,inspectionAvailable:i,sessionAvailable:s,mobile:o,covered:a=!1,homeButtonRef:l,onHomeHover:c,onHomeLeave:d,onNavigate:u}=e,{t:p}=(0,eG.s)(),h=o?["home","chat","history","update","pet","settings"]:["home","chat","history","system","tools","agents","branches","update","pet","settings"];return(0,r.jsx)("nav",{className:`workbench-settings-navigation${o?" is-mobile":""}`,"aria-label":p("navigation.workspace"),inert:a,children:h.map(e=>{if("update"===e)return(0,r.jsx)(ga,{mobile:o},"update");if("pet"===e)return(0,r.jsx)(m9,{},"pet");let a="chat"===e?!n:"system"===e||"tools"===e?!i:("history"===e||"agents"===e||"branches"===e)&&!s,h=p(gl[e]);return(0,r.jsxs)("button",{type:"button",className:`workbench-view-button${"home"===e?" workbench-home-button":""}`,ref:"home"===e?l:void 0,onPointerEnter:"home"!==e||o?void 0:e=>{"mouse"===e.pointerType&&c?.()},onPointerLeave:"home"!==e||o?void 0:d,"data-workspace-view":e,"aria-label":h,title:a?`${h} \xb7 ${p("navigation.sessionRequired")}`:h,"aria-current":t===e?"page":void 0,disabled:a,onClick:()=>u(e),children:[(0,r.jsx)(gc,{view:e}),(0,r.jsx)("span",{className:"workbench-settings-label",children:h})]},e)})})}let gu=null,gp="";function gh(e){let{handleRef:t,context:n,mobile:s,initialFocus:o,onInitialFocusDone:a,onPick:l,onUseDefaultDirectory:c,onOpenFolder:d,onRefreshWorktrees:u,onCreateWorktree:p}=e,{t:h}=(0,eG.s)(),[f,m]=(0,i.useState)(()=>gp),g=(0,i.useRef)(null);(0,i.useImperativeHandle)(t,()=>({openProjectMenu:e=>g.current?.openMenu("project",e)}),[]);let x=(0,i.useRef)(o),v=(0,i.useRef)(a);return v.current=a,(0,i.useEffect)(()=>{if(gp)return;let e=!1;return(gu??=fetch("/api/home").then(e=>e.json()).then(e=>gp=e.home??"").catch(()=>(gu=null,""))).then(t=>{!e&&t&&m(t)}),()=>{e=!0}},[]),(0,i.useEffect)(()=>{let e=x.current;if(!e)return;x.current=null,v.current();let t=g.current;e_(document,("worktree"===e?t?.button("worktree"):null)??t?.button("project")??null)},[]),(0,r.jsx)("div",{className:"new-session-context",children:(0,r.jsx)(n0,{handleRef:g,layout:"inline",context:n,mobile:s,label:h("workspace.newSessionContext"),homeDir:f,newWorktreeTitle:h("sidebar.newWorktreeForSession"),onPick:l,onUseDefaultDirectory:c,onOpenFolder:d,onRefreshWorktrees:u,onCreateWorktree:p})})}var gf=n(50640);let gm={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"},gg={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"},gx={mp4:"video/mp4",m4v:"video/mp4",webm:"video/webm",mov:"video/quicktime",ogv:"video/ogg"};function gv(e){return(e.replace(/\\/g,"/").split("/").pop()??"").toLowerCase().split(".").pop()??""}let gb=[",",";"," ","|"];function gy(e){let t=/\.(csv|tsv)$/i.exec(e);return t?"tsv"===t[1].toLowerCase()?" ":",":null}function gj(e,t){let n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},r=n.complete??!0,i=n.maxRecords??1/0,s=[],o=[],a=e.length,l=t.charCodeAt(0),c=+(65279===e.charCodeAt(0)),d=1,u=[],p=1,h=()=>{(1!==u.length||""!==u[0])&&(s.push(u),o.push(p)),u=[]};for(;c<a&&s.length<i;){let t="",n=!1;if(34===e.charCodeAt(c)){n=!0;let r=c+=1;for(;c<a;){let i=e.indexOf('"',c);if(-1===i)break;if(34===e.charCodeAt(i+1)){t+=e.slice(r,i+1),r=c=i+2;continue}t+=e.slice(r,i),c=i+1,n=!1;break}n&&(t+=e.slice(r),c=a),d+=function(e){let t=0,n=e.indexOf("\n");for(;-1!==n;)t+=1,n=e.indexOf("\n",n+1);return t}(t)}let i=c;for(;i<a;){let t=e.charCodeAt(i);if(t===l||10===t)break;i+=1}let s=i<a?e.charCodeAt(i):-1,o=s!==l&&i>c&&13===e.charCodeAt(i-1)?i-1:i;t+=e.slice(c,o),u.push(t),c=i,s===l?(c+=1)===a&&(u.push(""),r&&h()):10===s?(c+=1,d+=1,h(),p=d):r&&h()}return{records:s,lines:o}}function gk(e){let t=e.indexOf("\n"),n=-1===t?e:e.slice(0,t),r=0;for(let e=0;e<n.length;e+=1){let t=n.charCodeAt(e);t>=56320&&t<=57343||(r+=t>=11904?2:1)}return r}let gw={display:"flex",height:26,boxSizing:"border-box",borderBottom:"1px solid var(--border)"},gS={position:"sticky",left:0,zIndex:1,boxSizing:"border-box",width:56,flexShrink:0,padding:"0 10px",display:"flex",alignItems:"center",justifyContent:"flex-end",color:"var(--text-dim)",background:"var(--bg-panel)",borderRight:"1px solid var(--border)",fontSize:11,fontVariantNumeric:"tabular-nums",userSelect:"none"},gC={boxSizing:"border-box",flexShrink:0,padding:"0 10px",lineHeight:"25px",whiteSpace:"nowrap",overflow:"hidden",textOverflow:"ellipsis",borderRight:"1px solid var(--border)"};function gN(e){let{content:t,filePath:n,complete:s,scrollRef:o}=e,a=(0,i.useMemo)(()=>(function(e,t){let n=!(arguments.length>2)||void 0===arguments[2]||arguments[2],r=gy(t)??",",i=","===r?function(e){let t=e.slice(0,65536),n=t.length===e.length,r=",",i=0;for(let e of gb){let{records:s}=gj(t,e,{complete:n,maxRecords:20}),o=s[0]?.length??0;if(o<2)continue;let a=1e3*s.filter(e=>e.length===o).length+Math.min(o,999);a>i&&(r=e,i=a)}return r}(e):r,{records:s,lines:o}=gj(e,i,{complete:n});if(0===s.length)return{columns:[],headerLine:0,rows:[],rowLines:[]};let a=0;for(let e of s)e.length>a&&(a=e.length);let l=s[0];return{columns:l.length===a?l:[...l,...Array.from({length:a-l.length},()=>"")],headerLine:o[0],rows:s.slice(1),rowLines:o.slice(1)}})(t,n,s),[s,t,n]),l=(0,i.useMemo)(()=>{var e,t;let n;return e=a.columns,n=Math.max(1,Math.ceil((t=a.rows).length/500)),e.map((e,r)=>{let i=gk(e);for(let e=0;e<t.length;e+=n){let n=t[e][r];if(n){let e=gk(n);e>i&&(i=e)}}return Math.min(Math.max(Math.ceil(7.4*i+22),64),420)})},[a]),c=(0,i.useMemo)(()=>l.reduce((e,t)=>e+t,56),[l]),[d,u]=(0,i.useState)(0),[p,h]=(0,i.useState)(0);if((0,i.useEffect)(()=>{let e=o.current;if(!e)return;let t=null,n=()=>{u(e.scrollTop),h(e.clientHeight)},r=()=>{null===t&&(t=requestAnimationFrame(()=>{t=null,n()}))};n(),e.addEventListener("scroll",r,{passive:!0});let i="u"<typeof ResizeObserver?null:new ResizeObserver(n);return i?.observe(e),()=>{e.removeEventListener("scroll",r),i?.disconnect(),null!==t&&cancelAnimationFrame(t)}},[o]),0===a.columns.length)return null;let{start:f,end:m}=function(e,t,n){if(e<=0)return{start:0,end:0};let r=Number.isFinite(t)?Math.max(0,t):0,i=Number.isFinite(n)&&n>0?n:800,s=Math.max(0,Math.floor(r/26)-20),o=Math.min(e,Math.ceil((r+i)/26)+20);return{start:Math.min(s,o),end:o}}(a.rows.length,d-26,p),g=[];for(let e=f;e<m;e+=1){let t=a.rows[e];g.push((0,r.jsxs)("div",{role:"row","aria-rowindex":e+2,style:{...gw,position:"absolute",top:26*e,left:0,width:c},children:[(0,r.jsx)("div",{role:"rowheader",style:gS,children:a.rowLines[e]}),l.map((e,n)=>{let i=t[n]??"";return(0,r.jsx)("div",{role:"cell",style:{...gC,width:e},title:i||void 0,children:i},n)})]},e))}return(0,r.jsxs)("div",{role:"table","aria-rowcount":a.rows.length+1,"aria-colcount":a.columns.length,style:{width:c,minWidth:"100%",fontFamily:"var(--font-mono)",fontWeight:"var(--font-mono-weight)",fontSize:12,color:"var(--text-muted)",background:"var(--bg)"},children:[(0,r.jsxs)("div",{role:"row","aria-rowindex":1,style:{...gw,position:"sticky",top:0,zIndex:2,width:c,background:"var(--bg-panel)",color:"var(--text)",fontWeight:600},children:[(0,r.jsx)("div",{role:"rowheader",style:gS,children:a.headerLine}),a.columns.map((e,t)=>(0,r.jsx)("div",{role:"columnheader",style:{...gC,width:l[t]},title:e||void 0,children:e},t))]}),(0,r.jsx)("div",{style:{position:"relative",height:26*a.rows.length},children:g})]})}let gE=["tags","categories","keywords","tag","category"];function g$(e){var t;let{data:n}=e;if(!n)return null;let i=Object.entries(n);if(0===i.length)return null;let s="string"==typeof(t=n.title)?t.trim()||null:"number"==typeof t||"boolean"==typeof t?String(t):null,o=gE.find(e=>Array.isArray(n[e])),a=o?n[o].map(dm).filter(Boolean):[],l=i.filter(e=>{let[t]=e;return t!==o&&("title"!==t||!s)});return(0,r.jsxs)("div",{className:"markdown-frontmatter",children:[s&&(0,r.jsx)("div",{className:"markdown-frontmatter-title",children:s}),a.length>0&&(0,r.jsx)("div",{className:"markdown-frontmatter-tags",children:a.map((e,t)=>(0,r.jsx)("span",{className:"markdown-frontmatter-tag",children:e},`${e}-${t}`))}),l.length>0&&(0,r.jsx)("dl",{className:"markdown-frontmatter-rows",children:l.map(e=>{let[t,n]=e;return(0,r.jsxs)("div",{className:"markdown-frontmatter-row",children:[(0,r.jsx)("dt",{children:t}),(0,r.jsx)("dd",{children:function(e){let t=dm(e);return t?"string"==typeof e&&/^(https?:\/\/|mailto:)/i.test(e)?(0,r.jsx)("a",{href:e,target:"_blank",rel:"noopener noreferrer",children:t}):t:null}(n)})]},t)})})]})}function gM(e){let{contentRef:t,enabled:n,partial:s,mode:o,prepareSearch:l}=e,{t:c}=(0,eG.s)(),[d,u]=(0,i.useState)(!1),[p,h]=(0,i.useState)(""),[f,m]=(0,i.useState)({ranges:[],limited:!1}),[g,x]=(0,i.useState)(0),[v,b]=(0,i.useState)([]),[y,j]=(0,i.useState)(0),k=(0,i.useRef)(null),w=t.current?.closest(".file-viewer-shell"),S=d&&n,C=(0,i.useCallback)(()=>{l(),u(!0),requestAnimationFrame(()=>{k.current?.focus(),k.current?.select()})},[l]),N=(0,i.useCallback)(()=>{u(!1),t.current?.focus({preventScroll:!0})},[t]);(0,i.useEffect)(()=>{"embedded"===o&&u(!1)},[o]),(0,i.useEffect)(()=>{if(!n)return;let e=e=>{let n=t.current?.closest(".file-viewer-shell");!n||n.closest('[inert], [aria-hidden="true"]')||!n.getClientRects().length||n.contains(e.target)&&((e.ctrlKey||e.metaKey)&&!e.altKey&&!e.shiftKey&&"f"===e.key.toLowerCase()?(e.preventDefault(),e.stopPropagation(),C()):d&&"Escape"===e.key&&(e.preventDefault(),e.stopPropagation(),N()))};return document.addEventListener("keydown",e,!0),()=>document.removeEventListener("keydown",e,!0)},[N,t,n,d,C]),(0,i.useEffect)(()=>{let e=t.current;if(!S||!e)return;let n=()=>{m(function(e,t){if(!t)return{ranges:[],limited:!1};let n=[],r="",i=null,s=document.createTreeWalker(e,NodeFilter.SHOW_TEXT);for(;s.nextNode();){let e=s.currentNode,t=e.parentElement;if(!t||t.closest('button, script, style, svg, [aria-hidden="true"], .react-syntax-highlighter-line-number')||t.closest(".file-source-view, .file-diff-view")&&!t.closest(".file-source-line-content, .file-diff-line-content"))continue;let o=t.closest(".file-source-line-content, .file-diff-line-content, p, li, h1, h2, h3, h4, h5, h6, pre, td, th");o!==i&&(r+="\n"),i=o;let a=r.length;r+=e.data,n.push({node:e,start:a,end:r.length})}let o=RegExp(t.replace(/[.*+?^${}()|[\]\\]/g,"\\$&"),"giu"),a=[],l=0;for(let e of r.matchAll(o)){if(5e3===a.length)return{ranges:a,limited:!0};let t=e.index,r=t+e[0].length;for(;l<n.length&&n[l].end<=t;)l++;let i=l;for(;i<n.length&&n[i].end<r;)i++;if(!n[l]||!n[i])continue;let s=document.createRange();s.setStart(n[l].node,t-n[l].start),s.setEnd(n[i].node,r-n[i].start),a.push(s)}return{ranges:a,limited:!1}}(e,p)),x(0)};n();let r=new MutationObserver(n);return r.observe(e,{childList:!0,subtree:!0,characterData:!0}),()=>r.disconnect()},[S,t,p,o]),(0,i.useEffect)(()=>{let e=t.current;if(!S||!e)return;let n=f.ranges[g];if(!n?.startContainer.isConnected)return;let r=n.getBoundingClientRect(),i=e.getBoundingClientRect();e.scrollBy({top:r.top<i.top+70||r.bottom>i.bottom?r.top-i.top-e.clientHeight/2:0,left:r.left<i.left+48||r.right>i.right?r.left-i.left-e.clientWidth/2:0,behavior:"instant"})},[S,t,g,f]),(0,i.useEffect)(()=>{let e=t.current;if(!S||!e)return;let n=CSS.highlights,r=window.Highlight,i=!!(n&&r);n&&r&&(n.set("file-find",new r(...f.ranges)),n.set("file-find-current",new r(...f.ranges.slice(g,g+1))));let s=0,o=()=>{cancelAnimationFrame(s),s=requestAnimationFrame(()=>{if(j(e.offsetTop),i)return void b([]);let t=e.getBoundingClientRect(),n=[];f.ranges.forEach((e,r)=>{if(!e.startContainer.isConnected)return;let i=e.getBoundingClientRect();if(!(i.bottom<t.top)&&!(i.top>t.bottom)&&!(i.right<t.left)&&!(i.left>t.right))for(let i of e.getClientRects())n.push({top:i.top-t.top,left:i.left-t.left,width:i.width,height:i.height,active:r===g})}),b(n)})};o(),e.addEventListener("scroll",o,{passive:!0});let a=new ResizeObserver(o);return a.observe(e),()=>{cancelAnimationFrame(s),a.disconnect(),e.removeEventListener("scroll",o),n?.delete("file-find"),n?.delete("file-find-current")}},[S,t,g,f]);let E=e=>x(t=>f.ranges.length?(t+e+f.ranges.length)%f.ranges.length:0);return(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)("button",{type:"button",className:"file-viewer-icon-button",onClick:C,title:`${c("files.find")} (Ctrl+F)`,"aria-label":c("files.find"),"aria-expanded":S,children:(0,r.jsxs)("svg",{width:"14",height:"14",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"1.8",strokeLinecap:"round","aria-hidden":"true",children:[(0,r.jsx)("circle",{cx:"10.5",cy:"10.5",r:"6.5"}),(0,r.jsx)("path",{d:"m16 16 4 4"})]})}),S&&w&&(0,a.createPortal)((0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)("style",{children:`::highlight(file-find) { background: color-mix(in srgb, var(--accent) 20%, var(--bg)); color: var(--text); }
13
- ::highlight(file-find-current) { background: var(--accent); color: var(--accent-contrast); }`}),(0,r.jsxs)("div",{className:"file-find-bar",role:"search","aria-label":c("files.find"),style:{top:y+8},children:[(0,r.jsxs)("div",{className:"file-find-row",children:[(0,r.jsx)("input",{ref:k,type:"search",value:p,placeholder:c("files.findPlaceholder"),"aria-label":c("files.findPlaceholder"),spellCheck:!1,onChange:e=>h(e.target.value),onKeyDown:e=>{"Enter"!==e.key||e.nativeEvent.isComposing||(e.preventDefault(),E(e.shiftKey?-1:1))}}),(0,r.jsx)("span",{className:"file-find-count",role:"status","aria-live":"polite",children:p?`${f.ranges.length?g+1:0} / ${f.ranges.length}${f.limited?"+":""}`:""}),(0,r.jsx)("button",{type:"button",disabled:!f.ranges.length,onClick:()=>E(-1),title:c("files.findPrevious"),"aria-label":c("files.findPrevious"),children:"↑"}),(0,r.jsx)("button",{type:"button",disabled:!f.ranges.length,onClick:()=>E(1),title:c("files.findNext"),"aria-label":c("files.findNext"),children:"↓"}),(0,r.jsx)("button",{type:"button",onClick:N,title:c("files.closeFind"),"aria-label":c("files.closeFind"),children:"\xd7"})]}),(s||"diff"===o)&&(0,r.jsx)("div",{className:"file-find-scope",children:c(s?"files.findLoadedOnly":"files.findDiffOnly")})]}),v.length>0&&(0,r.jsx)("div",{className:"file-find-highlights","aria-hidden":"true",style:{top:y},children:v.map((e,t)=>(0,r.jsx)("span",{className:e.active?"is-current":"",style:{top:e.top,left:e.left,width:e.width,height:e.height}},t))})]}),w)]})}function gI(e){let{filePath:t,cwd:n}=e,i=el(t),s=ep(i,n),o=s.split("/").filter(Boolean);n&&s!==i?o.unshift(ed(n)):i.startsWith("/")&&o.unshift(i.startsWith("//")?"//":"/");let a=o.pop()??ed(t);return(0,r.jsx)("div",{className:"file-viewer-path",title:t,children:(0,r.jsxs)("div",{className:"file-breadcrumb",role:"group","aria-label":t,children:[o.length>0&&(0,r.jsx)("span",{className:"file-breadcrumb-parents","aria-hidden":"true",children:o.map((e,t)=>(0,r.jsxs)("span",{className:"file-breadcrumb-segment",children:[(0,r.jsx)("span",{children:e}),(0,r.jsx)("svg",{width:"12",height:"12",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round",children:(0,r.jsx)("path",{d:"m9 5 7 7-7 7"})})]},t))}),(0,r.jsx)("strong",{className:"file-breadcrumb-current","aria-current":"location",children:a})]})})}let gT={source:"Source",preview:"Preview",diff:"Diff"},gR={fontFamily:"var(--font-mono)",fontWeight:"var(--font-mono-weight)",fontSize:13,lineHeight:1.6},gL={...iC.xJ,'pre[class*="language-"]':{...iC.xJ['pre[class*="language-"]']}};delete gL['pre[class*="language-"]'].background;let gA={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)",fontWeight:"var(--font-mono-weight)",fontSize:11,fontStyle:"normal",fontVariantNumeric:"tabular-nums",lineHeight:"20.8px",userSelect:"none",flexShrink:0,verticalAlign:"top"},gP={...gA,position:"sticky",left:0,zIndex:1};function gz(){return(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)("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 gW(e){let t=e.nodeType===Node.ELEMENT_NODE?e:e.parentElement;return t?.closest(".file-source-line[data-line-number]")??null}function gO(e,t){if(!t||t.isCollapsed||0===t.rangeCount)return null;let n=t.getRangeAt(0);if(!e.contains(n.startContainer)||!e.contains(n.endContainer))return null;let r=gW(n.startContainer),i=gW(n.endContainer);if(!r||!i||!e.contains(r)||!e.contains(i))return null;let s=Number(r.dataset.lineNumber),o=Number(i.dataset.lineNumber);if(!Number.isInteger(s)||!Number.isInteger(o))return null;if(s<o){let e=r.querySelector(".file-source-line-content");if(e?.contains(n.startContainer)){let t=document.createRange();if(t.selectNodeContents(e),t.setStart(n.startContainer,n.startOffset),0===t.toString().length){let e=r.nextElementSibling;e instanceof HTMLElement&&e.matches(".file-source-line[data-line-number]")&&(s=Number((r=e).dataset.lineNumber))}}let t=i.querySelector(".file-source-line-content");if(t?.contains(n.endContainer)){let e=document.createRange();if(e.selectNodeContents(t),e.setEnd(n.endContainer,n.endOffset),0===e.toString().length){let e=i.previousElementSibling;e instanceof HTMLElement&&e.matches(".file-source-line[data-line-number]")&&(o=Number((i=e).dataset.lineNumber))}}}return s>o?null:{startLine:s,endLine:o}}function gF(e){let{rows:t,stylesheet:n,useInlineStyles:i,wrapLines:s}=e;return t.map((e,t)=>{let o=e.children??[],a=o[0]?.properties?.className,l=Array.isArray(a)&&a.includes("react-syntax-highlighter-line-number"),c=l?o[0]:null,d=l?o.slice(1):o;return(0,r.jsxs)("span",{className:"file-source-line","data-line-number":t+1,style:{display:"flex",minWidth:"100%"},children:[c&&(0,gf.Ay)({node:c,stylesheet:n,useInlineStyles:i,key:`source-line-number-${t}`}),(0,r.jsx)("span",{className:"file-source-line-content",style:{flex:"1 1 auto",minWidth:0,overflowWrap:s?"anywhere":"normal",whiteSpace:s?"pre-wrap":"pre"},children:d.map((e,r)=>(0,gf.Ay)({node:e,stylesheet:n,useInlineStyles:i,key:`source-token-${t}-${r}`}))})]},`source-line-${t}`)})}function gD(e,t,n){let r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{},i=ec(e),s=new URLSearchParams({type:t});for(let[e,t]of(n&&s.set("sessionId",n),Object.entries(r)))void 0!==t&&s.set(e,String(t));return`/api/files/${i}?${s.toString()}`}function gB(e){let{filePath:t,sourceSessionId:n}=e,{t:i}=(0,eG.s)();return(0,r.jsx)("a",{href:gD(t,"download",n),download:ed(t),title:i("i18n.downloadFile"),"aria-label":i("i18n.downloadFile"),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 g_(e){return e<1024?`${e} B`:e<1048576?`${(e/1024).toFixed(1)} KB`:`${(e/1048576).toFixed(1)} MB`}function gH(e){let t,{patch:n}=e,{t:i}=(0,eG.s)(),s=(t=sn(n))?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(!s.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:i("i18n.noChanges")});let o=new Set(s.flatMap((e,t)=>"unchanged"!==e.type?[t]:[])),a=new Set;for(let e of o)for(let t=Math.max(0,e-3);t<=Math.min(s.length-1,e+3);t++)a.add(t);let l=a.size<=1e3?gP:gA,c=[],d=0;for(;d<s.length;)if(a.has(d)){let e=[];for(;d<s.length&&a.has(d);)e.push(s[d]),d++;c.push({hidden:!1,lines:e})}else{let e=0;for(;d<s.length&&!a.has(d);)e++,d++;c.push({hidden:!0,count:e})}return(0,r.jsx)("div",{className:"file-diff-view",style:{width:"max-content",minWidth:"100%",...gR},children:c.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?"rgba(0,200,80,0.12)":"removed"===e.type?"rgba(240,60,60,0.14)":"transparent",i="added"===e.type?"+":"removed"===e.type?"-":" ",s="added"===e.type?"#4ade80":"removed"===e.type?"#f87171":"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 #4ade80":"removed"===e.type?"3px solid #f87171":"3px solid transparent"},children:[(0,r.jsx)("span",{style:l,children:"removed"===e.type?e.oldLineNo:e.newLineNo}),(0,r.jsx)("span",{style:{minWidth:16,padding:"0 6px",color:s,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 gU(e){let{filePath:t,cwd:n,sourceSessionId:s,watchEnabled:o=!0}=e,{t:a}=(0,eG.s)(),[l,c]=(0,i.useState)(!1),[d,u]=(0,i.useState)(0),[p,h]=(0,i.useState)(null),[f,m]=(0,i.useState)(null),[g,x]=(0,i.useState)(null),v=(0,i.useRef)(null),b=(0,i.useRef)(0),y=ed(t).toLowerCase().split(".").pop()??"";(0,i.useEffect)(()=>{u(0),h(null),m(null),x(null),c(!1)},[t,s]),(0,i.useEffect)(()=>{if(c(!1),v.current&&(v.current.close(),v.current=null),!o)return;let e=!0,n=new EventSource(gD(t,"watch",s));v.current=n,n.addEventListener("connected",()=>{let n;c(!0),n=++b.current,fetch(gD(t,"meta",s)).then(e=>e.json()).then(t=>{if(e&&n===b.current){if(t.error)return void x(t.error);"number"==typeof t.size&&h(t.size),m(null),x(null),u(e=>e+1)}}).catch(t=>{e&&n===b.current&&x(String(t))})}),n.addEventListener("change",e=>{b.current+=1;try{let t=JSON.parse(e.data);"number"==typeof t.size&&h(t.size)}catch{}m(null),x(null),u(e=>e+1)});let r=()=>{c(!1)};return n.addEventListener("error",r),n.onerror=r,()=>{e=!1,n.close(),v.current===n&&(v.current=null)}},[t,s,o]);let j=gD(t,"read",s,d?{v:d}:void 0),k=null!=p?g_(p):null;return(0,r.jsxs)("div",{className:"file-viewer-shell file-media-viewer",style:{display:"flex",flexDirection:"column",height:"100%",overflow:"hidden"},children:[(0,r.jsxs)("div",{className:"file-viewer-toolbar file-media-toolbar",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)(gI,{filePath:t,cwd:n}),(0,r.jsx)("span",{style:{marginLeft:"auto"},children:y||"image"}),f&&(0,r.jsxs)("span",{children:[f.w," \xd7 ",f.h]}),k&&(0,r.jsx)("span",{children:k}),(0,r.jsxs)("span",{title:a(l?"i18n.liveSync":"i18n.notWatching"),style:{display:"flex",alignItems:"center",gap:4,color:l?"#4ade80":"var(--text-dim)"},children:[(0,r.jsx)("span",{style:{width:7,height:7,borderRadius:"50%",background:l?"#4ade80":"var(--border)",display:"inline-block",boxShadow:l?"0 0 4px #4ade80":"none"}}),l?"live":"static"]}),(0,r.jsx)(gB,{filePath:t,sourceSessionId:s})]}),(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:"#f87171",fontSize:13},children:g}):(0,r.jsx)("img",{src:j,alt:t,onLoad:e=>{let t=e.currentTarget;m({w:t.naturalWidth,h:t.naturalHeight})},onError:()=>x("Failed to load image"),style:{maxWidth:"100%",maxHeight:"100%",objectFit:"contain",boxShadow:"0 2px 8px rgba(0,0,0,0.15)"}})})]})}function gK(e){if(!Number.isFinite(e))return"";let t=Math.round(e),n=Math.floor(t/60);return`${n}:${String(t%60).padStart(2,"0")}`}function gq(e){let{filePath:t,cwd:n,sourceSessionId:s,watchEnabled:o=!0}=e,{t:a}=(0,eG.s)(),[l,c]=(0,i.useState)(!1),[d,u]=(0,i.useState)(0),[p,h]=(0,i.useState)(null),[f,m]=(0,i.useState)(null),[g,x]=(0,i.useState)(null),v=(0,i.useRef)(null),b=(0,i.useRef)(0),y=ed(t).toLowerCase().split(".").pop()??"";(0,i.useEffect)(()=>{u(0),h(null),m(null),x(null),c(!1)},[t,s]),(0,i.useEffect)(()=>{if(c(!1),v.current&&(v.current.close(),v.current=null),!o)return;let e=!0,n=new EventSource(gD(t,"watch",s));v.current=n,n.addEventListener("connected",()=>{let n;c(!0),n=++b.current,fetch(gD(t,"meta",s)).then(e=>e.json()).then(t=>{if(e&&n===b.current){if(t.error)return void x(t.error);"number"==typeof t.size&&h(t.size),m(null),x(null),u(e=>e+1)}}).catch(t=>{e&&n===b.current&&x(String(t))})}),n.addEventListener("change",e=>{b.current+=1;try{let t=JSON.parse(e.data);"number"==typeof t.size&&h(t.size)}catch{}m(null),x(null),u(e=>e+1)});let r=()=>{c(!1)};return n.addEventListener("error",r),n.onerror=r,()=>{e=!1,n.close(),v.current===n&&(v.current=null)}},[t,s,o]);let j=gD(t,"read",s,d?{v:d}:void 0);return(0,r.jsxs)("div",{className:"file-viewer-shell file-media-viewer",style:{display:"flex",flexDirection:"column",height:"100%",overflow:"hidden"},children:[(0,r.jsxs)("div",{className:"file-viewer-toolbar file-media-toolbar",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)(gI,{filePath:t,cwd:n}),(0,r.jsx)("span",{style:{marginLeft:"auto"},children:y||"audio"}),null!=f&&(0,r.jsx)("span",{children:gK(f)}),null!=p&&(0,r.jsx)("span",{children:g_(p)}),(0,r.jsxs)("span",{title:a(l?"i18n.liveSync":"i18n.notWatching"),style:{display:"flex",alignItems:"center",gap:4,color:l?"#4ade80":"var(--text-dim)"},children:[(0,r.jsx)("span",{style:{width:7,height:7,borderRadius:"50%",background:l?"#4ade80":"var(--border)",display:"inline-block",boxShadow:l?"0 0 4px #4ade80":"none"}}),l?"live":"static"]}),(0,r.jsx)(gB,{filePath:t,sourceSessionId:s})]}),(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:"#f87171",fontSize:13,marginBottom:12,textAlign:"center"},children:g}),(0,r.jsx)("audio",{controls:!0,preload:"metadata",src:j,onLoadedMetadata:e=>m(e.currentTarget.duration),onError:()=>x("Failed to load audio"),style:{width:"100%"}},j)]})})]})}function gZ(e){let{filePath:t,cwd:n,sourceSessionId:s,watchEnabled:o=!0}=e,{t:a}=(0,eG.s)(),[l,c]=(0,i.useState)(!1),[d,u]=(0,i.useState)(0),[p,h]=(0,i.useState)(null),[f,m]=(0,i.useState)(null),[g,x]=(0,i.useState)(null),v=(0,i.useRef)(null),b=(0,i.useRef)(0),y=ed(t).toLowerCase().split(".").pop()??"";(0,i.useEffect)(()=>{u(0),h(null),m(null),x(null),c(!1)},[t,s]),(0,i.useEffect)(()=>{if(c(!1),v.current&&(v.current.close(),v.current=null),!o)return;let e=!0,n=new EventSource(gD(t,"watch",s));v.current=n,n.addEventListener("connected",()=>{let n;c(!0),n=++b.current,fetch(gD(t,"meta",s)).then(e=>e.json()).then(t=>{if(e&&n===b.current){if(t.error)return void x(t.error);"number"==typeof t.size&&h(t.size),m(null),x(null),u(e=>e+1)}}).catch(t=>{e&&n===b.current&&x(String(t))})}),n.addEventListener("change",e=>{b.current+=1;try{let t=JSON.parse(e.data);"number"==typeof t.size&&h(t.size)}catch{}m(null),x(null),u(e=>e+1)});let r=()=>{c(!1)};return n.addEventListener("error",r),n.onerror=r,()=>{e=!1,n.close(),v.current===n&&(v.current=null)}},[t,s,o]);let j=gD(t,"read",s,d?{v:d}:void 0);return(0,r.jsxs)("div",{className:"file-viewer-shell file-media-viewer",style:{display:"flex",flexDirection:"column",height:"100%",overflow:"hidden"},children:[(0,r.jsxs)("div",{className:"file-viewer-toolbar file-media-toolbar",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)(gI,{filePath:t,cwd:n}),(0,r.jsx)("span",{style:{marginLeft:"auto"},children:y||"video"}),null!=f&&(0,r.jsx)("span",{children:gK(f)}),null!=p&&(0,r.jsx)("span",{children:g_(p)}),(0,r.jsxs)("span",{title:a(l?"i18n.liveSync":"i18n.notWatching"),style:{display:"flex",alignItems:"center",gap:4,color:l?"#4ade80":"var(--text-dim)"},children:[(0,r.jsx)("span",{style:{width:7,height:7,borderRadius:"50%",background:l?"#4ade80":"var(--border)",display:"inline-block",boxShadow:l?"0 0 4px #4ade80":"none"}}),l?"live":"static"]}),(0,r.jsx)(gB,{filePath:t,sourceSessionId:s})]}),(0,r.jsx)("div",{style:{flex:1,display:"flex",alignItems:"center",justifyContent:"center",padding:24,background:"var(--bg-panel)",minHeight:0},children:(0,r.jsxs)("div",{style:{width:"min(960px, 100%)",height:"100%",display:"flex",flexDirection:"column",alignItems:"center",justifyContent:"center",minHeight:0},children:[g&&(0,r.jsx)("div",{style:{color:"#f87171",fontSize:13,marginBottom:12,textAlign:"center"},children:g}),(0,r.jsx)("video",{controls:!0,playsInline:!0,preload:"metadata",src:j,onLoadedMetadata:e=>m(e.currentTarget.duration),onError:()=>x("Failed to load video"),style:{maxWidth:"100%",maxHeight:"100%"}},j)]})})]})}function gV(e){let{filePath:t,cwd:n,sourceSessionId:s,initialPage:o,watchEnabled:a=!0}=e,{t:l}=(0,eG.s)(),[c,d]=(0,i.useState)(!1),[u,p]=(0,i.useState)(0),[h,f]=(0,i.useState)(null),[m,g]=(0,i.useState)(null),x=(0,i.useRef)(null),v=(0,i.useRef)(0),b=gv(t),y="pdf"===b,j=y&&o&&o>0?`#page=${o}`:"",k=y?`${gD(t,"read",s,u?{v:u}:void 0)}${j}`:gD(t,"preview",s,u?{v:u}:void 0);return(0,i.useEffect)(()=>{p(0),f(null),g(null),d(!1);let e=!0,n=++v.current;return fetch(gD(t,"meta",s)).then(e=>e.json()).then(t=>{e&&n===v.current&&(t.error&&g(t.error),"number"==typeof t.size&&(f(t.size),!y&&t.size>0xa00000&&g("DOCX too large for preview (>10MB)")))}).catch(t=>{e&&n===v.current&&g(String(t))}),()=>{e=!1}},[t,y,s]),(0,i.useEffect)(()=>{if(d(!1),x.current&&(x.current.close(),x.current=null),!a)return;let e=!0,n=new EventSource(gD(t,"watch",s));x.current=n,n.addEventListener("connected",()=>{let n;d(!0),n=++v.current,fetch(gD(t,"meta",s)).then(e=>e.json()).then(t=>{if(e&&n===v.current){if(t.error)return void g(t.error);if("number"==typeof t.size&&(f(t.size),!y&&t.size>0xa00000))return void g("DOCX too large for preview (>10MB)");g(null),p(e=>e+1)}}).catch(t=>{e&&n===v.current&&g(String(t))})}),n.addEventListener("change",e=>{v.current+=1;try{let t=JSON.parse(e.data);if("number"==typeof t.size&&(f(t.size),!y&&t.size>0xa00000))return void g("DOCX too large for preview (>10MB)")}catch{}g(null),p(e=>e+1)});let r=()=>{d(!1)};return n.addEventListener("error",r),n.onerror=r,()=>{e=!1,n.close(),x.current===n&&(x.current=null)}},[t,y,s,a]),(0,r.jsxs)("div",{className:"file-viewer-shell file-media-viewer",style:{display:"flex",flexDirection:"column",height:"100%",overflow:"hidden"},children:[(0,r.jsxs)("div",{className:"file-viewer-toolbar file-media-toolbar",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)(gI,{filePath:t,cwd:n}),(0,r.jsx)("span",{style:{marginLeft:"auto"},children:"docx"===b?"docx preview":"pdf"}),null!=h&&(0,r.jsx)("span",{children:g_(h)}),(0,r.jsx)(gB,{filePath:t,sourceSessionId:s}),(0,r.jsxs)("span",{title:l(c?"i18n.liveSync":"i18n.notWatching"),style:{display:"flex",alignItems:"center",gap:4,color:c?"#4ade80":"var(--text-dim)",flexShrink:0},children:[(0,r.jsx)("span",{style:{width:7,height:7,borderRadius:"50%",background:c?"#4ade80":"var(--border)",display:"inline-block",boxShadow:c?"0 0 4px #4ade80":"none"}}),c?"live":"static"]})]}),(0,r.jsx)("div",{style:{flex:1,minHeight:0,background:"var(--bg-panel)"},children:m?(0,r.jsx)("div",{style:{height:"100%",display:"flex",alignItems:"center",justifyContent:"center",padding:24,color:"#f87171",fontSize:13,textAlign:"center"},children:m}):(0,r.jsx)("iframe",{src:k,sandbox:y?void 0:"allow-same-origin",title:l("i18n.previewFile",{file:ed(t)}),style:{width:"100%",height:"100%",border:"none",background:y?"var(--bg)":"#eef1f5"}},k)})]})}function gJ(e){let t,{filePath:n,cwd:i,sourceSessionId:s,onOpenFile:o,onMentionLines:a,onAtMention:l,gitRefreshKey:c,initialDisplayMode:d,initialState:u,initialPage:p,onStateChange:h,watchEnabled:f=!0}=e;return null!==(gm[gv(n)]??null)?(0,r.jsx)(gU,{filePath:n,cwd:i,sourceSessionId:s,watchEnabled:f}):null!==(gg[gv(n)]??null)?(0,r.jsx)(gq,{filePath:n,cwd:i,sourceSessionId:s,watchEnabled:f}):null!==(gx[gv(n)]??null)?(0,r.jsx)(gZ,{filePath:n,cwd:i,sourceSessionId:s,watchEnabled:f}):null!==("pdf"===(t=gv(n))||"docx"===t?t:null)?(0,r.jsx)(gV,{filePath:n,cwd:i,sourceSessionId:s,initialPage:p,watchEnabled:f}):(0,r.jsx)(gY,{filePath:n,cwd:i,sourceSessionId:s,onOpenFile:o,onMentionLines:a,onAtMention:l,gitRefreshKey:c,initialDisplayMode:d,initialState:u,onStateChange:h,watchEnabled:f})}function gY(e){let{filePath:t,cwd:n,sourceSessionId:s,onOpenFile:o,onMentionLines:a,onAtMention:l,gitRefreshKey:c,initialDisplayMode:d,initialState:u,onStateChange:p,watchEnabled:h=!0}=e,{isDark:f}=iH(),{t:m}=(0,eG.s)(),[g,x]=(0,i.useState)(null),[v,b]=(0,i.useState)(null),[y,j]=(0,i.useState)(!1),[k,w]=(0,i.useState)(!1),[S,C]=(0,i.useState)(!0),[N,E]=(0,i.useState)(!1),[$,M]=(0,i.useState)(null),I=u?.displayMode??d??"source",T=u?.wrapLines??!1,R=u?.scrollTop??0,L=u?.scrollLeft??0,[A,P]=(0,i.useState)(I),[z,W]=(0,i.useState)(T),[O,F]=(0,i.useState)(!1),D=(0,i.useRef)(null),B=(0,i.useRef)(0),_=(0,i.useRef)(0),H=(0,i.useRef)(null),U=(0,i.useRef)(!1),K=(0,i.useRef)(void 0===u&&void 0===d),q=(0,i.useRef)(!0),Z=(0,i.useRef)({displayMode:I,wrapLines:T,scrollTop:R,scrollLeft:L}),V=(0,i.useRef)(p),[J,Y]=(0,i.useState)(null),[G,X]=(0,i.useState)(null);V.current=p;let Q=(0,i.useCallback)(e=>{Z.current.displayMode=e,P(e)},[]),ee=(0,i.useCallback)(()=>{W(e=>{let t=!e;return Z.current.wrapLines=t,t})},[]);(0,i.useEffect)(()=>(Z.current={displayMode:I,wrapLines:T,scrollTop:R,scrollLeft:L},q.current=!0,U.current=!1,P(I),W(T),()=>{V.current?.({...Z.current})}),[t,s,I,T,R,L]);let et=(0,i.useCallback)(function(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,n=++B.current;return fetch(gD(e,"read",s,{offset:t||void 0})).then(e=>e.json()).then(e=>n!==B.current?null:e.error?(M(e.error),null):(M(null),x(n=>t&&n?{...e,content:n.content+e.content}:e),e)).catch(e=>(n!==B.current||M(String(e)),null))},[s]),en=(0,i.useCallback)(async e=>{let t=++_.current;if(j(!0),!n){b(null),j(!1),w(!0);return}try{let r=new URLSearchParams({cwd:n,path:e}),i=await fetch(`/api/git/diff?${r.toString()}`),s=await i.json();if(t!==_.current)return;b(i.ok&&s.supported&&"string"==typeof s.patch?s:null)}catch{t===_.current&&b(null)}finally{t===_.current&&(j(!1),w(!0))}},[n]);(0,i.useEffect)(()=>{let e=!0;return C(!0),M(null),x(null),b(null),w(!1),F(!1),et(t).finally(()=>{e&&C(!1)}),()=>{e=!1}},[t,et,s]),(0,i.useEffect)(()=>{if(F(!1),D.current&&(D.current.close(),D.current=null),!h)return;let e=()=>{et(t),en(t)},n=new EventSource(gD(t,"watch",s));D.current=n,n.addEventListener("connected",()=>{F(!0),e()}),n.addEventListener("change",e);let r=()=>{F(!1)};return n.addEventListener("error",r),n.onerror=r,()=>{n.close(),D.current===n&&(D.current=null)}},[t,et,en,s,h]),(0,i.useEffect)(()=>{en(t)},[en,t,c]);let er=null!==gy(t);(0,i.useEffect)(()=>{K.current&&g&&(er||"markdown"===g.language&&!g.truncated||"html"===g.language&&(!g.truncated||g.size<=0xa00000))&&(K.current=!1,Q("preview"))},[g,er,Q]);let ei="preview"===A&&g?.language==="html"&&g.truncated&&g.size<=0xa00000;(0,i.useEffect)(()=>{if(!ei)return void X(null);let e=new AbortController;return fetch(gD(t,"download",s),{signal:e.signal}).then(async e=>{if(!e.ok)throw Error(`HTTP ${e.status}`);X({text:await e.text()})}).catch(t=>{e.signal.aborted||X({error:String(t)})}),()=>e.abort()},[ei,g,t,s]);let es=v?.supported===!0&&"string"==typeof v.patch,eo=es&&"deleted"===v.status;(0,i.useEffect)(()=>{k&&!es&&"diff"===A&&Q("source")},[A,k,es,Q]),(0,i.useEffect)(()=>{"diff"===I&&es&&!U.current&&(U.current=!0,Q("diff"))},[I,es,Q]);let ea=(0,i.useMemo)(()=>g?.language==="markdown"?r7(g.content):"",[g]),el=(0,i.useMemo)(()=>g?.language==="markdown"?df(g.content):null,[g]),ec=g?.content??"",ed=(0,i.useMemo)(()=>ec.split("\n"),[ec]),eh=g?.language??"text",ef=iZ(!!g&&"text"!==eh),em="html"===eh,eg="markdown"===eh,ex=er||(em?!!g&&(!g.truncated||g.size<=0xa00000):eg&&!g?.truncated),ev=eo?"diff":A,eb=!!g?.truncated&&!(em&&"preview"===ev),ey=ed.length>1e3&&!("diff"===ev&&es)&&!("preview"===ev&&ex),ej=(0,i.useMemo)(()=>(0,r.jsx)(iS.A,{className:z?"file-source-view is-wrapped":"file-source-view",language:"text"!==eh&&ef?eh:"plaintext",style:f?gL:iC.vs,showLineNumbers:!0,lineNumberStyle:{...gP},customStyle:{margin:0,padding:0,border:0,backgroundColor:"var(--bg)",...gR,width:z?"100%":"max-content",minWidth:"100%",minHeight:"100%",overflow:"visible"},codeTagProps:{style:{fontFamily:"var(--font-mono)",fontWeight:"var(--font-mono-weight)",overflowWrap:z?"anywhere":"normal"}},renderer:e=>(0,r.jsx)(gF,{...e,wrapLines:z}),wrapLongLines:z,children:ec}),[f,eh,ef,ec,z]),ek=(0,i.useMemo)(()=>ey?ed.map((e,t)=>(0,r.jsxs)("span",{className:"file-source-line","data-line-number":t+1,style:{display:"flex",minWidth:"100%"},children:[(0,r.jsx)("span",{"aria-hidden":"true",style:gA,children:t+1}),(0,r.jsx)("span",{className:"file-source-line-content",style:{flex:"1 1 auto",minWidth:0,overflowWrap:z?"anywhere":"normal",whiteSpace:z?"pre-wrap":"pre"},children:e})]},`source-line-${t}`)):null,[ed,ey,z]);(0,i.useEffect)(()=>{let e=()=>{let e=H.current;Y(t=>{let n=a&&"source"===A&&e?gO(e,window.getSelection()):null;return null===t&&null===n||t&&n&&t.startLine===n.startLine&&t.endLine===n.endLine?t:n})};if(e(),a&&"source"===A)return document.addEventListener("selectionchange",e),()=>document.removeEventListener("selectionchange",e)},[g?.content,A,a]);let ew=(0,i.useCallback)(e=>{a&&e&&a(ep(t,n),e.startLine,e.endLine)},[n,t,a]);if((0,i.useEffect)(()=>{if(!a||"source"!==A)return;let e=e=>{if(e.repeat||"i"!==e.key.toLowerCase()||!e.metaKey&&!e.ctrlKey||e.altKey||e.shiftKey)return;let t=e.target;if(t instanceof Element&&t.closest("input, textarea, [contenteditable='true']"))return;let n=H.current,r=n?gO(n,window.getSelection()):null;r&&(e.preventDefault(),ew(r))};return window.addEventListener("keydown",e),()=>window.removeEventListener("keydown",e)},[A,ew,a]),(0,i.useEffect)(()=>{if(!q.current||S||$&&!eo||"diff"===I&&!k||"diff"===I&&es&&"diff"!==A)return;let e=H.current;e&&(e.scrollTop=Z.current.scrollTop,e.scrollLeft=Z.current.scrollLeft,q.current=!1)},[g?.content,A,$,k,es,eo,S,I]),S||"diff"===I&&y&&!g)return(0,r.jsx)("div",{style:{height:"100%",display:"flex",alignItems:"center",justifyContent:"center",color:"var(--text-muted)",fontSize:13},children:m("i18n.loading")});if($&&!eo)return(0,r.jsx)("div",{style:{height:"100%",display:"flex",alignItems:"center",justifyContent:"center",color:"#f87171",fontSize:13},children:$});if(!g&&!eo)return null;let eS=eu(t),eC=eo?["diff"]:["source",...ex?["preview"]:[],...es?["diff"]:[]],eN=eo?m("files.deleted"):`${eh} \xb7 ${ed.length} lines \xb7 ${g_(g.size)}`;return(0,r.jsxs)("div",{className:"file-viewer-shell",style:{display:"flex",flexDirection:"column",height:"100%",overflow:"hidden",position:"relative"},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)(gI,{filePath:t,cwd:n}),(0,r.jsx)("span",{className:"file-viewer-meta",title:eN,children:eN}),!eo&&(0,r.jsx)("span",{title:O?m("i18n.liveSync"):m("i18n.notWatching"),"aria-label":O?m("i18n.liveSync"):m("i18n.notWatching"),className:"file-viewer-live-indicator",style:{background:O?"#4ade80":"var(--border)",boxShadow:O?"0 0 4px #4ade80":"none"}}),(0,r.jsxs)("div",{className:"file-viewer-controls",children:[eC.length>1&&(0,r.jsx)("div",{className:"file-viewer-mode-switch","aria-label":m("i18n.fileViewMode"),children:eC.map(e=>{let t=ev===e;return(0,r.jsx)("button",{type:"button",onClick:()=>Q(e),title:"diff"===e?m("i18n.compareHead"):void 0,"aria-pressed":t,className:"file-viewer-mode-button",style:{background:t?"var(--bg-selected)":"transparent",color:t?"var(--text)":"var(--text-muted)"},children:gT[e]},e)})}),(0,r.jsxs)("div",{className:"file-viewer-actions",children:[(0,r.jsx)(gM,{contentRef:H,enabled:h,partial:!!g?.truncated&&"diff"!==ev,mode:"preview"===ev&&(em||er)?"embedded":ev,prepareSearch:()=>{"preview"===ev&&(em||er)&&Q("source")}}),(l||a)&&(0,r.jsx)("button",{type:"button",onPointerDown:e=>e.preventDefault(),onClick:()=>{J&&a?ew(J):l?.(ep(t,n),!1)},title:J&&a?`${m("i18n.mentionSelectedLines")} (L${J.startLine}${J.startLine!==J.endLine?`-L${J.endLine}`:""})`:m("files.insertPath"),"aria-label":m("files.mention"),disabled:!l&&!a,className:"file-viewer-icon-button",children:(0,r.jsx)(gz,{})}),"source"===ev&&(0,r.jsx)(r.Fragment,{children:(0,r.jsx)("button",{type:"button",onClick:ee,title:z?m("i18n.disableWrap"):m("i18n.enableWrap"),"aria-label":z?m("i18n.disableWrap"):m("i18n.enableWrap"),"aria-pressed":z,className:"file-viewer-icon-button",style:{background:z?"var(--bg-selected)":"transparent",color:z?"var(--text)":"var(--text-muted)"},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"})]})})})]}),!eo&&(0,r.jsx)(gB,{filePath:t,sourceSessionId:s})]})]}),eb&&g?.truncated&&(0,r.jsxs)("div",{className:"file-viewer-load-more",style:{display:"flex",alignItems:"center",justifyContent:"center",gap:10,padding:"5px 8px",border:"1px solid var(--border)",borderRadius:6,color:"var(--text-dim)",fontSize:11},children:[(0,r.jsxs)("span",{children:[g_(g.nextOffset)," / ",g_(g.size)]}),(0,r.jsx)("button",{type:"button",className:"file-viewer-mode-button",disabled:N,onClick:()=>{E(!0),et(t,g.nextOffset).finally(()=>E(!1))},children:N?m("i18n.loading"):m("i18n.loadMore")})]}),(0,r.jsx)("div",{ref:H,className:"file-viewer-content",tabIndex:0,onPointerDown:e=>{e.target.closest("button, a, input, textarea, select, [contenteditable='true']")||e.currentTarget.focus({preventScroll:!0})},onScroll:e=>{Z.current.scrollTop=e.currentTarget.scrollTop,Z.current.scrollLeft=e.currentTarget.scrollLeft},style:{flex:1,overflow:"auto",background:"var(--bg)",paddingBottom:eb?48:void 0},children:"diff"===ev&&es?(0,r.jsx)(gH,{patch:v.patch}):em&&"preview"===ev&&g?.truncated&&!G?.text?(0,r.jsx)("div",{style:{padding:24,color:"var(--text-dim)",fontSize:12},children:G?.error??m("i18n.loading")}):em&&"preview"===ev?(0,r.jsx)("iframe",{srcDoc:g?.truncated?G?.text:ec,sandbox:"allow-scripts",style:{width:"100%",height:"100%",border:"none",background:"var(--bg)"},title:m("i18n.htmlPreview")}):eg&&"preview"===ev?(0,r.jsxs)("div",{className:"markdown-body markdown-file-preview",style:{padding:"24px 32px"},children:[el?.data&&(0,r.jsx)(g$,{data:el.data}),(0,r.jsx)(rq.oz,{remarkPlugins:im,rehypePlugins:iv,urlTransform:o?r3:r8,components:{code(e){let{className:t,children:n,...i}=e,s=t?.replace("language-","").toLowerCase()??"",o=String(n);return t?.includes("language-")||o.includes("\n")?"mermaid"===s?(0,r.jsx)(i1,{code:o.replace(/\n$/,""),defaultPreview:!0}):(0,r.jsx)(i8,{code:o.replace(/\n$/,""),lang:s}):(0,r.jsx)("code",{className:t,...i,children:n})},pre(e){let{children:t}=e;return(0,r.jsx)(r.Fragment,{children:t})},a(e){let{href:t,children:i,...s}=e;delete s.node;let a=o?rM(t,eS,n??eS):null;return a&&o?(0,r.jsx)("a",{href:t,...s,onClick:e=>{rC(e)&&(e.preventDefault(),o(a,rT(t)??void 0))},children:i}):r6(t)?(0,r.jsx)("a",{href:t,...s,target:"_blank",rel:"noopener noreferrer",children:i}):(0,r.jsx)("a",{href:t,...s,children:i})},img(e){let{src:t,alt:i,...o}=e;delete o.node;let a="string"==typeof t?rM(t,eS,n??eS):null,l=a?gD(a,"read",s):t;return(0,r.jsx)("img",{src:l,alt:i??"",loading:"lazy",...o})}},children:ea})]}):er&&"preview"===ev?(0,r.jsx)(gN,{content:ec,filePath:t,complete:!g?.truncated,scrollRef:H}):ey?(0,r.jsx)("div",{className:"file-source-view is-lightweight",style:{width:z?"100%":"max-content",minWidth:"100%",minHeight:"100%",background:"var(--bg)",...gR},children:ek}):ej})]})}function gG(e){let{tabs:t,activeTabId:n,onSelectTab:s,onCloseTab:o,onOpenFiles:a}=e,{t:l}=(0,eG.s)(),c=(0,i.useRef)(null);return(0,i.useEffect)(()=>{let e=c.current;if(!e)return;let t=()=>e.querySelector('[aria-selected="true"]')?.scrollIntoView({block:"nearest",inline:"nearest"});t();let n=new ResizeObserver(t);return n.observe(e),()=>n.disconnect()},[n]),(0,r.jsxs)("div",{className:"file-tab-strip",children:[(0,r.jsx)("div",{ref:c,role:"tablist",className:"file-tab-list",children:t.map(e=>{let i=e.id===n;return(0,r.jsxs)("div",{role:"tab",className:`file-tab${i?" is-active":""}`,"aria-label":"terminal"===e.kind?l("terminal.tabLabel",{name:e.label}):"agent"===e.kind?l("subagent.tabLabel",{name:e.label}):e.label,"aria-selected":i,tabIndex:i||!n&&t[0].id===e.id?0:-1,onKeyDown:n=>{if(n.target===n.currentTarget){if("Enter"===n.key||" "===n.key)n.preventDefault(),s(e.id);else if(["ArrowLeft","ArrowRight","Home","End"].includes(n.key)){n.preventDefault();let r=t.findIndex(t=>t.id===e.id),i="Home"===n.key?0:"End"===n.key?t.length-1:(r+("ArrowRight"===n.key?1:-1)+t.length)%t.length;s(t[i].id),n.currentTarget.parentElement?.children[i]?.focus()}}},onClick:()=>s(e.id),onMouseDown:e=>{1===e.button&&e.preventDefault()},onAuxClick:t=>{1===t.button&&(t.preventDefault(),t.stopPropagation(),e.closing||o(e.id))},children:[(0,r.jsx)("span",{className:"file-tab-icon",children:"terminal"===e.kind?(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:"4 17 10 11 4 5"}),(0,r.jsx)("line",{x1:"12",y1:"19",x2:"20",y2:"19"})]}):"agent"===e.kind?(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)("rect",{x:"5",y:"7",width:"14",height:"11",rx:"2"}),(0,r.jsx)("path",{d:"M9 11h.01M15 11h.01M9 15h6M12 7V4M10 4h4"})]}):t3(e.label,17)}),(0,r.jsx)("span",{className:"file-tab-label",title:e.filePath,children:e.label}),(0,r.jsx)("button",{type:"button",className:"file-tab-close",disabled:e.closing,onClick:t=>{t.stopPropagation(),o(e.id)},title:l("terminal"===e.kind?"terminal.close":"i18n.close"),"aria-label":`${l("terminal"===e.kind?"terminal.close":"i18n.close")} ${e.label}`,children:(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)})}),a&&(0,r.jsx)("button",{type:"button",className:"file-tab-add",onClick:a,title:l("files.chooseFile"),"aria-label":l("files.chooseFile"),children:(0,r.jsx)("svg",{width:"20",height:"20",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round","aria-hidden":"true",children:(0,r.jsx)("path",{d:"M12 4v16M4 12h16"})})})]})}function gX(e,t,n,r){let i=e.findIndex(e=>e.id===t);if(-1===i||(e[i].viewerRevision??0)!==n)return e;let s=[...e];return s[i]={...s[i],viewerState:r},s}let gQ="project-trust-mcp-status";function g0(e){let{cwd:t,busy:n,error:s,onCancel:o,onConfirm:a,onStatus:l}=e,[c,d]=(0,i.useState)({state:"loading"}),u=(0,i.useRef)(l);return(0,i.useEffect)(()=>{u.current=l},[l]),(0,i.useEffect)(()=>{let e=!0,n=!1;d({state:"loading"});let r=new AbortController,i=window.setTimeout(()=>{n=!0,r.abort()},1e4);return fetch(`/api/project-trust?cwd=${encodeURIComponent(t)}`,{signal:r.signal,cache:"no-store"}).then(async t=>{let n=await t.json();if(!e)return;let r=function(e,t,n){let r=Array.isArray(n.mcpServers)?{mcpServers:n.mcpServers,...n.mcpFile?{mcpFile:n.mcpFile}:{},...void 0!==n.mcpError?{mcpError:n.mcpError}:{}}:void 0;if(e&&!n.error&&r&&"boolean"==typeof n.requiresTrust){let e;return{state:"loaded",listing:r,status:(e={requiresTrust:n.requiresTrust,trusted:n.trusted,decision:n.decision,inherited:n.inherited},void 0!==n.decisionPath&&(e.decisionPath=n.decisionPath),void 0!==n.decisionError&&(e.decisionError=n.decisionError),e)}}return"trust-unreadable"===n.reason&&r?{state:"loaded",listing:r,statusError:n.error??`HTTP ${t}`}:{state:"failed",error:n.error??`HTTP ${t}`,reason:n.reason}}(t.ok,t.status,n);d(r),"loaded"===r.state&&r.status&&u.current?.(r.status)}).catch(t=>{e&&d(n?{state:"failed",timedOut:!0}:{state:"failed",error:t instanceof Error?t.message:String(t)})}).finally(()=>window.clearTimeout(i)),()=>{e=!1,window.clearTimeout(i),r.abort()}},[t]),(0,r.jsx)(g1,{cwd:t,busy:n,error:s,listing:c,onCancel:o,onConfirm:a})}function g1(e){let{cwd:t,busy:n,error:s,listing:o,onCancel:a,onConfirm:l}=e,{t:c}=(0,eG.s)(),d="loading"===o.state,u="loaded"===o.state?function(e){if(e){if(!e.requiresTrust)return"mcp.reason.trust-not-required";if(e.trusted)return"trust.alreadyTrusted"}}(o.status):void 0,p=(0,i.useRef)(null),h=(0,i.useRef)(n),f=(0,i.useRef)(a);return(0,i.useEffect)(()=>{h.current=n,f.current=a},[n,a]),(0,i.useEffect)(()=>{var e,t,n;let r,i,s;return e=document,t=p.current,n=()=>{h.current||f.current()},r=e.activeElement,t?.focus({preventScroll:!0}),i=e=>{"Escape"!==e.key||(e.stopPropagation(),eF(e)||(e.preventDefault(),n()))},e.addEventListener("keydown",i,!0),s=()=>e.removeEventListener("keydown",i,!0),()=>{s(),r&&r.isConnected&&"function"==typeof r.focus&&r.focus({preventScroll:!0})}},[]),(0,r.jsx)("div",{role:"presentation",className:"project-trust-backdrop",onClick:e=>{n||e.target!==e.currentTarget||a()},children:(0,r.jsxs)("div",{ref:p,role:"dialog","aria-modal":"true","aria-labelledby":"project-trust-title","aria-describedby":"project-trust-description",tabIndex:-1,className:"project-trust-dialog",children:[(0,r.jsxs)("div",{className:"project-trust-body",children:[(0,r.jsxs)("svg",{width:"20",height:"20",viewBox:"0 0 24 24",fill:"none",stroke:"#f59e0b",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":"true",className:"project-trust-icon",children:[(0,r.jsx)("path",{d:"M12 22s8-4 8-10V5l-8-3-8 3v7c0 6 8 10 8 10Z"}),(0,r.jsx)("path",{d:"m9 12 2 2 4-4"})]}),(0,r.jsxs)("div",{className:"project-trust-content",children:[(0,r.jsx)("div",{id:"project-trust-title",className:"project-trust-title",children:c("trust.dialogTitle")}),(0,r.jsx)("div",{id:"project-trust-description",className:"project-trust-text",children:c("trust.dialogBody")}),(0,r.jsx)("code",{className:"project-trust-path",children:d0(t)}),u&&(0,r.jsx)("p",{id:"project-trust-notice",role:"status",className:"project-trust-notice",children:c(u)}),"loaded"===o.state&&void 0!==o.statusError&&(0,r.jsxs)("div",{className:"project-trust-mcp-failed",children:[(0,r.jsx)("p",{className:"project-trust-mcp-line is-warning",children:c("mcp.reason.trust-unreadable")}),(0,r.jsx)("code",{className:"project-trust-mcp-detail",children:d0(o.statusError)})]}),(0,r.jsx)(g4,{listing:o})]})]}),s&&(0,r.jsx)(g2,{error:s}),(0,r.jsxs)("div",{className:"project-trust-footer",children:[(0,r.jsx)("button",{type:"button",className:"project-trust-button",onClick:a,disabled:n,children:c(u?"trust.close":"trust.cancel")}),!u&&(0,r.jsx)("button",{type:"button",className:"project-trust-button is-primary",onClick:l,disabled:n||d,"aria-busy":n||void 0,"aria-describedby":d?gQ:void 0,children:c(n?"trust.trusting":"trust.trustProject")})]})]})})}function g2(e){let{error:t}=e,{t:n}=(0,eG.s)(),i=void 0!==t.reason&&"internal"!==t.reason;return(0,r.jsxs)("div",{role:"alert",className:"project-trust-error",children:[n(i?`mcp.reason.${t.reason}`:"trust.trustFailed"),!i&&(0,r.jsx)("code",{className:"project-trust-error-detail",children:d0(t.error)})]})}function g4(e){let{listing:t}=e,{t:n}=(0,eG.s)();if("loading"===t.state)return(0,r.jsx)("p",{id:gQ,role:"status",className:"project-trust-mcp-status",children:n("trust.mcp.loading")});if("failed"===t.state||void 0!==t.listing.mcpError||!t.listing.mcpFile){let e;e="failed"===t.state?t.reason&&"internal"!==t.reason?n(`mcp.reason.${t.reason}`):t.error:t.listing.mcpError;let i="failed"===t.state&&t.timedOut;return(0,r.jsxs)("div",{className:"project-trust-mcp-failed",children:[(0,r.jsx)("p",{className:"project-trust-mcp-line is-warning",children:n(i?"trust.mcp.timedOut":"trust.mcp.loadFailed")}),e&&(0,r.jsx)("code",{className:"project-trust-mcp-detail",children:d0(e)})]})}let{mcpFile:i,mcpServers:s}=t.listing;return i.exists||0!==i.problems.length?(0,r.jsxs)("section",{className:"project-trust-mcp","aria-labelledby":"project-trust-mcp-title",children:[(0,r.jsx)("div",{id:"project-trust-mcp-title",className:"project-trust-mcp-title",children:n("trust.mcp.title")}),s.length>0&&(0,r.jsx)("p",{className:"project-trust-mcp-intro",children:n("trust.mcp.intro")}),(0,r.jsx)(g8,{file:i}),0===s.length&&0===i.problems.length&&(0,r.jsx)("p",{className:"project-trust-mcp-line",children:n("trust.mcp.none")}),s.some(e=>!e.validated)&&(0,r.jsx)("p",{className:"project-trust-mcp-line",children:n("trust.mcp.unchecked")}),s.length>0&&(0,r.jsx)("ul",{className:"project-trust-mcp-list",children:s.map(e=>(0,r.jsx)(g5,{server:e},e.name))})]}):null}function g8(e){let{file:t}=e,{t:n}=(0,eG.s)();return(0,r.jsx)(r.Fragment,{children:t.problems.map(e=>{let i=ue(e,t.realPath);return(0,r.jsxs)("div",{className:"project-trust-mcp-problem",children:[(0,r.jsx)("p",{className:"project-trust-mcp-line is-warning",children:n(`mcp.fileProblem.${e.reason}`)}),i&&(0,r.jsx)("code",{className:"project-trust-mcp-detail",children:i})]},e.reason)})})}function g3(e){let{fields:t}=e,{t:n}=(0,eG.s)();return(0,r.jsx)(r.Fragment,{children:t.map(e=>{let t=d6(e);return(0,r.jsx)("code",{className:"project-trust-mcp-chip",children:n(t.key,t.params)},`${e.kind}\0${e.name??""}`)})})}function g6(e){let{server:t}=e,{t:n}=(0,eG.s)();return(0,r.jsx)(r.Fragment,{children:d7(t.variableReferences).map(e=>{let{variable:t,field:i}=e,s=d6(i);return(0,r.jsx)("code",{className:"project-trust-mcp-chip",children:n("mcp.server.variableIn",{variable:t,field:n(s.key,s.params)})},`${t}\0${i.kind}\0${i.name??""}`)})})}function g5(e){let t,{server:n}=e,{t:i}=(0,eG.s)(),s=d8(n),o=void 0===n.invalidError;return(0,r.jsxs)("li",{className:"project-trust-mcp-server",children:[(0,r.jsxs)("div",{className:"project-trust-mcp-server-head",children:[(0,r.jsx)("span",{className:"project-trust-mcp-server-name",children:d0(n.name)}),n.transport&&(0,r.jsx)("span",{className:"project-trust-mcp-tag",children:i(`mcp.transport.${n.transport}`)})]}),void 0!==s&&(0,r.jsx)("code",{className:"project-trust-mcp-target",children:s}),void 0!==n.cwd&&(0,r.jsx)("p",{className:"project-trust-mcp-line",children:i("trust.mcp.cwd",{path:d0(n.cwd)})}),d3(n)&&(0,r.jsx)("p",{className:"project-trust-mcp-line is-warning",children:i("mcp.server.hiddenCharacters")}),void 0!==n.invalidError&&(0,r.jsxs)("p",{className:"project-trust-mcp-line is-warning",children:[i("mcp.server.invalid")," ",(0,r.jsx)("code",{className:"project-trust-mcp-chip",children:d0(n.invalidError)})]}),n.webPasswordField&&(0,r.jsxs)("p",{className:"project-trust-mcp-line is-warning",children:[i("mcp.server.webPassword")," ",(0,r.jsx)(g3,{fields:[n.webPasswordField]})]}),!n.enabled&&(0,r.jsx)("p",{className:"project-trust-mcp-line",children:i("mcp.server.disabled")}),o&&n.commandFields.length>0&&(0,r.jsxs)("p",{className:"project-trust-mcp-line is-warning",children:[i("mcp.server.commandFields")," ",(0,r.jsx)(g3,{fields:n.commandFields})]}),o&&n.variableReferences.length>0&&(0,r.jsxs)("p",{className:"project-trust-mcp-line is-warning",children:[i(d5(n))," ",(0,r.jsx)(g6,{server:n})]}),n.replacesGlobal&&(0,r.jsx)("p",{className:"project-trust-mcp-line is-warning",children:i("mcp.server.replacesGlobal")}),n.override&&(0,r.jsx)("p",{className:"project-trust-mcp-line is-warning",children:i((t=d9(n.override.keys)).key,t.params)}),n.masked&&(0,r.jsx)("p",{className:"project-trust-mcp-line is-dim",children:i("mcp.server.masked")})]})}function g9(e){return"message"===e.type&&"message"in e&&"system"!==e.message.role}function g7(e){let t=e,n=t.branchPreview,r=g9(t.entry)?t.entry:null,i=t.compressedEntryIds?.length??0;for(;1===t.children.length;)t=t.children[0],n??=t.branchPreview,!r&&g9(t.entry)&&(r=t.entry),i+=1+(t.compressedEntryIds?.length??0);return{node:t,skipped:i,branchPreview:n,labelEntry:r??t.entry}}function xe(e){if(e.length>1)return!0;let t=[...e];for(;t.length>0;){let e=t.pop();if(e.children.length>1)return!0;for(let n of e.children)t.push(n)}return!1}function xt(e){let{node:t,activePathIds:n,depth:i,isLast:s,parentLines:o,onSelect:a}=e,{node:l,skipped:c,branchPreview:d,labelEntry:u}=g7(t),p=n.has(l.entry.id),h=n.has(t.entry.id)||n.has(l.entry.id),f=d?.text??function(e){if("message"===e.type&&g9(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}(u),m=d?d.role??null:g9(u)?u.message.role:null;return(0,r.jsxs)("div",{children:[(0,r.jsxs)("div",{role:"button",tabIndex:a?0:-1,"aria-disabled":!a,style:{display:"flex",alignItems:"center",height:24,cursor:a?"pointer":"default"},onClick:a?()=>a(l.entry.id):void 0,onKeyDown:a?e=>{("Enter"===e.key||" "===e.key)&&(e.preventDefault(),a(l.entry.id))}:void 0,children:[o.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:s?"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:p?"var(--accent)":h?"var(--text-muted)":"var(--border)",border:p?"none":"1px solid var(--text-dim)",marginRight:6,transition:"background 0.12s"}}),m&&(0,r.jsx)("span",{style:{fontSize:9,fontFamily:"var(--font-mono)",color:"user"===m?"var(--accent)":"var(--text-dim)",background:"user"===m?"rgba(37,99,235,0.08)":"var(--bg-hover)",border:`1px solid ${"user"===m?"rgba(37,99,235,0.2)":"var(--border)"}`,borderRadius:3,padding:"0 4px",marginRight:5,flexShrink:0,lineHeight:"16px"},children:"user"===m?"U":"A"}),c>0&&(0,r.jsxs)("span",{style:{fontSize:10,color:"var(--text-dim)",marginRight:5,flexShrink:0},children:["+",c]}),(0,r.jsx)("span",{style:{fontSize:11,color:p?"var(--text)":h?"var(--text-muted)":"var(--text-dim)",fontWeight:p?500:400,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",flex:1,minWidth:0},children:f})]}),l.children.map((e,t)=>(0,r.jsx)(xt,{node:e,activePathIds:n,depth:i+1,isLast:t===l.children.length-1,parentLines:[...o,!s],onSelect:a},e.entry.id))]})}function xn(e){let{tree:t,activeLeafId:n,onLeafChange:s,inline:o,embedded:a=!1,containerRef:l,open:c,onToggle:d,hasSession:u,compact:p,hideInlineButton:h,locked:f=!1}=e,{t:m}=(0,eG.s)(),[g,x]=(0,i.useState)(!1),v=void 0!==c?c:g,b=(0,i.useRef)(null),[y,j]=(0,i.useState)(null);(0,i.useEffect)(()=>{if(!v||!o)return;let e=l?.current??b.current;if(!e)return;let t=()=>{let t=e.getBoundingClientRect();j({top:t.bottom,left:t.left,width:t.width})};t();let n=new ResizeObserver(t);return n.observe(e),()=>n.disconnect()},[v,o,l]);let k=(0,i.useMemo)(()=>(function(e,t){if(!t)return new Set;let n=e.map(e=>({node:e,path:[e.entry.id]}));for(;n.length>0;){let{node:e,path:r}=n.pop();if(e.entry.id===t||e.compressedEntryIds?.includes(t))return new Set(r);for(let t of e.children)n.push({node:t,path:[...r,t.entry.id]})}return new Set})(t,n),[t,n]),w=(0,i.useCallback)(e=>{s(e)},[s]),S=f?void 0:w,C=f&&(0,r.jsx)("div",{style:{padding:"2px 0 4px",fontSize:11,color:"var(--text-dim)",fontStyle:"italic"},children:m("i18n.branchesLockedWhileRunning")}),N=u?xe(t)?null:m("i18n.noBranches"):m("i18n.noActiveSession"),E=function(e){if(e.length>1)return e;if(0===e.length)return[];let t=g7(e[0]).node;return t.children.length>1?t.children:[]}(t),$=!N&&E.length>0,M=(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:$?"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"})]}),I=(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:v?"rotate(180deg)":"none",transition:"transform 0.15s"},children:(0,r.jsx)("polyline",{points:"2 3.5 5 6.5 8 3.5"})});return a?(0,r.jsxs)("div",{className:"workspace-branch-list",children:[(0,r.jsx)("p",{className:"workspace-branch-description",children:m("branches.description")}),C,$?E.map((e,t)=>(0,r.jsx)(xt,{node:e,activePathIds:k,depth:0,isLast:t===E.length-1,parentLines:[],onSelect:S},e.entry.id)):(0,r.jsxs)("div",{className:"workspace-branch-empty",children:[(0,r.jsx)("strong",{children:N}),u&&(0,r.jsx)("p",{children:m("branches.createHint",{action:m("i18n.editFromHere")})})]})]}):o?(0,r.jsxs)("div",{style:{height:"100%",display:"flex",alignItems:"stretch"},children:[(0,r.jsxs)("button",{ref:b,onClick:()=>d?d():x(e=>!e),style:{display:h?"none":"flex",alignItems:"center",gap:6,height:"100%",padding:"0 12px",background:v?"var(--bg-selected)":"none",border:"none",borderTop:v?"2px solid var(--accent)":"2px solid transparent",borderRight:"1px solid var(--border)",cursor:"pointer",color:v?"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=v?"var(--text)":"var(--text-muted)"},title:m("i18n.branches"),"aria-label":m("i18n.branches"),"aria-pressed":v,children:[M,!p&&(0,r.jsx)("span",{children:m("i18n.branches")})]}),v&&y&&(0,r.jsx)("div",{style:{position:"fixed",top:y.top,left:y.left,width:y.width,background:"var(--bg-panel)",borderBottom:"1px solid var(--border)",zIndex:500},children:$?(0,r.jsxs)("div",{style:{padding:"4px 12px 8px 12px",maxHeight:260,overflowY:"auto"},children:[C,E.map((e,t)=>(0,r.jsx)(xt,{node:e,activePathIds:k,depth:0,isLast:t===E.length-1,parentLines:[],onSelect:S},e.entry.id))]}):(0,r.jsx)("div",{style:{padding:"10px 16px",fontSize:12,color:"var(--text-muted)",fontStyle:"italic"},children:N})})]}):(0,r.jsxs)("div",{style:{borderBottom:"1px solid var(--border)",background:"var(--bg)",flexShrink:0,position:"relative"},children:[(0,r.jsxs)("button",{onClick:()=>x(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:[M,(0,r.jsx)("span",{style:{color:"var(--text-muted)"},children:m("i18n.branches")}),I]}),v&&(0,r.jsx)("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:$?(0,r.jsxs)("div",{style:{padding:"4px 12px 8px 12px",maxHeight:260,overflowY:"auto"},children:[C,E.map((e,t)=>(0,r.jsx)(xt,{node:e,activePathIds:k,depth:0,isLast:t===E.length-1,parentLines:[],onSelect:S},e.entry.id))]}):(0,r.jsx)("div",{style:{padding:"10px 16px",fontSize:12,color:"var(--text-muted)",fontStyle:"italic"},children:N??m("i18n.noBranches")})})]})}function xr(e){let{loading:t,prompt:n,translate:i}=e;return(0,r.jsxs)("section",{className:"system-prompt-panel","aria-label":i("system.prompt"),children:[(0,r.jsx)("div",{className:"system-prompt-scroll",children:n?(0,r.jsx)("div",{className:"system-prompt-text",children:n}):(0,r.jsx)("div",{className:"system-prompt-empty",children:i(""===n?"system.empty":t?"system.loading":"system.load")})}),(0,r.jsx)("style",{children:`
14
- .system-prompt-panel {
15
- display: flex;
16
- height: min(600px, 75dvh);
17
- min-height: 220px;
18
- flex-direction: column;
19
- background: var(--bg-panel);
20
- border-bottom: 1px solid var(--border);
21
- }
22
- .system-prompt-scroll {
23
- min-height: 0;
24
- flex: 1;
25
- overflow: auto;
26
- padding: 12px 16px;
27
- }
28
- .system-prompt-text {
29
- color: var(--text-muted);
30
- font-family: var(--font-mono);
31
- font-size: 12px;
32
- line-height: 1.6;
33
- overflow-wrap: anywhere;
34
- white-space: pre-wrap;
35
- }
36
- .system-prompt-empty {
37
- padding: 10px 0;
38
- color: var(--text-muted);
39
- font-size: 12px;
40
- font-style: italic;
41
- }
42
- `})]})}function xi(e){if("string"==typeof e)return e;if(void 0===e)return"";try{return JSON.stringify(e)}catch{return String(e)}}function xs(e){let{children:t}=e;return(0,r.jsx)("div",{className:"tool-definitions-empty",children:t})}function xo(e){let{loading:t,tools:n,translate:s}=e,o=(0,i.useMemo)(()=>n?.filter(e=>e.active&&!e.declarationHidden)??null,[n]),[a,l]=(0,i.useState)(null);(0,i.useEffect)(()=>{l(e=>o?.some(t=>t.name===e)?e:o?.[0]?.name??null)},[o]);let c=o?.find(e=>e.name===a)??o?.[0]??null,d=c?function(e){if(!e||!e.properties||"object"!=typeof e.properties)return[];let t=e.properties,n=new Set(Array.isArray(e.required)?e.required.filter(e=>"string"==typeof e):[]);return Object.entries(t).map(e=>{let[t,r]=e,i=r&&"object"==typeof r?r:{};return{name:t,type:function e(t){let n=Array.isArray(t.anyOf)?t.anyOf:Array.isArray(t.oneOf)?t.oneOf:null;if(n)return n.map(t=>t&&"object"==typeof t?e(t):"unknown").filter((e,t,n)=>n.indexOf(e)===t).join(" | ");if(void 0!==t.const)return xi(t.const);if(Array.isArray(t.enum)&&t.enum.length>0&&void 0===t.type)return[...new Set(t.enum.map(e=>null===e?"null":typeof e))].join(" | ");let r=t.type,i=Array.isArray(r)?r.filter(e=>"string"==typeof e).join(" | "):"string"==typeof r?r:"string"==typeof t.$ref?t.$ref.split("/").pop()??"object":"unknown";if("array"===i){let n=t.items,r=n&&"object"==typeof n?e(n):"unknown";return`${r}[]`}return i}(i),description:"string"==typeof i.description?i.description:void 0,required:n.has(t),allowedValues:Array.isArray(i.enum)?i.enum.map(xi).join(", "):void 0,defaultValue:void 0===i.default?void 0:xi(i.default)}})}(c.parameters):[];return(0,r.jsxs)("div",{className:"tool-definitions-panel",children:[(0,r.jsx)("nav",{className:"tool-definitions-sidebar","aria-label":s("tools.title"),children:(0,r.jsx)("div",{className:"tool-definitions-list",children:o&&o.length>0?o.map(e=>{let t=e.name===c?.name;return(0,r.jsx)("button",{type:"button",className:`tool-definitions-item${t?" selected":""}`,"aria-pressed":t,onClick:()=>l(e.name),children:(0,r.jsx)("code",{children:e.name})},e.name)}):o?(0,r.jsx)(xs,{children:s("tools.noTools")}):(0,r.jsx)(xs,{children:t?s("tools.loading"):s("tools.load")})})}),(0,r.jsx)("section",{className:"tool-definition-detail","aria-label":s("tools.details"),children:c?(0,r.jsxs)("div",{className:"tool-definition-scroll",children:[c.description&&(0,r.jsxs)("section",{className:"tool-definition-section",children:[(0,r.jsx)("div",{className:"tool-definition-section-label",children:s("tools.description")}),(0,r.jsx)("div",{className:"tool-definition-description",children:c.description})]}),(0,r.jsxs)("section",{className:"tool-definition-section",children:[(0,r.jsxs)("div",{className:"tool-definition-section-label",children:[(0,r.jsx)("span",{children:s("tools.parameters")}),(0,r.jsx)("span",{children:s("tools.parameterCount",{count:d.length})})]}),d.length>0?(0,r.jsx)("div",{className:"tool-definition-fields",children:d.map(e=>(0,r.jsxs)("div",{className:"tool-definition-field",children:[(0,r.jsxs)("div",{className:"tool-definition-field-name",children:[(0,r.jsx)("code",{children:e.name}),(0,r.jsx)("span",{className:e.required?"required":void 0,children:s(e.required?"tools.required":"tools.optional")})]}),(0,r.jsxs)("div",{className:"tool-definition-field-value",children:[(0,r.jsx)("code",{className:"tool-definition-type",children:e.type}),e.description&&(0,r.jsx)("div",{children:e.description}),e.allowedValues&&(0,r.jsxs)("div",{className:"tool-definition-meta",children:[s("tools.allowedValues"),": ",(0,r.jsx)("code",{children:e.allowedValues})]}),void 0!==e.defaultValue&&(0,r.jsxs)("div",{className:"tool-definition-meta",children:[s("tools.defaultValue"),": ",(0,r.jsx)("code",{children:e.defaultValue})]})]})]},e.name))}):(0,r.jsx)("div",{className:"tool-definition-no-parameters",children:s("tools.noParameters")})]}),c.promptGuidelines&&c.promptGuidelines.length>0&&(0,r.jsxs)("section",{className:"tool-definition-section",children:[(0,r.jsx)("div",{className:"tool-definition-section-label",children:s("tools.guidelines")}),(0,r.jsx)("ul",{className:"tool-definition-guidelines",children:c.promptGuidelines.map((e,t)=>(0,r.jsx)("li",{children:e},`${c.name}:${t}`))})]})]}):(0,r.jsx)(xs,{children:o?s("tools.noTools"):t?s("tools.loading"):s("tools.load")})}),(0,r.jsx)("style",{children:`
43
- .tool-definitions-panel {
44
- display: grid;
45
- grid-template-columns: clamp(112px, 26%, 220px) minmax(0, 1fr);
46
- height: min(600px, 75dvh);
47
- min-height: 240px;
48
- overflow: hidden;
49
- background: var(--bg-panel);
50
- border-bottom: 1px solid var(--border);
51
- }
52
- .tool-definitions-sidebar,
53
- .tool-definition-detail {
54
- display: flex;
55
- min-width: 0;
56
- min-height: 0;
57
- flex-direction: column;
58
- }
59
- .tool-definitions-sidebar {
60
- border-right: 1px solid var(--border);
61
- background: color-mix(in srgb, var(--bg-panel) 94%, var(--bg));
62
- }
63
- .tool-definitions-list,
64
- .tool-definition-scroll {
65
- min-height: 0;
66
- flex: 1;
67
- overflow: auto;
68
- }
69
- .tool-definitions-item {
70
- display: flex;
71
- width: 100%;
72
- min-height: 38px;
73
- align-items: center;
74
- padding: 8px 12px;
75
- border: none;
76
- border-bottom: 1px solid var(--border);
77
- background: transparent;
78
- color: var(--text-muted);
79
- cursor: pointer;
80
- text-align: left;
81
- }
82
- .tool-definitions-item:hover {
83
- background: var(--bg-hover);
84
- color: var(--text);
85
- }
86
- .tool-definitions-item.selected {
87
- background: var(--bg-selected);
88
- box-shadow: inset 2px 0 0 var(--accent);
89
- color: var(--text);
90
- }
91
- .tool-definitions-item code {
92
- max-width: 100%;
93
- color: inherit;
94
- font-size: 11px;
95
- font-weight: 600;
96
- overflow-wrap: anywhere;
97
- }
98
- .tool-definition-scroll {
99
- padding: 14px 16px 20px;
100
- }
101
- .tool-definition-section + .tool-definition-section {
102
- margin-top: 18px;
103
- }
104
- .tool-definition-section-label {
105
- display: flex;
106
- align-items: center;
107
- justify-content: space-between;
108
- gap: 8px;
109
- margin-bottom: 7px;
110
- color: var(--text-dim);
111
- font-size: 11px;
112
- font-weight: 600;
113
- }
114
- .tool-definition-section-label > span:last-child {
115
- font-weight: 400;
116
- white-space: nowrap;
117
- }
118
- .tool-definition-description {
119
- color: var(--text-muted);
120
- font-size: 12px;
121
- line-height: 1.55;
122
- overflow-wrap: anywhere;
123
- white-space: pre-wrap;
124
- }
125
- .tool-definition-fields {
126
- border-top: 1px solid var(--border);
127
- }
128
- .tool-definition-field {
129
- display: grid;
130
- grid-template-columns: minmax(88px, 0.75fr) minmax(0, 1.5fr);
131
- gap: 12px;
132
- padding: 9px 0;
133
- border-bottom: 1px solid var(--border);
134
- font-size: 11px;
135
- line-height: 1.45;
136
- }
137
- .tool-definition-field-name {
138
- display: flex;
139
- min-width: 0;
140
- flex-direction: column;
141
- gap: 3px;
142
- color: var(--text);
143
- }
144
- .tool-definition-field-name code {
145
- overflow-wrap: anywhere;
146
- }
147
- .tool-definition-field-name span {
148
- color: var(--text-dim);
149
- font-size: 10px;
150
- }
151
- .tool-definition-field-name span.required {
152
- color: var(--accent);
153
- }
154
- .tool-definition-field-value {
155
- min-width: 0;
156
- color: var(--text-muted);
157
- overflow-wrap: anywhere;
158
- }
159
- .tool-definition-type {
160
- display: block;
161
- margin-bottom: 3px;
162
- color: var(--text);
163
- }
164
- .tool-definition-meta {
165
- margin-top: 4px;
166
- color: var(--text-dim);
167
- }
168
- .tool-definition-meta code {
169
- color: var(--text-muted);
170
- }
171
- .tool-definition-no-parameters {
172
- padding: 2px 0 10px;
173
- color: var(--text-dim);
174
- font-size: 11px;
175
- }
176
- .tool-definition-guidelines {
177
- margin: 0;
178
- padding-left: 18px;
179
- color: var(--text-muted);
180
- font-size: 11px;
181
- line-height: 1.5;
182
- }
183
- .tool-definitions-empty {
184
- padding: 14px 12px;
185
- color: var(--text-muted);
186
- font-size: 12px;
187
- font-style: italic;
188
- overflow-wrap: anywhere;
189
- }
190
- @media (max-width: 640px) {
191
- .tool-definitions-panel {
192
- grid-template-columns: 112px minmax(0, 1fr);
193
- }
194
- .tool-definitions-item {
195
- padding: 8px 10px;
196
- }
197
- .tool-definition-scroll {
198
- padding: 12px;
199
- }
200
- .tool-definition-field {
201
- grid-template-columns: minmax(74px, 0.7fr) minmax(0, 1.3fr);
202
- gap: 9px;
203
- }
204
- }
205
- `})]})}function xa(e){let{usage:t,style:n}=e,{locale:i,t:s}=(0,eG.s)(),o=lP(t.cost);return(0,r.jsxs)("span",{title:function(e,t,n){let{tokens:r}=e;return[`${t("session.totalActive")}: ${lz(e.totalActiveMs)}`,`${t("session.input")}: ${r.input.toLocaleString(n)}`,`${t("session.output")}: ${r.output.toLocaleString(n)}`,...r.cacheRead>0?[`${t("session.cacheRead")}: ${r.cacheRead.toLocaleString(n)}`]:[],...r.cacheWrite>0?[`${t("session.cacheWrite")}: ${r.cacheWrite.toLocaleString(n)}`]:[],`${t("session.total")}: ${r.total.toLocaleString(n)}`,...e.cost>0?[`${t("session.cost")}: $${e.cost.toFixed(4)}`]:[],`${t("session.toolCalls")}: ${e.toolCalls.toLocaleString(n)}`].join("\n")}(t,s,i),style:{display:"flex",alignItems:"center",gap:10,minWidth:0,color:"var(--text-dim)",fontSize:11,fontVariantNumeric:"tabular-nums",whiteSpace:"nowrap",...n},children:[t.totalActiveMs>0&&(0,r.jsxs)("span",{style:{display:"flex",alignItems:"center",gap:3},children:[(0,r.jsxs)("svg",{width:"11",height:"11",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:"9"}),(0,r.jsx)("path",{d:"M12 7v5l3 2"})]}),lz(t.totalActiveMs)]}),t.tokens.total>0&&(0,r.jsx)("span",{children:s("agentSwitcher.tokens",{count:lA(t.tokens.total)})}),o&&(0,r.jsx)("span",{style:{color:"var(--text-muted)"},children:o})]})}function xl(e){return!!(e&&(e.tokens.total>0||e.totalActiveMs>0))}function xc(e){return e.name||e.firstMessage||e.id.slice(0,12)}function xd(e){return"running"===e||"starting"===e?"var(--accent)":"completed"===e?"#16a34a":"failed"===e?"#dc2626":"aborted"===e?"#d97706":"var(--text-dim)"}function xu(e){let{status:t}=e;return"running"===t||"starting"===t?(0,r.jsxs)("svg",{className:"animate-spin",width:"13",height:"13",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"})]}):"failed"===t?(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:"m9 9 6 6M15 9l-6 6"})]}):"aborted"===t||"interrupted"===t?(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:"M9 9h6v6H9z"})]}):(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)("circle",{cx:"12",cy:"12",r:"9"}),(0,r.jsx)("path",{d:"m8 12 3 3 5-6"})]})}function xp(e){let{session:t,main:n,selected:i,running:s,usage:o,onSelect:a,tabShown:l,onToggleTab:c}=e,{locale:d,t:u}=(0,eG.s)(),p=t.relation?.kind==="subagent"?t.relation:null,h=s?"running":p?.status??"completed",f=n?u("agentSwitcher.main"):p?.description||xc(t),m=n?xc(t):`${p?.profile??u("agentSwitcher.subagent")} \xb7 ${function(e,t){let n=new Date(e).getTime();if(!Number.isFinite(n))return"";let r=Math.round((n-Date.now())/1e3),i=new Intl.RelativeTimeFormat(t,{numeric:"auto"});if(60>Math.abs(r))return i.format(r,"second");let s=Math.round(r/60);if(60>Math.abs(s))return i.format(s,"minute");let o=Math.round(s/60);return 24>Math.abs(o)?i.format(o,"hour"):i.format(Math.round(o/24),"day")}(t.modified,d)}`;return(0,r.jsxs)("div",{style:{display:"flex",borderBottom:"1px solid var(--border)",borderLeft:i?"2px solid var(--accent)":"2px solid transparent",background:i?"var(--bg-selected)":"transparent"},children:[(0,r.jsxs)("button",{type:"button",role:"option","aria-selected":i,onClick:a,style:{flex:1,minWidth:0,minHeight:56,display:"grid",gridTemplateColumns:"28px minmax(0, 1fr) auto",alignItems:"center",gap:9,padding:"7px 12px",border:"none",background:"transparent",color:"var(--text)",cursor:"pointer",textAlign:"left"},onMouseEnter:e=>{i||(e.currentTarget.style.background="var(--bg-hover)")},onMouseLeave:e=>{i||(e.currentTarget.style.background="transparent")},children:[(0,r.jsx)("span",{style:{width:28,height:28,display:"grid",placeItems:"center",color:n?"var(--text-muted)":"var(--accent)"},children:n?(0,r.jsxs)("svg",{width:"17",height:"17",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"1.8",strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":"true",children:[(0,r.jsx)("circle",{cx:"12",cy:"8",r:"4"}),(0,r.jsx)("path",{d:"M4 21a8 8 0 0 1 16 0"})]}):(0,r.jsxs)("svg",{width:"17",height:"17",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"1.8",strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":"true",children:[(0,r.jsx)("rect",{x:"5",y:"7",width:"14",height:"11",rx:"2"}),(0,r.jsx)("path",{d:"M9 11h.01M15 11h.01M9 15h6M12 7V4M10 4h4"})]})}),(0,r.jsxs)("span",{style:{minWidth:0},children:[(0,r.jsx)("span",{style:{display:"block",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",fontSize:12,fontWeight:i?600:500},title:f,children:f}),(0,r.jsx)("span",{style:{display:"block",marginTop:2,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",color:"var(--text-dim)",fontSize:11},title:m,children:m}),xl(o)&&(0,r.jsx)(xa,{usage:o,style:{marginTop:3}})]}),(0,r.jsx)("span",{style:{display:"flex",alignItems:"center",gap:6,color:n&&!s?"var(--text-dim)":xd(h),fontSize:11,whiteSpace:"nowrap"},children:n&&!s?i?u("agentSwitcher.current"):null:(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(xu,{status:h}),(0,r.jsx)("span",{children:u(`agentSwitcher.status.${h}`)})]})})]}),c&&(0,r.jsx)("button",{type:"button",onClick:c,title:u(l?"subagent.closeTab":"subagent.openTab"),"aria-label":u(l?"subagent.closeTab":"subagent.openTab"),"aria-pressed":l,style:{width:36,display:"grid",placeItems:"center",border:"none",borderLeft:"1px solid var(--border)",background:"none",color:l?"var(--accent)":"var(--text-muted)",cursor:"pointer",flexShrink:0},onMouseEnter:e=>{e.currentTarget.style.background="var(--bg-hover)",l||(e.currentTarget.style.color="var(--text)")},onMouseLeave:e=>{e.currentTarget.style.background="none",l||(e.currentTarget.style.color="var(--text-muted)")},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)("rect",{x:"3",y:"4",width:"18",height:"16",rx:"2"}),(0,r.jsx)("path",{d:"M15 4v16"}),l&&(0,r.jsx)("path",{d:"M15 4h4a2 2 0 0 1 2 2v12a2 2 0 0 1-2 2h-4z",fill:"currentColor"})]})})]})}function xh(e){let{rootSession:t,subagents:n,selectedSessionId:s,runningSessionIds:o,onSelectSession:a,openSubagentTabIds:l,onToggleSubagentTab:c}=e,{t:d}=(0,eG.s)(),[u,p]=(0,i.useState)(""),h=(0,i.useMemo)(()=>[...n].sort((e,t)=>{let n=o.has(e.id);return n!==o.has(t.id)?n?-1:1:t.modified.localeCompare(e.modified)}),[o,n]),f=u.trim().toLowerCase(),m=f?h.filter(e=>{let t=e.relation?.kind==="subagent"?e.relation:null;return[t?.description,t?.profile,e.name,e.firstMessage].some(e=>e?.toLowerCase().includes(f))}):h,g=n.filter(e=>o.has(e.id)).length,x=(0,i.useMemo)(()=>[t.id,...n.map(e=>e.id)],[t.id,n]),v=x.filter(e=>o.has(e)).join(","),b=function(e,t){let[n,r]=(0,i.useState)({}),s=e.join(",");return(0,i.useEffect)(()=>{let e=s?s.split(","):[];if(0===e.length)return;let n=new AbortController,i=!1,o=async()=>{if(!i){i=!0;try{let t=await fetch("/api/sessions/stats",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({ids:e}),signal:n.signal,cache:"no-store"});if(!t.ok)return;let i=await t.json();!n.signal.aborted&&i.stats&&r(i.stats)}catch{}finally{i=!1}}};if(o(),!t)return()=>n.abort();let a=setInterval(()=>{"visible"===document.visibilityState&&o()},3e3);return()=>{clearInterval(a),n.abort()}},[s,t]),n}(x,v),y=(0,i.useMemo)(()=>{let e=x.map(e=>b[e]).filter(xl);if(0===e.length)return null;let t={tokens:{input:0,output:0,cacheRead:0,cacheWrite:0,total:0},cost:0,toolCalls:0,totalActiveMs:0};for(let n of e)t.tokens.input+=n.tokens.input,t.tokens.output+=n.tokens.output,t.tokens.cacheRead+=n.tokens.cacheRead,t.tokens.cacheWrite+=n.tokens.cacheWrite,t.tokens.total+=n.tokens.total,t.cost+=n.cost,t.toolCalls+=n.toolCalls,t.totalActiveMs+=n.totalActiveMs;return t},[x,b]);return(0,r.jsx)("div",{role:"listbox","aria-label":d("agentSwitcher.title"),style:{background:"var(--bg-panel)",borderLeft:"1px solid var(--border)",borderRight:"1px solid var(--border)",borderBottom:"1px solid var(--border)",borderRadius:"0 0 6px 6px",boxShadow:"0 10px 28px rgba(0,0,0,0.10)",overflow:"hidden"},children:(0,r.jsxs)("div",{children:[(0,r.jsxs)("div",{style:{minHeight:44,display:"flex",alignItems:"center",gap:8,padding:"7px 12px",borderBottom:"1px solid var(--border)"},children:[(0,r.jsx)("strong",{style:{fontSize:12,fontWeight:600},children:d("agentSwitcher.title")}),(0,r.jsx)("span",{style:{color:"var(--text-dim)",fontSize:11},children:d("agentSwitcher.count",{count:n.length})}),(0,r.jsxs)("span",{style:{marginLeft:"auto",display:"flex",alignItems:"center",gap:10,minWidth:0},children:[y&&(0,r.jsxs)("span",{style:{display:"flex",alignItems:"center",gap:6,minWidth:0,overflow:"hidden"},children:[(0,r.jsx)("span",{style:{color:"var(--text-dim)",fontSize:11,whiteSpace:"nowrap"},title:d("agentSwitcher.totalUsageHint"),children:d("agentSwitcher.totalUsage")}),(0,r.jsx)(xa,{usage:y})]}),g>0&&(0,r.jsx)("span",{style:{color:"var(--accent)",fontSize:11,whiteSpace:"nowrap"},children:d("agentSwitcher.runningCount",{count:g})})]})]}),n.length>8&&(0,r.jsx)("div",{style:{padding:8,borderBottom:"1px solid var(--border)"},children:(0,r.jsx)("input",{type:"search",value:u,onChange:e=>p(e.target.value),placeholder:d("agentSwitcher.search"),"aria-label":d("agentSwitcher.search"),style:{width:"100%",height:32,padding:"0 10px",border:"1px solid var(--border)",borderRadius:6,background:"var(--bg)",color:"var(--text)",fontSize:12,outline:"none"}})}),(0,r.jsxs)("div",{style:{maxHeight:"min(58dvh, 480px)",overflowY:"auto"},children:[(0,r.jsx)(xp,{session:t,main:!0,selected:t.id===s,running:o.has(t.id),usage:b[t.id],onSelect:()=>a(t)}),m.map(e=>(0,r.jsx)(xp,{session:e,selected:e.id===s,running:o.has(e.id),usage:b[e.id],onSelect:()=>a(e),tabShown:l.has(e.id),onToggleTab:()=>{let t=e.relation?.kind==="subagent"?e.relation:null;c(e.id,t?.description||t?.profile||xc(e))}},e.id)),0===m.length&&(0,r.jsx)("div",{style:{padding:"22px 12px",color:"var(--text-dim)",fontSize:12,textAlign:"center"},children:d("agentSwitcher.noMatches")})]})]})})}let xf={messages:[],entryIds:[],oldestEntryId:null,hasMore:!1};function xm(e,t){let n=new URLSearchParams({deferThinking:"1",deferMedia:"1",tail:String(100)});return t&&n.set("before",t),`/api/sessions/${encodeURIComponent(e)}/context?${n}`}function xg(e){return{messages:e.messages??[],entryIds:e.entryIds??[],oldestEntryId:e.oldestEntryId??null,hasMore:!!e.hasMore}}function xx(e){let{sessionId:t,fallbackLabel:n,running:s,onOpenFile:o,variant:a="subagent"}=e,{t:l,locale:c}=(0,eG.s)(),[d,u]=(0,i.useState)(null),[p,h]=(0,i.useState)(n),[f,m]=(0,i.useState)(xf),{messages:g,entryIds:x,oldestEntryId:v,hasMore:b}=f,y=(0,i.useRef)(f);y.current=f;let[j,k]=(0,i.useState)(!1),[w,S]=(0,i.useState)(!1),[C,N]=(0,i.useState)(null),[E,$]=(0,i.useState)(!0),[M,I]=(0,i.useState)(0);(0,i.useEffect)(()=>{let e=new AbortController;return(async()=>{try{let r=await fetch(`/api/sessions/${encodeURIComponent(t)}`,{signal:e.signal,cache:"no-store"});if(404===r.status)return;if(!r.ok)throw Error(`HTTP ${r.status}`);let i=await r.json();if(!i.info)throw Error(i.error??`HTTP ${r.status}`);u(i.info),h(i.info.name||i.info.firstMessage||n)}catch{}})(),()=>e.abort()},[t,s,M,n]),(0,i.useEffect)(()=>{let e=new AbortController,n=!1,r=!1,i=async()=>{if(!r){r=!0;try{let r=await fetch(xm(t),{signal:e.signal,cache:"no-store"});if(404===r.status){n||S(!0);return}if(!r.ok)throw Error(`HTTP ${r.status}`);let i=await r.json();if(n)return;S(!1),N(null),m(e=>{var t;let n,r,s;return t=xg(i.context),n=new Map,e.entryIds.forEach((t,r)=>n.set(t,e.messages[r])),r=t.messages.map((e,r)=>n.get(t.entryIds[r])??e),(s=t.hasMore&&t.entryIds.length?e.entryIds.indexOf(t.entryIds[0]):-1)<0?{...t,messages:r}:{messages:[...e.messages.slice(0,s),...r],entryIds:[...e.entryIds.slice(0,s),...t.entryIds],oldestEntryId:e.oldestEntryId,hasMore:e.hasMore}})}catch(e){n||e instanceof Error&&"AbortError"===e.name||N(e instanceof Error?e.message:String(e))}finally{r=!1,n||$(!1)}}};if(i(),!s)return()=>{n=!0,e.abort()};let o=setInterval(()=>{"visible"===document.visibilityState&&i()},2e3);return()=>{n=!0,clearInterval(o),e.abort()}},[t,s,M]);let T=(0,i.useRef)(null),R=(0,i.useRef)(!0),L=(0,i.useRef)(null),A=(0,i.useRef)(!1),P=(0,i.useRef)(null);(0,i.useEffect)(()=>()=>P.current?.abort(),[]);let z=(0,i.useCallback)(async()=>{if(!v||A.current)return;A.current=!0;let e=new AbortController;P.current=e,k(!0);try{let n=await fetch(xm(t,v),{signal:e.signal,cache:"no-store"});if(!n.ok)throw Error(`HTTP ${n.status}`);let r=await n.json();if(y.current.oldestEntryId!==v)return;let i=T.current;L.current=i?i.scrollHeight-i.scrollTop:null,m(e=>{var t;return t=xg(r.context),e.oldestEntryId!==v?e:{messages:[...t.messages,...e.messages],entryIds:[...t.entryIds,...e.entryIds],oldestEntryId:t.oldestEntryId,hasMore:t.hasMore}})}catch{}finally{A.current=!1,P.current===e&&(P.current=null),e.signal.aborted||k(!1)}},[v,t]),W=(0,i.useCallback)(()=>{let e=T.current;e&&(R.current=e.scrollHeight-e.scrollTop-e.clientHeight<60)},[]);(0,i.useLayoutEffect)(()=>{let e=T.current,t=L.current;L.current=null,e&&(null!==t?e.scrollTop=e.scrollHeight-t:R.current&&(e.scrollTop=e.scrollHeight))},[g]);let O=(0,i.useMemo)(()=>(function(e){let t=new Map;for(let n of e)"toolResult"===n.role&&t.set(n.toolCallId,n);return t})(g),[g]),F=d?.relation?.kind==="subagent"?d.relation:null,D=s?"running":F?.status??"completed";return(0,r.jsxs)("div",{style:{height:"100%",display:"flex",flexDirection:"column",minWidth:0},children:[(0,r.jsxs)("div",{style:{display:"history"===a?"none":"flex",alignItems:"center",gap:8,padding:"6px 12px",borderBottom:"1px solid var(--border)",background:"var(--bg-panel)",flexShrink:0,minHeight:36},children:[(0,r.jsx)("span",{style:{display:"flex",alignItems:"center",color:"var(--accent)",flexShrink:0},"aria-hidden":"true",children:(0,r.jsxs)("svg",{width:"14",height:"14",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"1.8",strokeLinecap:"round",strokeLinejoin:"round",children:[(0,r.jsx)("rect",{x:"5",y:"7",width:"14",height:"11",rx:"2"}),(0,r.jsx)("path",{d:"M9 11h.01M15 11h.01M9 15h6M12 7V4M10 4h4"})]})}),(0,r.jsx)("strong",{style:{flex:1,minWidth:0,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",fontSize:12,fontWeight:600},title:F?`${F.profile??l("agentSwitcher.subagent")} \xb7 ${p}`:p,children:p}),(0,r.jsxs)("span",{style:{display:"flex",alignItems:"center",gap:5,color:xd(D),fontSize:11,whiteSpace:"nowrap",flexShrink:0},title:F?.description,children:[(0,r.jsx)(xu,{status:D}),(0,r.jsx)("span",{children:l(`agentSwitcher.status.${D}`)})]}),(0,r.jsx)("button",{type:"button",onClick:()=>I(e=>e+1),title:l("subagent.refresh"),"aria-label":l("subagent.refresh"),style:{display:"grid",placeItems:"center",width:24,height:24,flexShrink:0,background:"none",border:"none",borderRadius:4,color:"var(--text-dim)",cursor:"pointer",padding:0},onMouseEnter:e=>{e.currentTarget.style.color="var(--text)"},onMouseLeave:e=>{e.currentTarget.style.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",strokeLinejoin:"round","aria-hidden":"true",children:[(0,r.jsx)("path",{d:"M21 12a9 9 0 1 1-2.64-6.36"}),(0,r.jsx)("path",{d:"M21 3v6h-6"})]})})]}),(0,r.jsx)("div",{ref:T,onScroll:W,style:{flex:1,minHeight:0,overflowY:"auto",overflowX:"hidden",padding:"10px 0"},lang:c,children:"history"===a&&E&&0===g.length?(0,r.jsx)("div",{className:"workspace-empty",role:"status",style:{padding:"24px 16px"},children:l("history.loading")}):w?(0,r.jsx)("div",{style:{padding:"24px 16px",color:"var(--text-muted)",fontSize:12,textAlign:"center"},children:l("history"===a?"history.unavailable":s?"subagent.viewer.starting":"subagent.viewer.error")}):C&&0===g.length?(0,r.jsxs)("div",{role:"alert",style:{padding:"24px 16px",color:"#dc2626",fontSize:12,textAlign:"center"},children:[l("history"===a?"history.unavailable":"subagent.viewer.error"),(0,r.jsx)("div",{style:{marginTop:6,color:"var(--text-dim)",fontFamily:"var(--font-mono)",overflowWrap:"anywhere"},children:C})]}):(0,r.jsxs)(r.Fragment,{children:[b&&(0,r.jsx)("div",{style:{display:"flex",justifyContent:"center",padding:"4px 0 10px"},children:(0,r.jsx)("button",{type:"button",onClick:z,disabled:j,style:{fontSize:11,padding:"4px 12px",borderRadius:6,border:"1px solid var(--border)",background:"var(--bg-panel)",color:"var(--text-muted)",cursor:j?"default":"pointer"},children:l("i18n.loadMore")})}),g.map((e,n)=>(0,r.jsx)("div",{style:{padding:"2px 12px"},children:(0,r.jsx)(sR,{message:e,toolResults:O,cwd:d?.cwd,onOpenFile:o,sessionId:t,entryId:x[n]})},x[n]??n)),0===g.length&&!C&&(0,r.jsx)("div",{style:{padding:"24px 16px",color:"var(--text-dim)",fontSize:12,textAlign:"center"},children:l("history"===a?"history.empty":"subagent.viewer.empty")})]})})]})}var xv=n(63606),xb=n(8422);let xy="pi-web:terminal-theme",xj="dark",xk={dark:{background:"#111318",foreground:"#d7dce5",cursor:"#60a5fa",selectionBackground:"#365b8a",black:"#1d222b",red:"#f87171",green:"#4ade80",yellow:"#facc15",blue:"#60a5fa",magenta:"#c084fc",cyan:"#22d3ee",white:"#e5e7eb",brightBlack:"#6b7280",brightRed:"#fca5a5",brightGreen:"#86efac",brightYellow:"#fde047",brightBlue:"#93c5fd",brightMagenta:"#d8b4fe",brightCyan:"#67e8f9",brightWhite:"#ffffff"},light:{background:"#fbfbfc",foreground:"#24292f",cursor:"#2563eb",cursorAccent:"#fbfbfc",selectionBackground:"#bfd7fb",black:"#24292f",red:"#cf222e",green:"#116329",yellow:"#7d4e00",blue:"#0969da",magenta:"#8250df",cyan:"#1b7c83",white:"#6e7781",brightBlack:"#57606a",brightRed:"#a40e26",brightGreen:"#1a7f37",brightYellow:"#633c01",brightBlue:"#218bff",brightMagenta:"#a475f9",brightCyan:"#3192aa",brightWhite:"#8c959f"}};function xw(){try{var e;return e=window.localStorage.getItem(xy),"light"===e?"light":xj}catch{return xj}}let xS=null,xC=new Set;function xN(){return null===xS&&(xS=xw()),xS}function xE(){xC.forEach(e=>e())}function x$(e){if(null!==e.key&&e.key!==xy)return;let t=xw();t!==xS&&(xS=t,xE())}function xM(e){return 0===xC.size&&(window.addEventListener("storage",x$),xS=xw()),xC.add(e),()=>{xC.delete(e),0===xC.size&&window.removeEventListener("storage",x$)}}async function xI(e,t){let n=await fetch(e,{...t,signal:AbortSignal.timeout(15e3)}),r=await n.json().catch(()=>{throw Error(`Terminal request failed (HTTP ${n.status}): server returned an empty or invalid JSON response. Check the pi-web server log.`)});if(!r||"object"!=typeof r)throw Error(`Terminal request failed (HTTP ${n.status}): invalid JSON response. Check the pi-web server log.`);if(!n.ok)throw Error(r.error??`HTTP ${n.status}`);return r}let xT={ctrl:!1,alt:!1},xR=[["Escape","/","-","Home","ArrowUp","End","PageUp"],["Tab","ctrl","alt","ArrowLeft","ArrowDown","ArrowRight","PageDown"]],xL=new Set(["ArrowUp","ArrowDown","ArrowLeft","ArrowRight","PageUp","PageDown"]),xA={ArrowUp:"A",ArrowDown:"B",ArrowRight:"C",ArrowLeft:"D",Home:"H",End:"F"},xP={PageUp:5,PageDown:6};function xz(e){let{ctrl:t,alt:n}=e;return 1+2*!!n+4*!!t}function xW(e,t){if(!t.ctrl&&!t.alt||1!=[...e].length)return e;let n=t.ctrl?function(e){if(/^[a-z]$/i.test(e))return String.fromCharCode(31&e.toUpperCase().charCodeAt(0));let t=e.charCodeAt(0);return t>=64&&t<=95?String.fromCharCode(31&t):" "===e?"\0":"/"===e||"-"===e?"\x1f":"?"===e?"":e}(e):e;return t.alt?`\x1b${n}`:n}let xO={Escape:"ESC","/":"/","-":"-",Home:"HOME",ArrowUp:"↑",End:"END",PageUp:"PGUP",Tab:"TAB",ctrl:"CTRL",alt:"ALT",ArrowLeft:"↓",ArrowDown:"↓",ArrowRight:"↑",PageDown:"PGDN"},xF={ArrowUp:"Up",ArrowDown:"Down",ArrowLeft:"Left",ArrowRight:"Right",PageUp:"Page Up",PageDown:"Page Down"};function xD(e){let t=window.matchMedia("(pointer: coarse)");return t.addEventListener("change",e),window.screen.orientation?.addEventListener("change",e),window.addEventListener("orientationchange",e),window.addEventListener("resize",e),()=>{t.removeEventListener("change",e),window.screen.orientation?.removeEventListener("change",e),window.removeEventListener("orientationchange",e),window.removeEventListener("resize",e)}}let xB=()=>window.matchMedia("(pointer: coarse)").matches&&function(){let e=window.screen.orientation?.type;if(e)return e.startsWith("portrait");let t=window.orientation;return"number"==typeof t?t%180==0:window.innerHeight>=window.innerWidth}();function x_(e){let{modifiers:t,onKey:n,onToggleModifier:s}=e,{t:o}=(0,eG.s)(),a=(0,i.useRef)(null),l=()=>{null!==a.current&&window.clearTimeout(a.current),a.current=null};return(0,i.useEffect)(()=>l,[]),(0,r.jsx)("div",{className:"terminal-extra-keys",role:"toolbar","aria-label":o("terminal.extraKeys"),children:xR.flat().map(e=>{let i="ctrl"===e||"alt"===e;return(0,r.jsx)("button",{type:"button",tabIndex:-1,className:i&&t[e]?"is-active":void 0,"aria-pressed":i?t[e]:void 0,"aria-label":i?void 0:xF[e],onPointerDown:t=>((e,t)=>{if(e.preventDefault(),0!==e.button)return;if(l(),"ctrl"===t||"alt"===t)return void s(t);if(n(t),!xL.has(t))return;let r=()=>{n(t),a.current=window.setTimeout(r,50)};a.current=window.setTimeout(r,400)})(t,e),onPointerUp:l,onPointerCancel:l,onPointerLeave:l,onMouseDown:e=>e.preventDefault(),onContextMenu:e=>e.preventDefault(),children:"ArrowLeft"===e||"ArrowRight"===e?(0,r.jsx)("span",{className:"is-rotated",children:xO[e]}):xO[e]},e)})})}function xH(e){let{tab:t,active:n,onRestart:s,onClosed:o,onCloseError:a}=e,{t:l}=(0,eG.s)(),{id:c,cwd:d,restored:u}=t,p=(0,i.useRef)(null),h=(0,i.useRef)(null),f=(0,i.useRef)(Promise.resolve()),m=(0,i.useRef)(null),g=(0,i.useRef)({onClosed:o,onCloseError:a});g.current={onClosed:o,onCloseError:a};let[x,v]=(0,i.useState)("connecting"),[b,y]=(0,i.useState)(null),[j,k]=(0,i.useState)(null),[w,S]=(0,i.useState)(0),[C,N]=(0,i.useState)(xT),E=(0,i.useRef)(C),$=(0,i.useSyncExternalStore)(xD,xB,()=>!1),M=(0,i.useSyncExternalStore)(xM,xN,()=>xj),I=(0,i.useRef)(M);I.current=M;let T=(0,i.useCallback)(()=>{let e=E.current;return(e.ctrl||e.alt)&&(E.current=xT,N(xT)),e},[]);(0,i.useEffect)(()=>{var e;let t,n,r,i,s,o=p.current;if(!o)return;let a=!1,l=null,g=!1,x=!1,b=!1;v("connecting"),y(null),k(null);let j=()=>{let e=getComputedStyle(o);return{fontFamily:e.getPropertyValue("--font-mono").trim()||"monospace",fontWeight:oD(e.getPropertyValue("--font-mono-weight"))}},S=new xb.B({cursorBlink:!0,...j(),fontSize:13,lineHeight:1.25,scrollback:8e3,screenReaderMode:!0,disableStdin:!0,theme:xk[I.current]});h.current=S;let C=new xv.Y;S.loadAddon(C),S.open(o),S.attachCustomKeyEventHandler(e=>{if("keydown"!==e.type)return!0;let t=e.key.toLowerCase();return!((e.ctrlKey||e.metaKey)&&"v"===t||(e.ctrlKey||e.metaKey)&&"c"===t&&S.hasSelection())});let N=(e=e=>{a||(b=!0,S.options.disableStdin=!0,y(e.message),v("error"))},n=Promise.resolve(),r=!1,i=null,s=t=>{r||(n=n.then(async()=>{r||(t===i&&(i=null),await xI(`/api/terminal/${encodeURIComponent(c)}`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(t)}))}).catch(t=>{r=!0,e(t)}))},{write(e){if(!r)for(let t of e.match(/[\s\S]{1,32768}/gu)??[])i&&i.data.length+t.length<=65536?i.data+=t:s(i={type:"input",data:t})},resize(e,t){i=null,s({type:"resize",cols:e,rows:t})},stop:()=>(r=!0,i=null,n)});m.current=N;let E=S.onData(e=>{!g||x||b||N.write(xW(e,T()))}),$=()=>{o.offsetWidth&&o.offsetHeight&&C.fit()},M=S.onResize(e=>{let{cols:t,rows:n}=e;!g||x||b||N.resize(Math.max(2,t),Math.max(2,n))}),R=new ResizeObserver($);R.observe(o);let L=oX(()=>{if(a)return;let e=j();S.options.fontFamily=e.fontFamily,S.options.fontWeight=e.fontWeight,$()}),A=()=>{a||x||!navigator.onLine||(l?.close(),(l=new EventSource(`/api/terminal/${encodeURIComponent(c)}/events${void 0===t?"":`?after=${t}`}`)).onmessage=e=>{let n=JSON.parse(e.data);if("output"===n.type){if(n.reset)S.reset();else if(void 0!==t&&n.offset<=t)return;S.write(n.data),t=n.offset}else x=!0,g=!1,S.options.disableStdin=!0,l?.close(),k("exit"===n.type?n.exitCode:null),v("exited")},l.onopen=()=>{g=!0,!b&&(S.options.disableStdin=!1,v("ready"),$(),N.resize(Math.max(2,S.cols),Math.max(2,S.rows)),o.offsetWidth&&o.offsetHeight&&S.focus())},l.onerror=()=>{a||x||(g=!1,S.options.disableStdin=!0,v(l?.readyState===EventSource.CLOSED?"error":"connecting"))})};f.current=(async()=>{$(),u||w>0?await xI(`/api/terminal/${encodeURIComponent(c)}`):await xI("/api/terminal",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({id:c,cwd:d,cols:S.cols,rows:S.rows})}),A()})().catch(e=>{a||(y(e.message),v("error"))});let P=()=>{g=!1,S.options.disableStdin=!0,l?.close(),x||b||v("connecting")},z=e=>{e.persisted&&A()};return window.addEventListener("pagehide",P),window.addEventListener("pageshow",z),window.addEventListener("offline",P),window.addEventListener("online",A),()=>{a=!0,l?.close(),N.stop(),R.disconnect(),L(),E.dispose(),M.dispose(),window.removeEventListener("pagehide",P),window.removeEventListener("pageshow",z),window.removeEventListener("offline",P),window.removeEventListener("online",A),S.dispose(),h.current=null}},[c,d,u,w,T]),(0,i.useEffect)(()=>{h.current&&(h.current.options.theme=xk[M])},[M]),(0,i.useEffect)(()=>{n&&h.current?.focus()},[n]),(0,i.useEffect)(()=>{if(!t.closing)return;let e=!1;return h.current&&(h.current.options.disableStdin=!0),(async()=>{await f.current,await m.current?.stop(),await xI(`/api/terminal/${encodeURIComponent(c)}`,{method:"DELETE",keepalive:!0}),e||g.current.onClosed()})().catch(t=>{e||(y(t.message),v("error"),g.current.onCloseError())}),()=>{e=!0}},[c,t.closing]);let R="dark"===M?"light":"dark",L="light"===R?"terminal.lightTheme":"terminal.darkTheme";return(0,r.jsxs)("section",{className:"terminal-panel","data-terminal-theme":M,"aria-label":l("terminal.title"),children:[(0,r.jsxs)("header",{className:"terminal-panel-header",children:[(0,r.jsxs)("div",{className:"terminal-panel-path",children:[(0,r.jsx)("span",{className:`terminal-status-dot is-${x}`,title:l(`terminal.${x}`)}),(0,r.jsx)("span",{title:d,children:d})]}),(0,r.jsxs)("div",{className:"terminal-panel-actions",children:["error"===x&&(0,r.jsx)("button",{type:"button",onClick:()=>S(e=>e+1),disabled:!!t.closing,title:l("terminal.reconnect"),"aria-label":l("terminal.reconnect"),children:(0,r.jsx)("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:"M10 13a5 5 0 0 0 7 0l3-3a5 5 0 0 0-7-7l-2 2M14 11a5 5 0 0 0-7 0l-3 3a5 5 0 0 0 7 7l2-2"})})}),(0,r.jsx)("button",{type:"button",onClick:()=>(function(e){if(e!==xN()){xS=e;try{window.localStorage.setItem(xy,e)}catch{}xE()}})(R),title:l(L),"aria-label":l(L),children:"light"===R?(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:"4"}),(0,r.jsx)("path",{d:"M12 2v2M12 20v2M4.93 4.93l1.41 1.41M17.66 17.66l1.41 1.41M2 12h2M20 12h2M6.34 17.66l-1.41 1.41M19.07 4.93l-1.41 1.41"})]}):(0,r.jsx)("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:"M21 12.79A9 9 0 1 1 11.21 3 7 7 0 0 0 21 12.79z"})})}),(0,r.jsx)("button",{type:"button",onClick:s,disabled:!!t.closing,title:l("terminal.restart"),"aria-label":l("terminal.restart"),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:"M20 11a8 8 0 1 0-2.34 5.66"}),(0,r.jsx)("polyline",{points:"20 4 20 11 13 11"})]})})]})]}),(0,r.jsxs)("div",{children:[b&&(0,r.jsx)("div",{className:"terminal-panel-error",role:"alert",children:b}),"exited"===x&&(0,r.jsx)("div",{className:"terminal-panel-exit",role:"status",children:null===j?l("terminal.exited"):l("terminal.exitCode",{code:j})})]}),(0,r.jsx)("div",{className:"terminal-xterm",children:(0,r.jsx)("div",{ref:p,className:"terminal-xterm-host"})}),$&&(0,r.jsx)(x_,{modifiers:C,onKey:e=>{let t=h.current;if(!t)return;let n=function(e,t,n){let r=t.ctrl||t.alt,i=xA[e];if(i)return r?`\x1b[1;${xz(t)}${i}`:n?`\x1bO${i}`:`\x1b[${i}`;let s=xP[e];return s?r?`\x1b[${s};${xz(t)}~`:`\x1b[${s}~`:"Escape"===e?t.alt?"\x1b\x1b":"\x1b":"Tab"===e?t.alt?"\x1b ":" ":xW(e,t)}(e,T(),t.modes.applicationCursorKeysMode);t.input(n,!0)},onToggleModifier:e=>{let t={...E.current,[e]:!E.current[e]};E.current=t,N(t)}})]})}let xU="pi-web:terminal-tabs";function xK(e){return{id:Array.from(crypto.getRandomValues(new Uint8Array(16)),e=>e.toString(16).padStart(2,"0")).join(""),cwd:e}}function xq(){let e=document.activeElement;return e instanceof HTMLElement&&(e.isContentEditable||"INPUT"===e.tagName||"SELECT"===e.tagName||"TEXTAREA"===e.tagName)}let xZ=[48,120,240,420,720];function xV(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:document;return"visible"!==e.visibilityState||!e.hasFocus()}async function xJ(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{createWindowNotification:(e,t)=>new Notification(e,t),getServiceWorkerRegistration:"serviceWorker"in navigator?()=>navigator.serviceWorker.getRegistration():null},n={body:e.body,...e.tag?{tag:e.tag,renotify:!0}:{}};if(t.getServiceWorkerRegistration)try{let r=await t.getServiceWorkerRegistration();if(r)return await r.showNotification(e.title,{...n,data:{url:e.sessionUrl}}),"service-worker"}catch{}try{let r=t.createWindowNotification(e.title,n);return r.onclick=()=>{r.close(),e.onClick()},"window"}catch{return null}}let xY="pi-web:tab-open-session";function xG(){try{return window.sessionStorage}catch{return null}}function xX(e){if("string"!=typeof e||0===e.length)return null;if(e.startsWith("{"))try{let t=JSON.parse(e);if(!t||"object"!=typeof t||Array.isArray(t))return null;if("session"===t.kind&&"string"==typeof t.sessionId&&t.sessionId)return{kind:"session",sessionId:t.sessionId};if("new"===t.kind&&"string"==typeof t.cwd&&t.cwd.trim())return{kind:"new",cwd:t.cwd};return null}catch{return null}return{kind:"session",sessionId:e}}function xQ(e,t){t.setItem(xY,JSON.stringify(e))}let x0=new Set(a5.kU);function x1(e){return`parked-new:${e}`}function x2(e){let t=e.at(-1);return t?`agent:${t.sessionId}`:null}function x4(){let e,t,n,a,c,d,g,x,v,b,y,j,k=(0,s.useRouter)(),w=(0,s.useSearchParams)(),[S,C]=(0,i.useState)(()=>(function(e){if("1"===e.get("home"))return{home:!0,requestedCwd:null,sessionId:null,sidebarCollapsed:"collapsed"===e.get("sidebar")};let t=e.get("cwd")?.trim()||null;return{requestedCwd:t,sessionId:t?null:e.get("session")||null,sidebarCollapsed:"collapsed"===e.get("sidebar")}})(w)),[N,E]=(0,i.useState)(()=>!S.sessionId&&!S.requestedCwd);iH(),o4();let{locale:$,t:M}=(0,eG.s)(),I=e5(),T=(0,i.useSyncExternalStore)(e8,e3,e6),R=(0,i.useSyncExternalStore)(e7,te,e6),[L,A]=(0,i.useState)(null);(0,i.useEffect)(()=>{let e=window.visualViewport;if(!e)return;let t=document.documentElement,n=null,r=new Set,i=!1,s=()=>{n=null,function(e){let{hasFocusedEditable:t,innerHeight:n,viewportHeight:r,viewportScale:i}=e;return!!t&&n/(i>0?i:1)-r>60}({hasFocusedEditable:xq(),innerHeight:window.innerHeight,viewportHeight:e.height,viewportScale:e.scale})?(t.style.setProperty("--app-viewport-height",`${e.height}px`),t.dataset.keyboardOpen="true"):(t.style.removeProperty("--app-viewport-height"),delete t.dataset.keyboardOpen);let r=0!==window.scrollX||0!==window.scrollY,i=.01>Math.abs(e.scale-1);r&&i&&window.scrollTo(0,0)},o=()=>{null!==n&&window.cancelAnimationFrame(n),n=window.requestAnimationFrame(s),(()=>{if(i)return;i=!0;let e=0,t=()=>{if(e>=xZ.length){i=!1;return}let n=xZ[e++],o=window.setTimeout(()=>{r.delete(o),s(),t()},n);r.add(o)};t()})()},a=()=>{xq()&&o()};return o(),e.addEventListener("resize",o),e.addEventListener("scroll",o),window.addEventListener("resize",o),window.addEventListener("focusin",o),window.addEventListener("focusout",o),window.addEventListener("pageshow",o),document.addEventListener("compositionstart",a),document.addEventListener("compositionupdate",a),document.addEventListener("compositionend",a),document.addEventListener("input",a),document.addEventListener("keyup",a),()=>{for(let t of(e.removeEventListener("resize",o),e.removeEventListener("scroll",o),window.removeEventListener("resize",o),window.removeEventListener("focusin",o),window.removeEventListener("focusout",o),window.removeEventListener("pageshow",o),document.removeEventListener("compositionstart",a),document.removeEventListener("compositionupdate",a),document.removeEventListener("compositionend",a),document.removeEventListener("input",a),document.removeEventListener("keyup",a),null!==n&&window.cancelAnimationFrame(n),r))window.clearTimeout(t);r.clear(),t.style.removeProperty("--app-viewport-height"),delete t.dataset.keyboardOpen}},[]),(0,i.useEffect)(()=>{"Notification"in window&&"granted"===Notification.permission&&dc($)},[$]);let{soundEnabled:P,onSoundToggle:z,playDoneSound:W,unlockAudio:O,holdAudio:F,soundEnabledRef:D}=function(){let[e,t]=(0,i.useState)(()=>{try{let e=localStorage.getItem("pi-sound-enabled");return null===e||"true"===e}catch{return!0}}),n=(0,i.useRef)(e);(0,i.useEffect)(()=>{n.current=e},[e]);let r=(0,i.useRef)(null),s=(0,i.useCallback)(()=>{if(r.current&&"closed"!==r.current.state)return r.current;try{r.current=new AudioContext}catch{return null}return r.current},[]),o=(0,i.useRef)(0),a=(0,i.useRef)(0),l=(0,i.useRef)(void 0),c=(0,i.useCallback)(e=>{clearTimeout(l.current),l.current=setTimeout(()=>{0===o.current&&0===a.current&&e.suspend().catch(()=>{})},1e3)},[]),d=(0,i.useCallback)((e,t)=>{o.current++,e.resume().then(t).catch(()=>{}).then(()=>{o.current--,c(e)})},[c]),u=(0,i.useCallback)(function(){let e=arguments.length>0&&void 0!==arguments[0]&&arguments[0];if(!e&&!n.current)return;let t=s();t&&"running"!==t.state&&d(t,()=>{})},[s,d]),p=(0,i.useCallback)(()=>{let e=!n.current;e?u(!0):r.current?.suspend().catch(()=>{}),n.current=e;try{localStorage.setItem("pi-sound-enabled",String(e))}catch{}t(e)},[u]),h=(0,i.useCallback)(()=>{if(a.current++,clearTimeout(l.current),n.current){let e=s();e&&"running"!==e.state&&d(e,()=>{})}let e=!1;return()=>{!e&&(e=!0,a.current--,r.current&&c(r.current))}},[s,d,c]);return{soundEnabled:e,onSoundToggle:p,playDoneSound:(0,i.useCallback)(()=>{if(!n.current)return;let e=s();if(!e)return;let t=Date.now();d(e,()=>{if(n.current&&!(Date.now()-t>3e3))try{let t;t=e.currentTime,[523.25,659.25].forEach((n,r)=>{let i=e.createOscillator(),s=e.createGain();i.connect(s),s.connect(e.destination),i.type="sine",i.frequency.value=n;let o=t+.18*r;s.gain.setValueAtTime(0,o),s.gain.linearRampToValueAtTime(.18,o+.02),s.gain.exponentialRampToValueAtTime(.001,o+.45),i.start(o),i.stop(o+.45)})}catch{}})},[s,d]),unlockAudio:u,holdAudio:h,soundEnabledRef:n}}(),[B,_]=(0,i.useState)(!1);(0,i.useEffect)(()=>{try{_("true"===localStorage.getItem("pi-quote-selection-enabled"))}catch{}},[]);let H=(0,i.useCallback)(e=>{_(e);try{localStorage.setItem("pi-quote-selection-enabled",String(e))}catch{}},[]),U=(0,i.useRef)(new Set),K=(0,i.useCallback)(()=>{D.current&&W()},[W,D]),[q,Z]=(0,i.useState)(null),V=(0,i.useRef)(q);V.current=q;let[J,Y]=(0,i.useState)([]),[G,X]=(0,i.useState)({entries:[],loaded:!1,error:null}),[Q,ee]=(0,i.useState)(null),et=(0,i.useMemo)(()=>{let e=new Set(G.entries.map(e=>e.session.id));return J.filter(t=>!e.has(t.id))},[G.entries,J]),en=(0,i.useCallback)(e=>{Y(e),Z(t=>{if(!t)return t;let n=e.find(e=>e.id===t.id);return n?{...t,...n,detailsPending:n.detailsPending,relation:n.relation,branch:n.branch,isWorktree:n.isWorktree}:t})},[]),er=(0,i.useMemo)(()=>q?[...J.filter(e=>e.id!==q.id),q]:J,[q,J]),ei=(0,i.useMemo)(()=>{var e;return(e=q?.id)?l(er).find(t=>t.root.id===e||t.subagents.some(t=>t.id===e))??null:null},[q?.id,er]),es=!!ei?.subagents.length,[eo,ea]=(0,i.useState)(()=>new Set),el=(0,i.useCallback)(e=>{ea(t=>t.size===e.size&&[...e].every(e=>t.has(e))?t:e)},[]),[ec,eu]=(0,i.useState)(null),[ep,eh]=(0,i.useState)("initial"),ef=(0,i.useRef)(null),em=(0,i.useRef)(null),[eg,ev]=(0,i.useState)(null),eb=(0,i.useRef)(null),ey=(0,i.useCallback)(e=>{e&&e.cwd===eb.current?.cwd&&(eb.current=null),ev(e)},[]),ej=(0,i.useRef)(null),ek=(0,i.useRef)(null),[ew,eS]=(0,i.useState)(null),eC=(0,i.useCallback)(e=>{ek.current=e,eS(null)},[]),[eN,eE]=(0,i.useState)(()=>S.requestedCwd?"validating":"idle"),[e$,eM]=(0,i.useState)(null),[eI,eT]=(0,i.useState)(0),[eR,eL]=(0,i.useState)(0),eA=(0,i.useRef)(new Map),eP=(0,i.useCallback)((e,t)=>{eA.current.set(e,t)},[]),[ez,eW]=(0,i.useState)(null),eO=(0,i.useCallback)(e=>{eW(t=>t===e?null:t)},[]),[eF,eB]=(0,i.useState)(0),[e_,eH]=(0,i.useState)(null),[eU,eK]=(0,i.useState)(0),eq=(0,i.useRef)(!1);(0,i.useEffect)(()=>{eq.current&&!e_&&eK(e=>e+1),eq.current=null!==e_},[e_]);let[eZ,eV]=(0,i.useState)(null),[eJ,eY]=(0,i.useState)(!1),[eX,eQ]=(0,i.useState)(!1),[e0,e1]=(0,i.useState)(null),[e2,e4]=(0,i.useState)(()=>!S.sidebarCollapsed),e9=(0,i.useRef)(!S.sidebarCollapsed),tn=(0,i.useRef)(null),ti=(0,i.useRef)(null),[ts,to]=(0,i.useState)(!1),[ta,tl]=(0,i.useState)(null),tc=R&&null===ta,[td,tu]=(0,i.useState)(!1),[tp,th]=(0,i.useState)("file"),tf=ts&&td&&R,tm=tf&&"file"===tp,tg=tf&&"conversation"===tp,tx=R&&ts,[tv,tb]=(0,i.useState)(!1),ty=R&&tv,tj=(0,i.useRef)(null),tk=(0,i.useRef)(null);(0,i.useEffect)(()=>{tc&&tb(!1)},[tc]);let tw=(0,i.useCallback)(()=>{th("file"),tb(!ty),tj.current?.focus({preventScroll:!0})},[ty]);(0,i.useEffect)(()=>{ts&&R||tu(!1)},[ts,R]);let[tS,tC]=(0,i.useState)(!1),[tN,tE]=(0,i.useState)(!1),t$=(0,i.useRef)(260),tM=(0,i.useRef)(560),tI=(0,i.useRef)(320),tT=(0,i.useCallback)(()=>window.innerWidth>=1200?Math.round(.48*window.innerWidth):tt(.42*window.innerWidth,360,640),[]),tR=(0,i.useCallback)(()=>(function(e){let{viewportWidth:t,rightPanelOpen:n,rightPanelWidth:r}=e;if(t<=640)return 480;let i=t<960;return Math.min(480,t-(i?320:420)-(!i&&n?r:0))})({viewportWidth:window.innerWidth-62*(window.innerWidth>640),rightPanelOpen:ts,rightPanelWidth:tM.current}),[ts]),tL=(0,i.useCallback)(()=>(function(e){let{viewportWidth:t,sidebarOpen:n,sidebarWidth:r}=e;return t<960?1200:Math.min(1200,t-420-(n?r:0))})({viewportWidth:window.innerWidth-62*(window.innerWidth>640),sidebarOpen:e2,sidebarWidth:t$.current}),[e2]),tA=tr({ariaLabel:M("layout.resizeSidebar"),cssVariable:"--sidebar-width",defaultWidth:260,getMaxWidth:tR,growthDirection:"right",maxWidth:480,minWidth:180,collapseAt:120,onCollapse:(0,i.useCallback)(()=>{e9.current=!1,e4(!1)},[]),storageKey:"pi-sidebar-width",widthRef:t$}),tP=tr({ariaLabel:M("layout.resizeFilePanel"),cssVariable:"--right-panel-width",defaultWidth:560,getDefaultWidth:tT,getMaxWidth:tL,growthDirection:"left",maxWidth:1200,minWidth:R?520:300,storageKey:"pi-right-panel-width",widthRef:tM}),tz=tr({ariaLabel:M("layout.resizeFileTree"),cssVariable:"--workbench-tree-width",defaultWidth:320,minWidth:200,maxWidth:640,getMaxWidth:(0,i.useCallback)(()=>Math.max(200,Math.min(640,tM.current-280)),[]),growthDirection:"left",persistClamp:!1,collapseAt:120,onCollapse:(0,i.useCallback)(()=>{tb(!0),requestAnimationFrame(()=>tk.current?.focus({preventScroll:!0}))},[]),storageKey:"pi-workbench-file-tree-width",widthRef:tI}),tW=tz.panelRef,tB=function(e,t,n){let[r,s]=(0,i.useState)(!1),o=(0,i.useRef)(void 0),a=(0,i.useCallback)(()=>{clearTimeout(o.current),o.current=void 0},[]),l=(0,i.useCallback)(()=>{a(),s(!1)},[a]),c=(0,i.useCallback)(()=>{a(),e&&!r&&(o.current=setTimeout(()=>s(!0),120))},[a,e,r]),d=(0,i.useCallback)(()=>{a(),e&&(o.current=setTimeout(()=>{let e=document.activeElement;document.querySelector(".sidebar-menu, .sidebar-sheet")||e&&t.current?.contains(e)&&e.matches("input, textarea, [contenteditable=true], :focus-visible")||s(!1)},280))},[a,e,t]);return(0,i.useEffect)(()=>{e||l()},[e,l]),(0,i.useEffect)(()=>a,[a]),(0,i.useEffect)(()=>{if(!e||!r)return;let i=e=>e instanceof Element&&(t.current?.contains(e)||n.current?.contains(e)||e.closest(".sidebar-menu, .sidebar-sheet, [data-sidebar-restore]")),s=e=>{i(e.target)?a():d()},o=e=>{i(e.target)||l()},c=e=>{"Escape"!==e.key||document.querySelector(".sidebar-menu, .sidebar-sheet")||(e.preventDefault(),e.stopPropagation(),l(),n.current?.focus({preventScroll:!0}))};return document.addEventListener("pointermove",s),document.addEventListener("pointerdown",o,!0),document.addEventListener("keydown",c,!0),()=>{document.removeEventListener("pointermove",s),document.removeEventListener("pointerdown",o,!0),document.removeEventListener("keydown",c,!0)}},[a,l,e,r,t,d,n]),{open:e&&r,show:c,cancel:a,scheduleHide:d,dismiss:l}}(!I&&!e2,tA.panelRef,ti),t_=tB.dismiss,tH=tP.panelRef,tU=(0,i.useCallback)(e=>{tH.current=e?.parentElement,tW.current=e},[tH,tW]),tK=(0,i.useCallback)(e=>{A(e)},[]),tq=tz.reclampWidth;(0,i.useEffect)(()=>{tq()},[tP.width,tq]);let tZ=tA.reclampWidth,tV=tP.reclampWidth;(0,i.useEffect)(()=>{e4(!I&&e9.current)},[I]),(0,i.useEffect)(()=>{tE(!0)},[]),(0,i.useEffect)(()=>{ts&&(tZ(),tV())},[tV,tZ,ts,tz.width]);let tJ=(0,i.useRef)(null),[tY,tG]=(0,i.useState)(null),tX=(0,i.useRef)(null),tQ=(0,i.useRef)(null),[t0,t1]=(0,i.useState)([]),[t2,t4]=(0,i.useState)(null),[t8,t3]=(0,i.useState)(!1),t6=(0,i.useRef)(null),t5=xe(t0),t9=(0,i.useCallback)((e,t,n,r)=>{t1(e),t4(t),t3(r),t6.current=n},[]),ne=(0,i.useCallback)(e=>{!t8&&t6.current&&(t6.current(e),n$(null))},[t8]),[nt,nn]=(0,i.useState)(null),[nr,ni]=(0,i.useState)(null),[ns,no]=(0,i.useState)(!1),na=(0,i.useRef)(null),nl=(0,i.useRef)(0),nc=(0,i.useRef)(null),nd=(0,i.useCallback)(e=>{nn(e),no(!1)},[]),nu=(0,i.useCallback)(e=>{ni(e)},[]),np=(0,i.useCallback)(e=>{nl.current+=1,na.current=e,no(!1)},[]),[nh,nf]=(0,i.useState)(null),[nm,ng]=(0,i.useState)({kind:"idle"}),nx=(0,i.useRef)(null),nv=(0,i.useRef)(q?.id??null);nv.current=q?.id??null;let nb=(0,i.useCallback)(e=>{nf(e)},[]),[ny,nj]=(0,i.useState)(null),nk=(0,i.useRef)(null),nw=(0,i.useCallback)((e,t)=>{iV(t).then(()=>{nk.current&&clearTimeout(nk.current),nj(e),nk.current=setTimeout(()=>nj(null),1400)})},[]);(0,i.useEffect)(()=>()=>{nk.current&&clearTimeout(nk.current),nx.current&&clearTimeout(nx.current)},[]);let[nS,nC]=(0,i.useState)(null),nN=(0,i.useCallback)(e=>{nC(e)},[]),[nE,n$]=(0,i.useState)(null),[nM,nI]=(0,i.useState)(0),nT=(0,i.useRef)(null),nR=(0,i.useRef)(null);(0,i.useLayoutEffect)(()=>{nE&&!e_&&nR.current?.focus({preventScroll:!0})},[nE,e_]),(0,i.useEffect)(()=>{if(nE&&!e_)return eD(document,()=>n$(null))},[nE,e_]),(0,i.useEffect)(()=>{e_&&(n$(null),tC(!1),I&&e4(!1))},[e_,I]);let nL=(0,i.useCallback)(e=>{th("conversation"),I&&e4(!1),eH(null),n$(t=>t===e?null:e),tC(!1)},[I]),nA=(0,i.useCallback)(e=>{let t=nE!==e;if(nL(e),!t||ns)return;let n=na.current;if(!n)return;let r=++nl.current;no(!0),n().catch(e=>{console.error("Failed to load system information:",e)}).finally(()=>{nl.current===r&&no(!1)})},[nE,ns,nL]),nP=(0,i.useCallback)(()=>{th("conversation"),I&&e4(!1),tC(!1),n$("session")},[I]),nz=(0,i.useCallback)(e=>{th("conversation"),t_(),eH(e)},[t_]),nW=(0,i.useCallback)(()=>{t_(),I&&tC(!1),e4(e=>{let t=!e;return I||(e9.current=t),t})},[t_,I]),nO=(0,i.useCallback)(()=>{e4(!1),n$(null),tC(e=>!e)},[]),nF=(0,i.useCallback)(()=>{I&&(e4(!1),n$(null),tC(!1)),to(!ts)},[I,ts]),nD=(0,i.useCallback)(()=>{to(!1),tX.current?.querySelector(".workspace-files-toggle:not([aria-hidden='true'])")?.focus({preventScroll:!0})},[]),nB=(0,i.useCallback)(()=>{n$(null),th("file"),tu(e=>!e)},[]);(0,i.useEffect)(()=>{if(!tS)return;let e=e=>{let t=tQ.current;t&&e.composedPath().includes(t)||tC(!1)},t=e=>{"Escape"===e.key&&(e.preventDefault(),e.stopPropagation(),tC(!1))};return document.addEventListener("pointerdown",e,!0),document.addEventListener("keydown",t,!0),()=>{document.removeEventListener("pointerdown",e,!0),document.removeEventListener("keydown",t,!0)}},[tS]),(0,i.useEffect)(()=>{tC(!1)},[I,T,q?.id,ep]);let[n_,nH]=(0,i.useState)([]),nU=(0,i.useRef)(new Map),[nK,nq]=(0,i.useState)(0),nZ=(0,i.useRef)(0),[nV,nJ]=(0,i.useState)([]),[nY,nG]=(0,i.useState)(!1),[nX,nQ]=(0,i.useState)([]),n0=[...n_,...nV.map(e=>({id:e.id,label:ed(e.cwd)||e.cwd,filePath:e.cwd,kind:"terminal",closing:!!e.closing})),...nX.map(e=>({id:`agent:${e.sessionId}`,label:e.label,filePath:e.label,kind:"agent"}))];(0,i.useEffect)(()=>{try{let e=function(e){try{let t=JSON.parse(e??"null"),n=[];for(let e of Array.isArray(t?.tabs)?t.tabs:[])e&&"string"==typeof e.id&&/^[a-f0-9]{32}$/.test(e.id)&&"string"==typeof e.cwd&&e.cwd.trim()&&!n.some(t=>t.id===e.id||t.cwd===e.cwd)&&n.push({id:e.id,cwd:e.cwd,restored:!0});return{tabs:n,activeId:n.some(e=>e.id===t.activeId)?t.activeId:null,open:t?.open===!0}}catch{return{tabs:[],activeId:null,open:!1}}}(window.sessionStorage.getItem(xU));nJ(e.tabs),e.activeId&&(tl(e.activeId),to(e.open))}catch{}nG(!0)},[]),(0,i.useEffect)(()=>{if(nY)try{window.sessionStorage.setItem(xU,JSON.stringify({tabs:nV.map(e=>{let{id:t,cwd:n}=e;return{id:t,cwd:n}}),activeId:ta,open:ts}))}catch{}},[nV,ta,ts,nY]);let n1=(0,i.useCallback)((e,t,n,r)=>{e!==nZ.current?function(e,t,n,r,i){for(let[s,o]of e)if(o.generation===t)return void e.set(s,{...o,tabs:gX(o.tabs,n,r,i)})}(nU.current,e,t,n,r):nH(e=>gX(e,t,n,r))},[]),n2=(0,i.useCallback)((e,t)=>{if(e===t)return;let n=ta?.startsWith("file:")?ta:null,r=function(e,t,n,r,i){if(t===n)return r;t&&e.set(t,{...r,generation:i});let s=e.get(n);return s?(e.delete(n),{tabs:s.tabs,activeTabId:s.activeTabId,open:s.open}):{tabs:[],activeTabId:null,open:!1}}(nU.current,e,t,{tabs:n_,activeTabId:n,open:ts&&!!n},nZ.current);nZ.current+=1,nq(nZ.current),nH(r.tabs),nQ([]),(!ta||n||ta.startsWith("agent:"))&&(tl(r.activeTabId),to(r.open))},[ta,n_,ts]),n4=(0,i.useCallback)((e,t)=>{tJ.current?.insertText(t7(e,t)),I&&(to(!1),e4(!1))},[I]),n8=(0,i.useCallback)(e=>{let t=e.map(e=>t7(e,!1)).join("");t&&tJ.current?.insertText(t),I&&(to(!1),e4(!1))},[I]),n3=(0,i.useCallback)((e,t,n)=>{let r,i,s,o;tJ.current?.insertText((r=Math.max(1,Math.min(t,n)),i=Math.max(1,Math.max(t,n)),s=e.includes(" ")?`@"${e}"`:`@${e}`,o=r===i?`:${r}`:`:${r}-${i}`,`${s}${o} `)),I&&(to(!1),e4(!1))},[I]),n6=S.sessionId,n5=S.sessionFromTab?null:S.sessionId,[n9,n7]=(0,i.useState)(null),re=(0,i.useRef)(null),[rt,rn]=(0,i.useState)(()=>!n6);(0,i.useLayoutEffect)(()=>{var e;let t=(e=function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:xG();if(!e)return null;try{return xX(e.getItem(xY))}catch{return null}}(),S.home||S.requestedCwd||S.sessionId||!e?S:"session"===e.kind?{...S,sessionId:e.sessionId,sessionFromTab:!0}:{...S,requestedCwd:e.cwd});t!==S&&(C(t),t.sessionId&&rn(!1))},[S]);let rr=(0,i.useRef)(!1),ri=(0,i.useRef)(!1),ro=(0,i.useRef)(0),ra=(0,i.useCallback)(()=>{ro.current+=1},[]);(0,i.useEffect)(()=>{if(q){!function(e,t){let n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:p();if(n)try{let r=h(n);r[e]=t,n.setItem(u,JSON.stringify(r))}catch{}}(q.projectKey??re.current??m(q),q.id),function(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:xG();if(t&&e)try{xQ({kind:"session",sessionId:e},t)}catch{}}(q.id);return}ec&&function(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:xG(),n=e.trim();if(t&&n)try{xQ({kind:"new",cwd:n},t)}catch{}}(ec)},[ec,q]),(0,i.useEffect)(()=>{let e=S.requestedCwd;if(!e)return;let t=new AbortController,n=ro.current;return eE("validating"),eM(null),fetch("/api/cwd/validate",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({cwd:e}),signal:t.signal}).then(async r=>{let i=await r.json().catch(()=>({}));if(!r.ok||!i.cwd)throw Error(i.error??`HTTP ${r.status}`);if(t.signal.aborted||n!==ro.current)return;rr.current=!0;let s=`initial:${e}`;eh(s),ef.current=`new:${s}:${i.cwd}`,eu(i.cwd),E(!1),eE("ready"),new URLSearchParams(window.location.search).get("cwd")||k.replace(`?cwd=${encodeURIComponent(i.cwd)}`,{scroll:!1})}).catch(e=>{t.signal.aborted||n!==ro.current||(eM(e instanceof Error?e.message:String(e)),eE("error"))}),()=>t.abort()},[S,k]);let rl=(0,i.useCallback)((e,t)=>{let n=++ro.current,r=function(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:p();if(!t)return null;try{let n=h(t)[e];return"string"==typeof n&&n.length>0?n:null}catch{return null}}(e);if(!r)return;let i=i=>{if(n!==ro.current)return;let s=i?.sessions.find(e=>e.id===r);if(!s){i&&f(e);return}if(m(s)!==e)return void f(e);let o=ef.current;o&&oo(o,x1(t)),ef.current=null,Z(s),eL(e=>e+1),new URLSearchParams(window.location.search).get("session")!==s.id&&k.replace(`?session=${encodeURIComponent(s.id)}`,{scroll:!1})};J.length>0?i({sessions:J}):fetch("/api/sessions").then(e=>e.ok?e.json():null).then(i).catch(()=>{})},[k,J]),rc=(0,i.useCallback)((e,t,n)=>{ra();let r=ec??n9;if(n7(e),!e)return;let i=ri.current;ri.current=!1;let s=n??t??e,o=re.current??(q?m(q):null);if(re.current=s,rr.current){rr.current=!1;return}if(r===e&&o!==s||o===s&&(null!==q||r===e))return;let a=ef.current;a&&r&&oo(a,x1(r));let l="function"==typeof crypto.randomUUID?crypto.randomUUID():`${Date.now().toString(36)}-${Math.random().toString(36).slice(2)}`,c=`new:${l}:${e}`;oo(x1(e),c),eh(l),ef.current=c,Z(null),eu(t=>t&&t!==e?null:t),eL(e=>e+1),t1([]),t4(null),t3(!1),nn(null),ni(null),no(!1),n$(null),o!==s&&(n2(o,s),N||i||rl(s,e)),N||k.replace(window.location.pathname,{scroll:!1})},[n9,n2,N,ra,ec,k,q,rl]),rd=(0,i.useCallback)(function(e){let t=arguments.length>1&&void 0!==arguments[1]&&arguments[1],n=arguments.length>2?arguments[2]:void 0,r=arguments.length>3?arguments[3]:void 0,i=arguments.length>4?arguments[4]:void 0;t||th("conversation"),t||t_(),E(!1),n$(null),eH(null),eW(n?{sessionId:e.id,entryId:n,blockIndex:r}:null),ra();let s=ef.current,o=ec??(null===q?n9:null);s&&o&&oo(s,x1(o)),ef.current=null;let a=m(e);if(re.current!==a&&(n2(re.current,a),n$(null)),re.current=a,!t&&!N&&q){let t=m(q)===m(e);if(q.id===e.id&&t){I&&e4(!1);return}}eu(null),Z(e),eL(e=>e+1),t1([]),t4(null),t3(!1),t6.current=null,nn(null),ni(null),no(!1),rn(!0),!I||t||i?.keepSidebarOpen||e4(!1),t&&(rr.current=!0),t&&new URLSearchParams(window.location.search).get("session")===e.id||k.replace(`?session=${encodeURIComponent(e.id)}`,{scroll:!1})},[n9,n2,t_,N,ra,k,I,ec,q]),ru=(0,i.useCallback)((e,t,n,r)=>{th("conversation"),t_(),E(!1),eH(null),ra();let i=`new:${e}:${t}`,s=ef.current,o=ec??(null===q?n9:null);if(r?.carryComposer&&null===q&&s){let e=tJ.current;e?e.rekeyDraft(s,i):oo(s,i),eS(ek.current)}else s&&o&&o!==t&&oo(s,x1(o));let a=n??(t===n9?re.current:null)??t;re.current!==a&&n2(re.current,a),re.current=a,ot(i)||oo(x1(t),i),ef.current=i,eh(e),Z(null),eu(t),eL(e=>e+1),t1([]),t4(null),t3(!1),nn(null),ni(null),no(!1),n$(null),I&&e4(!1),k.replace(`?cwd=${encodeURIComponent(t)}`,{scroll:!1})},[n9,n2,t_,ra,I,ec,k,q]);!function(e){let{onNewSession:t,activeCwd:n}=e;(0,i.useEffect)(()=>{let e=e=>{if("Escape"===e.key)return void function(e){if("Escape"!==e.key||e.defaultPrevented||!o)return;let t=e.target?.tagName;"TEXTAREA"!==t&&"INPUT"!==t&&(e.preventDefault(),o())}(e);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])}({onNewSession:e=>ru(`kb-${Date.now()}`,e),activeCwd:n9});let rp=(0,i.useCallback)(e=>{fetch("/api/sessions",{cache:"no-store"}).then(e=>e.ok?e.json():null).then(t=>{let n=t?.sessions.find(t=>t.id===e);n&&Z(t=>t?.id===e?{...t,...n,transient:n.transient??!1}:t)}).catch(()=>{})},[]),rh=(0,i.useCallback)((e,t)=>{eT(e=>e+1),ef.current===t&&(ra(),ef.current=null,eu(null),Z(e),rp(e.id),k.replace(`?session=${encodeURIComponent(e.id)}`,{scroll:!1}))},[ra,k,rp]),rf=(0,i.useCallback)(e=>{let{targetSession:t,title:n,body:r,tag:i}=e;if(!("Notification"in window))return;let s=()=>{xJ({title:n,body:r,sessionUrl:t?`/?session=${encodeURIComponent(t.id)}`:"/",tag:i,onClick:()=>{window.focus(),t&&rd(t)}})};"granted"===Notification.permission?(s(),dc($)):"default"===Notification.permission&&Notification.requestPermission().then(e=>{"granted"===e&&(s(),dc($))})},[rd,$]),rm=(0,i.useCallback)(e=>{eT(e=>e+1),eB(e=>e+1),e.aborted||e.failed||q?.relation?.kind==="subagent"||!xV()||rf({targetSession:q,title:q?.name??M("i18n.sessionComplete"),body:M("i18n.taskFinished"),tag:q?`pi-session-complete:${q.id}`:"pi-session-complete"})},[rf,q,M]),rg=(0,i.useCallback)(e=>{var t;q?.relation?.kind!=="subagent"&&xV()&&(t=U.current,!(!aZ(e)||t.has(e.id))&&(t.add(e.id),1)&&rf({targetSession:q,title:M("i18n.attentionNeeded"),body:"custom"===e.method?M("i18n.extensionInputNeeded"):e.title,tag:`pi-extension-ui:${e.id}`}))},[rf,q,M]),rx=(0,i.useCallback)(async()=>{let e=q?.id;if(e&&"naming"!==nm.kind){nx.current&&clearTimeout(nx.current),n$(null),ng({kind:"naming"});try{let t=await fetch(`/api/sessions/${encodeURIComponent(e)}/auto-name`,{method:"POST"}),n=await t.json().catch(()=>({}));if(!t.ok||!n.title)throw Error(n.error||`HTTP ${t.status}`);let r=n.title.trim();if(eT(e=>e+1),nv.current!==e)return;Z(t=>t?.id===e?{...t,name:r}:t),nf(t=>t?.sessionId===e?{...t,sessionName:r}:t),ng({kind:"success"}),nx.current=setTimeout(()=>ng({kind:"idle"}),1800)}catch(t){if(nv.current!==e)return;ng({kind:"error",message:t instanceof Error?t.message:String(t)}),nx.current=setTimeout(()=>ng({kind:"idle"}),5e3)}}},[nm.kind,q?.id]);(0,i.useEffect)(()=>{nx.current&&clearTimeout(nx.current),ng({kind:"idle"})},[q?.id]);let rv=(0,i.useCallback)(()=>{eB(e=>e+1)},[]),rb=(0,i.useRef)(null),ry=(0,i.useCallback)(e=>{x0.has(e)||rb.current||(rb.current=setTimeout(()=>{rb.current=null,eB(e=>e+1)},1e3))},[]);(0,i.useEffect)(()=>()=>{rb.current&&clearTimeout(rb.current)},[]);let rj=(0,i.useCallback)(e=>{ra(),ef.current=null,eT(e=>e+1),eL(e=>e+1),eu(null),Z(t=>({...t??{path:"",cwd:"",created:"",modified:"",messageCount:0,firstMessage:""},id:e,transient:!1})),rp(e),k.replace(`?session=${encodeURIComponent(e)}`,{scroll:!1})},[ra,k,rp]),rk=(0,i.useCallback)(async(e,t,n)=>{let r=await a0(t,{type:"fork_branch",entryId:n});if(!r?.newSessionId)throw Error(M("chat.quoteForkFailed"));tG({sessionId:r.newSessionId,text:e}),rj(r.newSessionId)},[rj,M]),rw=(0,i.useCallback)(()=>{rn(!0),n5&&(ri.current=!0)},[n5]),rS=(0,i.useCallback)(e=>{ra(),eT(e=>e+1);let t=V.current;if(t?.id===e){!function(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:xG();if(t&&e)try{let n=xX(t.getItem(xY));if(n?.kind!=="session"||n.sessionId!==e)return;t.removeItem(xY)}catch{}}(e);let n=t.cwd,r="function"==typeof crypto.randomUUID?crypto.randomUUID():`${Date.now().toString(36)}-${Math.random().toString(36).slice(2)}`;eh(r),ef.current=n?`new:${r}:${n}`:null,Z(null),eu(n??null),eL(e=>e+1),t1([]),t4(null),t3(!1),nn(null),ni(null),no(!1),n$(e=>"archive"===e?e:null),k.replace(n?`?cwd=${encodeURIComponent(n)}`:window.location.pathname,{scroll:!1})}},[ra,k]),rC=(0,i.useCallback)((e,t,n)=>{th("file");let r=n?.sourceSessionId,i=n?.modeHint,s=n?.page,o=`file:${e}`;nH(n=>(function(e,t){let n=e.find(e=>e.id===t.tabId);if(!n)return[...e,{id:t.tabId,label:t.fileName,filePath:t.filePath,sourceSessionId:t.sourceSessionId,initialDisplayMode:t.modeHint,page:t.page,viewerState:t.modeHint?{displayMode:t.modeHint,wrapLines:!1,scrollTop:0,scrollLeft:0}:void 0,viewerRevision:0}];let r=!!(t.sourceSessionId&&n.sourceSessionId!==t.sourceSessionId),i=n.page!==t.page;return r||t.modeHint||i?e.map(e=>{if(e.id!==t.tabId)return e;let n={...e},s=!1;return r&&(n.sourceSessionId=t.sourceSessionId,s=!0),i&&(n.page=t.page,s=!0),t.modeHint&&(n.initialDisplayMode=t.modeHint,n.viewerState={displayMode:t.modeHint,wrapLines:e.viewerState?.wrapLines??!1,scrollTop:0,scrollLeft:0},s=!0),s&&(n.viewerRevision=(e.viewerRevision??0)+1),n}):e})(n,{fileName:t,filePath:e,modeHint:i,page:s,sourceSessionId:r,tabId:o})),tl(o),to(!0),I&&e4(!1)},[I]),rN=(0,i.useCallback)((e,t)=>{rC(e,ed(e),{sourceSessionId:q?.id??null,page:t})},[rC,q?.id]),rE=(0,i.useCallback)(e=>{th("file");let t=nV.find(t=>t.cwd===e),n=t??xK(e);t||nJ(e=>[...e,n]),tl(n.id),to(!0),I&&e4(!1)},[nV,I]),r$=(0,i.useCallback)((e,t)=>{th("file"),nQ(n=>n.some(t=>t.sessionId===e)?n:[...n,{sessionId:e,label:t}]),tl(`agent:${e}`),to(!0),I&&e4(!1)},[I]),rM=(0,i.useMemo)(()=>new Set(ts?nX.map(e=>e.sessionId):[]),[nX,ts]),rI=(0,i.useCallback)(e=>{if(nV.some(t=>t.id===e))return void nJ(t=>t.map(t=>t.id!==e||t.closing?t:{...t,closing:"close"}));if(e.startsWith("agent:")){let t=nX.filter(t=>`agent:${t.sessionId}`!==e);nQ(t),tl(n=>n!==e?n:n_.at(-1)?.id??nV.at(-1)?.id??x2(t)),R||0!==n_.length||0!==nV.length||0!==t.length||to(!1);return}nH(t=>{let n=t.filter(t=>t.id!==e);return R||0!==n.length||0!==nV.length||0!==nX.length||to(!1),n}),tl(t=>{if(t!==e)return t;let n=n_.filter(t=>t.id!==e);return n.at(-1)?.id??nV.at(-1)?.id??x2(nX)})},[n_,nV,nX,R]),rT=(0,i.useCallback)(()=>{q&&(eH(null),n$("history"),tC(!1),I&&e4(!1))},[q,I]),rR=ec??(null===q&&n9?n9:null),rL=null===q&&rR?`new:${ep}:${rR}`:null;(0,i.useLayoutEffect)(()=>{ef.current=N?null:rL},[N,rL]);let rA=(0,i.useCallback)((e,t)=>{null===q&&rR&&e.cwd!==rR&&(ej.current=t,e.projectKey&&e.projectRoot&&eb.current?.cwd!==e.cwd&&(eb.current={cwd:e.cwd,project:{key:e.projectKey,root:e.projectRoot},branch:null}),em.current?.startNewSessionIn({...e,carryComposer:!0}))},[rR,q]),rP=(0,i.useRef)(rA);rP.current=rA;let rz=(0,i.useCallback)(e=>{em.current?.openFolderForNewSession(e=>rP.current(e,"project"),e)},[]),rW=(0,i.useCallback)(()=>{em.current?.openDefaultDirectoryForNewSession(e=>rP.current(e,"project"))},[]),rO=(0,i.useCallback)(()=>{em.current?.refreshWorktrees()},[]),rF=(0,i.useCallback)(async(e,t)=>{let n=em.current;if(!n)throw Error("The session sidebar is not mounted");let r=await n.createWorktree(e,t);return"path"in r&&(eb.current={cwd:r.path,project:e,branch:t}),r},[]),rD=(0,i.useCallback)(()=>{ej.current=null},[]),rB=(0,i.useRef)(null),r_=rR?function(e,t){let n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:null;if(e?.cwd===t)return e;if(e?.worktrees?.some(e=>e.path===t))return{...e,cwd:t,currentWorktreePath:t};let r=n?.cwd===t?n:null;if(r&&e?.worktrees&&e.project.key===r.project.key)return{...e,cwd:t,worktrees:[...e.worktrees,{path:t,branch:r.branch,isMain:!1}],currentWorktreePath:t};let i=e?.projects??[],s=r?.project??i.find(e=>e.root===t)??{key:t,root:t},o=s.alias??i.find(e=>e.key===s.key)?.alias;return{cwd:t,project:void 0===o?s:{...s,alias:o},worktrees:null,currentWorktreePath:null,projects:i}}(eg,rR,eb.current):null,rH=r_?r_.project.alias||ed(r_.project.root)||r_.project.root:void 0,rU=null===q&&r_?(0,r.jsx)(gh,{handleRef:rB,context:r_,mobile:I,initialFocus:ej.current,onInitialFocusDone:rD,onPick:rA,onUseDefaultDirectory:rW,onOpenFolder:rz,onRefreshWorktrees:rO,onCreateWorktree:rF}):null,rK=!N&&(null!==q||null!==rR),rq=q?.cwd??rR,rZ=rt&&!rK;(0,i.useEffect)(()=>{if(eV(null),eY(!1),e1(null),!rq)return;let e=new AbortController;return fetch(`/api/project-trust?cwd=${encodeURIComponent(rq)}`,{signal:e.signal}).then(async e=>{let t=await e.json();if(!e.ok||t.error)throw Error(t.error??`HTTP ${e.status}`);eV(t)}).catch(e=>{e instanceof DOMException&&"AbortError"===e.name||console.error("Failed to load project trust:",e)}),()=>e.abort()},[rq]);let rV=(0,i.useCallback)(async()=>{if(rq&&!eX){eQ(!0),e1(null);try{let e=await fetch("/api/project-trust",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({cwd:rq})}),t=await e.json();if(!e.ok||t.error)return void e1({error:t.error??`HTTP ${e.status}`,...t.reason?{reason:t.reason}:{}});eV(t),eY(!1),eK(e=>e+1),eL(e=>e+1)}catch(e){e1({error:e instanceof Error?e.message:String(e)})}finally{eQ(!1)}}},[eX,rq]),rJ=(0,i.useCallback)(()=>{e1(null),eY(!0)},[]),rY=(0,i.useCallback)((e,t)=>{e===rq&&eV(t)},[rq]),rG=n_.find(e=>e.id===ta)??null,rX=nX.find(e=>`agent:${e.sessionId}`===ta)??null,rQ=n9?ed(n9)||n9:null,r0=rQ?`${rQ} - PI-YUN`:"PI-YUN";(0,i.useEffect)(()=>{let e=()=>{document.title!==r0&&(document.title=r0)};e();let t=new MutationObserver(e);return t.observe(document.head,{childList:!0,subtree:!0,characterData:!0}),()=>t.disconnect()},[r0]);let r1=e_?"settings":nE??(N?"home":"chat"),r2=(0,i.useCallback)(e=>{th("conversation"),t_(),eH(null),n$("archive"),ee(e??null),tC(!1),I&&e4(!1)},[t_,I]),r4=e=>{if(th("conversation"),t_(),"home"===e){ra();let e=ef.current;if(e&&rR){let t=x1(rR);tJ.current?tJ.current.rekeyDraft(e,t):oo(e,t)}ef.current=null,E(!0),eH(null),n$(null),to(!1),I&&e4(!1),k.replace("?home=1",{scroll:!1});return}"settings"===e?eH(lV(rq)):(eH(null),"chat"===e?(!q&&rL&&rR&&!ot(rL)&&oo(x1(rR),rL),E(!1),n$(null),q?k.replace(`?session=${encodeURIComponent(q.id)}`,{scroll:!1}):rR&&k.replace(`?cwd=${encodeURIComponent(rR)}`,{scroll:!1})):"system"===e||"tools"===e?nE!==e&&nA(e):("archive"!==e&&(E(!1),N&&q&&k.replace(`?session=${encodeURIComponent(q.id)}`,{scroll:!1})),n$(e)),tC(!1),I&&e4(!1))},r8=(0,r.jsx)(gd,{activeView:r1,conversationAvailable:!!(q||rR),inspectionAvailable:rK,sessionAvailable:!!q,mobile:I,homeButtonRef:ti,onHomeHover:tB.show,onHomeLeave:tB.scheduleHide,onNavigate:r4}),r3=(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(rs,{onOpenArchive:r2,archiveActive:"archive"===r1,onArchiveStateChange:X,fileExplorerTarget:R?L:null,selectedSessionId:N?null:q?.id??null,onSelectSession:rd,onNewSession:ru,onOpenSettings:()=>eH(lV(rq)),controlRef:em,onNewSessionContextChange:ey,initialSessionId:n6,initialSessionLinked:null!==n5,skipInitialProjectSelection:null!==S.requestedCwd,onInitialRestoreDone:rw,refreshKey:eI,onSessionDeleted:rS,selectedCwd:q?.cwd??ec??null,onCwdChange:rc,onOpenFile:rC,onOpenTerminal:rE,explorerRefreshKey:eF,onExplorerRefresh:rv,onAtMention:n4,onAtMentions:n8,onBackgroundTaskDone:K,onRunningSessionIdsChange:el,onSessionsChange:en}),I&&r8]}),r6=e=>rK&&eZ?.requiresTrust&&!eZ.trusted?(0,r.jsxs)("button",{type:"button",onClick:rJ,title:M("trust.resourcesNotLoaded"),"aria-label":M("trust.resourcesNotLoaded"),style:{display:"flex",alignItems:"center",justifyContent:e?"flex-start":"center",gap:6,width:e?"100%":void 0,minHeight:e?32:void 0,height:e?void 0:"100%",padding:e?"6px 12px":"0 12px",background:e?"color-mix(in srgb, #d97706 8%, var(--bg-panel))":"none",border:"none",borderRight:e?"none":"1px solid var(--border)",borderBottom:e?"1px solid var(--border)":"none",color:"#d97706",cursor:"pointer",flexShrink:0,fontSize:11,lineHeight:1.35,textAlign:"left"},"data-mobile-trust-banner":e?"true":void 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","aria-hidden":"true",style:{flexShrink:0},children:[(0,r.jsx)("path",{d:"M12 22s8-4 8-10V5l-8-3-8 3v7c0 6 8 10 8 10Z"}),(0,r.jsx)("path",{d:"M12 8v4"}),(0,r.jsx)("path",{d:"M12 16h.01"})]}),(0,r.jsx)("span",{children:M("trust.resourcesNotLoaded")})]}):null;function r5(e){let t,n,i,s,o,a,l=arguments.length>1&&void 0!==arguments[1]&&arguments[1];if(!e&&!rK)return null;let c=e||l;return(0,r.jsxs)("div",{className:l?"workbench-session-actions":e?void 0:"workspace-toolbar-actions",role:l?"group":void 0,"aria-label":l?M("chat.moreControls"):void 0,style:{display:"flex",alignItems:l?"center":"stretch",flexDirection:l?"column":"row",height:l?"auto":"100%"},children:[(0,r.jsxs)("button",{type:"button",onClick:()=>{rT()},disabled:!q,title:q?M("history.full"):M("history.unsaved"),"aria-label":M("history.full"),style:{display:"flex",alignItems:"center",justifyContent:"center",gap:6,width:c?36:void 0,height:"100%",padding:c?0:"0 12px",background:"none",border:"none",borderTop:"2px solid transparent",borderRight:"1px solid var(--border)",color:q?"var(--text-muted)":"var(--text-dim)",cursor:q?"pointer":"not-allowed",opacity:q?1:.45,flexShrink:0,fontSize:11,whiteSpace:"nowrap",transition:"color 0.1s, background 0.1s, opacity 0.1s"},onMouseEnter:e=>{q&&(e.currentTarget.style.color="var(--text)",e.currentTarget.style.background="var(--bg-hover)")},onMouseLeave:e=>{e.currentTarget.style.color=q?"var(--text-muted)":"var(--text-dim)",e.currentTarget.style.background="none"},"data-mobile-toolbar-action":e?"history":void 0,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:{color:q?"var(--text-muted)":"var(--text-dim)",flexShrink:0},"aria-hidden":"true",children:[(0,r.jsx)("path",{d:"M3 12a9 9 0 1 0 3-6.7L3 8"}),(0,r.jsx)("path",{d:"M3 3v5h5"}),(0,r.jsx)("path",{d:"M12 7v5l3 2"})]}),!c&&(0,r.jsx)("span",{children:M("history.label")})]}),(t=!!(q&&((nh?.userMessages??0)>0||q.messageCount>0)),n=!q||q.transient||!t||"naming"===nm.kind,i="success"===nm.kind,s="error"===nm.kind,o="naming"===nm.kind?M("title.generating"):i?M("title.updated"):s?M("title.failed"):M("title.generate"),a=!q||q.transient?M("title.unsaved"):t?s?nm.message:M("title.generateSession"):M("title.noMessages"),(0,r.jsxs)("button",{type:"button",onClick:()=>{rx(),e&&T&&tC(!0)},disabled:n,title:a,"aria-label":o,style:{display:"flex",alignItems:"center",justifyContent:"center",gap:6,width:c?36:void 0,height:"100%",padding:c?0:"0 12px",background:"none",border:"none",borderTop:"2px solid transparent",borderRight:"1px solid var(--border)",color:s?"#dc2626":i?"var(--accent)":n?"var(--text-dim)":"var(--text-muted)",cursor:n?"not-allowed":"pointer",opacity:n&&"naming"!==nm.kind?.45:1,flexShrink:0,fontSize:11,whiteSpace:"nowrap",transition:"color 0.1s, background 0.1s, opacity 0.1s"},onMouseEnter:e=>{n||(e.currentTarget.style.color=s?"#dc2626":"var(--text)",e.currentTarget.style.background="var(--bg-hover)")},onMouseLeave:e=>{e.currentTarget.style.color=s?"#dc2626":i?"var(--accent)":n?"var(--text-dim)":"var(--text-muted)",e.currentTarget.style.background="none"},"data-mobile-toolbar-action":e?"name":void 0,children:["naming"===nm.kind?(0,r.jsxs)("svg",{className:"animate-spin",width:"13",height:"13",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?(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)("polyline",{points:"20 6 9 17 4 12"})}):(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:"m15 4 5 5L7 22l-5-5Z"}),(0,r.jsx)("path",{d:"m14 5 5 5"}),(0,r.jsx)("path",{d:"M6 4V2M5 3H3M19 19v3M17.5 20.5h3"})]}),!c&&(0,r.jsx)("span",{children:o})]})),es&&(0,r.jsxs)("button",{type:"button",onClick:()=>nL("agents"),title:M("agentSwitcher.title"),"aria-label":M("agentSwitcher.title"),"aria-pressed":"agents"===nE,style:{position:"relative",display:"flex",alignItems:"center",justifyContent:"center",gap:6,width:c?36:void 0,height:"100%",padding:c?0:"0 12px",background:"agents"===nE?"var(--bg-selected)":"none",border:"none",borderTop:"agents"===nE?"2px solid var(--accent)":"2px solid transparent",borderRight:"1px solid var(--border)",color:"agents"===nE?"var(--text)":"var(--text-muted)",cursor:"pointer",flexShrink:0,fontSize:11,whiteSpace:"nowrap",transition:"color 0.1s, background 0.1s"},"data-mobile-toolbar-action":e?"agents":void 0,children:[(0,r.jsxs)("svg",{width:"13",height:"13",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"1.9",strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":"true",children:[(0,r.jsx)("rect",{x:"5",y:"7",width:"14",height:"11",rx:"2"}),(0,r.jsx)("path",{d:"M9 11h.01M15 11h.01M9 15h6M12 7V4M10 4h4"})]}),!c&&(0,r.jsx)("span",{children:M("agentSwitcher.title")}),(0,r.jsx)("span",{"aria-hidden":"true",style:{minWidth:15,height:15,padding:"0 4px",display:"grid",placeItems:"center",borderRadius:7,background:"var(--bg-selected)",color:"var(--accent)",fontSize:10,lineHeight:1,fontVariantNumeric:"tabular-nums",...c?{position:"absolute",top:2,right:2,minWidth:13,height:13,padding:"0 3px",fontSize:9}:{}},children:ei.subagents.length})]}),t5&&(0,r.jsx)("button",{type:"button",onClick:()=>nL("branches"),title:M("i18n.branches"),"aria-label":M("i18n.branches"),"aria-pressed":"branches"===nE,style:{display:"flex",alignItems:"center",justifyContent:"center",width:36,height:"100%",padding:0,background:"branches"===nE?"var(--bg-selected)":"none",border:"none",borderTop:"branches"===nE?"2px solid var(--accent)":"2px solid transparent",borderRight:"1px solid var(--border)",color:"branches"===nE?"var(--text)":"var(--text-muted)",cursor:"pointer",flexShrink:0},"data-mobile-toolbar-action":e?"branches":void 0,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:{color:t0.length>0?"var(--accent)":"var(--text-dim)"},"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.jsxs)("button",{ref:nc,type:"button",onClick:()=>nA("system"),disabled:e&&!rK,title:M("system.prompt"),"aria-label":M("system.prompt"),"aria-pressed":"system"===nE,style:{display:"flex",alignItems:"center",justifyContent:"center",gap:6,width:c?36:void 0,height:"100%",padding:c?0:"0 12px",background:"system"===nE?"var(--bg-selected)":"none",border:"none",borderTop:"system"===nE?"2px solid var(--accent)":"2px solid transparent",borderRight:"1px solid var(--border)",cursor:e&&!rK?"not-allowed":"pointer",color:"system"===nE?"var(--text)":"var(--text-muted)",opacity:e&&!rK?.45:1,fontSize:11,whiteSpace:"nowrap",transition:"color 0.1s, background 0.1s"},onMouseEnter:t=>{(!e||rK)&&(t.currentTarget.style.color="var(--text)")},onMouseLeave:e=>{e.currentTarget.style.color="system"===nE?"var(--text)":"var(--text-muted)"},"data-mobile-toolbar-action":e?"system":void 0,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:{color:nt?"var(--accent)":"var(--text-dim)",flexShrink:0},"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"}),(0,r.jsx)("line",{x1:"8",y1:"13",x2:"16",y2:"13"}),(0,r.jsx)("line",{x1:"8",y1:"17",x2:"13",y2:"17"})]}),!c&&(0,r.jsx)("span",{children:M("system.label")})]}),(0,r.jsxs)("button",{type:"button",onClick:()=>nA("tools"),disabled:e&&!rK,title:M("tools.title"),"aria-label":M("tools.title"),"aria-pressed":"tools"===nE,style:{display:"flex",alignItems:"center",justifyContent:"center",gap:6,width:c?36:void 0,height:"100%",padding:c?0:"0 12px",background:"tools"===nE?"var(--bg-selected)":"none",border:"none",borderTop:"tools"===nE?"2px solid var(--accent)":"2px solid transparent",borderRight:"1px solid var(--border)",cursor:e&&!rK?"not-allowed":"pointer",color:"tools"===nE?"var(--text)":"var(--text-muted)",opacity:e&&!rK?.45:1,fontSize:11,whiteSpace:"nowrap",transition:"color 0.1s, background 0.1s"},onMouseEnter:t=>{(!e||rK)&&(t.currentTarget.style.color="var(--text)")},onMouseLeave:e=>{e.currentTarget.style.color="tools"===nE?"var(--text)":"var(--text-muted)"},"data-mobile-toolbar-action":e?"tools":void 0,children:[(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:nr?.some(e=>e.active)?"var(--accent)":"var(--text-dim)",flexShrink:0},"aria-hidden":"true",children:(0,r.jsx)("path",{d:"M14.7 6.3a1 1 0 0 0 0 1.4l1.6 1.6a1 1 0 0 0 1.4 0l3.8-3.8a6 6 0 0 1-7.9 7.9l-6.9 6.9a2.1 2.1 0 0 1-3-3l6.9-6.9a6 6 0 0 1 7.9-7.9z"})}),!c&&(0,r.jsx)("span",{children:M("tools.label")})]})]})}let r9=e=>{if(!e&&(!rK||!nh&&!nS))return null;let t=nh?.tokens,n=nh?.cost??0,i=lP(n),s="var(--text-muted)",o=null;if(nS?.contextWindow){let e=nS.percent;null!==e&&e>90?s="#ef4444":null!==e&&e>70&&(s="rgba(234,179,8,0.95)"),o=null!==e?`${e.toFixed(0)}%`:null}let a=[];if(t&&(a.push(`in: ${t.input.toLocaleString($)}`),a.push(`out: ${t.output.toLocaleString($)}`),a.push(`cache read: ${t.cacheRead.toLocaleString($)}`),a.push(`cache write: ${t.cacheWrite.toLocaleString($)}`),n>0&&a.push(`cost: $${n.toFixed(4)}`)),nS?.contextWindow){let e=nS.percent;a.push(`context: ${null!==e?e.toFixed(1)+"%":"unknown"} of ${nS.contextWindow.toLocaleString()} tokens`)}let l=a.join(" | "),c=e&&T&&tS,d=!!(i||o);return(0,r.jsxs)("div",{style:{display:e?"contents":"flex",alignItems:"center",minWidth:0},children:[(0,r.jsx)("button",{type:"button",onClick:()=>nL("session"),ref:nT,disabled:!rK||c,tabIndex:c?-1:void 0,title:l||M("session.title"),"aria-label":M("session.title"),"aria-pressed":"session"===nE,"aria-hidden":!!c||void 0,className:e?"mobile-session-stats":"composer-session-stats","aria-controls":"workspace-usage-page","aria-expanded":"session"===nE,"data-mobile-toolbar-stats":e?"true":void 0,style:{marginLeft:0,display:"flex",alignItems:"center",justifyContent:"flex-end",flex:e?1:void 0,minWidth:0,gap:e?7:8,paddingLeft:6,paddingRight:6,height:e?"100%":30,overflow:"hidden",visibility:c?"hidden":"visible",pointerEvents:c?"none":"auto",background:"session"===nE?"var(--bg-selected)":"none",border:"none",borderTop:e?"session"===nE?"2px solid var(--accent)":"2px solid transparent":void 0,borderRadius:e?void 0:7,fontSize:11,color:"var(--text-muted)",whiteSpace:"nowrap",cursor:rK?"pointer":"default",fontVariantNumeric:"tabular-nums",transition:"color 0.1s, background 0.1s"},onMouseEnter:e=>{rK&&!c&&(e.currentTarget.style.color="var(--text)")},onMouseLeave:e=>{e.currentTarget.style.color="session"===nE?"var(--text)":"var(--text-muted)"},children:e?(0,r.jsxs)(r.Fragment,{children:[i&&(0,r.jsx)("span",{className:"mobile-session-stat-cost",style:{color:"var(--text)",fontWeight:500,flexShrink:0},children:i}),o&&(0,r.jsx)("span",{style:{color:s,flexShrink:0},children:o}),!d&&rK&&(0,r.jsx)("span",{style:{overflow:"hidden",textOverflow:"ellipsis",color:"var(--text-dim)"},children:M("session.title")})]}):(0,r.jsx)(r.Fragment,{children:i&&(0,r.jsx)("span",{className:"composer-session-stat-cost",style:{color:"var(--text)",fontWeight:500,flexShrink:0},children:i})})}),!e&&nS&&nS.contextWindow>0&&(0,r.jsx)(lF,{usage:nS,onClick:()=>nL("session"),expanded:"session"===nE})]})},r7=e=>{let t=e&&T&&tS;return(0,r.jsxs)("button",{type:"button",onClick:nF,className:"workspace-files-toggle",disabled:t,tabIndex:t?-1:void 0,"aria-controls":"file-panel","aria-expanded":ts,"aria-hidden":!!t||void 0,title:ts?M("files.hidePanel"):M("files.showPanel"),"aria-label":ts?M("files.hidePanel"):M("files.showPanel"),"data-mobile-toolbar-file":e?"true":void 0,style:{marginLeft:e?0:"auto",display:"flex",alignItems:"center",justifyContent:"center",width:e?36:void 0,height:36,padding:e?0:"0 10px",gap:6,visibility:t?"hidden":"visible",pointerEvents:t?"none":"auto",background:ts?"var(--bg-selected)":"none",border:"none",borderRadius:8,color:ts?"var(--text)":"var(--text-muted)",cursor:"pointer",flexShrink:0,transition:"color 0.12s, background 0.12s"},onMouseEnter:e=>{t||(e.currentTarget.style.color="var(--text)")},onMouseLeave:e=>{e.currentTarget.style.color=ts?"var(--text)":"var(--text-muted)"},children:[(0,r.jsx)(tF,{size:17,open:ts}),!e&&(0,r.jsx)("span",{children:M("sidebar.tabFiles")})]})};return(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)("style",{children:`
206
- .mobile-session-stats {
207
- container-type: inline-size;
208
- }
209
- @container (max-width: 158px) {
210
- .mobile-session-stat-io {
211
- display: none !important;
212
- }
213
- }
214
- @container (max-width: 88px) {
215
- .mobile-session-stat-cost {
216
- display: none !important;
217
- }
218
- }
219
- @media (max-width: 640px) {
220
- .sidebar-overlay-backdrop.sidebar-mobile-pending {
221
- opacity: 0 !important;
222
- pointer-events: none !important;
223
- }
224
- .sidebar-container.sidebar-mobile-pending.sidebar-open {
225
- transform: translateX(calc(-100% - env(safe-area-inset-left)));
226
- box-shadow: none;
227
- }
228
- }
229
- `}),(0,r.jsxs)("div",{className:`workspace-shell${R?" is-files-docked":""}`,style:{display:"flex",width:"100%",height:"var(--app-viewport-height, 100dvh)",paddingLeft:"env(safe-area-inset-left)",paddingRight:"env(safe-area-inset-right)",overflow:"hidden",background:"var(--bg)"},children:[!I&&r8,(0,r.jsxs)("div",{className:"workspace-frame",children:[(0,r.jsx)("div",{className:`sidebar-overlay-backdrop${tN?"":" sidebar-mobile-pending"}`,onClick:()=>e4(!1),style:{position:"fixed",inset:0,zIndex:199,background:"rgba(0,0,0,0.4)",opacity:+!!e2,pointerEvents:e2?"auto":"none",transition:"opacity 0.25s ease"}}),(0,r.jsx)("div",{ref:tA.panelRef,id:"session-sidebar",inert:!I&&!e2&&!tB.open,"data-sidebar-peek":tB.open?"":void 0,onPointerEnter:tB.cancel,onPointerLeave:tB.scheduleHide,onBlur:e=>{e.currentTarget.contains(e.relatedTarget)||tB.scheduleHide()},className:`sidebar-container${e2?" sidebar-open":" sidebar-closed"}${tB.open?" is-peeking":""}${tN?"":" sidebar-mobile-pending"}${tA.isResizing?" sidebar-resizing":""}`,style:{"--sidebar-width":`${tA.width}px`,background:"var(--bg-panel)",borderRight:"1px solid var(--border)",display:"flex",flexDirection:"column",flexShrink:0,paddingTop:"env(safe-area-inset-top)",paddingBottom:"env(safe-area-inset-bottom)",zIndex:tB.open?230:200},children:r3}),!I&&e2&&(0,r.jsx)("div",{...tA.separatorProps,onDoubleClick:nW,onKeyDown:e=>{"Enter"===e.key||" "===e.key?(e.preventDefault(),nW()):tA.separatorProps.onKeyDown(e)},"aria-controls":"session-sidebar",className:`panel-resize-handle sidebar-resize-handle${tA.isResizing?" is-resizing":""}`,"data-resize-handle":"sidebar",title:M("sidebar.resizeAndCollapseHint")}),!I&&!e2&&(0,r.jsx)("button",{ref:tn,type:"button",className:"sidebar-edge-restore","data-sidebar-restore":"","aria-label":M("sidebar.show"),title:M("sidebar.show"),"aria-controls":"session-sidebar","aria-expanded":!1,onClick:nW}),(0,r.jsxs)("div",{className:`workspace-main${R?" has-unified-header":""}${ts?" is-files-open":""}${tf?" is-focused-workspace":""}${tm?" is-file-focused":""}${tg?" is-conversation-focused":""}${tP.isResizing?" is-panel-resizing":""}`,style:{"--right-panel-width":`${tP.width}px`},children:[R&&(0,r.jsx)("div",{className:"workspace-unified-bar","aria-hidden":"true"}),(0,r.jsxs)("div",{className:"workspace-conversation",style:{flex:1,display:"flex",flexDirection:"column",overflow:"hidden",minWidth:0},children:[(0,r.jsxs)("div",{ref:tX,className:"workspace-chat-header",style:{flexShrink:0,background:"var(--bg-panel)"},children:[(0,r.jsxs)("div",{style:{display:"flex",alignItems:"center",position:"relative",borderBottom:"1px solid var(--border)",height:"calc(36px + env(safe-area-inset-top))",paddingTop:"env(safe-area-inset-top)"},children:[!I&&!e2&&(0,r.jsx)("button",{type:"button",className:"workspace-new-session","data-collapsed-new-chat":"",title:M("sidebar.newChat"),"aria-label":M("sidebar.newChat"),onClick:e=>{t_(),n9?em.current?.startNewSessionIn({cwd:n9}):em.current?.openFolderForNewSession(e=>em.current?.startNewSessionIn(e),e.currentTarget)},children:(0,r.jsx)(tD,{size:16})}),I?(0,r.jsx)("button",{type:"button",onClick:nW,className:"workspace-sidebar-toggle","aria-controls":"session-sidebar","aria-expanded":e2,title:e2?M("sidebar.hide"):M("sidebar.show"),"aria-label":e2?M("sidebar.hide"):M("sidebar.show"),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:(0,r.jsx)(tO,{size:18,open:e2})}):(0,r.jsx)("span",{className:"workspace-title-folder","aria-hidden":"true",children:(0,r.jsxs)("svg",{width:"20",height:"20",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"1.7",strokeLinecap:"round",strokeLinejoin:"round",children:[(0,r.jsx)("path",{d:"M3 8V6a2 2 0 0 1 2-2h4l2 3h8a2 2 0 0 1 2 2v10a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8Z"}),(0,r.jsx)("path",{d:"M3 10h18"})]})}),"settings"===r1?(0,r.jsxs)("div",{className:"workspace-location workspace-settings-location","data-view":"settings",children:[(0,r.jsx)("button",{type:"button",className:"workspace-context-tab workspace-settings-heading",disabled:!tx,"aria-label":M("files.showWorkspace",{view:M("common.settings")}),"aria-controls":"workspace-conversation-content","aria-pressed":tx?tg:void 0,onClick:()=>{tu(!0),th("conversation")},children:M("common.settings")}),(q||rR)&&(0,r.jsxs)("button",{type:"button",className:"workspace-return-session",title:q?ex(q):M("navigation.chat"),"aria-controls":"workspace-conversation-content",onClick:()=>r4("chat"),children:[(0,r.jsx)("svg",{width:"14",height:"14",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"1.7",strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":"true",children:(0,r.jsx)("path",{d:"m10 6-6 6 6 6M4 12h16"})}),(0,r.jsx)("span",{children:M("settings.backToConversation")})]})]}):(0,r.jsxs)("button",{type:"button",className:"workspace-location workspace-context-tab","data-view":r1,disabled:!tx,"aria-label":M("files.showWorkspace",{view:M(gl[r1])}),"aria-controls":"workspace-conversation-content","aria-pressed":tx?tg:void 0,onClick:()=>{tu(!0),th("conversation")},children:[(0,r.jsx)("span",{children:M(gl[r1])}),q&&"home"!==r1&&(0,r.jsx)("strong",{title:ex(q),children:ex(q)}),!q&&"chat"===r1&&(0,r.jsx)("strong",{children:M("navigation.chat")})]}),!I&&"chat"===r1&&q&&(0,r.jsxs)("button",{type:"button",className:"workspace-title-action",onClick:()=>void rx(),disabled:q.transient||"naming"===nm.kind||!((nh?.userMessages??0)>0||q.messageCount>0),title:"error"===nm.kind?nm.message:M("title.generateSession"),children:[(0,r.jsx)("svg",{width:"16",height:"16",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"1.6",strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":"true",children:(0,r.jsx)("path",{d:"m12 3 2.4 6.6L21 12l-6.6 2.4L12 21l-2.4-6.6L3 12l6.6-2.4ZM20 2v4m-2-2h4"})}),(0,r.jsx)("span",{children:M("naming"===nm.kind?"title.generating":"success"===nm.kind?"title.updated":"error"===nm.kind?"title.failed":"title.generate")})]}),I&&(0,r.jsxs)("div",{ref:tQ,"data-mobile-toolbar":"true",style:{position:"relative",display:"flex",alignItems:"stretch",flex:1,minWidth:0,height:"100%"},children:["chat"!==r1&&(0,r.jsx)("span",{className:"workspace-mobile-location",children:M(gl[r1])}),T&&"chat"===r1&&(0,r.jsx)("button",{type:"button",onClick:nO,title:tS?M("chat.close"):M("chat.moreControls"),"aria-label":tS?M("chat.close"):M("chat.moreControls"),"aria-controls":"mobile-toolbar-actions","aria-expanded":tS,"data-mobile-toolbar-more":"true",style:{position:"relative",zIndex:tS?21:void 0,display:"flex",alignItems:"center",justifyContent:"center",width:36,height:36,padding:0,background:tS?"var(--bg-selected)":"none",border:"none",borderRight:"1px solid var(--border)",color:tS?"var(--text)":"var(--text-muted)",cursor:"pointer",flexShrink:0,transition:"color 0.12s, background 0.12s"},children:tS?(0,r.jsxs)("svg",{width:"15",height:"15",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round","aria-hidden":"true",children:[(0,r.jsx)("line",{x1:"5",y1:"5",x2:"19",y2:"19"}),(0,r.jsx)("line",{x1:"19",y1:"5",x2:"5",y2:"19"})]}):(0,r.jsxs)("svg",{width:"17",height:"17",viewBox:"0 0 24 24",fill:"currentColor","aria-hidden":"true",children:[(0,r.jsx)("circle",{cx:"5",cy:"12",r:"1.5"}),(0,r.jsx)("circle",{cx:"12",cy:"12",r:"1.5"}),(0,r.jsx)("circle",{cx:"19",cy:"12",r:"1.5"})]})}),!T&&"chat"===r1&&r5(!0),"chat"===r1&&r9(!0),r7(!0),T&&"chat"===r1&&tS&&(0,r.jsx)("div",{id:"mobile-toolbar-actions",role:"toolbar","aria-label":M("chat.moreControls"),"data-mobile-toolbar-actions":"true",style:{position:"absolute",top:0,right:0,bottom:0,left:36,zIndex:20,display:"flex",alignItems:"stretch",background:"color-mix(in srgb, var(--bg-panel) 94%, var(--bg))",boxShadow:"4px 0 18px rgba(0,0,0,0.12)",backdropFilter:"blur(10px)"},children:r5(!0)})]}),!I&&(0,r.jsx)(r.Fragment,{children:r6(!1)}),!I&&r7(!1)]}),I&&r6(!0)]}),(0,r.jsxs)("div",{id:"workspace-conversation-content",className:"workspace-content",inert:tm,"aria-hidden":tm||void 0,style:{flex:1,overflow:"hidden",position:"relative"},children:[e_&&(0,r.jsx)(mX,{embedded:!0,cwd:rq,sessionId:q?.id??null,initialSection:e_,quoteSelectionEnabled:B,onQuoteSelectionChange:H,onClose:()=>{eH(null)},onSessionReloaded:()=>eL(e=>e+1),projectTrust:eZ,onOpenTrustDialog:rJ,onProjectTrustChanged:rY}),nE&&!e_&&(0,r.jsxs)("section",{className:"workspace-page",ref:nR,tabIndex:-1,id:"session"===nE?"workspace-usage-page":void 0,"data-workspace-page":nE,"aria-label":M(gl[nE]),children:[(0,r.jsxs)("header",{className:"workspace-page-header",children:[(0,r.jsxs)("div",{children:[(0,r.jsx)("h1",{children:M(gl[nE])}),(0,r.jsx)("p",{children:"archive"===nE?M("archive.subtitle"):q?ex(q):rQ})]}),"history"===nE&&q&&(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)("button",{type:"button",className:"workspace-page-back",onClick:()=>nI(e=>e+1),children:M("i18n.refresh")}),(0,r.jsx)("a",{className:"workspace-page-export",href:"api/sessions/"+encodeURIComponent(q.id)+"/export",download:!0,children:M("navigation.exportHistory")})]}),(0,r.jsx)("button",{type:"button",className:"workspace-page-back",onClick:()=>n$(null),children:M(N?"navigation.backHome":"navigation.backChat")})]}),(0,r.jsxs)("div",{className:"workspace-page-content",children:["archive"===nE&&(0,r.jsx)(lB,{snapshot:G,projectKey:Q,onProjectChange:ee,onSelectSession:rd,onRestore:e=>em.current?.restoreArchivedSession(e)??Promise.resolve(!1),onDelete:e=>em.current?.deleteArchivedSession(e)??Promise.resolve(!1),onDeleteMany:e=>em.current?.deleteArchivedSessions(e)??Promise.resolve(!1),onRefresh:()=>{em.current?.refreshArchive()}}),"history"===nE&&q&&(0,r.jsx)(xx,{variant:"history",sessionId:q.id,fallbackLabel:ex(q),running:eo.has(q.id),onOpenFile:rN},`${q.id}:${nM}`),"branches"===nE&&(0,r.jsx)(xn,{embedded:!0,tree:t0,activeLeafId:t2,onLeafChange:ne,locked:t8,hasSession:!!q}),"agents"===nE&&ei&&q&&(0,r.jsx)(xh,{rootSession:ei.root,subagents:ei.subagents,selectedSessionId:q.id,runningSessionIds:eo,onSelectSession:rd,openSubagentTabIds:rM,onToggleSubagentTab:(e,t)=>{rM.has(e)?rI(`agent:${e}`):(I&&n$(null),r$(e,t))}}),"system"===nE&&(0,r.jsx)(xr,{loading:ns,prompt:nt,translate:M}),"tools"===nE&&(0,r.jsx)(xo,{loading:ns,tools:nr,translate:M}),"session"===nE&&(0,r.jsx)("div",{className:"session-info-page",style:{background:"var(--bg-panel)",borderBottom:"1px solid var(--border)",boxShadow:"0 10px 28px rgba(0,0,0,0.10)",padding:"12px 16px"},children:nh?(e=nh.totalActiveMs??0,t=[...nh.sessionName?[{label:M("session.name"),value:nh.sessionName,copyField:null}]:[],{label:M("session.file"),value:nh.sessionFile??M("session.inMemory"),copyField:"file"},{label:M("session.id"),value:nh.sessionId,copyField:"id"},...e>0?[{label:M("session.totalActive"),value:lz(e),copyField:null}]:[]],n=[...q?[{label:M("session.projectDir"),value:q.projectRoot??q.cwd,copyField:"projectDir"}]:[],...q?.branch?[{label:M("session.gitBranch"),value:q.branch,copyField:"gitBranch"}]:[],...q?.isWorktree?[{label:M("session.gitWorktree"),value:q.cwd,copyField:"gitWorktree"}]:[]],a=[[M("session.user"),nh.userMessages.toLocaleString($)],[M("session.assistant"),nh.assistantMessages.toLocaleString($)],[M("session.toolCalls"),nh.toolCalls.toLocaleString($)],[M("session.toolResults"),nh.toolResults.toLocaleString($)],[M("session.total"),nh.totalMessages.toLocaleString($)]],c=[[M("session.input"),nh.tokens.input.toLocaleString($)],[M("session.output"),nh.tokens.output.toLocaleString($)],...nh.tokens.cacheRead>0?[[M("session.cacheRead"),nh.tokens.cacheRead.toLocaleString($)]]:[],...nh.tokens.cacheWrite>0?[[M("session.cacheWrite"),nh.tokens.cacheWrite.toLocaleString($)]]:[],[M("session.total"),nh.tokens.total.toLocaleString($)]],d=nS??nh.contextUsage,g=[...nh.cost>0?[[M("session.cost"),`${nh.cost.toFixed(4)}`]]:[],...d?.contextWindow?[[M("session.context"),`${null!==d.percent?`${d.percent.toFixed(1)}%`:"?"} / ${lA(d.contextWindow)}`]]:[],...nh.tokens.cacheRead+nh.tokens.cacheWrite>0&&nh.tokens.cacheRead+nh.tokens.cacheWrite+nh.tokens.input>0?[[M("session.cacheHitRate"),`${(nh.tokens.cacheRead/(nh.tokens.cacheRead+nh.tokens.cacheWrite+nh.tokens.input)*100).toFixed(1)}%`]]:[]],x=function(e,t){let n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"left",i=arguments.length>3&&void 0!==arguments[3]&&arguments[3];return(0,r.jsxs)("div",{style:{minWidth:0},children:[(0,r.jsx)("div",{style:{fontSize:11,fontWeight:700,color:"var(--text)",marginBottom:6},children:e}),(0,r.jsx)("div",{style:{display:"grid",gridTemplateColumns:i?"max-content max-content":"auto minmax(0, 1fr)",columnGap:i?14:12,rowGap:4,justifyContent:i?"start":void 0},children:t.map(t=>{let[s,o]=t;return(0,r.jsxs)("div",{style:{display:"contents"},children:[(0,r.jsx)("div",{style:{color:"var(--text-dim)",whiteSpace:"nowrap"},children:s}),(0,r.jsx)("div",{style:{color:"var(--text-muted)",minWidth:0,overflowWrap:i?"normal":"anywhere",textAlign:n,whiteSpace:"right"===n?"nowrap":"normal"},children:o})]},`${e}:${s}`)})})]})},v={file:"session.copyFile",id:"session.copyId",projectDir:"session.copyProjectDir",gitBranch:"session.copyGitBranch",gitWorktree:"session.copyGitWorktree"},b=(e,t)=>{let n=ny===e;return(0,r.jsx)("button",{type:"button",title:n?M("session.copied"):M(v[e]),onClick:()=>nw(e,t),style:{alignSelf:"start",display:"inline-flex",alignItems:"center",justifyContent:"center",width:22,height:22,marginTop:-2,color:n?"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=n?"var(--accent)":"var(--text-dim)",e.currentTarget.style.borderColor="var(--border)",e.currentTarget.style.background="transparent"},children:n?(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"})]})})},y=(0,r.jsxs)("div",{style:{minWidth:0},children:[(0,r.jsx)("div",{style:{fontSize:11,fontWeight:700,color:"var(--text)",marginBottom:6},children:M("session.infoSection")}),(0,r.jsx)("div",{style:{display:"grid",gridTemplateColumns:"auto minmax(0, 1fr) auto",columnGap:12,rowGap:8,alignItems:"start"},children:t.map(e=>(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"},children:e.value}),(0,r.jsx)("div",{children:e.copyField?b(e.copyField,e.value):null})]},`session-info:${e.label}`))})]}),j=n.length>0?(0,r.jsxs)("div",{style:{minWidth:0},children:[(0,r.jsx)("div",{style:{fontSize:11,fontWeight:700,color:"var(--text)",marginBottom:6},children:M("session.projectSection")}),(0,r.jsx)("div",{style:{display:"grid",gridTemplateColumns:"auto minmax(0, 1fr) auto",columnGap:12,rowGap:8,alignItems:"start"},children:n.map(e=>(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"},children:e.value}),(0,r.jsx)("div",{children:e.copyField?b(e.copyField,e.value):null})]},`project-info:${e.label}`))})]}):null,(0,r.jsxs)("div",{className:"session-stats-details",style:{display:"grid",gridTemplateColumns:I?"1fr":"minmax(360px, 1.7fr) minmax(140px, 0.55fr) minmax(190px, 0.75fr)",gap:I?16:24,fontSize:12,lineHeight:1.5,fontFamily:"var(--font-mono)"},children:[(0,r.jsxs)("div",{style:{display:"flex",flexDirection:"column",gap:I?16:20},children:[y,j]}),x(M("session.messages"),a),x(M("session.tokens"),[...c,...g],"right",!0)]})):(0,r.jsx)("div",{style:{fontSize:12,color:"var(--text-muted)",fontStyle:"italic"},children:M("session.load")})})]})]}),(0,r.jsx)("div",{className:"workspace-chat-view"+(nE||e_?" is-covered":""),inert:!!(nE||e_),"aria-hidden":!!nE||!!e_||void 0,children:N?(0,r.jsx)(lD,{sessions:et,runningSessionIds:eo,cwd:n9,onSelectSession:rd,onNewSession:()=>{n9?em.current?.startNewSessionIn({cwd:n9}):em.current?.openFolderForNewSession(e=>em.current?.startNewSessionIn(e),null)},onOpenProject:()=>em.current?.openFolderForNewSession(e=>em.current?.startNewSessionIn(e),null)}):rK?(0,r.jsx)(lE,{session:q,searchTarget:ez?.sessionId===q?.id?ez:null,onSearchTargetHandled:eO,initialScrollPosition:q?eA.current.get(q.id)??null:null,onScrollPositionChange:eP,sessionRunning:!!(q&&eo.has(q.id)),newSessionCwd:rR,newSessionDraftKey:rL,newSessionContextBar:rU,newSessionProjectName:rH,onChooseNewSessionProject:e=>rB.current?.openProjectMenu(e),initialNewSessionChoices:null===q?ew:null,onNewSessionChoicesChange:eC,onAgentEnd:rm,onToolEnd:ry,onAttentionNeeded:rg,onSessionCreated:rh,onSessionForked:rj,modelsRefreshKey:eU,chatInputRef:tJ,onBranchDataChange:t9,onSystemPromptChange:nd,onSystemToolsChange:nu,onSystemInfoLoaderChange:np,onSessionStatsChange:nb,onSessionStatsPanelOpen:nP,sessionStatsControl:I?void 0:r9(!1),onOpenSettings:nz,onContextUsageChange:nN,onOpenFile:rN,onFilesUploaded:rv,onOpenSubagent:r$,onAskInNewChat:rk,quoteSelectionEnabled:B,initialPrompt:tY?.sessionId===q?.id?tY?.text:void 0,onInitialPromptConsumed:()=>tG(null),soundEnabled:P,onSoundToggle:z,playDoneSound:W,unlockAudio:O,holdAudio:F},eR):"validating"===eN?(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:M("workspace.opening")}),(0,r.jsx)("div",{style:{maxWidth:"min(720px, 100%)",overflowWrap:"anywhere",fontFamily:"var(--font-mono)",fontSize:12},children:S.requestedCwd})]}):"error"===eN?(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:"#dc2626"},children:M("workspace.unable")}),(0,r.jsx)("div",{style:{maxWidth:"min(720px, 100%)",overflowWrap:"anywhere",fontFamily:"var(--font-mono)",fontSize:12},children:S.requestedCwd}),(0,r.jsx)("div",{style:{maxWidth:720,fontSize:12},children:e$})]}):rZ?n9?(0,r.jsx)("div",{style:{height:"100%",display:"flex",alignItems:"center",justifyContent:"center",color:"var(--text-muted)",fontSize:15},children:M("workspace.selectSession")}):(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:M("workspace.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."}),M("workspace.selectProject"),(0,r.jsx)("br",{}),(0,r.jsx)("span",{style:{color:"var(--text-dim)",marginRight:6},children:"2."}),M("workspace.addModels")]})]})]}):null})]})]}),(0,r.jsx)("div",{"aria-hidden":"true",className:`right-panel-overlay-backdrop${ts?" is-open":""}`,onClick:nD}),ts&&!tf&&(0,r.jsx)("div",{...tP.separatorProps,"aria-controls":"file-panel",className:`panel-resize-handle right-panel-resize-handle${tP.isResizing||tz.isResizing?" is-resizing":""}`,"data-resize-handle":"right-panel",title:`${M("layout.resizeFilePanel")}: ${M("layout.resizeHint")}`}),(0,r.jsxs)("div",{ref:tU,id:"file-panel",className:`right-panel-container${ts?" right-panel-open":" right-panel-closed"}${tf?" right-panel-reading-expanded":""}${ty?" is-tree-collapsed":""}${tP.isResizing||tz.isResizing?" right-panel-resizing":""}`,style:{"--workbench-tree-width":`${tz.width}px`,display:"flex",flexDirection:"column",borderLeft:"1px solid var(--border)",background:"var(--bg)"},children:[(0,r.jsxs)("div",{className:"file-panel-header",style:{display:"flex",alignItems:"center",flexShrink:0,height:"calc(36px + env(safe-area-inset-top))",paddingTop:"env(safe-area-inset-top)",background:"var(--bg-panel)",borderBottom:"1px solid var(--border)"},children:[(0,r.jsx)("div",{style:{flex:1,overflow:"hidden"},children:(0,r.jsx)(gG,{tabs:R&&0===n0.length?[{id:"file-picker",label:M("workbench.openFile"),filePath:""}]:n0,activeTabId:tg?"":ta??(R&&0===n0.length?"file-picker":""),onSelectTab:e=>{tl("file-picker"===e?null:e),th("file")},onCloseTab:e=>{"file-picker"===e?nD():rI(e)},onOpenFiles:R?()=>{th("file"),tb(!1)}:void 0})}),R&&(!tc||ty)&&(0,r.jsx)("button",{ref:tj,type:"button",className:"file-tree-toggle",onClick:tw,"aria-controls":"workbench-file-tree","aria-expanded":!ty,title:M(ty?"files.showDirectory":"files.hideDirectory"),"aria-label":M(ty?"files.showDirectory":"files.hideDirectory"),children:(0,r.jsxs)("svg",{width:"16",height:"16",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"1.6",strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":"true",children:[(0,r.jsx)("rect",{x:"3",y:"4",width:"18",height:"16",rx:"3"}),(0,r.jsx)("path",{d:"M15 4v16"}),(0,r.jsx)("path",{d:ty?"m10 9-3 3 3 3":"m8 9 3 3-3 3"})]})}),R&&(0,r.jsx)("button",{type:"button",className:"file-panel-expand-button",onClick:nB,"aria-controls":"file-panel","aria-pressed":tf,title:M(tf?"files.restorePanelWidth":"files.expandPanel"),"aria-label":M(tf?"files.restorePanelWidth":"files.expandPanel"),children:(0,r.jsx)("svg",{width:"18",height:"18",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"1.7",strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":"true",children:(0,r.jsx)("path",{d:"M14 4h6v6M20 4l-6 6M10 20H4v-6M4 20l6-6"})})}),(0,r.jsx)("button",{type:"button",onClick:nD,className:"file-panel-close-button","aria-controls":"file-panel","aria-expanded":ts,title:M("files.hidePanel"),"aria-label":M("files.hidePanel"),style:{display:"flex",alignItems:"center",justifyContent:"center",width:36,height:36,padding:0,background:"transparent",border:"none",borderRadius:8,color:"var(--text-muted)",cursor:"pointer",flexShrink:0,transition:"color 0.12s, background 0.12s"},children:(0,r.jsxs)("svg",{width:"18",height:"18",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"1.7",strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":"true",children:[(0,r.jsx)("rect",{x:"3",y:"4",width:"18",height:"16",rx:"3.5"}),(0,r.jsx)("path",{d:"M12 4v16"})]})})]}),(0,r.jsxs)("div",{className:"workbench-files-body",inert:tg,"aria-hidden":tg||void 0,children:[(0,r.jsxs)("div",{className:"workbench-file-preview",style:{flex:1,minWidth:0,minHeight:0,overflow:"hidden",paddingBottom:"env(safe-area-inset-bottom)"},children:[rG?.filePath?(0,r.jsx)(gJ,{filePath:rG.filePath,cwd:n9??void 0,sourceSessionId:rG.sourceSessionId,gitRefreshKey:eF,initialDisplayMode:rG.initialDisplayMode,initialPage:rG.page,initialState:rG.viewerState,watchEnabled:ts,onStateChange:e=>n1(nK,rG.id,rG.viewerRevision??0,e),onMentionLines:ts?n3:void 0,onAtMention:n4,onOpenFile:(e,t)=>rC(e,ed(e),{sourceSessionId:rG.sourceSessionId,page:t})},`${nK}:${rG.id}:${rG.viewerRevision??0}`):nV.some(e=>e.id===ta)||rX?null:(0,r.jsxs)("div",{className:"workbench-file-empty",children:[(0,r.jsx)("svg",{width:"32",height:"32",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"1.5",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)("strong",{children:M("workbench.openFile")}),(0,r.jsx)("span",{children:M(R?"workbench.pickFile":"files.noneOpen")})]}),nV.map(e=>(0,r.jsx)("div",{hidden:e.id!==ta,style:{width:"100%",height:"100%"},children:(0,r.jsx)(xH,{tab:e,active:ts&&!tg&&e.id===ta,onRestart:()=>nJ(t=>t.map(t=>t.id===e.id?{...t,closing:"restart"}:t)),onClosed:()=>{let t,n;return t="restart"===e.closing?xK(e.cwd):null,n=nV.filter(t=>t.id!==e.id),void(nJ(n=>n.flatMap(n=>n.id!==e.id?[n]:t?[t]:[])),tl(r=>r!==e.id?r:t?.id??n.at(-1)?.id??n_.at(-1)?.id??x2(nX)),!R&&!t&&!n.length&&!n_.length&&!nX.length&&to(!1))},onCloseError:()=>nJ(t=>t.map(t=>t.id===e.id?{...t,closing:void 0}:t))})},e.id)),rX&&(0,r.jsx)(xx,{sessionId:rX.sessionId,fallbackLabel:rX.label,running:eo.has(rX.sessionId),onOpenFile:rN},rX.sessionId)]}),(0,r.jsxs)("div",{className:"workbench-tree-boundary",inert:ty,"aria-hidden":ty||void 0,children:[(0,r.jsx)("div",{className:"workbench-tree-resizer",...tz.separatorProps,"aria-controls":"workbench-file-tree"}),!tc&&(0,r.jsx)("button",{type:"button",className:"workbench-tree-collapse",onClick:tw,"aria-controls":"workbench-file-tree","aria-expanded":!ty,title:M("files.hideDirectory"),"aria-label":M("files.hideDirectory"),children:(0,r.jsx)("svg",{width:"12",height:"12",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:"m9 6 6 6-6 6"})})})]}),(0,r.jsx)("div",{ref:tK,id:"workbench-file-tree",className:"workbench-file-tree",inert:ty,"aria-hidden":ty||void 0}),R&&ty&&(0,r.jsx)("button",{ref:tk,type:"button",className:"workbench-tree-restore",onClick:tw,"aria-label":M("files.showDirectory"),title:M("files.showDirectory"),"aria-controls":"workbench-file-tree","aria-expanded":!1})]})]})]})]})]}),eJ&&rq&&(0,r.jsx)(g0,{cwd:rq,busy:eX,error:e0,onCancel:()=>{eX||eY(!1)},onConfirm:()=>void rV(),onStatus:eV})]})}},60680:e=>{e.exports={pet:"PetWidget_pet__9_QnF",small:"PetWidget_small__a2Rzg",speech:"PetWidget_speech__PXfM6",bubble:"PetWidget_bubble__cBZ22",appear:"PetWidget_appear__CUcfS",character:"PetWidget_character__hqkOo",ground:"PetWidget_ground__oWdv_",portrait:"PetWidget_portrait__B5Met",more:"PetWidget_more__cxDnE",actions:"PetWidget_actions__iaBlw",actionHeading:"PetWidget_actionHeading__EWHSZ",actionGrid:"PetWidget_actionGrid__zMRnr",actionFooter:"PetWidget_actionFooter__xKrTO",patIcon:"PetWidget_patIcon__2pVj1",hearts:"PetWidget_hearts__CZkmg","heart-rise":"PetWidget_heart-rise__4KF7P",zzz:"PetWidget_zzz__bRvNM",doze:"PetWidget_doze__cre64"}},65954:e=>{e.exports={trigger:"ContextUsageIndicator_trigger__lY_Lq",tooltip:"ContextUsageIndicator_tooltip__F8l0T",counts:"ContextUsageIndicator_counts__nqC8l"}},77476:e=>{e.exports={backdrop:"CreateProjectDialog_backdrop__tiFcs",dialog:"CreateProjectDialog_dialog__fsNEp",header:"CreateProjectDialog_header__2piIO",close:"CreateProjectDialog_close__Vl9Hu",nameField:"CreateProjectDialog_nameField__03vpH",nameIcon:"CreateProjectDialog_nameIcon__eYBVG",sources:"CreateProjectDialog_sources__t4b19",sourceCard:"CreateProjectDialog_sourceCard__flGNA",add:"CreateProjectDialog_add__wOO50",hasFolder:"CreateProjectDialog_hasFolder__kxevb",folderRow:"CreateProjectDialog_folderRow__w8vpD",folderText:"CreateProjectDialog_folderText__HK4Zh",sourceOptions:"CreateProjectDialog_sourceOptions__EyQMP",recent:"CreateProjectDialog_recent__zX_4A",hint:"CreateProjectDialog_hint___jLU5",error:"CreateProjectDialog_error__tvB_c",footer:"CreateProjectDialog_footer__bEVEz",cancel:"CreateProjectDialog_cancel__VxOsN",submit:"CreateProjectDialog_submit__VFoxI"}},84123:e=>{e.exports={trigger:"AppUpdateButton_trigger__9_G7T",available:"AppUpdateButton_available__nSLjT",panel:"AppUpdateButton_panel__aGx5C",check:"AppUpdateButton_check__yhMl_",versions:"AppUpdateButton_versions__m0oQD",command:"AppUpdateButton_command__sOGem"}},88576:e=>{e.exports={rail:"ChatMinimap_rail__wdMpw",node:"ChatMinimap_node__H6R9H",marker:"ChatMinimap_marker__NEjJc",preview:"ChatMinimap_preview__laAya",earlier:"ChatMinimap_earlier__IxOXN",turn:"ChatMinimap_turn__fZuce",number:"ChatMinimap_number__3C_cY",toolBadge:"ChatMinimap_toolBadge__fzFQn",content:"ChatMinimap_content__C7_ju",user:"ChatMinimap_user__WHJHv",userText:"ChatMinimap_userText__Nj9jo",assistant:"ChatMinimap_assistant__s6JLb",assistantJump:"ChatMinimap_assistantJump__3CM2M",outline:"ChatMinimap_outline__aleIF",list:"ChatMinimap_list__g9HUb",paragraph:"ChatMinimap_paragraph__EqWlO",heading:"ChatMinimap_heading__djZbv"}}},e=>{e.O(0,[3950,7330,3888,9932,1278,8441,3794,7358],()=>e(e.s=41767)),_N_E=e.O()}]);