@surething/cockpit 1.0.205 → 1.0.207

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 (324) hide show
  1. package/.next-prod/BUILD_ID +1 -1
  2. package/.next-prod/app-path-routes-manifest.json +25 -25
  3. package/.next-prod/build-manifest.json +3 -3
  4. package/.next-prod/prerender-manifest.json +3 -3
  5. package/.next-prod/react-loadable-manifest.json +3 -3
  6. package/.next-prod/required-server-files.js +12 -0
  7. package/.next-prod/required-server-files.json +12 -0
  8. package/.next-prod/server/app/_global-error/page.js.nft.json +1 -1
  9. package/.next-prod/server/app/_global-error/page_client-reference-manifest.js +1 -1
  10. package/.next-prod/server/app/_global-error.html +1 -1
  11. package/.next-prod/server/app/_global-error.rsc +1 -1
  12. package/.next-prod/server/app/_global-error.segments/_full.segment.rsc +1 -1
  13. package/.next-prod/server/app/_global-error.segments/_global-error/__PAGE__.segment.rsc +1 -1
  14. package/.next-prod/server/app/_global-error.segments/_global-error.segment.rsc +1 -1
  15. package/.next-prod/server/app/_global-error.segments/_head.segment.rsc +1 -1
  16. package/.next-prod/server/app/_global-error.segments/_index.segment.rsc +1 -1
  17. package/.next-prod/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  18. package/.next-prod/server/app/_not-found/page.js +2 -2
  19. package/.next-prod/server/app/_not-found/page.js.nft.json +1 -1
  20. package/.next-prod/server/app/_not-found/page_client-reference-manifest.js +1 -1
  21. package/.next-prod/server/app/_not-found.html +2 -2
  22. package/.next-prod/server/app/_not-found.rsc +4 -3
  23. package/.next-prod/server/app/_not-found.segments/_full.segment.rsc +4 -3
  24. package/.next-prod/server/app/_not-found.segments/_head.segment.rsc +1 -1
  25. package/.next-prod/server/app/_not-found.segments/_index.segment.rsc +4 -3
  26. package/.next-prod/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +1 -1
  27. package/.next-prod/server/app/_not-found.segments/_not-found.segment.rsc +1 -1
  28. package/.next-prod/server/app/_not-found.segments/_tree.segment.rsc +3 -2
  29. package/.next-prod/server/app/api/bash/route.js +1 -1
  30. package/.next-prod/server/app/api/bash/route.js.nft.json +1 -1
  31. package/.next-prod/server/app/api/chat/codex/route.js +3 -3
  32. package/.next-prod/server/app/api/chat/codex/route.js.nft.json +1 -1
  33. package/.next-prod/server/app/api/chat/deepseek/route.js +6 -6
  34. package/.next-prod/server/app/api/chat/deepseek/route.js.nft.json +1 -1
  35. package/.next-prod/server/app/api/chat/kimi/route.js +3 -3
  36. package/.next-prod/server/app/api/chat/kimi/route.js.nft.json +1 -1
  37. package/.next-prod/server/app/api/chat/ollama/route.js +7 -7
  38. package/.next-prod/server/app/api/chat/ollama/route.js.nft.json +1 -1
  39. package/.next-prod/server/app/api/chat/route.js +3 -3
  40. package/.next-prod/server/app/api/chat/route.js.nft.json +1 -1
  41. package/.next-prod/server/app/api/claude-stats/route.js +1 -1
  42. package/.next-prod/server/app/api/claude-stats/route.js.nft.json +1 -1
  43. package/.next-prod/server/app/api/commands/route.js +1 -1
  44. package/.next-prod/server/app/api/commands/route.js.nft.json +1 -1
  45. package/.next-prod/server/app/api/comments/route.js +1 -1
  46. package/.next-prod/server/app/api/comments/route.js.nft.json +1 -1
  47. package/.next-prod/server/app/api/db/columns/route.js +4 -4
  48. package/.next-prod/server/app/api/db/columns/route.js.nft.json +1 -1
  49. package/.next-prod/server/app/api/db/connect/route.js +1 -1
  50. package/.next-prod/server/app/api/db/connect/route.js.nft.json +1 -1
  51. package/.next-prod/server/app/api/db/disconnect/route.js +1 -1
  52. package/.next-prod/server/app/api/db/disconnect/route.js.nft.json +1 -1
  53. package/.next-prod/server/app/api/db/export/route.js +1 -1
  54. package/.next-prod/server/app/api/db/export/route.js.nft.json +1 -1
  55. package/.next-prod/server/app/api/db/query/route.js +1 -1
  56. package/.next-prod/server/app/api/db/query/route.js.nft.json +1 -1
  57. package/.next-prod/server/app/api/db/schemas/route.js +2 -2
  58. package/.next-prod/server/app/api/db/schemas/route.js.nft.json +1 -1
  59. package/.next-prod/server/app/api/extension/version/route.js +1 -1
  60. package/.next-prod/server/app/api/extension/version/route.js.nft.json +1 -1
  61. package/.next-prod/server/app/api/file/route.js +1 -1
  62. package/.next-prod/server/app/api/file/route.js.nft.json +1 -1
  63. package/.next-prod/server/app/api/files/blame/route.js +1 -1
  64. package/.next-prod/server/app/api/files/blame/route.js.nft.json +1 -1
  65. package/.next-prod/server/app/api/files/clipboard/route.js +1 -1
  66. package/.next-prod/server/app/api/files/clipboard/route.js.nft.json +1 -1
  67. package/.next-prod/server/app/api/files/copy/route.js +1 -1
  68. package/.next-prod/server/app/api/files/copy/route.js.nft.json +1 -1
  69. package/.next-prod/server/app/api/files/delete/route.js +1 -1
  70. package/.next-prod/server/app/api/files/delete/route.js.nft.json +1 -1
  71. package/.next-prod/server/app/api/files/expanded/route.js +1 -1
  72. package/.next-prod/server/app/api/files/expanded/route.js.nft.json +1 -1
  73. package/.next-prod/server/app/api/files/index/route.js +1 -1
  74. package/.next-prod/server/app/api/files/index/route.js.nft.json +1 -1
  75. package/.next-prod/server/app/api/files/init/route.js +1 -1
  76. package/.next-prod/server/app/api/files/init/route.js.nft.json +1 -1
  77. package/.next-prod/server/app/api/files/paste/route.js +1 -1
  78. package/.next-prod/server/app/api/files/paste/route.js.nft.json +1 -1
  79. package/.next-prod/server/app/api/files/read/route.js +1 -1
  80. package/.next-prod/server/app/api/files/read/route.js.nft.json +1 -1
  81. package/.next-prod/server/app/api/files/readdir/route.js +1 -1
  82. package/.next-prod/server/app/api/files/readdir/route.js.nft.json +1 -1
  83. package/.next-prod/server/app/api/files/recent/route.js +1 -1
  84. package/.next-prod/server/app/api/files/recent/route.js.nft.json +1 -1
  85. package/.next-prod/server/app/api/files/save/route.js +1 -1
  86. package/.next-prod/server/app/api/files/save/route.js.nft.json +1 -1
  87. package/.next-prod/server/app/api/files/search/route.js +1 -1
  88. package/.next-prod/server/app/api/files/search/route.js.nft.json +1 -1
  89. package/.next-prod/server/app/api/files/stat/route.js +1 -1
  90. package/.next-prod/server/app/api/files/stat/route.js.nft.json +1 -1
  91. package/.next-prod/server/app/api/files/text/route.js +1 -1
  92. package/.next-prod/server/app/api/files/text/route.js.nft.json +1 -1
  93. package/.next-prod/server/app/api/git/branch-diff/route.js +1 -1
  94. package/.next-prod/server/app/api/git/branch-diff/route.js.nft.json +1 -1
  95. package/.next-prod/server/app/api/git/branches/route.js +1 -1
  96. package/.next-prod/server/app/api/git/branches/route.js.nft.json +1 -1
  97. package/.next-prod/server/app/api/git/commit-diff/route.js +1 -1
  98. package/.next-prod/server/app/api/git/commit-diff/route.js.nft.json +1 -1
  99. package/.next-prod/server/app/api/git/commits/route.js +1 -1
  100. package/.next-prod/server/app/api/git/commits/route.js.nft.json +1 -1
  101. package/.next-prod/server/app/api/git/diff/route.js +1 -1
  102. package/.next-prod/server/app/api/git/diff/route.js.nft.json +1 -1
  103. package/.next-prod/server/app/api/git/discard/route.js +1 -1
  104. package/.next-prod/server/app/api/git/discard/route.js.nft.json +1 -1
  105. package/.next-prod/server/app/api/git/stage/route.js +1 -1
  106. package/.next-prod/server/app/api/git/stage/route.js.nft.json +1 -1
  107. package/.next-prod/server/app/api/git/status/route.js +1 -1
  108. package/.next-prod/server/app/api/git/status/route.js.nft.json +1 -1
  109. package/.next-prod/server/app/api/git/unstage/route.js +1 -1
  110. package/.next-prod/server/app/api/git/unstage/route.js.nft.json +1 -1
  111. package/.next-prod/server/app/api/git/worktree/route.js +1 -1
  112. package/.next-prod/server/app/api/git/worktree/route.js.nft.json +1 -1
  113. package/.next-prod/server/app/api/global-state/route.js +1 -1
  114. package/.next-prod/server/app/api/global-state/route.js.nft.json +1 -1
  115. package/.next-prod/server/app/api/jupyter/load/route.js +1 -1
  116. package/.next-prod/server/app/api/jupyter/load/route.js.nft.json +1 -1
  117. package/.next-prod/server/app/api/jupyter/save/route.js +1 -1
  118. package/.next-prod/server/app/api/jupyter/save/route.js.nft.json +1 -1
  119. package/.next-prod/server/app/api/jupyter/shutdown/route.js +1 -1
  120. package/.next-prod/server/app/api/jupyter/shutdown/route.js.nft.json +1 -1
  121. package/.next-prod/server/app/api/lsp/definition/route.js +1 -1
  122. package/.next-prod/server/app/api/lsp/definition/route.js.nft.json +1 -1
  123. package/.next-prod/server/app/api/lsp/hover/route.js +1 -1
  124. package/.next-prod/server/app/api/lsp/hover/route.js.nft.json +1 -1
  125. package/.next-prod/server/app/api/lsp/references/route.js +1 -1
  126. package/.next-prod/server/app/api/lsp/references/route.js.nft.json +1 -1
  127. package/.next-prod/server/app/api/lsp/status/route.js +1 -1
  128. package/.next-prod/server/app/api/lsp/status/route.js.nft.json +1 -1
  129. package/.next-prod/server/app/api/lsp/warmup/route.js +1 -1
  130. package/.next-prod/server/app/api/lsp/warmup/route.js.nft.json +1 -1
  131. package/.next-prod/server/app/api/mysql/columns/route.js +4 -4
  132. package/.next-prod/server/app/api/mysql/columns/route.js.nft.json +1 -1
  133. package/.next-prod/server/app/api/mysql/connect/route.js +1 -1
  134. package/.next-prod/server/app/api/mysql/connect/route.js.nft.json +1 -1
  135. package/.next-prod/server/app/api/mysql/disconnect/route.js +1 -1
  136. package/.next-prod/server/app/api/mysql/disconnect/route.js.nft.json +1 -1
  137. package/.next-prod/server/app/api/mysql/export/route.js +1 -1
  138. package/.next-prod/server/app/api/mysql/export/route.js.nft.json +1 -1
  139. package/.next-prod/server/app/api/mysql/query/route.js +1 -1
  140. package/.next-prod/server/app/api/mysql/query/route.js.nft.json +1 -1
  141. package/.next-prod/server/app/api/mysql/schemas/route.js +2 -2
  142. package/.next-prod/server/app/api/mysql/schemas/route.js.nft.json +1 -1
  143. package/.next-prod/server/app/api/neo4j/connect/route.js +1 -1
  144. package/.next-prod/server/app/api/neo4j/connect/route.js.nft.json +1 -1
  145. package/.next-prod/server/app/api/neo4j/disconnect/route.js +1 -1
  146. package/.next-prod/server/app/api/neo4j/disconnect/route.js.nft.json +1 -1
  147. package/.next-prod/server/app/api/neo4j/query/route.js +1 -1
  148. package/.next-prod/server/app/api/neo4j/query/route.js.nft.json +1 -1
  149. package/.next-prod/server/app/api/neo4j/schema/route.js +1 -1
  150. package/.next-prod/server/app/api/neo4j/schema/route.js.nft.json +1 -1
  151. package/.next-prod/server/app/api/note/route.js +1 -1
  152. package/.next-prod/server/app/api/note/route.js.nft.json +1 -1
  153. package/.next-prod/server/app/api/ollama/models/route.js +1 -1
  154. package/.next-prod/server/app/api/ollama/models/route.js.nft.json +1 -1
  155. package/.next-prod/server/app/api/ollama/start/route.js +1 -1
  156. package/.next-prod/server/app/api/ollama/start/route.js.nft.json +1 -1
  157. package/.next-prod/server/app/api/open-cursor/route.js +1 -1
  158. package/.next-prod/server/app/api/open-cursor/route.js.nft.json +1 -1
  159. package/.next-prod/server/app/api/open-vscode/route.js +1 -1
  160. package/.next-prod/server/app/api/open-vscode/route.js.nft.json +1 -1
  161. package/.next-prod/server/app/api/pick-folder/route.js +1 -1
  162. package/.next-prod/server/app/api/pick-folder/route.js.nft.json +1 -1
  163. package/.next-prod/server/app/api/pinned-sessions/route.js +1 -1
  164. package/.next-prod/server/app/api/pinned-sessions/route.js.nft.json +1 -1
  165. package/.next-prod/server/app/api/project-settings/route.js +1 -1
  166. package/.next-prod/server/app/api/project-settings/route.js.nft.json +1 -1
  167. package/.next-prod/server/app/api/project-state/route.js +1 -1
  168. package/.next-prod/server/app/api/project-state/route.js.nft.json +1 -1
  169. package/.next-prod/server/app/api/projectGraph/file/route.js +1 -1
  170. package/.next-prod/server/app/api/projectGraph/file/route.js.nft.json +1 -1
  171. package/.next-prod/server/app/api/projectGraph/file-functions/route.js +1 -1
  172. package/.next-prod/server/app/api/projectGraph/file-functions/route.js.nft.json +1 -1
  173. package/.next-prod/server/app/api/projectGraph/search/route.js +1 -1
  174. package/.next-prod/server/app/api/projectGraph/search/route.js.nft.json +1 -1
  175. package/.next-prod/server/app/api/projects/route.js +1 -1
  176. package/.next-prod/server/app/api/projects/route.js.nft.json +1 -1
  177. package/.next-prod/server/app/api/redis/command/route.js +1 -1
  178. package/.next-prod/server/app/api/redis/command/route.js.nft.json +1 -1
  179. package/.next-prod/server/app/api/redis/connect/route.js +1 -1
  180. package/.next-prod/server/app/api/redis/connect/route.js.nft.json +1 -1
  181. package/.next-prod/server/app/api/redis/delete/route.js +1 -1
  182. package/.next-prod/server/app/api/redis/delete/route.js.nft.json +1 -1
  183. package/.next-prod/server/app/api/redis/disconnect/route.js +1 -1
  184. package/.next-prod/server/app/api/redis/disconnect/route.js.nft.json +1 -1
  185. package/.next-prod/server/app/api/redis/get/route.js +1 -1
  186. package/.next-prod/server/app/api/redis/get/route.js.nft.json +1 -1
  187. package/.next-prod/server/app/api/redis/keys/route.js +1 -1
  188. package/.next-prod/server/app/api/redis/keys/route.js.nft.json +1 -1
  189. package/.next-prod/server/app/api/redis/set/route.js +1 -1
  190. package/.next-prod/server/app/api/redis/set/route.js.nft.json +1 -1
  191. package/.next-prod/server/app/api/review/[id]/comments/route.js +1 -1
  192. package/.next-prod/server/app/api/review/[id]/comments/route.js.nft.json +1 -1
  193. package/.next-prod/server/app/api/review/[id]/replies/route.js +1 -1
  194. package/.next-prod/server/app/api/review/[id]/replies/route.js.nft.json +1 -1
  195. package/.next-prod/server/app/api/review/[id]/route.js +1 -1
  196. package/.next-prod/server/app/api/review/[id]/route.js.nft.json +1 -1
  197. package/.next-prod/server/app/api/review/identify/route.js +1 -1
  198. package/.next-prod/server/app/api/review/identify/route.js.nft.json +1 -1
  199. package/.next-prod/server/app/api/review/order/route.js +1 -1
  200. package/.next-prod/server/app/api/review/order/route.js.nft.json +1 -1
  201. package/.next-prod/server/app/api/review/route.js +1 -1
  202. package/.next-prod/server/app/api/review/route.js.nft.json +1 -1
  203. package/.next-prod/server/app/api/review/share-info/route.js +1 -1
  204. package/.next-prod/server/app/api/review/share-info/route.js.nft.json +1 -1
  205. package/.next-prod/server/app/api/review/users/route.js +1 -1
  206. package/.next-prod/server/app/api/review/users/route.js.nft.json +1 -1
  207. package/.next-prod/server/app/api/scheduled-tasks/route.js +1 -1
  208. package/.next-prod/server/app/api/scheduled-tasks/route.js.nft.json +1 -1
  209. package/.next-prod/server/app/api/services/config/route.js +1 -1
  210. package/.next-prod/server/app/api/services/config/route.js.nft.json +1 -1
  211. package/.next-prod/server/app/api/services/scripts/route.js +1 -1
  212. package/.next-prod/server/app/api/services/scripts/route.js.nft.json +1 -1
  213. package/.next-prod/server/app/api/session/[sessionId]/fork/route.js +1 -1
  214. package/.next-prod/server/app/api/session/[sessionId]/fork/route.js.nft.json +1 -1
  215. package/.next-prod/server/app/api/session/[sessionId]/history/route.js +1 -1
  216. package/.next-prod/server/app/api/session/[sessionId]/history/route.js.nft.json +1 -1
  217. package/.next-prod/server/app/api/session-by-path/route.js +1 -1
  218. package/.next-prod/server/app/api/session-by-path/route.js.nft.json +1 -1
  219. package/.next-prod/server/app/api/sessions/projects/[encodedPath]/route.js +1 -1
  220. package/.next-prod/server/app/api/sessions/projects/[encodedPath]/route.js.nft.json +1 -1
  221. package/.next-prod/server/app/api/sessions/projects/route.js +1 -1
  222. package/.next-prod/server/app/api/sessions/projects/route.js.nft.json +1 -1
  223. package/.next-prod/server/app/api/sessions/route.js +1 -1
  224. package/.next-prod/server/app/api/sessions/route.js.nft.json +1 -1
  225. package/.next-prod/server/app/api/settings/route.js +1 -1
  226. package/.next-prod/server/app/api/settings/route.js.nft.json +1 -1
  227. package/.next-prod/server/app/api/skills/[id]/route.js +1 -1
  228. package/.next-prod/server/app/api/skills/[id]/route.js.nft.json +1 -1
  229. package/.next-prod/server/app/api/skills/content/route.js +1 -1
  230. package/.next-prod/server/app/api/skills/content/route.js.nft.json +1 -1
  231. package/.next-prod/server/app/api/skills/route.js +1 -1
  232. package/.next-prod/server/app/api/skills/route.js.nft.json +1 -1
  233. package/.next-prod/server/app/api/terminal/aliases/route.js +1 -1
  234. package/.next-prod/server/app/api/terminal/aliases/route.js.nft.json +1 -1
  235. package/.next-prod/server/app/api/terminal/autocomplete/route.js +1 -1
  236. package/.next-prod/server/app/api/terminal/autocomplete/route.js.nft.json +1 -1
  237. package/.next-prod/server/app/api/terminal/bubble-order/route.js +1 -1
  238. package/.next-prod/server/app/api/terminal/bubble-order/route.js.nft.json +1 -1
  239. package/.next-prod/server/app/api/terminal/env/route.js +1 -1
  240. package/.next-prod/server/app/api/terminal/env/route.js.nft.json +1 -1
  241. package/.next-prod/server/app/api/terminal/history/route.js +1 -1
  242. package/.next-prod/server/app/api/terminal/history/route.js.nft.json +1 -1
  243. package/.next-prod/server/app/api/version/route.js +1 -1
  244. package/.next-prod/server/app/api/version/route.js.nft.json +1 -1
  245. package/.next-prod/server/app/favicon.ico/route.js.nft.json +1 -1
  246. package/.next-prod/server/app/manifest.webmanifest/route.js.nft.json +1 -1
  247. package/.next-prod/server/app/page.js +2 -99
  248. package/.next-prod/server/app/page.js.nft.json +1 -1
  249. package/.next-prod/server/app/page_client-reference-manifest.js +1 -1
  250. package/.next-prod/server/app/project/page.js +2 -30
  251. package/.next-prod/server/app/project/page.js.nft.json +1 -1
  252. package/.next-prod/server/app/project/page_client-reference-manifest.js +1 -1
  253. package/.next-prod/server/app/review/[id]/page.js +2 -2
  254. package/.next-prod/server/app/review/[id]/page.js.nft.json +1 -1
  255. package/.next-prod/server/app/review/[id]/page_client-reference-manifest.js +1 -1
  256. package/.next-prod/server/app-paths-manifest.json +25 -25
  257. package/.next-prod/server/chunks/240.js +1 -0
  258. package/.next-prod/server/chunks/{4098.js → 5466.js} +1 -1
  259. package/.next-prod/server/chunks/554.js +101 -0
  260. package/.next-prod/server/chunks/{4272.js → 6007.js} +2 -2
  261. package/.next-prod/server/chunks/7264.js +5 -0
  262. package/.next-prod/server/chunks/8750.js +1 -0
  263. package/.next-prod/server/chunks/{4490.js → 8764.js} +1 -1
  264. package/.next-prod/server/chunks/900.js +1 -0
  265. package/.next-prod/server/chunks/9255.js +1 -0
  266. package/.next-prod/server/chunks/9658.js +59 -0
  267. package/.next-prod/server/chunks/987.js +139 -0
  268. package/.next-prod/server/functions-config-manifest.json +1 -26
  269. package/.next-prod/server/middleware-build-manifest.js +1 -1
  270. package/.next-prod/server/middleware-react-loadable-manifest.js +1 -1
  271. package/.next-prod/server/pages/404.html +2 -2
  272. package/.next-prod/server/pages/500.html +1 -1
  273. package/.next-prod/server/server-reference-manifest.json +1 -1
  274. package/.next-prod/static/chunks/{700.8d53bb1a328c3f97.js → 1959.b9473117faf354bf.js} +1 -1
  275. package/.next-prod/static/chunks/5204-c8293184aa55cdd5.js +23 -0
  276. package/.next-prod/static/chunks/5660-9053823b3dfa50f5.js +29 -0
  277. package/.next-prod/static/chunks/6028-1d6ced1439a3f01f.js +1 -0
  278. package/.next-prod/static/chunks/6345-6b34b0528ff833a1.js +14 -0
  279. package/.next-prod/static/chunks/app/layout-421143dba2c69478.js +1 -0
  280. package/.next-prod/static/chunks/app/page-db32ebfdf1ac9174.js +1 -0
  281. package/.next-prod/static/chunks/app/project/page-db32ebfdf1ac9174.js +1 -0
  282. package/.next-prod/static/chunks/app/review/[id]/page-05cd4cb51babd64c.js +1 -0
  283. package/.next-prod/static/chunks/webpack-bb0c02e3a9602d78.js +1 -0
  284. package/.next-prod/static/css/a7974d62fe853925.css +1 -0
  285. package/.next-prod/trace +12 -12
  286. package/.next-prod/trace-build +1 -1
  287. package/dist/{chunk-5NL2LMKP.mjs → chunk-HIRLDMCH.mjs} +24 -140
  288. package/dist/chunk-RSHKDWJM.mjs +136 -0
  289. package/dist/chunk-VCZEGP64.mjs +984 -0
  290. package/dist/scheduledTasks.mjs +6 -4
  291. package/dist/server-K6XWP7DX.mjs +69 -0
  292. package/dist/wsServer.mjs +60 -482
  293. package/next.config.mjs +15 -0
  294. package/package.json +15 -17
  295. package/server.mjs +1 -1
  296. package/.next-prod/server/chunks/2338.js +0 -1
  297. package/.next-prod/server/chunks/3353.js +0 -1
  298. package/.next-prod/server/chunks/3863.js +0 -1
  299. package/.next-prod/server/chunks/4732.js +0 -1
  300. package/.next-prod/server/chunks/4793.js +0 -1
  301. package/.next-prod/server/chunks/5147.js +0 -1
  302. package/.next-prod/server/chunks/5394.js +0 -1
  303. package/.next-prod/server/chunks/6043.js +0 -4
  304. package/.next-prod/server/chunks/7051.js +0 -1
  305. package/.next-prod/server/chunks/7514.js +0 -31
  306. package/.next-prod/server/chunks/8491.js +0 -5
  307. package/.next-prod/server/chunks/9298.js +0 -139
  308. package/.next-prod/static/chunks/1705-906aa28943dbc391.js +0 -4
  309. package/.next-prod/static/chunks/3530-42727255f967251e.js +0 -14
  310. package/.next-prod/static/chunks/3579-51f0ad7204c67e22.js +0 -1
  311. package/.next-prod/static/chunks/3643-fe2ac2f1accd0649.js +0 -1
  312. package/.next-prod/static/chunks/3743-1f5d8cfd9d92ad97.js +0 -4
  313. package/.next-prod/static/chunks/4186-2bbbcdf03b3c15f5.js +0 -17
  314. package/.next-prod/static/chunks/9062-8d92cbc176f388a0.js +0 -1
  315. package/.next-prod/static/chunks/9114-0d2717c9c2752d0f.js +0 -1
  316. package/.next-prod/static/chunks/app/layout-e091cf70aaec617b.js +0 -1
  317. package/.next-prod/static/chunks/app/page-c9a30c88afc0a0c5.js +0 -1
  318. package/.next-prod/static/chunks/app/project/page-bd8c46d229676a01.js +0 -29
  319. package/.next-prod/static/chunks/app/review/[id]/page-f8bb4748e9a94a0f.js +0 -1
  320. package/.next-prod/static/chunks/webpack-c6cffb10a569677a.js +0 -1
  321. package/.next-prod/static/css/23784ace5d9f83d5.css +0 -1
  322. package/dist/JupyterKernelManager-VBKKSRVJ.mjs +0 -269
  323. /package/.next-prod/static/{T6-Nq3sO9DxU5E0rsM6aX → Uvhbo45hauczMddOCJnSX}/_buildManifest.js +0 -0
  324. /package/.next-prod/static/{T6-Nq3sO9DxU5E0rsM6aX → Uvhbo45hauczMddOCJnSX}/_ssgManifest.js +0 -0
@@ -1 +0,0 @@
1
- "use strict";exports.id=3863,exports.ids=[3863],exports.modules={63863:(a,b,c)=>{c.d(b,{Ay:()=>U});let d=a=>"string"==typeof a,e=()=>{let a,b,c=new Promise((c,d)=>{a=c,b=d});return c.resolve=a,c.reject=b,c},f=a=>null==a?"":""+a,g=/###/g,h=a=>a&&a.indexOf("###")>-1?a.replace(g,"."):a,i=a=>!a||d(a),j=(a,b,c)=>{let e=d(b)?b.split("."):b,f=0;for(;f<e.length-1;){if(i(a))return{};let b=h(e[f]);!a[b]&&c&&(a[b]=new c),a=Object.prototype.hasOwnProperty.call(a,b)?a[b]:{},++f}return i(a)?{}:{obj:a,k:h(e[f])}},k=(a,b,c)=>{let{obj:d,k:e}=j(a,b,Object);if(void 0!==d||1===b.length){d[e]=c;return}let f=b[b.length-1],g=b.slice(0,b.length-1),h=j(a,g,Object);for(;void 0===h.obj&&g.length;)f=`${g[g.length-1]}.${f}`,h=j(a,g=g.slice(0,g.length-1),Object),h?.obj&&void 0!==h.obj[`${h.k}.${f}`]&&(h.obj=void 0);h.obj[`${h.k}.${f}`]=c},l=(a,b)=>{let{obj:c,k:d}=j(a,b);if(c&&Object.prototype.hasOwnProperty.call(c,d))return c[d]},m=(a,b,c)=>{for(let e in b)"__proto__"!==e&&"constructor"!==e&&(e in a?d(a[e])||a[e]instanceof String||d(b[e])||b[e]instanceof String?c&&(a[e]=b[e]):m(a[e],b[e],c):a[e]=b[e]);return a};var n={"&":"&amp;","<":"&lt;",">":"&gt;",'"':"&quot;","'":"&#39;","/":"&#x2F;"};let o=a=>d(a)?a.replace(/[&<>"'\/]/g,a=>n[a]):a;class p{constructor(a){this.capacity=a,this.regExpMap=new Map,this.regExpQueue=[]}getRegExp(a){let b=this.regExpMap.get(a);if(void 0!==b)return b;let c=new RegExp(a);return this.regExpQueue.length===this.capacity&&this.regExpMap.delete(this.regExpQueue.shift()),this.regExpMap.set(a,c),this.regExpQueue.push(a),c}}let q=[" ",",","?","!",";"],r=new p(20),s=(a,b,c=".")=>{if(!a)return;if(a[b]){if(!Object.prototype.hasOwnProperty.call(a,b))return;return a[b]}let d=b.split(c),e=a;for(let a=0;a<d.length;){let b;if(!e||"object"!=typeof e)return;let f="";for(let g=a;g<d.length;++g)if(g!==a&&(f+=c),f+=d[g],void 0!==(b=e[f])){if(["string","number","boolean"].indexOf(typeof b)>-1&&g<d.length-1)continue;a+=g-a+1;break}e=b}return e},t=a=>a?.replace(/_/g,"-"),u={type:"logger",log(a){this.output("log",a)},warn(a){this.output("warn",a)},error(a){this.output("error",a)},output(a,b){console?.[a]?.apply?.(console,b)}};class v{constructor(a,b={}){this.init(a,b)}init(a,b={}){this.prefix=b.prefix||"i18next:",this.logger=a||u,this.options=b,this.debug=b.debug}log(...a){return this.forward(a,"log","",!0)}warn(...a){return this.forward(a,"warn","",!0)}error(...a){return this.forward(a,"error","")}deprecate(...a){return this.forward(a,"warn","WARNING DEPRECATED: ",!0)}forward(a,b,c,e){return e&&!this.debug?null:(d(a[0])&&(a[0]=`${c}${this.prefix} ${a[0]}`),this.logger[b](a))}create(a){return new v(this.logger,{...{prefix:`${this.prefix}:${a}:`},...this.options})}clone(a){return(a=a||this.options).prefix=a.prefix||this.prefix,new v(this.logger,a)}}var w=new v;class x{constructor(){this.observers={}}on(a,b){return a.split(" ").forEach(a=>{this.observers[a]||(this.observers[a]=new Map);let c=this.observers[a].get(b)||0;this.observers[a].set(b,c+1)}),this}off(a,b){if(this.observers[a]){if(!b)return void delete this.observers[a];this.observers[a].delete(b)}}emit(a,...b){this.observers[a]&&Array.from(this.observers[a].entries()).forEach(([a,c])=>{for(let d=0;d<c;d++)a(...b)}),this.observers["*"]&&Array.from(this.observers["*"].entries()).forEach(([c,d])=>{for(let e=0;e<d;e++)c.apply(c,[a,...b])})}}class y extends x{constructor(a,b={ns:["translation"],defaultNS:"translation"}){super(),this.data=a||{},this.options=b,void 0===this.options.keySeparator&&(this.options.keySeparator="."),void 0===this.options.ignoreJSONStructure&&(this.options.ignoreJSONStructure=!0)}addNamespaces(a){0>this.options.ns.indexOf(a)&&this.options.ns.push(a)}removeNamespaces(a){let b=this.options.ns.indexOf(a);b>-1&&this.options.ns.splice(b,1)}getResource(a,b,c,e={}){let f,g=void 0!==e.keySeparator?e.keySeparator:this.options.keySeparator,h=void 0!==e.ignoreJSONStructure?e.ignoreJSONStructure:this.options.ignoreJSONStructure;a.indexOf(".")>-1?f=a.split("."):(f=[a,b],c&&(Array.isArray(c)?f.push(...c):d(c)&&g?f.push(...c.split(g)):f.push(c)));let i=l(this.data,f);return(!i&&!b&&!c&&a.indexOf(".")>-1&&(a=f[0],b=f[1],c=f.slice(2).join(".")),!i&&h&&d(c))?s(this.data?.[a]?.[b],c,g):i}addResource(a,b,c,d,e={silent:!1}){let f=void 0!==e.keySeparator?e.keySeparator:this.options.keySeparator,g=[a,b];c&&(g=g.concat(f?c.split(f):c)),a.indexOf(".")>-1&&(g=a.split("."),d=b,b=g[1]),this.addNamespaces(b),k(this.data,g,d),e.silent||this.emit("added",a,b,c,d)}addResources(a,b,c,e={silent:!1}){for(let e in c)(d(c[e])||Array.isArray(c[e]))&&this.addResource(a,b,e,c[e],{silent:!0});e.silent||this.emit("added",a,b,c)}addResourceBundle(a,b,c,d,e,f={silent:!1,skipCopy:!1}){let g=[a,b];a.indexOf(".")>-1&&(g=a.split("."),d=c,c=b,b=g[1]),this.addNamespaces(b);let h=l(this.data,g)||{};f.skipCopy||(c=JSON.parse(JSON.stringify(c))),d?m(h,c,e):h={...h,...c},k(this.data,g,h),f.silent||this.emit("added",a,b,c)}removeResourceBundle(a,b){this.hasResourceBundle(a,b)&&delete this.data[a][b],this.removeNamespaces(b),this.emit("removed",a,b)}hasResourceBundle(a,b){return void 0!==this.getResource(a,b)}getResourceBundle(a,b){return b||(b=this.options.defaultNS),this.getResource(a,b)}getDataByLanguage(a){return this.data[a]}hasLanguageSomeTranslations(a){let b=this.getDataByLanguage(a);return!!(b&&Object.keys(b)||[]).find(a=>b[a]&&Object.keys(b[a]).length>0)}toJSON(){return this.data}}var z={processors:{},addPostProcessor(a){this.processors[a.name]=a},handle(a,b,c,d,e){return a.forEach(a=>{b=this.processors[a]?.process(b,c,d,e)??b}),b}};let A=Symbol("i18next/PATH_KEY");function B(a,b){let c,d,e,{[A]:f}=a((d=[],(e=Object.create(null)).get=(a,b)=>(c?.revoke?.(),b===A)?d:(d.push(b),(c=Proxy.revocable(a,e)).proxy),Proxy.revocable(Object.create(null),e).proxy)),g=b?.keySeparator??".",h=b?.nsSeparator??":";if(f.length>1&&h){let a=b?.ns,c=Array.isArray(a)?a:null;if(c&&c.length>1&&c.slice(1).includes(f[0]))return`${f[0]}${h}${f.slice(1).join(g)}`}return f.join(g)}let C={},D=a=>!d(a)&&"boolean"!=typeof a&&"number"!=typeof a;class E extends x{constructor(a,b={}){super(),((a,b,c)=>{a.forEach(a=>{b[a]&&(c[a]=b[a])})})(["resourceStore","languageUtils","pluralResolver","interpolator","backendConnector","i18nFormat","utils"],a,this),this.options=b,void 0===this.options.keySeparator&&(this.options.keySeparator="."),this.logger=w.create("translator")}changeLanguage(a){a&&(this.language=a)}exists(a,b={interpolation:{}}){let c={...b};if(null==a)return!1;let d=this.resolve(a,c);if(d?.res===void 0)return!1;let e=D(d.res);return!1!==c.returnObjects||!e}extractFromKey(a,b){let c=void 0!==b.nsSeparator?b.nsSeparator:this.options.nsSeparator;void 0===c&&(c=":");let e=void 0!==b.keySeparator?b.keySeparator:this.options.keySeparator,f=b.ns||this.options.defaultNS||[],g=c&&a.indexOf(c)>-1,h=!this.options.userDefinedKeySeparator&&!b.keySeparator&&!this.options.userDefinedNsSeparator&&!b.nsSeparator&&!((a,b,c)=>{b=b||"",c=c||"";let d=q.filter(a=>0>b.indexOf(a)&&0>c.indexOf(a));if(0===d.length)return!0;let e=r.getRegExp(`(${d.map(a=>"?"===a?"\\?":a).join("|")})`),f=!e.test(a);if(!f){let b=a.indexOf(c);b>0&&!e.test(a.substring(0,b))&&(f=!0)}return f})(a,c,e);if(g&&!h){let b=a.match(this.interpolator.nestingRegexp);if(b&&b.length>0)return{key:a,namespaces:d(f)?[f]:f};let g=a.split(c);(c!==e||c===e&&this.options.ns.indexOf(g[0])>-1)&&(f=g.shift()),a=g.join(e)}return{key:a,namespaces:d(f)?[f]:f}}translate(a,b,c){let e="object"==typeof b?{...b}:b;if("object"!=typeof e&&this.options.overloadTranslationOptionHandler&&(e=this.options.overloadTranslationOptionHandler(arguments)),"object"==typeof e&&(e={...e}),e||(e={}),null==a)return"";"function"==typeof a&&(a=B(a,{...this.options,...e})),Array.isArray(a)||(a=[String(a)]),a=a.map(a=>"function"==typeof a?B(a,{...this.options,...e}):String(a));let f=void 0!==e.returnDetails?e.returnDetails:this.options.returnDetails,g=void 0!==e.keySeparator?e.keySeparator:this.options.keySeparator,{key:h,namespaces:i}=this.extractFromKey(a[a.length-1],e),j=i[i.length-1],k=void 0!==e.nsSeparator?e.nsSeparator:this.options.nsSeparator;void 0===k&&(k=":");let l=e.lng||this.language,m=e.appendNamespaceToCIMode||this.options.appendNamespaceToCIMode;if(l?.toLowerCase()==="cimode")return m?f?{res:`${j}${k}${h}`,usedKey:h,exactUsedKey:h,usedLng:l,usedNS:j,usedParams:this.getUsedParamsDetails(e)}:`${j}${k}${h}`:f?{res:h,usedKey:h,exactUsedKey:h,usedLng:l,usedNS:j,usedParams:this.getUsedParamsDetails(e)}:h;let n=this.resolve(a,e),o=n?.res,p=n?.usedKey||h,q=n?.exactUsedKey||h,r=void 0!==e.joinArrays?e.joinArrays:this.options.joinArrays,s=!this.i18nFormat||this.i18nFormat.handleAsObject,t=void 0!==e.count&&!d(e.count),u=E.hasDefaultValue(e),v=t?this.pluralResolver.getSuffix(l,e.count,e):"",w=e.ordinal&&t?this.pluralResolver.getSuffix(l,e.count,{ordinal:!1}):"",x=t&&!e.ordinal&&0===e.count,y=x&&e[`defaultValue${this.options.pluralSeparator}zero`]||e[`defaultValue${v}`]||e[`defaultValue${w}`]||e.defaultValue,z=o;s&&!o&&u&&(z=y);let A=D(z),C=Object.prototype.toString.apply(z);if(s&&z&&A&&0>["[object Number]","[object Function]","[object RegExp]"].indexOf(C)&&!(d(r)&&Array.isArray(z))){if(!e.returnObjects&&!this.options.returnObjects){this.options.returnedObjectHandler||this.logger.warn("accessing an object - but returnObjects options is not enabled!");let a=this.options.returnedObjectHandler?this.options.returnedObjectHandler(p,z,{...e,ns:i}):`key '${h} (${this.language})' returned an object instead of string.`;return f?(n.res=a,n.usedParams=this.getUsedParamsDetails(e),n):a}if(g){let a=Array.isArray(z),b=a?[]:{},c=a?q:p;for(let a in z)if(Object.prototype.hasOwnProperty.call(z,a)){let d=`${c}${g}${a}`;u&&!o?b[a]=this.translate(d,{...e,defaultValue:D(y)?y[a]:void 0,...{joinArrays:!1,ns:i}}):b[a]=this.translate(d,{...e,joinArrays:!1,ns:i}),b[a]===d&&(b[a]=z[a])}o=b}}else if(s&&d(r)&&Array.isArray(o))(o=o.join(r))&&(o=this.extendTranslation(o,a,e,c));else{let b=!1,d=!1;!this.isValidLookup(o)&&u&&(b=!0,o=y),this.isValidLookup(o)||(d=!0,o=h);let f=(e.missingKeyNoValueFallbackToKey||this.options.missingKeyNoValueFallbackToKey)&&d?void 0:o,i=u&&y!==o&&this.options.updateMissing;if(d||b||i){if(this.logger.log(i?"updateKey":"missingKey",l,j,h,i?y:o),g){let a=this.resolve(h,{...e,keySeparator:!1});a&&a.res&&this.logger.warn("Seems the loaded translations were in flat JSON format instead of nested. Either set keySeparator: false on init or make sure your translations are published in nested format.")}let a=[],b=this.languageUtils.getFallbackCodes(this.options.fallbackLng,e.lng||this.language);if("fallback"===this.options.saveMissingTo&&b&&b[0])for(let c=0;c<b.length;c++)a.push(b[c]);else"all"===this.options.saveMissingTo?a=this.languageUtils.toResolveHierarchy(e.lng||this.language):a.push(e.lng||this.language);let c=(a,b,c)=>{let d=u&&c!==o?c:f;this.options.missingKeyHandler?this.options.missingKeyHandler(a,j,b,d,i,e):this.backendConnector?.saveMissing&&this.backendConnector.saveMissing(a,j,b,d,i,e),this.emit("missingKey",a,j,b,o)};this.options.saveMissing&&(this.options.saveMissingPlurals&&t?a.forEach(a=>{let b=this.pluralResolver.getSuffixes(a,e);x&&e[`defaultValue${this.options.pluralSeparator}zero`]&&0>b.indexOf(`${this.options.pluralSeparator}zero`)&&b.push(`${this.options.pluralSeparator}zero`),b.forEach(b=>{c([a],h+b,e[`defaultValue${b}`]||y)})}):c(a,h,y))}o=this.extendTranslation(o,a,e,n,c),d&&o===h&&this.options.appendNamespaceToMissingKey&&(o=`${j}${k}${h}`),(d||b)&&this.options.parseMissingKeyHandler&&(o=this.options.parseMissingKeyHandler(this.options.appendNamespaceToMissingKey?`${j}${k}${h}`:h,b?o:void 0,e))}return f?(n.res=o,n.usedParams=this.getUsedParamsDetails(e),n):o}extendTranslation(a,b,c,e,f){if(this.i18nFormat?.parse)a=this.i18nFormat.parse(a,{...this.options.interpolation.defaultVariables,...c},c.lng||this.language||e.usedLng,e.usedNS,e.usedKey,{resolved:e});else if(!c.skipInterpolation){let g;c.interpolation&&this.interpolator.init({...c,...{interpolation:{...this.options.interpolation,...c.interpolation}}});let h=d(a)&&(c?.interpolation?.skipOnVariables!==void 0?c.interpolation.skipOnVariables:this.options.interpolation.skipOnVariables);if(h){let b=a.match(this.interpolator.nestingRegexp);g=b&&b.length}let i=c.replace&&!d(c.replace)?c.replace:c;if(this.options.interpolation.defaultVariables&&(i={...this.options.interpolation.defaultVariables,...i}),a=this.interpolator.interpolate(a,i,c.lng||this.language||e.usedLng,c),h){let b=a.match(this.interpolator.nestingRegexp);g<(b&&b.length)&&(c.nest=!1)}!c.lng&&e&&e.res&&(c.lng=this.language||e.usedLng),!1!==c.nest&&(a=this.interpolator.nest(a,(...a)=>f?.[0]!==a[0]||c.context?this.translate(...a,b):(this.logger.warn(`It seems you are nesting recursively key: ${a[0]} in key: ${b[0]}`),null),c)),c.interpolation&&this.interpolator.reset()}let g=c.postProcess||this.options.postProcess,h=d(g)?[g]:g;return null!=a&&h?.length&&!1!==c.applyPostProcessor&&(a=z.handle(h,a,b,this.options&&this.options.postProcessPassResolved?{i18nResolved:{...e,usedParams:this.getUsedParamsDetails(c)},...c}:c,this)),a}resolve(a,b={}){let c,e,f,g,h;return d(a)&&(a=[a]),Array.isArray(a)&&(a=a.map(a=>"function"==typeof a?B(a,{...this.options,...b}):a)),a.forEach(a=>{if(this.isValidLookup(c))return;let i=this.extractFromKey(a,b),j=i.key;e=j;let k=i.namespaces;this.options.fallbackNS&&(k=k.concat(this.options.fallbackNS));let l=void 0!==b.count&&!d(b.count),m=l&&!b.ordinal&&0===b.count,n=void 0!==b.context&&(d(b.context)||"number"==typeof b.context)&&""!==b.context,o=b.lngs?b.lngs:this.languageUtils.toResolveHierarchy(b.lng||this.language,b.fallbackLng);k.forEach(a=>{this.isValidLookup(c)||(h=a,!C[`${o[0]}-${a}`]&&this.utils?.hasLoadedNamespace&&!this.utils?.hasLoadedNamespace(h)&&(C[`${o[0]}-${a}`]=!0,this.logger.warn(`key "${e}" for languages "${o.join(", ")}" won't get resolved as namespace "${h}" was not yet loaded`,"This means something IS WRONG in your setup. You access the t function before i18next.init / i18next.loadNamespace / i18next.changeLanguage was done. Wait for the callback or Promise to resolve before accessing it!!!")),o.forEach(d=>{let e;if(this.isValidLookup(c))return;g=d;let h=[j];if(this.i18nFormat?.addLookupKeys)this.i18nFormat.addLookupKeys(h,j,d,a,b);else{let a;l&&(a=this.pluralResolver.getSuffix(d,b.count,b));let c=`${this.options.pluralSeparator}zero`,e=`${this.options.pluralSeparator}ordinal${this.options.pluralSeparator}`;if(l&&(b.ordinal&&0===a.indexOf(e)&&h.push(j+a.replace(e,this.options.pluralSeparator)),h.push(j+a),m&&h.push(j+c)),n){let d=`${j}${this.options.contextSeparator||"_"}${b.context}`;h.push(d),l&&(b.ordinal&&0===a.indexOf(e)&&h.push(d+a.replace(e,this.options.pluralSeparator)),h.push(d+a),m&&h.push(d+c))}}for(;e=h.pop();)this.isValidLookup(c)||(f=e,c=this.getResource(d,a,e,b))}))})}),{res:c,usedKey:e,exactUsedKey:f,usedLng:g,usedNS:h}}isValidLookup(a){return void 0!==a&&!(!this.options.returnNull&&null===a)&&!(!this.options.returnEmptyString&&""===a)}getResource(a,b,c,d={}){return this.i18nFormat?.getResource?this.i18nFormat.getResource(a,b,c,d):this.resourceStore.getResource(a,b,c,d)}getUsedParamsDetails(a={}){let b=a.replace&&!d(a.replace),c=b?a.replace:a;if(b&&void 0!==a.count&&(c.count=a.count),this.options.interpolation.defaultVariables&&(c={...this.options.interpolation.defaultVariables,...c}),!b)for(let a of(c={...c},["defaultValue","ordinal","context","replace","lng","lngs","fallbackLng","ns","keySeparator","nsSeparator","returnObjects","returnDetails","joinArrays","postProcess","interpolation"]))delete c[a];return c}static hasDefaultValue(a){let b="defaultValue";for(let c in a)if(Object.prototype.hasOwnProperty.call(a,c)&&b===c.substring(0,b.length)&&void 0!==a[c])return!0;return!1}}class F{constructor(a){this.options=a,this.supportedLngs=this.options.supportedLngs||!1,this.logger=w.create("languageUtils")}getScriptPartFromCode(a){if(!(a=t(a))||0>a.indexOf("-"))return null;let b=a.split("-");return 2===b.length||(b.pop(),"x"===b[b.length-1].toLowerCase())?null:this.formatLanguageCode(b.join("-"))}getLanguagePartFromCode(a){if(!(a=t(a))||0>a.indexOf("-"))return a;let b=a.split("-");return this.formatLanguageCode(b[0])}formatLanguageCode(a){if(d(a)&&a.indexOf("-")>-1){let b;try{b=Intl.getCanonicalLocales(a)[0]}catch(a){}return(b&&this.options.lowerCaseLng&&(b=b.toLowerCase()),b)?b:this.options.lowerCaseLng?a.toLowerCase():a}return this.options.cleanCode||this.options.lowerCaseLng?a.toLowerCase():a}isSupportedCode(a){return("languageOnly"===this.options.load||this.options.nonExplicitSupportedLngs)&&(a=this.getLanguagePartFromCode(a)),!this.supportedLngs||!this.supportedLngs.length||this.supportedLngs.indexOf(a)>-1}getBestMatchFromCodes(a){let b;return a?(a.forEach(a=>{if(b)return;let c=this.formatLanguageCode(a);(!this.options.supportedLngs||this.isSupportedCode(c))&&(b=c)}),!b&&this.options.supportedLngs&&a.forEach(a=>{if(b)return;let c=this.getScriptPartFromCode(a);if(this.isSupportedCode(c))return b=c;let d=this.getLanguagePartFromCode(a);if(this.isSupportedCode(d))return b=d;b=this.options.supportedLngs.find(a=>{if(a===d||!(0>a.indexOf("-")&&0>d.indexOf("-"))&&(a.indexOf("-")>0&&0>d.indexOf("-")&&a.substring(0,a.indexOf("-"))===d||0===a.indexOf(d)&&d.length>1))return a})}),b||(b=this.getFallbackCodes(this.options.fallbackLng)[0]),b):null}getFallbackCodes(a,b){if(!a)return[];if("function"==typeof a&&(a=a(b)),d(a)&&(a=[a]),Array.isArray(a))return a;if(!b)return a.default||[];let c=a[b];return c||(c=a[this.getScriptPartFromCode(b)]),c||(c=a[this.formatLanguageCode(b)]),c||(c=a[this.getLanguagePartFromCode(b)]),c||(c=a.default),c||[]}toResolveHierarchy(a,b){let c=this.getFallbackCodes((!1===b?[]:b)||this.options.fallbackLng||[],a),e=[],f=a=>{a&&(this.isSupportedCode(a)?e.push(a):this.logger.warn(`rejecting language code not found in supportedLngs: ${a}`))};return d(a)&&(a.indexOf("-")>-1||a.indexOf("_")>-1)?("languageOnly"!==this.options.load&&f(this.formatLanguageCode(a)),"languageOnly"!==this.options.load&&"currentOnly"!==this.options.load&&f(this.getScriptPartFromCode(a)),"currentOnly"!==this.options.load&&f(this.getLanguagePartFromCode(a))):d(a)&&f(this.formatLanguageCode(a)),c.forEach(a=>{0>e.indexOf(a)&&f(this.formatLanguageCode(a))}),e}}let G={zero:0,one:1,two:2,few:3,many:4,other:5},H={select:a=>1===a?"one":"other",resolvedOptions:()=>({pluralCategories:["one","other"]})};class I{constructor(a,b={}){this.languageUtils=a,this.options=b,this.logger=w.create("pluralResolver"),this.pluralRulesCache={}}clearCache(){this.pluralRulesCache={}}getRule(a,b={}){let c,d=t("dev"===a?"en":a),e=b.ordinal?"ordinal":"cardinal",f=JSON.stringify({cleanedCode:d,type:e});if(f in this.pluralRulesCache)return this.pluralRulesCache[f];try{c=new Intl.PluralRules(d,{type:e})}catch(e){if("u"<typeof Intl)return this.logger.error("No Intl support, please use an Intl polyfill!"),H;if(!a.match(/-|_/))return H;let d=this.languageUtils.getLanguagePartFromCode(a);c=this.getRule(d,b)}return this.pluralRulesCache[f]=c,c}needsPlural(a,b={}){let c=this.getRule(a,b);return c||(c=this.getRule("dev",b)),c?.resolvedOptions().pluralCategories.length>1}getPluralFormsOfKey(a,b,c={}){return this.getSuffixes(a,c).map(a=>`${b}${a}`)}getSuffixes(a,b={}){let c=this.getRule(a,b);return(c||(c=this.getRule("dev",b)),c)?c.resolvedOptions().pluralCategories.sort((a,b)=>G[a]-G[b]).map(a=>`${this.options.prepend}${b.ordinal?`ordinal${this.options.prepend}`:""}${a}`):[]}getSuffix(a,b,c={}){let d=this.getRule(a,c);return d?`${this.options.prepend}${c.ordinal?`ordinal${this.options.prepend}`:""}${d.select(b)}`:(this.logger.warn(`no plural rule found for: ${a}`),this.getSuffix("dev",b,c))}}let J=(a,b,c,e=".",f=!0)=>{let g,h=void 0!==(g=l(a,c))?g:l(b,c);return!h&&f&&d(c)&&void 0===(h=s(a,c,e))&&(h=s(b,c,e)),h};class K{constructor(a={}){this.logger=w.create("interpolator"),this.options=a,this.format=a?.interpolation?.format||(a=>a),this.init(a)}init(a={}){a.interpolation||(a.interpolation={escapeValue:!0});let{escape:b,escapeValue:c,useRawValueToEscape:d,prefix:e,prefixEscaped:f,suffix:g,suffixEscaped:h,formatSeparator:i,unescapeSuffix:j,unescapePrefix:k,nestingPrefix:l,nestingPrefixEscaped:m,nestingSuffix:n,nestingSuffixEscaped:p,nestingOptionsSeparator:q,maxReplaces:r,alwaysFormat:s}=a.interpolation;this.escape=void 0!==b?b:o,this.escapeValue=void 0===c||c,this.useRawValueToEscape=void 0!==d&&d,this.prefix=e?e.replace(/[\-\[\]\/\{\}\(\)\*\+\?\.\\\^\$\|]/g,"\\$&"):f||"{{",this.suffix=g?g.replace(/[\-\[\]\/\{\}\(\)\*\+\?\.\\\^\$\|]/g,"\\$&"):h||"}}",this.formatSeparator=i||",",this.unescapePrefix=j?"":k||"-",this.unescapeSuffix=this.unescapePrefix?"":j||"",this.nestingPrefix=l?l.replace(/[\-\[\]\/\{\}\(\)\*\+\?\.\\\^\$\|]/g,"\\$&"):m||"$t(".replace(/[\-\[\]\/\{\}\(\)\*\+\?\.\\\^\$\|]/g,"\\$&"),this.nestingSuffix=n?n.replace(/[\-\[\]\/\{\}\(\)\*\+\?\.\\\^\$\|]/g,"\\$&"):p||")".replace(/[\-\[\]\/\{\}\(\)\*\+\?\.\\\^\$\|]/g,"\\$&"),this.nestingOptionsSeparator=q||",",this.maxReplaces=r||1e3,this.alwaysFormat=void 0!==s&&s,this.resetRegExp()}reset(){this.options&&this.init(this.options)}resetRegExp(){let a=(a,b)=>a?.source===b?(a.lastIndex=0,a):RegExp(b,"g");this.regexp=a(this.regexp,`${this.prefix}(.+?)${this.suffix}`),this.regexpUnescape=a(this.regexpUnescape,`${this.prefix}${this.unescapePrefix}(.+?)${this.unescapeSuffix}${this.suffix}`),this.nestingRegexp=a(this.nestingRegexp,`${this.nestingPrefix}((?:[^()"']+|"[^"]*"|'[^']*'|\\((?:[^()]|"[^"]*"|'[^']*')*\\))*?)${this.nestingSuffix}`)}interpolate(a,b,c,e){let g,h,i,j=this.options&&this.options.interpolation&&this.options.interpolation.defaultVariables||{},k=a=>{if(0>a.indexOf(this.formatSeparator)){let d=J(b,j,a,this.options.keySeparator,this.options.ignoreJSONStructure);return this.alwaysFormat?this.format(d,void 0,c,{...e,...b,interpolationkey:a}):d}let d=a.split(this.formatSeparator),f=d.shift().trim(),g=d.join(this.formatSeparator).trim();return this.format(J(b,j,f,this.options.keySeparator,this.options.ignoreJSONStructure),g,c,{...e,...b,interpolationkey:f})};this.resetRegExp();let l=e?.missingInterpolationHandler||this.options.missingInterpolationHandler,m=e?.interpolation?.skipOnVariables!==void 0?e.interpolation.skipOnVariables:this.options.interpolation.skipOnVariables;return[{regex:this.regexpUnescape,safeValue:a=>a.replace(/\$/g,"$$$$")},{regex:this.regexp,safeValue:a=>this.escapeValue?this.escape(a).replace(/\$/g,"$$$$"):a.replace(/\$/g,"$$$$")}].forEach(b=>{for(i=0;g=b.regex.exec(a);){let c=g[1].trim();if(void 0===(h=k(c)))if("function"==typeof l){let b=l(a,g,e);h=d(b)?b:""}else if(e&&Object.prototype.hasOwnProperty.call(e,c))h="";else if(m){h=g[0];continue}else this.logger.warn(`missed to pass in variable ${c} for interpolating ${a}`),h="";else d(h)||this.useRawValueToEscape||(h=f(h));let j=b.safeValue(h);if(a=a.replace(g[0],j),m?(b.regex.lastIndex+=h.length,b.regex.lastIndex-=g[0].length):b.regex.lastIndex=0,++i>=this.maxReplaces)break}}),a}nest(a,b,c={}){let e,g,h,i=(a,b)=>{let c=this.nestingOptionsSeparator;if(0>a.indexOf(c))return a;let d=a.split(RegExp(`${c.replace(/[\-\[\]\/\{\}\(\)\*\+\?\.\\\^\$\|]/g,"\\$&")}[ ]*{`)),e=`{${d[1]}`;a=d[0];let f=(e=this.interpolate(e,h)).match(/'/g),g=e.match(/"/g);((f?.length??0)%2!=0||g)&&(g?.length??0)%2==0||(e=e.replace(/'/g,'"'));try{h=JSON.parse(e),b&&(h={...b,...h})}catch(b){return this.logger.warn(`failed parsing options string in nesting for key ${a}`,b),`${a}${c}${e}`}return h.defaultValue&&h.defaultValue.indexOf(this.prefix)>-1&&delete h.defaultValue,a};for(;e=this.nestingRegexp.exec(a);){let j=[];(h=(h={...c}).replace&&!d(h.replace)?h.replace:h).applyPostProcessor=!1,delete h.defaultValue;let k=/{.*}/.test(e[1])?e[1].lastIndexOf("}")+1:e[1].indexOf(this.formatSeparator);if(-1!==k&&(j=e[1].slice(k).split(this.formatSeparator).map(a=>a.trim()).filter(Boolean),e[1]=e[1].slice(0,k)),(g=b(i.call(this,e[1].trim(),h),h))&&e[0]===a&&!d(g))return g;d(g)||(g=f(g)),g||(this.logger.warn(`missed to resolve ${e[1]} for nesting ${a}`),g=""),j.length&&(g=j.reduce((a,b)=>this.format(a,b,c.lng,{...c,interpolationkey:e[1].trim()}),g.trim())),a=a.replace(e[0],g),this.regexp.lastIndex=0}return a}}let L=a=>{let b={};return(c,d,e)=>{let f=e;e&&e.interpolationkey&&e.formatParams&&e.formatParams[e.interpolationkey]&&e[e.interpolationkey]&&(f={...f,[e.interpolationkey]:void 0});let g=d+JSON.stringify(f),h=b[g];return h||(h=a(t(d),e),b[g]=h),h(c)}},M=a=>(b,c,d)=>a(t(c),d)(b);class N{constructor(a={}){this.logger=w.create("formatter"),this.options=a,this.init(a)}init(a,b={interpolation:{}}){this.formatSeparator=b.interpolation.formatSeparator||",";let c=b.cacheInBuiltFormats?L:M;this.formats={number:c((a,b)=>{let c=new Intl.NumberFormat(a,{...b});return a=>c.format(a)}),currency:c((a,b)=>{let c=new Intl.NumberFormat(a,{...b,style:"currency"});return a=>c.format(a)}),datetime:c((a,b)=>{let c=new Intl.DateTimeFormat(a,{...b});return a=>c.format(a)}),relativetime:c((a,b)=>{let c=new Intl.RelativeTimeFormat(a,{...b});return a=>c.format(a,b.range||"day")}),list:c((a,b)=>{let c=new Intl.ListFormat(a,{...b});return a=>c.format(a)})}}add(a,b){this.formats[a.toLowerCase().trim()]=b}addCached(a,b){this.formats[a.toLowerCase().trim()]=L(b)}format(a,b,c,d={}){let e=b.split(this.formatSeparator);if(e.length>1&&e[0].indexOf("(")>1&&0>e[0].indexOf(")")&&e.find(a=>a.indexOf(")")>-1)){let a=e.findIndex(a=>a.indexOf(")")>-1);e[0]=[e[0],...e.splice(1,a)].join(this.formatSeparator)}return e.reduce((a,b)=>{let{formatName:e,formatOptions:f}=(a=>{let b=a.toLowerCase().trim(),c={};if(a.indexOf("(")>-1){let d=a.split("(");b=d[0].toLowerCase().trim();let e=d[1].substring(0,d[1].length-1);"currency"===b&&0>e.indexOf(":")?c.currency||(c.currency=e.trim()):"relativetime"===b&&0>e.indexOf(":")?c.range||(c.range=e.trim()):e.split(";").forEach(a=>{if(a){let[b,...d]=a.split(":"),e=d.join(":").trim().replace(/^'+|'+$/g,""),f=b.trim();c[f]||(c[f]=e),"false"===e&&(c[f]=!1),"true"===e&&(c[f]=!0),isNaN(e)||(c[f]=parseInt(e,10))}})}return{formatName:b,formatOptions:c}})(b);if(this.formats[e]){let b=a;try{let g=d?.formatParams?.[d.interpolationkey]||{},h=g.locale||g.lng||d.locale||d.lng||c;b=this.formats[e](a,h,{...f,...d,...g})}catch(a){this.logger.warn(a)}return b}return this.logger.warn(`there was no format function for ${e}`),a},a)}}class O extends x{constructor(a,b,c,d={}){super(),this.backend=a,this.store=b,this.services=c,this.languageUtils=c.languageUtils,this.options=d,this.logger=w.create("backendConnector"),this.waitingReads=[],this.maxParallelReads=d.maxParallelReads||10,this.readingCalls=0,this.maxRetries=d.maxRetries>=0?d.maxRetries:5,this.retryTimeout=d.retryTimeout>=1?d.retryTimeout:350,this.state={},this.queue=[],this.backend?.init?.(c,d.backend,d)}queueLoad(a,b,c,d){let e={},f={},g={},h={};return a.forEach(a=>{let d=!0;b.forEach(b=>{let g=`${a}|${b}`;!c.reload&&this.store.hasResourceBundle(a,b)?this.state[g]=2:this.state[g]<0||(1===this.state[g]?void 0===f[g]&&(f[g]=!0):(this.state[g]=1,d=!1,void 0===f[g]&&(f[g]=!0),void 0===e[g]&&(e[g]=!0),void 0===h[b]&&(h[b]=!0)))}),d||(g[a]=!0)}),(Object.keys(e).length||Object.keys(f).length)&&this.queue.push({pending:f,pendingCount:Object.keys(f).length,loaded:{},errors:[],callback:d}),{toLoad:Object.keys(e),pending:Object.keys(f),toLoadLanguages:Object.keys(g),toLoadNamespaces:Object.keys(h)}}loaded(a,b,c){let d=a.split("|"),e=d[0],f=d[1];b&&this.emit("failedLoading",e,f,b),!b&&c&&this.store.addResourceBundle(e,f,c,void 0,void 0,{skipCopy:!0}),this.state[a]=b?-1:2,b&&c&&(this.state[a]=0);let g={};this.queue.forEach(c=>{((a,b,c,d)=>{let{obj:e,k:f}=j(a,b,Object);e[f]=e[f]||[],e[f].push(c)})(c.loaded,[e],f),void 0!==c.pending[a]&&(delete c.pending[a],c.pendingCount--),b&&c.errors.push(b),0!==c.pendingCount||c.done||(Object.keys(c.loaded).forEach(a=>{g[a]||(g[a]={});let b=c.loaded[a];b.length&&b.forEach(b=>{void 0===g[a][b]&&(g[a][b]=!0)})}),c.done=!0,c.errors.length?c.callback(c.errors):c.callback())}),this.emit("loaded",g),this.queue=this.queue.filter(a=>!a.done)}read(a,b,c,d=0,e=this.retryTimeout,f){if(!a.length)return f(null,{});if(this.readingCalls>=this.maxParallelReads)return void this.waitingReads.push({lng:a,ns:b,fcName:c,tried:d,wait:e,callback:f});this.readingCalls++;let g=(g,h)=>{if(this.readingCalls--,this.waitingReads.length>0){let a=this.waitingReads.shift();this.read(a.lng,a.ns,a.fcName,a.tried,a.wait,a.callback)}g&&h&&d<this.maxRetries?setTimeout(()=>{this.read.call(this,a,b,c,d+1,2*e,f)},e):f(g,h)},h=this.backend[c].bind(this.backend);if(2===h.length){try{let c=h(a,b);c&&"function"==typeof c.then?c.then(a=>g(null,a)).catch(g):g(null,c)}catch(a){g(a)}return}return h(a,b,g)}prepareLoading(a,b,c={},e){if(!this.backend)return this.logger.warn("No backend was added via i18next.use. Will not load resources."),e&&e();d(a)&&(a=this.languageUtils.toResolveHierarchy(a)),d(b)&&(b=[b]);let f=this.queueLoad(a,b,c,e);if(!f.toLoad.length)return f.pending.length||e(),null;f.toLoad.forEach(a=>{this.loadOne(a)})}load(a,b,c){this.prepareLoading(a,b,{},c)}reload(a,b,c){this.prepareLoading(a,b,{reload:!0},c)}loadOne(a,b=""){let c=a.split("|"),d=c[0],e=c[1];this.read(d,e,"read",void 0,void 0,(c,f)=>{c&&this.logger.warn(`${b}loading namespace ${e} for language ${d} failed`,c),!c&&f&&this.logger.log(`${b}loaded namespace ${e} for language ${d}`,f),this.loaded(a,c,f)})}saveMissing(a,b,c,d,e,f={},g=()=>{}){if(this.services?.utils?.hasLoadedNamespace&&!this.services?.utils?.hasLoadedNamespace(b))return void this.logger.warn(`did not save key "${c}" as the namespace "${b}" was not yet loaded`,"This means something IS WRONG in your setup. You access the t function before i18next.init / i18next.loadNamespace / i18next.changeLanguage was done. Wait for the callback or Promise to resolve before accessing it!!!");if(null!=c&&""!==c){if(this.backend?.create){let h={...f,isUpdate:e},i=this.backend.create.bind(this.backend);if(i.length<6)try{let e;(e=5===i.length?i(a,b,c,d,h):i(a,b,c,d))&&"function"==typeof e.then?e.then(a=>g(null,a)).catch(g):g(null,e)}catch(a){g(a)}else i(a,b,c,d,g,h)}a&&a[0]&&this.store.addResource(a[0],b,c,d)}}}let P=()=>({debug:!1,initAsync:!0,ns:["translation"],defaultNS:["translation"],fallbackLng:["dev"],fallbackNS:!1,supportedLngs:!1,nonExplicitSupportedLngs:!1,load:"all",preload:!1,simplifyPluralSuffix:!0,keySeparator:".",nsSeparator:":",pluralSeparator:"_",contextSeparator:"_",partialBundledLanguages:!1,saveMissing:!1,updateMissing:!1,saveMissingTo:"fallback",saveMissingPlurals:!0,missingKeyHandler:!1,missingInterpolationHandler:!1,postProcess:!1,postProcessPassResolved:!1,returnNull:!1,returnEmptyString:!0,returnObjects:!1,joinArrays:!1,returnedObjectHandler:!1,parseMissingKeyHandler:!1,appendNamespaceToMissingKey:!1,appendNamespaceToCIMode:!1,overloadTranslationOptionHandler:a=>{let b={};if("object"==typeof a[1]&&(b=a[1]),d(a[1])&&(b.defaultValue=a[1]),d(a[2])&&(b.tDescription=a[2]),"object"==typeof a[2]||"object"==typeof a[3]){let c=a[3]||a[2];Object.keys(c).forEach(a=>{b[a]=c[a]})}return b},interpolation:{escapeValue:!0,format:a=>a,prefix:"{{",suffix:"}}",formatSeparator:",",unescapePrefix:"-",nestingPrefix:"$t(",nestingSuffix:")",nestingOptionsSeparator:",",maxReplaces:1e3,skipOnVariables:!0},cacheInBuiltFormats:!0}),Q=a=>(d(a.ns)&&(a.ns=[a.ns]),d(a.fallbackLng)&&(a.fallbackLng=[a.fallbackLng]),d(a.fallbackNS)&&(a.fallbackNS=[a.fallbackNS]),a.supportedLngs?.indexOf?.("cimode")<0&&(a.supportedLngs=a.supportedLngs.concat(["cimode"])),"boolean"==typeof a.initImmediate&&(a.initAsync=a.initImmediate),a),R=()=>{},S="__i18next_supportNoticeShown";class T extends x{constructor(a={},b){if(super(),this.options=Q(a),this.services={},this.logger=w,this.modules={external:[]},(a=>{Object.getOwnPropertyNames(Object.getPrototypeOf(a)).forEach(b=>{"function"==typeof a[b]&&(a[b]=a[b].bind(a))})})(this),b&&!this.isInitialized&&!a.isClone){if(!this.options.initAsync)return this.init(a,b),this;setTimeout(()=>{this.init(a,b)},0)}}init(a={},b){this.isInitializing=!0,"function"==typeof a&&(b=a,a={}),null==a.defaultNS&&a.ns&&(d(a.ns)?a.defaultNS=a.ns:0>a.ns.indexOf("translation")&&(a.defaultNS=a.ns[0]));let c=P();this.options={...c,...this.options,...Q(a)},this.options.interpolation={...c.interpolation,...this.options.interpolation},void 0!==a.keySeparator&&(this.options.userDefinedKeySeparator=a.keySeparator),void 0!==a.nsSeparator&&(this.options.userDefinedNsSeparator=a.nsSeparator),"function"!=typeof this.options.overloadTranslationOptionHandler&&(this.options.overloadTranslationOptionHandler=c.overloadTranslationOptionHandler),!1!==this.options.showSupportNotice&&!(this?.modules?.backend?.name?.indexOf("Locize")>0||this?.modules?.backend?.constructor?.name?.indexOf("Locize")>0||this?.options?.backend?.backends&&this.options.backend.backends.some(a=>a?.name?.indexOf("Locize")>0||a?.constructor?.name?.indexOf("Locize")>0)||this?.options?.backend?.projectId||this?.options?.backend?.backendOptions&&this.options.backend.backendOptions.some(a=>a?.projectId))&&1&&!("u">typeof globalThis&&globalThis[S]||"u">typeof process&&process.env&&process.env.I18NEXT_NO_SUPPORT_NOTICE||"u">typeof process&&process.env&&1)&&("u">typeof console&&void 0!==console.info&&console.info("\uD83C\uDF10 i18next is made possible by our own product, Locize — consider powering your project with managed localization (AI, CDN, integrations): https://locize.com \uD83D\uDC99"),"u">typeof globalThis&&(globalThis[S]=!0));let f=a=>a?"function"==typeof a?new a:a:null;if(!this.options.isClone){let a;this.modules.logger?w.init(f(this.modules.logger),this.options):w.init(null,this.options),a=this.modules.formatter?this.modules.formatter:N;let b=new F(this.options);this.store=new y(this.options.resources,this.options);let d=this.services;d.logger=w,d.resourceStore=this.store,d.languageUtils=b,d.pluralResolver=new I(b,{prepend:this.options.pluralSeparator,simplifyPluralSuffix:this.options.simplifyPluralSuffix}),this.options.interpolation.format&&this.options.interpolation.format!==c.interpolation.format&&this.logger.deprecate("init: you are still using the legacy format function, please use the new approach: https://www.i18next.com/translation-function/formatting"),a&&(!this.options.interpolation.format||this.options.interpolation.format===c.interpolation.format)&&(d.formatter=f(a),d.formatter.init&&d.formatter.init(d,this.options),this.options.interpolation.format=d.formatter.format.bind(d.formatter)),d.interpolator=new K(this.options),d.utils={hasLoadedNamespace:this.hasLoadedNamespace.bind(this)},d.backendConnector=new O(f(this.modules.backend),d.resourceStore,d,this.options),d.backendConnector.on("*",(a,...b)=>{this.emit(a,...b)}),this.modules.languageDetector&&(d.languageDetector=f(this.modules.languageDetector),d.languageDetector.init&&d.languageDetector.init(d,this.options.detection,this.options)),this.modules.i18nFormat&&(d.i18nFormat=f(this.modules.i18nFormat),d.i18nFormat.init&&d.i18nFormat.init(this)),this.translator=new E(this.services,this.options),this.translator.on("*",(a,...b)=>{this.emit(a,...b)}),this.modules.external.forEach(a=>{a.init&&a.init(this)})}if(this.format=this.options.interpolation.format,b||(b=R),this.options.fallbackLng&&!this.services.languageDetector&&!this.options.lng){let a=this.services.languageUtils.getFallbackCodes(this.options.fallbackLng);a.length>0&&"dev"!==a[0]&&(this.options.lng=a[0])}this.services.languageDetector||this.options.lng||this.logger.warn("init: no languageDetector is used and no lng is defined"),["getResource","hasResourceBundle","getResourceBundle","getDataByLanguage"].forEach(a=>{this[a]=(...b)=>this.store[a](...b)}),["addResource","addResources","addResourceBundle","removeResourceBundle"].forEach(a=>{this[a]=(...b)=>(this.store[a](...b),this)});let g=e(),h=()=>{let a=(a,c)=>{this.isInitializing=!1,this.isInitialized&&!this.initializedStoreOnce&&this.logger.warn("init: i18next is already initialized. You should call init just once!"),this.isInitialized=!0,this.options.isClone||this.logger.log("initialized",this.options),this.emit("initialized",this.options),g.resolve(c),b(a,c)};if(this.languages&&!this.isInitialized)return a(null,this.t.bind(this));this.changeLanguage(this.options.lng,a)};return this.options.resources||!this.options.initAsync?h():setTimeout(h,0),g}loadResources(a,b=R){let c=b,e=d(a)?a:this.language;if("function"==typeof a&&(c=a),!this.options.resources||this.options.partialBundledLanguages){if(e?.toLowerCase()==="cimode"&&(!this.options.preload||0===this.options.preload.length))return c();let a=[],b=b=>{b&&"cimode"!==b&&this.services.languageUtils.toResolveHierarchy(b).forEach(b=>{"cimode"!==b&&0>a.indexOf(b)&&a.push(b)})};e?b(e):this.services.languageUtils.getFallbackCodes(this.options.fallbackLng).forEach(a=>b(a)),this.options.preload?.forEach?.(a=>b(a)),this.services.backendConnector.load(a,this.options.ns,a=>{a||this.resolvedLanguage||!this.language||this.setResolvedLanguage(this.language),c(a)})}else c(null)}reloadResources(a,b,c){let d=e();return"function"==typeof a&&(c=a,a=void 0),"function"==typeof b&&(c=b,b=void 0),a||(a=this.languages),b||(b=this.options.ns),c||(c=R),this.services.backendConnector.reload(a,b,a=>{d.resolve(),c(a)}),d}use(a){if(!a)throw Error("You are passing an undefined module! Please check the object you are passing to i18next.use()");if(!a.type)throw Error("You are passing a wrong module! Please check the object you are passing to i18next.use()");return"backend"===a.type&&(this.modules.backend=a),("logger"===a.type||a.log&&a.warn&&a.error)&&(this.modules.logger=a),"languageDetector"===a.type&&(this.modules.languageDetector=a),"i18nFormat"===a.type&&(this.modules.i18nFormat=a),"postProcessor"===a.type&&z.addPostProcessor(a),"formatter"===a.type&&(this.modules.formatter=a),"3rdParty"===a.type&&this.modules.external.push(a),this}setResolvedLanguage(a){if(a&&this.languages&&!(["cimode","dev"].indexOf(a)>-1)){for(let a=0;a<this.languages.length;a++){let b=this.languages[a];if(!(["cimode","dev"].indexOf(b)>-1)&&this.store.hasLanguageSomeTranslations(b)){this.resolvedLanguage=b;break}}!this.resolvedLanguage&&0>this.languages.indexOf(a)&&this.store.hasLanguageSomeTranslations(a)&&(this.resolvedLanguage=a,this.languages.unshift(a))}}changeLanguage(a,b){this.isLanguageChangingTo=a;let c=e();this.emit("languageChanging",a);let f=a=>{this.language=a,this.languages=this.services.languageUtils.toResolveHierarchy(a),this.resolvedLanguage=void 0,this.setResolvedLanguage(a)},g=(d,e)=>{e?this.isLanguageChangingTo===a&&(f(e),this.translator.changeLanguage(e),this.isLanguageChangingTo=void 0,this.emit("languageChanged",e),this.logger.log("languageChanged",e)):this.isLanguageChangingTo=void 0,c.resolve((...a)=>this.t(...a)),b&&b(d,(...a)=>this.t(...a))},h=b=>{a||b||!this.services.languageDetector||(b=[]);let c=d(b)?b:b&&b[0],e=this.store.hasLanguageSomeTranslations(c)?c:this.services.languageUtils.getBestMatchFromCodes(d(b)?[b]:b);e&&(this.language||f(e),this.translator.language||this.translator.changeLanguage(e),this.services.languageDetector?.cacheUserLanguage?.(e)),this.loadResources(e,a=>{g(a,e)})};return a||!this.services.languageDetector||this.services.languageDetector.async?!a&&this.services.languageDetector&&this.services.languageDetector.async?0===this.services.languageDetector.detect.length?this.services.languageDetector.detect().then(h):this.services.languageDetector.detect(h):h(a):h(this.services.languageDetector.detect()),c}getFixedT(a,b,c){let e=(a,b,...d)=>{let f,g;(f="object"!=typeof b?this.options.overloadTranslationOptionHandler([a,b].concat(d)):{...b}).lng=f.lng||e.lng,f.lngs=f.lngs||e.lngs,f.ns=f.ns||e.ns,""!==f.keyPrefix&&(f.keyPrefix=f.keyPrefix||c||e.keyPrefix);let h={...this.options,...f};"function"==typeof f.keyPrefix&&(f.keyPrefix=B(f.keyPrefix,h));let i=this.options.keySeparator||".";return f.keyPrefix&&Array.isArray(a)?g=a.map(a=>("function"==typeof a&&(a=B(a,h)),`${f.keyPrefix}${i}${a}`)):("function"==typeof a&&(a=B(a,h)),g=f.keyPrefix?`${f.keyPrefix}${i}${a}`:a),this.t(g,f)};return d(a)?e.lng=a:e.lngs=a,e.ns=b,e.keyPrefix=c,e}t(...a){return this.translator?.translate(...a)}exists(...a){return this.translator?.exists(...a)}setDefaultNamespace(a){this.options.defaultNS=a}hasLoadedNamespace(a,b={}){if(!this.isInitialized)return this.logger.warn("hasLoadedNamespace: i18next was not initialized",this.languages),!1;if(!this.languages||!this.languages.length)return this.logger.warn("hasLoadedNamespace: i18n.languages were undefined or empty",this.languages),!1;let c=b.lng||this.resolvedLanguage||this.languages[0],d=!!this.options&&this.options.fallbackLng,e=this.languages[this.languages.length-1];if("cimode"===c.toLowerCase())return!0;let f=(a,b)=>{let c=this.services.backendConnector.state[`${a}|${b}`];return -1===c||0===c||2===c};if(b.precheck){let a=b.precheck(this,f);if(void 0!==a)return a}return!!(this.hasResourceBundle(c,a)||!this.services.backendConnector.backend||this.options.resources&&!this.options.partialBundledLanguages||f(c,a)&&(!d||f(e,a)))}loadNamespaces(a,b){let c=e();return this.options.ns?(d(a)&&(a=[a]),a.forEach(a=>{0>this.options.ns.indexOf(a)&&this.options.ns.push(a)}),this.loadResources(a=>{c.resolve(),b&&b(a)}),c):(b&&b(),Promise.resolve())}loadLanguages(a,b){let c=e();d(a)&&(a=[a]);let f=this.options.preload||[],g=a.filter(a=>0>f.indexOf(a)&&this.services.languageUtils.isSupportedCode(a));return g.length?(this.options.preload=f.concat(g),this.loadResources(a=>{c.resolve(),b&&b(a)}),c):(b&&b(),Promise.resolve())}dir(a){if(a||(a=this.resolvedLanguage||(this.languages?.length>0?this.languages[0]:this.language)),!a)return"rtl";try{let b=new Intl.Locale(a);if(b&&b.getTextInfo){let a=b.getTextInfo();if(a&&a.direction)return a.direction}}catch(a){}let b=this.services?.languageUtils||new F(P());return a.toLowerCase().indexOf("-latn")>1?"ltr":["ar","shu","sqr","ssh","xaa","yhd","yud","aao","abh","abv","acm","acq","acw","acx","acy","adf","ads","aeb","aec","afb","ajp","apc","apd","arb","arq","ars","ary","arz","auz","avl","ayh","ayl","ayn","ayp","bbz","pga","he","iw","ps","pbt","pbu","pst","prp","prd","ug","ur","ydd","yds","yih","ji","yi","hbo","men","xmn","fa","jpr","peo","pes","prs","dv","sam","ckb"].indexOf(b.getLanguagePartFromCode(a))>-1||a.toLowerCase().indexOf("-arab")>1?"rtl":"ltr"}static createInstance(a={},b){let c=new T(a,b);return c.createInstance=T.createInstance,c}cloneInstance(a={},b=R){let c=a.forkResourceStore;c&&delete a.forkResourceStore;let d={...this.options,...a,isClone:!0},e=new T(d);if((void 0!==a.debug||void 0!==a.prefix)&&(e.logger=e.logger.clone(a)),["store","services","language"].forEach(a=>{e[a]=this[a]}),e.services={...this.services},e.services.utils={hasLoadedNamespace:e.hasLoadedNamespace.bind(e)},c&&(e.store=new y(Object.keys(this.store.data).reduce((a,b)=>(a[b]={...this.store.data[b]},a[b]=Object.keys(a[b]).reduce((c,d)=>(c[d]={...a[b][d]},c),a[b]),a),{}),d),e.services.resourceStore=e.store),a.interpolation){let b={...P().interpolation,...this.options.interpolation,...a.interpolation},c={...d,interpolation:b};e.services.interpolator=new K(c)}return e.translator=new E(e.services,d),e.translator.on("*",(a,...b)=>{e.emit(a,...b)}),e.init(d,b),e.translator.options=d,e.translator.backendConnector.services.utils={hasLoadedNamespace:e.hasLoadedNamespace.bind(e)},e}toJSON(){return{options:this.options,store:this.store,language:this.language,languages:this.languages,resolvedLanguage:this.resolvedLanguage}}}let U=T.createInstance();U.createInstance,U.dir,U.init,U.loadResources,U.reloadResources,U.use,U.changeLanguage,U.getFixedT,U.t,U.exists,U.setDefaultNamespace,U.hasLoadedNamespace,U.loadNamespaces,U.loadLanguages}};
@@ -1 +0,0 @@
1
- "use strict";exports.id=4732,exports.ids=[4732],exports.modules={132:(a,b,c)=>{c.d(b,{P:()=>e});var d=c(67484);function e(){let[a,b]=(0,d.useState)([]),c=(0,d.useCallback)(()=>{fetch("/api/pinned-sessions").then(a=>a.json()).then(a=>b(a.sessions||[])).catch(()=>{})},[]),e=(0,d.useCallback)(a=>{b(a),fetch("/api/pinned-sessions",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({sessions:a})}).catch(()=>{});try{window.parent.postMessage({type:"PINNED_SESSIONS_CHANGED"},"*")}catch{}},[]),f=(0,d.useCallback)(b=>a.some(a=>a.sessionId===b),[a]),g=(0,d.useCallback)((b,c,d)=>{a.some(a=>a.sessionId===b)||e([...a,{sessionId:b,cwd:c,customTitle:d}])},[a,e]),h=(0,d.useCallback)(b=>{e(a.filter(a=>a.sessionId!==b))},[a,e]),i=(0,d.useCallback)((b,c)=>{e(a.map(a=>a.sessionId===b?{...a,customTitle:c}:a))},[a,e]);return{pinnedSessions:a,isPinned:f,pinSession:g,unpinSession:h,updateTitle:i,reorder:(0,d.useCallback)(a=>{e(a)},[e]),reload:c}}},5811:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.d(b,{Np:()=>k,ZD:()=>i,b8:()=>j,kS:()=>g,sQ:()=>h});var e=c(78908),f=a([e]);e=(f.then?(await f)():f)[0];let l=null,m=["typescript","tsx","javascript","jsx","html","css","scss","json","yaml","python","go","rust","java","ruby","php","bash","shell","markdown","sql","c","cpp","swift","kotlin","dart","lua","graphql","xml"];function g(){return l||(l=(0,e.createHighlighter)({themes:["github-dark","github-light"],langs:[...m]})),l}function h(a){let b=a.split("/").pop()?.toLowerCase()||"",c=b.split(".").pop()?.toLowerCase();if(".env"===b||b.startsWith(".env.")||"dockerfile"===b||b.startsWith("dockerfile.")||"makefile"===b)return"bash";let d={ts:"typescript",tsx:"tsx",js:"javascript",jsx:"jsx",mjs:"javascript",cjs:"javascript",html:"html",htm:"html",css:"css",scss:"scss",json:"json",yaml:"yaml",yml:"yaml",xml:"xml",py:"python",go:"go",rs:"rust",java:"java",kt:"kotlin",rb:"ruby",php:"php",cs:"cpp",cpp:"cpp",c:"c",h:"c",sh:"bash",bash:"bash",zsh:"bash",md:"markdown",mdx:"markdown",sql:"sql",swift:"swift",dart:"dart",lua:"lua",graphql:"graphql",gql:"graphql",toml:"yaml",sass:"scss",less:"css",scala:"java",r:"python",vim:"bash",env:"bash"}[c||""]||"text";return m.includes(d)?d:"text"}function i(a){return a.replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;").replace(/"/g,"&quot;").replace(/'/g,"&#039;")}function j(a){return a.map(a=>a.color?`<span style="color:${a.color}">${i(a.content)}</span>`:i(a.content)).join("")}function k(a,b,c,d){if(!b)return[];let e=[],f=c?b:b.toLowerCase();for(let b=0;b<a.length;b++){let g=c?a[b]:a[b].toLowerCase(),h=0;for(;;){let a=g.indexOf(f,h);if(-1===a)break;let c=a+f.length;if(d){let d=a>0?g[a-1]:" ",f=c<g.length?g[c]:" ",h=!/\w/.test(d),i=!/\w/.test(f);h&&i&&e.push({lineIndex:b,startCol:a,endCol:c})}else e.push({lineIndex:b,startCol:a,endCol:c});h=a+1}}return e}d()}catch(a){d(a)}})},13928:(a,b,c)=>{c.d(b,{h:()=>e});var d=c(67484);function e({url:a,onMessage:b,enabled:c=!0}){(0,d.useRef)(b)}},16306:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.d(b,{d:()=>n,o:()=>m});var e=c(67484),f=c(36043),g=c(47033),h=c(23434),i=c(77033),j=c(90173),k=c(5811),l=a([j,k]);function m(a,b){let c,d=document.createTreeWalker(a,NodeFilter.SHOW_TEXT),e=b,f=null;for(;c=d.nextNode();){f=c;let a=c.textContent.length;if(e<=a)return{node:c,offset:e};e-=a}return f?{node:f,offset:f.textContent.length}:null}function n({content:a,filePath:b,showSearch:c=!0,cwd:d,enableComments:l=!1,scrollToLine:m=null,scrollToLineAlign:o="center",onScrollToLineComplete:p,visibleLineRef:q,onContentSearch:r}){let[s,t]=(0,e.useState)(!1),u=(0,e.useRef)(null),v=(0,e.useRef)(null),w=(0,e.useRef)(null),x=(0,i.nH)(),[y,z]=(0,e.useState)(!1),[A,B]=(0,e.useState)(null);(0,e.useRef)(null);let[C,D]=(0,e.useState)(!1),[E,F]=(0,e.useState)(""),[G,H]=(0,e.useState)(!1),[I,J]=(0,e.useState)(!1),[K,L]=(0,e.useState)(0),[M,N]=(0,e.useState)(0),O=(0,e.useRef)(!1),[P,Q]=(0,e.useState)(null),R=(0,e.useRef)(null),S=(0,e.useRef)(()=>{}),T=(0,e.useRef)(!1),U=(0,e.useRef)(null),[V,W]=(0,e.useState)(null),[X,Y]=(0,e.useState)(null),Z=(0,e.useRef)(null),[$,_]=(0,e.useState)(0),aa=l&&!!d,{comments:ab,addComment:ac,updateComment:ad,deleteComment:ae,refresh:af}=(0,g._)({cwd:d||"",filePath:b}),ag=(0,e.useMemo)(()=>a.split("\n"),[a]),ah=(0,j.C)(ag,b),ai=(0,e.useMemo)(()=>{let a=new Map;for(let b of ab){let c=b.endLine;a.has(c)||a.set(c,[]),a.get(c).push(b)}return a},[ab]),aj=(0,e.useMemo)(()=>{let a=new Set;for(let b of ab)for(let c=b.startLine;c<=b.endLine;c++)a.add(c);return a},[ab]),ak=(0,e.useMemo)(()=>(0,k.Np)(ag,E,G,I),[ag,E,G,I]),al=(0,e.useMemo)(()=>{let a=[];for(let b=0;b<ag.length;b++)a.push({type:"code",lineIndex:b});return a},[ag.length]),am=(0,f.Te)({count:al.length,getScrollElement:()=>u.current,estimateSize:()=>20,overscan:10}),an=(0,e.useCallback)(()=>{0!==ak.length&&(L(a=>(a+1)%ak.length),N(a=>a+1))},[ak.length]),ao=(0,e.useCallback)(()=>{0!==ak.length&&(L(a=>(a-1+ak.length)%ak.length),N(a=>a+1))},[ak.length]);(0,e.useRef)(m).current=m;let ap=(0,e.useCallback)(a=>{"Enter"===a.key&&(a.preventDefault(),a.shiftKey?ao():an()),"Escape"===a.key&&(D(!1),F(""))},[an,ao]),aq=(0,e.useCallback)((a,b)=>{aa&&(b.stopPropagation(),Q({comment:a,x:b.clientX,y:b.clientY}),R.current=null,S.current(),W(null),Y(null))},[aa]),ar=(0,e.useCallback)(()=>{let a=R.current;a&&(W({x:a.x,y:a.y,range:a.range,codeContent:a.selectedText}),R.current=null,S.current())},[]),as=(0,e.useCallback)(()=>{let a=R.current;if(!a)return;let b=a.selectedText;Y({x:a.x,y:a.y,range:a.range,codeContent:b}),R.current=null,S.current()},[]),at=(0,e.useCallback)(()=>{let a=R.current;if(!a||!r)return;let b=a.selectedText.trim();R.current=null,S.current(),b&&r(b)},[r]),au=(0,e.useCallback)(async a=>{V&&(await ac(V.range.start,V.range.end,a),W(null))},[V,ac]),av=(0,e.useCallback)(async a=>{if(X&&x&&d)try{let c=await (0,h.$3)(d),e=[];for(let a of c)e.push({filePath:a.filePath,startLine:a.startLine,endLine:a.endLine,codeContent:a.codeContent,note:a.content||void 0});e.push({filePath:b,startLine:X.range.start,endLine:X.range.end,codeContent:X.codeContent});let f=(0,h.Gw)(e,a);x.sendMessage(f),await (0,h.RP)(d),af(),Y(null)}catch(a){console.error("Failed to send to AI:",a)}},[X,x,b,d,af]),aw=(0,e.useCallback)((a,b,c)=>{let d=ag[a];if(!d)return b;let e=[];if(E&&ak.length>0)for(let b of ak.filter(b=>b.lineIndex===a)){let c=ak[K]?.lineIndex===a&&ak[K]?.startCol===b.startCol;e.push({start:b.startCol,end:b.endCol,cls:c?"hl-cur":"hl-m"})}if(c&&!E&&c.length>=1){let a=c.toLowerCase(),b=d.toLowerCase(),f=0;for(;-1!==(f=b.indexOf(a,f));)e.push({start:f,end:f+c.length,cls:"hl-kw"}),f+=1}if(0===e.length)return b;e.sort((a,b)=>a.start-b.start||a.end-b.end);let f=[],g=0;for(let a of e){if(a.start<g)continue;a.start>g&&f.push((0,k.ZD)(d.substring(g,a.start)));let b=(0,k.ZD)(d.substring(a.start,a.end));f.push(`<span class="${a.cls}">${b}</span>`),g=a.end}g<d.length&&f.push((0,k.ZD)(d.substring(g)));let h=(0,k.ZD)(d);if(b!==h){let a=b;for(let b of e){let c=d.substring(b.start,b.end),e=(0,k.ZD)(c),f=e.replace(/[.*+?^${}()|[\]\\]/g,"\\$&"),g=RegExp(`(?<=>)([^<]*?)(${f})`,""),h=`$1<span class="${b.cls}">${e}</span>`,i=a.replace(g,h);i.length>a.length+200||(a=i)}return a}return f.join("")},[E,ak,K,ag]);return{parentRef:u,containerRef:v,searchInputRef:w,floatingToolbarRef:R,suppressHoverRef:T,savedSelectionRef:U,highlightedLines:ah,isMounted:s,cmdHeld:y,flashLine:A,isSearchVisible:C,searchQuery:E,caseSensitive:G,wholeWord:I,currentMatchIndex:K,viewingComment:P,bumpToolbarRef:S,addCommentInput:V,sendToAIInput:X,chatContext:x,commentsEnabled:aa,comments:ab,updateComment:ad,deleteComment:ae,lines:ag,matches:ak,rowData:al,virtualizer:am,commentsByEndLine:ai,linesWithComments:aj,setIsSearchVisible:D,setSearchQuery:F,suppressMatchScrollRef:O,setCaseSensitive:H,setWholeWord:J,setViewingComment:Q,setAddCommentInput:W,setSendToAIInput:Y,goToNextMatch:an,goToPrevMatch:ao,handleSearchKeyDown:ap,handleCommentBubbleClick:aq,handleToolbarAddComment:ar,handleToolbarSendToAI:as,handleToolbarSearch:at,handleCommentSubmit:au,handleSendToAISubmit:av,getHighlightedLineHtml:aw,inlineBlameLineRef:Z,inlineBlameVersion:$}}[j,k]=l.then?(await l)():l,d()}catch(a){d(a)}})},21108:(a,b,c)=>{c.d(b,{n:()=>g});var d=c(67484);let e="SCHEDULED_TASKS_CHANGED";function f(){try{window.parent.postMessage({type:e},"*")}catch{}document.querySelectorAll("iframe").forEach(a=>{try{a.contentWindow?.postMessage({type:e},"*")}catch{}})}function g(){let[a,b]=(0,d.useState)([]),[c,e]=(0,d.useState)(0),g=(0,d.useCallback)(()=>{fetch("/api/scheduled-tasks").then(a=>a.json()).then(a=>{b(a.tasks||[]),e(a.unreadCount||0)}).catch(()=>{})},[]),h=(0,d.useCallback)(async a=>{try{let b=await fetch("/api/scheduled-tasks",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(a)}),c=await b.json();if(c.task)return g(),f(),c.task;return null}catch{return null}},[g]),i=(0,d.useCallback)(async a=>{await fetch("/api/scheduled-tasks",{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify({id:a,action:"pause"})}).catch(()=>{}),g(),f()},[g]),j=(0,d.useCallback)(async a=>{await fetch("/api/scheduled-tasks",{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify({id:a,action:"resume"})}).catch(()=>{}),g(),f()},[g]),k=(0,d.useCallback)(async a=>{await fetch("/api/scheduled-tasks",{method:"DELETE",headers:{"Content-Type":"application/json"},body:JSON.stringify({id:a})}).catch(()=>{}),g(),f()},[g]),l=(0,d.useCallback)(async(a,b)=>{await fetch("/api/scheduled-tasks",{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify({id:a,action:"update",fields:b})}).catch(()=>{}),g(),f()},[g]),m=(0,d.useCallback)(async a=>{await fetch("/api/scheduled-tasks",{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify({id:a,action:"trigger"})}).catch(()=>{}),g(),f()},[g]),n=(0,d.useCallback)(async a=>{await fetch("/api/scheduled-tasks",{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify({id:a,action:"markRead"})}).catch(()=>{}),g(),f()},[g]),o=(0,d.useCallback)(async()=>{await fetch("/api/scheduled-tasks",{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify({id:"_",action:"markAllRead"})}).catch(()=>{}),g(),f()},[g]),p=(0,d.useCallback)(async a=>{await fetch("/api/scheduled-tasks",{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify({id:"_",action:"reorder",fields:{orderedIds:a}})}).catch(()=>{}),g(),f()},[g]);return{tasks:a,unreadCount:c,reload:g,createTask:h,pauseTask:i,resumeTask:j,triggerTask:m,deleteTask:k,updateTask:l,markRead:n,markAllRead:o,reorderTasks:p}}},23434:(a,b,c)=>{c.d(b,{$3:()=>h,Cm:()=>g,Gw:()=>k,RP:()=>i,Un:()=>j,zL:()=>f});var d=c(41564);let e=new Set;function f(a){return e.add(a),()=>e.delete(a)}function g(){e.forEach(a=>a())}async function h(a){let b=await fetch(`/api/comments?cwd=${encodeURIComponent(a)}`);if(!b.ok)throw Error("Failed to fetch comments");let c=(await b.json()).comments||[];if(0===c.length)return[];let d=new Map;for(let a of c)a.selectedText||(d.has(a.filePath)||d.set(a.filePath,[]),d.get(a.filePath).push(a));let e=new Map;await Promise.all(Array.from(d.keys()).map(async b=>{try{let c=await fetch(`/api/files/text?cwd=${encodeURIComponent(a)}&path=${encodeURIComponent(b)}`);if(c.ok){let a=await c.json();"string"==typeof a.content&&e.set(b,a.content.split("\n"))}}catch(a){console.error(`Failed to read file ${b}:`,a)}}));let f=[];for(let a of c){if(a.selectedText){f.push({...a,codeContent:a.selectedText});continue}let b=e.get(a.filePath),c="";if(b){let d=Math.max(0,a.startLine-1),e=Math.min(b.length,a.endLine);c=b.slice(d,e).join("\n")}f.push({...a,codeContent:c})}return f}async function i(a){try{if((await fetch(`/api/comments?cwd=${encodeURIComponent(a)}&all=true`,{method:"DELETE"})).ok)return g(),!0;return!1}catch(a){return console.error("Failed to clear comments:",a),!1}}let j="__chat__";function k(a,b){let c=a.filter(a=>a.filePath===j),e=a.filter(a=>a.filePath!==j),f=[];for(let a of(e.length>0&&(f.push(`${d.A.t("comments.codeRef")}`,""),e.forEach((a,b)=>{f.push(`[${b+1}] ${a.filePath}:${a.startLine}-${a.endLine}`),f.push("```"),f.push(a.codeContent),f.push("```"),a.note&&f.push(d.A.t("comments.note",{content:a.note})),f.push("")})),c)){let b=a.codeContent.split("\n").map(a=>`> ${a}`).join("\n");f.push(b),a.note&&f.push(a.note),f.push("")}return f.push(d.A.t("comments.question",{question:b})),f.join("\n")}},26068:(a,b,c)=>{c.d(b,{Ee:()=>m,SU:()=>j,ft:()=>l,iN:()=>k});var d=c(48249),e=c(67484),f=c(44384),g=c(74429),h=c(81749);let i=(0,e.createContext)(null);function j({container:a,children:b}){return(0,d.jsx)(i.Provider,{value:a,children:b})}function k(){return(0,e.useContext)(i)}function l({x:a,y:b,path:c,cwd:j,isDirectory:k,onClose:m,onCreateFile:n,onDelete:o,onRefresh:p,onCopyFile:q,onPaste:r}){let{t:s}=(0,f.Bd)(),t=(0,e.useRef)(null),u=(0,e.useContext)(i),v=c.split("/").pop()||c,w=`${j}/${c}`,x=c.includes("/")?c.substring(0,c.lastIndexOf("/")):"",y=x?`${j}/${x}`:j,z=k?c:x,A=k?w:y,[B,C]=(0,e.useState)({x:0,y:0}),D=(0,e.useCallback)(async(a,b)=>{try{await navigator.clipboard.writeText(a),(0,h.oR)(s("toast.copiedName",{name:b}),"success")}catch{(0,h.oR)(s("toast.copyFailed"),"error")}m()},[m,s]),E=k?c:x,F=[{label:s("fileContextMenu.copyRelativePath"),value:c},{label:s("fileContextMenu.copyAbsolutePath"),value:w},{label:s("fileContextMenu.copyRelativeDirPath"),value:z||"."},{label:s("fileContextMenu.copyAbsoluteDirPath"),value:A},{label:k?s("fileContextMenu.copyFolderName"):s("fileContextMenu.copyFileName"),value:v}],G=(0,d.jsxs)("div",{ref:t,className:"absolute z-[200] bg-card border border-border rounded-lg shadow-lg py-1 w-fit whitespace-nowrap",style:{left:B.x,top:B.y},children:[n&&(0,d.jsx)("button",{className:"block w-full px-3 py-1.5 text-left text-sm text-foreground hover:bg-accent transition-colors",onClick:()=>{m(),n(E)},children:s("fileContextMenu.createFile")}),q&&(0,d.jsx)("button",{className:"block w-full px-3 py-1.5 text-left text-sm text-foreground hover:bg-accent transition-colors",onClick:()=>{m(),q(c)},children:k?s("fileContextMenu.copyFolder"):s("fileContextMenu.copyFile")}),r&&(0,d.jsx)("button",{className:"block w-full px-3 py-1.5 text-left text-sm text-foreground hover:bg-accent transition-colors",onClick:()=>{m(),r(E)},children:s("fileContextMenu.pasteHere")}),o&&(0,d.jsx)("button",{className:"block w-full px-3 py-1.5 text-left text-sm text-destructive hover:bg-accent transition-colors",onClick:()=>{m(),o(c,k,v)},children:k?s("fileContextMenu.deleteFolder"):s("fileContextMenu.deleteFile")}),(n||o||q||r)&&(0,d.jsx)("div",{className:"my-1 border-t border-border"}),F.map((a,b)=>(0,d.jsx)("button",{className:"block w-full px-3 py-1.5 text-left text-sm text-foreground hover:bg-accent transition-colors",onClick:()=>D(a.value,a.label),children:a.label},b))]});return u?(0,g.createPortal)(G,u):G}function m(){let[a,b]=(0,e.useState)(null);return{contextMenu:a,showContextMenu:(0,e.useCallback)((a,c,d)=>{a.preventDefault(),a.stopPropagation(),b({x:a.clientX,y:a.clientY,path:c,isDirectory:d})},[]),hideContextMenu:(0,e.useCallback)(()=>{b(null)},[])}}},30976:(a,b,c)=>{function d(){return!("u"<typeof navigator)&&(/Mac|iPhone|iPad/.test(navigator.platform||"")||navigator.userAgentData?.platform==="macOS")}function e(){return d()?"⌘":"Ctrl+"}c.d(b,{L:()=>d,Mu:()=>e}),process.platform,process.platform,process.platform},31037:(a,b,c)=>{c.d(b,{E:()=>j});var d=c(48249),e=c(67484),f=c(44384),g=c(41564),h=c(30976);let i={once:[{labelKey:"scheduledTasks.5minLater",value:5},{labelKey:"scheduledTasks.15minLater",value:15},{labelKey:"scheduledTasks.30minLater",value:30},{labelKey:"scheduledTasks.1hourLater",value:60}],interval:[{labelKey:"scheduledTasks.every15min",value:15},{labelKey:"scheduledTasks.every30min",value:30},{labelKey:"scheduledTasks.every1hour",value:60},{labelKey:"scheduledTasks.every2hours",value:120}],cron:[{labelKey:"scheduledTasks.daily9am",value:"0 9 * * *"},{labelKey:"scheduledTasks.daily6pm",value:"0 18 * * *"},{labelKey:"scheduledTasks.weeklyMon9am",value:"0 9 * * 1"},{labelKey:"scheduledTasks.monthly1st9am",value:"0 9 1 * *"}]};function j({onClose:a,onCreate:b,editTask:c,onUpdate:k}){let{t:l}=(0,f.Bd)(),m=!!c,[n,o]=(0,e.useState)(c?.type||"once"),[p,q]=(0,e.useState)(c?.message||""),[r,s]=(0,e.useState)(c?String(c.delayMinutes||c.intervalMinutes||""):""),[t,u]=(0,e.useState)(c?.cron||""),[v,w]=(0,e.useState)(c?.activeFrom||"09:00"),[x,y]=(0,e.useState)(c?.activeTo||"18:00"),[z,A]=(0,e.useState)(!!(c?.activeFrom&&c?.activeTo)),[B,C]=(0,e.useState)(null),D=(0,e.useRef)(null),E=(0,e.useRef)(null),F=(0,e.useCallback)(()=>{if(!p.trim())return;let d=null;if("once"===n){let a=B||parseInt(r,10);if(!a||a<=0)return;d={message:p.trim(),type:"once",delayMinutes:a}}else if("interval"===n){let a=B||parseInt(r,10);if(!a||a<=0)return;d={message:p.trim(),type:"interval",intervalMinutes:a,...z?{activeFrom:v,activeTo:x}:{}}}else if("cron"===n){let a=B||t.trim();if(!a)return;d={message:p.trim(),type:"cron",cron:a}}d&&(m&&c&&k?k(c.id,d):b(d),a())},[p,n,B,r,t,z,v,x,b,a,m,c,k]);return(0,d.jsxs)("div",{ref:D,className:`w-80 bg-popover border border-border rounded-lg shadow-lg z-50 ${m?"":"absolute bottom-full left-0 mb-2"}`,onKeyDown:b=>{"Escape"===b.key?a():"Enter"===b.key&&(b.metaKey||b.ctrlKey)&&F()},children:[(0,d.jsx)("div",{className:"px-3 py-2 border-b border-border bg-muted/50 rounded-t-lg",children:(0,d.jsx)("span",{className:"text-sm font-medium",children:m?l("scheduledTasks.editTask"):l("scheduledTasks.createTask")})}),(0,d.jsxs)("div",{className:"p-3 space-y-3",children:[(0,d.jsxs)("div",{children:[(0,d.jsx)("label",{className:"text-xs text-muted-foreground mb-1 block",children:l("scheduledTasks.sendMessage")}),(0,d.jsx)("textarea",{ref:E,value:p,onChange:a=>q(a.target.value),placeholder:l("scheduledTasks.messagePlaceholder"),rows:2,className:"w-full px-2 py-1.5 text-sm border border-border rounded bg-card text-foreground placeholder-muted-foreground focus:outline-none focus:ring-1 focus:ring-ring resize-none"})]}),(0,d.jsxs)("div",{children:[(0,d.jsx)("label",{className:"text-xs text-muted-foreground mb-1 block",children:l("scheduledTasks.type")}),(0,d.jsx)("div",{className:"flex gap-1",children:["once","interval","cron"].map(a=>(0,d.jsx)("button",{onClick:()=>{o(a),C(null),s(""),u("")},className:`flex-1 px-2 py-1 text-xs rounded transition-colors ${n===a?"bg-brand text-white":"bg-muted text-muted-foreground hover:text-foreground"}`,children:"once"===a?l("scheduledTasks.once"):"interval"===a?l("scheduledTasks.interval"):"Cron"},a))})]}),(0,d.jsxs)("div",{children:[(0,d.jsx)("label",{className:"text-xs text-muted-foreground mb-1 block",children:l("scheduledTasks.quickSelect")}),(0,d.jsx)("div",{className:"grid grid-cols-2 gap-1",children:i[n].map(a=>(0,d.jsx)("button",{onClick:()=>{C(a.value),"cron"===n?u(String(a.value)):s(String(a.value))},className:`px-2 py-1 text-xs rounded border transition-colors ${B===a.value?"border-brand bg-brand/10 text-brand":"border-border text-muted-foreground hover:text-foreground hover:border-foreground/30"}`,children:l(a.labelKey)},a.labelKey))})]}),(0,d.jsxs)("div",{children:[(0,d.jsx)("label",{className:"text-xs text-muted-foreground mb-1 block",children:"cron"===n?l("scheduledTasks.customCron"):l("scheduledTasks.customMinutes")}),"cron"===n?(0,d.jsxs)(d.Fragment,{children:[(0,d.jsx)("input",{type:"text",value:t,onChange:a=>{u(a.target.value),C(null)},placeholder:l("scheduledTasks.cronPlaceholder"),className:"w-full px-2 py-1.5 text-sm border border-border rounded bg-card text-foreground placeholder-muted-foreground focus:outline-none focus:ring-1 focus:ring-ring font-mono"}),t.trim()&&(0,d.jsx)("div",{className:"mt-1 text-xs text-muted-foreground",children:function(a){let b=g.A.t,c=a.trim().split(/\s+/);if(5!==c.length)return null;let[d,e,f,h,i]=c,j={0:b("cron.dowSun"),1:b("cron.dowMon"),2:b("cron.dowTue"),3:b("cron.dowWed"),4:b("cron.dowThu"),5:b("cron.dowFri"),6:b("cron.dowSat")},k={1:`1${b("cron.monthPrefix")}`,2:`2${b("cron.monthPrefix")}`,3:`3${b("cron.monthPrefix")}`,4:`4${b("cron.monthPrefix")}`,5:`5${b("cron.monthPrefix")}`,6:`6${b("cron.monthPrefix")}`,7:`7${b("cron.monthPrefix")}`,8:`8${b("cron.monthPrefix")}`,9:`9${b("cron.monthPrefix")}`,10:`10${b("cron.monthPrefix")}`,11:`11${b("cron.monthPrefix")}`,12:`12${b("cron.monthPrefix")}`};try{let a="";if(d.includes("/")||e.includes("/")){if("*"===e&&d.includes("/"))return b("cron.everyNMinutes",{n:d.split("/")[1]});if("0"===d&&e.includes("/"))return b("cron.everyNHours",{n:e.split("/")[1]});return null}let c=parseInt(e,10),g=parseInt(d,10);if(isNaN(c)&&"*"!==e||isNaN(g)&&"*"!==d)return null;a="*"===e&&"*"===d?b("cron.everyMinute"):"*"===e?b("cron.everyHourAtMin",{m:g}):"*"===d?b("cron.hourlyEveryMin",{h:c}):`${String(c).padStart(2,"0")}:${String(g).padStart(2,"0")}`;let l=[];if("*"!==h){let a=h.split(",").map(a=>k[a]||`${a}${b("cron.monthPrefix")}`);l.push(a.join(", "))}if("*"!==f)if(f.includes("-")){let[a,c]=f.split("-");l.push(b("cron.dayRange",{a,b:c}))}else f.includes(",")?l.push(f.split(",").map(a=>`${a}${b("cron.dayOfMonth")}`).join(", ")):l.push(`${f}${b("cron.dayOfMonth")}`);if("*"!==i)if("1-5"===i)l.push(b("cron.weekdays"));else if("0,6"===i||"6,0"===i)l.push(b("cron.weekends"));else{let a=i.split(",").map(a=>{if(a.includes("-")){let[c,d]=a.split("-");return b("cron.weekdayRange",{a:j[c]||c,b:j[d]||d})}return`${b("cron.weekdayPrefix")}${j[a]||a}`});l.push(a.join(", "))}if(0===l.length&&"*"===f&&"*"===h&&"*"===i)return b("cron.daily",{time:a});return`${l.join(" ")} ${a}`}catch{return null}}(t.trim())||(0,d.jsx)("span",{className:"text-destructive",children:l("scheduledTasks.cronFormat")})})]}):(0,d.jsx)("input",{type:"number",value:r,onChange:a=>{s(a.target.value),C(null)},placeholder:l("scheduledTasks.minutesPlaceholder"),min:1,className:"w-full px-2 py-1.5 text-sm border border-border rounded bg-card text-foreground placeholder-muted-foreground focus:outline-none focus:ring-1 focus:ring-ring"})]}),"interval"===n&&(0,d.jsxs)("div",{children:[(0,d.jsxs)("label",{className:"flex items-center gap-2 text-xs text-muted-foreground mb-1 cursor-pointer",children:[(0,d.jsx)("input",{type:"checkbox",checked:z,onChange:a=>A(a.target.checked),className:"rounded border-border"}),l("scheduledTasks.limitTimeRange")]}),z&&(0,d.jsxs)("div",{className:"flex items-center gap-2 mt-1",children:[(0,d.jsx)("input",{type:"time",value:v,onChange:a=>w(a.target.value),className:"flex-1 px-2 py-1 text-sm border border-border rounded bg-card text-foreground focus:outline-none focus:ring-1 focus:ring-ring"}),(0,d.jsx)("span",{className:"text-xs text-muted-foreground",children:l("scheduledTasks.to")}),(0,d.jsx)("input",{type:"time",value:x,onChange:a=>y(a.target.value),className:"flex-1 px-2 py-1 text-sm border border-border rounded bg-card text-foreground focus:outline-none focus:ring-1 focus:ring-ring"})]})]}),(0,d.jsx)("button",{onClick:F,disabled:!(p.trim()&&("once"===n||"interval"===n?!!(B||r&&parseInt(r,10)>0):"cron"===n&&!!(B||t.trim()))),className:"w-full py-1.5 text-sm font-medium rounded bg-brand text-white hover:bg-brand/90 disabled:opacity-50 disabled:cursor-not-allowed transition-colors",children:m?l("scheduledTasks.saveBtn",{modKey:(0,h.Mu)()}):l("scheduledTasks.createBtn",{modKey:(0,h.Mu)()})})]})]})}},31172:(a,b,c)=>{c.d(b,{F2:()=>m,ZL:()=>k,a9:()=>l});var d=c(48249),e=c(67484),f=c(74429);let g=()=>()=>{},h=()=>document.body,i=()=>null,j=(0,e.createContext)(null);function k({children:a}){let b=(0,e.useContext)(j),c=(0,e.useSyncExternalStore)(g,h,i),d=b??c;return d?(0,f.createPortal)(a,d):null}function l({children:a}){let[b,c]=(0,e.useState)(null);return(0,d.jsxs)("div",{className:"relative w-full h-full",style:{transform:"translateZ(0)"},children:[(0,d.jsx)(j.Provider,{value:b,children:a}),(0,d.jsx)("div",{ref:c,className:"absolute inset-0 pointer-events-none [&>*]:pointer-events-auto"})]})}function m(){return(0,e.useContext)(j)}},45214:(a,b,c)=>{c.d(b,{G:()=>h,t:()=>g});var d=c(48249),e=c(67484),f=c(44384);function g({x:a,y:b,range:c,codeContent:h,container:i,onSubmit:j,onClose:k}){let{t:l}=(0,f.Bd)(),[m,n]=(0,e.useState)(""),[o,p]=(0,e.useState)(!1),q=(0,e.useRef)(null),r=(0,e.useRef)(null),[s,t]=(0,e.useState)({x:0,y:0}),u=h?.split("\n").slice(0,5).join("\n"),v=!!h&&h.split("\n").length>5;return(0,d.jsxs)("div",{ref:q,className:"absolute z-[200] w-[640px] bg-card border border-border rounded-lg shadow-lg overflow-hidden",style:{left:s.x,top:s.y},children:[(0,d.jsx)("div",{className:"px-3 py-2 bg-amber-9/10 border-b border-border",children:(0,d.jsxs)("div",{className:"flex items-center justify-between",children:[(0,d.jsx)("span",{className:"text-xs font-medium text-amber-11",children:l("comments.addComment")}),(c.start>0||c.end>0)&&(0,d.jsx)("span",{className:"text-xs text-muted-foreground",children:l("comments.lineRange",{start:c.start,end:c.end})})]})}),h&&(0,d.jsx)("div",{className:"px-3 py-2 bg-secondary/50 border-b border-border max-h-24 overflow-hidden",children:(0,d.jsxs)("pre",{className:"text-xs font-mono text-muted-foreground whitespace-pre-wrap break-all",children:[u,v&&(0,d.jsx)("span",{className:"text-muted-foreground/50",children:"..."})]})}),(0,d.jsxs)("div",{className:"p-2",children:[(0,d.jsx)("textarea",{ref:r,value:m,onChange:a=>n(a.target.value),placeholder:l("comments.inputPlaceholder"),className:"w-full px-2 py-1.5 text-sm border border-border rounded bg-card resize-none focus:outline-none focus:ring-1 focus:ring-ring disabled:opacity-50 disabled:cursor-not-allowed",rows:2,disabled:o,onKeyDown:a=>{"Enter"===a.key&&!a.shiftKey&&!a.nativeEvent.isComposing&&(a.preventDefault(),!o&&m.trim()&&(p(!0),j(m.trim()))),"Escape"!==a.key||o||k()}}),(0,d.jsx)("div",{className:"mt-1 text-xs text-muted-foreground",children:l(o?"comments.submitting":"comments.enterSubmit")})]})]})}function h({x:a,y:b,range:c,filePath:g,codeContent:i,container:j,onSubmit:k,onClose:l,isChatLoading:m}){let{t:n}=(0,f.Bd)(),[o,p]=(0,e.useState)(""),q=(0,e.useRef)(null),r=(0,e.useRef)(null),[s,t]=(0,e.useState)({x:0,y:0}),u=i?.split("\n").slice(0,5).join("\n"),v=!!i&&i.split("\n").length>5;return(0,d.jsxs)("div",{ref:q,className:"absolute z-[200] w-[640px] bg-card border border-border rounded-lg shadow-lg overflow-hidden",style:{left:s.x,top:s.y},children:[(0,d.jsxs)("div",{className:"px-3 py-2 bg-brand/10 border-b border-border",children:[(0,d.jsxs)("div",{className:"flex items-center justify-between",children:[(0,d.jsx)("span",{className:"text-xs font-medium text-brand",children:n("comments.askAI")}),(c.start>0||c.end>0)&&(0,d.jsx)("span",{className:"text-xs text-muted-foreground",children:n("comments.lineRange",{start:c.start,end:c.end})})]}),g&&(0,d.jsx)("div",{className:"mt-1 text-xs text-muted-foreground truncate",children:g})]}),i&&(0,d.jsx)("div",{className:"px-3 py-2 bg-secondary/50 border-b border-border max-h-24 overflow-hidden",children:(0,d.jsxs)("pre",{className:"text-xs font-mono text-muted-foreground whitespace-pre-wrap break-all",children:[u,v&&(0,d.jsx)("span",{className:"text-muted-foreground/50",children:"..."})]})}),(0,d.jsxs)("div",{className:"p-2",children:[(0,d.jsx)("textarea",{ref:r,value:o,onChange:a=>p(a.target.value),placeholder:n("comments.inputQuestion"),className:"w-full px-2 py-1.5 text-sm border border-border rounded bg-card resize-none focus:outline-none focus:ring-1 focus:ring-ring disabled:opacity-50 disabled:cursor-not-allowed",rows:2,disabled:m,onKeyDown:a=>{"Enter"===a.key&&!a.shiftKey&&!a.nativeEvent.isComposing&&(a.preventDefault(),!m&&o.trim()&&(k(o.trim()),l())),"Escape"===a.key&&l()}}),(0,d.jsx)("div",{className:"mt-1 text-xs text-muted-foreground",children:n(m?"comments.aiGenerating":"comments.enterSend")})]})]})}},47033:(a,b,c)=>{c.d(b,{_:()=>e});var d=c(67484);function e({cwd:a,filePath:b}){let[c,f]=(0,d.useState)([]),[g,h]=(0,d.useState)(!1),[i,j]=(0,d.useState)(null),k=(0,d.useCallback)(async()=>{if(a&&b){h(!0),j(null);try{let c=await fetch(`/api/comments?cwd=${encodeURIComponent(a)}&filePath=${encodeURIComponent(b)}`);if(c.ok){let a=await c.json();f(a.comments||[])}else j("Failed to load comments")}catch(a){j(a instanceof Error?a.message:"Unknown error")}finally{h(!1)}}},[a,b]),l=(0,d.useCallback)(async(c,d,e,g)=>{try{let h=await fetch("/api/comments",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({cwd:a,filePath:b,startLine:c,endLine:d,content:e,...g?{selectedText:g}:{}})});if(h.ok){let a=await h.json();return f(b=>[...b,a.comment]),a.comment}}catch(a){console.error("Failed to add comment:",a)}return null},[a,b]),m=(0,d.useCallback)(async(b,c)=>{try{let d=await fetch("/api/comments",{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify({cwd:a,id:b,content:c})});if(d.ok){let a=await d.json();return f(c=>c.map(c=>c.id===b?a.comment:c)),!0}}catch(a){console.error("Failed to update comment:",a)}return!1},[a]),n=(0,d.useCallback)(async b=>{try{if((await fetch(`/api/comments?cwd=${encodeURIComponent(a)}&id=${encodeURIComponent(b)}`,{method:"DELETE"})).ok)return f(a=>a.filter(a=>a.id!==b)),!0}catch(a){console.error("Failed to delete comment:",a)}return!1},[a]),o=(0,d.useCallback)(a=>c.filter(b=>a>=b.startLine&&a<=b.endLine),[c]);return{comments:c,isLoading:g,error:i,addComment:l,updateComment:m,deleteComment:n,refresh:k,getCommentsForLine:o}}c(23434)},49280:(a,b,c)=>{c.d(b,{T:()=>v});var d=c(48249),e=c(98051),f=c(38368),g=c(33972),h=c(10841),i=c(99773),j=c(36513);c(55583),c(87023);var k=c(50757),l=c(27454),m=c(37752),n=c(67484),o=c(3532);let p=[f.A,g.A,h.jb],q=[f.A,h.jb],r=[i.A,j.A],s=[i.A];function t(a){return a.replace(/^(\|.+\|)$/gm,a=>/^\|[\s:|-]+\|$/.test(a)?a:a.replace(/`([^`]*)`/g,(a,b)=>b.includes("|")?"`"+b.replace(/\|/g,"\\|")+"`":a))}function u(a){return a.replace(/\$(\d)/g,"\\$$1")}let v=(0,n.memo)(function({content:a,isUser:b=!1,isStreaming:c=!1,enableMath:f=!0,rehypePlugins:g}){let{resolvedTheme:h}=(0,o.D)(),i="dark"===h,j=(0,n.useMemo)(()=>({code({className:a,children:b,node:c,...e}){let f=/language-(\w+)/.exec(a||""),g=String(b);if(!f&&!a&&!g.includes("\n"))return(0,d.jsx)("code",{className:"px-1.5 py-0.5 mx-0.5 rounded bg-accent text-sm font-mono",...e,children:b});let h=String(b).replace(/\n$/,""),j=f?.[1]||"text",n=Number(e["data-source-start"])||0,o=n?n+1:0,p=0;return(0,d.jsx)(k.A,{style:i?l.A:m.A,language:j,PreTag:"div",customStyle:{margin:"0.75rem 0",borderRadius:"0.375rem",fontSize:"0.875rem"},wrapLines:!0,lineProps:()=>{let a=o+p;return p++,{"data-source-start":a,"data-source-end":a,style:{display:"block"}}},children:h})},p:({children:a,node:b,...c})=>(0,d.jsx)("p",{className:"mb-3 last:mb-0",...c,children:a}),h1:({children:a,node:b,...c})=>(0,d.jsx)("h1",{className:"text-xl font-bold mb-3 mt-4 first:mt-0",...c,children:a}),h2:({children:a,node:b,...c})=>(0,d.jsx)("h2",{className:"text-lg font-bold mb-2 mt-3 first:mt-0",...c,children:a}),h3:({children:a,node:b,...c})=>(0,d.jsx)("h3",{className:"text-base font-bold mb-2 mt-3 first:mt-0",...c,children:a}),ul:({children:a,node:b,...c})=>(0,d.jsx)("ul",{className:"list-disc list-inside mb-3 space-y-1",...c,children:a}),ol:({children:a,node:b,...c})=>(0,d.jsx)("ol",{className:"list-decimal list-inside mb-3 space-y-1",...c,children:a}),li:({children:a,node:b,...c})=>(0,d.jsx)("li",{className:"leading-relaxed",...c,children:a}),blockquote:({children:a,node:b,...c})=>(0,d.jsx)("blockquote",{className:"border-l-4 border-border pl-4 my-3 italic text-muted-foreground",...c,children:a}),a:({href:a,children:b,node:c,...e})=>(0,d.jsx)("a",{href:a,target:"_blank",rel:"noopener noreferrer",className:"text-brand hover:underline",...e,children:b}),table:({children:a,node:b,...c})=>(0,d.jsx)("div",{className:"overflow-x-auto my-3",...c,children:(0,d.jsx)("table",{className:"min-w-full border border-border",children:a})}),thead:({children:a,node:b,...c})=>(0,d.jsx)("thead",{className:"bg-accent",...c,children:a}),th:({children:a,node:b,...c})=>(0,d.jsx)("th",{className:"px-4 py-2 text-left font-semibold border-b border-border",...c,children:a}),td:({children:a,node:b,...c})=>(0,d.jsx)("td",{className:"px-4 py-2 border-b border-border",...c,children:a}),hr:({node:a,...b})=>(0,d.jsx)("hr",{className:"my-4 border-border",...b}),img:({src:a,alt:b,node:c,height:e,width:f,style:g,...h})=>{if(!(e||f||g))return(0,d.jsx)("img",{src:a,alt:b||"",className:"max-w-full h-auto rounded-lg my-3",...h});let i=a=>a?/^\d+$/.test(String(a))?`${a}px`:String(a):void 0,j={...g,height:i(e)??g?.height,width:i(f)??g?.width};return(0,d.jsx)("img",{src:a,alt:b||"",style:j,className:"inline-block align-middle",...h})},strong:({children:a,node:b,...c})=>(0,d.jsx)("strong",{className:"font-bold",...c,children:a}),em:({children:a,node:b,...c})=>(0,d.jsx)("em",{className:"italic",...c,children:a}),del:({children:a,node:b,...c})=>(0,d.jsx)("del",{className:"line-through",...c,children:a})}),[i]),v=f?p:q,w=f?r:s,x=(0,n.useMemo)(()=>{if(b||c)return a;let d=t(!function(a){if(/^\|[\s:|-]+\|$/m.test(a))return!1;if(/[┌┐└┘│─├┤┬┴┼╔╗╚╝║═╭╮╯╰▲▼◀▶△▽◁▷]/.test(a)||/\+[-=]{2,}\+/.test(a))return!0;let b=a.split("\n").filter(a=>/^\s*\||\|\s*$/.test(a));if(b.length>=3){let a=b.map(a=>(a.match(/\|/g)||[]).length);return!a.every(b=>b===a[0])||!(a[0]>=3)}return!1}(a)||/^```[\s\S]*```$/m.test(a.trim())?a:"```text\n"+a.trim()+"\n```");return f?u(d):d},[a,b,c,f]),y=(0,n.useMemo)(()=>g?.length?[...w,...g]:w,[g,w]);if(b)return(0,d.jsx)("div",{className:"whitespace-pre-wrap break-words",children:a});if(c){let b=a.lastIndexOf("\n");if(-1===b)return(0,d.jsx)("div",{className:"whitespace-pre-wrap break-words",children:a});let c=a.slice(0,b+1),g=a.slice(b+1);return(0,d.jsxs)("div",{className:"markdown-body",children:[(0,d.jsx)(e.oz,{remarkPlugins:v,rehypePlugins:w,components:j,children:f?u(t(c)):t(c)}),g&&(0,d.jsx)("span",{className:"whitespace-pre-wrap",children:g})]})}return(0,d.jsx)("div",{className:"markdown-body",children:(0,d.jsx)(e.oz,{remarkPlugins:v,rehypePlugins:y,components:j,children:x})})})},60306:(a,b,c)=>{c.d(b,{b:()=>k});var d=c(48249),e=c(67484),f=c(44384),g=c(3532),h=c(81749),i=c(30976),j=c(74955);function k({isOpen:a,onClose:b}){let{t:c,i18n:l}=(0,f.Bd)(),{theme:m,setTheme:n}=(0,g.D)(),o=(0,j.G)(),[p,q]=(0,e.useState)(""),[r,s]=(0,e.useState)(""),[t,u]=(0,e.useState)("auto"),v=(0,e.useCallback)(a=>{u(a),fetch("/api/settings",{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify({language:a})}).catch(()=>{});let b="auto"===a?navigator.language.startsWith("zh")?"zh":"en":a;l.changeLanguage(b)},[l]),w=o?"installed":"not-installed",x=o?.version??null;if(!a)return null;let y=[{value:"system",label:c("settings.themeSystem"),icon:"\uD83D\uDCBB"},{value:"light",label:c("settings.themeLight"),icon:"☀️"},{value:"dark",label:c("settings.themeDark"),icon:"\uD83C\uDF19"}];return(0,d.jsxs)("div",{className:"fixed inset-0 z-50 flex items-center justify-center",children:[(0,d.jsx)("div",{className:"absolute inset-0 bg-black/50",onClick:b}),(0,d.jsxs)("div",{className:"relative bg-card rounded-lg shadow-xl w-full max-w-md mx-4 overflow-hidden",children:[(0,d.jsxs)("div",{className:"flex items-center justify-between px-4 py-3 border-b border-border",children:[(0,d.jsx)("h2",{className:"text-sm font-medium text-foreground",children:c("settings.title")}),(0,d.jsx)("button",{onClick:b,className:"p-1 text-muted-foreground hover:text-foreground hover:bg-accent rounded transition-colors",children:(0,d.jsx)("svg",{className:"w-5 h-5",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",children:(0,d.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M6 18L18 6M6 6l12 12"})})})]}),(0,d.jsxs)("div",{className:"p-4 space-y-4",children:[(0,d.jsxs)("div",{children:[(0,d.jsx)("label",{className:"block text-sm font-medium text-foreground mb-2",children:c("settings.theme")}),(0,d.jsx)("div",{className:"grid grid-cols-3 gap-2",children:y.map(a=>(0,d.jsxs)("button",{onClick:()=>n(a.value),className:`flex flex-col items-center gap-1 p-3 rounded-lg border transition-colors ${m===a.value?"border-brand bg-brand/10 text-brand":"border-border hover:border-slate-6 text-muted-foreground hover:text-foreground"}`,children:[(0,d.jsx)("span",{className:"text-xl",children:a.icon}),(0,d.jsx)("span",{className:"text-xs font-medium",children:a.label})]},a.value))})]}),(0,d.jsx)("div",{className:"border-t border-border"}),(0,d.jsxs)("div",{children:[(0,d.jsx)("label",{className:"block text-sm font-medium text-foreground mb-2",children:c("settings.language")}),(0,d.jsx)("div",{className:"grid grid-cols-3 gap-2",children:[{value:"auto",label:c("settings.languageAuto"),icon:"\uD83C\uDF10"},{value:"en",label:"English",icon:"\uD83C\uDDFA\uD83C\uDDF8"},{value:"zh",label:"中文",icon:"\uD83C\uDDE8\uD83C\uDDF3"}].map(a=>(0,d.jsxs)("button",{onClick:()=>v(a.value),className:`flex flex-col items-center gap-1 p-3 rounded-lg border transition-colors ${t===a.value?"border-brand bg-brand/10 text-brand":"border-border hover:border-slate-6 text-muted-foreground hover:text-foreground"}`,children:[(0,d.jsx)("span",{className:"text-xl",children:a.icon}),(0,d.jsx)("span",{className:"text-xs font-medium",children:a.label})]},a.value))})]}),(0,d.jsx)("div",{className:"border-t border-border"}),(0,d.jsxs)("div",{children:[(0,d.jsx)("label",{className:"block text-sm font-medium text-foreground mb-2",children:c("settings.browserExtension")}),(0,d.jsxs)("div",{className:"space-y-2",children:[(0,d.jsxs)("div",{className:"flex items-center gap-2 text-xs text-muted-foreground",children:[(0,d.jsx)("span",{className:`inline-block w-2 h-2 rounded-full flex-shrink-0 ${"installed"===w?"bg-green-500":"bg-slate-400"}`}),(0,d.jsxs)("span",{children:["installed"===w&&`${c("settings.extensionInstalled")}${x?` (v${x})`:""}`,"not-installed"===w&&c("settings.extensionNotInstalled")]})]}),(0,d.jsx)("p",{className:"text-xs text-muted-foreground leading-relaxed",children:c("settings.extensionDescription")}),"installed"!==w&&(0,d.jsxs)("div",{className:"text-xs text-muted-foreground bg-muted/50 rounded-md p-2 space-y-1",children:[(0,d.jsx)("p",{className:"font-medium text-foreground",children:c("settings.installSteps")}),(0,d.jsxs)("p",{children:[c("settings.step1")," ",(0,d.jsx)("code",{className:"px-1 py-0.5 bg-muted rounded text-foreground",children:"chrome://extensions"})]}),(0,d.jsx)("p",{children:c("settings.step2")}),(0,d.jsx)("p",{children:c("settings.step3")}),(0,i.L)()&&(0,d.jsx)("p",{dangerouslySetInnerHTML:{__html:c("settings.step4mac")}})]}),(0,d.jsxs)("div",{className:"flex gap-2",children:[(0,d.jsx)("button",{onClick:()=>{let a=p||"chrome-extension";navigator.clipboard.writeText(a),(0,h.oR)(c("toast.copiedName",{name:a}))},className:"px-3 py-1.5 text-xs bg-brand text-white rounded-md hover:bg-brand/90 transition-colors",children:c("settings.copyExtensionPath")}),"installed"===w&&(0,d.jsx)("button",{onClick:()=>{o?.id&&window.chrome?.runtime?.sendMessage&&(window.chrome.runtime.sendMessage(o.id,{type:"reload"}),(0,h.oR)(c("toast.pluginReloading")))},className:"px-3 py-1.5 text-xs border border-border text-foreground rounded-md hover:bg-muted transition-colors",children:c("settings.reloadExtension")})]}),p&&(0,d.jsx)("p",{className:"text-[11px] text-muted-foreground font-mono truncate",children:p})]})]}),(0,d.jsx)("div",{className:"border-t border-border"}),(0,d.jsxs)("div",{children:[(0,d.jsx)("label",{className:"block text-sm font-medium text-foreground mb-2",children:c("settings.about")}),(0,d.jsxs)("div",{className:"text-xs text-muted-foreground space-y-1",children:[(0,d.jsxs)("p",{children:["Cockpit",r?` v${r}`:""]}),(0,d.jsx)("p",{className:"text-muted-foreground/60",children:"One seat. One AI. Everything under control."})]})]})]})]})]})}},61858:(a,b,c)=>{function d(){}function e(a){return()=>{}}c.d(b,{U:()=>e,k:()=>d})},64874:(a,b,c)=>{c.d(b,{r:()=>g});var d=c(48249),e=c(67484),f=c(44384);function g({isOpen:a,onClose:b,onSelectSession:c,onAddProject:h}){let{t:i}=(0,f.Bd)(),[j,k]=(0,e.useState)(!1),[l,m]=(0,e.useState)([]),[n,o]=(0,e.useState)({}),[p,q]=(0,e.useState)(!1),[r,s]=(0,e.useState)(null),[t,u]=(0,e.useState)(""),v=(0,e.useRef)(null);(0,e.useCallback)(async()=>{q(!0),s(null),o({});try{let a=await fetch("/api/sessions/projects");if(!a.ok)throw Error("Failed to load projects");let b=await a.json();m(b)}catch(a){s(a instanceof Error?a.message:"Unknown error")}finally{q(!1)}},[]);let w=(0,e.useCallback)(async a=>{o(b=>({...b,[a]:{...b[a],isExpanded:!0,isLoading:!0,sessions:[],error:null}}));try{let b=await fetch(`/api/sessions/projects/${encodeURIComponent(a)}`);if(!b.ok)throw Error("Failed to load sessions");let c=await b.json();o(b=>({...b,[a]:{...b[a],isLoading:!1,sessions:c}}))}catch(b){o(c=>({...c,[a]:{...c[a],isLoading:!1,error:b instanceof Error?b.message:"Unknown error"}}))}},[]),x=(0,e.useCallback)(a=>{let b=n[a];b?.isExpanded?o(b=>({...b,[a]:{...b[a],isExpanded:!1}})):b?.sessions?.length?o(b=>({...b,[a]:{...b[a],isExpanded:!0}})):w(a)},[n,w]),y=(0,e.useCallback)(async()=>{if(!j){k(!0);try{let a=await fetch("/api/pick-folder"),c=await a.json();c.folder&&h&&(h(c.folder),b())}catch{}finally{k(!1)}}},[j,h,b]);return a?(0,d.jsxs)("div",{className:"fixed inset-0 z-50 flex items-center justify-center",children:[(0,d.jsx)("div",{className:"absolute inset-0 bg-black/50 backdrop-blur-sm",onClick:b}),(0,d.jsxs)("div",{className:"relative w-full max-w-6xl h-[90vh] mx-4 bg-card rounded-lg shadow-xl flex flex-col overflow-hidden",children:[(0,d.jsxs)("div",{className:"flex items-center justify-between px-4 py-3 border-b border-border",children:[(0,d.jsx)("h2",{className:"text-sm font-medium text-foreground",children:i("sessions.projectList")}),(0,d.jsxs)("div",{className:"flex items-center gap-3",children:[(0,d.jsx)("input",{ref:v,type:"text",placeholder:i("workspace.searchProjectPath"),value:t,onChange:a=>u(a.target.value),className:"px-2 py-1 text-xs border border-border rounded bg-card text-foreground placeholder-slate-9 focus:outline-none focus:ring-2 focus:ring-ring focus:border-transparent"}),h&&(0,d.jsxs)("button",{onClick:y,disabled:j,className:"flex items-center gap-1.5 px-2.5 py-1 text-xs rounded-md border border-border text-muted-foreground hover:text-foreground hover:bg-accent transition-colors disabled:opacity-50",title:i("sessions.openFolder"),children:[(0,d.jsx)("svg",{className:"w-4 h-4",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",children:(0,d.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M12 10v6m3-3H9m-4 7h14a2 2 0 002-2V9a2 2 0 00-2-2h-6l-2-2H5a2 2 0 00-2 2v10a2 2 0 002 2z"})}),j?i("sessions.selectingFolder"):i("sessions.openFolder")]}),(0,d.jsx)("button",{onClick:b,className:"p-1 text-slate-9 hover:text-foreground hover:bg-accent rounded transition-colors",children:(0,d.jsx)("svg",{className:"w-5 h-5",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",children:(0,d.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M6 18L18 6M6 6l12 12"})})})]})]}),(0,d.jsxs)("div",{className:"flex-1 overflow-y-auto p-4",children:[p&&(0,d.jsx)("div",{className:"flex items-center justify-center h-full",children:(0,d.jsxs)("div",{className:"flex items-center gap-2 text-xs text-muted-foreground",children:[(0,d.jsxs)("svg",{className:"animate-spin h-4 w-4",fill:"none",viewBox:"0 0 24 24",children:[(0,d.jsx)("circle",{className:"opacity-25",cx:"12",cy:"12",r:"10",stroke:"currentColor",strokeWidth:"4"}),(0,d.jsx)("path",{className:"opacity-75",fill:"currentColor",d:"M4 12a8 8 0 018-8V0C5.373 0 0 5.373 0 12h4z"})]}),(0,d.jsx)("span",{children:i("workspace.loadingProjects")})]})}),r&&(0,d.jsx)("div",{className:"flex items-center justify-center h-full",children:(0,d.jsx)("div",{className:"text-xs text-red-11",children:r})}),!p&&!r&&0===l.length&&(0,d.jsx)("div",{className:"flex items-center justify-center h-full",children:(0,d.jsx)("div",{className:"text-xs text-muted-foreground",children:i("workspace.projectNotFound")})}),!p&&!r&&l.filter(a=>a.fullPath.toLowerCase().includes(t.toLowerCase())).map(a=>{let b=n[a.encodedPath]||{isExpanded:!1,isLoading:!1,sessions:[],error:null};return(0,d.jsxs)("div",{className:"mb-3",children:[(0,d.jsxs)("button",{onClick:()=>x(a.encodedPath),className:"w-full flex items-center gap-2 p-2 rounded hover:bg-accent transition-colors text-left",children:[(0,d.jsx)("svg",{className:`w-3 h-3 text-muted-foreground transition-transform ${b.isExpanded?"rotate-90":""}`,fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",children:(0,d.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M9 5l7 7-7 7"})}),(0,d.jsx)("svg",{className:"w-4 h-4 text-muted-foreground",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",children:(0,d.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M3 7v10a2 2 0 002 2h14a2 2 0 002-2V9a2 2 0 00-2-2h-6l-2-2H5a2 2 0 00-2 2z"})}),(0,d.jsx)("span",{className:"flex-1 text-xs font-medium text-foreground truncate",title:a.fullPath,children:a.fullPath}),(0,d.jsxs)("span",{className:"text-xs text-muted-foreground",children:["(",a.sessionCount,")"]})]}),b.isExpanded&&(0,d.jsxs)("div",{className:"ml-6 mt-2",children:[b.isLoading&&(0,d.jsxs)("div",{className:"flex items-center gap-2 p-3 text-xs text-muted-foreground",children:[(0,d.jsxs)("svg",{className:"animate-spin h-3 w-3",fill:"none",viewBox:"0 0 24 24",children:[(0,d.jsx)("circle",{className:"opacity-25",cx:"12",cy:"12",r:"10",stroke:"currentColor",strokeWidth:"4"}),(0,d.jsx)("path",{className:"opacity-75",fill:"currentColor",d:"M4 12a8 8 0 018-8V0C5.373 0 0 5.373 0 12h4z"})]}),(0,d.jsx)("span",{children:i("sessions.loadingSessions")})]}),b.error&&(0,d.jsx)("div",{className:"p-3 text-xs text-red-11",children:b.error}),!b.isLoading&&!b.error&&(0,d.jsx)("div",{className:"grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-3",children:b.sessions.map(b=>(0,d.jsxs)("div",{onClick:()=>{var d;let e;return d=a.fullPath,e=(b.path.split("/").pop()||"").replace(".jsonl",""),void(c?c(d,e):window.parent.postMessage({type:"OPEN_PROJECT",cwd:d,sessionId:e},"*"))},className:"p-3 bg-secondary rounded border border-border hover:border-brand hover:shadow-md cursor-pointer transition-all",children:[(0,d.jsxs)("div",{className:"flex items-center gap-1.5 mb-1",children:[b.engine&&"claude"!==b.engine&&(0,d.jsx)("span",{className:`shrink-0 px-1 py-0.5 text-[10px] leading-none font-medium rounded ${"claude2"===b.engine?"bg-orange-500/15 text-orange-11":"ollama"===b.engine?"bg-blue-500/15 text-blue-11":"codex"===b.engine?"bg-green-500/15 text-green-11":"kimi"===b.engine?"bg-purple-500/15 text-purple-11":"bg-muted text-muted-foreground"}`,children:b.engine}),(0,d.jsx)("h4",{className:"text-xs font-medium text-foreground truncate",title:b.title,children:b.title})]}),(0,d.jsx)("div",{className:"text-xs text-muted-foreground mb-2",children:new Date(b.modifiedAt).toLocaleString("zh-CN",{year:"numeric",month:"2-digit",day:"2-digit",hour:"2-digit",minute:"2-digit"})}),(0,d.jsxs)("div",{className:"space-y-0.5 text-xs",children:[b.firstMessages.map((a,b)=>(0,d.jsxs)("div",{className:"text-foreground truncate",title:a,children:[(0,d.jsx)("span",{className:"text-slate-9 mr-1",children:"•"}),a]},`first-${b}`)),b.lastMessages.length>0&&(0,d.jsx)("div",{className:"text-slate-9 text-center py-0.5",children:"\xb7\xb7\xb7"}),b.lastMessages.map((a,b)=>(0,d.jsxs)("div",{className:"text-foreground truncate",title:a,children:[(0,d.jsx)("span",{className:"text-slate-9 mr-1",children:"•"}),a]},`last-${b}`))]})]},b.path))})]})]},a.encodedPath)})]})]})]}):null}},68502:(a,b,c)=>{c.d(b,{t:()=>g});var d=c(48249),e=c(67484),f=c(44384);function g({x:a,y:b,comment:c,container:h,onClose:i,onUpdateComment:j,onDeleteComment:k}){let{t:l}=(0,f.Bd)(),[m,n]=(0,e.useState)(!1),[o,p]=(0,e.useState)(c.content),q=(0,e.useRef)(null),[r,s]=(0,e.useState)({x:0,y:0}),t=async()=>{o.trim()&&(await j(c.id,o.trim()),n(!1))},u=async()=>{await k(c.id),i()};return(0,d.jsx)("div",{ref:q,className:"absolute z-[200] w-96 bg-card border border-border rounded-lg shadow-lg overflow-hidden",style:{left:r.x,top:r.y},children:(0,d.jsx)("div",{className:"p-3",children:m?(0,d.jsxs)("div",{className:"space-y-2",children:[(0,d.jsx)("textarea",{value:o,onChange:a=>p(a.target.value),className:"w-full px-2 py-1.5 text-sm border border-border rounded bg-card resize-none focus:outline-none focus:ring-1 focus:ring-ring",rows:3,autoFocus:!0,onKeyDown:a=>{"Enter"!==a.key||a.shiftKey||a.nativeEvent.isComposing||(a.preventDefault(),t()),"Escape"===a.key&&(n(!1),p(c.content))}}),(0,d.jsxs)("div",{className:"flex justify-end gap-2",children:[(0,d.jsx)("button",{onClick:()=>{n(!1),p(c.content)},className:"px-2 py-1 text-xs text-muted-foreground hover:text-foreground",children:l("common.cancel")}),(0,d.jsx)("button",{onClick:t,className:"px-2 py-1 text-xs bg-brand text-white rounded hover:bg-brand/90",children:l("common.save")})]})]}):(0,d.jsxs)(d.Fragment,{children:[(0,d.jsx)("p",{className:"text-sm text-foreground whitespace-pre-wrap",children:c.content}),(0,d.jsxs)("div",{className:"mt-2 flex items-center justify-between",children:[(0,d.jsx)("span",{className:"text-xs text-muted-foreground",children:l("comments.lineRange",{start:c.startLine,end:c.endLine})}),(0,d.jsxs)("div",{className:"flex gap-1",children:[(0,d.jsx)("button",{onClick:()=>n(!0),className:"p-1 rounded hover:bg-accent text-muted-foreground",title:l("common.edit"),children:(0,d.jsx)("svg",{className:"w-3.5 h-3.5",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",children:(0,d.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M11 5H6a2 2 0 00-2 2v11a2 2 0 002 2h11a2 2 0 002-2v-5m-1.414-9.414a2 2 0 112.828 2.828L11.828 15H9v-2.828l8.586-8.586z"})})}),(0,d.jsx)("button",{onClick:u,className:"p-1 rounded hover:bg-accent text-muted-foreground hover:text-red-9",title:l("common.delete"),children:(0,d.jsx)("svg",{className:"w-3.5 h-3.5",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",children:(0,d.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M19 7l-.867 12.142A2 2 0 0116.138 21H7.862a2 2 0 01-1.995-1.858L5 7m5 4v6m4-6v6m1-10V4a1 1 0 00-1-1h-4a1 1 0 00-1 1v3M4 7h16"})})})]})]})]})})})}},74955:(a,b,c)=>{c.d(b,{G:()=>l,f:()=>m});var d=c(67484);function e(){if("u"<typeof document)return null;let a=document.querySelector('meta[name="cockpit-bridge"]');if(!a)return null;let b=a.dataset.id,c=a.dataset.version;return b?{id:b,version:c||"unknown"}:null}let f=null,g=new Set;function h(){g.forEach(a=>a())}function i(a){g.add(a);let b=e();return b&&!f&&(f=b,Promise.resolve().then(h)),()=>{g.delete(a)}}function j(){return f}function k(){return null}if("u">typeof document&&(f=e()),"u">typeof MutationObserver&&"u">typeof document){let a=new MutationObserver(()=>{let a=e();a&&(!f||a.id!==f.id||a.version!==f.version)&&(f=a,h())}),b=document.head||document.documentElement;b&&a.observe(b,{childList:!0})}function l(){return(0,d.useSyncExternalStore)(i,j,k)}function m(){return f??e()}},75005:(a,b,c)=>{c.d(b,{A:()=>e});var d=c(67484);function e({lines:a,enabled:b,onContentChange:c,onEnterInsert:f,onSave:g,getVisibleLineCount:h,scrollToLine:i,onSearchExecute:j,onSearchNext:k,onSearchPrev:l,onSearchClear:m}){let[n,o]=(0,d.useState)("normal"),[p,q]=(0,d.useState)(-1),[r,s]=(0,d.useState)(0),[t,u]=(0,d.useState)(!1),[v,w]=(0,d.useState)(""),[x,y]=(0,d.useState)(""),[z,A]=(0,d.useState)(""),[B,C]=(0,d.useState)(""),D=(0,d.useRef)([]),E=(0,d.useRef)([]),F=(0,d.useRef)([]),G=(0,d.useRef)(null),H=(0,d.useRef)(a),I=(0,d.useCallback)((a,b)=>Math.max(0,Math.min(b,Math.max(0,(H.current[a]??"").length-1))),[]);(0,d.useRef)(a.length);let J=(0,d.useCallback)(()=>{G.current&&(clearTimeout(G.current),G.current=null),w("")},[]),K=(0,d.useCallback)(()=>{G.current&&clearTimeout(G.current),G.current=setTimeout(()=>{w(""),G.current=null},500)},[]),L=(0,d.useCallback)((a,b)=>{D.current.push(b),E.current=[],u(!0),c(a.join("\n"))},[c]),M=(0,d.useCallback)((a,b)=>{let c=Math.max(0,Math.min(a,H.current.length-1));q(c),s(I(c,b??0)),i(c,"auto")},[i,I]),N=(0,d.useCallback)(a=>{q(b=>{let c=Math.max(0,Math.min(b+a,H.current.length-1));return i(c,"auto"),s(a=>Math.max(0,Math.min(a,Math.max(0,(H.current[c]??"").length-1)))),c})},[i]),O=(0,d.useCallback)(()=>{let a=H.current,b=Math.min(p,a.length-1);if(0===a.length)return;let c=a[b];F.current=[c];let d=[...a];d.splice(b,1),0===d.length&&d.push("");let e=Math.min(b,d.length-1);L(d,{lineIndex:b,oldLines:[c],newLines:[],cursorLine:b}),q(e),s(0)},[p,L]),P=(0,d.useCallback)(()=>{let a=H.current,b=Math.min(p,a.length-1);a.length>0&&(F.current=[a[b]])},[p]),Q=(0,d.useCallback)(()=>{let a=F.current;if(0===a.length)return;let b=H.current,c=Math.min(p,b.length-1)+1,d=[...b];d.splice(c,0,...a),L(d,{lineIndex:c,oldLines:[],newLines:[...a],cursorLine:p}),q(c),s(0),i(c,"auto")},[p,L,i]),R=(0,d.useCallback)(()=>{let a=H.current,b=Math.min(p,a.length-1),c=a[b];if(!c||0===c.length)return;let d=c.substring(1),e=[...a];e[b]=d,L(e,{lineIndex:b,oldLines:[c],newLines:[d],cursorLine:p})},[p,L]),S=(0,d.useCallback)(()=>{let a=D.current;if(0===a.length)return;let b=a.pop(),d=[...H.current];0===b.newLines.length&&b.oldLines.length>0?d.splice(b.lineIndex,0,...b.oldLines):0===b.oldLines.length&&b.newLines.length>0?(d.splice(b.lineIndex,b.newLines.length),0===d.length&&d.push("")):d.splice(b.lineIndex,b.newLines.length,...b.oldLines),E.current.push(b),c(d.join("\n")),q(Math.min(b.cursorLine,d.length-1)),i(Math.min(b.cursorLine,d.length-1),"auto"),0===a.length&&u(!1)},[c,i]),T=(0,d.useCallback)(()=>{let a=E.current;if(0===a.length)return;let b=a.pop(),d=[...H.current];0===b.newLines.length&&b.oldLines.length>0?(d.splice(b.lineIndex,b.oldLines.length),0===d.length&&d.push("")):0===b.oldLines.length&&b.newLines.length>0?d.splice(b.lineIndex,0,...b.newLines):d.splice(b.lineIndex,b.oldLines.length,...b.newLines),D.current.push(b),u(!0),c(d.join("\n"));let e=b.lineIndex+Math.max(0,b.newLines.length-1);q(Math.min(e,d.length-1)),i(Math.min(e,d.length-1),"auto")},[c,i]),U=(0,d.useCallback)(a=>{let b=H.current,c=Math.min(p,b.length-1);if("o"===a||"O"===a){let d="o"===a?c+1:c,e=[...b];e.splice(d,0,""),L(e,{lineIndex:d,oldLines:[],newLines:[""],cursorLine:p}),c=d,q(d)}o("insert"),f(c,r,a)},[p,r,L,f]),V=(0,d.useCallback)(()=>{o("normal"),J()},[J]),W=(0,d.useCallback)(()=>{o("command"),y("")},[]),X=(0,d.useCallback)(()=>{o("normal"),y("")},[]),Y=(0,d.useCallback)(()=>{o("search"),A("")},[]),Z=(0,d.useCallback)(()=>{o("normal"),A("")},[]),$=(0,d.useCallback)(a=>{let b=a.trim();if("w"===b){g?.(),o("normal"),y("");return}if("q"===b){o("normal"),y("");return}if("wq"===b){g?.(),o("normal"),y("");return}if("noh"===b||"nohlsearch"===b){m?.(),o("normal"),y("");return}let c=parseInt(b,10);if(!isNaN(c)&&c>0){let a=Math.min(c-1,H.current.length-1);q(a),i(a,"center"),o("normal"),y("");return}o("normal"),y("")},[g,m,i]),_=(0,d.useCallback)(a=>{if(!a){o("normal"),A("");return}C(a),j?.(a),o("normal"),A("")},[j]),aa=(0,d.useCallback)(a=>{if(!b)return!1;let c=a.ctrlKey&&"c"===a.key&&!a.metaKey&&!a.shiftKey;if("insert"===n)return("Escape"===a.key||!!c)&&(V(),!0);if("command"===n)return!a.isComposing&&("Escape"===a.key||c?X():"Enter"===a.key?$(x):"Backspace"===a.key?0===x.length?X():y(a=>a.slice(0,-1)):1!==a.key.length||a.metaKey||a.ctrlKey||y(b=>b+a.key),!0);if("search"===n)return!a.isComposing&&("Escape"===a.key||c?Z():"Enter"===a.key?_(z):"Backspace"===a.key?0===z.length?Z():A(a=>a.slice(0,-1)):1!==a.key.length||a.metaKey||a.ctrlKey||A(b=>b+a.key),!0);if(p<0&&(q(0),s(0)),a.metaKey)return!1;if(a.ctrlKey)return"d"===a.key?(N(Math.max(1,Math.floor(h()/2))),J(),!0):"u"===a.key?(N(-Math.max(1,Math.floor(h()/2))),J(),!0):"r"===a.key&&(T(),J(),!0);let d=a.key,e=v+d;if("g"===e)return w("g"),K(),!0;if("gg"===e)return M(0),J(),!0;if("d"===e)return w("d"),K(),!0;if("dd"===e)return O(),J(),!0;if("y"===e)return w("y"),K(),!0;if("yy"===e)return P(),J(),!0;if(v&&e!==d&&J(),"j"===d||"ArrowDown"===d)return N(1),!0;if("k"===d||"ArrowUp"===d)return N(-1),!0;if("h"===d||"ArrowLeft"===d)return s(a=>Math.max(0,a-1)),!0;if("l"===d||"ArrowRight"===d){let a=Math.max(0,(H.current[p]??"").length-1);return s(b=>Math.min(a,b+1)),!0}if("0"===d)return s(0),!0;if("$"===d)return s(Math.max(0,(H.current[p]??"").length-1)),!0;if("^"===d){let a=(H.current[p]??"").search(/\S/);return s(a>=0?a:0),!0}return"G"===d?(M(H.current.length-1),!0):"x"===d?(R(),!0):"p"===d?(Q(),!0):"u"===d?(S(),!0):"i"===d||"a"===d||"I"===d||"A"===d||"o"===d||"O"===d?(U(d),!0):"/"===d?(Y(),!0):"n"===d?(k?.(),!0):"N"===d?(l?.(),!0):":"===d?(W(),!0):"Escape"!==d&&1===d.length},[b,n,v,x,z,p,V,U,W,X,Y,Z,$,_,N,M,h,O,P,Q,R,S,T,J,K,k,l]);return{state:{mode:n,cursorLine:p,cursorCol:r,isDirty:t,keyBuffer:v,commandInput:x,searchInput:z,lastSearch:B},handleKeyDown:aa,enterNormal:V,enterInsert:U,setCursorLine:q,setCursorCol:s,setCommandInput:y,setSearchInput:A,setIsDirty:u,clearUndoHistory:(0,d.useCallback)(()=>{D.current=[],E.current=[]},[])}}},77033:(a,b,c)=>{c.d(b,{k_:()=>g,nH:()=>h});var d=c(48249),e=c(67484);let f=(0,e.createContext)(null);function g({children:a}){let b=(0,e.useRef)(new Map),c=(0,e.useRef)(null),[h,i]=(0,e.useState)(!1),j=(0,e.useCallback)((a,c)=>{b.current.set(c,a)},[]),k=(0,e.useCallback)(a=>{b.current.delete(a)},[]),l=(0,e.useCallback)(a=>{c.current=a},[]),m=(0,e.useCallback)(a=>{let d=c.current;if(!d)return void console.warn("No active tab to send message");let e=b.current.get(d);e?e(a):console.warn(`No chat sender registered for tab ${d}`)},[]),n=(0,e.useMemo)(()=>({sendMessage:m,isLoading:h,registerChat:j,unregisterChat:k,setActiveTab:l,setIsLoading:i}),[m,h,j,k,l]);return(0,d.jsx)(f.Provider,{value:n,children:a})}function h(){return(0,e.useContext)(f)}},77937:(a,b,c)=>{c.d(b,{f:()=>h,w:()=>g});var d=c(48249),e=c(67484),f=c(44384);function g({x:a,y:b,visible:c,container:e,onAddComment:h,onSendToAI:i,onSearch:j,isChatLoading:k}){let{t:l}=(0,f.Bd)(),m=e.getBoundingClientRect(),n=a-m.left,o=Math.max(0,b-m.top-40);return(0,d.jsxs)("div",{className:"floating-toolbar absolute z-[200] flex items-center gap-1.5 bg-card border border-border rounded-lg shadow-xl p-1.5",style:{left:n+8,top:o,visibility:c?"visible":"hidden",pointerEvents:c?"auto":"none"},children:[(0,d.jsx)("button",{className:"px-3 py-1.5 text-xs font-medium border border-brand text-brand rounded-md hover:bg-brand/10 transition-colors",onClick:h,children:l("floatingToolbar.addComment")}),(0,d.jsx)("button",{className:"px-3 py-1.5 text-xs font-medium border border-brand text-brand rounded-md hover:bg-brand/10 transition-colors disabled:opacity-50 disabled:cursor-not-allowed",onClick:i,disabled:k,title:l(k?"comments.aiResponding":"floatingToolbar.sendToAI"),children:l("floatingToolbar.sendToAI")}),j&&(0,d.jsx)("button",{className:"px-3 py-1.5 text-xs font-medium border border-brand text-brand rounded-md hover:bg-brand/10 transition-colors",onClick:j,children:l("floatingToolbar.search")})]})}let h=(0,e.memo)(function({floatingToolbarRef:a,bumpRef:b,container:c,onAddComment:f,onSendToAI:h,onSearch:i,isChatLoading:j}){let[k,l]=(0,e.useState)(0),m=(0,e.useMemo)(()=>a.current,[k]);return(0,d.jsx)(g,{x:m?.x??0,y:m?.y??0,visible:!!m,container:c,onAddComment:f,onSendToAI:h,onSearch:i,isChatLoading:j})})},79029:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.d(b,{Cv:()=>z,XO:()=>x});var e=c(48249),f=c(67484),g=c(44384),h=c(74429),i=c(26068),j=c(45214),k=c(90173),l=c(5811),m=c(77937),n=c(68502),o=c(95133),p=c(16306),q=c(94882),r=c(81749),s=c(75005),t=a([k,l,p]);[k,l,p]=t.then?(await t)():t;let y="white-space:pre;padding:0 12px;min-height:20px;line-height:20px";function u(a){let b=window.getSelection();if(!b?.rangeCount)return null;let c=b.getRangeAt(0),d=c.startContainer;for(;d&&d.parentElement!==a;)d=d.parentElement;if(!d)return null;let e=Array.from(a.children).indexOf(d);if(e<0)return null;let f=document.createRange();f.selectNodeContents(d),f.setEnd(c.startContainer,c.startOffset);let g=f.toString().length;return{line:e,offset:g}}function v(a,b){let c,d=a.children[b.line];if(!d)return;let e=document.createTreeWalker(d,NodeFilter.SHOW_TEXT),f=b.offset;for(;c=e.nextNode();){let a=c.textContent?.length||0;if(f<=a){let a=window.getSelection(),b=document.createRange();b.setStart(c,f),b.collapse(!0),a?.removeAllRanges(),a?.addRange(b);return}f-=a}let g=window.getSelection(),h=document.createRange();h.selectNodeContents(d),h.collapse(!1),g?.removeAllRanges(),g?.addRange(h)}function w(a){return a.map(a=>`<div style="${y}">${a}</div>`).join("")}let z=(0,f.forwardRef)(function({content:a,filePath:b,showLineNumbers:c=!0,showSearch:d=!0,className:k="",cwd:t,enableComments:x=!1,scrollToLine:z=null,scrollToLineAlign:A="center",onScrollToLineComplete:B,highlightKeyword:C=null,visibleLineRef:D,onCmdClick:E,onTokenHover:F,onTokenHoverLeave:G,onTokenHoverCancel:H,blameLines:I,inlineBlameLines:J,onSelectCommit:K,editable:L=!1,initialMtime:M,onEditorClose:N,onSaved:O,onEditorStateChange:P,viMode:Q=!1,onContentMutate:R,onEnterInsertMode:S,onViSave:T,viStateRef:U,initialCursorLine:V,initialCursorCol:W,onInitialCursorSet:X,onContentSearch:Y},Z){let{t:$}=(0,g.Bd)(),_=(0,f.useRef)(a),aa=(0,f.useRef)(!1),[ab,ac]=(0,f.useState)(!1),[ad,ae]=(0,f.useState)(!1),[af,ag]=(0,f.useState)(()=>a.split("\n").length),ah=(0,f.useRef)(a.split("\n").length),[ai,aj]=(0,f.useState)({show:!1}),ak=(0,f.useRef)(null),al=(0,f.useRef)(null),am=(0,f.useRef)(M),an=(0,f.useRef)(null),ao=(0,f.useRef)(!1),ap=(0,f.useRef)(!1),{parentRef:aq,containerRef:ar,searchInputRef:as,floatingToolbarRef:at,suppressHoverRef:au,bumpToolbarRef:av,savedSelectionRef:aw,highlightedLines:ax,isMounted:ay,cmdHeld:az,flashLine:aA,isSearchVisible:aB,searchQuery:aC,caseSensitive:aD,wholeWord:aE,currentMatchIndex:aF,viewingComment:aG,addCommentInput:aH,sendToAIInput:aI,chatContext:aJ,commentsEnabled:aK,updateComment:aL,deleteComment:aM,lines:aN,matches:aO,rowData:aP,virtualizer:aQ,commentsByEndLine:aR,linesWithComments:aS,setIsSearchVisible:aT,setSearchQuery:aU,setCaseSensitive:aV,setWholeWord:aW,setViewingComment:aX,setAddCommentInput:aY,setSendToAIInput:aZ,goToNextMatch:a$,goToPrevMatch:a_,handleSearchKeyDown:a0,handleCommentBubbleClick:a1,handleToolbarAddComment:a2,handleToolbarSendToAI:a3,handleToolbarSearch:a4,handleCommentSubmit:a5,handleSendToAISubmit:a6,getHighlightedLineHtml:a7,suppressMatchScrollRef:a8,inlineBlameLineRef:a9,inlineBlameVersion:ba}=(0,p.d)({content:a,filePath:b,showSearch:d,cwd:t,enableComments:!L&&x,scrollToLine:L?null:z,scrollToLineAlign:L?"center":A,onScrollToLineComplete:L?void 0:B,visibleLineRef:L?void 0:D,onContentSearch:Y}),bb=(0,i.iN)(),bc=(0,f.useRef)(null),bd=(0,f.useRef)(null),be=(0,f.useRef)({line:0,col:0}),bf=(0,s.A)({lines:aN,enabled:Q&&!L,onContentChange:a=>{R?.(a)},onEnterInsert:(a,b,c)=>{let d=b;if("a"===c)d=b+1;else if("A"===c)d=(aN[a]??"").length;else if("I"===c){let b=(aN[a]??"").search(/\S/);d=b>=0?b:0}else("o"===c||"O"===c)&&(d=0);be.current={line:a,col:d},S?.(a)},onSave:T,getVisibleLineCount:()=>{let a=aq.current;return a?Math.floor(a.clientHeight/20):20},scrollToLine:(a,b)=>{let c=aP.findIndex(b=>"code"===b.type&&b.lineIndex===a);c>=0&&aQ.scrollToIndex(c,{align:b||"auto"})},onSearchExecute:a=>{aU(a),aT(!1)},onSearchNext:a$,onSearchPrev:a_,onSearchClear:()=>{aU("")}});(0,f.useEffect)(()=>{U&&(U.current={cursorLine:bf.state.cursorLine,cursorCol:bf.state.cursorCol})},[U,bf.state.cursorLine,bf.state.cursorCol]);let bg=(0,f.useRef)(null);(0,f.useEffect)(()=>{Q&&!L&&null!=V&&b&&bg.current!==b&&(bg.current=b,bf.setCursorLine(V-1),null!=W&&bf.setCursorCol(W-1),X?.())},[Q,L,V,W,b]),(0,f.useEffect)(()=>{if(!Q||L)return;let a=ar.current;if(!a)return;let b=a=>{let b=a.target;"TEXTAREA"===b.tagName||"INPUT"===b.tagName||b.isContentEditable||bf.handleKeyDown(a)&&(a.preventDefault(),a.stopPropagation())};return a.addEventListener("keydown",b,!0),()=>a.removeEventListener("keydown",b,!0)},[Q,L,bf.handleKeyDown]),(0,f.useEffect)(()=>{if(!Q||L)return;let a=ar.current;a&&"normal"===bf.state.mode&&requestAnimationFrame(()=>{let b=document.activeElement;b&&("TEXTAREA"===b.tagName||"INPUT"===b.tagName||b.isContentEditable)||a.focus()})},[Q,L,bf.state.mode,a]);let bh=(0,f.useCallback)(a=>{if(!Q||L)return;let b=a.target.closest("[data-line]");if(b){let c=parseInt(b.getAttribute("data-line"),10);if(!isNaN(c)){bf.setCursorLine(c-1);let d=b.querySelector("[data-code-content]");if(d){let b=document.caretRangeFromPoint(a.clientX,a.clientY);if(b&&d.contains(b.startContainer)){let a,e=document.createTreeWalker(d,NodeFilter.SHOW_TEXT),f=0;for(;a=e.nextNode();){if(a===b.startContainer){f+=b.startOffset;break}f+=a.textContent?.length||0}let g=aN[c-1]??"";bf.setCursorCol(Math.max(0,Math.min(f,Math.max(0,g.length-1))))}}}}let c=a.target;if("TEXTAREA"===c.tagName||"INPUT"===c.tagName||c.isContentEditable)return;let d=ar.current;d&&d.focus()},[Q,L,bf.setCursorLine,bf.setCursorCol,aN]),bi=(0,f.useCallback)(a=>{Q&&!L&&requestAnimationFrame(()=>{let a=window.getSelection(),b=a?.toString().trim();b&&/^\S+$/.test(b)&&(a8.current=!0,aU(b))})},[Q,L,aU,a8]);(0,f.useEffect)(()=>{"command"===bf.state.mode?setTimeout(()=>bc.current?.focus(),0):"search"===bf.state.mode&&setTimeout(()=>bd.current?.focus(),0)},[bf.state.mode]),(0,f.useEffect)(()=>{let a=aq.current;if(!a)return;let b=()=>{(H??G)?.()};return a.addEventListener("mousedown",b),()=>a.removeEventListener("mousedown",b)},[H,G]),(0,f.useEffect)(()=>{aH||aI?(au.current=!0,G?.()):at.current||(au.current=!1)},[aH,aI,G]),(0,f.useLayoutEffect)(()=>{let a=aw.current;if(!a)return;let b=window.getSelection();if(b&&!b.isCollapsed)return;let c=aq.current;if(!c)return;let d=c.querySelector(`[data-line="${a.startLine}"]`),e=c.querySelector(`[data-line="${a.endLine}"]`);if(!d||!e)return;let f=(0,p.o)(d,a.startOffset),g=(0,p.o)(e,a.endOffset);if(f&&g)try{let a=document.createRange();a.setStart(f.node,f.offset),a.setEnd(g.node,g.offset),b?.removeAllRanges(),b?.addRange(a)}catch{}});let bj=(0,f.useCallback)((a,b,c)=>{au.current||F?.(a,b,c)},[F]),bk=(0,f.useCallback)((a,b)=>{au.current||E?.(a,b)},[E]),bl=Math.max(4,String(L?af:aN.length).length),bm=(0,f.useMemo)(()=>{let a=0;for(let b of aN){let c=0;for(let a=0;a<b.length;a++)" "===b[a]?c+=2-c%2:c+=1;c>a&&(a=c)}return a},[aN]);(0,f.useEffect)(()=>{if(L){_.current=a;let b=a.split("\n").length;ah.current=b,ag(b),aa.current=!1,ac(!1),aj({show:!1}),am.current=M}},[L,a,M]),(0,f.useEffect)(()=>{if(!L)return;let b=ak.current;if(!b)return;let c=a.split("\n"),d=c.map((a,b)=>ax[b]||(0,l.ZD)(a||" "));b.innerHTML=w(d),requestAnimationFrame(()=>{let a,d;Q?(a=Math.max(0,Math.min(be.current.line,c.length-1)),d=be.current.col):(a=Math.max(0,Math.min((D?.current??1)-1,c.length-1)),d=0),b.focus(),v(b,{line:a,offset:d});let e=D?.current??1;al.current&&(al.current.scrollTop=(e-1)*20)})},[L]),(0,f.useEffect)(()=>{L&&P?.({isDirty:ab,isSaving:ad})},[L,ab,ad,P]);let bn=(0,f.useCallback)(()=>{let a=ak.current;if(!a)return _.current;let b=[];for(let c of a.childNodes){let a=c.textContent||"";b.push(" "===a?"":a)}return b.join("\n")},[]),bo=(0,f.useCallback)(()=>{an.current&&clearTimeout(an.current),an.current=setTimeout(async()=>{let a=ak.current;if(a&&!ap.current){_.current=bn();try{let c=await (0,l.kS)(),d=(0,l.sQ)(b),e=document.documentElement.classList.contains("dark"),f=_.current.split("\n"),g=c.codeToTokens(f.join("\n"),{lang:d,theme:e?"github-dark":"github-light"}).tokens.map(a=>(0,l.b8)(a)),h=u(a);ao.current=!0,a.innerHTML=w(g),ao.current=!1,h&&v(a,h)}catch{}}},300)},[b,bn]);(0,f.useEffect)(()=>{if(L)return()=>{an.current&&clearTimeout(an.current)}},[L]);let bp=(0,f.useCallback)(()=>{let a=ak.current;if(!a)return;aa.current||(aa.current=!0,ac(!0));let b=a.children.length;b!==ah.current&&(ah.current=b,ag(b))},[]),bq=(0,f.useCallback)(()=>{ao.current||ap.current||(bp(),bo())},[bp,bo]),br=(0,f.useCallback)(a=>{if(!a.nativeEvent.isComposing&&("Tab"===a.key&&(a.preventDefault(),document.execCommand("insertText",!1," ")),"Enter"===a.key)){a.preventDefault();let b=ak.current;if(!b)return;let c=window.getSelection();if(!c?.rangeCount)return;let d=c.getRangeAt(0);d.deleteContents();let e=d.startContainer;for(;e&&e.parentElement!==b;)e=e.parentElement;if(!e||!(e instanceof HTMLElement))return;let f=u(b),g=Array.from(b.children).indexOf(e),h=e.textContent||"",i=f?.offset??h.length,j=h.substring(0,i),k=h.substring(i);e.innerHTML=(0,l.ZD)(j||" ");let m=document.createElement("div");m.setAttribute("style",y),m.innerHTML=(0,l.ZD)(k||" "),e.after(m),v(b,{line:g+1,offset:0}),bp(),bo()}},[bp,bo]),bs=(0,f.useCallback)(a=>{a.preventDefault();let b=a.clipboardData.getData("text/plain");document.execCommand("insertText",!1,b)},[]),bt=(0,f.useCallback)(async(a=!1)=>{if(t){_.current=bn(),ae(!0);try{let c=await fetch("/api/files/save",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({cwd:t,path:b,content:_.current,expectedMtime:a?void 0:am.current})}),d=await c.json();if(409===c.status&&d.conflict){try{let a=await fetch(`/api/files/text?cwd=${encodeURIComponent(t)}&path=${encodeURIComponent(b)}`),c=await a.json();aj({show:!0,diskContent:a.ok&&"string"==typeof c.content?c.content:void 0})}catch{aj({show:!0})}return}if(!c.ok)throw Error("Failed to save file");d.mtime&&(am.current=d.mtime),aa.current=!1,ac(!1),aj({show:!1}),(0,r.oR)($("toast.savedSuccess"),"success"),O?.()}catch(a){console.error("Error saving file:",a),(0,r.oR)($("toast.saveFailed"),"error")}finally{ae(!1)}}},[t,b,bn,O]),bu=(0,f.useCallback)(async()=>{ab&&!ad&&await bt(!1)},[ab,ad,bt]),bv=(0,f.useCallback)(async()=>{aj({show:!1}),await bt(!0)},[bt]),bw=(0,f.useCallback)(()=>{if(void 0!==ai.diskContent){_.current=ai.diskContent;let b=ai.diskContent.split("\n").length;ah.current=b,ag(b);let c=ai.diskContent!==a;aa.current=c,ac(c);let d=ak.current;if(d){let a=ai.diskContent.split("\n");d.innerHTML=w(a.map(a=>(0,l.ZD)(a||" "))),bo()}}aj({show:!1}),O?.()},[ai.diskContent,a,O,bo]),bx=(0,f.useCallback)(()=>{let a=al.current;return a?Math.floor(a.scrollTop/20)+1:D?.current??1},[D]),by=(0,f.useCallback)(async()=>{(!ab||await (0,r.lJ)($("codeViewer.unsavedConfirm"),{danger:!0,confirmText:$("codeViewer.discardChanges"),cancelText:$("codeViewer.continueEditing")}))&&N?.(bx())},[ab,N,bx]);(0,f.useEffect)(()=>{if(!L)return;let a=a=>{(a.metaKey||a.ctrlKey)&&"s"===a.key&&(a.preventDefault(),bu())};return document.addEventListener("keydown",a),()=>document.removeEventListener("keydown",a)},[L,bu]);let bz=(0,f.useCallback)(()=>{let a=bn();R?.(a);let b=ak.current,c=b?u(b):null,d=bx();if(bf.enterNormal(),c){bf.setCursorLine(c.line);let b=a.split("\n")[c.line]??"";bf.setCursorCol(Math.max(0,Math.min(c.offset,Math.max(0,b.length-1))))}else bf.setCursorLine(Math.max(0,d-1));N?.(d)},[bn,R,bx,N,bf]);(0,f.useEffect)(()=>{if(!L)return;let a=a=>{let b="Escape"===a.key,c=a.ctrlKey&&"c"===a.key&&!a.metaKey&&!a.shiftKey;(b||Q&&c)&&(a.preventDefault(),a.stopPropagation(),Q?aa.current?(0,r.lJ)($("codeViewer.unsavedExitConfirm"),{danger:!0,confirmText:$("codeViewer.discardChanges"),cancelText:$("codeViewer.continueEditing")}).then(a=>{a&&bz()}):bz():by())};return document.addEventListener("keydown",a,!0),()=>document.removeEventListener("keydown",a,!0)},[L,Q,by,bz]),(0,f.useImperativeHandle)(Z,()=>({save:bu,close:by,get isDirty(){return ab},get isSaving(){return ad}}),[bu,by,ab,ad]);let bA=!!(I&&I.length>0),bB=(0,f.useMemo)(()=>{if(!I)return new Map;let a=[...new Set(I.map(a=>a.author))],b=new Map;return a.forEach((a,c)=>{b.set(a,o.j[c%o.j.length])}),b},[I]),[bC,bD]=(0,f.useState)(null),[bE,bF]=(0,f.useState)(null);(0,f.useEffect)(()=>{bD(null),bF(null)},[I]);let bG=(0,f.useCallback)((a,b)=>{bD(a.author);let c=b.currentTarget.getBoundingClientRect();bF({line:a,x:c.right+8,y:c.top})},[]),bH=(0,f.useCallback)(()=>{bD(null),bF(null)},[]),bI=(0,f.useCallback)(a=>{if(!K)return;let b={hash:a.hashFull,shortHash:a.hash,author:a.author,authorEmail:a.authorEmail,date:new Date(1e3*a.time).toISOString(),subject:a.message.split("\n")[0]||"",body:a.message.split("\n").slice(1).join("\n").trim(),time:a.time};K(b),bF(null)},[K]),bJ=`${bl+2}ch`;return(0,e.jsxs)("div",{ref:ar,className:`h-full flex flex-col outline-none ${k}`,tabIndex:0,onClick:bh,onDoubleClick:bi,children:[L&&ai.show&&(0,e.jsxs)("div",{className:"px-4 py-2 bg-amber-500/15 border-b border-amber-500/30 flex items-center gap-3 flex-shrink-0",children:[(0,e.jsx)("svg",{className:"w-5 h-5 text-amber-500 flex-shrink-0",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",children:(0,e.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M12 9v2m0 4h.01m-6.938 4h13.856c1.54 0 2.502-1.667 1.732-2.5L13.732 4c-.77-.833-1.964-.833-2.732 0L4.082 16.5c-.77.833.192 2.5 1.732 2.5z"})}),(0,e.jsx)("span",{className:"text-sm text-foreground flex-1",children:$("codeViewer.fileModifiedExternally")}),(0,e.jsxs)("div",{className:"flex items-center gap-2",children:[(0,e.jsx)("button",{onClick:bw,className:"px-3 py-1 text-sm rounded border border-border hover:bg-accent transition-colors",children:$("codeViewer.useDiskVersion")}),(0,e.jsx)("button",{onClick:bv,className:"px-3 py-1 text-sm rounded bg-amber-500 text-white hover:bg-amber-600 transition-colors",children:$("codeViewer.forceOverwrite")})]})]}),!L&&d&&aB&&(0,e.jsxs)("div",{className:"flex-shrink-0 flex items-center gap-2 px-3 py-2 bg-secondary border-b border-border",children:[(0,e.jsx)("input",{ref:as,type:"text",value:aC,onChange:a=>aU(a.target.value),onKeyDown:a0,placeholder:$("codeViewer.searchPlaceholder"),className:"flex-1 max-w-xs px-2 py-1 text-sm border border-border rounded bg-card text-foreground focus:outline-none focus:ring-2 focus:ring-ring"}),(0,e.jsx)("button",{onClick:()=>aV(!aD),className:`px-2 py-1 text-xs font-mono rounded border transition-colors ${aD?"bg-brand text-white border-brand":"border-border text-muted-foreground hover:bg-accent"}`,title:$("codeViewer.caseSensitive"),children:"Aa"}),(0,e.jsx)("button",{onClick:()=>aW(!aE),className:`px-2 py-1 text-xs font-mono rounded border transition-colors ${aE?"bg-brand text-white border-brand":"border-border text-muted-foreground hover:bg-accent"}`,title:$("codeViewer.wholeWordMatch"),children:"[ab]"}),(0,e.jsx)("span",{className:"text-xs text-muted-foreground",children:aO.length>0?`${aF+1}/${aO.length}`:$("common.noMatch")}),(0,e.jsx)("button",{onClick:a_,disabled:0===aO.length,className:"p-1 rounded hover:bg-accent disabled:opacity-50",title:$("common.previous"),children:(0,e.jsx)("svg",{className:"w-4 h-4",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",children:(0,e.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M5 15l7-7 7 7"})})}),(0,e.jsx)("button",{onClick:a$,disabled:0===aO.length,className:"p-1 rounded hover:bg-accent disabled:opacity-50",title:$("common.next"),children:(0,e.jsx)("svg",{className:"w-4 h-4",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",children:(0,e.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M19 9l-7 7-7-7"})})}),(0,e.jsx)("button",{onClick:()=>{aT(!1),aU("")},className:"p-1 rounded hover:bg-accent",title:$("common.close"),children:(0,e.jsx)("svg",{className:"w-4 h-4",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",children:(0,e.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M6 18L18 6M6 6l12 12"})})})]}),L?(0,e.jsx)("div",{ref:al,className:"flex-1 overflow-auto bg-secondary",children:(0,e.jsxs)("div",{className:"flex",style:{minHeight:"100%"},children:[(0,e.jsx)("div",{className:"flex-shrink-0 font-mono text-sm select-none sticky left-0 z-[2] bg-secondary",style:{width:bJ},children:Array.from({length:af},(a,b)=>(0,e.jsx)("div",{className:"text-right text-muted-foreground/50 pr-3",style:{height:20,lineHeight:"20px"},children:b+1},b))}),(0,e.jsx)("div",{ref:ak,contentEditable:!0,suppressContentEditableWarning:!0,onInput:bq,onKeyDown:br,onPaste:bs,onCompositionStart:()=>{ap.current=!0},onCompositionEnd:()=>{ap.current=!1,bq()},spellCheck:!1,autoCorrect:"off",autoCapitalize:"off",className:"flex-1 font-mono text-sm outline-none",style:{caretColor:"var(--foreground)",tabSize:2}})]})}):(0,e.jsx)("div",{ref:aq,className:`flex-1 overflow-auto font-mono text-sm bg-secondary${az?" cmd-held-container":""}`,children:(0,e.jsx)("div",{style:{height:`${aQ.getTotalSize()}px`,minWidth:"100%",width:bA?`calc(${bl+bm+10}ch + 13rem)`:`${bl+bm+10}ch`,position:"relative"},children:aQ.getVirtualItems().map(a=>{let b=aP[a.index];if("code"!==b.type)return null;let d=b.lineIndex,f=d+1,g=ax[d]||(0,l.ZD)(aN[d]||""),h=a7(d,g,C),i=aS.has(f),j=aR.get(f),k=j?.[0],m=!!(aH&&f>=aH.range.start&&f<=aH.range.end),n=ba>=0?a9.current:null,p=!L&&J&&n===f?J[d]??null:null,q=bA?I[d]:void 0,r=bA&&d>0?I[d-1]:void 0,s=!!q&&(!r||r.hash!==q.hash),t=q?bB.get(q.author):void 0;return(0,e.jsx)(o.S,{virtualKey:a.key,lineNum:f,highlightedHtml:h,hasComments:i,firstComment:k,lineCommentsCount:j?.length,isInRange:m,showLineNumbers:c,lineNumChars:bl,commentsEnabled:aK,virtualItemSize:a.size,virtualItemStart:a.start,onCommentBubbleClick:a1,onCmdClick:bk,onTokenHover:bj,onTokenHoverLeave:G,flashLine:aA,blameLine:q,showBlameInfo:s,blameAuthorColor:t,isBlameHovered:!!(q&&bC===q.author),onBlameClick:bI,onBlameMouseEnter:bG,onBlameMouseLeave:bH,inlineBlameData:p,onInlineBlameClick:bI,isCursorLine:Q&&!L&&bf.state.cursorLine===d,cursorCol:Q&&!L&&bf.state.cursorLine===d?bf.state.cursorCol:void 0},a.key)})})}),Q&&(0,e.jsxs)("div",{className:"vi-status-bar flex-shrink-0 h-6 bg-card border-t border-border flex items-center px-3 text-xs font-mono select-none",children:["normal"===bf.state.mode&&(0,e.jsx)("span",{className:"text-green-11 font-medium",children:"NORMAL"}),"insert"===bf.state.mode&&(0,e.jsx)("span",{className:"text-blue-11 font-medium",children:"INSERT"}),"command"===bf.state.mode&&(0,e.jsxs)("div",{className:"flex items-center flex-1",children:[(0,e.jsx)("span",{className:"text-foreground",children:":"}),(0,e.jsx)("input",{ref:bc,value:bf.state.commandInput,onChange:a=>bf.setCommandInput(a.target.value),onKeyDown:a=>{if(a.nativeEvent.isComposing)return;let b=a.ctrlKey&&"c"===a.key&&!a.metaKey&&!a.shiftKey;("Enter"===a.key||"Escape"===a.key||b)&&(a.preventDefault(),a.stopPropagation(),bf.handleKeyDown(a.nativeEvent))},className:"flex-1 bg-transparent outline-none text-foreground ml-0.5",spellCheck:!1,autoComplete:"off"})]}),"search"===bf.state.mode&&(0,e.jsxs)("div",{className:"flex items-center flex-1",children:[(0,e.jsx)("span",{className:"text-foreground",children:"/"}),(0,e.jsx)("input",{ref:bd,value:bf.state.searchInput,onChange:a=>bf.setSearchInput(a.target.value),onKeyDown:a=>{if(a.nativeEvent.isComposing)return;let b=a.ctrlKey&&"c"===a.key&&!a.metaKey&&!a.shiftKey;("Enter"===a.key||"Escape"===a.key||b)&&(a.preventDefault(),a.stopPropagation(),bf.handleKeyDown(a.nativeEvent))},className:"flex-1 bg-transparent outline-none text-foreground ml-0.5",spellCheck:!1,autoComplete:"off"})]}),bf.state.keyBuffer&&"normal"===bf.state.mode&&(0,e.jsx)("span",{className:"ml-2 text-muted-foreground",children:bf.state.keyBuffer}),bf.state.isDirty&&("normal"===bf.state.mode||"command"===bf.state.mode)&&(0,e.jsx)("span",{className:"ml-2 text-amber-11",children:"[+]"}),(0,e.jsxs)("span",{className:"ml-auto text-muted-foreground",children:[bf.state.cursorLine+1,":",bf.state.cursorCol+1]})]}),ay&&bb&&(0,h.createPortal)((0,e.jsxs)(e.Fragment,{children:[!L&&(0,e.jsx)(m.f,{floatingToolbarRef:at,bumpRef:av,container:bb,onAddComment:a2,onSendToAI:a3,onSearch:Y?a4:void 0,isChatLoading:aJ?.isLoading}),!L&&aH&&(0,e.jsx)(j.t,{x:aH.x,y:aH.y,range:aH.range,codeContent:aH.codeContent,container:bb,onSubmit:a5,onClose:()=>aY(null)}),!L&&aI&&(0,e.jsx)(j.G,{x:aI.x,y:aI.y,range:aI.range,filePath:b,codeContent:aI.codeContent,container:bb,onSubmit:a6,onClose:()=>aZ(null),isChatLoading:aJ?.isLoading}),!L&&aG&&(0,e.jsx)(n.t,{x:aG.x,y:aG.y,comment:aG.comment,container:bb,onClose:()=>aX(null),onUpdateComment:aL,onDeleteComment:aM}),bE&&(0,e.jsxs)("div",{className:"fixed z-50 bg-card border border-border rounded-lg shadow-lg p-3 max-w-lg",style:{left:Math.min(bE.x,window.innerWidth-450),top:Math.max(8,Math.min(bE.y,window.innerHeight-200))},children:[(0,e.jsxs)("div",{className:"flex items-start gap-3",children:[(0,e.jsx)("div",{className:"px-2 py-0.5 rounded text-xs font-mono font-medium text-white flex-shrink-0",style:{backgroundColor:bB.get(bE.line.author)?.border||"#666"},children:bE.line.hash}),(0,e.jsxs)("div",{className:"flex-1 min-w-0",children:[(0,e.jsx)("div",{className:"text-sm font-medium text-foreground",children:bE.line.author}),(0,e.jsx)("div",{className:"text-xs text-muted-foreground",children:bE.line.authorEmail})]})]}),(0,e.jsx)("div",{className:"mt-2 text-sm text-foreground whitespace-pre-wrap max-h-48 overflow-y-auto",children:bE.line.message}),(0,e.jsxs)("div",{className:"mt-2 text-xs text-muted-foreground border-t border-border pt-2",children:[(0,q.fw)(bE.line.time)," \xb7 ",new Date(1e3*bE.line.time).toLocaleString(),(0,e.jsx)("span",{className:"ml-2 text-brand",children:$("codeViewer.clickToViewDetails")})]})]})]}),bb)]})});function x({content:a,filePath:b,className:c=""}){let d=(0,f.useMemo)(()=>a.split("\n"),[a]),g=(0,k.C)(d,b),h=Math.max(4,String(d.length).length);return(0,e.jsx)("pre",{className:`overflow-auto text-sm font-mono bg-secondary p-2 ${c}`,children:d.map((a,b)=>(0,e.jsxs)("div",{className:"flex",children:[(0,e.jsx)("span",{className:"text-slate-9 select-none pr-4 text-right",style:{minWidth:`${h+2}ch`},children:b+1}),(0,e.jsx)("span",{className:"flex-1",dangerouslySetInnerHTML:{__html:g[b]||(0,l.ZD)(a||" ")}})]},b))})}d()}catch(a){d(a)}})},90173:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.d(b,{C:()=>h});var e=c(67484),f=c(5811),g=a([f]);function h(a,b){let[c,d]=(0,e.useState)([]),[f,g]=(0,e.useState)(!1);return(0,e.useRef)(""),a.join("\n"),c}f=(g.then?(await g)():g)[0],d()}catch(a){d(a)}})},94882:(a,b,c)=>{function d(a,b){for(let c of a){if(c.path===b)return c;if(c.children){let a=d(c.children,b);if(a)return a}}return null}function e(a,b){if(!a)return"";let c=d(b,a);if(c?.isDirectory)return a;let e=a.split("/");return e.pop(),e.join("/")}function f(a){let b=[];for(let c of a){let a=c.split("/"),d=b;for(let b=0;b<a.length;b++){let c=a[b],e=b===a.length-1,f=a.slice(0,b+1).join("/"),g=d.find(a=>a.name===c);g||(g={name:c,path:f,isDirectory:!e,children:e?void 0:[]},d.push(g)),!e&&g.children&&(d=g.children)}}let c=a=>{a.sort((a,b)=>a.isDirectory&&!b.isDirectory?-1:!a.isDirectory&&b.isDirectory?1:a.name.localeCompare(b.name)),a.forEach(a=>{a.children&&c(a.children)})};return c(b),b}function g(a){let b=[],c=a=>{for(let d of a)d.isDirectory&&(b.push(d.path),d.children&&c(d.children))};return c(a),b}c.d(b,{B_:()=>o,KH:()=>k,MB:()=>d,S7:()=>e,fw:()=>l,q3:()=>j,r6:()=>m,tE:()=>n,tW:()=>g,u:()=>i,v3:()=>f});let h=new Set(["png","jpg","jpeg","gif","svg","webp","ico","bmp"]);function i(a){let b=a.split(".").pop()?.toLowerCase();return h.has(b||"")}function j(a,b,c=!1){let d=new Set;if(!b)return d;let e=b.toLowerCase(),f=a=>{if(d.add(a.path),a.children)for(let b of a.children)f(b)},g=(a,b)=>{let h=a.name.toLowerCase(),i=c?h===e:h.includes(e);if(i&&a.children)return f(a),b.forEach(a=>d.add(a)),!0;let j=!1;if(a.children)for(let c of a.children)g(c,[...b,a.path])&&(j=!0);return(!!i||!!j)&&(d.add(a.path),b.forEach(a=>d.add(a)),!0)};for(let b of a)g(b,[]);return d}function k(a,b,c=!1){let d=new Set;if(!b)return d;let e=b.toLowerCase();for(let b of a){let a=b.split("/");for(let b=0;b<a.length;b++){let f=a[b].toLowerCase();if(c?f===e:f.includes(e)){for(let b=0;b<=a.length-1;b++)d.add(a.slice(0,b+1).join("/"));break}}}return d}function l(a){let b=Math.floor(Math.floor((Date.now()-1e3*a)/1e3)/60),c=Math.floor(b/60),d=Math.floor(c/24),e=Math.floor(d/30),f=Math.floor(d/365);return f>0?`${f}y ago`:e>0?`${e}mo ago`:d>0?`${d}d ago`:c>0?`${c}h ago`:b>0?`${b}m ago`:"just now"}function m(a){let b=new Date(a),c=new Date,d=b.getFullYear()===c.getFullYear(),e=String(b.getMonth()+1).padStart(2,"0"),f=String(b.getDate()).padStart(2,"0"),g=String(b.getHours()).padStart(2,"0"),h=String(b.getMinutes()).padStart(2,"0");return d?`${e}-${f} ${g}:${h}`:`${b.getFullYear()}-${e}-${f} ${g}:${h}`}let n=()=>{},o=50},95133:(a,b,c)=>{c.d(b,{S:()=>l,j:()=>j});var d=c(48249),e=c(67484),f=c(44384),g=c(41564),h=c(31172);function i({blame:a,onClick:b}){let{t:c}=(0,f.Bd)(),j=(0,e.useRef)(null),k=(0,e.useRef)(null),l=(0,h.F2)(),m=(0,e.useRef)(!1),n=(0,e.useRef)(!1),o=(0,e.useRef)(null),p=(0,e.useRef)(null),q=(0,e.useRef)(null),r=(0,e.useRef)(a),s=(0,e.useRef)(b),t=(0,e.useCallback)(()=>{let a,b=k.current,c=j.current;if(!b||!c)return;let d=c.getBoundingClientRect(),e=b.getBoundingClientRect(),f=l?.getBoundingClientRect(),g=f?.left??0,h=f?.top??0,i=f?.width??window.innerWidth,m=f?.height??window.innerHeight,n=d.left-g;n+e.width>i-8&&(n=i-e.width-8),n<8&&(n=8);let o=d.top-h,p=d.bottom-h;(a=o-e.height-4<0?p+4:o-e.height-4)+e.height>m-8&&(a=m-e.height-8),b.style.left=`${n}px`,b.style.top=`${a}px`},[l]),u=(0,e.useCallback)(()=>{o.current&&(clearTimeout(o.current),o.current=null),p.current&&(clearTimeout(p.current),p.current=null),m.current=!1,n.current=!1,k.current&&(k.current.style.display="none"),q.current&&(document.removeEventListener("mousedown",q.current.down),document.removeEventListener("mouseup",q.current.up),q.current=null)},[]),v=(0,e.useCallback)(()=>{let a=k.current;if(!a||m.current)return;m.current=!0,a.style.left="-9999px",a.style.top="-9999px",a.style.display="block",requestAnimationFrame(()=>requestAnimationFrame(t));let b=0,c=0,d=a=>{b=a.clientX,c=a.clientY},e=a=>{if(!(Math.abs(a.clientX-b)>5||Math.abs(a.clientY-c)>5)){let b;b=a.target,k.current?.contains(b)||j.current?.contains(b)||u()}};document.addEventListener("mousedown",d),document.addEventListener("mouseup",e),q.current={down:d,up:e}},[t,u]),w=(0,e.useCallback)(()=>{if(o.current&&clearTimeout(o.current),p.current&&(clearTimeout(p.current),p.current=null),m.current)return;let a=window.getSelection();(!a||a.isCollapsed)&&(o.current=setTimeout(v,500))},[v]),x=(0,e.useCallback)(()=>{o.current&&(clearTimeout(o.current),o.current=null),m.current&&(p.current=setTimeout(()=>{n.current||u()},200))},[u]),y=(0,e.useCallback)(()=>{n.current=!0,p.current&&(clearTimeout(p.current),p.current=null)},[]),z=(0,e.useCallback)(()=>{n.current=!1,u()},[u]),A=(0,e.useCallback)(a=>{a.stopPropagation();let b=window.getSelection();b&&b.toString().length>0&&k.current?.contains(b.anchorNode)||(s.current?.(r.current),u())},[u]),B=a.message.split("\n")[0]||"",C=a.message.split("\n").slice(1).join("\n").trim();return(0,d.jsxs)(d.Fragment,{children:[(0,d.jsxs)("span",{ref:j,className:"select-none text-xs text-muted-foreground/50 ml-6 cursor-default hover:text-muted-foreground/80",onMouseEnter:w,onMouseLeave:x,children:[a.author.split(" ")[0],", ",function(a){let b=g.A.t,c=Math.floor((Date.now()-1e3*a)/1e3);if(c<60)return b("common.justNow");let d=Math.floor(c/60);if(d<60)return b("common.minutesAgo",{count:d});let e=Math.floor(d/60);if(e<24)return b("common.hoursAgo",{count:e});let f=Math.floor(e/24);if(f<30)return b("common.daysAgo",{count:f});let h=Math.floor(f/30);return h<12?b("common.monthsAgo",{count:h}):b("common.yearsAgo",{count:Math.floor(h/12)})}(a.time)," \xb7 ",B]}),(0,d.jsx)(h.ZL,{children:(0,d.jsxs)("div",{ref:k,className:"fixed z-[9999] bg-card border border-border rounded-lg shadow-xl p-3 text-xs text-foreground whitespace-pre-wrap max-w-md select-text",style:{display:"none",minWidth:280,cursor:"text"},"data-inline-blame-tip":"",onMouseEnter:y,onMouseLeave:z,children:[(0,d.jsxs)("div",{className:"flex items-center gap-2 mb-1.5",children:[(0,d.jsx)("span",{className:"font-mono text-brand",children:a.hash}),(0,d.jsx)("span",{className:"text-muted-foreground",children:a.author}),(0,d.jsx)("span",{className:"text-muted-foreground/60",children:new Date(1e3*a.time).toLocaleString()})]}),(0,d.jsx)("div",{className:"font-medium",children:B}),C&&(0,d.jsx)("div",{className:"mt-1 text-muted-foreground",children:C}),(0,d.jsx)("div",{className:"mt-2 text-[11px] text-brand border-t border-border pt-2 cursor-pointer hover:underline",onClick:A,children:c("codeViewer.clickToViewDetails")})]})})]})}let j=[{bg:"rgba(59, 130, 246, 0.15)",border:"rgb(59, 130, 246)"},{bg:"rgba(16, 185, 129, 0.15)",border:"rgb(16, 185, 129)"},{bg:"rgba(245, 158, 11, 0.15)",border:"rgb(245, 158, 11)"},{bg:"rgba(239, 68, 68, 0.15)",border:"rgb(239, 68, 68)"},{bg:"rgba(168, 85, 247, 0.15)",border:"rgb(168, 85, 247)"},{bg:"rgba(236, 72, 153, 0.15)",border:"rgb(236, 72, 153)"},{bg:"rgba(20, 184, 166, 0.15)",border:"rgb(20, 184, 166)"},{bg:"rgba(249, 115, 22, 0.15)",border:"rgb(249, 115, 22)"}];function k(a,b){let c,d=document.caretRangeFromPoint(a.clientX,a.clientY);if(!d||!b.contains(d.startContainer))return 1;let e=d.startContainer,f=d.startOffset,g=document.createTreeWalker(b,NodeFilter.SHOW_TEXT),h=1;for(;c=g.nextNode();){if(c===e){h+=f;break}h+=c.textContent?.length||0}return h}let l=(0,e.memo)(function({virtualKey:a,lineNum:b,highlightedHtml:c,hasComments:g,firstComment:h,lineCommentsCount:j,isInRange:l,showLineNumbers:m,lineNumChars:n,commentsEnabled:o,virtualItemSize:p,virtualItemStart:q,onCommentBubbleClick:r,onCmdClick:s,onTokenHover:t,onTokenHoverLeave:u,flashLine:v,blameLine:w,showBlameInfo:x,blameAuthorColor:y,isBlameHovered:z,onBlameClick:A,onBlameMouseEnter:B,onBlameMouseLeave:C,inlineBlameData:D,onInlineBlameClick:E,isCursorLine:F,cursorCol:G}){let{t:H}=(0,f.Bd)(),I=(0,e.useMemo)(()=>F&&null!=G?function(a,b){let c=0,d=0;for(;d<a.length;){if("<"===a[d]){let b=a.indexOf(">",d);if(-1!==b){d=b+1;continue}}if(c===b){let b;if("&"===a[d]){let c=a.indexOf(";",d);b=-1!==c&&c-d<10?c+1:d+1}else b=d+1;let c=a.substring(d,b);return a.substring(0,d)+'<span class="vi-char-cursor">'+c+"</span>"+a.substring(b)}if("&"===a[d]){let b=a.indexOf(";",d);d=-1!==b&&b-d<10?b+1:d+1}else d++;c++}return a+'<span class="vi-char-cursor"> </span>'}(c,G):c,[c,F,G]),J=(0,e.useCallback)(a=>{if(!a.metaKey||!s)return;a.preventDefault(),a.stopPropagation();let c=a.currentTarget,d=k(a,c);window.getSelection()?.removeAllRanges(),s(b,d)},[b,s]),K=(0,e.useCallback)(a=>{if(!t||0!==a.buttons)return;let c=window.getSelection();if(c&&!c.isCollapsed)return;let d=a.target;if("SPAN"!==d.tagName||!d.style.color)return;let e=a.currentTarget,f=k(a,e),g=d.getBoundingClientRect();t(b,f,{x:g.left,y:g.bottom+4})},[b,t]),L=(0,e.useCallback)(()=>{w&&A&&A(w)},[w,A]),M=(0,e.useCallback)(a=>{w&&B&&B(w,a)},[w,B]);return(0,d.jsxs)("div",{"data-line":b,style:{position:"absolute",top:0,left:0,width:"100%",height:`${p}px`,transform:`translateY(${q}px)`,backgroundColor:z&&y?y.bg:void 0},className:`flex ${v===b?"flash-line":""} ${F?"vi-cursor-line":""} ${l?"bg-blue-9/20":g?"bg-amber-9/10":"hover:bg-accent/50"}`,children:[(0,d.jsxs)("div",{className:"flex shrink-0 sticky left-0 z-[2] bg-secondary",style:{backgroundColor:z&&y?y.bg:void 0},children:[w&&y&&(0,d.jsxs)(d.Fragment,{children:[(0,d.jsx)("div",{className:"w-1 flex-shrink-0",style:{backgroundColor:y.border}}),(0,d.jsx)("div",{className:"w-48 flex-shrink-0 px-2 flex items-center gap-2 border-r border-border text-muted-foreground cursor-pointer hover:bg-accent/50",onMouseEnter:M,onMouseLeave:C,onClick:L,title:H("codeViewer.clickToViewCommit"),children:x?(0,d.jsxs)(d.Fragment,{children:[(0,d.jsx)("span",{className:"font-medium",style:{color:y.border},children:w.hash}),(0,d.jsx)("span",{className:"truncate flex-1",children:w.author.split(" ")[0]})]}):null})]}),m&&(0,d.jsxs)("span",{className:`flex-shrink-0 flex items-center justify-end gap-0.5 pr-2 select-none border-r border-border font-variant-tabular ${l?"bg-blue-9/30 text-blue-11":"bg-card/50 text-slate-9"}`,children:[o&&g&&h&&(0,d.jsx)("button",{onClick:a=>r(h,a),className:"w-4 h-4 flex items-center justify-center rounded hover:bg-accent text-amber-9",title:H("codeViewer.nComments",{count:j}),children:(0,d.jsx)("svg",{className:"w-3 h-3",fill:"currentColor",viewBox:"0 0 20 20",children:(0,d.jsx)("path",{fillRule:"evenodd",d:"M18 10c0 3.866-3.582 7-8 7a8.841 8.841 0 01-4.083-.98L2 17l1.338-3.123C2.493 12.767 2 11.434 2 10c0-3.866 3.582-7 8-7s8 3.134 8 7zM7 9H5v2h2V9zm8 0h-2v2h2V9zM9 9h2v2H9V9z",clipRule:"evenodd"})})}),o&&!g&&(0,d.jsx)("span",{className:"w-4"}),(0,d.jsx)("span",{className:"text-right",style:{minWidth:`${n}ch`},children:b})]})]}),(0,d.jsxs)("span",{className:"flex-1 px-3 whitespace-pre select-text",onClick:J,onMouseOver:K,onMouseLeave:u,"data-code-content":!0,children:[(0,d.jsx)("span",{dangerouslySetInnerHTML:{__html:I}}),D&&(0,d.jsx)(i,{blame:D,onClick:E})]})]},a)})}};